Vous êtes sur la page 1sur 79

Arkitekture Kompjuteri

Leksioni I Evolucioni i kompjuterave dhe performanca

Situata ne sistemet kompjuterike


Application Algorithm Programming Language Operating System/Virtual Machines Instruction Set Architecture Microarchitecture RegisterTransfer Level Gates Circuits Devices Physics
2

Situata ne sistemet kompjuterike


Application Algorithm Programming Language Operating System/Virtual Machines Instruction Set Architecture Microarchitecture RegisterTransfer Level Gates Circuits Devices Physics
3

Arkitektura e Kompjuterave

Arkitektura dhe Organizimi 1 Arkitektura perfshin ato atribute qe jane te dukshme per programuesit
Seti i Instruksioneve, numri i biteve te perdorur per perfaqesimin e te dhenave, mekanizmat I/O, teknikat e adresimit. p.sh. A ka instruksion shumezimi?

Organizimi perfshin menyren se si vecorite implementohen


Sinjalet e kontrollit, nderfaqet, teknologjia e memories. p.sh. A ka nje njesi hardware per shumezimin apo kryhet me mbledhje te njepasnjeshme?

Arkitektura dhe Organizimi 2 E gjithe familja Intel x86 ndan te njejten arkitekture Familja IBM System/370 ndan te njejten arkitekture te pergjithshme Kjo sjelle nje kompatibilitet te kodit
Te pakten prapa

Organizimet ndryshojne ndermjet versioneve te ndryshme

Struktura dhe Funksioni

Strukture eshte menyra se si komponentet lidhen me njeri tjetrin. Funksion eshte operimi i cdo komponenti individual si pjese e struktures

Funksion

Te gjithe funksionet e kompjuterit jane:


Perpunimi i te dhenave Ruajtja e te dhenave Zhvendosja e te dhenave Kontrolli

Pamja funksionale

Funksionet (a) Zhvendosja e te dhenave

Funksionet (b) Ruajtja

Funksionet (c) Perpunimi nga brenda

Funksionet (d) Perpunimi nga paisjet H/D (I/O)

Struktura Niveli kryesor

Periferike

Kompjuter
Njesia kryesore e perpunimit Memoria

Kompjuter

Nderlidhja e sistemit

Hyrje Dalje Linjat e komunikimit

Struktura CPU-ja

CPU
Kompjuter
I/O BUS Memoria CPU

Regjistra

Njesia Arithmetike Logjike

Nderlidhja e brendshme e CPU Njesia e kontrollit

Struktura Njesia e Kontrollit

Njesi Kontrolli
CPU
ALU BUS Regjistra Njesi kontrolli

Sekuenca e veprimeve Dekoderat dhe Regjistrat e njesise

Kontrolli i memories

ENIAC - kryesore Electronic Numerical Integrator And Computer Eckert dhe Mauchly Universiteti i Pennsylvania Filloi ne 1943 Perfundoi ne 1946
Shume vone shrytezime ushtarake

U perdor deri ne vitin 1955

ENIAC - detaje Decimal (jo binare) 20 akumulator me 10 shifra Programohej manualisht me celesa 18,000 tuba me vakum 30 ton 140 m2 140 kW fuqia e konsumuar 5,000 mbledhje/s

von Neumann/Turing Koncepti i ruajtjes se programit Memoria kryesore ruan te dhenat dhe programet ALU vepron mbi te dhena binare Njesia e kontrollit interpreton instruksionet qe vijne nga memoria dhe i ekzekuton Paisjet hyrje dalje komandohen nga njesia e kontrollit Instituti ne Princton
IAS

Perfunduar ne 1952

Struktura e makines se von Neumann

IAS - detaje 1000 x 40 bit fjale


Numra binare 2 x 20 bit instruksione

Grupi i regjistrave(ruajtja ne CPU)


Memory Buffer Register Memory Address Register Instruction Register Instruction Buffer Register Program Counter Accumulator Multiplier Quotient

Struktura e IAS detaje

Kompjutera Komerciale 1947 - Eckert-Mauchly Computer Corporation UNIVAC I (Universal Automatic Computer) Perllogaritjet per censusin ne US ne 1950 U be pjese e korporates Sperry-Rand Ne fund te viteve 50 - UNIVAC II
Me i shpejte Me shume memorie

IBM Paisje qe procesonin letra me vrime 1953 - seria 701


Kompjuteri i pare i IBM me program ne memorie Perllogaritje shkencore

1955 seria 702


Aplikacione biznesi

Paraprine serite 700/7000

Tranzistoret Zevendesuan tubat me vakum Te vegjel Te lire Me pak nxehtesi e cliruar Te ndertuara prej silici (Rera) Te shpikura ne 1947 ne laboratoret e Bell William Shockley et al.

Kompjuterat e bazuar ne tranzistore Gjenerata e dyte e makinave IBM 7000 DEC - 1957
Prodhuan PDP-1

Struktura DEC - PDP-8

Mikroelektronika Kompjuteri perbehet nga porta llogjike, qeliza memorie dhe nderlidhje Keto mund te prodhohen ne nje gjysem percjelles p.sh. Shtrese silici

Gjeneratat e Kompjuterave Tuba vakumi- 1946-1957 Tranzistore - 1958-1964 Shkalle e ulet integrimi(SSI) - 1965 Shkalle e mesme integrimi(MSI) - 1971 Shkalle e larte integrimi(LSI) - 1971-1977 Shkalle shume e larte integrimi(VLSI) 1978 -1991 Shkalla ultra e integrimit(ULSI) 1991 - ?
Mbi 100,000,000 paisje ne chip 100,000 - 100,000,000 paisje ne chip 3,000 - 100,000 paisje ne chip 100-3,000 paisje ne chip Deri ne 100 paisje per chip

Ligji i Moore
Rritje e densitetit te komponenteve ne chip Gordon Moore bashkethemeluesi i Intel Numri i tranzistoreve ne chip do te dyfishohet cdo vit Qe nga 1970 shkalla e rritjes se dendesitetit ka rene Numri i tranzistoreve dyfishohet cdo 18 muaj Kosto e chipit ka ngelur pothuajse e pandryshuar Dendesiteti i larte i paketimit do te thote rruge elektrike me te shkurtra Permasa me te vogla do te thote fleksibilitet me i larte Konsum me i vogel kerkesa per ftohje me te zbutura Me pak nderlidhje rrisin besueshmerine

Rritja e numrit te tranzistoreve

Revolucioni i Kompjuterave Progresi ne teknologjine e kompjuterave


I parashikuar nga ligjet e Moore

Ben aplikacionet e reja te mundura


Kompjutera ne automobile Telefona Projekti i gjenomes se njeriut World Wide Web Motoret e kerkimit

Klasat e kompjuterave Kompjuterat desktop Kompjuterat server


Perdorim i pergjithshem, varietet i softit Subjekt i tradeoff kosto/performance Bazohen ne rrjeta Kapacitet i larte, performance, besueshmeri Nga serverat e vegjel deri tek godinat e tera Te fshehur si komponente te sistemit Kufizime te rrepta mbi fuqi/performance/kosto

Kompjuterat Embedded

Trendi sot

Cfare do te shikojme me tej? Si programet perkthehen ne gjuhe makine


Dhe si hardware-i i ekzekuton ato

Nderfaqja hardware/software Kush e percakton performancen e nje programi


Dhe si mund te permiresohet

Si projektuesit e hardware-it permiresojne performancen Cfare eshte perpunimi ne paralel

Te kuptojme performancen Algoritmat


Percaktojne numrin e operacioneve qe ekzekutohen

Gjuhet e programimit, kompilatori, arkitektura


Percaktojne numrin e instruksioneve makine per cdo operacion

Sistemet e memories dhe procesorit


Percaktojne sa shpejte ekzekutohen instruksionet

Sistemi I/O (duke perfshire SO)


Percakton sa shpejte kryhen veprimet I/O

Poshte programit Programi aplikativ


I shkruar ne gjuhe te nivelit te larte

Software i sistemit
Kompilatori: perkthen kodin ne komanda te makines Sistemi operativ: kodi i sherbimit
Menaxhimi i I/O Menaxhimi i mem. dhe storage Skedulimi i detyrave dhe menaxhimi i burimeve

Hardware-i
Procesori, memoria, kontrollerat I/O

Nivelet e kodit te programit Gjuhe e nivelit te larte


Niveli i abstraksionit me afer problemit Jep mundesi per produktivitet dhe portabilitet Perfaqeson ne menyre tekstuale instruksionet

Gjuha asembler

Paraqitja ne hardware

Binary digits (bits) Instruksione te koduara dhe te dhena

Abstraksionet Abstraksionet ne ndihmojme te merremi me kompleksitetin


Fshehin detajet e teperta te nivelit te ulet

Arkitektura e setit te instruksioneve (ISA)


Nderfaqja hardware/software

Application binary interface


ISA + nderfaqja e software-it te sistemit

Implementimi
Detajet qe qendrojne poshte nderfaqes

Komponentet e nje kompjuteri Te njejtet komponente per cdo tip kompjuteri


Desktop, server, embedded

Input/output perfshin
Paisje per nderfaqen me perdoruesin
Display, keyboard, mouse

Storage
Hard disk, CD/DVD, flash

Adaptore rrjeti
Per komunikimin me kompjutera te tjere

Anatomia e kompjuterit

Paisja dalese

Kablli i rrjetit

Paisja hyrese

Paisja hyrese

Anatomia e Mouse-i Mouse-i optik


Dioda iluminon rrafshin e poshtem Kamera me rezolucion te ulet Njesi e thjeshte perpunuese e imazhit
Shikon per levizje ne drejtimet x, y

Butona dhe levizje vertikale

Shume me e sakte se mouse-i i vjeter

Monitori Monitori LCD : picture elements (pixels)


Pasqyron permbajtjen e nje frame buffer

Ne brendesi

Ne brendesi te procesorit (CPU)

Datapath: kryen operacione ne te dhena Control: kontrollon datapath, memorie, ... Memoria Cache
Nje memorie e shpejt SRAM per akses direkt te te dhenave

Ne brendesi te procesorit AMD Barcelona: 4 processor cores

Nje vend i sigurte per te dhenat


Memoria kryesore volatile
Humbet instruksionet dhe te dhenat me fikjen e makines

Memoria sekondare jo-volatile


Disku magnetik Memoria flash Disku optik (CDROM, DVD)

Rrjeti Komunikim dhe ndarje e burimeve Local area network (LAN): Ethernet
Brenda nje godine

Wide area network (WAN: Internet Rrjeti Wireless : WiFi, Bluetooth

Trendi i teknologjise Teknologjia elektronike zhvillohet


Rritja e kapacitetit dhe performances Kosto e reduktuar
Viti 1951 1965 1975 1995 2005 Teknologjia Vacuum tube Transistor Integrated circuit (IC) Very large scale IC (VLSI) Ultra large scale IC
Kapaciteti DRAM

Rraporti relativ performance/kosto 1 35 900 2,400,000 6,200,000,000

Paisjet I/O Periferike me kerkesa H/D intensive Kerkesa per transferim te larte te te dhenave ne njesine e kohes Procesori mund ta menaxhoje Problem levizja e te dhenave Disa zgjidhje:
Caching Buffering Buse nderlidhese me shpejtesi te larte Struktura busi te avancuara Konfigurime me disa procesore

Shpejtesia e transferimit ne paisje te ndryshme

Permiresimet ne organizimin dhe arkitekturen e chipit Rritja e shpejtesise hardware-ike te procesorit Perdorimi i memories se shpejte me afer procesorit (cache) Ndryshime ne organizim dhe arkitekture
Rritja e shpejtesise efektive te ekzekutimit Paralelizmi

Performanca e procesoreve Intel

Embedded Systems ARM

ARM evolvoi nga arkitektura RISC Perdoret kryesisht ne sistemet embedded


Perdoret brenda ne produkt Jo ne kompjutera te perdorimit te pergjithshem Funksion i dedikuar P.sh. ABS

Cili aeroplan ka performancen me te mire?


Boeing 777 Boeing 747 BAC/Sud Concorde Boeing 777 Boeing 747 BAC/Sud Concorde

Douglas DC8-50

Percaktimi i performances
Douglas DC8-50 0 200 400 600 0
Kapaciteti i pasagjereve

5000

10000

Distanca e udhetimit(milje)

Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC8-50 0 500 1000 1500

Boeing 777 Boeing 747 BAC/Sud Concorde Douglas DC8-50 0 200000


Kapaciteti x shpejtesi

400000

Shpejtesi e udhetimit(mph)

Koha e pergjigjes dhe throughput Koha e pergjigjes (response time)


Sa kohe duhet per te kryer nje detyre

Throughput
Puna totale e kryer per njesi kohe
p.sh., detyra/transaksione/ per ore

Si ndikohen koha e pergjigjes dhe throughput nga


Zevendesimi i procesorit me nje version me te mire? Te shtojme me shume procesore?

Performanca Relative Percaktojme performancen = 1/Kohe ekzekutimi X eshte n here me i shpejte se Y


Performanc a X Performanc a Y = Koha ekzekutimi t Y Koha ekzekutimi t X = n

Shembull: koha per te ekzekutuar nje prog.


10s ne A, 15s ne B Koha ekzekutimitB / Koha ekzekutimitA = 15s / 10s = 1.5 Pra A eshte 1.5 here me e shpejte se B

Matja e kohes se ekzekutimit Koha e harxhuar(Elapse Time)


Koha totale e pergjigjes, duke perfshire te gjthe aspektet Percakton performancen e sistemit
Perpunimi, I/O, vonesa e SO, kohet e lira

Koha e CPU

Koha e shpenzuar duke perpunuar nje detyre Perfshin kohen e perdoruesit me CPU dhe ate te sistemit me CPU Programe te ndryshme ndikohen ndryshe nga CPU dhe performanca e sistemit
Zbresim kohen me I/O, me detyra te tjera

Ora e CPU Funksionimi i hardware-it numerik udhehiqet nga ora e sistemit


Perioda Clock (cikle) Transferimi data Gjendjet e update

Perioda e ores(clock): kohezgjatja e ciklit

p.sh., 250ps = 0.25ns = 2501012s p.sh., 4.0GHz = 4000MHz = 4.0109Hz

Frekuenca e ores (rate): cikle per sekond

Ora e Sistemit

Koha e CPU
Koha CPU = Cikle Ore CPU Koha Cikel Ore Cikle Ore CPU = Frekuence Ore

Performanca permiresohet nga


Reduktimi i numrit te cikleve te ores Rritja e frekuences se ores Projektuesi i hardware-it duhet te zgjedhi midis frekuences se ores dhe numrit te cikleve

Koha e CPU Shembull


Kompjuteri A: frekuenca e ores 2GHz, Koha e CPU 10s Projektimi i kompjuterit B
Kerkojme nje kohe CPU-je 6s Mund te rrisim frekuencen, por do shkaktoje 1.2 ciklet e ores

Sa e shpejte duhet te jete ora e kompjuterit B? Ciklet e OresB 1.2 Ciklet e Ores A Frekuenca B = = Koha e CPUB 6s Ciklet e Ores A = Koha CPUA Frekuenca A = 10s 2GHz = 20 10 9 1.2 20 10 9 24 10 9 Frekuenca B = = = 4GHz 6s 6s

Numri i instruksioneve dhe CPI


Ciklet e Ores = Numri i Instruksioneve Ciklet per Instruksion Koha CPU = Numri i Instruksioneve CPI Koha e Ciklit te Ores Numri i Instruksioneve CPI = Frekuenca

Numri i Instruksioneve per nje program


Percaktohet nga programi, ISA dhe kompilatori

Mesatarja e cikleve per Instruksion


Percaktohet nga hardware-i i CPU-se Nese instruksione te ndryshme kane CPI te
Merret mesatarja e CPI

CPI Shembull Kompjuteri A: Koha e Ciklit = 250ps, CPI = 2.0 Kompjuteri B: Koha e Ciklit = 500ps, CPI = 1.2 ISA e njejte Cili eshte me i shpejte dhe sa? Koha CPU i Instruksio neve = Numri CPI Koha e Ciklit A A A
A me i shpejte Koha CPU = Numri i Instruksio neve CPI Koha e Ciklit B B B = I 1.2 500ps = I 600ps
Koha CPU B = I 600ps = 1.2 Koha CPU I 500ps A
= I 2.0 250ps = I 500ps

me kaq here

CPI me shume detaje Nese klasa te ndryshme instruksionesh kerkojne numer te ndryshem ciklesh
Ciklet e Ores = (CPIi Numri i Instruksio neve i )
i=1 n

CPI mesatare e peshuar

n Ciklet e Ores Numri i Instruksio neve i CPI = = CPIi Numri i Instruksio neve i=1 Numri i Instruksio neve

Frekuenca relative

CPI Shembull Sekuenca kodi te kompiluara ne menyra te ndryshme duke perdorur instruksione nga klasat A, B, C
Klasa CPI per klase Nr. Inst. per sek 1 Nr. Inst. per sek 2

A 1 2 4

B 2 1 1

C 3 2 1

Sekuenca 1: Nr. Inst. = 5

Sekuenca 2: Nr.Inst. = 6

Cikle Ore = 21 + 12 + 23 = 10 CPI mes. = 10/5 = 2.0

Cikle Ore = 41 + 12 + 13 =9 CPI mes. = 9/6 = 1.5

Permbledhje e Performances
Instruksio ne Cikle Ore Sekonda Koha e CPU = Program Instruksio ne Cikle Ore

Performanca varet nga


Algoritmi: afekton Nr. Ins., edhe CPI Gjuha e programimit: afekton Nr. Ins., CPI Kompilatori: afekton Nr. Ins., CPI Arkitektura e Setit te Instruksioneve: afekton Nr. Ins., CPI, Kohen e ciklit

Fuqia

Ne teknologjine CMOS
Fuqia = Ngarkesa Kapacitive Tensioni 2 Frekuenca
30 5V 1V 1000

Reduktimi i Fuqise Supozojme qe CPU e re ka


85% te ngarkeses kapacitive te CPU se vjeter Reduktim 15% tension dhe 15% ne frekuence C vjeter 0.85 (Vvjeter 0.85) 2 Fvjeter 0.85 Pe re 4 = = 0.85 = 0.52 2 Pvjeter C vjeter Vvjeter Fvjeter

Muri i fuqise

Nuk mund te reduktojme tensionin me tej Nuk mund te heqim me shume nxehtesi

Si mund ta permiresojme ndryshe performancen?

Performanca Uniprocesor

Kufizuar nga fuqia, paralelizmi ne nivel instruksionesh, vonesa e memories

Multiprocessors Mikroprocesoret multicore


Me shume se nje procesor per chip

Kerkon programim ne paralel


Krahaso me paralelizmin ne nivel instruksionesh
Hardware ekzekuton disa instruksione njeheresh I fshehur nga programuesi

I veshtire per tu bere


Programimi per performance Balancimi i ngarkeses Optimizimi i komunikimit dhe sinkronizimit

Frekuenca e ekzekutimit Millions of instructions per second (MIPS) MIPS=I/KohaCPU*106 Millions of floating point instructions per second (MFLOPS) Varen shume nga seti i instruksioneve, projektimi i kompilatorit etj

Ligji i Amdahl Nese F eshte pjesa e llogaritjeve sekuenciale, dhe (1-F) eshte pjesa qe mund te paralelizohet, atehere rritja maksimale e shpejtesise qe mund te arrihet me P procesore eshte

speedup=1/(F+(1-F)/P)

Shembull Nese 90% e llogaritjeve mund te paralelizohen (pra 10% jane sekuenciale) atehere rritja maksimale e shpejtesise qe mund te arrihet me 5 procesore eshte 1/(0.1+(1-0.1)/5) pra 3.6 . Do te thote qe programi mund te ekzekutohet maksimumi 3.6 here me shpejte ne nje sistem me 5 procesore ne krahasim me nje sistem me nje procesore.

Ne program sekuencial Rritja maksimale e shpetesise ne nje program sekuencial ku nje pjese permiresohet me p here, kufizohet nga mosbarazimi

Ku f eshte pjesa e kohes e shpenzuar me perpara(para permiresimit) ne njesine qe nuk u ndryshua.

Shembull Nese pjesa B ne nje kompjuter eshte bere 5 here me e shpejte (p=5) tA =3 tB=1 atehere f= tA/ (tA+tB)=0.75

Speedup5/1+0.75(5-1) =1.25 Nese pjesa A behet 2 here me e shpejte p=2, f=tB/(tA+tB)=0.25 Speedup2/1+0.25(2-1) =1.60

Shembull perfundimi Rritja e A me nje faktor 2 sjell nje permiresim me te larte ne performance sesa rritja e B Perqindja jepet nga formula

(1-1/speedup)*100

Permbledhje Kosto/performance po permiresohet Shtresat hierarkike te abstraksionit


Ne hardware dhe software Nderfaqja hardware/software Per shkak te permiresimeve teknologjike

Arkitektura e setit te instruksioneve Koha e ekzekutimit: njesia me e mire per matjen e performances Fuqia eshte nje faktor limitues
Perdoret peralelizmi per te permiresuar performancen.

Literatura 1. 2. 3. Arkitektura e Kompjuterave, Agim Cami (faqe 11-16) Organizimi dhe arkitektura e kompjuterave (faqe 37-48) Computer organization and design, D.Patterson, J.Hennessy (Kapitulli I)

FALEMINDERIT

Vous aimerez peut-être aussi