itthon / Vegyes / Mi az ECC RAM? Pufferelt RAM - mi ez? Szekvenciális funkcionális egységek. Regiszterek és regisztrációs memória Memória regisztrálása

Mi az ECC RAM? Pufferelt RAM - mi ez? Szekvenciális funkcionális egységek. Regiszterek és regisztrációs memória Memória regisztrálása

Mindenki tudja, hogy a modern számítástechnikai eszközök rendelkeznek RAM, ahol az információ csak működés közben kerül tárolásra. A RAM mikroáramkörökkel (chipekkel) rendelkező modulok formájában készül, amelyek cellakészlettel rendelkeznek a bitinformációk tárolására. Minden memóriacellát úgy terveztek, hogy nullát vagy egyet tároljon. 8 ilyen cella 8 bitet tárol (ez már 1 bájt). Az ilyen chipek félvezetők alapján készülnek. De a modulok és a PC megvalósításának számos komoly különbsége van, amelyeket ebben a cikkben megvizsgálunk.

Paritás memória.

A számítástechnika fejlődésének korai szakaszában a félvezető elemek előállításának technológiája még nem volt túl fejlett. Ezért bármilyen memóriacellába íráskor fennállt az információvesztés lehetősége: egyet írtak rá, de nem rögzítették (nulla maradt). A memóriába írás folyamatának valamilyen módon történő szabályozása érdekében egy egyszerű adatellenőrzési technológiát találtak ki.

Egy bájt (8 bit) írása előtt a bájt összes bitjének összegét kiszámítottuk. De nem a teljes ellenőrző összeget jegyezték meg (memória megtakarítás céljából), hanem csak az utolsó bitjét, amelynek értékét (nulla vagy egy) egy speciálisan erre kijelölt helyen jegyezték meg. Ennek a bitnek az értéke (0 vagy 1) attól függött, hogy a bitek összege páros vagy páratlan volt-e összeadáskor. Ezért ez a bit paritásbitként vált ismertté.

Az eredeti bájt memóriacellákba írása után kiszámoltuk egy ilyen tárolt bájt bitjeinek összegét, és ennek az összegnek a paritását összehasonlítottuk az előzővel (amelynek az értéke a paritásbitben került tárolásra). Ha az ellenőrző összegek paritásai megegyeztek, akkor a memóriába való írás sikeresnek tekinthető. És ha nem egyeztek, akkor hibaüzenet generált. Ezt a technológiát paritásszabályozásnak nevezik.

Memória paritás nélkül.

Idővel megbízhatóbb mikroáramkörök kezdtek megjelenni. Csökkent bennük a hibák valószínűsége. Ezzel párhuzamosan az elektronikai alkatrészek költsége is csökkent. A számítógépek gyártása és értékesítése hatalmasra nőtt. Egyes felhasználók számára a számítógépek működésében fellépő hibák nem voltak kritikusak. Ezért olyan modelleket kezdtek gyártani a piacon, amelyek paritás nélkül használták a memóriát. Az "extra" kilencedik bittől (minden bájtnál) és az ellenőrző összegek kiszámításának "túlzott" költségeitől való megszabadulás lehetővé tette a számítógépek költségeinek némi csökkentését és a fogyasztók tömegei számára hozzáférhetővé tételét. Az ilyen számítógépek nagyon népszerűvé váltak az asztali (asztali) rendszerek körében.

Egyes iparágakban, katonai-védelmi jelentőségű rendszerekben és a bankszektorban azonban továbbra is a számítástechnikai rendszerek hibáinak megengedhetetlensége az egyik legfontosabb feladat.

Memória vezérléssel és hibajavítással.

A paritásszabályozási technológia nem tökéletes. Nem képes érzékelni pl. 2 bit "eltűnését" egyszerre (a paritás ebben az esetben nem változik). Ezért az a döntés született, hogy a memóriába írt minden adatbitet ne egy ellenőrzőösszegbe, hanem többbe kell belefoglalni. Egy ilyen vezérlőrendszerrel lehetővé vált több hiba, azok címének egyidejű észlelése, valamint ezen hibák kijavítása. Ezt a technológiát Error Correction Code-nak (ECC) hívták, mivel egy olyan kódot számítottak ki, amely lehetővé tette a hibajavítást.

Természetesen további regiszterek szükségesek az ellenőrző összegek tárolásához, ami drágítja az ilyen memóriamodulokat, de általában az ECC memórián alapuló rendszerek hibatűrőbbek. Az ilyen memóriamodulokat legszélesebb körben szerverrendszerekben használják.

A paritásos és ECC technológiás memória szerver és asztali rendszerekben egyaránt használható. Az első esetben ezt a megoldandó feladatok fontossága indokolja (ahol a legkisebb hiba költsége nagyon magas), a második esetben pedig nem mindig célszerű (gazdasági szempontból: végül is a hibakezeléssel ellátott modulok használatához drágább alaplapra van szükség, amely támogatja ezt a technológiát, különben a hibaelhárítás egyszerűen nem működik).

pufferelt memória.

A számítástechnikai rendszerekben a memóriába és onnan történő írás/olvasás vezérlését egy speciális memóriavezérlő végzi. Ennek a vezérlőnek hozzá kell férnie az összes memóriacellához, és biztosítania kell az információk átvitelét a buszról a memóriába és fordítva. Az asztali rendszerek gyakran használnak processzorokat integrált memóriavezérlővel. Ennek a megvalósításnak néhány hátránya a következő:

Csak egy vezérlő van, de sok memóriacellát kell vezérelni – korlátozott az egyidejűleg kiszolgált memóriabankok száma a nagy teljesítmény megőrzése mellett;

Egy adatbuszon a processzortól vagy más számítógép-összetevőktől a vezérlőparancsokat és az adatokat is át kell vinni az összes használt memóriamodulra (növekszik a busz terhelése).

A helyzet javítása érdekében úgy döntöttek, hogy a vezérlő funkcióinak egy részét minden memóriamodulban megvalósítják. Ennek érdekében a memóriamodulba egy speciális chip van beépítve, amely pufferként működik, amely a központi processzortól kapja a vezérlési és címbeállítási parancsokat (ebben az esetben a memóriába irányuló adatáramlás a buszon párhuzamosan halad a paranccsal párhuzamosan folyam). Így született meg a pufferelt memória.

Később ebben a pufferben elkezdték implementálni a hibajavító funkciókat (ECC), és lehetővé vált a memória növelése az adatbusz további terhelése nélkül. A puffer megvalósítására szolgáló további chipek regiszterek néven váltak ismertté, maga a memória pedig regisztrált memória néven.

Idővel megjelentek a teljesen pufferelt memóriamodulok (FB - full buffered), amelyek pufferében (regiszterében) nemcsak a vezérlőjelek, hanem az adatok is szekvenciálisan, egy folyamban elkezdtek átvitelre kerülni. Köztes puffer használatakor némi lassulás tapasztalható a memória működésében, mert egy köztes ciklus szükséges a pufferbe való íráshoz.

Az ilyen memória egy további regiszterchip jelenléte és összetett technológiák alkalmazása miatt sokkal drágább, mint a nem regisztrált memória. Ergonómiája, hangerőnövelési lehetősége, valamint hibaellenőrzése miatt azonban széles körben alkalmazzák szerverrendszerekben, ahol nagyon fontos a stabil és hibamentes munkavégzés nagy adatmennyiséggel.

Kompatibilitási problémák.

A fejlesztésük korai szakaszában lévő pufferelt memóriamodulokat asztali és szerver rendszerekben is használták, de a regisztrált memória megjelenése megszüntette a PC-ben való használat lehetőségét.

Asztali rendszerekben a regisztrált memória használata nem praktikus (túl magas költségek), és gyakran lehetetlen, mivel az asztali számítógépekben használt legtöbb alaplap nem támogatja a regisztrált memóriát. A modern szerverrendszerekben használt alaplapokat ezzel szemben úgy tervezték, hogy csak regisztrált memóriával működjenek, mivel a kapacitás növelése (a platform megváltoztatása nélkül) és a hibák ellenőrzésének képessége fontosabb tényezők a szerverek számára, mint a költségek.

Nagyon gyakran az alkatrészek kiválasztásakor találkozunk különféle érthetetlen kifejezésekkel, fogalmakkal. A RAM kiválasztásakor lehet DDR, DDR2, DDR3, DDR4, RDRAM, RIMM stb. Ha minden többé-kevésbé világos a RAM fő típusaival kapcsolatban, és az egyes típusok támogatása az alaplap leírásában szerepel, akkor egy olyan paraméter, mint az ECC, sok kérdést vet fel. Mi az ECC memória? Használható-e az ECC RAM otthoni számítógépen, és mi a fő különbség az ECC RAM és a nem ECC RAM között?

Mi az ECC memória?

Ez egy speciális típusú RAM beépített hibajavító hardverrel. Az ilyen memóriamodulokat kifejezetten szerverekhez fejlesztették ki, ahol az adatok helyességére és feldolgozásuk megbízhatóságára vonatkozó követelmények sokkal magasabbak, mint a személyi számítógépeknél.

Az ECC-Ram automatikusan felismeri a tárolóblokkokban bekövetkezett spontán adatváltozásokat, vagyis a fellépő hibákat. Normál – a korrekciós mechanizmusok támogatása nélküli asztali memóriát nem ECC-nek nevezzük.

Mire képes az ECC memória és hogyan működik?

A hibajavító memória minden gépszóban 1 bit megváltozott adatot képes észlelni és kijavítani. Mit jelent? Ha az írás és az olvasás közötti adat valamilyen okból megváltozott (vagyis hiba történt), akkor az ECC RAM a megfelelő értékre korrigálja az értéket. Az ilyen funkciókhoz a RAM-vezérlő támogatása szükséges. Ezt a támogatást az alaplapi lapkakészlet, a modern processzorok beépített RAM-vezérlője tudja megszervezni.

A hibajavító algoritmus a Hamming-kódon alapul, de más algoritmusok is használhatók egynél több hiba javítására. A gyakorlatban memóriamodulokat használnak, ahol minden 8 memóriachiphez egy további chipet adnak, amely ECC kódokat tárol (8 bit a fő memória minden 64 bitjéhez).

