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