Komputer ze zredukowanym zestawem instrukcji - Reduced instruction set computer

Sun UltraSPARC , mikroprocesor RISC

Komputer ze zredukowanym zestawem instrukcji lub RISC ( / r ɪ s k / ) to komputer z małym, wysoce zoptymalizowanym zestawem instrukcji , a nie bardziej wyspecjalizowanym zestawem często spotykanym w innych typach architektury, na przykład w złożonych instrukcjach zestaw komputerowy (CISC). Główną cechą wyróżniającą architekturę RISC jest to, że zestaw instrukcji jest zoptymalizowany za pomocą dużej liczby rejestrów i bardzo regularnego potoku instrukcji , co pozwala na niską liczbę cykli zegara na instrukcję (CPI). Podstawowe cechy filozofii RISC to architektura ładowania/przechowywania , w której dostęp do pamięci uzyskuje się za pomocą określonych instrukcji, a nie jako część większości instrukcji w zestawie, i wymaga jedynie instrukcji jednocyklowych .

Chociaż wiele komputerów z lat 60. i 70. zostało zidentyfikowanych jako prekursory RISC, współczesna koncepcja sięga lat 80. XX wieku. W szczególności dwa projekty na Uniwersytecie Stanforda i Uniwersytecie Kalifornijskim w Berkeley są najbardziej związane z popularyzacją tej koncepcji. MIPS Stanforda został skomercjalizowany jako odnosząca sukcesy architektura MIPS , podczas gdy RISC Berkeley nadał nazwę całej koncepcji i został skomercjalizowany jako SPARC . Kolejnym sukcesem z tamtych czasów były wysiłki IBM , które ostatecznie doprowadziły do ​​powstania architektury zestawu instrukcji IBM POWER , PowerPC i Power ISA . W miarę dojrzewania tych projektów, pod koniec lat 80., a zwłaszcza na początku lat 90., rozkwitło wiele podobnych projektów, stanowiąc główną siłę na rynku stacji roboczych z systemem Unix, a także dla procesorów wbudowanych w drukarkach laserowych , routerach i podobnych produktach.

Wiele odmian projektów RISC obejmuje ARC , Alpha , Am29000 , ARM , Atmel AVR , Blackfin , i860 , i960 , M88000 , MIPS , PA-RISC , Power ISA (w tym PowerPC ), RISC-V , SuperH i SPARC . Zastosowanie procesorów architektury ARM w smartfonach i tabletach, takich jak iPad i urządzenia z systemem Android , zapewniło szeroką bazę użytkowników systemów opartych na architekturze RISC. Procesory RISC wykorzystywane są również w superkomputerach , takich jak Fugaku , który od czerwca 2020 roku jest najszybszym superkomputerem na świecie.

Historia i rozwój

Projekt Alana Turinga z 1946 r. Automatic Computing Engine (ACE) miał wiele cech architektury RISC. Wiele systemów, których historia sięga lat sześćdziesiątych, zostało uznanych za pierwszą architekturę RISC, częściowo w oparciu o podejście ładowania/przechowywania . Termin RISC został ukuty przez Davida Pattersona z projektu Berkeley RISC , chociaż nieco podobne koncepcje pojawiły się już wcześniej.

CDC 6600 zaprojektowany przez Seymour Cray w 1964 roku zastosowano architekturę obciążenia / sklep z zaledwie dwóch trybach adresowania (rejestr + dodaj i zarejestrują + natychmiastowa stałe) i 74 kodów operacji, z podstawowy cykl zegara jest 10 razy szybciej niż czas dostępu do pamięci . Częściowo ze względu na zoptymalizowaną architekturę ładowania/przechowywania CDC 6600, Jack Dongarra twierdzi, że można go uznać za prekursora nowoczesnych systemów RISC, chociaż opracowanie nowoczesnego systemu RISC wymagało pokonania szeregu innych barier technicznych.

IBM 801

Mikroprocesor IBM PowerPC 601 RISC

Michael J. Flynn postrzega pierwszy system RISC jako projekt IBM 801 , rozpoczęty w 1975 roku przez Johna Cocke'a i ukończony w 1980 roku. cyfrowy przełącznik telefoniczny . Aby osiągnąć cel przełączania 300 połączeń na sekundę (1 milion na godzinę), obliczyli, że procesor wymaga wydajności rzędu 12 MIPS, w porównaniu do ich najszybszego komputera typu mainframe w tym czasie, 370/168, który działał z prędkością 3,5 MIPS.

Projekt oparto na badaniu obszernego zbioru statystyk IBM dotyczących ich istniejących platform. Pokazały one, że kod w ustawieniach o wysokiej wydajności intensywnie korzystał z rejestrów i często ich zabrakło. Sugerowało to, że dodatkowe rejestry jeszcze bardziej poprawiłyby wydajność. Dodatkowo zauważyli, że kompilatory generalnie ignorowały ogromną większość dostępnych instrukcji, zwłaszcza ortogonalnych trybów adresowania . Zamiast tego wybrali najszybszą wersję dowolnej instrukcji, a następnie zbudowali z niej małe procedury. Sugerowało to, że większość instrukcji można usunąć bez wpływu na wynikowy kod. Te dwa wnioski działały zgodnie; usunięcie instrukcji pozwoliłoby na skrócenie kodów instrukcji, zwalniając bity w instrukcji, które mogłyby być następnie wykorzystane do wyboru spośród większego zestawu rejestrów.

Program centrali telefonicznej został anulowany w 1975 roku, ale do tego czasu zespół wykazał, że ten sam projekt zapewniłby znaczną poprawę wydajności przy uruchamianiu niemal każdego kodu. W symulacjach wykazali, że kompilator dostrojony do używania rejestrów wszędzie tam, gdzie to możliwe, uruchamiałby kod około trzy razy szybciej niż tradycyjne projekty. Co zaskakujące, ten sam kod działałby o około 50% szybciej nawet na istniejących maszynach ze względu na ulepszone wykorzystanie rejestrów. W praktyce ich eksperymentalny kompilator PL/8, nieco okrojona wersja PL/1 , konsekwentnie generował kod, który działał znacznie szybciej na ich komputerach mainframe.

32-bitowa wersja 801 została ostatecznie wyprodukowana w formie jednoukładowej jako IBM ROMP w 1981 roku, co oznaczało „Mikroprocesor Research OPD [Office Products Division]”. Ten procesor został zaprojektowany do zadań „mini” i był również używany w IBM RT PC w 1986 roku, co okazało się komercyjną porażką. Ale 801 zainspirowało kilka projektów badawczych, w tym nowe w IBM, które ostatecznie doprowadziły do architektury zestawu instrukcji IBM POWER .

RISC i MIPS

Pod koniec lat 70. 801 stał się dobrze znany w branży. Zbiegło się to z nowymi technikami wytwarzania, które umożliwiły wprowadzenie na rynek bardziej złożonych chipów. Zilog Z80 z 1976 roku miał 8000 tranzystorów, natomiast 1979 Motorola 68000 (68k) miał 68.000. Te nowsze projekty zazwyczaj wykorzystywały swoją nowo odkrytą złożoność, aby rozszerzyć zestaw instrukcji, aby uczynić go bardziej ortogonalnym. Większość, podobnie jak 68k, używała do tego mikrokodu , odczytując instrukcje i ponownie je implementując jako sekwencję prostszych instrukcji wewnętrznych. W 68k, pełne 1 / 3 tranzystory zostały użyte do tego microcoding.

W 1979 roku David Patterson został wysłany na urlop naukowy z Uniwersytetu Kalifornijskiego w Berkeley, aby pomóc zespołowi DEC z zachodniego wybrzeża udoskonalić mikrokod VAX. Patterson był zaskoczony złożonością procesu kodowania i doszedł do wniosku, że jest on nie do utrzymania. Najpierw napisał artykuł o sposobach poprawy mikrokodowania, ale później zmienił zdanie i stwierdził, że problemem jest sam mikrokod. Dzięki finansowaniu z programu DARPA VLSI Patterson rozpoczął wysiłek Berkeley RISC . Program, praktycznie dziś nieznany, doprowadził do ogromnej liczby postępów w projektowaniu układów, produkcji, a nawet grafice komputerowej. Biorąc pod uwagę różnorodność programów z ich wariantu BSD Unix , zespół z Berkeley odkrył, podobnie jak IBM, że większość programów nie korzysta z dużej różnorodności instrukcji w 68k.

Wczesne prace Pattersona wskazały na istotny problem związany z tradycyjnym podejściem „więcej znaczy lepiej”; nawet te instrukcje, które były krytyczne dla ogólnej wydajności, były opóźniane przez ich podróż przez mikrokod. Gdyby mikrokod został usunięty, programy działałyby szybciej. A ponieważ mikrokod ostatecznie przyjął złożoną instrukcję i podzielił ją na etapy, nie było powodu, dla którego kompilator nie mógłby tego zrobić. Badania te sugerują, że nawet bez żadnych innych zmian można dokonać procesor z 1 / 3 mniej tranzystorów, które działają szybciej. Zespół 801 IBM również to zauważył; kiedy kompilatory miały do ​​czynienia z wyborem możliwych opkodów, wybierały ten, o którym autorzy wiedzieli, że został zoptymalizowany pod kątem najszybszego działania. Oznaczało to, że mikrokod, który skonstruował sekwencję operacji do wykonania opcode, zawsze robił to samo w kółko. To zadanie wprowadziło opóźnienie, które można było wyeliminować, gdyby mikrokod został usunięty, a aktualnie używany kod operacyjny był bezpośrednio dostępny dla kompilatora.

Odkryto również, że w mikrokodowanych implementacjach niektórych architektur złożone operacje są zwykle wolniejsze niż sekwencja prostszych operacji wykonujących to samo. Wynikało to po części z faktu, że wiele projektów było wykonywanych w pośpiechu, z niewielką ilością czasu na optymalizację lub dostrojenie każdej instrukcji; tylko te najczęściej używane były zoptymalizowane, a sekwencja tych instrukcji mogła być szybsza niż mniej dostrojona instrukcja wykonująca operację równoważną tej sekwencji. Jednym z przykładów był niesławny VAX jest INDEXinstrukcja.

Praca w Berkeley przyniosła również szereg dodatkowych punktów. Wśród nich był fakt, że programy spędzały znaczną ilość czasu na wykonywaniu wywołań podprogramów i zwrotów, i wydawało się, że istnieje możliwość poprawy ogólnej wydajności poprzez przyspieszenie tych wywołań. To skłoniło projekt Berkeley do wybrania metody znanej jako okna rejestrów, która może znacznie poprawić wydajność podprogramów, chociaż kosztem pewnej złożoności. Zauważyli również, że większość instrukcji matematycznych były proste zadania, tylko 1 / 3 z nich faktycznie wykonywane operacje jak dodawanie lub odejmowanie. Ale kiedy te operacje miały miejsce, zwykle były powolne. Doprowadziło to do znacznie większego nacisku na podstawową jednostkę danych arytmetycznych, w przeciwieństwie do poprzednich projektów, w których większość chipa była przeznaczona do sterowania i mikrokodowania.

Powstały Berkeley RISC opierał się na zwiększeniu wydajności dzięki wykorzystaniu potokowania i agresywnemu wykorzystaniu okienek rejestrowych. W tradycyjnym procesorze mamy niewielką liczbę rejestrów, a program może korzystać z dowolnego rejestru w dowolnym momencie. W CPU z oknami rejestrów jest ogromna liczba rejestrów, np. 128, ale programy mogą używać tylko niewielkiej ich liczby, np. ośmiu, w tym samym czasie. Program, który ogranicza się do ośmiu rejestrów na procedurę, może wykonywać bardzo szybkie wywołania procedur : wywołanie to po prostu przesuwa okno "w dół" o osiem, do zbioru ośmiu rejestrów używanych przez tę procedurę, a powrót przesuwa okno z powrotem. Projekt Berkeley RISC dostarczył procesor RISC-I w 1982 roku. Składający się tylko z 44 420 tranzystorów (w porównaniu ze średnią około 100 000 w nowszych konstrukcjach CISC z tamtej epoki) RISC-I miał tylko 32 instrukcje, a mimo to całkowicie przewyższał wszystkie inne jednoukładowe projekt. Podążyli za tym z tranzystorem 40760, 39 instrukcji RISC-II w 1983 roku, który działał ponad trzy razy szybciej niż RISC-I.

Gdy projekt RISC stał się znany w Dolinie Krzemowej , podobny projekt rozpoczął się na Uniwersytecie Stanforda w 1981 roku. Ten projekt MIPS wyrósł z studiów podyplomowych Johna L. Hennessy'ego , stworzył działający system w 1983 roku i mógł uruchamiać proste programy przez 1984. Podejście MIPS kładło nacisk na agresywny cykl zegara i użycie potoku, zapewniając, że może on działać w jak największym stopniu. System MIPS był śledzony przez MIPS-X, aw 1984 Hennessy i jego koledzy założyli MIPS Computer Systems . Komercyjne przedsięwzięcie zaowocowało nową architekturą, która w 1985 roku została również nazwana MIPS i mikroprocesorem R2000 .

Ogólna filozofia koncepcji RISC była szeroko rozumiana w drugiej połowie lat 80. i skłoniła projektantów MIPS-X do sformułowania tego w 1987 r. w następujący sposób:

Celem każdego formatu instrukcji powinno być: 1. proste dekodowanie, 2. proste dekodowanie i 3. proste dekodowanie. Wszelkie próby zwiększenia gęstości kodu kosztem wydajności procesora powinny być wyśmiewane przy każdej okazji.

Wybuch komercyjny

Prototypowy chip RISC-V (2013).

Na początku lat osiemdziesiątych koncepcja RISC była bardzo niepewna. Jeden problem dotyczył wykorzystania pamięci; pojedyncza instrukcja z tradycyjnego procesora, takiego jak 68k, może być zapisana jako pół tuzina prostszych instrukcji RISC. Teoretycznie może to spowolnić system, ponieważ spędzałby więcej czasu na pobieraniu instrukcji z pamięci. Jednak w połowie lat 80. koncepcje dojrzały na tyle, że można je było uznać za komercyjnie opłacalne.

Komercyjne projekty RISC zaczęły pojawiać się w połowie lat 80-tych. Pierwszy MIPS R2000 ukazał się w styczniu 1986 roku, a następnie krótko potem przez Hewlett Packard „s PA-RISC w niektórych swoich komputerach. W międzyczasie wysiłek Berkeley stał się tak dobrze znany, że ostatecznie stał się nazwą całej koncepcji. W 1987 roku Sun Microsystems rozpoczął dostarczanie systemów z procesorem SPARC , opartym bezpośrednio na systemie Berkeley RISC II. Amerykański rządowy Komitet ds. Innowacji w Informatyce i Komunikacji przypisuje sukcesowi systemu SPARC akceptację wykonalności koncepcji RISC. Sukces firmy SPARC przywrócił zainteresowanie ze strony IBM, który wypuścił nowe systemy RISC do 1990 r., a do 1995 r. procesory RISC stały się podstawą wartego 15 miliardów dolarów przemysłu serwerowego.

Pod koniec lat 80. nowe projekty RISC z łatwością przewyższały wszystkie tradycyjne konstrukcje z dużym marginesem. W tym momencie wszyscy inni dostawcy rozpoczęli własne działania RISC. Wśród nich były DEC Alpha , AMD Am29000 , Intel i860 i i960 , Motorola 88000 , IBM POWER , a nieco później IBM/Apple/Motorola PowerPC . Wiele z nich zniknęło, ponieważ często nie oferują one żadnej przewagi konkurencyjnej nad innymi z tej samej epoki. Te, które pozostają, są często używane tylko na rynkach niszowych lub jako części innych systemów, tylko SPARC i POWER mają jakikolwiek znaczący pozostały rynek. Wyjątkiem jest ARM , który we współpracy z Apple opracował projekt o niskim poborze mocy, a następnie wyspecjalizował się na tym rynku, który w tamtym czasie był niszą. Wraz z rozwojem komputerów przenośnych, zwłaszcza po wprowadzeniu iPhone'a , ARM jest obecnie najczęściej stosowaną na rynku konstrukcją procesorów high-end.

Konkurencja między RISC a konwencjonalnymi podejściami CISC była również przedmiotem analizy teoretycznej na początku lat 80., prowadząc na przykład do żelaznego prawa wydajności procesora .

Od 2010 roku na Uniwersytecie Kalifornijskim w Berkeley opracowywana jest nowa architektura zestawu instrukcji typu open source (ISA), RISC-V , do celów badawczych i jako bezpłatna alternatywa dla zastrzeżonych ISA. Od 2014 r . poprawiono wersję 2 ISA przestrzeni użytkownika . ISA zaprojektowano tak, aby można go było rozszerzać od szkieletowego rdzenia wystarczającego dla małego wbudowanego procesora do superkomputera i przetwarzania w chmurze ze standardowymi i zdefiniowanymi przez projektanta chipów rozszerzeniami i koprocesorami. Został przetestowany w konstrukcji krzemowej z ROCKET SoC, który jest również dostępny jako generator procesorów o otwartym kodzie źródłowym w języku CHISEL.

Charakterystyka i filozofia projektowania

Filozofia zestawu instrukcji

Powszechnym niezrozumieniem wyrażenia „komputer o zredukowanym zestawie instrukcji” jest to, że instrukcje są po prostu eliminowane, co skutkuje mniejszym zestawem instrukcji. W rzeczywistości z biegiem lat zestawy instrukcji RISC wzrosły i obecnie wiele z nich ma większy zestaw instrukcji niż wiele procesorów CISC. Niektóre procesory RISC, takie jak PowerPC, mają zestawy instrukcji tak duże, jak na przykład CISC IBM System/370 ; odwrotnie, DEC PDP-8 — bez wątpienia procesor CISC, ponieważ wiele jego instrukcji wymaga wielu dostępów do pamięci — ma tylko 8 instrukcji podstawowych i kilka instrukcji rozszerzonych. Termin „zredukowany” w tym zdaniu miał opisywać fakt, że ilość pracy wykonywanej przez każdą pojedynczą instrukcję jest zmniejszona — co najwyżej o pojedynczy cykl pamięci danych — w porównaniu z „złożonymi instrukcjami” procesorów CISC, które mogą wymagać dziesiątek danych cykle pamięci w celu wykonania pojedynczej instrukcji.

Czasami preferowany jest termin architektura ładowania/przechowywania .

Innym sposobem spojrzenia na debatę RISC/CISC jest rozważenie, co jest ujawnione kompilatorowi. W procesorze CISC sprzęt może wewnętrznie używać rejestrów i bitu flagi w celu zaimplementowania pojedynczej złożonej instrukcji, takiej jak STRING MOVE, ale ukrywa te szczegóły przed kompilatorem. Wewnętrzne operacje procesora RISC są „ujawniane kompilatorowi”, co prowadzi do backronimu „Przenieś interesujące rzeczy do kompilatora”.

Format instrukcji

Większość architektur RISC ma instrukcje o stałej długości (zwykle 32 bity) i proste kodowanie, co znacznie upraszcza logikę pobierania, dekodowania i wydawania. Jedną z wad 32-bitowych instrukcji jest zmniejszona gęstość kodu, która jest bardziej niekorzystna w przypadku komputerów wbudowanych niż w przypadku stacji roboczych i serwerów, do których pierwotnie zaprojektowano architekturę RISC. Aby rozwiązać ten problem, kilka architektur, takich jak ARM , Power ISA , MIPS , RISC-V i Adapteva Epiphany , ma opcjonalny krótki format instrukcji o ograniczonej liczbie funkcji lub funkcję kompresji instrukcji. SH5 wynika również to wzór, aczkolwiek po ewoluowały w kierunku przeciwnym, po dodano dłuższe instrukcje nośników do pierwotnego kodowania 16-bitowym.

Wykorzystanie sprzętu

Dla dowolnego poziomu ogólnej wydajności, układ RISC będzie zwykle miał znacznie mniej tranzystorów dedykowanych do podstawowej logiki, co pierwotnie pozwalało projektantom na zwiększenie rozmiaru zestawu rejestrów i zwiększenie wewnętrznej równoległości.

Inne cechy architektur RISC obejmują:

  • Średnia przepustowość procesora zbliża się do 1 instrukcji na cykl
  • Jednolity format instrukcji, wykorzystujący pojedyncze słowo z kodem operacji w tych samych pozycjach bitowych dla prostszego dekodowania
  • Wszystkie rejestry ogólnego przeznaczenia mogą być używane jako źródło/przeznaczenie we wszystkich instrukcjach, upraszczając projekt kompilatora ( rejestry zmiennoprzecinkowe są często trzymane oddzielnie)
  • Proste tryby adresowania ze złożonym adresowaniem wykonywanym przez sekwencje instrukcji
  • Niewiele typów danych w sprzęcie ( na przykład bez ciągu bajtów lub BCD )

Projekty RISC są również bardziej prawdopodobne, że zawierają model pamięci Harvarda , w którym strumień instrukcji i strumień danych są koncepcyjnie oddzielone; oznacza to, że modyfikacja pamięci, w której przechowywany jest kod, może nie mieć żadnego wpływu na instrukcje wykonywane przez procesor (ponieważ procesor ma oddzielną pamięć podręczną instrukcji i danych ), przynajmniej do momentu wydania specjalnej instrukcji synchronizacji; Procesory CISC, które mają oddzielne pamięci podręczne instrukcji i danych, zazwyczaj automatycznie je synchronizują, aby zapewnić zgodność wsteczną ze starszymi procesorami.

Wiele wczesnych projektów RISC miało również cechę posiadania gniazda opóźnienia rozgałęzienia , przestrzeni instrukcji bezpośrednio po skoku lub rozgałęzieniu. Instrukcja w tej przestrzeni jest wykonywana bez względu na to, czy gałąź jest zajęta (innymi słowy, efekt gałęzi jest opóźniony). Ta instrukcja sprawia, że ​​jednostka ALU procesora jest zajęta przez dodatkowy czas normalnie potrzebny do wykonania rozgałęzienia. W dzisiejszych czasach szczelina opóźniająca gałęzi jest uważana za niefortunny efekt uboczny konkretnej strategii implementacji niektórych projektów RISC, a nowoczesne projekty RISC generalnie go eliminują (takie jak PowerPC i nowsze wersje SPARC i MIPS).

Niektóre aspekty przypisywane pierwszym projektom oznaczonym etykietą RISC około 1975 r. obejmują obserwacje, że kompilatory z ograniczoną pamięcią często nie były w stanie wykorzystać funkcji ułatwiających ręczne kodowanie składania, oraz że złożone tryby adresowania wymagają wielu cykli, do wymaganych dodatkowych dostępów do pamięci. Argumentowano, że takie funkcje będą lepiej wykonywane przez sekwencje prostszych instrukcji, jeśli może to dać implementacje wystarczająco małe, aby pozostawić miejsce na wiele rejestrów, zmniejszając liczbę powolnych dostępów do pamięci. W tych prostych projektach większość instrukcji ma jednakową długość i podobną strukturę, operacje arytmetyczne są ograniczone do rejestrów procesora i tylko oddzielne ładowanie i przechowywanie pamięci dostępu do instrukcji. Właściwości te umożliwiają lepsze równoważenie etapów potoków niż wcześniej, dzięki czemu potoki RISC są znacznie wydajniejsze i umożliwiają wyższe częstotliwości taktowania .

Kolejny impuls zarówno dla RISC, jak i innych projektów pochodził z praktycznych pomiarów w programach świata rzeczywistego. Andrew Tanenbaum podsumował wiele z nich, demonstrując, że procesory często mają przewymiarowane bezpośrednie. Wykazał na przykład, że 98% wszystkich stałych w programie zmieści się w 13 bitach , jednak wiele projektów procesorów przeznacza 16 lub 32 bity do ich przechowywania. Sugeruje to, że aby zmniejszyć liczbę dostępów do pamięci, maszyna o stałej długości może przechowywać stałe w nieużywanych bitach samego słowa instrukcji, tak aby były natychmiast gotowe, gdy procesor ich potrzebuje (podobnie jak natychmiastowe adresowanie w konwencjonalnym projekcie). . Wymagało to małych opkodów , aby pozostawić miejsce na stałą o rozsądnej wielkości w 32-bitowym słowie instrukcji.

