RAM-gräns

Det maximala RAM- minnet som installeras i alla datorsystem begränsas av hårdvara, mjukvara och ekonomiska faktorer. Hårdvaran kan ha ett begränsat antal adressbussbitar , begränsat av processorpaketet eller systemets design. En del av adressutrymmet kan delas mellan RAM, kringutrustning och skrivskyddat minne. I fallet med en mikrokontroller utan extern RAM, begränsas storleken på RAM-matrisen av storleken på den integrerade kretsen. I ett paketerat system kan endast tillräckligt med RAM-minne tillhandahållas för systemets erforderliga funktioner, utan möjlighet till tillägg av minne efter tillverkning.

Programvarubegränsningar för användbart fysiskt RAM-minne kan finnas. Ett operativsystem kan endast vara utformat för att allokera en viss mängd minne, med övre adressbitar reserverade för att indikera beteckningar som I/O eller supervisor-läge eller annan säkerhetsinformation. Eller så kan operativsystemet förlita sig på interna datastrukturer med fasta gränser för adresserbart minne.

För massmarknadsdatorer kanske det inte finns någon ekonomisk fördel för en tillverkare att tillhandahålla fler minnessocklar, adresslinjer eller annan hårdvara än vad som krävs för att köra massmarknadsprogramvara. När minnesenheter var relativt dyra jämfört med processorn var ofta RAM-minnet som levererades med systemet mycket mindre än hårdvarans adresskapacitet, på grund av kostnaden.

Ibland kan RAM-gränser övervinnas med hjälp av speciella tekniker. Bankväxling gör att block av RAM-minne kan kopplas in i processorns adressutrymme vid behov, under programkontroll. Operativsystem hanterar rutinmässigt program som körs med hjälp av virtuellt minne , där enskilda program fungerar som om de har tillgång till ett stort minnesutrymme som simuleras genom att byta minnesområden med disklagring.

CPU-adresseringsgränser

Av prestandaskäl måste alla parallella adresslinjer i en adressbuss vara giltiga samtidigt, annars skulle åtkomsten till minnet försenas och prestandan försämras avsevärt. Integrerade kretspaket kan ha en gräns för antalet tillgängliga stift för att tillhandahålla minnesbussen . Olika versioner av en CPU-arkitektur, i IC-paket av olika storlekar, kan designas och byta ut reducerad paketstorlek för minskat antal stift och adressutrymme. En avvägning kan göras mellan adressstift och andra funktioner, vilket begränsar minnet som är fysiskt tillgängligt för en arkitektur även om det i sig har en högre kapacitet. Å andra sidan ger segmenterade eller bankväxlingskonstruktioner mer minnesadressutrymme än vad som är tillgängligt i ett internt minnesadressregister.

Eftersom integrerat kretsminne blev billigare, var det möjligt att designa system med större och större fysiska minnesutrymmen.

Färre än 16 adressstift

Mikrokontrollenheter med integrerad I/O och minne på chipet hade ibland ingen, eller en liten, adressbuss tillgänglig för externa enheter. Till exempel kan en mikrokontrollerfamilj tillgänglig med ett 2 kilobyte adressutrymme ha en variant som tog fram en 11 rads adressbuss för en extern ROM; detta kan göras genom att omtilldela I/O-stift som adressbussstift. Vissa generella processorer med integrerat ROM delar upp ett 16-bitars adressutrymme mellan intern ROM och en extern 15-bitars minnesbuss.

Vissa mycket tidiga datorer hade också processorer med färre än 16 adressstift: MOS Technology 6507 (en version med reducerat antal stift av 6502) användes i Atari 2600 och var begränsad till en 13-linjers adressbuss.

16 adressbitar, 16 adressstift

De flesta 8-bitars mikroprocessorer för allmänt bruk har 16-bitars adressutrymmen och genererar 16 adresslinjer. Exempel inkluderar Intel 8080 , Intel 8085 , Zilog Z80 , Motorola 6800 , Microchip PIC18 och många andra. Dessa processorer har 8-bitars processorer med 8-bitars data och 16-bitars adressering. Minnet på dessa processorer är adresserbart på bytenivå. Detta leder till en minnesadresserbar gräns på 2 16 × 1 byte = 65 536 byte eller 64 kilobyte.

16 adressbitar, 20 adressstift: 8086, 8088, 80186 och 80188

Intel 8086 och derivator, såsom 8088 , 80186 och 80188 , utgör grunden för den populära x86 -plattformen och är den första nivån i IA16-arkitekturen. Dessa var 16-bitars processorer med 20-bitars adressering. Minnet på dessa processorer var adresserbart på bytenivå. Dessa processorer kunde adressera 2 20 byte (1 megabyte).

16 bitars adresser, 24 adressstift: 80286

Intel 80286 CPU använde ett 24-bitars adresseringsschema. Varje minnesplats var byteadresserbar. Detta resulterar i ett totalt adresserbart utrymme på 2 24 × 1 byte = 16 777 216 byte eller 16 megabyte. 286 och senare kunde också fungera i verkligt läge , vilket införde adresseringsgränserna för 8086-processorn. 286:an hade stöd för virtuellt minne.

32-bitars adresser, 24 adressstift

Intel 80386SX var en ekonomisk version av 386DX. Den hade ett 24-bitars adresseringsschema, till skillnad från 32-bitars i 386DX. Precis som 286:an kan 386SX endast adressera upp till 16 megabyte minne.

Motorola 68000 hade ett 24-bitars adressutrymme, vilket gjorde att den kunde komma åt upp till 16 megabyte minne.

32 bitars adresser, 32 adressstift

386DX hade 32-bitars adressering, vilket gjorde att den kunde adressera upp till 4 gigabyte (4096 megabyte) minne.

Motorola 68020 , som släpptes 1984, hade ett 32-bitars adressutrymme, vilket gav den en maximal adresserbar minnesgräns på 4 GB. Alla följande chips i Motorola 68000-serien ärvde denna gräns.

32-bitars adresser, 36 adressstift: Pentium Pro (alias P6)

Pentium Pro och alla Pentium 4s har 36-bitars adressering, vilket resulterade i ett totalt adresserbart utrymme på 64 gigabyte, men det kräver att operativsystemet stöder Physical Address Extension .

64-bitars beräkning

Moderna 64-bitars processorer som design från ARM, Intel eller AMD är vanligtvis begränsade till att stödja färre än 64 bitar för RAM-adresser. De implementerar vanligtvis från 40 till 52 fysiska adressbitar (stöder från 1 TB till 4 PB RAM). Liksom tidigare arkitekturer som beskrivs här är några av dessa designade för att stödja högre gränser för RAM- adressering när tekniken förbättras. I både Intel64 och AMD64 är 52-bitars fysisk adressgräns definierad i arkitekturspecifikationerna (4 PB).

Operativsystemets RAM-gränser

CP/M och 8080 adresseringsgräns

Det första stora operativsystemet för mikrodatorer var CP/M . Detta operativsystem var kompatibelt med Altair 8800 -liknande mikrodatorer , tillverkade av Gary Kildall i kombination med programmeringsspråket PL/M , och licensierades till datortillverkare av Kildalls företag Digital Research efter att det avvisades av Intel . Intel 8080 som användes av dessa datorer var en 8-bitars processor med 16-bitars adressutrymme, vilket gjorde att den fick tillgång till upp till 64 KB minne; .COM körbara filer som används med CP/M har en maximal storlek på 64 KB på grund av detta, liksom de som används av DOS-operativsystem för 16-bitars mikroprocessorer.

IBM PC och 8088 adresseringsgräns

I den ursprungliga IBM-datorn är den grundläggande RAM-gränsen 640 KB. Detta för att möjliggöra hårdvaruadresseringsutrymme i de övre 384 KB ( övre minnesområdet (UMA)) av det totala adresserbara minnesutrymmet på 1024 KB (1 MB). Sätt att övervinna 640k-barriären , som det blev känt, involverade användning av speciella adresseringslägen tillgängliga i 286 och senare x86-processorer. Det totala adressutrymmet på 1 MB var ett resultat av gränsen på 20-bitars adressutrymme som påtvingades 8088-processorn.

Med hjälp av färgvideobuffertutrymmet kan vissa tredjepartsverktyg lägga till minne överst i det konventionella minnesområdet på 640k för att utöka minnet upp till basadressen som används av hårdvaruadaptrar. Detta kan i slutändan fylla på RAM-minnet upp till MDA-basadressen.

Hårdvarutillägg tillät åtkomst till mer minne än vad 8086-processorn kunde adressera genom personsökningsminne. Detta minne var känt som utökat minne . En de facto industristandard utvecklades av LIM-konsortiet, som består av Lotus, Intel och Microsoft. Denna standard var Expanded Memory Specification (EMS). Minnessidor från hårdvara för utökat minne var tillgängliga genom ett adresseringsfönster placerat i ett fritt område i UMA-utrymmet och genom att byta ut det mot andra sidor när det behövdes för att komma åt annat minne. EMS stödde 16 MB utrymme.

Med hjälp av en egenhet i 286 CPU-arkitekturen var det höga minnesområdet (HMA) tillgängligt, som de första 64 KB över gränsen på 1 MB för 20-bitars adressering i x86-arkitekturen.

Genom att använda 24-bitars minnesadresseringsmöjligheterna i 286 CPU-arkitekturen var ett totalt adressutrymme på 16 MB tillgängligt. Minne över gränsen på 1 MB kallades utökat minne . Området mellan 640 KB och 1 MB var dock reserverat för hårdvaruadressering i IBM PC-kompatibla. DOS och andra real mode-program, begränsade till 20-bitars adresser, kunde bara komma åt detta utrymme genom EMS-emulering på det utökade minnet, eller en EMS-analog för utökat minne. Microsoft utvecklade en standard som kallas Extended Memory Specification (XMS). För att komma åt minnet ovanför HMA:n krävdes användning av det skyddade läget för 286 CPU.

Med utvecklingen av i386 CPU-arkitekturen flyttades adressutrymmet till 32-bitars adressering och en gräns på 4 GB. Med denna CPU var åtkomst till 16 MB minnesområden tillgänglig för DOS-program som använde DOS-förlängare , såsom DOS/4GW, MiniGW/16, MiniGW och andra. Inledningsvis utvecklades en de facto industriminnesstandard för interaktion känd som VCPI . Senare ersatte en Microsoft-standard detta, känd som DPMI . Dessa standarder tillät direkt tillgång till 16 MB-utrymmet, istället för personsökningsschemat som används av EMS och XMS.

16-bitars OS/2 RAM-gräns

16-bitars OS/2 var begränsad till 15 MB, på grund av reservutrymme designat i operativsystemet. Den reserverade den översta 1 MB av 16 MB 24-bitars adressutrymme för icke-minne (från 16 MB till 15 MB).

32-bitars x86 RAM-gräns

I icke-PAE-lägen för 32-bitars x86- processorer kan det användbara RAM-minnet begränsas till mindre än 4 GB. Begränsningar för minne och adressutrymme varierar beroende på plattform och operativsystem. Begränsningar för fysiskt minne för 32-bitars plattformar beror också på närvaron och användningen av Physical Address Extension (PAE), som tillåter 32-bitars system att använda mer än 4 GB fysiskt minne.

PAE och 64-bitars system kanske kan adressera upp till hela adressutrymmet för x86-processorn.

Se även

externa länkar