Powered By

Free XML Skins for Blogger

Powered by Blogger

Sunday, July 20, 2008

INPUT/OUTPUT CONTROLLER


Input/output controller

Also known as an input/output interface, IOC, or PIOC for Peripheral input/output controller. The input/input controller is a device that interfaces between an input or output device and the computer or hardware device. The input/output controller on computers is commonly located on the motherboard. However, an I/O controller can also be an internal add-on that can either be used as a replacement or to allow for additional input or output devices for the computer.

Features

  • Provides a direct interface between the Z80 microprocessor systems and peripheral devices
  • Has two ports with interrupt-driven handshaking for fast response
  • Has four programmable operating modes:
    • Output mode (both ports)
    • Input mode (both ports)
    • Bidirectional (port A only)
    • Bit control mode (both ports)
  • Has programmable interrupts on peripheral status conditions

Block Diagram


Block Diagram

INTERNAL SPEAKERS

Internal speaker

A very basic speaker found on the computer motherboard that is responsible for beeps, beeping noises and other mono tones. This speaker is very basic and is not a speaker for playing songs, music, or other complex sounds generated in a game.

LOCAL BUS

Bus

When referring to a computer, the bus also known as the address bus, data bus, or local bus is a data connection connection between two or more devices connected to the computer. For example, a bus enables a computer processor to communicate with the memory or a video card to communicate with the memory.

A bus is capable of being parallel or a serial bus and today all computers utilize two types of buses, an internal or local bus and an external bus. An internal bus enables a communication between internal components such as a computer video card and memory and an external bus is capable of communicating with external components such as a SCSI scanner.

A computer or devices bus speed or throughput is always measured in bits per second or megabytes per second.

All buses consist of two parts -- an address bus and a data bus. The data bus transfers actual data whereas the address bus transfers information about where the data should go.

The size of a bus, known as its width, is important because it determines how much data can be transmitted at one time. For example, a 16-bit bus can transmit 16 bits of data, whereas a 32-bit bus can transmit 32 bits of data.

Every bus has a clock speed measured in MHz. A fast bus allows data to be transferred faster, which makes applications run faster. On PCs, the old ISA bus is being replaced by faster buses such as PCI.

Nearly all PCs made today include a local bus for data that requires especially fast transfer speeds, such as video data. The local bus is a high-speed pathway that connects directly to the processor.

Several different types of buses are used on Apple Macintosh computers. Older macs use a bus called NuBus, but newer ones use PCI.

In networking, a bus is a central cable that connects all devices on a local-area network (LAN). It is also called the backbone.

Saturday, July 19, 2008

MB/Mb

  1. Mb is short for megabit and is 1,000,000 bits or 106, this term is often used to express the rate data is transferred. For example, "10/100 Mbps" represents 10 or 100 megabits per second, the common speed of a standard network card.
  2. Also abbreviated as meg, MB is short for megabyte. A MB is a common measurement used with computer storage media. A Megabyte is equal to 1,048,576 bytes; however, the IEC defines that one MB is equal to 1,000,000 bytes, or 106. Therefore, a MB could really equal either of these values.

MCA


Micro Channel Architecture

MCA was introduced by IBM in 1987. MCA, or the Micro Channel bus, was a competition for ISA bus. The MCA bus offered several additional features over the ISA such as a 32-bit bus (although there was also a 16-bit bus), automatically configure cards (similar to what Plug and Play is today), and bus mastering for greater efficiency.
(MCA) IBM's proprietary 32-bit bus, used in high-end PS/2 personal computers. Micro Channel is designed for multiprocessing. It eliminates potential conflicts that arise when installing new peripheral devices. MCA is *not* compatible with either EISA or XT bus architecture so older cards cannot be used with it.
As with the ROM BIOS in the first IBM PCs, figuring out the Micro Channel's secrets has been an arduous task of reverse engineering ever since the PS/2 line was announced. Consequently, the MCA has never become as wide spread as the competing EISA standard.

Micro Channel Architecture

