Articles

Architektury RISC vs. CISC: Która z nich jest lepsza?

Posted on

Reduced Instruction Set Computer (RISC) jest typem lub kategorią procesora, lub Instruction Set Architecture (ISA). Mówiąc ogólnie, ISA jest medium, za pomocą którego procesor komunikuje się z ludzkim programistą (chociaż istnieje kilka innych formalnie zidentyfikowanych warstw pomiędzy procesorem a programistą). Instrukcja to polecenie wydawane procesorowi w celu wykonania pewnej czynności. Zestaw instrukcji to cały zbiór instrukcji dla danego procesora, a termin architektura oznacza określony sposób budowy systemu, który tworzy procesor.

RISC ogólnie odnosi się do usprawnionej wersji swojego poprzednika, komputera o złożonym zestawie instrukcji (CISC). Na początku istnienia procesorów nie było formalnej identyfikacji znanej jako CISC, ale od tego czasu termin ten został ukuty, aby zidentyfikować je jako różne od architektury RISC. Niektóre przykłady mikroprocesorowych architektur zestawu instrukcji (ISA) CISC obejmują Motorolę 68000 (68K), DEC VAX, PDP-11, kilka generacji Intel x86 i 8051.

Przykłady procesorów o architekturze RISC obejmują MIPS, PowerPC, AVR firmy Atmel, procesory PIC firmy Microchip, procesory Arm, RISC-V, a wszystkie współczesne mikroprocesory mają przynajmniej niektóre elementy RISC. Przejście od architektur 8- i 16-bitowych do 32-bitowych zasadniczo wymusiło potrzebę stosowania architektur RISC. Mimo to, minęła dekada zanim architektury RISC zaczęły zdobywać popularność, głównie z powodu braku oprogramowania, które działałoby na architekturach RISC. Intel również miał swój wpływ, ponieważ miał środki, aby kontynuować korzystanie z architektury CISC i nie znalazł potrzeby przeprojektowywania od podstaw. Architektura MIPS była jednym z pierwszych układów ISA RISC i była szeroko wykorzystywana do nauczania architektury RISC.

Kilka historii
Pierwszy układ scalony został zaprojektowany w 1958 roku przez Jacka Kilby’ego. Mikroprocesory zostały wprowadzone w latach 70-tych, pierwszy komercyjny pochodził z Intel Corporation. Na początku lat 80. wprowadzono architekturę RISC. Projekt RISC powstał jako całkowite przeprojektowanie, ponieważ architektura CISC stawała się coraz bardziej złożona. Większość uważa, że John Cocke z IBM wymyślił koncepcję RISC. Historia mówi nam, że aby uzyskać szybszy komputer, nastąpiły pewne istotne zmiany w architekturze mikroprocesorów, które stały się RISC, w tym jednolity format instrukcji i łatwe łączenie instrukcji w potoki. (Pipelining oznacza, że procesor zaczyna wykonywać następną instrukcję zanim obecna instrukcja zostanie ukończona). W latach 70. pamięć była kosztowna, więc mniejsze programy były w centrum uwagi.

Jakie są różnice między RISC i CISC?
Krótka odpowiedź brzmi: RISC jest postrzegany przez wielu jako ulepszenie CISC. Nie ma najlepszej architektury, ponieważ różne architektury mogą być po prostu lepsze w niektórych scenariuszach, ale mniej idealne w innych. Maszyny oparte na RISC wykonują jedną instrukcję na cykl zegara. Maszyny CISC mogą mieć specjalne instrukcje, jak również instrukcje, których wykonanie zajmuje więcej niż jeden cykl. Oznacza to, że ta sama instrukcja wykonywana na architekturze CISC może wymagać kilku instrukcji do wykonania na maszynie RISC. Architektura RISC będzie potrzebowała więcej pamięci roboczej (RAM) niż CISC do przechowywania wartości, ponieważ ładuje każdą instrukcję, działa na jej podstawie, a następnie ładuje następną.

Architektura CISC może wykonać jedną, choć bardziej złożoną instrukcję, która wykonuje te same operacje, wszystkie na raz, bezpośrednio w pamięci. Tak więc architektura RISC wymaga więcej pamięci RAM, ale zawsze wykonuje jedną instrukcję na cykl zegara dla przewidywalnego przetwarzania, co jest dobre dla pipeliningu. Jedną z głównych różnic między RISC i CISC jest to, że RISC kładzie nacisk na wydajność w cyklach na instrukcję, a CISC na wydajność w instrukcjach na program. Szybkość procesora zależy od tego, ile czasu zajmuje wykonanie każdego cyklu zegara, ile cykli zajmuje wykonanie instrukcji oraz od liczby instrukcji w każdym programie. RISC kładzie nacisk na większe rozmiary kodu programu (ze względu na mniejszy zestaw instrukcji, więc wiele kroków wykonywanych po sobie może równać się jednemu krokowi w CISC).

The RISC ISA kładzie nacisk na oprogramowanie nad sprzętem. Zestaw instrukcji RISC wymaga, aby napisać bardziej wydajne oprogramowanie (np. kompilatory lub kod) z mniejszą liczbą instrukcji. CISC ISA używa więcej tranzystorów w sprzęcie do implementacji większej ilości instrukcji i bardziej złożonych instrukcji, jak również.

RISC potrzebuje więcej pamięci RAM, podczas gdy CISC kładzie nacisk na mniejszy rozmiar kodu i używa mniej pamięci RAM niż RISC. Wiele dzisiejszych mikroprocesorów posiada jednak mieszankę atrybutów RISC- i CISC-like, takich jak CISC-like ISA, która traktuje instrukcje tak, jakby były ciągiem instrukcji typu RISC.

Kilka głównych różnic między architekturami CISC i RISC jest wymienionych w tabeli 1.

RISC vs. CISC
Tabela 1: Tabela niektórych różnic pomiędzy architekturami CISC i RISC Instruction Set Architectures (ISAs).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *