JP2021193591A - データ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置 - Google Patents

データ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置 Download PDF

Info

Publication number
JP2021193591A
JP2021193591A JP2021147028A JP2021147028A JP2021193591A JP 2021193591 A JP2021193591 A JP 2021193591A JP 2021147028 A JP2021147028 A JP 2021147028A JP 2021147028 A JP2021147028 A JP 2021147028A JP 2021193591 A JP2021193591 A JP 2021193591A
Authority
JP
Japan
Prior art keywords
data
storage
column
row
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021147028A
Other languages
English (en)
Other versions
JP7216781B2 (ja
Inventor
シャオピン ヤン
Xiaoping Yan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021193591A publication Critical patent/JP2021193591A/ja
Application granted granted Critical
Publication of JP7216781B2 publication Critical patent/JP7216781B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】データの記憶及び読み取り、深層学習などの人工知能技術の分野におけるデータ記憶方法及びデータ記憶装置並びにデータ読み取り方法及びデータ読み取り装置をを提供する。【解決手段】データ記憶方法は、記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得し、開始アドレス及び記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定し、ストレージアレイにおける第1インターフェースを制御してデータ記憶動作を実行させて、記憶すべきデータを、同じ開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込む。これにより、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットにデータを同じ行で1ストレージブロックずつ書き込む。【選択図】図1b

Description

技術の分野
本願は、データ処理技術の分野に関し、具体的には、データの記憶及び読み取り、深層学習などの人工知能技術の分野に関し、特に、データ記憶方法、データ記憶装置、電子機器及び記憶媒体に関し、さらに、データの読み取り方法、データ読み取り装置、電子機器及び記憶媒体に関する。
人工知能技術の急速な発展に伴い、スマートデバイスの機能はより強くなり、ニューラルモデルに基づくAI(Artificial Intelligence、人工知能)アルゴリズムもますます複雑になり、これは、より大量の演算及びデータの記憶及びインタラクションに繋がった。
ニューラルネットワークの要件に基づく大量のデータの効率的な記憶は、常に現在の研究の重点となっており、既存の記憶コンピューティング統合チップの設計は、いずれも一定の制限があり、ニューラルネットワークアルゴリズムの特徴に基づくデータの記憶の全体的な効率と柔軟性があまり理想的ではない。したがって、音声インタラクションなどのヒューマンコンピュータインタラクションの体験をよりよく向上させるために、記憶の柔軟性と効率をどのようにしてよりよく向上させるかが、現在の人工知能関連技術の鍵となっている。
本願は、記憶の柔軟性及び記憶効率を向上させるためのデータ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置を提供する。
本願の第1態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶方法であって、各ストレージブロックが複数の記憶ユニットを含み、N及びMが正の整数であり、当該データ記憶方法は、記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得し、前記開始アドレスが開始行、開始列及び開始ユニット識別子を含むステップと、前記開始アドレス及び記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定するステップと、前記ストレージアレイにおける第1インターフェースを制御して前記データ記憶動作を実行させて、前記記憶すべきデータを、同じ前記開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込むステップと、を含むデータ記憶方法が提供される。
本願の第2態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶方法は、記憶すべきデータと、前記記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作を取得するステップと、前記記憶すべきデータを前記開始行の各列内の最初のストレージユニットに1ビットずつ書き込み、前記各列内の最初のストレージユニットの識別子のそれぞれが前記開始ユニット識別子と同じであるステップと、前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の第M列内の最初のストレージユニットにデータが書き込まれた場合には、各列内の、前記最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新するステップと、前記記憶すべきデータが前記ストレージアレイに全部書き込まれるまで、前記記憶すべきデータの残りのデータを前記開始行の各列内の次のストレージユニットに1ビットずつ書き込むステップと、を含むデータ記憶方法が提供される。
本願の第3態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取方法は、ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージが取得された場合、前記ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定するステップと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定するステップと、
前記ストレージアレイにおける第3インターフェースを制御して、前記行アドレス、列アドレス及びストレージユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータを前記ニューラルネットワークプロセッサに送信するステップと、を含むデータ読み取り方法が提供される。
本願の第4態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り方法は、読み取るべきターゲットデータと、前記ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得するステップと、前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するステップと、前記データチャネルを開始し、前記開始行の開始列内の開始ユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータをニューラルネットワークプロセッサに送信するステップと、を含むデータ読み取り方法が提供される。
本願の第5態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶装置は、記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得するように構成される第1取得モジュールであって、前記開始アドレスが開始行、開始列及び開始ユニット識別子を含む第1取得モジュールと、前記開始アドレス及び記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定するように構成される第1決定モジュールと、前記ストレージアレイにおける第1インターフェースを制御して前記データ記憶動作を実行させて、前記記憶すべきデータを、同じ前記開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込むように構成される第1制御モジュールと、を含むデータ記憶装置が提供される。
本願の第6態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶装置であって、前記データ記憶装置は、記憶すべきデータと、前記記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作を取得するように構成される第2取得モジュールと、前記開始行、開始列及び開始ユニット識別子を開始アドレスとし、前記記憶すべきデータを前記開始行の各列内の最初のストレージユニットに1ビットずつ書き込むように構成される第1書き込みモジュールであって、前記各列内の最初のストレージユニットの識別子のそれぞれが前記開始ユニット識別子と同じである第1書き込みモジュールと、前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の第M列内の最初のストレージユニットにデータが書き込まれた場合には、各列内の、前記最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新するように構成される第1更新モジュールと、前記記憶すべきデータが前記ストレージアレイに全部書き込まれるまで、前記記憶すべきデータの残りのデータを前記開始行の各列内の次のストレージユニットに1ビットずつ書き込むように構成される第2書き込みモジュールと、を含むデータ記憶装置が提供される。
本願の第7態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り装置は、ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージを取得した場合、前記ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子を決定するように構成される第2決定モジュールと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定するように構成される第3決定モジュールと、前記ストレージアレイにおける第3インターフェースを制御して、前記行アドレス、列アドレス及びストレージユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、同じストレージユニット識別子に対応するストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータを前記ニューラルネットワークプロセッサに送信するように構成される第2制御モジュールと、を含むデータ読み取り装置が提供される。
本願の第8態様では、N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り装置は、読み取るべきターゲットデータと、前記ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得するように構成される第3取得モジュールと、前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するように構成される第5決定モジュールと、前記データチャネルを開始し、前記開始行の開始列内の開始ユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータをニューラルネットワークプロセッサに送信するように構成される第1読み取りモジュールと、を含むデータ読み取り装置が提供される。
本願の第9態様では、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサは、上記のいずれかの態様に記載のデータ記憶方法を実行でき、又は、上記のいずれかの態様に記載のデータ読み取り方法を実行できる、電子機器が提供される。
本願の第10態様では、コンピュータに、上記のいずれかの態様に記載のデータ記憶方法を実行させ、又は上記のいずれかの態様に記載のデータ読み取り方法を実行させるためのコンピュータ命令を記憶している、非一時的なコンピュータ読み取可能な記憶媒体が提供される。
本願の第11態様では、コンピュータに、上記のいずれかの態様に記載のデータ記憶方法を実行させ、又は、上記のいずれかの態様に記載のデータ読み取り方法を実行させるコンピュータプログラムが提供される。
本願の技術的解決策では、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットに、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データのタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響を回避し、記憶の柔軟性を向上させた。さらに、当該記憶方式は、データ読み取りチャネルの帯域幅を増加させるための条件を提供するため、データを読み取るとき、マルチチャネルで同時に複数のデータを読み取ることができ、読み取りの柔軟性を向上させた。
なお、この部分に記載されている内容は、本願の実施例の肝心なまたは重要な特徴を特定することを意図しておらず、本願の範囲を限定するものでもない。本願の他の特徴は、以下の説明を通じて容易に理解される。
図面は、この技術的解決策をよりよく理解するために使用され、本願を限定するものではない。
本願の実施例に係るストレージアレイの概略図である。 本願の実施例に係るデータ記憶方法の概略フローチャートである。 本願の実施例に係る開始アドレスを決定する概略フローチャートである。 本願の実施例に係るストレージアレイの概略構成図である。 本願の実施例に係るストレージアレイが音声チップに設けられる場合の概略接続図である。 本願の実施例に係るストレージアレイのブロック図である。 本願の実施例に係る別のデータ記憶方法の概略フローチャートである。 本願の実施例に係る又のデータ記憶方法の概略フローチャートである。 本願の実施例に係るさらなるデータ記憶方法の概略フローチャートである。 本願の実施例に係るデータ読み取り方法の概略フローチャートである。 本願の実施例に係るターゲットデータ及びターゲットデータのアドレスを決定する概略フローチャートである。 本願の実施例に係る別のデータ読み取り方法の概略フローチャートである。 本願の実施例に係るデータ記憶装置の概略構成図である。 本願の実施例に係る別のデータ記憶装置の概略構成図である。 本願の実施例に係るデータ読み取り装置の概略構成図である。 本願の実施例に係る別のデータ読み取り装置の概略構成図である。 本願の実施例に係るデータ記憶方法又はデータ読み取り方法を実現するための電子機器のブロック図である。
以下、図面を組み合わせて本願の例示的な実施例を説明し、理解を容易にするためにその中には本願の実施例の様々な詳細事項が含まれており、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができる。同様に、わかりやすくかつ簡潔にするために、以下の説明では、周知の機能及び構成の説明を省略する。
データ処理は、データ(数値及び非数値を含む)を分析及び加工する技術プロセスである。様々な生データに対する分析、整理、コンピューティング、編集などの加工及び処理を含む。コンピュータの普及に伴い、人工知能技術の分野において、コンピュータデータ処理による情報管理は、主なアプリケーションになっている。人工知能は、人間の特定の思考過程や知能的行動を模擬するコンピュータの研究学科であり、ハードウェアレベルの技術とソフトウェアレベルの技術の両方がある。人工知能ハードウェア技術には、一般的に、センサ、専用の人工知能チップ、クラウドコンピューティング、分散ストレージ、ビッグデータ処理などの技術が含まれており、人工知能ソフトウェア技術には、主に、コンピュータビジョン技術、音声認識技術、自然言語処理技術及び機械学習/深層学習、ビッグデータ処理技術、知識グラフ技術などのいくつかの大きい方向性が含まれる。
なお、現在の主要なAI技術は、依然として、クラウドの強力な演算及びオーバーストレージに依存するが、AI技術の端末化は、必然的に市場のニーズの主流のトレンドとなり、スマート音声チップは、スマートスピーカボックス、家電制御、現代のスマート車載システムに適用され始めている。スマート車載音声チップは、主に、端末側による音声ウェイクアップ及び音声認識、テキスト読み上げ(TTS)、及び低遅延のオフライン音声インタラクション制御アプリケーションなどを含み、幅広い市場の見通しがある。音声機能ごとに記憶する必要のあるニューラルネットワークモデルデータは、通常、数メガ、数十メガ、さらには数百メガであるが、実際の動作では、1秒当たりにモデルデータのロードを数倍から数十倍回繰り返す必要があり、これによってもたらされる超高帯域幅のデータ記憶及び記憶効率は、次世代のスマート音声チップの主要重点の1つであり、データ記憶効率は、データ読み取りの効率に直接影響を与え、それによりヒューマンコンピュータインタラクションの体験にさらに影響を与える。
関連技術では、ニューラルネットワークプロセッサNPU内部のストレージユニットは、通常、独立した、入力データのストレージ、ニューラルネットワークモデルデータ(重みデータ)のストレージ、及び出力データのストレージの3つの部分のストレージに分けられる。当該技術では専用のストレージを用いて専用のデータを記憶する方式を採用するため、柔軟性が十分ではなく、ニューラルネットワークモデルの精度要件により、データの定量化の差異の変化が大きい場合/又は一秒あたりに入力する必要のある画像/オーディオデータのフレームが変化する場合、データ記憶が不均衡になり、多かれ少なかれ全体的な記憶効率に影響を与える。
そのため、本願の実施例は、データ記憶方法、データ記憶装置及びデータ読み取り方法、データ読み取り装置を提供する。本願の実施例では、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニット内に、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響を回避し、記憶の柔軟性を向上させた。さらに、当該記憶方式は、データ読み取りチャネルの帯域幅を増加させるための条件を提供するため、データを読み取るとき、マルチチャネルで同時に複数のデータを読み取ることができ、読み取りの柔軟性を向上させた。
以下、図面を参照しながら、本願の実施例に係るデータ記憶方法、データ記憶装置及びデータ読み取り方法、データ読み取り装置について説明する。
本願に係るデータ記憶方法及びデータ読み取り方法は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。本願に係るデータ記憶方法及びデータ読み取り方法を明瞭に説明するために、以下では、まず、本願に係るストレージアレイの構成について説明する。
以下、図1aを参照しながら、N=5、M=4を例として、本願に係るストレージアレイの構成について説明する。
図1aに示すように、当該ストレージアレイ内の各ストレージブロックには4つのストレージユニットが含まれ、データを記憶するとき、まず、第1行の各ストレージブロックの最初のストレージユニットにデータを順次記憶し、その後、第1行の各ストレージブロックの2つ目のストレージユニットにデータを順次記憶し、第1行の各ストレージブロックの各ストレージユニットの全てにデータが記憶されるまで、同様に行った後、第2行の各ストレージブロックの最初のストレージユニットにデータを順次記憶することができる。
実際の使用時に、図1aの破線で示すストレージブロックのように、各ストレージブロック内のストレージユニットはマトリクス状に分布する可能性もある。ストレージブロック内のストレージユニットが、図1aの破線で示すストレージブロックのような形式である場合、データの記憶方式は、依然として、先に、各ブロック内の第1行の各ストレージユニットを順次完全に記憶してから、ストレージブロック内の第2行の各ストレージユニットにデータの記憶を開始することを理解されたい。
図1bは、本願の実施例に係るデータ記憶方法の概略フローチャートである。
本願の実施例のデータ記憶方法の実行主体は、中央処理装置(Central Processing Unit、略称CPU)であり、当該CPUは、ニューラルネットワークモデルに基づく端末チップであり、又は装置内にある。
図1bに示すように、当該データ記憶方法は、ステップS101〜ステップS103を含む。
S101において、記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得し、開始アドレスが開始行、開始列及び開始ユニット識別子を含む。
通常、ニューラルネットワークのコンピューティングデータには、デジタル信号プロセッサ(Digital Sgnal Processor、略称DSP)によって処理されたストリーム音声データ及びニューラルネットワークモデルデータ(重みデータ)が含まれ、ここで、ニューラルネットワークモデルデータは、主に、CPU外部のダブルデータレート同期ダイナミックランダムアクセスメモリ(Double Date Rate Synchronous Dynamic Random Access Memory、略称DDR又はDDR SDRAM)に記憶される。ストレージアレイの記憶空間が限られているため、全てのデータがストレージアレイに記憶されるわけではなく、ストリーム音声データ及びニューラルネットワークモデルデータの一部のみが記憶される。
具体的には、CPUは、ニューラルネットワークプロセッサ(Neural network Processing Unit、略称NPU)のデータ処理の進行状況をリアルタイムで監視して、取得する必要のあるモデルデータを適時に決定することができる。例えば、NPUが、処理する時系列データに対して前の3層のモデル演算を済んでいれば、CPUは第4層のモデルデータを取得することができ、又は、ストレージアレイの記憶空間が許す限り、NPUが第3層の演算を行っているときに、CPUが第4層のモデルデータを取得することもできる。記憶すべきデータを取得する目的は、NPUが読み取るように、当該データをストレージアレイに記憶することである。したがって、ストレージアレイ内の現在使用可能なストレージユニットの、開始行、開始列及び開始ユニット識別子を含む開始アドレスを取得する必要もある。
S102において、開始アドレス及び記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定する。
ここで、データ記憶動作は、記憶すべきデータ及び開始アドレスを含む。
S103において、ストレージアレイにおける第1インターフェースを制御してデータ記憶動作を実行させて、記憶すべきデータを、同じ開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込む。
ここで、第1インターフェースは、データ書き込みインターフェースであり、第1インターフェースは、一端が、AHB/AXI3/AXI4などを含むがこれらに限定されない標準の外部システムバスに接続され、他端が、ストレージアレイのバスインターフェース制御ユニットに接続される。
具体的には、CPUは、データ記憶動作を生成した後、データ記憶動作をストレージアレイにおける第1インターフェースに送信することにより、第1インターフェースは、記憶すべきデータを、同じ開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに1ストレージブロックずつ、行単位で書き込む。
本願の実施例のデータ記憶方法は、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットに、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データのタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響を回避し、記憶の柔軟性を向上させた。
なお、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスを取得するとき、現在使用可能なストレージユニットが位置するストレージブロックにデータが記憶されていない場合があり、この場合、現在使用可能なストレージブロック内の1つ目のストレージユニットを現在使用可能なストレージユニットとして使用することができる。現在使用可能なストレージブロックには、既に一部のデータが記憶されている(完全に記憶されていない)場合もあり、この場合、開始アドレスを取得するとき、記憶されているデータの終了アドレス、即ち、最後のデータが記憶されているアドレスを考慮する必要がある。
本願の一実施例では、図2に示すように、上記のステップS101は、S201〜S203を含み得る。
S201において、記憶すべきデータを取得する。
S202において、記憶すべきデータのタイプに基づいて、ストレージアレイ内のターゲットストレージブロックを決定する。
ここで、記憶すべきデータのタイプは、モデルデータであってもよいし、処理すべき時系列データであってもよい。モデルデータ及び時系列データを異なる行に記憶することができる。通常、時系列データの量が非常に少ないため、例えばストレージアレイの最後の行は時系列データの記憶に使用され、残りの全ての行は、モデルの各層のデータを記憶するために使用することができる。
S203において、ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定する。
なお、図3に示すように、ストレージアレイは、N行(Tier)及びM列(Bank)のストレージブロックを含み、かつ、各ストレージブロックは複数のストレージユニットSを含み、ターゲットストレージブロック内に記憶されているデータの終了アドレスは、終了行、終了列及び終了ユニットを含み、N及びMは正の整数である。
ここで、ストレージユニットSは、1つのデータストレージユニットを表す。
本願の実施例では、DW及びAWはそれぞれ、ストレージユニットSのデータ幅及びアドレス幅を表すことができ、さらに、各Sの記憶容量は、2DW*2AWとして表すことができる。CEは、組み合わせストレージ(1つのストレージブロック)を表し、L個のSから構成することができ、channelは、NPU内部を接続する記憶チャネルの数を表し、ストレージアレイの列の数と同じであり、したがって、ストレージアレイの合計容量はC=N*M*L*2DW*2AW/8バイトであり、当該ストレージアレイは、パラメータ化により記憶容量の大きさを設計することができ、即ち、上記パラメータ設計を変更することにより、必要な様々なストレージアレイのタイプを取得することが可能である。
なお、データを書き込むとき、開始列、開始行及び開始ユニット識別子から始めて、ストレージユニット→記憶列→記憶行の優先順位に基づいて、データを書き込むことができる。これに基づいて、以下の例により、現在使用可能なストレージユニットの開始アドレスを決定できる。
本願の一例示では、上記ステップS203は、終了ユニットが終了列の最後のストレージユニットであり、かつ、終了列が第M列である場合、開始行が終了行の次の行であり、開始列が第1列であり、かつ開始ユニット識別子が次の行の第1列内の1つ目のストレージユニットを示していることを決定するステップを含む。
具体的には、前記ターゲットストレージブロック内に記憶されたデータの終了ユニットは、終了列の最後のストレージユニットであり、かつ終了列が第M列である場合、終了行内の全てのストレージユニットにデータが記憶されていることを表し、このとき、終了行の次の行からデータを記憶することしかできないため、開始アドレスを決定するとき、開始行が終了行の次の行であり、開始列が第1列であり、かつ開始ユニット識別子が次の行の第1列内の1つ目のストレージユニットを示していることを決定する。
例えば、ストレージアレイは3行及び4列を含み、各ストレージブロックは3つのストレージユニットを含み、終了行が第1行で、終了ユニットが第4列の3つ目のストレージユニットである場合、開始行が第2行で、開始列が第1列で、かつ開始ユニット識別子が第2行の第1列内の1つ目のストレージユニットであると決定する。データを1ビットずつ書き込むとき、ストレージユニットへの書き込み順は、第2行の第1列内の1つ目のストレージユニット→…→第2行の第4列内の1つ目のストレージユニット→第2行の第1列内の2つ目のストレージユニット…となり、記憶すべきデータがストレージアレイに全部書き込まれるまでこの書き込み順で書き込まれる。
また、上記ステップS203は、終了列が第M列でない場合、開始列が終了列の次の列であり、開始行が終了行であり、かつ開始ユニット識別子が終了ユニットのアドレスと同じであると決定するステップをさらに含む。
具体的には、ターゲットストレージブロック内の、データが記憶されている終了列が最後の列でない場合、終了行には記憶可能なストレージユニットがまだ存在することを表し、このとき、開始行の空きストレージユニットにデータを記憶することができるため、開始アドレスを決定するとき、開始行が終了行であり、開始列が終了列の次の列であり、かつ開始ユニット識別子が終了ユニットのアドレスと同じであると決定する。
例えば、ストレージアレイは3行、4列を含み、各ストレージブロックは3つのストレージユニットを含み、終了行が第1行であり、終了列が第2列の2つ目のストレージユニットである場合、開始行が第1行であり、開始列が第3列であり、かつ開始ユニット識別子が第1行の第3列内の2つ目のストレージユニットであると決定する。
つまり、当該例では、先に列ごと、ユニットごと、次に行ごとに書き込む方式でデータをストレージアレイに書き込み、ストレージアレイの各列は1つのチャネルに対応するため、ストレージアレイの各列にデータを同時に書き込むことができ、即ち並列記憶を実現して、データの記憶効率を向上させる。
これにより、ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて開始アドレスを決定することにより、開始アドレスを効率的かつ迅速に決定できるだけでなく、データを列ごと1ビットずつ書き込むことにより、並列書き込みが実現でき、データの記憶効率が向上する。
通常、ニューラルネットワークモデルデータはDDRに記憶されており、モデルデータをストレージアレイに記憶する必要がある場合、モデルデータは第1インターフェースを介してストレージアレイに記憶される。モデルデータのほか、ストリーム音声データを記憶する必要もあり、音声データを何らかの処理もせず記憶する場合、第1インターフェースを介してストレージアレイに直接記憶することができる。音声データがDSPによって前処理された場合、例えばノイズリダクションなどの処理後にストレージアレイに記憶される場合、DSPによって処理された音声データをストレージアレイに記憶するための別の書き込みインターフェースを設ける必要がある。
即ち、図4に示すように、ストレージアレイは、第1インターフェース及び第2インターフェースの2つのインターフェースを含み、ここで、第1インターフェースは、上記実施例のデータインターフェースであり、第2インターフェースは、TCMなど、プロセッサ/コプロセッサストレージインターフェースであり、ここのプロセッサは、CPU/DSP/GPUなどを含むが、これらに限定されない。これらは、ストレージアレイに接続される時に汎用のSRAM/FIFOインターフェースに変換される。
ストレージアレイが複数のインターフェースを有する場合、データ記憶方法は、複数のデータ書き込みインターフェースのそれぞれに記憶すべきデータがある場合、複数のインターフェースのそれぞれに対応する記憶すべきデータのタイプに基づいて、各インターフェースの優先度を設定し、優先度の高いインターフェースが先に、対応する記憶すべきデータをストレージアレイに書き込むステップをさらに含む。
具体的には、2つのインターフェースの両方に記憶すべきデータがある場合、対応する2つの記憶アドレスが競合する可能性があり、競合による記憶の無効化を回避するために、2つのインターフェースのそれぞれに対応する記憶すべきデータのタイプ、例えばモデルデータであるか又は時系列データであるかに基づいて、インターフェースの優先度を設定し、優先度の高いインターフェースが先に、対応する記憶すべきデータをストレージアレイに書き込む。なお、第1インターフェース及び第2インターフェースの、データを記憶するアドレスが競合しない場合、例えば、第1インターフェース及び第2インターフェースがそれぞれ異なる書き込みルールでデータを書き込む場合、2つのインターフェースは、異なるタイプのデータを同時に書き込むことができ、記憶効率がさらに向上する。
例えば、第1インターフェースの記憶すべきデータがモデルデータであり、第2インターフェースの記憶すべきデータが音声データである場合、第2インターフェースの優先度を第1インターフェースの優先度より高く設定することができ、第2インターフェースがデータを書き込んだ後、第1インターフェースがデータを書き込む。
本願の実施例では、第2インターフェースはDSPのデータTCMインターフェースに直接接続でき、処理された音声データの伝送効率が、従来の標準バスのデータインタラクション方式よりも高い。また、DSPは、第2インターフェースを介してデータ空間を拡張することができるため、DSP自体のデータ空間不足などによる問題も解決できる。また、DSPの負荷がそれほど大きくない場合、ニューラルネットワークの補助演算もでき、コンピューティング能力を高め、結果のデータを、第2インターフェースを介して共有することができる。
図5に示すように、ストレージアレイは、第3インターフェース(データ読み取りインターフェース)、バスインターフェース制御ユニット及び並列マルチチャネル記憶インターフェースユニットをさらに含む。
ここで、第3インターフェースは、マルチチャネル記憶インターフェースであり、SRAMインターフェースタイプであってもよいし、FIFOインターフェースタイプであってもよく、NPU内部のデータブリッジ/ルーティング交換/コンピューティングユニットなどに接続することができる。バスインターフェース制御ユニットは、標準バスプロトコル及び制御をサポートし、Master及びSlave機能をサポートし、Master機能を実現するとき、制御ユニットはDMAの記憶特性を備える必要があり、ストレージアレイに接続される時に、第2インターフェースと同様に汎用のSRAM/FIFOインターフェースを採用する。並列マルチチャネル記憶インターフェースユニットはNPU内部の記憶チャネルに接続され、各チャネルは、独立した第3インターフェースを有するため、データ動作を同時に並列で行うことができる。
以下、図3〜図5を参照しながら、本願の実施例に係るデータ記憶方法について説明する。
現在のいくつかのフレームのデータ、例えばFnを設定して、第1インターフェース及び第2インターフェースを介してデータを交互に更新し、ここで、第1インターフェースは、内部のDMAデータ転送機能により、外部のDDRから記憶すべきモデルデータをストレージアレイに伝送し、第2インターフェースは、DSPによって処理された音声データを受信してストレージアレイに伝送し、この部分のデータをFn+1として設定できる。この2つのインターフェースデータをそれぞれ異なる行に記憶することができ、異なる行に対する動作であるため、第1インターフェースと第2のインターフェースの完全なる並列記憶を達成することができ、記憶効率を大幅に向上させた。
第3インターフェースは、現在のフレームのモデルデータ及び音声データFnをNPUコンピューティングユニットに同時に伝送して、関連演算を行うことができ、Fn及びFn+1フレームのデータを異なる行に記憶することができ、これは、ソフトウェアの制御で実現できる。したがって、3つのインターフェースが同一行への記憶動作を同じ時間でしないことを確保することができ、3つのインターフェースが同時に並列で記憶することができ、全体的な記憶効率の最高の効果を達成した。
本願の実施例では、別のデータ記憶方法を提案し、図6は、本願の実施例に係る別のデータ記憶方法の概略フローチャートである。
本願の実施例のデータ記憶方法の実行主体は、書き込みインターフェース(第1インターフェース)であり、CPUがデータ記憶動作を当該書き込みインターフェースに送信することにより、当該書き込みインターフェースは、開始行、開始列及び開始ユニット識別子に基づいて、記憶すべきデータをストレージアレイに1ストレージブロックずつ記憶する。
本願の実施例に係るデータ記憶方法は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。
図6に示すように、当該データ記憶方法は、S601〜S604を含む。
S601において、記憶すべきデータと、記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作を取得する。
ここで、CPUは、開始アドレス及び記憶すべきデータに基づいて生成されたデータ記憶動作を、書き込みインターフェースに送信する。
S602において、記憶すべきデータを開始行の各列内の最初のストレージユニットに1ビットずつ書き込み、各列内の最初のストレージユニットの識別子のそれぞれは開始ユニット識別子と同じである。
例えば、開始ユニット識別子が1つ目のストレージユニットである場合、最初のストレージユニットは1つ目のストレージユニットであり、開始ユニット識別子が2つ目のストレージユニットである場合、最初のストレージユニットは2つ目のストレージユニットであり、開始ユニット識別子が3つ目のストレージユニットである場合、最初のストレージユニットは3つ目のストレージユニットである。
S603において、記憶すべきデータがストレージアレイに全部書き込まれておらず、かつ、開始行の第M列内の最初のストレージユニットにデータが書き込まれている場合には、各列内の、最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新する。
S604において、記憶すべきデータがストレージアレイに全部書き込まれるまで、記憶すべきデータの残りのデータを開始行の各列内の次のストレージユニットに1ビットずつ書き込む。
例を挙げて説明すると、ストレージアレイは3行及び4列を含み、各ストレージブロックは3つのストレージユニットを含み、開始行が第1行で、開始列が第3列で、かつ開始ユニット識別子が第1行の第3列内の2つ目のストレージユニットである場合、書き込みインターフェースは、記憶すべきデータを第1行の各列内の2つ目のストレージユニットに1ビットずつ書き込み、第1行の最後の列内の2つ目のストレージユニットに書き込んだ後、データの記憶がまだ完了していない場合、記憶すべきデータをストレージアレイに全部書き込むまで、残りのデータを第1行の各列内の3つ目のストレージユニットに書き込み続ける。
これにより、本願の実施例に係るデータ記憶方法は、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットに、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データのタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響を回避し、記憶の柔軟性を向上させた。
なお、本願の実施例において、データを1ストレージブロックずつ書き込むとき、開始行の全てのストレージユニットにデータが書き込まれている場合があり、この場合、改行してデータを書き込み続ける必要がある。
すなわち、本願の一実施例では、図7に示すように、上記ステップS604は、ステップS701〜S703を含み得る。
S701において、記憶すべきデータの残りのデータを開始行の各列内の次のストレージユニットに1ビットずつ書き込む。
S702において、記憶すべきデータがストレージアレイに全部書き込まれておらず、かつ、開始行の各列内の全てのストレージユニットにデータが書き込まれている場合、ストレージアレイ内の開始行に隣接する次の行に位置決めするように行アドレスを更新する。
S703において、記憶すべきデータがストレージアレイに全部書き込まれるまで、記憶すべきデータの残りのデータを次の行の各列内の1つ目のストレージユニットに1ビットずつ書き込み続ける。
例を挙げると、残りのデータを第1行の各列内の3つ目のストレージユニットに書き込んだ後、データの記憶がまだ完了していない場合、記憶すべきデータがストレージアレイに全部書き込まれるまで、残りのデータを第2行の各列内の1つ目のストレージユニットに書き込み続ける。
このように、開始行に対応する全てのストレージユニットにデータが書き込まれた後、改行して1ビットずつ書き込むことにより、データの並列入力を実現し、記憶の柔軟性を向上させるのに有利である。
なお、第1/第2インターフェース及び第3インターフェースが同時に動作できる前提は、第1/第2インターフェースが書き込もうとするアドレスは、第3インターフェースが読み取ろうとするアドレスと異なることである。第3インターフェースが読み取ろうとするアドレスが、ちょうど第1/第2インターフェースが書き込もうとするアドレスである場合、データの書き込みを禁止する。読み取るべきデータの読み取りが完了し、かつ、当該位置のデータが使用されなくなってから、データを書き込む。
すなわち、本願の一実施例では、データ記憶方法は、ストレージアレイ内のいずれかのストレージユニットがデータ読み取り状態にある場合、当該いずれかのストレージユニットへの新しいデータの書き込みを禁止するステップをさらに含み得る。
例えば、第2行の第1列内の2つ目のストレージユニットがデータ読み取り状態にある場合、当該ストレージユニットへの新しいデータの読み取りを禁止し、つまり、データの読み取りとデータの書き込みとの競合が発生した場合、データの読み取の優先度がデータの書き込みの優先度よりも高い。
これにより、データの読み取りとデータの書き込みとの競合による読み取り又は書き込みの混乱現象が回避され、データの記憶及び読み取りの有効性が確保される。
本願の一実施例では、図8に示すように、上記ステップS703の後、ステップS801を含み得る。
S801において、記憶すべきデータのストレージアレイにおける終了アドレスに戻り、終了アドレスが終了行、終了列及び終了ユニット識別子を含む。
具体的には、記憶すべきデータがストレージアレイに全部書き込まれた後、次のデータの記憶を容易にするために、書き込みインターフェースは、記憶すべきデータのストレージアレイにおける終了アドレスに戻る必要があり、ここで、終了アドレスは、終了行、終了列及び終了ユニットを含み、かつ終了アドレスをCPUに送信し、CPUが終了アドレスに基づいて、次の記憶動作時に使用可能なストレージユニットの開始アドレスを決定する。
このように、現在のデータ記憶が完了した後、記憶すべきデータのストレージアレイにおける終了アドレスに戻ることにより、CPUが終了アドレスに基づいて開始アドレスを迅速かつ適時に決定することが容易になり、データの記憶効率がさらに向上する。
本願の実施例は、データ読み取り方法をさらに提供し、図9は、本願の実施例に係るデータ読み取り方法の概略フローチャートである。
本願の実施例に係るデータ読み取り方法の実行主体は、中央処理装置CPUである。当該データ読み取り方法は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。
図9に示すように、当該データ読み取り方法は、ステップS901〜ステップS903を含む。
ステップS901において、ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージを取得した場合、ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定する。
具体的には、ニューラルネットワークプロセッサNPUが1層のモデルパラメータを用いて、1フレームの音声データを処理する度に、CPUにデータ処理終了メッセージを送信することができ、さらに、CPUは、NPUが処理を終了した直後のデータに基づいて、NPUの現在取得すべきターゲットデータと、ターゲットデータのアドレスとを決定することができる。
例を挙げると、NPUから送信されたデータ処理終了メッセージが、第3層のモデルパラメータを用いた1番目のフレームの音声データの処理に対応する場合、当該NPUの取得すべきターゲットデータが第2フレームの音声データである。又は、NPUによって送信されたデータ処理終了メッセージが、第3層のモデルパラメータを用いた最後のフレームの音声データの処理に対応する場合、当該NPUの取得すべきターゲットデータは第4層のモデルパラメータである。
CPUは、NPUを制御してデータを取得する度に、NPUが取得したデータの情報、例えば、取得したのが何番目の層のモデルパラメータであり、又は何番目のフレームの音声データであるかなどの情報を記録することを理解されたい。さらに、NPUから送信されたデータ処理終了メッセージを取得した場合、記録された、NPUが取得したデータの情報に基づいて、取得すべきターゲットデータを決定する。
また、各データの記憶アドレスがデータの記憶中にCPUの制御によって生成されたものであり、即ち、CPUに各データの記憶アドレスが記録されているため、ターゲットデータが決定された後、ターゲットデータのアドレスを決定することができる。
ステップS902において、ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定する。
ここで、データ読み取り動作には、読み取るべきターゲットデータと、ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とが含まれる。
ステップS903において、ストレージアレイにおける第3インターフェースを制御して、行アドレス、列アドレス及びストレージユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取ったターゲットデータをニューラルネットワークプロセッサに送信する。
具体的には、CPUは、データ読み取り動作を生成した後、データ読み取り動作をストレージアレイの第3インターフェースに送信し、次に、第3インターフェースは、ターゲットデータと、ストレージアレイにおける開始行、開始列及び開始ユニット識別子とに基づいて、開始すべきデータチャネルを決定し、データチャネルを開始し、開始行の開始列内の開始ユニット識別子から始めて、ストレージアレイからターゲットデータを読み取り、ターゲットデータをNPUに送信する。
本願の実施例に係るデータ読み取り方法は、開始行、開始列及び開始ユニット識別子に基づいて、1つのストレージアレイのみからデータを読み取り、専用データの専用読み取りを必要とせず、読み取りの柔軟性を向上させ、データの記憶の不均衡による全体的な読み取り効率への影響を回避し、読み取りの柔軟性を向上させた。
本願の実施例において、ニューラルネットワークプロセッサによって現在処理されているシーケンスデータは、Kフレームのデータを含み、Kは正の整数である。本願の一実施例では、図10に示すように、ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定する上記ステップS901は、ステップS1001とステップS1002とを含み得る。
ステップS1001において、終了メッセージに対応する処理済データ及び第1ネットワーク層を決定する。
ステップS1002において、処理済データがシーケンスデータ内のK番目のフレームの関連データである場合、ターゲットデータが、第1ネットワーク層に隣接する次の層に対応するネットワークパラメータと、シーケンスデータ内の1番目のフレームの関連データとを含むことを決定し、関連データは、対応するフレームの生データ、又は生データがネットワーク層によって処理された後に生成されたデータである。
具体的には、シーケンスデータの音声フレームは複数あり、ここで、各フレームのそれぞれは、モデルの各ネットワーク層によって処理される必要があり、各フレームの処理が完了した後、処理済データがシーケンスデータ内のK番目のフレームのデータ、又はK番目のフレームのデータがネットワーク層によって処理された後に生成されたデータである場合、読み取ろうとするターゲットデータが、第1ネットワーク層に隣接する次の層に対応するネットワークパラメータと、シーケンスデータ内の1番目のフレームの関連データとを含むことを決定する。
即ち、上記ステップS1001の後、処理済データがシーケンスデータ内のi番目のフレームの関連データである場合、ターゲットデータとしてi番目のフレームのデータに隣接するi+1番目のフレームの関連データを決定し、iがKより小さい正の整数であるステップをさらに含み得る。
例えば、シーケンスデータには5つのフレームがあり、処理済データがシーケンスデータ内の3番目のフレームの関連データである場合、ターゲットデータは4番目のフレームの関連データである。
このように、読み取ろうとするターゲットデータを決定するとき、処理済みのデータがシーケンスデータ内のi番目のフレームの関連データである場合、ターゲットデータがi+1番目のフレームの関連データであると決定する。これにより、データ読み取りの精度を確保し、読み取りの効率を向上させた。
本願の実施例は、別のデータ読み取り方法を提案し、図11は、本願の実施例に係る別のデータ読み取り方法の概略フローチャートである。
当該データ読み取り方法は、実行主体がストレージアレイの第3インターフェース(第3インターフェース)であり、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。
図11に示すように、当該データ読み取り方法は、ステップS1101〜ステップS1103を含む。
ステップS1101において、読み取るべきターゲットデータと、ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得する。
ステップS1102において、開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定する。
ここで、各データチャネルはそれぞれ、ストレージアレイの1列に対応する。
ステップS1103において、データチャネルを開始し、開始行の開始列内の開始ユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、ストレージユニット識別子に対応する各ストレージユニット内のターゲットデータを同時に読み取り、読み取ったターゲットデータをニューラルネットワークプロセッサに送信する。
具体的に言えば、第3インターフェースは、CPUから送信されたデータ読み取り動作を受信した後、開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定し、次に、データチャネルを開始し、開始行の開始列内の開始ユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取ったデータをニューラルネットワークプロセッサに送信する。
例えば、ストレージアレイが3行4列であり、開始行、開始列及び開始ユニット識別子がそれぞれ、第2行、第3列及び2つ目のストレージユニットである場合、第3列及び第4列に対応するデータチャネルを同時に開始することができる。
これにより、開始行、開始列及び開始ユニット識別子に基づいて、ストレージアレイ内における対応する各ストレージユニットからデータを同時に読み取り、データの並列読み取りにより、読み取りの効率を向上させた。
本願の一実施例では、上記ステップS1102は、開始列が第1列であり、かつターゲットデータによって占有されるストレージユニットがMより大きい場合、開始すべきデータチャネルとして各列に対応するデータチャネルを決定するステップを含み得る。
具体的には、ターゲットデータによって占有されるストレージユニットがストレージアレイの列の数より大きい場合、データを読み取るために、各列に対応するチャネルを開始する必要があるため、開始すべきデータチャネルとして各列に対応するデータチャネルを決定する。
本願の一実施例では、上記ステップS1102は、開始列が第j列であり、かつターゲットデータに対応するストレージユニットがM−jより大きい場合、開始すべき初期データチャネルとしてj番目のチャネルからM番目のチャネルを決定し、補足データチャネルとして1番目のチャネルルからj−1番目のチャネルを決定し、jは1より大きい整数であり、補足データチャネルは、j番目のチャネルからM番目のチャネルで開始行の第j列から第M列の開始ユニット識別子からデータが読み取られた後、引き続き開始されたデータチャネルであるステップをさらに含む。
つまり、ターゲットデータに対応するストレージユニットが、開始行に対応する記憶可能なストレージユニットより大きい場合、改行して引き続きデータチャネルを開始する必要があることを表す。
例えば、ストレージアレイは3行4列を含み、かつ、各ストレージブロックは3つのストレージユニットを含み、開始列が第3列であり、かつ、ターゲットデータに対応するストレージユニットの数が1より大きい場合、開始すべき初期データチャネルとして3つ目のチャネルから4つ目のチャネルを決定し、補足データチャネルとして1つ目のチャネルから2つ目のチャネルを決定する。
なお、開始すべき初期チャネルの数に基づいた読み取りが完了した後、ターゲットデータがまた全部読み取られていない場合、ターゲットデータの読み取りが全部完了するまで、残りのターゲットデータを上記読み取り方法に従って読み取り続ける。
このように、ターゲットデータの開始行、開始列及び開始ユニット識別子に基づいて、開始すべき初期チャネルの数を決定することにより、マルチチャネルの並列読み取りを実現し、読み取りの効率を向上させた。
本願の一実施例では、各ストレージブロックはL個のストレージユニットを含み、Lは1より大きい正の整数であり、ターゲットデータによって占有されるストレージユニットの数はMより大きい。
開始行の開始列内の開始ユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、ストレージユニット識別子に対応する各ストレージユニット内のターゲットデータを読み取る上記ステップS1103は、
データチャネルを介して、開始行の開始列よりも後の各列内の、開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取るステップと、開始ユニット識別子がLより小さい場合、各列内の、開始ユニット識別子に隣接する次のストレージユニットに位置決めするように識別子を更新するステップと、ターゲットデータの読み取りが全部完了するまで、データチャネルを介して開始行の各列内の次のストレージユニットからデータを読み取り続けるステップと、を含み得る。
例えば、ストレージアレイは3行4列を含み、かつ、各ストレージブロックは3つのストレージユニットを含み、ターゲットデータによって占有されるストレージユニットが5つである場合、ターゲットデータを読み取るとき、データチャネルを介して、開始行の開始列より後の各列内の、開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取り、その後、開始ユニット識別子が3より小さい場合、識別子を更新し、ターゲットデータの読み取りが全部完了するまで、開始行の各列内の次のストレージユニットからデータを読み取り続ける。
一実施例では、開始行の開始列よりも後の各列内の、開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取るステップの後に、
開始ユニット識別子がLである場合、開始行に隣接する次の行に位置決めするように行アドレスを更新するステップと、ターゲットデータの読み取りが全部完了するまで、データチャネルを介して次の行の各列内の1つ目のストレージユニットからデータを読み取り続けるステップと、をさらに含む。
例えば、ストレージアレイは3行4列を含み、かつ、各ストレージブロックは3つのストレージユニットを含み、ターゲットデータによって占有されるストレージユニットが5つである場合、ターゲットデータを読み取るとき、データチャネルを介して、開始行の開始列よりも後の各列内の、開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取り、その後、開始ユニット識別子が第3位である場合、行アドレスを更新し、ターゲットデータの読み取りが全部完了するまで、開始行の次の行の各列内の最初のストレージユニットからデータを読み取り続ける。
要約すると、本願の技術的解決策は、ニューラルネットワークモデルプロセッサの高効率記憶構成のニーズに合致する3つの記憶インターフェースの協働を採用し、第1書き込みインターフェースは、外部バスストレージDDRからのデータ更新に用いられ、第2書き込みインターフェースは、外部プロセッサ/コプロセッサデータの拡張、交換及び共有に用いられ、第3インターフェースは、NPU内部のストレージマルチチャネルが並列してコンピューティングユニットと高速インタラクションすることに用いられる。専用のニューラルネットワークデータの記憶方式と異なり、マトリックスのストレージアレイを用いることにより、記憶ニューラルネットワークの入力層、中間層、出力層、及び外部プロセッサ交換などの様々なデータを区別する必要がなくなり、記憶の柔軟性や拡張性がさらに向上する。ストレージアレイは、実装に柔軟性があり、パラメータが構成可能であるため、実際の設計段階での不確実な記憶容量、記憶幅、記憶深さ、及び設計実装時に必要なストレージユニットの数だけでなく、チップ設計段階の実現にも有利であり、再利用性にも優れており、既存のニューラルネットワークプロセッサ設計に使用できるだけでなく、高いストレージ効率を必要とするスーパーコンピューティングなどの技術分野にも使用できる。
本願の実施例は、データ記憶装置をさらに提案し、図12は、本願の実施例に係るデータ記憶装置の概略構成図である。
図12に示すように、データ記憶装置100は、第1取得モジュール110、第1決定モジュール120及び第1制御モジュール130を含む。
第1取得モジュール110は、記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得するように構成され、開始アドレスが開始行、開始列及び開始ユニット識別子を含む。第1決定モジュール120は、開始アドレス及び記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定するように構成される。第1制御モジュール130は、ストレージアレイにおける第1インターフェースを制御してデータ記憶動作を実行させて、記憶すべきデータを、同じ開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込むように構成される。
本願の一実施例では、第1取得モジュール110は、具体的には、記憶すべきデータを取得し、記憶すべきデータのタイプに基づいて、ストレージアレイ内のターゲットストレージブロックを決定し、前記ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定するように構成される。
本願の一実施例では、ストレージアレイは、N行及びM列のストレージブロックを含み、かつ、各ストレージブロックは複数のストレージユニットを含み、ターゲットストレージブロックに記憶されているデータの終了アドレスは、終了行、終了列及び終了ユニットを含み、N及びMは正の整数であり、第1取得モジュール110は、具体的には、終了ユニットが終了列の最後のストレージユニットであり、かつ、終了列が第M列である場合、開始行が終了行の次の行であり、開始列が第1列であり、かつ開始ユニット識別子が次の行の第1列内の1つ目のストレージユニットを示していることを決定するように構成される。
本願の一実施例では、第1取得モジュール110は、具体的には、さらに、終了列が第M列でない場合、開始列が終了列の次の列であり、開始行が終了行であり、開始ユニット識別子が終了ユニットのアドレスと同じであると決定するように構成される。
本願の一実施例では、ストレージアレイは、2つのインターフェースを含み、データ処理装置は、2つのインターフェースの両方に記憶すべきデータがある場合、2つのインターフェースのそれぞれに対応する記憶すべきデータのタイプに基づいて、インターフェースの優先度を設定することにより、優先度の高いインターフェースが先に、対応する記憶すべきデータをストレージアレイに書き込むように構成される設定モジュールをさらに含む。
なお、本願の実施例に係るデータ記憶装置の他の具体的な実施形態は、前述したデータ処理方法の具体的な実施形態を参照することができ、重複を回避するため、ここでは詳細な説明を省略する。
本願の実施例に係るデータ記憶装置は、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットに、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データのタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響が回避される。
上記実施例を実現するために、本願の実施例は、別のデータ記憶装置をさらに提案し、図13は、本願の実施例に係る別のデータ記憶装置の概略構成図である。
当該装置は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。
図13に示すように、データ記憶装置200は、第2取得モジュール210、第1書き込みモジュール220、第1更新モジュール230及び第2書き込みモジュール240を含む。
第2取得モジュール210は、記憶すべきデータと、記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作とを取得するように構成される。第1書き込みモジュール220は、開始行、開始列及び開始ユニット識別子を開始アドレスとし、記憶すべきデータを開始行の各列内の最初のストレージユニットに1ビットずつ書き込むように構成され、各列内の最初のストレージユニットの識別子のそれぞれは開始ユニット識別子と同じである。第1更新モジュール230は、記憶すべきデータがストレージアレイに全部書き込まれておらず、かつ、開始行の第M列内の最初のストレージユニットにデータが書き込まれている場合には、各列内の、最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新するように構成される。第2書き込みモジュール240は、記憶すべきデータがストレージアレイに全部書き込まれるまで、記憶すべきデータの残りのデータを開始行の各列内の次のストレージユニットに1ビットずつ書き込むように構成される。
本願の一実施例では、データ記憶装置は、記憶すべきデータがストレージアレイに全部書き込まれておらず、かつ、開始行の各列内の全てのストレージユニットにデータが書き込まれている場合、ストレージアレイ内の開始行に隣接する次の行に位置決めするように行アドレスを更新するように構成される第2更新モジュールと、記憶すべきデータの残りのデータを次の行の各列内の1つ目のストレージユニットに1ビットずつ書き込み続けるように構成される第3書き込みモジュールと、をさらに含む。
本願の一実施例では、データ記憶装置は、ストレージアレイ内のいずれかのストレージユニットがデータ読み取り状態にある場合、いずれかのストレージユニットへの新しいデータの書き込みを禁止するように構成される禁止モジュールをさらに含む。
本願の一実施例では、データ記憶装置は、戻りモジュールをさらに含み、当該戻りモジュールは、記憶すべきデータのストレージアレイにおける終了アドレスに戻るように構成され、終了アドレスは終了行、終了列及び終了ユニットを含む。
なお、本願の実施例に係るデータ記憶装置の具体的な実施形態は、前述したデータ記憶方法の具体的な実施形態を参照することができ、ここでは詳細な説明を省略する。
本願の実施例に係るデータ記憶装置は、開始行、開始列及び開始ユニット識別子に基づいて、データをストレージアレイに1ビットずつ記憶するため、専用データの専用ストレージを必要とせず、記憶の柔軟性を向上させ、データの記憶の不均衡による全体的な記憶効率に影響を与えることを回避した。
本願は、データ読み取り装置をさらに提案し、当該データ読み取り装置は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。図14は、本願の実施例に係るデータ読み取り装置の概略構成図である。
図14に示すように、データ読み取り装置300は、第2決定モジュール310、第3決定モジュール320及び第2制御モジュール330を含む。
第2決定モジュール310は、ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージを取得した場合、ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定するように構成される。第3決定モジュール320は、ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定するように構成される。第2制御モジュール330は、ストレージアレイにおける第3インターフェースを制御して、行アドレス、列アドレス及びストレージユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、同じストレージユニット識別子に対応するストレージユニット内のデータを同時に読み取り、読み取ったターゲットデータをニューラルネットワークプロセッサに送信するように構成される。
本願の一実施例では、ニューラルネットワークプロセッサによって現在処理されているシーケンスデータは、Kフレームのデータを含み、Kは正の整数である。第2決定モジュール310は、具体的には、終了メッセージに対応する処理済データ及び第1ネットワーク層を決定し、処理済データがシーケンスデータ内のK番目のフレームの関連データである場合、ターゲットデータが、第1ネットワーク層に隣接する次の層に対応するネットワークパラメータと、シーケンスデータ内の1番目のフレームの関連データとを含むことを決定するように構成され、関連データは、対応するフレームの生データ、又は生データがネットワーク層によって処理された後に生成されたデータである。
本願の一実施例では、データ読み取り装置は、処理済データがシーケンスデータのi番目のフレームの関連データである場合、ターゲットデータとしてi番目のフレームのデータに隣接するi+1番目のフレームの関連データを決定するように構成される第4決定モジュールをさらに含み、iはKより小さい正の整数である。
なお、本願の実施例に係るデータ記憶装置の具体的な実施形態は、前述のデータ記憶方法の具体的な実施形態を参照することができ、ここでは詳細な説明を省略する。
本願の実施例に係るデータ読み取り装置は、開始行、開始列及び開始ユニット識別子に基づいて、1つのストレージアレイのみからデータを読み取るため、専用データの専用読み取りを必要とせず、読み取りの柔軟性を向上させ、並列読み取りを実現でき、読み取りの効率を向上させた。
本願は、別のデータ読み取り装置を提案し、図15は、本願の実施例に係る別のデータ読み取り装置の概略構成図である。
当該データ読み取り装置は、N行及びM列のストレージブロックを含むストレージアレイに適用され、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数である。
図15に示すように、データ読み取り装置400は、第3取得モジュール410、第5決定モジュール420及び第1読み取りモジュール430を含む。
ここで、第3取得モジュール410は、読み取るべきターゲットデータと、ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得するように構成される。第5決定モジュール420は、開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するように構成される。第1読み取りモジュール430は、データチャネルを開始し、開始行の開始列内の開始ユニット識別子から始めて、ストレージアレイ内の各列のストレージブロックから、ターゲットデータを読み取り、読み取ったターゲットデータをニューラルネットワークプロセッサに送信するように構成される。
本願の一実施例では、第5決定モジュール420は、具体的には、開始列が第1列であり、かつ、ターゲットデータによって占有されるストレージユニットがMより大きい場合、開始すべきデータチャネルとして各列に対応するデータチャネルを決定するように構成される。
本願の一実施例では、第5決定モジュール420は、具体的には、開始列が第j列であり、かつ、ターゲットデータに対応するストレージユニットがM−jより大きい場合、開始すべき初期データチャネルとしてj番目のチャネルからM番目のチャネルを決定し、補足データチャネルとして1番目のチャネルルからj−1番目のチャネルを決定するように構成され、jは1より大きい整数であり、補足データチャネルは、j番目のチャネルからM番目のチャネルで開始行の第j列から第M列の開始ユニット識別子からデータが読み取られた後、引き続き開始されたデータチャネルである。
本願の一実施例では、各ストレージブロックにはL個(Lは1より大きい正の整数である)のストレージユニットが含まれ、ターゲットデータによって占有されるストレージユニットがMより大きく、第3読み取りモジュールは、具体的には、データチャネルを介して、開始行の開始列より後の各列内の、開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取り、開始ユニット識別子がLより小さい場合、各列内の、開始ユニット識別子に隣接する次のストレージユニットに位置決めするように識別子を更新し、ターゲットデータの読み取りが全部完了するまで、データチャネルを介して開始行の各列内の次のストレージユニットからデータを読み取り続けるように構成される。
本願の一実施例では、データ読み取り装置は、開始ユニット識別子がLである場合、開始行に隣接する次の行に位置決めするように行アドレスを更新するように構成される第3更新モジュールと、ターゲットデータの読み取りが全部完了するまで、データチャネルを介して次の行の各列内の1つ目のストレージユニットからデータを読み取り続けるように構成される第2読み取りモジュールと、を含む。
なお、本願の実施例に係るデータ読み取り装置の具体的な実施形態は、前述したデータ読み取り方法の具体的な実施形態を参照することができ、ここでは詳細な説明を省略する。
本願の実施例に係るデータ読み取り装置は、開始行、開始列及び開始ユニット識別子に基づいて、1つのストレージアレイのみからデータを読み取るため、専用データの専用読み取りを必要とせず、読み取りの柔軟性を向上させ、並列読み取りを実現でき、読み取りの効率を向上させた。
本願の実施例によれば、本願は、データ記憶方法又はデータ読み取り方法を実現するための電子機器及び読み取可能な記憶媒体を提供する。以下、図16を参照しながら説明する。
図16に示すように、本願の実施例に係るデータ記憶方法又はデータ読み取り方法を実現するための電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の類似するコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本願の実現を制限することを意図したものではない。
図16に示すように、当該電子機器は、1つ又は複数のプロセッサ101と、メモリ102と、高速インターフェース及び低速インターフェースを含む各コンポーネントを接続するためのインターフェースと、を含む。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けられ、又は必要に応じて他の方式で取り付けることができる。プロセッサは、電子機器内で実行される命令を処理することができ、当該命令は、外部入力/出力装置(例えば、インターフェースに結合されたディスプレイデバイスなど)にGUIの図形情報をディスプレイするためにメモリ内又はメモリに記憶されている命令を含む。他の実施方式では、必要に応じて、複数のプロセッサ及び/又は複数のバスを、複数のメモリと一緒に使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、一部の必要な動作(例えば、サーバアレイ、1グループのブレードサーバ、又はマルチプロセッサシステムとする)を提供することができる。図16では、1つのプロセッサ101を例とする。
メモリ102は、本願により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。その中で、前記メモリには、少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記少なくとも1つのプロセッサが本願により提供されるデータ記憶方法又はデータ読み取り方法を実行するようにする。本願の非一時的なコンピュータ読み取り可能な記憶媒体には、コンピュータに本願により提供されるデータ記憶方法又はデータ読み取り方法を実行させるためのコンピュータ命令が記憶されている。
メモリ102は、非一時的なコンピュータ読み取り可能な記憶媒体として、本願の実施例におけるデータ記憶方法に対応するプログラム命令/モジュール(例えば、図12に示す第1取得モジュール110、第1決定モジュール120及び第1制御モジュール130、又は、図13に示す第2取得モジュール210、第1書き込みモジュール220、第1更新モジュール230及び第2書き込みモジュール240)のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶する。プロセッサ101は、メモリ102に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することによって、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち上記の方法の実施例におけるデータ記憶方法又はデータ読み取り方法を実現する。
メモリ102は、ストレージプログラムエリアとストレージデータエリアとを含むことができ、その中で、ストレージプログラムエリアは、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、ストレージデータエリアは、データ記憶又はデータ読み取りの電子機器の使用によって作成されたデータなどを記憶することができる。また、メモリ102は、高速ランダムアクセスメモリを含むことができ、非一時的なメモリをさらに含むことができ、例えば、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、又は他の非一時的なソリッドステートストレージデバイスである。いくつかの実施例では、メモリ102は、プロセッサ101に対して遠隔に設定されたメモリを選択的に含むことができ、これらの遠隔メモリは、ネットワークを介してデータ記憶方法又はデータ読み取り方法を実現するための電子機器に接続されることができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、及びその組み合わせを含むが、これらに限定されない。
データ記憶方法又はデータ読み取り方法を実現するための電子機器は、入力装置103と出力装置104とをさらに含むことができる。プロセッサ101、メモリ102、入力装置103、及び出力装置104は、バス又は他の方式を介して接続することができ、図13では、バスを介して接続することを例とする。
入力装置103は、入力された数字又は文字情報を受信し、音声インタラクション方法の電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つ又は複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置である。出力装置104は、ディスプレイデバイス、補助照明装置(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定されない。いくつかの実施形態で、ディスプレイデバイスは、タッチスクリーンであってもよい。
本明細書で説明されるシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施され、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈されることができ、当該プログラマブルプロセッサは、専用又は汎用のプログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、又はコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含むことができ、高レベルのプロセス及び/又は対象指向プログラミング言語、及び/又はアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書に使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラム製品、機器、及び/又は装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」の用語は、機械命令及び/又はデータをプログラマブルプロセッサに提供するための任意の信号を指す。
ユーザとのインタラクションを提供するために、コンピュータ上でここで説明されているシステム及び技術を実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形態(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットとを含む。
コンピュータシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント−サーバの関係を有するコンピュータプログラムによって、クライアントとサーバとの関係が生成される。サーバは、クラウドコンピューティングサーバまたはクラウドホストとも呼ばれるクラウドサーバであってもよく、従来の物理ホスト及びVPS(Virtual Private Server、仮想プライベートサーバ)サービスは、管理が難しく、サービス拡張性が弱いという欠点を解決するための、クラウドコンピューティングサービスシステムにおけるホスト製品の1つである。
本願の実施例の技術的解決策によれば、同じストレージユニット識別子を持つ各ストレージブロック内の各ストレージユニットに、NPUコンピューティングに使用される様々なデータを同じ行で1ストレージブロックずつ書き込むことにより、データのタイプごとに専用のメモリを設ける必要がなくなり、異なるタイプのデータの不均衡による全体的な記憶効率への影響を回避し、記憶の柔軟性を向上させた。さらに、当該記憶方式は、データ読み取りチャネルの帯域幅を増加させるための条件を提供するため、データを読み取るとき、マルチチャネルで同時に複数のデータを読み取ることができ、読み取りの柔軟性を向上させた。本明細書の説明において、「第1」、「第2」という用語は、単に記述のためのものであるが、相対的な重要性を明示したり暗示したりするか、示される技術的特徴の数を暗示するものと理解されるべきではない。これにより、「第1」、「第2」により限定される特徴は、少なくとも1つの当該特徴を明示するか又は暗黙的に含み得る。本願の記述において、「複数」は、特に明確に定義及び限定しない限り、例えば2つ、3つなどの少なくとも2つを意味する。
以上、本願の実施例について図示及び記述したが、上記の実施例は、例示的なものであり、本願を限定するものと理解するべきではなく、当業者は、本願の範囲内で上記の実施例に対して変更、修正、置換及び変形を行うことができる。

Claims (37)

  1. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶方法は、
    記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得し、前記開始アドレスが開始行、開始列及び開始ユニット識別子を含むステップと、
    前記開始アドレス及び前記記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定するステップと、
    前記ストレージアレイにおける第1インターフェースを制御して前記データ記憶動作を実行させて、前記記憶すべきデータを、同じ前記開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込むステップと、を含む、データ記憶方法。
  2. 記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得するステップは、
    記憶すべきデータを取得するステップと、
    前記記憶すべきデータのタイプに基づいて、前記ストレージアレイ内のターゲットストレージブロックを決定するステップと、
    前記ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定するステップと、を含む、請求項1に記載のデータ記憶方法。
  3. 前記ターゲットストレージブロックに記憶されているデータの終了アドレスは、終了行、終了列及び終了ユニットを含み、前記ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定するステップは、
    前記終了ユニットが前記終了列の最後のストレージユニットであり、かつ、前記終了列が第M列である場合、前記開始行が前記終了行の次の行であり、前記開始列が第1列であり、かつ前記開始ユニット識別子が前記次の行の第1列内の1つ目のストレージユニットを示していることと決定するステップを含む、請求項2に記載のデータ記憶方法。
  4. 前記ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定するステップは、
    前記終了列が第M列でない場合、前記開始列が前記終了列の次の列であり、前記開始行が前記終了行であり、かつ、前記開始ユニット識別子が前記終了ユニットのアドレスと同じであると決定するステップを含む、請求項3に記載のデータ記憶方法。
  5. 前記ストレージアレイは複数のインターフェースを含み、前記データ記憶方法は、
    前記複数のインターフェースのそれぞれに記憶すべきデータがある場合、前記複数のインターフェースのそれぞれに対応する記憶すべきデータのタイプに基づいて、各インターフェースの優先度を設定することにより、優先度の高いインターフェースが先に、対応する記憶すべきデータを前記ストレージアレイに書き込むステップをさらに含む、請求項1〜請求項4のいずれか一項に記載のデータ記憶方法。
  6. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶方法は、
    記憶すべきデータと、前記記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作を取得するステップと、
    前記記憶すべきデータを前記開始行の各列内の最初のストレージユニットに1ビットずつ書き込み、前記各列内の最初のストレージユニットの識別子のそれぞれが前記開始ユニット識別子と同じであるステップと、
    前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の第M列内の最初のストレージユニットにデータが書き込まれている場合には、各列内の、前記最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新するステップと、
    前記記憶すべきデータが前記ストレージアレイに全部書き込まれるまで、前記記憶すべきデータの残りのデータを前記開始行の各列内の次のストレージユニットに1ビットずつ書き込むステップと、を含む、データ記憶方法。
  7. 前記記憶すべきデータの残りのデータを前記開始行の各列内の次のストレージユニットに1ビットずつ書き込むステップの後に、
    前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の各列内の全てのストレージユニットにデータが書き込まれている場合、前記ストレージアレイ内の、前記開始行に隣接する次の行に位置決めするように行アドレスを更新するステップと、
    前記記憶すべきデータの残りのデータを前記次の行の各列内の1つ目のストレージユニットに1ビットずつ書き込み続けるステップと、をさらに含む、請求項6に記載のデータ記憶方法。
  8. 前記ストレージアレイ内のいずれかのストレージユニットがデータ読み取り状態にある場合、前記いずれかのストレージユニットへの新しいデータの書き込みを禁止するステップをさらに含む、請求項6に記載のデータ記憶方法。
  9. 前記記憶すべきデータが前記ストレージアレイに全部書き込まれるステップの後に、
    前記記憶すべきデータの前記ストレージアレイにおける終了アドレスに戻り、前記終了アドレスが終了行、終了列及び終了ユニット識別子を含むステップをさらに含む、請求項6〜請求項8のいずれか一項に記載のデータ記憶方法。
  10. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り方法は、
    ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージが取得された場合、前記ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定するステップと、
    前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定するステップと、
    前記ストレージアレイにおける第3インターフェースを制御して、前記行アドレス、列アドレス及びストレージユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータを前記ニューラルネットワークプロセッサに送信するステップと、を含む、データ読み取り方法。
  11. 前記ニューラルネットワークプロセッサによって現在処理されているシーケンスデータは、Kフレームのデータを含み、Kが正の整数であり、前記ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定するステップは、
    前記終了メッセージに対応する処理済データ及び第1ネットワーク層を決定するステップと、
    前記処理済データが前記シーケンスデータ内のK番目のフレームの関連データである場合、前記ターゲットデータが、前記第1ネットワーク層に隣接する次の層に対応するネットワークパラメータと、前記シーケンスデータ内の1番目のフレームの関連データとを含むことを決定し、前記関連データは、対応するフレームの生データ、又は前記生データがネットワーク層によって処理された後に生成されたデータであるステップと、を含む、請求項10に記載のデータ読み取り方法。
  12. 前記終了メッセージに対応する処理済データ及び第1ネットワーク層を決定するステップの後に、
    前記処理済データがシーケンスデータのi番目のフレームの関連データである場合、前記ターゲットデータとして、前記i番目のフレームのデータに隣接するi+1番目のフレームの関連データを決定し、iがKより小さい正の整数であるステップをさらに含む、請求項11に記載のデータ読み取り方法。
  13. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り方法であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り方法は、
    読み取るべきターゲットデータと、前記ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得するステップと、
    前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するステップと、
    前記データチャネルを開始し、前記開始行の開始列内の開始ユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のターゲットデータを同時に読み取り、読み取った前記ターゲットデータをニューラルネットワークプロセッサに送信するステップと、を含む、データ読み取り方法。
  14. 前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するステップは、
    前記開始列が第1列であり、かつ、前記ターゲットデータによって占有されるストレージユニットがMより大きい場合、開始すべきデータチャネルとして各列に対応するデータチャネルを決定するステップを含む、請求項13に記載のデータ読み取り方法。
  15. 前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するステップは、
    前記開始列が第j列であり、かつ、前記ターゲットデータに対応するストレージユニットがM−jより大きい場合、開始すべき初期データチャネルとしてj番目のチャネルからM番目のチャネルを決定し、補足データチャネルとして1番目のチャネルルからj−1番目のチャネルを決定し、jが1より大きい整数であり、前記補足データチャネルは、前記j番目のチャネルからM番目のチャネルで前記開始行の第j列から第M列の前記開始ユニット識別子からデータが読み取られた後、引き続き開始されたデータチャネルであるステップを含む、請求項13に記載のデータ読み取り方法。
  16. 各ストレージブロックはL個のストレージユニットを含み、Lが1より大きい正の整数であり、前記ターゲットデータによって占有されるストレージユニットがMより大きく、前記開始行の開始列内の開始ユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のターゲットデータを同時に読み取るステップは、
    前記データチャネルを介して、前記開始行の開始列より後の各列内の、前記開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取るステップと、
    前記開始ユニット識別子がLより小さい場合、各列内の、前記開始ユニット識別子に隣接する次のストレージユニットに位置決めするように識別子を更新するステップと、
    前記ターゲットデータの読み取りが全部完了するまで、前記データチャネルを介して前記開始行の各列内の次のストレージユニットからデータを読み取り続けるステップと、を含む、請求項13〜請求項15のいずれか一項に記載のデータ読み取り方法。
  17. 前記開始行の開始列よりも後の各列内の、前記開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取るステップの後に、
    前記開始ユニット識別子がLである場合、前記開始行に隣接する次の行に位置決めするように行アドレスを更新するステップと、
    前記ターゲットデータの読み取りが全部完了するまで、前記データチャネルを介して前記次の行の各列内の1つ目のストレージユニットからデータを読み取り続けるステップと、をさらに含む、請求項16に記載のデータ読み取り方法。
  18. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶装置は、
    記憶すべきデータと、ストレージアレイ内の現在使用可能なストレージユニットの開始アドレスとを取得するように構成される第1取得モジュールであって、前記開始アドレスが開始行、開始列及び開始ユニット識別子を含む第1取得モジュールと、
    前記開始アドレス及び前記記憶すべきデータに基づいて、現在実行すべきデータ記憶動作を決定するように構成される第1決定モジュールと、
    前記ストレージアレイにおける第1インターフェースを制御して前記データ記憶動作を実行させて、前記記憶すべきデータを、同じ前記開始ユニット識別子を持つ各ストレージブロック内の各ストレージユニットに同じ行で1ストレージブロックずつ書き込むように構成される第1制御モジュールと、を含む、データ記憶装置。
  19. 前記第1取得モジュールは、具体的には、
    記憶すべきデータを取得し、
    前記記憶すべきデータのタイプに基づいて、前記ストレージアレイ内のターゲットストレージブロックを決定し、
    前記ターゲットストレージブロックに記憶されているデータの終了アドレスに基づいて、現在使用可能なストレージユニットの開始アドレスを決定するように構成される、請求項18に記載のデータ記憶装置。
  20. 前記ターゲットストレージブロックに記憶されているデータの終了アドレスは、終了行、終了列及び終了ユニットを含み、前記第1取得モジュールは、具体的には、
    前記終了ユニットが前記終了列の最後のストレージユニットであり、かつ、前記終了列が第M列である場合、前記開始行が前記終了行の次の行であり、前記開始列が第1列であり、かつ前記開始ユニット識別子が前記次の行の第1列内の1つ目のストレージユニットを示していることを決定するように構成される、請求項19に記載のデータ記憶装置。
  21. 前記第1取得モジュールは、具体的には、
    前記終了列が第M列でない場合、前記開始列が前記終了列の次の列であり、前記開始行が前記終了行であり、かつ、前記開始ユニット識別子が前記終了ユニットのアドレスと同じであると決定するように構成される、請求項20に記載のデータ記憶装置。
  22. 前記ストレージアレイは複数のインターフェースを含み、前記キータ記憶装置は、
    前記複数のインターフェースのそれぞれに記憶すべきデータがある場合、前記複数のインターフェースのそれぞれに対応する記憶すべきデータのタイプに基づいて前記インターフェースの優先度を設定することにより、優先度の高いインターフェースが先に、対応する記憶すべきデータを前記ストレージアレイに書き込むように構成される設定モジュールをさらに含む、請求項18〜請求項21のいずれか一項に記載のデータ記憶装置。
  23. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ記憶装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ記憶装置は、
    記憶すべきデータと、前記記憶すべきデータに対応する開始行、開始列及び開始ユニット識別子とを含むデータ記憶動作を取得するように構成される第2取得モジュールと、
    前記記憶すべきデータを前記開始行の各列内の最初のストレージユニットに1ビットずつ書き込むように構成される第1書き込みモジュールであって、前記各列内の最初のストレージユニットの識別子のそれぞれが前記開始ユニット識別子と同じである第1書き込みモジュールと、
    前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の第M列内の最初のストレージユニットにデータが書き込まれている場合には、各列内の、前記最初のストレージユニットに隣接する次のストレージユニットに位置決めするように識別子を更新するように構成される第1更新モジュールと、
    前記記憶すべきデータが前記ストレージアレイに全部書き込まれるまで、前記記憶すべきデータの残りのデータを前記開始行の各列内の次のストレージユニットに1ビットずつ書き込むように構成される第2書き込みモジュールと、を含む、データ記憶装置。

  24. 前記記憶すべきデータが前記ストレージアレイに全部書き込まれておらず、かつ、前記開始行の各列内の全てのストレージユニットにデータが書き込まれている場合、前記ストレージアレイ内の前記開始行に隣接する次の行に位置決めするように行アドレスを更新するように構成される第2更新モジュールと、
    前記記憶すべきデータの残りのデータを前記次の行の各列内の1つ目のストレージユニットに1ビットずつ書き込み続けるように構成される第3書き込みモジュールと、をさらに含む、請求項23に記載のデータ記憶装置。

  25. 前記ストレージアレイ内のいずれかのストレージユニットがデータ読み取り状態にある場合、前記いずれかのストレージユニットへの新しいデータの書き込みを禁止するように構成される禁止モジュールをさらに含む、請求項23に記載のデータ記憶装置。
  26. 記憶すべきデータのストレージアレイにおける終了アドレスに戻るように構成される戻りモジュールであって、前記終了アドレスが終了行、終了列及び終了ユニット戻りモジュールを含む、請求項23〜請求項25のいずれか一項に記載のデータ記憶装置。
  27. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り装置は、
    ニューラルネットワークプロセッサから送信されたデータ処理終了メッセージを取得した場合、前記ニューラルネットワークプロセッサの現在取得すべきターゲットデータと、前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子とを決定するように構成される第2決定モジュールと、
    前記ターゲットデータのストレージアレイにおける行アドレス、列アドレス及びストレージユニット識別子に基づいて、現在実行すべきデータ読み取り動作を決定するように構成される第3決定モジュールと、
    前記ストレージアレイにおける第3インターフェースを制御して、前記行アドレス、列アドレス及びストレージユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、同じストレージユニット識別子に対応するストレージユニット内のデータを同時に読み取り、読み取った前記ターゲットデータを前記ニューラルネットワークプロセッサに送信するように構成される第2制御モジュールと、を含む、データ読み取り装置。
  28. 前記ニューラルネットワークプロセッサによって現在処理されているシーケンスデータは、Kフレームのデータを含み、Kが正の整数であり、前記第2決定モジュールは、具体的には、
    前記終了メッセージに対応する処理済データ及び第1ネットワーク層を決定し、
    前記処理済データが前記シーケンスデータ内のK番目のフレームの関連データである場合、前記ターゲットデータが、前記第1ネットワーク層に隣接する次の層に対応するネットワークパラメータと、前記シーケンスデータ内の1番目のフレームの関連データとを含むことを決定するように構成され、前記関連データは、対応するフレームの生データ、又は前記生データがネットワーク層によって処理された後に生成されたデータである、請求項27に記載のデータ読み取り装置。
  29. 前記処理済データがシーケンスデータのi番目のフレームの関連データである場合、前記ターゲットデータとして、前記i番目のフレームのデータに隣接するi+1番目のフレームの関連データを決定するように構成される第4決定モジュールであって、iがKより小さい正の整数である第4決定モジュールをさらに含む、請求項28に記載のデータ読み取り装置。
  30. N行及びM列のストレージブロックを含むストレージアレイに適用されるデータ読み取り装置であって、各ストレージブロックが複数のストレージユニットを含み、N及びMが正の整数であり、前記データ読み取り装置は、
    読み取るべきターゲットデータと、前記ターゲットデータのストレージアレイにおける開始行、開始列及び開始ユニット識別子とを含むデータ読み取り動作を取得するように構成される第3取得モジュールと、
    前記開始行、開始列及び開始ユニット識別子に基づいて、開始すべきデータチャネルを決定するように構成される第5決定モジュールと、
    前記データチャネルを開始し、前記開始行の開始列内の開始ユニット識別子から始めて、前記ストレージアレイ内の各列のストレージブロックから、前記ストレージユニット識別子に対応する各ストレージユニット内のターゲットデータを同時に読み取り、読み取った前記ターゲットデータをニューラルネットワークプロセッサに送信するように構成される第1読み取りモジュールと、を含む、データ読み取り装置。
  31. 前記第5決定モジュールは、具体的には、
    前記開始列が第1列であり、かつ、前記ターゲットデータによって占有されるストレージユニットがMより大きい場合、開始すべきデータチャネルとして各列に対応するデータチャネルを決定するように構成される、請求項30に記載のデータ読み取り装置。
  32. 前記第5決定モジュールは、具体的には、
    前記開始列が第j列であり、かつ、前記ターゲットデータに対応するストレージユニットがM−jより大きい場合、開始すべき初期データチャネルとしてj番目のチャネルからM番目のチャネルを決定し、補足データチャネルとして1番目のチャネルルからj−1番目のチャネルを決定するように構成され、jが1より大きい整数であり、前記補足データチャネルは、前記j番目のチャネルからM番目のチャネルで前記開始行の第j列から第M列の前記開始ユニット識別子からデータが読み取られた後、引き続き開始されたデータチャネルである、請求項30に記載のデータ読み取り装置。
  33. 各ストレージブロックはL個のストレージユニットを含み、Lが1より大きい正の整数であり、前記ターゲットデータによって占有されるストレージユニットがMより大きく、前記第1読み取りモジュールは、具体的には、
    前記データチャネルを介して、前記開始行の開始列より後の各列内の、前記開始ユニット識別子に対応する各ストレージユニット内の最初のデータを読み取り、
    前記開始ユニット識別子がLより小さい場合、各列内の、前記開始ユニット識別子に隣接する次のストレージユニットに位置決めするように識別子を更新し、
    前記ターゲットデータの読み取りが全部完了するまで、前記データチャネルを介して前記開始行の各列内の次のストレージユニットからデータを読み取り続けるように構成される、請求項30〜請求項32のいずれか一項に記載のデータ読み取り装置。
  34. 前記開始ユニット識別子がLである場合、前記開始行に隣接する次の行に位置決めするように行アドレスを更新するように構成される第3更新モジュールと、
    前記ターゲットデータの読み取りが全部完了するまで、前記データチャネルを介して前記次の行の各列内の1つ目のストレージユニットからデータを読み取り続けるように構成される第2読み取りモジュールと、をさらに含む、請求項33に記載のデータ読み取り装置。
  35. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに通信可能に接続されるメモリと、を含み、
    前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサは、請求項1〜9のいずれの一項に記載のデータ記憶方法を実行でき、又は、請求項10〜17のいずれの一項に記載のデータ読み取り方法を実行できる、電子機器。
  36. コンピュータに、請求項1〜9のいずれか一項に記載のデータ記憶方法を実行させ、又は請求項10〜17のいずれか一項に記載のデータ読み取り方法を実行させるためのコンピュータ命令を記憶している、非一時的なコンピュータ読み取可能な記憶媒体。
  37. コンピュータに、請求項1〜9のいずれか一項に記載のデータ記憶方法を実行させ、又は、請求項10〜17のいずれか一項に記載のデータ読み取り方法を実行させる、コンピュータプログラム。
JP2021147028A 2020-10-27 2021-09-09 データ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置 Active JP7216781B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011165682.3 2020-10-27
CN202011165682.3A CN112328172B (zh) 2020-10-27 2020-10-27 数据存储方法、装置及数据读取方法、装置

Publications (2)

Publication Number Publication Date
JP2021193591A true JP2021193591A (ja) 2021-12-23
JP7216781B2 JP7216781B2 (ja) 2023-02-01

Family

ID=74296596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021147028A Active JP7216781B2 (ja) 2020-10-27 2021-09-09 データ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置

Country Status (3)

Country Link
US (1) US20210373799A1 (ja)
JP (1) JP7216781B2 (ja)
CN (1) CN112328172B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596684B (zh) * 2021-03-08 2021-06-22 成都启英泰伦科技有限公司 一种用于语音深度神经网络运算的数据存储方法
CN113031865B (zh) * 2021-03-23 2023-12-22 北京和利时系统集成有限公司 一种实现数据存储的方法、装置、计算机存储介质及终端
CN113487020B (zh) * 2021-07-08 2023-10-17 中国科学院半导体研究所 用于神经网络计算的参差存储结构及神经网络计算方法
CN114356793B (zh) * 2021-11-25 2024-02-27 苏州浪潮智能科技有限公司 数据处理方法、装置、电子设备及存储介质
CN116069260B (zh) * 2023-02-23 2024-03-22 摩尔线程智能科技(北京)有限责任公司 数据处理装置、方法、计算机设备以及存储介质
CN115951842A (zh) * 2023-02-23 2023-04-11 摩尔线程智能科技(北京)有限责任公司 基于单路输入的数据处理装置、方法和计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240453A (ja) * 1997-02-28 1998-09-11 Nec Corp ディスクアレイ装置
JP2000148656A (ja) * 1998-11-09 2000-05-30 Mitsubishi Electric Corp メモリシステム
WO2015087424A1 (ja) * 2013-12-12 2015-06-18 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
JP2018073040A (ja) * 2016-10-27 2018-05-10 東芝メモリ株式会社 メモリシステム
JP2018163434A (ja) * 2017-03-24 2018-10-18 東芝メモリ株式会社 メモリシステム
JP2019082813A (ja) * 2017-10-30 2019-05-30 東芝メモリ株式会社 メモリシステムおよび制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US10089017B2 (en) * 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
CN102541774B (zh) * 2011-12-31 2015-02-04 中国科学院自动化研究所 多粒度并行存储系统与存储器
US20160283864A1 (en) * 2015-03-27 2016-09-29 Qualcomm Incorporated Sequential image sampling and storage of fine-tuned features
CN111368250B (zh) * 2018-12-26 2023-08-15 北京欣奕华科技有限公司 基于傅里叶变换/逆变换的数据处理系统、方法及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240453A (ja) * 1997-02-28 1998-09-11 Nec Corp ディスクアレイ装置
JP2000148656A (ja) * 1998-11-09 2000-05-30 Mitsubishi Electric Corp メモリシステム
WO2015087424A1 (ja) * 2013-12-12 2015-06-18 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
JP2018073040A (ja) * 2016-10-27 2018-05-10 東芝メモリ株式会社 メモリシステム
JP2018163434A (ja) * 2017-03-24 2018-10-18 東芝メモリ株式会社 メモリシステム
JP2019082813A (ja) * 2017-10-30 2019-05-30 東芝メモリ株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
JP7216781B2 (ja) 2023-02-01
US20210373799A1 (en) 2021-12-02
CN112328172B (zh) 2022-04-19
CN112328172A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
JP7216781B2 (ja) データ記憶方法、データ記憶装置、データ読み取り方法及びデータ読み取り装置
KR101669783B1 (ko) 성능 및 정확도에 대한 멀티 스레드 소프트웨어 프로그램들의 레코딩된 실행들의 시각화
JP2022018095A (ja) マルチモーダル事前訓練モデル取得方法、装置、電子デバイス及び記憶媒体
CN104951358B (zh) 基于优先级的上下文抢占
US10990524B2 (en) Memory with processing in memory architecture and operating method thereof
EP3639144B1 (en) Memory management in non-volatile memory
CN107657280B (zh) 用于处理样本的方法和装置
JP2017194959A (ja) NVMe装置に対しカーネルモードアクセス及び使用者モードアクセスを同時に可能にする方法及びホストコンピュータシステム並びに非一時的コンピュータ読出可能記録媒体
EP4287074A1 (en) Mixture-of-experts model implementation method and system, electronic device, and storage medium
JP2023036774A (ja) 共有メモリのアクセス制御方法、共有メモリのアクセス制御装置、電子機器および自動運転車両
JP2021128327A (ja) 口形特徴予測方法、装置及び電子機器
CN111259205A (zh) 一种图数据库遍历方法、装置、设备及存储介质
JP2022033688A (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
JP5885481B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20140331145A1 (en) Enhancing a remote desktop with meta-information
CN108597551A (zh) 读密集型大数据处理的内存刷新方法和系统
CN114840339A (zh) Gpu服务器、数据计算方法及电子设备
US11030714B2 (en) Wide key hash table for a graphics processing unit
JP7256857B2 (ja) 対話処理方法、装置、電子機器及び記憶媒体
US11372756B2 (en) Memory pool management
WO2023035559A1 (zh) 关系图谱的实现方法、装置、电子设备及存储介质
CN115631251A (zh) 基于文本生成图像的方法、装置、电子设备和介质
JP5687603B2 (ja) プログラム変換装置、プログラム変換方法、および変換プログラム
US9189448B2 (en) Routing image data across on-chip networks
CN117015767A (zh) 存储器信道控制器的芯片上互连

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230120

R150 Certificate of patent or registration of utility model

Ref document number: 7216781

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150