JP2002229776A - Data processor for executing multiple sets of instructions - Google Patents

Data processor for executing multiple sets of instructions

Info

Publication number
JP2002229776A
JP2002229776A JP2001013796A JP2001013796A JP2002229776A JP 2002229776 A JP2002229776 A JP 2002229776A JP 2001013796 A JP2001013796 A JP 2001013796A JP 2001013796 A JP2001013796 A JP 2001013796A JP 2002229776 A JP2002229776 A JP 2002229776A
Authority
JP
Japan
Prior art keywords
instruction
word
instruction word
iss
bit
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.)
Granted
Application number
JP2001013796A
Other languages
Japanese (ja)
Other versions
JP3644892B2 (en
Inventor
Minsei Ko
民晟 高
Keitetsu Ryo
景哲 梁
Nenji Kei
念慈 桂
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.)
Faraday Technology Corp
Original Assignee
Faraday Technology Corp
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 Faraday Technology Corp filed Critical Faraday Technology Corp
Priority to JP2001013796A priority Critical patent/JP3644892B2/en
Publication of JP2002229776A publication Critical patent/JP2002229776A/en
Application granted granted Critical
Publication of JP3644892B2 publication Critical patent/JP3644892B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data processor capable of executing multiple sets of instructions without requiring extra power consumption and without delaying a clock frequency. SOLUTION: The data processor is provided with a memory 210, a main instruction word processor core 200, a program counter register 220, a plurality of data registers 230, a processor state register 250 having an instruction set selector 260, a pre-decoder 270, an instruction fetching unit 280, a decoder 290, a program counter controller 225 aligning various instruction words in length, and a bus 215. The pre-decoder 270 converts the instruction words of types other than a specific type into the instruction words of the specific type and outputs them, thereby the program core 200 is merely required to process only the instruction words of the specific type.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、データ処理装置に
関するものである。より詳細には、本発明は、複数組の
命令組を実行するためのデータ処理装置に関するもので
ある。
[0001] The present invention relates to a data processing device. More specifically, the present invention relates to a data processing device for executing a plurality of instruction sets.

【0002】[0002]

【従来の技術および発明が解決しようとする課題】デー
タ処理装置は、通常、所定命令組からなるプログラム命
令ワードを実行するためのプロセッサコアを備えてい
る。プロセッサコアの他にも、データ処理装置は、実行
可能なプログラム命令ワードを格納するためのデータメ
モリと、次なる命令ワードについてのメモリ内のアドレ
スを指し示すためのプログラムカウンタレジスタと、を
備えている。しかしながら、このタイプのデータ処理装
置は、1組の命令組しか実行することができない。デー
タ処理装置が、2組以上の命令組を実行可能であって動
作可能なものであれば、ずっと便利でありずっと有効で
ある。
2. Description of the Related Art A data processing apparatus usually includes a processor core for executing a program instruction word including a predetermined instruction set. In addition to the processor core, the data processing device includes a data memory for storing an executable program instruction word and a program counter register for pointing to an address in the memory for the next instruction word. . However, this type of data processing device can only execute one set of instructions. It would be much more convenient and more effective if the data processing device could execute and operate more than one instruction set.

【0003】図1は、“Interoperability with multip
ul instruction sets” と題する米国特許明細書第6,
021,265号に開示されている、2組の命令組を実
行し得るよう構成された、従来のデータ処理装置の構造
を示すブロック図である。
[0003] FIG. 1 is a diagram showing “Interoperability with multip”.
U.S. Pat. No. 6, entitled "ul instruction sets"
FIG. 2 is a block diagram showing a structure of a conventional data processing device disclosed in Japanese Patent No. 021,265 and configured to execute two instruction sets.

【0004】図1に示すように、この従来のデータ処理
装置のプロセッサコア10は、レジスタバンク30と、
ブース掛算器40と、バレルシフタ50と、32ビット
の算術的論理ユニット(ALU)60と、書込データレ
ジスタ70と、を備えている。
As shown in FIG. 1, a processor core 10 of this conventional data processing apparatus includes a register bank 30 and
A booth multiplier 40, a barrel shifter 50, a 32-bit arithmetic logic unit (ALU) 60, and a write data register 70 are provided.

【0005】データ処理装置内の他の構成要素は、第1
の命令デコーダ&論理制御器100と、第2の命令デコ
ーダ&論理制御器110と、プログラムカウンタコント
ローラ140と、プログラムカウンタ(PC)130
と、掛算器90と、読込データレジスタ120と、命令
パイプライン80と、メモリシステム20と、である。
[0005] Other components in the data processing device include a first
Instruction decoder & logic controller 100, second instruction decoder & logic controller 110, program counter controller 140, program counter (PC) 130
, A multiplier 90, a read data register 120, an instruction pipeline 80, and the memory system 20.

【0006】従来のデータ処理装置においては、双方の
命令組に対してそれぞれ個別の命令デコーダ&論理制御
器を必要としていた。つまり、第1の命令デコーダ&論
理制御器100が、第1組の命令組をなすプログラム命
令ワードを解読し、第2の命令デコーダ&論理制御器1
10が、第2組の命令組をなすプログラム命令ワードを
解読する。第1組の命令組をなすプログラム命令ワード
は、通常、32ビットであり、第2組の命令組をなすプ
ログラム命令ワードは、通常、16ビットである。した
がって、プログラム制作者は、32ビットの命令組から
なるより有効な命令組を使用することもできるし、ま
た、16ビットの命令組からなるより有効な命令組を使
用してメモリを節約することもできる。
In the conventional data processing apparatus, separate instruction decoders and logic controllers are required for both instruction sets. That is, the first instruction decoder & logic controller 100 decodes the program instruction word forming the first instruction set, and the second instruction decoder & logic controller 1
10 decodes the second set of instruction program instruction words. The program instruction word of the first instruction set is typically 32 bits, and the program instruction word of the second instruction set is usually 16 bits. Thus, the programmer can use a more effective instruction set consisting of a 32-bit instruction set, and save memory by using a more effective instruction set consisting of a 16-bit instruction set. Can also.

【0007】当面の命令ワードを解読するのにどちらの
命令デコーダを使用するかを制御するために、制御手段
を設ける必要がある。この制御は、プログラムカウンタ
コントローラ140によって行われる。プログラムカウ
ンタコントローラ140は、プログラムカウンタ130
内の最も重要なビットまたは最も重要でないビットのい
ずれかをセットまたはリセットする。これにより、掛算
器90が制御されて、第1の命令デコーダ&論理制御器
100と第2の命令デコーダ&論理制御器110との間
の選択が行われる。
Control means must be provided to control which instruction decoder is used to decode the current instruction word. This control is performed by the program counter controller 140. The program counter controller 140 includes the program counter 130
Set or reset either the most or least significant bit in As a result, the multiplier 90 is controlled, and the selection between the first instruction decoder & logic controller 100 and the second instruction decoder & logic controller 110 is performed.

【0008】そのようなアーキテクチャーを有した従来
技術においては、命令組のタイプを、リアルタイムで決
定することができる。つまり、2組の命令組を互いに混
在させることができ、2組の命令組を個別に取り扱う必
要がない。しかしながら、この構成のためには、命令デ
コーダ&論理制御器が、2つ必要である。そのため、プ
ロセッサコア10の消費電力が多くなってしまうととも
に、チップサイズが大きくなってしまう。このことは、
消費電力が少なくかつ小型化されたプロセッサを開発し
ようとするトレンドにとっては、受け入れられないもの
である。
[0008] In the prior art having such an architecture, the type of instruction set can be determined in real time. That is, the two instruction sets can be mixed with each other, and there is no need to handle the two instruction sets individually. However, this configuration requires two instruction decoders & logic controllers. Therefore, the power consumption of the processor core 10 increases and the chip size increases. This means
This is unacceptable for the trend to develop smaller processors with lower power consumption.

【0009】2組の命令組を実行し得るよう構成され
た、他の従来のデータ処理装置は、“Multipul instruc
tions set mapping” と題する米国特許明細書第5,5
68,646号に開示されている。このアーキテクチャ
ーであると、当面のプログラム命令ワードの解読にどち
らの命令デコーダを使用するかを制御するために、制御
手段を設ける必要はない。つまり、プログラムカウンタ
内の最も重要なビットまたは最も重要でないビットのい
ずれかをセットまたはリセットする必要がない。
[0009] Another conventional data processor configured to execute two sets of instructions is the "Multipul instruc".
US Patent Specification No. 5,5 entitled "tions set mapping"
No. 68,646. With this architecture, there is no need to provide control means to control which instruction decoder is used to decode the current program instruction word. That is, there is no need to set or reset either the most significant bit or the least significant bit in the program counter.

【0010】パイプラインタイプのプロセッサにおいて
は、取込ステージ(パイプラインステージ)と解読ステ
ージと実行ステージとの3つのステージが存在する。こ
の特許文献は、データ処理時に解読ステージを利用し得
るような構成をもたらす。解読サイクル時においては、
マッピングステップと制御信号生成ステップとが行われ
る。互いに異なる命令組は、まず最初にマッピングさ
れ、主要命令組へと翻訳される。主要命令組は、その後
の実行ステージにおいて実行されることとなる。
In a pipeline type processor, there are three stages: an acquisition stage (pipeline stage), a decoding stage, and an execution stage. This patent document provides a configuration in which a decryption stage can be used during data processing. During the decryption cycle,
A mapping step and a control signal generation step are performed. Different instruction sets are mapped first and translated into the main instruction set. The main instruction set will be executed in a subsequent execution stage.

【0011】しかしながら、解読ステージ時に命令組を
マッピングする必要がある。そのため、解読ステージに
要する時間が多くなってしまう。このことは、高周波数
構成を実現できないことを意味している。加えて、ヒッ
ト速度が95%である場合においては、電力消費がかな
り大きなものとなってしまう。これらのことは、現在の
トレンドには合致しない。
However, it is necessary to map the instruction set during the decoding stage. Therefore, the time required for the decryption stage increases. This means that a high frequency configuration cannot be realized. In addition, when the hit speed is 95%, the power consumption becomes considerably large. These are not in line with current trends.

【0012】[0012]

【課題を解決するための手段】したがって、本発明の目
的は、余分な電力消費を要することなくまたクロック周
波数を遅くすることなく複数組の命令組を実行し得るよ
うなデータ処理装置を提供することである。
SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a data processing apparatus capable of executing a plurality of instruction sets without extra power consumption and without reducing a clock frequency. That is.

【0013】本発明によるデータ処理装置は、複数の命
令組の複数の命令ワードを格納するためのメモリと;複
数の命令ワードのうちの主要命令ワードを実行するため
のプロセッサコアと;メモリ内に格納されている次なる
命令ワードを指し示すためのプログラムカウンタレジス
タ(PC)と;ISビットと命令ワードタイプとを含む
データを格納するための複数のデータレジスタと;プロ
セッサコアの状態を格納するためのものであるととも
に、複数の命令組のうちの当面の命令組を指し示すため
の命令組セレクタ(ISS)を有しているプロセッサ状
態レジスタと;複数の命令組の少なくとも1つを主要命
令ワードへと翻訳して出力するためのプレデコーダと;
主要命令ワードを格納するするとともに、取り込んだ命
令のTAG情報とバリッド情報とISS情報とを保持す
るための命令取込器と;主要命令ワードを解読するため
のものであるとともに、解読した主要命令ワードをプロ
セッサコアによって実行し得るよう、解読した主要命令
ワードをプロセッサコアに提供するようになっているデ
コーダと;ISSに応じてPCの値を変更しこれにより
様々な主要命令ワードの長さを揃えるよう機能するプロ
グラムカウンタコントローラと;プレデコーダとメモリ
との間のインターフェースをなすバスと;を具備してい
る。
[0013] A data processing device according to the present invention includes a memory for storing a plurality of instruction words of a plurality of instruction sets; a processor core for executing a main instruction word of the plurality of instruction words; A program counter register (PC) for pointing to the next stored instruction word; a plurality of data registers for storing data including the IS bit and the instruction word type; and for storing the state of the processor core. A processor status register having an instruction set selector (ISS) for pointing to the current instruction set of the plurality of instruction sets; and at least one of the plurality of instruction sets to a main instruction word. A pre-decoder for translating and outputting;
An instruction fetcher for storing the main instruction word and holding TAG information, valid information and ISS information of the fetched instruction; and a main instruction word for decoding the main instruction word and decoding the main instruction word A decoder adapted to provide the decoded main instruction word to the processor core so that the word can be executed by the processor core; changing the value of the PC in response to the ISS, thereby reducing the length of the various main instruction words A program counter controller that functions to align and a bus that interfaces between the predecoder and the memory.

【0014】プロセッサコアは、主要命令組Aからの命
令ワードを実行し、実行結果と命令組のタイプ(IS)
とを、データレジスタ(R0〜R14)内にまたはプロ
グラムカウンタ内に、格納する。プログラム状態レジス
タ(PSR)は、各命令の実行後に、状況ビット、状態
ビット、および、モードビットを保持する。プレデコー
ダは、命令組セレクタPSR(ISS)に応じて命令ワ
ードを処理する。デコーダは、命令取込器から送られて
くる命令組Aの命令ワードを解読する。このデータ処理
装置においては、プロセッサコアは、命令組Aというた
だ1種類の命令組モードしか有していないけれども、プ
ロセッサコアは、プレデコーダおよびISSによって、
他の命令組に属するプログラム命令ワードを実行するこ
とができる。
The processor core executes the instruction word from the main instruction set A, and executes the execution result and the instruction set type (IS).
Are stored in the data registers (R0 to R14) or in the program counter. The program status register (PSR) holds status bits, status bits, and mode bits after execution of each instruction. The predecoder processes the instruction word according to the instruction set selector PSR (ISS). The decoder decodes the instruction word of the instruction set A sent from the instruction fetcher. In this data processor, the processor core has only one instruction set mode, instruction set A, but the processor core is configured by the predecoder and the ISS.
Program instruction words belonging to other instruction sets can be executed.

【0015】命令組の切換が起こるときには、1つまた
は複数の命令ワードが、複数のデータレジスタのうちの
第31〜1ビット内のブランチアドレスを特定すること
となる。ブランチ命令は、複数のレジスタの中の第31
〜1ビットをプログラムカウンタ内にコピーする。プロ
グラムカウンタのうちの最も重要でないビットは、常に
ゼロにセットされる。同時に、ブランチ命令は、複数の
レジスタの中の最も重要でないビットを、PSR内のI
SSへとコピーする。ブランチ命令の実行後には、プロ
グラムカウンタは、新たな命令組の第1命令(最初の命
令)を指し示すこととなり、ISSは、新たな命令組モ
ードを表すこととなる。プログラムカウンタによってア
ドレッシングされた新たな命令ワードがプレデコーダ内
に入力されたときには、新たな命令ワードの解読方式
は、新たなISS値に応じて決定される。ISSがBと
いう命令組の命令ワードを表している場合には、プレデ
コーダは、入力されてきた命令ワードを、命令組Bとし
て観測し、Bサブデコーダを使用して、その命令ワード
を命令組Aに属する命令ワードとして解読する。その
後、プレデコーダは、命令取込器に対して、命令組Aの
命令ワードを出力する。命令取込器は、プレデコーダか
らの出力をデータ部分内に取り込み、取り込んだ命令の
TAGビットとバリッドビットとISSビットとを更新
する。従来技術とは異なり、命令取込器のヒットは、V
(バリッドビット)が1に等しく、PCのタグビットが
TAG部分内のタグビットに等しく、かつ、PSR(I
SS)がTAG(ISS)に等しいことを意味してい
る。加えて、デコーダおよびプログラムコアは、常に、
命令組Aに属する命令ワードを取り扱うだけで良い。
When an instruction set switch occurs, one or more instruction words will specify a branch address in bits 31 through 1 of the data registers. The branch instruction is located at the 31st among the plurality of registers.
Copy ~ 1 bit into the program counter. The least significant bit of the program counter is always set to zero. At the same time, the branch instruction replaces the least significant bit in the registers with the I in the PSR.
Copy to SS. After execution of the branch instruction, the program counter will point to the first instruction (first instruction) of the new instruction set, and the ISS will indicate the new instruction set mode. When a new instruction word addressed by the program counter is input into the predecoder, the decoding method of the new instruction word is determined according to the new ISS value. If the ISS represents an instruction word of the instruction set B, the predecoder observes the input instruction word as the instruction set B, and uses the B subdecoder to convert the instruction word to the instruction set. Decode as an instruction word belonging to A. Thereafter, the predecoder outputs an instruction word of the instruction set A to the instruction fetcher. The instruction fetcher fetches the output from the predecoder into the data portion, and updates the TAG bit, the valid bit, and the ISS bit of the fetched instruction. Unlike the prior art, the instruction fetch hit is V
(Valid bit) is equal to 1, the tag bit of the PC is equal to the tag bit in the TAG portion, and PSR (I
SS) is equal to TAG (ISS). In addition, the decoder and program core always
It is only necessary to handle instruction words belonging to instruction set A.

【0016】上述の一般的な説明と後述の詳細な説明と
の双方は、例示のためのものであって、本発明を説明す
ることを意図したものであることは、理解されるであろ
う。
It will be understood that both the foregoing general description and the following detailed description are exemplary, and are intended to explain the present invention. .

【0017】[0017]

【発明の実施の形態】添付図面は、本発明のさらなる理
解をもたらすためのものであって、この明細書の一部を
なし、この明細書内に組み込まれる。添付図面は、本発
明のいくつかの実施形態を例示しており、説明を読むに
際して参照することによって、本発明の原理の理解に有
用である。
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are intended to provide a further understanding of the invention, are a part of this specification, and are incorporated in this specification. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings illustrate several embodiments of the present invention and, by reference to the description, may be helpful in understanding the principles of the invention.

【0018】以下、本発明の好ましい実施形態につい
て、詳細に説明する。本発明の好ましい実施形態は、添
付図面に例示されている。可能である限りにおいて、複
数の図面にわたって同一のまたは同様の部材について
は、同じ参照符号が使用されている。
Hereinafter, preferred embodiments of the present invention will be described in detail. Preferred embodiments of the present invention are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

【0019】図2には、複数組の命令組を実行するため
のデータ処理装置のブロック図が示されている。
FIG. 2 shows a block diagram of a data processing apparatus for executing a plurality of instruction sets.

【0020】本発明によるデータ処理装置は、複数組の
命令組を実行することができる。本発明によるデータ処
理装置は、プロセッサコア200と、メモリ210と、
プログラムカウンタレジスタ(PC)220と、複数の
データレジスタR0〜R14と、プロセッサ状態レジス
タ(PSR)250と、プレデコーダ270と、命令取
込器(Icache)280と、デコーダ290と、プログラ
ムカウンタコントローラ225と、バス215と、を備
えている。
The data processing apparatus according to the present invention can execute a plurality of instruction sets. The data processing device according to the present invention includes a processor core 200, a memory 210,
A program counter register (PC) 220, a plurality of data registers R0 to R14, a processor status register (PSR) 250, a predecoder 270, an instruction fetcher (Icache) 280, a decoder 290, and a program counter controller 225. And a bus 215.

【0021】メモリ210は、複数の命令ワード(例え
ば、A命令ワードまたはB命令ワード)またはデータを
格納するために使用される。プログラムカウンタレジス
タ(PC)220は、メモリ210内に格納された次な
る命令ワードをアドレッシングする(アドレスを指示す
る)ために使用される。データレジスタ(R0〜R1
4)230は、データまたは命令の結果を格納するため
に使用される。データレジスタには、2つのビット部分
が存在する。特定のブランチ命令が実行されるときに
は、1つまたは複数のビット部分は、命令組選択ビット
(IS)240として観測され、他のビット部分は、タ
ーゲットアドレス(TA)245として観測される。I
Sビットは、PSR(プロセッサ状態レジスタ)に対し
て格納されることとなり、TAビットは、PC(プログ
ラムカウンタ)に対して格納されることとなる。
The memory 210 is used to store a plurality of instruction words (eg, A instruction words or B instruction words) or data. Program counter register (PC) 220 is used to address (indicate an address) the next instruction word stored in memory 210. Data register (R0-R1
4) 230 is used to store data or the result of the instruction. The data register has two bit parts. When a particular branch instruction is executed, one or more bit portions are observed as instruction set select bits (IS) 240 and the other bit portions are observed as target addresses (TA) 245. I
The S bit will be stored in the PSR (processor status register) and the TA bit will be stored in the PC (program counter).

【0022】プロセッサ状態レジスタ(PSR)250
は、プロセッサコア200の状態を格納するために使用
される。プロセッサ状態レジスタ250は、現在の命令
組を示すための命令組セレクタ(ISS)260をなす
1つまたは複数のビットを有している。PSR(IS
S)は、R0〜R14の中の1つまたは複数のISビッ
トに従った特定のブランチ命令によって、セットするこ
とができる。
Processor status register (PSR) 250
Is used to store the state of the processor core 200. The processor status register 250 has one or more bits forming an instruction set selector (ISS) 260 for indicating the current instruction set. PSR (IS
S) can be set by a specific branch instruction according to one or more IS bits of R0 to R14.

