Arhitectura RISC
Formularea sarcinii a fost absolut corectă și, ca întotdeauna, de mulți ani înaintea a ceea ce sa făcut în cele din urmă în Occident. Literatură în limba rusă cu privire la procesoarele RISC, nu m-am întâlnit nici atunci, nici acum. Sistemul de referință al Bibliotecii Științifice și Tehnice (SPSTL), care "a dat ființă" pe calculatorul UE, mi-a oferit o listă cu trei duzini de articole de jurnal. Astăzi, datorită internetului, totul a devenit mult mai ușor. și mai dificilă. Ai o mare de legături, dar pentru a găsi descrierea potrivită, trebuie să-ți petreci mult timp.
Pregătind o revizuire tematică dedicată procesatorilor moderni, mi-am amintit de cercetarea acelor ani și am crezut că ar fi frumos, fără a intra în multe detalii, doar pentru a vorbi despre ce este arhitectura RISC.
Deci, ce înseamnă acest nume?
Termenul RISC este acronimul pentru denumirea engleză a acestei arhitecturi, "computer cu un set redus de comenzi" și un antonim al termenului CISC, care denotă un computer cu un set complex de comenzi.
Până în anii 1980, majoritatea procesatorilor s-au bazat pe arhitectura CISC. Aceasta însemna că au avut un set extins de comenzi de diferite lungimi. Deci, în sistemul de comandă al mini-computerului M-7000, produs în Severodonetsk, din câte îmi amintesc, am constat din câteva mii de comenzi ale mașinilor. În ea, a fost posibil să codificați instrucțiunea în modul cel mai complicat din diferite combinații de schimbări. Când scriam un depanator pentru această mașină, trebuia să fac un interpret special pentru astfel de instrucțiuni. Cu toate acestea, pentru setul de comenzi ale mașinilor, legea notorie 80:20, adică programatorul folosește mai mult de 20% din comenzile din întregul set.
Acest fapt și dorința de a reduce costurile procesorului și de a spori performanța acestuia au dus la crearea unei arhitecturi cu un număr foarte mic de comenzi. Un exemplu clasic: primele procesoare SPARC au folosit doar 32 de comenzi.
Deseori vorbim despre ortogonalitatea (simetria) setului de instrucțiuni. Aceasta este atunci când fiecare operație poate avea orice operand, de exemplu, oricare dintre registrele pot fi specificate în comandă. Este clar că setul de comenzi ale procesoarelor CISC nu este ortogonal, deoarece anumite comenzi utilizează un set fix de registre care nu pot fi modificate. Acest lucru cauzează dificultăți suplimentare în dezvoltarea compilatoarelor pentru procesoarele CISC. Compilatoarele pentru procesoarele RISC scriu mult mai ușor. Dar datorită faptului că setul de comenzi are mai puțin, compilarea rezultată a codului obiect ocupă mai mult (până la 50%) volum. Cu toate acestea, eficiența programului C compilat și programul scris în asamblare este de aproximativ 90%, iar pentru procesoarele CISC acesta poate fi mai mic de 45%.
Permiteți-mi să vă reamintesc că toate operațiile din interiorul procesorului, ca și în computer, sunt sincronizate cu ajutorul generatorului de frecvență ceas care transmite forma trapezoidală a semnalului de ceas. De obicei, viteza internă a procesorului este de 2-4 ori mai mare decât viteza ceasului extern. Acest lucru se datorează faptului că la frecvențe înalte (peste 20 MHz), începe să crească brusc interferență trebuie să se confrunte cu lungimea conductoarelor de pe bord pentru a face mai multe straturi comision și t. D. Cuvântul „sincronizat“ înseamnă că fiecare operațiune este pornit într-un punct strict determinat Timp, de exemplu, când sosește marginea de vârf a undei ceasului.
Observ că programatorul se ocupă de procesor ca și de o mașină matematică, dată fiind descrierea fișierului de registru și a unui set de instrucțiuni de mașină, în timp ce el nu trebuie să se gândească la modul în care acest dispozitiv este implementat fizic. De fapt, din cauza tranzitorilor, fiecare circuit poate avea un număr infinit de state intermediare și numai în momentul sincronizării suntem siguri că starea procesorului corespunde complet modelului său matematic.
În conformitate cu semnalele ceasului, toată lucrarea procesorului este împărțită în cicluri: la fiecare ceas din procesorul normal, se efectuează o anumită operație sau o așteptare. În funcție de numărul de cicluri de ceas necesare pentru executarea instrucțiunilor mașinii, acestea din urmă sunt împărțite în lung și scurt. Este rareori posibil să scrieți un program care să fie scurt și să preia puțin spațiu în memorie, de obicei ceva trebuie sacrificat. Deci, programând sisteme în timp real, am folosit un tabel de lungimi de comandă și am ales pe aceia dintre aceștia a căror durată de execuție a fost mai scurtă.
În esență, fiecare procesor este un interpret. Când citește următoarea comandă din program, este analizată mai întâi așa-numita decodare. După ce decodorul a extras codul de operare din comandă și a stabilit că comanda este validă, controlul este transferat la firmware-ul corespunzător care execută comanda. Firmware-ul este scris într-o limbă complet diferită, care funcționează cu registre interne și steaguri ale procesorului, biți ai dispozitivului logic aritmetic și alte dispozitive, cunoscute de obicei numai dezvoltatorilor acestui cristal.
Câștigă foarte mult în setul scurt de comenzi. Setul de comenzi mai mici, cu atât mai puțin timp aveți nevoie pentru a cheltui pe decodarea echipei, t. E. La alocarea Opcode sale și trecerea la firmware-ul care execută aceste instrucțiuni. Cele mai mici echipe și ceea ce sunt mai simple, mai ușor microprogramare, t. E. Programarea firmware-ului, executând instrucțiunile mașinii. Prin urmare, este mai ușor să testați firmware-ul. Cerința de compatibilitate în sus a tuturor procesoarelor Intel 80x80 mă omoară cu necesitatea de a stoca o cantitate imensă de firmware. Microcodul ocupă până la 70% din suprafața cristalului în unele procesoare CISC. La toate mesajele constante de memorie că în următorul procesor CISC se găsește următoarea eroare. În RISC-procesor pentru a îmbunătăți performanța nu este utilizat de obicei de execuție microcod de hardware instrucțiuni puse în aplicare, astfel încât zona de control ia cristalul de mai puțin de 1% din suprafața sa. Reducerea aceleiași zone a cristalului în sine a făcut posibilă aproape dublarea frecvenței de ceas a procesoarelor RISC.
Pentru a îmbunătăți performanța procesoarelor, se utilizează conductele. Acesta permite procesorului să proceseze mai multe comenzi simultan. În timp ce o comandă este executată, următoarea este deja decodată, a treia este selectată din memorie. Există multe scheme complexe de conducte. Dar acesta este un subiect mai restrâns. Voi nota doar că procesoarele în care se implementează acest proces se numesc procesoare superscalare.
De fapt, arhitectura RISC nu este doar un număr redus de instrucțiuni pentru mașină. (Rețineți că în procesoarele ulterioare, de exemplu, PowerPC-ul IBM, numărul lor a depășit o sută).
Există mai multe semne ale unui procesor cu arhitectură RISC.
Cel mai amuzant lucru este că producătorii de procesoare CISC utilizează arhitectura RISC (de exemplu, în K6) pentru a-și îmbunătăți performanțele.
crs / papers / postrisc2 /. precum și discuții / postrisc /.
Astăzi, aproape toți producătorii de calculatoare depun eforturi mari pentru a produce procesoare RISC.
Povestea cu care am început aceste note sa încheiat destul de dură: clientul - o fabrică de mașini mari - avea la acel moment probleme cu banii, iar contractul de dezvoltare nu era semnat. Dar poate cineva va fi norocos să citească aceste rânduri?