JP5729740B2 - マルチプロセッサコンピュータシステム、および、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法 - Google Patents

マルチプロセッサコンピュータシステム、および、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法 Download PDF

Info

Publication number
JP5729740B2
JP5729740B2 JP2014089473A JP2014089473A JP5729740B2 JP 5729740 B2 JP5729740 B2 JP 5729740B2 JP 2014089473 A JP2014089473 A JP 2014089473A JP 2014089473 A JP2014089473 A JP 2014089473A JP 5729740 B2 JP5729740 B2 JP 5729740B2
Authority
JP
Japan
Prior art keywords
common memory
memory module
processor
computer system
memory modules
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
JP2014089473A
Other languages
English (en)
Other versions
JP2014232524A (ja
Inventor
エム. フュッペンサル ジョン
エム. フュッペンサル ジョン
ジェー. ティウォルト ティモシー
ジェー. ティウォルト ティモシー
エー. バートン リー
エー. バートン リー
イー. カリガ デーヴィッド
イー. カリガ デーヴィッド
Original Assignee
エスアールシー コンピューターズ、エルエルシー
エスアールシー コンピューターズ、エルエルシー
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 エスアールシー コンピューターズ、エルエルシー, エスアールシー コンピューターズ、エルエルシー filed Critical エスアールシー コンピューターズ、エルエルシー
Publication of JP2014232524A publication Critical patent/JP2014232524A/ja
Application granted granted Critical
Publication of JP5729740B2 publication Critical patent/JP5729740B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1075Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、概してマルチプロセッサをベースとしたコンピュータシステムの分野に関する。より具体的には、本発明は、複数の分散型マルチポート共通メモリ(MPCM)モジュールを組み込んだ、マルチプロセッサコンピュータアーキテクチャに関する。メモリモジュールのそれぞれは、1つ以上の関連付けられたメモリバンクまたはその他のデータ格納デバイスとともに、クロスバールータとして機能する制御ブロックを備える。
コンピュータシステムにおいては、複数のプロセッサが、大きな単一の共有される共通メモリにアクセスできることが望ましいことが多い。このため、歴史的に見れば、1Tバイトを超えるメモリ容量に到達するために、物理的に大きな組立品となることを余儀なくされてきた。従来のいくつかのシステムは、数多くのプロセッサボード間にメモリの物理的サイズを分散させ、さらに、メッセージパッシングインターフェース(MPI)のようないくつかのソフトウェアプロトコルのうちの1つを用いて、複数のプロセッサの全てが、メモリの全てにアクセスすることができるようにすることによって、メモリの物理的サイズを低減することを試みている。そのような方法論の問題点は、非常に大きなメモリアクセス待機時間を示し、単にデータの共有化を達成するためだけにでも大きな処理電力を消費することである。
上記の手法は、非常に密集したパッケージを可能にするために、物理的に小さな占有面積の回路基板上に位置する低処理電力のマイクロプロセッサに向かう現在の市場の傾向に合致しない。
本発明の譲受人であるSRC Computers,LLCは、少なくとも以下の、米国特許第6026459号明細書、米国特許第6076152号明細書、米国特許第6247110号明細書、米国特許第6295598号明細書、米国特許第6356983号明細書、米国特許第6961841号明細書、米国特許第6964029号明細書、米国特許第7003593号明細書、米国特許第7124211号明細書、米国特許第7155602号明細書、米国特許第7167976号明細書、米国特許第7237091号明細書、米国特許第7299458号明細書、米国特許第7620800号明細書、米国特許第7703085号明細書、及び、米国特許第7890686号明細書に開示されるものを含め、マルチプロセッサ及び再構成可能なコンピュータシステムの分野における多くの革新的技術を開発してきた。上記の特許の開示は、特に、その全体を参照により本明細書に組み込む。
従来型のマルチプロセッサベースのコンピュータシステムの限界を克服する、複数の分散型マルチポート共通メモリモジュールを組み込んだマルチプロセッサコンピュータアーキテクチャがここに開示される。ここに開示されるように、本発明に従った複数のマルチポート共通メモリモジュールのそれぞれは、1つ以上の関連付けられたメモリバンクまたはその他のデータ格納デバイスとともにクロスバールータとして機能する制御ブロックを備える。本発明のシステムメモリアーキテクチャは、容易に拡張可能であり、また、弱小ノード高速アレイ(Fast Arrays of Wimpy Nodes:FAWN)アーキテクチャに用いられるような、比較的低い性能の、あるいは"弱小な"ノードのマイクロプロセッサを使用する場合でさえも、小さなボードフォームファクタに本質的に適している。
概して言えば、2つ以上のメモリカードを利用した共有される共通メモリを形成する方法がここに開示される。これらのメモリカードは、複数のI/Oポートと、所望されるメモリ位置が第1のカードに見出されない場合に他のメモリカードへと複数の要求を中継する能力とを有する。メモリカードの制御機能は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、結合プログラム可能論理デバイス(CPLD)、プログラム可能論理デバイス(PLD)、特定顧客向け標準品(CSSP)、または、プログラム可能システムオンチップ(PSoC)および類似のデバイスにより、有利に実行され得る。本発明の代表的な実施例においては、複数のカード間での環状の(toroidal)相互接続アーキテクチャを有するベースボードまたはバックプレーンを用いて相互接続される複数のメモリカード並びに複数のプロセッサカードを備えるコンピュータシステムが開示される。
本発明の教示および範囲から逸脱することなく、ここに開示された代表的な環状の相互接続トポロジーに加えて、その他のシャーシ相互接続技術も使用されてよいことに留意するべきである。さらに、例えば、インテル社から入手可能なパラゴンシステム(Paragon system)およびクレイリサーチT3Dシステムのように、全ての現存する環状ベースの相互接続システムは、特殊な環状インターフェースチップを、プロセッサがさらに接続される環の交点のそれぞれに位置させる必要がある。本発明のマルチポート共通メモリモジュールのポートは、これらの特殊なインターフェースチップを必要とせず、それどころか、複数のプロセッサおよび複数のマルチポート共通メモリモジュールの直接の結合を可能にさせる。
さらに、2つ以上のメモリカードを利用した非共有型メモリを形成する方法がここに開示される。これらのメモリカードは、複数のI/Oポートと、所望されるメモリ位置が第1のカードに見出されない場合に、他のメモリカードへと複数の要求を中継する能力とを有する。上記のように、メモリカードの制御機能は、FPGA、ASIC、CPLD、PLD、CSSP、PSoC、または、その他の同等なプログラム可能なデバイスを用いて簡便に実行され得る。
本発明に従ったコンピュータシステムは、いくつかのより小さなカードにわたって分散させることにより、メモリの一部分の迅速な交換を容易にする。代表的な実施例においては、メモリカードのメモリ格納装置は、SDRAM、フラッシュメモリなどの半導体メモリ、ディスクドライブベースの格納装置を含んでよく、あるいは、別のタイプのデータ格納技術によって実行されることもできる。
ここに具体的に開示されるものは、マルチプロセッサコンピュータシステムであって、それぞれがN個のプロセッサカードスロットのアレイに装着されるN個のプロセッサカードと、それぞれがM個のメモリモジュールカードスロットのアレイに装着されるM個のマルチポート共通メモリモジュールとを備える。N個のプロセッサカードスロットおよびM個のメモリモジュールカードスロットは1つの環状に相互接続され、M個のメモリモジュールカードスロットは1つの環状に相互接続され、ここでNは1よりも大きな整数である。N個のプロセッサカードのうちの1つ、または、M個のマルチポート共通メモリモジュールのうち第1マルチポート共通メモリモジュールに隣接する1つは、第1マルチポート共通メモリモジュールへとデータ要求を向けて、要求されるデータが第1マルチポート共通メモリモジュールに存在する場合は第1マルチポート共通メモリモジュールがデータ要求を提供し、存在しない場合は第1マルチポート共通メモリモジュールがM個のマルチポート共通メモリモジュールのうち隣接する第2マルチポート共通メモリモジュールへとデータ要求を向けて、第2マルチポート共通メモリモジュールに直接結合された1つのプロセッサカードにデータ要求が由来する場合は、第2マルチポート共通メモリモジュールは直接結合された1つのプロセッサカードへと要求されるデータを返し、由来しない場合であって、データ要求のソースIDが、第2マルチポート共通メモリモジュールに直接結合されている1つのプロセッサカードに関連付けられている場合は、第2マルチポート共通メモリモジュールは直接結合された1つのプロセッサカードへと要求されるデータを返し、関連付けられていない場合は、第2マルチポート共通メモリモジュールは第1マルチポート共通メモリモジュールへと要求されるデータを返す。
また、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法がここに具体的に開示される。この方法は、複数のメモリモジュールのうちの第1メモリモジュールへとデータ要求を向ける段階と、第1メモリモジュールにデータが存在する場合はデータ要求を提供し、存在しない場合は、複数のメモリモジュールのうちの隣接する第2メモリモジュールへと第1メモリモジュールがデータ要求を向ける段階とを備える。この方法はさらに、第2メモリモジュールに直接結合されたプロセッサにデータ要求が由来する場合は、第2メモリモジュールは直接結合されたプロセッサへと要求されるデータを返し、由来しない場合は、データ要求のソースIDが、第2メモリモジュールに対して提供することと関連付けられている場合には、第2メモリモジュールは直接結合されたプロセッサへと要求されるデータを返し、関連付けられていない場合には、第2メモリモジュールは第1メモリモジュールへと要求されるデータを返す段階を備える。さらに、複数のプロセッサおよび複数のメモリモジュールは1つの環状に相互接続され、複数のメモリモジュールは1つの環状に相互接続される。
さらに、複数のプロセッサブロックと、多数のマルチポート共通メモリモジュールとを備えたマルチプロセッサコンピュータシステムがここに具体的に開示される。多数のメモリモジュールのプロセッサポートは、それぞれが、複数のプロセッサブロックのうち対応する1つに関連付けられる。複数のプロセッサブロックおよび複数のマルチポート共通メモリモジュールは、1つの環状に相互接続され、複数のマルチポート共通メモリモジュールは1つの環状に相互接続される。複数のプロセッサブロックのうちの1つ、または、複数のマルチポート共通メモリモジュールのうち第1マルチポート共通メモリモジュールに隣接する1つは、第1マルチポート共通メモリモジュールへとデータ要求を向けて、要求されるデータが第1マルチポート共通メモリモジュールに存在する場合は第1マルチポート共通メモリモジュールがデータ要求を提供し、存在しない場合は第1マルチポート共通メモリモジュールが複数のマルチポート共通メモリモジュールのうち隣接する第2マルチポート共通メモリモジュールへとデータ要求を向けて、第2マルチポート共通メモリモジュールに直接結合された1つのプロセッサブロックにデータ要求が由来する場合は、第2マルチポート共通メモリモジュールは直接結合された1つのプロセッサブロックへと要求されるデータを返し、由来しない場合であって、データ要求のソースIDが、第2マルチポート共通メモリモジュールに直接結合されている1つのプロセッサブロックに関連付けられている場合は、第2マルチポート共通メモリモジュールは直接結合された1つのプロセッサブロックへと要求されるデータを返し、関連付けられていない場合は、第2マルチポート共通メモリモジュールは第1マルチポート共通メモリモジュールへと要求されるデータを返す。
添付の図面と併せて以下に記載する好ましい実施形態を参照することにより、本発明の上記したおよびその他の特徴および目的、並びにこれらを実現する態様がより明らかになり、発明自身も最もよく理解されるであろう。
4ポートの実施形態の例を説明する、本発明に従ったマルチポート共通メモリモジュールの代表的な実施例の機能ブロック図である。
本発明に従ったマルチプロセッサコンピュータアーキテクチャの代表的な実施形態であり、環状の相互接続トポロジー中に結合された多数のプロセッサカードとともに、前の図面に示されたような多数のマルチポート共通メモリモジュールカードの挿入を提供する、ベースボードまたはバックプレーンを備える代表的な実施形態のさらなる機能ブロック図である。
図1のマルチポート共通メモリモジュールにおけるコントローラブロックによって実行されてよい、可能なパケット処理およびルーティングサイクルを示す例示的な論理フローチャートである。
ここで図1を参照すると、例示的な4ポートの実施形態を説明する、本発明に従ったマルチポート共通メモリモジュール100の代表的な実施例の機能ブロック図が示される。例示されるメモリモジュール100は、4ポートのコントローラブロック102及び関連付けられたメモリバンク104A並びに104Bを組み込んでいる。但し、コントローラブロック102によってその他の数のポートが提供されてよいことに留意するべきである。以降においてより十分に記載されるように、マルチポート共通メモリモジュール100は簡便に、コンピュータベースボードまたはバックプレーンにおける挿入用に、比較的小さな占有面積のカードフォームファクタで提供されてよい。
マルチポート共通メモリモジュール100は、本発明のその側面に従った代表的なマルチプロセッサコンピュータアーキテクチャの一部分として利用されるように設計される。図示および記載されるように、マルチポート共通メモリモジュールの代表的な実施例は、4ポートデバイスとして簡便に実施されてよい。マルチポート共通メモリモジュール100のコントローラブロック102は、1つ以上の(SDRAMのような)メモリバンク104A、104B、または、フラッシュメモリのような他の格納装置、ディスクドライブ等とともに、クロスバールータとして機能する。コントローラブロック102の機能性は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、結合プログラム可能論理デバイス(CPLD)、プログラム可能論理デバイス(PLD)、特定顧客向け標準品(CSSP)、または、プログラム可能システムオンチップ(PSoC)および類似のデバイスによって簡便に実施され得る。
実際問題として、現在利用可能なメモリデバイス技術およびデバイスフォームファクタを仮定すると、ある所定のサイズのカードに組み込まれてよいメモリバンク104の総数(または、提供されるメモリの総量)に課される唯一の制限は、カード自身に固有の物理的サイズである。実施例においては、ダブルデータレート3(DDR3)同期型ダイナミックランダムアクセスメモリ(SDRAM)デバイスを利用して使用する場合には、カードはおよそ5インチ×7インチであってよい。メモリまたは格納技術の現在の状態を仮定すると、このカードフォームファクタにより、それぞれが64GバイトのSDRAMを有する2つのメモリバンクの提供が可能である。メモリデバイスがさらに大きなビット密度を提供できるように進歩するに連れて、この格納容量は増加することができる。
ここでさらに図2を参照すると、本発明に従ったマルチプロセッサコンピュータアーキテクチャ200の代表的な実施形態のさらなる機能ブロック図が示される。マルチプロセッサコンピュータアーキテクチャ200は、多数のカードスロット202を介して環状の相互接続トポロジー中に結合された多数のプロセッサカードとともに、前の図面に示されるような多数のマルチポート共通メモリモジュール100カードの挿入を提供する、ベースボードまたはバックプレーンを備える。図示されるように、この構成においては、複数のプロセッサカードおよび複数のマルチポート共通メモリモジュール100カードは、それぞれ、自身に隣接するプロセッサカードおよびマルチポート共通メモリモジュール100カードと通信することができる。
本発明のマルチプロセッサコンピュータアーキテクチャ構造全体としての性能は、AからFまでおよび1から9までの相互接続パスの性能レベルに基づいて向上あるいは低下し得る。図示される代表的な実施例においては、これらの相互接続パスのそれぞれは、一対の一方向性パスを含んでよい。この一対のパスは、1つの方向にデータを伝送する第1パス、および、反対の方向にデータを伝送する第2パスを有する。このようにして、要求を出しているプロセッサカードへ返されようとしている読み出しデータに対するデータの衝突を最小限にすることができる。図示されるマルチプロセッサコンピュータアーキテクチャ200は、9個のカードスロットの例を示しているが、本発明の精神および教示から逸脱することなく、より多くのまたはより少ない数のカードスロットが使用されてよいことが理解されるであろう。
図示される相互接続トポロジーは、環状の構成を備えるものであって、コンピュータ業界において既知であり、また、よく理解されている。しかしながら、使用されてよい厳密な相互接続プロトコルは重要ではないが、従来の入/出力(I/O)ベースのMPIに見られるように、相互接続自身がシステム性能を制限することを防止するために、望ましくは可能な限り小さな待機時間を示すべきであり、また、任意の1つのメモリバンク104(図1)から利用可能なバンド幅と実質的に互換であるバンド幅を有するべきである。
図2に示される代表的なトポロジーを仮定すると、それぞれのマルチポート共通メモリモジュール100カードが、図1に示されるように、4つのI/Oポートを有することが望ましいであろう。この例示的なシステムにおいては、プロセッサカードはスロット1、2、3、7、8、および9に装着され、一方、マルチポート共通メモリモジュール100カードは、スロット4、5、および6に設置されるであろう。この例示的なシステムにおけるマルチポート共通メモリモジュール100については、パスA、B、C、D、E、およびFがプロセッサポート用であってよく、また、パス4、5、および6がメモリモジュールポート用とされてよい。例示的なアーキテクチャ200においては、プロセッサカードの数は、マルチポート共通メモリモジュール100において利用可能なプロセッサポートの数に対応し、メモリモジュール100自身の数も同じである必要は無い。
この代表的な実施形態においては、動作の基本的なモードは以下の通りである。カードスロット1のプロセッサをイニシエータの例として考慮すると、カードスロット4のマルチポート共通メモリモジュール100におけるメモリアレイ104に対して、パスAを通じて第1の方向にメモリ参照を行う。この場合、カードスロット4のマルチポート共通メモリモジュール100カードは、システム全体において利用可能な全メモリの3分の1を含むだけなので、この特定のモジュール上にアドレスが見出される可能性が33.3%ある。メモリ参照がカードスロット4のモジュールのアドレス範囲内である場合、メモリトランザクションは、そのマルチポート共通メモリモジュール100のメモリコントローラ102によって提供される。メモリ参照が"読み出し"である場合、次いで読み出しデータは、逆方向のデータパスAを通じてカードスロット1のプロセッサに返される。
一方、カードスロット4のマルチポート共通メモリモジュールに割り当てられたアドレス範囲内には該当するアドレスが無い場合、当該モジュールのコントローラ102は、カードスロット5のマルチポート共通メモリモジュール100において自身の最も近くに隣接したメモリアレイ104へと、パス5を介して要求を送るであろう。カードスロット5のマルチポート共通メモリモジュールにおいては、次いで、要求が提供されるべき適切なマルチポート共通メモリモジュール100のメモリアレイ104に要求が届くまで、前の処理が繰り返されてよい。上記の例は、"時計回り"のルーティング方式での実施を記載したものであり、ここでは、メモリパケットは、例えばカードスロット4、5、次いで6を通って移動する。明らかに、"反時計回り"のルーティングも使用可能であり、そこでは、システム中を逆方向にパケットが循環する。
各メモリ要求または"パケット"は、メモリアドレスおよびソースの同定(ID)を含むであろう。このIDは、メモリアドレスと同様な様式で、マルチポート共通メモリモジュール100のコントローラ102(図1)中のルータ回路によってデコードされる。これにより、"読み出された"データは、要求しているプロセッサに直接接続されたメモリモジュール上にその位置が無かった場合、リクエスタへと返されてよい。
ここでさらに図3を参照すると、図1のマルチポート共通メモリモジュールにおけるコントローラ102ブロックによって実行されてよい、可能なパケット処理およびルーティングサイクルを示す例示的な論理フローチャートが示される。
パケット処理およびルーティングサイクル300はステップ302として開始される。ここでは、1つのプロセッサまたは隣接する1つのマルチポート共通メモリモジュール100のいずれかから要求が届く。決定ステップ304において、もし、要求されたアドレスがマルチポート共通メモリモジュール100に存在しない場合には、次いで要求は、ステップ306において次のマルチポート共通メモリモジュールへと転送される。そうでない場合には、ステップ308において要求が提供され、次いで決定ステップ310においてもしも要求がプロセッサから来たものであるとされれば、次にステップ312において、直接接続されたプロセッサへとデータが返される。
そうでない場合、決定ステップ310においてもしも要求がプロセッサから来たものではないとされれば、決定ステップ314において、要求のソースがこの特定のマルチポート共通メモリモジュール100に接続されているか否かが決定される。もし接続されているのであれば、次にステップ316において、直接接続されたプロセッサへとデータが返される。そうでない場合は、ステップ318において、前のマルチポート共通メモリモジュール100へとデータが返される。
この動作方法により、メモリが全て1つの部品中に存在することを必要とせず、且つ、大きなクロスバースイッチ部品を使用することなく、複数のプロセッサが、それぞれ、共有されるメモリの大きな共同体にアクセスすることが可能となる。機能的には、それぞれのマルチポート共通メモリモジュール100のコントローラ102が最小限の待機時間を有し、利用されるプロトコルが比較的単純であって、さらに待機時間を最小化させることが望ましい。これらの基準によると非標準的なプロトコルが利用される結果になり得るので、コントローラの解決策としてFPGAが最も望ましいであろう。しかしながら、もしもマルチポート共通メモリモジュール100の製造量が非常に大きいのであれば、コントローラ102の機能をASICで実行することが、コスト面から効果的な代替策となり得る。
本発明のシステムアーキテクチャの重要な特徴は、コントローラ102がメモリパケットを解析するためのインテリジェンスを組み込んでいるので、コントローラ102がまた、非従来型のメモリアクセスを実行するためのインテリジェンスも有することである。これにより、プロセッサへと戻ってくるデータが遥かに効率的に整理される。よって、これにより、遥かに改良された処理スループットがもたらされる。もしもコントローラ102として例えばFPGAが利用される場合には、そうした機能を容易に追加または削除できるので、そのような機能性を容易にコントローラ102へと組み込むことができる。
そのような追加機能の例は、行列転置の機能である。アレイ上で信号処理を実行する場合、高速フーリエ変換(FFT)演算を実行し、出力された行列を転置し、次いで、別のFFT演算を実行することが望ましいことがしばしばある。従来型のメモリシステムにおいては、第1のFFT演算の出力がメモリ中の行に格納される。しかしながら第2のFFT演算が転置を実行するためには、列によってこの同じデータにアクセスしなくてはならない。SDRAMタイプメモリの特性のために、このような列によるアクセスは、単純なアドレス指定によっては実行することができない。その結果プロセッサは、従来においては、アレイ全体を読み出し直さねばならず、次いで、引き続き処理されるべき各カラムの要素を生成するために、アレイの個々の要素にアクセスしなければならないであろう。これは、本質的に多大な時間を要し、現代の潮流の処理技術の使用を妨げる。
本発明に従うと、この行列データを転置する能力をメモリコントローラ102そのものの中に組み込むことも可能である。その結果、プロセッサへと返されるデータは、容易に処理されるシーケンスとして届き、これによりストリーミング処理技術を使用することができる。そのような特殊なデータアクセスパターンは、単純なダイレクトメモリアクセス(DMA)要求、および、適切なパラメータをパケットヘッダに組み込むことにより呼び出されてよい。パケットヘッダにはプロセッサIDがある。同じようにして、いくつか例を挙げると、アレイへのサブボリュームアクセス(sub-volume access)、ギャザー−スキャッタ(gather-scatter)、および、リンクリスト(linked list)等のようにして、多くの異なるメモリアクセス機能もまた容易に組み込むことができる。
さらなる単なる一例としては、コントローラ102の機能性は、2次元(2D)データを転置順序で返す、より大きな2次元データの組から複数の2次元サブボリュームを返す、複数の3次元(3D)ボリュームから複数の2次元平面を返す、より大きな3次元ボリュームから複数の3次元サブボリュームを返すように実施することができる。さらに、コントローラ102は、複数の読み出し/書き込みアクセスに対するアドレスと複数の一定の長さとのリストを提供するため、並びに、そのような読み出し/書き込みに対する複数のアドレスと複数の長さとのリストを提供するために、複数のギャザー−スキャッタDMA演算を実行するように構成することもできる。またさらに、コントローラ102は、一組のアドレスのリンクリストに従って、最終的な一組の読み出されたデータに到達する能力を提供するための複数のリンクリストDMS演算を実行することができる。
本発明のさらに他の可能な実施形態においては、コントローラ102はまた、未知の長さの複数のレコードを返すように機能することができる。このようにして、コントローラ102がレコードフォーマットに関するいくつかのインテリジェンスを提供するように動作できるので、DMA演算が特定のアドレスにおける"レコード"を読み出すことができる。次いでレコードを読み出すことによってレコードの長さが決定され、レコードの長さをヘッダ中に含んだベクトルストリームによってデータが返されるであろう。
さらに、コントローラ102は、データが書き込まれているアドレスを実行および返すこともできる。これは、IBM社より入手可能なデイジーチェーン化されたグローバルコンソールマネジャー(GCM)デバイスには不可欠である。例えば、もしも複数のノードがデータの"列"にデータを書き込む場合、書込み動作を発令し、メモリのどこにデータが書き込まれたかを示すアドレスを返す能力を有するようにすることが有利であろう。よって、これにより、演算ノードに直接付随するGCMのメモリを超えてノードが書き込みを行うことが可能になるであろう。
本発明の原理を、具体的なマルチプロセッサコンピュータアーキテクチャおよび例示的なマルチポート共通メモリモジュールと関連させて上記の通り記載してきたが、上記の記載は、単なる例示のためであり、発明の範囲を限定するものでないことははっきりと理解されるべきである。特に、上記の開示の教示は、関連技術の当業者にとって、その他の変形を示唆するであろうことが認識される。そのような変形は、それ自体が既に周知であり、また、ここに既に記載した特徴の代わりに、あるいはこれに加えて使用することのできるような、その他の特徴を含むであろう。本出願において特許請求の範囲は、これらの特徴の特定の組み合わせとして構成されているが、ここに開示する範囲はまた、関連技術における当業者にとって明らかであろう、明示的にまたは暗示的に開示された任意の新規な特徴または特徴の任意の新規な組み合わせ、あるいは、それらの任意の一般化または変形を含むものであって、そのようなものが、いずれかの請求項において現在請求されるものと同じ発明に関連しているかいないか、および、本発明が取り組むものと同じ技術的課題のいずれかまたは全てを軽減するかどうかにはかかわるものでないことは理解されるべきである。出願人は、本出願の審査過程において、あるいは、本出願から派生する任意のさらなる出願の審査過程において、このような特徴および/またはこのような特徴の組み合わせについて、新たな請求項を作成する権利をこれにより保有する。
ここで使用する用語である"備える"、"備えた"、または、それらに基づいた他の任意の派生語は、非排他的な包含範囲に及ぶことを意図しており、特定の要素に対する引用を備えたプロセス、方法、物品、または装置は、必ずしもこれらの要素のみを含むものではなく、明示的には引用されていない他の要素、あるいは、そのようなプロセス、方法、物品、または装置に固有の他の要素も含み得るものである。本出願における記載のいずれについても、任意の特定の要素、ステップ、または機能が、特許請求の範囲に含まれなければならない不可欠の要素であることを示すものとして解釈されるべきではない。また、特許とされた主題の範囲は、許可された請求項によってのみ定義されるものである。さらに、添付の特許請求の範囲における請求項のいずれも、"means for(〜する手段)"という用語そのものが使用され、且つ、その後に分詞形が続かない限り、米国特許法第112条第6段落を行使することを意図していない。
なお、本願明細書に記載の実施形態によれば、以下の構成もまた開示される。
[項目1]
それぞれが、N個のプロセッサカードスロットのアレイに装着されるN個のプロセッサカードと、
それぞれが、M個のメモリモジュールカードスロットのアレイに装着されるM個のマルチポート共通メモリモジュールと、
を備え、
前記N個のプロセッサカードスロットおよび前記M個のメモリモジュールカードスロットは環状に相互接続され、Nは1よりも大きな整数である、
マルチプロセッサコンピュータシステム。
[項目2]
それぞれが、N個の付加プロセッサカードスロットのアレイに装着されるN個の付加プロセッサカードをさらに備え、
前記N個の付加プロセッサカードスロットは、前記M個のメモリモジュールカードスロットに対して環状に相互接続される項目1に記載のマルチプロセッサコンピュータシステム。
[項目3]
Nが3以上である項目1または2に記載のマルチプロセッサコンピュータシステム。
[項目4]
前記M個のマルチポート共通メモリモジュールのそれぞれは、4つのポートを有する項目1から3のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目5]
前記M個のマルチポート共通メモリモジュールのそれぞれは、コントローラによって前記N個のプロセッサカードのそれぞれに対して動作可能に結合する少なくとも1つのメモリ格納デバイスを有する項目1から4のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目6]
前記コントローラは、FPGA、ASIC、CPLD、PLD、CSSP、または、PSoCの少なくとも1つを有する項目5に記載のマルチプロセッサコンピュータシステム。
[項目7]
前記少なくとも1つのメモリ格納デバイスは、少なくとも1つのSDRAMデバイスを有するメモリアレイを備える項目5または6に記載のマルチプロセッサコンピュータシステム。
[項目8]
前記少なくとも1つのメモリ格納デバイスは、フラッシュメモリまたはディスクドライブを有する項目5または6に記載のマルチプロセッサコンピュータシステム。
[項目9]
前記N個のプロセッサカードスロットの前記アレイおよび前記M個のメモリモジュールカードスロットの前記アレイは、ベースボードまたはバックプレーンのいずれかの一部分を有する項目1から8のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目10]
相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法であって、
前記複数のメモリモジュールの第1メモリモジュールへとデータ要求を向ける段階と、
要求されるデータが前記第1メモリモジュールに存在する場合は前記データ要求を提供し、存在しない場合は前記複数のメモリモジュールのうち隣接する第2メモリモジュールへと前記データ要求を向ける段階と、
前記複数のプロセッサのうちの1つに前記データ要求が由来する場合は、直接結合されたプロセッサへと要求される前記データを返し、由来しない場合であって、前記データ要求のソースIDが、前記複数のメモリモジュールの1つに対して前記提供を行うことと関連付けられている場合は、前記複数のプロセッサのうち直接結合された1つのプロセッサへと要求される前記データを返し、関連付けられていない場合は、前記複数のメモリモジュールのうちの前の1つへと要求される前記データを返す段階と、
を備える方法。
[項目11]
前記複数のプロセッサおよび前記複数のメモリモジュールは環状に相互接続される項目10に記載の方法。
[項目12]
前記複数のプロセッサのそれぞれおよび前記複数のメモリモジュールのそれぞれは、バックプレーンにおいて対応する複数のカードスロットに挿入されるそれぞれのカードに設けられる項目10または11に記載の方法。
[項目13]
前記複数のプロセッサのそれぞれおよび前記複数のメモリモジュールのそれぞれは、ベースボードにおいて対応する複数のカードスロットに挿入されるそれぞれのカードに設けられる項目10または11に記載の方法。
[項目14]
複数のプロセッサブロックと、
複数のマルチポート共通メモリモジュールと、
を備え、
前記複数のマルチポート共通メモリモジュールのそれぞれのプロセッサポートは、前記複数のプロセッサブロックのうち対応する1つに関連付けられ、
前記複数のマルチポート共通メモリモジュールは、要求されるメモリ位置が前記複数のマルチポート共通メモリモジュールの第1メモリモジュールに見出されない場合、前記複数のプロセッサブロックの第1プロセッサブロックから対応する前記第1メモリモジュールへと向けられた複数のメモリアクセス要求を、前記複数のマルチポート共通メモリモジュールの他のメモリモジュールへと中継するように動作できる、マルチプロセッサコンピュータシステム。
[項目15]
前記他のメモリモジュールは、前記第1メモリモジュールに隣接する項目14に記載のマルチプロセッサコンピュータシステム。
[項目16]
前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、環状に相互接続される項目14または15に記載のマルチプロセッサコンピュータシステム。
[項目17]
前記複数のマルチポート共通メモリモジュールのそれぞれの制御機能は、FPGA、ASIC、CPLD、PLD、CSSP、または、PSoCの少なくとも1つによって実行される項目14から16のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目18]
前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、それぞれが、バックプレーンにおいて対応する複数のカードスロットに保持するためのそれぞれのカードフォームファクタを有する項目14から17のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目19]
前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、それぞれが、ベースボードにおいて対応する複数のカードスロットに保持するためのそれぞれのカードフォームファクタを有する項目14から17のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目20]
前記複数のマルチポート共通メモリモジュールは、前記複数のプロセッサブロック用の共有される共通メモリシステムを有する項目14から19のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目21]
前記複数のマルチポート共通メモリモジュールは、前記複数のプロセッサブロック用の非共有型共通メモリシステムを有する項目14から19のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目22]
前記複数のマルチポート共通メモリモジュールのそれぞれは、半導体ベースまたはディスクベースのデータ格納デバイスの少なくとも一方を有する項目14から21のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目23]
前記複数のマルチポート共通メモリモジュールは、転置順序で2次元データを返すこと、より大きな2次元データの組から複数の2次元のサブボリュームを返すこと、複数の3次元ボリュームから複数の2次元平面を返すこと、または、より大きな3次元ボリュームから複数の3次元サブボリュームを返すことのうちの少なくとも1つを実行するように動作できる項目14から22のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目24]
前記複数のマルチポート共通メモリモジュールは、複数の読み出し/書き込み動作に対する、複数のアドレスと複数の一定の長さとのリスト、または、複数のアドレスと複数の長さとのリストの少なくとも一方を提供することを含む複数のギャザー−スキャッタDMA演算を実行するように動作できる項目14から23のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目25]
前記複数のマルチポート共通メモリモジュールは、一組のアドレスのリンクリストに従って、最終的な一組の読み出されたデータに到達することを含む複数のリンクリストDMA演算を実行するように動作できる項目14から23のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目26]
前記複数のマルチポート共通メモリモジュールは、未知の長さの複数のレコードを返すように動作できる項目14から25のいずれか1項に記載のマルチプロセッサコンピュータシステム。
[項目27]
特定のアドレスにおける前記レコードを読み出すことにより、返される前記複数のレコードの前記長さが決定される項目26に記載のマルチプロセッサコンピュータシステム。
[項目28]
前記複数のマルチポート共通メモリモジュールは、データが書き込まれるアドレスを返すように動作できる項目14から27のいずれか1項に記載のマルチプロセッサコンピュータシステム。

Claims (28)

  1. それぞれが、N個のプロセッサカードスロットのアレイに装着されるN個のプロセッサカードと、
    それぞれが、M個のメモリモジュールカードスロットのアレイに装着されるM個のマルチポート共通メモリモジュールと、
    を備え、
    前記N個のプロセッサカードスロットおよび前記M個のメモリモジュールカードスロットは1つの環状に相互接続され、前記M個のメモリモジュールカードスロットは1つの環状に相互接続され、Nは1よりも大きな整数であり
    前記N個のプロセッサカードのうちの1つ、または、前記M個のマルチポート共通メモリモジュールのうち第1マルチポート共通メモリモジュールに隣接する1つは、前記第1マルチポート共通メモリモジュールへとデータ要求を向けて、
    要求されるデータが前記第1マルチポート共通メモリモジュールに存在する場合は前記第1マルチポート共通メモリモジュールが前記データ要求を提供し、存在しない場合は前記第1マルチポート共通メモリモジュールが前記M個のマルチポート共通メモリモジュールのうち隣接する第2マルチポート共通メモリモジュールへと前記データ要求を向けて、
    前記第2マルチポート共通メモリモジュールに直接結合された1つのプロセッサカードに前記データ要求が由来する場合は、前記第2マルチポート共通メモリモジュールは直接結合された前記1つのプロセッサカードへと要求される前記データを返し、由来しない場合であって、前記データ要求のソースIDが、前記第2マルチポート共通メモリモジュールに直接結合されている前記1つのプロセッサカードに関連付けられている場合は、前記第2マルチポート共通メモリモジュールは直接結合された前記1つのプロセッサカードへと要求される前記データを返し、関連付けられていない場合は、前記第2マルチポート共通メモリモジュールは前記第1マルチポート共通メモリモジュールへと要求される前記データを返す、
    マルチプロセッサコンピュータシステム。
  2. それぞれが、N個の付加プロセッサカードスロットのアレイに装着されるN個の付加プロセッサカードをさらに備え、
    前記N個の付加プロセッサカードスロットは、前記M個のメモリモジュールカードスロットに対して環状に相互接続される請求項1に記載のマルチプロセッサコンピュータシステム。
  3. Nが3以上である請求項1または2に記載のマルチプロセッサコンピュータシステム。
  4. 前記M個のマルチポート共通メモリモジュールのそれぞれは、4つのポートを有する請求項1から3のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  5. 前記M個のマルチポート共通メモリモジュールのそれぞれは、コントローラによって前記N個のプロセッサカードのそれぞれに対して動作可能に結合する少なくとも1つのメモリ格納デバイスを有する請求項1から4のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  6. 前記コントローラは、FPGA、ASIC、CPLD、PLD、CSSP、または、PSoCの少なくとも1つを有する請求項5に記載のマルチプロセッサコンピュータシステム。
  7. 前記少なくとも1つのメモリ格納デバイスは、少なくとも1つのSDRAMデバイスを有するメモリアレイを備える請求項5または6に記載のマルチプロセッサコンピュータシステム。
  8. 前記少なくとも1つのメモリ格納デバイスは、フラッシュメモリまたはディスクドライブを有する請求項5または6に記載のマルチプロセッサコンピュータシステム。
  9. 前記N個のプロセッサカードスロットの前記アレイおよび前記M個のメモリモジュールカードスロットの前記アレイは、ベースボードまたはバックプレーンのいずれかの一部分を有する請求項1から8のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  10. 前記N個のプロセッサカードスロットは1つの環状に相互接続される、請求項1から9のいずれか一項に記載のマルチプロセッサコンピュータシステム。
  11. 相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法であって、
    前記複数のメモリモジュールの第1メモリモジュールへとデータ要求を向ける段階と、
    要求されるデータが前記第1メモリモジュールに存在する場合は前記データ要求を提供し、存在しない場合は前記複数のメモリモジュールのうち隣接する第2メモリモジュールへと前記データ要求を向ける段階と、
    前記第2メモリモジュールに直接結合されたプロセッサに前記データ要求が由来する場合は、前記第2メモリモジュールは前記直接結合されたプロセッサへと要求される前記データを返し、由来しない場合であって、前記データ要求のソースIDが、前記第2メモリモジュールに対して前記提供を行うことと関連付けられている場合は、前記第2メモリモジュールは前記直接結合されたプロセッサへと要求される前記データを返し、関連付けられていない場合は、前記第2メモリモジュールは前記第1メモリモジュールへと要求される前記データを返す段階と、
    を備え
    前記複数のプロセッサおよび前記複数のメモリモジュールは1つの環状に相互接続され、
    前記複数のメモリモジュールは1つの環状に相互接続される方法。
  12. 前記複数のプロセッサのそれぞれおよび前記複数のメモリモジュールのそれぞれは、バックプレーンにおいて対応する複数のカードスロットに挿入されるそれぞれのカードに設けられる請求項11に記載の方法。
  13. 前記複数のプロセッサのそれぞれおよび前記複数のメモリモジュールのそれぞれは、ベースボードにおいて対応する複数のカードスロットに挿入されるそれぞれのカードに設けられる請求項11に記載の方法。
  14. 前記複数のプロセッサは1つの環状に相互接続される、請求項11から13のいずれか一項に記載の方法。
  15. 複数のプロセッサブロックと、
    複数のマルチポート共通メモリモジュールと、
    を備え、
    前記複数のマルチポート共通メモリモジュールのそれぞれのプロセッサポートは、前記複数のプロセッサブロックのうち対応する1つに関連付けられ
    前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、1つの環状に相互接続され、
    前記複数のマルチポート共通メモリモジュールは1つの環状に相互接続され、
    前記複数のプロセッサブロックのうちの1つ、または、前記複数のマルチポート共通メモリモジュールのうち第1マルチポート共通メモリモジュールに隣接する1つは、前記第1マルチポート共通メモリモジュールへとデータ要求を向けて、
    要求されるデータが前記第1マルチポート共通メモリモジュールに存在する場合は前記第1マルチポート共通メモリモジュールが前記データ要求を提供し、存在しない場合は前記第1マルチポート共通メモリモジュールが前記複数のマルチポート共通メモリモジュールのうち隣接する第2マルチポート共通メモリモジュールへと前記データ要求を向けて、
    前記第2マルチポート共通メモリモジュールに直接結合された1つのプロセッサブロックに前記データ要求が由来する場合は、前記第2マルチポート共通メモリモジュールは直接結合された前記1つのプロセッサブロックへと要求される前記データを返し、由来しない場合であって、前記データ要求のソースIDが、前記第2マルチポート共通メモリモジュールに直接結合されている1つのプロセッサブロックに関連付けられている場合は、前記第2マルチポート共通メモリモジュールは直接結合された前記1つのプロセッサブロックへと要求される前記データを返し、関連付けられていない場合は、前記第2マルチポート共通メモリモジュールは前記第1マルチポート共通メモリモジュールへと要求される前記データを返す、
    マルチプロセッサコンピュータシステム。
  16. 前記複数のマルチポート共通メモリモジュールのそれぞれの制御機能は、FPGA、ASIC、CPLD、PLD、CSSP、または、PSoCの少なくとも1つによって実行される請求項15に記載のマルチプロセッサコンピュータシステム。
  17. 前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、それぞれが、バックプレーンにおいて対応する複数のカードスロットに保持するためのそれぞれのカードフォームファクタを有する請求項15または16に記載のマルチプロセッサコンピュータシステム。
  18. 前記複数のプロセッサブロックおよび前記複数のマルチポート共通メモリモジュールは、それぞれが、ベースボードにおいて対応する複数のカードスロットに保持するためのそれぞれのカードフォームファクタを有する請求項15または16に記載のマルチプロセッサコンピュータシステム。
  19. 前記複数のマルチポート共通メモリモジュールは、前記複数のプロセッサブロック用の共有される共通メモリシステムを有する請求項15から18のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  20. 前記複数のマルチポート共通メモリモジュールは、前記複数のプロセッサブロック用の非共有型共通メモリシステムを有する請求項15から18のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  21. 前記複数のマルチポート共通メモリモジュールのそれぞれは、半導体ベースまたはディスクベースのデータ格納デバイスの少なくとも一方を有する請求項15から20のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  22. 前記複数のマルチポート共通メモリモジュールは、転置順序で2次元データを返すこと、より大きな2次元データの組から複数の2次元のサブボリュームを返すこと、複数の3次元ボリュームから複数の2次元平面を返すこと、または、より大きな3次元ボリュームから複数の3次元サブボリュームを返すことのうちの少なくとも1つを実行するように動作できる請求項15から21のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  23. 前記複数のマルチポート共通メモリモジュールは、複数の読み出し/書き込み動作に対する、複数のアドレスと複数の一定の長さとのリスト、または、複数のアドレスと複数の長さとのリストの少なくとも一方を提供することを含む複数のギャザー−スキャッタDMA演算を実行するように動作できる請求項15から22のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  24. 前記複数のマルチポート共通メモリモジュールは、一組のアドレスのリンクリストに従って、最終的な一組の読み出されたデータに到達することを含む複数のリンクリストDMA演算を実行するように動作できる請求項15から22のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  25. 前記複数のマルチポート共通メモリモジュールは、未知の長さの複数のレコードを返すように動作できる請求項15から24のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  26. 特定のアドレスにおける前記レコードを読み出すことにより、返される前記複数のレコードの前記長さが決定される請求項25に記載のマルチプロセッサコンピュータシステム。
  27. 前記複数のマルチポート共通メモリモジュールは、データが書き込まれるアドレスを返すように動作できる請求項15から26のいずれか1項に記載のマルチプロセッサコンピュータシステム。
  28. 前記複数のプロセッサブロックは1つの環状に相互接続される、請求項15から27のいずれか一項に記載のマルチプロセッサコンピュータシステム。
JP2014089473A 2013-05-28 2014-04-23 マルチプロセッサコンピュータシステム、および、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法 Active JP5729740B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/903,720 2013-05-28
US13/903,720 US10741226B2 (en) 2013-05-28 2013-05-28 Multi-processor computer architecture incorporating distributed multi-ported common memory modules

Publications (2)

Publication Number Publication Date
JP2014232524A JP2014232524A (ja) 2014-12-11
JP5729740B2 true JP5729740B2 (ja) 2015-06-03

Family

ID=50630671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014089473A Active JP5729740B2 (ja) 2013-05-28 2014-04-23 マルチプロセッサコンピュータシステム、および、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法

Country Status (5)

Country Link
US (1) US10741226B2 (ja)
EP (1) EP2808802A3 (ja)
JP (1) JP5729740B2 (ja)
AU (3) AU2014202193B2 (ja)
CA (1) CA2849576C (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10741226B2 (en) * 2013-05-28 2020-08-11 Fg Src Llc Multi-processor computer architecture incorporating distributed multi-ported common memory modules
EP4187539B1 (en) 2017-07-30 2024-06-05 NeuroBlade Ltd. A memory-based distributed processor architecture
US11435941B1 (en) * 2020-06-24 2022-09-06 Amazon Technologies, Inc. Matrix transpose hardware acceleration

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942517A (en) 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
JPH03261255A (ja) 1990-03-12 1991-11-21 Casio Comput Co Ltd データ転送方式
US5278966A (en) 1990-06-29 1994-01-11 The United States Of America As Represented By The Secretary Of The Navy Toroidal computer memory for serial and parallel processors
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US7003593B2 (en) 1997-12-17 2006-02-21 Src Computers, Inc. Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port
US6076152A (en) 1997-12-17 2000-06-13 Src Computers, Inc. Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem
US6026459A (en) 1998-02-03 2000-02-15 Src Computers, Inc. System and method for dynamic priority conflict resolution in a multi-processor computer system having shared memory resources
US6295598B1 (en) 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
WO2000054281A1 (fr) * 1999-03-09 2000-09-14 Vladimir Mikhailovich Dubovik Procede d'ecriture toroidale et de lecture d'informations, cellule de memoire et dispositif de memoire permettant de mettre en oeuvre ce procede
US6356983B1 (en) 2000-07-25 2002-03-12 Src Computers, Inc. System and method providing cache coherency and atomic memory operations in a multiprocessor computer architecture
US7155602B2 (en) 2001-04-30 2006-12-26 Src Computers, Inc. Interface for integrating reconfigurable processors into a general purpose computing system
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
US7027413B2 (en) 2001-09-28 2006-04-11 Sun Microsystems, Inc. Discovery of nodes in an interconnection fabric
US7124211B2 (en) 2002-10-23 2006-10-17 Src Computers, Inc. System and method for explicit communication of messages between processes running on different nodes in a clustered multiprocessor system
US7299458B2 (en) 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US6964029B2 (en) 2002-10-31 2005-11-08 Src Computers, Inc. System and method for partitioning control-dataflow graph representations
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US7225324B2 (en) 2002-10-31 2007-05-29 Src Computers, Inc. Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions
US7627362B2 (en) * 2002-11-07 2009-12-01 Wisys Technology Foundation Method and apparatus for producing an electrical property image of substantially homogeneous objects containing inhomogeneities
JP4248911B2 (ja) * 2003-03-28 2009-04-02 Tdk株式会社 磁気メモリデバイスおよび磁気メモリデバイスの書込方法
US20060041715A1 (en) 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect
US7525543B2 (en) * 2004-08-09 2009-04-28 Siemens Medical Solutions Usa, Inc. High performance shading of large volumetric data using screen-space partial derivatives
TWI344602B (en) * 2005-01-13 2011-07-01 Infortrend Technology Inc Redundant storage virtualization computer system
JP2005259157A (ja) * 2005-03-29 2005-09-22 Fujitsu Ltd 電子回路システム及び信号伝送方法
KR101271245B1 (ko) * 2005-04-21 2013-06-07 바이올린 메모리 인코포레이티드 상호접속 시스템
US7890686B2 (en) 2005-10-17 2011-02-15 Src Computers, Inc. Dynamic priority conflict resolution in a multi-processor computer system having shared resources
JP4972932B2 (ja) * 2005-12-26 2012-07-11 富士通株式会社 メモリアクセス装置
US7688737B2 (en) * 2007-03-05 2010-03-30 International Business Machines Corporation Latency hiding message passing protocol
WO2008142767A1 (ja) * 2007-05-21 2008-11-27 Renesas Technology Corp. 半導体装置
US8032892B2 (en) * 2007-06-26 2011-10-04 International Business Machines Corporation Message passing with a limited number of DMA byte counters
US7761687B2 (en) * 2007-06-26 2010-07-20 International Business Machines Corporation Ultrascalable petaflop parallel supercomputer
US7788334B2 (en) * 2007-06-26 2010-08-31 International Business Machines Corporation Multiple node remote messaging
CN101354694B (zh) * 2007-07-26 2010-10-13 上海红神信息技术有限公司 基于mpu架构的超高扩展超级计算系统
US8799549B2 (en) * 2009-02-13 2014-08-05 Infortrend Technology, Inc. Method for transmitting data between two computer systems
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
IT1403031B1 (it) * 2010-11-19 2013-09-27 Eurotech S P A Apparecchiatura di rete unificata per sistemi di supercalcolo scalabili
JP2012252490A (ja) * 2011-06-02 2012-12-20 Renesas Electronics Corp マルチプロセッサおよびそれを用いた画像処理システム
US20120095607A1 (en) * 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
US20140047156A1 (en) * 2012-08-09 2014-02-13 Emillo BILLI Hybrid computing system
US9160607B1 (en) * 2012-11-09 2015-10-13 Cray Inc. Method and apparatus for deadlock avoidance
US10741226B2 (en) * 2013-05-28 2020-08-11 Fg Src Llc Multi-processor computer architecture incorporating distributed multi-ported common memory modules

Also Published As

Publication number Publication date
AU2014202193B2 (en) 2016-06-30
AU2016228252A1 (en) 2016-10-06
EP2808802A2 (en) 2014-12-03
US10741226B2 (en) 2020-08-11
AU2018256636A1 (en) 2018-11-22
AU2016228252B2 (en) 2018-08-09
EP2808802A3 (en) 2015-11-18
CA2849576A1 (en) 2014-11-28
AU2014202193A1 (en) 2014-12-18
CA2849576C (en) 2019-11-12
JP2014232524A (ja) 2014-12-11
US20140359199A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
US20220011940A1 (en) Packet routing between memory devices and related apparatuses, methods, and memory systems
US20190042611A1 (en) Technologies for structured database query for finding unique element values
US7194568B2 (en) System and method for dynamic mirror-bank addressing
US10394747B1 (en) Implementing hierarchical PCI express switch topology over coherent mesh interconnect
Jun et al. Scalable multi-access flash store for big data analytics
US9501222B2 (en) Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
WO2013028849A1 (en) Methods and systems for mapping a peripheral function onto a legacy memory interface
JP2012128838A (ja) アイソレーションメモリバッファを組み込んだロードリデュースド・デュアル・インライン・メモリ・モジュール(lr−dimm)を利用したスイッチ/ネットワークアダプタ・ポートインターフェースを含むヘテロジニアスコンピューティングシステム
CN111630487B (zh) 用于神经网络处理的共享存储器的集中式-分布式混合组织
JP5729740B2 (ja) マルチプロセッサコンピュータシステム、および、相互接続された複数のプロセッサおよび複数のメモリモジュールを備えるアレイからの複数のデータ要求を処理する方法
US20240020261A1 (en) Peer-to-peer route through in a reconfigurable computing system
KR20220067992A (ko) 선택적 및 병렬적 에러 정정을 수행하는 메모리 컨트롤러, 이를 포함하는 시스템 및 메모리 장치의 동작 방법
US20240241641A1 (en) Packet routing between memory devices and related apparatuses, methods, and memory systems
US20240004750A1 (en) Remote scalable machine check architecture
US20240004744A1 (en) Scalable machine check architecture
Lonka et al. Comparison of interconnection networks
Bos Design of a chip set for a parallel computer based on the crossbar interconnection principle
CN118069037A (zh) 存储器控制器、电子系统和控制存储器访问的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141126

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150401

R150 Certificate of patent or registration of utility model

Ref document number: 5729740

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250