Fragmente nga libri i arkitektures (nga student per student)

Pershendetje te gjitheve,
Jam i lumtur qe sadopak mund te ndihmoj ata si puna ime ne kuptimin e drejt te kesaj shkence te bukur.
E nisa kete projekt nderkohe qe mbaja shenime gjate leximit neper libra, web, papers, etj dhe thashe pse te mos i publikoj dhe ti grumbulloj te gjitha keto ne formen e nje libri te perpiluar nga student per studentet.
Siç e dime (nga eksperienca) jo te gjitha informacionet qe ndodhen ne libra mund te jene te nevojshem gjate kalimit te nje provimi ose kur kemi te bejm me teste.
Me kete nuk dua te hedh poshte asnje nga informacionet qe gjenden ne libra por dua thjesht te ve ne pah qe per ne si student eshte e rendesishme te fiksojm konceptet kryesore, te zgjidhim ushtrimet dhe te fiksojm gjerat me te rendesishme qe na ndihmojn te krijojm nje kultur informatike.
Keshtu nisi dhe ky liber i cili eshte i bazuar ne manualet me te mira (sot per sot) te arkitektures kompiuterike, ne webet e universiteteve me te njohura, ne videoleksikone, dhe ne bagazhin tim personal qe mund te jete forumar nder vite, menyren e te konceptuarit dhe te formuluarit te te gjith kesaj.
Libri nese do kem\i fatin ta perfundoj do te permbaj temat me te rendesishme, ushtrime te zgjidhura (shume) 😉 , perkufizime, dhe gjate ç’do fund kapitulli do te kete pyetje rreth atyre qe lexuat.
—————————————————————————————————————————————–

Fragment nga libri

—————————————————————————————————————————————–

PARAQITJA E TE DHENAVE NE SISTEMET KOMPIUTERIKE

Organizimi i kompiuterit varet shume nga menyra se si ai paraqet, manipulon apo kontrollon te dhena te caktuara.

Te caktuara sepse standartet kane percaktuar gjate viteve disa aspekte te organizimit te kompiuterit.

Njesia baze e informacionit ne nje kompiuter dixhital quhet bit ose “binary digit”.

Ndersa njesia baze ku mund te adresohen te dhenat e kompiuterit ne memorje eshte quajtur byte dhe eshte i perber nga 8 bite. Kjo u percaktua nga IBM me System/360.

Nje byte (8 bit) ndahet ne dy gjyesmbyte te quajtura nibbles (4 bit secila)

1 byte = 1 nibble + 1 nibble = 4 bit + 4 bit

Fjalet ne kompiuter mund te jene te paraqitura nga 2 ose me shume byte pra duke filluar nga 16 bite, 32 bite, 64 bite, e keshtu me rradhe ne varesi te arkitektures.

SISTEMET NUMERIKE POZICIONALE

Ai qe perdoret sot (decimali) eshte marre nga arabet qe kishin shume kohe qe e perdornin para nesh

E rendesishmja e ketij sistemi numerik eshte se ç’do pozicion i sistemit eshte i pershkruar nga po aq numra qe e perbejn..

Psh: sistemi binar eshte i perbere nga 010010101 dhe quhet binar sepse bazohet vetem ne 2 simbole, 1 dhe 0.

Sistemi decimal perbehet nga 10 vlera, 0,1,2,3,4,5,6,7,8,9 dhe te gjitha te tjerat pershkruhen ne baze te tyre..

Sistemi hexadecimal (me baze 16) perbehet nga 16 simbole dhe perkatesisht 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Ku A = 10; B = 11; C = 12; D = 13; E = 14; F = 15;

Permenda sistemin binar dhe heksadecimal sepse jane sistemet me te rendesishme ne shkencat kompiuterike, mbrapa vjen sistemi oktal. (0,1,2,3,4,5,6,7)

POZICIONIMI I SISTEMIT DECIMAL

Gottfried Leibniz ishte i pari qe implementoi idene qe ç’do numer i plote mund te paraqitet pa problem ne sistemin binar me idene qe ZOTI (1) i vetem

krijoi gjithçka nga asgjeja (0).

Eshte e çuditshme se si ne ato vite (1600-1700) ky qendroi vetem si nje kuriozitet matematik kurse sot perben bazen e te gjith zhvillimit te shfrenuar qe sot njihet me emrin “epoka kompiuterike”.

Sistemet e para perdoren sistemin decimal por per shkak te thjeshtesis qe pati sistemi binar per tu interpretuar ne sinjale elektrike i mori krahun sistemit decimal duke u bere i vetmi i pershtatshem edhe sot..

KONVERTIMET

Te sqarojm fillimisht konceptin e numrave pasi shumica jone ka nje kuptim te gabuar per to..

Kur themi 3 ne kemi te qart ne mendjen tone qe 3 eshte paraqitja numerike per diçka , pra qe ka masen e 3.

Kur themi III , VIII ose XI jemi duke thene te njejten gje vetem se me numra romak, e njejta gje ndodh kur e shpjegojm me numra

arab, kinez e keshtu me rradhe..

Pra ne baze te shembullit te mesiperm kuptojm se 3 nuk do te thote TRE, ne realitet ai eshte vetem nje simbol qe neve na thote per vleren e diçkaje..

Dhe ne mund te imagjinojm 3 stilolapsa, 3 molle etj..

Po kur kemi nje numer si 34243392 a mund te imagjinojm realisht vleren e tij?

Sigurisht qe jo, sepse sado te zhvilluar ta kemi trurin nuk mund te imagjinojm saktesisht 34243392 kokrra molle apo gruri apo planete…

Pra duke infiltruar me kete koncept idene e numrit duke perkrahur idene e Gottfried Leibniz themi se ne sistemin tone numerik ne mund te paraqisim ç’do lloj vlere ne nje vlere me baze tjeter..

KONVERTIME NGA DECIMAL NE BAZ BINARE, TRINARE, HEKSADECIMALE, OKTALE.

Ka dy menyra njera me zbritje dhe tjetra me pjesetim, por per shkak te shpejtesise dhe familiaritetit po trajtojm ate me pjestim.

Kjo metode funksionon duke pjestuar vazhdimisht me bazen ne te cilen duam ta kthejm numrin dhe nese nuk plotepjestohet me 2 (ne rastin tone duam ta kthejm ne baze binare [numer binar]) atehere mbetjen e kalojm ne krahe te djatht duke e ruajtur dhe duke vazhduar pejstimin me nje numer tjeter me te vogel qe plotepjestohet me bazen tone.

Marrim numrin 79 dhe perderisa do e kthejm ne baze dy do e pjesetojm vazhdimisht me 2.

79/2 mbetja 1 (pasi nuk eshte i plotepjestueshem me 2 morem vleren 78 keshtu qe ngelet 1)

39/2 mbetja 1 (perseri morem nje vlere me te vogel qe eshte e plotepjestueshme me 2)

19/2 mbetja 1 (morem 18-ten)

9/2 mbetja 1 (marrim 8-ten)

4/2 mbetja 0 (4tra eshte e plotepjestueshme me 2)

2/2 mbetja 0 (eshte i plotepjestueshem)

1/2 mbetja 1

Keshtu qe nxjerrim duke llogaritur nga poshte se 79 = 1001111 ne sistemin binar

E provojm te njejtin numer ta konvertojm ne sistemin trinar (me baze 3).

79/3 mbetja 1 (morem numrin 78 qe eshte i plotepjestueshem)

26/3 mbetja 2 (morem 24 e cila eshte e plotepjestueshme me 3)

8/3 mbetja 2 (numri 6 eshte i plotepjestueshem)

2/3 mbetja 2 (2 nuk e plotepjeston 3-shin keshtu qe e zvogelojm dhe e çojm ne 0 ne menyre qe 0/3 = 0 ne baze te 0/Z=0 )

keshtu qe 79 = 2221 me baze 3.

Provojm tani ta konvertojm ne heksadecimal..

79/16 mbetja F (15 pasi jemi ne hex) , vetem 64 eshte numri me i vogel qe plotepjestohet me 16 dhe eshte me i vogel se 79 dhe 64\16=4

4/16 mbetja 4 (4tren e bem 0 ne menyre qe 0/16 = 0 )

Dhe kemi si rezultat se 79 eshte 4F ne sistemin hexadecimal.

Marrim numrin tim te preferuar 19, dhe e konvertojm ne octal 😛

19/8 mbetja 0 (eshte i plotepjestueshem)

2/8 mbetja 2 (pasi 0 pjeseton 8 = 0)

Keshtu qe 19 ne sistemin Decimal eshte 20 ne sistemin Oktal

TE KONVERTOJM NUMRA ME BAZE Ç’FAREDO NE NUMRA ME BAZE 10 (DECIMAL)

Kjo nga eshte diçka shume me e thjeshte per tu bere sepse nuk kerkon shume veprime perveç disa shumezimeve paraprake..
Marrim numrin 212 dhe e kthejm ne numer me baze 10
212₃ = 2 ∙ 3² + 1 ∙ 3¹ + 2 ∙ 3⁰ = 2 ∙ 9 + 1 ∙ 3 + 2 ∙ 1 = 23₁₀
Dhe keshtu ne pergjithesi behet ç’do lloj konvertimi i ketij lloi.

KONVERTIMI I NUMRAVE ME PRESJE

Edhe ne keto raste konvertimi eshte i thjeshte, marrim nje numer decimal dhe e kthejm ne nje numer me baze 6..

0,879₁₀ = ? ₆
0,879
∙ 6
——–
5,274 Marrim 5-sen

0,274
∙ 6
——–
1,644 Marrim 1-shin


0,644
∙ 6
——–
3,864 Marrim 3-shin

0,864
∙ 6
——-
5,184 Marrim 5

0,184
∙ 6
——-
1,104 1

0,104
∙ 6
——-
0,624 0

Dhe vazhdojm keshtu deri sa mbas presjes dhjetore te kete vetem 0
Ky ishte nje numer i marre rastesisht keshtu qe neper provime nuk mendoj qe do u japin numra qe te rrini gjith diten duke shumezuar :)
Deri ne kete moment 0,879₁₀ = 0.513510…. ₆
Ne keto raste ndryshe nga konvertimet e numrave te plote rezultatet merren nga lart-poshte.

NGA NJE BAZE NE NJE BAZE TJETER

3121₄ = ? ₃
Teknika qe ndiqet eshte ne fillim konvertohet numri me baze X ne numer me baze 10 pra ne sistemin decimal dhe pastaj nga nje numer me baze decimale ne numer me bazen tjeter qe kerkohet ne rastin tone me baze ₃
Ne fillim konvertojm ne decimal.
3121₄ = 3 ∙ 4³ + 1 ∙ 4² + 2 ∙ 4¹ + 1 ∙ 4⁰

= 3 ∙ 64 + 1 ∙ 16 + 2 ∙ 4 + 4 = 217 ₁₀
Tani konvertojm ne baze 3
217/3 1

72/3 0

24/3 0

8/3 2

2/3 2 Mbetja 2 mbasi 0/3 = 0 dhe 2-shin e beme 0 perfundimi eshte 22001₃

KONVERTIMET BRENDA FUQIVE TE DY BAZAVE

Kur themi fuqi te dy bazave nenkuptojm qe jane multiplikuese te njera-tjetres psh binarja me octalen dhe me hexadecimalen.
2 => 8 => 16 te gjitha keto jane fuqi te dyshit.
Keto dy sisteme, (oktali dhe heksadecimali) perdoren shume pikerisht sepse lehtesojn leximin.
Siç e keni vene re eshte me komode te lexohet ne hexadecimal ose ne octal se sa ne binar pasi ne jemi mesuar me sistemin decimal dhe keto dy sisteme (oktal dhe heksadecimali) jane me te perafert por nuk e perjashtojm mundesine qe ka inxhinier atje jashte qe lexojn binar siç mund te lexojm ne nje roman te Kafkes.
Per arsyen e permendur me siper, keto sisteme nuk i kane lene me aq por kane vazhduar lehtesimin e tyre duke krijuar:
Hextet (ose hexadecimal digit) jane te perbera nga 4 bite.
Octet (ose octal digit) jane te perbera nga 3 bite
Le te shohim rastin konkret te konvertojm 101110011101₂ ne nje numer me baze 8 dhe me baze 16
Siç e thame njesia me e vogel ne sistemin heksadecimal quhet hextet dhe eshte i perbere nga 4 bit 😉
Ja ku aplikohet kjo qe mesuam
1011 1001 1101
Ja ku u formuan 3 hextete dhe per ti kthyer ne heksadecimal mjafton ti kthejm ne decimal dhe normalisht do jene brenda heksadecimalit pasi heksadecimali e perfshin sistemin decimal.
1011 = B
1001 = 9
1101 = D nga kjo nxjerrim qe 101110011101₂ = B9D₁₆
Ta ndajm tani ne oktet..
101 = 5
110 = 6
011 = 3
101 = 5
101110011101₂ = 5635₈

SI PARAQITEN NUMRAT ME SHENJE?

Deri tani folem per numra pozitive dhe konvertmiet e tyre ne numra me baza te ndryshme, po ç’fare ndodh kur duam te paraqisim numra negative?
Dihet qe ne gjuhen qe kemi mesuar (binare) kemi vetem 2 simbole, pra ate te 0 dhe 1, rryme me tension te lart, rryme me tension te vogel keshtu qe si zgjidhet ky problem kur kemi ne dispozicion vetem dy gjendje, ate te “0” dhe “1”?
Nomralisht zgjidhet perseri me 0 dhe 1 :)
Duke i dhene 0-ros vleren pozitive (+) dhe 1-shit vleren negative (-)

Te shohim se si funksionon.
Kur ne programojm ne nje gjuhe ç’faredo dhe thjesht pershembull percaktojm nje int = … shumica nga keto gjuhe menjehere zapton ne memorje nje hapesire prej 8 bitesh \ 1 byte ku njesia e pare ne kete hapesire nuk eshte per te paraqitur vleren numerike te numrit por eshte per te paraqitur a eshte pozitiv apo negativ ky numer.
Shembull, per te paraqitur numrin 119 qe nese e kthejm ne binar do te vinte 1110111 meqe eshte pozitiv ne baze te asaj qe thame me siper dime qe qelia e pare e memorjes do zihet nga 0 dhe byte do te kete kete pamje
01110111 Pra ku 0 do te thote se numri eshte pozitiv keshtu qe nuk eshte e veshtire te arrijm ne perfundimin se per te paraqitur -119 ne binar do te shkruhej 11110111 ku 1-shi i pare do te thote se numri eshte negativ.
Te mbajm mend , ; , qe nga ky moment, pjesen mbrapa 1 (qe eshte negativ) apo 0 qe eshte pozitive pjese e cila siç e pame sherben per te percaktuar vleren reale ne binar te nje numri do e quajm magnitude dhe numrin me shenje do e quajm :

MAGNITUDA E SHENJUAR


Siç e permendem me siper, magnituda eshte pjesa qe perdoret tek numrat me shenje per paraqitjen e vleres se nje numri te caktuar ne binar, dhe pjesa perpara qe quhet bit-i me i rendesishem (most significant bit) percakton nese do te jete pozitiv (0) apo negativ (1).
Per te konvertuar nje numer me baze 10 ne nje numer me magnitud te shenuar (qe eshte shume e thjeshte) pershembull marrim numrin 1 :)
Numer shume i thjeshte dhe i njohur apo jo, dhe ZOTI eshte 1 i vetem dhe pa shok.
Per ta kthyer ne nje numer binar me magnitude te shenuar te paraqitur nga 8 bit do te konvertonim:
10000001 ku 1-shi ne fillim eshte percaktimi i shenjes negative dhe 0-rot mbrapa e humbasin vleren e tyre reale, dhe nese duam qe ti japim vlere pozitive duke e paraqitur me 8 bit atehere na del 00000001.
Nese na kerkohet qe 1-shin ta paraqesim ne 4 bit atehere
1001 Negativ
0001 Pozitiv
Por jo te gjithe numrat mund te paraqiten ne 4 bit, keshtu qe shpesh na duhet qe te thyejm pak limitet.
Gjithsesi te kemi parasysh qe nese na kerkohet qe te paraqesim nje numer ne 8 bit (sepse ne memorje kemi nje hapesire prej 1 byte) atehere vlera e tij do te jete N-1 pra vleren do e paraqesim me 7 bite pasi biti i pare do perdoret per shenjen.
Ja nje rast tjeter ; “Te konvertojm numrin 109 ne numer pozitiv binar dhe negativ binar ne 8 bit”
Normalisht nese bejm konvertim direkt (numer pa shenje) na del : 1101101
Atehere:
Pozitiv 01101101 (1 byte)
Negativ 11101101 (1 byte)

Nese eshte me i vogel se 7 bite atehere hapesiren e mbushim me 0

Ç’FARE ESHTE METODA DOUBLE-DABBLE

Kjo eshte metoda me e shpejte per te konvertuar nje numer binar ne decimal.
Praktikisht merret nje numer binar psh 110110 dhe shkruhet ne kete forme:

1 1 0 1 1 0

Mbasi u shkruajt ne kete forme aplikojm kete metode te re konvertimi e cila eshte vertet me e thjesht dhe me e shpejte.
Konsiston ne shumezimin apo dyfishimin e fuqive me dy (2) duke filluar nga e majta ne te djathte.
Fillojm
—————————————————————————————————————————-
1            1                0          1        1          0

x2              +                      +             +           +              +

2 ==> 2
—-
3 x 2 =             6 x 2 = 12
—-
13 x 2 = 26
—-
27 x 2 = 54
—————————————————————————————————————————-
Shuma eshte 54 dhe siç e shohim mbasi bejm mbledhjen me numrin e rradhes gjithmon e dyfishojm (double) dhe e mbledhim me numrin e rradhes deri sa arrijm ne perfundim, edhe po te aplikojm metodat qe mesuam me siper, perfundimi do te jete i njejte.
E çuditshmja (:P] eshte se kjo metode funksionon dhe me konvertimtet nga sistemet hecadecimale ne sistemet decimale.
Ja nje rast:
0x0C1F ta kthejm ne numer decimal.
PS, gjithmone perpara numrit hexadecimal shtohet nje 0x , mos ja vini re per momentin, konsiderojeni si diçka kullere 😛 (thon kosovaret :) ) per momentin keshtu qe ajo qe dime eshte se ne rastin tone:
0x0C1F = 0C1F , par vlera mbetet e pandryshuar.
Gjeja e pare qe bejme eshte ta ndajm kete numer ne hexatete.
0 C 1 F
—— —— —— ——
0000 1100 0001 1111
Fillojm te bejm te njejtat veprime si me siper duke shumezuar numrat binare duke filluar nga e majta ne te djathte me 2 dhe duke i mbledhur numrin e rradhes deri sa te arrijm tek i fundit ku do te shohim se vlera perfundimtare eshte 3103.

KOMPLEMENTE 1 , 2


Komplementi ne aspektin gjuhesor eshte pjese e nje propozimi e cila e pasuron dhe e ve akoma me shume ne pah predikatin.
Psh:
Agroni (lol abetaria) bleu nje kompiuter.
Komplementi do te ishte:
Kompiuteri u ble nga Agroni.
Pra u shtua pasuria dhe rendesia e predikatit.
E nisa keshtu shpjegimin e komplementit pikerisht per te dhene konceptin e te kundertes pasi komplementi nuk eshte gje tjeter vetem se e “kunderta”, po shpjegohet thjesht pasi shume e kane te veshtire kete mesim dhe perhapet panik xD.
Mos u shqeteso, ti do e marresh vesh shume mire dhe mjere ai ushtrim komplementar qe te bie ne provim 😀
Te kesh te qarta 2 gjera , kemi komplementin 1 dhe komplementin 2, dhe perdoret me shume komplementi 2 si nje metod per te paraqitur numrat binar negativ.
Per ta sqaruar akoma me shume, ne brendesine e kompiuterit ky veprim arrin te kryhet me ane te portes NOT, pra nese hyn 0 del 1, nese hyn 1sh del 0.
Komplementi i 1shit.
Marrim nje numer binar
010000010101010111001
Komplementi i tij ne 1 eshte sakesisht i kunderti
101111101010101000110

Po komplementi i tij ne 2?
Mjafton ti shtojm shifres se fundit nje 1sh dhe mbaroi.
Pra komplementi i tij ne 2 eshte :101111101010101000110 + 1 = 101111101010101000111
Ka formule dhe goxha teori e cila verteton kete veprim por per mos tju ngaterruar me shume se sa na ngaterrojn neper universitete 😛 po vazhdoj me dy shembuj te tjere te thjesht.
Ne ushtrime zakonisht do na kerkohet qe te paraqisim numra te ndryshem ne binar negativ me komplement 2, dhe te kemi te qarte qe keto numra perfaqsohen nga 1 byte ose 8 bite.
Marrim nje ushtrim te bukur e te kuptueshem:
Ushtrim
Le te paraqitet numri -19 ne binar si komplement i 2shit ne 8 bite.
Gjeja e pare qe duhet te bejm eshte te konvertojm 19ten ne binar dhe del
19 = 00010011
Ja ku kemi numrin tone binar, si i behet qe ky numer ti thote kompiuterit -20?
Do e çojm kete numer ne komplement te dyshit.
Perkatesisht kemi:
00010011 ne komplement 1 del 11101100 kurse ne komplement 2 do i shtojm + 1 dhe arrijm ne perfundimin qe -19 = 11101101 (siç e shohim bit-i i pare eshte 1 do te thote negativ)

Nese nuk jeni te sigurt per perfundimet gjate zgjidhjes se ushtrimeve keshillohet qe ne fillim ta ktheni ne komplement te 1shit pastaj ne komplement te dyshit.

Po kur kemi te bejm me nje rast si -20ta?
Ne binar 20ta eshte = 00010100 me baze 1 ==> 11101011 po me baze 2?
Kemi thene qe shifres se fundit i shtohet 1, atehere 1 + 1 apo jo?
Kemi:
11101011
+ 1
————-
11101100
Shpjegohet:
1 + 1 ne binar = 0 mbajm 1shin ndermend
1 + 1 Perseri = 1 mbajm 1shin ndermend
0 + 1 = 1.
Te tjerat i ulim ashtu siç jane :) dhe rezultati perfundimtar eshte : -20 = 11101011

4 thoughts on “Fragmente nga libri i arkitektures (nga student per student)

  1. Pershendetje,
    Nese ke ndonje ndihme per gjith arkitektet e rinj qe do te fillojne shkollen nper arkitekture. ndonje4 info te hollesishme te lutem . suksese. per punen qe po ben
    .

  2. Ti je ne Torino, e keshtu je afer
    Provimi bazohet ne 3 pika kryesore
    1) Assembly (duhet ta mesosh shume mire, ketu ke source kode online te komentuara qe do te ndihmojn per kete gje)
    2) Ushtrime me konvertime direkte apo indirekte si do qe te jete do te perdoresh MIPS keshtu qe mesoje mire.
    3) I\O, duhet te kesh kujdes me 3 llojet e menaxhimit te memorjes (DMA) , PROGRAMMED, INTERRUPT, (frame nuk besoj se ua pyesin)dhe duhet te kesh kujdes gjithashtu me ç’fare quhet ‘callee’ ‘caller’ apo proçeset qe therrasin njeri tjetrin dhe ketu jei detyruar te mesosh stack-un dhe menaxhimin e tij.
    Konvertimet me numra nuk zen ndonje vend dhe aq te rendesishem.
    Nese i di keto atehere nuk merr posht 25/30
    😉
    suksese.

Leave a Reply

Your email address will not be published. Required fields are marked *