ARCHITEKTURA KOMPUTEROW id 6779 Nieznany (2)

background image

WYKŁAD:

ARCHITEKTURA KOMPUTERÓW

I PROGRAMOWANIE NISKOPOZIOMOWE

prof. Adam Dąbrowski

II semestr

Literatura:

W. Stallings “Organizacja i architektura systemu komputerowego – projektowanie systemów, a
jego wydajność.”

A. Rydzewski “Mikrokomputery jednoukładowe rodziny MCS-51.”

P. Gałka “Podstawy programowania mikrokontrolera 8051”

P. Metzger “Anatomia PC – architektura komputerów zgodnych z IBM PC”

opracował Marcin Ossowski (majestic.ni@poczta.fm)

1

background image

Mikroprocesory:

mikrokomputer = mikroprocesor + RAM + ROM + urządzenia we/wy,

mikrokontroler – nie potrebuje RAM i urządzeń we/wy, wystarczy mikroprocesor i program w
pamięci ROM. Jest to mikroprocesor, który jest przystosowany do niewielkich wymagań. Jest bez
radiatora, bo nie ma wielkich mocy (mW). Stosowany do kontroli prostych urządzeń. Nie wymaga
szybkich i dużych obliczeń,

procesor – liczy się moc obliczeniowa, nie rozmiar i prąd – służą do budowy PC,

procesory sygnałowe – urządzenia małej mocy. Przetwarzają głos lub obraz. Wykonują duże
obliczenia, długie słowa, zegar nie może być zbyt duży. Używany np. w telefonach
komórkowych. Dlatego sygnałowy, bo przetwarza sygnał.

Architektura komputerów – opis budowy systemu komputerowego, który odnosi się do atrybutów
systemu widzialnych dla programisty (organizacja jednostki arytmetyczno-logicznych (ALU), lista
rozkazów, metody organizacji pamięci i mechanizmów wejścia i wyjścia).
Organizacja komputerów – opis budowy systemu komputerowego, który odnosi się do atrybutów
niewidzialnych dla programisty (rozwiązania sprzętowe wynikające z zastosowania technologii
eletronicznej, sygnały i układy sterujące, interfejsy między komputerem a urządzeniami
peryferyjnymi).
Assembler – kompilator, język assemblera – język zrozumiały dla assemblera.
Assemblacja – przetwarzanie języka assemblera na język wewnętrzny. Deassemblacja – odwrotnie
do assemblacji.
Struktura komputera – opis wzajemnego, hierarchicznego powiązania składników systemu
komputerowego.
Algebra Boole'a
Bramka AND – operacja ma dwa sygnały wejściowe. Jeśli sygnał na wyjściu jest, to na obu
wejściach jest wysoki. Jeżeli na jednym wejściu jest niski, to wyjściu też jest niski.

X

Y

Z

0

0

0

0

1

0

1

0

0

1

1

1

Bufor – nie wnosi informacji do sygnału. Służy do tego, żeby móc dostarczyć do wielu wejść innych
układów w sposób jaknajmniej zniekształcony.

X

Z

0

0

1

1

Inwerter – tak jak bufor, ale neguje sygnał, czyli NOT.

X

Z

0

1

1

0

2

X

Y

Z

X

Z

X

Z

background image

Bramka NAND – czyli AND + NOT (inwerter)

X

Y

Z

0

0

1

0

1

1

1

0

1

1

1

0

Bramka OR – czyli lub.

X

Y

Z

0

0

0

0

1

1

1

0

1

1

1

1

Bramka NOR – czyli OR + NOT.

X

Y

Z

0

0

1

0

1

0

1

0

0

1

1

0

Bramka EXCLUSIVE OR – XOR

X

Y

Z

0

0

0

0

1

1

1

0

1

1

1

0

Jeśli nadamy wartości to XOR może być interpretowane do arytmetyki dodawania bitów i z bramki
AND można zbudować najprostszy sumator.

Bufor trójstarowy – na wyjściu jest to samo co na wyjściu, jeżeli bramka jest włączona.

3

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

background image

Działanie komputera

Komputer realizuje 4 funkcje:

przetwarzanie danych,

przechowywanie danych,

przenoszenie danych,

sterowanie.

Główne składniki strukturalne komputera:

procesor CPU – przetwarza dane – steruje działaniem komputera:

jednostka arytmetyczno-logiczna – ALU,

rejestry podręczne – przechowuje chilowo dane,

jednostka sterująca – steruje działaniem procesora,

połączenia (szyny) – zapewniają łączność między składnikami procesora.

pamięć główna – przechowuje dane,

urządzenia we/wy – komunikacja z użytkownikiem,

połączenia systemowe – zapewniają łączność między procesorem, pamięcią a urządzeniami
we/wy.

Generacje komputerów
I generacja 1946-1957, na lampach elektronowych (40 000 operacji/s)
II generacja 1958-1964, technologia dyskretnych układów tranzystorowych (200 000 operacji/s)
III generacja 1965-1970 (1 000 000 operacji/s)
IV generacja 1971-1977 zastosowanie mikroprocesorów 4- i 8-bitowych – wielka skala integracji
V generacja i dalsze 1978 + zastosowanie mikroprocesorów 16-bitowych, opracowanie PC,
mikroprocesory wielobitowe, procesory sygnałowe, system multimedialny, bardzo wielka skala
integracji.

4

środowisko
użytkowe

urządzenie do
transmisji danych

urządzenie
sterujące

urządzenie do
przechowywania danych

urządzenie do

przetwarzania danych

background image

Procesory Intela
8080
– pierwszy na świecie mikroprocesor ogólnego przeznaczenia. Było to urządzenie 8-biotwe z
8-bitową ścieżką do pamięci. (8 bitów – za mała długość do obliczeń)
8086 – daleko potężniejsze 16-bitowe urządzenie. Poza szerszą ścieżką danych i większymi
rejestrami mikroprocesor 8086 zawiera podręczną pamięć rozkazów, która poprawia szybkość
obliczeń
80286 – stanowi rozszerzenie mikroprocesora 8086 umożliwiające adresowanie 16MB pamięci,
zamiast poprzednio 1MB
80386 – pierwsze 32-bitowe urządzenie Intela jednocześnie znaczne odnowienie linii procesorów
(komputery z tymi procesorami zaczęły konkurować pod względem wydajności ze specjalistycznymi
maszynami)
80486 – w tym mikroprocesorze wprowadzono bardziej złożoną i potężną technikę pamięci
podręcznej, a także wyrafinowane potoki rozkazów
Pentium – wraz z Pentium wprowadzono do użytku techniki superskalarne co umożliwiło
równoległe wykonywanie wielu rozkazów
P6 – procesor, który stanowi kontynuację prac nad organizacją superskalarną, którą rozpoczął
procesor Pentium, ponadto szeroko jest wykorzystywane przewidywanie (predykcja) rozgałęzień,
analiza przepływu danych
P7 – RISC – procesor o zredukowanej liście rozkazów, wykonywanie skomplikowanych obliczeń
poprzez złożenie prostych rozkazów, jest łatwiej przewidzieć szybkość obliczeń i ją zwiększyć

