architektura komputerow wyklad


przedmiot: Architektura komputerów

prowadzący: dr inż. SŁAWOMIR GRYŚ

Politechnika Częstochowska

Wydział Elektryczny, pokój C 113,

tel. 3250883, e-mail: grys@el.pcz.czest.pl

forma zaliczenia: egzamin pisemny i ustny

proponowana literatura:

1. Pozycje książkowe

2. Czasopisma:

3. Strony internetowe:

- producentów procesorów i komputerów:

Wykład I

Historia komputerów

Komputer - urządzenie elektroniczne automatycznie przetwarzające informacje (dane) zapisane cyfrowo, służące do szybkiego wykonywania obliczeń, przechowywania, porządkowania i wyszukiwania danych oraz sterowania pracą innych urządzeń.

M. Szymczak: Słownik języka polskiego, PWN, W-wa 1995

Era maszyn mechanicznych

B. Pascal (1623-1662) - konstruktor mechanicznego kalkulatora pomocnego bankierom i geodetom,

G. Leibniz (1646-1716) - wtórny, po Chińczykach, odkrywca systemu dwójkowego, udoskonalił mechaniczny kalkulator,

J. Jacquard (1752-1834) - wynalazca karty perforowanej,

  1. Stern (1769-1842) - twórca maszyny pierwiastkującej,

Ch. Babbage (1791-1871) - najwybitniejszy twórca mechanicznych maszyn liczących (zrealizowana maszyna różnicowa, projekt maszyny analitycznej).

G. Boole (1815-1864) - prekursor logiki formalnej.

Wiek XX wiekiem elektryczności

Od tranzystora do......

0x01 graphic

Rys. 1. Komputer ENIAC

0x01 graphic

Rys. 2. Wymiana lampy w komputerze ENIAC

Wykład II

Struktura systemu komputerowego

0x01 graphic

Rys. 3. Komputer o strukturze: a) - sztywnej (ang. „hardwire”), b) - elastycznej (ang. „software”)

Maszyna von Neumanna (ang. von Neumann machine) - koncepcja komputera, utrzymującego w pamięci zarówno program jak i dane; możliwość wymiany programu i danych na inne. Zarówno program, jak i dane są przechowywane w pamięci w kodzie dwójkowym, a ich przetwarzanie odbywa się w arytmometrze.

0x01 graphic

Rys. 4. Schemat blokowy komputera o architekturze trójmagistralowej

Operacje sprzętowe w komputerze:

Elementy składowe komputera:

Szyna, magistrala (ang. bus) - wiązka przewodów lub zespół ścieżek na płytce obwodu drukowanego, do wzajemnej komunikacji pomiędzy elementami komputera. W definicji szyny, prócz samych przewodów sygnałowych, mieści się ściśle zdefiniowany protokół, precyzujący zbiór komunikatów. Przykłady standardów szyn: ISA, PCI, SCSI, PCMCIA.

Jednostka centralna (ang. central processing unit, CPU) - element komputera, który pobiera i wykonuje rozkazy. Składa się z jednostki arytmetyczno-logicznej, jednostki sterującej, rejestrów, dekodera rozkazów. W przypadku komputerów jednoprocesorowych oznacza po prostu procesor. Natomiast jeśli mówimy o komputerze wieloprocesorowym, CPU oznacza wszystkie procesory.

Pamięć danych (ang. data memory) - pamięć do zapisu i odczytu przeznaczona do przechowywania danych.

Pamięć programu (ang. program memory) - pamięć do odczytu przeznaczona do przechowywania kodu programu.

Układ wejścia-wyjścia (ang. input-output circuit, I/O) - element komputera, służący do wymiany informacji między komputerem a urządzeniem zewnętrznym.

Elementy składowe procesora:

0x01 graphic

Rys. 5. Ogólna struktura procesora

Jednostka arytmetyczno-logiczna zwana również arytmometrem (ang. arithmetic and logic unit), część procesora wykonująca podstawowe operacje arytmetyczne i logiczne, pobierającą argumenty działań z rejestrów procesora lub z pamięci oraz określająca znaczniki w rejestrze stanu procesora.

Typowe operacje wykonywane przez ALU:

Typowe znaczniki (flagi) ustawiane w wyniku operacji:

Jednostka sterująca (ang. control unit) - część procesora, która zapewnia przebieg operacji zdefiniowanej kodem rozkazu, steruje przenoszeniem danych wewnątrz procesora oraz wymianą danych i sygnałów sterujących poprzez magistrale zewnętrzne.

Dekoder rozkazu (ang. instruction decoder) - dekoder tłumaczący kod rozkazu na mikrorozkazy realizowane przez układy wewnętrzne procesora.

Rejestr (ang. register) - część procesora przechowująca dane lub adres.

Podstawowe rejestry procesora:

Cykl pracy komputera:

Cykl rozkazowy (ang. instruction cycle) - ciąg czynności, które wykonuje układ sterowania jednostki centralnej w czasie realizowania jednego rozkazu. Na cykl rozkazowy składają się: jednakowa dla wszystkich rozkazów faza pobrania, w której pobierany jest kod operacji z komórki pamięci o adresie zapisanym w liczniku rozkazów (zawartość licznika zwiększa się, a kod operacji jest dekodowany) oraz faza wykonania, w której następuje realizacja operacji wskazanej przez rozkaz. Jeżeli w treści wykonywanego rozkazu jest adres lub argument bezpośredni, to w fazie wykonywania może nastąpić kolejne zwiększenie zawartości licznika rozkazów. Na cykl rozkazowy składają się jeden lub kilka cykli maszynowych.

0x01 graphic

Rys. 6. Cykl rozkazowy procesora

Cykl maszynowy (ang. machine cycle) - cykl, w którym następuje przesłanie danych (odczyt lub zapis) między jednostką centralną a pamięciową lub układem wejścia - wyjścia. W zależności od rodzaju przesłania rozróżnia się cykl maszynowy: pobrania kodu operacji, odczytu i zapisu pamięci, odczytu i zapisu wejścia - wyjścia, przyjęcia przerwania.
W każdym cyklu maszynowym następuje wysłanie:

Układy pamięci lub wejścia - wyjścia powinny w tym czasie wykonać odpowiednie czynności - zapisać dane lub wysłać je na magistralę danych. Jeden cykl maszynowy wykonywany jest w czasie jednego lub kilku (w zależności od procesora i rodzaju cyklu) taktów zegara systemowego.

Zegar systemowy (ang. system clock) - generator impulsów prostokątnych, taktuje procesor, układy pamięciowe i układy wejścia-wyjścia.

Cykl pamięci (ang. memory cycle) - ciąg operacji składających się na jeden dostęp (odczyt lub zapis) do pamięci. Cykl pamięci często jest utożsamiany z cyklem maszynowym.

0x01 graphic

Rys. 7. Graf stanów cyklu rozkazowego

wpisz R2, #n; R2 n

prześlij [R1],[R3+]; wykonaj n-razy:

{

[R1] [R3]

R1 R1 + 1

R3 R3 + 1

}

Licznik rozkazów (ang. program counter) - rejestr procesora; adresuje pamięć programu, przechowując adres, spod którego należy pobrać kod następnego rozkazu lub argument bieżącego rozkazu.

Wskaźnik stosu (ang. stack pointer) - rejestr procesora; adresuje pamięć o organizacji typu „stos” (ang. LIFO - last in first out), wskazując tzw. wierzchołek stosu, czyli adres ostatnio zapisanych danych. Wykorzystywany jest do:

Przykład zapisu wyrażenia algebraicznego:

notacja wrostkowa notacja przyrostkowa

(ang. infix) (ang. postfix)

A+B*C+(D+E)*F ABC*+DE+F*+

Wykład III

Potokowe przetwarzanie rozkazów

Przetwarzanie potokowe (ang. pipelining) - polega na równoczesnym przetwarzaniu grupy rozkazów, znajdujących się w różnych fazach (ang. stage) cyklu rozkazowego. Wyróżnia się co najmniej fazę pobierania i wykonania rozkazu.

Przykładowa dekompozycja rozkazu na 6 faz:

0x01 graphic

czas

Rys. 8. Przetwarzanie potokowe 9 rozkazów

Założenia przyjęte do rys. 8:

fragment przykładowego programu:

wpisz R2, #n; R2 #n

dodaj R1, [R2]; R1 R1 + [R2]

skocz adres, C; C=1 => PC adres

Rysunek 9 ilustruje wpływ występowania rozkazu skoku warunkowego na potok rozkazów. Rozkaz 3 jest rozkazem skoku do rozkazu 15. Do zakończenia fazy EI nie ma możliwości przewidzenia, który rozkaz będzie wykonany jako następny. W 8 jednostce czasu rozkaz 15 wchodzi do potoku. Od jednostki 9 do 12 nie kończy się wykonywanie żadnego rozkazu - brak fazy WO, co oznacza stratę czasu.

0x01 graphic

czas

Rys. 9. Przetwarzanie potokowe 9 rozkazów

w przypadku rozkazu skoku warunkowego

0x08 graphic

RW

RN

RA

kierunek przetwarzania

programu

Rys. 10. Adresowanie pamięci programu w wyniku wykonania rozkazu skoku warunkowego

Opis:

RW - rozkaz wykonywany,

RN - rozkaz następny (wykonany, gdy nie spełniony warunek skoku),

RA - rozkaz alternatywny (wykonywany, gdy spełniony warunek skoku)

Metody zwiększania wydajności przetwarzania potokowego w przypadku rozkazu skoku warunkowego:

Zwielokrotnienie strumienia potoków polega na przetwarzaniu równoległych potoków, zapoczątkowanych przez rozkazy RN i RA. Wady:

Buforowanie fragmentu programu polega na przechowywaniu fragmentu programu w wewnętrznej pamięci procesora. Metoda ta jest przydatna przy operowaniu pętlami. Jeśli bufor jest dostatecznie pojemny, aby zmieścić wszystkie rozkazy stanowiące pętlę, to rozkazy te muszą być pobrane tylko raz. Przy kolejnych obiegach pętli procesor nie odwołuje się do pamięci.

Zmiana kolejności wykonywania rozkazów polega na pobieraniu rozkazów w takiej kolejności, aby grupować rozkazy skoków lub umieszczać je poza pętlami.

Przewidywanie rozgałęzień polega na zgadywaniu, czy wystąpi warunek powodujący skok, czy też nie. Metody przewidywania dzielą się na statyczne i dynamiczne. Metody statyczne nie bazują na historii skoków warunkowych wykonanych przez program.

Wśród metod statycznych można wyróżnić:

np. rozkaz DJNZ R1, adres

(R1 R1 - 1, R1<>0 => PC adres).

0x08 graphic

RA

RW

RN

kierunek przetwarzania

programu

Rys. 11. Adresowanie pamięci programu w wyniku realizowania tzw. pętli

Wśród metod dynamicznych można wyróżnić:

Przetwarzanie superpotokowe (ang. superpipelining) - zaawansowane przetwarzanie potokowe, w którym dwa rozkazy znajdują się w tej samej fazie potoku, lecz w różnych podfazach. Takie rozwiązanie jest możliwe, gdy w obrębie fazy zostaną wyodrębnione dwa nienakładające się zadania.

Wykład IV

Superskalarne przetwarzanie rozkazów

Przetwarzanie superskalarne - polega na równoczesnym przetwarzaniu grupy (przynajmniej dwóch) rozkazów, znajdujących się w tych samych fazach (ang. stage) cyklu rozkazowego.

0x01 graphic

czas

Rys. 12. Porównanie różnych rozwiązań

Czynniki wpływające na efektywność potoku superskalarnego:

Prawdziwa zależność danych występuje wtedy, gdy drugi rozkaz potrzebuje danych tworzonych za pomocą pierwszego rozkazu. Wykonanie drugiego rozkazu ulega opóźnieniu o tyle faz ile jest wymaganych do usunięcia zależności.

Przykład 1:

dodaj R1, R2; R1 R1 + R2

prześlij R3, R1; R3 R1

Usuwanie prawdziwej zależności danych polega na optymalizacji kodu programu (zmianie kolejności rozkazów) na etapie kompilacji.

Zależność proceduralna jest związana z rozkazami skoku (rozgałęzień) oraz występowaniem rozkazów o różnej ilości faz. Rozkazy następujące po rozgałęzieniu nie mogą być wykonane przed zakończeniem rozgałęzienia. W maszynach o architekturze RISC'owej (ang. reduced instruction set computer) większość rozkazów jest wykonywanych w jednym cyklu maszynowym. Stąd, w tych maszynach nie występuje drugi z czynników powodujących zależność proceduralną.

Konflikt zasobów polega na jednoczesnym rywalizowaniu dwóch lub więcej rozkazów o te same zasoby systemowe, np. ALU, rejestry procesora, pamięć podręczną, pamięć główną, układy we-wy.

Usunięcie konfliktu zasobów jest możliwe poprzez powielanie zasobów - fizycznie, np. dwie ALU w procesorze, lub logicznie, np. dynamiczne przydzielanie rejestrów czyli tzw. przemianowanie (ang. renamimg), przełączanie banków rejestrów.

0x01 graphic

czas

Rys. 13. Wpływ zależności na superskalarne przetwarzanie rozkazów

Zależność wyjściowa występuje, gdy wynik działania rozkazu z drugiej pary (znajdujących się w innej fazie potoku - rys. 12) jest niszczony przez działanie rozkazu z pierwszej pary. Taka sytuacja zachodzi w procesorach o zmiennej długości trwania rozkazów. W przykładzie 2 zależność wyjściowa występuje pomiędzy rozkazami I1 i I3.

Przykład 2:

R3 R3 ∧ R5 (I1)

R4 R3 + 1 (I2)

R3 R5 - 1 (I3)

R7 R3 ⊕ R4 (I4)

Antyzależność występuje, gdy rozkaz z drugiej pary (znajdującej się innej fazie potoku - rys. 12) niszczy dane używane przez rozkaz z pierwszej pary. Taka sytuacja zachodzi w procesorach o zmiennej długości trwania rozkazów. W przykładzie 2 antyzależność występuje pomiędzy rozkazami I2 i I3.

Fazy cyklu rozkazowego procesora Pentium:

Układ kontroli dobierania parami sprawdza na bieżąco możliwość wykonania kolejnej fazy potoku przez parę rozkazów (sprawdza zachodzenie jednego z ww. rodzajów zależności).

Pentium zawiera dwa niezależne ALU, oznaczane U i V, pracujące na 32-bitowych liczbach zapisanych w formacie stałopozycyjnym.

0x01 graphic

Rys. 14. Potoki procesorów firmy Intel:

a) 80486, b) Pentium

0x01 graphic

Rys. 15. Struktura potoku całkowitoliczbowego procesora Pentium

Pentium wykorzystuje dynamiczną metodę przewidywania rozgałęzień opartą na historii wykonań rozkazów rozgałęzienia. W buforze celu rozgałęzienia są przechowywane: adres aktualnie wykonywanego rozkazu rozgałęzienia (32 bity), adres rozkazu docelowego, wykonywanego jako rozkaz kolejny w przypadku rozgałęzienia programu (32 bity), dwa bity historii.

Po wykonaniu rozkazu rozgałęzienia bity historii są aktualizowane. W tej metodzie przewiduje się, że rozgałęzienie nie wystąpi tylko wtedy, gdy oba bity historii są zerami. Różnica w stosunku do metody statycznej korzystającej z bitu nastąpi/nie nastąpi jest taka, że do przewidywania są używane dwa bity przypisane konkretnemu rozkazowi. Bufor celu rozgałęzienia (ang. branch target buffer) jest zorganizowany w pamięci podręcznej procesora. Jeżeli wystąpi brak miejsca do dokonania nowego wpisu jest usuwany wpis najstarszy.

0x01 graphic

Rys. 16. Graf stanów bufora celu rozgałęzienia

Wykład V

Przetwarzanie równoległe (paralelne)

Zastosowania przetwarzania równoległego:

Przykład 1:

obliczenia skalarne obliczenia wektorowe

C = A + B C = A + B

0x08 graphic
7 = 3 + 4 0x01 graphic

prześlij A , [R1] prześlij A , [R1]

prześlij B , [R2] prześlij B , [R2]

dodaj A , B prześlij dodaj A , B

prześlij [R3] , A prześlij [R3] , A

zwiększ R1

zwiększ R2

zwiększ R3

Przykład 2:

obliczanie wartości wielomianu

y = an·xn + an-1·xn-1 + an-2·xn-2 + .... + a1·x + a0

y = ((((an·x + an-1) ·x + an-2) ·x + an-3) ·x .... a1) ·x + a0

obliczanie wartości silni

n! = 1 · 2 · 3 · ... · n!

n! = (n - 1)! · n

0x08 graphic

Wieloprocesor - system wieloprocesorowy, w którym każdy procesor ma pełny dostęp do wspólnych zasobów, tj. (pamięci, układów we-wy).

0x01 graphic

Rys. 18. Wieloprocesor ze wspólną magistralą

Wielokomputer (transputer) - system wieloprocesorowy, w którym każdy procesor ma dostęp do wydzielonych zasobów, tj. (pamięci, układów we-wy). Procesory współpracują przez szybkie kanały we-wy.

0x01 graphic

Rys. 19. Typowe topologie wielokomputera: a) pierścień (ang. ring), b) siatka (ang. mesh), c) drzewo (ang. tree), d) hipersześcian (ang. hypercube)

Dany blok danych może występować jednocześnie w pamięciach podręcznych wielu procesorów. Jeżeli procesory mogą swobodnie modyfikować zawartość własnych pamięci podręcznych (brak arbitrażu), to może powstać niespójny obraz pamięci (ang. cache coherence). Problem ten występuje w strukturze wieloprocesora.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Rys. 20. Powielenie bloku danych w pamięciach podręcznych procesorów A i B

Rozwiązania problemu spójności pamięci podręcznych:

Protokoły katalogowe bazują na przechowywaniu w pamięci głównej zbioru informacji o zawartości poszczególnych pamięci podręcznych oraz aktualnie wydanych prawach dostępu. Niezbędny jest układ logiczny (arbiter), nadzorujący przesyłanie danych pomiędzy pamięciami podręcznymi a pamięcią główną. Przed udzieleniem prawa wyłączności jednemu z procesorów arbiter żąda unieważnienia kopii bloku danych przechowywanych w pozostałych procesorach.

W protokołach podglądania utrzymywanie spójności spoczywa na wszystkich procesorach. Stosowane są dwie metody podglądania: zapis z unieważnieniem (analogicznie jak w protokole katalogowym) oraz zapis z aktualizacją, który polega na rozesłaniu zaktualizowanej wartości do wszystkich procesorów przechowujących wspólny blok. W zapisie z unieważnieniem stosuje się dwubitowe pole stanu dla każdego wiersza pamięci, określające jeden z możliwych stanów: zmodyfikowany, wyłączny, wspólny, nieważny (ang. modified, exclusive, shared, invalid) - stąd nazwa protokół MESI.

Znaczenie poszczególnych stanów:

Chybienie odczytu/zapisu - adres docelowy nie znajduje się w pamięci podręcznej.

Trafienie odczytu/zapisu - adres docelowy znajduje się w pamięci podręcznej.

Możliwe przejścia do innych stanów.

Opis skrótów:

PI - procesor inicjujący, PP - pozostałe procesory, BS - bity stanu, pp - pamięć podręczna, pg - pamięć główna.

Chybienie odczytu:

Trafienie odczytu: odczyt danych z pp(PI).

Chybienie zapisu:

Trafienie zapisu:

Klasyfikacja systemów komputerowych:

Wykład VI

Rozkazy procesora - typy i przetwarzanie

Rozkazy maszynowe są przetwarzane przez procesor jako dane binarne (zerojedynkowe). Każdy rozkaz posiada unikatowy kod operacji oraz opcjonalnie dodatkowe elementy:

Przykład 1:

ADD A , R1; A A + R1

ADD - opcode zapisany w języku symbolicznym, tzw. mnemonik

A, R1 - argumenty źródłowe, A - argument przeznaczenia.

Przykład 2:

JMP adres; PC adres

JMP - opcode,

adres - adres następnego rozkazu.

Typowe rodzaje operacji wykonywane przez procesor:

Opis skrótów:

aź - argument źródłowy,

ad - argument docelowy,

aźd - argument jednocześnie źródłowy i docelowy,

(...) - zawartość.

Rodzaj operacji

Nazwa

operacji

Opis

Transfer danych

Move

Store

Load

Exchange

Clear

Set

Push

Pop

skopiuj aź ap

zachowaj aź w pamięci

załaduj ad z pamięci

(aźd1) (aźd2)

wyzeruj aźd (ustaw 0...0b)

ustaw aźd (ustaw 1...1b)

zachowaj aź na wierzchołku stosu

załaduj ad z wierzchołka stosu

Arytmetyczne

Add

Subtruct

Multiply

Divide

Absolute

Negate

Increment

Decrement

ad aź1 + aź2

ad aź1 - aź2

ad aź1 * aź2

ad1...2 aź1 / aź2

aźd |aź|

aźd - aź

aźd aźd + 1

aźd aźd - 1

logiczne

AND

OR

NOT

EX-OR

Test

Compare

Shift

Rotate

aźd aź1 ∧ aź2

aźd aź1 ∨ aź2

aźd neguj aź1

aźd aź1 ⊕ aź2

sprawdź bit i ustaw flagi

porównaj logicznie/arytme-tycznie i ustaw flagi

przesuń w prawo/lewo aź

obracaj w prawo/ lewo aź

konwersji

Translate

Convert

aźtabela przyporząd.aźd

zmiana postaci (aź) na inną

wejścia-wyjścia

Input

Output

Start I/O

Test I/O

odczytaj ad z układu we-wy

zapisz aź do układu we-wy

zapisz kod do układu I/O

odczytaj kod stanu z układu I/O

sterowania systemowego

Set control bits

Clear control bits

ustaw flagi ogólnego przeznaczenia i systemowe

zeruj flagi ogólnego przeznaczenia i systemowe

przekazywania sterowania

Jump (branch)

Jump conditional

Jump to Subroutine

Return

Execute

Skip

Skip conditional

Halt

Wait (hold)

No operation

skocz pod adres (aź),

czyli PC (aź)

skocz pod adres (aź), jeśli warunek spełniony/nie spełniony

skocz do podprogramu, zachowaj na stosie adres powrotu

wróć z podprogramu (pobierz ze stosu adres powrotu)

pobierz argument i wykonaj jak rozkaz, PC bez zmian

pomiń następny rozkaz

pomiń następny rozkaz, jeśli warunek spełniony/nie spełniony

zatrzymaj wykonywanie programu

zatrzymaj wykonywanie programu a następnie wznów po spełnieniu warunku

nie wykonuj żadnego działania

Podstawowe cechy mikroprocesora 8086

0x01 graphic

Rys. 21. Architektura mikroprocesora 8086

Znaczenie flag rejestru stanu (gdy flaga ustawiona):

Adres logiczny komórki pamięci: segment: offset

Adres fizyczny komórki pamięci: segment*16+offset =

< 0 , 220 > = < 00000h, FFFFFh> 1 MB

Operacje na bajcie i słowie:

DS:SI, DS:DI, DS:BX - adresowanie argumentu,

Operacje na ciągach:

DS:SI - adresowanie argumentu źródła,

ES:DI - adresowanie argumentu przeznaczenia,

Operacje na stosie:

SS:SP - adresowanie wierzchołka stosu,

SS:BP - adresowanie elementów stosu.

0x01 graphic

Rys. 22. Organizacja pamięci mikroprocesora 8086

0x01 graphic

Rys. 23. Rozkład wyprowadzeń mikroprocesora 8086

0x01 graphic

Rys. 24. Cykl magistrali mikroprocesora 8086

Podstawowe cechy mikroprocesora MC 68000

0x01 graphic

0x01 graphic

Rys. 25. Rejestry mikroprocesora Motorola 68000

0x01 graphic

Rys. 26. Rozkład wyprowadzeń MC 68000

0x01 graphic

Rys. 27. Opis funkcjonalny wyprowadzeń MC68000

0x01 graphic

Rys. 28. Przykładowy cykl magistrali MC 68000

Wykład VII

Przegląd różnych procesorów - przykłady

Podstawowe cechy mikroprocesora jednoukładowego NEC 78310/12

PSWH:

0

RBS2

RBS1

RBS0

0

0

IE

0

PSWL:

S

Z

RSS

AC

UF

P/V

SUB

CY

Rys. 29. Rejestr PSW mikroprocesora NEC 78310/12

0x01 graphic

Rys. 29. Schemat blokowy mikroprocesora

NEC 78310/12

Podstawowe cechy mikroprocesorów serii NS 32000

0x01 graphic

Rys. 30. Schemat blokowy mikroprocesorów

National Semiconductor 32000

0x01 graphic

0x01 graphic

Rys. 31. Rejestry mikroprocesorów serii NS 32000

Podstawowe cechy mikroprocesora sygnałowego

(ang. signal processor) TMS320Cx

Podstawowe cechy mikroprocesora pomiarowego
TI MSP430

Rys. 32. Rozkład wyprowadzeń mikroprocesorów MSP430

Podstawowe cechy mikroprocesora VLIW

(ang. Very Long Instruction Word)

0x01 graphic

Rys. 33. Struktura mikroprocesora VLIW

Podstawowe cechy mikroprocesora segmentowego

Podstawowe cechy transputera (ang. dataflow)

0x01 graphic

Rys. 34. Struktura transputera T424 firmy Inmos

Wykład VIII

Układy wejścia-wyjścia

Układ wejścia-wyjścia (ang. Input-Output module)

- „inteligentny” element komputera umożliwiający współpracę poprzez magistrale systemowe urządzeń peryferyjnych z procesorem.

0x01 graphic

Rys. 35. Schemat blokowy układu wejścia wyjścia

Czynniki powodujące potrzebę stosowania układów wejścia-wyjścia (w skrócie I/O):

Funkcje układu wejścia-wyjścia:

Przykład sterowania transferem danych:

  1. Procesor żąda od I/O sprawdzenia stanu dołączonego urządzenia peryferyjnego.

  2. I/O udziela odpowiedzi o stanie.

  3. Jeśli urządzenie działa i jest gotowe do przesłania danych, procesor zgłasza zapotrzebowanie wysyłając rozkaz do I/O.

  4. I/O otrzymuje dane od urządzenia peryferyjnego.

  5. I/O przesyła dane do procesora.

  6. Otrzymuje potwierdzenie od procesora otrzymania danych.

Komunikacja z procesorem i urządzeniami peryferyjnymi obejmuje:

Buforowanie danych polega na przechowywaniu danych w rejestrze lub wewnętrznej pamięci I/O do czasu gotowości urządzenia peryferyjnego lub procesora.

Wykrywanie błędów obejmuje:

Sposoby realizacji wymiany danych pomiędzy procesorem/pamięcią i I/O:

0x01 graphic

Rys. 36. Sposoby realizacji wymiany danych:
a) programowe sterowanie, b) obsługa w przerwaniu,

c) bezpośredni dostęp do pamięci

W programowym sterowaniu I/O „przetwarzanie” danych odbywa się całkowicie pod kontrolą programu realizowanego przez procesor. Zadaniem I/O jest logiczne i elektryczne dopasowanie sygnałów wymienianych pomiędzy procesorem a urządzeniami peryferyjnymi.

Zaleta - prostota realizacji sprzętowej.

Wady:

Obsługa w przerwaniu umożliwia prawie natychmiastową reakcję na żądanie obsługi przez urządzenie peryferyjne. Po wykryciu przerwania zawartość podstawowych rejestrów (zwykle PC, A, F) jest przechowywana na stosie, aby można po zakończeniu obsługi przerwania powrócić do wykonywania programu głównego. W przypadku wielu urządzeń peryferyjnych wymagana jest identyfikacja źródła przerwania.

Identyfikacja sprzętowa polega na określeniu adresu obsługi przerwania na podstawie stanu wejść procesora lub układu kontrolera przerwań (typowe oznaczenia INT0..n, IRQ0..n, NMI).

Identyfikacja programowa polega na określeniu adresu obsługi przerwania na podstawie podawanego przez urządzenie numeru.

W sytuacji równoczesnego zgłaszania kilku przerwań obsługiwane jest to o najwyższym priorytecie. Istnieje również możliwość zawieszenia wykonywania obsługi przerwania przez kolejne przerwanie o wyższym priorytecie.

Zaleta - obsługa urządzenia tylko wtedy, gdy jest zgłaszana taka potrzeba.

Wada - konieczność programowej i sprzętowej obsługi przerwań (zewnętrzny kontroler przerwań).

Zaletą bezpośredniego dostępu do pamięci jest wymiana danych bez udziału procesora. Daje to możliwość szybszego przesyłania danych przy dużych, podobnych blokach danych.

Bezpośredni dostęp do pamięci może być realizowany w dwojaki sposób:

Cykl pracy sterownika DMA:

Architektura komputerów - wykład

44

Systemy jednoprocesorowe

skalarne superskalarne

z przetwarzaniem z przetwarzaniem

potokowym superpotokowym

Rys. 17. Przetwarzanie równoległe w systemach komputerowych

pamięć główna pamięć podręczna

systemu CPU - A

pamięć podręczna

CPU - B

wieloprocesor wielokomputer

Systemy wieloprocesorowe



Wyszukiwarka

Podobne podstrony:
Architektura komputera - wyklady, szkola, architektura komputerow
Wykłady z Architektury Komp sem IV, Skrypty studia, Architektura komputerów
ask4, Edukacja, studia, Semestr IV, Architektura Systemów Komputerowych, Wyklad
ask1, Edukacja, studia, Semestr IV, Architektura Systemów Komputerowych, Wyklad
ask3, Edukacja, studia, Semestr IV, Architektura Systemów Komputerowych, Wyklad
ask2, Edukacja, studia, Semestr IV, Architektura Systemów Komputerowych, Wyklad
ARCHITEKTURA KOMPUTEROW1A
Technika komputerowa w obrocie towarowym TECHNIKA KOMPUTEROWA wykłady
architektury komputerow v1 1
Architektura Komputera, Informatyka, Płyta Główna
Architektury Komputerów zagadnienia
Architektura komputerów I 16 12 2008
Metody komputerowe wykład 1
gulczas 2001 opracowanie, Politechnika Wrocławska - Materiały, architektura komputerow 2, egzamin, o
architektura krajobrazu wykład, Rysowanie, Malowanie
Sieci Komputerowe, Wykład9, Inicjalizacja Winsock
Architektura komputerów I 09 12 2008
bezpieczenstwo komputerowe wyklad

więcej podobnych podstron