Miért torzul a RAM memóriacellák értéke?

Az adatok torzulásának egyik fő oka a kozmikus sugarak. Bár a Földön a légkör védelme alatt állunk, a kozmikus sugarak magukkal hordoznak néhány elemi részecskét, amelyek hatással lehetnek az elektronikára, beleértve a számítógép memóriáját is. Ezen részecskék energiájának hatására a memóriacella állapotának változása lehetséges, ami adattorzulásokhoz és hibákhoz vezet. Érdekes módon a kozmikus sugárzásnak való kitettség a magasság növekedésével növekszik, így a nagy magasságú számítógépes rendszerek jobb védelmet igényelnek.

Hogyan működik az ECC memória

A RAM egyik hibakezelési mechanizmusa a paritástechnológia alkalmazása, amely lehetővé teszi az adatok hiba tényének kijavítását, de nem teszi lehetővé az adatok javítását.

Hamming kódot használunk az ECC korrekcióhoz. Az ECC megvédi a számítógépes rendszereket a memóriasérülések miatti helytelen működéstől, és csökkenti a kritikus rendszerhibák valószínűségét. Az ECC támogatással rendelkező memória az alkalmazástól függően 2-3%-kal lassabb, mint a nem ECC memória.

Az ECC memória használatának okai

Nincs objektív ok az ECC-képes RAM használatára asztali számítógépekben. Mivel az adathibák előfordulásának valószínűsége rendkívül kicsi, normál számítógép-használati forgatókönyvek esetén rendkívül valószínűtlen, hogy egy hiba problémát vagy összeomlást okozna a számítógépben. A legrosszabb forgatókönyv a megjelenés kék képernyő BSOD halál. Ráadásul az ECC RAM használata nehézkes, mert az asztali processzorok ill alaplapok a legtöbb nem támogatja ezt a fajta RAM-ot.

Az ECC hibajavítással ellátott RAM használata a szerver és a vállalati szegmensben releváns, ahol a hibatűrés és a megbízhatóság követelményei nagyon magasak, és az adatok helyessége befolyásolhatja a számítások eredményeit és a rendszer egészének működését. .

Hogy vagy? -

Meg lehet különböztetni három A mikrokontrollerekben használt fő memóriatípusok:

● memória programok, amely programkód és konstansok tárolására tervezett csak olvasható memória. Ez a memória nem változtatja meg a tartalmát a program végrehajtása során;

● memória adat, Változók (eredmények) tárolására tervezték a program végrehajtása során;

Regisztráció memória, amely a mikrokontroller belső regisztereiből áll. Fontolja meg az egyes memóriatípusok jellemzőit.

Program memória.

Az ilyen memória szükségessége abból adódik, hogy a mikrokontroller nem tartalmaz olyan memóriaeszközöket, mint a merevlemez a számítógépben, amelyről a végrehajtható program betöltődik. Ezért a programkódot tartósan el kell tárolni a mikrokontrollerben.

Minden típusú programmemória nem illékonyra memória, vagy csak olvasható memória (ROM), amelynek tartalma a mikrokontroller kikapcsolása után is megmarad.

A végrehajtás során ebből a memóriából olvassa be a program, melynek dekódolását a vezérlőegység (parancsdekódoló) végzi és elvégzi a szükséges műveleteket. A programvégrehajtás során a programmemória tartalma nem módosítható (újraprogramozható). Ezért a mikrokontroller funkcionalitása nem változhat mindaddig, amíg a programmemóriájának tartalmát nem törlik (ha lehetséges) és újra nem programozzák (új utasításokkal töltik fel).

Megjegyzendő, hogy a mikrokontroller bitességét (8, 16 vagy 32 bit) az adatbusz bitjének megfelelően jelzi.

Ha egy eszközt 8 bitesnek mondunk, az azt jelenti, hogy a mikrokontroller hány bitnyi adatot képes feldolgozni.

A Harvard architektúrában az utasítások nagyobbak lehetnek, mint az adatok, hogy lehetővé tegyék a teljes utasítás beolvasását egyetlen órajel ciklusban. Például a PIC mikrokontrollerek modelltől függően 12, 14 vagy 16 bites bitszélességű parancsokat használnak. NÁL NÉL AVR mikrokontrollerek A parancs mindig 16 bit széles. Azonban ezeknek a mikrokontrollereknek van egy 8 bites adatbusza.

A Princeton architektúra eszközökben az adatszélesség általában meghatározza a használt busz bitszélességét (a vonalak számát). A Motorola 68HC05 mikrokontrollerekben egy 24 bites utasítás három 8 bites programmemóriacellában található. Egy ilyen utasítás teljes lekéréséhez három olvasási ciklust kell végrehajtani a memóriában.

Nézzük meg az ötöt típusok nem felejtő rezidens memória, vagy csak olvasható memória (ROM), amely programok tárolására szolgál.

Maszk memória.

A maszk ROM-ok (Mask-ROM vagy egyszerűen ROM) a mikrokontrollerek gyártásának szakaszában készülnek egy teljesen hibakereső programhoz. Üveg fotómaszkon a program használatakor maszkminta jön létre. Az így kapott maszkkal ellátott fotomaszk a programmemóriát alkotó elemek közötti kapcsolatok kialakítására szolgál.

Az első maszkos ROM-ok az 1960-as évek elején jelentek meg, és ennek köszönhetően még ma is használatban vannak erényeit mint alacsony költség a termékek tömeggyártásában és a programtárolás nagy megbízhatósága.

hátrányai maszk ROM - az alkalmazási program minden változtatása jelentős költségekkel és idővel jár egy új fotómaszk-készlet létrehozásához és a gyártásba való bevezetéséhez.

Egyszer programozható memória.

Ez a memória (One-Time Program mable ROM – OTPROM) a felhasználó által programozható, és kezdetben egybites cellákat tartalmaz. Csak azokat a memóriacellákat kell programozni, amelyek tartalmának 0 értéket kell felvennie. Ehhez egy megnövelt feszültségű impulzussorozatot adunk a memóriacellára.

A feszültségszintnek, az impulzusok számának és időparamétereinek szigorúan meg kell felelniük az előírásoknak. A nulla beírása után lehetetlen egyetlen értéket visszaállítani. Emiatt a memóriát ún egyszer programozható ROM. Azonban rá kell mutatni a lehetőségre további programozás(érintetlen) cellák egyetlen bittel.

Az egyszer programozható ROM-mal rendelkező mikrokontrollereket kis tételben gyártott termékekben használják.

Újraprogramozható memória ultraibolya törléssel.

Az Erasable Programmable ROM (EPROM) memóriacella egy LIPSMOS (Floating Gate Avalanche Injection) tranzisztor. Kezdeti állapotban (írás előtt) egy cellához való hozzáféréskor egy logikai egység kerül beolvasásra. A memóriaprogramozás lényege, hogy logikai nullákat ír a megfelelő cellákba. Az EP ROM-ok többszörös programozásra képesek, amelyek technológiája hasonló az egyszer programozható ROM technológiához.

Minden programozás előtt, törlési művelet hogy helyreállítsa a memóriacellák eredeti állapotát. Ehhez a mikrokontroller házában egy speciális ablak található, amelyet ultraibolya sugárzással sugároznak be. A ROM törlési/programozási munkamenetek száma 25-100, a programozási technológia (tápfeszültség beállított értékei, impulzusok száma és időtartama) és a törlési technológia (az ultraibolya sugárforrás hullámhossz-tartománya) függvényében.

Az EPROM memóriával rendelkező mikrokontrollereket magas költségük miatt a fejlett alkalmazások prototípusaiban használják.

A költségek csökkentése érdekében az EPROM chipeket egy ablak nélküli tokban (EPROM verzió egyszeri programozással) zárják. A költségcsökkentés miatt maszkkal programozható ROM-ok helyett gyakran EPROM-verziókat használnak.

Újraprogramozható memória elektromos törléssel.

Elektromos törléses memóriaelemként (Electricly Erasable Programable ROM - EEPROM vagy E2 PROM) MNOS szerkezetű tranzisztort (fém, szilícium-nitrid, szilícium-oxid, félvezető) használnak, aminek köszönhetően a ROM viszonylag alacsony költséggel rendelkezik. (az EPROM-mal kapcsolatban), és maximális számú törlési/programozási ciklust tesz lehetővé 10 4 -10 6 között. Ezenkívül az EEPROM memória programozási technológia lehetővé teszi a megvalósítást bájt törléseés bájtos programozás, anélkül, hogy eltávolítaná a vezérlőt a tábláról, ami lehetővé teszi annak időszakos frissítését szoftver.

Ezen előnyök ellenére az ilyen típusú memóriát nem használják széles körben programok tárolására, két okból:

● Az EEPROM-ok kapacitása korlátozott;

● Megjelentek a FLASH típusú ROM-ok, amelyek hasonló felhasználói tulajdonságokkal rendelkeznek, de olcsóbban.

Flashmemória.

Az elektromosan programozható és elektromosan törölhető FLASH memória (FLASH ROM) az olcsó, nagy kapacitású, egyszer programozható ROM-ok és a drága EEPROM ROM-ok alternatívájaként jött létre. kis kapacitású. A FLASH memória (mint az EEPROM) megtartotta a többszöri törlés és programozás lehetőségét.

Az egyes cellák címzõtranzisztorát eltávolították a ROM áramkörbõl, ami egyrészt lehetetlenné tette az egyes memóriabitek külön programozását, másrészt lehetõvé tette a memória mennyiségének növelését. Ezért a FLASH memória törlődik és programozásra kerül oldalak vagy blokkok.

Így funkcionálisan a FLASH-memória alig különbözik az EEPROM-tól. A fő különbség a rögzített információk törlésének módjában van: ha az EEPROM-memóriában a törlést minden cellára külön-külön hajtják végre, akkor a FLASH-memóriában - egész blokkokban. Az EEPROM memóriával rendelkező mikrokontrollereknél a program egyes szakaszait meg kell változtatni anélkül, hogy a teljes eszközt újra kellene programozni.

Jelenleg a FLASH-val ellátott MCU-k kezdik kiszorítani az MCU-kat az egyszer programozható (sőt, maszkolt) ROM-mal.