【0023】プレデコーダ270は、1つまたは複数の
命令組を主要命令ワードへと翻訳するための1つまたは
複数のサブデコーダ272を含有している。主要命令ワ
ードは、デコーダ290を経由してプロセッサコア20
0によって実行されるために使用される。この実施形態
においては、プロセッサコア200は、主要命令ワード
のみを実行することによって単に実現することができ
る。しかしながら、本発明によるデータ処理装置は、プ
レデコーダ270によって複数の命令組を実行すること
ができる。理解を容易とするために、以下、主要命令ワ
ードを、『A』命令ワードと称し、その他の命令ワード
を、例えば、『B』や『C』等と称することにする。サ
ブデコーダ272は、PSR(ISS)260のビット
によって制御される。プレデコーダ270の出力は、A
命令ワードである。
The predecoder 270 contains one or more sub-decoders 272 for translating one or more instruction sets into a main instruction word. The main instruction word is sent to the processor core 20 via the decoder 290.
Used to be performed by 0. In this embodiment, processor core 200 can simply be implemented by executing only the main instruction word. However, the data processing apparatus according to the present invention can execute a plurality of instruction sets by the predecoder 270. In order to facilitate understanding, hereinafter, the main instruction word will be referred to as "A" instruction word, and the other instruction words will be referred to as "B", "C", and the like. The sub-decoder 272 is controlled by bits of the PSR (ISS) 260. The output of predecoder 270 is A
Instruction word.

【0024】デコーダ290は、A命令ワードを解読す
るために使用される。プロセッサコア200は、デコー
ダ290によって解読されたA命令ワードを実行するた
めに使用される。プログラムカウンタコントローラ22
5は、ISS260に応じて、プログラムカウンタ値
(PC値)を修正して、様々な命令組の長さに適合させ
る。バス215は、プレデコーダ270とメモリ210
との間のインターフェースである。
A decoder 290 is used to decode the A instruction word. Processor core 200 is used to execute the A instruction word decoded by decoder 290. Program counter controller 22
5 modifies the program counter value (PC value) according to the ISS 260 to adapt to the length of various instruction sets. The bus 215 connects the predecoder 270 and the memory 210
Is the interface between

【0025】図3は、本発明の好ましい実施形態におけ
る命令ワード実行フローを示すフローチャートである。
この場合、プロセッサに対して、2つの命令組が適用さ
れている。
FIG. 3 is a flowchart showing an instruction word execution flow in the preferred embodiment of the present invention.
In this case, two instruction sets are applied to the processor.

【0026】まず最初に、ステップ320において、複
数組の命令組がメモリ内に格納される。例えば、メモリ
は、A命令ワードとB命令ワードとを同時に格納する。
A命令ワードは、X個のビットであり、B命令ワード
は、Y個のビットである。各命令ワードは、それぞれ個
別のメモリアドレスに位置する。プロセッサコアが命令
ワードを実行するときには、プログラムカウンタは、常
に、次なる命令ワードが位置している次なるメモリアド
レスを指し示す。言い換えれば、プロセッサコアは、ス
テップ320において、プログラムカウンタを使用する
ことによって次なる命令ワードを要求する。XとYとが
等しくない場合には、PC値は、命令取込器内において
関連するA命令ワードアドレスへと翻訳される必要があ
る。
First, at step 320, a plurality of instruction sets are stored in memory. For example, the memory stores the A instruction word and the B instruction word at the same time.
The A instruction word is X bits and the B instruction word is Y bits. Each instruction word is located at a separate memory address. When the processor core executes an instruction word, the program counter always points to the next memory address where the next instruction word is located. In other words, the processor core requests the next instruction word at step 320 by using the program counter. If X and Y are not equal, the PC value needs to be translated into the associated A instruction word address in the instruction fetcher.

【0027】命令取込器は、A命令ワードだけを格納す
る。本質的に、XとYとが等しくない場合には、命令取
込器内におけるB命令ワードのアドレスは、メモリアド
レスとは相違する。例えば、メモリ内に格納されるB命
令ワードは、(0,2,4,6)である。命令取込器内
に格納されるときには、B命令ワードのアドレスは、
(0,4,8,C)へと変化することとなる。命令取込
器コントローラは、B命令ワードのアドレスを命令取込
器内における適正なアドレスへと翻訳する必要がある。
The instruction fetcher stores only the A instruction word. Essentially, if X and Y are not equal, the address of the B instruction word in the instruction fetcher will be different from the memory address. For example, the B instruction word stored in the memory is (0, 2, 4, 6). When stored in the instruction fetcher, the address of the B instruction word is
(0, 4, 8, C). The instruction fetch controller must translate the address of the B instruction word to the correct address in the instruction fetcher.

【0028】次なるステップ330においては、バリッ
ドビット(Vビット)が1に等しい場合には、TAG部
分のタグビットがPCのタグビットに等しいものとさ
れ、TAG(ISS)がPSR(ISS)に等しいもの
とされる。このことは、要求された命令ワードがDAT
A部分に取り込まれ、取り込まれた命令ワードのタイプ
が、要求された命令ワードのタイプに一致していること
を意味している。ステップ380においては、命令取込
器は、取り込まれたA命令ワードを直接的に出力するこ
とができる。
In the next step 330, when the valid bit (V bit) is equal to 1, the tag bit of the TAG portion is determined to be equal to the tag bit of the PC, and the TAG (ISS) is changed to the PSR (ISS). Are considered equal. This means that the requested instruction word is DAT
The part A is fetched, meaning that the type of the fetched instruction word matches the type of the requested instruction word. In step 380, the instruction fetcher can directly output the captured A instruction word.

【0029】命令取込器のTAG部分内のTAGビット
は、m個のビットからなる命令ワードアドレスである。
PC内のN個のビットは、TAG部分内にアドレッシン
グすることができ、PCのタグビットが、TAG部分内
のタグビットと比較されることとなる。PCのタグビッ
トがTAG部分内のタグビットに等しい場合には、この
ことは、取り込まれた命令ワードアドレスが、PCに等
しいことを意味する。タグビットが正当であるかどうか
を判断するために、Vビットは、命令取込器が可能状態
であればインバリッドにセットされ、命令ワードが取り
込まれているときには、バリッドにセットされる。上述
のTAG(ISS)は、取り込まれた命令ワードのタイ
プを意味している。命令が取り込まれたときには、ライ
ン全体の命令タイプが記憶される。
The TAG bit in the TAG portion of the instruction fetcher is an instruction word address consisting of m bits.
The N bits in the PC can be addressed in the TAG portion, and the PC tag bits will be compared to the tag bits in the TAG portion. If the tag bit of the PC is equal to the tag bit in the TAG portion, this means that the fetched instruction word address is equal to PC. To determine if the tag bit is valid, the V bit is set to invalid if the instruction fetcher is enabled and to valid if the instruction word is being fetched. The above-mentioned TAG (ISS) means the type of the fetched instruction word. When an instruction is fetched, the instruction type of the entire line is stored.

【0030】デコーダは、要求された命令ワードを解読
する。ステップ390においては、プロセッサコアが、
命令を実行し、実行結果を、R0〜R14内に、また
は、プログラムカウンタ内に、格納する。ブランチ命令
の場合には、プログラムカウンタの内容は、実行フロー
を制御するために、変更する必要はない。
The decoder decodes the requested instruction word. In step 390, the processor core
The instruction is executed, and the execution result is stored in R0 to R14 or in a program counter. In the case of a branch instruction, the contents of the program counter need not be changed to control the execution flow.

