SPARC: erinevus redaktsioonide vahel

Eemaldatud sisu Lisatud sisu
Ivaat (arutelu | kaastöö)
Resümee puudub
Martinappo (arutelu | kaastöö)
Resümee puudub
9. rida:
 
SPARC 9, mis on hetkeseisuga kõige uuem SPARC versioon, kasutab lineaarset aadressiruumi ning 64-bitist adresseerimist. Protsessori põhilised andmetüübid on 32- ja 64-bitised täisarvud ning 32-, 64- ja 128-bitised ujuvkomaarvud. Protsessori instruktsioonid on kõik täpselt 32 biti suurused. SPARC protsessoril on kaks erinevat töörežiimi: priviligeeritud ning mittepriviligeeritud. Priviligeeritud režiimis saab protsessor käivitada kõiki olemasolevaid instruktsioone, mittepriviligeeritud režiimis aga mitte. SPARC 8 kasutas ainult big-endian süsteemi. SPARC 9 kasutab samuti instruktsioonides big-endian süsteemi, kuid saab andmete puhul hakkama nii big-endian kui little-endian süsteemides.
===Üksused===
 
SPARC protsessoris on kaks põhilist üksust: täisarvuplokk (integer unit) ning ujuvkomaplokk (floating-point unit). Täisarvuploki juurde kuuluvad üldotstarbelised registrid ning see tegeleb lisaks täisarvude arvutamisele ka protsessori üldise juhtimisega. See arvutab ka mäluaadresse ning kontrollib ujuvkomaploki instruktsoonide käivitamist. Ujuvkomaplokk tegeleb ujuvkomaarvutustega. Selle juurde kuulub 32 32-bitist, 32 64-bitist ning 16 128-bitist registrit.
===Registrid===
 
SPARC protsessoril on 2 tüüpi registreid: üldotstarbelised (general-purpose) ja kontroll/staatus registrid. Üldotstarbelised registrid on täisarvude tööregistrid (Integer working registers) ning ujuvkomaarvude tööregistrid (Floating-point working registers). Kontroll/staatus registreid on palju erinavaid ning igaüks neist täidab üsnagi spetsiifilist alaülesannet. Nende üldine eesmärk on aga kontrollida protsessori üldist toimimist erinevate seisundite ning lugejate (counter) kaudu. Kontroll/staatus registrite alla kuuluvad näiteks Program Counter register, Processor State register ja Floating-Point State Register. Osasid registreid on võimalik kasutada ainult priviligeeritud töörežiimis, kuid enamikule neist on olemas juurdepääs ka mittepriviligeeritud režiimis.
===Instruktsioonid===
 
SPARC instruktsioonid on kodeeritud neljas erinevas variandis ning on jaotatud 11 kategooriasse. Kui protsessor loeb mälust instruktsiooni, siis on kolm võimalust: instruktsioon käivitatakse, nullitakse või tõkestatakse (trap). Protsessor valib järgmise käsu, mida käivitatakse, kasutades mälu aadressi, mis on kirjas programmi lugejas (program counter). Peale instruktsiooni käitmist suurendatakse automaatselt programmi loendurit, mille tulemusel käivitatakse juba järgmine instruktsioon. SPARC 9 instruktsioonid grupeeritakse järgnevalt: Memory access, Memory synchronization, Integer arithmetic, Control transfer, Conditional moves, Register window management, State register access, Privileged register access, Floating-point operate, Implementation-dependent ja Reserved instruktsioonid.
===Mälumudelid===
 
SPARC kasutab mälumudeleid, mis määravad ära, kuidas toimuvad erinevad mäluoperatsioonid. Mälumudelid on vajalikud sel põhjusel, et kuigi protsessori instruktsioonid määravad mäluoperatsioonide järjekorra üheselt, siis võib nende tegelik täitmisjärjekord siiski tegelikkuses olla erinev. Mälumudelid määravad, millised kitsendused seatakse mäluoperatsioonide täitmise järjekorrale. Erinevaid mälumudeleid kasutades on programmeerijatel võimalik rakendusi optimiseerida või paremini sünkroniseerida. SPARC protsessorid toetavad kolme erinevat mälumudelit: Total Store Order
(TSO), Partial Store Order (PSO), and Relaxed Memory Order (RMO). Relaxed Memory Order on neist kõige vähem range instruktsioonide täitmise järjekorraga, kõik sellele mudelile mõeldud rakendused ka teiste mudelite korral.
===Allüksused===
 
SPARC 9 kasutab käskude täitmiseks kolme allüksust: käsulugemisüksus (issue unit), järjestamisüksus (reorder unit), ja käsutäitmisüksus (execute unit). Käsulugemisüksus loeb mälust instruktsiooni, mida on vaja järgmisena täita ning edastab selle järjestamisüksusele. See üksus muudab instruktsioonide järjekorda võimalikult optimaalseks arvestades mälumudeli poolt seatud kitsendusi. Järjekorda muudetakse, kuna tihti on võimalik mitut instruktsiooni paralleelselt täita ja nii aega kokku hoida. Järjestatud instruktsioonid edastatakse käsutäitmisüksusele, mis instruktsioonid reaalselt käivitab.
<ref>{{citation|url = http://www.sparc.org/standards/SPARCV9.pdf | title= The SPARC Architecture Manual , Version 9| author = SPARC International, Inc.| editor= David L. Weaver |editor2= Tom Germond| publisher = PTR Prentice Hall|isbn=0-13-825001-4| year=1994}}</ref>