przedstaw_zasadnicze_roznice_pomiedzy_procesorami_cisc_i_risc [mgr Wiki]

[[przedstaw_zasadnicze_roznice_pomiedzy_procesorami_cisc_i_risc]]
mgr Wiki

# ARCHITEKTURA RISC

Procesor o architekturze RISC (ang. reduced instruction set computer), czyli o zredukowanej liście instrukcji, odznacza się następującymi cechami:

1. jest zbudowany zgodnie z architekturą typu Harvard, ma więc oddzielne szyny dla danych i programu (może zatem równocześnie współpracować z pamięcią danych i programu)
2. wykorzystuje przetwarzanie potokowe w celu zwiększenia szybkości wykonywania programu (pipelineing)
3. zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogonalności (symetrii).

Pojęcie ortogonalności występujące w ostatnim postulacie oznacza unifikację instrukcji według następujących zasad:

1. każda instrukcja może operować na dowolnym rejestrze roboczym (procesor nie ma więc wyróżnionych rejestrów, które są specjalizowane do wykonywania określonych rodzajów operacji)
2. każda instrukcja może wykorzystywać dowolny tryb adresowania argumentów,
3. nie ma ukrytych związków między instrukcjami (efektów ubocznych), które powodowałyby nieprzewidziane reakcje systemu w zależności od kontekstu użycia rozkazów w programie,
4. kody rozkazów i formaty instrukcji są zunifikowane; w szczególności wszystkie instrukcje zajmują w pamięci programu taką samą liczbę bajtów.

Ortogonalność zbioru instrukcji radykalnie upraszcza budowę układu sterowania, który może realizować cykl wykonania każdego rozkazu według identycznego algorytmu. Ponadto prostszy układ sterowania może pracować znacznie szybciej, dlatego cykl rozkazowy ulega skróceniu. Zaoszczędzoną powierzchnię w układzie scalonym przeznacza się na dodatkowe bloki, na przykład na sprzętowy stos, które dodatkowo przyspieszają pracę procesora.

Klasyczna architektura RISC jest stosowana w mikrokontrolerach rzadko. Najczęściej można w nich odnaleźć elementy tej architektury, ale Ortogonalność listy instrukcji nie jest pełna. Opisany wcześniej mikrokontroler ColdFire wykorzystuje na przykład wariant koncepcji RISC nazwany YL-RISC (ang. variable-length RISC), w którym formaty instrukcji mają różną liczbę bajtów.

Współczesne procesory zgodne z x86 produkowane przez firmy Intel i AMD przetwarzają rozkazy procesora x86 na proste mikropolecenia pracujące wg idei RISC wykonujące się znacznie szybciej i po kilka jednocześnie.

RISC (ang. Reduced Instruction Set Computers) - nazwa architektury mikroprocesorów która została przedstawiona pod koniec lat 70-tych w teoretycznych pracach na uniwersytecie Berkeley oraz w wynikach badań Johna Cocke z Thomas J. Watson Research Center.

Ówczesne procesory (budowane w architekturze CISC) charakteryzowały się bardzo rozbudowaną listą rozkazów, ale jak wykazały badania tylko nieliczna ich część była wykorzystywane w statystycznym programie. Okazało się np. że ponad 50% rozkazów w kodzie to zwykłe przypisania (zapis zawartości rejestru do pamięci i odwrotnie).

Ponadto badania wykazały, że podczas działania programu ok. 26-45% wykonywanych instrukcji to instrukcje wywołania podprocedur lub instrukcje obsługujące pętle, ok. 13-15% to wspomniane przypisania, 7-21% to instrukcje warunkowe (jeśli warunek to ...), natomiast reszta to tylko 1-3%. (Dane procentowe za Józef Kalisz, „Podstawy elektroniki cyfrowej”)

W związku z powyższym zaprezentowano architekturę mikroprocesorów, w której uwzględniono wyniki badań. Jej podstawowe cechy to:

Zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt, podczas gdy w procesorach CISC sięga setek. Upraszcza to znacznie dekoder rozkazów.

Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, bardziej zunifikowane, co dodatkowo upraszcza wspomniany wcześniej dekoder rozkazów. Ponadto wprowadzono tryb adresowania, który ogranicza ilość przesłań - większość operacji wykonuje się wg schematu: .

Ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Przede wszystkim do przesyłania danych pomiędzy pamięcią, a rejestrami służą dedykowane instrukcje, które zwykle nazywają się load (załaduj z pamięci), oraz store (zapisz do pamięci); pozostałe instrukcje mogą operować wyłącznie na rejestrach. Schemat działania na liczbach znajdujących się w pamięci jest następujący: załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci.

Zwiększenie liczby rejestrów (np. 32, 192, 256, podczas gdy np. w architekturze x86 jest zaledwie 8 rejestrów), co również ma wpływ na zmniejszenie liczby odwołań do pamięci.

Dzięki przetwarzaniu potokowemu (ang. pipelining) wszystkie rozkazy wykonują się w jednym cyklu maszynowym, co pozwala na znaczne uproszczenie bloku wykonawczego, a zastosowanie superskalarności także na zrównoleglenie wykonywania rozkazów. Dodatkowo czas reakcji na przerwania jest krótszy. Pierwszym procesorem zaprojektowanym w oparciu o architekturę RISC był RCA1802 wyprodukowany przez firmę RCA.

Obecnie popularne procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez RISC-owy blok wykonawczy.

Przykłady rodzin mikroprocesorów o architekturze RISC:

- Intel 80860
- Intel 80960
- IBM 801
- PowerPC
- MIPS
- Alpha
- ARM
- Motorola 88000
- AMD 29000
- SPARC
- PA-RISC

# ARCHITEKTURA CISC

Procesor o architekturze CISC (ang. complex instruction set computer) mają rozbudowaną listę rozkazów, obejmującą często kilkaset różnorodnych poleceń. Cecha ortogonalności instrukcji nie jest zachowana; instrukcje są wąsko specjalizowane, współpracują na ogół tylko z określonymi rejestrami i wymagają stosowania określonych trybów adresowania. Bogactwo listy rozkazów i trybów adresowania utrudnia wprawdzie opanowanie języka asemblera przez programistę, ale sprzyja pisaniu zwartych programów źródłowych.

CISC (Complex Instruction Set Computers) - nazwa architektury mikroprocesorów o następujących cechach:

- duża liczba rozkazów (instrukcji)
- mała optymalizacja - niektóre rozkazy potrzebują dużej ilości cykli procesora do wykonania
- występowanie złożonych, specjalistycznych rozkazów
- duża ilość trybów adresowania
- do pamięci może się odwoływać bezpośrednio duża liczba rozkazów
- mniejsza od RISC-ów częstotliwość taktowania procesora
- powolne działanie dekodera rozkazów

Z reguły procesory wykonane w architekturze CISC działają wolniej niż procesory, o przeciwstawnych założeniach RISC, działające z tą samą częstotliwością.

Przykłady rodzin procesorów o architekturze CISC to:

- x86 Pentium
- M68000

# Dodatkowe materiały

- :psiiz_wyklad_4.ppt

przedstaw_zasadnicze_roznice_pomiedzy_procesorami_cisc_i_risc.txt · Last modified: 2006/05/20 17:35 by 62.233.163.154