Kapitulli 1 – Njësitë dhe koncepte kryesore të kompjuterave

Këto janë temat që trajtohen në këtë kapitull:

– Njësia e kontrollit, funksioni dhe struktura

– Kujtesa, struktura, hierarkia e kujtesës

– Formati i të dhënave dhe njësia e përpunimit

– Shumatorët dhe ndërtimii ALU (Arithmetic Logic Unit)

….pjesë nga leksioni…

1. Struktura e kompjuterit sipas John Von Neuman

Kompjuteri sipas konceptit të Von Neuman është i ndërtuar bazuar në parimin të programit të regjistruar në kujtesë. Kështu, programi dhe të dhënat shoqëruese gjenden të regjistruar në kujtesë, pa i dalluar njëri nga tjetri. Instruksionet janë pra sekuenca bitësh, të cilët duhet të lexohen nga kujtesa (“fetch”), dekodohen e pastaj ekzekutohen në radhë, njëri pas tjetrit. Në figurën e mëposhtme, gjendet kompjuteri që mundëson realizimin e konceptit të Von Neuman.

Modeli i kompjuterit sipas Von Neuman presupozon se instruksione dhe të dhënat që ai manipulon gjenden në të njëjtën kujtesë, ose siç thuhet ndryshe në të njëjtën hapësirë adresimi. CPU përdor të njëjtët sinjale kontrolli për leximin e instruksioneve ashtu edhe të të dhënave. Kjo arkitekturë e kujtesës njihet edhe me emrin “arkitektura Princeton” (ang. “Princeton architecture”).

Një mënyrë tjetër e administrimit të kujtesës është edhe ajo ku instruksionet dhe të dhënat vendosen në kujtesa të ndryshme, pra në hapësira të ndryshme adresimi. Në këtë rast, CPU përdor dy bashkësi të veçanta sinjalesh kontrolli për leximin e instruksioneve dhe të dhënave. Kjo arkitekturë njihet me emrin “arkitektura Harvard” (ang. “Harvard architecture”).

Regjistrimi i instruksioneve të programit në kujtesën e kompjuterit, bën të domosdoshme edhe ekzekutimin e instruksioneve njeri pas tjetrit, sipas një sekuence të caktuar.  Kështu, instruksionet lexohen prej kujtesës qëndrore, dekodohen, ekzekutohen, e kështu me radhë.

Shembull 1.1

Supozojmë se procesori mund të ekzekutojë instruksionet e paraqitur në tabelën e meposhtme. Në tabelë paraqiten fazat që kalon secili instruksion, shoqëruar me kohëzgjatjet përkatëse.

Jepet kodi :

load   r1, 100(r2)     ; Mem(r2+100) -> r1

add    r3,r1,r0                      ; r1+r0-> r3

store  r3, 104(r2)     ; r3 -> Mem(r2+104)

Të gjendet : sa do të zgjasë ekzekutimi i këtyre tre instruksioneve?

 

Klasa e instruksioneve Leximi i  instruksio-neve (fetch) Dekodim instruksioni VeprimeALU Lexim i  “data” Shkrim (write)Regjistri Kohëzgjatja e plotë = Σ e fazave
  Ifetch Idecode EXE-cution MEM-ory WBack  
ALU (integer) 2 ns 1 ns 2 ns 1 ns 6 ns
Load 2 ns 1 ns 2 ns 2 ns 1 ns 8 ns
Store 2 ns 1 ns 2 ns 2 ns 7 ns
Branch 2 ns 1 ns 2 ns 5 ns
Jump 2 ns 1 ns 2 ns 5 ns

Zgjidhje

Ekzekutimi i instruksioneve prej procesorit do të kryhet në mënyrë sekuenciale. Pra, ekzekutimi i një instruksioni do të fillojë sapo të përfundojë ekzekutimi i paraardhësit. Nisur nga ky parim, mjafton të mbledhim kohët e ekzekutimit të instruksioneve që përbëjnë kodin, për të gjetur kohëzgjatjen e ekzekutimit të këtij kodi:

Koha e ekzekutimit të kodit = 8 + 6 +7 = 21 ns

….pjesë nga leksioni…

3d. Paraqitja e numrave me presje notuese

Nje numri te paraqitur sipas formes me presje notuese, i vihen ne korrespondence tre numra si me poshte:

  • mantisa  M
  • eksponenti   E
  • baza    B

Keta tre komponente se bashku paraqesin numerin N sipas formes:

N=M *BE

Meqenese baza B eshte nje numer konstant, atehere ajo nuk eshte e nevojshme te perfshihet ne kodin e numrit, por te nenkuptohet duke e trajtuar si implicite. Ne kete menyre, nje numer me presje notuese do te memorizohet ne kompjuter si nje çift numrash me presje fikse :

  • mantisa M, e cila zakonisht eshte nje numer i plote ose thyesor
  • eksponenti E, qe eshte nje numer i plote

Precizioni i numrit percaktohet ne rradhe te pare nga numeri i biteve qe perdoren per paraqitjen e mantises M. Ndersa rendi  i tij do te varet nga baza B dhe eksponenti E .

Paraqitja me presje notuese eshte redontante ose me tepri, ne kuptimin qe i njejti numer mund te paraqitet ne forma te ndryshme. Keshtu p.sh. te trija format e meposhteme jane ekuivalente :

1*10 18,  0,1*1019,  0,01*1020

Ne një kompjuter natyrisht eshte e deshirueshme qe te perdoret nje paraqitje e vetme e numrave me presje notuese. Per kete perdoret ajo qe quhet “mantise e normalizuar”.

Konsiderojme rastin ku mantisa eshte nje numer thyesor ne formen shenje + vlere absolute dhe B=2. Ne kete rast mantisa quhet e normalizuar n.q.s. shifra ne te djathte te presjes binare nuk eshte 0, d.m.th. nuk ekzistojne zero te teperta ne vleren absolute te numerit. Keshtu ne shembullin e mesiperm, forma e vetme e normalizuar eshte 0,1*1019 .

Ne kete menyre, normalizimi ben qe vlera absolute |M| e nje mantise thyesore te kete vlere:

½ <= |M| <1

Shenim: Shembujt dhjetore te mesiperm jane marre vetem per lehtesi ilustrimi. Ne realitet paraqitja ne kompjuter e numrit do te jete binare.

Ne rastin e paraqitjes se numrave me presje notuese, paraqitja e numrit zero ka disa probleme te veçanta.

Per te paraqitur numrin zero do te duhej qe M=0 ndersa eksponenti E mund te kete vlere te çfardoshme, sepse eshte e qarte qe  0*B E =0 per çfaredo vlere te E-se.

Ne realitet, shpesh, gjate rruges se llogaritjeve, te cilat çojne drejt nje rezultati zero, gabimet qe lindin si pasoje e perafrimit te numrave, bejne qe mantisa te jete nje numer shume i vogel, por jo plotesisht zero.

Per te zgjidhur kete problem,  merren ne konsiderate dy  kushtet e meposhteme:

I. Me qellim qe ky numer te konsiderohet plotesisht zero, duhet qe eksponenti i tij te jete nje numer shume i madh negativ, te cilin do ta shenojme me –K. Ne qofte se per paraqitjen e eksponentit perdoren n bite (duke perfshire edhe shenjen), atehere nemrat e plote te shenjuar qe mund te paraqiten do te ndodhen ne intervalin (-2n-1  ,  2n-1 -1)  ose  (-2n-1  +1 ,  2n-1). Pra, vlera e numrit K do te jete  2n-1 -1 ose  2n-1. ( Te kihet parasysh se numrat negative paraqiten ne formen komplement i 2-it).

II. Nga ana tjeter, eshte e deshirueshme qe numri zero te paraqitet nga nje sekuence vetem me shifra zero. Kjo per aresye se, duke bere qe numeri zero do te paraqitet njesoj si ne formen me presje notuese, ashtu edhe ne ate me presje fikse,  realizimi i instruksioneve qe testojne vleren zero do te lehtesohej shume.

Konsideratat e mesiperme bejne qe eksponenti i numrave te paraqiteur sipas formatit me presje notuese te kodohet sipas kodit qe quhet “kodi me tepri K” (ang. exess-K code), d.m.th:

EXP=E+K

ku:

EXP – zona eksponent e numerit me presje notuese. Quhet KARAKTERISTIKE ose eksponent i zhvendosur,

E – vlera e deshiruar e eksponentit.,

K – zhvendosja (ang. bias).

Ne tabelen e meposhteme paraqiten vlerat e eksponentit te paraqitur ne formatin me  8 bite per dy vlerat e mundeshme te numrit K, qe jane K1 = 28-1 = 128 dhe K2=27-1=127.

EXPONENTI ose Karakteristika (EXP) EXP pa shenje Vlerat e shenjuara te E
K1=127 K2=128
1 1 1 … 1 1 255 +128 +127
1 1 1 … 1 0 254 +127 +126
….. ….. ….. …..
1 0 0 … 0 1 129 +2 +1
1 0 0 … 0 0 128 +1 0
0 1 1 … 1 1 127 0 -1
0 1 1 … 1 0 126 -1 -2
….. ….. ….. …..
0 0 0 … 0 1 1 -126 -127
0 0 0 … 0 0 0 -127 -128

Nga tabela vihet re se kur EXP eshte 0, pra te gjithe bitet jane 0, atehere vlera e shenjuar e eksponentit E, eshte nje numer maksimalisht negativ, respektivisht  -127  ose –128. Pra, ne kete menyre, duke perdorur nje exponent me tepri K,  realizojme njeherazi  dy kushtet e mesiperme.

 Disa  shembuj: 

  1. a.      Formati i numrave me presje notuese ne kompjuterat e serise IBM 360/370 dhe BULL DPS7.

Paraqitja e numrave thyesore ne kompjuterat e mesiperm behet sipas formatit te meposhtem:

ku :

S – biti i shenjes

Karakteriska  – 7 bite (0-127)

Baza e numrit B = 16

Mantisa, ne vartesi i te precizionit,  mund te paraqitet :  me 24 bite – paraqitje e shkurter

me 56 bite – paraqitje e gjate

me 112 bite – paraqitje e zgjeruar

Vlera e zhvendosjes K eshte 26 = 64, prandaj E=Karakteristike – 64.

Numeri N, sipas ketij formati do te shprehej me formulen:

N = (-1)S*16 E – 64 *(0,M)

ku  : M eshte mantisa e shprehur ne formen e nje numri hexadecimal me 6, 14 dhe 28 shifra.

Keshtu numeri  0,125*165 do te kodohet si me poshte :

0         1000101   00100000 …0000

S       EXP          Mantisa M

Mund te provohet se ne formatin me 32 bite, pra mantisa me 24 bite (paraqitje e thjeshte), mund te paraqiten numra ne intervalin –5,40x 10-79 deri ne 7,2 x 10 75  (afersisht).

  1. b.      Formati  i  standart-it IEEE 754 

Qe prej vitit 1980 ekziston nje standard boteror me lidhje me formatin e numrave me presje notuese. Ky standard i nxjerre prej IEEE (InstituteofElectricaland Electronics Engineers) percakton formatin e mumrave me presje notuese te paraqitur me 32 dhe 64 bite. Ky standard eshte perdorur gjeresisht ne kompjuterat e konceptuar pas vitit 1980.

Formati i paraqitjes se numrave me presje notuese ne versionin 32 bite te ketij standardi eshte si me poshte.

ku:

S – biti i shenjes,

Karakteriska  – 8 bite e koduar sipsa kodit me tepri 127 ; pra K=28-1 – 1 =127,

Baza e numrit B = 2,

Mantisa M paraqitet si nje numer thyesor (<1) me 23 bite ne formen shenje S  + vlere absolute.

Kemi thene se mantisa duhet te jete nje numer i normalizuar, pra qe ajo nuk ka shifra zero te teperta pas presjes binare. Kjo presupozon qe biti i pare i mantises te jete gjithmone me vlere binare 1. Ky fakt ka bere qe ne standardin IEEE754, ky bit te mos paraqitet ne meyre eksplicite, por te “fshihet” duke u marre parasysh ne menyre implicite nga njesia arithmetike dhe logjike qe traton numrat me presje notuese. Ne kete menyre precizioni i numrit do te rritet me nje bit.

Numri real N, sipas standardit IEEE754 me 32 bite do te paraqitej nga barazimi i meposhtem:

N = (-1)S*2E-127 * (1,M)

ku  0<E<255.

Keshtu p.sh. numri N=-1.5 do te paraqitet ne formen:

1   01111111   1000… …  0

S       EXP          Mantisa M

Numrat qe mund te paraqiten shrihen ne intervalin (1.18*10-38, 3.4*1038).

Formati me 64 bite i standadit IEEE 754 ka formen e meposhteme:

ku :

S – biti i shenjes,

Karakteriska  – 11 bite e koduar sipsa kodit me tepri 1023 ; pra K=211-1 –1=1023,

Baza e numrit B = 2,

Mantisa M paraqitet si nje numer thyesor (<1) me 52 bite ne formen shenje S  + vlere absolute.

Numeri real N do te paraqitet sipas barazimit:

N=(-1)S*2E – 1023 * (1,M)

ku :  0<E<2047

Shembull tipik i perdorimit te standardit IEEE 754 jane kooprocesoret matematike 8X87 te familjes se mikroprocesorve 4X86 te Intel. Keta kooprocesore perdorin formatin IEEE 754 me 32 dhe 64 bite.

... vazhdimi në leksion …

Komentet janë mbyllur.