【0031】命令取込器が間違っているときすなわちT
AG(ISS)がPRS(ISS)と等しくないときに
は、要求された命令ワードが、命令取込器内に取り込ま
れなかったこと、または、ライン全体の命令が、要求さ
れた命令ワードのタイプに一致していないこと、を意味
している。これが起こった場合には、命令取込器は、ス
テップ340に示すように、PC値を使用してバスを要
求する。バスは、メモリアドレスを使用して、メモリを
要求し、ステップ350においてメモリが要求ラインを
返信してくるのを待ち受ける。命令ワードがプレデコー
ダに入力されると、プレデコーダは、1つのサブデコー
ダを選択して、入力されてきた命令ワードをPSR(I
SS)に応じて翻訳させ、ステップ360において、適
切なA命令ワードを命令取込器に対して出力する。ステ
ップ370においては、プレデコーダからの出力が、命
令取込器内に格納される。命令取込器は、VビットとT
AGとをセットし、最初のPSR(ISS)をTAG
(ISS)に記憶させ、プレデコーダからの出力をデー
タ部分に格納する。その後、命令ワードが、通常通り、
実行される。
When the instruction fetcher is wrong, ie, T
When AG (ISS) is not equal to PRS (ISS), the requested instruction word was not fetched into the instruction fetcher, or the entire line of instructions was one of the type of requested instruction word. Not mean. If this occurs, the instruction fetcher requests the bus using the PC value, as shown in step 340. The bus requests the memory using the memory address and waits at step 350 for the memory to return the requested line. When the instruction word is input to the pre-decoder, the pre-decoder selects one sub-decoder and transfers the input instruction word to PSR (I
SS), and in step 360 outputs the appropriate A instruction word to the instruction fetcher. In step 370, the output from the predecoder is stored in the instruction fetcher. The instruction fetcher uses the V bit and T
AG and set the first PSR (ISS) to TAG
(ISS), and the output from the predecoder is stored in the data portion. Then, the instruction word, as usual,
Be executed.

【0032】各命令の実行後においては、プロセッサ状
態レジスタが、状況、状態、モード、および、ISSフ
ラグを保持するために、更新される。プログラムカウン
タは、ステップ395において、次なる命令ワードを指
し示すように変更(更新)される。
After execution of each instruction, the processor status register is updated to hold the status, status, mode, and ISS flags. The program counter is changed (updated) at step 395 to point to the next instruction word.

【0033】図4は、本発明の好ましい実施形態におけ
る命令組の切換操作を示すフローチャートである。
FIG. 4 is a flowchart showing an instruction set switching operation in the preferred embodiment of the present invention.

【0034】命令組の切換は、ソフトウェアによって、
特に、特定のブランチ命令によって、制御される。命令
組の切換時には、ステップ400に示すように、1つま
たは複数の命令ワードが、R0〜R14のターゲットア
ドレス部分内のブランチアドレスを特定し、IS部分内
の命令組ビットを特定する。
The instruction set is switched by software.
In particular, it is controlled by a specific branch instruction. Upon instruction set switching, one or more instruction words identify the branch address in the target address portion of R0-R14 and identify the instruction set bits in the IS portion, as shown in step 400.

【0035】ステップ410においては、ブランチ命令
が特定され、特定されたブランチ命令は、ステップ42
0において、R0〜R14のターミナルアドレス(T
A)部分をプログラムカウンタ内にコピーする。他のビ
ットが、ゼロにセットされる。同時に、特定されたブラ
ンチ命令は、R0〜R14のIS部分を、PSR内のI
SSに対してコピーする。
In step 410, the branch instruction is identified, and the identified branch instruction is
0, the terminal addresses of R0 to R14 (T
A) Copy the part into the program counter. Other bits are set to zero. At the same time, the specified branch instruction replaces the IS part of R0 to R14 with the I part in the PSR.
Copy to SS.

【0036】特定されたブランチ命令の終了後には、プ
ログラムカウンタは、新たな命令組の第1命令をアドレ
ッシングし、PSR(ISS)は、新たな命令組のモー
ドを表すこととなる。
After completion of the specified branch instruction, the program counter addresses the first instruction of the new instruction set, and the PSR (ISS) will indicate the mode of the new instruction set.

【0037】上述の図3におけるステップ330におい
ては、命令取込器がヒットされTAG(ISS)がPS
R(ISS)に等しいかどうかを確認した。さらに詳細
な説明のために、命令取込器内の操作を示している図5
(a)および図5(b)を参照する。図5(a)におい
ては、命令取込器内における従来の操作が示されてい
る。この場合には、PSR(ISS)を併用することな
く、比較操作が行われる。アドレス510は、プログラ
ムカウンタ(PC)内に格納されていて、命令取込器に
対して適用される。アドレスのうちのM個のビットは、
TAG部分の1つの入力を選択し、アドレス510のう
ちのN個のビットは、命令取込器のTAG部分のタグビ
ットと比較される。TAG部分内のバリッドビットは、
選択された入力がバリッドであるかまたはインバリッド
であるかのいずれかを表している。TAG部分内のIS
Sビットは、入力の命令タイプを表している。図3にお
けるステップ330は、Vビットが『バリッド』であ
り、TAG部分のISSビットがPSRのISSビット
に等しく、アドレスのN個のビットが命令取込器のTA
G部分内のタグビットに等しいか、どうかによって完了
する。
In step 330 in FIG. 3, the instruction fetcher is hit and TAG (ISS) is set to PS.
R (ISS). FIG. 5 shows the operation in the instruction fetcher for a more detailed explanation.
Referring to FIG. 5A and FIG. FIG. 5 (a) shows a conventional operation in the instruction fetcher. In this case, the comparison operation is performed without using the PSR (ISS). Address 510 is stored in the program counter (PC) and is applied to the instruction fetcher. The M bits of the address are
One input of the TAG portion is selected, and the N bits of the address 510 are compared with the tag bits of the TAG portion of the instruction fetcher. The valid bit in the TAG part is
Indicates whether the selected input is valid or invalid. IS in TAG part
The S bit indicates the input instruction type. In step 330 in FIG. 3, the V bit is "valid", the ISS bit of the TAG portion is equal to the ISS bit of the PSR, and the N bits of the address are set to the TA of the instruction fetcher.
Completion depends on whether it is equal to the tag bit in the G part.

【0038】図5(b)においては、本発明の好ましい
実施形態における命令取込器内の操作が示されている。
この場合には、PSR(ISS)が、比較操作に際して
導入される。アドレス510は、PC内に格納されてい
て、命令取込器に対して適用される。アドレスのうちの
N個のビットは、命令取込器520のTAG部分内に格
納されているタグビットと比較される。これは、アドレ
ス510のm個のビットによって示されている。TAG
部分内のVビットは、入力がバリッドであるかまたはイ
ンバリッドであるかのいずれかを表している。PSR
(ISS)が、導入されて、TAG(ISS)と比較さ
れる。図3に示すように『命令取込器がヒットしている
かどうかを判定する』ステップ330は、以下のように
して、“AND”アルゴリズムによって決定される。つ
まり、1.N個のビットが命令取込器のTAG部分内の
タグビットに等しいかどうか、2.Vビットが『バリッ
ド』を示しているかどうか、3.PSR(ISS)がT
AG(ISS)に等しいかどうか、のすべてを満たすこ
とによって決定される。TAG(ISS)とは、TAG
内におけるISSビットのことであり、PSR(IS
S)とは、PSR内におけるISSビットのことであ
る。互いに異なるビット数の複数の命令ワードが混在し
ている場合には、例えば、16ビットの命令ワードと3
2ビットの命令ワードとが混在している場合には、アド
レス510内の1つ以上のビットが、命令ワードの前半
または後半を明瞭化するために導入される。例えば、図
5(b)に示すように、第3ビットが、比較操作のため
に導入され、指示されたレジスタ内のTAGに対してN
個のビットが等しいかどうかを決定するというアルゴリ
ズムが、指示されたレジスタ内のTAGに対してN+1
個のビットが等しいかどうかを決定するというアルゴリ
ズムに、変更される。
FIG. 5B illustrates the operation in the instruction fetcher in the preferred embodiment of the present invention.
In this case, the PSR (ISS) is introduced during the comparison operation. Address 510 is stored in the PC and applies to the instruction fetcher. The N bits of the address are compared to the tag bits stored in the TAG portion of instruction fetcher 520. This is indicated by the m bits of address 510. TAG
The V bit in the part indicates whether the input is valid or invalid. PSR
(ISS) is introduced and compared to TAG (ISS). As shown in FIG. 3, the "determine whether the instruction fetcher has hit" step 330 is determined by the "AND" algorithm as follows. That is, 1. 1. whether N bits are equal to the tag bit in the TAG portion of the instruction fetcher; 2. Whether or not the V bit indicates “valid”; PSR (ISS) is T
AG (ISS). TAG (ISS) is TAG
Is the ISS bit in the PSR (IS
S) is the ISS bit in the PSR. When a plurality of instruction words having different bit numbers are mixed, for example, a 16-bit instruction word and 3
If a two-bit instruction word is intermingled, one or more bits in address 510 are introduced to clarify the first or second half of the instruction word. For example, as shown in FIG. 5 (b), a third bit is introduced for the compare operation and N for the TAG in the indicated register.
The algorithm for determining whether the bits are equal is N + 1 for the TAG in the indicated register.
The algorithm is changed to determine if the bits are equal.

【0039】図2に示すように、プレデコーダ270
は、1つまたは複数の命令組を上述の『A』命令ワード
といったような主要命令ワードへと翻訳するために、1
つまたは複数のサブデコーダ272を備えている。図6
(a)および図6(b)を参照して、さらに詳細に説明
する。図6(a)は、様々な命令ワードを処理するため
の従来のアーキテクチャーを示している。データバスB
IU610からの1ラインあたりに4つの命令があると
いう例が示されている。スイッチ620によって選択さ
れることにより、4つの命令ワードのうちの1つが、命
令取込器のメモリ630に対して適用される。命令ワー
ドを実行するために、命令ワードの1つは、デコーダに
よる解読ステップへと伝達される。伝達された命令ワー
ドは、ます最初に、マッピングされ、その後、解読され
る。マッピングと解読との後に、命令ワードは、プロセ
ッサコアに対して適用され、実行される。本発明の好ま
しい実施形態においては、図6(b)に示すように、ス
イッチ620による選択の後に、選択された命令ワード
は、プレデコーダ650とスイッチ660とに同時に適
用される。命令ワードが、主要命令ワードではないB命
令ワードであった場合には、プレデコーダ650が、B
命令ワードを、例えばA命令ワードといったような主要
命令ワードへと翻訳することとなる。プレデコーダによ
って処理された命令ワードが、スイッチ660に対して
適用される。そして、PSRからのISSに応じて選択
することにより、命令ワードは、命令取込器のメモリ6
70へと伝達される。
As shown in FIG.
To translate one or more instruction sets into a main instruction word, such as the "A" instruction word described above,
One or more sub-decoders 272 are provided. FIG.
This will be described in more detail with reference to (a) and FIG. 6 (b). FIG. 6 (a) shows a conventional architecture for processing various instruction words. Data bus B
An example is shown where there are four instructions per line from IU 610. By being selected by switch 620, one of the four instruction words is applied to instruction fetcher memory 630. To execute the instruction word, one of the instruction words is communicated to a decoding step by a decoder. The transmitted instruction word is first mapped and then decrypted. After mapping and decoding, the instruction word is applied to the processor core and executed. In a preferred embodiment of the present invention, as shown in FIG. 6 (b), after selection by switch 620, the selected instruction word is applied to predecoder 650 and switch 660 simultaneously. If the instruction word is a B instruction word that is not the main instruction word,
The instruction word will be translated into a main instruction word, such as the A instruction word. The instruction word processed by the predecoder is applied to switch 660. Then, by selecting according to the ISS from the PSR, the instruction word is stored in the memory
70.

【0040】図7(a)および図7(b)は、データバ
スからAとBとの命令ワードが混在して送られてくる場
合を示している。まず最初に、図7(a)においては、
命令取込器は、PC=0とすることをBIUに要求し、
BIUは、4つの命令ワードを有したライン710を応
答する。タイプの順序は、“ABBA”である。TAG
(ISS)は、常に、最初の命令ワードのタイプを記憶
し、命令取込器は、ライン全体を、最初の命令ワードの
タイプによって処理する。例えば、図示の実施形態にお
いては、PC=0における命令ワードのタイプがAであ
ることにより、TAG(ISS)は、『A』となる。命
令取込器メモリ内のデータ部分は、『A』命令タイプに
よって充填される。タイプの順序は、“AAAA”とな
る。
FIGS. 7A and 7B show a case where command words A and B are mixedly transmitted from the data bus. First, in FIG. 7A,
The instruction fetcher requests the BIU to set PC = 0,
BIU responds with line 710 with four instruction words. The type order is "ABBA". TAG
(ISS) always stores the type of the first instruction word, and the instruction fetcher processes the entire line according to the type of the first instruction word. For example, in the illustrated embodiment, since the type of the instruction word at PC = 0 is A, the TAG (ISS) becomes “A”. The data portion in the instruction fetch memory is filled with an "A" instruction type. The type order is “AAAAA”.

【0041】nサイクル後には、BIUラインは、命令
取込器に対して書き込まれており、変更されている。C
PUは、PC=4およびPSR(ISS)=Bとして動
作する。しかしながら、この時点では、TAG(IS
S)=Aである。このことは、命令取込器が間違ってい
ることを意味している。この場合、命令取込器は、PC
=4とすることをBIUに要求し、BIUは、“ABB
A”という命令タイプ順序を有したラインを応答するで
ある。図7(b)に示すように、PC=8の場合には、
B命令ワードをプレデコーダによって処理した後には、
TAG(ISS)=Bとなり、命令取込器メモリ内のデ
ータ部分は、『B』によって充填され、命令タイプ順序
は、“BBBB”となる。この時点で、TAG(IS
S)は、データバスBIUのライン710がBタイプで
あることを記憶する。TAG(ISS)は、PSR(I
SS)に等しい。このことは、命令取込器がヒットする
ことを意味している。命令ワードタイプの順序にかかわ
らず、命令取込器は、常に、正確な命令タイプを判断す
ることができ解読することができる。実際には、異なる
タイプの命令が1つのライン中に混在することは、稀で
ある。
After n cycles, the BIU line has been written to the instruction fetcher and has been modified. C
The PU operates as PC = 4 and PSR (ISS) = B. However, at this point, TAG (IS
S) = A. This means that the instruction fetcher is wrong. In this case, the instruction fetcher is a PC
= 4, the BIU requests “ABB
A line having an instruction type order of "A" is responded. As shown in FIG. 7B, when PC = 8,
After processing the B instruction word by the predecoder,
TAG (ISS) = B, the data portion in the instruction fetch memory is filled with "B", and the instruction type order is "BBBB". At this point, the TAG (IS
S) stores that the line 710 of the data bus BIU is of the B type. TAG (ISS) is the PSR (I
SS). This means that the instruction fetcher hits. Regardless of the order of the instruction word types, the instruction fetcher can always determine and interpret the correct instruction type. In practice, it is rare that instructions of different types are mixed in one line.

