Monday 11 May 2015

Buses Architecture


Chapter 5: Buses


Introduction to buses: A Bus is a system that moves data from one source to another.
                                       First implementation was in early computing with a System Bus.

Why is it needed:
i) The purpose of buses is to reduce the number of "pathways needed for
   communication between the components, by carrying out all communication
  over a single data channel. This is why the "data highway" is sometimes used.

 ii) Synchronization between components

 iii) HIGH speed transfer between CPU/MEMORY

Characteristic:
Two metrics use to measure data transfer:
i) Total number of bits we can transfer in parallel.
This is called the width of the data

ii) The clock rate or frequency( in Hertz) of the bus.

 Each time data is sent or received is considered one cycle.
                     
Total transfer speed : Bandwidth
A bus with a width of 16 bits and a frequency of 133MHz,
therefore, has a transfer speed equal to:

  • 16*133.106 = 2128*106/s
  • or 212*106/8 = 266*106 bytes/s
  • or 266*106/1000 = 266*103 KB/s
  • 259.7*103/1000 = 266 MB/s
Internal bus: sometimes called the front-side bus or FSB for short or the system bus.
Expansion bus : sometimes called the input/output bus or the control bus.



Front Side Bus or System Bus
  • A Standard CPU system bus is comprised of a Control bus, and Address bus and a Data bus.
  • The FSB can range from speeds of 66MHz, 133Mhz, 100MHz, 266MHz, 400MHz, and up.
Most CPU today add a third bus known as an Expansion bus.










Expansion Bus
  • Used to add additional expansion cards into the CPU.
  • Comes in internal and external
  • Common internal buses are PCI, PCI express and SATA
  • Common external buses are USB, CAN and IEE 1394 (Firewire)



Single Bus Problems

   Lots of devices on one bus leads to :

  • Physically long buses
           ~ Propagation delays –
               Long data paths mean that co-ordination of bus use can adversely effect performance​.    
           ~ Reflections / termination problems​.
  • Aggregate data transfer approaches bus capacity​.
  • Slower devices dictate the maximum bus speed.






 Traditional (ISA) Bus Architecture with cache






High Performance Bus Architecture





Bus Hierarchy

  • The Processor Bus - This is the highest-level bus that the chipset uses to send information to and from the processor. 
  • The Cache Bus Higher-level architectures, such as those used by the Pentium Pro and Pentium II, employ a dedicated bus for accessing the system cache. This is sometimes called a backside bus. Conventional processors using fifth-generation motherboards and chipsets have the cache connected to the standard memory bus. 
  • The Memory BusThis is a second-level system bus that connects the memory subsystem to the     chipset and the processor. In some systems the processor and memory buses are basically the same thing. 
  • The Local I/O BusThis is a high-speed input/output bus used for connecting performance-critical       peripherals to the memory, chipset, and processor. For example, video cards, disk storage devices, high-speed networks interfaces generally use a bus of this. The two most common local I/O buses are the VESA Local Bus (VLB) and the Peripheral Component Interconnect Bus (PCI). 
  • The Standard I/O BusConnecting to the above three buses is the "good old" standard I/O bus, used for slower peripherals (mice, modems, regular sound cards, low-speed networking) and also for compatibility with older devices. On almost all modern PCs this is the Industry Standard Architecture (ISA) bus.


How various bus connect to CPU





Characteristics of Bus


Address, Data, and Control Bus

    There are normally three type of bus in any processor system : 
  • An address bus - this determines the location in memory that the processor will read data from                              or write data to.
  • A data bus - this contain contents that have been read from the memory location or are to be                           written into the memory location.
  • A control bus - this manages the information flow between components indicating whether the                           operation is a read or write and ensuring that the operation happens at the right                           time.
Bus Width

