特許第6944576号(P6944576)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特許6944576キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム
<>
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000002
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000003
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000004
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000005
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000006
  • 特許6944576-キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6944576
(24)【登録日】2021年9月14日
(45)【発行日】2021年10月6日
(54)【発明の名称】キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラム
(51)【国際特許分類】
   G06F 12/0846 20160101AFI20210927BHJP
   G06F 12/084 20160101ALI20210927BHJP
   G06F 12/0842 20160101ALI20210927BHJP
   G06F 12/0893 20160101ALI20210927BHJP
【FI】
   G06F12/0846 100
   G06F12/084
   G06F12/0842
   G06F12/0893
【請求項の数】16
【外国語出願】
【全頁数】27
(21)【出願番号】特願2020-153943(P2020-153943)
(22)【出願日】2020年9月14日
(65)【公開番号】特開2021-140732(P2021-140732A)
(43)【公開日】2021年9月16日
【審査請求日】2020年10月19日
(31)【優先権主張番号】202010130183.4
(32)【優先日】2020年2月28日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】タン,チャオ
(72)【発明者】
【氏名】トゥー,シュエリャン
(72)【発明者】
【氏名】シュイ,インナン
(72)【発明者】
【氏名】アン,カン
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特表2007−510989(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/084 − 12/0893
(57)【特許請求の範囲】
【請求項1】
第1キューと、
第2キューと、
第1キュー及び/又は第2キューにおける所定の記憶アドレスにキャッシュデータを書き込むための書き込みポート群と、
前記第1キュー及び/又は前記第2キューから、全てのキャッシュデータを一括して読み出すための読み出しポートと、
前記第1キュー及び/又は前記第2キューにキャッシュデータをプッシュするためのプッシュポートと、
前記第1キューからキャッシュデータをポップするための第1ポップポートと、
前記第2キューからキャッシュデータをポップするための第2ポップポートと、を備えることを特徴とするキャッシュデバイス。
【請求項2】
前記書き込みポート群は、
書き込まれるキャッシュデータを受信するための書き込みデータポートと、
書き込まれるキャッシュデータの、前記第1キュー及び/又は前記第2キューに書き込まれた記憶アドレスを受信するための書き込みアドレスポートと、を備えることを特徴とする請求項1に記載のキャッシュデバイス。
【請求項3】
前記書き込みポート群は、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するための書き込みマスクポートをさらに備え、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、
前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じであることを特徴とする請求項2に記載のキャッシュデバイス。
【請求項4】
前記第1キューにおけるキャッシュデータの記憶状態を示すための第1空満状態フラグビット群と、
前記第2キューにおけるキャッシュデータの記憶状態を示すための第2空満状態フラグビット群と、をさらに備えることを特徴とする請求項1〜3のいずれか一項に記載のキャッシュデバイス。
【請求項5】
請求項1〜4のいずれか一項に記載のキャッシュデバイスを備え、前記キャッシュデバイスは第1キャッシュデバイスおよび第2キャッシュデバイスを含むことを特徴とする命令キャッシュ。
【請求項6】
請求項5に記載の命令キャッシュ、マルチコアプロセッサ、及び外部命令メモリを備える命令処理システムであって、
前記命令キャッシュは前記外部命令メモリ及び前記マルチコアプロセッサの複数の処理カーネルにそれぞれ接続され、
前記命令キャッシュは前記外部命令メモリにバスを介して接続されることを特徴とする命令処理システム。
【請求項7】
前記マルチコアプロセッサは、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュに提供するように構成され、
前記外部命令メモリは、命令を記憶するように構成され、
前記命令キャッシュは、欠落命令識別子を前記外部命令メモリに送信するとともに、前記外部命令メモリがバスを介して応答して書き戻した命令を取得するように構成されることを特徴とする請求項6に記載のシステム。
【請求項8】
前記第1キャッシュデバイスは、フェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子を第1キューにキャッシュして、外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子を第2キューにキャッシュするように構成され、
前記第2キャッシュデバイスは、前記第1キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第1キュー又は第2キューに記憶するように構成されることを特徴とする請求項7に記載のシステム。
【請求項9】
請求項6に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理方法であって、
外部命令メモリがアイドル状態にあると検出されると、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供することと、
外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップすることと、
第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第1ポップポート又は第2ポップポートを介してポップすることと、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信することと、を備えることを特徴とするデータ処理方法。
【請求項10】
第2ターゲット処理カーネルに第2ターゲット欠落命令識別子に対するフェッチ欠落が発生したと検出されると、第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出すことと、
前記第1キャッシュデバイスの第1キュー及び第2キューのいずれにも前記第2ターゲット欠落命令識別子が記憶されていない場合、前記第2ターゲット欠落命令識別子を前記第1キュー及び前記第2キューに同時に記憶することと、
前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲットキャッシュデータを生成することと、
第2キャッシュデバイスのプッシュポートを介して、前記第2ターゲットキャッシュデータを前記第2キャッシュデバイスの第1キュー、又は第2キューにプッシュすることと、をさらに備えることを特徴とする請求項9に記載の方法。
【請求項11】
第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出した後に、さらに、
前記第1キャッシュデバイスの第1キュー又は第2キューに前記第2ターゲット欠落命令識別子が記憶されている場合、前記第2ターゲット欠落命令識別子の前記第1キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第3ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第2キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第3ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第2ターゲットフェッチ欠落識別子にマッチングする第2ターゲット処理カーネルのカーネル識別子を前記第2キャッシュデバイスに記憶することと、を備えることを特徴とする請求項10に記載の方法。
【請求項12】
第1キャッシュデバイスの第1キューにキャッシュデータがない場合、第1キャッシュデバイスの第1空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第1キューが満杯である場合、第1キャッシュデバイスの第1空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューにキャッシュデータがない場合、第1キャッシュデバイスの第2空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューが満杯である場合、第1キャッシュデバイスの第2空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも1つをさらに備える請求項9〜11のいずれか一項に記載の方法。
【請求項13】
前記第1キャッシュデバイスの第1空満状態フラグビット群又は第2空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないことをさらに備えることを特徴とする請求項12に記載の方法。
【請求項14】
請求項6に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理装置であって、
外部命令メモリがアイドル状態にあると検出される場合、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供するための第1ポップ処理モジュールと、
外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出される場合、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップするための第2ポップ処理モジュールと、
第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第2ポップポートを介してポップするための第3ポップ処理モジュールと、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュールと、を備えることを特徴とするデータ処理装置。
【請求項15】
コンピュータ命令が記憶されている非一時的コンピュータ可読記憶媒体であって、前記コンピュータ命令が前記コンピュータに請求項9〜13のいずれか一項に記載の方法を実行させることを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項16】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項9〜13のいずれか一項に記載の方法を実現する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、コンピュータハードウェア分野に関し、特にクラウドコンピューティング技術に関し、具体的にキャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラムに関する。
【背景技術】
【0002】
マルチコアプロセッサにおけるカーネルは、命令キャッシュ(icache)を介して外部命令メモリから命令処理を取得する。icacheはバスを介して外部命令メモリに接続される。バスはicacheから送信された読み出し動作の応答に対しランダムな遅延を有し、バスが現在の読み出し動作に応答した後、icacheが新たな読み出し動作を開始することができる。遅延時間内に、カーネルがicacheからフェッチ欠落が発生する可能性があり、これは処理開始されていない読み出し動作をキャッシュする必要がある。
【0003】
従来技術では、一般的に一つのFIFO(First Input First Output,先入れ先出し)メモリを使用してicacheに処理開始されていない欠落命令識別子をキャッシュし、他のFIFOを使用してバスにより応答されたが書き戻されていない欠落命令識別子をキャッシュする。現在は主にレジスタ群を使用して、開始された、バスにより応答されたが書き戻されていない欠落命令識別子を同期してキャッシュし、次のフェッチ欠落が発生した場合に、レジスタ群にキャッシュされた欠落命令識別子を検索することによって対応するフェッチ要求を開始する必要があるか否かを判定するとともに、別のレジスタ群を使用してどのカーネルにフェッチ欠落が発生したかを記録する。対応する命令がバスを介して書き戻されると、これらのカーネルに対応して書き戻すことができる。
【0004】
発明者らは、本出願を実現するにあたり、従来技術では、欠落命令のフェッチ機能を実現するために、多くのFIFO及びレジスタ群を使用する必要があり、制御が煩雑であることと、FIFO及びレジスタ群に重複した情報がキャッシュされてしまい、不要なリソースの浪費が発生してしまうことと、という欠点があることを見出す。
【発明の概要】
【0005】
本出願の実施例は、新規な構造を有するキャッシュデバイスを設計することにより、欠落命令のフェッチ機能を実現するために必要なハードウェアコストを削減できる、キャッシュデバイス、命令キャッシュ、命令処理システム、データ処理方法、データ処理装置、コンピュータ可読記憶媒体及びコンピュータプログラムを提供する。
【0006】
第1態様によれば、本出願の実施例は、第1キュー、第2キュー、書き込みポート群、読み出しポート、第1ポップポート、第2ポップポート及びプッシュポートを備えるキャッシュデバイスを提供する。
前記書き込みポート群は、第1キュー及び/又は第2キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成され、
前記読み出しポートは、前記第1キュー及び/又は前記第2キューから、全てのキャッシュデータを一括して読み出すように構成され、
前記プッシュポートは、前記第1キュー及び/又は前記第2キューにキャッシュデータをプッシュするように構成され、
前記第1ポップポートは、前記第1キューからキャッシュデータをポップするように構成され、
前記第2ポップポートは、前記第2キューからキャッシュデータをポップするように構成される。
【0007】
上記本出願における一実施例は、2つのキューに対するポップポートを設けることにより、該キャッシュデバイスは、命令欠落が発生する際に、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とを同時に記憶することができ、キャッシュデバイスの数が大幅に節約され、また、書き込みポート群及び読み出しポートを設けることにより、同様の構造を使用してフェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子をキャッシュして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【0008】
選択可能に、前記書き込みポート群は具体的に、書き込みデータポート及び書き込みアドレスポートを備え、
前記書き込みデータポートは、書き込まれたキャッシュデータを受信するように構成され、
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第1キュー及び/又は前記第2キューに書き込まれた記憶アドレスを受信するように構成される。
【0009】
上記本出願における一実施例は、書き込みデータポート及び書き込みアドレスポートを設けることにより、第1キュー又は第2キューの所定の記憶アドレスに、所望のキャッシュデータを書き込むことができ、さらにマルチコアプロセッサの異なる処理カーネルの、同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができるという利点又は有益な効果を有する。
【0010】
選択可能に、前記書き込みポート群はさらに、書き込みマスクポートを備え、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成され、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【0011】
上記本出願における一実施例は、書き込みマスクポートを設けることにより、キャッシュデバイスにおける記憶アドレスにおける特定のデータビットには、対応するキャッシュデータを正確に書き込むことができ、さらに欠落命令に対して送信されるフェッチ要求の処理カーネルの識別情報を更新して記憶することを実現することができ、限られた記憶空間を最大限に再利用して、処理性能を向上させることができるという利点又は有益な効果を有する。
【0012】
選択可能に、第1空満状態フラグビット群及び第2空満状態フラグビット群をさらに備え、
前記第1空満状態フラグビット群は、前記第1キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第2空満状態フラグビット群は、前記第2キューにおけるキャッシュデータの記憶状態を示すように構成される。
【0013】
上記本出願における一実施例は、第1空満状態フラグビット群及び第2空満状態フラグビット群を設けることにより、さらにキャッシュデバイスの機能を多様化にして、キャッシュデバイスにおける各キューの記憶状態をリアルタイムに取得することができ、さらに異なる記憶状態にマッチングする処理動作を実行することができるという利点又は有益な効果を有する。
【0014】
第2態様によれば、本出願の実施例は、本出願の任意の実施例に記載の第1キャッシュデバイス及び第2キャッシュデバイスを備える命令キャッシュをさらに提供する。
上記本出願における一実施例は、命令キャッシュに上記新規な構造を有する第1キャッシュデバイス及び第2キャッシュデバイスを設けることにより、さらに命令キャッシュの性能を最適化することができ、特にフェッチシナリオにおいて、従来技術で複数のFIFOと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化するという利点又は有益な効果を有する。また、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができる。
【0015】
第3態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令キャッシュ、マルチコアプロセッサ、及び外部命令メモリを備える命令処理システムをさらに提供する。
前記命令キャッシュは前記外部命令メモリ及び前記マルチコアプロセッサの複数の処理カーネルにそれぞれ接続され、前記命令キャッシュは前記外部命令メモリにバスを介して接続される。
【0016】
選択可能に、前記マルチコアプロセッサは、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュに提供するように構成され、
前記外部命令メモリは、命令を記憶するように構成され、
前記命令キャッシュは、欠落命令識別子を前記外部命令メモリに送信するとともに、前記外部命令メモリがバスを介して応答して書き戻した命令を取得するように構成される。
【0017】
選択可能に、前記第1キャッシュデバイスは、第1キューを使用してフェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子をキャッシュして、第2キューを使用して外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子をキャッシュするように構成され、
前記第2キャッシュデバイスは、第1キュー又は第2キューを使用して、前記第1キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を対応して記憶するように構成される。
【0018】
上記本出願における一実施例は、命令処理システムに本出願の任意の実施例に記載の命令キャッシュを使用することにより、従来技術で複数のFIFOと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化することと、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができることと、の利点又は有益な効果を有する。
【0019】
第4態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理方法をさらに提供し、
外部命令メモリがアイドル状態にあると検出されると、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供することと、
外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップすることと、
第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第2ポップポートを介してポップすることと、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信することと、を備える。
【0020】
上記本出願における一実施例は、第1キャッシュデバイスに設けられた2つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とに対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第2キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【0021】
選択可能に、さらに、
第2ターゲット処理カーネルに第2ターゲット欠落命令識別子に対するフェッチ欠落が発生したと検出されると、第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出すことと、
前記第1キャッシュデバイスの第1キュー及び第2キューのいずれにも前記第2ターゲット欠落命令識別子が記憶されていない場合、前記第2ターゲット欠落命令識別子を前記第1キュー及び前記第2キューに同時に記憶することと、
前記第2ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲットキャッシュデータを生成することと、
第2キャッシュデバイスのプッシュポートを介して、前記第2ターゲットキャッシュデータを前記第2キャッシュデバイスの第1キュー、又は第2キューにプッシュすることと、を備える。
【0022】
上記本出願における一実施例は、命令キャッシュに第1キャッシュデバイスを設けることにより、命令欠落が発生する際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第2キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【0023】
選択可能に、第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出した後に、
前記第1キャッシュデバイスの第1キュー又は第2キューに前記第2ターゲット欠落命令識別子が記憶されていると、前記第2ターゲット欠落命令識別子の前記第1キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第2ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第3ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第2キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第3ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第2ターゲットフェッチ欠落識別子にマッチングする第2ターゲット処理カーネルのカーネル識別子を前記第2キャッシュデバイスに記憶することと、をさらに備える。
【0024】
上記本出願における一実施例は、第2キャッシュデバイスにおける書き込みポート群により、マルチコアプロセッサの異なる処理カーネルからの同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができることと、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができることとの利点又は有益な効果を有する。
【0025】
選択可能に、さらに、
第1キャッシュデバイスの第1キューにキャッシュデータがない場合、第1キャッシュデバイスの第1空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第1キューが満杯である場合、第1キャッシュデバイスの第1空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューにキャッシュデータがない場合、第1キャッシュデバイスの第2空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューが満杯である場合、第1キャッシュデバイスの第2空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも1つを備える。
【0026】
選択可能に、さらに、
前記第1キャッシュデバイスの第1空満状態フラグビット群又は第2空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルのフェッチ要求を受信しないことを備える。
【0027】
第5態様によれば、本出願の実施例は、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュにより実行されるデータ処理装置をさらに提供し、
外部命令メモリがアイドル状態にあると検出されると、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供するための第1ポップ処理モジュールと、
外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップするための第2ポップ処理モジュールと、
第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第2ポップポートを介してポップするための第3ポップ処理モジュールと、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュールと、を備える。
【0028】
上記本出願における一実施例は、第1キャッシュデバイスに設けられた2つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子とバスにより応答されたが書き戻されていない欠落命令識別子とに対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第2キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【0029】
第6態様によれば、本出願の実施例は、コンピュータに本出願の実施例のいずれかに記載の方法を実行させるためのコンピュータ命令が記憶されている非一時的コンピュータ可読記憶媒体をさらに提供する。
【0030】
第7態様によれば、本出願の実施例は、コンピュータプログラムであって、前記コンピュータプログラムがプロセッサにより実行されると、本出願の実施例のいずれかに記載の方法を実現する、コンピュータプログラムを提供する。
【0031】
上記本出願における一実施例は、第1キャッシュデバイスに設けられた2つのキュー及び異なるキューに対するポップポートを介して、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子に対してそれぞれポップ処理することができ、命令キャッシュが使用されるキャッシュデバイスの数が大幅に低減され、また、第2キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減されるという利点又は有益な効果を有する。
【0032】
以下、上記のような選択可能な例に係る他の効果について、具体的な実施例を参照しながら説明する。
図面は、本出願の技術的解決手段をより良く理解するために使用され、本出願を限定するものではない。
【図面の簡単な説明】
【0033】
図1図1は本出願の第1実施例に係るキャッシュデバイスの構造概略図である。
図2図2は本出願の第2実施例に係る命令キャッシュの構造概略図である。
図3図3は本出願の第3実施例に係る命令処理システムの構造概略図である。
図4図4は本出願の第4実施例に係るデータ処理方法を実施するフローチャートである。
図5図5は本出願の第5実施例に係るデータ処理方法を実施するフローチャートである。
図6図6は本出願の第6実施例に係るデータ処理装置の構造概略図である。
【発明を実施するための形態】
【0034】
以下は、理解を容易にするために本出願の実施例の様々な詳細を含む添付図面を参照して、本出願の例示的な実施例を説明し、それらは単なる例示として見なされるべきである。したがって、当業者は、本出願の範囲及び精神から逸脱することなく、本明細書に記載された実施例に対して様々な変更及び修正を行うことができることを認識するであろう。同様に、以下の説明では、明確かつ簡潔にするために、周知の機能及び構造の説明を省略する。
【0035】
(第1実施例)
【0036】
図1は本出願の第1実施例に係るキャッシュデバイスの構造概略図であり、本実施例に係るキャッシュデバイスが命令キャッシュに適用することができ、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子、バスにより応答されたが書き戻されていないフェッチ欠落識別子及び前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子などの情報を記憶することができる。
【0037】
図1に示すように、前記キャッシュデバイスは具体的に、第1キュー、第2キュー、書き込みポート群、読み出しポート、第1ポップポート、第2ポップポート及びプッシュポートを備えてもよい。
【0038】
前記書き込みポート群は、第1キュー及び/又は第2キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成され、
前記読み出しポートは、前記第1キュー及び/又は前記第2キューから、全てのキャッシュデータを一括して読み出すように構成され、
前記プッシュポートは、前記第1キュー及び/又は前記第2キューにキャッシュデータをプッシュするように構成され、
前記第1ポップポートは、前記第1キューからキャッシュデータをポップするように構成され、
前記第2ポップポートは、前記第2キューからキャッシュデータをポップするように構成される。
【0039】
具体的には、前記第1キュー及び第2キューは従来のFIFOメモリと類似し、先入れ先出しキューであり、従来のFIFOメモリの基本機能を実現することができる。2つのキューを設ける目的は、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子と、バスにより応答されたが書き戻されていないフェッチ欠落識別子とを1つのキャッシュデバイスで同時に記憶して、記憶デバイスの使用をさらに減らすことにある。
【0040】
具体的には、前記フェッチ欠落識別子はフェッチ欠落が発生した命令の識別情報(身元識別情報ともいう)であってもよい。一般的に、icacheはpc(program counter、プログラムカウンタ)によって命令をマーク付けし、pcは外部命令メモリにおける命令の相対アドレスを記録し、それに応じて、前記フェッチ欠落識別子は具体的にフェッチ欠落が発生した命令に対応するpcであってもよい。
【0041】
1つのプッシュポートを設ける理由は、フェッチ欠落が発生すると、該フェッチ欠落に対応する欠落命令識別子は、フェッチ欠落が発生した時にバスにより応答されなかったことと、バスにより応答されたが書き戻されていないこととを同時に満たすことにある。したがって、1つのプッシュポートを介して、上記欠落命令識別子を第1キュー及び第2キューに同時にプッシュすることができる。典型的には、フェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子を第1キューで記憶することができ、バスにより応答されたが書き戻されていないフェッチ欠落識別子を第2キューで記憶することができる。
【0042】
2つのポップポートを設ける理由は、外部命令メモリがアイドルにあると検出されると、第1キューから1つのフェッチ欠落が発生した時にバスにより応答されなかったフェッチ欠落識別子を取得するとともに、上記フェッチ欠落識別子を第1ポップポートからポップして、外部命令メモリに提供して対応する命令書き戻し動作を行うことと、外部命令メモリは同一時間に1つの命令読み出し動作しか処理することができないため、外部命令メモリから書き戻し命令がフィードバックされたと検出されると、現在の第2キューに記憶された、バスにより応答されたが書き戻されていない最初のフェッチ欠落識別子が既に対応する書き戻し命令を受信したと意味するため、該第2キューにおける最初のフェッチ欠落識別子を第2ポップポートを介してポップして、キャッシュ空間を解放することができることとにある。
【0043】
上記1つのキャッシュデバイスの2つのポップポートを介して、従来の欠落命令のフェッチ機能における2つのFIFOの機能を満たすことができ、キャッシュデバイスの数を低減し、さらに命令キャッシュ全体のサイズを削減させることができる。
【0044】
さらに、書き込みポート群を使用することにより、1つの新しいキャッシュデバイスにおける第1キュー又は第2キューにおいて、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期して書き込むことができ、さらに外部命令キャッシュからフィードバックされた書き戻し命令を受信すると、1つのキャッシュデバイスの第2キューにおける最初のフェッチ欠落識別子を第2ポップポートを介してポップするとともに、第2キャッシュデバイスにおける第1キュー又は第2キューにキャッシュされた上記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第1ポップポート又は第2ポップポートを介してポップすることにより、上記書き戻し命令を具体的にどの処理カーネルに提供するかを判定し、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減される。
【0045】
さらに、読み出しポートを使用して前記第1キュー及び/又は前記第2キューから、全てのキャッシュデータを読み出すことにより、処理カーネルから送信された新たなフェッチ欠落識別子を受信すると、上記フェッチ欠落識別子が他の処理カーネルにより送信されたことがあるか否かを迅速に識別し、新たなレジスタ群を導入して上記情報を重複して記憶する必要がなく、さらに複雑な論理制御が低減される。
【0046】
上記の分析から明らかなように、上記の新規な構造を有するキャッシュデバイスを使用することによって、ハードウェアコストを最大限に削減した上で、従来の欠落命令のフェッチ機能を効果的に実現することができる。
【0047】
本出願の実施例の技術的解決手段は、2つのキューに対するポップポートを設けることにより、該キャッシュデバイスは、命令欠落が発生する際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの数が大幅に低減され、また、書き込みポート群及び読み出しポートを設けることにより、同様な構造を使用してフェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子をキャッシュして、上記の情報をレジスタ群で記憶する必要がなく、複雑な論理制御が低減される。
【0048】
上記の各実施例に基づいて、前記書き込みポート群は具体的に、書き込みデータポート及び書き込みアドレスポートを備えてもよく、
前記書き込みデータポートは、書き込まれたキャッシュデータを受信するように構成され、
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第1キュー及び/又は前記第2キューに書き込まれた記憶アドレスを受信するように構成される。
【0049】
具体的には、第1キュー又は第2キューにおいて、異なる記憶空間が異なる記憶アドレスに対応し、上記の書き込みポート群を設けることにより、第1キュー又は第2キューにおける特定の記憶アドレス(該アドレスには既にキャッシュデータが書き込まれている)に書き込まれたキャッシュデータを修正することができ、マルチコアプロセッサにおける複数の処理カーネルはいずれも同一の命令に対してフェッチ欠落が発生した場合に、異なる処理カーネルに対して、同一の欠落命令識別子を複数の記憶アドレスに複数回記憶する必要がなく、既に記憶された、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を更新して記憶すればよい。
【0050】
具体的な例では、マルチコアプロセッサの処理カーネルの数にマッチングする1組のバイナリデータで上記処理カーネルを表し、例えば、処理カーネルの数が12である場合に、上記12個の処理カーネルを1組の12bitデータで同時に表すことができ、異なる処理カーネルが12bitデータの異なるデータビットに対応する。
【0051】
例えば、第1データビットが処理カーネルAに対応し、第2データビットが処理カーネルBに対応し、第3データビットが処理カーネルCに対応するなど、順に類推する。命令キャッシュが処理カーネルAから送信された1つの欠落命令識別子を受信すると、対応して1組のデータ100000000000を構築してプッシュポートを介して1つの上記構造のキャッシュデバイスにおける1つの記憶アドレス(例えば、記憶アドレスX)にプッシュし、命令キャッシュが再び処理カーネルCから送信された同様の欠落命令識別子を受信すると、新たな記憶アドレスに、処理カーネルCに対して該欠落命令識別子を再度重複して記憶する必要がなく、記憶アドレスXに記憶されたデータを100000000000から101000000000に更新するだけで、処理カーネルA及び処理カーネルCには同時に上記の欠落命令識別子に対する命令欠落が発生したことを表すことができる。
【0052】
典型的には、書き込みポートに書き込まれたキャッシュデータと、対応する記憶アドレスに現在記憶されているキャッシュデータとのフェッチ動作により、上記の所望の処理結果を得ることができる。
【0053】
このように設定する利点は、書き込みデータポート及び書き込みアドレスポートを設けることにより、第1キュー又は第2キューの所定の記憶アドレスに、所望のキャッシュデータを書き込むことができ、さらにマルチコアプロセッサの異なる処理カーネルの、同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込んで、限られた記憶空間を最大限に再利用して、処理性能を向上させることができる。
【0054】
上記の各実施例に基づいて、前記書き込みポート群はさらに、書き込みマスクポートを備えてもよく、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成され、
前記マスク情報は、前記記憶アドレスに書き込まれたキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【0055】
前例で述べたような適用シナリオに対して、記憶アドレスXに記憶されたデータを100000000000から101000000000に更新する必要がある場合に、キャッシュデータの第3ビットを0から1に修正すればよく、したがってキャッシュデバイスにおける内部書き込み論理をさらに簡略化し、書き込みポート群に書き込みマスクポートを導入し、該書き込みマスクポートに書き込まれたマスク情報により、書き込みポートに書き込まれたキャッシュデータのうちどのデータビットが、対応する記憶アドレスに書き込まれる必要があるかを判定することができる。
【0056】
前述したように、記憶アドレスXにおけるキャッシュデータの第3データビットに1を書き込むなら、001000000000のようなマスク情報及び001000000000のようなキャッシュデータを設定し、マスク情報に入力された第3ビットの高レベル1により、キャッシュデータの第3ビット1を対応する記憶アドレスに書き込むことを指示することができる。
【0057】
このように設定する利点は、書き込みマスクポートを設けることにより、キャッシュデバイスにおける記憶アドレスにおける特定のデータビットに、対応するキャッシュデータを書き込むことを正確に設けることができ、さらに欠落命令に対してフェッチ要求が送信された処理カーネルの識別情報を更新して記憶することを実現することができ、限られた記憶空間を最大限に再利用して、処理性能を向上させることができる。
【0058】
上記の各実施例に基づいて、第1空満状態フラグビット群及び第2空満状態フラグビット群をさらに備えてもよく、
前記第1空満状態フラグビット群は、前記第1キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第2空満状態フラグビット群は、前記第2キューにおけるキャッシュデータの記憶状態を示すように構成される。
【0059】
具体的には、前記第1空満状態フラグビット群は、第1空状態フラグビット及び第1満状態フラグビットを備えてもよく、前記第1空状態フラグビットは第1キューにいずれのキャッシュデータも記憶されていない場合に、目標レベル値(典型的には、ハイレベル1)に設定されて、第1キューの空記憶状態を示すように構成され、前記第1空状態フラグビットは第1キューの記憶空間にキャッシュデータが満杯で記憶されている場合に、目標レベル値に設定されて、第1キューの満記憶状態を示すように構成される。
【0060】
同様に、前記第2空満状態フラグビット群は、第2空状態フラグビット及び第2満状態フラグビットを備え、前記第2空状態フラグビットは第2キューにいずれのキャッシュデータも記憶されていない場合に、目標レベル値(典型的には、ハイレベル1)に設定されて、第2キューの空記憶状態を示すように構成され、前記第2空状態フラグビットは第2キューの記憶空間にキャッシュデータが満杯で記憶されている場合に、目標レベル値に設定されて、第2キューの満記憶状態を示すように構成されてもよい。
【0061】
このように設定する利点は、第1空満状態フラグビット群及び第2空満状態フラグビット群を設けることにより、さらにキャッシュデバイスの機能を多様化にすることができ、キャッシュデバイスにおける各キューの記憶状態をリアルタイムに取得することができ、さらに異なる記憶状態に応じた処理動作を実行することができることにある。
【0062】
(第2実施例)
【0063】
図2は本出願の第2実施例に係る命令キャッシュの構造概略図であり、本実施例に係る命令キャッシュは本出願の実施例に係るキャッシュデバイスを2つ使用する。
【0064】
図2に示すように、前記命令キャッシュ210は、第1キャッシュデバイス211及び第2キャッシュデバイス212を備える。
【0065】
上記の第1キャッシュデバイス211及び第2キャッシュデバイス212は、本出願の任意の実施例に記載のキャッシュデバイスの構成と同じである。
【0066】
具体的に、前記第1キャッシュデバイス及び前記第2キャッシュデバイスのいずれは、第1キュー、第2キュー、書き込みポート群、読み出しポート、第1ポップポート、第2ポップポート及びプッシュポートを備える。
【0067】
前記書き込みポート群は、第1キュー及び/又は第2キューにおける所定の記憶アドレスにキャッシュデータを書き込むように構成される。
【0068】
前記読み出しポートは、前記第1キュー及び/又は前記第2キューから、全てのキャッシュデータを一括して読み出すように構成される。
【0069】
前記プッシュポートは、前記第1キュー及び/又は前記第2キューにキャッシュデータをプッシュするように構成される。
【0070】
前記第1ポップポートは、前記第1キューからキャッシュデータをポップするように構成される。
【0071】
前記第2ポップポートは、前記第2キューからキャッシュデータをポップするように構成される。
【0072】
具体的に、前記書き込みポート群は、書き込みデータポート及び書き込みアドレスポートを備えてもよい。
【0073】
前記書き込みデータポートは、書き込まれるキャッシュデータを受信するように構成される。
【0074】
前記書き込みアドレスポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータの、前記第1キュー及び/又は前記第2キューに書き込まれた記憶アドレスを受信するように構成される。
【0075】
具体的に、前記書き込みポート群はさらに、書き込みマスクポートを備え、
前記書き込みマスクポートは、前記書き込みアドレスポートに書き込まれるキャッシュデータのマスク情報を受信するように構成される。
【0076】
前記マスク情報が前記記憶アドレスに書き込まれるキャッシュデータのデータビットを示し、前記書き込みマスクポートと前記書き込みデータポートとのビット幅が同じである。
【0077】
具体的に、第1空満状態フラグビット群及び第2空満状態フラグビット群をさらに備え、
前記第1空満状態フラグビット群は、前記第1キューにおけるキャッシュデータの記憶状態を示すように構成され、
前記第2空満状態フラグビット群は、前記第2キューにおけるキャッシュデータの記憶状態を示すように構成される。
【0078】
第1空満状態フラグビット群は具体的に第1空状態フラグビット及び第1満状態フラグビットを備え、第2空満状態フラグビット群は具体的に第2空状態フラグビット及び第2満状態フラグビットを備える。
【0079】
命令キャッシュに上記の新規な構造を有する第1キャッシュデバイス及び第2キャッシュデバイスを設けることにより、さらに命令キャッシュの性能を最適化することができ、特にフェッチシナリオにおいて、従来技術において複数のFIFOと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化できる。また、マルチコアプロセッサが外部命令メモリに重複したフェッチ要求を送信することを防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減させて、マルチコアプロセッサの性能を向上させることができる。
【0080】
(第3実施例)
【0081】
図3は本出願の第3実施例に係る命令処理システムの構造概略図である。本出願の任意の実施例に記載の命令キャッシュを使用するとともに、命令キャッシュをマルチコアプロセッサと外部命令メモリとの架け橋とすることにより、マルチコアプロセッサにおける1つ又は複数の処理カーネルにフェッチ欠落が発生した場合に、対応する欠落命令識別子とフェッチ欠落が発生した処理カーネルのカーネル識別子とをキャッシュして、欠落命令のフェッチ機能を実現することができる。
【0082】
図3に示すように、命令処理システムは具体的に本出願の任意の実施例に記載の命令キャッシュ310、マルチコアプロセッサ320、及び外部命令メモリ330を備える。前記命令キャッシュ310は具体的に、本出願の任意の実施例に記載の第1キャッシュデバイス311及び第2キャッシュデバイス312を備える。
【0083】
前記命令キャッシュ310はマルチコアプロセッサ320の複数の処理カーネル(図3に示される処理カーネル1、処理カーネル2、…処理カーネルN)及び外部命令メモリ330がそれぞれ接続され、命令キャッシュ310が外部命令メモリ330にバスを介して接続される。
【0084】
前記マルチコアプロセッサ320は、フェッチ欠落が発生すると、欠落命令識別子を命令キャッシュ320に提供するように構成され、
前記外部命令メモリ330は、命令を記憶するように構成され、
前記命令キャッシュ320は、欠落命令識別子を前記外部命令メモリ330に送信するとともに、前記外部命令メモリ330がバスを介して応答して書き戻した命令を取得するように構成される。
【0085】
選択可能に、前記第1キャッシュデバイス311は、フェッチ欠落が発生した時に外部命令メモリにより応答されなかったフェッチ欠落識別子を第1キューにキャッシュして、外部命令メモリにより応答されたが書き戻されていないフェッチ欠落識別子を第2キューにキャッシュするように構成され、
前記第2キャッシュデバイス312は、前記第1キャッシュデバイスにおけるフェッチ欠落識別子の記憶アドレスに従って、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を第1キュー又は第2キューに対応して記憶するように構成される。
【0086】
処理カーネルは命令をフェッチして処理する必要がある場合に、命令キャッシュ310によって外部命令メモリ330から命令を要求し、外部命令メモリ330はバスを介してフェッチ要求に応答する場合に、バスを介して該フェッチ要求にマッチングする命令をバスを介して該命令キャッシュ310に書き戻し、命令キャッシュ310によってフェッチ要求を発する処理カーネルに提供する。該命令キャッシュ310は一度に同一のフェッチ要求にしか応答できず、他のフェッチ要求がランダムに遅延される。処理カーネルがフェッチ欠落を検出した場合、該フェッチ欠落にマッチングするフェッチ欠落識別子を命令キャッシュ310に提供してキャッシュさせ、命令キャッシュ310により適当なタイミングで欠落命令を取得してマッチングする処理カーネルにフィードバックする。
【0087】
具体的には、第1キャッシュデバイス311の使用に合わせて、第2キャッシュデバイス312は1つのキューのみを使用し、限定ではなく例示として、第2キャッシュデバイス312における第2キューのみを使用して、前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を記憶することができる。したがって、第2キャッシュデバイス312の読み出しポートからキャッシュデータを読み出す必要がある場合には、該第2キューのみからキャッシュデータを読み出し、第2キャッシュデバイス312の書き込みポート群からキャッシュデータを書き込む必要がある場合には、該第2キューにおける所定の記憶アドレスにキャッシュされたデータの所定データビットのみにデータを書き込むことができ、第2キャッシュデバイス312のプッシュポートを介してキャッシュデータをプッシュする必要がある場合には、プッシュされるキャッシュデータが第2キューのみにプッシュされ、第2キャッシュデバイス312の第2キューからキャッシュデータをポップする必要がある場合には、第2ポップポートのみを介してポップすることができる。同時に、第2キャッシュデバイス312における第2空満状態フラグビット群のみを使用して第2キューの空満記憶状態を示す。
【0088】
もちろん、同様に第2キャッシュデバイス312における第1キューを使用して前記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を記憶することができ、本実施例はこれを限定しない。
【0089】
具体的には、命令キャッシュ310は、外部命令メモリ330がアイドル状態にあると検出された場合、
第1キャッシュデバイス311の第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリ330に提供する。
命令キャッシュ310は、外部命令メモリ330から第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、
第1キャッシュデバイス311の第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイス311の第2ポップポートを介してポップすることと、
第2キャッシュデバイス312から前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイス312の第1ポップポート又は第2ポップポートを介してポップすることと、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信することと、を実行する。
【0090】
命令キャッシュ310は、第2ターゲット処理カーネルに第2ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、
第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出すことと、
前記第1キャッシュデバイスの第1キュー及び第2キューのいずれにも前記第2ターゲット欠落命令識別子が記憶されていない場合、前記第2ターゲット欠落命令識別子を前記第1キュー及び前記第2キューに同時に記憶することと、
前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲットキャッシュデータを生成することと、
第2キャッシュデバイスのプッシュポートを介して、前記第2ターゲットキャッシュデータを前記第2キャッシュデバイスの第1キュー、又は第2キューにプッシュすることと、
前記第1キャッシュデバイスの第1キュー又は第2キューに前記第2ターゲット欠落命令識別子が記憶されている場合、前記第2ターゲット欠落命令識別子の前記第1キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第3ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第2キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第3ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第2ターゲットフェッチ欠落識別子にマッチングする第2ターゲット処理カーネルのカーネル識別子を前記第2キャッシュデバイスに記憶することと、を実行する。
【0091】
本出願の実施例の技術的解決手段は、命令キャッシュに上記の新規な構造を有する第1キャッシュデバイス及び第2キャッシュデバイスを設けることにより、命令キャッシュシステムにおいて、従来技術における複数のFIFOと複数のレジスタ群との協調作動により実現される欠落命令のフェッチ機能を実現でき、多くの複雑な論理制御が不要で、命令キャッシュの設計を簡略化できる。また、マルチコアプロセッサから外部命令メモリへの重複したフェッチ要求の送信を防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減でき、マルチコアプロセッサの性能を向上させることができる。
【0092】
(第4実施例)
【0093】
図4は本出願の第4実施例に係るデータ処理方法のフローチャートであり、本実施例は欠落命令の処理を実施する場合に適用することができる。該方法はデータ処理装置によって実行されてもよく、該装置がソフトウェア及び/又はハードウェアの方式で実施され、好ましくは、本出願の任意の実施例に記載の命令処理システムにおける命令キャッシュに配置され、該命令キャッシュにおいてマルチコアプロセッサ及び外部命令メモリと組み合わせて使用する。図4に示すように、該方法は具体的にS410、S420、S430及びS440を含む。
【0094】
S410:外部命令メモリがアイドル状態にあると検出された場合、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供する。
【0095】
前述したように、第1キャッシュデバイスの第1キューには、フェッチ欠落が発生した時にバスによって応答されなかったフェッチ欠落識別子、すなわち、外部命令メモリに送信されていないフェッチ欠落識別子がキャッシュされている。したがって、外部命令メモリがアイドル状態にあると検出された場合、現在の外部命令メモリが命令読み出し動作を行っていないことを意味し、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出すことができ、第1ポップポートを介してポップした後、ポップされた欠落命令識別子を該外部命令メモリに提供することで、該外部命令メモリに該欠落命令識別子に対応する命令の書き戻しを行わせる。
【0096】
S420:外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップする。
【0097】
本実施例では、第1キャッシュデバイスの第2キューには、バスによって応答されたが書き戻されていないフェッチ欠落識別子がキャッシュされている。つまり、第2キューにキャッシュされているフェッチ欠落識別子は、バスを介して外部命令メモリに送信されたが外部命令メモリからフィードバックされる書き戻し命令が受信されていないフェッチ欠落識別子である。
【0098】
外部命令メモリは同一時間に1つの命令読み出し動作しか処理することができないため、外部命令メモリからフィードバックされた書き戻し命令が検出された場合、現在の第2キューに記憶された、バスにより応答されたが書き戻されていない最初のフェッチ欠落識別子に対して、既に対応する書き戻し命令が受信されたと意味するため、該第2キューにおける最初のフェッチ欠落識別子を第2ポップポートを介してポップして、キャッシュ空間を解放することができる。
【0099】
S430:第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第1ポップポート又は第2ポップポートを介してポップする。
【0100】
本実施例では、第1キャッシュデバイスにより命令欠落が発生したフェッチ欠落識別子を記憶する場合に、第2キャッシュデバイスには該フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期して書き込み、外部命令キャッシュからフィードバックされた書き戻し命令を受信すると、第1キャッシュデバイスの第2キューにおける最初のフェッチ欠落識別子(即ち、第1ターゲット欠落命令識別子)を第2ポップポートを介してポップするとともに、第2キャッシュデバイスにおける第1キュー又は第2キューにキャッシュされた上記フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子(即ち、第1ターゲットカーネル識別子)を第1ポップポート、又は第2ポップポートを介してポップすることにより、上記書き戻し命令を具体的にどの処理カーネルに提供するかを判定し、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【0101】
具体的には、該第1ターゲットカーネル識別子のカーネル識別子は第1ターゲットキャッシュデータに含まれ、第1ターゲットキャッシュデータのデータビット数がマルチコアプロセッサの処理カーネル数に対応して、異なる処理カーネルが第1ターゲットキャッシュデータの異なるデータビットに対応し、前記第1ターゲットキャッシュデータにおけるデータビットの具体的なデータ値(0、又は1)に基づいて、どの処理カーネルが該第1ターゲット欠落命令識別子に対してフェッチ欠落が発生したかを判定することができる。
【0102】
S440:前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信する。
【0103】
具体的には、データ値1によってフェッチ欠落が発生した処理カーネルをマーク付けすることができ、さらに該第1ターゲットキャッシュデータにおける1の位置を識別することができ、さらにデータビットと処理カーネルとの間のマッピング関係に基づいて、1つ又は複数の第1ターゲットカーネル識別子を識別するとともに、外部命令メモリからフィードバックされた書き戻し命令を上記第1ターゲット処理カーネルに提供する。
【0104】
本出願の実施例では、命令キャッシュに第1キャッシュデバイスを設けることにより、命令欠落が発生した場合に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第2キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【0105】
(第5実施例)
【0106】
図5は本出願の第5実施例に係るデータ処理方法のフローチャートであり、本実施例は上記の実施例を基に最適化し、フェッチ欠落が発生した場合に欠落命令識別子及びフェッチ欠落が発生した処理カーネルを記憶する動作を具現化したものであり、図5に示すように、前記方法は具体的にS510〜S5120を含む。
【0107】
S510:外部命令メモリがアイドル状態にあると検出された場合、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供する。
【0108】
S520:外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出された場合、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップする。
【0109】
S530:第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第1ポップポート又は第2ポップポートを介してポップする。
【0110】
S540:前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信する。
【0111】
S550:第2ターゲット処理カーネルに第2ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出す。
【0112】
本実施例では、第1キャッシュデバイスには、第1キュー及び第2キューにおける全てのキャッシュデータを一括して読み出すことが可能な読み出しポートが設けられたため、読み出しポートから読み出された全てのキャッシュデータに基づいて、第2ターゲット欠落命令識別子が第2ターゲット処理カーネルを除いた他の処理カーネルにより送信されたことがあるか否かを判断することができ、同一の欠落命令識別子の繰り返し記憶を防止することができる。
【0113】
S560:前記第1キャッシュデバイスの第1キュー又は第2キューに第2ターゲット欠落命令識別子が記憶されているか否かを判断し、そうであれば、S570を実行し、そうでなければ、S580を実行する。
【0114】
S570:前記第2ターゲット欠落命令識別子の前記第1キャッシュデバイスにおけるターゲット記憶アドレスを取得し、S590を実行する。
【0115】
前記第1キャッシュデバイスの第1キュー又は第2キューに第2ターゲット欠落命令識別子が記憶されていると、上記第2ターゲット欠落命令識別子が他の処理カーネルにより送信されたことがあると意味し、したがって、第2ターゲット処理カーネルのカーネル識別子を第2キャッシュデバイスにおける前記ターゲット記憶アドレスに追加して記憶すればよい。
【0116】
なお、第2キャッシュデバイスが第2キューを使用することを例として、第2キャッシュデバイスの第2キューが、第1キャッシュデバイスの第2キューに記憶された情報と1対1に対応しており、つまり、同一の記憶アドレスにおいて、第1キャッシュデバイスの第2キューには1つの欠落命令識別子Aが記憶され、第2キャッシュデバイスの第2キューには、該欠落命令識別子Aを送信した全ての処理カーネルのカーネル識別子が記憶されている。
【0117】
S580:前記第2ターゲット欠落命令識別子を前記第1キュー及び前記第2キューに同時に記憶し、S5110を実行する。
【0118】
前記第1キャッシュデバイスの第1キュー又は第2キューのいずれにも第2ターゲット欠落命令識別子が記憶されていない場合、上記第2ターゲット欠落命令識別子が他の処理カーネルにより送信されていないことを意味する。したがって、該第2ターゲット欠落命令識別子が、フェッチ欠落が発生した時にバスにより応答されていないことと、バスにより応答されたが書き戻されていないこととを同時に満たすため、第1キャッシュデバイスのプッシュポットを介して、前記第2ターゲット欠落命令識別子を第1キャッシュデバイスの第1キュー及び第2キューに同時にプッシュすることができる。
【0119】
本実施例では、フェッチ欠落が発生した時にバスにより応答されていないフェッチ欠落識別子を第1キューに記憶することができ、バスにより応答されたが書き戻されていないフェッチ欠落識別子を第2キューに記憶することができる。
【0120】
S590:前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第3ターゲットキャッシュデータ及びターゲットマスク情報を生成し、S5100を実行する。
【0121】
具体的な例では、マルチコアプロセッサに12個の処理カーネルが含まれると、上記12個の処理カーネルは、第2キャッシュデバイスに記憶されたキャッシュデータの12個のデータビットに対応する。予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲット処理カーネルは12個のデータビットにおける第3ビットであり、したがって、001000000000のような第3ターゲットキャッシュデータ及びターゲットマスク情報を構築して、ターゲット記憶アドレスにおける第3ビットを1に調整することを確定し、該ターゲット記憶アドレスにおいて、該第2ターゲット処理カーネルのカーネル識別子を追加して記憶する。
【0122】
S5100:前記第2キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第3ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第2ターゲットフェッチ欠落識別子にマッチングする第2ターゲット処理カーネルのカーネル識別子を前記第2キャッシュデバイスに記憶する。
【0123】
S5110:前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲットキャッシュデータを生成する。
【0124】
前記第2ターゲット欠落命令識別子が第1キャッシュデバイスにより記憶されていないため、処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係とに基づいて、対応する第2ターゲットキャッシュデータを生成することができる。
【0125】
続いて、第2ターゲット処理カーネルは12個のデータビットにおける第3ビットであるため、001000000000のような第2ターゲットキャッシュデータを構築することができる。
【0126】
S5120:第2キャッシュデバイスのプッシュポートを介して、前記第2ターゲットキャッシュデータを前記第2キャッシュデバイスの第1キュー、又は第2キューにプッシュする。
【0127】
本出願の実施例の技術的解決手段は、命令キャッシュに第1キャッシュデバイスを設けることにより、命令欠落が発生した際に、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子を同時に記憶することができ、キャッシュデバイスの使用数が大幅に低減され、また、第2キャッシュデバイスにおける書き込みポート群及び読み出しポートにより、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してキャッシュするか又は読み出すことができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【0128】
また、第2キャッシュデバイスにおける書き込みポート群により、マルチコアプロセッサの異なる処理カーネルの同一の欠落命令に対するフェッチ要求を受信すると、上記の各処理カーネルの情報を同一の記憶アドレスに書き込むことを実現でき、限られた記憶空間を最大限に再利用でき、処理性能を向上させることができる。また、マルチコアプロセッサから外部命令メモリへの重複したフェッチ要求の送信を防止することができ、マルチコアプロセッサの不要な待ち時間を大幅に低減でき、マルチコアプロセッサの性能を向上させることができる。
【0129】
上記の各実施例に基づいてさらに、
第1キャッシュデバイスの第1キューにキャッシュデータがない場合、第1キャッシュデバイスの第1空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第1キューが満杯である場合、第1キャッシュデバイスの第1空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューにキャッシュデータがない場合、第1キャッシュデバイスの第2空満状態フラグビット群における空状態フラグビットを目標レベル値に設定することと、
第1キャッシュデバイスの第2キューが満杯である場合、第1キャッシュデバイスの第2空満状態フラグビット群における満状態フラグビットを目標レベル値に設定することと、のうちの少なくとも1つを備える。
【0130】
これに対応して、前記方法はさらに、前記第1キャッシュデバイスの第1空満状態フラグビット群又は第2空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出された場合、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないことを備える。
【0131】
(第6実施例)
【0132】
図6は本出願の第6実施例に係るデータ処理装置の構造概略図を示し、図6に示すように、前記データ処理装置600は、本出願の任意の実施例に係る命令処理システムにおける命令キャッシュにより実行され、前記装置は、
外部命令メモリがアイドル状態にあると検出されると、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供するための第1ポップ処理モジュール610と、
外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップするための第2ポップ処理モジュール620と、
第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第2ポップポートを介してポップするための第3ポップ処理モジュール630と、
前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲットカーネル識別子にマッチングする処理カーネルに前記書き戻し命令を送信するための書き戻し命令送信モジュール640と、を備える。
【0133】
本実施例では、第1キャッシュデバイスに設けられた2つのキュー及び異なるキューに対応するポップポートを介して、処理開始されていない欠落命令識別子及びバスにより応答されたが書き戻されていない欠落命令識別子に対してそれぞれポップ処理することができ、命令キャッシュに使用されるキャッシュデバイスの数が大幅に低減され、また、第2キャッシュデバイスのポップポートを介して、フェッチ欠落識別子にマッチングする処理カーネルのカーネル識別子を同期してポップすることができ、上記の情報をレジスタ群に記憶する必要がなく、複雑な論理制御が低減される。
【0134】
上記の各実施例に基づいてさらに、第1欠落命令識別子書き込みモジュールであって、
第2ターゲット処理カーネルに第2ターゲット欠落命令識別子に対するフェッチ欠落が検出された場合、第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出すことと、
前記第1キャッシュデバイスの第1キュー及び第2キューのいずれにも前記第2ターゲット欠落命令識別子が記憶されていない場合、前記第2ターゲット欠落命令識別子を前記第1キュー及び前記第2キューに同時に記憶することと、
前記第2ターゲット処理カーネル及び、予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第2ターゲットキャッシュデータを生成することと、
第2キャッシュデバイスのプッシュポートを介して、前記第2ターゲットキャッシュデータを前記第2キャッシュデバイスの第1キュー、又は第2キューにプッシュすることと、に用いられる第1欠落命令識別子書き込みモジュールを備えるように構成されてもよい。
【0135】
上記の各実施例に基づいてさらに、第2欠落命令識別子書き込みモジュールであって、
第1キュー及び第2キューに記憶された全ての欠落命令識別子を第1キャッシュデバイスの読み出しポートから読み出した後に、前記第1キャッシュデバイスの第1キュー又は第2キューに前記第2ターゲット欠落命令識別子が記憶されていると、前記第2ターゲット欠落命令識別子の前記第1キャッシュデバイスにおけるターゲット記憶アドレスを取得することと、
前記第2ターゲット処理カーネル及び予め設定された処理カーネルとキャッシュデータにおける対応するデータビットとのマッピング関係に基づいて、第3ターゲットキャッシュデータ及びターゲットマスク情報を生成することと、
前記第2キャッシュデバイスの書き込みポート群を介して、前記ターゲット記憶アドレス、前記第3ターゲットキャッシュデータ及び前記ターゲットマスク情報を書き込み、前記第2ターゲットフェッチ欠落識別子にマッチングする第2ターゲット処理カーネルのカーネル識別子を前記第2キャッシュデバイスに記憶することと、に用いられる第2欠落命令識別子書き込みモジュールを備えるように構成されてもよい。
【0136】
上記の各実施例に基づいてさらに、
第1キャッシュデバイスの第1キューにキャッシュデータがない場合、第1キャッシュデバイスの第1空満状態フラグビット群における空状態フラグビットを目標レベル値に設定するための第1空状態フラグビット設定モジュールと、
第1キャッシュデバイスの第1キューが満杯である場合、第1キャッシュデバイスの第1空満状態フラグビット群における満状態フラグビットを目標レベル値に設定するための第1満状態フラグビット設定モジュールと、
第1キャッシュデバイスの第2キューにキャッシュデータがない場合、第1キャッシュデバイスの第2空満状態フラグビット群における空状態フラグビットを目標レベル値に設定するための第2空状態フラグビット設定モジュールと、
第1キャッシュデバイスの第2キューが満杯である場合、第1キャッシュデバイスの第2空満状態フラグビット群における満状態フラグビットを目標レベル値に設定するための第2満状態フラグビット設定モジュールと、のうちの少なくとも1つを備える。
【0137】
上記の各実施例に基づいて、フェッチ要求放棄処理モジュールであって、前記第1キャッシュデバイスの第1空満状態フラグビット群又は第2空満状態フラグビット群における満状態フラグビットが目標レベル値であると検出されると、マルチコアプロセッサにおけるいずれの処理カーネルからのフェッチ要求を受信しないためのフェッチ要求放棄処理モジュールをさらに備えるように構成されてもよい。
【0138】
本出願の実施例によれば、本出願はさらに、コンピュータプログラムが記憶されている可読記憶媒体であって、該プログラムがプロセッサによって実行される場合に、本出願のすべての実施例に係るデータ処理方法を実現する可読記憶媒体を提供し、即ち、該プログラムがプロセッサにより実行される場合に、外部命令メモリがアイドル状態にあると検出されると、第1キャッシュデバイスの第1キューから欠落命令識別子を取り出し、第1ポップポートを介してポップして、外部命令メモリに提供することと、外部命令メモリから第1ターゲット欠落命令識別子に対してフィードバックされた書き戻し命令が検出されると、第1キャッシュデバイスの第2キューから前記第1ターゲット欠落命令識別子を取り出し、前記第1キャッシュデバイスの第2ポップポートを介してポップすることと、第2キャッシュデバイスから前記第1ターゲット欠落命令識別子にマッチングする第1ターゲットキャッシュデータを取り出し、前記第2キャッシュデバイスの第1ポップポートまたは第2ポップポートを介してポップすることと、前記第1ターゲットキャッシュデータに基づいて、前記第1ターゲットフェッチ欠落識別子にマッチングする第1ターゲット処理カーネルの第1ターゲットカーネル識別子を識別するとともに、前記第1ターゲット処理カーネルに前記書き戻し命令を送信することと、を実現する。
【0139】
本出願の実施例のコンピュータ記憶媒体は、一つ又は複数のコンピュータ読み取り可能な媒体の任意の組み合わせを採用することができる。コンピュータ読み取り可能な媒体は、コンピュータ可読信号媒体、或いはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電気的、磁気的、光学的、電磁気的、赤外線の、又は半導体のシステム、装置又はデバイス、或いはこれらの任意の組み合わせであってもよいがこれらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、1本又は複数本の導線により電気的に接続された、ポータブルコンピュータディスク、ハードディスク、RAM、読み出し専用メモリ(Read Only Memory,ROM)、消去可能なプログラマブル読み出し専用メモリ(Erasable Programmable Read Only Memory,EPROM)、フラッシュメモリ、ポータブルコンパクトディスク読み出し専用メモリ(CD−ROM)、光メモリ、磁気メモリ、又はこれらの任意の適切な組み合わせを含む。本明細書では、コンピュータ可読記憶媒体は、命令実行システム、装置若しくはデバイスにより使用され、或いはこれらに組み合わせて使用するプログラムを含むか或いは記憶するあらゆる有形の媒体であってもよい。
【0140】
コンピュータ可読信号媒体は、ベースバンドにおける、又は搬送波の一部として伝播するデータ信号を含むことができ、その中にはコンピュータ読み取り可能なプログラムコードが搭載されている。このように伝播するデータ信号は様々な形式を採用することができ、電磁信号、光信号又はこれらの任意の適切な組み合わせを含むがこれらに限定されない。コンピュータ可読信号媒体は、さらに、コンピュータ可読記憶媒体以外の任意のコンピュータ読み取り可能な媒体であってもよく、当該コンピュータ読み取り可能な媒体は、命令実行システム、装置又はデバイスにより使用され、或いはそれらと組み合わせて使用されるプログラムを送信、伝播又は伝送することができる。
【0141】
コンピュータ読み取り可能な媒体に含まれるプログラムコードは、無線、有線、光ケーブル、無線周波数(Radio Frequency,RF)など、又は上記の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体によって伝送することができる。
【0142】
1つ又は複数のプログラミング言語又はそれらの組み合わせで本出願の動作を実行するためのコンピュータプログラムコードを作成することができ、前記プログラミング言語は、Java(登録商標)、Smalltalk、C++などのプロジェクト指向のプログラミング言語を含み、さらに、「C」言語又は同様のプログラミング言語といった従来の手続き型プログラミング言語をも含む。プログラムコードは、完全にユーザーコンピュータで実行されてもよいし、部分的にユーザーコンピュータに実行されてもよいし、スタンドアロンソフトウェアパッケージとして実行されてもよいし、部分的にユーザーコンピュータで、部分的にリモートコンピュータで実行されてもよい、又は完全にリモートコンピュータ又はサーバーで実行されてもよい。リモートコンピュータに係る場合、リモートコンピュータは、ローカルネットワーク(LAN)又は広域ネットワーク(WAN)を含むあらゆる種類のインターネットを介して、ユーザーコンピュータに接続することができ、或いは、外部コンピュータに接続する(例えば、インターネットサービスプロバイダによりインターネットを介して接続する)こともできる。
【0143】
なお、上記に示された様々な形態のフローが、ステップの順序変更、追加又は削除により使用されてもよい。例えば、本出願に記載された各ステップは、並列に実行されても、順次的に実行されても、異なる順序で実行されてもよく、本明細書に開示された技術的解決手段の所望の結果を実現できるものであれば、本明細書に限定しない。
【0144】
上記の具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者には明らかなように、設計要求及び他の要素に応じて、様々な変更、組み合わせ、再組合及び置換を行うことができる。本出願の精神及び原則の範囲内で行われたいかなる変更、均等置換及び改良などは、いずれも本出願の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
図6