【0042】本発明によるデータ処理装置は、従来のデ
ータ処理装置と比較して、いくつもの利点を有してい
る。1つの利点は、本発明によるデータ処理装置である
と、複数の命令組からの命令ワードを実行できることで
ある。1つの命令組や2つの命令組に制限されるもので
はない。これにより、プログラム制作者は、プログラム
を制作に際して極度に大きな利便性を得ることができ
る。有効性の大きな命令が要求されたときには、より有
効性の大きな命令組が使用される。メモリが高価である
場合には、メモリを少ししか使用しないような命令組が
使用される。
The data processing device according to the present invention has several advantages over the conventional data processing device. One advantage is that the data processing device according to the invention can execute instruction words from a plurality of instruction sets. It is not limited to one instruction set or two instruction sets. As a result, the program creator can obtain extremely great convenience in producing the program. When a more effective instruction is requested, a more effective instruction set is used. If the memory is expensive, an instruction set that uses little memory is used.

【0043】他の利点は、電力消費が小さいことであ
る。従来の装置においては、すべての命令組が、それぞ
れ個別の専用の命令デコーダおよび論理コントローラを
必要とする。専用の命令デコーダが、命令が取り込まれ
るたびごとに起動されることにより、これは高価であ
り、電力消費に関して無駄が多い。しかしながら、本発
明においては、プレデコーダは、第1命令ワードが取り
込まれたときにしか起動されない。平均すれば、命令取
込器のヒット率は、約95%である。このことは、本発
明におけるプレデコーダが、100個の命令ワードを取
り込むに際して5回起動される必要があるだけであるこ
とを意味している。
Another advantage is low power consumption. In conventional devices, every instruction set requires a separate dedicated instruction decoder and logic controller. This is expensive and wasteful in terms of power consumption, because a dedicated instruction decoder is activated each time an instruction is fetched. However, in the present invention, the predecoder is activated only when the first instruction word is fetched. On average, the hit rate of the instruction fetcher is about 95%. This means that the predecoder in the present invention only needs to be activated five times to fetch 100 instruction words.

【0044】加えて、CPUアーキテクチャーは、他の
命令組の実施に際して変更する必要がない。変更する必
要があるのは、バスインターフェースとプレデコーダだ
けである。このことも、また、本発明のコストをさらに
有利なものとする。
In addition, the CPU architecture does not need to be changed when implementing other instruction sets. All that needs to be changed is the bus interface and predecoder. This also makes the cost of the invention even more advantageous.

【0045】本発明の範囲および精神を逸脱することな
く本発明の構成に様々な修正や変更を加え得ることは、
当業者には明瞭であろう。そのため、本発明は、請求範
囲およびその均等物内に属するような修正や変更をもカ
バーするものである。
It will be appreciated that various modifications and changes may be made to the structure of the present invention without departing from the scope or spirit of the invention.
It will be clear to those skilled in the art. Therefore, it is intended that the present invention cover such modifications and variations as come within the scope of the appended claims and their equivalents.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 2組の命令組を実行し得るよう構成された、
従来のデータ処理装置の構造を示すブロック図である。
FIG. 1 is configured to execute two sets of instructions;
FIG. 9 is a block diagram illustrating a structure of a conventional data processing device.

【図2】 複数組の命令組を実行し得る本発明のデータ
処理装置の好ましい実施形態を示すブロック図である。
FIG. 2 is a block diagram showing a preferred embodiment of a data processing apparatus of the present invention capable of executing a plurality of instruction sets.

【図3】 本発明の好ましい実施形態による命令ワード
実行フローを示すフローチャートである。
FIG. 3 is a flowchart illustrating an instruction word execution flow according to a preferred embodiment of the present invention;

【図4】 本発明の好ましい実施形態における命令組の
切換フローを示すフローチャートである。
FIG. 4 is a flowchart showing a flow of switching instruction sets in a preferred embodiment of the present invention.

【図5】 命令取込器内のTAG部分について、従来技
術と本発明とを比較して示す図である。
FIG. 5 is a diagram showing a comparison between the prior art and the present invention for the TAG portion in the instruction fetcher.

【図6】 命令取込器内のDATA部分について、従来
技術と本発明とを比較して示す図である。
FIG. 6 is a diagram showing a comparison between the prior art and the present invention for the DATA portion in the instruction fetcher.

【図7】 A命令ワードとB命令ワードとが同じメモリ
ラインを占めている場合における、命令取込器のTAG
部分とDATA部分との振舞いを説明するための図であ
る。
FIG. 7: TAG of instruction fetcher when A instruction word and B instruction word occupy the same memory line
FIG. 7 is a diagram for explaining the behavior of a portion and a DATA portion.

【符号の説明】[Explanation of symbols]

