Tietokone-järjestelmät

Slides:



Advertisements
Samankaltaiset esitykset
CAN-VÄYLÄ AUTOISSA.
Advertisements

Tietokonetekniikka 4 Tieto ja tiedon talletus
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Tietokonetekniikka 5 Operandien osoittaminen ja tietokoneen käskykanta
Tiedonhaku Internetistä PODCASTING Katarina Andersson TU08se
WLAN Tekijät: Petri Koskinen Miika Kulla Veli-Pekka Koskinen.
Tietokonetekniikka 3 Tietokoneen Rakenteen ja toiminnan perusteet
JavaScript (c) Irja & Reino Aarinen, 2007
Ohjelman perusrakenteet
Tietokone Koostuu keskusyksiköstä, näytöstä, näppäimistöstä, hiirestä sekä muista mahdollisista lisälaitteista. Pöytäkoneiden lisäksi löytyy myös kannettavia.
Lähiverkot erikoistyökurssi
Oskari Ranta, Pekka Karppinen.  LVDS (engl. Low-voltage differential signaling)  Siirtonopeudessa päästään luokkaan Gbit/s.  LVDS-signaaleita käytetään.
Synkroniset tilakoneet
Tietokone-järjestelmät
CD-ROM-asema mikrossa
Kuinka rakentaa tietokone itse
PC:n JA OHEISLAITTEIDEN PERUSTEITA
VMware workstation. VMware •Virtual Machine •Yhtiö perustettu vuonna 1998 •1999 julkaisi ensimmäisen tuotteen: VMware for workstations •2001 tuli VMware.
Sulautettu laite T720906, 6 op TTE9snL
Jukka Inget ja Olli Hellgren
EXtensible Markup Language
Etusivun otsikko Alarivit tulevat näin lorem ipsum dolor Lorem ipsum dolor sed diam TK00507 Mikrotietokoneet I 3 opintopistettä Petri Nuutinen.
A B&J Production :: Verkkolaitteet Click to start.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
E-Commerce 2010: Business, Technology, Society 6e
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
T Personal SE assignment Project progress tracking and control.
Ohjelman perusrakenteet
Tiedon esittäminen.
2. Vuokaaviot.
13. Hyvä ohjelmointitapa (osa 1)
Tietokone Koostuu keskusyksiköstä, näytöstä, näppäimistöstä, hiirestä sekä muista mahdollisista lisälaitteista. Pöytäkoneiden lisäksi on kannettavia tietokoneita.
Käyttöjärjestelmien käynnistyminen
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Visual Basic -ohjelmointi
Johtokoodaus Historia, toiminnalliset syyt ja toteutustapojen hintaerot ovat johtaneet eri johtokoodaustapojen kehittämiseen. Hyvälle johtokoodaukselle.
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op ALU.
Väylät Mitä eri väyliä emolevyltä/tietokoneesta voi löytyä ja mitä ominaisuuksia niillä on?
Mittaustekniikka 26 AD-muuntimia Liukuhihna – Pipeline Muunnos tehdään useassa peräkkäisessä pipeline- asteessa, joissa kussakin ratkaistaan joukko bittejä.
Systeemityö 2 Tilakaavio – State machine diagram
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
Mikä on CAN? • CAN (Controller Area Network) on autojen hajautettujen
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Pinon ylivuodon estäminen Mikko Toivonen & Antti Mattila.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Tietokoneiden luokitus E-Commerce 2010: Business, Technology, Society 6e Prentice Hall © 2010.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
Kontrollirakenteet laajemmin
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Sulautettujen järjestelmien varhainen kehitys
Ti Lähiverkot - Erikoistyökurssi Sillat ja kytkimet Toni Helenius & Ville Parviainen
Windows 2000 Jukka Stranden Marko Suhonen Käyttöjärjestelmät Seminaari 2006.
Kovalevy-liitännät Ahti Kare.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Signaalinkäsittelymenetelmät / Kari Jyrkkä
Tietokonejärjestelmät
ATmega128 Tekijät: Aleksi Hemmilä C5418 Tommi Pihlainen C5375
Tietokoneen toiminta (2 ov)
Salvat ja kiikut 1D C1 1D C1 S 1D C1 R 1T C1 1J C1 1K 1J S C1 R 1K
Ohjelman perusrakenteet
Mitä Opiskelijan tulisi tietää lukioon tullessaan
Esityksen transkriptio:

Tietokone-järjestelmät Krister Wikström Helsingin ammattikorkeakoulu Tekniikka 23.4.2003 © Krister Wikström

Krister Wikström Toimisto: B324 Puhelin: 050-3408 462 ja 31083410 Email: krister.wikstrom@stadia.fi Kurssit keväällä 2005: elektroniikan perusteet 2 elektroniikan työt 2 tietokonetekniikkaa eri muodoissa yhtä sun toista muutakin 23.4.2003 © Krister Wikström

Opinto-opas 2004 paljastaa: (sivulla 297) Kaikki mainitut kurssit suoritetaan harjoitustöillä ja kirjallisilla kokeilla. TTXCA01 Tietokonetekniikan perusteet 3 opintoviikkoa II vuoden kurssi TTXCA02 Tietokonejärjestelmät 2 opintoviikkoa III vuoden kurssi TTXCA03 Mikrokontrollerijärjestelmät IV vuoden kurssi Tietokoneen toimintaperiaate, keskusyksikkö, ohjelmointi symbolisella konekielellä, keskusmuisti, syöttö/tulostus, muistihierarkia, suorituskykynäkökohtia, käyttöjärjestelmien peruskäsitteitä Suorituskykynäkökohtia, tietokonearitmetiikka, ohjelmiston ja laitteiston välinen rajapinta Sulautetun mikrokontrolleri-järjestelmän laitteisto- ja ohjelmistotekniikka: mikrokontrolleri, sulautetun järjestelmän määrittely, käyttöjärjestelmäratkaisuja, reaaliaikaisuus, suorituskyky- ja luotettavuusnäkökohtia keskusyksikön rakenne, muistijärjestelmät, tietokoneväylät, prosessoriarkkitehtuurit, 23.4.2003 © Krister Wikström

Tietokonejärjestelmät TXXCA02 toteutus 14 Puitteet: 36 tuntia lähiopetusta 3 tuntia viikossa = 12 viikkoa yksi kirjallinen koe jokin harjoitustyö (mikrokontrollerin ohjelmointia laiteläheisellä C-kielellä) työt ovat erilaisten tilakoneiden toteutuksia tehdään 2-3 opiskelijan ryhmissä 23.4.2003 © Krister Wikström

Mikrokontrollerijärjestelmät TXXCA03 toteutus 12 Puitteet: 36 tuntia lähiopetusta yksi kirjallinen koe jokin harjoitustyö (mikrokontrollerin ohjelmointia laiteläheisellä C-kielellä) työt ovat erilaisten sulautettujen sovellusten toteutuksia: anturien liitäntöjä, moottorien ja näyttöjen ohjausta jne. tehdään 2-3 opiskelijan ryhmissä 23.4.2003 © Krister Wikström

Sisältö: 1. Sulautetut järjestelmät 2. Tietokonearkkitehtuurit 3. Liitännät ja oheispiirit 4. Muistipiirit 5. Ohjelmistotekniikka Sovellusesimerkki Anturit sulautetuissa järjestelmissä 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Perusasioita Elektroniikan tarkoitus on signaalien käsittely Signaaleilla voi olla kaksi muotoa:  Analoginen signaali jatkumo, kuten reaaliluvut; esimerkiksi mikrofonista tuleva jännite Digitaalinen eli numeerinen signaali diskreettiä (erillistä) eli kvantisoitua, kuten murtoluvut Elektroniikka voidaan vastaavasti jakaa kahteen ryhmään: analogiaelektroniikka ja digitaalielektroniikka Tietokone on digitaalielektroninen laite, jonka tarkoitus on digitaalisten signaalien käsittely 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Perusasioita Tietokone on monitoimityökalu Ei paras mahdollinen mihinkään tehtävään Jokainen tehtävä voidaan paremmin hoitaa erikoistyökalulla Parempi ≈ nopeampi, tarvitsee vähemmän sähkötehoa Tietokone on kuitenkin ylivoimaisen joustava ja periaatteessa sopii mihin tehtävään tahansa Erikoistyökalu soveltuu vain tiettyyn tehtävään Tietokone sovitetaan johonkin tehtävään ohjelmoimalla 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Perusasioita Tietokonejärjestelmän perusrakenne: 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Perusasioita Käyttöjärjestelmä: perustoiminto: piilottaa laitteiston epäolennaiset yksityiskohdat (käytännössä lähes kaikki) ja tarjota laitteistoriippumaton rajapinta sovelluksille muita toimintoja: resurssien jako tehtävien (task, thread) tärkeyden mukaisesti, erityisesti reaaliaikakäyttöjärjestelmissä tehtävien välinen tietojenvaihto muut palvelut, kuten tiedostojärjestelmä ja tietoliikenne 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Perusasioita Käyttöjärjestelmä: käyttöjärjestelmä on hyödyllinen, mutta hyöty ilmenee enimmäkseen monimutkaisissa järjestelmissä joissa on useita samanaikaisia tehtäviä käyttöjärjestelmän tarvitsemat resurssit ovat poissa sovelluksilta käyttöjärjestelmä ei ole pakollinen, eikä sitä käytetä yksinkertaisimmissa tapauksissa, jotka itse asiassa muodostavat valtaosan tietokonesovelluksista sulautetut järjestelmät (embedded systems) silloin sovellukset joutuvat suoraan käyttämään laitteistoa laiteläheinen ohjelmointi 23.4.2003 © Krister Wikström

Sulautetut järjestelmät Määritelmä Sulautettu järjestelmä (embedded system) = mikä tahansa elektroninen laite joka sisältää mikro-ohjaimen Siis lähes kaikki sähkölaitteet, varsinaisia tietokoneita lukuunottamatta 23.4.2003 © Krister Wikström

Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Reaktiivinen järjestelmä Sulautetut järjestelmät ovat yleensä reaktiivisia järjestelmiä: Reaktiivinen järjestelmä Ottoja: Heräte Tapahtuma Mittaus Antoja: Vaste (reaktio) Toimenpide Ohjaus 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Terminologiaa Yleinen menetelmä minkä tahansa järjestelmän toiminnallisessa testauksessa: syötetään ottoihin sopiva testisignaali eli heräte (stimulus) heräte aiheuttaa antoihin jonkin vasteen (response) vasteesta voidaan päätellä jotain järjestelmän toiminnasta riippuen siitä, mitä halutaan saada selville käytetään erilaisia herätteitä, joista yleisimmät ovat: sinifunktio taajuusvaste askelfunktio askelvaste impulssi impulssivaste Näillä tutkitaan järjestelmän toimintaa muutostilanteissa transienttiominaisuudet 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Terminologiaa Digitaalisissa järjestelmissä kaikki asiat ovat diskreettejä Siten herätteitä voidaan kutsua tapahtumiksi (event), ja vasteita toimenpiteiksi (action) Tällöin tietokonejärjestelmää kutsutaan reaktiiviseksi järjestelmäksi Suurin osa varsinkin sulautetuista järjestelmistä on luonteeltaan reaktiivisia Kaikki tietokonejärjestelmät eivät ole reaktiivisia, eikä kaikissa tietokonejärjestelmissä voida puhua tapahtumista 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Reaktiivinen järjestelmä Toimintatapa: järjestelmä reagoi tapahtumiin (event) eli herätteisiin stimulus) havaittuaan tapahtuman järjestelmä reagoi eli suorittaa tarvittavat toimenpiteet (action) eli kehittää vasteen (response) sen jälkeen järjestelmä ryhtyy odottamaan uutta tapahtumaa tapahtumaa odottaessaan järjestelmä ei välttämättä tee mitään, vaan voi mennä lepotilaan esimerkiksi tehonkulutuksen minimoimiseksi 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Terminologiaa Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne: 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Automaatiotekniikka Automaatiojärjestelmän perimmäinen tarkoitus on ohjata jonkin prosessin jotain suuretta halutulla tavalla Sangen usein (mutta ei aina) halutaan pitää jokin suure vakiona, esimerkiksi: lämpötila kierrosluku paine Tätä varten on ensin mitattava kyseinen suure anturilla, ja mittauksen sekä jonkin säätöalgoritmin mukaisesti ohjataan toimilaitteella prosessia siten, että suure käyttäytyy halutulla tavalla 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Automaatiotekniikka Klassinen esimerkki: sähkölämmitin, muun muassa silitysrauta prosessi: lämmittimen ympäristö, esimerkiksi huonetila suure: ympäristön lämpötila, joka halutaan pitää vakiona anturi: lämpötila-anturi, joita on vaikka minkälaisia toimilaite: lämmitysvastus ja sitä ohjaava kytkin (rele, kontaktori) säätöalgoritmi; monenlaisia, joista yleisimmät: PID-säätö, klassinen ja yhäti eniten käytetty sumea säätö (fuzzy control), uudempi ja oudompi kaikkein yksinkertaisin mutta varsin toimiva: “bang-bang” 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: kaksi toimintatilaa: lämmittää “täysillä” ( ympäristön lämpötila nousee) tai ei lämmitä lainkaan (ympäristön lämpötila laskee) haluttu lämpötila määritellään ylärajan ja alarajan avulla. Näiden eroa kutsutaan järjestelmän hystereesiksi. tapahtuma E1: lämpötila nousee ylärajalle toimenpide A1: lämmitin pois päältä, lämpötila laskee tapahtuma E2: lämpötila laskee alarajalle toimenpide A2: lämmitin päälle, lämpötila kohoaa 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2 23.4.2003 © Krister Wikström

Ohjelmiston vuokaavio Ohjelmistotekniikka Ohjelmiston vuokaavio sulautetun sovelluksen ohjelmarakenne on aina sama eli päättymätön silmukka Aloitus: C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Päättymätön silmukka: odotellaan tapahtumia Alkuasetukset: ohjausbittien asetukset 23.4.2003 © Krister Wikström

Tietokonejärjestelmät Muunlaiset järjestelmät Kaikki tietokonejärjestelmät eivät ole reaktiivisia, esimerkiksi signaaliprosessori: Digitaalinen signaali-prosessori Digitaalinen ottosignaali eli isokroninen virta peräkkäisiä lukuarvoja Muokattu digitaalinen antosignaali 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: I/O = Input/Output eli otto/anto tai syöttö/tulostus siis yhteydet ympä- ristöön CPU = Central Processing Unit suomeksi prosessori tai suoritin, yksikkö joka suorittaa operaatiot eli toiminnot 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: sama kuin edellinen kuva, mutta vähän eri tavalla piirretty Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta Liitäntäyksiköt Peripherals Ympäristö 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Tietokoneen osat Tarkoitus:  Prosessori: käsittelee tietoa suorittamalla aritmeettisia ja loogisia operaatioita eli “laskutoimituksia”. Kaikki prosessorit ovat nykyään mikroprosessoreja.  Muisti: siellä ovat ohjelmat eli käsittelyohjeet ja käsiteltävät tiedot eli datat. Useita erityyppisiä muisteja käytössä.  I/O-yksiköt: näilla ollaan yhteydessä ympäristöön, siis havaitaan tapahtumia sekä suoritetaan toimenpiteitä. 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin Kolme pääyksikköä tässäkin: 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Prosessori Toiminnallinen lohkokaavio: Datatie Data Path Ohjausyksikkö Käsiteltävä tieto Käsitelty tieto Käskyt eli toimintaohjeet Tilatiedot (takaisinkytkentä) Käsittelyn ohjaus GIGO 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin: 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Mikro-ohjelmointi: mikro-ohjelmointi on paljon käytetty menetelmä toteuttaa ohjausyksikkö tällöin ohjausyksikkö on kuin tietokone tietokoneessa kutakin konekäskyä eli suorittimen käskyä vastaa ohjelmapätkä mikro-ohjelmamuistissa etuna sama joustavuus kuin tietokoneissa ylipäänsä: esimerkiksi uusia konekäskyjä voidaan ottaa käyttöön ilman laitteiston muutoksia toisaalta: ei kaikkein suorituskykyisin tapa toteuttaa ohjausyksikkö 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Käskykanta-arkkitehtuuri ISA: Instruction Set Architecture siis kaikki mitä assembler-ohjelmoinnissa tulee tietää ja tuntea prosessorista: käskyt osoitusmuodot (tässä on villakoiran ydin!) rekisterit C-kielellä tai vastaavalla ohjelmoitaessa ei tarvitse tietää juuri mitään prosessorista laiteläheisessä ohjelmoinnissa tärkein asia on I/O-yksiköiden rekisterit 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Osoitusmuodot konekäskyt ovat tietenkin binäärilukuja, kuten kaikki muukin digitaali- ja tietokonetekniikassa käsky voidaan jakaa kahteen osaan eli bittikenttään: Varsinainen käskykoodi (opcode), kertoo mikä operaatio suoritetaan Osoitteet, eli missä ovat operandit ja mihin tallennetaan tulokset. Tietokoneissa kaksi perusvaihtoehtoa paikan suhteen: rekisterit tai muisti 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Osoitusmuodot Operaatiot ja operandit: kuinka tulkitaan esimerkiksi merkintä ? algebrassa x ja y ovat muuttujia, ohjelmissa taas operandeja algebrassa z on funktio, ohjelmissa taas tulos “+” on itse operaation symbooli, tässä aritmeettinen summa tai Boolen operaatio TAI (OR) RPN-syntaksi (Reverse Polish Notation): esimerkiksi 5*(1+2) merkitään 5 1 2 + *, käytetään joissakin ohjelmointikielissä 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Osoitusmuodot käytännön suorittimissa yhdellä käskyllä tehdään vain yksi operaatio yksi tulos ja 0…2 operandia, siis enintään 3 lukua eli dataa merkittävä poikkeus: VLIW (Very Large Instruction Word) eli leveän käskysanan arkkitehtuuri siinä samassa käskyssä on useita operaatioita, joita varten koneessa on useita toiminnallisia yksiköitä tässä pyritään lisäämään samanaikaisia toimintoja, jotta ehdittäisiin tehdä enemmän samassa ajassa tärkein kysymys osoitusmuodoissa: montako osoitetta tarvitaan??? 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Operaatiot 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta: ALU Op1 Op2 Tulos 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Osoitteet 3 osoitetta  turhan paljon bittejä esimerkiksi, jos muistialue käsittää 64 Ktavua tarvitaan 16-bittisiä osoitteita, eli kolmella osoitteella yhteensä 48 bittiä. Tämä on aivan liikaa! eri arkkitehtuureissa rajoitetaan muistibittien määrää eri konsteilla: akku-arkkitehtuuri: vain yksi osoite, kaksi muuta = sama implisiittinen vakio load/store-arkkitehtuuri: 3 osoitetta, mutta hyvin pieni osoitealue, tyypillisesti vain 32 mahdollista osoitetta pinoarkkitehtuuri: ei osoitetta ollenkaan (oikeammin: yksi implisiittinen vakio-osoite) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Akku-arkkitehtuuri erityinen akkurekisteri, jonka osoite on implisiittinen vakio yksi operandi aina akusta, ja tulos aina akkuun, tarvitaan vain toisen operandin osoite ALU Op1 Op2 Tulos Akkurekisteri Akun lataus Muu rekisteri, muisti tai I/O Akun tallennus 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Load/store-arkkitehtuuri joukko samanarvoisia rekistereitä, tyypillisesti 32 kpl kolme osoitetta, mutta kukin osoite vain 5 bittiä (tässä esimerkissä) operaatiot pelkästään rekistereiden välillä, paitsi load/store-operaatiot ALU Op1 Op2 Tulos Rekisterit Load Store 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Pino-arkkitehtuuri operandit pinomuistin kahdessa päällimmäisessä rekisterissä tulos pinoon päällimmäiseksi ALU Op1 Op2 Tulos Push Pop Pinomuisti LIFO-periaate: Last In - First Out 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Pino-arkkitehtuuri varsinaiset pinokoneet harvinaisia prosessoripiireissä, mutta toiminta-ajatusta ja pino-operaatioita käytetään paljon tietokonetekniikassa C-kääntäjä rakentaa virtuaalisen pinokoneen mille tahansa alustalle - käyttäjä ei tiedä tästä mitään FORTH-ohjelmointikielessä (lähes) kaikki operaatiot (käskyt) ovat eksplisiittisesti pinotyyppisiä, vaikka suoritin ei olekaan pinokone FORTH-kielessä RPN-tyyppinen syntaksi pino-operaatioiden tehostamiseksi monissa prosessoreissa on erityinen rekisteri, pino-osoitin 23.4.2003 © Krister Wikström

