(Instruction Unit)dekoder

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
UKŁADY ARYTMETYCZNE.
Wykonał : Marcin Sparniuk
Wykład 3: Jak działa typowy mikroprocesor?
Technika mikroprocesorowa
System przerwań na podstawie DOS
PROGRAMOWANIE STRUKTURALNE
CPU.
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Przetwarzanie informacji (2)
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.
Architektura Systemów Komputerowych
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
ARCHITEKTURA WEWNĘTRZNA KOMPUTERA
Procesory RISC.
ZARZĄDZANIE PROCESAMI
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
Elektronika cyfrowa i mikroprocesory
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Technika Mikroprocesorowa 1
Podstawowe elementy komputera i ich funkcje c.d.
Architektura komputerów
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Architektura komputerów
Zasada działania komputera
Etapy pracy biosu.
Mikroprocesory mgr inż. Sylwia Glińska.
Architektura komputerów
Architektura systemów komputerowych (jesień 2013)
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Jak to jest zrobione? Kalkulator.
Budowa i działanie komputera - jednostka
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
PROCESORY (C) Wiesław Sornat.
Architektura PC.
Architektura systemów komputerowych jesień 2013
W ą t e k (lekki proces) thread.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Złożone układy kombinacyjne
Procesor, pamięć, przerwania, WE/WY, …
Pamięć DRAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Zasady arytmetyki dwójkowej
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Architektura systemów komputerowych (jesień 2015) Wykład 5 Budowa i działanie komputera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki.
Tryby adresowania i formaty rozkazów mikroprocesora
POLITECHNIKA POZNAŃSKA
Opiekun: Stanisław Toton. 1. Co to jest mikroprocesor? 2. Początki mikroprocesora. 3. Budowa typowego mikroprocesora. 4. Rozwój mikroprocesorów na przełomie.
Organizacja i Architektura Komputerów
Technika Mikroprocesorowa 1
Podział mikroprocesorów
Format rozkazu Tryby adresowania.
Zapis prezentacji:

(Instruction Unit)dekoder Kod programu –rozkazy Prefetch (oczekiwanie) ROM słownik IU (Instruction Unit)dekoder AU adres BU Bus Unit EU – execution unit MMU dane PaO ALU ALU ALU ALU ALU FPU Kontrola i sterowanie CU Control Unit dane AU – Addresing Unit MMU – Memory Management Unit (np.. stronicowanie)

Realizacja programu przez taki układ przebiega następująco: Kod rozkazów jest odczytywany z pamięci RAM i umieszczany w kolejce rozkazów. Poszczególne instrukcje (słowa binarne) trafiają z kolejki do dekodera IU, który rozkodowuje rozkazy przeznaczone do wykonania - sposób kodowania rozkazów zawarty w pamięci stałej ROM (w strukturze procesora). Wydzielenie z kodu instrukcji argumentów operacji adresów danych Są one przesyłane odpowiednio do bloku wykonującego instrukcje EU i bloku adresowego AU.

Blok adresowy AU i zarządzania pamięcią MMU wytwarzaodpowiednie sygnały dane przekazywane do bloku zarządzania magistralami BU adres na magistrali adresowej - odczyt danych z pamięci - układ pamięci wystawia dane na magistrali danych. Dane przekazywane do bloku wykonawczego lub do kolejki rozkazów. Blok wykonujący instrukcje EU (zawierający jednostkę arytmetyczno-logiczną ALU) dokonuje porównań lub działań matematycznych na argumentach stałoprzecinkowych (argumenty zmiennoprzecinkowe są przetwarzane w FPU) Wyniki przetwarzania blok wykonujący instrukcje przekazuje do bloku zarządzania pamięcią i bloku sterującego magistralami - zapisw pamięci pod określonym adresem

Wszystko odpowiednio synchronizowane w czasie Układ wykonujący instrukcje EU wytwarza sygnały sterujące, przez które ma możliwość wpływu na pracę innych bloków. Układ wykonawczy EU często też przechowuje wyniki pośrednie przetwarzania danych we własnych rejestrach.

Rejestry procesora Na przykładzie 16 bitowych rejestrów procesorów 8086 i 8088 - prostsze

Czym są rejestry ? Rejestry są to bardzo szybkie elementy elektroniczne posiadające zdolność zapamiętywania informacji Rozciągają się na obszarze 28 bajtów i są one w stanie czasowo przechowywać dane, adresy pamięci, wskaźniki rozkazów i stanów oraz znaczniki sterujące

Podział rejestrów rejestry powszechnego stosowania rejestry segmentowe w tym rejestry wskaźnikowe i indeksowe rejestry segmentowe rejestr znaczników - FLAGS i wskaźnik rozkazów SR– rejestr statusu (znaczników) IR – rejestr rozkazów MAR – rejestr adresów pamięci SPR – rejestry indeksowe GPR – rejestry robocze PC – licznik rozkazów

