JP3762597B2 - 計算機とその制御方法 - Google Patents
計算機とその制御方法 Download PDFInfo
- Publication number
- JP3762597B2 JP3762597B2 JP35983799A JP35983799A JP3762597B2 JP 3762597 B2 JP3762597 B2 JP 3762597B2 JP 35983799 A JP35983799 A JP 35983799A JP 35983799 A JP35983799 A JP 35983799A JP 3762597 B2 JP3762597 B2 JP 3762597B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- data
- executed
- executing
- 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
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は、プログラムされた命令を実行する計算機とその制御方法に関するものである。
【0002】
【従来の技術】
図1は、汎用レジスタと浮動小数点レジスタとを有する従来の計算機の構成を示す図である。図1に示されるように、この計算機はメモリ1と、メモリ1に接続された命令読み出し部3と、メモリ1及び命令読み出し部3に接続された命令実行部5と、命令実行部5に接続されたレジスタ制御部7と、命令読出し部3と命令実行部5及びレジスタ制御部7に接続された割り込み制御部9とを備える。
【0003】
ここで、命令読み出し部3は命令読み出し制御部11と、プログラムカウンタ(PC)13と、命令語レジスタ(IR)15とを含む。そして、命令読み出し制御部11はメモリ1に接続され、プログラムカウンタ(PC)13は命令読み出し制御部11に接続される。さらに、命令語レジスタ(IR)15は命令読み出し制御部11に接続される。
【0004】
また、命令実行部5は命令デコード部17と、ロード命令実行部19と、ストア命令実行部21と、命令実行回路23と、浮動小数点(F)ロード命令実行部25と、浮動小数点(F)ストア命令実行部27と、浮動小数点(F)演算命令実行部29とを含む。
そして、命令デコード部17は命令語レジスタ15に接続され、ロード命令実行部19はメモリ1及び命令デコード部17に接続される。
【0005】
また、ストア命令実行部21は命令デコード部17及び後述する汎用レジスタ37に接続され、命令実行回路23は命令デコード部17と汎用レジスタ37及び後述するレジスタ31,33,35に接続される。また、浮動小数点ロード命令実行部25はメモリ1及び命令デコード部17に接続され、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29は命令デコード部17及び後述する浮動少数点レジスタ39に接続される。
【0006】
一方、レジスタ制御部7はレジスタ(EPCR)31と、レジスタ(EPSR)33と、レジスタ(PSR)35と、汎用レジスタ37と、浮動小数点レジスタ39とを含む。ここで、レジスタ(EPCR)31とレジスタ(EPSR)33及びレジスタ(PSR)35は、さらに割込制御部40に接続される。また、汎用レジスタ37はロード命令実行部19とストア命令実行部21及び命令実行回路23に接続される。また、浮動小数点レジスタ39は浮動小数点ロード命令実行部25と、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29に接続される。
【0007】
また、割り込み制御部9は割込制御回路40を含む。そして、割込制御回路40は命令読出制御部11とプログラムカウンタ13、ロード命令実行部19、ストア命令実行部21、命令実行回路23、浮動小数点ロード命令実行部25、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29などに接続される。
【0008】
上記のような構成を有する計算機において、命令読み出し部3はプログラムカウンタ13が示す命令語をメモリ1から読み出し、命令語レジスタ(IR)15を介して命令実行部15へ供給する。また命令読出制御部11は、命令実行部5あるいは割込処理を行う割込制御回路40より分岐先アドレスが供給された場合には、それをプログラムカウンタ13へ書き込む。なお命令読出制御部11は、それ以外の場合には次の命令語を命令実行部5へ供給するため、読み出すべき命令語のアドレスを示すプログラムカウンタ13をインクリメントする。また、命令語を読み出す際に割り込みを検出した場合には、割込制御回路40へ割込信号を供給する。
【0009】
また、命令デコード部17は、命令語レジスタ15から供給された命令をデコードし、ロード命令の場合にはロード命令実行部19へ、ストア命令の場合にはストア命令実行部21へ、浮動小数点ロード命令の場合には浮動小数点ロード命令実行部25へ、浮動小数点ストア命令の場合には浮動小数点ストア命令実行部27へ、浮動小数点演算命令の場合には浮動小数点演算命令実行部29へ、割込復帰命令やその他の命令の場合には命令実行回路23へそれぞれ供給する。
【0010】
また、ロード命令実行部19はロード命令が供給された場合には、図2に示されるように、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応するメモリ1の領域からデータを読み出し、その結果を汎用レジスタ37へ書き込む。ここでロード命令は、図3に示されるように、命令コードOP-CODE とレジスタを指定するコードGR1,GR2,GRD とを含む。そして、コードGR1 が示すレジスタの値とコードGR2 が示すレジスタの値を加算した結果がロード対象とするデータのアドレスを意味し、コードGRD は読み出した結果を保持するレジスタの番号を意味する。なお、ロード命令を実行する際に割込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0011】
同様に、ストア命令実行部21はストア命令が供給された場合には、図4に示されるように、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応する汎用レジスタ37の領域からデータを読み出し、その結果を実効アドレスに対応するメモリ1の領域へ書き込む。ここでストア命令は、図5に示されるように、命令コードOP-CODE とレジスタを指定するコードGR1,GR2,GRS とを含む。そして、コードGR1 が示すレジスタの値とコードGR2 が示すレジスタの値を加算した結果がストア対象とするデータのアドレスを意味し、コードGRS は書き込む値を保持するレジスタの番号を意味する。なお、ストア命令を実行する際に割込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0012】
また、浮動小数点ロード命令実行部25は、浮動小数点ロード命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応するメモリ1の領域からデータを読み出し、その結果を浮動小数点レジスタ39へ書き込む。なお、浮動小数点ロード命令を実行する際に割込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0013】
また、浮動小数点ストア命令実行部27は、浮動小数点ストア命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応する浮動小数点レジスタ39の領域からデータを読出し、その結果を実効アドレスに対応するメモリ1の領域へ書き込む。なお、浮動小数点ストア命令を実行する際に割込みを検出した場合には、割込信号を割込制御回路40へ供給する。また、浮動小数点演算命令実行部29は、浮動小数点演算命令が供給された場合には浮動小数点レジスタ39から読み出した値に基づき演算を実行し、その結果を浮動小数点レジスタ39へ書き込む。
【0014】
また、命令実行回路23は、命令デコード部17から演算命令が供給された場合には汎用レジスタ37から読出した値に基づき演算を行い、その結果を汎用レジスタ37へ書き込む。また、命令デコード部17から分岐命令が供給された場合には、分岐成立時に分岐先アドレスをプログラムカウンタ13へ供給する。同様に割込み復帰命令が供給された場合には、割込み発生前の動作状態を示すデータをPSR35へ書き込む。そしてこのとき、EPCR31から復帰先の命令のアドレスを読み出し、それを分岐先アドレスとしてプログラムカウンタ13へ供給する。なお、上記命令を実行する際に割込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0015】
また、EPCR31は割込みからの復帰先に該当する命令のアドレスを保持し、そのアドレスは割込み発生時に設定される。また、PSR35は動作状態(state )を示すデータを保持し、EPSR33は割込み発生時に設定された割込み発生前の動作状態を示すデータを保持する。
また、割込制御回路40は命令読み出し部3あるいは命令実行部5から供給された割込信号に基づいて、割り込みからの復帰先に該当する命令のアドレスをEPCR31へ、割り込み発生前の動作状態を示すデータをEPSR33へ、発生した割り込みに対応する動作状態を示すPSR35へ書き込む。また、発生した割り込みに対応する分岐先アドレスを命令読み出し部3へ供給する。
【0016】
以下に、上記計算機の動作を要約すると、初期動作状態を通常の動作としたとき次のようになる。通常の動作においては、命令読み出し部3は、プログラムカウンタ13が示す命令語を読み出し、命令実行部5へ供給し、命令実行部5は供給された命令を実行する。
一方、割り込みが発生した時には、割込制御回路40は命令読み出し部3あるいは命令実行部5から供給された割込信号に基づいて、割り込みからの復帰先に該当する命令のアドレスをEPCR31へ、割り込み発生前の動作状態を示すデータをEPSR33へ、発生した割り込みに対応する動作状態を示すPSR35へ書き込む。また、発生した割り込みに対応する分岐先アドレスを命令読み出し部3へ供給する。また、命令読み出し部3は割込制御部9から供給された分岐先アドレスに応じて命令語を読み出し、命令実行部5へ供給する。そして、以降においては上記の通常の場合と同様に動作する。
【0017】
また、割り込みから復帰する時は、命令実行部5は割込み復帰命令を実行することにより、EPSR33の値をPSR35へ書き込む。また、EPCR31に格納されたデータを読み出し、その結果を分岐先アドレスとして命令読み出し部3へ供給する。このとき命令読み出し部3は、命令実行部5から供給された分岐先アドレスに基づいて命令語を読み出し、命令実行部5へ供給する。そして、以降においては上記通常の動作がなされる。
【0018】
以上のような従来の計算機では、プログラムを構成する命令語の並列性を活用し、計算機の命令レベルでの処理能力を向上させる手法として、スーパースカラや投機的実行(speculative execution )といった、同時に複数の命令を実行する制御方式が採られている。ここで、一般にこのような計算機では、複数の命令実行部を有し、プログラムに含まれる命令を順次実行するが、1サイクルにおいて複数の命令がメモリから読み出され、また該命令相互の依存関係が考慮されつつ1サイクル中で複数の命令が発行されうる。
【0019】
また、この時命令の実行制御において、アウト・オブ・オーダー完了(out-of-order completion )を採ることで、計算機の命令レベルでの処理能力をより向上ささせることができる。ここで、「アウト・オブ・オーダー完了」とは、プログラム上における命令の順序すなわち命令の発行順序と、命令の実行順序すなわち命令の完了順序とが異なることを意味する。そして、このような実行制御を行うことにより、命令実行部の有効稼働率を高め、プログラムの全体的な実行時間の短縮が図られている。なお、アウト・オブ・オーダー完了において、プログラムが生成された時の命令の順序を保証するためには、データ依存関係や制御依存関係といった命令の依存関係が考慮されるが、これらの依存関係は命令語に記されている情報から抽出される。
【0020】
一方、メモリ1に対する操作に注目すると、メモリ1からのロード操作では、メモリ1からデータを読み出しその結果を計算機のレジスタに書き込む。そして、その後その読み出したデータに依存する一連の操作が開始される。従って、メモリ1からのロード操作をより早期に開始することにより、キャッシュミスなどによるメモリ1へのアクセスの遅延が計算機全体の動作に対して与える影響が少なくされる。
【0021】
このような理由により、プログラムを作成する際には、上記ロード操作を早期に開始すべくロード命令をプログラム上でより前に配置することが考えられる。そして、このように配置すれば、プログラム上での本来の位置より前に該ロード命令を移動させることと等価な効果が得られる。この時、メモリ1へのストア操作の前に上記ロード操作を実行する場合において、両操作対象とするデータのアドレス領域が全く重複していないときには操作順序を変更しないときと同じデータ処理がなされるが、アドレス領域の少なくとも一部が重複しているときにはデータ処理の結果が相違する。
【0022】
すなわち、本来は上記ストア操作によりメモリ1へストアされたストアデータが上記ロード操作により読み出されるところ、このロード操作がストア操作より先に実行されると該ロード操作により該ストア前の旧データが読み出されることとなり操作順序の変更に伴ってなされる処理が相違するという問題が生じる。なお、この問題は曖昧なメモリ参照として知られている。
【0023】
従って、従来においてはこのような問題を回避するため、メモリ1へのストア操作の前にメモリ1へのロード操作を実行することはできなかった。
【0024】
【発明が解決しようとする課題】
本発明は、上述の問題点を解消するためになされたものであり、曖昧なメモリ参照を回避しつつストア操作の前にロード操作を実行し動作の高速化が図られた計算機とその制御方法を提供することを目的とする。
【0025】
【課題を解決するための手段】
上記の目的は、プログラムされた命令の実行順序を変更する計算機の制御方法であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行する第一のステップと、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果をアドレスに対応するデータに上書きする第二のステップとを有し、第一のステップでは、第二の命令において実行対象とされたデータのアドレスと、第二の命令を実行することにより得られた結果を記憶する記憶手段を特定する情報とが記憶され、第一のステップにおいて記憶されたアドレスと記憶手段を特定する情報のうち少なくとも一方は、さらに第三の命令を実行することにより書き換えられる、ことを特徴とする計算機の制御方法を提供することにより達成される。このような手段によれば、命令の実行順序を変更したことによるデータ処理の乱れを是正することができる。
また、プログラムされた命令の実行順序を変更する計算機の制御方法であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行する第一のステップと、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果をアドレスに対応するデータに上書きする第二のステップと、を有し、第一のステップでは、第二の命令において実行対象とされたコンテキストの識別情報が記憶され、第二のステップでは、コンテキストの識別情報に応じて上書きを行う、ことを特徴とする計算機の制御方法を提供することにより達成される。
また、プログラムされた命令の実行順序を変更する計算機の制御方法であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行する第一のステップと、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果を、割り込み処理プログラムによりアドレスに対応するデータに上書きする第二のステップと、を有することを特徴とする計算機の制御方法を提供することにより達成される。
また、プログラムされた命令の実行順序を変更する計算機の制御方法であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行する第一のステップと、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果を、分岐命令の実行により指定された分岐先のプログラムによってアドレスに対応するデータに上書きする第二のステップと、を有することを特徴とする計算機の制御方法を提供することにより達成される。
【0026】
ここで、第一の命令を記憶手段へ第一データを記憶させるストア命令とし、
第二の命令を記憶手段からデータを読み出すロード命令とすれば、ロード命令を先に実行することによりデータ処理の高速化を図ることができる。
また、第一のステップでは、第二の命令において実行対象とされたデータのアドレスと、第二の命令を実行することにより得られた結果を記憶する記憶手段を特定する情報とが記憶され、第二のステップでは、上記アドレスと記憶手段を特定する情報とに応じて上書きを行うことができる。
【0027】
また、本発明の目的は、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行した場合に、第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、判定手段において、アドレスがアドレス領域に含まれるものと判定されたときには、保存先記憶手段に記憶された保存先において、第一の命令を実行することにより得られた結果をアドレスに対応する第二データに上書きするデータ回復手段とを備えたプログラムされた命令を実行する計算機であって、第三の命令を実行することにより、保存先記憶手段に記憶された保存先を書き換える保存先書き換え手段をさらに備えた、計算機を提供することにより達成される。
また、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行した場合に、第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、判定手段において、アドレスがアドレス領域に含まれるものと判定されたときには、保存先記憶手段に記憶された保存先において、第一の命令を実行することにより得られた結果をアドレスに対応する第二データに上書きするデータ回復手段と、を備えた前記プログラムされた命令を実行する計算機であって、第二の命令の実行対象とされたコンテキストを特定する情報を記憶するコンテキスト情報記憶手段をさらに備え、判定手段は、コンテキスト情報記憶手段に記憶された情報に基づいて第一の命令の実行対象とされるコンテキストが第二の命令の実行対象とされたコンテキストと一致すると判断される場合においてのみ活性化される、ことを特徴とする計算機を提供することにより達成される。
また、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行した場合に、第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、判定手段において、アドレスがアドレス領域に含まれるものと判定されたときには、保存先記憶手段に記憶された保存先において、第一の命令を実行することにより得られた結果をアドレスに対応する第二データに上書きするデータ回復手段と、を備えた前記プログラムされた命令を実行する計算機であって、データ回復手段は、判定手段において第一データのアドレスが第二データのアドレス領域に含まれるものと判定されたときには、割り込み処理プログラムにおいて上書きを実行する、ことを特徴とする計算機を提供することにより達成される。
また、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行した場合に、第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、判定手段において、アドレスがアドレス領域に含まれるものと判定されたときには、保存先記憶手段に記憶された保存先において、第一の命令を実行することにより得られた結果をアドレスに対応する第二データに上書きするデータ回復手段と、を備えた前記プログラムされた命令を実行する計算機であって、データ回復手段は、判定手段において第一データのアドレスが第二データのアドレス領域に含まれるものと判定されたときには、分岐命令の実行により指定された分岐先のプログラムによって上書きを実行する、ことを特徴とする計算機を提供することにより達成される。
ここで、データを記憶する記憶手段をさらに備え、第一の命令は、記憶手段へ第一データを記憶させるストア命令であり、第二の命令は、記憶手段から第二データを読み出すロード命令であるとすることができる。
【0028】
また、データを記憶する複数の記憶手段をさらに備え、保存先記憶手段は保存先として、第二の命令において実行対象とされた第二データのアドレス及び第二の命令を実行することにより得られた結果が格納される記憶手段を特定する情報を記憶するものとすることができる。
【0029】
【発明の実施の形態】
以下において、本発明の実施の形態を図面を参照して詳しく説明する。なお、図中同一符号は同一又は相当部分を示す。
本発明の実施の形態に係る計算機はプログラムされた命令を実行する計算機であるが、データ処理の高速化を図るためロード命令をストア命令より先に実行するようコンパイラによりいわゆる静的順序変更を施すと共に、該順序の変更に伴うデータ処理の乱れを事後的に是正するものである。以下において、より詳しく説明する。
[実施の形態1]
図6は、本発明の実施の形態1に係る計算機の構成を示す図である。図6に示されるように、本実施の形態に係る計算機は、図1に示された従来の計算機に対して履歴制御部51をさらに備え、命令実行部41には投機的ロード命令実行部43、干渉回復ストア命令実行部45、ロード履歴リセット部47が含まれる点で相違する。
【0030】
ここで投機的ロード命令実行部43は、入力端がデコード部42とメモリ1に接続され、出力端が汎用レジスタ37と投機的ロード操作履歴制御部51及び割込制御回路55に接続される。また、干渉回復ストア命令実行部45は、入力端がデコード部42と汎用レジスタ37及び履歴制御部51に接続され、出力端がメモリ1と汎用レジスタ37と履歴制御部51及び割込制御回路55に接続される。そして、ロード履歴リセット部47は入力端がデコード部42に接続され、出力端が履歴制御部51に接続される。
【0031】
図8は投機的ロード命令による動作を示すフローチャートである。まず上記投機的ロード命令実行部43は、デコード部42から投機的ロード命令が供給された場合に、汎用レジスタ37から読み出した値から実効アドレスを求める。そして、図8に示されるように、ステップS1において該実効アドレスに対応するメモリ1内の領域からデータを読み出し、それを汎用レジスタ37へ書き込む。次に、投機的ロード命令実行部43は、ステップS2において投機的ロード命令を実行したことを登録するための登録信号ADDを履歴制御部51へ供給し、履歴制御部51はロード操作履歴テーブルにロード操作の履歴を登録する。なお、図9に示されるように、投機的ロード命令の命令形式としては、図3に示されたロード命令の命令形式と同様な形式が採用される。また、投機的ロード命令実行部43は、上記投機的ロード命令を実行する際に割込みを検出した場合には、割込制御回路55へ割込信号を供給する。
【0032】
また、図10は干渉回復ストア命令による動作を示すフローチャートである。まず干渉回復ストア命令実行部45は、デコード部42から干渉回復ストア命令が供給された場合に、汎用レジスタ37から読み出した値から実効アドレスを求め、同時に確認信号CCを履歴制御部51へ供給する。そしてステップS1において、履歴制御部51は供給された確認信号CCに応じて、ストア操作及び投機的ロード操作履歴テーブルに登録されている投機的ロード操作の対象とされる両アドレス領域が干渉(重複)しているか否かを確認する。
【0033】
次に、ステップS2において上記干渉の有無が判断され、干渉していないと判断された場合には、ステップS3へ進み、汎用レジスタ37から読み出したデータを該実効アドレスに対応するメモリ1内の領域へ書き込む。一方、ステップS2において干渉していると判断された場合にはステップS10へ進み、ロード操作履歴テーブルを参照して上記投機的ロード操作において格納先とされたロード対象レジスタへストアデータを上書きする。この後、ステップS3へ進み、汎用レジスタ37から読み出したデータを該実効アドレスに対応するメモリ1内の領域へ書き込む。
【0034】
なお、図11に示されるように、命令の命令形式としては、図5に示されたストア命令の命令形式と同様な形式が採用される。また、干渉回復ストア命令実行部45は、上記干渉回復ストア命令を実行する際に割込みを検出した場合には、割込制御回路55へ割込信号を供給する。
また、図12は投機的ロード操作履歴無効化命令による動作を示すフローチャートである。図12に示されるように、ロード履歴リセット部47はデコード部42から投機的ロード操作履歴無効化命令が供給されたとき、履歴制御部51へリセット信号RSを供給することによって投機的ロード操作履歴テーブルの全エントリを無効化する。なお、図13に示されるように、投機的ロード操作履歴無効化命令の命令形式は命令コードOP-CODE だけからなるものとされる。
【0035】
図7は、図6に示された履歴制御部51の構成を示す図である。図7に示されるように、履歴制御部51は、アドレスレジスタ57と、データタイプレジスタ59と、レジスタ番号レジスタ61と、ストアデータレジスタ63と、デコード回路65と、比較器67〜69と、Eフィールド(E )70,74,78と、アドレスフィールド(ADDR)71,75,79と、データタイプフィールド(DT)72,76,80と、レジスタ番号フィールド(REG #)73,77,81と、オーバラップ判定部83と、オーバラップエントリ検出部85と、無効エントリ検出部87と、投機的ロード操作履歴リセット制御部89と、投機的ロード操作履歴登録制御部91と、投機的ロード操作履歴干渉確認制御部93とを含む。
【0036】
ここで、アドレスレジスタ57と、データタイプレジスタ59と、レジスタ番号レジスタ61と、ストアデータレジスタ63及びデコード回路65は命令実行部41に接続される。そして、アドレスレジスタ57は、投機的ロード命令や干渉回復ストア命令が実行される際の実効アドレスを保持する。また、データタイプレジスタ59は、投機的ロード命令や干渉回復ストア命令の実行においてロードストア対象とされるデータの型(大きさ)を示す識別値を保持する。そして、レジスタ番号レジスタ61は、投機的ロード命令や干渉回復ストア命令の実行におけるロードストア操作対象のレジスタ番号を保持する。
【0037】
また、ストアデータレジスタ63は、干渉回復ストア命令による書き込み値 (ストアデータ)を保持する。また、デコード回路65は命令実行部41から供給された信号を解析し、対応する制御部を起動する。すなわち、登録信号ADDが供給された場合には投機的ロード操作履歴登録制御部91を起動し、確認信号CCが供給された場合には投機的ロード操作履歴干渉確認制御部93を起動し、リセット信号RSが供給された場合には投機的ロード操作履歴リセット制御部89を起動する。
【0038】
一方、比較器67〜69はアドレスレジスタ57及びデータタイプレジスタ59と対応するエントリに接続される。ここで、上記投機的ロード操作履歴テーブルは並設された複数のエントリからなり、各エントリは有効性を示すEフィールド(E )70,74,78と、登録されている投機的ロード操作の実効アドレスを示すアドレスフィールド(ADDR)71,75,79と、登録されている投機的ロード操作の対象とされるデータの型を示すデータタイプフィールド(DT)72,76,80と、登録されている投機的ロード操作においてロード対象とされるレジスタの番号を示すレジスタ番号フィールド(REG #)73,77,81とを含む。なお、上記データタイプフィールド(DT)72,76,80にはデータの型に応じた識別値が記録され、該識別値は例えば符号無しバイトに対して0、符号付きバイトに対しては1、符号無しハーフワードには2、符号付きハーフワードには3、ワードには4、ダブルワードには5、クワッドワードには6とされる。
【0039】
そして、上記比較器67〜69は、Eフィールドが1である有効なエントリに対して、アドレスフィールド(ADDR)71,75,79やデータタイプフィールド(DT)72,76,80から求まるロード対象データのアドレス領域と、アドレスレジスタ57やデータタイプレジスタ59から求まるストア対象データのアドレス領域とを比較し両者が干渉(重複)しているか否かを示す信号を出力する。
【0040】
また、オーバラップ判定部83は比較器67〜69に接続され、比較器67〜69から供給された信号に応じて、投機的ロード操作履歴として登録されている投機的ロード操作の対象とされたアドレス領域と、干渉回復ストア命令によるストア操作の対象とされたアドレス領域とが干渉するか否かを判定し、干渉すると判定された場合にはオーバラップ信号OLを出力する。そして、オーバラップエントリ検出部85は、比較器67〜69に接続され、比較器67〜69から供給された信号に応じて、投機的ロード操作の対象とされ干渉しているエントリの番号を検出する。
【0041】
また、無効エントリ検出部87は、各エントリのEフィールド70,74,78の情報に応じて、先になされた投機的ロード操作における空きエントリ(無効なエントリ)の検出を行う。また、投機的ロード操作履歴リセット制御部89はデコード回路65に接続され、各エントリのEフィールド70,74,78が0の値にリセットされる。
【0042】
また、投機的ロード操作履歴登録制御部91は、アドレスレジスタ57とデータタイプレジスタ59、レジスタ番号レジスタ61、デコード回路65及び無効エントリ検出部87に接続され、供給された登録信号ADDに応じて、無効エントリ検出部87で検出された空きエントリのアドレスフィールド(ADDR)71,75,79とデータタイプフィールド(DT)72,76,80と、レジスタ番号フィールド(REG #)73,77,81とに投機的ロード操作に対応する情報を書き込む。なおこのとき、該情報を書き込んだエントリのEフィールド70,74,78には、該エントリが有効であることを示す1の値が書込まれる。
【0043】
また、投機的ロード操作履歴干渉確認制御部93はアドレスレジスタ57とデータタイプレジスタ59、レジスタ番号レジスタ61、ストアデータレジスタ63、オーバラップ判定部83、オーバラップエントリ検出部85、デコード回路65及び汎用レジスタ37に接続され、さらにレジスタ番号フィールド(REG #)73,77,81の情報が供給される。そして、投機的ロード操作履歴干渉確認制御部93は、オーバラップ判定部83において干渉していると判定された場合、先にロードされた該データが格納されているレジスタへ、ストア操作による書き込み値(ストアデータ)を書き込む。なお、上記レジスタへ実際に書き込まれる値は、ストアデータに対しデータタイプフィールド(DT)72,76,80の情報に基づいて符号拡張や零拡張といった処理を施した値とされる。
【0044】
次に、上記の計算機における動作を要約して説明する。なお、初期状態は通常動作を行う。まず、該通常の動作においては命令読み出し部3は、プログラムカウンタ(PC)13が示す命令語を読み出し、命令実行部41へ供給する。そして、命令実行部41は供給された命令を実行するが、投機的ロード命令が供給された場合には、履歴制御部51へ該ロード操作の履歴を追加的に登録する。
【0045】
一方、干渉回復ストア命令が供給された場合には、該ストア操作の対象とされるデータのアドレスが、先の投機的ロード操作の対象とされ履歴制御部51に既に登録されているデータのアドレス領域に対して干渉するものであるか否かを確認する。そして、干渉している場合には、干渉しているデータが既に格納されているレジスタへストアデータを書き込み、干渉していることによるデータの乱れを回復する。そして、通常動作においては、以上のような動作を繰り返す。
【0046】
また、割り込みが発生した場合には、命令読み出し部3又は命令実行部41から供給された割込信号に応じて、割込制御回路55は割り込みからの復帰先の命令語のアドレスをレジスタ31へ、割り込み発生前の動作状態をレジスタ33へ発生した割り込みに対応する動作状態をレジスタ35へ書き込む。また、発生した割り込みに対応する分岐先アドレスをプログラムカウンタ13へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じてメモリ1から命令語を読み出し、該命令語を命令実行部41へ供給する。そして、以降においては上記の通常の動作と同様である。
【0047】
また、割り込みから復帰する場合には、命令実行部41は割り込み復帰命令を実行することによりレジスタ33に格納された値をレジスタ35へ書き込む。また、レジスタ31に格納された値を読み出し、分岐先アドレスとして命令読み出し部3へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じて命令語をメモリ1から読み出し、命令実行部41へ供給する。そして、以降においては上記の通常の動作と同様である。
【0048】
以上より、本発明の実施の形態1に係る計算機によれば、先に実行された投機的ロード命令において操作対象とされたデータのアドレス領域と、後に実行する干渉回復ストア命令において操作対象とされるデータのアドレス領域とが干渉する場合には、該干渉するデータについてはストアデータを上書きするため、ストア操作の前にロード操作を実行する場合に曖昧なメモリ参照が回避され、正確かつ高速な動作を実現することができる。
[実施の形態2]
図14は、本発明の実施の形態2に係る計算機の構成を示す図である。図14に示されるように、本実施の形態2に係る計算機は、図6に示された実施の形態1に係る計算機と同様な構成を有するが、命令実行部41には投機的ロード操作履歴読み出し命令実行部95と、投機的ロード操作履歴書き込み命令実行部97がさらに備えられ、それに伴い履歴制御部103の構成が変更される点で相違するものである。また、命令実行部41には浮動小数点ロード命令実行部25と浮動小数点ストア命令実行部27および浮動小数点演算命令実行部29も含むため、それに伴い投機的浮動小数点ロード命令実行部99と、干渉回復浮動少数点ストア命令実行部101とがさらに備えられる点でも相違する。
【0049】
ここで、投機的ロード操作履歴読み出し命令実行部95は命令デコード部94と汎用レジスタ37及び履歴制御部103に接続され、投機的ロード操作履歴書き込み命令実行部97は汎用レジスタ37と履歴制御部103に接続される。また、投機的浮動小数点ロード命令実行部99及び干渉回復浮動少数点ストア命令実行部101は、命令デコード部94と浮動小数点ロード命令実行部25、浮動小数点レジスタ39、割込制御回路40及び履歴制御部103に接続される。
【0050】
図15は、図14に示された履歴制御部103の構成を示す図である。図15に示されるように、履歴制御部103は図7に示された履歴制御部51と同様な構成を有するが、レジスタ種別レジスタ(RTREG )105と投機的ロード操作履歴読み出し命令実行部113及び投機的ロード操作履歴書き込み命令実行部115とをさらに備え、各エントリにはレジスタの種別を示すレジスタタイプフィールド(RT)107〜109が含まれる点で相違する。
【0051】
ここで、レジスタ種別レジスタ(RTREG )105は命令実行部100に接続され、投機的ロード操作履歴読み出し命令実行部113はアドレスレジスタ57と各エントリ、デコード回路111及び命令実行部100に接続される。また、投機的ロード操作履歴書き込み命令実行部115はアドレスレジスタ57と、データタイプレジスタ59、レジスタ種別レジスタ105、レジスタ番号レジスタ61、デコード回路111及び各エントリに接続される。
【0052】
上記において、投機的ロード操作履歴読み出し命令実行部95は、命令デコード部94から投機的ロード操作履歴読み出し命令が供給されたとき履歴制御部103へ履歴読み出し信号HRを供給し、読み出した投機的ロード操作の履歴を汎用レジスタ37へ書き込む。また、投機的ロード操作履歴書き込み命令実行部97は、命令デコード部94から投機的ロード操作履歴書き込み命令が供給されたとき、汎用レジスタ37から読み出したデータを履歴書き込み信号HWと共に履歴制御部103へ供給する。
【0053】
また、履歴制御部103は、投機的ロード命令実行部43あるいは投機的浮動小数点ロード命令実行部99から供給された登録信号ADDに基づいて、投機的ロード操作履歴テーブルに投機的ロード操作を登録する。そして、干渉回復ストア命令実行部45及び干渉回復浮動少数点ストア命令実行部101から供給された確認信号CCに応じて、干渉回復ストア命令あるいは干渉回復浮動小数点ストア命令によるストア操作と、投機的ロード操作履歴テーブルに登録されている投機的ロード操作においてそれぞれ操作対象とされたアドレス領域が、相互に干渉するものであるか否かを確認する。そして、干渉している場合には、干渉回復ストア命令あるいは干渉回復浮動小数点ストア命令の実行時における書き込み値 (ストアデータ)を、先の投機的ロード操作でロード先とされ、かつ該干渉が生じているデータが格納されたレジスタへ上書きする。
【0054】
また、投機的ロード操作履歴読み出し命令実行部95から供給された履歴読み出し信号HRに応じて、投機的ロード操作履歴読み出し命令実行部113により、ロード操作履歴テーブルから投機的ロード操作の履歴を読み出し、投機的ロード操作履歴読み出し命令実行部95へ供給する。さらに、投機的ロード操作履歴書き込み命令実行部97から供給された履歴書き込み信号HWに応じて、投機的ロード操作履歴書き込み命令実行部115により、投機的ロード操作履歴書き込み命令実行部97から供給されたデータを投機的ロード操作履歴テーブルへ書き込む。
【0055】
また、図15に示されたレジスタ種別レジスタ105には、各命令すなわち投機的ロード命令、干渉回復ストア命令、投機的浮動小数点ロード命令及び干渉回復浮動小数点ストア命令を実行するに当り操作対象とするレジスタを識別する識別値が保持される。ここで、該識別値は、例えば汎用レジスタに対しては0、浮動小数点レジスタに対しては1とされる。また、上記レジスタタイプフィールド(RT)107〜109には、投機的ロード操作においてロード対象とされたレジスタの種別を示す上記設定値が保持される。
【0056】
以上より、本実施の形態2に係る計算機によれば、上記実施の形態1に係る計算機と同様な効果を奏すると共に、投機的ロード操作履歴テーブルを任意に書き換えることができるため、コンテキストの切り替えが容易であるという効果をさらに得ることができる。
また、操作対象とするレジスタの種別を示す情報も履歴として保持することにより、先行させた汎用レジスタ37に対する操作と浮動小数点レジスタ39に対する操作とを区別することができるため、双方のレジスタにおけるデータ処理において曖昧なメモリ参照が回避され、正確かつ高速な動作を実現することができる。
[実施の形態3]
図16は、本発明の実施の形態3に係る計算機の構成を示す図である。図16に示されるように、本実施の形態3に係る計算機は、図14に示された実施の形態2に係る計算機と同様な構成を有するが、命令実行部120には浮動小数点ロード命令実行部25と浮動小数点ストア命令実行部27、浮動小数点演算命令実行部29、投機的浮動小数点ロード命令実行部99及び干渉回復浮動少数点ストア命令実行部101の代わりに、コンテキスト識別番号レジスタ読み出し命令実行部(CRC )119とコンテキスト識別番号レジスタ書き込み命令実行部(CWC )121が備えられる点で相違する。
【0057】
また、レジスタ制御部123には浮動小数点レジスタ39の代わりにコンテキスト識別番号レジスタ125が備えられ、割込み制御部129にはさらにオーバーフロー例外割込み制御部131が備えられる点でも相違する。さらに、上記のような構成に伴い履歴制御部127の構成が変更されるものである。
ここで、コンテキスト識別番号レジスタ読み出し命令実行部(CRC )119およびコンテキスト識別番号レジスタ書き込み命令実行部(CWC )121は、命令デコード部117と汎用レジスタ37、履歴制御部127及びコンテキスト識別番号レジスタ125に接続される。また、コンテキスト識別番号レジスタ125は履歴制御部127に接続される。さらに、オーバーフロー例外割込み制御部131はプログラムカウンタ13とレジスタ31,33,35及び履歴制御部127に接続される。
【0058】
図17は、図16に示された履歴制御部127の構成を示す図である。図17に示されるように、履歴制御部127は図15に示された履歴制御部103と同様な構成を有するが、オーバーフロー判定部139をさらに備え、各エントリにはレジスタの種別を示すレジスタタイプフィールド(RT)107〜109の代わりにコンテキスト識別フィールド(CTXT#)135〜137が含まれる点で相違する。そして、上記オーバーフロー判定部139には各エントリのEフィールド70,74,78の値が供給される。
【0059】
ここで、コンテキスト識別番号レジスタ125は現在のコンテキストを識別する識別番号を保持する。また、コンテキスト識別番号レジスタ読み出し命令実行部(CRC )119は命令デコード部117からコンテキスト識別番号レジスタ読み出し命令が供給されると、コンテキスト識別番号レジスタ125に格納されたコンテキスト識別番号を読み出し、汎用レジスタ37へ書き込む。また、コンテキスト識別番号レジスタ書き込み命令実行部(CWC )121は命令デコード部117からコンテキスト識別番号レジスタ書き込み命令が供給されると、汎用レジスタ37から読み出したデータをコンテキスト識別番号レジスタ125へ書き込む。
【0060】
さらに、オーバーフロー例外割込み制御部131は、履歴制御部127から供給されたオーバーフロー信号OFが供給されると割り込みを発生させ、割り込みからの復帰先となるアドレスをレジスタ31へ、割り込み発生前の動作状態をレジスタ33へ、発生した割り込みに対応する動作状態をレジスタ35へそれぞれ書き込む。また、発生した割り込みに対応する分岐先アドレスをプログラムカウンタ13へ供給する。
【0061】
また、オーバーフロー判定部139は投機的ロード操作履歴テーブルに登録可能な空きエントリがないか否かを判定する。すなわち、より具体的には、例えばEフィールド70,74,78から0の値が供給されたエントリが空きであると判定される。そして、オーバーフロー判定部139は、空きエントリの有無を投機的ロード操作履歴登録制御部91へ通知すると共に、空きエントリが無い場合にはオーバーフロー信号OFをオーバーフロー例外割込み制御部131へ供給する。
【0062】
上記のような本実施の形態3に係る計算機においては、Eフィールド70,74,78が1の有効なエントリにおいて、コンテキスト識別フィールド(CTXT #)135〜137の値とコンテキスト識別番号レジスタ125から供給されたコンテキスト識別番号とが一致する場合にだけ比較器132〜134が活性化され、上記干渉の有無が判断されるため、コンテキスト毎のデータ処理において曖昧なメモリ参照が回避され、正確かつ高速な動作を実現することができる。
【0063】
また、コンテキスト識別番号レジスタ125に格納されたコンテキスト識別番号を任意に書き換えることができるため、コンテキストの切り替えが容易であるという効果をさらに得ることができる。
[実施の形態4]
図18は、本発明の実施の形態4に係る計算機の構成を示す図である。図18に示されるように、本実施の形態4に係る計算機は、図6に示された実施の形態1に係る計算機と同様な構成を有するが、命令実行部145には上記実施の形態2で説明された投機的ロード操作履歴読み出し命令実行部95が備えられ、さらにストアデータテーブル読み出し命令実行部143が備えられる点で相違する。
【0064】
また、割り込み制御部150には、干渉回復例外割込制御部149が備えられる点でも相違する。
ここで、ストアデータテーブル読み出し命令実行部143は命令デコード部141と履歴制御部147及び汎用レジスタ37に接続される。また、干渉回復例外割込制御部149はプログラムカウンタ13とレジスタ31,33,35及び履歴制御部147に接続される。
【0065】
また、上記のような構成に伴って履歴制御部147の構成も以下のように相違する。図19は、図18に示された履歴制御部147の構成を示す図である。図19に示されるように、履歴制御部147は図7に示された履歴制御部51と同様な構成を有するが、上記実施の形態2で説明された投機的ロード操作履歴読み出し命令実行部113と、ストアデータテーブル読み出し命令実行部157と、データフィールドDATA0〜DATAmがさらに備えられ、各エントリにはVフィールド151〜153及びエントリフィールド154〜156が設けられる点で相違する。
【0066】
ここで、ストアデータテーブル読み出し命令実行部157は、アドレスレジスタ57とデータフィールドDATA0〜DATAm、デコード回路65及び命令実行部41に接続される。
上記のような構成を有する計算機において、ストアデータテーブル読み出し命令実行部143は、命令デコード部141から供給されるストアデータテーブル読み出し命令に応じて、履歴制御部147へストアデータ読み出し信号SRを供給することにより後述するストアデータテーブルを読み出し、汎用レジスタ37へ書き込む。
【0067】
また、干渉回復例外割込制御部149は、履歴制御部147から供給されたオーバラップ信号OLに応じて、割り込みを発生させ割り込みからの復帰先アドレスをレジスタ31へ、割り込み発生前の動作状態をレジスタ33へ、発生した割り込みに対応する動作状態をレジスタ35へ書き込む。また、発生した割り込みに対する分岐先アドレスを命令読み出し部3へ供給する。
【0068】
そして、履歴制御部147は、ストアデータテーブル読み出し命令実行部143から供給されたストアデータ読み出し信号SRに応じて、ストアデータテーブルを読み出し、ストアデータテーブル読み出し命令実行部143へ供給する。
また、図19に示されたVフィールド151〜153のデータは、対応するエントリにおいて投機的ロード操作対象とされたアドレス領域と、干渉回復例外付きストア命令のストア操作対象とされたアドレス領域とが干渉するか否かを示す。そして、例えば0のときには干渉しないことを意味し、1のときには干渉することを意味する。
【0069】
さらに、エントリフィールド154〜156はVフィールド151〜153が1の時の干渉回復例外付きストア命令による書き込み値(ストアデータ)を保持しているストアデータテーブルのエントリ番号を示す。そして、後述する干渉回復例外の割り込み処理プログラムにおいては、このエントリフィールド154〜156を参照しつつ回復が行われる。
【0070】
また、データフィールドDATA0〜DATAmは、上記ストアデータテーブルのエントリを構成し、投機的ロード操作履歴テーブルに登録されている投機的ロード操作のアドレス領域と、干渉回復例外付きストア命令のストア操作対象とされたアドレス領域とが干渉している場合の、干渉しているストア操作の書き込み値(ストアデータ)を保持する。
【0071】
以上のような構成を有する本実施の形態4に係る計算機の動作を、以下に説明する。なお、初期状態は通常動作を行う。まず、該通常の動作においては命令読み出し部3は、プログラムカウンタ(PC)13が示す命令語を読み出し、命令実行部145へ供給する。そして、命令実行部145は供給された命令を実行するが、投機的ロード命令が供給された場合には、履歴制御部147へ該ロード操作の履歴を追加的に登録する。
【0072】
一方、干渉回復例外付きストア命令が供給された場合の動作は図20のフローチャートに示される。すなわち、図20のステップS1に示されるように、該ストア操作の対象とされるデータのアドレスが、先の投機的ロード操作の対象とされ履歴制御部147に既に登録されているデータのアドレス領域に対して干渉するものであるか否かが確認される。そして、ステップS2の判断において干渉している場合には、ステップS10へ進み、ストアテーブルへストアデータを追加的に書き込むと共に、干渉回復例外の割り込み処理プログラムを実行する。
【0073】
ここで、干渉回復例外の割り込み処理プログラムの概略が、図22のフローチャートに示される。すなわち、干渉回復例外の割り込み処理プログラムにおいては、ステップS1においてコンテキストの退避がなされ、ステップS2においてロード操作履歴テーブル及びストアデータテーブルを参照して、干渉しているロード操作におけるロード先のレジスタへストアデータを書き込む。次に、ステップS3においてコンテキストの復元がなされ、ステップS4において割り込み復帰命令の実行により干渉回復例外の割り込みからの復帰がなされる。
【0074】
一方、図20に示されたステップS2の判断において干渉していない場合には、ステップS3へ進み、汎用レジスタ37から読み出したデータをストア対象アドレス域のデータとして書き込む。また、ストアデータテーブル読み出し命令が供給された場合には、ストアデータテーブルから所定のストアデータを読み出す。そして、通常動作においては、以上のような動作を繰り返す。なお、干渉回復例外付きストア命令の命令形式は図21に示されるように、図5に示されたストア命令の命令形式と同様である。
【0075】
また、割り込みが発生した場合には、命令読み出し部3又は命令実行部145から供給された割込信号に応じて、割込制御回路40は割り込みからの復帰先の命令語のアドレスをレジスタ31へ、割り込み発生前の動作状態をレジスタ33へ、発生した割り込みに対応する動作状態をレジスタ35へ書き込む。また、発生した割り込みに対応する分岐先アドレスをプログラムカウンタ13へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じてメモリ1から命令語を読み出し、該命令語を命令実行部145へ供給する。そして、以降においては上記の通常の動作と同様である。
【0076】
また、割り込みから復帰する場合には、命令実行部145は割り込み復帰命令を実行することによりレジスタ33に格納された値をレジスタ35へ書き込む。また、レジスタ31に格納された値を読み出し、分岐先アドレスとして命令読み出し部3へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じて命令語をメモリ1から読み出し、命令実行部41へ供給する。そして、以降においては上記の通常の動作と同様である。
【0077】
以上より、本実施の形態4に係る計算機によれば、該干渉によるデータの乱れを割り込みによるデータ処理というソフト的な手段によって回復することができるため、上記実施の形態1に係る計算機と同様な効果を容易に得ることができる。
[実施の形態5]
図19に示された上記実施の形態4に係る計算機の履歴制御部147においては、Vフィールド151〜153及びエントリフィールド154〜156をデータフィールドDATA0〜DATAmに隣接するよう配置することも考えられる。
【0078】
図23は、上記のようなレイアウトを実現する実施の形態5に係る履歴制御部159の構成を示す図である。図23に示されるように、データフィールドDATAn (n は0 〜m )に隣接するようにVフィールドVn及びエントリフィールドENTnを配置することによっても、上記実施の形態4に係る計算機と同様な効果を得ることができる。
[実施の形態6]
図24は、本発明の実施の形態6に係る計算機の構成を示す図である。図24に示されるように、本実施の形態6に係る計算機は図18に示された実施の形態4に係る計算機と同様な構成を有するが、命令実行部165において干渉回復ストア命令実行部45の代わりに干渉回復分岐付きストア命令実行部161と、干渉回復分岐アドレスレジスタ書き込み命令実行部163とが備えられる点で相違する。また、レジスタ制御部169には干渉回復分岐アドレスレジスタ(BAR )167がさらに備えられる点でも相違する。
【0079】
ここで、干渉回復分岐付きストア命令実行部161は命令デコード部141と汎用レジスタ37、割込制御回路40及び履歴制御部148に接続される。また、干渉回復分岐アドレスレジスタ書き込み命令実行部163は命令デコード部141と汎用レジスタ37及び干渉回復分岐アドレスレジスタ(BAR )167に接続される。そして、干渉回復分岐アドレスレジスタ(BAR )167はさらに履歴制御部148に接続される。
【0080】
また、図25は図24に示された履歴制御部148の構成を示す図である。図25に示されるように、本実施の形態に係る履歴制御部148は図19に示された履歴制御部148と同様な構成を有するが、投機的ロード操作履歴干渉確認制御部93には干渉回復分岐アドレスレジスタ(BAR )167及びプログラムカウンタ13が接続される点で相違する。
【0081】
ここで、上記干渉回復分岐付きストア命令実行部161は命令デコード部17から干渉回復分岐付きストア命令が供給されたとき、汎用レジスタ37から読み出した値から実効アドレスを求め、汎用レジスタ37から読み出したデータをメモリ1の該実効アドレスに対応する領域へ書き込む。また、履歴制御部148へ確認信号CCを出力する。なお、命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40に供給する。
【0082】
また、干渉回復分岐アドレスレジスタ書き込み命令実行部163は、命令デコード部17から干渉回復分岐アドレスレジスタ書き込み命令が供給されたとき、汎用レジスタ37から読み出したデータを干渉回復分岐アドレスレジスタ167へ書き込む。そして、この干渉回復分岐アドレスレジスタ167には、干渉によるデータの乱れから回復する回復コードの先頭アドレスが保持される。
【0083】
次に、上記のような構成を有する計算機の動作を説明する。なお、初期状態は通常動作を行う。まず、該通常の動作においては命令読み出し部3は、プログラムカウンタ(PC)13が示す命令語を読み出し、命令実行部165へ供給する。そして、命令実行部165は供給された命令を実行するが、投機的ロード命令が供給された場合には、履歴制御部148へ該ロード操作の履歴を追加的に登録する。
【0084】
一方、干渉回復分岐付きストア命令が供給された場合の動作は図26のフローチャートに示される。すなわち、図26のステップS1に示されるように、該ストア操作の対象とされるデータのアドレスが、先の投機的ロード操作の対象とされ履歴制御部148に既に登録されているデータのアドレス領域に対して干渉するものであるか否かが確認される。そして、ステップS2の判断において干渉している場合には、ステップS10へ進み、ストアデータをストアデータテーブルに追加し、干渉回復分岐アドレスレジスタ167が示す命令アドレスへ分岐する。
【0085】
一方、ステップS2の判断において干渉していない場合には、ステップS3へ進み、汎用レジスタ37から読み出したデータをストア対象アドレス域のデータとして書き込む。そして、通常動作においては、以上のような動作を繰り返す。なお、干渉回復分岐付きストア命令の命令形式は図27に示されるように、図5に示されたストア命令の命令形式と同様である。また、ストアデータテーブル読み出し命令が供給された場合には、ストアデータテーブルからストアデータを読み出す。
【0086】
また、割り込みが発生した場合には、命令読み出し部3又は命令実行部165から供給された割込信号に応じて、割込制御回路40は割り込みからの復帰先の命令語のアドレスをレジスタ31へ、割り込み発生前の動作状態をレジスタ33へ、発生した割り込みに対応する動作状態をレジスタ35へ書き込む。また、発生した割り込みに対応する分岐先アドレスをプログラムカウンタ13へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じてメモリ1から命令語を読み出し、該命令語を命令実行部165へ供給する。そして、以降においては上記の通常の動作と同様である。
【0087】
また、割り込みから復帰する場合には、命令実行部165は割り込み復帰命令を実行することによりレジスタ33に格納された値をレジスタ35へ書き込む。また、レジスタ31に格納された値を読み出し、分岐先アドレスとして命令読み出し部3へ供給する。ここで、命令読み出し部3は供給された分岐先アドレスに応じて命令語をメモリ1から読み出し、命令実行部41へ供給する。そして、以降においては上記の通常の動作と同様である。
【0088】
以上より、本実施の形態6に係る計算機によれば、該干渉によるデータの乱れを分岐命令の実行により指定された分岐先のプログラムによって回復することができるため、簡易な構成により上記実施の形態1に係る計算機と同様な効果を得ることができる。
さらに、本実施の形態6に係る計算機においては、上記回復に際してコンテキストの退避や復元といった動作を必要としないため、データ処理速度をより高速化することができる。
【0089】
最後に、本発明の課題を解決するための手段について付記する。
(1)プログラムされた命令の実行順序を変更する計算機の制御方法であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行する第一のステップと、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果をアドレスに対応するデータに上書きする第二のステップとを有することを特徴とする計算機の制御方法。
(2)第一のステップでは、第二の命令において実行対象とされたデータのアドレスと、第二の命令を実行することにより得られた結果を記憶する記憶手段を特定する情報とが記憶され、第二のステップでは、アドレスと記憶手段を特定する情報とに応じて上書きを行う(1)に記載の計算機の制御方法。
(3)第一のステップにおいて記憶されたアドレスと記憶手段を特定する情報とは、さらに第三の命令を実行することにより消去される(2)に記載の計算機の制御方法。
(4)第一のステップにおいて記憶されたアドレスと記憶手段を特定する情報のうち少なくとも一方は、さらに第三の命令を実行することにより書き換えられる(2)に記載の計算機の制御方法。ここで、上記(3)又は(4)の手段によれば、コンテキストを自在に変更することができるため、データ処理の自由度を高めることができる。
(5)第一のステップでは、第二の命令において実行対象とされたコンテキストの識別情報が記憶され、第二のステップでは、コンテキストの識別情報に応じて上書きを行う(1)に記載の計算機の制御方法。このような手段によれば、コンテキスト毎に命令の実行順序を変更したことによるデータ処理の乱れを是正することができる。
(6)第二のステップにおいて、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、割り込み処理プログラムにより上書きが実行される(1)に記載の計算機の制御方法。このような手段によれば、ソフト的に上記データ処理の乱れを是正することができるため、容易に正確かつ高速なデータ処理を実現できる。(7)第二のステップにおいて、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、分岐命令の実行により指定された分岐先のプログラムによって上書きが実行される(1)に記載の計算機の制御方法。このような手段によれば、動作の高速化をはかることができる。
(8)プログラムされた命令を実行する計算機であって、プログラムにおいて第一の命令より後置された第二の命令を、第一の命令より先に実行した場合に、第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、第一の命令の実行対象とされる第一データのアドレスが、第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、判定手段において、上記アドレスがアドレス領域に含まれるものと判定されたときには、保存先記憶手段に記憶された保存先において、第一の命令を実行することにより得られた結果をアドレスに対応する第二データに上書きするデータ回復手段とを備えたことを特徴とする計算機。
(9)第二の命令の実行対象とされたコンテキストを特定する情報を記憶するコンテキスト情報記憶手段をさらに備え、判定手段は、コンテキスト情報記憶手段に記憶された情報に基づいて第一の命令の実行対象とされるコンテキストが第二の命令の実行対象とされたコンテキストと一致すると判断される場合においてのみ活性化される(8)に記載の計算機。
(10)データ回復手段は、判定手段においてアドレスがアドレス領域に含まれるものと判定されたときには、割り込み処理プログラムにおいて上書きを実行する(8)に記載の計算機。
(11)データ回復手段は、判定手段において上記アドレスがアドレス領域に含まれるものと判定されたときには、分岐命令の実行により指定された分岐先のプログラムによって上書きを実行する(8)に記載の計算機。
(12)第三の命令を実行することにより、保存先記憶手段に記憶された保存先を消去する保存先消去手段をさらに備えた(8)に記載の計算機。
(13)第三の命令を実行することにより、保存先記憶手段に記憶された保存先を書き換える保存先書き換え手段をさらに備えた(8)に記載の計算機。
【0090】
【発明の効果】
上述の如く、第一の命令の実行対象とされる第一データのアドレスが、先に実行された第二の命令において実行対象であったデータのアドレス領域に含まれるときには、第一の命令を実行することにより得られた結果を上記アドレスに対応するデータに上書きすれば、命令の実行順序を変更したことによるデータ処理の乱れを是正することができるため、命令の実行順序を変更したときにおいても正確なデータ処理を実現できる。
【0091】
ここで、第一の命令をストア命令とし、第二の命令をロード命令とすれば、ロード命令を先に実行することによりデータ処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】汎用レジスタと浮動小数点レジスタとを有する従来の計算機の構成を示す図である。
【図2】ロード命令による動作を示すフローチャートである。
【図3】ロード命令の命令形式を示す図である。
【図4】ストア命令による動作を示すフローチャートである。
【図5】ストア命令の命令形式を示す図である。
【図6】本発明の実施の形態1に係る計算機の構成を示す図である。
【図7】図6に示された履歴制御部の構成を示す図である。
【図8】投機的ロード命令による動作を示すフローチャートである。
【図9】投機的ロード命令の命令形式を示す図である。
【図10】干渉回復ストア命令による動作を示すフローチャートである。
【図11】干渉回復ストア命令の命令形式を示す図である。
【図12】投機的ロード操作履歴無効化命令による動作を示すフローチャートである。
【図13】投機的ロード操作履歴無効化命令の命令形式を示す図である。
【図14】本発明の実施の形態2に係る計算機の構成を示す図である。
【図15】図14に示された履歴制御部の構成を示す図である。
【図16】本発明の実施の形態3に係る計算機の構成を示す図である。
【図17】図16に示された履歴制御部の構成を示す図である。
【図18】本発明の実施の形態4に係る計算機の構成を示す図である。
【図19】図18に示された履歴制御部の構成を示す図である。
【図20】干渉回復例外付きストア命令による動作を示すフローチャートである。
【図21】干渉回復例外付きストア命令の命令形式を示す図である。
【図22】干渉回復例外の割込み処理プログラムを示すフローチャートである。
【図23】本発明の実施の形態5に係る計算機に含まれた履歴制御部の構成を示す図である。
【図24】本発明の実施の形態6に係る計算機の構成を示す図である。
【図25】図24に示された履歴制御部の構成を示す図である。
【図26】干渉回復分岐付きストア命令による動作を示すフローチャートである。
【図27】干渉回復分岐付きストア命令の命令形式を示す図である。
【符号の説明】
1 メモリ
3 命令読み出し部
5,41,100,120,145,165 命令実行部
7,49,102,123,169 レジスタ制御部
9,53,129,150 割り込み制御部
11 命令読み出し制御部
13 プログラムカウンタ(PC)
15 命令語レジスタ(IR)
17,42,94,117,141 命令デコード部
19 ロード命令実行部
21 ストア命令実行部
23 命令実行回路
25 浮動小数点(F)ロード命令実行部
27 浮動小数点(F)ストア命令実行部
29 浮動小数点(F)演算命令実行部
31 レジスタ(EPCR)
33 レジスタ(EPSR)
35 レジスタ(PSR)
37 汎用レジスタ
39 浮動小数点レジスタ
40,55 割込制御回路
43 投機的ロード命令実行部
45 干渉回復ストア命令実行部
47 ロード履歴リセット部
51,103,127,147,148,159 履歴制御部
57 アドレスレジスタ
59 データタイプレジスタ
61 レジスタ番号レジスタ
63 ストアデータレジスタ
65,111 デコード回路
67〜69,132〜134 比較器
70,74,78 Eフィールド(E )
71,75,79 アドレスフィールド(ADDR)
72,76,80 データタイプフィールド(DT)
73,77,81 レジスタ番号フィールド(REG #)
83 オーバラップ判定部
85 オーバラップエントリ検出部
87 無効エントリ検出部
89 投機的ロード操作履歴リセット制御部
91 投機的ロード操作履歴登録制御部
93 投機的ロード操作履歴干渉確認制御部
95,113 投機的ロード操作履歴読み出し命令実行部
97,115 投機的ロード操作履歴書き込み命令実行部
99 投機的浮動小数点ロード命令実行部
101 干渉回復浮動少数点ストア命令実行部
105 レジスタタイプレジスタ(RTREG )
107〜109 レジスタタイプフィールド
119 コンテキスト識別番号レジスタ読み出し命令実行部(CRC )
121 コンテキスト識別番号レジスタ書き込み命令実行部(CWC )
125 コンテキスト識別番号レジスタ
131 オーバーフロー例外割込み制御部
135〜137 コンテキスト識別フィールド
139 オーバーフロー判定部
143,157 ストアデータテーブル読み出し命令実行部
149 干渉回復例外割込制御部
151〜153, V0〜Vm Vフィールド
154〜156, ENT0〜ENTm エントリフィールド
161 干渉回復分岐付きストア命令実行部
163 干渉回復分岐アドレスレジスタ書き込み命令実行部
167 干渉回復分岐アドレスレジスタ(BAR )
ADD 登録信号
CC 確認信号
RS リセット信号
HR 履歴読み出し信号
HW 履歴書き込み信号
OL オーバラップ信号
OF オーバーフロー信号
SR ストアデータ読み出し信号
DATA0〜DATAm データフィールド
Claims (12)
- プログラムされた命令の実行順序を変更する計算機の制御方法であって、前記プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行する第一のステップと、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、前記第一の命令を実行することにより得られた結果を前記アドレスに対応するデータに上書きする第二のステップと、を有し
前記第一のステップでは、前記第二の命令において実行対象とされたデータのアドレスと、前記第二の命令を実行することにより得られた結果を記憶する記憶手段を特定する情報とが記憶され、
前記第一のステップにおいて記憶された前記アドレスと前記記憶手段を特定する情報のうち少なくとも一方は、さらに第三の命令を実行することにより書き換えられる、
ことを特徴とする計算機の制御方法。 - プログラムされた命令の実行順序を変更する計算機の制御方法であって、前記プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行する第一のステップと、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、前記第一の命令を実行することにより得られた結果を前記アドレスに対応するデータに上書きする第二のステップと、を有し
前記第一のステップでは、前記第二の命令において実行対象とされたコンテキストの識別情報が記憶され、
前記第二のステップでは、前記コンテキストの前記識別情報に応じて上書きを行う、
ことを特徴とする計算機の制御方法。 - プログラムされた命令の実行順序を変更する計算機の制御方法であって、前記プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行する第一のステップと、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、前記第一の命令を実行することにより得られた結果を、割り込み処理プログラムにより前記アドレスに対応するデータに上書きする第二のステップと、
を有することを特徴とする計算機の制御方法。 - プログラムされた命令の実行順序を変更する計算機の制御方法であって、前記プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行する第一のステップと、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされたデータのアドレス領域に含まれるときには、前記第一の命令を実行することにより得られた結果を、分岐命令の実行により指定された分岐先のプログラムによって前記アドレスに対応するデータに上書きする第二のステップと、
を有することを特徴とする計算機の制御方法。 - 前記第一の命令は、記憶手段へ前記第一データを記憶させるストア命令であり、前記第二の命令は、前記記憶手段から前記データを読み出すロード命令である、
ことを特徴とする請求項1ないし4いずれかに記載の計算機の制御方法。 - 前記第一のステップでは、前記第二の命令において実行対象とされたデータのアドレスと、前記第二の命令を実行することにより得られた結果を記憶する記憶手段を特定する情報とが記憶され、
前記第二のステップでは、前記アドレスと前記記憶手段を特定する情報とに応じて前記上書きを行う、
ことを特徴とする請求項1ないし4いずれか記載の計算機の制御方法。 - プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行した場合に、前記第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、
前記判定手段において、前記アドレスが前記アドレス領域に含まれるものと判定されたときには、前記保存先記憶手段に記憶された前記保存先において、前記第一の命令を実行することにより得られた結果を前記アドレスに対応する前記第二データに上書きするデータ回復手段と、
を備えた前記プログラムされた命令を実行する計算機であって、
第三の命令を実行することにより、保存先記憶手段に記憶された保存先を書き換える保存先書き換え手段をさらに備える、
ことを特徴とする計算機。 - プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行した場合に、前記第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、
前記判定手段において、前記アドレスが前記アドレス領域に含まれるものと判定されたときには、前記保存先記憶手段に記憶された前記保存先において、前記第一の命令を実行することにより得られた結果を前記アドレスに対応する前記第二データに上書きするデータ回復手段と、
を備えた前記プログラムされた命令を実行する計算機であって、
前記第二の命令の実行対象とされたコンテキストを特定する情報を記憶するコンテキスト情報記憶手段をさらに備え、
前記判定手段は、前記コンテキスト情報記憶手段に記憶された情報に基づいて前記第一の命令の実行対象とされるコンテキストが前記第二の命令の実行対象とされたコンテキストと一致すると判断される場合においてのみ活性化される、
ことを特徴とする計算機。 - プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行した場合に、前記第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、
前記判定手段において、前記アドレスが前記アドレス領域に含まれるものと判定されたときには、前記保存先記憶手段に記憶された前記保存先において、前記第一の命令を実行することにより得られた結果を前記アドレスに対応する前記第二データに上書きするデータ回復手段と、
を備えた前記プログラムされた命令を実行する計算機であって、
前記データ回復手段は、前記判定手段において前記第一データのアドレスが前記第二データのアドレス領域に含まれるものと判定されたときには、割り込み処理プログラムにお いて上書きを実行する、
ことを特徴とする計算機。 - プログラムにおいて第一の命令より後置された第二の命令を、前記第一の命令より先に実行した場合に、前記第二の命令を実行することにより得られた結果の保存先を記憶する保存先記憶手段と、
前記第一の命令の実行対象とされる第一データのアドレスが、前記第二の命令において実行対象とされた第二データのアドレス領域に含まれるか否かを判定する判定手段と、
前記判定手段において、前記アドレスが前記アドレス領域に含まれるものと判定されたときには、前記保存先記憶手段に記憶された前記保存先において、前記第一の命令を実行することにより得られた結果を前記アドレスに対応する前記第二データに上書きするデータ回復手段と、
を備えた前記プログラムされた命令を実行する計算機であって、
前記データ回復手段は、前記判定手段において前記第一データのアドレスが前記第二データのアドレス領域に含まれるものと判定されたときには、分岐命令の実行により指定された分岐先のプログラムによって上書きを実行する、
ことを特徴とする計算機。 - データを記憶する記憶手段をさらに備え、
前記第一の命令は、記憶手段へ前記第一データを記憶させるストア命令であり、前記第二の命令は、前記記憶手段から前記データを読み出すロード命令である、
ことを特徴とする請求項7ないし10いずれかに記載の計算機。 - データを記憶する記憶手段をさらに備え、
前記保存先記憶手段は前記保存先として、前記第二の命令において実行対象とされた前記第二データのアドレス及び前記第二の命令を実行することにより得られた結果が格納される前記記憶手段を特定する情報を記憶する、
ことを特徴とする請求項7ないし10いずれかに記載の計算機。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35983799A JP3762597B2 (ja) | 1999-12-17 | 1999-12-17 | 計算機とその制御方法 |
EP07108697.9A EP1840735A3 (en) | 1999-12-17 | 2000-12-15 | Processor and method of controlling the same |
US09/736,357 US6889315B2 (en) | 1999-12-17 | 2000-12-15 | Processor and method of controlling the same |
EP00311245A EP1109096A3 (en) | 1999-12-17 | 2000-12-15 | Processor and method of controlling the same |
KR1020000077734A KR100930332B1 (ko) | 1999-12-17 | 2000-12-18 | 프로세서 및 그 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35983799A JP3762597B2 (ja) | 1999-12-17 | 1999-12-17 | 計算機とその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001175475A JP2001175475A (ja) | 2001-06-29 |
JP3762597B2 true JP3762597B2 (ja) | 2006-04-05 |
Family
ID=18466560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35983799A Expired - Fee Related JP3762597B2 (ja) | 1999-12-17 | 1999-12-17 | 計算機とその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3762597B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008293378A (ja) * | 2007-05-25 | 2008-12-04 | Panasonic Corp | プログラム書き換え装置 |
-
1999
- 1999-12-17 JP JP35983799A patent/JP3762597B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001175475A (ja) | 2001-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5758051A (en) | Method and apparatus for reordering memory operations in a processor | |
JP3852475B2 (ja) | コンピュータシステム | |
JP3093624B2 (ja) | 投機例外を処理する方法及び装置 | |
US6505296B2 (en) | Emulated branch effected by trampoline mechanism | |
JPH10283181A (ja) | プロセッサ内で命令を発行するための方法および装置 | |
JPH0785222B2 (ja) | データ処理装置 | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
JPH10283180A (ja) | プロセッサ内で命令をディスパッチする方法および装置 | |
US20040123081A1 (en) | Mechanism to increase performance of control speculation | |
JP2019534504A (ja) | ベクトル命令のための要素間アドレス・ハザードの取扱い | |
JPS6125169B2 (ja) | ||
US6189093B1 (en) | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register | |
US6889315B2 (en) | Processor and method of controlling the same | |
JP3762597B2 (ja) | 計算機とその制御方法 | |
JPH077356B2 (ja) | パイプライン方式のマイクロプロセッサ | |
JP2006221606A (ja) | データプロセッサ | |
CN114116002A (zh) | 一种存储重命名的实现方法、处理器及计算机设备 | |
KR102379886B1 (ko) | 벡터 명령 처리 | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
JPS6232508B2 (ja) | ||
JP3762608B2 (ja) | 計算機とその制御方法 | |
JP3490191B2 (ja) | 計算機 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP3608446B2 (ja) | コンパイラ装置とプロセッサ | |
JP3476314B2 (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051205 |
|
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: 20060110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060113 |
|
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: 20100120 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110120 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120120 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130120 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130120 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140120 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |