EP1472628A1 - Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrens - Google Patents
Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrensInfo
- Publication number
- EP1472628A1 EP1472628A1 EP20030706302 EP03706302A EP1472628A1 EP 1472628 A1 EP1472628 A1 EP 1472628A1 EP 20030706302 EP20030706302 EP 20030706302 EP 03706302 A EP03706302 A EP 03706302A EP 1472628 A1 EP1472628 A1 EP 1472628A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- instruction
- database
- stored
- assigned
- circuit arrangement
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
Definitions
- the invention relates to a method for providing a design, test and / or development environment for a data processing circuit arrangement, in particular for a digital signal processor (DSP), and a system for carrying out such a method.
- DSP digital signal processor
- DSPs digital signal processors
- This system can automatically configure a processor by generating a description of a hardware implementation of the processor and a set of software development tools for programming the processor from the same configuration data that is kept, for example, in a database.
- This system can be used to optimize the hardware implementation and software tools in relation to various performance criteria and also allows the processor to be expanded.
- the object of the invention is to further increase the functionality of such a design, test and / or circuit environment for a data processing circuit arrangement.
- instructions of the circuit arrangement and their binary representations are stored in a database in a machine-readable manner, the assignment of a predetermined binary representation (instruction code, ie bit code) to a single instruction being designed to be changeable becomes.
- a predetermined binary representation instruction code, ie bit code
- the instruction and the assigned binary representation are not linked to each other.
- processors can be developed with reasonable effort, which are specialized and optimized for the processing of specific software applications.
- the removal according to the invention of the rigid separation of instruction (command) and associated binary representation allows software and hardware for the data-processing circuit arrangement to be developed in parallel.
- the instructions can first be defined so that all tools required for software development, such as assembler, linker, instruction set simulator, etc. can be provided.
- the hardware it is then possible to change the binary representations at any time and, for example, to optimize it with regard to memory requirements, power consumption of the respective instructions, etc.
- Hardware development can be carried out in parallel with software development without influencing it. Only at the end of both developments can these be merged by assigning the instruction data set to the binary representation set.
- the invention solves the problem by providing a system for carrying out the described method.
- This comprises means for storing instructions of the viewing arrangement and their binary representations in a machine-readable manner in a database, the assignment of a predefined binary representation (instruction code) to a single instruction being changeable, i.e. is not rigid, is designed.
- the degree of optimization of the circuit arrangement can be increased if instruction codes are assigned to the respective instructions depending on the specific task, in particular the software program to be processed.
- the invention achieves this by flexible and free assignment of the instructions to the respective binary representation, ie to the respective instruction code. It should be noted that shorter instruction codes require less storage space and can usually be executed faster. Shorter instruction codes for frequently occurring combinations of a command and certain argument values can be assigned, and longer bit codes for the command with other, less frequently occurring argument value combinations.
- the assignment of the binary representations to the instructions can, according to the invention, be computer-aided and determined automatically by analyzing the software program to be processed by the circuit arrangement with regard to the commands used and their arguments. Instructions with the same command can be assigned instruction codes of different bit widths and stored in the database.
- an instruction data record contains several binary representation records (instruction code records ) are assigned and stored in the database, each of which is adapted to a specific circuit arrangement.
- instruction code records are assigned and stored in the database, each of which is adapted to a specific circuit arrangement.
- This can be displayed, for example, in a corresponding information field in the database.
- the tools used recognize this and assign the corresponding instruction code set to the instruction data record.
- This can also be used, for example Assembler or the compiler remain unaffected by the changes in the hardware and can be used for different processors without having to recreate these tools.
- a structural component assigned to the instruction such as a register
- a structural component assigned to the instruction can be specified in the database for an instruction, which can be changed in addition to the actual result register (s) when the instruction is processed. For example, a so-called "zero flag" can be set in an arithmetic operation if the result is identical to zero.
- This information can then be used by the design and development tools which, for example, automatically optimize a software program that is to be executed on the data processing circuit arrangement. This optimization can consist in the parallelization of the execution of instructions. To do this, however, it is essential to store all changes that occur due to the execution of a single instruction in the processor in the database and to make them available for the described optimization. This can prevent user data from being accidentally overwritten when the instructions are processed.
- the database according to instructions that are assigned to certain binary representations, or according to binary representations that are assigned to specific instructions, is searched.
- These functionalities can be provided by a database client that can be controlled interactively and has access to the database.
- a programming manual for the data-processing circuit arrangement is automatically created with the aid of a computer and by querying information about the circuit arrangement stored in the database.
- the idea is used to specify the circuit arrangement centrally by means of its instruction data record and to automatically generate the tool therefrom, whereby changes to the instruction data record can therefore be automatically taken into account when the manual is subsequently re-created.
- the programming manual generator used is hardware-independent and is only tailored to a given hardware architecture.
- a programming manual In order to be able to cover the various uses of a programming manual, it can be provided that this is generated both in a form suitable for screen display and in a form suitable for printing.
- a computer-storable file is generated, which contains the information about the programming manual. According to the invention, therefore, the programming manual should be equated with such a file.
- the desired layout by the user in the tool for creating the programming manual i.e. the programming manual generator can be selected.
- an instruction of the instruction data record stored in the database comprises at least a name, an optional description assigned to the instruction and a list of the arguments, which are assigned to the instruction.
- each argument is specified in the instruction record with an assigned name, an optional description and a range of values assigned to the argument. It is particularly advantageous if each instruction is additionally assigned a machine-readable description of its functionality, for example in the form of a description in a high-level language, which can be processed within the design, test and / or development environment.
- a binary representation can also be included for each possible instruction, the fixed parts, in particular the operation code of the bit code, being able to be designated by a template.
- each instruction code has the binary representation of all arguments of the command in order to describe the variable components of the bit code, so that in principle all possible instruction codes, i.e. a complete set of instruction codes is stored in the database on which the further design, test and development steps can be based.
- Fig. 4 shows the computer-aided use of the generated programming manual.
- the following description relates to a computer-aided design and testing environment for a digital signal processor, within which programs for the processor can also be developed.
- the core of this environment is a database from which the various tools such as compilers, assemblers, debuggers, simulators, profilers, etc. can be generated automatically.
- the database contains machine-readable information with which the digital signal processor is completely described.
- An interactively controllable database client is set up, which accesses the database and makes the information in the database accessible to other parts of the environment or uses it to generate the tools mentioned. For example, assembler and compiler access the database via the database client in order to obtain the necessary information for assembling or compiling a program.
- FIG. 1 shows exemplary information that can be queried within the design, test and / or development environment and is stored in the database on the basis of two instructions, ie commands that are processed in the ALU (arithmetic logic unit) of the processor.
- the first instruction is called ADD and concerns the addition of two register words, see Fig. 1, wherein the number of arguments is given in the second column. This is followed by the argument or arguments in the next column, in the above case the possible registers RA and RB.
- a description of its functionality is given for each instruction in a C program code, which can easily be recorded and processed in terms of data technology within the described design, test and development environment. These functionalities are specified in the "Action" column.
- each instruction is also linked to at least one binary representation (bit code), which is also referred to as an instruction code.
- bit code which is also referred to as an instruction code.
- this has a length of 20 bits and consists of 3 parts, which in the case of the ADD instruction are referred to as ADD opcode, RA code and RB code, the former being 6 bits wide and the two registers Codes have a width of 7 bits each.
- a SUB command is specified which specifies a subtraction of the content of register A from register B, a subtraction of register C from a constant c # or a subtraction of the constant c # from register C.
- the instruction SUB has a different opcode depending on the operands, the instruction code of the first subtraction having a length of 20 bits and the instruction codes of the other two subtractions comprising 24 bits in order to cover a larger value range of the constant c #.
- the binary representation of all arguments of the respective commands are stored in the database in order to describe the variable parts of the bit code.
- this is the binary representation of register A (RA code), the binary representation of register B (RB code), the binary representation Representation of the register C (RC code) and the binary representation of all possible values of the constant c # (c # code), so that all valid instruction codes can be determined from the information in the database.
- each argument is specified in the database with its name, a description and, if available, an associated range of values.
- FIG. 2 shows a schematic representation of the transfer of the instructions (lower left quadrant) in an assembler program to their assigned binary representations (bit codes) and its conversion into executable commands in the processor (lower right quadrant).
- the assembler program is converted by means of an assembler into a bit code sequence stored in a file, which is shown by the arrow labeled I.
- This bit code sequence is loaded into the processor as a binary bit code sequence by the assembler program, which is represented by the arrow II.
- the binary bit code sequence is decoded in the processor for executing the commands in the processor (III).
- the bit codes are used as a medium for transporting the commands from the software (assembler program) used in the executing processor.
- bit codes perform an interface function between the software and the executing hardware, so that the software is adapted to the hardware via the bit codes.
- many of the development tools used remain unchanged due to the reallocation of the binary representations given by the second processor to the instructions, since at the level of Program source codes, ie for example for the assembler and the high level programming language used, do not change anything. Even if such tool tools can be created automatically in a conventional environment, the processor replacement in any case involves additional work due to the necessary adjustment.
- this can easily be circumvented by exchanging the binary representation set assigned to the respective processor. The adaptation to the new processor is thus carried out by a new assignment of the instructions to the binary representations of the new processor, and there is no need to redesign the essential tools of the development and test environment.
- the instruction codes can be assigned to the respective instructions in such a way that they are processed by the processor in a time-optimized manner. If a specific command within a given program is always executed with the same argument, an instruction code of short bit length is assigned to this special instruction so that the code takes up little memory space on the one hand and can be executed faster on the other.
- Another example relates to an add command in which a target register and the two numbers to be added are specified as arguments. Because in the example the two numbers are common due to the program are within -8 to 7, the programming tool then provides an instruction code of 10 bits. In other cases, in which the numbers encompass a larger range of values, a bit code of 20 bits is automatically provided for the same command.
- the processing of the program on the digital signal processor is computer-aided in terms of time and memory.
- the bit codes can be calculated based on the argument value x.
- this also includes information about structural components of the processor, including the data paths between the structural components, and the specification of structural components that are influenced when certain instructions are executed. This does not affect the source or target register of an instruction, but, for example, a flag register, which is also changed due to the special hardware design when the instruction is executed.
- the database contains the command "Copy ⁇ the register C assigned as the structural component, which is changed verän- in the execution of the command.
- FIG. 3 shows in a block diagram a section of the design, test and development environment for executing a method according to the invention for creating a programming manual for a digital signal processor.
- An instruction data record of the processor as described is available in the database 1 and is read out with the aid of a computer and is used by a programming manual generator 2, which is designed as software, and is used to create the manual 4.
- This programming manual serves as a guide for a programmer who writes application software for the processor.
- the programming manual generator can be configured by user input 3.
- an HTLM format can be selected as the first format, so that the created manual 4 can be used directly for screen display without reformatting.
- the manual generator creates a file with individual HTLM image screen pages that can be called up within an integrated software environment.
- the user input 3 can also stipulate that the programming manual generator 2 generates the manual in a format which is suitable for printing. In the present case, a LaTeX file is then generated, with the aid of which a programming manual can be produced on paper.
- the database client accesses the database by means of a pointer, with the aid of which data can be queried directly from the database when using the programming manual, so that this information does not have to be stored in the manual.
- a new programming manual 4 according to FIG. 3 does not have to be created automatically in the event of a change in the database 1, but rather the changed information is taken into account when using the original manual.
- 4 shows in a schematic diagram the use of such an electronic programming manual 4.
- a software program also provided by the programming manual generator, runs on a computer 5 and uses the manual 4 to display desired information on a screen 6.
- the user can query the desired information from the manual using a keyboard 7. If, for example, the user requests the index of the manual, the manual contains a reference to predetermined information units which are read out from the database 1 by the computer 5, processed using information technology and, as desired, displayed as a list of keywords on the screen 6.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Stored Programmes (AREA)
- Image Processing (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10205523A DE10205523A1 (de) | 2002-02-08 | 2002-02-08 | Verfahren zum Bereitstellen einer Entwurfs-, Test- und Entwicklungsumgebung sowie ein System zur Ausführung des Verfahrens |
| DE10205523 | 2002-02-08 | ||
| PCT/DE2003/000361 WO2003067476A1 (de) | 2002-02-08 | 2003-02-07 | Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrens |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1472628A1 true EP1472628A1 (de) | 2004-11-03 |
Family
ID=27634859
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP20030706302 Withdrawn EP1472628A1 (de) | 2002-02-08 | 2003-02-07 | Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrens |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US7404153B2 (de) |
| EP (1) | EP1472628A1 (de) |
| JP (1) | JP2005517246A (de) |
| AU (1) | AU2003208286A1 (de) |
| DE (1) | DE10205523A1 (de) |
| WO (1) | WO2003067476A1 (de) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101993858B1 (ko) * | 2018-10-05 | 2019-06-27 | 주식회사 엔터핀 | 프로그램 개발 시스템 및 이를 이용한 개발 방법 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
| US5761740A (en) * | 1995-11-30 | 1998-06-02 | Unisys Corporation | Method of and apparatus for rapidly loading addressing registers |
| JPH11296381A (ja) * | 1998-04-08 | 1999-10-29 | Matsushita Electric Ind Co Ltd | 仮想マシン及びコンパイラ |
| EP0953898A3 (de) * | 1998-04-28 | 2003-03-26 | Matsushita Electric Industrial Co., Ltd. | Prozessor zur Ausführung von Befehlen aus dem Speicher mittels eines Programmzählers und Kompiler, Assembler, Programmverbinder und Fehlerbeseitiger für einen solchen Prozessor |
| US6658552B1 (en) * | 1998-10-23 | 2003-12-02 | Micron Technology, Inc. | Processing system with separate general purpose execution unit and data string manipulation unit |
| US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
| US8121828B2 (en) * | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
| EP1159693A2 (de) * | 1999-02-05 | 2001-12-05 | Tensilica, Inc. | Automatisches prozessorerzeugungssystem und -verfahren zur entwurf eines konfigurierbaren prozessors |
| US7036106B1 (en) * | 2000-02-17 | 2006-04-25 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
| US7966421B2 (en) * | 2000-06-21 | 2011-06-21 | SAtech Group, A.B. Limited Liability Company | Method and apparatus for logically expanding the length of a search key |
| US6658458B1 (en) * | 2000-06-22 | 2003-12-02 | Cisco Technology, Inc. | Cascading associative memory arrangement |
| US7054855B2 (en) * | 2001-07-03 | 2006-05-30 | International Business Machines Corporation | Method and system for performing a pattern match search for text strings |
| US20030140337A1 (en) * | 2001-12-21 | 2003-07-24 | Celoxica Ltd. | System, method, and article of manufacture for data transfer reporting for an application |
| KR100718754B1 (ko) * | 2002-01-31 | 2007-05-15 | 에이알씨 인터내셔널 | 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서 |
-
2002
- 2002-02-08 DE DE10205523A patent/DE10205523A1/de not_active Withdrawn
-
2003
- 2003-02-07 WO PCT/DE2003/000361 patent/WO2003067476A1/de not_active Ceased
- 2003-02-07 EP EP20030706302 patent/EP1472628A1/de not_active Withdrawn
- 2003-02-07 JP JP2003566754A patent/JP2005517246A/ja active Pending
- 2003-02-07 AU AU2003208286A patent/AU2003208286A1/en not_active Abandoned
- 2003-02-07 US US10/503,909 patent/US7404153B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
| Title |
|---|
| See references of WO03067476A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2003067476A1 (de) | 2003-08-14 |
| AU2003208286A1 (en) | 2003-09-02 |
| DE10205523A1 (de) | 2003-08-28 |
| US7404153B2 (en) | 2008-07-22 |
| JP2005517246A (ja) | 2005-06-09 |
| US20050132307A1 (en) | 2005-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0502857B1 (de) | Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems | |
| DE112005001277B4 (de) | Verfahren und Vorrichtung zum Vektorisieren mehrerer Eingabebefehle | |
| DE69031758T2 (de) | Verfahren zur Organisation von und zum Zugriff auf Produkt beschreibenden Daten in Zusammenhang mit einem technischen Prozess | |
| DE602004003361T2 (de) | System und verfahren zur erzeugung von verfeinerungskategorien für eine gruppe von suchergebnissen | |
| DE3855475T2 (de) | Software-Verwaltungsstruktur | |
| DE69329265T2 (de) | Graphischer Datenbankzugriff | |
| EP1176482A1 (de) | Verfahren und Computerprogramm zum Herstellen einer Regelung oder Steuerung | |
| DE19705955A1 (de) | Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung | |
| DE60103521T2 (de) | Vorladen von klassen in einer datenverarbeitungseinrichtung ohne virtueller speicherverwalter | |
| DE69710478T2 (de) | System zur übersetzung von dateien mit visuellen wiedergabeobjekten und methode zur durchführung | |
| EP1573599A2 (de) | Hilfesystem, automatisierungsvorrichtung mit einem hilfesystem sowie verfahren zum bereitstellen von hilfedaten | |
| DE69433907T2 (de) | Autonomes, evolutionsartiges Hardwareentwurfssystem | |
| DE112020000805T5 (de) | Kontrolle für „ziffernvalidierungsüberprüfung“ in anweisungsausführung | |
| EP3572956A1 (de) | Erstellung eines interdisziplinären simulationsmodells | |
| DE69907714T2 (de) | Komponentbasiertes quellcodegeneratorverfahren | |
| DE102012217315A1 (de) | Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung | |
| DE69329672T2 (de) | Ergänzung eines lexikalen Umwandlers durch Analogie | |
| EP1738257B1 (de) | Verfahren zum vermeiden von dateninkonsistenz zwischen zugriffen verschiedener funktionen einer anwendung auf eine globale variable in einer datenverarbeitungsanlage | |
| DE102019008598A1 (de) | Identifikation und Visualisierung von Assoziationen zwischen Code, der von einem Modell generiert ist, und Quellen, welche die Codegeneration beeinflussen | |
| DE10054001A1 (de) | Automatisierte Schnittstellengenerierung für Computerprogramme in unterschiedlichen Umgebungen | |
| DE202015009280U1 (de) | Integrierte domänenspezifische Sprachen als erstklassige Codeartefakte | |
| EP1472628A1 (de) | Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrens | |
| DE102022116011A1 (de) | Verfahren zur Erzeugung von Quellcode | |
| DE112018001458T5 (de) | Elektronische datenbank und verfahren zu deren erstellung | |
| DE112014002696T5 (de) | Verfahren und System für effizientes Sortieren in einer relationalen Datenbank |
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 |
|
| RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: WEISS, MATTHIAS Inventor name: SCHWANN, PAUL |
|
| 17Q | First examination report despatched |
Effective date: 20050509 |
|
| 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: 20110901 |