JPH1173331A - プロセッサおよびコンテキストの退避または復帰の方法 - Google Patents

プロセッサおよびコンテキストの退避または復帰の方法

Info

Publication number
JPH1173331A
JPH1173331A JP23435697A JP23435697A JPH1173331A JP H1173331 A JPH1173331 A JP H1173331A JP 23435697 A JP23435697 A JP 23435697A JP 23435697 A JP23435697 A JP 23435697A JP H1173331 A JPH1173331 A JP H1173331A
Authority
JP
Japan
Prior art keywords
constant
register
instruction
stored
decoding
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
Application number
JP23435697A
Other languages
English (en)
Inventor
Tetsuya Tanaka
哲也 田中
Shuichi Takayama
秀一 高山
Nobuo Higaki
信生 桧垣
Takehito Heiji
岳人 瓶子
Masato Suzuki
正人 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP23435697A priority Critical patent/JPH1173331A/ja
Priority to US09/097,214 priority patent/US6219779B1/en
Priority to TW087109488A priority patent/TW393623B/zh
Priority to EP98304702A priority patent/EP0897147A3/en
Priority to IL12490598A priority patent/IL124905A/en
Priority to KR1019980022513A priority patent/KR100618247B1/ko
Priority to MYPI98002691A priority patent/MY126508A/en
Priority to SG1998001440A priority patent/SG66480A1/en
Priority to CNB981172768A priority patent/CN1269052C/zh
Publication of JPH1173331A publication Critical patent/JPH1173331A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

