(57)【要約】メモリー(MEM)をネットワーク(N; IM)に結合するメモリーコントローラ(SMC)を提供する。このメモリーコントローラ(SMC)は、メモリーコントローラ(SMC)をネットワーク(N; IM)に接続するための第１インタフェース(PI)を具えている。第１インタフェース(PI)は、データストリーム(ST1-ST4)を受信及び送信すべく構成されている。ストリーミング・メモリーユニット(SMU)が第１インタフェースに結合され、ネットワーク(N; IM)とメモリー(MEM)との間のデータストリーム(ST1-ST4)を制御する。このストリーミング・メモリーユニット(SMU)は、データストリーム(ST1-ST4)の少なくとも一部分を一時的に記憶するバッファ(B)を具えている。バッファ管理装置(BMU)を設けて、データストリーム(ST1-ST4)のバッファ(B)への一時的記憶を第１及び第２動作モード(1OM; 2OM)で管理する。第１動作モード(1OM)では、メモリー(MEM)に記憶すべきデータストリーム(ST1-ST4)からのデータを、バッファ(B)のある部分が占有されるまで一時的にバッファ(B)に記憶する。第２動作モード(2OM)では、バッファ(B)の上記部分が占有された後に、バッファ管理装置(BMU)がバッファ(B)を、メモリー(MEM)からプリフェッチしたデータをバッファリングするためのプリフェッチバッファ(B)と、メモリー(MEM)に書き戻すデータをバッファリングするための書戻しバッファ(WBB)とに分割する。
2008544348.tif 000002
【特許請求の範囲】
【請求項１】
メモリーをネットワークに結合するメモリーコントローラにおいて、
前記メモリーコントローラを前記ネットワークに接続するための第１インタフェースであって、データストリームを受信及び送信するように構成された第１インタフェースと；
前記第１インタフェースに結合され、前記ネットワークと前記メモリーとの間の前記データストリームを制御するストリーミング・メモリーユニットであって、前記データストリームの少なくとも一部分を一時的に記憶するバッファと、前記データストリームの前記バッファへの記憶を、第１動作モード及び第２動作モードで管理するバッファ管理装置とを具え、
前記第１動作モードでは、前記データストリームからの前記メモリーに記憶すべきデータを、前記バッファの特定部分が占有されるまで前記バッファに一時的に記憶し、
前記第２動作モードでは、前記バッファの前記部分が占有された後に、前記バッファ管理装置が、前記バッファを、前記メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、前記メモリーに書き戻すべきデータをバッファリングするための書戻しバッファとに分割する
ことを特徴とするメモリーコントローラ。
【請求項２】
前記第１インタフェースがＰＣＩエクスプレス（登録商標）インタフェースであることを特徴とする請求項1に記載のメモリーコントローラ。
【請求項３】
さらに、
前記ストリーミング・メモリーユニットに結合され、前記メモリーコントローラを前記メモリーに接続し、前記メモリーとバースト形式でデータを交換する第２インタフェースを具えていることを特徴とする請求項1または２に記載のメモリーコントローラ。
【請求項４】
前記バッファ管理装置が、前記第１動作モードにおいて、
前記バッファの開始アドレスを記憶する開始アドレスレジスタと；
前記バッファの終端アドレスを記憶する終端アドレスレジスタと；
前記バッファの読出しポインタを記憶する読出しポインタレジスタと；
前記バッファの書込みポインタを記憶する書込みポインタレジスタとを具え、
前記バッファ管理装置が、前記第２動作モードにおいて、
前記バッファの開始アドレスを記憶する開始アドレスレジスタと；
前記バッファの終端アドレスを記憶する終端アドレスレジスタと；
プリフェッチ開始アドレスを記憶するプリフェッチ開始アドレスレジスタと；
プリフェッチ終端アドレスを記憶するプリフェッチ終端アドレスレジスタと；
プリフェッチ読出しポインタを記憶するプリフェッチ読出しポインタレジスタと；
プリフェッチ書込みポインタを記憶するプリフェッチ書込みポインタレジスタと；
書戻し読出しポインタを記憶する書戻し読出しポインタレジスタと；
書戻し書込みポインタを記憶する書戻し書込みポインタレジスタと
を具えていることを特徴とする請求項1、２または３に記載のメモリーコントローラ。
【請求項５】
前記バッファ管理装置が、前記第１動作モードから前記第２動作モードへの遷移を動的に判定するように構成されていることを特徴とする請求項１に記載のメモリーコントローラ。
【請求項６】
メモリーをネットワークに結合する方法において、
メモリーコントローラを前記ネットワークに接続するための第１インタフェース経由でデータストリームを受信及び送信するステップと；
ストリーミング・メモリーユニットによって、前記ネットワークと前記メモリーとの間の前記データストリームを制御するステップと；
前記データストリームの少なくとも一部分をバッファに一時的に記憶するステップと；
前記データストリームの前記バッファへの一時的記憶を、第１動作モード及び第２動作モードで管理するステップであって、
前記第１動作モードにおいて、前記データストリームからの前記メモリーに記憶すべきデータを、前記バッファの特定部分が占有されるまで前記バッファに記憶し、
前記第２動作モードにおいて、前記バッファの前記部分が占有された後に、前記バッファを、前記メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、前記メモリーに書き戻すべきデータをバッファリングするための書戻しバッファとに分割するステップと
を具えていることを特徴とするメモリーのネットワークへの結合方法。
【請求項７】
処理装置、及び前記処理装置を結合するための相互接続手段を有するネットワークと；
請求項１〜５のいずれかに記載のメモリーコントローラと
を具えていることを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーコントローラ、及びネットワークとメモリーを結合する方法に関するものである。
【背景技術】
【０００２】
【非特許文献１】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
【０００３】
先進の移動（モバイル）装置及び携帯装置の複雑性は増加している。こうした装置の用途、フレキシビリティ（柔軟性）、及びプログラム可能性の常により厳しくなる要求は、装置内部のデータ交換を増大させる。こうした用途を実現する装置は、本明細書ではサブシステムと称するいくつかの機能または処理ブロックから成ることが多い。これらのサブシステムは一般に、分離したＩＣとして実現され、各ＩＣは、ローカルのプロセッサ、バス、及びメモリー等で構成される異なるアーキテクチャを有する。あるいはまた、種々のサブシステムを１つのＩＣ上に集積することができる。システムレベルでは、これらのサブシステムは、リアルタイムのサポートを伴うことの多い特定のサービスを提供するトップレベルの相互接続を経由して互いに通信する。移動電話アーキテクチャにおけるサブシステムの例として、とりわけ、ベースバンドプロセッサ、ディスプレイ、メディアプロセッサ、あるいは記憶装置が挙げられる。ＰＣＩエクスプレス（PCI Express）（登録商標）ネットワークは、システムレベルの相互接続の例であり、非同期データ伝送及びフロー制御のようなサービスを提供する。マルチメディア応用のサポートのために、これらのサブシステムは大部分のデータをストリーム（データ流）の様式で交換する。データストリーミング（ストリーム伝送）の例として、メディアプロセッサによってローカル記憶装置から符号化オーディオファイルを読み出し、復号化ストリームをスピーカーに送信することを参照することができる。こうした通信は、しばしばカーン（Kahn）プロセス・ネットワークと称される、ＦＩＦＯ（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に記載されている。こうしたアーキテクチャでは、プロセスはサブシステム上にマッピングされ、ＦＩＦＯバッファはメモリー上にマッピングされ、そして通信はシステムレベルの相互接続上にマッピングされる。
【０００４】
バッファリング（バッファに記憶すること）は、関係するプロセス間のデータストリーミングの適切なサポートにおいて不可欠である。ＦＩＦＯバッファをストリーミングに使用することは極めて自然であり、ストリーミング用途の（有界）カーンプロセス・ネットワークモデルに従っている。同時に実行されるマルチメディア応用の数の増加と共に、プロセス数、リアルタイムストリーム数、並びに関連するＦＩＦＯの数も大幅に増加する。
【０００５】
【非特許文献２】J. L. Hennessy and D. A. Patterson, “Computer Architecture -- A Quantitative Approach”
【０００６】
多くのシステム・オンチップ（ＳｏＣ：System-on-Chip）及びマイクロプロセッサシステム内では、バックグランドメモリー（ＤＲＡＭ）をデータのバッファリング用に用いている。データをストリーミング様式で通信し、ストリームとしてメモリーにバッファリングする際には、プリフェッチ・バッファリングを用いることができる。このことは、ＳＤＲＡＭからのデータが事前に読み出され、特別な（プリフェッチ）バッファ内に保持されることを意味する。読出し要求が到着すると、このデータは、通常はオンチップ（チップ上の）ＳＲＡＭの形で実現されるローカル・プリフェッチバッファから、レイテンシ（待ち時間）なしに供給することができ、さもなければ、バッククランドメモリー（ＤＲＡＭ）によってレイテンシが導入される。このことは、既知の、プロセッサ用のランダムデータのキャッシング（キャッシュ記憶）技術と類似している。ストリーミング用には、キャッシュ内で用いられるデータのランダムアドレス指定よりもむしろ、データの連続（より良い言い方をすれば予測可能な）アドレス指定が用いられる。参考文献：J. L. Hennessy and D. A. Patterson, “Computer Architecture -- A Quantitative Approach”
【０００７】
他方では、ＤＲＡＭ技術により、ＤＲＡＭはバースト形式でアクセス（読出しまたは書込み）する方が良い。従って、多くの単発的なデータアクセスを特定サイズのアクセスのバーストにまとめる書戻しバッファがしばしば実現される。一旦、最初のＤＲＡＭアクセスのための初期処理が、前のアドレスと特定の関係にある（バーストのやり方次第で、例えばその次、その前の）アドレスで行われると、指定回数のアクセス（２／４／８フルページ）については、メモリーの次サイクル毎にアクセスされるデータは、（１サイクル以内の）さらなる遅延なしに記憶または検索することができる。従って、メモリーのストリーミングアクセスについては、すべてのアクセスについてアドレスが同様に増加または減少する際（例えば連続アクセス）には、バーストアクセスは最低の電力消費で最良の性能を提供する。ＤＲＡＭメモリーの原理に関するそれ以上の情報については、参考文献として本明細書に含めるマイクロン社の128ＭビットＤＲＡＭの仕様を、http://download.micron.com/pdf/datasheets/dram/ddr/128MbDDRx4x8x16.pdf等で参照されたい。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ネットワークとメモリーを結合するメモリーコントローラ、並びに方法を提供することにある。
【課題を解決するための手段】
【０００９】
この目的は、請求項１に記載のメモリーコントローラ、及び請求項６に記載の、ネットワークとメモリーを結合する方法によって達成される。
【００１０】
従って、ネットワークとメモリーを結合するメモリーコントローラが提供される。このメモリーコントローラは、メモリーコントローラをネットワークに接続するための第１インタフェースを具えている。この第１インタフェースは、データストリームを受信及び送信するように構成されている。ストリーミング・メモリーユニットが前記第１インタフェースに結合されて、ネットワークとメモリーとの間のデータストリームを制御する。このストリーミング・メモリーユニットは、データストリームの少なくとも一部分を一時的に記憶するためのバッファを具えている。バッファ管理装置を設けて、データストリームの前記バッファへの一時的記憶を第１及び第２動作モードで管理する。第１動作モードでは、メモリーに記憶すべきデータストリームからのデータを一時的に、バッファのある部分を占有するまでバッファに記憶する。第２動作モードでは、バッファの前記部分が占有された後に、前記バッファ管理装置がこのバッファを、メモリーからプリフェッチしたデータをバッファリングするためのプリフェッチバッファと、メモリーに書き戻すデータをバッファリングするための書戻しバッファとに分割する。
【００１１】
従って、こうしたメモリーコントローラで、バッファリング管理及びバッファを動的に構成することができる。データがバックグランドメモリーに記憶されていないが、ストリーミング・メモリーコントローラのバッファにバッファリングされている際には、読出し及び書込みのアクセスに役立ち、かつプリフェッチ及び書戻しのバッファリングを実現するバッファが１つしか存在しない。他方では、データがバックグランドメモリーに記憶されている際には、この単一バッファは動作時間中に動的に２つの部分、即ちプリフェッチ部と書戻し部とに分割される。従って、より単純なバッファの管理、及びより良好なメモリー利用が達成される。
【００１２】
本発明の１つの態様によれば、第１インタフェースがＰＣＩエクスプレス・インタフェースとして実現される。こうしたインタフェースにより、メモリーコントローラをＰＣＩエクスプレス・ネットワークに結合することができる。
【００１３】
本発明の他の態様によれば、第２インタフェースが前記ストリーミング・メモリーユニットに結合されて、メモリーコントローラをメモリーに接続し、このメモリーとの間でデータを、バーストの形で交換する。従って、別なインタフェースが設けられ、これにより、前記メモリーコントローラは、バースト様式で動作中のあらゆるメモリーとの間でデータを交換することができる。
【００１４】
本発明のさらに他の態様によれば、前記第１動作モードでは、前記バッファ管理装置が、バッファの開始アドレスを記憶する開始（スタート）アドレスレジスタ、バッファの終端（エンド）アドレスを記憶する終端アドレスレジスタ、バッファの読出しポインタを記憶する読出しポインタレジスタ、及びバッファの書込みポインタを記憶する書込みポインタレジスタを具えている。第２動作モードでは、前記バッファ管理装置が、バッファの開始アドレスを記憶する開始アドレスレジスタ、終端アドレスを記憶する終端アドレスレジスタ、プリフェッチ開始アドレスを記憶するプリフェッチ開始アドレスレジスタ、プリフェッチ終端アドレスを記憶するプリフェッチ終端アドレスレジスタ、プリフェッチ読出しポインタを記憶するプリフェッチ読出しポインタレジスタ、プリフェッチ書込みポインタを記憶するプリフェッチ書込みポインタレジスタ、書戻しの読出しポインタを記憶する書戻し読出しポインタレジスタ、及び書戻しの書込みポインタを記憶する書戻し書込みポインタを具えている。従って、メモリーコントローラにおけるバッファリングは、第１動作モードにおける４つのポインタ、及び第２動作モードにおける８つのポインタを設けることによって達成することができ、これによりバッファ管理の単純な実現が提供される。
【００１５】
本発明は、ネットワークとメモリーを結合する方法にも関するものである。メモリーコントローラをネットワークに接続するための第１インタフェース経由でデータストリームを受信及び送信する。ネットワークとメモリーとの間のデータストリームは、ストリーミング・メモリーユニットによって制御される。データストリームの少なくとも一部分をバッファに記憶する。このデータストリームのバッファへの一時的記憶は、第１及び第２動作モードで管理する。第１動作モードでは、メモリーに記憶すべきデータストリームからのデータを、バッファのある部分が占有されるまで一時的に記憶する。第２動作モードでは、バッファのこの部分が占有された後に、このバッファを、メモリーからのプリフェッチデータをバッファリングするためのプリフェッチバッファと、メモリーに書き戻すデータをバッファリングするための書戻しバッファとに分割する。
【００１６】
本発明の他の態様は従属請求項に記載されている。
本発明のこれら及び他の態様は、以下に図面を参照しながら説明する実施例を参照すれば明らかになる。
【発明を実施するための最良の形態】
【００１７】
図１に、本発明によるシステム・オンチップ（チップ上の回路システム）の基本アーキテクチャのブロック図を示す。このシステム・オンチップは、少なくとも１つの処理装置Ｐ（なお図１には、処理装置は１つだけ示す）またはサブシステム、処理装置Ｐを結合するための相互接続手段ＩＭ、及び何らかの外部装置を示す。処理装置Ｐ及び相互接続手段ＩＭはネットワークＮとして考えることができる。あるいはまた、相互接続手段ＩＭをネットワークとして考えることもできる。相互接続手段ＩＭ上での処理装置Ｐとの間の通信はストリーミングの様式で実行される。外部メモリーＭＥＭが、メモリーコントローラＳＭＣ経由で相互接続手段ＩＭまたはネットワークＮに結合されている。外部メモリーＭＥＭはＳＤＲＡＭとして実現することができる。メモリーコントローラＳＭＣは、相互接続手段ＩＭまたはネットワークのデータフォーマット及びアドレスフォーマットを、メモリーＭＥＭのデータフォーマット及びアドレスフォーマットに変換する働きをする。
【００１８】
ストリームベースの通信を実現するために、バッファを設ける。このバッファは、メモリーＭＥＭに近いメモリーコントローラＳＭＣ内に配置することができる。しかし、このバッファは相互接続インフラストラクチャ（例えばアービタまたはブリッジＢＲ）内に、さらには、メモリーＭＥＭをアクセスするサブシステムＰの近くに配置することもでき、サブシステムＰは専用ＡＳＩＣまたはマイクロプロセッサとして実現することができる。こうしたバッファＢはＳＲＡＭとして実現することが好ましい。ＦＩＦＯ（ファーストイン・ファーストアウト、先入れ先出し）原理を採用して、バッファを通るデータストリームのデータフローを編成することができる。これに加えて、２つ以上のバッファをシステム内に実現することができる。このことの１つの理由は、多数のストリーム間の分別であり、従って単一ストリーム当たり１つのバッファを実現する。
【００１９】
【非特許文献３】PCI-Express Base Specification, Revision 1.0, PCI-SIG, July 2002
【００２０】
上記ネットワークはＰＣＩエクスプレス・ネットワークを構成することが好ましい。ＰＣＩエクスプレス・ネットワークの基本概念は、PCI-Express Base Specification, Revision 1.0, PCI-SIG, July 2002に記載され、www.pcisig.org等で参照することができる。
【００２１】
図２に、本発明の第１実施例によるストリーミング・メモリーコントローラＳＭＣのブロック図を示す。ストリーミング・メモリーコントローラＳＭＣは、ＰＣＩエクスプレス・インタフェースＰＩ、ストリーミング・メモリーユニットＳＭＵ、及び外部ＳＤＲＡＭメモリーへのインタフェースとして働く別なインタフェースＭＩを具えている。ストリーミング・メモリーユニットＳＭＵはバッファ管理装置ＢＭＵ及びバッファＢを具え、バッファＢはＳＲＡＭメモリーとして実現することができる。ＳＲＡＭにおけるバッファリングを実現するストリーミング・メモリーユニットＳＭＵは、バッファマネージャ（管理装置）ＢＭＵと共に、ネットワークＮからのＰＣＩエクスプレス・インタフェースを経由したＳＤＲＡＭへのアクセスをバッファリングするために使用される。バッファ管理装置ＢＭＵは、ＰＣＩエクスプレス・インタフェースからの上記ＳＤＲＡＭへの読出しまたは書込みアクセスに反応して、バッファ（更新ポインタのレジスタ）を管理し、データをバッファ（ＳＲＡＭ）からＳＤＲＡＭへ、及びＳＤＲＡＭからバッファ（ＳＲＡＭ）へ中継する。
【００２２】
第１実施例によれば、プリフェッチバッファ及び書戻しバッファに事前に別個に記憶したデータをまとめて１つの入力−出力バッファに記憶する。この単一の入力／出力バッファは、別個のレジスタ内に位置する４つまたは８つのポインタの組に関連し、これらのポインタは上記入力−出力バッファの読出し及び書込みアドレスを指示（ポイント）するために使用される。上記４／８個のポインタ／アドレスレジスタの組を含むこの単一のバッファは、書戻しバッファリング及びプリフェッチ・バッファリングとの共用を実現し、これらのバッファリングはさもなければ、完全に独立して処理される。
【００２３】
第１実施例によるバッファリング管理及びバッファは（動作時に）動的に構成することができる。データがバックグランドメモリーに記憶されていない際には、読出し及び書込みアクセスに役立ち、かつプリフェッチ及び書戻しバッファリングを実現するバッファは１つしか存在しない。他方では、データがバックグランドメモリーに記憶されている際には、この単一のバッファは、動作時間中に動的に２つの部分、即ちプリフェッチ部と書戻し部とに分割される。この解決法の利点は、より単純なバッファの管理及びより良好なメモリーの利用にある。
【００２４】
換言すれば、バッファリング管理は２つの動作モードで実行される。第１動作モード１ＯＭでは、単一の入力／出力バッファを設ける。第１動作モード１ＯＭにおけるこの単一バッファのバッファ管理は、バッファ管理装置ＢＭＵ内に記憶された４つのポインタに基づいて実行され、即ち、バッファ管理装置ＢＭＵは、開始アドレスレジスタＳＡＲ、終端アドレスレジスタＥＡＲ、並びに読出しポインタレジスタＲＰ及び書込みポインタレジスタＷＰを具えている。
【００２５】
第２動作モード２ＯＭでは、単一入力／出力バッファＢがプリフェッチバッファＰＦＢと書戻しバッファＷＢＢとに分割される。バッファ管理はバッファ管理装置によって８つのポインタに基づいて実行され、即ち、バッファ管理装置ＢＭＵは開始アドレスレジスタＳＡＲ、終端アドレスレジスタＥＡＲ，プリフェッチ開始アドレスレジスタＰＦＳＲ、プリフェッチ終端アドレスレジスタＰＦＥＲ、プリフェッチ読出しポインタＰＦＲＰ、プリフェッチ書込みポインタＰＦＷＰ、書戻し読出しポインタレジスタＷＢＲＰ、及び書戻し書込みポインタレジスタＷＢＷＰを具えている。
【００２６】
ストリーミング・メモリーコントローラＳＭＣにおけるバッファリングは、バーストを形成してＤＲＡＭのバーストモードアクセスを可能にするように行われる。従って、読出し／書込みバッファ、即ちバッファＢを設け、これらはＳＲＡＭで実現する。これらのバッファはパケットを集積してバーストを形成する。最初は、これらの読出し及び書込みバッファは単一バッファで実現し、このバッファ自体はＦＩＦＯバッファとして作用して外部ＤＲＡＭはバイパスされる。このバッファが満杯になると、このバッファは読出しバッファと書込みバッファとに分割される。そして、読出し要求がこのバッファ内にプリフェッチされ（事前に取り込まれ）て、読出し要求がレイテンシの範囲内に対処される。書込みバッファは、１つのページ全体に集積されるまでパケットを集積する。これらの書込みバッファはバーストを形成し、バーストモードのアクセスを用いてデータをＤＲＡＭに転送し、即ち書き戻す。
【００２７】
図３に、図２のストリーミング・メモリーユニットＳＭＵのブロック図を示す。ここではマルチ（多）ストリーム・バッファリングの論理図を示す。各ストリームＳＴ１〜ＳＴ４は別個のバッファに関連する。外部ＳＤＲＡＭへのデータアクセスが必要な際には、これらのバッファは２つの部分に分割される。一度に１つのストリームのみが外部ＳＤＲＡＭにアクセスすることができるので、アービタＡＲＢを設けて、マルチプレクサ（多重器）ＭＵＸと組み合わせてアービトレーション（調停）を実行する。
【００２８】
図４に、第１動作モード１OM中の、図３のＳＲＡＭバッファの内容を示す。初期化中には、バッファ管理装置ＢＭＵが特定量のメモリー空間をバッファ用に割り当てる。ここでは、バッファは１４ワードを含むことができる。またバッファＢは、このバッファ用の開始及び終端アドレスＳＡ、ＥＡを別個のレジスタ（２構成のレジスタ、即ち開始アドレスレジスタＳＡＲ及び終端アドレスレジスタＥＡＲ）に書き込む。バッファ管理装置ＢＭＵは、２つのカウンタ、即ち読出しカウンタ（読出しポインタレジスタＲＰ）及び書込みカウンタ（書込みポインタレジスタＷＰ）も維持する。読出し及び書込みカウンタまたはレジスタは、バッファのワードサイズ（ワード長）が乗算されて、バッファの開始アドレスＳＡに加算するオフセットとして働き、メモリーのデータをアクセスする箇所のアドレスを得る。従って、バッファは４つのポインタ、即ち、それぞれ開始アドレスレジスタＳＡＲ及び終端アドレスレジスタＥＡＲに記憶されているバッファ開始アドレス及びバッファ終端アドレス、並びにバッファ管理を実現するための読出し及び書込みアドレス、あるいは読出しポインタＲＰ及び書込みポインタＷＰを必要とする。ここでは、データがバッファＢのみにバッファリングされ、（ＳＤＲＡＭのような）バックグランドメモリーには記憶されない。従って、バッファ管理装置ＢＭＵへの読出し及び書込みアクセスは、読出し及び書込みポインタによって、バッファの終端におけるラッピング（バッファ先頭に戻るリセット）を動的に変化（増加）させる。
【００２９】
図５に、第２動作モード２ＯＭ中の、図３のＳＲＡＭバッファの内容を示す。例えばバッファが満杯またはほぼ満杯なので、外部ＳＤＲＡＭにデータを記憶する必要が生じた場合には、バッファは２つの部分、即ちプリフェッチ部ＰＦＢと書戻し部ＷＢＢとに分割される。このことは任意の瞬時に発生し得る。これら２つの部分は動的に割り当てられ、各々が同じサイズであるが、必ずしもバッファの境界に位置合わせされない。図５の場合には、８つのポインタ（レジスタ）、即ち副部分毎に４つのポインタが必要である。
【００３０】
必要なポインタまたはレジスタは、バッファＢの開始アドレスＳＡを記憶する開始アドレスレジスタＳＡＲ、バッファＢの終端アドレスＥＡを記憶する終端アドレスレジスタＥＡＲ、プリフェッチ開始アドレスＰＦＳＡを記憶するプリフェッチ開始アドレスレジスタＰＦＳＲ、プリフェッチ終端アドレスＰＦＥＡを記憶するプリフェッチ終端アドレスレジスタＰＦＥＲ、プリフェッチ読出しポインタＰＦＲを記憶するプリフェッチ読出しポインタレジスタＰＦＲＰ、プリフェッチ書込みポインタＰＦＷを記憶するプリフェッチ書込みポインタレジスタＰＦＷＰ、書戻し読出しポインタＷＢＲを記憶する書戻し読出しポインタレジスタＷＢＲＰ、及び書戻し書込みポインタＷＢＷを記憶する書戻し書込みポインタレジスタＷＢＷＰである。
【００３１】
バッファ管理装置ＢＭＵは、連結バッファ管理用に設計されている。読出し及び書込みカウンタは「mod Ｎ（Ｎを法とした剰余）」カウンタであり、即ち、Ｎまでカウントアップして０から再開し、ここに、
Ｎ＝(ＥＡ−ＳＡ)／Buffer_Word_size（バッファのワードサイズ）
である。
バッファへの書込み要求については、データは次式のアドレス：
＝ＳＡ＋(ＷＰ×Buffer_Word_size)
に書き込まれる。
バッファからの読出し要求については、データは次のアドレス：
＝ＳＡ＋(ＲＰ×Buffer_Word_size)
から取り出され（フェッチされ）る。
バッファＢは：
(ＷＰ−ＲＰ)＝０
である際に空であり、バッファＢの読出しは阻止（ブロック）される。
バッファＢは：
(ＷＰ−ＲＰ) mod Ｎ＝Ｎ−１
である際に満杯であり、バッファＢの書込みは阻止される。
【００３２】
図６に、特に複数のバッファ用のバッファ管理装置の有限状態マシン（ＦＳＭ：Finite State Machine）における異なる状態のブロック図を示す。ここでは、異なる状態をＳの異なる値で示し、状態遷移または条件にＣのラベルを付ける。バッファが同じ状態に留まる（即ち、単一の要求に対する多重アクセス）状況では、状態図において自己（回帰）ループが必要であるが、図を簡略化するために、このことは図６には示していない。Ｓ＝０はリセット状態に対応する。状態Ｓ＝１は、任意のバッファに対する要求のある状態に関係する。ここでは、要求の種類を特定することになる。状態Ｓ＝２は、ＳＲＡＭバッファを読出しバッファと書込みバッファとに分割しないＳＲＡＭからの読出し要求に関係する。状態Ｓ＝３は、ＳＲＡＭバッファを読出しバッファと書込みバッファとに分割しないＳＲＡＭへの書込み要求に関係する。状態Ｓ＝４は、ＳＲＡＭバッファを読出し／書込みバッファに分割しなければならないＳＲＡＭバッファからの読出し要求に関係する。状態Ｓ＝５は、ＳＲＡＭバッファを読出し／書込みバッファに分割しなければならないＳＲＡＭへの書込み要求に関係する。状態Ｓ＝６は、ＳＲＡＭバッファの書込みバッファから外部ＳＤＲＡＭへのデータ書込みに関係する。状態Ｓ＝７は、外部ＳＤＲＡＭからのデータ読出しに関係し、データはＳＲＡＭ読出し（プリフェッチ）バッファに書き込まれる。状態Ｓ＝８は、メモリー書込みを終了するまで待機する状態（ここでは、１クロックサイクル分の待機）に関係する。状態Ｓ＝９はアービトレーションに関係し、他の要求は進行中（ここでは、複数クロックサイクル分の待機中）である。
【００３３】
１つの状態から他の状態への遷移は、現在の状態、及びストリーミング・メモリーコントローラＳＭＣへの入力に依存して発生する。条件Ｃ＝０は、この状態の終了直後の無条件の遷移に関係する。条件Ｃ＝１は、（複数のメモリーアクセスを行い得る）トランザクション処理の終了直後の条件遷移に関係する。条件Ｃ＝２／３／４／５／６／７は、適切なメモリーアクセス（Ｓ＝２／３／４／５／６／７参照）の実行に関係する。条件Ｃ＝８は、他の要求を処理している際に要求が到着した条件に関係する。
【００３４】
例えば、条件Ｃ＝０に対してＳ＝０からＳ＝１への状態遷移が発生する。条件Ｃ＝２に対してＳ＝１からＳ＝２への状態遷移が発生する。条件Ｃ＝１に対してＳ＝２からＳ＝１への状態遷移が発生する。条件Ｃ＝３に対してＳ＝１からＳ＝３への状態遷移が発生する。条件Ｃ＝１に対してＳ＝３からＳ＝８への状態遷移が発生する。条件Ｃ＝４に対してＳ＝１からＳ＝４への状態遷移が発生する。条件Ｃ＝１に対してＳ＝４からＳ＝１への状態遷移が発生する。条件Ｃ＝５に対してＳ＝１からＳ＝５への状態遷移が発生する。条件Ｃ＝１に対してＳ＝５からＳ＝８への状態遷移が発生する。条件Ｃ＝７に対してＳ＝１からＳ＝７への状態遷移が発生する。条件Ｃ＝１に対してＳ＝７からＳ＝１への状態遷移が発生する。条件Ｃ＝０に対してＳ＝８からＳ＝１への状態遷移が発生する。条件Ｃ＝８に対してＳ＝１からＳ＝８への状態遷移が発生する。条件Ｃ＝０に対してＳ＝９からＳ＝１への状態遷移が発生する。
【００３５】
なお、上述した実施例は本発明を限定するものではなく例示するものであり、当業者は本発明の範囲から逸脱することなしに多くの代案実施例を設計することができる。「具えている」等の文言は、請求項中に挙げた以外の要素またはステップの存在を排除するものではない。各要素は複数存在し得る。いくつかの手段を挙げた装置の請求項では、これらの手段のいくつかは同一のハードウェア・アイテムによって具体化することができる。複数の異なる従属請求項中に特定の方策が存在するという単なる事実は、これらの方策の組合せを有利に用いることができないことを示すものではない。
【図面の簡単な説明】
【００３６】
【図１】本発明によるシステム・オンチップの基本アーキテクチャのブロック図である。
【図２】本発明の第１実施例によるストリーミング・メモリーコントローラのブロック図である。
【図３】図２のストリーミング・メモリーユニットのブロック図である。
【図４】第１動作モード中の、図３のＳＲＡＭバッファの内容を示す図である。
【図５】第２動作モード中の、図３のＳＲＡＭバッファの内容を示す図である。
【図６】図２のバッファ管理装置の状態図である。
【図１】
2008544348.tif 000003
【図２】
2008544348.tif 000004
【図３】
2008544348.tif 000005
【図４】
2008544348.tif 000006
【図５】
2008544348.tif 000007
【図６】
2008544348.tif 000008
【国際調査報告】
2008544348.tif 000009
2008544348.tif 000010
2008544348.tif 000011