ISA siin

ISA-siin (lühend inglise keelest Industry Standard Architecture) ehk harustandard-arhitektuuri siin on arvuti siinide ISA standardile vastav siin IBM-iga ühilduvates arvutites.
Ajalugu.
ISA-siini töötas välja Mark Deani juhitud meeskond IBM-is projekti IBM PC osana 1981. aastal. See valmis 8-bitise süsteemina ning 1983. aastal laiendati seda XT süsteemi ülesehituse jaoks. Uuem 16-bitine standard, IBM AT-siin, võeti kasutusele 1984. aastal. 1988. aastal valmistas IBM PC-ga ühilduvate arvutite tootja Gang of Nine 32-bitise EISA standardi ning selle protsessi käigus nimetati AT-siin tagasiulatuvalt ümber ISA-siiniks, et vältida IBM-i kaubamärgi rikkumist oma PC/AT arvutiga. IBM disainis 8-bitise versiooni puhverdatud liidesena välise siini jaoks Intel 8088 (16/8-bitisel) protsessoril, mida kasutati algselt IBM PC-del ja PC/XT-del, ning 16-bitise versiooniuuendusena välise siini jaoks Intel 80286 protsessoril, mida kasutati IBM AT-s. Seetõttu oli ISA-siin sünkroonis protsessori kellaga, kuni kõrgetasemelisemad puhverdamise meetodid välja arendati ning kiibistikel kasutusele võeti, et liidesena ühendada ISA palju kiiremate protsessoritega. Loodud selleks, et ühendada laienduskaarte emaplaadiga, lubab ISA-siini masterdamist, kuigi vaid esimesed 16 MB põhimälust on saadaval otseühenduseks. 8-bitine siin töötas sagedusel 4,66 MHz (IBM PC ja IBM PC/XT-de 8088 protsessori taktkiirus), kui 16-bitine siin opereeris sagedusel 6 või 8 MHz (sest 80286 protsessorid IBM PC/AT arvutitel töötasid sagedusel 6 ja 8 MHz, vastavalt varajastel mudelitel ja hilisematel mudelitel). IBM RT/PC kasutas samuti 16-bitist siini. See oli saadaval ka mõnedel IBM-iga mitteühilduvatel masinatel, nagu näiteks vähekestnud AT&amp;T Hobbitil ja hiljem PowerPC-l põhineval BeBoxil.
1987. aastal asus IBM vahetama AT-siini nende firmasisese Mikro kanali ülesehitusega (MCA) püüdes taastada kontrolli PC ülesehituse ning PC turu üle. MCA-l oli mitu omadust, mis hiljem ilmnesid ka PCI-l, ISA järeltulijal, kuid MCA oli suletud standard, mitte nagu ISA (PC-siin ja AT-siin), millele IBM oli väljastanud täielikud spetsifikatsioonid ning isegi vooluringi skeemi. See süsteem oli AT-siiniga võrreldes täiustatum ning arvutitootjad vastasid EISA loomise ja hiljem Vesa kohaliku siiniga (VLB). Tegelikult kasutas VLB mõningaid elektroonikakomponente, mis olid esialgselt mõeldud MCA jaoks, sest komponentide tootjad olid juba piisavalt varustatud nende tootmiseks. EISA ja VLB olid tagasiühilduvad AT (ISA) siini laiendused.
ISA-siinil põhinevate masinate kasutajad pidid teadma spetsiaalset informatsiooni riistvara kohta, mida nad oma süsteemile lisada tahtsid. Kuigi mõned seadmed olid isehäälestuvad ("plug-and-play"), oli see siiski haruldane. Kasutajad pidid tihti seadistama mitmeid parameetreid, kui nad lisasid uusi seadmeid, näiteks Interrupt Requesti (IRQ) liini, I/O aadressi või DMA ("direct memory access") kanalit. MCA oli sellest komplikatsioonist vabanenud ning PCI sisaldas tegelikult mitmeid ideid, mida algul uuriti MCA-ga (kuigi see oli otsesemalt pärinenud EISA-st).
See mure seadistamisega viis lõpuks ISA PnP loomiseni. See oli isehäälestuv süsteem, mis kasutas erinevaid muudatusi riistvarale, süsteemi BIOS-ile ja operatsioonisüsteemi tarkvarale, et ressursijaotust automaatselt hallata. See vajas APIC-iga ("advanced programmable interrupt controller") süsteemi, mis asendas Intel 8259, millega PC oli sündinud.
PCI-pesad olid esimesed füüsiliselt mitteühilduvad laienduspordid, mis otseselt tõrjusid ISA emaplaadilt minema. Esialgu olid emaplaadid enamjaolt ISA-pesadega ja omasid mõnda PCI-pesa. 1990. aastate keskpaigaks olid need pesatüübid tasakaalus ning varsti olid ISA-pesad alles vaid vähestes laiatarbearvutites. Microsofti PC 97 spetsifikatsioon soovitas ISA-pesad täielikult eemaldada, kuigi süsteemi ülesehitus vajas veel ISA olemasolekut, et juhtida disketiseadet, jadavärateid ("serial port") jne. See oli aluseks tarkvaraga ühilduva LPC-siini loomisele. ISA-pesad säilisid veel mõneks aastaks ning sajandivahetuse lähenemisel oli tavaline näha süsteeme, millel olid kiirendatud graafikaport (AGP ehk "Accelerated Graphics Port"), mis asus protsessori lähedal, PCI-pesade rivi ning lõpus üks või kaks ISA-pesa. 2008. aasta lõpus olid isegi disketiseadmed ja järjestikpordid kadumas ning kiibistikel veel alles jäänud ISA (selleks ajaks LPC-siini) väljasuremine oli silmapiiril.
Samuti on märkimisväärne, et PCI-pesad on "ümberpööratud" võrreldes nende ISA vastetega – PCI-kaarte sisestati põhimõtteliselt "tagurpidi", võimaldades ISA ja PCI ühendused paigutada koos emaplaadile. Ainult ühte kahest pistikust saab kasutada igas pesas korraga, kuid see võimaldas suuremat paindlikkust.
"AT Attachment" (ATA) kõvaketta liides pärineb otseselt ISA-st (AT siinist). ATA sai alguse kõvakaardist, mis integreeris kõvakettakontrolleri – tavaliselt ST-506/ST-412 liidesega – ja kõvaketta ühel ja samal ISA adapteril. See oli imelik mehaanilis-struktuuriliselt seisukohalt, sest ISA-pesad ei olnud ette nähtud toetama nii raskeid seadmeid nagu kõvakettad (ja tolle aja 3,5" kõvakettad olid umbes kaks korda pikemad ja raskemad kui kaasaegsed seadmed), seega järgmise põlvkonna integreeritud seadme elektroonika seadmed liigutasid nii ketta kui ka kontrolleri ketta vaheruumi ning kasutasid lintkaablit ja väga lihtsat liidesetahvlit, et ühendada see ISA-pesaga. ATA standard määrab oma olemuselt sellise komponentide paigutuse ning lisaks ühetaolise käsustiku tarkvara ja kettakontrolleri vaheliseks suhtluseks. ATA eraldati hiljem ISA-siinist ning ühendati otse kohaliku siiniga (tavaliselt kiibistikku integreerimise abil), et seda saaks kasutada kõrgemal taktsagedusel ja suurema läbilaskevõimega, kui ISA toetada suutis. (Kui ISA võeti kasutusele AT-siinina, ei olnud mingit vahet "kohaliku" ja "välise" siini vahel ning ei olnud ka kiibistikke). Siiski on ATA-s säilinud detaile, mis näitavad selle seotust ISA-ga. 16-bitine ülekandesuurus on kõige selgem näide; signaali ajastus, eriti PIO režiimides, on samuti väga sarnased ning katkestuste ja DMA mehhanismid on selgelt ISA-lt pärit.
ISA-siini ülesehitus.
PC/XT-siin on kaheksabitine ISA-siin, mida kasutati Intel 8086 ja Intel 8088 süsteemidel IBM PC-des ja IBM PC XT-des 1980. aastatel. Selle 62 kontakti seas olid demultipleksitud ja elektriliselt puhverdatud versioonid 8088 protsessori kaheksast andme- ja 20 aadressiribast koos voolujuhtmete, kellade, lugemise ja kirjutamise taktsignaali, katkestusribade ja muuga. Voolujuhtmed sisaldasid −5 V ja +/–12 V, et toetada pMOS-i ja tarvikurežiimi nMOS vooluringe, sealhulgas dünaamilist RAMi. XT siini ülesehitus kasutab ühte Intel 8259 PIC-i (Programmable Interrupt Controller), andes kaheksa vektoriseeritud ja prioriseeritud katkestusliini. Sellel on neli DMA kanalit, millest kolm on välja toodud XT siini laienduspesade juurde. Nendest kaks on tavaliselt juba eraldatud masina funktsioonide jaoks (disketiseade ja kõvaketta kontroller):
PC/AT-siin on 16-bitine (või 80286-) versioon PC/XT-siinist, mis võeti kasutusele koos IBM PC/AT-ga. IBM nimetas selle ametlikult I/O kanaliks ("I/O Channel"). See laiendab XT-siini lisades teise lühema servaga pesa samasse ritta kaheksa-bitise XT-siini pesaga, mis jääb muutmata, säilitades ühilduvuse enamiku 8-bitiste kaartidega. Teine pesa lisab neli täiendavat aadressiliini, kokku on neid siis 24, ning kaheksa täiendavat andmeliini, mida on kokku 16. See lisab samuti uusi katkestusliine, mis ühendati teise 8259 PIC-iga (ühendatud ühega esimese ridadest), ja neli 16-bitist DMA kanalit ning ka kontroll-liinid, et valida kas 8- või 16-bitised ülekanded.
16-bitine AT-siini pesa kasutas esialgselt kahte standardset serva ühenduspesa varasemates IBM PC/AT arvutites. Kuid AT-ülesehituse ja 16-bitise ISA-siini populaarsuse tõttu võtsid tootjad kasutusele spetsiaalsed 98 kontaktiga pesad, mis ühendasid kaks pesa üheks tervikuks. Neid võib leida peaaegu igas AT-klassi PC-s, mida toodeti pärast 1980. aastate keskpaika. ISA-pesa on tüüpiliselt must (mille tõttu saab teda eristada pruunidest EISA-pesadest ja valgetest PCI-pesadest).
Seadmete arv.
Emaplaadi seadmetel on pühendatud IRQ-d. 16-bitised seadmed saavad kasutada kas PC-siini või PC/AT-siini IRQ-sid. Seega on võimalik ühendada kuni 6 seadet, mis kasutavad igaüks ühte 8-bitist IRQ-d, või kuni 5 seadet, mis kasutavad igaüks ühte 16-bitist IRQ-d. Samaaegselt võivad kuni neli seadet igaüks kasutada ühte 8-bitist DMA kanalit või kuni kolm seadet igaüks kasutada ühte 16-bitist DMA kanalit.
Erinevad siinikiirused.
Esialgselt oli siini kell sünkroonis protsessori kellaga, mille tulemusel olid erinevatel turulolevatel IBM-i "kloonidel" erinevad siini taktsagedused (vahel isegi kuni 16 või 20 MHz). See viis teatud ISA kaartide puhul tarkvara või elektrilise ajastamise probleemideni, kui need töötasid siinikiirustel, mille jaoks need polnud loodud. Hilisemad emaplaadid ja/või integreeritud kiibistikud kasutasid eraldi kella generaatorit või kella jagajat, mis määrasid kindlaks ISA-siini sageduse 4, 6 või 8 MHz või lubasid kasutajal muuta sagedust BIOS setupis. Suuremat siinisagedust kasutades näitavad mõned ISA-kaardid (näiteks kindlad Herculesega ühilduvad videokaardid) märkimisväärset jõudluse suurenemist.
8/16-biti sobimatus.
Mäluaadresside dekodeerimine 8- või 16-bitise ülekanderežiimi selekteerimiseks oli piiratud 128 kB sektsioonideks – A0000..BFFFF, C0000..DFFFF, E0000..FFFFF. See viis probleemideni, kui segada 8- ja 16-bitised kaardid, nagu nad ei suudaks koos eksisteerida samas 128 kB alas.
Praegu kasutusel.
ISA on veel kasutusel ka tänapäeval spetsialiseeritud tööstuslikel eesmärkidel. 2008. aastal väljastas IEI Technologies modernse emaplaadi Intel Core 2 Duo protsessoritele, mis lisaks teistele erilistele I/O omadustele on varustatud kahe ISA-pesaga. Seda turustatakse tööstuslikele ja sõjalistele kasutajatele, kes on investeerinud kallitesse spetsialiseeritud ISA-siiniga adapteritesse, mis pole saadaval PCI siiniga versioonina.
PC/104 siin, mis on kasutusel tööstuslikes ja manustatud rakendustes, on tuletatud ISA-siinist ja kasutab samu signaaliribasid erinevate pesadega. LPC siin on vahetanud välja ISA-siini ühendusena vanemate I/O seadmetega hiljutistel emaplaatidel. Kuigi füüsiliselt on need suhteliselt erinevad, tundub LPC tarkvarale täpselt nagu ISA. Seega ISA eripärasused, nagu näiteks 16 MiB DMA ülempiir (mis vastab Intel 80286 protsessori täielikule aadressiruumile esialgses IBM AT-s), säilivad tõenäoliselt veel mõnda aega.
ATA (PATA).
Nagu eespool selgitatud, oli ISA aluseks Paralleel-ATA (PATA või ATA) liidese loomisel, mida kasutati ATA (a.k.a IDE) ja veel hiljem Serial ATA (SATA) kõvaketastel. Füüsiliselt on ATA lihtne ISA alamhulk, millel on 16 andmebitti, toetus täpselt ühe IRQ ja ühe DMA kanali jaoks, 3 aadressibitti ja lisaks kaks IDE aadressi valimisriba ning mõni unikaalne ATA/IDE kõvaketaste spetsiifiline signaaliriba. ATA läheb ISA haardest palju kaugemale täpsustades füüsilise seadme registrite hulga, mida iga ATA (IDE) ketas peab realiseerima ja millele juurdepääs käib kasutades aadressibitte ja aadressi valiku signaale ATA füüsilise liidese kanalis. Lisaks spetsifitseerib ATA täiskomplekti protokolle ja seadmekäske fikseeritud ketaste juhtimiseks registritega, mille kaudu kõik ATA kõvaketaste operatsioonid läbi viiakse. Järgmine erinevus ISA ja ATA vahel on see, et kui ISA-siin kasutas ühte ainsat standardset taktsagedust (tagasiühilduvuse jaoks), siis ATA-liides pakkus mitut erinevat kiiruserežiimi, suutis valida nende hulgast, et sobituda ühendatud seadme maksimaalse kiirusega, ja lisas suuremaid kiirusi hilisemate ATA standardi versioonidega (kuni 133 MB/s ATA-6 (kõige hilisema) jaoks). Enamasti jooksis ATA palju kiiremini kui ISA.
XT-IDE.
Enne 16-bitist ATA/IDE liidest oli kõvaketaste jaoks 8-bitine XT-IDE (tuntud ka kui XTA) liides, kuigi see polnud pooltki nii populaarne nagu ATA. XT-IDE riistvara on praegu suhteliselt raske leida (kui mõni vanemate arvutite entusiast peaks seda otsima). Mõni XT-IDE adapter oli saadaval 8-bitise ISA-kaardina ja XTA-pesad olid olemas ka Amstradi emaplaatide hilisematel XT-kloonidel. XTA-nõelte süsteem sarnanes väga ATA omaga, kuid ainult kaheksa andmeriba ja kaks aadressiriba olid kasutusel ning füüsilise seadme registrid omasid täiesti teistsugust tähendust. Mõni kõvaketas (näiteks Seagate ST351/X) toetas mõlemat tüüpi liidest, mida sai valida sillusega.
PCMCIA.
Üheks ATA tuletiseks oli PCMCIA spetsifikatsioon, mis erines ATA-st vaid juhtmega adapteri poolest. See tähendas seda, et Compact Flash, mis põhines PCMCIA-l, oli (ja on) ATA-ga vastavuses ja seda saab väga lihtsa adapteri abil kasutada ATA portides.
Emulatsioon siseste kiipide poolt.
Kuigi enamikul arvutitest puuduvad füüsilised ISA-siinid, on kõikidel IBM-ühilduvatel arvutitel – x86 ja x86-64 – ISA-siinid paigutatud virtuaalsesse aadressiruumi. Sisseehitatud kontrollerikiibid (lõunasild) ja protsessorid pakuvad ise selliseid teenuseid nagu näiteks temperatuuri ja pinge näidud läbi nende siinide ISA-seadmetena.
Standardimine.
IEEE algatas 1985. aastal ISA-siini standardisatsiooni, mida kutsuti P996 spetsifikatsiooniks. Vaatamata sellele, et P996 spetsifikatsiooni kohta on avaldatud isegi raamatuid, ei kinnitatud esitatud projekte standardiks.