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 verfahrens

Info

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
Application number
EP20030706302
Other languages
English (en)
French (fr)
Inventor
Paul Schwann
Matthias Weiss
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
Philips Semiconductors Dresden AG
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 Philips Semiconductors Dresden AG filed Critical Philips Semiconductors Dresden AG
Publication of EP1472628A1 publication Critical patent/EP1472628A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding 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

Um die Funktionalität einer rechnergestützten Entwurfs-, Test- und/oder Entwicklungsumgebung für eine datenverarbeitende Schaltungsanordnung zu erhöhen, wird vorgeschlagen, dass In-struktionen der Schaltungsanordnung mit ihren binären Repräsen-tationen maschinenlesbar in einer Datenbank abgelegt werden, wobei die Zuordnung einer vorgegebenen binären Repräsentation (Instruktionscode) zu einer Instruktion veränderbar angelegt wird. Auf diese Weise lassen sich Prozessoren entwickeln, die auf die Abarbeitung spezifischer Softwareanwendungen speziali-siert und optimiert sind. Die Erfindung betrifft ferner eine entsprechend dem Verfahren ausgebildete, rechnergestützte Entwurfs-, Test- und/oder Schal-tungsumgebung. (Fig. 3)

Description

Verfahren zum Bereitstellen einer Entwurfs-, Test- und. Entwicklungsumgebung sowie ein System zur Ausführung des
Verfahrens
Die Erfindung betrifft ein Verfahren zum Bereitstellen einer Entwurfs-, Test- und/oder Entwicklungsumgebung für eine datenverarbeitende Schaltungsanordnung, insbesondere für einen digitalen Signalprozessor (DSP) sowie ein System zur Durchführung eines derartigen Verfahrens .
Die Bereitstellung von geeigneten Signalprozessoren hat sich als Schlüssel für die Weiterentwicklung der Mobilfunk- und der multimedialen Informationstechnologie herausgestellt. Der Einsatz derartiger Prozessoren reicht von der Basisbandverarbeitung, der Medienkodierung bis hin zur Protokollverarbei- tung, wobei der Fortschritt auf dem Gebiet entscheidend von der Bereitstellung noch leistungsfähigeren digitalen Signalprozessoren (DSPs) abhängt, welche die geforderte hohe Rechenkomplexität befriedigen können.
Der Bereitstellung von geeigneten Entwurfs-, Test-, aber auch Entwicklungsumgebungen kommt dabei eine entscheidende Bedeutung zu. Die hohe Komplexität derartiger Prozessoren, die sich aus vielen Millionen Schaltungselementen zusammensetzen können, ist ohne Computerunterstützung nicht mehr handhabbar. Insbesondere hat sich herausgestellt, dass beim Vorsehen einer integrierten Entwurfs- und Testumgebung beispielsweise Änderungen in den vom Prozessor bereitzustellenden Funktionen automatisch und rechnergestützt auch in der Hardware-Umsetzung, d.h. in der Beschreibung der Rechnerarchitektur berücksichtigt werden können. Weiterhin hat eine derartige konstruktive Umgestaltung des Prozessors auch direkten Einfluss auf die verwendeten Software- Werkzeuge, beispielsweise den Compiler, den Assembler, den Debugger, den Simulator und den Profiler, die bei einer rechnerunterstützten Entwurfs- und Entwicklungsumgebung automatisch angepasst werden können. Ein derartiges, komplexes System ist in der WO 00/46704 offenbart, in der ein automatisches Prozessorerzeugungssystem zum Entwerfen eines konfigurierbaren Prozessors beschrieben ist. Dieses System kann automatisch einen Prozessor konfigurieren durch das Erzeugen einer Beschreibung einer Hardware-Implementation des Prozessors und eines Satzes von Software-Entwicklungswerkzeugen zum Programmieren des Prozessors aus den gleichen Konfigurationsdaten, die beispielsweise in einer Datenbank gehalten werden. Dieses System kann zur Optimierung der Hardware-Implementation und der Software- Werkzeuge in Bezug auf verschiedene Leistungskriterien einge- setzt werden und erlaubt darüber hinaus auch die Erweiterbar- keit des Prozessors.
Der Erfindung liegt die Aufgabe zugrunde, die Funktionalität einer derartigen Entwurfs-, Test- und/oder Schaltungsumgebung für eine datenverarbeitende Schaltungsanordnung weiter zu erhöhen.
Diese Aufgabe wird durch die Erfindung schon mit einem Verfahren gemäß Anspruch 1 und einem System zur Durchführung des Ver- fahrens nach Anspruch 13 gelöst.
Um eine flexiblere Anpassung der Schaltungsanordnung an spezifische Anwendungen zu erreichen, ist erfindungsgemäß vorgesehen, dass Instruktionen der Schaltungsanordnung und ihre binäre Repräsentationen maschinenlesbar in einer Datenbank abgelegt werden, wobei die Zuordnung einer vorgegebenen binären Repräsentation (Instruktionscode, d.h. Bitcode) zu einer einzelnen Instruktion veränderbar ausgelegt wird. Dies bedeutet, dass Instruktion und zugeordnete binäre Repräsentation nicht fest mit- einander verbunden sind. Stattdessen können beispielsweise nach Bedarf einer Instruktion bzw. einer Instruktionsklasse mit gleichem Kommando optimierte binäre Repräsentationen, d.h. Instruktionscodes flexibel zugeordnet werden, um eine schnellere Ausführung des Instruktionscodes bei einer spezifischen Anwendung zu erreichen. Nach dem Stand der Technik ist dies nicht möglich, da Herkömmlicherweise ein Bitcode fest mit einer Instruktion verbunden ist. Auf die erfindungsgemäße Art lassen sich mit vertretbaren Aufwand Prozessoren entwickeln, die auf die Abarbeitung spezifischer Softwareanwendungen spezialisiert und optimiert sind. Weiterhin erlaubt die erfindungsgemäße Auf- hebung der starren Trennen von Instruktion (Kommando) und zugehöriger binärer Repräsentation, Software und Hardware für die datenverarbeitende Schaltungsanordnung parallel zu entwickeln. Beispielsweise können zunächst die Instruktionen festgelegt werden, damit alle zur Softwareentwicklung notwendigen Werkzeu- ge wie Assembler, Linker, Instruktionssatzsimulator etc. bereitgestellt werden können. Bei der Hardwarentwicklung ist es dann möglich, die binären Repräsentationen jederzeit zu ändern und zum Beispiel im Hinblick auf Speicherbedarf, Stromverbrauch der jeweiligen Instruktion etc. zu optimieren. Die Hardwareent- wicklung kann parallel zur Softwareentwicklung durchgeführt werden, ohne diese zu beeinflussen. Erst zum Schluss beider Entwicklungen können diese durch die Zuordnung des Instruktionsdatensatzes zum binären Repräsentationssatz zusammengeführt werden.
Anordnungsseitig löst die Erfindung die Aufgabe mit einer Bereitstellung eines Systems zur Durchführung des beschriebenen Verfahrens . Dieses umfasst Mittel zum Speichern von Instruktionen der Sehaltungsanordnung und ihrer binäre Repräsentationen maschinenlesbar in einer Datenbank, wobei die Zuordnung einer vorgegebenen binären Repräsentation (Instruktionscode) zu einer einzelnen Instruktion veränderbar, d.h. nicht starr, ausgelegt ist.
Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben. Wie obenstehend schon erläutert, kann der Optimierungsgrad der Schaltungsanordnung erhöht werden, wenn Instruktionscodes in Abhängigkeit der spezifischen Aufgabe, insbesondere des ab- zuarbeitenden Softwareprogramms den jeweiligen Instruktionen zugeordnet werden. Dies erreicht die Erfindung durch eine flexible und freie Zuordnung der Instruktionen zur jeweiligen binären Repräsentation, d.h. zum jeweiligen Instruktionscode. Hierbei ist zu beachten, dass kürzere Instruktionscodes weniger Speicherplatz benötigen und i.d.R. schneller ausgeführt werden können. Dabei können kürzere Instruktionscodes für häufig auftretende Kombinationen eines Kommandos und bestimmter Argumentwerte vergeben werden und längere Bitcodes für das Kommando mit anderen, seltener auftretenden Argumentwertkombinationen. Die Zuweisung der binären Repräsentationen zu den Instruktionen (o- der umgekehrt) kann dabei erfindungsgemäß rechnergestützt und automatisch ermittelt werden, indem das von der Schaltungsanordnung abzuarbeitende Softwareprogramm hinsichtlich der benutzten Kommandos und deren Argumente analysiert wird. Dabei können Instruktionen mit gleichem Kommando Instruktionscodes unterschiedlicher Bitbreite zugeordnet und in der Datenbank abgelegt werden.
Damit die Entwurfs-, Test- und/oder Entwicklungswerkzeuge, ins- besondere die verschiedenen So tware-Programme auf der Ebene des jeweiligen Programmquellcodes (Mnemonik/Hochsprache) bei unterschiedlichen Schaltungsanordnungen kompatibel bleibt, kann vorgesehen sein, dass einem Instruktionsdatensatz mehrere binären Repräsentationssätze (Instruktionscodesätze) zugeordnet und in der Datenbank abgelegt werden, die jeweils einer spezifischen Schaltungsanordnung angepasst sind. Beim Austausch der datenverarbeitenden Schaltungsanordnungen kann dies beispielsweise in einem entsprechenden Informationsfeld in der Datenbank angezeigt werden. Die verwendeten Werkzeuge erkennen dies und ordnen dem Instruktionsdatensatz den entsprechenden Instruktionscodesatz zu. Damit können beispielsweise auch der Assembler oder der Compiler von den Änderungen in der Hardware unberührt bleiben und für verschiedene Prozessoren verwendet werden, ohne dass diese Werkzeuge neu erstellt werden müssen.
Um die Entwicklungswerkzeuge für die Software schnell an geänderte Bitcodes und/oder Instruktionen anpassen zu können, kann eine maschinenverständliche Beschreibung dieser in der Datenbank abgelegt sein. Mit herkömmlichen Datenbanken ist dies jedoch nicht umsetzbar. Da die Bedeutung einer Instruktion nicht statisch ist, sondern z.B. von den Argumentwerten der Instruktion abhängt, kann die maschinenverständliche Beschreibung vorteilhaft in Form einer Funktion y=f (x) in der Datenbank abgelegt sein. Zwar ist es erfindungsgemäß auch umsetzbar, für jeden möglichen Argumentwert x das zugehörige y, d.h. die aschi- nenverständliche Beschreibung der Instruktion in der Datenbank abzulegen, dies würde jedoch zu einer sehr unhandlichen Größe der Datenbank führen. Besonders vorteilhaft ist es jedoch, wenn ein funktionaler Zusammenhang zwischen Argumentwert und Bitcode einer Instruktion festgelegt und abgespeichert wird, aus wel- chem sich in Abhängigkeit des Argumentwertes der Bitcode der Instruktion über eine Berechnung ermitteln lässt.
Zweckmäßig ist es, wenn in der Datenbank zusätzlich Strukturkomponenten der Schaltungsanordnung einschließlich von Daten- pfaden zwischen den Strukturkomponenten spezifiziert werden. Dabei kann in der Datenbank für eine Instruktion eine der Instruktion zugeordnete Strukturkomponente wie beispielsweise ein Register angegeben sein, das neben den bzw. dem eigentlichen Ergebnisregister beim Abarbeiten der Instruktion verändert wer- den kann. Beispielsweise kann bei einer arithmetischen Operation ein sogenanntes "Zero-Flag" gesetzt werden, wenn das Ergebnis identisch Null ist. Ferner können Instruktionen vorhanden sein, bei deren Abarbeitung der Inhalt von Registern systembedingt überschrieben wird, obwohl diese Register keine Ergebnis- register der Instruktion sind. Diese Informationen lassen sich dann von den Entwurfs- und Entwicklungswerkzeugen verwenden, welche beispielsweise ein Softwareprogramm automatisch optimieren, das auf der datenverarbeitenden Schaltungsanordnung ausgeführt werden soll. Diese Optimierung kann in der Parallelisie- rung der Ausführung von Instruktionen bestehen. Hierzu ist es jedoch unabdingbar, alle Veränderungen, die durch das Ausführen einer einzelnen Instruktion im Prozessor auftreten, in der Datenbank abzulegen und für die beschriebene Optimierung bereitzustellen. Somit kann verhindert werden, dass bei der Abarbeitung der Instruktionen unbeabsichtigt Nutzdaten überschrie- ben werden.
Zur Bereitstellung von für die Entwurfs-, Test- und/oder Entwicklungsumgebung benötigte Funktionalitäten wie Assembler, Disassebler etc. kann vorgesehen sein, dass die Datenbank nach Instruktionen, die bestimmten binären Repräsentationen zugeordnet sind, oder nach binären Repräsentationen, welche bestimmten Instruktionen zugeordnet sind, durchsucht wird. Dabei können diese Funktionalitäten durch einen Datenbankklient bereitgestellt werden, der interaktiv steuerbar ist und Zugriff auf die Datenbank besitzt.
Um insbesondere das Arbeiten mit dem erstellten Prozessor zu erleichtern, wird erfindungsgemäß vorgeschlagen, dass ein Programmierhandbuch für die datenverarbeitende Schaltungsanordnung rechnergestützt unter Abfrage von in der Datenbank abgelegten Informationen über die Schaltungsanordnung automatisch erstellt wird. Somit wird für die Erzeugung des Programmierhandbuchs die Idee genutzt, die Schaltungsanordnung zentral durch deren Instruktionsdatensatz zu spezifizieren und hieraus automatisch das Werkzeug zu generieren, wobei demnach Änderungen des Instruktionsdatensatzes automatisch bei einer nachfolgenden Neuerstellung des Handbuchs in diesem berücksichtigt werden können.
Um Programmierhandbücher für eine Vielzahl von Schaltungsanordnungen beziehungsweise Prozessoren erzeugen zu können, kann vorgesehen sein, dass der verwendete Programmierhandbuchgenerator Hardware-unabhängig ist und nur auf eine vorgegebene Hardware-Architektur zugeschnitten ist.
Um die verschiedenen Verwendungen eines Programmierhandbuchs abdecken zu können, kann vorgesehen sein, dass dieses sowohl in einer zur Bildschirmdarstellung geeigneten Form als auch in einer zur Druckerstellung geeigneten Form erzeugt wird. In der Regel wird dabei eine Computerspeicherbare Datei erzeugt, wel- ehe die Information des bzw. zum Programmierhandbuch enthält. Erfindungsgemäß kann somit u.U. das Programmierhandbuch mit einer derartigen Datei gleichzusetzen sein.
Damit der Anwender insbesondere auf die Gestaltung des Pro- grammierhandbuchs Einfluss nehmen kann, kann vorgesehen sein, dass das gewünschte Layout durch den Anwender im Werkzeug zur Erstellung des Programmierhandbuchs, d.h. dem Programmierhandbuchgenerator vorgewählt werden kann.
Besonders vorteilhaft ist es, wenn bei der Verwendung des Programmierhandbuchs in der Datenbank abgelegte Informationen rechnergestützt abgerufen werden. Damit kann erreicht werden, dass unter Umständen die Durchführung von Veränderungen im Instruktionsdatensatz nicht notwendigerweise eine Neuerstellung des Programmierhandbuchs nach sich ziehen muss, da die Änderungen durch den direkten Bezug auf die Datenbank bei der beschriebenen, rechnergestützten Verwendung des Programmierhandbuchs mit berücksichtigt werden. Da die Information an zentraler Stelle abgefragt werden kann, ist der Umfang des ei- gentlichen Programmierhandbuchs im Vergleich zu herkömmlichen Programmiehandbüchern relativ gering. Der Vorteil eines derartigen Bezugs vom Programmierhandbuch auf die Datenbank zeigt sich beispielsweise bei der Bereitstellung einer Suchfunktion, bei der Erstellung eines Indexes oder bei der Visualisierung von Informationen für den Anwender. Dieser Bezug vom Handbuch auf die Datenbank bzw. auf Informationen in der Datenbank kann beispielsweise durch Zeiger erfolgen. Ein solches Programmierhandbuch kann in einer Online-Fassung vorteilhaft auch durch den obenstehend erläuterten interaktiv steuerbaren Datenbankklient bereitgestellt werden, der Zugriff auf die in der Daten- bank abgelegten Informationen besitzt.
Um die notwendigen Informationen für ein System zur Bereitstellung einer Entwurfs-, Test- und/oder Entwicklungsumgebung zur Verfügung zu stellen, umfasst eine Instruktion des in der Datenbank abgelegten Instruktionsdatensatzes zumindest eine Bezeichnung, eine der Instruktion zugeordnete, optionale Beschreibung sowie eine Liste der Argumente, welche der Instruktion zugeordnet sind. Darüber hinaus ist im Instruktionsdatensatz jedes Argument mit einer zugeordneten Bezeichnung, einer optionalen Beschreibung sowie einem dem Argument zugeordneten Wertebereich angegeben. Besonders vorteilhaft ist es, wenn jeder Instruktion zusätzlich eine maschinenlesbare Beschreibung Ihrer Funktionalität, beispielsweise in Form einer Beschreibung in einer Hochsprache, zugeordnet ist, die innerhalb der Ent- wurfs-, Test- und/oder Entwicklungsumgebung verarbeitet werden kann. Wie obenstehend schon erläutert, kann weiterhin eine binäre Repräsentation (Instruktionscode) für jede mögliche Instruktion umfasst sein, wobei die festen Anteile, insbesondere der Operationscode des Bitcodes durch eine Vorlage bezeichnet sein kann. Weiterhin kann auch vorgesehen sein, dass jeder Instruktionscode die binäre Repräsentation aller Argumente des Kommandos aufweist, um die variablen Anteile des Bitcodes zu beschreiben, sodass prinzipiell alle möglichen InstruktionsCodes, d.h. ein vollständiger Instruktionscodesatz in der Daten- bank abgelegt ist, auf den die weiteren Entwurfs-, Test- bzw. Entwicklungsschritte aufsetzen können.
Die Erfindung wird im Folgenden durch das Beschreiben einiger Ausführungsformen unter Bezugnahme auf die beiliegenden Zeich- nungen erläutert, wobei Fig. 1 eine beispielhafte Form der Speicherung zweier Instruktionen in der Datenbank,
Fig. 2 in einer Prinzipskizze die Transformation der Komman- dos in die zugeordneten Instruktionscodes und deren
Übertragung in den Prozessor zur Ausführung der Kommandos ,
Fig. 3 in einem Blockschaltbild die Erzeugung eines Program- mierhandbuchs ,
Fig. 4 das rechnergestützte Verwenden des erzeugten Programmierhandbuchs zeigt.
Die nachfolgende Beschreibung bezieht sich auf eine rechnergestützte Umgebung zum Entwerfen und Testen für einen digitalen Signalprozessor, innerhalb dessen auch Programme für den Prozessor entwickelt werden können. Kern dieser Umgebung ist eine Datenbank, aus welcher automatisch die verschiedenen Tools wie Compiler, Assembler, Debugger, Simulator, Profiler etc. erzeugbar sind. Die Datenbank umfasst maschinenlesbare Informationen, mit welcher der digitale Signalprozessor vollständig beschrieben ist. Dabei ist ein interaktiv steuerbarer Datenbankklient eingerichtet, welcher auf die Datenbank zugreift und die Infor- mationen der Datenbank anderen Teilen der Umgebung zugänglich macht bzw. zur Erzeugung der genannten Tools verwendet. Beispielsweise greifen Assembler und Compiler über den Datenbankklient auf die Datenbank zu, um die notwendigen Informationen zum Assemblieren bzw. Kompilieren eines Programms zu erhalten.
Beispielhafte, innerhalb der Entwurfs-, Test- und/oder Entwicklungsumgebung abfragbare Information, die in der Datenbank abgelegt ist, zeigt Fig. 1 anhand zweier Instruktionen, d.h. Kommandos, die in der ALU (arithmetic logic unit) des Prozessors abgearbeitet werden. Die erste Instruktion ist als ADD bezeichnet und betrifft die Addition von zwei Registerwörtern, siehe Fig. 1, wobei die Anzahl der Argumente in der zweiten Spalte angegeben ist. Danach folgt in der nächsten Spalte die Angabe des Arguments bzw. der Argumente, im vorstehenden Fall die Angabe der möglichen Register RA und RB. Weiterhin ist zu jeder Instruktion eine Beschreibung ihrer Funktionalität in einem C- Programmcode angegeben, der leicht innerhalb der beschriebenen Entwurfs-, Test- und Entwicklungsumgebung datentechnisch er- fasst und weiterverarbeitet werden kann. Diese Funktionalitäten sind in der Spalte "Aktion" angegeben. Für den ADD-Befehl be- deutet des, dass der Inhalt des ersten angegebene Registers (#1) zum Inhalt des zweiten angegebenen Registers (#2) addiert wird, wobei das Ergebnis im ALU-Ergebnisregister steht. Jede Instruktion ist weiterhin mit zumindest einer binären Repräsentation (Bitcode) verknüpft, die auch als InstruktionsCode be- zeichnet wird. Dieser besitzt im beschriebenen Beispiel eine Länge von 20 Bit und besteht aus 3 Anteilen, die im Falle der ADD-Instruktion mit ADD-Opcode, RA-Code und RB-Code bezeichnet sind, wobei ersterer eine Breite von 6 Bit und die beiden Register-Codes eine Breite von jeweils 7 Bit aufweisen.
In der zweiten Zeile ist ein SUB-Befehl angegeben, der eine Subtraktion des Inhalts des Registers A vom Register B, eine Subtraktion des Registers C von einer Konstanten c# oder einer Subtraktion der Konstanten c# vom Register C festlegt. Zur Speicheroptimierung weist die Instruktion SUB je nach Operanden einen unterschiedlichen Opcode auf, wobei der Instruktionscode der ersten Subtraktion eine Länge von 20 Bit aufweist, und die Instruktionscodes der beiden anderen Subtraktionen 24 Bit umfassen, um einen größeren Wertebereich der Konstanten c# abzu- decken.
Ferner sind in der Datenbank die binäre Repräsentation aller Argumente der jeweiligen Kommandos abgelegt, um die variablen Anteile des Bitcodes zu beschreiben. Im Beispiel ist dies folg- lieh die binäre Repräsentation des Registers A (RA-Code) , die binäre Repräsentation des Registers B (RB-Code) , die binäre Repräsentation des Registers C (RC-Code) und die binäre Repräsentation aller möglichen Werte der Konstante c# (c#-Code) , so- dass alle gültigen Instruktionscodes aus den Informationen in der Datenbank ermittelbar sind.
Weiterhin ist jedes Argument in der Datenbank mit seiner Bezeichnung, einer Beschreibung sowie, falls vorhanden, einem zugehörigen Wertebereich angegeben.
Es sei darauf hingewiesen, dass zwar in Fig. 1 die Instruktionen zusammen mit deren binären Repräsentationen dargestellt sind, in der Datenbank ist jedoch eine Zuordnung einer bestimmten Instruktion zu einer bestimmten binären Repräsentation nicht starr, sondern frei festlegbar. Dies bedeutet, dass ins- besondere während des Entwurfs und des Testens des Prozessors, aber auch während der Entwicklung eines Programms für den Prozessor die den einzelnen Instruktionen zugeordneten binären Repräsentationen verändert werden können, um bestimmte Leistungsparameter des Prozessors, beispielsweise die Ausführge- schwindigkeit zu optimieren oder eine Kompatibilität der Werkzeug-Tools wie Assembler oder Disassembler auch beim Arbeiten mit verschiedenen Prozessoren bereitzustellen.
Fig. 2 zeigt in einer schematischen Darstellung die Übertragung der Instruktionen (unterer linker Quadrant) in einem Assembler- Programm auf ihre zugeordneten binären Repräsentationen (Bitcodes) und dessen Überführung in ausführbare Kommandos im Prozessor (unterer rechter Quadrant) . Das Assemblerprogramm wird dabei mittels eines Assemblers in eine in einer Datei abgelegte Bitcode-Folge umgewandelt, was durch den mit I bezeichneten Pfeil dargestellt ist. Diese Bitcode-Folge wird durch das Assemblerprogramm als binäre Bitcode-Folge in den Prozessor geladen, was durch den Pfeil II dargestellt ist. Im Prozessor wird die binäre Bitcode-Folge zur Ausführung der Kommandos im Pro- zessor decodiert (III) . Wie aus der Darstellung hervorgeht, werden die Bitcodes als Medium zum Transport der Kommandos von der Software (Assembler-Programm) in den ausführenden Prozessor verwendet. Demnach üben die Bitcodes eine Schnittstellenfunktion zwischen der Software und der ausführenden Hardware aus, so- dass über die Bitcodes eine Anpassung der Software an die Hard- wäre durchgeführt wird. Um nach dem Arbeiten mit einem ersten Prozessor einen zweiten Prozessor in der gleichen Umgebung einzusetzen, welcher den gleichen Funktionsumfang aufweist, bleiben durch die Neuzuordnung der durch den zweiten Prozessor vorgegebenen binären Repräsentationen zu den Instruktionen viele der verwendeten Entwicklungstools unverändert, da sich auf der Ebene des Programmquellcodes, d.h. beispielsweise für den Assembler und die verwendete Programmierhochsprache, nichts ändert. Auch wenn in einer herkömmlichen Umgebung derartige Werkzeugtools teilweise automatisch erstellt werden können, ist mit dem Prozessoraustausch aufgrund der notwendigen Anpassung in jedem Falle ein zusätzlicher Arbeitsaufwand verbunden. Dieser kann jedoch erfindungsgemäß durch den Austausch des dem jeweiligen Prozessor zugeordneten binären Repräsentationssatzes leicht umgangen werden kann. Die Anpassung an den neuen Prozes- sor wird somit durch eine neue Zuordnung der Instruktionen an die binären Repräsentationen des neuen Prozessors durchgeführt, eine Umgestaltung wesentlicher Tools der Entwicklungs- und Testumgebung entfällt.
Wie schon erläutert, können die Instruktionscodes in Abhängigkeit des vom Prozessor abzuarbeitenden Programms derartig den jeweiligen Instruktionen zugeordnet werden, dass diese zeitoptimiert vom Prozessor abgearbeitet werden. Wird ein bestimmtes Kommando innerhalb eines vorgegebenen Programms immer mit dem gleichen Argument ausgeführt, so wird dieser speziellen Instruktion ein Instruktionscode geringer Bitlänge zugeordnet, damit der Code einerseits wenig Speicherplatz einnimmt und andererseits schneller ausgeführt werden kann. Ein weiteres Beispiel betrifft einen Addier-Befehl, bei welchem als Argumente ein Zielregister und die beiden zu addierenden Zahlen angegeben werden. Da im Beispiel die beiden Zahlen programmbedingt häufig innerhalb von -8 bis 7 liegen, wird dann von dem Programmiertool ein Instruktionscode von 10 Bit vorgesehen. In anderen Fällen, in welchen die Zahlen einen größeren Wertebereich umfassen, wird automatisch für den gleichen Befehl ein Bitcode von 20 Bit vorgesehen. Auch hier wird auf die beschriebene Weise die Abarbeitung des Programms auf dem digitalen Signalprozessor rechnergestützt zeit- und speicheroptimiert.
In einer speziellen Ausführungsform der Erfindung wird die In- formation betreffend die Zuordnung von Argumentwerten x einer Instruktion zu deren Bitcodes yl über einen funktionalen Zusammenhang yl = f1 (x) angegeben. Die Bitcodes können ausgehend vom Argumentwert x berechnet werden. Bei einer Instruktion mit mehreren Argumenten x, z wird der Bitcode y2 entsprechend einer vorgegebenen Funktion y2=f2(x,z) berechnet.
Zusätzlich zum bisher beschriebenen Inhalt der Datenbank umfasst diese auch Angaben über Strukturkomponenten des Prozessors einschließlich der Datenpfade zwischen den Strukturkompo- nenten sowie die Angabe von Strukturkomponenten, die beim Ausführen bestimmter Instruktionen beeinflusst werden. Hierbei sind nicht Quell- bzw. Zielregister einer Instruktion betroffen, sondern beispielsweise ein Flag-Register, das aufgrund der speziellen Hardwarekonstruktion beim Ausführen der Instruktion auch verändert wird.
Ein weiteres ähnliches Beispiel betrifft die Instruktion „Co- pyw, mit den Argumenten RegisterA und RegisterB. Dieser Befehl wird durch die Verschiebung des Inhalts des Registers A in das Register B ausgeführt. Bei der Verknüpfung dieser Instruktion mit den Argumenten RegisterA und RegisterX sollte demnach zur Ausführung der Inhalt des Registers A in das Register X verschoben werden. Da in der Hardware des verwendeten Prozessors jedoch keine direkte Verbindung zwischen den beiden Registern existiert, muss die Umsetzung des Befehls über ein Zwischenregister C durchgeführt werden, dass sowohl mit dem Register A als auch mit dem Register X verbunden werden kann. Der Inhalt des Registers A wird deshalb zuerst in das Register C und danach in das Zielregister X übertragen. In der Kommandoebene sind diese Unterschiede nicht sichtbar, es wird immer der Be- fehl „Copy" verwendet. Zur Vermeidung von Fehlern, die Auftreten, wenn das Register C gleichzeitig auch von einer anderen, parallel ablaufenden Instruktion verwendet wird, ist in der Datenbank dem Befehl „CopyΛ das Register C als die Strukturkomponente zugeordnet, welche bei der Ausführung des Befehls verän- dert wird. Diese Angaben in der Datenbank werden wie schon erläutert auch bei der Entwicklung eines Softwareprogramms für den digitalen Signalprozessor zur optimierten Abarbeitung der Kommandos verwendet, bei welchem die Kommandos zur Zeitoptimierung zumindest teilweise parallel verarbeitet werden. Aufgrund des beschriebenen Aufbaus der Datenbank kann bei der Programmentwicklung darauf geachtet werden, dass parallel auf dem Prozessor ablaufende Instruktionen sich nicht gegenseitig berechnungsrelevante Register überschreiben.
Fig. 3 zeigt in einer Blockdarstellung einen Ausschnitt der Entwurfs-, Test- und EntwicklungsUmgebung zur Ausführung eines erfindungsgemäßen Verfahrens zum Erstellen eines Programmierhandbuchs für einen digitalen Signalprozessor. Ein wie beschriebener Instruktionsdatensatz des Prozessors liegt in der Datenbank 1 vor und wird rechnergestützt von einem Programmierhandbuchgenerator 2, der als Software ausgelegt ist, ausgelesen und zum Erstellen des Handbuchs 4 verwendet. Dieses Programmierhandbuch dient als Anleitung für einen Programmierer, der AnwendungsSoftware für den Prozessor schreibt. Durch eine An- wendereingabe 3 kann der Programmierhandbuchgenerator konfiguriert werden. Insbesondere ist es möglich, ein spezielles Layout und das Format des Handbuchs anzugeben. Im vorliegenden Fall kann als erstes Format ein HTLM-Format ausgewählt werden, sodass das erstellte Handbuch 4 ohne Umformatierungen direkt zur Bildschirmdarstellung verwendet werden kann. Hierzu erzeugt der Handbuchgenerator eine Datei mit einzelnen HTLM-Bild- schirmseiten, die innerhalb einer auch integrierten Software- Umgebung aufgerufen werden können. Andererseits kann durch die Anwendereingabe 3 auch festgelegt werden, dass der Programmierhandbuchgenerator 2 das Handbuch in einem Format erzeugt, das für eine Druckerstellung geeignet ist. Vorliegend wird dann ein LaTeX-File erzeugt, mit Hilfe dessen ein Programmierhandbuch auf Papier herstellbar ist.
In einer besonderen Ausführungsform wird bei dem elektronischen Handbuch über den Datenbankklient auf die Datenbank mittels eines Zeigers zugegriffen, mit Hilfe dessen Daten beim Verwenden des Programmierhandbuchs direkt von der Datenbank abgefragt werden können, sodass diese Informationen nicht im Handbuch abgelegt werden müssen. Dies bedeutet auch, dass nicht in jedem Fall bei einer Änderung in der Datenbank 1 automatisch ein neues Programmierhandbuch 4 gemäß Fig. 3 erstellt werden muss, sondern unter Umständen die geänderte Information beim Verwenden des ursprünglichen Handbuchs berücksichtigt wird. Fig. 4 zeigt in einer Prinzipskizze das Verwenden eines derartigen e- lektronischen Programmierhandbuchs 4. Dabei läuft auf einem Rechner 5 ein auch vom Programmierhandbuchgenerator bereitgestelltes Software-Programm, welches das Handbuch 4 zur Darstellung von gewünschten Informationen auf einen Schirm 6 verwendet. Hierzu kann der Anwender über eine Tastatur 7 die ge- wünschte Information aus dem Handbuch abfragen. Fordert dieser beispielsweise das Stichwortverzeichnis des Handbuchs an, so findet sich hierzu im Handbuch ein Verweis auf vorgegebene Informationseinheiten, die vom Rechner 5 aus der Datenbank 1 ausgelesen, informationstechnisch verarbeitet und, wie gewünscht, als Stichwortliste auf dem Bildschirm 6 angezeigt werden.

Claims

Verfahren zum Bereitstellen einer Entwurfs-, Test- und Entwicklungsumgebung sowie ein System zur Ausführung desVerfahrensPatentansprüche
1. Verfahren zum Bereitstellen einer Entwurfs-, Test- und/oder Entwicklungsumgebung für zumindest eine datenverarbeitende Schaltungsanordnung, insbesondere für zumindest einen digitalen Signalprozessor (DSP) , wobei Instruktionen der Schal- tungsanordnung und ihre binären Repräsentationen, insbesondere in einer Datenbank, maschinenlesbar gespeichert und die gespeicherten Informationen automatisch bei rechnergestützten Entwurfs-, Test- und Entwicklungsabläufen abgefragt werden, dadurch gekennzeichnet , dass die Zuordnung einer vorgegebenen binären Repräsentation (Instruktionscode) zu einer Instruktion veränderbar ausgelegt wird.
2. Verfahren nach Anspruch 1, dadurch gekenn- zeichnet , dass die Instruktionen und deren binären
Repräsentationen in der Datenbank (1) abgelegt werden, wobei für eine Instruktion mehrere, jeweils einer spezifischen Schaltungsanordnung zugeordneten binären Repräsentationen abgelegt werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch g e - kennzei chnet , dass in der Datenbank (1) ein vollständiger Instruktionsdatensatz gespeichert wird, für den mehrere, jeweils einer spezifischen Schaltungsanordnung zu- geordneten binäre Repräsentationssätze (Instruktionscode- sätze) abgelegt werden.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet , dass zumindest ein Instrukti- onscode rechnergestützt im Ansprechen auf die Kommandos und deren Argumente in einem Programm, dass von der Schaltungsanordnung abgearbeitet werden soll, festgelegt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet , dass für Instruktionen mit gleichem Kommando in Abhängigkeit von deren zumindest einem Argument Instruktionscodes unterschiedlicher Bit-Breite in der Datenbank abgelegt werden.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet , dass für Instruktionen mit unterschiedlichem Kommando Instruktionscodes mit unterschiedlicher Bit-Breite in der Datenbank abgelegt werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet , dass die Datenbank nach zumindest einer Instruktion durchsucht wird, welcher einer vorgegebenen binären Repräsentation zugeordnet ist.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet , dass die Datenbank nach zumindest einer binären Repräsentation durchsucht wird, welcher einer vorgegebenen Instruktion und dessen Argumentwerten zugeordnet ist.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet , dass bei der Erstellung eines Computerprogramms die Datenbank nach zumindest einer Strukturkomponente, insbesondere nach einem Register durchsucht wird, welches bei der Ausführung einer vorgegebenen Instruktion beeinflusst wird.
10. Verfahren nach einem der Ansprüche 2 bis 9, dadurch gekennzeichnet , dass ein Programmierhandbuch (4) für die datenverarbeitende Schaltungsanordnung rechner- gestützt unter Abfrage von in der Datenbank (1) abgelegten Informationen automatisch erstellt wird, welches in einem maschinenlesbaren, zur Bildschirmdarstellung, oder zur Druck-Erstellung geeigneten Format erzeugt wird.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet , dass für die Erstellung des Programmierhandbuchs ein im wesentlichen hardwareunabhängiger, auf eine vorgegebene Hardware-Architektur zugeschnittener Programmierhandbuchgenerator (2) verwendet wird, wobei zumin- dest ein vom Anwender vorbestimmbares Programmierhandbuchlayout festlegbar ist.
12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet , dass über interaktive Zugriffe auf die Datenbank (1) eine Suchfunktion und eine Visualisierung von Informationen auf in der Datenbank abgelegten Daten zur Umsetzung eines elektronischen Programmierhandbuchs werden.
13. System zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 12, wobei ein Mittel zum maschinenlesbaren Speichern von Instruktionen der Schaltungsanordnung einschließlich binärer Repräsentationen umfasst ist, dadurch gekennzeichnet , dass die Zuordnung einer vorgegebenen binären Repräsentation (Instruktionscode) zu einer Instruktion veränderbar ausgelegt ist.
14. System nach Anspruch 13, dadurch gekenn- zeichnet , dass zu einer Instruktion eine der Instruktion zugeordnete Bezeichnung, eine der Instruktion zu- geordnete Beschreibung sowie eine Liste der Argumente abgelegt ist, welche der Instruktion zugeordnet sind.
15. System nach Anspruch 14, dadurch gekenn- zeichnet , dass zu einer Instruktion ferner eine maschinenlesbare Beschreibung ihrer Funktionalität abgelegt ist.
16. System nach Anspruch 14 oder 15, dadurch g e - kennzeichnet , dass in der Datenbank für jedes Argument eine dem Argument zugeordnete Bezeichnung, eine dem Argument zugeordnete Beschreibung sowie einen dem Argument zugeordneten Wertebereich abgelegt ist.
17. System nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet , dass Beschreibungen von Strukturkomponenten der Schaltungsanordnung einschließlich von Datenpfaden zwischen den Strukturkomponenten in der Datenbank abgelegt sind, wobei in der Datenbank für zumindest eine Instruktion wenigstens eine der Instruktion zugeordnete Strukturkomponente, insbesondere ein Register angegeben ist, welches neben einem Ergebnisregister beim Abarbeiten der Instruktion beeinflussbar ist.
EP20030706302 2002-02-08 2003-02-07 Verfahren zum bereitstellen einer entwurfs-, test- und entwicklungsumgebung sowie ein system zur ausführung des verfahrens Withdrawn EP1472628A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101993858B1 (ko) * 2018-10-05 2019-06-27 주식회사 엔터핀 프로그램 개발 시스템 및 이를 이용한 개발 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
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 에이알씨 인터내셔널 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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