CPU.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Inżynieria Systemów Programowalnych Część I
C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Wykonał : Marcin Sparniuk
Wykład 3: Jak działa typowy mikroprocesor?
Mikroprocesory i procesory sygnałowe
Języki programowania C++
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
typy całkowite (całkowitoliczbowe)
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
Instrukcje strukturalne
Nośniki sygnałów - przykład Nośniki sygnałów – przykład.
1 RISC – nasze założenia Podstawowe cechy: Wszystkie operacje są realizowane na rejestrach, Tylko operacje typu load i store wymagają dostępu do pamięci,
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
ARCHITEKTURA KOMPUTERÓW definicja komputera PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA ZEWNĘTRZNE.
Wprowadzenie do informatyki Wykład 5
Asembler i koncepcja von Neumanna
Język asemblera i koncepcja von Neumanna
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
Wprowadzenie do informatyki Wykład 5
Najczęściej popełniane błędy w VHDL’u
Wykład 5: Program Sequencer i struktura pamięci
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Wykład 2 struktura programu elementy języka typy zmienne
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Mikroprocesory i procesory sygnałowe
Procesory RISC.
Wprowadzenie do programowania w języku Turbo Pascal
Mikroprocesory i mikrokontrolery
Schemat Hornera Mgr inż. Michał Szucki.
Podstawy programowania
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Mikrokontrolery PIC.
(Instruction Unit)dekoder
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Zasada działania komputera
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Mikroprocesory mgr inż. Sylwia Glińska.
Architektura systemów komputerowych (jesień 2013)
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Procesor – charakterystyka elementów systemu. Parametry procesora.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Procesor, pamięć, przerwania, WE/WY, …
Pamięć RAM Pamięć RAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Architektura systemów komputerowych (jesień 2015) Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Tryby adresowania i formaty rozkazów mikroprocesora
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Standard Template Library Czyli Es Te El. Co to jest? Po polskiemu STL to standardowa biblioteka szablonów, czyli biblioteka C++ zawierająca algorytmy,
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
POLITECHNIKA POZNAŃSKA
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL Układy kombinacyjne.
Optymalizacja programów Open-Source
Format rozkazu Tryby adresowania.
Zapis prezentacji:

CPU

Maszyna Turinga

Architektura von Neumanna

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

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)

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

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

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

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

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

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

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

Dostęp do pamięci

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.

Użycie rozkazów

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

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

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

Zestaw rozkazów

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

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)

Realizacja architektury von Neumanna

CPU

Jednostka kontrolna (decode & execute)

Jednostka kontrolna

Dwie magistrale

Magistrala danych

Magistrala adresowa

Bloki wykonawcze

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

Rejestry

ISA – zestaw rozkazów

ISA – zestaw rozkazów

Kodowanie rozkazów Pojedyncze słowo

Kodowanie rozkazów Podwójne słowo

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

Definicje globalne

Definicje globalne

Package

Package body

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;)

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

Biblioteki w ActiveHDL

Biblioteki w ActiveHDL

Biblioteki w ActiveHDL

Biblioteki w ActiveHDL

Biblioteki w ActiveHDL

Biblioteki w ActiveVHDL

Top level

Pamięć

Pamięć

Pamięć

Transfer blokowy

CPU - rejestry

CPU - Reg

CPU – TriReg

CPU - RegArray

CPU - Shifter

CPU-Shifter

CPU - Shifter

CPU - Shifter

CPU - COMP

CPU - COMP itd. ...

CPU - ALU

CPU - ALU

CPU - ALU itd. ...

CPU - Control

CPU

CPU

CPU