Veshtrim objektiv mbi Arkitekturen Kompiuterike

Ne boten tone terminologjike na ndodh shpesh te perdorim terma te ndryshem si arkitekture kompiuterike,  organizimi i kompiuterit, seti i instruksioneve, mikroarkitekture, etj dhe jo gjithmon i kemi te qarta komponentet perberes te saj dhe a ndryshojn nga njeri-tjetri , ku ndryshojn etj…
Pa humbur kohe po sqarojm se Arkitektura Kompiuterike (sipas wikipedia) eshte dizaini konceptual i struktures dhe operacioneve rrenjesore te nje kompiuteri.
Kjo shkence ndahet ne :

  1. ISA (Instruction Set Architecture)
  2. Organizimin e Kompiuterit
  3. Dizaini Kompiuterik

ISA eshte seti i instruksioneve dhe ka te bej me pjesen e bute te pjeses se forte 😛
Dua te them qe ka te bej me programimin dhe gjuhen e nivelit te ulet te cilen mund ta marri vesh kompiuteri, dhe kemi te bejm me instruksione te tipit and, or, add, xor, nand, nor, move, call, return.
Per te pasur nje ide me te qarte le ti hedhim nje sy references se plote te Setit te instruksioneve qe na jep Intel per arkitekturen x86.
Klikoni dhe hyni ne forum per te shkarkuar materialin:
http://albanianwizard.org/diskutime/nivel-i-ulet/seti-i-instruksioneve-per-arkitekturen-x86-intel-manuali-t84.0.html
GJithashtu mund te shohim referencen online te setit te instruksioneve tek
Kliko

Kalojm tek Organizimi i Kompiuterit..
Organizimi i kompiuterit ose i quajtur ndryshe dhe mikroarkitektur eshte pershkrimi ne detaj i cirkuiteve te kompiuterit, , CPUs, dhe ndertimit ne detaj te ç’do komponenti hardware.
Gjithasthu studjon dhe mekanizmat qe krijohen ne cirkuite si portat qe kemi shpjeguar me perpara te krijuara nga tranzistoret etj.
Organizimi i kompiuterit ka te beje me menyren se si jane organizuar rregjistrat, multiplekserat, llogaritesit , numrin e tyre, menyren se si jane vendosur dhe te gjitha keto dhe menyra se si implementohen ne realitet bejn nje arkitekture te ndryshoj nga nje tjeter, dhe qe ta lidhim dhe me ISA, eshte pikerisht menyra se si eshte ndertuar nje kompiuter qe percakton dhe gjuhen e instruksioneve qe mund te marri vesh. Gjithashtu themi se organizimi i kompiuterit ka te beje dhe me shtresat qe shpjeguam nje teme me pare.

Dizaini kompiuterik.
Tani qe kemi si gjuhen ashtu dhe organizimin e kompiuterit na duhet qe te gjitha keto ti implementojm ne dizainin kompiuterik qe eshte komplet pune inxhinieresh qe merren me dizainin e komponenteve hardware, psh nje kompiuteri ne AGP-n e tij mund ti lidhim si nje skede grafike ATI ashtu dhe nje G-Force gjithmon qe mos te gjejn konflikte me organizimin e kompiuterit dhe setin e instruksioneve..
Pra ajo qe duhet te kemi te qarte eshte se Dizaini i kompiuterit, dhe komponenteve te tij (CPU design, etj) eshte ne funksion te FUNKSIONIT, organizimit dhe setit te instruksioneve qe jane percaktuar per nje kompiuter.
Ja nje imazh per te lehtesuar kuptimin 😛

Kompiuter apo qep ?

Titulli eshte per te lehtesuar kuptimin xD :)
Perdora pikerisht fjalen qep pasi do te flasim per shtresat (layers) e kompiuterit duke filluar qe nga me te lartat deri tek me te voglat..
Po japim pamjen e pare nga deti..

Siç e shohim ajo me te cilen kemi te bejm ne si perdorues eshte vetem shtresa e pare qe zakonisht jane aplikacionet GUI (graphical user interface).
Niveli 6
Eshte shtresa siç e thashe qe kemi te bejm per dit, jane aplikacionet e perditshme, openoffice, opera, metasploit 😛 , etj pra besoj se nuk ka nevoje per sqarim.
Niveli 5
GJuhet e nivelit te larte si Java, C++, D, etj ne te cilat ne shkruajm kodin i cili kalon nga nje nivel ne nje nivel tjeter..
Duhet te kemi parasysh nje ligj, qe : te gjitha keto ndodhin ne forme ciklike dhe ne ç’do fillon me inputin (marrim tastieren) dhe kalon neper te gjitha shtresat e mesiperme deri sa fillon ngjitet perseri dhe ne e marrim si output tek ekrani i kompiuterit.
Niveli 4
Ka te beje me gjuhen assembly, apo kodin assembly pasi ta kemi te qarte qe kur programojm ne C++, apo ne ç’fare do gjuhe te kompiluar eshte gabim te thuash qe kompilatori (psh gcc) e perkthen kodin tone direkt ne kod binar pasi ne realitet e perkthen ate ne kod assembly, i cili me vone perkthehet nga assembly ne ate qe quhet machine kode apo gjuha e makines, apo me sakt gjuha binare. Dhe nese nuk e keni te qarte se pse nuk kthehet direkt ne kod binar pra (pse egziston kjo shtresa 4?) atehere duhet te mesojm se ç’do kompiuter ka arkitekturen e tij dhe llogjiken e tij dixhitale, mekanizmat e tij llogjik hardware qe jane te ndryshem nga te tjeret dhe pikerisht nuk eshte shume e llogjikshme qe programuesit te nxjerrin nga nje kompilator per ç’do kompiuter qe prodhohet sot ne tregun boteror.
Niveli 3
Ketu kemi te bejm me sistemin operativ i cili eshte ai qe organizon te gjith kete, qe kujdeset per mbrojtjen e memorjes si dhe per menaxhimin e komponenteve hardware gjithashtu per shume funksione te tjera perfshire ketu dhe komunikimin midis nivelit aplikativ me nivelin e ulet hardware.
Niveli 2
Kodi i makines, kjo ne fjale te tjera eshte perfundimi (ne disa raste) i te gjith kodit pasi kthehet ne binar (0100100100) dh nese duam te jemi akoma me real kthehet ne impuls elektrik qe kalon neper cirkuitet dixhitale.
Niveli 1
Ne pak fjale kemi te bejm me ISA (Instruction set architecture) qe eshte dhe ajo qe thame me siper pra arkitektura e kompiuterit qe mund te jete x86, x86_64, i686 e keshtu me rradhe dhe kemi te bejm ne fjale te tjera eshte gjuha qe njihet ne menyre te drejtperdrejt nga arkitektura e kompiuterit.
Niveli 0
Ketu jemi ne katin e fundit, dhe kemi te bejm me Njesine e kontrollit e cila kontrollon enkodimin dhe dekodimin e instruksioneve, pra kontrollon qe ç’do gje te jete ne rregull dhe ne vendin e vet.
Ka 2 rruge se si mund te arrihet rezultati qe u tha me siper, e para me hardware te cilin nuk kemi shume nevoje per ta shpjeguar, e dyta eshte ajo me ane te software.. SI ?? po po, me ane te programimit.
Dhe ketu dalim tek principi i barazise midis hardware dhe software per me shume:
http://albanianwizard.org/intro-ne-arkitekture/
Ne rregull, po ç’fare eshte mikroprogramimi, apo kodi i tille?
Nuk eshte asgje tjeter vetem se menyre me fleksibel per interpretimin  dhe kontrollin e instrusioneve.
Pra me ane te mikrprogramimit (i cili nuk ka nevoje per faza kompilimi pasi siç e shohim eshte ne nivelin me te ulet , pra akoma me te ulet se machine code)
Ja nje shembull:
http://albanianwizard.org/Postokodin/34

Keto pra ishin shtresat e kompiuterit te ilustruara shume shkurtimisht.