ARCHITEKTURA PROCESORÓW 80386/80486 Budowa procesora

Transkrypt

ARCHITEKTURA PROCESORÓW 80386/80486 Budowa procesora
ARCHITEKTURA PROCESORÓW 80386/80486
UTK
Budowa procesora 80386
Struktura wewnętrzna logiczna procesora 80386
Pierwszy prawdziwy procesor 32-bitowy. Zawiera wewnętrzne 32-bitowe rejestry (omówione zostaną w
modułach następnych), pozwalające przetwarzać dane o długościach 8, 16 i 32 bitów. Rozszerzono
przestrzeń adresową do 32-bitów, co zapewnia możliwość adresowania 4 GB pamięci operacyjnej.
Wprowadzono dwa tryby adresowania pamięci: model płaski (ang. Flat Memory Model) oraz model z
wykorzystaniem segmentowania (ang. Segmented Memory Model). Wprowadzono dodatkowo
stronicowanie (ang. Paging) ze stałą wielkością strony (4KB) dla lepszego zarządzania pamięcią wirtualną
oraz możliwość równoległego przetwarzania danych przez jednostkę stałoprzecinkową CPU (ang. Constant
Processing Unit) oraz zmiennoprzecinkową FPU (ang. Floating Processing Unit).
Strona 1
ARCHITEKTURA PROCESORÓW 80386/80486
UTK
Wewnętrznie zapewnia niezależne od siebie przetwarzanie informacji
w 6 oddzielnych modułach (ang. Unit):






Bus Interface Unit (BIU) – dostęp do pamięci i urządzeń I/O
Code Prefetch Unit – pobranie rozkazów (kodu) z jednostki Bus Interface Unit i umieszczenie ich
w 16-bajtowej kolejce rozkazów
Instruction Decode Unit – dekodowanie elementów kodu na mikrokod – pojedyncze rozkazy
Execution Unit – jednostka wykonująca rozkaz
Segment Unit - dokonanie translacji adresu logicznego na liniowy i zapewnienie ochrony na
poziomie segmentu
Paging Unit – dokonanie translacji z adresu liniowego na fizyczny, zapewnienie ochrony na
poziomie strony. Dodatkowo przechowywanie, w odpowiednich rejestrach do 32 ostatnio
wykorzystywanych stron pamięci .
Budowa procesora 80486 (DX/DX2/DX4)
Strona 2
ARCHITEKTURA PROCESORÓW 80386/80486
Struktura wewnętrzna logiczna procesora 80486
Strona 3
UTK
ARCHITEKTURA PROCESORÓW 80386/80486
UTK
W i486 wprowadzono po raz pierwszy pojęcie potokowania (wykonywanie sekwencyjne) wykonywanych
rozkazów (kodu programu). Działania te są wykonywane na raz w wielu różnych modułach. Poniżej
przedstawiamy funkcje poszczególnych modułów i wbudowane w i486 potoki.
Rys. Potokowanie w blokach wewnętrznych i486.
Blok Bus Unit zawiera:
- odbiorniki / sterowniki szyny adresowej (ang. Address Drivers),
- cztery bufory zapisu o organizacji 32 bitowej, każdy umożliwiające zapamiętanie do czterech cykli zapisu
z procesora (ang. Write Buffers),
- odbiorniki i nadajniki szyny danych (ang. Data Bus Transceiver),
- układ logiki kontroli szerokości szyny danych (ang. Bus Size Control),
- sekwenser żądań kolejności transmisji danych (ang. Request Bus Sequencer),
- układ logiki kontroli szyn dla pracy w trybie zwykłym i strumieniowym (ang. Bus Control Logic i Bus
Burst Control Logic),
- kontroler logiki pamięci cache (ang. Cache Control Logic),
- moduł generacji i kontroli parzystości (ang. Parity Generation And Control),
Blok Cache Unit zawiera:
- kontroler pamięci cache,
- moduł statycznej czterodrożnej (ang. 4-way) pamięci cache o wielkości 8KB,
Blok Instruction Prefech Unit oraz Decode Unit
Bloki te mogą przetwarzać dane potokowo (szeregowo, sekwencyjnie wewnątrz potoku, ale niezależnie
potok od potoku, często równolegle) Wprowadzono 5-poziomowe (ang. 5 stages) potokowanie (dla
instrukcji operujących na danych stało-przecinkowych), realizowane w fazach:
IF – Instruction Prefetch Unit,
ID-1 – Instruction Decode Stage 1,
ID-2 - Instruction Decode Stage 2,
EX – Datapath and Execution Unit,
WB – Register Write back,
Faza Instruction Prefetch.
Instrukcje są czytane z pamięci w 16-bajtowych blokach (liniach). Taki blok jest wczytywany zarówno do
32-bajtowej kolejki o nazwie Prefetch Buffer ale również do pamięci cache L1.
Faza Instruction Decode Stage 1.
Kod rozkazu jest dekodowany, podejmowana jest decyzja o sposobie adresowania poprzez dekodowanie
specjalnych bajtów MOD R/M i SIB, które to przechowane są w pamięci ROM modułu Control Unit, tzw.
mikrokod.
Faza Instruction Decode Stage 2.
Argumenty rozkazu, w tym elementy dodatkowe związane z adresowaniem są przekazywane do jednostek
wykonawczych (arytmetycznej i logicznej – ALU - ang. Arithemetic Logic Unit). jeżeli wynik ma być
również zapisany w pamięci operacyjnej, dane związane z adresem docelowym są przekazywane do modułu
Memory Management Unit – do części obsługi segmentowania - do modułu Segment Unit.
Strona 4
ARCHITEKTURA PROCESORÓW 80386/80486
UTK
Faza EX.
Mikrokod zostaje poprzez moduł Control Unit przepisany do ALU (Data Execution Unit) i wykonany.
Faza WB
Wynik jest wpisywany do rejestrów wyjściowych i/lub ustawiane są znaczniki w rejestrach znaczników.
Ostatecznie wyniki trafiają do zaadresowanej komórki poprzez pamięć cache L1.
Blok Control Unit zawiera:
- sekwencer mikrokoku,
- pamięć ROM mikrokodu,
Poza interpretacją kodu, przetwarzaniem rozkazów na mikrokod, moduł obsługuje tzw. wyjątki, przerwania
i punkty zatrzymania przy pracy krokowej.
Blok Floating Point Unit.
Jednostka zmiennoprzecinkowa.
Strona 5

Podobne dokumenty