[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Deva interface
Peter 'p2' De Schrijver
Re: Deva interface
Tue, 18 Jan 2005 01:09:54 +0100
> Hey, yeah ;) I would really like to see an understandable explanation
> about what is so special about SCSI, USB etc, at the operating system
> interface level. If that explanation comes without
> hardware-geek-talk, I will be so much more happier.
Well, things which make busses different at the software level :
+ Some busses are directly accessible in the CPU memory map (eg. PCI,
ISA, PCIe, AGP, NUBUS,PCMCIA,Cardbus), others use a message based protocol
and a controller which needs to be driven explicitly by software (USB, SCSI,
1394). This needs some abstraction layer to have the actual device
driver independent from the host bus controller.
+ Addressing : SCSI uses 3 or 4 bits and fixed addresses
USB uses 7 bits and dynamically assigned addresses
1394 uses 16 bits (10 bit bus ID and 6 bit node ID)
and dynamically assigned addresses
PCI provides upto 64bit address space
ISA and PCMCIA provide a 24bit address space
+ Hotplug : More recent busses support hotplug. Ie adding and removing
devices from the bus without powering down the system. This
obviously requires some management at the OS level.
Examples include USB, 1394, Cardbus and PCMCIA.
+ Master/slave versus Multi Master : On some busses all nodes are equal
(eg PCI, 1394). This means any device can launch a transaction to any
other device. This requires handling of incoming transactions by other
devices. In a master/slave oriented bus, transactions are always
initiated by the master. (eg USB). ISA can be used in a Multi Master
mode, but it's rather badly implemented. SCSI is almost never used in a
Multi Master mode, although it can be.
+ Bandwidth management : Some more recent busses support bandwidth
reservation and isochronous transfers. Eg. USB and 1394
+ Multicast : Some busses support multicast. Eg 1394
+ Bridging : Some busses support bridges to allow more devices to
circumvent electrical limitations. Eg PCI and 1394
+ Autoconfiguration : Most modern busses support autoconfiguration of nodes for
ease of use. This needs support from the OS, eg to find out which
nodes are in the system, to configure the nodes, ... Eg USB, 1394,
PCI, Cardbus, PCMCIA.
Feel free to add items here :)
Description: Digital signature