JP2010009580A - パーティションフリーマルチソケットメモリシステムアーキテクチャ - Google Patents

パーティションフリーマルチソケットメモリシステムアーキテクチャ Download PDF

Info

Publication number
JP2010009580A
JP2010009580A JP2009083082A JP2009083082A JP2010009580A JP 2010009580 A JP2010009580 A JP 2010009580A JP 2009083082 A JP2009083082 A JP 2009083082A JP 2009083082 A JP2009083082 A JP 2009083082A JP 2010009580 A JP2010009580 A JP 2010009580A
Authority
JP
Japan
Prior art keywords
processor
memory
processors
data
page
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.)
Pending
Application number
JP2009083082A
Other languages
English (en)
Inventor
Eric Sprangle
スプラングル エリック
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2010009580A publication Critical patent/JP2010009580A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

【課題】アプリケーションのメモリ帯域幅を増大させる技術を提供する。
【解決手段】少なくとも2つのメモリに接続される少なくとも2つのプロセッサを有する装置であって、前記少なくとも2つのプロセッサの第1プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第1部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第2部分とをクロック信号期間の第1部分内で読み、前記少なくとも2つのプロセッサの第2プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第3部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第4部分とを前記クロック信号期間の第1部分内で読む。
【選択図】図1

Description

本発明の実施例は、一般に情報処理分野に関し、より詳細にはマルチソケットメモリインタフェースの分野に関する。
より多くのアプリケーションがマルチ処理システム及びマイクロプロセッサのパラレル処理能力を利用し続けるに従って、より大きなメモリ帯域幅を実現する要求が増大する。パラレルアプリケーションは、例えば、SIMD(Single−Instruction Multiple−Data)命令などを介し多数のデータセットを同時実行することを伴うグラフィックアプリケーション、金融アプリケーション、医療及びバイオ技術アプリケーション又は他の何れかのアプリケーションを含みうる。ある程度まで、より従来のシーケンシャルなCPU(Central Processing Unit)のワークロードはまた、実行されるデータ構造のサイズに依存して、より大きなメモリ帯域幅とデータバスサイズを要求又は利用するかもしれない。
例えば、グラフィックアプリケーションは、3次元(3D)グラフィックシーンをレンダリングするため、ポリゴンの多数のピクセルに対してテクスチャリング処理又は他の効果をパラレルに実行する傾向がある。あるテクスチャ又は他の大きなデータ構造のサイズは、データを迅速に抽出及び格納するため、1以上のプロセッサから1以上のメモリストレージ領域(DRAMなど)への高帯域幅の必要を要求又は生じさせるかもしれない。ある従来技術は、1以上のプロセッサ又は処理コアから1以上のメモリまでのピン又はバストレースの個数を増加させることによって、より大きなメモリ帯域幅を提供することを試みてきた。オフパッケージバス幅など、帯域幅を増大させるためのインターコネクト幅の増大は、システムコストに悪影響を与え、当該システムのより汎用的な計算システムに対する適用性を制限する可能性がある。
一部の従来技術では、メモリ帯域幅の増大は、各データピンの帯域幅を増大させることによって(切替頻度の増加に関して)、及び/又はより多くのデータピンをパッケージに追加することによって行うことが可能である。しかしながら、バス幅の増大(より多くのピンを追加することなどによる)及び/又はバス周波数の増大を通じて帯域幅を増大させることは実際的に(経済的など)制限がある。
システム帯域幅をさらに増大させるため、一部の従来技術は、各プロセッサに割り当てられた対応するメモリを備えた複数のプロセッサを利用するかもしれない。これは、典型的には高帯域幅バスにより相互接続されるプロセッサと割り当てられたメモリとの間のペアリングを生じさせる。このとき、プロセッサ/メモリペアは、他のバスにより互いに接続されてもよく、これは、さらなるピンを必要とするが、対応するメモリから各プロセッサによりフェッチされるデータの共有をサポートするための帯域幅を有しないかもしれない。1つのプロセッサによってアクセスされる情報を1つのメモリから他のプロセッサに臨機応変に共有させることの困難さのため、各アプリケーションはプロセッサ/メモリペア間でアプリケーションにより実行される作業をパーティション又は分割することを試みるかもしれない。アプリケーションのパーティション化は、重大な遅延を回避するため、適切なプロセッサ/メモリペア内でデータを格納及びアクセスすることを確認する必要があるため、アプリケーション開発者にとって大きな負担となりうる。コード/データのパーティション化など、アプリケーションに制約を設けることは、アプリケーションの開発コストを増加させ、可搬性を制限し、これらのアプリケーションが市場において成功することを妨げる可能性がある。
本発明の課題は、上記問題点に鑑み、アプリケーションのメモリ帯域幅を増大させる技術を提供することである。
上記課題を解決するため、本発明の一特徴は、少なくとも2つのメモリに接続される少なくとも2つのプロセッサを有する装置であって、前記少なくとも2つのプロセッサの第1プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第1部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第2部分とをクロック信号期間の第1部分内で読み、前記少なくとも2つのプロセッサの第2プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第3部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第4部分とを前記クロック信号期間の第1部分内で読む装置に関する。
本発明によると、アプリケーションのメモリ帯域幅を増大させることが可能である。
図1は、本発明の少なくとも1つの実施例が利用可能なマルチプロセッサシステムのブロック図を示す。 図2は、一実施例によるメモリコントローラが各自のプロセッサの外部となるデュアルソケットシステムを示すブロック図である。 図3は、一実施例によるメモリコントローラが各自のプロセッサの内部となるデュアルソケットシステムを示すブロック図である。 図4は、一実施例による図2及び3のデュアルソケットシステムに対応するタイミング図を示す。 図5は、一実施例によるクアドソケットシステムを示すブロック図である。 図6は、一実施例による図5のクアドソケットシステムに対応するタイミング図を示す。 図7は、本発明の少なくとも1つの実施例を実行するのに利用可能な各処理のフロー図である。 図8は、少なくとも1つの実施例が利用可能なデュアルソケットシステムのコンフィギュレーションを示すブロック図である。 図9は、少なくとも1つの実施例が利用可能なデュアルソケットシステムの他のコンフィギュレーションを示すブロック図である。 図10は、少なくとも1つの実施例が利用可能な共有インターコネクトシステムを示す。 図11は、本発明の少なくとも1つの実施例が利用可能なポイント・ツー・ポイントインターコネクトコンピュータシステムを示す。 図12は、本発明の一実施例が利用可能なシステムを示す。
本発明の各実施例は、パラレル又は“スループット”アプリケーションを処理可能なものを含む処理装置及びシステムに関する。一部の実施例は、3Dグラフィックアプリケーションなどの各アプリケーションのためにメモリアクセスを処理する少なくとも2つの処理ユニット(グラフィックプロセッサなど)と、各自が少なくとも2つの処理ユニットに接続されたDRAM装置などの少なくとも2つのストレージ構成とを有する。各ストレージ構成は、各メモリから読み出されるデータの幅(16ビットなど)に対応するストレージ幅を有する情報を格納するための1以上のバッファを有するか、又はそれらと関連付けされる。一実施例では、各バッファは、設定可能な幅によりパーティション化されるか、又は2つの異なるプロセッサに(各自のメモリコントローラなどを介し)接続される。ここでは、各プロセッサが各メモリからの情報に同時にアクセス可能となるように、各バッファの1つの部分(半分など)は1つのプロセッサに提供されるデータを格納するためのものであり、他の部分(半分など)は少なくとも1つの他のプロセッサに接続される。一実施例では、バッファの各部分の個数は、それからデータにアクセスするプロセッサの個数に基づき設定可能である。
各プロセッサに2以上のストレージ構成へのアクセスを提供することによって、アプリケーションソフトウェアは、複数のストレージ構成に情報を格納し、そこから情報にアクセス可能となる。これは、プログラムデータ及び他の情報が格納及びアクセスされるソフトウェアにフレキシビリティを提供する。さらに、本発明の各実施例は、特定のプロセッサに対応するメモリ構成以外の他のメモリ構成からの情報にソフトウェアがアクセスすることを可能にするだけでなく、各プロセッサのメモリインタフェース帯域幅を最大化しながらこれを実行する。
本発明の各実施例は、ソフトウェアアプリケーションが複数のプロセッサに対応する複数のストレージ構成の情報にアクセス及び格納することを可能にする。これは、いくつかの事例において、SIMD(Single−Instruction−Multiple−Data)又はMIMD(Multiple−Instruction−Multiple−Data)処理を利用するパラレル命令又はアプリケーションを処理する際に有用であるかもしれない。なぜなら、各SIMD又はMIMD処理は、配置された特定のメモリ構成に関係なく、複数のメモリ構成からのオペランドデータ要素にアクセス可能であるためである。これは、特に大量の情報に対して各処理を同時に実行可能な3Dグラフィック又は金融アプリケーションなど、各アプリケーションにとって有用であるかもしれない。しかしながら、それは、いくつかの異なる位置に格納されうる情報を利用する従来のよりシーケンシャルなCPUアプリケーションについても有用であるかもしれない。
メモリが“ページ”などの各セグメントに従って構成又はアクセスされる一部の実施例では、ページにアクセスするプロセッサ(又はメモリインタフェースロジック)は、特定のメモリ構成のページサイズ又は構成をプロセッサ又はメモリコントローラのページングサイズ又はスキームに変換するための構成(“ページテーブル”など)を維持してもよい。例えば、一実施例では、プロセッサ又はメモリコントローラが特定のメモリの物理ページを設定された個数のバーチャルページに変換し、プログラムが当該ページにアクセスすることに応答して、オープン及びクローズするようにしてもよい。
一部の実施例では、各プロセッサ又はメモリインタフェースは、他のプロセッサのメモリインタフェースにより制御又は対応する他のメモリ構成にアクセス可能であるため、プロセッサ/メモリコントローラ間の通信は、各プロセッサ又はメモリコントローラのページ状態(オープン/クローズ)の間の整合性又はコヒーレンシを維持するために所望されるかもしれない。一実施例では、1つのプロセッサが他のプロセッサがアクセスする必要があるかもしれないメモリのページをクローズしないように、nワイドインターコネクト(ただし、“n”は1以上の可変数のチャネル/ピン/レーン/トレースを示すかもしれない)が、各種プロセッサ又はメモリコントローラの間のページ状態を通信するのに利用されるかもしれない。1以上のメモリにアクセスする各種プロセッサ又はメモリコントローラの間でページ状態を通信することによって、不要なページオープン又はクローズ処理が回避可能であり、これにより、各種プロセッサ又はメモリコントローラの間のアクセスパフォーマンスを向上させることができる。さらに一部の実施例では、nワイドインターコネクトは、過大なピン、パワー又は他のリソースを必要としないように、比較的低い帯域幅を有するようにしてもよい。
効果的には、本発明の各実施例は、アプリケーションがデータが格納されている又は格納されるメモリ装置に関係なく、複数のプロセッサ上で実行されることを可能にするかもしれない。これは、例えば、1つのグラフィックプロセッサがピクセルスクリーンの1/2をレンダリングし、他のグラフィックプロセッサが残りの1/2をレンダリングするグラフィックアプリケーションなどにおいて有用である。この状況では、1つのプロセッサが1つのメモリから隣接するテクセル情報(対応するプロセッサの1/2のスクリーン上のテクセルに対応する)にアクセスする必要があり、他のプロセッサが他のメモリから隣接するテクセル情報(対応するプロセッサの1/2のスクリーン上のテクセルに対応する)にアクセスする必要があるため、境界上のトライアングルはフィルタリング時に遅延を生じさせるかもしれない。この状況では、対応しないメモリからの情報を必要とするプロセッサは、対応するプロセッサを介しそれを要求する必要があるかもしれず、これは、要求元のプロセッサにそれを戻す必要があり、プロセッサ間に比較的高い帯域幅のバスを要求する帯域幅を使用することになる。そうでない場合、ソフトウェア開発者は、データの格納場所に関して制限を設ける必要があり、これは、特にクロスボーダートライアングルのレンダリングの際に極めて困難なものとなりうる。
同様の状況が、1つのプロセッサがあるフレームをレンダリングし、他のプロセッサが次のフレームをレンダリングする場合に存在する。特に、リフレクションなどの効果は、ときどきその直前のフレームからの情報に依拠する。この場合、(1つのプロセッサ/メモリペアに対応する)現在のフレームにおいて(他のプロセッサ/メモリペアに対応する)前のフレームからの情報が必要とされるため、(上述された)分割されたフレームを処理する際と同じ遅延問題が存在する可能性がある。本発明の各実施例は、分割フレームレンダリング例や交互フレームレンダリング例などの各状況を、一部の従来技術の帯域幅問題なく、又は対応するデータが格納される位置をソフトウェアが知る又は考慮することなく処理するかもしれない。一実施例では、これは、本発明の一部の実施例において使用されるプロセッサが使用されるメモリの間で交互に情報(1ページの情報など)を自動的に(OSやアプリケーションからの支援なく)格納し、何れのメモリからデータにアクセスするか提供するアドレスから情報を求めるという事実によって可能である。
一実施例では、ページテーブルは、ソフトウェアにより提供されるアドレスを、スループットアプリケーションを実行するため利用される2つのプロセッサに対応する2つのメモリの各位置に変換する。特に、ページテーブルは、アドレスのビットを用いて、2つのメモリ内に交互の位置に格納される情報のアドレスを含むテーブルの各エントリにアクセスする。従って、ソフトウェアが情報を格納又はアクセスするとき、ページテーブルは、要求元のソフトウェア(OS又はアプリケーション)が情報が実際に格納されている位置を理解又は考慮することなく、適切なメモリへのアクセスを自動的に導く。このように、情報はバースト速度により交互に何れかのメモリからアクセス可能であり、これにより、各プロセッサのメモリインタフェースの帯域幅を最大化し、クロスメモリ/プロセッサアクセスをサポートするため比較的高い帯域幅のバスを回避する。
一部の実施例では、複数のプロセッサが、コヒーレンシフィルタなどを使用することによって、効率的にリクエストを管理することによって要求元アプリケーションにデータを提供するかもしれない。一実施例では、コヒーレンシフィルタは、1つのプロセッサ上で実行されるアプリケーションによるデータのリクエストが、当該プロセッサに他のプロセッサにより現在アクセス可能なデータのアドレスを示すテーブルにアクセスさせるように(例えば、プロセッサのキャッシュ、バッファ、他の構成、プロセッサの対応するメモリにおいて現在オープンであるページなど)、1以上のプロセッサに対応し、アクセス可能な1以上のコヒーレンシテーブル又は他の構成を有するかもしれない。要求されたデータの直近のバージョンが他方のプロセッサのキャッシュにある場合、当該リクエストを受け付けたプロセッサは、他方のプロセッサに要求されたデータを要求元アプリケーションに返すよう通知するか、又はnワイドプロセッサ間インターコネクトを介しプロセッサからデータを抽出するようにしてもよい。一部の実施例では、各プロセッサは複数のプロセッサを有するかもしれず、この場合、各プロセッサはプロセッサソケットに対応するかもしれない。
一部の実施例では、上述した技術は、2、4、8又はそれ以上のプロセッサ又はコアを有するプロセッサ又はシステムに適用可能である。さらに、本発明の各実施例は、汎用コンピュータ、グラフィックゲームコンソール、グラフィックカードアプリケーションなどを含むいくつかの異なるシステム又は処理コンフィギュレーション又はアプリケーションに適用可能である。一実施例では、ここに記載される技術は、金融アプリケーション、医療アプリケーション、イメージングアプリケーションなどの3Dグラフィック又は他のアプリケーションを実行する1以上のプロセッサに関する。他の実施例では、ここに記載される技術は、シーケンシャルな又はより従来のワークロードを実行するため汎用CPUと共に利用されるかもしれない。さらなる他の実施例では、ここに記載される技術は、従来のCPU及びグラフィック専用ロジック(CPU+GPU)を含むプロセッサなど、従来のCPUワークロードとスループットアプリケーションの両方を実行するよう設計されたハイブリッドプロセッサと共に利用されるかもしれない。一実施例では、ここに記載される技術は、グラフィックテクスチャサンプリングロジックなど、パラレルアプリケーション専用ロジックと共にインターコネクトに接続され、SIMD命令を実行可能ないくつかのCPUプロセッサコアを有する1以上のプロセッサと共に利用される。
図1は、本発明の少なくとも1つの実施例が利用可能なマイクロプロセッサを示す。図1は、従来のCPUアプリケーション、スループットアプリケーション(3Dグラフィックアプリケーションなど)又は従来のCPUとスループットアプリケーションとの組み合わせのため利用可能なプロセッサを示す。プロセッサ100は、複数の処理コア100−1〜100−Nと、専用のスループットアプリケーションハードウェア110(グラフィックテクスチャサンプリングハードウェアなど)と、メモリインタフェースロジック120とを有し、リングインターコネクト130により構成される。一部の実施例では、プロセッサ100は、各コア100−1〜100−N内のコア101−1〜101−Nからの情報を包含する1以上のラストレベルキャッシュ135を有するかもしれない。一実施例では、1以上の処理コア100−1〜100−Nは、SIMD処理を実行可能である。
一実施例では、メモリコントローラは、グラフィックDRAM105などのDRAMを有し、プロセッサ100の外部に配設されるメモリとインタフェースをとるかもしれない。一実施例では、メモリインタフェースは、16ビットなどの特定の幅を有し、2KBなどの特定のサイズのメモリページにアクセスするかもしれない。複数のプロセッサ100が対応する他のプロセッサ又はメモリコントローラにより制御されるDRAMなどの1以上のメモリにアクセス可能なシステムでは、プロセッサ100はまた、各種メモリにアクセスする各種プロセッサの間のページ状態コヒーレンシを維持するため、異なるプロセッサ又はメモリコントローラと情報を通信、受信及び処理するためのロジック140を含むかもしれない。一実施例では、ロジック140は、プロセッサ100と同じメモリにアクセス可能な他のプロセッサ又はメモリコントローラのページ状態を解釈するため、ページテーブルに関してある制御又は復号化ロジックと共にレジスタ又は他のストレージ領域を含むかもしれない。プロセッサ100は、このコヒーレンシ情報を利用して、メモリのページをクローズするか、又はメモリの新たなページをオープンするか決定するかもしれない。さらに、プロセッサ100は、プロセッサ100と同じメモリにアクセスする他のプロセッサ又はメモリコントローラと、メモリの特定のページの状態を通信するかもしれない。
一部の実施例では、比較的大量のメモリ帯域幅を必要とするグラフィックテクスチャや他の情報などの情報が、アプリケーションソフトウェアが当該情報を格納するメモリに関して認識せず又は考慮することなく、他のプロセッサ(図示せず)に対応する他のメモリからアクセスされるかもしれない。一実施例では、システムのメモリインタフェースは、DRAMやDRAMアレイ(DIMMなど)などの少なくとも2つのメモリストレージ構成にアドレスを提供し、第2メモリのデータ幅の第1部分を第1プロセッサに、第2メモリの当該データ幅の第2部分を第2プロセッサに供給しながら、第1メモリからのデータ幅の第1部分を第2プロセッサに供給するのと同時に第1メモリからのデータ幅の第1部分を第2プロセッサに供給することによって、それの有効帯域幅を増加させるかもしれない。
一部の実施例では、プロセッサ100は、図1に示されるより多くの又は少ないメモリコントローラを含むかもしれない。さらに、図1のメモリコントローラは、プロセッサ100の内部又は外部にあるかもしれない。図2は、例えば、一実施例によるメモリコントローラが各プロセッサの外部になるデュアルソケットシステムを示すブロック図である。
特に、図2は、それぞれメモリ220と225を制御する対応するメモリコントローラ210と215に接続されるプロセッサ200と205とを示す。図2に示されるように、プロセッサ200と205はそれぞれ、インターコネクト203,207,213及び217を介しメモリコントローラ210と215と通信する。さらに、プロセッサ200と205は、リンク208を介しページ状態情報を通信する。一実施例では、メモリ220と225にアドレスが提供され、それに応答して、データワードが、各メモリの内部若しくは外部又はメモリコントローラ内の1以上のバッファ230,235,240,245にアドレス指定された位置から読み出される。一実施例では、データワードは16ビットであるが、プロセッサ/メモリコントローラ/メモリデータバスの幅に応じた他のサイズとすることも可能である。一実施例では、プロセッサ200がメモリコントローラ215に対応するンバッファ240,245の1つの1/2を読み出すのと同時にメモリコントローラ210に対応するバッファ230,235の1つの1/2を読み込み、プロセッサ205がメモリコントローラ210に対応するバッファ230,235の1つの残りの1/2と、メモリコントローラ215に対応するバッファ240,245の1つの残りの1/2とを読み込むように、1以上のバッファが2つの部分(1/2など)に構成される。
一実施例では、バッファは、対応するメモリにアクセス可能な複数のプロセッサに対応する複数の部分にパーティションされるよう構成可能であるかもしれない。例えば、バッファは、デュアルプロセッサシステムでは1/2にパーティション化され、クアドプロセッサシステムでは1/4にパーティション化され、オクタルプロセッサシステムでは1/8にパーティション化されるよう構成可能であるかもしれない。一実施例では、システムのメモリにアクセスするプロセッサの個数を検出し、それに応答してバッファを自動的に(動的に)パーティション化するのに利用されてもよい。
各メモリコントローラに対応する2つのバッファの1つが読み込まれた後、一実施例では、次のデータワードがメモリからメモリコントローラ210,215の1つに対応する以前に読まれたバッファに読み込まれる間、各メモリコントローラの第2バッファが、同様にして次のクロックエッジにおいて即座に読み込まれる。データが各サイクル又は各1/2のサイクル(ダブルポンプインタフェースのケース)により両方のメモリから又はメモリにプロセッサ200,205によって連続的に読み書きされるように、上記プロセスが無制限のサイクル数だけ継続されてもよい。一実施例では、各メモリのいくつかのページが、新たなページのクローズ/オープンサイクルが各アクセスについて実行不要となるように、オープンのままとされるかもしれない。しかしながら、新たなページがオープンされる必要がある場合、例えば、プロセッサの1つにより使用されているページはクローズされないように、プロセッサの1つは、他方のプロセッサにリンク208を介しクローズされるべきページ又はオープンされるべきページを通知するようにしてもよい。このようにして、2つのプロセッサのページ状態が整合性を維持することができる。
メモリコントローラ210,215は、一実施例では、プロセッサ200,205の内部にあってもよい。図3は、一実施例によるメモリコントローラが各自のプロセッサ300,305の内部になるデュアルソケットシステムを示すブロック図である。一実施例では、バッファ330,335,340,345は、DIMM回路ボードなどのメモリ320,325の内部又は外部に配設される。一実施例では、情報が、図2を参照して説明された技術と整合した方法によりメモリ320,325に対して読み書きされるかもしれない。
図4は、少なくとも1つの実施例が実行可能な図2又は3に係るタイミング図を示す。一実施例によると、図4は、図2及び3に示される各メモリから各プロセッサに通信される1/2のデータに対応するデータ信号410,415,420,425とアドレス401,405とを示す。図4から明らかなように、本発明の実施例は、各1/2クロックサイクル又は、一部の実施例では各クロックサイクルによるデータの読み込みを実現するかもしれない。
図4のタイミング図に示される技術は、異なる2つのメモリから読み込む2より多くのプロセッサを収容するよう拡張されてもよい。図5は、本発明の少なくとも1つの実施例が実行可能なクアドソケットシステムを示す。図5のクアドソケットシステムでは、プロセッサ500−1〜500−4は、ソフトウェアアプリケーションがデータの位置に関して考慮する必要がないように、メモリ510−1〜510−4から読み出す。
図6は、一実施例による図5のクアドソケットシステムに対応するタイミング図を示す。一実施例によると、図6は、図5に示される各メモリから各プロセッサに通信される1/2のデータに対応するアドレス601,602,603,605と、データ信号610,615,620,625,630,635,640,645とを示す。図6から明らかなように、本発明の各実施例は、各1/2クロックサイクル又は一部の実施例では各クロックサイクルによるデータの読み出しを実現するかもしれない。
図7は、本発明の少なくとも1つの実施例を実行するのに利用可能な各処理のフロー図である。一実施例では、処理701において、2つのアドレスが、第1及び第2プロセッサ又は対応するメモリコントローラから2つの異なるメモリ(キャッシュ、DRAMなど)に提供される。処理705において、第1の幅の情報が、メモリに提供されるアドレスにより示される各メモリ内の位置から抽出され、第1及び第2メモリに対応する第1及び第2バッファに一時的に格納される。この時点で、処理710において、第1プロセッサ/メモリコントローラは、第1バッファの1/2と第2バッファの1/2とを同時に読み込み、第2プロセッサは、第1及び第2バッファの残りの1/2を同時に読み込むかもしれない。処理715において、プロセッサが第1及び第2バッファからデータを読み込む間、第2の幅の情報が、第1及び第2プロセッサ/メモリコントローラから第1及び第2メモリへのアドレスにより示される他の位置から抽出され、第1及び第2メモリにそれぞれ対応する第3及び第4バッファに一時的に格納される。処理720において、第1プロセッサ/メモリコントローラは、第3バッファの1/2と第4バッファの1/2とを同時に読み込み、第2プロセッサは、第3バッファと第4バッファの残りの1/2を同時に読み込む。
これらの処理は、データのページ長全体について連続的に繰り返されるか、又は一部の実施例では、以降のページがリード処理のアクセスレートに影響を与えることなくオープン可能なより長く繰り返されてもよい。さらに一部の実施例では、各メモリに対応する2より多く又は少ないバッファが存在してもよい。一実施例では、第1及び第2データ幅はそれぞれ16ビットである。しかしながら、他の実施例では、それらはより大きく又はより小さくてもよい。また、一部の実施例では、上述された処理は、4,8又は何れかの個数のプロセッサ又はメモリ装置に拡張可能である。一実施例では、各プロセッサはグラフィックプロセッサであるが、一部の実施例では、プロセッサのすべて又は一部は、汎用プロセッサ又は汎用プロセッサとグラフィックプロセッサの組み合わせであってもよい。上述された各処理は、一実施例では、複数のデータ要素に対して各処理/各命令を同時に実行することに関するグラフィックアプリケーション、金融アプリケーション、分子モデリングアプリケーション又は他のアプリケーションなどのスループットアプリケーションのパフォーマンスを向上させるのに利用可能である。
本発明の各実施例は、ゲームコンソールや汎用コンピュータプラットフォームを含む各種コンフィギュレーションの各種プラットフォーム上で利用可能である。さらに、各種実施例に関して使用されるプロセッサ及びメモリは、特定のシステム又はアプリケーションの要求及び制約に応じて、いくつかの方法により構成可能である。
図8は、少なくとも1つの実施例が利用可能なデュアルソケットシステムのコンフィギュレーションを示すブロック図である。図8は、メモリ810,815,820,825に接続されるプロセッサ810,805を示す。図8のコンフィギュレーションは、一部のアプリケーションにおいて許容又は所望される回路基板の複数のレイヤにおけるルーティングクロッシングインターコネクト830,835に関するかもしれない。
図9は、少なくとも1つの実施例が利用可能なデュアルソケットシステムの他のコンフィギュレーションを示すブロック図である。図9は、4つのメモリ910,915,920,925に接続される2つのプロセッサ901,905を示す。図9に示されるコンフィギュレーションは、クロッシングインターコネクトが存在しないため、複数のレイヤにおけるルーティングインターコネクトに関するものでないかもしれない。他のコンフィギュレーションもまた、プラットフォーム又はアプリケーションの要求に応じて利用可能である。さらに、本発明の各実施例は、いくつかの異なるインターコネクトトポグラフィ、構成、プロトコルなどを有するいくつかの異なるシステムにおいて利用可能である。
図10は、例えば、本発明の一実施例が利用可能な共有バスコンピュータシステム(FSB(Front−Side−Bus)コンピュータシステムなど)を示す。プロセッサ1001,1005,1010又は1015は、プロセッサコア1023,1027,1033,1037,1043,1047,1053,1057の1つの内部の又は関連付けされる何れかのローカルレベル1(L1)キャッシュメモリ1020,1025,1030,1035,1040,1045,1050,1055からの情報にアクセス可能な非対称なコア(パフォーマンス、パワー、動作電圧、クロック速度又はISAに関して異なる)を含むかもしれない。さらに、何れかのプロセッサ1001,1005,1010又は1015は、共有レベル2(L2)キャッシュ1003,1007,1013,1017から、又はチップセット1065を介しシステムメモリ1060からの情報にアクセス可能である。
本発明の各実施例は、図10に示されるプロセッサ又はエージェントの何れかに存在するかもしれない。例えば、ロジック1019は、少なくとも1つの実施例の各態様を実行するため、プロセッサ1023,1027,1033,1037,1043,1047,1053,1057の何れか又はすべてに搭載されてもよい。特に、ロジック1019は、ページが他のエージェントにより現在アクセスされているか否かに応じて、メモリのページをオープン又はクローズするか判断するため、システム内の他のエージェントからの信号を検出、送信及び解釈するのに利用可能である。他の実施例では、ロジック1019は、複数のエージェントに分散される。さらなる他の実施例では、ロジック1060は、ソフトウェア、ハードウェア又はこれらの組み合わせを含むものであってもよい。
図10に示されるFSBコンピュータシステムに加えて、ポイント・ツー・ポイント(P2P)インターコネクトシステム及びリングインターコネクトシステムを含む他のシステムコンフィギュレーションが、本発明の各種実施例に関して利用可能である。図11のP2Pシステムは、例えば、2つのプロセッサ1170,1180しか住めされていないが、複数のプロセッサを有してもよい。プロセッサ1170,1180はそれぞれ、メモリ112,114と接続するローカルMCH(Memory Controller Hub)1172,1182を有してもよい。プロセッサ1170,1180は、PtPインタフェース回路1178,1188を用いてPtP(Point−to−Point)インタフェース1150を介しデータを交換してもよい。プロセッサ1170,1180はそれぞれ、PtPインタフェース回路1176,1194,1186,1198を用いて各PtPインタフェース1152,1154を介しチップセット1190とデータを交換するかもしれない。チップセット1190はまた、ハイパフォーマンスグラフィックインタフェース1139を介しハイパフォーマンスグラフィック回路1138とデータを交換するかもしれない。
本発明の各実施例は、図11内の何れかのプロセッサ又はエージェントに含まれてもよい。例えば、ロジック1199は、少なくとも1つの実施例の各態様を実行するため、プロセッサ1170,1180の一方又は両方に搭載されてもよい。特に、ロジック1199は、ページが他のエージェントにより現在アクセスされているか否かに応じて、メモリのページをオープン又はクローズするか判断するため、システム内の他のエージェントから信号を検出、送信及び解釈するのに利用可能である。他の実施例では、ロジック1199は、複数のエージェントに分散される。さらなる他の実施例では、ロジック1199は、ソフトウェア、ハードウェア又はこれらの組み合わせを含むかもしれない。
多数の異なるタイプの処理装置が、このようなプロセス再割当技術を利用することにより効果を得ることができる。例えば、処理ユニット600−1〜600−Nは、汎用プロセッサ(マイクロプロセッサなど)であってもよいし、又はマルチコア(1つのダイ上)マイクロプロセッサのためのマイクロプロセッサコアであってもよい。あるいは、複数のパラレルユニット又はコアを備えるシステムにおいて利用可能なデジタル信号プロセッサ、グラフィックプロセッサ、ネットワークプロセッサ又は何れかのタイプの特定用途プロセッサが、処理ユニット間の熱(又はパワー)起動処理シフトから効果を得るかもしれない。処理ユニット又はプロセッサは、少なくとも部分的に機能的な重複を有するか、又は同一であってもよい。すなわち、各処理ユニットは、複数の処理ユニット又はプロセッサ上で実行可能な少なくともいくつかの(すべてではないが)プロセスが存在するように、共通の命令又はコマンドセットを有する。他の実施例では、処理ユニットは、異なるパフォーマンス能力、トランジスタの個数、パワー消費若しくは熱特性、クロック周波数又はISAの何れか又は組み合わせに関して非対称であるかもしれない。
要求されたデータの臨機応変の処理及びリターンを実現するため、少なくとも1つの実施例は、アプリケーションにより要求されたデータを抽出するための最善の(最速など)方法を決定するため、コヒーレンシフィルタを有するかもしれない。例えば、一実施例では、コヒーレンシフィルタは、各エントリがシステムの何れかのプロセッサにより現在アクセス可能なデータに関する情報を有するコヒーレンシテーブルを含むかもしれない。一実施例では、プロセッサのコヒーレンシテーブルは、アプリケーションがデータを要求するとき、プロセッサがまずそれのコヒーレンシテーブルをチェックして、他のプロセッサが当該データを現在有しているか確認できるように、システムの他のプロセッサのキャッシュ、バッファ又は他のストレージ構成内で利用可能なデータを示すアドレスのリストを有する。そうである場合、データは、プロセス間のnワイドインターコネクトを介しデータを抽出することによって、当該リクエストを処理するプロセッサにより抽出されるかもしれない。一実施例では、テーブルはプロセッサのキャッシュ/バッファなどにおいて利用可能なデータの一部しか示さないため(実際には、テーブルは含まれる情報料に関して可変的である)、nワイドプロセッサ間インターコネクトのトラフィックは、コヒーレンシテーブルの情報又はサイズに従って減少又は少なくとも制御可能である。
図12は、コヒーレンシフィルタを含む本発明の一実施例が利用可能なシステムを示す。図12において、プロセッサ1205上で実行されるアプリケーション又はスレッド1240は、プロセッサ1205にアドレスを提供することによってデータをリクエストするかもしれない。その後、プロセッサ1205は、要求されたデータがプロセッサ1200内のバッファ又はキャッシュ内に現在あるか判断するため、プロセッサによりアクセス可能なメモリ又はプロセッサに格納されるコヒーレンステーブル1245にアクセスするかもしれない。例えば、テーブルが、要求されたデータがプロセッサ1200において現在利用可能であることを示す場合、プロセッサ1205は、インターコネクト1208を介しプロセッサ1200からデータを抽出し、これにより、最も臨機応変な方法によりプログラムにデータが提供される。一実施例では、テーブルは、アプリケーション又はスレッド1240によりプロセッサ1205に提供されるアドレスの一部に関して参照される。さらに少なくとも1つの実施例では、異なるテーブル(又は同一のテーブル)は、システムの各プロセッサに対応し、他のプロセッサに検出される要求される各アドレスについてテーブル内にエントリを生成することによって維持される。さらに、各エントリは、データが他のプロセッサ内に検出されないときを示す情報を有してもよく、又はエントリが一緒に削除されてもよい。各種コヒーレンシテーブルの維持スキーム及びアルゴリズムは、インターコネクト1208を介しプロセッサ間に共有される情報を追跡するのに利用されるかもしれない。
少なくとも1つの実施例の1以上の態様は、マシーンにより読み込まれると、マシーンにここに記載された技術を実行するロジックを生成させるプロセッサ内の各種ロジックを表すマシーン可読媒体に格納された典型的なデータにより実現可能である。“IPコア”として知られるこのような表現は、有形のマシーン可読媒体(テープ)に格納され、ロジック又はプロセッサを実際に生成する製造マシーンにロードするため、各種カスタマ又はメーカーに供給されるかもしれない。
マイクロアーキテクチャメモリ領域アクセスに関する方法及び装置が説明された、上記説明は、例示的なものであって限定的なものでないことが理解されるべきである。他の多くの実施例は、上述した記載を参照及び理解することによって、当業者に明らかになるであろう。従って、本発明の範囲は、添付した請求項と、当該請求項が与える均等の完全な範囲とを一緒に参照することにより決定されるべきである。

Claims (30)

  1. 少なくとも2つのメモリに接続される少なくとも2つのプロセッサを有する装置であって、
    前記少なくとも2つのプロセッサの第1プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第1部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第2部分とをクロック信号期間の第1部分内で読み、
    前記少なくとも2つのプロセッサの第2プロセッサは、前記少なくとも2つのメモリの第1メモリに格納されているデータの第3部分と、前記少なくとも2つのメモリの第2メモリに格納されているデータの第4部分とを前記クロック信号期間の第1部分内で読む装置。
  2. 前記第1メモリに接続され、前記データの第1部分と第3部分とが前記第1メモリから読まれた後、前記データの第1部分と第3部分とを格納する第1バッファをさらに有する、請求項1記載の装置。
  3. 前記第2メモリに接続され、前記データの第2部分と第4部分とが前記第2メモリから読まれた後、前記データの第2部分と第4部分とを格納する第2バッファをさらに有する、請求項2記載の装置。
  4. 前記第1プロセッサは、前記第1バッファの第1部分から前記データの第1部分と、前記第2バッファの第3部分から前記データの第3部分とを読む、請求項3記載の装置。
  5. 前記第2プロセッサは、前記第1バッファの第2部分から前記データの第2部分と、前記第2バッファの第4部分から前記データの第4部分とを読む、請求項4記載の装置。
  6. 前記少なくとも第1及び第2プロセッサに接続され、前記少なくとも第1及び第2メモリに対応するページ状態情報を通信するインターコネクトをさらに有する、請求項1記載の装置。
  7. 前記データの第1、第2、第3及び第4部分はそれぞれ、同一のビット幅を有する、請求項1記載の装置。
  8. 前記少なくとも第1及び第2プロセッサは、3次元グラフィック処理を実行する、請求項1記載の装置。
  9. 前記第1クロック期間の第1部分は、前記第1クロック期間の1/2である、請求項1記載の装置。
  10. 前記第1クロック期間の第1部分は、1つのクロック期間である、請求項1記載の装置。
  11. 第2プロセッサにページ状態情報を提供する第1ロジックを有するプロセッサであって、
    前記ページ状態情報は、第1メモリの第1ページがクローズされるべきか否かを有し、
    前記第1ロジックは、前記第2プロセッサが前記第1ページからの情報にアクセスすることを前記第2プロセッサが示す場合、前記第1ページがクローズされることを禁止するプロセッサ。
  12. SIMD(Single−Instruction−Multiple−Data)命令を実行する実行ロジックをさらに有する、請求項11記載のプロセッサ。
  13. 前記ページ状態情報は、当該プロセッサと前記第2プロセッサとの間の専用のインターコネクトを介し通信される、請求項11記載のプロセッサ。
  14. 前記第2プロセッサからページ状態情報を受信する第2ロジックをさらに有し、
    前記ページ状態情報は、第2メモリの第2ページがクローズされるべきか否かを含み、
    前記第2プロセッサは、当該プロセッサが前記第2ページからの情報にアクセスする場合、前記第2ページがクローズされるのを禁止する、請求項11記載のプロセッサ。
  15. 当該プロセッサと前記第2プロセッサはそれぞれ、前記第1及び第2メモリからの情報にパラレルにアクセスする、請求項14記載のプロセッサ。
  16. 当該プロセッサ又は前記第2プロセッサが第3ページの情報にアクセスする場合、前記第1メモリ内で前記第3ページをオープンにする第3ロジックをさらに有する、請求項14記載のプロセッサ。
  17. 3次元グラフィックレンダリングロジックをさらに有する、請求項11記載のプロセッサ。
  18. 前記第2プロセッサは、3次元グラフィックレンダリングロジックを有する、請求項17記載のプロセッサ。
  19. 複数のメモリに接続される複数のプロセッサであって、各プロセッサが前記複数のメモリのそれぞれにパラレルにアクセスする複数のプロセッサと、
    前記複数のプロセッサに接続され、前記複数のプロセッサにページ状態情報を通信する複数のインターコネクトと、
    を有するシステム。
  20. 前記複数のプロセッサのそれぞれに接続される複数のメモリコントローラをさらに有する、請求項19記載のシステム。
  21. 前記複数のメモリコントローラは、前記複数のプロセッサのそれぞれから前記複数のメモリへのアクセスをルーティングする、請求項20記載のシステム。
  22. 各プロセッサは、前記複数のメモリのそれぞれから1/Nビット幅(Nは、前記複数のプロセッサの個数である)のデータワードにアクセスする、請求項19記載のシステム。
  23. 前記複数のメモリのそれぞれは、前記複数のプロセッサによりパラレルにアクセスされるデータを格納するバッファに接続される、請求項22記載のシステム。
  24. 前記バッファは、16ビットを同時に格納する、請求項23記載のシステム。
  25. 各ページが異なるメモリ内にあるメモリの複数のページをオープンするステップと、
    前記メモリの複数のページのそれぞれからのデータにアクセスし、前記データを複数のプロセッサにパラレルに提供するステップと、
    前記メモリの複数のページの少なくとも1つをクローズするよう、前記メモリの少なくとも1つのページを制御しない前記複数のプロセッサの1つのプロセッサから、前記メモリの少なくとも1つのページを制御する前記複数のプロセッサの他のプロセッサに要求するステップと、
    前記複数のプロセッサの他の何れかのプロセッサも前記メモリの複数のページの少なくとも1つのページにアクセスしていない場合、前記メモリの複数のページの少なくとも1つのページをクローズする要求を認めるステップと、
    を有する方法。
  26. 前記複数のプロセッサに前記要求の指示を通信するステップをさらに有する、請求項25記載の方法。
  27. 前記指示は、前記複数のプロセッサに接続される複数の専用のインターコネクトを介し前記複数のプロセッサに通信される、請求項26記載の方法。
  28. 前記複数のプロセッサは、前記複数のメモリからのデータにアクセスする複数のメモリコントローラを有する、請求項27記載の方法。
  29. 前記複数のメモリは、前記複数のプロセッサによりアクセスされるまで、前記データを一時的に格納する複数のバッファを有する、請求項27記載の方法。
  30. 前記複数のプロセッサは、グラフィックプロセッサである、請求項25記載の方法。
JP2009083082A 2008-03-31 2009-03-30 パーティションフリーマルチソケットメモリシステムアーキテクチャ Pending JP2010009580A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/059,193 US8605099B2 (en) 2008-03-31 2008-03-31 Partition-free multi-socket memory system architecture

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013111885A Division JP2013178823A (ja) 2008-03-31 2013-05-28 パーティションフリーマルチソケットメモリシステムアーキテクチャ

Publications (1)

Publication Number Publication Date
JP2010009580A true JP2010009580A (ja) 2010-01-14

Family

ID=41118881

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009083082A Pending JP2010009580A (ja) 2008-03-31 2009-03-30 パーティションフリーマルチソケットメモリシステムアーキテクチャ
JP2013111885A Pending JP2013178823A (ja) 2008-03-31 2013-05-28 パーティションフリーマルチソケットメモリシステムアーキテクチャ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013111885A Pending JP2013178823A (ja) 2008-03-31 2013-05-28 パーティションフリーマルチソケットメモリシステムアーキテクチャ

Country Status (6)

Country Link
US (3) US8605099B2 (ja)
JP (2) JP2010009580A (ja)
CN (1) CN101561754B (ja)
BR (1) BRPI0902775A2 (ja)
DE (1) DE102009016471A1 (ja)
TW (2) TWI437440B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015176292A (ja) * 2014-03-14 2015-10-05 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082400B1 (en) * 2008-02-26 2011-12-20 Hewlett-Packard Development Company, L.P. Partitioning a memory pool among plural computing nodes
US8605099B2 (en) * 2008-03-31 2013-12-10 Intel Corporation Partition-free multi-socket memory system architecture
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
US9218289B2 (en) * 2012-08-06 2015-12-22 Qualcomm Incorporated Multi-core compute cache coherency with a release consistency memory ordering model
US9558796B2 (en) * 2014-10-28 2017-01-31 Altera Corporation Systems and methods for maintaining memory access coherency in embedded memory blocks
US10140158B2 (en) 2016-02-23 2018-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Methods and modules relating to allocation of host machines

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436363A (en) * 1987-07-31 1989-02-07 Meidensha Electric Mfg Co Ltd System for making access to dual port memory
JPH10228413A (ja) * 1997-02-17 1998-08-25 Ge Yokogawa Medical Syst Ltd メモリアクセス制御方法および装置並びにメモリシステム
JP2002132741A (ja) * 2000-10-20 2002-05-10 Hitachi Ltd プロセッサ追加方法、計算機及び記録媒体
JP2005522758A (ja) * 2002-04-10 2005-07-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2006526224A (ja) * 2003-05-27 2006-11-16 インテル コーポレイション マルチcpuシステムのメモリアクセス性能を改善する方法及び装置
JP2011516950A (ja) * 2008-03-31 2011-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ピアツーピア専用プロセッサのアーキテクチャ及び方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495567A (en) 1981-10-15 1985-01-22 Codex Corporation Multiprocessor/multimemory control system
JPS6438363A (en) 1987-08-01 1989-02-08 Yaskawa Denki Seisakusho Kk Slip preventing control in taking-up machine
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5956744A (en) * 1995-09-08 1999-09-21 Texas Instruments Incorporated Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US6092156A (en) 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6219765B1 (en) * 1998-08-03 2001-04-17 Micron Technology, Inc. Memory paging control apparatus
US6219764B1 (en) 1998-08-03 2001-04-17 Micron Technology, Inc. Memory paging control method
US6212598B1 (en) * 1998-11-30 2001-04-03 Micron Technology, Inc. Controlling a paging policy based on a requestor characteristic
ATE259999T1 (de) * 1999-08-31 2004-03-15 Broadcom Corp Speicher ausführung von register-exchange traceback für gigabit ethernet sender-empfänger
US6526483B1 (en) * 2000-09-20 2003-02-25 Broadcom Corporation Page open hint in transactions
JP4128447B2 (ja) * 2000-10-19 2008-07-30 インタラクティック・ホールディングズ・エルエルシー 並列演算及び並列メモリーアクセスのためのスケーラブルなインターコネクト構造
KR100441712B1 (ko) 2001-12-29 2004-07-27 엘지전자 주식회사 확장 가능형 다중 처리 시스템 및 그의 메모리 복제 방법
US20030167379A1 (en) * 2002-03-01 2003-09-04 Soltis Donald Charles Apparatus and methods for interfacing with cache memory
US6717834B2 (en) * 2002-03-26 2004-04-06 Intel Corporation Dual bus memory controller
US7159066B2 (en) * 2002-08-27 2007-01-02 Intel Corporation Precharge suggestion
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7076617B2 (en) * 2003-09-30 2006-07-11 Intel Corporation Adaptive page management
US7165161B2 (en) * 2003-12-09 2007-01-16 Intel Corporation Methods and apparatus for balancing memory access latency and bandwidth
US20050204113A1 (en) * 2004-03-09 2005-09-15 International Business Machines Corp. Method, system and storage medium for dynamically selecting a page management policy for a memory controller
US20060090059A1 (en) * 2004-10-21 2006-04-27 Hsiang-I Huang Methods and devices for memory paging management
US7962724B1 (en) * 2007-09-28 2011-06-14 Oracle America, Inc. Branch loop performance enhancement
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US8605099B2 (en) * 2008-03-31 2013-12-10 Intel Corporation Partition-free multi-socket memory system architecture

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436363A (en) * 1987-07-31 1989-02-07 Meidensha Electric Mfg Co Ltd System for making access to dual port memory
JPH10228413A (ja) * 1997-02-17 1998-08-25 Ge Yokogawa Medical Syst Ltd メモリアクセス制御方法および装置並びにメモリシステム
JP2002132741A (ja) * 2000-10-20 2002-05-10 Hitachi Ltd プロセッサ追加方法、計算機及び記録媒体
JP2005522758A (ja) * 2002-04-10 2005-07-28 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム
JP2006526224A (ja) * 2003-05-27 2006-11-16 インテル コーポレイション マルチcpuシステムのメモリアクセス性能を改善する方法及び装置
JP2011516950A (ja) * 2008-03-31 2011-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ピアツーピア専用プロセッサのアーキテクチャ及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012007893; 後藤弘茂: '2個のGPUダイを密接に連携させたデュアルダイGPUが次のステップ' 後藤弘茂のWeekly海外ニュース , 20071205, PC Watch *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015176292A (ja) * 2014-03-14 2015-10-05 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
TW200949556A (en) 2009-12-01
US20140292772A1 (en) 2014-10-02
US8754899B2 (en) 2014-06-17
US20090248990A1 (en) 2009-10-01
BRPI0902775A2 (pt) 2010-05-25
TW201430571A (zh) 2014-08-01
CN101561754A (zh) 2009-10-21
US20130246719A1 (en) 2013-09-19
CN101561754B (zh) 2019-12-24
US8605099B2 (en) 2013-12-10
DE102009016471A1 (de) 2009-11-12
TWI515571B (zh) 2016-01-01
JP2013178823A (ja) 2013-09-09
US9292900B2 (en) 2016-03-22
TWI437440B (zh) 2014-05-11

Similar Documents

Publication Publication Date Title
JP5918739B2 (ja) Cpu及びgpuの間のリソース共有
KR101574278B1 (ko) 피어투피어 특수 목적 프로세서 아키텍처 및 방법
US7680988B1 (en) Single interconnect providing read and write access to a memory shared by concurrent threads
JP2013178823A (ja) パーティションフリーマルチソケットメモリシステムアーキテクチャ
US8595425B2 (en) Configurable cache for multiple clients
US8335892B1 (en) Cache arbitration between multiple clients
US8645638B2 (en) Shared single-access memory with management of multiple parallel requests
US20110072213A1 (en) Instructions for managing a parallel cache hierarchy
US8619087B2 (en) Inter-shader attribute buffer optimization
US20120079200A1 (en) Unified streaming multiprocessor memory
Bouvier et al. Kabini: An AMD accelerated processing unit system on a chip
US9348751B2 (en) System and methods for distributing a power-of-two virtual memory page across a non-power-of two number of DRAM partitions
EP4152167A1 (en) Scalable address decoding scheme for cxl type-2 devices with programmable interleave granularity
US20110084972A1 (en) Software methods in a gpu
US20110066813A1 (en) Method And System For Local Data Sharing
US8570916B1 (en) Just in time distributed transaction crediting
US20110082961A1 (en) Sharing Data Crossbar for Reads and Writes in a Data Cache
US8489839B1 (en) Increasing memory capacity of a frame buffer via a memory splitter chip
KR101131376B1 (ko) 파션-프리 멀티-소켓 메모리 시스템 아키텍쳐

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120510

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120621

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130129