Procesory rodziny Intel



Podobne dokumenty
Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Mikroprocesory rodziny INTEL 80x86

Organizacja typowego mikroprocesora

Architektura komputerów

Programowanie Niskopoziomowe

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

organizacja procesora 8086

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Schematy zarzadzania pamięcia

LEKCJA TEMAT: Zasada działania komputera.

ARCHITEKTURA PROCESORA,

Architektura komputerów

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Mikroprocesor Operacje wejścia / wyjścia

LEKCJA TEMAT: Współczesne procesory.

Budowa Mikrokomputera

Zarządzanie zasobami pamięci

architektura komputerów w. 8 Zarządzanie pamięcią

Zarządzanie pamięcią operacyjną

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Architektura systemów komputerowych

Magistrala systemowa (System Bus)

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Budowa i zasada działania komputera. dr Artur Bartoszewski

Mikroinformatyka. Tryb wirtualny

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Sprzętowe wspomaganie pamięci wirtualnej

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Architektura komputerów

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura systemów komputerowych. dr Artur Bartoszewski

Sprzęt i architektura komputerów

Budowa komputera Komputer computer computare

Architektura komputerów

Architektura komputerów egzamin końcowy

Architektura mikroprocesorów TEO 2009/2010

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Logiczny model komputera i działanie procesora. Część 1.

Zarządzanie pamięcią operacyjną

Procesory rodziny x86. Dariusz Chaberski

Programowanie niskopoziomowe

Architektura komputerów

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Wykład 7. Zarządzanie pamięcią

Zarządzanie pamięcią w systemie operacyjnym

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Współpraca procesora ColdFire z pamięcią

Budowa systemów komputerowych

Wybrane zagadnienia elektroniki współczesnej

Struktura i działanie jednostki centralnej

dr inż. Jarosław Forenc

Architektura komputerów

Procesory. Schemat budowy procesora

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

WPROWADZENIE Mikrosterownik mikrokontrolery

Sprzęt i architektura komputerów

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Przykładowe pytania DSP 1

Architektura komputerów

Architektura mikroprocesorów z rdzeniem ColdFire

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

Programowanie w asemblerze Wprowadzenie

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

MIKROKONTROLERY I MIKROPROCESORY

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura systemów komputerowych. dr Artur Bartoszewski

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Struktura systemów komputerowych

Projektowanie. Projektowanie mikroprocesorów

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Mikroprocesor Intel 8088 (8086)

Mikroinformatyka. Wielozadaniowość

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Programowanie Niskopoziomowe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura systemów komputerowych. Konstrukcja i zasada działania mikroprocesora

Układy wejścia/wyjścia

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Architektura komputerów

Transkrypt:

Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz pl.wikipedia.org www.intel.com Procesory rodziny Intel

Podstawowe własnow asności procesora Pentium

Podstawowe własności procesora Pentium 64 bitowa magistrala danych i 32 bitowa magistrala adresowa. Praca w trzech trybach 1. tryb rzeczywisty 2. chroniony tryb wirtualny 3. tryb wirtualny 8086

Podstawowe własności procesora Pentium Sprzętowe mechanizmy ułatwiające projektowanie systemów operacyjnych, wspomagające: 1. pamięć wirtualną 2. pamięć wielozadaniową 3. ochronę zasobów Architektura superskalarna: 1. praca potokowa 2. dwa potoki przetwarzania instrukcji stałoprzecinkowych Przewidywanie realizacji rozgałęzień programu

Podstawowe własności procesora Pentium Segmentacja i stronicowanie pamięci Wewnętrzna jednostka arytmetyki zmiennoprzecinkowej pracująca w trybie potokowym Dwie wewnętrzne, rozdzielone pamięci podręczne (cache) 1. pamięć cache dla danych (ang. data cache) 2. pamięć cache dla kodu programu (ang. code cache, instruction cache) Możliwości współpracy z pamięcią cache drugiego poziomu

Schemat blokowy procesora Pentium

Schemat blokowy procesora Pentium Data cache Code cache MMU Stronicowanie Data TLB Stronicowanie Code TLB DB 64 AB CB 32 BIU Układ generacji adresu Potok U Potok V ALU potoku U Rejestry ALU potoku V Prefetcher + BTB Potok U Kolejka (64 B) Dekoder poziom 1 poziom 2 Potok V Kolejka (64 B) NPU Układ sterowania ROM

