Byte-adressering
Byteadressering i hårdvaruarkitekturer stöder åtkomst till enskilda byte . Datorer med byteadressering kallas ibland bytemaskiner, i motsats till ordadresserbara arkitekturer, ordmaskiner , som får åtkomst till data för ord .
Bakgrund
Den grundläggande enheten för digital lagring är en bit , som lagrar en enda 0 eller 1. Många vanliga instruktionsuppsättningsarkitekturer kan adressera mer än 8 bitar av data åt gången. Till exempel har 32-bitars x86- processorer 32-bitars allmänna register och kan hantera 32-bitars (4-byte) data i enkla instruktioner. Data i minnet kan dock vara av olika längd. Instruktionsuppsättningar som stöder byteadressering stöder åtkomst av data i enheter som är smalare än ordlängden. En åtta-bitars processor som Intel 8008 adresserar åtta bitar, men eftersom detta är hela bredden av ackumulatorn och andra register, kan detta anses antingen byteadresserbart eller ordadresserbart. 32-bitars x86-processorer, som adresserar minne i 8-bitars enheter men har 32-bitars allmänna register och kan arbeta på 32-bitars objekt med en enda instruktion, är byteadresserbara.
Fördelen med ordadressering är att mer minne kan adresseras i samma antal bitar. IBM 7094 har 15-bitars adresser, så den kan adressera 32 768 ord på 36 bitar. Maskinerna byggdes ofta med ett komplett komplement av adresserbart minne. Att adressera 32 768 byte på 6 bitar skulle ha varit mycket mindre användbart för vetenskapliga och tekniska användare. Eller överväg 32-bitars x86-processorer. Deras 32-bitars linjära adresser kan adressera 4 miljarder olika objekt. Med hjälp av ordadressering kan en 32-bitars processor adressera 4 gigaord; eller 16 Gigabyte med den moderna 8-bitars byten. Om 386:an och dess efterföljare hade använt ordadressering, kunde forskare, ingenjörer och spelare alla ha kört program som var 4x större på 32-bitarsmaskiner. Ordbehandling, HTML-rendering och alla andra textapplikationer skulle dock ha gått långsammare.
När datorer var så kostsamma att de bara eller huvudsakligen användes för vetenskap och teknik, var ordadressering det självklara läget. När det blev kostnadseffektivt att använda datorer för att hantera text, gick maskinvarudesigners över till byteadressering.
För att illustrera varför byteadressering är användbar, överväg IBM 7094 , som är ordadresserbar och inte har något begrepp om en byte. Den har 36-bitars ord och lagrar sina sex-bitars teckenkoder sex till ett ord. För att ändra det 16:e tecknet i en sträng måste programmet fastställa att detta är det fjärde tecknet i det tredje ordet i strängen, hämta det tredje ordet, maskera det gamla värdet på det fjärde tecknet från värdet som finns i registret , bitvis eller i den nya, och lagra sedan tillbaka det ändrade ordet. Minst sex maskininstruktioner. Vanligtvis är dessa hänvisade till en subrutin, så varje lagring eller hämtning av ett enstaka tecken innebär att det kostar att anropa en subrutin och återvända. Med byteadressering kan det uppnås i en instruktion: lagra denna teckenkod på den byteadressen. Textprogram är lättare att skriva, de är mindre och går snabbare.
Hybridsystem
Vissa system, som PDP-6/10 och GE-600 / Honeywell 6000- serien, har speciella mekanismer för att komma åt bytes effektivt.
På PDP-6/10 fungerade speciella instruktioner på en bytepekare som inkluderade en ordadress, en bit offset och en bitbredd. LDB / DPB -instruktionerna laddade eller lagrade en byte, och ILDB / IDPB -instruktionen ökade bytepekaren och laddade eller lagrade sedan nästa byte. Dessa instruktioner kan fungera på bitfält med godtycklig bredd.
På GE/Honeywell-maskinerna kunde speciella indirekta adresseringslägen användas på de flesta instruktionstyper och manövreras på en bytepekare som kan fungera på antingen 6-bitars eller 9-bitars bytes.
Ingen av dessa maskiner hade direkt maskinstöd för slumpmässig åtkomst till bytes.