JP2008522305A - ストリーミングメモリコントローラ - Google Patents
ストリーミングメモリコントローラ Download PDFInfo
- Publication number
- JP2008522305A JP2008522305A JP2007543968A JP2007543968A JP2008522305A JP 2008522305 A JP2008522305 A JP 2008522305A JP 2007543968 A JP2007543968 A JP 2007543968A JP 2007543968 A JP2007543968 A JP 2007543968A JP 2008522305 A JP2008522305 A JP 2008522305A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- network
- streaming
- mem
- memory controller
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
- Vehicle Body Suspensions (AREA)
- Magnetically Actuated Valves (AREA)
- Bus Control (AREA)
Abstract
メモリ(MEM)をネットワーク(N)に結合するメモリコントローラ(SMC)を設ける。メモリコントローラ(SMC)は、第1インタフェース(PI)と、ストリーミングメモリユニット(SMC)と第2インタフェース(MI)とを具える。第1インタフェース(PI)は、データストリーム(ST1〜ST4)を送受信するためにメモリコントローラ(SMC)をネットワーク(N)に接続するために用いられる。ストリーミングメモリユニット(SMU)は、ネットワーク(N)とメモリ(MEM)との間でデータストリーム(ST1〜ST4)を制御するために第1インタフェース(PI)に結合される。ストリーミングメモリユニット(SMU)は、データストリーム(ST1〜ST4)の少なくとも一部を一時的に格納するバッファ(B)と、バッファ(B)におけるデータストリーム(ST1〜ST4)の一時的な格納を管理するバッファ管理ユニット(BMU)とを具える。第2インタフェース(MI)は、バースト中でメモリ(MEM)のデータ交換を行うためにメモリコントローラ(SMC)をメモリ(MEM)に接続するようストリーミングメモリユニット(SMU)に結合される。ストリーミングメモリユニット(SMU)は、ネットワーク(N)のネットワークサービスをメモリ(MEM)上で実現する。
Description
本発明は、メモリコントローラ及びネットワークとメモリとを結合する方法に関する。
移動装置及び携帯装置が進歩するに従って複雑さが増大する。そのような装置のアプリケーションの要求が更に多くなると、複雑さ、柔軟性及びプログラム可能性の要求は、装置内でのデータ交換を更に共用する。そのようなアプリケーションを実現する装置はしばしば、ここではサブシステムと称される複数の機能ブロック又は処理ブロックから構成される。これらサブシステムは、典型的には個別のICとして実現され、その各々は、ローカルプロセッサ、バス、メモリ等から構成される互いに相違する内部アーキテクチャを有する。種々のサブシステムをICに集積することもできる。システムレベルにおいて、これらサブシステムは、しばしばリアルタイムサポートで所定のサービスを提供するトップレベル相互接続を通じて互いに通信を行う。携帯電話アーキテクチャのサブシステムの一例として、特に、ベースバンドプロセッサ、ディスプレイ、メディアプロセッサ又は記憶素子を有することができる。マルチメディアアプリケーションのサポートに対して、これらサブシステムは、大抵のデータをストリームの形態でやりとりする。データストリーミングの一例として、メディアプロセッサによるMP3符号化オーディオファイルのローカルメモリからの読出し及び復号ストリームのスピーカへの送信を参照されたい。図1は、FIFOバッファBを通じて接続されたプロセスP1〜P4のグラフとして記載することができるそのような通信の基本形態を示す。そのような形態は、しばしばカーンプロセスネットワークと称される。E.A. De Kock et al., “YAPI: Application modeling for signal processing systems”. In Proc. of the 37th. Design Automation Conference, Los Angels, CA, June 2000, pages 402-405. IEEE, 2000に記載されているように、カーンプロセスネットワークをシステムアーキテクチャにマッピングすることができる。そのようなアーキテクチャにおいて、プロセスはサブシステムにマッピングされ、FIFOバッファはメモリSMEMにマッピングされ、通信はシステムレベルインターコネクトIMにマッピングされる。
バッファリングは、含まれるプロセス間のデータストリーミングの適切なサポートに必須である。典型的には、FIFOバッファは、ストリーミングアプリケーションの(境界のある)カーンプロセスネットワークモデルに従うストリーミングに対して用いられる。複数のプロセスを同時に実行することができるマルチメディアアプリケーションの数が増大すると、リアルタイムストリーム及び関連のFIFOの個数も増大する。
メモリの使用及びFIFOの割当てに関するストリーミングの二つの最終的な実現が存在する。第1の実現は、物理的に分布したメモリを使用し、この場合、FIFOバッファはサブシステムのローカルメモリに割り当てられる。第2の実現は、物理的及び論理的に一体になったメモリを使用し、この場合、FIFOバッファは、しばしばオフチップの共有メモリに割り当てられる。これらの組合せも可能である。
FIFOバッファを、外部DRAM技術を用いて共有メモリで実現することができる。SDRAM及びDDR−SDRAMは、シリコン領域比に対して非常に魅力的なコストを有する大容量の外部メモリを低コストで提供する技術である。
図2は、供給メモリストリーミングフレームワークを有するシステムオンチップの基本アーキテクチャを示す。処理ユニットC,Sは、バッファBを通じて互いに通信を行う。処理ユニットC,S及びバッファをそれぞれ、相互接続手段IMに結合するインタフェースユニットIUに関連させる。共有メモリデータ交換の場合、メモリを他の目的に用いることもできる。メモリを、例えば、メインプロセッサ上で実行するプログラムの処理に対するコード実行又はダイナミックメモリ割当てに用いることもできる。
相互接続手段、インタフェースユニット、処理ユニットC,S及びバッファBを有するそのような通信アーキテクチャ又はネットワークは、バッファのアンダーフロー又はオーバーフローのためにデータが消失しないように、誤りのないデータ転送のための保証されたスループット又は保証された配送やソース要素と宛先要素との間の同期をとる同期サービスのような所定のデータ転送保証を与える特定の転送機能及び各インフラストラクチャを提供する。これは、リアルタイムストリーミング処理がシステムによって実行されるとともにリアルタイムサポートが構成要素の全てに対して要求される場合に重要になる。
多数のシステムオンチップ(SoC)及びマイクロプロセッサシステム内で、バックグランドメモリ(DRAM)がデータのバッファリングに用いられる。データがストリーミング形態で通信され、ストリームとしてメモリ中でバッファリングされるとき、プリフェッチバッファリングを用いることができる。これは、データがSDRAMから予め読み出されるとともに特定の(プリフェッチ)バッファに保持されることを意味する。読み出された要求が到達すると、データを、バックグランドメモリ(DRAM)によって導入されうるレイテンシーなく、オンチップSRAMで通常実現されるローカルプリフェッチバッファから送り出すことができる。これは、プロセッサに対するランダムデータの既知のキャッシング技術と同様である。ストリーミングに対しては、キャッシュで用いられるランダムアドレスではなくデータの連続的な(好適には予測可能な)アドレス指定がプリフェッチバッファで用いられる。更に詳しくは、J.L. Hennessy及びD.A.Pattersonの”Computer Architecture -- A Quantitative Approach”を参照されたい。
一方、DRAM技術によりバースト中で(読出し又は書込み)DRAMにアクセスするのが好ましい。しがたって、しばしば、多数の単一データアクセスを所定のサイズのアクセスのバーストに集めるライトバックバッファが実現される。一度初期プロセスが最初のDRAMアクセスに対して行われると、メモリの次のサイクルごとにアクセスされる、以前のアドレスに関連するアドレス(例えば、バーストポリシーに応じた次の又は以前のもの)を有する次のデータワードの各々を、所定の数のアクセス(2/4/8/全ページ)に対して更なる遅延なく(1サイクル内で)記憶することができる。したがって、メモリに対するストリーミングアクセスに対して、各アクセスに対して同様にアドレスが増加し又は減少する(例えば、連続的なアドレス指定)とき、バーストアクセスは、最低の電力消失で最高のパフォーマンスを提供する。DRAMの原理に関する更なる情報に対して、マイクロンの128メガビットのDDRRAM仕様http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfを参照されたい。これは、参照によって組み込まれる。
これまで、外部DRAMのコントローラは、バスに基づくアーキテクチャで動作するように設計されてきた。バスは、データ転送の限定されたサービス、簡単な媒体アクセス制御及び最善のデータ転送しか提供しない。そのようなアーキテクチャにおいて、バスに自動的にアクセスするユニットは、共有メモリにアクセスする。さらに、そのようなシステムで用いられるメモリコントローラは、多数の小さいレイテンシーの読出し又は書込みを行うために最適化され、しばしばプロセッサランダムキャッシュのようなバーストアクセスに対して調整されたブロックにアクセスするだけである。コントローラの低レイテンシー、高バンド幅及び高速な最適化の他の影響として、外部DRAMの電力消失が比較的高いことがある。
しかしながら、上記ネットワークサービスは、ネットワーク内しか適用できない。ネットワークの外側の構成要素でデータ交換が行われると、ネットワークサービス保証に適合されない。共有メモリアーキテクチャ内では、バッファリングされたデータは、データをメモリに転送し及びメモリから転送する必要があるために典型的には物理的に統合されたメモリを通じてやり取りされ、これにより、メモリコントローラとメモリそれ自体のいずれもネットワークサービスのいずれもサポートしないので、データは、ネットワークによって供給されたサービスを中断する。
本発明の目的は、ネットワークとメモリとの間の通信の予測可能な動作をメモリと共に向上する、ネットワーク及びメモリを結合するメモリコントローラ及び方法を提供することである。
この目的は、請求項1記載のメモリコントローラ並びに請求項6記載のネットワーク及びメモリを結合する方法によって解決される。
メモリ及びネットワークを結合するメモリコントローラを提供する。メモリコントローラは、第1インタフェースと、ストリーミングメモリユニットと、第2インタフェースとを具える。第1インタフェースは、データストリームを送受信するようメモリコントローラをネットワークに接続するのに用いられる。ストリーミングメモリユニットは、第1インタフェースに結合されてネットワークとメモリとの間のデータストリームを制御する。ストリーミングメモリユニットは、データストリームの少なくとも一部を一時的に格納するバッファと、バッファへのデータストリームの一時的な格納を管理するバッファ管理ユニットとを具える。第2インタフェースは、ストリーミングメモリ予ニットに結合され、データバーストをメモリとやりとりするためにメモリコントローラをメモリに接続する。ネットワークのネットワークサービスをメモリ上で実現するストリーミングメモリユニットを提供する。
したがって、そのようなメモリコントローラによって、ネットワークによって提供されるようなネットワークサービスを実現しないメモリを、特定のネットワークサービスをサポートする通信ネットワークに統合することができる。換言すれば、同一サービスを、ネットワーク内で通信されるデータ又はメモリサブシステムとのやりとりが行われるデータに適用することができる。
本発明の一態様によれば、第1インタフェースを、PCIエクスプレスネットワークの特性及びネットワークサービスをメモリコントローラによって実現できるようにPCIエクスプレスインタフェースとして実現する。
本発明の他の態様によれば、メモリは、少なくとも部分的にFIFOとして構成し、ストリーム識別子を、ネットワークからの各データストリームに関連させる。データストリームのストリーム識別子に従って特定のデータストリームをメモリの特定のFIFOに向けることによってネットワークからのデータ及びネットワークへのデータを制御するストリーミングメモリユニットを提供する。さらに、メモリにアクセスするために種々のデータストリーム間でアービトレーションを行う。第2インタフェースは、比較的粗いデータストリームをメモリとやりとりし、比較的密なデータストリームをネットワークとやりとりする。データストリームのストリーム識別子がデータストリームをメモリのFIFOにマッピングするのに用いられるので、簡単なアドレス指定形態が実現される。
本発明の他の態様によれば、ネットワークをPCIエクスプレスネットワークとして実現し、PCIエクスプレスIDを、アドレス指定のためにネットワーク中で用いる。この場合、第1インタフェースはPCIエクスプレスインタフェースとして実現される。ストリーミングメモリユニットは、PCIエクスプレスIDをFIFOメモリアドレスに変換するとともにFIFOメモリアドレスをPCIエクスプレスIDに変換する。したがって、PCIエクスプレス装置アドレス指定形態は、メモリ内のFIFOバッファをアドレス指定するのに用いられる。
本発明は、メモリをネットワークに結合する方法にも関する。データストリームは、メモリコントローラをネットワークに接続するために第1インタフェース(PI)を通じて送受信される。ネットワークとメモリとの間のデータストリームは、ストリーミングメモリユニット(SMU)によって制御される。データストリームの少なくとも一部は、一時的にバッファに格納される。ストリーミングメモリコントローラは、第2インタフェースを通じてメモリに結合され、データは、バースト形態でメモリとやりとりされる。ネットワークのネットワークサービスはメモリ上で実現される。
本発明は、共有メモリに関連したストリーミングメモリコントローラを導入する概念に関する。ストリーミングメモリコントローラは、ネットワークと同一サービスを提供することができる。そのようなサービスを、フロー制御、仮想チャネル、及びネットワークバンド幅アービトレーションに適合したメモリバンド幅アービトレーションとすることができる。ネットワークによって保証されたそのようなサービスは、メモリ中でバッファリングするためにデータをネットワークに残した場合にはメモリコントローラによっても保証される。このようなネットワークサービスの統合は、データの宛先からソースまで保持される。
本発明の他の態様は従属項にある。
本発明のこれら及び他の態様を、添付図面に関連して後に説明する実施の形態を参照しながら明らかにする。
図3は、第1の実施の形態によるシステムオンチップのブロック図を示す。消費者C及び製造者Pは、PCIエクスプレスネットワークPCIEに結合される。製造者Pと消費者Cとの間の通信は、ネットワークPCIEと、(外部)メモリMEM用のストリーミングメモリコントローラSMCとによって行われる。(外部)メモリMEMを、DRAM又はSDRAMとして実現することができる。製造者Pと消費者Cとの間の通信がストリームに基づく通信であるので、この通クレジットのFIFOバッファを外部メモリMEMに設ける。
図3によるストリーミングメモリコントローラSMCは、二つのインタフェース:PCIエクスプレス構造に対するインタフェース及びDRAMに対するインタフェースを有する。ストリーミングメモリコントローラSMCのPCIエクスプレスインタフェースは、PCIエクスプレスネットワークPCIEのトラフィックルールに適合するためにSDRAM MEMから受信したデータ上でトラッフィクシェーピングを実行する必要がある。ストリーミングメモリコントローラSMCの他のインタフェース上では、DRAMに対するアクセスがバースト中で実行される。その理由は、DRAMに格納されたデータをこのモードでアクセスするのが電力消費に対して最も有利であるからである。ストリーミングメモリコントローラSMCそれ自体は、種々のストリーム間でDRAMに対するアクセスのインテリジェントなアービトレーションを行ってアクセスのスループット及びレイテンシーを保証する必要がある。さらに、SMCは、スマートなFIFOバッファ管理に対する機能も提供する。
PCIエクスプレスネットワークの基本的な概念は、”PCI Express Base Specification, Revision 1.0”, PCI-SIG, July 2002, www.pcisig.orgに記載されている。
ストリーミングメモリコントローラの設計に考慮されるPCIエクスプレスネットワークの特徴は、アイソクロノスデータ転送のサポート、フロー制御及び特定のアドレス指定形態である。アイソクロノスサポートは、主に、仮想チャネルVCによるアイソクロノストラフィックとアイソクロノスでないトラフィックとの分離に基づく。その結果、バンド幅やバッファのようなネットワークリソースは、種々の仮想チャネルVCのストリーム間の干渉がないことが保証されるように特定のストリームに対するスイッチ構成で明確にリザーブされる。さらに、スイッチ構成のアイソクロノストラフィックは、スケジューリング、すなわち、アドミッション制御及びサービス規律によって調整される。
フロー制御は、バッファのアンダーフロー/オーバーフローのためにネットワークPCIEでデータが消失しないことを保証するためにクレジットに基づいて実行される。各ネットワークノードは、受信ノードがデータを受信するのに十分なスペースを有するときにネットワークパケットをネットワークリンクを通じて他のネットワークノードに送信するためにのみ割り当てられる。各仮想チャネルVCは、専用のフロー制御インフラストラクチャを具える。したがって、チェーン化されたPCIエクスプレスフロー制御を通じて各仮想チャネルVCに対して個別にソースと宛先との間の同期を実現することができる。
PCIエクスプレスアドレス指定形態は、典型的には32又は64ビットのメモリアドレスを用いる。明確なメモリアドレスが用いられないので、装置及び機能IDすなわちストリームIDが、種々のストリーム間で区別を行うために用いられる。メモリコントローラSMCそれ自体は、ストリームIDを発生してそれを実際のメモリアドレスに変換する。
アドレス指定形態を更に簡単にするために、仮想チャネルVCのIDをストリーム識別子として用いる。PCIエクスプレスが8個までの仮想チャネルVCを許容するので、その半分を入力ストリームを識別するのに用いるとともに、それ以外の半分を外部メモリから出力するストリームを識別するのに用いることができる。従って、メモリコントローラSMCを通じてメモリにアクセスすることができるストリームの最大数が8に制限される。そのような制限は、同一の仮想チャネルVC内のストリーム間ではなく種々のVCのストリーム間のアービトレーションを許容するPCIエクスプレスによるものである。しかしながら、そのような制限は、PCIエクスプレスに基づくシステムのみに特有のものであり、本発明の概念の基礎となるものではない。
要約すると、メモリコントローラSMCのPCIエクスプレスインタフェースは、アドレス変換及びストリーム識別に必要な論理を追加した完全なPCIエクスプレスインタフェースからなる。
第1の実施の形態において、(DDR)SDRAMを用いる。一例として、マイクロンの128メガビットDDRRAM仕様に記載されたようなマイクロンの128メガビットDDR−SDRAMと称することができ、http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfを用いることができる。そのような技術は、所望の電力消費及びタイミング動作を行うので望ましい。しかしながら、設計がパラメータ化され、メモリコントローラSMCを、単一のレートメモリで動作するように構成することができる。データ線のタイミングを除いてDDR−SDRAMがSDRAMと同様に動作するので、SDRAMの概念を用いて基本を説明する。
PCIエクスプレスネットワークPCIEは、リアルタイムストリームによって横切られる装置の限定的なリソース/バンド幅リザベーションを通じてネットワークサービス、例えば、保証されたリアルタイムデータ転送を提供する。標準的なコントローラによってサポートされる外部DRAMがPCIエクスプレス構成に接続されるとき、間にインテリジェントメモリを有することなく、典型的にはPCIエクスプレスによって設けられたバンド幅及び遅延保証がメモリによって実現されない。その理由は、メモリがなんら保証を与えず、入力トラフィックに対して「スレーブ」として機能するからである。
標準的間メモリコントローラの設計は、あり得る最も低いレイテンシーのあり得る最も高いバンド幅を発生することに注意が向けられる。そのような手法は、プロセッサデータ及び命令(キャッシュ)アクセスに適しているが、アイソクロノストラフィックに適していない。外部DRAMによって拡張したPCIエクスプレスネットワークの予測可能な動作を提供するために、ストリーミングの際に外部メモリの予測可能な動作を保証するストリーミングコントローラが必要とされる。さらに、スループット及びラテンシーを保証するだけでなくこのDRAMのアクセス中の消費電力を減少するメモリコントローラを設計することを目的とする。
図4は、メモリクロックがイネーブルされたとき、すなわち、メモリがパワーアップモードの一つであるときの状態のSDRAMの論理的なアーキテクチャを示す。SDRAMは、論理ユニットLと、メモリアレイARと、データ行DRとを具える。クロックがディスエーブルされると、メモリは低電力状態(パワーダウンモード)になる。
メモリに供給される典型的なコマンドは、アクティブACT、プリチャージPRE、読出し/書込みRD/WR及びリフレッシュである。アクティブコマンドは、チャージ後にバンク及び行アドレスを選択するとともに(しばしばページと称される)データ行がセンス増幅器に転送されるようにする。データは、プリチャージコマンドがアレイ中の適切なセルに再びデータを格納するまでセンス増幅器に残った状態である。データがセンス増幅器SAMで利用できるとき、メモリはアクティブ状態であると考えられる。そのような状態の間、読出し及び書込みを行うことができる。プリチャージコマンド後、メモリは、全てのデータがメモリセルに格納されるプリチャージ状態であると考えられる。メモリ動作の他の関心のある態様は、リフレッシュである。SDRAMのメモリセルは、小型のキャパシタを用いてデータを格納し、これらメモリセルを、データの完全性を保証するために規則的に再チャージする必要がある。電源を入れると、SDRAMは、リフレッシュを実行するようコントローラによって命令される。電源を切ると、SDRAMは、セルフリフレッシュモード(すなわち、クロックがイネーブルされない。)に入り、メモリは、それ自体でリフレッシュを行う。この状態は、電力をほとんど消費しない。メモリを、セルフリフレッシュモードから、読出し又は書込みのためにデータをアサートできる状態にすると、他のモードに比べて多くの時間(例えば、特にDDR−SDRAMに対して200クロックサイクル)を要する。
メモリのタイミング及び電力管理は、特定のバンド幅、レイテンシー及び電力を保証する必要があるメモリコントローラSMCの適切な設計に重要である。アクティブなSDRAMから(1キロバイトに等しい)ページ全体を読み出すと、1読出しバースト長に対して約2560クロックサイクル(〜19.2μs)を要し、8読出しバースト長に対して768クロックサイクル(〜5.8μs)を要し、完全なページバーストに対して516クロックサイクル(〜3.9μs)しか要しない。これらの値は、マイクロンの128メガビットDDRRAM仕様http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfに記載されたように7.5nsのクロック周期の特定の128メガビットのDDR−SDRAMに基づく。
図5は、第2の実施の形態によるストリーミングメモリコントローラSMCのブロック図を示す。ストリーミングメモリコントローラSMCは、PCIエクスプレスインタフェースPIと、ストリーミングメモリユニットSMUと、(外部)SDRAMに対するインタフェースとして機能する他のインタフェースMIとを具える。ストリーミングメモリユニットSMUは、バッファ管理ユニットBMUと、SRAMとして実現することができるバッファBと、アービタARBとを具える。SRAMでバッファリングを実現するストリーミングメモリユニットSMUは、PCIエクスプレスインタフェースを通じたSDRAMへのアクセスをバッファリングするのに用いられるバッファマネージャと共にある。バッファ管理ユニットBMUは、PCIエクスプレスインタフェースからSDRAMへの読出し又は書込みアクセス、バッファ(アップデートポインタのレジスタ)の管理並びにバッファ(SRAM)及びSDRAMに対するデータの中継に応答する。特に、バッファ管理ユニットBMUは、FIFOマネージャ及びストリームアクセスユニットSAUを具えることができる。
ストリームアクセスユニットSAUは、各ストリームに対するストリームID、アクセスタイプ及び実際のデータを提供する。仮想チャネル番号VC0〜VC7に基づいてPCIエクスプレスインタフェースから受信した各パケットに対して、ストリームアクセスユニットSAUは、データを、ローカルな共有SRAMで実現される適切な入力バッファに送り出す。SDRAMのFIFOから検索されるとともにローカルなSRAMの出力バッファBに配置されたデータに対して、宛先アドレスを発生するとともにデータをPCIエクスプレスインタフェースに送り出す。アービタARBは、どのストリームが(DDR−)SDRAMにアクセスできるか決定する。SRAMは、プリフェッチ及びライトバックのために入出力バッファリングを実現する。SMCの中心にあるFIFOマネージャは、ストリームのアドレス発生、アクセスポインタ更新及び他の制御を通じてメモリのFIFO機能を実現する。
図6は、ストリーミングメモリコントローラSMCの論理的なブロック図を示す。ストリームST1〜SST4の各々を個別のバッファに関連させる。一度に一つのストリームのみが外部のSDRAMにアクセスすることができるので、マルチプレクサMUXと組み合わせてアービトレーションを実行するアービタARBを設ける。
互いに相違するリアルタイムストリーム間のメモリアクセスのアービトレーションは、スループット及び制限されたアクセス遅延を保証するのに必須である。データがメモリに書き込まれ又はメモリから読み出されると常に全ページが書き込まれ又は読み出され、すなわち、アクセスがバースト中で実行されると仮定する。(読出し及び書込み動作に対して僅かに異なる)1ページにアクセスするのに必要な時間を、タイムスロットと称することができる。サービスサイクルは、固定された数のタイムスロットからなるものと規定される。アクセスシーケンスは、新たなサービスサイクルが開始されるごとに繰返し及びリセットを行う。
第2の実施の形態によるストリーム間のアービトレーションアルゴリズムは、クレジットに基づく。各ストリームは、リザーブされた複数のクレジット(タイムスロット)を取得し、それは、各サービスサイクルで同一である。クレジットの数は、ストリームのバンド幅の要求を反映する。アクセスがストリームに対して許可される度に、許可されたストリームに対して利用できるクレジットの数が減少する。ストリームごとのクレジット数は、アービトレーションが生じる度に更新される。さらに、クレジットは、アービトレーションの周期を保証するためにサービスサイクルの終了時にリセットされる。長時間に亘って適切なアービトレーションが必要とされる場合に以前のサービスサイクルのアービトレーションメモリを提供するためにのみ、クレジット数をリフレッシュすることもできる(例えば、全てを全ての計数の最低値まで減少する。)。極端な場合には、無限に長い単一のサービスサイクルを用いることができる。
複数のストリームが同一タイムスロットでメモリにアクセスすることを所望するとき、クレジット計数がアービトレーション基準としてもちいられる。(現在のサービスサイクルととの用いられたクレジットとリザーブされたクレジットとの間の比として比較して測定された)クレジットの最小のものを用いたストリームがアクセスを得る。拒否された要求は、次のタイムスロットに対してバッファリング及びスケジューリングされる(又は他の到来する要求とアービトレーションを行う。)。クレジット比が二つの要求ストリームに対して同一である場合、要求するアクセスレイテンシーが低いものが先にアクセスを取得する(例えば、書込みより先に読出しを行う。)。
このようにして、各ストリームは、(要求する場合には)到来する要求の順序又は他のストリームの動作に関係なくサービスサイクルごとのメモリに対するリザーブされたアクセス数をワーストケースで取得する。これは、各ストリームに対してバンド幅の要求が適合されることを保証する。
きこで、クレジットに基づくアービトレーションアルゴリズムの一例を更に詳しく説明する。タイムスロットは、既に計算したように3.9μsとなるSDRAM MEMに対するページ(1KB)アクセスに等しく規定される。さらに、サービスサイクルが60タイムスロットを有する、したがって、234μsに等しいと仮定される。したがって、1秒ごとに4273サービスサイクルが存在し、その結果、約2ギガビット/秒(4237*60*1KB)の全メモリバンド幅となる。各々が350メガビット/秒、700メガビット/秒及び1050メガビット/秒のバンド幅要求を有する三つのストリームを設けると仮定する。したがって、第1ストリームST1のサービスサイクルごとのリザーブされたクレジット計数は、350/2100×60スロットであり、これは、10スロットに等しくなる。第2ストリームST2及び第3ストリームST3はそれぞれ、20又は30のリザーブされたクレジットを有する。表1は、アービトレーションの結果であるストリームスケジュール(行Sdl)を示す。表1は、各タイムスロット(行Slot)ごとのアービトレーション結果(現在のサービスサイクルごとの用いられたクレジットとリザーブされたクレジットとの間の比として測定された行CS1,CS2,CS3)を決定するクレジット(バンド幅)利用レベルも示す。
リザーブされたバンド幅が各ストリームに対して常に保証される間、リザーブされたが使用されなかったスロットを、必要な場合には他のストリームによって再使用することができる。これによって、バンド幅の柔軟性のある割当てが可能になる。全ての保証を保持する間、ネットワークの避けられない変動を柔軟に処理することができる。
さらに、上記形態が動作するのを保証するよう到来する要求の十分なバッファリングが必要となる。他のストリームがアクセスを許可された場合にストリームの要求をストールする機構も必要になる。ストール機構を、PCIエクスプレスフロー制御を用いて実現することができ、これによって、仮想チャネルVCごとに個別にあらゆるストリームを遅延することができる。したがって、要求される最小のバッファリングを、1タイムスロットすなわち1ページ中にメモリからアクセスされるデータのサイズに等しくすることができる。したがって、アクセスのバッファリングを増大する必要がない。しかしながら、バッファがプリフェッチバッファ又はライトバックバッファとして動作するので、アクセスレイテンシーを減少する。
説明したようなI/Oバッファのオーバディメンション(over-dimensioning)はアービトレーションを緩和する。提案されたアービトレーションアルゴリズムは全てパラメータ化される。アービトレーションの態様のほとんどをプログラムすることができる。例えば、特定のアービトレーション手順を構成時に選択することができ、メモリアクセスの精度(タイムスロット)をページから他の長さのバーストに変更することができ、かつ、最終的にはサービスサイクルごとのタイムスロット数を設定することもできる。
アービトレーションに対して二つのタイプのヒューリスティック、すなわち、時間に基づくアービトレーション及びイベントに基づくアービトレーションが用いられる。時間に基づくアービトレーションでは、各サービスサイクルは、時間軸上で互いに整列した固定された数のタイムスロットからなる。したがって、全てのタイムスロットは、予め規定された時間に開始し、許可されたアクセスが、実際の要求を発したときに関係なく予め決定された瞬時すなわち各スロットの開始時に開始する。それに対して、イベントに基づくアービトレーションでは、タイムスロットは、あるストリームが要求を発したときのみ開始し、許可されたアクセスがすぐに行われる。説明したこれらのアービトレーションの差としては、イベントに基づくアプリケーションが、電力に対して更に緩和されるとともに要求に対して良好な応答レイテンシーを行い、時間に基づくアービトレーションが、制御及び実現を簡単にするとともにジッタを小さくする。それにもかかわらず、要求数がサービスサイクルごとの利用可能なタイムスロットの総数以上になると、両方の処理とも全く同一の動作に関心が集まる。
図7は、第3の実施の形態によるシステムオンチップのアーキテクチャのブロック図を示す。第3の実施の形態のアーキテクチャは、第1の実施の形態のアーキテクチャにほぼ対応する。特に、図7のブロック図は、ストリーミングメモリコントローラSMCが更に詳細に記載されている点を除いて図3のブロック図に対応する。ストリーミングメモリコントローラSMCは、消費者C又は生産者Pとすることもできる少なくとも一つの処理ユニットに接続される。図7には一つの処理ユニットのみを示す。しかしながら、複数の処理ユニットが存在してもよい。ストリーミングメモリコントローラSMCは、PCIエクスプレスネットワークPCIEを通じて処理ユニットに結合される。ストリーミングメモリコントローラSMCは、外部メモリの場合もあるメモリMEMを制御するのに用いられ、ストリーミングメモリコントローラSMCの完全なPCIエクスプレスインターフェース機能を保証するために設けられるPCIエクスプレスインターフェースユニットPIを具える。構成レジスタユニットを、PCIエクスプレスインターフェースPI、ストリーミングメモリユニットSMU及びメモリインタフェースMIに設けることができる。
ストリーミングメモリコントローラSMCは、ストリーミングメモリユニットSMUも具える。ストリーミングメモリユニットSMUは、フロー制御を実現し、すなわち、フロー制御バッファ及び同期の割当て及び制御を行う。ストリーミングメモリユニットSMUは、SDRAMとして実現することができる外部メモリMEMに対するアクセスのストリームアービトレーションの処理も行う。ストリームアービトレーションは、ネットワークアービトレーションを調整するとともにメモリのタイミングを調整することによって行われる。ストリーミングメモリユニットSMUは、更にPCIエクスプレスネットワークによって実現されるように仮想チャネルVCを処理する。特に、PCIエクスプレスネットワークとSDRAMとの間のアドレス変換が要求される。
ストリーミングメモリコントローラは、(PCIエクスプレスネットワークに基づく)ネットワークによって発生したトラフィックを、SDRAMとして実現することができる外部メモリMEMの特定の動作に適合させる。換言すれば、ストリーミングメモリSMCは、ストリームの各々に対するバンド幅を保証し、搬送時間を制限し、外部メモリMEMへの及び外部メモリMEMからの誤りのない伝送を行う。ストリーミングメモリコントローラSMCが外部メモリに対するアクセスを制御するように設計されているので、ストリーミングメモリコントローラSMCのバンド幅アービトレーションは、ネットワークアービトレーションと同一の概念、すなわち、タイムスロット及びタイムスロットの割当てに基づくが、SDRAMの動作に適合するためにタイムスロットのサイズを適合させる必要がある。
換言すれば、ストリーミングメモリユニットSMUは、外部メモリMEMに対するPCIエクスプレスネットワークのネットワークサービスを実現する。したがって、ストリーミングメモリユニットSMUは、SDRAMの利用できるバンド幅全体を複数のバーストアクセスに分割するために、PCIエクスプレスネットワークからのデータストリームを外部SDRAMにアクセスするためのバーストに変換する。バンド幅の要求を満足するために、バーストアクセスの数を、ネットワークからのストリームに割り当てることができる。ストリーミングメモリユニットSMUは、PCIエクスプレスネットワークのフロー制御機構を満足するために同期気候を実現するようにも作用する。この同期機構は、到達要求のブロッキングを行うことができる。ストリーミングメモリコントローラSMCが複数の個別のストリームを処理するように設計されるので、ストリーミングメモリユニットSMUは、要求されたバッファを形成し、維持し及び管理するように設計される。
フロー制御に関して、フロー制御に対して要求されるバッファは、PCIエクスプレスネットワーク内で実現されるフロー制御バッファより大きくなる。さらに、これらのバッファの実際の制御は、PCIエクスプレスネットワーク内のアクセスと基本的に異なるSDRAMアクセスの特別なタイミングのために互いに相違する。ストリーミングメモリコントローラSMC内の仮想チャネルVCの実現には、共有メモリ内で透明チャネル及び独立したチャネルを形成するために種々のサイズのタイムスロット、フロー制御バッファ及びSDRAMの特定の動作を処理する必要がある。
特定のストリーミングフレームワークを実現するのに用いられる他のあらゆる構成要素に対して同一の概念を用いることができる。その一例を、既に説明した固体状態のシリコンメモリと異なる動作に基づくハードディスクドライブ(HDD)のような記憶装置とすることができる。ストリーミングメモリコントローラは、基本的には三つの主要部分であるPCIエクスプレスインターフェースPI、ストリーミングメモリユニットSMU及びSDRAMのメモリコントローラMCの全てを具える。インターフェースPIは、PCIエクスプレス仕様に従うPCIエクスプレスインターフェースの全ての機能を提供するように設計される。さらに、インターフェースPIは、データストリームの特別のブロックに関連する識別に関する情報を送り出す。これを、仮想チャネル数又はPCIエクスプレスパケットアドレスを用いて実現することができる。
SDRAMのような外部メモリ用のメモリコントローラMCは、外部メモリを制御するとともに各コマンドファシリティを提供する。
上記実施の形態において、メモリMEMを外部メモリとして説明したが、そのようなメモリを内部メモリとして実現することもできる。
したがって、本発明の上記実施の形態の原理を、特定のネットワークサービスを他の(外部)装置が実現しない間にサポートするバスやネットワークのようなインターコネクトインフラストラクチャを具える全てのシステムに適用することができる。そのようなインターコネクトインフラストラクチャの一例は、バンド幅割当てサービス、フロー制御サービス等を(外部)SDRAMが実現しない間に実現することができるPCIエクスプレスネットワークである。
図8は、PCIエクスプレスネットワーク内のIDのフォーマットを示す。したがって、IDは、バス番号BN、装置番号DN及び機能番号FNに基づく。この識別は、形成のため及び制御データを搬送するのに要求されるメッセージパケットをルーティングするのに用いられる。
図9は、PCIエクスプレスシステム内の形態を示す。システムは、ルートコンプレックスRCに接続された中央処理ユニットCPUを具え、ルートコンプレックスRCは、PCIエクスプレス接続PCIE2を通じてメモリMEMに結合され、PCIエクスプレス接続PCIE1を通じてPCIエクスプレスエンドポイントEPに結合され、かつ、PCIエクスプレス接続PCIE3を通じてPCIエクスプレス−PCIブリッジPBRに結合される。スイッチSWが、PCI接続PCIE4〜PCIE7を通じて複数のPCIエクスプレスエンドポイントEPに接続される。
PCIエクスプレスネットワーク内の任意の機能を個別にアドレス指定することができる。例えば、01:29:03は、バス1の装置番号29の機能番号3を言及する。
そのような指定形態を、PCIエクスプレスネットワーク内で実現される種々の機能に関連したストリーミングバッファをそれぞれアドレス指定するのに用いることもできる。(ストリーミングバッファの)典型的な32/64ビットのメモリアドレスを16ビットの機能IDに置き換えることができる。したがって、ヘッダ内のオーバーヘッドがパケット内で少なく要求されるので、バンド幅の利用を向上する。ストリーミングバッファのアドレス指定は、メモリアドレス指定形態に依存しない。したがって、メモリアドレスは、全体に亘るシステムが複雑にならないようにシステムレベルでは公開されない。
それに対して、最大で8個のストリーミングバッファを単一の装置に設けることができるように互いに相違する8個の機能だけアドレス指定することができる。これは、PCIエクスプレス仕様によって規定される互いに相違する利用できる8個の仮想チャネルに適合する。
図10は、第4の実施の形態によるシステムオンチップのブロック図を示す。第3の実施の形態のアーキテクチャは、図3に示したアーキテクチャに対応する。宛先エンドポイント装置DEPD及びソースエンドポイント装置SEPD(製造者、消費者)は、PCIエクスプレスネットワークPCIEに結合され、PCIエクスプレスネットワークPCIEは、ストリーミングメモリコントローラSMCを通じて(外部)メモリMEMに結合される。ストリーミングメモリコントローラSMCは、アドレス変換及びバッファ管理を行う。ここでは、メモリMEM内の互いに相違するストリーミングバッファのアドレス指定を詳細に示す。
図10によるシステムオンチップの通信は、ストリーミングデータに基づき、この場合、データは、共有メモリMEMに配置されるFIFOとして実現されたストリーミングバッファでバッファリングされる。宛先装置DEPD、ソース装置SEPD、製造者P及び消費者Cは、PCIエクスプレスネットワークに組み込まれ、したがって、特定のストリーミングバッファを指定するために装置のPCIエクスプレス識別すなわちバス:装置:機能IDを用いる。特定のストリームに対するバッファのマッピング及びソース/宛先装置に対するバッファのマッピングの特別な関連付けを、(例えば、実行時に構成ソフトウェアにより)ストリームマネージャによって実行することができる。ソース/宛先装置(ユーザ/消費者)は、所定のPCIエクスプレスIDを読出し及び書き込む。ストリーミングメモリコントローラSMCは、FIFOバッファに対して特定のメモリ量を割り当てる。その後、PCIエクスプレスID(機能ID)をストリーミングバッファにマッピングする。
ストリーミングメモリコントローラSMCは、PCIエクスプレスバッファIDを、(SDRAMとして実現することができる)メモリMEMにアクセスするための絶対メモリアドレスに局所的に変換する。さらに、ストリーミングメモリコントローラSMCは、ストリーミングFIFOバッファの各々に対する読出しポインタ及び書込みポインタを常にモニタする。各読出し/書込みトランザクション中に更新を行うことができる。
絶対メモリアドレスを用いたランダムアクセスのためにメモリMEMにアクセスすることもできる。
図10において1個のメモリMEMのみを示しているが、上記形態を、各PCIエクスプレスストリーミングトランザクション、特に、ダイレクトメモリアクセスDMAアドレスのようなシーケンシャルアドレスに対して用いることができ、本発明の上記原理を、二つ以上の個別のメモリを有する物理的に分配されたメモリシステムに適用することもできる。そのような状況において、個別のメモリコントローラを各メモリに対して設けるべきであり、この場合、各メモリは個別の装置アドレスを具えるべきである。ここでは、ストリーミングバッファの個数は8に制限されない。
ストリーミングメモリコントローラSMCは、FIFOのIDを局所的な絶対メモリアドレスに変換する。メモリMEMのFIFO1は、0000アドレスに256キロバイトを具えることができる。FIFO2をアドレス0100に割り当てることができる。8番目のFIFOであるFIFO8をアドレス0800に割り当てることができる。機能番号FN1を有する第1のFIFO1をアドレス0000に関連させることができる。機能番号FN2を有するFIFO2をアドレス0200に関連させることができる。機能番号FN8を有するFIFO8を第8のFIFOアドレス0800に関連させることができる。
図11は、図10のメモリ内のメモリ割当ての一例を示す。ここでは、8個のバッファを設け、その各々は、256キロバイトで作動し、読出しポインタ及び書込みポインタを有する。FIFOバッファを環状に実現する。増分されるポインタのいずれかがバッファの最後に到達する場合、ポインタは、バッファの先頭にラップされる。そのような実現は、ソース(製造者P)と宛先(消費者C)との間の同期を実現できるので有利である。さらに、バッファのオーバーフロー、バッファのアンダーフロー及びデータの上書きを防止することができる。
表2は、PCIエクスプレス機能番号から図10に対応する論理FIFO番号及び絶対物理アドレスへの変換の一例を示す。
上記実施の形態によるメモリコントローラSMCを、VHDLで設計するとともに良好に統合することができる。メモリコントローラSMCの論理に対して、インターナルフィリップス(internal Philips)のCMOS12(0.12μm)技術ライブラリPcCMOS12コアリブ(corelib)(標準Vt)を用いる。SRAMに対して、インターナルフィリップスの高速高密度シングルポートSRAM技術ライブラリC12xSRAM(標準Vt)を用いる。シミュレーション及びベリフィケーションに対して、128メガビットのマイクロンのDDR−SDRAMを仮定した。
DDR−SDRAMを、133MHzのクロック周波数で動作する設計に用いる場合、SDDR−SDRAMに同期をとるとともに同一バンド幅を提供するために2倍の周波数(266MHz)で動作するSRAMに対して、クロックサイクルごとに2倍のデータにアクセスする必要がある。SMCの全ての内部ブロック(FIFOマネージャ、アービター及びSRAM)は266MHzで動作し、これら全てのブロックは、互いに同期をとるために同一クロックを用いる。
各々が16ビット幅のデータバス及び0.103mm2の領域を有する二つのSRAMセルは、一例として実現される。各セルは16キロバイトを有する。したがって、バッファ空間の全サイズは32キロバイト(32ページ)となる。バッファ空間を、レイテンシー要求に基づくストリームと各ストリームの実際のデータ速度に基づくストリームとの間で分割することができる。ここでは、ストリームごとに4ページと仮定するが、低いデータ速度及び中間のデータ速度に対して、これはあまりにも大きい。全体のシリコン領域を0.206mm2とし、そのうちの284μm2をアービターに対するものとし、1055μm2をFIFOマネージャに対するものとし、0.206mm2をSRAMに対するものとする。SMCの電力消失に関連して、SRAMは266MHzの動作で8mWを消費する。論理の電力消失を無視することができる。図面からわかるように、SRAMは、SMC設計のシリコン及び電力消費に優位である。特定のプレイバックアプリケーション(メモリにおいて同期がとられた二つの非圧縮オーディオストリーム)においてSMCによって制御されるDDR−SDRAMの電力消費を、図12aに示す。
設計バーティフィケーションに対して、テストベンチは、テストベクトルを用いた設計を促進する。テストベンチは、テストベクトルファイルからデータをSMCに供給するとともに、SMCの出力ポート及びSMCの内部レジスタをモニタ及びチェックして設計の機能及びタイミングを確認する。
パラメータ(例えば、バッファサイズ、バーストサイズ、アービトレーション手法)を変更することによって設計を行う間、オフチップメモリに対するリアルタイムストリーミングメモリコントローラの設計のトレードオフの結果を得るために実験を行うことができる。設計を行うことによって見ることができるそのようなトレードオフの例は、データアクセスのワーストケース遅延に対するバーストサイズ及び入出力バッファサイズ、外部メモリの電力消失及びSMC内のレイテンシーの間の関係である。
一例として、図12aにおいて、外部DDR−SDARAMから読み出された10メガビット/秒のデータのアクセスのバーストサイズに対するこのメモリの電力消失を示す。図12bにおいて、ネットワークパケットのバッファサイズに対するワーストケース遅延LTを示す。
本発明によるリアルタイムストリーミングメモリコントローラは、オフチップネットワークサービスと、ストリーミングにおける外部DRAMへのアクセスをリアルタイムに行う保証とをサポートする。
メモリコントローラSMCを、PCIエクスプレスネットワーク内からの外部DRAMへのアクセスを許容するように設計した。このメモリコントローラSMCを、VHDLで設計し、合成し及び検証した。増大したシリコン及び電力に関する複雑な形態が利用できる。さらに、特定のアプリケーションに対して設計スペースを調べることができ、種々のパラメータ及びアービトレーションポリシーによる設計を行うことによって所定のトレードオフを視覚化することができる。これによって、ストリーミングメモリコントローラの概念を分析することができるとともに、設計の問題を理解することができる。このようなモバイルの相互接続に対する特定のSMCの設計の知識を用いる。
ここで、低電力でのSDRAMアクセスに対するバンド幅を保証するメモリコントローラSMCを実現する。バンド幅を常に保証するアービトレーションアルゴリズムは、ネットワーク変動及びジッタに対処するために常に柔軟性を有する。PCIエクスプレスは、独立してアービトレートすることができる8ストリームの制限を有する。電力及びアクセス遅延に対するバッファサイズ(コスト)のようなSMC設計の重要なトレードオフが存在する。I/Oバッファが増大するに従って、アービトレーションを緩和し、アクセスレイテンシーを減少し、SDRAMから要求された累加したバンド幅を減少する。
上記実施の形態は、本発明を限定するものではなく例示であり、当業者は、添付した特許請求の範囲を逸脱することなく幾多の変形例を設計することができる。特許請求の範囲において、括弧内の参照符号は特許請求の範囲を制限するものではない。用語「具え」は、特許請求の範囲に挙げられた構成要素又はステップの存在を除外するものではない。構成要素は、複数のものを除外するものではない。複数の手段を列挙した装置の請求項において、これら手段の幾つかをハードウェアの同一アイテムによって実現することができる。所定の手段を互いに異なる従属項で挙げることは、これらの手段の組合せを好適に用いることができないことを意味するものではない。
さらに、特許請求の範囲の参照符号は、特許請求の範囲を制限しない。
Claims (7)
- メモリ(MEM)をネットワーク(N)に結合するメモリコントローラ(SMC)であって、
前記メモリコントローラ(SMC)を前記ネットワーク(N)に接続し、データストリームを受信し及び送信する第1インタフェース(PI)と、
前記第1インタフェース(PI)に結合され、前記ネットワーク(N)と前記メモリ(MEM)との間のデータストリーム(ST1〜ST4)を制御し、前記データストリーム(ST1〜ST4)の少なくとも一部を一時的に格納するバッファ(B)及び前記データストリーム(ST1〜ST4)の前記バッファ(B)への一時的な格納を管理するバッファ管理ユニット(BMU)を具えるストリーミングメモリユニット(SMU)と、
前記ストリーミングメモリユニット(SMU)に結合され、前期メモリコントローラ(SMC)を前記メモリ(MEM)に接続するとともにデータバーストを前記メモリ(MEM)とやりとりする第2インタフェース(MI)とを具え、
前記ストリーミングメモリユニット(SMU)がネットワーク(N)のネットワークサービスを前記メモリ(MEM)上で実現するメモリコントローラ。 - 請求項1記載のメモリコントローラにおいて、前記第1インタフェース(PI)をPCIエクスプレスインタフェースとしたことを特徴とするメモリコントローラ。
- 請求項1又は2記載のメモリコントローラにおいて、
前記メモリを、FIFOとして少なくとも部分的に構成し、ストリーム識別子を各データストリームに関連させ、
前記ストリーミングメモリユニット(SMU)が、前記データストリームのストリーム識別子に従って特定のデータストリーム(ST1〜ST4)を前記メモリ(MEM)の特定のFIFOに向けることによって前記ネットワーク(N)からのデータストリーム(ST1〜ST4)及び前記ネットワーク(N)へのデータストリーム(ST1〜ST4)を制御し、
前記第2インタフェース(MI)が、比較的粗いデータストリームを前記メモリとやりとりするとともに比較的密なデータストリームを前記ネットワークとやりとりすることを特徴とするメモリコントローラ。 - 請求項3記載のメモリコントローラにおいて、前記ネットワーク(N)をPCIエクスプレスネットワークとし、アドレス指定のためにPCIエクスプレスIDを前記ネットワーク(N)で使用し、前記第1インタフェース(PI)をPCIエクスプレスインタフェースとし、前記ストリーミングメモリユニット(SMU)が、前記PCIエクスプレスIDをFIFOメモリアドレスに変換するとともに前記FIFOメモリアドレスを前記PCIエクスプレスIDに変換することを特徴とするメモリコントローラ。
- 請求項1記載のメモリコントローラにおいて、前記第1インタフェース(PI)を、前記ネットワーク(N)のトラフィックルールに従うために、前記メモリ(MEM)から受信したデータのトラフィックシェーピングに適合させ、
前記第2インタフェース(MI)を、前記メモリ(MEM)のトラフィックルールに従うために、前記ネットワーク(N)から検索したデータのトラフィックシェーピングに適合させたことを特徴とするメモリコントローラ。 - メモリ(MEM)をネットワーク(N)に結合する方法であって、
メモリコントローラ(SMC)を前記ネットワークに接続するためにデータストリーム(ST1〜ST4)を第1インタフェース(PI)を通じて受信し及び送信するステップと、
前記ネットワーク(N)と前記メモリ(MEM)との間のデータストリーム(ST1〜ST4)をストリーミングメモリユニット(SMU)によって制御するステップと、
前記データストリーム(ST1〜ST4)の少なくとも一部をバッファ(B)に一時的に格納するステップと、
前記バッファ(B)への前記データストリーム(ST1〜ST4)の一時的な格納を管理するステップと、
前記ストリーミングメモリコントローラ(SMC)を第2インタフェース(NI)を通じて前記メモリ(MEM)に接続するとともにデータバーストを前記メモリ(MEM)とやりとりするステップと、
前記ネットワーク(N)のネットワークサービスを前記メモリ(MEM)上で実現するステップとを具える方法。 - 複数の処理ユニット(P)及び前記処理ユニットに結合する相互接続手段(IM)を有するネットワーク(N)と、
前記ネットワーク(N)をメモリ(MEM)に結合する請求項1から5のうちのいずれか1項に記載のメモリコントローラ(SMC)とを具えるデータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04106274 | 2004-12-03 | ||
PCT/IB2005/053970 WO2006059283A2 (en) | 2004-12-03 | 2005-11-30 | Streaming memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008522305A true JP2008522305A (ja) | 2008-06-26 |
Family
ID=36127381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007543968A Withdrawn JP2008522305A (ja) | 2004-12-03 | 2005-11-30 | ストリーミングメモリコントローラ |
Country Status (7)
Country | Link |
---|---|
US (1) | US20100198936A1 (ja) |
EP (2) | EP1820107A2 (ja) |
JP (1) | JP2008522305A (ja) |
CN (1) | CN101069391A (ja) |
AT (1) | ATE406741T1 (ja) |
DE (1) | DE602005009399D1 (ja) |
WO (2) | WO2006059283A2 (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006131899A2 (en) * | 2005-06-09 | 2006-12-14 | Nxp B.V. | Memory controller and method for coupling a network and a memory |
JP2008542904A (ja) | 2005-06-09 | 2008-11-27 | エヌエックスピー ビー ヴィ | ネットワークとメモリとを結合するメモリコントローラ及び方法 |
US8839065B2 (en) * | 2011-07-29 | 2014-09-16 | Blackfire Research Corporation | Packet loss anticipation and pre emptive retransmission for low latency media applications |
US8108574B2 (en) * | 2008-10-08 | 2012-01-31 | Lsi Corporation | Apparatus and methods for translation of data formats between multiple interface types |
US20100228926A1 (en) * | 2009-03-09 | 2010-09-09 | Cypress Semiconductor Corporation | Multi-port memory devices and methods |
US9489326B1 (en) * | 2009-03-09 | 2016-11-08 | Cypress Semiconductor Corporation | Multi-port integrated circuit devices and methods |
US8295287B2 (en) * | 2010-01-27 | 2012-10-23 | National Instruments Corporation | Network traffic shaping for reducing bus jitter on a real time controller |
US8850089B1 (en) * | 2010-06-18 | 2014-09-30 | Integrated Device Technology, Inc. | Method and apparatus for unified final buffer with pointer-based and page-based scheme for traffic optimization |
US8762644B2 (en) * | 2010-10-15 | 2014-06-24 | Qualcomm Incorporated | Low-power audio decoding and playback using cached images |
US8855194B2 (en) * | 2011-05-09 | 2014-10-07 | Texas Instruments Incorporated | Updating non-shadow registers in video encoder |
US20170019353A1 (en) * | 2011-07-29 | 2017-01-19 | Blackfire Research Corporation | Two tier multiple sliding window mechanism for multidestination media applications |
US8549234B2 (en) | 2011-10-14 | 2013-10-01 | Renesas Mobile Corporation | Memory controller and methods |
WO2014026033A1 (en) * | 2012-08-08 | 2014-02-13 | University Of Florida Research Foundation, Inc. | Cross-reactive t cell epitopes of hiv, siv, and fiv for vaccines in humans and cats |
US9189435B2 (en) * | 2013-04-23 | 2015-11-17 | Apple Inc. | Method and apparatus for arbitration with multiple source paths |
CN103558995B (zh) * | 2013-10-15 | 2016-09-28 | 华为技术有限公司 | 一种存储控制芯片及磁盘报文传输方法 |
US9934194B2 (en) | 2013-12-20 | 2018-04-03 | Rambus Inc. | Memory packet, data structure and hierarchy within a memory appliance for accessing memory |
KR102336666B1 (ko) * | 2017-09-15 | 2021-12-07 | 삼성전자 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11232037B2 (en) | 2017-10-23 | 2022-01-25 | Seagate Technology Llc | Using a first-in-first-out (FIFO) wraparound address lookup table (ALT) to manage cached data |
US10437758B1 (en) | 2018-06-29 | 2019-10-08 | Apple Inc. | Memory request management system |
US10621115B2 (en) | 2018-06-29 | 2020-04-14 | Apple Inc | System and method for communication link management in a credit-based system |
KR20210012439A (ko) * | 2019-07-25 | 2021-02-03 | 삼성전자주식회사 | 마스터 지능 소자 및 이의 제어 방법 |
US11823771B2 (en) * | 2020-01-30 | 2023-11-21 | Stmicroelectronics S.R.L. | Streaming access memory device, system and method |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US177225A (en) * | 1876-05-09 | Improvement in machines for coiling tubing | ||
US233933A (en) * | 1880-11-02 | Wagon-seat support | ||
US135449A (en) * | 1873-02-04 | Improvement in heating-stoves | ||
US217219A (en) * | 1879-07-08 | Improvement in reaper attachments | ||
US34162A (en) * | 1862-01-14 | Improvement in metallic blinds for windows | ||
US73716A (en) * | 1868-01-28 | moore hendricks | ||
US195617A (en) * | 1877-09-25 | Improvement in evaporators for hot-air registers | ||
US14596A (en) * | 1856-04-08 | Machine for combing seed off broom-corn | ||
US5287477A (en) * | 1991-08-07 | 1994-02-15 | Hewlett-Packard Company | Memory-resource-driven arbitration |
US5751951A (en) * | 1995-10-30 | 1998-05-12 | Mitsubishi Electric Information Technology Center America, Inc. | Network interface |
US5797043A (en) * | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6240475B1 (en) * | 1997-12-30 | 2001-05-29 | Adaptec, Inc. | Timer based arbitrations scheme for a PCI multi-function device |
US6405256B1 (en) * | 1999-03-31 | 2002-06-11 | Lucent Technologies Inc. | Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion |
SG97830A1 (en) * | 2000-01-07 | 2003-08-20 | Matsushita Electric Ind Co Ltd | Time based multimedia objects streaming apparatus and method |
US20020046251A1 (en) * | 2001-03-09 | 2002-04-18 | Datacube, Inc. | Streaming memory controller |
US20020034162A1 (en) * | 2000-06-30 | 2002-03-21 | Brinkerhoff Kenneth W. | Technique for implementing fractional interval times for fine granularity bandwidth allocation |
US6839808B2 (en) * | 2001-07-06 | 2005-01-04 | Juniper Networks, Inc. | Processing cluster having multiple compute engines and shared tier one caches |
US6792516B2 (en) * | 2001-12-28 | 2004-09-14 | Intel Corporation | Memory arbiter with intelligent page gathering logic |
US6778175B2 (en) * | 2002-02-05 | 2004-08-17 | Xgi Technology Inc. | Method of arbitration of memory request for computer graphics system |
US6978351B2 (en) * | 2002-12-30 | 2005-12-20 | Intel Corporation | Method and system to improve prefetching operations |
JP2007502570A (ja) * | 2003-08-11 | 2007-02-08 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 複数のシリアルバイトレーンの自動再整列 |
US7346716B2 (en) * | 2003-11-25 | 2008-03-18 | Intel Corporation | Tracking progress of data streamer |
-
2005
- 2005-11-30 EP EP05807217A patent/EP1820107A2/en not_active Withdrawn
- 2005-11-30 EP EP05850071A patent/EP1820309B1/en active Active
- 2005-11-30 AT AT05850071T patent/ATE406741T1/de not_active IP Right Cessation
- 2005-11-30 US US11/720,820 patent/US20100198936A1/en not_active Abandoned
- 2005-11-30 WO PCT/IB2005/053970 patent/WO2006059283A2/en active Application Filing
- 2005-11-30 WO PCT/IB2005/053974 patent/WO2006072844A2/en active Application Filing
- 2005-11-30 JP JP2007543968A patent/JP2008522305A/ja not_active Withdrawn
- 2005-11-30 DE DE602005009399T patent/DE602005009399D1/de active Active
- 2005-11-30 CN CNA2005800412551A patent/CN101069391A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2006059283A3 (en) | 2006-11-16 |
EP1820309A2 (en) | 2007-08-22 |
ATE406741T1 (de) | 2008-09-15 |
EP1820107A2 (en) | 2007-08-22 |
DE602005009399D1 (de) | 2008-10-09 |
CN101069391A (zh) | 2007-11-07 |
WO2006059283A2 (en) | 2006-06-08 |
WO2006072844A2 (en) | 2006-07-13 |
EP1820309B1 (en) | 2008-08-27 |
US20100198936A1 (en) | 2010-08-05 |
WO2006072844A3 (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008522305A (ja) | ストリーミングメモリコントローラ | |
KR100290942B1 (ko) | 유니버설 시리얼 버스 디바이스 내부로 및 외부로 데이터를 송신 및 수신하기 위한 장치 및 방법 | |
US20070283109A1 (en) | Memory controller configurable to allow bandwidth/latency tradeoff | |
CN111742305A (zh) | 调度具有不统一等待时间的存储器请求 | |
US20200133905A1 (en) | Memory request management system | |
KR20080039499A (ko) | 전송 방향 및 소비되는 대역폭에 기초하는 가중된 버스중재 | |
US11994996B2 (en) | Transmission of address translation type packets | |
US10942878B1 (en) | Chunking for burst read transactions | |
US8065493B2 (en) | Memory controller and method for coupling a network and a memory | |
CN111684430A (zh) | 支持同一信道上对不统一等待时间的存储器类型的响应 | |
EP1894108A2 (en) | Memory controller | |
US20050289278A1 (en) | Apparatus and method for programmable completion tracking logic to support multiple virtual channels | |
Burchardt et al. | A real-time streaming memory controller | |
EP1222551A2 (en) | Asynchronous centralized multi-channel dma controller | |
US20190266110A1 (en) | Scalable, parameterizable, and script-generatable buffer manager architecture | |
US20230269205A1 (en) | Switch for transmitting packet, network on chip having the same, and operating method thereof | |
CN110035021B (zh) | 针对原子数据访问请求进行的资源分配 | |
JP2008544348A (ja) | メモリーコントローラ及びネットワークとメモリーの結合方法 | |
JP2024512623A (ja) | マルチキューメモリコントローラのためのクレジット方式 | |
JP2006048691A (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
JP4514411B2 (ja) | バス間通信インタフェース装置 | |
GB2260836A (en) | Bus Interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080425 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081125 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20081125 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090916 |