RISC i CISC

0

Czy RISC i CISC są modelami programowymi (zbiorem zasobów logicznych komputera nie mających
bezpośredniego związku z budową komputera - assembler) czy odnoszą się do zbioru mikrorozkazów danego mikroprocesora ?

0

To są architektury mikroprocesorów:
CISC - Complex Instruction Set Computers
RISC - Reduced Instruction Set Computers
CISC mają długą listę instrukcji gdzie nie wszystkie były przydatne na tyle często, żeby miało to sens, dlatego powstała architektura RISC.

0

Pisząc architektura który zestaw instrukcji masz na myśli ?

0

CISC jest mikroprogramowalny, czyli rozkaz jest interpretowany i wykonywana jest odpowiednia sekwencje mikrorozkazów. Były nawet dziwadła gdzie można było zmieniać mikroprogram i stworzyć sobie własną listę rozkazów.
Czyli interpretacja i sekwencja co musi trwać, stąd pomysł na RISC, pozbyć się mikroprogramowania, a wykonaniem rozkazu sterują jego odpowiednie bity.
Na początku komputery były raczej risc z uwagi na maleńką komplikację, ale dość szybko zwekslowało to w stronę mikroprogramowania i cisk'ów. Drogę z powrotem rozpoczął chyba S. Cray.
Teraz zmienia się to znowu w drugą stronę. Teraz superkomputery robi się z jakichś pentiómów i innych amd'ków (koro 3 ludzi wykopie studnię w tydzień, to pułk saperów da sobie radę w mgnieniu oka :)

Podobnie jak z kalibrem broni palnej, raz modne są duże raz małe, ale sportowo trudno strzelać z calówki, a .22 na okręcie byłoby mało praktyczne.

1
reVis napisał(a)

To są architektury mikroprocesorów:
CISC - Complex Instruction Set Computers
RISC - Reduced Instruction Set Computers
CISC mają długą listę instrukcji gdzie nie wszystkie były przydatne na tyle często, żeby miało to sens, dlatego powstała architektura RISC.

ŹLEEE!

dzisiaj się to inaczej tłumaczy (ponieważ współczesne risce mają zwykle o wiele więcej instrukcji niż cisce):

CISC - komputery o złożonych instrukcjach
RISC - komputery o prostych instrukcjach

główną różnicą między cisc a risc jest taka, że instrukcje risc są łatwiejsze do zdekodowania, wszystkie mają taki sam rozmiar oraz w riscu do obsługi przesłań danych z pamięci są osobne instrukcje. kod riscowy więcej zajmuje, ale za procesor nie musi być aż tak skomplikowany jak ciscowy (bo dekodowanie instrukcji jest łatwiejsze).

współczesne procki x86 i tak mają riscowy rdzeń. dekodery dzielą instrukcje na wiele części (zwane mikrooperacjami - może ich być nawet kilkadziesiąt na jedną instrukcję), zmieniają kolejność wykonywania (ale oczywiście tak, aby wyniki były niezmienione - czyli mogą wykonywać jednoczesnie tylko instrukcje, które nie zależą od siebie), mają mechanizmy wykonywania kodu 'naprzód' (kilka gałęzi naraz - po sprawdzeniu skoku wyniki z błędnych gałęzi są cofane i zapominane), etc.

programista zwykle nie ma bezpośredniego dostępu do mikrooperacji, nawet z poziomu asemblera i to zarówno w riscu jak i w ciscu. ztcw w mipsie jednak chyba były dostępne.

oprócz cisców i risców są jeszcze vliw, epic i inne, które pozwalają jeszcze bardziej uprościć procesor i szybciej wykonywać zrównoleglony kod.

0

Dlaczego w RISCU programista ma nie mieć dostępu do mikrorozkazów ?
Mikrorozkazy są instrukcjami RISC czyli nie są już rozkładane w procesorze na kolejne instrukcje. Jeżeli procesor RISC nie jest zgodny z CISC to żeby go zaprogramować trzeba użyć odpowiedniego asemblera który w tym wypadku jest obrazem architektury RISC np. architektura MIPS lub ARM.</quote>

0

to, że instrukcje risc są łatwe do zdekodowania nie oznacza, że są najmniejszymi operacjami jakie mogą być. np: może być instrukcja riscowa która dodaje i mnoży naraz (typu: wynik = a * b + c) - procek rozkłada ją sobie na mniejsze instrukcje mnożenia i dodawania osobno. ogólnie wiele instrukcji matematycznych jest rozkładalnych na mniejsze instrukcje.

0

To ja tylko podsumuję:
CISC
RISC

0

Warto by się też wspomnieć o takim wynalazku jak Pentium Pro® - taki CISC emulowany przez RISC :)

0

Nie bądź nekrofilem, nie odkopuj zmarłych tematów ;>

0

No to ja trochę od siebie :).
Naprościej scharakterysować architekturę procesorów CISC i RISC w następujący sposób:

