PIO-mode står för "Processor In-Out-mode"
PIO-mode var den gamla sättet att transportera data mellan disk och minne på PATA-tiden och även tidigare ST506/ST522-gränssnitten i MS-dos och senare windows ända till lite senare NT-versionerna.
Man kom nämligen på att det gick fortare att skyffla data med att läsa en IO-port på WD8003-kortet och lägga det i RAM-minne med processorn än att använda den redan då befintliga DMA-systemet - sedan ansågs DMA vara krångligt att hantera och krävde skillz av programmerarna för att få det att fungera felfritt i alla lägen, så det smet MS ifrån.
Det ironiska är att man alltid har använt DMA vid all hantering av floppydisk, även senare när man kördet tape-streamers via floppykontroller då det hade varit okörbart annars...
De olika PIO-moderna var hårt kopplade till Intels olika processor-generationer och hur fort sagda maskininstruktion orkade jobba.
Var allt frid och fröjd med detta - nej, och de som stötte på problem först var modem-användarna, det var så att den här PIO-mode körande när det skulle läsa och skriva mot disk hade väldigt hög prioritet - långt över prioritet för UART (seriesnöret till modemet) vilket gjorde att man började tappa tecken så fort det var disk-access.
Vid 1200/2400 Baud märktes det inte så mycket men vid 9600 Baud och högre så började det bli besvärande och man tvingades att stoppa in felhantering i olika överföringsprotokoll för att inte få trasiga texter och filer vid överföring.
När farten var 14400-baud och högre så började overheaden vara för stor och trots trixande med parameter i de olika terminalprogrammen för att försöka klara av de slumpmässigt förekommande disk-läsning och skrivning (i DOS så kunde man fortfarande styra mycket själv - ja förutom när data kommer utifrån modemen precis när som helst då...) och man tvingades att använda buffrade UART - dvs. att kretsen själv kunde spara först 2-3 tecken, senare 8 och tom. 16 tecken i en intern buffer för att överleva PIO-skrivningarna till diskarna.
Det som definitivt avlivade PIO-användningen och bokstavligen tvingade MS att införa DMA även på hårddisk-hanteringen - var CD och senare DVD-brännarna - trots att senare brännare hade under-run och under-buffer protection så var det jäkligt besvärligt med dataleveransen och hög risk för misslyckade CD/DVD-skivor så länge man körde PIO-mode, både mot HD och CD-brännaren i sig.
Skulle tro att just detta var orsaken till varför CD/DVD-skivor inte kunde anses riktigt pålitliga då många inte efterkontrollerade/verifierade att skivorna var OK, och senare för sent upptäckte att de inte var det... pga. att man envisades i alla win9x versioner att köra i PIO-mode och DMA-användning var 3'-parts rutiner...
(som parantes så körde linux på DMA mot diskarna redan från börja - men hade fall-back till PIO-mode då det faktiskt fanns diskar som inte hanterade DMA särskilt bra eller buggfritt - tillverkarna av hårddiskarna verifierade inte sina system eftersom 'ingen använde DMA ändå'.
De som hade SCSI-brännare klarade sig bättre då Adaptec mfl. såg till att använda DMA i sina drivrutiner mot sina diskkontroller-kort.
Slutligen PIO-mode är idag en överföringsprotokoll som inte används i disk-sammanhang - men det är en 'fall back' funktion som den tar till om DMA-systemet av någon anledning inte fungerar eller någon drivrutin som inte längre gör jobbet och helt plötsligt drar dataöverföringen väldigt mycket CPU och det hackar och har sig i alla andra program medans överföringen körs - då denna del har väldigt hög prioritet och processorn är närmast tvärlåst för att kunna göra något annat under tiden som denna kör PIO-överföringar...