Memoria mapa

Wikipedia, Entziklopedia askea

Memoria mapa, informatikaren zientzian, datu egitura bat da. Normalean memorian kokatuta dago eta memoriaren kokapena adierazten du. "Memoria mapa" kontzeptuak esanahi desberdinak izan ditzake testuinguruaren arabera.

  • Memoria asoziatiboa erabiltzen duen cache antolaketa azkarra eta malgua. Memoria asoziatiboak, memoria hitzaren helbidea eta edukia gordetzen ditu.[azalpen gehiago behar dira]
  • Abiarazte-prozesuan, firmwaretik memoria mapa bat bidaltzen da sistema eragilearen nukleoak memoriaren diseinuaren berri izateko. Memoria osoaren tamainari buruzko informazioa, erreserbatutako eskualdeen informazioa eta arkitekturari buruzko beste xehetasun batzuen informazioa ditu.
  • Memoria birtualeko ezarpenetan eta memoria kudeatzeko unitateetan, memoria mapa bat, orri-taula edo hardware erregistroei dagokie. Prozesu jakin baten biltegiratzen dute, memoriaren diseinu birtualaren eta espazio hori memoria fisikoaren helbideekin erlazionatzeko moduaren arteko mapatzea.
  • Era natiboko "debugger" programetan, memoria mapa bat, kargatutako artxibo exekutagarri edo/eta liburutegikoen eta memoria eskualdeen arteko mapatzeari dagokio. Memoria mapa hauek, memoria-helbideak ebazteko ( "pointer" funtzioa esaterako) sinbolo errealetara.

PCaren BIOSaren Memoria mapa[aldatu | aldatu iturburu kodea]

BIOSa IBMaren PCarentzat (Personal Computer) eta bateragarrientzako, errutina multzo bat eskaintzen du, sistema eragileak edo aplikazioek memoriaren diseinua lortzeko erabil dezaketeena. Hurrengo hauek dira eskuragarri dauden errutinetako batzuk:

BIOS: INT 0x15, AX = 0xE801:

BIOSa eteteko dei hau memoriaren tamaina lortzeko erabiltzen da 64 MB baino gehiagoko konfigurazioetan. 1994ko abuztuaren 23tik aurrera BIOS AMIrekin bateragarria da. Deitzen duen pertsonak AX 0xE801 ezartzen du eta 0x15 exekutatzen du. Erroreren bat gertatzen bada, errutina CF (Carry Flag) set 1ekin itzultzen da. Errorerik ez badago, CFa 0 batekin itzultzen da, eta erregistroen egoera honela deskribatzen da:

ERREGISTROA Balorearen deskribapena
EAX Memoria handipena 1M eta 16M artean, Kbtan. (Balio maximoa: 0x3C00 = 15360KB).
EBX 16 Mtik gorako 64K-ko blokeen zenbaketa.
ECX Konfiguratutako memoria 1Mtik 16Mra, Kbtan.
EDX 64Ktan konfiguratutako blokeen kontua 16Mren gainetik

BIOS: INT 0x15, AX = 0xE820 - SISTEMARE MEMORIA MAPA ESKURATU:

Input:

ERREGISTROA Balorearen deskribapena
EAX 0x0000E820
EBX Jarraipen balorea edo 0x0 maparen hasieran hasteko.
ECX Bufferaren tamaina erantzunerako (20 byte).
EDX 0x534D4150 (ASCII 'SMAP'-rentzako)
ES: DI segmentua: buferraren desplazamenduaren kokapena emaitzarako.

SMAP buffer estruktura:

Compensar Tamaina Balorearen deskribapena
0 QWORD (8 byte) EBXak erreferentzia egiten dion memoria maparen eskualdearen oinarrizko helbidea.
8 QWORD (8 byte) Luzeera bytetan.
16 DWORD (4 byte) Helbide tarte mota.

Erabilera: sistema eragileak memorian SMAP buffer bat esleitu behar du (20 byteko buffera). Ondoren erregistroak konfiguratu behar dira "Input" taulan ageri den moduan. Lehenengo deian, EBXak 0a esleitu behar du. Hurrengo urratsa INT 0x15 deitzea da. Errorerik ez badago, eten-deia CF ezabatuta itzultzen da eta buffera memoria-maparen lehen eskualdea adierazten duten datuekin betetzen da. BIOSak EBXa eguneratzen du, orduan, OSak berriro errutina deitzen du hurrengo eskualdea bufferera itzultzeko. BIOSek zeroan jartzen du EBX.

Ikus, gainera[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]