SFR: Special Function Registers Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: Atmel AVR kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: Freescale HC08 kahdeksanbittinen CISC-tyyppinen akku-arkkitehtuuri, myös hyvin selkeä selkeyttä lisää sekin, että suorit- timessa on vain yksi ainoa muistialue eli muistiavaruus 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: Microchip PIC16 kahdeksanbittinen RISC-tyyppinen (33 käskyä) akku-arkkitehtuuri, aika hankala akku = W-rekisteri (Working) SFR = Special Function Register eli muut rekisterit, joista osa kuuluu liitäntöihin, ei suorittimeen 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: x86-suoritin x86 tunnetaan myös nimellä IA-32 kuvassa perusrekisterit AH + AL = AX on akkurekisteri punaisella merkityt käytettävissä vain suojatussa toimintatilassa (protected mode) perusrekistereiden lisäksi paljon muitakin rekistereitä tullut mukaan matkan varrella 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: x86-suoritin uudemmissa x86-suorittimissa on lisäksi paljon, paljon muitakin rekistereitä, jotka voidaan jakaa seuraaviin ryhmiin: FP (Floating Point): liukulukulaskentaan liittyvät MMX (MultiMedia eXtensions): SIMD-tyyppisiä rekistereitä (SIMD = Single Instruction Multiple Data) 3DNow!: sama kuin MMX, mutta kilpailijan (AMD) versio MSR (Model Specific Registers): nimensä mukaisesti tietyn suoritintyypin erikoisrekistereitä runsaasti lisätietoja aiheesta löytyy Internetistä Sandpile-sivustosta 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit x86-valmistajia suurimmat ja kauneimmat: Intel AMD omaperäinen: VIA Technologies, keskittynyt pienen tehonkulutuksen suorittimiin ja pieniin emolevyformaatteihin (ITX, Micro-ITX, Nano-ITX) yrittää kovasti: Transmeta, keskittynyt kannettavien laitteiden suorittimiin, omaperäinen sisäinen arkkitehtuuri vain sulautetut sovellukset: STMicroelectronics, esimerkiksi STPC Vega: samalla sirulla Pentium II + USB + Ethernet + IDE-liitäntä + I2C-liitäntä + UART-sarjaportti, kilpailee AMD:n Geode-suoritinperheen kanssa 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Esimerkki: x86-suoritin x86-suorittimessa hyvin runsaasti historiallista painolastia tavattoman monimutkaiset osoitusmuodot x86-assemblerohjelmointi on erittäin haasteellista, useimmille jopa täysin ylivoimaista protected mode-tapauksessa dokumentissa “The Ten Commandments for C Programmers” luonnehditaan x86-arkkitehtuuria sangen osuvasti: This particular heresy bids fair to be replaced by “All the world's a Sun” or “All the world's a 386” (this latter being a particularly revolting invention of Satan), but the words apply to all such without limitation. Beware, in particular, of the subtle and terrible “All the world's a 32-bit machine”, which is almost true today but shall cease to be so before thy resume grows too much longer. 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Nykyinen käytäntö: prosessorin lisäksi kaksiosainen piirisarja (chip set) useita emolevy- formaatteja, ATX yleisin monenlaisia liitäntöjä ja väyliä CPU Korppuasema Sarjaportit RinnakkaisporttiNäppäin/hiiri- liitäntä (PS/2) PCI-väylä DRAM AGP LPC- väylä ATA USB AC97 Pohjoissilta North Bridge Memory Bridge Eteläsilta South Bridge I/O Bridge 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Nykyinen käytäntö: prosessorissa on vain asynkroninen rinnakkaisväylä pohjoissillassa (Intel: Memory Controller Hub) nopeimmat liitännät: muistipiirit grafiikkakortti (AGP = Advanced Graphics Port) eteläsillassa (Intel: Integrated Controller Hub) muut liitännät: ATA-liitäntä: kovalevyt sekä CD- ja DVD-asemat USB-väylä AC97: Audio Codec 97 eli äänipiirin liitäntä LPC: Low Pin Count bus, entisen ISA-väylän muisto 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emot Aikojen kuluessa on kehitelty yhtä jos toistakin: XT ja AT (Advanced Technology): alkuperäiset emoformaatit, ei enää käytössä. Baby AT oli AT:n kutistettu versio ATX (Advanced Technology eXtended): AT:n seuraaja vuodelta 1995, pienempikokoinen, erilainen teholähteen liitin. Mini-ATX ja Micro-ATX kutistettuja versioita LPX ja NLX: hyviä ideoita Inteliltä, mutta ei kaupallista menestystä, ilmeisesti liian kalliita ratkaisuja ITX: taiwanilaisen VIA:n kehittämä, Micro-ITX ja Nano-ITX ovat kaikkein pienikokoisimmat emot BTX (Balanced Technology eXtended): uusin emoformaatti, vasta tulossa, tämäkin Intelin kehittämä 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Uusin versio: BTX-emolevyformaatti ATA-liitäntä korvattu SATA-liitännällä PCI-väylä ja AGP korvattu PCIExpress-liitännöillä uusin muistipiiriliitäntä on DDR 2 edelleen kahden piirin piirisarja 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emot NLX-emot: emolevy helppo irroittaa ja laittaa takaisin ilman muiden korttien ja yksiköiden irroittamista 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emot BTX-emot: jatkokehitelmä ATX-emoille jäähdytykseen huomiota uusi teholähde 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emot Nano-ITX-emo: VIA EPIA N koko 12x12 cm 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit PC-emot Internetistä löytyy tavattomasti PC-tekniikalle omistautuneita nettisivuja, tässä muutama: Motherboards.org: emot PCMechanic Form Factors: emot Tom’s Hardware Guide The PC Guide The Hardware Book: PC-tekniikan liittimet ja kaapelit Wim’s BIOS: BIOS-ohjelmat 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit Teollisuudessa käytettyjä tietokonekorttien formaatteja: VME: enemmän muita kuin PC-kortteja CompactPCI PC/104 EBX epästandardeja valmistajakohtaisia formaatteja: DIMM-PC, esimerkiksi Kontron Xboard 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit CompactPCI: huoltoystävällinen mekaanisesti kestävä 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: kortit pinotaan suoraan päällek- käin ilman emo- levyä tai muuta alustaa koko 9x9,5 cm mekaanisesti jämäkkä, mutta keskeltä työlästä irroittaa moduuleja mekaniikkaa paljon tarjolla 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: todellakin merkittävä korttiformaatti hyllytavarana paljon erilaisia suoritinkortteja, liitäntäkortteja sekä koteloita sun muuta mekaniikkaa kolme standardiversiota: PC/104: alkuperäinen, perustui ISA-väylään, 104- nastainen liitin, josta koko standardin nimikin PC/104-Plus: lisättiin PCI-väylä 120-nastaiseen liittimeen PCI-104: poistettiin ISA-väylä 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: AMD SC520- pohjainen suoritinkortti (Sensoray) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: Digital-Logic MSM855 Pentium M 755 MHz 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: vähän kaikenlaisia teollisuussovelluk- sissa käyttökelpoi- sia liitäntäkortteja esimerkki: servo- moottorin ohjaus- kortti (Ajeco Oy) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit PC/104: ARM-pohjainen suoritinkortti (Technologic Systems) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Koteloja PC/104: valmiita laitekoteloita runsaasti tarjolla, esimerkiksi Parvus DuraChassis 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Koteloja PC/104: Parvus DuraChassis räjäytyskuva 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Koteloja PC/104: kehikko- asennukseen tarkoitettu kotelo (Access) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Koteloja PC/104: kauniita koteloja: Diamond Systems Pandora 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit EBX: todellisia emolevjä koko 203x147 mm 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: WinSystems 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: Digital- Logic 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: Diamond Systems 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Muut PC-kortit Kontron Xboard: SO-DIMM- reunaliitin DIMM-PC- standardi (eräänlainen) 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin: 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Prosessori Yksityiskohtaisempi rakenne: tärkein yksityiskohta: rekisterit rekisterit muodos- tavat ohjelmiston ja laitteiston rajapinnan kaikki vuorovaikutus ohjelman ja koneen välillä tapahtuu yksin- omaan rekistereiden kautta!!!! 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Prosessori Toimintaperiaate: kuin kaksitahtimoottori kaksi toistuvaa toimintavaihetta:  Luetaan käsky muistista  Suoritetaan käsky eli operaatio toiminta periaatteessa sarjamuotoista eli yksi asia kerrallaan, mutta hyvin nopeasti. Aivoissa taas tehdään kukin asia hyvin hitaasti, mutta hyvin, hyvin paljon asioita samanaikaisesti myös prosessoreissa pyritään lisäämään suoritustehoa rinnakkaisilla eli samanaikaisilla toiminnoilla superskalaari- ja VLIW-arkkitehtuurit 23.4.2003 © Krister Wikström

Liitännät Luokitteluperiaatteita: Liitäntätyypit tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väylä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen liitäntöjen ja prosessorin välissä on erilaisia liitäntäyksiköitä 23.4.2003 © Krister Wikström

Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: sama kuin edellinen kuva, mutta vähän eri tavalla piirretty Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta Liitäntäyksiköt Peripherals Ympäristö 23.4.2003 © Krister Wikström

Liitännät Liitäntöjä voidaan myös tarkastella sovelluksen kannalta: Liitäntätyypit Liitäntöjä voidaan myös tarkastella sovelluksen kannalta: kolme hierarkiatasoa: Järjestelmä  laitteiden väliset liitännät Laite  piirilevyjen väliset liitännät Piirilevy  komponenttien väliset liitännät 23.4.2003 © Krister Wikström

 Point-to-point, käytetään toisinaan nimitystä portti (port): Liitännät Liitäntätyypit Väylä vai ei? Yksikkö VÄYLÄ Bus   Point-to-point, käytetään toisinaan nimitystä portti (port): Yksikkö A Yksikkö B 23.4.2003 © Krister Wikström

Liitännät Toimintaperiaate: Väyläliitäntä väylä on usean yksikön välinen yhteinen siirtotie kaikki voivat kuunnella, mutta vain yksi voi lähettää siksi tarvitaan arbitrointia ja keino selvitä törmäyksistä tämän kymysyksen kannalta väylät voidaan jakaa kahteen pääryhmään:  Master-slave-tyyppinen: yksi laite on isäntä, muut orjia  Tasa-arvoinen eli peer-to-peer-tyyppinen: kaikki laitteet ovat yhdenvertaisia, siis tässä suhteessa isäntiä 23.4.2003 © Krister Wikström

Liitännät Master-slave-väylässä: Väyläliitäntä isäntä ohjaa täysin kaikkea väyläliikennettä orjat eivät koskaan ole suoraan yhteydessä toisiinsa, kaikki orjien välinen liikenne tapahtuu vain isännän kautta orja lähettää vain sen jälkeen kun isäntä on pyytänyt lähetystä eli isäntä haluaa lukea jotain orjasta siten törmäyksiä ei oikeastaan voi esiintyä eikä arbitrointia varsinaisesti tarvita 23.4.2003 © Krister Wikström

Liitännät Peer-to-peer-väylässä: Väyläliitäntä törmäykset kuuluvat asian luonteeseen eikä niitä voida välttää; tarvitaan arbitrointia ja keino selvitä törmäyksistä useimmiten arbitrointi sisältyy väylän siirtoprotokollaan käytetään useita eri arbitrointimenetelmiä, esimerkiksi: CSMA/CD: Carrier Sense Multiple Acces/Collision Detect, muun muassa Ethernet-lähiverkko Token Passing: muun muassa Token Ring-lähiverkko Token Passing nykyään epämuodikasta ja vanhanaikaista, CSMA/CD:n tapaiset systeemit eniten käytössä sekä langallisissa että langattomissa verkoissa 23.4.2003 © Krister Wikström

Liitännät CSMA/CD: Arbitrointi kukin yksikkö pystyy havaitsemaan onko jokin muu yksikkö “linjalla” (carrier sense) eivätkä silloin ryhdy lähettämään törmäys tapahtuu kun useat yksiköt toteavat linjan vapaaksi ja ryhtyvät lähettämään jokseenkin samanaikaisesti yksiköt havaitsevat törmäyksen (collision detect), lopettavat lähetyksen ja käynnistävät viiveajastimen viiveen jälkeen yksikkö voi yrittää uudelleen törmänneet yksiköt eivät yritä uudestaan samanaikaisesti, koska viiveen pituus on satunnainen 23.4.2003 © Krister Wikström

Liitännät Token Passing: Arbitrointi yksiköillä on yksi yhteinen “puheenjohtajan nuija” eli token, joka on aina vain yhden yksikön hallussa vain se yksikkö voi lähettää jonka hallussa on token lähetyksen jälkeen token siirtyy jollekin toiselle yksikölle täten törmäyksiä ei periaatteessa voi esiintyä toisaalta seuraavat ongelmatilanteet voivat esiintyä: token katoaa kokonaan useita tokeneita samanaikaisesti mainitut tilanteet on jollakin tavalla hallittava verkkoproto-kollassa 23.4.2003 © Krister Wikström

Liitännät Suorituskykynäkökohtia: Vertailua väylässä törmäyksiin kuluu aikaa, mikä tietenkin huonontaa suorituskykyä eli pienentää väylän tehollista kaistaleveyttä point-to-point-yhteys tehokkaampi, kun törmäyksiä ei voi esiintyä useimmiten järjestelmässä on paljon yksiköitä, joiden on aika ajoin voitava liikennöidä keskenään: väyläliitännnässä vähemmän johtimia N kpl yksikköä tarvitsee (1 + 2 +…+ N-1) kpl point-to-point-yhteyttä, esim. 6 yksikköä tarvitsee 15 yhteyttä 23.4.2003 © Krister Wikström

Liitännät Uusin liitäntäarkkitehtuuri: Uusinta kehitystä yhdistää väyläliitännän ja point-to-point-liitännän edut ja välttää kummankin haitat idea peräisin puhelinkeskustekniikasta: kytkettävät point-to-point-yhteydet; puhelintekniikassa piirikytkentäinen yhteys sekä lanka- että kännykkäpuhelut ovat aina point-to-point-tyyppisiä, järjestelmä kytkee jatkuvan yhteyden kahden tilaajan välille poikkeus: kännyköiden push-to-talk-toimintamuoto, yleinen USA:ssa, siinä käytetään pakettikytkentää IP-protokollan tapaan 23.4.2003 © Krister Wikström

