PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy...
Transcript of PTCIM II - materialy• CCC –sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy...
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
1
Informacje wstępne
• Wykład obejmuje– wprowadzenie do techniki mikroprocesorowej– omówienie budowy i sposobu działania mikroprocesora– pamięci cyfrowe– magistrale– urządzenia wejścia – wyjścia– rozwiązania stosowane w nowoczesnych mikroprocesorach
• Literatura:– Mroziński Zbigniew, Mikroprocesor 8086, WNT– Mroziński Zbigniew, Elementy systemu mikroprocesorowego
8086, skrypt PWr– Biernat Janusz, Architektura komputerów, PWr– Sacha Krzysztof, Mikroprocesor w pytaniach i odpowiedziach
WNT
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
2
Historia – Maszyna Turinga
QT1 QT2 QT3 QT4 QT5 QT6 QT7 QT8
maszyna Turinga
QM
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
3
System mikroprocesorowyPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
4
Mikroprocesor
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
5
Cyfrowe kodowanie informacji
porcja danych bity zakres kodowanych liczb (NKB)
tetrada (nybble) 4 0 ÷ 15
bajt (byte) 8 0 ÷ 255
słowo (word) 16 0 ÷ 65536
podwójne słowo (dword) 32 0 ÷ 4 294 967 296
poczwórne słowo (qword) 64 0 ÷ 18 446 744 073 709 551 616
liczba 12345678h 1. bajt 2. bajt 3. bajt 4.bajt
„big endian”
„small endian”
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
6
Podstawowe części składowe procesora
magistrala lokalna
sygnały
sterujące
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
7
Podstawowe części składowe procesora
• Zapewnia taktowanie wszystkich elementów składowych mikroprocesora
• Pobiera z pamięci i dekoduje kolejne rozkazy programu w określonym porządku
• Kieruje rozkazy do wykonania przez ALU
• Steruje pracą rejestrów procesora
• Pobiera z pamięci i zapisuje do pamięci przetwarzane dane
• Wysyła dodatkowe sygnały niezbędne do współpracy z układami współpracującymi z mikroprocesorem (pamięć, we/wy)
• Niewielki obszar pamięci wewnątrz procesora
• Służą np. do:
– pamiętania danych przetwarzanych przez ALU
– zliczania powtórzeń pętli
– wskazywania miejsca w pamięci
• Rejestry specjalne:
– licznik rozkazów
– informacje o bieżącym stanie procesora
• Rejestry mogą być dostępne dla programu użytkownika bądź wykorzystywane wewnętrznie przez procesor
Układ sterowaniaControl Unit
RejestryRegisters
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
8
Podstawowe części składowe procesora
• Przetwarzanie informacji• Wykonuje zamknięty zbiór elementarnych poleceń na wartościach
liczbowych bądź logicznych, na przykład:– arytmetyka liczb całkowitych:
• +, -, czasem *, /• porównywanie wartości dwu liczb• zmiana znaku
– arytmetyka logiczna• OR, AND, XOR, NOT• przesunięcia i obroty
– działania na pojedynczych bitach• ustawianie, zerowanie i sprawdzanie wartości bitu
– możliwe inne działania, w zależności od konstrukcji procesora
Jednostka arytmetyczno -
logicznaArithmetic Logic Unit
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
9
Sposób działania mikroprocesoraPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
10
Prosty mikroprocesor
• Przykładowy mikroprocesor z– 5 – bitową magistralą adresową– 8 – bitową magistralą danych– 8 rozkazów:
• LDA – załaduj A, adresowanie bezpośrednie• STA – zapisz A, adresowanie bezpośrednie• JMP, JZ – skok bezwarunkowy, warunkowy• ADD, SUB, AND, INV – operacja arytmetyczna pomiędzy A i daną
adresowaną bezpośrednio
– 8-bitowe słowa kodu maszynowego; 3 starsze bity oznaczają jeden z 8 rozkazów, 5 młodszych bitów to argument
• Jest to procesor bardzo uproszczony, brak w nim wielu rozkazów i trybów adresowania kluczowych z punktu widzenia zastosowań praktycznych.
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
11
Prosty mikroprocesor
ALU
AIN
DIN
ADD
SUB
AND
INV
AOUT
SETA
Pamięćdanych
W DOUT
DIN
ADR
R
AND
SUB
ADD
JZ
a a a b b b b b
JMP
STA
LDA
INV
IPIPIN
INC
OUTSET
PamięćprogramuADR DOUT
Akumulator
Z
OUT
ALU
MEM
MEMS
ALUS
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
12
Prosty mikroprocesor
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
13
Intel 8086
• 1978 – data ukazania się na rynku
• Procesor 16-bitowy• Pierwszy z tzw. rodziny
x86• Stanowił jednostkę
centralną pierwszego komputera typu IBM PC
• 20 tys. tranzystorów• Zegar 5 MHz (późnej 10
MHz)• Możliwość współpracy z
1 MB pamięci
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
14
8086 - adresowanie 1 MB pamięci
• Adres fizyczny
• Adres = segment*16 + przesunięcie
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
15
8086 - rejestry
AH AL
BH BL
CH CL
DH DL
AX
BX
CX
DX
wskaźnik stosu
wskaźnik bazowy
indeks źródła
indeks przeznaczenia
SP
BP
SI
DI
segment kodu
segment danych
segment stosu
segment danych
CS
DS
SS
ES
licznik rozkazówIP
słowo stanu CPU
akumulator
baza
licznik
dane
rejestry danych
rejestry wskaźnikowe
rejestry segmentowe
rejestry specjalne
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
16
Program procesora
Program zapisany w assemblerze
mov cx,10hmov ax,0mov si,1000h
:petla add ax,[si]add si,2dec cxjnz petla
Kod maszynowy
B9h, 10h, 00h,B8h, 00h, 00h,BEh, 00h, 10h,03h, 04h,83h, C6h, 02h,49h, 75h, F8h
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
17
8086 - tryby adresowania
• Adresowanie za pomocą rejestru– Dana znajduje się w rejestrze procesora– Zwarte, najszybsze
• Adresowanie natychmiastowe– Dana jest stałą liczbą umieszczoną w
kodzie programu• Adresowanie bezpośrednie
– Dana znajduje się w pamięci w segmencie danych a przesunięcie zawarte jest w kodzie programu
• Adresowanie pośrednie przez rejestr– Dana znajduje się w pamięci w segmencie
danych a przesunięcie zawarte jest w jednym z rejestrów: BP, BX, SI lub DI
MOV CX, DXADD AX, BX
MOV AX, 13ADD AX, 13
MOV AX, DS:[13]ADD AX, ES:[13]
ADD AX, DS:[SI]MOV ES:[DI], AX
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
18
8086 – tryby adresowania
• Adresowanie bazowe– Dana znajduje się w pamięci w segmencie danych a
przesunięcie obliczane jest przez zsumowanie stałej z kodu programu oraz jednego z rejestrów: BP, BX
• Adresowanie indeksowe– Dana znajduje się w pamięci w segmencie danych a
przesunięcie obliczane jest przez zsumowanie stałej z kodu programu oraz jednego z rejestrów: SI lub DI
• Adresowanie bazowo-indeksowe– Dana znajduje się w pamięci w segmencie danych a
przesunięcie obliczane jest przez zsumowanie:• stałej z kodu programu• wartości zapisanej w jednym z rejestrów BX, BP• wartości zapisanej w jednym z rejestrów SI, DI
MOV AX, [BP+4]ADD AX, [BP+6]
MOV AX, [SI+4]ADD AX, [SI+6]
MOV AX, [BP+SI+4]ADD AX, [BP+SI+6]
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
19
8086 – tryby adresowania
• Adresowanie łańcuchów– wykorzystywane przy przetwarzaniu
ciągów danych– przesunięcie w adresie danych
źródłowych zawarte w SI– przesunięcie w adresie danych
wynikowych zawarte w DI– po wykonaniu elementarnego polecenia
wartości SI i DI ulegają zmianie• Adresowanie bezpośrednie portu we/wy
– adres portu zawarty w kodzie programu (0-255)
• Adresowanie pośrednie portu we/wy– adres portu zawarty w rejestrze DX
REP MOVS
OUT 75h, AL.
IN AL, DX
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
20
Rodzaje rozkazów procesora
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
21
Przesłanie bajtu lub słowa
•MOV – przesłanie bajtu lub słowa1000100W|AABBBCCC Przesłanie z rejestru do rejestru lub pamięci.
Rozkaz rozpoznawany przez CU przez analizę pierwszego bajtu. Forma polecenia zależy od dodatkowych wartości:
Kodowanie rozkazu:• stały kod 1000100• W – 0 gdy przesyłany bajt, 1 gdy przesyłane słowo (np. AX czy AL)• AA – sposób obliczania przeznaczenia przesłania• 00 – brak przesunięcia chyba że CCC=110, wtedy 2 bajty DE• 01 – 1 bajt przesunięcia zapisany w D• 10 – 2 bajty przesunięcia DE• 11 – przesłanie między rejestrami• BBB – rejestr źródłowy:• 8 bitowe: 000 – AL, 001 – CL, 010 – DL, 011 - BL, 100 – AH, 101 – CH, 110 – DH, 111 – BH
• 16 bitowe: 000 – AX, 001 – CX, 010 – DX, 011 – BX, 100 – SP, 101 – BP, 110 – SI, 111 – DI
• CCC – sposób obliczenia adresu efektywnego: rejestr tak jak w BBB gdy AA=11 lub: 000 – BX+SI+DISP, 001 – BX+DI+DISP, 010 – BP+SI+DISP, 011 – BP+DI+DISP, 100 –SI+DISP, 101 – DI+DISP, 110 – BP+DISP, chyba że AA=00, 111 - BX+DISP
DDDDDDDD|EEEEEEEE
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
22
Operacje na stosie
• POP – zdjęcie danej ze stosu
– dana = SS:[SP], SP=SP+2
– do rejestru lub pamięci (2 bajty)
– do rejestru (1 bajt)
• np.: POP BX
AX
SP
adresy
• PUSH – umieszczenie danej na stosie
– SP=SP-2, SS:[SP] = dana
– z rejestru lub pamięci na stos (2 bajty)
– z rejestru na stos (1 bajt)
• np.: PUSH AX
SP BX
stos
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
23
Inne polecenia przesłania danychPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
24
Rozkazy arytmetyczne
• Rozkazy arytmetyczne modyfikują zawartość znaczników. Znaczniki pamiętane są w słowie stanu procesora. Każdy z nich ma inne znaczenie:
– C – przeniesienie: ustawiany gdy nastąpiło przepełnienie przy dodawaniu lub pożyczka przy odejmowaniu
– A – analogicznie, ale przeniesienie pomiędzy połówkami bajtu
– S – znak, ustawiany zgodnie z najstarszym bitem wyniku operacji arytmetycznej; jeśli liczby kodowane są w U2 wtedy znacznik S = 1 oznacza wynik ujemny
– Z – zero, znacznik ustawiany gdy wynik operacji arytmetycznej równy jest 0, w przeciwnym wypadku kasowany
– P – parzystość, ustawiany gdy wśród 8 najmłodszych bitów wyniku jest parzysta liczba bitów „1”
– O – nadmiar, ustawiany gdy wynik operacji ma zbyt dużą liczbę bitów aby zmieścił się bez utraty informacji w miejscu przeznaczenia
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
25
Dodawanie
• ADD
– 2 argumenty, jeden z nich może być adresem
– ADD AX, BX oznacza AX = AX+BX
• ADC – dodawanie z przeniesieniem
– 2 argumenty, jeden z nich może być adresem
– ADC AX, BX oznacza AX = AX+BX+C
– Używane przy dodawaniu wielobajtowych liczb.
• INC
– 1 argument
– INC AX oznacza AX = AX+1
– rozkaz nie modyfikuje znacznika C
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
26
Odejmowanie
• SUB
– 2 argumenty, jeden z nich może być adresem
– SUB AX, BX oznacza AX = AX-BX
• SBB – odejmowanie z pożyczką
– 2 argumenty, jeden z nich może być adresem
– SBB AX, BX oznacza AX = AX-BX-C
– Używane przy odejmowaniu wielobajtowych liczb.
• DEC
– 1 argument
– DEC AX oznacza AX = AX-1
– rozkaz nie modyfikuje znacznika C
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
27
Porównanie
• CMP
– 2 argumenty, jeden z nich może być adresem
– CMP AX, BX oznacza ustawienie znaczników tak jak przy operacji SUB AX, BX ale zawartość rejestrów nie ulega zmianie.
• CMPSB, CMPSW
– porównanie bajtów (CMPSB) lub słów (CMPSW) spod adresów DS:[SI] i ES:[DI]
– wyniki porównania jak wyżej
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
28
Mnożenie i dzielenie
• MUL – mnożenie bez znaku
– 1 argument
– 8 bitów: MUL BL oznacza AX = AL*BL
– 16 bitów: MUL BX oznacza (DX,AX) = AX*BX
– modyfikowane znaczniki: C, O, pozostałe nieokreślone
• IMUL – j. w. ale liczby ze znakiem
• DIV – dzielenie bez znaku
– 1 argument
– 8 bitów: DIV BL oznacza AL=AX/BL, AH=reszta
– 16 bitów: DIV BX oznacza AX=(DX,AX)/BX, DX = reszta
– wartości znaczników nieokreślone
• IDIV – j. w. ale liczby ze znakiem
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
29
Operacje na kodzie BCD
• BCD:
– AAA – ASCII Adjust after Addition
– AAS – ASCII Adjust after Subtraction
– AAM – ASCII Adjust after Multiplication
– AAD – ASCII Adjust before Division
• Spakowany BCD:
– DAA – Decimal Adjust after Addition
– DAS – Decimal Adjust after Subtraction
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
30
Operacje na bitach - przesunięcia
• SAL, SHL – przesunięcie arytmetyczne, logiczne w lewo.
– SHL AL, 3 oznacza przesunięcie AL o 3 bity w lewo
– przesunięcie arytmetyczne i logiczne w lewo oznaczają tę samą operację i są tak samo kodowane
– modyfikowane znaczniki: C, O gdy przesuw o 1 bit, O=(C!=MSB)
110101100
101011001
010110001
101100000
C AL
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
31
Operacje na bitach - przesunięcia
•SAR, SHR – przesunięcie arytmetyczne, logiczne w prawo.
–SHL AL, 3 oznacza przesunięcie AL o 3 bity w prawo
–przesunięcie arytmetyczne zachowuje znak liczby
–modyfikowane znaczniki: C, O gdy przy SAR zmienił się znak liczby
11010110 0
01101011 0
00110101 1
00011010 1
CAL
11010110 0
11101011 0
11110101 1
11111010 1
CAL
SHR SAR
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
32
Operacje na bitach - obroty
• ROL, ROR: obroty w lewo i prawo
– ROL AL, 3 – obrót w lewo o 3 bity
11010110101011010101101110110110
AL
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
33
Operacje na bitach - obroty
• RCL, RCR – obrót ze znacznikiem C
– RCL AL, 3 – obrót ze znacznikiem C o 3 bity
– może być wykorzystywane przy obrotach liczb wielobajtowych
11010110 0
10101100 1
01011001 1
10110011 0
CAL
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
34
Operatory logiczne na bajtach, słowach
• AND, OR, XOR
– AND AX, BX oznacza, AX = AX & BX, analogicznie pozostałe operacje
– operacja logiczna wykonywana jest na każdym bicie argumentów z osobna
– modyfikowane znaczniki S, Z, P, O(zero), C(zero)
• NOT – negacja wszystkich bitów
– NOT AX neguje wszystkie bity AX
– nie są modyfikowane znaczniki
• TEST
– podobne do AND, z tym, że ulegają zmianie jedynie znaczniki, wartości rejestrów nie
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
35
Rozkazy przeniesienia sterowania
• Powodują zmiany sekwencyjności wykonania programu poprzez zmiany wartości rejestru IP lub CS:IP
• Są wykonywane przez CU
• W procesorze 8086 rozróżniamy 3 sposoby określenia docelowego miejsca wykonania programu po skoku:
– bez zmiany CS:
• krótki, względny, zmiana IP o -128 ÷ 127
• bliski, zmiana IP
– ze zmianą CS:
• daleki, zmiana CS oraz IP
• Skoki bliskie i dalekie mogą być bezpośrednie (nowa wartość umieszczona w kodzie programu) lub pośrednie (nowa wartość określona zawartością rejestrów)
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
36
Skok bezwarunkowy
• JMP
– skok krótki, IP = IP+A
– skok bliski, IP = DISP
–skok daleki (międzysegmentowy):
•nowe wartości CS i IP umieszczone w kodzie programu
•nowe wartości CS i IP umieszczone w rejestrach:
–JMP DS:[BP]
11101011|AAAAAAAA
DISP11111111
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
37
Skoki warunkowe
• Wyłącznie krótkie
– JE, JZ; JL, JNGE; JLE, JNG; JB, JNAE; JBE, JNA; JP, JPE; JO, JS, JNE, JNZ; JGE, JNL; JG, JNLE; JAE, JNB; JA, JNBE; JNP, JPO; JNO; JNS; JC; JNC
– Znaczenie mnemonika wyjaśnia jego rozwinięcie np:
• JZ – Jump on Zero
• JC – Jump on Carry
• JNC – Jump on Not Carry
• JNGE – Jump on Not Greater or Equal
• ...
– dlaczego JZ = JE? Patrz CMP!
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
38
Pętle
• LOOP – pętla bezwarunkowa
– tylko krótkie
– zmniejszenie CX, skok tylko gdy CX ≠ 0
• LOOPE, LOOPZ, LOOPNE, LOOPNZ
– tylko krótkie
– zmniejszenie CX, skok tylko gdy CX ≠ 0 i spełniony jest dodatkowy warunek:
• LOOPE, LOOPZ: Z = 1
• LOOPNE, LOOPNZ: Z = 0
• JCXZ
– skok krótki tylko gdy CX ≠ 0
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
39
Wywołanie podprogramu
• CALL – wywołanie podprogramu
– bliskie i dalekie
– przed przeniesieniem sterowania w nowe miejsce adres (słowo lub dwa słowa) rozkazu bezpośrednio następującego po CALL jest odkładany na stos
• RET – powrót z podprogramu
– bliski: IP = wartość ze stosu
– daleki: CS:IP = dwa słowa zdjęte ze stosu
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
40
Operacje na łańcuchach
• Mikroprocesor 8086 został wyposażony w możliwość łatwego przeprowadzania pojedynczej operacji na ciągach danych o znanej długości
• Operacja na łańcuchu składa się z:
– przedrostka REP, REPE, REPZ, REPNE, REPNZ
– rozkazu łańcuchowego:
• MOVS, CMPS, SCAS, LODS, STOS
• Przedrostki:
– zmniejszają CX o 1 po wykonaniu rozkazu łańcuchowego
– REP – używany tylko z MOVS I STOS, oznacza powtarzanie rozkazu gdy CX ≠ 0
– REPE – powtarzaj gdy zgodność, REPZ – powtarzaj gdy zero, REPNE – powtarzaj gdy brak zgodności, REPNZ – powtarzaj gdy nie zero
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
41
Operacje na łańcuchach
• MOVS – move string
– przepisanie spod DS:[SI] do ES:[DI]
• CMPS – compare string
– porównanie DS:[SI] do ES:[DI], (patrz CMP)
• SCAS – scan string
– porównanie kolejnych elementów ES:[DI] z wartością z AX (AL)
• LODS – load string: AX (AL) = DS:[SI]
• STOS – store string ES:[DI] = AX (AL)
• Operacje łańcuchowe po wykonaniu odpowiednio modyfikują wartości rejestrów indeksowych SI, DI
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
42
Rozkazy sterowania procesorem
• CLC, CMC, STC – zerowanie, negowanie i ustawianie znacznika C
• CLD, STD – zerowanie i ustawianie znacznika D
• CLI, STI – zerowanie i ustawianie znacznika I
• NOP – nie rób nic
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
43
Szybkość wykonywania poleceń
• Czas obliczenia adresu efektywnego:
• bezpośrednie: 6 clk
• bazowe, indeksowe bez przesunięcia: 5 clk
• jw. ale z przesunięciem: 9 clk
• bazowo-indeksowe bez przesunięcia:
– BP+DI, BX+SI: 7 clk
– BP+DI, BX+DI: 8 clk
• jw. ale z przesunięciem:
– BP+DI+DISP, BX+SI+DISP: 11 clk
– BP+SI+DISP, BX+DI+DISP: 12 clk
• CBW, CLC, REP: 2 clk
• MOV
• rejestry: 2 clk
• rejestr – pamięć 8 clk + AE
• akumulator – pamięć: 10 clk
• ADD
• rejestry: 3 clk
• rejestr – pamięć: 9 clk + AE
• JZ
• 16 gdy skok, 4 gdy brak skoku
• XLAT: 11 clk
• MUL 16-bitowy: 118-113 clk
• DIV 16-bitowe: 144-162 clk
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
44
Rodzaje CPU – lista rozkazów
• 80486 (w 1992):
– ponad 200 rozkazów, liczne w wielu wariantach
– 11 trybów adresowania
– 4 rejestry danych
– 33-66 MHz
• DEC ALPHA 21064 (1992)
– 64 rozkazy, prosty dekoder instrukcji
– 1 tryb adresowania
– 2x32 rejestry danych
– 100 – 200 MHz, 30W
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
45
Parametry pamięci
• Pojemność i organizacja
• Czas dostępu
• Szybkość
• Pozostałe parametry elektryczne – napięcie pracy, tracona moc itp
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
46
Komórka pamięci SRAM
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
47
Budowa pamięci SRAMPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
48
SRAM - przykład
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
49
SRAM - odczytPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
50
SRAM - zapis
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
51
DRAM
linia słów
linia bitów
C
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
52
•DRAM
IBM Application Note: Understanding DRAM Operation
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
53
•DRAMPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
54
•DRAM – uproszczony odczyt
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
55
•DRAM – uproszczony zapis
IBM Application Note: Understanding DRAM Operation
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
56
DRAM
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
57
ROMPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
58
PROM
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
59
•EEPROM, FlashPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
60
•Pamięci z pływającą bramką
• EPROM (1971)– trwałość 10-20 lat– ładowanie bramki pływającej przez wstrzykiwanie gorących
nośników– rozładowanie bramki przez naświetlanie UV jonizujące izolator
bramki• EEPROM (1983)
– ładowanie i rozładowanie bramki pływającej przez emisję polową (tunelowanie Fowlera-Nordheima), choć istnieją rozwiązania hybrydowe (wykorzystanie wstrzykiwania przy programowaniu)
– ograniczona żywotność: 103 – 106 cykli (4 mies. przy zmianie zawartości co 1 s)
• FLASH (1984)– odmiana EEPROM w której zapis i odczyt odbywa się blokami
danych – zwiększona wydajność
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
61
•FRAM
źródło: Wikipedia
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
62
MRAM
źródło: Wikipedia
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
63
System mikroprocesorowy
MikroprocesorCPU
PamięćMemory
Urządzenia wejścia - wyjściaI/O, Input - Output
Magistrala lokalna (Local Bus)
Otoczenie
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
64
Magistrale - klasyfikacja
Równoległe
Nadajnik Odbiornik
d0
d1
d2
d3
Szeregowe
Nadajnik Odbiornik
d
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
65
Transmisja szeregowa asynchroniczna
N
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
66
Magistrale - klasyfikacja
niezbalansowane różnicowe
0
1
01
01
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
67
Magistrala lokalna – rodzaje
CPUpamięć
programupamięćdanych
CPUpamięć
CU - program
ALU - dane
Architektura Harvard
Architektura von Neumann’a
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
68
Bramki 3-stanowe
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
69
Logika 3-stanowa
PCI Local Bus Specification rev. 2.2 December 18, 1998
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
70
Przełączane wyjście / wejście
DWY
DWE
��/��
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
71
Przełączane wejście - wyjście
Atm
elATm
ega8 d
ata
sheet
pullup bufor wyjściowy 3-stanowy
bufor wejściowy
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
72
Przełączane wyjście / wejście
DW
Y
DW
E
��/��
DW
Y
DW
E
��/��
DW
Y
DW
E
��/��
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
73
Magistrala lokalna
• CLK
• A (np. A15
..A0)
• D (np. D7..D
0)
• �/�� lub ��/�
• �/�� lub ��/��
• linii pomocnicze pełniące specjalne funkcje
– ALE
– zgłaszanie i obsługa przerwań
– ...
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
74
Magistrala lokalna – prosty przykład
Przykład magistrali lokalnej wykorzystywanej przy współpracy mikrokontrolera ATmega 8515 z pamięcią SRAM. Magistrala multipleksowana, młodsze 8 bitów magistrali współdzielone pomiędzy dane i adres – wykorzystany jest zatrzask sterowany sygnałem ALE
Podst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
75
CPU
D7...D0
A15...A0
R/W
Magistrala lokalna – prosty przykładPodst
aw
y T
echnik
i C
yfr
ow
ej
i M
ikro
pro
ceso
row
ej
II ©
Tom
asz
Pia
secki
76
8086 – najważniejsze wyprowadzenia
•CLK – sygnał zegarowy
•RESET – zerowanie procesora
•AD0-AD15 – we/wy, 16 bitów danych lub adres
•A16/S3-A19/S6 – wy, 4 bity adresu lub bity stanu
•M/IO – wy, pamięć/IO
•ALE – wy, aktywacja zatrzasku adresu
•WR – wy, zapis/odczyt
•HOLD, HLDA – żądanie i potwierdzenie dostępu do magistrali przez urz. zew.
•INTR, NMI – linie zgłoszenia przerwania