Koja je razlika između CISC-a i RISC-a?


Odgovor 1:

RISC je uglavnom "skladištenje" u / iz registara. Obično se koriste tri registra poput ADD R1 = R2 + R3, učitavanje i spremanje mogu ili ne moraju biti iznimka sa samo dva registra koja se koriste u uputi.

CISC općenito omogućuje izračunavanje vrijednosti s memorijskih adresa, ne mora ih prvo uvoditi u registre. Također bi mogao imati više (složenih) načina adresiranja, što bi moglo omogućiti od jednog do više registara za generiranje adresa.

CISC je u pravilu dvoperidalni, npr. ADD ima isti registar (ili memorijsku adresu) koji se koristi za odredište, ali isto se koristi za jedan od izvora.

To je nekada bila velika stvar, a RISC-ovi žičani i CISC-i su koristili mikrokod.

Sada mikroarhitektura za CISC, barem x86 (ako nije sav CISC koji se koristi, što znači da je IBM mainframes jedini preostali CISC koji preživljava; mikrokontroleri mogu biti iznimka) ruši upute na mikroopterećenja (mikro / RISC-ove operacije) koje mogu zakazivati ​​izvan -uredba za razliku od izvornog mikro-koda.

RISC to može učiniti, npr. Noviji ARM (nije isprva), tako da su razlike manje nego što su bile do sada.

Izvorni ARM nije imao upute za cijelu podjelu jer je bio previše složen, a kamoli za plutajuću točku. Sada je smanjena [složenost] za R u RISC-u primjenjiva manje, jer je plutajuća točka inherentno složena, a svi glavni RISC CPU-ovi podržavaju čak i do četvrtastih korijenskih i trigonometrijskih uputa.


Odgovor 2:

CISC je optimiziran za obavljanje što većeg posla iz određene veličine upute. To je zato što tada CPU-i nisu imali predmemoriju, a čitanje uputa iz memorije trajalo bi više ciklusa, tako da složena uputa s mnogim promjenama stanja nije bila problem sve dok je bio kompaktan.

RISC je optimiziran za CPU-e koji * do * imaju predmemoriju uputa i to mijenja usko grlo: predmemori vam mogu lako dati 64 i 128 bita podataka u svakom ciklusu - sve dok se poravnaju. Odjednom možete pokrenuti 1 ili čak 2 upute po ciklusu sve dok ne postoji ovisnost, tako da čiste upute koje uzrokuju samo jednu promjenu stanja postaju mnogo brže.


Odgovor 3:

CISC je optimiziran za obavljanje što većeg posla iz određene veličine upute. To je zato što tada CPU-i nisu imali predmemoriju, a čitanje uputa iz memorije trajalo bi više ciklusa, tako da složena uputa s mnogim promjenama stanja nije bila problem sve dok je bio kompaktan.

RISC je optimiziran za CPU-e koji * do * imaju predmemoriju uputa i to mijenja usko grlo: predmemori vam mogu lako dati 64 i 128 bita podataka u svakom ciklusu - sve dok se poravnaju. Odjednom možete pokrenuti 1 ili čak 2 upute po ciklusu sve dok ne postoji ovisnost, tako da čiste upute koje uzrokuju samo jednu promjenu stanja postaju mnogo brže.