Peripherals are real devices, such as graphics cards or disks controlled by controller chips, or controllers. The IDE disks are controlled by the IDE controller chip and the SCSI disks by the SCSI disk controller chips and so on. These controllers are connected to the CPU and to each other by a variety of buses. Most systems built now use PCI and ISA buses to connect together the main system components. The controllers are processors like the CPU itself, they can be viewed as intelligent helpers with the CPU in overall control of system. All controllers are different, but they have registers which control them. Software running on the CPU must be able to read and write those controlling registers. One register might contain status describing an error. Another might be used for control purposes; changing the mode of the controller. Each controller on a bus can be individually addressed by the CPU, it has to be so that the software device driver can write to its registers and thus control it. Again, the IDE ribbon is a good example, as it gives you the ability to access each drive on the bus seperately. Another example is the PCI bus which allows each device (for example a graphics card) to accessed independently.