CS209751B1 - Circuit for quick jump to microprogram branches according to length and position of operand - Google Patents
Circuit for quick jump to microprogram branches according to length and position of operand Download PDFInfo
- 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
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.A circuit for fast branching into microprogram branches according to the length and position of the operand, intended for microprogram-controlled processors. The effect is to increase the speed of contact between the computer's operational processor and the computer's memory. The invention allows, in a single microinstruction, to modify the address of the next microinstruction by the length of the operand for which contact is to occur, and the evenness or oddness of the address of the start of that operand. This results in a microprogram branching into branches that contain a sequence of commands for contact, created exactly for the given length and position of the operand. The acceleration of contact consists in the fact that the said branching takes place at once, during a single microinstruction. The field of application is computer technology, microprogram-controlled operational processors. It is suitable only for simpler processors that do not allow multiple parallel operations in a single microinstruction.
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.The invention relates to a circuit which, in connection with a suitable microprogram, enables a quick jump to the branches of the microprogram, depending on the length of the operand and the even or odd address of its beginning.
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.Most computers perform, among other simpler operations, a group of operations with a variable or different distance of operands, which are read from the operational memory, processed in the operational unit and the result is written back to the operational memory. Reading the operands and writing the result will take place in a general number of contacts with the memory, depending on the computer design and the length of the operands. The control microprogram must contain cycles for contacting the memory, in which records are kept of the not yet read or written parts of the operand, and the cycle is repeated until the length of the operand is exhausted. Before starting such a cycle, it is usually necessary to determine the position of the beginning of the operand in relation to the structure that can be read from the memory at once, or written to the memory. In most designs, the evenness or oddness of the address of the beginning of the operand is decisive. It is usually read or written in double bytes, i.e. 16 bits, but the address must be even. If the address is odd, it is necessary to first read or write one byte, i.e. 8 bits, and then continue the communication in two-byte cycles. Since the end of the communication with the memory can be two-byte, if the operand ends at an odd address, or one-byte, if the operand ends at an even address. A communication for one byte lasts the same time as a communication for two-byte cycles.
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é.Syllable access is therefore disadvantageous in terms of speed. The cycle for accessing memory requires preparation and contains a secondary activity that slows down the access to memory. The time loss is especially significant if the operands are short.
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í.For this reason, it seems advantageous to solve memory access for short operands by jumping to branches containing one or several consecutive memory access instructions that exactly match the length of the operand and the evenness or oddness of its start address. In such a solution to memory access, the only preparatory activity is the selection of a suitable microprogram branch. This selection can be made by successively testing the length of the operand and testing the start address of the operand for evenness. Such a decision is slow and invalidates an otherwise advantageous solution to memory access.
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ů.The current circuit for performing the microprogram branch selection consists of test circuits connected to the control memory address arithmetic circuits, which together ensure the final achievement of the address of the start of the appropriate microprogram branch, but this happens by successive address changes over multiple steps.
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.The described deficiency, that is, the gradual and therefore slow selection of the microprogram branch, is eliminated by a circuit for a quick jump to the microprogram branches according to the length and position of the operand, according to the invention, the essence of which is that the arithmetic unit is equipped with an input for the sum of the microinstruction address with the operand length code, to which the output of the operand length code register is connected, further the arithmetic unit is equipped with an input for modifying the microinstruction address of the evenness or oddness of the operand address, to which the output of the operand address register is connected and further the arithmetic unit is equipped with another input connected to the microinstruction address register and the output of the arithmetic unit is connected to the control memory input and to the microinstruction register input.
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.By connecting the parts of the circuit for fast jump as mentioned above, the formation of the microinstruction address is influenced by the contents of the operand length code register and the contents of the selected part of the operand address register, thus enabling the selection of a microprogram branch according to the length and position of the operand within a single microinstruction. This selection is significantly faster than the sequential selection imposed by the existing circuit.
Na připojeném výkrese je schematicky znázorněn obvod podle vynálezu.The attached drawing schematically shows a circuit according to the invention.
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 vstupThe circuit according to the invention consists of an arithmetic unit J., a microinstruction address register 2, an operand length code register J, an operand address register £ and a control memory 2. At the input
102 aritmetické jednotky J_ je připojen výstup registru 2 adresy mikroinstrukce, na vstup102 arithmetic unit J_ is connected to the output of register 2 of the microinstruction address, to the input
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,.The output of the register J of the operand length code is connected to the input 103 of the arithmetic unit and the output of the register 4 of the operand address is connected to the input 104 of the arithmetic unit J. The output of the arithmetic unit i is connected to the input of the register 2 of the microinstruction address and to the input of the control memory 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:The arithmetic unit, assuming that the current microinstruction is a fast jump, creates the address of the next microinstruction by adding the following four binary numbers:
jedničky, generované uvnitř aritmetické jednotky J.ones, generated inside the arithmetic unit 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.the address of the current microinstruction, stored in the microinstruction address register 2, the operand length code, stored in the operand length code register J, a variable characterizing the evenness or oddness of the address of the start of the operand, this variable being created inside the arithmetic unit J based on the operand address, stored in the operand address register £.
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.The address of the new microinstruction thus created is both stored in the microinstruction address register 2 and used in the control memory £ to select a new microinstruction. The arithmetic unit _£ creates the address of the next microinstruction by adding the four numbers mentioned above only if the current microinstruction is a fast jump. If the current microinstruction is a sequential one, the arithmetic unit _1_ creates the address of the new microinstruction only by adding an internally generated one to the address stored in the microinstruction address register 2, which is a common function. For some other microinstructions, the address of the new microinstruction is created in a completely different way, which is not shown in the figure. When executing a microinstruction other than a fast jump, only known parts of the circuit are used.
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:The following table TAB. 2 is included, showing an example of a microprogram in which the fast jump enabled by the circuit according to the invention is used. For this example, the operand length is limited to 4 bytes. A longer operand would be read using a cycle, which is not shown in TAB. 2. The circuit according to the invention adds a binary increment to the microinstruction address stored in register 2 of the microinstruction address, which is defined as follows:
pro sudou adresu začátku operandu ... 1 + kód délky + 0000 pro lichou adresu začátku operandu ..1 + kód délky + 0100for even address of the start of the operand ... 1 + length code + 0000 for odd address of the start of the operand ..1 + length code + 0100
Přehled binárních přírůstků adresy mikroinstrukce pro všechny situace uvedeného příkladu podává tabulka TAB. 1.An overview of the binary increments of the microinstruction address for all situations of the above example is given in Table TAB. 1.
TAB. 1TABLE 1
TAB. 2.TABLE 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.The address increment in decimal form is shown only for better clarity. The circuit according to the invention works in binary. A single microinstruction 201 activates the circuit according to the figure, which adds to the address of the current microinstruction 201 the increment according to TAB. 1. Microinstruction 201 is followed in close succession in the microprogram by eight jumps 211 to 218. The address sequence of microinstructions 201. 211, 212. 213. 214. 215. 216. 217 and 218 is graphically emphasized by always being placed lower in TAB. 2. The beginnings of the sequences of microinstructions after the jumps can be located anywhere in the control memory and the height of their placement in TAB. 2 does not mean anything. Microinstruction 201 selects one of the eight jumps 211 to 218 and thus also selects the appropriate branch of the microprogram. For example, if the operand length is 4 bytes and its start address is even, the circuit according to the figure, activated by microinstruction 201, adds an increment of 4 to the address of this microinstruction, so that jump 214 is performed, followed by microinstructions 224 and 234. The operand is read twice in two-byte increments. Another example. The operand length is 4 bytes, the operand starts at an odd address. The circuit according to the invention, activated by microinstruction 201, adds an increment of 8 to the address of this microinstruction, so that jump 218 is performed, followed by microinstructions 228, 238 and 248. The operand is read three times.
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.The circuit for performing a fast jump to microprogram branches based on the length and position of the operand is designed for smaller computers whose technical equipment does not normally allow for performing multiple operations in parallel in a single microinstruction.
Claims (1)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS273880A CS209751B1 (en) | 1980-04-18 | 1980-04-18 | Circuit for quick jump to microprogram branches according to length and position of operand |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CS273880A CS209751B1 (en) | 1980-04-18 | 1980-04-18 | Circuit for quick jump to microprogram branches according to length and position of operand |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CS209751B1 true CS209751B1 (en) | 1981-12-31 |
Family
ID=5365322
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CS273880A CS209751B1 (en) | 1980-04-18 | 1980-04-18 | Circuit for quick jump to microprogram branches according to length and position of operand |
Country Status (1)
| Country | Link |
|---|---|
| CS (1) | CS209751B1 (en) |
-
1980
- 1980-04-18 CS CS273880A patent/CS209751B1/en unknown
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 (en) | Central processing unit having expansion instruction | |
| EP0062658A1 (en) | STACK STORAGE FOR A DATA PROCESSING SYSTEM. | |
| EP0073561B1 (en) | High speed microinstruction execution apparatus | |
| US3394350A (en) | Digital processor implementation of transfer and translate operation | |
| KR880000341B1 (en) | Bus Sourcing and Shifter Control of Central Processing Unit | |
| US3430202A (en) | Data processor utilizing combined order instructions | |
| CS209751B1 (en) | Circuit for quick jump to microprogram branches according to length and position of operand |