88
PODSTAWY ARCHITEKTURY KOMPUTERA PODSTAWY ARCHITEKTURY KOMPUTERA inż. Jacek FLOREK inż. Jacek FLOREK Instytut Informat Instytut Informat Specjalizowany układ cyfrowy a maszyna Specjalizowany układ cyfrowy a maszyna cyfrowa cyfrowa Struktura systemu mikroprocesorowego Struktura systemu mikroprocesorowego Bloki funkcjonalne - organizacja i Bloki funkcjonalne - organizacja i architektura architektura 7

PODSTAWY ARCHITEKTURY KOMPUTERA

  • Upload
    malia

  • View
    60

  • Download
    0

Embed Size (px)

DESCRIPTION

dr inż. Jacek FLOREK Instytut Informatyki. PODSTAWY ARCHITEKTURY KOMPUTERA. Specjalizowany układ cyfrowy a maszyna cyfrowa Struktura systemu mikroprocesorowego Bloki funkcjonalne - organizacja i architektura. 7. PRZETWARZANIE INFORMACJI. - PowerPoint PPT Presentation

Citation preview

Page 1: PODSTAWY ARCHITEKTURY KOMPUTERA

PODSTAWY ARCHITEKTURY KOMPUTERA PODSTAWY ARCHITEKTURY KOMPUTERA

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Specjalizowany układ cyfrowy a maszyna cyfrowaSpecjalizowany układ cyfrowy a maszyna cyfrowa

Struktura systemu mikroprocesorowegoStruktura systemu mikroprocesorowego

Bloki funkcjonalne - organizacja i architekturaBloki funkcjonalne - organizacja i architektura

7

Page 2: PODSTAWY ARCHITEKTURY KOMPUTERA

PRZETWARZANIE INFORMACJIPRZETWARZANIE INFORMACJIWszelkie procesy zamierzonego przetwarzania informacji przebiegają według Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według ustalonego algorytmuustalonego algorytmu

DANE DANE POCZĄTKOWEPOCZĄTKOWE

WYNIKI WYNIKI KOŃCOWEKOŃCOWE

PROCES PROCES PRZETWARZANIAPRZETWARZANIA

ALGORYTMALGORYTM

Przetwarzanie informacji można zrealizować dwoma sposobami:Przetwarzanie informacji można zrealizować dwoma sposobami:• Specjalizowany układ cyfrowy:Specjalizowany układ cyfrowy:

• System mikroprocesorowy (maszyna cyfrowa):System mikroprocesorowy (maszyna cyfrowa):

SPECJALIZOWANYSPECJALIZOWANYUKŁAD CYFROWYUKŁAD CYFROWY

MASZYNA MASZYNA CYFROWACYFROWA

WYNIKIWYNIKI

PROGRAMPROGRAM

DANEDANE

DANEDANE

WYNIKIWYNIKI

Page 3: PODSTAWY ARCHITEKTURY KOMPUTERA

ARCHITEKTURA MASZYNY CYFROWEJARCHITEKTURA MASZYNY CYFROWEJ

PAMIĘĆ PAMIĘĆ ZEWNĘTRZNAZEWNĘTRZNA

UKŁADY WY UKŁADY WY URZĄDZENIA URZĄDZENIA ZEWNĘTRZNEZEWNĘTRZNE

PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNA

BLOK BLOK PRZETWA-PRZETWA-

RZANIARZANIA

STEROWANIESTEROWANIE

UKŁADY WE UKŁADY WE URZĄDZENIA URZĄDZENIA ZEWNĘTRZNEZEWNĘTRZNE

MASZYNA CYFROWAMASZYNA CYFROWA

PROCESORPROCESOR

JEDNOSTKA CENTRALNAJEDNOSTKA CENTRALNA

WY

NIK

IW

YN

IKI

PR

OG

RA

MP

RO

GR

AM

DA

NE

DA

NE

Page 4: PODSTAWY ARCHITEKTURY KOMPUTERA

......

URZ. URZ. ZEWN.ZEWN.

PROCESORPROCESOR PAMIĘCPAMIĘCUKŁADYUKŁADYWE/WYWE/WY

ZEGARZEGAR

SZYNA DANYCHSZYNA DANYCH

SZYNA ADRESOWASZYNA ADRESOWA

SZYNA STEROWANIASZYNA STEROWANIA

UŻYTKOWNIKUŻYTKOWNIK

DANEDANEPROGRAMYPROGRAMYWYNIKIWYNIKI

MONITORY, DRUKARKI, MONITORY, DRUKARKI, CZYTNIKI,...CZYTNIKI,...

SYSTEM MIKROPROCESOROWYSYSTEM MIKROPROCESOROWY

Centralna jednostka Centralna jednostka przetwarzająca (CPU)przetwarzająca (CPU)

Liczba linii wyznacza możliwości Liczba linii wyznacza możliwości adresowania np. liczba linii 20 to adresowania np. liczba linii 20 to można zaadresować 2można zaadresować 22020 komórek komórek

Liczba linii określa długość Liczba linii określa długość słowa procesora (8, 16, 32, .... słowa procesora (8, 16, 32, .... (+biyt detekcji i korekcji błędów)(+biyt detekcji i korekcji błędów)

Kilkanaście (kilkadziesiąt) liniiKilkanaście (kilkadziesiąt) linii

Uniwersalny układ Uniwersalny układ przetwarzający informację i przetwarzający informację i sterujący pracą pozostałych sterujący pracą pozostałych elementów systemuelementów systemu

Page 5: PODSTAWY ARCHITEKTURY KOMPUTERA

ORGANIZACJA SYSTEMUORGANIZACJA SYSTEMU

» Architektura klasycznego komputera (wg von Neumana) opiera się Architektura klasycznego komputera (wg von Neumana) opiera się na założeniach:na założeniach:

– program wykonywany przez procesor wraz z danymi jest program wykonywany przez procesor wraz z danymi jest umieszczony w pamięci;umieszczony w pamięci;

– kolejność wykonywanych rozkazów zależy od ich kolejność wykonywanych rozkazów zależy od ich umieszczenia w programie (w kolejnych komórkach pamięci), a umieszczenia w programie (w kolejnych komórkach pamięci), a zmiana tej zasady może być wykonana tylko:zmiana tej zasady może być wykonana tylko:

• przez program (rozkaz skoku);przez program (rozkaz skoku);

•przez system operacyjny np. wykrycie błędu;przez system operacyjny np. wykrycie błędu;

•przez operatora np. przez operatora np. resetreset

– procesor odczytuje kolejne rozkazy z pamięci wysyłając procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresyodpowiednie adresy

» Każde działanie wykonywane przez system jest wynikiem realizacji Każde działanie wykonywane przez system jest wynikiem realizacji określonego programu bądź jego fragmentuokreślonego programu bądź jego fragmentu

Page 6: PODSTAWY ARCHITEKTURY KOMPUTERA

PROCESORPROCESOR PAMIĘĆPAMIĘĆ

AdresAdres

DaneDaneZapisZapis

11

22

33

33

44

PROCESORPROCESOR PAMIĘĆPAMIĘĆ

AdresAdres

DaneDaneOdczytOdczyt

11

22

33

44

PROCESORPROCESOR UKŁADUKŁADWY-WEWY-WE

AdresAdres

DaneDaneZapisZapis

11

22

33

44

PROCESORPROCESOR UKŁADUKŁADWY-WEWY-WE

AdresAdres

DaneDaneOdczytOdczyt

11

22

33

44

Z P

RO

CE

SO

RA

DO

PA

MIĘ

CI

Z P

RO

CE

SO

RA

DO

PA

MIĘ

CI

Z P

AM

IĘC

I D

O P

RO

CE

SO

RA

Z P

AM

IĘC

I D

O P

RO

CE

SO

RA

Z P

RO

CE

SO

RA

NA

WY

JŚC

IEZ

PR

OC

ES

OR

A N

A W

YJŚ

CIE

Z W

EJŚ

CIA

DO

PR

OC

ES

OR

AZ

WE

JŚC

IA D

O P

RO

CE

SO

RA

PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYMPRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM

Page 7: PODSTAWY ARCHITEKTURY KOMPUTERA

ARCHITEKTURA PROCESORAARCHITEKTURA PROCESORA

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Schemat blokowy procesoraSchemat blokowy procesora

RejestryRejestry

Blok arytmetyczno-logiczny (ALU)Blok arytmetyczno-logiczny (ALU)

Układ sterowaniaUkład sterowania

8

Page 8: PODSTAWY ARCHITEKTURY KOMPUTERA

SCHEMAT BLOKOWY PROCESORASCHEMAT BLOKOWY PROCESORA

ALUALU

JEDNOSTKA JEDNOSTKA WYKONAWCZAWYKONAWCZA

układ układ sterowaniasterowania

dek

od

erd

eko

der

rozk

azó

wro

zkaz

ów

reje

str

reje

str

rozk

azó

wro

zkaz

ów

rejestry części rejestry części wykonawczejwykonawczej

DANEDANE

PROGRAMPROGRAM

WYNIKIWYNIKI

wewnętrznewewnętrzne sygnały sygnały sterującesterujące zewnętrzne zewnętrzne

sygnały sygnały sterującesterujące

JEDNOSTKA JEDNOSTKA STERUJĄCASTERUJĄCA

Zadaniem jednostki wykonawczej jest Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych logicznych w zależności od wewnętrznych sygnałów sterującychsygnałów sterujących

Jednostka sterująca z programu dekoduje Jednostka sterująca z programu dekoduje rozkaz i na jego podstawie generowane są rozkaz i na jego podstawie generowane są wewnętrzne i zewnętrzne sygnały wewnętrzne i zewnętrzne sygnały sterującesterujące

Page 9: PODSTAWY ARCHITEKTURY KOMPUTERA

REJESTRYREJESTRY

dostępne programowodostępne programowo niedostępne programowoniedostępne programowo

(na przykładzie 8 bitowego procesora 8086/8088)(na przykładzie 8 bitowego procesora 8086/8088)

FLAGSFLAGS

AXAXAXAX

BXBX

CXCX

DXDX

SISI

DIDI

BPBP

SPSP

IPIP

CSCS

DSDS

ESES

SSSS

1515 00

771515 00

Rejestr Rejestr znaczników znaczników (flagowy(flagowy

Rejestry Rejestry powszechnegpowszechnego stosowaniao stosowania

Rejestry Rejestry wskaźnikowe wskaźnikowe i indeksowei indeksowe

Rejestry Rejestry segmentowesegmentowe

Wskaźnik Wskaźnik rozkazówrozkazów

OFOF DFDF IFIF TFTF SFSF ZFZF AFAF PFPF CFCF

OF - flaga nadmiaru (przepełnienia)OF - flaga nadmiaru (przepełnienia)

DF - flaga kierunkuDF - flaga kierunku

IF - flaga zezwolenia na przerwanieIF - flaga zezwolenia na przerwanieTF - flaga pracy krokowejTF - flaga pracy krokowej

SF - flaga znakuSF - flaga znakuZF - flaga zeraZF - flaga zera

AF - flaga przeniesienia pomocniczegoAF - flaga przeniesienia pomocniczegoPF - flaga parzystościPF - flaga parzystościCF - flaga przeniesieniaCF - flaga przeniesienia

AHAH ALAL

BHBH BLBL

CHCH CLCL

DHDH DLDL

Wskaźnik stosuWskaźnik stosu

Wskaźnik bazyWskaźnik bazy

Rejestr indeksowy Rejestr indeksowy przeznaczeniaprzeznaczenia

Rejestr indeksowy Rejestr indeksowy źródłaźródła

Rejestr danych Rejestr danych

Rejestr zliczający Rejestr zliczający

Rejestr bazowyRejestr bazowy

AkumulatorAkumulator

Rejestr programuRejestr programu

Rejestr danychRejestr danych

Rejestr dodatkowyRejestr dodatkowy

Rejestr stosuRejestr stosu

Znaczniki kontrolneZnaczniki kontrolne

Znaczniki stanuZnaczniki stanu

Page 10: PODSTAWY ARCHITEKTURY KOMPUTERA

REJESTRYREJESTRY

Rejestr znaczników (flagowy)Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech - rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości, ...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan (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 wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby:sposoby:

• ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazuustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu• testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania

(przetwarzania danych)(przetwarzania danych)Znaczniki stanu:Znaczniki stanu:

– CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości 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)słowa, w którym zapisywany jest wynik (1 wystąpiło przeniesienie)

– PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą liczbę bitów o wartości jedynkiwartości jedynki

– ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zeroZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej operacji jest zero– PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na PF - flaga przeniesienia pomocniczego jest wykorzystywana przy działaniach na

liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z liczbach w kodzie BCD. Ustawiana jest gdy następuje przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady wyniku najstarszego bitu pierwszej tetrady wyniku

– SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze znakiem - kod U2)znakiem - kod U2)

– OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji arytmetycznych (operacje liczb ze znakiem - kod U2)arytmetycznych (operacje liczb ze znakiem - kod U2)

Znaczniki kontrolne:Znaczniki kontrolne:– TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie przez procesor po

wykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługiwykonaniu każdego rozkazu przerwania i przejście do specjalnych procedur obsługi– IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie

systemu przerwań w procesorze (0 - procesor ignoruje przerwania)systemu przerwań w procesorze (0 - procesor ignoruje przerwania)– DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów) DF - znacznik kierunku - umożliwia realizację przetwarzania łańcuchów (ciągu słów)

przy rosnących adresach (1) lub malejących adresach (0)przy rosnących adresach (1) lub malejących adresach (0)

Page 11: PODSTAWY ARCHITEKTURY KOMPUTERA

REJESTRYREJESTRY

Rejestry ogólnego przeznaczeniaRejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych - rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulatorpewne funkcje specjalne. Szczególną funkcję pełni akumulator

AkumulatorAkumulator - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) - rejestr przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być wykonywanej operacji oraz wyniku wykonywanej operacji (czasami wynik może być umieszczany w innym rejestrze)umieszczany w innym rejestrze)

Rejestry segmentowe Rejestry segmentowe - są rejestrami wykorzystywanymi do adresowania pamięci - są rejestrami wykorzystywanymi do adresowania pamięci operacyjnej. Rejestry te zawierają adresy początkowe segmentówoperacyjnej. Rejestry te zawierają adresy początkowe segmentów

– CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie CS rejestr segmentowy programu wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania, są pobierane kolejne rozkazy do wykonania,

– DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne DS rejestr segmentowy stosu wskazuje segment, w którym zapamiętane są zmienne używane w programie, używane w programie,

– ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych,ES rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych,– SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest SS rejestr segmentowy stosu wskazuje segment pamięci, w którym zdefiniowany jest

stos.stos.

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

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

Page 12: PODSTAWY ARCHITEKTURY KOMPUTERA

REJESTRYREJESTRY

Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu Wskaźnik stosu(SP) - rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu)(wierzchołka stosu)Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł:Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł:

– informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąćczym żadnego adresu nie wolno pominąć

– odczytujemy informacje w kolejności odwrotnej do ich zapisu odczytujemy informacje w kolejności odwrotnej do ich zapisu – informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do

pierwszej wolnejpierwszej wolnejCzyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodziCzyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi

lublub

AdresProgram główny

101 Instrukcja102 Instrukcja103 Call

Wywołanie podprogramu I (adres 104 na stos)

1002 Instrukcja1003 Instrukcja1004 Call

Wywołanie podprogramu II(adres 1005 na stos)

2001 Instrukcja2002 Instrukcja2003 Return

1005 Instrukcja1006 Instrukcja1007 Return

Powrót z podprogramu II(do adresu 1005

odczytanego ze stosu)104 Instrukcja105 Instrukcja106 Instrukcja

Powrót z podprogramu I(do adresu 104

odczytanego ze stosu)107 Instrukcja

stosstos

stosstos

Page 13: PODSTAWY ARCHITEKTURY KOMPUTERA

akumulator rejestr bazowy rejestr zliczający rejestr danych

wskaźnik stosu

wskaźnik bazy

rejestr indeksowy źródła

rejestr indeksowy przeznaczenia

rejestr danych

rejestr dodatkowy

rejestr stosu

rejestr programu wskaźnik rozkazów

rejestr flagowy (znaczników)

Page 14: PODSTAWY ARCHITEKTURY KOMPUTERA

flaga parzystości

flaga przeniesienia pomocniczego

flaga zera

flaga zezwolenia na przerwanie

flaga nadmiaru

flaga kierunku

flaga znaku

flaga przeniesienia

Flaga (znacznik) symbol =1 =0Flaga nadmiaru OF OV NVFlaga kierunku DF DN UPFlaga zezwolenia na przerwanie IF EI DIFlaga znaku SF NG PLFlaga zera ZF ZR NZFlaga przeniesienia pomocniczego AF AC NAFlaga parzystości PF PE POFlaga przeniesienia CF CY NC

Page 15: PODSTAWY ARCHITEKTURY KOMPUTERA

BLOK ARYTMETYCZNO-LOGICZNYBLOK ARYTMETYCZNO-LOGICZNY

Blok arytmetyczno-logiczny (ALU)Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który - jest uniwersalnym układem kombinacyjnym, który realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. rozkazu umieszczonego w programie. Rozkazy mogą dotyczyć Rozkazy mogą dotyczyć

• operacji dwuargumentowych:operacji dwuargumentowych:– operacji arytmetycznych (dodawanie i odejmowanie)operacji arytmetycznych (dodawanie i odejmowanie)– operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.)operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.)

• operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów)rejestrów)

Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU.liczbie bitów ALU.

AA00 - A - A33

BB00 - B - B33

SS00 - S - S33MM

FF00 - F - F33

AF

BAF

BAF

F

ABF

BF

BAF

BAF

BAF

BAF

BF

ABF

F

BAF

BAF

AF

1

0

)1(

)(

)(

2

)1(

)(

)1(

)1(

)(

1

)(

)(

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

CAF

CABAF

CAABF

CAF

CABF

CABBAF

CBAF

CABAF

CAF

CBAF

CBABAF

CBAAF

CF

CBAF

CBAF

CAF

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

1111

0111

1011

0011

1101

0101

1001

0001

1110

0110

1010

0010

1100

0100

1000

0000

Lp. SLp. S00 - S - S3 3 M=0 M=1M=0 M=1

Sygnały sterujące do wyboru Sygnały sterujące do wyboru mikrooperacji logicznej (M=0) mikrooperacji logicznej (M=0) lub arytmetycznej (M=1)lub arytmetycznej (M=1)

Przykład 4 bitowego ALU SN74181Przykład 4 bitowego ALU SN74181

Page 16: PODSTAWY ARCHITEKTURY KOMPUTERA

UKŁAD STEROWANIAUKŁAD STEROWANIA

Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np. Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np.

dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i

przesunięć).przesunięć).

W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi

słów podawanych na wejścia sterujące układu ALU - układ sterowania. słów podawanych na wejścia sterujące układu ALU - układ sterowania.

Cechy takiego automatu to:Cechy takiego automatu to:

• konieczność posiadania bardzo dużej liczby stanów dostosowanych do konieczność posiadania bardzo dużej liczby stanów dostosowanych do

wymaganej liczby wykonywanych rozkazów;wymaganej liczby wykonywanych rozkazów;

• konieczność zapewnienia synchronizacji pracy układu sterowania i konieczność zapewnienia synchronizacji pracy układu sterowania i

wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji).

W praktyce realizowane są jako:W praktyce realizowane są jako:

• generatory sekwencyjnegeneratory sekwencyjne

• układy mikroprogramowalneukłady mikroprogramowalne

Page 17: PODSTAWY ARCHITEKTURY KOMPUTERA

ROZKAZY I TRYB ADRESOWANIAROZKAZY I TRYB ADRESOWANIA

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Cykl rozkazowyCykl rozkazowy

Lista i format rozkazuLista i format rozkazu

Tryb adresowaniaTryb adresowania

Sposób prezentowania rozkazuSposób prezentowania rozkazu

9

Page 18: PODSTAWY ARCHITEKTURY KOMPUTERA

CYKL ROZKAZOWY PROCESORACYKL ROZKAZOWY PROCESORA

Realizując program, system mikroprocesorowy wykonuje pewne powtarzające Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci się 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 rozkazui wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu

Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się nazywa się cyklem rozkazowym (instrukcyjnym)cyklem rozkazowym (instrukcyjnym)

Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie Def.1. Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się nazywa się cyklem rozkazowym (instrukcyjnym)cyklem rozkazowym (instrukcyjnym)

Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu. argumentu) i wykonania rozkazu.

Pam

ięć

Pam

ięć

CP

UC

PU

POBRANIE POBRANIE ROZKAZUROZKAZU

WYSŁANIE WYSŁANIE ADRESU ADRESU

ROZKAZUROZKAZU

DEKODOWADEKODOWANIENIE

ROZKAZUROZKAZU

OBLICZANIEOBLICZANIEADRESU ADRESU

ARGUMENTUARGUMENTUII

OBLICZANIEOBLICZANIEADRESU ADRESU

ARGUMENTUARGUMENTUIIII

WYKONANIE WYKONANIE ROZKAZUROZKAZU

OBLICZENIE OBLICZENIE ADRESU ADRESU

PRZEZNACZE-PRZEZNACZE-NIANIA

ZAPIS ZAPIS WYNIKUWYNIKU

POBRANIE POBRANIE ARGUMENTU ARGUMENTU

IIII

POBRANIE POBRANIE ARGUMENTU ARGUMENTU

II

cykl pobrania rozkazucykl pobrania rozkazu

cykl cykl pobrania pobrania

argumentu argumentu II

cykl cykl pobrania pobrania

argumentu argumentu IIII cykl zapisu wynikucykl zapisu wyniku

Page 19: PODSTAWY ARCHITEKTURY KOMPUTERA

CYKL ROZKAZOWY PROCESORACYKL ROZKAZOWY PROCESORA

Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju procesora i rodzaju rozkazu (argumentu).procesora i rodzaju rozkazu (argumentu).Np. Np. Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci:to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci:

• odczyt kodu - pobranie rozkazuodczyt kodu - pobranie rozkazu• odczyt jednego bajtu adresuodczyt jednego bajtu adresu• odczyt drugiego bajtu adresuodczyt drugiego bajtu adresu

Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazuJeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazu

Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2 komórkach pamięci)umieścić w 2 komórkach pamięci)

Faza pobrania:Faza pobrania:1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru 1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru

adresującego pamięć AD) na magistralę adresowąadresującego pamięć AD) na magistralę adresową2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR)2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR)3. zwiększenie zawartości licznika rozkazów3. zwiększenie zawartości licznika rozkazów

Faza wykonania:Faza wykonania:4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących 4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących

realizujących dany rozkazrealizujących dany rozkaz

11

22

33

44

Cykl von NeumanaCykl von Neumana

w przypadku rozkazów wielobajtowych

PC(AD)PC(AD)

RRRR

kod kod rozkazurozkazu

kod kod rozkazurozkazu

kod kod rozkazurozkazu

kod kod rozkazurozkazu

kod kod rozkazurozkazu

procesorprocesorpamięćpamięć

szyn

a ad

reso

wa

szyn

a ad

reso

wa

szyn

a d

anyc

hsz

yna

dan

ych

Page 20: PODSTAWY ARCHITEKTURY KOMPUTERA

MAPA PAMIĘCI

300 ładuj A adres 841301 adres 841302 ładuj B adres 915303 adres 915304 dodaj A+B305 zapisz pamięć adres 915306 adres 915

841 4

915 5

ZAWARTOŚĆ REJESTRÓW PROCESORA

Pobranie kodu rozkazu i 4 bitów adresu

Pobranie 16bitów adresu

Odczytargumentu

A 4B

ładuj A PC 300 301 302AD 300 301 841RR ładuj A ładuj A ładuj A

Pobranie kodu rozkazu i 4 bitów adresu

Pobranie 16bitów adresu

Odczytargumentu

A 4 4 4B 5

ładuj B PC 302 303 304AD 302 303 915RR ładuj B ładuj B ładuj BPobranie kodu rozkazuAB 5

dodaj PC 304AD 304RR dodaj

Pobranie kodu rozkazu i 4 bitów adresu

Pobranie 16bitów adresu

Odczytargumentu

A 9 9 9B 5 5 5

zapisz PC 305 306 307pamięć AD 305 306 915

RR zapisz zapisz zapisz

A Rejestr AB Rejestr BPC Licznik rozkazówAD Rejestr adresujący pamięćRR Rejestr rozkazów

16

Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):Program składa się z 4 rozkazów (adres pierwszego rozkazu wynosi 300):• odczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru Aodczyt pierwszego argumentu z komórki o adresie 841 i zapisanie go do rejestru A• odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B odczyt drugiego argumentu z komórki o adresie 915 i zapisanie go do rejestru B • dodanie obu argumentówdodanie obu argumentów• przesłanie wyniku do komórki pamięci o adresie 915przesłanie wyniku do komórki pamięci o adresie 915

Page 21: PODSTAWY ARCHITEKTURY KOMPUTERA

LISTA ROZKAZÓWLISTA ROZKAZÓW

Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesoraktórej wykonania programista może zażądać od procesora

Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, Def.1. Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesoraktórej wykonania programista może zażądać od procesora

Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesormaszynowych (rozkazów), jakie potrafi wykonać dany procesor

Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji Def.2. Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesormaszynowych (rozkazów), jakie potrafi wykonać dany procesor

• rozkazy przesłańrozkazy przesłań• rozkazy arytmetyczne i logicznerozkazy arytmetyczne i logiczne• rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.)• inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie

chronionym)chronionym)

Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnychpostaci kodów binarnych

Adreskomórki

Zawartośćkomórki

0000 0000 1011 00010000 0001 0001 01010000 0010 1010 00000000 0011 0000 00000000 0100 0000 11110000 0101 0000 00000000 0110 1100 10000000 0111 1100 01100000 1000 1010 1010

--

0000 1111 0000 0010

MOV CL,5

MOV A, [B2,B3]

ADD CL,A

A=A+5

OUT [B2] PRINT

rozkazy w postaci kodów binarnychrozkazy w postaci kodów binarnych instrukcje maszynoweinstrukcje maszynowe instrukcje w FORTRANieinstrukcje w FORTRANie

Page 22: PODSTAWY ARCHITEKTURY KOMPUTERA

FORMAT ROZKAZÓW I TRYB ADRESOWANIAFORMAT ROZKAZÓW I TRYB ADRESOWANIA

Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazukodzie rozkazu

Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w Def.1. Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazukodzie rozkazu

Kod rozkazu:Kod rozkazu:• musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w

pierwszym bajcie (bajtach) kodu rozkazupierwszym bajcie (bajtach) kodu rozkazu• może zawierać operandy i/lub adresy operandów wykonywanych operacjimoże zawierać operandy i/lub adresy operandów wykonywanych operacji

Def.2. Trybem adresowania nazywamy Def.2. Trybem adresowania nazywamy sposóbsposób określenia miejsca określenia miejsca przechowywania argumentów rozkazuprzechowywania argumentów rozkazu

