Máté: Architektúrák3. előadás1 Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia.

Slides:



Advertisements
Hasonló előadás
1 Számítógépek felépítése 9. előadás I/O rendszerek.
Advertisements

Memóriák típusai, jellemzői
A számítógép felépítése
Neumann-elvek A számítógép legyen teljesen elektronikus, külön vezérlő és végrehajtó egységgel. Kettes számrendszert használjon. Az adatok és a programok.
Alapvető digitális logikai áramkörök
A mikroprocesszor 1. rész.
Máté: Architektúrák3. előadás1 Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Adatbázisrendszerek elméleti alapjai 5. előadás
Belső memóriák tipusai
Alaplapra integrált csatlakozók
Nem kombinációs áramkörök
Operandus megadás Közvetlen operandus (immediate operand): Az operandus megadása a címrészen (5.16. ábra) Direkt címzés (direct addressing): A memóriacím.
Máté: Architektúrák2. előadás1 Központi memória (2.9. ábra) A programok és adatok tárolására szolgál. Bit: a memória alapegysége, egy 0-t vagy 1-et tartalmazhat.
A verem működése fpga-n
Alapfogalmak Hardver:  A számításokat végző fizikai-technikai rendszer (kézzel fogható, fizikai termékek) Szoftver:  Programok, programrendszerek (szellemi.
A memória.
Alapfogalmak Adat: fogalmak, tények, jelenségek olyan formalizált ábrázolása, amely emberi vagy gépi értelmezésre, feldolgozásra, közlésre alkalmas. Információ:
Memóriák.
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
PIC processzor és környezete
CISC - RISC processzor jellemzők
A memória.
Számítógép memória jellemzői
Fuzzy halmazok. 4. előadás2 3 4 Egy hagyományos halmazEgy Fuzzy halmaz.
Felkészítő tanár: Széki Tibor tanár úr
Készítette: Bodor Béla Tanár: Szabó Dániel Iskola: Egressy Gábor Kéttannyelvű Műszaki Szakközépiskola Iskola címe: 1149 Budapest, Egressy út 71. MEMÓRIÁK.
A memóriák típusai, jellemzői
MIÉRTEK A SZÁMÍTÁSTECHNIKÁBAN
A számítógép felépítése (funkcionális)
MI A MEMÓRIA? A memória tulajdonképpen egy logikai áramkör, ami adatok megőrzésére alkalmas. Az adat számunkra most azt jelenti, hogy van-e jel vagy nincs.
Aritmetikai áramkörök
Máté: Architektúrák4. előadás1 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a.
Számítógép architektúra Címzésmódok. 2007Címzésmódok2-21 Operandusok egy operandus hossza lehet: –1 byte –2 byte (szó) –4 byte egy operandus lehet: –az.
Számítógép architektúra
A mikroszámítógép felépítése
Mikrokontroller (MCU, mikroC)
A számítógép felépítése
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
A Mikroprocesszor Harmadik rész.
A központi egység Informatika alapjai Készítette: Senkeiné B. Judit.
Mikroprocesszor.
HARDVER IT ALAPFOGALMAK. NEUMANN-ELVŰ SZÁMÍTÓGÉPEK FELÉPÍTÉSE Központi feldolgozó egység Háttértárolók Adatbeviteli eszközök (Input) Operatív tár (Memória)
Osztott adatbázisok.  Gyors ismétlés: teljes redukáló  Teljes redukáló költsége  Természetes összekapcsolások vetítése  Természetes összekapcsolások.
Alaplapra integrált csatlakozók
Ismerkedjünk tovább a számítógéppel
Máté: Architektúrák6. előadás1 Logikai utasítások Bitenkénti logikai műveleteket végeznek. 1 az igaz, 0 a hamis logikai érték. ANDop1,op2; op1  op1 &
Írja fel a tizes számrendszerbeli
IT ALAPFOGALMAK HARDVER.
Mikroprocesszorok (Microprocessors, CPU-s)
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK.
Alapvető digitális logikai áramkörök
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
Adatok tárolása. Tárolók Félvezető tárak RAM Operatív tár Cache tár Regiszterek CMOS RAM ROM BIOS Mágnestárak Mágneslemez Hajlékony lemez Merevlemez MágnesszalagMágneskártya.
Sz&p prof.
CPU (Processzor) A CPU (Central Processing Unit – Központi Feldolgozó Egység) a számítógép azon egysége, amely értelmezi az utasításokat és vezérli.
RAM (Random Access Memory)
Információtechnológiai alapismeretek
Neumann elvek és a Neumann elvű számítógép felépítése
Építsünk Processzort Avagy mi is kell hozzá.
A számítógép működésének alapjai
Cache példák 2019 (IMSC).
Számítógépek felépítése 9. előadás I/O rendszerek
Előadás másolata:

Máté: Architektúrák3. előadás1 Alapvető digitális logikai áramkörök Integrált áramkör (IC, Integrated Circuit, chip, lapka) 5x5 mm 2 szilícium darab kerámia vagy műanyag lapon (tokban), lábakkal (pins). Négy alaptípus: SSI (Small Scale Integrated 1-10 kapu) 3.10 ábra, MSI (Medium Scale..., kapu), LSI (Large Scale..., kapu), VLSI (Very Large Scale..., > kapu). Példa SSI-re: ábra, V cc : feszültség, GND: föld. Kapukésleltetés (gate delay): 1-10 nsec.

Máté: Architektúrák3. előadás2 Kívánalom: sok kapu – kevés láb Kombinációs áramkörök Definíció: A kimeneteket egyértelműen meghatározzák a pillanatnyi bemenetek. Multiplexer: 2 n adatbemenet, n vezérlő bemenet, 1 kimenet (3.11. ábra), az egyik adatbemenet kapuzott (gated) a kimenetre. Többségi függvény: (3.3., 12. ábra), Párhuzamos-soros átalakítás (vezérlő vonalakon rendre: 000, 001, … 111).

Máté: Architektúrák3. előadás3 Demultiplexer: egy egyedi bemenetet irányít az n vezérlő bemenet értékétől függően a 2 n kimenet egyikére (3.11. ábrán a bemenetek összekötve, a vagy kapu törölve). Dekódoló: n bemenet, 2 n kimenet. Pontosan egy kimeneten lesz 1 (3.13. ábra). Demultiplexerrel: a bemenetet igazra állítjuk. Összehasonlító (comparator): (3.14. ábra). Programozható logikai tömbök: PLA (Programmable Logic Array, ábra).

Máté: Architektúrák3. előadás4 Aritmetikai áramkörök Léptető (shifter): ábra, C=0: balra, 1: jobbra. Összeadók: Fél-összeadó (half adder, ábra), Teljes összeadó (full adder, ábra). Aritmetikai-logikai egység: bitszelet (bit slice, ábra), ALU (Arithmetic Logic Unit, ábra). Az F0, F1 vezérlő jelektől függően: ÉS, VAGY (+), NEGÁCIÓ vagy ÖSSZEADÁS. INC bemenet. átvitel továbbterjesztő (ripple carry adder), átvitel kiválasztó (carry select adder) eljárás.

Máté: Architektúrák3. előadás5 Nem kombinációs áramkörök Óra (clock): ciklusidő (cycle time). Pl.: 500 MHz - 2 nsec. Finomabb felbontás eltolással: ábra. Memória: „Emlékszik” az utolsó beállításra. Tároló: Szint vezérelt (level triggered). SR tároló (Set Reset latch), ábra. Stabil állapot: a két kimenet 0, 1 vagy 1, 0. S, R bemenet. Időzített (clocked) SR tároló (3.23. ábra). Időzített D-tároló (3.24. ábra). Mindkét SR tároló indeterminisztikussá válna, ha S = R = 1 egyszerre fordulna elő.

Máté: Architektúrák3. előadás6 Pulzusgenerátor ábra. Az inverternek van egy pici (1-10 ns) késleltetése. Flip-flop: élvezérelt (edge triggered), D flip-flop: ábra ábra: Tárolók (a, b) és flip-flopok (c, d) :. CK: órajel. (a) CK=1, (b) CK=0 szint esetén írja be D-t, (c) CK emelkedő, (d) CK lefelé menő élénél. Sokszor S (PR), R (CLR) be- és Q# kimenet is van ábra: (a) 2 független D flip-flop, (b) közös CK-val vezérelt 8 D flip-flop: regiszter.

Máté: Architektúrák3. előadás7 Memória szervezése Elvárás: szavak címezhetősége ábra: Négy db három bites szó. Nyolc bemenet: három a vezérléshez, kettő a címzéshez (dekódoló), három a bemenő adatoknak, három adat kimenet. CS (Chip Select): lapka választás, RD (ReaD): 1: olvasás, 0: írás választása, OE (Output Enable): kimenet engedélyezése. Az igazi memóriáknál a bemenet és kimenet közös (kevesebb lábra van szükség): Nem invertáló és invertáló pufferek (tri-state device, ábra).

Máté: Architektúrák3. előadás8 Memórialapkák Előnyös, ha a szavak száma 2 hatvány. 4 Mbit-es memória kétféle szervezése: ábra. A jel beállított (asserted) vagy negált ( vagy #). CS beállított: 1, de CS# beállított: 0 a)512 K bájtos elrendezés: 19 cím, 8 adat vonal. b)2048*2048 bites elrendezés: 11 cím, 1 adat vonal: Bit kiválasztás sor- (RAS: Row Address Strobe) és oszlopindex CAS (Column...) segítségével. Gyakran alkalmazzák nagyobb memóriáknál, bár a két cím megadása lassíthat. Nagyobb memóriáknál 1, 4, 8, 16 bites kimeneteket is használnak.

Máté: Architektúrák3. előadás9 RAM (Random Access Memory, ábra) Statikus RAM (SRAM). D flip-flop elemekből épül fel. Amíg áram alatt van, tartja a tartalmát. Elérési idő: néhány nsec (cache-nek jók). Dinamikus RAM (DRAM): minden bit egy tranzisztor és egy kondenzátor: néhány msec-onként frissíteni kell, de nagyobb adatsűrűség érhető el. Elérési idő: néhány tíz nsec (főmemóriák). Szinkron: SDRAM (synchronous DRAM). Aszinkron működésű: -régi: FPM (Fast Page Mode) sor-, oszlopcím. -újabb: EDO (Extended Data Output) lehet új memóriahivatkozás, mielőtt az előző befejeződik.

Máté: Architektúrák3. előadás10 ROM (Read-Only Memory) ROM: gyárilag kialakított tartalom. PROM (Programmable ROM): a tartalom biztosítékok kiégetésével alakul ki (hasonlóan a PLA-khoz, ábra). EPROM (Erasable PROM): a biztosítékok speciális fénnyel kiolvaszthatók és „kijavíthatók”. EEPROM: elektromos impulzusokkal. Flash (fény) memória: törlés és újraírás csak blokkonként. Kb használat után „elkopnak”. Összefoglalás: ábra.

Máté: Architektúrák3. előadás11 Az I8086/8088 utasítás rendszere Jelőlések  : értékadás  : felcserélés op, op1, op2: tetszőlegesen választható operandus (közvetlen, memória vagy regiszter). op1 és op2 közül az egyik regiszter kell legyen! reg: általános, bázis vagy index regiszter mem: memória operandus ipr: (8 bites) IP relatív cím port: port cím (8 bites eltolás vagy DX) [op]: az op által mutatott cím tartalma

Máté: Architektúrák3. előadás12 Adat mozgató utasítások Nem módosítják a flag-eket (kivéve POPF és SAHF) MOVop1, op2; op1  op2 (MOVe) XCHGop1, op2; op1  op2 (eXCHanGe), op2 sem ; lehet közvetlen operandus XLAT; AL  [BX+AL] (trans(X)LATe), a ; BX által címzett maximum 256 byte- ; os tartomány AL-edik byte-jának ; tartalma lesz AL új tartalma LDSreg, mem; reg  mem, mem+1 ; DS  mem+2, mem+3 (Load DS) LESreg, mem; reg  mem, mem+1 ; ES  mem+2, mem+3 (Load ES) LEAreg, mem; reg  mem effektív (logikai) címe ; (Load Effective Address)

Máté: Architektúrák3. előadás13 A veremmel (stack-kel) kapcsolatos adat mozgató utasítások: PUSHop; SP  SP-2; (SS:SP)  op PUSHF; (PUSH Flags) ; SP  SP-2; (SS:SP)  STATUS POPop; op  (SS:SP); SP  SP+2 POPF; (POP Flags) ; STATUS  (SS:SP); SP  SP+2 Az Intel 8080-nal való kompatibilitást célozza az alábbi két utasítás: LAHF; AH  STATUS alsó 8 bitje SAHF; STATUS alsó 8 bitje  AH

Máté: Architektúrák3. előadás14 Aritmetikai utasítások ADDop1, op2; op1  op1 + op2 (ADD) Pl.: előjeles/előjel nélküli számok összeadása MOVAX, -1; AX=-1 (=0FFFFH) ADDAX, 2; AX=1, C=1, O=0 ADCop1, op2; op1  op1 + op2 + C ; (ADD with Carry) Pl.: két szavas összeadás (előjeles/előjel nélkül) ADDAX, BX ADCDX, CX; (DX:AX) = (DX:AX) + (CX:BX) INCop; op  op + 1, C változatlan! (INCrement)

Máté: Architektúrák3. előadás15 SUBop1, op2; op1  op1 - op2 (SUBtraction) CMPop1, op2; flag-ek op1 - op2 szerint (CoMPare) SBBop1, op2; op1  op1 - op2 – C: ; a több szavas kivonást segíti. DECop; op  op - 1, C változatlan ; (DECrement) NEGop; op  -op (NEGate)

Máté: Architektúrák3. előadás16 Az összeadástól és kivonástól eltérően a szorzás és osztás esetében különbséget kell tennünk, hogy előjeles vagy előjel nélküli számábrázolást alkalmazunk-e. További lényeges eltérés, hogy két 8 bites vagy 16 bites mennyiség szorzata ritkán fér el 8 illetve 16 biten, ezért a szorzás műveletét úgy alakították ki, hogy 8 bites tényezők szorzata 16, 16 biteseké pedig 32 biten keletkezzék: Ha op 8 bitesAX  AL  op. Ha op 16 bites (DX:AX)  AX  op. MULop; előjel nélküli szorzás (MULtiplicate), IMULop; előjeles szorzás (Integer MULtiplicate). Szorzásnál op nem lehet közvetlen operandus!

Máté: Architektúrák3. előadás17 Osztásnál op nem lehet közvetlen operandus! Ha op 8 bites: AL  AX/op hányadosa, AH  AX/op maradéka. Ha op 16 bites: AX  (DX:AX)/op hányadosa, DX  (DX:AX)/op maradéka. DIVop; (DIVide) előjel nélküli osztás, IDIVop; (Integer DIVide) előjeles osztás, ; A nem 0 maradék előjele megegyezik ; az osztóéval. Osztásnál túlcsordulás  azonnal elhal (abortál) a programunk!

Máté: Architektúrák3. előadás18 Előjel nélküli osztás előkészítése AH illetve DX nullázásával történik. Előjeles osztás előkészítésére szolgál az alábbi két előjel kiterjesztő utasítás: CBW; (Convert Byte to Word) ; AX  AL előjel helyesen CWD; (Convert Word to Double word) ; (DX:AX)  AX előjel helyesen Pozitív számok esetén (az előjel 0) az előjel kiterjesztés az AH illetve a DX regiszter nullázását, negatív számok esetén (az előjel 1) csupa 1-es bittel való feltöltését jelenti.

Máté: Architektúrák3. előadás19 ; Két vektor skalár szorzata. 1. változat codesegment para public ’code’ assume cs:code, ds:data, ss:stack, es:nothing skalarprocfar pushds; visszatérési cím a verembe xorax,ax; ax  0 pushax; visszatérés offset címe movax,data; ds a data szegmensre mutasson mov ds,ax; sajnos „mov ds,data” ; nem megengedett

Máté: Architektúrák3. előadás20 ; A movcl,n; cl  n, 0  n  255 xorch,ch; cx = n szavasan xordx,dx; az eredmény ideiglenes helye JCXZkesz; ugrás a kesz címkére, ; ha CX (=n) = 0 xorbx,bx; bx  0, ; bx-et használjuk indexezéshez

Máté: Architektúrák3. előadás21 ism:moval,a[bx]; al  a[0], később a[1],... imulb[bx]; ax  a[0]  b[0], a[1]  b[1],... adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése ; B deccx; cx  cx-1, (vissza)számlálás JCXZkesz; ugrás a kész címkére, ha cx=0 jmpism; ugrás az ism címkére kesz: movax,dx; a skalár szorzat értéke ax-ben ; C

Máté: Architektúrák3. előadás22 callhexa; az eredmény kiírása ; hexadecimálisan movsi,offset kvse ; kocsi vissza soremelés callkiiro; kiírása ret; vissza az Op. rendszerhez skalarendp; a skalár eljárás vége ; D

Máté: Architektúrák3. előadás23 hexaproc; ax kiírása hexadecimálisan xchgah,al; ah és al felcserélése callhexa_b; al (az eredeti ah) kiírása xchgah,al; ah és al visszacserélése call hexa_b; al kiírása ret; visszatérés hexaendp; a hexa eljárás vége ; hexa_bproc; al kiírása hexadecimálisan pushcx; mentés a verembe movcl,4; 4 bit-es rotálás előkészítése RORal,CL; az első jegy az alsó 4 biten callh_jegy; az első jegy kiírása RORal,CL; a második jegy az alsó 4 biten callh_jegy; a második jegy kiírása popcx; visszamentés a veremből ret; visszatérés hexa_bendp; a hexa_b eljárás vége

Máté: Architektúrák3. előadás24 h_jegyproc; hexadecimális jegy kiírása pushax; mentés a verembe ANDal,0FH; a felső 4 bit 0 lesz, ; a többi változatlan addal,’0’; + 0 kódja cmpal,’9’;  9 ? JLEh_jegy1; ugrás h_jegy1 -hez, ha igen addal,’A’-’0’-0AH; A-F hexadecimális jegyek ; kialakítása h_jegy1: movah,14; BIOS szolgáltatás előkészítése int10H; BIOS hívás: karakter kiírás popax; visszamentés a veremből ret; visszatérés h_jegyendp; a hexa_b eljárás vége

Máté: Architektúrák3. előadás25 kiiroproc ; szöveg kiírás (DS:SI)-től pushax cld ki1:lodsb ; al  a következő karakter cmpal, 0; al =? 0 jeki2; ugrás a ki2 címkéhez, ha al=0 movah,14; BIOS rutin paraméterezése int 10H; az AL-ben lévő karaktert ; kiírja a képernyőre jmpki1; a kiírás folytatása ki2:popax ret; visszatérés a hívó programhoz kiiroendp; a kiíró eljárás vége ; codeends; a code szegmens vége

Máté: Architektúrák3. előadás26 datasegment para public ’data’ ndb3 adb1, 2, 3 bdb3, 2, 1 kvsedb13, 10, 0; kocsi vissza, soremelés dataends; a data szegmens vége ; ========================================== stacksegment para stack ’stack’ dw100 dup (?); 100 word legyen a verem stackends; a stack szegmens vége ; ========================================== endskalar; modul vége, ; a program kezdő címe: skalar

Máté: Architektúrák3. előadás27 Egyszerűsítési lehetőség: ; B deccx; cx  cx-1, (vissza)számlálás JCXZkesz; ugrás a kész címkére, ha cx=0 jmpism; ugrás az ism címkére kesz: movax,dx ; a skalár szorzat értéke ax-ben helyett: ; B LOOPism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx ; a skalár szorzat értéke ax-ben

Máté: Architektúrák3. előadás28 Annak érdekében, hogy a skalárszorzatot kiszámító program ne rontson el regisztereket, kívánatos ezek mentése: ; A PUSHBX; mentés PUSHCX PUSHDX és visszamentése: POPDX; visszamentés POPCX POPBX ; C

Máté: Architektúrák3. előadás29 A paraméterek szabványos helyen történő átadása ; Két vektor skalár szorzata. 2. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; SZABVÁNYOS HELYEN TÖRTÉNŐ ÁTADÁSÁVAL CALLSKAL; ELJÁRÁS HÍVÁS ; eredmény az AX regiszterben ; C callhexa; az eredmény kiírása movsi,offset kvse ; kocsi vissza, soremelés callkiiro; kiírása... ret; vissza az Op. rendszerhez skalarendp; a skalár eljárás vége

Máté: Architektúrák3. előadás30 SKALPROC; KÖZELI (NEAR) ELJÁRÁS ; KEZDETE PUSHBX; MENTÉSEK PUSHCX PUSHDX movcl,n; cl  n, 0  n  255 xorch,ch; cx = n szavasan xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0 xorbx,bx; bx  0, ; bx-et használjuk indexezéshez

Máté: Architektúrák3. előadás31 ism:moval,a[bx]; al  a[0], később a[1],... imulb[bx]; ax  a[0]  b[0], a[1]  b[1],... adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése ; B LOOPism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben POPDX; VISSZAMENTÉSEK POPCX POPBX RET; VISSZATÉRÉS A HÍVÓ ; PROGRAMHOZ SKALENDP; A SKAL ELJÁRÁS VÉGE ; D Csak az a és b vektor skalár szorzatát tudja kiszámolni!

Máté: Architektúrák3. előadás32 A paraméterek regiszterekben történő átadása ; Két vektor skalár szorzata. 3. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; REGISZTEREKBEN TÖRTÉNŐ ÁTADÁSÁVAL MOVCL, n; PARAMÉTER BEÁLLÍTÁSOK XORCH, CH; CX = n, ÉRTÉK MOVSI,OFFSET a; SI  a OFFSET CÍME MOVDI,OFFSET b; DI  b OFFSET CÍME callskal; eljárás hívás ; eredmény az ax regiszterben callhexa; az eredmény kiírása movsi,offset kvse ; kocsi vissza, soremelés callkiiro; kiírása... ret; visszatérés az Op. rendszerhez skalarendp; a skalár eljárás vége

Máté: Architektúrák3. előadás33 skalproc; Közeli (NEAR) eljárás kezdete pushbx; mentések pushcx pushdx xorbx,bx; bx  0, ; bx-et használjuk indexezéshez xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0

Máté: Architektúrák3. előadás34 ism:moval,[SI+BX]; FÜGGETLEN a-tól imulBYTE PTR [DI+BX]; FÜGGETLEN b-től ; csak „BYTE PTR”-ből derül ki, hogy 8 bites a szorzás adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése loopism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben popdx; visszamentések popcx popbx ret; visszatérés a hívó programhoz skalendp; a skal eljárás vége ; D... Így csak kevés paraméter adható át!

Máté: Architektúrák3. előadás35 ; Két vektor skalár szorzata. 4. változat... ; A ; ELJÁRÁS HÍVÁS A PARAMÉTEREK ; VEREMBEN TÖRTÉNŐ ÁTADÁSÁVAL MOVAL,n; AL-t nem kell menteni, mert XORAH,AH; AX-ben kapjuk az eredményt PUSHAX; AX=n a verembe MOVAX,OFFSET a; AX  a OFFSET címe PUSHAX; a verembe MOVAX,OFFSET b; AX  b OFFSET címe PUSHAX; a verembe A verembe került: n értéke, a címe, b címeparaméterek

Máté: Architektúrák3. előadás36 callskal; eljárás hívás ; eredmény az ax regiszterben ADDSP,6; paraméterek ürítése a veremből... ret; visszatérés az Op. rendszerhez skalarendp; a skalár eljárás vége A verembe került callskal hatására a visszatérési cím

Máté: Architektúrák3. előadás37 skalproc; Közeli (near) eljárás kezdete PUSHBP; BP értékét mentenünk kell MOVBP,SP; BP  SP, ; a stack relatív címzéshez PUSHSI; mentések PUSHDI pushbx pushcx pushdx A verem tartalma: n értéke, a címe, b címeparaméterek visszatérési cím, bp, si, di, bx, cx, dxmentett regiszterek

Máté: Architektúrák3. előadás38 A verem tartalma: n értéke, a címe, b címeparaméterek visszatérési cím, bp, si, di, bx, cx, dxmentett regiszterek (SS:SP)dx + 2cx + 4bx + 6di + 8si +10bp (SS:BP) +12visszatérési cím b címe a címe n értéke+ 8...korábbi mentések...

Máté: Architektúrák3. előadás39 MOVSI,6[BP]; SI  az egyik vektor címe MOVDI,4[BP]; DI  a másik vektor címe MOVCX,8[BP]; CX  a dimenzió értéke xorbx,bx; bx  0, indexezéshez xordx,dx; az eredmény ideiglenes helye jcxzkesz; ugrás a kesz címkére, ha n=0 ism:moval,[si+bx]; független a-tól imulbyte ptr [di+bx]; független b-től ; csak „byte ptr”-ből derül ki, hogy 8 bites a szorzás adddx,ax; dx  részösszeg incbx; bx  bx+1, az index növelése loopism; ugrás az ism címkére, ; ha kell ismételni kesz: movax,dx; a skalár szorzat értéke ax-ben

Máté: Architektúrák3. előadás40 popdx; visszamentések popcx popbx POPDI POPSI POPBP ret; visszatérés a hívó programhoz skalendp; a skal eljárás vége ; D... ADDSP,6; paraméterek ürítése a veremből helyett más megoldás: RET6; visszatérés a hívó programhoz ; verem ürítéssel:... SP = SP + 6

Máté: Architektúrák3. előadás41 Lokális adat terület, rekurzív és re-entrant eljárások Ha egy eljárás működéséhez lokális adat területre, munkaterületre van szükség, és a működés befejeztével a munkaterület tartalma fölösleges, akkor a munkaterületet célszerűen a veremben alakíthatjuk ki. A munkaterület lefoglalásának ajánlott módja:...proc... PUSHBP; BP értékének mentése MOVBP,SP; BP  SP, ; a stack relatív címzéshez SUBSP,n; n a munkaterület byte-jainak száma...; további regiszter mentések

Máté: Architektúrák3. előadás42 Lokális adat terület (NEAR eljárás esetén) (SS:SP) lokális adat terület – 2 bp (SS:BP) visszatérési cím+ 2 paraméterek... korábbi mentések... A munkaterület negatív displacement érték mellett stack relatív címzéssel érhető el. (A veremben átadott paraméterek ugyancsak stack relatív címzéssel, de pozitív displacement érték mellett érhetők el.)

Máté: Architektúrák3. előadás43 A munkaterület felszabadítása visszatéréskor a...; visszamentések MOVSP,BP; a munkaterület felszabadítása POPBP; BP értékének visszamentése ret...; visszatérés utasításokkal történhet.

Máté: Architektúrák3. előadás44 Rekurzív és re-entrant eljárások Egy eljárás rekurzív, ha önmagát hívja közvetlenül, vagy más eljárásokon keresztül. Egy eljárás re-entrant, ha többszöri belépést tesz lehetővé, ami azt jelenti, hogy az eljárás még nem fejeződött be, amikor újra felhívható. A rekurzív eljárással szemben a különbség az, hogy a rekurzív eljárásban „programozott”, hogy mikor történik az eljárás újra hívása, re-entrant eljárás esetén az esetleges újra hívás ideje a véletlentől függ. Ez utóbbi esetben azt, hogy a munkaterületek ne keveredjenek össze, az biztosítja, hogy újabb belépés csak másik processzusból képzelhető el, és minden processzus saját vermet használ.

Máté: Architektúrák3. előadás45 Rekurzív és re-entrant eljárások Ha egy eljárásunk készítésekor betartjuk, hogy az eljárás a paramétereit a vermen keresztül kapja, kilépéskor visszaállítja a belépéskori regiszter tartalmakat – az esetleg eredményt tartalmazó regiszterek kivételével –, továbbá a fenti módon kialakított munkaterületet használ, akkor az eljárásunk rekurzív is lehet, és a többszöri belépést is lehetővé teszi (re-entrant).

Máté: Architektúrák3. előadás46 Történeti áttekintés Kezdetben: kevés, egyszerű utasítás. Később: sok, egyre összetettebb utasítás. IBM 360-as család. Lefelé kompatibilis, csak a nagyobb gépek hajtják végre hardveresen az utasításokat (gyors), a kicsik interpretálnak (olcsó). Interpretálás előnyei: hibásan interpretált utasítások könnyű javítása, új utasítások egyszerű hozzáadása, strukturált felépítés; összetett utasítások hatékony fejlesztése.

Máté: Architektúrák3. előadás47 Hetvenes évek vége: a csak olvasásra használható gyors memóriák (vezérlőtárak – ROM Read Only Memory) megjelenése és beépülése a CPU-ba. az első 8 bites processzorok: - Motorola egyszerű utasításokkal nagy interpretert épít (siker), - Zilog 8000 bonyolult hardver utasításokat (kudarc).

Máté: Architektúrák3. előadás48 A nyolcvanas évek elejétől: A központi memória sebessége csaknem elérte a vezérlő tárak sebességét. RISC (Reduced Instruction Set Computer - csökkentett utasításkészletű számítógép): SPARC, DEC Alpha. Cél: minél gyorsabban indítani és átlapolni a gyors, egyszerű utasításokat. CISC (Complex Instruction Set Computer, összetett utasításkészletű számítógép): IBM nagy gépek, VAX, …. Összetett, és lassabb utasítások.

Máté: Architektúrák3. előadás49 Miért nem nyert a RISC? Kompatibilitás + az elveket az Intel is részben átveszi (486-tól RISC mag). RISC tervezési elvei hardveres (nem mikroprogramozott) utasítások, az utasítások indítási sebességének maximalizálása, könnyen dekódolható utasítások, memóriához fordulás csak betöltés (load) és tárolás (store) esetén. Sok regiszter kell!

Máté: Architektúrák3. előadás50 Feladatok Milyen bemenetei vannak az ALU-nak? Milyen nem kombinációs áramköröket ismer? Kombinációs áramkör-e az ALU? Hogyan csökkenthető az összeadásnál az átvitelekből származó idő? Magyarázza el a pulzus generátor működését! Mi a különbség a tároló és a flip-flop között? Mi a különbség a SRAM és a DRAM között? Mi az EPROM? Mi az EEPROM?

Máté: Architektúrák3. előadás51 Feladatok Milyen adat mozgató utasításokat ismer? Milyen aritmetikai utasításokat ismer? Mit csinál az IDIV utasítás? Mit csinál az CWD utasítás? Miért hibás az imul [di+bx] utasítás? Milyen paraméter átadási módszereket ismer? Hogy alakíthatunk ki lokális adat területet? Mi a rekurzív és a re-entrant eljárás?

Máté: Architektúrák3. előadás52 Feladatok Alakítsa át a skalárszorzat kiszámításának négy változatát, hogy előjeles/előjel nélküli bájt/word vektor elemeit összegezze (számítson arra, hogy az eredmény nem fér el egy bájton/word-ön)! Készítsen eljárást 2 jegyű előjeles/előjel nélküli szám decimálissá konvertálására és kiírására! Készítsen eljárást előjeles/előjel nélküli word decimálissá konvertálására és kiírására! Készítsen rekurzív eljárást n! kiszámítására! Készítsen rekurzív eljárást a és b legnagyobb közös osztójának meghatározására (euklideszi algoritmus)!