EP1470477A1 - Verfahren zur befehlsbearbeitung - Google Patents
Verfahren zur befehlsbearbeitungInfo
- Publication number
- EP1470477A1 EP1470477A1 EP20030706230 EP03706230A EP1470477A1 EP 1470477 A1 EP1470477 A1 EP 1470477A1 EP 20030706230 EP20030706230 EP 20030706230 EP 03706230 A EP03706230 A EP 03706230A EP 1470477 A1 EP1470477 A1 EP 1470477A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- command
- block
- program
- instruction
- processing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Definitions
- the invention relates to a method for command processing in a processor, wherein a currently executable command of a program memory is addressed by a program control unit on the one hand by means of a program counter status of a program counter implemented in it, by the program control unit controlling the counting mode and the Specifies the step size of the program counter and also stores a jump address from which it continues its counting mode when a jump command occurs, and on the other hand the addressed command is read out, decoded and executed by the program control unit.
- parallelism primarily means the operations and calculations that can be carried out in parallel in a processor and are independent of one another.
- ILP instruction level parallelism
- ILP-based systems use conventional high-level programming languages, which were created for sequential processors, on the one hand, and compiler technology and hardware, on the other hand, to automatically detect parallelism.
- ILP-based systems for programming, however, it should be noted that program branches cannot be parallelized.
- VLIW Very long instruction word
- the program contains the information about existing parallelism.
- a disadvantage of this processor technology is the fact that the predictive instruction processing of program branches, the branch prediction and the speculative code processing are not manageable.
- an EPIC program In addition to the ILP, an EPIC program also tells the processor the conditions under which certain instructions are to be executed. The processor gets all the commands execute, but only adopt results that meet the additional conditions (predicated instruction).
- This technology also has the disadvantage that the command processing of fixed blocks of commands can only be implemented by command-intensive subroutines. It is also not possible to optimally design the branch prediction of program branches where the return address is already set.
- a software method known in the prior art to process program branches in a time-saving manner is to save the jumps back and forth to the called subroutines by programming the instructions in such a way that they can be executed "inline".
- This multiple occurrence of the UP in the program harbors the disadvantage of the high memory consumption.
- the task is therefore to expand the EPIC processor technology with options for fast command processing of command blocks that go beyond the usual call of subroutines.
- the solution to the problem according to the invention provides that an additional block command is implemented in the processors on the hardware side, so that the program control unit provides for a program branch in which a certain number of commands to be processed one after the other is provided and so that the return address is fixed after command processing, this implemented block command is optionally called instead of a subroutine, in which the current program counter status and the number of commands in succession of commands are additionally stored.
- a further embodiment of the solution of the task according to the invention provides that the additional block command is executed by the arithmetic unit as a conditional command (predicated instruction), the command word containing the information under which condition the stored number of commands of the command block are processed.
- conditional command predicated instruction
- both branches are executed in a preliminary processing phase until the result of the condition query at the end of the associated delayed slot has been evaluated in an execute phase.
- the delayed slots serve as respective execution channels in the area of the program for each command being processed in this way. program control. They are only closed after the execution phase of each command.
- command processing times can be saved by the fact that an execute phase of a previous command does not necessarily have to be reached before the next command can be read out.
- the respective processing status of the interrupted first command block and the end address to be saved for the return, which results from the second block command, are stored in a local program control stack.
- the addresses of the commands combined in the respective command block are placed in the special address area that can be read by the compiler.
- the invention will be explained in more detail below on the basis of an exemplary embodiment.
- the associated drawing figure shows a schematic representation of the arithmetic unit with its processes during command processing.
- the program instructions are present in the program sequence 1 in the program memory 1.
- the program counter 5 contained in the program control unit 10 has addressed a command word of the program memory 1 and this has been recognized as a jump command by its subsequent decoding.
- the number of commands from the block command is also stored in the command number memory 6.
- the return address can thus be calculated and specified by the program control unit 10 after the command block has been processed.
- the drawing shows that the first command block 2 contains a further block command.
- the associated jump address is stored in the jump address memory 3 by this command and the second command block 11 is thereby addressed.
- the calculation is made from the number of commands in the local stack 8 to the calculated return address and the command processing in the first command block 2 can be continued until its end.
- the program control unit 10 loads the contents of the memory of the current program counter status 4, which represents the processing status of the interrupted program in the program memory 1 by the stored return address, into the program counter and the program instructions 1 to be processed are returned to. gene.
- the program in program memory 1 can thus be continued at the interrupted point.
- Calculator program memory first instruction block jump address memory memory of the current program counter status program counter instruction number memory delayed slots (Execute Phase) instruction number memory of the local stack processing status memory of the local stack program control unit second instruction block local stack of the program control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10204345A DE10204345A1 (de) | 2002-02-01 | 2002-02-01 | Verfahren zur Befehlsbearbeitung |
| DE10204345 | 2002-02-01 | ||
| PCT/DE2003/000126 WO2003065204A1 (de) | 2002-02-01 | 2003-01-17 | Verfahren zur befehlsbearbeitung |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1470477A1 true EP1470477A1 (de) | 2004-10-27 |
Family
ID=27588306
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP20030706230 Withdrawn EP1470477A1 (de) | 2002-02-01 | 2003-01-17 | Verfahren zur befehlsbearbeitung |
Country Status (5)
| Country | Link |
|---|---|
| US (3) | US20050246571A1 (de) |
| EP (1) | EP1470477A1 (de) |
| JP (1) | JP2005516301A (de) |
| DE (1) | DE10204345A1 (de) |
| WO (1) | WO2003065204A1 (de) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AT500858B8 (de) * | 2004-08-17 | 2007-02-15 | Martin Schoeberl | Instruction cache für echtzeitsysteme |
| DE102012218363A1 (de) * | 2012-10-09 | 2014-04-10 | Continental Automotive Gmbh | Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0374419A3 (de) * | 1988-12-21 | 1991-04-10 | International Business Machines Corporation | Verfahren und Anordnung zur wirkungsvollen Errichtung von Schleifen in Hardware und Mikrokodierung |
| JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
| US5805863A (en) * | 1995-12-27 | 1998-09-08 | Intel Corporation | Memory pattern analysis tool for use in optimizing computer program code |
| US5710913A (en) * | 1995-12-29 | 1998-01-20 | Atmel Corporation | Method and apparatus for executing nested loops in a digital signal processor |
| US5898865A (en) * | 1997-06-12 | 1999-04-27 | Advanced Micro Devices, Inc. | Apparatus and method for predicting an end of loop for string instructions |
| US6463582B1 (en) * | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
| US6453407B1 (en) * | 1999-02-10 | 2002-09-17 | Infineon Technologies Ag | Configurable long instruction word architecture and instruction set |
-
2002
- 2002-02-01 DE DE10204345A patent/DE10204345A1/de not_active Ceased
-
2003
- 2003-01-17 JP JP2003564729A patent/JP2005516301A/ja active Pending
- 2003-01-17 US US10/502,991 patent/US20050246571A1/en not_active Abandoned
- 2003-01-17 WO PCT/DE2003/000126 patent/WO2003065204A1/de not_active Ceased
- 2003-01-17 EP EP20030706230 patent/EP1470477A1/de not_active Withdrawn
-
2008
- 2008-10-22 US US12/256,236 patent/US20090070557A1/en not_active Abandoned
-
2009
- 2009-11-04 US US12/612,463 patent/US20100049949A1/en not_active Abandoned
Non-Patent Citations (1)
| Title |
|---|
| See references of WO03065204A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2003065204A1 (de) | 2003-08-07 |
| DE10204345A1 (de) | 2003-08-14 |
| US20090070557A1 (en) | 2009-03-12 |
| US20100049949A1 (en) | 2010-02-25 |
| JP2005516301A (ja) | 2005-06-02 |
| US20050246571A1 (en) | 2005-11-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69209888T2 (de) | Befehlablaufsteuerung für einen Rechner | |
| DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
| DE60115982T2 (de) | Verfahren und Vorrichtung zum Zuordnen funktioneller Einheiten in einem Mehrfachthread-VLIM-Prozessor | |
| DE69311330T2 (de) | Befehlsablauffolgeplanung von einem risc-superskalarprozessor | |
| DE3856220T2 (de) | Digitaler Signalprozessor der bedingte Mehrpunkt-Sprungbefehle im Pipelinemodus bearbeitet | |
| DE68929215T2 (de) | Datenprozessor | |
| DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
| DE69325086T2 (de) | Verfahren und System für spekulative Befehlsausführung | |
| DE69719235T2 (de) | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren | |
| DE3750625T2 (de) | Datenverarbeitungssystem mit zwei Ausführungseinheiten. | |
| DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
| DE68927218T2 (de) | Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor | |
| DE19506435C2 (de) | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten | |
| DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
| DE69835425T2 (de) | Verbesserter befehlszuteilungsmechanismus für eine geschützte vliw-architektur | |
| EP0825540B1 (de) | Prozessor mit Pipelining-Aufbau | |
| DE4430195B4 (de) | Verfahren zur Auswertung von Booleschen Ausdrücken | |
| DE2548720C2 (de) | Mikroprogramm-Steuerwerk | |
| EP1117037B1 (de) | Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads) | |
| EP1470477A1 (de) | Verfahren zur befehlsbearbeitung | |
| DE102015109662A1 (de) | Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms sowie computerimplementiertes Verfahren zur rechnergestützten Übersetzung eines die Funktionalität eines Steuerungsprogramms beschreibenden grafischen Modells | |
| DE102016108081A1 (de) | Mikroprozessor mit Zusatz-Befehlen für Binärsuche und zugehöriges Suchverfahren | |
| DE102007060783A1 (de) | Asynchroner Steuerungstransfer | |
| EP0537302B1 (de) | Verfahren zur bearbeitung eines benutzerprogramms auf einem parallelrechnersystem | |
| DE19945940C2 (de) | Verfahren und Vorrichtung zur Bearbeitung bedingter Sprungbefehle in einem Prozessor mit PIPELINE-Rechnerarchitektur |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20040722 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO |
|
| 17Q | First examination report despatched |
Effective date: 20070530 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: NXP SEMICONDUCTORS GERMANY GMBH |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: NXP B.V. |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20100803 |