Temat: Architektura i procesory RISC
RISC z ang. Reduced Instruction Set Computers oznacza komputer o zredukowanym zbiorze instrukcji jest to architektura 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.
Przez zastosowanie architektury potokowej uzyskujemy w procesorach RISC możliwość wykonywania rozkazów w jednym cyklu zegara, a dokładniej kończenia jednego rozkazu w jednym cyklu zegara przy spełnieniu określonych warunków. Zastosowanie pipeliningu czyli wysyłaniu jednocześnie kilku żądań, bez czekania na odpowiedź przed wysłaniem następnego zlecenia w procesorach RISC prowadzi do konieczności statycznego (na poziomie kompilacji) lub dynamicznego (w czasie wykonywania) przewidywania wyników rozkazów skoków warunkowych. Pierwszym procesorem zaprojektowanym w oparciu o architekturę RISC był RCA1802 wyprodukowany przez firmę RCA.
Cechy charakterystyczne dla procesorów RISC:
procesory typu RISC nie posiadają mikroprogramowania ze względu na postęp w szybkości pamięci RAM
szybkość działania: zegar od prądu stałego do 200 MHz, cykl instrukcyjny od prądu stałego do 200 ns
8-bitowa szyna danych
wewnętrzna pamięć EPROM 512 do 2k x 12 bitów
7 sprzętowych rejestrów funkcji specjalnych
dwupoziomowy stos sprzętowy
bezpośredni, pośredni i względny tryb adresowania danych i instrukcji
ważną cechą tego procesora jest duża liczba rejestrów uniwersalnych (od 25 do 72).
W architekturze RISC każda jednostka ma swój własny zestaw źródeł (resources), na przykład adresów obliczeniowych, co minimalizuje komunikację między tymi jednostkami. To wszystko jest niewidoczne dla programisty, ale nie tylko upraszcza programowanie, również zapewnia zgodność oprogramowania ze wszystkimi procesorami o podobnej architekturze. Jedną z ważniejszych cech takiej architektury jest także to, że arytmetyka zmiennoprzecinkowa korzysta ze stałych składników, przez co nie jest potrzebne specjalne oprogramowanie emulacyjne lub instalacja dość kosztownego koprocesora. Rozkazy zmiennoprzecinkowe mają dodatkowy zestaw 32 rejestrów. Ten prosty sposób zapewnia działanie zarówno podczas obliczeń zmiennoprzecinkowych jak i całoliczbowych - zawsze z podwójną dokładnością.
procesor RISC posiada tylko 33 instrukcje, które wykonywane są w jednym cyklu, z wyjątkiem długich skoków wykonywanych w dwóch cyklach. Instrukcje te mają stałą długość (32 bity), co powoduje przyśpieszenie ich dekodowania. Budowa 32-bitowych rozkazów (instrukcji):
immediate-argument natychmiastowy:
OP - kod operacji
RS - source (źródło)
RT - target (cel)
jump:
register:
SHAMT (Shift Amount)-sterowanie przesunięciem
FUNCT (Function)-rodzaj operacji
Superskalarność z ang. Superscalar czyli możliwość ukończenia kilku instrukcji w pojedynczym cyklu zegara. Jest to możliwe dzięki zwielokrotnieniu jednostek wykonawczych. Pierwszym procesorem Intela z rodziny x86 wykorzystującym superskalarność był procesor Pentium.
operacje wykonywane są na rejestrach (za wyjątkiem load/store)
Rejestr R0 często jest na stałe zerem.
Obrazują to dwa zestawy rejestrów (dla operacji stało i zmiennoprzecinkowych):
STACK POINTER- wskaźnik stosu
Mikroprocesory o architekturze RISC:
IBM 801 - posiadał moc rzędu 15 MIPSów IBM 801 był wykorzystywany przez IBM w wielu urządzeniach takich jak układy kontrolerów w stacjach roboczych System/370 oraz w urządzeniach sieciowych. Na początku lat 80. doświadczenia zdobyte przy projektowaniu IBM 801 zostały wykorzystane przy Projekcie America, który zaowocował architekturą IBM POWER. John Cocke w uznaniu swych zasług został odznaczony Nagrodą Turinga oraz Narodowym Medalem Nauki USA za swoje prace nad 801 i architekturą RISC.
PowerPC - został stworzony przez Apple i IBM-Motorola znane pod skrótem AIM. początkowo przeznaczone były na rynek komputerów osobistych, z czasem stały się często używanymi w zastosowaniach serwerowych, klastrowych oraz w systemach wbudowanych. Mikroprocesor stał się podstawą opublikowanych przez AIM specyfikacji platform referencyjnych PReP oraz CHRP. Popularność przyniósł mu wybór na CPU komputerów osobistych Macintosh produkowanych przez firmę Apple w latach 1994-2006.
MIPS – te procesory stanowiły do roku 2007 jednostkę centralną komputerów firmy SGI, stosowane również w systemach wbudowanych (ang. embedded systems), w szczególności w urządzeniach opartych na systemie operacyjnym Windows CE. Wykorzystywane są w routerach firmy Cisco, oraz we współczesnych konsolach do gier takich jak Nintendo 64, Sony PlayStation, Sony PlayStation 2, Sony PSP. Szacuje się, że procesory MIPS stanowią jedną trzecią produkcji mikroprocesorów typu RISC.
Alpha - znany także jako Alpha AXP, jest 64-bitowym mikroprocesorem RISC zaprojektowanym i wyprodukowanym przez firmę Digital Equipment Corp. (DEC), która wykorzystała go w linii swoich stacji roboczych i serwerów. Został zaprojektowany jako następca rodziny procesorów komputerów VAX, i umożliwiał pracę z systemem operacyjnym VMS oraz Digital UNIX, odmianą systemu Unix firmy DEC (DEC OSF1). Po przejęciu firmy Digital przez Compaq na procesorach Alpha może operować system Tru64 UNIX (po przejęciu firmy Compaq przez Hewlett-Packard przemianowany na HP Tru64 UNIX). Był również wspierany przez Microsoft, jednak tylko do wydania systemu Windows NT 4.0 SP6. Ostatecznie Microsoft nie rozszerzył obsługi procesora Alpha Aktualnie obsługę procesora Alpha posiadają systemy: Linux (m.in. dystrybucje Debian, PLD, CentOS i Alpha Core), FreeBSD, NetBSD i OpenBSD (w ograniczonym zakresie).
ARM - Procesory z architekturą ARM są jednymi z najczęściej stosowanych procesorów na świecie. Używa się ich między innymi w dyskach twardych, telefonach komórkowych, routerach, kalkulatorach a nawet w zabawkach dziecięcych. Obecnie zajmują one ponad 75% rynku 32-bitowych CPU dla systemów wbudowanych. Najbardziej udanym projektem ARM był rdzeń ARM7TDMI szeroko stosowany w telefonach komórkowych. Moc obliczeniowa architektury ARM umożliwia instalacje na procesorze wykorzystującym tę technologię m.in. systemu operacyjnego, z zaimplementowanymi mechanizmami wielowątkowości, z możliwością wykorzystania zawartego w systemie stosu TCP/IP czy systemu plików (np. FAT32). Powstało wiele takich systemów: Windows CE, FreeBSD, NUTOS (Ethernut), i wiele dystrybucji Linuksa opatrzonym hasłem embedded (Embedded Debian i Ubuntu).
AMD 29000 - to seria popularnych mikroprocesorów i mikrokontrolerów o 32-bitowej architekturze RISC produkowanych przez firmę AMD. W swoim czasie były to najbardziej popularne chipy na rynku, szeroko używane przez wielu producentów drukarek laserowych. Pod koniec roku 1995 AMD zaprzestało produkcji 29k pomimo ich popularności, aby skoncentrować się na produkcji klonów x86. Doświadczenie zdobyte przy produkcji 29k, a także część pomysłów zostało użyte do zaprojektowania i wytwarzania AMD K5. Pierwsze modele 29000 produkowane w 1988 miały wbudowany MMU, ale obliczenia zmiennoprzecinkowe były domeną 29027 FPU. 29005 był okrojoną, niskobudżetową wersją. Dwa następne modele 29027 i 29035 miały odpowiednio 8k i 4k cache na instrukcje. Do 29040 dodano FPU i cache. Ostatni model ogólnego przeznaczenia 29050 zbudowany był na architekturze superskalarnej i mógł wykonać do czterech instrukcji w jednym cyklu zegara, posiadał funkcje wykonań spekulatywnych i wykonywania poza kolejnością (ang. out-of-order execution), a także znacznie szybszy FPU.
Motorola 88000 - znana także pod nazwą 88k nigdy nie stała się zbyt popularna. Na jego bazie zbudowano między innymi komputery Data General AViiON oraz Omron Luna-88K. Motorola produkowała także linię płyt głównych MVME opartą o te procesory oraz szynę VME.
ColdFire
SPARC - zawiera dwa typy rejestrów: rejestry ogólnego przeznaczenia do których zaliczamy rejestry całkowitoliczbowe (rejestry r) i rejestry zmiennopozycyjne (rejestry f) oraz zestaw rejestrów statusu/kontrolne zawierających, m.in.: rejestr licznika programu (PC), rejestr stanu procesora (PSTATE), rejestr adresu bazowego pułapki (TRAP), rejestr wskaźnika aktualnego okna (CWP). Te procesory używane są powszechnie w wysokowydajnych serwerach, stacjach roboczych, a także systemach wbudowanych. Zaprezentowane po raz pierwszy w 1985 roku przez Suna. SPARC, będąca zawczasu bardzo radykalna, pozwala na ominięcie wielokrotnych pętli mnożenia i dzielenia. Cechą architektury SPARC, nieczęsto spotykaną w innych rozwiązaniach, jest zastosowanie bardzo dużego zestawu rejestrów ogólnego przeznaczenia (zalecenia implementacyjne mówią nawet o zestawie 64 do 528 - 64-bitowych rejestrach) dostępnych poprzez okna rejestrów, które mogą być przełączane podczas każdorazowego wywołania podprogramu czy obsługi przerwania, za pomocą instrukcji SAVE, tak że zbiór rejestrów stanowiących parametry wywołania podprogramu staje się automatycznie zbiorem rejestrów parametrów lokalnych bez dodatkowych działań programowo-sprzętowych.
PA-RISC - architektura mikroprocesorów stworzona przez firmy Hewlett-Packard oraz VLSI Technology Operation.
Obecnie produkowane procesory Intela z punktu widzenia programisty są widziane jako CISC, ale ich rdzeń jest zgodny z RISC. Rozkazy CISC są rozbijane na mikrorozkazy (ang. microops), które są następnie wykonywane przez szybki blok wykonawczy zgodny z architekturą RISC.