1
|
- Ohjelman esitysmuoto
- Rakenteellinen tieto
- Pariteetti
- Hamming-koodi
- Välimuisti
- Tavallinen muisti
- Muistien historiaa
|
2
|
- Konekohtainen, jokaisella omansa
- Käskyt ovat 1 tai useamman tavun mittaisia
- SPARC, kaikki käskyt: 1 sana eli 4 tavua
- PowerPC, kaikki käskyt: 1 sana eli 4 tavua
- Pentium II: 1-16 tavua, paljon variaatioita
- Käskyillä on yksi tai useampi muoto, kussakin tietty määrä erilaisia
kenttiä
- opcode, Ri, Rj, Rk, osoitusmoodi
- pitkä tai lyhyt vakio
|
3
|
- Käskyn esitys bittitasolla on aina:
|
4
|
- Tulos: rekisteri Rj
- paitsi WRITE- tai PUSH-käskyissä muistipaikan sisältö
- Ensimmäinen operandi: rekisteri Rj
- Toinen operandi
- laske ensin arvo Ri+ADDR ja käytä sitä sellaisenaan tai käytä sitä
muistisoitteena
- arvo: Ri + ADDR
- muistipaikan M[Ri+ADDR] sisältö
- muistipaikan M[ M[Ri+ADDR] ] sisältö
|
5
|
- Peräkkäisrakenteena, kuten esimerkit aikaisemmin
- Riveittäin tai sarakeittain
- Ei omia konekäskyjä, manipulointi aliohjelmilla tai loopeilla
(paitsi ns. vektorikoneet, joilla on omia konekäskyjä
vektorioperaatioita varten)
- Indeksoitu tiedonosoitusmoodi tukee
1-ulotteisten taulukoiden käyttöä
|
6
|
- Peräkkäisrakenteena
- Osoite on jonkin osoitemuuttujan arvo
- Ei omia konekäskyjä, manipulointi aliohjelmilla tai kääntäjän
generoimien vakiolisäysten avulla
- Indeksoitu tiedonosoitusmoodi tukee tietueiden käyttöä
|
7
|
- Kuten tietueet, yleensä varattu keosta (heap)
- Useat olion kentistä sisältävät vuorostaan osoitteen keosta
suoritusaikana varattuun toiseen olioon
- Metodit ovat aliohjelmien osoitteita
- Ei omia konekäskyjä, manipulointi aliohjelmilla
|
8
|
|
9
|
- Tiedon oikeellisuutta ei voi tarkistaa yleisessä tapauksessa
- Laitteistovirheitä voidaan havaita ja joskus automaattisesti korjata
- bitti voi muuttua muistissa tai tiedon siirrossa
- muistipiirissä voi olla vika (staattinen vika)
- sopiva alkeishiukkanen voi muuttaa bitin tiedonsiirron aikana
(transientti virhe)
- korjaamattomasta virheestä voi aiheutua häiriö
- Tietokannan eheys
on eri asia!
|
10
|
- Perusidea: otetaan mukaan ylimääräisiä bittejä, joiden avulla virheitä
voidaan havaita ja ehkä myös korjata
- Järjestelmä suorittaa tarkistukset automaattisesti joko
laitteistotasolla tai ohjelmiston avulla
|
11
|
- Henkilötunnus: 120464-121C
- Tarkistusmerkin avulla voidaan tarkistaa, että mikään yksi merkki ei ole
väärin
- havaitsee yhden merkin virheen
- virhettä ei voi automaattisesti korjata!! Miksi?
- välimerkkiä (’-’) ei tarkasteta lainkaan!
|
12
|
- Muistipiirit, levyt, väylät,
tiedonsiirrot
- Monenko bitin muuttuminen
havaitaan?
- Monenko bitin muuttuminen
voidaan automaattisesti korjata?
- Havaitsemiseen ja/tai korjaamiseen tarvitaan enemmän (ylimääräisiä)
bittejä
- lisämuistitilan tai levytilan tarve?
- lisäpiuhojen tarve väylällä?
- Tarkistukset/korjaukset
laitteisto- vai SW-tasolla?
|
13
|
- Yksi ylimääräinen bitti per tietoalkio
- sana, tavu, tietoliikennepaketti
- Parillinen (pariton) pariteetti: 1-bittien lukumäärä on aina parillinen
(pariton)
- Havaitsee: 1 bitti
- Korjaa: 0 bittiä
- Esimerkki (parillinen pariteetti)
|
14
|
- Montako bittiä jossain koodijärjestelmässä (esim ISO Latin) esitetyllä
koodilla (esim. ´A’ = 0x41 = 0100 0001) täytyy muuttua, että se muuttuu
johonkin toiseen (mihin tahansa) lailliseen koodiin.
- ISO Latin-1:n Hamming etäisyys: 1
- Pariteettibitin kanssa Hamming etäisyys: 2
- mikä todennäköisyys 2 bitin (vs. 1 bitin) virheeseen?
|
15
|
|
16
|
- Käytetään useampia pariteettibittejä
- Havaitsee: 2:n bitin muuttuminen
- Korjaa: 1 bitin muuttuminen
|
17
|
|
18
|
- Tiedonsiirrossa käytetty tarkistusmenetelmä
- Tarkistussumma (16 bittiä) isolle tietojoukolle
- laske CRC = f (viesti) % 216 (ota 16 viimeistä bittiä)
- lähetä viesti ja CRC
- vastaanota viesti ja CRC
- laske CRC ja tarkista, oliko se sama kuin viestissä
- jos pielessä, niin pyydä uudelleenlähetystä
|
19
|
- Mitä lähempänä suoritinta, sitä tärkeämpää tiedon oikeellisuus on
- Sisäinen väylä, muistiväylä
- virheet korjaava Hamming koodi
- Paikallisverkko
- uudelleenlähetyksen vaativa CRC
- kun tulee virheitä, niin niitä tulee yleensä paljon
- Hamming koodi ei riitä kuitenkaan
- pariteettibitti päästää läpi (esim.) 2 virheen paketit
|
20
|
- Monta muistipiiriä, samat tiedot monistettu
- Monta suoritinta, samat käskyjen suoritukset monistettu
- Monta laitteistoa, samat ohjelmat monistettu
- Eri tyyppiset laitteistot, samankaltaiset ohjelmat
- samat speksit, samat syötteet, eri ohjelmoijat
- Äänestysmenettely: enemmistö voittaa
- monimutkainen, hidas?
- virheelliseksi havaittu laitteisto suljetaan pois häiriköimästä
automaattisesti?
|
21
|
|
22
|
|
23
|
- Ongelma: keskusmuisti
on aika kaukana
suorittimesta
- Ratkaisu: välimuisti lähelle suoritinta
- pidetään siellä (kopioita) viime
aikoina viitatuista keskusmuistin
alueista
- Jokainen muistiviite on nyt seuraavanlainen
- jos data ei ole välimuistissa, niin hae se sinne
- suoritin odottaa tällä aikaa, laitteistototeutus!
- tee viittaus dataan (käskyyn) välimuistissa
- (talleta muutettu tieto keskusmuistiin)
|
24
|
- Tuntumaton suorittimelle
- jos viitattu tieto ei saatavilla, niin suoritin vain odottaa muutaman kellopulssin
ajan…
- Toteutettu usein nopeammalla teknologialla kuin keskusmuisti (tavallinen
muisti)
- Toteutettu nykyään usein samalla mikropiirillä kuin suoritin
- Silti iso aikaero: välimuisti 2X, muisti 10X
- TTK-91 koneessa ei ole välimuistia
|
25
|
|
26
|
- Eri teknologioita eri tasoisiin muisteihin
- RAM - Random-Access Semiconductor Memory
- anna osoite ja lue/kirjoita signaali
- mistä vaan voi lukea/kirjoittaa samassa ajassa
- virta pois Þ
tiedot häviävät
|
27
|
- DRAM: dynaaminen RAM, halvempi, hitaampi,
tietoja pitää virkistää vähän väliä (esim. joka 2 ms)
- tavallinen keskusmuisti (1975-..) useimmissa koneissa
- toteutettu kondensaattoreilla, jotka ”vuotavat” …
- SRAM: staattinen RAM, kalliimpi (~10-20x),
nopeampi (~10x), ei vaadi tietojen virkistämistä
- välimuisti useimmissa koneissa
- muisti superkoneissa (esim. Cray C-90)
- toteutettu samanlaisilla logiikkaporteilla (gate) kuin prosessorikin
- CMOS valmistusteknologia
(Complementary Metal Oxide Semiconductor)
|
28
|
- ROM - Read-Only Memory
- tieto säilyy virran katkettua
- voi käytössä vain lukea, ei voi kirjoittaa
- esim. järjestelmän alustustiedot (BIOS)
- kirjoitus lastun valmistusaikana, Mask-ROM
- huono puoli: kerran väärin, aina väärin
- päivitys: laita valmistajalta saatu uusi lastu paikalleen
- tietoa voi lukea mistä vain samassa ajassa
(random access)
- yleensä hitaampi kuin RAM (~10x)
|
29
|
- PROM - Programmable ROM
- kerran kirjoitettava
- tiedon päivitys: ”polta” tiedot tyhjään PROM:iin
- EPROM - Erasable PROM
- tietoja ei voi päivittää sana kerrallaan
- vanhat tiedot voidaan (kaikki!) poistaa 20 min. UV-säteilyllä, jonka
jälkeen päivitetyt tiedot voidaan ladata
- EEPROM - Electronically Erasable PROM
- tietojen pyyhkiminen tavukohtaisesti elektronisesti
- FLASH EEPROM memory
- tietojen pyyhkiminen nopeasti kerralla elektronisesti
- normaalijännitteellä, kaikki tai lohko kerrallaan
- nopeampi kuin EEPROM
|
30
|
|
31
|
- Kondensaattorirumpu
- 1939, ABC, Atanasoff-Berry Computer,
Iowa State College.
- lähinnä laskin, ei toiminut
- kondensattorit pyörivän rummun pinnalla
|
32
|
- Elektroniputki
- ENIAC, 1945
- Electronic Numerical Integrator and Computer
- J.W. Mauchly, J.P. Eckert,
J. von Neumann
- 18,000 elektr. putkea
- 70,000 vastusta
- 5 milj. juotettua liitosta
- tykinammusten ja pommien
radanlaskenta
|
33
|
- Akustinen elohopeaviiveputki
- kvartsikide muutti sähkövirran akustiseksi signaaliksi (ja päin
vastoin) pietsosähköisen ilmiön avulla
- 1000 bittiä per 1.45m putki
- W. Shockley & J.P. Eckert, 1946
- M. Wilkes, EDSAC – Electronic Delay Storage Automatic Calculator, 1949
- Mauchly & Eckert, UNIVAC, 1951 (ens. kaupallinen tietokone USA:ssa)
|
34
|
- Akustinen nikkeliviiveputki
- magneettikenttä aiheuttaa
pituussuuntaisen muodon-
muutoksen tankoon ja siten
vääntöpulssin johtimeen
- vähän ajan päästä muutos
tuntuu toisessa päässä ja
aiheuttaa magneettikentän
muutoksen siellä
- Hazeltine Electronic Corp,
1950?
- Elliot 401, 1953
- Canon 141 laskin, 1969
- Sony Sobax 2500, 1970
|
35
|
- Williams Tube
- 1946, Williams & Kilburn
- katodisädeputki
- ensimmäinen suuri ”RAM” muisti
- kallis: $1000 / 1 kk / putki
- Small Scale Experimental Machine (”Baby”), 1947
- Ferranti Mark I, ensimmäi- nen yleiskäyttöinen kaupal-linen tietokone,
1951
(10000 bitin muisti)
- akustisen viiveteknologian kilpailija
|
36
|
- Ferriittirengas (core) teknologia
- 1952, Jay Forrester & Bob Everett, MIT (Whirlwind)
- tieto säilyy ilman virtaa
- ei häiriinny säteilystä (avaruus, sotilasteknologia)
- 1955, valtaa muistimarkkinat Williams Tube’lta
|
37
|
- Transistori
(nopea, kestävä)
- J. Bardeen,
W.B. Shockley
ja W. Brattain,
ATT Bell Labs,
1948
- MIT TX-0,
1957,
ensimmäinen
transistoroitu
tietokone
|
38
|
- Integroitu piiri
(ei enää johtoja)
- Jack Kilby,
Texas Instruments, 1958
- Nobel 2000
- ensimmäinen käsikäyttöinen laskin
- Robert Noyce,
Fairchild Semiconductor, 1959
- ”planar process” valmistusmenet.
- perusti Intelin G. Mooren kanssa
- IBM S/360, 1964
|
39
|
- DRAM
- Robert Dennard, IBM, 1966
- (US) National Medal of Technology 1988
- Intel 1103 (1970)
- valtaa markkinat ferriitti-rengasmuisteilta 1972
- SRAM
|
40
|
|
41
|
|
42
|
- Välimuisti (1965, Maurice Wilkes)
- IBM S/360 Model 85
- 1968
- 256 lohkoa á 64 tavua
|
43
|
- PROM
- EPROM
- 1971, Dov Frohman, Intel 1701
- EEPROM,
- Flash EEPROM
- 1984, Fujio Masuoka,
Toshiba
|
44
|
- OROM - optical ROM
- 1990, James Russell
(Russell keksi myös CD-ROM:n)
- 1998, Wond-OROM-a
- 128 MB/kortti plus lukulaite
- ei liikkuvia osia
- sama nopeus kuin CD-ROM:lla
(siis aika hidas!)
- pieni virrankulutus
- sopii kannettaviin laitteisiin
- hävisi Flash-muisteille
|
45
|
|