Rejestry powszechnego stosowania Rejestry segmentowe Rejestry powszechnego stosowania DL DH CL CH BL BH AL AH SI DI BP SP AX BX CX DX 7 15 Rejestry wskaźnikowe i indeksowe CS DS ES SS 15 15 FLAGS IP Rejestry stanu/kontrolne

Rejestry statusu- kontrolne

Rejestry stanu/kontrolne 15 FLAGS IP Rejestry stanu/kontrolne Bity rejestru flagowego 15 OF DF IF TF SF ZF AF PF CF

Rejestr znaczników (flagowy) SR (status registry) lub FLAGS rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości wyniku operacji w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby: ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu • testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania (przetwarzania danych)

Najważniejsze znaczniki statusu: – CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie) – SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze znakiem - kod U2) – ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero – OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji arytmetycznych (operacje liczb ze znakiem - kod U2) – PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o wartości jedynki – PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku

Dodatkowe znaczniki kontrolne: – TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi – IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie systemu przerwań w procesorze (0 - procesor ignoruje przerwania) – DF - znacznik kierunku - umożliwia realizacje przetwarzania łańcuchów (ciągu słów) przy rosnących adresach (1) lub malejących adresach (0)

Rejestry ogólnego przeznaczenia rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulator: Akumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być umieszczany w innym rejestrze)

Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentów: – CS rejestr segmentowy programu - wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania, – DS rejestr segmentowy stosu - wskazuje segment, w którym zapamiętane są zmienne używane w programie, – ES rejestr segmentowy dodatkowy - wskazuje dodatkowy segment danych, – SS rejestr segmentowy stosu wskazuje segment pamięci, w którym z definiowany jest stos.

Rejestry wskaźnikowe i indeksowe - posiadają dwa rejestry wskaźnikowe i dwa rejestry indeksowe. Rejestry wskaźnikowe (SP, BP) są stosowane do adresowania danych w obrębie wydzielonego obszaru pamięci (stosu). Rejestry indeksowe (SI, DI) służą do adresowania danych w obszarze pamięci zwanym segmentem danych. Wszystkie rejestry mogą być wykorzystywane jako argumenty większości rozkazów arytmetycznych i logicznych.

Wskaźnik rozkazów IP (wskaźnik instrukcji) - łącznie z rejestrem segmentowym CS adresuje kolejne rozkazy przeznaczone do wykonania. Wskazuje adres względem początku segmentu programu

Stos Stos jest to taka struktura danych, która stosuje metodę FILO (first-in-last-out). Stos służy do chwilowego przechowywania informacji. Podstawową cechą stosu jest to, że mamy dostęp jedynie do elementu leżącego na jego szczycie, czyli element odłożony jako ostatni będziemy zdejmować jako pierwszy. Stos jest nieodłącznie związany z rejestrami SS (segmentowy) i SP (wskaźnikowy)

Architektura stosu - STACK Procesor ma wskaźnik stosu i operacje są wykonywane na szczycie. STOS to specjalne rejestry: np.. A[1], A[2] do A[n]. Na początku żadne dane nie są związane ze stosem i specjalny rejestr wskaźnika stosu SP ma wartość 0 Odczyt - kopiowana wartość z pamięci do A[SP]. 1: if SP = n, stack overflow 2: else SP = SP + 1 3: A[SP] = dane Zapis - najpierw sprawdza czy rejestr zawiera użyteczną informację (jeżeli SP > 0). Jeśli nie to stack underflow, jeśli tak A[SP] jest kopiowany do pamięci i SP zmniejszane o 1.

Operacje arytmetyczne są wykonywane na dwóch rejestrach (A[SP] i A[SP-1]) i rezultat zapisywany do A[SP-1]. Gdy obie wartości są usunięte SP jest pomniejszane o 1.

LOAD 51 MUL LOAD 52 LOAD 53 MUL ADD Przykład operacji E = A * B + C * D Założenie: A=3, B=4, C=5, D=2 są zapisane w pamięci pod adresami od $50 do $53 Program: LOAD 50 LOAD 51 MUL LOAD 52 LOAD 53 MUL ADD

Instrukcja LOAD 50 A[1] = 3 SP = 1 Instrukcja LOAD 51 A[1] = 3 A[2] = 4 SP = 2 Instrukcja MUL A[1] = 12 SP = 1 Instrukcja LOAD 52 A[1] = 12 A[2] = 5 SP = 2

Instrukcja LOAD 53 A[1] = 12 A[2] = 5 A[3] = 2 SP = 3 Instrukcja MUL A[1] = 12 A[2] = 10 SP = 2 Instrukcja ADD A[1] = 22 SP = 1

Instrukcje przesyłania danych między rejestrami MOV rejestr, wartość Przykład: MOV AX,10 – umieść 10 w AX MOV CX, AX – umieść w CX wartość z AX MOV AX, [CX] – umieść w AX wartość z komórki, której adres jest w CX

Instrukcje wprowadzania i odbierania danych ze stosu Do wstawienia wartości na stos służy instrukcja PUSH Przykład : PUSH AX Do zdejmowania danych ze stosu służy instrukcja POP Przykład : POP AX

Przykład zastosowania stosu AX = ? ? 94 BX = ? 96 CX = ? 98 DX = ? 100 SP

? 1 Po wykonaniu instrukcji : MOV AX,1 PUSH AX AX = 1 94 BX = ? 96 CX = ? 98 SP DX = ? 100

? 2 1 Po wykonaniu instrukcji : MOV AX,2 PUSH AX AX = 2 94 BX = ? 96 SP CX = ? 98 DX = ? 100

3 2 1 ? Po wykonaniu instrukcji : MOV AX,3 PUSH AX AX = 3 94 SP BX = ? 96 CX = ? 98 DX = ? 100

? 2 1 Po wykonaniu instrukcji : POP BX AX = 3 94 BX = 3 96 SP CX = ? 98 DX = ? 100

? 1 Po wykonaniu instrukcji : POP CX AX = 3 94 BX = 3 96 CX = 2 98 SP DX = ? 100

? Po wykonaniu instrukcji : POP DX AX = 3 94 BX = 3 96 CX = 2 98 100 SP

Uwagi dotyczące działań na stosie Przykład fragmentu programu zawierającego błąd : ... PUSH AX ;zachowaj ax PUSH BX ;zachowaj bx ADD SP, 1000 ;dodaj 1000 do SP(wskaźnik stosu) POP BX ;zdejmij bx POP AX ;zdejmij cx

CYKL ROZKAZOWY PROCESORA Realizując program, system mikroprocesorowy wykonuje pewne powtarzające czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się cyklem rozkazowym (instrukcyjnym) Cykl rozkazowy składa się z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu.

Interpretacja adresu fizycznego • zawartość rejestru segmentowego *16 podaje adres początku segmentu • od tego początku odsuwamy się o liczbę komórek podaną w adresie efektywnym • adres efektywny jest 16 bitowy to pozwala zaadresować 65536B=64kB • pamięć jest widziana przez procesor jako okno O wielkości 64kB • okno to można przesuwać przeładowując rejestry segmentowe

Rejestry Rejestry Rejestry1 Rejestry2 ALU ALU Wspólne ALU Cache Cache Wspólny Cache PaO PaO Dwa procesory logiczne Dwa procesory fizyczne

Już w Pentium I były 2 potoki 3 mikrooperacje / cykl zegara Czyli procesor 3GHz ok. 9 mln mikrooperacji/s Ale nie jest 100 % bo są przestoje (uzależnienia, błędne spekulacje, odwołania do pamięci) Jeśli czegoś nie ma w cache L1 L2 L3 to odwołania do PaO zajmują wiele cykli zegara Poza tym PaO jest kilka razy wolniejsza – obecnie kilka ns

PIPELINE – przetwarzanie potokowe Jak taśma produkcyjna (Ford) – jednocześnie kilka rozkazów

Schemat przetwarzania potokowego 4 podstawowe czynności (niektóre jeszcze rozpisane na mniejsze): Pobranie – PREFECH, PF – zapełnianie kolejki w pamięci podręcznej L1, ewentualnie pośredniej L2 Dekodowanie – DECODE, DE – analiza kodu rozkazu (przedrostki i argumenty), obliczenie efektywnego adresu argumentów Wykonanie – EXECUTE, EX - pobranie argumentów i akcje na nich Zakończenie i zapis wyników – WRITE BACK, WB – wynik do pamięci lub rejestrów

Dostęp do pamięci Adres fizyczny= 16 x Segment +Offset Przykładowy rozkaz: add ax, [bx] Dodaj zawartość AX do komórki, której adres jest w BX, wynik do AX PF pobranie kodu instrukcji DE (16xDX)+BX EX – dostęp do komórki o adresie (16xDX)+BX, operacja dodawania do AX WB – umieszczenie wyniku w AX

Hyper-threading (simultaneous multitherading) ang. THREAD - WĄTEK Równoczesna wielowątkowość Wieloprocesorowość logiczna Wykorzystanie? Internet, MPEG lub MP3 Rozpisanie na wątki – wątek to ciąg operacji mogący być wykonany niezależnie od innych