JP2000259408A - Software breakpoint in delay slot - Google Patents

Software breakpoint in delay slot

Info

Publication number
JP2000259408A
JP2000259408A JP2000062443A JP2000062443A JP2000259408A JP 2000259408 A JP2000259408 A JP 2000259408A JP 2000062443 A JP2000062443 A JP 2000062443A JP 2000062443 A JP2000062443 A JP 2000062443A JP 2000259408 A JP2000259408 A JP 2000259408A
Authority
JP
Grant status
Application
Patent type
Prior art keywords
instruction
instructions
unit
length
processor
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.)
Pending
Application number
JP2000062443A
Other languages
Japanese (ja)
Inventor
Shigeyuki Abiko
Mark Buser
Gilbert Laurenti
Eric Ponsot
ポンソ エリック
ローランティ ジルベール
ビュセル マーク
茂志 安孫子
Original Assignee
Texas Instr Inc <Ti>
テキサス インスツルメンツ インコーポレイテツド
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

Links

Abstract

PROBLEM TO BE SOLVED: To provide a high digital signal processor performance with a little power consumption by decoding a software breakpoint instruction having a length equal to any one of instruction length formats. SOLUTION: An instruction buffer unit 106 decodes an instruction, which is fetched from an instruction memory, having a first length selected out of plural first instruction fetch lengths. The decoded instruction is executed by a data calculation unit 112 and a program counter generates an instruction address to be provided to the instruction memory. Namely, the instruction buffer unit 106 operates to decode the first software breakpoint instruction selected to have a length equal to any one of plural first instruction length formats. Besides, the instruction buffer unit 106 operates to decode the second software breakpoint instruction coupled with a first non-operation instruction in one cycle.

Description

【発明の詳細な説明】 DETAILED DESCRIPTION OF THE INVENTION

【0001】 [0001]

【発明の属する技術分野】本発明はプロセッサに関し、 BACKGROUND OF THE INVENTION The present invention relates to a processor,
更にハードウェアまたはソフトウェアのデバッグをするためのプロセッサのエミュレーションに関する。 Further regarding emulation processor for debug hardware or software.

【0002】 [0002]

【従来の技術】マイクロプロセッサはソフトウェアを実行させるのに大きい命令スループットを必要とする汎用プロセッサであり、関連する特定のソフトウェアアプリケーションに応じ、広範な範囲の処理条件を有し得る。 BACKGROUND ART microprocessor is a general purpose processor that requires a large instruction throughput to support execution of the software, depending on the relevant specific software applications may have a wide range of processing conditions.
1つのソフトウェアルーチンから別のソフトウェアルーチンへ変数を送るのに使用できるスタックを設けることが公知となっている。 It has become known to provide a stack that can be used from one software routine to send variables to another software routine. これらスタックはコールされた第2ルーチンの完了時にプログラムフローが第1のソフトウェアルーチンにリターンできるよう、第1のソフトウェアルーチンが第2のソフトウェアルーチンをコールした際にプログラムカウンタの内容を維持するのにも使用される。 As the program flow upon completion of the second routine these stacks was called can return to the first software routine, although the first software routine maintains the contents of the program counter when calling a second software routine It may also be used. 第2のソフトウェアルーチンにおけるコールは第3ルーチンなどもコールできる。 Calls in the second software routine can call also including third routine. 更に、ソフトウェアのデバッグ中に使用すべきソフトウェアのブレークポイント命令を設けることも公知である。 It is also known to provide a software breakpoint instruction to be used during debugging software.

【0003】 [0003]

【発明が解決しようとする課題】プロセッサには多数の異なるタイプのものが知られており、このうちのマイクロプロセッサは1つの例である。 And those of a number of different types are known to the processor [0008] The microprocessor of this is one example. 例えば特定のアプリケーション、例えばモービル処理アプリケーションのためにデジタル信号プロセッサ(DSP)が広く使用されている。 For example certain applications, for example, a digital signal processor (DSP) is widely used for mobile processing applications. これらDSPは関連するアプリケーションの性能を最適にし、かつこれらDSPがより特殊な実行ユニットおよび命令セットを使用する性能を達成できるように、一般に構成されている。 These DSP are to achieve their ability to use the associated performance perfect the application, and these DSP Gayori special execution units and instruction sets, are commonly configured. 特に移動通信アプリケーションのようなアプリケーション(これのみに限定されるわけではない)では、電力消費量をできるだけ少なく維持しながら、次第に要求が高くなりつつあるDSP性能を提供することが望ましい。 Especially in applications such as mobile communications applications (which only mean not be limited to), while maintaining minimize the power consumption, it is desirable to provide a DSP performance it is becoming increasingly request becomes high.

【0004】 [0004]

【課題を解決するための手段】添付した独立請求項および従属請求項には本発明の特定の好ましい特徴事項が記載されている。 In the accompanying independent and dependent claims SUMMARY OF THE INVENTION are described certain preferred feature of the present invention. 従属請求項に記載の特徴事項の組み合わせは、適当であり、かつ請求項には単に明示的には記載されていない独立請求項の特徴事項と組み合わせることができる。 The combination of characteristic features according to the dependent claims, are suitable, and the only explicitly to claim may be combined with feature of the independent claims that are not listed. 本発明は、プロセッサ、例えばデジタル信号プロセッサ(専らこれのみに限定されるものではない) The present invention includes a processor, such as a digital signal processor (not exclusively be limited only to)
の性能を改良せんとするものである。 It is intended to cents of performance improvement.

【0005】本発明の第1の特徴によれば、プロセッサ、すなわち高いコード(符号)密度および容易なプログラム性の双方を提供する、プログラマブルデジタル信号プロセッサ(DSP)が提供される。 According to a first feature of the invention, there is provided a processor, i.e. both high code (code) density and easy programmability, programmable digital signal processor (DSP) is provided. アーキテクチャおよび命令セットは、電量消費量を少なくし、かつDS Architecture and instruction set, to reduce the coulometric consumption, and DS
Pアルゴリズム、例えば無線電話のみならず純粋な制御作業用のアルゴリズムの実行の効率を高くするように最適にする。 P algorithm, optimized to to increase the efficiency of, for example, execution of the algorithm for wireless telephones not only pure control tasks. このプロセッサは命令メモリから取り出された(フェッチされた)メモリを復号化するように働く命令バッファユニットを含む。 The processor includes an instruction buffer unit operable to decode the fetched from the instruction memory (fetched) memory. この命令は多数の命令フォーマット長さを有することができる。 This instruction may have a number of instruction format lengths. プロセッサは命令バッファユニットによって復号化された命令を実行するためのデータ計算ユニットと、命令メモリへ提供されるメモリアドレスを提供するように作動できるプログラムカウンタも有する。 The processor also has a program counter operable to provide a data computation unit for executing the instructions decoded by the instruction buffer unit, a memory address provided to the instruction memory. 命令バッファユニットは命令セットのうちの命令長さフォーマットのいずれかに等しい長さを有するソフトウェアブレークポイント命令(SWB Instruction buffer unit software breakpoint instruction having either equal length of the instruction length format of the instruction set (SWB
P)を復号化するように作動する。 It operates to decode P).

【0006】本発明の別の特徴によれば、命令バッファは組み合わされたソフトウェアブレークポイント命令と非オペレーション命令(NOP)とがデータ計算ユニットによって単一の命令として扱われるように、非オペレーション命令と組み合わされたソフトウェアブレークポイント命令を1つのサイクルで復号化するように作動できる。 According to another feature of the invention, as instruction buffer and software breakpoint instruction combined with a non-operation instruction (NOP) is treated as a single instruction by the data computation unit, and a non-operation instruction combined software breakpoint instructions operable to decode a single cycle.

【0007】本発明の別の特徴によれば、ソフトウェアブレークポイント命令は完全な命令セット内の命令長さフォーマットの数よりも少ない少数の命令長さフォーマットしか有しない。 According to another feature of the invention, a software breakpoint instruction has only full few instructions length format less than the number of instructions length format instruction set. しかしながら、SWBP命令とNO However, SWBP instruction and NO
P命令の組み合わせに対し、命令セットの各命令長さフォーマットを一致させるために組み合わされた命令長さフォーマットがある。 To the combination of P instruction, there is a combined instruction length format to match each instruction length format instruction set.

【0008】本発明の別の特徴によれば、デジタルシステムを作動させる方法が提供される。 According to another feature of the invention, a method of operating a digital system is provided. プロセッサコアの命令パイプラインでは複数の命令が実行され、このプロセッサコアではプロセッサコアに関連する命令メモリからのプログラムカウンタに応答して命令がフェッチされ、多数の命令長さフォーマットを有する命令セットから命令のシーケンスが選択される。 The processor core of the instruction pipeline is executed a plurality of instructions, this processor core is fetching instruction in response to a program counter from an instruction memory associated with the processor core, an instruction from an instruction set having a plurality of instruction length formats the sequence of is selected. エミュレーション中、命令のシーケンス内の命令は、その長さに係わらず、置き換わる命令と同じ命令長さフォーマットを有するソフトウェアブレークポイント命令に置換される。 During emulation, the instruction in the sequence of instructions, regardless of its length, is replaced by a software breakpoint instruction having the same instruction length formats and replaced instruction. 命令のシーケンスの一部を実行した後に、ソフトウェアブレークポイント命令を実行することにより、実行シーケンスがブレークされる。 After performing the part of the instruction sequence, by executing the software breakpoint instruction execution sequence is a break. 次に、ソフトウェアブレークポイント命令を命令のシーケンス内の先に置換された命令に置き換えることにより、命令のシーケンスの実行を再開する。 Then, by replacing the instruction previously substituted in the sequence of instructions the software breakpoint instruction resumes execution of sequences of instructions.

【0009】本発明の別の特徴は、ソフトウェアブレークポイント命令と非オペレーション命令の組み合わされた長さが、置換された命令長さに等しくなるよう、数個のソフトウェアブレークポイント命令のうちの1つを選択することにより、第1のソフトウェアブレークポイント命令を形成することにある。 [0009] Another aspect of the present invention, combined length of the software breakpoint instruction and a non-operation instruction, to be equal to the instruction length substitution, one of several software breakpoint instruction by selecting, it is to form a first software breakpoint instruction. 本発明の別の特徴は、不連続タイプの命令を実行することから生じた遅延スロット内でソフトウェアブレークポイント命令を実行した際に、置換された命令が命令のシーケンス内に存在していたのと同じ値でリターンアドレスを記憶することである。 Another feature of the present invention, when executing the software breakpoint instruction in the delay slot resulting from executing a discontinuity type instruction, and substituted instruction that was present in the sequence of instructions it is to store the return address at the same value.

【0010】以下、添付図面を参照し、本発明に係わる特定の実施例を単なる例として説明する。 [0010] Hereinafter, with reference to the accompanying drawings, illustrate specific embodiments according to the present invention by way of example only. 添付図面では同様な部品を示すのに同様な番号を使用する。 In the drawings to use the same number to denote like parts. これら図面は特に説明しない限り図1のプロセッサに関連するものである。 These figures are related to the processor of Figure 1 unless otherwise noted.

【0011】 [0011]

【発明の実施の形態】本発明は、例えば特殊用途向け集積回路(ASIC)内に実現されるディジタル信号プロセッサ(DSP)に特に用いられるが、他の種類のプロセッサにも用いられる。 DETAILED DESCRIPTION OF THE INVENTION The present invention is, for example, used in particular digital signal processor (DSP) which is implemented in special purpose integrated circuit (ASIC), also used for other types of processors. 本発明によるプロセッサの一例の基本的構成について以下に説明する。 The basic structure of an example of a processor according to the present invention will be described below. プロセッサ10 Processor 10
0は、可変命令長(8ビットから48ビット)のプログラマブル固定小数点DSPコアであって、コード密度が高くプログラミングが容易である。 0 is a programmable fixed point DSP core with variable instruction length (8 bits to 48 bits) offering both high code density and easy programming. 構成および命令集合は、電力消費を低くし、かつ、無線電話や専用の制御タスク用のようなDSPアルゴリズムの実行の効率を高めるように、最適化されている。 Configuration and instruction sets, low power consumption and high efficiency execution of DSP algorithms, such as for wireless telephones and dedicated control tasks, are optimized. プロセッサ100は、エミュレーションおよびコード・デバッグの機能を含む。 Processor 100 includes emulation and code debugging features.

