RISC
Z Wikipedii
RISC (Rationalized Instruction Set Computers, wcześniej skrót od Reduced Instruction Set Computers) - nazwa architektury mikroprocesorów która została przedstawiona pod koniec lat 70. 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
- Atmel_AVR