(57)【特許請求の範囲】
【請求項１】
少なくとも１つのメモリインタフェースポートを有するメモリインタフェースであって、前記メモリインタフェースポートは、少なくとも、第１のメモリインタフェースプロトコルでの通信に準拠した第１の信号経路への第１の信号をバッファリングすること、又は、前記第１のメモリインタフェースプロトコルとは異なる第２のメモリインタフェースプロトコルでの通信に準拠した第２の信号経路への第２の信号をバッファリングすることを選択的に可能にするように構成された回路を含む、メモリインタフェースと、
ホスト装置と前記メモリインタフェースとの間で情報を通信するホストインタフェースポートを有するホストインタフェースと、
を備える、デュアルインタフェースメモリコントローラ。
【請求項２】
印加される電圧レベルに応答して、前記第１の信号経路又は前記第２の信号経路をイネーブルするモードセレクタ回路を更に含む、請求項１に記載のデュアルインタフェースメモリコントローラ。
【請求項３】
前記モードセレクタ回路に電気的に結合されて、前記印加される電圧レベルを受け取るパッドを更に含む、請求項２に記載のデュアルインタフェースメモリコントローラ。
【請求項４】
前記少なくとも１つのメモリインタフェースポートは単一のパッドを含む、請求項２に記載のデュアルインタフェースメモリコントローラ。
【請求項５】
前記第１の信号経路は、前記第１のメモリインタフェースプロトコルに対応する入力信号を前記単一のパッドから受信するように構成された入力回路を含む、請求項４に記載のデュアルインタフェースメモリコントローラ。
【請求項６】
前記入力回路は第１の入力回路であり、
前記第２の信号経路は、前記第２のメモリインタフェースプロトコルに対応する別の入力信号を前記単一のパッドから受信するように構成された第２の入力回路を含む、請求項５に記載のデュアルインタフェースメモリコントローラ。
【請求項７】
前記モードセレクタ回路によって提供される第１の論理状態及び第２の論理状態のうちの一方を有する選択信号に応答して、前記単一のパッドを前記第１の入力回路又は前記第２の入力回路のうちの一方に選択的に結合するセレクタ回路を更に含む、請求項６に記載のデュアルインタフェースメモリコントローラ。
【請求項８】
前記第２の信号経路は、前記第２のメモリインタフェースプロトコルに対応する出力信号を前記単一のパッドに提供するように構成された出力回路を含む、請求項５に記載のデュアルインタフェースメモリコントローラ。
【請求項９】
前記回路は、第３の信号をバッファリングするように構成された第３の信号経路を含み、前記第３の信号は、前記第１のメモリインタフェースプロトコルに対応する、請求項７に記載のデュアルインタフェースメモリコントローラ。
【請求項１０】
前記第３の信号経路は、前記メモリインタフェースプロトコルに対応する出力信号を前記単一のパッドに提供するように構成された出力回路を含む、請求項９に記載のデュアルインタフェースメモリコントローラ。
【請求項１１】
前記少なくとも１つのメモリインタフェースポートは、前記第１の論理状態にある前記選択信号によってイネーブルされて、前記出力信号で前記単一のパッドを駆動する出力駆動回路を含み、
前記セレクタ回路は、前記選択信号が前記第１の論理状態にある場合、前記単一のパッドを前記第２の入力回路に結合する、請求項１０に記載のデュアルインタフェースメモリコントローラ。
【請求項１２】
前記第１の信号経路は、前記第１のメモリインタフェースプロトコルに対応する出力信号を前記単一のパッドに提供するように構成された出力回路を含む、請求項４に記載のデュアルインタフェースメモリコントローラ。
【請求項１３】
前記出力回路は第１の出力回路であり、
前記第２の信号経路は、前記第２のメモリインタフェースプロトコルに対応する別の出力信号を前記単一のパッドに提供するように構成された第２の出力回路を含む、請求項１２に記載のデュアルインタフェースメモリコントローラ。
【請求項１４】
前記モードセレクタ回路によって提供される第１の論理状態及び第２の論理状態のうちの一方を有する選択信号に応答して、前記単一のパッドを前記第１の出力回路又は前記第２の出力回路のうちの一方に選択的に結合するセレクタ回路を更に含む、請求項１３に記載のデュアルインタフェースメモリコントローラ。
【請求項１５】
前記第１のメモリインタフェースプロトコルは、ＯＮＦｉメモリインタフェースプロトコルであり、
前記第２のメモリインタフェースプロトコルは、ＨＬＮＡＮＤメモリインタフェースプロトコルである、請求項１に記載のデュアルインタフェースメモリコントローラ。
【請求項１６】
不揮発性メモリシステムであって、
ホスト装置からの要求に応答して、第１のメモリインタフェースプロトコルピン配列に対応する第１の信号経路への信号をバッファリングすること、又は、第２のメモリインタフェースプロトコルピン配列に対応する第２の信号経路への信号をバッファリングすることを選択的に可能にする回路が構成された少なくとも１つの入／出力ポートを有するチャネル制御モジュールを含むメモリコントローラと、
前記少なくとも１つの入／出力ポートを通して前記チャネル制御モジュールと通信する前記第１のメモリインタフェースプロトコルピン配列又は第２のメモリインタフェースプロトコルピン配列のうちのいずれかを有する少なくとも１つのメモリと、
を備える、不揮発性メモリシステム。
【請求項１７】
前記少なくとも１つの入／出力ポートを前記少なくとも１つのメモリ素子に電気的に接続するチャネルを更に含む、請求項１６に記載の不揮発性メモリシステム。
【請求項１８】
前記少なくとも１つのメモリは、前記チャネルに並列接続された少なくとも２つのメモリチップを含む、請求項１７に記載の不揮発性メモリシステム。
【請求項１９】
前記少なくとも１つのメモリは、前記チャネル制御モジュールとリングトポロジ構成で直列接続された少なくとも２つのメモリチップを含む、請求項１７に記載の不揮発性メモリシステム。
【請求項２０】
前記第１のメモリインタフェースプロトコルピン配列は、ＯＮＦｉメモリインタフェースピン配列に対応し、
前記第２のメモリインタフェースプロトコルピン配列は、ＨＬＮＡＮＤメモリインタフェースピン配列に対応する、請求項１６に記載の不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１２年９月１９日に出願された米国仮特許出願第６１／７０２，８４６号明細書、２０１２年１０月１２日に出願された米国仮特許出願第６１／７１３，００８号明細書、及び米国特許出願第１３／８３５，９６８号明細書の利益を主張するものであり、これらを参照により本明細書に援用する。
【０００２】
本開示は、一般的にはメモリシステムに関する。より詳細には、本願は不揮発性メモリコントローラに関する。
【背景技術】
【０００３】
今日、多くの電子装置は、装置によって利用される情報（データ）の記憶に利用されるメモリシステムを含む。例えば、幾つかのデジタルオーディオプレーヤは、プレーヤによって再生し得るデジタルオーディオの記憶に使用されるメモリシステムを含む。同様に、パーソナルコンピュータシステムは多くの場合、メモリシステムを利用して、コンピュータシステムによって利用されるソフトウェアを記憶する。
【０００４】
多くの電子装置では、メモリシステムは多くの場合、コントローラと、１つ又は複数のメモリ素子とを備える。コントローラは通常、情報を記憶し検索するようにメモリ素子に命令するのに使用される信号を生成するように構成される回路を含む。メモリ素子は通常、メモリ素子に含まれるメモリに情報を記憶する。メモリは、揮発性であってもよく、又は不揮発性であってもよい。揮発性メモリを含むメモリ素子は多くの場合、電力が素子からなくなった場合、記憶されていた情報を失う。不揮発性メモリを含むメモリ素子は多くの場合、電力が素子からなくなる場合であっても、記憶されている情報を保持する。
【０００５】
特定の従来のメモリシステムでは、データ信号及び制御信号は、並列バスを使用してコントローラとメモリ素子との間を転送される。多くの場合、多くのワイヤを使用して、バスを実施し、メモリシステムのレイアウトに応じて、ワイヤは幾らかの長さに延び得る。
【０００６】
電子機器は、例えば、メモリ素子等の半導体素子を使用する。メモリ素子は、データ又は情報を記憶するランダムアクセスメモリ（ＲＡＭ）、フラッシュを含み得る。メモリ素子を結合して、記憶装置（例えば、固体状態ドライブ（ＳＳＤ））として形成することができる。
【発明の概要】
【課題を解決するための手段】
【０００７】
本開示の第１の態様によれば、デュアルインタフェースメモリコントローラが提供される。このデュアルインタフェースメモリコントローラは、メモリインタフェースと、ホストインタフェースとを含む。メモリインタフェースは、少なくとも１つのメモリインタフェースポートを含み、このメモリインタフェースポートは、少なくとも、第１のメモリインタフェースプロトコルでの通信に準拠した第１の信号又は第１のメモリインタフェースプロトコルとは異なる第２のメモリインタフェースプロトコルでの通信に準拠した第２の信号をバッファリングするように構成される回路を含む。ホストインタフェースは、ホスト装置とメモリインタフェースとの間で情報を通信するホストインタフェースポートを含む。一実施形態によれば、第１のメモリインタフェースプロトコルは、ＯＮＦｉメモリインタフェースプロトコルであり、第２のメモリインタフェースプロトコルは、ＨＬＮＡＮＤメモリインタフェースプロトコルである。第１の態様の一実施形態によれば、デュアルインタフェースメモリコントローラは、印加される電圧レベルに応答して、第１の信号の経路又は第２の信号の経路をイネーブルするモードセレクタ回路を更に含む。この実施形態では、モードセレクタ回路に電気的に結合されて、印加される電圧レベルを受け取るパッドを更に含む。この実施形態では、回路は、第１の信号をバッファリングするように構成される第１の信号経路と、第２の信号をバッファリングするように構成される第２の信号経路とを含む。少なくとも１つのメモリインタフェースポートは単一のパッドを含むことができ、第１の信号経路は、第１のメモリインタフェースプロトコルに対応する入力信号を単一のパッドから受信するように構成される入力回路を含む。
【０００８】
本実施形態の一態様では、入力回路は第１の入力回路であり、第２の信号経路は、第２のメモリインタフェースプロトコルに対応する別の入力信号を単一のパッドから受信するように構成される第２の入力回路を含む。デュアルインタフェースメモリコントローラは、モードセレクタ回路によって提供される第１の論理状態及び第２の論理状態のうちの一方を有する選択信号に応答して、単一のパッドを第１の入力回路又は第２の入力回路のうちの一方に選択的に結合するセレクタ回路を更に含むことができる。本実施形態の別の態様では、第２の信号経路は、第２のメモリインタフェースプロトコルに対応する出力信号を単一のパッドに提供するように構成される出力回路を含み、回路は、第３の信号をバッファリングするように構成される第３の信号経路を含み、第３の信号は、第１のメモリインタフェースプロトコルに対応する。この実施形態では、第３の信号経路は、メモリインタフェースプロトコルに対応する出力信号を単一のパッドに提供するように構成される出力回路を含む。さらに、少なくとも１つのメモリインタフェースポートは、第１の論理状態の選択信号によってイネーブルされて、出力信号で単一のパッドを駆動する出力駆動回路を含むことができ、セレクタ回路は、選択信号が第１の論理状態である場合、単一のパッドを第２の入力回路に結合する。
【０００９】
本態様の別の実施形態では、第１の信号経路は、第１のメモリインタフェースプロトコルに対応する出力信号を単一のパッドに提供するように構成される出力回路を含む。出力回路は第１の出力回路であり、第２の信号経路は、第２のメモリインタフェースプロトコルに対応する別の出力信号を単一のパッドに提供するように構成される第２の出力回路を含む。デュアルインタフェースメモリコントローラは、モードセレクタ回路によって提供される第１の論理状態及び第２の論理状態のうちの一方を有する選択信号に応答して、単一のパッドを第１の出力回路又は第２の出力回路のうちの一方に選択的に結合するセレクタ回路を更に含むことができる。
【００１０】
本開示の第２の態様によれば、メモリコントローラと、少なくとも１つのメモリとを含む不揮発性メモリシステムが提供される。メモリコントローラは、ホスト装置からの要求に応答して、第１のメモリインタフェースプロトコルピン配列及び第２のメモリインタフェースプロトコルピン配列のうちの一方に対応する信号をバッファリングする回路が構成される少なくとも１つの入／出力ポートを有するチャネル制御モジュールを含む。少なくとも１つのメモリは、少なくとも１つの入／出力ポートを通してチャネル制御モジュールと通信する第１のメモリインタフェースプロトコルピン配列又は第２のメモリインタフェースプロトコルピン配列のうちのいずれかを有する。第２の態様の一実施形態では、少なくとも１つの入／出力ポートを少なくとも１つのメモリ素子に電気的に接続するチャネルが更に含まれる。この実施形態では、少なくとも１つのメモリは、チャネルに並列接続される少なくとも２つのメモリチップを含む。代替的には、少なくとも１つのメモリは、チャネル制御モジュールとリングトポロジ構成で直列接続される少なくとも２つのメモリチップを含む。第２の態様の別の実施形態によれば、第１のメモリインタフェースプロトコルピン配列は、ＯＮＦｉメモリインタフェースピン配列に対応し、第２のメモリインタフェースプロトコルピン配列は、ＨＬＮＡＮＤメモリインタフェースピン配列に対応する。
【００１１】
本開示の他の態様及び特徴は、添付図と併せて特定の実施形態の以下の説明の検討から当業者に明らかになるだろう。
【００１２】
本開示の実施形態について、添付図を参照して単なる例としてこれより説明する。
【図面の簡単な説明】
【００１３】
【図１】本開示の実施形態が適用されるメモリシステムのブロック図である。
【図２Ａ】第１のタイプのメモリコントローラの機能ピン配列を示すブロック図である。
【図２Ｂ】第２のタイプのメモリコントローラの機能ピン配列を示すブロック図である。
【図３Ａ】マルチドロップメモリシステムを示す概略図である。
【図３Ｂ】直列接続されたメモリシステムを示す概略図である。
【図４】本開示の一実施形態による、デュアルモードピン配列メモリコントローラを使用する固体状態記憶素子のブロック図である。
【図５】本開示の一実施形態による、図４に示されるデュアルピン配列メモリコントローラのメモリインタフェースブロックのブロック図である。
【図６】本開示の一実施形態による、デュアルピン配列メモリコントローラを使用するマルチドロップバスアーキテクチャメモリシステムのブロック図である。
【図７】本開示の一実施形態による、デュアルピン配列メモリコントローラを使用する直列ポイントツーポイントアーキテクチャメモリシステムのブロック図である。
【図８】本開示の一実施形態による、図７及び図８に示されるメモリインタフェースブロックのチャネル制御モジュールのブロック図である。
【図９】本開示の一実施形態による、デュアルピン配列チャネル制御モジュールのポートに信号をマッピングするデュアルピン配列の図である。
【図１０】本開示の一実施形態による、モード選択インタフェース回路の回路概略図である。
【図１１】本開示の一実施形態による、デュアルモード双方向インタフェース回路の回路概略図である。
【図１２】本開示の一実施形態による、デュアルモード出力インタフェース回路の回路概略図である。
【図１３】本開示の一実施形態による、代替のデュアルモード双方向インタフェース回路の回路概略図である。
【図１４】本開示の一実施形態による、デュアルモード入力インタフェース回路の回路概略図である。
【発明を実施するための形態】
【００１４】
一般に、本開示は、データ記憶装置のメモリコントローラを提供し、このメモリコントローラは、異なる各タイプのメモリ素子とインタフェースする少なくとも２つの異なるピン配列割り当てを有するように構成可能である。各ピン配列割り当ては、特定のメモリインタフェースプロトコルに対応する。メモリコントローラの各メモリインタフェースポートは、使用される、選択されたメモリインタフェースプロトコルに基づいて、異なる機能信号割り当てに向けて構成可能なインタフェース回路を含む。各メモリインタフェースポートのインタフェース回路構成は、メモリコントローラの所定のポート又はレジスタを設定することによって選択可能である。
【００１５】
フラッシュメモリは、例えば、デジタルカメラ及びポータブルデジタル音楽プレーヤ等の消費者電子装置の大容量記憶装置として広く使用されている一般に使用されているタイプの不揮発性メモリである。そのようなフラッシュメモリは、メモリカード又はユニバーサルシリアルバス（ＵＳＢ）タイプのメモリスティックの形態をとり、それぞれ、少なくとも１つのメモリ素子と、内部に形成されるメモリコントローラとを有する。別の大容量記憶装置用途は、コンピュータハードディスクドライブの代わりとして使用することができる固体状態ドライブ（ＳＳＤ）である。これらの固体状態ドライブは、コンピュータワークステーション、ネットワークで使用することができ、大量のデータを記憶する必要がある略あらゆる用途で使用することができる。
【００１６】
図１は、例えば、本開示の実施形態が適用される不揮発性メモリシステム等のシステムを示す。図１を参照すると、不揮発性メモリシステム１０は、外付けデバイス又は装置としてデータ記憶装置１２及びホスト１４を含む。データ記憶装置１２の非限定的な例は固体状態ドライブ（ＳＳＤ）である。ホスト１４の非限定的な例はコンピュータ又は他の計算システムである。
【００１７】
データ記憶装置１２は、メモリコントローラ１６と、メモリ１８とを含む。メモリ１８は、揮発性メモリ素子又は例えば、フラッシュメモリ素子等の不揮発性メモリ素子を含む。メモリ１８は、従来の回転式磁気記憶ディスクを含み得る。ホスト１４は、インタフェースプロトコルバス２０を介してデータ記憶装置１２に結合され、インタフェースプロトコルを使用してメモリコントローラ１６と通信する。インタフェースプロトコルは、例えば、周辺構成要素相互接続エクスプレス（ＰＣＩ−Ｅ）プロトコル、アドバンストテクノロジーアタッチメント（ＡＴＡ）プロトコル、直列ＡＴＡ（ＳＡＴＡ）プロトコル、並列ＡＴＡ（ＰＡＴＡ）プロトコル、又は直列接続ＳＣＳＩ（ＳＡＳ）プロトコルを含む。しかし、ホスト１４とデータ記憶装置１２との間のインタフェースプロトコルは、上記例に限定されず、ユニバーサルシリアルバス（ＵＳＢ）プロトコル、マルチメディアカード（ＭＭＣ）プロトコル、エンハンストスモールディスクインタフェース（ＥＳＤＩ）プロトコル、統合ドライブ電子回路（ＩＤＥ）プロトコル等の他のインタフェースプロトコルを含み得る。インタフェースプロトコルバス２０は、ホスト１４とメモリコントローラ１６との間でデータ及びコマンドを転送し、ピン、ポート、及び他の物理的インタフェースの形態を有する。データ記憶装置１２は、例えば、従来のＨＤＤ（ハードディスクドライブ）フォームファクタ、ＰＣＩｅ  ＰＣＢカードフォームファクタ、プラグインモジュール（例えば、ＤＩＭＭ）フォームファクタ、又はポータブルメモリカード（例えば、セキュアデジタル（ＳＤ）カード若しくはＭＭＣ）フォームファクタを含め、任意のタイプのフォームファクタを有し得る。
【００１８】
この例示的な構成では、メモリ１８は、例えば、少なくとも１つのＮＡＮＤフラッシュメモリ素子を含むが、ＮＡＮＤフラッシュメモリに限定されない。メモリ１８は、相転移ランダムアクセスメモリ（ＰＣＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲｅＲＡＭ）、強誘電性ＲＡＭ（ＦｅＲＡＭ）、又は他のタイプのメモリを含み得る。メモリ１８は、フラッシュメモリ素子である場合、例えば、フローティングゲート技術又は電荷捕捉フラッシュ（ＣＴＦ）技術を使用するＮＡＮＤフラッシュメモリ素子であり得る。
【００１９】
メモリコントローラ１６はメモリプロトコルバス２２に結合される。メモリコントローラ１６は、メモリプロトコルを使用してコマンド及びデータをメモリ１８と通信するインタフェースを含む。データ記憶装置１２でメモリ１８として使用されるメモリの特定のタイプに応じて、特定のタイプのメモリに固有の特定のプロトコルが使用される。したがって、メモリコントローラ１６は、使用されているメモリ１８のタイプによって決まる特定のプロトコルを使用してメモリ１８と通信するように構成される。例えば、異なるタイプの上記不揮発性メモリのそれぞれは、コマンド動作コードが異なり得、制御信号のタイプが異なり得、データフォーマットが異なり得る、異なる通信プロトコルを有し得る。手短に言えば、異なるメモリの通信プロトコルは互いに非互換である。したがって、データ記憶装置１２で使用される、異なるタイプのメモリ１８とインタフェースするために、異なるメモリコントローラが必要である。したがって、データ記憶装置１２の製造費は、特定のタイプのメモリ１８と通信するようにそれぞれ構成される異なるメモリコントローラ１６を使用しなければならないため、増大する。したがって、１つの特定のタイプのデータ記憶装置１２が消費者から嫌われる場合、又は特定のタイプのメモリ１８がもはや生産されない場合、データ記憶装置の製造業者のリスクが増大する。
【００２０】
データ記憶装置のメモリコントローラは、例えば、物理的なピン等のポートを使用して、信号をホスト装置及び少なくとも１つのメモリ素子に電気的に結合する。ＵＳＢメモリスティック及びＳＳＤ等の固体状態記憶装置のメモリコントローラは通常、複数のチャネルを有し、各チャネルは少なくとも１つのメモリ素子に電気的に接続される。
【００２１】
図２Ａは、特定のメモリインタフェースプロトコルの一例であるＯＮＦｉメモリインタフェースプロトコル用に構成されたメモリコントローラ３０の機能ピン配列を示す。図２Ａの例では、１つのチャネルのポートが示される。表１は、図２Ａに示されるポートの信号説明を提供する。
【００２２】
【表１】
0006386460.tif 000002
【００２３】
ここで示される例では、８ビット幅データ信号に８個のポートが必要であり、ＯＮＦｉフラッシュメモリ素子の動作をイネーブルするために必要な制御信号の搬送に９個のポートが必要である。したがって、合計で１７個のポートが、チャネルを少なくとも１つのＯＮＦｉフラッシュメモリ素子に接続するために必要である。メモリコントローラ３０が８つのチャネルを含む場合には、メモリコントローラ３０は少なくとも８×１７＝１３６個のポートを必要とする。これは、ホストシステムとインタフェースするために必要なポートを除く。
【００２４】
図２Ｂは、選択されるメモリインタフェースプロトコルの一例である別のプロトコルで動作中の別のタイプのメモリ素子用に構成されるメモリコントローラ３２の機能ピン配列を示す。選択されるメモリインタフェースプロトコルの一例は、ＨＬＮＡＮＤ（商標）メモリインタフェースプロトコルである。メモリ素子は、別のタイプのメモリインタフェースプロトコルで動作し得る。図２Ｂの例では、１つのチャネルのポートが示される。表２は、図２Ａに示されるポートの信号説明を提供する。
【００２５】
【表２】
0006386460.tif 000003
【００２６】
ここで示される例では、Ｑ０〜Ｑ７データ出力に８個のポートが必要であり、Ｄ０〜Ｄ７データ入力に８個のポートが必要であり、ＨＬＮＡＮＤフラッシュメモリ素子の動作をイネーブルするために必要な制御信号の搬送に８個のポートが必要である。したがって、合計で２４個のポートが、チャネルを少なくとも１つのＨＬＮＡＮＤフラッシュメモリ素子に接続するために必要である。メモリコントローラ３２が８つのチャネルを含む場合には、メモリコントローラ３２は少なくとも８×２４＝１９２個のポートを必要とする。これは、ホストシステムとインタフェースするために必要なポートを除く。
【００２７】
ＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコルの特定の信号名及び機能は、互いに同様に見えることがあるが、使用される様式及びメモリ素子がメモリコントローラに相互接続される様式は、互いに非常に異なる。この違いを図３Ａ及び図３Ｂに示す。
【００２８】
図３Ａは、ＯＮＦｉ  ＮＡＮＤフラッシュ素子を使用する不揮発性メモリシステムの一例を示す。メモリシステムは、ＯＮＦｉ構成メモリコントローラ４０と、幾つかのＯＮＦｉフラッシュ素子４２、４４、及び４６とを含む。各フラッシュメモリ素子内のチップ選択（ＣＥ＃）信号を除く全ての入力信号及び出力信号は、共通のバス又はチャネルに接続される。したがって、ＯＮＦｉフラッシュ素子４２、４４、及び４６は、メモリコントローラ４０に並列接続され、マルチドロップ構成とも呼ばれる。各ＯＮＦｉ  ＮＡＮＤフラッシュメモリ素子は、ＣＥ＃信号をイネーブルすることによって選択することができる。例えば、第１のＯＮＦｉフラッシュ素子４２は、ＣＥ＃＿１をアサートする（ＣＥ＃＿１＝ロー）ことによって選択しアクセスすることができる。残りのＯＮＦｉフラッシュ素子は、ＣＥ＃＿２及びＣＥ＃＿Ｎをハイに保持することにより、選択されず、したがってそして、メモリコントローラ４０からのコマンド又はアドレスのようなあらゆる入力を無視する。選択されていないＯＮＦｉフラッシュ素子の出力信号もハイインピーダンス（すなわち、Ｈｉ−Ｚ）状態に設定される。
【００２９】
ＯＮＦｉフラッシュ素子４２、４４、及び４６のそれぞれは、同じ電気信号を使用して、チャネル制御モジュールを通るＯＮＦｉフラッシュ素子とホストコントローラ装置（図示せず）との間でのコマンド及びデータの転送を調整する。ここで示される例では、１つのチャネル制御モジュールのポートが図３Ａに示される。それらの信号は、先に表１に示されたようなＡＬＥ（アドレスラッチイネーブル）、ＣＬＥ（コマンドラッチイネーブル）、ＷＥ＃（書き込みイネーブル）、ＲＥ＃（読み出しイネーブル）等のデータ線及び制御信号を含む。このタイプのインタフェースプロトコルは、当技術分野において「ＯＮＦｉ  ＮＡＮＤインタフェース」として知られている。「ＮＡＮＤインタフェースプロトコル」は、今日まで、標準化団体によって正式に標準化されていないが、それでも、ＮＡＮＤフラッシュ素子の製造業者は全て、ＮＡＮＤフラッシュ機能の基本サブセットのサポートに同様のプロトコルに従っている。これは、電子製品内のＮＡＮＤフラッシュメモリ素子を使用する顧客が、ハードウェア又はソフトウェアを特定のベンダーの素子と共に動作するように仕立てる必要なく、任意の製造業者からのＮＡＮＤフラッシュメモリ素子を使用することができるように行われる。幾つかのＮＡＮＤフラッシュメモリベンダーが、基本機能が提供されて、他のベンダーによって使用されるプロトコルとの互換性を提供することを保証しながら、この機能基本サブセットを超える追加の機能を提供可能なことに留意する。
【００３０】
図３Ｂは、ＨＬＮＡＮＤフラッシュメモリ素子を使用する不揮発性メモリシステムの一例を示す。メモリシステムは、ＨＬＮＡＮＤ（商標）構成のメモリコントローラ６０と、幾つかのＨＬＮＡＮＤ互換性フラッシュ素子６２、６４、６６、及び６８とを含む。図３Ｂを参照すると、ＨＬＮＡＮＤメモリ素子６２、６４、６６、及び６８は高度に多重化された単方向ポイントツーポイントバスアーキテクチャを使用して、コマンド、アドレス、及びデータ等の情報を転送する。メモリ素子間のこれらのコマンド、アドレス、及びデータの各相互接続は「リンク」と呼ばれる。一例では、単一のリンクは、２つの差動クロック入力信号ＣＫＩ／ＣＫＩ＃、クロック出力信号ＣＫＯ／ＣＫＯ＃、並びに任意選択的な共通信号ＣＥ＃（チップイネーブル）及びＲＳＴ＃（リセット）と共に、６個の信号：ＣＳＩ（＝コマンドストローブ入力）、ＣＳＯ（＝コマンドストローブ出力）、ＤＳＩ（＝データストローブ入力）、ＤＳＯ（＝データストローブ出力）、Ｄ［０：７］（＝データ入力）、及びＱ［０：７］（＝データ出力）からなる。
【００３１】
以下は、これらの制御信号のうちの幾つかが図３Ｂのメモリシステムで使用される方法の手短な考察である。ＣＫＩ／ＣＫＩ＃は入力クロックである。ＣＳＩで表されるＤ［０：７］ポートでのコマンド／アドレスパケットは、ＣＫＩの立ち上がりエッジ又はＣＫＩ＃の立ち下がりエッジでラッチされる。ＤＳＩで表されるＤ［０：７］での書き込みデータパケットは、ＣＫＩの立ち上がりエッジ又はＣＫＩ＃の立ち下がりエッジでラッチされる。ＤＳＯで表されるＱ［０：７］での読み出しデータパケットは、ＣＫＯの立ち上がりエッジ又はＣＫＯ＃の立ち下がりエッジで参照される。ＣＫＯ／ＣＫＯ＃は、ＣＫＩ／ＣＫＩ＃を遅延させたものである出力クロックである。
【００３２】
ＣＳＯ、ＤＳＯ、及びＱ［０：７］信号は、ＣＫＯの立ち上がりエッジ又はＣＫＯ＃の立ち下がりエッジを参照する。コマンドストローブ入力（＝ＣＳＩ）がハイである場合、Ｄ［０：７］を通るコマンド／アドレスパケットは、ＣＫＩの立ち上がりエッジ又はＣＫＩ＃の立ち下がりエッジでラッチされる。コマンドストローブ出力（＝ＣＳＯ）は、ＣＳＩのエコー信号である。これは、ＣＫＯの立ち上がりエッジ又はＣＫＯ＃の立ち下がりエッジを参照して１クロックサイクル待ち時間（＝ｔＩＯＬ）分、ＣＳＩ遷移を迂回（＝エコー）する。１クロックサイクル待ち時間は、本開示での例示的な実施形態の１つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであることができる。
【００３３】
ＨＬＮＡＮＤ互換性メモリ素子が「読み出しモード」である間、データストローブ入力（＝ＤＳＩ）がハイである場合、読み出しデータ出力経路及びＱ［０：７］バッファがイネーブルされる。ＤＳＩがローである場合、Ｑ［０：７］バッファは、アクセスされた前のデータを保持する。メモリ素子が「書き込みモード」である間、ＤＳＩがハイである場合、ＤＳＩはＤ［０：７］バッファをイネーブルし、ＣＫＩの立ち上がりエッジ又はＣＫＩ＃の立ち下がりエッジで書き込みデータパケットを受信する。
【００３４】
データストローブ出力（＝ＤＳＯ）はＤＳＩのエコー信号である。これは、ＣＫＯの立ち上がりエッジ又はＣＫＯ＃の立ち下がりエッジを参照して１クロックサイクル待ち時間（＝ｔＩＯＬ）分、ＤＳＩ遷移を迂回するか、又はエコーする。１クロックサイクル待ち時間は、本開示での例示的な実施形態の１つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであることができる。
【００３５】
データ入力信号Ｄ［０：７］は、コマンド、アドレス、及び／又は入力データ情報を搬送し、一方、データ出力信号Ｑ［０：７］は、読み出し動作中、出力データを搬送するか、Ｄ［０：７］上で受信したコマンド、アドレス、若しくは入力データを迂回させる。
【００３６】
メモリコントローラ６０は、ポートＣＫＯ／ＣＫＯ＃から差動クロックを駆動し、全てのＨＬＮＡＮＤ互換性メモリ素子６２、６４、６６、及び６８は、各自のクロックポートＣＫＩ／ＣＫＩ＃を通して、一連のフロースルー様式で前のＣＫＯ／ＣＫＯ＃ポートから差動クロックバスを受信する。メモリコントローラ６０は、そのポートＣＳＯ、ＤＳＯ、及びＱ［０：７］のそれぞれを通して３つの異なるバス７０、７２、及び７４を駆動する。第１のメモリ素子６２は、そのポートＣＳＩ、ＤＳＩ、及びＤ［０：７］のそれぞれを通して３つのバス７０、７２、及び７４を受信する。そして、第１のメモリ素子６２は、１クロックサイクル待ち時間（＝ｔＩＯＬ）で、その出力ポートＣＳＯ、ＤＳＯ、及びＱ［０：７］のそれぞれを通して３つの対応するバス７６、７８、及び８０を再駆動する。連続したメモリ素子へのこのパターンの信号の受信及び再駆動は、メモリコントローラの入力ポートＣＳＩ、ＤＳＩ、及びＤ［０：７］のそれぞれを通して、最後のメモリ素子６８が最後のバス８２、８４、及び８６を再びメモリコントローラ６０に再駆動するまで続けられる。本例では、メモリ素子６８のＣＳＯポートからの信号を再駆動することは必ずしも必要なく、したがって、メモリコントローラ６０のＣＳＩ入力ポートを省略し得、最後のバス８４は必要ない。
【００３７】
ＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコルが互いに十分に異なり、ＯＮＦｉメモリインタフェースプロトコル用に構成された任意のメモリコントローラが、ＨＬＮＡＮＤメモリ素子では機能せず、逆もまた同様であることが当業者には明らかなはずである。上述したＯＮＦｉ及びＨＬＮＡＮＤメモリシステムは、互いに互換性がない２つの異なるタイプのメモリインタフェースプロトコルの単なる例である。上述した任意のメモリ素子タイプは、各タイプが異なるメモリ素子タイプとは機能しない特定のメモリインタフェースプロトコルを必要とするため、互いとの互換性を有する可能性はかなり低い。
【００３８】
異なるタイプの利用可能なメモリ素子に鑑みて、製造業者は、異なるタイプのメモリ素子に基づいて異なるデータ記憶装置装置を設計し得る。例えば、データ記憶装置に基づく従来のＮＡＮＤフラッシュメモリ素子は、従来のＮＡＮＤフラッシュメモリ素子の可用性及び低コストに起因して、一般に入手可能である。例として、これらはＯＮＦｉタイプフラッシュメモリ素子であることができる。不都合なことに、図３Ａに示されるＯＮＦｉタイプフラッシュメモリシステムのマルチドロップ構成は、システムの全体速度及び全体性能を低下させずに、メモリコントローラ４０の１つのチャネルに並列接続可能な有限数のメモリ素子を有する。これは、バスに接続される各メモリ素子の累積ロード効果によるものである。したがって、そのようなデータ記憶装置のコストは低くし得るが、最大記憶密度も比較的低くなる。
【００３９】
他方、ＨＬＮＡＮＤタイプのメモリ素子は、マルチドロップ構成のメモリシステムの制限を有さない。例として図３Ｂに示されるようなＨＬＮＡＮＤメモリシステムでは、任意の数のメモリ素子を、メモリコントローラ６０の１つのチャネルを用いて互いに直列接続することができる。したがって、ＨＬＮＡＮＤタイプのメモリ素子を使用するデータ記憶装置の総合記憶密度は非常に高くなり得る。
【００４０】
製造業者が直面する問題は、異なるタイプのデータ記憶装置を生産するために、特定のタイプのメモリ素子又は特定のメモリインタフェースプロトコル用に構成された異なるメモリコントローラを購入する必要があることである。コストリスクを軽減するために、別個のポートが、選択されたタイプのメモリ素子への接続に利用可能である場合、２つ以上のメモリインタフェースプロトコルと動作するように構成されたメモリコントローラが可能である。不都合なことに、別個の組のポートを提供することは、メモリコントローラパッケージで必要とされるポート数に起因して、非現実的になる。例えば、先に考察したＯＮＦｉ及びＨＬＮＡＮＤメモリコントローラの例をとる。８チャネルＯＮＦｉインタフェースが、ＯＮＦｉ  ＮＡＮＤ信号のみに対して合計で１３６個のポートを必要とし、８チャネルＨＬＮＡＮＤメモリコントローラインタフェースが合計で１９２個のポートを必要とする場合、いずれかのインタフェースプロトコルで動作するように構成されるメモリコントローラは３２８個のポートを必要とする。メモリコントローラパッケージサイズが、ポートの数によって占められることが当業者には理解されるはずである。したがって、３２８個のポートを有するパッケージは、１３６個のポート又は１９２個のポートを有するパッケージよりも、面積の点ではるかに大きくなりがちである。
【００４１】
本開示の一実施形態によれば、チャネルごとに１組のポートを使用して２つの異なるメモリインタフェースプロトコルのうちの少なくとも一方で動作するように構成可能なメモリコントローラが提供される。チャネルのポートは、少なくとも２つの異なる機能割り当てにマッピングされ、各機能割り当ては、メモリインタフェースプロトコルに固有の信号に対応する。各ポートは、メモリ素子への信号導線に電気的に接続するパッドと、少なくとも２つの機能割り当てのそれぞれのバッファ回路とを含む。各ポートの異なるバッファ回路は、使用される選択されたメモリインタフェースプロトコルに基づいて選択的にイネーブルされる。
【００４２】
本開示の一実施形態によるデュアルモードピン配列メモリコントローラを使用する固体状態記憶装置のブロック図を図４に示す。固体状態記憶装置１００は、デュアルモードピン配列メモリコントローラ１０２と、メモリ１０４とを含む。特定の実施形態では、メモリ１０４は、ＯＮＦｉフラッシュメモリ素子又はＨＬＮＡＮＤフラッシュメモリ素子等の不揮発性メモリを含む。本実施形態では、任意のタイプのメモリ素子をメモリ１０４として使用することができる。本文脈では、メモリ１０４はメモリ素子を含む。
【００４３】
コントローラ１０２は、固体状態記憶装置１００の全体動作を制御するとともに、ホストとメモリ１０４との間でのデータ交換を制御する。例えば、コントローラ１０２は、ホスト（図示せず）からの要求に応答して、メモリ１０４を制御して、データを書き込むか、又は読み出す。コントローラ１０２は、例えば、不揮発性メモリの特性又はメモリ１０４の効率管理のために必要な性能制御、統合及び摩耗平準化等の内部動作も制御する。コントローラ１０２は、メモリ１０４の動作を制御するファームウェア及び／又はソフトウェアを駆動し、これはフラッシュ変換層（ＦＴＬ）（図示せず）と呼ばれる。コントローラ１０２は、メモリ１０４を制御して、ホストからの要求に基づいて、メモリ装置１０４に含まれる複数の不揮発性メモリの中から幾つかのメモリの動作を制御し得る。メモリ１０４は、データを記憶する記憶媒体を提供する。メモリ１０４が少なくとも不揮発性メモリ装置である場合、データは不揮発的に記憶される。例えば、不揮発性メモリ装置は、オペレーティングシステム（ＯＳ）、様々なプログラム、及び様々なマルチメディアデータを記憶し得る。
【００４４】
この基本動作モードでは、デュアルモードピン配列メモリコントローラ１０２は、ホストとメモリ１０４との間でのデータ交換を制御する。デュアルモードピン配列メモリコントローラ１０２は、ホストインタフェースブロック（ＨＩＢ）１０６、中央演算処理装置１０８、ランダムアクセスメモリ（ＲＡＭ）１１０、メモリインタフェースブロック（ＭＩＢ）１１２、読み取り専用メモリ（ＲＯＭ）１１４、及び誤り修正符号（ＥＣＣ）エンジン１１６を含み、これらはバス１１８を通して相互接続される。コントローラ１０２は、ソフトウェア又はファームウェアとして具現されるＦＴＬを動作させ得る。ＲＡＭ１１０は、コントローラ１０２内に統合されて示されているが、代替の実施形態では、コントローラ１０２の外部に配置することができる。
【００４５】
ホストインタフェースブロック１０６は、ホストインタフェースポートを介してホストから、データ、アドレス情報、外部コマンド、及びホストからの他の信号を受信する。これらは一般に情報と呼ばれる。アドレス情報、コマンド、及び任意の他の非データ関連信号は単に、制御情報と呼ぶことができる。ホストインタフェースブロック１０６も、同じ又は異なるホストインタフェースポートを介してデータ及びステータス情報をホストに送信する。これらのインタフェースポートは、ピン又は他の物理的なコネクタを含むことができる。ホストから受信された外部コマンドは、メモリコントローラ１０２の制御に使用される。ホストによって固体状態記憶装置１００に提供されるデータ及び他の情報は、データの入口としてホストインタフェースブロック１０６を通して、固体状態記憶装置１００の機能ブロック、例えば、バッファＲＡＭ１１０に入力される。固体状態記憶装置１００からホストに提供されるデータ及び他の情報も、データの出口としてホストインタフェースブロック１０６を通して提供される。
【００４６】
中央プロセッサ１０８は、ＲＯＭ１１４又はメモリ１０４からプログラムコードを読み出し、読み出されたプログラムコードに従って、コントローラ１０２内に含まれる全ての機能ブロックを制御する。プログラムコードは、中央プロセッサ１０８の動作を指定する。中央プロセッサ１０８は、読み出されたプログラムコードに基づいてメモリ１０４へのアクセスを制御する。一動作モードでは、メモリ１０４に記憶されているプログラムコードは、固体状態記憶装置１００がブートアップされるとき、メモリ１０４から読み出され、ＲＡＭ１１０に書き込まれる。
【００４７】
ＲＡＭ１１０は、プロセッサ１０８の動作メモリとして使用し得、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）等として具現し得る。ＲＡＭ１１０は、ホストから受信されるデータを一時的に記憶するバッファメモリとしても機能し得る。プロセッサ１０８は、メモリ１０４へのデータの書き込み動作又はメモリ１０４からのデータの読み出し動作の全体制御を実行する。また、プロセッサ１０８は、ホストからの要求に基づいて、ＦＴＬの動作を制御するか、又は他の様式で実行し得る。
【００４８】
ＥＣＣブロック１１６は、メモリ１０４に書き込まれるデータに関するＥＣＣ（誤り修正符号）を生成する。データは、データに関連するＥＣＣと共に記憶される。さらに、ＥＣＣブロック１１６は、読み出されたデータに関連付けられたＥＣＣに基づいて、メモリ１０４から読み出されたデータのビットエラーを検出して修正する。
【００４９】
ＲＯＭ１１４は、ホストとインタフェースするための符号データを記憶する。ＲＯＭ１１４に、メモリ１０４の制御に必要なファームウェアが記憶される。これに付随して、ブートに必要な最小のファームウェアをＲＯＭ１１４に記憶し得、他のファームウェアをメモリ１０４に記憶し得る。ＲＯＭは固定読み出し専用メモリであるため、他のファームウェアをメモリ１０２に記憶することにより、ファームウェアの更新が容易になる。中央プロセッサ１０８、ＲＡＭ１１０、ＲＯＭ１１４、ＥＣＣエンジン１１６、及びホスト又はＭＩＢ１１２から受信される情報の処理に必要な任意の他の回路をコア回路と呼ぶことができる。
【００５０】
メモリインタフェースブロック１１２は、シーケンスコードをＲＯＭ１１４又はメモリ１０４から読み出す。シーケンスコードは、メモリインタフェースブロック１１２によって実行される様々な動作を指定する。メモリインタフェースブロック１１２は、読み出されるシーケンスコードに基づいて様々な動作を実行する。シーケンスコードは、複数のコードセットで構成される。コードセットは複数のコードを含む。各コードセットは、それに対応する動作を指定する。シーケンスコードに基づいて実行される動作では、メモリインタフェースブロック１１２とメモリ１０４との間で、データ、アドレス情報、ステータス情報、内部コマンド等は内部メモリバス１２０を通して転送される。内部メモリバス１２０は、コントローラ１０２のポートをメモリ１０４の対応するポートに電気的に接続する信号導線を含む。内部メモリバス１２０は、複数のチャネルに対応する信号を搬送することができる。内部コマンドは、コントローラ１０２がメモリ１０４を制御するためのコマンドであり、メモリ装置１０４は内部コマンドに従って機能する。それに付随して、動作が実行される前、メモリ１０４に記憶されたシーケンスコードはメモリ１０４から読み出され、ＲＡＭ１１０に書き込まれる。
【００５１】
ＦＴＬは、データマッピング動作を実行するマッピングテーブル（図示せず）を含む。一般に、マッピングテーブルはＲＡＭ１１０に記憶される。マッピングテーブルでは、メモリ１０４にそれぞれマッピングされる複数の論理ページ番号（ＬＰＮ）が記録される。メモリ１０４が１つ又は複数のＮＡＮＤフラッシュメモリ素子として実施される例では、データはページ単位で読み出されるか、又は書き込まれる。したがって、ＬＰＮは、マッピング単位として使用し得る。
【００５２】
また、ＦＴＬは、ホストからの要求が書き込みコマンドであるか、それとも読み出しコマンドであるかに基づいて、メモリ１０４を制御し得、ホストによって提供される書き込みコマンド又は読み出しコマンドがメモリ１０４に対して実行されるときは常に、マッピングテーブルが更新されるようにマッピングテーブルを管理し得る。例えば、ホストからの要求が書き込みコマンドである場合、ＦＴＬは、ＬＰＮが記憶に対応するメモリ１０４のメモリ素子のうちの１つに書き込まれるデータを制御し、ＬＰＮ及び対応するメモリ素子をマッピングテーブルに書き込む。ホストからの要求が読み出しコマンドである場合、ＦＴＬは、マッピングテーブルに基づいて、ＬＰＮが記憶に対応する不揮発性メモリのうちの１つから読み出されるデータを制御する。
【００５３】
上述したように、メモリ１０４は複数の不揮発性メモリを含み得、各不揮発性メモリは、特定のメモリインタフェースプロトコルを用いて動作を実行するＮＡＮＤフラッシュメモリ素子として実施し得る。本実施形態によれば、異なるメモリインタフェースプロトコルを有する異なるタイプのメモリ素子は、同じデュアルピン配列メモリコントローラ１０２と併用することができる。本実施形態では、メモリインタフェースブロック１１２は、各チャネルの１つにポートセットを含み、少なくとも１つのポートは、２つのモードのうちの一方で機能するように動的に構成可能であり、各モードは異なるメモリインタフェースプロトコルに対応する。したがって、２つの異なるタイプのメモリ１０４は、いかなる追加のポートも必要なく、メモリインタフェースブロック１１２のチャネルに接続することができ、その理由は、両タイプのメモリ１０４を、バス１２０の信号線を介してチャネルの同じポートに接続可能なためである。
【００５４】
ポートは、専用又は既存のポートを正電源又は接地電源（ＶＤＤ又はＶＳＳ）のいずれかに接続することにより、２つのメモリインタフェースプロトコルのうちのいずれかで機能するように構成することができる。そのような技法は、２つのメモリインタフェースプロトコルのうちの一方を選択するのに有効であるが、メモリインタフェースブロック１１２は、任意の数のメモリインタフェースプロトコルを有するように構成可能であり得る。そのような実施形態では、ヒューズ又はアンチヒューズを飛ばすことにより、ｎ個の動作モードのうちの１つを選択するマルチビットコードを提供するように、レジスタを電気的にプログラムすることができ、又はレーザプログラムすることができる。代替的には、３つ以上のポートをＶＤＤ又はＶＳＳに接続して、ｎ個の動作モードのうちの１つを選択するマルチビットコードを提供することができる。これらの全ての実施形態では、各動作モードに必要なバッファ回路は、メモリインタフェースブロック１１２の各ポートに選択的に結合可能である。バス１１８から受信されるネイティブメモリコントローラ信号は、選択されたバッファ回路により、選択されたメモリインタフェースプロトコルに準拠するフォーマットに変換される。同様に、バス１２０から受信される信号は、選択されたバッファ回路により、ネイティブメモリコントローラ信号に変換される。
【００５５】
ポートバッファ回路の詳細を考察する前に、メモリインタフェースブロック１１２の編成についてまず、図５及び図８を参照して説明する。
【００５６】
図５は、図４に示されるデュアルピン配列メモリコントローラ１０２のメモリインタフェースブロック１１２のブロック図を示し、メモリインタフェースブロック１１２は、少なくとも１つのメモリ素子に接続される。メモリインタフェースブロック１１２は、最高でｎ個のチャネル制御モジュール（ＣＣＭ）２００を含み、ここで、ｎは０よりも大きい任意の整数値であることができる。各チャネル制御モジュール２００にはチャネルが関連付けられ、したがって、各チャネル制御モジュール２００は、チャネルバス２０４を介して少なくとも１つのメモリ素子２０２に接続される。チャネルバス２０４の集まりが図４に示されるバス１２０を形成することに留意する。同様に、全てのメモリ素子２０２は、図４に示されるメモリ１０４内に含まれる。メモリインタフェースブロック１１２は、ＶＤＤ又はＶＳＳにバイアスすることができるポートを含むモードセレクタ２０６を更に含む。図５では、モードセレクタポートをＶＤＤ又はＶＳＳに接続するオプションが、スイッチ手段２０８の包含によって示される。モードセレクタ２０６及びその対応するポートは代替的には、メモリインタフェースブロック１１２の外部、且つデュアルモードピン配列メモリコントローラ１０２内に配置することができる。ポートの接続に応答して、モードセレクタ２０６は、モード選択信号を各チャネル制御モジュールに提供する。
【００５７】
本実施形態によれば、各チャネル制御モジュール２００は１組のポートを含み、ポートのうちの少なくとも１つは、モード選択信号に応答して、２つの異なるモードのうちの少なくとも一方で機能するように構成可能なバッファ回路を含む。例として、メモリ素子２０２がＯＮＦｉタイプフラッシュメモリ素子である場合、メモリ素子２０２及びそのチャネル制御モジュールの相互接続構成は図３Ａに示されるように見える。他方、メモリ素子２０２がＨＬＮＡＮＤタイプフラッシュメモリ素子である場合、メモリ素子２０２及びそのチャネル制御モジュールの相互接続構成は、図３Ｂに示されるように見える。本実施形態によれば、ＯＮＦｉタイプフラッシュメモリ素子及びＨＬＮＡＮＤタイプフラッシュメモリ素子は両方とも、チャネル制御モジュール２００に接続することができる。
【００５８】
図６は、一実施形態によるデュアルピン配列メモリコントローラを有するマルチドロップバスアーキテクチャメモリシステムのブロック図である。より詳細には、図６は、マルチドロップアーキテクチャで構成される、図４の固体状態記憶装置１００の構成例を示す。デュアルピン配列メモリコントローラのメモリインタフェースブロック２２０は、複数のチャネル制御モジュール２２２−１〜２２２−Ｎを含み、各チャネル制御モジュールは、ＯＮＦｉ  ＣＨ−１〜ＯＮＦｉ  ＣＨ−Ｎとも呼ばれる各チャネル２２４−１〜２２４−Ｎを制御する。「Ｎ」が、基本数が指す要素の最後のユニットを示す整数であることに留意する。チャネルは不揮発性メモリ２２６に提供される。各チャネルと電気通信するのはメモリ素子２２８−１、２２８−２、及び２２８−Ｎであり、各メモリ素子は単一パッケージのメモリ素子であることができる。各メモリ素子は幾つかのＯＮＦｉ不揮発性ＮＡＮＤフラッシュメモリチップ２３０を含み、そのうちの１つのみが図６において注釈付与される。各ＯＮＦｉ  ＮＡＮＤフラッシュメモリチップ２３０は、関連付けられたチャネルと双方向通信して、チャネル制御モジュールから情報を受信するか、又は情報をチャネル制御モジュールに提供する。メモリ素子のメモリチップ２３０は、チャネルに並列接続される。
【００５９】
メモリインタフェースブロック２２０の各チャネル制御モジュール２２２−１〜２２２−Ｎは、不揮発性メモリ２２６、特に個々のメモリ素子２２８−１〜２２８−Ｎを制御するために、不揮発性メモリ２２６の各チャネルＯＮＦｉ  ＣＨ−１〜ＯＮＦｉ  ＣＨ−Ｎ専用である。例えば、一般にファームウェア及び／又はソフトウェアであるフラッシュ変換層（ＦＴＬ）は、チャネルＯＮＦｉ  ＣＨ−１〜ＯＮＦｉ  ＣＨ−Ｎに対応するチャネル制御モジュール２２２−１〜２２２−Ｎの動作を制御して、不揮発性メモリ２２６を制御し、ホストからの要求に基づいてチャネルＯＮＦｉ  ＣＨ−１〜ＯＮＦｉ  ＣＨ−Ｎに接続された様々なＯＮＦｉ  ＮＡＮＤフラッシュメモリチップ２３０をアクティブ化するか、又は非アクティブ化する。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【００６０】
ＨＤＤ交換のためのＳＡＴＡ又はＰＣＩｅに基づく固体状態ドライブ（ＳＳＤ）等の固体状態記憶システムに実施される多数の不揮発性フラッシュメモリ素子での記憶容量を増大させ、信号保全性を改善するために、代替のタイプのフラッシュメモリを使用することができる。フラッシュメモリの代替のタイプの一例は上述したＨＬＮＡＮＤフラッシュメモリである。ＨＬＮＡＮＤフラッシュメモリは、例えば、図３Ｂに示されるように、通常、メモリコントローラと共にリングトポロジで配置されるポイントツーポイント直列接続技術を使用する高度で高性能な同期不揮発性フラッシュメモリ素子である。
【００６１】
図７は、本実施形態による、図６のメモリシステムと同じデュアルピン配列メモリコントローラを有する直列ポイントツーポイントアーキテクチャメモリシステムのブロック図である。より詳細には、図７は、ＨＬＮＡＮＤフラッシュメモリを使用する直列ポイントツーポイントアーキテクチャで構成された、図４の固体状態記憶装置１００の構成例を示す。メモリインタフェースブロック２２０は、同じチャネル制御モジュール２２２−１〜２２２−Ｎを有する。図６の実施形態からの図７の実施形態の違いは、不揮発性メモリ２５０がＨＬＮＡＮＤフラッシュメモリ素子からなることである。図７に示されるように、不揮発性メモリ２５０はＨＬＮＡＮＤフラッシュメモリ素子２５２−１〜２５２−Ｎを含み、各ＨＬＮＡＮＤフラッシュメモリ素子は複数のＨＬＮＡＮＤメモリチップ２５４からなるパッケージ装置を含むことができ、複数のメモリチップのうちの１つのみに注釈が付与される。例えば、メモリ素子２５２−１等のメモリ素子の全てのＨＬＮＡＮＤメモリチップ２５４は、単方向ポイントツーポイント接続を介して互いに直列接続される。これらのポイントツーポイント接続は、一例では、素子の出力ピンを次の素子の入力ピンに接続させることによって形成される。したがって、この直列相互接続は、デイジーチェインカスケード接続又はチャネル制御モジュール２２２−１等のホストを有するリングトポロジ構成と呼ぶこともできる。
【００６２】
したがって、図６の実施形態との別の違いは、チャネル制御モジュール２２２−１〜２２２−Ｎがそれぞれ、ＨＬ  ＣＨ−１〜ＨＬＣＨ−Ｎとも呼ばれる各ＨＬＮＡＮＤチャネル２５６−１〜２５６−Ｎに接続されることである。各ＨＬＮＡＮＤチャネルは、入力サブチャネル２５８−１と、出力サブチャネル２６０−１とを含む。例としてチャネル制御モジュール２２２−１を参照すると、入力サブチャネル２５８−１は、データ及び制御情報を、チャネル制御モジュール２２２−１の出力端子から、メモリ素子２５２−１の直列接続されたメモリチップの最初のＨＬＮＡＮＤメモリチップ２５４に提供する１組の接続である。出力サブチャネル２６０−１は、データ及び制御情報を、メモリ素子２５２−１の直列接続されたメモリチップの最後のＨＬＮＡＮＤメモリチップ２５４から、チャネル制御モジュール２２２−１の入力端子に提供する１組の接続である。
【００６３】
したがって、このシステム内のチャネル制御モジュール２２２−１〜２２２−Ｎは、メモリ素子の最初のＨＬＮＡＮＤメモリチップ及び最後のＨＬＮＡＮＤメモリチップとインタフェースする必要があるだけである。その結果、マルチドロップ接続を使用するシステム内の複数のチップ間での物理的な距離差によって生じるクロックスキュー及びデータスキューの問題がない。さらに、メモリチップと対応するチャネル制御モジュールとの間でのポイントツーポイント接続の使用に起因して、通常、マルチドロップバスアーキテクチャに使用されるバス終端が必要ない。その結果、マルチドロップバスアーキテクチャを使用するフラッシュメモリシステムと比較して低い消費電力が実現される。
【００６４】
各メモリ素子のメモリチップに関連付けられた１つのチャネル制御モジュールがあるため、ＦＴＬは、チャネル制御モジュール２２２−１〜２２２−Ｎの動作を制御して、不揮発性メモリ２５０を制御し、図１のホスト１４等のホスト装置からの要求に基づいて、チャネルＨＬ  ＣＨ−１〜ＨＬ  ＣＨ−Ｎに対応する様々なＨＬＮＡＮＤフラッシュメモリチップ２５４をアクティブ化するか、又は非アクティブ化し得る。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【００６５】
図６及び図７の前に示された実施形態は、本開示による同じデュアルピン配列メモリコントローラを使用するメモリシステムを示す。不揮発性メモリ２２６及び２５０に使用されるＯＮＦｉ及びＨＬＮＡＮＤメモリタイプは、本開示のデュアルピン配列メモリコントローラと併用可能な２つの異なるタイプのメモリの単なる例である。デュアルピン配列メモリコントローラの異なる実施形態は、異なる入／出力インタフェースを有する現在既知のメモリ及び将来のメモリの組み合わせとインタフェースするように構成することができる。
【００６６】
図８は、図５に示されるチャネル制御モジュール２００のうちの１つのブロック図である。この特定の実施形態では、チャネル制御モジュール２００は、２つのメモリインタフェースプロトコルのうちの一方と共に動作するように構成可能である。説明のための例として、使用されている２つのメモリインタフェースプロトコルは、ＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコルである。
【００６７】
ここで示されている実施形態では、チャネル制御モジュール２００は、ＥＣＣエンコーダ３００と、ＥＣＣデコーダ３０２と、コマンドプロセッサ３０４と、アドレスプロセッサ３０６と、チャネル制御論理３０８と、データスクランブラ３１０と、データデスクランブラ３１２と、暗号化プロセッサ３１４と、ＥＤＣプロセッサ３１６と、デュアルメモリインタフェースモジュール３１８とを含む。デュアルメモリインタフェースモジュール３１８は、メモリ素子（図示せず）に電気的に結合される１組のポートを含む。上述した構成要素のうちの幾つかの機能については、図４のブロック図を更に参照して説明する。
【００６８】
一般に、チャネル制御モジュール２００を通してメモリ素子にプログラムされるデータには、誤り検出又は誤り修正符号が添付され、メインデータと共にメモリ素子のメモリセルアレイに記憶される。
【００６９】
チャネル制御モジュール２００は、この機能のためにＥＣＣエンコーダ３００を使用する。そのようなデータがメモリ素子から図４のＲＡＭ１１０に読み出されると、ＥＣＣデコーダ３０２は、データからＥＣＣ符号を再生成し、それを、メモリ素子にプログラムされたときにデータに添付されたＥＣＣコーダと比較する。データが書き込まれたデータと同一である場合、ＥＣＣ回路は、データエラーが存在しないことを示す。読み出されたデータに幾つかの違いが検出され、違いが、ＥＣＣの修正能力内にあるほど十分に小さい場合、読み出されたデータ（通常、ＲＡＭ１１０に含まれる）は、プロセッサ１０８によって制御されるように、ＥＣＣ修正エンジン１１６によって「修正」又は変更されて、元の値を復元する。データエラーがＥＣＣ修正能力を超える場合、「修正不可能」な読み出しエラーが発生する。通常、読み出し時、修正不可能な読み出しエラーにより、エラーステータスがホストインタフェースに返されることになる。
【００７０】
ホストが、ホストインタフェースブロック１０６を通してプロセッサ１０８に要求を送信する場合、これに応答して、プロセッサ１０８は、コマンドをホストインタフェースブロック１０６から読み出し、コマンドに基づいて、チャネル制御モジュール２００においてデータ経路をセットアップし、コマンドプロセッサ３０４のチャネル制御モジュールのコマンドレジスタにコマンドを記憶する。
【００７１】
プロセッサ１０８は、アドレスをホストインタフェースブロック１０６から内部ＮＡＮＤアドレスに変換し、チャネル制御モジュールのアドレスプロセッサ３０６に記憶もする。論理／物理アドレス変換を実行すべき場合、プロセッサ１０８はマッピングテーブルを使用して、正確な物理アドレスを作成することができる。プロセッサ１０８は、後述する１つ又は複数の追加の機能を実行することもできる。次に、プロセッサ１０８は、ＲＡＭ１１０からチャネル制御モジュール２００へのデータ転送をセットアップする。図５に示されるように、メモリインタフェースブロック１１２が複数のチャネル制御モジュールを含むことができることに留意する。
【００７２】
チャネル制御モジュール２００は、値をアドレスプロセッサ３０６からとり、ＯＮＦｉメモリインタフェースプロトコルフォーマット又はＨＬＮＡＮＤメモリインタフェースプロトコルフォーマットに従ってフォーマットする。ＲＡＭ１１０に記憶されたデータは、暗号化のために暗号化プロセッサ３１４に送信され、次に、データスクランブラ３１０を通して送信される。データスクランブラ３１０は、データをスクランブルし、スクランブルデータをＥＣＣエンコーダ３００に出力し、エンコーダ３００は、データと共に記憶されるＥＣＣパリティビットを生成する。次に、データ及びＥＣＣパリティデータは、ＯＮＦｉメモリインタフェースプロトコルフォーマット又はＨＬＮＡＮＤメモリインタフェースプロトコルフォーマットのいずれかを用いて、デュアルメモリインタフェースモジュール３１８ポートを通して、ページプログラム又は書き込みコマンドと共にメモリ素子に転送されて、記憶される。
【００７３】
チャネル制御モジュール２００は、ＥＤＣエンコーダと、ＥＤＣデコーダとを含むＥＤＣプロセッサ３１６を更に含む。ＥＤＣプロセッサ３１６は、ＨＬＮＡＮＤ又はＯＮＦｉメモリインタフェースプロトコルのいずれかの誤り検出符号化アルゴリズムを実行する。チャネル制御論理３０８は一般に、ある機能ブロックから別の機能ブロック、並びにデュアルメモリインタフェースモジュール３１８及びバスへの処理された情報及びデータのルーティングを担当する。
【００７４】
まとめると、チャネル制御モジュール２００の上述した機能ブロックは、使用中のメモリインタフェースプロトコルから独立して、メモリ素子に書き込まれるデータ及びメモリ素子から読み出されたデータに対するデータ処理動作を実行する。チャネル制御論理３０８が、例えば、制御信号、ＣＬＥ、ＡＬＥ、ＣＳＯ、及びＤＳＯ等の、デュアルメモリインタフェースモジュール３１８を通して制御信号をいつ駆動するかを決定することもでき、それにより、それらのアサートを、特定のメモリ動作及び適切なシーケンスと調整することに留意する。したがって、チャネル制御論理３０８は、ＨＬＮＡＮＤ及びＯＮＦｉの両方に固有のアルゴリズムを実行するように構成される。
【００７５】
デュアルメモリインタフェースモジュール３１８は、１組のポートで受信されたデータ及び他の情報を捕捉し、２つのメモリインタフェースプロトコルフォーマットのいずれかからのデータ及び受信情報をネイティブメモリコントローラフォーマットに変換することを担当する。逆に、デュアルメモリインタフェースモジュール３１８は、２つのメモリインタフェースプロトコルフォーマットのうちのいずれかでコマンド、アドレス、及び書き込みデータを提供することを担当する。１組のみのポートが利用可能であるため、少なくとも１つのポートに２つの異なる機能が割り当てられる。２つの異なるメモリインタフェースプロトコル間で、１つのみの信号の機能が異なることがあり得る。他方、２つの異なるメモリインタフェースプロトコル間のあらゆる信号の機能が異なることがあり得る。
【００７６】
図９は、各ポートに複数の機能が割り当てられる、図８のデュアルメモリインタフェースモジュール３１８のブロック図である。本実施形態によれば、両メモリインタフェースプロトコルでの特定のカテゴリの信号は、可能な場合は常に、同じポートにマッピングされる。信号のカテゴリは、出力信号、入力信号、及び双方向信号を含む。信号のカテゴリごとに、両メモリインタフェースプロトコルでの同様のタイプの信号は、可能な場合は常に、同じポートにマッピングされる。信号のタイプは、制御信号、ステータス信号、データ信号、及びクロック信号を含む。信号の各カテゴリは、パッドに接続される対応するタイプのバッファ回路を有する。図９の実施形態では、デュアルメモリインタフェースモジュール３１８は、ＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコル等の２つの異なるメモリインタフェースプロトコル用に構成されたポートバッファ回路を有する。
【００７７】
図９のデュアルメモリインタフェースモジュール３１８の実施形態は、各パッドのポートバッファ回路を含み、パッドは、ボンドワイヤの一端部に電気的に接続するための、半導体基板の金属化エリアである。ボンドワイヤの他端部は、半導体基板を封入するパッケージの物理的なピンに接続される。デュアルメモリインタフェースモジュール３１８の実施形態は、参照番号４００、４０２、４０４、及び４０６によって示される複数のポートバッファ回路を含む。ポートバッファ回路４００は、本実施形態では、モードセレクタ回路である入力バッファ回路である。図９の表に示されるように、ＶＤＤ（論理１）又はＶＳＳ（論理０）へのポートバッファ回路４００のパッドの接続により、他のポートバッファ回路４０２、４０４、及び４０６を、２つのメモリインタフェースプロトコルのうちいずれとして構成すべきかが選択される。ポートバッファ回路４０２及び４０６は双方向ポートバッファ回路であり、これは、信号を出力し受信する駆動回路及び受信器回路を含むことを意味する。ポートバッファ回路４０２及び４０６は、それぞれが受信する信号のタイプに起因して、互いとは異なるように構成される。ポートバッファ回路４０４は単方向ポートバッファ回路であり、特に、信号を出力する駆動回路のみを含む。
【００７８】
デュアルメモリインタフェースモジュール３１８の右側には、各ポートバッファ回路の信号割り当てを列挙した表がある。一番左側の列は、各ポートバッファ回路のＯＮＦｉメモリインタフェースプロトコル信号を列挙し、一方、一番右側の列は、同じポートバッファ回路のＨＬＮＡＮＤメモリインタフェースプロトコル信号を列挙する。本例は、ポートバッファ回路の１つの可能なデュアルピン配列マッピングを示す。図９の表に示されるように、２つのメモリインタフェースプロトコルからのＣＫＩ及びＤＱＳ等のクロック信号は、同じポートバッファ回路４０２にマッピングされ、ＣＬＥ及びＣＳＯ等の制御信号は、同じポートバッファ回路４０４にマッピングされる。ＯＮＦｉメモリインタフェースプロトコルが、データ信号ＤＱ［０］〜ＤＱ［７］の提供及び受信に８つの双方向ポートバッファ回路を使用し、一方、ＨＬＮＡＮＤメモリインタフェースプロトコルが、入力データＤ［０］〜Ｄ［７］の受信に８つのポートを必要とし、出力データＱ［０］〜Ｑ［７］の駆動に８つのポートを必要とすることに留意する。したがって、ＨＬＮＡＮＤメモリインタフェースプロトコルの１６個のデータ信号のＯＮＦｉメモリインタフェースプロトコルの８個のデータ信号への直接マッピングはない。しかし、ＯＮＦｉメモリインタフェースプロトコルは、チャネルの各ＯＮＦｉメモリ素子のイネーブルに個々のチップイネーブル信号ＣＥ［０］〜ＣＥ［７］を必要とし、これらはＨＬＮＡＮＤメモリインタフェースプロトコルでは必要ない。したがって、ＯＮＦｉメモリインタフェースプロトコルのチップイネーブルポートは、ＨＬＮＡＮＤメモリインタフェースプロトコルでデータを出力するように構成される。図９のデュアルメモリインタフェースモジュール３１８は、複数の信号を同じポートにいかに割り当てることができるかの例を示すことを目的とし、したがって、ＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコルの全てのポート及び信号を示しているわけではない。
【００７９】
ポートバッファ回路４００、４０２、４０４、及び４０６の実施形態を図１０、図１１、図１２、及び図１３の回路概略図に示す。
【００８０】
図１０は、本開示の一実施形態による、図９に示されるモード選択回路４００の回路概略図である。更に詳細に後に示されるように、他のポートバッファ回路は、モード選択回路４００がいかに設定されるかに応じて、２つの異なるモードのうちの一方で動作するように構成される。
【００８１】
図１０の実施形態では、パッド５００は、半導体チップ又は基板の表面上の金属化エリアであり、金ワイヤボンディング等の接続を行うことができる。本例では、パッド５００は、電源ＶＤＤ又は接地ＶＳＳのうちの一方に接合されたワイヤである。例として入力バッファ回路等の入力受信器回路５０２は、パッド５００のＶＤＤ又はＶＳＳ接続を検出して、内部選択信号ＳＥＬを内部ハイ論理レベル又はロー論理レベルのいずれかに駆動する。本例では、ＳＥＬが論理ローレベル（０）である場合、デュアルモードピン配列メモリコントローラ１０２は、ＯＮＦｉメモリインタフェースプロトコル等の第１のメモリインタフェースプロトコルと動作するように設定される。ＳＥＬが論理ハイレベル（１）である場合、デュアルモードピン配列メモリコントローラ１０２は、ＨＬＮＡＮＤメモリインタフェースプロトコル等の第２のメモリインタフェースプロトコルと動作するように設定される。より詳細には、デュアルモードピン配列メモリコントローラの他の各ポートバッファ回路は、マッピングされる２つの信号のうちの一方を受信するか、又は提供するように構成される。
【００８２】
上述したように、２つ以上のパッドを、３つ以上の異なるメモリインタフェースプロトコルモード間の選択に使用することができ、各パッドは各入力バッファ回路に接続され、出力を復号化して、各ポートバッファ回路の特定の論理回路をイネーブルすることができる。
【００８３】
図１１は、本開示の一実施形態による、図９に示される双方向ポートバッファ回路４０２の回路概略図である。パッド５１０は、ＯＮＦｉメモリ素子のＤＱＳピン又はＨＬＮＡＮＤ準拠メモリ素子のＣＫＩピンのいずれかに電気的に結合することができる。バッファ回路は、受信経路と、出力経路とを含む。受信経路は、入力バッファ等の受信器５１２と、デマルチプレクサ５１４等のセレクタと、ＨＬＮＡＮＤメモリインタフェースプロトコル等の１つのメモリインタフェースプロトコルから信号を受信するように構成される第１の論理ブロック５１６とを含む。第１の論理ブロック５１６は特に、デマルチプレクサ５１４を介してパッド５１０からＣＫＩ信号を受信するように構成され、ＨＬＮＡＮＤメモリインタフェースプロトコルの要件に従って信号を処理するように構成し得、必要とされる任意の信号をチャネル制御モジュール２００の特定の回路ブロックに提供する。特に、ＨＬＮＡＮＤ論理ブロック５１６は、バッファリングされたクロック信号をチャネル制御モジュールに提供し、遅延ロックループ（ＤＬＬ）又はフェーズロックループ（ＰＬＬ）を含み得る。デマルチプレクサ５１４によって受信される信号は、「ｉｎ」と呼ばれ、パッド５１０で受信されるＤＱＳ又はＣＫＩ信号に対応することができる。デマルチプレクサ５１４は選択信号ＳＥＬによって制御されて、信号「ｉｎ」を「０」及び「１」と記される２つの出力のうちの一方に渡す。本例では、ＳＥＬが、ＨＬＮＡＮＤメモリインタフェースプロトコルモードの選択に対応する論理レベルである場合、「ｉｎ」は「１」出力に渡される。逆に、ＳＥＬが、ＯＮＦｉメモリインタフェースプロトコルモードに対応する論理レベルである場合、「ｉｎ」は「０」出力に渡される。
【００８４】
図１１の例では、ＳＥＬは、ＯＮＦｉメモリインタフェースメモリプロトコルモードの場合にはロー論理レベルであり、ＨＬＮＡＮＤメモリインタフェースプロトコルモードの場合にはハイ論理レベルである。ＨＬＮＡＮＤメモリインタフェースプロトコルモードでは、デマルチプレクサ５１４は、クロック信号ＣＬＫ＿ｉｎを論理ブロック５１６に提供し、一方、ＯＮＦｉメモリインタフェースプロトコルモードでは、デマルチプレクサ５１４は、データクロック信号ＤＱＳ＿ｉｎを第２の論理ブロック５１８に提供する。
【００８５】
出力経路は第２の論理ブロック５１８を含み、このブロック５１８は、出力データクロック信号ＤＱＳ＿ｏｕｔと、受信入力データクロック信号ＤＱＳ＿ｉｎとの両方を制御する。特に、第２の論理ブロック５１８は、ＤＱＳ＿ｉｎをデュアルメモリインタフェースモジュール３１８から受信し、ＯＮＦｉメモリインタフェースプロトコルの要件に従ってその信号を処理して、入力データ同期を提供し、チャネル制御モジュール２００の特定の回路ブロックに、必要とされる任意の信号を提供する。同様に、第２の論理ブロック５１８は、デュアルメモリインタフェースモジュール３１８等のチャネル制御モジュール２００の他の回路から信号を受信して、出力データ同期のために、出力データクロック信号ＤＱＳ＿ｏｕｔを生成する。ＤＱＳ＿ｏｕｔ信号は出力駆動回路５２０によってパッド５１０に駆動されている。出力駆動回路５２０が選択信号ＳＥＬによってイネーブル又はディセーブルされることに留意する。デマルチプレクサ５１４について上述したように、ロー論理レベルのＳＥＬはＯＮＦｉメモリインタフェースプロトコルモードに対応する。したがって、この動作モードでは、出力駆動回路５２０はイネーブルされるか、又はオンになり、ＤＱＳ＿ｏｕｔ信号を増幅し、パッド５１０を駆動する。他方の動作モードでは、すなわち、ＳＥＬがＨＬＮＡＮＤメモリインタフェースプロトコルモードに対応するハイ論理レベルである場合、出力駆動回路５２０はディセーブルされるか、又はオフになり、受信器５１２をオンのままにし、デマルチプレクサ５１４を介して、パッド５１０から受信したＣＫＩ信号を論理ブロック５１６に提供する。次に、バッファリングされたクロック信号は、デュアルメモリインタフェースモジュール３１８に提供される。
【００８６】
ＳＥＬがロー論理レベルであるとき、出力駆動回路５２０及び受信器５１２は両方ともイネーブルされ、それにより、任意の出力ＤＱＳ信号をパッド５１０に駆動することができ、その間、任意の受信入力ＤＱＳ信号を、受信器５１２及びデマルチプレクサ５１４を通して論理ブロック５１８によって受信することができることに留意する。
【００８７】
図１１の実施形態では、ポートバッファ回路４０２は、双方向ＤＱＳ信号又は受信ＣＫＩ信号のいずれかのために構成される。しかし、同様のポートバッファ回路を、図９で４０２と記される他のポートバッファ回路に利用することもできる。図９の実施形態に示されるように、各ＯＮＦｉ信号は双方向信号であり、一方、各双方向ＯＮＦｉ信号にマッピングされるＨＬＮＡＮＤ信号は、入力信号である。したがって、図１１の同じ回路ブロックが、他のポートバッファ回路４０２に使用されるが、図１１に示される論理ブロック５１６及び５１８は、それらにマッピングされる特定の信号を処理するように構成される。
【００８８】
図１２は、本開示の一実施形態による、図９に示される出力ポートバッファ回路４０４の回路概略図である。出力ポートバッファ回路４０４は、第１のメモリインタフェースプロトコルに対応する信号を処理するように構成される第１の論理ブロック５３０と、第２のメモリインタフェースプロトコルに対応する信号を処理するように構成される第２の論理ブロック５３２と、マルチプレクサ５３４等のセレクタと、出力駆動回路５３６と、パッド５３８とを含む。ここで示される例では、第１の論理ブロック５３０はＯＮＦｉ論理ブロックであり、第２の論理ブロック５３２はＨＬＮＡＮＤ論理ブロックである。ＯＮＦｉ論理ブロック５３０は、情報をデュアルインタフェースメモリモジュール３１８から受信し、チャネル制御モジュール２００の他の回路ブロックに応答して、読み出しイネーブル信号ＲＥ＿ｏｕｔを提供し、これはマルチプレクサ５３４の「０」入力によって受信される。より詳細には、ＯＮＦｉ論理ブロック５３０は、プロトコルの要件に従って受信信号を処理して、ＲＥ＿ｏｕｔ信号を生成するように構成される。ＨＬＮＡＮＤ論理ブロック５３２は、デュアルインタフェースメモリモジュール３１８から受信される情報に応答して、出力クロック信号ＣＫＯ＿ｏｕｔを提供し、これはマルチプレクサ５３４の「１」入力によって受信される。より詳細には、ＨＬＮＡＮＤ論理ブロック５３２は、プロトコルの要件に従って受信信号を処理して、ＣＫＯ＿ｏｕｔ信号を生成するように構成される。
【００８９】
マルチプレクサ５３４は、選択信号ＳＥＬに応答して、ＲＥ＿ｏｕｔ及びＣＫＯ＿ｏｕｔのうちの一方を信号「ｏｕｔ」として渡す。本例では、ハイ論理レベルのＳＥＬはＨＬＮＡＮＤメモリインタフェースプロトコルモードに対応し、それにより、ＣＫＯ＿ｏｕｔを出力駆動回路５３６に渡す。他方、ロー論理レベルのＳＥＬはＯＮＦｉメモリインタフェースプロトコルモードに対応し、それにより、ＲＥ＿ｏｕｔを出力駆動回路５３６に渡す。次に、出力駆動回路５３６は受信信号を増幅し、パッド５３８に駆動する。両信号ＲＥ及びＣＫＯがＯＮＦｉ及びＨＬＮＡＮＤメモリインタフェースプロトコルの出力信号であることに留意する。したがって、図１２の実施形態は、ポートバッファ回路が２つの異なる出力信号を提供するようにいかに構成されるかを示す一例である。
【００９０】
図１３は、本開示の一実施形態による、図９に示される代替の双方向ポートバッファ回路４０６の回路概略図である。双方向ポートバッファ回路４０６は、受信経路と、出力経路とを含む。出力経路は、第１の論理ブロック５５０と、信号を増幅してパッド５５４に駆動する出力駆動回路５５２とを含む。受信経路は、パッド５５４で受信された信号を事前処理する受信器５５６と、第２の論理ブロック５５８とを含む。本例では、第１の論理ブロックは、チャネル制御モジュール２００の他の回路ブロックに応答して、書き込みイネーブル信号ＷＥ＿ｏｕｔを提供するＯＮＦｉ論理ブロックであり、第２の論理ブロックは、チャネル制御モジュール２００の他の回路ブロックに提供されるデータストローブ入力信号ＤＳＩ＿ｉｎを受信するＨＬＮＡＮＤ論理ブロックである。特に、論理ブロック５５０は、選択されたプロトコルの要件に従って、チャネル制御モジュール２００の他の回路ブロックから受信される信号を処理して、ＷＥ＿ｏｕｔ信号を生成するように構成される。同様に、論理ブロック５５８は、選択されたプロトコルの要件に従ってＤＳＩ＿ｉｎ信号を処理し、必要とされる任意の信号をチャネル制御モジュール２００の特定の回路ブロックに提供するように構成される。
【００９１】
ここで示される双方向ポートバッファ回路は、パッドが第１のメモリインタフェースプロトコルモードで出力信号を提供し、第２のメモリインタフェースプロトコルモードで入力信号を受信する構成例を示す。例えば、選択信号ＳＥＬがロー論理レベルであるとき、出力駆動回路５５２はイネーブルされ、一方、受信器５５６はディセーブルされる。逆に、ＳＥＬがハイ論理レベルであるとき、出力駆動回路５５２はディセーブルされ、一方、受信器５５６はイネーブルされる。したがって、選択信号ＳＥＬの状態に応じて、受信経路及び出力経路のうちの一方のみがアクティブである。
【００９２】
図１３の実施形態が、選択信号ＳＥＬによってイネーブル又はディセーブルされている出力駆動回路５２０及び入力バッファ５１２を示すことに留意する。図１１の実施形態は、ＳＥＬによってイネーブル又はディセーブルされている出力駆動回路５２０のみを示すが、代替の実施形態では、入力バッファ５１２をＳＥＬによってイネーブル又はディセーブルすることができる。
【００９３】
図１４は、本開示の一実施形態によるデュアルモード入力インタフェース回路の回路回略図である。この特定の回路実施形態は、２つの異なるメモリインタフェースプロトコルの入力信号が同じポートにマッピングされる場合に使用することができる。図１４に示されるように、デュアル入力ポートバッファ回路５７０は、パッド５７２と、パッド５７２に接続される受信器５７４と、デマルチプレクサ５７６等のセレクタと、第１のメモリインタフェースプロトコルに対応する信号を処理するように構成される第１の論理ブロック５７８と、第２のメモリインタフェースプロトコルに対応する信号を処理するように構成される第２の論理ブロック５８０とを含む。ここで示される実施形態では、任意のメモリインタフェースプロトコルに固有の信号は示されていない。したがって、パッド５７２を電気的に結合して、第１の入力又は第２の入力を受信することができ、各入力は異なるメモリインタフェースプロトコルに対応する。受信器５７４は、パッド５７２で受信した信号をバッファリングし、その信号を「ｉｎ」としてデマルチプレクサ５７６の入力に渡す。デマルチプレクサ５７６は、選択信号ＳＥＬの状態に応答して、「ｉｎ」を「０」又は「１」出力に渡す。上述したように、ＳＥＬはハイ又はロー論理レベルのいずれかに設定されて、使用中の選択されたメモリインタフェースプロトコルを示す。論理ブロック５７８及び５８０は、選択されたプロトコルの要件に従って信号を処理し、必要とされる任意の信号をチャネル制御モジュール２００の特定の回路ブロックに提供するように構成される。
【００９４】
前に示された図９の実施形態及び図１０〜図１４のポートバッファ回路実施形態は、デュアルモードピン配列メモリコントローラ実施形態の可能な１つのデュアルピン配列マッピング構の例を示す。信号がマッピングされるポートが、マッピングされた信号を受信又は提供するように構成される場合、他のデュアルピン配列マッピングも可能である。前に示されたポートバッファ回路実施形態は、入力信号、出力信号、及び双方向信号の組み合わせを単一のポートにマッピングするのに使用することができる。いずれの場合でも、ポートバッファ回路で受信された信号は、チャネル制御モジュール２００によって受信されて処理され、バス１１８を介してメモリコントローラ１０２の他の回路ブロックに渡される。最終的には、データは、ホストインタフェース１０６を介してホストに提供される。同様に、ホストインタフェース１０６で受信される任意のデータ及びコマンドは、バス１１８を介してメモリコントローラの回路ブロックによって処理され、最終的に、メモリインタフェース１１２のターゲットのチャネル制御モジュールに提供され、チャネル制御モジュールは、メモリ素子のシグナリングに必要なプロトコル適合を実行する。
【００９５】
前に示された実施形態は、２つのメモリインタフェースプロトコルの信号をいかに、メモリコントローラの１組のポートにマッピングすることができるかを示す。代替の実施形態では、各ポートバッファ回路は、３つ以上の異なるタイプの信号を受信するように構成することができる。例えば、示される２−１マルチプレクサ又は１−２デマルチプレクサは、３−１マルチプレクサ又は１−３デマルチプレクサで置換することができ、信号を処理して、第３の信号を出力するため、又は受信した第３の信号を処理するために、追加の論理ブロックを含むことができる。図１０〜図１４のポートバッファ回路実施形態を理解した当業者は、各ポートにマッピングされた３つ以上の信号に対応するように回路をいかにスケーリングするかを理解するだろう。
【００９６】
デュアルモードピン配列メモリコントローラ実施形態は、ＳＳＤドライブ及び他のポータブルメモリ記憶装置を含む固体状態メモリシステム等の任意のメモリシステムで使用することができる。デュアルモードピン配列メモリコントローラ実施形態は更に、例として、携帯電話、ラップトップコンピュータ、及びタブレットを含むポータブル電子装置内等の不揮発性メモリを使用するシステムに統合することができる。
【００９７】
上述した実施形態では、装置要素及び回路は、簡潔にするために、図に示されるように互いに接続される。本開示の実際用途では、要素、回路等は互いに直結し得る。同様に、要素、回路等は、デバイス及び装置の動作に必要な他の要素、回路等を通して互いに間接的に接続し得る。したがって、実際の構成では、回路要素及び回路は、互いに直接又は間接的に結合又は接続される。
【００９８】
上記説明では、説明のために、多くの詳細が記載されて、実施形態の完全な理解を提供している。しかし、これらの特定の詳細が必要ないことが当業者には明らかだろう。他の場合、理解を曖昧にしないように、周知の電気構造体及び回路はブロック図の形態で示されている。
【００９９】
上記実施形態は、単なる例であることが意図される。当業者は、本明細書に添付される特許請求の範囲によってのみ規定される範囲から逸脱せずに、特定の実施形態に変更、修正、及び変形を行うことができる。
【図１】
0006386460.tif 000004
【図２Ａ】
0006386460.tif 000005
【図２Ｂ】
0006386460.tif 000006
【図３Ａ】
0006386460.tif 000007
【図３Ｂ】
0006386460.tif 000008
【図４】
0006386460.tif 000009
【図５】
0006386460.tif 000010
【図６】
0006386460.tif 000011
【図７】
0006386460.tif 000012
【図８】
0006386460.tif 000013
【図９】
0006386460.tif 000014
【図１０】
0006386460.tif 000015
【図１１】
0006386460.tif 000016
【図１２】
0006386460.tif 000017
【図１３】
0006386460.tif 000018
【図１４】
0006386460.tif 000019