1a. Von Neumannov model računala Razvoj programirljivosti računala: Univerzalni stroj [Turing36] TS koji čita logičku funkciju s trake ENIAC (1943-1947): ručno prospajanje, prekidači (Mauchly, Eckert) EDVAC (1944-1949): računalo s pohranjenim programom (Mauchly, Eckert, von Neumann) First Draft of a Report on the EDVAC [vonneumann45] IAS (1952): program i podatci u zajedničkoj memoriji (von Neumann) IBM 704 (1954): Fortran 1
Struktura von Neumannove arhitekture: Memorija pohranjuje program i podatke Procesna jedinica: izvodi aritmetičke i logičke operacije ( ALU) Upravljačka jedinica: interpretiranje programa Memorija ALU CU ACC PC IR 2
Pet funkcijskih jedinica von Neumannove arhitekture: Instrukcije svedene na numerički kod pohranjuju se kao i podatci, na jednak način i u istoj jedinici memoriji Računalo stroj za računanje mora imati jedinicu za izvršavanje osnovnih aritmetičkih operacija aritmetičku jedinicu Jedinica koja razumije i tumači instrukcije te upravlja slijedom izvoñenja operacija upravljačka jedinica Računalo mora imati mogućnost komunikacije s vanjskim svijetom, to mu omogućava ulazno-izlazna jedinica 3
Upravljački tok i tok podataka Periferni ureñaji Analizirati smjerove toka podataka i upravljačkog toka; Objasniti dvosmjernost upravljačkog toka; U/I jedinica ALU Aritmetičko logička jedinica CPU - centralna procesorska jedinica (central processor unit) Memorija Upravljačka jedinica Upravljanje Tok podataka 4
Značajke Von Neumannove arhitekture: numerički kodirane instrukcije spremljene zajedno s podatcima u memoriji sa slučajnim pristupom upravljačka jedinica prevodi instrukcije u slijed signala koji idu prema ALU i memoriji izmjenjuju se faze pribavi i izvrši, grananje i uvjetno grananje eksplicitnom promjenom programskog brojila paralelne operacije nad binarno kodiranim strojnim riječima, korištenje drugog komplementa dominantna arhitektura sve do početka 80-ih godina prošlog stoljeća glavni nedostatci: memorijsko usko grlo, mogućnost modificiranja programa 5
Primjer: računalo temeljeno na MC6800 (1974) START UP CLOCK VMA Φ2 Φ1 VMA Φ2 +5V IRQ RESET BA DBE Φ2 Φ1 TSC HALT NMI A0-A15 MPU DB0-DB7 R/W VMA CPU (MPU) radi u taktovima φ1 i φ2 A0-A9 A15 A14 A0-A9 E E ROM DB0-DB7 E E VMA Φ2 Identificirati funkcijske jedinice Veze meñu funkcijskim jedinicama: sabirnica podataka upravljačka sabirnica adresna sabirnica A D D R E S S A0-A6 A15 A14 A0 A1 A2 VMA A14 A15 A0-A6 E E E E RS0 RS1 RAM DB0-DB7 E E R/W DB0-DB7 CS0 E PIA RES CS1 R/W CS2 IRQA IRQB CA1 CA2 PA PB CB1 CB2 Φ2 R/W C O N T Φ2 R RESET O L IRQ D A T A Zajednički adresni prostor memorija ulaz izlaz (periferija) A0 A3 VMA A14 A15 PARALLEL I/O (DATA AND CONTROL) RS CS0 CS1 CS2 ACIA DB0-DB7 E R/W IRQ Tx Rx CTS DCD RTS SERIAL I/O (DATA AND CONTROL) IRQ Φ2 6
Vježba: Ilustrirati načelo jednoznačnosti adresa odreñivanjem dijela adresnog prostora koji je dodijeljen memorijskim (RAM, ROM) i perifernim (PIA, ACIA) sklopovima Komentirati rastrošno raspolaganje memorijskim prostorom Objasniti razliku izmeñu potpunog i nepotpunog adresnog (de-)kodiranja 7
Zadatci: 1.Statički RAM kapaciteta 4K x 8 bita i sljedećim važnijim priključcima A0-A11, D0-D7, CS0, CS1,CS2*, CS3*, R/W* priključite tako da se javlja na početnoj adresi $A000. Odrediti adresni prostor koji zauzima sklop. Nacrtati shemu priključenja ako su adresna i podatkovna sabirnica široke 16 odnosno 8 bitova. 2. Programirljivi ulazno-izlazni meñusklop ima četiri naslovljiva registra (R0-R3). Uz pretpostavku da meñusklop ima priključke RS0*, RS1*, E, E*, D0-D7, R/W* i φ, nacrtajte shemu priključenja na 16-bitnu adresnu sabirnicu te 8-bitnu sabirnicu podataka, tako da se meñusklop javlja na početnoj adresi $8008. Koristiti potpuno dekodiranje adrese, te adresni dekoder izvesti diskretnim logičkim sklopovima I, ILI, NE. 3. Riješiti 2. zadatak uporabom višeulaznog komparatora umjesto logičkih sklopova I, NE i/ili ILI. 8
Prikaz veličine adresnog prostora za Intelovu porodicu procesora: Intel 8080 Adresna sabirnica: A0 A15 64 K memorijskih lokacija 256 I/O lokacija Intel 8085 Adresna sabirnica: A0 A15 64 K memorijskih lokacija 256 I/O lokacija Intel 8086 Adresna sabirnica: A0 A19 8088 1M memorijskih lokacija 64 K I/O lokacija Intel 286 i Intel 386 SX A0 A23 16 M memorijskih lokacija 64 K I/O lokacija 9
Prikaz veličine adresnog prostora za Intelovu porodicu procesora (nastavak): Intel 386 DX A0 A31 4G memorijskih lokacija 64 K I/O lokacija Intel 486 A0 A31 4G memorijskih lokacija 64 K I/O lokacija Pentium A0 A31 4G memorijskih lokacija 64 K I/O lokacija Intel-HP IA-64 A0 A63 (2 64 bajtova) (Itanium) (memorijsko i izdvojeno I/O preslikavanje) 10
Aritmetičko - logička jedinica Elementi ALU: sklopovi za obavljanje aritmetičkih operacija registri (spremnici) za privremeno pohranjivanje operanada (operand podatak koji sudjeluje u operaciji); Prikaz podataka u binarnom sustavu: lakša tehnološka izvedba veća ekonomičnost predstavljanja brojeva laka implementacija logičkih operacija 11
Aritmetika računala IAS: zbrajalo i sklop za posmak Cjelobrojni operandi duljine 40 bita (12 decimala) Oduzimanje pribrajanje dvojnog komplementa Množenje i dijeljenje - pod programskim upravljanjem ponavljanjem uzastopnih operacija zbrajanja, odnosno oduzimanja i posmaka 12
U/I jedinica ALU CPU A B PC I S Memorija M A, B - akumulatori Upravljač ki signali S - memorijski registar podataka M memorijski adresni registar (MAR) PC programsko brojilo I - instrukcijski registar Upravljač ki signali Logika za ispitivanje uvjeta Sklopovi za generiranje upravljač kih signala 13
Upravljačka jedinica Generira upravljačke signale za ostale funkcijske jedinice Svaki korak algoritma predstavljen je jednom (strojnom) instrukcijom ili slijedom (strojnih) instrukcija. Strojne instrukcije odreñuju elementarne operacije koje sklopovlje procesora može izvesti 14
Duljina riječi 40 bita (podaci predočeni 40-bitnim kodom). Strojne instrukcije duljine 20 bita. Dvije instrukcije smještene u jednoj riječi u memoriji (lijeva i desna instrukcija): 8 bita 12 bita op kod adresa op kod adresa 20 bita 20 bita Lijeva instrukcija Desna instrukcija 15
Akumulatorski orijentirana arhitektura binarne operacije izvode se prema modelu A=f(A,M) inicijalan podatak u A je izgubljen nakon operacije Instrukcije su jednoadresne: operacijski kod (8 bit): binarno kodirana instrukcija npr: 11001100 kod instrukcije add (zbroji) adresa (12 bit): jednoznačna memorijska lokacija npr: 1001 0011 0111 - $937 12 bitova omogućava izravno adresiranje 4096 memorijskih lokacija operacijski kod adresa memorijske lokacije 16
Programsko brojilo PC (Program Counter): registar koji sadrži adresu sljedeće instrukcije IASov 13-bitovni PC: 12 adresnih bitova +1 bit za izbor lijeve ili desne instrukcije Instrukcijski registar IR registar koji sadrži instrukciju (op kod) Skup strojnih instrukcija (ISA) Aritmetičke i logičke instrukcije Instrukcije za prijenos podataka Instrukcije uvjetnog i bezuvjetnog grananja Ulazno-izlazne instrukcije 17
Računalo se tijekom izvoñenja programa uvijek nalazi u jednoj od dvije moguće faze (ili stanja) PRIBAVI IZVRŠI (FETCH) (EXECUTE) PRIBAVI iz memorije se pribavlja sljedeća instrukcija IZVRŠI pribavljena instrukcija se izvršava memorijski operand se dohvaća i obrañuje akumulator se sprema u memoriju memorijski operand se sprema u PC... 18
IZVRŠI (FETCH) (EXECUTE) PRIBAVI: 1. korak: MEM(PC) IR 2. korak: PC + 1 PC 3. korak: Dekodiranje operacijskog koda instrukcije 19
PRIBAVI IZVRŠI (FETCH) (EXECUTE) IZVRŠI: 4. korak: (npr. pročitaj tj. dohvati operand iz memorije) 5. korak: (npr. izvedi aritmetičku operaciju nad jednim ili dvama operandima) 6. korak:... 7. korak:... 20
Dijagram rada računala 1970-ih A START Postavi programsko brojilo na adresu prve instrukcije DA Operacijski kod se smještava u instruk. registar i dekodira se Da li je to prva riječ (operacijski kod) instrukcije? NE Riječ se smještava u interni registar procesora FAZA PRIBAVI Sadržaj programskog brojila se prenosi glavnoj memoriji FAZA PRIBAVI Povećava se sadržaj programskog brojila za 1 Čita se riječ iz memorije i prenosi se procesoru NE Da li su pribavljene sve riječi instrukcije? DA Izvrši instrukciju FAZA IZVRŠI A 21
Memorija u von Neumannovom modelu Svakoj memorijskoj lokaciji jednoznačno je pridružena adresa Memorija nema procesnih sposobnosti M - memorijski adresni reg. S - memorijski registar podataka Memorijska jedinica prateći modul Procesor vodeći modul Izvedba: katodne cijevi (!!!) elementi: bijela točka na zaslonu Adresa 000 001 002 003 Upravljački signal: R/W osvježavanje svakih cca 100ms...... R/W = 1 čitaj Vrijeme pristupa cca 50 us 500 1000 bitova po cijevi ukupno oko 2000 cijevi 00F 010 011 012... R/W = 0 piši 22
Operacija čitanja (R/W* = 1) Adresa M R/W 1 M - memorijski adresni reg. 00F Adresa S - memorijski registar podataka 000 001 002 003 3F 21 FF 02 Upravljački signal: R/W 1...... R/W = 1 čitaj 00F 010 011 012 40 41 F4 ED R/W = 0 piši... 23
Stanje nakon isteka vremena pristupa memoriji podatak s lokacije 00F preslikan u memorijski registar podataka S operacija čitanja je nedestruktivna operacija! M - memorijski adresni reg. 00F Adresa 000 001 002 003 S - memorijski registar podataka 40 3F 21 FF 02 Upravljački signal: R/W 1...... R/W = 1 čitaj 00F 010 011 012 40 41 F4 ED R/W = 0 piši... 24
Operacija Pisanja (R/W* = 0) Adresa Podatak S M M - memorijski adresni reg. 010 Adresa S - memorijski registar podataka 27 R/W 0 000 001 002 003 3F 21 FF 02 Upravljački signal: R/W 0...... R/W = 1 čitaj 00F 010 011 012 40 41 F4 ED R/W = 0 piši... 25
Stanje nakon isteka vremena pristupa memoriji M - memorijski adresni reg. 010 S - memorijski registar podataka 27 Adresa 000 001 002 003 3F 21 FF 02 Upravljački signal: R/W 0...... R/W = 1 čitaj 00F 010 011 012 40 27 F4 ED R/W = 0 piši... 26
Bistabil kao element za izvedbu memorije : SELECT R Stanje Q 0 1 Ulaz SR 00 01 0 0 1 0 10 1 1 INPUT S Q OUTPUT READ/WRITE Input BC Select Output R/W 27
Operacija Čitanja 1 SELECT Stanje Q 0 1 Ulaz SR 00 01 0 0 1 0 10 1 1 0 R INPUT 0 S Q 1 1 OUTPUT 0 ili 1 0 READ/WRITE 1 28
Operacija Pisanja 1 SELECT Stanje Q 0 1 Ulaz SR 00 01 0 0 1 0 10 1 1 1 R Input 0 0 S Q 1 OUTPUT 1 READ/WRITE 0 0 (Ilustrirati destruktivnost operacije pisanja) 29
Izvedba memorije 4 x 3 bita ULAZNI PODACI Select RIJEČ 0 Input BC R/W Output A0 A1 D E K O D E R RIJEČ 1 RIJEČ 2 BC BC BC BC BC BC OMOGUĆI MEMORIJU R/W 2 na 4 RIJEČ 3 BC BC BC BC BC BC IZLAZNI PODACI 30
Zadatak: Nacrtajte izvedbu memorije 16 x 4 bita uporabom BC ćelija i priključite tako oblikovan modul na 16-bitnu adresnu sabirnicu tako da je početna adresa memorije 8000. 31
2.6. Ulazno-izlazna jedinica Grafička prikazna jedinica - katodna cijev logička 1 svjetlo polje logička 0 tamno polje Poštanski teleprinter s pomoćnom žičanom memorijom 32
Konceptualni nedostatak von Neumannove arhitekture von Neumannovo usko grlo (J. Backus, začetnik Fortrana) Memorija CPU 33
2.7. Usporedba TS-a i von Neumannovog modela računala Turingov stroj Algoritam obrade odreñen logičkom funkcijom Von Neumannov model računala Algoritam obrade odreñen slijedom instrukcija u memoriji s i L s k p q l q j Memorijska jedinica: beskonačna vrpca I Glava za čitanje i pisanje Memorijska jedinica: konačna memorija Adresa 00001 00002 00003 00004 00005 Sadržaj 08 AB 7C 9A 78... 34
Turingov stroj Aritmetičko-logička jedinica objedinjena s upravljanjem Ulazno-izlazna jedinica je beskonačna vrpca Von Neumannov model računala Aritmetičko-logička jedinica izvedena zasebno Ulazno-izlazna jedinica izvedena zasebno 35