Tallinna Tehnikaülikool

Seotud dokumendid
DE_loeng5

Andmed arvuti mälus Bitid ja baidid

Tootmine_ja_tootlikkus

Slide 1

6 tsooniga keskus WFHC MASTER RF 868MHz & 4 või 6 tsooniga alaseade SLAVE RF KASUTUSJUHEND 6 tsooniga WFHC RF keskus & 4 või 6 tsooniga alaseade SLAVE

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Tarkvaraline raadio Software defined radio (SDR) Jaanus Kalde 2017

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

SPORTident Air+

TTÜ Robotiklubi

Estonian_TBW-106UB(V1).cdr

Tartu Ülikool

Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

Side

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

ISS0050 Mõõtmine

HCB_hinnakiri2018_kodukale

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

Microsoft Word - Keypad-controller-manual-new_1.docx

Praks 1

B120_10 estonian.cdr

Häälestusutiliit Kasutusjuhend

Relatsiooniline andmebaaside teooria II. 6. Loeng

Caterpillar Inc. 100 NE Adams Street, Peoria, IL USA Meedianumber U9NE8460 Tegevusdokument Lisateave GRADE süsteemi komponentide nõuetele vastav

VL1_praks6_2010k

Praks 1

HCB_hinnakiri2017_kodukale

raamat5_2013.pdf

Microsoft Word - requirements.doc

Technology Esimene PowerSense tehnoloogiaga elektromehaaniline tööriist

Microsoft Word - QOS_2008_Tallinn_OK.doc

Microsoft Word - Iseseisev töö nr 1 õppeaines.doc

Microsoft Word - DB2_TECEfloor Raumthermostat Analog_EN_est

TARTU ÜLIKOOL LOODUS- JA TEHNOLOOGIATEADUSKOND Füüsika Instituut Karl Tiirik PRAKTILISED ÜLESANDED DIGITAALSE SIGNAALITÖÖTLUSE MEETODITEGA TUTVUMISEKS

Slide 1

Antennide vastastikune takistus

E-arvete juhend

Microsoft Word - Suure thermori pass2.doc

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Linux süsteemi administreerimine

Microsoft Word - Toetuste veebikaardi juhend

Kuidas hoida tervist töökohal?

CPA4164 USB 2.0 kõrgekvaliteediline videoadapter KASUTUSJUHEND 1. PEATÜKK - Ülevaade 1.1 Tutvustus CPA4164 USB 2.0 videoadapter võimaldab teil arvutis

Microsoft PowerPoint - loeng2.pptx

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

Võistlusülesanne Vastutuulelaev Finaal

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

Dias nummer 1

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

Microsoft Word - EHR.docx

JABRA STYLE Kasutusjuhend jabra.com/style

Loeng05

PowerPoint Presentation

Control no:

VRG 2, VRG 3

QUANTUM SPIN-OFF - Experiment UNIVERSITEIT ANTWERPEN

Document number:

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

SQL

B660 Kiirjuhend Märkus: Selles juhendis olevad joonised on ainult teabeks. Oma konkreetse mudeli kohta käivate üksikasjade teada saamiseks pöörduge om

I klassi õlipüüdur kasutusjuhend

Operatsioonisüsteemid Intelligentne arvutikasutus IFI6070 Tanel Toova

K-7_PC Connect_est

Tala dimensioonimine vildakpaindel

Microsoft Word - installation-guide.doc

KIIRJUHEND Lugege kiirjuhend enne seadme kasutamist hoolikalt läbi. Kõik tärniga (*) märgitud juhised kehtivad WLAN + 3G mudelitele (Lenovo B6000-H(V)

Mining Meaningful Patterns

EE-macbook-retina-12-early2015-qs.indd

Funktsionaalne Programmeerimine

Microsoft Word - 56ylesanded1415_lõppvoor

Operatsioonisüsteemide ehitus

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Andmeturve

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

Praks 1

my_lauluema

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega \374lesanded)

Image segmentation

Tartu Kutsehariduskeskus IKT osakond Merlis Karja-Kännaste ASUTUSE DOKUMENDIREGISTRI AVALIK VAADE Analüüs Juhendaja Mirjam-Merike Sõmer Tartu 2015

Sissejuhatus mehhatroonikasse MHK0120

PowerPoint Presentation

Monitooring

VRB 2, VRB 3

Loeng03

Microsoft PowerPoint - Tartu_seminar_2008_1 [Read-Only]

Microsoft PowerPoint - GIS_pilvelahendusena_final.ppt [Compatibility Mode]

PowerPoint Presentation

Microsoft Word - X Kvantomadused ja tehnoloogia.docx

PowerPoint Presentation

Abiarstide tagasiside 2016 Küsimustikule vastas 137 tudengit, kellest 81 (60%) olid V kursuse ning 56 (40%) VI kursuse tudengid. Abiarstina olid vasta

Operatsioonisüsteemid

DJI GOGGLES Kiirjuhend V1.0

Väljavõte:

Tallinna Tehnikaülikool ITTB8816 Küberfüüsikalised Süsteemid (Cyber-Physical Systems) Magistrikursus 6.0 EAP LOENG CPS_4 Mikrokontrollerid (Microcontrollers) Andres Udal, ProLab, U02-308

SISUKORD 1. Sissejuhatus 2. Mikroprotsessorite ja kontrollerite toodangu kasvud 3. Mikrokontrollerite väljatöötamise ajatähised 4. Arvutite baasarhitektuurid Harvard vs Von Neumann 5. Ajaloo olulisemad mikroprotsessorid 6. Ajaloo olulisemad mikrokontrollerid 7. Mikrokontrollerite sisemine arhitektuur täpsemalt 8. Mikrokontrollerite ja mikroprotsessorite võrdlus detailsemalt 9. Maailma suurimad mikrokontrollerite tootjad 10. Nanotehnoloogiline pakketiheduse võidujooks 11. Mikrokontrollerite mälud 12. Arduino ATmega mikrokontrollerite seeria

CPS_4.1 Sissejuhatus Mikrokontroller (microcontroller =µc or microcontroller unit MCU) ühel pooljuhtkiibil realiseeritud rakendusspetsiifiline mikroarvuti ehk protsessor koos mälude ja sisend/väljund-ahelatega. Võrdluseks - mikroprotsessor (microprocessor =µp or microtechnological realization of central processor unit CPU of computer ), ühel pooljuht-kiibil realiseeritud universaalne protsessor, mis vajab mälu ja väljundseadmeid. Alustuseks mõned teesid mikrokontrollerite olulisuse põhjenduseks: 1. Küber-füüsikalised süsteemid (KFS) kasvasid välja sardsüsteemidest (embedded systems), millede põhitunnus on piiratud funktsioonidega tarkvaraliselt programmeeritavad mikrokontrollerid; 2. Enamus KFS koolkondadest nimetavad iseloomuliku KFS tunnusena hierarhilist struktuuri, kus alumine andurite lähedane kiht on realiseeritud suht. autonoomsete mikrokontrollerite baasil; 3. Hinnatakse, et valdav enamus (kuni 98%!) (Michael Barr. Real men program in C. www.embedded.com, 1.Aug. 2009) maailmas toodetavatest protsessorikiipidest on mitte universaalarvutite kiibid vaid rakendusspetsiifilised mikrokontrollerite kiibid

CPS_4.2 Mikroprotsessorite ja -kontrollerite toodangu kasvud Et põhjendada uute IT suundade CPS ja IoT tähtsust, mis mõlemad sisaldavad embedded ehk füüsilise maailma mõõtmise momente, on siin all toodud müügimahtude võrdlused 5-aastase intervalli jaoks: SoC = System-on-Chip uus integreerimise suund mobiilsetele (st. väikese energiatarbega) ja tarkadele seadmetele protsessori integratsioon mälude ja välisseadmetega. Võib olla realiseeritud mikroprotsessori või mikrokontrolleri ümber, aga ka näiteks digitaalse signaaliprotsessori (DSP) või rakendusspetsiifilise protsessori (ASIP=Application Specific Instruction-set Processor) ümber. NB! Hinnatase väga erinev, seetõttu kiipide arv ilmselt tugevalt µc ehk embedded kasuks! Mikroprotsessorite hind kuni ca 500...2000 USD (näit. Intel i9 Extreme Edition 18 core, 3-4.4 GHz ~2000 USD) Mikrokontrollerid vahemikus ca 1...10 USD (nt. Arduino Uno R3 16 MHz kiip Atmega328P alates 0,99 USD)

CPS_4.2 Mikroprotsessorite ja -kontrollerite toodangu kasvud Vasakul 2018 prognoos, kus juba 16% läbimüügist embedded (st. küber-füüsikalised) rakendused Paremal ainult mikrokontrollerite müügimahu kasvuprognoos 2016.a. algusest NB! Kui lugeda, et keskmine mikroprotsessor maksab 3 USD, siis 2019.a. peaks maailmas müüdama ca 15 miljardit mikroprotsessorit ehk 2 tk. iga maakera elaniku kohta (hinnatakse, et ühes kaasaegses autos on 30 tk.).

CPS_4.3 Mikrokontrollerite väljatöötamise ajatähised Eelajalugu (mõned olulisemad programmeeritavad arvutid): 1935-36: Z1 (Konrad Zuse) mehaaniline arvuti, programm perfolindilt, ebatäpne 1941: Z3 (Konrad Zuse) 2300 releed, 22-bit ujukoma arvud, aerodünaamika arvutused 1944: Harvard Mark I (Konrad Aiken) 3500 releed, sünkroniseerimiseks 15m väntvõll, 4.3 tonni, programm perfolindilt 1945...49: EDVAC (John von Neumann, Presper Eckert, John Mauchly jt.) 6000 lampi, 12000 dioodi, elektrooniliselt salvestatud programm, keskmine t õrketa tööaeg 8 tundi, liitmine 0.86 ms ja korrutamine 2.9ms, 56kW, 7.85 tonni, mälu 1024 * 44-bitilist sõna, hea töökindlus, töötas kuni 1961 NB! 1943...1946 ENIAC oli suur (17468 lampi, 150kW,27 tonni), aga programm mitte mälust loetav Mikroprotsessorite ja kontrollerite ajatähised: 1947: Transistori leiutamine (John Bardeen, Walter Brattain, William Shockley) 1958 sept.: Jack Kilby (Texas Instr.) esimesed integraalskeemid (transistor+rc ja 2 transistori) 1965: Gordon Moore seadus (Fairchild Semicond.) 1959-65 täpselt 2x /aasta 1971: Esimene laiatarbe µp (Intel 4004) Mälukiibid 4001 ROM ja 4002 RAM eraldi 4-bit, 2300 transistori, 10 µm tehnoloogia 1974 (eeltöö 1971): Esimene µc Texas Instr. TMS1000 (Gary Boone ja Michael Cochran) Mälud ROM ja RAM ning taktgeneraator integreeritud 4-bit, 8000 transistori, 8 µm tehnoloogia

CPS_4.4 Arvutite baasarhitektuurid - Harvard vs Von Neumann Üldjoontes kõik digitaalarvutid peaksid sisaldama vähemalt järgmisi komponente: 1.Aritmeetika-loogikaseade (ALU = Arithmetic-Logic Unit) + andme/aadressi/käsu-registrid Tüüpilise käsu korral on registritesse toodud kaks operandi, tehakse üks aritmeetikatehe või loogiline tehe ja tulemus jääb ühte kahest registrist 2.Juhtseade (Control Unit) võtab käske õiges järjekorras ette, formeerib registreid ja aadresse ja saadab signaale kõigile plokkidele. 3.Programmimälu (Instructions Memory) tihti püsimälu (eriti just vanematel arvutitel ) 4.Andmemälu (Data Memory) peab olema muutmälu 5.Süsteemisiin (System Bus = Data + Address +Control ) - võib olla jaotatud osadeks, peab üle kandma juhtsignaale, mäluaadresside infot, konkreetsete käskude ja arvandmete sisu 6.Sisend-väljund seadmed/pordid (I/O Devices/Ports) 7.Taktgeneraator (Clock Generator) üldiselt juhtseadme juures : Joonis. Digitaalarvutite minimaalse struktuur (joonis vastab von Neumanni arhitektuurile, kuna käskude ja andmete mälu on koos) Märkus: Lihtsustamise eesmärgil on jäetud ära katkestuste kontroller, samuti mälude ja siinide vaheplokid, võimalikud puhvermälud (cache) jms.

CPS_4.4 Arvutite baasarhitektuurid - Harvard vs Von Neumann II Maailmasõja ajal tekkis märgatav vajadus suuremahuliste arvutuste järele seoses ballistika, aerodünaamika ja aatomipommi Manhattan-projektiga. Kuna muutmälud olid kallid (iga bitt vajas elektronlampi), siis oli loomulik, et programmi salvestamiseks kasutati kas perfolinti ( Harvard Mark 1 1944) või fikseeriti programm elektriliste lülitustega ( ENIAC 1943). See nn. Harvardi arhitektuur, kus programm ei ole vabalt muudetav vaid raudvaraliselt fikseeritud, oli seega loomulik lahendus. Hiljem on saanud see lahendus just mikrokontrollerite suuna aluseks. Esimestes mikrokontrollerites (nt. TI TLS1000 1974) kirjutati kliendi programm jäigalt tehases ROM püsimälusse, 1990-ndate aastate kestel tõid kaks firmat sisse olulise lihtsutuse, et programm on oli korduvalt ümberkirjutatav elektriliselt programmeeritavatesse EEPROM mäludesse. Teise universaalsema lahenduse, kus programmi ja andmete mälu on ühelaadsed ja koos, pakkus välja tuntud juudi-ungari teadlane John von Neumann juunis 1945 uue täis-elektroonilise (kiire!) EDVAC arvuti jaoks (hakkas tööle alles 1949). Käsikiri 101 lk. valmis rongis Princetoni ja Los Alamose vahel sõites. Aasta varem oli von Neumann kasutanud Harvard Mark 1 arvutit aatompommi sütiku lõhkelaengute arvutuseks. Tänapäeval on see arhitektuuri variant, mis nõuab väliste muutmälu kiipide lisamist laiale välisele andmesiinile, kõigi võimsate mikroprotsessorite aluseks. Von Neumann bottleneck probleemi lahenduseks on cache-vahemälude lisamine ALU lähedale.

CPS_4.5 Ajaloo olulisemad mikroprotsessorid 1971 Intel 4004, 4-bitiline Busicom lauakalkulaatorile 1974 Intel 8080, 8-bit, MITS Altair 8800 ja personaalarvutite sissejuhatus 1975 MOS Technology 6502, 5x odavam konkurent Intel 8080-le, videomängud 1976 Zilog Z80, populaarne odavam konkurent Intel 8080-le, tänapäevani paljudes sardsüsteemides 1976 RCA 1802, kiirgustugevdatud kosmosearvutite protsessorkiip (Nasa Voyager-1 1977) 1979 Intel 8088, 8-bit, PC5150 (1981) tõeline personaalarvutite algus 1980 Motorola 6800, 16/32-bit võimas protsessor Apple Macintosh-ile, Sun tööjaamadele ja sardsüsteemidele 1986 ARM2 32-bitiline Acorn Archimedes (UK) (Acorn RISC Machine) Pani aluse sardsüsteemide mikrokontrollerite ARM-arhitektuurile 1992 AIM PowerPC 601, Apple-IBM-Motorola protsessor (Apple Macintosh jm.) võistlemaks Intel+Microsoft-ga 1993 Intel Pentium, 32-bitilise (64-bitiline andmesiin) eduka kaubamärgi algus 2003 AMD Opteron 240, 64-/32-bitiline AMD protsessor, suutis ületada Intel Itaniumi 2019 tipptase: Intel i9 Extreme Edition 18 core, 3-4.4 GHz ~2000 USD, 2066 pins!

CPS_4.6 Ajaloo olulisemad mikrokontrollerid 1970-71: Texas Instrument kiip kalkulaatoritele TMS1802NC (Gary Boone) Mälud ROM 3000 bitti ja RAM 128 bitti, 4-bit sõna, 5000 transistori 1974: Esimene kommerts-µc Texas Instr. TMS1000 (Gary Boone ja Michael Cochran) ROM 1024x8 bitti, RAM 64x4 bitti, 4-bit sõna, 8000 transistori, 8 µm tehnoloogia, ROM programmeeriti tehases tarbijate jaoks 1976/77: Intel 8048 (MCS-48 seeria), esimene Inteli µc, 8-bitiline, ROM 1 kb ja RAM 64 B, 11 MHz, algselt NMOS tehnoloogia 1980: Intel 8051 (MCS-51 seeria), väga levinud Inteli µc, 8-bitiline, ROM 4 kb ja RAM 128 B, 12 MHz 1982: Intel MCS-96 seeria, esimene 16-bitiline µc, ROM 8 kb, 12 MHz, 3 µm tehnoloogia ~1989: Motorola 68332, esimene 32-bitiline µc, (kui on vaja kiireid arvutusi) 1993: PIC16C84 (Microchip Technology inc., AZ, USA), esimene EEPROM 16-bitiline, elektriliselt programmeeritav, LIHTSA ÜMBERPROGRAMMEERIMISE VÕIMALUSTE ALGUS! 1996: AVR Atmel (nt Atmega328P), esimesed Flash-programmimäluga, 8-bitiline, RISC, modif. Harvard 2009: nanowatt XLP microcontrollers (Microchip Technology Inc., AZ, USA), ülimadala tarbega sleep-mood (seisuolek)

CPS_4.7 Mikrokontrolleri sisemine arhitektuur täpsemalt Joonis. Mikroprotsessori sisemine ehitus plokk-diagrammi kujul täpsemalt. Oluline (võrreldes punkt 4.4 lihtsustatud skeemiga): 1.Lisatud ADC=analoog/digitaal muundur(mõõtmine) DAC=digitaal/analoog muundur (juhtimine) 2. Lisatud interrupt control katkestuste kontroll - programmi töö mõjutamine või katkestamine väliste või sisemiste signaalidega. 3. Lisatud timers/counters - programmi töö mõjutamine või katkestamine aja mõõtmise või impulsside loendamise alusel. 4. Lisatud special functioning block erifunktsioonide täitmine (nt. robootika, kosmoserakendused vm.). NB! Erinevalt mikroprotsessorist, mikrokontrolleri puhul siinid ei ulatu üldjuhul välja. Võimalik on välise mälu lisamine läbi I/O portide (suht. aeglane). Seetõttu aga mikrokontrolleril on vähe väljaviike! näit. ATmel328P (Arduino Uno) 28 või 32 väljaviiku mikroprots. Intel i9 Extreme Edition 18 core 2066 väljaviiku

CPS_4.8 Mikroprotsessorite ja kontrollerite võrdlus detailsemalt (1) Parameeter µc µp Kommentaar Rakendus Spetsiifiline Universaalne Disainikriteerium Töökindlus, odavus, võimalikult vähe lisakiipe Suur arvutusvõimsus, laiendatavus Arhitektuur Harvard Von Neumann Iseseisev funktsioneerimine Jah, System-on-Chip Ei, vajab lisakiipe Energiatarve Väike, isegi nanovatid seisuolekus Suur, võib minna 200-300 W juurde Intel i9 core 18 Extreme Edition 165 W Mikrokontroller tihti autonoomne patareitoitel seade Taktsagedused Mõõdukad, 1... 20... 300 MHz Suured, kuni 5 GHz Taktsagedus määrab energiakulu RAM 2... 256 kb 512 MB... 32 GB ROM (Hard Disk) Flash 32 kb... 2 MB 128 GB... 2 TB Peripheral interfaces I2C, SPI, UART USB, High speed internet, UART µp puhul põhimõtteliselt laiendatav süsteem suurte väliste mälukiipidega Erandlik µc on Motorola HC11

CPS_4.8 Mikroprotsessorite ja kontrollerite võrdlus detailsemalt (2) Parameeter Sõnalaius µc 8, 16, 32 bitti µp 32 ja 64 bitti Kommentaar Tänaseni palju mikrokontrollereid 8-bitised energiakokkuhoiu eesmärgil Taktsagedus määrab ka energiakulu Domineeriv protsessori käsustiku tüüp RISC (Reduced Instr. Set) CISC (Complex Instr. Set) See jaotus on vaieldav, Intel hoiab üldiselt CISC traditsiooni, aga RISC eelised pole alati selged Hind 1... 2...10 USD 50... 2000 USD 2018.a. Oli ühe Taiwanil toodetud 8-bit OTP µc (One-Time-Programmable) hind 0,03 USD! Keskmised hinnad USA-s: 8-bit 0,31 USD (2015); 16-bit suures koguses 0,35 USD (2018); 32-bit suures koguses 0,47 USD (2018). Väljaviikude arv Väike, 28...32... Suur, LGA (Land Grid Array) kuni 2066 Intel i9 ja 4094!!! (AMD Ryzen Threadripper) Mikrokontrolleris jääb andmesiin sisemiseks, välja tuleb viia vaid sisend-väljund pordid, juhtsignaalid, toide ning taktsagedusgeneraatori ühendusklemmid Programmide rikkumise võimalus Väike, kuna programm eraldi poolpüsimälus ja µc suht. autonoomne Rikkumise võimalus olemas, kuna andmed ja programmid koos Küber-füüsikaliste ja sardsüsteemide ( embedded systems ) loomisel on töökindlus ja turvalisus esmatähtsad

CPS_4.8 Mikroprotsessorite ja kontrollerite võrdlus detailsemalt (3) NB! Seoses sellega, et tänapäeval on turule toodud palju erifunktsioonidega mikroprotsessor- seadmeid, kus energia kokkuhoid on tähtsam kui arvutusefektiivsus (näit tahvel-arvutid ja nutitelefonid) on ka piir µp ja µc vahel muutunud hämaraks. Seetõttu on ka raske hinnata, kui palju on ikka µc osakaal üldises mikrokiipide toodangus. Igal juhul on see üle 50% (Lee-Seshia 2017 õpik lk. 212) või lausa 98% (Michael Barr. Real men program in C. www.embedded.com, 1.Aug. 2009) Lee-Seshia õpik toob välja kaks värskemat näidet, kus µp on omandanud µc jooni Inteli x86 käsustiku kahe suurtootja toodangus: 1.Intel Atom (märts 2008...) väikese voolutarbega, 45 nm tehnoloogia*, väike kiip 25 mm 2 (odavus!) variant Silverthorne, mobiilsed internetiseadmed, 0,8... 2 GHz, 0,65... 2.4 W (seisuolekus 0,01 W) variant Diamondville, netbook-id (st. minisülearvutid), 1,6 GHz, 2.5 W hiljem Dual Diamondville, Pineview, Cedarview (32 nm tehnoloogia 2011) hiljem serveritele Centerton, Briarwood, Avoton (32 nm ja 22 nm tehnoloogiad 2012-2013), 8... 20W 2.AMD Geode (2002..., eelvariandid Cyrix 1997, Nat. Semiconductor 1999) One laptop per child projekt variant GX, 333... 400 MHz, 0,9 W põhivariant LX, 366... 600 MHz, 1.2...2.6 W hiljem 2007 NX 667... 1800 MHz, 130 nm tehnoloogia * - tehnoloogia mõõt tähendab lihtsustatult MOS-transistoride kanali pikkust (nüüd juba langetatud 7 nm juurde katsetootmised 2016, reaalse mass-tootmise teated aug.-sept. 2018 Apple 12 Bionic ja Huawei Kirin 980, tootja Taiwan Semiconductor Manufacturing Company TSMC. Inteli suur tehas Fab 42 Chandler, Arizona pole korralikult tööle hakanud.)

CPS_4.9 Maailma suurimad mikrokontrollerite tootjad Mikroprotsessorite turul, kus eesmärgiks on suur arvutusvõimsus (viimase 10 a. jooksul ka mobiilsete seadmete jaoks väike energiatarve ja kompaktsus), on suuri konkurente vähe. Domineerivad Intel ja AMD (Advanced MicroDevices). Mikrokontrollerite turg on seevastu väga kirju. Wikipedia nimetab ja iseloomustab 36 firmat. https://en.wikipedia.org/wiki/list_of_common_microcontrollers 2016. aasta lõpu seisuga oli µc läbimüügi pingerida järgmine: (anysilicon.com ja IC Insights andmed): Pos. Firma Asukoht Näited mikrokontrolleritest Käive Osakaal Kommentaar (MUSD) 1. NXP Eindhoven, NL LPC1100, LPC4300 2914 19% 31000 töötajat, ostis Freescale dets. 2015 2. Renesas Tokyo, JP RX (8/16-bit, max 32MHz), RL (32-bit 240MHz) RZ (32 & 64-bit 1.5GHz) 2458 16% 20000 töötajat, RH850 (max 400 MHz) spets. autodele, RL väike energia, RZ ülivõimsad AI ja HMI mikroprots. 3. Microchip Techn. Inc, Chandler, AR USA PICxxx, ATmegaxxx 2017 14% 14000 töötajat, Ostis Atmel-i apr. 2016, 4. Samsung Soul, KOR S3Fxxxxxx 1866 12% 5. ST Microelectronics Geneva, HC Amsterdam, NL STM8x (8-bit mainstr., lowpower, automotive), STM32x (high-perform., wireless etc.) 1573 10% Palju osafirmasid liidetud 6. Infineon Techn. AG Neubiberg, GE 8...32 bit, sh. AUDO MAX TCxxxx võimas seeria autodele jm. 1106 7% Kõik Euroopas, palju elektroonikakomponente, head MC arendusplaadid! 7. Texas Instr. Dallas, TX USA MSP430 (16/32 bit highperform wired/wireless) 835 6% 80 years company history 8. Cypress San Jose, CA USA (Si valley) CYWxxxxx, 622 4% 6000 töötajat, ostis Spansion-i märtsis 2015 millega lisandusid ARV ja ARM arhitektuurid

CPS_4.9 Maailma suurimad mikrokontrollerite tootjad (2) Siin jäi võibolla veel nimetemata (12% läbimüügi hulgas): Pos. Firma Silicon Labs Asukoht Austin, TX USA Näited mikrokontrolleritest low power EFM32 ARM Cortex based 32-bit MCUs and EFM8 Intel classic 8051 architecture based 8-bit Käive (MUSD) Osakaal Kommentaar Madala voolutarbe rezhiimid, samal ajal suur arvutusvõimsus + sidekanalid. ProLab on kasutanud targa linna projektis 32- bit SiLab Mighty Geko EFR32MG12P432F1024GM48 (ARM Cortex-M, 40MHz, 256kB RAM, low power, 12bit ADC, 2 channels 10KS/s) Joonis. Mikrokontrolleritele prognoositakse konstantset läbimüügikasvu. Vedav segment on võimsad 32-bitilised (autotööstus, IoT). Andmed: http://www.electronicssourcing.com/2017/05/09/reversalfortune-chip-buyers-average-pricesmicrocontrollers-will-rise/ NB! Joonis näitab ka seda, et keskmine hind kasvab 1 USD lähedale seoses võimsate 32-bitiliste segmendi eeliskasvuga. Aastas toodetakse ca 4 mikrokontrollerit iga inimese kohta maailmas.

CPS_4.9 Maailma suurimad mikrokontrollerite tootjad (3) Mikrokontrollerite tootmine maailmas näitab jätkuvat tõusutendentsi seoses kasvava vajadusega sardsüsteemide, KFS ja Asjade Interneti valdkonnas. Olulisemad tähelepanekud ja prognoosid võib kokku võtta järgmiselt: (Andmed: mai 2017 www.sourcing-electronics.com ja IC Insight) Kõik segmendid 8/16/32-bitilised kasvavad (so. traditsioonilised töökindlad / erirakendused / suure võimsusega) Nüüd eksponentsiaalne kasv just 32-bitilistel, ka 16-bitilised kasvavad (Texas Instr. hinnangud) 10 a. jooksul 2006-2016 on suures plaanis hinnalangus 5 korda 32-bitistel (5 USD 1 USD) Aga nüüd hinnalangus peatunud, 32-bitiliste 2015. aasta hind alla 1 USD (2015) murdis psühholoogilise barjääri Firmad on hakanud kasutama rohkem 32-bitiseid 8-bitiste asemel Hinnang 2017: juba 60% läbimüügist 32-bitised, toodetud kiipidest 43% 32-bitised Kasvu vedajad: autotööstus, tark tootmine, Asjade Internet (autodes elektroonika osa kasv ja sidevajaduse kasv!) Autotööstus kasutab nii 8, 16, kui ka 32-bitiseid, aga 32 on kiiremini kasvav 8-bitised (töökindlad lihtsad) ja 32-bitised (võimsad ja avatud sidevõimalustega) omavad oma rakendusalasid, 16-bitised on vahevariant spetsialiseeritud rakendusteks (signaalitöötlus) Autotööstus varem: mootorid, pidurid, turvapadjad. Nüüd intelligentsed hoiatussüsteemid (+ hübriidsõidukid) Intel on proovinud oma CISC x86 arhitektuuri alusel teha mikrokontrolleri sarnaseid mikroprotsessoreid Intel on juhtiv arvutiprotsessorite tootja, seoses IoT vajadustega soovib tulla rohkem sardsüsteemidesse Siiski domineeriv arhitektuur (77%) 32-bitiste osas on RISC ARM Mikrokontrollerite turul on toimunud firmade konsolideerumine (liitumine)

CPS_4.9 Nanotehnoloogiline pakketiheduse võidujooks Vaatame ka lühidalt võistlust tipp-mikroprotsessorite turul (laua-arvutid ja serverid). Põhjus: Siin on toimumas huvitavad muutused turuliider Intel on jäänud kinni 14 nm tehnoloogiasse, kui AMD (Advanced MicroDevices) hakkab üle minema 7 nm tehnoloogiale. https://www.tomshardware.com/news/intel-amd-cpu-processor-predictions,38281.html Paul Alcorn: CPUs in 2019: our predictions Dec. 2018 Siin tuleb meil natuke tegeleda nanotehnoloogiatega ehk MOS-transistoride struktuuriga. Nii arvutusplokkide kui ka SRAM mälude põhielemendiks on paarid komplementaarsetest (st. n- ja p- kanaliga) MOS transistoridest MOS transistoride planaarne baas-struktuur on lihtne on Läte (Source) ja Neel (Drain), millede vahele tüürelektrood Pais (Gate) indutseerib voolujuhtiva kanali elektronide või aukude pinnale tõmbamisega läbi oksiidikihi. Kui Paisu pinge on tugev +, siis saab tekitada n-kanali p-kihti, aga kui tugev, siis p-kanali n-kihti. NB! Digitaalskeemides on vajalikud just tavaolekus ilma kanalita transistorid ( indutseeritud kanaliga ehk enhancement type ), et sisse- ja väljalülitatud oleku kontrast oleks tugev. Oksiidikiht viiakse minimaalsele paksusele (ca 2 nm ehk 6-7 aatomkihti), et juhtimine oleks efektiivne, aga veel ei algaks tunnel-leke. Aastatel 2000-2012 oli kasutusel planaarstruktuuri edasiarendusena ka lisaoksiidikihiga alusest eraldatud kanal SOI (Silicon-On-Insulator). Revolutsioonilise muutuse tõi kaasa 2011/2012. a. Inteli 3-dimensionaalne 3-st küljest tüüritav kalauime kanal (Tri-Gate FinFET)

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (2) Transitoride pindtiheduse kasvatamise võistluse ja IT-majanduse jaoks on tähtis termin Tehnoloogia mõõt (Technology node). See on tegelikult Gordon Moore transistoride eksponentsiaalse kasvu seaduse (1965) küsimus. Lihtsustatud käsitluses iga järgmine väiksem Technology node vähendab transistoride ja vooluradade lineaarmõõtmeid 2 korda, transitoride koguarvu kiibil aga suurendab 2 korda (kiipide pindala räni alusplaadil diameetriga kuni 30 cm on ligikaudu konstantne). Technology node oli kaua aega (kuni FinFET tulekuni 2011/2012) fotolitograafia täpsuse mõõt saavutatav metall/pooljuht/isolaator-ribade laius räniplaadi pinnal (tehnoloogidel half-pitch pool aialippide sammu ) Technology node vastas enne FinFET-i ligikaudu MOS-transistori kanali pikkusele (täpsemalt fotolitograafilisele ehk printed Gate length kanali pikkusele LGate). Inteli FinFET muutis aga kanali 3-mõõtmeliseks, mis vähendas transistoridele valikku räniplaadi pinda. Ja võttis maha vajaduse kanali pikkust vähendada. Siis sai tehnoloogia mõõdust ekvivalentse pakketiheduse mõõt (ka kalauime laiuse mõõt WFin) aga kanali pikkus jäi kinni 2012-14 tasemele ca 20 nm NB! Fundamentaalne füüsikaline probleem (mürad ja voolu diskreetsus) elektronide kontsentratsioon kanalis ca 1018-1019 cm-3 tähendab elektronide vahekaugust pallikeste kirjelduses ca 10-5 nm!!!

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (3) Reaalsuses elektronmikroskoobi pildil näeb üleminek 32 nm planaartehnoloogialt 22 nm Tri-Gate FinFET transistoridele aastal 2011 välja järgmiselt NB! Sellega rebis Intel 2011/2012 aastal konkurentidest ca 3 aastat ette! Aastal 2014 jõudis Intel selleni, et minna FinFET struktuuriga edasi 14 nm tehnoloogia peale NB! Võeti ette paralleelsete kalauimede arvu vähendamine koos nende kõrguse kasvatamisega: suurem pakketihedus väiksem mahtuvus Märkus: Tri-Gate tähendab siin 3-st küljest kanalit kontrollivat tüürelektroodi.

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (3) Tegelik füüsikaline kanali pikkus on olnud kogu aeg väiksem fotolitograafilisest tehnoloogia mõõdust Juba mitukümmend aastat on ennustatud pealiini CMOStehnoloogia lõppu seoses kanali kahanemisega 10 nm suurusjärku, mil kanali pikkuse peale jääb ainult 1-2 elektroni. Effektiivse füüsikalise kanali pikkuse suhe tehnoloogia mõõtu näitab ilmekalt ära kolm etappi pooljuhtkiipide tehnoloogiate arengus: 1.1971-94 ja >0,5 µm tehnoloogiad füüsikaline kanal vastab tehnoloogia mõõdule ; 2.1995-2011 ja > 32 nm tehnoloogiad füüsikaline kanal juba 2x lühem 3.2011 ja edasi kuni 7 nm FinFET tehnoloogiad - füüsikaline kanal pikem ja ei kajasta enam tehnoloogia mõõtu Märkus: TSMC keskusega Taiwanil on kõrgtaseme pooljuhtkiipide tootmise turuliider (alates 2017 möödus Intelist), toodab reaalselt 7 nm ja plaanib 6 nm katsetootmist 2020 Q1.

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (4) Suur probleem nanotehnoloogiatega tipptase koondub üksikute ettevõtete kätte Näit. 2018 Intel ja Global Foundries peatasid tipptaseme 7 nm väljatöötlused, jätkavad küpsete 14 nm jt. tehnoloogiatega NB! Rock i seadus tipptasemel pooljuhttehase maksumus kahekordistub iga 4 aastaga. Nt. Samsungi tehas 2015 Lõuna-Koreas 14 miljardit USD (Eesti riigeelarve 2019 = 12,5 miljardit USD)

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (5) Natuke veel detailsemaid andmeid mikrokiipide tootmise maksumusest: Siin natuke väiksemad maksumused tehaste osas (Rock i seaduse ajakonstant ehk kahekordistumine 7 aastaga). Näeme ka, et koos FinFET struktuuriga tekkis tehase maksumustes hüpe, pärast seda stabiliseerus. Aga disainitööde hind (uued mikroprotsessorid) kahekordistub tõesti 4 aastaga. NB! Aga kuna 7nm ja edasi nõuab: 1) EUV (ekstreemne UV peegeloptika ja 13.5 nm allikaga); 2) AAG (All-Around Gate kõigist külgedest ümritsetud kanal); 3) vertikaalsed struktuurid, siis siin võib tulla uus maksumuse hüpe.

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (6) IT spetsialistidel on vaja teada kiibitehnoloogiate edasiarengut. Kõige kompetentsem organisatsioon on IEEE IRDS (Int. Roadmap for Devices & Systems, enne 2016 ITRS) 2017.a. raportiga: https://irds.ieee.org/images/files/pdf/2017/2017irds_mm.pdf Tootmisaasta Parameeter 2017 2019 2021 2024 2027 2030 2033 Tehnoloogia mõõt 10 nm 7 nm 5 nm 3 nm 2.1 1.5 nm 1.0 nm Domineeriv tehnoloogia ja teised valikud FinFET FDSOI FinFET LGAA LGAA FinFET LGAA VGAA LGAA VGAA VGAA, LGAA, 3DVLSI VGAA, LGAA, 3DVLSI Tehnoloogia täpsustusi Si-kanal SiGe 25% kanal SiGe 50% kanal Füüsiline kanali pikkus 22-20 nm 20-18 nm 18-16 nm 16-14 nm FinFET kalauime laius 8 nm 7 nm 7 nm 7 nm Lateraalse kanali laius Ge, III-V, 2D-kihtide materjalid, võimalikud tunneleerumisega TFET-transistorid 14-12 nm 6 nm Vertikaalse kanali diameeter Sisemine toitepinge Vdd (V) 0,75 0,7 0,65 0,65 0,65 6 nm 6 nm 0,6 0,55 Lühendid: FDSOI (Fully Depleted Silicon-on-Insulator) täielikult lengukandjatest tühjendatav kanal tänu oksiidalusele; LGAA (Lateral Gate-All-Around) - tüürelektroodiga ümbritsetud lateraalne kanal; VGAA (Vertical Gate-All-Around) sama vertikaalne kanal; TFET (Tunneling Field Effect Transistor) kanalis tunnelbarjäär, madaldatakse tüürpingega, võimalik saada järsem avanemine, III-V suurema elektroonide liikuvusega GaAs tüüpi pooljuhtidel põhinevad kanalid.

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (7) Tunnel-FET põhimõte realiseeriti (alles ca 2015!), et saada järsemat avanemist kui 60 mv/dekaadile ja luua toitepinge langetamiseks võimalus allapoole 0,7... 0.6 V vahemikust. Digitaalskeemide staatilise energiavajaduse vähendamiseks on vajalik suur sisse- ja väljalülitatud oleku voolude kontrast (üle 100000). Fermi-Dirac statistika alusel pooljuhtide füüsika annab aga pehmema sisselülitamise, mistõttu tekivad staatilise oleku energiakaod. Joonis: Tunnel-FET põhimõte. NB! Natuke meenutab tavalist tunnel-dioodi (Esaki dioodi) vastupinge all. Ainult peab olema vähem legeeritud (tehnoloogiliselt lihtsam!), nii et nullpingel veel tsoon-tsoon tunneleerumise otsevoolu ei teki. Pärast tüürpinge lisamist peavad juhtivus- ja valentsoon kahel pool pnsiiret nihkuma kohakuti ja jääma maksimaalselt mõne nm kaugusele.

CPS_4.10 Nanotehnoloogiline pakketiheduse võidujooks (8) Nagu juba mainitud, Intel ja Global Foundries (AMD pooljuhtkiipide tootja) võtsid hoogu maha uue 7nm tehnoloogia suunas liikumiselt. Siiski on huvitav vaadata, mida oodatakse IRDS raporti järgi uutelt tehnoloogiatelt mikrokiipide kokkuvõtlike näitajate osas. Tootmisaasta Parameeter 2017 2019 2021 2024 2027 2030 2033 Tehnoloogia mõõt 10 nm 7 nm 5 nm 3 nm 2.1 1.5 nm 1.0 nm Domineeriv tehnoloogia ja teised valikud FinFET FDSOI FinFET LGAA LGAA FinFET LGAA VGAA LGAA VGAA VGAA, LGAA, 3DVLSI VGAA, LGAA, 3DVLSI I(V) tõusu parandamine TFET transistoride abil [mv/dekaad] 68 72 67 72 75 50 40 CPU thryput relative protsessori võimekuse suhtarv 1,00 1,70 2,89 4,91 8,35 14,2 24,1 SoC footprint scaling (50% digital + 35% SRAM + 15 Analog&IO) keskmistatud pindalavajadus 1,00 0,71 0,53 0,38 0,30 0,16 0,10 Joonis: Prognoositud graafikaprotsessorite (GPU) ja keskprotsessorite (CPU) tuumade arvude kasv kiibil

CPS_4.11 Mikrokontrollerite mälud Nagu me teame, µc erinevad µp-dest selle poolest, et ROM ja RAM mälud peavad olema samal kiibil. Püsimälu ehk ROM realiseerimine on mikrokontrollerite tehnoloogia väga tähtis osa. 1993 tõi PIC-mikrokontrollerite suurtootja Microchip Technology Inc. sisse elektriliselt ümber-programmeeritavad EEPROM mälud (Electrically Erasable Programmable Read-Only Memory, eraldi mälukatsekiibid Intel-is 1983) ca 1996 tõi Atmel AVR (alates 2015 Microchip Technology osa) sisse samalaadsed kuid veel lihtsamini ümberprogrammeeritavad Flash-püsimälud (eesti k. välkmälu = elektriliselt kustutatav pooljuht-säilmälu ). Mikrokontrollerite arengus (alates 1974) võib eristada järgmised etapid ROM realiseerimises: 1. Masked ROM - Pooljuhttehases kirjutati kliendi programm fotolitograafia maskidesse jäigalt sisse (NB! Võib suurseeriate puhul olla odavaim lahendus ka praegu!). 2.PROM or OTPROM (One-Time-Programmable ROM) - üks kord laengusalvestusega MOS-transistoridesse sissekirjutatav püsiprogramm (odavuse eesmärgil korpus läbipaistmatu, muidu saaks UV või röntgenkiirgusega tühjendada 2018.a. ühe sellise µc rekordmadal hind 0,03 USD). 3.EPROM (Erasable ROM) läbipaistvas korpuses UV-kiirgusega tühjendatav (ca 20 min!), korpus üldkuhul kallis ja programmeerimise jaoks suurem pinge ja eriseadmed 4.EEPROM alates 1993, suhteliselt lihtsalt ja kiiresti üleprogrammeeritav, siiski üldjuhul vaja tühjendamiseks/programmeerimiseks eriseadet. 5.NOR-Flash alates ca 1996, ujupaisuga MOS-transistorid paralleelselt, ühe baidi kaupa ümberprogrammeeritav, sobiv mikrokontrolleritele 5.NAND-Flash ujupaisuga MOS-transistorid järjestikku plokkides, sektorite (nt. 256 baiti) kaupa ümberprogrammeeritav, parem pakketihedus kui NOR-Flash kuid vähem vastupidav, sobiv suurtele mäluseadmetele

CPS_4.11 Mikrokontrollerite mälud (2) Proovime selgitada EEPROM ning Flash erinevust. Selle kohta on internetis palju materjale. See on ka meile praktiliselt tähtis, kuna mikrokontrollerites (nt. Atmega328P Arduino Uno) on olemas nii EEPROM kui ka Flash ROM. NB! Hoiatus - osa joonistest ja tekstidest internetis on vigased, kuna inimesed ei tunne füüsikat! Põhiväide on siin see, et EEPROM ja Flash on väga sarnased, kuna põhinevad ujuva tüürelektroodiga (st. elektronide laengut salvestava tüürelektroodiga) MOS-transitori kasutamisel. Joonis 1. Teise ujuva tüürelektroodiga MOS-transistori skeem. Suuremate pinge-erinevuste (~12V) korral peab muutuma elektronidele läbipaistvaks just alumine oksiidikiht suurusjärgus 5-10 nm. Kui elektronid tõmmatakse kirjutamise (writing) ajal ujuvale tüürelektroodile positiivse pingega, siis pärast seda n-tüüpi lätte (source) ja neelu (drain) vahel formeeruva n-kanali teke on raskendatud ja kanali avanemise lävipinge VT kasvab. Viimast saab kindlaks teha juba madalate pingetega lugemisreziimis (reading). Joonis 2. Lugemisrežiimi selgitus. Suhteliselt madalate pais-läte kontroll-pingega VGS suurusjärgus ~1V tehakse kindlaks, kas ujuval tüürelektroodil on elektronide laeng või mitte. (Laengu olemasolu sulgeb kanali kindlamini, seetõttu ka olek 0.) Andmete säilimine: nii EEPROM kui ka Flash 20 aastat (10...100) Flash write ( 1 0 ) 70 ns Flash tagasi erase (All 0 1 ) aeglane 1 ms... 1 min! NAND Flash 10000... 1000 erase/write tsüklit NOR Flash 100000... 10000 erase/write tsüklit

CPS_4.11 Mikrokontrollerite mälud (3) Vaatame täpsemalt Flash mälude põhioperatsioone. Joonis. Kolm Flash mälude põhioperatsiooni Elektronide tunnelleerumise võimaldamiseks ehk Erase/Write jaoks (st. potentsiaalibarjääride õhendamiseks ja madaldamiseks) kasutatakse tõstetud pingeid. Lugemine Read toimub juba tavaliste tööpingete vahemikus - ei kahjusta oksiidikihte. NB! Erinevalt protsessorite tavalistest MOS transistoridest, kus tööpingete (lülitusenergiate) minimiseerimise eesmärgil on tüürelektroodi oksiidikiht tõmmatud alla 1-2 nm suurusjärku (ca 4-7 molekulide vahekaugust amorfses SiO 2-s), Flash mäludes on tunnel oxide siiski paksem ca 5-10 nm, et laengud säiliksid ~20 aastat. Kontroll-tüürelektroodi all olev oksiid on veelgi paksem kuni ca 20 nm. Tänapäevane (2019) tehnoloogia tase Flash-mäludes: 28 nm juurest 22 nm peale (ca kanali pikkkus; tavaline planaarne tüürelektrood)

CPS_4.11 Mikrokontrollerite mälud (4) Veel EEPROM Flash võrdlust. Joonis 1. EEPROM vajab 2 transistori biti kohta, Flash ligikaudu 1. Joonis 2. NOR ja NAND ühendusskeemi võrdlus (esimene mikrokontrolleritele, teine suurtele mäluseadistele puhastamine plokkide kaupa) Väidetavalt NOR-Flash on vastupidavam mitmekordsetele ülekirjutamistele (mikrokontrollerid) kui NAND-Flash (mälupulgad, SSD-draivid jm.). Siiski loetakse, et EEPROM veel vastupidavam (ATmega mikrokontrollerite andmelehtedes 10 korda).

CPS_4.11 Mikrokontrollerite mälud (5) Lisaks EEPROM vs NOR Flash vs NAND Flash võrdlusi majanduslikust vaatevinklist. Joonis 1. Mälude EEPROM /NOR Flash / NAND Flash kasutusalade segmendid. (Microchip Technologies andmed 2017.) Joonis 2. Mälude suhteline hind. Selgituseks - staatiline SRAM mikrokontrollerites ja suurte protsessorite cache mäludes vajab 6 transistori ühe biti kohta. (Maksumuse andmed Microchip Technologies 2017.)

CPS_4.11 Mikrokontrollerite mälud (6) Tänapäeval on mikrokontrollerites kasutusel juba mitut tüüpi ROM mälu. Näiteks AVR Atmel oli esimene, kes 1996. aastal tõi sisse oma 8-bitilistesse ATmega mikrokontrolleritesse kaks ümberprogrammeeritavat püsimälu: 1a. Flash ROM täiesti arvestatava suurusega mikrokontrollerite jaoks (32...256 KB), säilitab programmi, mis laetakse sisse programmeerimiskeskkonnast, käivitub iga kord pärast toitepinge andmist. 1b. EEPROM pikaajalise säilitamisvajadusega andmete jaoks reserv (NB! Ka security eesmärk). 2.SRAM päris piiratud mälu muutujate hoidmiseks arvutuste ajal, andmed kaovad pärast toite väljalülitamist. The ATmega328 chip found on the Uno has the following amounts of memory: Flash 32KB (of which 0.5KB is used for the bootloader) and EEPROM 1KB SRAM 2KB The ATmega2560 in the Mega2560 has larger memory space: Flash 256KB (of which 8k is used for the bootloader) and EEPROM 4KB SRAM 8KB Natuke nanofüüsikat: Hinnatakse, et nii EEPROM kui ka Flash säilitavad andmeid elektronlde laengu kujul väga kaua isegi 100 aastat! Kui ei ole just röntgenkiirgust, mille energilised kvandid läbivad plastikkorpusi ja võimaldavad ergastatud elektronidel üle potentsiaalibarjääride lahkuda! Andmete lugemine ei kahjusta üliõhukesi oksiidikihte (3-4 tinglikku aatomkihti amorfses SiO 2-s). Oksiidikihte kahjustab erase ja write, seetõttu ümberprogrammeerimiste arv on piiratud ca 10000...100000. Selles suhtes EEPROM loetakse siiski vastupidavamaks kui Flash (mis on optimiseeritud pakketihedusele). AVR Atmel andmeleht annab: Atmega168P/328P Write/Erase Cycles: 10000 Flash / 100000 EEPROM Data retention: 20 years at 85 C / 100 years at 25 C

CPS_4.11 Mikrokontrollerite mälud (7) 6T SRAM realisatsioon Nagu juba mainitud, EEPROM vajab üldiselt 2 transistori ja Flash ühe ujuva paisuga transistori ühe biti kohta. Dünaamiline RAM, mida kasutatakse kiibipindala ökonoomia eesmärgil kõigis suuremates arvutites, vajab ka vaid 1 transistori biti kohta, kuid nõuab laenguid salvestavate kondensaatorite regulaarset värskendamist. Muidu heade omadustega staatilise muutmälu ehk SRAM mälurakk vajab aga 6 MOS-transistori ühe biti kohta, kui kasutatakse väikese voolutarbega CMOS ( metall-oksiid-pooljuht n- ja p-kanaliga komplementaarsete transistorpaaride ) tehnoloogiat. On võimalik takistitega 4-transistori pinnasäästlikum variant, aga siis tuleb leppida voolulekkega staatilises olekus. Lisaks info säilimise eelisele (kuni on toitepinge) on ka SRAM mälu väga kiire, kuna pole vaja kondensaatorite laenguid ümbersalvestada. Vaatleme allpool on 6T SRAM tööpõhimõtet. Joonis. 6T SRAM mäluraku elektriskeem ja vooluradade realisatsioon pooljuhtkiibil. Püsiolekus on word line madalal potentsiaalil ning eraldustransistorid M3 ja M4 suletud. (Selgituseks - kuna M3 ja M4 on n-kanaliga, siis plusspinge tüürelektroodil tõmbab elektrone pinna lähedale p-alasse ja tekitab juhtiva n-kanali.) Üks bitt infot on salvestatud 2-õlalises tagasisidestatud komplementaartransistoride nelikus (trigeris), mis omab kaks vastandlikku stabiilset olekut, Kui õla 1 pinge V1 on madal (olek 0 ), siis õla 2 pinge V2 peab olema kõrge VDD lähedal (olek 1 ) või ümberpöördult. M3 ja M4 on lihtsalt ühendustransistorid, mis avavad juurdepääsu lugemise ja kirjutamise (read/write) operatsioonideks ainult siis, kui WL potentsiaal on kõrge.

CPS_4.11 Mikrokontrollerite mälud (8) 6T SRAM realisatsioon Vaatleme lähemalt 6T SRAM mäluraku kirjutamise ja lugemise operatsioone. Kuna 6T CMOS SRAM abil realiseeritakse kiired cache mälud ALU lähedal (mikroprotsessorites registrid, näiteks 32 registrit AVR Atmel Atmega-mikroprotsessorites), siis see küsimus on oluline. Kirjutamine (write) on ka tegelikult lihtne - avatakse eraldustransistorid M3 ja M4 positiivse word line pingega ja siis antakse ette soovitud mäluraku olek kahe vastandliku pingega bitiliinidel bitline BL ja inverted bitline BL. Lugemine (read) on keerulisem. Selleks viiakse mõlemad bitiliinid BL ja inverted BL kõrgesse olekusse. See transistorõlgadest, mis oli olekus 0 (alumine transistor avatud, vt. Joonis), hakkab maha tõmbama varem täis laetud kondensaatori pinget Vc. Joonis. Read operatsiooni selgitus (näites vasak õlg madalal potentsiaalil 0 - M5 suletud ja M1 avatud). Positiivse pingega VWL word line elektroodil avatakse mõlemad eraldustransistorid M3 ja M4. Mõlemale bitiliinile BL ja inverteeritud BL antakse läbi eemalseisvate pull-up transistoride kõrge positiivne pingenivoo. Samuti laetakse täis kondensaatorid Cc ka Cc. Pärast eraldustransistoride avamist hakkab langema selle õla kondensaatori pinge, mille alumine transistor oli avatud (siin M1).

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (1) Arduino kui piisavalt lihtne, avatud ja hinnalt soodne arendusplatvorm mikro-kontrolleritel põhinevate automaatikalahenduste väljatöötamiseks sündis Põhja-Itaalia linnas Ivrea 2003. a. Hernando Barragán i magistritöö tulemusena. Üks juhendajatest Massimo Banzi pani nime Arduino sealkandis 1002. a. valitsenud kuninga Arduin auks. Eeltöödes kasutasid nad BASIC Stamp mikrokontrollereid hinnaklassist 50 USD, kuid juba õige pea läksid üle AVR Atmel firma 8-bitilistele ATmega168/328 mikrokontrolleritele (kuhu 1996.a. toodi esimesena sisse kahe püsimälu Flash ja EEPROM kontseptsioon). Kuulus PIC-kontrollerite tootja Microchip Technologies langes valikutest välja, kuna osa informatsiooni polnud vaba. Firma Arduino LLC registreeriti 2008.a. Suure arvutusvõimsusega 32-bitilised ARM Cortex M3 protsessorid võeti kasutusele Arduino Due jaoks aastal 2012 (vt. tabel). Tabel. Mõned olulisemad esimesed Arduino arendusplaatide variandid. Aasta Arendusplaat 2007 Arduino Diecimila 2010 (Rev3 2011) mikrokontroller Sõnalaius Taktsagedus ATmega168P 8 bitti 16 MHz Arduino Uno ATmega328P 8 bitti 2010 Arduino Mega2560 ATmega2560 2012 Arduino Due ATSAM3X8E (ARM Cortex M3) Flash EEPROM SRAM Hinnaklass 16 KB 512 B 1 KB 16 MHz 32 KB 1 KB 2 KB 18 EUR 8 bitti 16 MHz 256 KB 4 KB 8 KB 30 EUR 32 bitti 84 MHz 512 KB --- 96 KB 43 EUR Arduino eelistena lisaks soodsale hinnatasemele võib nimetada väga mugava programmeerimise läbi interaktiivse IDE keskkonna, lihtsa sisendite-väljundite külgeühendamise arendusplaatidel (Uno-l kuus 10-bitilist A/D kanalit, 14 digitaalset väljundit, 6 PWM pulsilaiusmodulatsiooniga kvaasianaloogväljundit 0...255), paljude laiendusplaatide olemasolu kommunikatsiooniks (LCD-ekraanid, Ethernet, internet, mälukaardid). Mõõdukale 8-bitilisele 16 MHz arvutusvõimekusele on lisandunud ka piisavalt suur arvutusvõimekus 32-bitiliste kõrgendatud taktsagedusega arendusplaatide näol (nt. Due).

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (2) väljaviikude näide Vaatame natuke täpsemalt Arduino Uno mikrokontrolleri ATmega328P väljaviikude konfiguratsiooni 28väljaviigulises lihtsas DIP-korpuses (võimalikud on ka 32 jalaga pindmontaažvariandid ATmega328P-AU ja ATmega328P-MU). Enamus viikudest omab mitut funktsiooni, mida saab tarkvaraliselt muuta (näiteks kasutada analoogsisendeid A0...A5 hoopis digitaalsete sisend/väljunditena nr. 14...19). Arendusplaadi pistikupesad vastavad ainult osaliselt mikrokontrolleri väljaviikudele. Märkus: Järjestikkommunikatsiooni organiseerimiseks on ka vähemalt kolm võimalust (UART=RXD +TXD, TWI=I2C=SCL +SDA, SPI=SCK + MOSI + MISO+ SS), milleks tuleb osa väljaviike võtta kasutusele teise funktsiooniga.

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (3) kiibi sisearhitektuur Joonis. AVR Atmel firma ühe olulisema 8-bitiliste mikrokontrolleri ATmega328P kiibi sisemine arhitektuur

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (4) - arendusplaat Joonis. Arduino Uno Rev3 arendusplaadi konstruktsioon ja kasutajale ettevalmistatud pistikupesade funktsioonid.

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (5) EEPROM näide Näide Arduino Uno Rev3 (mikrokontroller ATmega328P) EEPROM mälu kasutamisest püsiandmete salvestamiseks. Flash-mälusse laetav programm on kirjutatud C-keeles spetsiaalses Arduino arenduskeskkonnas (IDE=Interactive Development Environment). Programmeerimiseks ja toiteks on Arduino Uno arendusplaat ühendatud personaalarvuti COM-pordiga USB-kaabli abil. //Arduino Uno (Atmega328P mikrok.) EEPROM (1024 baiti) lugemis-kirjutamisnäide //Salvestame EEPROM lõppu baitidele nr. 1022 ja 1023 kahebaidilise täisarvu //NB! Üldiselt EEPROM kirjutamiste arv on piiratud - ca 100000 korda #include <EEPROM.h> #include <avr/sleep.h> //sleep-moodi võimaldamine energiakokkuhoiu eesmärgil int iturnon; //defineerime käivituskordade loendurmuutuja (2-baidiline täisarv) void setup() { Serial.begin(9600); //teksti saatmiseks IDE töökeskkonna "Serial" monitorile iturnon = EEPROM.read(1022); //loeme täisarvu baitidelt 1022 ja 1023 EEPROM lõpus iturnon = iturnon +1; //suurendame sisselülitamiste loendurit 1 võrra EEPROM.write(1022,iturnon); //salvestame sisselülitamiste loenduri uue väärtuse Serial.print("sisselülitamine nr.="); Serial.println(iturnon); //kuvame monitoril uue väärtuse } void loop() { delay(10000); //siin viide 10sek., üldiselt suvaline lõpmatus tsüklis programm cli(); sleep_enable(); sleep_cpu(); //viime sleep-moodi } Arenduskeskond väljastab info nii programmimälu (Flash) kui ka muutujate mälu (SRAM) kasutamise kohta:. Sketch uses 1958 bytes (6%) of program storage space. Maximum is 32256 bytes. Global variables use 210 bytes (10%) of dynamic memory, leaving 1838 bytes for local variables. Maximum is 2048 bytes. Arenduskeskonna Serial Monitor aknasse saadab mikrokontroller igakordse Reset nupu vajutuse järel teated:. sisselülitamine nr.=8 sisselülitamine nr.=9 jne.

CPS_4.12 Arduino ATmega mikrokontrollerite seeria (6) - töökiirus Mõningate ajakriitiliste ülesannete ( embedded real-time cyber-physical problems ) puhul on tähtis hinnata operatsioonide teostamise kiirus mikrokontrolleris. Näit. ATmega328P (16 MHz, 8-bitiline) puhul võtavad lihtsad liitmise/lahutamise tehted byte-muutujatega aega 0,06 µs ehk 1 takt kui andmed on registrites (missuguseid on ATmega-l puhul ALU toetuseks soodsalt palju ehk 32). Kui andmed tuleb algul lugeda RAM mälust ja hiljem sinna tagasi kirjutada, kasvab tehete aeg 6 takti ehk ~0,38 µs iga baidi kohta. Tabel. Operatsioonide ajad (µs) ATmega328P mikroprotsessoris (RAM lugemine+kirjutamine eraldi näidatud). Tehe Muutuja Byte (1 bait) Int (2 baiti) Long (4 baiti) kommentaar Float (4 baiti) RAM lugemine+kirjutamine 0,38 0,75 1,50 1,50 Proportsioonis baitide arvuga Liitmine/lahutamine z=x±y 0,06 0,13 0,26 6,65 Float väga aeglane! Võimalusel kasuta Int või Long Korrutamine z=x*y 0,25 0,75 3,03 8,17 Korrutamisel ka Long aeglane, võimalusel kasuta Int Jagamine z=x/y 12,5 15,0 39,4 29,6 Siin Int ja Long väga aeglased, Float isegi parem Max-min z=min(x,y) 0,35 0,54 1,12 3,83 Umbes 4 liitmist-lahutamist, ainult Float pool ± Abs z=abs(x) - 0,56 / 0,75 1,14 / 1,50 4,08 Täisarvudega sõltub märgist, võrreldav korrutamisega Ruutjuur z=sqrt(x) 52,0 50,7 51,7 44,8 Ruutjuur nagu mitu jagamist, Float kiirem kui Int, Long Siinus z=sin(x) 121,1 125,9 145,2 122,8 Siinus nagu 3 ruutjuurt Astendamine z=pow(x,y) 308,7 306,0 341,4 300,2 Astendamine väga aeglane nagu 6 ruutjuurt Kokkuvõtteks saab tabeli järgi hinnata, kas antud 8-bitiline 16 MHz mikrokontroller saab arvutusülesandega hakkama või tuleb võtta suurema arvutusvõimsusega kontroller. Numbrid näitavad, et ATmega328 suudab teha ca 120 Float-korrutamist või 22 ruutjuure võtmist või 8 siinust ühe millisekundi jooksul. Kui õnnestub ülesanne viia täisarvudele, siis põhitehete piires (ja kui vältida jagamisi) saab ülesannet kümneid kordi kiirendada. Analoogsuuruste mõõtmine 10-bitilise A/D teisendusega võtab standardseadistuses aega ~112µs (~8900 Samples/s), veel head täpsust tagava 8-kordse kiirendusega ~14µs (~71 ksamples/s). (Maksimaalne võimalik kiirendus on 64x, mis ei pruugi tagada täpsust.)