Computer Architectures



Hasonló dokumentumok
Számítógép architektúrák

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Computer Architecture

16F628A megszakítás kezelése

Using the CW-Net in a user defined IP network

Széchenyi István Egyetem

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Proxer 7 Manager szoftver felhasználói leírás

1. ábra: Perifériára való írás idődiagramja

A Számítógépek felépítése, mőködési módjai

KIEGÉSZÍTŽ FELADATOK. Készlet Bud. Kap. Pápa Sopr. Veszp. Kecsk Pécs Szomb Igény

USER MANUAL Guest user

EBBEN A VIZSGARÉSZBEN A VIZSGAFELADAT ARÁNYA

1. Az utasítás beolvasása a processzorba

Tavaszi Sporttábor / Spring Sports Camp május (péntek vasárnap) May 2016 (Friday Sunday)

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Performance Modeling of Intelligent Car Parking Systems

Construction of a cube given with its centre and a sideline

Hogyan használja az OROS online pótalkatrész jegyzéket?

T Á J É K O Z T A T Ó. A 1108INT számú nyomtatvány a webcímen a Letöltések Nyomtatványkitöltő programok fülön érhető el.

SQL/PSM kurzorok rész

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Travel Getting Around

BKI13ATEX0030/1 EK-Típus Vizsgálati Tanúsítvány/ EC-Type Examination Certificate 1. kiegészítés / Amendment 1 MSZ EN :2014

A Számítógépek hardver elemei

Lopocsi Istvánné MINTA DOLGOZATOK FELTÉTELES MONDATOK. (1 st, 2 nd, 3 rd CONDITIONAL) + ANSWER KEY PRESENT PERFECT + ANSWER KEY

Mapping Sequencing Reads to a Reference Genome

Lexington Public Schools 146 Maple Street Lexington, Massachusetts 02420

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet Factor Analysis

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

FOSS4G-CEE Prágra, 2012 május. Márta Gergely Sándor Csaba

Create & validate a signature

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

Számítógépes Hálózatok GY 8.hét

Ültetési és öntözési javaslatok. Planting and watering instructions

Operációs rendszerek Memóriakezelés 1.1

KELER KSZF Zrt. bankgarancia-befogadási kondíciói. Hatályos: július 8.

Egyszerű RISC CPU tervezése

EXKLUZÍV AJÁNDÉKANYAGOD A Phrasal Verb hadsereg! 2. rész

3. MINTAFELADATSOR KÖZÉPSZINT. Az írásbeli vizsga időtartama: 30 perc. III. Hallott szöveg értése

PromoCoder_7031/Lx3 rendszer használati utsítás v1.1

A számítógép alapfelépítése

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Számítógép Architektúrák

Correlation & Linear Regression in SPSS

Genome 373: Hidden Markov Models I. Doug Fowler

A jövedelem alakulásának vizsgálata az észak-alföldi régióban az évi adatok alapján

A golyók felállítása a Pool-biliárd 8-as játékának felel meg. A golyók átmérıje 57.2 mm. 15 számozott és egy fehér golyó. Az elsı 7 egyszínő, 9-15-ig

Bevezetés a számítástechnikába

Adatbázis-kezelés ODBC driverrel

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Cloud computing Dr. Bakonyi Péter.

INTELLIGENT ENERGY EUROPE PROGRAMME BUILD UP SKILLS TRAINBUD. Quality label system

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet. Correlation & Linear. Petra Petrovics.

Számítógépek felépítése

Correlation & Linear Regression in SPSS

EN United in diversity EN A8-0206/419. Amendment

2. Tavasz Kupa. Uszonyos és Búvárúszó Verseny Kiírása

Utazás Tájékozódás. Tájékozódás - Elhelyezkedés. Amikor nem tudod, hogy hol vagy. Can you show me where it is on the map?

Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel

ENROLLMENT FORM / BEIRATKOZÁSI ADATLAP

Tudományos Ismeretterjesztő Társulat

Formula Sound árlista

KN-CP50. MANUAL (p. 2) Digital compass. ANLEITUNG (s. 4) Digitaler Kompass. GEBRUIKSAANWIJZING (p. 10) Digitaal kompas

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Számítógépek felépítése, alapfogalmak

MSP430 programozás Energia környezetben. LED kijelzok második rész

General information for the participants of the GTG Budapest, 2017 meeting

Budapest By Vince Kiado, Klösz György

Introduction to 8086 Assembly

2. Local communities involved in landscape architecture in Óbuda

Társasjáték az Instant Tanulókártya csomagokhoz

HUNGÁRIA IRODAHÁZ 1146 Budapest, Hungária krt

ios alkalmazásfejlesztés Koltai Róbert

(Asking for permission) (-hatok/-hetek?; Szabad ni? Lehet ni?) Az engedélykérés kifejezésére a következő segédigéket használhatjuk: vagy vagy vagy

9. Gyakorlat: Network Load Balancing (NLB)

Szundikáló macska Sleeping kitty

A vitorlázás versenyszabályai a évekre angol-magyar nyelvű kiadásának változási és hibajegyzéke

Személyes adatváltoztatási formanyomtatvány- Magyarország / Personal Data Change Form - Hungary

Cluster Analysis. Potyó László

DR. SZABÓ LÁSZLÓ 1 DOBOS GÁBOR 2

ANGOL NYELVI SZINTFELMÉRŐ 2013 A CSOPORT. on of for from in by with up to at

Miskolci Egyetem Gazdaságtudományi Kar Üzleti Információgazdálkodási és Módszertani Intézet Nonparametric Tests

FÖLDRAJZ ANGOL NYELVEN

Szakmai továbbképzési nap akadémiai oktatóknak december 14. HISZK, Hódmezővásárhely / Webex

INDEXSTRUKTÚRÁK III.

Jelfeldolgozás a közlekedésben

Előszó.2. Starter exercises. 3. Exercises for kids.. 9. Our comic...17

HAMBURG Használati útmutató Vezérlőmodul UKSM 24VDC Cikkszám:

English PATROL 24VDC SOROMPÓ HASZNÁLATI UTASÍTÁS

TestLine - Angol teszt Minta feladatsor

Please stay here. Peter asked me to stay there. He asked me if I could do it then. Can you do it now?

On The Number Of Slim Semimodular Lattices

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Thomas Bach President of the International Olympic Committee. Thomas Bach a Nemzetközi Olimpiai Bizottság elnöke

DANS és Narcis. Burmeister Erzsébet. HUNOR találkozó, Budapest március 13.

Számítógépes alapismeretek

LED alkalmazások. Schanda János

THS710A, THS720A, THS730A & THS720P TekScope Reference

Átírás:

Computer Architectures 1. A card and code based door-lock 2016. március 4. Budapest Horváth Gábor associate professor BUTE Department of Networked Systems and Services ghorvath@hit.bme.hu

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 2 Outline Designing the hardware The building blocks of the system Adding memory to the CPU Adding peripherals to the CPU Desigining the software State-machine model of the system Flow-charts of the algorithms Implementation

THE HARDWARE Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 3

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 4 Building blocks of the system CPU D 0 -D 7 A 0 -A 15 MEMRD MEMWR IORD IOWR INT A 8-bit CPU Data bus: 8 bit wide Address bus: 16 bit wide Multiplexed memory and I/O busses RISC instruction set 3-operand instruction format Starting address: 0000h Interrupt subroutine address: 1000h

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 5 Building blocks of the system Memory ROM: to store instructions and program constants RAM: to store program variables and stack Let us use 8kB ROM and 8kB RAM 8 bit data bus 13 bit address bus CS CS 8 kb ROM 8 kb RAM A 0 -A 12 D 0 -D 7 RD A 0 -A 12 D 0 -D 7 RD WR

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 6 Building blocks of the system Card reader OE: output enable It has a 8 bit output D: If S/D = 0: it gives back an 1 if a new card has arrived If S/D = 1: it gives back the code (ID) of the last card INT: generates an interrupt if a new card is recognized D 0 -D 7 S/D OE INT

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 7 Building blocks of the system Keypad OE: output enable It has a 8 bit output D: If S/D = 0: it gives back an 1 if a button has been pressed If S/D = 1: it gives back the code of the last key INT: generates an interrupt upon each key press D 0 -D 7 S/D OE INT

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 8 Building blocks of the system Door lock CS: chip select WR/RD If WR/RD = 0: sets L according to the state of the door If WR/RD = 1: opens the door. The door locks again after a timeout automatically. L WR/RD CS

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 9 Building blocks of the system LED lights Indicate the status of the door (red/green) Additional elements: Decoder for interfacing the memory Comparators for detecting the addresses of peripherals D flip-flop for driving the LED lights

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 10 Adding memory to the CPU We have 8 kb ROM + 8 kb RAM Memory map: E000h-FFFFh C000h-DFFFh A000h-BFFFh 8000h-9FFFh 6000h-7FFFh 4000h-5FFFh 2000h-3FFFh 0000h-1FFFh RAM ROM A 13 -A 15 determine which module to use A 15 0101 1111 1111 1111 0100 0000 0000 0000 0011 1111 1111 1111 0010 0000 0000 0000 0001 1111 1111 1111 0000 0000 0000 0000 A 0 -A 12 determine the byte position in the selected module A 0

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 11 Adding memory to the CPU O 0 O 7 CS 8 kb ROM CS 8 kb RAM A 13 -A 15 A 0 -A 12 D 0 -D 7 RD A 0 -A 12 D 0 -D 7 RD WR A 0 -A 15 A 0 -A 12 CPU D 0 -D 7 MEMRD MEMWR IORD IOWR INT

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 12 Adding the card reader D 0 -D 7 CPU A 0 -A 15 MEMRD MEMWR IORD IOWR INT 1 15 0 A -A A 0 D 0 -D 7 S/D P CS Comp. P=Q OE Q INT 2Eh Adding the keypad: the same, with base address 3Eh

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 13 Adding the door lock D 0 -D 7 CPU A 0 -A 15 MEMRD MEMWR IORD IOWR INT CS D 0 A 0 -A 15 L P Comp. P=Q CS Q WR/RD 4Ch

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 14 Adding the LED lights D 0 -D 7 CPU A 0 -A 15 MEMRD MEMWR IORD IOWR INT CS A 0 -A 15 D 0 P D Comp. P=Q D-FF Q Q Q 5Dh +5V

THE SOFTWARE Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 15

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 16 State-machine of the system ST (state) = number of correct code digits typed so far on the keypad ST=0 ST=1 ST=2 ST=3 Card Card Card Card 0 1 2 3 Correct digit Correct digit Correct digit Bad digit Card/store ID Bad digit Init Bad digit Bad digit Correct digit / open door ST=255

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 17 Transitions of the state-machine ST=0 ST=1 ST=2 ST=3 Card Card Card Card 0 1 2 3 Correct digit Correct digit Correct digit Bad digit Card/store ID Bad digit Init Bad digit Bad digit Correct digit / open door Card event: ST=0, and store the card ID in a local variable Correct digit: ST=ST+1, if ST is not 255 Bad digit: ST=255 ST=255

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 18 Data structures The array of 4-digit key codes for each card ID The card ID is 8 bit wide 256 different IDs are allowed An array is used with 256 entries, one for each card ID each entry is the correct code (4-byte long) of the given card Total memory consumption: 256*4=1024 bytes (=400h) The ith code digit of card j is located at array start address + j*4 + i Local variables: 1-byte integer variable ST 1-byte integer variable CARDID

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 19 Algorithms The program has two parts: Main program Interrupt service routine The purpose of the main program: Monitors the state of the door Adjusts the LEDs accordingly The purpose of the interrupt service routine Handles card events and key presses Opens the door, if the correct code is given

The main program In an infinite loop: Ask door for the state Set LEDs accordingly R0 IO[door state] IO[LED] R0 Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 20

The interrupt service routine First we have to find out the interrupt source (polling!) Then apply the transition on the state machine Save registers to stack R0 IO[card reader state] Check if the interrupt arrived from the card reader R0=0? no yes Store ID, set the state machine to ST=0 and go to the end of interrupt routine CARDID IO[card reader data] ST 0 *end The interrupt is from the keypad... Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 21

The interrupt service routine The interrupt is from the keypad... R0 IO[keypad data] R1 start of array+cardid*4+st R2 MEM[R1] Read keycode from keypad Read the correct digit from memory Did we get the correct digit? R0=R2? no If yes, update ST yes ST ST+1 ST 255 If all 4 digits are correct, we can open the door no ST>3? yes IO[door data] 1 *end *end *end Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 22

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 23 The interrupt service routine The end of interrupt service routine: *end Restore registers from stack Enable further interrupts Return

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 24 Placement decisions Content of the RAM 1-byte integer variable ST: 2000h (first byte of the RAM) 1-byte integer variable CARDID: 2001h (second byte of the RAM) Initial stack pointer: 3FFFh, since it grows downwards Content of the ROM The program, starting at 0000h The interrupt service routine, starting at 1000h The array of correct codes for each card Size: 400h Can be placed anywhere, where space is available Let us put it to 500h The main program is small, it does not go beyond 500h The end of the array is 900h, which is bellow the interrupt routine

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 25 Assembly implementation Implementation of the main program: ORG 0000h SP 3FFFh EI label: R0 IO[4Ch] IO[5Dh] R0 JUMP label start code at this address set stack pointer enable interrupts read door status update LEDs jump back and do it again

Assembly implementation Array of 4-byte codes for each card ORG 500h codes: DB 1, 3, 4, 7 DB 5, 7, 2, 9 DB 8, 2, 0, 8 DB 3, 1, 8, 9... Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 26

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 27 Assembly implementation Implementation of the interrupt service routine: ORG 1000h PUSH R0 save R0/R1/R2 register to stack PUSH R1 PUSH R2 R0 IO[2Eh] read card reader state JUMP keycode IF R0==0 jump if interrupt source is the keypad R0 IO[2Fh] read card ID MEM[2001h] R0 save to variable CARDID MEM[2000h] 0 ST=0 JUMP end jump to the end of interrupt routine CPU jumps at this address on interrupt

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 28 Assembly implementation Implementation of the interrupt service routine: keycode: R0 IO[3Fh] R0=new digit R1 MEM[2000h] R1=ST R2 MEM[2001h] R2=CARDID R2 R2 * 4 R2=4*CARDID R2 R1 + R2 R2=4*CARDID+ST R2 MEM[R2+codes] R2=the correct digit JUMP match IF R2==R0 Jump if new digit is correct MEM[2000h] 255 JUMP end match: R1 R1+1 If correct, increment ST MEM[2000h] R1... and save ST to memory JUMP end IF R1<4 IO[4Ch] 1 If last digit, open the door JUMP end Go to the end of interrupt If not correct, go the init state...and go to the end of interrupt If this is not the last digit, go to the end

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 29 Assembly implementation Implementation of the interrupt service routine: end: POP R2 POP R1 POP R0 EI RET restore registers in a reverse order enable further interrupts return from interrupt

Számítógép Architektúrák Horváth Gábor, BME Hálózati Szolgáltatások és Rendszerek Tsz. 30 Variations Can we solve the problem without RAM? Yes. But we lose stack No more interrupts!!! Main program continuously polls: The state of the door (to update LEDs) The state of the card reader The state of the keypad We can not put ST and CARDID into the RAM We can store them in registers permanently