Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

CPU.

Podobne prezentacje


Prezentacja na temat: "CPU."— Zapis prezentacji:

1 CPU

2 Maszyna Turinga

3 Architektura von Neumanna

4 Architektura von Neumanna
Instrukcje i dane zapisane w tej samej pamięcie Pamięć jest sekwencyjnie adresowana Pamięć jest jednowymiarowa Znaczenie danych nie jest zapisane w pamięci znaczenie pojawia się w drodze interpretacji (np. przez CPU) W szczególności nie są rozróżniane dane i kody rozkazów

5 Architektura von Neumanna
Wczytywane jedno słowo pamięci na raz Cykl wykonania instrukcji: wczytanie kodu (Fetch) Zdekodowani i pobranie z pamięci dodatkowych argumentów (Decode) Egzekucja (Execute)

6 Operacje Opis operacji do wykonania składa się z kodu operacji i ew. argumentów I kod i dane są liczbami, ale kiedy mówimy o kodach, zazwyczaj używamy tzw. mnemoników: ADD, SUB, MUL, DIV, AND, OR, itp. Rozkaz do wykonania ma więc zazwyczaj postać: Kod_operacji [argument(y)], np.: ADD AX, 7 INC BX JMP 32

7 Operacje Argumenty czasem dane są jawni, czasem niejawnie (np.: INC AX – to dodawanie z niejawnym drugim argumentem 1, PUSHF – argumenty w ogóle niejawne)

8 Kodowanie operacji Kodowanie operacji – sposób ich zapisania jako liczby – dość ważna decyzja projektowa (później)

9 Architektura von Neumanna
Generalnie rozkazy są wczytywane z pamięci i wykonywane sekwencyjnie Pozycja, z której został wczytany aktualnie realizowany rozkaz (adres pamięci) wskazywana jest przez tzw. IP (Instruction Pointer) czy też PC (Program Counter) Wczytanie kodu rozkazu oraz ew. następujących po nim argumentów (operandów) zwiększa wartość licznika o stosowną liczbę pozycji Niektóre rozkazy (np. skoki) – dość drastycznie zmieniają IP

10 ISA Wynikiem wszystkich decyzji dotyczących tego, jaki powinien być zbiór rozkazów, jak powinny być kodowane, w jaki sposób mają być określane argumenty jest tzw. ISA – Instruction Set Architecture – Architektura Listy Rozkazów

11 Typowe składowe ISA Ilość i sposób korzystania z rejestrów
Zestaw rozkazów Tryby adresowania Sposób kodowania rozkazów Sposób kodowania danych

12 Rejestry Pamięć wewnętrzna – bardzo szybka (i bardzo droga)
Nie mylić z cache Rejestry mogą być specjalizowane lub uniwersalne Odwołania do pamięci mogą być realizowane albo bezpośrednio, albo za pomocą rejestrów

13 Dostęp do pamięci

14 Tryby adresowania Dane następujące po kodzie operacji nie muszą być bezpośrednimi wartościami Bardzo często są adresem pamięci, gdzie znajduje się wartość argumentu (koncept zmiennej) Adres nie musi być podany wprost, może być podany jako przemieszczeni, jako adres indeksowany, itp.

15 Użycie rozkazów

16 Skoki warunkowe Pozwalają na realizację takich struktur języków wyższego poziomu, jak pętle i instrukcje warunkowe, a więc – podstawowych konstrukcji programistycznych

17 Realizacja pętli repeat pp: ... ... ... mov ax, a until a > 0
cmp ax, 0 jle pp

18 Realizacja instrukcji warunkowej
mov ax, a sub ax, b jg else ... jmp end else: end: if a > b then ... else end if;

19 Zestaw rozkazów

20 Kodowanie operacji Jeśli rozkazy operują na rejestrach, a rejestrów nie jest dużo, można zastosować bardziej zwarte kodownie – nie potrzeba całych 16-tu bitów na zakodowanie jednego z ośmiu rejestrów – wystarczy 3 bity Z drugiej strony jednym z argumentów może być 16-bitowa liczba

21 Kodowanie operacji Czasem stosuje się kodowanie o zmiennej długości
W 80x86 kod operacji może mieć od 1 do 17 bajtów długości W RISC’ach stosuje się generalnie kodowanie o stałej długości To jest ważne zagadnienie – pamięć! (np. dla osadzonych – bardzo ważne)

22 Realizacja architektury von Neumanna

23 CPU

24 Jednostka kontrolna (decode & execute)

25 Jednostka kontrolna

26 Dwie magistrale

27 Magistrala danych

28 Magistrala adresowa

29 Bloki wykonawcze

30 Bloki wykonawcze ALU – jednostka arytmetyczno-logiczna – odpowiedzialna za realizację operacji arytmetyczno-logicznych: AND, ADD, OR, SUB, itp... Shifter – odpowiedzialny za realizację przesunięć bitowych – SHR, SHL, ROR, ROL Comp – odpowiedzialny za realizację komparacji używanych w skokach warunkowych: EQ, NEQ, LE, GT, GE, LT, itp. Np. skoki są w całości realizowane przez blok kontroli

31 Rejestry

32 ISA – zestaw rozkazów

33 ISA – zestaw rozkazów

34 Kodowanie rozkazów Pojedyncze słowo

35 Kodowanie rozkazów Podwójne słowo

36 Metoda top-down Najpierw architektura połączenia CPU-MEM
Po drodze – architektura MEM Ustalenie definicji wspólnych dla całego CPU Później architektura połączenia bloków wewnątrz CPU Na koniec realizacja bloków wewnątrz CPU

37 Definicje globalne

38 Definicje globalne

39 Package

40 Package body

41 Library Dwie domyślne biblioteki (nie trzeba deklarować ich użycia):
STD (bit, bit_vector, Boolean, itp...) WORK (pakiety zadeklarowane w plikach VHDL w bieżącym projekcie) – biblioteki WORK nie trzeba deklarować, ale pakiety – tak (np. use work.cpu_lib.all;)

42 Biblioteki deklaracja library nazwa; posługuje się nazwą logiczną biblioteki. To, jak związać nazwę logiczną z odpowiednimi plikami VHDL rozwiązane jest w każdym pakiecie realizującym VHDL po swojemu

43 Biblioteki w ActiveHDL

44 Biblioteki w ActiveHDL

45 Biblioteki w ActiveHDL

46 Biblioteki w ActiveHDL

47 Biblioteki w ActiveHDL

48 Biblioteki w ActiveVHDL

49 Top level

50 Pamięć

51 Pamięć

52 Pamięć

53 Transfer blokowy

54 CPU - rejestry

55 CPU - Reg

56 CPU – TriReg

57 CPU - RegArray

58 CPU - Shifter

59 CPU-Shifter

60 CPU - Shifter

61 CPU - Shifter

62 CPU - COMP

63 CPU - COMP itd. ...

64 CPU - ALU

65 CPU - ALU

66 CPU - ALU itd. ...

67 CPU - Control

68 CPU

69 CPU

70 CPU


Pobierz ppt "CPU."

Podobne prezentacje


Reklamy Google