English
Language : 

82801BA Datasheet, PDF (112/498 Pages) Intel Corporation – Intel 82801BA I/O Controller Hub 2 (ICH2) and Intel 82801BAM I/O Controller Hub 2 Mobile
Functional Description
5.8.3 APIC Bus Functional Description
5.8.3.1
Physical Characteristics of APIC
The APIC bus is a 3-wire synchronous bus connecting all I/O and local APICs. Two of these wires
are used for data transmission and one wire is a clock. For bus arbitration, the APIC uses only one
of the data wires. The bus is logically a wire-OR and electrically an open-drain connection
providing for both bus use arbitration and arbitration for lowest priority. The APIC bus speed can
run from 16.67 MHz to 33 MHz.
5.8.3.2 APIC Bus Arbitration
The I/O APIC uses one wire arbitration to win bus ownership. A rotating priority scheme is used
for APIC bus arbitration. The winner of the arbitration becomes the lowest priority agent and
assumes an arbitration ID of 0. All other agents, except the agent whose arbitration ID is 15,
increment their Arbitration IDs by one. The agent whose ID was 15 will take the winner's
arbitration ID and will increment it by one. Arbitration IDs are changed only for messages that are
transmitted successfully (except for the Low Priority messages). A message is transmitted
successfully if no CS error or acceptance error was reported for that message.
An APIC agent can use two different priority schemes: Normal or EOI. EOI has the highest
priority. EOI priority is used to send EOI messages for level interrupts from a local APIC to an I/O
APIC. When an agent requests the bus with EOI priority, all other agents requesting the bus with
normal priorities will back off.
When ICH2 detects a bus idle condition on the APIC Bus and it has an interrupt to send over the
APIC bus, it drives a start cycle to begin arbitration, by driving bit 0 to a ‘0’ on an APICCLK rising
edge. It then samples bit 1. If Bit 1 was a ‘0’, then a local APIC started arbitration for an EOI
message on the same clock edge that the ICH2 started arbitration. Thus, the ICH2 has lost
arbitration and stops driving the APIC bus.
If the ICH2 did not detect an EOI message start, it will start transferring its arbitration ID, located
in bits [27:24] of its Arbitration ID register (ARBID). Starting in Cycle 2 through Cycle 5, it will
tri-state bit 0, and drive bit 1 to a ‘0’ if ARBID[27] is a ‘1’. If ARBID[27] is a ‘0’, it will also tri-
state bit 1. At the end of each cycle, the ICH2 samples the state of Bit 1 on the APIC bus. If the
ICH2 did not drive Bit 1 (ARBID[27] = ‘0’) and it samples a ‘0’, then another APIC agent started
arbitration for the APIC bus at the same time as the ICH2, and it has higher priority. The ICH2 will
stop driving the APIC bus. Table 5-19 describes the arbitration cycles.
Table 5-19. Arbitration Cycles
Cycle
1
2
3
4
5
Bit 1
EOI
NOT (ARBID[27])
NOT (ARBID[26])
NOT (ARBID[25])
NOT (ARBID[24])
Bit 0
0
1
1
1
1
Comment
Bit 1 = 1: Normal, Bit 1 = 0: EOI
Arbitration ID. If ICH2 samples a different value than it sent, it
lost arbitration.
5-50
82801BA ICH2 and 82801BAM ICH2-M Datasheet