200 プロセッサコア 210 メモリ 215 バス 220 プログラムカウンタレジスタ(PC) 225 プログラムカウンタコントローラ 240 命令組選択ビット(IS) 245 ターゲットアドレス(TA) 250 プロセッサ状態レジスタ(PSR) 260 命令組セレクタ(ISS) 270 プレデコーダ 272 サブデコーダ 280 命令取込器 290 デコーダ R0〜R14 データレジスタ 200 Processor core 210 Memory 215 Bus 220 Program counter register (PC) 225 Program counter controller 240 Instruction set select bit (IS) 245 Target address (TA) 250 Processor status register (PSR) 260 Instruction set selector (ISS) 270 Predecoder 272 Sub decoder 280 Instruction fetcher 290 Decoder R0-R14 Data register

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 複数組の命令組を実行するためのデータ
処理装置であって、 前記複数の命令組の複数の命令ワードを格納するための
メモリと;前記複数の命令ワードのうちの主要命令ワー
ドを実行するためのプロセッサコアと;前記メモリ内に
格納されている次なる命令ワードを指し示すためのプロ
グラムカウンタレジスタ(以下、必要に応じ『PC』と
略記する)と;前記複数の命令ワードのデータを格納す
るための複数のデータレジスタと;前記プロセッサコア
の状態を格納するためのものであるとともに、前記複数
の命令組のうちの当面の命令組を指し示すための命令組
セレクタ(以下、必要に応じ『ISS』と略記する)を
有しているプロセッサ状態レジスタと;前記複数の命令
組の少なくとも1つを主要命令ワードへと翻訳して出力
するためのプレデコーダと;前記主要命令ワードを格納
するための命令取込器と;前記主要命令ワードを解読す
るためのものであるとともに、解読した主要命令ワード
を前記プロセッサコアによって実行し得るよう、解読し
た主要命令ワードを前記プロセッサコアに提供するよう
になっているデコーダと;前記ISSに応じて前記PC
の値を変更しこれにより様々な前記主要命令ワードの命
令ワードの長さを適合させるプログラムカウンタコント
ローラと;前記プレデコーダと前記メモリとの間のイン
ターフェースをなすバスと;を具備していることを特徴
とする装置。
1. A data processing device for executing a plurality of instruction sets, comprising: a memory for storing a plurality of instruction words of the plurality of instruction sets; and a main instruction of the plurality of instruction words. A processor core for executing the word; a program counter register (hereinafter abbreviated as “PC” as necessary) for pointing to the next instruction word stored in the memory; A plurality of data registers for storing data; an instruction set selector for storing the state of the processor core and indicating the current instruction set of the plurality of instruction sets (hereinafter, required) A processor status register having an abbreviation "ISS" in accordance with the above.); And translating at least one of the plurality of instruction sets into a main instruction word. A pre-decoder for storing the main instruction word; and an instruction fetcher for storing the main instruction word; and for decoding the main instruction word and enabling the decoded main instruction word to be executed by the processor core. A decoder adapted to provide a decoded main instruction word to the processor core; and the PC in response to the ISS.
A program counter controller that changes the value of the main instruction word and thereby adapts the instruction word length of the various main instruction words; and a bus that interfaces between the predecoder and the memory. Characteristic device.
【請求項2】 請求項1記載の装置において、 前記データレジスタの各々には、2つのビット部分が設
けられており、 少なくとも一方のビット部分は、命令組選択ビット(以
下、必要に応じ『IS』と略記する)として観測され、 他方のビット部分は、ターゲットアドレス(以下、必要
に応じ『TA』と略記する)として観測されることを特
徴とする装置。
2. The device according to claim 1, wherein each of said data registers is provided with two bit portions, and at least one bit portion is provided with an instruction set selection bit (hereinafter referred to as “IS ], And the other bit portion is observed as a target address (hereinafter abbreviated as "TA" as necessary).
【請求項3】 請求項2記載の装置において、 前記ターゲットアドレスは、前記命令組の開始アドレス
とされることを特徴とする装置。
3. The apparatus according to claim 2, wherein the target address is a start address of the instruction set.
【請求項4】 請求項2記載の装置において、 前記ISSは、前記データレジスタ内の前記ISに従っ
て特定のブランチ命令によってセットされることを特徴
とする装置。
4. The apparatus of claim 2, wherein said ISS is set by a particular branch instruction according to said IS in said data register.
【請求項5】 請求項1記載の装置において、 前記プレデコーダは、前記命令組の少なくとも1つを前
記主要命令ワードへと翻訳するための少なくとも1つの
サブデコーダを有していることを特徴とする装置。
5. The apparatus of claim 1, wherein said predecoder comprises at least one subdecoder for translating at least one of said instruction set into said main instruction word. Equipment to do.
【請求項6】 請求項1記載の装置において、 前記サブデコーダの切換が、前記ISSに応じて制御さ
れるようになっており、 前記プレデコーダからの出力が、前記主要命令ワードと
されるようになっていることを特徴とする装置。
6. The apparatus according to claim 1, wherein switching of the sub-decoder is controlled according to the ISS, and an output from the pre-decoder is the main instruction word. An apparatus characterized in that:
【請求項7】 請求項1記載の装置において、 前記主要命令ワードのビット幅が、他の命令ワードと等
しくなく、 前記命令取込器は、認識用のビットを追加して、前記P
Cの値を、適切な主要命令ワードを指し示すように変換
するようになっていることを特徴とする装置。
7. The apparatus of claim 1, wherein a bit width of the main instruction word is not equal to another instruction word, and the instruction fetcher adds a bit for recognition to the P instruction word.
Apparatus adapted to convert the value of C to point to an appropriate main instruction word.
【請求項8】 請求項1記載の装置において、 前記ISSが、少なくとも1つのビットを有しているこ
とを特徴とする装置。
8. The apparatus of claim 1, wherein said ISS has at least one bit.
【請求項9】 請求項8記載の装置において、 前記ISSが、特定のブランチ命令により、前記データ
レジスタの1つ以上の前記ISに従ってセットされるよ
うになっていることを特徴とする装置。
9. The apparatus of claim 8, wherein the ISS is set according to one or more of the ISs of the data register by a particular branch instruction.
JP2001013796A 2001-01-22 2001-01-22 Data processing apparatus for executing a plurality of instruction sets Expired - Fee Related JP3644892B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001013796A JP3644892B2 (en) 2001-01-22 2001-01-22 Data processing apparatus for executing a plurality of instruction sets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001013796A JP3644892B2 (en) 2001-01-22 2001-01-22 Data processing apparatus for executing a plurality of instruction sets

Publications (2)

Publication Number Publication Date
JP2002229776A true JP2002229776A (en) 2002-08-16
JP3644892B2 JP3644892B2 (en) 2005-05-11

Family

ID=18880592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001013796A Expired - Fee Related JP3644892B2 (en) 2001-01-22 2001-01-22 Data processing apparatus for executing a plurality of instruction sets

Country Status (1)

Country Link
JP (1) JP3644892B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101627366A (en) * 2007-03-14 2010-01-13 高通股份有限公司 System, method and software to preload instructions from an instruction set other than one currently executing
JP2010524088A (en) * 2007-04-04 2010-07-15 クゥアルコム・インコーポレイテッド System, method and software for preloading instructions from a variable length instruction set with appropriate predecoding
CN109416632A (en) * 2016-06-22 2019-03-01 Arm有限公司 Register restores branch instruction

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101627366A (en) * 2007-03-14 2010-01-13 高通股份有限公司 System, method and software to preload instructions from an instruction set other than one currently executing
JP2010521748A (en) * 2007-03-14 2010-06-24 クゥアルコム・インコーポレイテッド System, method and software for preloading instructions from an instruction set other than the currently executing instruction set
JP2014194783A (en) * 2007-03-14 2014-10-09 Qualcomm Incorporated System, method and software to preload instructions from instruction set other than currently executing instruction set
JP2010524088A (en) * 2007-04-04 2010-07-15 クゥアルコム・インコーポレイテッド System, method and software for preloading instructions from a variable length instruction set with appropriate predecoding
CN109416632A (en) * 2016-06-22 2019-03-01 Arm有限公司 Register restores branch instruction
CN109416632B (en) * 2016-06-22 2023-02-28 Arm有限公司 Apparatus and method for processing data

Also Published As

Publication number Publication date
JP3644892B2 (en) 2005-05-11

Similar Documents

Publication Publication Date Title
US20020004897A1 (en) Data processing apparatus for executing multiple instruction sets
JP3683230B2 (en) Data processing apparatus, instruction set switching method, data processing architecture, and data processing apparatus operating method
KR940003383B1 (en) Microprocessor having predecoder unit and main decoder unit operating pipeline processing scheme
US4586130A (en) Central processing unit for a digital computer
US4954943A (en) Data processing system
JP3803723B2 (en) Branch prediction mechanism that employs a branch selector that selects branch prediction
US20020188830A1 (en) Bit replacement and extraction instructions
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
KR100423910B1 (en) Method and apparatus for executing coprocessor instructions
US5940876A (en) Stride instruction for fetching data separated by a stride amount
KR20010050792A (en) Processor architecture for executing two different fixed-length instruction sets
EP1680735A2 (en) Apparatus and method that accomodate multiple instruction sets and multiple decode modes
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US7231507B2 (en) Data access program instruction encoding
US6289428B1 (en) Superscaler processor and method for efficiently recovering from misaligned data addresses
JP2001075804A (en) Parallel processor processing expansion instruction
JP3644892B2 (en) Data processing apparatus for executing a plurality of instruction sets
KR920006770B1 (en) System for controlling instruction fetch controlling
JPH1091430A (en) Instruction decoding device
US5187782A (en) Data processing system
KR100407452B1 (en) Data processing apparatus for executing multiple instruction sets
TW552556B (en) Data processing apparatus for executing multiple instruction sets
US6996702B2 (en) Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
CA1314104C (en) Executing code from slow rom on high speed computer compatible with slower speed computers
US5109516A (en) Sequence controller for controlling next operating state with a short sequence

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040629

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041217

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110210

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees