JP4116752B2 - 計算機とその制御方法 - Google Patents
計算機とその制御方法 Download PDFInfo
- Publication number
- JP4116752B2 JP4116752B2 JP2000099707A JP2000099707A JP4116752B2 JP 4116752 B2 JP4116752 B2 JP 4116752B2 JP 2000099707 A JP2000099707 A JP 2000099707A JP 2000099707 A JP2000099707 A JP 2000099707A JP 4116752 B2 JP4116752 B2 JP 4116752B2
- Authority
- JP
- Japan
- Prior art keywords
- context
- information
- program
- context block
- instruction
- 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
Description
【発明の属する技術分野】
本発明は、プログラムを実行する計算機とその制御方法に関するものである。
【0002】
【従来の技術】
計算機により各種の処理を実行する場合には、該処理を効率よく実行するため、複数のタスクプログラム等を時分割で切り替えながら並列処理できるようにされているものがある。このような処理システムは、マルチタスク処理システムと呼ばれ、複数の処理プログラムを並行処理する機能を備えたOS(オペレーティングシステム)をマルチタスクOSと呼ぶ。
【0003】
このマルチタスクOSでは、計算機内部のプログラムカウンタや汎用レジスタ等の各種ハードウェア資源上に保持される情報は、各タスクプログラム単位に個別に確保される。また、これらのハードウェア資源は、計算機自体と同様に使用される。このため、ある時点で実行中でないタスクプログラムに対するハードウェア資源上の情報は、メモリなどに保存されることとなる。
【0004】
そして、上記のようなハード資源上の情報は「コンテキスト」と呼ばれ、コンテキストをハードウェア資源からメモリ等へ書き出す動作は、「コンテキストの退避」と呼ばれる。また逆に、コンテキストをメモリ等からハードウェア資源へ読み込む動作は、「コンテキストの復元」と呼ばれる。そして、このようなコンテキストの退避や復元は、「コンテキスト切り替え(コンテキストスイッチ)」と呼ばれる。
【0005】
以下において、従来の計算機について説明する。なお、該従来の計算機においてコンテキストが格納されるコンテキスト対象は、次の表1に示される。
【0006】
【表1】
なお、上記表1における各コンテキスト対象は、以下において詳しく説明される。
【0007】
図1は、汎用レジスタ(GR)と浮動小数点レジスタ(FR)とを有する従来の計算機の構成を示す図である。図1に示されるように、この計算機はメモリ1と、メモリ1に接続された命令読み出し部3と、メモリ1及び命令読み出し部3に接続された命令実行部6と、命令実行部6に接続されたレジスタ制御部8と、命令読み出し部3と命令実行部6及びレジスタ制御部8に接続された割り込み制御部9とを備える。
【0008】
ここで、命令読み出し部3は命令読出制御部11と、プログラムカウンタ(PC)13と、命令語レジスタ(IR)15とを含む。そして、命令読出制御部11はメモリ1に接続され、プログラムカウンタ(PC)13は命令読出制御部11に接続される。さらに、命令語レジスタ(IR)15は命令読出制御部11に接続される。
【0009】
また、命令実行部6は命令デコード部17と、ロード命令実行部19と、ストア命令実行部21と、演算命令実行部22と、命令実行回路23と、浮動小数点(F)ロード命令実行部25と、浮動小数点(F)ストア命令実行部27と、浮動小数点(F)演算命令実行部29とを含む。
【0010】
そして、命令デコード部17は命令語レジスタ15に接続され、ロード命令実行部19はメモリ1及び命令デコード部17に接続される。また、ストア命令実行部21は命令デコード部17及び後述する汎用レジスタ(GR)37に接続され、演算命令実行部22は命令デコード部17と汎用レジスタ37及び後述する条件レジスタ(COND)30に接続され、命令実行回路23は命令デコード部17と汎用レジスタ37及び後述するレジスタ31,33,35に接続される。
また、浮動小数点ロード命令実行部25はメモリ1及び命令デコード部17に接続され、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29は命令デコード部17及び後述する浮動小数点レジスタ39に接続される。
【0011】
一方、レジスタ制御部8は条件レジスタ(COND)30と、レジスタ(EPCR)31と、レジスタ(EPSR)33と、レジスタ(PSR)35と、汎用レジスタ(GR)37と、浮動小数点レジスタ(FR)39とを含む。ここで、条件レジスタ30は演算命令実行部22と命令実行回路23及び浮動小数点演算命令実行部29に接続され、レジスタ(EPCR)31とレジスタ(EPSR)33及びレジスタ(PSR)35は、さらに後述する割込制御回路40に接続される。また、汎用レジスタ37はロード命令実行部19とストア命令実行部21及び命令実行回路23に接続される。また、浮動小数点レジスタ39は浮動小数点ロード命令実行部25と、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29に接続される。
【0012】
また、割り込み制御部9は割込制御回路40を含む。そして、この割込制御回路40は命令読出制御部11とプログラムカウンタ13、ロード命令実行部19、ストア命令実行部21、演算命令実行部22、命令実行回路23、浮動小数点ロード命令実行部25、浮動小数点ストア命令実行部27及び浮動小数点演算命令実行部29などに接続される。
【0013】
上記のような構成を有する計算機において、命令読み出し部3はプログラムカウンタ13が示す命令語をメモリ1から読み出し、命令語レジスタ(IR)15を介して命令実行部6へ供給する。また命令読出制御部11は、命令実行部6あるいは割り込み処理を行う割込制御回路40より分岐先アドレスが供給された場合には、それをプログラムカウンタ13へ書き込む。なお命令読出制御部11は、それ以外の場合には次の命令語を命令実行部6へ供給するため、読み出すべき命令語のアドレスを示すプログラムカウンタ13をインクリメントする。また、命令語を読み出す際に割り込みを検出した場合には、割込制御回路40へ割込信号を供給する。
【0014】
また、命令デコード部17は、命令語レジスタ15から供給された命令をデコードし、ロード命令の場合にはロード命令実行部19へ、ストア命令の場合にはストア命令実行部21へ、演算命令の場合には演算命令実行部22へ、浮動小数点ロード命令の場合には浮動小数点ロード命令実行部25へ、浮動小数点ストア命令の場合には浮動小数点ストア命令実行部27へ、浮動小数点演算命令の場合には浮動小数点演算命令実行部29へ、割り込み復帰命令やその他の命令の場合には命令実行回路23へそれぞれ供給する。
【0015】
また、ロード命令実行部19はロード命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応するメモリ1の領域からデータを読み出し、その結果を汎用レジスタ37へ書き込む。なお、ロード命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0016】
同様に、ストア命令実行部21はストア命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応する汎用レジスタ37の領域からデータを読み出し、その結果を実効アドレスに対応するメモリ1の領域へ書き込む。なお、ストア命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0017】
また、演算命令実行部22は演算命令が供給された場合には、汎用レジスタ37から読み出された値に基づき演算を実行し、その結果を汎用レジスタ37へ書き込む。また、演算命令実行部22は、比較命令が供給された場合には、汎用レジスタ37から読み出された二つの値を比較し、該二つの値が等しい場合には真であることを示すデータを、該二つの値が等しくない場合には偽であることを示すデータを条件レジスタ30へ書き込む。
【0018】
そして、浮動小数点ロード命令実行部25は、浮動小数点ロード命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応するメモリ1の領域からデータを読み出し、その結果を浮動小数点レジスタ39へ書き込む。なお、浮動小数点ロード命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0019】
また、浮動小数点ストア命令実行部27は、浮動小数点ストア命令が供給された場合には、汎用レジスタ37から読み出された値に基づいて求められた実効アドレスに対応する浮動小数点レジスタ39の領域からデータを読み出し、その結果を実効アドレスに対応するメモリ1の領域へ書き込む。なお、浮動小数点ストア命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0020】
また、浮動小数点演算命令実行部29は、浮動小数点演算命令が供給された場合には浮動小数点レジスタ39から読み出した値に基づき演算を実行し、その結果を浮動小数点レジスタ39へ書き込む。そしてさらに、浮動小数点演算命令実行部29は、浮動小数点比較命令が供給された場合には浮動小数点レジスタ39から読み出した二つの値を比較し、その結果として、該二つの値が等しいか否かにより真又は偽を示す値を条件レジスタ30へ書き込む。
【0021】
また、命令実行回路23は、命令デコード部17から分岐命令が供給された場合には、分岐成立時に分岐先アドレスをプログラムカウンタ13へ供給する。さらに、命令デコード部17から条件分岐命令が供給された場合には、条件レジスタ30に格納された値が真であることを示すものである時に分岐先アドレスをプログラムカウンタ13へ供給する。同様に割り込み復帰命令が供給された場合には、割込み発生前の動作状態を示すデータをPSR35へ書き込む。そしてこのとき、EPCR31から復帰先の命令のアドレスを読み出し、それを分岐先アドレスとしてプログラムカウンタ13へ供給する。なお、上記命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0022】
また、条件レジスタ30は、上記のように比較命令に応じて真あるいは偽を示すデータ(値)を保持する。なお、該値は条件分岐命令に応じて参照される。また、EPCR31は割り込みからの復帰先に該当する命令のアドレスを保持し、そのアドレスは割り込み発生時に設定される。また、PSR35は動作状態(state)を示すデータを保持し、EPSR33は割り込み発生時に設定された割り込み発生前の動作状態を示すデータを保持する。
【0023】
また、割込制御回路40は命令読み出し部3あるいは命令実行部6から供給された割込信号に基づいて、割り込みからの復帰先に該当する命令のアドレスをEPCR31へ、割り込み発生前の動作状態を示すデータをEPSR33へ、発生した割り込みに対応する動作状態を示すPSR35へ書き込む。また、発生した割り込みに対応する分岐先アドレスを命令読み出し部3へ供給する。
【0024】
以上のように、上記計算機は、初期の動作状態でもある通常動作においては、命令読み出し部3がプログラムカウンタ13の示す命令語を読み出して命令実行部6へ供給し、命令実行部6は供給された該命令語により規定される命令を実行する。
【0025】
一方、割り込みが発生した時には、割込制御回路40は命令読み出し部3あるいは命令実行部6から供給された割込信号に基づいて、割り込みからの復帰先に該当する命令のアドレスをEPCR31へ、割り込み発生前の動作状態を示すデータをEPSR33へ、発生した割り込みに対応する動作状態を示すPSR35へ書き込む。また、発生した割り込みに対応する分岐先アドレスを命令読み出し部3へ供給する。また、命令読み出し部3は割込制御部9から供給された分岐先アドレスに応じて命令語を読み出し、命令実行部6へ供給する。そして、以降においては上記の通常の場合と同様に動作する。
【0026】
また、割り込みから復帰する時は、命令実行部6は割り込み復帰命令を実行することにより、EPSR33の値をPSR35へ書き込む。また、EPCR31に格納されたデータを読み出し、その結果を分岐先アドレスとして命令読み出し部3へ供給する。このとき命令読み出し部3は、命令実行部6から供給された分岐先アドレスに基づいて命令語を読み出し、命令実行部6へ供給する。そして、以降においては上記通常の動作がなされる。
【0027】
次に、上記の計算機によるコンテキスト切り替え動作を、図2に示されたフローチャートを参照しつつ説明する。図2に示されるように、まずステップS1において、現コンテキストに対応するメモリ1上のコンテキスト域へ現コンテキストを退避する。そして次に、ステップS2において、新コンテキストに対応するメモリ1上のコンテキスト域から新コンテキストを復元し、コンテキスト切り替え動作を終了する。
【0028】
以上が、従来における計算機の構成と動作の概要であるが、近年の計算機における高速化や高性能化等に伴い、例えば計算機内の汎用レジスタの個数は増加しており、ハードウェア資源全体の情報量も著しく増加している状況にある。従って、上記のようにコンテキスト全てを無条件に退避し、かつ復元することは、無視できない程長い処理時間を必要とすることとなるため、該計算機の性能を向上させる際の障害となるという問題がある。
【0029】
【発明が解決しようとする課題】
本発明は、上述の問題を解消するためになされたもので、コンテキストの切り替えを高速化して、複数のプログラムの並列的な実行の効率を向上させた計算機とその制御方法を提供することを目的とする。
【0030】
【課題を解決するための手段】
上記の目的は、コンテキスト対象であるハードウェア資源を複数の領域に分割したコンテキストブロックに基づいて、複数のプログラムを時分割して並列処理する計算機であって、第1プログラムを実行するときに必要とされる第1コンテキストブロック及び第2コンテキストブロックにおいて、第2プログラムを実行するときに、前記第1プログラムによって使用されている前記第1コンテキストブロックに格納されている第1情報と前記第2プログラムで使用する第3情報とが異なる場合には前記第1コンテキストブロックに格納されている前記第1情報を退避させ、前記第1情報と前記第3情報とが一致する場合には前記第1情報を退避させず、前記第2プログラムの実行において必要になった時点で、前記第1プログラムで使用されている前記第2コンテキストブロックに格納されている第2情報と前記第2プログラムで使用する第4情報とが異なる場合には前記第2コンテキストブロックに格納されている前記第2情報を退避させ、前記第2情報と前記第4情報とが一致する場合には前記第2情報を退避させない退避部とを有することを特徴とする計算機を提供することにより達成される。このような手段によれば、第1プログラムを実行する過程において必要となった時点で、第2コンテキストブロックに格納されている第2情報を退避させることとするため、該第2情報を退避させる時点までは、第2コンテキストブロックを第2プログラムを実行するために使用することができる。
【0031】
また、第1プログラムを実行するときにおいて必要とされる第1コンテキストブロックが、第2プログラムを実行するために既に使用されている場合に、割り込み処理を発生させる割り込み手段をさらに備え、退避手段は、割り込み手段により発生された割り込み処理において識別情報を記憶すると共に、第1コンテキストブロックに格納されている第1情報を退避させるものとすることができる。このような手段によれば、プログラム全体の規模が低減できる。
【0034】
また、本発明の目的は、コンテキスト対象であるハードウェア資源を複数の領域に分割したコンテキストブロックに基づいて、複数のプログラムを時分割して並列処理する計算機の制御方法であって、第1プログラムを実行するときに必要とされる第1コンテキストブロック及び第2コンテキストブロックにおいて、第2プログラムを実行するときに、前記第1プログラムによって使用されている前記第1コンテキストブロックに格納されている第1情報と前記第2プログラムで使用する第3情報とが異なる場合には前記第1コンテキストブロックに格納されている前記第1情報を退避させ、前記第1情報と前記第3情報とが一致する場合には前記第1情報を退避させず、前記第2プログラムの実行において必要になった時点で、前記第1プログラムで使用されている前記第2コンテキストブロックに格納されている第2情報と前記第2プログラムで使用する第4情報とが異なる場合には前記第2コンテキストブロックに格納されている前記第2情報を退避させ、前記第2情報と前記第4情報とが一致する場合には前記第2情報を退避させない第1ステップとを有することを特徴とする計算機の制御方法を提供することにより達成される。
【0035】
【発明の実施の形態】
以下において、本発明の実施の形態を図面を参照して詳しく説明する。なお、図中同一符号は同一又は相当部分を示す。
【0036】
また、以下の説明においては、コンテキスト対象であるハードウェア資源を複数の領域に分割したときの、各分割領域を「コンテキストブロック」と呼ぶ。また、該コンテキストブロックのうち、基本とされる一又は二以上の所定のコンテキストブロックを「基本コンテキストブロック」と呼ぶ。
[実施の形態1]
図3は、本発明の実施の形態1に係る計算機の構成を示す図である。なお、図3に示された計算機におけるコンテキスト対象は、次の表2に示される。
【0037】
【表2】
なお、上記表2に示されるコンテキストブロック番号が0のレジスタには、基本コンテキストブロックが格納される。
【0038】
図3に示されるように、本発明の実施の形態1に係る計算機は、図1に示された従来の計算機に対して、命令実行部400には第一検出部405〜408と、第二検出部409,410と、第三検出部411と、切り替え対象コンテキストブロック読み出し命令実行部413と、コンテキストブロック管理簿読み出し命令実行部415と、コンテキストブロック管理簿書き込み命令実行部417とを含み、レジスタ制御部402にはコンテキストブロック識別レジスタ(CTXTID)419とコンテキストブロック管理簿421とを含む点で相違する。なお、コンテキストブロック管理簿421には、コンテキスト管理簿エントリ423,425が含まれる。
【0039】
そしてまた、割り込み制御部404にはコンテキスト使用不可割り込み制御部427を含む点で相違する。
【0040】
上記において、第一検出部405〜408の入力端は共に命令デコード部17及びコンテキスト管理簿エントリ423に接続され、出力端は共にコンテキスト使用不可割り込み制御部427に接続される。そして、第一検出部405の出力端はさらにロード命令実行部19に接続され、第一検出部406の出力端はさらにストア命令実行部21に接続され、第一検出部407の出力端はさらに演算命令実行部22に接続され、第一検出部408の出力端はさらに命令実行回路23に接続される。
【0041】
また、同様に、第二検出部409,410の入力端は共に命令デコード部17及びコンテキスト管理簿エントリ423,425に接続され、出力端は共にコンテキスト使用不可割り込み制御部427に接続される。そして、第二検出部409の出力端はさらに浮動小数点(F)ロード命令実行部25に接続され、第二検出部410の出力端はさらに浮動小数点(F)ストア命令実行部27に接続される。また、第三検出部411の入力端は命令デコード部17及びコンテキスト管理簿エントリ425に接続され、出力端はコンテキスト使用不可割り込み制御部427及び浮動小数点(F)演算命令実行部29に接続される。
【0042】
また、切り替え対象コンテキストブロック読み出し命令実行部413の入力端は命令デコード部17及びコンテキストブロック識別レジスタ(CTXTID)419に接続され、出力端は汎用レジスタ37及び割込制御回路40に接続される。
【0043】
また、コンテキストブロック管理簿読み出し命令実行部415の入力端は命令デコード部17及びコンテキスト管理簿エントリ423,425に接続され、出力端は汎用レジスタ37及び割込制御回路40に接続される。そして、コンテキストブロック管理簿書き込み命令実行部417の入力端は命令デコード部17及び汎用レジスタ37に接続され、出力端は汎用レジスタ37とコンテキスト管理簿エントリ423,425及び割込制御回路40に接続される。
【0044】
また、コンテキストブロック識別レジスタ(CTXTID)419の入力端はコンテキスト使用不可割り込み制御部427に接続され、出力端は切り替え対象コンテキストブロック読み出し命令実行部413に接続される。そしてまた、コンテキスト使用不可割り込み制御部427の入力端はプログラムカウンタ(PC)13及びレジスタ(PSR)35に接続され、出力端はレジスタ(EPCR)31と、レジスタ(EPSR)33及びレジスタ(PSR)35に接続される。
【0045】
以下において、上記のような構成を有する図3に示された計算機の動作を説明する。
【0046】
まず、命令デコード部17からそれぞれ第一検出部405にはロード命令が供給され、第一検出部406にはストア命令が供給され、第一検出部407には演算命令及び比較命令が供給される。また、第一検出部408には分岐命令と条件分岐命令、及び割り込み復帰命令が供給される。
【0047】
またさらに、命令デコード部17からは、第二検出部409へ浮動小数点ロード命令が供給され、第二検出部410へ浮動小数点ストア命令が供給され、第三検出部411へ浮動小数点演算命令及び浮動小数点比較命令が供給される。
【0048】
また、命令デコード部17から切り替え対象コンテキストブロック読み出し命令実行部413へは、切り替え対象コンテキストブロック読み出し命令が供給され、コンテキストブロック管理簿読み出し命令実行部415へはコンテキストブロック管理簿読み出し命令が供給され、コンテキストブロック管理簿書き込み命令実行部417へはコンテキストブロック管理簿書き込み命令がそれぞれ供給される。
【0049】
ここで、第一検出部405〜408は、いずれも供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ423に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0050】
ここで、第一検出部405〜408は互いに同様な構成を有するが、第一検出部405の構成が図8に示される。図8に示されるように、第一検出部405は、GR検出回路429と、論理回路431とを含む。ここで、GR検出回路429は、実行対象であるロード命令において汎用レジスタ37を参照または変更することが要求されるか否かを検出する。
【0051】
そして、命令デコード部17から供給されたロード命令は、そのままロード命令実行部19へ出力されると共にGR検出回路429へ入力される。また、GR検出回路429から出力された信号とコンテキスト管理簿エントリ423に含まれたEフィールドの値とが論理回路431に供給され、論理回路431の出力信号はロード命令実行部19及びコンテキスト使用不可割り込み制御部427へ供給される。
【0052】
次に第二検出部409,410は、互いに同様な構成を有すると共に、いずれも供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ423に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37を参照または変更する命令が供給された場合、またはコンテキスト管理簿エントリ425に含まれたEフィールドに0の値が格納され、かつ浮動小数点レジスタ39を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0053】
ここで、図9に示されるように、第二検出部409は、GR検出回路429と、FR検出回路435と、論理回路431,432と、OR回路437とを含む。ここで、FR検出回路435は、実行対象である浮動小数点ロード命令において浮動小数点レジスタ39を参照または変更することが要求されるか否かを検出する。
【0054】
そして、命令デコード部17から供給された浮動小数点ロード命令は、そのまま浮動小数点ロード命令実行部25へ出力されると共にGR検出回路429及びFR検出回路435へ入力される。また、GR検出回路429から出力された信号とコンテキスト管理簿エントリ423に含まれたEフィールドの値とが論理回路431に供給され、FR検出回路435から出力された信号とコンテキスト管理簿エントリ425に含まれたEフィールドの値とが論理回路432に供給される。
【0055】
また、論理回路431及び論理回路432の出力信号は共にOR回路437へ入力され、OR回路437の出力信号は浮動小数点ロード命令実行部25及びコンテキスト使用不可割り込み制御部427へ供給される。
【0056】
次に、第三検出部411は、供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ425に含まれたEフィールドに0の値が格納され、かつ浮動小数点レジスタ39を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0057】
ここで、図10に示されるように、第三検出部411は、FR検出回路435と、論理回路431とを含む。そして、命令デコード部17から供給された浮動小数点演算命令は、そのまま浮動小数点演算命令実行部29へ出力されると共にFR検出回路435へ入力される。また、FR検出回路435から出力された信号とコンテキスト管理簿エントリ425に含まれたEフィールドの値とが論理回路432へ供給される。また、論理回路432の出力信号は浮動小数点演算命令実行部29及びコンテキスト使用不可割り込み制御部427へ供給される。
【0058】
また、切り替え対象コンテキストブロック読み出し命令実行部413は、命令デコード部17から供給された切り替え対象コンテキストブロック読み出し命令に応じて、コンテキストブロック識別レジスタ(CTXTID)419に格納されたコンテキストブロック識別情報を読み出し、汎用レジスタ37へ書き込む。なお、切り替え対象コンテキストブロック読み出し命令を実行する際に割り込みを検出した場合には、割込信号を割込制御回路40へ供給する。
【0059】
また、上記コンテキストブロック識別レジスタ(CTXTID)419には、命令実行時に参照あるいは変更が不可能であったコンテキストブロックの識別情報が保持されるが、コンテキスト使用不可割り込み発生時にコンテキスト使用不可割り込み制御部427によって該識別情報が格納される。
【0060】
また、コンテキストブロック管理簿読み出し命令実行部415は、命令デコード部17から供給されたコンテキストブロック管理簿読み出し命令に応じて、指定されたコンテキスト管理簿エントリ423,425から該エントリに格納されている情報を読み出し、汎用レジスタ37へ書き込む。なお、コンテキストブロック管理簿読み出し命令を実行する際に割り込みを検出した場合には、割込信号が割込制御回路40に供給される。
【0061】
また、コンテキストブロック管理簿書き込み命令実行部417は、命令デコード部17から供給されたコンテキストブロック管理簿書き込み命令に応じて、汎用レジスタ37から読み出した情報を指定されたコンテキスト管理簿エントリ423,425へ書き込む。なお、コンテキストブロック管理簿書き込み命令を実行する際に割り込みを検出した場合には、割込信号が割込制御回路40に供給される。
【0062】
また、上記のコンテキスト管理簿エントリ423,425は、それぞれ上記Eフィールドとコンテキストフィールド(CTXT#)とからなり、Eフィールドは対応するハードウェア資源が使用可能か否かを示す。そして、Eフィールドに0の値が格納されている場合には、該当するハードウェア資源が使用不可能であり、現コンテキストを保持していないことを意味し、1の値が格納されている場合には、該当するハードウェア資源が使用可能であって、現コンテキストを保持していることを意味する。また、各コンテキストフィールド(CTXT#)には、対応するコンテキストブロックに保持されているコンテキストを特定する番号(以下において「コンテキスト番号」ともいう。)が格納される。
【0063】
さらに、コンテキスト使用不可割り込み制御部427は、供給される割込信号に応じて、割り込みからの復帰先とする命令アドレスをレジスタ(EPCR)31へ、割り込み発生前の計算機の動作状態をレジスタ(EPSR)33へ、発生した割り込みに対応する計算機の動作状態をレジスタ(PSR)35へ、切り替えるべきコンテキストブロックの識別をコンテキストブロック識別レジスタ(CTXTID)419へそれぞれ書き込む。また、発生した割り込みに対応する分岐先のアドレスをプログラムカウンタ13へ供給する。
【0064】
以下において、図3に示された本実施の形態1に係る計算機のコンテキスト切り替え動作の概要を、図4に示されたフローチャートを参照しつつ説明する。まず、ステップS1において現コンテキストに対応するメモリ1上のコンテキスト域へ現コンテキストの基本ブロックを退避する。次に、ステップS2において新コンテキストに対応するメモリ1上のコンテキスト域から新コンテキストの基本ブロックを復元する。
【0065】
そして、ステップS3において上記新コンテキストの基本ブロックに対応するハードウェア資源を使用可能にすると共に、ステップS4で該新コンテキストの基本ブロックのコンテキスト番号をコンテキストブロック管理簿421に保持する。次に、ステップS5において、該新コンテキストの基本ブロックに対応しないハードウェア資源を使用不可能にして、コンテキスト切り替え動作を終了する。
【0066】
ここで、上記コンテキストの切り替え動作を、図5に示されるフローチャートを参照しつつ、より具体的に説明する。図5に示されるフローチャートにおいて、ステップS1とステップS2は、図4に示されるステップS1及びステップS2と同じであるが、ステップS3においてはコンテキストブロック管理簿421の新コンテキストの基本ブロックに対応するEフィールドに1の値を格納する。
そして、ステップS4において、コンテキストブロック管理簿421に含まれる新コンテキストの基本ブロックに対応するコンテキストフィールドに、新コンテキストの番号を格納する。次に、ステップS5において、コンテキストブロック管理簿421に含まれる該新コンテキストの基本ブロックに対応しないEフィールドに0の値を格納し、コンテキストの切り替え動作を終了する。
【0067】
次に、図3に示された本実施の形態1に係る計算機において、所望のコンテキストが使用できない場合の割り込み動作の概要を、図6に示されたフローチャートを参照しつつ説明する。なお、該割り込み動作は、例えば割り込み処理プログラムの実行により実現される。
【0068】
まず、ステップS1においては、切り替えの対象とするコンテキストブロックが確認され、ステップS2においては、該切り替え対象とするコンテキストブロックの旧コンテキスト番号が確認される。そして、ステップS3において、上記旧コンテキスト番号に対応するメモリ1上のコンテキスト域へ切り替え対象とするコンテキストブロックを退避する。次に、ステップS4において、新コンテキストの基本コンテキストブロックに対応する現コンテキスト番号が求められ、ステップS5において、該現コンテキスト番号に対応するメモリ1上のコンテキスト域から切り替え対象とするコンテキストブロックが読み出され、復元される。
そして、ステップS6において、切り替え対象とするコンテキストブロックのコンテキスト番号を保持する。次に、ステップS7において、切り替え対象とするコンテキストブロックに対応するハードウェア資源を使用可能にして、該割り込み動作を終了する。
【0069】
ここで、上記のように所望のコンテキストが使用できない場合の割り込み動作を、図7に示されるフローチャートを参照しつつ、より具体的に説明する。図7に示されるように、ステップS1においては割り込み処理プログラムが動作する上で最低限必要なコンテキストを退避する。そして、ステップS2においてコンテキストブロック識別レジスタ(CTXTID)419に格納されたコンテキストブロック識別情報を読み出し、切り替え対象とするコンテキストブロックを求める。
【0070】
次に、ステップS3においては、コンテキストブロック管理簿421内の切り替え対象コンテキストブロックに対応するコンテキストフィールドから、格納されている旧コンテキスト番号を読み出す。そして、ステップS4においては、該旧コンテキスト番号に対応するメモリ1上のコンテキスト域へ切り替え対象コンテキストブロックを退避する。次に、ステップS5において、コンテキストブロック管理簿421に含まれる新コンテキストの基本コンテキストブロックに対応するコンテキストフィールドから現コンテキスト番号を読み出す。
【0071】
そして、ステップS6において、該現コンテキストに対応するメモリ1上のコンテキスト域から切り替え対象とするコンテキストブロックを読み出し、復元する。次に、ステップS7において、コンテキストブロック管理簿421内の切り替え対象とするコンテキストブロックに対応するコンテキストフィールドに、現コンテキスト番号を格納する。
【0072】
また、ステップS8では、コンテキストブロック管理簿421内の切り替え対象コンテキストブロックのEフィールドに1を格納し、ステップS9では、割り込み処理プログラムが実行される上で最低限必要とされたコンテキストを復元する。次に、ステップS10では、割り込み復帰命令の実行により、コンテキスト切り替えのための割り込み動作から復帰して、本動作を終了する。
【0073】
このように、本実施の形態1に係る計算機は、複数の領域に分割されたハードウェア資源を用いることにより、複数のプログラムを時分割して並列処理すると共に、新たなプログラムを実行するときに必要とされるハードウェア資源が既に使用されているものと第一から第三検出部405〜411のいずれかにおいて判断された場合には、コンテキスト使用不可割り込み制御部427によりコンテキスト使用不可割り込み動作を開始する。
【0074】
そしてこのとき、参照または変更が不可能であったコンテキストブロックの識別情報を、コンテキストブロック識別レジスタ(CTXTID)419に記憶すると共に、退避させるコンテキストの番号等をコンテキストブロック管理簿421に格納する。そして、上記の新たなプログラムを実行するときに必要とされるハードウェア資源に格納されている情報を、上記コンテキストブロックの識別情報に応じてメモリ1に退避させる。
【0075】
さらに、該新たなプログラムの実行が終了あるいは中断したときには、上記のように退避されたコンテキスト番号等に応じて、上記ハードウェア資源に元の(旧)コンテキストを復元し、元の(旧)プログラムの実行を継続する。
【0076】
従って、本実施の形態1に係る計算機によれば、コンテキストの高速な切り替えを実現でき、特に多重なコンテキストの切り替え等において有効に機能する。そしてこれより、複数のタスクプログラムの効率的な実行を実現することができる。
【0077】
また、第一から第三検出部405〜411のいずれかにより、供給された命令が参照または変更するレジスタが現コンテキストとなっていないと判定された時点で、初めて割り込み処理を実行することによりコンテキストを退避させるため、ハードウェア資源の有効な活用を図ることができる。
[実施の形態2]
図11は、本発明の実施の形態2に係る計算機の構成を示す図である。なお、図11に示された計算機におけるコンテキスト対象は、次の表3に示される。
【0078】
【表3】
なお、上記表3に示されるコンテキストブロック番号が0のレジスタには、基本コンテキストブロックが格納される。
【0079】
図11に示されるように、本実施の形態2に係る計算機は、図3に示された実施の形態1に係る計算機と同様な構成を有するが、第一検出部405〜408の代わりに第四検出部441〜444を備え、第二検出部409,410の代わりに第五検出部445,446を備え、第三検出部411の代わりに第六検出部447を備える点で相違する。
【0080】
また、コンテキストブロック管理簿421の代わりに、コンテキスト管理簿エントリ449を含むコンテキスト管理簿450を備える点で相違する。
【0081】
上記において、第四検出部441〜444の入力端は共に命令デコード部17及びコンテキスト管理簿エントリ423,425に接続され、出力端は共にコンテキスト使用不可割り込み制御部427に接続される。そして、第四検出部441の出力端はさらにロード命令実行部19に接続され、第四検出部442の出力端はさらにストア命令実行部21に接続され、第四検出部443の出力端はさらに演算命令実行部22に接続され、第四検出部444の出力端はさらに命令実行回路23に接続される。
【0082】
また、同様に、第五検出部445,446の入力端は共に命令デコード部17及びコンテキスト管理簿エントリ423,425,449に接続され、出力端は共にコンテキスト使用不可割り込み制御部427に接続される。そして、第五検出部445の出力端はさらに浮動小数点(F)ロード命令実行部25に接続され、第五検出部446の出力端はさらに浮動小数点(F)ストア命令実行部27に接続される。また、第六検出部447の入力端は命令デコード部17及びコンテキスト管理簿エントリ425,449に接続され、出力端はコンテキスト使用不可割り込み制御部427及び浮動小数点(F)演算命令実行部29に接続される。
【0083】
上記のような構成を有する図11に示された計算機は、図3に示された実施の形態1に係る計算機と同様に動作するが、相違点につき以下に説明する。
【0084】
まず、命令デコード部17からそれぞれ第四検出部441にはロード命令が供給され、第四検出部442にはストア命令が供給され、第四検出部443には演算命令及び比較命令が供給される。また、第四検出部444には分岐命令と条件分岐命令、及び割り込み復帰命令が供給される。
【0085】
またさらに、命令デコード部17からは、第五検出部445へ浮動小数点ロード命令が供給され、第五検出部446へ浮動小数点ストア命令が供給され、第六検出部447へ浮動小数点演算命令及び浮動小数点比較命令が供給される。
【0086】
ここで、第四検出部441〜444は、いずれも供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ423に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の下位領域を参照または変更する命令が供給された場合、あるいは、コンテキスト管理簿エントリ425に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の上位領域を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0087】
ここで、第四検出部441〜444は互いに同様な構成を有するが、第四検出部441の構成が図12に示される。図12に示されるように、第四検出部441は、下位GR検出回路451と、上位GR検出回路453と、論理回路431,432と、OR回路437とを含む。ここで、下位GR検出回路451は、実行対象であるロード命令において汎用レジスタ37の下位領域を参照または変更することが要求されるか否かを検出し、上位GR検出回路453は、実行対象であるロード命令において汎用レジスタ37の上位領域を参照または変更することが要求されるか否かをそれぞれ検出する。
【0088】
そして、命令デコード部17から供給されたロード命令は、そのままロード命令実行部19へ出力されると共に下位GR検出回路451及び上位GR検出回路453へ入力される。また、下位GR検出回路451から出力された信号とコンテキスト管理簿エントリ423に含まれたEフィールドの値とが論理回路431に供給され、上位GR検出回路453から出力された信号とコンテキスト管理簿エントリ425に含まれたEフィールドの値とが論理回路432に供給される。そして、論理回路431及び論理回路432の出力信号はOR回路437に入力され、OR回路437の出力信号はロード命令実行部19及びコンテキスト使用不可割り込み制御部427へ供給される。
【0089】
次に第五検出部445,446は、互いに同様な構成を有すると共に、いずれも供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ423に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の下位領域を参照または変更する命令が供給された場合、またはコンテキスト管理簿エントリ425に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の上位領域を参照または変更する命令が供給された場合、あるいはコンテキスト管理簿エントリ449に含まれたEフィールドに0の値が格納され、かつ浮動小数点レジスタ39を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0090】
ここで、図13に示されるように、第五検出部445は、下位GR検出回路451と、上位GR検出回路453と、FR検出回路435と、論理回路431〜433と、OR回路437とを含む。ここで、FR検出回路435は、実行対象である浮動小数点ロード命令において浮動小数点レジスタ39を参照または変更することが要求されるか否かを検出する。
【0091】
そして、命令デコード部17から供給された浮動小数点ロード命令は、そのまま浮動小数点ロード命令実行部25へ出力されると共に下位GR検出回路451と上位GR検出回路453、及びFR検出回路435へ入力される。また、下位GR検出回路451から出力された信号とコンテキスト管理簿エントリ423に含まれたEフィールドの値とが論理回路431に供給され、上位GR検出回路453から出力された信号とコンテキスト管理簿エントリ425に含まれたEフィールドの値とが論理回路432に供給されFR検出回路435から出力された信号とコンテキスト管理簿エントリ449に含まれたEフィールドの値とが論理回路433に供給される。
【0092】
また、論理回路431〜433の出力信号は共にOR回路437へ入力され、OR回路437の出力信号は浮動小数点ロード命令実行部25及びコンテキスト使用不可割り込み制御部427へ供給される。
【0093】
次に、第六検出部447は、供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ449に含まれたEフィールドに0の値が格納され、かつ浮動小数点レジスタ39を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0094】
ここで、図14に示されるように、第六検出部447は、FR検出回路435と、論理回路431とを含む。そして、命令デコード部17から供給された浮動小数点演算命令は、そのまま浮動小数点演算命令実行部29へ出力されると共にFR検出回路435へ入力される。また、FR検出回路435から出力された信号とコンテキスト管理簿エントリ449に含まれたEフィールドの値とが論理回路432へ供給される。また、論理回路432の出力信号は浮動小数点演算命令実行部29及びコンテキスト使用不可割り込み制御部427へ供給される。
【0095】
また、本実施の形態2に係る計算機におけるコンテキスト切り替え動作は、上記実施の形態1に係る計算機と同様に、図4及び図5に示されたフローチャートに従って説明される。そして、所望のコンテキストが使用できない場合の割り込み動作についても同様に、上記実施の形態1で示された図6及び図7のフローチャートに従って説明される。
【0096】
以上より、本実施の形態2に係る計算機は、上記実施の形態1に係る計算機と同様な効果を奏すると共に、コンテキスト切り替えにおいて汎用レジスタ37の上位領域と下位領域とを区別した上で制御するため、コンテキスト切り替えを最小限の範囲で可能とすることにより、さらに効率的に汎用レジスタ37を活用することができる。
[実施の形態3]
図15は、本発明の実施の形態3に係る計算機の構成を示す図である。図15に示されるように、本実施の形態3に係る計算機は、図3に示された実施の形態1に係る計算機と同様な構成を有するが、コンテキストブロック管理簿421の代わりに、アドレスフィールド(PTR)を含むコンテキスト管理簿エントリ458,459を有するコンテキストブロック管理簿457を備える点で相違する。
【0097】
ここで、上記アドレスフィールド(PTR)は、所定のコンテキストブロックに対応したメモリ1内のコンテキスト域を示すアドレスを格納する。
【0098】
以下において、本実施の形態3に係る計算機におけるコンテキスト切り替え動作を、図16に示されたフローチャートを参照しつつ説明する。
【0099】
まず、ステップS1において、現コンテキストに対応するメモリ1上のコンテキスト域へ現コンテキストの基本ブロックを退避する。次に、ステップS2において、新コンテキストに対応するメモリ1上のコンテキスト域から新コンテキストの基本ブロックを復元する。またステップS3においては、コンテキストブロック管理簿457の新コンテキストの基本ブロックに対応するEフィールドに1の値を格納する。
【0100】
そして、ステップS4において、コンテキストブロック管理簿457に含まれる新コンテキストの基本ブロックに対応するアドレスフィールド(PTR)に、新たなコンテキスト域のアドレスを格納する。次に、ステップS5において、コンテキストブロック管理簿457に含まれる該新コンテキストの基本ブロックに対応しないEフィールドに0の値を格納し、コンテキストの切り替え動作を終了する。
【0101】
次に、所望のコンテキストが使用できない場合の割り込み動作を、図17に示されるフローチャートを参照しつつ説明する。図17に示されるように、ステップS1においては割り込み処理プログラムが動作する上で最低限必要なコンテキストを退避する。そして、ステップS2においてコンテキストブロック識別レジスタ(CTXTID)419に格納されたコンテキストブロック識別情報を読み出し、切り替え対象とするコンテキストブロックを求める。
【0102】
次に、ステップS3においては、コンテキストブロック管理簿457内の切り替え対象コンテキストブロックに対応するアドレスフィールド(PTR)から、格納されている旧コンテキスト域のアドレスを読み出す。そして、ステップS4においては、該アドレスに対応するメモリ1上のコンテキスト域へ切り替え対象コンテキストブロックを退避する。次に、ステップS5において、コンテキストブロック管理簿457に含まれる新コンテキストの基本コンテキストブロックに対応するアドレスフィールド(PTR)から現コンテキストに対応するアドレスを読み出す。
【0103】
そして、ステップS6において、該現コンテキストに対応するメモリ1上のコンテキスト域から切り替え対象とするコンテキストブロックを読み出し、復元する。次に、ステップS7において、コンテキストブロック管理簿457内の切り替え対象とするコンテキストブロックに対応するアドレスフィールド(PTR)に、現コンテキストに対応するアドレスを格納し、現コンテキスト域を設定する。
【0104】
また、ステップS8では、コンテキストブロック管理簿457内の切り替え対象コンテキストブロックのEフィールドに1を格納し、ステップS9では、割り込み処理プログラムが実行される上で最低限必要とされたコンテキストを復元する。そして、ステップS10では、割り込み復帰命令の実行により、コンテキスト切り替えのための割り込み動作から復帰して、本動作を終了する。
【0105】
以上より、本実施の形態3に係る計算機は、上記実施の形態1に係る計算機と同様な効果を奏すると共に、コンテキストに対応したアドレスに応じてコンテキストを切り替えるため、コンテキストの切り替えにおける自由度を高めることができる。
[実施の形態4]
図18は、本発明の実施の形態4に係る計算機の構成を示す図である。図18に示されるように、本実施の形態4に係る計算機は、図11に示された実施の形態2に係る計算機と同様な構成を有するが、コンテキストブロック管理簿450の代わりに、アドレスフィールド(PTR)を含むコンテキスト管理簿エントリ458〜460を有するコンテキストブロック管理簿461を備える点で相違する。
【0106】
ここで、図18に示された計算機におけるコンテキスト切り替え動作は、上記実施の形態3に係る計算機と同様に、図16に示されたフローチャートに従って説明される。そして、所望のコンテキストが使用できない場合の割り込み動作についても同様に、上記実施の形態3で示された図17のフローチャートに従って説明される。
【0107】
以上より、本実施の形態4に係る計算機は、上記実施の形態2に係る計算機と同様な効果を奏すると共に、上記実施の形態3に係る計算機と同様に、さらにコンテキストの切り替えにおける自由度を高めることができる。
【0108】
[実施の形態5]
図19は、本発明の実施の形態5に係る計算機の構成を示す図である。なお、本実施の形態5に係る計算機におけるコンテキスト対象は、上記表3に示されたコンテキスト対象と同じものとされる。
【0109】
図19に示されるように、本実施の形態5に係る計算機は、図18に示された実施の形態4に係る計算機と同様な構成を有するが、第五検出部445,446の代わりに第七検出部463,464を備え、第六検出部447の代わりに第八検出部465を備える点で相違する。
【0110】
ここで、第七検出部463,464は、互いに同様な構成を有すると共に、いずれも供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ458に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の下位領域を参照または変更する命令が供給された場合、またはコンテキスト管理簿エントリ459に含まれたEフィールドに0の値が格納され、かつ汎用レジスタ37の上位領域を参照または変更する命令が供給された場合、あるいはコンテキスト管理簿エントリ460に含まれたEフィールドに0の値が格納され、かつ浮動小数点レジスタ39を参照または変更する命令が供給された場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0111】
ここで、図20は第七検出部463の構成を示す。図20に示されるように、第七検出部463は、下位GR検出回路451と、上位GR検出回路453と、浮動小数点(F)命令検出回路469と、論理回路431〜433と、OR回路437とを含む。ここで、F命令検出回路469は、実行の対象とする命令が浮動小数点ロード命令、浮動小数点ストア命令、浮動小数点演算命令、浮動小数点比較命令のいずれかであることを検出する。
【0112】
そして、命令デコード部17から供給された浮動小数点ロード命令は、そのまま浮動小数点ロード命令実行部25へ出力されると共に下位GR検出回路451と上位GR検出回路453、及びF命令検出回路469へ入力される。また、下位GR検出回路451から出力された信号とコンテキスト管理簿エントリ458に含まれたEフィールドの値とが論理回路431に供給され、上位GR検出回路453から出力された信号とコンテキスト管理簿エントリ459に含まれたEフィールドの値とが論理回路432に供給され、F命令検出回路469から出力された信号とコンテキスト管理簿エントリ460に含まれたEフィールドの値とが論理回路433に供給される。
【0113】
また、論理回路431〜433の出力信号は共にOR回路437へ入力され、OR回路437の出力信号は浮動小数点ロード命令実行部25及びコンテキスト使用不可割り込み制御部427へ供給される。
【0114】
次に、第八検出部465は、供給された命令の実行において参照または変更するレジスタが現コンテキストとされているか否かを判定する。そして、コンテキスト管理簿エントリ460に含まれたEフィールドに0の値が格納され、かつ実行対象命令が浮動小数点演算命令など浮動小数点についての命令である場合には、コンテキスト使用不可割り込み制御部427へ割込信号を供給する。
【0115】
そして、第八検出部465の構成が図21に示される。図21に示されるように、第八検出部465は、F命令検出回路469と、論理回路431とを含む。ここで、命令デコード部17から供給された浮動小数点演算命令は、そのまま浮動小数点演算命令実行部29へ出力されると共にF命令検出回路469へ入力される。また、F命令検出回路469から出力された信号とコンテキスト管理簿エントリ460に含まれたEフィールドの値とが論理回路432へ供給される。そして、論理回路432の出力信号は浮動小数点演算命令実行部29及びコンテキスト使用不可割り込み制御部427へ供給される。
【0116】
また、図19に示された計算機におけるコンテキスト切り替え動作は、上記実施の形態3に係る計算機と同様に、図16に示されたフローチャートに従って説明される。そして、所望のコンテキストが使用できない場合の割り込み動作についても同様に、上記実施の形態3で示された図17のフローチャートに従って説明される。
【0117】
以上より、本実施の形態5に係る計算機は、上記実施の形態4に係る計算機と同様な効果を奏すると共に、第七検出部463,464及び第八検出部465において浮動小数点についての命令であることが検出されたことに応じて、浮動小数点に関する演算のためのコンテキスト切り替えが実行されるため、浮動小数点演算の信頼性を高めることができる。
【0118】
【発明の効果】
上述の如く、コンテキスト対象であるハードウェア資源を複数の領域に分割したコンテキストブロックに基づいて、複数のプログラムを時分割して並列処理する計算機であって、第1プログラムを実行するときに必要とされる第1コンテキストブロック及び第2コンテキストブロックにおいて、第2プログラムを実行するときに、前記第1プログラムによって使用されている前記第1コンテキストブロックに格納されている第1情報と前記第2プログラムで使用する第3情報とが異なる場合には前記第1コンテキストブロックに格納されている前記第1情報を退避させ、前記第1情報と前記第3情報とが一致する場合には前記第1情報を退避させず、前記第2プログラムの実行において必要になった時点で、前記第1プログラムで使用されている前記第2コンテキストブロックに格納されている第2情報と前記第2プログラムで使用する第4情報とが異なる場合には前記第2コンテキストブロックに格納されている前記第2情報を退避させ、前記第2情報と前記第4情報とが一致する場合には前記第2情報を退避させないこととするため、該第2情報を退避させる時点までは、第2コンテキストブロックを第2プログラムを実行するために使用することができるため、計算機のハードウェア資源をより効率的に使用することができる。
【0119】
また、発生された割り込み処理において識別情報を記憶すると共に、第1コンテキストブロックに格納されている第1情報を退避させるものとすれば、プログラム全体の規模を低減できるため、計算機全体の回路規模を小さくし、かつ動作の高速化を図ることができる。
【0121】
最後に本発明の課題を解決するための手段について付記する。
(1)複数の領域に分割されたハードウェア資源を用いることにより、複数のプログラムを時分割して並列処理する計算機であって、第二のプログラムを実行するときにおいて必要とされる第一の領域が、第一のプログラムを実行するために既に使用されている場合には、第一のプログラムを識別する識別情報を記憶すると共に、第一の領域に格納されている情報を退避させる退避手段と、第二のプログラムの実行が終了あるいは中断したときには、退避手段により退避された情報を識別情報に応じて第一の領域に復元する復元手段とを備えたことを特徴とする計算機。
(2)退避手段は、退避させる情報が格納されている領域を識別する領域識別情報を保持する領域識別情報保持手段と、それぞれの領域に対応して設けられ、上記領域が使用不可能であるか否かを示す複数のフラグと、それぞれの領域に対応して設けられ、領域に格納されている情報を識別するコンテキスト識別情報を保持するコンテキスト識別情報保持手段と、第二のプログラムを実行するときにおいて必要とされる第一の領域が、使用不可能であるか否かをフラグの値に応じて判定する判定手段とを含み、判定手段により第一の領域が使用不可能であると判定された場合において、第一の領域を識別する領域識別情報を領域識別情報保持手段へ格納すると共に、退避させた情報を識別するコンテキスト識別情報をコンテキスト識別情報保持手段へ格納し、フラグを使用可能であることを示す値に設定する(1)に記載の計算機。このような手段によれば、使用不可能であるか否かがフラグの値に応じて容易に判定されるため、動作をさらに高速化することができる。
(3)コンテキスト識別情報保持手段は、コンテキストを特定する番号を保持する(2)に記載の計算機。このような手段によれば、コンテキストの退避及び復元を容易に実行することができるため、コンテキストの切り替えを確実に高速化することができる。
(4)コンテキスト識別情報保持手段は、退避させた情報が格納される記憶領域を指定するアドレスを保持する(2)に記載の計算機。このような手段によれば、コンテキストの切り替えにおける自由度を高めることができるため、汎用性を向上させることができる。
(5)複数の領域に分割されたハードウェア資源を用いることにより、複数のプログラムを時分割して並列処理する計算機の制御方法であって、第二のプログラムを実行するときにおいて必要とされる第一の領域が、第一のプログラムを実行するために既に使用されている場合には、第一のプログラムを識別する識別情報を記憶すると共に、第一の領域に格納されている情報を退避させる第一のステップと、第二のプログラムの実行が終了あるいは中断したときには、退避された情報を識別情報に応じて第一の領域に復元する第二のステップとを有することを特徴とする計算機の制御方法。
(6)第一のステップでは、第二のプログラムを実行するときにおいて必要とされる第一の領域が、第一のプログラムを実行するために既に使用されている場合に割り込み処理を発生させ、割り込み処理において、識別情報を記憶すると共に、第一の領域に格納されている情報を退避させる(5)に記載の計算機の制御方法。
(7)第一のステップでは、退避させた情報を特定する番号を保持する(5)に記載の計算機の制御方法。
(8)第一のステップでは、退避させた情報が格納される記憶領域を指定するアドレスを保持する(5)に記載の計算機の制御方法。
【図面の簡単な説明】
【図1】汎用レジスタと浮動小数点レジスタとを有する従来の計算機の構成を示す図である。
【図2】図1に示された計算機におけるコンテキスト切り替え動作を示すフローチャートである。
【図3】本発明の実施の形態1に係る計算機の構成を示す図である。
【図4】本発明の実施の形態1に係るコンテキスト切り替え方法を説明するフローチャートである。
【図5】図3に示された計算機によるコンテキスト切り替え動作を説明するフローチャートである。
【図6】本発明の実施の形態1に係るコンテキスト使用不可割り込み処理方法を説明するフローチャートである。
【図7】図3に示された計算機によるコンテキスト使用不可割り込み処理動作を説明するフローチャートである。
【図8】図3に示された第一検出部の構成を示す図である。
【図9】図3に示された第二検出部の構成を示す図である。
【図10】図3に示された第三検出部の構成を示す図である。
【図11】本発明の実施の形態2に係る計算機の構成を示す図である。
【図12】図11に示された第四検出部の構成を示す図である。
【図13】図11に示された第五検出部の構成を示す図である。
【図14】図11に示された第六検出部の構成を示す図である。
【図15】本発明の実施の形態3に係る計算機の構成を示す図である。
【図16】図15に示された計算機によるコンテキスト切り替え動作を説明するフローチャートである。
【図17】図15に示された計算機によるコンテキスト使用不可割り込み処理動作を説明するフローチャートである。
【図18】本発明の実施の形態4に係る計算機の構成を示す図である。
【図19】本発明の実施の形態5に係る計算機の構成を示す図である。
【図20】図19に示された第七検出部の構成を示す図である。
【図21】図19に示された第八検出部の構成を示す図である。
【符号の説明】
1 メモリ
3 命令読み出し部
6,400,440,467 命令実行部
8,402,448,455,462 レジスタ制御部
9,404 割り込み制御部
11 命令読出制御部
13 プログラムカウンタ(PC)
15 命令語レジスタ(IR)
17 命令デコード部
19 ロード命令実行部
21 ストア命令実行部
22 演算命令実行部
23 命令実行回路
25 浮動小数点(F)ロード命令実行部
27 浮動小数点(F)ストア命令実行部
29 浮動小数点(F)演算命令実行部
30 条件レジスタ(COND)
31 レジスタ(EPCR)
33 レジスタ(EPSR)
35 レジスタ(PSR)
37 汎用レジスタ(GR)
39 浮動小数点レジスタ(FR)
40 割込制御回路
405〜408 第一検出部
409,410 第二検出部
411 第三検出部
413 切り替え対象コンテキストブロック読み出し命令実行部
415 コンテキストブロック管理簿読み出し命令実行部
417 コンテキストブロック管理簿書き込み命令実行部
419 コンテキストブロック識別レジスタ(CTXTID)
421,450,457,461 コンテキストブロック管理簿
423,425,449,458〜460 コンテキスト管理簿エントリ
427 コンテキスト使用不可割り込み制御部
429 GR検出回路
431〜433 論理回路
435 FR検出回路
437 OR回路
441〜444 第四検出部
445,446 第五検出部
447 第六検出部
451 下位GR検出回路
453 上位GR検出回路
463,464 第七検出部
465 第八検出部
469 F(浮動小数点)命令検出回路
Claims (7)
- コンテキスト対象であるハードウェア資源を複数の領域に分割したコンテキストブロックに基づいて、複数のプログラムを時分割して並列処理する計算機であって、
第1プログラムを実行するときに必要とされる第1コンテキストブロック及び第2コンテキストブロックにおいて、第2プログラムを実行するときに、前記第1プログラムによって使用されている前記第1コンテキストブロックに格納されている第1情報と前記第2プログラムで使用する第3情報とが異なる場合には前記第1コンテキストブロックに格納されている前記第1情報を退避させ、前記第1情報と前記第3情報とが一致する場合には前記第1情報を退避させず、前記第2プログラムの実行において必要になった時点で、前記第1プログラムで使用されている前記第2コンテキストブロックに格納されている第2情報と前記第2プログラムで使用する第4情報とが異なる場合には前記第2コンテキストブロックに格納されている前記第2情報を退避させ、前記第2情報と前記第4情報とが一致する場合には前記第2情報を退避させない退避部と
を有することを特徴とする計算機。 - 復元部を有し、
前記退避部は、前記第1コンテキストブロックに格納されている前記第1情報を退避させるときに、前記第1プログラムを識別する識別情報を記憶し、
前記復元部は、前記第2プログラムの実行が終了あるいは中断したときに、前記退避部により退避させた情報を前記識別情報に応じて前記第1コンテキストブロック及び第2コンテキストブロックに復元することを特徴とする請求項1記載の計算機。 - 前記第1プログラムを実行するときにおいて必要とされる前記第1コンテキストブロックが、前記第2プログラムを実行するために既に使用されている場合に、割り込み処理を発生させる割り込み手段をさらに備え、
退避部は、前記割り込み手段により発生された前記割り込み処理において、前記識別情報を記憶すると共に、前記第1コンテキストブロックに格納されている前記第1情報を退避させる請求項2に記載の計算機。 - 退避部は、退避させる情報が格納されているコンテキストブロックを識別する領域識別情報を保持する領域識別情報保持手段と、それぞれのコンテキストブロックに対応して設けられ、コンテキストブロックが使用不可能であるか否かを示す複数のフラグと、それぞれのコンテキストブロックに対応して設けられ、コンテキストブロックに格納されている情報を識別するコンテキスト識別情報を保持するコンテキスト識別情報保持手段と、第1プログラムを実行するときにおいて必要とされる第1コンテキストブロックが、使用不可能であるか否かをフラグの値に応じて判定する判定手段とを含み、判定手段により第1コンテキストブロックが使用不可能であると判定された場合において、第1コンテキストブロックを識別する領域識別情報を領域識別情報保持手段へ格納すると共に、退避させた前記第1情報を識別するコンテキスト識別情報をコンテキスト識別情報保持手段へ格納し、フラグを使用可能であることを示す値に設定する請求項2又は3記載の計算機。
- コンテキスト対象であるハードウェア資源を複数の領域に分割したコンテキストブロックに基づいて、複数のプログラムを時分割して並列処理する計算機の制御方法であって、
第1プログラムを実行するときに必要とされる第1コンテキストブロック及び第2コンテキストブロックにおいて、第2プログラムを実行するときに、前記第1プログラムによって使用されている前記第1コンテキストブロックに格納されている第1情報と前記第2プログラムで使用する第3情報とが異なる場合には前記第1コンテキストブロックに格納されている前記第1情報を退避させ、前記第1情報と前記第3情報とが一致する場合には前記第1情報を退避させず、前記第2プログラムの実行において必要になった時点で、前記第1プログラムで使用されている前記第2コンテキストブロックに格納されている第2情報と前記第2プログラムで使用する第4情報とが異なる場合には前記第2コンテキストブロックに格納されている前記第2情報を退避させ、前記第2情報と前記第4情報とが一致する場合には前記第2情報を退避させない第1ステップと
を有することを特徴とする計算機の制御方法。 - 第2ステップを有し、
前記第1ステップは、前記第1コンテキストブロックに格納されている前記第1情報を退避させるときに、前記第1プログラムを識別する識別情報を記憶し、
前記第2ステップは、前記第2プログラムの実行が終了あるいは中断したときに、前記退避部により退避させた情報を前記識別情報に応じて前記第1コンテキストブロック及び第2コンテキストブロックに復元することを特徴とする請求項5記載の計算機の制御方法。 - 前記第1ステップでは、前記第1プログラムを実行するときにおいて必要とされる前記第1コンテキストブロックが、前記第2プログラムを実行するために既に使用されている場合に割り込み処理を発生させ、割り込み処理において、識別情報を記憶すると共に、前記第1コンテキストブロックに格納されている前記第1情報を退避させる請求項6記載の計算機の制御方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000099707A JP4116752B2 (ja) | 2000-03-31 | 2000-03-31 | 計算機とその制御方法 |
US09/768,630 US20010049781A1 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP07101868A EP1785862A3 (en) | 2000-02-29 | 2001-01-25 | Method and apparatus for pipeline processing |
EP01300675A EP1132813A3 (en) | 2000-02-29 | 2001-01-25 | Computer with high-speed context switching |
EP07101869A EP1785863A3 (en) | 2000-02-29 | 2001-01-25 | A divider comprising a carry save adder and a full adder |
KR1020010006093A KR100732426B1 (ko) | 2000-02-29 | 2001-02-08 | 고속 컨텍스트 전환을 갖는 컴퓨터 |
US12/073,042 US20080215859A1 (en) | 2000-02-29 | 2008-02-28 | Computer with high-speed context switching |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000099707A JP4116752B2 (ja) | 2000-03-31 | 2000-03-31 | 計算機とその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001282550A JP2001282550A (ja) | 2001-10-12 |
JP4116752B2 true JP4116752B2 (ja) | 2008-07-09 |
Family
ID=18614024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000099707A Expired - Fee Related JP4116752B2 (ja) | 2000-02-29 | 2000-03-31 | 計算機とその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4116752B2 (ja) |
-
2000
- 2000-03-31 JP JP2000099707A patent/JP4116752B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001282550A (ja) | 2001-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7590774B2 (en) | Method and system for efficient context swapping | |
US6209085B1 (en) | Method and apparatus for performing process switching in multiprocessor computer systems | |
EP0476722B1 (en) | Data processing system | |
US6009509A (en) | Method and system for the temporary designation and utilization of a plurality of physical registers as a stack | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
JP2017037370A (ja) | 計算機、プロセス制御方法およびプロセス制御プログラム | |
EP0239078A2 (en) | Register saving/restoring system | |
JP4116752B2 (ja) | 計算機とその制御方法 | |
US4797816A (en) | Virtual memory supported processor having restoration circuit for register recovering | |
US4816992A (en) | Method of operating a data processing system in response to an interrupt | |
US5784606A (en) | Method and system in a superscalar data processing system for the efficient handling of exceptions | |
EP0297892B1 (en) | Apparatus and method for control of asynchronous program interrupt events in a data processing system | |
JPS61184643A (ja) | 仮想計算機の起動制御方式 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP2004178427A (ja) | 中央処理装置 | |
JP2920968B2 (ja) | 命令処理順序制御方式 | |
JP4370227B2 (ja) | プロセッサ | |
JP2001134449A (ja) | データ処理装置とその制御方法 | |
JP2847729B2 (ja) | 情報処理装置 | |
JPH0756633B2 (ja) | タスク切換え方式 | |
JPH02214938A (ja) | データ処理装置 | |
JPH06295265A (ja) | 仮想記憶制御における命令中断情報格納制御方法 | |
JPH06162067A (ja) | ベクトル命令制御装置および制御方法 | |
JP2506591B2 (ja) | 補助処理装置 | |
JPS5846444A (ja) | 電子計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071015 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071030 |
|
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: 20080408 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080418 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 3 |
|
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: 20110425 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |