JP2007287186A - Risc型cpu,コンパイラ及びマイクロコンピュータ - Google Patents
Risc型cpu,コンパイラ及びマイクロコンピュータ Download PDFInfo
- Publication number
- JP2007287186A JP2007287186A JP2007207930A JP2007207930A JP2007287186A JP 2007287186 A JP2007287186 A JP 2007287186A JP 2007207930 A JP2007207930 A JP 2007207930A JP 2007207930 A JP2007207930 A JP 2007207930A JP 2007287186 A JP2007287186 A JP 2007287186A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cpu
- branch
- compiler
- program
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】CPUは、分岐命令における、遅延オプションの設定に応じてプログラム分岐を行なうか否かを決定するので、分岐命令等をデコードした段階で、当該命令については遅延分岐を行なわないことを判別でき、そのようなケースでは、当該分岐命令の次にnop命令を配置する必要はなくなるので、オブジェクトコードサイズを小さくすることが可能となる。
【選択図】図16
Description
に関する。
ところで、CPUは、割り込みが発生した場合に割り込み処理を実行する。ここで、図27(a)には、割り込み処理のシーケンスを示し、図27(b)には。割り込み処理プログラムのオブジェクトコードの一例をニモニックで示す。
尚、これらの従来技術は、何れも、例えば特許文献1に記載されているものである。
以下、本発明の第1実施例について図1乃至図8を参照して説明する。図6は、プログラム変換装置の構成を示す図である。プログラム変換装置たるパーソナルコンピュータ(パソコン,若しくはワークステーション)1には、コンパイラ2がインストールされている。具体的には、パソコン1の本体1aに内蔵されているハードディスク等の記憶装置(記憶手段)にコンパイラ2のプログラムファイルが記憶されている。
一方、ステップS1で、割り込み処理部分においてスタック領域を使用していない場合は(「無し」)復帰命令[rtm3]のオペランド部に「0」を設定する(ステップS2)。
rt13 #36 ・・・(1)
である(m=1)。即ち、従来は、
ステップA5 : add.b #36,sp ・・・(2)
でスタック領域を開放し、
ステップA6 : rt13 ・・・(3)
で割り込み復帰(及び戻りアドレス分のスタック開放)を行なっていたが、本実施例では、上記(1)の1行の命令によってそれらを同時に行うようにコーディングされている。
IF:インストラクションフェッチ
DEC:デコード
EXE:命令実行
MEM:メモリ(外部デバイス)アクセス
WB:ライトバック(レジスタ書込み)
adr=sp+(オペランド*4) ・・・(4)
次のMEMでは、スタック上の戻りアドレスと状態フラグがリードされ、WBにおいて、戻りアドレスをプログラムカウンタPCに、状態フラグがステータスレジスタPSRにセットされる。そして、パイプライン[2]のEXEにおいて、スタック領域の開放が一括して行なわれる。即ち、スタックポインタSPを(5)式のようにセットする。
sp=sp+(オペランド*4)+4 ・・・(5)
sp=sp+(オペランド*4) ・・・(6)
そして、パイプライン[2]で[rt13]が実行され、パイプライン[3]のEXEにおいて、戻りアドレス及び状態フラグの退避に使用された領域が(7)式の実行により開放される。
sp=sp+4 ・・・(7)
即ち、従来のプログラムによる復帰処理では、スタック領域の開放処理を(6),(7)の2段階で行なっていた。これに対して、本実施例の方式によれば、(6),(7)の処理を(5)で一括して行なうことが可能となり、復帰処理に要する時間が短縮されている。
また、マイコン6は、コンパイラ2によって生成されたオブジェクトプログラムが記憶されるROM7を備えるので、CPU8は、そのオブジェクトプログラムを実行して高速に処理を行なうことができる。
図9乃至図12は本発明の第2実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図9は、コンパイラ2によるコンパイル処理の内容を、第2実施例にかかる部分のみ示すフローチャートである。
#pragma interrupt(mon=0)
と記述されている。この内、最後の(mon=0)が例外割り込み処理を示す記述である。一方、図11(a)に示す通常割り込み処理は、タイマ割り込み処理であり、そのプログラムの冒頭において、
#pragma interrupt(mon=1)
と記述されている。この内、最後の(mon=1)が通常割り込み処理を示す記述である。
フラグMONが「1」にセットされた場合、CPU8は、他の例外割り込み,通常割り込みの受付を禁止するようになっている。そして、従来のユーザプログラムでは、例外割り込み処理の実行が完了した場合は、フラグMONを「0」にリセットするように記述する必要があった。
その結果、コンパイルされたオブジェクトコードファイル4は、図10(b),図11(b)に示すように生成される。そして、CPU8は、復帰命令が[rt03]である場合は、フラグMONを「0」にリセットする処理をハードウエアで実行する。復帰命令が[rt13]である場合は、第1実施例と同様の復帰処理を行なう。
図13乃至図16は本発明の第3実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図15は、第3実施例のコンパイラ2によって生成される遅延分岐命令のビット構成を示すものである。CPU8の遅延分岐命令は、(a),(b),(c)の3タイプがある。
第3実施例では、これらの遅延分岐命令31,35,39に、遅延処理選択部33,37,41が設けられていることが特徴である。CPU8は、この遅延処理選択部のビットの状態に応じて遅延分岐の流れを制御するように構成されている。
即ち、CPU8は、例えば、遅延分岐命令31をデコードした場合に遅延オプション「1」が設定されていると、その次には遅延処理可能な1ワード命令が配置されていることを判定する。この場合、オブジェクトコードファイル4中における命令の配置は、図14(a)に示すようになる。
一方、直前の命令が遅延処理不能であり、ステップS18においてコンパイラ2が「NO」と判断すると、分岐命令の遅延オプションとして遅延処理選択部41に「0」を設定する(ステップS20)。
更に、コンパイラ2は、ステップS23を実行すると、再度ステップS21,S22と同様の判定を行なう(ステップS24,S25)。そして、何れも「YES」と判定すると、ステップS19と同様の処理を行なう(ステップS26)。また、何れも「NO」と判定すると処理を終了する。
図17乃至図23は本発明の第4実施例を示すものであり、第1実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。図17は、補助演算装置15の内部構成を示す機能ブロック図である。レジスタ部51は、第2データバス(汎用バス)14上に出力されるデータを、必要に応じてマルチプレクサ52を介して取り込むようになっている。レジスタ部51は、図18に示す複数のデータレジスタC0〜C29の集合として構成されている。これらのデータレジスタC0〜C29は、使用される組み合わせに応じて行なわれる演算の種類が決定されている。
また、命令デコーダ53は、CPU8によって専用命令信号COPが与えられている場合にのみ、デコード動作を行うように構成されている。また、シーケンサ56は、演算部55が演算実行中の状態でCPU8によるアクセスが行われた場合に、ウェイト信号CWTをCPU8に対して出力するようになっている。
また、デコーダ62によるデコード結果に基づいて、CPU8の割り込み制御部63が自動的に割り込み受付を禁止するので、ユーザが割り込み制御に関与する必要がなく、補助演算装置15側より割り込み禁止信号を出力する必要もない。従って、CPU8が補助演算装置15にアクセスする場合に、より簡単に割り込み受付を禁止させることができる。
図24乃至図26は、本発明の第5実施例を示すものである。図24は、コンパイラ2の第5実施例にかかる部分の処理内容を示すフローチャートである。第5実施例では、コンパイラ2は、コンパイル処理を行なう場合のユーザの設定に応じて、演算を第4実施例のように補助演算装置15を用いて行わせるか、或いは、図26に示すように、ROM7Aの内部に用意されたライブラリ64を使用して行なわせるかを選択することができるようになっている。
図25は、上述のようにして生成されたオブジェクトコードである。CPU8によってライブラリ64が呼び出されると、ライブラリ64によって乗算処理(a=b*c)が実行され、積aは、汎用レジスタr1にセットされる。従って、続くステップS45では、汎用レジスタr1の値を変数aに転送するようにコード生成する。
第2実施例において、通常割り込み処理で例外割り込み処理とは異なる独自の処理を行なう場合も、復帰命令の相違に応じてCPU8が実行するように構成しても良い。
第4実施例において、CPUが割り込みの受付を禁止する期間は、CPUの構成によってはパイプラインのステージEXEであっても良い。
Claims (3)
- その次に記述されている命令を実行するか否かを判別するための遅延分岐オプションを有する分岐命令を有し、前記遅延分岐オプションの設定に応じてプログラム分岐を行なうか否かを決定するように構成されていることを特徴とするRISC型CPU。
- ソースプログラムにおいて、分岐命令よりも前に記述されている命令が当該分岐命令の遅延スロットにて実行可能か否かを判定し、
実行可能である場合は「遅延処理あり」を示す遅延分岐オプションを当該分岐命令中に設定すると共に実行可能な命令を当該分岐命令の次に配置し、
実行不能である場合は「遅延処理なし」を示す遅延分岐オプションを当該分岐命令中に設定するように請求項1記載のRISC型CPUによって実行されるオブジェクトコードを生成することを特徴とするコンパイラ。 - 請求項1記載のRISC型CPUと、
請求項2記載のコンパイラによって生成されたオブジェクトプログラムが記憶されるプログラムメモリとを備えたことを特徴とするマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007207930A JP2007287186A (ja) | 2007-08-09 | 2007-08-09 | Risc型cpu,コンパイラ及びマイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007207930A JP2007287186A (ja) | 2007-08-09 | 2007-08-09 | Risc型cpu,コンパイラ及びマイクロコンピュータ |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002374527A Division JP2004206389A (ja) | 2002-12-25 | 2002-12-25 | Risc型cpu,コンパイラ,マイクロコンピュータ及び補助演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007287186A true JP2007287186A (ja) | 2007-11-01 |
Family
ID=38758835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007207930A Pending JP2007287186A (ja) | 2007-08-09 | 2007-08-09 | Risc型cpu,コンパイラ及びマイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007287186A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2529114A (en) * | 2014-02-12 | 2016-02-10 | Imagination Tech Ltd | Processors with support for compact branch instructions & methods |
JP2020137878A (ja) * | 2019-02-28 | 2020-09-03 | 株式会社ソフイア | 遊技機 |
JP2020192213A (ja) * | 2019-05-30 | 2020-12-03 | 株式会社ソフイア | 遊技機 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04127237A (ja) * | 1990-09-18 | 1992-04-28 | Nec Corp | 遅延分岐命令の制御方式 |
JPH06131180A (ja) * | 1992-10-15 | 1994-05-13 | Oki Electric Ind Co Ltd | 命令処理方式および命令処理装置 |
JPH07248923A (ja) * | 1994-03-11 | 1995-09-26 | Toshiba Corp | コンパイラ |
JPH08339299A (ja) * | 1995-04-12 | 1996-12-24 | Matsushita Electric Ind Co Ltd | パイプライン・プロセッサ |
JPH1049370A (ja) * | 1996-08-01 | 1998-02-20 | Mitsubishi Electric Corp | 遅延命令を有するマイクロプロセッサ |
-
2007
- 2007-08-09 JP JP2007207930A patent/JP2007287186A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04127237A (ja) * | 1990-09-18 | 1992-04-28 | Nec Corp | 遅延分岐命令の制御方式 |
JPH06131180A (ja) * | 1992-10-15 | 1994-05-13 | Oki Electric Ind Co Ltd | 命令処理方式および命令処理装置 |
JPH07248923A (ja) * | 1994-03-11 | 1995-09-26 | Toshiba Corp | コンパイラ |
JPH08339299A (ja) * | 1995-04-12 | 1996-12-24 | Matsushita Electric Ind Co Ltd | パイプライン・プロセッサ |
JPH1049370A (ja) * | 1996-08-01 | 1998-02-20 | Mitsubishi Electric Corp | 遅延命令を有するマイクロプロセッサ |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2529114A (en) * | 2014-02-12 | 2016-02-10 | Imagination Tech Ltd | Processors with support for compact branch instructions & methods |
GB2529114B (en) * | 2014-02-12 | 2016-08-03 | Imagination Tech Ltd | Processors with support for compact branch instructions & methods |
GB2538401A (en) * | 2014-02-12 | 2016-11-16 | Imagination Tech Ltd | Processors with support for compact branch instructions & methods |
GB2538401B (en) * | 2014-02-12 | 2017-04-19 | Imagination Tech Ltd | Compilation targeting multiple processor architectures some of which support generating exceptions for forbidden instructions in branch delay slots |
JP2020137878A (ja) * | 2019-02-28 | 2020-09-03 | 株式会社ソフイア | 遊技機 |
JP2020192213A (ja) * | 2019-05-30 | 2020-12-03 | 株式会社ソフイア | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
KR100208889B1 (ko) | 병렬처리장치 및 병렬처리방법 | |
US9652241B2 (en) | Data processing apparatus with instruction encodings to enable near and far memory access modes | |
JP2834837B2 (ja) | プログラマブルコントローラ | |
JP3745039B2 (ja) | 遅延命令を有するマイクロプロセッサ | |
JPH09212358A (ja) | データ処理装置及びマイクロプロセッサ | |
JP2004054585A (ja) | データ処理装置 | |
JPH0810428B2 (ja) | データ処理装置 | |
JPS62197830A (ja) | デ−タ処理システム | |
US20080104370A1 (en) | RISC type of CPU and compiler to produce object program executed by the same | |
JPH0215331A (ja) | データ処理装置 | |
JP2006313561A (ja) | データ処理装置 | |
JPS645330B2 (ja) | ||
JP2007287186A (ja) | Risc型cpu,コンパイラ及びマイクロコンピュータ | |
JP2007317230A (ja) | Risc型cpu,コンパイラ及びマイクロコンピュータ | |
JP2007317231A (ja) | Risc型cpu,コンパイラ,マイクロコンピュータ及び補助演算装置 | |
JPH02105937A (ja) | データ処理装置 | |
EP0573071A2 (en) | A microprocessor | |
JP2636821B2 (ja) | 並列処理装置 | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP2005353105A (ja) | データ処理装置及びマイクロコンピュータ | |
JP2785820B2 (ja) | 並列処理装置 | |
JP2001297002A (ja) | データ処理装置 | |
JP2927281B2 (ja) | 並列処理装置 | |
JP4702004B2 (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100629 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101026 |