RISC () – typ architektury zestawu instrukcji procesora, który został przedstawiony pod koniec lat 70. XX w. 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ę rozbudowaną listą rozkazów, ale – jak wykazały badania – statystycznie tylko nieliczna ich część była wykorzystywana w programie. Okazało się na przykład, że ponad 50% rozkazów w kodzie to przypisania, tj. 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 podprogramów lub instrukcje obsługujące pętle, ok. 13–15% to wspomniane przypisania, 7–21% to instrukcje warunkowe, 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:
Liczba rozkazów zredukowana do niezbędnego minimum. Wynosi ona 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 liczbę przesłań – większość operacji wykonuje się według schematu: W CISC przeważnie argument docelowy jest również domyślnym operandem, co wymusza użycie przynajmniej dwóch rozkazów: 1) C := A; 2) C := C operacja B. 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.
Pierwszym procesorem zaprojektowanym na bazie architektury RISC był RCA1802 wyprodukowany przez firmę RCA.
Obecnie popularne procesory Intel, AMD i VIA 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. W praktyce okazuje się, że rozwiązanie takie (pomimo wad) jest podejściem bardziej wydajnym (szczególnie że RISC-owy blok wykonawczy jest nowszy od architektury CISC widocznej dla programisty).
Przedstawiciele RISC Przykłady rodzin: Alpha AMD 29000 ARM Atmel AVR IBM 801 Intel i860 Intel i960 Motorola M88000 MIPS PA-RISC PowerPC RISC-V SPARC
Przypisy
Kategoria:Architektury procesorów