TKT-3201 Tietokonearkkitehtuuri 2

Samankaltaiset tiedostot
Välimuistin suorituskyvyn mittaus

Käyttöjärjestelmät: Virtuaalimuisti

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Käyttöjärjestelmän rakenne

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

MUISTIPIIRIT H. Honkanen

Luento 9 Järjestelmän ulkoinen muisti

TKT-3200 Tietokonetekniikka I. Harjoitustyö 4: Cache - työohje. Syksy 2010

52480S TIETOKEARKKITEHTUURIT Tentti

Luento 9 Järjestelmän ulkoinen muisti

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 9 Järjestelmän ulkoinen muisti

Järjestelmän ulkoinen muisti I/O

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Luento 9 Järjestelmän ulkoinen muisti

Internal Memory, Cache

Internal Memory, Cache

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

Muistihierarkia Kiintolevyt I/O:n toteutus

Muistihierarkia Kiintolevyt I/O:n toteutus

TKT-3200 Tietokonetekniikka I. Harjoitustyö 4: Cache - simulaattorin ohje

Luento 9 Järjestelmän ulkoinen muisti

Internal Memory, Cache (välimuisti)

Internal Memory, Cache (välimuisti)

Ulkoiset mediakortit Käyttöopas

Tietokonearkkitehtuuri 2 TKT-3201 (5 op)

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Muistipiirit. Digitaalitekniikka (piirit) Luku 20 Sivu 1 (24)

Luento 6: VIRTUAALIMUISTI

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

D B. Tiedostojen käsittely

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Luento 5: Muistin hallinta Luento 5. Luento 5-1. Luento 5-3. u Continuous memory allocation for partition. Luento 5-5

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Luento 2: Tiedostot ja tiedon varastointi

Luento 1 Tietokonejärjestelmän rakenne

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

VIRTUAALIMUISTI. Stallings, Luku 8.1

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

6.3. AVR_rauta. EEPROM-muisti pva

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TKT-3201 Tietokonearkkitehtuuri 2

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Arto Salminen,

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

ATVa Tietokoneen rakenne. Tanja Koivisto Hartolan Yhtenäiskoulu aineenopetus/tietotekniikka/atva

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

Windows Live SkyDrive - esittely

Luento 2: LAITTEISTOSTA

Muistinhallinta. Teemu s Cheesecake. Tietokoneen rakenne

1. Keskusyksikön rakenne

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Muistinhallinta. Tietokoneen rakenne. Stallings: Ch Heittovaihto vs. Virtuaalimuisti Esim: Pentium. Luento 5-1

HELIA 1 (15) Outi Virkki Tiedonhallinta

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

Luento 9 Järjestelmän ulkoinen muisti

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Ohje PhotoPortaalin käytöstä

Stallings, Luku

Toimittajan yrityksen kaupparekisteriin merkitty virallinen nimi.

Työtapaturman ilmoittaminen 2016-> Uusi sähköinen lomake, täyttäminen esimies ja palkkahallinto

2 Konekieli, aliohjelmat, keskeytykset

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

POWER analytiikka-alustana

Sulautetut järjestelmät

Tarkoitus. Edellytykset. Kirjautuminen HAKA-tunnistautumisen kautta

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Väylät. Tietokoneen rakenne. Stallings: Ch 3 Mitä väylällä liikkuu? Väylän ominaisuuksia PCI-väylä PCI Express. Luento 2-1

Osio 3: Siirräntä ja tiedostojärjestelmä

TK Palvelinympäristö

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Aluksi Kahden muuttujan lineaarinen epäyhtälö

Ohjelmoinnin perusteet Y Python

1. Lomakkeet löytyvät asiointiportaalista osoitteesta

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)


Backup Exec 3600 Appliance

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins)

Luento 2: Väylät Laitteiden väliseen kommunikointiin Tav. yleislähetys: kaikki kuulevat kaiken

ELEC-C3240 Elektroniikka 2

Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins)

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Massaeditorikoulutus KANSALLISKIRJASTO - Kirjastoverkkopalvelut

Luento 9 Järjestelmän ulkoinen muisti

Transkriptio:

TKT-3201 Tietokonearkkitehtuuri 2 Luku 5: Muistihierarkian hyödyntäminen Adapted from Computer Organization and Design, 4 th Edition, Patterson & Hennessy, 2008 Adapted from slides by Mary Jane Irwin, PSU

Tietokoneen pääkomponentit Processor Devices Control Memory Input Datapath Output Secondary Memory (Disk) Main Memory Cache #2

Muistiseinä Prosessorin vs DRAM-muistin nopeusero kasvaa kellojaksoa per käsky 1000 100 10 1 0,1 Core Memory 0,01 VAX/1980 PPro/1996 2010+ kellojaksoa per DRAM-viittaus SRAM-muistin virrankulutus 90nm 130nm 180nm 2ns 6ns 3.5ns Hyvä muistihierarkian (välimuisti) suunnittelu yhä tärkeämpää suorituskyvyn aikaansaamiseksi #3

Muistihierarkian tavoite fakta: suuret muistit ovat hitaita ja nopeat muistit pieniä Kuinka luoda muisti, joka antaa (suurimman osan ajasta) kuvan suuresta, nopeasta ja halvasta muistista? hierarkia rinnakkaisuus #4

Tyypillinen muistihierarkia Hyödynnetään paikallisuuden periaatetta ja osoitetaan käyttäjälle muistia määrä, joka on saavutettavissa halvinta teknologiaa käyttäen, mutta nopeimman teknologian viittausajalla On-Chip Components Control Datapath RegFile ITLB DTLB Instr Cache Data Cache Second Level Cache (SRAM) Main Memory (DRAM) Secondary Memory (Disk) nopeus (jaksoa): ½ 1 10 100 s 10,000 s koko (tavuja): 100 10K M G T kustannus: korkein matalin #5

Muistiteknologiat Välimuisteissa käytössä SRAM (nopeus, teknologiayhteensopivuus) #6 nopea (hakuaika: 0.5-2.5 nsec) Matala integrointitiheys (6 transistorin muistisolu), korkeampi virrankulutus, kallis ($2000 - $5000 per GB, 2008) Staattinen: sisältö säilyy aina (niin kauan kuin käyttöjännite on kytkettynä) Päämuisteissa käytössä DRAM (koko ja integrointitiheys) hidas (tyypillinen hakuaika 50-70 nsec) Korkea integrointitiheys (1 transistorin muistisolu), alhaisempi virrankulutus, halvempi ($20 - $75 per GB, 2008) Dynaaminen: virkistettävä säännöllisesti (~ 8 ms välein) - kuluttaa 1% - 2% DRAM-muistin aktiivisista jaksoista Osoite jaettu kahteen osaan (rivi ja sarake) - RAS, Row Access Strobe syötetään muistin rividekooderille - CAS, Column Access Strobe syötetään muistin sarakedekooderille

Muistihierarkia: toiminta Temporaalinen lokaalisuus (paikallisuus ajassa) Kun muistipaikkaan on viitattu, niin usein siihen tullaan viittaamaan pian uudelleen Pidä viimeksi haetut datayksiköt lähellä prosessoria Spatiaalinen lokaalisuus (paikallisuus tilassa) Kun muistipaikkaan on viitattu, tullaan pian tekemään viittaus muistipaikan naapureihin siirrä vierekkäisiä sanoja sisältäviä datablokkeja lähelle prosessoria #7

Muistihierarkian piirteet Kasvava etäisyys prosessorista viittausajalla mitattuna prosessori L1$ 4-8 bytes (word) 8-32 bytes (block) L2$ 1 to 4 blocks Päämuisti 1,024+ bytes (disk sector = page) L1$:n sisältö on alijoukko L2$:n sisällöstä, joka on osajoukko päämuistin sisällöstä, joka on osajoukko sekundäärimuistin sisällöstä Sekundäärimuisti (suhteellinen) muistinkoko eri tasoilla #8

#9 Muistihierarkia: terminologia lohko (block, line): informaation minimiyksikkö, joka on sijoitettu (tai puuttuu) välimuistissa osumasuhde (hit rate): niiden muistiviittauksien osuus, jotka löytyvät muistihierarkian tasolta osuma-aika (hit time): aika, joka tarvitaan viittaukseen ko. muistihierarkian tasolla, koostuen lohkon viittauksen kuluva aika + osuman/hudin määrittämiseen kuluva aika hutisuhde (miss rate): niiden muistiviittauksien osuus, joita ei löydetä annetulta muistihierarkian tasolta 1 - (HitRate) hutisakko (miss penalty): aika, joka kuluu lohkon korvaamisen vastaavalla alemmalla hierarkiatasolla olevalla lohkolla, koostuen alemman tason lohkon viittaukseen kuluva aika + lohkon lähettämiseen hudin kokeneelle tasolle kuluva aika + lohkon lisäämiseen tälle tasolle kuluva aika + lohkon toimittamiseen sitä pyytäneelle kuluva aika HitTime << MissPenalty!!!

Miten hierarkia hallitaan? rekisterit muisti kääntäjä (ohjelmoija?) välimuisti päämuisti välimuistiohjaimen laitteisto päämuisti levyjärjestelmä käyttöjärjestelmä (virtuaalimuisti) Laitteistoavusteinen virtuaaliosoitteiden käännös fyysisiin osoitteisiin (translation lookaside buffer, TLB) Ohjelmoija (tiedostot) #10

Välimuistin perusteet Kaksi ongelmaa (laitteistolle): 1: Mistä tiedetään, että datayksikkö on sijoitettu välimuistiin? 2: Jos datayksikkö on välimuistissa, mistä se löydetään? Suorasijoitettava (direct mapped) välimuisti Jokainen muistilohko kuvataan yhteen ainoaan välimuistin lohkoon Useampi alemman hierarkiatason muistilohko jakaa välimuistin lohkon Osoitteen kuvaus (vastaus ongelmaan 2): (lohkon osoite) modulo (välimuistin lohkojen lukumäärä) Jokaiseen välimuistin lohkoon liitetään tagi, joka sisältää osoitetiedon (osoitteen ylempiä osoitebittejä) muistilohkon identifioimiseksi #11

välimuisti Indeksi #13 00 01 10 11 Välimuisti: yksinkertainen esimerkki Validi Tagi Data 1: Onko data välimuistissa? Vertaa välimuistin tagia muistiosoitteen 2:een ylimpään osoitebittiin varmistamaan, että lohko on välimuistissa (validi-kenttä kertoo onko lohkossa käypää dataa) päämuisti 0000xx Yhden sanan lohko 0001xx 2 vähiten merkitsevää 0010xx osoitebittiä määrittävät tavun 0011xx sijainnin 32-bittisessä sanassa 0100xx 0101xx 0110xx 0111xx 1000xx 1001xx 1010xx 1011xx 1100xx 1101xx 1110xx 1111xx 2: Kuinka data löydetään? Käytä 2 toiseksi vähiten merkitsevää muistiosoitteen bittiä indeksi määrittämään välimuistin lohko (modulo lohkojen lukumäärä) indeksi = (lohkon osoite) modulo (välimuistin lohkojen lukumäärä)

Suorasijoitettava välimuisti Tarkastellaan viittauksia päämuistiin osoituksilla: 0 1 2 3 4 3 4 15 Aloitetaan tyhjällä välimuistilla kaikki lohkot merkitään tyhjiksi, validi-kenttä nollataan 0 huti 1 huti 2 huti 3 huti 00 Mem(0) 00 Mem(0) 00 Mem(0) 00 Mem(0) 00 Mem(1) 00 Mem(1) 00 Mem(2) 4 huti 3 osuma 4 osuma 15 0001 Mem(0) 4 00 Mem(1) 00 Mem(2) 00 Mem(3) 00 Mem(1) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 00 Mem(2) 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 Mem(3) 00 Mem(3) huti 01 Mem(4) 00 Mem(1) 00 Mem(2) 00 11 Mem(3) 15 #15 8 pyyntöä, 6 hutia

MIPS: suorasijoitettava välimuisti, esim. Yhden sanan lohkot, välimuistin koko = 1Ksanaa (4KB) Hit 31 11 210 Tag 20 10 Index tavupoikkeama Data Index 0 1 2 Valid Tag Data... 1021 1022 1023 20 32 Millaista paikallisuutta hyödynnetään? #16

Hit Useamman sanan suorasijoitettava välimuisti 4 sanaa/lohko, välimuistin koko = 1Ksanaa 31 11 4 210 tavupoikkeama Data Tag 20 Index 8 lohkopoikkeama Index 0 1 2 Valid Tag Data... 253 254 255 20 #17 Millaista paikallisuutta tässä hyödynnetään? 32

Hyödynnetään paikallisuutta avaruudessa oletetaan lohkokoko >1 sanaa Aloitetaan tyhjällä välimuistilla kaikki lohkot merkitty tyhjiksi 0 1 2 3 4 3 4 15 0 huti 1 osuma 2 huti 00 Mem(1) Mem(0) 00 Mem(1) Mem(0) 00 Mem(1) Mem(0) 00 Mem(3) Mem(2) 3 osuma 4 huti 3 osuma 00 Mem(1) Mem(0) 00 Mem(3) Mem(2) 00 01 Mem(1) 5 Mem(0) 4 00 Mem(3) Mem(2) 01 Mem(5) Mem(4) 00 Mem(3) Mem(2) 4 osuma 15 huti 01 Mem(5) Mem(4) 00 Mem(3) Mem(2) 01 Mem(5) Mem(4) 00 11 Mem(3) 15 Mem(2) 14 #19 8 pyyntöä, 4 hutia

Hutisuhde vs lohkon koko vs muistin koko Hutisuhde nousee, jos lohkokoko on merkittävän suuri välimuistin kokoon verrattuna #20 Välimuistiin mahtuvien lohkojen lukumäärä on pieni (kasvattaen kapasiteettihuteja)

Välimuistin kenttien koko Välimuistin bittimäärä sisältää tilan sekä datalle että tageille Oletetaan 32-bittinen tavuosoite Suorasijoitettavassa välimuistissa, jossa 2 n lohkoa, n bittiä käytetään indeksiin Jos lohkon koko on 2 m sanaa (2 m+2 tavua), m bittiä käytetään osoittamaan sanaa lohkon sisällä ja 2 bittiä tarvitaan osoittamaan tavu sanan sisällä Tagi-kentän koko? Suorasijoitettavan välimuistin bittien kokonaismäärä on 2 n x (lohkon koko + tagi-kentän koko + validi-kentän koko) Kuinka monta bittiä tarvitaan suorasijoitettavaan välimuistiin, jossa on 16KB dataa ja 4-sanaisia lohkoja ja oletetaan 32- bittiset osoitteet? #21

Välimuistiosumien käsittely Lukuosumat (I$ ja D$) Näitä nimenomaan halutaan! Kirjoitusosumat (ainoastaan D$) Vaaditaan väli- ja päämuistin olevan yhdenmukaisia (write-through cache) Kirjoita data aina sekä välimuistin lohkoon että seuraavaan tasoon muistihierarkiassa (läpikirjoitus, write-through) Kirjoitukset tapahtuvat seuraavan muistihierarkiatason nopeudella hidas! tai voidaan käyttää kirjoituspuskuria ja liukuhihna pysäytetään ainoastaan puskurin täyttyessä Sallitaan väli- ja päämuistin olevan ristiriidassa (write-back cache) Kirjoitetaan data ainoastaan välimuistin lohkoon (takaisinkirjoitus seuraavalle tasolle tapahtuu, kun lohko häädetään (evict) välimuistista) Jokaiselle välimuistin lohkolle tarvitaan likainen-bitti (dirty bit), joka kertoo tarvitseeko lohko kirjoittaa takaisin muistiin häädettäessä voidaan myös käyttää kirjoituspuskuria helpottamaan likaisten lohkojen takaisinkirjoituksessa #22

Välimuistin hutien syitä Pakollisia (kylmäkäynnistys tai prosessin vaihto, 1. viittaus): Ensimmäinen viittaus lohkoon. Jos ajetaan miljoonia käskyjä, pakollisten hutien määrä on merkityksetön ratkaisu: kasvata lohkon kokoa (kasvattaa hutisakkoa; erittäin suuri lohkon koko voi kasvattaa hutisuhdetta) Kapasiteetti: Välimuisti ei voi sisältää kaikki ohjelman viittaamia lohkoja ratkaisu: kasvata välimuistin kokoa (voi kasvattaa hakuaikaa) Konflikti: Useampia muistipaikkoja on kuvattu samaan välimuistin paikkaan ratkaisu 1: kasvata välimuistin kokoa ratkaisu 2: kasvata assosiatiivisuutta (käsitellään myöhemmin luennoilla) (voi kasvattaa hakuaikaa) #23

Välimuistihutien käsittely (1-sanan lohkot) Lukuhudit (I$ ja D$) Pysäytä liukuhihna, hae lohko seuraavalta muistihierarkian tasolta, tallenna se välimuistiin ja lähetä pyydetty sana prosessorille. Tämän jälkeen liukuhihna jatkaa toimintaa Kirjoitushudit (ainoastaan D$) 1. Pysäytä liukuhihna, hae lohko seuraavalta muistihierarkian tasolta, tallenna lohko välimuistiin (mikä voi vaatia likaisen lohkon häätämisen, jos käytetään takaisinkirjoittavaa välimuistia), kirjoita prosessorilta tuleva sana välimuistiin ja jatka liukuhihnan suoritusta. tai 2. Write allocate kirjoita sana välimuistiin päivittämällä sekä tagi että data. Ei tarvetta tarkastaa välimuistiosumaa. Ei tarvetta pysäyttää liukuhihnaa tai 3. No-write allocate ohita välimuistinkirjoitus (mitätöi välimuistin lohko, koska se sisältää nyt pilaantunutta dataa) ja kirjoita data suoraan kirjoituspuskuriin (ja sitä mukaa seuraavalle hierarkiatasolle). Ei tarvetta pysäyttää liukuhihnaa, jos kirjoituspuskuri ei ole täynnä. #24

Useamman sanan lohkon käsittelystä Lukuhudit (I$ ja D$) Prosessoidaan samoin kuin yhden sanan lohkot huti palauttaa koko lohkon välimuistiin Hutisakko kasvaa lohkon koon kasvaessa Early restart prosessori jatkaa suoritusta heti, kun pyydetty lohkon sana on toimitettu. Toimii parhaiten I$:n yhteydessä. Requested word first pyydetty sana toimitetaan muistista välimuistiin (ja prosessorille) ensimmäisenä Nonblocking cache sallii prosessorin jatkavan välimuistin viittauksia, vaikka välimuisti on käsittelemässä aiempaa hutia Kirjoitushudit (D$) Jos käytetään write allocate -menetelmää, on ensimmäiseksi haettava lohko muistista ja sitten kirjoitettava sana lohkoon (tai aikaansaadaan sotkuinen välimuistilohko, esim. 4-sanaisessa lohkossa, uusi tagi (yksi datasana uudesta lohkosta, ja kolme datasanaa vanhasta lohkosta). #25

Välimuistia tukevat muistijärjestelmät Piirin ulkoisella kytkentäverkolla ja muistiarkkitehtuurilla on merkittävä vaikutus järjestelmän kokonaissuorituskykyyn 32-bittinen data #26 & 32-bittinen osoite per jakso on-chip CPU välimuisti väylä DRAM- muisti Yhden sanan leveä organisaatio (yhden sanan leveä väylä ja yhden sanan leveä muisti) Oletetaan 1. 1 muistiväylän kellojakso osoitteen lähettämiseen 2. 15 muistiväylän kellojaksoa lohkon 1. sanan saamiseen DRAM:sta (rivin jaksoaika), 5 muistiväylän kellojaksoa 2., 3. ja 4. sanan vastaanottoon (sarakkeen hakuaika) 3. 1 muistiväylän kellojakso yhden datasanan toimittamiseen Muistiväylästä välimuistiin kaistanleveys Tavujen lukumäärä, joita on viitattu muistissa ja siirretty välimuistiin/prosessoriin per muistiväylän kellojakso

Review: (DDR) SDRAM toiminta After a row is into the SRAM register Column Address Input CAS as the starting burst address along with a burst length Transfers a burst of data (ideally a cache block) from a series of sequential addr s within that row - The memory bus clock controls transfer of successive words in the burst read Cycle Time N rows +1 N cols DRAM N x M SRAM M-bit Output Row Address M bit planes 1 st M-bit Access 2 nd M-bit 3 rd M-bit 4 th M-bit RAS CAS Row Address Col Address Row Add #27

#28 DRAM-muistin koon kasvu

1:n sanan väylä, 1:n sanan lohkot on-chip CPU välimuisti väylä DRAMmuisti Jos lohkon koko on 1, niin hudista johtuvan muistiviittauksen takia liukuhihna on pysäytettävä siksi aikaa kun muistista saadaan haettua yksi datasana 1 15 1 17 muistiväylän kellojaksoa osoitteen lähetykseen muistiväylän kellojaksoa DRAM:n lukemiseen muistiväylän kellojaksoa data toimittamiseen kellojaksoa kokonaissakkoa Kellojaksossa siirrettyjen tavujen määrä (muistin kaistanleveys) yhden hudin tapauksessa on 4/17 = 0.235 tavua per kellojakso #30

1:n sanan väylä, 4:n sanan lohkot on-chip CPU välimuisti Entäpä, jos lohkon koko on 4 sanaa ja jokainen sana sijaitsee eri DRAM-rivillä? 1 jaksoa 1:n osoitteen lähettämiseen 4 x 15 = 60 jaksoa DRAM:n lukemiseen 1 jaksoa viimeisen datasanan toimittamiseen 62 kellojaksoa sakkoa väylä DRAM- muisti 15 cycles 15 cycles 15 cycles Kellojaksossa siirrettyjen tavujen määrä (muistin kaistanleveys) yhden hudin tapauksessa on (4 x 4)/62 = 0.258 tavua per kellojakso 15 cycles #32

1:n sanan väylä, 4:n sanan lohkot on-chip CPU välimuisti Entäpä, jos lohkon koko on 4 sanaa, mutta kaikki sanat ovat samalla DRAM:n rivillä? 1 15 + 3*5 = 30 1 32 jaksoa 1:n osoitteen lähettämiseen jaksoa DRAM:n lukemiseen jaksoa viimeisen datasanan toimittamiseen kellojaksoa sakkoa väylä DRAM- muisti 15 cycles 5 cycles 5 cycles 5 cycles Kellojaksossa siirrettyjen tavujen määrä (muistin kaistanleveys) yhden hudin tapauksessa on (4 x 4)/32 = 0.5 tavua per kellojakso #34

Lomitettu muisti, 1:n sanan väylä on-chip CPU välimuisti Lohkon koko 4 sanaa: 4*1 = 1 15 4 20 jaksoa 1:n osoitteen lähettämiseen jaksoa DRAM:n lukemiseen jaksoa viimeisen datasanan toimittamiseen kellojaksoa sakkoa väylä 15 cycles DRAM- muisti- pankki 0 DRAMmuistipankki 1 DRAMmuistipankki 2 DRAM- muisti- pankki 3 15 cycles 15 cycles 15 cycles #36 Kellojaksossa siirrettyjen tavujen määrä (muistin kaistanleveys) yhden hudin tapauksessa on (4 x 4)/20 = 0.8 tavua per kellojakso

DRAM-muistijärjestelmän yhteenveto Tärkeää sovittaa välimuistin ominaisuudet välimuisti viittaa yhteen lohkoon kerrallaan (usein enemmän kuin yksi sana) sekä DRAM:n ominaisuuksien käytä DRAM:ia joka tulee nopeaa useamman sanan viittausta, mieluummin sellaisia, jotka vastaavat välimuistin lohkon kokoa että muistiväylän ominaisuuksien suhteen varmista, että muistiväylä tukee DRAM:n hakuaikaa ja hakukuviota tavoitteena muistiväylän ja välimuistin välisten siirtojen kaistanleveyden maksimointi #37