2.47k likes | 2.98k Views
Tietokone-järjestelmät Krister Wikström Helsingin ammattikorkeakoulu Tekniikka. 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
E N D
Tietokone-järjestelmät Krister WikströmHelsingin ammattikorkeakouluTekniikka © 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 © Krister Wikström
Opinto-opas 2004 paljastaa: (sivulla 297) Kaikki mainitut kurssit suoritetaan harjoitustöillä ja kirjallisilla kokeilla. keskusyksikön rakenne, muistijärjestelmät, tietokoneväylät, prosessoriarkkitehtuurit, © 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ä © 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ä © 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ä © 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 © 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 © Krister Wikström
Tietokonejärjestelmät Perusasioita Tietokonejärjestelmän perusrakenne: © 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 © 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 © 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 © Krister Wikström
Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo © Krister Wikström
Reaktiivinen järjestelmä Ottoja:HeräteTapahtumaMittaus Antoja:Vaste (reaktio)ToimenpideOhjaus Tietokonejärjestelmät Reaktiivinen järjestelmä Sulautetut järjestelmät ovat yleensä reaktiivisia järjestelmiä: © 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 muutostilanteissatransienttiominaisuudet © 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ätole reaktiivisia, eikä kaikissa tietokonejärjestelmissä voida puhua tapahtumista © 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 © Krister Wikström
Tietokonejärjestelmät Terminologiaa • Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne: © 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 ohjataantoimilaitteella prosessia siten, että suure käyttäytyy halutulla tavalla © 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” © 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ärajalletoimenpide A1: lämmitin pois päältä, lämpötila laskee • tapahtuma E2: lämpötila laskee alarajalletoimenpide A2: lämmitin päälle, lämpötila kohoaa © Krister Wikström
Lämpötila t E1 tYLÄ E2 tALA Aika kuluu Tietokonejärjestelmät Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: © Krister Wikström
Aloitus:C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Alkuasetukset:ohjausbittien asetukset Päättymätön silmukka:odotellaan tapahtumia Ohjelmistotekniikka Ohjelmiston vuokaavio • sulautetun sovelluksenohjelmarakenne on ainasama eli päättymätönsilmukka © Krister Wikström
Digitaalinen signaali-prosessori Digitaalinen ottosignaali eli isokroninenvirta peräkkäisiä lukuarvoja Muokattu digitaalinen antosignaali Tietokonejärjestelmät Muunlaiset järjestelmät Kaikki tietokonejärjestelmät eivät ole reaktiivisia, esimerkiksi signaaliprosessori: © Krister Wikström
Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: • I/O = Input/Outputeli otto/antotai syöttö/tulostussiis yhteydet ympä-ristöön • CPU = CentralProcessing Unitsuomeksi prosessoritai suoritin, yksikkö jokasuorittaa operaatiot elitoiminnot © Krister Wikström
Tietokonearkkitehtuurit Tietokoneen rakenne Kolme pääyksikköä: • sama kuin edellinenkuva, mutta vähäneri tavalla piirretty Ohjelma-muisti Data-muisti KeskusyksikköProsessoriSuoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta LiitäntäyksikötPeripherals Ympäristö © 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ä. © Krister Wikström
Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin Kolme pääyksikköä tässäkin: © Krister Wikström
GIGO DatatieData Path Käsiteltävä tieto Käsitelty tieto Tilatiedot(takaisinkytkentä) Käsittelyn ohjaus Ohjausyksikkö Käskyt eli toimintaohjeet Tietokonearkkitehtuurit Prosessori Toiminnallinen lohkokaavio: © Krister Wikström
Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki) Kolme pääyksikköä vieläkin: © 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ö © 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 © Krister Wikström
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 • konekäskyt ovat tietenkin binäärilukuja, kuten kaikki muukin digitaali- ja tietokonetekniikassa • käsky voidaan jakaa kahteen osaan eli bittikenttään: © 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ä © 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??? © Krister Wikström
Op1 ALU Tulos Op2 Tietokonearkkitehtuurit Operaatiot • 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta: © 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) © Krister Wikström
Muu rekisteri, muisti tai I/O Op1 Akun tallennus Akun lataus ALU Tulos Akkurekisteri Op2 Tietokonearkkitehtuurit Akku-arkkitehtuuri • erityinen akkurekisteri, jonka osoite on implisiittinen vakio • yksi operandi aina akusta, ja tulos aina akkuun, tarvitaan vain toisen operandin osoite © Krister Wikström
Op1 Rekisterit Load ALU Store Tulos Op2 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 © Krister Wikström
Push Pop Op1 Pinomuisti LIFO-periaate: Last In - First Out ALU Tulos Op2 Tietokonearkkitehtuurit Pino-arkkitehtuuri • operandit pinomuistin kahdessa päällimmäisessä rekisterissä • tulos pinoon päällimmäiseksi © 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 © Krister Wikström
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR:SpecialFunctionRegisters 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) © Krister Wikström
Tietokonearkkitehtuurit Esimerkki: Atmel AVR • kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva © Krister Wikström
Tietokonearkkitehtuurit Esimerkki: Freescale HC08 • kahdeksanbittinen CISC-tyyppinen akku-arkkitehtuuri, myös hyvin selkeä • selkeyttä lisääsekin, että suorit-timessa on vainyksi ainoa muistialueeli muistiavaruus © Krister Wikström
Tietokonearkkitehtuurit Esimerkki: Microchip PIC16 • kahdeksanbittinen RISC-tyyppinen (33 käskyä)akku-arkkitehtuuri, aika hankala • akku = W-rekisteri(Working) • SFR = SpecialFunction Registereli muut rekisterit,joista osa kuuluuliitäntöihin, eisuorittimeen © Krister Wikström
Tietokonearkkitehtuurit Esimerkki: x86-suoritin • x86 tunnetaan myös nimellä IA-32 • kuvassaperusrekisterit • AH + AL = AXon akkurekisteri • punaisellamerkitytkäytettävissävain suojatussatoimintatilassa (protected mode) • perusrekistereiden lisäksi paljon muitakinrekistereitä tullut mukaan matkan varrella © 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 © 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 © 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. © Krister Wikström
CPU AGP PohjoissiltaNorth BridgeMemory Bridge DRAM ATA USB EteläsiltaSouth BridgeI/O Bridge KorppuasemaSarjaportitRinnakkaisporttiNäppäin/hiiri-liitäntä (PS/2) AC97 LPC-väylä PCI-väylä Tietokonearkkitehtuurit PC-emojen arkkitehtuuri Nykyinen käytäntö: • prosessorin lisäksi kaksiosainenpiirisarja (chip set) • useita emolevy-formaatteja,ATX yleisin • monenlaisia liitäntöjäja väyliä © Krister Wikström