A bus is characterized by the amount of information that can be transmitted at once. It is call bus width. The amount expressed in bits, corresponds to the number of physical lines over which data is sent simultaneously. The term "width" is used to refer to the number of bits that a bus can transmit at once. Typical widths are 8, 16, 32, or 64 bits at a time.
In other words, the bus width means the size of the entity that the bus sends data in one cycle. For example 32 bits, this means that the bus has 32 wires that are used for the transmission. (This may also be different, depending on the transmission protocol).

Bus Speed
Bus speed means how many bits or bytes (1 byte = 8 bits) is the bus able to send in a unit of time (typically second). For example for a computer network it could be 100 Mbs means 100 Megabits (12, 5 Megabytes) in a second. The bus speed is also defined by its frequency. It expressed in Hertz. Frequency means the number of data packets sent or received per second. Each time that data is sent or received is called a cycle.
Besides, the bus speeds also commonly known as front side bus (FSB). It is shows how fast the components can communicate with each other. Faster bus speed means faster computer. You can easily see how a faster FSB helps your computer get more information from one place to the other. For example, if two computers are exactly the same in all ways except one has an FSB speed of 500 MHz and the other has an FSB of 1066 MHz, twice as much data will get through on the second computer compared to the first. This means your computer will get more work done in the same amount of time faster spreadsheet calculations, faster decoding of that movie, or smoother video games.
To increase the bus speed you can either increase the bus width or the frequency of the transmission on the bus.

Bus Bandwidth
Bandwidth, also called throughput, refers to the total amount of data that can theoretically be transferred on the bus in a given unit of time. Using the highway analogy, if the bus width is the number of lanes, and the bus speed is how fast the cars are driving, then the bandwidth is the product of these two and reflects the amount of traffic that the channel can convey per second.

The table below shows the theoretical bandwidth of most of the common I/O buses on PCs today. Note the italics on the word "theoretical"; most buses can't actually transmit anywhere near these maximum numbers because of command overhead and other factors. This is especially true of older buses. 

For example, the theoretical bandwidth of the 8-bit ISA bus might be about  MBytes/sec, but in reality there are wait states inserted during I/O that drop this figure down dramatically. Most of these buses can run at many different speeds; the speed listed is the one most commonly used for the bus type.




  

2.4 Standard Bus Architectur


      Industry Standard Architecture (ISA)

     .  8 BIT ISA Bus 

         - used in the original IBM PC computers
         -  provides eight data lines and 20 addressing lines,enabling the slot to handle 1m of memory.

      . 16 BIT ISA Bus 

          - IBM introduces the 286 processor in 1984.
          - This processor had a 16-bit data bus,
             - communication between the processor and the motherboard as well would now be 16 bits                      wide.
     

       . 32 BIT ISA BUS 

          - After 32- bit CPUs become available.
          - It was some time before 32-bit bus standards become available

       

          
    

      Micro Channel Architecture (MCA)

        
The MCA bus has some pretty impressive features considering that it was introduced in 1987, a full seven years before the PCI bus made similar features common on the PC. In some ways it was ahead of its time, because back then the ISA bus really wasn't a major performance limiting factor:
  • 32 Bit Bus Width: The MCA bus features a full 32 bit bus width, the same width as the VESA and PCI local buses. It had far superior throughput to the ISA bus.
  • Bus Mastering: The MCA bus supported bus mastering adapters for greater efficiency, including proper bus arbitration.
  • Plug and Play: MCA automatically configured adapter cards, so there was no need to fiddle with jumpers. This was eight years before Windows 95 brought PnP into the mainstream!

       


           - Peripheral Component Interconnect (PCI)

                 
The PCI expansion slot was introduced by Intel, but can be found in both PC's and Macs. It displaced previous computer buses (VESA Local Bus and ISA). PCI was then succeeded by the PCI-E or (PCI Express slot), but PCI is still found in most computers because many expansion devices don't need PCI-E capabilities.

It is also possible to get a PCI card that had more PCI expansion slots on it. This would be helpful for a computer that did not have enough PCI expansion slots for further expansions, although most computers would have an ample amount of slots.