Mājas / Dažādi / Kas ir ECC RAM? Buferētā RAM - kas tas ir? Secīgas funkcionālās vienības. Reģistri un reģistra atmiņa Reģistrēt atmiņu

Kas ir ECC RAM? Buferētā RAM - kas tas ir? Secīgas funkcionālās vienības. Reģistri un reģistra atmiņa Reģistrēt atmiņu

Ikviens zina, ka mūsdienu skaitļošanas ierīces ir RAM, kur informācija tiek glabāta tikai darbības laikā. RAM ir izgatavota moduļu veidā ar mikroshēmām (mikroshēmām), kurām ir šūnu komplekts bitu informācijas glabāšanai. Katra atmiņas šūna ir paredzēta nulles vai viena glabāšanai. 8 šādas šūnas saglabā 8 bitus (tas jau ir 1 baits). Šādas mikroshēmas ir izgatavotas uz pusvadītāju bāzes. Bet moduļu un datora ieviešanai ir vairākas nopietnas atšķirības, kuras mēs apsvērsim šajā rakstā.

Paritātes atmiņa.

Datortehnoloģiju attīstības sākumposmā pusvadītāju elementu ražošanas tehnoloģija vēl nebija īpaši labi izstrādāta. Tāpēc, rakstot uz jebkuru atmiņas šūnu, pastāvēja informācijas zuduma iespēja: tajā tika ierakstīts viens, bet tas netika ierakstīts (palika nulle). Lai kaut kā kontrolētu ierakstīšanas procesu atmiņā, tika izgudrota vienkārša datu pārbaudes tehnoloģija.

Pirms viena baita (8 biti) ierakstīšanas tika aprēķināta visu šī baita bitu summa. Bet tika atcerēta ne visa kontrolsumma (lai ietaupītu atmiņu), bet tikai tās pēdējais bits, kura vērtība (nulle vai viens) tika iegaumēta speciāli tai paredzētā vietā. Šī bita vērtība (0 vai 1) bija atkarīga no tā, vai bitu summa tika pievienota pāra vai nepāra. Tāpēc šis bits kļuva pazīstams kā paritātes bits.

Pēc sākotnējā baita ierakstīšanas atmiņas šūnās tika aprēķināta šāda saglabātā baita bitu summa, un šīs summas paritāte tika salīdzināta ar iepriekšējo (kura vērtība tika saglabāta paritātes bitā). Ja kontrolsummu paritātes sakrita, tika uzskatīts, ka ierakstīšana atmiņā bija veiksmīga. Un, ja tie nesakrita, tika ģenerēts kļūdas ziņojums. Šo tehnoloģiju sauc par paritātes kontroli.

Atmiņa bez paritātes.

Laika gaitā sāka parādīties uzticamākas mikroshēmas. Kļūdu iespējamība tajos kļuva mazāka. Tajā pašā laikā tika samazinātas elektronisko komponentu izmaksas. Datoru ražošana un pārdošana ir kļuvusi masveida. Dažiem lietotājiem kļūdas datoru darbībā nebija kritiskas. Tāpēc tirgū sāka ražot modeļus, kas izmantoja atmiņu bez paritātes. Atbrīvošanās no "papildu" devītā bita (katram baitam) un "pārmērīgajām" kontrolsummu aprēķināšanas izmaksām ir ļāvusi nedaudz samazināt datoru izmaksas un padarīt tos pieejamus patērētāju masām. Šādi datori ir kļuvuši ļoti populāri galddatoru (galddatoru) sistēmu vidū.

Tomēr atsevišķās nozarēs, militāri aizsardzības sistēmās un banku sektorā kļūdu nepieļaujamība skaitļošanas sistēmās joprojām ir viens no svarīgākajiem uzdevumiem.

Atmiņa ar kontroli un kļūdu labošanu.

Paritātes kontroles tehnoloģija nav ideāla. Tas nespēj noteikt, piemēram, 2 bitu "pazušanu" vienlaikus (paritāte šajā gadījumā nemainās). Tāpēc tika nolemts, ka katrs atmiņā ierakstītais datu bits jāiekļauj nevis vienā kontrolsummā, bet vairākās. Ar šādu kontroles sistēmu radās iespēja vienlaikus atklāt vairākas kļūdas, to adreses un papildus arī šīs kļūdas labot. Šo tehnoloģiju sauca par kļūdu labošanas kodu (ECC), jo tika aprēķināts kods, kas ļāva labot kļūdas.

Protams, kontrolsummu glabāšanai nepieciešami papildu reģistri, kas sadārdzina šādus atmiņas moduļus, taču kopumā sistēmas, kuru pamatā ir ECC atmiņa, ir izturīgākas pret kļūmēm. Šādus atmiņas moduļus visplašāk izmanto serveru sistēmās.

Atmiņu ar paritātes un ECC tehnoloģiju var izmantot gan serveru, gan galddatoru sistēmās. Pirmajā gadījumā tas ir pamatots ar risināmo uzdevumu svarīgumu (kur mazākās kļūdas izmaksas ir ļoti augstas), un otrajā gadījumā tas ne vienmēr ir ieteicams (no ekonomiskā viedokļa: galu galā, lai izmantotu moduļus ar kļūdu kontroli, jums ir jābūt dārgākai mātesplatei, kas atbalsta šo tehnoloģiju, pretējā gadījumā kļūdu kontrole vienkārši nedarbosies).

buferatmiņa.

