Programmed Input/Output
Programmed Input/Output (auch bekannt als Programmable Input/Output, kurz PIO) ist ein Regelwerk zur Steuerung des Datenaustauschs zwischen dem Prozessor und den Peripheriegeräten, insbesondere ATA-Geräten, eines Computers.
Der Prozessor kann dabei mittels Lese- und Schreibbefehlen auf den Speicherbereich eines Gerätes zugreifen und damit Daten zwischen Gerät und Prozessorregistern transportieren. Soll der eigentliche Datenaustausch zwischen Peripheriegerät und Hauptspeicher erfolgen, was häufig der Fall ist, so muss der Prozessor die per PIO erhaltenen Daten in einem weiteren Schritt in den Hauptspeicher schreiben.
Ausführende Einheit für diesen Datenaustausch ist die CPU, d. h., es wird Rechenleistung des Prozessors in Anspruch genommen. Das ist einer der Hauptnachteile dieses Datenaustauschverfahrens. Durch Nutzung von DMA (direct memory access), das den Datenaustausch ohne direkte Mitwirkung der CPU regelt, kann für größere Datenmengen eine deutliche Performanceverbesserung erreicht werden. Für kleinere Datenmengen wie beispielsweise Kontrollinformationen ist PIO häufig die bessere Wahl.
PIO bei Festplatten
Aus Kompatibilitätsgründen unterstützen Festplatten PIO-Modi zum Transfer der Daten. Aus Performancegründen werden jedoch hauptsächlich DMA-Transfers eingesetzt.
Speziell für den Zugriff auf Festplatten wurden verschiedene Modi spezifiziert, die sich in der erreichbaren Geschwindigkeit unterscheiden. Es gibt fünf ATA-PIO-Modi, welche in unterschiedlichen Versionen spezifiziert wurden und folgende Geschwindigkeiten bieten:
Modus | Übertragungsrate | Jahr |
---|---|---|
PIO 0 | 3,33 MByte/s | 1989 |
PIO 1 | 5,22 MByte/s | |
PIO 2 | 8,33 MByte/s | |
PIO 3 | 11,11 MByte/s | 1994 |
PIO 4 | 16,66 MByte/s |
Der PIO-Modus 5 mit Transferraten bis zu 22,2 MByte/s wurde nicht mehr implementiert, sondern durch den schnelleren Ultra-DMA-Modus mit 33 MByte/s ersetzt.