Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
07/04/09 09:48
Read: times


 
#166726 - PCI latency can be a significant problem
Responding to: ???'s previous message
Thanks for the information.

Michael Karas said:
Surely for some of the very fastest applications in slower style computers the extra bus transfer protocol overhead may be a small performance issue [...]

The original PCI bus has been "slow" for quite a number of years now. The PCI latency timers can be very problematic, since they decide how the PCI bandwidth is time-sliced.

Fast or slow cmputer - the traditional 33MHz 32-bit PCI bus can be quite slow with 133MB/s transfer rate. Yes, there are 66MHz or 133MHz bus expansions and 64-bit PCI. But with the original 133MHz transfer rate, a single IDE disk connected to a PCI board can stream data at well over 50% of the theoretical bandwidth of PCI. A gigabit NIC can also consume way over 50% of the theoretical bandwidth. A USB or FW-400 channel may consume one third of the bandwidth.

Having two boards that have their latency timers set for 255 would mean that the two boards could hog the PCI bus for 510/4 = 127us. This will affect how often it is possible to toggle a pin, or refill a streaming buffer for a third board. Of course, few boards should make use of the highest latency timer setting, but I'm convinced quite a few readers on this forum have noticed stuttering audio because their PCI-based sound card has had to wait too long for being serviced. In some situations, the latencies can be fought with deeper buffers, but in other you can't accept the extra delays.

Luckilly, newer machines have multiple busses, allowing NIC, disk controllers and USB to be separated from the bus(es) for the expansion slots, but users may still need to manually examine and adjust the PCI latency timers, and hope that they don't have a board that requires a very high minimum-grant.

In the end, the bandwidth and latency limitations of the PCI bus has to some parts slowed down the introduction of speedups in a number of areas.

It will be interesting to see what happens in the next 5-10 years. The ISA bus was from a time when everything had to be binary compatible since the programs accessed the hardware directly. Todays operating systems expects all accesses to be through drivers, which will shift the requirements from binary compatible to API compatible. This is a bit similar to Unix, where the original goal was source-code compatible, and you just recompiled for a new architecture. The PC has only been managing to survive because Intel has all the time managed to produce faster binary-compatible processors.

List of 14 messages in thread
TopicAuthorDate
ISP-flash programmer            01/01/70 00:00      
   Re: ISP-flash programmer            01/01/70 00:00      
      USB-DB25 converters are not reliable            01/01/70 00:00      
         RE: USB-Serial / Parallel converters            01/01/70 00:00      
      Not parallel port converters?            01/01/70 00:00      
         USB To "Parallel" Adapters            01/01/70 00:00      
            PCI latency?            01/01/70 00:00      
               PCI Latency....Least of Problem...            01/01/70 00:00      
                  PCI latency can be a significant problem            01/01/70 00:00      
                     PCI Speed            01/01/70 00:00      
                        Bit-banging can be extremely slow            01/01/70 00:00      
                           Other Bit Banging            01/01/70 00:00      
                              Slave processor a need for modern PC            01/01/70 00:00      
   ISP Flash Programmer with USB            01/01/70 00:00      

Back to Subject List