
Chapter 3
Functional Operation
71
24674
Rev. 3.00
April 2003
AMD-8111 HyperTransport I/O Hub Data Sheet
AMD Preliminary Information
The principal function of scatter/gather (i.e., basically a memory paging mechanism) is to assist the
host operating system in managing memory fragmentation. One logical buffer is split among multiple
physical blocks or pages of host memory. A logical buffer is mapped to physical host memory pages
using a descriptor table. The descriptor table is pointed to by the Buffer Descriptor List Base Address
register. Each descriptor table entry contains the physical memory address of a host memory page, the
length of the page, and other information. Descriptor tables have 32 entries, and are set up by a
software driver. Host memory page sizes of up to 64K samples are supported. The descriptor format is
shown in Table 24.
The current descriptor in use is referenced by the Current Index Value CIV. This value basically
follows the Last Valid Index LVI by being incremented after filling the associated host memory
buffer. The value rolls over from index 31 to index 0. So, to allow a roll-over, the descriptor table has
to be set up with 32 valid entries. No roll-over from an index less than 31 can be negotiated. Other
than that the CIV value can only be set to index 0 by applying reset to the AC ‘97 controller.
After reset, the first descriptor at index 0 is prefetched by PIV. After handing over the prefetched
descriptor index to CIV, the next descriptor in the descriptor table is prefetched at an index
incremented by one (with rolling over after index 31). Also, in the case when CIV equals LVI, the
next descriptor is prefetched, but only processed after LVI has been incremented by software, thus
providing that descriptor to the controller.
This bus master logic, once set up by a software driver, automatically fetches descriptors, transfers
data to and from host memory, generates interrupts, etc. as part of its implemented control
mechanism. This scatter/gather control mechanism is implemented for each data stream.
AC30/MC40
[SRINT]
AC30/MC40
[PRINT]
AC30/MC40
[GPIINT]
AC2C/MC3C
[SRIEN]
AC2C/MC3C
[PRIEN]
AC2C/MC3C
[GPIIEN]
Secondary Resume Interrupt
Primary Resume Interrupt
GPI Interrupt
Table 24.
Descriptor Format
Bit
63
Description
IOC. Interrupt on Completion.
When set, indicates that an interrupt should be generated upon
completion of data transfer to/from the block/buffer.
BUP. Buffer Underrun Policy.
When set to 1b the controller transmits zeros in the case that this
buffer is completed and the last valid buffer has been processed. Otherwise the controller transmits
the last valid sample. This bit typically is set only if this is the last buffer in the current stream.
Reserved
Length.
Length of host physical memory block/buffer in words (i.e., number of 16 bit locations).
BASE_ADDR.
Base address of host physical memory block/buffer.
Reserved
62
61:48
47:32
31:1
0
Table 23.
PCI Interrupt Sources
(Continued)
Interrupt
Register Bit
Enable
Register Bit
Interrupt