- Procesoriaus architektūra
- RISC ir CISC instrukcijų rinkinio architektūra
- Kompleksinis instrukcijų rinkinio skaičiavimas (CISC)
- Sumažintas instrukcijų rinkinio skaičiavimas (RISC)
Įterptoji sistema yra daugumos rinkoje esančių elektroninių gaminių esmė. Tai inžinerijos, kurioje aparatūra atitinka programinę įrangą, įgyvendinimas. Mus supa įterptinių sistemų pasaulis, kuriame yra mini kompiuteriai biometrinėse durų spynose, lėktuvai, automobiliai, širdies stimuliatoriai ir kt. Šie riboti ištekliai, mažos, išmanios ir galingos sistemos padeda mums atlikti kasdienes užduotis.
Kada nors pagalvojote, kaip veikia mūsų kūnas, nervų sistema, smegenys ir gebėjimas atlikti daug užduočių. Sujungę visas šias funkcijas gautumėte apytikslį biologinės įterptosios sistemos vaizdą. Mūsų smegenys slepia sudėtingą savo veikimo detalę, kuri vyksta joje, tačiau leidžia mums ją kontroliuoti maksimaliai. Tas pats sudėtingumas susijęs su įterptosiose sistemose naudojamu procesoriumi arba valdikliu. Jie slepia sudėtingas detales ir suteikia mums aukšto lygio sąsają, su kuria galime dirbti. Abstrakcijos lygiui galima susieti, kaip dviejų skaičių pridėjimo kodas aukšto lygio programavimo kalba sukelia lustuose esančius registrus tvarkyti bitus ir grąžina išvestį vartotojui.
Procesoriaus architektūra
Centrinis procesorius, turėdamas omenyje tiek mikroprocesorių, tiek mikrovaldiklį, atlieka specialias užduotis naudodamasis valdymo bloku (CU) ir aritmetiniu loginiu vienetu (ALU). Kadangi instrukcijos pateikiamos iš RAM, procesorius veikia dviem savo pagalbos vienetais, kurdamas kintamuosius ir priskirdamas jiems vertes bei atmintį. Labai svarbu žinoti, kaip procesorius atlieka visus šiuos veiksmus naudodamas savo architektūrą. Jei norite sužinoti daugiau apie mikrovaldiklio veikimą, galite perskaityti šį pagrindinį mikrovaldiklio straipsnį.
Kiekvienas procesorius turi susietą atmintį programai ir duomenims saugoti. Programa ir duomenys dirba su centriniu procesoriumi, kad gautų išvestį. Programa teikia instrukcijas, o duomenys pateikia informaciją, su kuria reikia dirbti. Norėdami pasiekti programą ir duomenis, procesorius naudoja magistrales, šios magistralės yra laidai, tiksliau tai yra laidų pėdsakai, kuriuos galbūt matėte spausdintinėse plokštėse. Per tuos metus mikrovaldikliai ir mikroprocesoriai tobulėjo pritaikant įvairias architektūras, remiantis taikymo ar projektavimo reikalavimais, mikrovaldiklio pasirinkimą įtakoja jame naudojamas architektūros tipas. Pažvelkime į populiarias architektūras.
Von-Neumanno / Prinstono architektūra
Būdas, kuriuo procesorius gauna prieigą prie programos ir duomenų, pasakoja apie procesoriaus architektūrą. Anksčiau prieigai prie programos ir duomenims buvo naudojama viena magistralė. Šis architektūros tipas yra žinomas kaip Von Neumanno architektūra arba paprasčiau Princeton Architecture. Vieno kodo ir duomenų gavimo magistralės reiškia, kad jie trukdo vienas kitam ir sulėtina procesoriaus apdorojimo greitį, nes kiekvienas turėjo laukti, kol kitas baigs gauti. Šis apribojimas taip pat žinomas kaip „ Von-Neumann“ kliūties būklė.
Harvardo architektūra
Norėdami pagreitinti procesą, buvo pasiūlyta Harvardo architektūra. Šioje architektūroje yra atskiros duomenų magistralės duomenims ir programai. Taigi tai reiškia, kad ši architektūra pasiūlė naudoti keturis autobusus
- Duomenų magistralės rinkinys, perduodantis duomenis į procesorių ir iš jo.
- Adreso magistralės rinkinys, skirtas prieigai prie duomenų.
- Duomenų magistralės rinkinys kodui perkelti į centrinį procesorių.
- Adreso magistralė prieigai prie kodo.
Naudojant atskirą adresų magistralę ir duomenų magistralę, procesoriaus vykdymo laikas buvo mažas, tačiau tai kainuoja sudėtingumo projektuojant architektūrą. „Von Neumann“ architektūra gali skambėti kiek tingiai, tačiau ji turi savo paprasto dizaino pranašumą.
Harvardo architektūrą yra labai lengva įdiegti, kai procesorius ir atminties įrenginiai naudojasi ta pačia erdve arba RAM ir ROM yra įmontuoti (ant lusto) su procesoriumi, pavyzdžiui, mikrovaldiklyje, kur atstumai yra mikronais ir milimetrais. Tačiau tą pačią architektūrą sunku įgyvendinti tais atvejais, kai kodą turinti atmintis yra apdorojimo bloko išorėje, pvz., X86 „IBM PC“. Iš rinkinys atskirų laidų pėdsakų tiek duomenų ir adreso pagrindinėje plokštėje būtų valdyba sudėtinga ir brangu. Supraskime tai su procesoriaus pavyzdžiu.
Procesoriui su 64 bitų duomenų magistrale ir 32 bitų adresų magistrale „Von-Neumann“ architektūrai įgyvendinti reikės maždaug 100 magistralių (96 duomenų ir adresų magistralei ir dar kelių valdymo signalams). Ta pati struktūra, jei ji būtų įgyvendinta pagal Harvardo architektūrą, dvigubų laidų pėdsakams kainuotų maždaug 200, o iš procesoriaus išeitų daugybė kaiščių. Dėl tos pačios priežasties nematome grynosios Harvardo architektūros, įdiegtos kompiuteriams ir darbo stotims. Vietoj to naudojama modifikuota Harvardo architektūra, kurioje programos ir duomenims atskirti naudojama atminties hierarchija su procesoriaus talpyklos atmintimi. Atminties hierarchija atskiria saugyklą pagal procesų atsako laiko hierarchiją.
Instrukcijų rinkinio architektūra
Kadangi programa (kodas) yra įkeliama į sistemos (RAM) atmintį, ją gauna procesorius (nurodydamas tiek mikroprocesorių, tiek mikrovaldiklį), kad veiktų duomenis, jis yra panašus, nes mes duodame instrukcijas mokant šunį tam tikrus veiksmus ir komandas. Kai tos instrukcijos yra vykdomos tam tikriems tranzistoriams, tai pereina iš vieno loginio lygio į kitą. Taigi iš esmės instrukcijų pagalba žmogaus programuotojas bendrauja su procesoriumi. Kiekvienas procesorius turi savo instrukcijų rinkinį, instrukcijų rinkinį, pagrįstą jo architektūra ir galimybėmis.
Centrinis procesorius supranta šias instrukcijas kartu su 0 ir 1, kurie taip pat žinomi kaip „ opcode“. Žmogaus programuotojui tikrai sunku prisiminti 0 ir 1 derinį kiekvienai instrukcijai, susietai su procesoriumi. Kad žmogaus programuotojo darbas būtų lengvas, mums pateikiamos aukšto lygio šių instrukcijų sąsajos, o kompiliatorius jas paverčia 0 ir 1 pavidalais. Be to, kiekvieno procesoriaus instrukcijų rinkinyje yra ribotas instrukcijų, kurias jis gali suprasti, skaičius.
CPU našumas
Galbūt girdėjote terminą „CPU clock rate“, susijusį su procesoriaus našumu. Procesoriai paprastai turi MHz (Mega-Hertz) arba GHz (Giga-Hertz) laikrodžio dažnį, pavyzdžiui, 25 GHz. Skaičius, susietas su laikrodžio dažniu, nurodo, kiek kartų procesoriaus viduje esantis laikrodis pažymimas ciklais per sekundę. Laikrodžio dažnio praktiškumą galima suprasti iš to, kad instrukcijos atliekamos remiantis procesoriaus laikrodžio ciklais, proporcingais programų skaičiui, kurį procesorius gali paleisti vienu metu.
Procesoriaus našumas priklauso nuo nurodymų, kurie parašytų programą, daugiau instrukcijų, daugiau laiko priimtu CPU juos atlikti skaičiaus. Tai taip pat priklauso nuo laikrodžio ciklų, kuriais vykdoma kiekviena instrukcija, skaičiaus. Tam tikroms instrukcijoms atlikti reikia daugiau laikrodžio ciklų nei kitiems, todėl jos atsilieka nuo procesoriaus našumo. Programos nurodymai ir ciklai, reikalingi kiekvienai instrukcijai atlikti, yra atvirkščiai proporcingi vienas kitam. Vieno pakeitimas paveiks kitą. Tai yra ta vieta, kur CPU pramonė yra padalinta.
RISC ir CISC instrukcijų rinkinio architektūra
Kaip minėta pirmiau, programos vykdymas ir procesoriaus našumas priklauso nuo komandų skaičiaus programoje, kurioje instrukcijos siūlomos tam konkrečiam procesoriui kaip komandų rinkinio daliai, o antrasis faktorius yra laikrodžio ciklų skaičius kurią kiekviena instrukcija yra vykdoma. Remiantis šiais dviem veiksniais, šiuo metu yra du instrukcijų rinkiniai. Ankstyviausias iš jų yra sudėtingas instrukcijų rinkinio skaičiavimas (CISC), o kitas - sumažinto nurodymų rinkinio skaičiavimas (RISC). Aptarkime kiekvieną iš šių architektūrų išsamiai, kad suprastume skirtumą tarp RIC ir CISC architektūros.
Kompleksinis instrukcijų rinkinio skaičiavimas (CISC)
CISC reiškia „Complex Instruction Set Computing“. Pagrindinis CISC motyvas yra sumažinti programos vykdomų komandų skaičių. Tai daroma sujungiant daugybę paprastų instrukcijų, tokių kaip adreso režimas, įkelimas ir kt., Ir suformuojant vieną sudėtingą instrukciją. CISC instrukcija apima paprasta instrukcija seriją, taip pat tam tikras specialias instrukcijas, kurios užima daugiau nei vieną takto ciklą vykdyti. CISC instrukcijos gali tiesiogiai veikti atmintyje be įsikišimo į registrus, o tai reiškia, kad nereikalauja kai kurių pagrindinių nurodymų, pvz., Įkelti vertes ir reikalauti atminties (RAM). CISC instrukcijose daugiau dėmesio skiriama aparatinei įrangai, o ne programinei įrangai, o tai reiškia, kad užuot apkraunant kompiliatorius,CISC naudoja tranzistorius kaip aparatūrą instrukcijoms dekoduoti ir įgyvendinti. Tačiau kadangi instrukcijos yra sudėtingos ir susideda iš kelių žingsnių, jos vykdomos daugiau laikrodžio ciklų.
Paprastas analogija susieti yra, kai jums sako, kad atidarytumėte knygą ir perskaityti 3 -iasis skyrelį: 2 -asis puslapį. Šioje užsiėmimų serijoje jūs atliekate kelis veiksmus, pvz., Raskite knygą iš savo krepšio, nei sukeisite puslapį į 3 skyrių, tada pereisite į antrąjį skyriaus puslapį ir pradėsite skaityti. Laiptinio serijos, jei sujungti į vieną nurodymą skaityti 44 puslapyje (kuris yra 2 -asis puslapio numeris iš 3 -iosios skyriuje), kurią mes gauname CISC instrukcijas.
Sumažintas instrukcijų rinkinio skaičiavimas (RISC)
Pirmąjį integruotą lustą sukūrė Jackas Kilby 1958 m., Kuris buvo osciliatorius, o 1970 m. Pirmasis „Intel“ mikroprocesorius pasirodė. Nors pradedant procesorius nebuvo CISC. Tačiau esant dideliems skaičiavimo poreikiams, CISC architektūra tapo vis sudėtingesnė ir sunkiau valdoma. Visą CISC architektūros, žinomos kaip RISC, dizainą IBM sukūrė John Coke. Taigi, norint atskirti abi architektūras, buvo įvesti terminai RISC ir CISC.
RISC reiškia sutrumpintą komandų skaičiavimą. Pagrindinis RISC motyvas buvo įvesti instrukcijų dydžio ir vykdymo vienodumą. Tai buvo padaryta įvedant paprastą komandų rinkinį, kurį būtų galima vykdyti kaip vieną komandą per ciklą. Tai daroma suskaidžius sudėtingas instrukcijas, pvz., Įkėlimą ir saugojimą, į skirtingas komandas, kur kiekvienai komandai vykdyti reikia maždaug vieno laikrodžio ciklo. RISC architektūros apima paprastus nurodymus paties dydžio, kuris gali būti įvykdytas per vieną takto ciklą. RISC pagrįstoms mašinoms reikia daugiau RAM nei CISC, kad būtų galima laikyti vertes, kai kiekviena instrukcija įkeliama į registrus. Vienos instrukcijos vykdymas per ciklą suteikia RISC pagrįstoms mašinoms pranašumą vamzdynuose(„pipelining“ yra procesas, kurio metu kita komanda įkeliama prieš vykdant pirmąją komandą, tai padidina vykdymo efektyvumą). RISC architektūra pabrėžia