(57)【特許請求の範囲】
【請求項１】
複数のデータ記憶デバイスのうちの各々がアレイを有し、これらアレイが列のグループおよび行に配置されており、行が行アドレスを有し、列のグループが列アドレスを有し、異なるデータ記憶デバイスに記憶されたデータのシーケンシャルなブロックの間に連続する論理アドレスを提供するよう、前記複数のデータ記憶デバイス内にデータのブロックを記憶する方法であって、
（ａ）前記データ記憶デバイスに位置するアレイ内の列のグループのうちの行内にデータのブロックを記憶する工程と、
（ｂ）特定のデータ記憶デバイスに対して、行の限界に達するまで行アドレスをインクリメントすると共に、前記工程（ａ）を繰り返す工程と、
（ｃ）次ぎのアレイを有する次ぎのデータ記憶デバイスに進むと共に、前記工程（ａ）の列のグループに対応するグループのすべての行にデータブロックが記憶されるまで、該次ぎのデータ記憶デバイスに対して前記工程（ａ）および（ｂ）を繰り返す工程と、
（ｄ）前記複数のデータ記憶デバイス内に対応するアレイの限界に達するまで、前記工程（ａ）から（ｃ）を繰り返す工程と、
（ｅ）列アドレスをインクリメントし、行アドレスをリセットする工程と、
（ｆ）列の限界に達するまで前記工程（ａ）から（ｅ）までを繰り返す工程とを備えた、複数のデータ記憶デバイスにデータのブロックを記憶する方法。
【請求項２】
複数のデータ記憶デバイスを含み、該データ記憶デバイスの各々がデータを記憶できるアレイを有する、バッファメモリシステムを有するディスクドライブを作動させる方法において、
（ａ）列のグループのうちの各行が行アドレスおよび列アドレスを含む１つの物理アドレスを有するように、アレイを列のグループおよび行に分割する工程と、
（ｂ）列のグループの行にデータの各ブロックを記憶できるよう、データを所定サイズのブロックに分割する工程と、
（ｃ）（ｉ）前記データ記憶デバイスに位置するアレイ内の列のグループのうちの行内にデータのブロックを記憶する工程と、
（ｉｉ）特定のデータ記憶デバイスに対して、行の限界に達するまで行アドレスをインクリメントすると共に、前記工程（ｉ）を繰り返す工程と、
（ｉｉｉ）次ぎのアレイを有する次ぎのデータ記憶デバイスに進むと共に、前記工程（ｉ）の列のグループに対応するグループのすべての行にデータブロックが記憶されるまで、該次ぎのデータ記憶デバイスに対して前記工程（ｉ）および（ｉｉ）を繰り返す工程と、
（ｉｖ）前記複数のデータ記憶デバイス内に対応するアレイの限界に達するまで、前記工程（ｉ）から（ｉｉｉ）を繰り返す工程と、
（ｖ）列アドレスをインクリメントすると共に行アドレスをリセットする工程と、
（ｖｉ）列の限界に達するまで前記工程（ｉ）〜（ｖ）を繰り返す工程により、列のグループおよび行の物理アドレスと論理アドレスとを関連付ける工程とを備え、よって異なるデータ記憶デバイス内に記憶されたデータのシーケンシャルなブロック内に連続する論理アドレスを設ける、ディスクドライブを作動させる方法。
【請求項３】
データの各ブロックに対し、パリティワードを生成する工程を更に含む、請求項２記載の方法。
【請求項４】
アレイに記憶されたデータのブロックに対し生成されたパリティワードのために、アレイ内の列の最終グループ内のすべての行を保留し、よってパリティワードが論理アドレスのある範囲の頂端部における論理アドレスと関連付けられた物理アドレスを有するようにする工程を更に含む、請求項３記載の方法。
【請求項５】
（ａ）複数のデータ記憶デバイスであって、該データ記憶デバイスの各々がデータのブロックを記憶できるアレイを有し、これらアレイの各々がセルを識別するためのある範囲の物理アドレスを有するセルを形成するよう列のグループおよび行に分割されており、物理アドレスの各々が行アドレスおよび列アドレスを含む、該複数のデータ記憶デバイスと、
（ｂ）前記セルにアクセスするためのコントローラとを備え、該コントローラは、異なるデータ記憶デバイスに記憶されるデータのシーケンシャルなブロックの間に連続的な論理アドレスを提供するよう、論理アドレスと物理アドレスとを関連付けるようになっており、前記コントローラは更に、
（ｉ）前記データ記憶デバイスに位置するアレイ内の列のグループのうちの行内にデータのブロックを記憶する工程と、
（ｉｉ）特定のデータ記憶デバイスに対して、行の限界に達するまで行アドレスをインクリメントすると共に、前記工程（ｉ）を繰り返す工程と、
（ｉｉｉ）次ぎのアレイを有する次ぎのデータ記憶デバイスに進むと共に、前記工程（ｉ）の列のグループに対応するグループのすべての行にデータブロックが記憶されるまで、該次ぎのデータ記憶デバイスに対して前記工程（ｉ）および（ｉｉ）を繰り返す工程と、
（ｉｖ）前記複数のデータ記憶デバイス内に対応するアレイの限界に達するまで、前記工程（ｉ）から（ｉｉｉ）を繰り返す工程と、
（ｖ）列アドレスをインクリメントすると共に行アドレスをリセットし、      （ｖｉ）列の限界に達するまで前記工程（ｉ）〜（ｖ）を繰り返すようになっているメモリシステム。
【請求項６】
前記コントローラが複数の出力端を含み、各出力端が二進数の１ビットを表示し、前記出力端が複数のデータ記憶デバイスに結合されており、よって前記複数の出力端に論理アドレスを示す二進数を与えると、この論理アドレスに関連する物理アドレスを有するセルにアクセスされる、請求項５記載のメモリシステム。
【請求項７】
前記複数のデータ記憶デバイスが複数のランダムアクセスメモリを含み、前記複数の出力端の少なくとも１つが前記ランダムアクセスメモリのうちの１つのチップイネーブルに結合されている、請求項６記載のメモリシステム。
【請求項８】
前記コントローラは、前記アレイ内に記憶されたデータの完全性をチェックするためのコンピュータプログラムが内部に記憶された、コンピュータで読み取り可能な媒体を含む、請求項５記載のメモリシステム。
【請求項９】
前記データ記憶システムが、前記コントローラに接続され、データを記憶するための大容量記憶デバイスを更に含み、該大容量記憶デバイスは前記コントローラとの間でデータ転送を行う、請求項５記載のメモリシステムを含むデータ記憶システム。
【請求項１０】
前記大容量記憶デバイスが磁気ディスクドライブと、光ディスクドライブと、磁気光ディスクドライブとから成る群から選択されたものである、請求項９記載のデータ記憶システム。
【発明の詳細な説明】
【０００１】
（関連出願とのクロスレファレンス）
本願は１９９８年７月２１日に出願された米国仮特許出願第６０／０９３，７４１号に対する優先権を主張するものである。
【０００２】
（発明の分野）
本発明は、一般的にはコンピュータのメモリシステムの分野に関し、より詳細には、ディスクドライブコントローラ用バッファメモリシステムに関する。
【０００３】
（発明の背景）
バッファメモリシステムはホストコンピュータと大容量記憶デバイス、例えばディスクドライブとを結合するためのインターフェースとして一般に使用されている。かかるインターフェースの１つの問題は、大容量記憶デバイスとの間でやりとりされるデータがシリアルフォーマットであり、例えばディスクドライブの読み出し／書き込みヘッドとの間でやりとりされるデータであり、一方、コンピュータではデータがパラレルデータバスに沿って送られるようになっていることである。別の問題は、大容量記憶デバイスがデータを記憶したり検索したりできる速度よりも、より高速でコンピュータがデータを処理することである。従って、バッファメモリシステムはデータをパラレルフォーマットからシリアルフォーマットに変換しなければならず、かつコンピュータと大容量記憶デバイスとの間で転送されるデータを一時的に記憶することにより、大容量記憶デバイスにデータを書き込んだり、読み出したりするレートをコンピュータのより高いレートのほうに合わせなければならない。代表的なバッファメモリシステムはデータを一時的に記憶するためのバッファメモリと、データのブロックをコンピュータ内の中央処理ユニット（ＣＰＵ）によって使用される論理ブロックアドレスからバッファメモリ内の対応する物理アドレスに変換するための、すなわちマッピングするためのコントローラとを含む。バッファメモリは一般に１つ以上の一時的データ記憶デバイス（例えばランダムアクセスメモリまたはメモリチップ（ＲＡＭチップ））を含む。ＲＡＭチップとは集積回路メモリチップのことであり、これらメモリチップは行と列に配列されたメモリセルのアレイを有する。図１は一対のアレイ１００、１０５を有する従来のバッファメモリを略図で示し、各アレイは２５６の列アドレス×４０９６の行アドレスを有する。列アドレスは更に各々が１６のコラムから成る１６のグループに分割されており、各グループは各々１６ビットの１６ワードから成るパラグラフとして知られているデータのブロック内にデータを記憶できる。例えば、０の論理アドレスを有する第１パラグラフ（ＰＡＲＡ０）１０６は、列の第１グループ（列０〜１５）内の第１行（行０）にマッピングされ、第２パラグラフ（ＰＡＲＡ１）１０７は、列０〜１５の行１にマッピングされ、次々に同様のマッピングが行われる。列の第１グループ内の最終行に達した後、例えば４０９６番目のパラグラフ（ＰＡＲＡ４０９５）１０８が行４０９５にマッピングされた後に、行アドレスは行０にループバックし、列アドレスは列の第２グループ、すなわち列１６〜３１にインクリメントされる。
【０００４】
一般に、コントローラはディスクドライブに記憶され、このディスクドライブから再生されたデータの完全性をチェックするための方式も含む。かかる１つの方式では、コンピュータから受信したデータのパラグラフ内の各ワードに対し、ビットごとの排他的ＯＲ（ＸＯＲ）演算を実行する。バッファメモリに記憶されたパラグラフにパリティワードとして知られるこのＸＯＲ演算の結果を添付し、大容量記憶デバイスに転送する。大容量記憶デバイスから、データの先に記憶されたパラグラフが再生されると、ＸＯＲ演算を繰り返し、この結果と記憶されていたパリティワードとを比較する。この比較の結果が同じであれば、再生したデータを有効と見なし、同一でなければ、エラービットを識別し、訂正するために誤り訂正ルーチンを呼び出すことができる。このデータ完全性方式の１つの問題は、パリティワードがＲＡＭチップ内の物理アドレスを占有するので、パリティワードにより対応する論理アドレスをデータのアドレス指定に利用できなくなり、よってデータのシーケンシャルなブロックに対する論理アドレスが不連続となることである。このような不連続な論理アドレスが生じると、コンピュータのＣＰＵがある１論理アドレスから次の不連続な論理アドレスに進むのに必要な時間（コンピュータのクロックのサイクル数によって測定される）が長くなり、ＣＰＵの動作を妨げるので、このような論理アドレスが不連続となることは好ましいことではない。更に、論理アドレスが不連続になることによって、マッピングプロセスが複雑となり、バッファメモリシステムのバンド幅が狭くなってしまう。このバンド幅なる用語は、所定の時間中にバッファメモリとの間でどれだけ多くの情報を転送できるかを示すための、コンピュータメモリの技術分野で一般に使用されている。
【０００５】
図１に示された１つの部分的解決方法は、水平冗長コード（ＬＲＣ）として知られる方式を使用する方法である。先に述べたデータ完全性方式と同じように、パラグラフに対するパリティワード（この分野ではＬＲＣワードとして知られている）を生成するように、パラグラフ内の各ワードに対し、ビットごとにＸＯＲ演算を実行する。しかしながら、先のデータ完全性方式とは異なり、このＬＲＣワードはパラグラフに添付されず、パリティ情報用に専ら保留された列の最終グループ、すなわち列２４１〜２５６内に別個に記憶される。コントローラが１つの命令を実行するのに必要な処理時間であるコマンドオーバーヘッドを短縮するために、パラグラフに対するＬＲＣワードは同じ行内に記憶することが好ましい。コマンドオーバーヘッドを短縮することにより、有効なタスクに対するシステムの利用可能なバンド幅が広くなる。同じ行内にＬＲＣワードを記憶することにより、ある行アドレスから別の行アドレスに移動するのに必要な時間を節約できる。一般に、約７クロックサイクルが節約できる。次に図１を参照し、この方式を実行するためのプロセス例について説明する。まず、列２４１からスタートし、同じ行内の各パラグラフに対してＬＲＣワードに対する列アドレスをインクリメントする。例えば行０、列２４１に第１パラグラフ１０６に対するＬＲＣワードを記憶し、一方、行１、列２４１に第２パラグラフ１０７に対するＬＲＣワードを記憶し、行０、列２４２に４０９７番目のパラグラフ１０９に対するＬＲＣワードを記憶する。こうしてＬＲＣワードは論理アドレスの範囲の上端部まで移動され、データをアドレス指定するのに利用できる論理アドレスの連続的ブロックが残る。
【０００６】
上記解決案は単一の一時的記憶デバイス、例えば単一ＲＡＭチップを有するバッファメモリシステムに対しては正しく作動する。しかしながら、コンピュータプログラムのサイズおよびこのプログラムによって操作されるデータの双方が近年急速に増大したことにより、より大きい容量の大容量記憶デバイスが開発された。このような開発により、より高速のバッファメモリシステムとインターフェースするための、より多数のバッファメモリを有するバッファメモリシステムが求められている。これまでＲＡＭチップの容量を増すか、またはバッファメモリにより多数のＲＡＭチップを増設するかのいずれかにより、バッファメモリを増加していた。不幸なことにこれら解決案のいずれも完全に満足できるとは言えない。容量の増大と共にＲＡＭのコストが劇的に増加するので好ましいものではなく、競争の激しいコンピュータメモリの市場にあっては、より高価な、より容量の大きいＲＡＭを使用することは望ましくないので、第１の解決案は満足できるものではない。
【０００７】
同様に、第２の解決案による問題、すなわちより多数のＲＡＭチップを増設することによる問題は、従来のバッファメモリシステムで使用されている比較的安価で複雑でないコントローラが、単一コントローラによってアドレス指定できるＲＡＭチップの数を１つまたは２つに一般に限定することである。ＲＡＭチップの数を増すことによる別の問題は、列の最終グループのすべての行をＬＲＣワードのために保留する、上記データ完全性方式を使用するバッファメモリシステムでは、より多数のＲＡＭチップを増設することにより、チップの境界を横断する際に再び論理アドレスが不連続となることである。チップの境界を横断するということは、第１ＲＡＭチップ上のデータに対して利用できる最終物理アドレスから第２ＲＡＭチップ上の第１の利用可能な物理アドレスに変化することを意味する。第２ＲＡＭ１５に移動する際にＬＲＣワードに対し、第１ＲＡＭ１０の列２４１〜２５６内のすべての行が保留されるので、コントローラはこれら領域の物理アドレスに対応する論理アドレス上をスキップしなければならず、この結果、データのシーケンシャルなブロックに対する論理アドレスが不連続となる。
【０００８】
従って、より多数のバッファメモリを有するより高速のバッファメモリシステムが求められている。また、異なる一時的記憶デバイス、例えば多数のＲＡＭチップに対しマッピングされるデータのシーケンシャルなブロックに対し、連続的な論理アドレスを提供するバッファメモリシステムも求められている。また、大容量記憶デバイスに記憶され、このデバイスから再生されるデータの完全性をチェックするための方式を含むバッファメモリシステムも求められている。更に、バッファメモリシステムのバンド幅を広くするアドレス指定およびデータ完全性方式を含むバッファメモリシステムも求められている。最後に、商業的に可能性のあるものとするには、より安価でより少ない容量のＲＡＭチップおよび現在のコントローラによって、バッファメモリの増加を実現することが望ましい。
【０００９】
本発明は、上記およびそれ以外の問題に対する解決案を提供するものであり、従来技術に対する別の利点を提供するものである。
【００１０】
（発明の概要）
本発明は上記問題を解決するメモリシステムおよびこのシステムを作動させる方法に関する。このメモリシステムは１つのコラムアドレスを有する複数の列のグループおよび１つの行アドレスを有する複数の行に配置されたいくつかのアレイを含む。本システムを作動させるには、データのブロックに対し連続する論理アドレスを提供するようにアレイにデータのブロックを記憶する。アレイ内の複数の列の１つのグループのうちの１つの行にデータの１ブロックを記憶し、行アドレスをインクリメントし、行の限界に達するまでこのプロセスを繰り返す。行の限界に達した後は、アレイ内の複数の列の対応するグループのすべての行にデータのブロックが記憶されるまで、別のアレイでこのプロセスを繰り返す。次に、例アドレスをインクリメントし、行アドレスをリセットし、列の限界に達するまでこのプロセスを繰り返す。好ましくは、このシステムを作動させる方法は、アレイから再生されたデータの完全性をチェックするために、データの各ブロックに対しパリティワードを生成することも含む。より好ましくは、この方法はアレイ内に記憶されたデータブロックに対し生成されたパリティワードに対し、アレイ内の列の最終グループ内のすべての行を保留し、よってパリティワードの物理アドレスに関連した論理アドレスの範囲の頂端部までシフトすることを含む。
【００１１】
一実施例では、本発明はデータを記憶できるいくつかのアレイを含むバッファメモリシステムを有するディスクドライブを作動させる方法に関する。アレイは複数の行と複数の列のグループに分割されており、列の１グループのうちの各行は１つの物理アドレスを有する。データは所定サイズのブロックに分割されており、複数の行および複数の列のグループの物理アドレスは（ｉ）データの第１ブロックが第１アレイ内の列の１グループのうちの最終行に記憶され、（ｉｉ）データの第１ブロックの論理アドレスに連続する論理アドレスを有するデータの第２ブロックが第２アレイ内の列の対応するグループの第１行に記憶されるように、論理アドレスと関連している。オプションとして、データの第３ブロックは第２アレイ内の列の対応するグループの最終行に記憶され、データの第３ブロックの論理アドレスに連続する論理アドレスを有するデータの第４ブロックは第１アレイの列の第２グループの第１行に記憶される。
【００１２】
別の特徴では、本発明はデータを記憶できるいくつかのアレイを有するメモリシステムに関する。アレイの各々はある範囲の物理アドレスによって識別されるセルに分割されている。コントローラは論理アドレスと物理アドレスとを関連付け、セルにアクセスするようになっている。更にこのコントローラは異なるアレイ内のセルに対する物理アドレスと隣接する論理アドレスとを関連付けるようになっている。好ましくはコントローラはいくつかの出力端を含み、これら出力端の各々は二進数の１つのビットを示す。これら出力端は、出力端に論理アドレスを示す二進数が与えられると、対応する物理アドレスを有するセルにアクセスされるようにアレイに結合される。より好ましくはこれら出力端はアレイのうちの１つを選択するための少なくとも１つの出力端を含む。
【００１３】
このメモリシステムは、データを記憶するためのデータ記憶デバイスを有するデバイス記憶システムに対し特に有効である。このデータ記憶デバイスは磁気ディスクドライブ、光ディスクドライブまたは磁気光ディスクドライブとすることができる。
【００１４】
次の詳細な説明を読み、関連する図を検討すれば、本発明を特徴付ける上記およびそれ以外の種々の特徴だけでなく利点も明らかとなろう。
【００１５】
（詳細な説明）
図２は、ホストコンピュータ１１０のブロック図であり、このホストコンピュータ１１０はバッファメモリシステム１２０によって大容量記憶デバイス１１５、例えば光ディスクドライブ、磁気−光ディスクドライブまたは磁気ディスクドライブに結合されている。バッファメモリシステム１２０はコンピュータ１１０または大容量記憶デバイス１１５の一部でもよいし、また別のハウジング内に収納されたディスクリートアセンブリでもよい。一般に、図２に示すように、バッファメモリシステム１２０は大容量記憶デバイス１１５と共に共通ハウジング１３０内に収納されている。バッファメモリシステム１２０は大容量記憶デバイス１１５との間で転送されるデータを一時的に記憶するためのバッファメモリ１２５と、データを論理アドレスからバッファメモリ１２５内の物理アドレスへ変換、すなわちマッピングするためのコントローラ１３５とを含む。
【００１６】
バッファメモリ１２５は複数の一時的データ記憶デバイス１４０、例えばランダムアクセスメモリまたはメモリチップ（ＲＡＭチップ）を含み、ＲＡＭチップは行と列に配列されたデータを記憶するためのメモリセルのアレイを有する集積回路のメモリチップであり、各メモリセルは行と別の番号を含むユニークな物理アドレスによって識別できる。本発明で使用するのに適したＲＡＭチップには数種類のタイプがあり、これらＲＡＭチップとしてはダイナミックランダムアクセスメモリ（ＤＲＡＭ）タイプＩ、ＤＲＡＭタイプＩＩとしても知られる高速ページモードのＤＲＡＭ、同期ＤＲＡＭ（ＳＤＲＡＭ）、拡張データ出力ＤＲＡＭ（ＥＤＯ  ＤＲＡＭ）およびスタティックランダムアクセスメモリ（ＳＲＡＭ）とが挙げられるが、これらのみに限定されるものではない。これらメモリのうち、ＳＤＲＡＭが好ましい。その理由は、ＤＲＡＭタイプおよびＥＤＯ  ＤＲＡＭのいずれのタイプよりも高速であり、ＳＲＡＭよりも安価であるからである。
【００１７】
図３を参照すると、ＳＤＲＡＭ１４５はメモリセル（図示せず）のアレイ１５０と、列デコーダ１６０と、行デコーダ１６５と、データ入力バッファ１７０と、センスアンプ１７５とを一般に含む。チップイネーブル１８０に信号を印加することにより、読み出し動作または書き込み動作のためにバッファメモリ１２５内の特定のＳＤＲＡＭ１４５が選択される。一部のアドレスラインが行デコーダ１６５に印加され、行アドレスストローブ（ＲＡＳ）１８５によりラッチされ、残りのラインの信号が列デコーダ１６０に印加されており、列アドレスストローブ（ＣＡＳ）１９０によってラッチされるようにコントローラ１３５からのアドレスバス（図示せず）が分割されている。書き込みイネーブル信号１９５はＳＤＲＡＭ１４５へのデータの書き込みをイネーブルし、出力イネーブル２００はこのＳＤＲＡＭからのデータの読み出しを可能にする。更にＳＤＲＡＭ１４５は、その他の種々の電圧入力端および／または制御信号も有するが、これら電圧入力端および制御信号は、当技術分野で公知であり、図３の実施例では示されておらず、また説明を簡潔にするため、また発明を不明確にしないように、本発明では説明しない。
【００１８】
図４を参照し、本発明の一実施例を要約する。図４は、本発明に係わるバッファメモリシステム１２０の好ましい実施例の機能ブロック図である。図に示されるように、コントローラ１３５はメモリ制御ユニット（ＭＣＵ）２０５によって構成されており、この制御ユニット２０５はマイクロプロセッサインターフェース２１０、システムインターフェース２１５および大容量記憶デバイス１０５に対するインターフェース、例えばディスクドライブ（図示せず）に対するフォーマッター２２０のインターフェースを含む種々のインターフェースに信号バスによって接続されている。フォーマッター２２０は信号バス２２５により大容量記憶デバイス１０５に接続されており、信号バス２２５は種々の信号ラインを有する。これら信号ラインは当技術分野で周知であるので、図４の実施例では図示されておらず、また本明細書では説明しない。
【００１９】
システムインターフェース２１５はコンピュータ１１０内のシステムバス２３０とＭＣＵ２０５との間の通信を可能にするものである。システムインターフェース２１５に対する外部信号ラインは多数のデータライン（図示せず）を有する双方向のデータバス２３５を含む。データラインの正確な数はシステムバス２３０のアーキテクチャによってほぼ決まる。小型コンピュータシステムインターフェース（ＳＣＳＩ）アーキテクチャを有するシステムバス２３０との通信をするために、データバス２３５は、同時に１６ビットのデータを通過させるように一般に１６本の入出力データラインＤ＜１５：０＞を有する。このシステムインターフェース２１５は信号バス２４０を介し、ＭＣＵ２０５に結合されている。
【００２０】
マイクロプロセッサ用インターフェース２１０はデータをアドレス指定するための、コンピュータ１１０内の中央処理ユニット（ＣＰＵ）２５６で使用される論理ブロックアドレス（ＬＢＡ）をＭＣＵ２０５で使用するための仮想的アドレス、すなわち論理アドレスに変換するためのハードウェアおよび／またはソフトウェアプロトコルを一般に含む。これら論理アドレスはマイクロプロセッサ用インターフェース２１０内の論理アドレスレジスタ２５５（仮想線で示されている）内にシーケンシャルに記憶され、双方向の多重化されたアドレス／データバス２６０によってＭＣＵ２０５へ送られる。ここで、「多重化された」なる用語はバス２６０内のラインの一部またはすべてがデータとアドレスとを別の時間に伝送することを意味する。マイクロプロセッサ用インターフェース２１０は双方向の多重化された別のアドレス／データバス２６５によりＣＰＵ２４５に結合されている。信号ライン２７０上のチップ選択信号は、読み出し動作または書き込み動作のためにコントローラ１３５をイネーブルする。信号ライン２８０上の読み出しデータ信号はチップ選択信号と共に大容量記憶デバイス１１５からＭＣＵ２０５を介し、コンピュータ１１０へデータを移動させる。信号ライン２８５上の書き込みデータ信号はチップ選択信号と共にＭＣＵ２０５へデータを移動させ、その後、データをバッファメモリ１２５にマッピングする。
【００２１】
ＭＣＵ２０５はローカルプロセッサ２９０（仮想線で示されている）を含み、このローカルプロセッサは命令レジスタ（図示せず）およびこのレジスタ内に埋め込まれたアキュムレータ（図示せず）と共に、第１キャッシュ（図示せず）を有する。ＭＣＵ２０５はコンピュータ１１０からマイクロプロセッサ用インターフェース２１０およびシステムインターフェース２１５を介し、命令および論理アドレスを含むデータのブロックを取り込み、これらを命令レジスタおよびアドレスアキュムレータ内に記憶する。ＭＣＵ２０５はデータを所定サイズのブロック、すなわちパラグラフに分割し、論理アドレスをバッファメモリ１２５内の物理アドレスに変換するためのマッピングプログラムを実行する。これらパラグラフはバッファメモリのアーキテクチャによって決まる１ビット〜数千バイトまでの任意の数のビットのデータを含むことができる。例えば、各々１６コラムの１６のグループにグループ分けされた４０９６の行および２５６の列のアレイを有する１６ＭビットのＳＤＲＡＭでは、データは各々１６ビットの１６ワードのパラグラフに分割される。列の１グループの各行には１つのパラグラフが記憶される。オプションとしてＭＣＵ２０５は大容量記憶デバイス１１５内に記憶され、これから再生されるデータの完全性をチェックするために、内部に記憶されたコンピュータプログラム製品と共に、コンピュータで読み出し可能な媒体を含む。例えば好ましい実施例では、ＭＣＵ２０５はパラグラフに対するパリティワードを生成するためにパラグラフ内の各ワードに対しビットごとの排他的ＯＲ演算を実行する。単一ＳＤＲＡＭに記憶されるデータに対し、連続的なアドレス指定をするために、パラグラフに対するパリティワードをＬＲＣ領域３００の同じ行に記憶することが好ましく、この行は、列の最終グループ、すなわち上記列２４１〜２５６内のすべての行を含む。
【００２２】
図４を参照する。ＭＣＵ２０５は種々の信号ラインを介し、バッファメモリ１２５内の第１ＳＤＲＡＭ３０５および第２ＳＤＲＡＭ３１０に結合されている。これら信号ラインは上記多重化された双方向のアドレス／データバス３１５と、チップ選択ライン３２０と、行アドレスストローブ（ＲＡＳ）１８５と、列アドレスストローブ（ＣＡＳ）１９０とを含む。アドレス／データバス３１５は各々１本以上のラインから成る３つのグループに分割されており、各グループはＭＣＵ２０５上のアドレス出力端の３つの組のうちの１つに接続されている。アドレス出力端の各組は１つ以上の個々のアドレス出力端を有することができる。本発明によれば、信号ライン３２５の第１グループはアドレス出力端３３０の第１の組を第２のＳＤＲＡＭ３１０のチップイネーブル１８０に結合し、その後のＳＤＲＡＭ（図示せず）が設けられている場合にはこのＳＤＲＡＭに結合する。図４に示される実施例では、出力端３３０は信号ライン３２５により第２ＳＤＲＡＭ３１０に結合されている。信号ライン３３５の第２グループはＸ個のアドレス出力端３４０の第２の組をＳＤＲＡＭ３０５、３１０のコラムデコーダ１６０にパラレルに結合している。ここで、ＸはＳＤＲＡＭ内の列のグループの数に等しい二進数の数字を示す整数である。Ｙ本の信号ライン３４５の第３グループはＹ個のアドレス出力端３５０の第３の組を行デコーダ１６５にパラレルに結合している。ここでＹはＳＤＲＡＭ３０５、３１０内の行の数に等しい二進数の数字を示す整数である。従って、総アドレス出力端およびアドレス／データバス３１５内の信号ラインの特定の数Ｎはバッファメモリ１２５内のＳＤＲＡＭ３０５、３１０の数および容量に応じて決まる。
【００２３】
例えば、上記のように２個の１６ＭビットのＳＤＲＡＭを有するバッファメモリ１２５の場合、アドレス／データバス３１５内の信号ラインの本数は２１に等しい。１２桁の二進数を提供し、４０９６の行のうちの１６を選択するために、これら信号ライン３４５のうちの１２本が使用される。列の１６グループのうちの１つを選択するのにＸ本の信号ライン３３５の第２グループ内の信号ラインのうちの４本が使用され、列のグループ内の１６ワードのうちの１つを選択するのに他の４本の信号ラインが使用される。アドレス出力端３３０を第２ＳＤＲＡＭ３１０のチップイネーブル１８０に結合するのに残りの信号ライン３２５が使用される。このアドレス出力端３３０はＭＣＵ２０５からのアドレス出力信号のうちの１つでよく、多重化したり、また双方向にする必要はない。更に、アドレス出力端３３０は図４に示されるように信号ライン３２５を介し、第２ＳＤＲＡＭ３１０に直接結合してもよいし、またメモリインターフェース（図示せず）を介して第２ＳＤＲＡＭ３１０に結合してもよい。
【００２４】
本発明によれば、ＭＣＵ２０５は論理アドレスを物理アドレスに変換する際に特殊なマッピング方式を利用しており、このマッピング方式により、バッファメモリ１２５内の異なるＳＤＲＡＭにマッピングされるデータのシーケンシャルなブロックに対し、連続的な論理アドレスが得られる。図５は、垂直方向にスタックされた２つのメモリアレイを有する、本発明に係わるバッファメモリ１２５の好ましい実施例の一例の図である。この図５を参照すると、上記のような１６Ｍビットの第１のＳＤＲＡＭ３０５および１６Ｍビットの第２のＳＤＲＡＭ３１０を有するバッファメモリ１２５の場合、各々１６ビットの１６ワードから成る第１パラグラフ３５５、すなわちＰＡＲＡ０が第１ＳＤＲＡＭ３０５上の行０および列０〜１５に記憶される。この行アドレスはインクリメントされ、同じＳＤＲＡＭの行１および列０〜１５に第２のパラグラフ３６０、すなわちＰＡＲＡ１が記憶され、次々に同様な記憶が行われる。行の限界、すなわち行４０９６に達すると、第１ＳＤＲＡＭ３０５の行４０９５および列０〜１５に４０９６番目のパラグラフ３６５、すなわちＰＡＲＡ４０９６が記憶される。次に、この行アドレスがインクリメントされ、第２ＳＤＲＡＭ３１０の行０および列０〜１５に次のパラグラフ３０７、すなわちＰＡＲＡ４０９０が記憶される。最終ＳＤＲＡＭの最終行、すなわち第２ＳＤＲＡＭ３１０の行４０９５に達するまで、このことが続く。次に列アドレスが列の次のグループ、すなわち列１６〜３１にインクリメントされ、行アドレスは第１の行、すなわち第１のＳＤＲＡＭ３０５の行０にループバックし、上記と同じような操作が続けられる。このように、ＬＲＣ領域３００は論理アドレスの範囲の頂部または端部まで有効に移動され、データをアドレス指定するのに利用できる論理アドレスの中断されていない大きいブロックが残る。
【００２５】
次に図６を参照し、マッピング方式を実行するためのプロセス例のステップについて説明する。第１のステップ３６０にてアレイを上記行と列のグループに分割する。アドレス指定ステップ３６５にて列のグループの各行に行アドレスおよび列アドレスを有する物理アドレスが割り当てられる。次に、ステップ３７０にてデータは所定サイズのブロックに分割される。各ブロックは単一列のうちの単一行内に記憶できる大きさとなっている。ステップ３７５にて、アレイ内の列のグループのうちの行内にデータの１ブロックが記憶される。次の判断ステップ３８０にて行の限界に達したかどうか、すなわち最後にアドレス指定された行がアレイ内の最終行に対応するかどうかが判断される。行の限界に達していない場合、ステップ３８５にて行アドレスがインクリメントされ、ステップ３７５および３８０を繰り返す。行の限界に達している場合、ステップ３９２にてアレイの限界に達しているかどうか、すなわちすべてのアレイ内の列の対応するグループのすべての行内にデータが記憶されたかどうかが判断される。アレイの限界に達していない場合、プロセスはステップ３９５にて次のアレイまで進み、ステップ３７５から３９０が繰り返される。アレイの限界に達している場合、ステップ４００にて列の限界に達しているかどうか、すなわちすべてのアレイ内の列のすべてのグループ内にデータが記憶されたかどうかが判断される。列の限界に達していない場合、ステップ４０５にてプロセスは列の次のグループに進み、ステップ３７５〜４００が繰り返される。列の限界に達している場合、プロセスは終了する。
【００２６】
上記マッピング方式はハードウェアプロトコル、ソフトウェアプロトコルまたはハイブリッドハードウェア／ソフトウェアプロトコルを含む、いくつかの異なる方法で実現できる。好ましい実施例では、コントローラは論理アドレスを物理アドレスに直接マッピングし、よってバッファメモリシステム１２０の速度および効率を改良するようになっているハードウェアアーキテクチャを有する。より詳細には、アドレス出力端に論理アドレスを示す二進数を与えることにより、適当な対応する物理アドレスが選択されるよう、バッファメモリ１２５にＭＣＵ２０５のアドレス出力端３３０、３４０、３５０が結合されている。例えば、二進のゼロ、すなわち論理低レベル信号をアドレス出力端に提供することにより、０の論理アドレスを有するデータがＰＡＲＡ０の第１ワードにマッピングされ、６５，５３６に均等な二進数「１１１１１１１１１１１１１１１１」をアドレス出力端に与えることにより、６５，５３６の論理アドレスを有するデータがＰＡＲＡ４０９５の最終ワードにマッピングされる。
【００２７】
上記直接マッピング方法を示すため、次に２つの１６ＭビットＳＤＲＡＭを有するバッファメモリシステム１２０に必要な接続について説明する。１６Ｍビットの１つのＳＤＲＡＭが４０９６個の行と２５６個の列のアレイを有し、２５６個の列は各々１６列から成る１６個のグループにグループ分けされている。従って、本発明に係わる１６Ｍビットの２つのＳＤＲＡＭを有するバッファメモリシステム１２０は次のように接続され、Ａ２０〜Ａ０（以下、Ａ＜２０：０＞とする）までの番号が付けられた２１個のアレイ出力端を有するＭＣＵ２０５を必要とする。列の１グループ内の１６ワードのうちの１つのワードを選択するのに、列デコーダ１６０のうちの４つの最小位ビット（ＬＳＤ）、すなわちＣ＜３：０＞にアドレス出力端Ａ＜３：０＞がパラレルに結合される。ＳＤＲＡＭ内の４０９６個の行のうちの１つを選択するのに、ＳＤＲＡＭ３０５、３１０のうちの行デコーダ１６５、すなわちＲ＜１１：０＞にアドレス出力端Ａ＜１５：４＞が結合される。第２ＳＤＲＡＭ３１０を選択するために、第２のＳＤＲＡＭ３１０のチップイネーブル１８０にアドレス出力端の次の最大位ビット（ＭＳＢ）、すなわちＡ１６が結合されている。列の１６個のグループのうちの１つを選択するために、ＳＤＲＡＭ３０５、３１０の列デコーダ１６０の４つのＭＳＢ、すなわちＣ＜７：４＞にアドレス出力端Ａ＜２０：１７＞が結合されている。
【００２８】
次に、上記アーキテクチャ例が本発明のマッピング方式をどのように実行するかを示すよう、図５を参照して書き込み動作について説明する。第１のＳＤＲＡＭ２４０のうちの行０、列０を選択するために、すべてのアドレス出力端Ａ＜２０：０＞に二進のゼロ、すなわち論理低レベル信号を与えることにより、バッファメモリ１２５に０の論理アドレスを有する第１パラグラフ（ＰＡＲＡ０）内の第１ワードがマッピングされる。次に、ＲＡＳ１８５およびＣＡＳ１９０を印加することにより、行アドレスおよび列アドレスがラッチされ、多重化されたアドレス出力端を通して第１のＳＤＲＡＭ３０５にデータの１６ビットが書き込まれる。次に、列１を選択するよう、アドレス出力端Ａ＜３：０＞に１に等しい二進数、すなわち０００１を与えることにより、バッファメモリ１２５に１の論理アドレスを有する次のワードがマッピングされる。列１５を選択するよう、アドレス出力端Ａ＜３：０＞に１５に等しい二進数、すなわち１１１１を与えることにより、バッファメモリ１２５に１５の論理アドレスを有するＰＡＲＡ０内の最終ワードがマッピングされるまで、上記の操作が続けられる。論理アドレスを１だけインクリメントすると、アドレス出力端Ａ＜４：０＞に１００００が与えられ、第２パラグラフ（ＰＡＲＡ１）の第１ワードを選択する。アドレス出力端Ａ＜１５：０＞に二進数「１１１１１１１１１１１１１１１１」を与えることにより、第１ＳＤＲＡＭ３０５上の列１５、行４０９５に６５，５３６の論理アドレスを有する最終パラグラフ（ＰＡＲＡ４０９５）内の最終ワードが書き込まれるまで、上記の操作が続けられる。シーケンシャルな次の論理アドレス６５，５３７はアドレス出力端Ａ＜１５：０＞のすべてにゼロを与え、アドレス出力端Ａ１６に１を与え、第２ＳＤＲＡＭ３１０上の第１パラグラフ（ＰＡＲＡ４０９６）の第１ワードを選択する。このようなマッピングはアドレス出力端Ａ＜１６：０＞に二進数「１１１１１１１１１１１１１１１１１」を与えることにより、１３１，０７１の論理アドレスを有する最終パラグラフ（ＰＡＲＡ８０９１）内の最終ワードが書き込まれる直前まで続けられる。論理アドレスを１だけインクリメントし、論理アドレスを１３１，０７２とすると、アドレス出力端Ａ＜１６：０＞のすべてに０が与えられ、アドレス出力端Ａ１７に１が与えられ、これにより物理アドレスは第１ＳＤＲＡＭ３０５上の列１６〜３１内の第１パラグラフ（ＰＡＲＡ８０９２）の第１ワードまでループバックされる。
【００２９】
オプションとして、コントローラ１３５はＳＤＲＡＭ３０５、３１０のＬＲＣ領域３００内の物理アドレスにＬＲＣワードをマッピングするよう、ＭＣＵ２０５への別個の接続部を有する増設回路（図示せず）を含む。一般的にこのことは列デコーダ１６０の４つのＭＳＢに適当な信号を印加し、列の最終グループを選択し、ＭＣＵ２０５からの適当なアドレス出力端を行デコーダ１６５およびチップイネーブル１８０に結合し、次の４つの最大位出力端を列デコーダの４つのＬＳＢに結合し、列を選択することによりＳＤＲＡＭのうちの１つの行を選択することによって達成される。例えば上記１対の１６ＭビットのＳＤＲＡＭ３０５、３１０を有するバッファメモリ１２５に対し、回路は次のように接続される。第１に列デコーダ１６０の４つのＭＳＢ、すなわちＣ＜７：４＞に１６に等しい二進数が印加され、ＳＤＲＡＭ３０５、３１０内の列の最終グループ、すなわち列２４１〜２５６を選択する。次に、上記のように行デコーダ１６５にアドレス出力端Ａ＜１５：４＞が結合され、第２ＳＤＲＡＭ３１０のチップイネーブル１８０にアドレス出力端Ａ１６が結合され、ＬＲＣワードを発生した対象のパラグラフと同じ行が選択される。最後に、列のグループを選択するために使用されたアドレス出力端Ａ＜２０：１７＞が列デコーダ１６０の４つのＬＳＢ、すなわちＣ＜３：０＞に結合され、ＬＲＣワードを記憶するための列の最終グループ内の適当な列を選択する。これとは異なり、ＭＣＵ２０５のアドレス出力信号を内部で変換するソフトウェアプロトコルを使ってこのようなパリティマッピングを行うことができる。すなわちアドレス出力端Ａ＜３：０＞およびＡ＜２０：１７＞の出力信号が切り替えられ、次にＡ＜２０：１７＞に１１１１が出力される。
【００３０】
当業者が本明細書の説明を検討すれば容易に明らかとなるように、上記方式は別のサイズのＳＤＲＡＭを有するバッファメモリシステム１２０にも適応できる。例えば１個の６４ＭビットのＳＤＲＡＭは８１９２個の行と２５６個の列のアレイを有し、２５６個の列は各々１６個の列から成る１６個のグループにグループ分けされる。従って、本発明に係わる２つの６４ＭビットのＳＤＲＡＭを有するバッファメモリシステム１２０は、次のように結合された２３のアドレス出力端Ａ＜２２：０＞を有するＭＣＵ２０５を必要とする。アドレス出力端Ａ＜３：０＞は列の１グループ内の１６ワードのうちの１つを選択するよう、列デコーダ１６０の４つのＬＳＢ、すなわちＣ＜３：０＞に結合される。アドレス出力端Ａ＜２２：１９＞は列の１６個のグループのうちの１つを選択するよう、列デコーダ１６０の４つのＭＳＢ、すなわちＣ＜７：４＞に結合される。アドレス出力端Ａ＜１７：４＞は１６３８４個の行のうちの１つを選択するように、行デコーダ１６５、すなわちＲ＜１３：０＞に結合される。アドレス出力端Ａ１８は行アドレスが８０９１よりも大となった時に第２ＳＤＲＡＭ３１０をイネーブルするよう、第２ＳＤＲＡＭ３１０のチップイネーブル１８０に結合される。同様に、２つの４ＭビットのＳＤＲＡＭを有するバッファメモリシステム１２０は、１９のアドレス出力端、すなわちＡ＜１８：０＞を有するＭＣＵ２０５を必要とする。アドレス出力端Ａ＜１８：１５＞およびＡ＜３：０＞は列デコーダ１６０に結合され、それぞれグループ内の列のグループおよびワードを選択し、アドレス出力端Ａ＜１３：４＞は行デコーダ１６５に結合され、１０２４個の行のうちの１つを選択する。アドレス出力端Ａ１４は行アドレスが１０２３よりも大となった時に第２のＳＤＲＡＭ３１０をイネーブルするように、第２のＳＤＲＡＭ３１０のチップイネーブル１８０に結合される。
【００３１】
図示していない別の実施例では、バッファメモリシステム１２０は増設ＳＤＲＡＭを含むように拡張でき、このシステムはＭＣＵ２０５から利用できるアドレス出力端の数およびＲＡＳ１８５、ＣＡＳ１９０およびアドレス／データバス３１５にパラレルに接続される多数のＳＤＲＡＭによって課される負荷に対応するＭＣＵの出力ドライバーの能力によってしか制限されない。この拡張バッファメモリシステム１２０に対するマッピングはハードウェアまたはソフトウェアプロトコルおよびその他の使用されていないアドレス出力端を使用することによって達成できる。従って、このシステムの構造および方法は複数のＲＡＭチップを含む任意の数のメモリデバイスに使用できる。
【００３２】
本バッファメモリの方法およびシステムは従来の構造よりもいくつかの利点を有する。本バッファメモリ方法およびシステムの利点の１つは、より大きい容量のバッファメモリ１２５を提供でき、更に単一ＳＤＲＡＭおよび異なるＳＤＲＡＭ内に記憶されるデータのシーケンシャルなブロックに対する論理アドレスが連続的となるために、データに迅速にアクセスできるようにする、データの完全性を保証する方式を提供できることである。更に、本発明はデータのシーケンシャルブロック間の論理アドレスをスキップする必要性をなくしたことにより、コマンドオーバーヘッドを減少し、バッファメモリシステム１２０のバンド幅を広げ、ＣＰＵ２４５の動作を簡素化している。
【００３３】
次に、検討しながら本発明のいくつかの実施例の特徴について説明する。本発明はメモリシステム１２０および上記問題を解決する、システムの作動方法に関するものである。メモリシステム１２０は列アドレスを有する列のグループおよび行アドレスを有する行に配置されたいくつかのアレイ１５０を含む。システム１２０の作動方法は、データのブロックに対し連続的な論理アドレスを提供するように、アレイ１５０内にデータのブロックを記憶することを含む。アレイ１５０内の列の１グループのうちの行にデータの１ブロックを記憶し、次に行アレイをインクリメントし、行の限界に達するまでこのプロセスを繰り返す。行の限界に達した後に、アレイ１５０内の列の対応するグループのうちのすべての行にデータのブロックが記憶されるまで、別のアレイ１５０でプロセスを繰り返す。列アドレスをインクリメントし、行アドレスをリセットし、列の限界に達するまでこのプロセスを繰り返す。システム１２０の作動方法はアレイから再生されたデータの完全性をチェックするように、データの各ブロックに対しパリティワードを生成することも含む。より好ましくは、この方法はアレイ１５０内に記憶されたデータのブロックに対し生成されたパリティワードに対し、アレイ内の列の最終グループ内のすべての行を保留し、よってパリティワードの物理アドレスに関連する論理アドレスを論理アドレスの範囲の頂端部までシフトすることを含む。パリティワードを生成する工程は、水平冗長コードワードを生成するようにデータの各ブロックに対しビットごとの排他的ＯＲ演算を実行することを含むことができる。
【００３４】
一実施例では、本発明はデータを記憶できるいくつかのアレイ１５０を含むバッファメモリシステム１２０を有するディスクドライブ（図示せず）を作動させる方法に関する。アレイ１５０は複数の行と複数の列のグループに分割されており、列の１グループのうちの各行は１つの物理アドレスを有する。データは所定サイズのブロックに分割されており、複数の行および複数の列のグループの物理アドレスは（ｉ）データの第１ブロックが第１アレイ１５０内の列の１グループのうちの最終行に記憶され、（ｉｉ）データの第１ブロックの論理アドレスに連続する論理アドレスを有するデータの第２ブロックが第２アレイ１５０内の列の対応するグループの第１行に記憶されるように、論理アドレスと関連している。オプションとして、データの第３ブロックは第２アレイ１５０内の列の対応するグループの最終行に記憶され、データの第３ブロックの論理アドレスに連続する論理アドレスを有するデータの第４ブロックが第１アレイ１５０の列の第２グループの第１行に記憶される。
【００３５】
別の特徴では、本発明はデータを記憶できるいくつかのアレイ１５０を有するメモリシステム１２０に関する。アレイの各々はある範囲の物理アドレスによって識別されるセル（図示せず）に分割されている。コントローラ１３５は論理アドレスと物理アドレスとを関連付け、セルにアクセスするようになっている。更にこのコントローラ１３５は異なるアレイ１５０内のセルに対する物理アドレスと連続する論理アドレスとを関連付けるようになっている。好ましくはコントローラ１３５はいくつかの出力３３０、３４０および３５０を含み、これら出力の各々は二進数の１つのビットを示す。より好ましくは、アレイ１５０はいくつかのランダムアクセスメモリ１４５を含み、出力端に論理アドレスを示す二進数を与えると、対応する物理アドレスを有するセルにアクセスされるように、アレイ１５０に出力端３３０、３４０および３５０が結合される。一実施例では、アレイ１５０は複数の行および複数の列のグループを含み、出力端３３０、３４０および３５０はランダムアクセスメモリを選択するように、ランダムアクセスメモリ１４５のうちの１つのチップイネーブル１８０に結合された少なくとも１つの出力端の第１の組３３０を含む出力端の組に分割されている。好ましくは、出力端は列の１つのグループを選択するためのＸ個の出力端３４０の第２の組と、１つの行を選択するためのＹ個の出力端３５０の第３の組を含む。より好ましくは、出力端３３０の第１の組は出力端３５０の第３の組によって表示された二進数の後の二進数の次の最大位ビットを示す出力端を含む。コントローラ１３５はアレイ１５０内に記憶されたデータの完全性をチェックするための、内部にコンピュータプログラム製品（図示せず）が記憶された、コンピュータで読み取り可能な媒体（図示せず）を含むことができる。
【００３６】
更に別の特徴によれば、本発明はデータを記憶するためのデータ記憶デバイス１１５およびデータ記憶デバイスのためのデータを一時的に記憶できる数個のアレイ１５０を有するデータ記憶システム１３０に関するものである。アレイ１５０の各々はある範囲の物理アドレスによって識別されるセルに分割されている。コントローラ１３５は論理アドレスと物理アドレスとを関連付け、セルにアクセスする。コントローラ１３５は異なるアレイ１５０内のセルに対する物理アドレスと連続する論理アドレスとを関連付けるようになっている。データ記憶デバイス１１５は磁気ディスクドライブ（図示せず）、光ディスクドライブ（図示せず）または磁気光ディスクドライブ（図示せず）とすることができる。
【００３７】
更に別の特徴によれば、本発明はある範囲の物理アドレスによって識別されるセルに分割されたいくつかのアレイ１５０および論理アドレスとセルの物理アドレスとを関連付けるための手段を有するデータ記憶システム１３０に関するものであり、上記手段は異なるアレイにおけるセルに対する物理アドレスと連続する論理アドレスとを関連付けるようになっている。オプションとして、論理アドレスと物理アドレスとを関連付ける手段は更にセルにアクセスするようになっている。好ましくはこの論理アドレスと物理アドレスとを関連付けるための手段はコントローラ１３５を含む。より好ましくはこのコントローラ１３５はいくつかの出力端３３０、３４０および３５０を有し、各出力端は二進数の１ビットを示し、これら出力端はアレイ１５０に結合されており、これら出力端に論理アドレスを示す二進数が与えられると、論理アドレスに関連した物理アドレスを有するセルにアクセスされるようになっている。
【００３８】
以上で本発明の種々の実施例の構造および細部と共に、これまでの説明において本発明の種々の実施例のいくつかの特徴および利点について説明したが、これら開示は単に説明のためのものであり、細部、特に本発明の要旨内の部品の構造および配置に関し、添付した特許請求の範囲が示す用語の広義の一般的な意味が示す全範囲までに変更を行うことが可能であると理解すべきである。例えば本明細書に説明した好ましい実施例は、大容量記憶デバイス用のバッファメモリシステムに関するものであるが、当業者であれば本発明の要旨は本発明の要旨および範囲から逸脱することなく、コンピュータと他の周辺デバイス、例えばプリンタ、モデム、ネットワークアダプタまたはビデオインターフェースとを結合するよう実施できると理解されよう。
【図面の簡単な説明】
【図１】２つのメモリアレイを有する従来のバッファメモリの図である。
【図２】本発明の一実施例に係わるバッファメモリシステムにより大容量記憶デバイスに結合されたコンピュータのブロック図である。
【図３】アレイ、行デコーダ、列デコーダを有するＳＤＲＡＭの一例の機能ブロック図である。
【図４】本発明に係わるバッファメモリシステムの好ましい実施例の機能ブロック図である。
【図５】本発明に係わる、２つの垂直方向にスタックされたメモリアレイを有するバッファメモリシステムの好ましい実施例のバッファメモリの図である。
【図６】連続する論理アドレスを多数のアレイにマッピングするための、本発明に係わるバッファメモリシステムの一実施例を作動させる方法のプロセスフローを示すフローチャートである。
【図１】
0003561502.tif 000002
【図２】
0003561502.tif 000003
【図３】
0003561502.tif 000004
【図４】
0003561502.tif 000005
【図５】
0003561502.tif 000006
【図６】
0003561502.tif 000007