BL40A1810 & BL40A1820 Mikroprosessorit A/B Luento 1: Johdanto kurssin aihepiiriin
Kurssin järjestelyt Luennot: n. 12 kertaa (3. ja 4. periodi, 2h/vko,) Jero Ahola Maanantaisin klo 10-12, sali 4301+4302 Harjoitukset: (3. ja 4. periodi 2h/vko), Ville Niskanen, Antti Pinomaa ja Tero Ahonen Tiistaisin klo 14-16, sali 6325 Harjoituksissa hyödynnetään Lego Mindstorms NXT-alustaa, ryhmä kuittaa itselleen rakennussarjan Suoritusvaatimukset: Mikroprosessorit A: Tentin läpäisy + 3 pistettä harjoitustehtävistä Mikroprosessorit B: Tentin läpäisy Tehtäväpisteet A ja B-kurssien tentteihin lisäpisteinä vuonna 2012 Kurssikirjallisuutta: F. Vahid, Tony Givargis, Embedded System Design: A Unified Hardware/Software Introduction (10 kpl kirjastossa) Luentokalvot perustuvat yllä mainittuun kirjaan
Luentojen aihepiirejä (1/3) 1. Johdanto Kurssin esittely Mikroprosessorien historiaa Sulautettujen järjestelmien sovellusesimerkkejä 2. Yhden sovelluksen prosessorit Johdanto aiheeseen CMOS-piiritekniikka Kombinatorinen logiikka ja sekvenssilogiikka Yhden sovelluksen prosessorien suunnittelu 3. Yleiskäyttöiset ja sovellusaluekohtaiset prosessorit Johdanto Mikroprosessorin rakenne Mikroprosessorin toiminta Perusarkkitehtuurit
Luentojen aihepiirejä (2/3) 4. Puolijohdemuistit Johdanto Muistityyppien ryhmittely Muistityypit Mikroprosessorijärjestelmän muistin koostaminen 5. Oheispiirit Johdanto Tyypillisimmät oheispiirit Esitellään tyypillisimpien oheispiirien toimintaa 6. Mikroprosessorin arkkitehtuurista, käskyistä ja valinnasta sovellukseen Prosessorin arkkitehtuuri Rekisterirakenne Käskykanta ja osoitusmuodot Prosessorin valinnasta sovelluskohteeseen
Luentojen aihepiirejä (3/3) 7. Väylät ja keskeytykset 8. Keskeytykset ja DMA (Direct Memory Access) 9. Tiedonsiirto sulautetuissa järjestelmissä 10. Sulautetun järjestelmän laitteisto ja ohjelmistokehitys 11. A/D ja D/A-muuntimet 12. Sovellusesimerkki sulautetusta järjestelmästä
Johdanto, Mikroprosessori Mikroprosessorilla tarkoitetaan yleisesti ottaen laitetta, joka pystyy käsittelemään siihen syötettyä digitaalista informaatiota prosessoriin ohjelmoidun algoritmin mukaisesti. Sana mikro* puolestaan viittaa laitteen piitoteutuksen pienimpiin yksityiskohtiin Digitaalielektroniikan kannalta ajateltuna mikroprosessorit edustavat sekvenssilogiikkaa, prosessori on algoritmitilakone: Ohjauslogiikka ohjaa toimintasekvenssejä tulosignaalien kombinaatioiden (prosessorin käskykanta) ja prosessorin sisäisten tilojen perusteena Prosessori datapolkuna ovat sen rekisterit, jonka sisältämää dataa prosessori käsittelee sille syötettyjen ohjaussignaalien perusteella Status conditions * Sittemmin on siirrytty jo pienimmillään nanoluokan dimensioihin (40 nm ja pienempiin) Kuva. Algoritmitilakone External inputs Control logic Commands Input data Datapath Output data
Mikroprosessorien historiaa Ensimmäinen varsinainen mikroprosessori, Intel 4004, julkaistiin vuonna 1971: Prosessorin ideoijana oli: Tedd Hoff ja sen suunnitteli Federico Faggin Kehitettiin alun perin japanilaiselle Busicom-yhtiölle digitaalilaskimeen Korvasi useita ASIC-piirejä (Application Specific Integrated Circuit) Ominaisuuksia: rekisterien ja dataväylän leveys 4-bittiä käskykannan laajuus 46 kappaletta kellotaajuus 760 khz, käskytaajuus 60 000 käskyä/s koostui 2300 kpl transistorista Piitoteutus valtatrendistä poiketen pmos-tekniikalla (Metal-Oxide Semiconductor), viivanleveys 8 um Intel 4004 vastasi laskentateholtaan ENIAC:ia (1946), joka oli toteutettu releiden ja tyhjiöputkien avulla (18 000 tyhjiöputkea, paino 30 t) Ensimmäisten prosessorien sovelluskohteina sulautetut järjestelmät, esim. bensiinipumput ja liikennevalo-ohjaukset
Intel 4004 Kuva. Prosessori koteloituna Kuva. Prosessorin piitoteutus
Intel 4004:n prosessoriarkkitehtuuri Kuva. Prosessorin arkkitehtuuri [wikipedia]
Mooren laki (1/2) Mikroprosessorien transistorimääristä puhuttaessa Mooren laki tulee usein esiin (1965 Gordon Moore, yksi Intelin perustajista) Transistorien määrä integroiduissa piireissä on karkeasti ottaen kaksinkertaistunut 18 kuukauden välein viimeisten vuosikymmenten aikana 10,000 1,000 Logic transistors per chip (in millions) Note: logarithmic scale 100 10 1 0.1 0.01 0.001 Kuva. Yhdessä piirissä olevien transistorien määrän kehitys
Mooren laki (2/2) Esimerkki: vuoden 2002 integroitu piiri voi sisältää 15 000 kappaletta vuoden 1981 integroituja piirejä Saavutettu ennen kaikkea transistoritiheyttä kasvattamalla Näkyy erityisesti muistien ja prosessorien sekä ohjelmoitavien logiikkapiirien (PLD) kehityksessä 1981 1984 1987 1990 1993 1996 1999 2002 10,000 transistors 150,000,000 transistors Leading edge chip in 1981 Leading edge chip in 2002 Kuva. Vuoden 1981 piiri toteutettuna v. 2002 tekniikalla
Cray-2 (v. 1986) vs. Pentium 4 (v. 2002) Cray-2, v.1986: 4 vektoriprosessoria 64-bittiset rekisterit Erillinen I/O-prosessori Käskyjakso 4.1 ns (244 MHz) Toteutus ECL-piiritekniikalla Nestejäähdytys 1951 MFlops PC-kotitietokone, 2002-: Prosessori Pentium 4 32/64-bittiset rekisterit 5060 MFlops (P4, 2,53 GHz) Kuva. Cray-2:n keskusyksikkö ja kovalevyt
Sulautettu järjestelmä (1/2) Tiedonkäsittelyä suorittavia prosessorijärjestelmiä on kaikkialla Useimmiten ajatellaan prosessorijärjestelminä pelkästään tietokoneita: PC-tietokoneet Kannettava tietokoneet ja PDA:t Keskustietokoneet Palvelimet jne Näihin verrattuna sulautetut (prosessori)järjestelmät (embedded systems) ovat huomattavasti yleisempiä
Sulautettu järjestelmä (2/2) Sulautettu prosessorijärjestelmä Tiedonkäsittelyjärjestelmä, joka on sulautettu elektroniikkaa sisältävään laitteeseen Voidaan ajatella olevan mikä tahansa muu laite kuin tietokone Myydään vuodessa miljardeja kappaleita vs. tietokoneet miljoonia Kodissa ja autossa yksistään pelkästään > 50 kappaletta Yleensä hinnaltaan edullisia ja ominaisuuksiltaan rajoitettuja Kuva. Sulautettu järjestelmä vs. tietokone
Sulautettuja järjestelmiä sisältäviä laitteita Anti-lock brakes Auto-focus cameras Automatic teller machines Automatic toll systems Automatic transmission Avionic systems Battery chargers Camcorders Cell phones Cell-phone base stations Cordless phones Cruise control Curbside check-in systems Digital cameras Disk drives Electronic card readers Electronic instruments Electronic toys/games Factory control Fax machines Fingerprint identifiers Home security systems Life-support systems Medical testing systems Modems MPEG decoders Network cards Network switches/routers On-board navigation Pagers Photocopiers Point-of-sale systems Portable video games Printers Satellite phones Scanners Smart ovens/dishwashers Speech recognizers Stereo systems Teleconferencing systems Televisions Temperature controllers Theft tracking systems TV set-top boxes VCR s, DVD players Video game consoles Video phones Washers and dryers
Sulautetun järjestelmän ominaispiirteitä Järjestelmällä muuttumaton toiminnallisuus Järjestelmän mikroprosessori suorittaa samaa ohjelmaa jatkuvasti Järjestelmää rajoittavat reunaehdot Hinta, sallittu tehonkulutus, fyysinen koko, suorituskyky, jne. Reaktiivisuus ja tosiaikaisuus Järjestelmä reagoi ympäristön muutoksiin anturiensa avulla Järjestelmän pitää pystyä suorittamaan tiettyjä operaatioita tosiaikaisesti
Esimerkki sulautetusta järjestelmästä: Digitaalikamera CCD Digital camera chip A2D CCD preprocessor Pixel coprocessor D2A lens Kuva. Digitaalikameran digitaalielektroniikan rakenne JPEG codec DMA controller Microcontroller Multiplier/Accum Display ctrl Memory controller ISA bus interface UART LCD ctrl Muuttumaton toiminnallisuus - aina digitaalikamera Järjestelmää rajoittavat tekijät - hinta, tehonkulutus, koko, nopeus jne Reaktiivisuus ja tosiaikaisuus - reagoi käyttöliittymään riittävällä nopeudella
Ensimmäinen sulautettu järjestelmä: Apollo-lentojen ohjaustietokone (1960-) Kuva. Apollo-lentojen ohjaustietokoneet ja niihin liittyvä käyttöliittymäyksikkö Toteutus RTL-logiikalla Johdotus räppilangalla, laitteisto valettu epoksiin
Esimerkki sulautetusta järjestelmästä: ADSL-modeemi Modeemin osat ovat: 1. Linjamuuntaja, puhelinverkko 2. Status-ledi (verkko). 3. Status-ledi (USB). 4. Prosessori, TNETD7300GDU, TI ARM7. 5. JTAG (Joint Test Action Group) testaus ja ohjelmointi. 6. RAM, ESMT M12L64164A 8 MB. 7. Flash-muisti, tarra pinnassa. 8. Hakkuriregulaattori (tehonsyöttö). 9. Tehonsyötön sulake. 10. Teholähteem liitin. 11. Reset-painike. 12. Kide. 13. USB-portti. 14. Ethernet-muunnin, Delta LF8505. 15. KS8721B Ethernet PHY-piiri 16. Ethernet liitin (RJ45). 17. Puhelinliitin (RJ11). 18. Puhelinliitynnän sulakkeet. Kuva. ADSL-modeemin pääkomponentit (Asynchronous Digital Subsrciber Line)
Mikroprosessorien teknologiaa (1/2) Tiedonkäsittelyä suorittavan koneen, prosessorin, avulla implementoidaan järjestelmän haluttu toiminnallisuus Prosessori ei ole välttämättä ohjelmoitavissa, eikä tarkoita aina yleiskäyttöistä prosessoria, esim. PC-prosessori Controller Control logic and State register IR Program memory PC Assembly code for: total = 0 for i =1 to Datapath Register file General ALU Data memory Yleiskäyttöinen prosessori, esim, x86, Power PC Controller Control logic and State register IR PC Program memory Assembly code for: total = 0 for i =1 to Datapath Registers Custom ALU Data memory Sovelluskohtaiset prosessorit, esim, DSP, uc, jne Controller Control logic State register Datapath index total + Data memory Yhteen sovellukseen tehdyt prosessorit, esim, DMA-ohjain, JPEG-CODEC, jne
Mikroprosessorien teknologiaa (2/2) Prosessorityypit erottaa toisistaan niiden toiminnallisuuden muokattavuus Haluttu toiminnallisuus total = 0 for i = 1 to N loop total += M[i] end loop Yleiskäyttöinen prosessori Sovelluskohtainen prosessori Yhteen sovellukseen suunniteltu prosessori
Yleiskäyttöinen prosessori Ohjelmoitava, voidaan käyttää moniin sovelluksiin: Mikroprosessori Ominaisuuksia: Ohjelmamuisti Yleiskäyttöinen datapolku, ALU ja yleiskäyttöisiä rekisterejä Etuja: Prosessoriin perustuva tuote saadaan nopeasti markkinoille, pienet suunnittelukustannukset/piiri Joustavuus Pentium ja muut x86 prosessorit tunnetuimpia, lisäksi on olemassa lukuisia muita Controller Control logic and State register IR Program memory PC Assembly code for: total = 0 for i =1 to Datapath Register file General ALU Data memory
Sovellusaluekohtainen prosessori Ohjelmoitava prosessori, joka on optimoitu tietyn tyyppisiin sovelluksiin: Controller Datapath Ominaisuudet ovat usein kompromissi yleiskäyttöisen ja yhteen sovellukseen suunnitellun prosessorin välillä Ominaisuuksia: Ohjelmamuisti Control logic and State register IR PC Registers Custom ALU Etuja: Optimoitu datapolku Usein toiminnallisia lisäyksiköitä Program memory Data memory Joustavuus, suorituskyky, koko, tehonkulutus, usein suunnittelukustannus/piiri pieni Assembly code for: Tyypillisimpiä edustajia mikrokontrollerit ja DSP:t (digital signal processor) total = 0 for i =1 to
Yhteen sovellukseen suunniteltu prosessori Digitaalinen piiri, joka toteuttaa täsmälleen tietyn ohjelman Apuprosessori, kiihdytin, oheislaite, jne Ominaisuuksia: Etuja: Sisältää vain ne komponentit, jotka tarvitaan halutun toiminnallisuuden toteuttamiseen Ei ohjelmamuistia Controller Control logic State register Datapath index total + Nopeus Pieni tehonkulutus Pieni koko Data memory Esimerkkinä digitaaliset suotimet, MPEG- CODEC, JPEG-CODEC, PWM-moduulit, jne.
IC-piiriteknologioista (1/2) Tarkoittaa tapoja, jolla digitaalinen komponentti, esim. prosessori toteutetaan piille : IC (Integrated Circuit) Itse integroitu piiri on rakenteeltaan kerroksittainen; teknologiat erottaa toisistaa se, kuka tekee transistoreja piille ja missä vaiheessa IC package IC source gate oxide channel drain Silicon substrate Kuva. IC-piirin rakentuu piille tehdyista transistoreista
IC-piiriteknologioista (2/2) IC-teknologiat voidaan jakaa kolmeen kategoriaan: Täysin kustomoitu asiakaskohtainen piiri Osittain kustomoitava ASIC ( standardiosa ja ohjelmoitava osa ) PLD (Programmable Logic Device)
Täysin kustomoitu piiri Piiri on optimoitu toteuttamaan tietty digitaalinen toiminnallisuus, optimointi: Transistorien sijoittelu Transistorien koko Johdotus piillä Etuja: Suorituskyky (kellotaajuus), koko, tehonkulutus Haittoja: Suunnittelukustannukset ~ esim. 300 k$, tuote hitaasti markkinoille
Osittain kustomoitava piiri Piiri osittain tai kokonaan valmistettu Osa piiristä valmiina, esim. transistorit ja niiden avulla toteutetut logiikkapiirit ja muistit Lisätään johdotus (kytkennät) logiikan välille, jolla haluttu toiminnallisuus toteutetaan Etuja: Hyvä suorituskyky, koko, vähemmän suunnittelukustannuksia kuin täysin kustomoidussa toteutuksessa ~ (esim. 10k$ - 100 k$) Haitat: Sulautetun järjestelmän kehitystyö voi olla hidasta
PLD Programmable Logic Device Piiri on täysin valmis, kaikki kerrokset ovat olemassa Suunnittelijat voivat ostaa tuotteen standardipiirinä Digitaalielektroniikka toteutetaan piille ohjelmoimalla (kytkimiä avataan tai suljetaan) FPGA (Field Programmable Gate Array) on suosittu toteutustapa Edut: Pienet suunnittelukustannukset, nopeasti markkinoille Haitat: Koko, hinta ( esim. ~ 30$/kpl), tehonkulutus, hitaus
Yhteenveto Useimmat kuluttajatuotteet sisältävät sulautettuja järjestelmiä Prosessorit voidaan jakaa kolmeen luokkaan: Yleisprosessorit Sovelluskohtaiset prosessorit Yhteen sovellukseen suunnitellut prosessorit