Def.2. Trybem adresowania nazywamy Def.2. Trybem adresowania nazywamy sposóbsposób określenia miejsca określenia miejsca przechowywania argumentów rozkazuprzechowywania argumentów rozkazu

Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w:Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w:• rejestrachrejestrach• pamięcipamięci• kodzie rozkazukodzie rozkazu

Rozróżniamy następujące tryby adresowaniaRozróżniamy następujące tryby adresowania

• adresowanie natychmiastoweadresowanie natychmiastowe

• adresowanie bezpośrednieadresowanie bezpośrednie

• adresowanie rejestroweadresowanie rejestrowe

• adresowanie pośrednieadresowanie pośrednie

• adresowanie indeksowe z przemieszczeniemadresowanie indeksowe z przemieszczeniem

Page 23: PODSTAWY ARCHITEKTURY KOMPUTERA

TRYB ADRESOWANIATRYB ADRESOWANIA

Def.Przy Def.Przy adresowaniu natychmiastowymadresowaniu natychmiastowym argument rozkazu zawarty jest w argument rozkazu zawarty jest w kodzie rozkazukodzie rozkazu

Def.Przy Def.Przy adresowaniu natychmiastowymadresowaniu natychmiastowym argument rozkazu zawarty jest w argument rozkazu zawarty jest w kodzie rozkazukodzie rozkazu

Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie. Oznacza to, że w zasadzie nie jest to adresowanie w zwykłym sensie. Argument jest umieszczany w kodzie rozkazu, więc musi być on znany Argument jest umieszczany w kodzie rozkazu, więc musi być on znany w momencie pisania programu.w momencie pisania programu.

Kod rozkazuKod rozkazu

Kod operacjiKod operacji

ArgumentArgument

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest argument rozkazupamięci, w której przechowywany jest argument rozkazu

Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki Def.Przy adresowaniu bezpośrednim kod rozkazu zawiera adres komórki pamięci, w której przechowywany jest argument rozkazupamięci, w której przechowywany jest argument rozkazu

W momencie pisania programu musimy zarezerwować adres W momencie pisania programu musimy zarezerwować adres przechowywania argumentu.przechowywania argumentu.

Kod rozkazuKod rozkazuKod operacjiKod operacji

AdresAdres

ArgumentArgument

PA

MIĘ

ĆP

AM

IĘĆ

Page 24: PODSTAWY ARCHITEKTURY KOMPUTERA

TRYB ADRESOWANIATRYB ADRESOWANIA

Def.Przy Def.Przy adresowaniu rejestrowymadresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argumentktórym przechowywany jest argument

Def.Przy Def.Przy adresowaniu rejestrowymadresowaniu rejestrowym w kodzie rozkazu zawarty jest rejestr, w w kodzie rozkazu zawarty jest rejestr, w którym przechowywany jest argumentktórym przechowywany jest argument

Zaletą tego trybu jest krótki kod i szybkie wykonanieZaletą tego trybu jest krótki kod i szybkie wykonanie

Kod Kod rozkazurozkazu Kod operacjiKod operacji Określenie Określenie

rejestrurejestruArgumentArgument

REJESTRREJESTR

Def.W trybie Def.W trybie adresowania pośredniego (rejestrowego pośredniego)adresowania pośredniego (rejestrowego pośredniego) kod kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argumentsię adres komórki pamięci zawierającej argument

Def.W trybie Def.W trybie adresowania pośredniego (rejestrowego pośredniego)adresowania pośredniego (rejestrowego pośredniego) kod kod rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje rozkazu zawiera określenie rejestru bądź rejestrów, w których znajduje się adres komórki pamięci zawierającej argumentsię adres komórki pamięci zawierającej argument

AdresAdres

REJESTRREJESTR

ArgumentArgument

PA

MIĘ

ĆP

AM

IĘĆKod operacjiKod operacji Określenie Określenie

rejestrurejestru

Kod Kod rozkazurozkazu

Page 25: PODSTAWY ARCHITEKTURY KOMPUTERA

TRYB ADRESOWANIATRYB ADRESOWANIA

Def.W trybie Def.W trybie adresowania indeksowego z przemieszczeniem adresowania indeksowego z przemieszczeniem adres adres argumentu przechowywanego w pamięci obliczany jest jako suma argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniemumieszczonej w kodzie rozkazu, zwanej przemieszczeniem

Def.W trybie Def.W trybie adresowania indeksowego z przemieszczeniem adresowania indeksowego z przemieszczeniem adres adres argumentu przechowywanego w pamięci obliczany jest jako suma argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniemumieszczonej w kodzie rozkazu, zwanej przemieszczeniem

Kod Kod rozkazurozkazu

Kod operacjiKod operacjiOkreślenie Określenie

rejestrurejestru wartośćwartość

REJESTRREJESTR

PrzemieszczeniePrzemieszczenie ArgumentArgument

PA

MIĘ

ĆP

AM

IĘĆ

Page 26: PODSTAWY ARCHITEKTURY KOMPUTERA

SPOSÓB PREZENTOWANIA ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU

1. 1. Oznaczenie symboliczne rozkazuOznaczenie symboliczne rozkazu

Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu Jest stosowane dla prezentacji programu człowiekowi lub przy pisaniu programów w asemblerzeprogramów w asemblerze

Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj Składa się ono z mnemonika (skrótu, który powinien sugerować rodzaj operacji) i pola argumentówoperacji) i pola argumentów

JMP SHORT NEXTJMP SHORT NEXT

mnemonikmnemonik argumentargument

PAMIĘĆ ADRESY

11101011 00000000011 001

010011

NEXT Kolejny rozkaz 100101110

EB 03hEB 03h

argumentargumentkod operacjikod operacji

Kod rozkazu w kodzie Kod rozkazu w kodzie heksadecymalnymheksadecymalnym

Kod rozkazu binarnie Kod rozkazu binarnie (w pamięci)(w pamięci)

Page 27: PODSTAWY ARCHITEKTURY KOMPUTERA

................................................................

SPOSÓB PREZENTOWANIA ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU

2. 2. Opis działania rozkazuOpis działania rozkazu

Jest możliwy w formie słownej lub symbolicznejJest możliwy w formie słownej lub symbolicznej

Opis słowny:Opis słowny:

„„Wykonaj skok i pobierz kod rozkazu z komórki Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie równym pamięci o adresie równym etykieta”etykieta” (u nas NEXT=100)

Argumentem jest jednak nie adres komórki lecz długość skoku Argumentem jest jednak nie adres komórki lecz długość skoku (interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok (interpretowana w kodzie U2). SHORT oznacza w tym przypadku skok bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół) bliski (w zakresie od 127 bajtów w górę do 128 bajtów w dół)

Opis symboliczny:Opis symboliczny:

(PC) (PC) (PC) + przesunięcie (PC) + przesunięcie

czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek)czyli zwiększ licznik rozkazów o przesunięcie (o liczbę komórek)

Page 28: PODSTAWY ARCHITEKTURY KOMPUTERA

SPOSÓB PREZENTOWANIA ROZKAZUSPOSÓB PREZENTOWANIA ROZKAZU

3. 3. Format rozkazuFormat rozkazu

Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on Jest to sposób rozmieszczenia informacji w kodzie rozkazu. Jest on następujący:następujący:

Kod rozkazuKod rozkazu1110101111101011

przemieszczenieprzemieszczenie

kod operacjikod operacji

argumentargument

4. 4. Ustawienie flagiUstawienie flagi

Istotną informacją jest określenie czy są ustawiane flagi (i które) przy Istotną informacją jest określenie czy są ustawiane flagi (i które) przy wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane.wykonaniu rozkazu. W tym przykładzie flagi nie są ustawiane.

5. 5. Szybkość wykonywania rozkazuSzybkość wykonywania rozkazu

Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych Szybkość podawana jest jako ilość taktów zegara procesora potrzebnych do wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz do wykonania rozkazu. W tym przykładzie procesor 80386 wykonuje rozkaz w 7 taktach.w 7 taktach.

Page 29: PODSTAWY ARCHITEKTURY KOMPUTERA

PRZYKŁADOWE ROZKAZYPRZYKŁADOWE ROZKAZY

Rozkazy przesłań:Rozkazy przesłań:MOV - MOV - movemove - przesłanie słowa między dwoma rejestrami - przesłanie słowa między dwoma rejestramiSTR - STR - store store - przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięci- przesłanie słowa ze wskazanego w rozkazie rejestru do komórki pamięciLD - LD - loadload - przesłanie słowa z pamięci do wskazanego rejestru - przesłanie słowa z pamięci do wskazanego rejestruXCH - XCH - exchange exchange - wymiana zawartości rejestrów - wymiana zawartości rejestrów

Rozkazy arytmetyczno-logiczne:Rozkazy arytmetyczno-logiczne:ADD - ADD - additionaddition - dodawanie - dodawanieSUB - SUB - subtraction subtraction - odejmowanie- odejmowanieMUL - MUL - multiplicationmultiplication - mnożenie - mnożenieDIV - DIV - division division - dzielenie- dzielenieNEG - NEG - negate negate - negacja- negacjaDEC - DEC - decrement decrement - zmniejszanie wartości o jeden- zmniejszanie wartości o jedenINC - INC - incrementincrement - awiększanie wartości o jeden - awiększanie wartości o jeden

Rozkazy sterujące pracą programu:Rozkazy sterujące pracą programu:JMP - JMP - jumpjump - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięci - skok bezwarunkowy do wyspecyfikowanego miejsca w pamięciCALL - CALL - jump to subroutine jump to subroutine - wywołanie podprogramu- wywołanie podprogramuRET - RET - returnreturn - skok powrotny z podprogramu - skok powrotny z podprogramuSKIP - SKIP - skip skip - przeskok przez jeden rozkaz- przeskok przez jeden rozkaz

Rozkazy sterujące pracą procesora :Rozkazy sterujące pracą procesora :HALT - HALT - stopstop - zatrzymanie wykonania programu - zatrzymanie wykonania programuNOP - NOP - no operation no operation - rozkaz pusty- rozkaz pusty

AND - AND - conjuctionconjuction - iloczyn - iloczynOR - OR - disjunction disjunction - suma- sumaEXOR - EXOR - exclusive-ORexclusive-OR -suma mod 2 -suma mod 2NOT - NOT - complement complement - negacja- negacja

Page 30: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCIPAMIĘCI

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Podstawowe cechy i klasyfikacjaPodstawowe cechy i klasyfikacja

Pamięci RAMPamięci RAM

Pamięci dynamiczne RAMPamięci dynamiczne RAM

Pamięci ROMPamięci ROM

10

Page 31: PODSTAWY ARCHITEKTURY KOMPUTERA

PARAMETRY PAMIĘCIPARAMETRY PAMIĘCI

Pamięć jako układ przeznaczony do przechowywania informacji binarnej Pamięć jako układ przeznaczony do przechowywania informacji binarnej można scharakteryzować następującymi parametrami:można scharakteryzować następującymi parametrami:

• pojemnośćpojemność

• szybkośćszybkość

• kosztkoszt

• pobór mocypobór mocy

Pojemność pamięciPojemność pamięci określa ilość informacji jaką można w niej przechować określa ilość informacji jaką można w niej przechować

wyrażoną w bitach, bajtach lub słowach. wyrażoną w bitach, bajtach lub słowach.

Pamięć dzielona jest na fragmenty (w zależności od typu pamięci) Pamięć dzielona jest na fragmenty (w zależności od typu pamięci)

umożliwiające adresowanie. umożliwiające adresowanie.

W pamięci operacyjnej są to fragmenty określane długością słowa (8, 16, W pamięci operacyjnej są to fragmenty określane długością słowa (8, 16,

32, 64 bity). Pojemność określa się podając liczbę słów i długość słowa, np. 32, 64 bity). Pojemność określa się podając liczbę słów i długość słowa, np.

512Kx64 - 2512Kx64 - 21919 słów 64-bitowych słów 64-bitowych

W pamięciach masowych fragmentami są sektory (setki lub tysiące słów). W pamięciach masowych fragmentami są sektory (setki lub tysiące słów).

Page 32: PODSTAWY ARCHITEKTURY KOMPUTERA

PARAMETRY PAMIĘCIPARAMETRY PAMIĘCI

Szybkość pamięciSzybkość pamięci określa jak często procesor (lub inne urządzenie) może z określa jak często procesor (lub inne urządzenie) może z

niej korzystać.niej korzystać.

• czas dostępu - czas od momentu żądania informacji z pamięci do czas dostępu - czas od momentu żądania informacji z pamięci do

momentu, w którym ta informacja ukaże się na wyjściu pamięcimomentu, w którym ta informacja ukaże się na wyjściu pamięci

• czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma czas cyklu - najkrótszy czas jaki musi upłynąć pomiędzy dwoma

żądaniami dostępu do pamięciżądaniami dostępu do pamięci

• szybkość transmisji - określa ile bajtów (bitów) można przesłać szybkość transmisji - określa ile bajtów (bitów) można przesłać

pomiędzy pamięcią a innym urządzeniem w jednostce czasu.pomiędzy pamięcią a innym urządzeniem w jednostce czasu.

Koszt pamięciKoszt pamięci określa cenę jaką należy ponieść za uzyskanie wysokich określa cenę jaką należy ponieść za uzyskanie wysokich

parametrów pamięci parametrów pamięci

szybciej - drożej !!!szybciej - drożej !!! wolniej - taniej !!!wolniej - taniej !!!

Pobór mocyPobór mocy określa jakie jest zapotrzebowanie określa jakie jest zapotrzebowanie

