Tietokone-järjestelmät

Slides:



Advertisements
Samankaltaiset esitykset
1. Missä vietät joulun useimmiten?. 2. Missä viettäisit joulun mieluiten?
Advertisements

Juha Kauppinen Consulting oy Työntekijäkysely Tietoja
CAN-VÄYLÄ AUTOISSA.
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
Muistit, apumuisti, cd-, dvd-levyt ja asemat, USB-muisti
Esiopetuksen huoltajat 2014 Generated on :41.
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
CD-ROM-asema mikrossa
Kuinka rakentaa tietokone itse
PC:n JA OHEISLAITTEIDEN PERUSTEITA
Luku 2 – Tietoliikenteen tekniikka
VMware workstation. VMware •Virtual Machine •Yhtiö perustettu vuonna 1998 •1999 julkaisi ensimmäisen tuotteen: VMware for workstations •2001 tuli VMware.
Pelaajakysely Tampereen piirin pelaajille 2013 TKT.
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.
Langattomien laitteiden matematiikka 1
Perusopetuksen huoltajat 2014 Generated on :04.
@ 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)
Tietokone-järjestelmät
Perusopetuksen oppilaat 2014 Generated on :03.
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.
1 Raha-asioiden suunnitteleminen ja nykyinen rahatilanne Senioritutkimus 2011.
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
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Aritmeettinen jono jono, jossa seuraava termi saadaan edellisestä lisäämällä sama luku a, a + d, a+2d, a +3d,… Aritmeettisessa jonossa kahden peräkkäisen.
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ä.
Mikä on CAN? • CAN (Controller Area Network) on autojen hajautettujen
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
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Ä.
Suomen Lääkäriliitto | Finnish Medical AssociationLääkärit Suomessa | Physicians in Finland Tilastotietoja lääkäreistä ja terveydenhuollosta 2014 Statistics.
Vaasan yliopisto Tietojenkäsittely TiTe.1020 Tietokoneiden luokitus E-Commerce 2010: Business, Technology, Society 6e Prentice Hall © 2010.
1. Missä vietät joulun useimmiten?. 2. Missä viettäisit joulun mieluiten?
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Apteeraussimulaattori metsäsuunnittelun apuvälineenä Tilannekatsaus Lauri Kuusisto.
Tietokoneen rakenne matalalla tasolla KYMENLAAKSON AMMATTIKORKEAKOULU Jarkko Ansamäki, kevät 2002.
Kontrollirakenteet laajemmin
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Sulautettujen järjestelmien varhainen kehitys
Kovalevy-liitännät Ahti Kare.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Tietokonejärjestelmät
ATmega128 Tekijät: Aleksi Hemmilä C5418 Tommi Pihlainen C5375
Salvat ja kiikut 1D C1 1D C1 S 1D C1 R 1T C1 1J C1 1K 1J S C1 R 1K
Esityksen transkriptio:

Tietokone-järjestelmät

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

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

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

Tietokonejärjestelmät Perusasioita Tietokonejärjestelmän perusrakenne:

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

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

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

Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo

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

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

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

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

Tietokonejärjestelmät Terminologiaa Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne:

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

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”

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

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

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

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

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

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ö

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ä.

Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin Kolme pääyksikköä tässäkin:

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

Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin:

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ö

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

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

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ä

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???

Tietokonearkkitehtuurit Operaatiot 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta: ALU Op1 Op2 Tulos

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)

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

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

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

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

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)

Tietokonearkkitehtuurit Esimerkki: Atmel AVR kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva

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

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

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

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

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

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.

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

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

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ä

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

Tietokonearkkitehtuurit PC-emot NLX-emot: emolevy helppo irroittaa ja laittaa takaisin ilman muiden korttien ja yksiköiden irroittamista

Tietokonearkkitehtuurit PC-emot BTX-emot: jatkokehitelmä ATX-emoille jäähdytykseen huomiota uusi teholähde

Tietokonearkkitehtuurit PC-emot Nano-ITX-emo: VIA EPIA N koko 12x12 cm

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

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

Tietokonearkkitehtuurit Muut PC-kortit CompactPCI: huoltoystävällinen mekaanisesti kestävä

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

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ä

Tietokonearkkitehtuurit Muut PC-kortit PC/104: AMD SC520- pohjainen suoritinkortti (Sensoray)

Tietokonearkkitehtuurit Muut PC-kortit PC/104: Digital-Logic MSM855 Pentium M 755 MHz

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)

Tietokonearkkitehtuurit Muut PC-kortit PC/104: ARM-pohjainen suoritinkortti (Technologic Systems)

Tietokonearkkitehtuurit Koteloja PC/104: valmiita laitekoteloita runsaasti tarjolla, esimerkiksi Parvus DuraChassis

Tietokonearkkitehtuurit Koteloja PC/104: Parvus DuraChassis räjäytyskuva

Tietokonearkkitehtuurit Koteloja PC/104: kehikko- asennukseen tarkoitettu kotelo (Access)

Tietokonearkkitehtuurit Koteloja PC/104: kauniita koteloja: Diamond Systems Pandora

Tietokonearkkitehtuurit Muut PC-kortit EBX: todellisia emolevjä koko 203x147 mm

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: WinSystems

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: Digital- Logic

Tietokonearkkitehtuurit Muut PC-kortit EBX esimerkki: Diamond Systems

Tietokonearkkitehtuurit Muut PC-kortit Kontron Xboard: SO-DIMM- reunaliitin DIMM-PC- standardi (eräänlainen)

Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin:

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!!!!

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

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ä

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ö

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

 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

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ä

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

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

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

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

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ä

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

Liitännät Kytkentäverkko Switching Fabric Uusin liitäntäarkkitehtuuri: periaate: Yksikkö Kytkentäverkko Switching Fabric

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

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

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

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

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ä

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

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

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ä

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

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

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:

Liitännät Kierretty parikaapeli: Balansoitu siirto balansoidussa siirrossa signaalijohdin ja paluujohdin yleensä järjestetään kierrretyksi pariksi:

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

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

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

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ä

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ä

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

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)

Sarjaliitännät ja -väylät Synkroninen siirto: Manchester-koodi: esimerkki yhdistetystä datasta ja kellosta NRZ-L on pelkkä data

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

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ä

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)

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)

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)

Sarjaliitännät ja -väylät SPI/Microwire-liitännän käyttö:

Sarjaliitännät ja -väylät SPI/Microwire-liitännän rekisterit:

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

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

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

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

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

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.

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.

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

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

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

Sarjaliitännät ja -väylät Esimerkkinä DS2890-potentiometripiiri:

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ä

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

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

Sarjaliitännät ja -väylät I2C-väylän kellotus: kello ja data

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

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ä

Sarjaliitännät ja -väylät I2C-väylä: isäntä lähettää aina ensin vastaanottajan osoitteen ja siirron suunnan ilmaisevan bitin:

Sarjaliitännät ja -väylät I2C-väylä, esimerkki: a) tiedon luku orjasta b) tiedon kirjoitus orjaan

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

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)

Mikro-ohjaimet Luokittelu:

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.

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

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

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

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

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

Muistipiirit Yleistä Tyypillinen tietokoneen muistihierarkia:

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

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

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

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

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

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

Muistipiirit Muistikennot ROM:

Muistipiirit Muistikennot PROM: Sulake ehjä = bitti on 1

Muistipiirit EPROM, EEPROM ja flash: Muistikennot muistikenno on kahdella hilalla varustettu avaustyyppinen n-kanava-MOSFET

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

Muistipiirit EPROM, EEPROM ja flash: Muistikennot käyttö muistimatriisissa

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

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ä

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

Muistipiirit SRAM: Muistikennot muistikenno on kuudesta transistorista muodostuva kiikku

Muistipiirit DRAM: Muistikennot muistikenno on konden- saattori ja valintakytkin- transistori

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

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ä

Muistipiirit SDRAM-piirit “Tavallinen” SDRAM:

Muistipiirit DDR I: SDRAM-piirit kaksinkertainen nopeus “tavalliseen” verrattuna samalla kellotaajuudella

Muistipiirit DDR II: SDRAM-piirit nelinkertainen nopeus “tavalliseen” verrattuna kaksinkertaisella kellotaajuudella

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

Mikro-ohjaimet Ajoituskaaviot Digitaalipiirien signaalien välisiä riippuvuuksia kuvataan usein ajoituskaavioilla:

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit lukujakso

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit kirjoitusjakso

Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit virkistysjakso

Muistipiirit Puolijohdemuistit Muistipiirien vertailutaulukko:

Muistipiirit MRAM: Muistikennot muistikenno on magnetoresistiivinen “täplä”

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.

Muistipiirit Muistikennot FRAM-muistikennon toimintaperiaate:

Muistipiirit Muistikennot OUM-muistikennon toimintaperiaate:

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

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.

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

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

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)

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

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

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

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin 3-bittisen muuntimen ideaalinen ominaiskäyrä: Jännitteen lukuarvo Analoginen ottojännite

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

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Eniten käytetyt muunnin- tyypit:

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

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

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Laskostuminen aikatasossa: puolta näytetaajuutta suuremmat taajuudet siirtyvät puolen näytetaajuuden alapuolelle

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Laskostuminen spektrissä: spektrit menevät osittain päällekkäin

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

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Siirrosvirhe: Todellinen Ideaalinen Siirros eli offset Jännite Lukuarvo

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Vahvistusvirhe: Todellinen Ideaalinen Vahvistus-virhe Jännite Lukuarvo

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Epälineaarisuus: Todellinen Ideaalinen Epä- lineaarisuus Jännite Lukuarvo

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Epämonotonisuus: Todellinen Epä- monotonisuus Jännite Lukuarvo Ideaalinen

Analogia-digitaalimuunnin Liitännät Analogia-digitaalimuunnin Esimerkkinä SAR-muunnin: Rinnakkaismuotoinen lukuarvo Sarjamuotoinen lukuarvo, MSB ensin Valmis

Digitaali-analogiamuunnin Liitännät Digitaali-analogiamuunnin Toiminta-ajatus: Lukuarvo (binääriluku) Analoginen antojännite

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

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

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

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

Ohjelmistotekniikka Ohjelmointikielet Assembler-esimerkki (yhteenlaskuoperaatio): Konekäsky symbolisessa eli helpommin muistettavassa muodossa Konekäsky on oikeasti binääriluku!

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

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

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

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

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

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ä

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

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

Ohjelmistotekniikka Kehitysympäristö tyypillinen kehitysympäristö: Workstation environment

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

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

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)

Mikro-ohjain Analog Devices ADuC812 Sovellusesimerkki LED-vilkutin + Virran-rajoitus- vastus Mikro-ohjain Analog Devices ADuC812 LED Invertteri Taajuus 1 Hz

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

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

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

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

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

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

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’

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ä

Sovellusesimerkki LED-vilkutin ADuC812 liitännät: P3.4

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

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ä

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

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.

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ä

Sovellusesimerkki LED-vilkutin Muuttuja- tyypit Keil C51 C-kääntä- jässä:

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

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;

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

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!

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

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

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

Sovellusesimerkki LED-vilkutin Timer 2 auto reload mode:

Sovellusesimerkki LED-vilkutin Timer 2 control register T2CON:

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ä

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ä

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

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

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

Sovellusesimerkki Timer 2 auto reload mode: 216-1 RCAP2 LED-vilkutin 216-1 RCAP2 Ylivuodon tapahtuessa: TF2 = 1 T2 ladataan RCAP2-rekisteristä

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.