(57)【特許請求の範囲】
【請求項１】
入力ストリームが書き込まれ、出力ストリームが完全な出力ブロックを最小ユニットとして読み出される、少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御する方法であって、
第１のバンクに前記入力ストリームを書き込み、
第１のバンクにおける完全な出力ブロックのサイズを第１のポインタでマークし、
少なくとも完全な出力ブロックの第１のバンクへの書き込みが完了した場合だけに、前記第１のバンクへの読み出しアクセスを可能にし、
現在第１のバンクへ書き込まれている入力ストリームによって第１のバンクが完全に書き込まれたか否かに関係なく、前記可能にされた第１のバンクに対する読み出しアクセスに応答して、前記入力ストリームの書き込みを第２のバンクに切り換え、
第１のバンク内の入力ストリームの最後の位置を第２のポインタでマークし、
第１のバンクから第２のバンクへ跨って記憶される完全な出力ブロックの第２のバンク内における最後の位置を第３のポインタでマークし、
第３のポインタまで第２のバンクに入力ストリームが書き込まれた場合だけに、第１のバンク内の前記第２のバンクへ跨って記憶される完全な出力ブロックおよび第２のバンクに対する読み出しアクセスを可能にし、
現在第２のバンクへ書き込まれている入力ストリームによって第２のバンクが完全に書き込まれたか否かに関係なく、前記可能にされた第２のバンクに対する読み出しアクセスに応答して、前記入力ストリームの書き込みを前記第１のバンクに再び切り換え、
一方のバンクに対する読み出しアクセスが、他方のバンクに対する入力ストリームの書き込みの間に開始可能であることを特徴とする、方法。
【請求項２】
前記第１のバンクから出力ストリームを読み出し、
該第１のバンクにおける以前に書き込まれた入力ストリームの終わりに読み出しが達すると、前記出力ストリームの読み出しを前記第２のバンクに切り換え、
該第２のバンクにおける以前に書き込まれた入力ストリームの終わりに読み出しが達すると、前記出力ストリームの読み出しを前記第１のバンクに再び切り換えることを特徴とする請求項１に記載の方法。
【請求項３】
前記マルチバンクメモリがダイナミックランダムアクセスメモリであることを特徴とする請求項１または２に記載の方法。
【請求項４】
バンクの活性化された行を、リフレッシュサイクルが発行されるまで、又は読み出しブーストが前記行の終わりに達するまで、開いた状態で維持することを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記バンクが、シングルポートスタティックランダムアクセスメモリモジュールであることを特徴とする請求項１または２に記載の方法。
【請求項６】
２を越える数のバンクをデータバッファリングに提供することを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項７】
ＣＰＵ命令及びＣＰＵデータから入力ストリーム及び出力ストリームを物理的に分け、
前記第１のバンク及び前記第２のバンク以外の残りのバンクのうち少なくとも１つに、前記ＣＰＵ命令及び前記ＣＰＵデータを記録することを特徴とする請求項６に記載の方法。
【請求項８】
請求項１から７のいずれか１項に記載の方法を実行することを特徴とする少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御するデバイス。
【請求項９】
少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御するための請求項１から７のいずれか１項に記載の方法を使用する、又は請求項８に記載のデバイスを含むことを特徴とする記録媒体から読み出す及び／又は記録媒体へ書き込むための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチバンクメモリへのアクセスのスケジューリング及び制御の方法、並びにこのような方法を使用して記録媒体から読み出す及び／又は記録媒体へ書き込むための装置に関する。
【背景技術】
【０００２】
本発明は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）に関して、以下で説明される。しかし、本発明は、種々のダイナミックランダムアクセスメモリ、つまり、ダブルデータレートＲＡＭ（ＤＤＲ−ＲＡＭ）、拡張シンクロナスＤＲＡＭ（ＥＳＤＲＡＭ）、シンクロナスリンクＤＲＡＭ（ＳＬＤＲＡＭ）、ラムバスＤＲＡＭ（ＲＤＲＡＭ）等に適用可能である。更に、本発明は、シングルポートスタティックランダムアクセスメモリ（シングルポートＳＲＡＭ）にも適用可能である。
【０００３】
典型的なＳＤＲＡＭモジュールは、四つの独立バンクを含む。各バンクは行からなり、その行はカラムで構成される。データにアクセスするため、対応バンクの対応行が、読み出し及び書き込み用の「活性化」コマンドにより開かれる。２から４のサイクルを必要とする活性化後、「読み出し」又は「書き込み」コマンドをカラムアドレスと共に送ることにより、データ転送が開始される。転送後、開いている行を非活性にするため、及び次の「活性化」コマンドのためにバンクを準備するため、バンクはプリチャージされる。そのプリチャージは、再び２から４のサイクルを必要とする。コマンド「プリチャージ」は、開いている行を閉じる。
【０００４】
一般的に、バースト転送は、１つの「読み出し」又は「書き込み」コマンドのみで、いくつかのデータを読み出す又は書き込むために使用される。アクセスは、選択された位置（カラム）から始まり、プログラムされた位置まで続く。新しいバーストを開始後、コマンドバスは、フリーになり、他のバンクを活性化するため、又はプリチャージするために使用されても良い。
【０００５】
一般に、ＳＤＲＡＭは、ＣＰＵの命令とデータを同時に保存するために使用される。ＳＤＲＡＭは、キャッシュを通じてアクセスされる。リニアアクセスは、第１のバンク第１の行、第２のバンク第１の行、第３のバンク第１の行、第４のバンク第１の行、第１のバンク第２の行というようにして実現される。リニアアクセスならば、ＣＰＵ／キャッシュが次のバンクの行へのアクセスを実際に必要とする前に、その行を活性化することによって、待ち時間を隠すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
記録媒体、例えば、デジタル多用途ディスク（ＤＶＤ）のような光記録媒体から読み出す及び／又は記録媒体へ書き込むための装置について、シングルＳＤＲＡＭモジュールが、好ましくは、オンチップＣＰＵ用の命令及びデータを記憶するため、並びに記録媒体用のドライブとホストとの間にリアルタイムデータストリームをバッファリングするために、使用される。この場合、ＣＰＵの待ち時間の制約を満たすため、バッファの入力ストリーム及び出力ストリームのバースト長が、ほんの２〜３ビートに低減される必要がある。しかし、４つのインタフェース、つまり、ＣＰＵ命令、ＣＰＵデータ、入力ストリーム及び出力ストリームにより生じるオーバヘッドが、ランダムアクセスのように作動するので、たとえ４ビートを使用しても、バーストは、タイミング及びスループット制約をほとんど実行できない。特に、バッファへの読み出しアクセス及び書き込みアクセスは、ランダムである。従って、次の行が分からないので、バッファバンクのプリ活性化は、不可能である。
【０００７】
この問題を避けるため、並びに「活性化」及び「プリチャージ」コマンドにより生じる待ち時間をなくすため、ＳＤＲＡＭモジュールは、スタティックＲＡＭ（ＳＲＡＭ）に置き換え可能である。もう１つの方法として、シングルモジュールの仕事量を低減させるために、モジュールの数を増やしても良い、又は帯域幅を大きくするために、モジュールと特定用途向け集積回路（ＡＳＩＣ）との間で、データバスの幅が拡張されても良い。しかし、これらの解決法のためには、追加配線が必要になり、たいていＩＣデザインによって制限される。従って、この解決法は、一般に実現可能ではない。更なる解決法は、バッファの入力及び出力を分離することである。それは、２つ又はそれ以上の完全な行をバッファする大きなオンチップＳＲＡＭにより実行され得る。しかし、この場合、とても複雑な論理がデータフローを制御するのに必要とされる。
【０００８】
上記の解決法は全て、とても費用がかかるという共通点がある。本発明の目的は、ＤＲＡＭのスケジューリング及び制御のために、別の解決法を提供することである。
【課題を解決するための手段】
【０００９】
本発明によると、少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御する方法は、
第１のバンクに入力ストリームを書き込み、
第１のバンク用の読み出しコマンドを受信すると、入力ストリームの書き込みを第２のバンクに切り換え、
第２のバンク用の読み出しコマンドを受信すると、入力ストリームの書き込みを第１のバンクに再び切り換えるステップを含む。
【００１０】
この方法は、メモリスケジューリング及び制御のために、安価で、より単純な解決法を提供する。データバッファは、少なくとも２つのバンク全体に広がり、そのバンクは、線形にアクセスされる。第１のバンク用の読み出しコマンドをバッファ制御から受信するまで、第１のバンクは、入力ストリームで満たされる。読み出しコマンドを受信した場合、入力ストリームは、第２のバンクに切り換わる。出力ストリームが第２のバンクにアクセスする必要がある場合、入力ストリームは、第１のバンクへ戻る。入力ストリームは、出力ストリームが同じバンクの読み出しを必要とするまで、そのバンクを離れない。
【００１１】
このようにして、全てのインタフェースは、自らのバンク上で作動する。現在のアクセスがまだ実行されている間に、次のアクセスが計画され、準備される。従って、次のアクセスの行は開いており、現在のバーストの終了後、次のバーストが直ちに発行される。全てのインタフェースのバンクの活性化又はプリチャージにより生じる、全ての待ち時間が、完全にバースト転送の陰になり、全帯域幅がデータ転送に使用できる。残りの待ち時間全てが、スケジューラキューにおけるバースト長の合計まで最小化される。つまり、遅延は、スケジューラキューにおけるバースト長によってのみ決定され、その遅延後、バーストが開始され得る。ＳＤＲＡＭがアイドル状態にあれば、続いて起こるバッファへのアクセスが、同じ行に対して線形に起こるので、バーストが、行の活性化なく、直ちに開始され得る。その方法は、光デバイスへアクセスする（読み出す及び書き込む）ために設けられたＡＴＡＰＩコマンドに対して、及び先読み（read-ahead）機能に対して、十分に互換性がある。
【００１２】
好ましくは、方法が、
第１のバンクから出力ストリームを読み出し、
第１のバンクにおける以前に書き込まれた入力ストリームの終わりに読み出しが達すると、出力ストリームの読み出しを第２のバンクに切り換え、
第２のバンクにおける以前に書き込まれた入力ストリームの終わりに読み出しが達すると、出力ストリームの読み出しを第１のバンクに再び切り換えるステップを更に含む。
【００１３】
第１のバンク用の読み出しコマンドに従い、出力ストリームは、第１のバンクの読み出しを開始する。読み出しコマンドを受信すると直ぐに、入力ストリームの書き込みが第２のバンクに切り換えられるので、第１のバンクにおいて読み出しが以前に書き込まれた入力ストリームの終わりに達すると、このバンクにおいてこれ以上のデータが利用できない。従って、更なるデータにアクセスするため、出力ストリームも第２のバンクに切り換わる必要がある。もちろん、このことは、入力ストリームの書き込みが第１のバンクへ再び戻ることを意味する。第２のバンクにおける出力ストリームが、以前に書き込んだ入力ストリームの終わりに達すると、出力ストリームは、第１のバンク等に再び切り換わる。
【００１４】
好ましくは、方法が、
第１のバンクの入力ストリームの書き込みを第２のバンクに切り換えると直ぐに、第１のバンクにおける入力ストリームの最終位置を第１のポインタでマークし、
第２のバンクの入力ストリームの書き込みを第１のバンクに切り換えると直ぐに、第２のバンクにおける入力ストリームの最終位置を第２のポインタでマークするステップを更に含む。
【００１５】
各バンクを入力機能と出力機能とに確実に切り換えるため、複雑なポインタ制御が必要になる。第１の又は第２のバンクそれぞれについて、入力ストリームの最終位置をマークすることにより、出力ストリーム用のスイッチング処理の制御が、著しく単純化される。
【００１６】
好ましい改良における方法が、
バンクにおける完全な出力ブロックのサイズを更なるポインタでマークし、
少なくとも完全な出力ブロックが、バンクへ書き込まれたときのみ、そのバンクへの読み出しアクセスを可能にするステップを更に含む。
【００１７】
入力ストリームが以前に設けられたポインタ、つまりブロックポインタに達するまで、第１のバンクは、入力ストリームで満たされる。次に、バンクにおいて完全なブロックが使用可能であることを示す信号がバッファ制御へ送られる。この時点でのみ、出力ストリームはこのバンクを読み出すことができる。このバンクから読み出すと直ぐに、ブロックポインタに達する場合、次のブロックが要求されるまで、出力は停止する。その一方で、入力ストリームの書き込みが切り換えられた第２のバンク用に、更なるブロックポインタが設けられる。ブロックポインタを提供すること及びブロックポインタに達したかどうかを監視することにより、処理可能なデータストリームの最小ユニットである完全な出力ブロックが使用可能なときに、バンクへの読み出しアクセスのみが可能であることが確実になる。
【００１８】
好ましくは、マルチバンクメモリがダイナミックランダムアクセスメモリ、例えば、ＳＤＲＡＭである。この場合、本発明による方法は、メモリのパイプライン方式の構造を十分に活用する。
【００１９】
好ましくは、方法が、バンクの活性化された行を、リフレッシュサイクルが発行されるまで、又はブーストが行の終わりに達するまで、開いた状態で維持するステップを更に含む。このことにより、各シングルアクセスに対して、約１０サイクルの待ち時間を省くことができる。
【００２０】
好ましくは、バンクは、シングルポートスタティックランダムアクセスメモリモジュールである。この場合、このモジュールのために、読み出し要求が受信されるまで、入力データが第１のモジュールへ書き込まれる。次に、データが第１のモジュールから読み出される間、入力データが、第２のモジュールへ書き込まれる。従って、読み出し及び書き込みが、同時に行われる。更なる長所は、より高価で複雑な、特定のサイズである１つのデュアルポートＳＲＡＭモジュールの代わりに、それぞれ半分のサイズである２つのシングルポートＳＲＡＭモジュールが使用されることである。例えば、１０２４バイトの１つのデュアルポートＳＲＡＭモジュールの代わりに、それぞれ５１２バイトの２つのシングルポートＳＲＡＭモジュールが使用される。
【００２１】
好ましくは、２を越える数のバンクがデータバッファリングに提供される。これにより、より大量のデータをバッファすることが可能になる。しかし、全体的なパフォーマンスが、この手段によって更に高められるわけではない。
【００２２】
本発明の更なる実施例によると、方法が、
ＣＰＵ命令及びＣＰＵデータから入力ストリーム及び出力ストリームを物理的に分け、
第１のバンク及び第２のバンク以外の残りのバンクのうち少なくとも１つに、ＣＰＵ命令及びＣＰＵデータを記録するステップを更に含む。
【００２３】
いわゆるハーバードアーキテクチャに対応して、ＣＰＵ命令及びＣＰＵデータが物理的に分けられる場合、それらは、典型的なＳＤＲＡＭの四つのバンクのうちの残りの２つのバンクに別々に記憶され得る。命令バンク及びデータバンクの行もまた、空間及び時間の局在性を活かすため、活性化されたままであり得る。
【００２４】
好ましくは、少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御するデバイスが、本発明による方法を実行する。
【００２５】
好ましくは、記録媒体、例えば、光記録媒体から読み出す及び／又は記録媒体へ書き込むための装置が、少なくとも２つのバンクを有するマルチバンクメモリへのアクセスを制御するための本発明による方法を使用する、又は本発明によるデバイスを含む。
【００２６】
本発明をより理解するために、典型的な実施形態が図面を参照にして以下の記述において明細に説明される。当然のことながら、本発明は、この典型的な実施形態に限定されるものではなく、明細に説明された特徴はまた、本発明の範囲に反することなく、便宜上、組み合わされ及び／又は修正されてもよい。
【発明を実施するための最良の形態】
【００２７】
図１には、本発明による方法を使用する、ＳＤＲＡＭの２つのバンク１、２へのアクセスが示される。単純化のため、アクセスは、図１の部分ａ）からｊ）に描かれているバンクの状態のシーケンスに分けられる。より理解しやすいように、図には、単一の完全な出力ブロックのみが、１つのバンク１、２へ書き込まれる。もちろん、複数の出力ブロックが、引き続きそのバンクへ書き込まれてもよい。アクセスが開始されるとき、両方のバンク１、２は、空である。それは、図１ａ）に対応する。部分ｂ）に示されるように、左バンク１において、出力ブロックのサイズをマークするために、ポインタ５が設けられる。ドライブから生じる入力ストリーム６は、左バンク１に直ちに記憶される。それは、部分ｃ）で描かれている。入力ストリームがポインタ５に達すると、直ぐに、バッファの読み出しが可能となる。読み出しアクセスが起こるまで、左バンク１への書き込みは続く。このことは、部分ｄ）に示される。このようにして、第１のバンク１は、複数の出力ブロックで満たされる。左バンク１への第１の読み出しアクセスの後、入力ストリーム６は、右バンク２に切り換えられ、左バンク１における最終位置が、更なるポインタ７でマークされる。それは、部分ｅ）に描かれている。部分ｆ）及びｇ）で見られるように、完全な出力ブロックサイズが、左バンク１から読み出されるまでは、入力ストリーム６及び出力ストリーム８が、同時に活性状態にある。右バンク２において、新しいポインタ９が設けられ、出力ブロックのサイズをマークする。それが、部分ｈ）に示される。入力ストリームがこのポインタ９に達するときに、左バンク１は、出力ストリームがジャンプポイント７に達するまで読み出される。このことは、部分ｉ）に示される。次に、右バンク２が読み出され、入力ストリームを空の左バンク１に再び切り換える。部分ｊ）に描かれているこの状態は、左バンク１と右バンク２が交換される、部分ｆ）における状況と同じである。切り換わると、右バンク２の入力ストリームの最終位置が、更なるポインタ１０でマークされる。アクセススキームは、２バンクを越える数に拡張されてもよい。この場合、バンク間で切り換わるときに、入力ストリームを書き込むためのバンクを、少なくとも２つのバンクの中から選択することが可能である。例として、この選択は、各バンクの全体的な仕事量に基づいてもよい。
【００２８】
ＳＤＲＡＭバンク１、２のデータ転送間の待ち時間が、図２に示される。データ転送は、コマンドバス３上に生じるデータ転送とデータバス４上に生じるデータ転送とに分けられる。
【００２９】
図２ａ）は、１つのＳＤＲＡＭバンクのみへの典型的なランダム読み出し／書き込みアクセスを表す。最初に、バンクからの行が活性化される。次に、その行への書き込みコマンドが発行され、データ転送が開始される。その後、その行を閉じるため、及び次の行アクセスのためにプリチャージするため、プリチャージコマンドが与えられる。同じバンクのもう１つの行が活性化され、さらにその行への読み出しコマンドが発行され、「読み出し」コマンドによる遅延の後、データ転送が開始する。
【００３０】
１を越える数のバンクにわたるＳＤＲＡＭアクセスが、図２ｂ）に示される。最初に、第１のバンクからの行が、活性化される。次に、第１のバンクからのその行への書き込みコマンドが発行され、データ転送が開始される。同時に、第２のバンクからの行が、活性化される。次に、第２のバンクからのその行への読み出しコマンドが与えられ、「読み出し」コマンドによる遅延の後、データ転送が開始する。この例における書き込みコマンドは、第１のバンクのデータ転送と直接連結された第２のバンクからのデータ転送をもたらすということも注意すべきである。
【００３１】
図２ｃ）は、同じバンク上の既に開いている行への単一バーストを示す。この場合、書き込みコマンドは、その行で遅延なく、毎回処理される。
【００３２】
図３において、本発明による方法を使用して、記録媒体２０、例えば、光記録媒体から読み出すための装置を示す。データは、記録媒体２０から読み出され、例えばエラー訂正のために、前処理ブロック２１により、前処理される。前処理されたデータは、入力ストリームとして第１のインタフェース２３を介して、集積回路２２へ送信され、集積回路は、他にも機能はあるが、装置内で、データ転送を制御する。第２のインタフェース２４を介して、集積回路２２は、データバス２８、例えば、ＡＴＡバスと通信する。このデータバス２８を使用して、要求されたデータが、更なる処理のために出力される。マイクロコントローラ２９は、例えば、集積回路２２の設定を制御するため、又は特定のデータを要求するために、第３のインタフェース２５を介して、集積回路２２と通信する。集積回路は、全ての入力データをバッファするための複数のＳＤＲＡＭバンク１、２を含む内部バッファ２６を備える。データトラフィックは、スケジューラ２７により制御され、スケジューラは、バッファアクセスを処理するために、図１に関して説明された方法を実行する。図において、入力ストリーム及び出力ストリームは、マイクロコントローラ２９からの命令及びマイクロコントローラデータから物理的に分けられる。
【図面の簡単な説明】
【００３３】
【図１】状態のシーケンスにおける、本発明による方法を使用する２つのＳＤＲＡＭバンクへのアクセスを示す。
【図２】ＳＤＲＡＭバンクのデータ転送間の待ち時間を示す。
【図３】本発明による方法を使用して記録媒体から読み出す装置を示す。
【符号の説明】
【００３４】
１  左バンク
２  右バンク
３、４  コマンドバス
５、７、９、１０  ポインタ
６  入力ストリーム
８  出力ストリーム
２０  記録媒体
２１  前処理ブロック
２２  集積回路
２３  第１のインタフェース
２４  第２のインタフェース
２５  第３のインタフェース
２６  バッファ
２７  スケジューラ
２８  データバス
２９  マイクロコントローラ
【図１】
0004707351.tif 000002
【図２】
0004707351.tif 000003
【図３】
0004707351.tif 000004