JP2017117439A - 科学計算用ストレージプロセッサアレイ - Google Patents

科学計算用ストレージプロセッサアレイ Download PDF

Info

Publication number
JP2017117439A
JP2017117439A JP2016221697A JP2016221697A JP2017117439A JP 2017117439 A JP2017117439 A JP 2017117439A JP 2016221697 A JP2016221697 A JP 2016221697A JP 2016221697 A JP2016221697 A JP 2016221697A JP 2017117439 A JP2017117439 A JP 2017117439A
Authority
JP
Japan
Prior art keywords
storage processing
processing units
sub
array
unit
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.)
Ceased
Application number
JP2016221697A
Other languages
English (en)
Inventor
デ アルップ
De Arup
デ アルップ
クマー ガンナム キラン
Kumar Gunnam Kiran
クマー ガンナム キラン
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.)
HGST Netherlands BV
Original Assignee
HGST Netherlands BV
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 HGST Netherlands BV filed Critical HGST Netherlands BV
Publication of JP2017117439A publication Critical patent/JP2017117439A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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]
    • 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
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • 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/0629Configuration or reconfiguration 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

【課題】科学計算用ストレージプロセッサアレイを提供する。
【解決手段】本明細書に開示する複数の実施形態は、記憶処理ユニット間のデータ通信を提供すべく構成された相互接続ネットワークを含んでいる。開示する相互接続ネットワークは、記憶処理ユニットが局所的に科学計算を実行すべく構成されている場合に特に効果的であり得る。開示する相互接続ネットワークは、ホストシステムに過負荷をかけることなく、局所化され、スループットが高く、且つ待ち時間が短い記憶処理ユニット間のデータ通信を提供する。
【選択図】図1

Description

