l4-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deva interface


From: Peter 'p2' De Schrijver
Subject: Re: Deva interface
Date: Tue, 18 Jan 2005 01:09:54 +0100
User-agent: Mutt/1.5.6+20040907i

> 
> 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 :)

Cheers,

Peter (p2).

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]