JP5678687B2 - 処理装置 - Google Patents
処理装置 Download PDFInfo
- Publication number
- JP5678687B2 JP5678687B2 JP2011014162A JP2011014162A JP5678687B2 JP 5678687 B2 JP5678687 B2 JP 5678687B2 JP 2011014162 A JP2011014162 A JP 2011014162A JP 2011014162 A JP2011014162 A JP 2011014162A JP 5678687 B2 JP5678687 B2 JP 5678687B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- upper bit
- bit part
- program counter
- instruction
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Description
図1は、第1の実施形態による処理システムの構成例を示すブロック図である。処理システムは、バス100、プロセッサ101、メモリ102、周辺回路103、インターフェース104及びホストマシン105を有する。バス100には、プロセッサ101、メモリ102、周辺回路103及びインターフェース104が接続される。プロセッサ101は、プログラムカウンタが示すアドレスの命令をメモリ102から順次読み出し、読み出した命令を実行する。そして、プロセッサ101は、命令の実行によりオーバーフロー、アンダーフロー又は0除算等の例外処理(特殊処理)が発生すると、例外信号(特殊信号)111をインターフェース104を介してホストマシン105に出力する。例外信号111は、例外信号111が発生した命令に対応するプログラムカウンタ値を含む。なお、信号111は、例外信号に限定されず、例外等の特殊な現象が発生した場合の特殊信号であってもよい。プログラムカウンタは、現在、プロセッサ101が読み出して実行している命令のアドレスをプログラムカウンタ値として記憶している。したがって、プログラムカウンタ値は、読み出された命令のアドレスに対応する。ホストマシン105は、例外信号111を入力すると、例外信号111内のプログラムカウンタ値を基に例外信号111が発生した命令を特定することができ、例外解析処理等を行うことができる。
図5は、第2の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。フェッチステージ301は、例えば8段のファーストインファーストアウト(キュー)FIFO0〜FIFO7を有する。フェッチステージ301には、フェッチしてからデコードステージ302でデコードするまでにファーストインファーストアウトFIFO0〜FIFO7があり、後段の演算パイプラインへの命令の供給が滞ったり、詰まったりしないようにしている。レジスタ部500は、複数のプログラムカウンタ値の上位ビット部331を保持するための0番レジスタ320、1番レジスタ321、2番レジスタ322及び3番レジスタ323を有する。プログラムカウンタ制御部501、比較部502及び出力生成部504は、制御部を構成する。
図10は、第3の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。図10のプロセッサ101は、図5のプロセッサ101に対して、選択用ステートマシン1001を追加したものである。以下、本実施形態が第2の実施形態と異なる点を説明する。比較部502は、プログラムカウンタ制御部501により分割された上位ビット部331がレジスタ320〜323のいずれとも一致しなかった場合に不一致信号を出力する。選択用ステートマシン1001は、不一致信号を入力すると、最も更新履歴の古いレジスタを検出する。すると、プログラムカウンタ制御部501は、上記の分割した上位ビット部331を最も更新履歴の古いレジスタに上書きし、状態テーブル503において、上書きされたレジスタを示す選択レジスタ番号701の有効フラグ702をすべて無効にする。
図11は、第4の実施形態によるステートマシン1001の例を示す状態遷移図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、最も更新履歴の新しいレジスタを次回の更新レジスタとして検出する。ここでは、レジスタ部500が4個のレジスタ320〜323を有する例を説明する。ステートマシン1001の深さは2としている。0番用ステートマシン〜3番用ステートマシンは、それぞれ0番レジスタ320〜3番レジスタ323に対応する。ステートは、0が最も新しく、1がそれ以外である。図11の状態では、0番用ステートマシンはステートが0であって最も新しく、それ以外のステートマシンはステートが1であって最新ではない。比較部502が一致信号を出力した場合には、一致したレジスタ番号のステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。ただし、ステートが1のときは、ステートを+1しても1のままとする。比較部502が不一致信号を出力した場合には、ステートが0のステートマシンを更新レジスタとし、そのステートマシンのステートを最新の0にし、他のステートマシンのステートを+1する。もし同一順位でステート0のステートマシンが複数あった場合には、若い番号のステートマシンを選択する。これは古い番号でもよい。
図13は、第5の実施形態によるステートマシン1001の例を示す状態遷移図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、次のレジスタ番号を順番に指定する。ステートマシンは1個であり、ステートの番号がレジスタ番号に対応し、4個のステートを有する。初期状態では、例えばステートマシンのステートは0であり、次回の更新レジスタは0番レジスタであることを示す。一致信号が入力されるとステートは維持され、不一致信号が入力されるとステートが+1される。なお、不一致信号が入力された場合には、ステートを−1してもよい。すなわち、一致しなかった場合には、前回更新したレジスタ番号より大きなレジスタ番号又は小さなレジスタ番号の順に状態遷移する。なお、状態遷移の順番は、特定のレジスタ番号の順番でもよい。
図14(A)及び(B)は、第6の実施形態によるステートマシン1001の例を示す図である。図14(A)は状態遷移図であり、図14(B)はステート毎の優先度を示す図である。本実施形態は、第3の実施形態に対して、ステートマシン1001の状態遷移が異なる。以下、本実施形態が第3の実施形態と異なる点を説明する。ステートマシン1001は、ラウンドロビン方式によりレジスタ番号を選択する。ステートマシン1001は、0〜3の4個のステートを有する。図14(B)に示すように、ステート0では1番レジスタの優先度が最も高く、0番レジスタの優先度が最も低い。ステート1では、2番レジスタの優先度が最も高く、1番レジスタの優先度が最も低い。ステート2では、3番レジスタの優先度が最も高く、2番レジスタの優先度が最も低い。ステート3では、0番レジスタの優先度が最も高く、3番レジスタの優先度が最も低い。一致信号を入力した場合には、一致したレジスタ番号に対応したステートに遷移する。例えば、0番レジスタと一致した場合には、ステート0に遷移する。不一致信号を入力した場合には、現在のステートの最も優先度の高いレジスタ番号を更新レジスタ番号として選択する。例えば、現在のステートが0である場合には、最も優先度の高い1番レジスタを選択する。この場合、ステートは動かない。これにより、少なくともひとつ前に更新したレジスタとは異なるレジスタを更新することができる。本実施形態は、第3の実施形態を簡略化した形とも言える。
図16は、第7の実施形態によるプロセッサ(処理装置)101の構成例を示す図である。本実施形態は、第3〜第6の実施形態のステートマシン1001を選択することができる。図16のプロセッサ101は、図10のプロセッサ101に対して、ステートマシン選択部1601を追加したものである。本実施形態は、第3〜第6の実施形態を組み合わせたものである。以下、本実施形態が第3〜第6の実施形態と異なる点を説明する。ステートマシン選択部1601は、ホストマシン105又はデバッグ用パーソナルコンピュータ202の指示に応じて、第3〜第6の実施形態のステートマシン1001のいずれかを選択する。ステートマシン1001は、ステートマシン選択部1601の選択に応じて、第3〜第6の実施形態のいずれかの動作を行う。
プログラムカウンタ値の上位ビット部を保持するためのレジスタ部と、
プログラムカウンタ値のアドレスの命令が命令メモリから読み出されると、前記読み出された命令に対応するプログラムカウンタ値を上位ビット部及び下位ビット部に分割し、前記プログラムカウンタ値の前記上位ビット部を前記レジスタ部に書き込み、前記読み出された命令とそれに対応する前記プログラムカウンタ値の前記下位ビット部との組みを後段に伝播させる制御部と、
前記読み出された命令に対して複数ステージのパイプライン処理を行い、前記読み出された命令の情報とその命令に対応する前記プログラムカウンタ値の前記下位ビット部との組みを各ステージに伝播させる演算パイプラインとを有し、
前記制御部は、前記演算パイプラインで前記読み出された命令の処理による特殊信号が発生すると、その命令に対応する前記プログラムカウンタ値の前記下位ビット部と前記レジスタ部内の前記プログラムカウンタ値の前記上位ビット部とを結合させて出力することを特徴とする処理装置。
(付記2)
前記レジスタ部は、複数のプログラムカウンタ値の上位ビット部を保持するための複数のレジスタを有し、
さらに、前記演算パイプラインの各ステージの命令に対応するプログラムカウンタ値の上位ビット部が保持されているレジスタの識別子を記憶する状態テーブルを有し、
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されている場合には、前記分割した上位ビット部を前記レジスタ部に書き込まず、前記同じ値の上位ビット部が保持されているレジスタの識別子を前記状態テーブルに書き込み、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタ部に保持されていない場合には、前記分割した上位ビット部を前記レジスタ部内のレジスタに書き込み、前記書き込んだレジスタの識別子を前記状態テーブルに書き込むことを特徴とする付記1記載の処理装置。
(付記3)
前記制御部は、前記上位ビット部が書き込まれているレジスタに対して前記分割した上位ビット部を上書きする場合には、前記状態テーブル内の前記上書きされたレジスタの識別子を無効にすることを特徴とする付記2記載の処理装置。
(付記4)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記5)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記6)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を順序付けされたレジスタに順番に上書きすることを特徴とする付記3記載の処理装置。
(付記7)
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部をラウンドロビン方式により選択されたレジスタに上書きすることを特徴とする付記3記載の処理装置。
(付記8)
さらに、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きする第1の上書き方法と、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きする第2の上書き方法と、前記分割した上位ビット部を順序付けされたレジスタに順番に上書きする第3の上書き方法と、前記分割した上位ビット部をラウンドロビン方式により選択されたレジスタに上書きする第4の上書き方法のうちの少なくも2つの中から1つを選択する選択部を有し、
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を前記選択部により選択された上書き方法で上書きすることを特徴とする付記3記載の処理装置。
301 フェッチステージ
302 デコードステージ
303 レジスタリードステージ
304 演算処理ステージ
305 メモリアクセスステージ
306 ライトバックステージ
311 命令メモリ
312 汎用レジスタ
313 データメモリ
320〜323 レジスタ
330 プログラムカウンタ値
331 上位ビット部
332 下位ビット部
333 命令
341 加算器
500 レジスタ部
501 プログラムカウンタ制御部
502 比較部
503 状態テーブル
504 出力生成部
505 パイプライン部
1001 選択用ステートマシン
1601 ステートマシン選択部
Claims (5)
- プログラムカウンタ値の上位ビット部を保持するためのレジスタ部と、
プログラムカウンタ値のアドレスの命令が命令メモリから読み出されると、前記読み出された命令に対応するプログラムカウンタ値を上位ビット部及び下位ビット部に分割し、前記プログラムカウンタ値の前記上位ビット部を前記レジスタ部に書き込み、前記読み出された命令とそれに対応する前記プログラムカウンタ値の前記下位ビット部との組みを後段に伝播させる制御部と、
前記読み出された命令に対して複数ステージのパイプライン処理を行い、前記読み出された命令の情報とその命令に対応する前記プログラムカウンタ値の前記下位ビット部との組みを各ステージに伝播させる演算パイプラインとを有し、
前記制御部は、前記演算パイプラインで前記読み出された命令の処理による特殊信号が発生すると、その命令に対応する前記プログラムカウンタ値の前記下位ビット部と前記レジスタ部内の前記プログラムカウンタ値の前記上位ビット部とを結合させて出力することを特徴とする処理装置。 - 前記レジスタ部は、複数のプログラムカウンタ値の上位ビット部を保持するための複数のレジスタを有し、
さらに、前記演算パイプラインの各ステージの命令に対応するプログラムカウンタ値の上位ビット部が保持されているレジスタの識別子を記憶する状態テーブルを有し、
前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されている場合には、前記分割した上位ビット部を前記レジスタ部に書き込まず、前記同じ値の上位ビット部が保持されているレジスタの識別子を前記状態テーブルに書き込み、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタ部に保持されていない場合には、前記分割した上位ビット部を前記レジスタ部内のレジスタに書き込み、前記書き込んだレジスタの識別子を前記状態テーブルに書き込むことを特徴とする請求項1記載の処理装置。 - 前記制御部は、前記上位ビット部が書き込まれているレジスタに対して前記分割した上位ビット部を上書きする場合には、前記状態テーブル内の前記上書きされたレジスタの識別子を無効にすることを特徴とする請求項2記載の処理装置。
- 前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の古いレジスタに上書きすることを特徴とする請求項3記載の処理装置。
- 前記制御部は、前記分割した上位ビット部と同じ値の上位ビット部が前記レジスタに保持されていない場合には、前記分割した上位ビット部を最も更新履歴の新しいレジスタに上書きすることを特徴とする請求項3記載の処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011014162A JP5678687B2 (ja) | 2011-01-26 | 2011-01-26 | 処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011014162A JP5678687B2 (ja) | 2011-01-26 | 2011-01-26 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012155539A JP2012155539A (ja) | 2012-08-16 |
JP5678687B2 true JP5678687B2 (ja) | 2015-03-04 |
Family
ID=46837198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011014162A Expired - Fee Related JP5678687B2 (ja) | 2011-01-26 | 2011-01-26 | 処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5678687B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2532560B2 (ja) * | 1988-03-09 | 1996-09-11 | 三菱電機株式会社 | 高機能な例外処理を行うデ―タ処理装置 |
JPH03105527A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | パイプライン計算機におけるプログラムカウンタの構成方式 |
US5826074A (en) * | 1996-11-22 | 1998-10-20 | S3 Incorporated | Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register |
DE602006013515D1 (de) * | 2006-02-28 | 2010-05-20 | Fujitsu Ltd | Verarbeitungseinrichtung durch vorhersage einer abzweigung aus komprimierten adresseninformationen |
JP2008165589A (ja) * | 2006-12-28 | 2008-07-17 | Fujitsu Ltd | 情報処理装置 |
-
2011
- 2011-01-26 JP JP2011014162A patent/JP5678687B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012155539A (ja) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473880B1 (en) | Synchronization of parallel memory accesses in a dataflow circuit | |
CN108319559B (zh) | 用于控制矢量内存存取的数据处理装置及方法 | |
WO2015008115A1 (en) | Method and computer program product for disassembling a mixed machine code | |
GB2496934A (en) | Multi-stage register renaming using dependency removal and renaming maps. | |
KR100303712B1 (ko) | 파이프라인기계에서의어드레스파이프라인을위한방법및장치 | |
US8484520B2 (en) | Processor capable of determining ECC errors | |
US7991985B2 (en) | System and method for implementing and utilizing a zero overhead loop | |
JP2008176453A (ja) | シミュレーション装置 | |
US10007524B2 (en) | Managing history information for branch prediction | |
JP2011253253A (ja) | コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム | |
JP7048612B2 (ja) | ベクトル生成命令 | |
US7539847B2 (en) | Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages | |
JP5678687B2 (ja) | 処理装置 | |
JP7077862B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US7966474B2 (en) | System, method and computer program product for translating storage elements | |
JP5862397B2 (ja) | 演算処理装置 | |
CN107003855B (zh) | 带进位的原子加法指令 | |
JPH08249178A (ja) | プロセッサのアネックス内において修飾ビットを形成する方法及び装置 | |
US20140365751A1 (en) | Operand generation in at least one processing pipeline | |
JP6473023B2 (ja) | 性能評価モジュール及びこれを組み込んだ半導体集積回路 | |
JP5545054B2 (ja) | デバッグ回路及びデバッグシステム | |
JP6237241B2 (ja) | 処理装置 | |
EP1050800A1 (en) | A pipelined execution unit | |
US11036503B2 (en) | Predicate indicator generation for vector processing operations | |
JP3568737B2 (ja) | 条件実行命令を備えるマイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131007 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140603 |
|
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: 20141209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5678687 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |