(57)【要約】  メモリ（ＭＥＭ）をネットワーク（Ｎ）に結合するメモリコントローラ（ＳＭＣ）を設ける。メモリコントローラ（ＳＭＣ）は、第１インタフェース（ＰＩ）と、ストリーミングメモリユニット（ＳＭＣ）と第２インタフェース（ＭＩ）とを具える。第１インタフェース（ＰＩ）は、データストリーム（ＳＴ１〜ＳＴ４）を送受信するためにメモリコントローラ（ＳＭＣ）をネットワーク（Ｎ）に接続するために用いられる。ストリーミングメモリユニット（ＳＭＵ）は、ネットワーク（Ｎ）とメモリ（ＭＥＭ）との間でデータストリーム（ＳＴ１〜ＳＴ４）を制御するために第１インタフェース（ＰＩ）に結合される。ストリーミングメモリユニット（ＳＭＵ）は、データストリーム（ＳＴ１〜ＳＴ４）の少なくとも一部を一時的に格納するバッファ（Ｂ）と、バッファ（Ｂ）におけるデータストリーム（ＳＴ１〜ＳＴ４）の一時的な格納を管理するバッファ管理ユニット（ＢＭＵ）とを具える。第２インタフェース（ＭＩ）は、バースト中でメモリ（ＭＥＭ）のデータ交換を行うためにメモリコントローラ（ＳＭＣ）をメモリ（ＭＥＭ）に接続するようストリーミングメモリユニット（ＳＭＵ）に結合される。ストリーミングメモリユニット（ＳＭＵ）は、ネットワーク（Ｎ）のネットワークサービスをメモリ（ＭＥＭ）上で実現する。
2008522305.tif 000002
【特許請求の範囲】
【請求項１】
メモリ（ＭＥＭ）をネットワーク（Ｎ）に結合するメモリコントローラ（ＳＭＣ）であって、
前記メモリコントローラ（ＳＭＣ）を前記ネットワーク（Ｎ）に接続し、データストリームを受信し及び送信する第１インタフェース（ＰＩ）と、
前記第１インタフェース（ＰＩ）に結合され、前記ネットワーク（Ｎ）と前記メモリ（ＭＥＭ）との間のデータストリーム（ＳＴ１〜ＳＴ４）を制御し、前記データストリーム（ＳＴ１〜ＳＴ４）の少なくとも一部を一時的に格納するバッファ（Ｂ）及び前記データストリーム（ＳＴ１〜ＳＴ４）の前記バッファ（Ｂ）への一時的な格納を管理するバッファ管理ユニット（ＢＭＵ）を具えるストリーミングメモリユニット（ＳＭＵ）と、
前記ストリーミングメモリユニット（ＳＭＵ）に結合され、前期メモリコントローラ（ＳＭＣ）を前記メモリ（ＭＥＭ）に接続するとともにデータバーストを前記メモリ（ＭＥＭ）とやりとりする第２インタフェース（ＭＩ）とを具え、
前記ストリーミングメモリユニット（ＳＭＵ）がネットワーク（Ｎ）のネットワークサービスを前記メモリ（ＭＥＭ）上で実現するメモリコントローラ。
【請求項２】
請求項１記載のメモリコントローラにおいて、前記第１インタフェース（ＰＩ）をＰＣＩエクスプレスインタフェースとしたことを特徴とするメモリコントローラ。
【請求項３】
請求項１又は２記載のメモリコントローラにおいて、
前記メモリを、ＦＩＦＯとして少なくとも部分的に構成し、ストリーム識別子を各データストリームに関連させ、
前記ストリーミングメモリユニット（ＳＭＵ）が、前記データストリームのストリーム識別子に従って特定のデータストリーム（ＳＴ１〜ＳＴ４）を前記メモリ（ＭＥＭ）の特定のＦＩＦＯに向けることによって前記ネットワーク（Ｎ）からのデータストリーム（ＳＴ１〜ＳＴ４）及び前記ネットワーク（Ｎ）へのデータストリーム（ＳＴ１〜ＳＴ４）を制御し、
前記第２インタフェース（ＭＩ）が、比較的粗いデータストリームを前記メモリとやりとりするとともに比較的密なデータストリームを前記ネットワークとやりとりすることを特徴とするメモリコントローラ。
【請求項４】
請求項３記載のメモリコントローラにおいて、前記ネットワーク（Ｎ）をＰＣＩエクスプレスネットワークとし、アドレス指定のためにＰＣＩエクスプレスＩＤを前記ネットワーク（Ｎ）で使用し、前記第１インタフェース（ＰＩ）をＰＣＩエクスプレスインタフェースとし、前記ストリーミングメモリユニット（ＳＭＵ）が、前記ＰＣＩエクスプレスＩＤをＦＩＦＯメモリアドレスに変換するとともに前記ＦＩＦＯメモリアドレスを前記ＰＣＩエクスプレスＩＤに変換することを特徴とするメモリコントローラ。
【請求項５】
請求項１記載のメモリコントローラにおいて、前記第１インタフェース（ＰＩ）を、前記ネットワーク（Ｎ）のトラフィックルールに従うために、前記メモリ（ＭＥＭ）から受信したデータのトラフィックシェーピングに適合させ、
前記第２インタフェース（ＭＩ）を、前記メモリ（ＭＥＭ）のトラフィックルールに従うために、前記ネットワーク（Ｎ）から検索したデータのトラフィックシェーピングに適合させたことを特徴とするメモリコントローラ。
【請求項６】
メモリ（ＭＥＭ）をネットワーク（Ｎ）に結合する方法であって、
メモリコントローラ（ＳＭＣ）を前記ネットワークに接続するためにデータストリーム（ＳＴ１〜ＳＴ４）を第１インタフェース（ＰＩ）を通じて受信し及び送信するステップと、
前記ネットワーク（Ｎ）と前記メモリ（ＭＥＭ）との間のデータストリーム（ＳＴ１〜ＳＴ４）をストリーミングメモリユニット（ＳＭＵ）によって制御するステップと、
前記データストリーム（ＳＴ１〜ＳＴ４）の少なくとも一部をバッファ（Ｂ）に一時的に格納するステップと、
前記バッファ（Ｂ）への前記データストリーム（ＳＴ１〜ＳＴ４）の一時的な格納を管理するステップと、
前記ストリーミングメモリコントローラ（ＳＭＣ）を第２インタフェース（ＮＩ）を通じて前記メモリ（ＭＥＭ）に接続するとともにデータバーストを前記メモリ（ＭＥＭ）とやりとりするステップと、
前記ネットワーク（Ｎ）のネットワークサービスを前記メモリ（ＭＥＭ）上で実現するステップとを具える方法。
【請求項７】
複数の処理ユニット（Ｐ）及び前記処理ユニットに結合する相互接続手段（ＩＭ）を有するネットワーク（Ｎ）と、
前記ネットワーク（Ｎ）をメモリ（ＭＥＭ）に結合する請求項１から５のうちのいずれか１項に記載のメモリコントローラ（ＳＭＣ）とを具えるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びネットワークとメモリとを結合する方法に関する。
【背景技術】
【０００２】
移動装置及び携帯装置が進歩するに従って複雑さが増大する。そのような装置のアプリケーションの要求が更に多くなると、複雑さ、柔軟性及びプログラム可能性の要求は、装置内でのデータ交換を更に共用する。そのようなアプリケーションを実現する装置はしばしば、ここではサブシステムと称される複数の機能ブロック又は処理ブロックから構成される。これらサブシステムは、典型的には個別のＩＣとして実現され、その各々は、ローカルプロセッサ、バス、メモリ等から構成される互いに相違する内部アーキテクチャを有する。種々のサブシステムをＩＣに集積することもできる。システムレベルにおいて、これらサブシステムは、しばしばリアルタイムサポートで所定のサービスを提供するトップレベル相互接続を通じて互いに通信を行う。携帯電話アーキテクチャのサブシステムの一例として、特に、ベースバンドプロセッサ、ディスプレイ、メディアプロセッサ又は記憶素子を有することができる。マルチメディアアプリケーションのサポートに対して、これらサブシステムは、大抵のデータをストリームの形態でやりとりする。データストリーミングの一例として、メディアプロセッサによるＭＰ３符号化オーディオファイルのローカルメモリからの読出し及び復号ストリームのスピーカへの送信を参照されたい。図１は、ＦＩＦＯバッファＢを通じて接続されたプロセスＰ１〜Ｐ４のグラフとして記載することができるそのような通信の基本形態を示す。そのような形態は、しばしばカーンプロセスネットワークと称される。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に記載されているように、カーンプロセスネットワークをシステムアーキテクチャにマッピングすることができる。そのようなアーキテクチャにおいて、プロセスはサブシステムにマッピングされ、ＦＩＦＯバッファはメモリＳＭＥＭにマッピングされ、通信はシステムレベルインターコネクトＩＭにマッピングされる。
【０００３】
バッファリングは、含まれるプロセス間のデータストリーミングの適切なサポートに必須である。典型的には、ＦＩＦＯバッファは、ストリーミングアプリケーションの（境界のある）カーンプロセスネットワークモデルに従うストリーミングに対して用いられる。複数のプロセスを同時に実行することができるマルチメディアアプリケーションの数が増大すると、リアルタイムストリーム及び関連のＦＩＦＯの個数も増大する。
【０００４】
メモリの使用及びＦＩＦＯの割当てに関するストリーミングの二つの最終的な実現が存在する。第１の実現は、物理的に分布したメモリを使用し、この場合、ＦＩＦＯバッファはサブシステムのローカルメモリに割り当てられる。第２の実現は、物理的及び論理的に一体になったメモリを使用し、この場合、ＦＩＦＯバッファは、しばしばオフチップの共有メモリに割り当てられる。これらの組合せも可能である。
【０００５】
ＦＩＦＯバッファを、外部ＤＲＡＭ技術を用いて共有メモリで実現することができる。ＳＤＲＡＭ及びＤＤＲ−ＳＤＲＡＭは、シリコン領域比に対して非常に魅力的なコストを有する大容量の外部メモリを低コストで提供する技術である。
【０００６】
図２は、供給メモリストリーミングフレームワークを有するシステムオンチップの基本アーキテクチャを示す。処理ユニットＣ，Ｓは、バッファＢを通じて互いに通信を行う。処理ユニットＣ，Ｓ及びバッファをそれぞれ、相互接続手段ＩＭに結合するインタフェースユニットＩＵに関連させる。共有メモリデータ交換の場合、メモリを他の目的に用いることもできる。メモリを、例えば、メインプロセッサ上で実行するプログラムの処理に対するコード実行又はダイナミックメモリ割当てに用いることもできる。
【０００７】
相互接続手段、インタフェースユニット、処理ユニットＣ，Ｓ及びバッファＢを有するそのような通信アーキテクチャ又はネットワークは、バッファのアンダーフロー又はオーバーフローのためにデータが消失しないように、誤りのないデータ転送のための保証されたスループット又は保証された配送やソース要素と宛先要素との間の同期をとる同期サービスのような所定のデータ転送保証を与える特定の転送機能及び各インフラストラクチャを提供する。これは、リアルタイムストリーミング処理がシステムによって実行されるとともにリアルタイムサポートが構成要素の全てに対して要求される場合に重要になる。
【０００８】
多数のシステムオンチップ（ＳｏＣ）及びマイクロプロセッサシステム内で、バックグランドメモリ（ＤＲＡＭ）がデータのバッファリングに用いられる。データがストリーミング形態で通信され、ストリームとしてメモリ中でバッファリングされるとき、プリフェッチバッファリングを用いることができる。これは、データがＳＤＲＡＭから予め読み出されるとともに特定の（プリフェッチ）バッファに保持されることを意味する。読み出された要求が到達すると、データを、バックグランドメモリ（ＤＲＡＭ）によって導入されうるレイテンシーなく、オンチップＳＲＡＭで通常実現されるローカルプリフェッチバッファから送り出すことができる。これは、プロセッサに対するランダムデータの既知のキャッシング技術と同様である。ストリーミングに対しては、キャッシュで用いられるランダムアドレスではなくデータの連続的な（好適には予測可能な）アドレス指定がプリフェッチバッファで用いられる。更に詳しくは、J.L. Hennessy及びD.A.Pattersonの”Computer Architecture -- A Quantitative Approach”を参照されたい。
【０００９】
一方、ＤＲＡＭ技術によりバースト中で（読出し又は書込み）ＤＲＡＭにアクセスするのが好ましい。しがたって、しばしば、多数の単一データアクセスを所定のサイズのアクセスのバーストに集めるライトバックバッファが実現される。一度初期プロセスが最初のＤＲＡＭアクセスに対して行われると、メモリの次のサイクルごとにアクセスされる、以前のアドレスに関連するアドレス（例えば、バーストポリシーに応じた次の又は以前のもの）を有する次のデータワードの各々を、所定の数のアクセス（２／４／８／全ページ）に対して更なる遅延なく（１サイクル内で）記憶することができる。したがって、メモリに対するストリーミングアクセスに対して、各アクセスに対して同様にアドレスが増加し又は減少する（例えば、連続的なアドレス指定）とき、バーストアクセスは、最低の電力消失で最高のパフォーマンスを提供する。ＤＲＡＭの原理に関する更なる情報に対して、マイクロンの１２８メガビットのＤＤＲＲＡＭ仕様http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfを参照されたい。これは、参照によって組み込まれる。
【００１０】
これまで、外部ＤＲＡＭのコントローラは、バスに基づくアーキテクチャで動作するように設計されてきた。バスは、データ転送の限定されたサービス、簡単な媒体アクセス制御及び最善のデータ転送しか提供しない。そのようなアーキテクチャにおいて、バスに自動的にアクセスするユニットは、共有メモリにアクセスする。さらに、そのようなシステムで用いられるメモリコントローラは、多数の小さいレイテンシーの読出し又は書込みを行うために最適化され、しばしばプロセッサランダムキャッシュのようなバーストアクセスに対して調整されたブロックにアクセスするだけである。コントローラの低レイテンシー、高バンド幅及び高速な最適化の他の影響として、外部ＤＲＡＭの電力消失が比較的高いことがある。
【００１１】
しかしながら、上記ネットワークサービスは、ネットワーク内しか適用できない。ネットワークの外側の構成要素でデータ交換が行われると、ネットワークサービス保証に適合されない。共有メモリアーキテクチャ内では、バッファリングされたデータは、データをメモリに転送し及びメモリから転送する必要があるために典型的には物理的に統合されたメモリを通じてやり取りされ、これにより、メモリコントローラとメモリそれ自体のいずれもネットワークサービスのいずれもサポートしないので、データは、ネットワークによって供給されたサービスを中断する。
【発明の開示】
【００１２】
本発明の目的は、ネットワークとメモリとの間の通信の予測可能な動作をメモリと共に向上する、ネットワーク及びメモリを結合するメモリコントローラ及び方法を提供することである。
【００１３】
この目的は、請求項１記載のメモリコントローラ並びに請求項６記載のネットワーク及びメモリを結合する方法によって解決される。
【００１４】
メモリ及びネットワークを結合するメモリコントローラを提供する。メモリコントローラは、第１インタフェースと、ストリーミングメモリユニットと、第２インタフェースとを具える。第１インタフェースは、データストリームを送受信するようメモリコントローラをネットワークに接続するのに用いられる。ストリーミングメモリユニットは、第１インタフェースに結合されてネットワークとメモリとの間のデータストリームを制御する。ストリーミングメモリユニットは、データストリームの少なくとも一部を一時的に格納するバッファと、バッファへのデータストリームの一時的な格納を管理するバッファ管理ユニットとを具える。第２インタフェースは、ストリーミングメモリ予ニットに結合され、データバーストをメモリとやりとりするためにメモリコントローラをメモリに接続する。ネットワークのネットワークサービスをメモリ上で実現するストリーミングメモリユニットを提供する。
【００１５】
したがって、そのようなメモリコントローラによって、ネットワークによって提供されるようなネットワークサービスを実現しないメモリを、特定のネットワークサービスをサポートする通信ネットワークに統合することができる。換言すれば、同一サービスを、ネットワーク内で通信されるデータ又はメモリサブシステムとのやりとりが行われるデータに適用することができる。
【００１６】
本発明の一態様によれば、第１インタフェースを、ＰＣＩエクスプレスネットワークの特性及びネットワークサービスをメモリコントローラによって実現できるようにＰＣＩエクスプレスインタフェースとして実現する。
【００１７】
本発明の他の態様によれば、メモリは、少なくとも部分的にＦＩＦＯとして構成し、ストリーム識別子を、ネットワークからの各データストリームに関連させる。データストリームのストリーム識別子に従って特定のデータストリームをメモリの特定のＦＩＦＯに向けることによってネットワークからのデータ及びネットワークへのデータを制御するストリーミングメモリユニットを提供する。さらに、メモリにアクセスするために種々のデータストリーム間でアービトレーションを行う。第２インタフェースは、比較的粗いデータストリームをメモリとやりとりし、比較的密なデータストリームをネットワークとやりとりする。データストリームのストリーム識別子がデータストリームをメモリのＦＩＦＯにマッピングするのに用いられるので、簡単なアドレス指定形態が実現される。
【００１８】
本発明の他の態様によれば、ネットワークをＰＣＩエクスプレスネットワークとして実現し、ＰＣＩエクスプレスＩＤを、アドレス指定のためにネットワーク中で用いる。この場合、第１インタフェースはＰＣＩエクスプレスインタフェースとして実現される。ストリーミングメモリユニットは、ＰＣＩエクスプレスＩＤをＦＩＦＯメモリアドレスに変換するとともにＦＩＦＯメモリアドレスをＰＣＩエクスプレスＩＤに変換する。したがって、ＰＣＩエクスプレス装置アドレス指定形態は、メモリ内のＦＩＦＯバッファをアドレス指定するのに用いられる。
【００１９】
本発明は、メモリをネットワークに結合する方法にも関する。データストリームは、メモリコントローラをネットワークに接続するために第１インタフェース（ＰＩ）を通じて送受信される。ネットワークとメモリとの間のデータストリームは、ストリーミングメモリユニット（ＳＭＵ）によって制御される。データストリームの少なくとも一部は、一時的にバッファに格納される。ストリーミングメモリコントローラは、第２インタフェースを通じてメモリに結合され、データは、バースト形態でメモリとやりとりされる。ネットワークのネットワークサービスはメモリ上で実現される。
【００２０】
本発明は、共有メモリに関連したストリーミングメモリコントローラを導入する概念に関する。ストリーミングメモリコントローラは、ネットワークと同一サービスを提供することができる。そのようなサービスを、フロー制御、仮想チャネル、及びネットワークバンド幅アービトレーションに適合したメモリバンド幅アービトレーションとすることができる。ネットワークによって保証されたそのようなサービスは、メモリ中でバッファリングするためにデータをネットワークに残した場合にはメモリコントローラによっても保証される。このようなネットワークサービスの統合は、データの宛先からソースまで保持される。
【００２１】
本発明の他の態様は従属項にある。
【００２２】
本発明のこれら及び他の態様を、添付図面に関連して後に説明する実施の形態を参照しながら明らかにする。
【発明を実施するための最良の形態】
【００２３】
図３は、第１の実施の形態によるシステムオンチップのブロック図を示す。消費者Ｃ及び製造者Ｐは、ＰＣＩエクスプレスネットワークＰＣＩＥに結合される。製造者Ｐと消費者Ｃとの間の通信は、ネットワークＰＣＩＥと、（外部）メモリＭＥＭ用のストリーミングメモリコントローラＳＭＣとによって行われる。（外部）メモリＭＥＭを、ＤＲＡＭ又はＳＤＲＡＭとして実現することができる。製造者Ｐと消費者Ｃとの間の通信がストリームに基づく通信であるので、この通クレジットのＦＩＦＯバッファを外部メモリＭＥＭに設ける。
【００２４】
図３によるストリーミングメモリコントローラＳＭＣは、二つのインタフェース：ＰＣＩエクスプレス構造に対するインタフェース及びＤＲＡＭに対するインタフェースを有する。ストリーミングメモリコントローラＳＭＣのＰＣＩエクスプレスインタフェースは、ＰＣＩエクスプレスネットワークＰＣＩＥのトラフィックルールに適合するためにＳＤＲＡＭ  ＭＥＭから受信したデータ上でトラッフィクシェーピングを実行する必要がある。ストリーミングメモリコントローラＳＭＣの他のインタフェース上では、ＤＲＡＭに対するアクセスがバースト中で実行される。その理由は、ＤＲＡＭに格納されたデータをこのモードでアクセスするのが電力消費に対して最も有利であるからである。ストリーミングメモリコントローラＳＭＣそれ自体は、種々のストリーム間でＤＲＡＭに対するアクセスのインテリジェントなアービトレーションを行ってアクセスのスループット及びレイテンシーを保証する必要がある。さらに、ＳＭＣは、スマートなＦＩＦＯバッファ管理に対する機能も提供する。
【００２５】
ＰＣＩエクスプレスネットワークの基本的な概念は、”PCI Express Base Specification, Revision 1.0”, PCI-SIG, July 2002, www.pcisig.orgに記載されている。
【００２６】
ストリーミングメモリコントローラの設計に考慮されるＰＣＩエクスプレスネットワークの特徴は、アイソクロノスデータ転送のサポート、フロー制御及び特定のアドレス指定形態である。アイソクロノスサポートは、主に、仮想チャネルＶＣによるアイソクロノストラフィックとアイソクロノスでないトラフィックとの分離に基づく。その結果、バンド幅やバッファのようなネットワークリソースは、種々の仮想チャネルＶＣのストリーム間の干渉がないことが保証されるように特定のストリームに対するスイッチ構成で明確にリザーブされる。さらに、スイッチ構成のアイソクロノストラフィックは、スケジューリング、すなわち、アドミッション制御及びサービス規律によって調整される。
【００２７】
フロー制御は、バッファのアンダーフロー／オーバーフローのためにネットワークＰＣＩＥでデータが消失しないことを保証するためにクレジットに基づいて実行される。各ネットワークノードは、受信ノードがデータを受信するのに十分なスペースを有するときにネットワークパケットをネットワークリンクを通じて他のネットワークノードに送信するためにのみ割り当てられる。各仮想チャネルＶＣは、専用のフロー制御インフラストラクチャを具える。したがって、チェーン化されたＰＣＩエクスプレスフロー制御を通じて各仮想チャネルＶＣに対して個別にソースと宛先との間の同期を実現することができる。
【００２８】
ＰＣＩエクスプレスアドレス指定形態は、典型的には３２又は６４ビットのメモリアドレスを用いる。明確なメモリアドレスが用いられないので、装置及び機能ＩＤすなわちストリームＩＤが、種々のストリーム間で区別を行うために用いられる。メモリコントローラＳＭＣそれ自体は、ストリームＩＤを発生してそれを実際のメモリアドレスに変換する。
【００２９】
アドレス指定形態を更に簡単にするために、仮想チャネルＶＣのＩＤをストリーム識別子として用いる。ＰＣＩエクスプレスが８個までの仮想チャネルＶＣを許容するので、その半分を入力ストリームを識別するのに用いるとともに、それ以外の半分を外部メモリから出力するストリームを識別するのに用いることができる。従って、メモリコントローラＳＭＣを通じてメモリにアクセスすることができるストリームの最大数が８に制限される。そのような制限は、同一の仮想チャネルＶＣ内のストリーム間ではなく種々のＶＣのストリーム間のアービトレーションを許容するＰＣＩエクスプレスによるものである。しかしながら、そのような制限は、ＰＣＩエクスプレスに基づくシステムのみに特有のものであり、本発明の概念の基礎となるものではない。
【００３０】
要約すると、メモリコントローラＳＭＣのＰＣＩエクスプレスインタフェースは、アドレス変換及びストリーム識別に必要な論理を追加した完全なＰＣＩエクスプレスインタフェースからなる。
【００３１】
第１の実施の形態において、（ＤＤＲ）ＳＤＲＡＭを用いる。一例として、マイクロンの１２８メガビットＤＤＲＲＡＭ仕様に記載されたようなマイクロンの１２８メガビットＤＤＲ−ＳＤＲＡＭと称することができ、http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfを用いることができる。そのような技術は、所望の電力消費及びタイミング動作を行うので望ましい。しかしながら、設計がパラメータ化され、メモリコントローラＳＭＣを、単一のレートメモリで動作するように構成することができる。データ線のタイミングを除いてＤＤＲ−ＳＤＲＡＭがＳＤＲＡＭと同様に動作するので、ＳＤＲＡＭの概念を用いて基本を説明する。
【００３２】
ＰＣＩエクスプレスネットワークＰＣＩＥは、リアルタイムストリームによって横切られる装置の限定的なリソース／バンド幅リザベーションを通じてネットワークサービス、例えば、保証されたリアルタイムデータ転送を提供する。標準的なコントローラによってサポートされる外部ＤＲＡＭがＰＣＩエクスプレス構成に接続されるとき、間にインテリジェントメモリを有することなく、典型的にはＰＣＩエクスプレスによって設けられたバンド幅及び遅延保証がメモリによって実現されない。その理由は、メモリがなんら保証を与えず、入力トラフィックに対して「スレーブ」として機能するからである。
【００３３】
標準的間メモリコントローラの設計は、あり得る最も低いレイテンシーのあり得る最も高いバンド幅を発生することに注意が向けられる。そのような手法は、プロセッサデータ及び命令（キャッシュ）アクセスに適しているが、アイソクロノストラフィックに適していない。外部ＤＲＡＭによって拡張したＰＣＩエクスプレスネットワークの予測可能な動作を提供するために、ストリーミングの際に外部メモリの予測可能な動作を保証するストリーミングコントローラが必要とされる。さらに、スループット及びラテンシーを保証するだけでなくこのＤＲＡＭのアクセス中の消費電力を減少するメモリコントローラを設計することを目的とする。
【００３４】
図４は、メモリクロックがイネーブルされたとき、すなわち、メモリがパワーアップモードの一つであるときの状態のＳＤＲＡＭの論理的なアーキテクチャを示す。ＳＤＲＡＭは、論理ユニットＬと、メモリアレイＡＲと、データ行ＤＲとを具える。クロックがディスエーブルされると、メモリは低電力状態（パワーダウンモード）になる。
【００３５】
メモリに供給される典型的なコマンドは、アクティブＡＣＴ、プリチャージＰＲＥ、読出し／書込みＲＤ／ＷＲ及びリフレッシュである。アクティブコマンドは、チャージ後にバンク及び行アドレスを選択するとともに（しばしばページと称される）データ行がセンス増幅器に転送されるようにする。データは、プリチャージコマンドがアレイ中の適切なセルに再びデータを格納するまでセンス増幅器に残った状態である。データがセンス増幅器ＳＡＭで利用できるとき、メモリはアクティブ状態であると考えられる。そのような状態の間、読出し及び書込みを行うことができる。プリチャージコマンド後、メモリは、全てのデータがメモリセルに格納されるプリチャージ状態であると考えられる。メモリ動作の他の関心のある態様は、リフレッシュである。ＳＤＲＡＭのメモリセルは、小型のキャパシタを用いてデータを格納し、これらメモリセルを、データの完全性を保証するために規則的に再チャージする必要がある。電源を入れると、ＳＤＲＡＭは、リフレッシュを実行するようコントローラによって命令される。電源を切ると、ＳＤＲＡＭは、セルフリフレッシュモード（すなわち、クロックがイネーブルされない。）に入り、メモリは、それ自体でリフレッシュを行う。この状態は、電力をほとんど消費しない。メモリを、セルフリフレッシュモードから、読出し又は書込みのためにデータをアサートできる状態にすると、他のモードに比べて多くの時間（例えば、特にＤＤＲ−ＳＤＲＡＭに対して２００クロックサイクル）を要する。
【００３６】
メモリのタイミング及び電力管理は、特定のバンド幅、レイテンシー及び電力を保証する必要があるメモリコントローラＳＭＣの適切な設計に重要である。アクティブなＳＤＲＡＭから（１キロバイトに等しい）ページ全体を読み出すと、１読出しバースト長に対して約２５６０クロックサイクル（〜１９．２μｓ）を要し、８読出しバースト長に対して７６８クロックサイクル（〜５．８μｓ）を要し、完全なページバーストに対して５１６クロックサイクル（〜３．９μｓ）しか要しない。これらの値は、マイクロンの１２８メガビットＤＤＲＲＡＭ仕様http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdfに記載されたように７．５ｎｓのクロック周期の特定の１２８メガビットのＤＤＲ−ＳＤＲＡＭに基づく。
【００３７】
図５は、第２の実施の形態によるストリーミングメモリコントローラＳＭＣのブロック図を示す。ストリーミングメモリコントローラＳＭＣは、ＰＣＩエクスプレスインタフェースＰＩと、ストリーミングメモリユニットＳＭＵと、（外部）ＳＤＲＡＭに対するインタフェースとして機能する他のインタフェースＭＩとを具える。ストリーミングメモリユニットＳＭＵは、バッファ管理ユニットＢＭＵと、ＳＲＡＭとして実現することができるバッファＢと、アービタＡＲＢとを具える。ＳＲＡＭでバッファリングを実現するストリーミングメモリユニットＳＭＵは、ＰＣＩエクスプレスインタフェースを通じたＳＤＲＡＭへのアクセスをバッファリングするのに用いられるバッファマネージャと共にある。バッファ管理ユニットＢＭＵは、ＰＣＩエクスプレスインタフェースからＳＤＲＡＭへの読出し又は書込みアクセス、バッファ（アップデートポインタのレジスタ）の管理並びにバッファ（ＳＲＡＭ）及びＳＤＲＡＭに対するデータの中継に応答する。特に、バッファ管理ユニットＢＭＵは、ＦＩＦＯマネージャ及びストリームアクセスユニットＳＡＵを具えることができる。
【００３８】
ストリームアクセスユニットＳＡＵは、各ストリームに対するストリームＩＤ、アクセスタイプ及び実際のデータを提供する。仮想チャネル番号ＶＣ０〜ＶＣ７に基づいてＰＣＩエクスプレスインタフェースから受信した各パケットに対して、ストリームアクセスユニットＳＡＵは、データを、ローカルな共有ＳＲＡＭで実現される適切な入力バッファに送り出す。ＳＤＲＡＭのＦＩＦＯから検索されるとともにローカルなＳＲＡＭの出力バッファＢに配置されたデータに対して、宛先アドレスを発生するとともにデータをＰＣＩエクスプレスインタフェースに送り出す。アービタＡＲＢは、どのストリームが（ＤＤＲ−）ＳＤＲＡＭにアクセスできるか決定する。ＳＲＡＭは、プリフェッチ及びライトバックのために入出力バッファリングを実現する。ＳＭＣの中心にあるＦＩＦＯマネージャは、ストリームのアドレス発生、アクセスポインタ更新及び他の制御を通じてメモリのＦＩＦＯ機能を実現する。
【００３９】
図６は、ストリーミングメモリコントローラＳＭＣの論理的なブロック図を示す。ストリームＳＴ１〜ＳＳＴ４の各々を個別のバッファに関連させる。一度に一つのストリームのみが外部のＳＤＲＡＭにアクセスすることができるので、マルチプレクサＭＵＸと組み合わせてアービトレーションを実行するアービタＡＲＢを設ける。
【００４０】
互いに相違するリアルタイムストリーム間のメモリアクセスのアービトレーションは、スループット及び制限されたアクセス遅延を保証するのに必須である。データがメモリに書き込まれ又はメモリから読み出されると常に全ページが書き込まれ又は読み出され、すなわち、アクセスがバースト中で実行されると仮定する。（読出し及び書込み動作に対して僅かに異なる）１ページにアクセスするのに必要な時間を、タイムスロットと称することができる。サービスサイクルは、固定された数のタイムスロットからなるものと規定される。アクセスシーケンスは、新たなサービスサイクルが開始されるごとに繰返し及びリセットを行う。
【００４１】
第２の実施の形態によるストリーム間のアービトレーションアルゴリズムは、クレジットに基づく。各ストリームは、リザーブされた複数のクレジット（タイムスロット）を取得し、それは、各サービスサイクルで同一である。クレジットの数は、ストリームのバンド幅の要求を反映する。アクセスがストリームに対して許可される度に、許可されたストリームに対して利用できるクレジットの数が減少する。ストリームごとのクレジット数は、アービトレーションが生じる度に更新される。さらに、クレジットは、アービトレーションの周期を保証するためにサービスサイクルの終了時にリセットされる。長時間に亘って適切なアービトレーションが必要とされる場合に以前のサービスサイクルのアービトレーションメモリを提供するためにのみ、クレジット数をリフレッシュすることもできる（例えば、全てを全ての計数の最低値まで減少する。）。極端な場合には、無限に長い単一のサービスサイクルを用いることができる。
【００４２】
複数のストリームが同一タイムスロットでメモリにアクセスすることを所望するとき、クレジット計数がアービトレーション基準としてもちいられる。（現在のサービスサイクルととの用いられたクレジットとリザーブされたクレジットとの間の比として比較して測定された）クレジットの最小のものを用いたストリームがアクセスを得る。拒否された要求は、次のタイムスロットに対してバッファリング及びスケジューリングされる（又は他の到来する要求とアービトレーションを行う。）。クレジット比が二つの要求ストリームに対して同一である場合、要求するアクセスレイテンシーが低いものが先にアクセスを取得する（例えば、書込みより先に読出しを行う。）。
【００４３】
このようにして、各ストリームは、（要求する場合には）到来する要求の順序又は他のストリームの動作に関係なくサービスサイクルごとのメモリに対するリザーブされたアクセス数をワーストケースで取得する。これは、各ストリームに対してバンド幅の要求が適合されることを保証する。
【００４４】
きこで、クレジットに基づくアービトレーションアルゴリズムの一例を更に詳しく説明する。タイムスロットは、既に計算したように３．９μｓとなるＳＤＲＡＭ  ＭＥＭに対するページ（１ＫＢ）アクセスに等しく規定される。さらに、サービスサイクルが６０タイムスロットを有する、したがって、２３４μｓに等しいと仮定される。したがって、１秒ごとに４２７３サービスサイクルが存在し、その結果、約２ギガビット／秒（４２３７＊６０＊１ＫＢ）の全メモリバンド幅となる。各々が３５０メガビット／秒、７００メガビット／秒及び１０５０メガビット／秒のバンド幅要求を有する三つのストリームを設けると仮定する。したがって、第１ストリームＳＴ１のサービスサイクルごとのリザーブされたクレジット計数は、３５０／２１００×６０スロットであり、これは、１０スロットに等しくなる。第２ストリームＳＴ２及び第３ストリームＳＴ３はそれぞれ、２０又は３０のリザーブされたクレジットを有する。表１は、アービトレーションの結果であるストリームスケジュール（行Ｓｄｌ）を示す。表１は、各タイムスロット（行Ｓｌｏｔ）ごとのアービトレーション結果（現在のサービスサイクルごとの用いられたクレジットとリザーブされたクレジットとの間の比として測定された行ＣＳ１，ＣＳ２，ＣＳ３）を決定するクレジット（バンド幅）利用レベルも示す。
【００４５】
【表１】
2008522305.tif 000003
表１．クレジットに基づくアービトレーションの例
【００４６】
リザーブされたバンド幅が各ストリームに対して常に保証される間、リザーブされたが使用されなかったスロットを、必要な場合には他のストリームによって再使用することができる。これによって、バンド幅の柔軟性のある割当てが可能になる。全ての保証を保持する間、ネットワークの避けられない変動を柔軟に処理することができる。
【００４７】
さらに、上記形態が動作するのを保証するよう到来する要求の十分なバッファリングが必要となる。他のストリームがアクセスを許可された場合にストリームの要求をストールする機構も必要になる。ストール機構を、ＰＣＩエクスプレスフロー制御を用いて実現することができ、これによって、仮想チャネルＶＣごとに個別にあらゆるストリームを遅延することができる。したがって、要求される最小のバッファリングを、１タイムスロットすなわち１ページ中にメモリからアクセスされるデータのサイズに等しくすることができる。したがって、アクセスのバッファリングを増大する必要がない。しかしながら、バッファがプリフェッチバッファ又はライトバックバッファとして動作するので、アクセスレイテンシーを減少する。
【００４８】
説明したようなＩ／Ｏバッファのオーバディメンション(over-dimensioning)はアービトレーションを緩和する。提案されたアービトレーションアルゴリズムは全てパラメータ化される。アービトレーションの態様のほとんどをプログラムすることができる。例えば、特定のアービトレーション手順を構成時に選択することができ、メモリアクセスの精度（タイムスロット）をページから他の長さのバーストに変更することができ、かつ、最終的にはサービスサイクルごとのタイムスロット数を設定することもできる。
【００４９】
アービトレーションに対して二つのタイプのヒューリスティック、すなわち、時間に基づくアービトレーション及びイベントに基づくアービトレーションが用いられる。時間に基づくアービトレーションでは、各サービスサイクルは、時間軸上で互いに整列した固定された数のタイムスロットからなる。したがって、全てのタイムスロットは、予め規定された時間に開始し、許可されたアクセスが、実際の要求を発したときに関係なく予め決定された瞬時すなわち各スロットの開始時に開始する。それに対して、イベントに基づくアービトレーションでは、タイムスロットは、あるストリームが要求を発したときのみ開始し、許可されたアクセスがすぐに行われる。説明したこれらのアービトレーションの差としては、イベントに基づくアプリケーションが、電力に対して更に緩和されるとともに要求に対して良好な応答レイテンシーを行い、時間に基づくアービトレーションが、制御及び実現を簡単にするとともにジッタを小さくする。それにもかかわらず、要求数がサービスサイクルごとの利用可能なタイムスロットの総数以上になると、両方の処理とも全く同一の動作に関心が集まる。
【００５０】
図７は、第３の実施の形態によるシステムオンチップのアーキテクチャのブロック図を示す。第３の実施の形態のアーキテクチャは、第１の実施の形態のアーキテクチャにほぼ対応する。特に、図７のブロック図は、ストリーミングメモリコントローラＳＭＣが更に詳細に記載されている点を除いて図３のブロック図に対応する。ストリーミングメモリコントローラＳＭＣは、消費者Ｃ又は生産者Ｐとすることもできる少なくとも一つの処理ユニットに接続される。図７には一つの処理ユニットのみを示す。しかしながら、複数の処理ユニットが存在してもよい。ストリーミングメモリコントローラＳＭＣは、ＰＣＩエクスプレスネットワークＰＣＩＥを通じて処理ユニットに結合される。ストリーミングメモリコントローラＳＭＣは、外部メモリの場合もあるメモリＭＥＭを制御するのに用いられ、ストリーミングメモリコントローラＳＭＣの完全なＰＣＩエクスプレスインターフェース機能を保証するために設けられるＰＣＩエクスプレスインターフェースユニットＰＩを具える。構成レジスタユニットを、ＰＣＩエクスプレスインターフェースＰＩ、ストリーミングメモリユニットＳＭＵ及びメモリインタフェースＭＩに設けることができる。
【００５１】
ストリーミングメモリコントローラＳＭＣは、ストリーミングメモリユニットＳＭＵも具える。ストリーミングメモリユニットＳＭＵは、フロー制御を実現し、すなわち、フロー制御バッファ及び同期の割当て及び制御を行う。ストリーミングメモリユニットＳＭＵは、ＳＤＲＡＭとして実現することができる外部メモリＭＥＭに対するアクセスのストリームアービトレーションの処理も行う。ストリームアービトレーションは、ネットワークアービトレーションを調整するとともにメモリのタイミングを調整することによって行われる。ストリーミングメモリユニットＳＭＵは、更にＰＣＩエクスプレスネットワークによって実現されるように仮想チャネルＶＣを処理する。特に、ＰＣＩエクスプレスネットワークとＳＤＲＡＭとの間のアドレス変換が要求される。
【００５２】
ストリーミングメモリコントローラは、（ＰＣＩエクスプレスネットワークに基づく）ネットワークによって発生したトラフィックを、ＳＤＲＡＭとして実現することができる外部メモリＭＥＭの特定の動作に適合させる。換言すれば、ストリーミングメモリＳＭＣは、ストリームの各々に対するバンド幅を保証し、搬送時間を制限し、外部メモリＭＥＭへの及び外部メモリＭＥＭからの誤りのない伝送を行う。ストリーミングメモリコントローラＳＭＣが外部メモリに対するアクセスを制御するように設計されているので、ストリーミングメモリコントローラＳＭＣのバンド幅アービトレーションは、ネットワークアービトレーションと同一の概念、すなわち、タイムスロット及びタイムスロットの割当てに基づくが、ＳＤＲＡＭの動作に適合するためにタイムスロットのサイズを適合させる必要がある。
【００５３】
換言すれば、ストリーミングメモリユニットＳＭＵは、外部メモリＭＥＭに対するＰＣＩエクスプレスネットワークのネットワークサービスを実現する。したがって、ストリーミングメモリユニットＳＭＵは、ＳＤＲＡＭの利用できるバンド幅全体を複数のバーストアクセスに分割するために、ＰＣＩエクスプレスネットワークからのデータストリームを外部ＳＤＲＡＭにアクセスするためのバーストに変換する。バンド幅の要求を満足するために、バーストアクセスの数を、ネットワークからのストリームに割り当てることができる。ストリーミングメモリユニットＳＭＵは、ＰＣＩエクスプレスネットワークのフロー制御機構を満足するために同期気候を実現するようにも作用する。この同期機構は、到達要求のブロッキングを行うことができる。ストリーミングメモリコントローラＳＭＣが複数の個別のストリームを処理するように設計されるので、ストリーミングメモリユニットＳＭＵは、要求されたバッファを形成し、維持し及び管理するように設計される。
【００５４】
フロー制御に関して、フロー制御に対して要求されるバッファは、ＰＣＩエクスプレスネットワーク内で実現されるフロー制御バッファより大きくなる。さらに、これらのバッファの実際の制御は、ＰＣＩエクスプレスネットワーク内のアクセスと基本的に異なるＳＤＲＡＭアクセスの特別なタイミングのために互いに相違する。ストリーミングメモリコントローラＳＭＣ内の仮想チャネルＶＣの実現には、共有メモリ内で透明チャネル及び独立したチャネルを形成するために種々のサイズのタイムスロット、フロー制御バッファ及びＳＤＲＡＭの特定の動作を処理する必要がある。
【００５５】
特定のストリーミングフレームワークを実現するのに用いられる他のあらゆる構成要素に対して同一の概念を用いることができる。その一例を、既に説明した固体状態のシリコンメモリと異なる動作に基づくハードディスクドライブ（ＨＤＤ）のような記憶装置とすることができる。ストリーミングメモリコントローラは、基本的には三つの主要部分であるＰＣＩエクスプレスインターフェースＰＩ、ストリーミングメモリユニットＳＭＵ及びＳＤＲＡＭのメモリコントローラＭＣの全てを具える。インターフェースＰＩは、ＰＣＩエクスプレス仕様に従うＰＣＩエクスプレスインターフェースの全ての機能を提供するように設計される。さらに、インターフェースＰＩは、データストリームの特別のブロックに関連する識別に関する情報を送り出す。これを、仮想チャネル数又はＰＣＩエクスプレスパケットアドレスを用いて実現することができる。
【００５６】
ＳＤＲＡＭのような外部メモリ用のメモリコントローラＭＣは、外部メモリを制御するとともに各コマンドファシリティを提供する。
【００５７】
上記実施の形態において、メモリＭＥＭを外部メモリとして説明したが、そのようなメモリを内部メモリとして実現することもできる。
【００５８】
したがって、本発明の上記実施の形態の原理を、特定のネットワークサービスを他の（外部）装置が実現しない間にサポートするバスやネットワークのようなインターコネクトインフラストラクチャを具える全てのシステムに適用することができる。そのようなインターコネクトインフラストラクチャの一例は、バンド幅割当てサービス、フロー制御サービス等を（外部）ＳＤＲＡＭが実現しない間に実現することができるＰＣＩエクスプレスネットワークである。
【００５９】
図８は、ＰＣＩエクスプレスネットワーク内のＩＤのフォーマットを示す。したがって、ＩＤは、バス番号ＢＮ、装置番号ＤＮ及び機能番号ＦＮに基づく。この識別は、形成のため及び制御データを搬送するのに要求されるメッセージパケットをルーティングするのに用いられる。
【００６０】
図９は、ＰＣＩエクスプレスシステム内の形態を示す。システムは、ルートコンプレックスＲＣに接続された中央処理ユニットＣＰＵを具え、ルートコンプレックスＲＣは、ＰＣＩエクスプレス接続ＰＣＩＥ２を通じてメモリＭＥＭに結合され、ＰＣＩエクスプレス接続ＰＣＩＥ１を通じてＰＣＩエクスプレスエンドポイントＥＰに結合され、かつ、ＰＣＩエクスプレス接続ＰＣＩＥ３を通じてＰＣＩエクスプレス−ＰＣＩブリッジＰＢＲに結合される。スイッチＳＷが、ＰＣＩ接続ＰＣＩＥ４〜ＰＣＩＥ７を通じて複数のＰＣＩエクスプレスエンドポイントＥＰに接続される。
【００６１】
ＰＣＩエクスプレスネットワーク内の任意の機能を個別にアドレス指定することができる。例えば、０１：２９：０３は、バス１の装置番号２９の機能番号３を言及する。
【００６２】
そのような指定形態を、ＰＣＩエクスプレスネットワーク内で実現される種々の機能に関連したストリーミングバッファをそれぞれアドレス指定するのに用いることもできる。（ストリーミングバッファの）典型的な３２／６４ビットのメモリアドレスを１６ビットの機能ＩＤに置き換えることができる。したがって、ヘッダ内のオーバーヘッドがパケット内で少なく要求されるので、バンド幅の利用を向上する。ストリーミングバッファのアドレス指定は、メモリアドレス指定形態に依存しない。したがって、メモリアドレスは、全体に亘るシステムが複雑にならないようにシステムレベルでは公開されない。
【００６３】
それに対して、最大で８個のストリーミングバッファを単一の装置に設けることができるように互いに相違する８個の機能だけアドレス指定することができる。これは、ＰＣＩエクスプレス仕様によって規定される互いに相違する利用できる８個の仮想チャネルに適合する。
【００６４】
図１０は、第４の実施の形態によるシステムオンチップのブロック図を示す。第３の実施の形態のアーキテクチャは、図３に示したアーキテクチャに対応する。宛先エンドポイント装置ＤＥＰＤ及びソースエンドポイント装置ＳＥＰＤ（製造者、消費者）は、ＰＣＩエクスプレスネットワークＰＣＩＥに結合され、ＰＣＩエクスプレスネットワークＰＣＩＥは、ストリーミングメモリコントローラＳＭＣを通じて（外部）メモリＭＥＭに結合される。ストリーミングメモリコントローラＳＭＣは、アドレス変換及びバッファ管理を行う。ここでは、メモリＭＥＭ内の互いに相違するストリーミングバッファのアドレス指定を詳細に示す。
【００６５】
図１０によるシステムオンチップの通信は、ストリーミングデータに基づき、この場合、データは、共有メモリＭＥＭに配置されるＦＩＦＯとして実現されたストリーミングバッファでバッファリングされる。宛先装置ＤＥＰＤ、ソース装置ＳＥＰＤ、製造者Ｐ及び消費者Ｃは、ＰＣＩエクスプレスネットワークに組み込まれ、したがって、特定のストリーミングバッファを指定するために装置のＰＣＩエクスプレス識別すなわちバス：装置：機能ＩＤを用いる。特定のストリームに対するバッファのマッピング及びソース／宛先装置に対するバッファのマッピングの特別な関連付けを、（例えば、実行時に構成ソフトウェアにより）ストリームマネージャによって実行することができる。ソース／宛先装置（ユーザ／消費者）は、所定のＰＣＩエクスプレスＩＤを読出し及び書き込む。ストリーミングメモリコントローラＳＭＣは、ＦＩＦＯバッファに対して特定のメモリ量を割り当てる。その後、ＰＣＩエクスプレスＩＤ（機能ＩＤ）をストリーミングバッファにマッピングする。
【００６６】
ストリーミングメモリコントローラＳＭＣは、ＰＣＩエクスプレスバッファＩＤを、（ＳＤＲＡＭとして実現することができる）メモリＭＥＭにアクセスするための絶対メモリアドレスに局所的に変換する。さらに、ストリーミングメモリコントローラＳＭＣは、ストリーミングＦＩＦＯバッファの各々に対する読出しポインタ及び書込みポインタを常にモニタする。各読出し／書込みトランザクション中に更新を行うことができる。
【００６７】
絶対メモリアドレスを用いたランダムアクセスのためにメモリＭＥＭにアクセスすることもできる。
【００６８】
図１０において１個のメモリＭＥＭのみを示しているが、上記形態を、各ＰＣＩエクスプレスストリーミングトランザクション、特に、ダイレクトメモリアクセスＤＭＡアドレスのようなシーケンシャルアドレスに対して用いることができ、本発明の上記原理を、二つ以上の個別のメモリを有する物理的に分配されたメモリシステムに適用することもできる。そのような状況において、個別のメモリコントローラを各メモリに対して設けるべきであり、この場合、各メモリは個別の装置アドレスを具えるべきである。ここでは、ストリーミングバッファの個数は８に制限されない。
【００６９】
ストリーミングメモリコントローラＳＭＣは、ＦＩＦＯのＩＤを局所的な絶対メモリアドレスに変換する。メモリＭＥＭのＦＩＦＯ１は、００００アドレスに２５６キロバイトを具えることができる。ＦＩＦＯ２をアドレス０１００に割り当てることができる。８番目のＦＩＦＯであるＦＩＦＯ８をアドレス０８００に割り当てることができる。機能番号ＦＮ１を有する第１のＦＩＦＯ１をアドレス００００に関連させることができる。機能番号ＦＮ２を有するＦＩＦＯ２をアドレス０２００に関連させることができる。機能番号ＦＮ８を有するＦＩＦＯ８を第８のＦＩＦＯアドレス０８００に関連させることができる。
【００７０】
図１１は、図１０のメモリ内のメモリ割当ての一例を示す。ここでは、８個のバッファを設け、その各々は、２５６キロバイトで作動し、読出しポインタ及び書込みポインタを有する。ＦＩＦＯバッファを環状に実現する。増分されるポインタのいずれかがバッファの最後に到達する場合、ポインタは、バッファの先頭にラップされる。そのような実現は、ソース（製造者Ｐ）と宛先（消費者Ｃ）との間の同期を実現できるので有利である。さらに、バッファのオーバーフロー、バッファのアンダーフロー及びデータの上書きを防止することができる。
【００７１】
表２は、ＰＣＩエクスプレス機能番号から図１０に対応する論理ＦＩＦＯ番号及び絶対物理アドレスへの変換の一例を示す。
【００７２】
【表２】
2008522305.tif 000004
【００７３】
上記実施の形態によるメモリコントローラＳＭＣを、ＶＨＤＬで設計するとともに良好に統合することができる。メモリコントローラＳＭＣの論理に対して、インターナルフィリップス(internal Philips)のＣＭＯＳ１２（０．１２μｍ）技術ライブラリＰｃＣＭＯＳ１２コアリブ(corelib)（標準Ｖｔ）を用いる。ＳＲＡＭに対して、インターナルフィリップスの高速高密度シングルポートＳＲＡＭ技術ライブラリＣ１２ｘＳＲＡＭ（標準Ｖｔ）を用いる。シミュレーション及びベリフィケーションに対して、１２８メガビットのマイクロンのＤＤＲ−ＳＤＲＡＭを仮定した。
【００７４】
ＤＤＲ−ＳＤＲＡＭを、１３３ＭＨｚのクロック周波数で動作する設計に用いる場合、ＳＤＤＲ−ＳＤＲＡＭに同期をとるとともに同一バンド幅を提供するために２倍の周波数（２６６ＭＨｚ）で動作するＳＲＡＭに対して、クロックサイクルごとに２倍のデータにアクセスする必要がある。ＳＭＣの全ての内部ブロック（ＦＩＦＯマネージャ、アービター及びＳＲＡＭ）は２６６ＭＨｚで動作し、これら全てのブロックは、互いに同期をとるために同一クロックを用いる。
【００７５】
各々が１６ビット幅のデータバス及び０．１０３ｍｍ２の領域を有する二つのＳＲＡＭセルは、一例として実現される。各セルは１６キロバイトを有する。したがって、バッファ空間の全サイズは３２キロバイト（３２ページ）となる。バッファ空間を、レイテンシー要求に基づくストリームと各ストリームの実際のデータ速度に基づくストリームとの間で分割することができる。ここでは、ストリームごとに４ページと仮定するが、低いデータ速度及び中間のデータ速度に対して、これはあまりにも大きい。全体のシリコン領域を０．２０６ｍｍ２とし、そのうちの２８４μｍ２をアービターに対するものとし、１０５５μｍ２をＦＩＦＯマネージャに対するものとし、０．２０６ｍｍ２をＳＲＡＭに対するものとする。ＳＭＣの電力消失に関連して、ＳＲＡＭは２６６ＭＨｚの動作で８ｍＷを消費する。論理の電力消失を無視することができる。図面からわかるように、ＳＲＡＭは、ＳＭＣ設計のシリコン及び電力消費に優位である。特定のプレイバックアプリケーション（メモリにおいて同期がとられた二つの非圧縮オーディオストリーム）においてＳＭＣによって制御されるＤＤＲ−ＳＤＲＡＭの電力消費を、図１２ａに示す。
【００７６】
設計バーティフィケーションに対して、テストベンチは、テストベクトルを用いた設計を促進する。テストベンチは、テストベクトルファイルからデータをＳＭＣに供給するとともに、ＳＭＣの出力ポート及びＳＭＣの内部レジスタをモニタ及びチェックして設計の機能及びタイミングを確認する。
【００７７】
パラメータ（例えば、バッファサイズ、バーストサイズ、アービトレーション手法）を変更することによって設計を行う間、オフチップメモリに対するリアルタイムストリーミングメモリコントローラの設計のトレードオフの結果を得るために実験を行うことができる。設計を行うことによって見ることができるそのようなトレードオフの例は、データアクセスのワーストケース遅延に対するバーストサイズ及び入出力バッファサイズ、外部メモリの電力消失及びＳＭＣ内のレイテンシーの間の関係である。
【００７８】
一例として、図１２ａにおいて、外部ＤＤＲ−ＳＤＡＲＡＭから読み出された１０メガビット／秒のデータのアクセスのバーストサイズに対するこのメモリの電力消失を示す。図１２ｂにおいて、ネットワークパケットのバッファサイズに対するワーストケース遅延ＬＴを示す。
【００７９】
本発明によるリアルタイムストリーミングメモリコントローラは、オフチップネットワークサービスと、ストリーミングにおける外部ＤＲＡＭへのアクセスをリアルタイムに行う保証とをサポートする。
【００８０】
メモリコントローラＳＭＣを、ＰＣＩエクスプレスネットワーク内からの外部ＤＲＡＭへのアクセスを許容するように設計した。このメモリコントローラＳＭＣを、ＶＨＤＬで設計し、合成し及び検証した。増大したシリコン及び電力に関する複雑な形態が利用できる。さらに、特定のアプリケーションに対して設計スペースを調べることができ、種々のパラメータ及びアービトレーションポリシーによる設計を行うことによって所定のトレードオフを視覚化することができる。これによって、ストリーミングメモリコントローラの概念を分析することができるとともに、設計の問題を理解することができる。このようなモバイルの相互接続に対する特定のＳＭＣの設計の知識を用いる。
【００８１】
ここで、低電力でのＳＤＲＡＭアクセスに対するバンド幅を保証するメモリコントローラＳＭＣを実現する。バンド幅を常に保証するアービトレーションアルゴリズムは、ネットワーク変動及びジッタに対処するために常に柔軟性を有する。ＰＣＩエクスプレスは、独立してアービトレートすることができる８ストリームの制限を有する。電力及びアクセス遅延に対するバッファサイズ（コスト）のようなＳＭＣ設計の重要なトレードオフが存在する。Ｉ／Ｏバッファが増大するに従って、アービトレーションを緩和し、アクセスレイテンシーを減少し、ＳＤＲＡＭから要求された累加したバンド幅を減少する。
【００８２】
上記実施の形態は、本発明を限定するものではなく例示であり、当業者は、添付した特許請求の範囲を逸脱することなく幾多の変形例を設計することができる。特許請求の範囲において、括弧内の参照符号は特許請求の範囲を制限するものではない。用語「具え」は、特許請求の範囲に挙げられた構成要素又はステップの存在を除外するものではない。構成要素は、複数のものを除外するものではない。複数の手段を列挙した装置の請求項において、これら手段の幾つかをハードウェアの同一アイテムによって実現することができる。所定の手段を互いに異なる従属項で挙げることは、これらの手段の組合せを好適に用いることができないことを意味するものではない。
【００８３】
さらに、特許請求の範囲の参照符号は、特許請求の範囲を制限しない。
【図面の簡単な説明】
【００８４】
【図１】カーンプロセスネットワークの基本的な表示及び共有メモリアーキテクチャへのマッピングを示す。
【図２】共有メモリストリーミングフレームワークを有するシステムオンチップの基本アーキテクチャを示す。
【図３】第１の実施の形態によるシステムオンチップのブロック図を示す。
【図４】メモリクロックがイネーブルされたときの状態のＳＤＲＡＭの論理アーキテクチャを示す。
【図５】第２の実施の形態によるストリーミングメモリコントローラＳＭＣのブロック図を示す。
【図６】ストリーミングメモリコントローラＳＭＣの論理的なブロック図を示す。
【図７】第３の実施の形態によるシステムオンチップのアーキテクチャのブロック図を示す。
【図８】ＰＣＩエクスプレスネットワーク内のＩＤのフォーマットを示す。
【図９】ＰＣエクスプレスシステム内の形態を示す。
【図１０】第４の実施の形態によるシステムオンチップのブロック図を示す。
【図１１】図１０のメモリ内のメモリ割当ての一例を示す。
【図１２】アクセスのバーストサイズに対する外部ＤＤＲ−ＳＤＲＡＭの電力消失及びネットワークパケットのバッファサイズに対するワーストケース遅延を示す。
【図１】
2008522305.tif 000005
【図２】
2008522305.tif 000006
【図３】
2008522305.tif 000007
【図４】
2008522305.tif 000008
【図５】
2008522305.tif 000009
【図６】
2008522305.tif 000010
【図７】
2008522305.tif 000011
【図８】
2008522305.tif 000012
【図９】
2008522305.tif 000013
【図１０】
2008522305.tif 000014
【図１１】
2008522305.tif 000015
【図１２】
2008522305.tif 000016
【国際調査報告】
2008522305.tif 000017
2008522305.tif 000018