(57)【要約】【課題】データキャッシュ時にミスヒット状態が発生しても、情報処理装置の使用効率の低下を抑制することを目的とする。【解決手段】第二のプログラムカウンタ１１４，第二のプログラムカウンタ１１４のアドレスに対応する命令データを格納する第２のメモリ１４０，アドレスを選択するセレクタ１１５とデータを選択するセレクタ１１６とを有することにより、キャッシュメモリ１２１がミスヒットした場合に、第二プログラムカウンタ１１４から出力される命令アドレスで示される命令データをＣＰＵ実行部１１２へ供給することで、ＣＰＵ１１０を停止させることなく処理を続けることが可能となり、ＣＰＵ１１０の使用効率の低下を抑制することができる。【選択図】　　図１
2004038600.tif 000002
【特許請求の範囲】
【請求項１】
第一のタスクの命令アドレスを格納する第一のプログラムカウンタと前記第一のタスクの命令アドレスに対応する第一のタスクの命令データを格納する第一のメモリと前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと命令を実行するＣＰＵ実行部とを備える情報処理装置であって、
第二のタスクの命令アドレスを格納する第二のプログラムカウンタと、
前記第二のタスクの命令アドレスに対応する第二のタスクの命令データを格納する第二のメモリと、
前記キャッシュメモリがキャッシュヒットしている場合は前記第一のプログラムカウンタの命令アドレスを選択しキャッシュミスしている場合は前記第二のプログラムカウンタの命令アドレスを選択して前記ＣＰＵ実行部に出力する第一のセレクタと、
前記キャッシュメモリがキャッシュヒットしている場合は前記第一のメモリまたはキャッシュメモリから出力される第一のタスクの命令データを選択しキャッシュミスしている場合は前記第二のタスクの命令データを選択して前記ＣＰＵ実行部に出力する第二のセレクタと
を有し、キャッシュミスによる第一のタスクの命令処理中断中に、第二のタスクの命令処理を行うことを特徴とする情報処理装置。
【請求項２】
次サイクルで処理を行う命令データをあらかじめ格納するバッファを備えた請求項１記載の情報処理装置であって、
前記バッファに次サイクルで処理を行う命令データが格納されている場合には前記バッファの命令データを処理し、
前記バッファに次サイクルで処理を行う命令データが格納されておらず、かつ、前記キャッシュメモリがキャッシュヒットしている場合には前記第一のタスクの命令データを処理し、
前記バッファに次サイクルで処理を行う命令データが格納されておらず、かつ、前記キャッシュメモリがキャッシュミスしている場合には前記第二のタスクの命令データを処理することを特徴とする請求項１記載の情報処理装置。
【請求項３】
キャッシュヒットしている時間を測定するタイマを備えた請求項１記載の情報処理装置であって、
任意に設定した時間だけキャッシュヒットが継続すると前記第二のタスクの命令データを処理し、第一または第二のタスクの命令処理が続いた場合でも、任意に設定した時間間隔で前記第二のタスクの命令データと前記第一のタスクの命令データの処理を繰り返し行うことを特徴とする請求項１記載の情報処理装置。
【請求項４】
第一のタスクの命令アドレスを格納するプログラムカウンタと、
前記第一のタスクの命令アドレスに対応して命令データを格納するメモリと、前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと、
命令を実行するＣＰＵ実行部と、
第一のタスクの処理に影響を与えることがなく不特定な回路部位が動作するような命令データを生成する非依存命令生成機構と
を有し、キャッシュヒット時は前記キャッシュメモリの命令データを前記ＣＰＵ実行部に出力し、キャッシュミス時は前記非依存命令生成機構で生成した命令データを前記ＣＰＵ実行部に出力することを特徴とする情報処理装置。
【請求項５】
第一のタスクの命令アドレスを格納する第一の記憶装置と、
１または２以上の第二のタスクの命令アドレスをそれぞれ対応して格納する１または２以上の第二の記憶装置と、
前記第一，第二のタスクの命令アドレスに対応して命令データを格納するメモリと、
前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと、
命令を実行するＣＰＵ実行部と、
前記第一のタスクの命令アドレスを選択してキャッシュミスした時に任意の前記第二のタスクの命令アドレスを選択するタスク制御機構と
を有し、キャッシュミスによる第一のタスクの命令処理中断中に、１または２以上の第二のタスクの命令のうち任意のタスクの命令処理を行うことを特徴とする情報処理装置。
【請求項６】
前記第一の記憶装置として第一のプログラムカウンタを用い、前記第二の記憶装置として第二のプログラムカウンタを用いることを特徴とする請求項５記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキャッシュメモリを備えた情報処理装置に関するものである。
【０００２】
【従来の技術】
情報処理装置の処理速度が高速化し、外部メモリとのアクセスタイムの影響が大きくなったため、情報処理装置内部にキャッシュを備えることで情報処理装置の処理能力の向上が図られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の情報処理装置において、処理に必要なデータがキャッシュされず、ミスヒット状態が発生した場合、処理に必要なデータを読み込むために外部メモリにアクセスする必要が生じるため、その間、情報処理装置の処理が停止して情報処理装置の使用効率が低下するという問題点があった。
【０００４】
本発明の情報処理装置は、上記問題点を解決するために、データキャッシュ時にミスヒット状態が発生しても、情報処理装置の使用効率の低下を抑制することを目的とする。
【０００５】
また、処理を実行中に、各回路領域の電力消費状態を観測することにより、部外者が処理内容を推測することが可能であるが、電力消費状態を観測しても情報処理装置の処理内容の推測を困難とすることを目的とする。
【０００６】
さらに、キャッシュがヒットし続けた場合でも、特定のタスク以外の複数のタスクを実行することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１記載の情報処理装置は、第一のタスクの命令アドレスを格納する第一のプログラムカウンタと前記第一のタスクの命令アドレスに対応する第一のタスクの命令データを格納する第一のメモリと前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと命令を実行するＣＰＵ実行部とを備える情報処理装置であって、第二のタスクの命令アドレスを格納する第二のプログラムカウンタと、前記第二のタスクの命令アドレスに対応する第二のタスクの命令データを格納する第二のメモリと、前記キャッシュメモリがキャッシュヒットしている場合は前記第一のプログラムカウンタの命令アドレスを選択しキャッシュミスしている場合は前記第二のプログラムカウンタの命令アドレスを選択して前記ＣＰＵ実行部に出力する第一のセレクタと、前記キャッシュメモリがキャッシュヒットしている場合は前記第一のメモリまたはキャッシュメモリから出力される第一のタスクの命令データを選択しキャッシュミスしている場合は前記第二のタスクの命令データを選択して前記ＣＰＵ実行部に出力する第二のセレクタとを有し、キャッシュミスによる第一のタスクの命令処理中断中に、第二のタスクの命令処理を行うことを特徴とする。
【０００８】
請求項２記載の情報処理装置は、請求項１記載の情報処理装置において、次サイクルで処理を行う命令データをあらかじめ格納するバッファを備えた請求項１記載の情報処理装置であって、前記バッファに次サイクルで処理を行う命令データが格納されている場合には前記バッファの命令データを処理し、前記バッファに次サイクルで処理を行う命令データが格納されておらず、かつ、前記キャッシュメモリがキャッシュヒットしている場合には前記第一のタスクの命令データを処理し、前記バッファに次サイクルで処理を行う命令データが格納されておらず、かつ、前記キャッシュメモリがキャッシュミスしている場合には前記第二のタスクの命令データを処理することを特徴とする。
【０００９】
請求項３記載の情報処理装置は、請求項１記載の情報処理装置において、キャッシュヒットしている時間を測定するタイマを備えた請求項１記載の情報処理装置であって、任意に設定した時間だけキャッシュヒットが継続すると前記第二のタスクの命令データを処理し、第一または第二のタスクの命令処理が続いた場合でも、任意に設定した時間間隔で前記第二のタスクの命令データと前記第一のタスクの命令データの処理を繰り返し行うことを特徴とする。
【００１０】
請求項４記載の情報処理装置は、第一のタスクの命令アドレスを格納するプログラムカウンタと、前記第一のタスクの命令アドレスに対応して命令データを格納するメモリと、前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと、命令を実行するＣＰＵ実行部と、第一のタスクの処理に影響を与えることがなく不特定な回路部位が動作するような命令データを生成する非依存命令生成機構とを有し、キャッシュヒット時は前記キャッシュメモリの命令データを前記ＣＰＵ実行部に出力し、キャッシュミス時は前記非依存命令生成機構で生成した命令データを前記ＣＰＵ実行部に出力することを特徴とする。
【００１１】
請求項５記載の情報処理装置は、第一のタスクの命令アドレスを格納する第一の記憶装置と、１または２以上の第二のタスクの命令アドレスをそれぞれ対応して格納する１または２以上の第二の記憶装置と、前記第一，第二のタスクの命令アドレスに対応して命令データを格納するメモリと、前記第一のタスクの命令アドレスに対応する第一のタスクの命令データの一部を格納するキャッシュメモリと、命令を実行するＣＰＵ実行部と、前記第一のタスクの命令アドレスを選択してキャッシュミスした時に任意の前記第二のタスクの命令アドレスを選択するタスク制御機構とを有し、キャッシュミスによる第一のタスクの命令処理中断中に、１または２以上の第二のタスクの命令のうち任意のタスクの命令処理を行うことを特徴とする。
【００１２】
請求項６記載の情報処理装置は、請求項５記載の情報処理装において、前記第一の記憶装置として第一のプログラムカウンタを用い、前記第二の記憶装置として第二のプログラムカウンタを用いることを特徴とする。
この構成により、データキャッシュ時にミスヒット状態が発生しても、情報処理装置の使用効率の低下を抑制することができる。
【００１３】
また、電力消費状態を観測しても情報処理装置の処理内容の推測を困難とすることができる。
さらに、キャッシュがヒットし続けた場合でも、特定のタスク以外の複数のタスクを実行することができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について、図を用いて詳細に説明する。
（実施の形態１）
以下、本発明の実施の形態１における情報処理装置について、図１，図２を用いて説明する。
【００１５】
図１は本発明の実施の形態１における情報処理装置の構成を示すブロック図である。図２（ａ）は従来技術における処理サイクル図、図２（ｂ）は本発明の実施の形態１における処理サイクル図を示す。
【００１６】
図１において、情報処理装置１００は、ＣＰＵ１１０、キャッシュ制御部１２０、第一メモリ１３０および第二メモリ１４０から構成される。
ＣＰＵ１１０は、ＣＰＵ制御部１１１およびＣＰＵ実行部１１２から構成される。
【００１７】
ＣＰＵ制御部１１１は第一プログラムカウンタ１１３、第二プログラムカウンタ１１４、セレクタ１１５およびセレクタ１１６から構成され、ＣＰＵ１１０の命令フェッチ時にキャッシュ制御部１２０にフェッチ要求信号を出力する。
【００１８】
キャッシュ制御部１２０は、キャッシュメモリ１２１とセレクタ１２２から構成される。
キャッシュメモリ１２１は、第一メモリアドレスバスでアクセスされるデータがキャッシュされている場合、キャッシュされているデータをキャッシュデータ出力としてセレクタ１２２へ出力すると同時に、キャッシュ状態信号として”１”をセレクタ１２２、セレクタ１１５、セレクタ１１６へ出力する。また、第一メモリアドレスバスでアクセスされるデータがキャッシュされていない場合、キャッシュ状態信号として”０”をセレクタ１２２、セレクタ１１５、セレクタ１１６へ出力する。
【００１９】
第一プログラムカウンタ１１３は第一タスクのプログラムカウンタであり、格納されている値を第一メモリアドレスバスへ出力し、第一メモリアドレスバスはセレクタ１１５、キャッシュメモリ１２１および第一メモリ１３０に接続される。
【００２０】
第二プログラムカウンタ１１４は第二タスクのプログラムカウンタであり、格納されている値を第二メモリアドレスバスへ出力し、第二メモリアドレスバスはセレクタ１１５、および第二メモリ１４０に接続される。
【００２１】
第一メモリ１３０は第一タスクの命令が格納され、第一メモリアドレスバスから入力される値をアクセスアドレスとして第一メモリ１３０内のデータを第一データバスへ出力し、この出力データはセレクタ１２２に入力される。
【００２２】
第二メモリ１４０は第二タスクの命令が格納され、第二メモリアドレスバスから入力される値をアクセスアドレスとして第二メモリ１４０内のデータを第二データバスへ出力し、この出力データはセレクタ１１６に入力される。
【００２３】
セレクタ１２２はキャッシュメモリ１２１より出力されるキャッシュ状態信号が”１”の時にキャッシュメモリ１２１が出力するキャッシュデータ出力をキャッシュ制御データ出力としてセレクタ１１６へ出力し、キャッシュメモリ１２１より出力されるキャッシュ状態信号が”０”の時に第一メモリ１３０が出力する第一データバスの値をキャッシュ制御データ出力としてセレクタ１１６へ出力する。
【００２４】
セレクタ１１５はキャッシュメモリ１２１より出力されるキャッシュ状態信号が”１”の時に第一プログラムカウンタ１１３の値を命令実行アドレスとしてＣＰＵ実行部１１２へ出力し、キャッシュメモリ１２１より出力されるキャッシュ状態信号が”０”の時に第二プログラムカウンタ１１４の値を命令実行アドレスとしてＣＰＵ実行部１１２へ出力する。
【００２５】
セレクタ１１６はキャッシュメモリ１２１より出力されるキャッシュ状態信号が”１”の時にセレクタ１２２が出力するキャッシュ制御部データ出力を命令データとしてＣＰＵ実行部１１２へ出力し、キャッシュメモリ１２１より出力されるキャッシュ状態信号が”０”の時に第二メモリ１４０が出力する第二データバスの値を命令データとしてＣＰＵ実行部１１２へ出力する。
【００２６】
以上のように構成された情報処理装置について、以下その動作を説明する。
まず、ＣＰＵ制御部１１１はキャッシュ制御部１２０へフェッチ要求信号に”１”を出力する。キャッシュ制御部１２０は、フェッチ要求信号が”１”となることで、第一プログラムカウンタ１１３の出力である第一メモリアドレスバスで示されるアドレスに対してキャッシュメモリ１２１へアクセスを開始し、同時に、第二プログラムカウンタ１１４の出力である第二メモリアドレスバスで示されるアドレスに対して第二メモリ１４０へアクセスを開始する。
【００２７】
ここで、キャッシュメモリ１２１が第一メモリアドレスバスで示されているアドレスのデータをキャッシュしている場合、キャッシュ状態信号として”１”が出力され、同時に、キャッシュデータ出力にキャッシュされているデータが出力される。また、キャッシュメモリ１２１から出力されるキャッシュ状態信号が”１”であるので、セレクタ１２２はキャッシュメモリ１２１の出力であるキャッシュデータ出力信号をキャッシュ制御部データ出力としてセレクタ１１６へ出力し、セレクタ１１５は第一プログラムカウンタ１１３の出力を命令実行アドレスとしてＣＰＵ実行部１１２へ出力し、セレクタ１１６はキャッシュ制御部データ出力を命令データとしてＣＰＵ実行部１１２へ出力する。
【００２８】
キャッシュメモリ１２１に第一メモリアドレスバスの値で示されているアドレスのデータをキャッシュしていない場合、キャッシュメモリ状態信号として”０”が出力される。セレクタ１１５は、キャッシュメモリ状態信号が”０”であるので、第二プログラムカウンタ１１４の出力を命令実行アドレスとしてＣＰＵ実行部１１２へ出力し、セレクタ１１６は第二メモリ１４０から出力される第二データバスの値を命令データとしてＣＰＵ実行部１１２へ出力する。
【００２９】
最後に、ＣＰＵ実行部１１２はセレクタ１１５の出力である命令実行アドレスとセレクタ１１６の出力である命令データにより命令を実行する。
図２において、列ａ〜列ｏはサイクル系列を示しており、列ａより列ｏへ進行することを示している。以下、列ａ〜列ｏをサイクルａ〜サイクルｏと表現する。
【００３０】
また、行イはＣＰＵ実行部で処理中のタスクを示し、行ロはＣＰＵ実行部において実行される命令アドレスを、行ハはＣＰＵ実行部において実行中の命令アドレスを、行ニは次サイクルにおいて実行される命令のフェッチ要求先アドレスを、行ホは行ニによって要求されたアドレスのキャッシュメモリの状態を示し、行ヘはキャッシュメモリから出力される命令アドレスを示している。
【００３１】
図２（ａ）において、サイクルａでは、命令アドレス１−１のデータがＣＰＵ実行部へ供給されて命令が実行されると共に、サイクルｂ実行のためにＣＰＵ制御部はキャッシュ制御部へ命令アドレス１−２のデータを要求しており、ここで、命令アドレス１−２のデータがキャッシュメモリに格納されているとすると、キャッシュメモリはキャッシュ状態信号に”１”を出力すると同時に命令アドレス１−２のデータをＣＰＵ制御部に出力している。
【００３２】
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部はキャッシュ制御部へ命令アドレス１−４のデータを要求し、ここで、命令アドレス１−４のデータがキャッシュメモリに格納されていないとすると、キャッシュメモリはキャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータはキャッシュメモリからＣＰＵ制御部に出力されず、メモリからデータを供給する。そのために、メモリからデータが供給されるまでのサイクルｄ〜サイクルｈの間、ＣＰＵは動作を停止する。
【００３３】
図２（ｂ）において、行チはＣＰＵ実行部１１２で処理中のタスクを示し、行リはＣＰＵ実行部１１２において実行される命令アドレスを、行ヌはＣＰＵ実行部１１２において実行中の命令アドレスを、行ルは次サイクルにおいて実行される命令のフェッチ要求先アドレスを、行ヲは行ルによって要求されたアドレスのキャッシュメモリ１２１の状態を示し、行ワはキャッシュメモリ１２１から出力される命令アドレスを示している。
【００３４】
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部１１１はキャッシュ制御部１２０へ命令アドレス１−４のデータを要求し、ここで、命令アドレス１−４のデータがキャッシュメモリ１２１に格納されていないとすると、キャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータはＣＰＵ制御部１１１に出力されず、第一メモリ１３０のデータが供給される。この時、キャッシュメモリ１２１より出力されるキャッシュ状態信号に”０”が出力されることにより、従来技術においてはＣＰＵの処理が停止する間に、ＣＰＵ実行部１１２へは第二プログラムカウンタ１１４で示されるアドレスおよびデータが供給されて処理される。つまり、サイクルｄ〜サイクルｈの間はＣＰＵ１１０は命令アドレス２−１〜命令アドレス２−５の命令データが供給されＣＰＵ１１０は停止することなく処理が行われる。
【００３５】
サイクルｈにおいて、サイクルｃで要求された命令アドレス１−４のデータがキャッシュメモリ１２１から出力可能な状態となり、キャッシュメモリ１２１より出力されるキャッシュ状態信号からは”１”が出力される。このことよりサイクルｃで要求された命令データ１−４はサイクルｈで供給され、サイクルｉより第一プログラムカウンタ１１３で示される処理が再開される。
【００３６】
このように、情報処理装置１００はキャッシュメモリ１２１がミスヒットした場合に、第二プログラムカウンタ１１４から出力される命令アドレスで示される命令データをＣＰＵ１１０へ供給することで、ＣＰＵ１１０を停止させることなく処理を続けることが可能となり、ＣＰＵ１１０の使用効率の低下を抑制することができる。
（実施の形態２）
本発明の実施の形態１により、ＣＰＵの使用効率の低下を抑制することが可能となったが、ＣＰＵ内部に次サイクル以降に使用される命令を先行的に蓄えておく命令バッファを設けている場合については考慮されていない。これを解決するのが実施の形態２である。
【００３７】
以下、図３，図４を用いて実施の形態２における情報処理装置について説明する。
図３は本発明の実施の形態２における情報処理装置の構成を示すブロック図である。図４（ａ）は従来技術における処理サイクル図，図４（ｂ）は本発明の実施の形態２における処理サイクル図である。
【００３８】
図３において、情報処理装置２００は、ＣＰＵ２１０、キャッシュ制御部２２０、第一メモリ２３０および第二メモリ２４０から構成される。
ＣＰＵ２１０は、ＣＰＵ制御部２１１およびＣＰＵ実行部２１２から構成される。
【００３９】
ＣＰＵ制御部２１１は第一プログラムカウンタ２１３、第二プログラムカウンタ２１４、セレクタ２１５、セレクタ２１６、バッファ２１７およびＯＲ回路２１８から構成され、キャッシュ制御部２２０にフェッチ要求信号を出力する。
【００４０】
キャッシュ制御部２２０は、キャッシュメモリ２２１とセレクタ２２２から構成される。
セレクタ２１５はＯＲ回路２１８から出力される信号が”１”の時第一プログラムカウンタ２１３の出力値を、ＯＲ回路２１８から出力される信号が”０”の時第二プログラムカウンタ２１４の出力値を命令実行アドレスとしてＣＰＵ実行部２１２へ出力する。
【００４１】
セレクタ２１６はＯＲ回路２１８から出力される信号が”１”の時バッファ２１７から出力されるバッファデータ出力を命令データとしてＣＰＵ実行部２１２へ出力し、ＯＲ回路２１８から出力される信号が”０”の時第二データバスの値を命令データとしてＣＰＵ実行部２１２へ出力する。
【００４２】
セレクタ２２２はキャッシュメモリ２２１より出力されるキャッシュ状態信号が”１”の時キャッシュデータ出力をキャッシュ制御データ出力としてバッファ２１７へ出力し、キャッシュメモリ２２１より出力されるキャッシュ状態信号が”０”の時第一データバスの値をキャッシュ制御データ出力としてバッファ２１７へ出力する。
【００４３】
キャッシュメモリ２２１は、第一メモリアドレスバスでアクセスされるデータがキャッシュされている場合、キャッシュされているデータをキャッシュデータ出力としてセレクタ２２２へ出力すると同時に、キャッシュ状態信号として”１”をセレクタ２２２、ＯＲ回路２１８へ出力する。また、第一メモリアドレスバスでアクセスされるデータがキャッシュされていない場合、キャッシュ状態信号として”０”をセレクタ２２２、ＯＲ回路２１８へ出力する。
【００４４】
第一プログラムカウンタ２１３は第一タスクのプログラムカウンタであり、格納されている値を第一メモリアドレスバスへ出力し、セレクタ２１５、キャッシュメモリ２２１および第一メモリ２３０に入力する。
【００４５】
第二プログラムカウンタ２１４は第二タスクのプログラムカウンタであり、格納されている値を第二メモリアドレスバスに出力し、セレクタ２１５、および第二メモリ２４０に入力する。
【００４６】
第一メモリ２３０は第一タスクの命令が格納され、第一メモリアドレスバスの値をアクセスアドレスとし、メモリ内のデータを第一データバスへ出力し、セレクタ２２２に入力する。
【００４７】
第二メモリ２４０は第二タスクの命令が格納され、第二メモリアドレスバスの値をアクセスアドレスとしてメモリ内のデータを第二データバスへ出力してセレクタ２１６に入力する。
【００４８】
バッファ２１７はセレクタ２２２の出力値を入力してこの値を保持する。また、バッファ２１７に保持されている内容が有効であれば、バッファデータ出力へ保持されている値を出力すると同時にバッファ有効信号に”１”を出力し、バッファ２１７に保持されている内容が有効でない場合は、バッファ有効信号に”０”を出力する。
【００４９】
ＯＲ回路２１８はキャッシュメモリ２２１からの出力であるキャッシュ状態信号とバッファ２１７の出力であるバッファ有効信号を入力としこれらの論理和をセレクタ２１５およびセレクタ２１６へ出力する。
【００５０】
以上のように構成された情報処理装置について、以下その動作を説明する。
ここでは、キャッシュメモリ２２１の出力であるキャッシュデータ出力およびセレクタ２２２の出力であるキャッシュ制御部データ出力は２命令長の転送能力を持つとする。
【００５１】
まず、ＣＰＵ制御部２１１はバッファ２１７から出力されるバッファ有効信号が”１”の時、ＯＲ回路２１８の出力が”１”となることから、バッファ２１７の出力バッファデータ出力がセレクタ２１６により選択されてこれを命令データとしてＣＰＵ実行部２１２へ出力し、同時にセレクタ２１５により第一プログラムカウンタ２１３の値がＣＰＵ実行部へ命令実行アドレスとして出力される。
【００５２】
また、ＣＰＵ制御部２１１はバッファ２１７から出力されるバッファ有効信号が”０”の時、キャッシュ制御回路２２０へフェッチ要求信号として”１”が出力される。キャッシュ制御部２２０はフェッチ要求信号が”１”となることで第一プログラムカウンタ２１３の出力である第一メモリアドレスバスの値で示されるアドレスに対してキャッシュメモリ２２１へアクセスを開始し、また同時に、第二プログラムカウンタ２１４の出力である第二メモリアドレスバスの値で示されるアドレスに対して第二メモリ２４０へアクセスを開始する。
【００５３】
次に、キャッシュメモリ２２１が第一メモリアドレスバスの値で示されているアドレスのデータをキャッシュしている場合、キャッシュメモリ２２１が第一メモリアドレスバスの値で示されているアドレスのデータをキャッシュしている時にはキャッシュ状態信号に”１”が出力され、同時にキャッシュデータ出力にキャッシュされている２命令長のデータが出力される。
【００５４】
ここで、キャッシュメモリ２２１から出力されるキャッシュ状態信号が”１”であるので、セレクタ２２２はキャッシュメモリ２２１の出力であるキャッシュデータ出力信号をキャッシュ制御部データ出力としてバッファ２１７へ出力する。同時に、バッファ２１７はこの出力であるバッファデータ出力をセレクタ２１６へ出力し、バッファ有効信号に”１”を出力する。
【００５５】
バッファ２１７の出力であるバッファ有効信号に”１”が出力されることでＯＲ回路２１８は”１”を出力し、これによりセレクタ２１５は第一プログラムカウンタ２１３の出力を命令実行アドレスとしてＣＰＵ実行部２１２へ出力し、また、セレクタ２１６はバッファデータ出力を命令データとしてＣＰＵ実行部２１２へ出力する。
【００５６】
また、キャッシュメモリ２２１が第一メモリアドレスバスの値で示されているアドレスのデータを出力をできる状態となった場合、キャッシュメモリ２２１が第一メモリアドレスバスの値で示されているアドレスのデータを出力できる状態となった時にはキャッシュ状態信号に”１”が出力され、同時にキャッシュデータ出力に２命令長のデータが出力される。
【００５７】
ここで、キャッシュメモリ２２１から出力されるキャッシュ状態信号が”１”であるので、セレクタ２２２はキャッシュメモリ２２１の出力であるキャッシュデータ出力信号をキャッシュ制御部データ出力としてバッファ２１７へ出力する。同時に、バッファ２１７はこの出力であるバッファデータ出力をセレクタ２１６へ出力し、バッファ有効信号に”１”を出力する。
【００５８】
次に、バッファ２１７の出力であるバッファ有効信号に”１”が出力されることでＯＲ回路２１８は”１”を出力し、これによりセレクタ２１５は第一プログラムカウンタ２１３の出力を命令実行アドレスとしてＣＰＵ実行部２１２へ出力し、また、セレクタ２１６はバッファデータ出力を命令データとしてＣＰＵ実行部２１２へ出力する。
【００５９】
キャッシュメモリ２２１に第一メモリアドレスバスの値で示されているアドレスのデータをキャッシュしていない場合、キャッシュメモリ２２１に第一メモリアドレスバスの値で示されているアドレスのデータをキャッシュしていない時にはキャッシュメモリ状態信号に”０”が出力される。キャッシュメモリ状態信号が”０”であり、バッファ２１７の出力であるバッファ有効信号が”０”を出力しているためＯＲ回路２１８は”０”を出力し、これによりセレクタ２１５は第二プログラムカウンタ２１４の出力を命令実行アドレスとしてＣＰＵ実行部２１２へ出力し、また、セレクタ２１６は第二メモリ２４０から出力される第二データバスの値を命令データとしてＣＰＵ実行部２１２へ出力する。
【００６０】
最後に、ＣＰＵ実行部２１２はセレクタ２１５の出力である命令実行アドレスとセレクタ２１６の出力である命令データにより命令を実行する。
図４において、列ａ〜列ｏはサイクル系列を示しており、列ａより列ｏへ進行することを示している。以下、列ａ〜列ｏをサイクルａ〜サイクルｏと表現する。
【００６１】
また、行イはＣＰＵ実行部で処理中のタスクを示し、行ロはＣＰＵ実行部において実行される命令アドレスを、行ハはＣＰＵ実行部において実行中の命令アドレスを、行ニはバッファの状態および保持しているデータのアドレスを示し、行ホはキャッシュ制御部へのフェッチ要求先アドレスを、行ヘは行ホによって要求されたアドレスのキャッシュメモリの状態を示し、行トはキャッシュメモリから出力される値の命令アドレスを示している。
【００６２】
図４（ａ）において、サイクルａでは、命令アドレス１−１のデータがＣＰＵ実行部へ供給されて命令が実行されると共に、サイクルｂ実行のためＣＰＵ制御部はバッファの出力であるバッファ有効信号が”０”であり無効であるので、ＣＰＵ制御部はキャッシュ制御部へ命令アドレス１−２のデータを要求しており、ここで、命令アドレス１−２および１−３のデータがキャッシュメモリに格納されているとすると、キャッシュメモリはキャッシュ状態信号に”１”を出力すると同時に２命令長である命令アドレス１−２のデータおよび命令アドレス１−３のデータをバッファを経由してバッファデータ出力がＣＰＵ制御部に出力している。
【００６３】
サイクルｂではサイクルｃの命令アドレス１−３のデータがバッファに格納されているため、フェッチ要求が発生せずに実行される。
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部はキャッシュ制御部へ命令アドレス１−４のデータを要求し、ここで、命令アドレス１−４のデータがキャッシュメモリに格納されていないとすると、キャッシュメモリはキャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータはキャッシュメモリからＣＰＵ制御部に出力されず、メモリからデータを供給する。そのために、メモリからデータが供給されるまでのサイクルｄ〜サイクルｈの間、ＣＰＵは動作を停止する。
【００６４】
図４（ｂ）において、行チはＣＰＵ実行部２１２で処理中のタスクを示し、行リはＣＰＵ実行部２１２において実行される命令アドレスを、行ヌはＣＰＵ実行部２１２において実行中の命令アドレスを、行ルはバッファ２１７の状態及び保持しているデータのアドレスを示し、行ヲはキャッシュ制御部２２０へのフェッチ要求先アドレスを、行ワは行ヲによって要求されたアドレスのキャッシュメモリ２２１の状態を示し、行カはキャッシュメモリ２２１から出力される値の命令アドレスを示し、行ヨはＣＰＵ実行部２１２へ入力される命令のアドレスを示している。
【００６５】
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部２１１はバッファ２１７の出力であるバッファ有効信号が”０”であり無効であるので、キャッシュ制御部２２０へ命令アドレス１−４のデータを要求し、ここで、命令アドレス１−４のデータがキャッシュメモリ２２１に格納されていないとすると、キャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータは命令制御部２１１に出力されず、第一メモリ２３０のデータが供給される。この時、キャッシュメモリ２２１より出力されるキャッシュ状態信号に”０”が出力されることにより、従来技術においてはＣＰＵの処理が停止する間に、ＣＰＵ実行部２１２へは第二プログラムカウンタ２１４で示されるアドレスおよびデータが供給されて処理される。つまり、サイクルｄ〜サイクルｈの間はＣＰＵ２１０は命令アドレス２−１〜命令アドレス２−５の命令データが供給されＣＰＵ２１０は停止することなく処理が行われる。
【００６６】
サイクルｈにおいて、サイクルｃで要求された命令アドレス１−４および命令アドレス１−５のデータがキャッシュメモリ２２１から出力可能な状態となり、キャッシュメモリ２２１より出力されるキャッシュ状態信号に”１”が出力される。このことによりＯＲ回路２１８から”１”が出力されセレクタ２１５およびセレクタ２１６が第一プログラムカウンタ２１３およびバッファデータ出力をＣＰＵ実行部２１２に出力し、サイクルｃで要求された命令データ１−４はサイクルｈで供給され、サイクルｉより処理１が再開される。
【００６７】
このように、情報処理装置２００はＣＰＵ内部に次サイクル以降に使用される命令を先行的に蓄えておく命令バッファを設けている場合においても、バッファ２１７の出力であるバッファ有効信号とＯＲ回路２１８を設けることにより、キャッシュメモリ２２１がミスヒットした場合に、第二プログラムカウンタ２１４から出力される命令アドレスで示される命令データをＣＰＵ２１０へ供給し、ＣＰＵ２１０を停止させることなく処理を続けることが可能となり、ＣＰＵ２１０の使用効率の低下を抑制することができる。
（実施の形態３）
本発明の実施の形態１において、ＣＰＵの使用効率低下を防ぐことが可能となったが、キャッシュメモリがヒットし続けた場合、特定のタスクのみ処理されるという状態が発生する。この問題を解決するのが実施の形態３である。
【００６８】
以下、図５，図６を用いて実施の形態３における情報処理装置について説明する。
図５は本発明の実施の形態３における情報処理装置の構成を示すブロック図である。図６（ａ）はキャッシュヒットが続いた場合の処理サイクル図，図６（ｂ）は本発明の実施の形態３における処理サイクル図である。
【００６９】
図５において、情報処理装置３００は、ＣＰＵ３１０、キャッシュ制御部３２０、第一メモリ３３０および第二メモリ３４０から構成される。
ＣＰＵ３１０は、ＣＰＵ制御部３１１およびＣＰＵ実行部３１２から構成される。
【００７０】
ＣＰＵ制御部３１１は第一プログラムカウンタ３１３、第二プログラムカウンタ３１４、セレクタ３１５、セレクタ３１６、タイマ３１７およびＡＮＤ回路３１８から構成され、キャッシュ制御部３２０にフェッチ要求信号を出力する。
【００７１】
キャッシュ制御部３２０は、キャッシュメモリ３２１とセレクタ３２２から構成される。
セレクタ３１５はＡＮＤ回路３１８から出力される信号が”１”の時第一プログラムカウンタ３１３の値を、ＡＮＤ回路３１８から出力される信号が”０”の時第二プログラムカウンタ３１４の値を命令実行アドレスとしてＣＰＵ実行部３１２へ出力する。
【００７２】
セレクタ３１６はＡＮＤ回路３１８から出力される信号が”１”の時セレクタ３２２から出力されるキャッシュ制御部データ出力を命令データとしてＣＰＵ実行部３１２へ出力し、ＡＮＤ回路３１８から出力される信号が”０”の時第二データバスの値を命令データとしてＣＰＵ実行部３１２へ出力する。
【００７３】
セレクタ３２２はキャッシュメモリ３２１より出力されるキャッシュ状態信号が”１”の時キャッシュデータ出力をキャッシュ制御データ出力としてセレクタ３１６へ出力し、キャッシュメモリ３２１より出力されるキャッシュ状態信号が”０”の時第一データバスの値をキャッシュ制御データ出力としてセレクタ３１６へ出力する。
【００７４】
キャッシュメモリ３２１は、第一メモリアドレスバスでアクセスされるデータがキャッシュされている場合、キャッシュされているデータをキャッシュデータ出力としてセレクタ３２２へ出力すると同時に、キャッシュ状態信号として”１”をセレクタ３２２、ＡＮＤ回路３１８へ出力する。また、第一メモリアドレスバスでアクセスされるデータがキャッシュされていない場合、キャッシュ状態信号として”０”をセレクタ３２２、ＡＮＤ回路３１８へ出力する。
【００７５】
第一プログラムカウンタ３１３は第一タスクのプログラムカウンタであり、格納されている値を第一メモリアドレスバスに出力し、セレクタ３１５、キャッシュメモリ３２１および第一メモリ３３０に入力する。
【００７６】
第二プログラムカウンタ３１４は第二タスクのプログラムカウンタであり、格納されている値を第二メモリアドレスバスに出力し、セレクタ３１５、および第二メモリ３４０に入力する。
【００７７】
第一メモリ３３０は第一タスクの命令が格納され、第一メモリアドレスバスの値をアクセスアドレスとし、メモリ内のデータを第一データバスへ出力し、セレクタ３２２に入力する。
【００７８】
第二メモリ３４０は第二タスクの命令が格納され、第二メモリアドレスバスの値をアクセスアドレスとしてメモリ内のデータを第二データバスへ出力し、セレクタ３１６に入力する。
【００７９】
タイマ３１７はある周期で交互に”１”，”０”の出力を繰り返し、この出力信号は強制切り替え要求としてＡＮＤ回路３１８に接続される。
ＡＮＤ回路３１８はキャッシュメモリ３２１からの出力であるキャッシュ状態信号とタイマ３１７の出力である強制切り替え要求を入力としこれらの論理積をセレクタ３１５およびセレクタ３１６へ出力する。
【００８０】
以上のように構成された情報処理装置について、以下その動作を説明する。
ただし、タイマ３１７の出力である強制切り替え要求が”１”である時は実施の形態１と同様の動作となるので説明を省略する。
【００８１】
タイマ３１７の出力である強制切り替え要求が”０”である時、キャッシュメモリ３２１より出力されるキャッシュ状態信号にかかわらず、ＡＮＤ回路３１８は”０”を出力する。
【００８２】
このことにより、セレクタ３１５は第二プログラムカウンタ３１４の出力を命令実行アドレスとしてＣＰＵ実行部３１２へ出力し、また、セレクタ３１６は第二メモリ３４０から出力される第二データバスの値を命令データとしてＣＰＵ実行部３１２へ出力する。
【００８３】
図６（ａ）において、列ａ〜列ｏはサイクル系列を示しており、列ａより列ｏへ進行することを示している。以下、列ａ〜列ｏをサイクルａ〜サイクルｏと表現する。
【００８４】
また、行イはＣＰＵ実行部３１２で処理中のタスクを示し、行ロはＣＰＵ実行部３１２において実行される命令アドレスを、行ハはＣＰＵ実行部３１２において実行中の命令アドレスを、行ニはキャッシュ制御部３２０へのフェッチ要求先アドレスを、行ホは行ニによって要求されたアドレスのキャッシュメモリ３２１の状態を示し、行ヘはキャッシュメモリ３２１から出力される値の命令アドレスを示し、行トはＣＰＵ実行部３１２へ入力される命令アドレスを示している。
【００８５】
まず、サイクルａでは、命令アドレス１−１のデータがＣＰＵ実行部へ供給されて命令が実行されると共に、サイクルｂ実行のためＣＰＵ制御部３１１はキャッシュ制御部３２０へ命令アドレス１−２のデータを要求しており、キャッシュメモリ３２１は命令アドレス１−２のデータが格納されているためにキャッシュ状態信号に”１”を出力すると同時に、命令アドレス１−２のデータをセレクタ３２２へ出力し、セレクタ３２２の出力であるキャッシュ制御データ出力がＣＰＵ制御部３１１に出力されている。同様の動作がサイクルｏまで継続し、処理１のみ実行される。
【００８６】
図６（ｂ）において、行チはＣＰＵ実行部で処理中のタスクを示し、行リはＣＰＵ実行部３１２において実行される命令アドレスを、行ヌはＣＰＵ実行部３１２において実行中の命令アドレスを、行ルはキャッシュ制御部３２０へのフェッチ要求先アドレスを、行ヲは行ルによって要求されたアドレスのキャッシュメモリ３２１の状態を示し、行ワはタイマ３１７より出力される強制切り替え要求の値を示し、行カはキャッシュメモリ３２１から出力される値の命令アドレスを示し、行ヨはＣＰＵ実行部へ入力される命令のアドレスを示している。
【００８７】
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部３１１はキャッシュ制御部３２０へ命令アドレス１−４のデータを要求し、キャッシュメモリ３２１は命令アドレス１−４のデータが格納されているためにキャッシュ状態信号に”１”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータがＣＰＵ制御部３１１に出力される。ここで、あらかじめ設定された時間を経過すると、タイマ３１７より強制切り替え要求の信号として”０”が出力され、ＣＰＵ実行部３１２へは第二プログラムカウンタ３１４で示されるアドレスおよびデータが供給される。このことによってサイクルｄ〜サイクルｈは処理２が実行される。
【００８８】
このように、情報処理装置３００はタイマ３１７を用意し強制切り替え要求として任意の間隔で０，１を出力させると共にＡＮＤ回路３１８を設けることで、キャッシュメモリ３２１がヒットし続けた場合にも、第二プログラムカウンタ３１４から出力される命令アドレスで示される命令データをＣＰＵ３１０へ供給することで、複数のタスクを実行することが可能となる。
（実施の形態４）
情報処理装置は、処理を実行中に、各回路領域の電力消費状態を観測することにより、部外者が処理内容を推測することが可能である。このことに対応するのが実施の形態４である。
【００８９】
以下、図７，図８を用いて実施の形態４における情報処理装置について説明する。
図７は本発明の実施の形態４における情報処理装置の構成を示すブロック図である。図８は本発明の実施の形態４における処理サイクル図である。
【００９０】
図７において、情報処理装置４００は、ＣＰＵ４１０、キャッシュ制御部４２０およびメモリ４３０から構成される。
ＣＰＵ４１０は、ＣＰＵ制御部４１１およびＣＰＵ実行部４１２から構成される。
【００９１】
ＣＰＵ制御部４１１はプログラムカウンタ４１３、非依存命令生成機構４１４およびセレクタ４１５から構成され、キャッシュ制御部４２０にフェッチ要求信号を出力する。
【００９２】
キャッシュ制御部４２０は、キャッシュメモリ４２１から構成される。
セレクタ４１５はキャッシュメモリ４２１より出力されるキャッシュ状態信号が”１”の時キャッシュ制御部データ出力を命令データとしてＣＰＵ実行部４１２へ出力し、キャッシュメモリ４２１より出力されるキャッシュ状態信号が”０”の時非依存命令生成機構４１４の出力を命令データとしてＣＰＵ実行部４１２へ出力する。
【００９３】
キャッシュメモリ４２１は、アドレスバスでアクセスされるデータがキャッシュされている場合、キャッシュされているデータをキャッシュデータ出力としてセレクタ４１５へ出力すると同時に、キャッシュ状態信号として”１”をセレクタ４１５および非依存命令生成機構４１４へ出力する。また、アドレスバスでアクセスされるデータがキャッシュされていない場合、キャッシュ状態信号として”０”をセレクタ４１５および非依存命令生成機構４１４へ出力する。
【００９４】
プログラムカウンタ４１３は処理タスクのプログラムカウンタであり、格納されている値をアドレスバス出力し、ＣＰＵ実行部４１２、キャッシュメモリ４２１およびメモリ４３０に入力する。
【００９５】
メモリ４３０は処理タスクの命令が格納され、アドレスバスの値をアクセスアドレスとしてメモリ内のデータをデータバスへ出力し、この出力をキャッシュメモリ４２１に入力する。
【００９６】
非依存命令生成機構４１４はキャッシュメモリ４２１より出力されるキャッシュ状態信号が”０”のとき、実行中の処理に影響を与えず、不特定な回路部位が動作するような命令データを生成し、これをセレクタ４１５へ出力する。
【００９７】
以上のように構成された情報処理装置について、以下その動作を説明する。
まず、ＣＰＵ制御部４１１はキャッシュ制御部４２０へフェッチ要求信号に”１”を出力する。キャッシュ制御部はフェッチ要求信号が”１”となることでプログラムカウンタ４１３の出力であるアドレスバスの値で示されるアドレスに対してキャッシュメモリ４２１へアクセスを開始する。
【００９８】
次に、キャッシュメモリ４２１がアドレスバスの値で示されているアドレスのデータをキャッシュしている場合、キャッシュメモリ４２１がアドレスバスの値で示されているアドレスのデータをキャッシュしている場合はキャッシュ状態信号に”１”が出力され、同時にキャッシュデータ出力にキャッシュされているデータが出力される。
【００９９】
ここで、キャッシュメモリ４２１から出力されるキャッシュ状態信号が”１”であるので、セレクタ４１５はキャッシュデータ出力を命令データとしてＣＰＵ実行部４１２へ出力する。
【０１００】
また、キャッシュメモリ４２１にアドレスバスの値で示されているアドレスのデータをキャッシュしていない場合、キャッシュメモリ状態信号に”０”が出力される。キャッシュメモリ状態信号が”０”であるので、非依存命令生成機構４１４は実行中の処理に影響を与えず、不特定な回路部位が動作するような命令データを生成し、セレクタ４１５は非依存命令生成機構４１４の出力を命令データとしてＣＰＵ実行部４１２へ出力する。
【０１０１】
最後に、ＣＰＵ実行部４１２はプログラムカウンタ４１３の値である命令実行アドレスとセレクタ４１５の出力である命令データにより命令を実行する。
図８において、列ａ〜列ｏはサイクル系列を示しており、列ａより列ｏへ進行することを示している。以下、列ａ〜列ｏをサイクルａ〜サイクルｏと表現する。
【０１０２】
図８（ａ）において、、行イはＣＰＵ実行部４１２で処理中のタスクを示し、行ロはＣＰＵ実行部４１２において実行される命令アドレスを、行ハはＣＰＵ実行部４１２において実行中の命令アドレスを、行ニは次サイクルにおいて実行される命令のフェッチ要求先アドレスを、行ホは行ニによって要求されたアドレスのキャッシュメモリ４２１の状態を示し、行ヘはキャッシュメモリ４２１から出力される値の命令アドレスを示して、行トはＣＰＵ実行部４１２へ入力される命令のアドレスを示している。
【０１０３】
サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部４１１はキャッシュ制御部４２０へ命令アドレス１−４のデータを要求し、ここで、キャッシュメモリ４２１は命令アドレス１−４のデータが格納されていないとすると、キャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータはＣＰＵ制御部４１１に出力されず、ＣＰＵ実行部４１２へは非依存命令生成機構４１４よりデータが供給される。
【０１０４】
このために、メモリ４３０からデータが供給されるまでのサイクルｄ〜サイクルｈの間、ＣＰＵ４１０は生成−１〜生成−５の命令データが供給されＣＰＵ４１０は停止することなく処理が行われる。
【０１０５】
次に、サイクルｈにおいて、サイクルｃで要求された命令アドレス１−４のデータがキャッシュメモリ４２１から出力可能な状態となり、キャッシュメモリ４２１より出力されるキャッシュ状態信号に”１”が出力される。このことによりサイクルｃで要求された命令データ１−４はサイクルｈで供給され、サイクルｉよりプログラムカウンタ４１３で示される処理が再開される。
【０１０６】
このように、情報処理装置４００はキャッシュメモリ４２１がミスヒットした場合に、非依存命令生成機構から出力される不特定な回路部位が動作するような命令データをＣＰＵ４１０へ供給することで、ＣＰＵ４１０を停止させることなく処理を続けることが可能となり、ＣＰＵ４１０の使用効率の低下を抑制すると共に、処理１に影響を与えることなく回路部位の電力消費状態の観測による処理１の内容の推測を困難にすることが可能である。
（実施の形態５）
本発明の実施の形態１において、ＣＰＵの使用効率の低下を抑制することが可能となったが、２つ以上の処理を切り替えることができない。この問題を解決するのが実施の形態５である。
【０１０７】
以下、図９，図１０を用いて実施の形態５における情報処理装置について説明する。
図９は本発明の実施の形態５における情報処理装置の構成を示すブロック図である。図１０は本発明の実施の形態５における処理サイクル図である。
【０１０８】
図９において、情報処理装置５００は、ＣＰＵ５１０、キャッシュ制御部５２０、およびメモリ５３０から構成される。
ＣＰＵ５１０は、ＣＰＵ制御部５１１およびＣＰＵ実行部５１２から構成される。
【０１０９】
ＣＰＵ制御部５１１はプログラムカウンタファイル５１５およびタスク制御機構５１６から構成されキャッシュ制御部５２０にフェッチ要求信号を出力する。プログラムカウンタファイル５１５はプログラムカウンタ群５１３とセレクタ５１４から構成される。
【０１１０】
プログラムカウンタ群５１３はｎ個のプログラムカウンタを持ち、第一のプログラムカウンタを第一プログラムカウンタ５１３１、第二のプログラムカウンタを第二プログラムカウンタ５１３２、第ｎのプログラムカウンタを第ｎプログラムカウンタ５１３ｎとする。
【０１１１】
キャッシュ制御部５２０は、キャッシュメモリ５２１とセレクタ５２２から構成される。
タスク制御機構５１６はセレクタ５１４を制御するための信号を出力し、キャッシュメモリ５２１より出力されるキャッシュ状態信号が”１”から”０”へ変化した場合、第一プログラムカウンタ５１３１以外の任意の第ｍプログラムカウンタ５１３ｍを選択し、この第ｍプログラムカウンタ５１３ｍに格納されている値を出力するための制御信号をタスク制御信号として出力する。また、キャッシュメモリ５２１より出力されるキャッシュ状態信号が”０”から”１”へ変化した場合、第一プログラムカウンタ５１３１を選択し、この第１プログラムカウンタ５１３１に格納されている値をタスク制御信号として出力する。
【０１１２】
セレクタ５１４はプログラムカウンタ群５１３に保持されている値の１つをキャッシュ状態信号によって選択するタスク制御信号を出力する。
セレクタ５２２はキャッシュメモリ５２１より出力されるキャッシュ状態信号が”１”の時キャッシュデータ出力をキャッシュ制御部データ出力としてＣＰＵ実行部５１２に出力し、キャッシュメモリ５２１より出力されるキャッシュ状態信号が”０”の時データバスの値をキャッシュ制御部データ出力としてＣＰＵ実行部５１２へ出力する。
【０１１３】
キャッシュメモリ５２１は、アドレスバスでアクセスされるデータがキャッシュされている場合、キャッシュされているデータをキャッシュデータ出力としてセレクタ５２２へ出力すると同時に、キャッシュ状態信号として”１”をセレクタ５２２、タスク制御機構５１６へ出力する。また、アドレスバスでアクセスされるデータがキャッシュされていない場合、キャッシュ状態信号として”０”をセレクタ５２２、タスク制御機構５１６へ出力する。
【０１１４】
メモリ５３０はアドレスバスの値をアクセスアドレスとしてメモリ内のデータをデータバスへ出力し、この出力をセレクタ５２２に入力する。
以上のように構成された情報処理装置について、以下その動作を説明する。
【０１１５】
まず、ＣＰＵ制御部５１１はキャッシュ制御部５２０へフェッチ要求信号として”１”を出力する。キャッシュ制御部５２０はフェッチ要求信号が”１”となることでセレクタ５１４の出力であるアドレスバスの値で示されるアドレスに対してキャッシュメモリ５２１へアクセスを開始する。
【０１１６】
まず、キャッシュ状態信号が変化しない場合はキャッシュメモリ５２１から出力されるキャッシュ状態信号によりセレクタ５２２が制御され、キャッシュ制御部データ出力がＣＰＵ実行部５１２へ出力される。
【０１１７】
次に、キャッシュ状態信号が”１”から”０”へ変化する場合、タスク制御機構５１６によりプログラムカウンタファイル５１５が制御され、ここでは、第ｍのプログラムカウンタが選択されたとすると、第ｍプログラムカウンタ５１３ｍの値に保持されていた値をアドレスとしてアドレスへメモリ５３０に対してアクセスが開始される。キャッシュ状態信号は”０”であるので、メモリ５３０から出力されたデータバスがセレクタ５２２によって選択されＣＰＵ実行部５１２へ出力される。
【０１１８】
次に、キャッシュ状態信号が”０”から”１”へ変化する場合、タスク制御機構５１６によりプログラムカウンタファイル５１５が制御され、第一プログラムカウンタ５１３の値に保持されていた値のアドレスに対するデータがキャッシュメモリ５２１からキャッシュデータ出力としてセレクタ５２２に出力される。キャッシュ状態信号は”１”であるので、キャッシュデータ出力がセレクタ５２２によって選択されＣＰＵ実行部５１２へ出力される。
【０１１９】
最後に、ＣＰＵ実行部５１２はプログラムカウンタ５１７の出力である命令実行アドレスとセレクタ５２２の出力である命令データにより命令を実行する。
図１０において、列ａ〜列ｏはサイクル系列を示しており、列ａより列ｏへ進行することを示している。以下、列ａ〜列ｏをサイクルａ〜サイクルｏと表現する。
【０１２０】
図１０（ａ）において、行イはＣＰＵ実行部５１２で処理中のタスクを示し、行ロはＣＰＵ実行部５１２において実行される命令アドレスを、行ハはＣＰＵ実行部５１２において実行中の命令アドレスを、行ニは次サイクルにおいて実行される命令のフェッチ要求先アドレスを、行ホは行ニによって要求されたアドレスのキャッシュメモリ５２１の状態を示し、行ヘはキャッシュメモリ５２１から出力される値の命令アドレスを示し、行トはＣＰＵ実行部５１２へ入力された命令データのアドレスを示す。
【０１２１】
まず、サイクルｃにおいて、サイクルｄ実行のためＣＰＵ制御部５１１はキャッシュ制御部５２０へ命令アドレス１−４のデータを要求し、キャッシュメモリ５２１は命令アドレス１−４のデータが格納されていないためキャッシュ状態信号に”０”を出力し、サイクルｄ実行に必要な命令アドレス１−４のデータはキャッシュメモリ５２１からは出力されない。キャッシュ状態信号が”１”から”０”へと変化したため、タスク制御機構５１６によりプログラムカウンタファイル５１５が制御され、アドレスバスには第二プログラムカウンタ５１３２に保持されていた値である２−１が出力されることになり、これによりメモリ５３０にアクセスが開始される。キャッシュメモリ５２１より出力されるキャッシュ状態信号からは”０”が出力されていることによりセレクタ５２２はデータバスからの入力をＣＰＵ実行部５１２へ出力する。
【０１２２】
次に、キャッシュヒットしないサイクルｄ〜サイクルｈの間はＣＰＵ５１０は命令アドレス２−１〜命令アドレス２−５の命令データが供給されＣＰＵ５１０は停止することなく処理が行われる。
【０１２３】
次に、サイクルｈにおいて、サイクルｃで要求された命令アドレス１−４のデータがキャッシュメモリ５２１から出力可能な状態となり、キャッシュメモリ５２１より出力されるキャッシュ状態信号に”１”が出力される。キャッシュ状態信号が”０”から”１”へと変化したため、タスク制御機構５１６によりプログラムカウンタファイル５１５が制御され、アドレスバスには１−４が出力されることになる。キャッシュメモリ５２１より出力されるキャッシュ状態信号からは”１”が出力されていることによりセレクタ５２２はキャッシュメモリ５２１から出力されるキャッシュデータ出力をＣＰＵ実行部へ出力する。
【０１２４】
このことによりサイクルｃで要求された命令データ１−４はサイクルｈで供給され、サイクルｉより第一プログラムカウンタ５１３１に保持されていた処理が再開される。
【０１２５】
このように、情報処理装置５００はキャッシュメモリ５２１がミスヒットした場合に、プログラムカウンタ５１７を切り替えることにより少なくとも２つの異なる処理を切り替えることができ、かつその処理を開始することで、ＣＰＵ５１０を停止させることなく処理を続けることが可能となり、ＣＰＵ５１０の使用効率の低下を抑制することができる。
【０１２６】
ここでは、命令アドレスの格納をプログラムカウンタを用いた場合について説明したが、その他の記憶装置を用いることも可能である。
【０１２７】
【発明の効果】
以上のように、本発明における情報処理装置によると、第二のプログラムカウンタ，第二のプログラムカウンタのアドレスに対応する命令データを格納する第２のメモリ，アドレスを選択するセレクタとデータを選択するセレクタとを有することにより、キャッシュメモリがミスヒットした場合に、第二プログラムカウンタから出力される命令アドレスで示される命令データをＣＰＵへ供給することで、ＣＰＵを停止させることなく処理を続けることが可能となり、ＣＰＵの使用効率の低下を抑制することができる。
【０１２８】
また、第二のプログラムカウンタ，第二のプログラムカウンタのアドレスに対応する命令データを格納する第２のメモリ，アドレスを選択するセレクタとデータを選択するセレクタとＯＲ回路とを有することにより、ＣＰＵ内部に次サイクル移行に使用される命令を先行的に蓄えておく命令バッファを設けている場合においても、バッファの出力であるバッファ有効信号とキャッシュ状態信号を論理和してアドレスを選択するセレクタとデータを選択するセレクタのコントロール信号とすることにより、キャッシュメモリがミスヒットした場合に、第二プログラムカウンタから出力される命令アドレスで示される命令データをＣＰＵへ供給することで、ＣＰＵを停止させることなく処理を続けることが可能となり、ＣＰＵの使用効率の低下を抑制することができる。
【０１２９】
また、第二のプログラムカウンタ，第二のプログラムカウンタのアドレスに対応する命令データを格納する第２のメモリ，アドレスを選択するセレクタとデータを選択するセレクタ，タイマとＡＮＤ回路とを有することにより、キャッシュメモリがヒットし続けた場合にも、任意の時間間隔で第二プログラムカウンタから出力される命令アドレスで示される命令データをＣＰＵへ供給することができ、複数のタスクを実行することが可能となる。
【０１３０】
また、キャッシュミス時には、実行中の命令に影響を与えず不特定な回路部位が動作するような命令を実行することにより、ＣＰＵを停止させることなく処理を続けることが可能となり、ＣＰＵの使用効率の低下を抑制すると共に、処理に影響を与ることなく回路部位の電力消費状態の観測による処理の内容の推測を困難にすることが可能である。
【０１３１】
また、複数のタスクの命令アドレスを保持する記憶装置を有し、キャッシュメモリがミスヒットした場合に、記憶装置を切り替えることにより複数の異なる処理に切り替えて処理をすることができるので、ＣＰＵを停止させることなく処理を続けることが可能となり、ＣＰＵの使用効率の低下を抑制することができると共に、特定のタスク以外の複数のタスクを実行することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１における情報処理装置の構成を示すブロック図
【図２】（ａ）従来技術における処理サイクル図
（ｂ）本発明の実施の形態１における処理サイクル図
【図３】本発明の実施の形態２における情報処理装置の構成を示すブロック図
【図４】（ａ）従来技術における処理サイクル図
（ｂ）本発明の実施の形態２における処理サイクル図
【図５】本発明の実施の形態３における情報処理装置の構成を示すブロック図
【図６】（ａ）キャッシュヒットが続いた場合の処理サイクル図
（ｂ）本発明の実施の形態３における処理サイクル図
【図７】本発明の実施の形態４における情報処理装置の構成を示すブロック図
【図８】本発明の実施の形態４における処理サイクル図
【図９】本発明の実施の形態５における情報処理装置の構成を示すブロック図
【図１０】本発明の実施の形態５における処理サイクル図
【符号の説明】
１００　　情報処理装置
１１０　　ＣＰＵ
１１１　　ＣＰＵ制御部
１１２　　ＣＰＵ実行部
１１３　　第一プログラムカウンタ
１１４　　第二プログラムカウンタ
１１５　　セレクタ
１１６　　セレクタ
１２０　　キャッシュ制御部
１２１　　キャッシュメモリ
１２２　　セレクタ
１３０　　第一メモリ
１４０　　第二メモリ
２００　　情報処理装置
２１０　　ＣＰＵ
２１１　　ＣＰＵ制御部
２１２　　ＣＰＵ実行部
２１３　　第一プログラムカウンタ
２１４　　第二プログラムカウンタ
２１５　　セレクタ
２１６　　セレクタ
２１７　　バッファ
２１８　　ＯＲ回路
２２０　　キャッシュ制御部
２２１　　キャッシュメモリ
２２２　　セレクタ
２３０　　第一メモリ
２４０　　第二メモリ
３００　　情報処理装置
３１０　　ＣＰＵ
３１１　　ＣＰＵ制御部
３１２　　ＣＰＵ実行部
３１３　　第一プログラムカウンタ
３１４　　第二プログラムカウンタ
３１５　　セレクタ
３１６　　セレクタ
３１７　　タイマ
３１８　　ＡＮＤ回路
３２０　　キャッシュ制御部
３２１　　キャッシュメモリ
３２２　　セレクタ
３３０　　第一メモリ
３４０　　第二メモリ
４００　　情報処理装置
４１０　　ＣＰＵ
４１１　　ＣＰＵ制御部
４１２　　ＣＰＵ実行部
４１３　　プログラムカウンタ
４１４　　非依存命令生成機構
４１５　　セレクタ
４２０　　キャッシュ制御部
４２１　　キャッシュメモリ
４３０　　メモリ
５００　　情報処理装置
５１０　　ＣＰＵ
５１１　　ＣＰＵ制御部
５１２　　ＣＰＵ実行部
５１３　　プログラムカウンタ群
５１３１　　第一プログラムカウンタ
５１３２　　第二プログラムカウンタ
５１３ｎ　　第ｎプログラムカウンタ
５１４　　セレクタ
５１５　　プログラムカウンタファイル
５１６　　タスク制御機構
５２０　　キャッシュ制御部
５２１　　キャッシュメモリ
５２２　　セレクタ
５３０　　第一メモリ
【図１】
2004038600.tif 000003
【図２】
2004038600.tif 000004
【図３】
2004038600.tif 000005
【図４】
2004038600.tif 000006
【図５】
2004038600.tif 000007
【図６】
2004038600.tif 000008
【図７】
2004038600.tif 000009
【図８】
2004038600.tif 000010
【図９】
2004038600.tif 000011
【図１０】
2004038600.tif 000012