MIPS (millions instructions per second) – milion instrukcji na sekundę
Najwydajniejsze współczesne procesory mają ok. kilku tysięcy MIPS (np. AMD Athlon XP 2000+
ma ponad 6200 MIPS)

Liczby w postaci kodów:

binarnym,

ósemkowym, grupujemy bity po 3 począwszy od najmniej znaczącego bitu

4 010

101

¿

2

LSB less significant bit (najmniej znaczący bit)

MSB most significant bit (najbardziej znaczący bit),

szesnastkowy, z systemu binarnego grupujemy po 4 bity począwszy od najmniej
znaczącego bitu

1011

B

16

3

1111

F

16

2

0110

6

16

1

0010

2

16

0

hexadecymalna reprezentacja

wzrost jest logarytmiczny
A – 1010 wart 10
B – 1011 wart 11
C – 1100 wart 12
D – 1101 wart 13
E – 1110 wart 14
F – 1111 wart 15

Chaotyczne zmiany

zmiany szumowe
Gdy na poziomie najmniej znaczącego bitu dołożymy bit to zakres nam
wzrośnie dwukrotnie.

2

n

– zakres liczby

2

3

– 3-bitowa wartość

ucho reaguje na zakres 100 decybeli
aby reprezentować barwy, 3 barwy 3*8dB=24bity

5

400

200
120

60

5

10

15

20

zakres dynamiczny

(zmienny przecinek)

zakres liniowy

(stały przecinek)

dB

background image

Żeby wprowadzić liczby ujemne potrzeba dodatkowego bitu – bitu znaku. Rejestr dzielimy na
mantysę, cechę i bit znaku.

Binarne liczby

Mantysa

2

Cecha

Integer

111000b

← zaznaczamy, że to liczba binarna

Octal Integer226q

← liczba ósemkowa

Decimal Integer

normalnie

Hex Integer

37Ah

← oznacza, że to liczba szesnastkowa

0FFFh

FFFh ← zły zapis

Floating Point constants 1,623 e

-23

to oznacza 1,623 10

-23

character constants

'D'

stałe znakowe

character strings

“ciąg znaków”

Operatory, które nadają znak liczbie
+

~

← reprezentacja z U1

+

dodawanie

odejmowanie

^

exclusive-OR

|

OR

&

AND

*

mnożenie

/

dzielenie

%

operacja modulo (reszta z dzielenia)

W niektórych reprezentacjach stosuje się trzy liczby

1,

∅,

1

.

CSD – kod minimalizacji bitów niezerowych ← przydatne przy mnożeniu liczb
11111111=1

∅∅∅∅∅∅

1

← bit ujemny, aby te dwie liczby były sobie równe. Nie mogą

ze sobą sąsiadować dwie niezerowe bity, można je rozsunąć przez bit zerowy np.
3=11 = 10

1

← kod CSD 5=101=101 ← kod CSD

Dla arytmometru nie ma znaczenia gdzie w rejestrze jest przecinek

np. 16-bitowy rejestr

mnożenie dwóch liczb 16-bitowych daje wynik 32-bitowy, gdyby
obie były w formacie Q

∅ to wynik jest też w formacie Q∅, a

gdyby były w formacie Q15, to wynik już jest w for-macie Q30, a
potrzeba Q31 i wynik trzeba przesunąć w lewo o 1bit.

Gdy mamy zakres (-1,1) (same ułamki), to wynik też musimy otrzymać w tym zakresie.

6

MSB

LSB

to jest liczba

typu Integer

B-bitowy rejestr

zapisane w formacie Q

oznacza zero bitów po przecinku

B-1

Q1

15

format
Q15

MSB

16

background image

Znak moduł

Reprezentacja w U2

U2

znak moduł

0 0 0

0

0

0 0 1

1

1

0 1 0

2

2

0 1 1

3

3

1 0 0

-4

-0

1 0 1

-3

-1

1 1 0

-2

-2

1 1 1

-1

-3

Aby nie było przepełnień, musimy rozszerzyć zakres np. od -32 do 31 przy dodawaniu. Zakres za
każdym razem podczas dodawania trzeba rozszerzyć, a potem przeskalować do zakresu (-1,1).
Mikrokontroler ma reprezentację U2.

2

8

=256

U2 ma zakres -2

n

do 2

n

-1

np. -128 do 127

Kod BCD (Binary Coded Decimals)
Cyfry są w systemie dziesiętnym kodowane za pomocą 4 bitów jest to kod nadmiarowy, gdyż nie
wykorzystujemy szesnastu kombinacji
Istnieje

16 !

16−10!

≈2.9⋅10

10

różnych kodów BCD

Najczęściej używane jest “8421” kod, nazwa wynika z przypisania wag kolejnym pozycjom
binarnym.

190856

10

=0001

1

1001

9

0000

0

1000

8

0101

5

0110

6

Ten kod nie używa wartości powyżej dziesięciu.

Rejestr chcemy podzielić na 3 pola: pole znaku, pole wykładnika i pole mantysy.
Standard IEEE 754

N=(-1)

S

∙2

E-127

∙1.M ← część ułamkowa mantysy

255 to maksymalna potęga, czyli cecha, ale 255 jest
specjalne i można używać tylko do 254

Wybrane własności:

liczba zakodowana jest na 32 bitach (4 bajtach),

występuje mantysa z ukrytą jedynką,

mimo, że cecha kodowana jest na 8 bitach, maksymalna wartość cechy możliwą do wykorzystania
przy kodowaniu zwykłych liczb jest 11111110

b

=254

10

, gdyż kombinacja 11111111

b

=255

10

jest

zarezerwowana dla liczb specjalnych. Oznacza to, że maksymalną liczbą od zakodowania jest:

2

254-127∙

1.1111...1

2

=2

127

∙(2-2

-23

) ≈ 3.4028∙ 10

38

7

MSB

LSB

S b

n-1

b

1

b

0

sign

znak

. . .

MSB

LSB

b

n

b

1

b

0

. . .

na tej pozycji

jest znak liczby

reprezentacja

liczby ujemnej

2

2

2

1

2

0

liczby

3-bitowe

tu się liczby

załamują

S

znak 1

cecha 8

mantysa 23

E

M

cecha

liczby

X

=−1

s

moduł=−1

s

k

=0

n

−1

b

k

⋅2

k

X

=2

n

⋅−b

n

k

=0

n

−1

b

k

⋅2

k

background image

Najmniejsza liczba to –3.4028 ∙10

38

.

ZAKRES UNORMOWANY

E=11111111

2

, M ≠ 0 Not a number, np. wynik dzielenia przez zero

E=11111111

2

, M = 0

+ gdy bit znaku dodatni
– gdy bit znaku ujemny

0<E<11111111

2

N=(-1)

S

∙2

E-127

∙1.M, liczba unormowana

E=0, M ≠ 0

N=(-1)

S

∙ 2

-126

∙ 0.M, czyli część ułamkowa

liczba nieunormowana, wprowadzona w celu
zwiększenia precyzji kodowania liczb w
pobliżu zera

E=0, M = 0

N=0

ZAKRES NIEUNORMOWANY

Standard IEEE 754 – podglądanie reprezentacji.
Standard ten jest używany w typie float w C++.

void podejrzyj(float input)
{
char string[sizeof(float)];

1

float *input_pointer=&input;

2

memcpy(string,input_pointer,sizeof(float));

3

for (char byte=sizeof(float)-1;byte>-0;byte--)

4

for (char bit=0;bit<8;bit++)
cout << int ((string[byte]>>(7-bit))&1);
}

1 sizeof(nazwa typu) – funkcja zwracająca w bajtach rozmiar podanego typu

2 ma wskazywać na zmienną input
3 memcpy – funkcja kopiująca

4 musimy uwzględnić, że bajty są przechowywane w odwrotnej kolejności

8

2-2

-

23

M

2

1

0

-1

-2

brakuje reprezentacji zera

zakres

mantysy

1-2

-23

M

2

1

0

-1

-2

gdy zmienna bit ma wartość 0, to

pobieramy najbardziej znaczący bit

background image

TEXAS INSTRUMENTS tj. Floating-Point Format

value = S ∙

s

∙F ∙2

E

Gdy s=1 to

s

=0. Jeśli F=0 to mantysa zaczyna się od -2 ≤ M ≤ -1-12

23

. S=0 to mantysa=1.

TMS (Texas Instruments).

Wykładnik od -128 do 127, liczby z cechą -128 to jest
zero.

Positive Number Example

value = S ∙

s

∙F ∙2

E

0

0000

2

0010

4

0100

0

0000

0 0 0

Architecture of IAS Computer
Komputer von Neumanna. Jest tu wspólna magistrala dla danych i instrukcji, mnoży się przez
kolejne dodawania.

Architektura harwardzka
Osobne magistrale dla danych i instrukcji.

9

S

E

F

8 bitów 1bit 23 bity

exponent sign fraction

2-2

-

23

M

2

1

0

-1

-2

-1-2

-23

S

E

F

8 bitów 1bit 23 bity

exponent sign fraction

bit znaku

main

memory

input

output

equipment

Arithmetic Logic Unit

program control unit

PC

PROG

MEM

IR

ACU

DATA

MEM

EXU

Program path

tor programu

Data path

tor danych

Address Computation Unit

Pamięć danych

program counter

(licznik rozkazów)

Instruction Register

(rejestr rozkazów) tu

dekoduje się rozkazy

background image

Cechy procesorów sygnałowych multimedialnych:

posiadają układ mnożący,

to co przechowuje akumulator może zostać użyte jako operand do operacji (np
ACC:=ACC+X*Y), może to być przydatne np. do obliczenia iloczynu skalarnego dwóch
wektorów:

x

=

[

x

1

x

2

...

x

n

]

y

=

[

y

1

y

2

...

y

n

]

x , y〉=xy=

n

=1

n

x

n

y

n

Multiunit architecture

Organizacja operacji arytmetyczno-logicznych

W procesorze sygnałowym nie możemy pozwolić na zbyt duże
częstotliwości zegara, bo procesor potrzebuje więcej mocy i bardziej się
nagrzewa i trzeba wtedy zamontować układ chłodzący. Na takie coś
przenośne urządzenia nie mogą sobie pozwolić, dlatego procesor
sygnałowy musi być optymalnie zbudowany.
RISC – procesor sygnałowy służy wyłącznie do przetwarzania sygnałów,
ciągle wykonując te same operacje dla każdej próbki sygnału, dlatego
można przewidzieć ile będzie trwało każde pobranie sygnału. Generalnie
każdy rozkaz zajmuje określoną ilość cyklów zegarowych – pracuje
regularnie.
W normalnym procesorze nie wiemy ile dana operacja zajmie czasu, bo
procesor robi różne rzeczy, a poza tym jego praca jest przerywana, itd.

Układ obliczania adresu

Typowy filtr cyfrowy rejestruje próbkę na wejściu, zapamiętuje ją w kolejnych komórkach pamięci,
działa do zapełnienia bufora np. 200 próbek, gdyby było adresowanie było zwiększanie o 1 to
zwiększanie adresu w pewnym momencie do adresu 00...., wtedy marnotrawstwo np. pamięci w
kilku tys. zmarnujemy całą bo chcemy zapisać 100 komórek.
Możliwość adresowania liczbą modulo
Początek adresowania → gdzieś w rejestrze zapisu.

10

MPY

ACC

ALU

A-reg

B-reg

modulo

bitrev

addr

Address
Arithmetic Unit

tu wchodzą
dane

zwiększa adres
o pewien skok

background image

Szybka transformacja Fouriera (FFT) jest najczęściej stosowana (analiza widmowa, w dziedzinie
częstotliwości, itp.)
Dyskretna transformacja Fouriera jest to transformacja ciągłości w próbce ta transformacja ma
szybkie algorytmy, gdy próbki są w kolejności naturalnej to wyniki są przemieszane. Dokonujemy
decymacji pobierając co drugą próbkę.
Co powoduje przemieszanie Fouriera
0 000 | 0 000
1 001 | 4 100
2 010 | 2 010
3 011 | 6 110
4 100 | 1 001
5 101 | 5 101
6 110 | 3 011
7 111 | 7 111

odbicie w lustrze, czyli jest układ do odwracania bitów

PROGRAM COUNTER (PC)

Serce procesora do obliczeń multimedialnych

11

RESET

PC

INC

INTERRUPT
ADDRESS

STACK

PROGRAM
MEMORY

IR

aby móc wrócić
do zerowego

adresu

rejestr który

zapamiętuje
inkrement

stos aby można było

odkładać rozkazy, aby
obsługiwać przerwania

rejestr A

rejestr B

układ

mnożący

akumulator

background image

Jeśli będziemy przesuwać mantysę w mnożeniu zmiennoprzecinkowym to w końcu rejestr będzie za
mały i wtedy coś obetniemy.
ZAGADNIENIA PODSTAWOWE
Omówienie pamięci:
Podstawowe własności pamięci:

lokalizacja:
- procesor,
- wewnętrzna (główna),
- zewnętrzna,

pojemność:
- rozmiar słowa,
- liczba słów,

budowa fizyczna:
- półprzewodnikowa,
- magnetyczna,

własności fizyczne,
- ulotność,

- wymazywalność,

jednostka transferu:
słowo,
blok,

sposób dostępu:
- sekwencyjny,
- bezpośredni,
- swobodny,
- skojarzeniowy,

wydajność:
- czas dostępu,
- czas cyklu,
- szybkość transferu.

Rodzaje pamięci półprzewodnikowych:

rodzaj

opis

wymazywalna

ulotność

RAM

pamięć o dostępie swobodnym

elektrycznie

ROM

pamięć stała

PROM

programowalna pamięć stała

EPROM

wymazywalna i programowalna pamięć stała

światło UV

EEPROM

elektrycznie wymazywalna i programowalna
pamięć stała

elektrycznie

Pamięci RAM dzielą się na:

DRAM (dynamic RAM) – dynamiczna pamięć RAM, wymaga okresowego odświeżania, po
wyłączeniu zasilania traci dane,

SRAM (static RAM) – statyczna pamięć RAM, nie wymaga, okresowego odświeżania, a po
wyłączeniu zasilania traci dane.

Jednostka transferu – liczba bitów jednocześnie zapisanych do pamięci lub odczytywanych
Jednostka adresowalna – liczba bitów obiektu reprezentowanego przez ten sam adres. Jeśli przez A
oznaczymy długość adresu w bitach to liczba jednostek adresowalnych w danej pamięci = 2

A

.

Słowo – obiekt o rozmiarze jednostki adresowalnej lub o rozmiarze rejestru procesora.
Dostęp sekwencyjny – dostęp do jednostek pamięci jest możliwy w określonej sekwencji liniowej.
Mechanizm odczytujący i zapisujący musi przenosić się od pozycji bieżącej do żądanej
przepuszczając i odrzucając pozostałe jednostki. Czas dostępu jest zmienny.
Dostęp bezpośredni – poszczególne bloki mają unikatowe adresy wewn. bloku poszukiwanie
docelowej jednostki odbywa się sekwencyjnie
Dostęp swobodny – np. pamięć RAM.

12

background image

HIERARCHIA PAMIĘCI

- rośnie czas dostępu,

- mniejszy czas dostępu,

- maleje częstotliwość,

- większy koszt na bit,

- rośnie pojemność,

- rośnie częstotliwość,

- maleje koszt na bit,

- maleje pojemność.

Większa pojemność – większy czas dostępu.
Mikroprocesor 8086 – 16 bitowy tzn. jego szyna wewnętrzna, pamięć wewnętrzna przeznaczona do
przechowywania argumentów i wyników instrukcji jest podzielona na 16-bitowe elementy.
Adresowanie pamięci w mikroprocesorze 8086
Moduły pamięci są połączone z mikroprocesorem za pomocą magistral:

magistrala adresowa służy do przesyłania przez procesor do modułu pamięci adresu, będącego
numerem wybranej komórki pamięci,

zawartość komórki przesyła się dwukierunkowo za pomocą magistrali danych.

Przestrzeń adresowa procesora 8086 wynosi 2

20

bajtów = 1 048 576 B = 1 MB

Do wskazania jednej dowolnej komórki pamięci trzeba posłużyć się co najmniej dwoma rejestrami
jednocześnie.
20-bitowy adres fizyczny jest obliczany na podstawie dwóch liczb 16-bitowych:

numer segmentu,

przesunięcie w obrębie segmentu (offset) zgodnie ze wzorem:
adres fizyczny = 10

16

* segment + offset,

jeżeli w wyniku powyższej operacji adres będzie 21-bitowy nastąpi obcięcie najbardziej
znaczącego bitu, zatem adresy tworzą pierścień.

W procesorach 80286 i nowszych, o magistralach większych niż 20-bitowych nie jest ignorowany
21-szy bit obliczonego adresu fizycznego. Adresując zatem w trybie segment i offset mamy do
dyspozycji następującą liczbę bajtów:

FFFF0 + FFFF + 1 = 10FFFF + 1

Odwrotne przechowywanie
W strukturach zajmujących kilka bajtów pamięci poszczególne bajty są przechowywane w odwrotnej
kolejności do kierunku adresowania pamięcią np. long int – 4 bajty

N – adres zmiennej, rozumiemy jako numer najniżej położonego w pamięci bajtu, należącego do
danej struktury. Tutaj najniżej ulokowany w pamięci bajt jest najmniej znaczącym bajtem.

Pamięć podręczna

Stosuje się w celu uzyskania szybkości zbliżonych do najszybszych pamięci, przy jednoczesnym
uzyskaniu danego rozmiaru pamięci.
Jeśli procesor zamierza odczytać słowo w pamięci, następnie sprawdzenie czy słowo znajduje sięw
pamięci podręcznej. Jeżeli nie, pewien blok danych, zawierający żądane słowo zostaje pobrany w

13

rejestry

pamięć podręczna

pamięć główna

dyskowa pamięć podręczna

pamięć dyskowa

pamięć taśmowa

dysk optyczny

31 24 23 16 15

8 7

0

MSB

LS

B

N

N+1

N+2

N+3

7

0 15

823 16 31 24

background image

pamięci głównej do podręcznej, a następnie słowo to zostaje
udostępnione ze względu na lokalność, następnie odczytanie.
Pamięć podręczna zrealizowana w poziomie bloku.

Lokalność:
Grupowanie się odwołań do pamięci w sensie podobieństwa ich
lokalizacji w tej pamięci. Główne przyczyny tego zjawiska są
następujące:
Migotanie pamięci → pamięć wciąż ulega zmianom co do zawartości.
Aby mieć zysk z istnienia POP musimy zapewnić lokalność. Niech
pamięć główna składa się z 2

n

słów o unikalnych n-bitowych adresach.

Podzielimy ją na równych rozmiarów bloki zawierające k-słów.
Bloków takich będzie zatem M=2

n

/K. Niech pamięć podręczna składa się C wierszy, zawierających

C słów, przy czym C << M. Jedną z metod odwzorowania pamięci głównej w pamięci podręcznej
jest
ODWZOROWANIE BEZPOŚREDNIE
Jest ono określone następująco
C = M mod C
Dla danego wzoru istnieje stała lokalizacja w pamięci podręcznej. Jeśli procesor będzie się
odwoływał do słów w różnych blokach przypisanych do tego samego wiersza, bloki te będą ciągle
przepisywane do pamięci podręcznej.
ODWZOROWANIE SKOJARZEIOWE
umożliwia załadowanie danego bloku z pamięci głównej do dowolnego wiersza pamięci podręcznej.

LRU (least recently used – najmniej ostatnio używany), należy zastąpić w pamięci ten blok, który
pozostawał w pamięci najdłużej bez odniesień. Wiersze pamięci podręcznej zawierają bit
wykorzystania (USE)

LFU (least frequently used – najrzadziej używany), należy zastąpić blok, do którego wystąpiło
najmniej odniesień (liczniki odwołań),

FIFO (fisrt in first out – pierwszy wchodzi pierwszy wychodzi), czyli ten, który był najdłużej

losowy wybór bloku, który należy zastąpić.

Działanie pamięci dwupoziomowych

Pamięć wysokiego poziomu (M1) – pamięć podręczna do tymczasowego przechowywania danych,
mniejsza, szybsza i o większym koszcie na bit niż pamięć niskiego poziomu (M2). Gdy wystąpi
odniesienie do pamięci, najpierw poszukuje się danych w pamięci M1. Jeśli się uda jest szybki
dostęp. Jeśli nie, kopiujemy dany blok do M1 po czym udostępniamy.
Średni czas dostępu do obiektu definiujemy

Τ

S

= H∙Τ

1

+ (1-H)∙(Τ

1

2

)

Τ

1

– czas dostępu do pamięci M

1

Τ

2

– czas dostępu do pamięci M

2

H – współczynnik trafień, prawdopodobieństwo, że
poszukiwane dane znajdą się w pamięci podręcznej M1
Im większe H, tym Τ jest bliższe Τ

1

.

T

1

T

S

=

1

1

1−H ⋅T

2

/T

1

Średni koszt na bit pamięci dwupoziomowej

14

CPU

PAMIĘĆ
PODRĘCZNA

PAMIĘĆ

GŁÓWNA

przesyłanie słów

przesyłanie bloków

0 0,2 0,4 0,6 0,8 1,0

10

-3

10

-2

10

-1

10

0

Τ

2

1

=1

Τ

2

1

=10

Τ

2

1

=100

Τ

2

1

=1000

współczynnik

trafień

background image

C

S

=

C

1

S

1

C

2

S

2

S

1

S

2

C

1

– koszt na bit pamięci M1

C

2

– koszt na bit pamięci M2

S

1

– rozmiar M1

S

2

– rozmiar M2

Oznaczamy

y=C

S

/C

2

x=S

2

/S

1

wtedy

y

=

C

1

C

2

1

1

x

1

1

y

−1

Jeżeli program nie jest lokalny to korzystamy z pamięci M1 i M2 na chybił trafił.
Mete\ody ochrony danych w pamięciach:

bity korekcyjne,

kody detekcyjne → wykrywają błąd,

kody korekcyjne korekta błędu.

Kod wykrywający:

pojedynczy błąd – Single Error Detection (SED),

podwójny błąd – Double Error Detection (DED).

Kod korekcyjny – Single Error Correcting (SEC).

Gdy wystąpią dwa błędy, jeden trzeba poprawić jeszcze raz.

Uruchomienie komputera

wyzerowanie pamięci wewnętrznej CPU,

skok pod adres F000:0000

16

, jest to adres przechowywanego w pamięci ROM programu BIOS

(Basic Input Output System), czyli podstawowego systemu wejścia/wyjścia,

BIOS przeprowadza kontrolę sprzętu POST (Power On Self Test), w razie wystąpienia błędów
wysyła komunikat w postaci tekstu na ekranie lub sygnałów dźwiękowych. Pojedynczy krótki
sygnał dźwiękowy oznacza pomyślne przejście przez test do obszaru BDA (BIOS Data Area)
wpisane zostaje 256 bajtów informacji o zainstalowanych urządzeniach. Obszar ten o adresie
0040:0000

16

jest później wykorzystywany przez system operacyjny,

BIOS próbuje odczytać na nośnikach rekord ładowania

RAID (redundant array of independent disc) – nadmiarowa struktura niezależnych dysków

Podział dysków:

CAV (constant angular velocity) – stała prędkość kątowa,

dyski magnetyczne obracają się ze stałą prędkością kątową,

dyski podzieloną są na ścieżki i sektory,

CLV (constant linear velocity) – stała prędkość liniowa,

dyski optyczne, CD-ROM-y, prędkość jest zmienna, ale stała jako prędkość liniowa,

jest jedna ścieżka (spirala) podzielona na sektory, odstęp między ścieżkami wynosi 1,6 μm,
zapisywalna szerokość płyty CD-ROM = 32 590 μm podzielona przez odstęp ścieżek daje
2034 ścieżek, ta jedna spirala ma długość około 5,27 km, czas zapisu całej ścieżki 73,2,
gdyby odczytywać z szybkością 176,4 KB/s, to pojemność płyty wynosi 774,57 MB.

Dane na płycie CD-ROM są zapisane w postaci ciągu bloków. Blok składa się następujących pól:

sync (synchronizacja): pole identyfikacyjne początek bloku składa się bajtu złożonego z
samych zer, 10 bajtów jedynkowych i znowu jednego zerowego,

15

background image

header (nagłówek): zawiera adres bloku i bajt trybu,
tryb 0 oznacza czyste pole danych,
tryb 1 wykorzystanie kodu korekcyjnego i 2048 bajtów danych,
tryb 2 – 2338 bajtów kodu korekcyjnego,

data (dane): dane użytkownika,

auxiliary (pomocnicze): dodatkowe dane użytkownika w trybie 2.

Rodzaje dysków optycznych:

CD – dysk kompaktowy tylko do odczytu niewymazywalny do informacji audio w postaci
cyfrowej, w systemie znormalizowanym używane są dyski o średnicy 12 cm, przy czym czas
ciągłego odtwarzania przekracza 60 minut,

CD-ROM – pamięć stała na dysku kompaktowym niewymazywalnym. Dysk służący do
przechowywania danych. W systemie znormalizowanym używane są dyski o średnicy 12 cm i
pojemność ponad 550 MB,

CD-1 – norma określająca sposoby umieszczania na płycie informacji audio, video,
graficznych i tekstowych oraz programów komputerowych na CD-ROM,

DVI (digital video interface) – cyfrowy dysk video.

WORM (write once read memory) – jednokrotny zapis, wielokrotny odczyt, na którym zapis
jest łatwiejszy niż na CD-ROM co umożliwia dostępność unikalnych dysków w jednym
egzemplarzu, najpopularniejszy rozmiar 5,25 cala i pojemność od 200-280 MB.

Cechy charakterystyczne dysków CAV:

ruch głowicy,
głowica może myć nieruchoma (jedna na jedną ścieżkę),
może być też ruchoma,

wykorzystanie talerzy: jednostronne lub dwustronne,

liczba talerzy (na wspólnej osi) – może być jeden talerz, lub może być wiele,

mechanizmy odczytu głowicy:
- kontaktowy (floppy),
- ustalona przerwa,
- przerwa aerodynamiczna (Winchester),

Cechy RAID-u:
1. RAID – jest zespołem fizycznie istniejących napędów dyskowych widzianych przez użytkownika

(system operacyjny) jako pojedynczy napęd logiczny.

2. Dane są rozproszone w tych napędach, tworzących tablicę.
3. Redundancyjna pojemność dysków jest wykorzystywana do przechowywania informacji o

parzystości, co gwarantuje odzyskiwanie danych w przypadku uszkodzenia dysku.

Szczegółowe rozwiązania dotyczą 2. i 3. cechy są różne dla różnych poziomów RAID. Poziom
RAID 0 nie wspiera 3 cechy.
RAID zaproponowano w celu zamknięcia poszerzającej się luki między szybkimi procesorami, a
stosunkowo wolnymi elektromechanicznymi napędami dysków. Strategia ta polega na zastąpieniu
dysku o wielkiej pojemności wieloma napędami o mniejszej pojemności i na rozpraszaniu danych,
które umożliwia jednoczesny dostęp do danych w wielu napędach, dzięki czemu uzyskuje się
zwiększoną wydajność we/wy i łatwiejsze zwiększenie pojemności.

16

background image

Poziomy RAID

kategoria

poziom

opis

częstość zgłaszania

żądania we-wy

(odczyt/zapis)

paskowanie

0

bez redundancji

duże paski - doskonała

kopiowanie lustrzane

1

lustrzane kopiowanie danych (na
kilku dyskach te same dane)

dobra/dostateczna

dostęp równoległy

2
3

redundancja poprzez kod Hemminga,
parzystość na poziomie bitów

dostęp niezależny