Datorsistēmās rakstīšanas/lasīšanas uz un no atmiņas kontroli veic īpašs atmiņas kontrolieris. Šim kontrolierim ir jābūt piekļuvei visām atmiņas šūnām un jānodrošina informācijas pārsūtīšana no kopnes uz atmiņu un otrādi. Galddatoru sistēmās bieži tiek izmantoti procesori ar integrētu atmiņas kontrolieri. Daži šīs ieviešanas trūkumi ir šādi:

Kontrolieris ir tikai viens, bet jāvada daudzas atmiņas šūnas – ir ierobežots vienlaicīgi apkalpoto atmiņas banku skaits, vienlaikus saglabājot augstu veiktspēju;

Vienā datu kopnē no procesora vai citiem datora komponentiem ir nepieciešams pārsūtīt gan vadības komandas, gan datus uz visiem izmantotajiem atmiņas moduļiem (kopnes slodze palielinās).

Situācijas uzlabošanai tika nolemts daļu kontrollera funkciju ieviest katrā atmiņas modulī. Lai to izdarītu, atmiņas modulī ir integrēta īpaša mikroshēma, kas darbojas kā buferis, kas saņem vadības un adreses iestatīšanas komandas no centrālā procesora (šajā gadījumā datu plūsma uz atmiņu iet pa kopni paralēli komandai plūsma). Tā radās buferatmiņa.

Vēlāk šajā buferī sāka ieviest kļūdu labošanas funkcijas (ECC), kā arī kļuva iespējams palielināt atmiņu bez papildu slodzes datu kopnē. Papildu mikroshēmas bufera ieviešanai kļuva pazīstamas kā reģistri, un pati atmiņa kļuva pazīstama kā reģistrētā atmiņa.

Laika gaitā parādījās arī pilnībā buferētie atmiņas moduļi (FB - full buffered), kuru buferī (reģistrā) sāka secīgi vienā straumē pārsūtīt ne tikai vadības signālus, bet arī datus. Izmantojot starpposma buferi, ir zināms atmiņas darbības palēninājums, jo ir nepieciešams viens starpcikls, lai ierakstītu buferi.

Šāda atmiņa ir daudz dārgāka nekā nereģistrēta atmiņa papildu reģistra mikroshēmas klātbūtnes un sarežģītu tehnoloģiju izmantošanas dēļ. Bet, pateicoties ergonomikai, iespējai palielināt skaļumu, kā arī kļūdu kontroles dēļ, tas tiek plaši izmantots serveru sistēmās, kur ļoti svarīgs ir stabils un bez kļūdām darbs ar lielu datu apjomu.

Saderības problēmas.

Buferatmiņas moduļi to izstrādes sākumposmā tika izmantoti gan galddatoru, gan serveru sistēmās, taču reģistrētās atmiņas parādīšanās izslēdza iespēju to izmantot personālajā datorā.

Galddatoru sistēmās reģistrētās atmiņas izmantošana ir nepraktiska (pārmērīgas izmaksas) un bieži vien neiespējama, jo lielākā daļa galddatoros izmantoto mātesplašu neatbalsta reģistrēto atmiņu. Mūsdienu serveru sistēmās izmantotās mātesplates, gluži pretēji, ir paredzētas darbam tikai ar reģistrēto atmiņu, jo jaudas palielināšana (nemainot platformu) un iespēja kontrolēt kļūdas ir svarīgāki faktori serveriem nekā izmaksas.

Ļoti bieži, izvēloties komponentus, sastopamies ar dažādiem nesaprotamiem terminiem un jēdzieniem. Izvēloties RAM, tā var būt DDR, DDR2, DDR3, DDR4, RDRAM, RIMM utt. Ja ar galvenajiem RAM veidiem viss ir vairāk vai mazāk skaidrs, un katra veida atbalsts ir norādīts mātesplates aprakstā, tad tāds parametrs kā ECC daudziem rada dažus jautājumus. Kas ir ECC atmiņa? Vai mājas datorā ir iespējams izmantot ECC RAM un kāda ir galvenā atšķirība starp ECC RAM un ne-ECC RAM?

Kas ir ECC atmiņa?

Šis ir īpašs RAM veids ar iebūvētu kļūdu labošanas aparatūru. Šādi atmiņas moduļi tika izstrādāti speciāli serveriem, kur prasības datu pareizībai un to apstrādes uzticamībai ir daudz augstākas nekā personālajiem datoriem.

ECC-Ram automātiski atpazīst spontānas datu izmaiņas krātuves blokos, tas ir, radušās kļūdas. Parasta - darbvirsmas atmiņa bez korekcijas mehānismu atbalsta tiek saukta par ne-ECC.

Ko spēj ECC atmiņa un kā tā darbojas?

Kļūdu labošanas atmiņa var noteikt un labot 1 bitu mainīto datu katrā mašīnas vārdā. Ko tas nozīmē? Ja dati starp rakstīšanu un lasīšanu kāda iemesla dēļ tika mainīti (tas ir, radās kļūda), ECC RAM koriģēs vērtību uz pareizo. Šādai funkcionalitātei nepieciešams atbalsts no RAM kontrollera. Šo atbalstu var organizēt mātesplates mikroshēmojums, iebūvētais RAM kontrolleris mūsdienu procesoros.

Kļūdu labošanas algoritms ir balstīts uz Haminga kodu, bet vairāku kļūdu labošanai tiek izmantoti citi algoritmi. Praksē tiek izmantoti atmiņas moduļi, kur uz katriem 8 atmiņas mikroshēmām tiek pievienota vēl viena mikroshēma, kas saglabā ECC kodus (8 biti uz katriem 64 galvenās atmiņas bitiem).

Kāpēc vērtība RAM atmiņas šūnās ir izkropļota?

Viens no galvenajiem datu izkropļojumu cēloņiem ir kosmiskie stari. Lai gan mēs uz Zemes atrodamies atmosfēras aizsardzībā, kosmiskie stari nes sev līdzi dažas elementāras daļiņas, kas var ietekmēt elektroniku, tostarp datora atmiņu. Šo daļiņu enerģijas ietekmē ir iespējamas atmiņas šūnas stāvokļa izmaiņas, kas izraisa datu kropļojumus un kļūdas. Interesanti, ka kosmisko staru iedarbība palielinās līdz ar augstumu, tāpēc liela augstuma datorsistēmām ir nepieciešama labāka aizsardzība.

Kā darbojas ECC atmiņa

Viens no kļūdu kontroles mehānismiem RAM ir paritātes tehnoloģijas izmantošana, kas ļauj fiksēt datos kļūdas faktu, bet neļauj labot datus.

Haminga kods tiek izmantots ECC korekcijai. ECC aizsargā datorsistēmas no nepareizas darbības atmiņas bojājuma dēļ un samazina kritiskas sistēmas atteices iespējamību. Atmiņa ar ECC atbalstu atkarībā no lietojumprogrammas ir par 2-3% lēnāka nekā atmiņa bez ECC.

ECC atmiņas izmantošanas iemesli

Nav objektīva iemesla izmantot ECC iespējotu RAM galddatoros. Tā kā datu kļūdu iespējamība ir ārkārtīgi maza, parastos datora lietošanas scenārijos ir ļoti maz ticams, ka kļūda radīs problēmas vai avārijas datorā. Sliktākais scenārijs ir izskats zils ekrāns BSOD nāve. Turklāt ECC RAM izmantošana ir sarežģīta, jo galddatoru procesori un mātesplatēm lielākā daļa neatbalsta šāda veida RAM.

RAM izmantošana ar ECC kļūdu labošanu ir aktuāla serveru un korporatīvajā segmentā, kur prasības attiecībā uz kļūdu toleranci un uzticamību ir ļoti augstas, un datu pareizība var ietekmēt aprēķinu rezultātus un sistēmas darbību kopumā. .

Kā tev iet? -

Var atšķirt trīs Galvenie mikrokontrolleros izmantotie atmiņas veidi:

● atmiņa programmas, kas ir tikai lasāmā atmiņa, kas paredzēta programmas koda un konstantu glabāšanai. Šī atmiņa nemaina tās saturu programmas izpildes laikā;

● atmiņa dati, paredzēti mainīgo (rezultātu) saglabāšanai programmas izpildes laikā;

reģistrēties atmiņa, kas sastāv no mikrokontrollera iekšējiem reģistriem. Apsveriet katra šāda veida atmiņas funkcijas.

Programmas atmiņa.

Šādas atmiņas nepieciešamība ir saistīta ar to, ka mikrokontrollerā nav tādas atmiņas ierīces kā cietais disks datorā, no kura tiek ielādēta izpildāmā programma. Tāpēc programmas kods ir pastāvīgi jāsaglabā mikrokontrollerī.

Visu veidu programmu atmiņa ir uz nepastāvīgu atmiņa vai lasāmatmiņa (ROM), kuras saturs tiek saglabāts pēc mikrokontrollera izslēgšanas.

Izpildes laikā programma tiek nolasīta no šīs atmiņas, un vadības bloks (komandu dekodētājs) nodrošina tās dekodēšanu un veic nepieciešamās darbības. Programmas izpildes laikā programmas atmiņas saturu nevar mainīt (pārprogrammēt). Tāpēc mikrokontrollera funkcionalitāte nevar mainīties, kamēr tās programmas atmiņas saturs nav izdzēsts (ja iespējams) un pārprogrammēts (piepildīts ar jaunām instrukcijām).

Jāņem vērā, ka mikrokontrollera bitums (8, 16 vai 32 biti) tiek norādīts atbilstoši tā datu kopnes bitumam.

Ja tiek teikts, ka ierīce ir 8 bitu, tas nozīmē datu bitu skaitu, ko mikrokontrolleris spēj apstrādāt.

Hārvardas arhitektūrā instrukcijas var būt lielākas par datiem, lai vienā pulksteņa ciklā varētu nolasīt visu instrukciju. Piemēram, PIC mikrokontrolleri atkarībā no modeļa izmanto komandas ar bitu platumu 12, 14 vai 16 biti. AT AVR mikrokontrolleri Komanda vienmēr ir 16 bitu plata. Tomēr visiem šiem mikrokontrolleriem ir 8 bitu datu kopne.

Princeton arhitektūras ierīcēs datu platums parasti nosaka izmantotās kopnes bitu platumu (līniju skaitu). Motorola 68HC05 mikrokontrolleros 24 bitu instrukcija atrodas trīs 8 bitu programmas atmiņas šūnās. Lai pilnībā iegūtu šādu instrukciju, ir jāveic trīs šīs atmiņas lasīšanas cikli.

Apskatīsim piecus veidi pastāvīgā pastāvīgā atmiņa jeb lasāmatmiņa (ROM), ko izmanto programmu glabāšanai.

Masku atmiņa.

Masku ROM (Mask-ROM vai vienkārši ROM) tiek izgatavoti mikrokontrolleru ražošanas stadijā pilnībā atkļūdotai programmai. Uz stikla fotomaskas, izmantojot programmu, tiek izveidots maskas raksts. Iegūtā fotomaska ​​ar masku tiek izmantota, lai izveidotu savienojumus starp elementiem, kas veido programmas atmiņu.

Pirmie masku ROM parādījās 20. gadsimta 60. gadu sākumā un, pateicoties tiem, tiek izmantoti arī mūsdienās tikumi kā zemas izmaksas produktu masveida ražošanā un augsta programmu uzglabāšanas uzticamība.

Trūkumi maskas ROM - jebkuras izmaiņas lietojumprogrammas programmā ir saistītas ar ievērojamām izmaksām un laiku, lai izveidotu jaunu fotomasku komplektu un ieviestu to ražošanā.

Vienreiz programmējama atmiņa.

Šī atmiņa (One-Time Program mable ROM — OTPROM) ir lietotāja programmējama, un sākotnēji tajā ir šūnas ar atsevišķiem bitiem. Programmēšanai tiek pakļautas tikai tās atmiņas šūnas, kuru saturam ir jāpieņem vērtība 0. Lai to izdarītu, atmiņas šūnai tiek pielietota paaugstināta sprieguma impulsu secība.

Sprieguma līmenim, impulsu skaitam un to laika parametriem stingri jāatbilst specifikācijām. Pēc nulles ierakstīšanas nav iespējams atjaunot vienu vērtību. Šī iemesla dēļ tiek saukta atmiņa vienreiz programmējams ROM. Tomēr ir jāuzsver iespēja papildu programmēšana(neskartas) šūnas ar atsevišķiem bitiem.

Mikrokontrolleri ar vienreiz programmējamu ROM tiek izmantoti izstrādājumos, kas ražoti nelielās partijās.

Pārprogrammējama atmiņa ar ultravioletā starojuma dzēšanu.

Erasable Programmable ROM (EPROM) atmiņas šūna ir LIPSMOS (peldošo vārtu lavīnas iesmidzināšanas) tranzistors. Sākotnējā stāvoklī (pirms rakstīšanas), piekļūstot šūnai, tiek nolasīta loģiskā vienība. Atmiņas programmēšana ir saistīta ar loģisku nullju ierakstīšanu attiecīgajās šūnās. EP ROM spēj vairākkārt programmēt, kuru tehnoloģija ir līdzīga vienreiz programmējamajai ROM tehnoloģijai.

Pirms katras programmēšanas sesijas, dzēšanas darbība lai atjaunotu atmiņas šūnu sākotnējo stāvokli. Šim nolūkam mikrokontrollera korpusā ir paredzēts īpašs logs, kas tiek apstarots ar ultravioletajiem stariem. ROM dzēšanas/programmēšanas sesiju skaits ir 25–100 reizes, atkarībā no programmēšanas tehnoloģijas (barošanas spriegumu iestatītās vērtības, impulsu skaita un ilguma) un dzēšanas tehnoloģijas (ultravioletā starojuma avota viļņa garuma diapazons).

Mikrokontrolleri ar EPROM atmiņu tiek izmantoti izstrādāto lietojumprogrammu prototipos to augsto izmaksu dēļ.

Lai samazinātu izmaksas, EPROM mikroshēmas tiek ievietotas korpusā bez loga (EPROM versija ar vienreizēju programmēšanu). Izmaksu samazināšanas dēļ ar masku programmējamu ROM vietā bieži tiek izmantotas EPROM versijas.

Pārprogrammējama atmiņa ar elektrisko dzēšanu.

Kā atmiņas elements ar elektrisko dzēšanu (Electricly Erasable Programmable ROM - EEPROM vai E2 PROM) tiek izmantots tranzistors ar MNOS struktūru (metāls, silīcija nitrīds, silīcija oksīds, pusvadītājs), kā dēļ ROM ir salīdzinoši zemas izmaksas. (attiecībā pret EPROM) un pieļauj maksimālo dzēšanas/programmēšanas ciklu skaitu 10 4 -10 6 . Turklāt EEPROM atmiņas programmēšanas tehnoloģija ļauj ieviest baitu dzēšana un baitu programmēšana, nenoņemot kontrolieri no dēļa, kas ļauj to periodiski atjaunināt programmatūra.

Neskatoties uz šīm priekšrocībām, šāda veida atmiņa netiek plaši izmantota programmu glabāšanai divu iemeslu dēļ:

● EEPROM ir ierobežota jauda;

● Ir parādījušies FLASH tipa ROM, kuriem ir līdzīgas lietotāja īpašības, bet par zemāku cenu.

Zibatmiņa.

Elektriski programmējama un elektriski dzēšamā FLASH atmiņa (FLASH ROM) tika izveidota kā alternatīva starp lētiem lielas ietilpības vienreiz programmējamiem ROM un dārgiem EEPROM ROM. maza ietilpība. FLASH atmiņa (piemēram, EEPROM) saglabāja iespēju atkārtoti dzēst un programmēt.

Katras šūnas adresācijas tranzistors tika izņemts no ROM ķēdes, kas, no vienas puses, neļāva programmēt katru atmiņas bitu atsevišķi, no otras puses, tas ļāva palielināt atmiņas apjomu. Tāpēc FLASH atmiņa tiek izdzēsta un ieprogrammēta lapas vai blokus.

Tādējādi funkcionāli FLASH-atmiņa maz atšķiras no EEPROM. Galvenā atšķirība ir ierakstītās informācijas dzēšanas metodē: ja EEPROM atmiņā dzēšana tiek veikta katrai šūnai atsevišķi, tad FLASH atmiņā - veselos blokos. Mikrokontrolleros ar EEPROM atmiņu ir jāmaina atsevišķas programmas sadaļas bez nepieciešamības pārprogrammēt visu ierīci.

Pašlaik MCU ar FLASH sāk aizstāt MCU ar vienreiz programmējamu (un pat maskētu) ROM.