本開示は、科学計算用ストレージプロセッサアレイを提供する装置、システム、および方法に関する。
固体ドライブは、フラッシュメモリ等の不揮発性固体メモリを含んでいてよい。フラッシュメモリは、電気的消去可能且つプログラム可能な読み出し専用メモリ(EEPROM)の改良された形式を含んでいてよい。従来のEEPROM装置は、一度に1個のメモリ位置(例えばメモリセル)の消去または書き込みしかできない。対照的に、フラッシュメモリでは1回のプログラム動作で多数のメモリ位置の消去または書き込みがすることができる。フラッシュメモリは従って、従来のEEPROMに比べてより高速に動作可能である。
固体メモリは、他の記憶装置に比べて多くの利点がある。例えば、一般に、読み出しアクセス時間がより速く、且つハードディスクドライブ(HDD)よりも衝撃耐性が良好である。動的ランダムアクセスメモリ(DRAM)とは異なり、固体メモリは一般に不揮発性であり、すなわちフラッシュメモリに格納されるデータが、当該メモリへの電力供給が停止されても失われないことを意味する。これらの利点等により、メモリカード、USBフラッシュドライブ、携帯電話、デジタルカメラ、大容量記憶装置、MP3プレーヤ等の装置における記憶用フラッシュメモリが普及し続けていることが説明できる。
本開示の複数の実施形態は、科学計算用のストレージプロセッサアレイを提供する装置、システム、および方法に関する。
本開示のいくつかの実施形態は、固体装置システムを含んでいる。固体装置システムは二次元配列として配置された複数の記憶処理ユニットを含み、複数の記憶処理ユニットの各々は計算ユニットおよび不揮発性メモリモジュールを含んでいる。固体装置システムはまた、複数のユニットネットワークモジュールを含む相互接続ネットワークを含み、当該相互接続ネットワークは複数の記憶処理ユニット間のデータ通信を提供すべく構成されている。複数の記憶処理ユニットは、記憶処理ユニットの複数のサブアレイにグループ化され、複数のサブアレイのうち第1のサブアレイ内の記憶処理ユニットが複数のユニットネットワークモジュールのうち第1のものを用いて互いに結合されている。
いくつかの実施形態において、複数のサブアレイのうち第2のサブアレイ内の記憶処理ユニットは、複数のユニットネットワークモジュールのうち第2のものを用いて互いに結合されている。
いくつかの実施形態において、第1のサブアレイおよび第2のサブアレイを含む複数のサブアレイは、複数のユニットネットワークモジュールのうち第3のものを用いて互いに結合されていることにより、記憶処理ユニットの階層的相互接続を形成する。
いくつかの実施形態において、ユニットネットワークモジュールの各々は、第1の種類の相互接続トポロジを有している。
いくつかの実施形態において、第1の種類の相互接続トポロジは、変更されたリングネットワークトポロジを含んでいる。
いくつかの実施形態において、第1の種類の相互接続トポロジは、変更されたリングネットワークトポロジを含んでいる。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち第1のものは第1の種類の相互接続トポロジを有し、複数のユニットネットワークモジュールのうち第2のものは第2の種類の相互接続トポロジを有している。
いくつかの実施形態において、第1のサブアレイは第2のサブアレイから対角方向に配置され、複数のユニットネットワークモジュールのうち第3のものは、第1のサブアレイと第2のサブアレイを直接接続すべく構成された対角相互接続部を含んでいる。
いくつかの実施形態において、対角相互接続部は、第1のサブアレイの通信ハブと第2のサブアレイの通信ハブを直接接続すべく構成されている。
いくつかの実施形態において、複数の記憶処理ユニットは印刷回路基板上に配置されていて、相互接続ネットワークは印刷回路基板上に電気導体を含んでいる。
いくつかの実施形態において、固体装置システムは更に、相互接続ネットワークを介して複数の記憶処理ユニット間のデータ転送をスケジューリングすべく構成されたメモリコントローラを含んでいる。
いくつかの実施形態において、メモリコントローラは更に、二次元行列に対応する複数のブロックを複数のサブアレイにロードし、当該複数のサブアレイを起動して転置演算を局所的に実行させて複数の転置ブロックを計算し、当該複数のサブアレイのうち2個を起動して相互接続ネットワークを介して当該2個のサブアレイに格納された転置ブロックを入れ替えさせる。
いくつかの実施形態において、メモリコントローラは、当該2個のサブアレイが転置ブロックを入れ替える相互接続ネットワーク上の経路を決定すべく構成されている。
いくつかの実施形態において、複数の記憶処理ユニット内の計算ユニットは科学計算を実行すべく構成されている。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち1個が、第1種L字対角ユニットネットワークモジュールを含んでいる。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち1個が、第2種L字対角ユニットネットワークモジュールを含んでいる。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち1個が、第3種L字対角ユニットネットワークモジュールを含んでいる。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち1個が、第4種L字対角ユニットネットワークモジュールを含んでいる。
いくつかの実施形態において、複数のユニットネットワークモジュールのうち1個が、フルメッシュユニットネットワークモジュールを含んでいる。
本開示のいくつかの実施形態はシステムを含んでいる。本システムは、いくつかの実施形態による固体装置システム、および当該固体装置システムとデータ通信状態にあるホスト装置を含んでいてよく、当該ホスト装置は、複数の記憶処理ユニット内の計算ユニットにより処理されるデータを固体装置システムに送信すべく構成されている。
開示する主題の各種の目的、特徴、および利点は、開示する主題の以下の詳細説明を添付図面(同一参照番号は同一要素を指している)と合わせて参照することにより理解が深まろう。添付図面は模式的であって、一定比率での描画を意図していない。各図において見やすさのため必ずしも全ての構成要素にラベル付けしていない。また、当業者に開示する主題を理解させるための説明が必要でない場合、必ずしも開示する主題の各実施形態の全ての構成要素を図示していない。
いくつかの実施形態による、ホストシステムおよび記憶システムを有する例示的なコンピュータシステムを示す。 いくつかの実施形態による、複数の記憶処理ユニットの二次元配列を示す。 いくつかの実施形態による、ユニットネットワークモジュールのリングトポロジを示す。 いくつかの実施形態による、ユニットネットワークモジュールの変更されたリングトポロジを示す。 いくつかの実施形態による、行列転置演算に結線を追加する利点を示す。 いくつかの実施形態による、行列転置演算に結線を追加する利点を示す。 いくつかの実施形態による、ユニットネットワークモジュールのフルメッシュトポロジを示す。 いくつかの実施形態による、ユニットネットワークモジュールの4個のL字対角トポロジを示す。 いくつかの実施形態による、ユニットネットワークモジュールの4個のL字対角トポロジを示す。 いくつかの実施形態による、ユニットネットワークモジュールの4個のL字対角トポロジを示す。 いくつかの実施形態による、ユニットネットワークモジュールの4個のL字対角トポロジを示す。 いくつかの実施形態による、記憶処理ユニットの複数のサブアレイを示す。 いくつかの実施形態による、記憶処理ユニットの複数のサブアレイを示す。 いくつかの実施形態による、記憶処理ユニットの階層的変更後リングネットワークを示す。 いくつかの実施形態による、記憶処理ユニットの階層的メッシュネットワークを示す。 いくつかの実施形態による、記憶処理ユニットの階層的ネットワークを示す。 いくつかの実施形態による、記憶処理ユニットのアレイを用いるブロック転置演算を示す。 特定の入力行列に対する図13のブロック転置演算を示す。 特定の入力行列に対する図13のブロック転置演算を示す。 特定の入力行列に対する図13のブロック転置演算を示す。 いくつかの実施形態による、記憶処理ユニットの階層的ネットワークを示す。
以下の説明において、開示する主題が完全に理解されるよう、開示する主題のシステムおよび方法並びにそのようなシステムおよび方法が動作可能な環境等に関する多数の具体的な詳細事項を記述している。しかし、当業者には、そのような具体的な詳細事項が無くても開示する主題が実施可能であること、および開示する主題が煩雑になるのを避けるため当分野で公知である特定の特徴については詳述しないことは明らかであろう。また、以下に挙げる例は例示的であって、開示する主題の範囲に含まれる他のシステムおよび方法も存在し得るものと理解されたい。
従来の計算および記憶モデルにおいて、コンピュータシステムはホストシステムおよび記憶システムを含んでいる。当該モデルにおいて、ホストシステムは計算を実行すべく設計され、記憶システムはホストシステムにより処理された情報を格納すべく設計されている。いくつかの場合において、ホストシステムは記憶システムの記憶動作を調整可能であるが、ホストシステムの処理能力は多くの場合、記憶システムとは別個である。
特定の計算動作をホストシステムから記憶システムに移管するのが望ましい場合がある。例えば、データ集中的アプリケーションでは、データ集中的な計算を記憶システム内で局所的に実行できるように、記憶システムの計算能力を増大させることが望ましい場合がある。このように、ホストシステムに対する計算負荷が軽減し、システム全体としての入出力(I/O)負荷もまた軽減できる。
システム全体としての入出力(I/O)負荷は軽減可能であるが、依然としてデータ通信に対する顕著なニーズが存在し得る。往々にして、記憶システムは複数の記憶処理ユニットを含んでいてよく、記憶処理ユニットはホストシステムから移管された特定の計算を完了すべく互いに通信することが必要になり得る。このような通信は、ホストシステム、または例えば周辺機器相互接続エクスプレス(PCIe)バスのようなピアツーピア通信バスを通じて実行される。残念ながら、いずれの方式も、ホストシステムおよび/またはピアツーピア通信バスの飽和が急激に生じてしまう。ピアツーピア通信バス上でのデータ通信は、ピアツーピア通信バスの帯域幅に制約があるため特に非実用的である。
本開示のいくつかの実施形態は、記憶システム内の記憶処理ユニット間のデータ通信に対処するものである。特に、開示する実施形態は、記憶処理ユニット間のデータ通信を提供すべく構成された相互接続ネットワークを含んでいる。開示する相互接続ネットワークは、記憶処理ユニットが科学計算を局所的に実行すべく構成されている場合に特に効果的である。開示する相互接続ネットワークは、ホストシステムに過大な負荷をかけることなく、局所化され、スループットが高く、且つ待ち時間が短い記憶処理ユニット間のデータ通信を提供する。
高位レベルでは、開示する相互接続ネットワークにより、記憶処理ユニットがホストシステム等の仲介装置を介さずに互いに通信可能になる。記憶処理ユニットが記憶システム内で局所的に互いに通信可能であるため、記憶処理ユニット間の通信を高いスループットおよび/または短い待ち時間で実現できる。
いくつかの実施形態において、開示する相互接続ネットワークは、複数の記憶処理ユニットを、限られた個数の相互接続部により接続することができる。例えば、メモリシステムが2×2行列に配置された4個の記憶処理ユニットを含む場合、開示する相互接続ネットワークは、記憶処理ユニットのうち1個が通信ハブとして動作することにより、記憶処理ユニット間での通信を集中化するように構成されていてよい。
いくつかの実施形態において、相互接続ネットワークは、複数のユニットネットワークモジュールを含んでいてよい。各ユニットネットワークモジュールは、記憶処理ユニットのサブセットを相互接続すべく構成することができる。いくつかの場合において、記憶処理ユニットのサブセットは、互いに階層的に結合可能であることにより、ユニットネットワークモジュールの階層的接続を形成する。
図1に、いくつかの実施形態による、ホストシステムおよび記憶システムを有する例示的なコンピュータシステムを示す。コンピュータシステム100は、ホストシステム102および記憶システム104を含んでいてよく、記憶システム104は、メモリコントローラ106、複数の記憶処理ユニット108a〜108d、および当該複数の記憶処理ユニット108a〜108d間の相互接続ネットワーク114を含んでいる。
ホストシステム102は、データ読み出しおよびデータ書き込み動作のために記憶システム104を使用およびアクセスするコンピュータシステムを含んでいてよい。そのようなホストシステム102は、データベース、ファイルシステム、およびウェブサービス等のアプリケーションを実行することができる。ホストシステム102は、ホストCPU、ホストメモリ装置、および記憶処理ユニットアプリケーションプログラミングインターフェース(API)、および/または装置ドライバを含んでいてよい。いくつかの実施形態において、ホストシステム102は、記憶システム104と物理的に同じ箇所に(例えば、物理的に近接して)配置されていてよい。このような実施形態において、ホストシステム102は、バスを介して記憶システム104と通信すべく構成されていてよい。バスは、例えばPCI、PCIエクスプレス、PCI−X、InfiniBand、HyperTransport、SCSI PCI−Eカード、SATAPCI−Eカード、iSCSIアダプタカード、およびファイバーチャネルPCI−Eカードを含んでいてよい。いくつかの実施形態において、ホストシステム102は、記憶システム104から物理的に分離されていてよい。このような実施形態において、ホストシステム102は、通信ネットワークを介して記憶システム104と通信することができる。ネットワークは、インターネット、ローカルエリアネットワーク(LAN)、パケットデータネットワーク、レガシーネットワーク、またはホストシステム102と記憶システム104の間のデータ通信を提供する任意の種類のネットワークを含んでいてよい。
いくつかの実施形態において、メモリコントローラ106はハードウェアに実装することができる。ハードウェアは、目標メモリブロックを選択すると共に、新規データを受容すべく、選択された目標メモリブロックからデータを削除するための論理回路および/またはメモリを含んでいる。いくつかの実施形態において、メモリコントローラ106用のハードウェアは、Verilog、VHSICハードウェア記述言語(VHDL)、およびBlueSpec(商標)(Bluespec Inc.,Framingham,Massachusetts)を含むハードウェア記述言語を用いて実装可能であり、Design Compiler(登録商標)(Synopsis Inc.,Mountain View,California)、Encounter RTLコンパイラ(Cadence Design Systems,Inc.,San Jose,California)、RealTime Designer(Oasys Design Systems,Inc.,Santa Clara,California)、およびBooleDozer(International Business Machine,Endicott,New York)を含む論理合成ツールを用いて合成される。
いくつかの実施形態において、メモリコントローラ106は、ファームウェアの一部として実装することができる。ファームウェアは、劣化数テーブルおよび劣化数マップを保持するメモリ空間を割り当てることができ、更にガーベージコレクション動作用のメモリブロックを識別すべく動作可能な命令を含んでいてよい。
いくつかの実施形態において、メモリコントローラ106は、非一時的コンピュータ可読媒体、プログラム可能読出し専用メモリ(PROM)、またはフラッシュメモリ等のメモリを用いてソフトウェアに実装することができる。ソフトウェアは、メモリコントローラ106に常駐するプロセッサ上で実行することができる。プロセッサは、メモリコントローラ106に実装された非一時的コンピュータ可読媒体に実装可能な命令またはコンピュータコードを実行すべく構成されていてよい。
いくつかの実施形態において、各記憶処理ユニット108は、データを保持する不揮発性メモリ(NVM)記憶ユニット110および計算用のアクセラレータ112を含んでいてよい。
いくつかの実施形態において、NVM記憶ユニット110は、データを保持する複数のメモリブロックを含んでいてよい。各々のメモリブロックは、固定されたサイズを有していてよい。例えば、1個のメモリブロックの長さは128KBであってよい。各メモリブロックは複数のページに分割されていてよい。メモリブロック内の各ページは固定されたサイズを有していてよい。例えば、1ページの長さは4KBであってよい。
いくつかの実施形態において、アクセラレータ112は、科学計算等の特定の演算を実行すべく構成されていてよい。例えば、アクセラレータ112は、高速フーリエ変換、キー値の保存、検索やソート、および/または行列計算を実行すべく構成されていてよい。
いくつかの実施形態において、アクセラレータ112は、ハードウェアに実装することができる。アクセラレータ112用のハードウェアは、Verilog、VHSICハードウェア記述言語(VHDL)、およびBlueSpec(商標)(Bluespec Inc.,Framingham,Massachusetts)を含むハードウェア記述言語を用いて実装可能であり、Design Compiler(登録商標)(Synopsis Inc.,Mountain View,California)、Encounter RTLコンパイラ(Cadence Design Systems,Inc.,San Jose,California)、RealTime Designer(Oasys Design Systems,Inc.,Santa Clara,California)、およびBooleDozer(International Business Machine,Endicott,New York)を含む論理合成ツールを用いて合成される。
いくつかの実施形態において、相互接続ネットワーク114は、複数の記憶処理ユニット108間の通信を可能にすべく構成されていてよい。相互接続ネットワーク114は、データを送受信すべくハードウェアに実装することができる。相互接続ネットワーク114は、光媒体、電気媒体、磁気媒体等の各種媒体、および/または複数の記憶処理ユニット108間の通信を可能にする他の任意の種類の媒体のうち1個以上で通信を可能にすべく構成されていてよい。相互接続ネットワーク114は、多くの通信プロトコルでの通信を可能にすべく構成されていてよい。いくつかの実施形態において、相互接続ネットワーク114は、PCIインターフェース、PCIeインターフェース、シリアルAT接続(SATA)インターフェース、および/またはシリアル接続SCSI(SAS)インターフェースを含んでいてよい。
いくつかの実施形態において、複数の記憶処理ユニット108は、二次元配列として配置されていてよい。図2に、いくつかの実施形態による、複数の記憶処理ユニットの二次元配置を示す。複数の記憶処理ユニットは、行列配置とも称する二次元配列として配置される。同図では16個の記憶処理ユニットがある。従って、記憶処理ユニットは4×4行列として配置することができる。いくつかの実施形態において、記憶処理ユニットは印刷回路基板(PCB)等の回路基板上に配置可能であり、相互接続ネットワーク114は回路基板上に電気導体を含んでいてよい。
いくつかの実施形態において、1個以上の記憶処理ユニット108を、二次元添え字を用いて示すことできる。例えば、左上の記憶処理ユニットをSPU0,0、右下の記憶処理ユニットをSPU3,3、第i行第j列の記憶処理ユニットをSPUi,jで示すことができる。
いくつかの実施形態において、ソース記憶処理ユニットとも称する複数の記憶処理ユニット108のうち1個が、相互接続ネットワーク114を介して宛先記憶処理ユニットにデータを送信することができる。相互接続ネットワーク114がソース記憶処理ユニットを宛先記憶処理ユニットに直接結合している場合、ソース記憶処理ユニットは相互接続ネットワーク114を介して宛先記憶処理ユニットにデータを直接送信することができる。相互接続ネットワーク114がソース記憶処理ユニットを宛先記憶処理ユニットに直接結合していない場合、ソース記憶処理ユニットは各種のデータルーティング技術を用いて宛先記憶処理ユニットにデータを送信することができる。例えば、ソース記憶処理ユニットは、相互接続ネットワーク114内の最短距離で宛先記憶処理ユニットにデータを送信することができる。いくつかの実施形態において、メモリコントローラ106は、相互接続ネットワーク114内でのデータのルーティングを集中的にスケジューリングすることができる。他の複数の実施形態において、複数の記憶処理ユニットは、相互接続ネットワーク114内でのデータのルーティングを分散的にスケジューリングすることができる。
いくつかの実施形態において、相互接続ネットワーク114は複数のユニットネットワークモジュールを含んでいてよい。各ユニットネットワークモジュールは、二次元配列内の記憶処理ユニットのサブセットを接続すべく構成されていてよい。例えば、ユニットネットワークモジュールは、二次元配列として配置された記憶処理ユニットのサブセット(例:SPU0,0、SPU0,1、SPU1,0、SPU1,1)を結合すべく構成されていてよい。二次元配列として配置された記憶処理ユニットのサブセットは、記憶処理ユニットのサブアレイとも称することがある。
いくつかの実施形態において、ユニットネットワークモジュールは、複数の接続トポロジのいずれか一つに配置されたインターフェース接続を含んでいてよい。ユニットネットワークモジュールに関連付けられた接続トポロジは、ユニットネットワークモジュールの種類を決定することができる。複数の接続トポロジは、例えば、リングトポロジ、変更されたリングトポロジ、フルメッシュトポロジ、第1種L字対角トポロジ、第2種L字対角トポロジ、第3種L字対角トポロジ、および第4種L字対角トポロジを含んでいてよい。これらのトポロジを、いくつかの実施形態に従い図3、4、6、7に示す。
いくつかの実施形態において、記憶処理ユニットのサブアレイは、記憶処理ユニットの他のサブアレイに階層的に接続されていてよい。例えば、図2において、16個の記憶処理ユニットは、記憶処理ユニットの4個のサブアレイにグループ化できる。第1のサブアレイはSPU0,0、SPU0,1、SPU1,0、SPU1,1を含み、第2のサブアレイはSPU0,2、SPU0,3、SPU1,2、SPU1,3を含み、第3のサブアレイはSPU2,0、SPU2,1、SPU3,0、SPU3,1を含み、第4のサブアレイはSPU2,2、SPU2,3、SPU3,2、SPU3,3を含んでいる。これらの記憶処理ユニットのサブアレイは、上述の相互接続トポロジのうち1個を用いて、互いに結合されていてよいため、記憶処理ユニット間の階層的結合を提供する。いくつかの実施形態において、記憶処理ユニットの各サブアレイは、同じ種類のユニットネットワークモジュールを用いることができる。他の複数の実施形態において、記憶処理ユニットの少なくとも1個のサブアレイは異なる種類のユニットネットワークモジュールを用いる。
図3に、いくつかの実施形態による、ユニットネットワークモジュールのリングトポロジを示す。図3は、二次元配列として配置された4個の記憶処理ユニット302〜308を示している。ユニットネットワークモジュールは、4本の結線310〜316を含んでいる。図3に示すユニットネットワークモジュールは、当該ユニットネットワークモジュールが記憶処理ユニットを環状に接続するため、リングトポロジを有すると言われている。ユニットネットワークモジュールの各結線は、結線により接続された2個の記憶処理ユニット(SPU)の間が直接接続されていることを示す。例えば、SPU A302およびSPU B304は、相互接続結線310を介して互いに直接接続されている。2個のSPUが直接接続されている場合、当該2個のSPUは、当該2個のSPUを接続する相互接続結線を介してデータを直接互いに送信することができる。例えば、SPU A302およびSPU B304は、相互接続結線310を介してデータを直接互いに送信することができる。2個のSPUが直接接続されていない場合、2個のSPUは別のSPUを介してデータを互いに送信することができる。例えば、SPU A302はSPU C306またはSPU B304のいずれかを介してSPU D308にデータを送信することができる。
図4に、いくつかの実施形態による、ユニットネットワークモジュールの変更されたリングトポロジを示す。変更されたリングトポロジは、図3に示すリングトポロジと同様であるが、変更されたリングトポロジは追加的な対角結線402を有している。
この追加的な結線402により、SPU B304とSPU C306の間のデータ通信が容易になるため、特定の種類の科学計算に有用であろう。例えば、追加的な結線402は、行列転置演算にとって有益であり得る。図5A〜5Bに、いくつかの実施形態による、行列転置演算の追加的な結線402の利点を示す。図5Aは2×2の行列
Figure 2017117439
を示し、図5Bは当該行列の転置
Figure 2017117439
を示す。行列Pの値が別々のSPUに格納されている(例:SPU0,0に1が格納され、SPU0,1に2が格納され、SPU1,0に5が格納され、SPU1,1に6が格納されている)場合、転置演算はSPU0,1とSPU1,0に格納された値を入れ替えることにより値2と5の位置を再配置する筈である。この場合、変更されたリングトポロジを有するユニットネットワークモジュールを用いてSPU0,0、SPU0,1、SPU1,0、SPU1,1が相互接続されていれば、SPU0,1とSPU1,0は、結線402を介して互いにデータを直接送信することにより値を交換することができる。これは、変更されたリングトポロジを有するユニットネットワークモジュールが行列転置演算に有用であり得ることを示す。
図6は、いくつかの実施形態による、ユニットネットワークモジュールのフルメッシュトポロジを示す。フルメッシュトポロジは、図4に示す変更されたリングトポロジに極めて類似しているが、フルメッシュトポロジは追加的な対角結線602を有している。当該追加的な結線602により、SPU A302とSPU D308の間のデータ通信が容易になるため、特定の種類の科学演算に有用であろう。追加的な結線602は、回路基板上で追加的な領域を占有するが、SPUアレイはSPU A302とSPU D308の間で高速データ転送を行う追加的な柔軟性を有しているため、SPUアレイの処理能力と適用性を向上させることができる。フルメッシュトポロジを有するユニットネットワークモジュールは、高速フーリエ変換(FFT)、キー値の保存、検索やソート、および/または行列計算に特に有用であろう。
関心対象である特定のアプリケーションに応じて、ユニットネットワークモジュールの異なるトポロジも同様に有用になり得る。図7A〜7Dに、いくつかの実施形態による、ユニットネットワークモジュールの4個のL字対角トポロジを示す。図7Aに示すトポロジを第1種L字対角トポロジと称し、図7Bに示すトポロジを第2種L字対角トポロジと称し、図7Cに示すトポロジを第3種L字対角トポロジと称し、図7Dに示すトポロジを第4種L字対角トポロジと称する。
L字対角トポロジは、一般に、L字状を形成すべく対角結線、およびリムの回りに2本の結線を含んでいる。例えば、図7Aに示す第1種L字対角トポロジは逆対角結線602と、SPU A302に結合された2本の結線310、312とを含んでいる。このように、SPU A302は4個のSPU間の通信ハブとしての役割を果たすことができる。別の例として、図7Bに示す第2種L字対角トポロジは対角結線402と、SPU B304に結合された2本の結線310、316とを含んでいる。このように、SPU B304は4個のSPU間の通信ハブとしての役割を果たすことができる。別の例として、図7Cに示す第3種L字対角トポロジは対角結線402と、SPU C306に結合された2本の結線312、314とを含んでいる。このように、SPU C306は、4個のSPU間の通信ハブとしての役割を果たすことができる。別の例として、図7Dに示す第4種L字対角トポロジは、逆対角結線602と、SPU D308に結合された2本の結線314、316とを含んでいる。このように、SPU D308は、4個の記憶処理ユニット間に通信ハブとしての役割を果たすことができる。
メモリシステムが多数の記憶処理ユニットを有している場合、上述のトポロジを用いて記憶処理ユニットを接続するのは複雑且つ高価であり得る。更に、上述のトポロジのいくつかは、記憶処理ユニットのより大きい二次元配列には容易に拡張できない。例えば、記憶処理ユニットの4×4アレイの中央の4個の記憶処理ユニットは他の記憶処理ユニットと相互接続されていないため、リングトポロジは記憶処理ユニットの4×4アレイには容易に拡張できない。
上述の問題は、ユニットネットワークモジュールを階層的に用いて記憶処理ユニットを接続することにより対処することができる。
いくつかの実施形態において、記憶処理ユニットの二次元配列は、記憶処理ユニットの複数のサブアレイに分割でき、同一サブアレイ内の記憶処理ユニットはユニットネットワークモジュールを用いて互いに結合することができる。図8に、いくつかの実施形態による、記憶処理ユニットの複数のサブアレイを示す。各サブアレイ802〜808を破線枠で示しており、各サブアレイ802〜808は4個の記憶処理ユニットを有している。サブアレイ内の記憶処理ユニットは、図7Aに示す第1種L字対角トポロジを用いて互いに結合されている。
いくつかの実施形態において、各サブアレイは、同一種類のユニットネットワークモジュールを用いることができる。例えば、図8において各サブアレイは、同一種類のユニットネットワークモジュール、すなわち図7Aに示す第1種L字対角トポロジを用いる。
他の複数の実施形態において、1個以上のサブアレイは、ユニットネットワークモジュールの異なる種類を用いることができる。図9に、いくつかの実施形態による、記憶処理ユニットの複数のサブアレイを示す。図9において、1個以上のサブアレイ902〜908は異なる種類のユニットネットワークモジュールを用いる。例えば、左上のサブアレイ902は、変更されたリングトポロジを有するユニットネットワークモジュールを用い、右下のサブアレイ908は第2種L字対角トポロジを有するユニットネットワークモジュールを用いる。このように、第1のサブアレイを第1のアプリケーション(例:FFT計算)に、第2のサブアレイを第2のアプリケーション(例:行列転置演算)に用いる場合、第1のサブアレイと第2のサブアレイ用のユニットネットワークモジュールは、各々のアプリケーションのパフォーマンスを向上させるべく独立に構成されていてよい。
いくつかの実施形態において、当該複数のサブアレイは、上で開示したトポロジの1個以上を用いて互いに接続されることにより、記憶処理ユニットの階層的相互接続ネットワークを形成することができる。図10に、いくつかの実施形態による、記憶処理ユニットの階層的変更後リングネットワークを示す。図10において、各サブアレイ1002〜1008は、変更されたリングトポロジを有するユニットネットワークモジュールを用いる。サブアレイ1002〜1008は次いで、破線枠を接続している太矢印で示すように、同一の変更されたリングトポロジを用いて互いに接続されている。このように、SPUの階層的変更後リングネットワークを形成することができる。記憶処理ユニットの当該階層的変更後リングネットワークは、階層的に接続された4個のユニット変更後リングネットワーク相互接続部があるため、階層的変更後リングネットワーク(HMRN)−4と称することがある。
いくつかの実施形態において、記憶処理ユニットのサブアレイを跨るインターフェースのルーティングは、SPUで利用可能なバッファメモリの量に基づいて決定することができる。例えば、インターフェース1010は、第1のサブアレイ1002と第2のサブアレイ1004の間の直接通信を可能にする。図10に、インターフェース1010が第1のサブアレイ1002のSPU0,1および第2のサブアレイ1004のSPU0,2に接続されている様子を示す。しかし、いくつかの実施形態において、インターフェース1010は、SPU0,1、SPU0,2、SPU1,1およびSPU1,2で利用可能なバッファメモリの量に応じて第1のサブアレイ1002のSPU1,1および/または第2のサブアレイ1002のSPU1,2に接続可能である。例えば、SPU1,1がSPU0,1に比べてより多くのバッファメモリを利用できる場合、インターフェース1010はSPU1,1に接続可能である。同様に、SPU1,2がSPU0,2に比べてより多くのバッファメモリを利用できる場合、インターフェース1010はSPU1,2に接続可能である。従って、第1のサブアレイ1002と第2のサブアレイ1004の間でインターフェース1010を提供する4通りの異なる仕方がある。これは、第2のサブアレイ1004と第3のサブアレイ1006の間、第3のサブアレイ1006と第4のサブアレイ1008の間、および第4のサブアレイ1008と第1のサブアレイ1002の間のインターフェースについても同様である。
いくつかの場合において、階層的相互接続ネットワークを再帰的に形成することができる。例えば、4個のHMRN−4を用いて、当該4個のHMRN−4がユニット変更後リングネットワーク相互接続を用いて接続されているHMRN−16を構築することができる。同様に、4個のHMRN−16を用いて、4個のHMRN−16がユニット変更後リングネットワーク相互接続を用いて接続されているHMRN−64を構築することができる。一般化すれば、4個のHMRN−N/4を用いて、当該4個のHMRN−N/4が装置変更されたリングネットワーク相互接続を用いて接続されているHMRN−Nを構築することができる。
図11に、いくつかの実施形態による、記憶処理ユニットの階層的メッシュネットワークを示す。図11において、各サブアレイ1102〜1108は、フルメッシュトポロジを有するユニットネットワークモジュールを用いる。サブアレイ1102〜1108は次いで、破線枠を接続している太矢印で示すように、同一フルメッシュトポロジを用いて互いに接続されている。このように、記憶処理ユニットの階層的フルメッシュネットワークを形成することができる。図11に示すフルメッシュネットワークは、階層的フルメッシュネットワーク(HFMN)−4と称することがある。
いくつかの実施形態において、記憶処理ユニットのサブアレイを跨るインターフェースのルーティングは、SPUで利用可能なバッファメモリの量に基づいて決定することができる。例えば、インターフェース1110は、第1のサブアレイ1102と第2のサブアレイ1104の間の直接通信を可能にする。図11に、インターフェース1110が第1のサブアレイ1102のSPU0,1および第2のサブアレイ1104のSPU0,2に接続されている様子を示す。しかし、いくつかの実施形態において、インターフェース1110は、SPU0,1、SPU0,2、SPU1,1およびSPU1,2で利用可能なバッファメモリの量に応じて第1のサブアレイ1102のSPU1,1および/または第2のサブアレイ1102のSPU1,2に接続可能である。例えば、SPU1,1がSPU0,1に比べてより多くのバッファメモリを利用できる場合、インターフェース1110はSPU1,1に接続可能である。同様に、SPU1,2がSPU0,2に比べてより多くのバッファメモリを利用できる場合、インターフェース1110はSPU1,2に接続可能である。従って、第1のサブアレイ1102と第2のサブアレイ1104の間でインターフェース1110を提供する4通りの異なる仕方がある。これは、第2のサブアレイ1104と第3のサブアレイ1106の間、第3のサブアレイ1106と第4のサブアレイ1108の間、および第4のサブアレイ1108と第1のサブアレイ1102の間のインターフェースについても同様である。
いくつかの場合において、階層的フルメッシュネットワークを再帰的に形成することができる。例えば、4個のHFMN−4を用いて、当該4個のHFMN−4がユニットフルメッシュネットワーク相互接続を用いて接続されているHFMN−16を構築することができる。同様に、4個のHFMN−16を用いて、当該4個のHFMN−16が装置フルメッシュネットワーク相互接続を用いて接続されているHFMN−64を構築することができる。一般化すれば、4個のHFMN−N/4を用いて、当該4個のHFMN−N/4が装置フルメッシュネットワーク相互接続を用いて接続されているHFMN−Nを構築することができる。
いくつかの実施形態において、記憶処理ユニットの階層的相互接続ネットワークは、2種類以上のユニットネットワークモジュールを用いることができる。記憶処理ユニットの第1のサブアレイがインターフェースを介して記憶処理ユニットの第2のサブアレイに接続されている場合、インターフェースは第1のサブアレイの通信ハブと第2のサブアレイの通信ハブを接続することができる。例えば、第1のサブアレイが第1種L字対角ユニットネットワークモジュールを含み(図7Aに示すように)、且つ第1のサブアレイが第2種L字対角ユニットネットワークモジュールを含む(図7Bに示すように)場合、第1のサブアレイと第2のサブアレイを接続するインターフェースは、第1のサブアレイのSPU A302と第2のサブアレイのSPU B304を接続することができる。
いくつかの実施形態において、階層的相互接続ネットワークで用いられるユニットネットワークモジュールの種類は、特定のアプリケーションに依存し得る。例えば、行列ブロック転置演算を考える。行列Xが次式のようにブロック行列A、B、CおよびDを含むと仮定する。
Figure 2017117439
次いで、Xと表記するXの転置は次式のように計算可能である。
Figure 2017117439
これは、AおよびDが同一位置に留まるが、BおよびCの位置が入れ替わっていることを示す。
行列ブロック転置演算のこの特徴は、記憶処理ユニットのアレイにより利用可能である。図12に、いくつかの実施形態による、記憶処理ユニットの階層的ネットワークを示す。図12のネットワークは、3種類のユニットネットワークモジュール、すなわち第1種L字対角トポロジ、第2種L字対角トポロジ、および第3種L対角トポロジを使用するが、太矢印で示すように、これらのユニットネットワークモジュールのうち2個だけが単一の対角接続1210を用いて接続される。
いくつかの実施形態において、図12に示す記憶処理ユニットのアレイは、サイズが4×4より大きい行列の行列ブロック転置演算を実行するのに有用であり得る。図13に、いくつかの実施形態による、記憶処理ユニットのアレイを用いるブロック転置演算1300を示す。
ステップ1302において、メモリコントローラ106は記憶処理ユニットに入力行列Xをロードすることができる。入力行列Xが4×4であって、4個の2×2行列に分割されるものと仮定する。各々の2×2行列は、サブアレイ1202、1204、1206、1208のいずれか1個にロードされる。サブアレイ1202に対応する2×2行列をAと表記し、サブアレイ1204に対応する2×2行列をBと表記し、サブアレイ1206に対応する2×2行列をCと表記し、サブアレイ1208に対応する2×2行列をDと表記する場合がある。入力行列X、および当該入力行列Xが記憶処理ユニットのアレイにロードされる構成の例を図14Aに示す。
ステップ1304において、各々のサブアレイは、各々の記憶処理ユニット内のユニットネットワークモジュールおよび/またはアクセラレータを用いて転置演算を局所的に実行することができる。この局所的ブロック単位転置演算の後で、サブアレイ1202に対応する2×2行列はAを保持し、サブアレイ1204に対応する2×2行列はBを保持し、サブアレイ1206に対応する2×2行列はCを保持して、サブアレイ1204に対応する2×2行列はDを保持することができる。局所的ブロック単位転置演算の結果を図14Bに示す。図14Bの太数字は、局所的ブロック単位転置演算により位置が入れ替わった行列Xの要素を示す。
ステップ1306において、サブアレイ1204およびサブアレイ1206は、転置されたブロック行列BとCを入れ替えて行列転置演算を完了することができる。SPU1,2およびSPU2,1が各々サブアレイ1204およびサブアレイ1206のハブを形成するため、サブアレイ1204およびサブアレイ1206との対角結合1210により、サブアレイ1204とサブアレイ1206の間でデータを効率的に転送することができる。ステップ1306の後、SPUのアレイは入力行列Xの転置を保持することができる。
Figure 2017117439
図14Bに示すデータに対するステップ1306の結果を図14Cに示す。図14Cの太数字は、ステップ1306で位置が入れ替わった行列Xの要素を示す。
いくつかの実施形態において、図13に示す演算が反復的に実行されて、より大きい行列、例えば8×8行列、16×16行列、およびサイズが2×2(Nは整数)である任意の行列の転置演算を実行することができる。
図15に、いくつかの実施形態による、記憶処理ユニットの階層的ネットワークを示す。図15のネットワークは、3種類のユニットネットワークモジュール、すなわち第1種L字対角トポロジ、第2種L字対角トポロジ、および第3種L対角トポロジを使用し、これらのユニットネットワークモジュールは、太矢印で示すように、フルメッシュトポロジを用いて接続されている。図15の記憶処理ユニットのアレイはまた、図13に示す処理に従い行列ブロック転置演算を実行すべく用いることができる。
本明細書において2個以上の特定のステップを含む方法に言及しているが、当該特定ステップは任意の順序で、または同時に実行可能であり(文脈から別途指示される場合を除く)、且つ本方法は、当該特定ステップの前に、当該特定ステップのうち2個の間に、または当該特定ステップの全ての後で(文脈から別途指示される場合を除く)実行される1個以上の他のステップを含んでいてよい。
当業者には、本明細書に記述する各種の実施例が電子ハードウェア、コンピュータソフトウェア、ファームウェア、または電子ハードウェア、コンピュータソフトウェア、およびファームウェアのうち2個以上の組合せとして実装できることが理解されよう。ハードウェア、ソフトウェア、および/またはファームウェアのこのような代替可能性を示すために、各種の例示的なブロック、モジュール、素子、要素、方法、およびアルゴリズムについて機能の観点から上で一般的に述べてきた。このような機能がハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せとして実装されるか否かは、システム全体に課される特定のアプリケーションおよび設計の制約に依存する。当業者であれば、特定のアプリケーション毎に上述の機能を様々な仕方で実装することができる。各種の要素およびブロックは全て、主題技術の範囲から逸脱することなく異なる仕方で(例えば、異なる順序で配置、または異なる仕方で区分されて)配置することができる。開示する主題の実装は、1個のコンピュータシステムで集中的に、または異なる要素が互いに接続された複数のコンピュータシステムを跨って分散的に実現することができる。本明細書に記述する方法を実行すべく適合された任意の種類のコンピュータシステム、または他の装置が、本明細書に記述する機能を実行するのに適している。
ハードウェアとソフトウェアの典型的な組合せとして、ロードおよび実行された場合に本明細書に記述する方法を実行すべくコンピュータシステムを制御するコンピュータプログラムを備えた汎用コンピュータシステムがあり得る。開示する主題はまた、本明細書に記述する方法およびシステムを実装可能にする全ての特徴を含むと共にコンピュータシステムにロードされた場合に当該方法を実行可能なコンピュータプログラム製品に埋め込まれていてよい。
本文脈におけるコンピュータプログラムまたはアプリケーションは、情報処理能力を有するシステムに、特定の機能を直接実行させるか、またはa)別の言語、符号または表記への変換、b)異なる媒体形式での再現、の一方または両方を実行した後で実行させることを目的とする命令の組の任意の言語、符号または表記による任意の表現を意味している。重要な点として、本明細書に記述するシステムおよび方法はまた、その趣旨または基本的属性から逸脱することなく、他の特定の形式で実施可能であり、従って、本システムおよび方法の範囲を示すものとして上述の明細書本文ではなく、以下の請求項を参照されたい。
本開示について、例示的な実施形態を具体的に参照しながら詳細に述べてきた。しかし、上述の明細書本文に記述しているように、本開示の範囲内で各種の修正および変更が可能であることは明らかであり、そのような修正および変更は等価物であって本開示の一部をなすものと考えられたい。
100 コンピュータシステム
102 ホストシステム
104 記憶システム
106 メモリコントローラ
108a〜108d 記憶処理ユニット
110 NVM記憶ユニット
112 アクセラレータ
114 相互接続ネットワーク
302〜308 記憶処理ユニット
310〜316 結線
402,602 対角結線
802〜808 サブアレイ
902〜908 サブアレイ
1002〜1008 サブアレイ
1010,1110 インターフェース
1202〜1208 サブアレイ
1210 対角結合
SPUi,j 記憶処理ユニット

