Koti / Sekalaista / Mikä on ECC RAM? Puskuroitu RAM - mitä se on? Peräkkäiset toiminnalliset yksiköt. Rekisterit ja rekisterimuisti Rekisteröi muisti

Mikä on ECC RAM? Puskuroitu RAM - mitä se on? Peräkkäiset toiminnalliset yksiköt. Rekisterit ja rekisterimuisti Rekisteröi muisti

Kaikki tietävät, että nykyaikaisilla tietokoneilla on RAM, jossa tiedot tallennetaan vain käytön aikana. RAM on valmistettu moduulien muodossa, joissa on mikropiirejä (siruja), joissa on joukko soluja bittitietojen tallentamista varten. Jokainen muistisolu on suunniteltu tallentamaan nolla tai yksi. 8 tällaista solua tallentaa 8 bittiä (tämä on jo 1 tavu). Tällaiset sirut valmistetaan puolijohteiden pohjalta. Mutta moduulien ja PC:n toteutuksessa on useita vakavia eroja, joita tarkastelemme tässä artikkelissa.

Pariteettimuisti.

Tietotekniikan kehityksen alkuvaiheessa puolijohdeelementtien valmistustekniikka ei ollut vielä kovin kehittynyttä. Siksi oli olemassa mahdollisuus tietojen menetykseen kirjoitettaessa mihin tahansa muistisoluun: he kirjoittivat siihen ykkösen, mutta sitä ei tallennettu (nolla jäi). Muistiin kirjoittamisen prosessin hallitsemiseksi jotenkin keksittiin yksinkertainen tietojen varmennustekniikka.

Ennen yhden tavun (8 bittiä) kirjoittamista laskettiin tämän tavun kaikkien bittien summa. Mutta koko tarkistussummaa ei muistettu (muistin säästämiseksi), vaan vain sen viimeinen bitti, jonka arvo (nolla tai yksi) muistettiin sille varattuun paikkaan. Tämän bitin arvo (0 tai 1) riippui siitä, oliko bittien summa parillinen vai pariton lisättynä. Siksi tämä bitti tuli tunnetuksi pariteettibitiksi.

Alkuperäisen tavun muistisoluihin kirjoittamisen jälkeen laskettiin tällaisen tallennetun tavun bittien summa ja tämän summan pariteettia verrattiin edelliseen (jonka arvo tallennettiin pariteettibittiin). Jos tarkistussummien pariteetit täsmäsivat, muistiin kirjoituksen katsottiin onnistuneen. Ja jos ne eivät täsmää, luotiin virheilmoitus. Tätä tekniikkaa kutsutaan pariteettisäädöksi.

Muisti ilman pariteettia.

Ajan myötä luotettavampia mikropiirejä alkoi ilmestyä. Virheiden todennäköisyys niissä pieneni. Samaan aikaan elektroniikkakomponenttien kustannukset laskivat. Tietokoneiden tuotanto ja myynti on kasvanut massiiviseksi. Joillekin käyttäjille virheet tietokoneiden toiminnassa eivät olleet kriittisiä. Siksi markkinoille alettiin valmistaa malleja, jotka käyttivät muistia ilman pariteettia. Luopuminen "ylimääräisestä" yhdeksännestä bitistä (jokaiselle tavulle) ja "ylimääräisistä" tarkistussummien laskemisen kustannuksista on mahdollistanut jonkin verran tietokoneiden hintojen alenemisen ja sen, että ne ovat kuluttajien saatavilla. Tällaisista tietokoneista on tullut erittäin suosittuja pöytätietokoneiden (pöytätietokoneiden) keskuudessa.

Tietyillä toimialoilla, sotilaspuolustuksellisissa järjestelmissä ja pankkisektorilla laskentajärjestelmien virheiden hyväksyttävyys on kuitenkin edelleen yksi tärkeimmistä tehtävistä.

Muisti ohjauksella ja virheenkorjauksella.

Pariteetin valvontatekniikka ei ole täydellinen. Se ei pysty havaitsemaan esimerkiksi 2 bitin "kadontumista" samanaikaisesti (pariteetti ei tässä tapauksessa muutu). Siksi päätettiin, että jokainen muistiin kirjoitettu databitti ei tulisi sisällyttää yhteen tarkistussummaan, vaan useisiin. Tällaisella ohjausjärjestelmällä oli mahdollista havaita samanaikaisesti useita virheitä, niiden osoitteita ja lisäksi korjata nämä virheet. Tätä tekniikkaa kutsuttiin Error Correction Code (ECC) -koodiksi, koska laskettiin koodi, joka mahdollisti virheenkorjauksen.

Tietenkin tarkistussummien tallentamiseen tarvitaan lisärekistereitä, mikä tekee tällaisista muistimoduuleista kalliimpia, mutta yleensä ECC-muistiin perustuvat järjestelmät ovat vikasietoisempia. Tällaisia ​​muistimoduuleja käytetään laajimmin palvelinjärjestelmissä.

Pariteetti- ja ECC-tekniikalla varustettua muistia voidaan käyttää sekä palvelin- että työpöytäjärjestelmissä. Ensimmäisessä tapauksessa tämä on perusteltua ratkaistavien tehtävien tärkeydellä (jos pienimmänkin virheen hinta on erittäin korkea), ja toisessa tapauksessa se ei ole aina suositeltavaa (taloudellisesta näkökulmasta: loppujen lopuksi Jotta voit käyttää virheenhallinnan moduuleja, sinulla on oltava kalliimpi emolevy, joka tukee tätä tekniikkaa, muuten virheenhallinta ei vain toimi).

puskuroitu muisti.

Tietojenkäsittelyjärjestelmissä muistiin ja muistista kirjoittamisen / lukemisen ohjaus tapahtuu erityisellä muistiohjaimella. Tällä ohjaimella on oltava pääsy kaikkiin muistisoluihin ja sen on varmistettava tiedon siirto väylältä muistiin ja päinvastoin. Pöytätietokoneissa käytetään usein prosessoreita, joissa on integroitu muistiohjain. Jotkut tämän toteutuksen haitat ovat seuraavat:

Ohjainta on vain yksi, mutta monia muistisoluja on ohjattava - samanaikaisesti palveltujen muistipankkien lukumäärää on rajoitettu korkean suorituskyvyn säilyttäen;

Yhdellä dataväylällä prosessorista tai muista tietokoneen komponenteista on tarpeen siirtää sekä ohjauskomennot että tiedot kaikkiin käytettyihin muistimoduuleihin (väylän kuormitus kasvaa).

Tilanteen parantamiseksi jokaiseen muistimoduuliin päätettiin toteuttaa osa ohjaimen toiminnoista. Tätä varten muistimoduuliin on integroitu erityinen siru, joka toimii puskurina, joka vastaanottaa ohjaus- ja osoitteenasetuskomennot keskusprosessorilta (tässä tapauksessa tietovirta muistiin kulkee väylää pitkin komennon rinnalla virtaus). Näin puskuroitu muisti syntyi.

Myöhemmin tähän puskuriin alettiin toteuttaa virheenkorjaustoimintoja (ECC), ja myös muistin lisääminen tuli mahdolliseksi ilman lisäkuormitusta dataväylään. Lisäsiruja puskurin toteuttamiseksi tunnettiin rekistereinä ja itse muistista tuli rekisteröity muisti.

Ajan myötä ilmestyi myös täysin puskuroituja muistimoduuleja (FB - täysin puskuroitu), joiden puskuriin (rekisteriin) ei vain ohjaussignaaleja, vaan myös dataa alettiin siirtää peräkkäin yhdessä virrassa. Välipuskuria käytettäessä muistin toiminta hidastuu, koska puskuriin kirjoittamiseen tarvitaan yksi välijakso.

Tällainen muisti maksaa paljon enemmän kuin rekisteröimätön muisti ylimääräisen rekisterisirun ja monimutkaisten tekniikoiden käytön vuoksi. Mutta sen ergonomian, äänenvoimakkuuden lisäämismahdollisuuden sekä virheenhallinnan vuoksi sitä käytetään laajalti palvelinjärjestelmissä, joissa vakaa ja virheetön työ suurilla tietomäärillä on erittäin tärkeää.

Yhteensopivuusongelmat.

Puskuroituja muistimoduuleja niiden kehittämisen alkuvaiheessa käytettiin sekä pöytäkoneissa että palvelinjärjestelmissä, mutta rekisteröidyn muistin tulo poisti mahdollisuuden käyttää sitä PC:ssä.

Pöytätietokoneissa rekisteröidyn muistin käyttö on epäkäytännöllistä (liian hinta) ja usein mahdotonta, koska useimmat pöytätietokoneissa käytetyt emolevyt eivät tue rekisteröityä muistia. Nykyaikaisissa palvelinjärjestelmissä käytetyt emolevyt on päinvastoin suunniteltu toimimaan vain rekisteröidyn muistin kanssa, koska kapasiteetin lisääminen (ilman alustaa vaihtamatta) ja kyky hallita virheitä ovat palvelimille tärkeämpiä tekijöitä kuin kustannukset.

Hyvin usein komponentteja valittaessa törmäämme erilaisiin käsittämättömiin termeihin ja käsitteisiin. RAM-muistia valittaessa se voi olla DDR, DDR2, DDR3, DDR4, RDRAM, RIMM jne. Jos kaikki on enemmän tai vähemmän selvää tärkeimpien RAM-tyyppien kanssa ja kunkin tyypin tuki on ilmoitettu emolevyn kuvauksessa, niin sellainen parametri kuin ECC herättää kysymyksiä monille. Mikä on ECC-muisti? Onko mahdollista käyttää ECC RAM:ia kotitietokoneessa ja mikä on tärkein ero ECC RAM:in ja ei-ECC RAMin välillä?

Mikä on ECC-muisti?

Tämä on erityinen RAM-muisti, jossa on sisäänrakennettu virheenkorjauslaitteisto. Tällaiset muistimoduulit kehitettiin erityisesti palvelimia varten, joissa tietojen oikeellisuuden ja käsittelyn luotettavuuden vaatimukset ovat paljon korkeammat kuin henkilökohtaisissa tietokoneissa.

ECC-Ram tunnistaa automaattisesti spontaanit tietomuutokset tallennuslohkoissa, eli tapahtuneet virheet. Tavallista - työpöytämuistia ilman korjausmekanismeja kutsutaan ei-ECC:ksi.

Mitä ECC-muisti pystyy ja miten se toimii?

Virheenkorjausmuisti voi havaita ja korjata 1 bitin muuttunutta dataa jokaisessa konesanassa. Mitä se tarkoittaa? Jos kirjoittamisen ja lukemisen välistä dataa muutettiin jostain syystä (eli tapahtui virhe), ECC RAM korjaa arvon oikeaan. Tällainen toiminnallisuus vaatii tukea RAM-ohjaimelta. Tämän tuen voi järjestää emolevyn piirisarja, nykyaikaisten prosessorien sisäänrakennettu RAM-ohjain.

Virheenkorjausalgoritmi perustuu Hamming-koodiin, mutta muita algoritmeja käytetään useamman kuin yhden virheen korjaamiseen. Käytännössä käytetään muistimoduuleja, joissa jokaista 8 muistisirua kohden lisätään yksi siru, joka tallentaa ECC-koodeja (8 bittiä jokaista päämuistin 64 bittiä kohden).

Miksi RAM-muistin solujen arvo on vääristynyt?