ROM programmēšana.

Ņemiet vērā, ka maskas ROM atmiņa tiek ieprogrammēta tikai rūpnīcā MK ražošanas laikā. OTPROM un EPROM atmiņas veidi nodrošina izstrādātājam programmēšanas iespējas, izmantojot programmētāju un pastiprinātāja sprieguma avotu, kas ir savienots ar atbilstošajām MCU izejām.

EEPROM un FLASH atmiņa attiecas uz pārprogrammējamu vai pārprogrammējams atmiņa. Dzēšanai/programmēšanai nepieciešamā palielinātā jauda tiek radīta mūsdienu kontrolleru EEPROM un FLASH atmiņas moduļos, izmantojot iebūvētās sprieguma pastiprināšanas shēmas t.s. sūkņu ģeneratori. Pateicoties ieviešanai programmas vadība Ieslēdzot un izslēdzot sūkņa ģeneratoru, principā kļuva iespējams ieprogrammēt vai dzēst FLASH un EEPROM atmiņas šūnas kā daļu no izstrādājamās sistēmas. Šo programmēšanas tehniku ​​sauc programmēšana sistēmā(Sistēmas programmēšanā — ISP).

Tam nav nepieciešams īpašs aprīkojums (programmētāji), kas samazina programmēšanas izmaksas. Mikrokontrollerus ar ISP atmiņu var ieprogrammēt pēc tam, kad tie ir uzstādīti uz galaprodukta plates.

Apskatīsim, kā tiek realizēta (un izmantota) iespēja programmēt EEPROM atmiņu lietojumprogrammas vadībā. Ja programma ar programmēšanas algoritmu tiek glabāta atsevišķā atmiņas modulī ar nominālo barošanas spriegumu, un EEPROM atmiņa ir nodrošināta ar sūkņa ģeneratoriem, tad var veikt EEPROM atmiņas ISP programmēšanu. Šis apstāklis ​​padara EEPROM atmiņu par ideālu nemainīgu atmiņas ierīci, lai saglabātu lietotāja iestatījumus, kas tiek mainīti izstrādājuma darbības laikā. Kā piemēru var minēt modernu televizoru, kura kanālu iestatījumi tiek saglabāti, izslēdzot strāvu.

Tāpēc viena no tendencēm 8 bitu MK pastāvīgās atmiņas uzlabošanā bija divu nemainīgu atmiņas moduļu integrēšana MK mikroshēmā: FLASH (vai OTP) - programmu glabāšanai un EEPROM - pārprogrammējamu konstantu glabāšanai.

Apsveriet tehnoloģiju (atkārtoti) FLASH programmēšana–atmiņa ar iebūvētu sūkņa ģeneratoru, ko kontrolē lietojumprogramma. Pirmkārt, mēs atzīmējam divus faktus:

● ja MK ir iebūvēta EEPROM atmiņa pārprogrammējamu konstantu glabāšanai, tad gatavā produkta darbības laikā programmēt vairākus FLASH-atmiņas bitus nav jēgas. Ja nepieciešams, labāk nekavējoties izmantot pārprogrammēšanas režīmu;

● FLASH-atmiņas programmēšanas programmu nevajadzētu glabāt pašā FLASH-atmiņā, jo, pārslēdzoties uz programmēšanas režīmu, to nebūs iespējams lasīt tālāk. Programmēšanas programmai jāatrodas citā atmiņas modulī.

Programmēšanas tehnoloģijas ieviešanai sistēmā tiek izvēlēts viens no MC seriālajiem portiem, kuru apkalpo speciāls sakaru uzraudzības programma, atrodas rezidentu maskā ROM MK. Caur seriālo portu Personālais dators ielādē programmu RAM programmēšana un piemērots programma, kas pēc tam tiek saglabāta FLASH atmiņā. Tā kā MK pastāvīgajai RAM ir mazs apjoms, lietojumprogramma tiek ielādēta atsevišķos blokos (porcijās). Ja MCU ir instalēts maskas atmiņas modulis ar programmēšanas programmu, RAM tiek ielādēta tikai lietojumprogramma.

Mikrokontrolleri, kas sistēmā ievieš programmēšanas tehnoloģiju, bieži ietver četri atmiņas tips:

FLASH - programmas atmiņa, Mask ROM - sakaru monitora atmiņa, EEPROM - atmiņa mainīgo konstantu un starpposma datu glabāšanai RAM.

Sistēmas programmēšanas tehnoloģija tagad arvien vairāk tiek izmantota, lai ievadītu lietojumprogrammas mikrokontrolleros, kas atrodas uz galaprodukta plates. Viņa cieņa- programmētāja trūkums un augsta programmēšanas uzticamība noteikto MC iekšējo režīmu stabilitātes dēļ.

Kā piemēru mēs piedāvājam Motorola MC HC08 saimes pastāvīgās FLASH atmiņas rādītājus:

● garantēts dzēšanas/programmēšanas ciklu skaits - 10 5 ;

● Ierakstītās informācijas garantētais glabāšanas laiks - 10 gadi, kas praktiski ir preces dzīves cikls; FLASH-atmiņas moduļi darbojas un ir ieprogrammēti pie MK barošanas sprieguma no 1,8 līdz 2,7 V;

● Ekvivalentais programmēšanas laiks 1 baitam atmiņas ir 60 µs.

Datu atmiņa.

Izmanto kā pastāvīgo datu atmiņu statisks Brīvpiekļuves atmiņa (RAM), kas ļauj samazināt pulksteņa frekvenci līdz patvaļīgi mazām vērtībām. RAM šūnu saturs (atšķirībā no dinamiskās atmiņas) tiek saglabāts līdz nulles frekvencei. Vēl viena statiskās RAM iezīme ir iespēja samazināt barošanas spriegumu līdz noteiktam minimāli pieļaujamam līmenim, pie kura netiek izpildīta mikrokontrollera vadības programma, bet gan tiek saglabāts RAM saturs.

Uzglabāšanas līmenim ir viena volta vērtība, kas, ja nepieciešams, ļauj pārsūtīt MK uz barošanu no autonoma avota (akumulatora vai akumulatora), lai saglabātu datus. Dažiem MK (piemēram, Dallas Semiconductor DS5000) korpusā ir autonoms barošanas avots, kas garantē datu saglabāšanu RAM 10 gadus.

Mikrokontrolleru raksturīga iezīme ir relatīvi nelielais brīvpiekļuves atmiņas (RAM) apjoms (simtiem baitu), ko izmanto mainīgo lielumu glabāšanai. To var izskaidrot ar vairākiem faktoriem:

● tiekšanās pēc MC aparatūras vienkāršošanas;

● noteiktu noteikumu izmantošana, rakstot programmas, kuru mērķis ir samazināt RAM atmiņas apjomu (piemēram, konstantes netiek saglabātas kā mainīgie);

● atmiņas resursu sadale tā, lai datu izvietošanas vietā operatīvajā atmiņā maksimāli izmantotu aparatūru (taimeri, indeksu reģistrus u.c.);

● lietojumprogrammu orientācija darbam, neizmantojot lielus datu masīvus.

Stack funkcijas.

Mikrokontrolleros daļa no RAM atmiņas, ko sauc kaudze.Šo darbību laikā programmas skaitītāja saturs un galvenie reģistri (akumulators, statusa reģistrs, indekss un citi reģistri) tiek saglabāti un atjaunoti, atgriežoties galvenajā programmā. Atcerieties, ka kaudze darbojas pēc principa: pēdējais iekšā - pirmais ārā(Last In, First Out-LIFO).

Princeton arhitektūrā RAM tiek izmantota daudzu aparatūras funkciju, tostarp steka funkciju, ieviešanai. Atmiņas adrešu telpā tiek iedalītas atsevišķas zonas komandām, vispārējas nozīmes reģistriem, speciālo funkciju reģistriem utt. Tas samazina kontrollera veiktspēju, jo nevar piekļūt dažādiem atmiņas apgabaliem vienlaicīgi.

Hārvardas mikroprocesori var paralēli (vienlaicīgi) adresēt programmas atmiņu, datu atmiņu (ieskaitot I/O vietu) un steku.

Piemēram, kad ir aktivizēta CALL apakšprogrammas instrukcija, vienlaikus tiek veiktas vairākas darbības.

Princeton arhitektūrā, kad tiek izpildīta CALL instrukcija, nākamā instrukcija tiek ielādēta tikai pēc tam, kad programmu skaitītāja saturs ir nospiests stekā.

Sakarā ar mazo RAM ietilpību abu arhitektūru mikrokontrolleros, izpildot programmu, var rasties problēmas:

● ja tiek piešķirta atsevišķa kaudze, tad pēc tās aizpildīšanas steka rādītāja saturs tiek cikliski mainīts, kā rezultātā steka rādītājs sāk atsaukties uz iepriekš aizpildīto steka šūnu. Tāpēc pēc pārāk daudzām CALL instrukcijām stekā būs nepareiza atgriešanas adrese, kas tika uzrakstīta pareizās adreses vietā;

● Ja mikroprocesors izmanto kopēju atmiņas apgabalu, lai pielāgotu datus un steku, steka pārpilde pārrakstīs datus. Apskatīsim reģistru satura saglabāšanas iespējas kaudzē, jo trūkst instrukciju ielādei stekā (PUSH) un izlecēšanai no steka (POP). Šādos mikrokontrolleros PUSH un POP instrukciju vietā tiek izmantotas divas instrukcijas un indeksu reģistrs, kas skaidri norāda uz steka apgabalu. Instrukciju secībai jābūt tādai, lai pārtraukums starp pirmo un otro instrukciju neizraisītu datu zudumu. Tālāk ir sniegta PUSH un POP komandu simulācija, ņemot vērā norādīto prasību.

PUSH ; Ielādēt datus steka samazināšanas indeksā; Pāriet uz nākamo kaudzes vietu pārvietot [indekss], ace; Uzglabājiet akumulatora saturu uz skursteņa POP; Pop dati no steka gājiena dūzis, ; Ievietojiet steka vērtību akumulatora pieauguma indeksā; Pāriet uz iepriekšējo kaudzes šūnu

Ja programma tiek pārtraukta pēc pirmās instrukcijas, steka saturs netiks zaudēts pēc pārtraukuma apstrādes.

reģistra atmiņa.

Mikrokontrolleriem (tāpat kā datorsistēmām) ir daudz reģistru, kas tiek izmantoti vadībai dažādi iekšējie mezgli un ārējās ierīces. Tie ietver:

● reģistri procesora kodols(akumulators, statusu reģistri, indeksu reģistri);

● reģistri vadība(pārtraukumu kontroles reģistri, taimera kontroles reģistri);

● datu ievades/izvades reģistri (datu reģistri un paralēlie, seriālie vai analogie ievades/izvades vadības reģistri).

Atbilstoši tam, kā reģistri tiek ievietoti adrešu telpā, mēs varam atšķirt:

● mikrokontrolleri, kuros atrodas visi reģistri un datu atmiņa viens adrešu telpa, t.i., reģistri tiek saskaņoti ar datu atmiņu. Šajā gadījumā I/O ierīces tiek kartētas uz atmiņu;

● mikrokontrolleri, kuros ievades/izejas ierīces atdalīts no kopējās atmiņas adrešu telpas. I / O reģistru ievietošanas atsevišķā adrešu telpā metodes galvenā priekšrocība ir tā, ka tā vienkāršo shēmu programmas atmiņas un datu savienošanai ar kopējo kopni. Atsevišķa I/O telpa sniedz papildu priekšrocības Hārvardas arhitektūras procesoriem, ļaujot nolasīt instrukciju, kamēr tiek piekļūts I/O reģistram.

Tas, kā tiek piekļūts reģistriem, būtiski ietekmē to darbību. Procesoros ar RISC arhitektūru visi reģistri (bieži vien akumulators) atrodas precīzās adresēs, kas nodrošina lielāku elastību procesora darba organizēšanā.

Par ārējo atmiņu.

Gadījumos, kad izstrādātajām lietojumprogrammām nepietiek rezidentu programmu atmiņas un datu atmiņas, mikrokontrollerim tiek pievienota papildu ārējā atmiņa. zināms divi galvenie veidi:

● savienojums ārējā atmiņa izmantojot kopnes interfeisu (kā mikroprocesoru sistēmās). Daudziem mikrokontrolleriem šim savienojumam ir īpaša aparatūra;

● atmiņas savienošana ar ievades-izejas ierīcēm.Tajā pašā laikā atmiņai tiek piekļūts caur šīm ierīcēm programmatūras rīki. Šī metode ļauj izmantot vienkāršas I/O ierīces, neieviešot sarežģītas kopnes saskarnes. Metodes izvēle ir atkarīga no konkrētā pielietojuma.

Anotācija: Apskatīts reģistru kā elektroniskās atmiņas elementu darbības princips.

Reģistrs ir IC ar vidēju integrācijas pakāpi, kas paredzēts vairāku bitu vārda iegaumēšanai un saglabāšanai.

reģistrs-fiksators

Vienšūņi reģistrēties ir vairāku trigeru paralēls savienojums (8.1. att., a). UGO reģistra aizbīdnis ir parādīts attēlā. 8.1, b. Ja reģistrēties būvēts uz flip-flops, to sauc reģistrēties-"fiksators". Parasti bufera pastiprinātāji un vadības ierīces ir daļa no reģistra IC, piemēram, kā parādīts attēlā. 8.2, a. Šeit ir 8 bitu funkcionālā diagramma D- fiksatoru reģistrs KR580IR82 ar trim izvades stāvokļiem. Tās UGO ir parādīts attēlā. 8.2, b.


Rīsi. 8.1.Četru bitu "fiksācijas" reģistrs ar tiešajām izejām: a - funkcionālā diagramma; b - UGO

trešais stāvoklis(pirmie divi ir loģiski 0 un loģiski 1) ir IC izeju stāvoklis, kurā tie ir atvienoti gan no barošanas avota, gan no kopējā punkta. Citi šī štata nosaukumi ir augsta pretestība, augstas pretestības stāvoklis, Z stāvoklis[ , Ar. 61 - 63; , Ar. 68-70].

Tas ir sasniegts trešais stāvoklisīpašas shēmas risinājums [ , lpp. 117 - 118] loģisko elementu izejas daļā, kad loģisko elementu izejas tranzistori ir bloķēti un nepadod izejai ne barošanas spriegumu, ne zemējuma potenciālu (nevis 0 un nevis 1).

Reģistrēties KR580IR82 sastāv no 8 funkcionāliem blokiem (8.2. att., a). Katrs no tiem ietver D-sprūda aizbīdnis ar ierakstu aizmugurējā malā un jaudīgi 3 stāvokļu izejas vārti. STB- stroboskopa ieeja, - pārraides iespējošana - signāls, kas kontrolē trešo stāvokli: ja , tad informācija no ieejām tiek pārsūtīta uz atbilstošajām izejām, ja , visas izejas tiek pārsūtītas uz trešo stāvokli. Kad un IS darbojas kopnes veidotāja režīmā - informācija no ieejām uz izejām tiek pārsūtīta nemainīga.

Piesakoties uz beigu mala trigeros ir pārraidītās informācijas "snaps", tas ir, tā atceras to, kas bija iesniegšanas brīdī . Čau, buferis reģistrēties saglabās šo informāciju neatkarīgi no informācijas D-ieejas. Uzliekot priekšējo malu saglabājot, izeju stāvoklis mainīsies atbilstoši izmaiņām attiecīgajās ieejās. Ja , tad visi izejas pastiprinātāji tiek pārsūtīti uz trešo stāvokli. Šajā gadījumā neatkarīgi no ieeju stāvokļa visas izejas reģistrēties pārvests uz trešo valsti.

Visām reģistra izejām var būt aktīvs nulles līmenis, kas tiek parādīts UGO apgrieztu signālu un izejas apzīmējumu veidā.

Ir daudz šķirņu reģistri, piemēram, maiņu reģistri [ , 8. nodaļa], kuros trigeri ir savstarpēji savienoti tā, ka tie secīgi pārsūta informāciju no viena trigera uz otru [ , 109. - 122. lpp.], bet šeit pievērsīsimies fiksatora reģistram un tās pielietojums.

Reģistrēt atmiņu

Reģistrētā atmiņa - reģistra fails - ir ārkārtīgi brīvpiekļuves atmiņa (SRAM) - vairāku reģistru shēma, kas paredzēta vairāku vairāku bitu vārdu glabāšanai.