4

5

parzystość na poziomie bloków
rozproszenie parzystości na poziomie
bloków

doskonała

Klasyfikacja przykładowych urządzeń we/wy

rodzaj

partner

szybk. transferu [KB/s]

klawiatura we

człowiek

0,01

mysz

we

człowiek

0,02

we głosowe we

człowiek

0,02

skaner

we

człowiek

200

wy. głosowe wy

człowiek

0,6

dysk opt.

pamięć

komputer

2 000

dysk magn. pamięć

komputer

2 000

ASCII kod – amerykański standard do przesyłania informacji
Sposoby działania urządzeń we/wy:

brak przerwań

zastosowanie przerwań

programowane

we/wy sterowane

we/wy

przerwaniami
bezpośredni dostęp do pamięci (DMA) – direct memory

acces

Brak przerwań

Zastosowanie przerwań

Tranfer we/we – pamięć
poprzez procesor bezpośredni
transfer we/wy – pamięć (z
pominięciem działania
procesor)

Programowane we/wy

we/wy sterowane przerwaniami,
bezpośredni dostęp do pamięci
(DMA) – direct memory acces

17

moduł we/wy

dopasowuje szybkości

linia adresowa

linia danych

linia systemowa

m

ag

ist

ra

la

sy

ste

m

ow

a

układ

logiczny
sterowania

bufor

przetworniki

sygnały

sterowania
z modułu

we/wy

syngały
stanu

do modułu
we/wy

dane do
modułu we/wy

specyfikacje dla urządzenia
kierowana do otoczenia

background image

Sposoby realizacji urządzeń we/wy:

we/wy programowane
- procesor steruje operacje we/wy (rozpoznaje stan) wysyła rozkazy odczytu i zapisu,
- procesor po wydaniu rozkazu modułowi we/wy musi czekać na zakończenie tej operacji,
zazwyczaj procesor jest szybszy od modułu we/wy, czyli marnują się cykle procesora,

we/wy sterowane przerwaniami
procesor nie czeka na zakończenie operacji we/wy i zajmuje się czymś innym,

bezpośredni dostęp do pamięci.

Przerwania wielokrotne:

blokowanie przerwań (mało efektywne) jest blokada przerwań, bo jedno jest wykonywane, a inne
czekają,

zagnieżdżanie przerwań, urządzeniom nadaje się priorytety przerwań, przerwanie o wyższym
priorytecie ma pierwszeństwo, taki priorytet mają urządzenia, które czekając mogłyby stracić
dane.

Obsługa przerwań:
1) zapisuje wartości rejestrów procesora i licznika rozkazów na stos,
2) ustaw licznik rozkazów na procedurę obsługi przerwania,
3) po zakończeniu procedury zdjęcie ze stosu wartości rejestrów i przywrócenie ich wartości, powrót

do przerwanych zadań.

1 cykl rozkazowy składa się z 12-stu cykli zegarowych.
Przerwania wielokrotne, typowo dana ma 13 bitów, a 3 bity to jest rozpoznanie jakie rodzaju adres
(jakie adresowanie), gdy dane są od razu w kodzie rozkazu to adresowanie natychmiastowe, gdy
dana jest jest w rejestrze to adresowanie rejestrowe, gdy dane w pamięci podręcznej w rozkazie jest
jej adres to mamy adresowanie bezpośrednie, gdy na stronie pamięci jest rozkaz, a w rejestrze jest
adres do tej strony, to jest to adresowanie pośrednia, w rejestrze mamy zapisany adres do danej.
Segmentacja
Zazwyczaj są dwie dane i druga dana jest zapisana w akumulatorze.
Generalnie procesory dzielimy na 4 rodzaje:

SISD – (single instruction single data), na danej jest wykonany jeden rozkaz, przechodzimy do
kolejnej,

SIMD – (single instruction multiple data), pojedyncza instrukcja służy do wykonania operacji na
wielu danych np. obróbka obrazu,

MISD – (multiple instructions single data), nietypowe,

MIMD – (multiple instructions multiple data).

Struktury połączeń
Komputer jest zestawem zespołów i modułów. Pamięć i urządzenia we/wy muszą się komunikować,
struktura połączeń jest najczęściej oparta na tzw. magistralach. Pamięć to moduł składający się z N
słów o jednostkowej długości każde.

18

pobieranie

rozkazu

dekodowanie

rozkazu

obliczanie

adresu

argumentu

pobieranie
argumentu

operacje

na danych

obliczenie

adresu

argumentu

zapisanie

argumentu

sprawdzenie

przerwań

przerwania

obliczanie

adresu

rozkazu

wiele
rozkazów

następny
rozkaz

brak
przerwań

łańcuch
lub wektor

background image

Pamięć wykonuje dwie operacje: czytania i zapisywania.

Połączenie magistralowe. Magistrala składa się z wielu linii komunikacyjnych, a każdą mogą być
przesyłane dwa stany binarne 0 i 1. Magistrala systemowa składa się ze 100 oddzielnych linii:

linii danych,

linii adresu,

linii sterowania,

linii zasilania.

Magistrala jest wspólnym nośnikiem transmisji między urządzeniami realizowanym poprzez system
łączących ich linii komunikacyjnych.
Szyna – zestaw równoległych przewodów.
Magistrala to zestaw równoległych przewodów wraz z mechanizmami sterowania tymi przewodami.
DMA – Direct Memory Access – wymiana danych pomiędzy urządzeniami we/wy z pamięcią bez
pośrednictwa procesora.
Hierarchiczne struktury wielomagistralowe

Przyczyny zmniejszania wydajności magistrali:

opóźnienie sygnałów związane z dołączeniem
wielu urządzeń,

urządzenia żądają przesyłania danych z
szybkością zbliżoną do szybkości magistrali.

Karty graficzne łączone są przy pomocy magistrali
szybkiego przesyłania.

Rodzaje magistral.
Rodzaje linii:

linie specjalistyczne (dedicated),

linie multiplexowe, do różnych celów, i adres, i
dane mogą być przesyłane.

Metody arbitrażu:

19

sygnał

pamięć

odczyt

zapis

adres

szyna danych

do zapisu

szyna danych

do odczytu

Moduł

we/wy

M-portów

dane wewnętrzne

dane zewnętrzne

sygnały przerwań

szyna danych

szyna wejścia

danych zewn.

Procesor

rozkazy

dane

sygnały
przerwań

sygnały
sterujące

dane

CPU

pamięć

podręczna

lokalny

sterownik

we/wy

RAM

SCSI

Sieć

interfejs

szyny

rozszerzeń

magistrala lokalna

magistrala systemowa

szyna rozszerzeń

background image

scentralizowany, jeden moduł arbitrażu steruje całą magistralą,

rozproszony.

Metody koordynacji:

synchroniczna,

asynchroniczna,

mostek synchronizacyjny.

Magistrala PCI (Peripheral Component Interconnect) – system urządzeń preyferyjnych
Szerokopasmowa tzw. międzypiętrowa łącząca cechy systemowej i innych magistral do 64 linii
danych.
Własności:

wykorzystuje koordynację synchroniczną,

posiada arbitraż specjalizowany, arbitraż może odbywać się w trakcie przesyłania na jednostkę
nadrzędną danych, zatem arbitraż nie powoduje utraty cykli magistrali,

zastosowanie mostka między procesorem a magistralą.

W podstawowej wersji ma 50 linii.
Magistrala może być konfigurowana jako 32- lub 64-bitowa. Podział linii sygnałowych:

wyprowadzenia systemowe (wyprowadzenia zegara i przywracania – reset),

wyprowadzenia adresu i danych, 32 linii multipleksowanych,

wyprowadzenia sterowania interfejsem,

wyprowadzenia arbitrażowe w przeciwieństwie do pozostałych magistral, PCI nie są liniami
wspólnymi,

wyprowadzenia informujące o błędach, informacje o parzystościach i inne,

wyprowadzenia JTAG (standard urządzenia, aby ono samo się monitorowało i wysyłało inf. o
swoim stanie), linie te umożliwiają realizację procedur testowania określonych w normie
IEEE 1491.

Rozkazy PCI. Działanie magistrali to transakcja między inicjatorem (modułem nadrzędnym), a
celem (modułem podrzędnym). Gdy inicjator domaga się sterowania magistralą określa typ
transakcji, która ma być prowadzona. Podczas fazy adresu transakcji do sygnalizowania typu
transakcji są używane linie BE. Rozkazy są następujące:

potwierdzenie przerwania,

cykl specjalny,

odczyt I/O,

zapis I/O,

odczyt pamięci,

linia odczytu pamięci,

zwielokrotniony odczyt pamięci,

zapis w pamięci,

zapis w pamięci i unieważnienie,

odczyt konfiguracji,

zapis konfiguracji,

cykl podwójnego adresu.

“Potwierdzenie przerwania” jest rozkazem odczytu przeznaczonym dla urządzenia, które działa jako
sterownik przerwań na magistrali PCI.
Arbitraż.
Magistrala PCI wykorzystuje scentralizowany rodzaj arbitrażu, w którym każdy moduł ma
przypisaną unikatową sygnaturę zapotrzebowania (REQ) i udostępniania (GNT).

20

background image

SCSI (Small Computer System Interface)

każde z urządzeń ma wielopunktowe łącze I/O,

urządzenia są połączone łańcuchowo, jedno z zakończeń łańcucha jest podłączone do komputera,

urządzenia mogą wymieniać dane między sobą i komputerem.

Wymiana informacji przez magistralę SCSI odbywa się między inicjatorem (np. komputer) i
adresatem, jednym podłączonych urządzeń.
Wymiany zachodzą w ustalonej sekwencji faz magistrali.
Linie sygnałowe pracują z szybkością 5 MB/s, jest ich 18:

9 linii danych:

8 właściwych linii danych,

1 linia parzystości,

9 linii sterowania.

Magistrala P1394

wykorzystano transmisję szeregową za pomocą pakietów:

asynchroniczną, o zmiennych długościach nagłówek pakietów zawiera informację o
nadawcy, odbiorcy i długości, po jego odebraniu wysyła się potwierdzenie,

synchroniczną – o ustalonych długościach, po odebraniu nie wysyła się potwierdzenia,

urządzenia mogą być dołączone bez wyłączonego zasilania i ponownego konfigurowania
systemu, automatycznie nadaje adresy urządzeniom,

urządzenia mogą być połączone w mieszaną strukturę łańcuchowo-drzewiastą,

arbitrem jest urządzenie stanowiące korzeń drzewa 0 przyjmuje ona zgłoszenia zapotrzebowania
na magistralę od innych urządzeń, urządzenia o krótszej ścieżce do korzenia otrzymuje wyższy
priorytet, a gdy ścieżki równe to urządzenie o niższym adresie.

Przebieg sygnałów. Podoperacje to proces dostarczenia jednego pakietu. Fazy podoperacji:

arbitraż,

transmisja nagłówka pakietu,

transmisja bloku danych pakietu,

przerwa na potwierdzenie.

Adresowanie natychmiastowe
Immediate Addressing Example

LDI

1223h,R0 – umieść daną 1223 (hex) w rejestrze R0

Adresowanie bezpośrednie
Pamięć podzielona na 512 stron, a każda strona ma 128 słów, czyli adres
jest 16-bitowy.

21

load integer R0 1223h

11bitów 5bitów 16bitów

128

word

page

51

2 s

tro

n

15 9 bitów 6 7 bitów 0

D
P

dma

Data Page Pointer

wskaźnik na stronę pamięci
za pomocą 9 bitów można

zaadresować 512 stron

data memory address
adres pamięci danych

(fragment adresu na danej stronie)

background image

Direct addressing example

Instruction

Program memory

DP

LDP #2
ADD 56h

LDI

@adr, R0

Direct addressing

Przed ADDI @0BCDh,R7
(dodaj wartość integer spod adresu @... do rejestru R7, rejestr ten działa jak akumulator)
DP=108Ah
R7=11h
Data at 10BA BCDEh = 1234 5678h
Po instrukcji
DP=108Ah
R7=12345689h
Data at 10BA BCDEh = 12345678h

22

szyna danych

(Data Bus (16))

DP(9)

za pomocą szyny
ładujemy DP

z kodu instrukcji ładujemy dma
data memory address

dit data

9

7

16

15 8 7 0

Opcode 0 dma

7-bit
opcode

AD

D

56

000000010

000000010 1010110

56 jest adresem
na pewnej stronie

pamięci, na którą
wskazuje rejestr DP

załaduj data page
pointer, czyli DP,

liczba 2 (adresowa-
nie natychmiastowe)

31 16 15 0

expr

Instruction

Word

DP

(data

page

pointer)

page

address

31 16 15 0

31 16 15 0

pełen 32-bitowy adres

background image

Adresowanie pośrednie

Składnia

Znaczenie

ARn

indirect (pośrednie)

+ARn(disp)

zanim użyjemy adresu, który jest w rejestrze, to zwiększamy go o wartość
disp

–ARn(disp)

j.w. ale zmniejszamy

++ARn(disp)

pre-inkrement and modification, nowa wartość adresu (zwiększona) jest

wpisana do adresu

– –ARn(disp)

j.w., ale dekrement

ARn++(disp)

post–inkrement, zwiększony adres po wykonaniu instrukcji

ARn– –(disp)

j.w., ale dekrement

ARn++(disp)%

adresowanie cyrkularne

ARn– –(disp)%

j.w.

Arn++(IR0)B

z rewersją bitów do szybkiego realizowania transformacji Fouriera

DFT - Discrete Fourier Transformation
X

o

,X

1

, ..., X

N-1

blok N próbek np. w dziedzinie czasu

X

0

=

1

N

n

=0

N

−1

X

n

X

K

=

1

N

n

=0

N

−1

X

N

W

N

k

n

W

N

=e

j

2

N

współczynnik obrotu wskazującu 1/N obrotu

W N próbkach jest to np. jeden okres W

N

k

, h=0,1,2,...,N-1

IDFT

X

N

=

k

=0

N

−1

X

k

W

N

hn obracanie jest w przeciwną stronę ,bo jest minus

Przykład dla dwóch próbek X

0

,X

1

W

2

=e

-jπ

=–1

X

0

= ½ (x

0

+x

1

)

X

1

= ½ (x

0

–x

1

)

dwa współczynniki w dziedzinie częstotliwości.

średnia arytmetyczna, czyli ostatecznie:

x

0

=x

0

+x

1

x

1

=x

0

–x

1

LACC – Load Accumulator – załaduje akumulator
LDP – Load Data Pointer – załaduj wskaźnik
SACL – Store Accumulator – zachowaj akumulator
MAR – modify auxiliary register – zmodyfikuj rejestr pomocniczy
MAR *,AR1

czyli do ARP wpisz 1

LAR AR0,#2

wpisz 2 do rejestru pomocniczego 0

LDP #0

wrzuć do DP 0

LAR AR1,#200h

do rejestru R1 wrzuć 200 (hex)

LAR AR2,#300h

do rejestru R2 wrzuć 300 (hex)

LACC 61h

adresowanie bezpośrednie

gdy

23

31 16 15 0

operand

address

31 16 15 0

w instrukcji

w rejestrze

jest adres

Arn

background image

LACC #61h

wrzuć do akumulatora zawartość komórki 61h

ADD *+

dodaj adresowanie pośrednie, czyli zmodyfikuj o 1 adres
komórki, co wskazuje ARP, imkrementuje po zaadresowaniu

SUB 60h,1

przesuń wartość z 60h czyli 10 o jeden bit w lewo, czyli
zwiększ wartość dwukrotnie, później odejmij od tego co
w akumulatorze

ADD *+,AR2

do akumulatora dodaj 60, zawartość R1 zwiększamy o 1,
czyli wskazuje na adres 202 i ARP=2

LDP #6

załaduj wskaźnik strony wartością 6

ADD 1

dodaj do akumulatora zawartość pierwszej komórki ze strony
6 czyli z adresu 300 weź 10, czyli A=290

ADD *+,4

adresowanie pośrednie na to na co wskazuje aktualnie ARP,
czyli 2, czyli co jest pod 300h, czyli 10 i tę wartość przesunąć
o bity, czyli zwiększyć 16-krotnie

SUB *+,0,AR1

nie przesuwa wartość, zmienia zawartość ARP na 1, teraz już
AR2 ma wart. 301, czyli 30, czyli od A=390 odejmujemy 30,
czyli A=360

SUB #32

odejmij wartość 32 od tego co w akumulatorze, czyli odejmij
tak naprawdę 20, czyli 340 mamy w A.

ADD *0-,0,AR2

ustawia ARP na AR2, przesuwa zero bitów, od aktualnego
rejestru pomocniczego (AR1) odjąć wartość INDX – rejestru
indeksowego

SUB *0-

dekrementowanie 0 2 indeksu i dlatego od aktualnego
rejestru AR2 odejmij 2, czyli z 302 mamy 300

SACL 82h

przesuwa wartość w dma 362h

Andrzej Rydzewski

“Mikrokomputery jednoukładowe rodziny MCS-51”

8 bitowe CPU (jedn. centralna, może wykonywac 111 rozkazów).
12 cykli zegarowych = 1 cykl maszynowy
System przerwań
Multiplexowane wejścia równoległe P0, P1, P2, P3
Nie nadaje się do obliczeń dużej precyzji, czyli do przetwarzania dźwięku lub obrazu (jest za wolny),
ale do sterowania lodówką lub pralką.

Zegar ma 12 Mhz, czas cyklu maszynowego = 1 μs
Wewnętrzna pamięć typu ROM – ma jeje 4096 bajtów (4K) słów 8 bitowych, może być rozszerzona
do 64K bajtów przez pamięć zewnętrzną.
Wewnętrzna pamięć danych RAM – pojemność 128 bajtów.
Port szeregowy – może pracować w 4 trybach.
AT89CS1

4K

 8 FLASH (pamięć flash)

SFR – Special Function Registers (rejestry specjalne)

Ma dwa aukumulatory
A, ACC oraz B
Rr – rejestry robocze r={1,...,7}
Ri – rejestry – wskaźniki danych i=1,2
SP (stack pointer) – wskaźniki stosu

n – 8-bitowy argument
nn – 16-bitowy argument
d – 8-bitowe przesunięcie

24

background image

Cykl rozkazowy może składać się z kilku cykli maszynowych, z kolei cykl maszynowy składa się z
12 cykli zegarowych.

1. Odpowiedz na pytania:
a) czym się różnią pojęcia: cykl rozkazowy, cykl maszynowy i cykl zegarowy w komputerach RISC i

CISC,

b) opisać cykl rozkazowy mikrokotrolera 8051,
c) skrót SFR oznacza “special functions registers”, czyli “rejestry specjalne”. Jaką rolę pełnią te

rejestry w mikrokontrolerze 8051 i jaki zajmują obszar pamięci,

d) czym się różni wewnętrzna pamięć danych mikrokontrolerów 8051 i 8052?
e) co oznaczają skróty: RAM, ROM, EPROM, EEPROM, FLASH.
2. Wymień różnice i podobieństwa architektury typowego procesora sygnałowego i mikrokontrolera

8051.

3. Wyjaśnij działanie poszczególnych instrukcji programu:

PUSH

ACC

MOV

DPTR,#data

ANL

A,#Fh

MOVC A,@A+DPTR
MOV

P0,A

POP

ACC

4. Zaprojektować zawartości tablicy data w pamięci programu, która służyłaby do

zapalania kolejnych cyfr 0,1,2,3,4,5 wyświetlacza 7-segmentowego, opisanego na
rysunku. Założyć, że diody LED są połączone do końcówek mikroprocesora jest
pokazane na rysunku. Zastosować następującą kolejność bitów a b c d e f g.

Dioda będzie świecić gdy stan będzie wysoki (zapali się gdy zero).

25

a

b

c

d

e

f

g


Wyszukiwarka

Podobne podstrony:
pamiec komputera id 348541 Nieznany
architektura aplikacji id 67748 Nieznany (2)
Architektura Neutrino 1 id 6791 Nieznany (2)
Architektura Komp2 id 67910 Nieznany (2)
Arytmetyka Komputerowa id 69945 Nieznany
6 Zasilacze komputerowe id 4399 Nieznany
Grafika komputerowa 3 id 194791 Nieznany
budowa komputera id 94246 Nieznany
Interfejsy mozg komputer id 218 Nieznany
Architektura ekoczasu id 67766 Nieznany (2)
Polaczenie Komputerow id 364034 Nieznany
Grafika komputerowa id 194784 Nieznany
Arytmetyka komputerow id 69942 Nieznany (2)
Architektura Renesansu id 67864 Nieznany (2)
Architektura Komp5 id 67913 Nieznany (2)
Architektura drewniana 2 id 677 Nieznany (2)
pamiec komputera id 348541 Nieznany
architektura aplikacji id 67748 Nieznany (2)
Architektura5 id 67923 Nieznany (2)

więcej podobnych podstron