A keni degjuar ndonjehere per kete lloj kompjuterash??
Mendoj se jo pasi eshte teknologji qe eshte akoma eksperimentale por shum shpejt do te behet realitet. Sa po kalon koha dhe sa vjen po degjojme gjithmone e me shume po degjojme per shfrytezimin e drites per komunikim apo per regjistrim apo edhe ne mjeksi dhe ne shume fusha te tjera. Kjo pasi drita eshte shume e shpejte ka gjeresi bande pasi ka nje diapazon te gjere frekuencash nuk eshte e demshme dhe mund te mexhahohet me kosto te ulet. Pikerisht duhet te dijme qe drita perbehet nga fotone qe perfaqesojne energjine qe leshojne elektronet nga kalimi nga nivelet e eksituar ne nivelin baze. Te njejten metode pune ndjekin ne parim edhe lazerat.
Por kompjuterat cfar lidhje kane??
Kemi pare qe ne praktike qe tek fibrat optike kemi perdorimin e drites lazer per transmetimet e informacionit. Dhe nga kjo lindi dhe ideja ime pse mos te zevendesojme telat e bakrit ne qarqet elektronike apo edhe pjeset e tjera lidhese te kompjuterit me fibra. Nje ide tjeter do te ishte zevendesimi i hardisqeve magenetike me hardiqse optike dhe gjithashtu memoriet ram.
Po cfar te mire do te kishte dhe si eshte parimi i punes se ketyre kompjuterave .
Atehere normalisht dime se nese zevendesojme elektronet me fotone kemi nje shpejtesi deri ne 10 here me te madhe te trasmetimit te te dhenave . Problem i rendesishem i elektronikes qe ka te bej me nxehjen eliminohet. Dhe gjithashu kemi nje ulje te energjise elektrike qe do te duheshe per te aktivizuar keto kompjutera, pa folur pastaj per shuarje qe eshte mjaft e vogel dhe per nje gjeresi bande shume e shume me te gjere. Kocepti i punes qendron ne kalimin e drites infra te kuqe neper fibrat optike te instaluara ne kompjutera dhe gjithashtu gjenerimi i spektrit infra te kuq i cili del nga dioda lazer. Duhet te dime qe parimi i punes eshte pothuasje i njejte me kompjutarat e zakonshem ndryshimi i vete eshte se punojne me fotone dhe jo me me elektrone. Gjithashtu transistoret e sotem mund te zevendesohem me tranzistore optike qe jan zbuluar, rezistencat me analoget e tyre rezistencat optike. Po chipet?? Edhe per keto ka nje pergjigje pasi Inteli ka prodhuar chipet e para fotonike qe kane nje shpejtesi perpunimi prej 30gb/s. Kjo deri para se te kerkoja ne internet ishte thjesht nje ide e nje studenti te Inxhenjerise Fizike qe jam une, pasi ne shkolle studioj lasera dhe optike. Por mesa duket dikush e kishte menduar para meje dhe kishin investuar firma si Intel dhe Nasa per te nxjerre prototipet e pare laboratorik.
Ah me humbi nje mundesi per tu bere i famshem
haha. Keto teknologji do te bejn nje revolucion ne boten e kompjuterave sic ben dhe fibrat optike ne transmetimin e te dhenave.
Yep, jemi ne arkitekturen mips, per ata qe e nenvleftesojn ta dine se playstation, perdor proçesor MIPS si dhe gjen aplikim shume ne paisjet elektronike ne saj te arkitektures RISC (reduced instruction set architecture) per shkak se ka shume pak instruksion dhe sipas perkufizimit sa me pak instruksione aq me i shpejt eshte nje proçesor.
RI = Register File , ne shqip faili i regjistrave te sistemit eshte nje komponent elektrik per ruajtjen e te dhenave i ndertuar ne proçesor qe perdoret per veprimet e ndryshme te proçesorit gjat cikleve te tij.
RI ne MIPS eshte i perbere nga 32 rregjistra dhe secili nga keto rregjistra ka kapacitetin qe te ruaj 32 bit informacion te koduar ne numer binar. Keshtu qe ne total 32 rregjistra X 32 bit qe ka kapacitet secili atehere kemi 1024 bit memorje ne dispozicion.
Ja pamja e thjeshtuar e RF

Ne arkitekturen MIPS, kemi perkufizimin qe ne situata te veçanta perdoren rregjistra te veçant, dhe kjo sepse rregjistrat kane funksione te veçanta.
Le ti shohim scecilin nga ata se ç’fare funksionesh kane, ne rradhe te pare themi se ç’do instruksion ne assembly te arkitektures mips ne pergjithesi vepron duke perdorur nje nga rregijstrat e sistemit dhe kemi dhe sintaksen psh:
add $v1, $s1, $s2 #qe ne pseudoinstruksion eshte ekuivalente me $v1 = $s1 + $s2
E ne shqip do te thote merr bitet qe jane ne rregjistrin $s1 dhe mblidhi me ato qe jane ne rregjistrin $s2 dhe shumen depozitoje ne rregjistrin $v1
Kjo ne fjale te tjera eshte gjuha assembly qe me sintaksen e saj vepron direkt me proçesorin ose me memorjen {ne rastin Mips kur perdorim komanen li (load immediate) } , add normalisht nuk njihet nga proçesori por njihet ekuivalentja e saj ne MIPS ISA dhe kjo enkodohet ne kod binar i cili eshte ekuivalent per ate instruksion te caktuar , perfaqesimin ne haxadecimal (0x) te atij kodi binar qe per arkitekturen do te thote “mblidh” do e quajm opcode ose operation code qe do te thote kodi operacional nese mund ta themi keshtu, pra eshte kod i cili i thote proçesorit te kryej nje veprim te caktuar e ne aspektin gjuhesor eshte ‘folja’ e cila tregon levizje apo nje veprim specifik.
Siç e shohim ne figuren me siper, rregjistrat fillojn te gjith me $, dhe emertohen me emra te ndryshem , fillojm ti sqarojm 1 nga 1 ne baze grupi.
$zero / ky eshte nje rregjister qe qendron gjithmon 0 , pra eshte konstant dhe per ata te çmendur [
] qe kane provuar ti japin nje vlere do te shohin qe eshte e pamundur pasi eshte i ndertuar ne hardware. E thene midis nesh (kush perdor linux) nje /dev/null
$at / ose assembler temporary , eshte i rezevuar nga assembleri (kompilatori assembler) dhe mban vlera te perkohshme te makro instruksioneve , ose pseudo instruksioneve.
$v / ose rregjistrat e vlerave, perdoren per te kthyer vlera nga funksionet, dhe gjen zbatim ne IO , ne rastet kur perdoret “syscall” per te kryer nje sherbim te caktuar dhe programatoret kane caktuar 10 sherbime te mundshme duke karikuar tek $v0 vlera nga 1 tek 10 ku secila nga keto ka nje funksion te caktuar psh nese perdorim komanden li $v0, 4 ku ne fjale te tjera karikojm ne rregjistrin $v0 vleren 4 sipas perkufizimit kodi 4 do te thote Print String, e kodi 5 Read Integer, kodi 1 eshte Print Integer e keshtu me rradhe.
$a / Regjistrat e argumenteve – qe jane shume te lidhur me rregjistrat me siper pasi $v ishte per te kthyer vlera nga funksionet kurse $a si grup perdoren per te kaluar vlera tek funksionet e le te shohim nje rast ku kombinohen te dy: li $v0 4 # thirrja e sistemit per te printuar string (tog fialesh) la $a0 , prsh # i themi load address te mesazhit prsh tek rregjistri a0 dhe prsh neve psh mund ta kemi percaktuar tek .data si prsh: .ascizz “n Pershendetjeeeee!! ”
$t / Rregjistrat temporan – jane rregjistra qe perdoren nga kompilatori assembler ose nga programatori (ne) per te magazinuar vlera te menjehershme e zakonisht jane rregjistrat qe perdoren me shume nga komanda li (load immediate).
$s / Regjistrat temporan te shpetuar – keto jane te ngjashem me me $t me ndryshimin qe vlera mbetet dhe perdoren per te magazinuar vlera akoma me te gjata. (zakonisht kur kemi te bejm me instruksione andi , addi, or, srl etj..
$k / Regjistrat e Kernelit – keto jane regjistra te rezervuar nga kerneli, pra zemra e sistemit operativ dhe nuk mund te perdoren modifikohen nga programatori.
$gp / Global Pointer – shenohet adres qe piketon piken globale ne memorje (do i shohim nese do kemi mundesi te shpjegojm memorjen RAM)
$sp / Stack Pointer – piketon adresen ne te cilen gjate egzekutimit te programit ndodhet stack-u
$fp / Frame Pointer – edhe ky nje rregjister qe vepron me memorjen ku vlera e tij tregon lokacionin e memorjes ne te vilen ndodhet frame. (Do e shohim me ne detaj tek shpjegimi i RAM-it)
$ra / Return Address – regjistri i adreses se kthimit apo pika e kthimit, perdoret per ti thene nje funksioni se ku duhet te kthete (gjithmon ne memorje) gjate egzekutimit te programit.
Kete nuk e gjeni ne manualet e universitetit keshtu qe vemendjen ne mesim
Mund te kthejm me kete rregull shume leht numra komplementar te dyshit pa hasur veshtiresi dhe ne nje menyre shume te shpejte. psh marrim numrin 01001100 Rregulli eshte :
“Fillojm te shohim numrin nga e djathta ne te majte, dhe ndalojm tek 1-shi i pare, dhe e shkruajm ashtu siç eshte se bashku me zerot qe jane mbas tij, nderkohe qe pjesen tjeter e ndryshojm”
01001100 mbajm ashtu si jane 100 pasi eshte 1-shi i fundit dhe zerot, pjesen tjeter e ndryshojm
10110 – 100 Pra siç e pame u ndryshuan te gjith perveç 1shit te fundit ose te parit nese fillojm nga e djathta ne te majte dhe 0rove qe ka mbrapa.
Bejm konvertime te tjera ne seri, 10000001 del 01111111 (1shi i fundit i pandryshuar)
11111111 = 00000001 (1shi i fundit i pandryshuar)
01011010 = 10100110 (1shi i fundit i pandryshuar dhe ato 0 qe vijn mbas tij)
10000000 = 10000000 [e ky eshte nje rast shume i veçant qe u zbulua tani
, pra forma e numrit ne binar eshte i njejte]
Hajt ta gezojm
If at first you don’t succeed, Skydiving is definitely not for you.
E nisa me kete thenie kategorine e re “Assembly” ne albanianwizard.org sepse dihet qe askush nuk eshte perfekt dhe sidomos ne assembly duhen shume shume shume shume… prova dhe deshtime perpara se te arrihet nje rezultat i deshiruara kjo sepse nuk eshte gjuhe si gjith te tjerat, per te njohur progarmimin ne kete gjuhe te nivelit te ulet duhet te njohesh mire rregjistrat e sistemit, formatin e instruksioneve dhe te njohesh ne detaj menyren se si punon arkiktektura e nje kompiuteri.
Po marrim perkthimin e nje instruksioni nga pseudocode ne kodin real ne assembly.
Ajo qe perdorim me shume ne programim jane if else dhe perkatesisht ; Nese bie shi (merr çader) tjeter (mos e merr çadren)
Fillojm :
if ($t5 < 0 ) {$s0 = 0 - $t5; $t1 = $t1 + 1}
else {$s0 = $t5; $t2 = $t2 + 1}
Formati i mesiperm quhet pseudocode pasi eshte thjesht per te na lehtesuar kuptimin ndersa kjo qe pason eshte kodi real ne assembly per arkitekturen MIPS
bgez $t5, else #if /nese ($t5 eshte > ose = 0 ) branch /kalo to else /tek else
sub $s0, $zero, $t5 # $s0 merr negativen e $t8
addi $t1, $t1, 1 #Shtojm vleren e rregjistrit $t1 nga 1
b next #krijojm nje cikel (branch) verdallisemi rreth kodit else
else:
ori $s0 ,$t5 , 0 #$s0 merr nje kopje te $t5
addi $t2, $t2, 1 #shtojm tek rregjistri $t2 nga 1
next:
Shpjegim per ato “gjerat e çuditshme qe ndodhen” , add, ori, li, beq, bgez etj jane instruksionet assembly dhe ato qe shenuam me $t0, apo $s1,2,3,4,5,6… jane rregjistrat e proçesorit te cilet jane nga 32 bit dhe secili nga ata kane funksion te caktuar te cilet do i shohim ne temat e ardhshme