Komputer IAS

Transkrypt

Komputer IAS
Komputer IAS
IAS - architektura
✦ Pamięć: 1K słów 40 bitowych
✦ Reprezentacja binarna w kodzie dopełnieniowym (uzupełnienia do dwóch)
(ang. two’s complement, U2)
✦ negujemy bity liczby bez znaku i dodajemy binarnie 1
✦ 2 x 20 bitowe rozkazy
✦ Rejestry (pamiętane w CPU)
✦
✦
✦
✦
✦
✦
✦
Rejestr buforowy pamięci - MBR: Master Buffer Register
Rejestr adresowy pamięci - MAR: Memory Address Reg.
Rejestr rozkazów - IR: Instruction Register
Rejestr buforowy rozkazów - IBR: Instruction Buffer Reg.
Licznik programu - PC : Program Counter
Akumulator - AC: Acumulator
Rejestr mnożenia-dzielenia -MQ: Multiper-Quotier
IAS - format danych i rozkazów
0 1
39
Dane
Bit znaku
0
7 8
Kod
operacji
19 20
Adres
Rozkaz lewy
Kod
operacji
27 28
39
Adres
Rozkaz prawy
Struktura komputera IAS
Jednostka centralna (CPU)
Jednostka arytmetyczno-logiczna (ALU)
Akumulator
MQ
Układy arytmetyczno-logiczne
MBR
Urządzenia
wejściawyjścia
Rozkazy
& Dane
.
.
IBR
IR
.
PC
MAR
Układy
sterujące
.
.
.
Programowa jednostka sterująca (ALU)
Adresy
Pamięć
główna
M
Rejestry IAS
✦ MBR - zawiera słowo, które ma być
przechowywane w pamięci, lub też jest
wykorzystywany do pobierania słów z pamięci
✦ MAR - określa adres słowa w pamięci, które ma
być zapisane lub odczytane z MBR
✦ IR - zawiera 8-bitowy kod wykonywanego
rozkazu
✦ IBR - rejestr roboczy do przechowywania prawej
połowy słowa rozkazu
Rejestry IAS (c.d.)
✦ PC - zawiera adres następnej pary rozkazów, która ma być
pobrana z pamięci
✦ AC i MQ - rejestry robocze do czasowego przechowywania
argumentów oraz wyników operacji prowadzonych przez ALU
✦ wynik mnożenia liczb 40-bitowych jest 80-bitowy; 40 starszych bitów jest
pamiętanych w AC, 40 młodszych bitów jest pamiętanych w MQ
✦ Oznaczenie M(X, A:B) - zawartość komórki pamięci o adresie
X od bitu A do bitu B; M(X)=M(X, 0:39)
✦ M(5,0:7) - kod instrukcji w szóstym słowie
✦ Lista 21 rozkazów
IAS - rozkazy (1)
✦ Transfer danych - pamięć<->ALU i ALU<->ALU
✦ 00001010 LOAD MQ - przenieś zawartość rejestru MQ do AC
✦ 00001001 LOAD MQ,M(X) - przenieś zawartość pamięci X do
MQ
✦ 00100001 STOR M(X) - przenieś zawartość AC pod adres X
✦ 00000001 LOAD M(X) - przenieś M(X) do AC
✦ 00000010 LOAD -M(X) - przenieś -M(X) do AC
✦ 00000011 LOAD |M(X)| - przenieś |M(X)| do AC
✦ 00000100 LOAD -|M(X)| - przenieś -|M(X)| do AC
IAS - rozkazy (2)
✦ Rozgałęzienie bezwarunkowe - umożliwia
operacje powtarzalne
✦ 00001101 JUMP M(X,0:19) - pobierz następny rozkaz z
lewej połowy M(X)
✦ 00001110 JUMP M(X,20:39) - pobierz następny rozkaz z
prawej połowy M(X)
✦ Rozgałęzienie warunkowe - umożliwia decyzje
✦ 00001111 JUMP +M(X,0:19) - pobierz następny rozkaz z
lewej połowy M(X) o ile AC \geq 0
✦ 00010000 JUMP+ M(X,20:39) - pobierz następny rozkaz z
prawej połowy M(X) o ile AC \geq 0
IAS - rozkazy (3)
✦ Rozkazy arytmetyczne - wykonywane przez ALU
✦ 00000101 ADD
✦ 00000111 ADD
✦ 00000110 SUB
✦ 00001000 SUB
✦ 00001011 MUL
✦ 00001100 DIV
mod(AC /M(X))
✦ 00010100 LSH
✦ 00010101 RSH
M(X) |M(X)| M(X)
|M(X)| M(X)
M(X)
-> AC
-
AC + M(X) -> AC
AC + |M(X)| -> AC
AC - M(X) -> AC
AC - |M(X)| -> AC
MQ*M(X) -> AC
[AC/M(X)] -> MQ
&
AC*2 -> AC (o 1b w lewo)
[AC/2] -> AC (o 1b w prawo)
IAS - rozkazy (4)
✦ Rozkazy modyfikacji adresu - obliczenie adresów w
ALU i wstawienie ich do pamięci (uelastycznienie
adresowania)
✦ 000010010 STOR M(X,8:19) - wstaw 12 prawych bitów
AC do pola adresowego lewej połowy M(X)
✦ 00010011 STOR M(X,28:39) - wstaw 12 prawych bitów
AC do pola adresowego prawej połowy M(X)
IAS - realizacja instrukcji
✦ Cykl pobierania
✦ jeśli IBR nie zawiera następnej instrukcji:
✦ MAR<- PC; MBR<- M(MAR);
✦ jeśli wymagana jest lewa połowa:
✦ IBR<- MBR(20:39); IR<- MBR(0:7); MAR<- MBR(8:19);
✦ jeśli nie jest wymagana lewa połowa:
✦ IR<- MBR(20:27); MAR<- MBR(28:39); PC<- PC+1;
✦ jeśli IBR zawiera następną instrukcję:
✦ IR<- MBR(0:7); MAR<- MBR(8:19); PC<- PC+1;
✦ Cykl wykonania, przykłady
✦
✦
✦
✦
LOAD M(X): MBR<-M(MAR); AC<-MBR;
JUMP M(X, 0:19) : PC<- MAR;
JUMP+M(X,0:19): jeśli AC>=0 to JUMP M(X, 0-19); NOOP;
ADD M(X): MBR<- M(MAR); AC<- AC + MBR;
Start
Schemat IAS
Tak
Cykl pobierania
Nie wymagany
dostęp do pamięci
Czy
następny
rozkaz jest
w IBR?
Nie
MAR← PC
MBR← M(MAR)
IR← IBR(0:7)
IR ← MBR(20:27)
MAR←IBR(8:19)
MAR←MBR(28:39)
Nie
Czy
wymagany
jest lewy
rozkaz?
Tak
IBR←MBR(20:39)
IR← MBR(0:7)
MAR← MBR(8:19)
PC ← PC+1
Dekoduj rozkaz w IR
Cykl wykonania
AC← M(X)
Idź do M(X,0:19)
Jeśli AC≥ 0
idź do M(X,0:19)
AC← AC+M(X)
Czy
AC≥0?
MBR←M(MAR)
AC ← MBR
PC ← MAR
MBR←M(MAR)
AC← AC+MBR

Podobne dokumenty