(57)【要約】 【課題】 定数を複数に分割し、複数の命令でレジスタ
に順次蓄積する定数蓄積専用のレジスタ(定数レジスタ)
を設けると、定数レジスタがコンテキストになるため、
時分割多重マルチタスクシステムでは定数レジスタの退
避と復帰に要する時間だけコンテキスト処理の時間を増
加させる。 【解決手段】 定数レジスタの内容を退避するとき、定
数レジスタに定数が格納されていると判断された場合
は、定数レジスタの退避を行い、定数レジスタに定数が
格納されてないと判断された場合は、退避を行わない。
また、定数レジスタの内容を復帰するとき、退避の時点
で定数レジスタに定数が格納されていたと判断された場
合は、定数レジスタへの復帰を行い、退避の時点で定数
レジスタに定数が格納されていなかったと判断された場
合は、復帰を行わない。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プロセッサおよび
コンテキストの退避または復帰の方法に関し、特に複数
のタスクの時分割多重実行時のコンテキストスイッチ時
のレジスタの退避および復帰の処理時間減少を図る技術
に関する。
【0002】
【従来の技術】近年のマイクロプロセッサ応用製品の高
機能化及び高速化に伴い、コード効率の高いプログラム
を実行することができるマイクロプロセッサ(以下、単
に「プロセッサ」という。)が望まれている。つまり、
プログラムを構成する各命令中に冗長な情報が含まれな
いこと望ましい。
【0003】ところが、特に、RISC(Reduced Inst
ruction Set Computer)の如く固定長命令の場合には、
命令中に含まれる定数の大きさが制限され、命令長より
も長い定数を配置することができない。このような問題
を解決するため従来の技術では命令に含むことのできな
い定数を使う場合、定数を複数に分割することでそれぞ
れの大きさを命令中に含むことのできる大きさにし、複
数の命令で汎用レジスタに順次格納し、定数を使用する
代わりに汎用レジスタを使用している。しかし、この技
術には次の問題がある。すなわち、汎用レジスタに格納
する命令の中には、汎用レジスタを指定する情報が必要
なため、命令中に含むことのできる定数が大きくできな
い。また、一旦汎用レジスタに格納してから使用するた
め、命令のステップ数が多くなる。また、汎用レジスタ
を使うので汎用レジスタの少ないシステムでは汎用レジ
スタ数が少なくなる。
【0004】このような問題を回避するさらなる従来技
術として、特願平9−159049に開示されている。
ここでは出願人は、その定数を内部の一つの定数レジス
タに蓄積していき、他の命令でその定数レジスタを指定
することにより蓄積した定数をその命令のオペランドと
して用いる、というプロセッサを提案している。出願人
はまた、定数をオペランドとして持つ命令に、次の機能
を持たせている。すなわち、定数レジスタが有効な場合
(分割された定数がそれまでの命令で部分的に格納され
ている場合)は定数レジスタと命令中の定数との両方を
用いて定数を復元し、演算に使用し、定数レジスタが有
効でない場合(定数が分割されてない場合)は命令中の
定数のみを演算に用いる手段を持たせたプロセッサを提
案している。
【0005】一方、複数のタスクを時分割多重で切替え
て実行するプロセッサにおいては、タスクの実行を一定
時間毎に切替える。あるタスクから別のタスクへ切替え
るのは、タスク実行中にシステムに制御を移し、タスク
の実行に必要な情報(以下、コンテキスト)をメモリな
どの退避領域に退避し、他のタスクのコンテキストを復
帰してやってタスクを切替えることで実現される。この
処理はコンテキストスイッチと呼ばれる。コンテキスト
には実行中の状態が復活できるようにデータやアドレス
を保持するレジスタや制御/状態レジスタが含まれる。
【0006】
【発明が解決しようとする課題】しかしながら、上記の
タスクを時分割多重で実行するプロセッサにおいて、定
数レジスタの値は実行状態を形成する要素の一つである
ためコンテキストに含まれ、退避・復帰の対象となる。
退避・復帰は一般的にメモリを退避領域として行われる
ためメモリアクセスが生じる。メモリアクセスは一般に
遅延が大きく退避・復帰の量と回数が増えることでコン
テキストスイッチの処理時間の増大する。従来のプロセ
ッサのように定数レジスタを用いず定数レジスタの退避
・復帰の生じない場合と比較すると定数レジスタの分だ
け退避・復帰の回数が多くなるためコンテキストスイッ
チの処理時間が多くなり、性能が劣化するという課題を
有している。
【0007】そこで、本発明はかかる問題点に鑑みてな
されたものであり、定数レジスタを有する場合のコンテ
キストスイッチの処理時間を可能な限り短縮することを
目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に本発明のプロセッサは、複数の命令を格納する記憶装
置から命令を読出す命令読出し手段と、定数を格納する
ための定数レジスタと、前記命令読出し手段により読出
された命令を解読する解読手段と、前記定数レジスタに
定数が格納されていないか既に格納されているかを判断
する判断手段と、前記解読手段により解読された命令が
命令中に前記定数が置かれている命令である場合に、前
記判断手段により前記定数レジスタに定数が格納されて
いないことが判断されると前記定数を所定位置に格納
し、前記判断手段により前記定数レジスタに定数が既に
格納されていることが判断されると前記定数レジスタに
既に格納されている定数を残したまま新たな定数を前記
定数レジスタに格納する格納手段と、前記定数レジスタ
に格納されている全ての定数を読み出し、その定数をオ
ペランドとするオペレーションを実行する実行手段と、
前記解読手段により解読された命令が前記定数レジスタ
の内容を所定の記憶領域に転送する転送命令である場合
に、前記判断手段により前記定数レジスタに定数が格納
されていないことが判断されると前記転送命令に係る前
記転送を無効化する転送無効化手段とを備えることを特
徴とする。
【0009】これによって、定数レジスタに定数が格納
されていないときは定数レジスタの所定の記憶領域への
転送は行われない。また本発明のプロセッサは、複数の
命令を格納する記憶装置から命令を読出す命令読出し手
段と、定数を格納するための定数レジスタと、前記命令
読出し手段により読出された命令を解読する解読手段
と、前記定数レジスタに定数が格納されていないか既に
格納されているかを判断する判断手段と、前記解読手段
により解読された命令が命令中に前記定数が置かれてい
る命令である場合に、前記判断手段により前記定数レジ
スタに定数が格納されていないことが判断されると前記
定数を所定位置に格納し、前記判断手段により前記定数
レジスタに定数が既に格納されていることが判断される
と前記定数レジスタに既に格納されている定数を残した
まま新たな定数を前記定数レジスタに格納する格納手段
と、前記定数レジスタに格納されている全ての定数を読
み出し、その定数をオペランドとするオペレーションを
実行する実行手段と、前記解読手段により解読された命
令が所定の記憶領域の内容を前記定数レジスタに転送す
る転送命令である場合に、予め前記所定の記憶領域に転
送された情報に基づいて前記定数レジスタに定数が格納
されていなかったことが判断されると前記転送命令に係
る前記転送を無効化する転送無効化手段とを備えること
を特徴とする。
【0010】これによって、定数レジスタに定数が格納
されていなかったときは定数レジスタの所定の記憶領域
からの転送は行われない。ここで前記情報は、前記転送
命令の解読より前に解読された、前記定数レジスタの内
容を前記所定の記憶領域に転送する第2の転送命令によ
って、前記第2の転送命令の解読時の前記判断手段にお
ける前記判断の結果を前記所定の記憶領域に転送した情
報であるとしてもよい。
【0011】また本発明のプロセッサは、複数の命令を
格納する記憶装置から命令を読出す命令読出し手段と、
データを格納するためのレジスタと、前記命令読出し手
段により読出された命令を解読する解読手段と、前記レ
ジスタに有効なデータが格納されているか否かを判断す
る判断手段と、前記解読手段により解読された命令が前
記レジスタの内容を所定の記憶領域に転送する第1の転
送命令である場合に、前記判断手段により前記レジスタ
に有効なデータが格納されていないことが判断されると
前記第1の転送命令に係る前記転送を無効化し、前記解
読手段により解読された命令が前記所定の記憶領域の内
容を前記レジスタに転送する第2の転送命令である場合
に、予め前記所定の記憶領域に転送された情報に基づい
て前記レジスタに有効なデータが格納されていなかった
ことが判断されると前記第2の転送命令に係る前記転送
を無効化する転送無効化手段とを備えることを特徴とす
る。
【0012】これによって、レジスタに有効なデータが
格納されていないときはレジスタの所定の記憶領域への
転送は行われないし、レジスタに有効なデータが格納さ
れていなかったときはレジスタの所定の記憶領域からの
転送も行われない。また本発明のプロセッサは、複数の
命令を格納する記憶装置から命令を読出す命令読出し手
段と、データを格納するための第1と第2のレジスタ
と、前記命令読出し手段により読出された命令を解読す
る解読手段と、前記解読手段により解読された命令が前
記第1のレジスタの内容を所定の記憶領域に転送する第
1の転送命令である場合に、前記第1のレジスタの内容
と前記第2のレジスタの内容との両方を前記所定の記憶
領域に転送し、前記解読手段により解読された命令が前
記所定の記憶領域の内容を前記第1のレジスタに転送す
る第2の転送命令である場合に、前記第1のレジスタと
前記第2のレジスタとの両方に対して前記所定の記憶領
域の内容を転送する転送手段とを備えることを特徴とす
る。
【0013】これによって、第1のレジスタを扱う第1
の転送命令で第2のレジスタの転送も行われる。また本
発明のプロセッサは、複数の命令を格納する記憶装置か
ら命令を読出す命令読出し手段と、データを格納するた
めの第1と第2のレジスタと、前記命令読出し手段によ
り読出された命令を解読する解読手段と、前記第2のレ
ジスタに有効なデータが格納されているか否かを判断す
る判断手段と、前記解読手段により解読された命令が前
記第1のレジスタの内容を所定の記憶領域に転送する第
1の転送命令である場合に、前記判断手段により前記第
2のレジスタに有効なデータが格納されていないことが
判断されると、前記第1のレジスタの内容のみを前記所
定の記憶領域に転送し、前記判断手段により前記第2の
レジスタに有効なデータが格納されていることが判断さ
れると、前記第1のレジスタの内容と前記第2のレジス
タの内容との両方を前記所定の記憶領域に転送し、前記
解読手段により解読された命令が前記所定の記憶領域の
内容を前記第1のレジスタに転送する第2の転送命令で
ある場合に、予め前記所定の記憶領域に転送された情報
に基づいて前記第2のレジスタに有効なデータが格納さ
れていなかったことが判断されると、前記第1のレジス
タのみに対して前記所定の記憶領域の内容を転送し、前
記情報に基づいて前記第2のレジスタに有効なデータが
格納されていたことが判断されると、前記第1のレジス
タと前記第2のレジスタとの両方に対して前記所定の記
憶領域の内容を転送する転送手段とを備えることを特徴
とする。
【0014】これによって、第1のレジスタを扱う第1
の転送命令で第2のレジスタの転送も扱われるが、第2
のレジスタに有効なデータが格納されていないときまた
はいなかったときは第2のレジスタの転送は行われな
い。ここで、前記第2のレジスタは、定数を格納するた
めの定数レジスタであり、前記判断手段は、前記定数レ
ジスタに定数が格納されていないか既に格納されている
かを判断し、前記プロセッサはさらに、前記解読手段に
より解読された命令が命令中に前記定数が置かれている
命令である場合に、前記判断手段により前記定数レジス
タに定数が格納されていないことが判断されると前記定
数を所定位置に格納し、前記判断手段により前記定数レ
ジスタに定数が既に格納されていることが判断されると
前記定数レジスタに既に格納されている定数を残したま
ま新たな定数を前記定数レジスタに格納する格納手段
と、前記定数レジスタに格納されている全ての定数を読
み出し、その定数をオペランドとするオペレーションを
実行する実行手段とを備えるとしてもよい。
【0015】またここで前記情報は、前記第1の転送命
令によって、前記第1の転送命令の解読時の前記判断手
段における前記判断の結果を前記所定の記憶領域に転送
した情報であるとしてもよい。また上記の各プロセッサ
は、命令のフォーマットを指定するフォーマットコード
が置かれるフォーマットフィールドと、並列実行させる
オペレーションを指定する複数のオペレーションフィー
ルドとを含む命令を解読し実行するVLIW方式のプロ
セッサであって、前記解読手段は、前記フォーマットコ
ードを参照することにより、少なくとも1つの前記オペ
レーションフィールドに定数が置かれていることを解読
するとしてもよい。
【0016】さらに本発明のコンテキストの退避の方法
は、複数の命令を格納する記憶装置から命令を読出す命
令読出し手段と、定数を格納するための定数レジスタ
と、前記命令中に前記定数レジスタへ格納すべき定数が
置かれていることを解読する解読手段と、前記解読手段
により前記定数が置かれていると解読された場合には、
前記定数レジスタに定数が格納されていないと判断する
と前記定数を所定位置に格納し、前記定数レジスタに定
数が既に格納されていると判断すると前記定数レジスタ
に既に格納されている定数を残したまま新たな定数を前
記定数レジスタに格納する格納手段と、前記定数レジス
タに格納されている全ての定数を読み出し、その定数を
オペランドとするオペレーションを実行する実行手段と
を備えたプロセッサにおける、前記定数レジスタを含む
実行資源の退避を行うコンテキストの退避の方法であっ
て、前記定数レジスタを除く実行資源の退避を行うステ
ップと、前記判断手段により前記定数レジスタに定数が
格納されていることが判断されるときのみ、前記定数レ
ジスタの退避を行うステップとを有することを特徴とす
る。
【0017】これによって、定数レジスタに定数が格納
されていないときは定数レジスタの退避は行われない。
また本発明のコンテキストの復帰の方法は、複数の命令
を格納する記憶装置から命令を読出す命令読出し手段
と、定数を格納するための定数レジスタと、前記命令中
に前記定数レジスタへ格納すべき定数が置かれているこ
とを解読する解読手段と、前記解読手段により前記定数
が置かれていると解読された場合には、前記定数レジス
タに定数が格納されていないと判断すると前記定数を所
定位置に格納し、前記定数レジスタに定数が既に格納さ
れていると判断すると前記定数レジスタに既に格納され
ている定数を残したまま新たな定数を前記定数レジスタ
に格納する格納手段と、前記定数レジスタに格納されて
いる全ての定数を読み出し、その定数をオペランドとす
るオペレーションを実行する実行手段とを備えたプロセ
ッサにおける、前記定数レジスタを含む退避された実行
資源の復帰を行うコンテキストの復帰の方法であって、
前記定数レジスタを除く実行資源の退避を行うステップ
と、予め所定の記憶領域に転送された情報に基づいて前
記定数レジスタに定数が格納されていたことが判断され
るときのみ、前記定数レジスタの復帰を行うステップと
を有することを特徴とする。
【0018】これによって、定数レジスタに定数が格納
されていなかったときは定数レジスタの復帰は行われな
い。ここで前記情報は、退避時の前記判断手段における
前記判断の結果を前記所定の記憶領域に転送した情報で
あるとしてもよい。
【0019】
【発明の実施の形態】以下、本発明に係るプロセッサの
実施の形態について、図面を用いて詳細に説明する。ま
ず、数値の表し方を定義しておく。先頭に0bの付く数
値は2進数を表し、0xのつく数値は16進数を表すも
のとする。
【0020】次に本プロセッサの構成について説明す
る。図1は同実施形態におけるプロセッサのハードウェ
ア構成を示すブロック図である。本プロセッサは大き
く、命令レジスタ10、命令解読回路20、実行部3
0、命令フェッチ部40に分かれる。命令フェッチ部4
0は、複数の命令を格納しておく命令記憶装置と、実行
すべき命令を命令記憶装置から読み出し、命令レジスタ
10に転送する命令フェッチ回路からなる。
【0021】命令レジスタ10は、命令フェッチ部40
から送られて来た命令を保持しておく16ビットのレジ
スタである。命令解読回路20は、命令レジスタ10に
保持された命令を解読し、その解読結果に応じた制御信
号を実行部30に出力するものである。なお、上記命令
解読回路20は、基本的には1サイクルに1つの命令を
解読し、実行部30に制御信号を与える。実行部30
は、命令解読回路20での解読結果に基づいて、命令を
実行する回路ユニットであり、実行制御回路300、退
避復帰無効化回路301、汎用レジスタ310、演算器
311、オペランドアクセス回路312、定数レジスタ
320、有効ビット数レジスタ321、定数復元回路3
22、マルチプレクサ330、331、332からな
る。なお、この実行部30のうち退避復帰無効化回路3
01、定数復元回路322については、別の図面におい
てさらに詳細な構成を示している。
【0022】汎用レジスタ310は、16個の32ビッ
トレジスタR0〜R15であり、これら16個のレジス
タに格納された値は、命令解読回路20での解読結果お
よび実行制御回路300の生成した制御信号に基づい
て、演算器311やオペランドアクセス回路312に転
送され、ここで演算が施され、又は、外部メモリとの転
送が行われ、又は、ここを単に通過した後に、汎用レジ
スタ310に送られる。
【0023】定数レジスタ320は、32ビットレジス
タであり、このレジスタに格納された値は、命令解読回
路20での解読結果および実行制御回路300の生成し
た制御信号に基づいて、定数復元回路322またはオペ
ランドアクセス回路312に転送される。定数復元回路
322は、命令解読回路20での解読結果および実行制
御回路300の生成した制御信号および有効ビット数レ
ジスタ321の値に基づいて、命令レジスタ10に格納
された命令に含まれた定数と定数レジスタ320の格納
値とを用いて新たな値を生成し、演算器311やオペラ
ンドアクセス回路312に転送され、ここで演算が施さ
れ、又は、外部メモリとの転送が行われ、又は、ここを
単に通過した後に、汎用レジスタ310に送られる。た
だし、後述のsfst命令のように、単に値を蓄積する
場合は、新たな値を生成し、演算器311を単に通過し
た後、定数レジスタ320に送られる。新たな値の生成
方法についての詳細な方法は後述する。なお、命令レジ
スタ10と実行部30を接続する13ビットの定数信号
線11は、命令レジスタ10に置かれた定数を実行部3
0に転送するためのバスである。
【0024】有効ビット数レジスタ321は、分割され
た定数がどのビットまで定数レジスタ320に格納され
ているかを示しており、定数レジスタ320が新たな値
に更新されると同時に有効ビット数レジスタ321も更
新される。また、命令レジスタ10に格納された命令が
定数を使用する命令(例えば、後述するaddi命令)
が保持された場合は、実行制御回路300によって有効
ビット数レジスタ321に0b00(全ビット無効)が
格納される。有効ビット数レジスタ321の格納値と定
数レジスタ320の有効ビット数の具体的な対応を図2
に示している。
【0025】図1に戻って、実行制御部300は、命令
解読回路20での実行結果に基づいて実行部30の各構
成要素310〜332を制御する制御回路や配線の総称
であり、通常のプロセッサが備える構成要素(タイミン
グ制御、動作許可禁止制御、ステータス管理、割り込み
制御等の回路)に加え、定数レジスタ320の制御回路
を有する。
【0026】退避復帰無効化回路301は本プロセッサ
に特有の回路であり、命令解読回路20、実行制御回路
300からの指示に基づいて、命令レジスタ10に格納
された命令が定数レジスタ320の退避または復帰の命
令であり、定数レジスタ320の値が無効であること
(値が0b00)が有効ビット数レジスタ321に示さ
れている場合、オペランドアクセス回路312の制御信
号303を後で述べる「無動作」に変化させる。
【0027】演算回路311は、2個の32ビットデー
タに対して算術論理演算を行なうALUであり、実行制
御回路300の制御化で動作する。オペランドアクセス
回路312は、演算器311の出力をオペランドアドレ
スとし、マルチプレクサ332の出力をオペランドとし
て、図示されていない外部メモリとの間でオペランドの
転送を行なう回路であり、そのオペランドやオペランド
アドレスを保持するバッファを内部に有する。
【0028】退避復帰無効化回路301が出力する制御
信号303が「ロード」を示す場合、外部メモリに置か
れた1ワードがオペランドアクセス部312とマルチプ
レクサ331を経てバス333に読み出され、汎用レジ
スタ310のR0〜R15のいずれか、または、後述す
る定数レジスタ320の復帰の場合、定数レジスタ32
0に格納される。
【0029】また、制御信号303が「ストア」を示す
場合、汎用レジスタ310のR0〜R15のいずれか、
または、後述する定数レジスタ320の退避の場合、定
数レジスタ320に格納された値が、マルチプレクサ3
32で選択されオペランドアクセス部312を経て外部
メモリに書き込まれる。また、制御信号303が「無動
作」を示す場合、オペランドアクセス回路312はオペ
ランドアドレスやオペランドを無視し、外部メモリとの
転送は行われない。
【0030】次に、本プロセッサの命令について説明す
る。図3に本実施の形態で説明に使用する命令とそのフ
ォーマットを示す。図3に示すように各命令は16ビッ
トの固定長命令であり、上位3ビットがオペレーション
1(op1)のフィールドであり、sfst命令である
ことはこのフィールドを解読することで命令の種類を判
断できる。sfst命令以外の命令には、次の3ビット
にオペレーション2(op2)のフィールドがあり、こ
れらの命令はop1とop2を解読することで命令の種
類を判断できる。addi命令には、次の4ビットにレ
ジスタフィールド(Rn)があり、ディスティネーショ
ンレジスタの番号が置かれる。次のフィールドには定数
(imm6)があり、Rnに加算される6ビットの定数
が置かれる。
【0031】次に各命令の機能を説明する。 (1)sfst imm13 上記命令は定数レジスタ320の値を13ビットだけ左
シフトし、13ビット即値(imm13)を下位側に挿
入して定数レジスタ320に格納する命令である。定数
レジスタ320が無効だった場合は13ビット即値を単
に符号拡張して定数レジスタ320に格納する。(sf
stはshift−setの略) (2)addi imm6,Rn 上記命令は、定数レジスタ320の値を6ビットだけ左
シフトし、6ビット即値(imm6)を下位側に挿入し
た値と、汎用レジスタ310のRn(nは0〜15)の
値とを加算してRnに格納する命令である。定数レジス
タ320が無効だった場合は6ビット即値を単に符号拡
張して加算に用いる。また、本命令が実行されると、定
数レジスタ320は無効化される。 (3)save IMR,(Rn) 上記命令は、定数レジスタ320を外部メモリに退避す
る命令であり、アドレスは汎用レジスタ310のRnの
値を用いる。 (4)restore (Rn),IMR 上記命令は、定数レジスタ320を外部メモリから復帰
する命令であり、アドレスは汎用レジスタ310のRn
の値を用いる。
【0032】次に、定数復元回路322について説明す
る。図4は、定数復元回路322の構成を示すブロック
図である。3220は命令レジスタ10からバス11を
経て転送される13ビットの定数と定数レジスタ320
の格納値の下位19ビットとを連結する回路であり、定
数レジスタ320の方が上位側になり、全体で32ビッ
トの値になる。
【0033】同様に、3221は命令レジスタ10から
バス11を経て転送される6ビット(13ビットの下位
6ビット)の定数と定数レジスタ320の格納値の下位
26ビットとを連結する回路であり、定数レジスタ32
0の方が上位側になり、全体で32ビットの値になる。
3222は命令レジスタ10からバス11を経て転送さ
れる13ビットの定数を32ビットに符号拡張する回路
であり、3223は命令レジスタ10からバス11を経
て転送される6ビット(13ビットの下位6ビット)の
定数を32ビットに符号拡張する回路である。
【0034】3224〜3226はマルチプレクサ、3
227は次有効ビット生成回路である。図5はマルチプ
レクサ3224、3225、3226と次有効ビット数
生成回路3227の動作を定義する図であり、実行制御
回路300の制御信号305と有効ビット数レジスタ3
21の値により動作が決定される。図5中のsfstお
よびuseは命令レジスタ10に保持された命令の種類
を示しており、実行制御回路300の制御信号305に
よって示される。sfstは命令レジスタ10にsfs
t命令が保持された場合の動作であり、useはadd
i命令などの定数を使う命令が保持された場合の動作で
ある。次有効ビット数は次有効ビット数生成回路322
7の出力する値であり、次のサイクルに有効ビット数レ
ジスタ321に格納される。
【0035】次に、退避復帰無効化回路301について
説明する。図6に退避復帰無効化回路301の構成を示
す。3010は有効ビット数レジスタ321の格納値が
0x00であるれば1を出力し、それ以外であれば0を
出力する回路である。3011はAND回路、3012
はOR回路、3013、3014はAND回路3011
の出力側が論理反転入力のAND回路である。
【0036】302(a)、302(b)、302
(c)は図1の3ビット幅の制御信号302を1ビット
ずつ示したものであり、303(a)、303(b)、
303(c)は図1の3ビット幅の制御信号303を1
ビットずつ示しており、図1のオペランドアクセス回路
312に対し、それぞれ無動作、ロード、ストアを行う
よう制御する。
【0037】制御信号304は図1に示したように実行
制御回路300の出力した制御信号であり、命令レジス
タ10に保持されている命令が、save命令またはr
estore命令の場合1が出力され、それ以外の場合
0が出力される。この構成により、有効ビット数レジス
タ321の格納値が0b00で、制御信号304が1、
つまり命令レジスタ10に保持されている命令がsav
e命令かrestore命令の場合、制御信号302に
無関係に制御信号303(a)が1となり、303
(b)、303(c)が0になり、オペランドアクセス
回路312の動作が「無動作」になる。
【0038】一方、有効ビット数レジスタ321の格納
値が0b00でないか、制御信号304が0の場合は、
制御信号302がそのまま制御信号303に出力され
る。次に具体的な命令を実行した場合の本プロセッサの
動作について説明する。なお、本実施の形態ではコンテ
キストスイッチの起動は非同期の割り込みで行われると
仮定している。また、割り込みのハンドラの具体的処理
については省略し、定数レジスタの退避と復帰の動作の
み説明する。
【0039】図7に本プロセッサの動作を説明するため
のプログラムを示す。図7は32ビットの定数0x12
345678を汎用レジスタR0に加算するプログラム
を示している。以下、各命令毎に動作を説明する。な
お、本プログラム実行前は有効ビット数レジスタ321
には定数レジスタ320の無効を示す値0b00が格納
されているとする。 (1)sfst 0x0246 命令レジスタ10に上記命令が保持されると、実行制御
回路300は以下の制御を行い命令を実行する。
【0040】まず、定数復元回路322では、図5にし
たがって、命令レジスタ10に保持された命令がsfs
t命令であり、有効ビット数レジスタ321が0b00
なので、マルチプレクサ3225がAを選択し、マルチ
プレクサ3226がBを選択するので、マルチプレクサ
330へは命令レジスタ10に保持された命令の13ビ
ットの即値である0x0246を13ビットで符号拡張
した値0x00000246が出力され、有効ビット数
レジスタ321へは0b01が出力される。
【0041】マルチプレクサ330へ出力された値0x
00000246は演算器311を単に通過後、マルチ
プレクサ331を経て定数レジスタ320に送られる。
また、有効ビット数レジスタ321は0b01に更新さ
れる。なお、オペランドアクセス部312は制御信号3
02、303が「無動作」を示しているので動作しな
い。また、汎用レジスタ310も変化しない。 (2)sfst 0x1159 命令レジスタ10に上記命令が保持されると、実行回路
300は以下の制御を行い命令を実行する。まず、定数
復元回路322では、図5にしたがって、命令レジスタ
10に保持された命令がsfst命令であり、有効ビッ
ト数レジスタ321が0b01なので、マルチプレクサ
3224がAを選択し、マルチプレクサ3226がAを
選択するので、定数レジスタ320の格納値0x000
00246を13ビット左シフトし、命令レジスタ10
に保持された命令の13ビット即値0x1159を下位
13ビットに挿入した値0x0048d159をマルチ
プレクサ330に出力する。有効ビット数レジスタ32
1へは0b10が出力される。
【0042】マルチプレクサ330へ出力された値0x
0048d159は演算器311を単に通過後、マルチ
プレクサ331を経て定数レジスタ320に送られる。
また、有効ビット数レジスタ321は0b10に更新さ
れる。なお、オペランドアクセス部312は制御信号3
02、303が「無動作」を示しているので動作しな
い。また、汎用レジスタ310も変化しない。 (3)addi 0x38,R0 命令レジスタ10に上記命令が保持されると、実行回路
300は以下の制御を行い命令を実行する。
【0043】まず、定数復元回路322では、図5にし
たがって、命令レジスタ10に保持された命令がadd
i命令(useの欄が適用される)であり、有効ビット
数レジスタ321が0b10なので、マルチプレクサ3
224がBを選択し、マルチプレクサ3226がAを選
択するので、定数レジスタ320の格納値0x0048
d159を6ビット左シフトし、命令レジスタ10に保
持された命令の6ビット即値0x38を下位6ビットに
挿入した値0x12345678をマルチプレクサ33
0に出力する。有効ビット数レジスタ321へは0b0
0が出力される。
【0044】マルチプレクサ330へ出力された値0x
12345678は演算器311のAポートに入力され
る。一方、汎用レジスタ310からR0の値が読み出さ
れ、演算器311のもう一方のBポートに入力される。
演算器311は実行制御回路300の制御により、それ
ぞれの入力値を加算し、マルチプレクサ331を経て、
汎用レジスタ310のR0に送られる。また、有効ビッ
ト数レジスタ321は0b00に更新される。
【0045】なお、オペランドアクセス部312は制御
信号302、303が「無動作」を示しているので動作
しない。ここで、上記のプログラム例の途中で割り込み
が発生し、コンテキストスイッチが行われる場合の動作
について、それぞれ割り込み位置の異なる二つケースに
ついて説明する。 (ケース1)ここでは上記のプログラム例の途中のad
di命令の直前で割り込みが発生し、コンテキストスイ
ッチが行われる場合の動作を説明する。その場合、定数
レジスタ320に0x0048d159が、有効ビット
数レジスタ321に0b10(下位26ビットが有効)
が格納されている時点で割り込み処理に入ったことにな
る。
【0046】割り込み処理の中で定数レジスタ320の
退避を行う場合、save IMR,(R15)命令が
命令レジスタ10に保持され、実行される。実行回路3
00は以下の制御を行い命令を実行する。定数レジスタ
320の格納値はマルチプレクサ332を経てオペラン
ドとしてオペランドアクセス回路312に入力される。
一方、汎用レジスタ310のR15の値が演算器311
のBポートに入力され、単に通過し、オペランドアドレ
スとしてオペランドアクセス回路312に入力される。
【0047】実行制御回路300は制御信号304に退
避または復帰命令であること示す1を出力し、制御信号
302に「ストア」を出力することで退避を行おうとす
る。退避復帰無効化回路301では、有効ビット数レジ
スタ321の格納値が0b10であるので、制御信号3
02はそのまま制御信号303に出力され、オペランド
アクセス回路312は「ストア」動作、すなわち定数レ
ジスタ320の退避を行う。なお、有効ビット数レジス
タ321の内容は本プロセッサのステータスレジスタの
一部として、ステータスレジスタの退避と同時に、退避
が行われる。
【0048】また、定数レジスタ320の復帰を行う場
合、まずステータスレジスタにある有効ビット数レジス
タ321の内容0b10が復帰され、その後、rest
ore (R15),IMR命令が命令レジスタ10に
保持され、実行される。実行回路300は以下の制御を
行い命令を実行する。汎用レジスタ310のR15は演
算器311のBポートに入力され、単に通過し、オペラ
ンドアドレスとしてオペランドアクセス回路312に入
力される。
【0049】実行制御回路300は制御信号304に退
避または復帰命令であること示す1を出力し、制御信号
302に「ロード」を出力することで復帰を行おうとす
る。退避復帰無効化回路301では、有効ビット数レジ
スタ321の格納値が0b10であるので、制御信号3
02はそのまま制御信号303に出力され、オペランド
アクセス回路312は「ロード」動作が行われ、読み出
された値0x0048d159はマルチプレクサ331
を経て定数レジスタ320に送られる。すなわち定数レ
ジスタ320の復帰が行われる。 (ケース2)ここでは上記のプログラム例のaddi命
令の直後で割り込みが発生し、コンテキストスイッチが
行われる場合の動作を説明する。その場合、定数レジス
タ320に0x0048d159が、有効ビット数レジ
スタ321に0b00(全ビット無効)が格納されてい
る時点で割り込み処理に入ったことになる。
【0050】割り込み処理の中で定数レジスタ320の
退避を行う場合、save IMR,(R15)命令が
命令レジスタ10に保持され、実行される。実行回路3
00は以下の制御を行い命令を実行する。定数レジスタ
320の格納値はマルチプレクサ332を経てオペラン
ドとしてオペランドアクセス回路312に入力される。
一方、汎用レジスタ310のR15の値が演算器311
のBポートに入力され、単に通過し、オペランドアドレ
スとしてオペランドアクセス回路312に入力される。
【0051】実行制御回路300は制御信号304に退
避または復帰命令であること示す1を出力し、制御信号
302に「ストア」を出力することで退避を行おうとす
る。退避復帰無効化回路301では、有効ビット数レジ
スタ321の格納値が0b00であり、制御信号304
が1であるので、制御信号302は退避復帰無効化回路
301の中で無効化され制御信号303には「無動作」
が出力される。したがって、オペランドアクセス回路3
12は何も行わない。なお、有効ビット数レジスタ32
1の内容は本プロセッサのステータスレジスタの一部と
して、ステータスレジスタの退避と同時に、退避が行わ
れる。
【0052】また、定数レジスタ320の復帰を行う場
合、まずステータスレジスタにある有効ビット数レジス
タ321の内容0b00が復帰され、その後、rest
ore (R15),IMR命令が命令レジスタ10に
保持され、実行される。実行回路300は以下の制御を
行い命令を実行する。汎用レジスタ310のR15は演
算器311のBポートに入力され、単に通過し、オペラ
ンドアドレスとしてオペランドアクセス回路312に入
力される。
【0053】実行制御回路300は制御信号304に退
避または復帰命令であること示す1を出力し、制御信号
302に「ロード」を出力することで復帰を行おうとす
る。退避復帰無効化回路301では、有効ビット数レジ
スタ321の格納値が0b00であり、制御信号304
が1であるので、制御信号302は退避復帰無効化回路
301の中で無効化され制御信号303には「無動作」
が出力される。したがって、オペランドアクセス回路3
12は何も行わない。
【0054】したがって、ケース2の場合はオペランド
アクセスが無効化され、外部メモリとの実際の転送が行
われない。そのため、定数レジスタの分だけ退避/復帰
によるメモリアクセス回数を少なくすることができコン
テキストスイッチの処理時間を短縮できる。本実施の形
態で示したように、即値を分割して配置し、定数レジス
タ320に蓄積していく場合、ビット数の大きな定数が
少ないほど、定数レジスタ320が有効であることが少
ない。したがって、ビット数の大きな定数が少ないプロ
グラムほど本発明の効果はより大きくなる。
【0055】以上、本発明に係るプロセッサについて、
実施形態に基づいて説明したが、本発明はこれらの実施
形態に限られないことは勿論である。即ち、 (1)上記実施の形態では、16ビット固定長の命令フ
ォーマットを用い、即値として13ビット、6ビットを
用いたが、本発明はこれらのビット数に限定されるもの
ではない。さらに、汎用レジスタ310、定数レジスタ
320は32ビットのレジスタとしたが、同様に本発明
はこれらのビット数に限定されるものではない。 (2)また、上記実施の形態のプロセッサの定数レジス
タ320を1個の構成で説明したが、本発明は定数レジ
スタ320が複数個であってもよい。 (3)また、上記実施の形態のプロセッサではコンテキ
ストスイッチの退避、復帰の例を示しているが、本発明
は、コンテキストスイッチとは無関係の定数レジスタと
記憶装置との間の転送を行う場合にも適用できる。 (4)また、上記実施の形態のプロセッサでは定数レジ
スタ320に格納されている定数の有効ビット数を示す
有効ビット数レジスタ321を設けているが、有効/無
効状態を保持するレジスタであれば他の形態のレジスタ
でも同様の効果を得ることができる。 (5)また、上記実施の形態のプロセッサでは即値を使
う命令としてaddi命令を例にしたが、本発明は他の
同様の即値を使う命令であればどのような命令でもよ
い。 (6)また、上記実施の形態のプロセッサでは、sfs
t命令やaddi命令のように1つの命令で1つの操作
を定義する命令を実行しているが、1つの命令で複数の
操作を定義するいわゆるVLIW形式の命令を実行する
ようにしてもよい。
【0056】一般にVLIW形式の命令では定義される
操作の一部がノーオペレーション(NOP)となる場合
が頻出するとされるため、そのような場合を利用して分
割された定数を定数レジスタ320に順次蓄積するよう
にすれば効率が著しく向上する。本発明の思想はそのよ
うな形態のVLIW形式のプロセッサにおいても適用で
き、同様の効果を発揮するものである。 (7)また、上記実施の形態のプロセッサでは、定数レ
ジスタ320の退避・復帰命令としてそれぞれ、sav
e IMR,(Rn)命令とrestore (R
n),IMR命令とを定義しているが、他の形態の命令
であってもよい。
【0057】例えば、レジスタリスト形式のオペランド
の中で定数レジスタ320の退避・復帰を定義するもの
や、通常コンテキストに含まれる汎用レジスタ310
(Rn)のいずれかまたはステータスレジスタの退避・
復帰と抱きあわせにして定数レジスタ320の退避・復
帰を定義するものでもよい。後者は、例えばR15やス
テータスレジスタを退避・復帰すると暗黙の内に定数レ
ジスタ320も退避・復帰の対象になるという命令であ
る。
【0058】save IMR,(Rn)命令やres
tore (Rn),IMR命令といった命令では定数
レジスタ320の退避・復帰が無効化されてもそれら専
用の命令が存在するためコードサイズが増加するという
問題があったが、上記のようにすることにより、明に定
数レジスタ320の退避・復帰だけを指定する命令が不
要になりコードサイズが削減されるという特有の効果を
有する。
【0059】
【発明の効果】以上の説明から明らかなように、本発明
のプロセッサは、複数の命令を格納する記憶装置から命
令を読出す命令読出し手段と、定数を格納するための定
数レジスタと、前記命令読出し手段により読出された命
令を解読する解読手段と、前記定数レジスタに定数が格
納されていないか既に格納されているかを判断する判断
手段と、前記解読手段により解読された命令が命令中に
前記定数が置かれている命令である場合に、前記判断手
段により前記定数レジスタに定数が格納されていないこ
とが判断されると前記定数を所定位置に格納し、前記判
断手段により前記定数レジスタに定数が既に格納されて
いることが判断されると前記定数レジスタに既に格納さ
れている定数を残したまま新たな定数を前記定数レジス
タに格納する格納手段と、前記定数レジスタに格納され
ている全ての定数を読み出し、その定数をオペランドと
するオペレーションを実行する実行手段と、前記解読手
段により解読された命令が前記定数レジスタの内容を所
定の記憶領域に転送する転送命令である場合に、前記判
断手段により前記定数レジスタに定数が格納されていな
いことが判断されると前記転送命令に係る前記転送を無
効化する転送無効化手段とを備えることを特徴とする。
【0060】これによって、定数レジスタに定数が格納
されていないときは定数レジスタの所定の記憶領域への
転送は行われない。そのため定数レジスタの分だけ転送
によるメモリアクセス回数を少なくすることができ、例
えばコンテキストスイッチの退避処理時間を短縮でき
る。さらに、即値を分割して配置し、定数レジスタに蓄
積していく場合、ビット数の大きな定数が少ないほど、
定数レジスタに定数が格納されていることが少ない。し
たがって、ビット数の大きな定数が少ないプログラムほ
ど本発明の効果はより大きくなる。
【0061】また本発明のプロセッサは、複数の命令を
格納する記憶装置から命令を読出す命令読出し手段と、
定数を格納するための定数レジスタと、前記命令読出し
手段により読出された命令を解読する解読手段と、前記
定数レジスタに定数が格納されていないか既に格納され
ているかを判断する判断手段と、前記解読手段により解
読された命令が命令中に前記定数が置かれている命令で
ある場合に、前記判断手段により前記定数レジスタに定
数が格納されていないことが判断されると前記定数を所
定位置に格納し、前記判断手段により前記定数レジスタ
に定数が既に格納されていることが判断されると前記定
数レジスタに既に格納されている定数を残したまま新た
な定数を前記定数レジスタに格納する格納手段と、前記
定数レジスタに格納されている全ての定数を読み出し、
その定数をオペランドとするオペレーションを実行する
実行手段と、前記解読手段により解読された命令が所定
の記憶領域の内容を前記定数レジスタに転送する転送命
令である場合に、予め前記所定の記憶領域に転送された
情報に基づいて前記定数レジスタに定数が格納されてい
なかったことが判断されると前記転送命令に係る前記転
送を無効化する転送無効化手段とを備えることを特徴と
する。
【0062】これによって、定数レジスタに定数が格納
されていなかったときは定数レジスタの所定の記憶領域
からの転送は行われない。そのため定数レジスタの分だ
け転送によるメモリアクセス回数を少なくすることがで
き、例えばコンテキストスイッチの復帰処理時間を短縮
できる。さらに、即値を分割して配置し、定数レジスタ
に蓄積していく場合、ビット数の大きな定数が少ないほ
ど、定数レジスタに定数が格納されていることが少な
い。したがって、ビット数の大きな定数が少ないプログ
ラムほど本発明の効果はより大きくなる。
【0063】また本発明のプロセッサは、複数の命令を
格納する記憶装置から命令を読出す命令読出し手段と、
データを格納するためのレジスタと、前記命令読出し手
段により読出された命令を解読する解読手段と、前記レ
ジスタに有効なデータが格納されているか否かを判断す
る判断手段と、前記解読手段により解読された命令が前
記レジスタの内容を所定の記憶領域に転送する第1の転
送命令である場合に、前記判断手段により前記レジスタ
に有効なデータが格納されていないことが判断されると
前記第1の転送命令に係る前記転送を無効化し、前記解
読手段により解読された命令が前記所定の記憶領域の内
容を前記レジスタに転送する第2の転送命令である場合
に、予め前記所定の記憶領域に転送された情報に基づい
て前記レジスタに有効なデータが格納されていなかった
ことが判断されると前記第2の転送命令に係る前記転送
を無効化する転送無効化手段とを備えることを特徴とす
る。
【0064】これによって、レジスタに有効なデータが
格納されていないときはレジスタの所定の記憶領域への
転送は行われないし、レジスタに有効なデータが格納さ
れていなかったときはレジスタの所定の記憶領域からの
転送も行われない。そのため該レジスタの分だけ転送に
よるメモリアクセス回数を少なくすることができ、例え
ばコンテキストスイッチの退避復帰処理時間を短縮でき
る。
【0065】また本発明のプロセッサは、複数の命令を
格納する記憶装置から命令を読出す命令読出し手段と、
データを格納するための第1と第2のレジスタと、前記
命令読出し手段により読出された命令を解読する解読手
段と、前記解読手段により解読された命令が前記第1の
レジスタの内容を所定の記憶領域に転送する第1の転送
命令である場合に、前記第1のレジスタの内容と前記第
2のレジスタの内容との両方を前記所定の記憶領域に転
送し、前記解読手段により解読された命令が前記所定の
記憶領域の内容を前記第1のレジスタに転送する第2の
転送命令である場合に、前記第1のレジスタと前記第2
のレジスタとの両方に対して前記所定の記憶領域の内容
を転送する転送手段とを備えることを特徴とする。
【0066】これによって、第1のレジスタを扱う第1
の転送命令で第2のレジスタの転送も行われる。従っ
て、第2のレジスタを扱う命令を定義する必要がなくプ
ロセッサが簡単化され、同時にプログラムにおいても第
2のレジスタを扱う命令が不要になる分だけサイズが小
さくなる。また本発明のプロセッサは、複数の命令を格
納する記憶装置から命令を読出す命令読出し手段と、デ
ータを格納するための第1と第2のレジスタと、前記命
令読出し手段により読出された命令を解読する解読手段
と、前記第2のレジスタに有効なデータが格納されてい
るか否かを判断する判断手段と、前記解読手段により解
読された命令が前記第1のレジスタの内容を所定の記憶
領域に転送する第1の転送命令である場合に、前記判断
手段により前記第2のレジスタに有効なデータが格納さ
れていないことが判断されると、前記第1のレジスタの
内容のみを前記所定の記憶領域に転送し、前記判断手段
により前記第2のレジスタに有効なデータが格納されて
いることが判断されると、前記第1のレジスタの内容と
前記第2のレジスタの内容との両方を前記所定の記憶領
域に転送し、前記解読手段により解読された命令が前記
所定の記憶領域の内容を前記第1のレジスタに転送する
第2の転送命令である場合に、予め前記所定の記憶領域
に転送された情報に基づいて前記第2のレジスタに有効
なデータが格納されていなかったことが判断されると、
前記第1のレジスタのみに対して前記所定の記憶領域の
内容を転送し、前記情報に基づいて前記第2のレジスタ
に有効なデータが格納されていたことが判断されると、
前記第1のレジスタと前記第2のレジスタとの両方に対
して前記所定の記憶領域の内容を転送する転送手段とを
備えることを特徴とする。
【0067】これによって、第1のレジスタを扱う第1
の転送命令で第2のレジスタの転送も扱われるが、第2
のレジスタに有効なデータが格納されていないときまた
はいなかったときは第2のレジスタの転送は行われな
い。従って、第2のレジスタを扱う命令を定義する必要
がなくプロセッサが簡単化され、同時にプログラムにお
いても第2のレジスタを扱う命令が不要になる分だけサ
イズが小さくなる。また第2のレジスタの分だけ転送に
よるメモリアクセス回数を少なくすることができ、例え
ばコンテキストスイッチの退避復帰処理時間を短縮でき
る。
【0068】さらに本発明のコンテキストの退避の方法
は、複数の命令を格納する記憶装置から命令を読出す命
令読出し手段と、定数を格納するための定数レジスタ
と、前記命令中に前記定数レジスタへ格納すべき定数が
置かれていることを解読する解読手段と、前記解読手段
により前記定数が置かれていると解読された場合には、
前記定数レジスタに定数が格納されていないと判断する
と前記定数を所定位置に格納し、前記定数レジスタに定
数が既に格納されていると判断すると前記定数レジスタ
に既に格納されている定数を残したまま新たな定数を前
記定数レジスタに格納する格納手段と、前記定数レジス
タに格納されている全ての定数を読み出し、その定数を
オペランドとするオペレーションを実行する実行手段と
を備えたプロセッサにおける、前記定数レジスタを含む
実行資源の退避を行うコンテキストの退避の方法であっ
て、前記定数レジスタを除く実行資源の退避を行うステ
ップと、前記判断手段により前記定数レジスタに定数が
格納されていることが判断されるときのみ、前記定数レ
ジスタの退避を行うステップとを有することを特徴とす
る。
【0069】これによって、定数レジスタに定数が格納
されていないときは定数レジスタの退避は行われない。
そのため定数レジスタの分だけ退避によるメモリアクセ
ス回数を少なくすることができ、コンテキストスイッチ
の退避処理時間を短縮できる。さらに、即値を分割して
配置し、定数レジスタに蓄積していく場合、ビット数の
大きな定数が少ないほど、定数レジスタに定数が格納さ
れていることが少ない。したがって、ビット数の大きな
定数が少ないプログラムほど本発明の効果はより大きく
なる。
【0070】また本発明のコンテキストの復帰の方法
は、複数の命令を格納する記憶装置から命令を読出す命
令読出し手段と、定数を格納するための定数レジスタ
と、前記命令中に前記定数レジスタへ格納すべき定数が
置かれていることを解読する解読手段と、前記解読手段
により前記定数が置かれていると解読された場合には、
前記定数レジスタに定数が格納されていないと判断する
と前記定数を所定位置に格納し、前記定数レジスタに定
数が既に格納されていると判断すると前記定数レジスタ
に既に格納されている定数を残したまま新たな定数を前
記定数レジスタに格納する格納手段と、前記定数レジス
タに格納されている全ての定数を読み出し、その定数を
オペランドとするオペレーションを実行する実行手段と
を備えたプロセッサにおける、前記定数レジスタを含む
退避された実行資源の復帰を行うコンテキストの復帰の
方法であって、前記定数レジスタを除く実行資源の退避
を行うステップと、予め所定の記憶領域に転送された情
報に基づいて前記定数レジスタに定数が格納されていた
ことが判断されるときのみ、前記定数レジスタの復帰を
行うステップとを有することを特徴とする。
【0071】これによって、定数レジスタに定数が格納
されていなかったときは定数レジスタの復帰は行われな
い。そのため定数レジスタの分だけ復帰によるメモリア
クセス回数を少なくすることができ、コンテキストスイ
ッチの復帰処理時間を短縮できる。さらに、即値を分割
して配置し、定数レジスタに蓄積していく場合、ビット
数の大きな定数が少ないほど、定数レジスタに定数が格
納されていることが少ない。したがって、ビット数の大
きな定数が少ないプログラムほど本発明の効果はより大
きくなる。
【0072】以上のように本発明の技術の実用的価値は
大きい。
【図面の簡単な説明】
【図1】本発明の一実施の形態におけるプロセッサのハ
ードウェア構成を示すブロック図
【図2】同実施の形態におけるプロセッサの有効ビット
数レジスタ321に格納された値と、定数レジスタの有
効ビット数との対応を示した図
【図3】同実施の形態におけるプロセッサの動作説明に
用いる命令とそのフォーマットを示した図
【図4】同実施の形態におけるプロセッサの定数復元回
路322の詳細なハードウェア構成を示すブロック図
【図5】同実施の形態におけるプロセッサの定数復元回
路322の構成要素について、制御信号とその動作を定
義する図
【図6】同実施の形態におけるプロセッサの退避復帰無
効化回路301の詳細なハードウェア構成を示すブロッ
ク図
【図7】本発明の実施の形態における説明に用いるプロ
グラムを例示する図
【符号の説明】
10 命令レジスタ 20 命令解読回路 30 実行部 40 命令フェッチ部 300 実行制御回路 301 退避復帰無効化回路 302 オペランドアクセス回路の制御信号(無効化処
理前) 303 オペランドアクセス回路の制御信号(無効化処
理後) 304 退避復帰を示す制御信号 310 汎用レジスタ 311 演算器 312 オペランドアクセス回路 320 定数レジスタ 321 有効ビット数レジスタ 322 定数復元回路 330、331、332 マルチプレクサ 333 データバス 3220 定数レジスタ320を13ビット左シフト
し、命令レジスタ10に置かれた13ビット即値を下位
部に挿入する回路 3221 定数レジスタ320を6ビット左シフトし、
命令レジスタ10に置かれた6ビット即値を下位部に挿
入する回路 3222 13ビットの符号拡張回路 3223 6ビットの符号拡張回路 3224、3225、3226 マルチプレクサ 3227 次有効ビット数生成回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 瓶子 岳人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 鈴木 正人 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 定数を格納するための定数レジスタと、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記定数レジスタに定数が格納されていないか既に格納
    されているかを判断する判断手段と、 前記解読手段により解読された命令が命令中に前記定数
    が置かれている命令である場合に、 前記判断手段により前記定数レジスタに定数が格納され
    ていないことが判断されると前記定数を所定位置に格納
    し、 前記判断手段により前記定数レジスタに定数が既に格納
    されていることが判断されると前記定数レジスタに既に
    格納されている定数を残したまま新たな定数を前記定数
    レジスタに格納する格納手段と、 前記定数レジスタに格納されている全ての定数を読み出
    し、その定数をオペランドとするオペレーションを実行
    する実行手段と、 前記解読手段により解読された命令が前記定数レジスタ
    の内容を所定の記憶領域に転送する転送命令である場合
    に、 前記判断手段により前記定数レジスタに定数が格納され
    ていないことが判断されると前記転送命令に係る前記転
    送を無効化する転送無効化手段とを備えることを特徴と
    するプロセッサ。
  2. 【請求項2】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 定数を格納するための定数レジスタと、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記定数レジスタに定数が格納されていないか既に格納
    されているかを判断する判断手段と、 前記解読手段により解読された命令が命令中に前記定数
    が置かれている命令である場合に、 前記判断手段により前記定数レジスタに定数が格納され
    ていないことが判断されると前記定数を所定位置に格納
    し、 前記判断手段により前記定数レジスタに定数が既に格納
    されていることが判断されると前記定数レジスタに既に
    格納されている定数を残したまま新たな定数を前記定数
    レジスタに格納する格納手段と、 前記定数レジスタに格納されている全ての定数を読み出
    し、その定数をオペランドとするオペレーションを実行
    する実行手段と、 前記解読手段により解読された命令が所定の記憶領域の
    内容を前記定数レジスタに転送する転送命令である場合
    に、 予め前記所定の記憶領域に転送された情報に基づいて前
    記定数レジスタに定数が格納されていなかったことが判
    断されると前記転送命令に係る前記転送を無効化する転
    送無効化手段とを備えることを特徴とするプロセッサ。
  3. 【請求項3】 前記情報は、前記転送命令の解読より前
    に解読された、前記定数レジスタの内容を前記所定の記
    憶領域に転送する第2の転送命令によって、前記第2の
    転送命令の解読時の前記判断手段における前記判断の結
    果を前記所定の記憶領域に転送した情報であることを特
    徴とする請求項2記載のプロセッサ。
  4. 【請求項4】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 データを格納するためのレジスタと、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記レジスタに有効なデータが格納されているか否かを
    判断する判断手段と、 前記解読手段により解読された命令が前記レジスタの内
    容を所定の記憶領域に転送する第1の転送命令である場
    合に、 前記判断手段により前記レジスタに有効なデータが格納
    されていないことが判断されると前記第1の転送命令に
    係る前記転送を無効化し、 前記解読手段により解読された命令が前記所定の記憶領
    域の内容を前記レジスタに転送する第2の転送命令であ
    る場合に、 予め前記所定の記憶領域に転送された情報に基づいて前
    記レジスタに有効なデータが格納されていなかったこと
    が判断されると前記第2の転送命令に係る前記転送を無
    効化する転送無効化手段とを備えることを特徴とするプ
    ロセッサ。
  5. 【請求項5】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 データを格納するための第1と第2のレジスタと、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記解読手段により解読された命令が前記第1のレジス
    タの内容を所定の記憶領域に転送する第1の転送命令で
    ある場合に、前記第1のレジスタの内容と前記第2のレ
    ジスタの内容との両方を前記所定の記憶領域に転送し、
    前記解読手段により解読された命令が前記所定の記憶領
    域の内容を前記第1のレジスタに転送する第2の転送命
    令である場合に、前記第1のレジスタと前記第2のレジ
    スタとの両方に対して前記所定の記憶領域の内容を転送
    する転送手段とを備えることを特徴とするプロセッサ。
  6. 【請求項6】 複数の命令を格納する記憶装置から命令
    を読出す命令読出し手段と、 データを格納するための第1と第2のレジスタと、 前記命令読出し手段により読出された命令を解読する解
    読手段と、 前記第2のレジスタに有効なデータが格納されているか
    否かを判断する判断手段と、 前記解読手段により解読された命令が前記第1のレジス
    タの内容を所定の記憶領域に転送する第1の転送命令で
    ある場合に、 前記判断手段により前記第2のレジスタに有効なデータ
    が格納されていないことが判断されると、前記第1のレ
    ジスタの内容のみを前記所定の記憶領域に転送し、 前記判断手段により前記第2のレジスタに有効なデータ
    が格納されていることが判断されると、前記第1のレジ
    スタの内容と前記第2のレジスタの内容との両方を前記
    所定の記憶領域に転送し、 前記解読手段により解読された命令が前記所定の記憶領
    域の内容を前記第1のレジスタに転送する第2の転送命
    令である場合に、 予め前記所定の記憶領域に転送された情報に基づいて前
    記第2のレジスタに有効なデータが格納されていなかっ
    たことが判断されると、前記第1のレジスタのみに対し
    て前記所定の記憶領域の内容を転送し、 前記情報に基づいて前記第2のレジスタに有効なデータ
    が格納されていたことが判断されると、前記第1のレジ
    スタと前記第2のレジスタとの両方に対して前記所定の
    記憶領域の内容を転送する転送手段とを備えることを特
    徴とするプロセッサ。
  7. 【請求項7】 前記第2のレジスタは、定数を格納する
    ための定数レジスタであり、 前記判断手段は、前記定数レジスタに定数が格納されて
    いないか既に格納されているかを判断し、 前記プロセッサはさらに、 前記解読手段により解読された命令が命令中に前記定数
    が置かれている命令である場合に、 前記判断手段により前記定数レジスタに定数が格納され
    ていないことが判断されると前記定数を所定位置に格納
    し、 前記判断手段により前記定数レジスタに定数が既に格納
    されていることが判断されると前記定数レジスタに既に
    格納されている定数を残したまま新たな定数を前記定数
    レジスタに格納する格納手段と、 前記定数レジスタに格納されている全ての定数を読み出
    し、その定数をオペランドとするオペレーションを実行
    する実行手段とを備えることを特徴とする請求項6記載
    のプロセッサ。
  8. 【請求項8】 前記情報は、前記第1の転送命令によっ
    て、前記第1の転送命令の解読時の前記判断手段におけ
    る前記判断の結果を前記所定の記憶領域に転送した情報
    であることを特徴とする請求項4、6、7のいずれか記
    載のプロセッサ。
  9. 【請求項9】 請求項1から8のいずれか記載のプロセ
    ッサは、 命令のフォーマットを指定するフォーマットコードが置
    かれるフォーマットフィールドと、並列実行させるオペ
    レーションを指定する複数のオペレーションフィールド
    とを含む命令を解読し実行するVLIW方式のプロセッ
    サであって、 前記解読手段は、前記フォーマットコードを参照するこ
    とにより、少なくとも1つの前記オペレーションフィー
    ルドに定数が置かれていることを解読することを特徴と
    するプロセッサ。
  10. 【請求項10】 複数の命令を格納する記憶装置から命
    令を読出す命令読出し手段と、 定数を格納するための定数レジスタと、 前記命令中に前記定数レジスタへ格納すべき定数が置か
    れていることを解読する解読手段と、 前記解読手段により前記定数が置かれていると解読され
    た場合には、前記定数レジスタに定数が格納されていな
    いと判断すると前記定数を所定位置に格納し、前記定数
    レジスタに定数が既に格納されていると判断すると前記
    定数レジスタに既に格納されている定数を残したまま新
    たな定数を前記定数レジスタに格納する格納手段と、 前記定数レジスタに格納されている全ての定数を読み出
    し、その定数をオペランドとするオペレーションを実行
    する実行手段とを備えたプロセッサにおける、前記定数
    レジスタを含む実行資源の退避を行うコンテキストの退
    避の方法であって、 前記定数レジスタを除く実行資源の退避を行うステップ
    と、 前記判断手段により前記定数レジスタに定数が格納され
    ていることが判断されるときのみ、前記定数レジスタの
    退避を行うステップとを有することを特徴とするコンテ
    キストの退避の方法。
  11. 【請求項11】 複数の命令を格納する記憶装置から命
    令を読出す命令読出し手段と、 定数を格納するための定数レジスタと、 前記命令中に前記定数レジスタへ格納すべき定数が置か
    れていることを解読する解読手段と、 前記解読手段により前記定数が置かれていると解読され
    た場合には、前記定数レジスタに定数が格納されていな
    いと判断すると前記定数を所定位置に格納し、前記定数
    レジスタに定数が既に格納されていると判断すると前記
    定数レジスタに既に格納されている定数を残したまま新
    たな定数を前記定数レジスタに格納する格納手段と、 前記定数レジスタに格納されている全ての定数を読み出
    し、その定数をオペランドとするオペレーションを実行
    する実行手段とを備えたプロセッサにおける、前記定数
    レジスタを含む退避された実行資源の復帰を行うコンテ
    キストの復帰の方法であって、 前記定数レジスタを除く実行資源の退避を行うステップ
    と、 予め所定の記憶領域に転送された情報に基づいて前記定
    数レジスタに定数が格納されていたことが判断されると
    きのみ、前記定数レジスタの復帰を行うステップとを有
    することを特徴とするコンテキストの復帰の方法。
  12. 【請求項12】 前記情報は、退避時の前記判断手段に
    おける前記判断の結果を前記所定の記憶領域に転送した
    情報であることを特徴とする請求項11記載のコンテキ
    ストの復帰の方法。