ROM programozás.

Vegye figyelembe, hogy a Mask ROM memóriát csak a gyárban programozzák az MK gyártása során. Az OTPROM és EPROM memóriatípusok programozási lehetőségeket biztosítanak a fejlesztőnek egy programozó és egy erősítő feszültségforrás segítségével, amelyek az MCU megfelelő kimeneteihez csatlakoznak.

Az EEPROM és a FLASH memória újraprogramozható, ill újraprogramozható memória. A törléshez/programozáshoz szükséges megnövelt teljesítményt a modern vezérlők EEPROM és FLASH memóriamoduljaiban hozzák létre beépített feszültségerősítő áramkörök ún. szivattyú generátorok. Köszönet a megvalósításnak programvezérlés A szivattyú generátor be- és kikapcsolásával elvileg lehetővé vált a fejlesztés alatt álló rendszer részeként a FLASH és EEPROM memóriacellák programozása vagy törlése. Ezt a programozási technikát ún programozás a rendszerben(Rendszerprogramozásban – ISP).

Nem igényel speciális felszerelést (programozókat), ami csökkenti a programozási költségeket. Az ISP-memóriával rendelkező mikrokontrollerek a végtermék kártyájára történő telepítés után programozhatók.

Nézzük meg, hogyan valósul meg (és használjuk) az EEPROM-memória alkalmazási program vezérlése alatti programozásának lehetőségét. Ha a programozási algoritmussal ellátott programot külön névleges tápfeszültségű memóriamodulban tároljuk, és az EEPROM memóriát szivattyúgenerátorokkal látjuk el, akkor elvégezhető az EEPROM memória ISP programozása. Ez a körülmény teszi az EEPROM memóriát ideális, nem felejtő tárolóeszközzé a termék működése során megváltozott felhasználói beállítások tárolására. Példa erre egy modern tévé, amelynek a csatornabeállításai az áramellátás kikapcsolásakor mentésre kerülnek.

Ezért a 8 bites MK-k rezidens memóriájának fejlesztésének egyik iránya az volt, hogy két nem felejtő memóriamodult integráltak az MK chipbe: a FLASH (vagy OTP) - a programok tárolására és az EEPROM - az újraprogramozható állandók tárolására.

Vegye figyelembe a technológiát (re) FLASH programozás–memória beépített szivattyúgenerátorral, amelyet egy alkalmazási program vezérel. Először is meg kell jegyeznünk két tényt:

● Ha az MK-ba EEPROM memória van beépítve az újraprogramozható konstansok tárolására, akkor a késztermék működése során több bites FLASH-memória programozásának nincs értelme. Ha szükséges, jobb, ha azonnal használja az újraprogramozási módot;

● A FLASH-memória programozó programot ne tárolja magában a FLASH-memóriában, mert a programozási módba váltás lehetetlenné teszi a további olvasást. A programozó programnak egy másik memóriamodulban kell lennie.

A programozási technológia rendszerben való megvalósításához az egyik MC soros port kerül kiválasztásra, amelyet egy speciális kommunikációs monitor program, található a rezidens maszk ROM MK. A soros porton keresztül Személyi számítógép betölti a programot a RAM-ba programozásés alkalmazott program, amely azután a FLASH memóriában tárolódik. Mivel az MK rezidens RAM-ja kevés, az alkalmazási programot külön blokkokban (részekben) töltik be. Ha az MCU-ba programozó programmal rendelkező maszk memóriamodul van telepítve, akkor csak az alkalmazási program kerül a RAM-ba.

A programozási technológiát a rendszerben megvalósító mikrokontrollerek gyakran tartalmazzák négy memória típusa:

FLASH - program memória, Mask ROM - kommunikációs monitor memória, EEPROM - memória változó állandók és köztes adatok tárolására RAM.

A rendszerben lévő programozás technológiáját ma már egyre gyakrabban alkalmazzák az alkalmazási programoknak a végtermék tábláján elhelyezett mikrokontrollerekbe történő bevitelére. Neki méltóság- a programozó hiánya és a programozás nagy megbízhatósága, az MC meghatározott belső üzemmódjainak stabilitása miatt.

Példaként bemutatjuk a Motorola MC HC08 család rezidens FLASH-memóriájának mutatóit:

● garantált törlési/programozási ciklusok száma - 10 5 ;

● A rögzített információk garantált tárolási ideje - 10 év, ami gyakorlatilag a termék életciklusa; A FLASH memóriamodulok 1,8 és 2,7 V közötti MK tápfeszültségen működnek és programozhatók;

● A megfelelő programozási idő 1 bájt memóriához 60 µs.

Adatmemória.

Rezidens adatmemóriaként használható statikus Véletlen elérésű memória (RAM), amely lehetővé teszi az órajel frekvencia tetszőleges kis értékre való csökkentését. A RAM cellák tartalma (a dinamikus memóriával ellentétben) nulla frekvenciáig tárolódik. A statikus RAM másik jellemzője, hogy a tápfeszültséget egy bizonyos minimálisan megengedhető szintre csökkentheti, amelynél a mikrokontroller vezérlőprogramja nem fut le, de a RAM-ban lévő tartalom mentésre kerül.

A tárolási szint egy volt nagyságrendű, ami lehetővé teszi, hogy az MK-t szükség esetén egy autonóm forrásból (elem vagy akkumulátor) áram alá helyezzük az adatok mentéséhez. Egyes MK-k (például a Dallas Semiconductor DS5000-je) önálló tápegységet tartalmaznak, amely 10 évig garantálja az adatok megőrzését a RAM-ban.

A mikrokontrollerek jellegzetessége a változók tárolására használt, viszonylag kis mennyiségű (több száz bájt) véletlen elérésű memória (RAM). Ez több tényezővel magyarázható:

● az MC hardverek egyszerűsítésére való törekvés;

● bizonyos szabályok alkalmazása a RAM-memória csökkentését célzó programok írásakor (például a konstansok nem tárolódnak változóként);

● a memória erőforrások elosztása oly módon, hogy az adatok RAM-ba helyezése helyett a hardver maximális kihasználása (időzítők, indexregiszterek stb.);

● az alkalmazási programok orientációja, hogy nagy adattömbök használata nélkül működjenek.

Stack funkciók.

A mikrokontrollerekben a RAM memória egy része, ún Kazal. Ezen műveletek során a programszámláló és a fő regiszterek (akkumulátor, állapotregiszter, index és egyéb regiszterek) tartalma elmentésre kerül, majd a főprogramba való visszatéréskor visszaáll. Emlékezzünk vissza, hogy a verem a következő elv szerint működik: utoljára be, elsőként ki(Last In, First Out-LIFO).

A Princeton architektúrában a RAM-ot számos hardverfunkció megvalósítására használják, beleértve a veremfunkciókat is. A memória címterében külön területek vannak lefoglalva a parancsok, általános célú regiszterek, speciális funkcióregiszterek stb. számára. Ez csökkenti a vezérlő teljesítményét, mivel a különböző memóriaterületekhez való hozzáférés nem hajtható végre egyszerre.

A Harvard mikroprocesszorok párhuzamosan (egyidejűleg) képesek megcímezni a programmemóriát, az adatmemóriát (beleértve az I/O-teret) és a veremet.

Például, ha egy CALL szubrutin utasítás aktiválva van, akkor több műveletet hajt végre egyszerre.

A Princeton architektúrában, amikor egy CALL utasítást végrehajtanak, a következő utasítás csak azután kerül lehívásra, hogy a programszámláló tartalmát a verembe helyezték.

A RAM kis kapacitása miatt mindkét architektúra mikrovezérlőiben problémák merülhetnek fel a program végrehajtása során:

● ha külön verem van lefoglalva, akkor annak feltöltése után a veremmutató tartalma ciklikusan változik, aminek következtében a veremmutató a korábban kitöltött veremcellára kezd hivatkozni. Ezért túl sok CALL utasítás után rossz visszatérési cím kerül a verembe, amelyet a helyes cím helyett írtak;

● Ha a mikroprocesszor közös memóriaterületet használ az adatok és a verem befogadására, akkor a veremtúlcsordulás felülírja az adatokat. Tekintsük a regiszterek tartalmának verembe történő mentésének jellemzőit, mivel hiányoznak a verembe való betöltés (PUSH) és a veremből való felbukkanás (POP) utasításai. Az ilyen mikrokontrollerekben a PUSH és POP utasítások helyett két utasítást és egy indexregisztert használnak, amelyek kifejezetten a veremterületre mutatnak. Az utasítássorozatnak olyannak kell lennie, hogy az első és a második utasítás közötti megszakítás ne okozzon adatvesztést. Az alábbiakban a PUSH és POP parancsok szimulációját mutatjuk be, figyelembe véve a megadott követelményt.

NYOM ; Adatok betöltése a verem csökkenési indexébe; Ugrás a következő verem helyre lépés [index], ász; Tárolja az akkumulátor tartalmát a veremben POP ; Pop adatok verem ászból, ; Tolja be a verem értékét az akkumulátor növekmény indexébe ; Ugrás az előző veremcellára

Ha a program az első utasítás után megszakad, a verem tartalma a megszakítás kezelése után nem vész el.

regiszter memória.

A mikrokontrollerek (mint a számítógépes rendszerek) számos használt regiszterrel rendelkeznek Vezetéshez különféle belső csomópontok és külső eszközök. Ezek tartalmazzák:

● regiszterek processzormag(akkumulátor, állapotregiszterek, indexregiszterek);

● regiszterek menedzsment(megszakításvezérlő regiszterek, időzítő vezérlő regiszterek);

● adatbemeneti/kimeneti regiszterek (adatregiszterek és párhuzamos, soros vagy analóg bemeneti/kimeneti vezérlőregiszterek).

A regiszterek címtérben való elhelyezésének módja szerint megkülönböztethetünk:

● mikrokontrollerek, amelyekben minden regiszter és adatmemória található egy címtér, azaz a regiszterek az adatmemóriához igazodnak. Ebben az esetben az I/O eszközök a memóriához vannak leképezve;

