770 likes | 1.05k Views
ARCHITEKTURA KOMPUTERÓW · definicja komputera. PAMIĘĆ OPERACYJNA. PROCESOR. URZĄDZENIA ZEWNĘTRZNE. PAMIĘĆ OPERACYJNA (PAO) · bezpośrednio dostępna dla procesora · zestaw ponumerowanych komórek do przechowywania ciągów binarnych. m 0.
E N D
ARCHITEKTURA KOMPUTERÓW ·definicja komputera PAMIĘĆ OPERACYJNA PROCESOR URZĄDZENIA ZEWNĘTRZNE
PAMIĘĆ OPERACYJNA (PAO) ·bezpośrednio dostępna dla procesora ·zestaw ponumerowanych komórek do przechowywania ciągów binarnych m 0 . . . . 0 1 n . . . . . . . .
PROCESOR ·procesor : układ, który samoczynnie realizuje program ·program : ciąg poleceń, które może wykonywać procesor ·polecenie → rozkaz, zapisany jako ciąg binarny ·program → sekwencja (ciąg) rozkazów ·lista rozkazów ( charakteryzuje procesor ) ·lokalizacja programu : PAO ( von Neumann 1946 )
·podstawowy cykl pracy procesora POBIERZ ROZKAZ Z PAMIĘCI OPERACYJNEJ WYKONAJ ROZKAZ
·wskazanie rozkazu do wykonania : licznik rozkazów, wskaźnik rozkazu ( rejestr ) POBIERZ ROZKAZ Z PAMIĘCI OPERACYJNEJ WSKAZANY PRZEZ LICZNIK ROZKAZÓW ZMIEŃ ZAWARTOŚĆ LICZNIKA ROZKAZÓW WYKONAJ ROZKAZ ·LR ← LR + 1 LR ← LR + N
KodOp KodOp Arg KodOp Arg1 Arg2 Budowa rozkazu bezargumentowy 1 - argumentowy 2 - argumentowy ·Arg : liczba, adres PAO, ozn. rejestru procesora
Rejestr Rozkazu KodOp R Arg Prosty procesor RR RA RB LR WS ARYTMOMETR + - Rejestr A Rejestr B STEROWANIE Licznik Rozkazów Wskaźnik Stosu
pole KodOp : kod ( numer ) rozkazu • pole R : wskazuje RA ( 0 ) albo RB ( 1 ) • pole Arg : liczba NN albo • adres komórki pamięci AP Rejestr Rozkazu KodOp R Arg
Lista rozkazów, mnemoniczne kody rozkazów rozkazy przesyłania danych SET R, NN MOV R, AP MOV AP, R
rozkazy arytmetyczne ADD R, AP SUB R, AP INC R DEC R rozkazy skoków JMP AP JZ R, AP rozkazy wprowadzania-wyprowadzania danych IN R, NN OUT NN, R
SET R NN 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 RR ·postać binarna rozkazu SET RA, 45H ·realizacja rozkazu SET RA, 45H 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. RA ← RR.Arg
·postać binarna rozkazu ADD RB, 5AEH ADD R AP 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 RR ·realizacja rozkazu ADD RB, 5AEH 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. RT ← PAO ( RR.Arg ) 5. Arytmometr ← RB, RT, PLUS 6. RB ← Arytmometr
zmiana sekwencji rozkazów ·skok bezwarunkowy JMP +1 85 86 250 251 252 370 371 . . . LR +1 +1 JMP 370 +1 JMP 85
·wykonanie rozkazu JMP 370 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. LR ← RR.Arg ·skok warunkowy JZ RA, 3223 1.RR ← PAO ( LR ) 2.LR ← LR + 1 3. dekodowanie KodOP 4. jeżeli RA == 0 to LR ← RR.Arg
prosty program S = Σ ai 1 ≤ i ≤ n n, a1, a2, ... , an 100 : SET RA, 0 ; zeruj sumę S 101 : MOV 200, RA ; zapamiętaj S 102 : IN RB, 1 ; czytaj n 103 : IN RA, 1 ; czytaj a 104 : ADD RA, 200 ; a + S 105 : MOV 200, RA ; zapamiętaj S 106 : DEC RB ; n – 1 107 : JZ RB, 109 ; skocz gdy n = 0 108 : JMP 103 ; skocz gdy n ≠ 0 109 : OUT 2, RA ; wyprowadź wynik
modyfikacja argumentu rozkazu • adresowanie bezwzględne : • adres PAO = argument • adresowanie względne : • adres PAO = argument + zawartość rejestru • dodatkowe pole w rozkazie KodOP R M Arg RA RB bez modyfikacji modyfikacja przez RA 0 1 0 1
zerowanie obszaru pamięci o długości 2038 bajtów począwszy od adresu 1033 • 300 : SET RB, 2038 ;długość • 301 : MOV 150, RB ;pamiętaj • 302 : MOV RA, 0 ;modyfikator • 303 : MOV RB, 0 ;wartość • 304 : MOV RA + 1033, RB ;zeruj • 305 : INC RA ;modyfikator+1 • 306 : MOV RB, 150 ;odczytaj • 307 : DEC RB ;długość-1 • 308 : MOV 150, RB ;pamiętaj • 309 : JZ RB, 311 ;gdy koniec • 310 : JMP 303 ;powrót • 311 : ;koniec
stos – zapis / odczyt 0 1 wzrost stosu skracanie stosu WS szczyt stosu WS N D D szczyt stosu
PUSH R POP R • ↓ ↓ • PAO ( WS ) ← R WS ← WS + 1 • WS ← WS – 1 R ← PAO ( WS ) • istnieją inne realizacje
X X+1 CALL Y Y . . . RET WS WS X + 1 • stos – wywoływanie podprogramów
CALL AP RET ↓ ↓ PAO ( WS ) ← LR WS ← WS + 1 WS ← WS – 1 LR ← PAO ( WS ) LR ← AP
0 k-1 0 2k - 1 • ADRESACJA PAMIĘCI • adres • k bitów 2k adresów • n = 2k k = log2 n 1 MB k = 20 4 GB k = 32
RAM, ROM, PROM, EPROM, EEPROM, flash ROM • czas zapisu / odczytu : od 10 ns • pojemność (PC) : od 1GB
segmentacja pamięci 0 k-1 0 RPS 0 n-1 0 RAD 2n - 1 k-1 0 RKS n < < k k = 32 4 GB n = 16 16 kB 2k - 1
przeadresator układowy k-1 0 n-1 0 RPS RAD + k-1 0 RAF k-1 0 > RKS DOBRZE 1 program 1 segment 1 program wiele segmentów BŁĄD
19 16 15 0 NrSeg NrBajtu Adres pierwotny Adres 32 bity Długość 32 bity błąd 31 0 Adres fizyczny
pamięć wirtualna 100 000 x 250 x
PAO PZ 4kB 4kB 4kB 4kB 4kB 4kB . . . . . . • pamięć wirtualna: • z punktu widzenia programu pamięć adresowana liniowo o dużej pojemności ( np. 40GB ) • realizowana za pomocą pamięci dwupoziomowej : stronicowanie
NrStrony NrBajtu Adres pierwotny Tabela Stron 0 1 Adres strony P • gdy P = 0 system operacyjny sprowadza stronę • 80 90 % trafień Adres fizyczny
pamięć notatnikowa ( cache ) • Procesor 2 GHZ 0,5 ns • RAM 100 ns • 200 x • szybka pamięć pomiędzy procesorem a RAM (10 ns)
Adres fizyczny RAM NrWiersza NrBajtu Pamięć Asocjacyjna Pamięć Danych 128 B 0 NrW 1 128 B NrW . . . . . . 128 B 255 NrW 32 kB tak nie
Pamięć notatnikowa I rzędu Pamięć notatnikowa II rzędu Pamięć operacyjna Pamięć RAM/ROM Pamięć wirtualna Pamięć dyskowa • pamięć hierarchiczna
System przerwań • IN R, NN ; odczyt znaku z klawiatury • Procesor : 1 rozkaz 1 μs * 1000000 = 1 s • Człowiek : 1 znak 1 s * 1000000 = 1000000 s • (ok. 12 dni) • procesor wykonuje inne rozkazy do czasu otrzymania sygnału gotowości urządzenia : • sygnał przerwania
reakcja na sygnał przerwania • składowanie stanu procesora • zawsze w tym samym miejscu • stos systemu operacyjnego • stos programu użytkowego • ustalenie adresu podprogramu obsługi przerwania • adres zawsze taki sam • adres obliczany na postawie numeru przerwania (wektoryzacja) • wykonanie programu obsługi przerwania • na końcu podprogramu obsługi przerwania rozkaz powrotu do przerwanego programu (RETI)
POBRANIE ROZKAZU POWIĘKSZENIE LR WYKONANIE ROZKAZU TAK NIE ZAPAMIĘTAJ LR PRZERWANIE ? DO LR WPISZ ADRES PODPROGRAMU OBSŁUGI PRZERWANIA
realizacja procesora • RISC : dla każdego rozkazu zestaw układów cyfrowych • CISC : wewnętrzny mikroprocesor, rozkaz mikroprogram
kanały danych ( DMA ) DMA Procesor INTR Adres PAO HOLD HLDA Licznik bajtów READ WRITE ACK PAO UZ READ WRITE WRITE READ
architektura PC CD Monitor HD Procesor RAM ROM P. Notat. Ster. Graf. Ster. Dysk MAGI- STRALA Analizator Przerwań DMA Sterownik Magistrali Sterownik Klawiat. Zegar Sterownik USB CHIPSET
udoskonalenia podstawowej pętli pracy procesora • przetwarzanie potokowe • kilka arytmometrów ( stało i zmiennopozycyjnych ) • wykonanie kilku rozkazów równocześnie • ADD RA, 5ADD RA, 25 • ADD RB, 27MOV 100, RA • predykcja skoków pobieranie rozkazu przygotowanie argumentów wykonanie rozkazu RK3 RK2 RK1
. . . RWA . . . A A A RWB . . . • komputery wektorowe i macierzowe
PAO P1 P2 Pn . . . • komputery wieloprocesorowe, wielordzeniowe
Połączenia P1 P2 Pn . . . PAO 1 PAO n PAO 2 . . .
superkomputery www.top500.org (11.2013)
K K K • Sieci Komputerowe • sieć rozległa ARPA od 1957, uruchomienie 1969 • ok. 20 komputerów
K IMP K IMP K IMP • Interface Message Processor
SERWER K K K K • sieci lokalne, lata 70-te
Internet (1983) : globalna sieć komputerowa powstała z połączenia wielu sieci lokalnych za pomocą sieci rozległych (szkieletowych) • wspólna metoda przesyłania danych : protokół TCP/IP • rozproszona struktura własności • Komisja Standaryzacyjna • Komisja Przydzielająca Adresy
Protokół IP : ramki danych , adresy IP NAGŁÓWEK DANE UŻYTKOWE adres IP odbiorcy
adresy IP : 32 bity (4 bajty) • 0 . 0 . 0 . 0 • 255 . 255 . 255 . 255 Ponad 4,2 mld adresów