JP2008544348A - メモリーコントローラ及びネットワークとメモリーの結合方法 - Google Patents
メモリーコントローラ及びネットワークとメモリーの結合方法 Download PDFInfo
- Publication number
- JP2008544348A JP2008544348A JP2008515369A JP2008515369A JP2008544348A JP 2008544348 A JP2008544348 A JP 2008544348A JP 2008515369 A JP2008515369 A JP 2008515369A JP 2008515369 A JP2008515369 A JP 2008515369A JP 2008544348 A JP2008544348 A JP 2008544348A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- memory
- data
- write
- storing
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
メモリー(MEM)をネットワーク(N; IM)に結合するメモリーコントローラ(SMC)を提供する。このメモリーコントローラ(SMC)は、メモリーコントローラ(SMC)をネットワーク(N; IM)に接続するための第1インタフェース(PI)を具えている。第1インタフェース(PI)は、データストリーム(ST1-ST4)を受信及び送信すべく構成されている。ストリーミング・メモリーユニット(SMU)が第1インタフェースに結合され、ネットワーク(N; IM)とメモリー(MEM)との間のデータストリーム(ST1-ST4)を制御する。このストリーミング・メモリーユニット(SMU)は、データストリーム(ST1-ST4)の少なくとも一部分を一時的に記憶するバッファ(B)を具えている。バッファ管理装置(BMU)を設けて、データストリーム(ST1-ST4)のバッファ(B)への一時的記憶を第1及び第2動作モード(1OM; 2OM)で管理する。第1動作モード(1OM)では、メモリー(MEM)に記憶すべきデータストリーム(ST1-ST4)からのデータを、バッファ(B)のある部分が占有されるまで一時的にバッファ(B)に記憶する。第2動作モード(2OM)では、バッファ(B)の上記部分が占有された後に、バッファ管理装置(BMU)がバッファ(B)を、メモリー(MEM)からプリフェッチしたデータをバッファリングするためのプリフェッチバッファ(B)と、メモリー(MEM)に書き戻すデータをバッファリングするための書戻しバッファ(WBB)とに分割する。
Description
本発明は、メモリーコントローラ、及びネットワークとメモリーを結合する方法に関するものである。
E.A. de Kock et al., "YAPI: Application modeling for signal processing systems", Proc. of the 37th. Design Automation Conference, Los Angeles, CA, June 2000, p. 402-405, IEEE 2000
先進の移動(モバイル)装置及び携帯装置の複雑性は増加している。こうした装置の用途、フレキシビリティ(柔軟性)、及びプログラム可能性の常により厳しくなる要求は、装置内部のデータ交換を増大させる。こうした用途を実現する装置は、本明細書ではサブシステムと称するいくつかの機能または処理ブロックから成ることが多い。これらのサブシステムは一般に、分離したICとして実現され、各ICは、ローカルのプロセッサ、バス、及びメモリー等で構成される異なるアーキテクチャを有する。あるいはまた、種々のサブシステムを1つのIC上に集積することができる。システムレベルでは、これらのサブシステムは、リアルタイムのサポートを伴うことの多い特定のサービスを提供するトップレベルの相互接続を経由して互いに通信する。移動電話アーキテクチャにおけるサブシステムの例として、とりわけ、ベースバンドプロセッサ、ディスプレイ、メディアプロセッサ、あるいは記憶装置が挙げられる。PCIエクスプレス(PCI Express)(登録商標)ネットワークは、システムレベルの相互接続の例であり、非同期データ伝送及びフロー制御のようなサービスを提供する。マルチメディア応用のサポートのために、これらのサブシステムは大部分のデータをストリーム(データ流)の様式で交換する。データストリーミング(ストリーム伝送)の例として、メディアプロセッサによってローカル記憶装置から符号化オーディオファイルを読み出し、復号化ストリームをスピーカーに送信することを参照することができる。こうした通信は、しばしばカーン(Kahn)プロセス・ネットワークと称される、FIFO(First-in, First-out:先入れ先出し)バッファ経由で接続されたプロセスのグラフとして記述することができる。カーンプロセス・ネットワークはシステム・アーキテクチャ上にマッピング(対応付け)することができ、これについてはE.A. de Kock et al., “YAPI: Application modeling for signal processing systems”, Proc. of the 37th. Design Automation Conference, Los Angeles, CA, June 2000, p. 402-405, IEEE 2000に記載されている。こうしたアーキテクチャでは、プロセスはサブシステム上にマッピングされ、FIFOバッファはメモリー上にマッピングされ、そして通信はシステムレベルの相互接続上にマッピングされる。
バッファリング(バッファに記憶すること)は、関係するプロセス間のデータストリーミングの適切なサポートにおいて不可欠である。FIFOバッファをストリーミングに使用することは極めて自然であり、ストリーミング用途の(有界)カーンプロセス・ネットワークモデルに従っている。同時に実行されるマルチメディア応用の数の増加と共に、プロセス数、リアルタイムストリーム数、並びに関連するFIFOの数も大幅に増加する。
J. L. Hennessy and D. A. Patterson, "Computer Architecture -- A Quantitative Approach"
多くのシステム・オンチップ(SoC:System-on-Chip)及びマイクロプロセッサシステム内では、バックグランドメモリー(DRAM)をデータのバッファリング用に用いている。データをストリーミング様式で通信し、ストリームとしてメモリーにバッファリングする際には、プリフェッチ・バッファリングを用いることができる。このことは、SDRAMからのデータが事前に読み出され、特別な(プリフェッチ)バッファ内に保持されることを意味する。読出し要求が到着すると、このデータは、通常はオンチップ(チップ上の)SRAMの形で実現されるローカル・プリフェッチバッファから、レイテンシ(待ち時間)なしに供給することができ、さもなければ、バッククランドメモリー(DRAM)によってレイテンシが導入される。このことは、既知の、プロセッサ用のランダムデータのキャッシング(キャッシュ記憶)技術と類似している。ストリーミング用には、キャッシュ内で用いられるデータのランダムアドレス指定よりもむしろ、データの連続(より良い言い方をすれば予測可能な)アドレス指定が用いられる。参考文献:J. L. Hennessy and D. A. Patterson, “Computer Architecture -- A Quantitative Approach”
他方では、DRAM技術により、DRAMはバースト形式でアクセス(読出しまたは書込み)する方が良い。従って、多くの単発的なデータアクセスを特定サイズのアクセスのバーストにまとめる書戻しバッファがしばしば実現される。一旦、最初のDRAMアクセスのための初期処理が、前のアドレスと特定の関係にある(バーストのやり方次第で、例えばその次、その前の)アドレスで行われると、指定回数のアクセス(2/4/8フルページ)については、メモリーの次サイクル毎にアクセスされるデータは、(1サイクル以内の)さらなる遅延なしに記憶または検索することができる。従って、メモリーのストリーミングアクセスについては、すべてのアクセスについてアドレスが同様に増加または減少する際(例えば連続アクセス)には、バーストアクセスは最低の電力消費で最良の性能を提供する。DRAMメモリーの原理に関するそれ以上の情報については、参考文献として本明細書に含めるマイクロン社の128MビットDRAMの仕様を、http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdf等で参照されたい。
本発明の目的は、ネットワークとメモリーを結合するメモリーコントローラ、並びに方法を提供することにある。
この目的は、請求項1に記載のメモリーコントローラ、及び請求項6に記載の、ネットワークとメモリーを結合する方法によって達成される。
従って、ネットワークとメモリーを結合するメモリーコントローラが提供される。このメモリーコントローラは、メモリーコントローラをネットワークに接続するための第1インタフェースを具えている。この第1インタフェースは、データストリームを受信及び送信するように構成されている。ストリーミング・メモリーユニットが前記第1インタフェースに結合されて、ネットワークとメモリーとの間のデータストリームを制御する。このストリーミング・メモリーユニットは、データストリームの少なくとも一部分を一時的に記憶するためのバッファを具えている。バッファ管理装置を設けて、データストリームの前記バッファへの一時的記憶を第1及び第2動作モードで管理する。第1動作モードでは、メモリーに記憶すべきデータストリームからのデータを一時的に、バッファのある部分を占有するまでバッファに記憶する。第2動作モードでは、バッファの前記部分が占有された後に、前記バッファ管理装置がこのバッファを、メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、メモリーに書き戻すデータをバッファリングするための書戻しバッファとに分割する。
従って、こうしたメモリーコントローラで、バッファリング管理及びバッファを動的に構成することができる。データがバックグランドメモリーに記憶されていないが、ストリーミング・メモリーコントローラのバッファにバッファリングされている際には、読出し及び書込みのアクセスに役立ち、かつプリフェッチ及び書戻しのバッファリングを実現するバッファが1つしか存在しない。他方では、データがバックグランドメモリーに記憶されている際には、この単一バッファは動作時間中に動的に2つの部分、即ちプリフェッチ部と書戻し部とに分割される。従って、より単純なバッファの管理、及びより良好なメモリー利用が達成される。
本発明の1つの態様によれば、第1インタフェースがPCIエクスプレス・インタフェースとして実現される。こうしたインタフェースにより、メモリーコントローラをPCIエクスプレス・ネットワークに結合することができる。
本発明の他の態様によれば、第2インタフェースが前記ストリーミング・メモリーユニットに結合されて、メモリーコントローラをメモリーに接続し、このメモリーとの間でデータを、バーストの形で交換する。従って、別なインタフェースが設けられ、これにより、前記メモリーコントローラは、バースト様式で動作中のあらゆるメモリーとの間でデータを交換することができる。
本発明のさらに他の態様によれば、前記第1動作モードでは、前記バッファ管理装置が、バッファの開始アドレスを記憶する開始(スタート)アドレスレジスタ、バッファの終端(エンド)アドレスを記憶する終端アドレスレジスタ、バッファの読出しポインタを記憶する読出しポインタレジスタ、及びバッファの書込みポインタを記憶する書込みポインタレジスタを具えている。第2動作モードでは、前記バッファ管理装置が、バッファの開始アドレスを記憶する開始アドレスレジスタ、終端アドレスを記憶する終端アドレスレジスタ、プリフェッチ開始アドレスを記憶するプリフェッチ開始アドレスレジスタ、プリフェッチ終端アドレスを記憶するプリフェッチ終端アドレスレジスタ、プリフェッチ読出しポインタを記憶するプリフェッチ読出しポインタレジスタ、プリフェッチ書込みポインタを記憶するプリフェッチ書込みポインタレジスタ、書戻しの読出しポインタを記憶する書戻し読出しポインタレジスタ、及び書戻しの書込みポインタを記憶する書戻し書込みポインタを具えている。従って、メモリーコントローラにおけるバッファリングは、第1動作モードにおける4つのポインタ、及び第2動作モードにおける8つのポインタを設けることによって達成することができ、これによりバッファ管理の単純な実現が提供される。
本発明は、ネットワークとメモリーを結合する方法にも関するものである。メモリーコントローラをネットワークに接続するための第1インタフェース経由でデータストリームを受信及び送信する。ネットワークとメモリーとの間のデータストリームは、ストリーミング・メモリーユニットによって制御される。データストリームの少なくとも一部分をバッファに記憶する。このデータストリームのバッファへの一時的記憶は、第1及び第2動作モードで管理する。第1動作モードでは、メモリーに記憶すべきデータストリームからのデータを、バッファのある部分が占有されるまで一時的に記憶する。第2動作モードでは、バッファのこの部分が占有された後に、このバッファを、メモリーからのプリフェッチデータをバッファリングするためのプリフェッチバッファと、メモリーに書き戻すデータをバッファリングするための書戻しバッファとに分割する。
本発明の他の態様は従属請求項に記載されている。
本発明のこれら及び他の態様は、以下に図面を参照しながら説明する実施例を参照すれば明らかになる。
本発明のこれら及び他の態様は、以下に図面を参照しながら説明する実施例を参照すれば明らかになる。
図1に、本発明によるシステム・オンチップ(チップ上の回路システム)の基本アーキテクチャのブロック図を示す。このシステム・オンチップは、少なくとも1つの処理装置P(なお図1には、処理装置は1つだけ示す)またはサブシステム、処理装置Pを結合するための相互接続手段IM、及び何らかの外部装置を示す。処理装置P及び相互接続手段IMはネットワークNとして考えることができる。あるいはまた、相互接続手段IMをネットワークとして考えることもできる。相互接続手段IM上での処理装置Pとの間の通信はストリーミングの様式で実行される。外部メモリーMEMが、メモリーコントローラSMC経由で相互接続手段IMまたはネットワークNに結合されている。外部メモリーMEMはSDRAMとして実現することができる。メモリーコントローラSMCは、相互接続手段IMまたはネットワークのデータフォーマット及びアドレスフォーマットを、メモリーMEMのデータフォーマット及びアドレスフォーマットに変換する働きをする。
ストリームベースの通信を実現するために、バッファを設ける。このバッファは、メモリーMEMに近いメモリーコントローラSMC内に配置することができる。しかし、このバッファは相互接続インフラストラクチャ(例えばアービタまたはブリッジBR)内に、さらには、メモリーMEMをアクセスするサブシステムPの近くに配置することもでき、サブシステムPは専用ASICまたはマイクロプロセッサとして実現することができる。こうしたバッファBはSRAMとして実現することが好ましい。FIFO(ファーストイン・ファーストアウト、先入れ先出し)原理を採用して、バッファを通るデータストリームのデータフローを編成することができる。これに加えて、2つ以上のバッファをシステム内に実現することができる。このことの1つの理由は、多数のストリーム間の分別であり、従って単一ストリーム当たり1つのバッファを実現する。
PCI-Express Base Specification, Revision 1.0, PCI-SIG, July 2002
上記ネットワークはPCIエクスプレス・ネットワークを構成することが好ましい。PCIエクスプレス・ネットワークの基本概念は、PCI-Express Base Specification, Revision 1.0, PCI-SIG, July 2002に記載され、www.pcisig.org等で参照することができる。
図2に、本発明の第1実施例によるストリーミング・メモリーコントローラSMCのブロック図を示す。ストリーミング・メモリーコントローラSMCは、PCIエクスプレス・インタフェースPI、ストリーミング・メモリーユニットSMU、及び外部SDRAMメモリーへのインタフェースとして働く別なインタフェースMIを具えている。ストリーミング・メモリーユニットSMUはバッファ管理装置BMU及びバッファBを具え、バッファBはSRAMメモリーとして実現することができる。SRAMにおけるバッファリングを実現するストリーミング・メモリーユニットSMUは、バッファマネージャ(管理装置)BMUと共に、ネットワークNからのPCIエクスプレス・インタフェースを経由したSDRAMへのアクセスをバッファリングするために使用される。バッファ管理装置BMUは、PCIエクスプレス・インタフェースからの上記SDRAMへの読出しまたは書込みアクセスに反応して、バッファ(更新ポインタのレジスタ)を管理し、データをバッファ(SRAM)からSDRAMへ、及びSDRAMからバッファ(SRAM)へ中継する。
第1実施例によれば、プリフェッチバッファ及び書戻しバッファに事前に別個に記憶したデータをまとめて1つの入力−出力バッファに記憶する。この単一の入力/出力バッファは、別個のレジスタ内に位置する4つまたは8つのポインタの組に関連し、これらのポインタは上記入力−出力バッファの読出し及び書込みアドレスを指示(ポイント)するために使用される。上記4/8個のポインタ/アドレスレジスタの組を含むこの単一のバッファは、書戻しバッファリング及びプリフェッチ・バッファリングとの共用を実現し、これらのバッファリングはさもなければ、完全に独立して処理される。
第1実施例によるバッファリング管理及びバッファは(動作時に)動的に構成することができる。データがバックグランドメモリーに記憶されていない際には、読出し及び書込みアクセスに役立ち、かつプリフェッチ及び書戻しバッファリングを実現するバッファは1つしか存在しない。他方では、データがバックグランドメモリーに記憶されている際には、この単一のバッファは、動作時間中に動的に2つの部分、即ちプリフェッチ部と書戻し部とに分割される。この解決法の利点は、より単純なバッファの管理及びより良好なメモリーの利用にある。
換言すれば、バッファリング管理は2つの動作モードで実行される。第1動作モード1OMでは、単一の入力/出力バッファを設ける。第1動作モード1OMにおけるこの単一バッファのバッファ管理は、バッファ管理装置BMU内に記憶された4つのポインタに基づいて実行され、即ち、バッファ管理装置BMUは、開始アドレスレジスタSAR、終端アドレスレジスタEAR、並びに読出しポインタレジスタRP及び書込みポインタレジスタWPを具えている。
第2動作モード2OMでは、単一入力/出力バッファBがプリフェッチバッファPFBと書戻しバッファWBBとに分割される。バッファ管理はバッファ管理装置によって8つのポインタに基づいて実行され、即ち、バッファ管理装置BMUは開始アドレスレジスタSAR、終端アドレスレジスタEAR,プリフェッチ開始アドレスレジスタPFSR、プリフェッチ終端アドレスレジスタPFER、プリフェッチ読出しポインタPFRP、プリフェッチ書込みポインタPFWP、書戻し読出しポインタレジスタWBRP、及び書戻し書込みポインタレジスタWBWPを具えている。
ストリーミング・メモリーコントローラSMCにおけるバッファリングは、バーストを形成してDRAMのバーストモードアクセスを可能にするように行われる。従って、読出し/書込みバッファ、即ちバッファBを設け、これらはSRAMで実現する。これらのバッファはパケットを集積してバーストを形成する。最初は、これらの読出し及び書込みバッファは単一バッファで実現し、このバッファ自体はFIFOバッファとして作用して外部DRAMはバイパスされる。このバッファが満杯になると、このバッファは読出しバッファと書込みバッファとに分割される。そして、読出し要求がこのバッファ内にプリフェッチされ(事前に取り込まれ)て、読出し要求がレイテンシの範囲内に対処される。書込みバッファは、1つのページ全体に集積されるまでパケットを集積する。これらの書込みバッファはバーストを形成し、バーストモードのアクセスを用いてデータをDRAMに転送し、即ち書き戻す。
図3に、図2のストリーミング・メモリーユニットSMUのブロック図を示す。ここではマルチ(多)ストリーム・バッファリングの論理図を示す。各ストリームST1〜ST4は別個のバッファに関連する。外部SDRAMへのデータアクセスが必要な際には、これらのバッファは2つの部分に分割される。一度に1つのストリームのみが外部SDRAMにアクセスすることができるので、アービタARBを設けて、マルチプレクサ(多重器)MUXと組み合わせてアービトレーション(調停)を実行する。
図4に、第1動作モード1OM中の、図3のSRAMバッファの内容を示す。初期化中には、バッファ管理装置BMUが特定量のメモリー空間をバッファ用に割り当てる。ここでは、バッファは14ワードを含むことができる。またバッファBは、このバッファ用の開始及び終端アドレスSA、EAを別個のレジスタ(2構成のレジスタ、即ち開始アドレスレジスタSAR及び終端アドレスレジスタEAR)に書き込む。バッファ管理装置BMUは、2つのカウンタ、即ち読出しカウンタ(読出しポインタレジスタRP)及び書込みカウンタ(書込みポインタレジスタWP)も維持する。読出し及び書込みカウンタまたはレジスタは、バッファのワードサイズ(ワード長)が乗算されて、バッファの開始アドレスSAに加算するオフセットとして働き、メモリーのデータをアクセスする箇所のアドレスを得る。従って、バッファは4つのポインタ、即ち、それぞれ開始アドレスレジスタSAR及び終端アドレスレジスタEARに記憶されているバッファ開始アドレス及びバッファ終端アドレス、並びにバッファ管理を実現するための読出し及び書込みアドレス、あるいは読出しポインタRP及び書込みポインタWPを必要とする。ここでは、データがバッファBのみにバッファリングされ、(SDRAMのような)バックグランドメモリーには記憶されない。従って、バッファ管理装置BMUへの読出し及び書込みアクセスは、読出し及び書込みポインタによって、バッファの終端におけるラッピング(バッファ先頭に戻るリセット)を動的に変化(増加)させる。
図5に、第2動作モード2OM中の、図3のSRAMバッファの内容を示す。例えばバッファが満杯またはほぼ満杯なので、外部SDRAMにデータを記憶する必要が生じた場合には、バッファは2つの部分、即ちプリフェッチ部PFBと書戻し部WBBとに分割される。このことは任意の瞬時に発生し得る。これら2つの部分は動的に割り当てられ、各々が同じサイズであるが、必ずしもバッファの境界に位置合わせされない。図5の場合には、8つのポインタ(レジスタ)、即ち副部分毎に4つのポインタが必要である。
必要なポインタまたはレジスタは、バッファBの開始アドレスSAを記憶する開始アドレスレジスタSAR、バッファBの終端アドレスEAを記憶する終端アドレスレジスタEAR、プリフェッチ開始アドレスPFSAを記憶するプリフェッチ開始アドレスレジスタPFSR、プリフェッチ終端アドレスPFEAを記憶するプリフェッチ終端アドレスレジスタPFER、プリフェッチ読出しポインタPFRを記憶するプリフェッチ読出しポインタレジスタPFRP、プリフェッチ書込みポインタPFWを記憶するプリフェッチ書込みポインタレジスタPFWP、書戻し読出しポインタWBRを記憶する書戻し読出しポインタレジスタWBRP、及び書戻し書込みポインタWBWを記憶する書戻し書込みポインタレジスタWBWPである。
バッファ管理装置BMUは、連結バッファ管理用に設計されている。読出し及び書込みカウンタは「mod N(Nを法とした剰余)」カウンタであり、即ち、Nまでカウントアップして0から再開し、ここに、
N=(EA−SA)/Buffer_Word_size(バッファのワードサイズ)
である。
バッファへの書込み要求については、データは次式のアドレス:
=SA+(WP×Buffer_Word_size)
に書き込まれる。
バッファからの読出し要求については、データは次のアドレス:
=SA+(RP×Buffer_Word_size)
から取り出され(フェッチされ)る。
バッファBは:
(WP−RP)=0
である際に空であり、バッファBの読出しは阻止(ブロック)される。
バッファBは:
(WP−RP) mod N=N−1
である際に満杯であり、バッファBの書込みは阻止される。
N=(EA−SA)/Buffer_Word_size(バッファのワードサイズ)
である。
バッファへの書込み要求については、データは次式のアドレス:
=SA+(WP×Buffer_Word_size)
に書き込まれる。
バッファからの読出し要求については、データは次のアドレス:
=SA+(RP×Buffer_Word_size)
から取り出され(フェッチされ)る。
バッファBは:
(WP−RP)=0
である際に空であり、バッファBの読出しは阻止(ブロック)される。
バッファBは:
(WP−RP) mod N=N−1
である際に満杯であり、バッファBの書込みは阻止される。
図6に、特に複数のバッファ用のバッファ管理装置の有限状態マシン(FSM:Finite State Machine)における異なる状態のブロック図を示す。ここでは、異なる状態をSの異なる値で示し、状態遷移または条件にCのラベルを付ける。バッファが同じ状態に留まる(即ち、単一の要求に対する多重アクセス)状況では、状態図において自己(回帰)ループが必要であるが、図を簡略化するために、このことは図6には示していない。S=0はリセット状態に対応する。状態S=1は、任意のバッファに対する要求のある状態に関係する。ここでは、要求の種類を特定することになる。状態S=2は、SRAMバッファを読出しバッファと書込みバッファとに分割しないSRAMからの読出し要求に関係する。状態S=3は、SRAMバッファを読出しバッファと書込みバッファとに分割しないSRAMへの書込み要求に関係する。状態S=4は、SRAMバッファを読出し/書込みバッファに分割しなければならないSRAMバッファからの読出し要求に関係する。状態S=5は、SRAMバッファを読出し/書込みバッファに分割しなければならないSRAMへの書込み要求に関係する。状態S=6は、SRAMバッファの書込みバッファから外部SDRAMへのデータ書込みに関係する。状態S=7は、外部SDRAMからのデータ読出しに関係し、データはSRAM読出し(プリフェッチ)バッファに書き込まれる。状態S=8は、メモリー書込みを終了するまで待機する状態(ここでは、1クロックサイクル分の待機)に関係する。状態S=9はアービトレーションに関係し、他の要求は進行中(ここでは、複数クロックサイクル分の待機中)である。
1つの状態から他の状態への遷移は、現在の状態、及びストリーミング・メモリーコントローラSMCへの入力に依存して発生する。条件C=0は、この状態の終了直後の無条件の遷移に関係する。条件C=1は、(複数のメモリーアクセスを行い得る)トランザクション処理の終了直後の条件遷移に関係する。条件C=2/3/4/5/6/7は、適切なメモリーアクセス(S=2/3/4/5/6/7参照)の実行に関係する。条件C=8は、他の要求を処理している際に要求が到着した条件に関係する。
例えば、条件C=0に対してS=0からS=1への状態遷移が発生する。条件C=2に対してS=1からS=2への状態遷移が発生する。条件C=1に対してS=2からS=1への状態遷移が発生する。条件C=3に対してS=1からS=3への状態遷移が発生する。条件C=1に対してS=3からS=8への状態遷移が発生する。条件C=4に対してS=1からS=4への状態遷移が発生する。条件C=1に対してS=4からS=1への状態遷移が発生する。条件C=5に対してS=1からS=5への状態遷移が発生する。条件C=1に対してS=5からS=8への状態遷移が発生する。条件C=7に対してS=1からS=7への状態遷移が発生する。条件C=1に対してS=7からS=1への状態遷移が発生する。条件C=0に対してS=8からS=1への状態遷移が発生する。条件C=8に対してS=1からS=8への状態遷移が発生する。条件C=0に対してS=9からS=1への状態遷移が発生する。
なお、上述した実施例は本発明を限定するものではなく例示するものであり、当業者は本発明の範囲から逸脱することなしに多くの代案実施例を設計することができる。「具えている」等の文言は、請求項中に挙げた以外の要素またはステップの存在を排除するものではない。各要素は複数存在し得る。いくつかの手段を挙げた装置の請求項では、これらの手段のいくつかは同一のハードウェア・アイテムによって具体化することができる。複数の異なる従属請求項中に特定の方策が存在するという単なる事実は、これらの方策の組合せを有利に用いることができないことを示すものではない。
Claims (7)
- メモリーをネットワークに結合するメモリーコントローラにおいて、
前記メモリーコントローラを前記ネットワークに接続するための第1インタフェースであって、データストリームを受信及び送信するように構成された第1インタフェースと;
前記第1インタフェースに結合され、前記ネットワークと前記メモリーとの間の前記データストリームを制御するストリーミング・メモリーユニットであって、前記データストリームの少なくとも一部分を一時的に記憶するバッファと、前記データストリームの前記バッファへの記憶を、第1動作モード及び第2動作モードで管理するバッファ管理装置とを具え、
前記第1動作モードでは、前記データストリームからの前記メモリーに記憶すべきデータを、前記バッファの特定部分が占有されるまで前記バッファに一時的に記憶し、
前記第2動作モードでは、前記バッファの前記部分が占有された後に、前記バッファ管理装置が、前記バッファを、前記メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、前記メモリーに書き戻すべきデータをバッファリングするための書戻しバッファとに分割する
ことを特徴とするメモリーコントローラ。 - 前記第1インタフェースがPCIエクスプレス(登録商標)インタフェースであることを特徴とする請求項1に記載のメモリーコントローラ。
- さらに、
前記ストリーミング・メモリーユニットに結合され、前記メモリーコントローラを前記メモリーに接続し、前記メモリーとバースト形式でデータを交換する第2インタフェースを具えていることを特徴とする請求項1または2に記載のメモリーコントローラ。 - 前記バッファ管理装置が、前記第1動作モードにおいて、
前記バッファの開始アドレスを記憶する開始アドレスレジスタと;
前記バッファの終端アドレスを記憶する終端アドレスレジスタと;
前記バッファの読出しポインタを記憶する読出しポインタレジスタと;
前記バッファの書込みポインタを記憶する書込みポインタレジスタとを具え、
前記バッファ管理装置が、前記第2動作モードにおいて、
前記バッファの開始アドレスを記憶する開始アドレスレジスタと;
前記バッファの終端アドレスを記憶する終端アドレスレジスタと;
プリフェッチ開始アドレスを記憶するプリフェッチ開始アドレスレジスタと;
プリフェッチ終端アドレスを記憶するプリフェッチ終端アドレスレジスタと;
プリフェッチ読出しポインタを記憶するプリフェッチ読出しポインタレジスタと;
プリフェッチ書込みポインタを記憶するプリフェッチ書込みポインタレジスタと;
書戻し読出しポインタを記憶する書戻し読出しポインタレジスタと;
書戻し書込みポインタを記憶する書戻し書込みポインタレジスタと
を具えていることを特徴とする請求項1、2または3に記載のメモリーコントローラ。 - 前記バッファ管理装置が、前記第1動作モードから前記第2動作モードへの遷移を動的に判定するように構成されていることを特徴とする請求項1に記載のメモリーコントローラ。
- メモリーをネットワークに結合する方法において、
メモリーコントローラを前記ネットワークに接続するための第1インタフェース経由でデータストリームを受信及び送信するステップと;
ストリーミング・メモリーユニットによって、前記ネットワークと前記メモリーとの間の前記データストリームを制御するステップと;
前記データストリームの少なくとも一部分をバッファに一時的に記憶するステップと;
前記データストリームの前記バッファへの一時的記憶を、第1動作モード及び第2動作モードで管理するステップであって、
前記第1動作モードにおいて、前記データストリームからの前記メモリーに記憶すべきデータを、前記バッファの特定部分が占有されるまで前記バッファに記憶し、
前記第2動作モードにおいて、前記バッファの前記部分が占有された後に、前記バッファを、前記メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、前記メモリーに書き戻すべきデータをバッファリングするための書戻しバッファとに分割するステップと
を具えていることを特徴とするメモリーのネットワークへの結合方法。 - 処理装置、及び前記処理装置を結合するための相互接続手段を有するネットワークと;
請求項1〜5のいずれかに記載のメモリーコントローラと
を具えていることを特徴とするデータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05105082 | 2005-06-09 | ||
PCT/IB2006/051837 WO2006131899A2 (en) | 2005-06-09 | 2006-06-09 | Memory controller and method for coupling a network and a memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008544348A true JP2008544348A (ja) | 2008-12-04 |
Family
ID=37075059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008515369A Withdrawn JP2008544348A (ja) | 2005-06-09 | 2006-06-09 | メモリーコントローラ及びネットワークとメモリーの結合方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8037254B2 (ja) |
EP (1) | EP1894106A2 (ja) |
JP (1) | JP2008544348A (ja) |
CN (1) | CN100557584C (ja) |
WO (1) | WO2006131899A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008257596A (ja) * | 2007-04-06 | 2008-10-23 | Nec Corp | データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム |
JP2017507438A (ja) * | 2013-12-31 | 2017-03-16 | エルメス−コム エッセ・エレ・エレ・エッセ | Usbディスクを介して制御を交換するための方法、およびその実現を可能にする関連装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619855B2 (en) * | 2011-11-18 | 2017-04-11 | Intel Corporation | Scalable geometry processing within a checkerboard multi-GPU configuration |
US10217270B2 (en) * | 2011-11-18 | 2019-02-26 | Intel Corporation | Scalable geometry processing within a checkerboard multi-GPU configuration |
CN107453999B (zh) * | 2016-05-31 | 2020-10-02 | 新华三技术有限公司 | 一种网络设备和网络报文转发方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5777657A (en) * | 1994-10-14 | 1998-07-07 | Asahi Kogaku Kogyo Kabushiki Kaisha | Thermal printer and thermal printer head driving system |
US6163818A (en) | 1998-08-27 | 2000-12-19 | Xerox Corporation | Streaming memory controller for a PCI bus |
US20020046251A1 (en) * | 2001-03-09 | 2002-04-18 | Datacube, Inc. | Streaming memory controller |
DE10148767A1 (de) * | 2001-10-02 | 2003-04-17 | Thomson Brandt Gmbh | Verfahren und Vorrichtung zur Zwischenspeicherung von über eine eingerichtete Verbindung zu übertragenden Datenpaketen |
US20050253858A1 (en) * | 2004-05-14 | 2005-11-17 | Takahide Ohkami | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams |
JP2008522305A (ja) | 2004-12-03 | 2008-06-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ストリーミングメモリコントローラ |
EP1894108A2 (en) | 2005-06-13 | 2008-03-05 | Nxp B.V. | Memory controller |
-
2006
- 2006-06-09 US US11/917,018 patent/US8037254B2/en not_active Expired - Fee Related
- 2006-06-09 JP JP2008515369A patent/JP2008544348A/ja not_active Withdrawn
- 2006-06-09 EP EP06756095A patent/EP1894106A2/en not_active Withdrawn
- 2006-06-09 WO PCT/IB2006/051837 patent/WO2006131899A2/en not_active Application Discontinuation
- 2006-06-09 CN CNB2006800201409A patent/CN100557584C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008257596A (ja) * | 2007-04-06 | 2008-10-23 | Nec Corp | データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム |
JP2017507438A (ja) * | 2013-12-31 | 2017-03-16 | エルメス−コム エッセ・エレ・エレ・エッセ | Usbディスクを介して制御を交換するための方法、およびその実現を可能にする関連装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2006131899A2 (en) | 2006-12-14 |
CN101194241A (zh) | 2008-06-04 |
US20080201537A1 (en) | 2008-08-21 |
WO2006131899A3 (en) | 2007-04-26 |
EP1894106A2 (en) | 2008-03-05 |
CN100557584C (zh) | 2009-11-04 |
US8037254B2 (en) | 2011-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141568B2 (en) | Proportional memory operation throttling | |
US7269709B2 (en) | Memory controller configurable to allow bandwidth/latency tradeoff | |
EP1820309B1 (en) | Streaming memory controller | |
EP1894107B1 (en) | Memory controller and method for coupling a network and a memory | |
US20120137090A1 (en) | Programmable Interleave Select in Memory Controller | |
WO2006018802A1 (en) | Processing apparatus with burst read write operations | |
US20050253858A1 (en) | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
US8037254B2 (en) | Memory controller and method for coupling a network and a memory | |
US8458406B2 (en) | Multiple critical word bypassing in a memory controller | |
EP1894108A2 (en) | Memory controller | |
JP4812058B2 (ja) | Fifo管理方法及びパイプラインプロセッサシステム | |
US8706925B2 (en) | Accelerating memory operations blocked by ordering requirements and data not yet received | |
US8856459B1 (en) | Matrix for numerical comparison | |
JP5058116B2 (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
JP2005508549A (ja) | アンキャッシュ素子のための帯域幅の向上 | |
JP2003099324A (ja) | マルチメディアプロセッサ用のストリーミングデータキャッシュ | |
US9672168B2 (en) | System interconnection of system-on-chip | |
US7930459B2 (en) | Coherent input output device | |
JP5211537B2 (ja) | インターフェース回路 | |
JP2012178637A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20080902 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090609 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090609 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090831 |