Claims (20)

  1. 二次元配列として配置された複数の記憶処理ユニットの各々が計算ユニットおよび不揮発性メモリモジュールを含む複数の記憶処理ユニットと、
    複数のユニットネットワークモジュールを含み、且つ前記複数の記憶処理ユニット間のデータ通信を提供すべく構成された相互接続ネットワークとを含み、
    前記複数の記憶処理ユニットが、記憶処理ユニットの複数のサブアレイにグループ化され、
    前記複数のサブアレイのうち第1のサブアレイ内の記憶処理ユニットが前記複数のユニットネットワークモジュールのうち第1のものを用いて互いに結合されている固体装置システム。
  2. 前記複数のサブアレイのうち第2のサブアレイ内の記憶処理ユニットが、前記複数のユニットネットワークモジュールのうち第2のものを用いて互いに結合されている、請求項1に記載のシステム。
  3. 前記第1のサブアレイおよび前記第2のサブアレイを含む前記複数のサブアレイが、前記複数のユニットネットワークモジュールのうち第3のものを用いて互いに結合されていることにより、記憶処理ユニットの階層的相互接続を形成する、請求項2に記載のシステム。
  4. 前記ユニットネットワークモジュールの各々が、第1の種類の相互接続トポロジを有している、請求項3に記載のシステム。
  5. 前記第1の種類の相互接続トポロジが、変更されたリングネットワークトポロジを含んでいる、請求項4に記載のシステム。
  6. 前記第1の種類の相互接続トポロジが、変更されたリングネットワークトポロジを含んでいる、請求項4に記載のシステム。
  7. 前記複数のユニットネットワークモジュールのうち前記第1のものが第1の種類の相互接続トポロジを有し、前記複数のユニットネットワークモジュールのうち前記第2のものが第2の種類の相互接続トポロジを有している、請求項3に記載のシステム。
  8. 前記第1のサブアレイが前記第2のサブアレイから対角方向に配置され、前記複数のユニットネットワークモジュールのうち前記第3のものが、前記第1のサブアレイと前記第2のサブアレイを直接接続すべく構成された対角相互接続部を含んでいる、請求項3に記載のシステム。
  9. 前記対角相互接続部が、前記第1のサブアレイの通信ハブと前記第2のサブアレイの通信ハブを直接接続すべく構成されている、請求項8に記載のシステム。
  10. 前記複数の記憶処理ユニットが印刷回路基板上に配置されていて、前記相互接続ネットワークが前記刷回路基板上に電気導体を含んでいる、請求項1に記載のシステム。
  11. 前記相互接続ネットワークを介して前記複数の記憶処理ユニット間のデータ転送をスケジューリングすべく構成されたメモリコントローラを更に含んでいる、請求項1に記載のシステム。
  12. 前記メモリコントローラが更に、
    二次元行列に対応する複数のブロックを前記複数のサブアレイにロードし、
    前記複数のサブアレイを起動して転置演算を局所的に実行させて前記複数の転置ブロックを計算し、
    前記複数のサブアレイのうち2個を起動して前記相互接続ネットワークを介して前記2個のサブアレイに格納された転置ブロックを入れ替えさせるべく構成されている、請求項11に記載のシステム。
  13. 前記メモリコントローラが、前記2個のサブアレイが前記転置ブロックを入れ替える前記相互接続ネットワーク上の経路を決定すべく構成されている、請求項12に記載のシステム。
  14. 前記複数の記憶処理ユニット内の前記計算ユニットが科学計算を実行すべく構成されている、請求項1に記載のシステム。
  15. 前記複数のユニットネットワークモジュールのうち1個が、第1種L字対角ユニットネットワークモジュールを含んでいる、請求項1に記載のシステム。
  16. 前記複数のユニットネットワークモジュールのうち1個が、第2種L字対角ユニットネットワークモジュールを含んでいる、請求項1に記載のシステム。
  17. 前記複数のユニットネットワークモジュールのうち1個が、第3種L字対角ユニットネットワークモジュールを含んでいる、請求項1に記載のシステム。
  18. 前記複数のユニットネットワークモジュールのうち1個が、第4種L字対角ユニットネットワークモジュールを含んでいる、請求項1に記載のシステム。
  19. 前記複数のユニットネットワークモジュールのうち1個が、フルメッシュユニットネットワークモジュールを含んでいる、請求項1に記載のシステム。
  20. 請求項1に記載の前記固体装置システムと、
    前記固体装置システムとデータ通信状態にあるホスト装置とを含み、前記ホスト装置が、前記複数の記憶処理ユニット内の前記計算ユニットにより処理されるデータを前記固体装置システムに送信すべく構成されているシステム。
