Zariadenie a princíp fungovania pamäte s náhodným prístupom. Logická štruktúra hlavnej pamäte. Každá pamäťová bunka má svoj unikát, t

  • 23.04.2019

OP mikroobvody

Pamäť (pamäť) - funkčná časť počítača určená na zaznamenávanie, ukladanie a vydávanie informácií.

Stiahnite si prezentáciu "Vlastnosti pamäte PC"

Všetku pamäť počítača možno rozdeliť na:

  1. RAM (pamäť s náhodným prístupom)
  2. ROM (pamäť iba na čítanie)
  3. RON (všeobecné registre) vnútorná pamäť procesora - jeho registre.
  4. CMOS (Complement Metal Oxide Semiconductor - komplementárne páry metal-oxid-semiconductor označuje technológiu výroby tejto pamäte) - pamäť nastavení systému (konfigurácia).
  5. OVC (externé úložné zariadenie)
  6. Video pamäť - elektronická pamäť umiestnená na grafickej karte sa používa ako vyrovnávacia pamäť na ukladanie dynamických snímok.

1,2,3,6 - elektronická pamäť, 5 - elektromechanická pamäť.

Vlastnosti RAM

Vnútorná pamäť počítača má dve hlavné vlastnosti: diskrétnosť a adresnosť.

Diskrétnosť - pamäť pozostáva z bitov (bit je pamäťový prvok, častica informácie, ukladá binárny kód 0 alebo 1. Slovo bit pochádza z angličtiny. "Binárna číslica" je binárna číslica).

Bit je najmenší kúsok pamäte počítača.

V dôsledku toho má slovo „bit“ dva významy: je to jednotka merania množstva informácií a častica pamäte počítača. Oba tieto pojmy spolu súvisia takto:
Jeden bit pamäte ukladá jeden bitinformácie.

Pamäť je usporiadaná postupnosť binárnych číslic (bitov). Táto sekvencia je rozdelená do skupín po 8 bitov. Každá takáto skupina tvorí bajt pamäte.

V dôsledku toho „bit“ a „bajt“ označujú nielen názvy jednotiek na meranie množstva informácií, ale aj štrukturálne jednotky počítačovej pamäte.
1Kb = 210 bajtov = 1024b
1 MB = 210 kB = 1 024 kB
1 GB = 1 024 MB

Pamäťová bunka - skupina po sebe nasledujúcich bajtov vnútorná pamäť obsahujúci informácie dostupné na spracovanie samostatným príkazom procesora.
Obsah pamäťovej bunky sa nazýva strojové slovo. Bajty vnútornej pamäte sú očíslované. Číslovanie začína od 0.
Bajtové poradové číslo sa nazýva bajtová adresa. Princíp adresovateľnosti pamäte spočíva v tom, že akákoľvek informácia sa zadáva do pamäte a z nej sa získava po adresách, t.j. ak chcete prevziať informácie z pamäťovej bunky alebo ich tam umiestniť, musíte zadať adresu tejto bunky. Adresa pamäťovej bunky sa rovná nízkej bajtovej adrese zahrnutej v bunke.
Adresovanie pamäte začína na 0. Adresy buniek sú násobky počtu bajtov v slove stroja.

Štruktúra Náhodný vstup do pamäťe


Pamäť s náhodným prístupom (RAM) (RAM)

CPU berie počiatočné dáta z OP na spracovanie a výsledky sa do nich zapisujú. Pamäť s náhodným prístupom dostala názov, pretože funguje rýchlo.
Je nestály, dáta a programy sú v ňom uložené len dovtedy, kým je PC zapnuté, pri vypnutí PC sa obsah OP vymaže.
RAM je navrhnutá na ukladanie aktuálnych, rýchlo sa meniacich informácií a umožňuje meniť jej obsah počas vykonávania výpočtov procesora.
Používajú sa dva hlavné typy pamäte RAM: statická pamäť (SRAM-Static RAM - CACHE) a dynamická pamäť (DRAM-Dynamic RAM - RAM).
Tieto dva typy pamäte sú odlišné rýchlosť a špecifická hustota (kapacita) uložených informácií.

Rýchlosť pamäte charakterizujú dva parametre: čas prístupu a čas cyklu.
Tieto množstvá sa zvyčajne merajú v nanosekundách. Čím vyššie sú tieto hodnoty, tým vyšší je výkon pamäte.
Čas prístupu je časový interval medzi vytvorením požiadavky na prečítanie informácie z pamäte a momentom, keď z pamäte príde požadované strojové slovo (operand).
Trvanie cyklu je určený minimálnym časom povoleným medzi dvoma po sebe nasledujúcimi prístupmi do pamäte.

V statická pamäť prvky sú postavené na spúšťačoch - obvodoch s dvoma stabilnými stavmi. Na vytvorenie jedného klopného obvodu je potrebných 4-6 tranzistorov. Po
zaznamenávanie informácií do statického pamäťového prvku, môže uchovávať informácie tak dlho, ako je potrebné (pokiaľ je dodávaná elektrická energia).
Statická pamäť má vysoký výkon a nízku hustotu úložiska. Tento typ pamäte je drahý a energeticky náročný, preto môže dôjsť k prehriatiu,
čo znižuje spoľahlivosť systému, takže celý OP nemožno postaviť na statickom základe.

V dynamická pamäť pamäťové prvky sú postavené na báze polovodičových kondenzátorov, ktoré v statickej pamäti zaberajú oveľa menšiu plochu ako klopné obvody.
Na vytvorenie dynamického pamäťového prvku sú potrebné 1-2 tranzistory. Každý bit OP je reprezentovaný ako prítomnosť alebo neprítomnosť náboja na kondenzátore vytvorenom v štruktúre
polovodičový kryštál. Dynamické pamäťové bunky sú veľmi kompaktné, ale v priebehu času dochádza k úniku náboja z kondenzátora, preto periodicky (približne 1000-krát za sekundu)
automatické obnovenie informácií v každej bunke sa vykonáva. To spomaľuje výkon dynamickej pamäte a je to jej hlavná nevýhoda.

OP sa často označuje RAM (pamäť s náhodným prístupom) - pamäť s náhodným prístupom (typ prístupu do pamäte, pri ktorom sú pamäťové bunky očíslované, t.j. adresovateľné, a preto k nim možno pristupovať v ľubovoľnom poradí).

Pojem „náhodný prístup“ znamená, že môžete čítať (zapisovať) informácie kedykoľvek z ktorejkoľvek bunky.

Všimnite si, že existuje iná organizácia pamäte, v ktorej musíte pred prečítaním potrebných informácií „stlačiť“ predtým prijaté operandy.

Objem OP nainštalovaného v počítači priamo závisí od toho, aký softvér na ňom môžete pracovať. Ak chýba OP, programy sa nespustia, zobrazí sa hlásenie: „Nedostatok pamäte“ alebo pracujú veľmi pomaly.

Čím viac OP v PC, tým lepšie. V prípade potreby je možné zvýšiť množstvo pamäte RAM (obmedzené parametrami pamäte RAM podporovanej konkrétnou základnou doskou, pozorne si pozrite špecifikáciu základná doska).


Pridelenie pamäte počítača (oddiely RAM)

RAM je pomerne zložitá, je hierarchická (viacposchodová). OP sú rozdelené do niekoľkých typov. Toto rozdelenie je spôsobené historickými dôvodmi.
Prvé počítače boli navrhnuté tak, aby mohli bežať s maximálne 640 kB pamäte. Existujú 4 typy pamäte:

  • Konvenčná pamäťová oblasť
  • Horné (horné pamäťové bloky (oblasť))
  • Špecifikácia rozšírenej pamäte
  • Špecifikácia rozšírenej pamäte

Konvenčná pamäťová oblasť - základná, prvých 640 KB, často nazývaná aj nižšia.
V ml. adresy tejto pamäte sú načítané operačným systémom a ovládačmi zariadení. Zvyšok voľnej časti pamäte zaberajú používateľské programy.
V tejto pamäti zostávajú aj rezidentné programy.

Horná (horná pamäťová oblasť) - 640 KB - 1 MB sa používa na ukladanie servisných informácií: pamäť grafického adaptéra, BIOS.
Špecialista. Ovládač Himem.sys vám umožňuje načítať rezidentné programy a ovládače zariadení do voľných oblastí tejto oblasti.

Vysoká pamäť - prvých 64 KB po 1 MB. OS MS DOS umožňuje načítať časť rezidentného DOSu do tejto oblasti, pričom uvoľňuje značnú časť
základná pamäť pre aplikačné programy. To je užitočné najmä pri programoch, ktoré využívajú celý OP. Pomocou špeciálneho nástroje (pre DOS emm386.exe)
TSR je možné načítať aj do sekcií hornej pamäte (príkazy LH pre autoexec.bat a DEVICEHIGT pre config.sys).

Všetku pamäť nad 1 MB možno zobraziť ako dodatočné (rozšírené) alebo ako predĺžený). V operačnom systéme vám správca pamäte umožňuje používať pamäť ako rozšírenú, ako aj dodatočnú, pričom automaticky poskytuje potrebný typ interakcie s údajmi aplikačné programy... Tie. užívateľ nových moderných PC (od Pentia) nemusí prideľovať pamäť „ručne“, manažér prideľuje pamäť spôsobom, ktorý vyžaduje aplikačný program.

Ďalšie (rozšírené) pamäť - stránka po stránke, t.j. OP je rozdelený na stránky, každá stránka má priradenú špecifickú adresu v hlavnej pamäti. Pri prístupe k takejto adrese EMM (správca rozšírenej pamäte) ovládač rozšírenej pamäte (správca pamäte) umožňuje počítaču čítať informácie z príslušnej stránky pamäte.

Rozšírené pamäť organizácie riadkov (Smartdrv - ovládač rozšírenej pamäte) sa používa na vytvorenie dočasných logický pohon (virtuálny disk) ako schránka s pevným diskom.


Distribúcia OP v PC s OS MS-DOS

1 MB + 64 kb Vysoká High Extended alebo dodatočná pamäť
Rezidentné programy a ovládače zariadení
Časť OS
1 MB Horná BIOS Horná ROM
Video pamäť (textová vyrovnávacia pamäť)
Video pamäť (grafická vyrovnávacia pamäť)
640 kb Oblasť konvertovanej pamäte (základná) Štandardná (základná pamäť) Bezplatná časť (command.com) tranzitná časť
Bezplatná časť pre používateľské programy
Command.com (rezident)
DOS programy, ovládače
Súbory Io.sys msdos.sys
Údaje DOS a BIOS a ďalšie servisné informácie

OP mikroobvody (OP moduly)

Výkon PC závisí od typu a veľkosti pamäte RAM a tá zase závisí od zostavy integrovaných obvodov na základnej doske.

Vzhľad OP mikroobvody: plastový pásik, na ňom sú kamienkové "korytnačky" - mikroobvodové čipy (to znamená, že sa používa polovodičová technológia) a sú tu "nožové" kolíkové konektory.

Pamäťové zariadenia sa vyznačujú týmito hlavnými indikátormi:

  1. prístupový čas (rýchlosť). Prístupový čas je časový úsek, počas ktorého je možné zapisovať (čítať) obsah pamäťovej bunky.
  2. kapacita (určuje počet buniek (bitov) v pamäťovom zariadení).
  3. náklady.
  4. spotreba energie (spotreba energie).

Existujú 2 pamäťové moduly, ktoré sa líšia tvarom, vnútornou architektúrou a rýchlosťou: SIMM a DIMM.
I. SIMM (JEDINÉ PAMÄŤOVÉ MODULY IN-LINE) (SRAM)
sú dvoch typov (líšia sa počtom kontaktov).

1.30-kolíkové karty SIMM. K dispozícii sú 1 a 4 MB. 386, 286-procesor sa dnes pre počítače prakticky vytratil z predaja. Dnes našli zaujímavú aplikáciu - ako OP nainštalovaný v niektorých zvukové karty napr Greafive Sound Blaster 32 (AWE-32) Gravis UltraSound PnP. ale nová karta AWE-64 už obsahuje vlastné OP moduly, táto pamäť nie je potrebná.

2.72-kolíkový SIMM(pre 1, 4, 8, 16, 32, 64 MB, zriedka 128 MB). Vzhľad sa nemení, mení sa však typ pamäte nainštalovanej na nich (typ pamäte je uvedený na mikroobvode).

a) najstaršia (v súčasnosti vzácna) - FPM DRAM (alebo jednoducho DRAM - Dynamic Random Access Memory - dynamická RAM). Pracovala na 486 a prvom Pentiu.

b) upravený typ EDO DRAM (alebo EDO - Extended data output).

Čipy SIMM sú dostupné s jednoduchou a dvojitou hustotou, s paritou a bez parity (pomocou parity môžete zabrániť jedinej chybe pamäte). Moduly sa líšia aj rýchlosťou prístupu 60 a 70 nanosekúnd, čím nižšia rýchlosť, tým rýchlejší prístup. 60 nanosekúnd je rýchlejších ako 70 nanosekúnd. SIMM v základných doskách Pentium a Pentium MMX sa inštalujú iba v pároch a tvoria takzvanú banku.

Príklad Vyžaduje sa 32 MB => 2 SIMM, každá po 16 MB.
Vyžaduje sa 64 MB => 4 SIMM po 16 MB alebo 2 SIMM po 32 MB.

V rámci tej istej banky môžete používať iba moduly SIMM s rovnakou kapacitou a rýchlosťou prístupu. Ak má vaša základná doska 4 sloty pre pamäťové moduly SIMM, môžete vytvoriť dve banky rôznych kapacít.


II. DIMM (DUAL IN-LINE PAMÄŤOVÉ MODULY SDRAM).

Prvýkrát sa objavil v počítačoch MMX, stal sa základom pre PII. Preto PII má len zriedka SIMM konektory. Modul DIMM nemusí byť párne číslo. DIMM sú dostupné s kapacitou 16, 32, 64, 128, 256, 512 MB

  1. EDO SD RAM (synchrónna DRAM)- synchronizovaný dynamický OP)
    SD RAM (PAMÄŤ S NÁHODNÝM PRÍSTUPOM S JEDNOU DÁTOVOU RÝCHLOSŤOU) frekvencia hodín s názvom PC100 a PC133 pamäť. Čip pre 168 pinov je dnes „najpomalší“ z rodiny pamäťových modulov DIMM, Access time = 10-20 nanosekúnd. Horná hranica jeho hodinovej frekvencie je 133 MHz. A napriek tomu je tento typ OP celkom vhodný pre väčšinu kancelárskych a
    domáce počítače. Šírka pásma 1 Gb/s.
    SPD je malý mikročip nainštalovaný v SD RAM DIMM a obsahuje podrobné informácie o type nainštalovaná pamäť a niektoré ďalšie zariadenia. PC133 SDRAM (Synchronous Dynamic Random Access Memory) je najrýchlejšia z triedy klasickej RAM. (boli tam aj PC66, PC100). Teraz je to najpomalší typ pamäte RAM. Fyzicky ide o pole mikroskopických kondenzátorov „zabalených“ do pamäťových čipov. Logicky každý kondenzátor nie je nič iné ako elementárna jednobitová informačná bunka s 2 stavmi: 0 - ak kondenzátor nie je nabitý, 1 - ak je nabitý. Tieto bunky sú spojené do dvojrozmernej matice, kde každá bunka je adresovaná číslami riadkov a stĺpcov, v ktorých sa nachádza. Mikroobvod je dodávaný s príkazovými zbernicami (prenáša príkazy, ktoré riadia činnosť OP mikroobvodov), adresou (adresy riadkov a stĺpcov) a údajmi. Všetky tri sú synchronizované s impulzmi rovnakej frekvencie. (133). SDRAM - synchrónna pamäť a logika činnosti pamäťových čipov tohto typu je pevne synchronizovaná s hodinovým signálom. Pamäťový radič napríklad presne vie, o koľkých hodinových cykloch budú pamäťové čipy pripravovať požadované dáta na prenos a v akom takte ich prenos začne. Dnes je tento mikroobvod zriedkavý.
  2. Rambus (RD RAM) Dvojkanálový OP (mikroobvod Intel). Priamy Rambus je nová pneumatika pamäť, v ktorej je riadenie adresovania oddelené od manipulácie s údajmi. Systém pozostáva z radiča Direct Rambus pripojeného k jednému alebo viacerým modulom Direct Rambus DRAM nazývaným RIMM, na rozdiel od bežných pamäťových čipov zapojených paralelne sú RIMM zapojené do série. Kanál Direct Rambus obsahuje obojsmernú dátovú zbernicu a adresovú zbernicu, t.j. adresy pamäte sa prenášajú súčasne s údajmi. Každý čip RDRAM môže obsahovať až 32 nezávislých bánk, SD RAM - od 2 do 8. Pracuje voľne pri vysokých taktovacích frekvenciách.
    Mikroobvod pre 184 kontaktných OP mikroobvodov s hodinovou frekvenciou 600 až 800 MHz. Pri použití čipu PC800 (taktovacia frekvencia 400 MHz), priepustnosť zbernica pamäť-procesor dosahuje 3,2 Gb/s. Pri použití PC600 (300 MHz) tento parameter = 2,6 Gb / s.
    Záslepky Continuity Rimm (CRIMM) musia byť nainštalované vo voľných pamäťových slotoch Rambus. Bez nich systém nebude fungovať, pretože moduly v oboch kanáloch Rambus sú kaskádované, to znamená, že hodiny a riadiace signály prechádzajú cez konektory Rimm v sérii. Kapacita RAM môže byť až 3 GB.
    Poskytnite značnú rýchlosť vykonávania komplexné aplikácie na PC a pracovných staniciach. Otázka rýchlosti OP je dnes veľmi kontroverzná.
  3. DDR SDRAM (Dvojitá dátová rýchlosť)dvojnásobná rýchlosť Prenos dát je v podstate modifikáciou konvenčnej SDRAM a líši sa od nej tým, že zapisuje a číta dáta na nábežnej aj zostupnej hrane hodinového impulzu. Preto sa v jednom hodinovom cykle prenesie po zbernici dvojnásobok dát a jej efektívna frekvencia sa ukáže ako dvojnásobok fyzickej frekvencie.
    2-kanálové DDR266 DDR333 a DDR400 a systémy s nimi nie sú horšie ako RDRAM. OP s dvojnásobným dátovým tokom, inak nazývaný PC200 a PC266 v závislosti od taktovacej frekvencie systémová zbernica... Nie je tak drahý ako (3) a jednoznačne prispieva k zlepšeniu výkonu PC na rozdiel od (2). Predovšetkým vďaka použitiu tejto pamäte Athlon 1,2 GHz PC v mnohých testoch prekonal 1,5 GHz P-IV s RD RAM.
    Dnes si kupujúci zatiaľ nemôže jednoducho vybrať typ OP, aký chce, keďže je pripojený k integrovanému obvodu na základnej doske a ten k CPU. Takže zatiaľ P-IV funguje so sadou IS-850 od Intelu a drahou RD RAM. (V polovici roku 2001 sa plánuje objavenie mikroobvodov kompatibilných so zariadeniami SD RAM a DDR). Ak si chcete zakúpiť P-IV, budete automaticky nútení zakúpiť si drahý OP. Integrované obvody rodiny Athlon používajú SD RAM a DDR, ale nemôžu RD RAM.

Pamäťový modul Kingston DDR PC3200

Informácie v ROM zostávajú nezmenené.
Zápis do ROM sa zvyčajne vykonáva elektricky alebo mechanicky počas výrobného procesu materskej karty. Tieto údaje sa spravidla nedajú zmeniť, a to prostredníctvom iného počítača
programy ich vedia len čítať.ROM uchováva informácie, ktorých prítomnosť je v počítači vždy nevyhnutná.

Často sa nazýva ROM (Read Only Memory) – pamäť určená len na čítanie. V trvalá pamäť programy sú uložené na kontrolu hardvéru počítača, spustenie zavádzania OS a spustenie základného
funkcie pre servis PC zariadení. Obsah pamäte iba na čítanie sa často označuje ako BIOS (Basic Vstup výstup Systém) - základný systém vstup výstup.
BIOS je systém na monitorovanie a správu zariadení pripojených k PC (pevný disk, RAM, hodiny, kalendár). Je to časť počítačového softvéru, ktorý podporuje správu adaptérov
externé zariadenia, operácie na obrazovke, testovanie, bootovanie a inštalácia OS. BIOS sa nachádza na základnej doske (samostatný batériou napájaný mikroobvod v PC).

Na dnešných PC sa dá BIOS prepísať, BIOS dnes dokáže rozpoznať nové zariadenia pripojené k PC (PnP štandard - Plug-And-Play) plug and play.
Zariadenia sú ovládané cez prerušovací mechanizmus.


Prerušenia môžu byť:

  • hardvér (spustený hardvér)
  • logické (iniciované mikroprocesorom - neštandardné situácie pri prevádzke mikroprocesora),
  • softvér (iniciovaný akýmkoľvek softvérom).

Po zapnutí počítača sa automaticky načíta a spustí špeciálny program POST (Power-On Self-Test) z BIOSu.

Tento program vykonáva samokontrolu a zavádzacie testy:

  • kontrola prepínačov a pamäte CMOS na systémovej (materskej) doske (identifikácia hardvéru, ktorý je pripojený k PC),
  • testovanie RAM,
  • vykonávanie akcií zavádzania operačného systému (načítanie do pamäte RAM a spustenie bloku Bootstrap OS),
  • vykonáva ďalšie špecifické činnosti na prípravu PC a doplnkového vybavenia na prácu.


BIOS

Je to druh softvérového obalu okolo hardvéru počítača (samotného nižší level), realizujúci prístup k hardvéru počítača prostredníctvom mechanizmu prerušenia.
CMOS-pamäť - ROM (s možnosťou úpravy), ktorá obsahuje niektoré prispôsobené informácie o konfigurácii tohto PC a niektoré ďalšie vybavenie. Nízka spotreba energie. Napájané nabíjateľnou batériou.
"Vstup" do editácie CMOS pamäte spravidla stlačením klávesu DELETE (DEL) (na klávesnici) ihneď po zapnutí PC počas programu POST (načítanie programu Setup).

  • systémové hodiny,
  • informácie o výsledkoch diagnostiky programu POST,
  • informácie o dostupnosti a type FDD,
  • informácie o dostupnosti a type HDD,
  • Veľkosť RAM,
  • dostupnosť dodatočného vybavenia.

Za posledný týždeň som ľuďom dvakrát vysvetľoval, ako je organizovaná práca s pamäťou v x86, aby som nevysvetľoval, tento článok som napísal už tretíkrát.

A tak, aby ste pochopili organizáciu pamäte, budete potrebovať poznať niektoré základné pojmy ako registre, zásobník atď. Pokúsim sa to po ceste vysvetliť na prstoch, ale veľmi stručne, pretože toto nie je téma pre tento článok. Takže začnime.

Ako je známe, programátor, keď píše programy, nepracuje s fyzickou adresou, ale len s logickou. A potom ak programuje v assembleri. V tom istom C sú pamäťové bunky pred programátorom skryté pomocou ukazovateľov, pre jeho pohodlie, ale zhruba povedané, ukazovateľ je iná reprezentácia adresy logickej pamäte, ale v Jave nie sú žiadne ukazovatele, je to úplne zlý jazyk . Kompetentnému programátorovi však prospeje, ak bude vedieť, ako je pamäť organizovaná aspoň na všeobecnej úrovni. Vo všeobecnosti ma veľmi rozčuľujú programátori, ktorí nevedia, ako funguje stroj, väčšinou Java programátori a iní php chalani s kvalifikáciou pod plentou.

Dobre, dosť bolo smútku, poďme na vec.
Zvážte adresný priestor programový režim 32-bitový procesor (pre 64-bitový je všetko podobné)
Adresový priestor tohto režimu bude pozostávať z 2 ^ 32 pamäťových buniek očíslovaných od 0 do 2 ^ 32-1.
Programátor s touto pamäťou pracuje, ak potrebuje definovať premennú, jednoducho povie, že pamäťová bunka s adresou taká a taká bude obsahovať taký a taký dátový typ, pričom sám programátor nemusí vedieť, aké číslo táto bunka má, jednoducho napíše niečo ako:
int dáta = 10;
Počítač to pochopí takto: musíte zobrať bunku s číslom sto a dať do nej celé číslo 10. Navyše o adrese bunky 18894 nebudete vedieť, bude vám skrytá.

Všetko by bolo v poriadku, ale vzniká otázka, ako počítač hľadá túto pamäťovú bunku, pretože naša pamäť môže byť rôzna:
3 úroveň vyrovnávacej pamäte
2 úroveň vyrovnávacej pamäte
1 úroveň vyrovnávacej pamäte
Hlavná pamäť
HDD

To je všetko rôzne spomienky, ale počítač ľahko zistí, v ktorej z nich leží naša premenná údajov int.
Tento problém rieši operačný systém v spojení s procesorom.
Celý ďalší článok bude venovaný analýze tejto metódy.

Architektúra x86 podporuje zásobník.

Stoh je súvislá oblasť RAM organizovaná na princípe stohu tanierov, taniere nemôžete odoberať zo stredu stohu, môžete si vziať iba horný a môžete tiež položiť tanier iba na vrch. zásobník.
V procesore na prácu so zásobníkom sú organizované špeciálne strojové kódy, ktorých mnemotechnické pomôcky v assembleri vyzerajú takto:

Tlačiť operand
vloží operand do zásobníka

Pop operand
vyberie hodnotu z vrchu zásobníka a umiestni ju do svojho operandu

Zásobník v pamäti rastie zhora nadol, čo znamená, že keď k nemu pridáte hodnotu, adresa vrcholu zásobníka sa zníži a keď z neho vyskočíte, zväčší sa adresa vrcholu zásobníka.

Teraz sa stručne pozrime na to, čo sú registre.
Ide o pamäťové bunky v samotnom procesore. Ide o najrýchlejší a najdrahší typ pamäte, keď procesor vykonáva nejaké operácie s hodnotou alebo s pamäťou, tieto hodnoty preberá priamo z registrov.
Procesor má niekoľko sád logiky, z ktorých každá má svoje vlastné strojové kódy a sady registrov.
Základné registre programu Tieto registre používajú všetky programy a používajú sa na spracovanie celočíselných údajov.
Registre jednotiek s pohyblivou rádovou čiarkou (FPU) Tieto registre pracujú s údajmi s pohyblivou rádovou čiarkou.
Existujú aj registre MMX a XMM, tieto registre sa používajú, keď potrebujete vykonať jednu inštrukciu veľké množstvo operandy.

Poďme sa bližšie pozrieť na hlavné softvérové ​​registre. Patrí medzi ne osem 32-bitových všeobecných registrov: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP
Ak chcete vložiť údaje do registra alebo odstrániť údaje z registra do pamäťového miesta, použite príkaz mov:

Pohyb eax, 10
načíta číslo 10 do registra eax.

Mov dáta, ebx
skopíruje číslo obsiahnuté v registri ebx do dátovej pamäte.

Register ESP obsahuje adresu vrcholu zásobníka.
Okrem všeobecných registrov medzi hlavné softvérové ​​registre patrí šesť 16-bitových segmentových registrov: CS, DS, SS, ES, FS, GS, EFLAGS, EIP
EFLAGS zobrazuje bity, takzvané príznaky, ktoré odrážajú stav procesora alebo charakterizujú priebeh predchádzajúcich inštrukcií.
Register EIP obsahuje adresu ďalšej inštrukcie, ktorú má procesor vykonať.
Registre FPU nebudem popisovať, keďže ich nebudeme potrebovať. Takže naša malá odbočka o registroch a zásobníku je u konca, vráťme sa k organizácii pamäte.

Ako si pamätáte, účelom tohto článku je povedať vám o transformácii. logická pamäť vo fyzickom stave v skutočnosti existuje medzistupeň a celý reťazec vyzerá takto:

Logická adresa -> Lineárna (virtuálna) -> Fyzická
Celý lineárny adresný priestor je segmentovaný. Adresový priestor každého procesu má aspoň tri segmenty:
Segment kódu.(obsahuje príkazy z nášho programu, ktoré sa vykonajú.)
Segment údajov.(Obsahuje dáta, teda premenné)
Segment zásobníka, o ktorom som písal vyššie.


Lineárna adresa sa vypočíta podľa vzorca:
lineárna adresa = Základná adresa segmentu (na obrázku je to začiatok segmentu) + offset
Segment kódu
Základná adresa segmentu kódu je prevzatá z registra CS. Hodnota offsetu pre kódový segment sa preberá z registra EIP, v ktorom je uložená adresa inštrukcie, po vykonaní ktorej sa hodnota EIP zväčší o veľkosť tejto inštrukcie. Ak príkaz trvá 4 bajty, potom sa hodnota EIP zvýši o 4 bajty a už bude ukazovať na ďalšiu inštrukciu. Toto všetko prebieha automaticky bez účasti programátora.
V našej pamäti môže byť niekoľko segmentov kódu. V našom prípade je sám.
Segment údajov
Dáta sa načítavajú do registrov DS, ES, FS, GS
To znamená, že môžu existovať až 4 segmenty údajov. Na našom obrázku je sám.
Offset v rámci dátového segmentu je špecifikovaný ako príkazový operand. Štandardne sa používa segment, na ktorý ukazuje register DS. Ak chcete zadať ďalší segment, musíte to zadať priamo v príkaze predpony nahradenia segmentu.
Segment zásobníka
Použitý segment zásobníka je určený hodnotou registra SS.
Posun v rámci tohto segmentu predstavuje register ESP, ktorý, ako si pamätáte, ukazuje na vrchol zásobníka.
Segmenty v pamäti sa môžu navzájom prekrývať, navyše základná adresa všetkých segmentov sa môže zhodovať napríklad na nule. Tento degenerovaný prípad sa nazýva lineárna pamäťová reprezentácia. V moderné systémy, pamäť je zvyčajne organizovaná týmto spôsobom.

Teraz sa pozrime na definíciu adries bázových segmentov, napísal som, že sú obsiahnuté v registroch SS, DS, CS, ale nie je to celkom pravda, obsahujú určitý 16-bitový selektor, ktorý ukazuje na určitý deskriptor segmentu, v ktorom požadovaná adresa je už uložená.


Takto vyzerá selektor, jeho trinásť bitov obsahuje index deskriptora v tabuľke deskriptorov. Nie je zložité vypočítať, že 2 ^ 13 = 8192 je maximálny počet deskriptorov v tabuľke.
Vo všeobecnosti existujú dva typy tabuliek deskriptorov, GDT a LDT Prvá sa nazýva globálna tabuľka deskriptorov, v systéme je vždy len jedna, jej počiatočná adresa, presnejšie adresu jeho nulový deskriptor je uložený v 48-bitovom systémovom registri GDTR. A od spustenia systému sa nemení a nezúčastňuje sa výmeny.
Ale hodnoty deskriptorov sa môžu zmeniť. Ak je bit TI v selektore rovný nule, potom procesor jednoducho prejde do GDT a podľa indexu vyhľadá požadovaný deskriptor, s ktorým pristupuje k tomuto segmentu.
Doteraz bolo všetko jednoduché, ale ak je TI 1, znamená to, že sa použije LDT. Týchto tabuliek je veľa, ale používajú sa v tento moment bude ten, ktorého selektor sa načíta do systémového registra LDTR, ktorý sa na rozdiel od GDTR môže meniť.
Index selektora ukazuje na deskriptor, ktorý už neukazuje na základnú adresu segmentu, ale na pamäť, v ktorej je uložená tabuľka lokálneho deskriptora, respektíve jej nultý prvok. Potom je všetko rovnaké ako pri GDT. Počas prevádzky je teda možné podľa potreby vytvárať a ničiť lokálne tabuľky. LDT nemôžu obsahovať deskriptory iných LDT.
Takže vieme, ako sa procesor dostane k deskriptoru a čo je v tomto deskriptore obsiahnuté, pozrime sa na obrázok:

Deskriptory majú dĺžku 8 bajtov.
Bity 15-39 a 56-63 obsahujú lineárnu základnú adresu opísanú týmto deskriptorom segmentu. Dovoľte mi pripomenúť vám náš vzorec na nájdenie lineárnej adresy:

lineárna adresa = základná adresa + offset
Pomocou takejto jednoduchej operácie môže procesor pristupovať k požadovanej adrese lineárnej pamäte.
Zvážte ďalšie bity deskriptora, limit segmentu je veľmi dôležitý, má 20-bitovú hodnotu medzi 0-15 a 48-51 bitmi. Limit určuje veľkosť segmentu. Všetky adresy nachádzajúce sa v intervale sú dostupné pre segmenty údajov a kódu:
[základ; základ + limit)
V závislosti od 55 G-bitu (granularity) môže byť limit meraný v bajtoch s nulovou hodnotou bitu a potom bude maximálny limit 1 mb, alebo v hodnote 1 sa limit meria na stránkach, z ktorých každá je 4 kb. a maximálna veľkosť tento segment bude mať 4 GB.
Pre segment zásobníka bude limit v rozsahu:
(základ + limit; hore]
Mimochodom, zaujímalo by ma, prečo sú v deskriptore tak nerovnomerne umiestnené základňa a limit. Faktom je, že procesory x86 sa vyvíjali evolučne a v čase 286x mali deskriptory celkovo 8 bitov, zatiaľ čo staršie 2 bajty boli vyhradené, no, v nasledujúcich modeloch procesorov sa deskriptory tiež zväčšovali so zväčšením bitovej šírky, ale aby sa zachovalo spätne kompatibilita, museli sme ponechať štruktúru tak, ako je ...
Hodnota adresy "vertex" závisí od 54. bitu D, ak je 0, potom je vrchol 0xFFF (64kb-1), ak je bit D 1, potom je vrchol 0xFFFFFFFF (4GB-1)
Od 41-43 bitov je kódovaný typ segmentu.
000 - dátový segment, len na čítanie
001 - dátový segment, čítanie a zápis
010 - zásobníkový segment, len na čítanie
011 - zásobníkový segment, čítanie a zápis
100 - segment kódu, iba spustenie
101- segment kódu, čítanie a vykonávanie
110 - podriadený segment kódu, iba spustenie
111 - slave kódový segment, spustenie a len na čítanie

44 S bitov, ak sa rovná 1, potom deskriptor opisuje skutočný segment pamäte, inak je hodnota bitu S 0.

Najdôležitejším bitom je bit prítomnosti 47. P. Ak je bit 1, znamená to, že segment alebo tabuľka lokálnych deskriptorov je načítaná do pamäte RAM, ak je tento bit 0, znamená to, že tento segment nie je v RAM, je na pevnom disku, dôjde k prerušeniu , špeciálny prípad procesora spustí obslužný program špeciálneho prípadu, ktorý načíta požadovaný segment z pevného disku do pamäte, ak je bit P 0, všetky polia deskriptora stratia svoj význam a uvoľnia sa na ukladanie servisných informácií. . Po ukončení obsluhy sa bit P nastaví na 1 a znova sa sprístupní deskriptor, ktorého segment je už v pamäti.

Tu končí konverzia z logickej na lineárnu a myslím si, že stojí za to zastaviť. Nabudúce sa budem venovať druhej časti lineárnej transformácie na fyzickú.
A tiež si myslím, že stojí za to sa trochu porozprávať o odovzdávaní argumentov funkcií a o umiestňovaní premenných do pamäte, aby tam bolo nejaké spojenie s realitou, pretože umiestnenie premenných v pamäti je už priamo, potom to, s čím sa musíte vo svojom prácu, a nielen to, čo je pre systémového programátora teoretická špekulácia. Ale bez pochopenia toho, ako pamäť funguje, nie je možné pochopiť, ako sú tie isté premenné uložené v pamäti.
Vo všeobecnosti dúfam, že to bolo zaujímavé, kým sa znova nestretneme.

vstupné, výstupné medziúdaje spracovávané procesorom.

Štruktúra RAM

Operatívna pamäť pozostáva z buniek, z ktorých každá môže obsahovať jednotku informácie – strojové slovo. Každá bunka má dve vlastnosti: adresu a obsah. Cez register adries mikroprocesora je možné pristupovať k akejkoľvek pamäťovej bunke.

Model segmentovej pamäte

Kedysi dávno, na úsvite narodenia počítačová technológia, RAM bola veľmi malá a na jej adresovanie (tzv. „slovo“) boli použité 2 bajty. Tento prístup umožnil adresovať 64 KB pamäte a adresovanie bolo lineárne – na označenie adresy sa použilo jediné číslo. Neskôr, so zlepšením technológie, si výrobcovia uvedomili, že je možné podporovať veľké množstvo pamäte, ale na to musíte zväčšiť veľkosť adresy. Kvôli kompatibilite s už napísaným softvérom bolo rozhodnuté urobiť toto: adresovanie je teraz dvojzložkové (segment a offset), z ktorých každý je 16-bitový a staré programy používali jeden 16-bitový komponent a nevedia nič o segmentoch, takže pokračujú v práci


Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO
Logická štruktúra pamäte s náhodným prístupom

Adresový priestor je množina adries, ktoré môže vytvoriť procesor. Za čo? Dobrá otázka. Ide o to, že každá pamäťová bunka má svoju adresu. A aby ste mohli čítať (alebo zapisovať) informácie v ňom uložené, musíte sa naň obrátiť na jeho adrese. Adresy sa delia na virtuálne (logické) a fyzické. Fyzické adresy sú skutočné adresy skutočných pamäťových miest. Programy sú hlboko paralelné s takýmito adresami, pretože fungujú na symbolických názvoch, ktoré potom prekladateľ prevedie na virtuálne adresy... Potom sa virtuálne adresy skonvertujú na fyzické.



Logické adresy sú reprezentované v hexadecimálnom tvare a majú dve časti. Logicky je RAM rozdelená na segmenty. Takže prvá časť logickej adresy je začiatok segmentu a druhá je posun od tohto začiatku (segment, offset)

Logická štruktúra je rozdelená do 5 zón:

1. Konvenčná pamäť - hlavná pamäť;

Začína na adrese 00000 (0000: 0000) a až do 90 000 (9000: 0000). Zaberie to 640 kB. V prvom rade sa do tejto oblasti načíta tabuľka vektorov prerušení, počnúc od 00000 a zaberá 1 KB, nasledujú dáta z BIOSu (počítadlo časovača, vyrovnávacia pamäť klávesnice atď.) a potom najrôznejšie 16 bitové programy DOS (640 KB je pre nich bariéra, za ktorú môžu vyskočiť len 32-bitové programy). Pre údaje systému BIOS je vyčlenených 768 bajtov.
2. UMA (Upper Memory Area) - horná pamäť;

Začína na adrese А0000 až FFFFF. Zaberá 384 kB. Tu sa načítajú informácie týkajúce sa hardvéru počítača. UMA je možné rozdeliť na 3 časti po 128 kB. Prvá časť (od А0000 do BFFFF) je určená pre video pamäť. Načíta sa ďalšia časť (od C0000 po DFFFF). programy systému BIOS adaptéry. Posledná časť (E0000 až FFFFF) je vyhradená pre systém BIOS. Ide o to, že posledných 128 KB nie je plne využitých. Vo väčšine prípadov je v systéme BIOS zahrnutých iba posledných 64 KB. Voľná ​​časť UMB je riadená ovládačom EMM386.EXE a slúži pre potreby operačný systém.
3. HMA (High Memory Area) - oblasť vysokej pamäte;

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO
História vzhľadu oblasti HMA siaha až k procesoru 80286, respektíve k chybe v jeho obvode. Už som povedal, že procesory 8086 a 8087 mali 20-bitovú adresovú zbernicu, pracovali v skutočný režim a mohol by čo najviac riešiť FFFFF (FFFF: 000F). Ale procesor 80286 už mal 24-bitovú adresovú zbernicu, pracoval v reálnom a chránenom režime a mohol adresovať až 16 MB pamäte.
4. XMS (eXtended Memory Specification) - prídavná pamäť;

Pre prácu v XMS pomocou DOS bol vyvinutý ďalší režim pre procesory - virtuálny. DOS nemôže prekonať hranicu 640 kB, virtuálny režim vám umožňuje rozdeliť dodatočnú pamäť na kúsky

1 MB. Každá časť je zaťažená program DOS a tam sú varené v reálnom režime, ale bez vzájomného zasahovania, budú vykonané súčasne. 32-bitové aplikácie sa nestarajú o 640 KB bariéru. XMS je zodpovedný za preklad režimov procesora, ovládača EMM386.EXE a HIMEM.SYS za organizáciu samotnej oblasti. Môžete vidieť, čo sa deje v XMS, pomocou SysInfo z balíka Norton Utilities.
5. EMS (Expanded Memory Specification) - rozšírená pamäť;

Táto oblasť sa nachádza v hornej pamäti a zaberá približne 64 KB. Predtým sa používal iba v starých počítačoch s RAM

1 MB. Vzhľadom na svoju špecifikáciu ide o pomerne pomalú oblasť. Rozšírená pamäť je totiž jedným z mnohých prepínaných segmentov. Po naplnení segmentu sa použitý segment nahradí novým. Ale môžete pracovať iba s jedným segmentom, a to, sami musíte pochopiť, nie je veľmi dobré, pohodlné a rýchle. Prvý segment EMS sa zvyčajne nachádza na D000.

Logická štruktúra pamäte s náhodným prístupom v grafickej forme.

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO

4. DRAM – dynamická pamäť s náhodným prístupom

DRAM- toto je veľmi starý typČipy RAM, ktoré sa už dávno nepoužívajú. Inak DRAM Je dynamická pamäť s náhodným prístupom. Najmenšia jednotka informácie pri ukladaní alebo prenose údajov v počítači je bit. Každý bit môže byť v dvoch stavoch: zapnutý (áno, 1) alebo vypnutý (nie, 0). Akékoľvek množstvo informácií v konečnom dôsledku pozostáva zo zapnutých a vypnutých bitov. Aby bolo možné uložiť alebo preniesť akékoľvek množstvo údajov, je potrebné uložiť alebo preniesť každý bit, bez ohľadu na jeho stav, tieto údaje.


V RAM sú bunky na ukladanie bitov informácií. Bunky sú tvorené kondenzátormi a tranzistormi. Tu je príklad a zjednodušená schéma bunky DRAM:

Každá bunka je schopná uložiť iba jeden bit. Ak je kondenzátor nabitý, znamená to, že bit je zapnutý, ak je vybitý, je vypnutý. Ak si potrebujete zapamätať jeden bajt dát, potom potrebujete 8 buniek (1 bajt = 8 bitov). Bunky sú umiestnené v matriciach a každá z nich má svoju adresu, ktorá sa skladá z čísla riadku a čísla stĺpca.

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO

Teraz sa pozrime na to, ako funguje čítanie. Najprv sa na všetky vstupy odošle signál RAS (Row Address Strobe) – toto je adresa riadku. Potom sa všetky údaje z tohto riadku zapíšu do vyrovnávacej pamäte. Potom sa do registra odošle signál CAS (Column Address Strobe) - to je signál stĺpca a vyberie sa bit s príslušnou adresou. Tento bit sa privádza na výstup. No pri čítaní sa dáta v bunkách čítacieho riadku zničia a treba ich prepísať odberom z vyrovnávacej pamäte.

Teraz záznam. Signál WR (Write) je aplikovaný a informácia prichádza na stĺpcovú zbernicu nie z registra, ale z informačného vstupu pamäte cez prepínač definovaný adresou stĺpca. Prepis údajov je teda určený kombináciou signálov adresy stĺpca a riadka a povolením zapisovať údaje do pamäte. Pri zápise sa na výstup neposielajú dáta z reťazca string.

Treba mať na pamäti, že matice s bunkami sú usporiadané takto:

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO

To znamená, že naraz sa nebude čítať jeden bit, ale hneď niekoľko. Ak je paralelne umiestnených 8 matíc, okamžite sa načíta jeden bajt. Toto sa nazýva bitová hĺbka. Počet riadkov, cez ktoré sa budú prenášať dáta z (alebo do) paralelných matíc, je určený šírkou I/O zbernice mikroobvodu.
Keď hovoríme o DRAM, je potrebné mať na pamäti jeden bod. Všetko spočíva v tom, že kondenzátory nedokážu nekonečne dlho skladovať náboj a ten sa nakoniec „vybije.“ Preto je potrebné kondenzátory dobíjať. Operácia dobitia sa nazýva Refresh alebo regenerácia. Táto operácia sa vyskytuje približne každé 2 ms a niekedy zaberie až 10 % (alebo aj viac) pracovného času procesora.

Najdôležitejšou charakteristikou DRAM je rýchlosť, alebo, jednoduchšie, čas cyklu + čas oneskorenia + čas prístupu, kde čas cyklu je čas strávený prenosom dát, čas oneskorenia je pôvodné nastavenie adresy riadkov a stĺpcov a čas prístupu je čas vyhľadávania pre samotnú bunku. Tieto kecy sa merajú v nanosekundách (jedna miliardtina sekundy). Moderné pamäťové mikroobvody majú rýchlosť menšiu ako 10 ms.

RAM je riadená radičom, ktorý sa nachádza v čipsete základnej dosky, respektíve v tej jej časti zvanej Severný most.


Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO

A teraz, keď sme pochopili, ako RAM funguje, poďme zistiť, prečo je to vôbec potrebné. RAM možno po procesore považovať za najrýchlejšie fungujúce zariadenie. Preto dochádza k hlavnej výmene údajov medzi týmito dvoma zariadeniami. Všetky informácie v osobný počítač uložené na pevnom disku. Keď zapnete počítač v pamäti RAM (Random Access Memory), ovládač sa zapíše zo skrutky, špeciálne programy a prvky operačného systému. Potom tam budú napísané tie programy - aplikácie, ktoré budete spúšťať. Keď tieto programy zatvoríte, vymažú sa z pamäte RAM. Dáta zapísané v RAM sa prenesú do CPU (Central Processing Unit), kde sa spracujú a zapíšu späť. A tak je to neustále: dali príkaz procesoru, aby zobral bity na takých adresách, ako ich tam spracoval a vrátil na svoje miesto alebo zapísal na nové – on to urobil.

To všetko je dobré, pokiaľ je dostatok buniek RAM. A ak nie? Potom vstúpi do hry swap súbor. Tento súbor sa nachádza na pevnom disku a je tam zapísané všetko, čo sa nezmestí do buniek RAM. Pretože rýchlosť skrutky je oveľa nižšia ako RAM, stránkovací súbor značne spomaľuje systém. Znižuje tiež životnosť samotného pevného disku.

Zvýšenie množstva pamäte nezvýši jej výkon. Zmena množstva pamäte žiadnym spôsobom neovplyvní jej výkon. Ale ak vezmeme do úvahy fungovanie systému, potom je vec iná. V prípade, že máte dostatok pamäte RAM, zvýšenie hlasitosti nepovedie k zvýšeniu rýchlosti systému. Ak nie je dostatok buniek RAM, zvýšenie ich počtu (inými slovami, pridanie nového alebo výmena starého za nový s veľkou pamäťovou linkou) zrýchli systém.

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO

Rev.
list
Dokument č.
Podpis
dátum
list
PPP PI 23,00,00 TO
internetové zdroje

http://nikesina.ucoz.ru/

http://www.whatis.ru/

http://wiki.mvtom.ru/

http://www.teryra.com/

http://smartronix.ru/

http://allrefs.net/

http://sonikelf.ru/

http://beginpc.ru/

Bibliografia

Praktický sprievodca systémový administrátor. (2012)

Andrew Tanenbaum, Todd Austin - Počítačová architektúra (2013)

Adresovanie operandov v programových inštrukciách môže byť:

l priamy;

l nepriamy;

l asociatívny;

l implicitne.

Priame adresovanie spočíva v špecifikovaní hodnoty samotného operandu v príkaze a nie jeho adresy.

Priame adresovanie spočíva v tom, že sa v príkaze priamo uvedie absolútna alebo vykonávacia adresa operandu. Priame adresovanie registra spočíva v zadaní jeho názvu.

Nepriame adresovanie znamená v príkaze označenie registra alebo adresy pamäťovej bunky, v ktorej sa nachádza absolútna, výkonná adresa operandu alebo ich komponentov.

Asociatívne adresovanie je indikáciou v príkaze nie adresy, ale identifikujúceho zmysluplného atribútu operandu, ktorý sa má vzorkovať (používaný v asociatívnych pamäťových zariadeniach).

Implicitné adresovanie - adresa operandu nie je špecifikovaná v príkaze, ale je implikovaná operačným kódom.

Adresovanie buniek hlavnej pamäte PC má dva dôležité druhy: relatívne a zásobníkové.

Relatívne oslovovanie

Absolútna (A ind) adresa je vytvorená ako súčet výkonných (Aisp) a segmentových (A segm) adries:

A abs = A segment + A isp.

Segm - 20-bitová adresa počiatočného segmentu , čo je 16x (posunutá o 4 bity doľava) 16-bitová adresa segmentu A "segment uložená v jednom zo 16-bitových registrov segmentu. Počiatočná adresa segmentu je v tomto prípade vždy násobkom 16 bajtov a dá sa plne identifikovať hodnota A "segment (segment vždy pozostáva z celého čísla odsekov a odsek je 16, to znamená:

Segment = 16 · „Segment = A“ segment 0000.

16-bitová vykonávacia adresa môže byť súčtom 3 adries v PC:

ISP = posun [+ základňa] [+ A ind]

l A offset - 16-bitová offsetová adresa vzhľadom na začiatok segmentu (alebo relatívne k základni, ak existujú bázy A);



l A bázy - 16-bitová offsetová adresa bázy adresy operandu vzhľadom na začiatok segmentu;

l ind - indexová adresa (alebo len index) - dodatočná zložka adresy operandu, ktorá sa často používa pri programovaní cyklické procesy s poliami a tabuľkami. Index musí byť uvedený priamo v príslušnom registri MPP.

Pri adresovaní údajov je možné použiť všetky zložky adresy:

Údaje Abs = A segment + A ev = A segment + A offset [+ A základ] [+ A ind]

Segment = 16 Segment "segment, A" je štandardne prevzatý z registra DS alebo z registra ES, ak je to špecifikované v programe. Bázy A a A ind sa preberajú z BX a indexových registrov (SI alebo DI) a ofsety A sú explicitne alebo implicitne uvedené v programe.

Pri adresovaní programových príkazov možno použiť iba dve zložky adresy:

Príkazy A abs = A segm + A ev = A segm + A offset

Segment A je prevzatý z registra CS a offset A je z registra IP.

Adresovanie zásobníka

V zásobníkovej pamäti (stack) nie je prístup k pamäťovým bunkám náhodný, ale podľa princípu „najskôr sa číta posledný zapísaný operand“ (FILO).

Zásobník abs = Segm + + A offset

16-bitová adresa segmentu A "segmentu sa preberá z registra SS, offsety vzhľadom na začiatok segmentu zásobníka sa automaticky načítajú z registrov BP (offset bázy zásobníka - bázy A) a SP (offset aktívneho bunka zásobníka, do ktorej sa informácie zapisujú alebo z ktorej sa informácie čítajú, -" horná časť zásobníka "vzhľadom na základ - posun A).

V chránenom (multiprogramovom) režime činnosti mikroprocesora sú počiatočné adresy segmentov uložené v tabuľkách deskriptorov a majú dĺžku 24 alebo 32 bitov (v závislosti od typu MP).Segmentové registre v tomto režime uchovávajú selektory obsahujúce odkazy na adresy zodpovedajúce tabuľky deskriptorov.

Samotestovacie otázky

1. Formulujte hlavné vlastnosti algoritmu.

2. Zvážte spôsoby zápisu algoritmu.

3. Uveďte a vysvetlite typickú skladbu strojových inštrukcií.

4. Zvážte možné štruktúry strojových inštrukcií.

5. Vysvetlite účel systému a aplikačného softvéru.

6. Aké sú hlavné režimy prevádzky počítačov a stručne ich popíšte.

7. Čo sú programové prerušenia a aký je ich účel?

8. Vymenujte a vysvetlite typy prerušení.

9. Skontrolujte postupnosť akcií stroja, keď sa vykoná prerušenie.

10. Vymenujte typy a vlastnosti adresovania pamäťových buniek v PC.

11. Napíšte vzorec na výpočet absolútnej adresy údajov.

12. Aké registre pamäte mikroprocesora sa používajú na adresovanie údajov?

13. Napíšte vzorec na výpočet absolútnej adresy príkazu programu.

14. Aké registre pamäte mikroprocesora sa používajú na adresovanie inštrukcií programu?

15. Napíšte vzorec na výpočet adresy zásobníka.

16. Aké registre pamäte mikroprocesora sa používajú na adresovanie pamäťových buniek zásobníka?


Kapitola 19 Programovacie prvky v assembleri

Po preštudovaní kapitoly by mal študent vedieť:

· - Účel a oblasti použitia jazyka zhromaždenia;

· -Hlavné zložky jazyka;

· -Základné príkazy, príkazy, modifikátory;

· -Adresovanie MPP registrov a pamäťových buniek v assembleri;

· -Programovanie procedúr pre výstup informácií na displej a zadávanie informácií z klávesnice;

· -Štruktúra programu assembler;

· -Postupy tvorby programu vo formáte EXE;

· -Účel, príkazy a možnosti použitia programu Debugger Debug.

Používateľ počítača, ako aj programátor aplikácií, zostavuje programy spravidla v strojovo nezávislom algoritmickom jazyku vysoký stupeň(Basic, Pascal, FORTRAN, C, PROLOG atď.), Pre kompetentného používateľa je však veľmi užitočné pochopiť základy programovania a strojovo orientovaných jazykov pre:

l lepšie pochopenie architektúry PC a lepšie využitie počítačov; rozvíjať racionálnejšie štruktúry algoritmov a programov na riešenie aplikovaných problémov;

l schopnosť prezerať a opravovať spustiteľné programy pomocou EXE rozšírenia a COM kompilované z akýchkoľvek jazykov na vysokej úrovni v prípade straty zdrojové programy(zavolaním špecifikovaných programov do debuggera DEBUG programy a po ich rozobratí môžete získať ich zobrazenie v jazyku symbolických inštrukcií);

l zostavovanie programov na riešenie najkritickejších problémov (strojový program pripravený v strojovo orientovanom jazyku je zvyčajne efektívnejší (kratší a rýchlejší o 30-60%) ako programy získané prekladom z jazykov na vysokej úrovni) a pre implementácia postupov zahrnutých v hlavnom programe vo forme samostatných častí v prípade, že ich nemožno implementovať v žiadnom používanom vysokoúrovňovom jazyku.

Hlavné zložky jazyka symbolických inštancií

Jazyková abeceda

Tvorenie jazykovej abecedy ASCII znaky:

l písmen od A po Z (alebo od a po z, malé a veľké písmená nelíšia sa v assembleri);

l čísla od 0 do 9;

l Špeciálne symboly: @, $,?,., _, -, +, *, ",",;,: atď.

Z písmen, číslic a symbolov: @, $,?,., _ sa tvoria:

l jednoduché správy: názvy (identifikátory) procedúr (podprogramov), premenných, direktív, príkazov (návestí), hodnôt konštánt a premenných;

l zložené správy: príkazy (operátory);

l smernice (pseudooperátory);

l modifikátory (operácie).

Názvy štítkov, premenných, identifikátorov môžu mať dĺžku až 31 znakov a nemusia nevyhnutne začínať číslicou.

Konštanty (čísla a reťazce)

Len celé čísla

Rozlíšiť:

l binárne čísla; končiť písmenom B;

l desatinné čísla; žiadna špeciálna koncovka alebo koniec písmenom D;

l hexadecimálne čísla; končiť písmenom N.

Na označenie čísel 10, 11, 12, 13, 14, 15 v hexadecimálna sústava používajú sa čísla, respektíve písmená A, B, C, D, E, F; ale šestnástkové čísla musia začínať číslicou, napríklad: výraz F19Н nie je číslo, ale identifikátor, správne číslo musí byť napísané takto: 0F19Н.

Nahrávanie záporné čísla:

l desatinné čísla sa píšu zvyčajným spôsobom, len so znamienkom: –32, –32D;

l binárne čísla sa zapisujú len v doplnkovom upravenom kóde: –32D ® 11.100000B, –19D ® 11.01101B;

l Hexadecimálne čísla sa zapisujú iba v dodatočný kód:

l –32D vyzerá ako 1.E0H, –119D vyzerá ako 1.89H.

Struny (doslova)

Reťazce znakov: Zahŕňa akékoľvek písmená, čísla a symboly, ale sú uvedené v úvodzovkách: "IBM PC s mikroprocesorom Pentium D".

Príkazy (operátori)

Formát príkazu:

[Štítok [:]] CZK [Operand] [, Operand] [; Komentár].

Medzi položky príkazov sa vkladajú medzery. Ďalej sú prvky v hranatých zátvorkách voliteľné.

COP (Operator Code) - mnemotechnický kód príkazu (pozostáva z 2-6 písmen). Môže existovať až 256 rôznych kódov (v zostave IBM PC sa ich počet líši v závislosti od typu MP).

Operand je explicitne špecifikovaná adresa (priama alebo nepriama); názov štítku, premenná; hodnota samotnej premennej; asociatívna vlastnosť. Assembler zistí počet operandov požadovaných v príkaze CPC. Väčšina dvojadresových príkazov má cieľový (dst - destination) a zdrojový (src - source) operand; zdroj nemení jeho obsah, v prijímači je 1. číslo zúčastnené na operácii nahradené výsledkom.

Ministerstvo školstva a vedy regiónu Nižný Novgorod

Štátna rozpočtová vzdelávacia inštitúcia

stredné odborné vzdelanie

"Borská provinčná vysoká škola"

Špecialita 230701 Aplikovaná informatika (podľa odvetvia)

abstraktné

K téme: Štruktúra pamäte s náhodným prístupom.

Podľa disciplíny: Operačné systémy a prostredia.

Dokončené:

študent gr. IT-41

Rodov A.E.

Skontrolované:

A.V. Markov

Mestská časť Bor

Úvod

Náhodný vstup do pamäťe(z angl. Náhodný Prístup Pamäť) Náhodný vstup do pamäťe. RAM ( pamäť s náhodným prístupom) - nestála časť systému pamäte počítača, v ktorej sa počas prevádzky počítača spustiteľný súbor strojový kód(programy) a vstupné, výstupné medziúdaje spracovávané procesorom.

1. Štruktúra RAM

Operatívna pamäť pozostáva z buniek, z ktorých každá môže obsahovať jednotku informácie – strojové slovo. Každá bunka má dve vlastnosti: adresu a obsah. Cez register adries mikroprocesora je možné pristupovať k akejkoľvek pamäťovej bunke.

2. Model segmentovej pamäte

Kedysi, na úsvite zrodu počítačovej techniky, bola RAM veľmi malá a na jej adresovanie sa používali 2 bajty (tzv. „slovo“). Tento prístup umožnil adresovať 64 KB pamäte a adresovanie bolo lineárne – na označenie adresy sa použilo jediné číslo. Neskôr, so zlepšením technológie, si výrobcovia uvedomili, že je možné podporovať veľké množstvo pamäte, ale na to musíte zväčšiť veľkosť adresy. Kvôli kompatibilite s už napísaným softvérom bolo rozhodnuté urobiť toto: adresovanie je teraz dvojzložkové (segment a offset), z ktorých každý je 16-bitový a staré programy používali jeden 16-bitový komponent a nevedia nič o segmentoch, takže pokračujú v práci


4. DRAM – dynamická pamäť s náhodným prístupom

DRAM- Ide o veľmi starý typ čipov RAM, ktorý sa dlho nepoužíval. Inak DRAM Je dynamická pamäť s náhodným prístupom. Najmenšia jednotka informácie pri ukladaní alebo prenose údajov v počítači je bit. Každý bit môže byť v dvoch stavoch: zapnutý (áno, 1) alebo vypnutý (nie, 0). Akékoľvek množstvo informácií v konečnom dôsledku pozostáva zo zapnutých a vypnutých bitov. Aby bolo možné uložiť alebo preniesť akékoľvek množstvo údajov, je potrebné uložiť alebo preniesť každý bit, bez ohľadu na jeho stav, tieto údaje.

V RAM sú bunky na ukladanie bitov informácií. Bunky sú tvorené kondenzátormi a tranzistormi. Tu je príklad a zjednodušená schéma bunky DRAM:

Každá bunka je schopná uložiť iba jeden bit. Ak je kondenzátor nabitý, znamená to, že bit je zapnutý, ak je vybitý, je vypnutý. Ak si potrebujete zapamätať jeden bajt dát, potom potrebujete 8 buniek (1 bajt = 8 bitov). Bunky sú umiestnené v matriciach a každá z nich má svoju adresu, ktorá sa skladá z čísla riadku a čísla stĺpca.

Teraz sa pozrime na to, ako funguje čítanie. Najprv sa na všetky vstupy odošle signál RAS (Row Address Strobe) – toto je adresa riadku. Potom sa všetky údaje z tohto riadku zapíšu do vyrovnávacej pamäte. Potom sa do registra odošle signál CAS (Column Address Strobe) - to je signál stĺpca a vyberie sa bit s príslušnou adresou. Tento bit sa privádza na výstup. No pri čítaní sa dáta v bunkách čítacieho riadku zničia a treba ich prepísať odberom z vyrovnávacej pamäte.

Teraz záznam. Signál WR (Write) je aplikovaný a informácia prichádza na stĺpcovú zbernicu nie z registra, ale z informačného vstupu pamäte cez prepínač definovaný adresou stĺpca. Prepis údajov je teda určený kombináciou signálov adresy stĺpca a riadka a povolením zapisovať údaje do pamäte. Pri zápise sa na výstup neposielajú dáta z reťazca string.

Treba mať na pamäti, že matice s bunkami sú usporiadané takto:

To znamená, že naraz sa nebude čítať jeden bit, ale hneď niekoľko. Ak je paralelne umiestnených 8 matíc, okamžite sa načíta jeden bajt. Toto sa nazýva bitová hĺbka. Počet riadkov, cez ktoré sa budú prenášať dáta z (alebo do) paralelných matíc, je určený šírkou I/O zbernice mikroobvodu.
Keď hovoríme o DRAM, je potrebné mať na pamäti jeden bod. Všetko spočíva v tom, že kondenzátory nedokážu nekonečne dlho skladovať náboj a ten sa nakoniec „vybije.“ Preto je potrebné kondenzátory dobíjať. Operácia dobitia sa nazýva Refresh alebo regenerácia. Táto operácia sa vyskytuje približne každé 2 ms a niekedy zaberie až 10 % (alebo aj viac) pracovného času procesora.

Najdôležitejšou charakteristikou DRAM je rýchlosť alebo jednoduchšie čas cyklu + latencia + čas prístupu, kde čas cyklu je čas strávený prenosom údajov, čas oneskorenia je počiatočné nastavenie adries riadkov a stĺpcov a čas prístupu je čas vyhľadávania pre samotnú bunku. Tieto kecy sa merajú v nanosekundách (jedna miliardtina sekundy). Moderné pamäťové mikroobvody majú rýchlosť menšiu ako 10 ms.

RAM je riadená radičom, ktorý sa nachádza v čipsete základnej dosky, respektíve v tej jej časti zvanej Severný most.

A teraz, keď sme pochopili, ako RAM funguje, poďme zistiť, prečo je to vôbec potrebné. RAM možno po procesore považovať za najrýchlejšie fungujúce zariadenie. Preto dochádza k hlavnej výmene údajov medzi týmito dvoma zariadeniami. Všetky informácie v osobnom počítači sú uložené na pevnom disku. Po zapnutí počítača sa ovládače, špeciálne programy a prvky operačného systému zapisujú zo skrutky do pamäte RAM (Random Access Memory). Potom tam budú napísané tie programy - aplikácie, ktoré budete spúšťať. Keď tieto programy zatvoríte, vymažú sa z pamäte RAM. Dáta zapísané v RAM sa prenesú do CPU (Central Processing Unit), kde sa spracujú a zapíšu späť. A tak je to neustále: dali príkaz procesoru, aby zobral bity na takých adresách, ako ich tam spracoval a vrátil na svoje miesto alebo zapísal na nové – on to urobil.

To všetko je dobré, pokiaľ je dostatok buniek RAM. A ak nie? Potom vstúpi do hry swap súbor. Tento súbor sa nachádza na pevnom disku a je tam zapísané všetko, čo sa nezmestí do buniek RAM. Pretože rýchlosť skrutky je oveľa nižšia ako RAM, stránkovací súbor značne spomaľuje systém. Znižuje tiež životnosť samotného pevného disku.

Zvýšenie množstva pamäte nezvýši jej výkon. Zmena množstva pamäte žiadnym spôsobom neovplyvní jej výkon. Ale ak vezmeme do úvahy fungovanie systému, potom je vec iná. V prípade, že máte dostatok pamäte RAM, zvýšenie hlasitosti nepovedie k zvýšeniu rýchlosti systému. Ak nie je dostatok buniek RAM, zvýšenie ich počtu (inými slovami, pridanie nového alebo výmena starého za nový s veľkou pamäťovou linkou) zrýchli systém.