RISC (ang.reduced instruction set computing) – typarchitektury zestawu instrukcji procesora, który został przedstawiony pod koniec lat 70. XX w. w teoretycznych pracach na uniwersytecieBerkeley oraz w wynikach badańJohna Cocke zThomas J. Watson Research Center.
Ówczesne procesory, budowane w architekturzeCISC, 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ścirejestru do pamięci i odwrotnie.
Ponadto badania wykazały, że podczas działania programu ok. 26-45% wykonywanych instrukcji to instrukcje wywołaniapodprogramów lub instrukcje obsługującepętle, ok. 13–15% to wspomniane przypisania, 7–21% to instrukcje warunkowe, natomiast reszta to tylko 1–3%[1].
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:
[2]. - 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) orazstore (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[kiedy?] popularne procesoryIntel,AMD iVIA z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest RISC-owy. Rozkazy CISC są rozbijane namikrorozkazy (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).
Przykłady rodzin:
- ↑Dane procentowe za: Józef Kalisz, „Podstawy elektroniki cyfrowej”.
- ↑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
| Początki | |
|---|
| Aktywne | |
|---|
| Nierozwijane | |
|---|