Hvad er forskellen mellem CISC og RISC?


Svar 1:

RISC er generelt "load-store" til / fra registre. Generelt bruges tre registre såsom ADD R1 = R2 + R3, belastning og opbevaring er muligvis ikke en undtagelse med kun to registre, der bruges i en instruktion.

CISC tillader generelt beregning med værdier fra hukommelsesadresser, og behøver ikke at få dem først ind i registre. Det kunne også have flere (komplekse) adressetilstande, der giver mulighed for fra et til flere registre til adressegenerering.

CISC er generelt to-operand, hvor fx ADD har det samme register (eller hukommelsesadresse), der bruges til destination, men også det samme, der bruges til en af ​​kilden.

Dette plejede at være en stor aftale, og RISC fastgjort og CISC ved hjælp af mikrokode.

Nu mikroarchiteture for CISC, mindst x86 (hvis ikke alle CISC i brug, hvilket betyder IBM mainframes den eneste andre overlevende CISC; mikrocontrollere kan være en undtagelse) bryder instruktionerne ned til mikroops (mikro / RISC-lignende operationer), der kan planlægge out-of -ordre i modsætning til den originale mikrokode.

RISC kan endda gøre det, fx nyere ARM (ikke i starten), så forskellene er mindre, end de plejede at være.

Den originale ARM havde ingen helhedsinddelingsinstruktion, da den var for kompliceret, hvad så meget som helst til flydende punkt. Nu gælder den reducerede [kompleksitet] for R i RISC mindre, da flydende punkt i sagens natur er kompliceret, og alle de store RISC CPU'er understøtter selv op til firkantede rod- og trigonometriinstruktioner.


Svar 2:

CISC er optimeret til at udføre så meget arbejde som muligt fra en given instruktionsstørrelse. Dette skyldes, at CPU'er ikke havde cache dengang, og at læse instruktionerne fra hukommelsen ville tage flere cykler, så en kompleks instruktion med mange tilstandsændringer var ikke et problem, så længe det var kompakt.

RISC er optimeret til CPU'er, der * har * en instruktionscache, og som ændrer flaskehalsen: cacher kan nemt give dig 64 og 128 bit data hver cyklus - så længe de er justeret. Pludselig kan du køre 1 eller endda 2 instruktioner pr. Cyklus, så længe der ikke er nogen afhængighed, så rene instruktioner, der kun forårsager en enkelt tilstandsændring, bliver meget hurtigere.


Svar 3:

CISC er optimeret til at udføre så meget arbejde som muligt fra en given instruktionsstørrelse. Dette skyldes, at CPU'er ikke havde cache dengang, og at læse instruktionerne fra hukommelsen ville tage flere cykler, så en kompleks instruktion med mange tilstandsændringer var ikke et problem, så længe det var kompakt.

RISC er optimeret til CPU'er, der * har * en instruktionscache, og som ændrer flaskehalsen: cacher kan nemt give dig 64 og 128 bit data hver cyklus - så længe de er justeret. Pludselig kan du køre 1 eller endda 2 instruktioner pr. Cyklus, så længe der ikke er nogen afhængighed, så rene instruktioner, der kun forårsager en enkelt tilstandsændring, bliver meget hurtigere.