}

Ordenadoreen memoria hedatua

1993/06/01 Romo Uriarte, Jesus Maria Iturria: Elhuyar aldizkaria

IBM PC-ren memoria

Orain dela urte gutxi merkatuan nagusi ziren PC eta PC-XT izenez ezagutzen diren ordenadoreak gaur egun guztiz zaharkiturik daude, baina haientzat idatzitako programen bateragarritasuna gordetzearren haiek izandako muga batzuk, herentzia gisa, ondorengo ordenadoreei iritsi zaizkie.

Elhuyar-ko azken alean adierazi genuenez, 0 eta 640 Kb artean dagoen memoriari Memoria Arrunta (Conventional Memory) esaten zaio. Bere gaineko hurrengo 384 kilobyteko zatia Goi-memoria (Upper Memory) izenez ezagutzen dugu, eta 640 Kb eta 1024 Kb bitartekoa da. (Ikus 1. irudia).

8088 mikroprozesadorea eta DOS Sistema Eragilea

640 Kb eta 1024 Kb zenbaki magiko horien zergatia, aspaldiko IBM PC ordenadore pertsonalerako erabili zen 8088 mikroprozesadorearen barne-diseinutik dator.

Intel etxearen 8088 mikroak daukan Helbide-busa 20 hariz osaturik dago. Hari bakoitzetik une jakin batean bit bat trasmititzen denez, guztira eta gehien jota 220 = 1.048.576 helbide ezberdin edo gelaska helbidera daiteke.

Memori hitzaren luzera 8 bitekoa (byte bat) da eta helbide batek definizioz gelaska bakarra zehazten du. Beraz, memoriak izan dezakeen edukiera 220 = 1.048.576 gelaska = 1.048.576 byte = 1.024 Kb = 1 Mb.

Aipatutako memoriaren 1024 Kb horiek helbideratzeko 20 bit behar dira. Mikroprozesadore honen arkitektura dela eta Datu Busa 16 bitekoa da, eta gogoratu helbideak Memori Taulatik Kontrol-unitatera Datu Busean zehar garraiatzen direla (Elhuyar 70).

Beraz, nola lor daiteke 20 biteko helbide bat 16 biten bidez adieraztea? Horretarako helbideratze segmentatua asmatu da: 20 biteko helbide erreala 16 biteko bi zenbakiz adieraziz [segmentua (oinarria) eta offset-a (desplazamendua)]. 8088 mikroprozesadoreak segmentu/offset bikotea harturik benetako helbide fisikoa kalkulatzen du ondoko algoritmoa aplikatuz:

10h * segmentua + desplazamendua

1. irudia.
8086/8088 mikroprozesadorearen Memori mapa: Memoria Arruntak, Oinarrizko Datuak eta Sistema Eragilea derrigorrez gordetzen ditu, Erabiltzailearen Aplikaziorako geratzen den tokia azken Programa Egoiliarra dagoen posiziotik hasi eta 640 Kb-eraino doan zatia da.

Hardware-ikuspegitik begiraturik PC XT-ren bihotza 8088 mikroa izan bazen, software aldetik DOS Sistema Eragilea aukeratu zen. Eta DOS Sistema Eragilepean egikaritzen diren programek Memoria Arrunta erabiltzen dute.

Aplikazio-programa modernoen interfacea (operadorearen eta ordenadorearen arteko komunikazioa) asko erraztu da, grafiko, leiho, menu, sagu eta abar luze batean oinarritzen direlako; baina funtzio guzti hauek behar duten memoria oso handia da eta 1. irudian ikus daitekeenez Memoria Arrunta urria izanik erabiltzailearen aplikaziorako geratzen den tokia oso txikia suerta daiteke. Horiek horrela, eta 8088 motako ordenadoreetan, exekutatu nahian dabilen aplikazioren batek itzulitako “Memoria gutxiegi sisteman” mezua ohizkoa da.

Ordenadore batek zenbat memoria duen jakiteko, biderik zuzenena DOS Sistema Eragileko CHKDSK komando iragankorra egikaritzea da (2. irudia). CHKDSK komandoak memoria osoaren tamaina eta une horretan libre dagoena erakusten ditu. Kontuan izan informazio gehiago nahi izanez gero eta DOS Sistema Eragilearen 4.0 bertsioa edo berriagoa izanez gero, MEM komandoa erabil daitekeela (3. irudia).

2. irudia. CHKDSK komandoak, diskoaren egoera aztertu ondoren bere informazioa eta memoriarena eskaintzen ditu. Memoria Arrunta (lehenengo 640 Kb) baino ez du ezagutzen.

INTEL 8086/8088, 80286 eta 80386/80486 mikroprozesadoreen memori mapa

640 Kb-eko memoria sasoi batean nahikoa zela pentsatu bazen ere, urte gutxiren bueltan oso txikia geratu da. Horregatik, eta muga hori gainditu beharrean, bide bi jorratu dira:

  • 1024 Kb-etik gora dagoen Memoria Zabalduaren erabilpena garatuz. Ikus (Elhuyar 71)
  • Memoria Hedatua asmatuz

Bide bat edo bestea ondo ulertzeko, mikroprozesadorearen arabera dagoen memori mapa azter dezagun (ikus 4. irudia).

Memoria Arrunta azaldutzat joko dugu eta ez gara gehiago ariko.

Goi-memoriako 384 Kb-ak, 64 Kb-eko sei segmentutan zatitzen dira. Goi-memoriak duen banaketa ezberdina izan daiteke ordenadore batetik bestera, baina oro har hitz eginez ondoko itxura izan dezake:

  • A eta B segmentuak, Bideo-memoriarentzat erreserbaturik daude.
  • C segmentua, bideo eta diskoaren kontrolatzaileentzat, gehienetan hutsik izaten da.
  • D segmentua, Memoria Hedatuaren Orrialde-leihoa.
  • E segmentua gehienetan hutsik.
  • F segmentuan, ROM BIOS-en errutinak pilatzen dira.

Azken segmentu honekin 1024 Kb helbideraino iristen gara eta hemendik aurrera dagoen memoriari Memoria Zabaldua esaten zaio. Argi dago 8088 motako ordenadoreek horrelakorik ez dutela eta 640 Kbyten muga gainditzeko geratzen zaien aukera bakarra Memoria Hedatuarena dela.

3. irudia. MEM komandoa, (4.0 bertsiotik aurrera) Memoria Arrunta eta bere gainetik egon daitekeen memoria anpliatua ere ezagutzen ditu. Gure kasu honetan 1 Mb-eko AT bat da, 640 Kb Memoria Arrunta eta Goi-memoriari (384 Kb) extended deitzen dio Sistema Eragileak.

Memoria Hedatua

MS-DOS Sistema Eragileak orain arte estandar gisa segitu badu, Memoria Hedatuari esker izan da. Memoria Hedatuaren bidez 640 Kb-eko muga hautsi eta programa handiagoak exekuta daitezke.

Ezer baino lehen esan beharra dago Memoria Hedatua programadoreek asmatutako tranpa bat besterik ez dela. Memoria Zabaldua 1 Mb-etik gora dagoena bada, Memoria Hedatuak helbide finkorik ez du eta enpresa-talde batek proposaturiko amarru bat da.

DOS Sistema Eragileko programek 640 Kb-eko muga gainditu ahal izateko Lotus-Intel-Microsoft enpresek LIM EMS edo EMS (Expanded Memory Specification) espezifikazioa egin zuten.

Memoria Hedatua ordenadoreari kanpotik erantsi behar zaion txartel batean kokatuta dago. Hona hemen, adibidez, EMS 4.0 bertsioko Memoria Hedatuaren ezaugarriak:

Memoria Hedatuaren
zabalera: 32 Mb
Orrialde logikoaren
zabalera: 16 Kb
Orrialde logikoen
kopurua: 2.048 orrialde logiko

Memoria Hedatu osoa 16 Kb-eko orrialde logikotan zatitzen denez, 2.048 orrialde logiko aterako da.

32 * 1.048.576 (byte)
16 * 1.024 (byte/orrialde)

= 2.048 orrialde logiko

4. irudia. INTEL 8086/8088, 80286 eta 80386/80486 mikroprozesadoreak dituzten ordenadoreen memori mapa.

Memoria Hedatua memoria erantsia denez DOS Sistema Eragileak ezingo du bertan dagoena helbideratu, berarentzat esanahia duen azken helbidea 1024 Kb gelaskarena delako. Hots, DOS-ek erabil ditzakeen helbideak, fisikoki Helbide-busaren bidez zehaz daitezkeenak dira; hitz batez, 0 Kb helbidetik hasita 1024 Kb helbide bitarterainokoak.

Goi-memoria azaltzean zenbait segmentu hutsik izaten zela ikusi da, eta bada bat zerbait konkreturako erreserbaturik dagoena: D segmentua, Memoria Hedatuaren Orrialde-leihoa (Page Frame) deritzona.

D segmentu honek eskaintzen du mikroprozesadorea eta Memoria Hedatuaren arteko lotura egiteko aukera. Aplikazio batek Memoria Hedatuan dagoen zerbait behar duenean, MMU memoriaren kudeatzaile batek (MMU: Memory Management Unit) datu horri dagokion orrialde logikoa D segmentura kopiatzen du. EMS espezifikazioa memori bankuen arteko trukaketa besterik ez da. Nolabait esateko, Orrialde-leiho estutik oso zabala den ikuspegia lor daiteke. (Ikus 5. irudia).

Memoria Hedatuaren espezifikazioak

Memoria Hedatu ezberdinak aurki daitezke merkatuan. Hona hemen garrantzizkoenak: LIM EMS, IBMren XMA eta ASTren EEMS.

XMA Memoria Hedatua IBM etxearen espezifikazioa da eta IBMren txartelak bakarrik onartzen ditu, ez da asko erabiltzen eta DOS 4.0 Sistema Eragileak eskaintzen duen XMA2EMS.SYS kontrolatzaileak XMA Memoria Hedatua EMS Memoria Hedatu bihurtzen du.

EEMS Memoria Hedatuaren izenak, Enhanced Expanded Memory Specification, adierazten duenez EMS hobetua da eta etorkizun oparoa iragartzen zaio.

LIM EMS Memoria Hedatua Lotus-Intel-Microsoft hirukotearena da eta zalantzarik gabe ohizkoena. Merkatuan hain sarturik dago, ezen baten batek Memoria Hedatuari buruz hitz egiten duenean, zehaztasunik gehitzen ez badu aipatutako LIM EMS honi buruz ari dela esan baitaiteke.

5. irudia. EMS 4.0 kasuan Orrialde-leihoak C, D eta E segmentuak hartzen ditu (192 Kb guztira) eta 16 Kb-eko 12 orrialde fisiko eratzen ditu. Orrialde fisiko hauetara ekartzen da tratatu beharreko informazioa. Orrialde fisikoan aldaketaren bat eginez gero, orrialde logikoan ere automatikoki burutzen da, datuak eguneratuta mantenduz.

Memoria Hedatuaren eta Memoria Zabalduaren arteko bihurketak

Memoria Zabaldua (Extended Memory) 80286/ /80386/80486 motako ordenadoreen berezko RAM memoria da; 1024 Kb posiziotik gora dagoena, hain zuzen.

Memoria Zabaldua erabili ahal izateko mikroprozesadoreak modu babestuan egon behar du. Aurrerago esandako segmentu/offset bikoteak 20 bit-eko helbideak adierazteko balio du, baina ez 24 bit-eko (80286) edo 32 bit-eko (80386) Helbide-busen kasuetan. Horregatik aukeratzaile/offset bikote bat erabiltzen da. Aukeratzailea, helbide fisikoen taula baten indizea da.

Esan denez, aplikazio-programa asko dira Memoria Hedatuan egikaritzen direnak. Memoria Zabaldua erabili ahal izateko berriz, programek mikroprozesadorearen modu babestua kontuan izan behar dute eta espezifikoki Memoria Zabalduarentzat idatzi behar dira, honen adibideak UNIX eta OS/2 Sistema Eragileak dira.

Badira merkatuan Memoria Zabalduan exekuta daitezkeen aplikazio-programa batzuk, baina gutxi dira. Programatzailearen ikuspuntutik Memoria Hedatua errazagoa denez, ia merkatuko programa guztiek onartzen dute, eragozpena txartel berezi bat erantsi behar izatea delarik.

Laburbilduz egoera hau litzateke: gaur egun dendan salgai dauden ordenadore arruntenak 80286, 80386 eta 80486 dira Memoria Zabaldu ikaragarria dutenak, baina aplikazio-programa egokirik ez.

Irtenbidea ondokoa da: berez duten Memoria Zabaldua inolako txartelik gehitu gabe Memoria Hedatua bezala konfiguratzea; Memoria Zabalduak Memoria Hedatua simula dezala, alegia. Horretarako, CONFIG.SYS konfigurazio-fitxategian gailu-kontrolatzaile berezi bat instalatu behar da. Adibidez, hauetariko bat:

DEVICE = EMS4.SYS
DEVICE = EMM386.SYS
DEVICE = XMSAEM.SYS

Hirurek Memoria Zabaldua Memoria Hedatu bihurtzen dute. EMS4 kontrolatzaileak Memoria Zabaldua LIM-EMS 4.0 simulatzen du. PC-AT eta 80286 ordenadoreentzat egokia da. EMM386 fitxategiaren bidez Memoria Zabaldua LIM-EMS 4.05 bertsiora itzultzen du, 80386 ordenadoreentzat berezia. XMSAEM kontrolatzaileak, Memoria Zabaldua XMA motako Memoria Hedatura pasatzen du, gehienetan XMSAEM.SYS hau beste fitxategi batekin (XMA2EMS.SYS) batera erabiltzen da, horrela IBM-ren XMA Memoria Hedatutik LIM-EMS Memoria Hedatura bidea eginez.

Hiztegia

Ordenadoreen memoriari buruzko azken hiru artikuluetan hitz-sorta berria agertu da eta euskararen normalkuntzan urratsak aurrerantz izan daitezen derrigorrezkoa da terminologia finkatzean erabateko adostasuna egotea. Hemen jarritakoak egilearen iritziak dira. Hona hemen zalantzazko terminoak jatorrizko hizkuntzan idatzirik eta proposatutako itzulpenak:

Memory
Conventional
Memory
Upper Memory
High Memory
Extenden Memory
Expanded Memory
Video Memory
Page Frame

Memoria

Memoria Arrunta
Goi-memoria
Memoria Garaia
Memoria Zabaldua
Memoria Hedatua
Bideo-memoria
Orrialde-leihoa

Hauetariko bat edo beste zuzenak ez balira, egokiagoak liratekeen ordezkoak berehala onartzeko prest geundeke.

Oharra: Irudiak ongi ikusteko jo ezazu PDF-ra.

Gai honi buruzko eduki gehiago

Elhuyarrek garatutako teknologia