RISC - dużo rejestrów, większość rozkazów zoptymalizowana i wykonywana w jednym cyklu lub dwóch (ogólnie w bardzo małej liczbie cykli, czasami nawet kilka instrukcji w jednym cyklu, jeśli wczytywanie mogło odbywać się parami). Lista rozkazów uboga, podobnie jak adresowanie ale to wynika z kosztów optymalizacji pozostałych rozkazów (ilość oczywiście jest względna). Co jednak nie oznacza, że są "gorsze", bo po prostu robią wszystko szybko i zestaw instrukcji, który zawierają to instrukcje używane najczęściej i zazwyczaj wystarczają.

CISC - różne, może być wiele rejestrów, wiele rozkazów, wiele sposobów adresowania, ale rozkazy wykonywane są w wielu cyklach (i to je charakteryzuje w pierwszej kolejności), nie są optymalizowane itd. Procesory te charakteryzowały często większe częstotliwości taktowania niż RISCów właśnie ze względu na wielocyklowe instrukcje (ale i to nie jest regułą, jest to pojęcie względne).

Warto tutaj wspomnieć o ilości instrukcji, która jest pojęciem względnym!

Dodatkowo w procesorach RISC wykombinowano, aby większość instrukcji było tej samej długości i to właśnie powoduje, że są łatwiejsze do zdekodowania. Jako przykład można podać chociażby w AVR taki motyw, że skok rjmp zajmuje tyle samo co np. czyszczenie flagi, bo jest to skok względem licznika rozkazów a takie skoki spotykane są najczęściej, bo rzadko stosuje się długie skoki. Mimo to istnieje też skok jmp (nie w każdym AVRze) i zajmuje 4 bajty a nie dwa, jednak stosowany jest rzadziej. Jeśli już instrucje muszą być dłuższe to są wielokrotnościami instrukcji podstawowowych, czyli jeśli podstawowa długość do 16 bitów to kolejne są 32 bitowe i zazwyczaj na drugiej wielokrotności jest koniec. W CISCowych długość rozkazów była różna, różnista. W przypadku 6502 (opisanego krok dalej) instrukcje były 1 bajtowe (wyłączenie przerywania), 2 bajtowe (ładowanie rejestru), 3 bajtowe (skoki). W innych procesorach to było jeszcze bardziej zróżnicowane np. procesor motoroli 68000.

Procesor 6502 stosowany niegdyś w Commodore 64:
http://boss.iele.polsl.gliwice.pl/pdf/UMC/um6502e.pdf
ma mało instrukcji, ale za to wykonywane są w nawet 6 cyklach! Ma też mało rejestrów -> zaledwie 3 z czego zaledwie jeden ogólnego przeznaczenia, reszta to rejestry indeksowe. Więc można go zaliczyć do CISC. Taktowanie w komputerze 1MHz.

Procesor Z80 wg książki, którą posiadam taktowany był np 4MHz jednak nie zadziwiał prędkością względem 6502. Też była to archtektura CISC. Lista rozkazów była dłuższa od 6502, a niektóre rozkazy wykonywały się w 23 cyklach!

Stary 8080:
http://boss.iele.polsl.gliwice.pl/pdf/Intel/8080.pdf
również był CISCowy. Instrukcji miał trochę, rejestrów mało. Niektóre instrukcje wykonywały się nawet w 18 cyklach.

Dla porównania mały ATTINY13:
jest to RISC. Lista rozkazów dłuższa od 6502, adresowania stosunkowo nie wiele. Większość instrukcji wykonywana w jednym lub dwóch cyklach. Najdłużej wykonują się instrukcje powrotu z przerywania i z podprogramu ale i one są zoptymalizowane do zaledwie 4 cykli. Instrukcje zazwyczaj stałej długości 16 bitów.

Najnowsze procesory trudno przydzielić do jednej z grup, bo zewnętrznie czujemy się jakbyśmy mieli CISCa a wewnętrznie to RISC, więc to taka pośrednia grupa procesorów, której nie opiszę, bo nie jestem na tyle kompetentny ;).

PS. nie jestem nekrofilem :)

Poza tym tak na marginesie to określenie nie pasuje tutaj. Raczej prawidłowe byłoby "nekromania" ale nim też nie jestem :P

0

Poprawiłem Ci kilka literówek, które utudniały czytanie. Post całkiem niezły, napisany w sposób zrozumiały dla innych; mam nadzieję, że trochę ludzi coś z niego wyniesie :-)

RR napisał(a)

PS. nie jestem nekrofilem :)

Każdy ma jakieś zboczenia, tylko winni się tłumaczą ;P

0

tylko winni się tłumaczą

No, ale trudno się do tego nie odnieść co kolega napisał wcześniej ;) heh. W zasadzie celem było ustalenie prawidłowego określenia niż tłumaczenie się.

PS. dzięki za poprawkę. Wolałem tego nie czytać pod względem literówek, bo by ze 30 postów wyszło ;)

0

To był oczywiście żart z tą nekrofilią; po prostu przed odpowiedzią warto się zastanowić, czy ktoś z niej po takim czasie będzie jeszcze chciał skorzystać.

0

Witam
Ma ktos moze jakies ksiazki na temat procesorow o architekturze RISC i CISC, ktore by pomogly w napisaniu pracy.
Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1