Uz att. 8.3 parāda īstenošanas piemēru SOZU, kas sastāv no četriem 8 bitiem reģistri(RG2 un RG3 savienojums nav parādīts, tas tiek veikts tādā pašā veidā). Ņemot vērā SOZU informācijas apjoms ir 4x8 biti - 4 vārdi pa 8 bitiem vai 4 baiti. Šeit DI - datu ievade- ievades datu kopne, DO-datu izvade- izejas datu kopne, WR- rakstiet signālu SRAM, RD- signāls informācijas nolasīšanai no SRAM, VSD - iekšējā datu kopne.

Katrs reģistrēties ir divciparu adrese, kas tiek ievadīta dekodētāja ieejās. Piemēram, galēji kreisi attēlā. 8.3 reģistrēties RG1 ir adrese , nākamais - (nav parādīts attēlā), nākamais - (nav parādīts) un galējais labais reģistrēties RG4 ir adrese.

Ja ir aktīvs rakstīšanas signāls, dekodētājs saskaņā ar adreses kodu izdod uz vienu no reģistri aktīvs signāls, uz kura informācija no ievades datu kopnes DI tiek rakstīts atlasītajam reģistrēties. Uz beigu malas informācija šajā reģistrēties"snaps".

Ja, piemēram, uz DI iesniegtā informācija un adrese reģistrēties vienāds ar , tad aktīvais signāls dekodētāja izejā "3" tiks piemērots reģistram RG4. Šobrīd atlikušajiem reģistriem būs neaktīvs signāla līmenis, tāpēc informācija no ievades datu kopnes tiks ierakstīta RG4, bet iepriekš ierakstītā informācija tiks saglabāta atlikušajos reģistros.

Ar aktīvu lasīšanas signālu tiek aktivizēti visi 8 multipleksori (pirmais, otrais un astotais ir parādīts diagrammā, pārējie ir savienoti līdzīgi), jo to iespējošanas ieejām tiek pielietots aktīvs signāls. Saskaņā ar adreses dekodētājs, multipleksori pārslēdz informāciju no izvēlētā reģistra uz izejas datu kopni. Piemēram, reģistra adrese ir . Tad visos multipleksoros tā būs, viņi visi sāks atlasīt informāciju atbilstoši adresei. Tāpēc uz izvades kopnes DO iekšējās kopnes biti ar numuriem 25 - no pirmā multipleksora, 26 - no otrā, 27 - no trešā, 28 - no ceturtā, 29 - no piektā, 30 - no sestā, 31 - no septītā un 32 - no astotā multipleksora tiks dots. Tādējādi informācija, kas ir satura kopija reģistrēties RG 4 ar adresi tiek pārsūtīta uz izejas datu kopni DO - multipleksora izejas nemainīgs stāvoklis.

Ir divi galvenie brīvpiekļuves atmiņas (RAM) veidi; tie ir buferatmiņa vai reģistrētā atmiņa un nebuferētā atmiņa. Nebuferētā atmiņa ir ātrāka un bieži vien daudz lētāka nekā buferatmiņa. Tādējādi tas ir moduļa veids, ko var atrast gandrīz visos mājas galddatoros un klēpjdatoros. Buferatmiņa ir dārgāka nekā nebuferētā atmiņa, kā arī lēnāka, jo tā apstrādā datu glabāšanu un izguvi.
Tomēr buferatmiņa ir daudz stabilāka nekā nebuferētās formas, tāpēc to galvenokārt izmanto lieldatoros un serveros.

Nebuferētā atmiņa ir visizplatītākais datora atmiņas moduļa veids, kas atrodams ikdienas lietošanā. Šos atmiņas moduļus ir lēti ražot, salīdzinot ar buferatmiņas moduļiem, daļēji tāpēc, ka tos bieži izmanto mājas un komerciālos datoros, kā arī tāpēc, ka tie patērē mazāk aparatūra. Nebuferētam atmiņas modulim nav iebūvētas aparatūras, kas darbotos kā instrukciju reģistrs starp RAM mikroshēmu un datora atmiņas kontrolleri. Tas nodrošina ātrāku veiktspēju, bet palielina atmiņas zuduma risku, kas rodas informācijas izvietošanas un izguves nejaušības dēļ, īpaši intensīvas darbības periodos.

Visbiežāk saukta par reģistrēto atmiņu, ir buferatmiņa. Nebuferētā atmiņa, dīvainā kārtā, saglabāja savu nosaukumu un netika mainīta uz nereģistrētu atmiņu. Buferatmiņa atšķiras no nebuferētā tipa ar to, ka tai ir aparatūras reģistrs, kas kešatmiņā saglabā informāciju par vienu atmiņas mikroshēmas ciklu. Lai gan šīs darbības rezultātā atmiņas mikroshēma var darboties lēnāk, tā nodrošina papildu stabilitāti un samazina atmiņas kļūdu risku.

Parasti patērētājiem šķiet, ka ātruma atšķirība starp divu veidu atmiņas moduļiem ir niecīga. Intensīvas informācijas apmaiņas periodos parādās latentums, kas tiek novērots, izmantojot reģistru. Buferatmiņa parasti tiek izmantota serveru datoros un lieldatoru sistēmās, lai nodrošinātu stabilitāti un aizsardzību pret bojājumiem, kas var rasties nebuferētos moduļos, kad tie tiek pastāvīgi intensīvi izmantoti. Lai gan buferizētie moduļi ir dārgāki un parasti darbojas lēnāk, atmiņas stabilitāte un datu drošība vairāk nekā to kompensē ražošanas vidē.