JP3715505B2 - 特定用途向け演算命令を有する計算機およびその計算機の計算方法 - Google Patents
特定用途向け演算命令を有する計算機およびその計算機の計算方法 Download PDFInfo
- Publication number
- JP3715505B2 JP3715505B2 JP2000094476A JP2000094476A JP3715505B2 JP 3715505 B2 JP3715505 B2 JP 3715505B2 JP 2000094476 A JP2000094476 A JP 2000094476A JP 2000094476 A JP2000094476 A JP 2000094476A JP 3715505 B2 JP3715505 B2 JP 3715505B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- interrupt
- control unit
- exception
- detection flag
- 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
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、特定用途に特化した演算機能を持つ命令を有する計算機およびその計算機の計算方法に関し、特にその特定用途に特化した演算命令の実行中に発生した演算例外による割り込み発生の制御に関する。
【0002】
特定分野のアプリケーションでは、その用途に特化した特殊な演算処理が存在することがある。その場合、演算処理を効率よくおこなうため、特定用途に特化した演算機能を持つ命令(以下、特定用途演算命令とする)を搭載した計算機が使用される。このような計算機において、特定用途演算命令を実行した際にオーバーフローなどの演算例外が発生する場合があるため、このような演算例外がプログラム上のどこで発生したかを検出する必要がある。
【0003】
【従来の技術】
従来、プログラム順序を保証して演算例外を検出するため、ある演算命令において例外による制御依存が発生するか否かの判定がおこなわれる。そして、その演算命令が例外による制御依存を有する場合には、その演算命令の実行が完了した後に後続の命令の実行が開始される。一方、例外による制御依存のない演算命令の場合には、すぐに後続の命令の実行が開始される。
【0004】
図3は、特定用途演算命令を搭載した従来の計算機の構成を示すブロック図である。この計算機は、チップ内外のメモリやバスやキャッシュ回路を有するメモリ101、命令読出制御部121とプログラム・カウンタ122と命令語レジスタ123を有する命令読出部102、復帰命令アドレスレジスタ131と割込発生前動作レジスタ132と動作レジスタ133と汎用レジスタ134を有するレジスタ制御部103、通常の割込制御部141を有する割込制御部104、および命令実行部105を備えている。
【0005】
命令実行部105は、命令デコード部151、ロード・ストア命令実行部152、演算命令実行部153、特定用途演算命令実行部154、分岐・割込復帰命令制御部156、スコアボード157、ロード・ストア命令発行制御部158、演算命令発行制御部159、分岐・割込復帰命令発行制御部160および特定用途演算命令発行制御部162を備えている。
【0006】
図3に示す構成の計算機において、特定用途演算命令の演算例外による割り込みは以下のようにしておこなわれる。特定用途演算命令発行制御部162は、特定用途演算命令の実行開始前に、スコアボード157のフラグの情報と、命令デコード部151から供給された特定用途演算命令とに基づいて制御依存の有無を判定する。その判定結果に基づいて、特定用途演算命令発行制御部162は特定用途演算命令実行部154に、特定用途演算命令が実行可能であるか否かを通知する。
【0007】
特定用途演算命令実行部154は、特定用途演算命令が実行可能であれば、ただちにその命令を実行する。特定用途演算命令が実行不可能であれば、特定用途演算命令実行部154は、特定用途演算命令発行制御部162から実行可能の通知を受け取るまで待機する。各命令実行部152,153,154は、命令実行時に演算例外を検出すると、割込制御部104に割り込み発生を通知し、割り込みを発生させる。
【0008】
図4は、特定用途演算命令を搭載した従来の計算機の他の構成を示すブロック図である。この計算機は、図3に示す構成の計算機に、条件コード・レジスタ171を追加した構成となっている。条件コード・レジスタ171は、演算命令実行部153または特定用途演算命令実行部154からそれぞれの演算命令実行後に通知される条件コードを保持する。また、図4に示す構成の計算機では、その条件コード・レジスタ71に保持されている値と命令フィールドにより示される値とに基づいて例外を発生させるか否かを決定するトラップ命令が設けられている。
【0009】
演算命令実行部153および特定用途演算命令実行部154は、命令実行完了後、条件コード・レジスタ171に命令実行結果に対応する値をセットする。分岐・割込復帰命令制御部156は、命令デコード部151からトラップ命令が供給されると、条件コード・レジスタ171に保持されている値と命令フィールドにより示される値とに基づいて、割り込みを発生させるか否かの決定をおこなう。割り込みを発生させる場合には、分岐・割込復帰命令制御部156は割込制御部104に、割り込みを発生させることを通知する。
【0010】
図4に示す構成の計算機において、特定用途演算命令の演算例外による割り込みは以下のようにしておこなわれる。特定用途演算命令発行制御部162は、特定用途演算命令の実行開始前に、スコアボード157のフラグの情報と、命令デコード部151から供給された特定用途演算命令とに基づいて制御依存の有無を判定する。その判定結果に基づいて、特定用途演算命令発行制御部162は特定用途演算命令実行部154に、特定用途演算命令が実行可能であるか否かを通知する。
【0011】
特定用途演算命令実行部154は、特定用途演算命令が実行可能であれば、ただちにその命令を実行する。特定用途演算命令が実行不可能であれば、特定用途演算命令実行部154は、特定用途演算命令発行制御部162から実行可能の通知を受け取るまで待機する。特定用途演算命令実行部154は、命令を実行した場合、その実行完了後、条件コード・レジスタ171に命令実行結果に対応する値をセットする。
【0012】
分岐・割込復帰命令制御部156は、トラップ命令実行時に条件コード・レジスタ171の値と命令フィールドの値とに基づいて割り込みを発生させるか否かを判定する。割り込みを発生させる場合、分岐・割込復帰命令制御部156は、割込制御部104に割り込み発生を通知し、割り込みを発生させる。
【0013】
【発明が解決しようとする課題】
しかしながら、上述した従来の計算機では、特定用途演算命令に対して例外による制御依存が発生するか否かを調べる必要があるため、特定用途演算命令発行制御回路が各特定用途演算命令実行部ごとに必要である。そのため、特定用途演算命令の数が多くなると回路規模が増大するという問題点があった。
【0014】
本発明は、上記問題点に鑑みてなされたものであって、特定用途演算命令を有する計算機において、特定用途演算命令の数が多くても回路規模の増大を最小限に抑えることができる計算機を提供することを目的とする。また、本発明の他の目的は、回路規模の増大を抑えつつ特定用途演算命令の数を増やすことができる計算機を提供することである。
【0015】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる計算機は、演算例外検出フラグとフラグ制御部を有する。特定用途演算命令実行部は、特定用途演算命令の実行時に演算例外を検出したときに演算例外検出フラグを有効状態に設定するようになっている。フラグ制御部は、割り込みを発生させるトラップ命令の実行時に、演算例外検出フラグが有効状態に設定されていれば、特定用途演算命令の演算例外による割り込みが発生することを割込制御部に通知するようになっている。
【0016】
この発明によれば、演算例外検出フラグは、特定用途演算命令実行部が特定用途演算命令実行時に演算例外を検出すると、有効状態に設定される。特定用途演算命令の演算例外があるか否かの確認が必要な場合には、トラップ命令が実行される。その際、演算例外検出フラグが有効状態に設定されていれば、フラグ制御部から割込制御部に、割り込みが発生することが通知される。それによって割り込みが発生する。
【0017】
つぎの発明にかかる計算機は、演算例外検出フラグと条件コード・レジスタとフラグ制御部を有する構成となっていてもよい。この構成では、フラグ制御部は、演算例外検出フラグに保持されている値に基づいて条件コード・レジスタの設定をおこなうようになっている。分岐・割込復帰命令制御部は、条件コード・レジスタに保持されている値と命令フィールドにより示される値とに基づいて、割り込みを発生させるトラップ命令の実行時に割り込みが発生するか否かの決定をおこなうようになっている。
【0018】
この発明によれば、演算例外検出フラグは、特定用途演算命令実行部が特定用途演算命令実行時に演算例外を検出すると、有効状態に設定される。条件コード・レジスタは、フラグ制御部により、演算例外検出フラグの値に基づいて設定される。特定用途演算命令の演算例外があるか否かの確認が必要な場合には、トラップ命令が実行される。その際、分岐・割込復帰命令制御部により、命令フィールドの値と条件コード・レジスタの値とに基づいて割り込みが発生するか否かが決定される。割り込みが発生する場合、分岐・割込復帰命令制御部から割込制御部に、割り込みが発生することが通知される。それによって割り込みが発生する。
【0019】
【発明の実施の形態】
以下に、本発明にかかる特定用途向け演算命令を有する計算機およびその計算機の計算方法の実施の形態について図面を参照しつつ詳細に説明する。
【0020】
(実施の形態1)
図1は、実施の形態1の計算機の構成を示すブロック図である。この計算機は、メモリ1、命令読出部2、レジスタ制御部3、割込制御部4および命令実行部5を備えている。メモリ1は、外部メモリ、チップ内部に存在するメモリ回路、メモリアクセスのためのバスおよびその制御回路、キャッシュ回路などを含む。
【0021】
命令読出部2は、メモリ1から読み出した命令語を命令実行部5へ供給する。命令読出部2は命令読出制御部21、プログラム・カウンタ22および命令語レジスタ23を備えている。前記レジスタ制御部3は、命令読出部2、割込制御部4および命令実行部5からの読み書きの制御をおこなう。レジスタ制御部3は復帰命令アドレスレジスタ31、割込発生前動作レジスタ32、動作レジスタ33および汎用レジスタ34を備えている。前記割込制御部4は割り込み発生通知に基づいて割り込みを発生する。割込制御部4は通常の割込制御部41を備えている。
【0022】
前記命令実行部5は、命令読出部2から供給された命令を実行する。命令実行部5は命令デコード部51、ロード・ストア命令実行部52、演算命令実行部53、特定用途演算命令実行部54およびフラグ制御部55を備えている。また、命令実行部5は分岐・割込復帰命令制御部56、スコアボード57、ロード・ストア命令発行制御部58、演算命令発行制御部59、分岐・割込復帰命令発行制御部60および演算例外検出フラグ61を備えている。
【0023】
命令読出部2の各部について説明する。前記プログラム・カウンタ22は、読み出した命令語のアドレスを示す。前記命令語レジスタ23は、読み出した命令語を保持し、それを命令実行部5に供給する。前記命令読出制御部21は、プログラム・カウンタ22が示す命令語をメモリ1から読み出し、それを命令語レジスタ23に書き込む。また、命令読出制御部21は、次命令を示すためにプログラム・カウンタ22をインクリメントする。
【0024】
ただし、命令読出制御部21は、命令実行部5から分岐先アドレスが供給された場合、その分岐先アドレスの値をプログラム・カウンタ22に書き込む。あるいは、割込制御部4から割り込みまたは例外に対応する分岐先アドレスが供給された場合、命令読出制御部21はその分岐先アドレスの値をプログラム・カウンタ22に書き込む。なお、命令読出制御部21は、命令語を読み出す際に割り込みを検出した場合には、割込制御部4に割り込みを検出したことを通知する。
【0025】
つぎに、命令実行部5の各部について説明する。前記命令デコード部51は、命令読出部2より供給された命令を解析する。供給された命令がロード命令またはストア命令である場合、命令デコード部51はそのロード命令またはストア命令をロード・ストア命令実行部52とロード・ストア命令発行制御部58に供給する。演算命令の場合には、命令デコード部51はその演算命令を演算命令実行部53と演算命令発行制御部59に供給する。
【0026】
また、命令デコード部51は、特定用途演算命令が供給された場合、その特定用途演算命令を特定用途演算命令実行部54に供給する。演算例外検出フラグに対する無効化、読み出しまたは書き込みの命令の場合には、命令デコード部51はその命令をフラグ制御部55に供給する。分岐命令または割込復帰命令の場合には、命令デコード部51はその分岐命令または割込命令の実行に必要な情報を分岐・割込復帰命令制御部56と分岐・割込復帰命令発行制御部60に供給する。
【0027】
前記ロード・ストア命令実行部52は、命令デコード部51からロード命令が供給されると、ロード・ストア命令発行制御部58からその命令が有効または無効であるという情報を受け取る。ロード命令が有効である場合、ロード・ストア命令実行部52は、汎用レジスタ34から読み出した値に基づいて実効アドレスを求める。そして、ロード・ストア命令実行部52は、メモリ1の、その実効アドレスに対応する領域を読み出し、その結果を汎用レジスタ34に書き込む。
【0028】
また、ロード・ストア命令実行部52は、命令デコード部51からストア命令が供給されると、汎用レジスタ34から読み出した値に基づいて実効アドレスを求める。そして、ロード・ストア命令実行部52は、汎用レジスタ34を読み出し、その結果を、メモリ1の、求めた実効アドレスに対応する領域に書き込む。
【0029】
また、ロード・ストア命令実行部52は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。なお、ロード・ストア命令実行部52は、命令を実行する際に割り込みを検出した場合には、割り込みを検出したことを割込制御部4に通知する。
【0030】
前記演算命令実行部53は、命令デコード部51から演算命令が供給されると、演算命令発行制御部59からその命令が有効または無効であるという情報を受け取る。その演算命令が有効である場合、演算命令実行部53は、汎用レジスタ34から読み出した値に基づいて演算をおこない、その結果を汎用レジスタ34に書き込む。
【0031】
また、演算命令実行部53は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。なお、演算命令実行部53は、命令を実行する際に割り込みを検出した場合には、割り込みを検出したことを割込制御部4に通知する。
【0032】
前記特定用途演算命令実行部54は特定用途演算命令の実行部である。特定用途演算命令実行部54は、命令デコード部51から特定用途演算命令が供給されると、その命令を開始する前に、スコアボード57に対して命令実行時に使用するレジスタおよび演算器のフラグを使用中状態にする。そして、特定用途演算命令実行部54は、汎用レジスタ34から読み出した値に基づいて特定用途演算をおこない、その結果を汎用レジスタ34に書き込む。
【0033】
また、特定用途演算命令実行部54は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。また、特定用途演算命令実行部54は、特定用途演算の実行時に演算例外を検出した際に、演算例外検出フラグ61を有効状態にする。なお、特定用途演算命令実行部54は、命令を実行する際に割り込みを検出した場合には、割り込みを検出したことを割込制御部4に通知する。
【0034】
前記フラグ制御部55は、演算例外検出フラグ61の制御をおこなう。フラグ制御部55は、命令デコード部51から演算例外検出フラグ無効化命令が供給されると、演算例外検出フラグ61を無効状態にする。また、フラグ制御部55は、命令デコード部51から演算例外検出フラグ読み出し命令を受け取ると、演算例外検出フラグ61の値を読み出す。また、フラグ制御部55は、命令デコード部51から演算例外検出フラグ書き込み命令を受け取ると、演算例外検出フラグ61に値を書きこむ。
【0035】
さらに、フラグ制御部55は、演算例外検出フラグ61が有効状態に設定されているときに、割り込みを発生させるトラップ命令を実行する。フラグ制御部55は、トラップ命令実行時に演算例外検出フラグ61の値を読み出す。フラグ制御部55は、特定用途演算命令の演算例外による割り込みが発生する際に、割込制御部4に割り込みの発生を通知する。
【0036】
前記分岐・割込復帰命令制御部56は、その他の命令を実行する。分岐・割込復帰命令制御部56は、命令デコード部51から分岐命令が供給されると、分岐・割込復帰命令発行制御部60からその命令が有効または無効であるという情報を受け取る。分岐命令が有効である場合、分岐・割込復帰命令制御部56は分岐先アドレスを命令読出部2に供給する。
【0037】
分岐・割込復帰命令制御部56は、命令デコード部51から割込復帰命令が供給されると、割込発生前動作レジスタ32の値を動作レジスタ33に書き込む。また、分岐・割込復帰命令制御部56は、復帰命令アドレスレジスタ31を読み出し、その結果を分岐先アドレスとして命令読出部2に供給する。また、分岐・割込復帰命令制御部56は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。
【0038】
前記スコアボード57は、各レジスタ番号が使用中か否かを示すフラグ、および複数サイクルの占有を必要とする演算器が使用中か否かを示すフラグを保持するレジスタである。これらのフラグが未使用状態であれば、命令の実行が可能であることを意味する。また、フラグが使用中状態であれば、命令の実行が不可能であり、既に実行中の命令が完了するのを待つ必要があることを意味する。
【0039】
前記ロード・ストア命令発行制御部58は、命令デコード部51からロード命令またはストア命令を受け取ると、スコアボード57の各フラグを読み取る。その結果に基づいて、ロード・ストア命令発行制御部58は命令実行可能か否かをロード・ストア命令実行部52に通知するとともに、スコアボード57の、命令実行時に必要となるレジスタおよび演算器のフラグを使用中状態にする。
【0040】
前記演算命令発行制御部59は、命令デコード部51から演算命令を受け取ると、スコアボード57の各フラグを読み取る。その結果に基づいて、演算命令発行制御部59は命令実行可能か否かを演算命令実行部53に通知するとともに、スコアボード57の、命令実行時に必要となるレジスタおよび演算器のフラグを使用中状態にする。
【0041】
前記分岐・割込復帰命令発行制御部60は、命令デコード部51から分岐命令または割込復帰命令を受け取ると、スコアボード57の各フラグを読み取る。その結果に基づいて、分岐・割込復帰命令発行制御部60は命令実行可能か否かを分岐・割込復帰命令制御部56に通知するとともに、スコアボード57の、命令実行時に必要となるレジスタおよび演算器のフラグを使用中状態にする。
【0042】
前記演算例外検出フラグ61は、特定用途演算命令を実行時の演算例外の有無を示すフラグである。演算例外検出フラグ61は、特定用途演算命令の演算例外が未検出である場合には、無効状態となる。一方、特定用途演算命令の演算例外が検出済みである場合には、演算例外検出フラグ61は有効状態となる。
【0043】
つぎに、レジスタ制御部3の各部について説明する。前記復帰命令アドレスレジスタ31は、割り込みから復帰する命令アドレスを保持するレジスタである。前記割込発生前動作レジスタ32は、割り込み発生前のプロセッサの動作状態を保持するレジスタである。復帰命令アドレスレジスタ31および割込発生前動作レジスタ32は割り込み発生時に設定される。前記動作レジスタ33は、プロセッサの動作状態を保持するレジスタである。
【0044】
割込制御部4において、通常の割込制御部41は、命令読出部2または命令実行部5から受け取った割り込み通知に基づいて、復帰命令アドレスレジスタ31に、割り込みから復帰する命令アドレスを書き込む。また、通常の割込制御部41は、割込発生前動作レジスタ32に、割り込み発生前のプロセッサの動作状態を書き込む。また、通常の割込制御部41は、動作レジスタ33に、発生した割り込みに対応するプロセッサの動作状態を書き込む。また、通常の割込制御部41は、命令読出部2に、発生した割り込みに対応する分岐先アドレスを供給する。
【0045】
つぎに、実施の形態1の計算機において、特定用途演算命令の演算例外による割り込みは以下のようにしておこなわれる。特定用途演算命令実行部54は、特定用途演算命令実行時に演算例外を検出すると、演算例外検出フラグ61を有効状態にする。特定用途演算命令の演算例外があるか否かの確認が必要な場合には、トラップ命令が実行される。フラグ制御部55は、トラップ命令実行時に演算例外検出フラグ61を参照する。その結果、演算例外検出フラグ61が有効状態に設定されている場合には、フラグ制御部55は、割込制御部4に割り込みが発生することを通知し、割り込みを発生させる。なお、実施の形態1の計算機において、その他の動作は従来通りであるため、説明を省略する。
【0046】
実施の形態1によれば、特定用途演算命令実行時に演算例外が検出されると、演算例外検出フラグ61が有効状態に設定される。特定用途演算命令の演算例外があるか否かの確認が必要な場合、トラップ命令が実行され、その際、演算例外検出フラグ61が有効状態に設定されていれば、割り込みが発生する。したがって、従来のように、個々の特定用途演算命令に対して、それぞれの特定用途演算命令の演算例外による制御依存が発生する可能性があるか否かを確認するための特定用途演算命令発行制御回路を設ける必要がないので、特定用途演算命令の数が多くても回路規模の増大を最小限に抑えることができる。また、回路規模の増大を抑えつつ特定用途演算命令の数を増やすことができる。
【0047】
また、実施の形態1によれば、特定用途演算命令実行時に演算例外が検出されたことによって、演算例外検出フラグ61が有効状態に設定されても、トラップ命令が実行されない限り、逐一、特定用途演算命令の演算例外による制御依存が発生する可能性があるか否かを確認する必要がないので、従来よりも処理速度が向上するという効果が得られる。
【0048】
(実施の形態2)
図2は、実施の形態2の計算機の構成を示すブロック図である。実施の形態2の計算機が実施の形態1と異なるのは、命令実行部5に代えて命令実行部7を有していることである。命令実行部7は条件コード・レジスタ71を有する。実施の形態2では、その条件コード・レジスタ71に保持されている値と命令フィールドにより示される値とに基づいて例外を発生させるか否かを決定するトラップ命令が設けられている。
【0049】
また、命令実行部7は、演算命令実行部53、特定用途演算命令実行部54、フラグ制御部55および分岐・割込復帰命令制御部56に代えて、それぞれ演算命令実行部73、特定用途演算命令実行部74、フラグ制御部75および分岐・割込復帰命令制御部76を有する。その他の構成は実施の形態1と同じであるため実施の形態1と同一の符号を付して説明を省略し、異なる構成についてのみ以下に説明する。
【0050】
条件コード・レジスタ71は、演算命令実行後に演算命令実行部73から通知される条件コードを保持する。また、条件コード・レジスタ71は、条件コード・レジスタ設定命令実行時にフラグ制御部75から通知される条件コードを保持する。
【0051】
前記演算命令実行部73は、命令デコード部51から演算命令が供給されると、演算命令発行制御部59からその命令が有効または無効であるという情報を受け取る。その演算命令が有効である場合、演算命令実行部73は、汎用レジスタ34から読み出した値に基づいて演算をおこない、その結果を汎用レジスタ34に書き込む。
【0052】
また、演算命令実行部73は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。また、演算命令実行部73は、命令実行完了後、条件コード・レジスタ71に命令実行結果に対応する値を設定する。
【0053】
前記特定用途演算命令実行部74は特定用途演算命令の実行部である。特定用途演算命令実行部74は、命令デコード部51から特定用途演算命令が供給されると、命令実行可能ならばその命令を開始する前に、スコアボード57に対して命令実行時に使用するレジスタおよび演算器のフラグをセットする。そして、特定用途演算命令実行部74は、汎用レジスタ34から読み出した値に基づいて特定用途演算をおこない、その結果を汎用レジスタ34に書き込む。
【0054】
また、特定用途演算命令実行部74は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。また、特定用途演算命令実行部74は、特定用途演算の実行時に演算例外を検出した際に、演算例外検出フラグ61を有効状態にする。なお、特定用途演算命令実行部74は、命令を実行する際に割り込みを検出した場合には、割り込みを検出したことを割込制御部4に通知する。
【0055】
前記フラグ制御部75は、演算例外検出フラグ61の制御をおこなう。フラグ制御部75は、命令デコード部51から演算例外検出フラグ無効化命令が供給されると、演算例外検出フラグ61を無効状態にする。また、フラグ制御部75は、命令デコード部51から演算例外検出フラグ読み出し命令を受け取ると、演算例外検出フラグ61の値を読み出す。
【0056】
また、フラグ制御部75は、命令デコード部51から演算例外検出フラグ書き込み命令を受け取ると、演算例外検出フラグ61に値を書きこむ。さらに、フラグ制御部75は、命令デコード部51から条件コード・レジスタ設定命令が供給されると、演算例外検出フラグ61から通知される値に基づいて条件コード・レジスタ71に条件コードを通知する。
【0057】
前記分岐・割込復帰命令制御部76は、その他の命令を実行する。分岐・割込復帰命令制御部76は、命令デコード部51から分岐命令が供給されると、分岐・割込復帰命令発行制御部60からその命令が有効または無効であるという情報を受け取る。分岐命令が有効である場合、分岐・割込復帰命令制御部76は分岐先アドレスを命令読出部2に供給する。
【0058】
分岐・割込復帰命令制御部76は、命令デコード部51から割込復帰命令が供給されると、割込発生前動作レジスタ32の値を動作レジスタ33に書き込む。また、分岐・割込復帰命令制御部76は、復帰命令アドレスレジスタ31を読み出し、その結果を分岐先アドレスとして命令読出部2に供給する。
【0059】
また、分岐・割込復帰命令制御部76は、命令デコード部51からトラップ命令が供給されると、条件コード・レジスタ71に保持されている値と命令フィールドにより示される値とに基づいて、割り込みを発生させるか否かの決定をおこなう。割り込みを発生させる場合には、分岐・割込復帰命令制御部76は割込制御部4に、割り込みを発生させることを通知する。また、分岐・割込復帰命令制御部76は、命令実行完了後、スコアボード57に対して、命令実行完了に伴って使用可能となるレジスタおよび演算器のフラグを未使用状態にする。
【0060】
つぎに、実施の形態2の計算機において、特定用途演算命令の演算例外による割り込みは以下のようにしておこなわれる。特定用途演算命令実行部74は、特定用途演算命令実行時に演算例外を検出すると、演算例外検出フラグ61を有効状態にする。フラグ制御部75は、条件コード・レジスタ設定命令を実行する際に、演算例外検出フラグ61の値に基づいて条件コード・レジスタ71を設定する。
【0061】
特定用途演算命令の演算例外があるか否かの確認が必要な場合には、トラップ命令が実行される。分岐・割込復帰命令制御部76は、トラップ命令実行時に条件コード・レジスタ71の値を参照し、命令フィールドの値と条件コード・レジスタ71の値とに基づいて割り込みが発生するか否かを決定する。割り込みが発生する場合には、分岐・割込復帰命令制御部76は、割込制御部4に割り込み発生を通知し、割り込みを発生させる。なお、実施の形態2の計算機において、その他の動作は従来通りであるため、説明を省略する。
【0062】
実施の形態2によれば、特定用途演算命令実行時に演算例外が検出されると、演算例外検出フラグ61が有効状態に設定される。その演算例外検出フラグの値に基づいて条件コード・レジスタが設定される。特定用途演算命令の演算例外があるか否かの確認が必要な場合、トラップ命令が実行され、その際、命令フィールドの値と条件コード・レジスタの値とに基づいて割り込みが発生する。したがって、従来のように、個々の特定用途演算命令ごとに特定用途演算命令発行制御回路を設ける必要がないので、特定用途演算命令の数が多くても回路規模の増大を最小限に抑えることができる。また、回路規模の増大を抑えつつ特定用途演算命令の数を増やすことができる。
【0063】
ここで、上述した実施の形態1または実施の形態2の各計算機は、特に限定しないが、たとえばコンピュータに接続されるプリンタの画像処理をおこなうための計算機に適用される。また、JPEGやMPEGなどの画像データの圧縮や再生などをおこなうための計算機に適用される。
【0064】
以上において本発明は、上述した各実施の形態に限らず、種々設計変更可能であることはいうまでもない。
【0065】
(付記1) 特定用途に特化した演算機能を持つ命令を有する計算機であって、
演算例外を検出したことを示す演算例外検出フラグと、
特定用途に特化した演算機能を持つ命令の実行時に演算例外を検出すると前記演算例外検出フラグを有効状態に設定する特定用途演算命令実行部と、
割り込みを発生させるトラップ命令の実行時に、前記演算例外検出フラグが有効状態に設定されている場合、割込制御部に、特定用途演算命令の演算例外による割り込みが発生することを通知するフラグ制御部と、
割り込みが発生することの通知を受け取ると、割り込み発生に関する制御をおこなう割込制御部と、
を具備することを特徴とする計算機。
【0066】
(付記2) 特定用途に特化した演算機能を持つ命令を有する計算機であって、
演算例外を検出したことを示す演算例外検出フラグと、
前記演算例外検出フラグに保持されている値に基づいて設定される条件コード・レジスタと、
特定用途に特化した演算機能を持つ命令の実行時に演算例外を検出すると前記演算例外検出フラグを有効状態に設定する特定用途演算命令実行部と、
前記演算例外検出フラグに保持されている値に基づいて条件コード・レジスタの設定をおこなうフラグ制御部と、
割り込みを発生させるトラップ命令の実行時に、前記条件コード・レジスタに保持されている値と命令フィールドにより示される値とに基づいて割り込みが発生するか否かを決定し、割り込みが発生する場合に、割込制御部に、特定用途演算命令の演算例外による割り込みが発生することを通知する分岐・割込復帰命令制御部と、
割り込みが発生することの通知を受け取ると、割り込み発生に関する制御をおこなう割込制御部と、
を具備することを特徴とする計算機。
【0067】
(付記3) 前記フラグ制御部は、演算例外検出フラグ無効化命令を受け取ると、前記演算例外検出フラグを無効化することを特徴とする付記1または2に記載の計算機。
【0068】
(付記4) 前記フラグ制御部は、演算例外検出フラグ読み出し命令を受け取ると、前記演算例外検出フラグの値を読み出すことを特徴とする付記1〜3のいずれか一つに記載の計算機。
【0069】
(付記5) 前記フラグ制御部は、演算例外検出フラグ書き込み命令を受け取ると、前記演算例外検出フラグに値を書き込むことを特徴とする付記1〜4のいずれか一つに記載の計算機。
【0070】
(付記6) 特定用途に特化した演算機能を持つ命令として、画像処理に特化した演算機能を持つ命令を有することを特徴とする付記1〜5のいずれか一つに記載の計算機。
【0071】
(付記7) 特定用途に特化した演算機能を持つ命令を有する計算機の計算方法であって、
特定用途に特化した演算機能を持つ命令の実行時に演算例外を検出すると、演算例外を検出したことを示す演算例外検出フラグを有効状態に設定する第1の工程と、
割り込みを発生させるトラップ命令の実行時に、前記演算例外検出フラグが有効状態に設定されている場合、特定用途演算命令の演算例外による割り込みが発生することを通知する第2の工程と、
割り込みが発生することの通知を受け取ると、割り込み発生に関する制御をおこなう第3の工程と、
を含んだことを特徴とする計算機の計算方法。
【0072】
【発明の効果】
本発明によれば、特定用途演算命令実行時に演算例外が検出されると、演算例外検出フラグが有効状態に設定され、その状態で、特定用途演算命令の演算例外の有無を確認するトラップ命令が実行されると割り込みが発生する。したがって、従来のように、個々の特定用途演算命令に対して、それぞれの特定用途演算命令の演算例外による制御依存が発生する可能性があるか否かを確認するための特定用途演算命令発行制御回路を設ける必要がないので、特定用途演算命令の数が多くても回路規模の増大を最小限に抑えることができる。また、回路規模の増大を抑えつつ特定用途演算命令の数を増やすことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1にかかる計算機の構成を示すブロック図である。
【図2】本発明の実施の形態2にかかる計算機の構成を示すブロック図である。
【図3】従来の計算機の構成を示すブロック図である。
【図4】従来の計算機の他の構成を示すブロック図である。
【符号の説明】
41 割込制御部
54,74 特定用途演算命令実行部
55,75 フラグ制御部
61 演算例外検出フラグ
71 条件コード・レジスタ
76 分岐・割込復帰命令制御部
Claims (2)
- 特定用途に特化した演算機能を持つ命令を有する計算機であって、
演算例外を検出したことを示す演算例外検出フラグと、
前記演算例外検出フラグに保持されている値に基づいて設定される条件コード・レジスタと、
特定用途に特化した演算機能を持つ命令の実行時に演算例外を検出すると前記演算例外検出フラグを有効状態に設定する特定用途演算命令実行部と、
前記演算例外検出フラグに保持されている値に基づいて条件コード・レジスタの設定をおこなうフラグ制御部と、
割り込みを発生させるトラップ命令の実行時に、前記条件コード・レジスタに保持されている値と命令フィールドにより示される値とに基づいて割り込みが発生するか否かを決定し、割り込みが発生する場合に、割込制御部に、特定用途演算命令の演算例外による割り込みが発生することを通知する分岐・割込復帰命令制御部と、
割り込みが発生することの通知を受け取ると、割り込み発生に関する制御をおこなう割込制御部と、
を具備することを特徴とする計算機。 - 特定用途に特化した演算機能を持つ命令を有する計算機の計算方法であって、
前記計算機が
演算例外を検出したことを示す演算例外検出フラグと、
前記演算例外検出フラグに保持されている値に基づいて設定される条件コード・レジスタと、
を具備し、
特定用途に特化した演算機能を持つ命令の実行時に演算例外を検出すると前記演算例外検出フラグを有効状態に設定する第1の工程と、
前記演算例外検出フラグに保持されている値に基づいて条件コード・レジスタの設定をおこなう第2の工程と、
割り込みを発生させるトラップ命令の実行時に、前記条件コード・レジスタに保持されている値と命令フィールドにより示される値とに基づいて割り込みが発生するか否かを決定し、割り込みが発生する場合に、特定用途演算命令の演算例外による割り込みが発生することを通知する第3の工程と、
割り込みが発生することの通知を受け取ると、割り込み発生に関する制御をおこなう第4の工程と、
を含んだことを特徴とする計算機の計算方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000094476A JP3715505B2 (ja) | 2000-03-30 | 2000-03-30 | 特定用途向け演算命令を有する計算機およびその計算機の計算方法 |
US09/741,802 US7376820B2 (en) | 2000-03-16 | 2000-12-22 | Information processing unit, and exception processing method for specific application-purpose operation instruction |
KR1020010003129A KR100781949B1 (ko) | 2000-03-16 | 2001-01-19 | 정보 처리 유닛 및 특정 애플리케이션용 연산 명령에 대한 예외 처리 방법 |
EP09167859A EP2144157A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
EP01300603A EP1134655A3 (en) | 2000-03-16 | 2001-01-24 | Information processing unit, and exception processing method for application-specific instruction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000094476A JP3715505B2 (ja) | 2000-03-30 | 2000-03-30 | 特定用途向け演算命令を有する計算機およびその計算機の計算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001282534A JP2001282534A (ja) | 2001-10-12 |
JP3715505B2 true JP3715505B2 (ja) | 2005-11-09 |
Family
ID=18609521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000094476A Expired - Fee Related JP3715505B2 (ja) | 2000-03-16 | 2000-03-30 | 特定用途向け演算命令を有する計算機およびその計算機の計算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3715505B2 (ja) |
-
2000
- 2000-03-30 JP JP2000094476A patent/JP3715505B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001282534A (ja) | 2001-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4703718B2 (ja) | 選択的サブルーチンリターン構造 | |
EP1324190A2 (en) | Data processing system having a read-modify-write unit | |
JPS593642A (ja) | 制御レジスタ処理方式 | |
JP3715505B2 (ja) | 特定用途向け演算命令を有する計算機およびその計算機の計算方法 | |
JP5215655B2 (ja) | データ処理装置及びデータ処理装置におけるバスアクセス制御方法 | |
JP2009230479A (ja) | マイクロプロセッサ | |
JP2008140124A (ja) | データ処理装置 | |
JPH056281A (ja) | 情報処理装置 | |
JP2894438B2 (ja) | パイプライン処理装置 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP2004234420A (ja) | 割り込み制御方式及び割り込み制御方法 | |
JP4543505B2 (ja) | マイクロコンピュータの制御方法及び異常監視装置 | |
JP3130798B2 (ja) | バス転送装置 | |
JP2006236234A (ja) | 割込み処理回路 | |
JP2574918B2 (ja) | 割り込み復帰処理方式 | |
JPS59172044A (ja) | 命令制御方式 | |
JP3344432B2 (ja) | 情報処理装置 | |
JP2901573B2 (ja) | スーパースカラー方式の情報処理装置 | |
JP3057732B2 (ja) | 情報処理装置 | |
JPH07225681A (ja) | 割込制御装置 | |
JP3616588B2 (ja) | マイクロプログラムチェックシステム | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
JPH06139084A (ja) | 情報処理装置 | |
JPS62151936A (ja) | マイクロプロセツサに内蔵されるキヤツシユ回路 | |
JPH04290130A (ja) | プロセッサのエラー管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050722 |
|
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: 20050823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050825 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080902 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090902 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100902 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110902 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120902 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130902 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |