Method and arrangement to accelerate the transfer of an instruction to the instruction register of a micro-programme-controlled processor.
Abstract
1. Method for accelerating the preparation of an instruction in the instruction-register (IR) of a micro-program-controlled processor in which at least the data units of constant length containing the various instructions are fed in blocks from a working memory to a buffer memory (CACHE) and from this are then fed in groups corresponding to the respective progress of the program to an instruction buffer (IB), from which the instructions are then successively retrieved one by one and each transferred with left justification to the instruction register (IR) for interpretation, characterized - in that each first new instruction, independently of the beginning of the instruction, is fed within a data unit from the buffer memory (CACHE) with left justification as data unit directly to the instruction register (IR) with the read instruction (RI or RIE) triggered in the event of a reset instruction buffer (IB) or in the event of program branchings as a result of a jump instruction with a fulfilled jump condition, - in that at the same time parallel to this the aligned data unit delivered by the buffer memory (CACHE) is fed via a realigner (IBAL) to the instruction buffer (IB) so that a data unit corresponding to the data unit in the buffer memory (CACHE) with respect to the position of the valid bytes is stored in the instruction buffer, and - in that the data units belonging to the same group and also those required for cyclical refilling are then transferred unchanged from the buffer memory (CACHE) into the instruction buffer (IB).

Term
Term ended
Projected expiry passed 23 April 2007, 19.4 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
5 claims: 1 independent, 4 dependent
- c-de-00011. A method for accelerating the deployment of an instruction in the instruction register (IR) of a micro-program-controlled processor, wherein at least the various commands containing data units of constant length of a memory block, a buffer memory (CACHE) and from this then in groups according to the respective program progress a command buffer ( IB) are supplied, then retrieved from the commands one by one and each left-aligned the instruction register (IR) are passed to the interpretation, characterized, - That regardless of the beginning of the instruction within a data unit from the buffer memory (CACHE) aligned with the case set back instruction buffer (IB) or at program branches in consequence of a branch instruction triggered with fulfilled jump condition read instruction (RI or RIE) of each first new command flush left as data unit is directly supplied to the instruction register (IR) - That at the same time in parallel by the buffer memory (CACHE) provided aligned data unit via a return aligner (IBAL) is supplied to the instruction buffer (IB), so that in the command buffer one of the data unit in the buffer memory (CACHE) is stored with respect to the position of the valid bytes corresponding data unit and - That then the same group belonging and the need for cyclical replenishment data units from the buffer memory (CACHE) unchanged into the instruction buffer (IB) are transmitted.
33 paragraphs, as filed
The invention relates to a method and a system for rapid deployment of a command in the command register of a microprogram controlled processor according to the preamble of claim 1.
The performance of modern computers is primarily determined by the commands per unit time editable. Regardless of the operating speed of circuits and circuit components, the speed of a computer can be increased mainly through structural measures. Such structural measures consist, inter alia, the use of a fast buffer memory between RAM or central memory and processor as well as an instruction buffer which receives foresight subsequent instructions of a program from the buffer memory and the instruction register fed successively with the commands - you see, for example "Electronic computing systems", 1973 , No. 2, pages 60 to 65th
The storage of the commands are independent of the length of the individual instructions that can comprise, for example 16,32 or 48 bits, continuously on data units of constant length, for example 64 bits in accordance with a double-word of 8 bytes, distributed, so that the start of a command usually does not coincide with a double word boundary, and thus the beginning of a data unit. To select a command from the data units stored in the instruction buffer separate select switches are therefore necessary to refer to the respective instruction aligned left-justified to the instruction register - you see, eg, "computer", Vol 7, No.. 11 (Nov. 1974), pages 24 to 38th
In each case, a plurality of data units to be provided in advance in the instruction buffer and the instruction buffer duplicated, so when possible program branches as a result of fulfilled jump instructions and the first orders for the branch direction may be provided in advance as a rule.
But the path from the command buffer to the command register means always a delay of an elementary cycle of the processor when in filled jump commands the jump decision exists prior to the transfer from the buffer memory into the instruction buffer or has to be reloaded for any reason, the command buffer. It is therefore an object of the invention to control the deployment of the commands in the command register so that no unnecessary waiting times for the instruction decoding occur and unnecessary waiting elemental cycles are avoided.
This object is achieved with respect to the method according to the invention by the characterizing features of claim 1.
Thereafter, the respective first instruction to be transferred from the buffer memory new command sequence from the buffer memory is already left-aligned in the form of an aligned data unit delivered, so that it can be directly zugleitet the instruction register.
At the same time aligned data unit is fed via a return host the first register of the instruction buffer so that this saved since data unit of unaligned form in the buffer corresponds again and join the subsequently be passed to the buffer memory unaligned data units from its address forth seamlessly to the first data unit , Immediately to the transmission of the first command in the command register can therefore be started with the interpretation of the command in the same elementary cycle already.
From British Patent Specification 11 56 249 it is already known to simultaneously supply the respective first data unit from the buffer memory, both the instruction buffer and a separate register. This register is followed by a selection switch on the respective first, beginning at one of the half-word boundary 8 bits of the operation code of an instruction can be adjusted by the corresponding least significant address of the command, so that a downstream operation code decoder can begin immediately with the command Query.
Since the instruction length may be different and an instruction can begin at any halfword boundary, the entire command is often not immediately available, so that a complete interpretation only after replenishment of the special register is possible. This costs time and again requires additional effort for the replenishment, as each half-word section of the register for each half word of the subsequent data unit must be separately selectable.
The achievable with the new procedure time saving primarily comes fully into play when, are detected with a data unit at least two orders of the longest length, ie at least 1.5 double words, so that the next command can be respectively provided in time from the command buffer. Shorter data units, for example a double word can be hand then use, according to a further according to claim 2 during a Elementarzyklusses two data units from the buffer memory with a time interval of one another are provided for the adoption in the command buffer.
An assembly according to the invention results from the features of claim 3. The starting point is a buffer memory, in which two successive data units can be simultaneously read always, from which then left-aligned beginning with the desired command data unit is formed so that the instruction register can be driven directly. In order to still maintain the operation of the command buffer in the conventional manner, this unit aligned data is supplied in parallel to the instruction buffer via a second selection switch as a back organizer. All other data units from the buffer memory are then passed unchanged in the previous example, from the buffer memory to the instruction buffer so that it contains a copy of each group of data stored in the buffer memory data units, from which the commands are selected in sequence for the instruction register.
Following the usual linear addressing may be used for setting the selector switch easily the corresponding least significant address of the respective instruction addresses are used while defining the action timings of the elemental cycles forming clock pulses is expediently in conjunction with the triggering read commands. Corresponding further developments emerge from the dependent claims.
Details of the invention are explained below with reference to an embodiment shown in the drawing. Specifically show<ul><li>FIG 1 is a schematic block diagram for an arrangement according to the invention,</li><li>2 shows a data structure diagram for explaining the operation of the arrangement of Figure 1 and</li><li>3 shows pulse diagrams for explaining the timing sequence of the invention.</li></ul>
The block diagram of FIG 1 shows in the upper left part of the buffer memory CACHE with his control C-ST and at the bottom of the instruction buffer IB with control IB-ST and downstream instruction register IR.
The instruction buffer IB consists of two sets of registers Iba1 to IBA4 and IBB1 to IBB4, of which the second group is used in a conventional manner in the case of a program branch. Each of the register groups is coupled to a selector switch or IALA IALB that of the corresponding least significant bits of each instruction address selects the associated command from the data units stored in the registers depends in a known manner.
The data units correspond, for example 64 bits each corresponding to a double word DW, which is subdivided into 4 half words of 16 bits each, of which make up the individual commands. The 4 register each group can thus accommodate a total of 4 double words, from which the required half-phrases of a command can be selected in cyclic sequence.
If the instruction buffer IB empty, all 4 double words are read sequentially from the buffer memory CACHE and the instruction buffer IB filled. If two double words DW under the command processing has expired, the associated register to be refilled in cyclic sequence.
This automatic vorauschauende refilling of the instruction buffer IB is caused in a conventional manner by the associated control IB-ST.
The memory units of the buffer memory CACHE have a memory width of two double words DW, and there are always two address moderate consecutive double words DW read simultaneously, even if they are stored in different rows of a storage unit. This is in a simple manner by using separate memory halves with a width of only one double word DW - as shown - is possible.
In effect the invention the read output of the buffer memory CACHE is a selection switch IALC downstream which selects DW each 4 consecutive and in a double word forming as data half-words from each read two double words, and in such a manner that the respective desired and by the read address certain command is left-justified contain aligned in this data unit. Through timely reversal of the directional switch MUX2 at the input of the instruction register IR so the first command of a new command sequence, bypassing the instruction buffer IB can be directly supplied to the instruction register IR.
Furthermore, the input of each first register is Iba1 or IBB1 another selection switch IBAL upstream, which operates as return aligner and the effect of the first selection switch at the output of the buffer memory CACHE makes reverses so that the einzuspeichernde in the first register of the buffer memory IB data unit originally read from the buffer memory cACHE data unit corresponds with respect to the location of valid bytes in the full and the address of linearity with the following, unchanged in the instruction buffer IB transferred data units is maintained.
The selector switch can be made in a conventional manner of a series of multiplexers, all input is connected to all selectable halfword areas in cyclically wrong order - you see, for example DE-OS 31 38 897th
This results in accordance with the data structure diagram of FIG 2 following procedure:
Starting from 2 memory lines in the buffer memory CACHE with the bytes 0 to V, each of which 2 bytes form a half-word, is dependent on the read address AD, showing the example chosen to byte 6 as command early, the corresponding double word with the bytes 0 to 7 and read the following double word with the bytes 8 to F simultaneously. These two double words could also be shifted to a double-word length and are in different memory lines.
Since the double word boundary does not coincide with the command beginning, wherein a first instruction of a sequence characterizing read command, for example, RIE, the selection switch IALC effective and from the two read double words DW a beginning with the desired instruction double word 1.DW selected as the data unit and transmitted, comprising bytes 6 to D. Subsequently the selection switch IALC is only set to the second read full double word with the bytes 8 to F and transfer this.
While the double word 1.DW unchanged reaches the instruction register IR, it is back again aligned for storage in register Iba1 the instruction buffer IB. The locations of the original, but now invalid bytes 0 to 5 are thereby filled with zeros so that the bytes 6 and 7 slip back to their original locations. The second transmitted double word 2.DW will hand over to the IBA2 register unchanged. To further fill the instruction buffer IB two subsequent doublewords 3.DW and 4.DW are subsequently read by bytes G to N or O to V and transferred to the register or IBA3 IBA4 by in this case, automatically triggered further read command RIH , The same applies for the more cyclical refilling now freed-register IBA ....
Simultaneously with the filling of the first register Iba1 including the instruction register IR is loaded with the first full command so that the command interpretation of the full instruction can be started immediately, without any additional transfer operation from the first register Iba1 the instruction buffer IB to the instruction register IR required is.
The timing diagrams of FIG 3 illustrate the associated control sequence from a temporal perspective. In the top two rows of the diagram that is represented by the elementary cycles EOZ of the processor with the associated clock phases CL1 to CL4 predetermined time period. Below it are two groups A and B of chart lines that reflect the course once in a conventional manner with control of the instruction register IR alone on the instruction buffer IB to the other according to the invention.
In the elementary cycle EOZ1 previous elementary cycle of the case is, for example, occurred in that the instruction buffer IB reset become or a jump instruction has come to perform, having a read operation in the buffer memory CACHE result. This is indicated by the marked as read command RI or RIE control command CMD, which is started at the beginning of the elementary cycle EOZ1. This command runs with the start of the subsequent cycle EOZ2 for providing the first double word 1.DW at the output of the buffer memory CACHE, so that it is transferred to the subsequent clock pulse CL-IB1 corresponding to the clock pulse CL2 in cycle EOZ2, into the instruction buffer IB.
Under the assumption that the rapid filling of the instruction buffer IB in an elementary cycle two double words can be transmitted at the output of the buffer memory CACHE with the beginning of the clock pulse, the second double word 2.DW provided CL3 and in the triggered by clock CL4 clock pulse CL-IB2 the register of the instruction buffer IB IBA2 transferred. Only in the subsequent elementary cycle EOZ3 can therefore be applied and interpreted in the instruction register IR with the triggered by the clock pulse CL2 clock pulse CL-IR, the first instruction from the instruction buffer IB. From the beginning of the elementary cycle EOZ1 until at least the beginning of the clock pulse CL2 in Elementrazyklus EOZ3 so the processor with further processing of commands has to wait which is indicated by hatching in the line I-EX.
If, however, the one provided by the buffer memory CACHE first double word so collected or aligned such that it already includes left-aligned the entire first command corresponding to the lower part B of the diagram, it can travel through gleichzeitigt in this case already triggered with the clock pulse CL-IB1 clock pulse CL-IR transferred directly into the instruction register IR and the first command already interpreted an elementary cycle earlier in the elementary cycle EOZ2. The waiting time for the continuation of the command handler so shortened each time by the duration of a Elementarzyklusses.
This time saving is both independent of the rest of the structure of the processor - so it also comes at a pipeline structure for supporting - as the decision is also independent of the type of jump instructions when the jump condition and possible before the appropriate commands in instruction buffer ready.
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office | Category | Cited during |
|---|---|---|---|---|
| EP0380854A3 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0380854A2 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0123922A2 | Cites | European Patent Office (EPO) | A | Search report |
| EP0123922A2 | Cites | European Patent Office (EPO) | A | Search report |
4 members in 3 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 3613718 | Germany | A | |
| 3613718 | Germany | – | |
| 3613718 | – | – | – |
| DE19863613718 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| EP0243879A1This record | European Patent Office (EPO) | A1 | |
| EP0243879B1 | European Patent Office (EPO) | B1 | |
| AT49071T | Austria | T | |
| DE3761278D1 | Germany | D1 |
31 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Se: european patent has lapsedLapsedEUG | EUG | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Nl: lapsed or anulled due to non-payment of the annual feeLapsedNLV4 | NLV4 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Be: lapsedLapsedBERE | BERE | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: translation of ep patent filed (gb section 77(6)(a)/1977)GBT | GBT | EP | |
| It: translation for a ep patent filedITF | ITF | EP | |
| It: translation for a ep patent filedITF | ITF | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| Corresponds to:REF | REF | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0243879
- Publication, DOCDB
- 0243879
- Publication, EPODOC
- EP0243879
- Application
- 87105951
- Application, DOCDB
- 87105951
- Application, EPODOC
- EP19870105951
Titles3
- German
- Verfahren und Anordnung zur Beschleunigung der Bereitstellung eines Befehles im Befehlsregister eines mikroprogrammgesteuerten Prozessors.
- English
- Method and arrangement to accelerate the transfer of an instruction to the instruction register of a micro-programme-controlled processor.
- French
- Méthode et dispositif pour accélérer la préparation d'une instruction dans le registre d'instruction d'un processeur micro-programmé.
Classification
- CPC, 2
- G06F9/3814
- G06F9/3802
- IPC, 1
- G06F9 38
Designated states10
- Contracting states, 10
- Austria
- Belgium
- Switzerland
- Germany
- France
- United Kingdom
- Italy
- Liechtenstein
- Netherlands (Kingdom of the)
- Sweden