IoAPIc function что это

ACPI APIC Support

Другие идентичные названия опции: APIC Mode, IOAPIC Function, Interrupt Mode.

Опция BIOS Setup ACPI APIC Support используется для того, чтобы включить или выключить поддержку контроллера APIC на материнской плате. Эта опция имеет всего два варианта (Enabled — Включено и Disabled — Выключено).

Принцип работы

Чтобы уяснить принцип работы этой опции, следует разобраться с тем, для чего вообще нужен контроллер прерываний. Контроллер прерываний – это расположенный на материнской плате чип, который обрабатывает запросы к процессору, поступающие от аппаратных устройств, таких, как платы, вставленные в разъемы расширения, накопители, порты, и т.д. Эти запросы и называются аппаратными прерываниями.

APIC представляет собой новую версию контроллера прерываний, которая в 90-х гг. пришла на смену широко использовавшемуся до этого PIC. Контроллер APIC был разработан компанией Intel и впервые стал применяться в персональных компьютерах на базе процессора Pentium. Аббревиатура APIC расшифровывается, как Advanced Programmable Interrupt Controller – улучшенный программируемый контроллер прерываний.

Контроллер прерываний APIC предназначен для обработки аппаратных прерываний, поступающих от устройств и состоит из двух основных компонентов – это так называемый контроллер локального APIC (Local APIC или LAPIC), располагающийся в самом процессоре (точнее говоря, в каждом процессорном ядре) и чип контроллера ввода/вывода APIC(I/O APIC), располагающийся на материнской плате. Таким образом, количество локальных контроллеров прерываний LAPIC соответствует количеству процессорных ядер, установленных в компьютере.

Связь между обоими контроллерами осуществляется по системной шине, хотя во многих старых компьютерах для этой цели существовала специальная шина. Кроме того, раньше, до появления процессоров семейства Pentium поколения P54C, LAPIC находился не в самом центральном процессоре, а располагался в виде отдельного микроконтроллера на материнской плате. Контроллеров I/O APIC в системе также может быть несколько – до 8 штук. Если в системе нет ни одного I/O APIC, то контроллеры LAPIC вообще не используются, независимо от того, присутствуют ли они в ядрах процессора или нет, и вместо них обработкой прерываний занимается старый контроллер 8259 PIC.

Внедрение улучшенного контроллера прерываний позволило усовершенствовать обработку аппаратных прерываний, а кроме того, увеличило количество доступных в системе прерываний. Стандартное количество прерываний для I/O APIC составляет 24, а максимальное – 64. Таким образом, APIC существенно расширил возможности персонального компьютера по обработке аппаратных прерываний, ведь до внедрения технологии APIC контроллер PIC поддерживал всего лишь 16 прерываний.

Кроме того, поддержка APIC является составной частью технологии ACPI (Advanced Configuration and Power Interface, модернизированный интерфейс конфигурирования и питания).

Технология APIC разрабатывалась преимущественно для работы на многопроцессорных системах, там, где требуется надежная система для распределения аппаратных прерываний, идущих от устройств к процессорам. На сегодняшний день система контроллеров LAPIC используется как на однопроцессорных, так и на многопроцессорных системных платах компьютеров.

Следует помнить, однако, что для того, чтобы технология APIC работала, требуется и поддержка со стороны программного обеспечения, прежде всего, операционных систем. Все современные операционные системы, такие как Microsoft Windows XP, Windows Vista, Windows 7 и 8, поддерживают контроллер APIC.

Стоит ли включать опцию?

Поддержка APIC со стороны операционной системы обуславливает и целесообразность включения или выключения опции ACPI APIC Support. Если у вас на компьютере установлены старые версии ОС, такие, как Microsoft DOS, Microsoft Windows 95, Windows 98, Windows Millenium (до Windows NT), то имейте в виду, что они не поддерживают APIC и разработаны с расчетом на работу с устаревшим контроллером прерываний PIC. Из этого следует, что велика вероятность того, что эти операционные системы будут нестабильно работать с включенной опцией поддержки контроллера APIC, или не будут работать вообще. Если такое происходит, и вы уверены в том, что проблемы с операционными системами происходит из-за включенной поддержки улучшенного контроллера прерываний APIC, то вам стоит выключить данную опцию.

При отключении опции контроллер APIC будет работать, эмулируя контроллер 8259 PIC, и, таким образом, старые операционные системы смогут работать, обращаясь к нему. Если же у вас установлена современная операционная система, начиная с Windows 2000, то вы можете смело включить эту опцию, поскольку поддержка технологии APIC сделает вашу систему более производительной. Кроме того, обязательной является включение данной опции в системе, где установлено несколько процессоров.

The Intel I/O Advanced Programmable Interrupt Controller is used to distribute external interrupts in a more advanced manner than that of the standard 8259 PIC. With the I/O APIC, interrupts can be distributed to physical or logical (clusters of) processors and can be prioritized. Each I/O APIC typically handles 24 external interrupts.

Detecting I/O APIC

In order to detect the existence of an I/O APIC (or multiple ones), the Intel Multi-Processor or ACPI tables (specifically, the MADT) must be parsed. In the MP tables, configuration tables with the entry identification of 0x02 are for I/O APICs. Parsing will tell how many (if any) I/O APICs exist, what are their APIC ID, base MMIO address and first IRQ (or GSI — Global System Interrupt). For more information on parsing the MP tables, see the External MP Tables Links section below. So you can have, say, 2 I/O APICs, the first handling IRQs 0 — 23 and the second 24 — 47.

Programming the I/O APIC

Each I/O APIC has a set of 2 or 3 (depending on version) 32-bit registers and up to many 64-bit registers (one per IRQ). The 64-bit registers have actually to be accessed as two 32-bit reads/writes. All registers are memory indexed. It means that you actually have only two 32-bit registers in memory, called IOREGSEL and IOREGWIN. You put the register index in IOREGSEL, and then you can read/write in IOREGWIN. The first three registers contain general information about this I/O APIC, while the remaining registers contain the specific configuration for each IRQ.

Читать еще:  Почему компьютер не видит флешку что делать

This register has index 0 (you write 0 to IOREGSEL and then read from IOREGWIN). It’s a Read-Only register with almost all bits reserved. The only interesting field is in bits 24 — 27: the APIC ID for this device (each peripheral which is interfaced with the APIC Bus needs an APIC ID, not only CPUs). You shall find this ID in ACPI/MP Tables as well.

This register (index 1) contains the I/O APIC Version in bits 0 — 8, and the Max Redirection Entry which is «how many IRQs can this I/O APIC handle — 1». It is encoded in bits 16 — 23.

This register (index 2) contains in bits 24 — 27 the APIC Arbitration ID. TODO

Following there are two 32-bit register for each IRQ. The first IRQ has indexes 0x10 and 0x11, the second 0x12 and 0x13, the third 0x14 and 0x15, and so on. So the Redirection Entry register for IRQ n is 0x10 + n * 2 (+ 1). In the first of the two registers you access to the LOW uint32_t / bits 31:0, and the second for the high uint32_t / 63:32. Each redirection entry is made of the following fields:

IOREGSEL and IOWIN

The register IOREGSEL is an MMIO register select register that is used to access all the other I/O APIC registers. The IOWIN register is the ‘data’ register. Once the IOREGSEL register has been set, the IOWIN register can be used to write or read the register in the IOREGSEL. The actual position in memory of the two registers is specified in the ACPI MADT Table and/or in the MP table. The IOREGSEL is at the address specified, and IOREGWIN is at the same address + 0x10.

‘apic_base’ is the memory base address for a selected IOAPIC, these can be found by enumerating them from the MP or ACPI Tables.

IO APIC Inputs

How other hardware (devices, etc) use IO APIC inputs is completely arbitrary — the motherboard/chipset designer can hard-wire anything they like to any IO APIC input. For the motherboard designer’s convenience, most but not all legacy IRQs are often (but not always) connected «1:1» to IO APIC inputs (e.g. IO APIC input #1 may be the same as PIC chip input #1) as this makes firmware a little easier (e.g. no need for «interrupt redirection entries» in ACPI’s MASD/APIC table), but this is not a requirement of any standard and not something that useful operating system software can rely on.

To correctly determine what how IO APIC inputs are used (and how they must be configured — as active high or active low, and as edge triggered or level triggered) operating system software must either:

1) Use APIC’s MADT/APIC table to determine how legacy IRQs are mapped to IO APIC inputs; then use ACPI’s AML (with a suitable interpreter) to determine how PCI devices are connected to IO APIC inputs

2) Use Intel’s «MultiProcessor Specification» tables to determine how both legacy IRQs and PCI IRQs are mapped to IO APIC inputs. Note that Intel’s «MultiProcessor Specification» is deprecated (an operating system should use ACPI where possible, and fall back to MultiProcessor Specification tables if ACPI doesn’t exist or can’t be used)

3) Provide (many) motherboard specific drivers, where each driver is able to use motherboard specific information to determine how IO inputs are used

IoAPIc function что это

APIC (англ. Advanced Programmable Interrupt Controller ) — улучшенный программируемый контроллер прерываний.

Содержание

APIC делится на две части: LOCAL и I/O APIC:

  • LOCAL APIC — располагается в ядре процессора.
  • I/O APIC — контроллер, расположенный на системной плате (например, микросхема Intel 82489DX).

Необходимость в новом контроллере, способном заменить PIC, возникла с появлением следующих проблем:

  • Появление многоядерных систем, требующих распределения прерываний по ядрам.
  • Резкий рост числа подключенных устройств, превышающее количество свободных IRQ процессора.
  • Скорость передачи данных устройств, превышающая скорость работы PIC.

Современные IOAPIC поддерживают 24 прерывания, хотя стандарт предусматривает поддержку большего числа устройств.

Расширенный контроллер прерываний впервые начал применяться на двухпроцессорных системных платах, из-за более сложной обработки прерываний от различных устройств (не совсем очевидно, какой из процессоров должен реагировать на прерывание). Затем расширенный контроллер прерываний начал использоваться и на однопроцессорных системах — устройствам становится доступно большее число прерываний (24 вместо 16), плюс, несколько плат расширения могут разделять между собой общее прерывание.

Литература

  • Intel 64 and IA-32 Architectures Software Developer’s Manual (в пяти томах):
    • Том 3A. System Programming Guide. CHAPTER 9 ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER (APIC) (англ.)
  • Н.Ю. Ершова, А.В. Соловьев13. Лекция: Организация обмена в вычислительной системе (рус.) . Организация вычислительных систем. Интернет-университет информационных технологий. Архивировано из первоисточника 12 февраля 2012.Проверено 10 октября 2010.

  • Проверить достоверность указанной в статье информации.
  • Добавить иллюстрации.

Wikimedia Foundation . 2010 .

Смотреть что такое «APIC» в других словарях:

APIC — Saltar a navegación, búsqueda APIC, acrónimo en inglés de Advanced Programmable Interrupt Controller, es un controlador de interrupciones, incorporado en la CPU y diseñado por y para el multiproceso, concretamente para poder incorporar múltiples… … Wikipedia Español

APIC — may refer to:*Advanced Programmable Interrupt Controller, a type of Programmable Interrupt Controller. **Intel APIC Architecture, a series of Intel APIC products *APIC Moving Map Software, an aviation software program. *Africa Policy Information… … Wikipedia

Читать еще:  Компьютер медленно реагирует на команды что делать

apic — apic·u·late; apic·u·la·tion; apic·u·lus; apic·u·lat·ed; … English syllables

APIC — APIC, acrónimo en inglés de Advanced Programmable Interrupt Controller. Viene a ser un controlador de interrupciones, incorporado a la placa madre y diseñado por y para el multiproceso, concretamente para poder incorporar múltiples… … Enciclopedia Universal

APIC — Abreviatura de Association for Practitioners of Infection Control. Diccionario Mosby Medicina, Enfermería y Ciencias de la Salud, Ediciones Hancourt, S.A. 1999 … Diccionario médico

APIC — Der Advanced Programmable Interrupt Controller (APIC, nicht zu verwechseln mit ACPI) sorgt für die Verteilung von Interrupts in x86 und Itanium basierenden Computersystemen. Der APIC besteht im Gegensatz zum PIC aus zwei Komponenten, dem Local… … Deutsch Wikipedia

Apic — Der Advanced Programmable Interrupt Controller (APIC, nicht zu verwechseln mit ACPI) sorgt für die Verteilung von Interrupts in x86 und Itanium basierenden Computersystemen. Der APIC besteht im Gegensatz zum PIC aus zwei Komponenten, dem Local… … Deutsch Wikipedia

Apic — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. IO APIC une architecture logicielle Intel pour le contrôle des interruptions. APIC anglais Active Pharmaceutical Ingredients Committee APIC (Atlas… … Wikipédia en Français

apic- — combining form or apici or apico Etymology: probably from New Latin, from Latin apic , apex 1. : apex : tip especially of an organ apicad … Useful english dictionary

APIC — allied press information center … Military dictionary

IoAPIc function что это

Группа: Forum members
Сообщений: 501
Регистрация: 10.6.2003
Из: Москва.. Ленинский пр-кт 70
Пользователь №: 134

Группа: Forum members
Сообщений: 1 180
Регистрация: 14.6.2003
Из: Строителей 6
Пользователь №: 164

ACPI — Advanced Configuration and Power Interface — режим расширенного управления питанием.

ACPI — Advanced Configuration and Power Interface — современный интерфейс конфигурирования и управления энергопотреблением — стандарт, разработанный фирмами Intel, Microsoft и Toshiba для унификации функций управления энергопотреблением компьютера. Является ключевым элементом Operating System Directed Power Management (OSPM — непосредственное управление энергопотреблением операционной системой). Стандарт претерпел существенные изменения по сравнению с ранее применявшимся стандартом Advanced Power Management (APM) BIOS Specification, Revision 1.2. ACPI учитывает даже температуру материнской платы и процессора, позволяет «усыплять» компьютер программно в режиме, например, ожидания приема факса ночью и т.п. Стандарт требует обязательной поддержки со стороны как BIOS материнской платы, так и операционной системы. Для правильного функционирования система должна иметь возможность поддержки механизма NVS, который позволяет восстановить работу системы после потери питания или глубокого «сна».

APIC — Advanced Programmable Interrupt Controller (Продвинутый программируемый контроллер прерываний) — Контроллер прерываний (interrupt), позволяющий использовать 24 аппаратных прерывания вместо 16. Ограничение в 16 аппаратных прерываний, не менявшееся с 1982 года, сдерживало установку в персональный компьютер дополнительных устройств. В конце 2001 года появились первые материнские платы с APIC.

Группа: Forum members
Сообщений: 254
Регистрация: 10.9.2003
Из: Milky Way, 3th planet ftom Sun, 07, MSK, UZAO
Пользователь №: 390

Совершенно таки нет. ACPI — Advanced Configuration and Power Interface — режим расширенного управления питанием.

ACPI — Advanced Configuration and Power Interface — современный интерфейс конфигурирования и управления энергопотреблением — стандарт, разработанный фирмами Intel, Microsoft и Toshiba для унификации функций управления энергопотреблением компьютера. Является ключевым элементом Operating System Directed Power Management (OSPM — непосредственное управление энергопотреблением операционной системой). Стандарт претерпел существенные изменения по сравнению с ранее применявшимся стандартом Advanced Power Management (APM) BIOS Specification, Revision 1.2. ACPI учитывает даже температуру материнской платы и процессора, позволяет «усыплять» компьютер программно в режиме, например, ожидания приема факса ночью и т.п. Стандарт требует обязательной поддержки со стороны как BIOS материнской платы, так и операционной системы. Для правильного функционирования система должна иметь возможность поддержки механизма NVS, который позволяет восстановить работу системы после потери питания или глубокого «сна».

APIC — Advanced Programmable Interrupt Controller (Продвинутый программируемый контроллер прерываний) — Контроллер прерываний (interrupt), позволяющий использовать 24 аппаратных прерывания вместо 16. Ограничение в 16 аппаратных прерываний, не менявшееся с 1982 года, сдерживало установку в персональный компьютер дополнительных устройств. В конце 2001 года появились первые материнские платы с APIC.

По сути абсолютно правильно. Однако при установке конкретной операционной системы на конкретную материнскую плату следует учитывать версию ACPI зашитую в BIOS материнской платы. Дело в том, что если матплата старая (естественно относительно), а операционка свежая и с обновлениями, то такая операционная система (к примеру на базе NT начиная с Win2K) сама может общаться с контроллерами устройств напрямую, минуя BIOS материнской платы. И чаще всего для таких ОС рекомендуется отключать ACPI BIOS во избежании конфликтов. Но эта тема уже для системщиков и разбирать ее здесь бессмысленно.

Компьютерная Энциклопедия

Архитектура ЭВМ

Компоненты ПК

Интерфейсы

Самое читаемое

Квалифицированные услуги электрика electroteorema.ru. Ответы нужно двухкомпонентная акриловая автоэмаль. Реальный металл от реальных металлобаз спб.

PCI и PCI-X

«Продвинутый» контроллер прерываний — APIC

Контроллер APIC в первую очередь предназначен для симметричных мультипроцесорных систем (SMP), описанных в документе Intel «MultiProcessor Specification» (MPS), в Сети доступна версия 1.4, 1997 год. Здесь симметрия рассматривается в двух аспектах:

  • симметрия памяти — все процессоры пользуются общей памятью, работают с одной копией ОС;
  • симметрия ввода/вывода — все процессоры разделяют общие устройства ввода/вывода и общие контроллеры прерываний.

Система может быть симметричной по памяти, но асимметричной по прерываниям от ввода/вывода, если для них используется выделенный процессор. В x86 симметрию по прерываниям обеспечивает APIC. Система с APIC состоит из локальных контроллеров, установленных в процессорах, и контроллеров прерываний от ввода/вывода (одного или нескольких). Все контроллеры APIC соединены между собой локальной шиной, по которой они обмениваются друг с другом сообщениями. Задача каждого локального контроллера (Local APIC) — трансляция сообщений, принятых по локальной шине, в сигналы, вызывающие все аппаратные прерывания своего процессора — маскируемые (INTR), немаскируемые (NMI) и прерывания системного обслуживания (SMI). Кроме того, локальные APIC позволяют каждому процессору генерировать прерывания для других процессоров. Локальный контроллер имеет внутренний интервальный таймер, позволяющий вырабатывать прерывания через программируемый интервал времени. Контроллер прерываний от ввода/вывода (I/O APIC) преобразует запросы аппаратных прерываний от устройств в сообщения протокола локальной шины APIC. В мультипроцессорном режиме он отвечает за распределение прерываний по процессорам, для чего может использоваться статическое или динамическое распределение. В случае статического распределения для каждого номера прерывания указывается номер процессора, который его обслуживает. В случае динамического распределения каждое прерывание направляется наименее приоритетному в данный момент процессору. Этот же контроллер отвечает за распространение сигналов о системных событиях (NMI, INIT, SMI) и межпроцессорных прерываний. Прерывания в мультипроцессорных системах подробно рассмотрены в документе «Intel Architecture Software Developer’s Manual Volume 3: System Programming Guide», доступном на сайте http://www.intel.com. Здесь же ограничимся описаниями возможностей, предоставляемыми для сигнализации прерываний ввода/вывода контроллерами APIC. Контроллер I/O APIC является частью чипсета системной платы, например, он входит в хабы ICH2 и ICH3 чипсетов Intel. В специфкации MPS определено три режима обработки прерываний:

  • режим PIC (PIC Mode) — эмуляция пары PIC 8259A с традиционной передачей сигналов прерывания одному процессору (загрузочному, BSP Bootstrap Processor) по линиям INTR и NMI;
  • режим «виртуальных проводов» (Virtual Wire Mode) — то же, но с подачей сигналов прерывания по локальной шине APIC. При этом I/O APIC может работать совместно с PIC 8259A, обеспечивая дополнительные возможности (в частности, дополнительные входы запросов прерываний);
  • симметричный режим (Symmetric I/O Mode) — сообщения о прерываниях от устройств генерирует APIC; прерывания могут доставляться любому процессору; каждый вход запроса индивидуально программируется с помощью таблицы перенаправления прерываний (I/O Redirection Table).
Читать еще:  Zen circle Asus что это

Первые два режима обеспечивают полную совместимость с системой прерываний PC/AT, с программной точки зрения они эквивалентны, различия лежат в области схемотехники. По аппаратному сбросу (и включении питания) система начинает работать в одном из этих режимов. Когда система подготовится к переходу в MP-режим, APIC переводится в симметричный режим и активизирует таблицу перенаправлений прерываний (предварительно программно инициализированную).

В MP-системе присутствует таблица описаний ее компонентов; к прерываниям в этой таблице относятся описатели всех I/O APIC, а также описатели назначений всех используемых источников прерываний, связанных с I/O APIC и локальными APIC. В описателе назначения для каждого источника прерываний указывается:

  • тип прерывания: векторное с передачей вектора через APIC, векторное с внешней передачей вектора (от PIC 8259A), NMI или SMI;
  • полярность сигнала и его тип (уровень или перепад);
  • идентификатор шины, на которой расположен источник;
  • идентификатор запроса на этой шине;
  • идентификатор и номер входа APIC, к которому подключен данный запрос.

Согласно MPS, для симметричных систем допустимы векторы в диапазоне 10h — FEh. Уровень приоритета прерывания определяется номером его вектора, деленным на 16. Самый приоритетный уровень — нулевой.

Выделение для сообщений APIC отдельной локальной шины позволяет освободить системную шину процессора от трафика, связанного с обслуживанием прерываний (подачи подтверждений прерываний для получения вектора). В современных процессорах используется локальная шина, состоящая из трех сигнальных линий: PICD[1:0] — двунаправленная шина данных и PICCLK — сигнал синхронизации (тактовая частота). Протокол шины обеспечивает распределенный механизм арбитража: в любой момент времени каждый APIC (локальный и I/O APIC) имеет уникальное значение приоритета арбитража (0–15), которое динамически меняется после успешной передачи сообщения. При попытке одновременного начала передачи сообщения несколькими APIC после фазы арбитража остается единственный победитель. Получатель сообщения подтверждает успешный прием; в случае неудачи сообщение передается повторно (обеспечивается надежная доставка). Сообщения, передаваемые по локальной шине APIC, программно-невидимы; реализация и протокол шины могут быть изменены производителями процессоров и чипсетов системных плат, но это не отразится на ПО.

Контроллер I/O APIC позволяет вырабатывать значительное число запросов прерываний; каждому запросу соответствует свой элемент в таблице перенаправлений, находящейся в APIC. Каждый элемент определяет способ реакции на свой запрос, вектор прерывания и процессор (процессоры) назначения, которые должны его обработать. С запросами связаны индивидуальные входы INTINn; определенный уровень или перепад сигнала на этих входах вызывает соответствующие запросы. Чувствительность и вектор (следовательно, и приоритет) для каждого запроса программируется индивидуально. Более совершенные модели I/O APIC позволяют вызывать прерывание и записью номера входа в регистр контроллера, что, например, используются для поддержки прерываний MSI на шине PCI. При этом возможна и экономия сигнальных входов: APIC может иметь входы INTINn не для всех номеров запросов, посылаемых через запись в этот регистр. Однако число запросов всегда ограничивается размером таблицы перенаправлений. Регистры контроллеров APIC отображаются на пространство памяти. Все локальные контроллеры APIC используют один и тот же диапазон адресов (по умолчанию базовый адрес FEE0 0000h) — к их регистрам обращаются только программы, исполняемые на их же процессорах, и эти обращения не выводятся на системную шину. Контроллеры I/O APIC доступны всем процессорам, по умолчанию базовый адрес первого I/O APIC — FEC0 0000h, базовые адреса остальных контроллеров (если таковые имеются) назначаются последовательно с шагом 1000h. Часть регистров адресуется непосредственно, большая часть регистров, включая и таблицу перенаправлений, адресуется косвенно.

Ссылка на основную публикацию
Adblock
detector