JP2016221697A 2015-11-13 2016-11-14 科学計算用ストレージプロセッサアレイ Ceased JP2017117439A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/941,198 US10108377B2 (en) 2015-11-13 2015-11-13 Storage processing unit arrays and methods of use
US14/941,198 2015-11-13

Publications (1)

Publication Number Publication Date
JP2017117439A true JP2017117439A (ja) 2017-06-29

Family

ID=58640376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016221697A Ceased JP2017117439A (ja) 2015-11-13 2016-11-14 科学計算用ストレージプロセッサアレイ

Country Status (5)

Country Link
US (1) US10108377B2 (ja)
JP (1) JP2017117439A (ja)
KR (1) KR101914833B1 (ja)
CN (1) CN107015762B (ja)
DE (1) DE102016013579A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10057334B2 (en) * 2016-11-14 2018-08-21 Futurewei Technologies, Inc. Quad full mesh and dimension driven network architecture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326799A (ja) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> 大規模でスケーラブルなプロセッサ・システムを構築するためのプロセッサ・ブック
US20140136754A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Intelligent monitoring for computation in memory

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401161B2 (en) * 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US6718428B2 (en) * 2000-12-18 2004-04-06 Sun Microsystems, Inc. Storage array interconnection fabric using a torus topology
US6711068B2 (en) * 2002-06-28 2004-03-23 Motorola, Inc. Balanced load memory and method of operation
US7486619B2 (en) * 2004-03-04 2009-02-03 International Business Machines Corporation Multidimensional switch network
US7475174B2 (en) 2004-03-17 2009-01-06 Super Talent Electronics, Inc. Flash / phase-change memory in multi-ring topology using serial-link packet interface
CN100449522C (zh) * 2007-07-12 2009-01-07 浙江大学 基于多fpga的矩阵乘法并行计算系统
US8397011B2 (en) 2007-10-05 2013-03-12 Joseph Ashwood Scalable mass data storage device
US8285919B2 (en) 2008-05-27 2012-10-09 Initio Corporation SSD with improved bad block management
US10236032B2 (en) 2008-09-18 2019-03-19 Novachips Canada Inc. Mass data storage system with non-volatile memory modules
JP5957647B2 (ja) 2010-06-18 2016-07-27 シーゲイト テクノロジー エルエルシーSeagate Technology LLC スケーラブルな記憶装置
US9606863B2 (en) * 2010-10-25 2017-03-28 SMART High Reliability Solutions, LLC Fabric-based solid state drive architecture
US10037272B2 (en) 2012-08-08 2018-07-31 Avalanche Technology, Inc. Storage system employing MRAM and array of solid state disks with integrated switch
US9258191B2 (en) * 2012-12-13 2016-02-09 Microsoft Technology Licensing, Llc Direct network having plural distributed connections to each resource
JP5985403B2 (ja) * 2013-01-10 2016-09-06 株式会社東芝 ストレージ装置
JP5996497B2 (ja) 2013-08-22 2016-09-21 株式会社東芝 ストレージ装置
US8850108B1 (en) * 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9661552B2 (en) * 2014-11-06 2017-05-23 Facebook, Inc. Association in line-of-sight communication networks
KR101564712B1 (ko) 2015-04-01 2015-11-02 인하대학교 산학협력단 Scst를 이용한 총 플래시 어레이 스토리지 가상화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326799A (ja) * 2003-04-28 2004-11-18 Internatl Business Mach Corp <Ibm> 大規模でスケーラブルなプロセッサ・システムを構築するためのプロセッサ・ブック
US20140136754A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Intelligent monitoring for computation in memory

Also Published As

Publication number Publication date
US20170139606A1 (en) 2017-05-18
CN107015762B (zh) 2020-01-07
KR101914833B1 (ko) 2018-11-02
DE102016013579A1 (de) 2017-05-18
KR20170058294A (ko) 2017-05-26
CN107015762A (zh) 2017-08-04
US10108377B2 (en) 2018-10-23

Similar Documents

Publication Publication Date Title
CN109783410B (zh) 执行并行运算处理的存储器设备和包括其的存储器模块
US11403044B2 (en) Method and apparatus for performing multi-object transformations on a storage device
US20190042611A1 (en) Technologies for structured database query for finding unique element values
KR102288830B1 (ko) 텐서 메모리 액세스를 촉진할 수 있는 메모리 디바이스 및 방법
US10817440B2 (en) Storage device including reconfigurable logic and method of operating the storage device
CN105549898A (zh) 操作数据存储装置和主机及移动计算装置的方法
US11675326B2 (en) Method and apparatus for remote field programmable gate array processing
US10048899B2 (en) Storage device, computing system including the storage device, and method of operating the storage device
WO2018010244A1 (en) Systems, methods and devices for data quantization
US7761668B2 (en) Processor architecture having multi-ported memory
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
CN111651383B (zh) 用于具有数据流管理器的处理器中的数据流的方法和装置
US20200293452A1 (en) Memory device and method including circular instruction memory queue
JP2017117439A (ja) 科学計算用ストレージプロセッサアレイ
CN113448498B (zh) 非易失性存储器接口
US11443014B1 (en) Sparse matrix multiplier in hardware and a reconfigurable data processor including same
EP3964971A1 (en) Memory device performing configurable mode setting and method of operating the same
US12001699B2 (en) Memory device performing configurable mode setting and method of operating the same
US20230418604A1 (en) Reconfigurable vector processing in a memory
CN118069037A (zh) 存储器控制器、电子系统和控制存储器访问的方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170814

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180813

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181113

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190326