● mikrokontrollerek, amelyekben bemeneti/kimeneti eszközök elválasztott a teljes memóriacímtérből. Az I / O regiszterek külön címtérbe helyezésének fő előnye, hogy leegyszerűsíti a programmemória és az adatok közös buszra történő csatlakoztatásának sémáját. A külön I/O tér további előnyt jelent a Harvard architektúrájú processzorok számára, mivel lehetővé teszi az utasítások olvasását egy I/O regiszter elérése közben.

A nyilvántartásokhoz való hozzáférés módja jelentős hatással van azok teljesítményére. A RISC architektúrájú processzorokban minden regiszter (gyakran az akkumulátor) explicit címeken található, ami nagyobb rugalmasságot biztosít a processzor munkájának megszervezésében.

A külső memóriáról.

Abban az esetben, ha nincs elegendő rezidens programmemória és adatmemória a kifejlesztett alkalmazásokhoz, további külső memória csatlakozik a mikrokontrollerhez. ismert kettő főbb módok:

● kapcsolat külső memória busz interfész segítségével (mint a mikroprocesszoros rendszerekben). Sok mikrokontroller speciális hardverrel rendelkezik ehhez a csatlakozáshoz;

● memória csatlakoztatása bemeneti-kimeneti eszközökhöz, ugyanakkor a memória elérése ezeken az eszközökön keresztül történik szoftver eszközök. Ez a módszer lehetővé teszi egyszerű I/O eszközök használatát bonyolult buszinterfészek megvalósítása nélkül. A módszer megválasztása az adott alkalmazástól függ.

Megjegyzés: A regiszterek, mint az elektronikus memória elemei működésének elvét vizsgáljuk.

A regiszter egy közepes integrációs fokú IC, amely többbites szó memorizálására és tárolására szolgál.

regiszter-retesz

Protozoa Regisztráció több trigger párhuzamos kapcsolása (8.1. ábra, a). ábrán látható az UGO regiszter-reteszelő. 8.1, b. Ha egy Regisztráció papucsokra épített, úgy hívják Regisztráció-"retesz". Általános szabály, hogy a puffererősítők és a vezérlők a regiszter IC részét képezik, például, amint az az 1. ábrán látható. 8.2, a. Itt van egy 8 bites funkcionális diagram D- KR580IR82 reteszelő regiszter három kimeneti állapottal. Az UGO-ja az ábrán látható. 8.2, b.


Rizs. 8.1. Négy bites "reteszelő" regiszter közvetlen kimenetekkel: a - funkcionális diagram; b - UGO

harmadik állam(az első kettő logikai 0 és logikai 1) az IC kimeneteinek állapota, amelyben le vannak választva az áramforrásról és a közös pontról is. Ennek az államnak a többi neve is nagy ellenállás, nagy impedancia állapot, Z-állapot[ , val vel. 61-63; , val vel. 68-70].

Ez megvalósul harmadik állam speciális áramköri megoldás [ , p. 117 - 118] a logikai elemek kimeneti részében, amikor a logikai elemek kimeneti tranzisztorai reteszelve vannak, és nem adják a kimenetre sem a tápfeszültséget, sem a földpotenciált (nem 0 és nem 1).

Regisztráció A KR580IR82 8 funkcionális blokkból áll (8.2. ábra, a). Mindegyik tartalmaz D-trigger-reteszelő rögzítéssel a hátsó élen és egy erőteljes 3 állapotú kimeneti kapuval. STB- villogó bemenet, - átvitel engedélyezése - a harmadik állapotot vezérlő jel: ha , akkor a bemenetekről információ átvitelre kerül a megfelelő kimenetekre, ha , minden kimenet a harmadik állapotba kerül. Amikor és az IS buszformáló módban működik - a bemenetek információi változatlan formában kerülnek továbbításra a kimenetekre.

jelentkezéskor kilépőél triggerekben "pattan" van a továbbított információból, vagyis emlékszik arra, ami a beküldéskor volt . Viszlát, puffer Regisztráció tárolja ezeket az információkat, függetlenül a rajta lévő információktól D- bemenetek. Elülső él alkalmazásakor mentéskor a kimenetek állapota a megfelelő bemenetek változásának megfelelően változik. Ha , akkor az összes kimeneti erősítő a harmadik állapotba kerül. Ebben az esetben a bemenetek állapotától függetlenül minden kimenet Regisztrációátkerült a harmadik államba.

Minden regiszter kimenetnek lehet aktív nulla szintje, amely az UGO-n inverz jelek és kimenet megjelölések formájában jelenik meg.

Sok fajta létezik regisztereket, például shift regiszterek [ , 8. fejezet], amelyekben a triggerek oly módon kapcsolódnak egymáshoz, hogy szekvenciálisan továbbítják az információkat egyik triggerből a másikba [ , 109-122. oldal], de itt a reteszregiszterre, ill. alkalmazása.

Regisztrálja a memóriát

A regisztrált memória - regiszterfájl - egy rendkívül véletlen hozzáférésű memória (SRAM) - több regiszterből álló áramkör, amelyet több többbites szó tárolására terveztek.

ábrán A 8.3 példa megvalósítást mutat SOZU, amely négy 8 bitesből áll regisztereket(Az RG2 és RG3 csatlakoztatása nem látható, ugyanúgy történik). Adott SOZU információmennyisége 4x8 bit – 4 szó 8 bites, vagy 4 bájt. Itt DI - adatbevitel- bemeneti adatbusz, DO-adatkimenet- kimeneti adatbusz, WR- jel írása SRAM-ba, RD- jel az információ olvasásához SRAM, VSD - belső adatbusz.

Mindenki Regisztráció kétjegyű címmel rendelkezik, amely a dekóder bemeneteire kerül. Például a bal szélső az ábrán. 8.3 Regisztráció Az RG1 címe , a következő - (nem látható az ábrán), a következő - (nincs látható), és a jobb szélső Regisztráció Az RG4 rendelkezik a címmel.

Ha van aktív írásjel, a dekóder a címkódnak megfelelően kiadja az egyiket regisztereket aktív jel, amelyen információ a bemeneti adatbuszról DI a kiválasztottnak van írva Regisztráció. A lefutó szélen az ebben szereplő információk Regisztráció"pattan".

Ha például on DI benyújtott adatokat és címet Regisztráció egyenlő , akkor a dekóder "3" kimenetén lévő aktív jel az RG4 regiszterhez hasonlóan kerül alkalmazásra. Ekkor a fennmaradó regiszterek inaktív jelszintűek lesznek, ezért a bemeneti adatbusz információi az RG4-be íródnak, a többi regiszterben pedig a korábban rögzített információ tárolódik.

Aktív olvasási jel esetén mind a 8 multiplexer aktiválódik (az első, a második és a nyolcadik a diagramon látható, a többi hasonló módon van bekötve), mivel az engedélyező bemeneteikre aktív jel kerül. összhangban a cím dekódoló, a multiplexerek átkapcsolják az információkat a kiválasztott regiszterről a kimeneti adatbuszra. Például a regisztrációs cím: . Ezután az összes multiplexeren ez lesz, mindegyik elkezdi kiválasztani az információkat a címnek megfelelően. Ezért a kimeneti buszon DO a belső busz bitjei 25 - az első multiplexerből, 26 - a másodikból, 27 - a harmadikból, 28 - a negyedikből, 29 - az ötödikből, 29 - az ötödikből, 30 - A hatodikból, 31 - A hetedikből és 32 - a nyolcadik multiplexert adják. Így olyan információ, amely a tartalom másolata Regisztráció RG 4 címmel átkerül a kimeneti adatbuszra DO - a multiplexer kimenet változatlan állapota.

A véletlen elérésű memóriának (RAM) két fő típusa van; ezek pufferelt memória – vagy regisztrált memória – és nem pufferelt memória. A puffereletlen memória gyorsabb és gyakran sokkal olcsóbb, mint a pufferelt memória. Így ez egy olyan típusú modul, amely szinte minden otthoni asztali és laptop számítógépben megtalálható. A pufferelt memória drágább, mint a puffereletlen típus, és lassabb is az adattárolás és -lehívás kezelési módja miatt.
A pufferelt memória azonban sokkal stabilabb, mint a puffereletlen formák, ezért elsősorban nagyszámítógépeken és szervereken használják.

A puffereletlen memória a számítógépes memóriamodulok legelterjedtebb formája a mindennapi használat során. Ezek a memóriamodulok olcsóbbak a pufferelt memóriamodulokhoz képest, részben az otthoni és kereskedelmi számítógépekben való gyakori használatuk miatt, valamint azért is, mert kevesebbet fogyasztanak. hardver. A puffereletlen memóriamodul nem rendelkezik beépített hardverrel, amely a RAM chip és a számítógép memóriavezérlője közötti utasítások regisztereként működne. Ez gyorsabb teljesítményt eredményez, de növeli az információelhelyezés és -visszakeresés véletlenszerű természetéből adódó memóriavesztés kockázatát, különösen intenzív tevékenység időszakában.

A leggyakrabban regisztrált memóriaként emlegetett pufferelt memória. A puffereletlen memória, furcsa módon, megtartotta a nevét, és nem változott nem regisztrált memóriává. A pufferelt memória abban különbözik a nem pufferelt típustól, hogy rendelkezik egy hardveres regiszterrel, amely a memóriachip egy ciklusára vonatkozóan tárol információkat a gyorsítótárban. Bár ez a művelet lassabb memóriachiphez vezethet, további stabilitást biztosít, és csökkenti a memóriahibák kockázatát.

Általános fogyasztói használatban a két típusú memóriamodul sebességbeli különbsége elhanyagolhatónak tűnik. Az intenzív információcsere időszakaiban megjelenik a látencia, amelyet a regiszter segítségével figyelünk meg. A pufferelt memóriát általában kiszolgálószámítógépekben és nagyszámítógépes rendszerekben használják, hogy stabilitást és védelmet biztosítsanak az olyan károsodások ellen, amelyek a puffereletlen modulokban előfordulhatnak, amikor állandóan erős igénybevételnek vannak kitéve. Míg a pufferelt modulok drágábbak és általában lassabban futnak, a memória stabilitása és az adatbiztonság több mint kárpótol egy éles környezetben.