JP2000222206A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JP2000222206A JP2000222206A JP11025238A JP2523899A JP2000222206A JP 2000222206 A JP2000222206 A JP 2000222206A JP 11025238 A JP11025238 A JP 11025238A JP 2523899 A JP2523899 A JP 2523899A JP 2000222206 A JP2000222206 A JP 2000222206A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- repeat
- instructions
- executed
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【課題】 所定の命令列に含まれる命令を繰り返しなが
ら、指定された命令単位の回数で正確に実行することが
可能なデータ処理装置を得る。 【解決手段】 実行制御信号生成部910は、リピート
終了フラグ903がアサートされていない(実行命令回
数の命令実行未達成状態)時は、データラッチ群908
を介して与えられた命令コード907に基づいて順次実
行制御信号を生成して命令コード907に規定された命
令を実行させ、リピート終了フラグ903がアサート
(実行命令回数の命令実行達成状態)されている時は、
命令コード907の内容に関わらず全ての実行制御信号
をネゲートすることにより、リピート終了フラグ903
がアサートされている期間に実行された命令は、全て無
効にされる。
ら、指定された命令単位の回数で正確に実行することが
可能なデータ処理装置を得る。 【解決手段】 実行制御信号生成部910は、リピート
終了フラグ903がアサートされていない(実行命令回
数の命令実行未達成状態)時は、データラッチ群908
を介して与えられた命令コード907に基づいて順次実
行制御信号を生成して命令コード907に規定された命
令を実行させ、リピート終了フラグ903がアサート
(実行命令回数の命令実行達成状態)されている時は、
命令コード907の内容に関わらず全ての実行制御信号
をネゲートすることにより、リピート終了フラグ903
がアサートされている期間に実行された命令は、全て無
効にされる。
Description
【0001】
【発明の属する技術分野】この発明は、高性能なデータ
処理装置に関するものであり、特に、そのリピート処理
機能に関する。
処理装置に関するものであり、特に、そのリピート処理
機能に関する。
【0002】
【従来の技術】デジタル信号処理等では、同じ命令を繰
り返し実行することが多い。幾つかのDSPではこの様
な処理を効率よく実行するため、専用の命令と専用のハ
ードウェアを設けている。
り返し実行することが多い。幾つかのDSPではこの様
な処理を効率よく実行するため、専用の命令と専用のハ
ードウェアを設けている。
【0003】これはブロックリピート等と呼ばれる処理
であり、ある制御レジスタで指定された命令列を、別の
制御レジスタで指定された回数だけ繰り返し実行するも
のである。ブロックリピートは、例えば、「TMS32
0C5x User’s Guide,1993、3・
6・5節」に開示されている。この機能により、繰り返
し回数の計数、計数結果の判定、及び繰り返し実行する
命令の末尾から先頭への分岐の為の命令等が不要とな
る。また、同様の例は特開平9−212361号公報
(以下、「公報1」と略する)にも開示されている。
であり、ある制御レジスタで指定された命令列を、別の
制御レジスタで指定された回数だけ繰り返し実行するも
のである。ブロックリピートは、例えば、「TMS32
0C5x User’s Guide,1993、3・
6・5節」に開示されている。この機能により、繰り返
し回数の計数、計数結果の判定、及び繰り返し実行する
命令の末尾から先頭への分岐の為の命令等が不要とな
る。また、同様の例は特開平9−212361号公報
(以下、「公報1」と略する)にも開示されている。
【0004】
【発明が解決しようとする課題】上記公報1では、FI
Rフィルタを例にとってブロックリピート命令の使用形
態を示している(公報1中の図14)。この例は、積和
演算の総数が予め256回と判っていた場合であるが、
積和演算の総数が予め判っていなかった場合はより複雑
な処理が必要となる。詳細は省くが、積和演算総数をリ
ピートブロック内の命令数6で割った商をリピート回数
に指定し、その剰余をリピートブロックの後に付け足
す、複雑なプログラム作成が必要になる。
Rフィルタを例にとってブロックリピート命令の使用形
態を示している(公報1中の図14)。この例は、積和
演算の総数が予め256回と判っていた場合であるが、
積和演算の総数が予め判っていなかった場合はより複雑
な処理が必要となる。詳細は省くが、積和演算総数をリ
ピートブロック内の命令数6で割った商をリピート回数
に指定し、その剰余をリピートブロックの後に付け足
す、複雑なプログラム作成が必要になる。
【0005】この発明は上記問題点を解決するためにな
されたもので、所定の命令列に含まれる命令を繰り返し
ながら、指定された命令単位の回数で正確に実行するこ
とが可能なデータ処理装置を得ることを目的とする。
されたもので、所定の命令列に含まれる命令を繰り返し
ながら、指定された命令単位の回数で正確に実行するこ
とが可能なデータ処理装置を得ることを目的とする。
【0006】
【課題を解決するための手段】この発明に係る請求項1
記載のデータ処理装置は、プログラムにしたがって動作
し、前記プログラムに記載中の、第1〜第N(N≧2)
命令及び実行命令回数M(M≧1)が指定可能なステッ
プリピート命令に応答して、前記第1〜第Nの命令をK
(K=M/Nの商)回繰り返した後、第1〜第L(L=
M/Nの余り)の命令を実行するステップリピート機能
を有し、前記ステップリピート機能は、前記ステップリ
ピート命令実行時に、前記第1〜第Nの命令の各命令の
実行毎に命令実行カウント数をカウントし、該命令実行
カウント数が前記実行命令回数に達した達成状態か/達
成していない未達成状態かを示す実行命令回数判定結果
を出力する実行命令回数判定手段と、前記ステップリピ
ート命令実行時に、第1,第2,…第N,第1,第2の
順に、前記第1〜第Nの命令を繰り返し取り込む命令取
り込み手段と、前記命令取り込み手段に取り込まれた命
令を順次受け、前記ステップリピート命令実行時に、前
記実行命令回数判定結果が前記未達成状態を指示すると
き前記命令取り込み手段より受ける命令を順次実行さ
せ、前記実行命令回数判定結果が前記達成状態を指示す
るとき前記命令取り込み手段より受ける命令を無効にす
る命令実行制御手段とを備えている。
記載のデータ処理装置は、プログラムにしたがって動作
し、前記プログラムに記載中の、第1〜第N(N≧2)
命令及び実行命令回数M(M≧1)が指定可能なステッ
プリピート命令に応答して、前記第1〜第Nの命令をK
(K=M/Nの商)回繰り返した後、第1〜第L(L=
M/Nの余り)の命令を実行するステップリピート機能
を有し、前記ステップリピート機能は、前記ステップリ
ピート命令実行時に、前記第1〜第Nの命令の各命令の
実行毎に命令実行カウント数をカウントし、該命令実行
カウント数が前記実行命令回数に達した達成状態か/達
成していない未達成状態かを示す実行命令回数判定結果
を出力する実行命令回数判定手段と、前記ステップリピ
ート命令実行時に、第1,第2,…第N,第1,第2の
順に、前記第1〜第Nの命令を繰り返し取り込む命令取
り込み手段と、前記命令取り込み手段に取り込まれた命
令を順次受け、前記ステップリピート命令実行時に、前
記実行命令回数判定結果が前記未達成状態を指示すると
き前記命令取り込み手段より受ける命令を順次実行さ
せ、前記実行命令回数判定結果が前記達成状態を指示す
るとき前記命令取り込み手段より受ける命令を無効にす
る命令実行制御手段とを備えている。
【0007】請求項2記載のデータ処理装置において、
前記ステップリピート機能は、前記ステップリピート命
令の実行中である実行状態か/実行中でない非実行状態
かを示すステップリピート命令実行情報を格納する情報
格納手段をさらに備え、前記ステップリピート命令実行
情報は前記ステップリピート命令実行開始時に前記実行
状態に設定され、前記命令取り込み手段は、L(L=M
/Nの余り)が“0”でないとき、前記第1〜第Nの命
令を(K+1)回繰り返し取り込み、(K+1)回目に
取り込んだ第Nの命令の前記命令実行制御手段への付与
時に前記ステップリピート命令実行情報を前記非実行状
態に設定し、前記実行命令回数判定手段は、(K+1)
回目の前記第Lの命令の実行中に前記実行命令回数判定
結果の指示内容を前記達成状態にし、前記命令実行制御
手段は、前記達成状態を指示する実行命令判定結果に応
答して、(K+1)回目の第(L+1)〜第Nの命令を
順次無効にしている。
前記ステップリピート機能は、前記ステップリピート命
令の実行中である実行状態か/実行中でない非実行状態
かを示すステップリピート命令実行情報を格納する情報
格納手段をさらに備え、前記ステップリピート命令実行
情報は前記ステップリピート命令実行開始時に前記実行
状態に設定され、前記命令取り込み手段は、L(L=M
/Nの余り)が“0”でないとき、前記第1〜第Nの命
令を(K+1)回繰り返し取り込み、(K+1)回目に
取り込んだ第Nの命令の前記命令実行制御手段への付与
時に前記ステップリピート命令実行情報を前記非実行状
態に設定し、前記実行命令回数判定手段は、(K+1)
回目の前記第Lの命令の実行中に前記実行命令回数判定
結果の指示内容を前記達成状態にし、前記命令実行制御
手段は、前記達成状態を指示する実行命令判定結果に応
答して、(K+1)回目の第(L+1)〜第Nの命令を
順次無効にしている。
【0008】請求項3記載のデータ処理装置において、
前記ステップリピート機能は、前記ステップリピート命
令の実行中である実行状態か/実行中でない非実行状態
かを示すステップリピート命令実行情報を格納する情報
格納手段をさらに備え、前記ステップリピート命令実行
情報は前記ステップリピート命令実行開始時に前記実行
状態に設定され、前記実行回数判定結果を受け、前記実
行回数判定結果の指示内容の前記未達成状態から前記達
成状態への変化時をトリガとして、前記ステップリピー
ト命令処理後に実行すべき命令の取り込みを指示する制
御信号を発生するとともに、前記ステップリピート命令
実行情報を前記非実行状態に設定するタイミング制御手
段をさらに備えている。
前記ステップリピート機能は、前記ステップリピート命
令の実行中である実行状態か/実行中でない非実行状態
かを示すステップリピート命令実行情報を格納する情報
格納手段をさらに備え、前記ステップリピート命令実行
情報は前記ステップリピート命令実行開始時に前記実行
状態に設定され、前記実行回数判定結果を受け、前記実
行回数判定結果の指示内容の前記未達成状態から前記達
成状態への変化時をトリガとして、前記ステップリピー
ト命令処理後に実行すべき命令の取り込みを指示する制
御信号を発生するとともに、前記ステップリピート命令
実行情報を前記非実行状態に設定するタイミング制御手
段をさらに備えている。
【0009】請求項4記載のデータ処理装置は、複数の
命令からなる命令列及び繰り返し実行回数が指定可能な
ブロックリピート命令に応答して、前記命令列を前記繰
り返し実行回数繰り返して実行可能なブロックリピート
機能を前記ステップリピート機能と独立してさらに有し
ている。
命令からなる命令列及び繰り返し実行回数が指定可能な
ブロックリピート命令に応答して、前記命令列を前記繰
り返し実行回数繰り返して実行可能なブロックリピート
機能を前記ステップリピート機能と独立してさらに有し
ている。
【0010】請求項5記載のデータ処理装置は、所定の
命令と該所定の命令の実行条件を規定した実行条件指定
命令とに応答して、条件判定を行って前記所定の命令の
実行/抑止を行う条件実行機能をさらに有し、前記条件
実行機能は、条件用情報を格納する条件用情報格納手段
と、前記実行条件指定命令に応答して、前記条件用情報
が前記実行条件を満足するか否かに基づき、前記所定の
命令を実行するか抑止するかを制御する実行抑止信号を
出力する実行条件判定手段とを備えるとともに、前記命
令取り込み手段及び前記命令実行制御手段を前記ステッ
プリピート機能と共有し、前記命令取り込み手段は、前
記実行条件指定命令の前記実行条件判定手段の判定処理
に並行して前記所定の命令を取り込み、前記命令実行制
御手段は、前記実行抑止信号が抑止を指示するときに、
前記命令取り込み手段より付与される前記所定の命令を
無効にしている。
命令と該所定の命令の実行条件を規定した実行条件指定
命令とに応答して、条件判定を行って前記所定の命令の
実行/抑止を行う条件実行機能をさらに有し、前記条件
実行機能は、条件用情報を格納する条件用情報格納手段
と、前記実行条件指定命令に応答して、前記条件用情報
が前記実行条件を満足するか否かに基づき、前記所定の
命令を実行するか抑止するかを制御する実行抑止信号を
出力する実行条件判定手段とを備えるとともに、前記命
令取り込み手段及び前記命令実行制御手段を前記ステッ
プリピート機能と共有し、前記命令取り込み手段は、前
記実行条件指定命令の前記実行条件判定手段の判定処理
に並行して前記所定の命令を取り込み、前記命令実行制
御手段は、前記実行抑止信号が抑止を指示するときに、
前記命令取り込み手段より付与される前記所定の命令を
無効にしている。
【0011】請求項6記載のデータ処理装置において、
前記プログラム中に前記ステップリピート命令に連続し
て前記第1〜第Nの命令が順に記載され、前記ステップ
リピート命令は、前記第Nの命令のアドレス情報をさら
に有している。
前記プログラム中に前記ステップリピート命令に連続し
て前記第1〜第Nの命令が順に記載され、前記ステップ
リピート命令は、前記第Nの命令のアドレス情報をさら
に有している。
【0012】
【発明の実施の形態】<基本構成>図1に本データ処理
装置100の機能ブロック構成を示す。データ処理装置
100は、MPUコア部101と、MPUコア部101
からの要求により命令データのアクセスを行う命令フェ
ッチ部102、内蔵命令メモリ103、MPUコア部1
01からの要求によりオペランドデータのアクセスを行
うオペランドアクセス部104、内蔵データメモリ10
5、命令フェッチ部102とオペランドアクセス部10
4からの要求を調停し、データ処理装置100の外部メ
モリのアクセス等を行う外部バスインターフェイス部1
06からなる。
装置100の機能ブロック構成を示す。データ処理装置
100は、MPUコア部101と、MPUコア部101
からの要求により命令データのアクセスを行う命令フェ
ッチ部102、内蔵命令メモリ103、MPUコア部1
01からの要求によりオペランドデータのアクセスを行
うオペランドアクセス部104、内蔵データメモリ10
5、命令フェッチ部102とオペランドアクセス部10
4からの要求を調停し、データ処理装置100の外部メ
モリのアクセス等を行う外部バスインターフェイス部1
06からなる。
【0013】MPUコア部101は、命令キュー11
1、制御部112、レジスタファイル115、第1演算
部116、第2演算部117、PC部118からなる。
1、制御部112、レジスタファイル115、第1演算
部116、第2演算部117、PC部118からなる。
【0014】命令キュー111は、2エントリの32ビ
ット命令バッファと有効ビット、及び入出力ポインタ等
からなり、FIFO(先入れ先出し)方式で制御され
る。命令キュー111は、命令フェッチ部102でフェ
ッチされた命令データを一時保持し、制御部112に送
る。
ット命令バッファと有効ビット、及び入出力ポインタ等
からなり、FIFO(先入れ先出し)方式で制御され
る。命令キュー111は、命令フェッチ部102でフェ
ッチされた命令データを一時保持し、制御部112に送
る。
【0015】制御部112は、前述の命令キュー111
の制御、パイプライン制御、命令の実行、命令フェッチ
部102やオペランドアクセス部104とのインターフ
ェイスなど、MPUコア部101のすべての制御を行
う。また、制御部112には、命令キュー111から送
られる命令コードをデコードするための命令デコード部
119があり、2つのデコーダを含む。第1デコーダ1
13は、第1演算部116で実行する命令をデコード
し、第2デコーダ114は、第2演算部117で実行す
る命令をデコードする。
の制御、パイプライン制御、命令の実行、命令フェッチ
部102やオペランドアクセス部104とのインターフ
ェイスなど、MPUコア部101のすべての制御を行
う。また、制御部112には、命令キュー111から送
られる命令コードをデコードするための命令デコード部
119があり、2つのデコーダを含む。第1デコーダ1
13は、第1演算部116で実行する命令をデコード
し、第2デコーダ114は、第2演算部117で実行す
る命令をデコードする。
【0016】2つのショート命令をシーケンシャルに実
行する場合、先行して実行される命令のデコード中に後
で実行する側の命令が図示していないプリデコーダでデ
コードされ、どちらのデコーダでデコードすべきかを判
定する。後で実行される命令がどちらのデコーダでも処
理できる命令の場合は第1デコーダ113でデコードす
る。先行する命令のデコード後、後で実行する命令の命
令コードが選択されたデコーダに取り込まれ、解析され
る。
行する場合、先行して実行される命令のデコード中に後
で実行する側の命令が図示していないプリデコーダでデ
コードされ、どちらのデコーダでデコードすべきかを判
定する。後で実行される命令がどちらのデコーダでも処
理できる命令の場合は第1デコーダ113でデコードす
る。先行する命令のデコード後、後で実行する命令の命
令コードが選択されたデコーダに取り込まれ、解析され
る。
【0017】レジスタファイル115は、複数のレジス
タの値を保持し、第1演算部116、第2演算部11
7、PC部118、オペランドアクセス部104に複数
のバスで結合されている。
タの値を保持し、第1演算部116、第2演算部11
7、PC部118、オペランドアクセス部104に複数
のバスで結合されている。
【0018】図2に、第1演算部116の詳細ブロック
構成を示す。第1演算部116は、レジスタファイル1
15と、各々S1バス301、S2バス302、S3バ
ス303によって結合されており、これら3つのバス3
01〜303を介してレジスタファイル115からデー
タを読み出し、演算器等にリードオペランドとなるデー
タやストアデータを転送する。S1バス301は偶数番
号のレジスタにのみに、S2バス302は奇数番号のレ
ジスタにのみに結合されており、S1バス301とS2
バス302でレジスタペアの2ワードを並列に転送する
こともできる。S3バス303は全レジスタに結合され
ている。
構成を示す。第1演算部116は、レジスタファイル1
15と、各々S1バス301、S2バス302、S3バ
ス303によって結合されており、これら3つのバス3
01〜303を介してレジスタファイル115からデー
タを読み出し、演算器等にリードオペランドとなるデー
タやストアデータを転送する。S1バス301は偶数番
号のレジスタにのみに、S2バス302は奇数番号のレ
ジスタにのみに結合されており、S1バス301とS2
バス302でレジスタペアの2ワードを並列に転送する
こともできる。S3バス303は全レジスタに結合され
ている。
【0019】また、第1演算部116は、レジスタファ
イル115と、各々D1バス311、Wバス314で結
合されており、D1バス311を介して演算結果や転送
データをレジスタファイル115に転送し、Wバス31
4でロードしたバイトデータをレジスタファイル115
に転送する。D1バス311、Wバス314とも、全レ
ジスタに結合されている。さらに、レジスタファイル1
15はオペランドアクセス部104と32ビットのOD
バス322で結合されており、1ワードのデータもしく
はレジスタペアの2ワードを並列に転送することが可能
である。ODバス322の上位/下位16ビットは、任
意のレジスタファイルに書き込みができるようにレジス
タファイル115の全レジスタに結合されている。
イル115と、各々D1バス311、Wバス314で結
合されており、D1バス311を介して演算結果や転送
データをレジスタファイル115に転送し、Wバス31
4でロードしたバイトデータをレジスタファイル115
に転送する。D1バス311、Wバス314とも、全レ
ジスタに結合されている。さらに、レジスタファイル1
15はオペランドアクセス部104と32ビットのOD
バス322で結合されており、1ワードのデータもしく
はレジスタペアの2ワードを並列に転送することが可能
である。ODバス322の上位/下位16ビットは、任
意のレジスタファイルに書き込みができるようにレジス
タファイル115の全レジスタに結合されている。
【0020】AAラッチ151、ABラッチ152は、
ALU153の入力ラッチである。AAラッチ151
は、S1バス301、S2バス302もしくはS3バス
303を介して読み出されたレジスタ値を取り込む。同
ラッチ151は、ゼロクリアする機能も備えている。A
Bラッチ152は、S3バス303を介して読み出され
たレジスタ値もしくは第1デコーダ113でデコードの
結果生成された16ビットの即値を取り込み、また、ゼ
ロクリアする機能も備えている。
ALU153の入力ラッチである。AAラッチ151
は、S1バス301、S2バス302もしくはS3バス
303を介して読み出されたレジスタ値を取り込む。同
ラッチ151は、ゼロクリアする機能も備えている。A
Bラッチ152は、S3バス303を介して読み出され
たレジスタ値もしくは第1デコーダ113でデコードの
結果生成された16ビットの即値を取り込み、また、ゼ
ロクリアする機能も備えている。
【0021】ALU153では、主として転送、比較、
算術論理演算、オペランドアドレスの計算/転送、オペ
ランドアドレス値のインクリメント/デクリメント、ジ
ャンプ先アドレスの計算/転送等が行われる。演算結果
やアドレスモディファイの結果はセレクタ155、D1
バス311を介して、レジスタファイル115中の命令
で指定されたレジスタに書き戻される。また、指定され
た条件が成立した場合には“1”を不成立の場合には
“0”をレジスタに書き込む条件セット命令を実行する
ために、セレクタ155は演算結果の最下位ビットに制
御部112から出力されたデータを埋め込む機能を備え
る。この場合、演算結果は“0”が出力されるように制
御される。AOラッチ154は、オペランドのアドレス
を保持するラッチであり、ALU153でのアドレス計
算結果もしくはAAラッチ151に保持されたベースア
ドレスの値を選択的に保持し、OAバス321を介して
オペランドアクセス部104に出力する。また、ジャン
プ先アドレスやリピートエンドアドレスを計算した場合
には、ALU153の出力が、JAバス323を介して
PC部118に転送される。
算術論理演算、オペランドアドレスの計算/転送、オペ
ランドアドレス値のインクリメント/デクリメント、ジ
ャンプ先アドレスの計算/転送等が行われる。演算結果
やアドレスモディファイの結果はセレクタ155、D1
バス311を介して、レジスタファイル115中の命令
で指定されたレジスタに書き戻される。また、指定され
た条件が成立した場合には“1”を不成立の場合には
“0”をレジスタに書き込む条件セット命令を実行する
ために、セレクタ155は演算結果の最下位ビットに制
御部112から出力されたデータを埋め込む機能を備え
る。この場合、演算結果は“0”が出力されるように制
御される。AOラッチ154は、オペランドのアドレス
を保持するラッチであり、ALU153でのアドレス計
算結果もしくはAAラッチ151に保持されたベースア
ドレスの値を選択的に保持し、OAバス321を介して
オペランドアクセス部104に出力する。また、ジャン
プ先アドレスやリピートエンドアドレスを計算した場合
には、ALU153の出力が、JAバス323を介して
PC部118に転送される。
【0022】MOD_S156とMOD_E157と
は、それぞれ図1のレジスタCR10及びCR11に相
当する制御レジスタである。比較器158は、MOD_
E157の値とS3バス303上のベースアドレスの値
とを比較して比較結果を制御部112に送る。モジュロ
アドレッシングがイネーブル状態で、ポストインクリメ
ント/デクリメント付きのレジスタ間接モードで、比較
器158の比較結果が一致した場合には、ラッチ159
に保持されているMOD_S156の値がセレクタ15
5、D1バス311を介して、レジスタファイル115
中のベースアドレスレジスタとして指定されたレジスタ
に書き戻される。
は、それぞれ図1のレジスタCR10及びCR11に相
当する制御レジスタである。比較器158は、MOD_
E157の値とS3バス303上のベースアドレスの値
とを比較して比較結果を制御部112に送る。モジュロ
アドレッシングがイネーブル状態で、ポストインクリメ
ント/デクリメント付きのレジスタ間接モードで、比較
器158の比較結果が一致した場合には、ラッチ159
に保持されているMOD_S156の値がセレクタ15
5、D1バス311を介して、レジスタファイル115
中のベースアドレスレジスタとして指定されたレジスタ
に書き戻される。
【0023】ストアデータ(SD)レジスタ160は、
16ビットのレジスタ2本からなり、S1バス301も
しくはS2バス302の一方、もしくは、S1バス30
1とS2バス302の両方に出力されたストアデータを
一時保持する。SDレジスタ160に保持されたデータ
は、ラッチ161を介して整置回路162に転送され
る。整置回路162では、オペランドのアドレスに従っ
て、ストアデータが32ビット境界に整置され、ラッチ
163、ODバス322を介してオペランドアクセス部
104に出力される。
16ビットのレジスタ2本からなり、S1バス301も
しくはS2バス302の一方、もしくは、S1バス30
1とS2バス302の両方に出力されたストアデータを
一時保持する。SDレジスタ160に保持されたデータ
は、ラッチ161を介して整置回路162に転送され
る。整置回路162では、オペランドのアドレスに従っ
て、ストアデータが32ビット境界に整置され、ラッチ
163、ODバス322を介してオペランドアクセス部
104に出力される。
【0024】また、オペランドアクセス部104でロー
ドされたバイトデータは、ODバス322を介して、1
6ビットのロードデータ(LD)レジスタ164に取り
込まれる。LDレジスタ164の値は、ラッチ165を
介して、整置回路166に転送される。整置回路166
では、バイト整置及びバイトデータのゼロ/符号拡張を
行う。整置、拡張後のデータが、Wバス314を介して
レジスタファイル115中の指定されたレジスタに書き
込まれる。1ワード(16ビット)ロード、2ワード
(32ビット)ロードの場合にはLDレジスタを介さ
ず、ODバス322からレジスタファイル115にロー
ドした値が直接書き込まれる。
ドされたバイトデータは、ODバス322を介して、1
6ビットのロードデータ(LD)レジスタ164に取り
込まれる。LDレジスタ164の値は、ラッチ165を
介して、整置回路166に転送される。整置回路166
では、バイト整置及びバイトデータのゼロ/符号拡張を
行う。整置、拡張後のデータが、Wバス314を介して
レジスタファイル115中の指定されたレジスタに書き
込まれる。1ワード(16ビット)ロード、2ワード
(32ビット)ロードの場合にはLDレジスタを介さ
ず、ODバス322からレジスタファイル115にロー
ドした値が直接書き込まれる。
【0025】制御部112中のPSW部171は図2の
PSWラッチ172や、PSW更新回路等からなり、演
算結果や命令の実行によりPSWラッチ172の値を更
新する。PSWラッチ172に値を転送する場合、S3
バス303に出力されたデータがTPSWラッチ167
を介して、必要なビット(アサインされているビット)
のみ転送される。PSWラッチ172の値を読み出す場
合には、PSW部171からD1バス311に出力さ
れ、レジスタファイル115に書き込まれる。例外処理
時には、D1バス311に出力されたPSWの値がBP
SWラッチ168に書き込まれる。BPSWラッチ16
8の値をレジスタファイル115に転送する場合には、
BPSWラッチ168の値はS3バス303に読み出さ
れ、レジスタファイルなど必要な場所に転送される。ア
サインされていないビットは強制的に“0”がS3バス
303に出力される。例外からの復帰時には、BPSW
ラッチ168の値は、直接TPSWラッチ167を介し
て、必要なビット(アサインされているビット)のみP
SWラッチ172に転送される。
PSWラッチ172や、PSW更新回路等からなり、演
算結果や命令の実行によりPSWラッチ172の値を更
新する。PSWラッチ172に値を転送する場合、S3
バス303に出力されたデータがTPSWラッチ167
を介して、必要なビット(アサインされているビット)
のみ転送される。PSWラッチ172の値を読み出す場
合には、PSW部171からD1バス311に出力さ
れ、レジスタファイル115に書き込まれる。例外処理
時には、D1バス311に出力されたPSWの値がBP
SWラッチ168に書き込まれる。BPSWラッチ16
8の値をレジスタファイル115に転送する場合には、
BPSWラッチ168の値はS3バス303に読み出さ
れ、レジスタファイルなど必要な場所に転送される。ア
サインされていないビットは強制的に“0”がS3バス
303に出力される。例外からの復帰時には、BPSW
ラッチ168の値は、直接TPSWラッチ167を介し
て、必要なビット(アサインされているビット)のみP
SWラッチ172に転送される。
【0026】図3は、PC部118の詳細ブロック図で
ある。命令アドレス(IA)レジスタ181は、次にフ
ェッチする命令のアドレスを保持し、次にフェッチする
命令のアドレスを命令フェッチ部102に出力する。引
き続き後続の命令をフェッチする場合には、IAレジス
タ181からラッチ182を介して転送されたアドレス
値がインクリメンタ183で1インクリメントされて、
IAレジスタ181に書き戻される。ジャンプやリピー
ト等によりシーケンスが切り替わる場合には、IAレジ
スタ181はJAバス323を介して転送されるジャン
プ先アドレス、リピートブロック開始アドレスを取り込
む。
ある。命令アドレス(IA)レジスタ181は、次にフ
ェッチする命令のアドレスを保持し、次にフェッチする
命令のアドレスを命令フェッチ部102に出力する。引
き続き後続の命令をフェッチする場合には、IAレジス
タ181からラッチ182を介して転送されたアドレス
値がインクリメンタ183で1インクリメントされて、
IAレジスタ181に書き戻される。ジャンプやリピー
ト等によりシーケンスが切り替わる場合には、IAレジ
スタ181はJAバス323を介して転送されるジャン
プ先アドレス、リピートブロック開始アドレスを取り込
む。
【0027】SRPT_Sレジスタ184、SRPT_
Eレジスタ186、SRPT_Cレジスタ188はステ
ップリピート制御用の制御レジスタである。SRPT_
Sレジスタ184はステップリピート処理対象命令列の
先頭アドレスを格納するレジスタ、SRPT_Eレジス
タ186はステップリピート処理対象命令列の最終アド
レスを格納するレジスタ、SRPT_Cレジスタ188
はステップリピート対象命令列に含まれる命令単位の実
行命令回数を格納するレジスタである。
Eレジスタ186、SRPT_Cレジスタ188はステ
ップリピート制御用の制御レジスタである。SRPT_
Sレジスタ184はステップリピート処理対象命令列の
先頭アドレスを格納するレジスタ、SRPT_Eレジス
タ186はステップリピート処理対象命令列の最終アド
レスを格納するレジスタ、SRPT_Cレジスタ188
はステップリピート対象命令列に含まれる命令単位の実
行命令回数を格納するレジスタである。
【0028】最終アドレスは、ステップリピート命令処
理時に第1演算部116で計算され、JAバス323を
介してSRPT_Eレジスタ186に取り込まれる。比
較器187は、ステップリピートを行うブロックの最終
命令のアドレスを保持するSRPT_Eレジスタ186
の値と、フェッチアドレスを保持しているIAレジスタ
181の値とを比較し、その比較結果を制御部112に
出力する。
理時に第1演算部116で計算され、JAバス323を
介してSRPT_Eレジスタ186に取り込まれる。比
較器187は、ステップリピートを行うブロックの最終
命令のアドレスを保持するSRPT_Eレジスタ186
の値と、フェッチアドレスを保持しているIAレジスタ
181の値とを比較し、その比較結果を制御部112に
出力する。
【0029】もし、ステップリピート処理中であり、ス
テップリピートする回数を保持するSRPT_Cレジス
タ188の値が“1”より大きい場合、SRPT_Sレ
ジスタ184に保持されているステップリピートを行う
ブロックの開始アドレスが、ラッチ185、JAバス3
23を介して、IAレジスタ181に転送される。
テップリピートする回数を保持するSRPT_Cレジス
タ188の値が“1”より大きい場合、SRPT_Sレ
ジスタ184に保持されているステップリピートを行う
ブロックの開始アドレスが、ラッチ185、JAバス3
23を介して、IAレジスタ181に転送される。
【0030】ステップリピート処理中は、ステップリピ
ート群の命令列の一つの命令が実行されるたびに、SR
PT_Cレジスタ188の値は、ラッチ189を介して
デクリメンタ190で“1”だけデクリメントされる。
デクリメントした値が、“0”であった場合にはそれ以
上のデクリメントは行わない。
ート群の命令列の一つの命令が実行されるたびに、SR
PT_Cレジスタ188の値は、ラッチ189を介して
デクリメンタ190で“1”だけデクリメントされる。
デクリメントした値が、“0”であった場合にはそれ以
上のデクリメントは行わない。
【0031】SRPT_Sレジスタ184、SRPT_
Eレジスタ186、RPT_Cラッチ188は、D1バ
ス311からの入力ポートとS3バス303への出力ポ
ートを持ち、必要に応じてステップリピート時の初期設
定や待避復帰が行なわれる。
Eレジスタ186、RPT_Cラッチ188は、D1バ
ス311からの入力ポートとS3バス303への出力ポ
ートを持ち、必要に応じてステップリピート時の初期設
定や待避復帰が行なわれる。
【0032】実行ステージPC(EPC)194は実行
中の命令のPC値を保持し、次命令PC(NPC)19
1は次に実行する命令のPC値を保持する。NPC19
1は、実行段階でジャンプが起こった場合、JAバス3
23上のジャンプ先アドレス値を取り込み、リピートで
分岐が起こった場合には、ラッチ185からリピートを
行うブロックの先頭アドレスを取り込む。それ以外の場
合には、ラッチ192を介して転送されたNPC191
の値が、インクリメンタ193でインクリメントされ、
NPC191に書き戻される。サブルーチンジャンプ命
令の場合には、ラッチ192の値が戻り先アドレスとし
てD1バス311に出力され、レジスタファイル115
中のリンクレジスタとして定義されているレジスタ(仮
に、レジスタR13とする)に書き戻される。また、次
の命令が実行状態に入る場合には、ラッチ192の値が
EPC194に転送される。実行中の命令のPC値を参
照する場合には、EPC194の値がS3バス303に
出力され、第1演算部116に転送される。例外や割り
込み等が検出された場合には、EPC194の値がラッ
チ195を介してBPC196に転送される。BPC1
96は、D1バス311からの入力ポートとS3バス3
03への出力ポートを持ち、必要に応じて待避復帰が行
なわれる。
中の命令のPC値を保持し、次命令PC(NPC)19
1は次に実行する命令のPC値を保持する。NPC19
1は、実行段階でジャンプが起こった場合、JAバス3
23上のジャンプ先アドレス値を取り込み、リピートで
分岐が起こった場合には、ラッチ185からリピートを
行うブロックの先頭アドレスを取り込む。それ以外の場
合には、ラッチ192を介して転送されたNPC191
の値が、インクリメンタ193でインクリメントされ、
NPC191に書き戻される。サブルーチンジャンプ命
令の場合には、ラッチ192の値が戻り先アドレスとし
てD1バス311に出力され、レジスタファイル115
中のリンクレジスタとして定義されているレジスタ(仮
に、レジスタR13とする)に書き戻される。また、次
の命令が実行状態に入る場合には、ラッチ192の値が
EPC194に転送される。実行中の命令のPC値を参
照する場合には、EPC194の値がS3バス303に
出力され、第1演算部116に転送される。例外や割り
込み等が検出された場合には、EPC194の値がラッ
チ195を介してBPC196に転送される。BPC1
96は、D1バス311からの入力ポートとS3バス3
03への出力ポートを持ち、必要に応じて待避復帰が行
なわれる。
【0033】図4に、第2演算部117の詳細ブロック
図を示す。第2演算部117は、レジスタファイル11
5と、各々S4バス304、S5バス305で結合され
ており、この2つのバス304,305を介してデータ
をレジスタファイル115から読み出す。S4バス30
4とS5バス305でレジスタペアの2ワードを並列に
転送することも可能である。また、第2演算部117
は、レジスタファイル115と、D2バス312、D3
バス313で結合されており、この2つのバス312,
313を介してデータをレジスタファイル115内の各
レジスタに書き込むことができる。D2バス312は偶
数番号のレジスタのみに、D3バス313は奇数番号の
レジスタのみに各々結合されている。D2バス312と
D3バス313でレジスタペアの2ワードを並列に転送
することもできる。
図を示す。第2演算部117は、レジスタファイル11
5と、各々S4バス304、S5バス305で結合され
ており、この2つのバス304,305を介してデータ
をレジスタファイル115から読み出す。S4バス30
4とS5バス305でレジスタペアの2ワードを並列に
転送することも可能である。また、第2演算部117
は、レジスタファイル115と、D2バス312、D3
バス313で結合されており、この2つのバス312,
313を介してデータをレジスタファイル115内の各
レジスタに書き込むことができる。D2バス312は偶
数番号のレジスタのみに、D3バス313は奇数番号の
レジスタのみに各々結合されている。D2バス312と
D3バス313でレジスタペアの2ワードを並列に転送
することもできる。
【0034】40ビットのALU201は、ビット番号
0からビット番号7までの8ビットがアキュムレータの
ガードビット用加算器、ビット番号8からビット番号2
3までの16ビットが算術論理演算器、ビット番号24
からビット番号39までの16ビットがアキュムレータ
の下位16ビットを加算するための加算器になってお
り、40ビットまでの加減算と、16ビットの論理演算
を行う。
0からビット番号7までの8ビットがアキュムレータの
ガードビット用加算器、ビット番号8からビット番号2
3までの16ビットが算術論理演算器、ビット番号24
からビット番号39までの16ビットがアキュムレータ
の下位16ビットを加算するための加算器になってお
り、40ビットまでの加減算と、16ビットの論理演算
を行う。
【0035】Aラッチ202、Bラッチ203は、AL
U201の40ビット入力ラッチである。Aラッチ20
2は、S4バス304からレジスタ値をビット番号8か
らビット番号23の位置に取り込むか、シフタ204を
介して、アキュムレータ208の値をそのままもしくは
16ビット算術右シフトした値を取り込む。シフタ20
5は、アキュムレータ208の値を配線206(ガード
ビット8ビット)、S4バス304(上位16ビッ
ト)、S5バス305(下位16ビット)を介して取り
込むか、レジスタの値をS5バス305のみ、もしく
は、S4バス304とS5バス305の両方を介して1
6ビットもしくは32ビットのデータを右詰めで取り込
み、40ビットに符号拡張する。シフタ205は、入力
したデータを左3ビットから右2ビットの任意のシフト
量で算術シフトし出力する。Bラッチ203は、S5バ
ス305上のデータをビット番号8からビット番号23
の位置に取り込むか、乗算器211の出力、もしくは、
シフタ205の出力を取り込む。Aラッチ202、Bラ
ッチ203は、各々ゼロクリアしたり定数の値に設定し
たりする機能も持つ。
U201の40ビット入力ラッチである。Aラッチ20
2は、S4バス304からレジスタ値をビット番号8か
らビット番号23の位置に取り込むか、シフタ204を
介して、アキュムレータ208の値をそのままもしくは
16ビット算術右シフトした値を取り込む。シフタ20
5は、アキュムレータ208の値を配線206(ガード
ビット8ビット)、S4バス304(上位16ビッ
ト)、S5バス305(下位16ビット)を介して取り
込むか、レジスタの値をS5バス305のみ、もしく
は、S4バス304とS5バス305の両方を介して1
6ビットもしくは32ビットのデータを右詰めで取り込
み、40ビットに符号拡張する。シフタ205は、入力
したデータを左3ビットから右2ビットの任意のシフト
量で算術シフトし出力する。Bラッチ203は、S5バ
ス305上のデータをビット番号8からビット番号23
の位置に取り込むか、乗算器211の出力、もしくは、
シフタ205の出力を取り込む。Aラッチ202、Bラ
ッチ203は、各々ゼロクリアしたり定数の値に設定し
たりする機能も持つ。
【0036】ALU201の出力は、サチュレーション
回路209に出力される。サチュレーション回路209
は、上位16ビット、もしくは、上位下位あわせた32
ビットにする際に、ガードビットを見て、各々16ビッ
トもしくは32ビットで表現できる最大値もしくは最小
値にクリッピングする機能を備える。もちろんそのまま
出力する機能もある。サチュレーション回路209の出
力は配線207に結合されている。
回路209に出力される。サチュレーション回路209
は、上位16ビット、もしくは、上位下位あわせた32
ビットにする際に、ガードビットを見て、各々16ビッ
トもしくは32ビットで表現できる最大値もしくは最小
値にクリッピングする機能を備える。もちろんそのまま
出力する機能もある。サチュレーション回路209の出
力は配線207に結合されている。
【0037】デスティネーションオペランドがアキュム
レータ208の場合には、配線207の値がアキュムレ
ータ208に書き込まれる。デスティネーションオペラ
ンドがレジスタの場合は、配線207の値が、D2バス
312やD3バス313を介して、レジスタファイル1
15に書き込まれる。1ワード転送の場合にはデスティ
ネーションレジスタの番号が偶数の場合D2バス312
に、奇数の場合にはD3バス313に出力される。2ワ
ード転送の場合には、上位側の16ビットデータがD2
バス312に、下位側のビットデータがD3バス313
に出力される。また、転送命令、絶対値の計算、最大値
設定命令や、最小値設定命令を実行するために、Aラッ
チ202とBラッチ203の出力が、配線207に結合
されており、Aラッチ202とBラッチ203の値をア
キュムレータ208やレジスタファイル115に転送す
ることが可能である。
レータ208の場合には、配線207の値がアキュムレ
ータ208に書き込まれる。デスティネーションオペラ
ンドがレジスタの場合は、配線207の値が、D2バス
312やD3バス313を介して、レジスタファイル1
15に書き込まれる。1ワード転送の場合にはデスティ
ネーションレジスタの番号が偶数の場合D2バス312
に、奇数の場合にはD3バス313に出力される。2ワ
ード転送の場合には、上位側の16ビットデータがD2
バス312に、下位側のビットデータがD3バス313
に出力される。また、転送命令、絶対値の計算、最大値
設定命令や、最小値設定命令を実行するために、Aラッ
チ202とBラッチ203の出力が、配線207に結合
されており、Aラッチ202とBラッチ203の値をア
キュムレータ208やレジスタファイル115に転送す
ることが可能である。
【0038】プライオリティエンコーダ210は、ラッ
チB203の値を取り込み、固定小数点フォーマットの
数を正規化するのに必要なシフト量を計算し、レジスタ
ファイル115に書き戻すために結果をD2バス312
もしくはD3バス313に出力する。
チB203の値を取り込み、固定小数点フォーマットの
数を正規化するのに必要なシフト量を計算し、レジスタ
ファイル115に書き戻すために結果をD2バス312
もしくはD3バス313に出力する。
【0039】Xラッチ212、Yラッチ213は乗算器
211の入力レジスタであり、各々、S4バス304、
S5バス305の16ビットの値を取り込み、17ビッ
トにゼロ拡張もしくは符号拡張する機能を備える。乗算
器211は、17ビットx17ビットの乗算器であり、
Xラッチ212に格納された値とYラッチ213に格納
された値との乗算を行う。積和命令や積差命令の場合に
は、乗算結果はPラッチ214に取り込まれ、Bラッチ
203に送られる。乗算命令でデスティネーションオペ
ランドがアキュムレータ208の場合には、乗算結果を
アキュムレータ208に書き込む。
211の入力レジスタであり、各々、S4バス304、
S5バス305の16ビットの値を取り込み、17ビッ
トにゼロ拡張もしくは符号拡張する機能を備える。乗算
器211は、17ビットx17ビットの乗算器であり、
Xラッチ212に格納された値とYラッチ213に格納
された値との乗算を行う。積和命令や積差命令の場合に
は、乗算結果はPラッチ214に取り込まれ、Bラッチ
203に送られる。乗算命令でデスティネーションオペ
ランドがアキュムレータ208の場合には、乗算結果を
アキュムレータ208に書き込む。
【0040】バレルシフタ215は、40ビットもしく
は16ビットのデータに対して、左右16ビットまでの
算術/論理シフトが可能である。シフトデータは、アキ
ュムレータ208の値もしくはS4バス304を介して
レジスタの値がシフトデータ(SD)ラッチ217に取
り込まれる。シフト量については、即値もしくはレジス
タ値がS5バス305を介してシフト量(SC)ラッチ
216に取り込まれる。バレルシフタ215はSDラッ
チ217のデータをSCラッチ216で指定されるシフ
ト量だけ、オペレーションコードで指定されたシフトを
行う。シフト結果は、サチュレーション回路209に出
力され、ALUでの演算結果と同様、必要に応じてサチ
ュレーションが行われ、配線207に出力される。配線
207に出力された値は、アキュムレータ208もしく
はD2バス312、D3バス313を介してレジスタフ
ァイル115に書き戻される。
は16ビットのデータに対して、左右16ビットまでの
算術/論理シフトが可能である。シフトデータは、アキ
ュムレータ208の値もしくはS4バス304を介して
レジスタの値がシフトデータ(SD)ラッチ217に取
り込まれる。シフト量については、即値もしくはレジス
タ値がS5バス305を介してシフト量(SC)ラッチ
216に取り込まれる。バレルシフタ215はSDラッ
チ217のデータをSCラッチ216で指定されるシフ
ト量だけ、オペレーションコードで指定されたシフトを
行う。シフト結果は、サチュレーション回路209に出
力され、ALUでの演算結果と同様、必要に応じてサチ
ュレーションが行われ、配線207に出力される。配線
207に出力された値は、アキュムレータ208もしく
はD2バス312、D3バス313を介してレジスタフ
ァイル115に書き戻される。
【0041】即値ラッチ218は、第2デコーダ114
で生成された6ビットの即値を16ビットに拡張して保
持し、S5バス305を介して演算器に転送する。ビッ
ト操作命令のビットマスクもここで生成される。
で生成された6ビットの即値を16ビットに拡張して保
持し、S5バス305を介して演算器に転送する。ビッ
ト操作命令のビットマスクもここで生成される。
【0042】次に本データ処理装置のパイプライン処理
について説明する。図5はパイプライン処理を示す図で
ある。本データ処理装置は、命令データのフェッチを行
う命令フェッチ(IF)ステージ401、命令の解析を
行う命令デコード(D)ステージ402、演算実行を行
う命令実行(E)ステージ403、データメモリのアク
セスを行うメモリアクセス(M)ステージ404、メモ
リからロードしたバイトオペランドをレジスタへ書き込
むライトバック(W)ステージ405の5段のパイプラ
イン処理を行う。Eステージ403での演算結果のレジ
スタへの書き込みはEステージ403で完了し、ワード
(2バイト)、2ワード(4バイト)ロード時のレジス
タへの書き込みはMステージ404で完了する。積和/
積差演算に関しては、更に乗算と加算の2段のパイプラ
インで命令の実行を行う。後段の処理を命令実行2(E
2)ステージ406と呼ぶ。連続する積和/積差演算を
1回/1クロックサイクルのスループットで実行でき
る。
について説明する。図5はパイプライン処理を示す図で
ある。本データ処理装置は、命令データのフェッチを行
う命令フェッチ(IF)ステージ401、命令の解析を
行う命令デコード(D)ステージ402、演算実行を行
う命令実行(E)ステージ403、データメモリのアク
セスを行うメモリアクセス(M)ステージ404、メモ
リからロードしたバイトオペランドをレジスタへ書き込
むライトバック(W)ステージ405の5段のパイプラ
イン処理を行う。Eステージ403での演算結果のレジ
スタへの書き込みはEステージ403で完了し、ワード
(2バイト)、2ワード(4バイト)ロード時のレジス
タへの書き込みはMステージ404で完了する。積和/
積差演算に関しては、更に乗算と加算の2段のパイプラ
インで命令の実行を行う。後段の処理を命令実行2(E
2)ステージ406と呼ぶ。連続する積和/積差演算を
1回/1クロックサイクルのスループットで実行でき
る。
【0043】IFステージ401では、主として命令の
フェッチ、命令キュー111の管理、リピート制御が行
われる。命令フェッチ部102、内蔵命令メモリ10
3、外部バスインターフェイス部106、命令キュー1
11、PC部118のIAレジスタ181、ラッチ18
2、インクリメンタ183、比較器187等や制御部1
12のIFステージステージ制御、命令フェッチ制御、
PC部118制御等を行う部分が、このIFステージ4
01の制御で動作する。IFステージ401は、Eステ
ージ403のジャンプで初期化される。
フェッチ、命令キュー111の管理、リピート制御が行
われる。命令フェッチ部102、内蔵命令メモリ10
3、外部バスインターフェイス部106、命令キュー1
11、PC部118のIAレジスタ181、ラッチ18
2、インクリメンタ183、比較器187等や制御部1
12のIFステージステージ制御、命令フェッチ制御、
PC部118制御等を行う部分が、このIFステージ4
01の制御で動作する。IFステージ401は、Eステ
ージ403のジャンプで初期化される。
【0044】フェッチアドレスは、IAレジスタ181
で保持される。Eステージ403でジャンプが起こると
JAバス323を介してジャンプ先アドレスを取り込
み、初期化を行う。シーケンシャルに命令データをフェ
ッチする場合には、インクリメンタ183でアドレスを
インクリメントする。ステップリピート処理中に、比較
器187でIAレジスタ181の値とSRPT_Eレジ
スタ186の値が一致していることが検出され、かつ、
SRPT_Cレジスタ188の値が“1”より大きけれ
ば、シーケンスの切り替え制御が行われる。この場合、
SRPT_Sレジスタ184に保持されている値がラッ
チ185、JAバス323を介してIAレジスタ181
に転送される。
で保持される。Eステージ403でジャンプが起こると
JAバス323を介してジャンプ先アドレスを取り込
み、初期化を行う。シーケンシャルに命令データをフェ
ッチする場合には、インクリメンタ183でアドレスを
インクリメントする。ステップリピート処理中に、比較
器187でIAレジスタ181の値とSRPT_Eレジ
スタ186の値が一致していることが検出され、かつ、
SRPT_Cレジスタ188の値が“1”より大きけれ
ば、シーケンスの切り替え制御が行われる。この場合、
SRPT_Sレジスタ184に保持されている値がラッ
チ185、JAバス323を介してIAレジスタ181
に転送される。
【0045】IAレジスタ181の値は命令フェッチ部
102に送られ、命令フェッチ部102が命令データの
フェッチを行う。対応する命令データが内蔵命令メモリ
103にある場合には、内蔵命令メモリ103から命令
コードを読み出す。この場合、1クロックサイクルで3
2ビットの命令のフェッチを完了する。対応する命令デ
ータが内蔵命令メモリ103にない場合には、外部バス
インターフェイス部106に命令フェッチ要求を出す。
外部バスインターフェイス部106は、オペランドアク
セス部104からの要求とを調停し、命令の取り込みが
可能になったら、外部のメモリから命令データを取り込
み、命令フェッチ部102に送る。外部バスインターフ
ェイス部106は、最小2クロックサイクルで外部メモ
リのアクセスを行うことが可能である。命令フェッチ部
102は取り込まれた命令を、命令キュー111に転送
する。命令キュー111は2エントリのキューになって
おり、FIFO制御で取り込まれた命令コードを、命令
デコード部119に出力する。
102に送られ、命令フェッチ部102が命令データの
フェッチを行う。対応する命令データが内蔵命令メモリ
103にある場合には、内蔵命令メモリ103から命令
コードを読み出す。この場合、1クロックサイクルで3
2ビットの命令のフェッチを完了する。対応する命令デ
ータが内蔵命令メモリ103にない場合には、外部バス
インターフェイス部106に命令フェッチ要求を出す。
外部バスインターフェイス部106は、オペランドアク
セス部104からの要求とを調停し、命令の取り込みが
可能になったら、外部のメモリから命令データを取り込
み、命令フェッチ部102に送る。外部バスインターフ
ェイス部106は、最小2クロックサイクルで外部メモ
リのアクセスを行うことが可能である。命令フェッチ部
102は取り込まれた命令を、命令キュー111に転送
する。命令キュー111は2エントリのキューになって
おり、FIFO制御で取り込まれた命令コードを、命令
デコード部119に出力する。
【0046】Dステージ402では、命令デコード部1
19でオペレーションコードの解析を行い、第1演算部
116、第2演算部117、PC部118等で命令の実
行を行うための制御信号群を生成する。Dステージ40
2は、Eステージ403のジャンプで初期化される。命
令キュー111から送られてくる命令コードが無効な場
合には、アイドルサイクルとなり、有効な命令コードが
取り込まれるまで待つ。Eステージ403が次の処理を
開始できない場合には、演算器等に送る制御信号を無効
化し、Eステージ403での先行命令の処理の終了を待
つ。例えば、Eステージ403で実行中の命令がメモリ
アクセスを行う命令であり、Mステージ404でのメモ
リアクセスが終了していない場合にこのような状態にな
る。
19でオペレーションコードの解析を行い、第1演算部
116、第2演算部117、PC部118等で命令の実
行を行うための制御信号群を生成する。Dステージ40
2は、Eステージ403のジャンプで初期化される。命
令キュー111から送られてくる命令コードが無効な場
合には、アイドルサイクルとなり、有効な命令コードが
取り込まれるまで待つ。Eステージ403が次の処理を
開始できない場合には、演算器等に送る制御信号を無効
化し、Eステージ403での先行命令の処理の終了を待
つ。例えば、Eステージ403で実行中の命令がメモリ
アクセスを行う命令であり、Mステージ404でのメモ
リアクセスが終了していない場合にこのような状態にな
る。
【0047】Dステージ402では、シーケンシャル実
行を行う2命令の分割や、2サイクル実行命令のシーケ
ンス制御も行う。さらに、スコアボードレジスタ(図示
せず)を用いたロードオペランドの干渉チェックや第2
演算部117での演算器の干渉チェック等も行い、干渉
が検出された場合には、干渉が解消されるまで制御信号
の出力を抑止する。
行を行う2命令の分割や、2サイクル実行命令のシーケ
ンス制御も行う。さらに、スコアボードレジスタ(図示
せず)を用いたロードオペランドの干渉チェックや第2
演算部117での演算器の干渉チェック等も行い、干渉
が検出された場合には、干渉が解消されるまで制御信号
の出力を抑止する。
【0048】<ステップリピート処理>ステップリピー
ト処理中であるか否かは、図6に示すプロセッサステー
タスワード(以下PSW)中のSRPビット43によっ
て示される。SRPビット43に“1”がセットされて
いるとき、ステップリピートの処理中である。SRPビ
ット43はステップリピート命令の実行によりセットさ
れ、ステップリピート処理の終了によってクリアされ
る。またPSWに対する通常のデータ転送処理によって
も任意の値を設定することができ、割り込みや例外の発
生時にはパックアップレジスタに待避される。ステップ
リピート処理の終了検出については後で説明する。
ト処理中であるか否かは、図6に示すプロセッサステー
タスワード(以下PSW)中のSRPビット43によっ
て示される。SRPビット43に“1”がセットされて
いるとき、ステップリピートの処理中である。SRPビ
ット43はステップリピート命令の実行によりセットさ
れ、ステップリピート処理の終了によってクリアされ
る。またPSWに対する通常のデータ転送処理によって
も任意の値を設定することができ、割り込みや例外の発
生時にはパックアップレジスタに待避される。ステップ
リピート処理の終了検出については後で説明する。
【0049】なお、SMビット41はスタックモードを
示すビットであり、SMビット41が“0”の場合は割
り込みモードであることを示し、“1”の場合はユーザ
ーモードであることを示す。PSWのビット番号5は割
り込みイネーブルを指定するIEビット42であり、
“0”の場合は割り込みをマスク(アサートされても無
視)し、“1”の場合は割り込みを受け付ける。PSW
のビット番号7はモジュロイネーブルを指定するMDビ
ット44であり、“0”の場合はモジュロアドレッシン
グをディスエーブル状態にし、“1”の場合はモジュロ
アドレッシングをイネーブル状態にする。PSWのビッ
ト番号12は実行制御フラグ(F0フラグ)47であ
り、比較命令の比較結果などがこのフラグにセットされ
る。PSWのビット番号15はキャリー・フラグ(Cフ
ラグ)49であり、加減算命令実行時のキャリーがこの
フラグにセットされる。
示すビットであり、SMビット41が“0”の場合は割
り込みモードであることを示し、“1”の場合はユーザ
ーモードであることを示す。PSWのビット番号5は割
り込みイネーブルを指定するIEビット42であり、
“0”の場合は割り込みをマスク(アサートされても無
視)し、“1”の場合は割り込みを受け付ける。PSW
のビット番号7はモジュロイネーブルを指定するMDビ
ット44であり、“0”の場合はモジュロアドレッシン
グをディスエーブル状態にし、“1”の場合はモジュロ
アドレッシングをイネーブル状態にする。PSWのビッ
ト番号12は実行制御フラグ(F0フラグ)47であ
り、比較命令の比較結果などがこのフラグにセットされ
る。PSWのビット番号15はキャリー・フラグ(Cフ
ラグ)49であり、加減算命令実行時のキャリーがこの
フラグにセットされる。
【0050】ステップリピート命令は、SRPT_Sレ
ジスタ184、SRPT_Eレジスタ186、及ぴSR
PT_Cレジスタ188に所定の値を設定すると同時
に、SRPビット43に“1”をセットする命令であ
る。図7はステップリピート命令SREPのニーモニッ
クを示したものであり、この命令は2クロックサイクル
をかけて実行される。
ジスタ184、SRPT_Eレジスタ186、及ぴSR
PT_Cレジスタ188に所定の値を設定すると同時
に、SRPビット43に“1”をセットする命令であ
る。図7はステップリピート命令SREPのニーモニッ
クを示したものであり、この命令は2クロックサイクル
をかけて実行される。
【0051】第1の実行サイクルにおいて、第一演算部
116はSREP命令の命令アドレス値と図7の第3項
Labelで指定された値を足し合わせ、JAバスを介
してこの結果をSRPT_Eレジスタ186にセットす
る。SREP命令の命令アドレスはEPC194からS
3バス303を介して読み込まれる。図7の第3項La
belの転送経路は図示しない。これと同時にSREP
命令の次の命令アドレスがNPC191から読み出さ
れ、D1バス311を介してSRPT_Sレジスタ18
4にセットされる。
116はSREP命令の命令アドレス値と図7の第3項
Labelで指定された値を足し合わせ、JAバスを介
してこの結果をSRPT_Eレジスタ186にセットす
る。SREP命令の命令アドレスはEPC194からS
3バス303を介して読み込まれる。図7の第3項La
belの転送経路は図示しない。これと同時にSREP
命令の次の命令アドレスがNPC191から読み出さ
れ、D1バス311を介してSRPT_Sレジスタ18
4にセットされる。
【0052】第2の実行サイクルにおいて、図7の第2
項Rsrsで指定されたレジスタより読み出された値が
S3バス303を介して第1演算部116に与えられ、
この値は第一演算部116をスルーしD1バス311を
介してSRPT_Cレジスタ188にセットされる。こ
の時、SRPビット43に“1”がセットされる。ここ
で、ステップリピート命令SREPは、図8に示すビッ
トマップに割り付けられるべき命令である。
項Rsrsで指定されたレジスタより読み出された値が
S3バス303を介して第1演算部116に与えられ、
この値は第一演算部116をスルーしD1バス311を
介してSRPT_Cレジスタ188にセットされる。こ
の時、SRPビット43に“1”がセットされる。ここ
で、ステップリピート命令SREPは、図8に示すビッ
トマップに割り付けられるべき命令である。
【0053】同図に示すように、フィールド81にはS
REP命令であることを示すコードが、フィールド83
にはRsrsで指定されたレジスタ番号が、フィールド
84にはLabelで指定された値が格納される。この
時、フィールド82は使用されないため“0”が格納さ
れる。また、リピート処理対象命令列の命令を幾つ実行
するか予め判っている場合にはSREPI命令を用いる
ことができる。図9にSREPI命令のニーモニックを
示す。第2項にはRPT_C188に設定すべき値を指
定するが、この値はフィールド82とフィールド83の
両方を合せた領域に格納される。
REP命令であることを示すコードが、フィールド83
にはRsrsで指定されたレジスタ番号が、フィールド
84にはLabelで指定された値が格納される。この
時、フィールド82は使用されないため“0”が格納さ
れる。また、リピート処理対象命令列の命令を幾つ実行
するか予め判っている場合にはSREPI命令を用いる
ことができる。図9にSREPI命令のニーモニックを
示す。第2項にはRPT_C188に設定すべき値を指
定するが、この値はフィールド82とフィールド83の
両方を合せた領域に格納される。
【0054】<実施の形態1>図10はこの発明の実施
の形態1であるデータ処理装置におけるステップリピー
ト実行に関する制御部112の構成を示したものであ
る。同図において、実行制御信号生成部910は、汎用
レジスタや制御レジスタへの書き込み許可信号、演算フ
ラグの更新信号、メモリヘの書き込み要求信号などを生
成するブロックであり、プログラマが認識できる全リソ
ース(ハードウェアリソース)の更新制御信号はこのブ
ロックで生成される。レジスタからバスへの読み出し
等、プログラマの認識するリソースの更新に関与しない
制御信号には別のブロック(図示せず)で生成されるも
のもある。
の形態1であるデータ処理装置におけるステップリピー
ト実行に関する制御部112の構成を示したものであ
る。同図において、実行制御信号生成部910は、汎用
レジスタや制御レジスタへの書き込み許可信号、演算フ
ラグの更新信号、メモリヘの書き込み要求信号などを生
成するブロックであり、プログラマが認識できる全リソ
ース(ハードウェアリソース)の更新制御信号はこのブ
ロックで生成される。レジスタからバスへの読み出し
等、プログラマの認識するリソースの更新に関与しない
制御信号には別のブロック(図示せず)で生成されるも
のもある。
【0055】実行制御信号生成部910には、リピート
終了フラグ903と、複数のデータラッチ群908を介
した命令コード907及び最終命令フラグ906が与え
られている。データラッチ群908は、命令フェッチス
テージで読み込んだ命令コード907を実行制御信号生
成部913の動作するステージまでパイプライン転送す
るためのものである。
終了フラグ903と、複数のデータラッチ群908を介
した命令コード907及び最終命令フラグ906が与え
られている。データラッチ群908は、命令フェッチス
テージで読み込んだ命令コード907を実行制御信号生
成部913の動作するステージまでパイプライン転送す
るためのものである。
【0056】データラッチ群908はデータラッチ90
8A〜908Dから構成され半クロック毎にパイプライ
ン転送を行う。したがって、一つの命令コード907に
着目した場合、データラッチ908Aは命令フェッチス
テージのクロックの“L”区間に命令コード907をラ
ッチし、データラッチ908Bはデコードステージのク
ロックの“H”区間に命令コード907をラッチし、デ
ータラッチ908Cはデコードステージのクロックの
“L”区間に命令コード907をラッチし、データラッ
チ908Dは命令実行ステージのクロックの“H”区間
に命令コード907をラッチすることになる。
8A〜908Dから構成され半クロック毎にパイプライ
ン転送を行う。したがって、一つの命令コード907に
着目した場合、データラッチ908Aは命令フェッチス
テージのクロックの“L”区間に命令コード907をラ
ッチし、データラッチ908Bはデコードステージのク
ロックの“H”区間に命令コード907をラッチし、デ
ータラッチ908Cはデコードステージのクロックの
“L”区間に命令コード907をラッチし、データラッ
チ908Dは命令実行ステージのクロックの“H”区間
に命令コード907をラッチすることになる。
【0057】リピート終了フラグ903は、ステップリ
ピートの処理中で、かつSRPT_Cレジスタ188に
当初指定された実行命令回数の命令実行を完了したこと
を示すものである。これはSRPT_Cレジスタ188
が“0”でSRPビット43が“1”の時、アサートさ
れる。図10に示すように、リピート終了フラグ903
は、ゼロ判定器900出力とSRPフラグ43の値との
ANDゲート901による論理積により求められ、その
後、ラッチ902によって所望の位相に合せ込まれて出
力される。なお、ゼロ判定器900はSRPT_Cレジ
スタ188の値が“0”の時に“1”を出力するもので
ある。
ピートの処理中で、かつSRPT_Cレジスタ188に
当初指定された実行命令回数の命令実行を完了したこと
を示すものである。これはSRPT_Cレジスタ188
が“0”でSRPビット43が“1”の時、アサートさ
れる。図10に示すように、リピート終了フラグ903
は、ゼロ判定器900出力とSRPフラグ43の値との
ANDゲート901による論理積により求められ、その
後、ラッチ902によって所望の位相に合せ込まれて出
力される。なお、ゼロ判定器900はSRPT_Cレジ
スタ188の値が“0”の時に“1”を出力するもので
ある。
【0058】基本的に実行制御信号生成部910は、デ
ータラッチ群908を介して与えられた命令コード90
7に基いて順次実行制御信号を生成して命令コード90
7に規定された命令を実行させる。しかしながらリピー
ト終了フラグ903がアサート(実行命令回数の命令実
行達成状態)されている時は、命令コード907の内容
に関わらず全ての実行制御信号をネゲートする。その結
果、リピート終了フラグ903がアサートされている期
間に実行された命令は、全てNOPと同様の動作となり
無効にされる。
ータラッチ群908を介して与えられた命令コード90
7に基いて順次実行制御信号を生成して命令コード90
7に規定された命令を実行させる。しかしながらリピー
ト終了フラグ903がアサート(実行命令回数の命令実
行達成状態)されている時は、命令コード907の内容
に関わらず全ての実行制御信号をネゲートする。その結
果、リピート終了フラグ903がアサートされている期
間に実行された命令は、全てNOPと同様の動作となり
無効にされる。
【0059】一方、最終命令フラグ906は、ステップ
リピートの処理中であり、SRPT_Cレジスタ188
に指定された命令数の実行を完了しており、かつ命令フ
ェッチによって読み込まれた命令コード907がステッ
プリピート処理対象命令列の最終命令であるか否かを
“1”/“0”で示している。最終命令フラグ906は
ラッチ904を介したPC部118の比較器187出カ
と、リピート終了フラグ903のANDゲート905に
よる論理積によって求められる。なお、比較器187は
SRPT_Eレジスタ186とIA181とを比較し、
両者の値が等しい時に“1”を出カする。
リピートの処理中であり、SRPT_Cレジスタ188
に指定された命令数の実行を完了しており、かつ命令フ
ェッチによって読み込まれた命令コード907がステッ
プリピート処理対象命令列の最終命令であるか否かを
“1”/“0”で示している。最終命令フラグ906は
ラッチ904を介したPC部118の比較器187出カ
と、リピート終了フラグ903のANDゲート905に
よる論理積によって求められる。なお、比較器187は
SRPT_Eレジスタ186とIA181とを比較し、
両者の値が等しい時に“1”を出カする。
【0060】最終命令フラグ906は対応する命令コー
ド907とともにデータラッチ群908をパイプライン
転送され、対応する命令コード907の命令実行時にS
RPクリア信号909となる。SRPビット43は、S
RPクリア信号909が与えられることによって“0”
にクリアされる。
ド907とともにデータラッチ群908をパイプライン
転送され、対応する命令コード907の命令実行時にS
RPクリア信号909となる。SRPビット43は、S
RPクリア信号909が与えられることによって“0”
にクリアされる。
【0061】図11は、図10で示した実施の形態1の
制御部によるステップリピート機能を用いたFIRフィ
ルタ処理の実現例を示したものである。図11におい
て、命令N+6はステップリピート命令であり、SRP
T_Sレジスタ184には命令N+7のアドレスが、S
RPT_Eレジスタ186には命令N+12のアドレス
が、SRPT_Cレジスタ188には前述したレジスタ
R13に格納されている値が、それぞれ設定される。な
お、“||”は2つの命令を並列に実行することを示
す。
制御部によるステップリピート機能を用いたFIRフィ
ルタ処理の実現例を示したものである。図11におい
て、命令N+6はステップリピート命令であり、SRP
T_Sレジスタ184には命令N+7のアドレスが、S
RPT_Eレジスタ186には命令N+12のアドレス
が、SRPT_Cレジスタ188には前述したレジスタ
R13に格納されている値が、それぞれ設定される。な
お、“||”は2つの命令を並列に実行することを示
す。
【0062】これにより命令N+7〜命令N+12の6
命令が繰り返しフェッチされ、予めレジスタR13に設
定されていた値(実行命令回数)に対応する回数分、命
令が実行される。例えばレジスタR13に“128”が
設定されていたならば、命令N+7〜N+12を21回
繰り返し(小計126回)、その後、命令N+7,命令
N+8を各1回(小計2回)実行し、合計で128個の
命令を実行する。命令N+8に引き続いて22回目にフ
ェッチされた命令N+9〜N+12は、実行ステージで
実行制御信号生成部910命令実行制御信号の強制的ネ
ゲートすることによりNOP化(無効化)される。レジ
スタR13に“127”が設定されていたならば、命令
N+7〜N+12を21回と、その後命令N+7を1回
実行し、合計127個の命令を実行する。そして、命令
N+7に引き続いてフェッチされていた命令N+8〜N
+12はNOP化される。
命令が繰り返しフェッチされ、予めレジスタR13に設
定されていた値(実行命令回数)に対応する回数分、命
令が実行される。例えばレジスタR13に“128”が
設定されていたならば、命令N+7〜N+12を21回
繰り返し(小計126回)、その後、命令N+7,命令
N+8を各1回(小計2回)実行し、合計で128個の
命令を実行する。命令N+8に引き続いて22回目にフ
ェッチされた命令N+9〜N+12は、実行ステージで
実行制御信号生成部910命令実行制御信号の強制的ネ
ゲートすることによりNOP化(無効化)される。レジ
スタR13に“127”が設定されていたならば、命令
N+7〜N+12を21回と、その後命令N+7を1回
実行し、合計127個の命令を実行する。そして、命令
N+7に引き続いてフェッチされていた命令N+8〜N
+12はNOP化される。
【0063】図12はレジスタR13に“127”が設
定されていたときの様子を示した図である。説明の簡単
化のため第2演算部117で実行される命令のパイプラ
イン動作のみを示す。命令N+12はステップリピート
対象命令列の最終命令であり、その命令アドレスはSR
PT_Eレジスタ186の値と一致する。で示す命令
N+12の21回目のフェッチ時にはSRPT_Cレジ
スタ188は“0”でないため、次に、SRPT_Sレ
ジスタ184で示される命令N+7をフェッチする。
で示す命令N+7を実行した時点でSRPT_Cレジス
タ188の値が“0”となるため、で示す命令N+1
2のフェッチ後は、通常どおり命令アドレスをインクリ
メントして、で示す命令N+13をフェッチする。S
RPT_Cレジスタ188が“0”になってからステッ
プリピート処理を終了する(SRPビット43が“0”
になる)までに実行されたからの命令N+8〜N+
12は実行制御信号生成部910によって全てNOP化
される。これらの命令はNOP化されているためE2で
示されるパイプラインステージは動作しない。
定されていたときの様子を示した図である。説明の簡単
化のため第2演算部117で実行される命令のパイプラ
イン動作のみを示す。命令N+12はステップリピート
対象命令列の最終命令であり、その命令アドレスはSR
PT_Eレジスタ186の値と一致する。で示す命令
N+12の21回目のフェッチ時にはSRPT_Cレジ
スタ188は“0”でないため、次に、SRPT_Sレ
ジスタ184で示される命令N+7をフェッチする。
で示す命令N+7を実行した時点でSRPT_Cレジス
タ188の値が“0”となるため、で示す命令N+1
2のフェッチ後は、通常どおり命令アドレスをインクリ
メントして、で示す命令N+13をフェッチする。S
RPT_Cレジスタ188が“0”になってからステッ
プリピート処理を終了する(SRPビット43が“0”
になる)までに実行されたからの命令N+8〜N+
12は実行制御信号生成部910によって全てNOP化
される。これらの命令はNOP化されているためE2で
示されるパイプラインステージは動作しない。
【0064】このように、実施の形態1のデータ処理装
置は、ステップリピート命令実行時に、リピート終了フ
ラグ903が達成状態を指示する(“1”)ときデータ
ラッチ群908より受ける命令を順次無効にしている。
置は、ステップリピート命令実行時に、リピート終了フ
ラグ903が達成状態を指示する(“1”)ときデータ
ラッチ群908より受ける命令を順次無効にしている。
【0065】したがって、ステップリピート命令で指定
された命令列の命令単位の総実行回数が実行命令回数に
達した後は、データラッチ群908に取り込まれた命令
を確実に無効にすることができるため、命令列に含まれ
る命令を繰り返しながら、指定された命令単位の回数
(実行命令回数)で正確に実行することができる。
された命令列の命令単位の総実行回数が実行命令回数に
達した後は、データラッチ群908に取り込まれた命令
を確実に無効にすることができるため、命令列に含まれ
る命令を繰り返しながら、指定された命令単位の回数
(実行命令回数)で正確に実行することができる。
【0066】その結果、プログラム設計者は、ステップ
リピート処理を活用することにより、プログラム実行時
に命令の実行回数が動的に決定される場合にも、容易に
プログラムを作成することができる。
リピート処理を活用することにより、プログラム実行時
に命令の実行回数が動的に決定される場合にも、容易に
プログラムを作成することができる。
【0067】<実施の形態2>実施の形態1の構成で
は、ステップリピート対象命令列が多くの命令を含んで
いた場合、例えば30の命令を含んでいた場合に、命令
列の先頭命令を実行した時点でSRPT_Cレジスタ1
88の値が“0”になったならば、残り29命令はNO
P化して実行されることになる。
は、ステップリピート対象命令列が多くの命令を含んで
いた場合、例えば30の命令を含んでいた場合に、命令
列の先頭命令を実行した時点でSRPT_Cレジスタ1
88の値が“0”になったならば、残り29命令はNO
P化して実行されることになる。
【0068】実施の形態2のデータ処理装置は、この様
なケースを想定して、ステップリピート処理中にSRP
T_Cレジスタ188の値が“0”になったならば、S
RPT_Eレジスタ186の値で示される命令の次の命
令(すなわち、ステップリピート命令処理後に実行すべ
き命令)に分岐する制御を行う装置である。
なケースを想定して、ステップリピート処理中にSRP
T_Cレジスタ188の値が“0”になったならば、S
RPT_Eレジスタ186の値で示される命令の次の命
令(すなわち、ステップリピート命令処理後に実行すべ
き命令)に分岐する制御を行う装置である。
【0069】図13は実施の形態2のデータ処理装置に
おける制御部112の構成を示す説明図である。同図に
示すように、タイミング発生器911はリピート終了フ
ラグ903に基づいてSRPクリア信号909及び分岐
用制御信号BSを生成する。なお、最終命令フラグ90
6が生成するラッチ904及びANDゲート905が省
略された点を除いて、他の構成は図10で示した実施の
形態1の制御部と同様である。
おける制御部112の構成を示す説明図である。同図に
示すように、タイミング発生器911はリピート終了フ
ラグ903に基づいてSRPクリア信号909及び分岐
用制御信号BSを生成する。なお、最終命令フラグ90
6が生成するラッチ904及びANDゲート905が省
略された点を除いて、他の構成は図10で示した実施の
形態1の制御部と同様である。
【0070】分岐処理の実行自体は通常の分岐処理と同
様に行われ、必要に応じて、IFステージあるいはDス
テージ以降のパイプラインステージをフラッシュする。
すなわち、分岐の実行以前にフェッチされ、未だ実行さ
れていない命令を消し去る。分岐先の命令アドレスは通
常の分岐命令と同様に第1演算部116で計算され、J
Aバス323を介してIA181に設定される。分岐命
令の場合は、S3バス303を介して与えられたEPC
194の値と、図示しない経路より与えられた所望の分
岐変位の加算により分岐先アドレスが求められる。ステ
ップリピートの終了による分岐では、S3バス303を
介して与えられたSRPT_Eレジスタ186と、別途
与えられた即値“1”の加算により分岐先アドレスを求
める。これら、一連の動作は、タイミング発生器911
の生成する分岐用制御信号BS信号に基づいて、命令デ
コード部119(図2参照)が制御する。
様に行われ、必要に応じて、IFステージあるいはDス
テージ以降のパイプラインステージをフラッシュする。
すなわち、分岐の実行以前にフェッチされ、未だ実行さ
れていない命令を消し去る。分岐先の命令アドレスは通
常の分岐命令と同様に第1演算部116で計算され、J
Aバス323を介してIA181に設定される。分岐命
令の場合は、S3バス303を介して与えられたEPC
194の値と、図示しない経路より与えられた所望の分
岐変位の加算により分岐先アドレスが求められる。ステ
ップリピートの終了による分岐では、S3バス303を
介して与えられたSRPT_Eレジスタ186と、別途
与えられた即値“1”の加算により分岐先アドレスを求
める。これら、一連の動作は、タイミング発生器911
の生成する分岐用制御信号BS信号に基づいて、命令デ
コード部119(図2参照)が制御する。
【0071】図14を用いてタイミング発生器911の
動作のタイミングを説明する。サイクル1でSRPT_
Cレジスタ188に指定された実行命令回数目の命令で
ある最後の命令を実行すると、サイクル2でリピート終
了フラグ903がアサートされ、アサートされたリピー
ト終了フラグ903をトリガとしてタイミング発生器9
11は種々の分岐用制御信号BSを生成する。この分岐
用制御信号BSによって下記の分岐処理が行われる。
動作のタイミングを説明する。サイクル1でSRPT_
Cレジスタ188に指定された実行命令回数目の命令で
ある最後の命令を実行すると、サイクル2でリピート終
了フラグ903がアサートされ、アサートされたリピー
ト終了フラグ903をトリガとしてタイミング発生器9
11は種々の分岐用制御信号BSを生成する。この分岐
用制御信号BSによって下記の分岐処理が行われる。
【0072】サイクル2でSRPT_Eレジスタ186
の値はS3バス303に読み出される。サイクル3で、
S3バス303上の値、即ちSRPT_Eレジスタ18
6の値は第1演算部116に読み込まれ、同じタイミン
グで読み込まれた即値“1”と足し合わせられる。この
様に生成された分岐先命令アドレスは直ちにIA181
に設定される。また、タイミング発生器911は、サイ
クル3の期間中、SRPクリア信号909をアサートす
る。
の値はS3バス303に読み出される。サイクル3で、
S3バス303上の値、即ちSRPT_Eレジスタ18
6の値は第1演算部116に読み込まれ、同じタイミン
グで読み込まれた即値“1”と足し合わせられる。この
様に生成された分岐先命令アドレスは直ちにIA181
に設定される。また、タイミング発生器911は、サイ
クル3の期間中、SRPクリア信号909をアサートす
る。
【0073】図15は、図11においてレジスタR13
に“127”が設定されていた場合の動作を示したもの
である。に示す命令N+7の実行(E)によってSR
PT_Cレジスタ188の値が“0”なる(このサイク
ルが図14のサイクル1となる)と、その次の次のサイ
クル、即ちNOP化されたに示す命令N+9の実行
(E)サイクルに合せて命令N+13への分岐が実行さ
れる。この時、の命令N+8との命令N+9はNO
P化されて実行されるが、既にフェッチされていたの
命令N+10との命令N+11はパイプラインのフラ
ッシュ処理によって処理を取りやめる。分岐先ので示
す命令N+13は、分岐実行の次のサイクルから命令フ
ェッチが行われる。
に“127”が設定されていた場合の動作を示したもの
である。に示す命令N+7の実行(E)によってSR
PT_Cレジスタ188の値が“0”なる(このサイク
ルが図14のサイクル1となる)と、その次の次のサイ
クル、即ちNOP化されたに示す命令N+9の実行
(E)サイクルに合せて命令N+13への分岐が実行さ
れる。この時、の命令N+8との命令N+9はNO
P化されて実行されるが、既にフェッチされていたの
命令N+10との命令N+11はパイプラインのフラ
ッシュ処理によって処理を取りやめる。分岐先ので示
す命令N+13は、分岐実行の次のサイクルから命令フ
ェッチが行われる。
【0074】実施の形態1の図12と比較すると、1サ
イクル早く、ステップリピート命令処理後に実行すべき
命令N+13のフェッチを開始することができる。
イクル早く、ステップリピート命令処理後に実行すべき
命令N+13のフェッチを開始することができる。
【0075】このように、実施の形態2のデータ処理装
置のタイミング発生器911は、リピート終了フラグ9
03の“1”変化時をトリガとして、ステップリピート
命令処理後に実行すべき命令の取り込みを指示する分岐
用制御信号BSを発生するとともに、所定のタイミング
でSRPクリア信号909をアサート(実行命令回数の
命令実行の達成を指示)させている。
置のタイミング発生器911は、リピート終了フラグ9
03の“1”変化時をトリガとして、ステップリピート
命令処理後に実行すべき命令の取り込みを指示する分岐
用制御信号BSを発生するとともに、所定のタイミング
でSRPクリア信号909をアサート(実行命令回数の
命令実行の達成を指示)させている。
【0076】したがって、ステップリピート命令対象の
命令列の命令単位の総実行回数が実行命令回数に達した
後は、速やかに、ステップリピート命令処理後に実行す
べき命令を実行することができる。
命令列の命令単位の総実行回数が実行命令回数に達した
後は、速やかに、ステップリピート命令処理後に実行す
べき命令を実行することができる。
【0077】このように、実施の形態2のデータ処理装
置は、タイミング発生器911を追加する程度の極めて
わずかな制御部を追加するだけで、実施の形態1で示し
たデータ処理装置のステップリピート命令処理性能を更
に高めることができる。
置は、タイミング発生器911を追加する程度の極めて
わずかな制御部を追加するだけで、実施の形態1で示し
たデータ処理装置のステップリピート命令処理性能を更
に高めることができる。
【0078】<実施の形態3>なお、図3等で示したブ
ロックリピート用のリソース(SRPビット43、SR
PT_Sレジスタ184、SRPT_Eレジスタ18
6、SRPT_Cレジスタ18及びその周辺の比較器
等)に加えて、公報1で示されたようなブロック内で指
定された命令列を所定回数繰り返す従来のブロックリピ
ート用のリソースを新たに別途追加してブロックリピー
ト機能を追加することも可能である。
ロックリピート用のリソース(SRPビット43、SR
PT_Sレジスタ184、SRPT_Eレジスタ18
6、SRPT_Cレジスタ18及びその周辺の比較器
等)に加えて、公報1で示されたようなブロック内で指
定された命令列を所定回数繰り返す従来のブロックリピ
ート用のリソースを新たに別途追加してブロックリピー
ト機能を追加することも可能である。
【0079】例えば、図6のPSWにブロックリピート
の実行の有無を示すビットを追加して、ブロックリピー
ト処理対象命令列の先頭命令のアドレスを格納するレジ
スタ、ブロックリピート処理対象命令列の最終命令のア
ドレスを格納するレジスタ及びブロックリピート対象命
令列の繰り返し実行回数を格納するレジスタを、SRP
T_Sレジスタ184、SRPT_Eレジスタ186及
びSRPT_Cレジスタ188と同様な接続関係となる
ようにPC部118にそれぞれ設け、これら3つのレジ
スタに対して、図3のラッチ189、デクリメンタ19
0、比較器187及びラッチ185に対応する周辺構成
をPC部118内に追加すれば良い。
の実行の有無を示すビットを追加して、ブロックリピー
ト処理対象命令列の先頭命令のアドレスを格納するレジ
スタ、ブロックリピート処理対象命令列の最終命令のア
ドレスを格納するレジスタ及びブロックリピート対象命
令列の繰り返し実行回数を格納するレジスタを、SRP
T_Sレジスタ184、SRPT_Eレジスタ186及
びSRPT_Cレジスタ188と同様な接続関係となる
ようにPC部118にそれぞれ設け、これら3つのレジ
スタに対して、図3のラッチ189、デクリメンタ19
0、比較器187及びラッチ185に対応する周辺構成
をPC部118内に追加すれば良い。
【0080】このようにステップリピート用リソースに
加え、ブロックリピート用リソースを追加したのが実施
の形態3のデータ処理装置である。なお、ステップリピ
ート機能は実施の形態1、実施の形態2のいずれの構成
で実現しても良い。
加え、ブロックリピート用リソースを追加したのが実施
の形態3のデータ処理装置である。なお、ステップリピ
ート機能は実施の形態1、実施の形態2のいずれの構成
で実現しても良い。
【0081】したがって、実施の形態3のデータ処理装
置は、予め処理回数が決まっているリピート処理にはブ
ロックリピート用のリソースを用いてブロックリピート
処理を行わせ、処理回数が実行途中で動的に決定される
場合には、図3等で示したステップリピート用のリソー
スを用いてステップリピート処理を実行させるという選
択も可能となり、より一層プログラム作成が容易とな
る。また、ブロックリピートで指定した命令列の中で更
にステップリピート処理を行うなどという階層利用も可
能となる。
置は、予め処理回数が決まっているリピート処理にはブ
ロックリピート用のリソースを用いてブロックリピート
処理を行わせ、処理回数が実行途中で動的に決定される
場合には、図3等で示したステップリピート用のリソー
スを用いてステップリピート処理を実行させるという選
択も可能となり、より一層プログラム作成が容易とな
る。また、ブロックリピートで指定した命令列の中で更
にステップリピート処理を行うなどという階層利用も可
能となる。
【0082】なお、新たにリソースを追加することな
く、図3等で示したステップリピート用のリソースをそ
のまま上記ブロックリピート用のリソースとしても用
い、必要に応じてステップリピート用あるいはブロック
リピート用を選択的に行うこともできる。ただし、この
場合、上述した階層利用は不可能となる。また、ステッ
プリピートとブロックリピートのいずれを実行するか識
別するための手段が必要なことは言うまでもないことで
あるが、これは容易に実現できる。例えば、図6に示し
たPSWにブロックリピートの実行中であることを示す
ビットを追加し、PSWの状態によっていずれかを選択
すればよい。
く、図3等で示したステップリピート用のリソースをそ
のまま上記ブロックリピート用のリソースとしても用
い、必要に応じてステップリピート用あるいはブロック
リピート用を選択的に行うこともできる。ただし、この
場合、上述した階層利用は不可能となる。また、ステッ
プリピートとブロックリピートのいずれを実行するか識
別するための手段が必要なことは言うまでもないことで
あるが、これは容易に実現できる。例えば、図6に示し
たPSWにブロックリピートの実行中であることを示す
ビットを追加し、PSWの状態によっていずれかを選択
すればよい。
【0083】<実施の形態4>最近のデータ処理装置で
は、フラグの値に応じてフェッチした命令をNOP化す
る機能、いわゆる条件実行機能を有しているものがあ
る。例えば、国際公開番号WO98/33115号公報
(以下、「公報2」と略す。)の図27等に基本的な構
成が開示されている。この様な条件実行を実現するため
には、PSWに保持したフラグ情報及び実行条件命令に
規定された実行条件に基いて、上記実行条件命令に対応
づけられた所定の命令を実行すべきかNOP化すべきか
を判定するための実行条件判定部と、与えられた上記所
定の命令の命令コードと上記実行条件判定部の判定結果
に基いて最終的な命令実行制御信号を生成する実行制御
信号生成部があれば良い。
は、フラグの値に応じてフェッチした命令をNOP化す
る機能、いわゆる条件実行機能を有しているものがあ
る。例えば、国際公開番号WO98/33115号公報
(以下、「公報2」と略す。)の図27等に基本的な構
成が開示されている。この様な条件実行を実現するため
には、PSWに保持したフラグ情報及び実行条件命令に
規定された実行条件に基いて、上記実行条件命令に対応
づけられた所定の命令を実行すべきかNOP化すべきか
を判定するための実行条件判定部と、与えられた上記所
定の命令の命令コードと上記実行条件判定部の判定結果
に基いて最終的な命令実行制御信号を生成する実行制御
信号生成部があれば良い。
【0084】また、上記公報2では、一方のサブ命令が
他方のサブ命令の実行条件を指定する、という方法で条
件実行を実現している。さらに、他の方法として、例え
ば、「"ACORN RISC MACHINE FAMILY DATA MANUAL, page
2-29" VLSI Technology inc」に開示された命令のよう
に、所定の命令を規定する命令ワード内の特定フィール
ドに実行条件を併せて指定する、という方法で条件実行
を実現するものもある。上記文献の条件実行を実現する
ためには、PSWに保持したフラグ情報及び命令ワード
内に記述された実行条件に基いて、上記所定の命令を実
行すべきかNOP化すべきかを判定するための実行条件
判定部と、与えられた上記所定の命令の命令コードと上
記実行条件判定部の判定結果に基いて最終的な命令実行
制御信号を生成する実行制御信号生成部があれば良い。
他方のサブ命令の実行条件を指定する、という方法で条
件実行を実現している。さらに、他の方法として、例え
ば、「"ACORN RISC MACHINE FAMILY DATA MANUAL, page
2-29" VLSI Technology inc」に開示された命令のよう
に、所定の命令を規定する命令ワード内の特定フィール
ドに実行条件を併せて指定する、という方法で条件実行
を実現するものもある。上記文献の条件実行を実現する
ためには、PSWに保持したフラグ情報及び命令ワード
内に記述された実行条件に基いて、上記所定の命令を実
行すべきかNOP化すべきかを判定するための実行条件
判定部と、与えられた上記所定の命令の命令コードと上
記実行条件判定部の判定結果に基いて最終的な命令実行
制御信号を生成する実行制御信号生成部があれば良い。
【0085】ステップリピート機能と上述した条件実行
機能の両方を持ったデータ処理装置を想定する場合、命
令をNOP化するための実行制御信号生成部は、両方の
機能で共有させることができる。これは、リピート終了
フラグ903と実行条件判定結果の簡単な論理演算結果
を実行制御信号生成部に与えるだけで実現できる。
機能の両方を持ったデータ処理装置を想定する場合、命
令をNOP化するための実行制御信号生成部は、両方の
機能で共有させることができる。これは、リピート終了
フラグ903と実行条件判定結果の簡単な論理演算結果
を実行制御信号生成部に与えるだけで実現できる。
【0086】図16は、この発明の実施の形態4のデー
タ処理装置における制御部の構成を示す説明図である。
公報2の図27では実行条件判定部と実行制御信号生成
部が2個ずつあり、4本の実行抑止信号がこれらを接続
する場合について述べている。図16では簡単化のため
に、実行制御信号生成部910と実行条件判定部913
とを1個ずつで構成している。
タ処理装置における制御部の構成を示す説明図である。
公報2の図27では実行条件判定部と実行制御信号生成
部が2個ずつあり、4本の実行抑止信号がこれらを接続
する場合について述べている。図16では簡単化のため
に、実行制御信号生成部910と実行条件判定部913
とを1個ずつで構成している。
【0087】実行条件判定部913は、命令コードの一
部により指定される実行条件に基づいてPSW部171
の保持するフラグ値を判定し、実行条件成立の有/無に
基づき、実行(“0”)/抑止(“1”)を指示するの
実行条件抑止信号915を出力する。ORゲート914
は、リピート終了フラグ903及び実行条件抑止信号9
15を論理和演算して、その演算結果を最終実行条件抑
止信号916として出力する。したがって、リピート終
了フラグ903あるいは実行条件抑止信号915が
“1”であれば、最終実行条件抑止信号916が“1”
となり、抑止を指示する。なお、リピート終了フラグ9
03の生成用の構成は、図10で示した実施の形態1の
構成でも、図13で示した実施の形態2の構成でも良
い。
部により指定される実行条件に基づいてPSW部171
の保持するフラグ値を判定し、実行条件成立の有/無に
基づき、実行(“0”)/抑止(“1”)を指示するの
実行条件抑止信号915を出力する。ORゲート914
は、リピート終了フラグ903及び実行条件抑止信号9
15を論理和演算して、その演算結果を最終実行条件抑
止信号916として出力する。したがって、リピート終
了フラグ903あるいは実行条件抑止信号915が
“1”であれば、最終実行条件抑止信号916が“1”
となり、抑止を指示する。なお、リピート終了フラグ9
03の生成用の構成は、図10で示した実施の形態1の
構成でも、図13で示した実施の形態2の構成でも良
い。
【0088】実行制御信号生成部910は、最終実行条
件抑止信号916が“1”であれば、命令実行制御信号
を生成しないように動作する。
件抑止信号916が“1”であれば、命令実行制御信号
を生成しないように動作する。
【0089】このように、ステップリピート機能と条件
実行機能は、ステップリピート機能用のハードウェア構
成から、ORゲート914を追加するだけで、実行制御
信号生成部910を共有することができる。
実行機能は、ステップリピート機能用のハードウェア構
成から、ORゲート914を追加するだけで、実行制御
信号生成部910を共有することができる。
【0090】条件実行機能は分岐によって生じるペナル
ティを削減できることから、情報処理装置の性能を向上
させる有効な手段である。よって実施の形態4は、ステ
ップリピート機能と条件実行機能を併せ持つことによ
り、極めて高い処理性能を持ったデータ処理装置を実現
することができる。また、両機能は命令のNOP化装置
を共有することができるため、これらを併せ持つことは
ハードウェアコストの観点からも極めて有効である。
ティを削減できることから、情報処理装置の性能を向上
させる有効な手段である。よって実施の形態4は、ステ
ップリピート機能と条件実行機能を併せ持つことによ
り、極めて高い処理性能を持ったデータ処理装置を実現
することができる。また、両機能は命令のNOP化装置
を共有することができるため、これらを併せ持つことは
ハードウェアコストの観点からも極めて有効である。
【0091】
【発明の効果】この発明における請求項1記載のデータ
処理装置の命令実行制御手段は、ステップリピート命令
実行時に、実行命令回数判定結果が未達成状態を指示す
るとき命令取り込み手段より受ける命令を順次実行さ
せ、実行命令回数判定結果が達成状態を指示するとき命
令取り込み手段より受ける命令を順次無効にする。
処理装置の命令実行制御手段は、ステップリピート命令
実行時に、実行命令回数判定結果が未達成状態を指示す
るとき命令取り込み手段より受ける命令を順次実行さ
せ、実行命令回数判定結果が達成状態を指示するとき命
令取り込み手段より受ける命令を順次無効にする。
【0092】したがって、第1〜第Nの命令の総実行回
数が実行命令回数に達した後は、命令取り込み手段に既
に取り込まれた第1〜第Nの命令を確実に無効にするこ
とができるため、命令列(第1〜第Nの命令)に含まれ
る命令を繰り返しながら、指定された命令単位の回数
(実行命令回数)で正確に実行することができる。
数が実行命令回数に達した後は、命令取り込み手段に既
に取り込まれた第1〜第Nの命令を確実に無効にするこ
とができるため、命令列(第1〜第Nの命令)に含まれ
る命令を繰り返しながら、指定された命令単位の回数
(実行命令回数)で正確に実行することができる。
【0093】請求項2記載のデータ処理装置の実行命令
回数判定手段は、(K+1)回目の第Lの命令(実行命
令回数M個目に実行される命令)の実行中に実行命令回
数判定結果の指示内容を達成状態にし、命令実行制御手
段は、達成状態を指示する実行命令判定結果に応答し
て、(K+1)回目の第(L+1)〜第Nの命令の実行
を順次無効にしている。
回数判定手段は、(K+1)回目の第Lの命令(実行命
令回数M個目に実行される命令)の実行中に実行命令回
数判定結果の指示内容を達成状態にし、命令実行制御手
段は、達成状態を指示する実行命令判定結果に応答し
て、(K+1)回目の第(L+1)〜第Nの命令の実行
を順次無効にしている。
【0094】したがって、第1〜第Nの命令の総実行回
数が実行命令回数に達した後は、命令取り込み手段に既
に取り込まれた第(L+1)〜第Nの命令を確実に無効
にすることができる。
数が実行命令回数に達した後は、命令取り込み手段に既
に取り込まれた第(L+1)〜第Nの命令を確実に無効
にすることができる。
【0095】請求項3記載のデータ処理装置のタイミン
グ制御手段は、実行回数判定結果の指示内容の未達成状
態から達成状態への変化時をトリガとして、ステップリ
ピート命令処理後に実行すべき命令の取り込みを指示す
る制御信号を発生するとともに、ステップリピート命令
実行情報を非実行状態に設定する。
グ制御手段は、実行回数判定結果の指示内容の未達成状
態から達成状態への変化時をトリガとして、ステップリ
ピート命令処理後に実行すべき命令の取り込みを指示す
る制御信号を発生するとともに、ステップリピート命令
実行情報を非実行状態に設定する。
【0096】したがって、第1〜第Nの命令の総実行回
数が実行命令回数に達した後は、速やかに、ステップリ
ピート命令処理後に実行すべき命令を実行することがで
きる。
数が実行命令回数に達した後は、速やかに、ステップリ
ピート命令処理後に実行すべき命令を実行することがで
きる。
【0097】請求項4記載のデータ処理装置はブロック
リピート機能をさらに有するため、プログラム設計者は
必要に応じてブロックリピート処理とステップリピート
処理を使い分けることができる。
リピート機能をさらに有するため、プログラム設計者は
必要に応じてブロックリピート処理とステップリピート
処理を使い分けることができる。
【0098】請求項5記載のデータ処理装置は、ステッ
プリピート機能と条件実行機能との間で命令取り込み手
段と命令実行制御手段の共有を図ることにより、ハード
ウェアコストを必要最小限に抑えながら、ステップリピ
ート機能と条件実行機能とを実現させることができる。
プリピート機能と条件実行機能との間で命令取り込み手
段と命令実行制御手段の共有を図ることにより、ハード
ウェアコストを必要最小限に抑えながら、ステップリピ
ート機能と条件実行機能とを実現させることができる。
【0099】請求項6記載のデータ処理装置において、
プログラム中にステップリピート命令に連続して第1〜
第Nの命令が順に記載され、ステップリピート命令は、
第Nの命令のアドレス情報をさらに有している。
プログラム中にステップリピート命令に連続して第1〜
第Nの命令が順に記載され、ステップリピート命令は、
第Nの命令のアドレス情報をさらに有している。
【0100】したがって、ステップリピート命令の実行
時に、ステップリピート命令の次の命令のアドレスを第
1の命令のアドレスとして認識し、第Nの命令のアドレ
ス情報から第Nの命令のアドレスを認識することによ
り、ステップリピート命令実行中の第Nの命令後に第1
の命令を行うアドレス制御を行うことができる。
時に、ステップリピート命令の次の命令のアドレスを第
1の命令のアドレスとして認識し、第Nの命令のアドレ
ス情報から第Nの命令のアドレスを認識することによ
り、ステップリピート命令実行中の第Nの命令後に第1
の命令を行うアドレス制御を行うことができる。
【図1】 この発明の実施の形態のデータ処理装置の構
成を示すブロック図である。
成を示すブロック図である。
【図2】 この発明の実施の形態のデータ処理装置の第
1演算部の詳細を示すブロック図である。
1演算部の詳細を示すブロック図である。
【図3】 この発明の実施の形態のデータ処理装置のP
C部の詳細を示すブロック図である。
C部の詳細を示すブロック図である。
【図4】 この発明の実施の形態のデータ処理装置の第
2演算部の詳細ブロック図である。
2演算部の詳細ブロック図である。
【図5】 この発明の実施の形態のデータ処理装置のパ
イプライン処理を示す模式図である。
イプライン処理を示す模式図である。
【図6】 PSW部の構成を示す説明図である。
【図7】 ステップリピート命令のニモニックを示す説
明図である。
明図である。
【図8】 ステップリピート命令のフォーマットを示す
説明図である。
説明図である。
【図9】 ステップリピート命令の他のニモニックを示
す説明図である。
す説明図である。
【図10】 実施の形態1の制御部の構成を示す説明図
である。
である。
【図11】 ステップリピート機能を用いたプログラム
例を示す説明図である。
例を示す説明図である。
【図12】 実施の形態1の制御部によるパイプライン
制御内容を示す説明図である。
制御内容を示す説明図である。
【図13】 実施の形態2の制御部の構成を示す説明図
である。
である。
【図14】 実施の形態2の制御部の動作説明用のタイ
ミング図である。
ミング図である。
【図15】 実施の形態1の制御部によるパイプライン
制御内容を示す説明図である。
制御内容を示す説明図である。
【図16】 実施の形態2の制御部の構成を示す説明図
である。
である。
43 SRPビット、184 SRPT_Sレジスタ、
186 SRPT_Eレジスタ、171 PSW部、1
87 比較器(CMP)、188 SRPT_Cレジス
タ、900 ゼロ判定器、910 実行制御信号生成
部、911 タイミング発生器、913 実行条件判定
部913。
186 SRPT_Eレジスタ、171 PSW部、1
87 比較器(CMP)、188 SRPT_Cレジス
タ、900 ゼロ判定器、910 実行制御信号生成
部、911 タイミング発生器、913 実行条件判定
部913。
Claims (6)
- 【請求項1】 プログラムにしたがって動作するデータ
処理装置であって、 前記プログラムに記載中の、第1〜第N(N≧2)命令
及び実行命令回数M(M≧1)が指定可能なステップリ
ピート命令に応答して、前記第1〜第Nの命令をK(K
=M/Nの商)回繰り返した後、第1〜第L(L=M/
Nの余り)の命令を実行するステップリピート機能を有
し、 前記ステップリピート機能は、 前記ステップリピート命令実行時に、前記第1〜第Nの
命令の各命令の実行毎に命令実行カウント数をカウント
し、該命令実行カウント数が前記実行命令回数に達した
達成状態か/達成していない未達成状態かを示す実行命
令回数判定結果を出力する実行命令回数判定手段と、 前記ステップリピート命令実行時に、第1,第2,…第
N,第1,第2の順に、前記第1〜第Nの命令を繰り返
し取り込む命令取り込み手段と、 前記命令取り込み手段に取り込まれた命令を順次受け、
前記ステップリピート命令実行時に、前記実行命令回数
判定結果が前記未達成状態を指示するとき前記命令取り
込み手段より受ける命令を順次実行させ、前記実行命令
回数判定結果が前記達成状態を指示するとき前記命令取
り込み手段より受ける命令を無効にする命令実行制御手
段とを備える、データ処理装置。 - 【請求項2】 前記ステップリピート機能は、前記ステ
ップリピート命令の実行中である実行状態か/実行中で
ない非実行状態かを示すステップリピート命令実行情報
を格納する情報格納手段をさらに備え、前記ステップリ
ピート命令実行情報は前記ステップリピート命令実行開
始時に前記実行状態に設定され、 前記命令取り込み手段は、L(L=M/Nの余り)が
“0”でないとき、前記第1〜第Nの命令を(K+1)
回繰り返し取り込み、(K+1)回目に取り込んだ第N
の命令の前記命令実行制御手段への付与時に前記ステッ
プリピート命令実行情報を前記非実行状態に設定し、 前記実行命令回数判定手段は、(K+1)回目の前記第
Lの命令の実行中に前記実行命令回数判定結果の指示内
容を前記達成状態にし、 前記命令実行制御手段は、前記達成状態を指示する実行
命令判定結果に応答して、(K+1)回目の第(L+
1)〜第Nの命令を順次無効にする、請求項1記載のデ
ータ処理装置。 - 【請求項3】 前記ステップリピート機能は、 前記ステップリピート命令の実行中である実行状態か/
実行中でない非実行状態かを示すステップリピート命令
実行情報を格納する情報格納手段をさらに備え、前記ス
テップリピート命令実行情報は前記ステップリピート命
令実行開始時に前記実行状態に設定され、 前記実行回数判定結果を受け、前記実行回数判定結果の
指示内容の前記未達成状態から前記達成状態への変化時
をトリガとして、前記ステップリピート命令処理後に実
行すべき命令の取り込みを指示する制御信号を発生する
とともに、前記ステップリピート命令実行情報を前記非
実行状態に設定するタイミング制御手段をさらに備え
る、請求項1記載のデータ処理装置。 - 【請求項4】 複数の命令からなる命令列及び繰り返し
実行回数が指定可能なブロックリピート命令に応答し
て、前記命令列を前記繰り返し実行回数繰り返して実行
可能なブロックリピート機能を前記ステップリピート機
能と独立してさらに有する、請求項1ないし請求項3の
うち、いずれか1項に記載のデータ処理装置。 - 【請求項5】 所定の命令と該所定の命令の実行条件を
規定した実行条件指定命令とに応答して、条件判定を行
って前記所定の命令の実行/抑止を行う条件実行機能を
さらに有し、 前記条件実行機能は、 条件用情報を格納する条件用情報格納手段と、 前記実行条件指定命令に応答して、前記条件用情報が前
記実行条件を満足するか否かに基づき、前記所定の命令
を実行するか抑止するかを制御する実行抑止信号を出力
する実行条件判定手段とを備えるとともに、 前記命令取り込み手段及び前記命令実行制御手段を前記
ステップリピート機能と共有し、 前記命令取り込み手段は、前記実行条件指定命令の前記
実行条件判定手段の判定処理に並行して前記所定の命令
を取り込み、 前記命令実行制御手段は、前記実行抑止信号が抑止を指
示するときに、前記命令取り込み手段より付与される前
記所定の命令を無効にする、請求項1ないし請求項4の
うち、いずれか1項に記載のデータ処理装置。 - 【請求項6】 前記プログラム中に前記ステップリピー
ト命令に連続して前記第1〜第Nの命令が順に記載さ
れ、前記ステップリピート命令は、前記第Nの命令のア
ドレス情報をさらに有する、請求項1ないし請求項5の
うち、いずれか1項に記載のデータ処理装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02523899A JP3842474B2 (ja) | 1999-02-02 | 1999-02-02 | データ処理装置 |
| US09/347,004 US6345357B1 (en) | 1999-02-02 | 1999-07-02 | Versatile branch-less sequence control of instruction stream containing step repeat loop block using executed instructions number counter |
| US10/028,697 US6560697B2 (en) | 1999-02-02 | 2001-12-28 | Data processor having repeat instruction processing using executed instruction number counter |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02523899A JP3842474B2 (ja) | 1999-02-02 | 1999-02-02 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000222206A true JP2000222206A (ja) | 2000-08-11 |
| JP3842474B2 JP3842474B2 (ja) | 2006-11-08 |
Family
ID=12160418
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02523899A Expired - Fee Related JP3842474B2 (ja) | 1999-02-02 | 1999-02-02 | データ処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (2) | US6345357B1 (ja) |
| JP (1) | JP3842474B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011086157A (ja) * | 2009-10-16 | 2011-04-28 | Mitsubishi Electric Corp | データ演算装置の制御回路及びデータ演算装置 |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6763453B2 (en) * | 2000-12-28 | 2004-07-13 | Intel Corporation | Security on hardware loops |
| JP2002229779A (ja) * | 2001-02-02 | 2002-08-16 | Mitsubishi Electric Corp | 情報処理装置 |
| US7039793B2 (en) * | 2001-10-23 | 2006-05-02 | Ip-First, Llc | Microprocessor apparatus and method for accelerating execution of repeat string instructions |
| GB2382672B (en) * | 2001-10-31 | 2005-10-05 | Alphamosaic Ltd | Repeated instruction execution |
| US6986028B2 (en) * | 2002-04-22 | 2006-01-10 | Texas Instruments Incorporated | Repeat block with zero cycle overhead nesting |
| US6907598B2 (en) * | 2002-06-05 | 2005-06-14 | Microsoft Corporation | Method and system for compressing program code and interpreting compressed program code |
| US7062684B2 (en) * | 2002-12-19 | 2006-06-13 | International Business Machines Corporation | Enabling tracing of a repeat instruction |
| JP2005149297A (ja) * | 2003-11-18 | 2005-06-09 | Renesas Technology Corp | プロセッサおよびそのアセンブラ |
| US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
| WO2008061154A2 (en) | 2006-11-14 | 2008-05-22 | Soft Machines, Inc. | Apparatus and method for processing instructions in a multi-threaded architecture using context switching |
| CN103250131B (zh) | 2010-09-17 | 2015-12-16 | 索夫特机械公司 | 包括用于早期远分支预测的影子缓存的单周期多分支预测 |
| CN103562866B (zh) | 2011-03-25 | 2018-03-30 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
| KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
| WO2012135031A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
| EP2710481B1 (en) | 2011-05-20 | 2021-02-17 | Intel Corporation | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
| WO2012162189A1 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | An interconnect structure to support the execution of instruction sequences by a plurality of engines |
| WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
| IN2014CN03678A (ja) | 2011-11-22 | 2015-09-25 | Soft Machines Inc | |
| US9280344B2 (en) * | 2012-09-27 | 2016-03-08 | Texas Instruments Incorporated | Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination |
| WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
| US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
| EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
| US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
| US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
| US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
| US9632825B2 (en) | 2013-03-15 | 2017-04-25 | Intel Corporation | Method and apparatus for efficient scheduling for asymmetrical execution units |
| WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
| US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
| WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
| US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
| WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
| US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0374419A3 (en) * | 1988-12-21 | 1991-04-10 | International Business Machines Corporation | Method and apparatus for efficient loop constructs in hardware and microcode |
| US5303355A (en) * | 1991-03-27 | 1994-04-12 | Motorola, Inc. | Pipelined data processor which conditionally executes a predetermined looping instruction in hardware |
| JPH07200292A (ja) * | 1993-12-28 | 1995-08-04 | Mitsubishi Electric Corp | パイプライン式プロセッサ |
| US5727194A (en) * | 1995-06-07 | 1998-03-10 | Hitachi America, Ltd. | Repeat-bit based, compact system and method for implementing zero-overhead loops |
| JP3658072B2 (ja) | 1996-02-07 | 2005-06-08 | 株式会社ルネサステクノロジ | データ処理装置およびデータ処理方法 |
| US5752015A (en) * | 1996-03-29 | 1998-05-12 | Integrated Device Technology, Inc. | Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions |
| US6484253B1 (en) | 1997-01-24 | 2002-11-19 | Mitsubishi Denki Kabushiki Kaisha | Data processor |
| WO1999009472A1 (en) * | 1997-08-18 | 1999-02-25 | Koninklijke Philips Electronics N.V. | Data processing device with relative jump instruction |
-
1999
- 1999-02-02 JP JP02523899A patent/JP3842474B2/ja not_active Expired - Fee Related
- 1999-07-02 US US09/347,004 patent/US6345357B1/en not_active Expired - Fee Related
-
2001
- 2001-12-28 US US10/028,697 patent/US6560697B2/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011086157A (ja) * | 2009-10-16 | 2011-04-28 | Mitsubishi Electric Corp | データ演算装置の制御回路及びデータ演算装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3842474B2 (ja) | 2006-11-08 |
| US20020056038A1 (en) | 2002-05-09 |
| US6345357B1 (en) | 2002-02-05 |
| US6560697B2 (en) | 2003-05-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3842474B2 (ja) | データ処理装置 | |
| EP0789297B1 (en) | Data processor loading data and performing multiply-add operation in parallel | |
| US5269007A (en) | RISC system capable of simultaneously executing data interlocked shift and arithmetic/logic instructions in one clock cycle by bypassing register | |
| EP0782071A2 (en) | Data processor | |
| EP0994413A2 (en) | Data processing system with conditional execution of extended compound instructions | |
| JPH10116268A (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
| JP3543181B2 (ja) | データ処理装置 | |
| US5313644A (en) | System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word | |
| JPH0766324B2 (ja) | データ処理装置 | |
| JPH0496825A (ja) | データ・プロセッサ | |
| EP1974254B1 (en) | Early conditional selection of an operand | |
| US5815420A (en) | Microprocessor arithmetic logic unit using multiple number representations | |
| JP3789583B2 (ja) | データ処理装置 | |
| JPH01214932A (ja) | データ処理装置 | |
| JP3578883B2 (ja) | データ処理装置 | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JPH07120284B2 (ja) | データ処理装置 | |
| JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
| KR100974401B1 (ko) | 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치 | |
| JP3345787B2 (ja) | データ処理装置 | |
| JP4502532B2 (ja) | データ処理装置 | |
| JP2002229779A (ja) | 情報処理装置 | |
| JP2556182B2 (ja) | デ−タ処理装置 | |
| US6012139A (en) | Microprocessor including floating point unit with 16-bit fixed length instruction set | |
| JP2504312B2 (ja) | プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060120 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060801 |
|
| 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: 20060808 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060810 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |