Arkitektura e Kompjuterëve - Shënime Studimi
Informacion i Përgjithshëm mbi Lëndën
Mësimdhënësi: Prof. Dr. Qamil KABASHI.
Titulli i Kursit: Arkitektura e Kompjuterit (Obligative, Semestri IV, 5 ECTS).
Programi: IKS & EAR.
Qëllimi: Prezantimi i arkitekturës dhe organizimit të kompjuterëve, struktura dhe funksionimi i tyre.
Sistemi i Notimit:
Projekti: .
Kolokfiumet: .
Vijimi: .
Literatura Bazë: Williams Stallings, "Computer Organization and Architecture Designing for Performance".
Konceptet Themelore: Arkitektura, Organizimi, Struktura dhe Funksioni
Arkitektura e Kompjuterit:
Përfshin ato veçori të sistemit që janë të dukshme për programuesin dhe kanë ndikim direkt në ekzekutimin e programit.
Shembuj: Tërësia e instruksioneve (Instruction set), numri i bitëve për paraqitjen e të dhënave (numra, shkronja), teknikat e adresimit të memories, mekanizmat e komunikimit me Hyrje/Dalje (I/O).
Organizimi i Kompjuterit:
Ka të bëjë me njësitë operacionale dhe ndërlidhjet harduerike që realizojnë specifikat arkitektonike.
Shembuj: Sinjalet e kontrollit, teknologjia e memories, ndërmjetësit (interfaces) me periferitë.
Dallimi: Nëse ekziston një njësi harduerike për shumëzim ose jo, kjo është çështje e organizimit; nëse instruksioni i shumëzimit ekziston për programuesin, është çështje e arkitekturës.
Struktura e Kompjuterit: Mënyra se si komponentët janë të ndërlidhur mes vete.
Funksioni i Kompjuterit: Operacionet e komponentëve individualë brenda strukturës.
Katër funksionet kryesore:
Përpunimi i të dhënave (Data processing).
Ruajtja e të dhënave (Data storage).
Bartja e të dhënave (Data movement).
Kontrolli (Control).
Modeli Funksional dhe Struktura e Njësive
Bartja e të dhënave: Kompjuteri duhet të lëvizë të dhëna mes rrethinës së jashtme (pajisje periferike) dhe vetes.
Input-Output (I/O): Kur të dhënat dërgohen/merren direkt nga një pajisje periferike.
Komunikimi i të dhënave: Kur bartja bëhet në distanca të gjata.
Njësia e Kontrollit: Menaxhon resurset dhe orkestron performancën e pjesëve funksionale në përgjigje të instruksioneve.
Komponentët Kryesorë Strukturorë:
Njësia Qëndrore e Procesimit (CPU): Kontrollon operacionet dhe përpunon të dhënat.
Memoria Kryesore (Main Memory): Ruan të dhënat.
Hyrja/Dalja (I/O): Bart të dhënat.
Ndërlidhjet e Sistemit (System Interconnection): Mekanizmat si System Bus (magjistralja) që mundësojnë komunikimin mes pjesëve.
Përbërja e CPU-së: Njësia Aritmetike dhe Logjike (NAL/ALU), Njësia e Kontrollit, Regjistrat, Ndërlidhjet e brendshme.
Evolucioni i Kompjuterëve: Gjeneratat
Gjenerata e Parë (Gypat me vakum):
ENIAC (1943-1946): Krijuar nga Eckert dhe Mauchly.
Specifikat: gypa, fuqi, peshë tona, mbledhje/sekondë, sistem decimal, programim manual me ndërprerës.
Makina IAS (John von Neumann):
Koncepti: Ruajtja e programit dhe të dhënave në të njëjtën memorie.
Struktura: Memoria me lokacione (fjalë) prej bitësh.
Regjistrat e IAS:
MBR (Memory Buffer Register): Përmban fjalën që shkruhet ose lexohet.
MAR (Memory Address Register): Specifikon adresën në memorie.
IR (Instruction Register): Përmban kodin operues (opcode) 8-bitësh.
IBR (Instruction Buffer Register): Ruan përkohësisht instruksionin e djathtë.
PC (Program Counter): Adresa e instruksionit vijues.
AC dhe MQ: Ruajnë rezultatet e përkohshme të ALU (p.sh. rezultat 80-bitësh nga shumëzimi i dy numrave 40-bitësh).
Cikli i Instruksionit: Sjellja (Fetch) dhe Ekzekutimi (Execute).
Gjenerata e Dytë (Transistorët):
Transistorët (1947, Bell Labs) zëvendësuan gypat. Janë më të vegjël, më të lirë, harxhojnë më pak energji.
IBM 7000, përdorimi i kanaleve të të dhënave (data channels).
Gjenerata e Tretë (Qarqet e Integruara - IC):
Përdorimi i portave (gates) dhe qelizave memoruese.
IBM 360 (1964): Familja e parë e planifikuar e kompjuterëve me performancë të shkallëzueshme.
DEC PDP-8: Mikrokompjuteri i parë i lirë (), përdori strukturën OMNIBUS (96 rrugë sinjalesh).
Ligji i Moore-it dhe Performanca
Ligji i Moore-it (1965): Numri i transistorëve në një çip dyfishohet përafërsisht çdo muaj.
Konsekuencat: Kostoja mbetet pothuajse konstante ndërsa fuqi procesuese rritet, madhësia zvogëlohet, rritet besueshmëria.
Ngadalësimi i Rritjes:
Nga viti 1986 deri në 2001, rritja ishte në vit.
Pas vitit 2018, rritja ra në në vit për shkak të kufijve fizikë dhe fundit të shkallëzimit të Dennard-it (konsumi i energjisë për njësi sipërfaqësore nuk është më konstant).
Zhvillimi i Mikroprocesorëve (Intel & PowerPC)
Intel 4004 (1971): Mikroprocesori i parë (4 bitë).
Evolucioni i Intel:
8080 (1974): 8-bit, përdorur në Altair.
8086/8088: 16-bit, baza e IBM PC.
80386: 32-bit, multitasking.
Pentium: Arkitekturë CISC (Complex Instruction Set Computer), superskalar.
Core i7 (2008): Teknologji me shumë bërthama (Multi-core), transistorë.
PowerPC (PPC): Zhvilluar nga IBM, Motorola dhe Apple (1991). Arkitekturë RISC (Reduced Instruction Set Computer).
ARM (Acorn RISC Machine): Arkitekturë RISC dominuese për sistemet e mbjella (embedded) dhe pajisjet mobile (Apple iPhone/iPod) për shkak të konsumit të ulët të energjisë.
Arkitektura Harvard vs. Von Neumann
Von Neumann: Një memorie e vetme dhe një bus i përbashkët për instruksione dhe të dhëna. CPU-ja nuk mund të qaset njëkohësisht në të dyja.
Arkitektura Harvard: Memorie dhe busë të ndarë fizikisht për instruksione (Instruction Memory) dhe të dhëna (Data Memory). Mundëson qasje të njëkohshme.
Performanca dhe Metrikat
Koha e Ekzekutimit (Response Time): Koha mes fillimit dhe mbarimit të një detyre.
Throughput: Sasia e punës së kryer për një kohë të dhënë.
Ekuacioni i Performancës së CPU-së:
Ku:
(Instruction Count): Numri i instruksioneve.
(Clock Cycles Per Instruction): Mesatarja e cikleve për instruksion.
: Frekuenca e klokut (p.sh. ).
MIPS Rate (Millions of Instructions Per Second):
\text{MIPS Rate} = \frac{IC}{\text{Execution Time} \times 10^6} = \n\frac{f_{clk}}{CPI \times 10^6}
Ligji i Amdahl-it
Përdoret për të llogaritur përmirësimin maksimal (Speedup) të një sistemi kur përmirësohet vetëm një pjesë e tij.
Formula:
Ku:
: Fraksioni i programit që mund të paralelizohet (Fraction Enhanced).
: Numri i procesorëve ose faktori i përmirësimit (Speedup Enhanced).
Rezultatet: Nëse , përmirësimi maksimal është , pavarësisht numrit të procesorëve ().
Teknikat e Përshpejtimit
Pipelining: Ndarja e ekzekutimit të instruksionit në faza (Fetch, Decode, Execute, Write) për të përpunuar disa instruksione njëkohësisht. Nuk është paralelizëm i pastër te uniprocesori, por rrit efikasitetin.
Branch Prediction: Parashikimi i degëzimeve të mundshme në kod.
Speculative Execution: Ekzekutimi i instruksioneve para se të dihet nëse do të jenë e nevojshme.
Balancimi i Performancës: Pasi memoria (DRAM) mbetet prapa shpejtësisë së CPU-së, shtohen nivelet e memories Cache (L1, L2, L3) për të reduktuar latentën.
Sfidat e Modernizimit
Fuqia (Power): Sfidë kryesore për shkak të nxehtësisë. Fuqia dinamike vjen nga komutimi i transistorëve.
Vonesa RC: Shpejtësia kufizohet nga rezistenca () dhe kapaciteti () i lidhjeve metalike sa më shumë që ato hollohen.
Teknikat e Kursimit:
Do nothing well: Shkyçja e klokut për modulet joaktive.
DVFS (Dynamic Voltage and Frequency Scaling): Skalimi i tensionit dhe frekuencës sipas ngarkesës.
Overclocking (Turbo Mode): Rritja e frekuencës për një kohë të shkurtër.
Pyetje dhe Ushtrime nga Testet
Pyetje: Pse nuk mund të arrihet paralelizëm ?
Përgjigje: Për shkak të pjesës seriale të programeve, varësive të të dhënave (Data dependencies), nevojës për sinkronizim dhe kufizimeve të burimeve të përbashkëta (Shared memory, bus bandwidth).
Ushtrimi me Speedup: Nëse procesori është herë më i shpejtë në kërkim () dhe kjo kërkesë zë të kohës ():
.
Regjistrat:
MBR: Përmban fjalën e të dhënave për shkrim/lexim në memorie.
MAR & PC: Janë të lidhur me Basin e memories për adresim.