7. Fejezet A processzor és a memória Hardver és Szoftver rendszerek architektúrája: Egy Információ Technológiai Szemlélet 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda Senne, Bentley College
A CPU 3 fő összetevője ALU (Arithmetic Logic Unit=Aritmetikai Logikai Egység) Számolást és összehasonlítás hajtja végre (adatok megváltoznak) CU (Control Unit=Vezérlő Egység): elvégzi a fetch/execute folyamatokat Funkciók: A CPU regisztereiben az adatokkal végez műveleteket (nem változnak meg az adatok) Program utasításokkal és parancsokkal látja el az ALU-t Részei: Memory management unit (Memória Vezérlő Egység): ellenőrzi a „fetch”-elő, és adat műveleteket I/O Interfész: néha egybeépítik a memória vezérlővel, melyet Bust Interface Unit-nak nevezünk Regiszterek Példa: Program counter (PC – program számláló) vagy instruction pointer (utasítás mutató) meghatározza a következő utasítást a futtatáshoz
Felépítés
Little Man Computer=LMC
A regiszterek tulajdonságai Kicsi, örök tárolóhelyek a CPU-n belül, amiket részeredményekhez használ A Vezérlő egység (CU) vezérli őket Speciális használatra vannak tervezve Méret bit-ben, vagy byte-ban Tárolni tud adatot, címzést és utasítást Hány regisztere van az LMC-nek?
Regiszterek Regiszterek használata A regiszterek általában „Scratchpad” a valós időben futott programokért A fontosabb, vagy a gyakran használt adatokat tárolja A CPU és a futó program állapotát tárolja A következő program utasítás címe Külső eszközökből érkező jelek A regiszterek általában Felhasználó számára láthatóak Megszakítási és adat értékeket tartalmaz Megegyezik az LMC számológépével Minden processzorban van néhány tucat
Speciális regiszterek Program Count Register=Program számláló regiszter (PC) Instruction pointernek (utasítás mutató) is hívjuk Instruction Register=Utasítás regiszter (IR) Memóriából származó utasításokat tartalmaz Memory Address Register=Memória Cím Regiszter (MAR) Memory Data Register=Memória Adat Regiszter (MDR) Status Registers=Állapot Regiszterek A processzor és a futó program állapotát tartalmazza Flag-eket (Zászlókat) (egy bites logikai változókat) tartalmaznak, hogy nyomon kövessék a túlcsordulási, elektromos és belső hibákat
Regiszter műveletek Más helyekről származó értékeket tárol (regiszterek és memóriák) Összeadás és kivonás Adatok mozgatása (Shift, Rotate – Eltolás, Felcserélés) Ellenőrzi a tartalmat, pl.: nulla vagy pozitív
A memória működése Minden memóriatartomány egyedi címmel rendelkezik Az utasítás címe a Memória Cím Regiszterbe kerül, amely megtalálja a helyét a memóriában A processzor határozza meg, hogy tároljon vagy olvasson adatot A Memória Adat Regiszter és a memória közötti szállítási helyet igényel A Memória Adat Regiszter kétirányú regiszter
Kapcsolatok a MAR, a MDR és a Memory között Cím adatok
MAR-MDR példa
A memória vizuális ábrázolása
Egyes memória cella
Memória-kapacitás Két tényező határozza meg 1. A MAR-ban lévő bitek száma LMC = 100 (00 - 99) 2K, ahol K = a regiszter szélessége bitekben 2. Az utasítások címeinek mérete 4 bit enged 16 helyet meg 8 bit enged 256 helyet meg 32 bit 4,294,967,296 vagy 4 GB-ot enged meg Fontos megjegyzés a teljesítményhez A kevés memória arra kényszerítheti a processzort, hogy 50%-alatt dolgozzon
RAM: Random Access Memory (Véletlen elérésű memória) DRAM (Dynamic RAM=Dinamikus memória) Legáltalánosabb, olcsó Tartalmát hamar elveszti: másodpercenként 1000-szer kell frissülnie SRAM (Statikus RAM) Gyorsabb és drágább, mint a DRAM Tartalmát hamar elveszti Keveset használnak belőle a Cache memóriában, a gyors eléréshez
ROM - Read Only Memory (Csak olvasható memória) Stabil memória a program tárolásához, amely nem várt eseménykor is megóvja a tartalmát!! Mágneses magmemória EEPROM Electrically Erasable Programmable ROM (Elektromosan törölhető és programozható ROM) Lassabb és kevésbé stabil, mint a FLASH ROM Flash ROM Gyorsabb, mint a meghajtók, de sokkal drágább is Felhasználási területek: BIOS: kezdeti BOOT parancsok és ellenőrzések Digitális kamerák
Fetch-Execute ciklus Két ciklusú művelet, mert mind a utasítás, mind az adat a memóriában van Fetch Megtalálja vagy dekódolja az utasításokat, a memóriából a regiszterekbe és az ALU-ba tölti Execute Műveleteket futtat, amire az utasításoknak szükségük van Adatok mozgatása/szállítása
LMC vs. CPU Fetch és Execute ciklus
Betöltés Fetch/Execute ciklus PC -> MAR Az adatokat a PC-ből a MAR-ba szállítja MDR -> IR Az adatokat az IR-be szállítja IR(address) -> MAR Az utasítások cím részletei betöltődnek a MAR-ba MDR -> A Az aktuális adatokat a tárolóba másolja PC + 1 -> PC A programszámláló növelése
Tárolás Fetch/Execute ciklus PC -> MAR Az adatokat a PC-ből a MAR-ba szállítja MDR -> IR Az adatokat az IR-be szállítja IR(address) -> MAR Az utasítások cím részletei betöltődnek a MAR-ba A -> MDR* A tárból az MDR-be másolja az adatokat PC + 1 -> PC A programszámláló növelése *figyelem a 4-es pont megváltozott a betöltéshez képest
ADD Fetch/Execute Cycle PC -> MAR Az adatokat a PC-ből a MAR-ba szállítja MDR -> IR Az adatokat az IR-be szállítja IR(address) -> MAR Az utasítások cím részletei betöltődnek a MAR-ba A + MDR -> A Az MDR tartalma a tár tartalmához adódik PC + 1 -> PC A programszámláló növelése
LMC Fetch/Execute Kivonás PC MAR MDR IR IR[addr] MAR A – MDR A PC + 1 PC Bemenet PC MAR MDR IR IOR A PC + 1 PC Kimenet PC MAR MDR IR A IOR PC + 1 PC Szünet PC MAR MDR IR Elosztás PC MAR MDR IR IR[addr] PC Feltételes felosztás PC MAR MDR IR Ha a feltétel hamis: PC + 1 PC Ha a feltétel igaz: IR[addr] PC
Busz Fizikai kapcsolat, ami lehetővé teszi az adatátvitelt a számítógép rendszer két pontja között Elektromos ellenőrző csoportok a két pontok közötti jel átvitelekhez Line: minden ellenőrzési pont egy buszon 4 fajta jel Adat (alfa-numerikus, numerikus, utasítások) Címek Vezérlő jelek Táp (néha)
Busz Processzort és a memóriát köti össze I/O perifériák: egy buszon, mint a CPU/memória vagy külön busz Fizikai csomagolás, általában backplane-nek hívják Rendszerbusznak és külső busznak is hívják Példák broadcast busz A kör alakú tábla lenyomatának egy részét motherboard-nak (alaplap) hívják irányítja a CPU-t és összekapcsolja az összetevőket
Busz karakterisztikák Protokoll Megegyezések dokumentálása a kommunikációhoz Világosan megmagyarázza az összes vonal és a vonalakon lévő minden jel jelentését Eredmény, az adat átvitel mértékegysége bit/másodperc Az adat sávszélességet bitekben szállítja párhuzamosan
Pontról pontra vs. Több pontos Plug-in eszköz Broadcast bus példa: Ethernet Megosztott, összetett eszközök között
Az alaplap Nyomtatott áramkör, melyen a processzor és egyéb fő elemek találhatók
Tipikus PC kapcsolások Busz interface bridge-ek (Buszokat összekötő hidak) különböző busz típusokat kapcsolnak össze
PCI Busz kapcsolatok
Utasítások Utasítás Utasítás beállítás Az irányítás átadása a számítógépnek Elektromos jeleket küld különböző specifikus áramkörön keresztül a feldolgozásnak Utasítás beállítás A funkciót a processzor határozza meg Elkülönült számítógép architektúrák Utasítások száma Az adatok összetettsége végrehajtása egyedi utasítások szerint Támogatott adattípusok Formázás (layout, fixed vs. variable length – kinézet, Fix vs. Változó hossz) Regiszterek használata Címzés (méret, módok)
Utasítások elemei OP kód: feladat Műveletek forráskódja Művelet eredménye Adat helye (regiszter, memória) Explicit: tartalmazza az utasítást Implicit: alapértelmezés Címek OP kód Forráskód Művelet Eredmény
Utasítás formátumok Számítógép-specifikus: OP kód hossza Műveletek száma Műveletek hossza Egyszerű 32-bites utasítás
Utasítás formátumok: CISC
Utasítás formátumok: RISC
Utasítás típusok Adatműveletek (betöltés, tárolás) Aritmetikai Legismertebb, leghatékonyabb A memória és a regiszterek közötti kapcsolat Mekkora a word adattípus? 16? 32? 64 bit? Aritmetikai Operátorok: + - / * ^ Egészek és lebegőpontosak Relációs vagy logikai Relációs operátorok: > < = Logikai operátorok: AND, OR, XOR, NOR, és NOT Egyszerű operandusokat kezelő utasítások Negáció, dekrementálás, inkrementálás
Egyéb utasítástípusok Bitmanipuláló utasítások Flag-ek (Zászlók) a feltételek tesztelésére Eltolás és felcserélés Program irányítás Verem utasítások Összetett adat utasítások I/O és számítógép utasítás
Regiszter eltolás és felcserélés
Program irányító utasítások Program irányítás Ugrás és elágazás Szubrutin hívása és visszatérés
Verem utasítások Verem utasítások LIFO (utolsó be, első ki) eljárás, információ rendezésére A törölt elemeket a a visszavonáskor ugyanoda teszi vissza Elhelyezés Kivétel
Állandó hellyel rendelkező szubrutin címet visszaadó tárolás: Oops!
Verem szubrutin címet visszaadó tárolás
Összetett adat utasítások Az adatok összetett részein párhuzamosan hajt végre egyszerű műveleteket SIMD: Single Instruction, Multiple Data (egyszerű utasítás, összetett adat) Intel MMX: 57 multimédiás utasítás Általában vektoriális és soros feldolgozó alkalmazásoknál használják
Copyright 2003 John Wiley & Sons All rights reserved. Reproduction or translation of this work beyond that permitted in Section 117 of the 1976 United States Copyright Act without express permission of the copyright owner is unlawful. Request for further information should be addressed to the permissions Department, John Wiley & Songs, Inc. The purchaser may make back-up copies for his/her own use only and not for distribution or resale. The Publisher assumes no responsibility for errors, omissions, or damages caused by the use of these programs or from the use of the information contained herein.”