(57)【特許請求の範囲】
【請求項１】
第１キューと、
第２キューと、
第１キュー及び／又は第２キューにおける所定の記憶アドレスにキャッシュデータを書き込むための書き込みポート群と、
前記第１キュー及び／又は前記第２キューから、全てのキャッシュデータを一括して読み出すための読み出しポートと、
前記第１キュー及び／又は前記第２キューにキャッシュデータをプッシュするためのプッシュポートと、
前記第１キューからキャッシュデータをポップするための第１ポップポートと、
前記第２キューからキャッシュデータをポップするための第２ポップポートと、を備えることを特徴とするキャッシュデバイス。
【請求項２】
前記書き込みポート群は、
書き込まれるキャッシュデータを受信するための書き込みデータポートと、
書き込まれるキャッシュデータの、前記第１キュー及び／又は前記第２キューに書き込まれた記憶アドレスを受信するための書き込みアドレスポートと、を備えることを特徴とする請求項１に記載のキャッシュデバイス。
【請求項３】
前記書き込みポート群は、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するための書き込みマスクポートをさらに備え、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、
前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じであることを特徴とする請求項２に記載のキャッシュデバイス。
【請求項４】
前記第１キューにおけるキャッシュデータの記憶状態を示すための第１空満状態フラグビット群と、
前記第２キューにおけるキャッシュデータの記憶状態を示すための第２空満状態フラグビット群と、をさらに備えることを特徴とする請求項１〜３のいずれか一項に記載のキャッシュデバイス。
【請求項５】
請求項１〜４のいずれか一項に記載のキャッシュデバイスを備え、前記キャッシュデバイスは第１キャッシュデバイスおよび第２キャッシュデバイスを含むことを特徴とする命令キャッシュ。
【請求項６】
請求項５に記載の命令キャッシュ、マルチコアプロセッサ、及び外部命令メモリを備える命令処理システムであって、
前記命令キャッシュは前記外部命令メモリ及び前記マルチコアプロセッサの複数の処理カーネルにそれぞれ接続され、
前記命令キャッシュは前記外部命令メモリにバスを介して接続されることを特徴とする命令処理システム。
【請求項７】
前記マルチコアプロセッサは、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュに提供するように構成され、
前記外部命令メモリは、命令を記憶するように構成され、
前記命令キャッシュは、欠落命令識別子を前記外部命令メモリに送信するとともに、前記外部命令メモリがバスを介して応答して書き戻した命令を取得するように構成されることを特徴とする請求項６に記載のシステム。
【請求項８】
前記第１キャッシュデバイスは、フェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子を第１キューにキャッシュして、外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子を第２キューにキャッシュするように構成され、
前記第２キャッシュデバイスは、前記第１キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第１キュー又は第２キューに記憶するように構成されることを特徴とする請求項７に記載のシステム。
【請求項９】
請求項６に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理方法であって、
外部命令メモリがアイドル状態にあると検出されると、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供することと、
外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップすることと、
第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第１ポップポート又は第２ポップポートを介してポップすることと、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信することと、を備えることを特徴とするデータ処理方法。
【請求項１０】
第２ターゲット処理カーネルに第２ターゲット欠落命令識別子に対するフェッチ欠落が発生したと検出されると、第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出すことと、
前記第１キャッシュデバイスの第１キュー及び第２キューのいずれにも前記第２ターゲット欠落命令識別子が記憶されていない場合、前記第２ターゲット欠落命令識別子を前記第１キュー及び前記第２キューに同時に記憶することと、
前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲットキャッシュデータを生成することと、
第２キャッシュデバイスのプッシュポートを介して、前記第２ターゲットキャッシュデータを前記第２キャッシュデバイスの第１キュー、又は第２キューにプッシュすることと、をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出した後に、さらに、
前記第１キャッシュデバイスの第１キュー又は第２キューに前記第２ターゲット欠落命令識別子が記憶されている場合、前記第２ターゲット欠落命令識別子の前記第１キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第３ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第２キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第３ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第２ターゲットフェッチ欠落識別子にマッチングする第２ターゲット処理カーネルのカーネル識別子を前記第２キャッシュデバイスに記憶することと、を備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
第１キャッシュデバイスの第１キューにキャッシュデータがない場合、第１キャッシュデバイスの第１空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第１キューが満杯である場合、第１キャッシュデバイスの第１空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューにキャッシュデータがない場合、第１キャッシュデバイスの第２空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューが満杯である場合、第１キャッシュデバイスの第２空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも１つをさらに備える請求項９〜１１のいずれか一項に記載の方法。
【請求項１３】
前記第１キャッシュデバイスの第１空満状態フラグビット群又は第２空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないことをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項１４】
請求項６に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理装置であって、
外部命令メモリがアイドル状態にあると検出される場合、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供するための第１ポップ処理モジュールと、
外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出される場合、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップするための第２ポップ処理モジュールと、
第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第２ポップポートを介してポップするための第３ポップ処理モジュールと、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュールと、を備えることを特徴とするデータ処理装置。
【請求項１５】
コンピュータ命令が記憶されている非一時的コンピュータ可読記憶媒体であって、前記コンピュータ命令が前記コンピュータに請求項９〜１３のいずれか一項に記載の方法を実行させることを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項１６】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項９〜１３のいずれか一項に記載の方法を実現する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、コンピュータハードウェア分野に関し、特にクラウドコンピューティング技術に関し、具体的にキャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラムに関する。
【背景技術】
【０００２】
マルチコアプロセッサにおけるカーネルは、命令キャッシュ（ｉｃａｃｈｅ）を介して外部命令メモリから命令処理を取得する。ｉｃａｃｈｅはバスを介して外部命令メモリに接続される。バスはｉｃａｃｈｅから送信された読み出し動作の応答に対しランダムな遅延を有し、バスが現在の読み出し動作に応答した後、ｉｃａｃｈｅが新たな読み出し動作を開始することができる。遅延時間内に、カーネルがｉｃａｃｈｅからフェッチ欠落が発生する可能性があり、これは処理開始されていない読み出し動作をキャッシュする必要がある。
【０００３】
従来技術では、一般的に一つのＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎｐｕｔ  Ｆｉｒｓｔ  Ｏｕｔｐｕｔ，先入れ先出し）メモリを使用してｉｃａｃｈｅに処理開始されていない欠落命令識別子をキャッシュし、他のＦＩＦＯを使用してバスにより応答されたが書き戻されていない欠落命令識別子をキャッシュする。現在は主にレジスタ群を使用して、開始された、バスにより応答されたが書き戻されていない欠落命令識別子を同期してキャッシュし、次のフェッチ欠落が発生した場合に、レジスタ群にキャッシュされた欠落命令識別子を検索することによって対応するフェッチ要求を開始する必要があるか否かを判定するとともに、別のレジスタ群を使用してどのカーネルにフェッチ欠落が発生したかを記録する。対応する命令がバスを介して書き戻されると、これらのカーネルに対応して書き戻すことができる。
【０００４】
発明者らは、本出願を実現するにあたり、従来技術では、欠落命令のフェッチ機能を実現するために、多くのＦＩＦＯ及びレジスタ群を使用する必要があり、制御が煩雑であることと、ＦＩＦＯ及びレジスタ群に重複した情報がキャッシュされてしまい、不要なリソースの浪費が発生してしまうことと、という欠点があることを見出す。
【発明の概要】
【０００５】
本出願の実施例は、新規な構造を有するキャッシュデバイスを設計することにより、欠落命令のフェッチ機能を実現するために必要なハードウェアコストを削減できる、キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラムを提供する。
【０００６】
第１態様によれば、本出願の実施例は、第１キュー、第２キュー、書き込みポート群、読み出しポート、第１ポップポート、第２ポップポート及びプッシュポートを備えるキャッシュデバイスを提供する。
前記書き込みポート群は、第１キュー及び／又は第２キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成され、
前記読み出しポートは、前記第１キュー及び／又は前記第２キューから、全てのキャッシュデータを一括して読み出すように構成され、
前記プッシュポートは、前記第１キュー及び／又は前記第２キューにキャッシュデータをプッシュするように構成され、
前記第１ポップポートは、前記第１キューからキャッシュデータをポップするように構成され、
前記第２ポップポートは、前記第２キューからキャッシュデータをポップするように構成される。
【０００７】
上記本出願における一実施例は、２つのキューに対するポップポートを設けることにより、該キャッシュデバイスは、命令欠落が発生する際に、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とを同時に記憶することができ、キャッシュデバイスの数が大幅に節約され、また、書き込みポート群及び読み出しポートを設けることにより、同様の構造を使用してフェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子をキャッシュして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【０００８】
選択可能に、前記書き込みポート群は具体的に、書き込みデータポート及び書き込みアドレスポートを備え、
前記書き込みデータポートは、書き込まれたキャッシュデータを受信するように構成され、
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第１キュー及び／又は前記第２キューに書き込まれた記憶アドレスを受信するように構成される。
【０００９】
上記本出願における一実施例は、書き込みデータポート及び書き込みアドレスポートを設けることにより、第１キュー又は第２キューの所定の記憶アドレスに、所望のキャッシュデータを書き込むことができ、さらにマルチコアプロセッサの異なる処理カーネルの、同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができるという利点又は有益な効果を有する。
【００１０】
選択可能に、前記書き込みポート群はさらに、書き込みマスクポートを備え、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成され、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【００１１】
上記本出願における一実施例は、書き込みマスクポートを設けることにより、キャッシュデバイスにおける記憶アドレスにおける特定のデータビットには、対応するキャッシュデータを正確に書き込むことができ、さらに欠落命令に対して送信されるフェッチ要求の処理カーネルの識別情報を更新して記憶することを実現することができ、限られた記憶空間を最大限に再利用して、処理性能を向上させることができるという利点又は有益な効果を有する。
【００１２】
選択可能に、第１空満状態フラグビット群及び第２空満状態フラグビット群をさらに備え、
前記第１空満状態フラグビット群は、前記第１キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第２空満状態フラグビット群は、前記第２キューにおけるキャッシュデータの記憶状態を示すように構成される。
【００１３】
上記本出願における一実施例は、第１空満状態フラグビット群及び第２空満状態フラグビット群を設けることにより、さらにキャッシュデバイスの機能を多様化にして、キャッシュデバイスにおける各キューの記憶状態をリアルタイムに取得することができ、さらに異なる記憶状態にマッチングする処理動作を実行することができるという利点又は有益な効果を有する。
【００１４】
第２態様によれば、本出願の実施例は、本出願の任意の実施例に記載の第１キャッシュデバイス及び第２キャッシュデバイスを備える命令キャッシュをさらに提供する。
上記本出願における一実施例は、命令キャッシュに上記新規な構造を有する第１キャッシュデバイス及び第２キャッシュデバイスを設けることにより、さらに命令キャッシュの性能を最適化することができ、特にフェッチシナリオにおいて、従来技術で複数のＦＩＦＯと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化するという利点又は有益な効果を有する。また、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができる。
【００１５】
第３態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令キャッシュ、マルチコアプロセッサ、及び外部命令メモリを備える命令処理システムをさらに提供する。
前記命令キャッシュは前記外部命令メモリ及び前記マルチコアプロセッサの複数の処理カーネルにそれぞれ接続され、前記命令キャッシュは前記外部命令メモリにバスを介して接続される。
【００１６】
選択可能に、前記マルチコアプロセッサは、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュに提供するように構成され、
前記外部命令メモリは、命令を記憶するように構成され、
前記命令キャッシュは、欠落命令識別子を前記外部命令メモリに送信するとともに、前記外部命令メモリがバスを介して応答して書き戻した命令を取得するように構成される。
【００１７】
選択可能に、前記第１キャッシュデバイスは、第１キューを使用してフェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子をキャッシュして、第２キューを使用して外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子をキャッシュするように構成され、
前記第２キャッシュデバイスは、第１キュー又は第２キューを使用して、前記第１キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を対応して記憶するように構成される。
【００１８】
上記本出願における一実施例は、命令処理システムに本出願の任意の実施例に記載の命令キャッシュを使用することにより、従来技術で複数のＦＩＦＯと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化することと、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができることと、の利点又は有益な効果を有する。
【００１９】
第４態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理方法をさらに提供し、
外部命令メモリがアイドル状態にあると検出されると、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供することと、
外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップすることと、
第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第２ポップポートを介してポップすることと、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信することと、を備える。
【００２０】
上記本出願における一実施例は、第１キャッシュデバイスに設けられた２つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とに対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第２キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【００２１】
選択可能に、さらに、
第２ターゲット処理カーネルに第２ターゲット欠落命令識別子に対するフェッチ欠落が発生したと検出されると、第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出すことと、
前記第１キャッシュデバイスの第１キュー及び第２キューのいずれにも前記第２ターゲット欠落命令識別子が記憶されていない場合、前記第２ターゲット欠落命令識別子を前記第１キュー及び前記第２キューに同時に記憶することと、
前記第２ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲットキャッシュデータを生成することと、
第２キャッシュデバイスのプッシュポートを介して、前記第２ターゲットキャッシュデータを前記第２キャッシュデバイスの第１キュー、又は第２キューにプッシュすることと、を備える。
【００２２】
上記本出願における一実施例は、命令キャッシュに第１キャッシュデバイスを設けることにより、命令欠落が発生する際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第２キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【００２３】
選択可能に、第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出した後に、
前記第１キャッシュデバイスの第１キュー又は第２キューに前記第２ターゲット欠落命令識別子が記憶されていると、前記第２ターゲット欠落命令識別子の前記第１キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第２ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第３ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第２キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第３ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第２ターゲットフェッチ欠落識別子にマッチングする第２ターゲット処理カーネルのカーネル識別子を前記第２キャッシュデバイスに記憶することと、をさらに備える。
【００２４】
上記本出願における一実施例は、第２キャッシュデバイスにおける書き込みポート群により、マルチコアプロセッサの異なる処理カーネルからの同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができることと、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができることとの利点又は有益な効果を有する。
【００２５】
選択可能に、さらに、
第１キャッシュデバイスの第１キューにキャッシュデータがない場合、第１キャッシュデバイスの第１空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第１キューが満杯である場合、第１キャッシュデバイスの第１空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューにキャッシュデータがない場合、第１キャッシュデバイスの第２空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューが満杯である場合、第１キャッシュデバイスの第２空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも１つを備える。
【００２６】
選択可能に、さらに、
前記第１キャッシュデバイスの第１空満状態フラグビット群又は第２空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルのフェッチ要求を受信しないことを備える。
【００２７】
第５態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理装置をさらに提供し、
外部命令メモリがアイドル状態にあると検出されると、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供するための第１ポップ処理モジュールと、
外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップするための第２ポップ処理モジュールと、
第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第２ポップポートを介してポップするための第３ポップ処理モジュールと、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュールと、を備える。
【００２８】
上記本出願における一実施例は、第１キャッシュデバイスに設けられた２つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とに対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第２キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【００２９】
第６態様によれば、本出願の実施例は、コンピュータに本出願の実施例のいずれかに記載の方法を実行させるためのコンピュータ命令が記憶されている非一時的コンピュータ可読記憶媒体をさらに提供する。
【００３０】
第７態様によれば、本出願の実施例は、コンピュータプログラムであって、前記コンピュータプログラムがプロセッサにより実行されると、本出願の実施例のいずれかに記載の方法を実現する、コンピュータプログラムを提供する。
【００３１】
上記本出願における一実施例は、第１キャッシュデバイスに設けられた２つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子に対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第２キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【００３２】
以下、上記のような選択可能な例に係る他の効果について、具体的な実施例を参照しながら説明する。
図面は、本出願の技術的解決手段をより良く理解するために使用され、本出願を限定するものではない。
【図面の簡単な説明】
【００３３】
【図１】図１は本出願の第１実施例に係るキャッシュデバイスの構造概略図である。
【図２】図２は本出願の第２実施例に係る命令キャッシュの構造概略図である。
【図３】図３は本出願の第３実施例に係る命令処理システムの構造概略図である。
【図４】図４は本出願の第４実施例に係るデータ処理方法を実施するフローチャートである。
【図５】図５は本出願の第５実施例に係るデータ処理方法を実施するフローチャートである。
【図６】図６は本出願の第６実施例に係るデータ処理装置の構造概略図である。
【発明を実施するための形態】
【００３４】
以下は、理解を容易にするために本出願の実施例の様々な詳細を含む添付図面を参照して、本出願の例示的な実施例を説明し、それらは単なる例示として見なされるべきである。したがって、当業者は、本出願の範囲及び精神から逸脱することなく、本明細書に記載された実施例に対して様々な変更及び修正を行うことができることを認識するであろう。同様に、以下の説明では、明確かつ簡潔にするために、周知の機能及び構造の説明を省略する。
【００３５】
（第１実施例）
【００３６】
図１は本出願の第１実施例に係るキャッシュデバイスの構造概略図であり、本実施例に係るキャッシュデバイスが命令キャッシュに適用することができ、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子、バスにより応答されたが書き戻されていないフェッチ欠落識別子及び前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子などの情報を記憶することができる。
【００３７】
図１に示すように、前記キャッシュデバイスは具体的に、第１キュー、第２キュー、書き込みポート群、読み出しポート、第１ポップポート、第２ポップポート及びプッシュポートを備えてもよい。
【００３８】
前記書き込みポート群は、第１キュー及び／又は第２キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成され、
前記読み出しポートは、前記第１キュー及び／又は前記第２キューから、全てのキャッシュデータを一括して読み出すように構成され、
前記プッシュポートは、前記第１キュー及び／又は前記第２キューにキャッシュデータをプッシュするように構成され、
前記第１ポップポートは、前記第１キューからキャッシュデータをポップするように構成され、
前記第２ポップポートは、前記第２キューからキャッシュデータをポップするように構成される。
【００３９】
具体的には、前記第１キュー及び第２キューは従来のＦＩＦＯメモリと類似し、先入れ先出しキューであり、従来のＦＩＦＯメモリの基本機能を実現することができる。２つのキューを設ける目的は、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子と、バスにより応答されたが書き戻されていないフェッチ欠落識別子とを１つのキャッシュデバイスで同時に記憶して、記憶デバイスの使用をさらに減らすことにある。
【００４０】
具体的には、前記フェッチ欠落識別子はフェッチ欠落が発生した命令の識別情報（身元識別情報ともいう）であってもよい。一般的に、ｉｃａｃｈｅはｐｃ（ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ、プログラムカウンタ）によって命令をマーク付けし、ｐｃは外部命令メモリにおける命令の相対アドレスを記録し、それに応じて、前記フェッチ欠落識別子は具体的にフェッチ欠落が発生した命令に対応するｐｃであってもよい。
【００４１】
１つのプッシュポートを設ける理由は、フェッチ欠落が発生すると、該フェッチ欠落に対応する欠落命令識別子は、フェッチ欠落が発生した時にバスにより応答されなかったことと、バスにより応答されたが書き戻されていないこととを同時に満たすことにある。したがって、１つのプッシュポートを介して、上記欠落命令識別子を第１キュー及び第２キューに同時にプッシュすることができる。典型的には、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子を第１キューで記憶することができ、バスにより応答されたが書き戻されていないフェッチ欠落識別子を第２キューで記憶することができる。
【００４２】
２つのポップポートを設ける理由は、外部命令メモリがアイドルにあると検出されると、第１キューから１つのフェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子を取得するとともに、上記フェッチ欠落識別子を第１ポップポートからポップして、外部命令メモリに提供して対応する命令書き戻し動作を行うことと、外部命令メモリは同一時間に１つの命令読み出し動作しか処理することができないため、外部命令メモリから書き戻し命令がフィードバックされたと検出されると、現在の第２キューに記憶された、バスにより応答されたが書き戻されていない最初のフェッチ欠落識別子が既に対応する書き戻し命令を受信したと意味するため、該第２キューにおける最初のフェッチ欠落識別子を第２ポップポートを介してポップして、キャッシュ空間を解放することができることとにある。
【００４３】
上記１つのキャッシュデバイスの２つのポップポートを介して、従来の欠落命令のフェッチ機能における２つのＦＩＦＯの機能を満たすことができ、キャッシュデバイスの数を低減し、さらに命令キャッシュ全体のサイズを削減させることができる。
【００４４】
さらに、書き込みポート群を使用することにより、１つの新しいキャッシュデバイスにおける第１キュー又は第２キューにおいて、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期して書き込むことができ、さらに外部命令キャッシュからフィードバックされた書き戻し命令を受信すると、１つのキャッシュデバイスの第２キューにおける最初のフェッチ欠落識別子を第２ポップポートを介してポップするとともに、第２キャッシュデバイスにおける第１キュー又は第２キューにキャッシュされた上記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第１ポップポート又は第２ポップポートを介してポップすることにより、上記書き戻し命令を具体的にどの処理カーネルに提供するかを判定し、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減される。
【００４５】
さらに、読み出しポートを使用して前記第１キュー及び／又は前記第２キューから、全てのキャッシュデータを読み出すことにより、処理カーネルから送信された新たなフェッチ欠落識別子を受信すると、上記フェッチ欠落識別子が他の処理カーネルにより送信されたことがあるか否かを迅速に識別し、新たなレジスタ群を導入して上記情報を重複して記憶する必要がなく、さらに複雑な論理制御が低減される。
【００４６】
上記の分析から明らかなように、上記の新規な構造を有するキャッシュデバイスを使用することによって、ハードウェアコストを最大限に削減した上で、従来の欠落命令のフェッチ機能を効果的に実現することができる。
【００４７】
本出願の実施例の技術的解決手段は、２つのキューに対するポップポートを設けることにより、該キャッシュデバイスは、命令欠落が発生する際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの数が大幅に低減され、また、書き込みポート群及び読み出しポートを設けることにより、同様な構造を使用してフェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子をキャッシュして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減される。
【００４８】
上記の各実施例に基づいて、前記書き込みポート群は具体的に、書き込みデータポート及び書き込みアドレスポートを備えてもよく、
前記書き込みデータポートは、書き込まれたキャッシュデータを受信するように構成され、
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第１キュー及び／又は前記第２キューに書き込まれた記憶アドレスを受信するように構成される。
【００４９】
具体的には、第１キュー又は第２キューにおいて、異なる記憶空間が異なる記憶アドレスに対応し、上記の書き込みポート群を設けることにより、第１キュー又は第２キューにおける特定の記憶アドレス（該アドレスには既にキャッシュデータが書き込まれている）に書き込まれたキャッシュデータを修正することができ、マルチコアプロセッサにおける複数の処理カーネルはいずれも同一の命令に対してフェッチ欠落が発生した場合に、異なる処理カーネルに対して、同一の欠落命令識別子を複数の記憶アドレスに複数回記憶する必要がなく、既に記憶された、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を更新して記憶すればよい。
【００５０】
具体的な例では、マルチコアプロセッサの処理カーネルの数にマッチングする１組のバイナリデータで上記処理カーネルを表し、例えば、処理カーネルの数が１２である場合に、上記１２個の処理カーネルを１組の１２ｂｉｔデータで同時に表すことができ、異なる処理カーネルが１２ｂｉｔデータの異なるデータビットに対応する。
【００５１】
例えば、第１データビットが処理カーネルＡに対応し、第２データビットが処理カーネルＢに対応し、第３データビットが処理カーネルＣに対応するなど、順に類推する。命令キャッシュが処理カーネルＡから送信された１つの欠落命令識別子を受信すると、対応して１組のデータ１０００００００００００を構築してプッシュポートを介して１つの上記構造のキャッシュデバイスにおける１つの記憶アドレス（例えば、記憶アドレスＸ）にプッシュし、命令キャッシュが再び処理カーネルＣから送信された同様の欠落命令識別子を受信すると、新たな記憶アドレスに、処理カーネルＣに対して該欠落命令識別子を再度重複して記憶する必要がなく、記憶アドレスＸに記憶されたデータを１０００００００００００から１０１０００００００００に更新するだけで、処理カーネルＡ及び処理カーネルＣには同時に上記の欠落命令識別子に対する命令欠落が発生したことを表すことができる。
【００５２】
典型的には、書き込みポートに書き込まれたキャッシュデータと、対応する記憶アドレスに現在記憶されているキャッシュデータとのフェッチ動作により、上記の所望の処理結果を得ることができる。
【００５３】
このように設定する利点は、書き込みデータポート及び書き込みアドレスポートを設けることにより、第１キュー又は第２キューの所定の記憶アドレスに、所望のキャッシュデータを書き込むことができ、さらにマルチコアプロセッサの異なる処理カーネルの、同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができる。
【００５４】
上記の各実施例に基づいて、前記書き込みポート群はさらに、書き込みマスクポートを備えてもよく、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成され、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【００５５】
前例で述べたような適用シナリオに対して、記憶アドレスＸに記憶されたデータを１０００００００００００から１０１０００００００００に更新する必要がある場合に、キャッシュデータの第３ビットを０から１に修正すればよく、したがってキャッシュデバイスにおける内部書き込み論理をさらに簡略化し、書き込みポート群に書き込みマスクポートを導入し、該書き込みマスクポートに書き込まれたマスク情報により、書き込みポートに書き込まれたキャッシュデータのうちどのデータビットが、対応する記憶アドレスに書き込まれる必要があるかを判定することができる。
【００５６】
前述したように、記憶アドレスＸにおけるキャッシュデータの第３データビットに１を書き込むなら、００１０００００００００のようなマスク情報及び００１０００００００００のようなキャッシュデータを設定し、マスク情報に入力された第３ビットの高レベル１により、キャッシュデータの第３ビット１を対応する記憶アドレスに書き込むことを指示することができる。
【００５７】
このように設定する利点は、書き込みマスクポートを設けることにより、キャッシュデバイスにおける記憶アドレスにおける特定のデータビットに、対応するキャッシュデータを書き込むことを正確に設けることができ、さらに欠落命令に対してフェッチ要求が送信された処理カーネルの識別情報を更新して記憶することを実現することができ、限られた記憶空間を最大限に再利用して、処理性能を向上させることができる。
【００５８】
上記の各実施例に基づいて、第１空満状態フラグビット群及び第２空満状態フラグビット群をさらに備えてもよく、
前記第１空満状態フラグビット群は、前記第１キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第２空満状態フラグビット群は、前記第２キューにおけるキャッシュデータの記憶状態を示すように構成される。
【００５９】
具体的には、前記第１空満状態フラグビット群は、第１空状態フラグビット及び第１満状態フラグビットを備えてもよく、前記第１空状態フラグビットは第１キューにいずれのキャッシュデータも記憶されていない場合に、目標レベル値（典型的には、ハイレベル１）に設定されて、第１キューの空記憶状態を示すように構成され、前記第１空状態フラグビットは第１キューの記憶空間にキャッシュデータが満杯で記憶されている場合に、目標レベル値に設定されて、第１キューの満記憶状態を示すように構成される。
【００６０】
同様に、前記第２空満状態フラグビット群は、第２空状態フラグビット及び第２満状態フラグビットを備え、前記第２空状態フラグビットは第２キューにいずれのキャッシュデータも記憶されていない場合に、目標レベル値（典型的には、ハイレベル１）に設定されて、第２キューの空記憶状態を示すように構成され、前記第２空状態フラグビットは第２キューの記憶空間にキャッシュデータが満杯で記憶されている場合に、目標レベル値に設定されて、第２キューの満記憶状態を示すように構成されてもよい。
【００６１】
このように設定する利点は、第１空満状態フラグビット群及び第２空満状態フラグビット群を設けることにより、さらにキャッシュデバイスの機能を多様化にすることができ、キャッシュデバイスにおける各キューの記憶状態をリアルタイムに取得することができ、さらに異なる記憶状態に応じた処理動作を実行することができることにある。
【００６２】
（第２実施例）
【００６３】
図２は本出願の第２実施例に係る命令キャッシュの構造概略図であり、本実施例に係る命令キャッシュは本出願の実施例に係るキャッシュデバイスを２つ使用する。
【００６４】
図２に示すように、前記命令キャッシュ２１０は、第１キャッシュデバイス２１１及び第２キャッシュデバイス２１２を備える。
【００６５】
上記の第１キャッシュデバイス２１１及び第２キャッシュデバイス２１２は、本出願の任意の実施例に記載のキャッシュデバイスの構成と同じである。
【００６６】
具体的に、前記第１キャッシュデバイス及び前記第２キャッシュデバイスのいずれは、第１キュー、第２キュー、書き込みポート群、読み出しポート、第１ポップポート、第２ポップポート及びプッシュポートを備える。
【００６７】
前記書き込みポート群は、第１キュー及び／又は第２キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成される。
【００６８】
前記読み出しポートは、前記第１キュー及び／又は前記第２キューから、全てのキャッシュデータを一括して読み出すように構成される。
【００６９】
前記プッシュポートは、前記第１キュー及び／又は前記第２キューにキャッシュデータをプッシュするように構成される。
【００７０】
前記第１ポップポートは、前記第１キューからキャッシュデータをポップするように構成される。
【００７１】
前記第２ポップポートは、前記第２キューからキャッシュデータをポップするように構成される。
【００７２】
具体的に、前記書き込みポート群は、書き込みデータポート及び書き込みアドレスポートを備えてもよい。
【００７３】
前記書き込みデータポートは、書き込まれるキャッシュデータを受信するように構成される。
【００７４】
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第１キュー及び／又は前記第２キューに書き込まれた記憶アドレスを受信するように構成される。
【００７５】
具体的に、前記書き込みポート群はさらに、書き込みマスクポートを備え、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成される。
【００７６】
前記マスク情報が前記記憶アドレスに書き込まれるキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【００７７】
具体的に、第１空満状態フラグビット群及び第２空満状態フラグビット群をさらに備え、
前記第１空満状態フラグビット群は、前記第１キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第２空満状態フラグビット群は、前記第２キューにおけるキャッシュデータの記憶状態を示すように構成される。
【００７８】
第１空満状態フラグビット群は具体的に第１空状態フラグビット及び第１満状態フラグビットを備え、第２空満状態フラグビット群は具体的に第２空状態フラグビット及び第２満状態フラグビットを備える。
【００７９】
命令キャッシュに上記の新規な構造を有する第１キャッシュデバイス及び第２キャッシュデバイスを設けることにより、さらに命令キャッシュの性能を最適化することができ、特にフェッチシナリオにおいて、従来技術において複数のＦＩＦＯと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化できる。また、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができる。
【００８０】
（第３実施例）
【００８１】
図３は本出願の第３実施例に係る命令処理システムの構造概略図である。本出願の任意の実施例に記載の命令キャッシュを使用するとともに、命令キャッシュをマルチコアプロセッサと外部命令メモリとの架け橋とすることにより、マルチコアプロセッサにおける１つ又は複数の処理カーネルにフェッチ欠落が発生した場合に、対応する欠落命令識別子とフェッチ欠落が発生した処理カーネルのカーネル識別子とをキャッシュして、欠落命令のフェッチ機能を実現することができる。
【００８２】
図３に示すように、命令処理システムは具体的に本出願の任意の実施例に記載の命令キャッシュ３１０、マルチコアプロセッサ３２０、及び外部命令メモリ３３０を備える。前記命令キャッシュ３１０は具体的に、本出願の任意の実施例に記載の第１キャッシュデバイス３１１及び第２キャッシュデバイス３１２を備える。
【００８３】
前記命令キャッシュ３１０はマルチコアプロセッサ３２０の複数の処理カーネル（図３に示される処理カーネル１、処理カーネル２、…処理カーネルＮ）及び外部命令メモリ３３０がそれぞれ接続され、命令キャッシュ３１０が外部命令メモリ３３０にバスを介して接続される。
【００８４】
前記マルチコアプロセッサ３２０は、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュ３２０に提供するように構成され、
前記外部命令メモリ３３０は、命令を記憶するように構成され、
前記命令キャッシュ３２０は、欠落命令識別子を前記外部命令メモリ３３０に送信するとともに、前記外部命令メモリ３３０がバスを介して応答して書き戻した命令を取得するように構成される。
【００８５】
選択可能に、前記第１キャッシュデバイス３１１は、フェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子を第１キューにキャッシュして、外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子を第２キューにキャッシュするように構成され、
前記第２キャッシュデバイス３１２は、前記第１キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第１キュー又は第２キューに対応して記憶するように構成される。
【００８６】
処理カーネルは命令をフェッチして処理する必要がある場合に、命令キャッシュ３１０によって外部命令メモリ３３０から命令を要求し、外部命令メモリ３３０はバスを介してフェッチ要求に応答する場合に、バスを介して該フェッチ要求にマッチングする命令をバスを介して該命令キャッシュ３１０に書き戻し、命令キャッシュ３１０によってフェッチ要求を発する処理カーネルに提供する。該命令キャッシュ３１０は一度に同一のフェッチ要求にしか応答できず、他のフェッチ要求がランダムに遅延される。処理カーネルがフェッチ欠落を検出した場合、該フェッチ欠落にマッチングするフェッチ欠落識別子を命令キャッシュ３１０に提供してキャッシュさせ、命令キャッシュ３１０により適当なタイミングで欠落命令を取得してマッチングする処理カーネルにフィードバックする。
【００８７】
具体的には、第１キャッシュデバイス３１１の使用に合わせて、第２キャッシュデバイス３１２は１つのキューのみを使用し、限定ではなく例示として、第２キャッシュデバイス３１２における第２キューのみを使用して、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を記憶することができる。したがって、第２キャッシュデバイス３１２の読み出しポートからキャッシュデータを読み出す必要がある場合には、該第２キューのみからキャッシュデータを読み出し、第２キャッシュデバイス３１２の書き込みポート群からキャッシュデータを書き込む必要がある場合には、該第２キューにおける所定の記憶アドレスにキャッシュされたデータの所定データビットのみにデータを書き込むことができ、第２キャッシュデバイス３１２のプッシュポートを介してキャッシュデータをプッシュする必要がある場合には、プッシュされるキャッシュデータが第２キューのみにプッシュされ、第２キャッシュデバイス３１２の第２キューからキャッシュデータをポップする必要がある場合には、第２ポップポートのみを介してポップすることができる。同時に、第２キャッシュデバイス３１２における第２空満状態フラグビット群のみを使用して第２キューの空満記憶状態を示す。
【００８８】
もちろん、同様に第２キャッシュデバイス３１２における第１キューを使用して前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を記憶することができ、本実施例はこれを限定しない。
【００８９】
具体的には、命令キャッシュ３１０は、外部命令メモリ３３０がアイドル状態にあると検出された場合、
第１キャッシュデバイス３１１の第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリ３３０に提供する。
命令キャッシュ３１０は、外部命令メモリ３３０から第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、
第１キャッシュデバイス３１１の第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイス３１１の第２ポップポートを介してポップすることと、
第２キャッシュデバイス３１２から前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイス３１２の第１ポップポート又は第２ポップポートを介してポップすることと、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信することと、を実行する。
【００９０】
命令キャッシュ３１０は、第２ターゲット処理カーネルに第２ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、
第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出すことと、
前記第１キャッシュデバイスの第１キュー及び第２キューのいずれにも前記第２ターゲット欠落命令識別子が記憶されていない場合、前記第２ターゲット欠落命令識別子を前記第１キュー及び前記第２キューに同時に記憶することと、
前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲットキャッシュデータを生成することと、
第２キャッシュデバイスのプッシュポートを介して、前記第２ターゲットキャッシュデータを前記第２キャッシュデバイスの第１キュー、又は第２キューにプッシュすることと、
前記第１キャッシュデバイスの第１キュー又は第２キューに前記第２ターゲット欠落命令識別子が記憶されている場合、前記第２ターゲット欠落命令識別子の前記第１キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第３ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第２キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第３ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第２ターゲットフェッチ欠落識別子にマッチングする第２ターゲット処理カーネルのカーネル識別子を前記第２キャッシュデバイスに記憶することと、を実行する。
【００９１】
本出願の実施例の技術的解決手段は、命令キャッシュに上記の新規な構造を有する第１キャッシュデバイス及び第２キャッシュデバイスを設けることにより、命令キャッシュシステムにおいて、従来技術における複数のＦＩＦＯと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化できる。また、マルチコアプロセッサから外部命令メモリへの重複したフェッチ要求の送信を防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減でき、マルチコアプロセッサの性能を向上させることができる。
【００９２】
（第４実施例）
【００９３】
図４は本出願の第４実施例に係るデータ処理方法のフローチャートであり、本実施例は欠落命令の処理を実施する場合に適用することができる。該方法はデータ処理装置によって実行されてもよく、該装置がソフトウェア及び／又はハードウェアの方式で実施され、好ましくは、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュに配置され、該命令キャッシュにおいてマルチコアプロセッサ及び外部命令メモリと組み合わせて使用する。図４に示すように、該方法は具体的にＳ４１０、Ｓ４２０、Ｓ４３０及びＳ４４０を含む。
【００９４】
Ｓ４１０：外部命令メモリがアイドル状態にあると検出された場合、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供する。
【００９５】
前述したように、第１キャッシュデバイスの第１キューには、フェッチ欠落が発生した時にバスによって応答されなかったフェッチ欠落識別子、すなわち、外部命令メモリに送信されていないフェッチ欠落識別子がキャッシュされている。したがって、外部命令メモリがアイドル状態にあると検出された場合、現在の外部命令メモリが命令読み出し動作を行っていないことを意味し、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出すことができ、第１ポップポートを介してポップした後、ポップされた欠落命令識別子を該外部命令メモリに提供することで、該外部命令メモリに該欠落命令識別子に対応する命令の書き戻しを行わせる。
【００９６】
Ｓ４２０：外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップする。
【００９７】
本実施例では、第１キャッシュデバイスの第２キューには、バスによって応答されたが書き戻されていないフェッチ欠落識別子がキャッシュされている。つまり、第２キューにキャッシュされているフェッチ欠落識別子は、バスを介して外部命令メモリに送信されたが外部命令メモリからフィードバックされる書き戻し命令が受信されていないフェッチ欠落識別子である。
【００９８】
外部命令メモリは同一時間に１つの命令読み出し動作しか処理することができないため、外部命令メモリからフィードバックされた書き戻し命令が検出された場合、現在の第２キューに記憶された、バスにより応答されたが書き戻されていない最初のフェッチ欠落識別子に対して、既に対応する書き戻し命令が受信されたと意味するため、該第２キューにおける最初のフェッチ欠落識別子を第２ポップポートを介してポップして、キャッシュ空間を解放することができる。
【００９９】
Ｓ４３０：第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第１ポップポート又は第２ポップポートを介してポップする。
【０１００】
本実施例では、第１キャッシュデバイスにより命令欠落が発生したフェッチ欠落識別子を記憶する場合に、第２キャッシュデバイスには該フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期して書き込み、外部命令キャッシュからフィードバックされた書き戻し命令を受信すると、第１キャッシュデバイスの第２キューにおける最初のフェッチ欠落識別子（即ち、第１ターゲット欠落命令識別子）を第２ポップポートを介してポップするとともに、第２キャッシュデバイスにおける第１キュー又は第２キューにキャッシュされた上記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子（即ち、第１ターゲットカーネル識別子）を第１ポップポート、又は第２ポップポートを介してポップすることにより、上記書き戻し命令を具体的にどの処理カーネルに提供するかを判定し、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【０１０１】
具体的には、該第１ターゲットカーネル識別子のカーネル識別子は第１ターゲットキャッシュデータに含まれ、第１ターゲットキャッシュデータのデータビット数がマルチコアプロセッサの処理カーネル数に対応して、異なる処理カーネルが第１ターゲットキャッシュデータの異なるデータビットに対応し、前記第１ターゲットキャッシュデータにおけるデータビットの具体的なデータ値（０、又は１）に基づいて、どの処理カーネルが該第１ターゲット欠落命令識別子に対してフェッチ欠落が発生したかを判定することができる。
【０１０２】
Ｓ４４０：前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信する。
【０１０３】
具体的には、データ値１によってフェッチ欠落が発生した処理カーネルをマーク付けすることができ、さらに該第１ターゲットキャッシュデータにおける１の位置を識別することができ、さらにデータビットと処理カーネルとの間のマッピング関係に基づいて、１つ又は複数の第１ターゲットカーネル識別子を識別するとともに、外部命令メモリからフィードバックされた書き戻し命令を上記第１ターゲット処理カーネルに提供する。
【０１０４】
本出願の実施例では、命令キャッシュに第１キャッシュデバイスを設けることにより、命令欠落が発生した場合に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第２キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【０１０５】
（第５実施例）
【０１０６】
図５は本出願の第５実施例に係るデータ処理方法のフローチャートであり、本実施例は上記の実施例を基に最適化し、フェッチ欠落が発生した場合に欠落命令識別子及びフェッチ欠落が発生した処理カーネルを記憶する動作を具現化したものであり、図５に示すように、前記方法は具体的にＳ５１０〜Ｓ５１２０を含む。
【０１０７】
Ｓ５１０：外部命令メモリがアイドル状態にあると検出された場合、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供する。
【０１０８】
Ｓ５２０：外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップする。
【０１０９】
Ｓ５３０：第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第１ポップポート又は第２ポップポートを介してポップする。
【０１１０】
Ｓ５４０：前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信する。
【０１１１】
Ｓ５５０：第２ターゲット処理カーネルに第２ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出す。
【０１１２】
本実施例では、第１キャッシュデバイスには、第１キュー及び第２キューにおける全てのキャッシュデータを一括して読み出すことが可能な読み出しポートが設けられたため、読み出しポートから読み出された全てのキャッシュデータに基づいて、第２ターゲット欠落命令識別子が第２ターゲット処理カーネルを除いた他の処理カーネルにより送信されたことがあるか否かを判断することができ、同一の欠落命令識別子の繰り返し記憶を防止することができる。
【０１１３】
Ｓ５６０：前記第１キャッシュデバイスの第１キュー又は第２キューに第２ターゲット欠落命令識別子が記憶されているか否かを判断し、そうであれば、Ｓ５７０を実行し、そうでなければ、Ｓ５８０を実行する。
【０１１４】
Ｓ５７０：前記第２ターゲット欠落命令識別子の前記第１キャッシュデバイスにおけるターゲット記憶アドレスを取得し、Ｓ５９０を実行する。
【０１１５】
前記第１キャッシュデバイスの第１キュー又は第２キューに第２ターゲット欠落命令識別子が記憶されていると、上記第２ターゲット欠落命令識別子が他の処理カーネルにより送信されたことがあると意味し、したがって、第２ターゲット処理カーネルのカーネル識別子を第２キャッシュデバイスにおける前記ターゲット記憶アドレスに追加して記憶すればよい。
【０１１６】
なお、第２キャッシュデバイスが第２キューを使用することを例として、第２キャッシュデバイスの第２キューが、第１キャッシュデバイスの第２キューに記憶された情報と１対１に対応しており、つまり、同一の記憶アドレスにおいて、第１キャッシュデバイスの第２キューには１つの欠落命令識別子Ａが記憶され、第２キャッシュデバイスの第２キューには、該欠落命令識別子Ａを送信した全ての処理カーネルのカーネル識別子が記憶されている。
【０１１７】
Ｓ５８０：前記第２ターゲット欠落命令識別子を前記第１キュー及び前記第２キューに同時に記憶し、Ｓ５１１０を実行する。
【０１１８】
前記第１キャッシュデバイスの第１キュー又は第２キューのいずれにも第２ターゲット欠落命令識別子が記憶されていない場合、上記第２ターゲット欠落命令識別子が他の処理カーネルにより送信されていないことを意味する。したがって、該第２ターゲット欠落命令識別子が、フェッチ欠落が発生した時にバスにより応答されていないことと、バスにより応答されたが書き戻されていないこととを同時に満たすため、第１キャッシュデバイスのプッシュポットを介して、前記第２ターゲット欠落命令識別子を第１キャッシュデバイスの第１キュー及び第２キューに同時にプッシュすることができる。
【０１１９】
本実施例では、フェッチ欠落が発生した時にバスにより応答されていないフェッチ欠落識別子を第１キューに記憶することができ、バスにより応答されたが書き戻されていないフェッチ欠落識別子を第２キューに記憶することができる。
【０１２０】
Ｓ５９０：前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第３ターゲットキャッシュデータ及びターゲットマスク情報を生成し、Ｓ５１００を実行する。
【０１２１】
具体的な例では、マルチコアプロセッサに１２個の処理カーネルが含まれると、上記１２個の処理カーネルは、第２キャッシュデバイスに記憶されたキャッシュデータの１２個のデータビットに対応する。予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲット処理カーネルは１２個のデータビットにおける第３ビットであり、したがって、００１０００００００００のような第３ターゲットキャッシュデータ及びターゲットマスク情報を構築して、ターゲット記憶アドレスにおける第３ビットを１に調整することを確定し、該ターゲット記憶アドレスにおいて、該第２ターゲット処理カーネルのカーネル識別子を追加して記憶する。
【０１２２】
Ｓ５１００：前記第２キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第３ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第２ターゲットフェッチ欠落識別子にマッチングする第２ターゲット処理カーネルのカーネル識別子を前記第２キャッシュデバイスに記憶する。
【０１２３】
Ｓ５１１０：前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲットキャッシュデータを生成する。
【０１２４】
前記第２ターゲット欠落命令識別子が第１キャッシュデバイスにより記憶されていないため、処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係とに基づいて、対応する第２ターゲットキャッシュデータを生成することができる。
【０１２５】
続いて、第２ターゲット処理カーネルは１２個のデータビットにおける第３ビットであるため、００１０００００００００のような第２ターゲットキャッシュデータを構築することができる。
【０１２６】
Ｓ５１２０：第２キャッシュデバイスのプッシュポートを介して、前記第２ターゲットキャッシュデータを前記第２キャッシュデバイスの第１キュー、又は第２キューにプッシュする。
【０１２７】
本出願の実施例の技術的解決手段は、命令キャッシュに第１キャッシュデバイスを設けることにより、命令欠落が発生した際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第２キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【０１２８】
また、第２キャッシュデバイスにおける書き込みポート群により、マルチコアプロセッサの異なる処理カーネルの同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込むことを実現でき、限られた記憶空間を最大限に再利用でき、処理性能を向上させることができる。また、マルチコアプロセッサから外部命令メモリへの重複したフェッチ要求の送信を防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減でき、マルチコアプロセッサの性能を向上させることができる。
【０１２９】
上記の各実施例に基づいてさらに、
第１キャッシュデバイスの第１キューにキャッシュデータがない場合、第１キャッシュデバイスの第１空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第１キューが満杯である場合、第１キャッシュデバイスの第１空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューにキャッシュデータがない場合、第１キャッシュデバイスの第２空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第１キャッシュデバイスの第２キューが満杯である場合、第１キャッシュデバイスの第２空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも１つを備える。
【０１３０】
これに対応して、前記方法はさらに、前記第１キャッシュデバイスの第１空満状態フラグビット群又は第２空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出された場合、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないことを備える。
【０１３１】
（第６実施例）
【０１３２】
図６は本出願の第６実施例に係るデータ処理装置の構造概略図を示し、図６に示すように、前記データ処理装置６００は、本出願の任意の実施例に係る命令処理システムにおける命令キャッシュにより実行され、前記装置は、
外部命令メモリがアイドル状態にあると検出されると、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供するための第１ポップ処理モジュール６１０と、
外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップするための第２ポップ処理モジュール６２０と、
第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第２ポップポートを介してポップするための第３ポップ処理モジュール６３０と、
前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュール６４０と、を備える。
【０１３３】
本実施例では、第１キャッシュデバイスに設けられた２つのキュー及び異なるキューに対応するポップポートを介して、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子に対してそれぞれポップ処理することができ、命令キャッシュに使用されるキャッシュデバイスの数が大幅に低減され、また、第２キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップすることができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【０１３４】
上記の各実施例に基づいてさらに、第１欠落命令識別子書き込みモジュールであって、
第２ターゲット処理カーネルに第２ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出すことと、
前記第１キャッシュデバイスの第１キュー及び第２キューのいずれにも前記第２ターゲット欠落命令識別子が記憶されていない場合、前記第２ターゲット欠落命令識別子を前記第１キュー及び前記第２キューに同時に記憶することと、
前記第２ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第２ターゲットキャッシュデータを生成することと、
第２キャッシュデバイスのプッシュポートを介して、前記第２ターゲットキャッシュデータを前記第２キャッシュデバイスの第１キュー、又は第２キューにプッシュすることと、に用いられる第１欠落命令識別子書き込みモジュールを備えるように構成されてもよい。
【０１３５】
上記の各実施例に基づいてさらに、第２欠落命令識別子書き込みモジュールであって、
第１キュー及び第２キューに記憶された全ての欠落命令識別子を第１キャッシュデバイスの読み出しポートから読み出した後に、前記第１キャッシュデバイスの第１キュー又は第２キューに前記第２ターゲット欠落命令識別子が記憶されていると、前記第２ターゲット欠落命令識別子の前記第１キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第２ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第３ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第２キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第３ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第２ターゲットフェッチ欠落識別子にマッチングする第２ターゲット処理カーネルのカーネル識別子を前記第２キャッシュデバイスに記憶することと、に用いられる第２欠落命令識別子書き込みモジュールを備えるように構成されてもよい。
【０１３６】
上記の各実施例に基づいてさらに、
第１キャッシュデバイスの第１キューにキャッシュデータがない場合、第１キャッシュデバイスの第１空満状態フラグビット群における空状態フラグビットを目標レベル値に設定するための第１空状態フラグビット設定モジュールと、
第１キャッシュデバイスの第１キューが満杯である場合、第１キャッシュデバイスの第１空満状態フラグビット群における満状態フラグビットを目標レベル値に設定するための第１満状態フラグビット設定モジュールと、
第１キャッシュデバイスの第２キューにキャッシュデータがない場合、第１キャッシュデバイスの第２空満状態フラグビット群における空状態フラグビットを目標レベル値に設定するための第２空状態フラグビット設定モジュールと、
第１キャッシュデバイスの第２キューが満杯である場合、第１キャッシュデバイスの第２空満状態フラグビット群における満状態フラグビットを目標レベル値に設定するための第２満状態フラグビット設定モジュールと、のうちの少なくとも１つを備える。
【０１３７】
上記の各実施例に基づいて、フェッチ要求放棄処理モジュールであって、前記第１キャッシュデバイスの第１空満状態フラグビット群又は第２空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないためのフェッチ要求放棄処理モジュールをさらに備えるように構成されてもよい。
【０１３８】
本出願の実施例によれば、本出願はさらに、コンピュータプログラムが記憶されている可読記憶媒体であって、該プログラムがプロセッサによって実行される場合に、本出願のすべての実施例に係るデータ処理方法を実現する可読記憶媒体を提供し、即ち、該プログラムがプロセッサにより実行される場合に、外部命令メモリがアイドル状態にあると検出されると、第１キャッシュデバイスの第１キューから欠落命令識別子を取り出し、第１ポップポートを介してポップして、外部命令メモリに提供することと、外部命令メモリから第１ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第１キャッシュデバイスの第２キューから前記第１ターゲット欠落命令識別子を取り出し、前記第１キャッシュデバイスの第２ポップポートを介してポップすることと、第２キャッシュデバイスから前記第１ターゲット欠落命令識別子にマッチングする第１ターゲットキャッシュデータを取り出し、前記第２キャッシュデバイスの第１ポップポートまたは第２ポップポートを介してポップすることと、前記第１ターゲットキャッシュデータに基づいて、前記第１ターゲットフェッチ欠落識別子にマッチングする第１ターゲット処理カーネルの第１ターゲットカーネル識別子を識別するとともに、前記第１ターゲット処理カーネルに前記書き戻し命令を送信することと、を実現する。
【０１３９】
本出願の実施例のコンピュータ記憶媒体は、一つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ可読信号媒体、或いはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電気的、磁気的、光学的、電磁気的、赤外線の、又は半導体のシステム、装置又はデバイス、或いはこれらの任意の組み合わせであってもよいがこれらに限定されない。コンピュータ可読記憶媒体のより具体的な例（非網羅的なリスト）は、１本又は複数本の導線により電気的に接続された、ポータブルコンピュータディスク、ハードディスク、ＲＡＭ、読み出し専用メモリ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ，ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ，ＥＰＲＯＭ）、フラッシュメモリ、ポータブルコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光メモリ、磁気メモリ、又はこれらの任意の適切な組み合わせを含む。本明細書では、コンピュータ可読記憶媒体は、命令実行システム、装置若しくはデバイスにより使用され、或いはこれらに組み合わせて使用するプログラムを含むか或いは記憶するあらゆる有形の媒体であってもよい。
【０１４０】
コンピュータ可読信号媒体は、ベースバンドにおける、又は搬送波の一部として伝播するデータ信号を含むことができ、その中にはコンピュータ読み取り可能なプログラムコードが搭載されている。このように伝播するデータ信号は様々な形式を採用することができ、電磁信号、光信号又はこれらの任意の適切な組み合わせを含むがこれらに限定されない。コンピュータ可読信号媒体は、さらに、コンピュータ可読記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【０１４１】
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、無線周波数（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ，ＲＦ）など、又は上記の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体によって伝送することができる。
【０１４２】
１つ又は複数のプログラミング言語又はそれらの組み合わせで本出願の動作を実行するためのコンピュータプログラムコードを作成することができ、前記プログラミング言語は、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのプロジェクト指向のプログラミング言語を含み、さらに、「Ｃ」言語又は同様のプログラミング言語といった従来の手続き型プログラミング言語をも含む。プログラムコードは、完全にユーザーコンピュータで実行されてもよいし、部分的にユーザーコンピュータに実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、部分的にユーザーコンピュータで、部分的にリモートコンピュータで実行されてもよい、又は完全にリモートコンピュータ又はサーバーで実行されてもよい。リモートコンピュータに係る場合、リモートコンピュータは、ローカルネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含むあらゆる種類のインターネットを介して、ユーザーコンピュータに接続することができ、或いは、外部コンピュータに接続する（例えば、インターネットサービスプロバイダによりインターネットを介して接続する）こともできる。
【０１４３】
なお、上記に示された様々な形態のフローが、ステップの順序変更、追加又は削除により使用されてもよい。例えば、本出願に記載された各ステップは、並列に実行されても、順次的に実行されても、異なる順序で実行されてもよく、本明細書に開示された技術的解決手段の所望の結果を実現できるものであれば、本明細書に限定しない。
【０１４４】
上記の具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者には明らかなように、設計要求及び他の要素に応じて、様々な変更、組み合わせ、再組合及び置換を行うことができる。本出願の精神及び原則の範囲内で行われたいかなる変更、均等置換及び改良などは、いずれも本出願の保護範囲内に含まれるべきである。
【図１】
0006944576.tif 000002
【図２】
0006944576.tif 000003
【図３】
0006944576.tif 000004
【図４】
0006944576.tif 000005
【図５】
0006944576.tif 000006
【図６】
0006944576.tif 000007