3.1.2 Register Set
Each interface defines a register set that is mapped into various PCI address spacetypes. In addition to the registers required by the PCI specification, registers that mapinto the PCI Configuration Space, there are registers that are defined to describe andcontrol the device itself. These latter registers map into the PCI/PCIe bus addressspace which are in turn mapped into the system’s address space. These register setscan be grouped into,
Capabilities Registers
Configuration Registers
Status Registers
Registers of these types exist in both interfaces. They allow the user to configureoperational aspects of the device, provide status on the device and to operate accesschannels to the storage extents within the various device domains.
3.1.3 Queuing Layer
Most interfaces use queues for moving commands, command status and/or data acrossthe transport. Queues are typically used for smoothing the flow of information and data,functioning as elasticity buffers, and possibly maintaining command ordering of sometype. They provide the buffers needed for temporary storage of command andcommand status until they can be processed by the host or device.
Queuing layers must have usage rules associated with them. The mechanisms used toupdate queue head and tail pointers and notifications of when a queue has beenupdated to interested parties are all part of the queuing layer and its associatedprotocols.
3.1.4 Protocol
The elements that make up an interface, whether physical or logical, have rules ofusage. These rules make up a protocol. The term “protocol” will mean different things todifferent people and may even mean slightly different things in usage by the sameperson depending on context. In this paper my usage of “protocol” is as follows.
“The set of rules that apply to the usage of the various physical and logical components
of an interface or transport that must be adhered to by all entities, whether initiators or targets/requestors or responders, that connect to an interface or transport, either physical or logical, in order to facilitate the correct and orderly exchange of information.”
3.1.5 Command Set
The definition of an interface may include the definition of a command set. In this papera command set will be defined as the set of tasks to which the interface is dedicated.For a storage interface typical commands would be read, write, trim, etc.