Çfarë është një sistem komandimi kompjuterik? Sistemi i komandës kompjuterike dhe metodat e aksesimit të të dhënave

Një komponent i rëndësishëm i arkitekturës kompjuterike është sistemi i instruksioneve. Pavarësisht numrit të madh të llojeve të kompjuterëve, në nivelin më të ulët (“makine”) ata kanë shumë të përbashkëta. Sistemi i komandës i çdo kompjuteri përmban domosdoshmërisht grupet e mëposhtme të komandave të përpunimit të informacionit.

1. Komandat e transferimit të të dhënave (regjistrimi), kopjimi i informacionit nga një vend në tjetrin.

2. Veprimet aritmetike, të cilës teknologjia kompjuterike i detyrohet në fakt lindjen e saj. Sigurisht, pjesa e veprimeve llogaritëse në një kompjuter modern është ulur ndjeshëm, por ato ende luajnë një rol të rëndësishëm në programe. Vini re se operacionet themelore aritmetike zakonisht përfshijnë mbledhjen dhe zbritjen (kjo e fundit, brenda procesorit, më së shpeshti zbret në mbledhje në një mënyrë ose në një tjetër). Sa i përket shumëzimit dhe pjesëtimit, në shumë kompjuterë ato kryhen duke përdorur programe speciale.

3. Operacionet logjike, duke lejuar kompjuterin të analizojë informacionin e marrë. Pas ekzekutimit të një komande të tillë, duke përdorur një kërcim të kushtëzuar, kompjuteri është në gjendje të zgjedhë rrjedhën e mëtejshme të ekzekutimit të programit. Shembujt më të thjeshtë të komandave të grupit në shqyrtim janë krahasimi, si dhe operacionet e njohura logjike DHE, OSE, JO (inversion), të përshkruara më parë në paragrafin 1.4. Përveç kësaj, analiza e pjesëve individuale të kodit, rivendosja dhe instalimi i tyre shpesh u shtohen atyre.

4. Ndërrime kodi binar majtas dhe djathtas. Për të vërtetuar rëndësinë e këtij grupi komandash, mjafton të kujtojmë rregullin e shumëzimit të kolonës: çdo produkt pasues shkruhet në një skemë të tillë me një zhvendosje prej një shifre majtas. Në disa raste të veçanta, shumëzimi dhe pjesëtimi në përgjithësi mund të zëvendësohen me një zhvendosje (mos harroni se duke shtuar ose hequr një zero në të djathtë, d.m.th., duke zhvendosur në të vërtetë një numër, ju mund ta rritni ose zvogëloni atë me 10 herë).

5. Komandat hyrëse dhe dalëse informacion për shkëmbim me pajisje të jashtme. Në disa kompjuterë, pajisjet e jashtme janë adresa të memories speciale të shërbimit, kështu që hyrja dhe dalja kryhen duke përdorur komandat e regjistrimit.

6. Komandat e kontrollit, duke zbatuar algoritme jolineare. Kjo përfshin kryesisht kërcimet e kushtëzuara dhe të pakushtëzuara, si dhe komandat për thirrjen e një nënprogrami (kërcim me kthim). Disa kompjuterë kanë komanda të veçanta për organizimin e cikleve, por kjo nuk është e nevojshme: ndonjë cikli mund të reduktohet në një ose një kombinim tjetër të tranzicioneve të kushtëzuara dhe të pakushtëzuara.

Shpesh i njëjti grup komandash përfshin operacione të kontrollit të procesorit si ndalimi ose NOP - pa operacion. Ndonjëherë ato ndahen në një grup të veçantë. Ndërsa kompleksiteti i pajisjes së procesorit rritet, numri i udhëzimeve të tilla rritet.

Çdo komandë kompjuteri zakonisht përbëhet nga dy pjesë - salla e operacionit Dhe adresë. Pjesa operative (përndryshe quhet kodi i funksionimit - COP) tregon se çfarë veprimi duhet të kryhet mbi informacionin. Pjesa e adresës përshkruan se ku ruhet informacioni i përdorur dhe ku duhet të vendoset rezultati. Disa komanda për kontrollin e funksionimit të makinës mund të mos kenë asnjë pjesë adrese, për shembull, në komandën e ndalimit; pjesa e funksionimit është gjithmonë e disponueshme.

Një kod operimi mund të konsiderohet si një numër i caktuar konvencional në listën e përgjithshme të sistemeve të komandës. Në thelb, kjo listë është ndërtuar në përputhje me modele të caktuara të brendshme, megjithëse ato nuk janë gjithmonë të dukshme.

Pjesa e adresës ka larmi shumë më të madhe dhe duhet konsideruar më në detaje.

Para së gjithash, vini re se komandat mund të jenë një, dy dhe tre adresa në varësi të numrit të operandëve të mundshëm.

Kompjuterët e parë kishin sistemin më të thjeshtë dhe më intuitiv të komandës me tre adresa. Për shembull: merrni numra nga adresat e memories A1 dhe A2, shtoni ato dhe vendosni shumën në adresën A3. Nëse një operacion kërkon një numër më të vogël adresash, atëherë ato shtesë thjesht nuk përdoreshin. Le të themi se në operacionin e regjistrimit u treguan vetëm qelizat burimore dhe marrëse të informacionit A1 dhe A3, dhe përmbajtja e A2 nuk kishte asnjë kuptim.

Komanda me tre adresa ishte e lehtë për t'u deshifruar dhe ishte e përshtatshme për t'u përdorur, por me rritjen e sasisë së RAM-it, gjatësia e saj u bë jashtëzakonisht e madhe. Në të vërtetë, gjatësia e një komande të tillë është shuma e gjatësisë së tre adresave dhe kodit të funksionimit. Nga kjo rrjedh, për shembull, që për një RAM modeste prej 1024 qelizave, vetëm shkrimi i pjesës së adresës kërkon 3 * 10 = 30 bit binare, gjë që nuk është shumë e përshtatshme për zbatimin teknik. Prandaj, u shfaqën makina me dy adresa, në të cilat gjatësia e komandës u zvogëlua duke eliminuar adresën për regjistrimin e rezultatit. Në kompjuterë të tillë, rezultati i operacionit mbeti në një regjistër të veçantë ( shtues) dhe ishte i përshtatshëm për t'u përdorur në llogaritjet e mëvonshme. Në disa makina, rezultati u shkrua në vend të njërit prej operandëve.

Thjeshtimi i mëtejshëm i komandës çoi në krijimin e makinave unicast. Le të shqyrtojmë sistemin e komandës së një kompjuteri të tillë duke përdorur një shembull të thjeshtë specifik. Supozoni se duhet të shtojmë numrat e ruajtur në adresat RAM A1 dhe A2, dhe ta vendosim shumën në A3. Për të zgjidhur këtë problem, një makinë unicast do të duhet të ekzekutojë tre komanda:

  1. nxirrni përmbajtjen e qelizës A1 në grumbullues;
  2. shtoni mbledhësin me numrin nga A2;
  3. shkruani rezultatin nga mbledhësi në A3.

Mund të duket se një makinë unicast do të kërkonte tre herë më shumë komanda për të përfunduar një detyrë sesa një makinë me tre adresa. Në fakt, nuk është gjithmonë kështu. Provoni të planifikoni programin tuaj për llogaritjen e shprehjes Y=(X1+X2)*X3/X4 dhe do të habiteni kur do të zbuloni se do t'ju nevojiten 3 komanda me tre adresa dhe vetëm 5 unicast. Kështu, një makinë unicast është në disa mënyra edhe më efikase, sepse nuk bën shkrime të panevojshme në kujtesën e rezultateve të ndërmjetme.

Për hir të plotësisë, duhet thënë për mundësinë e zbatimit të një makine pa adresë (zero adresë) që përdor një mënyrë të veçantë të organizimit të kujtesës - rafte. Kuptimi i parimeve të një makinerie të tillë do të kërkonte disa shpjegime mjaft të detajuara; Në të njëjtën kohë, tani kompjuterët pa adresë praktikisht nuk përdoren. Prandaj, do të kufizohemi vetëm në përmendjen e faktit se një sistem komandimi i rregulluar në mënyrë të ngjashme ishte baza e disa mikrollogaritësve të programueshëm si "B3-21" dhe "B3-34" dhe të ngjashme.

© E.A.Eremin, 1997
Nga libri:
Eremin E.A. Si funksionon një kompjuter modern. - Perm: shtepia botuese PRIPIT, 1997. 176 f.

Një komponent i rëndësishëm i arkitekturës kompjuterike është sistemi i instruksioneve. Pavarësisht numrit të madh të llojeve të kompjuterëve, në nivelin më të ulët ("makine") ata kanë shumë të përbashkëta. Sistemi i komandës i çdo kompjuteri përmban domosdoshmërisht grupet e mëposhtme të komandave të përpunimit të informacionit.

1. Komandat e transferimit të të dhënave (regjistrimi), të cilat kopjojnë informacionin nga një vend në tjetrin.

2. Veprimet aritmetike, të cilave teknologjia kompjuterike i detyrohet në të vërtetë emrin e saj. Sigurisht, pjesa e veprimeve llogaritëse në një kompjuter modern është ulur ndjeshëm, por ato ende luajnë një rol të rëndësishëm në programe. Vini re se operacionet bazë aritmetike zakonisht përfshijnë mbledhjen dhe zbritjen (kjo e fundit në fund të fundit më shpesh reduktohet në mbledhje në një mënyrë ose në një tjetër). Sa i përket shumëzimit dhe pjesëtimit, në shumë kompjuterë ato kryhen duke përdorur programe speciale.

3. Operacione logjike që lejojnë kompjuterin të analizojë informacionin që përpunohet. Shembujt më të thjeshtë janë krahasimi, si dhe veprimet e njohura logjike DHE, OSE, JO (inversion). Përveç kësaj, analiza e pjesëve individuale të kodit, rivendosja dhe instalimi i tyre shpesh u shtohen atyre.

4. Kodi binar zhvendoset majtas dhe djathtas. Për të vërtetuar rëndësinë e këtij grupi komandash, mjafton të kujtojmë rregullin e shumëzimit të kolonës: çdo produkt pasues shkruhet në një skemë të tillë me një zhvendosje prej një shifre majtas. Në disa raste të veçanta, shumëzimi dhe pjesëtimi në përgjithësi mund të zëvendësohen me një zhvendosje (mos harroni se duke shtuar ose hequr një zero në të djathtë, d.m.th., duke zhvendosur në të vërtetë një numër dhjetor, ju mund ta rritni ose zvogëloni atë me 10 herë).

5. Komandat për hyrjen dhe daljen e informacionit për shkëmbim me pajisje të jashtme. Në disa kompjuterë, pajisjet e jashtme janë adresa të memories speciale të shërbimit, kështu që hyrja dhe dalja kryhen duke përdorur komandat e regjistrimit.

6. Komandat e kontrollit që zbatojnë algoritme jolineare. Kjo përfshin kryesisht kërcimet e kushtëzuara dhe të pakushtëzuara, si dhe komandat për thirrjen e një nënprogrami (kërcim me kthim). Disa kompjuterë kanë komanda të veçanta për organizimin e sytheve, por kjo nuk është e nevojshme: një lak mund të reduktohet në një ose një kombinim tjetër të tranzicioneve të kushtëzuara dhe të pakushtëzuara. Shpesh, i njëjti grup komandash përfshin disa operacione për të kontrolluar procesorin, të tilla si "stop" ose NOP ("pa operacion"). Ndonjëherë ato ndahen në një grup të veçantë.

Me rritjen e kompleksitetit të pajisjes së procesorit, rritet edhe numri i komandave që analizojnë gjendjen e bitave të kontrollit dhe veprojnë sipas tyre. Këtu, si shembull, mund të emërtojmë bitet e modalitetit të funksionimit të procesorit dhe bitet e kontrollit për mekanizmat e ndërprerjeve nga pajisjet e jashtme.


Kohët e fundit, një rol gjithnjë e më të rëndësishëm në grupin e komandave luajnë komandat për konvertimin nga një format i të dhënave në tjetrin (për shembull, nga 8-bit në 16-bit, etj.), Të cilat thjeshtojnë ndjeshëm përpunimin e të dhënave të llojeve të ndryshme, por në parim mund të zëvendësohet me një sekuencë të disa komandave më të thjeshta.

Duke marrë parasysh sistemin e komandës, nuk mund të mos përmenden dy drejtime moderne konkurruese reciproke në ndërtimin e tij: një kompjuter me një grup të plotë komandash CISC (Complex Instruction Set Computer) dhe me një grup të kufizuar - RISC (Reduced Instruction Set Computer). Ndarja u ngrit për faktin se në shumicën e rasteve kompjuteri duhet të ekzekutojë një pjesë të vogël të grupit të udhëzimeve të tij, ndërsa pjesa tjetër përdoret në mënyrë sporadike (një artikull popullor e shpreh me shaka këtë në formën e analogjisë vizuale vijuese: "20 % e popullsisë pi 80% të birrës. Kështu, nëse e kufizoni ndjeshëm grupin e operacioneve në më të thjeshtat dhe më të shkurtrat, por i optimizoni me kujdes, do të merrni një makinë RISC mjaft efikase dhe të shpejtë. Vërtetë, do të duhet të paguani për shpejtësinë nga nevoja për të zbatuar komanda "të fshira" në softuer, por shpesh kjo pagesë justifikohet: për shembull, për llogaritjet shkencore ose grafika kompjuterike, shpejtësia është shumë më e rëndësishme sesa problemet e programimit. Çështjet që lidhen me sistemin e instruksionit të mikroprocesorëve modernë do të diskutohen më në detaje më vonë në këtë kapitull.

Për ta përmbledhur, theksojmë edhe një herë se grupi bazë i komandave ka ndryshuar mjaft pak gjatë evolucionit të shpejtë të kompjuterëve. Në të njëjtën kohë, metodat për të treguar adresën e vendndodhjes së informacionit në memorie kanë pësuar ndryshime të rëndësishme dhe meritojnë konsideratë të veçantë.

Një komandë kompjuterike zakonisht përbëhet nga dy pjesë - operacionale dhe adresa. Pjesa operative (e quajtur ndryshe kodi i operacionit - OPC) tregon se çfarë veprimi duhet të kryhet me informacionin. Pjesa e adresës përshkruan se ku ruhet informacioni i përdorur. Disa komanda për kontrollin e funksionimit të makinës mund të mos kenë asnjë pjesë adrese, për shembull, në komandën e ndalimit; pjesa e funksionimit është gjithmonë aty.

Një kod operimi mund të konsiderohet si një numër i caktuar konvencional në listën e përgjithshme të sistemeve të komandës. Në thelb, kjo listë është ndërtuar në përputhje me modele të caktuara të brendshme, megjithëse ato nuk janë gjithmonë të dukshme.

Pjesa e adresës ka larmi shumë më të madhe dhe duhet konsideruar më në detaje.

Para së gjithash, vërejmë se udhëzimet mund të jenë me një, dy ose tre adresa, në varësi të numrit të operandëve të përfshirë në to.

Kompjuterët e parë kishin sistemin më të thjeshtë dhe më intuitiv të komandës me tre adresa. Për shembull: merrni numra nga adresat e memories A1 dhe A2, shtoni ato dhe vendosni shumën në adresën A3. Nëse një operacion kërkon një numër më të vogël adresash, atëherë ato shtesë thjesht nuk përdoreshin. Le të themi se në operacionin e regjistrimit u treguan vetëm qelizat burimore dhe marrëse të informacionit A1 dhe A3, dhe përmbajtja e A2 nuk kishte asnjë kuptim.

Komanda me tre adresa ishte e lehtë për t'u deshifruar dhe ishte e përshtatshme për t'u përdorur, por ndërsa sasia e RAM-it rritej, gjatësia e saj u bë jashtëzakonisht e madhe. Në të vërtetë, gjatësia e komandës është shuma e gjatësisë së tre adresave dhe kodit të funksionimit. Nga kjo rrjedh, për shembull, që për një RAM modeste prej 1024 qelizave, thjesht shkrimi i pjesës së adresës së një komande kërkon 3 * 10 = 30 bit binar, gjë që nuk është shumë e përshtatshme për zbatimin teknik. Prandaj, u shfaqën makina me dy adresa, në të cilat gjatësia e komandës u zvogëlua duke eliminuar adresën për regjistrimin e rezultatit. Në kompjuterë të tillë, rezultati i operacionit mbeti në një regjistër të veçantë (mbledhës) dhe ishte i përshtatshëm për t'u përdorur në llogaritjet e mëvonshme. Në disa makina, rezultati shkruhej në vend të njërit prej operandëve.

Thjeshtimi i mëtejshëm i komandës çoi në krijimin e makinave unicast. Le të shqyrtojmë sistemin e komandës së një kompjuteri të tillë duke përdorur një shembull të thjeshtë specifik. Supozoni se duhet të shtojmë numrat e ruajtur në qeliza me adresat RAM A1 dhe A2 dhe ta vendosim shumën në qelizën me adresën A3. Për të zgjidhur këtë problem, një makinë unicast do të duhet të ekzekutojë tre komanda:

Ekstraktoni përmbajtjen e qelizës A1 në grumbullues;

Shtoni grumbulluesin me numrin nga A2;

Shkruani rezultatin nga mbledhësi në A3.

Mund të duket se një makinë unicast do të kërkonte tre herë më shumë komanda për të përfunduar një detyrë sesa një makinë me tre adresa. Në fakt, nuk është gjithmonë kështu. Përpiquni të planifikoni programin tuaj për llogaritjen e shprehjes A5 = (A1 + A2)*AZ/A4 dhe do të zbuloni se do t'ju nevojiten tre komanda me tre adresa dhe vetëm pesë unicast. Kështu, një makinë unicast është në një farë mënyre edhe më efikase, pasi nuk shkruan rezultate të ndërmjetme të panevojshme në memorie.

Për hir të plotësisë, duhet thënë për mundësinë e zbatimit të një makine pa adresë (zero adresë) që përdor një mënyrë të veçantë të organizimit të kujtesës - një pirg. Kuptimi i parimeve të një makinerie të tillë do të kërkonte disa shpjegime mjaft të detajuara. Në ditët e sotme, kompjuterët pa adresë praktikisht nuk përdoren. Prandaj, ne do të kufizohemi vetëm në përmendjen e faktit që një sistem komandimi i rregulluar në mënyrë të ngjashme ishte baza e disa mikrollogaritësve të programueshëm (për shembull, si "BZ-21" dhe "BZ-34" dhe të ngjashme).

Deri më tani, në përshkrimin e strukturës së një instruksioni makinerie, ne kemi përdorur konceptin intuitiv të adresës së informacionit. Le të shqyrtojmë tani çështjen e adresimit të elementeve RAM në më shumë detaje dhe në mënyrë rigoroze. Kujtesa u organizua më thjesht në kompjuterët e dy gjeneratave të para. Ai përbëhej nga qeliza individuale, përmbajtja e secilës prej të cilave lexohej ose shkruhej si një njësi e vetme. Çdo qelizë memorie kishte numrin e vet, i cili quhej adresa. Natyrisht, adresat e qelizave RAM fqinje janë numra të plotë të njëpasnjëshëm, d.m.th. ndryshojnë nga një. Kompjuterët në shqyrtim përdorën të dhëna vetëm të një lloji (numrat realë), dhe gjatësia e tyre ishte e barabartë me gjatësinë e instruksionit të makinës dhe përputhej me kapacitetin e memories dhe të gjitha pajisjeve të tjera të makinës. Për shembull, theksojmë se qeliza e një kompjuteri tipik të gjeneratës së dytë përbëhej nga 36 bit binar.

Shumë shpesh, një program synohej të përpunonte, duke përdorur të njëjtat formula, një sasi të caktuar të përmbajtjes së qelizave të vendosura në mënyrë sekuenciale (në gjuhët e nivelit të lartë, struktura të tilla më vonë u quajtën vargje). Dy gjeneratat e para të kompjuterëve siguruan mekanizma të veçantë për përpunimin ciklik të grupeve të informacionit. Për këtë qëllim, në instruksionet e makinës, përveç adresave të rregullta, ishte e mundur të përdoren adresa të modifikueshme në të cilat një bit i veçantë kontrolli vendosej në një. Kur komanda u ekzekutua, adresat e modifikuara të shënuara në këtë mënyrë u shtuan me vlerën nga qelizat e indeksit special. Duke ndryshuar përmbajtjen e qelizave të indeksit, ishte e mundur të aksesoheshin elementë të ndryshëm të grupit. Veçanërisht theksojmë se formimi i adresës që rezulton u krye në njësinë e kontrollit në kohën kur komanda u ekzekutua, kështu që komanda origjinale në RAM u ruajt pa ndryshime.

Mekanizmi i përshkruar për modifikimin e adresave thjeshtoi ndjeshëm shkrimin e programeve ciklike, si gjetja e shumës së qelizave RAM të njëpasnjëshme, kopjimi i seksioneve individuale të memories, etj.

Në kompjuterët e gjeneratës së tretë, ideologjia e ndërtimit të memories ndryshoi ndjeshëm: pjesa minimale e informacionit për shkëmbim me RAM u vendos e barabartë me 8 shifra binare, d.m.th. një bajt. Është bërë e mundur përpunimi i disa llojeve të të dhënave: karakteret e tekstit (1 bajt), numrat e plotë (2 bajt), numrat realë me saktësi të zakonshme ose të dyfishtë (përkatësisht 4 ose 8 bajt). Në këtë drejtim, u prezantua një njësi e re konvencionale e matjes së informacionit - fjala e makinës. Ishte e barabartë me 4 bajt dhe korrespondonte me gjatësinë e një numri real standard. Të gjitha sasitë e informacionit filluan të maten në njësi që janë shumëfisha të një fjale: fjalë e dyfishtë, gjysmë fjalë, etj. Natyrisht, adresa (numri i qelizave RAM) në makinat me një organizim bajt filloi t'i referohej një bajt të veçantë; bajtët e memories kanë numra duke u rritur me një. Një fjalë përbëhet nga disa bajt të njëpasnjëshëm. Si adresë e një fjale, është e përshtatshme të merret adresa e njërit prej bajteve që e formojnë atë (zakonisht përdoret bajt i ulët, i cili ka numrin më të vogël). Kështu, adresat e fjalëve nuk ndryshojnë më pas një; rritja e tyre varet nga gjatësia e fjalës së makinës në bajt dhe është e barabartë me katër.

Madhësia e fjalës së makinës u zgjodh me sa duket bazuar në formatet e informacionit që përpunohet, dhe jo në lidhje me kapacitetin bit të ndonjë pajisjeje. Për ta konfirmuar këtë, këtu janë disa fakte rreth kompjuterëve tipikë të gjeneratës së tretë nga familja EC. Njësia aritmetike-logjike e modelit EC-1022 kishte 16 bit binarë, EC-1033 kishte 32 bit dhe EC-1050 kishte 64 bit. Në të njëjtën kohë, për një qasje në RAM në ES-1022 dhe ES-1033, u zgjodhën 4 bajt, në ES-1050 - 8 bajtë (dhe në ES-1045 - 16 bajtë). Kështu, shumëllojshmëria e numrave tregon se 32 bit (4 bajt) nuk ishin një sasi informacioni e alokuar teknikisht.

Në makinat e gjeneratës së tretë, u shfaqën disa veçori të tjera: gjatësi të ndryshme udhëzimesh në varësi të metodës së adresimit të të dhënave, prania e një memorie speciale të regjistrit ultra të rastësishëm, llogaritja e adresës efektive RAM si shuma e disa regjistrave, etj. E gjithë kjo u zhvillua më tej në kompjuterët e gjeneratës së katërt, për të cilët kapaciteti i mikroprocesorit u bë një nga karakteristikat më të rëndësishme. Ne do të shtyjmë shqyrtimin e veçorive strukturore të kujtesës së kompjuterit të gjeneratës së katërt deri në seksionin tjetër.

Pyetje kontrolli

1. Çfarë është arkitektura kompjuterike? Formuloni një përkufizim dhe deshifroni atë.

2. Vizatoni një analogji midis arkitekturës së kompjuterit dhe konceptit të zakonshëm të arkitekturës. Cilat janë ngjashmëritë dhe cilat janë ndryshimet?

3. Çfarë është e zakonshme dhe cili është ndryshimi midis koncepteve të "strukturës së brendshme të një kompjuteri"

dhe “arkitektura kompjuterike”?

4. Çfarë është familja kompjuterike? Jep shembuj.

5. Shpjegoni parimin e përputhshmërisë së softuerit. Çfarë është përputhshmëria nga poshtë-lart (shpjegoni me shembullin e një prej familjeve që njihni)?

6. A lidhen faktet e mëposhtme me konceptin “arkitekturë”:

a) a përdor kompjuteri çipa RAM dinamike (ose statike)?

b) a ka kompjuteri memorie të zgjeruar?

c) a ka kompjuteri (nuk ka) një autobus të përbashkët përmes të cilit transferohet informacioni ndërmjet pajisjeve të tij?

d) në procesorin INTEL 80386, disa të reja janë shtuar në sistemin e instruksionit në krahasim me INTEL 80286?

e) kapaciteti i memories së modelit të ri kompjuterik është dyfishuar?

7. Rendisni parimet bazë të arkitekturës von Neumann dhe shpjegoni përmbajtjen e tyre.

8. Cila është arsyeja e përdorimit të gjerë të sistemit binar në kompjuterë?

9. A është e mundur? duke parë përmbajtjen e një qelize të vetme memorie, përcaktoni se çfarë informacioni është shkruar në të: numri, komanda, simbolet?

10. Cilët janë komponentët kryesorë të një kompjuteri?

11. Çfarë është numëruesi i programit dhe çfarë roli luan ai?

12. Çfarë është autostrada (autobus)?

13. Çfarë përparësish ka struktura e kompjuterit mainframe?

14. Çfarë është një kontrollues i jashtëm i pajisjes dhe çfarë roli luan ai në procesin e shkëmbimit të informacionit?

15. Çfarë roli luan video memoria në kompjuter?

a) modaliteti i tekstit (24 rreshta me 80 karaktere);

b) modaliteti grafik bardh e zi me një madhësi ekrani 640x200 piksele;

c) Modaliteti me 16 ngjyra me të njëjtën madhësi ekrani.

17. Çfarë është modaliteti DMA?

18 Cili është emri i komponentit elementar të një komande makinerie? Çfarë mund të përcaktojë shpejtësinë e ekzekutimit të komandës?

19. Përshkruani fazat kryesore të ekzekutimit të një komande makinerie. Vëmendje e veçantë

kushtojini vëmendje rolit të numëruesit të programit.

20. Çfarë është command pipelining dhe çfarë përparësish ka ai?

21. Cilat operacione bazë janë pjesë e sistemit komandues të çdo kompjuteri?

Përshkruani shkurtimisht secilin prej këtyre grupeve.

22. Shpjegoni pse është e mundur të krijohet një kompjuter me të reduktuar (të paplotësuar)

një grup komandash dhe çfarë jep.

23. Nga cilat pjesë përbëhet një ekip kompjuterik? Përshkruani shkurtimisht qëllimin e tyre.

24. Cili është ndryshimi midis komandave me një, dy dhe tre adresa?

25. Çfarë është adresa RAM?

26. Si mund të përdorni të njëjtën komandë për të punuar me disa

qeliza të renditura në mënyrë sekuenciale?

27. Tregoni ndryshimet në strukturën e memories së një kompjuteri të gjeneratës së tretë në krahasim me dy të mëparshmet.

Alexander Savvateev

Informacion i pergjithshem

Kompjuteri M-3 u zhvillua nën udhëheqjen e I. S. Brook. I përket klasës së makinave të vogla universale.

Makina kryen operacione në numra me pikë fikse 31-bit me një shpejtësi prej 30 operacionesh të adresës së dyfishtë në sekondë. RAM-i është instaluar në një kazan magnetik dhe ka një kapacitet prej 2048 numrash. Nëse memoria në bërthamat magnetike është e lidhur me një kompjuter, performanca rritet në 1500 operacione në sekondë.

M-3 nuk ka pajisje memorie të jashtme.

Shiriti i shpuar dhe teletipi përdoren për hyrjen dhe daljen e informacionit.

Makina ka 770 tuba vakum dhe 3000 dioda gjysmëpërçuese dhe konsumon 10 kW energji elektrike. Për ta akomoduar mjafton 30-40 m2.

Struktura e kujtesës dhe informacionit

RAM-i i kompjuterit M-3 ka një kapacitet prej 2048 numrash ose komandash 31-bitësh. Të gjitha qelizat e kujtesës janë të barabarta me njëra-tjetrën. Për të hyrë në qelizat e memories, përdoren adresat 11-bit. Pjesët e qelizave të kujtesës numërohen nga e majta në të djathtë; Shifra më domethënëse (më e majta) është numri 0.

Numrat binare me pikë fikse përmbajnë shenjën e numrit në shifrën zero, dhe 30 shifrat e mbetura janë të zëna nga vlera absolute e numrit. Kështu, M-3 përdor kodin plotësues të drejtpërdrejtë dhe jo të dy për të përfaqësuar numrat negativë. Në përgjithësi pranohet se pjesa e plotë e një numri është e barabartë me zero, dhe shifrat 1-30 përmbajnë pjesën e tij të pjesshme.

Numrat dhjetorë kanë gjithashtu një pjesë të plotë zero. Shenja e tyre vendoset në shifrën zero, dhe në shifrat 1-28 ka shtatë fletore që kodojnë shifrat dhjetore të pjesës thyesore të numrit. Bitet 29-30 nuk përdoren.

Hyrja/dalja e informacionit

Shiriti i shpuar përdoret për të futur programin në kujtesën e kompjuterit. Për çdo qelizë në shiritin e shtypur, printohen adresa e saj, shenja e fundit e adresës, vlera e kësaj qelize dhe shenja e fundit të vlerës. Në fund të programit shfaqet një shenjë e veçantë. Në program futet duke shtypur butonin përkatës në panelin e kontrollit të kompjuterit.

Shirit letre të shpuar përdoret gjithashtu për të futur të dhëna, por përmban një grup të vazhdueshëm numrash dhjetorë pa ndonjë kod shtesë. Hyrja e tyre sigurohet nga programi duke përdorur një komandë të veçantë.

Informacioni nxirret në një pajisje printimi të tillë si teletipi.

Sistemi i komandës

Kompjuteri M-3 është një makinë me dy adresa. Çdo komandë zë një qelizë memorie. Biti i kodit të komandës 0 nuk përdoret, bitet 1-6 përmbajnë kodin e operacionit, bitet 7-18 janë adresa e operandit të parë, bitet 19-30 janë adresa e operandit të dytë dhe rezultati.

Pajisja aritmetike e kompjuterit M-3 ka një grumbullues në të cilin futet rezultati i operacionit të fundit të kryer. Përmbajtja e grumbulluesit mund të përdoret në operacionin tjetër.

Kur merret një rezultat negativ, duke përfshirë një zero negative, formohet shenja w = 1. Kur merret një rezultat pozitiv, shenja w = 0.

Të gjitha komandat mund të ndahen në dy grupe: komanda aritmetike-logjike dhe komanda kontrolli.

Kodi i udhëzimit aritmetik-logjik ka formën xy, Ku x- modifikues i funksionimit (një shifër oktal); y- kodi i funksionimit (shifra e dytë tetë). Vlerat e mundshme të kodeve dhe modifikuesve të veprimeve aritmetike-logjike janë dhënë në tabelat e mëposhtme. 1-2.

Tabela 1

tabela 2

Në tabelë 1 a Dhe b do të thotë qelizat e memories të specifikuara nga adresa e parë dhe e dytë në kodin e udhëzimeve, përkatësisht; r- regjistri i shtesave.

Komandat e kontrollit nuk kanë modifikime, kështu që kodi i tyre merr gjithmonë dy shifra tetëshe. Lista e komandave të kontrollit është dhënë në tabelë. 3.

Tabela 3

Kodi i funksionimit Emri i ekipit Veprimet e kryera me komandë
07
27
Futja e numrave nga shiriti i shtypur Një numër nga shiriti i shpuar futet në qelizë b. Nuk futet në grumbullues. Adresa e qelizës a është zero
05
15
Mbajtja e një numri Numri nga qeliza a transferohet në qelizë b
45
55
Transferimi i numrave dhe printimi Numri nga qeliza a transferohet në qelizë b dhe njëkohësisht shtypet në një teletip
24 Kërce pa kushte në adresën e parë a
b
64 Kërceni pa kushte në adresën e parë dhe printoni Kontrolli transferohet në qelizën me adresën a
dhe në të njëjtën kohë në qelizë me adresën shkruhet përmbajtja e grumbulluesit b dhe të shtypura në një teletip
74 Kërcim pa kushte në adresën e dytë Kontrolli transferohet në komandën me adresën b. Adresa a në kodin komandues është zero. Biti i shenjës së grumbulluesit pastrohet, d.m.th., vlera absolute e vlerës së tij origjinale mbetet në grumbullues
34 Kërcim i kushtëzuar Nëse w =1, kontrolli transferohet në qelizën me adresën a, dhe nëse w =0 - në qelizën me adresën b
37 Ndalo Makina ndalon. Paneli i kontrollit lëshohet a. Përmbajtja e grumbulluesit nuk ndryshon. Fusha e adresës b në kodin komandues është i barabartë me zero

Leksioni 11 KOMANDA BAZË KOMPJUTERIKE Klasifikimi i komandave sipas kritereve të ndryshme Struktura e komandave kompjuterike Komandat e transferimit të të dhënave Komandat e përpunimit të të dhënave Komandat e kontrollit të transferimit Komandat për punë me nënprograme. Rafte. Komanda të tjera kompjuterike.

Sistemi i komandës kompjuterike E gjithë shumëllojshmëria e problemeve të zgjidhura në një kompjuter zbatohet duke përdorur një grup të vogël komandash shumë të thjeshta. Sistemi komandues i një kompjuteri tipik përfshin vetëm 60-150 komanda bazë. Të gjitha komandat përdoren kryesisht për të kryer veprime shumë të thjeshta, si lexo, mbaj mend, shto, zhvendos, krahaso, etj. Inteligjenca e kompjuterit arrihet për faktin se kompjuteri është i aftë të ekzekutojë programe të përbëra nga një numër i madh veprime kaq të thjeshta me një shpejtësi të madhe, të paarritshme për njerëzit. Kur përshkruhet një sistem komandimi kompjuterik, zakonisht është zakon të klasifikohen komandat sipas kritereve të mëposhtme.

Klasifikimi i komandave kompjuterike sipas qëllimit funksional Komandat e transferimit të të dhënave Komandat e përpunimit të të dhënave Komandat e kontrollit të transferimit Shtesë (të tjera) Sipas numrit të adresave Null-adresa ose pa adresë Me një adresë Me dy adresa Me tre adresa Sipas metodës së kodimit të operacionit Sipas gjatësisë Me një gjatësi fikse i kodit të operacionit Me një gjatësi të ndryshueshme të kodit të operacionit Me metodën e adresimit Një bajt (fjalë) Dy bajt (fjalë) Tre baj (fjalë)

Kodi i funksionimit a 1 a 2 a 3 - Komanda me tre adresa a 1, a 2 - adresat e qelizave (regjistrave) ku ndodhen numrat e përfshirë në operacion (operandët) dhe 3 - adresa e qelizës RAM ku duhet të jetë rezultati. vendoset Kodi i funksionimit a 1 a 2 - Komanda me dy adresa Rezultati shkruhet në qelizën a 2 Kodi i operacionit a 1 - Komanda e një adrese a 1 - adresa e qelizës ku ruhet numri i përfshirë në operacion ose adresa e qelizës ku rezultati shkruhet Kodi i operacionit - Komanda e adresës zero Të gjithë operandët në regjistrin e CPU-së

Komandat e transferimit të të dhënave Ky grup komandash përfshin nëngrupe komandash për transferimin e kodeve ndërmjet regjistrave brenda procesorit, nga regjistrat e procesorit në memorie, nga memorja në regjistrat e procesorit, nga një qelizë memorie në tjetrën dhe transferimin e të dhënave ndërmjet procesorit dhe portave të pajisjes së jashtme. Një nëngrup i veçantë përbëhet nga ekipe për të punuar me pirgun. Ato ju lejojnë të vendosni të dhëna në një pirg për ruajtje të përkohshme dhe të nxirrni të dhëna nga pirgja kur ju duhet t'i përdorni.

Komandat për përpunimin e të dhënave Ky grup komandash, për sa i përket veprimeve të kryera mbi të dhënat, mund të ndahet në komanda aritmetike (shto, zbrit, shumëzo, krahaso), logjike (operacione DHE, OSE, JO, etj.) dhe në komanda zhvendosje. Instruksionet e këtij lloji mund të kenë një ose dy operandë. Operandët mund të ruhen në regjistrat e CPU-së, në memorie ose në vetë instruksionin.

Rezultati i operacionit formohet në regjistrin marrës ose në një regjistër të specializuar akumulatorësh. Komandat e këtij grupi gjithashtu formojnë shenjat e rezultateve që vendosen në regjistrin e flamujve të procesorit: transferimi nga biti më domethënës, tejmbushja, rezultati zero, etj.

Mësoni më shumë rreth komandës krahasoni Në mënyrë tipike, procesori kryen një operacion zbritjeje për të krahasuar dy numra. Bazuar në rezultatin e zbritjes, vendosen flamujt në regjistrin e flamurit. Natyrisht, nëse numrat që krahasohen janë të barabartë, rezultati i zbritjes do të jetë zero dhe flamuri i rezultatit zero do të vendoset në regjistër. Nëse i pari nga numrat e krahasuar është më i madh, rezultati i zbritjes do të jetë negativ dhe do të vendoset flamuri i rezultatit negativ. Rezultati i zbritjes nuk ruhet në memorie, pasi gjendja e regjistrit të flamurit mund të përdoret për të gjykuar rezultatet e krahasimit të numrave.

Komandat e kontrollit të transferimit Ato janë të rëndësishme sepse përdoren për të ndryshuar rendin natyror të komandave dhe për të organizuar seksione ciklike në programe. Instruksioni më i thjeshtë i transferimit të kontrollit është instruksioni i kërcimit të pakushtëzuar JMP, i cili ngarkon adresën e kërcimit të specifikuar në instruksion në numëruesin e programit. Udhëzimet e kërcimit të kushtëzuar testojnë gjendjen e specifikuar në komandë dhe modifikojnë numëruesin e programit nëse kushti është i vërtetë.

Src="http://present5.com/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-11.jpg" alt="Shembull i një deklarate të komandës kërcimi të kushtëzuar IF (A>B ) pastaj shkoni te L e një gjuhe"> Пример команды условного перехода Оператор IF (A>B) then go to L некоторого языка высокого уровня может быть реализован двумя командами ЭВМ: СРАВНИТЬ А и В ПЕРЕЙТИ ЕСЛИ БОЛЬШЕ К АДРЕСУ L Если А>В, то результат вычитания будет положителен и соответственно флаг знака во флаговом регистре не установится. Вторая команда (условный переход) проверяет состояние флага знака и, если он не установлен, модифицирует программный счетчик так, чтобы его значение указывало на адрес L.!}

Organizimi i nënprogrameve Në programim përdoret gjerësisht një teknikë e quajtur organizimi i nënprogrameve. Një nënprogram përshkruhet një herë, por mund të thirret në mënyrë të përsëritur nga vende të ndryshme në program. Një nënprogram mund të thërrasë një tjetër ndërsa është në punë. Pasi nënprogrami të ketë përfunduar punën e saj, kontrolli duhet të transferohet në komandën tjetër në memorie menjëherë pas komandës për të hyrë në këtë nënprogram. Adresa e komandës në të cilën transferohet kontrolli pas përfundimit të nënprogramit quhet adresa e kthimit.

Ku duhet ta ruaj adresën time të kthimit? Për të filluar ekzekutimin e një nënprogrami, numëruesi i programit duhet të ngarkohet me adresën e instruksionit të parë të nënprogramit. Për t'u kthyer nga një nënprogram, duhet të mbani mend adresën e kthimit diku. Për shembull, mund të ruani adresën e kthimit në një nga regjistrat e procesorit. Kjo metodë e ruajtjes së adresës së kthimit është shumë e thjeshtë dhe e lehtë për t'u zbatuar. Megjithatë, është e zakonshme të gjesh nënprograme që thërrasin nënprograme të tjera. Lëreni që programi kryesor të thërrasë nënprogramin A. Ai nga ana e tij quhet nënrutinë B. Nëse adresa e kthimit për nënprogramin A ruhet në një regjistër procesor, atëherë ku duhet të vendoset adresa e kthimit kur thirret nënprogrami B?

Algoritmi i përgjithësuar për funksionimin e një kompjuteri von Neumann Inicializimi Marrja e një komande Rritja e numëruesit të programit Deshifrimi dhe ekzekutimi i një komande Jo Komandë "Ndalo procesorin" Po Inicializimi

Koncepti i një rafte Shumica e kompjuterëve përdorin një strukturë të dhënash të mbështetur nga hardueri të quajtur stek. Një pirg është një strukturë të dhënash e organizuar sipas parimit të fundit-hyrë, i pari-dal, d.m.th., të dhënat e fundit të shkruara në pirg janë të parat që merren prej tij. Përkthyer nga anglishtja. pirg - pirg. Një analog i një pirg mund të jetë një pirg pllakash. Ju mund të vendosni një pjatë në një pirg vetëm nga lart, mund të hiqni vetëm pjatën e sipërme pa asnjë problem.

Organizimi i stivës 1. Në një kompjuter, një zonë e RAM-it ndahet për të organizuar pirgun dhe një regjistër tregues i stivës përdoret për ta adresuar atë dhe për të hyrë në pirg. 2. Regjistri i treguesve të stivës ruan adresën e qelizës së kujtesës që përmban vlerën e fundit të shtyrë në pirg. 3. Kur një numër shkruhet në pirg, treguesi i stivës modifikohet për të treguar vendndodhjen tjetër të lirë dhe të dhënat shkruhen në të.

4. Kur dalin nga steka, të dhënat lexohen nga qeliza OP e drejtuar nga treguesi, më pas treguesi i stivës modifikohet për të treguar vlerën e parafundit të ruajtur në pirg. 5. Në mënyrë tipike, raftet rriten në drejtim të zvogëlimit të adresave, d.m.th., kur shkruani një numër, treguesi i stivës zvogëlohet, dhe kur del një numër nga pirgu, ai rritet.

Komandat për të punuar me nënprograme. Stack Stack = qelizat OP + regjistri - treguesi i stivës (CPU ALU) Regjistri - treguesi i stivës ruan adresën e qelizës OP, e cila përmban adresën e fundit të kthimit të vendosur në strukturën e të dhënave të stivit duke përdorur shembullin A) Gjendja fillestare: qelizat OP boshe të stivës Adresat e qelizave 1000 Stacki i treguesve 998 996 B) Dy adresa kthimi shkruhen në pirg: 1234 dhe 5678 1234 1000 Treguesi i stivës 5678 998 Shkrimi i adresave të kthimit 996 C) Një adresë del nga pirgu, pika e fundit lexon 29081. 1000

Src="http://site/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-19.jpg" alt="Operimi i komandës thirrjes së nënrutinës CALL 1. Kur procesori lexon Komanda CALL nga memoria"> Работа команды вызова подпрограмм САLL 1. Когда процессор считывает из памяти команду САLL , программный счетчик увеличивается и показывает на команду, следующую за командой САLL. То есть программный счетчик теперь содержит адрес возврата, с которого должно продолжиться выполнение основной программы после окончания работы подпрограммы. 2. При выполнении обращения к подпрограмме процессор сохраняет содержимое программного счетчика в стеке, точнее, в его ячейках ОП. 3. Далее в программный счетчик загружается адрес команды, с которого начинается подпрограмма. Процессор приступает к выполнению подпрограммы.!}

Funksionimi i komandës RETURN 1. Për t'u kthyer nga një nënprogram në programin kryesor, përdorni komandat RETURN. 2. Instruksioni i kthimit nga nënprogrami nxjerr adresën e kthimit të ruajtur në pirg nga steka dhe e vendos atë në numëruesin e programit. 3. Procesori fillon të ekzekutojë programin kryesor. 4. Nëse ka pasur disa thirrje të ndërlidhura në nënprograme, atëherë kthimi do të ndodhë në adresën e kthimit të ruajtur nga thirrja e fundit (pasi pirgja përdoret për të ruajtur adresat e kthimit dhe adresa e fundit e ruajtur e kthimit do të thirret e para).

Komanda të tjera kompjuterike Mund të ketë komanda shtesë (të veçanta) në një kompjuter. Këto përfshijnë komandat për ndalimin e procesorit qendror, rivendosjen e pajisjeve të jashtme, instalimin ose rivendosjen e veçorive individuale, etj. Pra, në këtë leksion u diskutuan shkurtimisht komandat bazë të përdorura në kompjuterët tipikë dhe veprimet e zbatuara nga këto komanda.