When we began designing Host Adapters all PC’s had shared data bus and single port memory. Except for some special built servers, this situation was standard in PC’s until the early-1990’s. Naturally our first host adapters were Program IO (PIO) which simply means the processor moves the data. Because SCSI disks by their nature have an IO Processor in them (the SCSI controller is an IO Processor) they were inherently fast. The main processor only had to send the command to the SCSI host adapter which passed it on to the SCSI controller on the disk, and the next thing to happen was the SCSI controller would let the host adapter know the data was ready to transfer. Most SCSI controllers would buffer a full sector (512 bytes) or more of data. This is how our first XT Bus eight bit host adapters worked, and this was the ST01/TMC-900 design.
As time went on we learned that reconnecting to the SCSI controller was taking a lot of time, so we added a feature called arbitration and reselection. This allowed the host adapter to complete the reconnection process completely before interrupting the main processor to transfer the data; this was the basis for the TMC-830. One feature all our host adapters had after our first IOMEGA adapter was something called memory mapped IO. This allowed us to transfer data from the host adapter to memory at full memory speeds. All other adapters used something called IO mapping, which was slower than full memory speed. The original SCSI bus could transfer data at 5 megabytes per second, which was faster than the XT bus, because of this there was no need to buffer the data on the host adapter, and our eight bit adapters did not have buffers. The AT bus was faster than the XT bus so latency on the SCSI bus became an issue. The Microchannel bus was much faster than the AT bus. Thus our sixteen bit adapters incorporated a large buffer so that data could be transferred at full memory speed, sixteen bits at a time to Memory.