【0012】図1は、本発明の一実施の形態によるディジタル装置10の概略図である。 [0012] Figure 1 is a schematic diagram of a digital system 10 in accordance with an embodiment of the present invention. ディジタル装置は、プロセッサ100とプロセッサ・バックプレーン20とを含む。 Digital system includes a processor 100 and a processor backplane 20. 本発明の特定の例では、ディジタル装置は、特殊用途向け集積回路(ASIC)で実現されたディジタル信号プロセッサ装置10である。 In a particular embodiment of the present invention, the digital system is a Digital Signal Processor System 10 implemented in an Application Specific Integrated Circuit (ASIC). 簡単のために、図1 For the sake of simplicity, FIG. 1
は、本発明の実施の形態を理解するのに必要なマイクロプロセッサ100のそれらの部分だけを示す。 Shows only those portions of microprocessor 100 necessary to understand the embodiments of the present invention. DSPの一般的な構造の詳細は良く知られているので、別の文献を参照していただきたい。 The details of the general structure of DSP is well known, please refer to another document. 例えば、Frederick Boutaud For example, Frederick Boutaud
らに発行された米国特許第5,072,418号はDS US Pat. No. 5,072,418 issued to La DS
Pについて詳細に説明しているので、ここに援用する。 Since it is described in detail P, and incorporated herein by reference.
Gary Swoboda らに発行された米国特許第5,329, Issued to Gary Swoboda, et al. U.S. Pat. No. 5,329,
471号はDSPを試験しエミュレートする方法について詳細に説明しているので、ここに援用する。 471 is because it is described in detail how to test and emulate a DSP, incorporated herein. マイクロプロセッサ技術の当業者が本発明を製作し使用することができるように、本発明の一実施の形態に関するマイクロプロセッサ100の一部の詳細について以下に説明する。 As one of ordinary skill in the microprocessor art can be used to fabricate the present invention will be described below some of the details of the microprocessor 100 relating to an embodiment of the present invention.

【0013】本発明の態様の恩恵を被ることのできるいくつかの例示の装置は、ここに援用した米国特許第5, [0013] Some exemplary devices that can benefit aspect of the present invention, U.S. Patent No. 5 were incorporated herein,
072,418号に、特に米国特許第5,072,41 No. 072,418, particularly in the United States Patent No. 5,072,41
8号の図2から図18を参照して述べられている。 Stated No. 8 from FIG. 2 with reference to FIG. 18. 性能を向上させコストを削減する本発明の態様を組み込んだマイクロプロセッサを用いれば、米国特許第5,07 By using a microprocessor that incorporates aspects of the present invention to reduce costs to improve performance, U.S. Patent No. 5,07
2,418号に述べられた装置を更に改善することができる。 The apparatus set forth No. 2,418 can be further improved. かかる装置は、これらに限定されるわけではないが、工業的プロセス制御,自動車システム,モータ制御,ロボット制御装置,衛星通信システム,エコー消去装置,モデム,ビデオ映像装置,音声認識装置,暗号化されたボコーダ・モデム装置などを含む。 Such devices include, but are not limited to, industrial process controls, automotive systems, motor control, robot control device, a satellite communication system, the echo canceller, a modem, video device, a voice recognition device, it is encrypted including vocoder-modem device. 図1のマイクロプロセッサの種々の構造の特徴の説明および命令の完全な集合の説明は、本出願人に譲渡された出願番号第0 Description of a complete set of description and instructions features of the various structures of the microprocessor of Figure 1, Serial No., assigned to the present applicant 0
9/410,977号(TI−28433)に述べられているので、これをここに援用する。 Because it stated in 9 / No. 410,977 (TI-28433), which is incorporated herein.

【0014】図1に示すように、プロセッサ100は、 [0014] As shown in FIG. 1, the processor 100,
プロセッサ・コア102と、プロセッサ・コア102をプロセッサ・コア102の外部にあるメモリ・ユニットとインターフェースするメモリ・インターフェース・ユニット104とを有する中央処理装置(CPU)を形成する。 A processor core 102, to form a central processing unit and a memory interface unit 104 to memory unit and interface with the processor core 102 to the outside of the processor core 102 (CPU). プロセッサ・バックプレーン20は、プロセッサのメモリ管理ユニット104が接続されたバックプレーン・バス22を含む。 Processor backplane 20 comprises a backplane bus 22 that the memory management unit 104 of the processor is connected. バックプレーン・バス22には、 The backplane bus 22,
命令メモリ24,周辺装置26および外部インターフェース28も接続されている。 Instruction memory 24, peripherals 26 and an external interface 28 are also connected. 理解されるように、他の例では、異なる構成および/または異なる技術を用いて本発明を実現することができる。 It will be appreciated that in other examples, it is possible to implement the present invention using different configurations and / or different technologies. 例えば、プロセッサ10 For example, the processor 10
0は、プロセッサ・バックプレーン20をそこから分離して、第1の集積回路を形成してもよい。 0 separates the processor backplane 20 therefrom, may be formed first integrated circuit. 例えば、プロセッサ100は、バックプレーン・バス22と周辺および外部インターフェースとを支援するバックプレーン2 For example, the processor 100, the backplane 2 for supporting a backplane bus 22, peripheral and external interfaces
0から離してその上に取り付けたDSPであってもよい。 Be a DSP separate from and mounted on a 0. 例えば、プロセッサ100は、DSPではなくマイクロプロセッサでもよいし、また、ASIC技術以外の技術で実現してもよい。 For example, the processor 100 may be a DSP microprocessor rather, may also be implemented in technologies other than ASIC technology. このプロセッサまたはこのプロセッサを含むプロセッサを1つ以上の集積回路に実現してもよい。 The processor or a processor including the processor could be implemented in one or more integrated circuits.

【0015】図2は、プロセッサ・コア102の一実施の形態の基本構造を示す。 [0015] Figure 2 illustrates the basic structure of an embodiment of the processor core 102. 図示するように、プロセッサ・コア102のこの実施の形態は、4つの要素、すなわち、命令バッファ・ユニット(Iユニット)106と3 As shown, this embodiment of the processor core 102 includes four elements, namely, the Instruction Buffer Unit (I Unit) 106 3
つの実行ユニットとを含む。 One of and an execution unit. 実行ユニットは、プログラム・フロー・ユニット(Pユニット)108と、アドレス・データ・フロー・ユニット(Aユニット)110 Execution units are a Program Flow Unit (P Unit) 108, Address Data Flow Unit (A Unit) 110
と、命令バッファ・ユニット(Iユニット)106から復号された命令を実行するとともにプログラム・フローを制御し監視するデータ計算ユニット(Dユニット)1 When the data computation unit for controlling and monitoring program flow to execute the instructions decoded from the Instruction Buffer Unit (I Unit) 106 (D units) 1
12とである。 Is 12 Doo.

【0016】図3は、プロセッサ・コア102のPユニット108,Aユニット110およびDユニット112 [0016] Figure 3, P unit 108 of processor core 102, A Unit 110 and D Unit 112
をもっと詳細に示す図であり、また、プロセッサ・コア102の種々の要素を接続するバス構造を示す。 The is a diagram showing in more detail and shows the bus structure connecting the various elements of the processor core 102. Pユニット108は、例えば、ループ制御回路と、GoTo/ P unit 108, for example, a loop control circuit, GoTo /
分岐制御回路と、反復カウンタ・レジスタや割込みマスク,フラグまたはベクトル・レジスタのようなプログラム・フローを制御し監視する種々のレジスタとを含む。 Branch comprising a control circuit, repeat counter registers and interrupt mask, and various registers for controlling the program flow, such as a flag or vector registers monitoring.
Pユニット108は、汎用データ書込みバス(EB,F P unit 108, a general-purpose data write bus (EB, F
B)130,132と、データ読取りバス(CB,D And B) 130, 132, the data read bus (CB, D
B)134,136と、アドレス定数バス(KAB)1 And B) 134, 136, the address constant bus (KAB) 1
42とに結合されている。 It is coupled to and 42. また、Pユニット108は、 Also, P unit 108,
CSR,ACBおよびRGDとラベルされた種々のバスを介してAユニット110およびDユニット112内のサブユニットに結合されている。 CSR, is coupled to sub-units within the A Unit 110 and D Unit 112 via various buses are ACB and RGD and labels.

【0017】図3に示すように、この実施の形態では、 As shown in FIG. 3, in this embodiment,
Aユニット110はレジスタ・ファイル30とデータ・ A unit 110 includes a register file 30, a data
アドレス生成サブユニット(DAGEN)32と算術・ Address generation sub-unit (DAGEN) 32 and arithmetic-
論理演算ユニット(ALU)34とを含む。 And a logic unit (ALU) 34. Aユニット・レジスタ・ファイル30は種々のレジスタを含む。 A Unit register file 30 includes various registers. 例えば、16ビット・ポインタ・レジスタ(AR0〜AR For example, 16-bit pointer registers (AR0~AR
7)と、データ・フローおよびアドレス生成にも用いられるデータ・レジスタ(DR0〜DR3)とである。 7) is a data flow and address data registers used to generate (DR0 to DR3). また、レジスタ・ファイルは、16ビット循環バッファ・ Also, register file 16-bit circular buffer
レジスタと7ビットのデータ・ページ・レジスタとを含む。 And a data page register of the register and a 7-bit. 汎用バス(EB,FB,CB,DB)130,13 General purpose bus (EB, FB, CB, DB) 130,13
2,134,136の他に、データ定数バス140およびアドレス定数バス142もAユニット・レジスタ・ファイル30に結合されている。 In addition to the 2,134,136, the data constants bus 140 and the address constant bus 142 is also coupled to the A Unit register file 30. Aユニット・レジスタ・ A Unit register
ファイル30は、それぞれ逆方向に動作する一方向バス144,146を介してAユニットDAGENユニット32に結合されている。 File 30 is coupled to the A Unit DAGEN unit 32 through the one-way bus 144, 146 which operate in opposite directions. DAGENユニット32は、例えば処理エンジン100内のアドレス生成を制御し監視する16ビット・X/Yレジスタと係数/スタック・ポインタ・レジスタとを含む。 DAGEN unit 32 includes, for example, controls the address generation processing engine 100 and a monitoring 16-bit · X / Y registers and coefficient / stack pointer register.

【0018】Aユニット110は、加算,減算およびA [0018] A unit 110, addition, subtraction and A
ND,OR,XOR論理演算子のようなALUに一般に関連する機能とともにシフタ機能を含むALU34も含む。 ND, OR, also ALU34 containing shifter function as well as generally related to function ALU such as XOR logical operators including. ALU34は、汎用バス(EB,DB)130,1 ALU34 is, the general-purpose bus (EB, DB) 130,1
36および命令定数データ・バス(KDB)140にも結合されている。 It is also coupled to 36 and instructions constant data bus (KDB) 140. AユニットALUは、PDAバスを介してPユニット108に結合されて、Pユニット108 A unit ALU is coupled to the P Unit 108 by a PDA bus, the P Unit 108
レジスタ・ファイルからレジスタ定数を受ける。 Subjected to register constants from the register file. ALU ALU
34は、バスRGA,RGBを介してAユニット・レジスタ・ファイル30にも結合されて、アドレスおよびデータ・レジスタの内容を受けるとともに、バスRGDを介してレジスタ・ファイル30のアドレスおよびデータ・レジスタの内容を転送する。 34, bus RGA, also coupled to the A Unit register file 30 via the RGB, along with receiving the contents of the address and data registers, address and data registers in the register file 30 via bus RGD to transfer the contents.

【0019】本発明の例示の実施の形態によれば、Dユニット112は、Dユニット・レジスタ・ファイル36 According to an exemplary embodiment of the [0019] present invention, D Unit 112, D Unit register file 36
と、DユニットALU38と、Dユニット・シフタ40 And, the D unit ALU38, D Unit shifter 40
と、2つの乗算および累算ユニット(MAC1,MAC When, two multiply and accumulate units (MAC1, MAC
2)42,44とを含む。 And a 2) 42, 44. Dユニット・レジスタ・ファイル36とDユニットALU38とDユニット・シフタ40とはバス(EB,FB,CB,DB,KDB)13 The D Unit register file 36, D Unit ALU38 and D Unit shifter 40 buses (EB, FB, CB, DB, KDB) 13
0,132,134,136,140に結合され、また、MACユニット42,44はバス(CB,DB,K Coupled to 0,132,134,136,140, ​​also, MAC unit 42, 44 buses (CB, DB, K
DB)134,136,140とデータ読取りバス(B DB) 134,136,140 and the data read bus (B
B)144とに結合されている。 Is coupled to B) 144 and. Dユニット・レジスタ・ファイル36は、40ビット累算器(AC0〜AC D Unit register file 36 is 40-bit accumulators (AC0~AC
3)と16ビット遷移レジスタとを含む。 It includes 3) and a 16-bit transition register. Dユニット1 D unit 1
12は、40ビット累算器の他に、発信元レジスタまたは宛先レジスタとしてAユニット110の16ビット・ 12, in addition to the 40-bit accumulators, 16-bit A unit 110 as the source register or the destination register
ポインタおよびデータ・レジスタも用いる。 Pointer and data registers are also used. Dユニット・レジスタ・ファイル36は、累積器書込みバス(AC D Unit register file 36, accumulator write bus (AC
W0,ACW1)146,148を介してDユニットA W0, ACW1) 146,148 via the D unit A
LU38とMAC1 42とMAC2 44とからデータを受け、また、累積器書込みバス(ACW1)148 Receiving the data from the LU38 and MAC1 42 and MAC2 44 Prefecture, also accumulator write bus (ACW1) 148
を介してDユニット・シフタ40からデータを受ける。 Receiving the data from the D Unit shifter 40 over.
データは、Dユニット・レジスタ・ファイル累積器から累積器読取りバス(ACR0,ACR1)150,15 Data accumulator read buses from the D Unit register file accumulators (ACR0, ACR1) 150,15
2を介してDユニットALU38,Dユニット・シフタ40,MAC1 42およびMAC2 44に読み取られる。 D unit ALU38 through 2, D Unit shifter 40 are read in MAC1 42 and MAC2 44. DユニットALU38およびDユニット・シフタ40は、EFC,DRB,DR2およびACBとラベルされた種々のバスを介してAユニット108のサブユニットにも結合されている。 D units ALU38 and D Unit shifter 40, EFC, are also coupled to sub-units of the A Unit 108 via various buses DRB, DR2 and ACB labels.

【0020】図4を参照すると、32語の命令バッファ待ち行列(IBQ)502を含む本発明による命令バッファ・ユニット106が示されている。 Referring to FIG. 4, the instruction buffer unit 106 according to the invention comprising 32 word instruction buffer queue the (IBQ) 502 is shown. IBQ502 IBQ502
は、8ビット・バイト506に論理的に分割された32 It is logically divided into 8 bit bytes 506 32
×16ビットのレジスタ504を含む。 × contains a 16-bit register 504. 命令は、32ビットのプログラム・バス(PB)122を介してIBQ Instruction via the 32-bit program bus (PB) 122 IBQ
502に到着する。 To arrive at 502. 命令は、ローカル書込みプログラム・カウンタ(LWPC)532によって指し示される位置に32ビット・サイクルで取り出される。 Instructions are fetched in a 32-bit cycle to a position pointed to by the local write program counter (LWPC) 532. LWPC5 LWPC5
32は、Pユニット108にあるレジスタに含まれている。 32 is contained in the register in the P Unit 108. Pユニット108も、ローカル読取りプログラム・ P Unit 108 also local reading program
カウンタ(LRPC)536レジスタと、書込みプログラム・カウンタ(WPC)530レジスタと、読取りプログラム・カウンタ(RPC)534レジスタとを含む。 Including counter (LRPC) and 536 registers, a write program counter (WPC) 530 register, and the read program counter (RPC) 534 registers. LRPC536は、命令デコーダ512,514にロードされるべき次の命令のIBQ502内の位置を指し示す。 LRPC536 points to the location in IBQ502 of the next instruction to be loaded into the instruction decoders 512. すなわち、LRPC536は、デコーダ51 That is, LRPC536, decoder 51
2,514に現在ディスパッチされている命令のIBQ 2,514 to IBQ of the instruction currently being dispatched
502内の位置を指し示す。 It indicates a position 502. WPCは、プログラム・メモリにおけるパイプライン用の次の4バイトの命令コードの開始アドレスを指し示す。 WPC points to the start address of the instruction code of the next 4 bytes for the pipeline in the program memory. IBQに取り出す度に、 Every time to take out the IBQ,
プログラム・メモリからの次の4バイトが命令境界に関わらず取り出される。 The next 4 bytes from the program memory is taken regardless of the instruction boundary. RPC534は、デコーダ512 RPC534, the decoder 512
/514に現在ディスパッチされている命令のプログラム・メモリのアドレスを指し示す。 / 514 points to the address of the program memory of the instruction currently being dispatched.

【0021】この実施の形態では、命令は、48ビット語で形成され、マルチプレクサ520,521を介して48ビットのバス516により命令デコーダ512,5 [0021] In this embodiment, the instructions, 48 ​​are formed by a bit word, the instruction decoder a 48 bit bus 516 via the multiplexer 520 and 521 512,5
14にロードされる。 It is loaded into the 14. 当業者には明らかなように、命令は48ビット以外で構成された語に形成されてもよく、 As will be apparent to those skilled in the art, the instructions may be formed into words comprising other than 48 bits,
本発明は上述した特定の実施の形態に限定されるものではない。 The present invention is not intended to be limited to the particular embodiments described above.

【0022】現在好ましいとされる48ビット語サイズに対して、バス516は、並列に実行される任意の1命令サイクル中に最大2命令(デコーダ当たり1命令)をロードすることができる。 [0022] For 48-bit word size is presently preferred, bus 516 can load a maximum of 2 instructions, one per decoder, during any one instruction cycle is executed in parallel. 命令の組合せは、48ビットのバスに適合する任意の書式(8,16,24,32, The combination of instructions, 48-bit arbitrary format compatible with the bus (8, 16, 24 and 32,
40および48ビット)の組合せでよい。 40 and may be a combination of 48 bits). 1サイクル中に1命令だけをロードする場合は、デコーダ2 514 When loading only one instruction in one cycle, the decoder 2 514
よりデコーダ1 512の方を優先してロードする。 Loaded in favor of the more towards the decoder 1 512. 次に、各命令が、それらを実行するとともに、命令または操作が実行されるべきデータをアクセスするために、各機能ユニットに送られる。 Next, each instruction, and executes them in order to access the data for which the instruction or operation is to be performed is sent to each functional unit. 命令デコーダに渡される前に、命令はバイト境界上で整列される。 Before being passed to the instruction decoders, the instructions are aligned on byte boundaries. 整列は、その復号中に前の命令に対して得られた書式に基づいて行われる。 The alignment is done based on the format derived for the previous instruction during decoding thereof. バイト境界との命令の整列に関連する多重化はマルチプレクサ520,521で行われる。 Multiplexing associated with the alignment of instructions with byte boundaries is performed in the multiplexer 520 and 521.

【0023】2つの命令の一方が並列イネーブル・ビットを持つ場合は、2つの命令を並列に入れることができる。 [0023] If one of the two instructions has a parallel enable bit may be placed two instructions in parallel. かかる種類の並列方式を支援するハードウエアを並列イネーブル機構と呼ぶ。 The hardware support for such type of parallelism is called the parallel enable mechanism. 同様に、2つの命令が両方とも間接モードで単一データ・メモリ・アクセス(Sme Similarly, a single data memory accesses in both two instructions both indirect mode (Sme
mまたはdbl(lmem))を行う場合は、2つの命令を並列に入れることができる。 When performing m or dbl (lmem)), it is possible to put two instructions in parallel. かかる種類の並列方式を支援するハードウエアをソフト二重機構と呼ぶ。 The hardware support for such type of parallelism is called the soft double mechanism.

【0024】プロセッサ・コア102は7段階のパイプラインにより命令を実行する。 The processor core 102 executes instructions through seven stages of the pipeline. その各段階について、表1と図5を参照して以下に説明する。 For each point in the sequence will be described below with reference to Table 1 and FIG. どこ(AユニットかDユニット)で実行するかに関わらず、7段階のパイプラインによりプロセッサ命令を実行する。 Whether run where (A unit or D unit), executes processor instructions by seven stages of the pipeline. 本発明の一態様によれば、プログラム・コード・サイズを小さくするために、CコンパイラはAユニットでの実行のためにできるだけ多くの命令をディスパッチするので、Dユニットは、電力を節約するために電源を切られてもよい。 According to one aspect of the present invention, in order to reduce program code size, a C compiler, dispatches as many instructions as possible for execution in the A unit, D unit, in order to save power the power supply may be cut to.
このため、Aユニットは、メモリ・オペランドで実行される基本的動作を支援する必要がある。 Therefore, A units, it is necessary to support basic operations performed on memory operands.

【0025】 [0025]

【表1】 [Table 1]

【0026】パイプラインの第1段階は、事前取出し(P0)段階202であり、この段階中では、メモリ・ [0026] The first stage of the pipeline is a PRE-FETCH (P0) stage 202, in this stage, memory
インターフェース104のアドレス・バス(PAB)1 Address bus interface 104 (PAB) 1
18上にアドレスを表明することによって、次のプログラム・メモリ位置がアドレスされる。 By asserting an address on the 18, the next program memory location is addressed. 次の段階の取出し(P1)段階204では、プログラム・メモリが読み取られ、メモリ・インターフェース・ユニット104からPBバス122を介してIユニット106が満たされる。 In the next stage of extraction (P1) stage 204, the program memory is read, I unit 106 from the memory interface unit 104 is filled via the PB bus 122. 事前取出しおよび取出し段階は、他のパイプライン段階から切り離されており、事前取出しおよび取出し段階中はパイプラインに割り込んで、連続したプログラム・フローを中断するとともに、プログラム・メモリ内の別の命令(例えば、分岐命令)を指し示すことができる。 Prefetching and extraction stages are decoupled from other pipeline stages, interrupt the prefetch and during fetch stage pipeline, to break the sequential program flow, another instruction in the program memory ( for example, it is possible to point to the branch instruction).

【0027】次に、第3段階の復号(P2)段階206 Next, the third stage, DECODE (P2) 206
では、命令バッファ内の次の命令がデコーダ512/5 In the following instruction decoder in the instruction buffer 512/5
14にディスパッチされ、命令が復号されるとともにその命令を実行する実行ユニット(例えば、Pユニット1 14 is dispatched to the execution unit for executing that instruction with instruction is decoded (e.g., P Unit 1
08,Aユニット110またはDユニット112)にディスパッチされる。 08, A Unit 110 or the D Unit 112) is dispatched to. 復号段階206は、命令の種類を示す第1の部分と命令の書式を示す第2の部分と命令用のアドレス指定モードを示す第3の部分とを含む命令の少なくとも一部を復号することを含む。 Decode stage 206, to decode at least a portion of the instruction and a third portion showing a first portion and addressing mode for the instruction and a second part indicating the format of a command indicating the type of instruction including. 次の段階はアドレス(P3)段階208であり、そこでは、命令で用いられるべきデータのアドレスが計算されるか、命令がプログラムの分岐またはジャンプを必要とする場合は新しいプログラム・アドレスが計算される。 The next stage is an address (P3) stage 208, in which the address of the data to be used in the instruction is computed, instructions if you require a program branch or jump is calculated new program address that. 各計算はAユニット110またはPユニット108でそれぞれ行う。 Respective computations take place in A Unit 110 or P Unit 108.

【0028】アクセス(P4)段階210では、読取りオペランドのアドレスが生成され、また、そのアドレスがYmem間接アドレス指定モードでDAGEN Yオペレータで生成されているメモリ・オペランドが、間接的にアドレスされたYメモリ(Ymem)から読み取られる。 [0028] At access (P4) stage 210 the address of a read operand is generated and the memory operand, the address of which has been generated in a DAGEN Y operator with a Ymem indirect addressing mode, indirectly addressed Y It is read from memory (Ymem). パイプラインの次の段階は、そのアドレスがXm The next stage of the pipeline, the address is Xm
em間接アドレス指定モードでDAGEN X内でまたは係数アドレス・モードでDAGEN Cオペレータで生成されているメモリ・オペランドが読み取られる読取り(P5)段階212である。 em is an indirect address is generated by the DAGEN C operator within DAGEN X or factor address mode designation mode read the memory operand is read (P5) stage 212. 命令の結果が書き込まれるべきメモリ位置のアドレスが生成される。 Address of the memory location to result is written in the instructions are generated.

【0029】最後は、Aユニット110またはDユニット112のいずれかで命令が実行される実行(P6)段階214である。 [0029] Finally, the execution of instructions in either the A Unit 110 or the D Unit 112 is executed (P6) is a step 214. 次に、その結果がデータ・レジスタすなわち累算器に記憶されるか、読取り/変更/書込み命令用のメモリに書き込まれる。 Then, whether the result is stored in a data register or accumulator, or written to memory for Read / Modify / Write instructions. 更に、シフト操作が、実行段階中に累算器でデータについて行われる。 Additionally, shift operations are performed on data in accumulators during the EXEC stage. プロセッサ100のパイプラインは保護されている。 Pipeline of processor 100 are protected. これにより、NOP命令が待ち時間の要求を満たすために挿入される必要がなくなるので、Cコンパイラ性能が大幅に向上する。 Thus, the need to NOP instructions are inserted in order to meet the requirements of latency is eliminated, C compiler performance is greatly improved. また、これにより、前の生成プロセッサから後の生成プロセッサへのコード変換が非常に容易になる。 This also, the code conversion to generate the processor after the previous generation processor becomes very easy.

【0030】プロセッサ100で用いられるパイプライン保護の基本的規則は、次の通りである。 The basic rules of a pipeline protection used by the processor 100 is as follows. 実行中の読取りアクセスが終了する前に書込みアクセスが開始され、 Write access is initiated before the read access during execution ends,
かつ、両方のアクセスが同じ資源を共用する場合は、追加のサイクルが挿入されて、書込みを完了させ、更新されたオペランドで次の命令を実行することができるようにするが、エミュレーションについては、単一ステップ・コード実行がフリーランニング・コード実行と全く同様に行われなければならない。 And, if both access share the same resources, and additional cycles are inserted, to complete the writing, the updated operands to be able to execute the next instruction, for emulation, single-step code execution must behave exactly as free running code execution.

【0031】パイプライン・プロセッサの動作の基本的原理について、図5を参照して以下に説明する。 The basic principle of operation for a pipeline processor will now be described with reference to FIG. 図5から分かるように、第1の命令302では、連続するパイプライン段階が時間T 1 〜T 7の間に実行される。 As can be seen from FIG. 5, for a first instruction 302, the successive pipeline stages are executed during the time T 1 through T 7. 各時間は、プロセッサ・マシン・クロックの1クロック・サイクルである。 Each time period is a clock cycle for the processor machine clock. 第2の命令304は、時間T 2にパイプラインに入ることができる。 The second instruction 304, can enter the pipeline in period T 2. なぜなら、前の命令はすでに次のパイプライン段階に移っているからである。 This is because the previous instruction is because already moved on to the next pipeline stage. 命令3 Instruction 3
(306)では、事前取出し段階202が時間T 3に起こる。 In (306), the PRE-FETCH stage 202 occurs in time T 3. 図5から分かるように、第7段階のパイプラインでは、7命令全部を同時に処理することができる。 As can be seen from FIG. 5, for a seven stage pipeline, it is possible to simultaneously process a total of 7 instructions. 7つの命令302〜314全部に対して、図5は、時間T 7 Seven instructions 302-314 against all, FIG. 5, the time T 7
で処理中であるそれらすべてを示す。 In a processing showing them all. このような構造は、命令の処理に並列形式を付加する。 Such a structure adds a form of parallelism to the processing of instructions.

【0032】図6に示すように、本発明のこの実施の形態は、24ビットのアドレス・バス118および32ビットの双方向データ・バス120を介して外部プログラム記憶ユニット150に結合されているメモリ・インターフェース・ユニット104を含む。 As shown in FIG. 6, this embodiment of the present invention, a memory coupled to an external program storage unit 150 via the 24-bit address bus 118 and 32-bit bidirectional data bus 120 - an interface unit 104. また、メモリ・インターフェース・ユニット104は、24ビットのアドレス・バス114および双方向の16ビットのデータ・ Further, the memory interface unit 104, the data of 16 bits of 24-bit address bus 114 and bidirectional
バス116を介してデータ記憶ユニット151に結合されている。 It is coupled to the data storage unit 151 via the bus 116. メモリ・インターフェース・ユニット104 The memory interface unit 104
は、32ビットのプログラム読取りバス(PB)122 The 32-bit program read bus (PB) 122
を介してマシン・プロセッサ・コア102のIユニット106にも結合されている。 It is also coupled to the I Unit 106 of the machine processor core 102 via a. Pユニット108,Aユニット110およびDユニット112は、データ読取りおよびデータ書込みバスとこれに対応するアドレスバスとを介してメモリ・インターフェース・ユニット104に結合されている。 P Unit 108, A Unit 110 and D Unit 112 is coupled to the memory interface unit 104 via the address bus corresponding to the data read and data write bus. Pユニット108はプログラム・アドレス・バス128に更に結合されている。 P Unit 108 is further coupled to a program address bus 128.

【0033】より詳しく述べると、Pユニット108 To describe in more detail than the [0033], P unit 108
は、24ビットのプログラム・アドレス・バス128と2つの16ビットのデータ書込みバス(EB,FB)1 The 24-bit program address bus 128 and two 16-bit data write buses (EB, FB) 1
30,132と2つの16ビットのデータ読取りバス(CB,DB)134,136とを介してメモリ・インターフェース・ユニット104に結合されている。 30,132 and two 16-bit data read buses (CB, DB) are coupled to the memory interface unit 104 via the 134. Aユニット110は、2つの24ビットのデータ書込みアドレス・バス(EAB,FAB)160,162と2つの16ビットのデータ書込みバス(EB,FB)130, A unit 110, the two 24 bit data write address buses (EAB, FAB) 160, 162 and two 16-bit data write buses (EB, FB) 130,
132と3つのデータ読取りアドレス・バス(BAB, 132 and three data read address bus (BAB,
CAB,DAB)164,166,168と2つの16 CAB, DAB) 164,166,168 and two 16
ビットのデータ読取りバス(CB,DB)134,13 Bit data read buses (CB, DB) 134,13
6とを介してメモリ・インターフェース・ユニット10 The memory interface unit 10 via the 6
4に結合されている。 It is attached to the 4. Dユニット112は、2つのデータ書込みバス(EB,FB)130,132と3つのデータ読取りバス(BB,CB,DB)144,134, D unit 112, the two data write buses (EB, FB) 130, 132 and three data read buses (BB, CB, DB) 144,134,
136とを介してメモリ・インターフェース・ユニット104に結合されている。 It is coupled to the memory interface unit 104 via the 136.

【0034】図6は、124でIユニット106からP [0034] Figure 6, P from the I Unit 106 at 124
ユニット108への命令の受け渡し、例えば分岐命令を送ることを表す。 Passing instructions to the unit 108, it represents the sending for example the branch instruction. また、図6は、126および128でIユニット106からAユニット110およびDユニット112へのデータの受け渡しを表す。 Further, Figure 6 represents the passing of data from the I Unit 106 to the A Unit 110 and D Unit 112 at 126 and 128.

【0035】図7に示すように、プロセッサ100は統一プログラム/データ空間の周りに組織化されている。 As shown in FIG. 7, the processor 100 is organized around a unified program / data space.
プログラム・ポインタは、内部では24ビットであって、バイトアドレス指定機能を持つが、プログラムの取出しが常に32ビット境界で行われるので22ビットのアドレスだけがメモリに送られる。 Program pointer, within a 24-bit, but with the byte addressing capability, only 22 bits of address because extraction program is always performed on a 32 bit boundary is sent to the memory. しかし、例えばソフトウエア開発のためのエミュレーション中は、ハードウエア区切り点を実現するために全24ビットのアドレスが与えられる。 However, for example, during emulation for software development, the full 24 bit address is provided for hardware breakpoint implementation. データ・ポインタは7ビットの主データ・ページで拡張された16ビットであり、語アドレス指定機能を有する。 Data pointer is a 16-bit extended with the main data page of the 7-bit, with the word address specified functions.

【0036】ソフトウエアは最大3主データ・ページを次のように定義する。 The software can define up to 3 main data pages in the following manner. ・MDP 直接アクセス 間接アクセス CDP ・MDP05 − 間接アクセス AR[0〜5] ・MDP67 − 間接アクセス AR[6〜7] スタックは、維持されて、主データ・ページ0に常駐する。 · MDP Direct access Indirect access CDP · MDP05 - Indirect access AR [0~5] · MDP67 - Indirect access AR [6~7] stack, is maintained, resident in the main data page 0. CPUメモリ・マップ・レジスタは全てのページから見える。 CPU memory mapped registers are visible from all the pages. プロセッサ100の種々の態様を表2に要約する。 Various aspects of processor 100 are summarized in Table 2.

【0037】 [0037]

【表2】 [Table 2]

【0038】ソフトウェアまたはハードウェアのデバッグを実行するために、先に引用した米国特許第5,329,47 [0038] In order to perform the debugging of software or hardware, US Patent No. cited above 5,329,47
1号(ゲリー・スボボダに発行)に記載されているように、種々のソフトウェアまたはハードウェアの事象に応答してホストプロセッサが種々の内部レジスタの内容をディスプレイできるよう、テスト中のマイクロプロセッサにエミュレーションホストプロセッサを接続することが知られている。 No. 1 as described in (issued to Gary Suboboda), so that the host processor in response to an event of various software or hardware can display the contents of various internal registers, emulation microprocessor under test it is known to connect a host processor. ソフトウェア事象はプログラム内の命令をソフトウェアブレークポイント命令に置換することによって生成できる。 Software events can be generated by replacing instructions in a program in the software breakpoint instruction. テスト中のマイクロプロセッサによってこのソフトウェアブレークポイント命令が実行される際に、ホストプロセッサが呼び出される。 By the microprocessor under test when the software breakpoint instruction is executed, the host processor is invoked. 同様に、 Similarly,
ソフトウェアブレークポイント命令を実行することによってテスト中のマイクロプロセッサ上のデバッグソフトウェアを呼び出すこともできる。 It is also possible to call the debug software on the microprocessor under test by executing the software breakpoint instruction.

【0039】当初ロードされていた命令の代わりに、プロセッサに実行を停止させる命令と置き換えることにより、ソフトウェアブレークポイントを実現できる。 [0039] Instead of the instruction that has been initially loaded, by replacing an instruction to stop execution processor, it is possible to realize a software breakpoint. ソフトウェアブレークポイントを設定する際にエミュレーションソフトウェアは次のステップを使用する。 Emulation software when setting the software breakpoint using the following steps.

【0040】1. [0040] 1. デバッガーがソフトウェアブレークポイントに置換すべき命令のバイトアドレスを指定する。 Debugger to specify the byte address of the instruction to be replaced by the software breakpoint. 2. 2. エミュレーションソフトウェアがそのバイトアドレスでスタートするプログラムの一部、一般には64ビットを読み出す。 Part of the program emulation software is started at the byte address, generally read the 64-bit. 3. 3. エミュレーションソフトウェアがパラレリズム、ソウトデュアリズムなどを考慮して元の命令のサイズを判断する。 Emulation software parallelism, to determine the size of the original instruction in consideration of the Souto dual rhythm. 4. 4. エミュレーションソフトウェアが元の命令と同じサイズのソフトウェアブレークポイント命令を選択し、これをプログラムメモリに書き込む。 Emulation software to select the software breakpoint instruction of the same size as the original instruction, writes this into the program memory. 5. 5. 次にメモリを読み出し、その結果と書き込まれた内容とを比較することにより、メモリ内にソフトウェアブレークポイントが存在することを、エミュレーションソフトウェアが確認する。 Then read the memory, by comparing the contents written as a result, the presence of software breakpoints in memory, emulation software is confirmed. 指定されたアドレスがリードオンリーメモリ(ROM)である場合、ソフトウェアブレークポイントの使用は不可能であり、その代わりにハードウェアブレークポイントを使用する。 If the specified address is a read only memory (ROM), the use of software breakpoint is impossible to use a hardware breakpoint instead.

【0041】エミュレーションにより使用するためのプロセッサ100の命令セット内にいくつかの命令が設けられている。 [0041] Some instruction in the instruction set of the processor 100 for use is provided by the emulation. ソフトウェアブレークポイントに対してはESTOP 0命令が使用される。 ESTOP 0 instruction is used for the software breakpoint. エミュレータを接続すると、このESTOP 0命令はPCがESTOP When you connect the emulator, the ESTOP 0 instruction PC is ESTOP
0命令をポイントした状態でプロセッサ命令を停止させる。 0 instruction to stop the processor instructions at the point the state. この命令は、デバッガーのソフトウェアブレークポイントを実現するのに使用される。 This instruction is used to implement software breakpoints debugger. エミュレータが接続されていない(ランステートマシン(RSM)はEXE Emulator is not connected (run state machine (RSM) is EXE
_CONT状態である)場合、この命令は有効にNOP A is) when _CONT state, this instruction effectively NOP
であり、PCはESTOP 0命令を通過してインクリメントする。 In it, PC increments through the ESTOP 0 instruction. この命令はDECODEパイプ段階で有効である。 This instruction is useful in DECODE pipe stage. ESTOP 0命令に対しては2つのフォーマット、すなわち32ビットフォーマットと8ビットフォーマットとがある。 ESTOP 0 2 two formats for instruction, that is, the 32-bit format and 8-bit format. 置換すべき所定の元の命令に対しては置換命令として8ビットまたは32ビットのESTO 8-bit or 32-bit ESTO as a replacement instruction for a given original instruction to be replaced
P0命令のいずれかが使用される。 P0 any of the instructions are used. 元の命令サイズに対し、ソフトウェアブレークポイントをパッディングするために、8ビットのNOP命令または16ビットのNO To the original instruction size, to padding the software breakpoint, the 8-bit NOP instruction or a 16-bit NO
P命令を添付する。 Attach a P instruction. ソフトウェアブレークポイント命令の置換によって並列命令は置換すべき単一命令として扱われる。 Parallel instructions by replacement of the software breakpoint instruction is treated as a single instruction to be substituted. 従って、SWBP−ESTOP()命令とNO Therefore, SWBP-ESTOP () instruction and NO
P命令との組み合わせに対しては、本実施例の命令のセットの各命令長さフォーマットに一致させるための組み合わせ命令長さフォーマットがある。 For the combination of the P instruction, a combination instruction length format for matching each instruction length format of a set of instructions of the present embodiment.

【0042】ESTOP 0命令はアセンブリ言語では定義されておらず、エミュレーションソフトウェアで使用されるにすぎない。 [0042] ESTOP 0 instruction is not defined in assembly language, not only to be used by the emulation software. この命令のエンコーディングは「estop_0()」(0x92)と「estop_ Encoding of this instruction is "estop_0 ()" (0x92) and "estop_
32()」(0xFD000000)である。 Is 32 () "(0xFD000000). PCがE PC is E
STOP 1命令を通過して進むことを除けば、EST Except that proceeds through the STOP 1 instruction, EST
OP 1命令はESTOP 0命令に類似している。 OP 1 instruction is similar to the ESTOP 0 instruction. この命令はアプリケーション内にブレークポイントを埋め込むのに使用される。 This instruction is used to embed a breakpoint in the application. この埋め込みブレークポイントはエミュレータに接続されている間、または接続されていない間に使用できる。 The embedded breakpoint can be used while during or not connected, are connected to the emulator. エミュレータに接続されているケースでは、埋め込まれたブレークポイントはソフトウェアブレークポイントのように働き、接続されていないケースでは、埋め込まれたブレークポイントはリアルタイムオペレーションシステム(RTOS)(またはモニタプログラム)にエミュレーショントラップを発生し、エミュレーションリクエストのサービスをすることができる。 In the case that are connected to the emulator, the embedded breakpoint acts like a software breakpoint, connected in have not case, the are embedded breakpoint emulation trap in real time operation system (RTOS) (or monitor program) the generated, it is possible to set the emulation request service. エミュレーション事象が構成されていない場合、この命令は有効にNOP命令となる。 If the emulation event is not configured, the instruction will be effectively NOP instruction. この命令は、DEC This instruction, DEC
ODEパイプ段階で有効であり、この命令は並列なペアのいずれかの位置で発生できる。 Is effective in ODE pipe stage, the instruction can be generated at any position of the parallel pair. ESTOP 1のアセンブリニモニックおよびエンコーディングな'esto Assembly mnemonic and encoding of ESTOP 1 a 'esto
p_1()'(0x2AC1)である。 It is a p_1 () '(0x2AC1).

【0043】次に、図8〜15を参照し、ESTOP命令の作動および使用についてより詳細に説明する。 Next, with reference to FIG. 8-15, described in more detail operation and use of the ESTOP instruction. 図8 Figure 8
は、ソフトウェアブレークポイント命令を実行中の、先に説明した命令パイプラインの略図である。 It is running a software breakpoint instruction, a schematic representation of the instruction pipeline described above. 本発明の1 1 of the present invention
つの特徴はソフトウェアブレークポイントの命令に応答してエミュレーション中のアセンブリ言語命令の境界で命令の実行を停止したいというニーズに関連している。 One of the features are related to needs for stopping the execution of the instruction in assembly language instructions boundary in emulation in response to the instruction for software breakpoints.
本プロセッサコアの実施例の命令パイプライン内で、一旦、アドレス段階(P4)を命令が入力すると、エミュレーション目的のためにこの命令をアボートすることはできない。 In the instruction pipeline of the embodiment of the present processor core, once the instruction address phase (P4) is input, it is not possible to abort the command for emulation purposes. スプリアスなメモリアクセスが実行されないように、この命令は完了しなければならない。 As spurious memory access is not executed, this instruction must be completed.

【0044】更に図8を参照すると、時間800において、パイプラインの4つの段階P3、P2、P1およびP0にそれぞれ命令のシーケンスからの4つの命令、 [0044] With further reference to FIG. 8, at time 800, the four instructions of four stages P3, P2, sequences of each instruction P1 and P0 of the pipeline,
A、B、CおよびESTOPのステータスが示されている。 A, B, status of C and ESTOP are shown. 明瞭にするために、段階P4〜P6における命令のシーケンスからの別の命令は示されていない。 For clarity, another instruction from the sequence of instructions in step P4~P6 are not shown. ESTO ESTO
Pはソフトウェアのブレークポイント命令である。 P is a breakpoint instruction of the software. 時間802において、各命令はそれぞれ次のパイプライン段階に進んでいるが、新しい命令Dはプリフェッチ(事前取り出し)段階に入っている。 At time 802, each instruction respectively proceed to the next pipeline stage, new instruction D has entered the pre-fetch (prefetch) stage. 時間804では、各命令はそれぞれの次のパイプライン段階に進んでおり、新しい命令Eはプリフェッチ段階に入っている。 At time 804, each instruction is progressing in each of the next pipeline stage, new instruction E has entered the prefetch stage. 時間804 Time 804
では、復号化段階P2においてESTOP命令が復号化中であり、時間806では各命令はそれぞれの次のパイプライン段階に進んでおり、新しい命令Fはプリフェッチ(事前取り出し)段階に入っている。 In, ESTOP instruction in the decoding step P2 is being decoded, the instruction at time 806 and proceeds to the respective next pipeline stage, new instruction F has entered the pre-fetch (prefetch) stage.

【0045】ESTOP命令を復号化した後に、820 [0045] After decoding the ESTOP instruction, 820
に示されるように、アドレス段階にNULLがジャミングされる。 As shown in, NULL the address phase is jamming. このNULLは非オペレーション命令NOP This NULL non-operation instruction NOP
に類似しているが、NULLはPCをインクリメントしないし(すなわちCPUのステートは変わらないままである)、CPUステートのプログラマモデルも変更しない(すなわちステータスビットは変わらない)。 Is similar to, NULL is do not increment the PC (i.e. remains unchanged the CPU state), CPU state programmers model do not change (i.e. status bits are not changed). アドレスP3から実行P6までのすべてのパイプライン段階内にNULL命令がジャミングされている際には、CPU When the NULL command is jamming in all pipeline stages from the address P3 to perform P6, CPU
は「停止されている」と見なされる。 It is considered as being "stop".

【0046】本実施例のパイプラインは次の特性で作動する。 The pipeline of this embodiment operates in the following characteristics. ・パイプラインのアドレス段階前では、レジスタまたはメモリの変化は生じない。 The pipeline address phase before, the change in the register or memory does not occur. プリフェッチ(事前取り出し)、フェッチ(取り出し)または復号化段階にフェッチされている命令は、廃棄することができるし、プログラマのモデルのステーとを変えることなく、後に再フェッチすることができる。 Prefetch (prefetch), fetch instructions that are fetched (taken out) or the decoding phase, can to can be discarded, without changing the stay programmer model, re-fetched later. ・アドレスまたはその後の段階(アクセス、読み出し、 Address or subsequent stage (access, read,
実行)において生じるレジスタまたはメモリの変化は、 Change in the register or memory occurring in execution), the
アドレス段階前の命令(すなわち割り込みまたは分岐によりアドレス前の段階の内容は廃棄され得る)に依存しない。 (The contents of the address prior to the step by i.e. interrupt or branch may be discarded) address phase previous instruction does not depend on. ・アドレスおよびその後のパイプライン段階を完了できるようにしながら、アドレス前のパイプライン段階の内容を廃棄する行為はパイプラインのフラッシングと称される。 Address and while allowing complete subsequent pipeline stage, the act of discarding the contents of the pipeline stage before the address is referred to as the flushing of the pipeline.

【0047】(エミュレーションプログラムがディスプレイするような)PCレジスタは、パイプラインのアドレス段階内の命令のアドレスを一般にホールドする。 [0047] (such as emulation program display) PC register holds the address of the instruction in the address phase of the pipeline in general. これは命令ジャムが発生しないと仮定したときに、次に「実行」すべき命令である。 This is assuming that the instruction jamming does not occur, it is then "Run" should do instruction.

【0048】ソフトウェアブレークポイント命令は命令のアドレス段階の開始時にデバッグ事象を生じさせる。 The software breakpoint instruction causes a debug events at the start of the instruction address stage.
ブレークポイント命令が(デバッガーによってセットされるような)ESTOP 0である場合、PCは実行中のESTOP命令のアドレスをポイントするが、(コードに埋め込まれているような)ESTOP 1に対してはPCはESTOP命令後のアドレスをポイントする。 When a breakpoint instruction is zero (as set by the debugger) ESTOP, PC points to the address of the ESTOP instruction being executed, but (as embedded in the code) for the ESTOP 1 PC It points to the address after the ESTOP instruction.
いずれのケースにしろ、ステータスビットは前の値から変化しない。 In any case, the status bits are not changed from the previous value.

【0049】エミュレータホストがプロセッサ100に接続されていないか、またはデバッグソフトウェアがエミュレーションをディスエーブルすると、ESTOP命令はNOPとして扱われ、このESTOP命令の後でプログラムカウンタはインクリメントされる。 [0049] When the emulator host is not connected to the processor 100, or debug software disables the emulation, ESTOP instruction is treated as a NOP, the program counter after this ESTOP instruction is incremented.

【0050】図9は、サブルーチンコール中のプログラム実行のフローをフローチャートである。 [0050] Figure 9 is a flowchart of the flow of the program execution in the subroutine call. サブルーチン内では次のコードシーケンスに示されるようにスタックポインタ相対アドレシングを使って変数がアクセスされる。 Within the subroutine variables using the stack pointer relative addressing it is accessed as shown in the following code sequence.

【0051】 [0051]

【表3】 [Table 3]

【0052】上記コードシーケンスでは用語「 * SP [0052] The term in the above code sequence "* SP
(offset_var1)」は値(offset_v (Offset_var1) "is the value (offset_v
ar1)によってスタックポインタSPに対するメモリロケーションにあるデータ値をフェッチすることを示す。 Indicates that fetching data value in the memory location for the stack pointer SP by ar1). コンパイラーはコンパイルプロセス中の各変数の相対的アドレスを計算し、スタックに変数をプッシュした後、「dCall func_a」命令を実行することに応答し、プログラムカウンタPCの値をプッシュする遅延されたCALL(DCALL)命令が実行される。 The compiler calculates the relative address of each variable in the compilation process, after pushing the variable in a stack, in response to executing a "DCall func_a" instruction, the program counter CALL delayed to push the value of PC ( DCALL) instruction is executed.
DCALL命令の後の命令の命令長さに基づき、プロセッサ100によってリータンアドレスが形成される。 Based on the instruction length of the instruction after the DCALL instruction, Lee Tan address is formed by the processor 100. 本命例パイプラインはプログラムフローを変更する命令後の遅延スロット、例えばDCALL、JUMP、Bra Favorite example delay slot after the instruction pipeline to change the program flow, for example DCALL, JUMP, Bra
nchなどを含む。 nch, and the like. 本明細書ではこれらタイプの命令を「不連続命令」と称す。 It is referred to herein as these types of instruction and "discontinuous instruction". 命令パイプラインがフラッシュされている間、遅延スロットによって不連続命令後の1 While instruction pipeline is flushed, after discontinuous commanded by delay slot 1
つ以上の命令の実行が可能となる。 One or more of the execution of the instruction is possible.

【0053】更に図9を参照すると、ここにはプログラム例が示されており、このプログラムには第1部分90 [0053] Still referring to FIG. 9, here is a program example shown, this program first portion 90
0におけるあるシーケンスの命令と、遅延スロット90 Instructions of a sequence in 0, the delay slot 90
1内の1つ以上の命令と、第2部分902におけるあるシーケンスの命令とを含む。 It includes one and more instructions in one and the instructions of a sequence in the second portion 902. 命令A、BおよびCは90 Instructions A, B and C are 90
0におけるシーケンスを示す。 It shows a sequence in 0. 命令メモリの異なる部分にはサブシーケンス905が設けられており、不連続命令910の結果、906に示されるようにサブルーチン905へプログラムフローが転送される。 The different parts of the instruction memory and subsequence 905 is provided, the result of the discrete instructions 910, program flow to a subroutine 905 as shown in 906 is transferred. 遅延スロット901の間、命令DおよびEが実行される。 During the delay slot 901, instruction D and E are executed. サブルーチン905の完了後、プログラムフローは907に示されるように命令Fで開始するシーケンス902にリターンする。 After completion of the subroutine 905, the program flow returns to sequence 902 that starts with command F as shown in 907.

【0054】図10A〜10Cは、ソフトウェアブレークポイント命令と組み合わせた、図9のサブルーチンコール中のリータンアドレスの計算を示す時間ラインである。 [0054] FIG 10A~10C is combined with the software breakpoint instruction, a time line showing the calculation of Lee Tan addresses in subroutine calls FIG. 本発明の特徴によれば、プロセッサ100の命令セットはいくつかの異なる命令長さフォーマットを含む。 According to a feature of the present invention, the instruction set of the processor 100 includes a number of different instruction lengths format.
プロセッサ100は可変長さの命令を有するので、遅延スロット内の命令の各々を復号化し、これらの組み合わされた長さを決定することにより、不連続命令のためのリータンアドレスを計算する。 Since the processor 100 has instructions variable length decodes each instruction in the delay slot, by determining these combined length, to calculate the Lee Tan address for discrete instructions. 図10Aは命令DおよびEの双方は、1バイトの長さL1およびL2をそれぞれ有する1バイト命令であるケースを示す。 Figure 10A is both instructions D and E show the case of 1-byte instruction having 1-byte length L1 and L2, respectively. このケースでは、リータンアドレスはn+2(ここでnは不連続命令Cの後のプログラムカウンタの値である)となるように計算される。 In this case, the Li Tan address is calculated to be n + 2 (where n is the value of the program counter after discontinuous instruction C). 図10Bはリータンアドレスがn+7となるように計算されるよう、命令Dが6バイトの長さL1 Figure 10B is to be calculated as Li Tan address is n + 7, the instruction D is a 6-byte length L1
を有するケースを示す。 A case having a show. 同様に、図10Cは命令Eが3 Similarly, FIG. 10C instruction E is 3
バイトの長さL2を有し、よってリータンアドレスがn It has a byte length L2, thus Lee Tan address n
+4に計算されるケースを示す。 It shows a case that is calculated +4. ここで、これら図ではDCALL命令は不連続命令Cとして示されているが、 Here, DCALL instructions in these figures are shown as a discontinuous instruction C,
この説明はプロセッサ100の命令セット内の任意の不連続命令に当てはまる。 The description applies to any discrete instructions in the instruction set of the processor 100.

【0055】プログラムシーケンス内の任意の命令をソフトウェアブレークポイント命令に置換し、ソフトウェアまたはハードウェアのデバッグを実行できるようにすることが好ましい。 [0055] replacing any instructions of a program sequence in the software breakpoint instruction, it is preferable to allow debugging of software or hardware. プロセッサ100の本実施例内でリータンアドレスを正しく計算できるようにするには、プロセッサ100の命令セット内の命令の各長さに対し、 To Lee Tan address correctly calculated in the present embodiment of the processor 100, for each length of instructions in the instruction set of the processor 100,
ソフトウェアブレークポイント命令が存在していなければならない。 Software breakpoint instruction must be present. 先に説明したように、プロセッサの命令セットは8ビット、16ビット、24ビットおよび32ビットの命令長さフォーマットを含む。 As described above, the instruction set of the processor includes an 8-bit, 16-bit, 24-bit and 32-bit instruction length formats. 更に、命令バッファユニット106により2つの命令を単一サイクルで並列に復号化し、かつ実行できるので、命令実行パイプラインは40ビットの命令長さフォーマットと48ビットの命令長さフォーマットを取り扱う。 Moreover, two instructions by the instruction buffer unit 106 decodes in parallel in a single cycle, and so can be executed, the instruction execution pipeline handles 40-bit instruction length format and 48-bit instructions Length Format. 換言すれば、プロセッサ100の命令セット内には効果的に6つの異なる命令長さフォーマットが設けられている。 In other words, effectively six different instruction lengths formats is provided in the instruction set of the processor 100. 各命令長さフォーマットごとに1つずつ、総計6つの異なるソフトウェアブレークポイント命令を設けることが、本発明の特徴となっている。 One for each instruction length format, be provided a total of six different software breakpoint instructions, and has a feature of the present invention.

【0056】本発明の別の特徴は、より少数のソフトウェアブレークポイント命令と、多数の非オペレーション命令とを組み合わせ、ソフトウェアブレークポイント命令の必要な数を低減することである。 [0056] Another aspect of the present invention is to reduce the fewer software breakpoint instruction, combining a number of non-operation instruction, the required number of software breakpoint instruction. これにより、命令デコーダ512および514が認識しなければならない命令の数は有利なことに少なくなっている。 Thus, the number of instructions that instruction decoder 512 and 514 must recognize is fewer can advantageously.

【0057】図11は、本発明の特徴に係わる、非オペレーション命令との組み合わせにより形成される種々の長さブレークポイント命令を示すチャートである。 [0057] Figure 11 is related to the feature of the present invention, a variety of chart indicating the length breakpoint instructions formed by combination of a non-operation instruction. ソフトウェアブレークポイント命令の2つの種類が設けられている。 Two types of software breakpoint instruction is provided. すなわち8ビットの長さ1110のestop That 8-bit length 1110 ESTOP
1100と、32ビットの長さ1113のestop_ 1100, 32-bit length 1113 Estop_
32とが設けられている。 32 and is provided. 別の理由からプロセッサ10 Processor from another reason 10
0の命令セット内には並列イネーブルビットを備えた非オペレーション命令の2つの変形命令が設けられている。 The 0 in the instruction set two variants instructions non operation instruction having a parallel enable bit is provided. すなわち8ビットの長さのNOPと16ビットの長さのNOP_16とが設けられている。 Namely NOP_16 of 8-bit length NOP and 16-bit length is provided. 図4を参照して説明するように、命令のペアの1つにおいて、並列イネーブルビットをセットすることにより、プロセッサ10 Figure 4 as described with reference to, in one instruction pair, by setting the parallel enable bit, the processor 10
0内の命令を組み合わせることができる。 Instruction within 0 can be combined. 従って、2つのestop命令のうちの選択された1つとNOP命令のうちの選択された1つとを組み合わせ、NOP命令における並列イネーブルビットをセットすることにより、 Thus, the combination of a selected one of the one NOP instruction is selected from among the two estop instructions, by setting a parallel enable bit in NOP instructions,
8ビットの長さ1110、16ビットの長さ1111、 8-bit length 1110,16 bit length 1111,
24ビットの長さ1112、32ビットの長さ111 24 the length of the bit 1112,32 bit length 111
3、40ビットの長さ1114または48ビットの長さ1115を有するソフトウェアブレークポイント命令が設けられる。 3,40 software breakpoint instruction having a bit length 1114 or 48-bit length 1115 is provided.

【0058】エミュレーションソフトウェアは先に述べたように、ソフトウェアブレークポイント命令の置換を行う前に、パラレリズムおよびソフトデュアル方式を考慮して、置換すべき命令の命令フォーマットを計算する。 [0058] As the emulation software discussed above, prior to the replacement of software breakpoint instructions, taking into account the parallelism and soft dual scheme, to calculate the instruction format of the instruction to be replaced.

【0059】図12は、リターンアドレスを計算するための命令バッファユニット内で使用される種々のレジスタの、より詳細なブロック図である。 [0059] Figure 12, the various registers used in the instruction buffer unit for calculating the return address, is a more detailed block diagram. ターゲットレジスタ1200は、不連続命令のターゲットアドレスをホールドする。 Target register 1200 holds the target address of the non-consecutive instruction. 書き込みプログラムカウンタ530、ローカル書き込みプログラムカウンタ532、読み出しプログラムカウンタ534およびローカル読み出しプログラムカウンタ536については、図4を参照して説明したとおりである。 Writing program counter 530, local write a program counter 532, reading the program counter 534 and local read program counter 536 is as described with reference to FIG. 一時的読み出しプログラムカウンタ121 Temporarily reading the program counter 121
0および一時的書き込みプログラムカウンタ1220 0 and temporary writing program counter 1220
は、スタック1230に値が書き込まれている間に、これら値をホールドする。 , While the value in the stack 1230 is written and holds them values.

【0060】図13は、図9および10A〜10Cを参照して先に説明したように、サブルーチンコール中の命令パイプラインの作動を示すタイミング図である。 [0060] Figure 13, as previously described with reference to FIGS. 9 and 1OA - 1OC, a timing diagram illustrating the operation of the instruction pipeline during a subroutine call. 時間1300において、1310に示されるように不連続命令が復号化される。 At time 1300, the discontinuous instruction is decoded, as shown in 1310. 時間1306では、LCRPCレジスタ536の内容は、1312に示されるようにT1R At time 1306, the contents of LCRPC register 536, T1R as shown in 1312
PCレジスタ1210へ転送される。 It is transferred to the PC register 1210. 次に、1314に示されるように、スタック1230へ内容が書き込まれる。 Next, as shown in 1314, the contents are written to the stack 1230. 従って、スタックに先のリターンアドレスがセーブされる。 Therefore, the previous return address is saved to the stack. 1313に示されるように、時間1308中にLCFPC内にDCALL1310のためのリターンアドレスがセーブされる。 As shown in 1313, the return address for DCALL1310 in LCFPC during the time 1308 is saved. LCRPCは実際にはスタック(TOS)のトップであり、本実施例のスタックアーキテクチャはレジスタであるTOSによりパイプライン化される。 LCRPC is the top of the stack in practice (TOS), a stack architecture of the present embodiment is pipelined by TOS is a register.

【0061】図13を参照すると、「@SR(p− [0061] Referring to FIG. 13, "@ SR (p-
1)」は現在のリターンアドレス「@SR(p)」と反対に、先のリターンアドレスを示す。 1) "is the opposite of the current return address" @SR (p) ", indicating the previous return address. 例えばDCALL For example DCALL
命令にはSR(p)がセーブされ、DCALLのリターンアドレスがSR(p)となる。 Instruction SR (p) is saved in, the return address of DCALL becomes the SR (p). レジスタT1RPCにはSR(p−1)が記憶され、一方、レジスタLCRP SR (p-1) is stored in the register T1RPC, whereas, register LCRP
CにはSR(p)が記憶される。 The C SR (p) is stored. これらレジスタの値はスタックに漏れ、よって多数のネスト状のDCALLすなわち割り込みなどがサポートされる。 The values ​​of these registers are leaks in the stack, thus like many nested DCALL i.e. interrupts are supported.

【0062】図14は、1410に示されるDCALL [0062] FIG. 14 DCALL is, as shown in 1410
命令後の第1遅延スロット内におかれたソフトウェアブレークポイント命令SWBPを実行する間の命令パイプラインの作動を示すタイミング図である。 It is a timing diagram illustrating the operation of the instruction pipeline while performing placed in the first delay slot following the instruction software breakpoint instruction SWBP. 好ましいことに、ソフトウェアブレークポイント命令は、この命令に置き換えた命令と同じ長さであるので、同じリターンアドレスを計算し、LCRPCに記憶し、1420に示されるようにスタック1230に先のリターンアドレスを記憶する。 Advantageously, the software breakpoint instruction, since it is the same length as the instruction replaced by the instruction, the same return address is calculated and stored in LCRPC, the previous return address on the stack 1230 as shown in 1420 Remember.

【0063】図15は、1510に示されるDCALL [0063] Figure 15 DCALL is shown in 1510
命令後の第2遅延スロット内におかれたソフトウェアブレークポイント命令SWBPを実行する間の命令パイプラインの作動を示すタイミング図である。 It is a timing diagram illustrating the operation of the instruction pipeline while performing placed in the second delay slot after instruction software breakpoint instruction SWBP. 図14と同じように、このソフトウェアブレークポイント命令はこの命令に置換した命令と同じ長さとなっているので、同じリターンアドレスを計算し、LCRPCに記憶し、先のリターンアドレスを1520に示されるようにスタック1230に記憶する。 As with FIG. 14, since the software breakpoint instruction has a same length as the instruction is replaced with this instruction, the same return address is calculated and stored in LCRPC, as indicated ahead return address to 1520 It is stored in the stack 1230.

【0064】図16は、プロセッサ100を内蔵する集積回路の概要を示す。 [0064] Figure 16 shows an overview of an integrated circuit incorporating the processor 100. 図示するように、集積回路は表面取付け用の複数の接点を含む。 As shown, the integrated circuit includes a plurality of contacts for surface mounting. しかし、集積回路は他の形状でもよい。 However, the integrated circuit may have other shapes. 例えば、ゼロ・インサーション・フォース・ソケットに取り付けるため回路の下面に複数のピンを備えるものや、任意の他の適当な形状でよい。 For example, those comprising a plurality of pins on a lower surface of the circuit for mounting in a zero insertion-force socket, or may be any other suitable shape.

【0065】図17は、統合キーボード12およびディスプレイ14を備えた移動電話のような移動通信装置でかかる集積回路を実現する例を示す。 [0065] Figure 17 shows an example of realizing an integrated circuit according in a mobile communication device such as a mobile telephone with integrated keyboard 12 and display 14. 図17に示すように、プロセッサ100を備えるディジタル装置10は、 As shown in FIG. 17, the digital device 10 comprising a processor 100,
必要に応じてキーボード・アダプタ(不図示)を介してキーボード12に、必要に応じてディスプレイ・アダプタ(不図示)を介してディスプレイ14に、また、無線周波数(RF)回路16に接続されている。 The keyboard 12 via a keyboard adapter (not shown) as needed, to the display 14 via a display adapter (not shown) if necessary, also connected to a radio frequency (RF) circuit 16 . 無線周波数(RF)回路16はアンテナ18に接続されている。 Radio frequency (RF) circuit 16 is connected to an antenna 18.

【0066】データ処理デバイス100の製造は、種々の量の不純物を半導体基板に注入するステップと不純物を基板内の選択された深さに拡散させてトランジスタ・ [0066] Production of the data processing device 100, the transistor by diffusing step and the impurity implanting various amounts of impurities into a semiconductor substrate to a selected depth within the substrate
デバイスを形成するステップとの多重ステップを含む。 It includes multiple steps of forming a device.
マスクは、不純物の位置を制御するために形成される。 Mask is formed to control the position of the impurity.
導電材料および絶縁材料の多重層が堆積されエッチングされて種々のデバイスを相互に接続する。 Conductive material and multiple layers of insulation material is being deposited and etched to interconnect the various devices. これらのステップはクリーン・ルーム環境で行われる。 These steps are carried out in a clean room environment.

【0067】データ処理デバイスの製造コストのかなりの部分は試験関係である。 [0067] substantial portion of the manufacturing cost of the data processing device involves testing. ウエハ状態で、個々のデバイスをある動作状態にバイアスして、基本的な動作機能性を試験する。 In a wafer state, biased in an operating state with the individual devices are tested basic operational functionality. 次に、ウエハを個々のダイに分割して、ダイのままでまたはパッケージ化して販売する。 Then, by dividing the wafer into individual dies, to sell or packaged remains die. パッケージ化した後、完成品を動作状態までバイアスして、動作機能性を試験する。 After packaging, finished parts are biased into an operational state and tested for operational functionality.

【0068】本発明の別の実施の形態は、組合せ機能のゲート総数を削減するために、ここに開示された回路を組み合わせた別の回路を含む。 [0068] Another embodiment of the present invention, in order to reduce the gate total number of combinations function comprises another circuit combining circuit disclosed herein. ゲート最小化のための技術は当業者には既知であるので、かかる実施の形態についてはここで説明しない。 Since techniques for gate minimization is known to those skilled in the art and will not be described herein for such an embodiment.

【0069】ソフトウェアブレークポイント命令の別の実施例は3つ以上の命令長さフォーマットを有することができる。 [0069] Another embodiment of a software breakpoint instruction may have three or more instructions length format. 同様に、異なる命令のコード化も使用できる。 Similarly, it can be used encode the different instruction.

【0070】プロセッサ100の別の実施例はより多数の命令パイプライン段階を有することができ、ソフトウェアブレークポイント命令は異なるパイプライン段階内で効果を発揮できる。 Another embodiment of the [0070] processor 100 can have a greater number of instruction pipeline stages, the software breakpoint instruction may effective in different pipeline stages. 更に、別の実施例における命令長さフォーマットの数はプロセッサ100の3つのフォーマット長さよりも多くても良いし、少なくてもよい。 Furthermore, the number of instructions length format in another embodiment may be more than three formats length of the processor 100, may be less.

【0071】以上で、高いコード密度および容易なプログラミングの双方を提供するプログラマブルデジタル信号プロセッサ(DSP)であるプロセッサについて説明した。 In [0071] has been described above the processor is a programmable digital signal processor which provides both high code density and easy programming (DSP). アーキテクチャおよび命令セットは電力消費量を少なくし、DSPアルゴリズム、例えば無線電話だけでなく、純粋な制御作業用のアルゴリズムを高い効率で実行できるように最適化される。 Architecture and instruction set to reduce the power consumption, DSP algorithms, as well as for example, a wireless telephone, is optimized to execute pure algorithm for controlling the work at high efficiency. このプロセッサは命令バッファユニットと、この命令バッファユニットにより復号化される命令を実行するためのデータ計算ユニットとを含む。 The processor includes an instruction buffer unit, and a data computation unit for executing the instructions decoded by the instruction buffer unit. デバッグ目的のためにソフトウェアブレークポイント命令が設けられ、遅延スロット中にソフトウェアブレークポイント命令を実行する際の命令パイプラインの作動を正しくエミュレートするためには、ソフトウェアブレークポイントの幅を置換する命令と同一にしなければならない。 Software breakpoint instruction is provided for debugging purposes, in order to properly emulate the operation of the instruction pipeline when executing the software breakpoint instruction in the delay slot instructions for replacing the width of the software breakpoint It must be the same. 限られた数のブレークポイント命令長さフォーマットと非オペレーション命令とを組み合わせ、 Combining a limited number breakpoint instruction length formats and non-op,
任意の命令長さフォーマットと一致する、多数の組み合わせ命令を形成する。 Consistent with any instruction length format, to form a large number of combinations instructions. 好ましいことに、限られた数のソフトウェアブレークポイント命令を定義し、多数の命令長さフォーマットを提供しながら、これを復号化するだけでよい。 Advantageously, to define a limited number software breakpoint instruction, while providing a number of instruction length formats, it is only necessary to decrypt it. 例えば、本実施例では、6つの異なる命令長さフォーマットを有する命令と置換するのに、2種類のソフトウェアブレークポイント命令しか必要でない。 For example, in this embodiment, to replace the instruction with six different instruction lengths format, two types of software breakpoint instructions only necessary.

【0072】好ましいことに、本発明の特徴によりDC [0072] preferable to, DC According to a feature of the present invention
ALL命令の遅延スロット内にソフトウェアブレークポイントを挿入することが可能となっている。 It is possible to insert a software breakpoint delay slot of ALL instruction. 有利なことに、この遅延スロットは任意の長さでよく、デバッグシステムは遅延スロットの長さに一致するように、SWB Advantageously, the delay slot can be any length, debugging the system to match the length of the delay slot, SWB
P命令の長さを調節できる。 You can adjust the length of the P instruction. 有利なことに、例えば遅延スロットにおいて、SWBPを任意の命令でサポートすることにより、本発明に係わるプロセッサを任意の命令でインターラプトすることができる。 Advantageously, for example in a delay slot, by supporting SWBP at any instruction, it is possible to interrupt the processor according to the present invention in any instruction. これにより、デバッグ動作中のCPUステートマシンの観測可能性が改善される。 Thus, observability of CPU state machine during debugging operation can be improved.

【0073】本明細書で使用した「印加した」、「接続された」および「接続」なる用語は、電気的な接続を意味するものであり、電気的接続経路内に別の要素が存在していても良い。 [0073] "the applied" used herein, "connected" and becomes "connected" term is intended to mean an electrical connection, another element is present in the electrical connection path even though it may.

【0074】以上で、図示した実施例を参照して、本発明について説明したが、この説明は限定的な意味に解してはならない。 In [0074] above with reference to illustrative embodiments, the invention has been described, this description is not to be construed in a limiting sense. 当業者がこの説明を読めば、本発明の他の種々の実施例が明らかとなろう。 The person skilled in the art upon reading this description, other various embodiments of the present invention will become apparent. 従って、添付した特許請求の範囲は発明の要旨および範囲内に入る実施例のかかる変形例をカバーするものである。 Accordingly, the appended claims are intended to cover modifications consuming embodiments falling within the spirit and scope of the invention.

【0075】以上の説明に関して更に以下の項を開示する。 [0075] discloses a further following section with respect to the above description. (1)マイクロプロセッサを備え、該マイクロプロセッサが、第1の複数の命令フェッチ長さから選択された第1の長さを有する、命令メモリからフェッチされた命令を復号化するように作動する命令バッファユニットと、 (1) equipped with a microprocessor, the microprocessor has a first length selected from a first plurality of instruction fetch length, operates to decode an instruction fetched from the instruction memory instructions and a buffer unit,
命令バッファユニットによって復号化された命令を実行するためのデータ計算ユニットと、命令メモリに提供される命令アドレスを発生するようになっている、プログラムカウンタとを備え、前記命令バッファユニットが前記第1の複数の命令長さフォーマットのいずれかに等しい長さを有するよう選択された第1のソフトウェアブレークポイント命令を復号化するように作動できる、デジタルシステム。 A data computation unit for executing the instructions decoded by the instruction buffer unit, and generates an instruction address provided in the instruction memory, and a program counter, the instruction buffer unit is the first a plurality of instructions of the first software breakpoint instruction selected to have a length equal to one length format operable to decode the digital system.

【0076】(2)組み合わされた第2のソフトウェアブレークポイント命令と第1の非オペレーション命令とをデータ計算ユニットにより1つの前記第1のソフトウェアブレークポイント命令として扱うように、命令バッファが1回のサイクルで第1の非オペレーション命令と組み合わされた第2のソフトウェアブレークポイント命令を復号化するように作動できる、第1項記載のデジタルシステム。 [0076] (2) combined second and software breakpoint instruction and the first non-operation instruction to treat as a single first software breakpoint instruction by the data computation unit, the instruction buffer is one operable to decode the second software breakpoint instruction combined with a first non-operational instruction cycle, the digital system of Claim 1 wherein.

【0077】(3)前記第2の複数の命令長さフォーマットが、前記第1の複数の命令長さフォーマットよりも小さくなるように、前記第2のソフトウェアブレークポイント命令が前記第2の複数の命令長さフォーマットから選択された第2の命令長さフォーマットを有する、第2項記載のデジタルシステム。 [0077] (3) the second plurality of instructions length format, the first to be smaller than the plurality of instructions length format, the second software breakpoint instruction is the second plurality of having a second instruction length format selected from the instruction length format, digital system according the second term.

【0078】(4)キーボードアダプタを介し、プロセッサに接続された統合されたキーボードと、ディスプレイアダプタを介し、プロセッサに接続されたディスプレイと、プロセッサに接続された無線周波数(RF)回路と、このRF回路に接続されたアンテナとを更に備えた、セルラー電話である先の請求項のいずれかに記載のデジタルシステム。 [0078] (4) via a keyboard adapter, a keyboard integrated coupled to the processor via a display adapter, a display connected to the processor, a radio frequency (RF) circuitry connected to the processor, the RF further comprising an antenna connected to the circuit, a digital system according to any of the preceding claims is a cellular phone.

【0079】(5)プロセッサコアに関連した命令メモリからのプログラムカウンタに応答し、命令をフェッチし、第1の複数の命令長さフォーマットを有する命令のセットから命令のシーケンスを選択するようになっているプロセッサコアの命令パイプラインにおいて、命令のシーケンスを実行する工程と、前記命令のシーケンス内の第1の命令長さフォーマットを有する第1の命令を、 [0079] (5) in response to a program counter from an instruction memory associated with the processor core fetches instructions, adapted to select a sequence of instructions from a set of instructions having a first plurality of instructions Length Format in it are processor cores instruction pipeline, comprising the steps of: executing a sequence of instructions, the first instruction having a first instruction length format in the sequence of instructions,
第2の複数の命令長さフォーマット有する複数のソフトウェアブレークポイント命令から選択した第1の命令長さフォーマットを有する第1のソフトウェアブレークポイント命令に置換する工程と、前記命令のシーケンスの第1部分を実行した後に前記第1のソフトウェアブレークポイント命令を実行することにより、実行シーケンスをブレークする工程と、前記第1のソフトウェアブレークポイント命令を命令シーケンス内の前記第1の命令に置換することにより、前記命令のシーケンスの実行を再開する工程とを備えた、デジタルシステムを作動させるための方法。 A step of substituting the first software breakpoint instruction having a first instruction length format selected from a plurality of software breakpoint instruction having a second format plurality of instructions length, a first portion of said sequence of instructions by executing the first software breakpoint instruction after executing a step of breaking the execution sequence by replacing the first software breakpoint instruction in the first instruction in the instruction sequence, the execution of an instruction sequence and a resume process, a method for operating a digital system.

【0080】(6)第2の複数の命令長さフォーマットから、第2の命令長さフォーマットを有する第2のソフトウェアブレークポイント命令を選択する工程と、第3 [0080] (6) a second plurality of instructions length format, and selecting the second software breakpoint instruction having a second instruction length format, the third
の複数の命令長さフォーマットから、第3の長さを有する第1の非オペレーション命令を選択する工程と、第2 A plurality of instruction length formats, the step of selecting a first non-operational instruction having a third length of the second
の命令長さと第3の命令長さとを組み合わせた長さが、 The instruction length and the combined length of the third instruction length,
前記第1の命令長さに等しくなるよう、前記第2のソフトウェアブレークポイント命令と前記第1の非オペレーション命令とを組み合わせる工程によって、第1のソフトウェアブレークポイント命令を形成する、第5項記載の方法。 The first instruction to be equal to the length, the step of combining said second software breakpoint instruction first non operation instruction, forming a first software breakpoint instruction, the fifth Claims Method.

【0081】(7)前記組み合わせる工程が、前記第2 [0081] (7) wherein the combining step is, the second
のソフトウェアブレークポイント命令と前記第1の非オペレーション命令とを命令パイプライン内で並列に実行すべきことを表示することを含む、第5項記載の方法。 It includes displaying a software breakpoint instruction and the first non-operation instruction should be executed in parallel with the instruction pipeline, the method of paragraph 5, wherein.

【0082】(8)前記第2の複数の命令長さフォーマットが前記第2の複数の命令長さフォーマットよりも少ない、第5項記載の方法。 [0082] (8) the second plurality of instructions length format is less than said second plurality of instructions length format, the method of paragraph 5, wherein.

【0083】(9)前記命令のシーケンスの第1部分において、前記第2の命令を実行した結果生じた遅延スロット内で前記第1のソフトウェアブレークポイント命令を実行し、不連続タイプの命令である第2の命令により、前記第2の命令のシーケンスまでの分岐を生じさせ、前記第1の命令のシーケンス内に前記第1の命令が存在している場合と同じ値を有するリターンアドレスを記憶する工程を前記第2の命令を実行する工程が含む、 [0083] (9) In the first part of the sequence of instructions, to execute the first software breakpoint instruction within said second delay slot execute the resulting instruction is the discontinuous type of instruction the second instruction, the second cause branching to a sequence of instructions to store a return address having the same value as if the first instruction in the first instruction in the sequence is present the step of executing the second instruction step comprises found
第5項記載の方法。 The method of paragraph 5, wherein.

【0084】(10)前記第1の命令が命令パイプ内で並列に実行すべき命令セットから選択された少なくとも2つの命令の組み合わせである、第5項記載の方法。 [0084] (10) the first instruction is a combination of at least two of the instructions selected from the instruction set to be executed in parallel in the instruction pipe, the method of paragraph 5, wherein.

【0085】(11)前記第2の複数の命令長さフォーマットが、前記第2の複数の命令長さフォーマットよりも少なく、前記第1の命令が前記命令パイプ内で並列に実行すべき命令セットから選択された少なくとも2つの命令の組み合わせであり、前記命令のシーケンスの第1 [0085] (11) the second plurality of instructions length format, the second less than a plurality of instructions length format, the instruction set of the first instruction to be executed in parallel in the instruction pipe at least two combinations of instructions selected from a first sequence of instructions
部分において、前記第2の命令を実行した結果生じた遅延スロット内で前記第1のソフトウェアブレークポイント命令を実行し、不連続タイプの命令である第2の命令により、前記第2の命令のシーケンスまでの分岐を生じさせ、前記第1の命令のシーケンス内に前記第1の命令が存在している場合と同じ値を有するリターンアドレスを記憶する工程を前記第2の命令を実行する工程が含む、第7項記載の方法。 In part, the second executes the first software breakpoint instruction instruction in the delay slot executes the resulting a, the second instruction is discontinuous type of instruction, the second instruction sequences causing a branch to the first step of executing the second instruction the step of storing a return address instruction has the same value as if exists includes the first instruction in the sequence the method according paragraph 7.

【0086】(12)プロセッサ、すなわち高いコード密度および容易なプログラム性の双方を提供する、プログラマブルデジタル信号プロセッサ(DSP)であるプロセッサ(100)が提供される。 [0086] (12) processor, that provides both high code density and easy programmability, the processor is a programmable digital signal processor (DSP) (100) is provided. 電量消費量を少なくし、かつDSPアルゴリズム、例えば無線電話のみならず純粋な制御作業用のアルゴリズムの実行の効率を高くするように、アーキテクチャおよび命令セットが最適にされる。 To reduce the coulometric consumption, and DSP algorithms, for example to increase the efficiency of execution of the algorithm for wireless telephones not only pure control tasks, the architecture and instruction set are optimized. デバッグ用のソフトウェアブレークポイント命令も提供される。 Software breakpoint instruction for debugging is also provided. 遅延スロット中にソフトウェアブレークポイント命令を実行する際に、命令パイプラインの作動を正しくエミュレートするために、ソフトウェアブレークポイントの幅(1110〜1115)は置換された命令と同じとなっている。 When executing the software breakpoint instruction in the delay slot, in order to properly emulate the operation of the instruction pipeline, the software breakpoint width (1110 to 1115) has become the same as the instruction that has been replaced. 非オペレーション命令(NO Non-operation instruction (NO
P、NOP_16)と限られた数のブレークポイント命令長さフォーマット(1100、1102)とが組み合わされ、命令長さフォーマットと一致する多数の組み合わせ命令を形成する。 P, NOP_16) and a limited number of breakpoint instructions Length Format and (1100, 1102) are combined to form a large number of combinations instruction that matches the instruction length formats.

【0087】本願は1999年3月8日に欧州において出願された欧州特許出願第99400558.5号(T [0087] This application is March 1999 European Patent Application No. 99400558.5 filed in Europe on 08 (T
I−27761EU)および1999年10月6日に欧州において出願された欧州特許出願第9840245 I-27761EU) and 1999 filed in Europe on October 6 European Patent Application No. 9,840,245
5.4号(TI−28433EU)に基づく優先権を主張するものである。 Which claims priority based on 5.4 No. (TI-28433EU).

【図面の簡単な説明】 BRIEF DESCRIPTION OF THE DRAWINGS

【図1】本発明の実施例に係わるプロセッサのブロック略図である。 1 is a block schematic diagram of a processor according to an embodiment of the present invention.

【図2】図1のプロセッサのコアの略図である。 Figure 2 is a schematic diagram of the processor core FIG.

【図3】プロセッサのコアの種々の実行ユニットの、より詳細なブロック略図である。 [Figure 3] of the various execution units of the processor core is a more detailed block schematic.

【図4】プロセッサのうちの命令バッファキューおよび命令デコーダの略図である。 4 is a schematic representation of an instruction buffer queue and an instruction decoder of the processor.

【図5】プロセッサのパイプラインの作動を説明するための、プロセッサのコアの略図である。 [Figure 5] for explaining the operation of the processor pipeline, a schematic representation of the core of the processor.

【図6】メモリ管理ユニットの相互接続されたメモリを示すプロセッサのブロック図である。 6 is a block diagram of a processor showing the interconnected memory of the memory management unit.

【図7】プロセッサのプログラムメモリスペースとデータメモリスペースとの統一された構造を示す。 Figure 7 shows the unified structure of the processor the program memory space and data memory space.

【図8】ソフトウェアブレークポイントメモリを実行中の命令パイプラインの略図である。 FIG. 8 is a schematic representation of the instruction pipeline running software breakpoint memory.

【図9】サブルーチンコール中のプログラム実行フローを示すフローチャートである。 9 is a flowchart showing a program execution flow during a subroutine call.

【図10】ソフトウェアブレークポイント命令と組み合わせた、図9のサブルーチンコール中のリターンアドレスの計算を示す時間図であり、そのうちの図10Aは命令DおよびEがそれぞれ1バイトの長さL1およびL2 [10] software in combination with a breakpoint instruction, a time diagram illustrating the calculation of the return address in subroutine calls 9, Figure 10A instructions D and E are each 1 byte lengths L1 and L2 of which
を有する1バイト命令のケースを示し、図10Bは命令Dが6バイトの長さL1を有するケースを示し、図10 Shows the case of 1-byte instructions having, Figure 10B shows a case having an instruction D is a 6-byte lengths L1, FIG. 10
Cは命令Eが3バイトの長さL2を有するケースを示す。 C denotes a case having a length L2 of the instruction E is 3 bytes.

【図11】本発明の特徴に係わる非オペレーション命令との組み合わせによって形成された、種々の長さブレークポイント命令を示すチャートである。 [11] formed by the combination of the non-operation instruction according to the characteristics of the present invention, a chart showing various lengths breakpoint instruction.

【図12】図4の命令バッファユニットで使用される種々のレジスタの、より詳細なブロック図である。 [Figure 12] of the various registers used in the instruction buffer unit in FIG. 4 is a more detailed block diagram.

【図13】サブルーチンコール中の命令パイプラインの作動を示すタイミング図である。 13 is a timing diagram illustrating the operation of the instruction pipeline during a subroutine call.

【図14】DCALL命令後の第1遅延スロット内に入れられたソフトウェアブレークポイント命令の実行中の命令パイプラインの作動を示すタイミング図である。 14 is a timing diagram illustrating the operation of the instruction pipeline during execution of DCALL instruction software breakpoint instruction placed in the first delay slot of post.

【図15】DCALL命令後の第2遅延スロット内に入れられたソフトウェアブレークポイント命令の実行中の命令パイプラインの作動を示すタイミング図である。 15 is a timing diagram illustrating the operation of the instruction pipeline during execution of DCALL instruction software breakpoint instruction second placed in the delay slot after.

【図16】プロセッサを内蔵する集積回路の略図である。 16 is a schematic diagram of an integrated circuit incorporating a processor.

【図17】図1のプロセッサを内蔵する通信デバイスの略図である。 17 is a schematic illustration of a communication device incorporating a processor of FIG.

【符号の説明】 DESCRIPTION OF SYMBOLS

20 プロセッサ・バックプレーン 22 ASICバックプレーン 24 メモリ 26 周辺装置 28 外部インターフェース 100 プロセッサ 102 プロセッサコア 104 メモリ管理ユニット 20 Processor backplane 22 ASIC backplane 24 memory 26 peripheral 28 external interface 100 processor 102 processor core 104 Memory Management Unit

フロントページの続き (72)発明者 マーク ビュセル アメリカ合衆国 ペンシルバニア、ピッツ バーグ、 ドウイ アベニュー 329 (72)発明者 エリック ポンソ フランス国 バンス、ルート ド カニュ ー、347、レドン ド ラコスト Of the front page Continued (72) inventor mark Byuseru United States Pennsylvania, Pitts Berg, agree Avenue 329 (72) inventor Eric Ponceau France Vance, route de cannulation over, 347, Redon de Lacoste

Claims (2)

    【特許請求の範囲】 [The claims]
  1. 【請求項1】 マイクロプロセッサを備え、該マイクロプロセッサが、 第1の複数の命令フェッチ長さから選択された第1の長さを有する、命令メモリからフェッチされた命令を復号化するように作動する命令バッファユニットと、 命令バッファユニットによって復号化された命令を実行するためのデータ計算ユニットと、 命令メモリに提供される命令アドレスを発生するようになっている、プログラムカウンタとを備え、 前記命令バッファユニットが前記第1の複数の命令長さフォーマットのいずれかに等しい長さを有するよう選択された第1のソフトウェアブレークポイント命令を復号化するように作動できる、デジタルシステム。 Comprising a 1. A microprocessor, the microprocessor, operating so as to have a first length selected from a first plurality of instruction fetch length decodes the instruction fetched from the instruction memory It includes an instruction buffer unit, a data computation unit for executing the instructions decoded by the instruction buffer unit, and generates an instruction address provided in the instruction memory, and a program counter for the instruction operable to buffer unit to the first decoding software breakpoint instruction selected to have a length equal to one of said first plurality of instructions length format, the digital system.
  2. 【請求項2】 プロセッサコアに関連した命令メモリからのプログラムカウンタに応答し、命令をフェッチし、 Wherein in response to a program counter from an instruction memory associated with the processor core fetches instructions,
    第1の複数の命令長さフォーマットを有する命令のセットから命令のシーケンスを選択するようになっているプロセッサコアの命令パイプラインにおいて、命令のシーケンスを実行する工程と、 前記命令のシーケンス内の第1の命令長さフォーマットを有する第1の命令を、第2の複数の命令長さフォーマット有する複数のソフトウェアブレークポイント命令から選択した第1の命令長さフォーマットを有する第1のソフトウェアブレークポイント命令に置換する工程と、 前記命令のシーケンスの第1部分を実行した後に前記第1のソフトウェアブレークポイント命令を実行することにより、実行シーケンスをブレークする工程と、 前記第1のソフトウェアブレークポイント命令を命令シーケンス内の前記第1の命令に置換することにより In the first plurality of which the processor core so as to select the sequence of instructions from a set of instructions that instruction with a length format of the instruction pipeline, comprising the steps of: executing a sequence of instructions, the first in the sequence of instructions a first instruction having a first instruction length format, the first software breakpoint instruction having a first instruction length format selected from a plurality of software breakpoint instruction having a second length format plurality of instructions a step of substituting, by executing the first software breakpoint instruction after executing a first portion of said sequence of instructions, the step of breaking the execution sequence, the first software breakpoint instruction sequence of instructions by replacing the first instruction of the inner 前記命令のシーケンスの実行を再開する工程とを備えた、 And a step resumes execution of the sequence of instructions,
    デジタルシステムを作動させるための方法。 The method for operating a digital system.
JP2000062443A 1998-10-06 2000-03-07 Software breakpoint in delay slot Pending JP2000259408A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19990400558 EP0992906B1 (en) 1998-10-06 1999-03-08 Apparatus and method for software breakpoint in a delay slot
EP99400558.5 1999-03-08

Publications (1)

Publication Number Publication Date
JP2000259408A true true JP2000259408A (en) 2000-09-22

Family

ID=8241910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000062443A Pending JP2000259408A (en) 1998-10-06 2000-03-07 Software breakpoint in delay slot

Country Status (1)

Country Link
JP (1) JP2000259408A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331201A (en) * 2005-05-27 2006-12-07 Matsushita Electric Ind Co Ltd Instruction execution device, debugging method, debugging device and debugging program
CN1329831C (en) * 2002-12-18 2007-08-01 三洋电机株式会社 Microcomputer and its estimation device
CN100395716C (en) 2002-12-18 2008-06-18 三洋电机株式会社 Micorcomputer and its estimation device
US8082467B2 (en) 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8495341B2 (en) 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
US8938605B2 (en) 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US9104399B2 (en) 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1329831C (en) * 2002-12-18 2007-08-01 三洋电机株式会社 Microcomputer and its estimation device
CN100395716C (en) 2002-12-18 2008-06-18 三洋电机株式会社 Micorcomputer and its estimation device
JP2006331201A (en) * 2005-05-27 2006-12-07 Matsushita Electric Ind Co Ltd Instruction execution device, debugging method, debugging device and debugging program
JP4718901B2 (en) * 2005-05-27 2011-07-06 パナソニック株式会社 Instruction execution device, debugging method, debugging device and debugging programs
US8082467B2 (en) 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9104399B2 (en) 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US9135005B2 (en) 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions

Similar Documents

Publication Publication Date Title
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US5881257A (en) Data processing system register control
US6295600B1 (en) Thread switch on blocked load or store using instruction thread field
US6002881A (en) Coprocessor data access control
US6189094B1 (en) Recirculating register file
US5193157A (en) Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter
US6170001B1 (en) System for transfering format data from format register to memory wherein format data indicating the distribution of single or double precision data type in the register bank
US5574871A (en) Method and apparatus for implementing a set-associative branch target buffer
US5727227A (en) Interrupt coprocessor configured to process interrupts in a computer system
US5247627A (en) Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US6282634B1 (en) Apparatus and method for processing data having a mixed vector/scalar register file
US5045993A (en) Digital signal processor
US6230259B1 (en) Transparent extended state save
US5623617A (en) Method for decoding sequences of guest instructions for a host computer
Seshan High velociti processing [texas instruments vliw dsp architecture]
US7062526B1 (en) Microprocessor with rounding multiply instructions
US6021489A (en) Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US5881263A (en) Non-instruction base register addressing in a data processing apparatus
US5909567A (en) Apparatus and method for native mode processing in a RISC-based CISC processor
US6073215A (en) Data processing system having a data prefetch mechanism and method therefor
US6119203A (en) Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US7730287B2 (en) Method and software for group floating-point arithmetic operations
US6671797B1 (en) Microprocessor with expand instruction for forming a mask from one bit
US5784602A (en) Method and apparatus for digital signal processing for integrated circuit architecture