The Micro Channel architecture consists of an address bus, a data bus, an arbitration bus, a set of interrupt signals, and support signals. It uses synchronous and asynchronous procedures for data transfer between memory, I/O devices, and a controlling master. The controlling master can be a DMA controller, the system master (system processor), or a bus master. The features of the Micro Channel architecture are:

  • I/O data transfers of 8-, 16-, 24-, or 32-bits within a 64KB address space (16-bit address width).
  • Memory data transfers of 8-, 16-, 24-, or 32-bits within a 16MB (24-bit address width) or 4GB (32-bit address width) address space.
  • An arbitration procedure that enables up to 15 devices and the system master to bid for control of the channel.
  • A basic transfer procedure that allows data transfers between masters and slaves.
  • A direct memory access (DMA) procedure that supports multiple DMA channels. Additionally, this procedure allows a device to transfer data in bursts.
  • An optional streaming data procedure that provides a faster data-transfer rate than the basic transfer procedure and allows 64-bit data transfers.
  • Address- and data-parity enable and detect procedures.
  • Interrupt sharing on all levels.
  • A flexible system-configuration procedure that uses programmable registers.
  • An adapter interface to the channel using:
    • A 16-bit connector with a 24-bit address bus and a 16-bit data bus
    • A 32-bit connector with a 32-bit address bus and a 32-bit data bus
    • An optional matched-memory extension
    • An optional video extension.
  • Support for audio signal transfer (audio voltage-sum node).
  • Support for both synchronous and asynchronous data transfer.
  • An exception condition reporting procedure.
  • Improved electromagnetic characteristics.

Micro Channel Participants

All Micro Channel participants are either masters or slaves. There are three types of masters and three types of slaves.

An adapter can incorporate either a master function, a slave function, or a combination of both. For example, an adapter might be designed to operate primarily as a DMA slave. However, it would also respond to certain I/O read and I/O write operations from the system master, making it an I/O slave. If the adapter contains RAM or ROM that is in the memory address space, it would be a memory slave when that memory was accessed.

Masters

A master is a participant that drives the address bus and data transfer control signals that cause data transfer to or from a slave. The channel supports up to 16 masters. The central arbitration control point and the Micro Channel arbitration procedure control ownership of the channel. The central arbitration control point grants ownership at the end of the arbitration procedure to highest-priority requester. The three types of masters are:
  • System master A system master controls and manages the system configuration. It arbitrates for use of the channel. A system master can also be a default master. The default master is the master that owns the channel when no other master requires the channel. The system master supports data transfers with an I/O slave or a memory slave.
  • Bus master A bus master arbitrates for use of the channel. A bus master supports data transfers with an I/O slave or a memory slave.
  • DMA controller A DMA controller does not initiate arbitration for the channel; a DMA slave initiates and completes the arbitration procedure. The DMA controller monitors the arbitration bus to detect the DMA slave's arbitration level. A DMA controller supports data transfers with DMA slaves and memory slaves.

Slaves

A slave is a participant that sends and receives data under the control of a master. The slave responds to signals that are driven by the master. A slave is selected by the controlling master using Micro Channel procedures. The channel supports 8-, 16- and 32-bit data bus size in a slave. The data port size (8-, 16-, or 32-bits) describes the maximum width of the data transfer. For example, a 32-bit slave can support 8-, 16- 24-, or 32-bit data transfers. During a data transfer cycle, an 8-bit data port on a 32-bit slave acts like an 8-bit slave. The three types of slaves are:
  • I/O slave I/O slaves are selected by their address within the I/O address space.
  • Memory slave Memory slaves are selected by their address within the memory address space.
  • DMA slave A DMA slave is selected by arbitration or, optionally, by its address within the I/O address space. A DMA slave initiates a request for the channel and arbitrates for the channel with arbitrating masters and other DMA slaves. The DMA controller provides the DMA slave with the address and data transfer signals required for data transfers. During a DMA write operation, the DMA slave provides the data, and the memory slave stores it. During a DMA read operation, the memory slave provides the data, and the DMA slave stores it.

Addressing Model

