Design an Addressing Scheme

An addressing scheme is a logical means of organization whereby memory locations in the I/O device are labeled (often, according to the data type stored) for access by external devices. Some protocols specify an addressing structure, and it usually makes sense to use this addressing scheme instead of redesigning it.

Whatever addressing scheme is used, it must be broken down into information that is stored in a series of 3 parameters (Info1, Info2, and Info3) by a module in the communication driver named, "VTSGetAddr". This information may be the type of data, byte number, record or file number, or something else that is protocol specific. These parameters should contain whatever information is necessary to build and decode the packet that is sent to and received from the correct location in the I/O device.

This information is also used to coalesce the addresses into blocks so that a single communication message can send or receive a large amount of data. Although single address reads and writes are permitted, block reads and writes increase the throughput and overall performance of the software. Addresses are combined into blocks that are as efficient as possible. For example, if the file number is one of the info parameters, the VTSDriver module waits for a series of read or write requests, looks at the file numbers for each request, and then attempts to combine as many sequential file numbers as possible into a single block.

It may be that an address structure is not defined in the device protocol. In such cases, one will have to be designed. An addressing scheme may divide common addresses into groups, but each address must be unique.