(57)【要約】【課題】  さらに高い性能、さらに速いデータ転送レート、および、さらに安価であるような、ＳＲＡＭおよびＤＲＡＭによる解決策に代る他の方法を提供すること。【解決手段】  本発明は、いくつかの選択可能なデータ転送モードの１つで、データを転送するデータ記憶システムを具備する。このデータ記憶システムの一実施形態は、メモリ構成要素内でデータを管理するメモリ・コントローラを備える。このメモリ・コントローラは、複数のデータ入出力（Ｉ／Ｏ）端子と、複数の組の転送端子を持つスイッチング回路を備える。標準転送回路は、一方の組の転送端子に接続され、また、高速シリアル転送回路は、他方の組の転送端子に接続される。このメモリ・コントローラは、データ転送パスに接続されている圧縮／復元エンジンをさらに備えることができる。   【選択図】図２
2004171561.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ入出力（I/O）端子と複数の組の転送端子を有するスイッチング回路と、
前記転送端子の一方の組に接続された標準転送回路と、
前記転送端子の別の組に接続された高速シリアル転送回路と、
前記標準転送回路と前記高速シリアル転送回路に接続された圧縮／復元エンジンと、
を備える、メモリ構成要素内でデータを管理するメモリ・コントローラ。
【請求項２】
前記圧縮／復元エンジンとメモリとの間に接続された記憶装置インターフェースと、
前記スイッチング回路、前記標準転送回路、前記高速シリアル転送回路、前記圧縮／復元エンジン、前記記憶装置インターフェースに接続された論理回路と、
をさらに備え、
前記スイッチング回路は、第１の複数のスイッチおよび第２の複数のスイッチをさらに備え、該第１の複数のスイッチは、前記複数の組の転送端子のうちの一組に前記データＩ／Ｏ端子を接続し、該第２の複数のスイッチは、前記高速シリアル転送回路を半二重モードに設定し、前記スイッチング回路は、高速シリアル転送モードにおいて、２つのデータ・ラインに沿って差動シリアル・データを送るかまたは受け取るように、前記第２の複数のスイッチを設定し、
ホストからの高速データ転送モードを起動するためのコマンドに応答して、前記論理回路が、前記スイッチング回路に信号を送って、前記高速シリアル転送回路に接続されている前記転送端子に前記データＩ／Ｏ端子を接続するように前記第１の複数のスイッチを設定する請求項１に記載のメモリ・コントローラ。
【請求項３】
前記圧縮／復元エンジンとメモリとの間に接続された記憶装置インターフェースと、
前記スイッチング回路、前記標準転送回路、前記高速シリアル転送回路、前記圧縮／復元エンジン、前記記憶装置インターフェースに接続された論理回路と、
をさらに備え、
前記スイッチング回路は、第１の複数のスイッチおよび第２の複数のスイッチをさらに備え、該第１の複数のスイッチは、前記複数の組の転送端子のうちの一組に前記データＩ／Ｏ端子を接続し、該第２の複数のスイッチは、前記スイッチング回路は、前記高速シリアル転送回路を全二重モードに設定し、高速シリアル転送モードにおいて、４つのデータ・ラインに沿って差動シリアル・データを同時に送りかつ受け取るように、前記第２の複数のスイッチを設定し、
ホストからの高速データ転送モードを起動するためのコマンドに応答して、前記論理回路）が、前記スイッチング回路に信号を送って、前記高速シリアル転送回路に接続されている前記転送端子に前記データＩ／Ｏ端子を接続するように前記第１の複数のスイッチを設定する請求項１に記載のメモリ・コントローラ。
【請求項４】
前記圧縮／復元エンジンが、
前記データが、圧縮された形式にあるかどうか検出する圧縮検出器と、
前記データが、圧縮された形式にないことが前記圧縮検出器で検出されると、入ってくるデータを圧縮する圧縮エンジンと、
前記入ってくるデータと前記圧縮データのいずれかを選択し、前記選択されたデータに圧縮記号を付加して、前記データを、圧縮されたものか、あるいは圧縮されてないものとして識別するデータ入力制御回路と、
メモリから検索された前記データに付加された前記圧縮記号を検出する復元検出器と、
メモリから検索された前記データを復元する復元エンジンと、
メモリから検索された前記データと前記復元データのいずれかを選択するデータ出力制御回路と、を備える請求項１に記載のメモリ・コントローラ。
【請求項５】
複数のメモリ・バンクと、
前記複数のメモリ・バンクに接続されたメモリ・コントローラと、
を備えるメモリカードであって、
前記メモリ・コントローラが、
複数の選択可能なデータ転送モードの１つに設定できるスイッチング要素を持つスイッチング回路を備え、それぞれの選択可能なデータ転送モードは、複数のデータ転送パスの少なくとも１つを含み、
第１の組のデータ転送パスに沿って接続された標準転送回路と、
第２の組のデータ転送パスに沿って接続された高速シリアル転送回路と、
を備えるメモリカード。
【請求項６】
MultiMediaCard（商標）、Secure  Digital（商標）、Memory  Stick（商標）の１つに対応したフォーム・ファクタ、あるいは、別々のコマンド・ラインとデータ・ラインを持つ他のメモリカードのフォーム・ファクタを持つ本体をさらに具備する請求項５に記載のメモリカード。
【請求項７】
前記メモリ・バンクが、ＡＲＳ（atomic resolution storage）装置とＭＲＡＭ（magnetic random access memory）装置の少なくとも１つを備える請求項５に記載のメモリカード。
【請求項８】
ホストと、
前記ホストと電気的にやり取りするメモリ構成要素と、
を備える、データを格納するシステムであって、
前記メモリ構成要素が、
少なくとも１つのメモリ・バンクと、
パラレル転送モードと高速シリアル転送モードとを切り替えるスイッチング回路と、データを圧縮および復元する圧縮／復元エンジンとを具備する、前記少なくとも１つのメモリ・バンクに接続されたメモリ・コントローラと、を備えるシステム。
【請求項９】
前記ホストが、
データ・ソースと宛先回路を含むユーザ装置処理システムと、
スイッチング回路と、
前記ユーザ装置処理システムと前記スイッチング回路の間に接続された標準転送回路と、
前記ユーザ装置処理システムと前記スイッチング回路との間に接続された高速シリアル転送回路と、
前記スイッチング回路に制御信号を供給して、前記スイッチング回路を、前記パラレル転送モードと前記高速シリアル転送モードのいずれかで動作させるように設定する論理回路と、
ホスト・コネクタを備え、該ホストコネクタは、前記論理回路が前記スイッチング回路を設定して、前記パラレル転送モードで動作させるときには、前記スイッチング回路を介して前記標準転送回路に接続され、一方で、前記論理回路が前記スイッチング回路を設定して、前記高速シリアル転送モードで動作させるときには、前記スイッチング回路を介して前記高速シリアル転送回路に接続される、請求項８に記載のシステム。
【請求項１０】
メモリ・コントローラが、
プッシュプル・トランシーバを備える標準転送回路と、
高速シリアル転送回路と、をさらに備え、
前記高速シリアル転送回路が、
システム・クロック速度を速めるフェーズ・ロックド・ループ回路とシリアル／デシリアル回路を備える処理回路と、
前記処理回路からシリアル・ディジタル・データを引き出して、前記シリアル・ディジタル・データを、正と負の成分を含むシリアル差動形式に変換するように構成された送信差動増幅器と、
シリアル差動データを受け取って、前記シリアル差動データをシリアル・ディジタル形式に変換して、前記シリアル・ディジタル・データを前記処理回路に出力するように構成された受信シリアル差動増幅器と、
を備える請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データの格納および検索に関する。さらに具体的に言えば、本発明は、いくつかの選択可能なデータ転送モードの１つで、データをメモリカードに書込み、データをメモリカードから読み出すシステムおよび方法に関する。
【背景技術】
【０００２】
開発者は、ディジタルデータを格納する様々なタイプの固体メモリ素子を製造してきた。これらのメモリ素子は、ここ数年に人気が高まってきたメモリカードとして知られているものにパッケージ化されることもある。
【０００３】
メモリカードは、ディジタルカメラやカムコーダー、音楽プレーヤ、ＰＤＡ（携帯情報端末）、パーソナル・コンピュータなどの様々な用途に用いられる。このメモリカードは、通常、サイズが極めて小さく、かつ、特定の物理仕様またはフォーム・ファクタ（form  factor）を持っている。通常のメモリカードは、約２メガバイト（ＭＢ）から約１ギガバイト（ＧＢ）までの範囲のデータ記憶容量を持っている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
多くのメモリカードが大容量のメモリを提供するが、大きなファイルをメモリに格納しメモリからファイルを検索する際のデータ転送レート（data transfer rate）は、やや遅いということがある。例えば、１秒当たり５枚の写真を撮ることのできるディジタルカメラを写真撮影者が使用する場合、また、それぞれの写真が、約５ＭＢのデータを取り込む場合には、メモリカードは、少なくとも２５ＭＢ／秒のレートでデータを格納できなければならない。現行のメモリカードは、そのような転送レートには対応していない。別の例では、写真撮影者が、約１００枚の写真をメモリに格納し、かつ、それぞれの写真が約５ＭＢである場合には、これらの写真は、５１２ＭＢのメモリカードに格納できる。しかしながら、低速データ転送レートでは、これらの写真をコンピュータにアップロードするのに、２０分までの時間がかかる場合がある。
【０００５】
低速データ転送レートに対する解決策の１つは、ホスト装置（例えば、ディジタルカメラ）に、大容量のＳＲＡＭ（static  random  access  memory）およびＤＲＡＭ（dynamic random access memory）を供給することであった。ＳＲＡＭとＤＲＡＭは揮発性メモリであって、これらのメモリは、不揮発性メモリ素子に対して、データ・バッファとして働くことがある。このデータ・バッファは、データがメモリ素子に書き込まれるかメモリ素子から読み出されるときに、データが失われないようにデータを一時的に格納する。しかしながら、不揮発性メモリ素子中のデータ転送レートが遅いので、データは、データ・バッファの中でバックアップされる場合があり、この場合ユーザは、最後にデータが不揮発性メモリに格納されるまで、追加情報を格納できない。この解決策の別の問題は、ＳＲＡＭとＤＲＡＭが比較的に高価であって、ホスト装置のコストを押し上げることが多いことである。したがって、この業界においては、さらに高い性能、さらに速いデータ転送レート、および、さらに安価であるような、ＳＲＡＭおよびＤＲＡＭによる解決策に代る他の方法を提供し、前述の欠陥や欠点に取り組む必要性がある。
【課題を解決するための手段】
【０００６】
この開示は、いくつかの選択可能なデータ転送モードの１つで、データを転送するデータ記憶システムを具備する。このデータ記憶システムの一実施形態は、メモリ構成要素内でデータを管理するメモリ・コントローラを備える。このメモリ・コントローラは、複数のデータ入出力（Ｉ／Ｏ）端子と、複数の組の転送端子を持つスイッチング回路を備える。標準転送回路は、一方の組の転送端子に接続され、また、高速シリアル転送回路は、他方の組の転送端子に接続される。このメモリ・コントローラは、データ転送パスに接続されている圧縮／復元エンジンをさらに備えることができる。
【０００７】
このデータ記憶システムの他の実施形態は、着脱自在にホストに付けられるメモリカードを含む。このメモリカードは、少なくとも１つのメモリ・バンクと、このメモリ・バンクに接続されているメモリ・コントローラとを含む。このメモリ・コントローラは、標準転送モードと高速シリアル転送モードとを切り替えるスイッチング回路（switching  circuit、切替え回路）と、データを圧縮および復元する圧縮／復元エンジンとを備える。
【発明を実施するための最良の形態】
【０００８】
本発明の多くの面は、以下の図面を参照すれば、よりよく理解できる。同じ参照数字は、いくつかの図を通じて、それぞれの対応する部分を表す。
【０００９】
この開示は、従来技術の欠点を克服するシステムおよび方法を述べている。これらのシステムおよび方法は、データ転送レートを高めて、さらに短い記憶時間や検索時間を提供する一方で、Secure  Digital（商標）、MultiMediaCard（商標）、Memory  Stick（商標）などの常用されるメモリカードのうちの任意の１つのフォーム・ファクタに合致することで、現在のメモリカードを向上させる。本明細書に述べられるメモリ・コントローラは、好ましくは、メモリカード中に設けられるものであって、データを転送するときにたどる複数のパラレル・パス（path、経路）のなかから、データ転送パスを選択できるようにするスイッチング回路を含む。このようなパスの１つには、エンコーディング／デコーディング法（例えば、８ｂ／１０ｂのエンコーディング）によって、データとクロックが組み合わされるか、あるいは分離される高速シリアル転送モードで、データを転送する回路が含まれる。このメモリ・コントローラは、いくつかの選択可能なデータ転送パス間で切り替えるように構成できるだけでなく、リアルタイムでデータを圧縮するようにも構成でき、これにより、媒体の記憶容量が高められる。データパス・スイッチング回路は、圧縮回路とは別個の面と見なすことができる。それゆえ、データパス・スイッチング回路は、別々に構築されて、圧縮回路付き、または圧縮回路なしのメモリ・コントローラに組み込むことができるが、逆も同様である。
【００１０】
データ記憶システム１００の一実施形態の全体図は、図１に示されている。この図は、ホスト１０２がメモリ・コントローラ１０４に接続され、さらに、メモリ・コントローラ１０４がメモリ１０６に接続されている状態を示している。ホスト１０２は、メモリ１０６からデータを読み出し、かつ／または、データをメモリ１０６に書き込む任意のタイプのユーザ装置であってもよい。例えば、ホスト１０２は、ディジタルカメラ内の処理システムであることがあり、また、この処理システムは、データ書込みモードでは、ディジタル形式でイメージを取り込んで、この取り込まれたイメージを表わすディジタルデータをメモリ１０６に書き込むことができる。次に、データ読取りモードでは、ディジタルカメラ処理システムは、メモリ１０６からデータを検索して、データをコンピュータにアップロードするか、あるいは、イメージを、例えば液晶ディスプレイ（ＬＣＤ）上に表示することができる。別法として、ホスト１０２は、オーディオ・プレーヤの処理システムであることがあり、また、この処理システムは、メモリ１０６から音楽データを読み取り、一組のスピーカを使って、聞き取れるように音楽を再生する。このオーディオ・プレーヤ処理システムは、音楽をメモリ１０６に記録できるように、データ書込み機能を含む。ホスト１０２は、オプションとして、ＰＤＡ（携帯情報端末）の処理システム、ディジタル・カムコーダの処理システムなどの、メモリ１０６を利用する他の任意の公知のシステムとして構成されてもよい。
【００１１】
メモリ・コントローラ１０４は、ホスト１０２とメモリ１０６との間に電気的に接続されている。メモリ・コントローラ１０４は、データ書込みコマンドの間は、ホスト１０２からメモリ１０６へのデータ転送、またデータ読出しコマンドの間は、メモリ１０６からホスト１０２へのデータ転送を管理する。好ましい実施形態では、メモリ・コントローラ１０４とメモリ１０６は、コントローラ機能と記憶能力を含むタイプのメモリカード上に一まとめにされる。しかしながら、代替実施形態により、メモリ・コントローラ１０４は、ホスト１０２内に設けられることがある。このような代替実施形態では、メモリ・コントローラ１０４が、特定のアルゴリズムを用いてデータを圧縮して、その圧縮されたデータを別のメモリ構成要素に格納するときには、そのデータは、同一のホスト１０２により、あるいは、同一の圧縮および復元のアルゴリズムを含むメモリ・コントローラを持つホストによってのみ、読み直すことができる。
【００１２】
図２は、メモリ・コントローラ１０４とメモリ１０６がメモリカード２００に納められているデータ記憶システム１００の一実施形態である。メモリカード２００は、任意のサイズ、形状、ピン配置、記憶容量を持ってもよい。例えば、MultiMediaCard（商標）、Secure  Digital（商標）、Memory  Stick（商標）などの、今日、市場で用いられている公知のメモリカードの任意の１つと同じフォーム・ファクタおよび仕様を持つメモリカード２００が形成されることがある。メモリカード２００は、現在ある上記および他のメモリ素子と上位互換性があり、また将来開発されるメモリ素子と互換性があるかもしれない。
【００１３】
メモリ１０６は、図２に複数のメモリ・バンク２０２として示されているが、ただ１つのメモリ・バンク２０２として構成されることもある。メモリ・バンク２０２の数は、メモリ・コントローラ１０４内の記憶インターフェース回路のデータ転送レートだけでなく、特定のメモリ・バンク２０２がデータを転送できる能力にも左右されることがある。この数は、さらに、以下でさらに詳しく述べられるように、所望のデータ転送レートによって決まることもある。データは、好ましくは、ブロック単位またはセクタ単位で、メモリ・コントローラ１０４とメモリ・バンク２０２との間で転送される。データの各ブロックまたは各セクタは、ホスト１０２がデータにアクセスするブロックサイズであればどれにも合致するように、例えば５１２バイトなどの所定のブロック・サイズを持つこともある。メモリ・バンク２０２は、高速データ転送速度でのデータブロックの高性能転送に対応するメモリ構成要素、例えば、ＭＲＡＭ（magnetic  random  access  memory）またはＡＲＳ（atomic  resolution  storage）などを含む。
【００１４】
さらに図２に示されるものは、ホスト１０２とメモリ・コントローラ１０４との間のインターフェース・ライン２０４である。インターフェース・ライン２０４は、ホスト１０２の端子を、メモリカード２００のコンパチブル端子に電気的に連絡する接続端子、ピン、パッド、導体などを含むことがある。代表的なメモリカードには、特定の端子が入っており、これらの端子は、特定のシステムに固有のものであって、コンパチブル構成を持つホストとしか結合されない。異なるホスト／カード・システムの端子およびラインの場所と名称の違いにもかかわらず、代表的なシステムのインターフェース・ライン２０４は、複数のデータ・ラインＤ１、Ｄ２、…、ＤＮ、少なくとも１つのクロック・ライン（ＣＬＫ）、少なくとも１つのコマンド・ライン（ＣＭＤ）、少なくとも１つの電源ライン（Ｖdd）、少なくとも１本の接地（グラウンド）ライン（ＧＮＤ）を含む。ほとんどのメモリカードの仕様は、普通なら、少なくとも２本のデータ・ラインを要求する。図２に示される例では、データ・ラインの数は、Ｎの数である。好ましくは、データ記憶システム１００は、以下に述べられるように、半二重差動送受信を可能にするために、少なくとも３本のデータ・ラインを持つフォーム・ファクタを含む。５本以上のデータ・ラインが利用できる場合には、以下にも述べられるように、全二重差動送受信構成を実現することができる。
【００１５】
図３は、ホスト１０２の一実施形態のブロック図を示している。図３に示されるホスト１０２の実施形態は、ユーザ装置処理システム３００も含む。ユーザ装置処理システム３００は、ハードウェアおよび／またはソフトウェアにおいて構成された動作命令に加え、ユーザ回路とランダムアクセスメモリ（ＲＡＭ）を含むことができる。ユーザ装置処理システム３００のユーザ回路は、オリジナル・データを生成するデータ・ソースまたはデータ回路を含むことができる。または、メモリ１０６から検索されたデータを利用するための宛先装置または宛先回路を含むことができる。ディジタルカメラの例では、ユーザ装置処理システム３００は、イメージをディジタル方式で取り込み、これらのイメージをディジタルデータに変換し、そのディジタル・イメージデータをＲＡＭに一時的に格納する写真取り込み回路を含むことができる。これと同一の例では、ディジタルカメラは、以前に取り込まれたイメージを表示するＬＣＤをさらに含むことができる。このイメージは、メモリ１０６から検索されたデータから再現される。ユーザ装置処理システム３００は、データを送るか、または受け取る複数の入力（Ｉ／Ｏ）端末を含む。標準転送モードでは、データは、ユーザ装置処理システム３００と標準転送回路３０４との間のSLOW  DATAバス３０２に沿って転送される。高速シリアル転送モードでは、データは、ユーザ装置処理システム３００と高速シリアル転送回路３０６との間のFAST  DATAバス３０５に沿って転送される。追加の転送モードが求められる場合には、追加のパラレル・ブランチ（parallel  branch）をホスト内に接続することができる。
【００１６】
標準転送回路３０４には、データの転送を標準転送モードで実行する電気回路が入っている。標準転送回路３０４は、データ書込み処理の間は、パラレル・データをバス３０２からライン３０８に転送し、また、データ読出し処理の間は、パラレル・データをライン３０８からバス３０２に転送するように構成されている。標準転送回路３０４で行われる重要な作業は、低速データバス３０２からのデータを、ライン３０８でサポートされる幅にフォーマットすることである。他の機能は、送られるデータに、巡回冗長検査文字（ＣＲＣ）を付けることと、受け取られたデータ上のＣＲＣをデコードすることを含むこともできる。
【００１７】
高速シリアル転送回路３０６には、高速差動シリアル転送プロトコルを用いて、データを転送できる電気回路が入っている。高速シリアル転送回路３０６は、少なくとも１００ＭＢ／秒のレートでデータを転送できることがある。このような転送レートでは、大容量のファイルは、数分という従来技術のダウンロード時間とは異なり、１秒以内にダウンロードできる。
【００１８】
高速シリアル転送回路３０６は、ホスト制御論理回路３１８からシステム・クロック信号ＣＬＫを受け取って、フェーズ・ロックド・ループ（ＰＬＬ）回路を用いて、「高速クロック」速度までクロック周波数を逓倍する。高速シリアル転送回路３０６は、ユーザ装置処理システム３００と高速シリアル転送回路３０６との間でデータを転送している間、一時的にデータを保持するバッファをさらに含む。高速シリアル転送回路３０６は、好ましくは、誤り検出・訂正回路、同期検出回路、８ビット〜１０ビットのエンコーダ、１０ビット〜８ビットのデコーダを備えて、クロックとデータをエンコードし易くし、クロックとデータを分離できるようにし、さらに、データをデコードし易くする。シリアル・データをパラレル・データに変換し、パラレル・データをシリアル・データに変換するシリアル／デシリアル（deserial）回路は、好ましくは、高速シリアル転送回路３０６に含まれる。
【００１９】
データ書込みコマンドの間、高速シリアル転送回路３０６は、アップコンバートされた高速クロック（ＦＡＳＴ  ＣＬＫ）信号を、ユーザ装置処理システム３００に送る。ユーザ装置処理システム３００が、ＦＡＳＴ  ＣＬＫ信号を受け取ると、高速シリアル転送回路３０６は、高速クロック速度にて、ＦＡＳＴ  ＤＡＴＡバス３０５に沿って、ユーザ装置処理システム３００からシリアル・データを引き出す。
【００２０】
さらに、高速シリアル転送回路３０６は、ライン３１０に沿って、データを送り、受け取る２つの差動増幅器を含む。送信差動増幅器は、ディジタルデータをシリアル差動形式に変換し、そのシリアル差動データを、正の送信ライン（ＤＴ＋）と負の送信ライン（ＤＴ−）に沿って送る。受信差動増幅器は、正の受信ライン（ＤＲ＋）と負の受信ライン（ＤＴ−）からシリアル差動データを受け取って、そのシリアル差動データをディジタル形式に変換する。メモリ・コントローラ１０４がビジーであって、さらに多くのデータを受け取れる状態にないときには、ＤＴラインとＤＲラインのほかに、ＢＵＳＹラインも追加して、メモリ・コントローラ１０４から信号を供給することもある。ＢＵＳＹラインはまた、エラーが発生したことを伝えるために、用いられることもある。高速シリアル転送回路３０６が、ＢＵＳＹ信号を受け取る場合には、メモリ・コントローラ１０４が、再び、受け取れる状態になるまで、データの転送は停止される。所定の時間、ビジーのままであるＢＵＳＹラインは、エラーを表わすことがある。
【００２１】
スイッチング回路３１２は、標準転送回路３０４に通じるライン３０８と、高速シリアル転送回路３０６に通じるライン３１０に接続される。ライン３１０は、「ＤＴ＋」、「ＤＴ−」、「ＤＲ＋」、「ＤＲ−」と標記されている。ここで、「ＤＴ」は、高速シリアル転送回路３０６から送られるデータを表わし、また、「ＤＲ」は、高速シリアル転送回路３０６により受け取られるデータを表わしている。スイッチング回路３１２は、データ転送の別々のパスを選択できるようにするいくつかの内部スイッチング要素を含む。データは、高速シリアル転送モードか、あるいは標準転送モードで、スイッチング回路３１２を通じて転送されることがある。ホスト１０２は、標準転送モードで始動し、また、要求に応じて、高速シリアル転送モードに切り替えるように構成されることがある。高速シリアル転送モードでは、スイッチング回路３１２のスイッチング要素は、スイッチング回路３１２の出力側に接続されたライン３１４を、高速シリアル転送回路３０６に通じるライン３１０に電気的に結合するように、構成されている。標準転送モードでは、これらのスイッチング要素は、ライン３１４を、標準転送回路３０４に通じるライン３０８に電気的に結合するように、構成されている。
【００２２】
ライン３１４は、スイッチング回路３１２とコネクタ３１６との間に接続されている。コネクタ３１６は、使用されるどちらのタイプのメモリカード２００にも、適正に接続できるようにする物理特性を含む。コネクタ３１６は、インターフェース・ライン２０４に接続される出力端子とＩ／Ｏ端子を両方とも含む。ＣＬＫ端子、Ｖｄｄ端子、ＧＮＤ端子は、通常、それぞれのインターフェース・ライン２０４に沿って、システム・クロック信号、電源電圧、接地電圧を供給する出力端子として構成されている。これらの出力は、通常、ホスト１０２のホスト制御論理回路３１８により生成される。
【００２３】
さらに、コネクタ３１６は、データを送り、データを受け取るデータ端子Ｄ１、Ｄ２、．．．、ＤＮなどのＩ／Ｏ端子を含む。コマンド端子（ＣＭＤ）は、ホスト１０２とメモリ・コントローラ１０４との間で、コマンドを送り、コマンドを受け取るためのＩ／Ｏ端子として構成されることがある。ＣＭＤ端子は、メモリ・コントローラ１０４から応答を受け取って、コマンドの状態をホスト１０２に通知する。例えば、メモリ・コントローラ１０４は、ＣＭＤラインに沿って、信号をホスト１０２に戻して、ホスト１０２からのコマンドが適正に受け取られたかどうか示すことがある。コマンドを送っているときに、エラーが検出された場合には、メモリ・コントローラ１０４は、検出されたエラーのタイプを示すエラーコードとともに、エラー応答を送ることがある。
【００２４】
図３に示されるホスト１０２の構成要素は、ホスト制御論理回路３１８により制御される。ホスト制御論理回路３１８は、制御信号を、ユーザ装置処理システム３００、標準転送回路３０４、高速シリアル転送回路３０６、スイッチング回路３１２に供給する。ホスト制御論理回路３１８は、信号を様々な回路に供給して、高速シリアル転送モードか、標準転送モードのいずれかを選択する。さらに多くの転送モードが求められる場合には、ホスト１０２は、オプションとして、選択される追加の転送回路を含むこともある。
【００２５】
さらに、ホスト制御論理回路３１８は、標準転送モードでは転送される大量のデータを処理できる程度に速くはないことを判定できる回路またはソフトウェアを含むことができる。それにより、高速シリアル転送モードに切り替えることができる。その他、ホスト制御論理回路３１８は、ユーザがさらに速い転送レートを必要とするときに、高速シリアル転送モードを要求するユーザ入力を受け取ることができる。ホスト制御論理回路３１８は、信号を、高速シリアル転送回路３０６か、標準転送回路３０４のいずれかに送る。それにより適正な回路が、選択されたモードで動作可能になる。さらにホスト制御論理回路３１８は、スイッチング回路３１２に信号を送ることにより、適宜にスイッチング要素を設定する。さらにホスト制御論理回路３１８は、システム・クロックとして使用される基準クロック信号を供給するための、発振器または他のタイプのクロッキング装置を含む。さらにホスト制御論理回路３１８は、ＣＭＤラインに沿って、コマンド信号をメモリ・コントローラ１０４に供給する。
【００２６】
図４Ａと図４Ｂを参照すると、メモリ・コントローラ１０４の一実施形態が示されている。メモリ・コントローラ１０４の構成要素は、必要に応じて１つの特定用途向け集積回路（ＡＳＩＣ）として、まとめて製造することができる。Ｄ１、Ｄ２、…、ＤＮ、ＣＬＫ、ＣＭＤ、Ｖｄｄ、ＧＮＤのインターフェース・ライン２０４は、上述のホスト１０２のコネクタ３１６と、メモリ・コントローラ１０４のコネクタ４００との間に、着脱自在に接続される。コネクタ４００は、コネクタ３１６に対応するように構成される。言い替えれば、コネクタ４００のコンタクトの位置は、コネクタ３１６のレセプタクル（図示されてない）内のコンタクトの形状および位置に合致する。メモリカード２００をレセプタクルに差し込むと、コネクタ４００のコンタクトは、コネクタ３１６のコンタクトに電気的に結合される。コネクタ４００は、使用されている特定のメモリカード・システムのフォーム・ファクタにより構成される。ホスト１０２内で生成されるデータは、これらのコネクタを通じて、メモリカード２００に送られることがある。ホスト１０２が、メモリ・バンク２０２からデータを検索するときには、このデータは、メモリカード２００から、コネクタを介して、ホスト１０２に送られる。
【００２７】
メモリ・コントローラ１０４は、ホスト１０２のスイッチング回路３１２と同じやり方で設定できる第１のスイッチング回路４０４をさらに含む。メモリ・コントローラ１０４の第１のスイッチング回路４０４は、コネクタ４００と第１のスイッチング回路４０４との間に接続されたライン４０２に沿って、データを受け取り、データを送る。第１のスイッチング回路４０４は、第１のスイッチング回路４０４と標準転送回路４０８との間に接続されているライン４０６に、あるいは、第１のスイッチング回路４０４と高速シリアル転送回路４１２との間に接続されているライン４１０に、ライン４０２を結合できるようにするスイッチング要素を含む。ライン４１０は、「ＤＲ＋」、「ＤＲ−」、「ＤＴ＋」、「ＤＴ−」と標記されている。ここで、「ＤＲ」は、ホスト１０２から受け取られるデータを表わし、また「ＤＴ」は、ホスト１０２に送られるデータを表わしている。「＋」と「−」の記号は、上述のように、シリアル差動方式で用いられる正と負のラインを表わしている。
【００２８】
メモリ・コントローラの標準転送回路４０８と高速シリアル転送回路４１２は、それぞれホストの標準転送回路３０４と高速シリアル転送回路３０６に類する回路を含むことができる。同様に、標準転送回路４０８と高速シリアル転送回路４１２は、回路３０４と回路３０６とほぼ同一の機能を果たす。
【００２９】
ＳＬＯＷ  ＤＡＴＡバス４１４は、標準転送回路４０８のＩ／Ｏ端子に接続される。ＦＡＳＴ  ＤＡＴＡバス４１５は、高速シリアル転送回路４１２のＩ／Ｏ端子に接続される。バス４１４とバス４１５は、第２のスイッチング回路４１６にも接続される。第２のスイッチング回路４１６は、第１のスイッチング回路４０４と共同して働いて、標準転送回路４０８か、高速シリアル転送回路４１２のいずれかをデータ転送パスに接続する。データは、データバス４１７に沿って、圧縮／復元エンジン４１８に転送される。圧縮／復元エンジン４１８は、データ書込みコマンドの間、データを圧縮する回路を含む。これらのスイッチング回路と、様々なデータ転送パスは、データパス・スイッチング処理を行うために、圧縮／復元エンジン４１８の動作に左右されない。同様に、圧縮／復元エンジン４１８は、圧縮および復元の処理を行うために、データパス・スイッチング設定の動作に左右されない。それゆえ圧縮／復元エンジン４１８を、任意選択（オプション）機構にして、本明細書に開示されるデータ記憶システム１００に追加することができる。データ読出しコマンドの間、圧縮／復元エンジン４１８は、復元回路を利用する。知られているアルゴリズムを復元回路に用いて圧縮されたすべてのデータを復元するためである。このスイッチング構成の高速データ転送速度は、圧縮／復元エンジン４１８により加速され、比較的遅い媒体で、同一高速レートにてデータを受けとることができるようにしている。圧縮／復元エンジン４１８が格納のためにメモリ１０６に送る情報はさらに少ないから、圧縮されたデータの格納は、圧縮されてないデータよりも速くできる。圧縮機能をメモリ・コントローラ１０４に追加するもう１つの利点は、メモリに求められる記憶スペースがさらに小さくなり、それにより、ユーザが、さらに多くのデータを格納できることである。データをメモリ１０６に書き込んでいる間に、データを圧縮することにより、データがメモリ１０６中に占める記憶スペースがさらに小さくなる。それゆえ、メモリ１０６の記憶容量は、このようなデータの圧縮により、事実上、大きくすることができる。
【００３０】
圧縮されたデータは、圧縮／復元エンジン４１８と、高速転送レートでデータを処理できるバッファ４２０との間で転送される。書込みコマンドの間、バッファ４２０は、高速格納のために、この圧縮データを編成できる回路を含む記憶装置インターフェース４２２にデータを送る。記憶装置インターフェース４２２は、複数のメモリ・バンク２０２に通じる複数のパスの間でシリアル・データを分配するシーケンサを含むことができる。好ましくは、記憶装置インターフェース４２２は、追加バッファを含む。追加バッファは、圧縮データがメモリ・バンク２０２に転送されようとするときに、その圧縮データを一時的に保持する。記憶装置インターフェース４２２は、圧縮データにパリティを付加する誤り訂正符号（ＥＣＣ）回路をさらに含む。この回路は、圧縮データがメモリ１０６から読み直されるときに、エラーを検出および訂正できるようにする。圧縮／復元エンジン４１８と記憶装置インターフェース４２２の順序は、逆にされる場合がある。このような場合には、データの圧縮は、データをメモリ・バンク２０２に格納する前に最後に行われる機能であり、また、データの復元は、メモリ・バンク２０２からデータを読み出すときに最初に行われる機能である。
【００３１】
図４Ａと図４Ｂのメモリ・コントローラ１０４は、メモリ・コントローラ１０４に制御機能を提供するメモリ制御論理回路４２４をさらに含む。メモリ制御論理回路４２４は、ホスト１０２からＣＭＤラインに沿ってコマンドを受け取り、要求されたコマンドを実行するのに適した回路に信号を供給する。ホスト１０２からコマンドを受け取るときに、エラーが発生する場合には、メモリ制御論理回路４２４は、ＣＭＤラインを介して、エラーコードをホスト１０２に戻して、そのエラーをホスト１０２に知らせる。ＣＬＫラインは、システム・クロック信号をメモリ制御論理回路４２４に供給して、メモリ・コントローラ１０４をホスト１０２と同期させる。
【００３２】
メモリ制御論理回路４２４は、第１のスイッチング回路４０４、標準転送回路４０８、高速シリアル転送回路４１２、第２のスイッチング回路４１６に信号を供給して、標準転送モードと高速シリアル転送モードのいずれかを選択する。データ転送パスは、高速シリアル転送モードを選択するときに、高速シリアル転送回路４１２を通過し、また、標準転送モードを選択するときに、標準転送回路４０８を通過する。メモリ制御論理回路４２４は、適切な転送回路４０８または４１２を使用可能にし、対応する設定を、スイッチング回路４０４および４１６に開始させる。
【００３３】
データ記憶システム１００の構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実施されることもある。この開示された実施形態では、ホスト制御論理回路３１８とメモリ制御論理回路４２４は、メモリに格納され、かつ適切な命令実行システムによって実行されるソフトウェアまたはファームウェアで実施されることがある。代替実施形態の場合のように、これらのプロセッサは、ハードウェアで実施される場合には、すべて当技術分野において知られている以下の技術の任意のもの、またはその組合せを用いて実施されることもある。これらの技術とは、データ信号に論理機能を実施する論理ゲートを持つディスクリート論理回路、適切な組合せ論理ゲートを持つＡＳＩＣ、ＰＧＡ（programmable  gate  array）、ＦＰＧＡ（field  programmable  gate  array）などである。
【００３４】
一般に、ホスト１０２とメモリ・コントローラ１０４の実施形態は、上述の通り、図３、図４Ａ、図４Ｂに示されるように構成されることがある。次に、ホスト１０２とメモリ・コントローラ１０４の個々の構成要素をさらに定義する図５〜図１１を参照して、ホスト１０２とメモリ・コントローラ１０４の一般構成要素が述べられている。以下の構成要素の代替実施形態は、この開示をはっきりと理解している当業者により実施できることに留意されたい。
【００３５】
図５と図６は、データ記憶システム１００が半二重モードで動作するように構成されているときに、それぞれホスト１０２とメモリ・コントローラ１０４の一部の実施形態を表わしている。図５は、ホスト１０２のうち、スイッチング構成を作り上げる部分を示しており、標準転送回路３０４、高速シリアル転送回路３０６、スイッチング回路３１２の詳細図から成っている。高速シリアル転送回路３０６からの出力は、半二重構成でスイッチング回路３１２に連絡され、ここで、ＤＴ＋ラインとＤＲ＋ラインは正の端子を共有し、またＤＴ−ラインとＤＲ−ラインは負の端子を共有している。
【００３６】
スイッチング回路３１２は、データ記憶装置１００が動作しているときのデータ転送モードを示す信号をホスト制御論理回路３１８から受け取るスイッチ制御回路５００を含む。スイッチ制御回路５００がホスト制御論理回路３１８からコマンドを受け取ると、スイッチ制御回路５００は、所望のモードを持続させる。それゆえ、ホスト制御論理回路３１８は、その要求を、一度だけ起動しなければならない。また、スイッチ制御回路５００は、別の状態に設定し直されるまで、所望の状態を保持する。スイッチ制御回路５００は、所望の状態を保持するレジスタを含むことがある。スイッチ制御回路５００は、一定の信号を、複数のスイッチ５０２に供給して、別の状態が要求されるまで、スイッチ５０２を所望の状態に保つ。
【００３７】
標準転送モードが要求されるときには、スイッチ制御回路５００は、標準転送回路３０４を通るデータ・ラインＤ１、Ｄ２、…、ＤＮが、コネクタ３１６に通じるライン３１４に電気的に接続されるような状態に、スイッチ５０２を設定する。標準転送回路３０４では、ＳＬＯＷ  ＤＡＴＡバス３０２に沿ったデータが、低速処理回路５０３に入力され、そこで、パラレル・ラインまたはシリアル・ラインが、Ｎの数のデータ・ラインＤ１、Ｄ２、…、ＤＮを持つ形式に変換される。データ・ラインＤ１、Ｄ２、…、ＤＮは、プッシュプル・トランシーバ５０４に接続される。プッシュプル・トランシーバ５０４は、データ信号を、一方の方向に、または他方の方向に駆動する駆動増幅器を含む。データ・ラインＤ１、Ｄ２、…、ＤＮに沿ったプッシュプル・トランシーバ５０４は、さらに、スイッチ５０２の一方の側の第１の組のコンタクトに接続される。ＳＬＯＷ  ＤＡＴＡバス３０２は、標準転送モードに切り替えられると、プッシュプル・トランシーバ５０４を介して、データ・ライン３１４に接続される。
【００３８】
高速シリアル転送モードでは、スイッチ制御回路５００は、高速シリアル転送回路３０６からの正のラインと負のラインを、データ・ライン３１４のラインＤ２とラインＤ３に接続するように、スイッチ５０２を代替状態に設定する。シリアル差動信号の正の部分は、データ・ラインＤ２に接続され、また、その負の部分は、Ｄ３に接続される。ＢＵＳＹラインは、データ・ラインＤ１に接続されていて、メモリ・コントローラ１０４がビジーで、さらに多くのデータを受け取れる状態にないときに、メモリ・コントローラ１０４から信号を受け取る。ビジー信号に応答して、ホスト１０２は、メモリ・コントローラ１０４が「ビジーでない」信号を送るまで、追加データを送るのを延ばす。残りのデータ・ラインＤ４、Ｄ５、．．．、ＤＮは、半二重高速シリアル転送モードでは使用されない。図５は、図示される配置で、データ・ラインＤ１、Ｄ２およびＤ３を用いている状態を示しているが、ホストは、ＢＵＳＹライン、正のライン、負のラインに対して、３本の任意データ・ラインをどれでも使用できるように構成されることがある。どのデータ・ラインを使用するのかは、ホスト１０２の物理特性に基づいて、決定されることがある。
【００３９】
ＢＵＳＹ端子、正の端子、負の端子を含むスイッチ５０２の第２の組のコンタクトは、それぞれ、スイッチ対５１２とスイッチ対５１４を介して、差動増幅器５０８と差動増幅器５１０に接続される。スイッチ制御回路５００は、データを送るとき、すなわち、言い替えれば、ホスト１０２からのデータが、メモリ・コントローラ１０４を通じて、メモリ１０６に書き込まれるときには、スイッチ対５１２を閉じることがある。スイッチ制御回路５００が、スイッチ対５１２を閉じると、ＤＴ＋はＤ２ラインに接続され、またＤＴ−はＤ３ラインに接続される。スイッチ制御回路５００は、メモリ１０６からデータを読み取ると、スイッチ対５１４を閉じて、ＤＲ＋およびＤＲ−をＤ２およびＤ３に接続する。差動増幅器５０８および５１０は、高速処理回路５０６に接続される。高速処理回路５０６は、ＣＬＫラインからクロック信号を受け取って、その内部クロックを基準クロック信号と同期化させるフェーズ・ロックド・ループ（ＰＬＬ）回路を含む。さらに、ＰＬＬ回路は、高速シリアル転送モードでの使用のために、クロック周波数を逓倍する。高速処理回路５０６は、データを、例えば８ビットのパラレル形式からシリアル形式に、あるいは、その逆に変換するシリアル／デシリアル回路をさらに含む。データ信号とクロック信号は両方とも、高速シリアル転送モードでデータを送るために、データ・ストリームに組み込まれる。
【００４０】
データ書込みコマンドの間、スイッチ対５１２が閉じられて、高速処理回路５０６は、差動増幅器５０８を通じて、逐次、データを送り、データ・ラインＤ２およびＤ３に沿って、差動データを出力させる。読出しコマンドの間、スイッチ対５１４が閉じられて、差動増幅器５１０は、データ・ラインＤ２およびＤ３から差動データを受け取って、ディジタル・データを高速処理回路５０６に送る。
【００４１】
スイッチ５０２と、スイッチ対５１２および５１４は、第１のコンタクトと複数の選択可能なコンタクトとの間の代替接続を提供するか、あるいは、代替の開放状態または閉じ状態を提供するシリコンまたは他の方法で作られた任意タイプの電気デバイスまたはトランジスタベースのデバイスから成ることもある。スイッチ５０２の代替接続設定は、この一群のデータ・ライン３１４から、複数の組のライン、例えばライン３０２またはＤＴラインとＤＲラインへの代替パスを提供する。
【００４２】
オプションとして、データ記憶システム１００は、上述のように、ホスト１０２とメモリ・コントローラ１０４が、選択可能なパスを３つ以上含むように、構成されることがある。さらに、パスと転送回路が追加されることがあり、それにより、追加のデータ転送モードが選択できる。追加のパスが含まれる実施形態では、ライン３１４が、他のパスに沿って、追加の転送回路を介して接続されるように、追加端子を持つスイッチ５０２が設定されることもある。
【００４３】
図６は、メモリ・コントローラ１０４のうち、図５に示されるホスト１０２の半二重構成と共同して動作するように設計されたスイッチング部分の一実施形態のブロック図である。このメモリ・コントローラの第１のスイッチング回路４０４は、ホストのスイッチング回路３１２とほぼ同一であることもある。スイッチ制御回路６００は、メモリ制御論理回路４２４からコマンドを受け取って、所望のデータ転送モードに切り替える。好ましくは、スイッチ制御回路５００および６００は、両側で転送モードが一致するように、同期化される。この点に関して、同期を持続させるために、ホスト制御論理回路３１８は、コマンドを、ＣＭＤラインに沿ってメモリ制御論理回路４２４に送って、メモリ・コントローラ・プロセッサ４２４に、スイッチ制御回路６００を、要求されるデータ転送モードに切り替えるように指示する。スイッチ制御回路６００は、スイッチ６０２にて、一定の信号を維持して、スイッチ６０２を所望の状態に保つ。高速シリアル転送モードでは、データ・ライン４０２は、ＤＲラインとＤＴラインに電気的に結合される。標準転送モードでは、データ・ライン４０２は、標準転送回路４０８を介して、ＳＬＯＷ  ＤＡＴＡバス４１４に結合される。
【００４４】
プッシュプル・トランシーバ６０４と低速処理回路６０５は、データ・ライン４０２と、標準転送回路４０８中のＳＬＯＷ  ＤＡＴＡバス４１４との間に接続される。スイッチ６０２のそれぞれの一端子は、スイッチ対６１２および６１４に接続される。スイッチ対６１２は、データ・ライン４０２のラインＤ２およびＤ３を差動増幅器６０８に接続する。高速シリアル転送モードでのデータ書込みコマンドの間、スイッチ対６１２は閉じられて、ラインＤＲ＋とラインＤＲ−に沿った差動信号が、差動増幅器６０８に入力され、それにより、信号が、高速処理回路６０６の入力側に供給される。高速シリアル転送モードでのデータ読出しコマンドの間、スイッチ制御回路６００は、スイッチ対６１４を閉じて、高速処理回路６０６が、出力信号を、第２の差動増幅器６１０に供給する。差動増幅器６１０は、シリアル差動出力を、ＤＴ＋ラインとＤＴ−ラインに沿って、データ・ライン４０２のラインＤ２とラインＤ３に送る。
【００４５】
上述の図５と図６は、半二重構成の一例を示している。半二重構成の他の方法として、図７と図８は、全二重モードで動作するホスト１０２およびメモリ・コントローラ１０４の一実施形態を提供している。この２組の図の主な違いを説明する。図５と図６の半二重構成では、正のラインＤＴ＋とラインＤＲ＋が共通の正の端子を共有し、また、負のラインＤＴ−とラインＤＲ−が共通の負の端子を共有している。それゆえ図５と図６では、データが、同一のラインＤ２およびＤ３上で、送られるかまたは受け取られる。差動シリアル・データは、データ・ラインＤ２およびＤ３に沿って、一方の方向にまたは他方の方向に転送される。図７と図８では、差動増幅器５０８、５１０、６０８、６１０からの４つの出力が、４つのデータ・ラインＤ２、Ｄ３、Ｄ４、Ｄ５に連絡される。上述のように、ＤＴ＋、ＤＴ−、ＤＲ＋、ＤＲ−の信号を転送する特定のデータ・ラインとして、データ・ラインＤ１、Ｄ２、…、ＤＮをどれでも、自由に選択できる。２つの追加データ・ラインを利用すれば、シリアル差動信号を、２つのデータ・ラインに沿って送り、また、別のシリアル差動信号を、２つの異なるデータ・ラインに沿って同時に受け取ることができる。
【００４６】
全二重モードでのホスト１０２を示す図７では、スイッチ制御回路７００は、データ記憶システム１００を標準転送モードまたは高速シリアル転送モードで動作させる要求に基づいて、５つのスイッチ７０２を設定している。図５の半二重モードと比較して、図７は、データ・ライン３１４と、標準転送回路３０４および高速シリアル転送回路３０６を通る交互パスとの間に追加された２つの追加スイッチ７０２を示している。高速シリアル転送モードでは、スイッチ制御回路７００は、ラインＤ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５を、それぞれ、ＢＵＳＹラインと、データ端子ＤＴ＋、ＤＴ−、ＤＲ＋、ＤＲ−に接続するように、図７に示される通りスイッチ７０２を設定する。スイッチ制御回路７００は、書込みコマンドの間、スイッチ対７１２を閉じ、また、読出しコマンドの間、スイッチ対７１４を閉じる。送信と受信が同時であるかもしれないから、全二重モードでは、スイッチ対７１２および７１４がオプションであることもある。このような理由で、スイッチ対７１２および７１４は、除去されるか、あるいは、貫流接続線（flow-through  connection）に代えられることもある。
【００４７】
図８は、図７に示されるホスト１０２の全二重構成と共同して動作する、全二重構成でのメモリ・コントローラ１０４を示している。図８は、図６と同様である。ただし、スイッチ制御回路８００は、３つではなくて、５つのスイッチ８０２を設定する。差動増幅器６０８および６１０は、半二重モードの場合のように２本しかないデータ・ラインに接続されるのではなくて、全二重モードでは、データ・ラインＤ２、Ｄ３、Ｄ４、Ｄ５に接続される。これらの接続は、スイッチ対８１２および８１４を通じて行われ、この場合も、全二重モードではオプションであることもある。
【００４８】
図９は、圧縮／復元エンジン４１８の一実施形態を示している。データ書込みモードでは、圧縮／復元エンジン４１８に入ってくるデータは、データ入力制御回路９００、圧縮回路９０２、圧縮検出回路９０４に進む。圧縮回路９０２は、入ってくるデータを圧縮して、この圧縮データを、データ入力制御回路９００と圧縮検出回路９０４に送る。入ってくるデータを受け取って、そのデータを圧縮回路９０２に圧縮させる圧縮検出回路９０４は、入ってくるデータと圧縮データを比較して、圧縮回路９０２による圧縮に先立って、入ってくるデータがすでに圧縮されているかどうか判定する。すでに圧縮されているデータを圧縮回路９０２が圧縮するときに、データの圧縮のために圧縮回路９０２で用いられたアルゴリズムが、実際に、このデータを展開することがあるという事実に基づいて、圧縮検出回路９０４は、このような判定を行うことがある。それゆえ、このデータが、さらなる圧縮に対応してない場合、あるいは、このデータが、圧縮されないで、圧縮回路９０２で展開される場合には、圧縮検出回路９０４は、このデータがすでに圧縮されていると判定する。
【００４９】
圧縮検出回路９０４は、データ入力制御回路９００に、入ってくるデータか、圧縮回路９０２からの圧縮データのいずれかを選ぶように指示する信号を、データ入力制御回路９００に送る。圧縮検出回路９０４は、追加信号を圧縮回路９０２に送って、用いられる圧縮アルゴリズムが有効でないことを、圧縮回路９０２に知らせる場合がある。その結果、圧縮回路９０２は、アルゴリズムが無効であることを通知するときに、別のアルゴリズムに切り替えることがある。圧縮検出回路９０４は、入ってくるデータがすでに圧縮されているかどうか、データ入力制御回路９００に通知する。入ってくるデータがすでに圧縮されている場合には、データ入力制御回路９００は、圧縮回路９０２からのデータを無視して、すでに圧縮されている入ってくるデータを選択する。入ってくるデータが、これまで圧縮されたことがない場合には、データ入力制御回路９００は、入ってくるデータを無視して、圧縮回路９０２からの圧縮データを選択する。データ入力制御回路９００は、転送されるデータが、圧縮回路９０２からの圧縮データであるか、前に圧縮された入ってくるデータであるかどうか示すことのできる圧縮指示記号といっしょに、その選択されたデータを転送する。さらに、この圧縮指示記号は、入ってくるデータを圧縮するために圧縮回路９０２が使用したアルゴリズムのタイプに関する情報も含むことがある。
【００５０】
データがメモリ１０６から読み出されると、そのデータは、圧縮／復元エンジン４１８の復元部分に入力される。格納されたデータは、データ出力制御回路９０６、復元回路９０８、圧縮記号検出回路９１０に進む。圧縮記号検出回路９１０は、圧縮検出回路９０４が格納データを圧縮したかどうか判定するために、圧縮指示記号を検出し、また、もし圧縮した場合には、使用されたアルゴリズムも検出する。圧縮記号検出回路９１０が、どのように格納データを圧縮したか決定すると、圧縮記号検出回路９１０は、この格納データを復元する方法を復元回路９０８に指示する信号を復元回路９０８に送る。さらに、圧縮記号検出回路９１０は、この格納データが、圧縮回路９０２中の公知の圧縮アルゴリズムにより圧縮されたかどうか、データ出力制御回路９０６に通知する。それに応答して、データ出力制御回路９０６は、復元されてないデータか、復元回路９０８で復元されたデータのいずれかを選択する。データ出力制御回路９０６は、選択されたデータを、圧縮／復元エンジン４１８の出力側に転送する。
【００５１】
図１０と図１１は、図４に示されるように、メモリ・コントローラ１０４の圧縮／復元エンジン４１８と、メモリ・バンク２０２との間のインターフェースとして働く記憶装置インターフェース４２２の２つの例証実施形態を示している。書込みコマンドでは、記憶装置インターフェース４２２は、データ・ブロックをメモリ・バンク２０２に転送し、また読出しコマンドでは、記憶装置インターフェース４２２は、メモリ・バンク２０２から、データ・ブロックを検索する。図１０の実施形態では、記憶装置インターフェース４２２は、シリアル・データをバッファ４２０から高速ＥＣＣ回路１０００に転送する。ＥＣＣ回路１０００は、いくつかのブランチに沿って、対応する数のバッファ１００４に至るパスに沿ってデータを送る高速シーケンサ１００２に接続されている。データ書込みコマンドの間、ＥＣＣ回路１０００は、バッファ４２０からデータを受け取って、そのデータに、パリティ・ビットを付加する。このデータをメモリ・バンク２０２から読み出すときに、ＥＣＣ回路１０００は、エラーの対象となるデータを検出し、データ中に訂正可能なエラーがあれば、それを訂正し、次に、パリティ・ビットを取り除いて、その訂正されたデータを、バッファ４２０に送り戻す。
【００５２】
データ書込みコマンドの間、高速シーケンサ１００２は、ＥＣＣ回路１０００からのシリアル・データを、複数のパラレル・パスに分ける。パスの数は、例えば４つであるか、あるいは、それぞれのバッファ１００４の転送レートにバッファの数を掛けたものが、高速シリアル転送モードの間、データの転送を高速に維持するに充分な大きさであるような任意の個数であってもよい。バッファ１００４は、シーケンサ１００２により分けられたパスに沿ってデータを一時的に格納し、このデータをブロックにし、これらのデータ・ブロックを、対応するメモリ・バンク２０２の中に転送する。データ記憶システム１００が標準転送モードであるときには、バッファ１００４の１つを除く全部は、使われてないときにアイドル状態にある場合があることに留意されたい。このような場合に、一度に、１つしかバッファ１００４を使用しないために、節電が実現できる。
【００５３】
図１１は、記憶装置インターフェース４２２の代替実施形態を示している。ここでは、データ書込みコマンドの間、高速の区分バッファ１１００は、シリアル・データを受け取って、そのデータを高速シーケンサ１１０２に転送し、そこで、このデータが、いくつかの別々のパスに沿って、別々のブロックに分けられる。データの各ブロックは、それぞれＥＣＣ回路１１０４に入力され、ＥＣＣ回路１１０４は、データにパリティを付加する。パリティが付加されたデータ・ブロックをメモリ・バンク２０２に格納する。データ読出しコマンドの間、ＥＣＣ回路１１０４は、異なるメモリ・バンク２０２からデータ・ブロックを検索し、エラーがあれば、それを検出し、エラーを訂正し、パリティ・ビットを取り除き、これらのデータ・ブロックをシーケンサ１１０２に送る。次に、シーケンサ１１０２は、これらのデータ・ブロックを、つなぎ合わせて元どおりにし、そのデータを、区分バッファ１１００に逐次に送り戻す。
【００５４】
次に、図１〜図１１に関して上に詳しく述べられたデータ記憶システム１００を動作させる方法を参照する。図１２は、データ書込みコマンドの例証実施形態を示しており、ここでは、ホスト１０２において生成されたデータをメモリ１０６に書き込む。図１３は、メモリ１０６からデータを読み出す、ホスト１０２で要求されるデータ読出しコマンドの例証実施形態を示している。
【００５５】
図１２は、通常、ホスト１０２で起動されるデータ書込みコマンドを示している。第１のステップは、ブロック１２００に示されるように、スイッチング回路を標準転送モードに初期設定するものである。判断ブロック１２０２に示されるように、ホスト１０２が、高速シリアル転送モードを要求したかどうか判定するステップを実行する。高速シリアル転送モードを要求する場合には、ブロック１２０４に示されるステップを実行する。ホスト制御論理回路３１８とメモリ制御論理回路４２４は、信号を、スイッチング回路３１２および４０４のスイッチ制御回路５００、６００、７００、８００に送る。スイッチ制御回路５００、６００、７００、８００は、高速シリアル転送モードでデータを転送できるようにする状態に、スイッチ５０２、６０２、７０２、８０２を設定する。高速シリアル転送モード用のコマンドが出されていない場合には、流れは、ブロック１２０６に進む。標準転送モードは、特定的に高速シリアル転送モードが要求されている場合を除き、データ記憶システム１００を、いつもとどめているデフォルト・モードであることがあるものとする。しかしながら、データ記憶システム１００は、高速シリアル転送モードがデフォルト・モードであるように、逆のやり方で構成されることもある。３つ以上の転送モードが利用できる実施形態では、判断ブロック１２０２は、いくつかの異なる転送モードの中から選択する選択ステップを含むことがある。
【００５６】
データ書込み方法は、ホスト１０２とメモリ・コントローラ１０４が、２つ以上のデータ転送モードのいずれか１つで、データをメモリ１０６に書き込む時点において、終了することがある。メモリ・コントローラ１０４が、圧縮／復元エンジン４１８とともに構成されるときには、図１２の残りのステップが、データ書込み方法で行われることがある。
【００５７】
ブロック１２０６において、圧縮回路９０２は、圧縮／復元エンジン４１８に入ってくるデータを圧縮する。次に、圧縮検出回路９０４は、ブロック１２０８に示されるように、この入ってくるデータと、圧縮回路９０２から出力された圧縮データを比較する。圧縮検出回路９０４は、このような比較を利用して、入ってくるデータが、比較回路９０２で比較される前に圧縮されたかどうか判定する。判断ブロック１２１０は、入ってくるデータが、すでに圧縮されているかどうか判定するステップを示し、もし圧縮されている場合には、ステップの流れを制御して、ステップ１２１２に進める。このステップにおいて、圧縮検出回路９０４は、データ入力制御回路９００に信号を送って、圧縮データではなくて、入ってくるデータを選択する。データ入力制御回路９００は、入ってくるデータを選択し、ブロック１２１４に示されるように、メモリ１０６に格納されている現時点のデータが「圧縮されてない」ことを示す圧縮標識をさらに付加する。
【００５８】
判断ブロック１２１０において、入ってくるデータが、圧縮回路９０２によりデータが圧縮されるまでに圧縮されなかったと、圧縮検出回路９０４が判定する場合には、方法の流れは、ブロック１２１６に進む。このステップにおいて、圧縮検出回路９０４は、入ってくるデータが、これまで圧縮されなかったことと、新たに圧縮されたデータが選択されることを、データ入力制御回路９００に信号で伝える。データ入力制御回路９００は、圧縮回路９０２からの圧縮データを選択し、「圧縮された」データとしてメモリ１０６に書き込まれる現在データにフラグを付ける圧縮標識を付加する（ブロック１２１８）。ブロック１２１２および１２１６の選択ステップと、ブロック１２１４および１２１８の圧縮標識付加ステップの後で、流れは、ブロック１２２０に進み、そこで、選択されたデータ、および対応する圧縮標識が、メモリ１０６に格納される。
【００５９】
図１３は、データ読出し方法の一実施形態を示している。ブロック１３０６、１３０８、１３１０、１３１２、１３１４、１３１６は、データ読出し方法のうち、復元をともなう部分にかかわるステップをさす。データ記憶システム１００が圧縮／復元エンジン４１８を含むときには、これらのステップに従ってもよい。データ記憶システム１００が圧縮や復元を含まないときには、これらのステップを飛ばしてもよい。さらに、データ記憶システム１００が、スイッチング回路３１２、４０４、４１６を含むスイッチング構成、標準転送回路３０４および４０８、高速シリアル転送回路３０６および４１２を備えているときには、ブロック１３００、１３０２、１３０４に示されるステップに従ってもよい。データ記憶システム１００が、スイッチング構成を含まないときには、これらのステップを飛ばしてもよい。それゆえ、圧縮および復元のステップは、データ転送モード・スイッチング・ステップとは別個のものと見なされることがある。代替実施形態として、スイッチング構成をメモリ１０６と圧縮／復元エンジン４１８との間に置く一実施形態がデータ記憶システム１００に含まれるときには、圧縮および復元のステップは、データ転送モード・スイッチング・ステップと入れ替えられてもよい。
【００６０】
図１３は、異なる転送モードの切替えにかかわるステップを示している。ブロック１３００において、スイッチング回路を、標準転送モードに初期設定する。ホスト制御論理回路３１８とメモリ制御論理回路４２４は、対応するスイッチ制御回路５００、６００、７００、または８００に信号を送って、標準転送回路３０４および４０８をデータ転送パスに結合するように、スイッチ５０２、６０２、７０２、８０２と、スイッチ対５１２、５１４、６１２、６１４、７１２、７１４、８１２、８１４を設定する。判断ブロック１３０２において、データ記憶システム１００は、高速シリアル転送モードで動作するように、コマンドが出されているかどうか判定する。高速シリアル転送モードが要求されていると、判断ブロック１３０２で判定される場合には、流れはブロック１３０４に進み、そこで、データ記憶システム１００は、高速シリアル転送回路３０６および４１２をデータ転送パスに結合するように、これらのスイッチおよびスイッチ対を設定する。データ転送モードが設定され、かつ、適正な転送回路が切り替えられて、データ転送パスにつながると、データは、必要に応じて、さらに復元されてもよい。
【００６１】
図１３に示される実施形態は、復元回路９０８が、ブロック１３０６に示される通り、メモリ１０６からの格納データを復元するステップをさらに含む。ブロック１３０８において、圧縮記号検出回路９１０は、格納データにともなう圧縮標識を検出する。判断ブロック１３１０において、圧縮記号検出回路９１０は、この圧縮標識が、「圧縮された」という標識であるかどうかさらに判定する。もし、「圧縮された」という標識であれば、ステップの流れがブロック１３１２に進み、そこで、圧縮記号検出回路９１０は、復元回路９０８からの復元データが選択されることを、データ出力制御回路９０６に信号で伝える。それに応答して、データ出力制御回路９０６は、その復元データを選択する。ステップ１３１０とステップ１３１２は、データの圧縮の間に利用されるタイプの圧縮アルゴリズムを検出するステップと、この利用されるタイプの圧縮アルゴリズムによりデータを復元するよう、復元回路９０８に指示するステップをさらに含むことがある。判断ブロック１３１０が、「圧縮されてない」という標識があると判定する場合には、この流れは、ブロック１３１４に進み、そこで、圧縮記号検出回路９１０は、データ出力制御回路９０６に信号を送って、復元回路９０８からの復元データではなく、じかにメモリ１０６からの復元されてないデータを選択する。ここで、適切な組のデータを選択したデータ出力制御回路９０６は、ブロック１３１６に示されるように、圧縮の間に付加された圧縮標識を取り除いて、そのデータを、ホスト１０２に転送する（ブロック１３１８）。
【００６２】
図１２と図１３の流れ図は、データ書込みとデータ読出しのソフトウェアの可能な実施例のアーキテクチャ、機能、動作を示している。この点に関して、各ブロックは、指定した論理機能（１つまたは複数）を実施する１つまたは複数の実行命令を含むコードのモジュール、セグメント、または一部を表わしている。いくつかの代替実施例では、これらのブロック内に記された機能は、図１２と図１３に記された順序から外れて行われる場合があることにも留意されたい。例えば、図１３に連続して示される２つのブロック１３１０および１３１２は、実際は、ほぼ同時に実行されるか、あるいは、これらのブロックは、時には、下にさらに明らかにされるように、関係する機能に応じて、逆の順序で実行されることがある。
【００６３】
データの書込みおよび読出しの方法は、命令実行のシステム、装置、またはデバイスから命令を取り出して、この命令を実行することのできるコンピュータ・ベースのシステム、プロセッサ制御のシステム、または他のシステムなどの命令実行のシステム、装置、またはデバイスで用いられる任意のコンピュータ読取り可能媒体に織り込むことのできるプログラムであって、かつ、論理機能を実施する実行命令の番号付きリストを含むプログラムとして構成されることがある。本明細書に関連して、「コンピュータ読取り可能媒体」とは、命令実行のシステム、装置、またはデバイスで用いられるプログラムを含み、格納し、やり取りし、伝播させ、あるいは、移送することのできる任意の媒体であることもある。コンピュータ読取り可能媒体は、例えば、電子式、磁気式、光学式、電磁式、赤外線式、または半導体式のシステム、装置、デバイス、または、伝播媒体であることもある。コンピュータ読取り可能媒体のさらに具体的な例には、一本または複数の電線を有する電気接続部、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリー・メモリ（ＲＯＭ）、消去可能なＰＲＯＭ（ＥＰＲＯＭまたはフラッシュ・メモリ）、および、光ファイバがある。プログラムは、例えば、紙または他の媒体のオプティカル・スキャニングにより、電子的に取り込まれ、次に、コンパイルされ、翻訳されるなどして、必要に応じて適切なやり方で処理され、次に、コンピュータ・メモリに格納されるから、このコンピュータ読取り可能媒体は、プログラムを印刷している紙または他の適切な媒体でさえあり得ることに留意されたい。さらに、本発明の範囲は、ハードウェアまたはソフトウェアで構成される媒体に織り込まれたロジックに、この開示の実施形態の機能を具現することを含む。
【００６４】
本発明の上述の実施形態は、本発明の原理を明確に理解するために記述された可能な実施の例にすぎないことが強調されたい。本発明の原理から逸脱しなければ、本発明の上述の実施形態に、多くの変更および変形を行うことができる。このような変更および変形はすべて、この開示の範囲内で、本発明に含まれ、かつ、併記の特許請求の範囲により保護されることになっている。
【図面の簡単な説明】
【００６５】
【図１】データ記憶システムの一実施形態の全体図のブロック図。
【図２】図１のデータ記憶システムの例証実施形態を示すブロック図。
【図３】図１と図２に示されるホストの一実施形態の詳細を示すブロック図。
【図４Ａ】図１と図２に示されるメモリ・コントローラの一形態を示すブロック図。
【図４Ｂ】図１と図２に示されるメモリ・コントローラの一形態を示すブロック図。
【図５】図３に示されるホストの一部の一実施形態（半二重構成の一例である）のブロック図。
【図６】図５に示される半二重の実施形態と共同して動作するように構成された、図４に示されるメモリ・コントローラの一部の一実施形態のブロック図。
【図７】図３に示されるホストの一部の一実施形態（全二重構成の一例である）のブロック図。
【図８】図７に示される全二重の実施形態と共同して動作するように構成された、図４に示されるメモリ・コントローラの一部の一実施形態のブロック図。
【図９】図４の圧縮／復元エンジンの例証実施形態を示すブロック図。
【図１０】図４の記憶装置インターフェースの第１の実施形態のブロック図。
【図１１】図４の記憶装置インターフェースの第２の実施形態のブロック図。
【図１２】例証データ書込みコマンドのステップを示すフローチャート。
【図１３】例証データ読出しコマンドのステップを示すフローチャート。
【符号の説明】
【００６６】
１０２  ホスト
１０４  メモリ・コントローラ
１０６  メモリ
２００  メモリ構成要素
２０２  メモリ・バンク
３００  ユーザ装置処理システム
３０４  標準転送回路
３０６  高速シリアル転送回路
３１２  スイッチング回路
３１６  ホスト・コネクタ
３１８  論理回路
４０２  データ入出力（Ｉ／Ｏ）端子
４０４  スイッチング回路
４０６、４１０  転送端子
４０８  標準転送回路
４１０  転送端子
４１２  高速シリアル転送回路
４１８  圧縮／復元エンジン
４２２  記憶装置インターフェース
４２４  論理回路
６０２、８０２  第１の複数のスイッチ
６０６  処理回路
６０８  受信シリアル差動増幅器
６１０  送信差動増幅器
６１２、６１４、８１２、８１４  第２の複数のスイッチ
９００  データ入力制御回路
９０２  圧縮エンジン
９０４  圧縮検出器
９０６  データ出力制御回路
９０８  復元エンジン
９１０  復元検出器
【図１】
2004171561.tif 000003
【図２】
2004171561.tif 000004
【図３】
2004171561.tif 000005
【図４Ａ】
2004171561.tif 000006
【図４Ｂ】
2004171561.tif 000007
【図５】
2004171561.tif 000008
【図６】
2004171561.tif 000009
【図７】
2004171561.tif 000010
【図８】
2004171561.tif 000011
【図９】
2004171561.tif 000012
【図１０】
2004171561.tif 000013
【図１１】
2004171561.tif 000014
【図１２】
2004171561.tif 000015
【図１３】
2004171561.tif 000016