Liitännät Kytkentäverkko Switching Fabric Uusin liitäntäarkkitehtuuri: periaate: Yksikkö Kytkentäverkko Switching Fabric 23.4.2003 © Krister Wikström

Liitännät Uusin liitäntäarkkitehtuuri: Uudempia liitäntöjä kytkentäverkko muodostaa tarpeen mukaan point-to-point-yhteyden kahden yksikön välillä yleinen kehityssuunta tietokone- ja tietoliikennejärjestelmissä, esimerkiksi PCI Express, RapidIO ja InfiniBand 23.4.2003 © Krister Wikström

Liitännät Luokitteluperiaatteita: Liitäntätyypit tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen 23.4.2003 © Krister Wikström

Liitännät Rinnakkain vai sarjassa? Rinnakkaismuoto: Sarjamuoto: Liitäntätyypit Rinnakkain vai sarjassa? Rinnakkaismuoto: kaikki bitit samaan aikaan eri johtimilla Sarjamuoto: kaikki bitit eri aikaan samalla johtimella 23.4.2003 © Krister Wikström

Liitännät Rinnakkaismuoto Ominaisuudet: + nopeampi kuin sarjamuoto (samalla bittinopeudella) – paljon johtimia: paksu kaapeli ja iso liitin – johtimien välillä ylikuulumista – kulkuaikaero eli skew: signaalit etenevät eri vauhtia eri johtimissa rajoittaa siirtoetäisyyttä, kun etäisyys pitenee saapuvat hitaimmat signaalit perille liian myöhään kulkuaikaerot riippuvat kaapelista vaikutus vähenee kun bittinopeutta pienennetään 23.4.2003 © Krister Wikström

Liitännät Prosessorin väylä: Väylät kolmiosainen useimmiten asynkroninen erityisesti muisti- piirien liitäntä lyhyt siirtoetäisyys, mikropiirin tai piirilevyn sisällä 23.4.2003 © Krister Wikström

Liitännät Esimerkiksi klassinen C52: Prosessorin väylä kahdeksanbittinen suoritin, osoite 16 bittiä eli 64K väyläliitäntä voi puuttua kokonaan, mikäli mikro- ohjaimessa on sisäiset muistit A[8..15] AD[0..7] Multipleksoitu data ja osoitteen vähiten merkitsevä tavu Osoitteen eniten merkitsevä tavu Ohjaus- signaalit 23.4.2003 © Krister Wikström

Liitännät Sarjamuoto Ominaisuudet: – hitaaampi kuin rinnakkaismuoto (samalla bittinopeudella) + vähän johtimia: ohut kaapeli ja pieni liitin + ei kulkuaikaeroa, siirtoetäisyydet voivat olla hyvin pitkiä Trendinä siirtyminen rinnakkaismuodosta sarjamuotoon, esimerkiksi ATA  SATA ja PCI  PCI Express 23.4.2003 © Krister Wikström

Liitännät Käytäntö: mikropiirien sisällä: rinnakkaismuoto mikropiirien välillä piirilevyllä: molemmat muodot tapauksesta riippuen laitteen sisällä piirilevyjen välillä: enimmäkseen rinnakkaismuoto, mutta sarjamuotoinen liitäntä yleistyy vauhdikkaasti  SATA ja PCIExpress laitteiden välillä: pääasiassa sarjamuoto, varsinkin pitkillä etäisyyksillä 23.4.2003 © Krister Wikström

Liitännät Luokitteluperiaatteita: Liitäntätyypit tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen 23.4.2003 © Krister Wikström

Liitännät Balansoitu vai balansoimaton? Signaalin muoto tämä kymysys koskee vain langallista siirtoa langallisessa siirrossa tarvitaan aina johdinpari, eli signaalijohdin ja paluujohdin. Informaation lähettäjä ja energialähde Informaation vastaanottaja ja energia-lähteen kuorma Signaali-jännite U Signaalivirta I Paluuvirta 23.4.2003 © Krister Wikström

Liitännät Siirtotapoja: Signaalin muoto useilla signaaleilla voi olla yhteinen paluujohdin. Silloin signaalijännitteet ovat yhteismuotoisia ja siirtotapa on balansoimattomaton. Esimerkkinä PC:n sarjaliitäntä RS-232. balansoidussa eli differentiaalisessa siirrossa jokaisella signaalilla on oma paluujohdin ja signaalijännitteet ovat eromuotoisia: 23.4.2003 © Krister Wikström

Liitännät Kierretty parikaapeli: Balansoitu siirto balansoidussa siirrossa signaalijohdin ja paluujohdin yleensä järjestetään kierrretyksi pariksi: 23.4.2003 © Krister Wikström

Liitännät Käytäntö: Signaalin muoto piirilevyillä lähes aina balansoimaton siirto laitteiden sisällä yleensä samoin sarjamuotoinen siirto laitteiden välillä: useimmiten balansoitu siirto varsinkin pitkillä etäisyyksillä kierretty pari hyvin epäherkkä ulkoisille häiriöille esimerkkejä balansoidusta siirrosta kierretyllä parilla: RS-485 Ethernet 10BaseT ja 100BaseT USB-väylä lukuisat erilaiset kenttäväylät, esimerkiksi CAN 23.4.2003 © Krister Wikström

Liitännät Luokitteluperiaatteita: Liitäntätyypit tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen 23.4.2003 © Krister Wikström

Liitännät Synkroninen vai asynkroninen? Liitäntätyypit digitaalipiirit (sekvenssipiirit) voidaan yleisesti jakaa synkronisiin ja asynkronisiin synkronisessa piirissä kaikki tilan muutokset ovat tahdistettuja johonkin kellosignaaliin, t.s. kiikkujen tilojen muutokset tapahtuvat jokseenkin samaan aikaan asynkronisissa piireissä eri kiikuilla ei ole yhteistä kelloa, vaan muutokset tapahtuvat eri aikaan riippuen piirien viiveistä synkronisuus on suosittua, koska viiveet eivät vaikeuta suunnittelua samassa määrin kuin asynkronisessa piirissä toisaalta, synkronisessa piirissä tapahtuu paljon “tarpeettomia” tilanmuutoksia, mikä kuluttaa turhaan tehoa 23.4.2003 © Krister Wikström

Liitännät Käytäntö: Liitäntätyypit muistipiirien rinnakkaisliitännät usein asynkronisia merkittävä poikkeus: synkroniset muistipiirit SDRAM ja RDRAM (Rambus DRAM) synkronisia rinnakkaisväyliä ja liitäntöjä: PCI-väylä, ATA-liitäntä, AGP-liitäntä, SCSI-väylä sekä GPIB-väylä eli IEEE-488 sarjaliitännät enimmäkseen synkronisia, poikkeuksena muun muassa RS-232-liitäntä 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Tahdistus sarjamuotoisessa siirrossa: sarjamuotoisessa siirrossa avainkysymys on lähettimen ja vastaanottimen tahdistus asynkroninen siirto: siirretään merkkejä, tahdistus merkki kerrallaan, kellosignaalia ei tarvitse siirtää synkroninen siirto: siirretään data ja kello joko erikseen tai dataan yhdistettynä synkroninen siirto voi olla merkkipohjaista mutta ei tarvitse olla synkroninen siirto tehokkaampaa, vähemmän “turhia” bittejä 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Asynkroninen siirto (UART): merkki (5…8 bittiä) kerrallaan merkkien välillä mieli- valtainen tauko, mutta vähintään yksi bitti 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Synkroninen siirto: a) data ja kello eri johtimissa (lyhyet etäisyydet, piirilevyjen sisällä) b) data ja kello yhdistetty samassa johtimessa (pitkät etäisyydet) 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Synkroninen siirto: Manchester-koodi: esimerkki yhdistetystä datasta ja kellosta NRZ-L on pelkkä data 23.4.2003 © Krister Wikström

Liitännät Synkroninen siirto: Sarjaliitännät ja -väylät perustuu useimmiten kehysrakenteeseen, esimerkiksi: monenlaisia kehysrakenteita eri siirtoprotokollissa kehys (frame)  sanoma (message) Flag (Preamble) Control field Data field Flag (Postamble) Aloitus-merkki Ohjauskenttä, yleensä osoite yms. Tietokenttä eli varsinainen sanoma Ohjauskenttä, yleensä virheen-korjaus Lopetus-merkki 23.4.2003 © Krister Wikström

SYNC (tahdistuskenttä) Liitännät Sarjaliitännät ja -väylät Esimerkiksi USB-väylän kehysrakenne: PID = Packet Identifier, kertoo sanoman tyypin CRC = Cyclic Redundancy Code eli tarkistussumma, jolla voidaan havaita siirtovirheet SYNC (tahdistuskenttä) PID 8 bittiä Osoite 7 + 4 bittiä Data 0...1023 tavua CRC 5 bittiä 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Mikropiirien välisiä sarjaväyliä: etu: mikropiirin kotelossa vähemmän nastoja ja piirilevyllä vähemmän johtimia mekaaninen koko pienenee SPI (Serial Peripheral Interface) ja Microwire: yksinkertaisia synkronisia sarjaliitäntöjä, käytetään mikropiirien välillä yhden piirilevyn sisällä IIC eli I2C eli I2C (Inter-IC): synkroninen sarjaväylä, käytetään mikropiirien välillä “yksijohdinväylä”, Dallasin (nykyään Maxim) kehittämä 1-Wire: asynkroninen ja hidas, mutta yksinkertainen, halpa ja suuri siirtoetäisyys (200...300 m tilanteesta riippuen) 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Laitteiden välisiä sarjaväyliä: UART: asynkroninen sarjaliitäntä, mm. PC:n sarjaportti USB: nopea, USB 2.0 480 Mbit/s, melko lyhyt etäisyys IEEE 1394 (FireWire): nopeus samaa luokkaa kuin USB 2.0 (1394a), suurempi siirtoetäisyys ja muitakin eroja. Versiossa 1394b siirtonopeus 800 Mbit/s. Ethernet: ainoa paikallisverkko eli LAN kenttäväylät: teollisuuden eri toimialoilla kehiteltyjä keskinopeita väyliä, joissa pääpaino siirtoetäisyydellä esimerkiksi CAN (autoteollisuus), ProfiBus (automaatiotekniikka) ja LON (rakennustekniikka) 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät SPI/Microwire-liitäntä: neljä johdinta:  Kello: SCK (Serial Clock)  Data: MOSI (Master Out, Slave In)  Data: MISO (Master In, Slave Out)  Piirin valinta: CS (Chip Select) yksi isäntä, useita orjia ei osoitteita eikä varsinaista siirtoprotokollaa isäntä valitsee yhden orjan CS-signaalilla (Chip Select, aktiiivinen nollatilassa) 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät SPI/Microwire-liitännän käyttö: 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät SPI/Microwire-liitännän rekisterit: 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät SPI/Microwire-esimerkkejä: SPI-liitännällä varustettuja piirejä on paljon tarjolla, eritoten monenlaisia muistipiirejä sekä “digitaalisia” antureita esimerkkejä antureista: lämpötila-anturi Maxim kiihtyvyysanturi kulmanopeusanturi 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylä: samalla johtimella siirretään osoite, data (vuorosuuntaisesti) ja väylään liitettyjen piirien syöttöteho väylässä passiivinen ylösveto, piirien antoliitäntä avoin kollektorityyppinen antoliitännät muodostavat yhdessa NOR-funktion johdin lepotilassa looginen 1, aktiivitilassa looginen 0 ykköset ja nollat siirretään eripituisina pulsseina, ei jännitetasoina: lyhyt pulssi = 1 pitkä pulssi = 0 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylä: väylän pituus riippuu siirtonopeudesta, topologiasta ja kaapelista yksinkertaisimman väylän pituus  25 m, parhaassa tapauksessa voidaan päästä jopa  300 m pituuteen 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylän siirtotapa: lepotilassa, kun yksikään piiri ei lähetä mitään, linjajohdin on yläjännitteessä 2V8…6V0 kaikissa antoliitännöissä on avoin kollektori, joten kukin piiri voi ainoastaan vetää linjajohtimen alajännitteeseen  0V 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylän siirtotapa: loogiset nollat ja ykköset ovat eripituisia pulsseja ala- jännitteeseen 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylän ajoitus: ajoituksen perusyksikkö on aikaväli, jossa siis lyhyt pulssi merkitsee loogista ykköstä ja pitkä pulssi loogista nollaa “perusnopeudella” aikavälin kesto on 60 µs…120 µs, ja kahden aikavälin välissä linjan on oltava lepotilassa eli yläjännitteessä vähintään 1 µs ajan. ajoitus riippuu kaapelin pituudesta, pitkällä kaapelilla käytetään hitaampaa ajoitusta eli pitempiä pulsseja monet piirit voivat käyttää nopeampaa overdrive-siirtotapaa, jossa aikavälin kesto on 6 µs…16 µs. 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinpiirit: Maxim Semiconductor valmistaa kattavaa joukkoa yksijohdinliitännällä varustettuja piirejä, esimerkiksi: C52-yhteensopiva mikro-ohjain DS80C400 erilaiset muistipiirit A/D-muuntimet lämpötila-anturit reaaliaikakellot ja ajastimet ohjattavat kytkimet jne. jne. 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Esimerkki: DS2890: yksijohdinliitännällä varustettu 100 k potentiometri, jonka liukua voidaan siirtää 256 eri asentoon 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylän siirtoprotokolla: isäntä kommunikoi orjien kanssa lähettämällä kahdeksanbittisiä komentokoodeja ennen varsinaista kommunikointia isäntä lähettää vähintään 6 aikaväliä kestävän nollauspulssin jokaisella orjalla on yksilöllinen ja ainutkertainen 64-bittinen tunnistekoodi ROM-muistissa 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Yksijohdinväylän komentokoodit: muistikomennot ovat samoja kaikilla piireillä lisäksi piirikohtaisiin toimintohin liittyvät erityiskomennot ennen erityiskomentoja isännän on annettava jokin muistikomento 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Esimerkkinä DS2890-potentiometripiiri: 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä: kaksi johdinta: SDA ja SCL osoite ja data siirtyvät vuorosuuntaisesti SDA-linjassa SCL on kellosignaali siten kyseessä on synkroninen sarjaväylä 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä: kaikkien piirien antoliitännöissä avoin kollektori ja väylän johtimissa ylösvetovastukset 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä: jokaisella piirillä oma osoite, 7 tai 10 bittiä siirtonopeus 100 kbit/s tai 400 kbit/s kahdenlaisia piirejä:  Orjat, jotka eivät voi aloittaa siirtoa  Isännät, jotka todellakin voivat aloittaa siirron väylässä voi olla useita isäntiä, mutta tietenkin vain yksi näistä on kerrallaan aktiivinen 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylän kellotus: kello ja data 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät Siirron aloitus ja lopetus I2C-väylässä: isäntä aloittaa siirron startehdolla ja lopettaa stopehdolla orja ei voi aloittaa siirtoa eikä antaa stopehtoa 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä: tieto siirretään 8 bitin paloina eli yksi tavu kerrallaan, ja vastaanottajan on kuitattava (ACK) jokainen siirretty tavu: isäntä lopettaa siirron stopehdolla ellei orja kuittaa ellei isäntä kuittaa niin orja lopettaa ja poistuu väylältä 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä: isäntä lähettää aina ensin vastaanottajan osoitteen ja siirron suunnan ilmaisevan bitin: 23.4.2003 © Krister Wikström

Sarjaliitännät ja -väylät I2C-väylä, esimerkki: a) tiedon luku orjasta b) tiedon kirjoitus orjaan 23.4.2003 © Krister Wikström

Mikro-ohjaimet Prosessori Yksityiskohtaisempi rakenne: tärkein yksityiskohta: rekisterit kaikki vuorovai- kutus ohjelman ja koneen välil- lä tapahtuu yksin- omaan rekiste- reiden kautta!!!! 23.4.2003 © Krister Wikström

SFR: Special Function Registers Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) 23.4.2003 © Krister Wikström

Mikro-ohjaimet Luokittelu: 23.4.2003 © Krister Wikström

Mikro-ohjaimet Nimityksiä: mikro-ohjain = prosessori + muistipiirit + oheispiirit jaetaan ryhmiin muun muassa sananpituuden mukaan: 8-bittiset, 16-bittiset, 32-bittiset jne. sananpituus (oikeammin leveys): ilmaisee kuinka suuria lukuja prosessori käsittelee yhdellä käskyllä sananpituus ei vaikuta laskentatarkkuuteen, vaan ainoastaan nopeuteen ja sitä kautta suoritustehoon kaikki prosessorit voivat suorittaa kaikkia operaatioita ja laskutoimituksia, mutta 8-bittiset hitaampia kuin 16-bittiset, jne. 23.4.2003 © Krister Wikström

8-bittiset mikro-ohjaimet varsinaisia työjuhtia, suurin osa sulautetuista järjestelmistä 8-bittisiä yleisimmät piiriperheet ja valmistajat: C52: alunperin Intel, nykyään useita valmistajia, joista suurimmat Philips, Atmel, Maxim, Infineon ja Cygnal HC08: Freescale (Motorola) PIC: Microchip, useita eri perheitä AVR: Atmel H8: Renesas (Hitachi + Mitsubishi), useita eri perheitä Z8 ja Z80: Zilog 23.4.2003 © Krister Wikström

16-bittiset mikro-ohjaimet enemmän suorituskykyä mm. ajoneuvoissa yleisimmät piiriperheet ja valmistajat: C166: Infineon ja STMicroelectronics HC12 ja HC16: Motorola H8S: Hitachi 23.4.2003 © Krister Wikström

32-bittiset mikroprosessorit Mikro-ohjaimet 32-bittiset mikroprosessorit useimmiten mikroprosessoreita, joissa erilliset muistipiirit runsaasti suorituskykyä yleisimmät arkkitehtuurit: ARM: ylivoimaisesti eniten käytetty 32-bittinen, useita eri versioita ja valmistajia MIPS: klassinen arkkitehtuuri, hyvä mutta ei yhtä menestynyt kuin ARM PowerPC: Motorola ja IBM, käytetään muun muassa Apple-tietokoneissa ja tietoliikennelaitteissa x86: ikä alkaa jo hieman painaa, mutta silti yhä voimissaan PC-sovelluksissa ja monissa sulautetuissakin 23.4.2003 © Krister Wikström

Muistipiirit Rakenne ja liitännät: Yleistä Bittimäärästä riippumatta muistipaikan sisältöä kutsutaan sanaksi (word) 23.4.2003 © Krister Wikström

Muistipiirit Käyttö: Yleistä binäärilukujen tallennus luvut ovat joko käskyjä tai dataa kussakin muistipaikassa yksi binääriluku eli sana binääriluku koostuu biteistä bitit tallennetaan muistielementteihin eli kennoihin useita erityyppisiä muistielementtejä, joilla erilaiset ominaisuudet osoite: muistipaikan järjestysnumero 23.4.2003 © Krister Wikström

Muistipiirit Tyypillinen tietokoneen muistihierarkia: Yleistä 23.4.2003 © Krister Wikström

Muistipiirit Ihanteellinen muistipiiri, ei toistaiseksi saatavissa: Puolijohdemuistit Ihanteellinen muistipiiri, ei toistaiseksi saatavissa: suuri toimintanopeus olematon hinta ja tehonkulutus luku ja kirjoitus yhtä nopeasti kaikkiin muistipaikkoihin luku- ja kirjoituskertojen lukumäärä ei rajoitettu tieto säilyy kaikissa olosuhteissa kunnes se halutaan muuttaa 23.4.2003 © Krister Wikström

Muistipiirit Kolme pääryhmää: Puolijohdemuistit olennaisin seikka on haihtuvuus tai haihtu- mattomuus toinen yhtä tärkeä asia on kirjoitus- nopeus ja muistin kuluminen kirjoitet- taessa 23.4.2003 © Krister Wikström

Muistipiirit Nimityksiä ja ominaisuuksia: Puolijohdemuistit haihtuva: sisältö katoaa kun käyttöjännite pannaan pois päältä haihtumaton: sisältö säilyy myös ilman käyttöjännitettä kiintomuisti: haihtumaton muisti, josta voidaan vain lukea (ROM, Read Only Memory) PROM: Programmable (ohjelmoitava) ROM, voidaan kirjoittaa, mutta vain yhden kerran EPROM: Eraseable (tyhjennettävä) PROM EEPROM: Electrically Eraseable (sähköisesti tyhjennettävä) PROM 23.4.2003 © Krister Wikström

Muistipiirit Nimityksiä ja ominaisuuksia: Puolijohdemuistit Flash: tietynlaisen rakenteen omaava EEPROM RAM: Random Access Memory, luku-kirjoitusmuisti, suorasaantimuisti, yhtä nopea luku ja kirjoitus NVRAM: nonvolatile RAM, haihtumaton RAM SRAM: Static RAM, nopea luku-kirjoitusmuisti DRAM: Dynamic RAM, tiedon säilymiseksi täytyy virkistää (refresh) tyypillisesti neljän millisekunnin välein. DRAM on hitaampi mutta halvempi kuin SRAM. Virkistys: tieto luetaan ja kirjoitetaan heti takaisin 23.4.2003 © Krister Wikström

Muistipiirit Muistipiirin perusrakenne, ei riipu tyypistä: Puolijohdemuistit Muistipiirin perusrakenne, ei riipu tyypistä: esimerkkinä 256x8 ROM 256 sanaa eli 8-bittinen osoite R- ja W-signaaleja ei tarvita, koska ei voi kirjoittaa 23.4.2003 © Krister Wikström

Muistipiirit Toiminta: Puolijohdemuistit muistielementit eli kennot sijaitsevat 256x8 matriisin solmupisteissä n-bittinen osoite dekoodataan 2n sanajohtimeksi, joista yksi kerrallaan on aktiivinen ja muut lepotilassa aktiivisen sanajohtimen solmupisteissä olevien kennojen tila (sisältö) siirretään bittijohtimilla ulos piiristä eli luetaan lähtöpuskurin kautta OE-signaali valitsee koko muistipiirin, puskurien lähdöt muuten Z-tilassa usean muistipiirin lähdöt voidaan kytkeä suoraan toisiinsa 23.4.2003 © Krister Wikström

Muistipiirit Muistikennot ROM: 23.4.2003 © Krister Wikström

Muistipiirit PROM: Muistikennot Sulake ehjä = bitti on 1 23.4.2003 © Krister Wikström

Muistipiirit EPROM, EEPROM ja flash: Muistikennot muistikenno on kahdella hilalla varustettu avaustyyppinen n-kanava-MOSFET 23.4.2003 © Krister Wikström

Muistipiirit EPROM, EEPROM ja flash: Muistikennot kennon tila riippuu siitä, onko kelluvassa hilassa varausta vaiko eikö 23.4.2003 © Krister Wikström

Muistipiirit EPROM, EEPROM ja flash: Muistikennot käyttö muistimatriisissa 23.4.2003 © Krister Wikström

Muistipiirit EPROM: Muistikennot tyhjentäminen valaisemalla sirua noin 30 minuuttia voimakkaalla ultravioletti- valolla kotelossa lasi-ikkuna, kallista ja tyhjennys hidasta 23.4.2003 © Krister Wikström

Muistipiirit EEPROM: Muistikennot kennossa kaksi transistoria etu: kukin bitti voidaan tyhjentää muista riippumatta haitta: kalliimpi ratkaisu kuin flash, jossa on vain yksi transistori per bitti, uudemmissa jopa vain yksi transistori per kaksi bittiä 23.4.2003 © Krister Wikström

Muistipiirit Käytännön ominaisuuksia: Flashmuistipiirit muisti jaettu lohkoihin (= useita muistipaikkoja), jotka voidaan toisistaan riippumatta tyhjentää ja kirjoittaa uudelleen kirjoitus huomattavasti hitaampaa kuin luku kirjoitus kuluttaa muistia, ja lopuksi ei enää mahdollista kirjoittaa. EEPROM periaatteessa samanlainen, mutta voidaan tyhjentää ja kirjoittaa yksi muistipaikka kerrallaan Flash halvempi kuin EEPROM johtuen muistielementin erilaisesta rakenteesta 23.4.2003 © Krister Wikström

Muistipiirit SRAM: Muistikennot muistikenno on kuudesta transistorista muodostuva kiikku 23.4.2003 © Krister Wikström

Muistipiirit DRAM: Muistikennot muistikenno on konden- saattori ja valintakytkin- transistori 23.4.2003 © Krister Wikström

Muistipiirit DRAM: Muistikennot tilan säästämiseksi kondensaattorit on asetettu reuna pystysuuntaan haastava valmistus- tekniikka, jonka vain harvat piitehtaat hallitsevat 23.4.2003 © Krister Wikström

Muistipiirit Kaksi perustyyppiä, kuten digitaalipiireissäkin: DRAM-piirit Kaksi perustyyppiä, kuten digitaalipiireissäkin:  Asynkroninen eli “tavallinen” DRAM: FPM: Fast Page Mode EDO: Extended Data Out  Synkroninen DRAM: SDR: Single Data Rate - perusnopeus DDR: Dual Data Rate - tuplanopeus DDR II: Quad Data Rate - nelinkertainen nopeus RDRAM: Rambus DRAM- aivan erilainen liitäntä 23.4.2003 © Krister Wikström

Muistipiirit “Tavallinen” SDRAM: SDRAM-piirit 23.4.2003 © Krister Wikström

Muistipiirit DDR I: SDRAM-piirit kaksinkertainen nopeus “tavalliseen” verrattuna samalla kellotaajuudella 23.4.2003 © Krister Wikström

Muistipiirit DDR II: SDRAM-piirit nelinkertainen nopeus “tavalliseen” verrattuna kaksinkertaisella kellotaajuudella 23.4.2003 © Krister Wikström

Muistipiirit DRAM-muistipiirien liitännät: DRAM-piirit historiallisista syistä johtuen DRAM-piireille on vakiintunut erilainen liitäntä osoitelinjojen suhteen osoite on multipleksoitu eli osoitebitit syötetään kahdessa osassa esimerkiksi yhden megabitin muisti- piiri tarvitsee 20 osoitebittiä, mutta piirissä on kuitenkin vain 10 osoitelinjaa A0...A9 23.4.2003 © Krister Wikström

Mikro-ohjaimet Ajoituskaaviot Digitaalipiirien signaalien välisiä riippuvuuksia kuvataan usein ajoituskaavioilla: 23.4.2003 © Krister Wikström

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit lukujakso 23.4.2003 © Krister Wikström

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit kirjoitusjakso 23.4.2003 © Krister Wikström

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit virkistysjakso 23.4.2003 © Krister Wikström

Muistipiirit Muistipiirien vertailutaulukko: Puolijohdemuistit 23.4.2003 © Krister Wikström

Muistipiirit MRAM: Muistikennot muistikenno on magnetoresistiivinen “täplä” 23.4.2003 © Krister Wikström

Muistipiirit Muita uusia muistipiirejä: Muistikennot FRAM: Ferroelectric RAM, tallennus perustuu ferrosähköiseen kiteeseen, useimmiten lyijy-zirkonaatti-titanaattiin (PZT). Tämä on itse asiassa vanha keksintö, joka on otettu uudelleen käyttöön, pääkehittäjä on Ramtron. Uudempi tutkimus keskittyy polymeeripohjaisiin ferrosähköisiin aineisiin. OUM: Ovonics Unified Memory, perustuu faasinmuutoskalvoihin, joita käytetään myös CD-RW-levyissä. Kalvon ominaisuudet muuttuvat lämmön vaikutuksesta, CD-levyissä kyse on heijastusominaisuudesta, OUM-muisteissa taas resistanssista. Pääkehittäjä on Ovonyx. 23.4.2003 © Krister Wikström

Muistipiirit FRAM-muistikennon toimintaperiaate: Muistikennot 23.4.2003 © Krister Wikström

Muistipiirit OUM-muistikennon toimintaperiaate: Muistikennot 23.4.2003 © Krister Wikström

Muistit sulautetuissa järjestelmissä Muistipiirit Muistit sulautetuissa järjestelmissä Käytännön näkökohtia: ohjelmat muuttuvat harvoin jos silloinkaan ohjelma ei saa kadota vaikka laite pannaan pois päältä siispä: ohjelmamuistin tulee olla haihtumaton, kirjoittamista ei paljonkaan tarvita useimmat datat muuttuvat koko ajan siispä: datamuistin tulee olla yhtä nopea luettaessa ja kirjoitettaessa eli RAM-tyyppinen pysyvät datat voidaan tallentaa ohjelmamuistiin 23.4.2003 © Krister Wikström

Muistit sulautetuissa järjestelmissä Muistipiirit Muistit sulautetuissa järjestelmissä Mikro-ohjainten muistit: kaikissa mikro-ohjaimissa enemmän tai vähemmän sisäistä muistia sisäinen datamuisti lähes aina SRAM-tyyppinen sisäinen ohjelmamuisti yhä useammin flashtyyppinen etu: flashmuisti voidaan ohjelmoida vielä sen jälkeen kun komponentti on asennettu piirilevylle, erillistä ohjelmointilaitetta ei tarvita. Kätevää sekä tuotekehittelyssä että kunnossapidossa. 23.4.2003 © Krister Wikström

Keskusyksikkö Prosessori Suoritin Mikro-ohjaimet Tietokoneen osat Kolme päälohkoa: Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Oheis- piirit Ympäristö 23.4.2003 © Krister Wikström

Liitännät Tarkoitus: Yleistä liitäntöjen kautta yhteys ympäristöön kaikissa mikroprosessoreissa aina väyläliitäntä (osoite, data, ohjaussignaalit) pääasiassa muistipiirejä ja erillisiä liitäntäpiirejä varten mikro-ohjaimissa monia sisäisiä liitäntäpiirejä ja niiden kautta erityisiä liitäntöjä väyläliitäntä voi puuttua kokonaan jos mikro-ohjaimessa sisäinen ohjelmamuisti ja datamuisti 23.4.2003 © Krister Wikström

SFR: Special Function Registers Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) 23.4.2003 © Krister Wikström

Liitännät Portit: Liitäntätyyppejä kahdeksan liitäntänastan ryhmää (mikropiirin kotelossa) kutsutaan tavallisesti portiksi nastat kuitenkin riippumattomia toisistaan liitäntänasta toimii binäärisenä otto- tai antoliitäntänä ottoliitäntä: jokin toinen piiri asettaa jännitteen nollaksi tai ykköseksi, ja prosessori voi lukea eli havaita tämän antoliitäntä: prosessori itse asettaa jännitteen ykköseksi tai nollaksi 23.4.2003 © Krister Wikström

Liitännät Analogia-digitaalimuunnin: Liitäntätyyppejä tarvitaan lähes kaikissa sovelluksissa “luonnossa” esiintyvät signaalit yleensä analogisia prosessori taas on digitaalipiiri, joka käsittelee vain digitaalisia signaaleja A/D-muunnin muuntaa analogisen jännitteen digitaaliseksi lukuarvoksi 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Toiminta-ajatus: Analoginen jännite u Jännitteen lukuarvo binäärilukuna x = (x1, x2, x3) LSB (Least Significant Bit): vähiten merkitsevä bitti MSB (Most Significant Bit): eniten merkitsevä bitti 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin 3-bittisen muuntimen ideaalinen ominaiskäyrä: Jännitteen lukuarvo Analoginen ottojännite 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Hyviä ominaisuuksia: tarkkuus: käytännössä vaihtelee 6...24 bittiä nopeus: muunnosviive eli kuinka nopeasti saadaan uusi lukuarvo muutoksen jälkeen, vaihtelee käytännössä sadoista millisekunneista alle nanosekuntiin tarkkuus ja nopeus ovat keskenään ristiriidassa, molempia ei voi saada samanaikaisesti nopea muunnin on epätarkka ja tarkka muunnin on hidas käytössä useita erilaisia rakenteita 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Eniten käytetyt muunnin- tyypit: 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Yleisimmät toimintaperiaatteet: -muunnin (sigma-delta): tarkin mutta hitain, epälineaarisuusvirhettä ei kerta kaikkiaan voi esiintyä toimintatavasta johtuen flashmuunnin: nopein mutta epätarkin, johtuen mikropiirien tuotantoteknologian rajoituksista, ei toimintaperiaatteesta sinällään peräkkäisaproksimaatiomuunnin (SAR, Successive Approximation Register): melko nopea ja melko tarkka, yleisin tyyppi mikro-ohjaimen sisäisenä muuntimena 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Paljonko nopeutta tarvitaan? analogisesta signaaleista otettava näytteitä taajuudella ƒs  2·ƒmax, missä ƒmax on analogisen signaalin spektrin ylärajataajuus tai signaalin kaistanleveys (Nyquistin teoreema) jos näytetaajuus on tätä pienempi, tapahtuu laskostuminen (aliasing), jossa signaaliin ilmestyy “ylimääräisiä” taajuuksia 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Laskostuminen aikatasossa: puolta näytetaajuutta suuremmat taajuudet siirtyvät puolen näytetaajuuden alapuolelle 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Laskostuminen spektrissä: spektrit menevät osittain päällekkäin 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Huonoja ominaisuuksia eli virheitä: useimmat periaatteessa samat kuin analogisissa järjestelmissä ylipäänsä siirrosvirhe (offset error) vahvistusvirhe (gain error) epälineaarisuus (nonlinearity) epämonotonisuus kvantisointivirhe: ei oikeastaan virhe, vaan kuuluu asian luonteeseen 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Siirrosvirhe: Todellinen Ideaalinen Siirros eli offset Jännite Lukuarvo 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Vahvistusvirhe: Todellinen Ideaalinen Vahvistus-virhe Jännite Lukuarvo 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Epälineaarisuus: Todellinen Ideaalinen Epä- lineaarisuus Jännite Lukuarvo 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Epämonotonisuus: Todellinen Epä- monotonisuus Jännite Lukuarvo Ideaalinen 23.4.2003 © Krister Wikström

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Esimerkkinä SAR-muunnin: Rinnakkaismuotoinen lukuarvo Sarjamuotoinen lukuarvo, MSB ensin Valmis 23.4.2003 © Krister Wikström

Digitaali-analogiamuunnin Liitännät Digitaali-analogiamuunnin Toiminta-ajatus: Lukuarvo (binääriluku) Analoginen antojännite 23.4.2003 © Krister Wikström

Digitaali-analogiamuunnin Liitännät Digitaali-analogiamuunnin Yksinkertaisempi toteuttaa kuin A/D-muunnin, esimerkiksi: Vertailu-jännite Kytkin-transistorit Tarkkuus-vastukset Lukuarvo, jonka bitit ohjaavat kytkimiä Anto-jännite 23.4.2003 © Krister Wikström

Digitaali-analogiamuunnin Liitännät Digitaali-analogiamuunnin Pulssinleveysmodulaatio, hyvin yleinen D/A-muunnos-menetelmä: Jännitteen keskiarvo v riippuu pulssisuhteesta tA/T 23.4.2003 © Krister Wikström

Liitännät Ajastin / laskuri yleisin oheispiiri, löytyy kaikista mikro-ohjaimista ajan kuluminen on yleisimpiä tapahtumia reaktiivisissä järjestelmissä ajastin: määrittelee aikavälien pituuksia eli milloin on kulunut tietty aika laskuri: laskee tapahtumien lukumääriä, käytännössä piirin sisäisiä tai ulkoisia pulsseja mikro-ohjaimissa voi olla paljon monipuolisia (ja monimutkaisia) laskureita, käytetään erityisesti sähkömoottorien ohjauksessa 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Ohjelmointikielet mikro-ohjain tarvitsee tietenkin aina ohjelman ohjelma laaditaan jollakin ohjelmointikielellä, joita ovat assembler-kieli sekä erilaiset lausekielet ja skriptikielet assembler: symbolinen konekieli, yksi ohjelmarivi = yksi konekäsky lausekieli: abstraktimpi, koneen yksityiskohdat peitetty, yksi ohjelmarivi  kymmenen konekäskyä skriptikieli: vielä abstraktimpi, yksi ohjelmarivi  satoja konekäskyjä periaatteessa lausekielet ja skriptikielet ovat samanlaisia, mutta niillä on eri sovellusalueet 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Ohjelmointikielet Assembler-esimerkki (yhteenlaskuoperaatio): Konekäsky symbolisessa eli helpommin muistettavassa muodossa Konekäsky on oikeasti binääriluku! 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Sulautetuissa sovelluksissa: Ohjelmointikielet ennen muinoin enimmäkseen assembler-kieltä nykyään enimmäkseen C-kieli isommissa sovelluksissa lisääntyvässä määrin C++ sekä Java löytyy lukematon määrä vähemmän käytettyjä lausekieliä skriptikieliä (esimerkiksi Tcl/Tk, Perl ja Python) ei juurikaan käytetä yksinkertaisissa sulautetuissa sovelluksissa 23.4.2003 © Krister Wikström

Laiteläheinen ohjelmointi C-kielellä Ohjelmistotekniikka Laiteläheinen ohjelmointi C-kielellä lausekielen tarkoitus on tehdä näkymättömiksi laitteiston epäolennaiset yksityiskohdat, eli tehdä asia enemmän abstraktiksi ohjelma on jonkin asian toiminnallinen kuvaus, joka ihannetapauksessa ei lainkaan riipu laitteiston rakenteesta laitteisto eli tietokone on universaalinen ja pystyy teoriassa tekemään mitä hyvänsä käytännössä ei onnistu kokonaan näin hyvin 23.4.2003 © Krister Wikström

Laiteläheinen ohjelmointi C-kielellä Ohjelmistotekniikka Laiteläheinen ohjelmointi C-kielellä Windows-ympäristössä laitteiston peittää alleen käyttöjärjestelmä ja ajurit sulautetuissa sovelluksissa näitä elementtejä ei useinkaan ole silloin joudumme laiteläheiseen ohjelmointiin siinä laitteisto näkyy ohjelmaan rekistereiden kautta eri koneissa erilaiset rekisterit  ohjelmat eivät helposti siirrettävissä koneen rekisterit ja muistikartta tunnettava ohjelmoitaessa 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Projektin vaiheet Missä tahansa suunnitteluprojektissa on kolme päävaihetta:  Verfiointi: Mallinnus Simulointi Testaus (analyysi)  Kuvaus (design entry)  Toteutus (synteesi) Muutokset Synteesi Tuotanto- prosessin tiedot 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Kuvaus- eli määrittelyvaihe: Projektin vaiheet määritellään se, mihin pyritään tärkein ja kriittisin, sillä mitä aikaisemmassa vaiheessa virheitä tehdään, sitä laajemmat haittavaikutukset niillä on enimmäkseen manuaalista työtä, vaikka kyllä työkalujakin löytyy, esimerkiksi: UML (Universal Modelling Language) SDL (System Description Language) erilaiset tilakaavioiden piirto-ohjelmat, esim. IAR VisualState em. työkaluista ei hyötyä yksinkertaisissa tapauksissa 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Toteutusvaihe: Projektin vaiheet määritelmän pohjalta suunnitellaan yksityiskohdat niin että tavoitteisiin päästään ohjelmistoprojekteissa enimmäkseen manuaalista työtä, muuhun suunnitteluun verrattuna sangen vähän automaatiota periaatteessa on olemassa sovelluskehittimiä kuten Delphi, sekä suuri joukko ns. CASE-työkaluja CASE: Computer Aided Software Engineering CASE-työkaluja sangen vähän todellisessa käytössä 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Verifiointivaihe: Projektin vaiheet pyritään varmistamaan että suunniteltu järjestelmä on vaatimusten mukainen menetelmät: simulointi, emulointi ja prototyypin testaus periaattellinen ongelma: vaikka kuinka testaa niin koskaan ei voi tietää onko kaikki viat ja puutteet löydetty ja poistettu testauksessa käytetään elektroniikan mittalaitteita, varsinkin oskilloskooppia ja logiikka-analysaattoria simuloinnin ja emuloinnin päätarkoitus on havaita mitä ohjelma tekee 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Kehitysympäristö ohjelman kirjoitus ja alustava testaus tapahtuu nykyään yleensä kehitysympäristössä (IDE, Integrated Development Environment) tämä on Windows-käyttöliittymä, jossa yhdistyvät seuraavat työkalut: editori kääntäjä (compiler) simulaattori ja mahdollisesti myös emulaattori joukko muita aputoimintoja, esimerkiksi koodianalysaattori ja versioiden hallinta 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Kehitysympäristö tyypillinen kehitysympäristö: Workstation environment 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Kehitysympäristö tyypillinen Windows- pohjainen käyttö- liittymä (Keil uVision2): Projekti-ikkuna Editointi-ikkuna Konsoli-ikkuna 23.4.2003 © Krister Wikström

Ohjelmistotekniikka Ohjelmiston rakenne sulautetun sovelluksen ohjelmarakenne on aina sama eli päättymätön silmukka Aloitus: C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Päättymätön silmukka: odotellaan tapahtumia Alkuasetukset: ohjausbittien asetukset 23.4.2003 © Krister Wikström

SFR: Special Function Registers Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) 23.4.2003 © Krister Wikström

Mikro-ohjain Analog Devices ADuC812 Sovellusesimerkki LED-vilkutin + Virran-rajoitus- vastus Mikro-ohjain Analog Devices ADuC812 LED Invertteri Taajuus 1 Hz 23.4.2003 © Krister Wikström

Reaktiivinen järjestelmä Sovellusesimerkki LED-vilkutin LED-vilkutin on esimerkki reaktiivisesta järjestelmästä: Reaktiivinen järjestelmä Heräte Tapahtuma Mittaus Vaste (reaktio) Toimenpide Ohjaus 23.4.2003 © Krister Wikström

Sovellusesimerkki Toimintatapa: LED-vilkutin järjestelmä reagoi tapahtumiin (event) eli herätteisiin stimulus) havaittuaan tapahtuman järjestelmä reagoi eli suorittaa tarvittavat toimenpiteet (action) eli kehittää vasteen (response) sen jälkeen järjestelmä ryhtyy odottamaan uutta tapahtumaa odottaessaan järjestelmä ei välttämättä tee mitään, vaan voi mennä lepotilaan esimerkiksi tehonkulutuksen minimoimiseksi 23.4.2003 © Krister Wikström

Reaktiivinen järjestelmä Sovellusesimerkki Reaktiivinen järjestelmä Lähtökohtia: suunnittelutyössä tulee aina ensimmäiseksi selvittää mitkä ovat tapahtumat ja mitkä ovat niitä vastaavat toimenpiteet seuraavaksi mietitään kuinka tapahtumat havaitaan ja kuinka toimenpiteet saadaan aikaan havaitseminen liittyy ottoihin ja toimenpiteet liittyvät antoihin toimenpiteet yleensä edellyttävät laitteiston ohjaamista tavalla jos toisellakin 23.4.2003 © Krister Wikström

Reaktiivinen järjestelmä Sovellusesimerkki Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: kaksi toimintatilaa: lämmittää “täysillä” ( ympäristön lämpötila nousee) tai ei lämmitä lainkaan (ympäristön lämpötila laskee) tapahtuma E1: lämpötila nousee ylärajan yli toimenpide A1: lämmitin pois päältä, lämpötila laskee tapahtuma E2: lämpötila laskee alarajan alle toimenpide A2: lämmitin päälle, lämpötila kohoaa 23.4.2003 © Krister Wikström

Reaktiivinen järjestelmä Sovellusesimerkki Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2 23.4.2003 © Krister Wikström

Loistediodin vilkutus Sovellusesimerkki Loistediodin vilkutus Toimintaperiaate: loistediodissa näkyy valo kun diodi on myötäsuuntainen eli virta kulkee esimerkkikytkennässä virta kulkee kun invertterin antojännite on nolla, ja ei kulje kun antojännite on ykkönen valon tulee vilkkua 1 Hz taajuudella, eli valo on toistuvasti ensin päällä 500 ms ja sitten poissa päältä 500 ms, jne. havaittava tapahtuma on siis 500 ms ajan kuluminen suoritettava toimenpide on antoliitäntänastan loogisen tilan invertointi jokaisen tapahtuman jälkeen 23.4.2003 © Krister Wikström

Sovellusesimerkki Valon ohjaaminen: LED-vilkutin LEDi on liitetty mikro-ohjaimen johonkin I/O-nastaan invertterin kautta kaikkia I/O-nastoja ohjataan 8-bittisillä porttirekistereillä kukin rekisteri ohjaa yhtä porttia, eli kahdeksan I/O-nastan ryhmää kukin rekisterin bitti ohjaa erikseen ja muista riippumatta vastaavan portin yhtä I/O-nastaa siten I/O-nastaa ohjataan asettamalla sitä vastaava ohjausrekisterin bitti arvoon ‘1’ tai ‘0’ 23.4.2003 © Krister Wikström

Sovellusesimerkki Valon ohjaaminen: LED-vilkutin tässä tapauksessa kohdejärjestelmä on ADuC812-mikro-ohjaimen kokeilukortti kokeilukortin piirikaaviosta tulee ensin selvittää täsmälleen mihin mikro-ohjaimen I/O-nastaan LEDi on liitetty (invertterin kautta) tämä on nasta, jonka nimi on P3.4, siis nasta 4 portissa 3 HUOM: P3.4 on I/O-nastan symbolinen nimi, kun taas mikropiirin kotelossa mainitun nastan numero on 22 ohjelmoinnissa käytetään vain symbolisia nimiä 23.4.2003 © Krister Wikström

Sovellusesimerkki ADuC812 liitännät: P3.4 LED-vilkutin 23.4.2003 © Krister Wikström

Sovellusesimerkki Valon ohjaaminen: + LED-vilkutin täten saadaan seuraava asetelma: b7 b6 b5 b4 b3 b2 b1 b0 p7 p6 p5 p4 p3 p2 p1 p0 Portin 3 ohjausrekisteri Portin 3 liitäntänastat + Rekisterin bitti 4 ohjaa portin 3 liitäntänastaa 4 Nasta 22 mikro-ohjaimen kotelossa 0xB0 23.4.2003 © Krister Wikström

Sovellusesimerkki Ohjausbittien asettaminen: LED-vilkutin ohjausbittien arvo asetetaan kirjoittamalla ohjelmasta käsin vastaavaan rekisteriin jokaisella rekisterillä on tietty absoluuttinen osoite mikro-ohjaimen muistikartassa C-kielessä käytetään pointtereita viittaamaan haluttuihin osoitteisiin, ja näin voitaisiin menetellä tässäkin tapauksessa. ohjelmoinnin helpottamiseksi lähes kaikissa sulautettujen sovellusten C-kääntäjissä on erityisiä mekanismeja laiteriippuvaisten yksityiskohtien hallintaan kukin rekisteri ja joissakin rekistereissä kukin bitti määritellään erityisenä epästandardina muuttujatyppinä 23.4.2003 © Krister Wikström

Sovellusesimerkki Ohjausbittien asettaminen: LED-vilkutin tällöin bitille voidaan antaa arvo ‘1’ tai ‘0’ soveltamalla C-kielen normaalia sjoituslausetta kyseiseen muuttujaan näin koodaus on helpompaa, mutta vastapainona laiteriippuvuus lisääntyy mainitut epästandardit muuttujatyypit ovat kääntäjäkohtaisia. Mikäli koodi halutaan kääntää toisella kääntäjällä joudutaan väistämättä muokkaamaan I/O-toimintoja toisaalta, K&R:n alkuperäisessä C-kielessä ei ollut lainkaan I/O-toimintoja 23.4.2003 © Krister Wikström

Sovellusesimerkki C-kääntäjät: LED-vilkutin C-kielen virallinen standardi on ANSI C (ANSI = American National Standards Institute) kaikissa C-kääntäjissä on kuitenkin myös epästandardeja ominaisuuksia, joita tarvitaan kohdejärjestelmän laitteiston hallintaan mainitut ominaisuudet helpottavat ohjelmointia, mutta valitettavasti samalla vaikeuttavat toteutusten siirtoa ympäristöstä toiseen. 23.4.2003 © Krister Wikström

Sovellusesimerkki C-kääntäjät: LED-vilkutin mainitut epästandardit piirteet liittyvät pääasiassa seuraaviin asioihin: syöttö ja tulostus: alunperin C-kielessä ei lainkaan määritelty syöttö- ja tulostustoimintoja muuttujatyypit: laiteläheisessä ohjelmoinnissa on hyödyllistä määritellä muitakin muuttujatyyppejä kuin mitä ANSI C tuntee keskeytykset: keskeytysmekanismit ovat täysin laitekohtaisia ja siksi ANSI C:ssä ei voi huomioida keskeytyksiä muistikartat: eri mikro-ohjaimilla voi olla hyvinkin erilaiset muistikartat, mikä täytyy huomioida kääntäjissä 23.4.2003 © Krister Wikström

Sovellusesimerkki LED-vilkutin Muuttuja- tyypit Keil C51 C-kääntä- jässä: 23.4.2003 © Krister Wikström

Sovellusesimerkki Muuttujatyypit Keil C51 C-kääntäjässä: LED-vilkutin tärkeimmät epästandardit muuttujatyypit ovat: sfr: viittaa 8 bitin rekisteriin mikro-ohjaimessa sfr16: viittaa 16 bitin rekisteriin mikro-ohjaimessa sbit: viittaa yhteen bittiin jossakin mikro-ohjaimen rekisterissä HUOM: nämä ovat muuttujien määrittelyissä käytettyjä attribuutteja rekistereiden ja bittien nimet tulee tietenkin liittää vastaaviin laiteosoitteisiin tiettyä kääntäjäkohtaista syntaksia käyttäen 23.4.2003 © Krister Wikström

Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: tässä sovelluksessa tarvitaan muuttuja, joka viittaa portin 3 ohjausrekisterin bittiin 4 mikro-ohjaimen datalehdestä löytyvästä rekisterikartasta voidaan havaita että portin nimi on P3 ja absoluuttinen osoite on 0xB0 tällöin Keilin C-kääntäjässä koko rekisteriin P3 viittaavan muuttujan määrittelylause on: sfr P3 = 0xB0; 23.4.2003 © Krister Wikström

Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: emme kuitenkaan halua viitata kaikkiin kahdeksaan bittiin samanaikaisesti, vaan ainoastaan bittiin 4 rekisterissä P3 tarvitsemme siis muuttujan, joka viittaa vain yhteen bittiin Keilin C-kääntäjässä määrittelylause on: sbit P3_4 = P3^4; muuttuja P3 on tietenkin määriteltävä ensin 23.4.2003 © Krister Wikström

Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: useimmiten ei itse tarvitse vaivautua kirjoittamaan mainittuja rekisterimuuttujien määrittelyjä kääntäjän mukana seuraa koko joukko valmiita määrittelyjä header-tiedostoina (*.h) näitä löytyy useimmiten INC-nimisestä kansiosta, esimerkiksi C:\Keil\C51\INC header-tiedosto tulee liittää (include) käännökseen, esim. #include <Reg52.h> HUOM: ei puolipistettä lauseen lopussa! 23.4.2003 © Krister Wikström

Sovellusesimerkki Käyttöesimerkkejä: LED-vilkutin käyttäen edellä selitettyjä määrittelyjä voimme nyt helposti ohjata LEDin valoa antamalla sopivia arvoja sbit-tyyppiselle muuttujalle P3_4. Tähän käytetään C-kielen sijoituslausetta: P3_4 = 1; // laittaa valon PÄÄLLE P3_4 = 0; // laittaa valon POIS PÄÄLTÄ P3_4 ^= 1; // INVERTOI valon P3_4 = !P3_4; // tämäkin INVERTOI valon 23.4.2003 © Krister Wikström

Sovellusesimerkki Ajan mittaaminen: LED-vilkutin valon ohjaamisen lisäksi tulee havaita tapahtuma, eli 500 millisekunnin kuluminen aikavälejä mitataan ajastimia käyttäen “tavallisessa” C52-mikro-ohjaimessa on kolme ajastinta, joiden nimet ovat T0, T1 ja T2. Kehittyneemmissä malleissa on runsaasti muitakin ajastimia. T2 on monipuolisin mainituista kolmesta ajastimesta, joten sitä on syytä käyttä tässä sovelluksessa 23.4.2003 © Krister Wikström

Sovellusesimerkki Ajastin T2: LED-vilkutin ajastimen toimintoja ohjatan rekisterillä, jonka nimi on T2CON rekisterissä on sekä ohjaus- että tilabittejä tilabittien avulla ohjelma saa tiedon tapahtumista, joko pollaamalla eli toistuvasti lukemalla tilabittejä, tai käyttäen keskeytyksiä. tässä sovelluksessa tärkein tilabitti on ylivuotobitti TF2 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin 23.4.2003 © Krister Wikström

Sovellusesimerkki LED-vilkutin Timer 2 control register T2CON: 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 toiminta: LED-vilkutin periaatteessa T2 on 16-bittinen laskuri, joka koostuu rekistereistä T2L (vähiten merkitsevä tavu) ja T2H (eniten merkitsevä tavu) laskuri laskee kellopulsseja kellosignaali voi olla ulkoinen, siis I/O-nastaan T2EX liitetty kanttiaalto, tai mikro-ohjaimen kellosta muodostettu sisäinen kellosignaali. tässä sovelluksessa käytetään sisäistä kelloa kokeilukortilla mikro-ohjaimen kellotaajuus on 12 MHz, ja ajastimen kello saadaan jakamalla tämä kahdellatoista siten ajastin T 2 laskee yhden mikrosekunnin aikavälejä 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 toiminta: LED-vilkutin n-bittinen ylöslaskuri laskee nollasta lukuun 2n-1 eli tässä tapauksessa 0  216-1 = 65535 maksimiarvoa 65535 seuraavalla kellopulssilla laskurissa tapahtuu ylivuoto, ja laskuri aloittaa uudelleen alusta eli nollasta siten 1 µs kellojaksolla laskurin kierros kestää tasan 65,535 millisekuntia, eikä pelkällä ajastimella siis voida mitata sen pitempiä aikavälejä pitempien aikojen kuten 500 ms mittaamiseksi tarvitaan ajastimen ja ohjelmallisen laskurin yhdistelmä 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 toiminta: LED-vilkutin ajastin T2 voidaan laittaa mittaamaan esimerkiksi 50 ms aikavälejä. Sitten lasketaan kymmenen ylivuotoa ohjelmallisesti, jolloin saadaan kaikkiaan 500 ms. ajastimen T2 kierrosta voidaan lyhentää maksimiarvostaan 65536 käyttämällä ajastimen auto reload-toimintamuotoa tällöin ylivuodon jälkeen ajastin ei aloita nollasta, vaan sen sijaan jostain suuremmasta luvusta, jolloin kierros tietenkin lyhenee haluttaessa 50000 kellopulssin mittainen kierros, tulee ylivuodon jälkeen tietenkin aloittaa luvusta 216-50000 = 15535 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin aluksi on asetettava ajastimen lohkokaaviossa näkyvät kolme valintakytkintä sopiviin asentoihin T2CON-rekisterin bitit ohjaavat mainittuja kytkimiä. Tässä tapauksessa sopiva toimintatapa valitaan asettamalla C/T2 = 0, TR2 = 1 ja EXEN2 = 0. auto reload-toiminnossa ylivuodon tapahtuessa rekisterin RCAP2L sisältö kirjoitetaan automaattisesti rekisteriin T2L ja the rekisterin RCAP2H sisältö vastaavasti rekisteriin T2H siten ylivuodon jälkeen ajastin T2 ei aloitakaan nollasta, vaan lukuarvosta rekistereissä RCAP2L + RCAP2H 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin siten kirjoittamalla lukuarvo –50000 rekistereihin RCAP2L + RCAP2H saadaan ajastimen kierrokseksi 50000 kellojaksoa eli 50 ms 1 MHz kellolla mainittu arvo tarvitsee kirjoittaa vain kerran, sillä jokaisen rekisterin sisältö säilyy kunnes rekisteriin kirjoitetaan muuta ohjelmasta käsin voidaan havaita 50 ms kuluminen pollaamalla ylivuotobittiä TF2 ylivuodon jälkeen TF2 asettuu automaattisesti arvoon ‘1’ ohjelmassa täytyy nollata TF2 ylivuodon jälkeen, muutenhan seuraavaa ylivuotoa ei voi havaita 23.4.2003 © Krister Wikström

Sovellusesimerkki Timer 2 auto reload mode: 216-1 RCAP2 LED-vilkutin 216-1 RCAP2 Ylivuodon tapahtuessa: TF2 = 1 T2 ladataan RCAP2-rekisteristä 23.4.2003 © Krister Wikström

Sovellusesimerkki Ohjelmallinen laskuri: LED-vilkutin 500 ms aika voidaan mitata 8 bittisellä muuttujalla nimeltään count (tai jotain), jota kasvatetaan yhdellä aina kun ajastimessa T2 tapahtuu ylivuoto (mikä puolestaan tapahtuu 50 ms välein) 500 ms on kulunut silloin kun muuttujan count arvo on kasvanut alkuarvosta 0 loppuarvoon 10 tällöin invertoidaan LEDiä ohjaava I/O-nasta, ja se on siinä! Lisäksi count tulee nollata uutta laskentakierrosta varten. 23.4.2003 © Krister Wikström