The Micro Channel addressing model consists of a memory address space and an I/O address space. During an I/O cycle, the 64KB I/O address space is addressed by the low-order 16 bits of the address bus. During a memory cycle, the memory address space is addressed by the address bus. The signals used for an address of up to 4GB are MADE 24 , M/-IO , and A0 through A31 of the address bus. An address of up to 16MB uses A0 through A23 plus MADE 24 and M/-IO .

Micro Channel Buses and Signals

The Micro Channel architecture consists of:

  • An arbitration bus and associated signals
  • An address bus and associated signals
  • A data bus and associated signals
  • Interrupt signals
  • Other Micro Channel signals
  • Optional extensions for:
    • Matched memory extension signals
    • Video extension signals.
Throughout this document, a minus sign (-) in front of a signal name indicates that the signal is active when it is at a low-voltage level. When no minus sign appears, the signal is active when it is at a high-voltage level. For example, -CMD specifies the signal is active low. Also, ARB/-GNT is in the ARB state when it is at a high level and is in the -GNT state when it is at a low level.

Arbitration Bus and Associated Signals

The arbitration bus and associated signals allow arbitrating participants (the system master, bus masters, and DMA slaves) to request and gain ownership of the channel. The resolution of multiple arbitration requests results in granting ownership of the channel to the highest-priority requester.

ARB0 - ARB3:
Arbitration Bus: These signals make up the arbitration bus. They are driven by the system master, bus masters, and DMA slaves to present their arbitration level when requesting ownership of the channel. ARB0 (least significant) through ARB3 (most-significant) support up to 16 arbitration levels.

The highest value of the arbitration bus (hex F) has the lowest priority, and the lowest value (hex 0) has the highest priority. To participate in the arbitration procedure, an arbitrating participant must present its arbitration level immediately after the rising edge of ARB/-GNT . All arbitrating participants monitor the arbitration bus, and those with lower priority arbitration levels withdraw them by not driving less-significant arbitration bits.

The arbitration level of the highest-priority requester is valid on the arbitration bus after a settling time.

After the channel is granted to the highest-priority requester, that requester continues to drive its arbitration level on the bus.

ARB/-GNT:
Arbitrate/-Grant: Only the central arbitration control point drives this signal. The negative-to-positive transition of ARB/-GNT initiates an arbitration cycle. When in the ARB state, this signal indicates an arbitration cycle is in progress. When in the -GNT state, this signal indicates the acknowledgment from the central arbitration control point to the arbitrating participants and the DMA controller that channel ownership has been granted. This signal is driven to the ARB state by the central arbitration control point following the end of transfer (EOT).

Note: The system master can perform data transfers during arbitration ( ARB/-GNT in the ARB state).

-BURST:
-Burst: This signal is optionally driven by the winning arbitrating participant or the DMA controller after ARB/-GNT is driven to the -GNT state. This signal indicates to the central arbitration control point that the controlling master will use the channel for one or more consecutive data transfer cycles. This type of data transfer is called burst transfer .

-PREEMPT:
-Preempt: This signal is used by arbitrating participants to request use of the channel through arbitration. Any arbitrating participant that requires ownership of the channel drives -PREEMPT active, causing an arbitration cycle to occur. When a participant is granted control of the channel, it stops driving -PREEMPT . All arbitrating participants that have not been granted ownership keep their requests pending by continuing to drive -PREEMPT active. All masters and DMA slaves that use burst transfer must receive -PREEMPT .

Address Bus and Associated Signals

The address bus and the associated signals are used by the controlling master to assert the memory address or the I/O address ( M/-IO ), to enable a slave to latch the address and status signals ( -S0, -S1 ), and to indicate that the memory address is greater than 16MB.

A0 - A23:
Address Bits 0 through 23: These lines, along with A24 through A31 , make up the address bus. These lines are driven by the controlling master to address memory, I/O slaves, and, optionally, DMA slaves. A0 is the least-significant bit and A23 is the most-significant bit. These 24 address lines allow access of up to 16MB of memory. Only the lower 16 address lines ( A0 through A15 ) are for I/O operations, and all 16 lines must be decoded by the I/O slave. Valid addresses, generated by the controlling master, are unlatched on the channel and, if required, must be latched by the slaves using either the leading or trailing edge of -ADL or the leading edge of -CMD .

A24 - A31:
Address Bits 24 through 31: These lines, along with A0 through A23 are driven by the controlling master to address memory attached to the channel. A0 is the least-significant bit and A31 is the most-significant bit. These additional address lines allow access of up to 4GB of memory. Valid addresses, generated by the controlling master, are unlatched on the channel and, if required, must be latched by the slaves using either the leading or trailing edge of -ADL or the leading edge of -CMD .

Note: A0 - A31 are used to transfer data during a 64-bit streaming data cycle.

-ADL:
-Address Decode Latch: This signal, driven by the controlling master, is provided as a convenient way for the slave to latch valid address decodes and status bits.

-APAREN:
-Address Parity Enable: This optional signal is driven active by the controlling master when the master places an address on the bus. This signal indicates to a slave that address parity is supported.

APAR0 - APAR3:
Address Parity Bits 0 through 3: These optional signals are driven by the controlling master when an address is placed on the address bus. These signals represent the odd parity of the address bits on the address bus during both read and write operations. (Odd parity is the condition where the total number of 1s in a byte of data, including the parity bit, is odd.) APAR(0) represents the odd parity of A(0-7) . APAR(1) represents the odd parity of A(8-15) . APAR(2) represents the odd parity of A(16-23) . APAR(3) represents the odd parity of A(24-31) .

During both read and write operations, a master generates a parity bit for each valid address byte, and the receiving slave optionally performs the parity checking to ensure the integrity of the address.

Note: APAR0 - APAR3 represent data parity during 64-bit streaming data cycle when -DPAREN is active.

APAR(0) represents the odd parity of D(32-39) . APAR(1) represents the odd parity of D(40-47) . APAR(2) represents the odd parity of D(48-55) . APAR(3) represents the odd parity of D(56-63) .

-CD SFDBK (n):
-Card Selected Feedback: This signal is driven active by the selected slave as a positive acknowledgement of the slave's selection. The (n) indicates this signal is unique to each channel connector (one independent signal per connector). This signal is unlatched. The slave does not drive -CD SFDBK during the configuration procedure ( -CD SETUP active). Any slave, not on an adapter card, provides a signal equivalent to the -CD SFDBK signal.

Note: Memory that contains diagnostic code must not drive -CD SFDBK during the diagnostic operation.

MADE 24:
Memory Address Enable 24: This signal is driven by the controlling master and decoded by all memory slaves, regardless of the size of their address-space. When this signal is active, A24 - A31 are undefined.

  • A master driving only A0 - A23 drives MADE 24 active.
  • A master driving A0 - A31 drives MADE 24 :
    • Active when all bits in A24 - A31 are 0
    • Inactive when any bit in A24 - A31 is 1.
M/-IO:
Memory/-Input Output: This signal is driven by the controlling master and decoded by all slaves. This signal selects a memory cycle or an I/O cycle. When this signal is in the M state, a memory cycle is selected. When this signal is in the -IO state, an I/O cycle is selected.

-SFDBKRTN:
Selected Feedback Return: This optional signal is generated by the system logic from the AND of the -CD SFDBK( n ) signals being driven by slaves. This signal is a positive acknowledgement to the master from the slave that the slave is at the address specified by the master. Masters that support address parity must receive this signal. The -CD SFDBK signal from each slave, not on an adapter card, is included in the AND to generate -SFDBKRTN .

Data Bus and Associated Signals

The data bus is used to transfer either 8, 16, 24, or 32 bits of data. The associated signals indicate the amount of data transferred by the master in a single transfer cycle, the size of the slave's data port, and the type (read or write) of the data transfer.
D0 - D15:
Data Bits 0 through 15: These lines, along with D16 - D31 , make up the data bus. The data bus is driven by any master or slave that is transferring data. These lines ( D0 - D15 ) provide data bits 0 through 15. D0 is the least-significant bit; D15 is the most-significant bit. The 16-bit transfers from the controlling master to an 8-bit slave are converted by the controlling master to two 8-bit transfers, and are transmitted on lines D0 through D7 . An 8-bit slave must use D0 through D7 to communicate with the controlling master.

D16 - D31:
Data Bits 16 through 31: These lines, along with D0 - D15 , make up the data bus. The data bus is driven by any master or slave that is transferring data. These lines ( D16 - D31 ) provide data bits 16 through 31. D0 is the least-significant bit; D31 is the most-significant bit. The 32-bit transfers from the controlling master to an 8-bit slave are converted to four 8-bit transfers by the controlling master, and are transmitted on lines D0 through D7 . The 32-bit transfers from the controlling master to a 16-bit slave are converted to two 16-bit transfers by the controlling master, and are transmitted on lines D0 through D15 .

-BE0 - -BE3:
-Byte Enable 0 through 3: These signals are used during data transfers with 32-bit slaves to indicate which data bytes are valid on the data bus. Data transfers of 8, 16, 24, or 32 contiguous bits are controlled by -BE0 through -BE3 during transfers involving 32-bit slaves only. These signals are driven by the controlling master when TR 32 is inactive, and by the central translator logic (for those operations involving a 16-bit master with a 32-bit slave) when TR 32 is active. These signals are not latched on the bus and, if required, are latched by 32-bit slaves.

-CD DS 16 (n):
-Card Data Size 16: This signal is driven by 16-bit and 32-bit slaves to indicate a 16-bit or 32-bit data port at the location addressed. The (n) indicates this signal is unique to each channel connector (one independent signal per connector). This signal is derived from an unlatched address decode. -CD DS 16 is not driven by 8-bit slaves and is inactive for an 8-bit data port. Any slave, not on an adapter card, provides a signal equivalent to the -CD DS 16 signal.

-CD DS 32 (n):
-Card Data Size 32: This signal, along with -CD DS 16 , is driven by 32-bit slaves to indicate a 32-bit data port at the location addressed. The (n) indicates this signal is unique to a channel connector position (one independent signal per connector). -CD DS 32 is derived from an unlatched address decode. -CD DS 32 is inactive for an 8- or 16-bit data port. Any slave, not on an adapter card, provides a signal equivalent to the -CD DS 32 signal.

CD CHRDY (n):
Channel Ready: This signal is normally active (ready) and is driven inactive (not ready) by a slave to allow additional time to complete a channel cycle. The (n) indicates this signal is unique to each channel connector (one independent signal per connector). Any slave, not on an adapter card, provides a signal equivalent to the -CD CHRDY signal.

During a read cycle, a slave ensures that data is valid within the time specified after releasing the signal to a ready state. The slave also holds the data long enough for the controlling master to sample the data. A slave can also use this signal during a write cycle if more time is needed to store the data. This signal is initially driven from a valid unlatched address decode and status active.

CHRDYRTN:
Channel Ready Return: This signal is the AND of CD CHRDY ( n ) . It is driven by the system logic. If all slaves drive CD CHRDY active, this signal is active. CHRDYRTN allows the controlling master to monitor the ready information. The -CD CHRDY signal from each slave, not on an adapter card, is included in the AND to generate -CHRDYRTN .

-CMD:
-Command: This signal is driven by the controlling master and is used to define when data on the data bus is valid. The trailing edge of this signal indicates the end of the bus cycle. During write cycles, the data is valid as long as -CMD is active. During read cycles, the data is valid after the leading edge, but before the trailing edge, of -CMD and is held on the bus until after -CMD goes inactive. Slaves can latch address and status information with the leading edge of -CMD .

-DPAREN:
-Data Parity Enable: This optional signal is driven active by the participant when data is placed on the data bus. This signal indicates that the data parity signals are valid.

Note: APAR(0) - APAR(3) represent data parity during 64-bit streaming data cycles when -DPAREN is active.

DPAR0 - DPAR1:
Data Parity Bits 0 and 1: These optional signals are driven by the participant when data is placed on the data bus. These signals represent the odd parity of the data bits on the data bus during both read and write operations. (Odd parity is the condition where the total number of 1s in a byte of data, including the parity bit, is odd.) DPAR(0) represents the odd parity of D(0-7) . DPAR(1) represents the odd parity of D(8-15) .

During write operations, a master generates a parity bit for each data byte being transferred, and the receiving slave optionally performs the parity checking to ensure the integrity of the data. During read operations, a slave generates a parity bit for each valid data byte, and the receiving master optionally performs the parity checking to ensure the integrity of the data.

DPAR2 - DPAR3:
Data Parity Bits 2 and 3: These optional signals are driven by the participant when data is placed on the data bus. These signals represent the odd parity of the data bits on the data bus during both read and write operations.

DPAR(2) represents the odd parity of D(16-23) . DPAR(3) represents the odd parity of D(24-31) .

During write operations, a master generates a parity bit for each data byte being transferred, and the receiving slave optionally performs the parity checking to ensure the integrity of the data. During read operations, a slave generates a parity bit for each valid data byte, and the receiving master optionally performs the parity checking to ensure the integrity of the data.

-DS 16 RTN:
-Data Size 16 Return: This signal is driven by the system logic. This signal is the AND of -CD DS 16 ( n ) from each channel connector. If any slave drives its -CD DS 16 active, this signal is active.

This signal allows the controlling master to monitor the information about the selected slave's data port size. The -CD DS 16 signal from each slave, not on an adapter card, is included in the AND to generate -DS 16 RTN .

-DS 32 RTN:
-Data Size 32 Return: This signal is driven by the system logic. This signal is the AND of -CD DS 32 ( n ) from each channel connector. If any slave drives its -CD DS 32 active, this signal is active. This signal allows the controlling master to monitor the information about the selected slave's data port size. The -CD DS 32 signal from each slave, not on an adapter card, is included in the AND to generate -DS 32 RTN .
     -DS 16      -DS 32
RTN RTN Data Port Size
1 1 8-Bit Data Port
1 0 Not Valid
0 1 16-Bit Data Port
0 0 32-Bit Data Port

-MSDR:
-Multiplexed Streaming Data Request: This optional signal is driven by a slave to indicate to the controlling master that the slave is capable of 64-bit streaming data transfers.

-SBHE:
-System Byte High Enable: This signal is driven by the controlling master to indicate and enable transfers of data on D8 - D15 . It is used with A0 to distinguish between high-byte transfers ( D8 - D15 ) and low-byte transfers ( D0 - D7 ) and double-byte (16-bit) transfers to 16-bit data ports. All 16-bit slaves receive this signal.

-SD STROBE:
-Streaming Data Strobe: The controlling master and the slave use this signal to clock data on and off the data bus. This optional signal is driven by the controlling master. This signal also indicates to the slave that the controlling master supports streaming data.

-SDR(0):
-Streaming Data Request 0: This optional signal is driven by a slave to indicate to the controlling master that the slave is capable of streaming data, and also indicates the maximum clocking rate the slave supports.

-SDR(1):
-Streaming Data Request 1: This optional signal is driven by a slave to indicate to the controlling master that the slave is capable of streaming data, and also indicates the maximum clocking rate the slave supports.
     -SDR(0)     -SDR(1)      Decoded Streaming Rate
1 1 Basic Transfer Cycle
0 1 10 MHz maximum (100 ns minimum cycle)
0 0 20 MHz maximum (50 ns minimum cycle)
1 0 Reserved

-S0, -S1:
-Status 0, -Status 1: These status signals are driven by the controlling master to indicate the start of a data transfer cycle and also define the type of data transfer. When used with M/-IO , memory read or write cycles are distinguished from I/O read or write cycles. These signals are latched by the slave, as required, using the leading edge of -CMD , or the leading or trailing edge of -ADL.

Data is transferred to or from the data bus based on -CMD and a latched decode of the address, the status lines ( -S0 exclusive-OR -S1 ), and M/-IO .

Slaves must support a full decode of -S0 and -S1 . The following table shows the states of M/-IO , -S0 , and -S1 in decoding I/O and memory read and write commands.

     M/-IO       -S0          -S1         Function
0 0 0 (see note below)
0 0 1 I/O Write Command
0 1 0 I/O Read Command
0 1 1 Inactive
1 0 0 (see note below)
1 0 1 Memory Write Command
1 1 0 Memory Read Command
1 1 1 Inactive

Note: These decodes are used in the 20 MHz streaming data transfer. Some systems execute system specific basic transfer procedures with both status signals active.

An I/O write command instructs an I/O slave to receive the data from the data bus. An I/O read command instructs an I/O slave to drive its data onto the data bus.

A memory write command instructs a memory slave to receive the data from the data bus. A memory read command instructs a memory slave to drive its data onto the data bus.

-TC:
-Terminal Count: This signal is driven by the DMA controller and provides a pulse during a read or write command to the DMA slave to indicate that the terminal count of the current DMA channel has been reached. This indicates to the DMA slave that this is the last cycle to be performed. -TC is driven active on the channel during DMA operations only.

TR 32:
Translate 32: This signal is driven inactive by 32-bit controlling masters and received by the central translator logic. The signal indicates to the central translator logic that the controlling master is performing data steering. TR 32 can also be received by any 32-bit slave.

Interrupt Signals

-IRQ 3-7, -IRQ 9-12, and -IRQ 14-15:
-Interrupt Request: An interrupt request is generated when an I/O slave drives one of the ]interrupt requestä signals low. These signals make up the set of interrupt signals. The polarity of these signals makes it possible for multiple slaves to concurrently share the same interrupt level.

MEMORY BUS


MEMORY BUS

The memory bus is used to transfer information between the cpu and main memorythe RAM in your system. This bus is usually connected to the motherboard chipset North Bridge or Memory Controller hub chip. Depending on the type of memory your chipset (and therefore motherboard) is designed to handle, the North Bridge runs the memory bus at various speeds. The best solution is if the memory bus runs at the same speed as the processor bus. Some computers also have a back side bus which connects the CPU to a memory cache. This bus and the cache memory connected to it are faster than accessing the system RAM via the front side bus. The maximum theoretical bandwidth of the front side bus is determined by the product of its width, its clock frequency and the number of data transfers it performs per clock tick. For example, a 32-bit (4-byte) wide FSB with a frequency of 100 MHz that performs 4 transfers/tick has a maximum bandwidth of 1600 MB/second. The number of transfers per tick is dependent on the technology used, with (for example) GTL+ offering 2 transfers/tick, EV6 4 transfers/tick, and AGTL+ 8 transfers/tick.

Systems that use PC133 SDRAM have a memory bandwidth of 1066MBps, which is the same as the 133MHz CPU bus. In another example, Athlon systems running a 266MHz processor bus also run PC2100 DDR-SDRAM, which has a bandwidth of 2133MBpsexactly the same as the processor bus in those systems. Systems running a pentium 4 with its 400MHz processor bus also use dual-channel RDRAM memory, which runs 1600MBps for each channel, or a combined bandwidth (both memory channels run simultaneously) of 3200MBps, which is exactly the same as the Pentium 4 CPU bus. Pentium 4 systems with the 533MHz bus run dual-channel DDR PC2100 or PC2700 modules, which match or exceed the throughput of the 4266MBps processor bus.

Running memory at the same speed as the processor bus negates the need for having cache memory on the motherboard. That is why when the L2 cache moved into the processor, nobody added an L3 cache to the motherboard. Some very high-end processors, such as the Itanium and Itanium 2 and the Intel Pentium 4 Extreme Edition, have integrated 2MB,4MB of full-core speed L3 cache into the CPU. However, the most recent high-performance chips, such as the new Pentium Extreme Edition, use only L1 and L2 cache. Thus, it appears that L2 cache will continue to be the most common type of secondary cache for the foreseeable future.


History and Current usage

The front side bus has been a part of computer architecture since applications first started using more memory than a CPU could reasonably hold.

Most modern front side buses serve as a backbone between the CPU and a chipset. This chipset (usually a combination of a northbridge and a southbridge) is the connection point for all other buses in the system. Buses like the PCI, AGP, and memory buses all connect to the chipset to allow for data to flow between the connected devices. These secondary system buses usually run at speeds derived from the front side bus speed.

In response to AMD's Torrenza initiative, Intel has opened up its FSB CPU socket to third party devices . Prior to this announcement, made in Spring 2007 at Intel Developer Forum in Beijing, Intel had very closely guarded who had access to FSB, only allowing Intel processors in the CPU socket. This is now changing, the first example being FPGA co-processors, a result collaborations of Intel-Xilinx-Nallatech and Intel-Altera-XtremeData .

Related Component Speeds

CPU

The frequency at which a processor (CPU) operates is determined by applying a clock multiplier to the front side bus (FSB) speed. For example, a processor running at 550 MHz might be using a 100 MHz FSB. This means there is an internal clock multiplier setting (also called bus/core ratio) of 5.5; the CPU is set to run at 5.5 times frequency of the front side bus: 100 MHz × 5.5 = 550 MHz. By varying either the FSB or the multiplier, different CPU speeds can be achieved.

Memory

Setting a FSB speed is related directly to the speed grade of memory that a system must use. The memory bus connects the northbridge and RAM, just as the front side bus connects the CPU and northbridge. Often, these two buses must operate at the same frequency. Increasing the front-side bus to 170 MHz means also running the memory at 170 MHz in most cases.

In newer systems, it is possible to see memory ratios of "4:5" and the like. The memory will run 5/4 times as fast as the FSB in this situation, meaning a 133 MHz bus can run with the memory at 166 MHz. This is often referred to as an 'asynchronous' system. It is important to realize that, due to differences in CPU and system architecture, overall system performance can vary in unexpected ways with different FSB-to-memory ratios.

In complex image, audio, video, gaming, and scientific applications where the data set is large, FSB speed becomes a major performance issue. A slow FSB will cause the CPU to spend significant amounts of time waiting for data to arrive from system memory.

Peripheral Buses

Similar to the memory bus, the PCI and AGP buses can also be run asynchronously from the front side bus. In older systems, these buses operated at a set fraction of the front side bus frequency. This fraction was set by the BIOS. In newer systems the PCI, AGP, and PCI Express peripheral buses often receive their own clock signals, which eliminates their dependence on the front side bus for timing.

Overclocking

Overclocking is the practice of making computer components operate beyond their stock performance levels.

Many motherboards allow the user to manually set the clock multiplier and FSB settings by changing jumpers or BIOS settings. Many CPU manufacturers now "lock" a preset multiplier setting into the chip. It is possible to unlock some locked CPUs; for instance, some Athlons can be unlocked by connecting electrical contacts across points on the CPU's surface. For all processors, increasing the FSB speed can be done to boost processing speed.

This practice pushes components beyond their specifications and may cause erratic behaviour, overheating or premature failure. Even if the computer appears to run normally, under heavy load, problems may appear. For example, during Windows Setup, you may receive a file copy error or experience other problems . Most PCs purchased from retailers or manufacturers, such as Hewlett-Packard or Dell, do not allow the user to change the multiplier or Front Side Bus settings due to the probability of erratic behavior or failure. Motherboards purchased separately to build a custom machine are more likely to allow the user to edit the multiplier and FSB settings in the PC's BIOS.

Pros and Cons

The front side bus as it is traditionally known may be disappearing. Originally, this bus was a central connecting point for all system devices and the CPU. However, in recent years this has been breaking down with increasing use of individual point-to-point buses. The front side bus has recently been criticized by AMD as being an old and slow technology that bottlenecks today's computer systems. While a faster CPU can execute individual instructions faster, this is wasted if it can't fetch instructions and data as fast as it can execute it; when this happens, the CPU must wait for one or more clock cycles until the memory returns its value. Further, a fast CPU can be delayed when it must access other devices attached to the FSB. Thus, a slow FSB can theoretically become a bottleneck that slows down a fast CPU. In reality, todays most technologically advanced desktop CPUs do not use the front side bus architecture to its fullest extent, and the bottleneck does not become a problem in server equipment until eight or even sixteen CPUs are placed on one FSB.

Furthermore, although the front side bus architecture is an aging technology, it does have the advantage of high flexibility and low cost. There is no theoretical limit to the number of CPUs that can be placed on a FSB, and although performance will not scale perfectly linearly across additional CPUs (due to the architecture's bandwidth bottleneck), the benefits from multithreading due to the sheer number of processors obtainable through this architecture fully outweighs the cost of bandwidth loss.