Schemat blokowy procesora Pentium - opis Data cache blok pamięci przeznaczony do przechowywania danych i wyników działania programu. Code cache blok pamięci zawierający kody instrukcji wykonywanego programu Zastosowanie rozdzielonych pamięci danych i programu umożliwia jednoczesne pobieranie kodu instrukcji i zapis/odczyt danych.

Schemat blokowy procesora Pentium - opis Prefetcher (układ wstępnego pobierania instrukcji) ma za zadanie wcześniejsze pobieranie kodów instrukcji programu i umieszczanie ich w kolejce rozkazów. BTB bufor rozgałęzień (ang. Branch Target Buffer) jest częścią układu przewidywania realizacji rozgałęzień. Potok U i V układy przetwarzające instrukcje potokowo, tzn. w ustalonej kolejności.

Schemat blokowy procesora Pentium - opis Dekoder układ dekodowania instrukcji, zawiera dwa dekodery, osobny dla potoku U i osobny dla potoku V. Współpracują one z kolejkami rozkazów wypełnianymi przez układ prefetchera. Układ generacji adresu służy do generowania adresu fizycznego zarówno w trybie rzeczywistym, jak i chronionym. MMU jednostka zarządzania pamięcią współpracująca z układem generacji adresu w trybie chronionym.

Schemat blokowy procesora Pentium - opis Układy stronicowania TLB (ang. Translation Look-aside Buffer) umożliwiają efektywną obsługę pamięci w trybie stronicowania Blok wewnętrznego koprocesora arytmetycznego NPU realizuje wszelkie operacje arytmetyki zmiennoprzecinkowej. BIU jednostka sterowania magistralami, zapewniająca komunikację procesora z otoczeniem.

Magistrale zewnętrzne procesora Pentium

Magistrale zewnętrzne procesora Pentium Procesor ma 64-bitową magistralę danych i 32 bitową magistrale adresową Magistrale danych można traktować jako zestaw ośmiu ścieżek bajtowych (8 bitowych). Można nią przesyłać dane 8, 16, 24, 32, i 64-bitowe. Przesyłanie może następować po dowolnym zestawie ścieżek, pod warunkiem że ścieżki te przylegają do siebie. Przesyłanie 24 bitowe będzie występować w przypadku przesyłania dwusłowa (słowa 32- bitowego) położonego na granicy czterosłowa.

Magistrale zewnętrzne procesora Pentium Do magistrali adresowej należą wyprowadzenia A31-A3 oraz BE7#-BE0#. Wewnątrz procesora generowany jest 32-bitowy adres A31-A0. Na zewnątrz wyprowadzane są jednak tylko bity A31-A3. Wybierają one określone czterosłowy (8-bajtów). Pozostałe bity adresu oraz wielkość przesyłanej danej decydują o tym, które sygnały BEx# zostaną uaktywnione. Powoduje to uaktywnienie określonych bajtów czterosłowa i przesłanie ich odpowiadającymi im ścieżkami magistrali danych.

Magistrale zewnętrzne procesora Pentium

Magistrale zewnętrzne procesora Pentium

Blok sterowania magistralami (BIU)

Blok sterowania magistralami (BIU) W bloku sterowania magistralami możemy wyróżnić następujące układy: bufor magistrali danych (transcivery) układy wejściowe i wyjściowe magistrali adresowej bufory zapisu układy sterowania rodzajem cyklu magistrali (standardowy lub burst)

Blok sterowania magistralami (BIU) sygnały sterowania dostępem do magistral układy komunikacji z zewnętrzną pamięcią cache sygnały komunikacji z wewnętrzną pamięcią cache układy generacji i kontroli parzystości

Część wykonawcza

Część wykonawcza Część wykonawcza zawiera dwie 32-bitowe jednostki arytmetyczno logiczne i zestaw współpracujących z nią rejestrów. Tworzą one następujące grupy:

Część wykonawcza 1. Rejestry ogólnego przeznaczenia EAX, EBX, ECX, EDX, EBP, EDI, ESI, ESP. Są to rejestry 32-bitowe, jednak każdy z nich zawiera rejestry AX, BX, CX i DX będące rejestrami 16-bitowymi. Każdy z nich może być z kolei używany jako dwa oddzielne rejestry 8-bitowe. Noszą one wówczas przykładowo oznaczenia AH, AL., BH, BL. Każdy z wymienionych rejestrów może zawierać dane, na których wykonujemy obliczenia (czyli operandy) oraz wyniki obliczeń.

Część wykonawcza Ponadto poszczególne rejestry pełnią pewne dodatkowe funkcje. EAX jest akumulatorem pośredniczy w wymianie informacji z układami wejścia / wyjścia EBX (ang. base register) może być używany jako rejestr bazowy w adresowaniu pośrednim ECX (ang. Count register) może pełnić rolę licznika w instrukcji pętli

Część wykonawcza Rejestry EBP zwany wskaźnikiem bazy (ang. base pointer) oprócz przechowywania danych i wyników, umożliwia operacje na stosie bez zmiany zawartości rejestru ESP. Jest to wykorzystywane do przekazywania poprzez stos argumentów do funkcji w języku C czy Pascal

Część wykonawcza Rejestry ESI i EDI pełnią dodatkowe funkcje przy operacjach na łańcuchach danych. Rejestr ESI (ang. source index) zawiera adres źródła, a EDI (ang. destination index) zawiera adres docelowy dla danych przy operacjach łańcuchowych. ESP (ang. stack pointer) jest wskaźnikiem stosu

Część wykonawcza FLAGS rejestr flagowy składający się z flag : stanu, kontrolnych i systemowych Rejestry CR0, CR2 CR4 są rejestrami sterującymi pracą określonych układów procesora (na przykład trybem pracy procesora, sposobem pracy pamięci cache, włączaniem bądź wyłączaniem stronicowania).

Część wykonawcza Rejestry DRx są rejestrami uruchomieniowymi (ang. Debug Register). Umieszczone są w nich adresy pułapek oraz ich status. Rejestry TRx są rejestrami wspomagającymi testowanie procesora. Rejestry TR6 i TR7 służą do testowania układu TLB, natomiast rejestry TR3 TR5 są używane do testowania wewnętrznej pamięci cache.

Część wykonawcza Rejestry MCAR i MCTR służą obsłudze błędnych cykli magistrali. Rejestr MCAR (ang. Machine Check Address Register) zawiera adres nieudanej operacji, zaś rejestr MCTR (ang. Machine Check Type Register) jej typ. W skład części wykonawczej wchodzą też dwie jednostki arytmetyczno-logiczne. Podobnie jak potoki, oznaczone są one także literami U i V. Wykonują operacje logiczne oraz stałoprzecinkowe operacje arytmetyczne dla potoków U i V.

Praca procesora Pentium w trybie rzeczywistym

Praca procesora Pentium w trybie rzeczywistym W trybie rzeczywistym procesor Pentium, podobnie jak wszystkie poprzednie procesory tej rodziny, zachowuje się jak bardzo szybki procesor 8086. Jedyną różnicą jest obecność fizycznej linii adresowej A20, powodującą brak zawijania się adresu dla tego procesora.

Układ generacji adresu fizycznego

Układ generacji adresu fizycznego w trybie rzeczywistym 15 0 3 0 15 Rejestr segmentowy 0000 Adres efektywny 0 CS = 1011001001101101 IP = 0100011111110011 CS 0000 + IP Σ AF AF = 10110110111011000011 19 0 Adres fizyczny lub heksadecymalnie B2D6 0 + 47F 3 B6EC3 jedno zero hex odpowiada czterem zerom binarnym

Układ generacji adresu fizycznego w trybie rzeczywistym Wszystkie rejestry procesorów 8086/88 były 16 bitowe i taką szerokość miała też magistrala danych. Natomiast magistrala adresowa była 20-bitowa. Wymagało to układu, który na podstawie 16-bitowych wartości pozwoliłby wygenerować 20-bitowy adres. 20-bitowy adres fizyczny obliczany jest jako suma dwóch składników: zawartości jednego z rejestrów segmentowych przemnożonej przez 16 (zawartości do której dopisano 4 zera w zapisie binarnym) oraz tak zwanego adresu efektywnego wynikającego z aktualnie wykonywanego fragmentu rozkazu i używanego trybu adresowania.

Zestaw rejestrów segmentowych: CS rejestr segmentu programu DS rejestr segmentu danych SS rejestr segmentu stosu ES, GS, FS rejestry dodatkowych segmentów danych.

Układ generacji adresu fizycznego w trybie rzeczywistym Każdy program może mieć cztery rodzaje segmentów. Segmenty te mogą być rozłączne lub mogą się częściowo, lub całkowicie pokrywać Interpretacja takiego sposobu generowania adresu fizycznego jest prosta. (patrz rysunek)

Interpretacja adresowania pamięci w trybie rzeczywistym Adres 00000h Początek segmentu (zawartość rejestru segmentowego * 16) 1 MB 64 kb przesunięcie (adres efektywny) adresowana komórka pamięci okno, przez które widziana jest pamięć FFFFFh Pamięć

Układ generacji adresu fizycznego w trybie rzeczywistym Zawartość rejestru segmentowego przemnożona przez 16 podaje nam adres początkowy danego segmentu w pamięci. Od tego początku odsuwamy się o ilość komórek podaną w adresie efektywnym. Ponieważ adres efektywny jest liczbą 16- bitową, maksymalna odległość odczytywanej komórki od początku segmentu wynosi 65536 B (bitów) 64 KB. Pamięć jest więc widziana przez procesor poprzez okno wielkości 64 KB. Okno to można przesuwać, przeładowując rejestry segmentowe, jednakże ze skokiem nie mniejszym niż 16 B.

Układ generacji adresu fizycznego w trybie rzeczywistym W ramach ustalonego okna komórkę, na której zostanie wykonana operacja, wybieramy przy pomocy adresu efektywnego. Wynikiem sumowania dwóch podanych wartości jest liczba 20- bitowa (bo do 16-bitowej wartości w rejestrze segmentowym dopisujemy 4 zera)

Układ generacji adresu fizycznego w trybie rzeczywistym Z metody generacji adresu fizycznego wynika też sposób podawania adresu określany jako segment (przesunięcie),stosowany w wielu programach. Adres fizyczny podajemy jako dwie liczby, które należy zsumować zgodnie z regułą tworzenia adresu fizycznego. Sposób ten wprowadza pewną niejednoznaczność, ponieważ ten sam adres można zapisać na wiele sposobów.

Układ generacji adresu fizycznego w trybie rzeczywistym Niejednoznaczność ta nie prowadzi do problemów, gdyż po pierwsze otrzymywany adres fizyczny jest w każdym przypadku taki sam, a po realnych sytuacjach w adresie segment (przesunięcie) podajemy zwykle rzeczywistą zawartość rejestru segmentowego, co jednoznacznie określa także przesunięcie.

Układ generacji adresu fizycznego w trybie rzeczywistym Do rejestrów segmentowych mogą być ładowane dowolne wartości, co pozwala na różnorodne ustawienie segmentów względem siebie.

Przykładowe rozmieszczenie segmentów w pamięci Adres 00000 2A000 CS=2A00h DS=41FFh 41FF0 Segment programu Segment danych SS=4FFFh ES=4FFFh 4FFF0 Segment stosu i dodatkowy nałożenie się adresów

Układ generacji adresu fizycznego w trybie rzeczywistym O tym który segmentowy zostanie użyty do obliczenia adresu fizycznego, decydują określone reguły: Nazwa rejestru IP SP BP pozostałe e rejestry DI dla operacji łańcuchowych Domyślny rejestr segmentowy zawsze CS zawsze SS SS DS ES

Praca procesora w trybie chronionym

Chroniony tryb wirtualny (ang. protected virtual mode). W trybie tym procesor wykorzystuje swoje pełne możliwości. Używa 32 bitów adresu, co pozwala zaadresować 4 GB fizycznej pamięci. Ponadto dostępne są sprzętowe mechanizmy wspomagające obsługę pamięci wirtualnej, pracy wielozadaniowej i ochrony zasobów. W trybie chronionym możliwe jest też użycie mechanizmu stronicowania przy adresowaniu pamięci.

Praca procesora Pentium w trybie chronionym pozwala na efektywne stosowanie (implementację) przez systemy operacyjne mechanizmów pamięci wirtualnej.

Logiczny model procesora

Logiczny model procesora 1. RISC - pochodzi od (ang. Reduced Instruction Set Computing) opisuje procesor zaprojektowany w taki sposób, że wykorzystywana jest zredukowana liczba instrukcji. RISC nie ma tak naprawdę zredukowanej listy instrukcji, ponieważ dzisiejsze procesory są bardzo złożone technologicznie.

Cechy procesorów RISC architektura odczytaj i zapisz w wysokim stopniu regularne instrukcje, które w łatwy sposób mogą przechodzić przez kanał wiele rejestrów rejestry, szyna danych i szyna adresowa o szerokości co najmniej 32 bitów (lub więcej)

Logiczny model procesora 2. CISC - pochodzi od (ang. Complex Instruction Set Computing) opisuje komputer zaprojektowany w taki sposób, że wykorzystywana jest ciągle wzrastająca liczba instrukcji i coraz większa złożoność. CISC dotyczy raczej starszych komputerów.

Co jest lepsze, RISC czy CISC? Z naukowego punktu widzenia odpowiedź jest prosta. Prawie każda główna architektura CPU opiera się na RISC, ale procesory rodziny 80x86 nie opierają się tylko na RISC i są zdecydowanie tańsze. Systemy CISC mają pewne zalety techniczne ponieważ mogą łączyć wiele instrukcji w jedną, czego nie potrafią systemy RISC.

Czy Pentium jest procesorem RISC czy CISC? W procesorze Pentium część instrukcji może być wykonywana równolegle w dwóch dostępnych kanałach. Tak więc można sądzić, że Pentium jest najlepsze zarówno w stosunku do procesorów RISC, jak i CISC. Jest to prawda, ale liczba rejestrów dostępnych na Pentium w znacznym stopniu ogranicza rozwój oprogramowania.

Restart procesora Pentium

Restart procesora Pentium Jednym z wejść magistrali sterującej mikroprocesora Pentium jest wejście RESET. Aktywny sygnał na tym wejściu powoduje wpisanie wartości początkowych do określonych rejestrów procesora i rozpoczęcie wykonywania programu od określonego, zawsze tego samego miejsca pamięci.

Restart procesora Pentium Restart procesora Pentium powoduje wpisanie do rejestrów wartości początkowych podanych w tabeli; Nazwa rejestru EFLAGS EIP CS CR0 EDX DR6 DR7 cache danych i kodu Wartość początkowa 0000 0002h 0000 FFF0h F000h 6000 0010h 0000 05xxh FFFF 0FF0h 0000 0400h nieważne

Restart procesora Pentium Do pozostałych rejestrów wpisywane są wartości zerowe (CR2, CR3, CR4, SS, DS., ES, GS, FS, EAX, EBX, ECX, ESI, EDI, EBP, ESP, DR 0-DR 3, TR12) lub ich stan jest niezdefiniowany.

Restart procesora Pentium Z wartości wpisanych do rejestru CR0 wynika, że e procesor Pentium rozpoczyna pracę w trybie rzeczywistym. Jedną z bardzo ważnych konsekwencji takiego ustalenia wartości początkowych wpisywanych do rejestrów w jest adres miejsca w pamięci, z którego mikroprocesor pobierze pierwszą instrukcję do wykonania ( czyli miejsca, od którego rozpocznie pracę).

Restart procesora Pentium Oprócz wejścia RESET procesor Pentium posiada wejście oznaczone jako INIT. Wejście to zapewnia kompatybilność procesora Pentium z procesorem 80286. Wejście to umożliwia częściowy restart, który pozostawia nie zmienione wartości w obydwu wewnętrznych pamięciach cache, buforach zapisu BIU, rejestrach NPU. Nie są zmienione także wartości bitów CD i NW w rejestrze CR0, decydujące o stanie pamięci cache.

Praca potokowa

Praca potokowa W procesorze Pentium instrukcje wykonywane są potokowo. Praca potokowa (ang. pipelining), jest rozwinięciem koncepcji preftchingu. Polega ona na równoległym wykonywaniu kilku faz realizacji rozkazu.

Praca potokowa W procesorze Pentium instrukcje realizowane są w pięciu fazach. pobranie kodu instrukcji faza F wczytywany jest z pamięci kod instrukcji. pierwszy etap dekodowania instrukcji D1 ustalany jest rodzaj operacji oraz tryb adresowania

Praca potokowa drugi etap dekodowania instrukcji D2 obliczany jest adres efektywny argumentów, ewentualnie przygotowywane są argumenty natychmiastowe wykonanie E realizowany jest (jeśli jest konieczny) dostęp do pamięci i wykonywana jest żądana operacja zapis do rejestrów W rezultaty operacji zapisywane są w określonym rejestrze (jeżeli wymaga tego instrukcja).

Praca potokowa drugi etap dekodowania instrukcji D2 obliczany jest adres efektywny argumentów, ewentualnie przygotowywane są argumenty natychmiastowe wykonanie E realizowany jest (jeśli jest konieczny) dostęp do pamięci i wykonywana jest żądana operacja zapis do rejestrów W rezultaty operacji zapisywane są w określonym rejestrze (jeżeli wymaga tego instrukcja).

Technologia SL i sterowanie poborem mocy (SM)

Technologia SL i sterowanie poborem mocy (SM) Technologia SL została wprowadzona w procesorach 80386 przeznaczonych do pracy w komputerach typu notebok. Jej rozwiązania stosowane są obecnie we wszystkich procesorach rodziny 80x86.

Technologia SL - mechanizmy

Praca potokowa drugi etap dekodowania instrukcji D2 obliczany jest adres efektywny argumentów, ewentualnie przygotowywane są argumenty natychmiastowe wykonanie E realizowany jest (jeśli jest konieczny) dostęp do pamięci i wykonywana jest żądana operacja zapis do rejestrów W rezultaty operacji zapisywane są w określonym rejestrze (jeżeli wymaga tego instrukcja).

Technologia SL - mechanizmy system zarządzania poborem mocy SMM (ang. System Management Mode) wstrzymanie zegara procesora (sygnał STPCLK#) Auto-HALT automatyczne przejście procesora w stan niskiego poboru mocy po wykonaniu rozkazu HALT.

Technologia SL stany pracy

Technologia SL stany pracy wstrzymanie zegara rdzenia procesora (ang. Stop Grant State) następuje pod wpływem sygnału STPCLK#. Powoduje to częściowe obniżenie poboru mocy przez procesor. Wewnętrzny zegar procesora jest włączany po przejściu sygnału STPCLK# w stan nieaktywny.

Praca potokowa drugi etap dekodowania instrukcji D2 obliczany jest adres efektywny argumentów, ewentualnie przygotowywane są argumenty natychmiastowe wykonanie E realizowany jest (jeśli jest konieczny) dostęp do pamięci i wykonywana jest żądana operacja zapis do rejestrów W rezultaty operacji zapisywane są w określonym rejestrze (jeżeli wymaga tego instrukcja).

Technologia SL stany pracy wstrzymanie zegara zewnętrznego procesora (ang. Stop Clock State) następuje, gdy procesor znajduje się w stanie wstrzymania zegara wewnętrznego. W stanie wyłączenia zegara zewnętrznego pobór mocy jest najniższy. Auto-HALT powoduje automatyczne wstrzymanie zegara wewnętrznego po wykonaniu rozkazu HALT.

Pamięć wirtualna procesora

Hierarchia pamięci Mechanizm działania pamięci wirtualnej Pamięć wirtualna w procesorze Pentium Mechanizmy wspomagania pracy wielozadaniowej i ochrony zasobów Stronicowanie Pamięć podręczna (cache)

Hierarchia pamięci

W systemie mikroprocesorowym występuje kilka rodzajów pamięci. Główny podział to: pamięć masowa PM pamięć półprzewodnikowa PP

Pamięć masowa PM wszelkiego rodzaju pamięci na nośnikach magnetycznych: - dyski twarde - dyski elastyczne Pamięć półprzewodnikowa PP - wszelkiego rodzaju pamięci do zapisu i odczytu dynamicznego i statycznego oraz pamięci typu ROM.

Struktura hierarchiczna pamięci uwzględnia następujące czynniki: pojemność koszt jednego bitu czas dostępu

Mechanizm działania ania pamięci wirtualnej

Mechanizm pamięci wirtualnej pozwala traktować programom pamięć masowa jako przedłużenie pamięci operacyjnej

Mechanizmy działania pamięci wirtualnej Program żąda dostępu do określonej informacji podaje adres wirtualny Sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej. (Informacja o obecności konkretnych bloków w pamięci operacyjnej przechowywana jest w specjalnej tablicy) W przypadku braku poszukiwanej informacji jest ona wczytywana z dysku, a odpowiednie pozycje w tablicach obsługujących pamięć wirtualną są modyfikowane

Mechanizmy działania pamięci wirtualnej Obliczany jest adres fizyczny miejsca przechowywania informacji w pamięci operacyjnej, czyli dokonywana jest translacja adresu wirtualnego na fizyczny. (Translacji tej dokonuje się także przy użyciu odpowiedniej tablicy). Poszukiwana informacja jest dostępna dla procesora, co zamyka cykl działania pamięci wirtualnej.

Mechanizmy działania tablicy deskryptorów

Mechanizmy działania tablicy deskryptorów Utworzenie tablicy deskryptorów Ilość pozycji w tablicy deskryptorów musi być równa ilości bloków w pamięci masowej (na jakie został podzielony program) Każdy deskryptor składa się z dwóch części: bitu obecności bloku i adresu bazowego (podaje w którym miejscu pamięci operacyjnej został umieszczony dany blok)

Adres wirtualny 7F0000h adres bazowy 100000h przesunięcie + F0000h adres fizyczny 1F0000h Adresy pamięci 000000h 0FFFFFh 7 100000h 1FFFFFh 3 PAO 1 MB 1 MB Nr deskryptora 0 000 0 001 0 010 Tablica 0 0 011 100 deskryptorów 1 101 0 110 1 111 20 Przykładowa zawartość tablicy deskryptorów 0

Pamięć wirtualna w procesorze Pentium

W procesorze Pentium w trybie chronionym zmienia się interpretacja zawartości rejestrów segmentowych Zawartość odpowiedniego rejestru segmentowego jest selektorem wybierającym odpowiednią pozycję w tablicy deskryptorów.

Układ dokonujący translacji adresu logicznego na adres fizyczny Pamięć 48-bitowy adres wirtualny Rejestr segmentowy Adres efektywny 15 0 31 0 31 0 Deskryptor segmentu Selektor Przesunięcie Adres bazowy segmentu Tablica deskryptorów Operand 32-bitowy adres fizyczny Ɖ Procesor

Układ dokonujący translacji adresu logicznego na adres fizyczny - działanie Adres fizyczny obliczany jest jako suma adresu bazowego z odpowiedniej pozycji tablicy deskryptorów i wartości adresu fizycznego. Umieszczony zostaje w pamięci MMU (niedostępnej programowo) w celu przyśpieszenia dostępu do deskryptorów.

Co zawiera deskryptor segmentów Deskryptory segmentów zawierają takie informacje jak: a. wielkość segmentu b. adres bazowy c. wymagany poziom uprzywilejowania d. pewne atrybuty (np.. bit obecności)

Mechanizmy wspomagania pracy wielozadaniowej i ochrony zasobów

Praca wielozadaniowa w systemie jednoprocesorowym polega na przełączaniu zadań - procesor wykonuje pewne zadanie do: momentu upływu określonego czasu przydzielonego zadaniu momentu, w którym brak chwilowo informacji momentu żądania przez użytkownika zmiany zadania

W sytuacji wykonywania kilku zadań jednocześnie istnieje konieczność kontrolowania dostępu poszczególnych zadań do informacji, jak i innych zasobów systemu. Nie można dopuścić, by jeden program zapisywał swoje dane w obszarze pamięci przydzielonej innemu programowi.

Stronicowanie

W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu segmentacji dostępny jest też mechanizm stronicowania - polega na używaniu ciągłego adresu liniowego, podczas gdy adresy fizyczne pamięci mogą stanowić obszar nieciągły.

Generacja adresu w trybie stronicowania Adres liniowy z jednostki segmentacji 31 Pozycja w katalogu stron 22 21 12 11 0 Pozycja w tablicy stron Pozycja na stronie Katalog stron (zawiera adresy tablic stron) Tabele stron (zawiera adresy stron w pamięci ) Strony pamięci adres tablicy strony adres strony w pamięci adres strony w pamięci adres strony w pamięci Wybiera tabelę stron Poszukiwana informacja

Translacja adresu liniowego na fizyczny 10-bitowa części adresu liniowego wybiera jedną z 1024 pozycji w katalogu stron (page directory) Zawartość wybranej pozycji w katalogu stron wskazuje na jedną z 1024 tabel stron Bity adresu liniowego wybierają jedną z 1024 pozycji w wybranej tabeli stron Wybrana pozycja w tabeli stron podaje adres początkowy 4 - kilobajtowej strony, w której znajduje się poszukiwana informacja

Translacja adresu liniowego na fizyczny Posługiwanie się przy translacji adresu liniowego na fizyczny wyłącznie danymi z pamięci typu katalogi i tabela stron prowadziłoby do znacznego zmniejszenia szybkości działania systemu. W tym celu wykorzystuje się pamięć podręczną typu cache przechowującą zawartość 32 ostatnio używanych tablic stron

L 1 L 2 Pamięć podręczna (cache)

Pamięć podręczna (cache) L1

Koncepcja pamięci podręcznej procesora a. pamięć sytemu składa się z relatywnie dużej pamięci operacyjnej (rzędu kilkudziesięciu do kilkuset MB) zbudowanej z pamięci dynamicznych b. oraz z mniejszej (kilka do kilkuset KB) pamięci cache zbudowanej z pamięci statycznych

Wady pamięci dynamicznych z punktu widzenia procesora a. zbyt wolne dla szybkich współczesnych procesorów b. wymagają stanów oczekiwania Wynika to z zarówno z dużej częstotliwości zegara taktującego, jak i występującej w procesorze Pentium pracy dwupotokowej.

Pamięci statyczne (cache) Zalety: Są szybsze od pamięci dynamicznych Wady: Pobierają stosunkowo dużo energii Są zdecydowanie droższe Są układami o niższym stopniu scalenia

Pamięci statyczne (cache) Trafienie : Sterownik pamięci cache sprawdza czy poszukiwana informacja znajduje się w pamięci cache, jeżeli tak to operacja jest wykonywana w pamięci cache, bez stanów oczekiwania

Pamięci statyczne (cache) Chybienie Jeśli sterownik pamięci cache stwierdzi brak informacji w pamięci cache, to następuje dostęp do pamięci operacyjnej z koniecznymi stanami oczekiwania

Architektura systemu z pamięcią cache a. Look - through b. Look - aside

Architektura Look - through Mikroprocesor Cache PAO Zarządca magistral Zarządca magistral

Architektura Look - through W architekturze tej pamięć cache, połączona magistralą lokalną z procesorem, oddziela go od reszty sytemu, w przypadku trafienia główna magistrala systemu nie jest w ogóle używana

Architektura Look - aside Mikroprocesor Cache PAO Zarządca magistral Zarządca magistral

Architektura Look - aside W architekturze tej procesor nie jest odizolowany od reszty układów przez cache. Dostęp do pamięci powoduje rozpoczęcie normalnego cyklu magistrali. trafienie cykl zawieszany operacja na pamięci cache chybienie wykonywany jest normalny cykl magistrali

Elementy sytemu pamięci cache

Elementy sytemu pamięci cache Bank danych (pamięć danych) - przechowuje i umożliwia zapis i odczyt informacji Katalog pamięci cache (TAG RAM) - sprawdza, czy poszukiwana informacja znajduje się w pamięci cache Sterownik pamięci cache - steruje procesem sprawdzania czy informacja znajduje się w pamięci cache oraz organizuje współprace pamięci cache z systemem

Organizacja pamięci cache

Organizacja pamięci cache W celu zapewnienia możliwości szybkiego sprawdzenia, czy komórka pamięci na której ma być wykonana operacja, jest odwzorowana w pamięci cache bank danych i katalog, tworzą jednoblokową pamięć asocjacyjną (Oneway Set-associative lub Direct-mapped). W takiej organizacji pamięć cache stanowi jeden blok podzielony na zestawy

Przykład organizacji pamięci cache Rn - n-ty odczyt 04 Dane 4 Zestaw 5 Zestaw 4 Zestaw 3 Strona 2 Zestaw 2 Zestaw 1 Zestaw 5 Zestaw 4 Katalog cache (TAG-RAM) Bank cache 03 Dane 3 Zestaw 3 Zestaw 2 Zestaw 1 Strona 1 Strona 0 (strona 2) Strona 0 Strona 1 Zestaw 5 Zestaw 4 Zestaw 3 Zestaw 2 Zestaw 1 Dane 2 Dane 1 Dane 3 02 01 Dane 2 Dane 1 Zestaw 5 Zestaw 4 Zestaw 3 Zestaw 2 Zestaw 1 Strona 0

Pamięć zewnętrzna cache drugiego poziomu L2

Pamięć zewnętrzna cache drugiego poziomu L2 Jest to zewnętrzna (dodatkowa) pamięć procesora. Wyraźny efekt stosowania tej pamięci widać wówczas, jeśli jej pojemność jest znacząco większa od pojemności pamięci L1. Informacja znajdująca się w pamięci L1 znajduje się jednocześnie w pamięci L2.

Pamięć zewnętrzna cache drugiego poziomu w systemie z procesorem 80486 Procesor 80486 CACHE 1- go poziomu (L1) zewnętrzna BUI BIU Układy logiczne NCA magistrala lokalna CACHE 2- go poziomu (L2) zewnętrzna Sygnały sterujące Zarządca magistral PAO Zarządca magistral

Pamięć cache w procesorze Pentium

Pamięć cache w procesorze Pentium W procesorach Pentium możliwe jest stosowanie zarówno wewnętrznej, jak i zewnętrznej pamięci cache. Każda z pamięci zawiera 8 KB pojemności. Jedna przeznaczona jest do przechowywania kodów instrukcji (Code-cache) Druga przechowuje dane i wyniki przetwarzania informacji (Data-cache)

Pamięć cache w procesorze Pentium PENTIUM Cache 2-go poziomu (SDRAM) Sterowniki pamięci cache 2 - go poziomu (L2) Dwuportowy sterownik pamięci DRAM PAO (DRAM) Urządzenie na płycie głównej Urządzenie na płycie głównej Gniazda magistrali rozszerzającej