16-bitine arvutiarhitektuur

Arvutiarhitektuuris on 16-bitiste täisarvude, mäluaadresside või muude andmeüksuste maksimaalseks laiuseks 16 bitti (2 baiti). 16-bitised protsessorite ja aritmeetika-loogikaplokkide arhitektuurid põhinevad sellise suurusega andme- ja aadressisiinidel või registritel. 16-bitisteks nimetatakse ka mikroarvutite põlvkonda, milles kasutati 16-bitiseid mikroprotsessoreid.
16-bitine register mahutab 2¹⁶ erinevat väärtust. 16-s bitis on võimalik salvestada märgiga täisarve ulatuses −32 768 (−1 × 2¹⁵) kuni 32 767 (2¹⁵ – 1), märgita täisarve aga ulatuses 0 kuni 65 535 (2¹⁶ – 1). Kuna 2¹⁶ on 65 536, on 16-bitiste mäluaadressidega protsessoril otsene juurdepääs bait-adresseeritavale mälule suurusega 64 KiB.

16-bitine arhitektuur

1951. aastal valminud MIT Whirlwind I on tõenäoliselt esimene 16-bitine arvuti. Teiste varaste 16-bitiste arvutite hulka kuuluvad IBM 1130, HP 2100, Data General Nova ja DEC PDP-11. Mõned varasemad 16-bitised mikroprotsessorid on National Semiconductori poolt loodud IMP-16 ja PACE, Western Digitali MCP-1600, HP BPC ja TI TMS9900. Teiste märkimisväärsete 16-bitiste protsessorite hulka kuuluvad Intel 8086, Intel 80286, WDC 65C816 ja Zilog Z8000. Intel 8088 on binaarselt ühilduv Intel 8086-ga ning selle registrid on 16 bitti laiad. Kuigi selle välissiin on 8 bitti lai, võib see täita 16-bitiseid aritmeetilisi käske.
16-bitised protsessoreid enam personaalarvutite tööstuses sisuliselt ei kasutata. Manusrakendustes kasutatakse neid vähem kui 32-bitiseid (või 8-bitiseid) protsessoreid.

16/32-bitine Motorola 68000 ja Intel 386SX

Motorola 68000 nimetatakse mõnikord 16-bitiseks, sest selle sisemised ja välised andmesiinid on 16 bitti laiad. Siiski võib seda pidada 32-bitiseks protsessoriks selle 32 bitti laiade üldregistrite ja 32-bitist aritmeetikat toetavate aritmeetikakäskude tõttu. See on mikroprogrammeeritud protsessor kolme sisemise aritmeetika-loogikaploki üksusega. Motorola 68000 tarkvara on loomult 32-bitine ja edasiühilduv teiste sama perekonna 32-bitiste protsessoritega. 68008 on Motorola 68000 versioon 8-bitise välise andmeraja ja 1 megabaidise adresseerimisega 48-viigise DIP (Dual In-line Package) versiooni jaoks ning 4 megabaidise adresseerimisega 52-viigise PLCC (Plastic Leaded Chip Carrier) versiooni jaoks. Mitu Apple Inc. Macintoshi mudelit kasutasid kulude säästmiseks 32-bitiseid 68020 ja 68030 protsessoreid 16-bitisel andmesiinil.
Intel 80286 asendusprotsessor Intel 386SX on 32-bitine protsessor 32-bitise aritmeetika-loogikaploki ja sisemiste 32-bitiste andmeradade, 16-bitise välissiini ja 24-bitise adresseerimismeetodiga.
Sega Mega Drive’i 68000 protsessor oli mängukonsooli rohkelt reklaamitud tunnusjoon. Tõhusa reklaamimise tõttu nimetatakse mängukonsoolide ajastut vahemikus 1988–1995 (neljas põlvkond) 16-biti ajastuks.

Inteli 16-bitised mälumudelid

16-bitine Inteli arhitektuur võimaldab erinevaid mälumudeleid ehk võimalusi konkreetse mäluasukoha juurdepääsuks. Põhjus konkreetse mälumudeli kasutamiseks peitub assembleri käskude või viitade jaoks tarviliku mälu suuruses.

Tilluke (tiny)

Kood ja andmed asuvad samas segmendis (registrid CS, DS, ES ja SS viitavad kõik samale segmendile). Alati kasutatakse 16-bitiseid viitasid. Koodi, andmete ja pinu kogusuurus ei ületa 64 KB.

Väike (small)

Kood ja andmed on erinevates segmentides, kasutatakse lühikesi viitasid. Seal on 64 KB ruumi koodi ja 64 KB andmete/pinu jaoks.

Keskmine (medium)

Koodis kasutatakse pikki viitasid, mis võimaldavad suurust 1 MB. Andmeviitade tüüp on jätkuvalt lühike.

Kompaktne (compact)

Kompaktne mälumudel on keskmise vastand. Andmete jaoks kasutatakse pikki ja koodi jaoks lühikesi viitasid.

Suur (large/huge)

Koodi- ja andmeviidad on pikad.

16-bitine rakendus

IBM-ühilduvate ja Winteli riistvara platvormide kontekstis on 16-bitine rakendus tarkvara, mis on kirjutatud operatsioonisüsteemidele MS-DOS, OS/2 1.x või varajastele Microsoft Windowsi versioonidele, mis algselt kasutasid 16-bitiseid Intel 8088 ja Intel 80286 mikroprotsessoreid. Sellised rakendused kasutasid 20-bitiseid või 24-bitiseid segmente, et suurendada adresseeritavate mälukohtade vahemikku. Enam kui 2¹⁶ baiti (64 kilobaiti) korraldusi sisaldavad programmid vajasid seega erijuhtnööre oma 64-kilobaidiste segmentide vahel ümberlülituste tegemiseks. See suurendas 16-bitiste rakenduste programmeerimise keerukust.