RISC

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Ujednoznacznienie Ten artykuł dotyczy procesorów. Zobacz też: RISC - RNA-induced silencing complex w genetyce.

RISC (Reduced Instruction Set Computing) – 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 - statystycznie tylko nieliczna ich część była wykorzystywana w programie. Okazało się na przykład, że ponad 50% rozkazów w kodzie to zwykłe 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%[1].

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

  1. 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.
  2. 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: rejestr_C = rejestr_A \quad operacja \quad rejestr_B[2].
  3. 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.
  4. 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 w oparciu o architekturę RISC był RCA1802 wyprodukowany przez firmę RCA.

Obecnie[kiedy?] 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 wielu znaczących wad) jest podejściem znacznie bardziej wydajnym (szczególnie, że RISC-owy blok wykonawczy jest znacznie bardziej nowoczesny od architektury CISC widocznej dla programisty).

Przedstawiciele tej architektury[edytuj | edytuj kod]

Przykłady rodzin mikroprocesorów o architekturze RISC:

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. Dane procentowe za: Józef Kalisz, „Podstawy elektroniki cyfrowej”.
  2. 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