energetyczne na realizację funkcji pamięci zwłaszcza energetyczne na realizację funkcji pamięci zwłaszcza

przy dążeniu do wzrostu jej pojemnościprzy dążeniu do wzrostu jej pojemności !

Page 33: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCIPAMIĘCI

RejestrowaRejestrowa

KieszeniowaKieszeniowa

OperacyjnaOperacyjna

MasowaMasowa

ZewnętrznaZewnętrzna

Z dostępem swobodnym Z dostępem swobodnym (bezpośrednim)(bezpośrednim)

Z dostępem cyklicznymZ dostępem cyklicznym

Z dostępemZ dostępemsekwencyjnymsekwencyjnym

Z dostępemZ dostępemasocjacyjnymasocjacyjnym

ROMROM

RAMRAM

DRAMDRAM(dynamiczne)(dynamiczne)

SRAMSRAM(statyczne)(statyczne)

Hie

rarc

hia

pam

ięci

Hie

rarc

hia

pam

ięci

Do

stę

p d

o i

nfo

rmac

jiD

ost

ęp

do

in

form

acji

Page 34: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCI RAMPAMIĘCI RAM

Def. Pamięcią RAM (Def. Pamięcią RAM (Random Access MemoryRandom Access Memory) nazywamy pamięć ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu zasilania dane są tracone. zasilania dane są tracone.

Def. Pamięcią RAM (Def. Pamięcią RAM (Random Access MemoryRandom Access Memory) nazywamy pamięć ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i półprzewodnikową o dostępie swobodnym przeznaczoną do zapisu i odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu odczytu. RAM jest pamięcią ulotną, co oznacza, że po wyłączeniu zasilania dane są tracone. zasilania dane są tracone.

PamięćPamięć22nn x m x m

adresadres

EE

zapis/odczytzapis/odczyt

nn

mm

Łączenie układów pamięci dla zwiększenia pojemności:Łączenie układów pamięci dla zwiększenia pojemności:

• zwiększanie długości słowazwiększanie długości słowa

• zwiększanie ilości słówzwiększanie ilości słów

Page 35: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCI RAMPAMIĘCI RAMzwiększanie długości słowa (rozbudowa szyny danych)zwiększanie długości słowa (rozbudowa szyny danych)

PamięćPamięć1M x 4b1M x 4b

adresadres

EEz/oz/o

2020

D0D0D1D1D2D2D3D3

PamięćPamięć1M x 1b1M x 1b

D0D0

Pamięć 4Mb z bitem parzystościPamięć 4Mb z bitem parzystości Pamięć 8Mb z bitem parzystościPamięć 8Mb z bitem parzystości

PamięćPamięć1M x 4b1M x 4b

adresadres

EEz/oz/o

2020

D0D0D1D1D2D2D3D3

PamięćPamięć1M x 1b1M x 1b

D0D0

PamięćPamięć1M x 4b1M x 4b

D0D0D1D1D2D2D3D3

D0 D1 D2 D3D0 D1 D2 D3

Sposób stosowany w budowie modułów SIMM (Sposób stosowany w budowie modułów SIMM (Single In Line ModuleSingle In Line Module))

D4 D5 D6 D7 D8D4 D5 D6 D7 D8

Page 36: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCI RAMPAMIĘCI RAMzwiększanie liczby słów (rozbudowa szyny adresowej)zwiększanie liczby słów (rozbudowa szyny adresowej)

PamięćPamięć256k x 4b256k x 4badresadres

EEz/oz/o

1818

D0D0D1D1D2D2D3D3

Pamięć 256k x 4bPamięć 256k x 4b

PamięćPamięć256k x 4b256k x 4b

DE

KO

DE

RD

EK

OD

ER

EE

z/oz/o

A0-

A17

A0-

A17

D0D0D1D1D2D2D3D3

Pamięć 1M x 4bPamięć 1M x 4b

PamięćPamięć256k x 4b256k x 4b

D0D0D1D1D2D2D3D3

PamięćPamięć256k x 4b256k x 4b

D0D0D1D1D2D2D3D3

PamięćPamięć256k x 4b256k x 4b

D0D0D1D1D2D2D3D3

D3 D2 D1 D0D3 D2 D1 D0

EE

EE

EE

1818

A18

A19

A18

A19

Page 37: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCI RAMPAMIĘCI RAMdynamiczne i statycznedynamiczne i statyczne

CECHY PAMIĘCICECHY PAMIĘCI DRAMDRAM SRAMSRAM

szybkośćszybkość małamała dużaduża

kosztkoszt niskiniski wysokiwysoki

pojemnośćpojemność dużaduża małamała

pobór mocypobór mocy małymały dużyduży

łatwość scalaniałatwość scalania dużaduża małamała

konieczność odświeżaniakonieczność odświeżania taktak nienie

główne zastosowaniegłówne zastosowanie główna pamięćgłówna pamięć pamięćpamięćoperacyjnaoperacyjna kieszeniowakieszeniowa

( (cachecache))

Page 38: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)

adresadres danedane

RAS#RAS#

CAS#CAS#

WE#WE#

OE#OE#

CE#CE#

OE# - zezwolenie na odczytOE# - zezwolenie na odczytWE# - zezwolenie na zapisWE# - zezwolenie na zapisCE# - uaktywnianie (strob)CE# - uaktywnianie (strob)RAS# - syg.wprowadzania adresu do pamięci RAS# - syg.wprowadzania adresu do pamięci CAS# - -‘’- CAS# - -‘’- -‘’- -‘’- -‘’--‘’- -‘’- -‘’-

adresadres

RAS#RAS#

CAS#CAS#

DEKODER KOLUMNDEKODER KOLUMN

RE

JE

ST

R A

DR

ES

U

RE

JE

ST

R A

DR

ES

U

WIE

RS

ZA

WIE

RS

ZA

DE

KO

DE

R

WIE

RS

ZY

DE

KO

DE

R

WIE

RS

ZY

REJESTR ADRESU REJESTR ADRESU KOLUMNYKOLUMNY

0 dla aktywnego sygnału RAS#0 dla aktywnego sygnału RAS#1 dla aktywnego sygnału CAS#1 dla aktywnego sygnału CAS#

adres kolumnyadres kolumny

do

we

jśc

ia

do

we

jśc

ia

ad

res

ow

eg

o

ad

res

ow

eg

o

DR

AM

DR

AM

adres wierszadres wiersznn

2n2n nn

nn

SS

WE1WE1

WE0WE0

Page 39: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ DYNAMICZNA RAM (DRAM) PAMIĘĆ DYNAMICZNA RAM (DRAM) operacje odczytuoperacje odczytu

ttcc - - minimalny czas pomiędzy dwoma cyklamiminimalny czas pomiędzy dwoma cyklami

RAS#RAS#

ttaa - - czas dostępuczas dostępu

ttD RAS-CASD RAS-CAS - - opóźnienie sygnału CAS# względem RAS#opóźnienie sygnału CAS# względem RAS#

Wyjście Wyjście danychdanych

Adres Adres wierszawiersza

Ważne daneWażne dane

Adres Adres kolumnykolumny

Adres Adres wierszawiersza

CAS#CAS#

Wejścia Wejścia adresowe adresowe pamięcipamięci

SS

OE#OE#

Page 40: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)stany oczekiwaniastany oczekiwania

BCLKBCLK

A23 - A0A23 - A0

W/R#W/R#

READYREADY

D15 - D0D15 - D0

TTii TTii TTii TTiiTT11 TT22 TT11 TT22 TT22 TT11 TT22 TT22

VAVA VAVA VAVA

odczytodczyt(0 oczekiwania(0 oczekiwania))

uśpienieuśpienie uśpienieuśpienie uśpienieuśpienie uśpienieuśpienie

odczytodczyt(1 oczekiwania(1 oczekiwania))

zapiszapis(1 oczekiwania(1 oczekiwania))

DO dane zapisywaneDO dane zapisywane

DI dane odczytywaneDI dane odczytywaneVA ważny adresVA ważny adres

stan nieistotnystan nieistotny

DIDI DIDI DODO

Page 41: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ DYNAMICZNA RAM (DRAM)PAMIĘĆ DYNAMICZNA RAM (DRAM)odświeżanieodświeżanie

Odświeżanie komórek pamięci dynamicznych polega na cyklicznym doładowaniu Odświeżanie komórek pamięci dynamicznych polega na cyklicznym doładowaniu

pojemności pamiętających przechowujących wartość logiczną „1”.pojemności pamiętających przechowujących wartość logiczną „1”.

Operacja odświeżania realizowana jest przez specjalistyczne układy logiczne, Operacja odświeżania realizowana jest przez specjalistyczne układy logiczne,

będące elementem płyty głównej komputera.będące elementem płyty głównej komputera.

Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM:Istnieją cztery podstawowe sposoby odświeżania pamięci dynamicznych RAM:

• sygnałem RAS (tryb wierszowy)sygnałem RAS (tryb wierszowy)

• sygnałem CAS przed RAS (tryb statyczny)sygnałem CAS przed RAS (tryb statyczny)

• odświeżanie ukryteodświeżanie ukryte

• autoodświeżanieautoodświeżanie

Page 42: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ KIESZENIOWA (STATYCZNA) RAMPAMIĘĆ KIESZENIOWA (STATYCZNA) RAM

Zjawisko lokalnościZjawisko lokalności - procesor odwołuje się najczęściej do pamięci ( - procesor odwołuje się najczęściej do pamięci (trafienietrafienie) w ) w

pewnym niewielkim obszarze (w okolicach danego programu) - bardzo rzadko do pewnym niewielkim obszarze (w okolicach danego programu) - bardzo rzadko do

obszarów odległych. Stąd stosowanie szybkich pamięci kieszeniowych (cache) obszarów odległych. Stąd stosowanie szybkich pamięci kieszeniowych (cache)

zawierających właśnie taki lokalny obszar pamięci. zawierających właśnie taki lokalny obszar pamięci.

0011

q-1q-1

1 blok1 blok

2 blok2 blok

k-1 blokk-1 blok

k-2 blokk-2 blok

...... 0011

m-1m-1

22

m-2m-2

q słówq słówloglog22kk

pamięć operacyjnapamięć operacyjna

pamięć kieszeniowapamięć kieszeniowazawiera tylko zawiera tylko mm spośród spośród k k bloków (k>>m) bloków (k>>m)

Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (Gdy procesor zażąda dostępu do bloku, którego nie ma w pamięci cache (chybieniechybienie) )

to następuje wymiana zawartości jednej komórki pamięci kieszeniowej. to następuje wymiana zawartości jednej komórki pamięci kieszeniowej.

Nr blokuNr bloku

Page 43: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ KIESZENIOWA (STATYCZNA) RAMPAMIĘĆ KIESZENIOWA (STATYCZNA) RAM

H - współczynnik trafieniaH - współczynnik trafienia

Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) Jeżeli założymy pojemność pamięci operacyjnej: 8192 bloki (k) po 8 bajtów (q) tj. 8192*8 = 65536B = 64KBtj. 8192*8 = 65536B = 64KB

oraz pojemność pamięci kieszeniowej m=128 liniioraz pojemność pamięci kieszeniowej m=128 linii

to długość linii pamięci kieszeniowej wyniesie to długość linii pamięci kieszeniowej wyniesie s=8*q + logs=8*q + log22k = 8*8 + logk = 8*8 + log228193 = 64+13=77bitów8193 = 64+13=77bitów

q = 8q = 8

q = 64q = 64

q = 16q = 16

0,30,3

0,60,6

0,90,9

5 kB5 kB 10 kB10 kB 15 kB15 kB 20 kB20 kBpojemność pamięci pojemność pamięci kieszeniowejkieszeniowej

Page 44: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘCI ROMPAMIĘCI ROM

