Professional Documents
Culture Documents
Llojet e adresimeve
Operandi i mënyrës 3 është në kujtesë, ndërsa operandi për mënyrën 2 është një regjistër.
Vini re se versionet e ngarkimit dhe ruajtjes aksesojnë bite, gjysmë fjalë ose fjalë. Për
mënyrën 1, operandi është 16 bit e vetë instruksionit.
Mënyrat 4 dhe 5 adresojnë instruksionet në kujtesë, me mënyrën 4 duke shtuar një adresë
16-bit e zhvendosur majtas me 2 bit në PC dhe mënyra 5 duke lidhur një adresë 26-bit e
zhvendosur majtas 2 bit me 4 bitet e sipërme të PC. Vini re se një operacion i vetëm mund
të përdorë më shumë se një mënyrë adresimi. Add, për shembull, përdor të dyja adresimet
e menjëhershme (addi) dhe me regjistër (add).
Gjuha assembler në procesorë të ndryshëm
Mendohet se gjuhët e kompjuterave janë të ndryshme si ato të njerëzive, por në të vërtetë
gjuhët kompjuterike janë të ngjashme, ato janë si dialekte rajonale sesa si gjuhë të
pavarura.
Prandaj, sapo e mëson njërën, është e lehtë ti mësosh gjuhët e tjera.
Set i instruksioneve më i përdoruri është nga Teknologjia MIPS.
Por ekzistojnë tre grupe të tjera instruksionesh, që përshkruhen si më poshtë:
Forca brutale: bëjnë chipin më të shpejt duke rritur shpejtësinë e orës. (E kufizuar nga
zhvillimi teknologjik me një moment të caktuar kohe.)
-Paralelizmi: bën më shumë gjëra në të njëjtën kohë - të merrni më shumë performancë
për një shpejtësi të caktuar të orës.
-Paralelizim në nivel instruksioni - merren nga makina më shumë instruksione për
sekondë.
- Paralelizim në nivel procesori (si me fije) - përdor më shumë procesorë për të ndarë
punën e të njëjtit problem.
- Paralelizmi në nivelin e të të dhënave - i shpërndan të dhënatnë sisteme të shumëfishta
(p.sh. "cloud").
Paralelizmi në nivel instruksioni: pipeline
Pipeline: ndani ekzekutimin e instruksioneve në hapa të vegjël, secila performohet nga
një pjesë përkatëse e harduerit ( si në figurë).
Paralelizimi në nivel instruksioni: arkitektura superscalare
"Një pipeline i mirë, dy pipeline më të mirë".
- disa instruksione që nuk bien ndesh me burimet ose nuk varen nga njëra tjetra mund të
dërgohen në pipeline të ndryshme,
- korrektësia e këtij procesi sigurohet nga kompilatori, ose duke përdorur pajisje shtesë,
- Shembull: Procesorë Intel (Pentium):
* Pipeline u: instruksione arbitrare,
* Pipeline v: instruksione me numra të plotë dhe me notë.
* Kjo çoi në përfitime të rëndësishme të performancës (Pentium deri në 2 herë më shpejt
se 486).Figura ilustron përdorimin e dy pipelineve.
"Dy pipeline të mira, katër pipeline më mirë"?
Në të vërtetë, jo - shumë kopjime në hardware.
Për CPU të fundme: një pipeline, por me njësi të shumta funksionale, si ilustruhet në
figurë.
Ushtrim
1.Supozojmë që duhet të llogaritim shumëzimin 5 x 10. Kodi në makinën CISC jepet:
mov ax, 10
mov bx, 5
mul bx, ax
Në makinën RISC ISA nuk ka instruksion për shumezimin, kështu që kodi për
shumëzimin për këtë makinë jepet :
mov ax, 0
mov bx, 10
mov cx, 5
Begin:
add ax, bx
Kodi në makinën CISC edhe se është më i shkurtër kërkon më shumë cikle clocku për tu
ekzekutuar. Supozojmë se në secilën arkitekturë, lëvizja regjistër-me-regjistër, mbledhja
dhe loopi kërkon një cikël clocku. Supozojmë gjithashtu që shumëzimi kërkon 30 cikle
clock-u. Krahasoni të dyja kodet me njëri tjetrin.
ARKITEKTURA I / O
E përcaktojmë input / output si një nënsistem të komponentëve që lëviz të dhënat e
koduara midis pajisjeve të jashtme dhe një sistemi pritës (host system), i përbërë nga një
CPU dhe memorie kryesore.
Nënsistemet e I / O përfshijnë, por nuk kufizohen vetëm në:
Figura tregon se si të gjithë këta komponentë mund të përshtaten së bashku për të formuar
një integruar.
Nënsistemi I / O. Ndërfaqet
Modulet I / O kujdesen për lëvizjen e të dhënave ndërmjet kujtesës kryesore dhe një
ndërfaqeje të veçantë të pajisjes.
Interfaces (ndërfaqet) janë projektuar posaçërisht për të komunikuar me disa lloje të
pajisjeve, të tilla si tastierë, disqe ose printera.
Ndërfaqet trajtojnë detajet për t'u siguruar që pajisjet janë gati për grumbullimin e të
dhënave të ardhshme ose që serveri është i gatshëm që të marrë grumbullimin e
ardhshëm të të dhënave që vijnë nga pajisja periferike.
Forma dhe kuptimi i saktë i sinjaleve të shkëmbyera midis një dërguesi dhe një
marrësi quhet protokoll.
Protokollet përfshijnë sinjale të komandës, siç janë p.sh. "Rivendosja e printerit";
sinjalet e statusit, të tilla si "Tape ready"; ose sinjale që kalojnë të dhëna, si "Këtu
janë byte-ët që keni kërkuar".
Në shumicën e protokolleve të shkëmbimit të të dhënave, marrësi duhet të pranojë
komandat dhe të dhënat që i janë dërguar ose tregojnë se është gati të marrë të dhëna.
Ky lloj i shkëmbimit të protokollit quhet një shtrëngim duarsh (handshake).
Pajisjet e jashtme që merren me blloqe të mëdha të të dhënave (si p.sh. printera,
disqet e disqeve dhe kasetë) shpesh janë të pajisura me memorie buffer.
Buffer-at lejojnë që sistemi pritës të dërgojë sasi të mëdha të të dhënave në pajisjet
periferike në mënyrën më të shpejtë të mundshme, pa pasur nevojë të presë derisa
pajisjet e ngadalta mekanike të shkruajnë të dhënat.
Metodat e kontrollit I / O
Sistemet kompjuterike përdorin një nga katër metodat e përgjithshme të kontrollit I / O.
Këto metoda janë :
- Programimet I / O - sistemet që përdorin I / O të programuar i kushtojnë të paktën një
regjistër për përdorimin ekskluziv të çdo pajisje I / O. CPU vazhdimisht monitoron
çdo regjistër, duke pritur që të arrijnë të dhënat. Kjo quhet votim (polling). Pasi CPU
zbulon gjendjen "të dhënat e gatshme", ajo vepron sipas udhëzimeve të programuara
për atë regjistër të veçantë.
- I / O me ndërprerje të drejtpërdrejtë ( interrupt-driven I/O) - Interrupt-driven I / O
mund të mendohet si bisedë e I / O me programime. Në vend që CPU-ja vazhdimisht
ti kërkojë pajisjet e bashkëngjitura nëse kanë ndonjë hyrje, janë pajisjet që i tregojnë
CPU-së kur kanë të dhëna për t'u dërguar. CPU vazhdon me detyra të tjera derisa kur
një pajisje që kërkon shërbimin e ndërpret atë. Ndërprerjet zakonisht sinjalizohen me
një bit në regjistrin e flamujve të CPU-së që quhet një flamur ndërprerës (interrupt
flag). Pasi të ndizet flamuri i ndërprerjes, sistemi operativ ndërpret çfarëdo programi
që po ekzekuton, duke ruajtur gjendjen e programit dhe informacionin e
ndryshueshëm. Sistemi pastaj tërheq vektorin e adresave që tregon adresën rutinë të
shërbimit I / O. Pasi CPU të ketë përfunduar shërbimin kërkuar I / O, ai rikthen
informacionin që ruajti nga programi që po funksiononte kur ndërprerja ndodhi dhe
ekzekutimi i programit vazhdon.
- Akses i menjëhershëm i memories (direct memory access, DMA) - Kur një
sistem përdor DMA, CPU shkarkon ekzekutimin e udhëzimeve të lodhshme I / O.
Për të bërë transferimin, CPU siguron kontrolluesin DMA me vendndodhjen e
byte-ve që do të transferohen, numri i byte-ve që do të transferohen dhe pajisjen e
destinacionit ose adresën e memories. Ky komunikim zakonisht zhvillohet përmes
regjistrave të veçantë I / O në CPU. Pasi vlerat e duhura janë vendosur në kujtesë,
CPU sinjalizon nënsistemin e DMA dhe vazhdon me detyrën e tij të ardhshme,
ndërsa DMA kujdeset për detajet e I / O. Pasi I / O është kompletuar (ose mbaron
me gabim), nënsistemi i DMA-s sinjalizon CPU duke dërguar një ndërprerje tjetër.
- I / O e lidhur me kanalin - Shumica e kompjuterave përdorin një lloj inteligjent të
ndërfaqes DMA të njohur si kanali I / O (channel I/O). Me kanalin I / O, një ose më
shumë procesorë I / O kontrollojnë rrugë të ndryshme I / O të quajtura rrugëzimet e
kanaleve (channel paths). Rrugëzimet e kanaleve për pajisjet "të ngadalta" siç janë
terminalet dhe printerat mund të kombinohen (multipleksohen), duke lejuar
menaxhimin e disa prej këtyre pajisjeve përmes vetëm një kontrolluesi. Në centralet
IBM, një kanal i multiplekuar kanalesh quhet një kanal multiplexor (multiplexor
channel). Kanalet për disk driverat dhe pajisjet e tjera "të shpejta" quhen kanale
përzgjedhëse (selector channels). Kanalet I / O që përdoren nga CPU të vogla quhen
procesorë I / O (I/O processors, IOP), të cilat janë optimizuar për I / O.
Edhe pse një metodë nuk është domosdoshmërisht më e mirë se një tjetër, mënyra në të
cilën një kompjuter kontrollon I / O ka ndikim të madh në dizajnin dhe performancën e
sistemit të përgjithshëm. Qëllimi është të dihet kur të përdoret metoda I / O e caktuar nga
një arkitekturë kompjuterike e veçantë që përshtatet me mënyrën se si sistemi do të
përdoret.
Ushtrime
1.Jepni me një shembull konfigurimin e DMA-së.
2.Cilat janë ndërfaqet që DMA përdor për të shkruajtur të dhënat në hard disk? Jepni
bllok skemën dhe grafikun kohor të realizimit të tij.
Cashe
Në shembullin tonë të bibliotekës, tavolina veproi si një cache-një vend i sigurt për të
ruajtur gjërat (librat) që duhej të shqyrtojmë.
Përdorimi i fjalës cache, si term përdoret gjithashtu për t'iu referuar çdo magazinimi
që arriti të përfitojnë nga lokaliteti i aksesit.
Mënyra më e thjeshtë për të caktuar një vend në cache për secilën fjalë në kujtesë
është që të caktojë vendndodhjen e cache bazuar në adresën e fjalës në kujtesë, kjo
strukturë cache quhet direct-mapped, pasi çdo vend i kujtesës është hartuar direkt
pikërisht në një vend në cache.
Për shembull, pothuajse të gjitha arkivat direkte të hartëzuara (direct-mapped)
përdorin këtë hartë për të gjetur një bllok:
Ushtrime
1.Sa bit kërkohen gjithsej për një cache të drejtpërdrejtë (direct-mapped) të përcaktuar me
të dhëna me 16 KB dhe blloqe me 4 fjalë, duke supozuar një adresë me 32-bit?
2.Konsideroni një cache me 64 blloqe dhe madhësia e bllokut prej 16 byte. Me çfarë
numër blloku hartëzon me adrese byte-i 1200?
Zgjidhje
2.Supozojmë se kemi një instruksion mbledhje që ndiqet menjëherë nga një instruksion
zbritje që përdor shumën ($ s0):
add $ s0, $ t0, $ t1
sub $ t2, $ s0, $ t3
Për dy instruksionet e mësipërme, tregoni cilat faza të pipeline do të lidhen me anë të
kalimit forwarding. Përdorni vizatimin në figurën më poshtë për të përfaqësuar
datapath-in gjatë pesë fazave të pipeline-nit. Drejtoni një kopje të datapath-it për çdo
instruksion. Jepni grafikisht ekzekutimin e fazave me pipeline për të dyja instruksionet.