JP2013174942A - 複数のコンディションフラグを有するcpu - Google Patents
複数のコンディションフラグを有するcpu Download PDFInfo
- Publication number
- JP2013174942A JP2013174942A JP2012037531A JP2012037531A JP2013174942A JP 2013174942 A JP2013174942 A JP 2013174942A JP 2012037531 A JP2012037531 A JP 2012037531A JP 2012037531 A JP2012037531 A JP 2012037531A JP 2013174942 A JP2013174942 A JP 2013174942A
- Authority
- JP
- Japan
- Prior art keywords
- flag
- instruction
- register
- cpu
- control unit
- 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
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】本発明のプロセッサは、演算実行時にフラグ値が変化する第1のフラグと、データロードがなされるとフラグ値が変化する第2のフラグという2つのコンディションフラグを一つのCPUが備えるので、データロード後のフラグ変化で処理を分岐させたければロード時にフラグが更新される第2のフラグを用いた機械語命令を作成し、データロード後にロード前のフラグ値を用いた処理を行なわせたければ、ロード時にフラグが自動的に更新されない第1のフラグを用いた機械語命令を作成する。これにより、ゼロ判定やフラグ退避が不要となり、フラグ値がデータロード時に更新されては困る場合及び自動的に更新された方が都合良い場合の両方に対して簡潔なプログラムで組み立てることができる。
【選択図】図2
Description
前記演算論理ユニットの演算結果が、前記フラグレジスタ内の第1のコンディションフラグに対応するビット(Z)に反映され、前記内部レジスタへのデータロードの結果が、前記フラグレジスタ内の第2のコンディションフラグに対応するビット(TZ)に反映される、ことを特徴とする。
さらにまた、第1のコンディションフラグのみを参照するZ80の命令をそのまま残し、第2のコンディションフラグを参照する命令の追加という命令構成のCPUコアにすることで、既存のプログラムを変更せずに拡張をすることができるという利点があり、その結果、複数のプログラム間の互換性がよいという効果もある。
図1は、CPU1とメモリ4の構成をあらわしたブロック図である。CPU1はCPUコア部2とバスコントローラ3を含む。コア部2は、バスコントロール信号でバスコントローラ3を制御し、メモリユニット4との間でリード/ライト信号や入出力データのやり取りをする。また、CPUコア部2に対して割込み信号(INT)/待ち信号(WAIT)、CPUコア部2及びバスコントローラ3に対してリセット信号が入力可能な状態になっている。
状態制御ユニット11は、図5に示す内部状態遷移を管理して、CPUコア2の動作状態を決定すると共に中央制御ユニット12へ実際の動作指示を行う。各命令に関する内部状態遷移は命令フェッチ状態(1)から始まり、中央制御ユニット12で行われる命令デコードの結果に応じて次の内部状態遷移が決定され(例えば、演算処理、メモリロード、メモリ記憶等)、したがって各命令毎に異なる内部状態遷移をもつことになる。なお、各命令の状態遷移の情報は、状態制御ユニット11内に格納されている。
一方、ビットD5がデータロード時にフラグ値が変化する第2のコンディションフラグに対応する。第2のコンディションフラグの動作は、加算命令、減算命令、論理演算命令、インクリメント/ディクリメント命令等による演算結果と、ロード命令においてロードデータの判定を行いセットされる。
ディスティネーションセレクタ(DSTsel)17は、演算論理ユニット(ALU)16からの入力を、レジスタ(B,C,D,E,H,L)へ出力するか、或いは、外部バスコントローラ(不図示)を介してメモリユニット4等へ渡す出力信号DOへ出力するかの選択を行なう。
ソースBセレクタ(SRCBsel)19は、複数ある内部レジスタ及び外部バスコントローラ(不図示)を介して入力された外部入力DIの中から1つを選択して、演算論理ユニット(ALU)16への入力Bと決定する。
例えば“ADD A、B”命令の機械語命令は命令1バイトで構成され、命令内容は、AレジスタとBレジスタの内容を加算してAレジスタに格納することである。この命令が実行されるとき、CPUは下記の動作を行う。
まず、CPUコア2の状態が命令フェッチとなると、状態制御ユニット11が命令フェッチの指示を中央制御ユニット12へ出す。この指示を受けて、中央制御ユニット12はデータパスユニット14を操作し、プログラムカウンタ(PC)が示すアドレスをアドレスセレクタ(ADDRESSsel)18に設定し、これにより1バイト命令をメモリ4から読み出し、DI入力を介して入力する。入力された1バイト命令はデコーダー13へ渡され、命令解析が行われる。このときプログラムカウンタ(PC)では、次の命令フェッチアドレスを指示するための処理も同時に行われている。
ソースAセレクタ(SRCAsel)20はセレクタ回路であり、レジスタバンク15内に複数あるレジスタに格納されたレジスタ内容のうち、算術/論理演算回路43の入力Aへセットされるデータ(SourceA)41が、中央制御ユニット12からのソースA選択信号により選択される。
ソースBセレクタ(SRCBsel)19もセレクタ回路であり、レジスタバンク15内の複数あるレジスタに格納されたレジスタ内容、及び、外部バスコントローラを介してメモリユニット2等から入力される外部入力DIのうち、算術/論理演算回路43の入力Bへセットされるデータ(SourceB)42が、中央制御ユニット12からのソースB選択信号により選択される。また、ソースBセレクタ(SRCBsel)19は、上記入力Bと並列して演算結果セレクタへ入力されるデータも選択する。
“ADD A,B”命令は、レジスタバンク15内のAレジスタとBレジスタの加算結果をAレジスタに格納する演算を実行することである。この命令の場合、中央制御ユニット12の指示によりソースA41としてAレジスタが選択され、ソースB42としてBレジスタが選択されて演算が行われる。次に、演算結果セレクタ44により加算の結果が選択され、Z判定回路46によりZ判定結果がZflagにセットされる。ディスティネーションセレクタ45は、Aレジスタを選択して結果をAレジスタに格納する。したがって、演算結果が、第1のコンディションフラグであるZフラグに反映される。
LD A,(100h)”命令は、Aレジスタに100h番地のデータをロードする演算を実行することである。この命令の場合、ソースBセレクタ19は外部入力DIを選択、演算結果セレクタ44はソースBを選択、ディスティネーションセレクタ45はAレジスタを選択し、Z判定は前回のZflagを更新、TZ判定は演算結果セレクタ44の結果を更新とすると、100h番地のデータがAレジスタにロードされる。Zフラグは変化しないが、TZ判定回路47が、ロードされた100h番地のデータがゼロか否ゼロかの判定を行う。したがって、データをロードしたという結果が、第2のコンディションフラグであるTZフラグに反映される。
CPUコア2の状態は下記に示す状態に定義でき、その状態がCPUの制御信号や命令により各実行サイクルへ遷移していくものである。
1.リセット状態
全ての内部状態がクリアされ、CPUコア2が初期化された状態。
2.命令フェッチ
メモリから命令を読み込み、その命令を解析する。
3.メモリ・ロード
指定されたアドレスのメモリからデータを内部レジスタに読み込む。
4.メモリ・ストア
内部レジスタのデータを指定したアドレスのメモリへ書き込む。
5.演算
内部のレジスタに算術演算を行う。
6.HALT
CPUコア2を実行停止とする。リセット、割り込み等の外部制御信号により解除される。
なお、本実施形態ではCPUコア2の状態を上記6つの状態として説明したが、この状態区分はこれに限定されるものではなく、CPUの設計に応じて様々なものがあり得ることに留意されたい。
本発明が目的とするプログラム効率とメモリ空間の削減の両立をおこなえるCPUアーキテクチャと命令セットを提供するためには、命令構成の少ない命令によってプログラム数を短縮することが望ましく、いかに少ない命令構成の命令でプログラムできるかが重要な要素となる。このことを考慮すると、本発明のコンディションフラグ構成は、機械語命令数を大幅に削減できるものといえる。
2 CPUコア
3 バスコントローラ
4 メモリユニット
11 状態制御ユニット
12 中央制御ユニット
13 デコーダー
14 データパスユニット
15 レジスタバンク
16 ALU
17 フラグレジスタ
Claims (3)
- 所与の機械語命令を実行するCPUコアを具備したCPUであって、
前記CPUコアは、前記機械語命令に従い決定される命令動作シーケンスに基づき、(i)算術論理演算が実行されたとき、演算結果をフラグレジスタ内の第1のコンディションフラグに対応するビット(Z)に反映し、(ii)前記CPUコア内のレジスタにデータがロードされたとき、ロード結果を前記フラグレジスタ内の第2のコンディションフラグに対応するビット(TZ)に反映する、ことを特徴とするCPU。 - 前記演算結果が、前記第1のコンディションフラグに対応するビット(Z)と、前記第2のコンディションフラグに対応するビット(TZ)との両方に反映される、請求項1に記載のCPU。
- 前記CPUコアは、
前記CPUコア内部の状態遷移を管理し、各状態に応じた動作指示を作成する状態制御ユニットと、
外部より入力された機械語命令を解析して命令デコードを作成し、当該命令デコードを前記状態制御ユニットに渡すこと、及び、前記状態制御ユニットにより決定される内部状態遷移による動作指示に従い命令動作のシーケンスを決定する中央制御ユニットと、
前記中央制御ユニットからの命令動作シーケンスに基づき、複数の内部レジスタ又は外部入力をソースとして算術論理演算を実行する演算論理ユニット(ALU)と、
前記内部レジスタの状態又は所定の命令でセット若しくはリセットが行われる複数フラグを有する1以上のフラグレジスタと、
を含み、
前記演算論理ユニットの演算結果が、前記フラグレジスタ内の第1のコンディションフラグに対応するビット(Z)に反映され、
前記内部レジスタへのデータロードの結果が、前記フラグレジスタ内の第2のコンディションフラグに対応するビット(TZ)に反映される、
ことを特徴とする、請求項1又は2に記載のCPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037531A JP5866697B2 (ja) | 2012-02-23 | 2012-02-23 | 複数のコンディションフラグを有するcpu |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012037531A JP5866697B2 (ja) | 2012-02-23 | 2012-02-23 | 複数のコンディションフラグを有するcpu |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013174942A true JP2013174942A (ja) | 2013-09-05 |
JP5866697B2 JP5866697B2 (ja) | 2016-02-17 |
Family
ID=49267811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012037531A Active JP5866697B2 (ja) | 2012-02-23 | 2012-02-23 | 複数のコンディションフラグを有するcpu |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5866697B2 (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH023822A (ja) * | 1988-06-21 | 1990-01-09 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JPH02148222A (ja) * | 1988-11-30 | 1990-06-07 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JPH02224025A (ja) * | 1988-10-18 | 1990-09-06 | Apollo Computer Inc | コンピューターシステム |
JPH07509083A (ja) * | 1992-07-13 | 1995-10-05 | テキサス インスツルメンツ インコーポレイテッド | ディジタル信号プロセッサ |
JPH096614A (ja) * | 1995-06-21 | 1997-01-10 | Sanyo Electric Co Ltd | データ処理装置 |
US5802360A (en) * | 1996-05-01 | 1998-09-01 | Lucent Technologies Inc. | Digital microprocessor device having dnamically selectable instruction execution intervals |
US20030061464A1 (en) * | 2001-06-01 | 2003-03-27 | Catherwood Michael I. | Digital signal controller instruction set and architecture |
-
2012
- 2012-02-23 JP JP2012037531A patent/JP5866697B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH023822A (ja) * | 1988-06-21 | 1990-01-09 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JPH02224025A (ja) * | 1988-10-18 | 1990-09-06 | Apollo Computer Inc | コンピューターシステム |
JPH02148222A (ja) * | 1988-11-30 | 1990-06-07 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JPH07509083A (ja) * | 1992-07-13 | 1995-10-05 | テキサス インスツルメンツ インコーポレイテッド | ディジタル信号プロセッサ |
JPH096614A (ja) * | 1995-06-21 | 1997-01-10 | Sanyo Electric Co Ltd | データ処理装置 |
US5802360A (en) * | 1996-05-01 | 1998-09-01 | Lucent Technologies Inc. | Digital microprocessor device having dnamically selectable instruction execution intervals |
US20030061464A1 (en) * | 2001-06-01 | 2003-03-27 | Catherwood Michael I. | Digital signal controller instruction set and architecture |
Non-Patent Citations (1)
Title |
---|
JPN6015049856; 川俣晶: 'プロセサの仕組みってこうだったのか! C言語で作るCPUエミュレータ' NIKKEI SOFTWARE 第12巻,第2号, 20090124, Pages:52-73, 日経BP社 Nikkei Business Publications,Inc. * |
Also Published As
Publication number | Publication date |
---|---|
JP5866697B2 (ja) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2550213B2 (ja) | 並列処理装置および並列処理方法 | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
EP2015174B1 (en) | Microprogrammed processor having multiple processor cores using time-shared access to a microprogram control store | |
KR102379894B1 (ko) | 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법 | |
US20230084523A1 (en) | Data Processing Method and Device, and Storage Medium | |
US20120260061A1 (en) | Data processing apparatus and method for performing vector operations | |
KR20150019349A (ko) | 다중 쓰레드 실행 프로세서 및 이의 동작 방법 | |
JP2019511056A (ja) | 複素数乗算命令 | |
US7552313B2 (en) | VLIW digital signal processor for achieving improved binary translation | |
US6061367A (en) | Processor with pipelining structure and method for high-speed calculation with pipelining processors | |
JP2002532775A (ja) | インタープリタプログラム実行方法 | |
JP7410186B2 (ja) | Gpuにおける明示的な個別マスクレジスタのマスク操作方法 | |
US9361109B2 (en) | System and method to evaluate a data value as an instruction | |
US6505291B1 (en) | Processor having a datapath and control logic constituted with basis execution blocks | |
US20060200648A1 (en) | High-level language processor apparatus and method | |
JP4800582B2 (ja) | 演算処理装置 | |
JP5866697B2 (ja) | 複数のコンディションフラグを有するcpu | |
US8285975B2 (en) | Register file with separate registers for compiler code and low level code | |
US5812845A (en) | Method for generating an object code for a pipeline computer process to reduce swapping instruction set | |
JP4159586B2 (ja) | 情報処理装置および情報処理の高速化方法 | |
US8275978B1 (en) | Execution of conditional branch instruction specifying branch point operand to be stored in jump stack with branch destination for jumping to upon matching program counter value | |
JP2004021890A (ja) | データ処理装置 | |
JP2000029696A (ja) | プロセッサおよびパイプライン処理制御方法 | |
JP3511691B2 (ja) | 演算処理装置 | |
KR100244210B1 (ko) | 멀티-스테이지 파이프라인 구조를 갖는 마이크로 프로세서 디자인방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151116 |
|
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: 20151209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5866697 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |