When multiple devices need to use the Micro Channel bus at the same
time, these devices participate in arbitration. Every device that
can arbitrate for control of the bus is assigned a priority level, known
as an arbitration level, that is used to determine which device should
control the bus next. The arbitration level for each device is contained
in a software file, known as an adapter description file (ADF).
that contend for control of the Micro Channel bus at the same time must
not have the same arbitration level. Occasionally, arbitration-level conflicts
occur between devices. When this occurs, you can use the system programs
to change the arbitration level of one of the conflicting devices.
Micro Channel architecture has a fairness
feature, which ensures that each device gets a turn to control the bus,
even if it has a low priority level. The fairness feature guarantees
that none of the devices are locked out of the bus and that each device
can gain control of the bus within a given amount of time. When you
configure your server, you can disable the fairness feature for a device
so that it controls the bus more than other devices. A device for
which fairness has been disabled can monopolize the bus. Disabling
the fairness feature for more than one device is risky. You could
cause some devices for which the fairness feature is enabled to be completely
locked out of the bus, including the microprocessor. Therefore, it
is best to leave the fairness feature enabled for all devices.
The central arbitration control
point is a location in the system master where contending devices
send their arbitration signals. It does not actually decide which
device should control the Micro Channel bus; the contending devices make
that determination among themselves, using the arbitration logic that is
programmed into the devices. However, it is the central arbitration
control point that actually grants control after the decision is made.
Burst Data Transfer
In non-Micro Channel servers, transferring each byte of
data is a two-step process. First, the microprocessor signals that
it is going to send a byte of data. Then it sends the byte and signals
that it is going to send the next byte. The microprocessor cannot
perform any other tasks while it is managing a data-transfer operation
in this way. Micro Channel architecture supports burst data transfers,
in which data is sent in multiple bytes without intervention by the microprocessor.
This improves system performance and allows faster data transfers between
In some servers, data from the hard disk is moved into
a buffer on the hard-disk controller before it is transferred across the
bus. (A buffer is a temporary storage space that compensates for
a difference in the rate of data flow when data is transferred from one
device to another.) Micro Channel architecture allows burst data
transfers from the hard disk to memory, without placing the data in a buffer
on the hard-disk controller.
Bus Parity Checking
Bus parity checking is a method of verifying that data
has not been changed during a data-transfer operation. Bus parity
checking uses an extra bit, known as a parity bit, that is sent with each
byte of data as it is transferred across the bus. The parity bit
is set to 1 or 0 so that each byte has an odd number of 1's (if the server
uses odd parity) or an even number of 1's (if the server uses even parity).
If the parity (odd or even) of the received byte does not match the parity
of the byte as it was sent, an error occurred during transmission and the
receiving device can request that the data be sent again.
Bus parity checking has become a common feature in most
servers. It is not 100% accurate, but it greatly reduces the chance
for errors. It is essential for most operations because of fast I/O
devices, complex I/O configurations, and large memory subsystems.
Channel Check Reporting and Error Logging
Errors can occur not only during data-transfer operations,
but also while data is stored in system memory. The contents of a
memory location can be changed accidentally, a memory module can be defective,
or other hardware failures can occur in the server.
Your server uses channel-check reporting to detect hardware
errors and error logging to record the errors. These records can
be used to diagnose and correct problems in the server.
The channel-check reporting facility automatically locates
random and intermittent errors while your server is operating. Information
about any failing component is saved in the error log so that you can identify
and replace the failing component.
Direct memory access (DMA)
Direct memory access (DMA) is a method of transferring
data between system memory and I/O devices without requiring intervention
by the microprocessor. DMA is more efficient than programmed I/O,
in which the microprocessor reads the data from the sending device and
then writes it to the receiving device. In DMA data transfers, data
can bypass the system microprocessor as it moves between system memory
and I/O devices. DMA improves server performance because the microprocessor
does not have to interrupt its processing activities to manage data transfers.
The DMA controller
is integrated into the processor board and manages all DMA data transfers.
Transferring data between system memory and an I/O device requires two
steps. Data goes from the sending device to the DMA controller and
then to the receiving device. The microprocessor gives the DMA controller
the location, destination, and amount of data that is to be transferred.
Then the DMA controller transfers the data, allowing the microprocessor
to continue with other processing tasks.
When a device needs to use the Micro Channel bus to send
or receive data, it competes with all the other devices that are trying
to gain control of the bus. This process is known as arbitration.
The DMA controller does not arbitrate for control of the bus; instead,
the I/O device that is sending or receiving data (the DMA slave) participates
in arbitration. It is the DMA controller, however, that takes control
of the bus when the central arbitration control point grants the DMA slave's
Data bus parity
support provides for the verification of correct data as
it is transferred between the processor and memory and over the Micro Channel.
All data moved between individual components on the Processor Complex use
this feature (processor, memory controller DMA, Micro Channel controller)
Dual Path Memory
Allows both the processor and busmasters to access memory concurrently
though two paths.
Dual Bus Your server has a
dual bus, meaning that it has one data bus from the microprocessor to the
memory controller and another data bus from the Micro Channel devices to
the memory controller. This allows the microprocessor to read from
and write to system memory while a bus master is controlling the Micro
The following list summarizes dual-bus operation:
o When the microprocessor is reading
from or writing to its internal cache or to the optional 256KB cache, the
bus master that is controlling the Micro Channel bus has exclusive access
to system memory.
o The microprocessor and the bus
master that is controlling the Micro Channel bus can use the system memory
at the same time, provided that they do not try to use the same memory
o When a bus master is reading
from or writing to an I/O device or an adapter in a Micro Channel expansion
slot, the microprocessor has exclusive access to system memory.
In servers that do not have a dual bus, the microprocessor
is the default master, which means that it has to wait until no other masters
are controlling the Micro Channel bus before it can have access to system
controller which will automatically correct any single bit errors on the
fly (98% of memory errors are single bit); all 2 bit errors are found which
halt system; some 3 and 4 bit errors are found which halt system; single
bit errors are logged with optional software (NetFinity?) and multiple
bit errors are logged in NVRAM.
Dual Path Memory. Although Base 1 allows both the
processor and busmasters to access memory concurrently through two paths,
the Base 3 and 4 has buffers at both paths to provide better performance.
Also the buffer on the adapter side (I/O buffer) uses packet data transfers
for writes. This means 16 Bytes are collected and this packet is written
in one cycle to memory as opposed to writing for every 4 bytes received
(as with unbuffered systems).
Product Data Allows software (LAN Network Manager,
LAN Mgmt Utilities/2) to obtain a unique serial number (identifier) on
the processor complex which is in ROM (like Base 3). Also provides unique
ID (model/submodel), type/model/ serial number, manufacturing ID, planar
FRU number, and planar part number.
This system provides a means of storing and retrieving vital product
data (VPD). Vital-product data contains product-specific information that
describes various adapters and components within a system. This information
can be used in inventory and asset management.
In contrast to system configuration information, which is related to
resource allocation, vital-product data contains information related to
the physical characteristics, such as part number, engineering level, and
product name. For example, the vital-product data for the Server
95 system consists of the model and submodel bytes, the system type number,
the system serial number. The vital-product data for the system board
includes the system board serial number, a
replaceable-unit part number, and the manufacturing location.
The vital-product data for the processor complex includes the replaceable-unit
part number, a unique part identifier, and the manufacturer ID.
The VPD information for the system, system board, and any installed
options that also provide vital-product data can be read using BIOS calls
or operating-system utilities (if they are provided). For more information,
refer to Interrupt 15H, Vital Product Data System Service ((AH)=D2H) in
the IBM Personal System/2 and Personal Computer BIOS Interface Technical
IBM 32 bit MCA busmasters that support 40 MB/sec streaming:
+Token-Ring LANStreamer MC 32
+Auto LANStreamer MC 32
+Dual LANStreamer MC 32
+EtherStreamer MC 32, Dual EtherStreamer MC 32
+SCSI-2 Fast/Wide Adapter/A
+SCSI-2 RAID Controller (in 95 A), SCSI-2 F/W Strm RAID Adapter/A
+All FDDI Micro Channel adapters
+3515 Adapter/A (actually supports 80 MB/sec if bus supports it)
+3514 Array Adapter (for external 3514 RAID 5 Array)
+ARTIC960 Co-processor Adapter (actually supports 80 MB/sec)
+TURBOWAYS 100 ATM Adapter
+Ethernet Quad PeerMaster Server Adapters (80 MB/sec)
A master is a device that can own the Micro Channel bus.
When a master owns the bus, it can send data to or receive data from a
slave (a device, an adapter, or system memory) without interrupting the
microprocessor. There are three types of masters: the system
master, bus masters, and the DMA controller.
The system master assigns system resources, manages the
system configuration, issues the commands of the primary operating system,
and can grant control of the Micro Channel bus to a bus master.
Your server supports up to 15 bus masters. Bus masters
take control of the Micro Channel bus and transfer data directly to and
from I/O devices and memory without requiring intervention by the system
microprocessor or DMA controller.
A bus master can have its own microprocessor, instruction
cache, and memory. By taking over some of the work of the system
microprocessor, bus masters create a multiprocessing environment and increase
overall system performance.
The DMA controller manages data transfers between DMA
slaves and memory slaves. This type of transfer is often called a
third-party DMA operation. See Direct Memory Access Controller and
Direct Memory Access for more information.
A slave is a device that is selected by a controlling
master as either the source or the target for a transfer. A slave
can also begin a service request, such as an interrupt. There are
three types of slaves: memory, I/O, and DMA.
A memory slave is a device that provides a block of system
memory. Memory slaves respond to read and write operations by placing
the requested data on the Micro Channel bus or by writing data from the
bus to random access memory (RAM). A memory slave can be selected
by any of the three types of Micro Channel masters.
An I/O slave is a device that communicates with or controls a separate
piece of equipment, such as a printer. An I/O slave can be selected
by the system master or by a bus master.
A DMA slave is the only type of slave that can initiate arbitration.
DMA slaves require the DMA controller to manage data transfers. A
DMA slave can be selected by the DMA controller or by a bus master.
The streaming-data procedure allows high-speed transfer
of data between bus masters and slaves. This procedure supports high-speed
transfers of large blocks of data for devices such as hard disk drives
and network adapters.
The streaming-data procedure transfers blocks of sequentially
stored data. In basic data-transfer operations, a target address
is assigned for every byte of data that is transferred. The streaming-data
procedure assigns a target address only to the first byte of data, and
the rest of the data in the block follows in sequence and is assigned to
sequential addresses. A streaming-data transfer operation takes 100
nanoseconds to send 4 bytes of data. This is a data-transfer rate
of 40 million bytes per second, which is twice as fast as basic data-transfer
The Micro Channel bus has 32 data lines and 32 address
lines. During streaming-data transfer operations, the 32 address
lines are used only at the beginning of a transfer cycle. Then they
remain idle for the rest of the cycle. The multiplexed streaming-data procedure
uses the address bus as another 32-bit data bus, allowing data to be transferred
64 bits at a time.
Control Block provides for the enhanced transfer of command,
data, and status information between busmasters (and between busmasters
and the system processor) to give increased performance. Capabilities such
as command chaining, data chaining, and block data moves frees the processor
from waiting for command completion before issuing the next command and
frees the processor for other tasks while a busmaster operates in parallel.
Adapters and device drivers must support this feature (many do today).
Channel Check support provides for the signaling of errors
synchronously with the transfer in progress. Adapters and device drivers
must be designed to support this feature (none do today).
controller which uses IBM's most advanced technology packaging
to integrate 5 major chips (memory, I/O, DMA controllers, FIFO buffers,
ECC logic) into one chip. This technology allows the high-speed interconnects
and large streaming pipes that form the SynchroStream engine to provide
state-of-the-art performance. The SynchroSteam controller synchronizes
data traveling between major subsystems and allows it to stream in parallel,
at full bandwidth, to each subsystem concurrently.
At the heart of the computer, data is moving continually between processor,
cache, main memory and the Micro Channel. Typically there is a single path
to memory, so fast devices like processors have to wait for much slower
I/O devices, slowing down the performance of the entire system to the speed
of the slowest device. The IBM SynchroStream controller was designed to
overcome this problem. It synchronizes the operation of fast and slow devices
and streams data to these devices to ensure all devices work at their data
at their optimum levels of performance.
Synchrostream is an intelligent device in that it predicts
what data the devices will need and loads it from memory before it is requested.
When the device wants the data, it is presented to it from the IBM SynchroStream
controller and the device can continue working immediately, as it does
not have to wait for the data to be collected from memory. When devices
are moving data into memory, the IBM SynchroStream controller holds the
data, and writes it to memory when it is most efficient to do so. Since
devices are not moving data to and from memory directly, but to the SynchroStream
controller, each device has its own logical path to memory. Devices do
not have to wait for other slower devices.
The SynchroStream engine operates by using a spinning
valve that continuously forms different connections between pipes. Once
a connection is made, data is streamed to the Micro Channel or processor
at the highest possible rates. Parallel paths allow data to stream to multiple
sources at the same time. The pipes even continue to stream after the connection
is changed. Data is always streaming to the Micro Channel and processor,
allowing them to operate at full bandwidth.
IBM used the latest in chip design technology to integrate
all SynchroStream functions on a single chip, improving performance dramatically
by not having to move data between chips. The IBM SynchroStream controller
uses a single RISC-like chip architecture to move data fast and efficiently
between memory and requesting devices, as shown in Figure 8.
Figure 8. SynchroStream Technology
The IBM SynchroStream controller is located on the Pentium
processor complexes, featured in the Server 95 and Server 95 Array systems.
The implementation on the processor complex means that current PS/2 Server
95 and PS/2 Model 90 users can easily upgrade their machines to have IBM
SynchroStream controller functions.
Key advantages of the SynchroStream technology:
· Fast single chip implementation
Competitive designs are multi-chip and have the performance overhead
of moving information between chips. SynchroStream technology provides
a Zero Wait State Pentium implementation.
IBM SynchroStream is intelligent in that it predictively loads data
from memory so that requesting devices are not kept waiting. In addition,
writes to memory are stored within the IBM SynchroStream controller and
written to memory to optimize memory utilization.
· RISC-like architecture
Pipelines are used to move data in a fast, efficient manner between
memory and the requesting device.
· Stream data to Micro Channel devices
SynchroStream can stream data to Micro Channel devices at 40MBps.
· Upgradable system implementation
Competitive system designs do not have the unique Upgradable Processor
Complex design so you cannot upgrade to SynchroStream-like functions from