Ponieważ wiele rzeczywistych programów spędza większość czasu na wykonywaniu prostych operacji, niektórzy badacze postanowili skupić się na jak najszybszym wykonywaniu tych operacji. Częstotliwość zegara z CPU jest ograniczona przez czas potrzebny do wykonania najwolniejszą sub-operation jakiejkolwiek instrukcji; skrócenie tego czasu cyklu często przyspiesza wykonywanie innych instrukcji. Skupienie się na „zredukowanych instrukcjach” doprowadziło do tego, że powstałą maszynę nazwano „komputerem z ograniczonym zestawem instrukcji” (RISC). Celem było uczynienie instrukcji tak prostymi , aby można je było łatwo łączyć w potok , aby osiągnąć przepustowość pojedynczego zegara przy wysokich częstotliwościach .

Później zauważono, że jedną z najważniejszych cech procesorów RISC było to, że pamięć zewnętrzna była dostępna tylko za pomocą instrukcji ładowania lub przechowywania . Wszystkie inne instrukcje ograniczały się do rejestrów wewnętrznych. Upraszczało to wiele aspektów projektowania procesora: zezwalając na instrukcje o stałej długości, upraszczając potoki i izolując logikę radzenia sobie z opóźnieniem w ukończeniu dostępu do pamięci (brak pamięci podręcznej itp.) tylko do dwóch instrukcji. Doprowadziło to do tego, że projekty RISC były określane jako architektury ładowania/przechowywania .

Porównanie z innymi architekturami

Niektóre procesory zostały specjalnie zaprojektowane tak, aby miały bardzo mały zestaw instrukcji – ale te projekty bardzo różnią się od klasycznych projektów RISC, dlatego nadano im inne nazwy, takie jak komputer z minimalnym zestawem instrukcji (MISC) lub architektura wyzwalana transportem (TTA).

Architektury RISC tradycyjnie odniosły niewiele sukcesów na rynkach komputerów stacjonarnych i serwerów, gdzie dominującą architekturą procesorów pozostają platformy oparte na architekturze x86 . Może się to jednak zmienić, ponieważ procesory oparte na architekturze ARM są opracowywane dla systemów o wyższej wydajności. Producenci, w tym Cavium , AMD i Qualcomm , wydali procesory serwerowe oparte na architekturze ARM. W 2017 r. ARM współpracuje z Crayem w celu stworzenia superkomputera opartego na ARM. Jeśli chodzi o komputer stacjonarny, Microsoft ogłosił, że planuje obsługiwać wersję PC systemu Windows 10 na urządzeniach opartych na Qualcomm Snapdragon w 2017 roku w ramach partnerstwa z Qualcomm. Urządzenia te będą obsługiwać aplikacje Windows skompilowane dla 32-bitowego x86 za pomocą emulatora procesora x86, który tłumaczy 32-bitowy kod x86 na kod ARM64 . Apple ogłosiło, że przeniesie swoje komputery stacjonarne i laptopy Mac z procesorów Intela na wewnętrznie opracowane układy SoC oparte na ARM64, zwane krzemowymi Apple ; pierwsze takie komputery, wykorzystujące procesor Apple M1 , zostały wydane w listopadzie 2020 r. Komputery Mac z krzemem Apple mogą obsługiwać pliki binarne x86-64 z Rosetta 2 , translatorem x86-64 na ARM64.

Jednak poza obszarem komputerów stacjonarnych architektura ARM RISC jest szeroko stosowana w smartfonach, tabletach i wielu formach urządzeń wbudowanych. Podczas gdy wczesne projekty RISC różniły się znacznie od współczesnych projektów CISC, do 2000 r. najwydajniejsze procesory z linii RISC były prawie nie do odróżnienia od najwydajniejszych procesorów z linii CISC.

Wykorzystanie architektur RISC

Architektury RISC są obecnie używane na wielu platformach, od smartfonów i tabletów po jedne z najszybszych superkomputerów na świecie, takie jak Fugaku , najszybszy na liście TOP500 od listopada 2020 r. oraz Summit , Sierra , i Sunway TaihuLight , kolejne trzy na tej liście.

Systemy low-end i mobilne

Na początku XXI wieku większość systemów low-end i mobilnych opierała się na architekturach RISC. Przykłady obejmują:

Komputery stacjonarne i laptopy

Stacje robocze, serwery i superkomputery

Zobacz też

Bibliografia

Zewnętrzne linki