Def. Pamięcią ROM (Def. Pamięcią ROM (Read Only MemoryRead Only Memory) nazywamy pamięć półprzewodnikową ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu zasilania dane nie są tracone. oznacza, że po wyłączeniu zasilania dane nie są tracone.

Def. Pamięcią ROM (Def. Pamięcią ROM (Read Only MemoryRead Only Memory) nazywamy pamięć półprzewodnikową ) nazywamy pamięć półprzewodnikową o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio o dostępie swobodnym przeznaczoną tylko do odczytu uprzednio zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w zapisanych danych. Oznacza to, że nie można do niej zapisywać danych w trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co trakcie normalnej pracy w systemie. ROM jest pamięcią nieulotną, co oznacza, że po wyłączeniu zasilania dane nie są tracone. oznacza, że po wyłączeniu zasilania dane nie są tracone.

• MROM (MROM (mascable ROMmascable ROM) zawartość pamięci ustalana jest w procesie produkcji ) zawartość pamięci ustalana jest w procesie produkcji

(za pomocą odpowiednich masek) - BIOS do obsługi klawiatury(za pomocą odpowiednich masek) - BIOS do obsługi klawiatury

• PROM (PROM (programmable ROMprogrammable ROM) pamięć jednokrotnie programowalna przez ) pamięć jednokrotnie programowalna przez

użytkownika - obecnie nieużywanaużytkownika - obecnie nieużywana

• EPROM pamięć wielokrotnie programowalna w ultrafioletowych EPROM pamięć wielokrotnie programowalna w ultrafioletowych

programatorach - obecnie wychodzi z użyciaprogramatorach - obecnie wychodzi z użycia

• EEPROM pamięć kasowana i programowana na drodze elektrycznej (podobnie EEPROM pamięć kasowana i programowana na drodze elektrycznej (podobnie

jak RAM ale czas zapisu jest nieporównywalnie długi) - flash-BIOS jak RAM ale czas zapisu jest nieporównywalnie długi) - flash-BIOS

(uaktualniany BIOS)(uaktualniany BIOS)

Page 45: PODSTAWY ARCHITEKTURY KOMPUTERA
Page 46: PODSTAWY ARCHITEKTURY KOMPUTERA
Page 47: PODSTAWY ARCHITEKTURY KOMPUTERA
Page 48: PODSTAWY ARCHITEKTURY KOMPUTERA

UKŁADY I OPERACJE WEJŚCIA/WYJŚCIAUKŁADY I OPERACJE WEJŚCIA/WYJŚCIA

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Układy wejścia/wyjściaUkłady wejścia/wyjścia

Operacje wejścia/wyjściaOperacje wejścia/wyjścia

11

Page 49: PODSTAWY ARCHITEKTURY KOMPUTERA

UKŁDY WEJŚCIA/WYJŚCIAUKŁDY WEJŚCIA/WYJŚCIA

Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z drugiej.drugiej.Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących. sterujących.

Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie Def. Układem we/wy nazywamy układ elektroniczny pośredniczący w wymianie informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a informacji pomiędzy mikroprocesorem i pamięcią systemu z jednej strony a urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z urządzeniem peryferyjnym (zewnętrznym urządzeniem współpracującym) z drugiej.drugiej.Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub Dla systemu mikroprocesorowego układ we/wy widoczny jest jako rejestr lub zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów zespół rejestrów o określonych adresach oraz pewien zestaw sygnałów sterujących. sterujących.

Page 50: PODSTAWY ARCHITEKTURY KOMPUTERA

Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź Urządzenia peryferyjne mogą służyć do wprowadzania, wyprowadzania bądź

przechowywania informacji lub być układami wykonawczymi.przechowywania informacji lub być układami wykonawczymi.

Dlaczego konieczne jest pośredniczenie?Dlaczego konieczne jest pośredniczenie?

• różnice w szybkości działania (konieczne jest więc sterowanie przepływem różnice w szybkości działania (konieczne jest więc sterowanie przepływem

informacji)informacji)

• różnice w parametrach elektrycznych (konieczna więc translacja poziomu różnice w parametrach elektrycznych (konieczna więc translacja poziomu

sygnałów)sygnałów)

• wymagają podania informacji o określonym formacie wraz z pewnymi wymagają podania informacji o określonym formacie wraz z pewnymi

sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją)sygnałami sterującymi (np. Sygnał wideo wraz z synchronizacją)

Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.Układy wej/wyj podobnie jak pamięci posiadają wejścia adresowe i sterujące.

UKŁDY WEJŚCIA/WYJŚCIAUKŁDY WEJŚCIA/WYJŚCIA

Page 51: PODSTAWY ARCHITEKTURY KOMPUTERA

UKŁDY WEJŚCIA/WYJŚCIA UKŁDY WEJŚCIA/WYJŚCIA WSPÓŁADRESOWALNE Z PAMIĘCIĄWSPÓŁADRESOWALNE Z PAMIĘCIĄ

Szyna adresowaSzyna adresowa

PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNACPUCPU I/OI/O

MEMR MEMWMEMR MEMW MEMR MEMWMEMR MEMW MEMR MEMWMEMR MEMW

Def. W przypadku układów współadresowalnych z pamięcią operacyjną Def. W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są wspólne dla pamięci i układów we/wy.wspólne dla pamięci i układów we/wy.

Def. W przypadku układów współadresowalnych z pamięcią operacyjną Def. W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są wspólne dla pamięci i układów we/wy.wspólne dla pamięci i układów we/wy.

Np. karta graficznaNp. karta graficzna

Page 52: PODSTAWY ARCHITEKTURY KOMPUTERA

UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANEUKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE

Szyna adresowaSzyna adresowa

PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNACPUCPU I/OI/O

MEMR MEMR

MEMWMEMW MEMR MEMWMEMR MEMW IOR IOWIOR IOW

Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielonesterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone

Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielonesterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone

IOR IOR

IOWIOW

Sygnały sterujące Sygnały sterujące dla pamięcidla pamięci

Sygnały sterujące dla Sygnały sterujące dla układów we/wyukładów we/wy

Np. sterownik dysku Np. sterownik dysku twardegotwardego

Page 53: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE WEJŚCIA/WYJŚCIAOPERACJE WEJŚCIA/WYJŚCIA

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej.jednej strony a układem wejścia/wyjścia z drugiej.

Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej.jednej strony a układem wejścia/wyjścia z drugiej.

Operacje wejścia/wyjścia mogą być realizowane:Operacje wejścia/wyjścia mogą być realizowane:

• od początku do końca przy udziale procesora - przesyłana informacja od początku do końca przy udziale procesora - przesyłana informacja

przepływa przez rejestry procesora, który także steruje każdym krokiem przepływa przez rejestry procesora, który także steruje każdym krokiem

realizacji operacji - są to realizacji operacji - są to operacje z bezpośrednim sterowaniem przez operacje z bezpośrednim sterowaniem przez

mikroprocesormikroprocesor

• poprzez zainicjowanie operacji przez procesor, który następnie przekazuje poprzez zainicjowanie operacji przez procesor, który następnie przekazuje

nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są

to to operacje z pośrednim sterowaniem przez mikroprocesor (z operacje z pośrednim sterowaniem przez mikroprocesor (z

bezpośrednim dostępem do pamięci - DMA)bezpośrednim dostępem do pamięci - DMA)..

Page 54: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR

Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor :Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor :

• bezwarunkowe operacje wejścia/wyjściabezwarunkowe operacje wejścia/wyjścia

• operacje z testowaniem stanu układu wejścia/wyjściaoperacje z testowaniem stanu układu wejścia/wyjścia

• operacje z przerwaniem programuoperacje z przerwaniem programu

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy realizacji której mikroprocesor nie sprawdza gotowości układu realizacji której mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji za pomocą zestawu diod elektroluminescencyjnych.za pomocą zestawu diod elektroluminescencyjnych.

Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy Def. Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy realizacji której mikroprocesor nie sprawdza gotowości układu realizacji której mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji za pomocą zestawu diod elektroluminescencyjnych.za pomocą zestawu diod elektroluminescencyjnych.

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana. Operacje te są gotowości do wymiany przez układ jest ona realizowana. Operacje te są stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania zgłoszenia gotowości.zgłoszenia gotowości.

Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu Def. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana. Operacje te są gotowości do wymiany przez układ jest ona realizowana. Operacje te są stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie stosowane np. przy współpracy z przetwornikiem a/c - procesor cyklicznie przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania zgłoszenia gotowości.zgłoszenia gotowości.

Page 55: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR

operacje z przerwaniem programuoperacje z przerwaniem programu

Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z

testowaniem stanu układu. testowaniem stanu układu.

Procesor wykonuje Procesor wykonuje program głównyprogram główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje oczekując na zgłoszenie gotowości. Zgłoszenie powoduje przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do późniejszego powrotu do programu głównego. Procesor przechodzi do wykonania późniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu programu obsługi przerwań obsługi przerwań ((ISR - interrupt service routineISR - interrupt service routine) - następuje wymiana informacji z układem ) - następuje wymiana informacji z układem we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje przerwany program główny.przerwany program główny.

INSTRUKCJA 1INSTRUKCJA 1INSTRUKCJA 2INSTRUKCJA 2INSTRUKCJA 3INSTRUKCJA 3INSTRUKCJA 4INSTRUKCJA 4INSTRUKCJA 11INSTRUKCJA 11INSTRUKCJA 12INSTRUKCJA 12

INSTRUKCJA 5INSTRUKCJA 5INSTRUKCJA 6INSTRUKCJA 6INSTRUKCJA 7INSTRUKCJA 7INSTRUKCJA 8INSTRUKCJA 8INSTRUKCJA 9INSTRUKCJA 9

RET 10RET 10

Program główny

Zgłoszenie przerwania

Odtworzenie stanu rejestrów

procesora

Początek programu obsługi przerwania

Zapamiętanie stanu rejestrów procesora

Page 56: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR

operacje z przerwaniem programuoperacje z przerwaniem programu

W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy

sytuacja może się komplikować. Dlatego stosuje się tzw. sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwaństerownik przerwań. .

Główne zadania sterownika przerwań:Główne zadania sterownika przerwań:

• pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem

i układami we/wyi układami we/wy

• przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko

jedno wejście zgłoszenia przerwań)jedno wejście zgłoszenia przerwań)

• wybór spośród wielu zgłoszeń tego, które zostanie obsłużonewybór spośród wielu zgłoszeń tego, które zostanie obsłużone

• sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym

zostanie dokonana wymiana (adresu programu obsługi przerwania zostanie dokonana wymiana (adresu programu obsługi przerwania

realizującego tą wymianę, a właściwie numer pozycji w realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów tablicy wektorów

przerwańprzerwań))

• wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do

procesoraprocesora

Page 57: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE Z BEZPOŚREDNIM OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORSTEROWANIEM PRZEZ MIKROPROCESOR

operacje z przerwaniem programu - tablica wektorów przerwańoperacje z przerwaniem programu - tablica wektorów przerwań

Początek IRSPoczątek IRS

CSCSIPIPCSCSIPIPCSCSIPIP

Pamięć operacyjnaPamięć operacyjna

Numer przerwania

Adres początku Adres początku programu programu obsługi obsługi przerwaniaprzerwania

Tablica Tablica wektorów wektorów przerwańprzerwań

CSCSIPIPCSCSIPIP

Sterownik Sterownik przerwańprzerwań

Page 58: PODSTAWY ARCHITEKTURY KOMPUTERA

OPERACJE Z POŚREDNIM STEROWANIEM OPERACJE Z POŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR (DMA)PRZEZ MIKROPROCESOR (DMA)

Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i przekazaniu sterowania specjalizowanemu układowi zwanemu przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem sterownikiem DMA (direct memory access) DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do nazywamy operacją o bezpośrednim dostępie do pamięci.pamięci.

Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i Def. Operacje wejścia/wyjścia polegające na inicjowaniu operacji przez procesor i przekazaniu sterowania specjalizowanemu układowi zwanemu przekazaniu sterowania specjalizowanemu układowi zwanemu sterownikiem sterownikiem DMA (direct memory access) DMA (direct memory access) nazywamy operacją o bezpośrednim dostępie do nazywamy operacją o bezpośrednim dostępie do pamięci.pamięci.

W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a wydzielonym W operacji DMA transmisja informacji przebiega pomiędzy układem we/wy a wydzielonym obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad obszarem pamięci pod kontrolą sterownika DMA. Po zgłoszeniu żądania przejęcia kontroli nad magistralami (za pomocą sygnału HOLD) procesor inicjuje operację i przechodzi w stan magistralami (za pomocą sygnału HOLD) procesor inicjuje operację i przechodzi w stan zawieszenia (odseparowanie się od magistral). Po zakończeniu transmisji sterownik DMA zawieszenia (odseparowanie się od magistral). Po zakończeniu transmisji sterownik DMA zwraca procesorowi kontrolę nad magistralami. zwraca procesorowi kontrolę nad magistralami.

Szyna adresowaSzyna adresowa

PAMIĘĆ PAMIĘĆ OPERACYJNAOPERACYJNA

STEROWNIK STEROWNIK DMADMA

I/OI/O

MEMR MEMR

MEMWMEMW MEMR MEMWMEMR MEMW IOR IOWIOR IOWIOR IOR

IOWIOW

CPUCPU

HOLDHOLD

Inicjowanie Inicjowanie operacjioperacji

Określa:Określa:• wielkość bloku do transmisjiwielkość bloku do transmisji• sposób transmisji (blokowa, sposób transmisji (blokowa,

pojedynczymi słowami, na żądanie)pojedynczymi słowami, na żądanie)• adres pierwszej komórki bufora adres pierwszej komórki bufora

pamięcipamięci• rodzaj operacji (zapis, odczyt) rodzaj operacji (zapis, odczyt)

zawieszeniezawieszenie

Page 59: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE PRACA PROCESORA W TRYBIE RZECZYWISTYM I CHRONIONYMRZECZYWISTYM I CHRONIONYM

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Praca procesora w trybie rzeczywistymPraca procesora w trybie rzeczywistym

Praca procesora w trybie chronionymPraca procesora w trybie chronionym

Praca wielozadaniowaPraca wielozadaniowa

StronicowanieStronicowanie

12

Page 60: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

W typowym procesorze 16 bitowym (8086/88) mamy:W typowym procesorze 16 bitowym (8086/88) mamy:• rejestry 16 bitowerejestry 16 bitowe• magistrala danych 16 bitowamagistrala danych 16 bitowa• ale szyna adresowa 20 bitowa - adres 20 bitowyale szyna adresowa 20 bitowa - adres 20 bitowy

20 bitowy adres pozwala zaadresować 220 bitowy adres pozwala zaadresować 22020=1048576B=1MB pamięci operacyjnej =1048576B=1MB pamięci operacyjnej dzielonej na segmentydzielonej na segmenty

PAMIĘĆPAMIĘĆ

1MB1MB

Segment Segment programu programu

(kodu)(kodu)

Segment Segment danychdanych

Segment Segment stosustosu

Segment Segment danych danych

dodatkowychdodatkowych

początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu programu CS*16 czylirejestru segmentu programu CS*16 czyli

rejestr CSrejestr CS0000000033001515 00

początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu danych DS*16 czylirejestru segmentu danych DS*16 czyli

rejestr DSrejestr DS 00000000

33001515 00

10110010011011011011001001101101

początek segmentu wyznacza zawartość początek segmentu wyznacza zawartość rejestru segmentu stosu SS*16 czylirejestru segmentu stosu SS*16 czyli

rejestr SSrejestr SS 00000000

33001515 00

początek segmentu wyznaczają zawartości rejestrów początek segmentu wyznaczają zawartości rejestrów dodatkowych segmentów danych ES (GS, FS) *16 dodatkowych segmentów danych ES (GS, FS) *16 czyliczyli

rejestr rejestr ES(GS,FS)ES(GS,FS) 00000000

33001515 00

Adres Adres 0000000000HH

Adres Adres FFFFFFFFFFHH

Page 61: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

Część segmentowa adresu wyznacza adres segmentu, ale aby zaadresować określoną Część segmentowa adresu wyznacza adres segmentu, ale aby zaadresować określoną komórkę należy posługiwać się adresem fizycznym.komórkę należy posługiwać się adresem fizycznym.Adres fizyczny (20 bitowy) określa się według reguły:Adres fizyczny (20 bitowy) określa się według reguły:

Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres efektywny)Adres fizyczny = część segmentowa *16 + przemieszczenie (tzw.adres efektywny)

rejestr rejestr segmentowysegmentowy 00000000

1515

CS=1011001001101101CS=1011001001101101

adres efektywnyadres efektywny

001515

IP=0100011111110011IP=0100011111110011

wskaźnik rozkazówwskaźnik rozkazów

rejestr segmentu programurejestr segmentu programu

++

adres fizycznyadres fizyczny

001919

1011001001101101000010110010011011010000

01000111111100110100011111110011

CSCS 00000000

IPIP++ ++

ADRES ADRES FIZYCZNYFIZYCZNY 1011011011101100001110110110111011000011

B2D60B2D60+ 47F3+ 47F3

B6EC3B6EC3 00HH=000=000BB

0 30 3 00

Page 62: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną użyte do O tym, które pary rejestrów segmentowych i wskaźnikowych zostaną użyte do określania adresu fizycznego nie decyduje przypadek lecz pewne regułyokreślania adresu fizycznego nie decyduje przypadek lecz pewne reguły

wskaźnik rozkazów (IP)wskaźnik rozkazów (IP) zawsze: rejestr segmentu programu (CS)zawsze: rejestr segmentu programu (CS)

wskaźnik stosu (SP)wskaźnik stosu (SP) zawsze: rejestr segmentu stosu (SS)zawsze: rejestr segmentu stosu (SS)

wskaźnik bazy (BP)wskaźnik bazy (BP) rejestr segmentu stosu (SS)rejestr segmentu stosu (SS)

pozostałe rejestrypozostałe rejestry rejestr segmentu danych (DS)rejestr segmentu danych (DS)

rejestr indeksowy rejestr indeksowy przeznaczenia (DI)przeznaczenia (DI)

rejestr dodatkowy (ES)rejestr dodatkowy (ES)

Page 63: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

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

mnożymy przez 16)mnożymy przez 16)

początek segmentu (zawartość rejestru segmentowego*16)początek segmentu (zawartość rejestru segmentowego*16)

PAMIĘĆPAMIĘĆ

1MB1MB adresowana adresowana komórka komórka pamięcipamięci

Adres Adres 0000000000HH

Adres Adres FFFFFFFFFFHH

64

kB

64

kB

początek segmentu początek segmentu (zawartość rejestru segmentowego*16)(zawartość rejestru segmentowego*16)

przesunięcie adres efektywny)przesunięcie adres efektywny)

okno przez które okno przez które widziana jest widziana jest

pamięćpamięć

Page 64: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie pokrywać.Segmenty mogą być rozłączne lub mogą się częściowo lub całkowicie pokrywać.Jest to sytuacja niepożądana - przyjęcie za bliskich adresów segmentowych może Jest to sytuacja niepożądana - przyjęcie za bliskich adresów segmentowych może spowodować np. zamazanie kodu programu przez zapisywane danespowodować np. zamazanie kodu programu przez zapisywane dane

PAMIĘĆPAMIĘĆ

Segment Segment programu (kodu)programu (kodu)

Segment danychSegment danych

Segment stosu i Segment stosu i danych danych

dodatkowychdodatkowych

CS=2A00CS=2A00HH

DS=41FFDS=41FFHH

SS=4FFFSS=4FFFHH

ES=4FFFES=4FFFHH

Obszar wspólny danych, stosu i Obszar wspólny danych, stosu i danych dodatkowychdanych dodatkowych

Obszar wspólny stosu i danych Obszar wspólny stosu i danych dodatkowychdodatkowych

Page 65: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE RZECZYWISTYMPRACA PROCESORA W TRYBIE RZECZYWISTYM

Segmenty pamięci komputera z procesorem 8086Segmenty pamięci komputera z procesorem 8086

LOGICZNY FIZYCZNY LOGICZNY FIZYCZNY

0H 0000H:0000H 00000H 0000H:FFFFH 0FFFFH Programy użytkownika1H 1000H:0000H 10000H 1000H:FFFFH 1FFFFH Programy użytkownika2H 2000H:0000H 20000H 2000H:FFFFH 2FFFFH Programy użytkownika3H 3000H:0000H 30000H 3000H:FFFFH 3FFFFH Programy użytkownika4H 4000H:0000H 40000H 4000H:FFFFH 4FFFFH Programy użytkownika5H 5000H:0000H 50000H 5000H:FFFFH 5FFFFH Programy użytkownika6H 6000H:0000H 60000H 6000H:FFFFH 6FFFFH Programy użytkownika7H 7000H:0000H 70000H 7000H:FFFFH 7FFFFH Programy użytkownika8H 8000H:0000H 80000H 8000H:FFFFH 8FFFFH Programy użytkownika9H 9000H:0000H 90000H 9000H:FFFFH 9FFFFH Programy użytkownikaAH A000H:0000H A0000H A000H:FFFFH AFFFFH Pamięć ekranuBH B000H:0000H B0000H B000H:FFFFH BFFFFH Pamięć ekranuCH C000H:0000H C0000H C000H:FFFFH CFFFFH BIOS-rozszerzenieDH D000H:0000H D0000H D000H:FFFFH DFFFFH BIOS-rozszerzenieEH E000H:0000H E0000H E000H:FFFFH EFFFFH BIOSFH F000H:0000H F0000H F000H:FFFFH FFFFFH BIOS

ADRES POCZĄTKU ADRES KOŃCANUMER ZASTOSOWANIE

adres logiczny adres logiczny zawartość rejestru segmentowego: przesunięcie zawartość rejestru segmentowego: przesunięcie

Page 66: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 2Gdyby szyna adresowa miała 32 bity wówczas fizycznie można by zaadresować do 2 3232=4GB pamięci=4GB pamięci

w systemach z procesorem Pentium procesor rozpoczyna pracę w trybie rzeczywistym, a przejście z w systemach z procesorem Pentium procesor rozpoczyna pracę w trybie rzeczywistym, a przejście z trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez ustawienie bitu PE w rejestrze trybu rzeczywistego do chronionego (wirtualnego) realizowane jest przez ustawienie bitu PE w rejestrze MSW (jest częścią rejestru sterującego CR0).MSW (jest częścią rejestru sterującego CR0).

Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. Wówczas pamięć Procesor wykorzystuje wówczas tzw. pamięć wirtualną tj. część pamięci masowej. Wówczas pamięć masowa jest przedłużeniem pamięci operacyjnej. masowa jest przedłużeniem pamięci operacyjnej.

Dlatego stosuje się następujący mechanizm pamięci wirtualnej:Dlatego stosuje się następujący mechanizm pamięci wirtualnej:

• do pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowejdo pamięci operacyjnej przepisuje się segmenty informacji z pamięci masowej

• program żąda dostępu do informacji podając adres wirtualny (logiczny)program żąda dostępu do informacji podając adres wirtualny (logiczny)

• sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej (informacja o sprawdzana jest obecność poszukiwanej informacji w pamięci operacyjnej (informacja o segmentach przechowywana jest w tablicy deskryptorów)segmentach przechowywana jest w tablicy deskryptorów)

• w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z dysku) do w przypadku braku poszukiwana informacja jest przepisywana z pamięci masowej (z dysku) do pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana informacji)pamięci operacyjnej (i z pamięci operacyjnej na dysk - wymiana informacji)

• obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu obliczany jest adres fizyczny potrzebnej informacji w pamięci operacyjnej - translacja adresu wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)wirtualnego na fizyczny (przy pomocy tablicy deskryptorów)

• poszukiwana informacja jest dostępna dla procesora z pamięci operacyjnejposzukiwana informacja jest dostępna dla procesora z pamięci operacyjnej

Przypomnijmy:Przypomnijmy:

Pamięć masowa (PM)Pamięć masowa (PM)

Pamięć operacyjna Pamięć operacyjna (PAO)(PAO)

duża pojemność, wolne działanie, niski kosztduża pojemność, wolne działanie, niski koszt

mała pojemność, szybkie działanie, wysoki kosztmała pojemność, szybkie działanie, wysoki koszt

Page 67: PODSTAWY ARCHITEKTURY KOMPUTERA

Adres logiczny w trybie chronionym składa się z: Adres logiczny w trybie chronionym składa się z: • 16 bitowej części segmentowej (selektor segmentu)16 bitowej części segmentowej (selektor segmentu)• 32 bitowego przemieszczenia (adres efektywny)32 bitowego przemieszczenia (adres efektywny)

Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na segmenty Dwuwymiarowa budowa adresu logicznego prowadzi do podziału pamięci na segmenty zwanego zwanego segmentacją przestrzeni logicznejsegmentacją przestrzeni logicznej..

Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 2Teoretycznie możliwe jest więc adresowanie przestrzeni logicznej o pojemności 24848 adresów adresów tj. 256TB pamięci. tj. 256TB pamięci. Nie wszystkie jednak bajty części segmentowej są wykorzystane do adresowania:Nie wszystkie jednak bajty części segmentowej są wykorzystane do adresowania:

• bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów bajty 0 - 13 wyznaczają numer deskryptora segmentu (tak na prawdę jeden z tych bitów określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k określa typ tablicy deskryptorów - lokalny lub globalny) co pozwala na wybór 16k deskryptorów segmentudeskryptorów segmentu

• bajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do pamięcibajty 14 - 15 określają poziom ochronny zadania żądającego dostępu do pamięcii przestrzeń adresów widzianych przez program wynosi 64TBi przestrzeń adresów widzianych przez program wynosi 64TB

Tablica zajmuje jeden segment o objętości 64kB. W tablicy deskryptorów występuje 8192 pól Tablica zajmuje jeden segment o objętości 64kB. W tablicy deskryptorów występuje 8192 pól (tzw. deskryptorów segmentów). Każdy deskryptor zawiera następujące pola:(tzw. deskryptorów segmentów). Każdy deskryptor zawiera następujące pola:

• adres bazowy segmentu (32 bity)adres bazowy segmentu (32 bity)• wielkość segmentu (20 bitów)wielkość segmentu (20 bitów) - segmenty nie muszą być jednakowe - segmenty nie muszą być jednakowe• atrybutyatrybuty• czy segment obecny fizycznie w pamięci (1 bit)czy segment obecny fizycznie w pamięci (1 bit)• pole dostępne dla programu (1 bit)pole dostępne dla programu (1 bit)• poziom ochronny (2 bity)poziom ochronny (2 bity)• ziarnistość segmentu (1 bit)ziarnistość segmentu (1 bit)• długość słowa (1 bit)długość słowa (1 bit)• czy segment w pamięci (1 bit)czy segment w pamięci (1 bit)• typ segmentu (3 bity)typ segmentu (3 bity)• czy segment użyty (1 bit)czy segment użyty (1 bit)

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

deskryptor segmentudeskryptor segmentu

deskryptor segmentudeskryptor segmentu

deskryptor segmentudeskryptor segmentu

Tablica deskryptorówTablica deskryptorów

......

Page 68: PODSTAWY ARCHITEKTURY KOMPUTERA

++

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Selektor segmentuSelektor segmentu

0013131515

PAMIĘĆ PAMIĘĆ OPERACYJNA (PAO)OPERACYJNA (PAO)

Tablica deskryptorówTablica deskryptorów

deskryptordeskryptor

Adres efektywny (przemieszczenie)Adres efektywny (przemieszczenie)

003131

Adres bazowyAdres bazowy

seg

men

tse

gm

ent

seg

men

tse

gm

ent

Ad

res

fizy

czn

yA

dre

s fi

zycz

ny

Jeśli w deskryptorze istnieje adnotacja, że segmentu nie ma w Jeśli w deskryptorze istnieje adnotacja, że segmentu nie ma w PAO to segment jest przenoszony z pamięci masowej do PAO to segment jest przenoszony z pamięci masowej do operacyjnej w miejsce innego segmentuoperacyjnej w miejsce innego segmentu

Adres logiczny - 46 bitówAdres logiczny - 46 bitów

Page 69: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYM

Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na Algorytm tworzenia (obliczania) 32 bitowego adresu fizycznego na podstawie adresu logicznegopodstawie adresu logicznego

1. Program odwołuje się do adresu logicznego składającego się z:1. Program odwołuje się do adresu logicznego składającego się z:• selektora segmentuselektora segmentu• adresu efektywnego (przemieszczenia)adresu efektywnego (przemieszczenia)

2. Selektor wskazuje określony deskryptor segmentu w tablicy deskryptorów2. Selektor wskazuje określony deskryptor segmentu w tablicy deskryptorów

3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. Jeśli nie to 3. Jedno z pól deskryptora określa czy segment jest obecny w PAO. Jeśli nie to następuje wczytanie segmentu do PAO z pamięci masowej.następuje wczytanie segmentu do PAO z pamięci masowej.Z deskryptora można określić również:Z deskryptora można określić również:

• adres początku segmentu = adres bazowyadres początku segmentu = adres bazowy• adres końca segmentu = adres bazowy + wielkość segmentuadres końca segmentu = adres bazowy + wielkość segmentu

Jeśli przemieszczenie będzie większe od wielkości segmentu to procesor nie Jeśli przemieszczenie będzie większe od wielkości segmentu to procesor nie dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu dopuści do zamazania sąsiednich segmentów przechodząc w tryb obsługi błędu (tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym (tzw. wyjątek) - to jest przewaga trybu wirtualnego nad rzeczywistym

4. Odczytanie z deskryptora adresu bazowego i dodanie do niego przemieszczenia 4. Odczytanie z deskryptora adresu bazowego i dodanie do niego przemieszczenia (adresu efektywnego) w celu określenia adresu fizycznego poszukiwanej komórki (adresu efektywnego) w celu określenia adresu fizycznego poszukiwanej komórki pamięci.pamięci.

Page 70: PODSTAWY ARCHITEKTURY KOMPUTERA

MECHANIZM PAMIĘCI WIRTUALNEJMECHANIZM PAMIĘCI WIRTUALNEJPODSUMOWANIEPODSUMOWANIE

Mechanizm pamięci wirtualnej polega na tym, że nie cała przestrzeń adresów logicznych Mechanizm pamięci wirtualnej polega na tym, że nie cała przestrzeń adresów logicznych widzianych przez zadanie ma swoje oparcie w pamięci fizycznej. widzianych przez zadanie ma swoje oparcie w pamięci fizycznej.

Przestrzeń adresów logicznych (selektor segmentu: przemieszczenie) odwołujących się Przestrzeń adresów logicznych (selektor segmentu: przemieszczenie) odwołujących się do potrzebnych zadaniu segmentów kodu, danych i stosu jest odwzorowywana na 4GB do potrzebnych zadaniu segmentów kodu, danych i stosu jest odwzorowywana na 4GB przestrzeń 32 bitowych adresów liniowych, z których wszystkie mogą być użyte w przestrzeń 32 bitowych adresów liniowych, z których wszystkie mogą być użyte w zadaniu.zadaniu.

Jednak ta przestrzeń nie może być cała zrealizowana w fizycznej pamięci komputera. Jednak ta przestrzeń nie może być cała zrealizowana w fizycznej pamięci komputera. Dlatego w praktyce zostaje podzielona na 1M stron i tylko część spośród nich jest Dlatego w praktyce zostaje podzielona na 1M stron i tylko część spośród nich jest jednocześnie przechowywana w pamięci fizycznej. jednocześnie przechowywana w pamięci fizycznej.

Zarządzaniem przeładowywaniem stron pomiędzy dyskiem i pamięcią operacyjną zajmuje Zarządzaniem przeładowywaniem stron pomiędzy dyskiem i pamięcią operacyjną zajmuje się system operacyjny za pomocą funkcji wykonywanych przez procesor w trybie tzw. się system operacyjny za pomocą funkcji wykonywanych przez procesor w trybie tzw. wyjątku procesora (tzn. przerwania generowanego przez sam procesor).wyjątku procesora (tzn. przerwania generowanego przez sam procesor).

Page 71: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA WIELOZADANIOWA W SYSTEMIE JEDNOPROCESOROWYMPRACA WIELOZADANIOWA W SYSTEMIE JEDNOPROCESOROWYM

Praca wielozadaniowa polega na przełączaniu zadań.Praca wielozadaniowa polega na przełączaniu zadań.

1. Procesor realizuje zadanie do momentu:1. Procesor realizuje zadanie do momentu:

• upływu czas przeznaczonego na realizację zadaniaupływu czas przeznaczonego na realizację zadania

• w którym chwilowo brak określonych informacjiw którym chwilowo brak określonych informacji

• żądania zmiany zadania przez użytkownikażądania zmiany zadania przez użytkownika

2. Zapamiętanie stanu realizacji zadania2. Zapamiętanie stanu realizacji zadania

3. Zmiana wykonywanego zadania3. Zmiana wykonywanego zadania

itd.....itd.....

Istnieje konieczność kontroli dostępu poszczególnych zadań do:Istnieje konieczność kontroli dostępu poszczególnych zadań do:

• informacjiinformacji

• zasobów systemuzasobów systemu

Wielozadaniowość może być realizowana programowo, ale Wielozadaniowość może być realizowana programowo, ale procesor Pentium realizuje to sprzętowo wykorzystując procesor Pentium realizuje to sprzętowo wykorzystując

• systemowe segmenty stanu zadania (TSS)systemowe segmenty stanu zadania (TSS)

• rejestr zadań (TR)rejestr zadań (TR)

Page 72: PODSTAWY ARCHITEKTURY KOMPUTERA

STRONICOWANIESTRONICOWANIE

W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu segmentacji, W procesorze Pentium pracującym w trybie wirtualnym, oprócz mechanizmu segmentacji, dostępny jest także mechanizm stronicowania.dostępny jest także mechanizm stronicowania.

Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o stałej Mechanizm stronicowania pozwala na podział pamięci wirtualnej na strony o stałej wielkości (4kB lub 4MB)wielkości (4kB lub 4MB)

Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze sterującym CR0Mechanizm stronicowania ustawia się przy pomocy bitu PG w rejestrze sterującym CR0

Mechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenieMechanizm stronicowania wspomaga się pomocniczą pamięcią cache - przyspieszenie

pozycja w katalogu stronpozycja w katalogu stron pozycja w tablicy stronpozycja w tablicy stron pozycja na stroniepozycja na stronie11111212 00212122223131

adres tablicy stronadres tablicy stron adres strony w pamięciadres strony w pamięci adres strony w pamięciadres strony w pamięci

wybiera tabelę stronwybiera tabelę stron

wybiera stronę w pamięciwybiera stronę w pamięci

katalog stronkatalog strontabele strontabele stron 4kB strony w 4kB strony w

pamięcipamięci

......

11

10241024

11 10241024

11

10241024

11

10241024

11

22

1M1M

Page 73: PODSTAWY ARCHITEKTURY KOMPUTERA

STRONICOWANIESTRONICOWANIE

pozycja w katalogu stronpozycja w katalogu stron pozycja na stroniepozycja na stronie00212122223131

adres strony w pamięciadres strony w pamięci wybiera stronę w pamięciwybiera stronę w pamięci

katalog stronkatalog stron 4MB strony w 4MB strony w pamięcipamięci

11

10241024

dla stron 4MBdla stron 4MB

11

22

1k1k

Page 74: PODSTAWY ARCHITEKTURY KOMPUTERA

Dodatki

Page 75: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)

Numer blokuNumer bloku

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

Deskryptor bloku 5Deskryptor bloku 5

000000

001001

010010

011011

100100

101101

110110

111111

011011

00

11

22

33

44

55

66

77

8M

B8

MB

PAMIĘĆPAMIĘĆ MASOWA MASOWA

1MB1MB

1MB1MB

55

33

PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA

Adres bazowy w PAO

Bit obecności

NR deskryptora (nr bloku w PM)

0 000

0 001

0 010

100000H 1 011

0 100

000000H 1 101

0 110

0 111

Deskryptor bloku 3Deskryptor bloku 3

2020 00

000000H000000H

0FFFFFH0FFFFFH100000H100000H

1FFFFFH1FFFFFH

Adresy Adresy pamięcipamięci

Tablica deskryptorówTablica deskryptorów

1111111111111111111111111111111111111111 = 3FFFFFH= 3FFFFFH

202022 0000

selektorselektor przesunięcieprzesunięcie

100000H100000H

FFFFFHFFFFFH++

1FFFFFH1FFFFFHAdres fizyczny =Adres fizyczny =

23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej realizowanemu programowi. 23 bitowy adres pozwala zaadresować 8MB pamięci wirtualnej przydzielonej realizowanemu programowi.

Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i tablicę Pamięć operacyjna posiada 2MB pojemności (pomijając obszar na system operacyjny i tablicę deskryptorów), więc adres fizyczny jest 21 bajtowydeskryptorów), więc adres fizyczny jest 21 bajtowy

Adres bazowy w PAOAdres bazowy w PAO

PrzesunięciePrzesunięcie

Page 76: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)

1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego się z:1. Program odwołuje się do adresu wirtualnego 3FFFFFH składającego się z:

• pola selektora: w którym bloku programu znajduje się informacja czyli pola selektora: w którym bloku programu znajduje się informacja czyli którego deskryptora użyć?którego deskryptora użyć?

• przesunięcia: jak daleko od początku bloku znajduje się informacja?przesunięcia: jak daleko od początku bloku znajduje się informacja?

2. Selektor (w naszym przypadku) zawiera informację o bloku nr 32. Selektor (w naszym przypadku) zawiera informację o bloku nr 3

3. Czy blok nr 3 jest w PAO? Czy bit obecności jest równy „1”? - w tym przypadku 3. Czy blok nr 3 jest w PAO? Czy bit obecności jest równy „1”? - w tym przypadku jest ! jest !

4. Odczytywany jest adres bazowy bloku w PAO4. Odczytywany jest adres bazowy bloku w PAO

5. Do adresu bazowego dodawane jest przesunięcie z adresu wirtualnego5. Do adresu bazowego dodawane jest przesunięcie z adresu wirtualnego

5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod którym znajduje 5. Otrzymany 21 bitowy adres jest adresem fizycznym w PAO, pod którym znajduje się poszukiwana informacja się poszukiwana informacja

Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na Algorytm tworzenia (obliczania) 21 bitowego adresu fizycznego na podstawie 23 bitowego adresu wirtualnegopodstawie 23 bitowego adresu wirtualnego

Gdy nie ma to realizowane są dodatkowe Gdy nie ma to realizowane są dodatkowe czynnościczynności

Page 77: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMprzykład dla procesora 80286 (najprostszy)przykład dla procesora 80286 (najprostszy)

3.1. Bloku nr 7 nie ma w PAO3.1. Bloku nr 7 nie ma w PAO3.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 33.2. Blok nr 7 wczytany jest do PAO w miejsce np. bloku nr 33.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku3.3. Modyfikowane są deskryptory usuniętego i załadowanego bloku

Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego Algorytm dodatkowych czynności tworzenia (obliczania) 21 bitowego adresu fizycznego na podstawie 23 bitowego adresu wirtualnegoadresu fizycznego na podstawie 23 bitowego adresu wirtualnego

Numer blokuNumer bloku

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

1MB1MB

000000

001001

010010

011011

100100

101101

110110

111111

111111

00

11

22

33

44

55

66

77

8M

B8

MB

PAMIĘĆPAMIĘĆ MASOWA MASOWA

1MB1MB

1MB1MB

55

77

PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA

Adres bazowy w PAO

Bit obecności

NR deskryptora (nr bloku w PM)

0 000

0 001

0 010

100000H 0 011

0 100

000000H 1 101

0 110

100000H 1 111

2020 00

000000H000000H

0FFFFFH0FFFFFH100000H100000H

1FFFFFH1FFFFFH

Adresy Adresy pamięcipamięci

Tablica deskryptorówTablica deskryptorów

111100000000000000000111100000000000000000 = 7F0000H= 7F0000H

202022 0000

selektorselektor przesunięcieprzesunięcie

100000H100000H

F0000HF0000H++

1F0000H1F0000HAdres fizyczny =Adres fizyczny =

Adres bazowy w PAOAdres bazowy w PAO

PrzesunięciePrzesunięcie

Page 78: PODSTAWY ARCHITEKTURY KOMPUTERA

PRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMPRACA PROCESORA W TRYBIE WIRTUALNYM CHRONIONYMdla procesora Pentiumdla procesora Pentium

Selektorem wybierającym odpowiednią pozycję w tablicy deskryptorów jest Selektorem wybierającym odpowiednią pozycję w tablicy deskryptorów jest zawartość rejestru segmentowego (14 bitów a 2 bity określają poziom ochrony). zawartość rejestru segmentowego (14 bitów a 2 bity określają poziom ochrony).

Umożliwia to wybór 2Umożliwia to wybór 21414=16384=16k segmentów.=16384=16k segmentów.

Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 2Przesunięcie stanowi 32 bity więc rozmiar segmentu wynosi 23232=4GB=4GB

Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k Tak więc wielkość przestrzeni pamięci wirtualnej wynosi 16k xx 4GB=64TB 4GB=64TB

PAMIĘĆPAMIĘĆ OPERACYJNA OPERACYJNA

Tablica deskryptorówTablica deskryptorów

Deskryptor segmentuDeskryptor segmenturejestr segmentowyrejestr segmentowy

przesunięcieprzesunięcie3131001515 00

adres efektywnyadres efektywny

003131

++

adres fizycznyadres fizyczny

003131

1313

selektorselektor

Adres logiczny- 46 bitówAdres logiczny- 46 bitów

adres bazowy adres bazowy segmentusegmentu

Page 79: PODSTAWY ARCHITEKTURY KOMPUTERA

Koniec Dodatki

Page 80: PODSTAWY ARCHITEKTURY KOMPUTERA

KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)

dr inż. Jacek FLOREK dr inż. Jacek FLOREK Instytut InformatykiInstytut Informatyki

Architektura komputera z pamięcią cacheArchitektura komputera z pamięcią cache

Elementy systemu pamięci cacheElementy systemu pamięci cache

Organizacja pamięci cacheOrganizacja pamięci cache

13

Page 81: PODSTAWY ARCHITEKTURY KOMPUTERA

KONCEPCJA PAMIĘCI PODRĘCZNEJ KONCEPCJA PAMIĘCI PODRĘCZNEJ (CACHE)(CACHE)

Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.Koncepcja ta jest podobna do koncepcji pamięci wirtualnej.

Przypomnijmy: Przypomnijmy:

• pamięci statyczne są szybsze, droższe, pobierają więcej energii i są pamięci statyczne są szybsze, droższe, pobierają więcej energii i są

trudniejsze do scalaniatrudniejsze do scalania

• pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej energii i pamięci dynamiczne są wolniejsze, tańsze, pobierają mniej energii i

są łatwiejsze do scalaniasą łatwiejsze do scalania

Wniosek 1Wniosek 1: nie jest możliwe zbudowanie całej pamięci operacyjnej z : nie jest możliwe zbudowanie całej pamięci operacyjnej z

pamięci statycznych, a pamięci dynamiczne są za wolne dla pamięci statycznych, a pamięci dynamiczne są za wolne dla

współczesnych procesorów i częstotliwości zegarawspółczesnych procesorów i częstotliwości zegara

Wniosek 2Wniosek 2: wprowadza się dużą pamięć operacyjną (rzędu kilka lub : wprowadza się dużą pamięć operacyjną (rzędu kilka lub

kilkaset MB) zbudowaną z pamięci dynamicznych i małą (kilka kilkaset MB) zbudowaną z pamięci dynamicznych i małą (kilka

kilkaset kB) pamięć podręczną - statyczną - znacznie szybszą kilkaset kB) pamięć podręczną - statyczną - znacznie szybszą

(wraz ze sterownikiem)(wraz ze sterownikiem)

Wniosek 3Wniosek 3: dwa rodzaje architektury:: dwa rodzaje architektury:• Look-troughLook-trough• Look-asideLook-aside

Page 82: PODSTAWY ARCHITEKTURY KOMPUTERA

ARCHITEKTURA LOOK-THROUGHARCHITEKTURA LOOK-THROUGH

W przypadku „chybienia”W przypadku „chybienia” wykorzystywana jest wykorzystywana jest magistrala główna z magistrala główna z koniecznymi stanami koniecznymi stanami oczekiwaniaoczekiwania

CACHECACHE

PAMIĘĆ PAMIĘĆ

OPERACYJNAOPERACYJNA

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

MIKROPROCESORMIKROPROCESORW przypadku „trafienia”W przypadku „trafienia” główna magistrala danych główna magistrala danych nie jest wykorzystywana co nie jest wykorzystywana co dodatkowo przyspiesza dodatkowo przyspiesza pracę systemu (z pracę systemu (z magistrali głównej mogą w magistrali głównej mogą w tym czasie korzystać inni tym czasie korzystać inni zarządcy).zarządcy).

Magistrala lokalnaMagistrala lokalna

Mag

istr

ala

głó

wn

aM

agis

tral

a g

łów

na

Page 83: PODSTAWY ARCHITEKTURY KOMPUTERA

ARCHITEKTURA LOOK-ASIDEARCHITEKTURA LOOK-ASIDE

Zalety:Zalety:• prostsza konstrukcjaprostsza konstrukcja• szybsza realizacja w szybsza realizacja w

przypadku chybieniaprzypadku chybieniaWady:Wady:

• nawet przy trafieniu nawet przy trafieniu magistrala nie jest magistrala nie jest dostępna dla innych dostępna dla innych zarządcówzarządców

CACHECACHE

PAMIĘĆ PAMIĘĆ

OPERACYJNAOPERACYJNA

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

MIKROPROCESORMIKROPROCESOR

W przypadku W przypadku „trafienia” i „chybienia”„trafienia” i „chybienia” główna magistrala główna magistrala danych jest stale danych jest stale wykorzystywana.wykorzystywana.

Mag

istr

ala

głó

wn

aM

agis

tral

a g

łów

na

Page 84: PODSTAWY ARCHITEKTURY KOMPUTERA

ELEMENTY SYSTEMU PAMIĘCI CACHEELEMENTY SYSTEMU PAMIĘCI CACHE

• Bank danych pamięci cacheBank danych pamięci cache (pamięć danych) (pamięć danych)

przechowuje, umożliwia zapisywanie i odczytywanie informacji przechowuje, umożliwia zapisywanie i odczytywanie informacji

• Katalog pamięci cacheKatalog pamięci cache (zwany TAG-RAMem) (zwany TAG-RAMem)

umożliwia szybkie sprawdzanie czy poszukiwana informacja znajduje umożliwia szybkie sprawdzanie czy poszukiwana informacja znajduje

się w pamięci danych cache (konkretnie: czy dany adres jest się w pamięci danych cache (konkretnie: czy dany adres jest

odwzorowany w pamięci cache)odwzorowany w pamięci cache)

• Sterownik pamięci cacheSterownik pamięci cache

realizuje sprawdzenie adresu w katalogu pamięci cache, organizuje realizuje sprawdzenie adresu w katalogu pamięci cache, organizuje

współpracę pamięci cache z systemem i zapewnia zgodność współpracę pamięci cache z systemem i zapewnia zgodność

zawartości pamięci cache z pamięcią głównązawartości pamięci cache z pamięcią główną

Page 85: PODSTAWY ARCHITEKTURY KOMPUTERA

ZAPEWNIENIE ZGODNOŚCI PAMIĘCI CACHEZAPEWNIENIE ZGODNOŚCI PAMIĘCI CACHE

Przyczyny niezgodności: Przyczyny niezgodności:

• nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w przypadku nastąpił zapis do pamięci cache bez zapisu do pamięci głównej (w przypadku trafienia przy zapisie do pamięci)trafienia przy zapisie do pamięci)

• nastąpił zapis do pamięci głównej bez zapisu do pamięci cache (gdy z nastąpił zapis do pamięci głównej bez zapisu do pamięci cache (gdy z magistrali głównej korzystał inny zarządca magistrali niż procesor np. magistrali głównej korzystał inny zarządca magistrali niż procesor np. transmisja DMA do pamięci głównej)transmisja DMA do pamięci głównej)

Strategie utrzymania zgodności: Strategie utrzymania zgodności:

• Write-through (zapis do pamięci cache powoduje jednoczesny zapis do Write-through (zapis do pamięci cache powoduje jednoczesny zapis do pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się informacje pamięci głównej - proste ale zmniejsza szybkość, bo zpisuje się informacje do wolnej pamięci głównej)do wolnej pamięci głównej)

• Buforowane (opóźnione) write-through (jak wyżej ale zapis do bufora i Buforowane (opóźnione) write-through (jak wyżej ale zapis do bufora i dopiero później z bufora do pamięci głównej aby nie spowalniać pracy)dopiero później z bufora do pamięci głównej aby nie spowalniać pracy)

• Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka potrzeba Write-back (zawartości obu pamięci są uzgadniane gdy zajdzie taka potrzeba - operacje bardzo skomplikowane)- operacje bardzo skomplikowane)

Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w pamięci cache, Pewne obszary w pamięci głównej nie mogą być odzwierciedlone w pamięci cache, gdyż nie jest możliwe zapewnienie zgodności, np. obszar pamięci RAM karty gdyż nie jest możliwe zapewnienie zgodności, np. obszar pamięci RAM karty sieciowej, gdzie zapis może realizować procesor przez magistralę systemową jak i sieciowej, gdzie zapis może realizować procesor przez magistralę systemową jak i sterownik sieci (nie ma możliwości śledzenia magistrali sieci). W systemie muszą sterownik sieci (nie ma możliwości śledzenia magistrali sieci). W systemie muszą więc istnieć układy NCA (więc istnieć układy NCA (non-cachable accessnon-cachable access) uniemożliwiające niektóre zapisy do ) uniemożliwiające niektóre zapisy do pamięci cache.pamięci cache.

Page 86: PODSTAWY ARCHITEKTURY KOMPUTERA

ORGANIZACJA PAMIĘCI CACHEORGANIZACJA PAMIĘCI CACHE

Zestaw 1Zestaw 1

Strona 1Strona 1

Strona 0Strona 0

Strona 0Strona 0

Zestaw 2Zestaw 2

Zestaw 3Zestaw 3

Zestaw 4Zestaw 4

Zestaw 5Zestaw 5

Zestaw 1Zestaw 1

Zestaw 2Zestaw 2

Zestaw 3Zestaw 3

Zestaw 4Zestaw 4

Zestaw 5Zestaw 5

Zestaw 1Zestaw 1

Zestaw 2Zestaw 2

Zestaw 3Zestaw 3

Zestaw 4Zestaw 4

Zestaw 5Zestaw 5

Zestaw 1Zestaw 1

Zestaw 2Zestaw 2

Zestaw 3Zestaw 3

Zestaw 4Zestaw 4

Zestaw 5Zestaw 5

Strona 1Strona 1

Strona 0Strona 0

Strona 2Strona 2

Dane 1Dane 1

Dane 2Dane 2

Dane 3Dane 3

Dane 3Dane 3

Dane 2Dane 2

Dane 4Dane 4

Dane 1Dane 1O1O1

O2O2

O3O3

Katalog cache Katalog cache (TAG-RAM)(TAG-RAM)

Bank cacheBank cache

O4O4

Dane 4Dane 4Strona 2Strona 2

• Bank danych i katalog pamięci cache (TAG-Bank danych i katalog pamięci cache (TAG-RAM) tworzą tzw. jednoblokową pamięć RAM) tworzą tzw. jednoblokową pamięć asocjacyjnąasocjacyjną

• Pamięć cache stanowi jeden blok Pamięć cache stanowi jeden blok podzielony na zestawypodzielony na zestawy

• Pamięć główna dzielona jest na strony o Pamięć główna dzielona jest na strony o rozmiarze równym rozmiarowi bloku rozmiarze równym rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci cache. Strony podobnie jak blok pamięci cache dzielone są na zestawypamięci cache dzielone są na zestawy

• Każdy zestaw w pamięci cache ma swoją Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-RAM) - zawiera pozycję w katalogu (TAG-RAM) - zawiera adres skąd pochodzi dany zestawadres skąd pochodzi dany zestaw

• Każdy zestaw jest wpisywany na miejsce w Każdy zestaw jest wpisywany na miejsce w pamięci cache do zestawu o numerze pamięci cache do zestawu o numerze zgodnym z numerem zestawu w stroniezgodnym z numerem zestawu w stronie

Pamięć głównaPamięć główna

Page 87: PODSTAWY ARCHITEKTURY KOMPUTERA

ORGANIZACJA PAMIĘCI CACHEORGANIZACJA PAMIĘCI CACHE

• Bank danych i katalog pamięci cache (TAG-RAM) tworzą tzw. Bank danych i katalog pamięci cache (TAG-RAM) tworzą tzw.

jednoblokową pamięć asocjacyjnąjednoblokową pamięć asocjacyjną

• Pamięć cache stanowi jeden blok podzielony na zestawyPamięć cache stanowi jeden blok podzielony na zestawy

• Pamięć główna dzielona jest na strony o rozmiarze równym Pamięć główna dzielona jest na strony o rozmiarze równym

rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci rozmiarowi bloku pamięci cache. Strony podobnie jak blok pamięci

cache dzielone są na zestawycache dzielone są na zestawy

• Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-Każdy zestaw w pamięci cache ma swoją pozycję w katalogu (TAG-

RAM) - zawiera adres skąd pochodzi dany zestawRAM) - zawiera adres skąd pochodzi dany zestaw

• Każdy zestaw jest wpisywany na miejsce w pamięci cache do Każdy zestaw jest wpisywany na miejsce w pamięci cache do

zestawu o numerze zgodnym z numerem zestawu w stroniezestawu o numerze zgodnym z numerem zestawu w stronie

Page 88: PODSTAWY ARCHITEKTURY KOMPUTERA

PAMIĘĆ CACHE DRUGIEGO POZIOMUPAMIĘĆ CACHE DRUGIEGO POZIOMU

Pamięć cache (zwłaszcza typu Look-through) możer występować:Pamięć cache (zwłaszcza typu Look-through) możer występować:• wewnątrz procesora - pamięć cache pierwszego poziomu (L1- lovel 1),wewnątrz procesora - pamięć cache pierwszego poziomu (L1- lovel 1),• pamięć zewnętrzna - pamięć drugiego poziomu (L2).pamięć zewnętrzna - pamięć drugiego poziomu (L2).

Pamięć tego typu pojawiła się po raz pierwszy w procesorach 80486.Pamięć tego typu pojawiła się po raz pierwszy w procesorach 80486.Pamięć L2 jest znacznie większa od L1, dzięki czemu jeśli nie nastąpiło Pamięć L2 jest znacznie większa od L1, dzięki czemu jeśli nie nastąpiło „trafienie” w pamięci L1 to istnieje duża szansa trafienia do L2 (oczywiście „trafienie” w pamięci L1 to istnieje duża szansa trafienia do L2 (oczywiście informacja z pamięci L1 znajduje się w pamięci L2) - przyspiesza to pracę informacja z pamięci L1 znajduje się w pamięci L2) - przyspiesza to pracę systemu.systemu.

PAMIĘĆ PAMIĘĆ

OPERACYJNAOPERACYJNA

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

ZARZĄDCA ZARZĄDCA MAGISTRALMAGISTRAL

8048680486

Ma

gis

tra

la g

łów

na

Ma

gis

tra

la g

łów

na

CACHE 1-go poziomuCACHE 1-go poziomu

Blok sterowania magistraląBlok sterowania magistralą

Syg

nał

y st

eru

jące

Syg

nał

y st

eru

jące

CACHE 2-go poziomuCACHE 2-go poziomu

Magistrala lokalnaMagistrala lokalna

Układy Układy logiczne logiczne

NCANCA

Sygnały sterująceSygnały sterujące