Yksi tärkeimmistä tietojen vääristymisen syistä on kosmiset säteet. Vaikka olemme maan päällä ilmakehän suojeluksessa, kosmiset säteet kantavat mukanaan joitain alkeishiukkasia, jotka voivat vaikuttaa elektroniikkaan, mukaan lukien tietokoneen muistiin. Näiden hiukkasten energian vaikutuksesta muistisolun tilan muutos on mahdollista, mikä johtaa tietojen vääristymiseen ja virheisiin. Mielenkiintoista on, että altistuminen kosmisille säteille lisääntyy korkeuden myötä, joten korkealla sijaitsevat tietokonejärjestelmät vaativat parempaa suojaa.

Kuinka ECC-muisti toimii

Yksi RAM-muistin virheenhallintamekanismeista on käyttää pariteettitekniikkaa, jonka avulla voit korjata datan virheen tosiasian, mutta ei salli tietojen korjaamista.

Hamming-koodia käytetään ECC-korjaukseen. ECC suojaa tietokonejärjestelmiä virheelliseltä toiminnalta, joka johtuu muistin vioittumisesta ja vähentää kriittisen järjestelmävian todennäköisyyttä. ECC-tuella varustettu muisti on sovelluksesta riippuen 2-3 % hitaampi kuin ei-ECC-muisti.

Syitä käyttää ECC-muistia

Ei ole objektiivista syytä käyttää ECC-yhteensopivaa RAM-muistia pöytätietokoneissa. Koska tietovirheiden esiintymisen todennäköisyys on erittäin pieni, normaalissa PC-käytössä on erittäin epätodennäköistä, että virhe aiheuttaa ongelmia tai kaatuu tietokoneeseen. Pahin skenaario on ulkonäkö sininen näyttö BSOD-kuolema. Lisäksi ECC RAM:n käyttöä vaikeuttaa se, että pöytäkoneiden prosessorit ja emolevyt useimmat eivät tue tämän tyyppistä RAM-muistia.

RAM-muistin käyttö ECC-virheenkorjauksella on relevanttia palvelin- ja yrityssegmentissä, jossa vikasieto- ja luotettavuusvaatimukset ovat erittäin korkeat ja tietojen oikeellisuus voi vaikuttaa laskennan tuloksiin ja koko järjestelmän toimintaan. .

Mitä kuuluu? -

Voidaan erottaa kolme tärkeimmät mikro-ohjaimissa käytetyt muistityypit:

● muisti ohjelmat, joka on vain lukumuisti, joka on suunniteltu tallentamaan ohjelmakoodia ja vakioita. Tämä muisti ei muuta sen sisältöä ohjelman suorituksen aikana;

● muisti tiedot, suunniteltu tallentamaan muuttujia (tuloksia) ohjelman suorittamisen aikana;

rekisteröidy muisti, joka koostuu mikro-ohjaimen sisäisistä rekistereistä. Harkitse kunkin tämäntyyppisen muistin ominaisuuksia.

Ohjelman muisti.

Tällaisen muistin tarve johtuu siitä, että mikro-ohjain ei sisällä sellaisia ​​muistilaitteita kuin tietokoneen kiintolevy, josta suoritettava ohjelma ladataan. Siksi ohjelmakoodi on tallennettava pysyvästi mikro-ohjaimeen.

Kaiken tyyppiset ohjelmamuistit ovat haihtumattomaksi muisti tai vain lukumuisti (ROM), jonka sisältö säilyy mikro-ohjaimen virran katkaisemisen jälkeen.

Suorituksen aikana ohjelma luetaan tästä muistista ja ohjausyksikkö (komentodekooderi) varmistaa sen dekoodauksen ja suorittaa tarvittavat toiminnot. Ohjelmamuistin sisältöä ei voi muuttaa (uudelleenohjelmoida) ohjelman suorittamisen aikana. Siksi mikro-ohjaimen toiminnallisuus ei voi muuttua ennen kuin sen ohjelmamuistin sisältö on tyhjennetty (jos mahdollista) ja ohjelmoitu uudelleen (täytetty uusilla käskyillä).

On huomattava, että mikro-ohjaimen bittimäärä (8, 16 tai 32 bittiä) ilmaistaan ​​sen dataväylän bittimäärän mukaan.

Kun laitteen sanotaan olevan 8-bittinen, se tarkoittaa databittien määrää, jonka mikro-ohjain pystyy käsittelemään.

Harvardin arkkitehtuurissa käskyt voivat olla dataa suurempia, jotta koko käsky voidaan lukea yhdessä kellojaksossa. Esimerkiksi PIC-mikro-ohjaimet käyttävät mallista riippuen komentoja, joiden bittileveys on 12, 14 tai 16 bittiä. SISÄÄN AVR-mikro-ohjaimet Komento on aina 16 bittiä leveä. Kaikissa näissä mikro-ohjaimissa on kuitenkin 8-bittinen dataväylä.

Princeton-arkkitehtuurilaitteissa dataleveys yleensä määrittää käytettävän väylän bittileveyden (rivien lukumäärän). Motorola 68HC05 -mikro-ohjaimissa 24-bittinen käsky sijaitsee kolmessa 8-bittisessä ohjelmamuistisolussa. Tällaisen käskyn noutamiseksi on suoritettava kolme tämän muistin lukujaksoa.

Katsotaanpa viittä tyypit haihtumaton pysyvä muisti tai lukumuisti (ROM), jota käytetään ohjelmien tallentamiseen.

Maskin muisti.

Mask-ROM-levyt (Mask-ROM tai yksinkertaisesti ROM) tehdään mikro-ohjaimen tuotantovaiheessa täysin viankorjattua ohjelmaa varten. Lasiseen valonaamioon luodaan ohjelmaa käytettäessä maskikuvio. Tuloksena olevaa maskia sisältävää fotomaskia käytetään muodostamaan yhteyksiä ohjelmamuistin muodostavien elementtien välille.

Ensimmäiset maski-ROM-levyt ilmestyivät 1960-luvun alussa ja ovat edelleen käytössä niiden ansiosta hyveitä alhaiset kustannukset tuotteiden massatuotannossa ja korkea ohjelmien tallennusvarmuus.

haittoja maskin ROM - kaikkiin sovellusohjelman muutoksiin liittyy merkittäviä kustannuksia ja aikaa uuden valokuvamaskisarjan luomiseen ja niiden tuomiseen tuotantoon.

Kerran ohjelmoitava muisti.

Tämä muisti (One-Time Program mable ROM - OTPROM) on käyttäjän ohjelmoitava ja sisältää aluksi yksittäisiä bittejä sisältäviä soluja. Vain ne muistisolut ovat ohjelmoinnin alaisia, joiden sisällön tulee saada arvo 0. Tätä varten syötetään muistisoluun sarja lisättyjä jännitepulsseja.

Jännitetason, pulssien lukumäärän ja niiden aikaparametrien on oltava tiukasti määritelmien mukaisia. Nollan kirjoittamisen jälkeen on mahdotonta palauttaa yhtä arvoa. Tästä syystä muistia kutsutaan kerran ohjelmoitavissa ROM. On kuitenkin syytä mainita mahdollisuus lisäohjelmointi(koskemattomat) solut yksittäisillä biteillä.

Mikrokontrollereita, joissa on kerta-ohjelmoitava ROM, käytetään pienissä erissä valmistetuissa tuotteissa.

Uudelleenohjelmoitava muisti ultraviolettihälytyksellä.

Erasable Programmable ROM (EPROM) -muistisolu on LIPSMOS-transistori (Floating Gate Avalanche Injection). Alkutilassa (ennen kirjoittamista), kun soluun päästään, luetaan looginen yksikkö. Muistin ohjelmointi tiivistyy loogisten nollien kirjoittamiseen vastaaviin soluihin. EP ROM -levyt pystyvät ohjelmoimaan useita kertoja, joiden tekniikka on samanlainen kuin kerta-ohjelmoitava ROM-tekniikka.

Ennen jokaista ohjelmointikertaa, tyhjennystoiminto palauttaaksesi muistisolujen alkuperäisen tilan. Tätä varten mikro-ohjaimen kotelossa on erityinen ikkuna, joka säteilytetään ultraviolettisäteillä. ROM-poisto-/ohjelmointiistuntojen määrä on 25-100 kertaa ohjelmointitekniikan (syöttöjännitteiden asetusarvot, pulssien lukumäärä ja kesto) ja poistoteknologian (ultraviolettisäteilylähteen aallonpituusalue) mukaan.

EPROM-muistilla varustettuja mikrokontrollereita käytetään kehitettyjen sovellusten prototyypeissä niiden korkeiden kustannusten vuoksi.

Kustannusten alentamiseksi EPROM-sirut on suljettu koteloon ilman ikkunaa (EPROM-versio kerta-ohjelmuksella). Kustannussäästöjen vuoksi EPROM-versioita käytetään usein maskeilla ohjelmoitavien ROM-levyjen sijasta.

Uudelleenohjelmoitava muisti sähköisellä tyhjennyksellä.

Sähköisesti tyhjennettävänä muistielementtinä (Electrically Erasable Programmable ROM - EEPROM tai E2 PROM) käytetään MNOS-rakenteista transistoria (Metal, Silicon Nitride, Silicon Oxide, Semiconductor), minkä vuoksi ROM on suhteellisen alhainen. (suhteessa EPROMiin) ja sallii enimmäismäärän poisto-/ohjelmointijaksoja 10 4 -10 6 . Lisäksi EEPROM-muistin ohjelmointitekniikan avulla voit toteuttaa tavun poisto Ja tavuohjelmointi, poistamatta ohjainta levyltä, jolloin voit päivittää sitä säännöllisesti ohjelmisto.

Näistä eduista huolimatta tämän tyyppistä muistia ei käytetä laajalti ohjelmien tallentamiseen kahdesta syystä:

● EEPROM-muistien kapasiteetti on rajoitettu;

● FLASH-tyyppisiä ROM-levyjä on ilmestynyt, joilla on samanlaiset käyttäjäominaisuudet, mutta halvemmalla.

Flash-muisti.

Sähköisesti ohjelmoitava ja sähköisesti pyyhittävä FLASH-muisti (FLASH ROM) luotiin vaihtoehdoksi halpojen ja suuren kapasiteetin kertaluontoisten ohjelmoitavien ROMien ja kalliiden EEPROM ROMien välillä. pieni kapasiteetti. FLASH-muisti (kuten EEPROM) säilytti kyvyn toistuvasti tyhjentää ja ohjelmoida.

Jokaisen solun osoitetransistori poistettiin ROM-piiristä, mikä toisaalta teki mahdottomaksi ohjelmoida jokaisen muistibitin erikseen, toisaalta mahdollisti muistin määrän lisäämisen. Siksi FLASH-muisti tyhjennetään ja ohjelmoidaan sivuja tai lohkoja.

Toiminnallisesti FLASH-muisti eroaa siis vähän EEPROMista. Suurin ero on tallennettujen tietojen poistamismenetelmässä: jos EEPROM-muistissa tyhjennys suoritetaan erikseen jokaiselle solulle, niin FLASH-muistissa - kokonaisina lohkoina. EEPROM-muistilla varustetuissa mikro-ohjaimissa on tarpeen muuttaa yksittäisiä ohjelman osia ilman, että koko laitetta tarvitsee ohjelmoida uudelleen.

Tällä hetkellä MCU:t, joissa on FLASH, ovat alkaneet syrjäyttää MCU:t kertakäyttöisillä ohjelmoivilla (ja jopa peitetyillä) ROMilla.

ROM-ohjelmointi.

Huomaa, että Maskin ROM-muisti ohjelmoidaan vain tehtaalla MK:n valmistuksen aikana. OTPROM- ja EPROM-muistityypit tarjoavat kehittäjälle ohjelmointimahdollisuudet käyttämällä ohjelmoijaa ja tehostinjännitelähdettä, jotka on kytketty MK:n vastaaviin lähtöihin.

EEPROM- ja FLASH-muisti viittaa uudelleen ohjelmoitaviin tai uudelleen ohjelmoitavissa muisti. Pyyhkimiseen/ohjelmointiin tarvittava lisääntynyt teho luodaan nykyaikaisten ohjaimien EEPROM- ja FLASH-muistimoduuleissa käyttämällä sisäänrakennettuja jännitteenvahvistuspiirejä ns. pumppugeneraattorit. Kiitos toteutuksesta ohjelman ohjaus Pumpun generaattorin kytkeminen päälle ja pois päältä mahdollisti periaatteessa FLASH- ja EEPROM-muistisolujen ohjelmointi tai tyhjentäminen osana kehitettävää järjestelmää. Tätä ohjelmointitekniikkaa kutsutaan ohjelmointi järjestelmään(Järjestelmäohjelmoinnissa - ISP).

Se ei vaadi erikoislaitteita (ohjelmoijia), mikä vähentää ohjelmointikustannuksia. ISP-muistilla varustetut mikro-ohjaimet voidaan ohjelmoida sen jälkeen, kun ne on asennettu lopputuotteen piirilevylle.

Pohditaan, miten EEPROM-muistin ohjelmoinnin mahdollisuus sovellusohjelman ohjaukseen toteutetaan (ja käytetään). Jos ohjelmointialgoritmilla varustettu ohjelma on tallennettu erilliseen muistimoduuliin nimellissyöttöjännitteellä ja EEPROM-muisti on varustettu pumppugeneraattoreilla, niin EEPROM-muistin ISP-ohjelmointi voidaan suorittaa. Tämä seikka tekee EEPROM-muistista ihanteellisen haihtumattoman tallennuslaitteen käyttäjän asetusten tallentamiseen, jotka muuttuvat tuotteen käytön aikana. Esimerkkinä on moderni televisio, jonka kanava-asetukset tallentuvat, kun virta katkaistaan.

Siksi yksi suuntauksista 8-bittisten MK:iden pysyvän muistin parantamisessa oli kahden haihtumattoman muistimoduulin integrointi MK-sirulle: FLASH (tai OTP) - ohjelmien tallentamiseen ja EEPROM - uudelleenohjelmoitavien vakioiden tallentamiseen.

Harkitse tekniikkaa (uudelleen) FLASH ohjelmointi–muisti, jossa on sisäänrakennettu pumppugeneraattori, jota ohjaa sovellusohjelma. Ensinnäkin huomautamme kaksi tosiasiaa:

● Jos MK:hen on sisäänrakennettu EEPROM-muisti uudelleenohjelmoitavien vakioiden tallentamista varten, ei ole järkevää ohjelmoida useita bittejä FLASH-muistia valmiin tuotteen toiminnan aikana. Tarvittaessa on parempi käyttää välittömästi uudelleenohjelmointitilaa;

● Älä tallenna FLASH-muistin ohjelmointiohjelmaa itse FLASH-muistiin, sillä ohjelmointitilaan siirtyminen tekee sen lukemisen mahdottomaksi. Ohjelmointiohjelman tulee sijaita toisessa muistimoduulissa.

Ohjelmointitekniikan toteuttamiseksi järjestelmään valitaan yksi MC-sarjaporteista, jota palvelee erityinen viestintävalvontaohjelma, sijaitsee pysyvässä maskissa ROM MK. Sarjaportin kautta Henkilökohtainen tietokone lataa ohjelman RAM-muistiin ohjelmointi Ja sovelletaan ohjelma, joka sitten tallennetaan FLASH-muistiin. Koska MK:n pysyvässä RAM-muistissa on pieni määrä, sovellusohjelma ladataan erillisinä lohkoina (osina). Jos MCU:hun on asennettu maskimuistimoduuli ohjelmointiohjelmalla, vain sovellusohjelma ladataan RAM-muistiin.

Mikrokontrollerit, jotka toteuttavat ohjelmointiteknologiaa järjestelmässä, sisältävät usein neljä muistin tyyppi:

FLASH - ohjelmamuisti, Mask ROM - tiedonsiirtomonitorimuisti, EEPROM - muisti muuttuvien vakioiden ja välitietojen RAM:in tallentamiseen.

Järjestelmän ohjelmointitekniikkaa käytetään nykyään yhä useammin sovellusohjelmien syöttämiseen lopputuotteen kortilla oleviin mikrokontrollereihin. Hänen ihmisarvoa- ohjelmoijan puute ja ohjelmoinnin korkea luotettavuus MK:n määritettyjen sisäisten tilojen vakauden vuoksi.

Esittelemme esimerkkinä Motorolan MC HC08 -perheen pysyvän FLASH-muistin indikaattorit:

● taattu poisto-/ohjelmointijaksojen määrä - 10 5 ;

● Tallennettujen tietojen taattu säilytysaika - 10 vuotta, mikä on käytännössä tuotteen elinkaari; FLASH-muistimoduulit toimivat ja ohjelmoidaan MK-syöttöjännitteellä 1,8 - 2,7 V;

● Vastaava ohjelmointiaika 1 tavulle muistia on 60 µs.

Datamuisti.

Käytetään pysyvänä datamuistina staattinen Random access memory (RAM), jonka avulla voit pienentää kellotaajuuden mielivaltaisen pieniin arvoihin. RAM-solujen sisältö (toisin kuin dynaaminen muisti) tallennetaan nollataajuuteen asti. Toinen staattisen RAM:n ominaisuus on kyky alentaa syöttöjännite tietylle sallitulle vähimmäistasolle, jolla mikro-ohjaimen ohjausohjelmaa ei suoriteta, mutta RAM-muistin sisältö tallennetaan.

Tallennustason arvo on luokkaa yksi voltti, mikä mahdollistaa tarvittaessa MK:n siirtämisen tehoon itsenäisestä lähteestä (paristo tai akku) tietojen tallentamiseksi. Joissakin MK:issa (esim. Dallas Semiconductorin DS5000) on kotelossa itsenäinen virtalähde, joka takaa tietojen säilymisen RAM-muistissa 10 vuoden ajan.

Mikro-ohjainten ominaisuus on suhteellisen pieni määrä (satoja tavuja) RAM-muistia, jota käytetään muuttujien tallentamiseen. Tämä voidaan selittää useilla tekijöillä:

● pyrkimys MC-laitteiston yksinkertaistamiseen;

● käyttää tiettyjä sääntöjä kirjoitettaessa ohjelmia, joiden tarkoituksena on vähentää RAM-muistin määrää (esim. vakioita ei tallenneta muuttujiksi);

● muistiresurssien jakaminen siten, että RAM-muistiin sijoittamisen sijaan laitteiston (ajastimet, indeksirekisterit jne.) maksimaalinen käyttö;

● sovellusohjelmien suuntaaminen toimimaan ilman suuria tietoryhmiä.

Pinoa ominaisuuksia.

Mikro-ohjaimissa osa RAM-muistista, ns pino. Näiden toimintojen aikana ohjelmalaskurin ja päärekisterien (akku, tilarekisteri, indeksi ja muut rekisterit) sisältö tallennetaan ja palautetaan pääohjelmaan palatessa. Muista, että pino toimii periaatteen mukaisesti: viimeisenä sisään ensimmäisenä ulos(Last In, First Out-LIFO).

Princeton-arkkitehtuurissa RAM-muistia käytetään monien laitteistotoimintojen toteuttamiseen, mukaan lukien pinotoiminnot. Muistin osoiteavaruudessa on varattu erilliset alueet komentoille, yleiskäyttöisille rekistereille, erikoistoimintorekistereille jne. Tämä heikentää ohjaimen suorituskykyä, koska eri muistialueille pääsyä ei voida suorittaa samanaikaisesti.

Harvardin mikroprosessorit voivat käsitellä ohjelmamuistia, tietomuistia (mukaan lukien I/O-tila) ja pinoa rinnakkain (samanaikaisesti).

Esimerkiksi kun CALL-alirutiini käsky on aktivoitu, useita toimintoja suoritetaan samanaikaisesti.

Princeton-arkkitehtuurissa CALL-käskyä suoritettaessa seuraava käsky haetaan vasta sen jälkeen, kun ohjelmalaskurin sisältö on työnnetty pinoon.

Molempien arkkitehtuurien mikro-ohjaimien RAM-muistin pienen kapasiteetin vuoksi ohjelmaa suoritettaessa saattaa ilmetä ongelmia:

● jos on varattu erillinen pino, niin sen täytön jälkeen pinoosoittimen sisältöä muutetaan syklisesti, minkä seurauksena pinoosoitin alkaa viitata aiemmin täytettyyn pinosoluun. Siksi liian monen CALL-käskyn jälkeen pinoon tulee väärä paluuosoite, joka kirjoitettiin oikean osoitteen sijaan;

● Jos mikroprosessori käyttää yhteistä muistialuetta datan ja pinon sijoittamiseen, pinon ylivuoto korvaa tiedot. Tarkastellaan rekisterien sisällön tallentamista pinoon, koska pinoon lataamiseen (PUSH) ja pinosta poppaamiseen (POP) puuttuvat ohjeet. Tällaisissa mikro-ohjaimissa käytetään PUSH- ja POP-käskyjen sijaan kahta käskyä ja indeksirekisteriä, jotka osoittavat nimenomaisesti pinoalueelle. Käskysekvenssin tulee olla sellainen, että ensimmäisen ja toisen käskyn välinen keskeytys ei aiheuta datan menetystä. Seuraava on simulaatio PUSH- ja POP-komennoista ottaen huomioon määritetyt vaatimukset.

TYÖNTÄÄ ; Lataa tiedot pinon vähennysindeksiin; Siirry seuraavaan pinon sijaintiin siirto [indeksi], ässä; Säilytä akun sisältö pinoon POP ; Pop data pinosta liikkua ässä, ; Työnnä pinon arvo akun lisäysindeksiin ; Siirry edelliseen pinosoluun

Jos ohjelma keskeytyy ensimmäisen käskyn jälkeen, pinon sisältö ei katoa keskeytyksen käsittelyn jälkeen.

rekisterimuisti.

Mikro-ohjaimissa (kuten tietokonejärjestelmissä) on monia rekistereitä, joita käytetään hallintaa varten erilaisia ​​sisäisiä solmuja ja ulkoisia laitteita. Nämä sisältävät:

● rekisterit prosessorin ydin(akku, tilarekisterit, hakemistorekisterit);

● rekisterit hallinta(keskeytysohjausrekisterit, ajastimen ohjausrekisterit);

● tiedon syöttö-/lähtörekisterit (datarekisterit ja rinnakkais-, sarja- tai analogiset tulo-/lähtörekisterit).

Sen mukaan, miten rekisterit sijoitetaan osoiteavaruuteen, voimme erottaa:

● mikro-ohjaimet, joissa kaikki rekisterit ja tietomuisti sijaitsevat yksi osoiteavaruus, eli rekisterit kohdistetaan tietomuistiin. Tässä tapauksessa I/O-laitteet on yhdistetty muistiin;

● mikro-ohjaimet, joissa tulo/lähtölaitteet erotettu koko muistin osoiteavaruudesta. Menetelmän pääasiallinen etu I/O-rekisterien sijoittamiseksi erilliseen osoiteavaruuteen on, että se yksinkertaistaa menetelmää ohjelmamuistin ja datan liittämiseksi yhteiseen väylään. Erillinen I/O-tila antaa lisäetua Harvard-arkkitehtuurin prosessoreille sallimalla käskyjen lukemisen, kun I/O-rekisteriä käytetään.

Rekistereihin pääsyllä on merkittävä vaikutus niiden suorituskykyyn. Prosessoreissa, joissa on RISC-arkkitehtuuri, kaikki rekisterit (usein akku) sijaitsevat eksplisiittisissä osoitteissa, mikä lisää joustavuutta prosessorin työn organisoinnissa.

Tietoja ulkoisesta muistista.

Jos kehitettyjä sovelluksia varten ei ole tarpeeksi pysyvää ohjelmamuistia ja datamuistia, mikro-ohjaimeen liitetään ulkoista lisämuistia. tiedossa kaksi päätavat:

● yhteys ulkoinen muisti käyttäen väyläliitäntää (kuten mikroprosessorijärjestelmissä). Monilla mikro-ohjaimilla on erityinen laitteisto tätä yhteyttä varten;

● muistin liittäminen syöttö-lähtölaitteisiin Samalla näiden laitteiden kautta päästään muistiin ohjelmistotyökalut. Tämä menetelmä mahdollistaa yksinkertaisten I/O-laitteiden käytön ilman monimutkaisten väyläliitäntöjen toteuttamista. Menetelmän valinta riippuu tietystä sovelluksesta.

Huomautus: Tarkastellaan rekistereiden toimintaperiaatetta elektronisen muistin elementteinä.

Rekisteri on keskisuurella integraatioasteella varustettu IC, joka on suunniteltu muistamaan ja tallentamaan monibittinen sana.

rekisteri-salpa

Alkueläimet rekisteröidy on usean liipaisimen rinnakkaiskytkentä (kuva 8.1, a). UGO-rekisterisalpa on esitetty kuvassa. 8.1, b. Jos rekisteröidy varvastossuille rakennettu, sitä kutsutaan rekisteröinti-"salpa". Puskurivahvistimet ja -ohjaimet ovat pääsääntöisesti osa rekisteri-IC:tä, kuten kuvassa 1 on esitetty. 8.2, a. Tässä on toiminnallinen kaavio 8-bittisestä D- salparekisteri KR580IR82, jossa on kolme lähtötilaa. Sen UGO on esitetty kuvassa. 8.2, b.


Riisi. 8.1. Nelibittinen "salpa"-rekisteri suorilla lähdöillä: a - toimintakaavio; b - UGO

kolmas valtio(kaksi ensimmäistä ovat looginen 0 ja looginen 1) on IC:n lähtöjen tila, jossa ne on irrotettu sekä virtalähteestä että yhteisestä pisteestä. Muut tämän osavaltion nimet ovat korkea vastus, korkea impedanssitila, Z-tila[ , alkaen. 61 - 63; , alkaen. 68-70].

Tämä saavutetaan kolmas valtio erikoispiiriratkaisu [ , s. 117 - 118] logiikkaelementtien lähtöosassa, kun loogisten elementtien lähtötransistorit ovat lukittuina eivätkä syötä lähtöön syöttöjännitettä tai maapotentiaalia (ei 0 ja ei 1).

Rekisteröidy KR580IR82 koostuu 8 toiminnallisesta lohkosta (kuva 8.2, a). Jokainen niistä sisältää D-trigger-salpa, jossa on tallennus takareunassa ja tehokas 3-tilan lähtöportti. STB- strobo-tulo, - lähetyksen salliminen - kolmatta tilaa ohjaava signaali: jos , niin tiedot siirretään tuloista vastaaviin lähtöihin, jos , kaikki lähdöt siirretään kolmanteen tilaan. Kun ja IS toimii väylän muotoilijatilassa - tiedot tuloista välitetään lähtöihin muuttumattomina.

Hakiessaan takareuna lähetetyistä tiedoista on "snap" laukaisimissa, eli se muistaa, mitä oli lähetyshetkellä . Hei puskuri rekisteröidy tallentaa nämä tiedot riippumatta tiedoista D-sisääntulot. Kun käytät etureunaa tallennettaessa lähtöjen tila muuttuu vastaavien tulojen muutoksen mukaan. Jos , niin kaikki lähtövahvistimet siirretään kolmanteen tilaan. Tässä tapauksessa tulojen tilasta riippumatta kaikki lähdöt rekisteröidy siirretty kolmanteen valtioon.

Kaikilla rekisterilähdöillä voi olla aktiivinen nollataso, joka näkyy UGO:ssa käänteissignaalien ja lähtömerkintöjen muodossa.

Lajikkeita on monia rekisterit esimerkiksi siirtorekisterit [ , luku 8], joissa liipaisimet on kytketty toisiinsa siten, että ne siirtävät tietoa peräkkäin yhdestä triggeristä toiseen [ , s. 109 - 122], mutta tässä keskitytään salparekisteriin ja sen sovellus.

Rekisteröi muisti

Rekisteröity muisti - rekisteritiedosto - on erittäin hajasaantimuisti (SRAM) - useiden rekisterien piiri, joka on suunniteltu tallentamaan useita monibittisiä sanoja.

Kuvassa 8.3 näyttää esimerkkitoteutuksen SOZU, joka koostuu neljästä 8-bittisestä rekisterit(RG2:n ja RG3:n liitäntää ei näytetä, se suoritetaan samalla tavalla). Annettu SOZU sen tietomäärä on 4x8 bittiä - 4 sanaa 8 bittiä tai 4 tavua. Tässä DI - tiedonsyöttö- syöttötietoväylä, DO-tietojen ulostulo- lähtötietoväylä, WR- Kirjoita signaali SRAM-muistiin, RD- signaali tietojen lukemiseen SRAM, VSD - sisäinen dataväylä.

Joka rekisteröidy on kaksinumeroinen osoite, joka syötetään dekooderin tuloihin. Esimerkiksi kuvan äärivasemmalla. 8.3 rekisteröidy RG1:llä on osoite , seuraava - (ei näy kuvassa), seuraava - (ei näy) ja oikeassa reunassa rekisteröidy RG4:llä on osoite.

Jos kirjoitussignaali on aktiivinen, dekooderi lähettää osoitekoodin mukaisesti johonkin rekisterit aktiivinen signaali, johon tieto syöttötietoväylältä DI kirjoitetaan valituille rekisteröidy. Takareunassa tiedot tässä rekisteröidy"napsahtaa".

Jos esim. päällä DI toimitetut tiedot ja osoite rekisteröidy on yhtä kuin , silloin dekooderin lähdössä "3" oleva aktiivinen signaali syötetään rekisteriin RG4. Tällä hetkellä jäljellä olevilla rekistereillä on ei-aktiivinen signaalitaso, joten tulodataväylän tiedot kirjoitetaan RG4:lle ja aiemmin tallennetut tiedot tallennetaan muihin rekistereihin.

Aktiivisella lukusignaalilla aktivoituvat kaikki 8 multiplekserit (ensimmäinen, toinen ja kahdeksas näkyvät kaaviossa, loput on kytketty samalla tavalla), koska niiden aktivointituloihin syötetään aktiivinen signaali. Mukaisesti osoitteen dekooderi, multiplekserit kytkevät tiedot valitusta rekisteristä lähtötietoväylään. Esimerkiksi rekisteriosoite on . Sitten kaikilla multipleksereillä se on, ne kaikki alkavat valita tietoja osoitteen mukaisesti. Siksi lähtöväylällä TEHDÄ sisäisen väylän bitit numeroilla 25 - ensimmäisestä multiplekseristä, 26 - toisesta, 27 - kolmannesta, 28 - neljännestä, 29 - viidennestä, 30 - kuudennesta, 31 - seitsemännestä ja 32 - kahdeksannesta multiplekseristä annetaan. Siten tiedot, jotka ovat kopio sisällöstä rekisteröidy RG 4 osoitteella siirretään lähtötietoväylään DO - multiplekserin lähdön muuttumaton tila.

RAM-muistia on kahta päätyyppiä; ne ovat puskuroitua muistia – tai rekisteröityä muistia – ja puskuroimatonta muistia. Puskuroimaton muisti on nopeampi ja usein paljon halvempi kuin puskuroitu muisti. Siten se on eräänlainen moduuli, joka löytyy melkein kaikista kodin pöytätietokoneista ja kannettavista tietokoneista. Puskuroitu muisti on kalliimpaa kuin puskuroimaton tyyppi, ja se on myös hitaampi, koska se käsittelee tiedon tallennusta ja hakua.
Puskuroitu muisti on kuitenkin paljon vakaampi kuin puskuroimattomat lomakkeet, joten sitä käytetään ensisijaisesti keskustietokoneissa ja palvelimissa.

Puskuroimaton muisti on ylivoimaisesti yleisin jokapäiväisessä käytössä oleva tietokoneen muistimoduuli. Nämä muistimoduulit ovat halpoja valmistaa verrattuna puskuroituihin muistimoduuleihin, mikä johtuu osittain niiden yleisestä käytöstä koti- ja kaupallisissa tietokoneissa ja myös siksi, että ne kuluttavat vähemmän laitteisto. Puskuroimattomassa muistimoduulissa ei ole sisäänrakennettua laitteistoa, joka toimisi ohjerekisterinä RAM-sirun ja tietokoneen muistiohjaimen välillä. Tämä johtaa nopeampaan suorituskykyyn, mutta lisää muistin menetyksen riskiä, ​​joka johtuu tietojen sijoittamisen ja haun satunnaisesta luonteesta, erityisesti intensiivisen toiminnan aikana.

Yleisimmin nimitystä rekisteröity muisti on puskuroitu muisti. Puskuroimaton muisti, kummallista kyllä, säilytti nimensä eikä sitä muutettu rekisteröimättömäksi muistiksi. Puskuroitu muisti eroaa puskuroimattomasta tyypistä siten, että siinä on laitteistorekisteri, joka tallentaa tiedot välimuistiin yhden muistisirun syklin aikana. Vaikka tämä toimenpide saattaa hidastaa muistisirua, se tarjoaa lisää vakautta ja vähentää muistivirheiden riskiä.

Yleisessä kuluttajakäytössä näiden kahden tyyppisten muistimoduulien välinen nopeusero näyttää mitättömältä. Intensiivisen tiedonvaihdon aikana ilmaantuu latenssia, jota seurataan rekisterin avulla. Puskuroitua muistia käytetään yleisesti palvelintietokoneissa ja keskustietokoneissa antamaan vakautta ja suojaamaan vaurioilta, joita puskuroimattomissa moduuleissa voi esiintyä, kun niitä käytetään jatkuvasti raskaasti. Vaikka puskuroidut moduulit ovat kalliimpia ja yleensä hitaampia ajaa, muistin vakaus ja tietoturva enemmän kuin korvaavat sen tuotantoympäristössä.