» »

Typy počítačových příkazů. Počítačový příkazový systém a způsoby přístupu k datům

27.11.2023

Přednáška 11 ZÁKLADNÍ POČÍTAČOVÉ PŘÍKAZY Klasifikace příkazů podle různých charakteristik Struktura počítačových příkazů Příkazy pro přenos dat Příkazy pro zpracování dat Příkazy pro řízení přenosu Příkazy pro práci s podprogramy. Hromady. Další počítačové příkazy.

Počítačový příkazový systém Všechny různé úlohy řešené na počítači jsou realizovány pomocí malé sady velmi jednoduchých příkazů. Příkazový systém typického počítače obsahuje pouze 60-150 základních příkazů. Všechny příkazy slouží především k provádění velmi jednoduchých akcí, jako je čtení, zapamatování, přidání, přesun, porovnání atd. Inteligence počítače je dosažena díky tomu, že počítač je schopen spouštět programy skládající se z velkého množství takové jednoduché akce s obrovskou rychlostí, která není pro lidi dosažitelná. Při popisu počítačového příkazového systému je obvykle obvyklé klasifikovat příkazy podle následujících kritérií.

Klasifikace počítačových příkazů Podle funkčního účelu Příkazy pro přenos dat Příkazy pro zpracování dat Příkazy pro přenos řízení Dodatečné (jiné) Podle počtu adres Nulová adresa nebo bezadresná S jednou adresou Se dvěma adresami Se třemi adresami Podle způsobu kódování operace Podle délky S pevnou délkou operačního kódu S proměnnou délkou operačního kódu Metodou adresování Jeden bajt (slovo) Dva bajty (slova) Tři bajty (slova)

Operační kód a 1 a 2 a 3 - Tříadresový příkaz a 1, a 2 – adresy buněk (registrů), kde se nacházejí čísla zúčastněná operace (operandy) a 3 – adresa buňky RAM, kde má být výsledek umístěn Operační kód a 1 a 2 - Dvouadresový příkaz Výsledek se zapíše do buňky a 2 Operační kód a 1 - Jednoadresový příkaz a 1 – adresa buňky, kde je uloženo číslo zapojené do operace nebo adresa buňky, kde výsledkem je zapsán Operační kód - příkaz Zero address Všechny operandy v registru CPU

Příkazy přenosu dat Tato skupina příkazů zahrnuje podskupiny příkazů pro přenos kódů mezi registry uvnitř procesoru, z registrů procesoru do paměti, z paměti do registrů procesoru, z jedné paměťové buňky do druhé a pro přenos dat mezi procesorem a porty externího zařízení. Samostatnou podskupinu tvoří týmy pro práci se zásobníkem. Umožňují vám uložit data do zásobníku pro dočasné uložení a vybrat data ze zásobníku, když je potřebujete použít.

Příkazy pro zpracování dat Tuto skupinu příkazů lze z hlediska operací prováděných s daty rozdělit na aritmetické (sčítání, odečítání, násobení, porovnávání), logické (operace AND, OR, NOT atd.) a příkazy shift. Instrukce tohoto typu mohou mít jeden nebo dva operandy. Operandy mohou být uloženy v registrech CPU, v paměti nebo v samotné instrukci.

Výsledek operace se tvoří v přijímacím registru nebo ve specializovaném registru akumulátorů. Příkazy této skupiny tvoří také výsledkové znaky, které se nastavují v registru příznaků procesoru: přenos z nejvýznamnějšího bitu, přetečení, nulový výsledek atd.

Další informace o příkazu porovnání Procesor obvykle provádí operaci odečítání za účelem porovnání dvou čísel. Na základě výsledku odečítání se nastaví příznaky v registru příznaků. Je zřejmé, že pokud jsou porovnávaná čísla stejná, bude výsledek odečítání nula a v registru bude nastaven příznak nulového výsledku. Pokud je první z porovnávaných čísel větší, bude výsledek odečítání záporný a bude nastaven příznak negativního výsledku. Výsledek odečítání se neukládá do paměti, protože stav registru příznaků lze použít k posouzení výsledků porovnávání čísel.

Příkazy pro přenos řízení Jsou důležité, protože se používají ke změně přirozeného pořadí příkazů a organizaci cyklických sekcí v programech. Nejjednodušší instrukce přenosu řízení je instrukce nepodmíněného skoku JMP, která načte adresu skoku uvedenou v instrukci do programového čítače. Instrukce podmíněného skoku otestují podmínku zadanou v příkazu a upraví čítač programu, pokud je podmínka pravdivá.

Src="http://present5.com/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-11.jpg" alt="Příklad příkazu podmíněného skoku IF (A>B) ) pak přejděte na L nějakého jazyka"> Пример команды условного перехода Оператор IF (A>B) then go to L некоторого языка высокого уровня может быть реализован двумя командами ЭВМ: СРАВНИТЬ А и В ПЕРЕЙТИ ЕСЛИ БОЛЬШЕ К АДРЕСУ L Если А>В, то результат вычитания будет положителен и соответственно флаг знака во флаговом регистре не установится. Вторая команда (условный переход) проверяет состояние флага знака и, если он не установлен, модифицирует программный счетчик так, чтобы его значение указывало на адрес L.!}

Organizace podprogramů V programování se široce používá taková technika, jako je organizace podprogramů. Podprogram je popsán jednou, ale může být volán opakovaně z různých míst v programu. Podprogram může volat jiný, když je spuštěn. Poté, co podprogram dokončí svou práci, musí být řízení přeneseno na příkaz další v paměti bezprostředně po příkazu pro přístup k tomuto podprogramu. Adresa příkazu, na který je řízení přeneseno po dokončení podprogramu, se nazývá návratová adresa.

Kde mám uložit zpáteční adresu? Aby bylo možné spustit podprogram, musí být načten programový čítač s adresou první instrukce podprogramu. Chcete-li se vrátit z podprogramu, musíte si někde zapamatovat zpáteční adresu. Návratovou adresu můžete uložit například do jednoho z registrů procesoru. Tento způsob uložení zpáteční adresy je velmi jednoduchý a snadno implementovatelný. Je však běžné najít podprogramy, které volají jiné podprogramy. Nechte hlavní program zavolat podprogram A. Ten zase nazývá podprogram B. Pokud je návratová adresa podprogramu A uložena v registru procesoru, kam by se pak měla návratová adresa umístit při volání podprogramu B?

Zobecněný algoritmus pro činnost von Neumannova počítače Inicializace Načtení příkazu Zvýšení počítadla programu Dešifrování a provedení příkazu Ne Příkaz „Zastavit procesor“ Ano Inicializace

Koncept zásobníku Většina počítačů používá hardwarově podporovanou datovou strukturu nazývanou zásobník. Zásobník je datová struktura organizovaná podle principu poslední dovnitř, první ven, tj. poslední data zapsaná do zásobníku jsou první, která se z něj načítají. Přeloženo z angličtiny. hromada - hromada. Analogem stohu může být stoh desek. Talíř ve stohu opět položíte pouze navrch, bez problémů sejmete pouze vrchní plát;

Organizace zásobníku 1. V počítači je k uspořádání zásobníku přidělena oblast paměti RAM a k jeho adresování a přístupu k zásobníku se používá registr ukazatele zásobníku. 2. Registr ukazatele zásobníku ukládá adresu paměťové buňky obsahující poslední hodnotu vloženou do zásobníku. 3. Když je číslo zapsáno do zásobníku, ukazatel zásobníku se upraví tak, aby ukazoval na další volné místo a data se do něj zapsala.

4. Při vyskakování ze zásobníku jsou data čtena z buňky OP, na kterou ukazuje ukazatel, a poté je ukazatel zásobníku upraven tak, aby ukazoval na předposlední hodnotu uloženou v zásobníku. 5. Zásobníky obvykle rostou ve směru klesajících adres, tj. při zápisu čísla se ukazatel zásobníku zmenšuje a při vytahování čísla ze zásobníku se zvyšuje.

Příkazy pro práci s podprogramy. Zásobníky Zásobník = buňky OP + registr - ukazatel zásobníku (CPU ALU) Registr - ukazatel zásobníku ukládá adresu buňky OP, která obsahuje poslední návratovou adresu umístěnou na zásobníku Struktura dat zásobníku pomocí příkladu A) Počáteční stav: prázdný zásobník OP buňky Adresy buněk 1000 Zásobník ukazatelů 998 996 B) Do zásobníku jsou zapsány dvě návratové adresy: 1234 a 5678 1234 1000 Ukazatel zásobníku 5678 998 Zápis návratových adres 996 C) Jedna adresa je vytažena ze zásobníku, poslední Ukazatel zásobníku 12034 98 10 Čtení 1000

Src="http://site/presentation/3/-29919247_13569617.pdf-img/-29919247_13569617.pdf-19.jpg" alt="Operace příkazu volání podprogramu CALL 1. Když procesor přečte CALL příkaz z paměti"> Работа команды вызова подпрограмм САLL 1. Когда процессор считывает из памяти команду САLL , программный счетчик увеличивается и показывает на команду, следующую за командой САLL. То есть программный счетчик теперь содержит адрес возврата, с которого должно продолжиться выполнение основной программы после окончания работы подпрограммы. 2. При выполнении обращения к подпрограмме процессор сохраняет содержимое программного счетчика в стеке, точнее, в его ячейках ОП. 3. Далее в программный счетчик загружается адрес команды, с которого начинается подпрограмма. Процессор приступает к выполнению подпрограммы.!}

Obsluha příkazu RETURN 1. Chcete-li se vrátit z podprogramu do hlavního programu, použijte příkazy RETURN. 2. Instrukce návratu z podprogramu vybere návratovou adresu uloženou v zásobníku ze zásobníku a umístí ji do programového čítače. 3. Procesor začne spouštět hlavní program. 4. Pokud bylo několik vnořených volání podprogramů, pak návrat proběhne na zpáteční adrese uložené posledním voláním (protože zásobník se používá k uložení zpáteční adresy a poslední uložená zpáteční adresa bude volána jako první).

Další počítačové příkazy V počítači mohou být další (speciální) příkazy. Patří mezi ně příkazy k zastavení centrálního procesoru, resetování externích zařízení, instalaci nebo resetování jednotlivých funkcí atd. V této přednášce byly tedy krátce diskutovány základní příkazy používané v typických počítačích a akce prováděné těmito příkazy.

Odeslání vaší dobré práce do znalostní báze je snadné. Použijte níže uvedený formulář

Studenti, postgraduální studenti, mladí vědci, kteří využívají znalostní základnu ve svém studiu a práci, vám budou velmi vděční.

Zveřejněno na http://www.allbest.ru/

Federální agentura pro vzdělávání

Rosobrazování

Archangelská státní technická univerzita

Výpočetní systémy a telekomunikace

TEST

disciplínou

Architektura počítačů a systémů

k tématu

Počítačový příkazový systém

Ševčenko Oleg Nikolajevič

Fakulta ONOT, kurz 3, skupina 7261

Vedoucí O.L. Polončik

Archangelsk 2009

  • ZAVEDENÍ
  • 1. OBECNÉ POJMY
  • 2. FORMÁT PŘÍKAZŮ ZPRACOVÁNÍ DAT
  • 3. METODY PŘÍMÉ ADRESY
    • 3.3 Autodekrementační metoda
    • 3.4 Metoda indexového adresování
  • 5. METODY NEPŘÍMÉ ADRESY
  • 6. POUŽITÍ COMMAND COUNTER (PC) JAKO RON
  • ZÁVĚR

ZAVEDENÍ

Od poloviny 60. let se přístup k vytváření počítačů dramaticky změnil. Místo vývoje hardwaru a softwaru se začal navrhovat systém sestávající ze syntézy hardwaru a softwaru. Zároveň se do popředí dostal pojem interakce. Tak vznikl nový pojem – počítačová architektura.

Architektura počítače je obvykle chápána jako soubor obecných zásad pro organizaci hardwaru a softwaru a jejich hlavních charakteristik, který určuje funkčnost počítače při řešení příslušných typů problémů.

Architektura počítače pokrývá širokou škálu problémů spojených s tvorbou komplexu hardwaru a softwaru a zohledňuje velké množství určujících faktorů. Z těchto faktorů jsou nejdůležitější: cena, rozsah aplikace, funkčnost, snadnost použití a hardware je považován za jednu z hlavních součástí architektury.

1. OBECNÉ POJMY

Počítačové příkazy určené ke zpracování dat musí kromě kódu prováděné operace tak či onak udávat umístění (adresu) těchto dat (operandů) v paměti počítače. V tomto ohledu jsou velmi důležité způsoby adresování operandů implementované v konkrétním počítači, tzn. metody indikace ve strojové instrukci umístění operandů v paměti počítače.

Metody adresování lze rozdělit na přímé a nepřímé. Při metodě přímého adresování je výkonná adresa převzata přímo z příkazu nebo vypočtena pomocí hodnoty uvedené v příkazu a obsahu registru.

Metoda nepřímého adresování předpokládá, že příkaz obsahuje hodnotu nepřímé adresy, tzn. adresy paměťové buňky, ve které se nachází konečná prováděcí adresa.

Při implementaci metod počítačového adresování se výrazně uplatňují centrální registry procesorů (CPU). V následujícím budeme používat termín registr adres pro označení jakéhokoli registru CPU, který obsahuje adresu.

2. FORMÁT PŘÍKAZŮ ZPRACOVÁNÍ DAT

Formát příkazu je předem dohodnutá struktura polí v jeho kódech, která umožňuje počítači rozpoznat součásti kódu.

Instrukce pro zpracování dat mohou specifikovat umístění jednoho nebo více operandů použitých k provedení konkrétní operace. Délka příkazu závisí na počtu polí adresy. Podle počtu adres se příkazy dělí na:

- bez adresy

- unicast, bicast a další

V tomto případě se obvykle rozlišuje mezi zdrojovým a cílovým operandem. Zdrojový operand je obsah paměťové buňky nebo registru, který se používá při provádění operace uvedené v příkazu a který se během provádění příkazu nemění. Operandem přijímače je paměťová buňka neboli RON, jejíž obsah lze také použít při provádění příkazu a do které se umístí výsledek provedené operace (příjemce výsledku). V níže uvedených příkladech je zdrojový cíl označen písmeny src nebo S (zdroj) a operand cíle je dst nebo D (cíl). Příkazové pole obsahující operační kód bude zkráceno jako COP.

Formát unicastových příkazů (HALT, CLR...) je následující:

Obrázek 1 - Formát příkazu Unicast

Bity 15-06 obsahují operační kód, který specifikuje příkaz, který se má provést. Bity 05-00 tvoří šestibitové pole nazývané adresovací pole operandu přijímače, které se zase skládá ze dvou podpolí:

1) Bity 02-00 určují jedno z osmi RON, které tento příkaz používá;

2) Bity 05-03 určují, jak se bude zvolený registr používat (způsob adresování). Navíc bit 03 určuje přímé nebo nepřímé adresování.

Operace na dvou operandech (jako je sčítání, předávání, porovnání) se provádějí pomocí instrukcí, které specifikují dvě adresy. Přiřazení bitů v adresovacích polích zdrojového a cílového operandu je určeno použitými způsoby adresování a obecnými registry. Formát příkazu se dvěma adresami je následující:

Obrázek 2 - Formát příkazu se dvěma adresami

Pole adresování zdrojového operandu se používá k vyzvednutí zdrojového operandu. Adresovací pole cílového operandu se používá k vyzvednutí cílového operandu a uložení výsledku. Například pomocí příkazu ADD A,B je obsah buňky "A" (zdrojový operand) přidán k obsahu buňky "B" (cílový operand). Po provedení operace sčítání bude buňka „B“ obsahovat výsledek operace, ale obsah buňky „A“ se nezmění.

3. METODY PŘÍMÉ ADRESY

Obrázek 3 ukazuje sekvenci operací pro provádění příkazů s každou ze čtyř metod přímého adresování. Při metodě adresování registru je operand umístěn ve zvoleném registru, který lze použít jako akumulátor. Protože RON jsou implementovány v hardwaru v rámci CPU IC, jsou rychlejší než jakákoli jiná procesorem řízená paměť. Tato výhoda je patrná zejména při provádění operací s proměnnými, ke kterým je potřeba často přistupovat.

Obrázek 3 - metody přímého adresování

3.1 Registrovat způsob adresování

U metody adresování registru je operand umístěn přímo v registru specifikovaném v instrukci.

Tabulka 1

Registrovat způsob adresování

Akce: jedna se přidá k obsahu R3.

3.2 Metoda automatického přírůstkového adresování

V metodě automatického přírůstkového adresování je obsahem zvoleného registru adresa operandu. Po načtení operandu se obsah tohoto registru automaticky zvýší, aby byl umožněn další přístup k následující buňce. U bajtových operací dochází k inkrementaci o 1, u operací s plnými slovy - o 2. Obsah R6, R7 je vždy inkrementován o 2. Metoda auto-inkrementačního adresování je vhodná zejména pro operace s poli a zásobníky. Pomocí této metody můžete vybrat prvek tabulky a poté zvýšit ukazatel pro přístup k dalšímu prvku v tabulce. Ačkoli je tato metoda nejužitečnější při práci s tabulkami, lze ji použít jako obecnou metodu pro různé účely.

Tabulka 2

Auto-inkrementační metoda adresování

3.3 Autodekrementační metoda

Používá se také pro zpracování tabulkových dat. Na rozdíl od metody automatického přírůstku však adresování buněk pole jde opačným směrem. Při této metodě adresování se obsah zvoleného RON nejprve zmenší (u bajtových instrukcí - o jednu, u instrukcí s plnými slovy - o dvě) a poté se použije jako prováděcí adresa.

Při práci se zásobníkem lze efektivně použít kombinaci metod automatického přírůstku a automatického snižování.

Tabulka 3

Autodekrementační metoda adresování

Akce: Obsah R0 se sníží o 2 a použije se jako prováděcí adresa. Jedna se přidá k operandu vybranému z buňky na této adrese.

architektura hardwarové adresování příkazů

Tabulka 3.1

Autodekrementační metoda adresování

3.4 Metoda indexového adresování

U metody indexového adresování je výkonná adresa určena jako součet obsahů zvoleného RON s indexovým slovem. Tato metoda umožňuje náhodný přístup k prvkům datové struktury. Indexové slovo je obsaženo v paměťové buňce vedle příkazového slova. Pomocí metody indexového adresování lze obsah vybraného registru použít jako základ pro výpočet řady adres.

Tabulka 4

Metoda indexového adresování

5. METODY NEPŘÍMÉ ADRESY

V kombinaci s nepřímým adresováním lze použít čtyři základní metody. Pokud je u metody registru obsahem vybraného registru operand, pak u metody nepřímého registru je tento obsah adresou operandu. U ostatních tří nepřímých metod umožňuje vypočítaná adresa vybrat pouze adresu operandu, nikoli operand samotný. Tyto metody se používají při přístupu k tabulkám sestávajícím spíše z adres než z operandů.

Obrázek 4 - metody nepřímého adresování

Tabulka 5

Metoda indexového adresování

Akce: Obsah buňky, jejíž adresa je v R2, se použije jako adresa operandu, operand se zvýší o jedničku a obsah R2 se zvýší o 2.

Tabulka 5.1

Metoda indexového adresování

6. POUŽITÍ COMMAND COUNTER (PC) JAKO RON

Programový čítač R7 lze použít se všemi způsoby adresování používanými v mikropočítačích. Nejefektivněji se však používá pouze se čtyřmi. Tyto metody adresování dostaly speciální názvy: přímé, absolutní, relativní a nepřímo relativní. Použití těchto metod umožňuje sestavit programy, jejichž funkčnost se neztratí při přesunu do libovolné oblasti paměti. Níže uvedená tabulka ukazuje způsoby adresování pomocí R7. Je nutné pochopit, že tyto čtyři metody jsou podobné těm popsaným výše, ale jako RON se používá R7. Metody adresování pomocí programového čítače výrazně zjednodušují zpracování dat, která nejsou formována do polí.

Tabulka 6

Metody adresování

Osmičkový kód

Binární kód

Jméno

Řídit

Operand se vybere z buňky vedle slova příkazu.

Absolutní

Adresa operandu je vybrána z buňky následující za příkazovým slovem.

Relativní

Operand je vybrán z buňky, jejíž adresa je určena jako součet obsahů R7 a buňky následující za příkazovým slovem.

Nepřímo relativní

Z buňky, jejíž adresa je určena jako součet obsahů R7 a buňky následující za příkazovým slovem, se vybere adresa operandu.

6.1

Metoda přímého adresování je symbolicky označena #N. Je ekvivalentní metodě automatické inkrementace adresování prostřednictvím programového čítače R7. Tato metoda šetří programátorovi čas při sestavování programu díky možnosti umístit konstantu do paměťového místa za příkazové slovo.

Tabulka 7

Metoda přímého adresování

Akce: obsah R0 se přičte k číslu 10. Výsledek se zapíše do R0.

Tabulka 7.1

Metoda přímého adresování

Po načtení příkazu se obsah R7 (adresa tohoto příkazu) zvýší o 2. Do adresového pole zdrojového operandu se tedy zapíše kód 27, R7 se použije jako ukazatel adresy při načtení operandu, po kterém se jeho obsah se opět zvýší o 2, aby ukazoval na další příkaz.

6.2 Metoda absolutního adresování

Metoda absolutního adresování je symbolicky označena @#A. Je to ekvivalent nepřímého auto-inkrementačního adresování přes R7. Tato metoda je vhodná, protože adresa operandu je jeho absolutní adresou (to znamená, že zůstává konstantní bez ohledu na umístění programu v paměti).

Tabulka 8

Metoda absolutního adresování

6.3 Relativní způsob adresování

Relativní způsob adresování je symbolicky označen X(PC) nebo A, kde X je výkonná adresa vzhledem k programovému čítači. Tato metoda je ekvivalentní indexovému adresování přes R7. Indexové slovo je uloženo v buňce vedle příkazového slova a po přidání k obsahu R7 udává adresu operandu. Tato metoda je užitečná při psaní programu, který může být umístěn v různých paměťových místech, protože adresa operandu je pevná ve vztahu k obsahu R7. Když je třeba program přesunout v paměti, operand se přesune o stejný počet míst jako samotná instrukce.

Tabulka 9

Relativní metoda adresování

Akce: K operandu, jehož adresa je určena přidáním obsahu R7 a indexového slova (000054), se přidá „1“.

Tabulka 9.1

Relativní metoda adresování

6.4 Metoda nepřímo-relativního adresování

Metoda nepřímého relativního adresování je symbolicky označena @X(PC) nebo @A, kde X je adresa buňky obsahující prováděcí adresu vzhledem k čítači programu. Tato metoda je ekvivalentní nepřímému indexovému adresování přes IC.

ZÁVĚR

Architektura výpočetního zařízení musí být odlišena od jeho struktury. Struktura výpočetního nástroje definuje jeho aktuální složení na určité úrovni detailů a popisuje vztahy uvnitř nástroje. Architektura určuje základní pravidla pro interakci komponentních prvků výpočetního nástroje, jejichž popis se provádí v rozsahu nezbytném pro vytvoření pravidel pro jejich interakci. Navazuje ne všechna spojení, ale ta nejnutnější, která je nutné znát pro kompetentnější použití použitého nástroje.

Uživateli počítače je tedy jedno, na kterých prvcích jsou elektronické obvody vyrobeny, zda příkazy vykonává obvod nebo program atd. Důležité je něco jiného: jak určité konstrukční vlastnosti počítače souvisí s možnostmi poskytovanými uživateli, jaká alternativní řešení jsou implementována při vytváření stroje a jaká kritéria byla použita k rozhodování, jak spolu souvisí vlastnosti zařízení obsažených v počítači a jaký vliv mají na obecné vlastnosti počítače. Jinými slovy, počítačová architektura skutečně odráží řadu problémů, které se týkají obecného návrhu a konstrukce počítačů a jejich softwaru.

SEZNAM POUŽITÝCH REFERENCÍ

1. Tanenbaum, Andrew. Počítačová architektura, Petrohrad, 2007.

2. A.S. Koval, A.V. Sychev. Architektura počítačů a systémů, Voroněž 2007

3. Frank T.S. PDP-11: Architektura a programování, Rádio a komunikace, 1986.

4. Wikipedie – http://ru.wikipedia.org

Publikováno na Allbest.ru

Podobné dokumenty

    Studium základních PC příkazů založených na MP i286 a jejich formátech. Studium přímých způsobů adresování dat. Rozvíjení praktických dovedností při práci s týmy. Vývoj modelu registru pro provádění operací přenosu dat. Program pro implementaci příkazů.

    test, přidáno 3.12.2011

    Typy systémové paměti. RAM (paměť s náhodným přístupem), ROM (paměť pouze pro čtení), "nezávislá paměť" (CMOS). CPU. Hlavní pneumatiky. Údaje o adrese. Množinou všech možných příkazů je instrukční systém procesoru.

    test, přidáno 30.03.2009

    Vnitřní architektura mikroprocesoru Intel 486 Formát dat a příkazů. Univerzální registry. Softwarový model zařízení FPU, registr příznaků. Vývoj struktury a mikroprogramu mikroprocesoru, řídicího stroje s rigidní logikou.

    práce v kurzu, přidáno 27.05.2013

    Stručný přehled procesorů Intel. Hlavní charakteristiky i80286: režim reálného adresování, ochranný režim, koprocesor i80287, podmínky programování i80287. Hlavní charakteristiky i80386: 32bitová architektura, způsoby adresování.

    práce v kurzu, přidáno 23.06.2007

    Studium architektury osobního počítače na příkladu mikroprocesoru Intel. Univerzální registry. BERAN; datové a příkazové formáty. Přeneste instrukce s různými způsoby adresování operandů. Struktura programu v assembleru.

    průběh přednášek, přidáno 5.3.2014

    Modelování zadaných příkazů, vnitřních funkčních zařízení a I/O objektů mikrokontroléru. Vývoj programu pro demonstraci společné činnosti mikrokontroléru a simulovaného externího zařízení. Komponenty architektury ATMega128.

    práce v kurzu, přidáno 6.12.2013

    Typy příkazů, syntaxe assembleru a operační kód, kterým je příkaz přeložen. Příkazy pro výpočet a přímý přenos dat mezi registry. Pole pro definování operace výpočtu. Řízení sekvence provádění programu.

    abstrakt, přidáno 13.11.2009

    Syntéza struktury jednoduchého procesoru hlavní řady s jednou ALU, která vykonává 8 zadaných instrukcí. Vývoj formátu a kódování příkazů, blokové schéma procesoru, funkční schémata všech jeho bloků jako celku, indikace sběrnic a řídicích signálů.

    abstrakt, přidáno 18.05.2009

    Informační systém (IS) jako soubor vzájemně propojeného hardwaru a softwaru určeného k automatizaci shromažďování a zpracování informací. Vlastnosti tvorby IS "Realitní kancelář": databáze, technická dokumentace k ní.

    práce v kurzu, přidáno 30.08.2012

    Mobilní roboty a na nich založené komplexy. Analytický přehled softwarových nástrojů pro tvorbu databází a uživatelských rozhraní. Otevřete rozhraní a klasifikace příkazů. Vývoj hardwarového komplexu pro generování řídicích programů robotů.

Důležitou součástí počítačové architektury je instrukční systém, proto se touto problematikou budeme dále zabývat.

Pod tým porozumět souhrnu informací prezentovaných ve formě binárních kódů, které jsou nezbytné k tomu, aby procesor provedl další krok.

V příkazovém kódu jsou určité bity (pole) přiděleny tak, aby obsahovaly informace:

O typu operace,

Adresy buněk RAM, ve kterých jsou uložena zpracovaná data,

Adresy paměťových buněk, kam bude zapsán výsledek operace.

Nazývá se předem dohodnutá struktura polí, která umožňuje počítači rozpoznat součásti příkazového kódu Formát příkazu .

Příklady formátů příkazů jsou uvedeny na obrázku 5.

Obrázek 5

Hlavním prvkem kódu příkazu je operační kód (OPC), který určuje, jaké akce budou s tímto příkazem provedeny. Je mu přiděleno N nejvýznamnějších bitů formátu.

Zbývající bity obsahují A1 a A2 - adresy operandů, A3 - adresu výsledku.

Distribuce polí ve formátu příkazu se může změnit při změně způsobu adresování.

Délka příkazu závisí na počtu polí adresy. Na základě počtu adres jsou týmy rozděleny na bezadresné; jedno-, dvou-, tříadresové.

Připomeňme, že příkazový kód obsahuje informace o datech, se kterými je třeba provést nějakou operaci. Tato data se nazývají operandy. Obvykle jsou operandy obsaženy v paměti RAM nebo registru počítače. Způsob, jakým se operandy nacházejí v paměti, také určuje formát instrukce.

Existují 2 různé principy pro vyhledávání operandů v paměti: asociativní a adresní:

- Asociativní vyhledávání (vyhledávání podle obsahu paměťové buňky) zahrnuje prohlížení obsahu všech paměťových buněk k identifikaci kódu obsahujícího asociativní prvek určený příkazem.

- Hledání adresy předpokládá, že operand je na adrese zadané v poli adresy příkazu.

Rozlišuje se mezi výkonnou adresou operandu a adresovým kódem instrukce.

Adresa provádění operandu je binární kód čísla paměťové buňky, kterým se bude operand zapisovat nebo číst.

Kód adresy příkazu se nazývá binární kód v adresovém poli příkazu, s jehož pomocí je nutné vygenerovat výkonnou adresu operandu. V počítači se kód adresy a výkonná adresa neshodují, takže způsob adresování lze definovat jako způsob vytvoření výkonné adresy z kódu adresy příkazu.

Tyto pojmy dále využijeme při popisu metod adresování operandů.

Metody adresování operandů, v závislosti na typu hledání operandů v paměti, jsou klasifikovány:

1) přítomností informací o adrese v příkazu:

-explicitní adresování. S touto metodou kódu má příkaz pole adresy operandu;



- implicitní adresování. S touto metodou není v instrukci žádné pole adresy a adresa operandu je implikována operačním kódem. Například adresa cílového přijímače může být vyloučena z instrukce, což znamená, že výsledek je zapsán na místo druhého operandu.

2) podle frekvence přístupu k paměti RAM:

- přímé oslovování. Při přímém adresování je operand umístěn přímo v poli adresy příkazu (obrázek 6).

Obrázek 6

- přímé adresování (okamžité adresování). Při přímém adresování se k operandu přistupuje pomocí kódu adresy v příkazovém poli. V tomto případě se výkonná adresa shoduje s adresou příkazového kódu. To lze ilustrovat na následujícím obrázku (Obrázek 7).

Obrázek 7

- nepřímé adresování. Při nepřímém adresování udává kód instrukce adresu paměťové buňky, ve které se nenachází samotný operand, ale její adresa, nazývaná ukazatel. To lze ilustrovat na následujícím obrázku (Obrázek 8).

Obrázek 7

3) podle způsobu vytváření adres paměťových buněk:

- Absolutní oslovování předpokládejme, že binární kód adresy paměťové buňky lze zcela extrahovat buď z adresního pole instrukce, nebo z nějaké jiné buňky v případě nepřímého adresování.

- Relativní adresování předpokládejme, že binární kód operandu je tvořen několika komponentami:

B - základní kód;

A - indexový kód;

C - offsetový kód.

Tyto komponenty se používají v různých kombinacích.

Typy relativního adresování:



Obrázek 9

K vytvoření adresy operandu se používá paměť registru.

Adresa operandu i v poli je definována jako součet počáteční adresy pole operandů, dané offsetem S, a indexu i, zapsaného v jednom z registrů paměti registrů, nazývaném indexový registr.

Adresa indexového registru je v příkazu specifikována polem adresy indexu Ai.

V každém i-tém cyklu se obsah indexového registru mění o konstantní hodnotu, obvykle 1.

Pro práci s programy s poli, které vyžadují podobné operace s prvky pole, je vhodné použít tento typ adresování

2) Automatické indexování adres. Během automatického indexování je nepřímá adresa umístěná v registru RP automaticky zvýšena (auto-inkrementální adresování) nebo snížena (auto-dekrementální adresování) o konstantní hodnotu před nebo po provedení operace.

3) Adresování zásobníku. Zásobníková paměť je široce používána v moderních počítačích. Ačkoli přístupová adresa zásobníku není v příkazu, je generována řídicím obvodem (obrázek 9):

Obrázek 9

Pro čtení záznamu je k dispozici pouze jeden registr – horní část zásobníku.

Tento způsob adresování využívá zejména systém přerušení programu při volání podprogramů.

Zásobníková paměť je implementována nad běžnou pamětí pomocí ukazatele zásobníku a adresování automatického indexu. Logicky jsou paměťové buňky přidělené zásobníku organizovány tak, že poslední zapsaná adresa se čte jako první a první zapsaná adresa se čte jako poslední. Tato logická organizace je tvořena speciálním počítadlem. Tento čítač se nazývá ukazatel zásobníku SP, což je registr mikroprocesoru. Je voláno paměťové místo, do kterého lze aktuálně zapisovat, například na zpáteční adresu z podprogramu horní část zásobníku . Počet paměťových buněk určených pro organizaci zásobníku se nazývá hloubka zásobníku . Zavolá se poslední paměťová buňka, do které lze zapisovat spodní část zásobníku . Zápis do zásobníku se provádí pomocí autodekrementálního adresování a čtení se provádí pomocí autoinkrementálního adresování (obrázek 10).

Obrázek 10

Příklad. Volání podprogramu napsaného v C.

V jazyce C se podprogramy nazývají funkce. Funkce může mít argumenty a lokální proměnné, tedy proměnné, které existují pouze během provádění funkce. Předpokládejme, že funkce závisí na dvou vstupních argumentech x a y celočíselného typu a používá tři lokální proměnné a, b a c, rovněž celočíselného typu. Funkce vrací celočíselnou hodnotu.

podprogram:

Hlavní program:

Například v určitém bodě programu je volána funkce f s argumenty x = 2, y = 3. Volající program vloží skutečné hodnoty argumentů x a y funkce f do zásobníku s první argument funkce v horní části zásobníku a druhý argument pod ním. Když je provedena instrukce volání funkce, návratová adresa je také posunuta na vrchol zásobníku. Když se spustí funkce f, zásobník vypadá takto:

Před spuštěním musí funkce f uchopit paměťovou oblast v zásobníku pro své lokální proměnné a, b, c.

Tvoří jej soubor realizovaných akcí stroje příkazový systém .

Navzdory velkému počtu typů počítačů mají na nejnižší („strojní“) úrovni mnoho společného.

Příkazový systém jakéhokoli počítače nutně obsahuje následující skupiny příkazů pro zpracování informací:

1. Příkazy pro přenos dat (census), které kopírují informace z jednoho místa na druhé.

výměna mezi registry procesorů,

Procesor a RAM,

Instalace procesorů a periferií.

2. Aritmetické operace. Mezi základní aritmetické operace obvykle patří sčítání a odčítání (v druhém případě se nejčastěji jedná o sčítání). Pokud jde o násobení a dělení, v mnoha počítačích se provádějí pomocí speciálních algoritmů.

3. Logické operace, které umožňují počítači analyzovat zpracovávané informace. Například porovnávací operace nebo známé logické operace AND, OR, NOT. Navíc často přidávají rozbor jednotlivých bitů kódu, jejich reset a instalaci.

4. Binární kód se posouvá doleva a doprava. K prokázání důležitosti této skupiny příkazů stačí připomenout pravidlo násobení sloupců: každý následující součin je zapsán v takovém schématu s posunem o jednu číslici doleva. V některých speciálních případech lze násobení a dělení obecně nahradit posunem (nezapomeňte, že přidáním nebo odebráním nuly doprava, tedy vlastně posunutím desetinného čísla, jej můžete 10krát zvýšit nebo snížit).

5. Příkazy pro vstup a výstup informací pro výměnu s externími zařízeními. V některých počítačích jsou externí zařízení speciální adresy servisní paměti, takže vstup a výstup se provádí pomocí příkazů sčítání.

6. Řídicí příkazy, které implementují nelineární algoritmy. To zahrnuje především podmíněné a nepodmíněné skoky a také příkazy pro přístup k podprogramu (skok s návratem). Některé počítače mají speciální příkazy pro organizaci smyček, ale to není nutné: smyčku lze redukovat na jednu nebo jinou kombinaci podmíněných a nepodmíněných přechodů. Stejná skupina příkazů často obsahuje několik operací pro ovládání procesoru – například „stop“ nebo NOP („žádná operace“). Někdy jsou rozděleni do zvláštní skupiny.

Vzhledem k systému příkazů nelze nezmínit dva moderní vzájemně si konkurující směry v jeho konstrukci: počítač s plnou sadou příkazů CISC (Complex Instruction Set Computer) a s omezenou sadou - RISC (Reduced Instruction Set Computer). Rozdělení vzniklo kvůli skutečnosti, že většinu času musí počítač provést malou část své sady příkazů, zatímco zbytek se používá příležitostně. Pokud tedy výrazně omezíte sadu operací na ty nejjednodušší a nejkratší, získáte poměrně efektivní a rychlý RISC stroj. Je pravda, že za rychlost budete muset zaplatit nutností implementovat „vyřazené“ příkazy do softwaru, ale často je tato platba oprávněná: například pro vědecké výpočty nebo počítačovou grafiku je rychlost mnohem důležitější než problémy s programováním.

Jedna definice pojmu procesor byla uvedena v úvodu.

Procesor je funkční jednotka počítače určená pro logické a aritmetické zpracování informačních toků na principu programového řízení.

Procesor vykonává funkci spouštění programů (umístěných v RAM) načítáním, kontrolou a postupným prováděním akcí předepsaných instrukcemi. Jinými slovy: procesor provádí akce předepsané příkazy na zakódované informaci v souladu s programy.

V moderních počítačích není procesor (jádro počítače) formální kombinací ALU a centrální řídicí jednotky, ale výsledkem vývoje struktury počítače, navržené tak, aby poskytoval vysoký výkon a široké možnosti funkčního a logického zpracování informací. Zejména vznik nových počítačů vedl k potřebě počítače a procesoru

1) přerušovací systémy;

2) nové úrovně paměti;

3) prostředky ochrany paměti;

4) použití speciálních typů indexování, adresování informací;

5) mezipaměť příkazů, větví, předpovědi výměny atd.;

6) speciální postupy pro řízení výpočetního procesu

Všechny tyto subsystémy a zařízení jsou částečně nebo zcela zahrnuty v procesoru. Hlavním novým strukturálním fenoménem v procesoru je RAM.

Proto má dnes procesor rozvinutější strukturu, která v určitém smyslu opakuje strukturu von Neumannova stroje.

Ale nových směrů v organizaci zpracovatelů se nedotkneme. Budou plně pokryty v kurzu Mikroprocesory.

3.1. Počítačový příkazový systém.

Počítačový příkazový systém je určen strukturou a formáty příkazů, jakož i seznamem (seznamem) příkazů a způsoby adresování.

Tým se jmenuje nějakým způsobem zakódované informace, které určují generování sekvencí signálů v počítači určených k provedení určité operace (akce) stroje na daných číselných a nečíselných kódech.

Protože je nakonec příkaz tak či onak zadán do počítače a je jím vnímán konečným typem příkazu je digitální kód.

resp. konečná podoba programu obsluha počítače (program lze definovat jako speciálně formalizovaný algoritmus zpracování informací) je program v kódovaných instrukcích.

3.1.1. Struktura a formáty příkazů.

V souladu se zavedenou definicí příkazu má struktura příkazu provozní a adresní části(co je potřeba udělat a na jakých datech), a také servisní část, definování zvláštnosti provádění daného příkazu (úpravy) v závislosti na hodnotách určitého znamení.

Adresa(y) obsažená(é) v adresové části příkazu v nejběžnějším případě označují číslo buňky RAM, do které je zapsáno (uloženo) číslo zúčastněné na operaci (jeho kód) - sčítání, multiplikand, dělenec , atd., kód nečíselné informace (adresa, znakový řetězec, stav zařízení atd.) Obecně a pro zjednodušení se obvykle říká: operandy jsou uloženy v paměti.

Pokud však mluvíme o příkazu jako o instrukci, pak by jeho nejúplnější podoba měla uvádět nejen adresy všech čísel zapojených do operace, ale také adresu buňky, do které by měl být výsledek umístěn, a také adresa zdroje dalšího příkazu. Tento výčet vede k nutnosti mít v týmu čtyři adresy.

A ve skutečnosti takové čtyřadresové příkazy existují. Týmy začaly s tímto „formátem“. Ale v týmu může být méně nebo více adres!

Zdrojová adresa dalšího příkazu nemusí být přítomna, protože program (posloupnost příkazů) je nejvíce přirozeně a je vhodné jej umístit do řady blízkých skladovacích buněk. A pokud se příkazy zapisují sekvenčně (od čísla 1 do čísla n), pak je velmi jednoduché hardwarově (s čítačem!) implementovat změnu adresy zdrojové buňky dalšího příkazu. Všimněte si, že se nazývá tento vzorkovací příkaz přírodní, zatímco při zadávání adresy příkazu v příkazu se nazývá vzorkovací příkaz nucený. Všimněte si také, že použití přirozeného pořadí výběru příkazů vede k nutnosti zavedení speciální příkazy, které mění pořadí výpočtů(změnou obsahu počítadla počtu buněk příkazu). To je nezbytné pro zajištění algoritmické vyčíslitelnosti. Při nuceném v pořadí vzorkování nejsou potřeba speciální příkazy, protože každý příkaz „změní“ pořadí vzorkování.