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: 20%20\%.

    • Kolokfiumet: 2×35%=70%2 \times 35\% = 70\%.

    • Vijimi: 10%10\%.

  • 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:

      1. Përpunimi i të dhënave (Data processing).

      2. Ruajtja e të dhënave (Data storage).

      3. Bartja e të dhënave (Data movement).

      4. 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ë:

    1. Njësia Qëndrore e Procesimit (CPU): Kontrollon operacionet dhe përpunon të dhënat.

    2. Memoria Kryesore (Main Memory): Ruan të dhënat.

    3. Hyrja/Dalja (I/O): Bart të dhënat.

    4. 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: 18,00018,000 gypa, 140kW140\,kW fuqi, peshë 3030 tona, 5,0005,000 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 10001000 lokacione (fjalë) prej 4040 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ë (16,000USD16,000\,USD), 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 182418-24 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 52%52\% në vit.

    • Pas vitit 2018, rritja ra në 3.5%3.5\% 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), 1.17×1091.17 \times 10^9 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ë:

    • Koha e CPU=IC×CPI×Koha e ciklit te¨ klokut\text{Koha e CPU} = IC \times CPI \times \text{Koha e ciklit të klokut}

    • Koha e CPU=IC×CPIfclk\text{Koha e CPU} = \frac{IC \times CPI}{f_{clk}}

    • Ku:

      • ICIC (Instruction Count): Numri i instruksioneve.

      • CPICPI (Clock Cycles Per Instruction): Mesatarja e cikleve për instruksion.

      • fclkf_{clk}: Frekuenca e klokut (p.sh. 3GHz    cike¨333.3ps3\,GHz \implies \text{cikël } 333.3\,ps).

  • 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: Speedup=1(1P)+PN- \text{Speedup} = \frac{1}{(1-P) + \frac{P}{N}}

    • Ku:

      • PP: Fraksioni i programit që mund të paralelizohet (Fraction Enhanced).

      • NN: Numri i procesorëve ose faktori i përmirësimit (Speedup Enhanced).

  • Rezultatet: Nëse P=90%P = 90\%, përmirësimi maksimal është 1010, pavarësisht numrit të procesorëve (NN \rightarrow \infty).

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 (RR) dhe kapaciteti (CC) 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 100%100\%?

    • 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ë 2020 herë më i shpejtë në kërkim (Se=20S_e = 20) dhe kjo kërkesë zë 70%70\% të kohës (Fe=0.7F_e = 0.7):

    • Speedup=1(10.7)+0.720=10.3+0.035=10.3352.985\text{Speedup} = \frac{1}{(1 - 0.7) + \frac{0.7}{20}} = \frac{1}{0.3 + 0.035} = \frac{1}{0.335} \approx 2.985.

  • 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.