Cili është ndryshimi midis CISC dhe RISC?


përgjigje 1:

RISC është zakonisht një "memorie ngarkese" për / nga regjistrat. Në përgjithësi përdoren tre regjistra, p.sh. B. Shtoni R1 = R2 + R3, ngarkesa dhe kursimi mund ose nuk mund të jenë një përjashtim, me vetëm dy regjistra të përdorur në një udhëzim.

Në përgjithësi, CISC mundëson llogaritjen me vlerat nga adresat e kujtesës pa pasur nevojë së pari t'i futni ato në regjistra. Mund të ketë gjithashtu më shumë mënyra (komplekse) adresimi që lejojnë një ose më shumë regjistra për gjenerimin e adresave.

CISC është në përgjithësi një dy-operantësh, p.sh. B. Shtesa ka të njëjtin regjistër (ose adresë kujtese) të përdorur për destinacionin, por edhe i njëjti për një nga burimet.

Kjo dikur ishte një punë e madhe, dhe RISC ishte me tela dhe CISC përdori mikrokodin.

Mikroarkitektura për CISC, të paktën x86 (nëse nuk përdoren të gjitha CISC, që do të thotë se mainframes IBM janë i vetmi CISC tjetër që mbijeton; mikrokontrolluesit mund të jenë një përjashtim), duke ndarë udhëzimet në mikroops (operacione mikro / RISC-si) që Porositë mund të planifikohen jashtë orarit - të ndryshëm nga mikrokoda origjinale.

RISC madje mund ta bëjë këtë, p.sh. B. ARM më e re (fillimisht jo), kështu që ndryshimet janë më të vogla se më parë.

ARM-ja origjinale nuk kishte asnjë udhëzim për ndarjen e numrave të plotë, sepse ishte shumë komplekse, e lëre më edhe pikë notuese. Tani [ndërlikueshmëria] e zvogëluar vlen për R në RISC më pak, pasi që pika lundruese është në thelb komplekse dhe të gjitha CPU-të e rëndësishme RISC madje mbështesin udhëzime për rrënjën katrore dhe trigonometri.


përgjigje 2:

CISC është optimizuar për të bërë sa më shumë punë të jetë e mundur nga një madhësi e caktuar e komandës. Kjo për shkak se CPU-të nuk kishin cache në atë kohë dhe leximi i udhëzimeve nga memorja do të zgjaste disa cikle. Prandaj, një deklaratë komplekse me shumë ndryshime të statusit nuk ishte problem për sa kohë që ishte kompakt.

RISC është optimizuar për CPU-të që * kanë një cache * të komandës dhe ndryshojnë ngushticën: kasetat mund t'ju japin lehtësisht 64 dhe 128 bit të dhëna për cikël - për sa kohë që ato janë në linjë. Papritur, ju mund të ekzekutoni 1 ose edhe 2 deklarata për cikël për aq kohë sa nuk ka varësi, kështu që deklaratat e pastra që shkaktojnë vetëm një ndryshim të vetëm të statusit bëhen shumë më shpejt.


përgjigje 3:

CISC është optimizuar për të bërë sa më shumë punë të jetë e mundur nga një madhësi e caktuar e komandës. Kjo për shkak se CPU-të nuk kishin cache në atë kohë dhe leximi i udhëzimeve nga memorja do të zgjaste disa cikle. Prandaj, një deklaratë komplekse me shumë ndryshime të statusit nuk ishte problem për sa kohë që ishte kompakt.

RISC është optimizuar për CPU-të që * kanë një cache * të komandës dhe ndryshojnë ngushticën: kasetat mund t'ju japin lehtësisht 64 dhe 128 bit të dhëna për cikël - për sa kohë që ato janë në linjë. Papritur, ju mund të ekzekutoni 1 ose edhe 2 deklarata për cikël për aq kohë sa nuk ka varësi, kështu që deklaratat e pastra që shkaktojnë vetëm një ndryshim të vetëm të statusit bëhen shumë më shpejt.