CS209751B1 - Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu - Google Patents

Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu Download PDF

Info

Publication number
CS209751B1
CS209751B1 CS273880A CS273880A CS209751B1 CS 209751 B1 CS209751 B1 CS 209751B1 CS 273880 A CS273880 A CS 273880A CS 273880 A CS273880 A CS 273880A CS 209751 B1 CS209751 B1 CS 209751B1
Authority
CS
Czechoslovakia
Prior art keywords
operand
address
microinstruction
microprogram
length
Prior art date
Application number
CS273880A
Other languages
English (en)
Inventor
Oldrich Jelinek
Petr Janda
Original Assignee
Oldrich Jelinek
Petr Janda
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oldrich Jelinek, Petr Janda filed Critical Oldrich Jelinek
Priority to CS273880A priority Critical patent/CS209751B1/cs
Publication of CS209751B1 publication Critical patent/CS209751B1/cs

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu, určený pro mikroprogramem řízené procesory. Účinek je zvýšení rychlosti styku operačního procesoru počítače s pamětí počítače. Vynález umožňuje v jediné mikroinstrukci modifikovat adresu další mikroinstrukce délkou operandu, pro který má dojít ke styku, a sudostí nebo lichostí adresy začátku toho operandu. Tím dojde k rozskoku mikroprogramu do větví, které obsahují posloupnost povelů ke styku, vytvořenou přesně pro danou délku a polohu operandu. Zrychlení styku spočívá v tom, že uvedený rozskok se uskuteční najednou, během jediné mikroinstrukce. Obor použití je výpočetní technika, mikroprogramem řízené operační procesory. Je vhodné jen pro jednodušší procesory, které neumožňují více paralelních činností v jediné mikroinstrukci.

Description

Vynález se týká obvodu, který v návaznosti na vhodný mikroprogram umožní rychlý rozskok do větví mikroprogramu, podle délky operandu a sudé nebo liché adresy jeho zaěátku.
Většina počítačů vykonává mimo jiné jednodušší operace též skupinu operací s proměnlivou, případně navzájem různou dálkou operandů, které jsou čteny z operační paměti, v operační jednotce zpracovány a výsledek je zapisován zpět do operační paměti. Čtení operandů a zápis výsledku proběhne na obecný počet styků s pamětí, závislý na konstrukci počítače a délce operandů. Řídicí mikroprogram musí obsahovat cykly pro styk s pamětí, ve kterých se vede evidence o dosud nepřečtené,respektive dosud nezapsané části operandu a cykl se opakuje až do vyčerpání délky operandu. Před zahájením takového cyklu bývá obvykle nutné jeětě zjišíovat polohu začátku operandu vzhledem k útvaru, který je možno z paměti najednou přečíst,.respektive do paměti zapsat. U většiny konstrukcí je rozhodující sudost nebo lichost adresy začátku operandu. Obvykle se čte,respektive zapisuje po dvojslabikách, tj. 16 bitů, ale adresa musí být sudé. Je-li adresa lichá, je nutno nejprve číst,respektive zapsat jednu slabiku, tj. 8 bitů,a dále pak'pokračovat ve styku po dvojslabikách. Hovněž konec styku s pamětí může být dvojslabičný, končí-li operand na liché adrese, nebo jednoslabičný, končí-li operand na sudé adrese. Styk pro jednu slabiku trvá stejnou dobu jako styk pro dvojslabiku.
Styk po slabikách je tedy z hlediska rychlosti nevýhodný. Cyklus pro styk s pamětí vyžaduje přípravu a obsahuje vedlejší činnost, která zpomaluje styk s pamětí. Časová ztráta je zvláště výrazná, jsou-li operandy krátké.
Z toho důvodu se jeví výhodné, styk s pamětí pro krátké operandy řešit rozskokem do vět ví, obsahujících jeden nebo několik po sobě následujících příkazů pro styk s pamětí, které přesně vyhovují délce operandu a sudosti, respektive lichosti adresy jeho začátku. Při takovém řešení styku s pamětí je jedinou přípravnou činností velba vhodné větve mikroprogramu. Tuto volbu lze provést postupným testováním délky operandu a testováním adresy začátku operandu na sudost. Takové rozhodování je pomalé a znehodnocuje jinak výhodné řešení styku s pamětí.
Dosavadní obvod pro provádění volby větve mikroprogramu sestává z testovacích obvodů spojených s obvody adresní aritmetiky řídicí paměti, které spolu zajistí konečné dosažení adresy začátku vhodné větve mikroprogramu, ovšem stane se tak postupnými změnami adresy na více kroků.
Popsaný nedostatek, to je postupnou a tedy pomalou volbu větve mikroprogramu, odstraňuje obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu, podle vyná lezu, jehož podstatou je, že aritmetická jednotka je vybavena vstupem pro součet adresy mikroinstrukce s kódem délky operandu, ke kterému je připojen výstup registru kódu délky operandu, dále je aritmetická jednotka vybavena vstupem pro modifikaci adresy mikroinstrukce sudosti nebo lichosti adresy operandu, ke kterému je připojen výstup registru adresy operandu a dále je aritmetická jednotkp vybavena dalším vstupem, připojeným na registr adresy mikroinstrukce a výstup aritmetické jednotky je propojen na vstup řídicí paměti a na vstup registru mikroinstrukce.
Shora uvedeným propojením částí obvodu pro rychlý rozskok se docílí ovlivněni tvorby adresy mikroinstrukce obsahem registru kódu délky operandu a obsahem vybrané části registru adresy operandu a tím se umožní volba větve mikroprogramu podle délky a polohy operandu v rámci jediné mikroinstrukce. Tato volba je podstatně rychlejší proti postupné voíbě, vnucené dosavadním obvodem.
Na připojeném výkrese je schematicky znázorněn obvod podle vynálezu.
Obvod dle vynálezu sestává z aritmetické jednotky J., z registru 2 adresy mikroinstrukce z registru J kódu délky operandu, z registru £ adresy operandu a z řídicí paměti 2· Na vstup
102 aritmetické jednotky J_ je připojen výstup registru 2 adresy mikroinstrukce, na vstup
103 aritmetické jednotky je připojen výstup registru J kódu délky operandu a na vstup 104 aritmetické jednotky J. je připojen výstup registru 4 adresy operandu. Výstup aritmetické jednotky i je připojen na vstup registru 2 adresy mikroinstrukce a na vstup řídicí paměti 5,.
Aritmetická jednotka za předpokladu, že současnou mikroinstrukcí je právě rychlý rozskok, vytvoří adresu příStí mikroinstrukce sečtením čtyř následujících binárních čísel:
jedničky, generované uvnitř aritmetické jednotky J.
adresy současné mikroinstrukce, uložené v registru 2 adresy mikroinstrukce, kódu délky operandu, uloženým v registru J kódu délky operandu, proměnné, charakterizující sudost nebo lichost adresy začátku operandu, přičemž tato proměnná je vytvořena uvnitř aritmetické jednotky J. na základě adresy operandu, uložené v registru £ adresy operandu.
Takto vytvořená adresa nové mikroinstrukce je jednak uložena do registru 2 adresy mikroinstrukce, jednak je použita v řídicí paměti £ pro výběr nové mikroinstrukce. Aritmetická jednotka _£ vytváří adresu příští mikroinstrukce shora uvedeným sečtením čtyř čísel jen v případě, že současná mikroinstrukce je rychlý rozskok. Jestliže současná mikroinstrukce je řadová, vytvoří aritmetická jednotka _1_ adresu nové mikroinstrukce pouze přičtením vnitřně generované jedničky k adrese uložené v registru 2, adresy mikroinstrukce, což je běžná funkce. Při některých jiných mikroinstrukcích se tvoři adresa nové mikroinstrukce zcela jinak, což není v obrázku vyznačeno. Při vykonávání mikroinstrukce různé od rychlého rozskoku, se uplatní jen známé části obvodu.
V dalším textu je zařazena tabulka TAB. 2, znázorňující příklad mikroprogramu, v němž je využit rychlý rozskok, umožněný obvodem dle vynálezu. Pro tento příklad je zvoleno omezení délky operandu na 4 slabiky. D.elší operand by byl čten pomocí cyklu, což není v tabulce TAB. 2 znázorněno. Obvod dle vynálezu připočte při rychlém rozskoku k adrese mikroinstrukce, uložené v registru 2 adresy mikroinstrukce binární přírůstek, který je definován takto:
pro sudou adresu začátku operandu ... 1 + kód délky + 0000 pro lichou adresu začátku operandu ..1 + kód délky + 0100
Přehled binárních přírůstků adresy mikroinstrukce pro všechny situace uvedeného příkladu podává tabulka TAB. 1.
adresa začátku délka operandu kód délky binární přírůstek dekadický pří-
operandu (slabika) adresy růstek adresy
sudá 1 00 0001 1
sudá 2 01 0010 2
sudá 3 10 0011 3
sudá 4 11 0100 4
lichá 1 00 0101 5
lichá 2 01 0110 6
lichá 3 10 0111 7
lichá 4 11 1000 8
TAB. 1
TAB. 2.
Přírůstek adresy v dekadickém tvaru je uveden jen pro lepší srozumitelnost. Obvod dle vynálezu pracuje binárně. Jedinou mikroinstrukcí 201 se uvede v činnost obvod dle obrázku, který přičte k adrese současné mikroinstrukce 201 přírůstek dle TAB. 1. Za mikroinstrukcí 201 následuje v mikroprogramu těsně za sebou osm skoků 211 až 218. Posloupnout adres mikroinstrukcí 201. 211, 212. 213. 214. 215. 216. 217 a 218 je graficky zdůrazněna vždy nižším umístěním v TAB. 2. Začátky posloupností mikroinstrukcí za skoky mohou ležet kdekoli v řídicí paměti a výěka jejich umístěni v TAB. 2 nic neznamená. Mikroinstrukcí 201 se provede volba jednoho z osmi skoků 211 až 218 a tím i volba vhodné větve mikroprogramu. Například je-li délka operandu 4 slabiky a jeho začátek na sudé adrese, připočte obvod dle obrázku uvedený v činnost mikroinstrukcí 201 k adrese této mikroinstrukce přírůstek 4, takže se provede skok 214 a po něm mikroinstrukce 224 a 234. Operand je přečten nadvakrát po dvojslabikách. Jiný příklad. Délka operandu je 4 slabiky, operand začíná na liché adrese. Obvod dle vynálezu,, uvedený v činnost mikroinstrukcí 201.připočte k adrese této mikroinstrukce přírůstek 8, takže se provede skok 218 a po něm mikroinstrukce 228, 238 a 248. Operand je přečten natřikrát.
Obvod na provádění rychlého rozskoku do větví mikroprogramu podle délky a polohy operandu je urěen pro menší počítače, jejichž technické vybavení běžně neumožňuje provádět paralelně více činností v jediné mikroinstrukci.

Claims (1)

  1. PŘEDMĚT VYNÁLEZU
    Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu, vyznačený tím, že aritmetická jednotka (1) je vybavena vstupem (103) pro součet adresy mikroinstrukce s kódem délky operandu, ke kterému je připojen výstup registru (3) kódu délky operandu, dále je aritmetická jednotka (1) vybavena vstupem (104) pro modifikaci adresy mikroinstrukce sudostí nebo lichostí adresy operandu, ke kterému je připojen výstup registru (4). adresy operandu a dále je aritmetická jednotka (1) vybavena dalším vstupem (102), připojeným na registr (2) adresy mikroinstrukce a výstup aritmetické jednotky (1) je propojen na vstup řídicí paměti (5) a na vstup registru (2) adrésy mikroinstrukce.
CS273880A 1980-04-18 1980-04-18 Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu CS209751B1 (cs)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CS273880A CS209751B1 (cs) 1980-04-18 1980-04-18 Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CS273880A CS209751B1 (cs) 1980-04-18 1980-04-18 Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu

Publications (1)

Publication Number Publication Date
CS209751B1 true CS209751B1 (cs) 1981-12-31

Family

ID=5365322

Family Applications (1)

Application Number Title Priority Date Filing Date
CS273880A CS209751B1 (cs) 1980-04-18 1980-04-18 Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu

Country Status (1)

Country Link
CS (1) CS209751B1 (cs)

Similar Documents

Publication Publication Date Title
EP0114304B1 (en) Vector processing hardware assist and method
US5115500A (en) Plural incompatible instruction format decode method and apparatus
US4631663A (en) Macroinstruction execution in a microprogram-controlled processor
US3949379A (en) Pipeline data processing apparatus with high speed slave store
EP0185215A2 (en) Forth-like language microprocessor
US3781823A (en) Computer control unit capable of dynamically reinterpreting instructions
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
US3990052A (en) Central processing unit employing microprogrammable control for use in a data processing system
US3953833A (en) Microprogrammable computer having a dual function secondary storage element
US3380025A (en) Microprogrammed addressing control system for a digital computer
GB1448866A (en) Microprogrammed data processing systems
US5097407A (en) Artificial intelligence processor
US4323964A (en) CPU Employing micro programmable control for use in a data processing system
US3094610A (en) Electronic computers
US4388682A (en) Microprogrammable instruction translator
US3698007A (en) Central processor unit having simulative interpretation capability
US3979729A (en) Microprogram unit for a data processor
US3728686A (en) Computer memory with improved next word accessing
KR100322277B1 (ko) 확장 명령어를 가진 중앙처리장치
EP0062658A1 (en) STACKING REGISTER FOR DATA PROCESSOR.
EP0073561B1 (en) High speed microinstruction execution apparatus
US3394350A (en) Digital processor implementation of transfer and translate operation
KR880000341B1 (ko) 중앙처리장치의 버스 소오싱 및 시프터 제어
US3430202A (en) Data processor utilizing combined order instructions
CS209751B1 (cs) Obvod pro rychlý rozskok do větví mikroprogramu podle délky a polohy operandu