JP7149987B2 - データ伝送装置、データ処理システム、データ処理方法及び媒体 - Google Patents

データ伝送装置、データ処理システム、データ処理方法及び媒体 Download PDF

Info

Publication number
JP7149987B2
JP7149987B2 JP2020108977A JP2020108977A JP7149987B2 JP 7149987 B2 JP7149987 B2 JP 7149987B2 JP 2020108977 A JP2020108977 A JP 2020108977A JP 2020108977 A JP2020108977 A JP 2020108977A JP 7149987 B2 JP7149987 B2 JP 7149987B2
Authority
JP
Japan
Prior art keywords
data
data processing
data transmission
transmission device
memory
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.)
Active
Application number
JP2020108977A
Other languages
English (en)
Other versions
JP2021005380A (ja
Inventor
ラン,シャンルン
シュー,ニンイー
ヤン,イー
チウ,ジャンズー
チィー,ウェイ
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
Kunlunxin Technology Beijing Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Kunlunxin Technology Beijing 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, Kunlunxin Technology Beijing Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021005380A publication Critical patent/JP2021005380A/ja
Application granted granted Critical
Publication of JP7149987B2 publication Critical patent/JP7149987B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2757Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7896Modular architectures, e.g. assembled from a number of identical packages
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2767Interleaver wherein the permutation pattern or a portion thereof is stored
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Semiconductor Memories (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示の実施例は、主にデータ伝送の技術分野に関し、より具体的には、データ伝送装置、データ処理システム及び方法に関する。
現在、人工知能(AI)テクノロジーが広く利用されているにつれて、グラフィックス処理ユニット(GPU)またはAI専用チップの計算能力は増加している。これにより、メモリアクセスの帯域幅に対する要求がますます高くなり、512GB/s~1TB/sは非常に一般的であり、一部のチップさえ1TB/sを超えている。しかし、SoCの周波数とバス幅は、プロセスとタイミングに限られて絶えず増加させることができない。現在、ありふれたAXIインターフェイスは、一般的には、周波数は約1GHzで、データビット幅が1024ビット以下であり、一般的には、512ビットで、帯域幅は64GB/s(=1GHz*512ビット/8)であり、シングルチャンネルGDDR、HBMなどのストレージが提供する帯域幅に相当である。既存のメモリマルチチャンネルインターリーブ技術では通常、最大16(=1TB/64GB)のAXIインターフェイスを使い、十分なメモリ帯域幅を提供することにより、メモリアクセスの帯域幅要件を満たせる。
しかし、メモリのマルチチャンネルインターリーブ、特に8チャンネル以上のインターリーブは大きな課題となる。一方、このような複数のチャンネルはSoCチップの片側に拡散するのが難しく、チップの両側または周囲に配置する必要がある。これにより、平面配置とチップの物理的な実現に大きな困難をもたらす。一方、マルチチャンネルはSoCのオンチップインターコネクト(NoC)とシステムパフォーマンスに挑戦し、如何にインターリーブをサポートしないモジュールをシステムに導入するかを含むだけでなく、様々な状況でパフォーマンス帯域幅はシステム要件などを満たすかどうかを慎重に評価する必要もある。
本開示の例示的な実施例により、データ伝送装置の解決策を提供し、上記の問題及び/または他の潜在的な問題を解決、または少なくとも部分的に解決する。
本開示の第1の態様により、データ伝送装置を提供する。データ伝送装置は、処理ユニットに結合される複数の第1のポートと、複数のメモリに結合される複数の第2のポートと、前記処理ユニットと前記複数のメモリとの間でデータを伝送するように、第1のポートと第2のポートとの間に配置されて複数の層を有するインターリーブネットワークを形成するための複数のデータチャンネルであって、前記インターリーブネットワークの各層が少なくとも1つのサブインターリーブネットワークを含む複数のデータチャンネルと、を含む。
複数のチャンネル、階層化メモリインターリーブ技術を採用することにより、ハードウェアに由来するコストを削減させ、拡張性と柔軟性を向上する。少なくとも1層を分散するように設置され、即ち複数のサブインターリーブネットワークに画分されるため、長いパスを必要とするデータチャンネルが大幅に削減される。これにより、消費電力、データ伝送の遅延及び安定性の点では有利である。また、階層化インターリーブネットワークのデータ伝送技術により、対称構造の配置を実現しやすくなり、データ処理システムにおける様々なモジュールを配置しやすくなる。
いくつかの実施例では、複数のデータチャンネルは、インターリーブネットワークの複数の層内の隣接する層を相互に接続するように、インターリーブチャンネルを含む。これにより、データ伝送の効率と拡張性をさらに向上する。
いくつかの実施例では、インターリーブネットワークの複数の層内のサブインターリーブネットワークの数は、第1のポートから第2のポートへ順次に増加するかまたは減少する。各層の間のサブインターリーブネットワークの様々な組み合わせを適用することにより、拡張性と柔軟性をさらに向上する。
いくつかの実施例では、第1のポートにより提供される総帯域幅は、第2のポートにより提供される総帯域幅以上である。
一部の実施例では、第2のポートはメモリコントローラを介して複数のメモリに結合される。
本開示の第2の態様により、データ処理方法を提供する。データ処理方法は、複数のメモリのうちの少なくとも1つのメモリにおけるデータに対する読み取り要求が受信されたことに応答して、本開示の第1の態様のデータ伝送装置を介して、読み取り要求の対象となる少なくとも1つのメモリからデータを取得するステップを含む。
本開示の第3の態様により、データ処理方法を提供する。データ処理方法は、複数のメモリのうちの少なくとも1つのメモリにデータを書き込む書き込み要求が受信されたことに応答して、本開示の第1の態様のデータ伝送装置を介して、少なくとも1つのメモリにデータを書き込むステップを含む。
本開示の第4の態様により、データ処理システムを提供する。データ処理システムは、処理ユニットと、本開示の第1の態様のデータ伝送装置と、1つまたは複数のプログラムが記憶されている記憶装置とを含み、1つまたは複数のプログラムが前記処理ユニットにより実行される場合、前記処理ユニットが本開示の第2の態様または第3の態様の方法を実現する。
いくつかの実施例では、データ伝送装置は処理ユニットに集積される。
いくつかの実施例では、前記データ処理システムの周りに任意の位置に複数のメモリが配置される。
本開示の第5の態様により、コンピュータ読み取り可能な命令が記憶されているコンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な命令が実行される場合、機器に本開示の第2の態様または第3の態様の方法を実現させる。
発明の概要で説明される発明の内容は、本開示の実施例の鍵または重要な特徴を限定することを意図していない。本開示の他の特徴は、以下の説明により容易に理解される。
図面に併せて説明を参照することにより、本開示の各実施例の上記と他の特徴、利点及び態様はより明らかになる。図面において、同じまたは類似の参照番号は、同じまたは類似の要素を示す。
従来技術におけるメモリインターリーブ技術を採用するデータ伝送を示す概略図である。 本開示のいくつかの実施例に係るマルチチャンネル、階層化メモリインターリーブ技術を採用するデータ伝送を示す概略図である。 本開示のいくつかの実施例に係るマルチチャンネル、階層化メモリインターリーブ技術を採用する物理的な実現を示す概略図である。 本開示の他の実施例に係るマルチチャンネル、階層化メモリインターリーブ技術を採用するデータ伝送を示す概略図である。 本開示の他の実施例に係るマルチチャンネル、階層化メモリインターリーブ技術を採用するデータ伝送を示す概略図である。 本開示の例示的な実施例に係るデータ処理方法のフロー図である。 本開示の例示的な実施例に係るデータ処理方法のフロー図である。 本開示の各実施例を実施できるコンピューティング機器のブロック図である。
本開示の実施例は、以下に図面を参照してより詳細に説明する。本開示のある実施例が図面に示されているが、本発明は様々な形態で具現化され、本明細書に記載される実施例に限られるものではなく、逆に本開示をより明確かつ完全に理解されるように実施例を提供する。本開示の図面及び実施例は単に例示とし、本開示の範囲を限定するものではない。
本開示の実施例の説明において、用語「含む」などは、「含むが、これに限定されない」と理解されるべきである。「に基づいて」という用語は、「少なくとも部分的に基づいて」と理解されるべきである。「一実施例」または「実施例」という用語は、「少なくとも1つの実施例」を理解されるべきである。「第1」、「第2」などの用語は、異なるまたは同一のオブジェクトを指せる。以下に他の明示的及び暗黙的な定義も含まれる場合がある。
メモリインターリーブ技術は、メモリ性能を改善するための技術であり、より多くの伝送チャンネルとより高いメモリ帯域幅を提供でき、メモリが複数の書き込み/読み取り操作を同時に実行させ、システムのパフォーマンスを効果的に改善する。図1は、従来技術におけるメモリインターリーブ技術を採用するデータ伝送を示す図である。図1に示すように、システムオンチップ(SoC)を例として、複数のチャンネル(特に8チャンネル以上)のメモリインターリーブである場合は、制御側とメモリ側は、一般的に、N×Nクロスバー(crossbar)により相互に接続される。
SoCシステムの処理ユニット101’は、通常、インターリーブデータチャンネル103’、メモリコントローラ及び物理層(PHY)を介して、メモリ200’と相互に接続される。SoCシステムチップ配置のニーズに応じて、メモリコントローラーと物理層をSoCシステムの両側またはより多くの側に分布する必要がある場合、通常の500mmのAIチップにとっては、マルチチャンネルクロスバーの実現は非常に困難である。
特に、このようなサイズのチップは通常対称構造により実現され、複数のブロック(block)に画分される場合、モジュール画分及び対称構造の実装は困難である。発明者の検討により、従来技術ではマルチチャンネルインターリーブネットワークの層は1つしかないことに由来することが判明した。
発明者は上記の発見に基づいて、上記及び/または他の潜在的な問題を解決または少なくとも部分的に解決するために、マルチチャンネルの階層化インターリーブネットワークに基づくデータ伝送技術を提案した。データ伝送技術は、データ伝送装置として具現化することができる。本明細書のデータ伝送装置は、SoCなどの任意の適切な環境に適用されるモジュールであってもよい。
図2は、本開示のいくつかの実施例に係るマルチチャンネル、階層化メモリインターリーブ技術を採用するデータ伝送を示す図である。図2に示すように、データ伝送装置は、処理ユニット(例えば、SoCシステムの処理ユニット)に結合される複数の第1のポート101と、複数のメモリ(200)に結合される複数の第2のポート102と、複数のデータチャンネル103と含む。複数のデータチャンネル103は、第1のポート101と第2のポート102との間に配置され、処理ユニットと複数のメモリ102との間のデータを伝送する。
第2のポート102は、メモリコントローラ及び物理層を介して複数のメモリに結合することができる。第1のポート101と第2のポート102の数は同一でもよいし、同一でなくてもよく、一般的に、第1のポート101により提供される総帯域幅は、第2のポート102により提供される総帯域幅以上である。例えば、いくつかの実施例では、ビット幅が同じである場合、第1のポート101の数は第2のポート102の数と異なってもよい。以下は、同数の第1のポート101と第2のポート102の数と同じである場合を例として(例えば、N×N)、本開示の実施例による改善を説明する。
従来のメモリインターリーブ技術を採用するデータチャンネルとは異なり、本開示の実施例に係る複数のデータチャンネルは、階層化メモリインターリーブ方式を採用する。データチャンネルのインターリーブネットワークの各層には、少なくとも1つのサブインターリーブネットワーク1031が含まれる。すなわち、複数のデータチャンネルは階層化インターリーブネットワークを採用する。例えば、図2に示すように、複数のデータチャンネルは2層構造に画分され、第1層に1つのサブインターリーブネットワークがあり、第2層に2つのサブインターリーブネットワークがある。
この場合、第1層のサブインターリーブネットワークはN×2インターリーブを採用するだけで、第2層の各サブインターリーブネットワークは(N/2)×(N/2)インターリーブを採用するだけでよい。まず、階層化技術を採用するため、ハードウェアに由来するコストは非常に少なくなることは明らかである。具体的には、単層のN×Nインターリーブネットワークの場合、図2に示す例のN×2+2×(N/2)×(N/2)インターリーブネットワークに由来するコストよりもはるかに多い。次に、少なくとも1つの層が分散されるように設置され、すなわち複数のサブインターリーブネットワークに画分されるため、長い経路のデータ経路は大幅に削減される。これにより、消費電力、データ伝送の遅延及び安定性の点では有利である。
階層化メモリインターリーブ技術により、各層は単独または他の既存のモジュールとともに新しいモジュールを形成できるため、各サブインターリーブネットワークはいずれも大きな面積を利用せず、より柔軟に配置できる。図3に示すように、図2に示す階層化インターリーブネットワークを採用するデータ伝送技術は、対称構造の配置をより容易に実現することができる。
いくつかの実施例では、物理的に実現される時に、図2に示す第2層、必要なメモリコントローラ及び物理層は、人工知能(AI)演算モジュールに組み込むことにより実現され得る。このようにして、モジュール画分と対称構造をより適切に実現できるため、階層化技術の拡張性を向上する。例えば、合理的なモジュール画分と対称構造により、チャンネル数を8チャンネルから16チャンネル、さらには32チャンネル以上に簡単に拡張できる。これにより、メモリアクセス帯域幅に対する高い要求を簡単に実現できる。
いくつかの実施例では、インターリーブネットワークの複数の層のうちの少なくとも隣接するサブインターリーブネットワーク間で、インターリーブデータチャンネルを採用して相互に接続する。各隣接する層の間ではAXIインターフェイスなどのデータ伝送プロトコルを採用してデータを伝送する。これにより、データ伝送の効率と拡張性をさらに向上する。
さらに、図2には本開示のいくつかの実施例に係るマルチチャンネルの階層化メモリインターリーブ技術を採用するデータ伝送の概略図だけが示されている。勿論、これは単なる例示であり、本開示の範囲を限定することを意図していない。本開示の実施例に係る階層化内部インターリーブを採用するデータ伝送装置は、様々なモジュール及び/またはサブインターリーブネットワークをより柔軟に調整できる。
例えば、図4に示されるように、いくつかの実施例では、複数のデータチャンネル103も2つの層を形成するインターリーブネットワークである。図2に示す実施例とは異なり、第1層インターリーブネットワークには1つのサブインターリーブネットワーク1031があり、第2層インターリーブネットワークには4つのサブインターリーブネットワークがある。このように、第1層のサブインターリーブネットワークはN×4インターリーブを採用でき、第2層の各サブインターリーブネットワークは(N/4)×(N/4)インターリーブを採用できる。これにより、ハードウェアに由来するコストをさらに削減できるとともに、様々なモジュール画分方法もできる。また、この配置により、メモリをSoCチップの周りに対称的に配置することもできる。
図2及び図4は、データチャンネルをインターリーブネットワークの2つの層に画分できる場合を示している。図2及び図4の実施例の説明から、各層のサブインターリーブネットワークの数は、実際の状況に応じて柔軟に調整できる。いくつかの実施例では、複数の層内のサブインターリーブネットワークの数は、第1のポート102から第2のポートへ順次に増加するかまたは減少する。各層の間でのサブインターリーブネットワークを様々に組み合わせることにより、データ伝送の拡張性と柔軟性をさらに向上する。
サブインターリーブネットワークの様々な組み合わせ方式は、各層のサブインターリーブネットワークの数を実際のニーズに応じて柔軟に調整できる以外、インターリーブネットワークの層数も調整できる。チャンネルの数が多いほど、考慮できる層の数も多くなる。例えば、いくつかの実施例では、図5に示されるように、3つの層を有する16チャンネルのインターリーブネットワークが示されている。第1層は1つのサブインターリーブネットワーク1031を有し、第2層は2つのサブインターリーブネットワーク1031を有し、第3層は4つのサブインターリーブネットワーク1031を有する。
この場合、第1層のサブインターリーブネットワーク1031はN×2インターリーブを採用することができ、第2層の各サブインターリーブネットワークは(N/2)×(N/4)インターリーブを採用することができ、第3層のサブインターリーブネットワークは(N/4)×(N/4)インターリーブ方式を採用できる。この多層構造により、サブインターリーブネットワークがさらに細分化されるため、モジュールの画分と対称配置がより容易になり、柔軟性と拡張性をさらに向上する。
上記の層の数及び各層のサブインターリーブネットワークの数は柔軟に調整することができる以外、面積をさらに最適化するために、第1のポート101または第2のポート102のいずれかのビット幅を増加させることにより、インターフェイスの数を減少しても良い。
例えば、いくつかの実施例では、第1のポート101のビット幅は、第2のポートのビット幅の2倍であってもよい。これにより、第1のポート101の数は、第2のポート102の数の半分であっても良い。2層構造のインターリーブネットワークを採用する場合、一方、第1層のサブインターリーブネットワークは(N/2)×2のインターリーブ方法を採用できる。これにより、第1層の面積とルーティングを大幅に削減できる。一方、ルーティングの削減によって、より友好的な物理的な実現をもたらす。例えば、チャンネルが16である場合、8つの第1のポート101のみが必要になる。
上記は、データチャンネルが2つ以上の層を有することができ、かつ各層が異なる数のサブインターリーブネットワークを有するマルチチャンネルインターリーブ方式を説明している。このマルチチャンネルインターリーブ方式は、データチャンネルの複数の配置モードを実現し、高い拡張性とマルチチャンネル及び階層化のメモリインターリーブ方式が物理的に実現される。
本開示の実施例により、読み取りデータ処理方法600を提供する。読み取りデータ処理方法600は、データ処理システム内の処理ユニットにより実行されることができる。図6は、本開示の例示的な実施例に係るデータ処理方法のフロー図である。図面に示されるように、610では、複数のメモリ200のうちの少なくとも1つのメモリ200におけるデータに対する読み取り要求が受信されたか否やかを判定する。読み取り要求が受信された場合、方法600は620で上記データ伝送装置を介して、読み取り要求の対象となる少なくとも1つのメモリ200からデータを取得する。
例えば、ユーザがメモリまたは他の記憶装置に保存されているデータを処理しようとする場合、ユーザは適切なインターフェースを介してデータに対する読み取り要求を処理ユニットに伝送することができる。データが他のストレージ機器に保存されている場合、適切な操作を介してデータがメモリにダンプできる。読み取り要求には、メモリ内のデータのアドレスを含んでも良い。これらのデータに対する読み取り要求が受信された場合、処理部はアドレス情報に基づいてメモリ200からデータを取得できる。データを取得した後、相応的に処理し、インターフェイスを介してユーザに指定されたモジュールに伝送し、さらなる処理を行うことができる。例えば、データは処理ユニットで読み取って処理した後、メモリ200に書き込み、さらなる処理を行うことができる。
本開示の実施例により、書き込みデータ処理方法700を提供する。書き込みデータ処理方法700は、データ処理システム内の処理ユニットにより実行されることができる。図7は、本開示の例示的な実施例に係るデータ処理方法のフロー図である。図面に示されるように、710では、複数のメモリ200のうちの少なくとも1つのメモリ200にデータを書き込む書き込み要求が受信されたか否やかを判定する。書き込み要求が受信された場合、方法700は720で上記のデータ伝送装置を介して、少なくとも1つのメモリにデータを書き込む。
例えば、処理ユニットはデータの処理を終了し、処理されたデータをメモリ200に書き込む要求が受信された場合、上記のデータ伝送装置を介して、メモリ200に書き込み、さらなる処理を行うことができる。
上記の方法はマルチチャンネル、階層化のメモリインターリーブ方法を採用することにより、ロングパスデータチャンネルの数を効果的に削減し、データの伝送効率と安定性を向上する。
本開示の実施例により、図3に示すように、データ処理システム300を提供する。データ処理システムは、処理ユニットと、記憶装置と、上記データ伝送装置100とを含む。データ処理システム300は、いくつかの実施例ではシステムオンチップSoCであってもよい。ストレージ機器は、少なくとも1つのプログラムを記憶している。当該少なくとも1つのプログラムは、処理ユニットにより実行される場合、処理ユニットが上記の方法を実現することができる。上記のデータ伝送装置100を採用するデータ処理システム300の配置は、もっと合理的でより大きな拡張性を有し、電力消費はより少ない。
いくつかの実施例では、データ伝送装置100は処理ユニットに集積することができる。すなわち、いくつかの実施例では、システムオンチップSoCは少なくとも1つの処理ユニットを含み、データ伝送装置100はシステムオンチップ処理ユニットに集積されるデータチャンネルであってもよい。いくつかの実施例では、複数のメモリ200はデータ処理システム(例えば、システムオンチップSoC)の任意の位置に、例えば対称的に両側または周囲に配置されることができる。上記の構成を採用するデータ処理ユニットは、より簡単に物理的に実現されることができる。
図8は、本開示の各実施例を実施できるコンピューティング機器のブロック図である。装置800は図7及び図8に示される方法の実施に採用することができる。図面に示されるように、機器800は、読み取り専用メモリ(ROM)802に記憶されているコンピュータプログラム命令または記憶装置808からランダムアクセスメモリ(RAM)803にロードされたコンピュータプログラム命令に従って、適切な各アクションとプロセスを実行する中央処理装置(CPU)801を含む。RAM803には、機器800の動作に必要な様々なプログラム及びデータも記憶することができる。CPU801、ROM802、及びRAM803は、バス804を介して相互に接続される。入力/出力(I/O)インターフェース805もバス804に接続される。
キーボード、マウスなどの入力ユニット806と、様々なタイプのディスプレイ、スピーカーなどの出力ユニット807と、ハードディスク、光ディスクなどの記憶装置808と、ネットワークカード、モデム、無線通信トランシーバなどの通信ユニット809と、を含む機器800内の複数の部材は、I/Oインターフェース805に接続される。通信ユニット809により、機器800がインターネット及び/または様々な電気通信ネットワークなどのコンピュータネットワークを介して、他の機器と情報/データを交換することができる。
処理ユニット801は、プロセス600及び700などの上記の様々な方法及びプロセスを実行する。例えば、いくつかの実施例では、プロセス600及び700はコンピュータプログラムとして実装し、記憶装置808などのコンピュータ読み取り可能な媒体に具現的に含まれる。いくつかの実施例では、コンピュータプログラムの一部またはすべてを、ROM602及び/または通信ユニット809を介して機器800にロード及び/またはインストールすることができる。コンピュータプログラムがRAM803にロードされ、CPU801により実行される場合、上記のステップ600及び700の1つまたは複数のステップを実行することができる。また他の実施例では、CPU801は任意の他の適切な手段(例えば、ファームウェアに依存する)により、プロセス600及び700を実行するように構成され得る。
本明細書で上記の機能は少なくとも部分的に、1つまたは複数のハードウェア論理ユニットにより実行することができる。例えば、制限なく、使用できるハードウェア論理ユニットの典型的なタイプは、現場でプログラム可能なゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、プログラマブルロジック機器(CPLD)などを含む。
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語の任意の組み合わせでコーディングすることができる。プログラムコードは、汎用コンピューター、専用コンピューター、または他のプログラム可能なデータ処理装置のプロセッサーまたはコントローラーに提供され、プログラムコードがプロセッサーまたはコントローラーにより実行される場合、フロー図及び/またはブロック図に特定される機能/操作が実行される。プログラムコードは、完全にマシン上で、一部はマシン上で、スタンドアロンソフトウェアパッケージの一部としてマシン上で、一部はリモートマシン上で、あるいは完全にリモートマシンまたはサーバー上で実行され得る。
本開示の文脈において、機械読み取り可能な媒体は有形の媒体で、命令実行システム、装置または機器により使用、あるいは命令実行システム、装置または機器に結合するためのプログラムを含むまたは記憶することができる。機械読み取り可能な媒体は、機械読み取り可能な信号媒体または機械読み取り可能な記憶媒体であり得る。機械読み取り可能な媒体は電子、磁気、光学、電磁気、赤外線、または半導体システム、装置、または機器、または上記の任意の適切な組み合わせを含めるが、それらに限定されない。機械読み取り可能な記憶媒体のより具体的な例には、1つまたは1つ上のワイヤによる電気接続、ポータブルコンピューターディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバー、コンパクトコンパクトディスク読み取り専用メモリ(CD-ROM)、光学記憶装置、磁気記憶装置、または上記の任意の適切な組み合わせを含む。
さらに、操作は特定の順序で示されているが、これは、そのような操作により特定の順序を示すまたは順序で実行されるため、または示されたすべての操作を実行して望ましい結果を得るためである。特定の状況では、マルチタスクと並列処理は有利になる。同様に、いくつかの特定の実現の詳細が上記の説明に含まれているが、これらは開示の範囲を限定するものとして解釈されるべきではない。単独の実施例の文脈で説明された一部の特徴は、単一の実現に組み合わせて実現することもできる。逆に、単一の実現の文脈で説明された様々な特徴は、単一または任意の適切なサブ組み合わせる方式で複数の実現に実現できる。
本開示の上記の詳細な実施例は、単に本開示の原理を例示または説明することにより、本開示を限定することを意図していない。したがって、本開示の旨及び範囲内で行われた修正、同等の置換及び改善は、本開示の範囲内に含まれるべきである。また、添付の請求項は、請求項の範囲と限定の同等の代替の範囲と限定以内のすべての変更及び修正を含むことを意図している。

Claims (10)

  1. データ伝送装置(100)であって、
    処理ユニットに結合される複数の第1のポート(101)と、
    複数のメモリ(200)に結合される複数の第2のポート(102)と、
    前記処理ユニットと前記複数のメモリ(200)との間でデータを伝送するように、前記第1のポート(101)と前記第2のポート(102)との間に配置されて複数の層を有するインターリーブネットワークを形成する複数のデータチャンネル(103)であって、前記インターリーブネットワークの各層が少なくとも1つのサブインターリーブネットワーク(1031)を含む複数のデータチャンネル(103)と、を含み、
    前記インターリーブネットワークの前記複数の層内のサブインターリーブネットワーク(1031)の数は、前記第1のポート(101)から前記第2のポート(102)へ順次に増加するかまたは減少し、
    前記第2のポート(102)がメモリコントローラ(201)を介して前記複数のメモリ(200)に結合され
    ことを特徴とするデータ伝送装置(100)。
  2. 前記複数のデータチャンネル(103)は、前記インターリーブネットワークの前記複数の層内の隣接する層を相互に接続するように、インターリーブチャンネルを含む、
    ことを特徴とする請求項1に記載のデータ伝送装置(100)。
  3. 前記第1のポート(101)により提供される総帯域幅は、前記第2のポート(102)により提供される総帯域幅以上である、
    ことを特徴とする請求項1に記載のデータ伝送装置(100)。
  4. コンピュータにより実行されるデータ処理方法であって、
    複数のメモリ(200)のうちの少なくとも1つのメモリ(200)におけるデータに対する読み取り要求が受信されたことに応答して、請求項1~のいずれかに記載のデータ伝送装置(100)を介して、前記読み取り要求の対象となる前記少なくとも1つのメモリ(200)から前記データを取得するステップ、を含む、
    ことを特徴とするデータ処理方法。
  5. コンピュータにより実行されるデータ処理方法であって
    複数のメモリ(200)のうちの少なくとも1つのメモリ(200)にデータを書き込む書き込み要求が受信されたことに応答して、請求項1~のいずれかに記載のデータ伝送装置(100)を介して、前記少なくとも1つのメモリ(200)に前記データを書き込むステップ、を含む、
    ことを特徴とするデータ処理方法。
  6. データ処理システム(300)であって、
    処理ユニットと、
    請求項1~のいずれかに記載のデータ伝送装置(100)と、
    1つまたは複数のプログラムが記憶されている記憶装置と、を含み、
    前記1つまたは複数のプログラムが前記処理ユニットにより実行される場合、前記処理ユニットが、インターフェースに由来する要求に応じて請求項またはに記載の方法を実現する、
    ことを特徴とするデータ処理システム(300)。
  7. 前記データ伝送装置(100)が、前記処理ユニットに集積される、
    ことを特徴とする請求項に記載のデータ処理システム(300)。
  8. 前記データ処理システムの周りの任意の位置に複数のメモリ(200)が配置される、
    ことを特徴とする請求項に記載のデータ処理システム(300)。
  9. コンピュータ読み取り可能な命令が記憶されているコンピュータ読み取り可能な記憶媒体であって、コンピュータ読み取り可能な命令が実行される場合、インターフェースに由来する要求に応じて、機器に請求項またはに記載のデータ処理方法を実行させる、
    ことを特徴とするコンピュータ読み取り可能な記憶媒体。
  10. コンピュータ上で動作する際、インターフェースに由来する要求に応じて、前記コンピュータに請求項またはに記載のデータ処理方法を実行させる、
    ことを特徴とするコンピュータプログラム。
JP2020108977A 2019-06-26 2020-06-24 データ伝送装置、データ処理システム、データ処理方法及び媒体 Active JP7149987B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910559188.6 2019-06-26
CN201910559188.6A CN112148653A (zh) 2019-06-26 2019-06-26 数据传输装置、数据处理系统、数据处理方法和介质

Publications (2)

Publication Number Publication Date
JP2021005380A JP2021005380A (ja) 2021-01-14
JP7149987B2 true JP7149987B2 (ja) 2022-10-07

Family

ID=69960526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020108977A Active JP7149987B2 (ja) 2019-06-26 2020-06-24 データ伝送装置、データ処理システム、データ処理方法及び媒体

Country Status (5)

Country Link
US (1) US11360915B2 (ja)
EP (1) EP3758264A1 (ja)
JP (1) JP7149987B2 (ja)
KR (1) KR102337697B1 (ja)
CN (1) CN112148653A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140164720A1 (en) 2012-12-10 2014-06-12 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US20170371812A1 (en) 2016-06-27 2017-12-28 Qualcomm Incorporated System and method for odd modulus memory channel interleaving

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338768A (ja) 1998-05-22 1999-12-10 Nec Kofu Ltd メモリ制御方法、メモリ制御装置及びその記録媒体
US7248596B2 (en) * 2003-02-07 2007-07-24 Fujitsu Limited Memory interleaving in a high-speed switching environment
EP1542369A1 (en) * 2003-12-09 2005-06-15 STMicroelectronics N.V. Method and system for de-interleaving of data
US7921264B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Dual-mode memory chip for high capacity memory subsystem
US9639276B2 (en) * 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
CN108733506B (zh) * 2017-04-17 2022-04-12 伊姆西Ip控股有限责任公司 用于数据同步的方法、设备和计算机可读介质
GB2568086B (en) * 2017-11-03 2020-05-27 Imagination Tech Ltd Hardware implementation of convolution layer of deep neutral network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140164720A1 (en) 2012-12-10 2014-06-12 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
CN104854572A (zh) 2012-12-10 2015-08-19 高通股份有限公司 用于对具有不对称存储组件的存储子系统中的存储进行动态地分配的系统和方法
JP2015537317A (ja) 2012-12-10 2015-12-24 クアルコム,インコーポレイテッド 非対称のメモリ構成要素を有するメモリサブシステム内でメモリを動的に割り振るためのシステムおよび方法
US20170371812A1 (en) 2016-06-27 2017-12-28 Qualcomm Incorporated System and method for odd modulus memory channel interleaving
WO2018004902A1 (en) 2016-06-27 2018-01-04 Qualcomm Incorporated System and method for odd modulus memory channel interleaving
CN109313609A (zh) 2016-06-27 2019-02-05 高通股份有限公司 用于奇数模存储器通道交织的系统和方法

Also Published As

Publication number Publication date
KR20210001907A (ko) 2021-01-06
US20200409876A1 (en) 2020-12-31
KR102337697B1 (ko) 2021-12-08
JP2021005380A (ja) 2021-01-14
US11360915B2 (en) 2022-06-14
EP3758264A1 (en) 2020-12-30
CN112148653A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN106462524B (zh) 使用混合存储器立方体链路的互连系统及方法
US8984203B2 (en) Memory access control module and associated methods
KR102351671B1 (ko) 다중 포트 메모리 장치 및 그것을 이용한 방법
EP2450799A1 (en) Heterogeneous computing system comprising a switch/network adapter port interface utilizing load-reduced dual in-line memory modules (LR-DIMMS) incorporating isolation memory buffers
EP3910488A1 (en) Systems, methods, and devices for near data processing
US7761668B2 (en) Processor architecture having multi-ported memory
RU2481652C1 (ru) Интегральная схема с многопортовой суперячейкой памяти и схемой коммутации маршрута передачи данных
CN114121055A (zh) 内存互连架构系统和方法
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
JP7149987B2 (ja) データ伝送装置、データ処理システム、データ処理方法及び媒体
KR20120097878A (ko) 다중 포트 캐시 메모리 장치 및 그 구동 방법
US20170255558A1 (en) Isolation mode in a cache coherent system
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN111666253B (zh) 向具有共享存储器的共享处理元件的系统传递可编程数据
CN210038775U (zh) 片上系统
KR101967857B1 (ko) 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법
JP2021026769A (ja) ストレージ管理のための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
US8516179B2 (en) Integrated circuit with coupled processing cores
US20230222067A1 (en) Apparatus and method for cache-coherence
US20230133088A1 (en) Methods and apparatus for system-on-a-chip neural network processing applications
KR20170058294A (ko) 과학적 계산을 위한 저장 프로세서 어레이
KR20000011663A (ko) 기억소자
WO2024030785A2 (en) Memory controller for a high capacity memory circuit with large number of independently accessible memory banks
CN116324812A (zh) 神经网络近记忆处理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200624

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210908

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211018

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20220204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220706

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220706

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220715

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220719

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: 20220920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220927

R150 Certificate of patent or registration of utility model

Ref document number: 7149987

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150