JP2006309454A - プログラム制御方法及びプロセッサ - Google Patents
プログラム制御方法及びプロセッサ Download PDFInfo
- Publication number
- JP2006309454A JP2006309454A JP2005130382A JP2005130382A JP2006309454A JP 2006309454 A JP2006309454 A JP 2006309454A JP 2005130382 A JP2005130382 A JP 2005130382A JP 2005130382 A JP2005130382 A JP 2005130382A JP 2006309454 A JP2006309454 A JP 2006309454A
- Authority
- JP
- Japan
- Prior art keywords
- skip
- instruction
- address
- destination address
- data
- 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
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】 CPU10は条件判定の際、条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理を行う。CPU10はスキップ処理にてそれ以降の命令を無効とする場合にも、命令のシーケンス制御は継続して実行し、データの書き込みのみ禁止する。
【選択図】 図1
Description
(i)命令セットに条件付き分岐命令などを有し、条件が成立した場合、指定のアドレスまでジャンプする方式や、
(ii)命令セットにスキップ命令を有し、直後の一ないし連続する複数の命令を無効とする方式
がある。例えば特許文献1には、スキップ時に命令をNOP化(ノー・オペレーション化)する技術が開示されている。
本発明は上記問題点に着目してなされたものであり、その目的は、命令の有効無効に関わらず、実行サイクルを一定にすることができるプログラム制御方法およびプロセッサを提供することにある。
分岐先アドレス≦現在のアドレス
となったことをトリガとしてスキップ処理を終了すると、スキップ無効命令を挿入する場合に比べ、命令数が少なくて済む。また、スキップ処理用の命令を実装しなくてよい。
分岐先アドレス≦現在のアドレス
となったことをトリガにして、前記スキップ状態フラグを通常状態にリセットするものであると、フラグをリセットする構成として好ましいものとなる。
分岐先アドレス≦現在のアドレス
となったことをトリガにして、スキップ状態フラグを通常状態にリセットすると、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスの比較を実行する構成として、データパスの内部の算術論理演算ユニットを用いることによってリソースの活用による小型化を図ることができる。
以下、本発明を具体化した第1の実施形態を図面に従って説明する。
図1は、本実施形態のマイクロコンピュータにおけるCPU(プロセッサ)の内部構成を示すブロック図である。図2には、CPUの命令実行動作、特にパイプライン動作の一例を示す。
5種類のステージとは、IF(命令フェッチ)ステージと、DEC(デコード)ステージと、EXE(実行)ステージと、MA(メモリアクセス)ステージと、WB(ライトバック)ステージである。IF(命令フェッチ)ステージは、メモリから命令を読み込むステージである。DEC(デコード)ステージは、IFステージで読み込んだ命令を解読するステージである。EXE(実行)ステージは、DECステージで解読された命令の内容に応じて、算術・論理演算やIFステージで読み込むべき命令のアドレスやメモリへアクセスする際のアドレス等を演算するステージである。MA(メモリアクセス)ステージは、DECステージで解読された命令の内容に応じて、EXE(実行)ステージでの演算結果をアドレスとしてメモリへのアクセスを行うステージである。WB(ライトバック)ステージは、DECステージで解読された命令の内容に応じて、演算データもしくはメモリから取り込んだデータを内部レジスタに書き込むステージである。
図2において、メモリへのアクセスを必要としない命令A,B,D及びスキップ命令は、IF、DEC、EXE、WBの4つのステージでパイプラインが構成されており、命令実行後(EXEステージ)、次のステージにて結果がレジスタに書き込まれる(WBステージ)。一方、ストア命令などメモリアクセスを必要とする命令Cは、EXEステージとWBステージの間にMAステージが挿入され、5種類のステージにてパイプラインが構成される。ただし、命令CのMAステージ実行中は、他命令のパイプラインをストールさせる。こうすることで、メモリアクセスが必要な命令のみ、2サイクル必要となるが、IFステージとMAステージの競合を避けることができる。
図1において、プログラムカウンタ35の値(アドレス)がアドレスバス41から出力され、バス41に接続されたROMより該当する命令がデータバス40に出力される。CPU10においてロードストアユニット31を介してデータバス40上のデータを取り込み、命令デコーダ21に格納する。命令デコーダ21は、フェッチした命令の内容を解読し、解読した命令の内容に応じて、データパス30及び、CPU10の外部に対して所定の制御を行う。
フェッチした命令がスキップ処理開始命令の場合は、命令デコーダ21よりスキップ処理制御ユニット22に対しスキップ処理開始信号が出力される。また、フェッチした命令がスキップ処理終了命令の場合は、命令デコーダ21よりスキップ処理制御ユニット22に対しスキップ処理終了信号が出力される。
図3は、一般的なスキップ処理中のパイプライン動作を、図4は、本実施形態におけるスキップ処理中のパイプライン動作を示している。
一般的なスキップ処理制御手法では、スキップ処理開始命令が実行された後、以降の命令をNOP(ノー・オペレーション命令)化する。このとき、図2における命令Cが、実行に2サイクルを要するストア命令だった場合、NOP化によって、MAステージがなくなる。従って、スキップ処理しない場合に比べて、1サイクル短くなり、命令A〜命令Dに係るサイクル数(実行サイクル数)は「4」となる。
図4中の命令C(ストア命令)を例に説明すると、スキップ状態フラグは、スキップ処理開始命令を実行することでスキップ状態にセットされ、スキップ処理終了命令を実行することで通常状態にリセットされる。スキップ処理制御ユニット22は、スキップ状態フラグがスキップ状態の間も、命令のシーケンス制御はそのまま継続して実行し、書き込み制御信号を書き込み禁止にする。即ち、スキップ処理中は命令の種類に関わらず、CPU内外に対するデータの書き込みを禁止し続ける。そのため、MAステージでは、データの書き込みが禁止される。よって、ストア命令は実質的に無効となるが、消費サイクルは命令有効時と同じ2サイクルとなる。従って、スキップ処理区間である、命令A〜命令Dに係るサイクル数(実行サイクル数)は、命令の種類に関わらず、命令有効時と同じ「5」となる。つまり、命令の実行サイクルを命令の有効無効に関わらず、一定とすることができ、命令A〜Dの命令群をスキップした場合としない場合とで、処理にかかるサイクル数を同じとすることができる。
プログラム制御方法として、条件成立時に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理を行う際に、スキップ処理にてそれ以降の命令を無効とする場合にも、命令のシーケンス制御は継続して実行し、データの書き込みのみ禁止するようにした。これにより、命令無効時にも命令有効時と同じサイクル数を消費させて、命令の有効無効に関わらず、実行サイクルを一定にすることができる。
(第2の実施の形態)
次に、第2の実施形態を、第1の実施形態との相違点を中心に説明する。
第1の実施形態に比べ本実施形態においては、図4中のスキップ状態フラグをスキップ状態にセットする手段として、条件付き分岐命令を使用している。
(第3の実施の形態)
次に、第3の実施形態を、第2の実施形態との相違点を中心に説明する。
図6において、CPU10は、第1の実施形態に挙げたCPU10と同じく、条件判定に基づき条件が成立した場合にそれ以降の一ないし連続する複数の命令を無効化するスキップ処理制御ユニット22を備えている。
本実施形態においては、スキップ処理制御ユニット22とデータパス30によりスキップ処理制御手段が構成されている。
スキップ処理制御ユニット22は、第2の実施形態と同じく、スキップ状態フラグ22aを備えており、スキップ状態フラグ22aがスキップ状態の場合には、内外部の書き込み制御信号として書き込み禁止を出力する。
メモリ上のアドレスが100番地にある、条件付き分岐命令(前方のみに分岐することを許可された条件付き分岐命令)をサイクル番号♯1の時点でフェッチし、サイクル番号♯3で実行する。サイクル番号♯3において条件判定を行い条件が成立した時点で、命令デコーダ21よりスキップ処理開始信号が出力され、サイクル番号♯4の時点ではスキップ状態フラグがセットされる。これと同時に、分岐先アドレスレジスタ36に分岐先アドレス(この場合105)がセットされる。
プログラム制御方法として、前方のみに分岐することを許可された条件付き分岐命令で指定された分岐先アドレスと、プログラムカウンタ35の現在のアドレスが、分岐先アドレス≦現在のアドレスとなったことをトリガとしてスキップ処理を終了する。これにより、スキップ無効命令を挿入する場合に比べ、命令数が少なくて済む。また、スキップ処理用の命令を実装しなくてよい。
(第4の実施の形態)
次に、第4の実施形態を、第3の実施形態との相違点を中心に説明する。
この構成により、次のように作用する。
ここで、前述のフラグデータ退避ユニット22b、フラグデータ復帰ユニット22cおよびフラグデータ退避用レジスタ38が無かった場合について図10を用いて説明する。
スキップ状態フラグのデータは図8のフラグデータ退避用レジスタ38ではなくCPU外部のメモリに退避してもよい。
CPU(プロセッサ)として、スキップ処理制御手段(22,30)は、割り込み発生時にスキップ状態フラグ(22a)のフラグデータをレジスタ38ないしメモリへ退避するフラグデータ退避ユニット22bと、復帰命令により、退避したフラグデータをスキップ状態フラグ(22a)に復帰するフラグデータ復帰ユニット22cと、を備える。これにより、割り込み時のスキップ処理を継続することができる。この構成は第1実施形態に適用してもよい。
Claims (9)
- 条件判定の際、条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化する、プロセッサのスキップ処理のためのプログラム制御方法であって、
スキップ処理にてそれ以降の命令を無効とする場合にも、命令のシーケンス制御は継続して実行し、データの書き込みのみ禁止するようにしたことを特徴とするプログラム制御方法。 - 命令セットに、前方のみに分岐することを許可された条件付き分岐命令を有し、
条件付き分岐命令を実行した際、条件が成立した場合に、それ以降の命令を無効化するスキップ処理を開始することを特徴とする請求項1に記載のプログラム制御方法。 - 前記条件付き分岐命令で指定された分岐先アドレスと、プログラムカウンタの現在のアドレスが、
分岐先アドレス≦現在のアドレス
となったことをトリガとしてスキップ処理を終了することを特徴とする請求項2に記載のプログラム制御方法。 - 条件判定に基づき条件が成立した場合に、それ以降の一ないし連続する複数の命令を無効化するスキップ処理制御手段を備えたプロセッサであって、
前記スキップ処理制御手段は、スキップ処理中は命令の種類に関わらず、プロセッサ内外に対するデータの書き込みを禁止し続けることを特徴とするプロセッサ。 - 前記スキップ処理制御手段は、命令によるデータの書き込みを制御するスキップ状態フラグを備え、
前記スキップ状態フラグは、スキップ処理開始命令を実行することでスキップ状態にセットされ、スキップ処理終了命令を実行することで通常状態にリセットされることを特徴とする請求項4に記載のプロセッサ。 - 前記スキップ処理制御手段は、命令によるデータの書き込みを制御するスキップ状態フラグを備え、
前記スキップ状態フラグは、条件付き分岐命令における条件が成立した場合にスキップ状態にセットされることを特徴とする請求項4に記載のプロセッサ。 - 前記スキップ処理制御手段は、
前記条件付き分岐命令によって指定される分岐先アドレスを保持するための分岐先アドレスレジスタと、
分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを比較するアドレス比較手段と、
を備え、
前記アドレス比較手段は、
分岐先アドレス≦現在のアドレス
となったことをトリガにして、前記スキップ状態フラグを通常状態にリセットする
ことを特徴とする請求項6に記載のプロセッサ。 - 前記アドレス比較手段は、データパスの内部の算術論理演算ユニットで構成され、スキップ状態フラグがスキップ状態にセットされている場合には、前記算術論理演算ユニットに、分岐先アドレスレジスタの分岐先アドレスとプログラムカウンタの現在のアドレスを入力し、前記算術論理演算ユニットより出力されるコンディションコードが
分岐先アドレス≦現在のアドレス
となったことをトリガにして、スキップ状態フラグを通常状態にリセットすることを特徴とする請求項7に記載のプロセッサ。 - 前記スキップ処理制御手段は、
割り込み発生時に前記スキップ状態フラグのフラグデータをレジスタないしメモリへ退避するフラグデータ退避手段と、
復帰命令により、退避した前記フラグデータをスキップ状態フラグに復帰するフラグデータ復帰手段と、
を備えることを特徴とする請求項5〜8のいずれか1項に記載のプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005130382A JP4889235B2 (ja) | 2005-04-27 | 2005-04-27 | プログラム制御プロセッサ |
US11/312,830 US7725694B2 (en) | 2004-12-21 | 2005-12-21 | Processor, microcomputer and method for controlling program of microcomputer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005130382A JP4889235B2 (ja) | 2005-04-27 | 2005-04-27 | プログラム制御プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006309454A true JP2006309454A (ja) | 2006-11-09 |
JP4889235B2 JP4889235B2 (ja) | 2012-03-07 |
Family
ID=37476275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005130382A Expired - Fee Related JP4889235B2 (ja) | 2004-12-21 | 2005-04-27 | プログラム制御プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4889235B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299729A (ja) * | 2007-06-01 | 2008-12-11 | Digital Electronics Corp | プロセッサ |
JP2009205351A (ja) * | 2008-02-27 | 2009-09-10 | Denso Corp | マイクロコンピュータ |
JP2012018626A (ja) * | 2010-07-09 | 2012-01-26 | Toshiba Corp | メモリ制御装置、メモリ装置および停止制御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03269728A (ja) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | パイプライン計算機における命令実行制御方式 |
JP2002082800A (ja) * | 2000-09-06 | 2002-03-22 | Sanyo Electric Co Ltd | プログラム実行装置及び方法 |
WO2004053685A1 (en) * | 2002-12-12 | 2004-06-24 | Arm Limited | Instruction timing control within a data processing system |
-
2005
- 2005-04-27 JP JP2005130382A patent/JP4889235B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03269728A (ja) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | パイプライン計算機における命令実行制御方式 |
JP2002082800A (ja) * | 2000-09-06 | 2002-03-22 | Sanyo Electric Co Ltd | プログラム実行装置及び方法 |
WO2004053685A1 (en) * | 2002-12-12 | 2004-06-24 | Arm Limited | Instruction timing control within a data processing system |
JP2006510127A (ja) * | 2002-12-12 | 2006-03-23 | エイアールエム リミテッド | データ処理装置内の命令タイミング制御 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008299729A (ja) * | 2007-06-01 | 2008-12-11 | Digital Electronics Corp | プロセッサ |
JP2009205351A (ja) * | 2008-02-27 | 2009-09-10 | Denso Corp | マイクロコンピュータ |
JP2012018626A (ja) * | 2010-07-09 | 2012-01-26 | Toshiba Corp | メモリ制御装置、メモリ装置および停止制御方法 |
US8359425B2 (en) | 2010-07-09 | 2013-01-22 | Kabushiki Kaisha Toshiba | Memory control device, memory device, and shutdown control method |
Also Published As
Publication number | Publication date |
---|---|
JP4889235B2 (ja) | 2012-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5461722A (en) | Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions | |
JP4770664B2 (ja) | マイクロプロセッサおよびそれを用いたマイクロコンピュータ | |
US6832305B2 (en) | Method and apparatus for executing coprocessor instructions | |
KR20040016829A (ko) | 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템 | |
US5418917A (en) | Method and apparatus for controlling conditional branch instructions for a pipeline type data processing apparatus | |
US20070079076A1 (en) | Data processing apparatus and data processing method for performing pipeline processing based on RISC architecture | |
JP4889235B2 (ja) | プログラム制御プロセッサ | |
JP5233078B2 (ja) | プロセッサ及びその処理方法 | |
JP3602801B2 (ja) | メモリデータアクセス構造およびその方法 | |
JP2011070290A (ja) | データプロセッサ | |
EP0573071A2 (en) | A microprocessor | |
JP5012562B2 (ja) | マイクロコンピュータ | |
JP2004062427A (ja) | マイクロプロセッサ | |
JP4702004B2 (ja) | マイクロコンピュータ | |
US7281121B2 (en) | Pipeline processing device and interrupt processing method | |
JP2006139644A (ja) | プロセッサ | |
JP5679263B2 (ja) | 情報処理装置及びマイクロ命令処理方法 | |
JP2000099328A (ja) | プロセッサ及びその実行制御方法 | |
JP4564025B2 (ja) | 情報処理装置における割り込み処理方法 | |
JP2689894B2 (ja) | マイクロプログラム制御型情報処理装置 | |
JPH087679B2 (ja) | マイクロプロセッサ | |
JP2005134987A (ja) | パイプライン演算処理装置 | |
JPH04205625A (ja) | 並列処理計算機 | |
JP2008158810A (ja) | 命令実行処理装置 | |
JPH03291724A (ja) | マイクロプログラム制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091127 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100817 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101116 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101122 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110401 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111213 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4889235 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |