(57)【要約】メモリ(ＭＥＭ)をネットワーク(Ｎ)に結合するためのメモリコントローラ(ＳＭＣ)が提供される。ネットワーク(Ｎ)は、ネットワーク(N)上のフロー制御を実現するためにネットワークインターフェースバッファ(ＴＰＢ、ＦＣＢ)を有する少なくとも１つのネットワークインターフェース(ＰＣＩＥＩ)を具える。メモリコントローラ(ＢＭＵ)は、ネットワーク(N)からのデータのバッファリングをメモリ（MEM）とバースト単位でデータ交換するように管理するバッファマネジメントユニット(BMU)を具える。バッファマネジメントユニット(BMU)は、更に、データバーストをメモリ(MEM)に書き込むことができるような十分なデータがネットワークインターフェースバッファ(FCB)に存在するか、及び、メモリ(MEM)からのデータバーストをネットワークインターフェースバッファ(TPB)にバッファすることができるような十分なスペースがネットワークインターフェースバッファ(TPB)に使用可能であるかを決定するために、ネットワークインターフェースバッファ（TPB，FCB）をモニタする。バッファマネジメントユニット(BMU)はネットワークインターフェースバッファ（FCB，TPB）内のデータ量及び／又は使用可能スペースに従ってメモリ(MEM)へのアクセスを制御する。
2008542904.tif 000002
【特許請求の範囲】
【請求項１】
メモリをネットワークに結合するためのメモリコントローラであって、
前記ネットワークは前記ネットワークのフロー制御を実施するためにネットワークインターフェースバッファを有する少なくとも１つのネットワークインターフェースを具えており、
前記メモリコントローラは、前記ネットワークと前記メモリとの間でバースト単位にデータ交換すべくデータのバッファリングを管理するバッファマネジメントユニットを具え、該バッファマネジメントユニットは、前記ネットワークインターフェースバッファをモニタして、データバーストを前記メモリに書き込むことができるような十分なデータが前記ネットワークインターフェースバッファに存在するか、及び、前記メモリからのデータバーストを前記ネットワークインターフェースバッファにバッファすることができるような十分なスペースが前記ネットワークインターフェースバッファに使用可能であるかを決定し、前記メモリへの及びからのアクセスを、前記ネットワークインターフェースバッファ内の前記データ及び／又は前記使用可能スペースに従って制御するように構成されていることを特徴とするメモリコントローラ。
【請求項２】
前記ネットワークインターフェースはＰＣＩ  Ｅｘｐｒｅｓｓインターフェースであることを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記バッファマネジメントユニットは、前記ネットワークインターフェースバッファ内の前記スペースの量を格納する第１のレジスタと、前記ネットワークインターフェースバッファ内の前記データの量を格納する第２のレジスタと、前記メモリへの及びからのアクセスを、前記スペースの量と前記データの量とバーストサイズとに基づいて制御する制御手段とを具えることを特徴とする請求項１記載のメモリコントローラ。
【請求項４】
前記バーストマネジメントユニットは、前記第１及び第２のレジスタを更新するために、データが前記ネットワークインターフェースから前記ネットワークへ転送されるとき、第１の情報を、データが前記ネットワークインターフェースから前記メモリへ転送されるとき、第２の情報を受信することを特徴とする請求項３記載のメモリコントローラ。
【請求項５】
前記ネットワークインターフェースバッファが各フロー制御仮想チャネル毎に設けられていることを特徴とする請求項２記載のメモリコントローラ。
【請求項６】
メモリをネットワークに結合する方法であって、
前記ネットワークのフロー制御がネットワークインターフェース内のネットワークインターフェースバッファにより実施され、
前記方法は、前記ネットワークと前記メモリとの間でバースト単位にデータ交換すべくデータのバッファリングを管理し、
前記ネットワークインターフェースバッファをモニタして、データバーストをメモリに書き込むことができるような十分なデータが前記ネットワークインターフェースバッファに存在するか、及び、前記メモリからのデータバーストを前記ネットワークインターフェースバッファにバッファすることができるような十分なスペースが前記ネットワークインターフェースバッファに使用可能であるかを決定し、
前記メモリへの及びからのアクセスを、前記ネットワークイメージバッファ内の前記データ及び／又は前記使用可能スペースに従って制御することを特徴とするメモリ結合方法。
【請求項７】
複数の処理装置を結合するための少なくとも１つのネットワークインターフェースと、
前記複数の処理装置のデータを格納するメモリと、
請求項１−５のいずれかに記載のメモリコントローラと、
を具えるデータ処理システム。
【請求項８】
ネットワークのネットワークインターフェース内のフロー制御を実施するバッファを該ネットワークインターフェースに結合されるメモリコントローラ用のバーストバッファとして使用する使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びネットワークとメモリとを結合する方法に関する。
【背景技術】
【０００２】
高度モバイル携帯機器の複雑度が増している。益々厳しくなるこのような機器のアプリケーション、複雑度、フレキシビリティ及びプログラマビリティ要件はデコーダ内部のデータ交換を増大している。このようなアプリケーションを実施するデバイスは多くの場合いくつかの機能ブロック又は処理ブロック（ここではサブシステムという）からなる。これらのサブシステムは代表的には個別のＩＣとして実現され、各ＩＣはローカルプロセッサ、バス及びメモリなどからなる異なる内部アーキテクチャを有する。また、種々のサブシステムは一つのＩＣに集積することもできる。システムレベルでは、これらのサブシステムはトップレベルのインターコネクトを介して互いに通信し、所定のサービスを多くの場合リアルタイムサポートで提供する。携帯電話アーキテクチャ内のサブシステムの例としては、特にベースバンドプロセッサ、ディスプレイ、メディアプロセッサ又は記憶素子がある。マルチメディアアプリケーションをサポートするために、これらのサブシステムはデータの大部分をストリーム形式で交換する。データストリーミングの一例として、メディアプロセッサによるＭＰ３符号化オーディオファイルの読出し及び復号ストリームのスピーカへの送出がある。このような通信は、しばしばＫａｈｎプロセスネットワークと呼ばれている、ＦＩＦＯバッファを経て接続されるプロセスのグラフとして記述できる。Ｋａｈｎプロセスネットワークは、E.A. de Kochet al. ”YAPI: Application modeling for signal processing systems”,In Proc. Of the 37th Design Automation Conference, Los Angels, CA, June 2000, pp.402-405,IEEE 2000、に記載されているように、システムアーキテクチャにマップすることができる。このようなアーキテクチャでは、プロセスがサブシステムに、ＦＩＦＯがメモリにマップされ、通信がシステムレベルインターコネクトにマップされる。
【０００３】
バッファリングは関連するプロセス間のデータストリーミングの適切なサポートに不可欠である。ストリーミングにＦＩＦＯバッファを使用することは極めて当然のことであり、これはストリーミングアプリケーションの（有界）Ｋａｈｎプロセスネットワークモデルに従う。同時に実行し得るマルチメディアアプリケーションの数が増加すると、プロセスの数、リアルタイムストリームの数並びに関連するＦＩＦＯの数が相当増加ずる。
【０００４】
多くのシステムオンチップ（ＳｏＣ）及びマイクロプロセッサシステムでは、データのバッファリングにバックグラウンドメモリ（ＤＲＡＭ）が使用される。データをストリーミング方式で通信し、メモリにストリームとしてバッファするとき、プリフェッチバッファリングを使用できる。これは、ＳＤＲＡＭからのデータを前もって読み出し、特別の（プリフェッチ）バッファに保持することを意味する。リード要求が到来すると、この要求は、さもなければバックグラウンドメモリ（ＤＲＡＭ）により導入されるレイテンシなしで、（通常オンチップＳＲＡＭに実装される）ローカルプリフェッチバッファからサービスされる。これはプロセッサに対するランダムデータのキャッシュ技術に類似する。ストリーミングの場合には、キャッシュに使用されるランダムアドレスではなくデータの連続（又は予測可能）アドレス指定がプリフェッチバッファに使用される。
【０００５】
他方、ＤＲＡＭ技術のために、ＤＲＡＭへのアクセス（リード又はライト）はバースト単位に行う方がよい。単一ワードがＤＲＡＭメモリからアクセスされるとき、ACTIVEコマンドの発行後にＤＲＡＭのデータアレイからセンス増幅器へのメモリページのプリフェッチを実行するためにオーバヘッドが必要とされる。データがセンス増幅器へ転送されたとき、ＲＥＡＤコマンド後にセンス増幅器から活性化されたデータを読み出すために、データアドレスをデコーディングしデータを出力バッファへ転送するための初期時間が必要とされる。このようなオーバヘッドはＤＲＡＭメモリからその仕様に基づいて容易に計算できる。代表的には、このようなオーバヘッドは、数クロックサイクル（Ｔactive_to_read + Ｔread_to_data = ＴRCD ＋ＴCAS ＝2+3 = 5クロックサイクル）程度である。
【０００６】
ＤＲＡＭメモリへのバーストアクセスを可能にするために、多数の単一データアクセスを所定のバーストサイズのバーストに集めるライトバックバッファが実現されている。初期プロセシングが最初のＤＲＡＭアクセスに対して実行されると、メモリの次のサイクル毎にアクセスされる次のデータワードが、（例えばバーストポリシーに基づいて）その前のデータワードに関連するアドレスで、即ち１つのストリーミングプロセスで、格納又は取り出され、所定数のアクセス（例えば2/4/8フルページ）に対して何の追加の遅延も生じない（1サイクル以内）。従って、アドレスがアクセス毎に単調に増加又は減少する（例えば連続アドレス）際のメモリへのストリーミングアクセスに対して、バーストアクセスは単位アクセスデータあたり最低の電力消費で最大のスループットという最良のパフォーマンスをもたらす。ＤＲＡＭメモリの原理に関するもっと詳しい情報については、例えばマイクロンの１２８ビットＤＤＲＡＭの使用を参照されたい。例えば、
（http://download.micron.com/pdf/datasheets/dam/ddr/128MbDDRx4x8x16.pdf）を参照されたい。
【０００７】
このような機能をＤＲＡＭメモリ用のメモリコントローラに実施する場合、内部バッファが存在しなければならない。メモリコントローラの内部バッファはデータキャッシュ、プリフェッチ及びライトバックバッファ、ストリーミング及びアービトレーションのためにも使用される。
【０００８】
ＤＲＡＭメモリは頻繁にネットワーク又はバスを介してアクセスされるため、ＤＲＡＭメモリのメモリコントローラをオンチップ／オフチップネットワークに結合でき、これはある種のフロー制御を実施できる。フロー制御は、一般にネットワーク内の各ネットワークノードでデータをバッファリングすることにより実施され、このバッファリングは、次のノードからアクノレッジが受信され、ネットワークハイアラーキネットワーク内の受信ノードのバッファが受信ノードへ転送されるデータパッケージを格納するのに使用できる十分なスペースを有することが確認されるまで行われる。このようなフロー制御メカニズムの利点は、バッファアンダーフロー／オーバフローが防止されるので、信頼できる転送が得られる点にある。
【０００９】
図4は、送信ノード（ソースデバイスＳＤ）及び受信ノード（宛先デバイスＤＤ）のブロック図の一例を示す。ソースデバイスＳＤは、トランザクションペンディングバッファＴＰＢと、送信ユニットＴＵと、受信ユニットＲＵと、受信フロー制御パケットユニットＲＦＣＰと、リミットクレジットレジスタＣＬＲと、消費クレジットレジスタＣＣＲと、フロー制御ユニットＣＵとを具える。トランザクションペンディングバッファＴＰＢは任意のペンディングトランザクションをバッファするために使用される。送信ユニットＴＵはデータパケットを宛先デバイスＤＤに送信するために使用される。受信ユニットＲＵは宛先デバイスＤＤからのデータを受信するために使用される。受信フロー制御パケットユニットＲＦＣＰは宛先デバイスＤＤからの任意のフロー制御パケットを取り出すために使用される。宛先デバイスＤＤからのフロー制御パケットの取り出しに応じて、リミットクレジットＣＬがリミットクレジットレジスタＣＬＲに格納される。消費クレジットレジスタＣＣＲは消費されたクレジットＣＣを格納するために使用される。制御ユニットＣＵはリミットクレジットＣＬと消費クレジットとを比較するために使用される。リミットクレジットＣＬと消費クレジットとの差がトランザクションペンディングバッファにペンディング中のトランザクションのデータサイズより大きい場合、トランザクションを送ることができ、そうでなければ宛先デバイスＤＤから更なるクレジットを待つ。
【００１０】
宛先デバイスＤＤは、受信ユニットＲＵと、送信ユニットＴＵと、送信フロー制御パケットユニットＴＦＣＰと、使用可能クレジットレジスタＣＡＲと、フロー制御バッファＦＣＢとを具える。ソースデバイスＳＤからのトランザクションが受信ユニットＲＵにより受信される場合、このようなトランザクションはフロー制御バッファＦＣＢに格納される。このトランザクションがフロー制御バッファＦＣＢを出ると同時に、使用可能クレジットレジスタＣＡＲが増加される。使用可能クレジットレジスタＣＡＲ内の使用可能クレジットＣＡに従って、フロー制御パケットが送信フローパケットユニットＴＦＣＰ内で用意され、送信ユニットＴＵに転送され、送信ユニットＴＵがフロー制御パケットをソースデバイスＳＤに送信する。
【００１１】
フロー制御を実施するこのようなネットワークに関するもっと詳しい情報については、”PCI Express Base Specification, Revision 1.0”、 PCI-SIG（2002年7月）、Jasmin Aianovic and Hong Jiang著, “Multimedia and Quality of Service Support in PCI Express Architecture”、ホワイトペイパー、インテルコーポレーション（2002年9月12日）、Edward Solari and Brad Congdon著、“The Computer PCI Express Reference”、インテルプレス（2003年）を参照されたい。これらの３つの文献は参考のために援用されている。
【００１２】
図５は、フロー制御をメモリ制御で実施するネットワークとＳＤＲＡＮメモリとの組合せを具えるアーキテクチャのブロック図を示す。ネットワークＮはいくつかのフロー制御バッファＦＣＢ並びにいくつかのトランザクションペンディングバッファＴＰＢを具えることができる。ネットワークＮはフロー制御ロジックのような他の素子（図５の明瞭化のために省略されている）も具えることができる。メモリコントローラＭＣは書込みバッファＷＢと読出しバッファＲＢを具えることができる。書込みバッファＷＢ及び読出しバッファＲＢは、ＳＤＲＡＭメモリへのアクセスはバーストに基づいて行うのが好ましいために、必要とされる。データがネットワークＮから発生すると、このデータは書込みバッファＷＢへ転送される。ネットワークフロー制御を満足するためにネットワーク内のフロー制御バッファにおいてバッファリングが実行される。書込みバッファＷＢにおいて、データは規定のデータバーストが得られるまで集められ、次いで単一のバースト内でメモリに書き込まれる。最初の数個の読出しトランザクション要求は書込みバッファＷＢにおいてメモリから転送されるべきデータのために集められ、次いでデータが単一バーストにてメモリから読出しバッファＲＢへ転送される。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、ネットワークとメモリとの間のフロー制御が改善された、ネットワークとメモリとを結合するメモリコントローラ並びにネットワークとメモリを結合する方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の目的は、請求項１に係るメモリコントローラ及び請求項６に係るネットワークとメモリとの結合方法によって解決される。
【００１５】
従って、本発明によればメモリをネットワークに結合するためのメモリコントローラが提供される。ネットワークは、ネットワークのフロー制御を実現するためにネットワークインターフェースバッファを有する少なくとも１つのネットワークインターフェースを具える。メモリコントローラは、ネットワークからのデータのバッファリングをメモリとバースト単位にデータ交換するように管理するバッファマネジメントユニットを具える。バッファマネジメントユニットは、更に、ネットワークインターフェースバッファをモニタして、データバーストをメモリに書き込むことができるような十分なデータがネットワークインターフェースバッファに存在するか、及び、メモリからのデータバーストをネットワークインターフェースバッファにバッファすることができるような十分なスペースがネットワークインターフェースバッファに使用可能であるかを決定する。バッファマネジメントユニットはメモリへのアクセスをネットワークイメージバッファ内のデータ及び／又は使用可能スペースの量に従って制御する。
【００１６】
ネットワークインターフェースバッファ（フロー制御バッファ及びトランザクションペンディングバッファ）を用いて実施される上述の如きメモリコントローラのバッファリングは、シリコン利用効率が向上するので有利である。ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのフロー制御バッファとメモリコントローラ内のバーストバッファを別個に実現する場合には、大きなシリコン領域が必要とされ、これが避けられる。更に、不必要なデータコピーも避けられるため、必要とされるアクティビティ、従ってパワーが低くなる。単一バッファ（リード用の単一バッファ及びライト用の単一バッファ）は、それぞれに２つのバッファを使用する場合より遅延及びレイテンシが小さくなり有利である。ネットワークインターフェースにおけるフロー制御バッファは構造的に変更する必要はない。
【００１７】
本発明の一つの態様では、ネットワークインターフェースは、ＰＣＩ  Ｅｘｐｒｅｓｓネットワークの特性及びネットワークサービスをメモリコントローラで実現できるように、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースとして実現される。
【００１８】
本発明の一つの態様では、バッファマネジメントユニットは、ネットワークインターフェースバッファ内のスペースの量を格納する第１のレジスタと、ネットワークインターフェースバッファ内のデータの量を格納する第２のレジスタと、メモリへの及びからのアクセスを、前記スペースの量と前記データの量とバーストサイズとに基づいて制御する制御手段とを具える。
【００１９】
本発明の一つの態様では、バーストマネジメントユニットは、前記第１及び第２のレジスタを更新するために、データがネットワークインターフェースからネットワークへ転送されるとき、第１の情報を、データがネットワークインターフェースからメモリへ転送されるとき、第２の情報を受信する。
【００２０】
本発明の一つの態様では、ネットワークインターフェースバッファは各フロー制御仮想チャネル毎に設ける。フロー制御バッファは各仮想チャネル毎に個別に実現されるので、種々のストリームの弁別をコントローラで実施する必要はない。
【００２１】
本発明は、メモリをネットワークに結合する方法にも関するものであり、前記ネットワークはネットワークのフロー制御を実施するためにバッファを有する少なくとも一つのネットワークインターフェースを具える。バッファマネジメントユニットによって、ネットワークからのデータを前記メモリとバースト単位にデータ交換するように管理する。更に、前記ネットワークインターフェース内のバッファをモニタして、データバーストをメモリに書き込むことができるような十分なデータがネットワークインターフェースバッファに存在するか、及び、メモリからのデータバーストをネットワークインターフェースバッファにバッファすることができるような十分なスペースがネットワークインターフェースバッファに使用可能であるかを決定する。前記ネットワークインターフェースバッファ内の前記データの量及び／又は前記使用可能なスペースの量に従ってメモリへのアクセスを制御する。
【００２２】
本発明は、フロー制御を実施するために使用されるネットワークインターフェースバッファを、メモリコントローラのバーストバッファとして利用するという着想に基づく。このようなフロー制御バッファ及びトランザクションペンディングバッファの実現は従来の別個のバッファより大きいが、フロー制御バッファ及びトランザクションペンディングバッファはフロー制御バッファと（ＳＤＲＡＭ）メモリ用のメモリコントローラ内の従来のバーストバッファとの和より小さい。
【００２３】
他の特徴は従属請求項に特定されている。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明に係るシステムオンチップの基本アーキテクチャのブロック図を示す。このシステムオンチップは、少なくとも１つの処理ユニットＰ（図１には１つの処理ユニットしか示されていない点に注意されたい）又はサブシステムと、処理ユニットＰと任意の外部デバイスとを結合するインターコネクト手段ＩＭを具える。処理ユニットＰ及びインターコネクト手段ＩＭはネットワークＮとみなすことができる。或は又、インターコネクト手段ＩＭをネットワークＮとみなすことができる。インターコネクト手段ＩＭを介する処理ユニットＰ間の通信はストリーミング式に行われる。(外部)メモリＭＥＭはメモリコントローラＳＭＣを介してインターコネクト手段ＩＭ又はネットワークＮに結合される。（外部）メモリはＤＲＡＭメモリ（例えば、ＳＤＲＡＭ又はＤＤＲ−ＳＤＲＡＭメモリ）として実現できる。メモリコントローラＳＭＣはインターコネクト手段ＩＭのデータフォーマット及びアドレスフォーマットをメモリＭＥＭのデータフォーマット及びアドレスフォーマットに変換するように作用する。
【００２５】
ストリームベース通信を実現するために、バッファが設けられる。バッファはメモリＭＥＭに近接するメモリコントローラＳＭＣ内に置くことができる。しかし、バッファは、インターコネクトインフラストラクチャ内（例えばアービタ又はブリッジ内）に置くこともでき、またサブシステムＰに近接して置くことさえでき、これはメモリＭＥＭにアクセスする専用のＡＳＩＣ又はマイクロプロセッサとして実現することができる。バッファＢはＳＲＡＭとして実現するのが好ましい。好ましくは、ＦＩＦＯ原理がバッファによるデータストリームのデータフローを編成するために使用される。加えて、システム内に実装される単一バッファをもっと多くすることができる。その一つの理由は多くのストリームを区別するためであり、一つのストリームにつき一つのバッファを実装するのが好ましい。
【００２６】
ネットワークはＰＣＩ−Ｅｘｐｒｅｓｓネットワークを構成するのが好ましい。ＰＣＩ−Ｅｘｐｒｅｓｓネットワークの基本概念は、“PCI-Express Base Specification, Revision 1.0”,PCI-SIG, July 2000, www.pcisig.org.に記載されている。
【００２７】
サービスの品質、即ち予測可能なレイテンシ及び帯域幅を提供するネットワークの能力を保証するＰＣＩ−Ｅｘｐｒｅｓｓの一つの特徴は、仮想チャネルＶＣの付与にある。仮想チャネルメカニズムは異なる優先順位を有する異なるクラスのトラフィックのデータ送信をサポートする。仮想チャネルＶＣは、一般に、キュー、バッファ及び関連するロジックのような独立構成のリソースを具える。仮想チャネルＶＣのトラフィックフローは、送信側で共通物理リンクリソースに多重され、受信側で個別の仮想チャネルＶＣに多重分離される。
【００２８】
ＰＣＩ−Ｅｘｐｒｅｓｓリンクの各終端のポートはフロー制御を実行するために使用できる。トランザクションパケットをリンクを介して受信ポート又は受信側へ送る前に、送信ポートは、受信ポートが送信されるトランザクションを受信するのに十分なバッファスペースを有することを確認しなければならない。このため、フロー制御バッファが異なる仮想チャネル毎に設けられる。フロー制御は所定のリンクに対する各仮想チャネル毎に別々に管理される。
【００２９】
図２は、本発明の第1の実施例に係る、メモリコントローラＳＭＣ、ネットワークＮ及びメモリＭＥＭのブロック図を示す。メモリコントローラＳＭＣは、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェース、バッファマネジメントユニットＢＭＵ及び外部ＳＤＲＡＭメモリＭＥＭに対するインターフェースとして作用するインターフェースＩＯＵを具える。ＰＣＩ−ＥｘｐｒｅｓｓインターフェースＰＩ、バッファマネジメントユニットＢＭＵ及びインターフェースＩＯＵは、ネットワークＮからＳＤＲＡＭメモリへのアクセス並びにＳＤＲＡＭメモリからネットワークＮへのアクセスをバッファするとともにフロー制御を実行するために使用される。バッファマネジメントユニットＢＭＵは、ＰＣＩ−ＥｘｐｒｅｓｓからＳＤＲＡＭへのリード又はライトアクセスに応答して、バッファを管理するとともに、バッファ（ＳＲＡＭ）からＳＤＲＡＭへ／ＳＤＲＡＭからバッファ(ＳＲＡＭ)へデータを中継するように働く。上述した全ての要素はストリーミングベース通信ができるように設計されている。
【００３０】
ＰＣＩ−ＥｘｐｒｅｓｓネットワークＮは、特にネットワークＮのフロー制御メカニズムを実行するＰＣＩ−ＥｘｐｒｅｓｓネットワークインターフェースＰＣＩＥＩを具える。ネットワークインターフェースＰＣＩＥＩはいくつかのネットワークインターフェースバッファ、即ちフロー制御バッファＦＣＢと、いくつかのトランザクションペンディングバッファＴＰＢ（例えば各仮想チャネルＶＣのためのバッファ）と、データ受信用のフロー制御ロジックＦＣＬＲ及びデータ送信用のフロー制御ロジックＦＣＬＴとを具える。
【００３１】
第1の実施例では、ネットワークインターフェースＰＣＩＥＩ内のフロー制御バッファＦＣＢ及びトランザクションペンディングバッファＴＰＢはバーストバッファとして使用され、メモリコントローラＳＭＣでバースト単位にＤＲＡＭにアクセスするのに十分なデータが存在するまでデータをバッファする。これは特に有利である。その理由は、ＤＲＡＭメモリコントローラのバーストバッファを除去することができるとともに、フロー制御バッファ及びトランザクションペンディングバッファから(Ｓ)ＤＲＡＭメモリへの及びからのデータ移動を制御するために簡単な追加のロジックをメモリコントローラに追加する必要があるだけであるためである。更に、ネットワークインターフェースＰＣＩＥＩの構成、特にフロー制御バッファＦＣＢ及びトランザクションペンディングバッファＴＰＢの構成は基本的に変更されない。ネットワークＮ及びネットワークインターフェースＰＣＩＥＩはＰＣＩ−Ｅｘｐｒｅｓｓに基づくものとするのが好ましい。フロー制御バッファＦＣＢはネットワークインターフェースＰＣＩＥＩの受信側に仮想チャネル毎に実装される。トランザクションペンディングバッファＴＰＢはネットワークインターフェースの送信側に実装される。
【００３２】
フロー制御バッファＦＣＢ及びトランザクションペンディングバッファＴＰＢを用いてネットワークインターフェースを介してメモリへの及びからのデータ（又はデータバースト）をバッファすることにより、バッファマネジメントユニットＢＭＵは、ＳＤＲＡＭへのアクセスをフロー制御バッファＦＣＢ及びトランザクションペンディングバッファＴＰＢ内のデータの量又はスペースの量に基づいて制御する簡単なロジックユニットで実現できる。
【００３３】
データは、ネットワークＮから到来するライト要求毎にフロー制御バッファＦＣＢに集められ、これはデータバーストとしてＳＤＲＡＭメモリＭＥＭへ送るのに十分なデータがフロー制御バッファＦＣＢ内にバッファされるまで行われる。換言すれば、ライト要求によるデータは、バーストサイズ(例えばメモリページ)になるまでフロー制御バッファＦＣＢにバッファされ、ライトバーストが単一バースト内に発行される。リードトランザクションはトランザクションペンディングバッファＴＰＢに、十分なデータがリードバースト用に集められるまでバッファされる。
【００３４】
このようなフロー制御バッファ及びトランザクションペンディングバッファの実施は従来技術によるそれぞれのバッファより大きくなるが、このようなフロー制御バッファ及びトランザクションペンディングバッファはフロー制御バッファとＳＤＲＡＭメモリ用のメモリコントローラ内の従来のバーストバッファとの和より小さくなる。
【００３５】
図３は第１の実施例に係るネットワークインターフェース及びメモリコントローラのブロック図を示す。図３には、ネットワークインターフェースＰＣＩＥＩ及びメモリコントローラＳＭＣが詳細に示されている。ネットワークインターフェースＰＣＩＥＩの実施は図４に示すソースデバイスＳＤ及び宛先デバイスＤＤの実施にほぼ一致する。このため、３つのレジスタ又はカウンタ、即ち消費クレジットＣＣを格納するクレジット消費レジスタ（全てのトランザクションの追跡のため）、リミットクレジットＣＬを格納するリミットクレジットレジスタＣＬＲ及び使用可能なクレジットＣＡを格納する使用可能クレジットレジスタＣＡＲが設けられる。更に、受信フロー制御パケットユニットＲＦＣＰ及び送信フロー制御パケットユニットＴＦＣＰが設けられる。送信ユニットＴＵはデータをネットワークへ送信し、受信ユニットＲＵはネットワークからデータを受信する。制御ユニットＣＵは、リミットクレジットＣＬと消費クレジットＣＣとを差がデータサイズより大きいかどうかを決定するよう作用する。そうであれば、では送信ユニットＴＵからネットワークへ送出される。しかし、そうでなければ、後続のクレジットを待つ。
【００３６】
メモリコントローラＳＭＣは、入力レジスタＩＲ、出力レジスタＯＲ及びバッファマネジメントユニットＢＭＵを具える。バッファマネジメントユニットＢＭＵは、使用可能スペースＳＡを格納する使用可能スペースレジスタ又はカウンタＳＡＲ、使用可能データＤＡを格納する使用可能データレジスタＤＡＲ、バーストサイズＢＳを格納するバーストサイズレジスタＢＳＲ、第１制御ユニットＣＵ１及び第２制御ユニットＣＵ２を具える。
【００３７】
ネットワークインターフェースＰＣＩＥＩ内の制御ユニットＣＵの出力は使用可能スペースカウンタＳＡＲに結合され、使用可能スペースＳＡのカウントを増加する。入力レジスタＩＲはトランザクションペンディングバッファＴＰＢの入力に結合され、データｄtをこのバッファに直接転送する。フロー制御バッファＦＣＢの出力は出力レジスタＯＲに結合され、データｄtを出力レジスタＯＲに直接転送する。受信ユニットＲＵの出力は、使用可能データカウンタＤＡＲに結合され、使用可能データＤＡを増加するとともに、第２制御ユニットＣＵ２に結合され、新しいデータの到来を通知する。トランザクションペンディングバッファＴＰＢの出力は第１制御ユニットＣＵ１に結合され、データがネットワークＮに送信されることを制御ユニットＣＵ１に通知する。トランザクションペンディングバッファＴＰＢの出力はクレジット消費レジスタＣＣＲにも結合される。
【００３８】
ネットワークインターフェースＰＣＩＥＩの受信側では、データｄtがネットワークＮから受信ユニットＲＵを経て到来し、フロー制御バッファＦＣＢ内にバッファされる。バッファマネジメントユニットＢＭＵ内の第２制御ユニットＣＵ２がフロー制御バッファＦＣＢ内の実際のデータをモニタしてＦＣＢ内のデータが所要のバーストサイズを超えるかどうかを決定する。
【００３９】
フロー制御バッファＦＣＢ内のデータがバーストサイズＢＳを超える場合には、フロー制御バッファＦＣＢ内のデータがフロー制御バッファから読み出され、出力レジスタＯＲ、即ち出力バッファを経由してメモリＭＥＭに転送される。しかし、完全なバーストを形成するに十分なデータがフロー制御バッファＦＣＢ内に存在しない場合には、ネットワークＮから更なるデータを待つ。フロー制御バッファＦＣＢ内のデータを追跡するために、使用可能データカウンタＤＡＲが使用される。このカウンタは処理の開始時に零にリセットされる。ネットワークからデータが到来する度にカウンタはカウントアップし、バーストライト毎にカウンタのカウントはバーストサイズだけ減少する。
【００４０】
データをネットワークＮに送信する場合、トランザクションペンディングバッファＴＰＢは、そのバッファ内に残存するスペースが単一バーストサイズＢＳより小さくなるまで満たされる。トランザクションペンディングバッファ内の実際のスペースが使用可能スペースカウンタＳＡＲによりモニタされる。特に、トランザクションペンディングバッファＴＰＢ内の使用可能スペースがバーストサイズＢＳを超えるかどうかがモニタされる。そうであれば、データバーストがメモリＭＥＭから入力レジスタＩＲを経てワード単位で読み出され、トランザクションペンディングバッファＴＰＢに転送される。十分な使用可能スペースがない場合には、新しいデータのトランザクションを待つ。トランザクションペンディングバッファＴＰＢ内の使用可能スペースの量を追跡するために、使用可能スペースカウンタＳＡＲが使用される。この使用可能スペースカウンタは処理の開始時にトランザクションペンディングバッファのサイズにリセットされる。トランザクションペンディングバッファからネットワークＮへ送信されるデータ毎にこのカウンタはカウントアップし、メモリＭＥＭからのバーストリード毎にこのカウンタのカウントはバーストサイズだけ減少する。
【００４１】
ネットワークインターフェースＰＣＩＥＩのフロー制御バッファ及びトランザクションペンディングバッファを用いることでメモリコントローラのバッファを上記の如く実現することは、シリコン利用効率が向上するので有利である。ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのフロー制御バッファとメモリコントローラ内のバーストバッファを別個に実現する場合には、大きなシリコン領域が必要とされる。更に、不必要なデータコピーも避けられるため、必要とされるアクティビティ、従ってパワーが低くなる。単一バッファ（リード用の単一バッファ及びライト用の単一バッファ）は、それぞれに２つのバッファを使用する場合より遅延及びレイテンシが小さくなり有利である。フロー制御バッファは各仮想チャネル毎に個別に実現されるので、異なるストリームの区別をコントローラで行う必要はない。ネットワークインターフェースにおけるフロー制御バッファは構造的に変更する必要はない。
【００４２】
上述の方式はフロー制御を実施するネットワークを経てＤＲＡＭメモリにアクセスする全てのシステムに実施することができる点に注意されたい。
【００４３】
最後に、上述の実施例は例示であり、本発明を限定するものではなく、当業者は添付の特許請求の範囲で特定される発明の範囲を逸脱することなく多くの代替実施例を設計可能であるということに留意する必要がある。特許請求の範囲において、括弧内の符号は請求項の記載を限定するものと解釈されるべきではない。「具えている」および「具える」などの単語は、請求項あるいは本明細書に列記されていない要素またはステップの存在を除外するものではない。単数形で述べる要素は複数の要素を除外するものではないし、その逆も成り立つ。いくつかの手段を列挙している装置請求項において、これらの手段のいくつかは、ハードウェアあるいはソフトウェアの同一の要素によって具現化できる。特定の手段が相互に異なる従属請求項に引用されているが、このことは、これらの手段の組合せが有利に使用できないことを示すものではない。
【図面の簡単な説明】
【００４４】
【図１】本発明に係るオンチップシステムの基本アーキテクチャのブロック図を示す。
【図２】本発明に係るメモリコントローラＳＭＣ、ネットワークＮ及びメモリＭＥＭのブロックを示す。
【図３】図２のバッファマネジメントユニット及びインターフェースのブロック図を示す。
【図４】従来技術に係るネットワーク内のソースデバイス及び宛先デバイスのブロック図を示す。
【図５】従来技術に係るメモリコントローラ、ネットワーク及びメモリのブロック図を示す。
【図１】
2008542904.tif 000003
【図２】
2008542904.tif 000004
【図３】
2008542904.tif 000005
【図４】
2008542904.tif 000006
【図５】
2008542904.tif 000007
【国際調査報告】
2008542904.tif 000008
2008542904.tif 000009
2008542904.tif 000010