JP23435697A 1997-06-16 1997-08-29 プロセッサおよびコンテキストの退避または復帰の方法 Pending JPH1173331A (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP23435697A JPH1173331A (ja) 1997-08-29 1997-08-29 プロセッサおよびコンテキストの退避または復帰の方法
US09/097,214 US6219779B1 (en) 1997-06-16 1998-06-12 Constant reconstructing processor which supports reductions in code size
TW087109488A TW393623B (en) 1997-06-16 1998-06-15 Constant reconstructing processor which supports reductions in code size
EP98304702A EP0897147A3 (en) 1997-06-16 1998-06-15 Constant reconstructing processor which supports reductions in code size
IL12490598A IL124905A (en) 1997-06-16 1998-06-15 Processor that supports code size reduction
KR1019980022513A KR100618247B1 (ko) 1997-06-16 1998-06-16 코드크기의축소화를지원하는정수복원형프로세서
MYPI98002691A MY126508A (en) 1997-06-16 1998-06-16 Constant reconstructing processor which supports reductions in code size.
SG1998001440A SG66480A1 (en) 1997-06-16 1998-06-16 Constant reconstructing processor which supports reductions in code size
CNB981172768A CN1269052C (zh) 1997-06-16 1998-06-16 支持缩小代码长度的常量还原型处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23435697A JPH1173331A (ja) 1997-08-29 1997-08-29 プロセッサおよびコンテキストの退避または復帰の方法

Publications (1)

Publication Number Publication Date
JPH1173331A true JPH1173331A (ja) 1999-03-16

Family

ID=16969729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23435697A Pending JPH1173331A (ja) 1997-06-16 1997-08-29 プロセッサおよびコンテキストの退避または復帰の方法

Country Status (1)

Country Link
JP (1) JPH1173331A (ja)

Similar Documents

Publication Publication Date Title
US6119203A (en) Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US6073215A (en) Data processing system having a data prefetch mechanism and method therefor
US4740893A (en) Method for reducing the time for switching between programs
US6745336B1 (en) System and method of operand value based processor optimization by detecting a condition of pre-determined number of bits and selectively disabling pre-determined bit-fields by clock gating
US5675758A (en) Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
JP2000222206A (ja) データ処理装置
JPH09223013A (ja) 高性能プロセッサにおける投機ロード命令の実行方法
US7343475B2 (en) Supplying halt signal to data processing unit from integer unit upon single unit format instruction in system capable of executing double unit format instruction
US5802359A (en) Mapping processor state into a millicode addressable processor state register array
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
JP3837289B2 (ja) 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US5617549A (en) System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US6115730A (en) Reloadable floating point unit
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
US5764939A (en) RISC processor having coprocessor for executing circular mask instruction
KR19990067773A (ko) 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템
US6260136B1 (en) Substitute register for use in a high speed data processor
JPH1173331A (ja) プロセッサおよびコンテキストの退避または復帰の方法
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
KR100278136B1 (ko) 데이타처리장치 및 데이타처리방법
US6922773B2 (en) System and method for encoding constant operands in a wide issue processor
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除