Jaka jest różnica między CISC a RISC?


Odpowiedź 1:

RISC jest zasadniczo „ładowaniem” do / z rejestrów. Zasadniczo stosuje się trzy rejestry, takie jak ADD R1 = R2 + R3, ładowanie i przechowywanie może, ale nie musi być wyjątkiem, z tylko dwoma rejestrami użytymi w instrukcji.

CISC ogólnie pozwala na obliczenia z wartościami z adresów pamięci, bez konieczności ich wcześniejszego wprowadzania do rejestrów. Może także mieć więcej (złożonych) trybów adresowania, umożliwiając generowanie adresów od jednego do więcej rejestrów.

CISC ogólnie jest dwupandandowy, na przykład ADD ma ten sam rejestr (lub adres pamięci) użyty jako miejsce docelowe, ale również taki sam używany dla jednego ze źródeł.

Kiedyś była to wielka sprawa, a RISC na stałe i CISC korzystały z mikrokodu.

Teraz mikroarchitetura dla CISC, przynajmniej x86 (jeśli nie wszystkie CISC w użyciu, co oznacza, że ​​mainframe IBM to jedyne pozostałe CISC, które przetrwały; mikrokontrolery mogą być wyjątkiem) rozkłada instrukcje na mikroprocesory (operacje podobne do mikro / RISC), które mogą zaplanować wyjście poza -Order w przeciwieństwie do oryginalnego mikrokodu.

RISC może nawet to zrobić, np. Nowszy ARM (początkowo tego nie zrobił), więc różnice są mniejsze niż kiedyś.

Pierwotny ARM nie miał instrukcji podziału liczb całkowitych, ponieważ był zbyt skomplikowany, nie mówiąc już o dowolnych zmiennoprzecinkowych. Teraz zmniejszona [złożoność] R w RISC ma mniejsze zastosowanie, ponieważ liczba zmiennoprzecinkowa jest z natury złożona, a wszystkie główne procesory RISC obsługują nawet do pierwiastka kwadratowego i instrukcji trygonometrii.


Odpowiedź 2:

CISC jest zoptymalizowany do wykonywania jak największej ilości pracy przy danym rozmiarze instrukcji. Jest tak, ponieważ procesory nie miały wtedy pamięci podręcznej, a odczytanie instrukcji z pamięci zajęłoby wiele cykli, więc złożona instrukcja z wieloma zmianami stanu nie stanowiła problemu, o ile była zwarta.

RISC jest zoptymalizowany dla procesorów, które * mają * pamięć podręczną instrukcji, co zmienia wąskie gardło: pamięci podręczne mogą z łatwością zapewnić 64 i 128 bitów danych w każdym cyklu - pod warunkiem, że są wyrównane. Nagle możesz uruchomić 1 lub nawet 2 instrukcje na cykl, o ile nie ma zależności, więc czyste instrukcje, które powodują tylko jedną zmianę stanu, stają się znacznie szybsze.


Odpowiedź 3:

CISC jest zoptymalizowany do wykonywania jak największej ilości pracy przy danym rozmiarze instrukcji. Jest tak, ponieważ procesory nie miały wtedy pamięci podręcznej, a odczytanie instrukcji z pamięci zajęłoby wiele cykli, więc złożona instrukcja z wieloma zmianami stanu nie stanowiła problemu, o ile była zwarta.

RISC jest zoptymalizowany dla procesorów, które * mają * pamięć podręczną instrukcji, co zmienia wąskie gardło: pamięci podręczne mogą z łatwością zapewnić 64 i 128 bitów danych w każdym cyklu - pod warunkiem, że są wyrównane. Nagle możesz uruchomić 1 lub nawet 2 instrukcje na cykl, o ile nie ma zależności, więc czyste instrukcje, które powodują tylko jedną zmianę stanu, stają się znacznie szybsze.