1 / 67

Számítógép architektúra (architecture)

Számítógép architektúra (architecture) A felhasználónak látszódó gép: adattípusok, utasítások, szolgáltatások összessége. Számítógép-felépítés (organization): a közvetlenül nem szükséges részekkel is foglalkozik. Strukturált felépítés

abra
Download Presentation

Számítógép architektúra (architecture)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Számítógép architektúra (architecture) A felhasználónak látszódó gép: adattípusok, utasítások, szolgáltatások összessége. Számítógép-felépítés (organization): a közvetlenül nem szükséges részekkel is foglalkozik. Strukturált felépítés Számítógép - utasítás – programozás: gépi nyelv (kód). Bonyolultabb nyelvek: fordítás vagy értelmezés. 1. előadás

  2. szint Ln nyelv, Mn virtuális gép Az Ln nyelvű programokat vagy az alsóbb szinten futó értelmező hajtja végre, vagy az alsóbb szinten futó fordítóprogram fordítja alsóbb szintre n-1. szint Ln-1 nyelv, Mn-1 virtuális gép . . . 0. szint L0 nyelv, M0 valódi gép Végrehajtja az L0 szintű programot. 1.1. ábra 1. előadás

  3. Gépi, nyelvi szintek (1.2. ábra) • Probléma orientált nyelvi szint fordítás (fordító program) • Assembly nyelvi szint fordítás (assembler) • Operációs rendszer szint részben értelmezés (operációs rendszer) • Gépi utasítás szint ha van mikroprogram, akkor értelmezés • Mikroarhitektúra szint hardvare 0. Digitális logika szint 1. előadás

  4. Gépi, nyelvi szintek (1.2. ábra) 0: digitális logika szint: kapu (gate), AND, OR, …  1 bites,  több bites memória, regiszter 1: mikroarchitektúra szint: mikroutasítások, mikroprogram - nem minden gépen létezik, de a gépi utasítások végrehajtását gyakran mikroprogram végzi, ekkor ez a szint értelmezi a 2. szintet. • Regiszterek, aritmetikai-logikai egység - ALU • Adatfolyam - adatút 2: gépi utasítás szint (tényleges gépi utasítások): itt dől el a kompatibilitás kérdése. 1. előadás

  5. 3: operációs rendszer szint: speciális kiegészítők (memóriakezelés, párhuzamos futtatás, …). Általában értelmezés. A szint utasításait • az operációs rendszer • vagy közvetlenül a 2. szinthajtja végre Az eddigi szintek programjai hosszú számsorozatok (természetesen ma már szimbolikusan készülnek) ----- Eddig: rendszerprogramozók területe ----- 4: assembly nyelvi szint (ezek tényleges nyelvek, fordítás), szimbolikus leírás (A2) 5: probléma orientált nyelvi szint: pascal, C, C++, … , adatbázis kezelők, … 1. előadás

  6. Gépi utasítás szint Az utasítások a memóriában vannak tárolva. addr) commanddest, source1, source2, next addr: az utasítást tartalmazó memóriarekesz címe command (utasítás): az utasítás kódja dest (cél): itt képződik az eredmény source1 (forrás1): a művelet 1. operandusa source2 (forrás2): a művelet 2. operandusa next: a következő végrehajtandó utasítás címe. Legtöbbször az utasítás utáni első rekesz címe, ezért általában nem kell megadni, csak akkor, ha más utasítással folytatódik a program (ugró utasítás). 1. előadás

  7. Gépi utasítás szint cím) add dest, souce1, source2 hatására dest fölveszi a source1 + source2 értéket. Ilyenkor természetesen elvész dest régi értéke. Sokszor egyszerűsítik az utasításokat, pl.: cím) add op1, op2 hatására op1 fölveszi az op1 + op2 értéket. További egyszerűsítés: cím) add op hatására A fölveszi az A + op értéket, ahol A egy kitüntetett regiszter (accumulator). 1. előadás

  8. Hardver, szoftver fejlődése Többszintű gépek kialakulása. • Kezdetben két szint: • digitális logika, • utasítások. • Mikroprogram (hardver bővítése programozással): Wilkes, 1951. Gyorsan elterjedt.Csúcs: hatvanas, hetvenes évek; nagyon sok új utasítás (*, / , …, ciklusszervezés, megszakítások) - később ezek az utasítások hardverrel is megvalósíthatókká váltak, és úgy gyorsabbak lettek - folyamatosan változó határok. 1. előadás

  9. Operációs rendszerek A hatvanas években készültek először: • supervisor, rendszerhívások, • kötegelt (batch) feldolgozás, • közvetlen telefonos összeköttetés remote terminálok, időosztás (timesharing). 1. előadás

  10. Történelmi áttekintés (1.4. ábra) 0. generáció: Mechanikus gépek • Pascal (1642): összeadás, kivonás (37+25=62) 1. előadás

  11. Hova lett a 12? Számítógép architektúra (architecture) 12 + 7 = 19 1. előadás

  12. 21 • Leibniz (~1700): szorzás, osztás is 21*310 =6510 6510 310 1. előadás

  13. Babbage (1834): differencia gép (csak egy programja volt) – különböző táblázatok készítésére volt alkalmas. Összeadás, kivonás, ciklus. Kiírás fémlemezre (nyomtatás a fémlemezről). • Babbage: analitikus gép (nem készült el). Programozható: utasítások lyukkártyáról Ada Augusta Lovelace. Egységek: memória (1000 db 50 jegyű szám), malom (+, -, *, /), input, output (lyukkártya). • Zuse, 1936: elektromágneses relék használata. • Aiken (1944): Babbage nyomán: jelfogós gépet készített (Mark I, később Mark II) 1. előadás

  14. 1. generáció: elektroncső (1945-1955). • COLOSSUS (Turing, 1943): titkosírások megfejtése - 30 évre titkosítva. • ENIAC (Electronic Numerical Integrator and Computer - Mauchley, Eckert, 1943): 18000 cső, 140 KW, 30 tonna, 20 darab 10 decimális jegyes regiszter. 10 cső egy decimális számjegyhez! Dugaszolással programozható. 1946-ig nem sikerült befejezni. Nyári iskola - sok próbálkozás. EDSAC (Wilkes, Cambridge, 1949), EDVAC (1949) → UNISYS. • Eckert és Mauchley sikertelenül próbálják találmánynak elfogadtatni. 1. előadás

  15. Memória Vezérlő egység Aritmetikai-logikai egység Bemenet Kimenet Akkumulátor Neumann János megismerte az ENIAC-ot, és új gépet tervezett: bináris aritmetika, tárolt program. 1.5. ábra. Az eredeti Neumann-gép 1. előadás

  16. Neumann János (1.5. ábra): vezérlő, aritmetikai-logikai egység, memória, input, output. EDSAC: 2-es számrendszer, 4096 szavas memória. 40 bites szavak: előjeles egész, vagy két utasítás. Tárolt program: 8 bites utasításkód, 12 bites cím. Akkumulátor. Nem volt lebegőpontos aritmetika! • IBM 701 (1953) 2K 36 bites memória. • Legnagyobb 1. generációs: IBM 709 (1958). • Szegeden: M3 (1963). 1. előadás

  17. 2. generáció: tranzisztor (1955-1965). Tranzisztor feltalálása: 1948, Nobel díj: 1956. • Első jelentős tranzisztoros gép: DEC PDP-1 (1961). Teljesítménye fele az IBM 7090-nek (az IBM 709 tranzisztoros változata): 4K 18 bites szó, 5 s ciklusidő, 512x512 display! Ára csak töredéke: 120 000 US$. Több tucat eladott gép. 1. előadás

  18. CPU Memória Kezelő terminál Lyukszalag B/K Egyéb B/K Omnibus • Néhány évvel később: PDP-8: omnibusz (általános sín,1.6. ábra)– 15 000 US$, 50 000 eladott gép. 1.6. ábra. A PDP-8 „omnibus” • Magyarországon: KFKI, TPAi. • IBM 7090, 7094. 1. előadás

  19. Első üzlet-orientált gép (1961): IBM 1401 byte-szervezésű memória. • Burroughs B5000 (1963), Cél: hatékony ALGOL fordítót lehessen írni! • Első szuper-gyors gép (1964): CDC 6600 (tervező: Seymour Cray). Párhuzamos működésre képes egységek, külön az összeadásra, szorzásra, osztásra. Párhuzamos utasítás-végrehajtás. • Szegeden: MINSZK 22. 1. előadás

  20. 3. generáció: integrált áramkör (1965-1980).Robert Noyce (1958): szilícium alapú integrált áramkör IBM problémája: 7094 és 1401 nem kompatibilis. • (1964): IBM 360-as sorozat (1.7 ábra).Később a szocialista országokban R-sorozat. 1. előadás

  21. Emuláció: a sorozat gépein futtathatók az előző típusok programjai (mikroprogramozás). Multiprogramozás (DOS, POWER, OS). 24 bites címtartomány (16 Mbyte). A nyolcvanas évek közepéig elég, akkor áttérés a 32 bites címre. • DEC: PDP-11 (1970): 16 bites Magyarországon: TPA70. Nem kompatibilis aPDP-11 -gyel. ----- Eddig csak számításigényes problémák ----- 1. előadás

  22. 4. generáció: VLSI (Very Large Scale Integration) (1980- ). Néhány millió elem egy lapkán (chipen). • Személyi számítógépek. Kezdetben zacskóban: nyomtatott áramköri lap, IC-k, köztük általában INTEL 8080, kábelek, tápegység, hajlékony lemez • CP/M operációsrendszer, • Commodore, Apple, Spectrum-80. • IBM PC (I-8088 alapú) a terveket publikálták - klónok. • Microsoft: MS-DOS, OS/2, Windows. • … 1. előadás

  23. Technológiai fejlődés • Moore törvény (1965): Az egy lapkán elhelyezhető elemek száma másfél évenként duplázódik (1.8. ábra). Azt várják, hogy 2020-ig teljesülni fog. Minden más területen (lemezek, adatátvitel, ...) hasonló sebességű a fejlődés. A szoftverek mérete, bonyolultsága is követi ezt: • Nathan első törvénye: A szoftver gáz: kitölti a rendelkezésére álló teret. 1. előadás

  24. Technológiai fejlődés A népszerűsítő irodalom kedvenc hasonlata szerint, ha az autóipar az utóbbi hetven évben úgy haladt volna, mint a számítástechnika, egy Rolls-Royce-t 20 $-ért lehetne kapni, motorja gyufafej nagyságú lenne, sebessége 100 000 km/h és egymillió kilométeren 3 liter benzint fogyasztana (Vámos Tibor) 1. előadás

  25. 1.9. ábra. A mai (1999) számítógép típusok választéka 1. előadás

  26. Pentium II. (1.10, 11. ábra) 1. előadás

  27. UltraSPARC II Igény: UNIX-ot kisgépekre. Hálózati gépek: Ethernet. • SUN (Stanford University Network - 1982). Motorola 68020 CPU alapú gépek. 1987-ben félmilliárd $ a bevételük. • SPARC (Scalable Processor ARChitecture - 1987). 32 bites, 36 MHz. Több cégnek átadták a gyártási jogot, verseny → gyors fejlődés! • UltraSPARC I: 64 bites, multimédiás utasítások. • UltraSPARC II, III: gyorsítás + kevés módosítás. 1. előadás

  28. picoJava II C, C++ nem eléggé védett! Java (kilencvenes évek közepe): objektum-orientált, biztonságos nyelv. Cél (SUN): bináris formátumú, WEB-ről letölthető programok, applet-ek. JVM (Java Virtual Machine): fordítók, értelmezők (Java-ról JVM-re, JVM-ről saját gépre). • picoJava II: Java bináris programok végrehajtására szolgáló architektúra (terv – virtuális gép, de pl. a SUN microJava-701 lapkán megvalósították). 1. előadás

  29. Fixpontos számok Pl.: előjeles kétjegyű decimális számok : • Ábrázolási tartomány: [-99, +99]. • Pontosság (két „szomszédos” szám különbsége): 1. • Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós szám, és a hozzá legközelebb lévő ábrázolható szám különbsége: 1/2. Számolási pontatlanságok: a = 70, b = 40, c = - 30 esetén a + (b + c) = 80, (a+b) + c = -20. túlcsordulás 1. előadás

  30. Helyértékes ábrázolás Pl.: 521,2510 = 5 * 102 + 2 * 101 + 1 * 100 + 2 * 10-1 + 5 * 10-2. Általában (q alapú számrendszer esetén): an an-1 …a0,b1b2 …bm = an*qn +an-1*qn-1 + …+a0+b1*q-1 +b2*q-2 + …+bm*q-m 0  ai, bj  q Átszámolás számrendszerek között: • egész rész: osztással, • tört rész: szorzással. 1. előadás

  31. B: Bináris, O: Oktális, D: Decimális H: Hexadecimális B O D H B O D H 0 0 0 0 1000 10 8 8 1 1 1 1 1001 11 9 9 10 2 2 2 1010 12 10 A 11 3 3 3 1011 13 11 B 100 4 4 4 1100 14 12 C 101 5 5 5 1101 15 13 D 110 6 6 6 1110 16 14 E 111 7 7 7 1111 17 15 F 1. előadás

  32. Pl. 23,37510 átszámítása kettes számrendszer-be. Egész rész: Tört rész: /2 marad egész *2 23 1 0.375 11 1 0 .750 5 1 1 .500 2 0 1 .000 1 1 101112 0,0112 23,37510 = 10111,0112. Véges tizedes tört nem biztos, hogy binárisan is véges! 1. előadás

  33. Példa bináris összeadásra: 1. összeadandó: 0 1 0 1 1 0 1 0 (= 90) 2. összeadandó: 0 1 1 1 1 1 0 0 (=124) Átvitel: 1 1 1 1 0 0 0 Eredmény: 1 1 0 1 0 1 1 0 (=214) 1. előadás

  34. Átszámítás 10-es számrendszerbe q alapú számrendszerből legegyszerűbben a Horner elrendezéssel alakíthatunk át: an*qn +an-1*qn-1 + …+a0+b1*q-1 +b2*q-2 + …+bm*q-m = a0 + q*(a1+ q*( …+an )) + (…(bm/q + bm-1)/q + …+ b1 )/q 1. előadás

  35. A számítógép kettes számrendszerben dolgozik, 10-es számrendszerből a Horner elrendezéssel alakítja át a számokat. A formulában ai–t, bj–t és q–t kettes számrendszerben kell megadni. Kettes számrendszerből 10-es számrendszerbe 10-zel való ismételt osztással állítja elő az egész részt, és 10-zel való ismételt szorzással állítja elő a tört részt – hasonlóan ahhoz, ahogy korábban bemutattuk a 10-es számrendszerből 2-esbe való átszámítást. 1. előadás

  36. Bit: egy bináris számjegy, vagy olyan áramkör, amely egy bináris számjegy ábrázolására alkalmas. Bájt (Byte): 8 bit, 8 bites szám. Előjeles fixpontok számok: 28 = 256 különböző 8 bites szám lehetséges. Melyek jelentsenek negatív értékeket? Előjeles számok szokásos ábrázolásai: • előjeles abszolút érték, • egyes komplemens, • kettes komplemens, • többletes. 1. előadás

  37. Előjeles abszolút érték: előjel és abszolút érték, az első bit (balról) az előjel: 0: +, 1: - Pl.: +2510 = 000110012, -2510 = 100110012. + - Jellemzők: • a nulla kétféleképpen ábrázolható, • a legkisebb szám -127, a legnagyobb 127. 1. előadás

  38. Egyes komplemens: az első bit az előjel (0: pozitív, 1: negatív). Egy szám -1-szerese (negáltja) úgy kapható meg, hogy a szám minden bitjét negáljuk (ellenkezőjére változtatjuk). Pl.: +2510 = 000110012, - 2510 = 111001102. Jellemzők: • a nulla kétféleképpen ábrázolható, • a legkisebb szám -127, a legnagyobb 127. 1. előadás

  39. Kettes komplemens: az első bit az előjel (0: pozitív, 1: negatív). Egy pozitív szám negáltja úgy kapható meg, hogy az egyes komplemenshez egyet hozzáadunk. Pl.: +2510 = 000110012, -2510 = 111001102 egyes komplemens, -2510 = 111001112 kettes komplemens. Jellemzők: • a nulla egyértelműen ábrázolható, • a legkisebb szám -128, a legnagyobb 127. 1. előadás

  40. Többletes: a szám és a többlet összegét ábrázoljuk binárisan (ez már pozitív!). m bites szám esetén a többlet általában 2m-1 vagy 2m-1 – 1 Pl.: +2510 = 100110012, 128-többletes ábrázolás -2510 = 011001112 128-25=103 Jellemzők (128 többlet esetén): • a nulla egyértelműen ábrázolható, • a legkisebb szám -128, a legnagyobb 127. Megjegyzés: a 2m-1 többletes ábrázolás azonos a kettes komplemenssel fordított előjellel. Használata: a lebegőpontos számok kitevő-részénél. 1. előadás

  41. BCD (Binary Coded Decimal) ábrázolás: minden decimális számjegyet négy biten ábrázolunk. Negatív számok BCD ábrázolása: 9 vagy 10 komplemens kóddal. Pl.: +30110 = 0000 0011 0000 0001, -30110 = 1001 0110 1001 1000 (9 komplemens), -30110 = 1001 0110 1001 1001 (10 komplemens). 1. előadás

  42. Lebegőpontos számok előjel karakterisztika törtrész Sok ekvivalens ábrázolási lehetőség, a leggyakrabban a törtrész első számjegye az adott szám első, nullától különböző számjegye (normalizált alak). Példa: 254 = 0,0254x104 = 0,254x103 (= 2,54x102). Megjegyzések: • A nulla ábrázolásához külön megállapodásra van szükség (általában csupa nulla számjegyből áll). • A lebegőpontos ábrázolásoknál is meghatározható a legkisebb és a legnagyobb ábrázolható szám, továbbá a legkisebb és legnagyobb hiba. 1. előadás

  43. Feladat: Ábrázoljuk nyolcas számrendszerben 25410-et: előjelbittel kezdve, a kitevő legyen 1 jegyű (3 bites), 4-többletes, a törtrész 4 jegyű. Megoldás: 254/8 6 31/8 7 3/8 3 3768, normalizált alak: 0,376x83, a megoldás: 0 111 011 111 110 0002 = 0737608 + törtrész 4-többletes kitevő 1. előadás

  44. IEEE 754 standard single 32 bites, double 64 bites (, extended 80 bites). single: Ha 0 < a kitevőrész < 255, a szám normalizált. Normalizált tört vezető 1-es bitje nincs ábrázolva! 1. előadás

  45. Normalizált számok (IEEE 754, single) 0 < kitevőrész < 255 kitevőrész = kitevő + 127, 127 többletes. Lehetséges kitevők: -126, -125, ... , +127. Közvetlenül a törtrész elé kell képzelni egy 1-est (implicit bit) és a bináris pontot. Az ábrázolt szám: ± (1 + törtrész) * 2kitevő Pl.: 1 0011 1111 1000 ... 00002 = 3F80 000016 0,5 0011 1111 0000 ... 00002 = 3F00 000016 -1,5 1011 1111 1100 ... 00002 = BFC0 000016 ± kitevőrész 1. törtrész 1. előadás

  46. Normalizálatlan számok (IEEE 754, single) Ha akitevőrész = 0 A bináris pontot 0 előzi meg (nincs ábrázolva). Az ábrázolt szám: ± (törtrész) * 2-127 Pl.: 2-128= 2-127 * 0,100 ... 00002 = = 0000 0000 0100 ... 00002 = 0040 000016 - 2-150= - 2-127 * 0,000 ... 00012 = = 1000 0000 0000 ... 00012 = 8000 000116 2-127 = 2-127 * 1,000 ... 00002 = » 0000 0000 0111 ... 11112 = 007F FFFF16 ± kitevőrész 0. törtrész 1. előadás

  47. Normalizálatlan számok (IEEE 754, single) Ha a kitevőrész = 255 Túl nagy számok (túlcsordulás): • ¥ (végtelen): pl. 1/0, • NaN (Not a Number): pl. ¥ / ¥ 1. előadás

  48. Adattípusok Alapkérdés: mit támogat a hardver (milyen utasítások vannak)? Ami nincs (pl. dupla pontosságú egész aritmetika), azt szoftveresen kell megcsinálni. Numerikus típusok: • előjel nélküliés előjelesegész számok (8,16,32, 64 bites). • lebegőpontos számok (32, 64, néha 128 bites), • binárisan kódolt decimális számok:decimális aritmetika (COBOLY2K = 2000. év probléma). 1. előadás

  49. Az egyes gépek által támogatott numerikus típusok P: Pentium II, U: UltraSPARC, J: JVM 1. előadás

  50. Karakterkódolás ASCII (American Standard Code for Information Interchanges), 7 bites: vezérlőkarakterek, az angol abc kis és nagy betűi, szimbólumok, 2.41. ábra Latin-1 kód: 8 bites. IS 8859: kódlap, IS 8859-2: magyar betűk is. UNICODE (IS 10646 – 2-33 ábra). 16 bites: kódpozíciók (code point). Általában egy nyelv jelei egymás után vannak – a rendezés könnyű. • Kínai, japán, koreai: fonetikus szimbólumok, Han ideogramok (20992 jel, nincsenek szótár szerint rendezve). ... Japán íráshoz kevés (> 50000 kanji jel van). • Új jelek? Braille nincs benne. 1. előadás

More Related