(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024122937
(43)【公開日】2024-09-09
(54)【発明の名称】キャッシュデータ読み取り方法及び機器
(51)【国際特許分類】
G06F 16/172 20190101AFI20240902BHJP
G06F 12/0846 20160101ALI20240902BHJP
【FI】
G06F16/172
G06F12/0846 110
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2024029184
(22)【出願日】2024-02-28
(31)【優先権主張番号】202310193368.3
(32)【優先日】2023-02-28
(33)【優先権主張国・地域又は機関】CN
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】524040568
【氏名又は名称】中科馭数(北京)科技有限公司
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100132883
【弁理士】
【氏名又は名称】森川 泰司
(74)【代理人】
【識別番号】100148633
【弁理士】
【氏名又は名称】桜田 圭
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(72)【発明者】
【氏名】金 剣
(72)【発明者】
【氏名】張 双林
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ12
5B205MM03
5B205UU45
(57)【要約】 (修正有)
【課題】1つの完全データの読み取り過程において、複数のデータの読み取りを実現し、さらに大量のキャッシュデータ読み取りタスク実行中の読み書き時間オーバヘッドを低減させる。
【解決手段】キャッシュデータ読み取り方法は、受信したキャッシュ待ちのデータに応答し、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込み、各第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む。この方法により、時分割多重の方式を採用して断片化されたデータの読み取りを行い、且つ、1つの完全データに対応する断片化されたデータが異なる記憶ブロックに記憶される。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンピューティング機器に応用されるキャッシュデータ読み取り方法であって、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記方法は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む、キャッシュデータ読み取り方法。
【請求項2】
前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前述した、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、各組の前記キャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割することを含み、
前述した、時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、請求項1に記載の方法。
【請求項3】
前述した、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことを含む、請求項2に記載の方法。
【請求項4】
各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割することを含む、請求項1に記載の方法。
【請求項5】
前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、をさらに含み、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、前記方法は、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出し、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なることと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、をさらに含む、請求項1に記載の方法。
【請求項6】
コンピューティング機器に応用されるキャッシュデータ読み取り方法であって、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも複数の記憶粒子を有し、且ついずれも独立したシステムバスを有し、前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出することと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことと、
前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、を含む、キャッシュデータ読み取り方法。
【請求項7】
前記データバッファ読み出し指令の数は、少なくとも2つであり、且つ前記バッファデータ読み出し指令の数は、前記記憶ブロックの数以下である、請求項6に記載の方法。
【請求項8】
前述した、前記バッファデータ読み出し指令における第2の標識を抽出することは、各前記バッファデータ読み出し指令の第2の標識を抽出することを含む、請求項6に記載の方法。
【請求項9】
前述した、時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことは、
前記第2の記憶粒子のアドレスを、同時に前記時分割多重の方式で前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、請求項6に記載の方法。
【請求項10】
前述した、前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることは、
各前記第2の標識に対応する第2の断片化されたデータを、全ての前記出力待ちのデータを取得するまでそれぞれスプライシングすることを含む、請求項6に記載の方法。
【請求項11】
プロセッサと、揮発性メモリと、不揮発性メモリと、を含むコンピューティング機器であって、前記揮発性メモリは、少なくとも2つの記憶ブロックを含み、各前記記憶ブロックは、いずれも独立したシステムバスを有し且ついずれも複数の記憶粒子を有し、前記不揮発性メモリは、コンピュータプログラムを記憶するために用いられ、前記コンピュータプログラムが前記プロセッサによってロードされる時、前記プロセッサにキャッシュデータ読み取り方法を実行させ、前記方法は、コンピューティング機器に応用され、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記方法は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む、コンピューティング機器。
【請求項12】
前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前述した、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、各組の前記キャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割することを含み、
前述した、時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、請求項11に記載のコンピューティング機器。
【請求項13】
前述した、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことを含む、請求項12に記載のコンピューティング機器。
【請求項14】
各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割することを含む、請求項11に記載のコンピューティング機器。
【請求項15】
前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、をさらに含み、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、前記方法は、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出し、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なることと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、をさらに含む、請求項11に記載のコンピューティング機器。
【発明の詳細な説明】
【技術分野】
【0001】
(相互参照)
本開示は、2023年2月28日に提出された中国特許出願番号が202310193368.3、名称が「キャッシュデータ読み取り方法、装置、機器及び媒体」の優先権を主張しており、同出願の内容の全ては、ここに参照として取り込まれる。
【0002】
本開示は、データ処理分野に関し、具体的には、キャッシュデータ読み取り方法、装置、機器に関する。
【背景技術】
【0003】
現在では、コンピューティング機器は、一般的にマルチスレッドプロセッサを採用し、マルチスレッドプロセッサを利用してコンピューティングタスクを並列に実行する方式でデータ処理能力を向上させ、ビッグデータトラフィックのデータ入力出力を実現する。しかし、現在のマルチスレッドプロセッサによって採用されるメモリは、依然として従来のデータキャッシュアーキテクチャを採用し、すなわちフレーム全体の方式でデータ読み書きを行い、単一のキャッシュ空間に基づいて割当を行う。前記のデータキャッシュアーキテクチャの下でキャッシュデータの読み書きを実行する時、複数のスレッドがキャッシュデータの読み書きタスクを並行すれば、あるスレッドに対応する読み書きタスクをキューに入れる必要があり、データの読み書き時間のオーバヘッドを増加させてプロセッサの有効利用率を低減させる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記技術課題を解決するために、本開示の実施例は、キャッシュデータ読み取り方法、装置、機器及び媒体を提供する。
【課題を解決するための手段】
【0005】
第1の態様によると、本開示の実施例は、コンピューティング機器に応用されるキャッシュデータ読み取り方法を提供し、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記方法は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む。
【0006】
選択的に、前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前述した、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、各組の前記キャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割することを含み、
前述した、時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なることを含む。
【0007】
選択的に、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込む。
【0008】
選択的に、各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割することを含む。
【0009】
選択的に、前記方法は、取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、をさらに含み、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、前記方法は、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出し、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なることと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、をさらに含む。
【0010】
第2の態様によると、本開示の実施例は、コンピューティング機器に応用されるキャッシュデータ読み取り方法を提供し、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも複数の記憶粒子を有し、且ついずれも独立したシステムバスを有し、前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における第2の標識を抽出し、前記第2の標識は、出力待ちのデータの標識であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことと、
前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、を含む。
【0011】
選択的に、前記データバッファ読み出し指令の数は、少なくとも2つであり、且つ前記バッファデータ読み出し指令の数は、前記記憶ブロックの数以下であり、
前述した、前記バッファデータ読み出し指令における第2の標識を抽出することは、各前記バッファデータ読み出し指令の第2の標識を抽出することを含み、
前述した、時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことは、
前記第2の記憶粒子のアドレスを、同時に前記時分割多重の方式で前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが異なることを含み、
前述した、前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることは、
各前記第2の標識に対応する第2の断片化されたデータを、全ての前記出力待ちのデータを取得するまでそれぞれスプライシングすることを含む。
【0012】
第3の態様によると、本開示の実施例は、コンピューティング機器に応用されるキャッシュデータ読み取り装置を提供し、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記装置は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割するためのデータ分割ユニットと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせるためのデータ書き込みユニットと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存するための対応関係保存ユニットと、を含む。
【0013】
選択的に、前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前記データ書き込みユニットは、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なる。
【0014】
選択的に、前記データ書き込みユニットは、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込む。
【0015】
選択的に、各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記データ分割ユニットは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割する。
【0016】
選択的に、前記装置は、取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出するための標識抽出ユニットであって、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下である標識抽出ユニットと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得するための関係クエリユニットと、
前記データ書き込みユニットが時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出すためのデータ読み出しユニットであって、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なるデータ読み出しユニットと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングするためのデータスプライシングユニットと、をさらに含む。
【0017】
第4の態様によると、本開示の実施例は、コンピューティング機器に応用されるキャッシュデータ読み取り装置を提供し、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも複数の記憶粒子を有し、且ついずれも独立したシステムバスを有し、前記装置は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出するための標識抽出ユニットと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得するための関係クエリユニットと、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すためのデータ読み出しユニットと、
前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングするためのデータスプライシングユニットと、を含む。
【0018】
選択的に、前記データバッファ読み出し指令の数は、少なくとも2つであり、且つ前記バッファデータ読み出し指令の数は、前記記憶ブロックの数以下であり、
前記データ読み出しユニットは、前記第2の記憶粒子のアドレスを、同時に前記時分割多重の方式で前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが異なり、
前記データスプライシングユニットは、各前記第2の標識に対応する第2の断片化されたデータを、全ての前記出力待ちのデータを取得するまでそれぞれスプライシングする。
【0019】
第5の態様によると、本開示の実施例は、プロセッサと、揮発性メモリと、不揮発性メモリと、を含むコンピューティング機器を提供し、前記揮発性メモリは、少なくとも2つの記憶ブロックを含み、各前記記憶ブロックは、いずれも独立したシステムバスを有し且ついずれも複数の記憶粒子を有し、前記不揮発性メモリは、コンピュータプログラムを記憶するために用いられ、前記コンピュータプログラムが前記プロセッサによってロードされる時、前記プロセッサに前記のようなキャッシュデータ読み取り方法を実行させる。
【0020】
第6の態様によると、本開示の実施例は、プロセッサによって実行される時、プロセッサに前記のようなキャッシュデータ読み取り方法を実現させるコンピュータプログラムが記憶されるコンピュータ可読記憶媒体を提供する。
【発明の効果】
【0021】
本開示の実施例による技術案は、従来の技術と比べて、以下の利点を有する:
本開示の実施例による方案を採用して、コンピューティング機器は、時分割多重の方式で、キャッシュ待ちのデータの第1の断片化されたデータを少なくとも2つの記憶ブロックの記憶粒子に書き込むか、又は少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出し、且つ読み出された第2の断片化されたデータを利用して出力待ちのデータに組み立てる。時分割多重の方式を採用して断片化されたデータの読み取りを行い、且つ1つの完全データに対応する断片化されたデータが異なる記憶ブロックに記憶されるため、1つの完全データの読み取り過程において、複数のデータの読み取りを実現することができ、さらに大量のキャッシュデータ読み取りタスク実行中の読み書き時間オーバヘッドを低減させることができる。
【図面の簡単な説明】
【0022】
ここでの添付図面は、明細書に組み込まれて本明細書の一部を構成し、本開示に適合する実施形態を示し、本開示の原理を説明するために本明細書と共に使用される。
【0023】
本開示の実施例又は既存技術における技術案をより明確に説明するために、以下では、実施例又は既存技術の記述に使用される必要がある添付図面を簡単に説明する。自明なことに、当業者にとって、創造的な労力を払わない前提で、それらの添付図面に基づき、他の添付図面を取得することもできる。
【0024】
【
図1】本開示の実施例によるキャッシュ記憶領域のアーキテクチャ模式図である。
【
図2】本開示の実施例によるキャッシュデータ読み取り方法のフローチャートである。
【
図3】本開示の実施例のいくつかの場合のキャッシュデータの記憶過程の模式図である。
【
図4】
図3の記憶過程に基づいて取得された第1の断片化されたデータの分布模式図である。
【
図5】本開示の実施例による別のキャッシュデータ読み取り方法のフローチャートである。
【
図6】本開示の実施例の別のいくつかの場合のキャッシュデータの記憶過程の模式図である。
【
図7】
図5の記憶過程に基づいて取得された第1の断片化されたデータの分布模式図である。
【
図8】本開示のさらに別のいくつかの実施例によるデータ読み取り方法のフローチャートである。
【
図9】本開示の実施例のいくつかの場合のキャッシュされたデータの読み出し過程の模式図である。
【
図10】本開示の実施例のまたいくつかの場合のキャッシュされたデータの読み出し過程の模式図である。
【
図11】本開示のさらに別のいくつかの実施例によるデータ読み取り方法のフローチャートである。
【
図12】本開示のいくつかの実施例によるバッファデータ読み取り過程の模式図である。
【
図13】本開示のいくつかの実施例におけるターゲットオーディオフレームを決定する方法のフローチャートである。
【
図14】本開示のいくつかの実施例による音声再生制御装置の構造模式図である。
【
図15】本開示の実施例による端末機器の構造模式図である。
【発明を実施するための形態】
【0025】
以下では、添付図面を参照しながら、本開示の実施例について詳細に説明する。図面には本開示のいくつかの実施例が表示されているが、本開示は、様々な形態で実現でき、本明細書に説明された実施例に限定されるものとして解釈されるべきではなく、むしろ、本開示をより透過的かつ完全に理解するために提供されるものであることが理解されるべきである。本開示の図面及び実施例は、例示的な作用のためにのみ使用され、本開示の保護の範囲を制限するために使用されるものではないことが理解されるべきである。
【0026】
本明細書に用いられる用語「含む」及びその変形は、開放的な包含であり、すなわち「含むが、それらに限らない」。用語「基づく」は、「少なくとも部分的に基づく」である。用語「1つの実施例」は、「少なくとも1つの実施例」を表し、用語「別の実施例」は、「少なくとも1つ別の実施例」を表し、用語「いくつかの実施例」は、「少なくともいくつかの実施例」を表す。他の用語の関連する定義は、以下の記述で与えられる。なお、本開示で言及されている「第1の」、「第2の」などの概念は、異なる装置、モジュール、又はユニットを区別するためにのみ使用され、これらの装置、モジュール、又はユニットによって実行される機能の順序又は相互依存関係を限定するものではない。
【0027】
なお、本開示で言及されている「1つの」、「複数の」という修飾は、限定的ではなく概略的なものであり、文脈において別段の明示的な指摘がない限り、「1つ又は複数の」と理解されるべきである。
【0028】
本開示の実施例は、コンピューティング機器に応用され、キャッシュデータの読み取りポリシーを変更することによってバッファデータの並列読み書きを実現し、次いでコンピューティング機器のキャッシュデータの読み書き速度を向上させるバッファデータ読み取り方法を提供する。
【0029】
本開示の実施例によるバッファデータ読み取り方法は、特定のアーキテクチャのバッファ記憶領域で実行される必要があるため、バッファデータ読み取り方法を説明する前に、まず特定のバッファ記憶領域のアーキテクチャを解析する。
【0030】
本開示の実施例によるバッファ記憶領域は、少なくとも2つの記憶ブロックを有し、前記の少なくとも2つの記憶ブロックは、データ読み取りの独立した制御を実現できる記憶ブロックであり、つまり前記の記憶ブロックは、独立したアドレスバスとデータバスの記憶ブロックを有する。キャッシュデータの読み取りを行う過程において、1つの時刻に、各記憶ブロックは、対応するアドレスバスとデータバスによって並列のキャッシュデータ読み取りを実現することができる。
【0031】
図1は、本開示の実施例によるキャッシュ記憶領域のアーキテクチャ模式図である。
図1に示すように、1つの具体的な実施例では、キャッシュ記憶領域は、4つの記憶ブロックを含む(4つの記憶ブロックの番号は、それぞれ0、1、2、3である)。4つの記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、4ウェイキャッシュデータの並列読み取りを実現することができる。無論、他の実施例では、キャッシュ記憶領域に含まれる記憶ブロックの数は、4つに限らず、他の数であってもよいが、記憶ブロックの数は、少なくとも2つである。
【0032】
前記の各記憶ブロックは、いずれも複数の記憶粒子を有する。例えば、
図1に示される各記憶ブロックにいずれも1024個の記憶粒子が含まれる。記憶粒子は、予め決定された容量のデータ記憶ユニットであり、記憶ブロックにおける複数の連続したビットの組み合わせから実質的に形成される。例えば、1つの応用において、1つの記憶粒子の記憶容量は、1024bitであってもよい。無論、記憶粒子の記憶容量は、前記1024bitに限らず、他の容量であってもよい。
【0033】
なお、バッファ記憶領域は、ランダムアクセスメモリ(Random Access Memory、RAM)に位置する記憶領域であってもよく、キャッシュメモリ(Cache)に位置する記憶領域であってもよく、本開示の実施例は、限定しない。
【0034】
図2は、本開示の実施例によるキャッシュデータ読み取り方法のフローチャートである。
図2に示すように、本開示の実施例によるキャッシュデータ読み取り方法は、S110~S130を含む。
図2に示される方法は、前記バッファ記憶領域を配置するコンピューティング機器によって実行される。
【0035】
S110:受信されたキャッシュ待ちのデータに応答し、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割する。
【0036】
本開示の実施例では、コンピューティング機器の電源が投入された後、コンピューティング機器は、機器の初期化を完了し、記憶キャッシュデータを用意するように、対応する物理メモリ(つまり前記のRAM又はCache)に予め設定された数の記憶ブロックを開設する。
【0037】
キャッシュ待ちのデータは、バッファ記憶領域に記憶されるデータである。キャッシュ待ちのデータは、CPUの演算によって取得されたデータであってもよく、不揮発性メモリからロードされたデータであってもよい。
【0038】
キャッシュ待ちのデータを受信した後、次にコンピューティング機器は、キャッシュ待ちの数を分割処理し、少なくとも2つの第1の断片化されたデータを取得する。具体的な実施において、コンピューティング機器は、ストリーミング処理の方式でキャッシュ待ちのデータを分割し、少なくとも2つの第1の断片化されたデータを取得することができる。前記のストリーミング処理は、キャッシュ待ちのデータの一部を取得した後、この部分を第1の断片化されたデータとする。
【0039】
具体的な実施において、記憶粒子の容量を十分に利用することを可能にするために、コンピューティング機器は、記憶粒子の容量を分割容量として、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに分割するように分割することができる。
【0040】
S120:時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込む。
【0041】
S130:キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存する。
【0042】
本開示の実施例では、記憶ブロックを分割して少なくとも1つの第1の断片化されたデータを取得した後、コンピューティング機器は、時分割多重の方式で、第1の断片化されたデータを前記各記憶ブロックにおける第1の記憶粒子に書き込み、且つ各第1の記憶粒子に書き込まれた第1の断片化されたデータを互いに異ならせる。
【0043】
時分割多重の方式でデータの書き込みを行うことは、キャッシュ待ちのデータのうちの1つの第1の断片化されたデータを1つの第1の記憶粒子に書き込む時、このキャッシュ待ちのデータの別の断片化されたデータが同時に他の記憶ブロックに書き込まれないことを意味する。つまり、1つのキャッシュ待ちのデータが分割されて形成された第1の断片化されたデータは、時間的に順次記憶ブロックに書き込まれ、少なくとも2つの記憶ブロックに同時に書き込まれない。
【0044】
なお、各第1の記憶ブロックに書き込まれる第1の断片化されたデータは、互いに異なる。前述した異なるとは、第1の断片化されたデータの番号が互いに異なり、第1の断片化されたデータのデータ内容が異なることを意味するものではない。実際の実施において、キャッシュ待ちのデータのデータ特性のために、分割された第1の断片化されたデータのデータ内容は、同じである可能性がある。各第1の記憶ブロックに書き込まれる第1の断片化されたデータが互いに異なることから、キャッシュ待ちのデータの各第1の断片化されたデータがキャッシュ記憶領域に1回のみ書き込まれることが分かる。
【0045】
具体的な実施において、キャッシュ待ちのデータのバッファ記憶領域への成功的な記憶を実現するために、キャッシュ待ちのデータを受信した後、コンピューティング機器におけるリソース管理モジュールは、まず、割り当てのために十分な記憶リソースがあるか否かを判断する。割り当て可能な十分な記憶リソースムーブメントがなければ、コンピューティング機器は、キャッシュ待ちのデータを廃棄することができる。記憶粒子が十分である場合、コンピューティング機器は、アイドルの記憶粒子アドレスを取得することができ、次に第1の断片化されたデータを対応する記憶粒子に書き込む。
【0046】
第1の断片化されたデータに空間の記憶粒子アドレスを割り当てた後、後で第1の断片化されたデータを検索でき、且つ第1の断片化されたデータを利用して前記キャッシュ待ちのデータをスプライシングするために、コンピューティング機器は、キャッシュ待ちのデータの第1の標識と記憶粒子アドレス(つまり第1の記憶粒子アドレス)の対応関係をリソース管理テーブルに書き込む。第1の断片化されたデータがバッファ記憶領域に順次記憶されるため、コンピューティング機器は、ストリーミングの方式で順次割り当てられる各第1の記憶粒子のアドレスをリソース管理テーブルに書き込む。
【0047】
前記のように、本開示の実施例では、コンピューティング機器は、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、つまりキャッシュ待ちのデータによって分割されて形成された第1の断片化されたデータが少なくとも2つの記憶ブロックに分散して記憶される。一方、コンピューティング機器は、時分割多重の方式でキャッシュ待ちのデータの第1の断片化されたデータを記憶するので、1つの時刻にバッファ待ちのデータは、1つのデータブロックのアドレスバスとデータバスを占有するため、1つのキャッシュ待ちのデータを記憶すると同時に、他の記憶ブロックのアドレスバスとデータバスが占有されておらず、対応するバスが占有されていない記憶ブロックは、他のキャッシュデータの読み取りに用いることができる。すなわちS120を実行する時、各記憶ブロックは、データ読み取り操作を並列に行うことができる。つまり、本開示の実施によるバッファデータ読み取り方法を採用して、コンピューティング機器は、複数の読み取りタスクを並列に実行することができる。複数の読み取りタスクを同時に実行するできるため、それに応じて、コンピューティング機器が大量のキャッシュデータ読み取りタスクを実行する時のデータ読み書き時間のオーバヘッドを低減させることができる。
【0048】
以下では、本開示の実施例によるバッファデータ読み取り方法を例に挙げて分析する。
【0049】
図3は、本開示の実施例のいくつかの場合のキャッシュデータの記憶過程の模式図である。
図4は、
図3の記憶過程に基づいて取得された第1の断片化されたデータの分布模式図である。
【0050】
図3に示すように、いくつかの実施例では、ある期間内、コンピューティング機器のバッファ記憶領域は、1つのバッファ待ちのデータのみを受信し、バッファ待ちのデータパケットが8つの第1の断片化されたデータに分けられる。T0時刻に、番号Data0の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込み、T1時刻に、番号Data1の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込み、T2時刻に、番号Data2の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込み、T3時刻に、番号Data3の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込み、T4時刻に、番号Data4の第1の断片化されたデータを記憶ブロック1の2番目の記憶粒子に書き込み、T5時刻に、番号Data5の第1の断片化されたデータを記憶ブロック2の2番目の記憶粒子に書き込み、T6時刻に、番号Data6の第1の断片化されたデータを記憶ブロック3の2番目の記憶粒子に書き込み、T7時刻に、番号Data7の第1の断片化されたデータを記憶ブロック3の2番目の記憶粒子に書き込む。
【0051】
このように、第1の断片化されたデータは、
図3の方式で記憶され、Data0とData4は記憶ブロック0に、Data1とData5は記憶ブロック2に、Data2とData6は記憶ブロック2に、Data3とData7は記憶ブロック3に記憶される。
【0052】
図3を参照して、T0とT4時刻に、記憶ブロック1、2、3のバスはアイドル状態にあり、T1とT5時刻に、記憶ブロック0、1、2のバスはアイドル状態にあり、T2とT6時刻に、記憶ブロック0、1、3のバスはアイドル状態にあり、T3とT7時刻に、記憶ブロック0、1、2のバスはアイドル状態にある。読み取りタスクが比較的に多い場合、他のバッファデータの記憶位置を合理的に配置すれば、コンピューティング機器は、4つの記憶ブロックのバスを同時に共通化し、4つの並列読み取りを実現することができる。各記憶ブロックのデータバス帯域幅がxGbit/sであれば、コンピューティング機器が4つの記憶ブロックを配置した場合、そのデータバスは、理論的に4xGbit/sに達することができる。
【0053】
図5は、本開示の実施例による別のキャッシュデータ読み取り方法フローチャートである。
図5に示すように、本開示の実施例によるキャッシュデータ読み取り方法は、S210~S230を含む。
【0054】
S210:受信された複数組のキャッシュ待ちのデータに応答し、各組のキャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割する。
【0055】
本開示の実施例では、前記の複数組のバッファ待ちのデータは、少なくとも2組であり、且つキャッシュ待ちのデータの組数は、記憶ブロックの数M以下である。具体的な実施例では、複数組のバッファ待ちのデータの数が記憶ブロックの数Mよりも多い場合、コンピューティング機器は、優先順位によって、優先的に処理されるM組のキャッシュ待ちのデータを決定することができる。
【0056】
前記のS110と同様に、本開示の実施例では、コンピューティング機器は、各組のバッファ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割する。より優先的に、各組のバッファ待ちのデータが分割される第1の断片化されたデータの大きさは、同じであり、いずれも1つの記憶粒子の記憶容量である。
【0057】
S220:各組のキャッシュ待ちのデータに対応する第1の断片化されたデータを、同時に時分割多重の方式で少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なる。
【0058】
S220において言及された時分割多重の概念は、S120におけるものと同じであり、一組のバッファ待ちのデータのうちの第1の断片化されたデータについて、1つの時刻に1つのみが記憶ブロックに書き込まれる。
【0059】
前記S120と異なるのは、本実施例では、同一時刻に、少なくとも2組のバッファ待ちのデータに対応する第1の断片化されたデータが同時に記憶され、ただ、各第1の断片化されたデータが異なる記憶ブロックに書き込まれる。
【0060】
S230:キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存する。
【0061】
S230の実行過程は、前述と同じであり、ここでこれ以上説明しないが、具体的には前記の記述を参照してもよい。
【0062】
図6は、本開示の実施例の別のいくつかの場合のキャッシュデータの記憶過程の模式図である。
図7は、
図6の記憶過程に基づいて取得された第1の断片化されたデータの分布模式図である。
【0063】
図6に示すように、いくつかの実施例では、ある期間内、コンピューティング機器のバッファ記憶領域は、4つのバッファ待ちのデータを受信し、各組バッファ待ちのデータは、いずれも5つの第1の断片化されたデータに分けられる。各組のバッファ待ちのデータにおける第1の断片化番号は、それぞれDA0~DA4、DB0~DB4、DC0~DC4とDD0~DD4である。
【0064】
T0時刻に、番号DA0の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込み、番号DB0の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込み、番号DC0の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込み、番号DD0の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込む。
【0065】
T1時刻に、番号DA1の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込み、番号DB1の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込み、番号DC1の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込み、番号DD1の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込む。
【0066】
T2時刻に、番号DA2の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込み、番号DB3の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込み、番号DC2の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込み、番号DD3の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込む。
【0067】
T3時刻に、番号DA3の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込み、番号DB3の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込み、番号DC3の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込み、番号DD3の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込む。
【0068】
T5時刻に、番号DA5の第1の断片化されたデータを記憶ブロック1の1番目の記憶粒子に書き込み、番号DB5の第1の断片化されたデータを記憶ブロック2の1番目の記憶粒子に書き込み、番号DC5の第1の断片化されたデータを記憶ブロック3の1番目の記憶粒子に書き込み、番号DD5の第1の断片化されたデータを記憶ブロック0の1番目の記憶粒子に書き込む。
【0069】
図7に示すように、各記憶ブロックに記憶されるキャッシュデータは、以下の通りである:記憶ブロック0{DA0、DD1、DC1、DB3、DA4}、記憶ブロック1{DB0、DA1、DD2、DC3、DB4}、記憶ブロック2{DC0、DB1、DA2、DD3、DC4}、記憶ブロック4{DD0、DC1、DB2、DA3、DD4}。
【0070】
また、前記の例から分かるように、各キャッシュ待ちのデータは、同時に時分割多重で異なる記憶ブロックに書き込まれるため、各キャッシュ待ちのデータの記憶は、互いに干渉せずに並列に実行し、コンピューティング機器のデータバスの帯域幅は、理論上4xGbit/sに達する。
【0071】
前記の例のように、本開示のいくつかの実施例では、コンピューティング機器は、S220を実行する時、各組のキャッシュ待ちのデータに対応する第1の断片化されたデータを、第1の断片化されたデータがいずれもバッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら少なくとも2つの記憶ブロックの第1の記憶粒子に書き込む。
【0072】
具体的な実施において、ラウンドロビンの方式で前記操作を実行し、つまり各キャッシュ待ちのデータを順次データブロック0~データブロック3に従って第1の断片化されたデータの記憶を実行させ、記憶粒子のリソースを割り当てる時に各データブロックに対して順次記憶すればよく、追加のリソースオーバヘッドが比較的に小さい。
【0073】
図8は、本開示のさらに別のいくつかの実施例によるデータ読み取り方法のフローチャートである。
図8に示すように、本開示のいくつかの実施例では、データ読み取り方法は、S310~S340を含む。
【0074】
S310:取得されたバッファデータ読み出し指令に応答し、バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出する。
【0075】
S320:第2の標識に基づいてリソース管理テーブルをクエリし、出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得する。
【0076】
S310を実行する前に、出力待ちのデータを決定した後、コンピューティング機器は、相応なバッファデータ読み出し指令をバッファデータ読み取り管理モジュールに生成する。
【0077】
バッファデータ読み取り管理モジュールがバッファデータ読み出し指令を取得した後、そのうちの出力待ちのデータの第2の標識を取得する。次に第2の標識に基づいてリソース管理テーブルを検索し、すなわち出力待ちのデータに対応する第2の記憶粒子のアドレスを取得することができる。出力待ちのデータに対応する第2の断片化されたデータが前記アドレスに対応するデータ粒子に記憶される。
【0078】
S330:時分割多重の方式で、第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出す。
【0079】
S340:第2の断片化されたデータを、出力待ちのデータを取得するまでスプライシングする。
【0080】
次に、コンピューティング機器は、時分割多重の方式で、第2の記憶粒子のアドレスに従って、第2の断片化されたデータを順次読み取る。なお、前記第2の断片化されたデータが少なくとも2つの記憶ブロックに記憶される。つまり、1つの記憶ブロックから一部の第2の断片化されたデータを読み取った後、出力待ちのデータをスプライシングするための全ての第2の断片化されたデータを取得するために、他の記憶ブロックから一部の第2の断片化されたデータを読み取る必要がある。
【0081】
出力待ちのデータに対応する全ての第2の断片化されたデータを読み出すために2つの記憶ブロックから必要であるため、出力待ちのデータを読み出す期間内、あるデータブロックのデータバスとアドレスバスは、出力待ちのデータに対応するこの第2の断片化されたデータを出力するために常に用いられることなく、他のデータ読み取りタスクを実行することができる。
【0082】
つまり、本開示の実施によるバッファデータ読み取り方法を採用して、コンピューティング機器は、複数の読み取りタスクを並列に実行することができる。複数の読み取りタスクを同時に実行することができるため、それに応じて、コンピューティング機器が大量のキャッシュデータ読み取りタスクを実行する時のデータ読み書き時間オーバヘッドを低減させることができる。
【0083】
図9は、本開示の実施例のいくつかの場合のキャッシュされたデータの読み出し過程の模式図である。
図9に示されるキャッシュされたデータは、すなわち
図3中の記憶空間に記憶されるデータである。
図9に示すように、ある期間、コンピューティング機器は、キャッシュされたデータを1つだけ読み出す必要がある。T0時刻に、番号Data0の第2の断片化されたデータが記憶ブロック0から読み出され、T1時刻に、番号Data1の第2の断片化されたデータが記憶ブロック1から読み出され、T2時刻に、番号Data2の第2の断片化されたデータが記憶ブロック2から読み出され、T3時刻に、番号Data3の第1の断片化されたデータが記憶ブロック3から読み出され、T4時刻に、番号Data4の第2の断片化されたデータが記憶ブロック0から読み出され、T5時刻に、番号Data5の第2の断片化されたデータが記憶ブロック1から読み出され、T6時刻に、番号Data6の第2の断片化されたデータが記憶ブロック2から読み出され、T7時刻に、番号Data7の第1の断片化されたデータが記憶ブロック3から読み出され、次に、前記読み出し順序に従って各第2の断片化されたデータをスプライシングした後、出力待ちのデータを取得することができる。
【0084】
本開示のいくつかの実施例では、コンピューティング機器がS310を実行する時に取得したデータバッファ読み出し指令の数は、少なくとも2つであるが、バッファデータ読み出し指令の数は、記憶ブロックの数以下である。前記S320においてバッファデータ読み出し指令における第2の標識を抽出することは、具体的には、各バッファデータ読み出し指令の第2の標識を抽出することである。
【0085】
それに応じて、各バッファデータ読み出し指令の第2の標識を抽出する場合、S320は、具体的には、S321である:第2の記憶粒子のアドレスを、同時に時分割多重の方式で第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが互いに異なる。
【0086】
図10は、本開示の実施例のまたいくつかの場合のキャッシュされたデータの読み出し過程の模式図である。
図10のキャッシュされたデータは、すなわち
図3中の記憶空間に記憶されるデータである。
図10に示すように、ある期間、複数のデータ要求指令は、いずれも
図3に示されるバッファされたデータを読み出す必要があり、各データ要求指令に対応するデータ読み出し回線は、それぞれ回線0、回線1、回線2と回線3である。
【0087】
図10に示すように、T0時刻に、記憶ブロック0に記憶される第2の断片化されたデータData0が読み出されて回線0に伝送され、T1時刻に、記憶ブロック1に記憶される第2の断片化されたデータData1が読み出されて回線0に伝送されると同時に、記憶ブロック0に記憶される第2の断片化されたデータData0が読み出されて回線1に伝送され、T2時刻に、記憶ブロック2に記憶される第2の断片化されたデータData2が読み出されて回線0に伝送されると同時に、記憶ブロック1に記憶される第2の断片化されたデータData1が読み出されて回線1に伝送され、記憶ブロック0に記憶される第2の断片化されたデータData0が読み出されて回線2に伝送され、T3時刻に、記憶ブロック3に記憶される第2の断片化されたデータData3が読み出されて回線0に伝送されると同時に、記憶ブロック2に記憶される第2の断片化されたデータData2が読み出されて回線1に伝送され、記憶ブロック1に記憶される第2の断片化されたデータData1が読み出されて回線3に伝送され、記憶ブロック0に記憶される第2の断片化されたデータData0が読み出されて回線0に伝送され、次に、T4時刻に、記憶ブロックに記憶される第2の断片化されたデータData2が読み出されて回線0に伝送されると同時に、記憶ブロック3に記憶される第2の断片化されたデータData3が読み出されて回線1に伝送され、記憶ブロック2に記憶される第2の断片化されたデータData2が読み出されて回線2に伝送され、記憶ブロック1に記憶される第2の断片化されたデータData1が読み出されて回線3に伝送され、……、T7時刻に、記憶ブロック3に記憶される第2の断片化されたデータData7が読み出されて回線0に伝送されると同時に、記憶ブロック2に記憶される第2の断片化されたデータData6が読み出されて回線1に伝送され、記憶ブロック1に記憶される第2の断片化されたデータData5が読み出されて回線2に伝送され、記憶ブロック0に記憶される第2の断片化されたデータData4が読み出されて回線3に伝送され、この時、回線0は、出力待ちのデータを取得する。
【0088】
その後、T8時刻に、記憶ブロック3に記憶される第2の断片化されたデータData7が読み出されて回線1に伝送されると同時に、記憶ブロック2に記憶される第2の断片化されたデータData6が読み出されて回線2に伝送され、この時、回線1は、出力待ちのデータを取得する。
【0089】
その後、T9時刻に、記憶ブロック3に記憶される第2の断片化されたデータData7が読み出されて回線2に伝送され、記憶ブロック2に記憶される第2の断片化されたデータData6が読み出されて回線2に伝送され、この時、回線2は、出力待ちのデータを取得する。
【0090】
最後に、T10時刻に、記憶ブロック3に記憶される第2の断片化されたデータData7が読み出されて回線3に伝送され、この時、回線3は、出力待ちのデータを取得する。
【0091】
前記の解析によって、本開示の実施例ではコンピューティング機器は、11個の期間を採用して同一の出力待ちのデータの4つの回線への出力を完了し、データ伝送を完了するために32個の期間を採用する必要がある従来の技術の方案と比べて、データ読み出し速度を著しく向上させることができる。
【0092】
図11は、本開示のさらに別のいくつかの実施例によるデータ読み取り方法のフローチャートである。
図11に示すように、本開示のさらに別のいくつかの実施例では、データ読み取り方法は、S410~S440を含む。
【0093】
S410:同時に受信されたキャッシュ待ちのデータとバッファデータ読み出し指令に応答し、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割し、またバッファデータ読み出し指令における第2の標識を抽出する。
【0094】
前記の第2の標識は、出力待ちのデータの標識である。本開示の実施例では、出力待ちのデータとバッファ待ちのデータの組数との和は、記憶ブロックの数以下である。例えば、記憶ブロックの数が4つの場合、出力待ちのデータとバッファ待ちのデータ組数との和は、最大で4つである。
【0095】
S420:第2の標識に基づいてリソース管理テーブルをクエリし、出力待ちのデータに関連する少なくとも2つの第2の記憶粒子のアドレスを順次取得する。
【0096】
第2の記憶粒子は、少なくとも2つの記憶ブロックに分布する。具体的な実施において、前記のS420の実行過程は、S320の実行過程と同じであり、ここでこれ以上説明しない。
【0097】
S430:時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込むとともに、時分割多重の方式で、第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出す。
【0098】
S440:キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存し、また、読み出された第2の断片化されたデータを、出力待ちのデータを取得するまでスプライシングする。
【0099】
本開示の実施例では、時分割多重の方式で第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むと同時に、コンピューティング機器は、第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出す。
【0100】
図12は、本開示のいくつかの実施例によるバッファデータ読み取り過程の模式図である。
図12に示すように、回線0は、バッファ待ちのデータDA0~DA3を送信すると同時に、回線1は、データブロックから出力待ちのデータを読み出す必要があり、出力待ちのデータは、具体的には、DB0~DB3であり、ここでDB0が記憶ブロック0に記憶され、DB1が記憶ブロック1に記憶され、DB2が記憶ブロック2に記憶され、DB3が記憶ブロック3に記憶される。コンピューティング機器が回線1から送信されたバッファ待ちのデータと回線2の出力待ちのデータに対するデータ読み出し指令を同時に取得したとすると、回線2の優先度が回線の優先度よりも大きいため、コンピューティング機器は、優先的に回線2にリソースを割り当て、回線1にリソースを割り当てる。T0時刻に、記憶ブロック0に記憶される第2の断片化されたデータDB0が読み出されて回線2に送信されると同時に、回線1における第1の断片化されたデータDA0が記憶ブロック1に書き込まれ、T1時刻に、記憶ブロック1に記憶される第2の断片化されたデータDB1が読み出されて回線2に送信されると同時に、回線1における第1の断片化されたデータDA1が記憶ブロック2に書き込まれ、T2時刻に、記憶ブロック2に記憶される第2の断片化されたデータDB2が読み出されて回線2に送信されると同時に、回線1における第2の断片化されたデータDA2が記憶ブロック3に書き込まれ、T3時刻に、記憶ブロック3に記憶される第2の断片化されたデータDB3が読み出されて回線2に送信されると同時に、回線1における第2の断片化されたデータDA3が記憶ブロック0に書き込まれる。
【0101】
つまり、4個の期間を採用することによって、回線1中のバッファ待ちのデータの書き込みと回線2中の出力待ちのデータの読み出しを同時に実現する。バッファ待ちのデータと出力待ちのデータが1つの記憶ブロックに同時に記憶される場合と比べて、それは、4つの期間を節約し、データの並列読み取り効率を向上させることができる。
【0102】
以上は、本開示の実施例によるデータ読み取り方法を紹介した。前記の紹介過程において、データブロックに記憶される第2の断片化されたデータの数が比較的に少なく、且つ第2の断片化されたデータに対応する記憶粒子が第2の断片化されたデータの廃棄によって回収されないため、各記憶ブロックに記憶される同一のキャッシュデータの第2の断片化されたデータは、より近接している。実際の応用において、データブロックに記憶される第2の断片化されたデータの数が多く、且つある第2の断片化されたデータが廃棄されて対応する記憶粒子が回収される場合、記憶ブロックの第2の断片化されたデータの記憶は、様々な複雑な配列方式を示し、本開示の実施例は、これ以上の例示をしない。
【0103】
なお、本開示の実施例による様々なキャッシュデータ読み取り方法を実行する時、各記憶ブロックバスに対してクロック同期を行い、1つの時刻に各記憶ブロックがそれぞれのデータ読み取りタスクを並列に実行することを確保することができることを実現する。
【0104】
前記キャッシュデータ読み取り方法のほか、本開示の実施例は、バッファデータ読み取り装置の構造模式図をさらに提供する。
図13は、本開示の実施例によるキャッシュデータ読み取り装置の構造模式図である。
図13に示すように、本開示の実施例によるバッファデータ読み取り装置1300は、データ分割ユニット1301、データ書き込みユニット1302と対応関係保存ユニット1303を含む。なお、キャッシュデータ読み取り装置は、コンピューティング機器に応用され、コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有する。
【0105】
データ分割ユニット1301は、受信されたキャッシュ待ちのデータに応答し、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割するために用いられ、データ書き込みユニット1302は、時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込み、各第1の記憶粒子に書き込まれる第1の断片化されたデータを異ならせるために用いられ、対応関係保存ユニット1303は、キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存するために用いられる。
【0106】
いくつかの実施例では、キャッシュ待ちのデータの数は、複数組であり、且つキャッシュ待ちのデータの組数は、記憶ブロックの数以下であり、データ書き込みユニット1302は、各組のキャッシュ待ちのデータに対応する第1の断片化されたデータを、同時に時分割多重の方式で少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なる。
【0107】
いくつかの実施例では、各組のキャッシュ待ちのデータに対応する第1の断片化されたデータを、同時に時分割多重の方式で少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことは、データ書き込みユニット1302が各組のキャッシュ待ちのデータに対応する第1の断片化されたデータを、第1の断片化されたデータがいずれもバッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことを含む。
【0108】
いくつかの実施例では、各記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、データ分割ユニット1301は、記憶粒子の記憶容量に従って、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割する。
【0109】
選択的に、前記装置は、取得されたバッファデータ読み出し指令に応答し、バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出するための標識抽出ユニットであって、ここで出力待ちのデータとバッファ待ちのデータの組数との和は、記憶ブロックの数以下である標識抽出ユニットと、
第2の標識に基づいてリソース管理テーブルをクエリし、出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得するための関係クエリユニットと、
データ書き込みユニット1302が時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込むと同時に、時分割多重の方式で、第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出すためのデータ読み出しユニットであって、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なるデータ読み出しユニットと、
読み出された第2の断片化されたデータを、出力待ちのデータを取得するまでスプライシングするためのデータスプライシングユニットと、をさらに含む。
【0110】
図14は、本開示の実施例によるキャッシュデータ読み取り装置の構造模式図である。
図14に示すように、本開示の実施例によるまたキャッシュデータ読み取り装置1400は、標識抽出ユニット1401、関係クエリユニット1402、データ読み出しユニット1403とデータスプライシングユニット1404を含む。
【0111】
標識抽出ユニット1401は、取得されたバッファデータ読み出し指令に応答し、バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出するために用いられる。
【0112】
関係クエリユニット1402は、第2の標識に基づいてリソース管理テーブルをクエリし、出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得するために用いられる。
【0113】
データ読み出しユニット1403は、時分割多重の方式で、第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すために用いられる。
【0114】
データスプライシングユニット1404は、第2の断片化されたデータを、出力待ちのデータを取得するまでスプライシングするために用いられる。
【0115】
いくつかの実施例では、データバッファ読み出し指令の数は、少なくとも2つであり、且つバッファデータ読み出し指令の数は、記憶ブロックの数以下であり、データ読み出しユニット1403は、第2の記憶粒子のアドレスを、同時に時分割多重の方式で第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが異なり、データスプライシングユニット1404は、各第2の標識に対応する第2の断片化されたデータを、全ての出力待ちのデータを取得するまでそれぞれスプライシングする。
【0116】
本開示の実施例は、プロセッサと、プロセッサによって実行される時、上記のいずれか1つの実施例の運転支援システム問題の記録方法を実現できるコンピュータプログラムが記憶されるメモリと、を含むコンピューティング機器をさらに提供する。
【0117】
図15は、本開示の実施例によるコンピューティング機器の構造模式図である。以下では、具体的には
図15を参照し、それは、本開示の実施例におけるコンピューティング機器1500を実現するのに適した構造模式図を示す。なお、
図15に示されるコンピューティング機器は、一例に過ぎず、本開示の実施例の機能と使用範囲を制限するものではない。
【0118】
図15に示すように、コンピューティング機器1500は、処理装置(例えば中央処理装置、グラフィックス処理装置等)1501を含んでもよく、それは、リードオンリーメモリROM1502に記憶されるプログラム又は記憶装置1508からランダムアクセスメモリRAM1503にロードされるプログラムに基づいて、様々な適切な動作と処理を実行することができる。RAM1503において、更にコンピューティング機器1500を操作するために必要な様々なプログラムとデータが記憶される。処理装置1501、ROM1502及びRAM1503は、バス1504によって互いに接続される。入力/出力I/Oインターフェース1505もバス1504に接続される。
【0119】
特に、本開示の実施例によると、上述した、フローチャートを参照して記述した過程は、コンピュータソフトウェアプログラムとして実現されることができる。例えば、本開示の実施例は、非一時的なコンピュータ可読媒体上に搭載された、フローチャートに示される方法を実行するためのプログラムコードを含むコンピュータプログラムを含むコンピュータプログラム製品を含む。このような実施例では、該コンピュータプログラムは、通信装置1509によってネットワークからダウンロードされてインストールされてもよく、又は記憶装置1508からインストールされてもよく、又はROM1502からインストールされてもよい。該コンピュータプログラムが処理装置1501によって実行される場合に、本開示の実施例の方法に限定される上記機能を実行する。
【0120】
なお、本開示の上記のコンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体又は上記両方の任意の組み合わせであってもよい。コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線的、又は半導体システム、装置又はデバイス、又は以上の任意の組み合わせであってもよいが、それらに限らない。コンピュータ可読記憶媒体のより具体的な例は、1つ又は複数のリード線を有する電気的接続、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクト磁気ディスクリードオンリーメモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせを含んでもよいが、それらに限らない。本開示において、コンピュータ可読記憶媒体は、プログラムを含むか又は記憶する任意の有形媒体であってもよく、該プログラムは、指令実行システム、装置又はデバイスによって使用され又はそれらと組み合わせて使用することができる。本開示において、コンピュータ可読信号媒体は、コンピュータ可読プログラムコードが担持される、ベースバンドに又はキャリアの一部として伝播されるデータ信号を含んでもよい。このような伝播されるデータ信号は、電磁信号、光信号又は上記の任意の適切な組み合わせを含むが、それらに限らない複数の形式を採用してもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよく、該コンピュータ可読信号媒体は、指令実行システム、装置又はデバイスによって使用され、又はそれらと組み合わせて使用するためのプログラムを送信、伝播又は伝送することができる。コンピュータ可読媒体上に含まれるプログラムコードは、電線、光ケーブル、RF(無線周波数)等、又は上記の任意の適切な組み合わせを含むが、それらに限らない任意の適切な媒体で伝送されてもよい。
【0121】
上記コンピュータ可読媒体は、上記コンピューティング機器に含まれるものであってもよく、単独に存在し、該コンピューティング機器に組み込まれていないものであってもよい。
【0122】
上記コンピュータ可読は、1つ又は複数のプログラムを担持し、上記1つ又は複数のプログラムが該コンピューティング機器によって実行される時、該コンピューティング機器が、受信されたキャッシュ待ちのデータに応答し、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割し、時分割多重の方式で、第1の断片化されたデータを少なくとも2つの記憶ブロックの第1の記憶粒子に順次書き込み、各第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせ、キャッシュ待ちのデータの第1の標識と第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存し、及び/又は、取得されたバッファデータ読み出し指令に応答し、バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、第2の標識に基づいてリソース管理テーブルをクエリし、出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得し、時分割多重の方式で、第2の記憶粒子のアドレスに従って少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出し、第2の断片化されたデータを、出力待ちのデータを取得するまでスプライシングする。
【0123】
1つ又は複数のプログラミング言語又はそれらの組み合わせで、本開示の操作を実行するためのコンピュータプログラムコードを記述することができ、上記プログラミング言語は、Java、Smalltalk、C++のようなオブジェクト指向のプログラミング言語を含むが、それらに限らず、「C」言語又は類似するプログラミング言語のような通常の手続き型プログラミング言語をさらに含む。プログラムコードは、完全にテスターコンピュータで実行してもよく、部分的にテスターコンピュータで実行してもよく、1つの独立したソフトウェアパッケージとして実行してもよく、部分的にテスターコンピュータで部分的にリモートコンピュータで実行してもよく、又は完全にリモートコンピュータ又はサーバで実行してもよい。リモートコンピュータに関する状況で、リモートコンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意の種類のネットワークによってテスターコンピュータに接続されることができ、又は、外部コンピュータに接続されることができる(例えばインターネットサービスプロバイダを利用してインターネットによって接続される)。
【0124】
添付図面におけるフローチャートとブロック図は、本開示の様々な実施例のシステム、方法とコンピュータプログラム製品に従って実現できるアーキテクチャ、機能と操作を図示している。この点で、フローチャート又はブロック図における各ブロックは、1つのモジュール、プログラムセグメント、又はコードの一部を表すことができ、該モジュール、プログラムセグメント、又はコードの一部は、所定のロジック機能を実現するための1つ又は複数の実行可能な指令を含む。なお、代替としての一部の実現において、ブロックに表示された機能は、添付図面に表示された順序と異なる順序で発生してもよい。例えば、連続的に表された2つのブロックは、実際には実質的に並列に実行されてもよく、係る機能に応じて逆の順序で実行されてもよい場合がある。なお、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作を実行する専用のハードウェアベースのシステムによって実現されてもよく、又は専用ハードウェアとコンピュータ指令との組み合わせによって実現されてもよい。
【0125】
本開示の実施例に関連して記述されたユニットは、ソフトウェアの方式で実現されてもよく、ハードウェアの方式で実現されてもよい。ここで、ユニットの名称は、ある場合に該ユニット自体に対する限定を構成しない。
【0126】
本明細書で以上に記述された機能は、少なくとも部分的に1つ又は複数のハードウェアロジック部品によって実行されることができる。例えば、非限定的に、使用可能な例示的なタイプのハードウェアロジック部品は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、複雑プログラマブルロジック機器(CPLD)等を含む。
【0127】
本開示の文脈において、機械可読媒体は、有形の媒体であってもよく、指令実行システム、装置又は機器に使用される又は指令実行システム、装置又は機器に結合されて使用されるプログラムを具備又は記憶してよい。機械可読媒体は、機械可読信号媒体又は機械可読記憶媒体であってもよい。機械可読媒体は、電子的、磁気的、光学的、電磁的、赤外線的、又は半導体システム、装置又は機器、又は上記内容のいかなる適切な組み合わせを含んでもよいが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のリード線による電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、光記憶装置、磁気記憶装置、又は上記内容のいかなる適切な組み合わせを含む。
【0128】
本開示の実施例は、プロセッサによって実行される時、上記のいずれか1つの方法の実施例の方法を実現できるコンピュータプログラムが記憶されるコンピュータ可読記憶媒体をさらに提供する。その実行方式は、有益な効果と類似しており、ここでこれ以上説明しない。
【0129】
なお、本明細書では、『第一』と第二などの関係用語、単に一つのエンティティ又は操作を別のエンティティ又は操作から区別するために用いられ、これらのエンティティ又は操作の間に任意のこのような実際の関係又は順序が存在することを必ずしも要求又は暗示するものではない。且つ、「含む」、「包含」という用語又はその他の任意の変形は、非排他的な「含む」を意図的にカバーするものであり、それにより、一連の要素を含む過程、方法、物品又は機器は、それらの要素を含むだけではなく、明確にリストアップされていない他の要素も含み、又はこのような過程、方法、物品又は機器に固有の要素も含む。それ以上の制限がない場合に、「……を1つ含む」という文章で限定された要素について、要素を含む過程、方法、物品又は機器には他の同じ要素も存在することが排除されるものではない。
【0130】
以上は、当業者が本開示を理解又は実現することを可能にする、本開示の具体的な実施形態にすぎない。これらの実施例に対する様々な修正は、当業者には明白であり、本明細書で定義された一般的な原理は、本開示の精神又は範囲から逸脱することなく、他の実施例で実現することができる。したがって、本開示は、本明細書に記載されたこれらの実施例に制限されるものではなく、本明細書に開示された原理及び新規な特徴に一致する最も広い範囲に適合するものである。
【0131】
(付記)
(付記1)
コンピューティング機器に応用されるキャッシュデータ読み取り方法であって、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記方法は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む、キャッシュデータ読み取り方法。
【0132】
(付記2)
前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前述した、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、各組の前記キャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割することを含み、
前述した、時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、付記1に記載の方法。
【0133】
(付記3)
前述した、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことを含む、付記2に記載の方法。
【0134】
(付記4)
各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割することを含む、付記1に記載の方法。
【0135】
(付記5)
前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、をさらに含み、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、前記方法は、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出し、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なることと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、をさらに含む、付記1に記載の方法。
【0136】
(付記6)
コンピューティング機器に応用されるキャッシュデータ読み取り方法であって、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも複数の記憶粒子を有し、且ついずれも独立したシステムバスを有し、前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出することと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことと、
前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、を含む、キャッシュデータ読み取り方法。
【0137】
(付記7)
前記データバッファ読み出し指令の数は、少なくとも2つであり、且つ前記バッファデータ読み出し指令の数は、前記記憶ブロックの数以下である、付記6に記載の方法。
【0138】
(付記8)
前述した、前記バッファデータ読み出し指令における第2の標識を抽出することは、各前記バッファデータ読み出し指令の第2の標識を抽出することを含む、付記6に記載の方法。
【0139】
(付記9)
前述した、時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶粒子から第2の断片化されたデータを読み出すことは、
前記第2の記憶粒子のアドレスを、同時に前記時分割多重の方式で前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックの記憶アドレスから第2の断片化されたデータを読み出し、同一時刻に読み出されている各第2の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、付記6に記載の方法。
【0140】
(付記10)
前述した、前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることは、
各前記第2の標識に対応する第2の断片化されたデータを、全ての前記出力待ちのデータを取得するまでそれぞれスプライシングすることを含む、付記6に記載の方法。
【0141】
(付記11)
プロセッサと、揮発性メモリと、不揮発性メモリと、を含むコンピューティング機器であって、前記揮発性メモリは、少なくとも2つの記憶ブロックを含み、各前記記憶ブロックは、いずれも独立したシステムバスを有し且ついずれも複数の記憶粒子を有し、前記不揮発性メモリは、コンピュータプログラムを記憶するために用いられ、前記コンピュータプログラムが前記プロセッサによってロードされる時、前記プロセッサにキャッシュデータ読み取り方法を実行させ、前記方法は、コンピューティング機器に応用され、前記コンピューティング機器は、少なくとも2つの記憶ブロックを含むバッファ記憶領域を含み、各前記記憶ブロックは、いずれも独立したアドレスバスとデータバスを有し、且ついずれも複数の記憶粒子を有し、前記方法は、
受信されたキャッシュ待ちのデータに応答し、前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することと、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込み、各前記第1の記憶粒子に書き込まれた第1の断片化されたデータを異ならせることと、
前記キャッシュ待ちのデータの第1の標識と前記第1の記憶粒子アドレスの対応関係をリソース管理テーブルに保存することと、を含む、コンピューティング機器。
【0142】
(付記12)
前記キャッシュ待ちのデータの数は、複数組であり、且つ前記キャッシュ待ちのデータの組数は、前記記憶ブロックの数以下であり、
前述した、キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、各組の前記キャッシュ待ちのデータをいずれも少なくとも2つの第1の断片化されたデータに順次分割することを含み、
前述した、時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込み、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックが互いに異なることを含む、付記11に記載のコンピューティング機器。
【0143】
(付記13)
前述した、各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、同時に前記時分割多重の方式で前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことは、
各組のキャッシュ待ちのデータに対応する前記第1の断片化されたデータを、前記第1の断片化されたデータがいずれも前記バッファ記憶領域に書き込まれるまで、同時に時分割多重の方式でラウンドロビンしながら前記少なくとも2つの記憶ブロックの第1の記憶粒子に書き込むことを含む、付記12に記載のコンピューティング機器。
【0144】
(付記14)
各前記記憶ブロックにおける記憶粒子の記憶容量は、いずれも同じであり、
前記キャッシュ待ちのデータを少なくとも2つの第1の断片化されたデータに順次分割することは、前記記憶粒子の記憶容量に従って、前記キャッシュ待ちのデータを少なくとも2つの前記第1の断片化されたデータに順次分割することを含む、付記11に記載のコンピューティング機器。
【0145】
(付記15)
前記方法は、
取得されたバッファデータ読み出し指令に応答し、前記バッファデータ読み出し指令における、出力待ちのデータの標識である第2の標識を抽出し、ここで前記出力待ちのデータと前記バッファ待ちのデータの組数との和は、前記記憶ブロックの数以下であることと、
前記第2の標識に基づいてリソース管理テーブルをクエリし、前記出力待ちのデータに関連する、少なくとも2つの記憶ブロックに分布する少なくとも2つの第2の記憶粒子のアドレスを順次取得することと、をさらに含み、
時分割多重の方式で、前記第1の断片化されたデータを少なくとも2つの前記記憶ブロックの第1の記憶粒子に順次書き込むと同時に、前記方法は、
時分割多重の方式で、前記第2の記憶粒子のアドレスに従って、少なくとも2つの記憶ブロックから第2の断片化されたデータを読み出し、ここで、同一時刻に書き込まれている各第1の断片化されたデータに対応する記憶ブロックと読み出されている第2の断片化されたデータに対応する記憶ブロックが異なることと、
読み出された前記第2の断片化されたデータを、前記出力待ちのデータを取得するまでスプライシングすることと、をさらに含む、付記11に記載のコンピューティング機器。