Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Elérhetőségek Tudnivalók a tárgyról Az előadó () elérhetősége Tanszék: ELTE - Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Iroda: ELTE Déli tömb 2.604 E-mail: istenes@inf.elte.hu Honlap: http://quasar.inf.elte.hu Telefon: 2090555 / 8484 Egyéb: tárgyfórum, ETR-kurzusfórum, postaláda, titkárság (2.64)... Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Tudnivalók a tárgyról Elérhetőségek Tudnivalók a tárgyról Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története A tárgy "alapgondolatai" Elérhetőségek Tudnivalók a tárgyról jegyzetek, segédanyagok: http://quasar.inf.elte.hu/ oktatas/szamarch irodalom: Számítógép-architektúrák, Andrew S.Tanenbaum, Panem kiadó, ISBN: 9635452829 kollokvium, követelményrendszer, kiselőadások "Nem PC-ből áll a világ..." Általános alapelvek, fogalmak, lehetőségek, nagyságrendek, összehasonlítások, szintek, fizikai megvalósítások,... mit, miért, hogyan?
Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története A félév témakörei Elérhetőségek Tudnivalók a tárgyról Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Elérhetőségek Tudnivalók a tárgyról Magasszintű programozási nyelv - gépi nyelv (kód) bevezetés, történet, fogalmak, adatábrázolás, globális bemutatás, Neumann architektúra Központi feldolgozó egység (CPU) vezérlő egység, aritmetikai logikai egység, utasítás: készlet, típusok, felépítése, végrehajtás Memória hierarchia, cache, virtuális tárkezelés Magasszintű nyelv (C) swap (int v[], int k) { int temp; temp = v[k]; v[k] = v[k+]; v[k+] = temp; } Assembler nyelvű program swap: muli $2, $5,4 add $2, $4,$2 lw $5, 0($2) lw $6, 4($2) sw $6, 0($2) sw $5, 0($2) jr $3 Be- és Kimeneti rendszer (IO) megszakítás-rendszer, DMA, csatorna, perifériák többprocesszoros, párhuzamos gépek, hálózatok, egyebek... Bináris, gépi kódú program 0000000000000000000 00000000000000000 000000000000000000000 000000000000000000000 000000000000000000000000 000000000000000000000000 00000000000000000000 Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Többszintű számítógépek Elérhetőségek Tudnivalók a tárgyról Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Fizikai - logikai szintek Elérhetőségek Tudnivalók a tárgyról problémaorientált nyelvi szint 2 assembly nyelvi szint 3 operációs rendszer gépi szintje 4 utasításrendszer-architektúra szintje 5 mikroarchitektúra szintje 6 digitális logikai szint "Fizikai" "A számítógép" alaplap, processzor, memória,... integrált áramkörök tranzisztorok, félvezetők (0-5Volt) elektronok, félvezető rétegek "Logikai" processzor, memória, sínrendszer, IO logikai áramkörök (összeadó, számláló,...) logikai kapuk (ÉS, VAGY, NOT, logikai 0-)
Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Sok-sok NOP... Mennyi a sebesség különbség? Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Tömbösszeadás... Lehet sebességkülönbség? utasítás NOP 2 utasítás NOP NOP 3 utasítás NOP NOP NOP 4 utasítás NOP NOP NOP NOP soronként for i= to n for j= to m sum=sum+t(i,j) oszloponként for j= to n for i= to m sum=sum+t(i,j) Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Módszeres programozás... Meghökkentő ciklusok Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Számítógépek sebessége /6-ok... Program ciklus; var s:real; begin s:=0; while s<> do s:=s+/6; End. /0-ek... Program ciklus; var s:real; begin s:=0; while s<> do s:=s+/0; End. Milyen gyors a leggyorsabb számítógép? Hány szorzást végez másodpercenként? Mennyivel gyorsabb egy otthoni gépnél? Miért gyorsabb? Miért nem gyorsabb? Hogyan lehetne gyorsabb?
Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története BlueGene/L - eserver Blue Gene Solution (IBM) Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története BlueGene/L - eserver Blue Gene Solution (IBM) Processor type: PowerPC 440 Processor: 700 MHz (2.8 GFlops) Topology/Interconnect: 3D torus Operating System: CNK/Linux Processors: 3072 Rpeak (GFlops): 280600 Rmax (GFlops): 367000 http://top500.org Flops (Floating Point Operation per Seconds) = Lebegőpontos művelet másodpercenként Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Két gép összehasonlítása Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Számológép / számítógép EDVAC CRAY- évszám 952 976 24 év órajelciklus 2000ns 2,5ns 60x mártixszorzás 00/s 30000000/s 300000x az órajel növekedése: "technológiai" azonos órajel mellett is 8000x növekedés! a 8000x növekedés: "felépítésbeli" ("architekturális") számológép Főleg számtani műveletek végzésére alkalmas, gyakori, közvetlen emberi beavatkozást igénylő eszköz. számítógép Utasításlista (program) alapján adatokat manipuláló gép
Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Számítógép-generációk Bevezetés Furcsa, meghökkentő kérdések Számítógépek fejlődésének a története Összefoglalás, fogalmak http://en.wikipedia.org/wiki/timeline_of_ computing http://www.computerhistory.org/ http://oprendszer.elte.hu/architekturak/ segedanyag.html alapgondolatok témakörök nyelvi szintek fizikai-logikai szintek sebesség számológép / számítógép számítógép-generációk
Informatikai alapfogalmak Informatika Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver 2. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Az informatika (kb. information technology) az információk: rögzítésével, kezelésével, rendszerezésével, továbbításával foglalkozik. Informatikai alapfogalmak Az informatika tevékenységei Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak Az informatika részei, részterületei Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Az informatika a tevékenységét főként számítógépeken végzi: elméleti úton azáltal, hogy módszereket, modelleket, formalizmusokat dolgoz ki a számítógépek készítéséhez és működtetéséhez; mérnöki tevékenységgel úgy, hogy számítógépeket készít, illetve azokhoz elektronikai eszközöket alkot (hardver); rendszertervezéssel és készítéssel azáltal, hogy a számítógépek működtető eszközeit hozza létre, illetve azokat működteti (szoftver); alkalmazza a számítógépet azáltal, hogy különböző feladatok elvégzésére alkalmassá teszi, pl.: orvosi alkalmazások, kereskedelmi rendszerek, CAD, nyilvántartások, stb). matematikai alapok algoritmusok és adatszerkezetek programozási nyelvek és fordítóprogramok adatbázisok konkurrens, párhuzamos és elosztott rendszerek számítás-elmélet számítógépek felépítése szoftvertechnológia mesterséges intelligencia lágy számítástechnika számítógépes grafika tudományos számítás
Az információ Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Információ-tartalom (self-information) Információnak nevezünk mindent, amit a rendelkezésünkre álló adatokból nyerünk. Az információ olyan tény, amelynek megismerésekor olyan tudásra teszünk szert, ami addig nem volt a birtokunkban. Az információ minden olyan tény, állítás, hír, amelyeket a beszélő közöl. Ez egy csatornán keresztül eljut a hallgatóhoz. A hallgató számára a hír új jelentéssel bír és ezáltal tájékozottabbá válik. Az információ-tartalom annak az információnak a mennyisége, amelynek a tudása egy bizonyos eseményről hozzáadódik valaki teljes tudásához. Az információ-tartalom mértékegysége a bit. Az információ-tartalom I(A n ) ha A n esemény bekövetkeztének a valószínűsége ( p ) I(A n ) = log 2 p(a n) = log 2 (p(a n )) Példa Az információ tartalma, ( ) hogy egy kockával négyest dobunk: I( négyes ) = log 2 /6 = log 2 (6) = 2.585bit A bit fogalma Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak SI (tizes számrendszer) prefixumok Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver A bit az információ alapegysége. A bit a kettes számrendszer egy bináris számjegye (binary digit). Például a 000 2 szám 7 bit hosszú. A bit egy mérőegység, egy bináris számjegy információ tartalma. Jele: b A bájt (byte) bitek csoportja. 8 bit = bájt A szó (word) bájtok csoportja, a számítógép kialakításától függ. Elnevezés Jele Értéke Gyakori de hibás értelmezés kilo k 0 3 2 0 mega M 0 6 2 20 giga G 0 9 2 30 tera T 0 2 2 40 peta P 0 5 2 50 exa E 0 8 2 60 0 3 = 000 2 0 = 024 Példa kb (kilobájt) = 000 bájt (SI szabvány szerint), de nagyon gyakran 024 bájtot értenek alatta
Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Kettes számrendszerben használatos prefixumok Az adat fogalma Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Elnevezés Jele Értéke kibi Ki 2 0 = 024 mebi Mi 2 20 = 048 576 gibi Gi 2 30 = 073 74 824 tebi Ti 2 40 = 099 5 627 776 pebi Pi 2 50 = 25 899 906 842 624 exbi Ei 2 60 = 52 92 504 606 846 976 IEC 60027-2 Nemzetközi Elektrotechnikai Bizottság (International Electrotechnical Commission; IEC) 998. Példa kb (kilobit) = 000 bit viszont Kib ("kibibit") = 024 bit MB = 000000 bájt viszont MiB ("mebibájt") = 048576 bájt Az adat egy objektum egy meghatározott változójának az értéke. Egy konkrét adat tehát akkor tekinthető definiáltnak, ha meghatározzuk, hogy milyen objektum, melyik változója, milyen értéket vesz fel. Példa Az Eiffel torony magassága 300 méter Az adat fogalma Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver A jel fogalma Informatikai alapfogalmak Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Az adatoknak önmagukban nincs jelentésük. Az adat fogalma jól elkülöníthető két másik rokonértelmű fogalomtól az ismerettől és az információtól: Az ismeret valamilyen objektummal kapcsolatos tapasztalataink, általánosításaink és fogalmaink összessége. Az információ olyan adat vagy ismeret, amely viselkedésünket befolyásolni képes. Az információ-elméletben egy jel a kommunikációs csatorna állapotainak egy sorozata, amelyet üzenetté lehet dekódolni. Egy kommunikációs rendszerben, egy küldő kódol egy üzenetet jelekké, amelyet a kommunikációs csatorna segítségével a vevőnek el lehet juttatni. Példa A küldő szavakat mond a telefon mikrofonjába. A telefon a hangokat elektromos feszültségű jelekké alakítja. A telefon az elektromos jeleket telefonhálózat segítségével a vevő telefonjába továbbítja, ahol az visszaalakul hanggá. A vevő hallja a szavakat.
Informatikai alapfogalmak Analóg és digitális jelek Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak Analóg jelből digitális jel kvantálás, diszkretizálás, mintavételezés Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Két fő jeltípus: analóg jel: jelparamétere folytonos (valós életbeli folyamatok, pld.: hőmérséklet, nyomás,...) digitális jel: diszkrét és kvantált jellemzőkkel bír (digitális számítógéppel feldolgozható) Analóg-digitális átalakítás / Digitális-analóg átalakítás Informatikai alapfogalmak Az algoritmus fogalma Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak Elemi, megengedett lépések Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Az algoritmus vagy eljárás olyan módszer, utasítás(sorozat), részletes útmutatás vagy recept, amely valamely felmerült probléma megoldására alkalmas. "végesség" (az algoritmus véges számú lépés után leáll) "meghatározottság" (mindegyik lépés pontosan, egyértelműen van meghatározva) bemenet (megadott halmaz elemeiből) kimenet (meghatározott kapcsolatban áll a bemenettel) hatékonyság (egy lépést, véges időn belül, papírral ceruzával is végre lehet hajtani) az elemi lépések az adott szinttől függnek az elemi lépések egy nyelv utasításai egy nyelv meghatározott elemi (megengedett) utasításokkal rendelkezik egy magasabb szintű nyelv egy utasítását, egy alacsonyabb szintű nyelv több utasítására lehet lefordítani egy magasabb szintű nyelv egy utasítását, egy alacsonyabb szintű program értelmezheti
Informatikai alapfogalmak Számítógép program Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver Informatikai alapfogalmak Hardver - szoftver - firmware Informatika, információ, bit Adat, jel, közlemény Algoritmus, program, hardver, szoftver A legtöbb számítógép program procedurális vagy deklaratív program. procedurális program(ozás) (imperativ program) utasítások listája, amelyek egyértelműen (explicit) megvalósítanak (implementálnak) egy algoritmust deklaratív program(ozás) jellemzők listája, amelyek meghatározzák a kimenetet, melyet egy algortimus határoz meg hardver (hardware) a számítógép fizikai része például: digitális áramkörök ritkán változik firmware hardvereszközbe épített szoftvertípus szoftver (software) program ami segítségével a számítógép megadott feladatokat hajt végre például: operációs rendszer gyakran változik biztosítja a hardver működését és alapvető funkcióit Informatikai alapfogalmak egyszerű gép - műveletvégző... - vázlatosan Informatikai alapfogalmak egyszerű gép - programmemória... - vázlatosan op a b 2 M 4 M - műveletvégző - művelet (op) 2,3 - adat értéke (a,b) 4 - eredmény értéke P op a b 2 M 4 P - programmemória M - műveletvégző - művelet 2,3 - adat értéke 4 - eredmény értéke 3 3
Informatikai alapfogalmak egyszerű gép - adatmemória... - vázlatosan Informatikai alapfogalmak... - vázlatosan egyszerű gép - eredmény visszaírása P op x y 2 3 A a b 4 5 M 6 P - programmemória A - adatmemória M - műveletvégző - művelet 2,3 - adat címe 4,5 - adat értéke 6 - eredmény értéke P op x y 2 3 A a b 4 5 M 6 P - programmemória A - adatmemória M - műveletvégző - művelet 2,3 - adat címe 4,5 - adat értéke 6 - eredmény értéke Informatikai alapfogalmak... - vázlatosan egyszerű gép - következő utasítás címe egyszerű gép Informatikai alapfogalmak... - vázlatosan P 8 op x y q 2 3 A a b 4 5 M 6 P - programmemória A - adatmemória M - műveletvégző - művelet 2,3 - adat címe 4,5 - adat értéke 6 - eredmény értéke 8 - következő cím P 8 op x y q C 2 3 7 A a b 4 5 M 6 P - programmemória A - adatmemória M - műveletvégző C - címkiszámító - művelet 2,3 - adat címe 4,5 - adat értéke 6 - eredmény értéke 7 - következő 8 - következő cím
Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása, kettes számrendszer Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása számolás véges pontosságú számokkal kritériumai: hatékony tárolás egyértelműség (könnyen értelmezhető) egyszerű, gyors műveletvégzés A kettes számrendszer előnyei: technikai okok: legjobban megkülönböztethető állapotok elvi, matematikai okok: "tömörség" hány darab számjegy (d), hány féle számjegy (f) ; x = f d Példa véges és fix pontosságú számok véges pontosságú számok (finite precision numbers) zárt (closure): "halmazon belül marad" túlcsordulás (overflow), alulcsordulás (underflow) "másféle" szám Az egész számok halmazára az összeadás, szorzás, kivonás művelete zárt, az osztás nem. A természetes számok halmazára az összeadás, szorzás művelete zárt, a kivonás és az osztás nem. A véges pontosságú számok halmazára az összeadás, szorzás, kivonás, osztás művelete nem zárt. Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása számrendszer alapszáma (radix) legfontosabb alapszámok: 0 (tizes), 2 (bináris), 6 (hexadecimális) d n...d 2 d d 0.d d 2...d k szám = n i= k d i 0 i A k alapú számrendszerhez k számjegy (szimbólum): tizes: 0 2 3 4 5 6 7 8 9 bináris: 0 hexadecimális: 0 2 3 4 5 6 7 8 9 A B C D E F Példa 2006 = 2 0 3 + 0 0 2 + 0 0 + 6 0 0 = 2000 + 0 + 0 +6 2006 = 2 0 + 2 9 + 2 8 + 2 7 + 2 6 + 0 2 5 + 2 4 + 0 2 3 + 2 2 + 2 + 0 2 0 = 024 + 52 + 256 + 28 + 64 + 0 + 6 + 0 + 4 + 2 + 0 = 000 2 2006 = 7 6 2 + 3 6 + 6 6 0 = 792 + 208 + 6 = 7D6 6 Informatikai alapfogalmak Negatív bináris számok Példa előjeles nagyság (signed magnitude) Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása egyes komplemens (ons s complement) kettes komplemens (two s complement) 2 m többletes (excess 2 m ) dec. előjeles -es komp. 2-es komp. 28 többlet. 5 000000 000000 000000 00000-5 00000 00 0 00 00 00000 00000 00000 0000-00 0000 000 0000 00000 fixpontos számábrázolás...
Informatikai alapfogalmak lebegőpontos számok Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása IEEE 754 szabvány Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása Tudományos jelölés n = f 0 e Példa n lebegőpontos szám (floating point) f törtrész (fraction) vagy mantissza (mantissa) e egész szám, kitevő vagy exponens (exponent) háromjegyű törtszám 0, f < vagy 0, exponens kétjegyű.. 0, 999 0 99.. 0, 00 0 99..0..0, 00 0 99..0, 999 0 99.. A szám értéke v: v = s m 2 e ahol s = + (pozitív szám) alol az előjel bit 0 s = - (negatív szám) ahol az előjel bit e = exponent - 27 (a 27 többletes ábrázolás miatt) m =.mantissa binárisan ( m < 2), egyesekre normalizált forma Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása IEEE 754 szabvány szám példa () Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása IEEE 754 szabvány szám példa (2) előjel bit: 0 ; s = + exponens: 000 2 = 24 ; e = 24-27 = -3 mantissza: 0 ; m =, 0 2 v = s m 2 e v = +, 0 2 2 3 = +,25 / 8 = +0,5625 v = -8,625 = 00.0 2 =.000 2 6 - negatív szám: s = m =.000 =.mantissza ; mantissza = 000 e = 6 ; exponens = 6 + 27 = 33 = 00000 2
IEEE 754 számok Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása Informatikai alapfogalmak BCD, Grey, hexadecimális Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása Jellemző Egyszeres pontosság Dupla pontosság Szám hosszúság 32 bit 64 bit Előjel bit bit Kitevő (exponens) 8 bit bit Törtrész (mantissza) 23 bit 52 bit Kitevő ábrázolása 27 többletes 023 többletes Kiterjedés kb. 0 38 0 38 kb. 0 308 0 308 Típus Exponens Mantissza Nulla 0 0 Denormalizált szám 0 nem nulla Normalizált szám to 2 e 2 bármi Végtelen 2 e 0 Nem szám (NaNs) 2 e nem nulla BCD (Binary Coded Decimal) 9 7 3 0 : 000 00 0 00 BDC Grey kód - csak egy bit változik 0000, 000, 00, 000, 00, 0, 00, 000,... Hexadecimális 07 0 = 00 0 2 = 6 B 6 Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása ASCII (American Standard Code for Information Interchange): 7 bites, 32-26 kódú nyomtatható karakterek, például 32 = (szóköz), 48 = 0, 65 = A, 97= a UTF-8 (8-bit Unicode Transformation Format): változó hossz (-4 bájt), bájt ASCII, 2 bájt ékezetes betűk ISO 8859: különféle nemzeti kódtáblák (ISO 8859-2 a magyar) EBCDIC: IBM nagygépeken Egyéb "ábrázolandók" képek, filmek, zenék... gondolatok, érzések, illatok...... Informatikai alapfogalmak Összefoglalás, fogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása informatikai alapfogalmak, informatika, információ, bit, adat, jel algoritmus, elemi, megengedett lépések hardver, szoftver egyszerű gép adatábrázolás
Informatikai alapfogalmak Egészek ábrázolása Lebegőpontos számok ábrázolása Betűk, jelek ábrázolása /3 = 0.3333333333... /6 0 = 0, 000 2 /0 0 = 0, 000 00 00 00 00... 2
Központi feldolgozó egység Utasítás Példák Központi feldolgozó egység Utasítás Példák 3. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Központi feldolgozó egység - részletesen Neumann architektúra Központi feldolgozó egység és memória 2 Utasítás Utasításciklus Utasítástípusok, utasításkészlet Címzési módok 3 Példák MIPS 3000 utasítás - példa Eltérő címzésű gépek programozása Központi feldolgozó egység Utasítás Példák - részletesen Neumann architektúra Központi feldolgozó egység és memória Központi feldolgozó egység Utasítás Példák - módosítások - részletesen Neumann architektúra Központi feldolgozó egység és memória P 8 op x y q C 2 3 7 A a b 4 5 M 6 P - programmemória A - adatmemória M - műveletvégző C - címkiszámító - művelet 2,3 - adat címe 4,5 - adat értéke 6 - eredmény értéke 7 - következő 8 - következő cím programmemória és adatmemória összevonása memória és a központi feldolgozó egység (Central Processing Unit - CPU) különválasztása: műveletvégző egység, aritmetikai logikai egység (Arithmetical Logical Unit - ALU) vezérlő egység (Control Unit - CU) címkiszámító egység a memóriát és a központi feldolgozó egységet sínek kötik össze adatsín címsín vezérlősín
Regiszterek Központi feldolgozó egység Utasítás Példák - részletesen Neumann architektúra Központi feldolgozó egység és memória Központi feldolgozó egység Utasítás Példák Neumann architektúra - részletesen Neumann architektúra Központi feldolgozó egység és memória memória - központi feldolgozó egység sebességkülönbség utasítástároló regiszter (Instruction Register - IR) utasításszámláló regiszter (Program Counter - PC) adatregiszterek Neumann elv: soros utasításvégrehajtás (az utasítások végrehajtása időben egymás után történik) kettes (bináris) számrendszer használata belső memória (operatív tár) használata a program és az adatok tárolására teljesen elektronikus működés széles körű felhasználhatóság, alkalmasság bármilyen adatfeldolgozási feladatra Központi feldolgozó egység Utasítás Példák - részletesen Neumann architektúra Központi feldolgozó egység és memória Memória - CPU - sinek blokk diagramm Központi feldolgozó egység Utasítás Példák CPU blokk diagramm - részletesen Neumann architektúra Központi feldolgozó egység és memória címsín utasításszámláló reg. CPU Memória vezérlö egység dekódoló utasítástároló reg. ALU regiszterek adatsín
Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Utasításciklus (instruction cycle, fetch-execute cycle) Központi feldolgozó egység Utasítás Példák Utasításciklus - utasításelérés Utasításciklus Utasítástípusok, utasításkészlet Címzési módok elérés (fetch): minden utasításra azonos utasítás elérése a memóriából programszámláló (program counter, PC) utasítástároló regiszter (instruction register, IR) címsín CPU utasításszámláló reg. 2 utasítás dekódolása végrehajtás (execute): utasításonként változó 3 operandus(ok) beolvasása a memóriából 4 utasítás végrehajtása vezérlő egység, adatút, regiszterek aritmetikai-logikai egység (arithmetic logic unit, ALU) 5 a művelet eredményének az eltárolása a következő utasítás címének a kiszámítása Memória adatsín vezérlö egység dekódoló utasítástároló reg. ALU regiszterek Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Utasításciklus - utasítás-dekódolás Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Utasításciklus - operandusok elérése címsín CPU utasításszámláló reg. címsín CPU utasításszámláló reg. Memória vezérlö egység dekódoló utasítástároló reg. ALU regiszterek Memória vezérlö egység dekódoló utasítástároló reg. ALU regiszterek adatsín adatsín
Központi feldolgozó egység Utasítás Példák Utasításciklus - műveletvégzés Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Utasításciklus - erdemény eltárolása címsín CPU utasításszámláló reg. címsín CPU utasításszámláló reg. Memória vezérlö egység dekódoló utasítástároló reg. ALU regiszterek Memória vezérlö egység dekódoló utasítástároló reg. ALU regiszterek adatsín adatsín utasítástípusok Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Központi feldolgozó egység Utasítás Példák Egy utasítás felépítése Utasításciklus Utasítástípusok, utasításkészlet Címzési módok adat-töltő, adatátvitel a számítógép funkcionális részei között aritmetikai, logikai műveletek végzése adatokkal programvezérlő, vezérlésátadás a program egyik részéről egy másik részére speciális, rendszervezérlő, hatékony működést segítő I/O, adatátvitel a számítógép és a környezete között műveleti kód módosításra utaló rész címrész
Központi feldolgozó egység Utasítás Példák 4 címes utasításforma Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Központi feldolgozó egység Utasítás Példák 3 címes utasításforma Utasításciklus Utasítástípusok, utasításkészlet Címzési módok műveleti. adat 2. adat eredmény következő utasítás kód címe címe címe címe Példa 256 különféle utasítás - 8 bites műveleti kód 6MiB memória - 24 bites címek utasításhossz - + 4 3bájt = 3 bájt műveleti kód. adat címe 2. adat címe eredmény címe utasításszámláló regiszter használata Központi feldolgozó egység Utasítás Példák 2 címes utasításforma Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Központi feldolgozó egység Utasítás Példák címes utasításforma Utasításciklus Utasítástípusok, utasításkészlet Címzési módok műveleti kód. adat címe 2. adat címe (eredmény címe) "eredmény címe = 2. adat címe" használata műveleti kód adat címe művelet csak adaton (például: növelés -el) akkumulátor regiszter (Accumulator register): a 2. adat az akkumulátor regiszterből eredmény az akkumulátor regiszterbe
Központi feldolgozó egység Utasítás Példák 0 címes utasításforma Utasításciklus Utasítástípusok, utasításkészlet Címzési módok jelölések Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok műveleti kód művelet az akkumulátor regiszteren (például: növelés -el) S: tárcím R: regisztercím A: akkumulátor regiszter I: közvetlen adat az utasításban MK: műveleti kód @: tetszőleges művelet (S): adat a tárban (R): adat a regiszterben (A): adat az akkumulátor regiszterben LI(n): az n. utasítás hossza SI(n): az n. utasítás címe Központi feldolgozó egység Utasítás Példák Utasításciklus Utasítástípusok, utasításkészlet Címzési módok 4 cím MK S S2 S3 S4 (S) @ (S2) -> (S3) SI(n+) = S4 3 cím MK S S2 S3 (S) @ (S2) -> (S3) SI(n+) = SI(n) + LI(n) 2 cím MK S S2 (S) @ (S2) -> (S2) cím MK S (S) @ (A) -> (A) 0 cím MK @ (A) -> (A) R cím MK R @ (R) -> (R) +R cím MK R S (R) @ (S) -> (R) vagy (R) @ (S) -> (S) 2 R cím MK R R2 (R) @ (R2) -> (R) 3 R cím MK R R2 R3 (R) @ (R2) -> (R3) közvetlen MK I S vagy I @ (S) -> (S) vagy operandus MK I @ I -> (A) Központi feldolgozó egység Utasítás Példák Címértelmezés és címmegadás címértelmezés Utasításciklus Utasítástípusok, utasításkészlet Címzési módok közvetlen (immediat) adatmegadás MK I @ I közvetett (inherent), implicit címzés MK @ (A) közvetlen (direkt) címzés MK S @ (S) közvetett (indirekt) címzés MK S @ ((S)) címmegadás abszolút címmegadás MK S @ (S) rövidített címmegadás MK s @ (s+bázis cím)
Központi feldolgozó egység Utasítás Példák Utasítások kódolása - példa Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Központi feldolgozó egység Utasítás Példák Utasítások kódolása Utasításciklus Utasítástípusok, utasításkészlet Címzési módok Példa 8 bites utasításhossz, 3 bites címhossz: 3 címes címzés: 3 3 > 8 : lehetetlen 2 címes címzés: 8-2 3 = 2 : 4 féle utasítás címes címzés: 8-3 = 5 : 32 féle utasítás 0 címes címzés: 8 bit : 256 féle utasítás műv. kód. cím 2. cím 2 bit 3 bit 3 bit 00 xxx yyy 0 xxx yyy 0 xxx yyy xxx yyy műv. kód. cím 2. cím 2 bit 3 bit 3 bit 00 xxx yyy 0 xxx yyy 0 xxx yyy 000 yyy 00 yyy 00 yyy 0 yyy 00 yyy 0 yyy 0 yyy yyy Központi feldolgozó egység Utasítás Példák MIPS 3000 utasítás - példa Eltérő címzésű gépek programozása Utasításkészlet - MIPS 3000 (988) Regiszterek (32 bites): $0.. $3 Formátumok: Típus Formátum(bitek) R opcode(6) rs(5) rt(5) rd(5) shamt(5) funct(6) I opcode(6) rs(5) rt(5) immediate(6) J opcode(6) address(26) Példák: Típus Szintaxis Szemantika (magyarázat) R add $,$2,$3 $=$2+$3 (regiszter összeadás) I addi $,$2,CONST $=$2+CONST (regiszterhez konstans) I lw $,CONST($2) $= Mem[$2+CONST] (szó betöltés) I sll $,$2,CONST $=$2 < < CONST (bit eltolás 2 CONST ) I beq $,$2,CONST if ($=$2) goto PC+4+CONST (ugrás ha) J j CONST goto CONST (feltétlen ugrás) Központi feldolgozó egység Utasítás Példák MIPS 3000 utasítás - példa Eltérő címzésű gépek programozása Eltérő címzésű módú gépek programozása példa Adott 4 különféle típusú gép: 0 címes gép (verem), pld.: ADD, PUSH (M), POP (M) címes gép, pld.: ADD M = ACC <- (ACC) + (M) 2 címes gép, pld.: ADD X,Y = X <- (X) + (Y) 3 címes gép, pld.: ADD X,Y,Z = Z <- (X) + (Y) Műveletek: MOV, ADD, SUB, DIV, MUL, (LDA,STA) Kiszámolandó: Z:= ((A+B)*C)/((D-E)*F) Adatok: M - 20 bites memóriacím X,Y,Z - 20 bites memória, vagy 3 bites regisztercím a műveleti kód rész hossza 8 bit Kérdés mindegyik géptípusra (programra): utasítások száma, program mérete (bit-ben), felhasznált regiszterek száma
Központi feldolgozó egység Utasítás Példák MIPS 3000 utasítás - példa Eltérő címzésű gépek programozása Példa eltérő címzésű módú gépek programozására Központi feldolgozó egység Utasítás Példák Összefoglalás, fogalmak MIPS 3000 utasítás - példa Eltérő címzésű gépek programozása 0 címes gép: Z=A+B PUSH A 8+20 PUSH B 8+20 ADD 8 POP Z 8+20 3 utasítás 92 bit címes gép: Z=A+B LDA A 8+20 ADD B 8+20 STA Z 8+20 3 utasítás 84 bit 2 címes gép: Z=A+B MOV R0 A 8+3+20 MOV R B 8+3+20 ADD R R2 8+3+3 MOV Z R 8+20+3 4 utasítás 07 bit 3 címes gép: Z=A+B ADD Z A B 8+20+20+20 utasítás 68 bit központi feldolgozó egység egyszerű gép Neumann architektúra utasításciklus utasítástípusok utasításkészlet címzési módok
Logikai kapcsolások Vezérlő egység megvalósítása Logikai kapcsolások Vezérlő egység megvalósítása 4. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Logikai kapcsolások Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 2 Vezérlő egység megvalósítása "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő Logikai kapcsolások Vezérlő egység megvalósítása ÉS, VAGY, NEM logikai kapuk Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók NEM-ÉS, NEM-VAGY, KIZÁRÓ-VAGY logikai kapuk ÉS (AND) x y z 0 0 0 0 0 0 0 VAGY (OR) x y z 0 0 0 0 0 NEM (NOT) x z 0 0 x z NEM-ÉS (NAND) x y z 0 0 0 0 0 NEM-VAGY (NOR) x y z 0 0 0 0 0 0 0 kizáró vagy (XOR) x y z 0 0 0 0 0 0 x y z x y z x y z x y z x y z
Multiplexer Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 4x2 bemenetű és 4 bemenetű multiplexer multiplexer s d0 d z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d0 d s d0 d MUX s z s z 0 d0 d z x3 y3 x2 y2 x y x0 y0 s MUX MUX MUX MUX z3 z2 z z0 d0 d d2 d3 s z 0 x y s0 MUX MUX s0 s z 0 0 d0 0 d2 0 d d3 MUX s z Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 4 bites AND/XOR művelet (logikai egység) Összeadás Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók x3 y3 MUX z3 x2 y2 x y MUX MUX z2 z s z 0 x AND y x XOR y Reprezentáció?! 0+0=0 0+= +0= +=... x0 y0 MUX z0 s
Félösszeadó Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók Logikai kapcsolások Vezérlő egység megvalósítása Többbites számok összeadása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók félösszeadó x y c s 0 0 0 0 0 0 0 0 0 s = sum = összeg c = carry = átvitel x y x y /2+ s c s c 000 +00 0 00 átvitel (carry) 0 +00 000 fix pontosság... Logikai kapcsolások Vezérlő egység megvalósítása bites teljes összeadó Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 4 bites összeadó Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók teljes összeadó x y cin cout s 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x y cin x y cin /2+ + s cout /2+ cin = carry in = bemeneti átvitel cout = carry out = kimeneti átvitel c s cout y3 x3 cout3 cin3 y2 x2 cout2 cin2 y x cout cin y0 x0 c0 + + + + cout0 s3 s2 s s0 terjedő átvitel (ripple carry) s = x + y
Logikai kapcsolások Vezérlő egység megvalósítása Kivonás kettes komplemensel Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 4 bites összeadó-kivonó kapcsolás 5 00 +2 +000 7 0 2 000 bináris -2 0 egyes komplemens -2 0 kettes komplemens x3 x2 x x0 y3 y2 y MUX MUX MUX z3 z2 z z0 s z 0 x+y x-y 5 00 +-2 +0 kivonás helyett, negált összeadás 3 00 túlcsordulás (overflow) y0 MUX cin cout s Logikai kapcsolások Vezérlő egység megvalósítása Elemi logikai kapuk Egyszerű logikai kapcsolások Összeadók 4 bites aritmetikai-logikai kapcsolás x0..3 y0..3 4 4 s0 s0 s z 0 0 x+y 0 x AND y 0 x-y x XOR y aritmetikai (+/-) logikai (and/xor) 4 4 4x2 MUX s 4 z0..3 x s z kapuzó áramkör x s z 0 0 hi-z 0 0 0 hi-z hi-z = high impedance Logikai kapcsolások Vezérlő egység megvalósítása "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő x s demultiplexer x s z0 z 0 0 0 0 0 0 0 0 0 0 z0 z
Kapuzás Logikai kapcsolások Vezérlő egység megvalósítása "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő Logikai kapcsolások Vezérlő egység megvalósítása Kapuzás összehasonlítás "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő utasításelérés: 0,,2,3 2 dekódolás: 4 3 operandusok beolvasása: 5,,2,6 4 műveletvégzés: 7,8,9 5 eredmény tárolása, következő: 0, k k9 k5 k0 k0 ALU Vez/Dek PC k7 k8 k4 MEM ACC TMP mk op k k2 k6 k3 k k9 k5 k0 k0 ALU Vez/Dek PC k7 k8 k4 MEM ACC TMP mk op k k2 k6 k3 k k9 k5 k0 k0 ALU Vez/Dek PC k7 k8 k4 MEM ACC TMP mk op k2 k6 k3 Logikai kapcsolások Vezérlő egység megvalósítása Huzalozott vezérlő egység "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő Logikai kapcsolások Vezérlő egység megvalósítása "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő Mikroprogramozott vezérlő egység counter clock DEMUX mk DEMUX DEMUX k0 k k2 k3 k4 utasításelérés: 0,,2,3 2 dekódolás: 4 3 operandusok beolvasása: 5,,2,6 4... mikroprogramtár... 00000000 00000000000 00000000 000000000 0000000000... mikroutasítás vezérlő jelek utasításelérés: 0,,2,3 2 dekódolás: 4 3 operandusok beolvasása: 5,,2,6 4 műveletvégzés: 7,8,9 5 eredmény tárolása, következő: 0, 2 3 4 5 k5
Logikai kapcsolások Vezérlő egység megvalósítása Összefoglalás, fogalmak "Ütemezés", "kapuzás" Huzalozott vezérlő Mikroprogramozott vezérlő elemi logikai kapuk egyszerű logikai kapcsolások, multiplexer, demultiplexer összeadás, félösszeadó, teljes összeadó, többbites összeadó "kapuzás" vezérlő egység huzalozott vezérlő mikroprogramozott vezérlő
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó 5. előadás Műveletvégzés gyorsítása Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest 2 Gyorsítótár Motiváció Megvalósítás 3 Csővezeték-feldolgozó Pipeline működés CISC / RISC Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Gyorsabb számítógép? Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Órajelfrekvencia, idő, távolság Órajel-frekvencia Adatsín... (sávszélesség, átvitel) Memória gyorsítása (memória hierarchia) Párhuzamosítás utasítás Több processzor Több regiszter (gyors memória hozzáférés) Kevesebb utasításból utasításhoz kevesebb órajelciklus Műveletvégzés (ALU) gyorsítása... normál kapu kapcsolási idő 0ns Példa 2400 MHz-es órajel két órajel közötti idő: /(2400 0 6 )s 0.4ns "fénysebesség": 300000km/s mekkora utat tesz meg a fény két órajel között: (300000 0 3 m/s) (/(2400 0 6 s)) 0.25m
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó 4 bites összeadó y3 x3 cin3 cout3 y2 x2 cin2 y x cin y0 x0 c0 + + + + cout2 cout cout0 s3 s2 s s0 terjedő átvitel (ripple carry) 4 3 kapu késleltetés x s y cin c x y s c cout Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó 4bites átvitel-előrelátás ("carry lookahead") Átvitel kiszámítás Ci+= (Xi AND Yi) OR (Xi AND Ci) OR (Yi AND Ci) Ci+=(Xi * Yi) + (Xi * Ci) + (Yi * Ci) Ci+=(Xi * Yi) + ((Xi + Yi ) * Ci) Gi = generate = Xi *Yi Pi = propagate =Xi + Yi Ci+=Gi+Pi*Ci C=G0+P0*C0 C2=G+P*C=G+P*G0+P*P0*C0 C3=G2+P2*C2=G2+P2*G+P2*P*G0+P2*P*P0*C0 C4=G3+P3*C3= =G3+P3*G2+P3*P2*G+P3*P2*P*G0+P3*P2*P*P0*C0 C4 független C..C3-tól, csak X..4, Y..4 és C0-tól függ Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Processzor - memória sebesség különbség Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Memória olvasása gyorsítótár nélkül Memória memória olvasás, gyorsítótár nélkül memória megcímzése 2 memóriából adat kiolvasása CPU 2 Az integrált áramkörök összetettsége ("sebessége") 8 hónaponként megduplázódik (Moore törvénye). 986-2000 CPU sebesség: +55%/év, memória: +0%/év
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Gyorsítótár sikeres olvasása Motiváció Megvalósítás Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Gyorsítótár sikertelen olvasása Memória Cache CPU 2 gyorsítótár olvasáskor az adat megtalálható (cache hit) cache megcímzése, adat a cache-ban 2 cache-ból adat kiolvasása 2 Memória Cache CPU 3 4 gyorsítótár olvasásakor az adat nem található meg (cache miss) cache megcímzése, adat nincs a cache-ban 2 memória megcímzése 3 memóriából adat kiolvasása, adat beírása a cache-ba 4 adat elküldése a CPU-nak Gyorsítótár írása Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Kérdések, fogalmak a cache-sel kapcsolatban írásáteresztés (write-through) cache írásakor a memóriába is bekerül az új érték "lassú de biztos" cache - memória koherencia (megegyezőség) késleltetett írású (write-back) cache írásakor bejegyzés a módosult blokkban (piszkos bit - dirty bit), a memória nem változik cache törlésekor ha korábban módosult a blokk akkor a memóriában is módosítani kell ha nem, akkor a memóriát nem kell módosítani "felesleges" memóriaírásoktól mentes találati arány (h) cacheelérés (t c ), memóriaelérés (t m ), átlagos idő (t a ) t a = h t c + ( h) (t c + t m ) t a = h t c + ( h) t m miért működik h = /000, t c = ns, t m = 20ns t a = 0.00 +.999 2 = + 20.979 = 2.979ns programok helyi lokalitása programok időbeli lokalitása blokkos adatátvitel memória leképzése a cache-re teljesen asszociatív közvetlen leképzés halmazasszociatív teli cache esetén?
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Memória teljesen asszociatív leképzése cache-re Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Memória teljesen asszociatív leképzése cache-re 0 j N- cimke i m x k 0 M- i x k 0 j N- cimke i m x k 0 M- i x k M=000 N=0 cimke i=756 0 0 i 8 756 x 9 m-n k 999 x k Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Memória közvetlen leképzése cache-re Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Memória közvetlen leképzése cache-re 0 i MOD N N- cimke i DIV N m-n x k 0 M- i x k 0 i MOD N N- cimke i DIV N m-n M=000 N=0 cimke i=756 0 6 9 75 m-n x k x k 0 999 i 0 i M- x k x k M=0000000000 N=000 i=000 000 0 cimke 00 m-n x k i x k
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Teljesen asszociatív leképzés Motiváció Megvalósítás Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Motiváció Megvalósítás Közvetlen leképzés, halmazasszociatív leképzés Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Soros utasítás-feldolgozás Pipeline működés CISC / RISC Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Csővezeték-feldolgozás Pipeline működés CISC / RISC result execute operands decode fetch csővezeték követelmények részfázisokra bontás független részfázisok, önálló erőforrások egyik fázis eredménye a következő induló adata 2 2 2 2 2 3 3 3 3 3 t result execute operands decode fetch 2 2 2 3 3 4 csővezeték működése 2 3 4 5 2 3 3 4 4 5 5 6 6 7 4 5 6 7... 5 6 6 7 7 ha egy utasítás () egy feldolgozási fázisa (fetch) befejeződik, az utasítás () egy következő fázisa elkezdődik (decode) a következő utasítás (2) feldolgozása (fetch) elkezdődik egy időben több részfázis működik egy időben több utasítás dolgozódik fel 7 t
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Pipeline működés CISC / RISC Csővezeték-feldolgozás, ugróutasítás esetén result execute operands decode fetch 2 ugró utasítás esetén 2 2 3 3 4 2 3 4 8 5 8 9 8 csak az ugró (elágazó) utasítás feldolgozása végén ismert az ugrási cím (nem a következő utasítás) a csővezeték már elkezdte feldolgozni a (soron) kövektező utasításokat 8 9... a csővezetéket ki kell "üríteni" és "újraindítani" 8 9 8 9 9 t Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Pipeline működés CISC / RISC Csővezeték-feldolgozó problémák és megoldások problémák... lépcsők (fázisok) számának a növelése nem egyenlő hosszú fázisok ugró, vezérlésátadó utasítások, megszakítások regiszter (adat) függőségek megoldások... üres utasítások beiktatása elágazásjövendölés (branch prediction) utasítások átrendezés Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Soros utasítás-feldolgozás Pipeline működés CISC / RISC Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Csővezeték-feldolgozó Pipeline működés CISC / RISC Példa 5 "fázisból" ("lépésből") áll egy utasítás feldolgozása (IF,ID,EX,MEM,WB) az utasítások egymás után következnek
Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Pipeline működés CISC / RISC "Szuperskalár" csővezeték-feldolgozó CISC / RISC Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Pipeline működés CISC / RISC több párhuzamos csővezeték CISC Complete Instruction Set Computer teljes utasításkészletű számítógép sok, bonyolult utasítás változó utasításhossz mikroprogramozott vezérlő több órajel/utasítás rövid program példa: VAX, Intel x86 RISC Reduced Instruction Set Computer csökkentett utasításkészletű számítógép kevés, egyszerű utasítás fix utasításhossz huzalozott vezérlő sok regiszter órajel/utasítás csővezeték-feldolgozó példa: PowerPC, Alpha Műveletvégzés gyorsítása Gyorsítótár Csővezeték-feldolgozó Összefoglalás, fogalmak Pipeline működés CISC / RISC gyorsítás, órajelfrekvencia... műveletvégzés gyorsítása Moore törvénye gyorsítótár, találati arány, leképzés memóriára csővezeték feldolgozó CISC / RISC
Memória Memória 6. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Memória Memória-hierarchia Tárolókezelő egység Átlapolásos technika 2 Szegmentálás Lapozás Memóriák... Memória Memória-hierarchia Tárolókezelő egység Átlapolásos technika Memória-hierarchia Memória Memória-hierarchia Tárolókezelő egység Átlapolásos technika Memória feladata Adatok (több-kevesebb) megőrzése(rövidebb-hosszabb) ideig. címsín memória CPU adatsín CPU, regiszterek, CPU ciklus, 00B gyorsítótárak (cache) (L-3), CPU ciklus, 0kB központi memória, 00 CPU ciklus, GB lemez háttértár, szalagos, optikai, ms, 00GB "harmadlagos" háttértár, lemezegységek 0s, TB-PB "offline" tár, emberi beavatkozás szükséges - $$$
Memória Tárolókezelés feladatai Memória-hierarchia Tárolókezelő egység Átlapolásos technika Memória régen... Memória Memória-hierarchia Tárolókezelő egység Átlapolásos technika a CPU által megcímzett címen lévő érték elérése tárhierarchia hatékony működtetése virtuális címek kezelése lapozás, szegmentálás memória "szétosztása" több program, több felhasználó "védelem" rendszerprogramok a felhasználótól felhasználók adatai felhasználók programjai (de közös eljárások) IBM 650 (950-ben a legjobb tudományos számítógép) 2000 szavas memória ALGOL fordítóprogram 024 szavas gépre PDP- időosztásos rendszer (!) 4096 db 8 bites szó 96 virtuális memória... Memória Átlapolásos (overlay) technika Memória-hierarchia Tárolókezelő egység Átlapolásos technika Memória Memória-hierarchia Tárolókezelő egység Átlapolásos technika Cím, címartomány, címszélesség Probléma Nagy program - kicsi memória Megoldás Program feldarabolása, csak a szükséges darab(ok) a memóriában data p data p0 p p2 p3 data p0 data p0 p2 data p0 p3 data p0 p címszélesség memória címek cím 000000 00000 00000 0000 000 címtartomány címszélesség címtartomány = 2 0000 memória értékek érték
Memória Logikai - fizikai címek Logkai cím(tartomány) CPU által címezhető programban használt i Szegmentálás Lapozás Fizikai cím(tartomány) központi memória mérete adott géptől függ Logikai - fizikai címek megfeleltetése program logikai cím logikai címtartomány MMU fizikai cím fizikai címtartomány központi memória Memóriakezelő egység (Memory Management Unit - MMU) j Memória Szegmentált memória kezelése szegmenstábla memória s2 s Szegmentálás Lapozás szegmens: tetszőleges méretű memória blokk cím meghatározása: szegmens meghatározása + szegmensen belüli "eltolás" (offset) meghatározása szegmenstáblában: szegmens kezdőcíme + szegmens hossza üres memóriatartományok kezelése Memória Szegmentálás Lapozás Logikai cím - szegmenstábla - fizikai cím Memória Szegmentálás Lapozás szegmentált címkiszámítás - példa logikai cím szegmensszám eltolás szegmenstábla logikai cím szegmensszám eltolás 2 83 szegmenstábla bázis cím hossz összehasonlító fizikai cím bázis cím + eltolás bázis cím hossz 2 000 200 7 3000 500 + + = 000 83 83 bázis cím eltolás fizikai cím
Memória Szegmentálás Lapozás Szegmens elhelyzése, "memória-kompaktálás" Memória Szegmentálás Lapozás Lapozásos virtuális memóriakezelés S7 S2 S7 S2 S7 S3 logikai memória MMU fizikai memória S3 S? S3 S? S másodlagos memória lapok: azonos (logikai, fizikai) rögzített méretű adatblokkok Memória Szegmentálás Lapozás Lapozásos virtuális memóriakezelés Memória Kapcsolódó fogalmak Szegmentálás Lapozás logikai memória fizikai memória MMU másodlagos memória logikai - fizikai címtartomány memóriakezelő egység (Memory Management Unit - MMU) lapozás (paging), lapcsere laptábla " cserehely" (swap) jelenléti bit (present bit) laphelyettesítési eljárás logikai lapok - fizikai lapkeretek
Memória Szegmentálás Lapozás Lapozásos virtuális memóriakezelés Memória Logikai cím - laptábla - fizikai cím Szegmentálás Lapozás logikai lapszám eltolás laptábla fizikai lapszám jelenléti bit fizikai lapszám eltolás Memória Lapozásos címkiszámítás - példa Szegmentálás Lapozás Memória Lapozási mechanizmus Szegmentálás Lapozás logikai cím (5biten) lapszám eltolás (4biten) (biten) 0000 00000000000... 0000 000 00000000000... 000...... 0...... 00000000000... 0000 000 000 00...... logikai lapszám 0 0.... 0 00 00...... 00 jelenléti bit fizikai cím (3biten) lapszám eltolás (2biten) (biten)... 00 00000000000 00 0 00000000000... 0 0... 0... 00000000000 fizikai lapszám Ha egy lap nincs a memóriában: laphiba (page fault) 2 megszakítás 3 a kért lap betöltése a háttértárolóról Ha nincs hely a lapnak a memóriában: laphelyettesítési eljárás (egy lap eltávolítása...) optimális ("ha tudnánk előre a lapkérelmeket") legrégebben bentlévő (FIFO) legrégebben használt (LRU) legritkábban használt... megvalósítás bonyolultsága, tárigénye
Memória Optimális laphelyettesítés - példa Szegmentálás Lapozás Memória FIFO laphelyettesítés - példa Szegmentálás Lapozás Optimális laphelyettesítés 3 lapkerettel lapkérelmek 2 3 2 4 6 2 5 6 4 6 lapkeret >2 2 2 2 2 2> >5 5> > lapkeret 2 >3 3 3> >6 6 6 6 6 6 6 lapkeret 3 >4 4 4 4 4 4 4 4 laphibák 2 3 4 5 6 találati arány (hit ratio) = 5/ FIFO laphelyettesítés 3 lapkerettel lapkérelmek 2 3 2 4 6 2 5 6 4 6 lapkeret >2 2 2 2> >6 6 6 6> > lapkeret 2 >3 3 3 3> >2 2 2 2> >4 4 lapkeret 3 >4 4 4> >5 5 5 5> >6 laphibák 2 3 4 5 6 7 8 9 találati arány (hit ratio) = 2/ Memória LRU laphelyettesítés - példa Szegmentálás Lapozás Memória Belady anomália - példa Szegmentálás Lapozás LRU laphelyettesítés 3 lapkerettel lapkérelmek 2 3 2 4 6 2 5 6 4 6 lapkeret >2 2 2 2 2 2 2 2> > lapkeret 2 >3 3 3> >6 6 6 6 6 6 6 lapkeret 3 >4 4 4> >5 5 5> >4 4 laphibák 2 3 4 5 6 7 találati arány (hit ratio) = 4/ FIFO laphelyettesítés 3 lapkerettel lapkérelmek 3 2 0 3 2 4 3 2 0 4 lapkeret 3 3 3 0 0 0 4 4 4 4 4 4 lapkeret 2 2 2 2 3 3 3 3 3 lapkeret 3 2 2 2 2 2 0 0 laphibák 2 3 4 5 6 7 8 9 FIFO laphelyettesítés 4 lapkerettel lapkérelmek 3 2 0 3 2 4 3 2 0 4 lapkeret 3 3 3 3 3 3 4 4 4 4 0 0 lapkeret 2 2 2 2 2 2 2 3 3 3 3 4 lapkeret 3 2 2 2 2 lapkeret 4 0 0 0 0 0 0 laphibák 2 3 4 5 6 7 8 9 0
Memória Szegmentálás Lapozás További memóriakezelési lehetőségek, tulajdonságok Memória Összefoglalás, fogalmak Szegmentálás Lapozás többszintű lapozás szegmentált lapcímzés kezelése... szegmentálás + lapozás Translation Lookaside Buffer... a legutóbbi logikai-fizikai (lap)címmegfelelés tárolása "overhead" "working set", "demand paging"... "trashing" - multiprogramozás memória-hierarchia tárolókezelő egység virtuális memória kezelés szegmentálás, szegmenstábla lapozás, laptábla, laphiba, laphelyettesítési eljárás
Memóriatípusok csoportosítása, jellemzése Központi memória megvalósítása, ROM, RWM, RAM, CAM bit n m bit 7. előadás Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Programtervező Informatikus BSc - B szakirány 2007 / Budapest Memóriatípusok csoportosítása, jellemzése Központi memória megvalósítása, ROM, RWM, RAM, CAM bit n m bit Memória-hierarchia CPU, regiszterek, CPU ciklus, 00B gyorsítótárak (cache) (L-3), CPU ciklus, 0kB központi memória, elsődleges memória 00 CPU ciklus, GB lemez háttértár, szalagos, optikai, másodlagos memória ms, 00GB "harmadlagos" háttértár, lemezegységek 0s, TB-PB "offline" tár, emberi beavatkozás szükséges - $$$ Memóriatípusok csoportosítása, jellemzése Központi memória megvalósítása, ROM, RWM, RAM, CAM bit n m bit Memóriatípusok csoportosítása, jellemzése Mennyiségi jellemzés Időbeli jellemzés 2 Központi memória megvalósítása, ROM, RWM, RAM, CAM ROM megvalósítás PROM megvalósítás Memóriatípusok csoportosítása, jellemzése Központi memória megvalósítása, ROM, RWM, RAM, CAM bit n m bit Mennyiségi jellemzés Időbeli jellemzés Memóriák "mennyiségi" jellemzése kapacitás: tárolható adat mennyisége legkisebb címezhető egység hozzáférési szélesség átlapolhatósági fok: egyszerre működhető modulok 3 bit n m bit Reset-Set Flip-Flop Data Flip-Flop x bit - 4x8 bit i+ i i+ i i+ i 8 bit 6 bit 8 bit