(58)【調査した分野】(Int.Cl.,DB名)
前記モードセレクタ回路に電気的に結合されて、前記印加される電圧レベルを受け取るパッドを更に含む、請求項2に記載のデュアルインタフェースメモリコントローラ。
前記モードセレクタ回路によって提供される第1の論理状態及び第2の論理状態のうちの一方を有する選択信号に応答して、前記単一のパッドを前記第1の入力回路又は前記第2の入力回路のうちの一方に選択的に結合するセレクタ回路を更に含む、請求項6に記載のデュアルインタフェースメモリコントローラ。
前記モードセレクタ回路によって提供される第1の論理状態及び第2の論理状態のうちの一方を有する選択信号に応答して、前記単一のパッドを前記第1の出力回路又は前記第2の出力回路のうちの一方に選択的に結合するセレクタ回路を更に含む、請求項13に記載のデュアルインタフェースメモリコントローラ。
【発明を実施するための形態】
【0014】
一般に、本開示は、データ記憶装置のメモリコントローラを提供し、このメモリコントローラは、異なる各タイプのメモリ素子とインタフェースする少なくとも2つの異なるピン配列割り当てを有するように構成可能である。各ピン配列割り当ては、特定のメモリインタフェースプロトコルに対応する。メモリコントローラの各メモリインタフェースポートは、使用される、選択されたメモリインタフェースプロトコルに基づいて、異なる機能信号割り当てに向けて構成可能なインタフェース回路を含む。各メモリインタフェースポートのインタフェース回路構成は、メモリコントローラの所定のポート又はレジスタを設定することによって選択可能である。
【0015】
フラッシュメモリは、例えば、デジタルカメラ及びポータブルデジタル音楽プレーヤ等の消費者電子装置の大容量記憶装置として広く使用されている一般に使用されているタイプの不揮発性メモリである。そのようなフラッシュメモリは、メモリカード又はユニバーサルシリアルバス(USB)タイプのメモリスティックの形態をとり、それぞれ、少なくとも1つのメモリ素子と、内部に形成されるメモリコントローラとを有する。別の大容量記憶装置用途は、コンピュータハードディスクドライブの代わりとして使用することができる固体状態ドライブ(SSD)である。これらの固体状態ドライブは、コンピュータワークステーション、ネットワークで使用することができ、大量のデータを記憶する必要がある略あらゆる用途で使用することができる。
【0016】
図1は、例えば、本開示の実施形態が適用される不揮発性メモリシステム等のシステムを示す。
図1を参照すると、不揮発性メモリシステム10は、外付けデバイス又は装置としてデータ記憶装置12及びホスト14を含む。データ記憶装置12の非限定的な例は固体状態ドライブ(SSD)である。ホスト14の非限定的な例はコンピュータ又は他の計算システムである。
【0017】
データ記憶装置12は、メモリコントローラ16と、メモリ18とを含む。メモリ18は、揮発性メモリ素子又は例えば、フラッシュメモリ素子等の不揮発性メモリ素子を含む。メモリ18は、従来の回転式磁気記憶ディスクを含み得る。ホスト14は、インタフェースプロトコルバス20を介してデータ記憶装置12に結合され、インタフェースプロトコルを使用してメモリコントローラ16と通信する。インタフェースプロトコルは、例えば、周辺構成要素相互接続エクスプレス(PCI−E)プロトコル、アドバンストテクノロジーアタッチメント(ATA)プロトコル、直列ATA(SATA)プロトコル、並列ATA(PATA)プロトコル、又は直列接続SCSI(SAS)プロトコルを含む。しかし、ホスト14とデータ記憶装置12との間のインタフェースプロトコルは、上記例に限定されず、ユニバーサルシリアルバス(USB)プロトコル、マルチメディアカード(MMC)プロトコル、エンハンストスモールディスクインタフェース(ESDI)プロトコル、統合ドライブ電子回路(IDE)プロトコル等の他のインタフェースプロトコルを含み得る。インタフェースプロトコルバス20は、ホスト14とメモリコントローラ16との間でデータ及びコマンドを転送し、ピン、ポート、及び他の物理的インタフェースの形態を有する。データ記憶装置12は、例えば、従来のHDD(ハードディスクドライブ)フォームファクタ、PCIe PCBカードフォームファクタ、プラグインモジュール(例えば、DIMM)フォームファクタ、又はポータブルメモリカード(例えば、セキュアデジタル(SD)カード若しくはMMC)フォームファクタを含め、任意のタイプのフォームファクタを有し得る。
【0018】
この例示的な構成では、メモリ18は、例えば、少なくとも1つのNANDフラッシュメモリ素子を含むが、NANDフラッシュメモリに限定されない。メモリ18は、相転移ランダムアクセスメモリ(PCRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(ReRAM)、強誘電性RAM(FeRAM)、又は他のタイプのメモリを含み得る。メモリ18は、フラッシュメモリ素子である場合、例えば、フローティングゲート技術又は電荷捕捉フラッシュ(CTF)技術を使用するNANDフラッシュメモリ素子であり得る。
【0019】
メモリコントローラ16はメモリプロトコルバス22に結合される。メモリコントローラ16は、メモリプロトコルを使用してコマンド及びデータをメモリ18と通信するインタフェースを含む。データ記憶装置12でメモリ18として使用されるメモリの特定のタイプに応じて、特定のタイプのメモリに固有の特定のプロトコルが使用される。したがって、メモリコントローラ16は、使用されているメモリ18のタイプによって決まる特定のプロトコルを使用してメモリ18と通信するように構成される。例えば、異なるタイプの上記不揮発性メモリのそれぞれは、コマンド動作コードが異なり得、制御信号のタイプが異なり得、データフォーマットが異なり得る、異なる通信プロトコルを有し得る。手短に言えば、異なるメモリの通信プロトコルは互いに非互換である。したがって、データ記憶装置12で使用される、異なるタイプのメモリ18とインタフェースするために、異なるメモリコントローラが必要である。したがって、データ記憶装置12の製造費は、特定のタイプのメモリ18と通信するようにそれぞれ構成される異なるメモリコントローラ16を使用しなければならないため、増大する。したがって、1つの特定のタイプのデータ記憶装置12が消費者から嫌われる場合、又は特定のタイプのメモリ18がもはや生産されない場合、データ記憶装置の製造業者のリスクが増大する。
【0020】
データ記憶装置のメモリコントローラは、例えば、物理的なピン等のポートを使用して、信号をホスト装置及び少なくとも1つのメモリ素子に電気的に結合する。USBメモリスティック及びSSD等の固体状態記憶装置のメモリコントローラは通常、複数のチャネルを有し、各チャネルは少なくとも1つのメモリ素子に電気的に接続される。
【0021】
図2Aは、特定のメモリインタフェースプロトコルの一例であるONFiメモリインタフェースプロトコル用に構成されたメモリコントローラ30の機能ピン配列を示す。
図2Aの例では、1つのチャネルのポートが示される。表1は、
図2Aに示されるポートの信号説明を提供する。
【0023】
ここで示される例では、8ビット幅データ信号に8個のポートが必要であり、ONFiフラッシュメモリ素子の動作をイネーブルするために必要な制御信号の搬送に9個のポートが必要である。したがって、合計で17個のポートが、チャネルを少なくとも1つのONFiフラッシュメモリ素子に接続するために必要である。メモリコントローラ30が8つのチャネルを含む場合には、メモリコントローラ30は少なくとも8×17=136個のポートを必要とする。これは、ホストシステムとインタフェースするために必要なポートを除く。
【0024】
図2Bは、選択されるメモリインタフェースプロトコルの一例である別のプロトコルで動作中の別のタイプのメモリ素子用に構成されるメモリコントローラ32の機能ピン配列を示す。選択されるメモリインタフェースプロトコルの一例は、HLNAND(商標)メモリインタフェースプロトコルである。メモリ素子は、別のタイプのメモリインタフェースプロトコルで動作し得る。
図2Bの例では、1つのチャネルのポートが示される。表2は、
図2Aに示されるポートの信号説明を提供する。
【0026】
ここで示される例では、Q0〜Q7データ出力に8個のポートが必要であり、D0〜D7データ入力に8個のポートが必要であり、HLNANDフラッシュメモリ素子の動作をイネーブルするために必要な制御信号の搬送に8個のポートが必要である。したがって、合計で24個のポートが、チャネルを少なくとも1つのHLNANDフラッシュメモリ素子に接続するために必要である。メモリコントローラ32が8つのチャネルを含む場合には、メモリコントローラ32は少なくとも8×24=192個のポートを必要とする。これは、ホストシステムとインタフェースするために必要なポートを除く。
【0027】
ONFi及びHLNANDメモリインタフェースプロトコルの特定の信号名及び機能は、互いに同様に見えることがあるが、使用される様式及びメモリ素子がメモリコントローラに相互接続される様式は、互いに非常に異なる。この違いを
図3A及び
図3Bに示す。
【0028】
図3Aは、ONFi NANDフラッシュ素子を使用する不揮発性メモリシステムの一例を示す。メモリシステムは、ONFi構成メモリコントローラ40と、幾つかのONFiフラッシュ素子42、44、及び46とを含む。各フラッシュメモリ素子内のチップ選択(CE#)信号を除く全ての入力信号及び出力信号は、共通のバス又はチャネルに接続される。したがって、ONFiフラッシュ素子42、44、及び46は、メモリコントローラ40に並列接続され、マルチドロップ構成とも呼ばれる。各ONFi NANDフラッシュメモリ素子は、CE#信号をイネーブルすることによって選択することができる。例えば、第1のONFiフラッシュ素子42は、CE#_1をアサートする(CE#_1=ロー)ことによって選択しアクセスすることができる。残りのONFiフラッシュ素子は、CE#_2及びCE#_Nをハイに保持することにより、選択されず、したがってそして、メモリコントローラ40からのコマンド又はアドレスのようなあらゆる入力を無視する。選択されていないONFiフラッシュ素子の出力信号もハイインピーダンス(すなわち、Hi−Z)状態に設定される。
【0029】
ONFiフラッシュ素子42、44、及び46のそれぞれは、同じ電気信号を使用して、チャネル制御モジュールを通るONFiフラッシュ素子とホストコントローラ装置(図示せず)との間でのコマンド及びデータの転送を調整する。ここで示される例では、1つのチャネル制御モジュールのポートが
図3Aに示される。それらの信号は、先に表1に示されたようなALE(アドレスラッチイネーブル)、CLE(コマンドラッチイネーブル)、WE#(書き込みイネーブル)、RE#(読み出しイネーブル)等のデータ線及び制御信号を含む。このタイプのインタフェースプロトコルは、当技術分野において「ONFi NANDインタフェース」として知られている。「NANDインタフェースプロトコル」は、今日まで、標準化団体によって正式に標準化されていないが、それでも、NANDフラッシュ素子の製造業者は全て、NANDフラッシュ機能の基本サブセットのサポートに同様のプロトコルに従っている。これは、電子製品内のNANDフラッシュメモリ素子を使用する顧客が、ハードウェア又はソフトウェアを特定のベンダーの素子と共に動作するように仕立てる必要なく、任意の製造業者からのNANDフラッシュメモリ素子を使用することができるように行われる。幾つかのNANDフラッシュメモリベンダーが、基本機能が提供されて、他のベンダーによって使用されるプロトコルとの互換性を提供することを保証しながら、この機能基本サブセットを超える追加の機能を提供可能なことに留意する。
【0030】
図3Bは、HLNANDフラッシュメモリ素子を使用する不揮発性メモリシステムの一例を示す。メモリシステムは、HLNAND(商標)構成のメモリコントローラ60と、幾つかのHLNAND互換性フラッシュ素子62、64、66、及び68とを含む。
図3Bを参照すると、HLNANDメモリ素子62、64、66、及び68は高度に多重化された単方向ポイントツーポイントバスアーキテクチャを使用して、コマンド、アドレス、及びデータ等の情報を転送する。メモリ素子間のこれらのコマンド、アドレス、及びデータの各相互接続は「リンク」と呼ばれる。一例では、単一のリンクは、2つの差動クロック入力信号CKI/CKI#、クロック出力信号CKO/CKO#、並びに任意選択的な共通信号CE#(チップイネーブル)及びRST#(リセット)と共に、6個の信号:CSI(=コマンドストローブ入力)、CSO(=コマンドストローブ出力)、DSI(=データストローブ入力)、DSO(=データストローブ出力)、D[0:7](=データ入力)、及びQ[0:7](=データ出力)からなる。
【0031】
以下は、これらの制御信号のうちの幾つかが
図3Bのメモリシステムで使用される方法の手短な考察である。CKI/CKI#は入力クロックである。CSIで表されるD[0:7]ポートでのコマンド/アドレスパケットは、CKIの立ち上がりエッジ又はCKI#の立ち下がりエッジでラッチされる。DSIで表されるD[0:7]での書き込みデータパケットは、CKIの立ち上がりエッジ又はCKI#の立ち下がりエッジでラッチされる。DSOで表されるQ[0:7]での読み出しデータパケットは、CKOの立ち上がりエッジ又はCKO#の立ち下がりエッジで参照される。CKO/CKO#は、CKI/CKI#を遅延させたものである出力クロックである。
【0032】
CSO、DSO、及びQ[0:7]信号は、CKOの立ち上がりエッジ又はCKO#の立ち下がりエッジを参照する。コマンドストローブ入力(=CSI)がハイである場合、D[0:7]を通るコマンド/アドレスパケットは、CKIの立ち上がりエッジ又はCKI#の立ち下がりエッジでラッチされる。コマンドストローブ出力(=CSO)は、CSIのエコー信号である。これは、CKOの立ち上がりエッジ又はCKO#の立ち下がりエッジを参照して1クロックサイクル待ち時間(=tIOL)分、CSI遷移を迂回(=エコー)する。1クロックサイクル待ち時間は、本開示での例示的な実施形態の1つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであることができる。
【0033】
HLNAND互換性メモリ素子が「読み出しモード」である間、データストローブ入力(=DSI)がハイである場合、読み出しデータ出力経路及びQ[0:7]バッファがイネーブルされる。DSIがローである場合、Q[0:7]バッファは、アクセスされた前のデータを保持する。メモリ素子が「書き込みモード」である間、DSIがハイである場合、DSIはD[0:7]バッファをイネーブルし、CKIの立ち上がりエッジ又はCKI#の立ち下がりエッジで書き込みデータパケットを受信する。
【0034】
データストローブ出力(=DSO)はDSIのエコー信号である。これは、CKOの立ち上がりエッジ又はCKO#の立ち下がりエッジを参照して1クロックサイクル待ち時間(=tIOL)分、DSI遷移を迂回するか、又はエコーする。1クロックサイクル待ち時間は、本開示での例示的な実施形態の1つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであることができる。
【0035】
データ入力信号D[0:7]は、コマンド、アドレス、及び/又は入力データ情報を搬送し、一方、データ出力信号Q[0:7]は、読み出し動作中、出力データを搬送するか、D[0:7]上で受信したコマンド、アドレス、若しくは入力データを迂回させる。
【0036】
メモリコントローラ60は、ポートCKO/CKO#から差動クロックを駆動し、全てのHLNAND互換性メモリ素子62、64、66、及び68は、各自のクロックポートCKI/CKI#を通して、一連のフロースルー様式で前のCKO/CKO#ポートから差動クロックバスを受信する。メモリコントローラ60は、そのポートCSO、DSO、及びQ[0:7]のそれぞれを通して3つの異なるバス70、72、及び74を駆動する。第1のメモリ素子62は、そのポートCSI、DSI、及びD[0:7]のそれぞれを通して3つのバス70、72、及び74を受信する。そして、第1のメモリ素子62は、1クロックサイクル待ち時間(=tIOL)で、その出力ポートCSO、DSO、及びQ[0:7]のそれぞれを通して3つの対応するバス76、78、及び80を再駆動する。連続したメモリ素子へのこのパターンの信号の受信及び再駆動は、メモリコントローラの入力ポートCSI、DSI、及びD[0:7]のそれぞれを通して、最後のメモリ素子68が最後のバス82、84、及び86を再びメモリコントローラ60に再駆動するまで続けられる。本例では、メモリ素子68のCSOポートからの信号を再駆動することは必ずしも必要なく、したがって、メモリコントローラ60のCSI入力ポートを省略し得、最後のバス84は必要ない。
【0037】
ONFi及びHLNANDメモリインタフェースプロトコルが互いに十分に異なり、ONFiメモリインタフェースプロトコル用に構成された任意のメモリコントローラが、HLNANDメモリ素子では機能せず、逆もまた同様であることが当業者には明らかなはずである。上述したONFi及びHLNANDメモリシステムは、互いに互換性がない2つの異なるタイプのメモリインタフェースプロトコルの単なる例である。上述した任意のメモリ素子タイプは、各タイプが異なるメモリ素子タイプとは機能しない特定のメモリインタフェースプロトコルを必要とするため、互いとの互換性を有する可能性はかなり低い。
【0038】
異なるタイプの利用可能なメモリ素子に鑑みて、製造業者は、異なるタイプのメモリ素子に基づいて異なるデータ記憶装置装置を設計し得る。例えば、データ記憶装置に基づく従来のNANDフラッシュメモリ素子は、従来のNANDフラッシュメモリ素子の可用性及び低コストに起因して、一般に入手可能である。例として、これらはONFiタイプフラッシュメモリ素子であることができる。不都合なことに、
図3Aに示されるONFiタイプフラッシュメモリシステムのマルチドロップ構成は、システムの全体速度及び全体性能を低下させずに、メモリコントローラ40の1つのチャネルに並列接続可能な有限数のメモリ素子を有する。これは、バスに接続される各メモリ素子の累積ロード効果によるものである。したがって、そのようなデータ記憶装置のコストは低くし得るが、最大記憶密度も比較的低くなる。
【0039】
他方、HLNANDタイプのメモリ素子は、マルチドロップ構成のメモリシステムの制限を有さない。例として
図3Bに示されるようなHLNANDメモリシステムでは、任意の数のメモリ素子を、メモリコントローラ60の1つのチャネルを用いて互いに直列接続することができる。したがって、HLNANDタイプのメモリ素子を使用するデータ記憶装置の総合記憶密度は非常に高くなり得る。
【0040】
製造業者が直面する問題は、異なるタイプのデータ記憶装置を生産するために、特定のタイプのメモリ素子又は特定のメモリインタフェースプロトコル用に構成された異なるメモリコントローラを購入する必要があることである。コストリスクを軽減するために、別個のポートが、選択されたタイプのメモリ素子への接続に利用可能である場合、2つ以上のメモリインタフェースプロトコルと動作するように構成されたメモリコントローラが可能である。不都合なことに、別個の組のポートを提供することは、メモリコントローラパッケージで必要とされるポート数に起因して、非現実的になる。例えば、先に考察したONFi及びHLNANDメモリコントローラの例をとる。8チャネルONFiインタフェースが、ONFi NAND信号のみに対して合計で136個のポートを必要とし、8チャネルHLNANDメモリコントローラインタフェースが合計で192個のポートを必要とする場合、いずれかのインタフェースプロトコルで動作するように構成されるメモリコントローラは328個のポートを必要とする。メモリコントローラパッケージサイズが、ポートの数によって占められることが当業者には理解されるはずである。したがって、328個のポートを有するパッケージは、136個のポート又は192個のポートを有するパッケージよりも、面積の点ではるかに大きくなりがちである。
【0041】
本開示の一実施形態によれば、チャネルごとに1組のポートを使用して2つの異なるメモリインタフェースプロトコルのうちの少なくとも一方で動作するように構成可能なメモリコントローラが提供される。チャネルのポートは、少なくとも2つの異なる機能割り当てにマッピングされ、各機能割り当ては、メモリインタフェースプロトコルに固有の信号に対応する。各ポートは、メモリ素子への信号導線に電気的に接続するパッドと、少なくとも2つの機能割り当てのそれぞれのバッファ回路とを含む。各ポートの異なるバッファ回路は、使用される選択されたメモリインタフェースプロトコルに基づいて選択的にイネーブルされる。
【0042】
本開示の一実施形態によるデュアルモードピン配列メモリコントローラを使用する固体状態記憶装置のブロック図を
図4に示す。固体状態記憶装置100は、デュアルモードピン配列メモリコントローラ102と、メモリ104とを含む。特定の実施形態では、メモリ104は、ONFiフラッシュメモリ素子又はHLNANDフラッシュメモリ素子等の不揮発性メモリを含む。本実施形態では、任意のタイプのメモリ素子をメモリ104として使用することができる。本文脈では、メモリ104はメモリ素子を含む。
【0043】
コントローラ102は、固体状態記憶装置100の全体動作を制御するとともに、ホストとメモリ104との間でのデータ交換を制御する。例えば、コントローラ102は、ホスト(図示せず)からの要求に応答して、メモリ104を制御して、データを書き込むか、又は読み出す。コントローラ102は、例えば、不揮発性メモリの特性又はメモリ104の効率管理のために必要な性能制御、統合及び摩耗平準化等の内部動作も制御する。コントローラ102は、メモリ104の動作を制御するファームウェア及び/又はソフトウェアを駆動し、これはフラッシュ変換層(FTL)(図示せず)と呼ばれる。コントローラ102は、メモリ104を制御して、ホストからの要求に基づいて、メモリ装置104に含まれる複数の不揮発性メモリの中から幾つかのメモリの動作を制御し得る。メモリ104は、データを記憶する記憶媒体を提供する。メモリ104が少なくとも不揮発性メモリ装置である場合、データは不揮発的に記憶される。例えば、不揮発性メモリ装置は、オペレーティングシステム(OS)、様々なプログラム、及び様々なマルチメディアデータを記憶し得る。
【0044】
この基本動作モードでは、デュアルモードピン配列メモリコントローラ102は、ホストとメモリ104との間でのデータ交換を制御する。デュアルモードピン配列メモリコントローラ102は、ホストインタフェースブロック(HIB)106、中央演算処理装置108、ランダムアクセスメモリ(RAM)110、メモリインタフェースブロック(MIB)112、読み取り専用メモリ(ROM)114、及び誤り修正符号(ECC)エンジン116を含み、これらはバス118を通して相互接続される。コントローラ102は、ソフトウェア又はファームウェアとして具現されるFTLを動作させ得る。RAM110は、コントローラ102内に統合されて示されているが、代替の実施形態では、コントローラ102の外部に配置することができる。
【0045】
ホストインタフェースブロック106は、ホストインタフェースポートを介してホストから、データ、アドレス情報、外部コマンド、及びホストからの他の信号を受信する。これらは一般に情報と呼ばれる。アドレス情報、コマンド、及び任意の他の非データ関連信号は単に、制御情報と呼ぶことができる。ホストインタフェースブロック106も、同じ又は異なるホストインタフェースポートを介してデータ及びステータス情報をホストに送信する。これらのインタフェースポートは、ピン又は他の物理的なコネクタを含むことができる。ホストから受信された外部コマンドは、メモリコントローラ102の制御に使用される。ホストによって固体状態記憶装置100に提供されるデータ及び他の情報は、データの入口としてホストインタフェースブロック106を通して、固体状態記憶装置100の機能ブロック、例えば、バッファRAM110に入力される。固体状態記憶装置100からホストに提供されるデータ及び他の情報も、データの出口としてホストインタフェースブロック106を通して提供される。
【0046】
中央プロセッサ108は、ROM114又はメモリ104からプログラムコードを読み出し、読み出されたプログラムコードに従って、コントローラ102内に含まれる全ての機能ブロックを制御する。プログラムコードは、中央プロセッサ108の動作を指定する。中央プロセッサ108は、読み出されたプログラムコードに基づいてメモリ104へのアクセスを制御する。一動作モードでは、メモリ104に記憶されているプログラムコードは、固体状態記憶装置100がブートアップされるとき、メモリ104から読み出され、RAM110に書き込まれる。
【0047】
RAM110は、プロセッサ108の動作メモリとして使用し得、ダイナミックRAM(DRAM)、スタティックRAM(SRAM)等として具現し得る。RAM110は、ホストから受信されるデータを一時的に記憶するバッファメモリとしても機能し得る。プロセッサ108は、メモリ104へのデータの書き込み動作又はメモリ104からのデータの読み出し動作の全体制御を実行する。また、プロセッサ108は、ホストからの要求に基づいて、FTLの動作を制御するか、又は他の様式で実行し得る。
【0048】
ECCブロック116は、メモリ104に書き込まれるデータに関するECC(誤り修正符号)を生成する。データは、データに関連するECCと共に記憶される。さらに、ECCブロック116は、読み出されたデータに関連付けられたECCに基づいて、メモリ104から読み出されたデータのビットエラーを検出して修正する。
【0049】
ROM114は、ホストとインタフェースするための符号データを記憶する。ROM114に、メモリ104の制御に必要なファームウェアが記憶される。これに付随して、ブートに必要な最小のファームウェアをROM114に記憶し得、他のファームウェアをメモリ104に記憶し得る。ROMは固定読み出し専用メモリであるため、他のファームウェアをメモリ102に記憶することにより、ファームウェアの更新が容易になる。中央プロセッサ108、RAM110、ROM114、ECCエンジン116、及びホスト又はMIB112から受信される情報の処理に必要な任意の他の回路をコア回路と呼ぶことができる。
【0050】
メモリインタフェースブロック112は、シーケンスコードをROM114又はメモリ104から読み出す。シーケンスコードは、メモリインタフェースブロック112によって実行される様々な動作を指定する。メモリインタフェースブロック112は、読み出されるシーケンスコードに基づいて様々な動作を実行する。シーケンスコードは、複数のコードセットで構成される。コードセットは複数のコードを含む。各コードセットは、それに対応する動作を指定する。シーケンスコードに基づいて実行される動作では、メモリインタフェースブロック112とメモリ104との間で、データ、アドレス情報、ステータス情報、内部コマンド等は内部メモリバス120を通して転送される。内部メモリバス120は、コントローラ102のポートをメモリ104の対応するポートに電気的に接続する信号導線を含む。内部メモリバス120は、複数のチャネルに対応する信号を搬送することができる。内部コマンドは、コントローラ102がメモリ104を制御するためのコマンドであり、メモリ装置104は内部コマンドに従って機能する。それに付随して、動作が実行される前、メモリ104に記憶されたシーケンスコードはメモリ104から読み出され、RAM110に書き込まれる。
【0051】
FTLは、データマッピング動作を実行するマッピングテーブル(図示せず)を含む。一般に、マッピングテーブルはRAM110に記憶される。マッピングテーブルでは、メモリ104にそれぞれマッピングされる複数の論理ページ番号(LPN)が記録される。メモリ104が1つ又は複数のNANDフラッシュメモリ素子として実施される例では、データはページ単位で読み出されるか、又は書き込まれる。したがって、LPNは、マッピング単位として使用し得る。
【0052】
また、FTLは、ホストからの要求が書き込みコマンドであるか、それとも読み出しコマンドであるかに基づいて、メモリ104を制御し得、ホストによって提供される書き込みコマンド又は読み出しコマンドがメモリ104に対して実行されるときは常に、マッピングテーブルが更新されるようにマッピングテーブルを管理し得る。例えば、ホストからの要求が書き込みコマンドである場合、FTLは、LPNが記憶に対応するメモリ104のメモリ素子のうちの1つに書き込まれるデータを制御し、LPN及び対応するメモリ素子をマッピングテーブルに書き込む。ホストからの要求が読み出しコマンドである場合、FTLは、マッピングテーブルに基づいて、LPNが記憶に対応する不揮発性メモリのうちの1つから読み出されるデータを制御する。
【0053】
上述したように、メモリ104は複数の不揮発性メモリを含み得、各不揮発性メモリは、特定のメモリインタフェースプロトコルを用いて動作を実行するNANDフラッシュメモリ素子として実施し得る。本実施形態によれば、異なるメモリインタフェースプロトコルを有する異なるタイプのメモリ素子は、同じデュアルピン配列メモリコントローラ102と併用することができる。本実施形態では、メモリインタフェースブロック112は、各チャネルの1つにポートセットを含み、少なくとも1つのポートは、2つのモードのうちの一方で機能するように動的に構成可能であり、各モードは異なるメモリインタフェースプロトコルに対応する。したがって、2つの異なるタイプのメモリ104は、いかなる追加のポートも必要なく、メモリインタフェースブロック112のチャネルに接続することができ、その理由は、両タイプのメモリ104を、バス120の信号線を介してチャネルの同じポートに接続可能なためである。
【0054】
ポートは、専用又は既存のポートを正電源又は接地電源(VDD又はVSS)のいずれかに接続することにより、2つのメモリインタフェースプロトコルのうちのいずれかで機能するように構成することができる。そのような技法は、2つのメモリインタフェースプロトコルのうちの一方を選択するのに有効であるが、メモリインタフェースブロック112は、任意の数のメモリインタフェースプロトコルを有するように構成可能であり得る。そのような実施形態では、ヒューズ又はアンチヒューズを飛ばすことにより、n個の動作モードのうちの1つを選択するマルチビットコードを提供するように、レジスタを電気的にプログラムすることができ、又はレーザプログラムすることができる。代替的には、3つ以上のポートをVDD又はVSSに接続して、n個の動作モードのうちの1つを選択するマルチビットコードを提供することができる。これらの全ての実施形態では、各動作モードに必要なバッファ回路は、メモリインタフェースブロック112の各ポートに選択的に結合可能である。バス118から受信されるネイティブメモリコントローラ信号は、選択されたバッファ回路により、選択されたメモリインタフェースプロトコルに準拠するフォーマットに変換される。同様に、バス120から受信される信号は、選択されたバッファ回路により、ネイティブメモリコントローラ信号に変換される。
【0055】
ポートバッファ回路の詳細を考察する前に、メモリインタフェースブロック112の編成についてまず、
図5及び
図8を参照して説明する。
【0056】
図5は、
図4に示されるデュアルピン配列メモリコントローラ102のメモリインタフェースブロック112のブロック図を示し、メモリインタフェースブロック112は、少なくとも1つのメモリ素子に接続される。メモリインタフェースブロック112は、最高でn個のチャネル制御モジュール(CCM)200を含み、ここで、nは0よりも大きい任意の整数値であることができる。各チャネル制御モジュール200にはチャネルが関連付けられ、したがって、各チャネル制御モジュール200は、チャネルバス204を介して少なくとも1つのメモリ素子202に接続される。チャネルバス204の集まりが
図4に示されるバス120を形成することに留意する。同様に、全てのメモリ素子202は、
図4に示されるメモリ104内に含まれる。メモリインタフェースブロック112は、VDD又はVSSにバイアスすることができるポートを含むモードセレクタ206を更に含む。
図5では、モードセレクタポートをVDD又はVSSに接続するオプションが、スイッチ手段208の包含によって示される。モードセレクタ206及びその対応するポートは代替的には、メモリインタフェースブロック112の外部、且つデュアルモードピン配列メモリコントローラ102内に配置することができる。ポートの接続に応答して、モードセレクタ206は、モード選択信号を各チャネル制御モジュールに提供する。
【0057】
本実施形態によれば、各チャネル制御モジュール200は1組のポートを含み、ポートのうちの少なくとも1つは、モード選択信号に応答して、2つの異なるモードのうちの少なくとも一方で機能するように構成可能なバッファ回路を含む。例として、メモリ素子202がONFiタイプフラッシュメモリ素子である場合、メモリ素子202及びそのチャネル制御モジュールの相互接続構成は
図3Aに示されるように見える。他方、メモリ素子202がHLNANDタイプフラッシュメモリ素子である場合、メモリ素子202及びそのチャネル制御モジュールの相互接続構成は、
図3Bに示されるように見える。本実施形態によれば、ONFiタイプフラッシュメモリ素子及びHLNANDタイプフラッシュメモリ素子は両方とも、チャネル制御モジュール200に接続することができる。
【0058】
図6は、一実施形態によるデュアルピン配列メモリコントローラを有するマルチドロップバスアーキテクチャメモリシステムのブロック図である。より詳細には、
図6は、マルチドロップアーキテクチャで構成される、
図4の固体状態記憶装置100の構成例を示す。デュアルピン配列メモリコントローラのメモリインタフェースブロック220は、複数のチャネル制御モジュール222−1〜222−Nを含み、各チャネル制御モジュールは、ONFi CH−1〜ONFi CH−Nとも呼ばれる各チャネル224−1〜224−Nを制御する。「N」が、基本数が指す要素の最後のユニットを示す整数であることに留意する。チャネルは不揮発性メモリ226に提供される。各チャネルと電気通信するのはメモリ素子228−1、228−2、及び228−Nであり、各メモリ素子は単一パッケージのメモリ素子であることができる。各メモリ素子は幾つかのONFi不揮発性NANDフラッシュメモリチップ230を含み、そのうちの1つのみが
図6において注釈付与される。各ONFi NANDフラッシュメモリチップ230は、関連付けられたチャネルと双方向通信して、チャネル制御モジュールから情報を受信するか、又は情報をチャネル制御モジュールに提供する。メモリ素子のメモリチップ230は、チャネルに並列接続される。
【0059】
メモリインタフェースブロック220の各チャネル制御モジュール222−1〜222−Nは、不揮発性メモリ226、特に個々のメモリ素子228−1〜228−Nを制御するために、不揮発性メモリ226の各チャネルONFi CH−1〜ONFi CH−N専用である。例えば、一般にファームウェア及び/又はソフトウェアであるフラッシュ変換層(FTL)は、チャネルONFi CH−1〜ONFi CH−Nに対応するチャネル制御モジュール222−1〜222−Nの動作を制御して、不揮発性メモリ226を制御し、ホストからの要求に基づいてチャネルONFi CH−1〜ONFi CH−Nに接続された様々なONFi NANDフラッシュメモリチップ230をアクティブ化するか、又は非アクティブ化する。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【0060】
HDD交換のためのSATA又はPCIeに基づく固体状態ドライブ(SSD)等の固体状態記憶システムに実施される多数の不揮発性フラッシュメモリ素子での記憶容量を増大させ、信号保全性を改善するために、代替のタイプのフラッシュメモリを使用することができる。フラッシュメモリの代替のタイプの一例は上述したHLNANDフラッシュメモリである。HLNANDフラッシュメモリは、例えば、
図3Bに示されるように、通常、メモリコントローラと共にリングトポロジで配置されるポイントツーポイント直列接続技術を使用する高度で高性能な同期不揮発性フラッシュメモリ素子である。
【0061】
図7は、本実施形態による、
図6のメモリシステムと同じデュアルピン配列メモリコントローラを有する直列ポイントツーポイントアーキテクチャメモリシステムのブロック図である。より詳細には、
図7は、HLNANDフラッシュメモリを使用する直列ポイントツーポイントアーキテクチャで構成された、
図4の固体状態記憶装置100の構成例を示す。メモリインタフェースブロック220は、同じチャネル制御モジュール222−1〜222−Nを有する。
図6の実施形態からの
図7の実施形態の違いは、不揮発性メモリ250がHLNANDフラッシュメモリ素子からなることである。
図7に示されるように、不揮発性メモリ250はHLNANDフラッシュメモリ素子252−1〜252−Nを含み、各HLNANDフラッシュメモリ素子は複数のHLNANDメモリチップ254からなるパッケージ装置を含むことができ、複数のメモリチップのうちの1つのみに注釈が付与される。例えば、メモリ素子252−1等のメモリ素子の全てのHLNANDメモリチップ254は、単方向ポイントツーポイント接続を介して互いに直列接続される。これらのポイントツーポイント接続は、一例では、素子の出力ピンを次の素子の入力ピンに接続させることによって形成される。したがって、この直列相互接続は、デイジーチェインカスケード接続又はチャネル制御モジュール222−1等のホストを有するリングトポロジ構成と呼ぶこともできる。
【0062】
したがって、
図6の実施形態との別の違いは、チャネル制御モジュール222−1〜222−Nがそれぞれ、HL CH−1〜HLCH−Nとも呼ばれる各HLNANDチャネル256−1〜256−Nに接続されることである。各HLNANDチャネルは、入力サブチャネル258−1と、出力サブチャネル260−1とを含む。例としてチャネル制御モジュール222−1を参照すると、入力サブチャネル258−1は、データ及び制御情報を、チャネル制御モジュール222−1の出力端子から、メモリ素子252−1の直列接続されたメモリチップの最初のHLNANDメモリチップ254に提供する1組の接続である。出力サブチャネル260−1は、データ及び制御情報を、メモリ素子252−1の直列接続されたメモリチップの最後のHLNANDメモリチップ254から、チャネル制御モジュール222−1の入力端子に提供する1組の接続である。
【0063】
したがって、このシステム内のチャネル制御モジュール222−1〜222−Nは、メモリ素子の最初のHLNANDメモリチップ及び最後のHLNANDメモリチップとインタフェースする必要があるだけである。その結果、マルチドロップ接続を使用するシステム内の複数のチップ間での物理的な距離差によって生じるクロックスキュー及びデータスキューの問題がない。さらに、メモリチップと対応するチャネル制御モジュールとの間でのポイントツーポイント接続の使用に起因して、通常、マルチドロップバスアーキテクチャに使用されるバス終端が必要ない。その結果、マルチドロップバスアーキテクチャを使用するフラッシュメモリシステムと比較して低い消費電力が実現される。
【0064】
各メモリ素子のメモリチップに関連付けられた1つのチャネル制御モジュールがあるため、FTLは、チャネル制御モジュール222−1〜222−Nの動作を制御して、不揮発性メモリ250を制御し、
図1のホスト14等のホスト装置からの要求に基づいて、チャネルHL CH−1〜HL CH−Nに対応する様々なHLNANDフラッシュメモリチップ254をアクティブ化するか、又は非アクティブ化し得る。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【0065】
図6及び
図7の前に示された実施形態は、本開示による同じデュアルピン配列メモリコントローラを使用するメモリシステムを示す。不揮発性メモリ226及び250に使用されるONFi及びHLNANDメモリタイプは、本開示のデュアルピン配列メモリコントローラと併用可能な2つの異なるタイプのメモリの単なる例である。デュアルピン配列メモリコントローラの異なる実施形態は、異なる入/出力インタフェースを有する現在既知のメモリ及び将来のメモリの組み合わせとインタフェースするように構成することができる。
【0066】
図8は、
図5に示されるチャネル制御モジュール200のうちの1つのブロック図である。この特定の実施形態では、チャネル制御モジュール200は、2つのメモリインタフェースプロトコルのうちの一方と共に動作するように構成可能である。説明のための例として、使用されている2つのメモリインタフェースプロトコルは、ONFi及びHLNANDメモリインタフェースプロトコルである。
【0067】
ここで示されている実施形態では、チャネル制御モジュール200は、ECCエンコーダ300と、ECCデコーダ302と、コマンドプロセッサ304と、アドレスプロセッサ306と、チャネル制御論理308と、データスクランブラ310と、データデスクランブラ312と、暗号化プロセッサ314と、EDCプロセッサ316と、デュアルメモリインタフェースモジュール318とを含む。デュアルメモリインタフェースモジュール318は、メモリ素子(図示せず)に電気的に結合される1組のポートを含む。上述した構成要素のうちの幾つかの機能については、
図4のブロック図を更に参照して説明する。
【0068】
一般に、チャネル制御モジュール200を通してメモリ素子にプログラムされるデータには、誤り検出又は誤り修正符号が添付され、メインデータと共にメモリ素子のメモリセルアレイに記憶される。
【0069】
チャネル制御モジュール200は、この機能のためにECCエンコーダ300を使用する。そのようなデータがメモリ素子から
図4のRAM110に読み出されると、ECCデコーダ302は、データからECC符号を再生成し、それを、メモリ素子にプログラムされたときにデータに添付されたECCコーダと比較する。データが書き込まれたデータと同一である場合、ECC回路は、データエラーが存在しないことを示す。読み出されたデータに幾つかの違いが検出され、違いが、ECCの修正能力内にあるほど十分に小さい場合、読み出されたデータ(通常、RAM110に含まれる)は、プロセッサ108によって制御されるように、ECC修正エンジン116によって「修正」又は変更されて、元の値を復元する。データエラーがECC修正能力を超える場合、「修正不可能」な読み出しエラーが発生する。通常、読み出し時、修正不可能な読み出しエラーにより、エラーステータスがホストインタフェースに返されることになる。
【0070】
ホストが、ホストインタフェースブロック106を通してプロセッサ108に要求を送信する場合、これに応答して、プロセッサ108は、コマンドをホストインタフェースブロック106から読み出し、コマンドに基づいて、チャネル制御モジュール200においてデータ経路をセットアップし、コマンドプロセッサ304のチャネル制御モジュールのコマンドレジスタにコマンドを記憶する。
【0071】
プロセッサ108は、アドレスをホストインタフェースブロック106から内部NANDアドレスに変換し、チャネル制御モジュールのアドレスプロセッサ306に記憶もする。論理/物理アドレス変換を実行すべき場合、プロセッサ108はマッピングテーブルを使用して、正確な物理アドレスを作成することができる。プロセッサ108は、後述する1つ又は複数の追加の機能を実行することもできる。次に、プロセッサ108は、RAM110からチャネル制御モジュール200へのデータ転送をセットアップする。
図5に示されるように、メモリインタフェースブロック112が複数のチャネル制御モジュールを含むことができることに留意する。
【0072】
チャネル制御モジュール200は、値をアドレスプロセッサ306からとり、ONFiメモリインタフェースプロトコルフォーマット又はHLNANDメモリインタフェースプロトコルフォーマットに従ってフォーマットする。RAM110に記憶されたデータは、暗号化のために暗号化プロセッサ314に送信され、次に、データスクランブラ310を通して送信される。データスクランブラ310は、データをスクランブルし、スクランブルデータをECCエンコーダ300に出力し、エンコーダ300は、データと共に記憶されるECCパリティビットを生成する。次に、データ及びECCパリティデータは、ONFiメモリインタフェースプロトコルフォーマット又はHLNANDメモリインタフェースプロトコルフォーマットのいずれかを用いて、デュアルメモリインタフェースモジュール318ポートを通して、ページプログラム又は書き込みコマンドと共にメモリ素子に転送されて、記憶される。
【0073】
チャネル制御モジュール200は、EDCエンコーダと、EDCデコーダとを含むEDCプロセッサ316を更に含む。EDCプロセッサ316は、HLNAND又はONFiメモリインタフェースプロトコルのいずれかの誤り検出符号化アルゴリズムを実行する。チャネル制御論理308は一般に、ある機能ブロックから別の機能ブロック、並びにデュアルメモリインタフェースモジュール318及びバスへの処理された情報及びデータのルーティングを担当する。
【0074】
まとめると、チャネル制御モジュール200の上述した機能ブロックは、使用中のメモリインタフェースプロトコルから独立して、メモリ素子に書き込まれるデータ及びメモリ素子から読み出されたデータに対するデータ処理動作を実行する。チャネル制御論理308が、例えば、制御信号、CLE、ALE、CSO、及びDSO等の、デュアルメモリインタフェースモジュール318を通して制御信号をいつ駆動するかを決定することもでき、それにより、それらのアサートを、特定のメモリ動作及び適切なシーケンスと調整することに留意する。したがって、チャネル制御論理308は、HLNAND及びONFiの両方に固有のアルゴリズムを実行するように構成される。
【0075】
デュアルメモリインタフェースモジュール318は、1組のポートで受信されたデータ及び他の情報を捕捉し、2つのメモリインタフェースプロトコルフォーマットのいずれかからのデータ及び受信情報をネイティブメモリコントローラフォーマットに変換することを担当する。逆に、デュアルメモリインタフェースモジュール318は、2つのメモリインタフェースプロトコルフォーマットのうちのいずれかでコマンド、アドレス、及び書き込みデータを提供することを担当する。1組のみのポートが利用可能であるため、少なくとも1つのポートに2つの異なる機能が割り当てられる。2つの異なるメモリインタフェースプロトコル間で、1つのみの信号の機能が異なることがあり得る。他方、2つの異なるメモリインタフェースプロトコル間のあらゆる信号の機能が異なることがあり得る。
【0076】
図9は、各ポートに複数の機能が割り当てられる、
図8のデュアルメモリインタフェースモジュール318のブロック図である。本実施形態によれば、両メモリインタフェースプロトコルでの特定のカテゴリの信号は、可能な場合は常に、同じポートにマッピングされる。信号のカテゴリは、出力信号、入力信号、及び双方向信号を含む。信号のカテゴリごとに、両メモリインタフェースプロトコルでの同様のタイプの信号は、可能な場合は常に、同じポートにマッピングされる。信号のタイプは、制御信号、ステータス信号、データ信号、及びクロック信号を含む。信号の各カテゴリは、パッドに接続される対応するタイプのバッファ回路を有する。
図9の実施形態では、デュアルメモリインタフェースモジュール318は、ONFi及びHLNANDメモリインタフェースプロトコル等の2つの異なるメモリインタフェースプロトコル用に構成されたポートバッファ回路を有する。
【0077】
図9のデュアルメモリインタフェースモジュール318の実施形態は、各パッドのポートバッファ回路を含み、パッドは、ボンドワイヤの一端部に電気的に接続するための、半導体基板の金属化エリアである。ボンドワイヤの他端部は、半導体基板を封入するパッケージの物理的なピンに接続される。デュアルメモリインタフェースモジュール318の実施形態は、参照番号400、402、404、及び406によって示される複数のポートバッファ回路を含む。ポートバッファ回路400は、本実施形態では、モードセレクタ回路である入力バッファ回路である。
図9の表に示されるように、VDD(論理1)又はVSS(論理0)へのポートバッファ回路400のパッドの接続により、他のポートバッファ回路402、404、及び406を、2つのメモリインタフェースプロトコルのうちいずれとして構成すべきかが選択される。ポートバッファ回路402及び406は双方向ポートバッファ回路であり、これは、信号を出力し受信する駆動回路及び受信器回路を含むことを意味する。ポートバッファ回路402及び406は、それぞれが受信する信号のタイプに起因して、互いとは異なるように構成される。ポートバッファ回路404は単方向ポートバッファ回路であり、特に、信号を出力する駆動回路のみを含む。
【0078】
デュアルメモリインタフェースモジュール318の右側には、各ポートバッファ回路の信号割り当てを列挙した表がある。一番左側の列は、各ポートバッファ回路のONFiメモリインタフェースプロトコル信号を列挙し、一方、一番右側の列は、同じポートバッファ回路のHLNANDメモリインタフェースプロトコル信号を列挙する。本例は、ポートバッファ回路の1つの可能なデュアルピン配列マッピングを示す。
図9の表に示されるように、2つのメモリインタフェースプロトコルからのCKI及びDQS等のクロック信号は、同じポートバッファ回路402にマッピングされ、CLE及びCSO等の制御信号は、同じポートバッファ回路404にマッピングされる。ONFiメモリインタフェースプロトコルが、データ信号DQ[0]〜DQ[7]の提供及び受信に8つの双方向ポートバッファ回路を使用し、一方、HLNANDメモリインタフェースプロトコルが、入力データD[0]〜D[7]の受信に8つのポートを必要とし、出力データQ[0]〜Q[7]の駆動に8つのポートを必要とすることに留意する。したがって、HLNANDメモリインタフェースプロトコルの16個のデータ信号のONFiメモリインタフェースプロトコルの8個のデータ信号への直接マッピングはない。しかし、ONFiメモリインタフェースプロトコルは、チャネルの各ONFiメモリ素子のイネーブルに個々のチップイネーブル信号CE[0]〜CE[7]を必要とし、これらはHLNANDメモリインタフェースプロトコルでは必要ない。したがって、ONFiメモリインタフェースプロトコルのチップイネーブルポートは、HLNANDメモリインタフェースプロトコルでデータを出力するように構成される。
図9のデュアルメモリインタフェースモジュール318は、複数の信号を同じポートにいかに割り当てることができるかの例を示すことを目的とし、したがって、ONFi及びHLNANDメモリインタフェースプロトコルの全てのポート及び信号を示しているわけではない。
【0079】
ポートバッファ回路400、402、404、及び406の実施形態を
図10、
図11、
図12、及び
図13の回路概略図に示す。
【0080】
図10は、本開示の一実施形態による、
図9に示されるモード選択回路400の回路概略図である。更に詳細に後に示されるように、他のポートバッファ回路は、モード選択回路400がいかに設定されるかに応じて、2つの異なるモードのうちの一方で動作するように構成される。
【0081】
図10の実施形態では、パッド500は、半導体チップ又は基板の表面上の金属化エリアであり、金ワイヤボンディング等の接続を行うことができる。本例では、パッド500は、電源VDD又は接地VSSのうちの一方に接合されたワイヤである。例として入力バッファ回路等の入力受信器回路502は、パッド500のVDD又はVSS接続を検出して、内部選択信号SELを内部ハイ論理レベル又はロー論理レベルのいずれかに駆動する。本例では、SELが論理ローレベル(0)である場合、デュアルモードピン配列メモリコントローラ102は、ONFiメモリインタフェースプロトコル等の第1のメモリインタフェースプロトコルと動作するように設定される。SELが論理ハイレベル(1)である場合、デュアルモードピン配列メモリコントローラ102は、HLNANDメモリインタフェースプロトコル等の第2のメモリインタフェースプロトコルと動作するように設定される。より詳細には、デュアルモードピン配列メモリコントローラの他の各ポートバッファ回路は、マッピングされる2つの信号のうちの一方を受信するか、又は提供するように構成される。
【0082】
上述したように、2つ以上のパッドを、3つ以上の異なるメモリインタフェースプロトコルモード間の選択に使用することができ、各パッドは各入力バッファ回路に接続され、出力を復号化して、各ポートバッファ回路の特定の論理回路をイネーブルすることができる。
【0083】
図11は、本開示の一実施形態による、
図9に示される双方向ポートバッファ回路402の回路概略図である。パッド510は、ONFiメモリ素子のDQSピン又はHLNAND準拠メモリ素子のCKIピンのいずれかに電気的に結合することができる。バッファ回路は、受信経路と、出力経路とを含む。受信経路は、入力バッファ等の受信器512と、デマルチプレクサ514等のセレクタと、HLNANDメモリインタフェースプロトコル等の1つのメモリインタフェースプロトコルから信号を受信するように構成される第1の論理ブロック516とを含む。第1の論理ブロック516は特に、デマルチプレクサ514を介してパッド510からCKI信号を受信するように構成され、HLNANDメモリインタフェースプロトコルの要件に従って信号を処理するように構成し得、必要とされる任意の信号をチャネル制御モジュール200の特定の回路ブロックに提供する。特に、HLNAND論理ブロック516は、バッファリングされたクロック信号をチャネル制御モジュールに提供し、遅延ロックループ(DLL)又はフェーズロックループ(PLL)を含み得る。デマルチプレクサ514によって受信される信号は、「in」と呼ばれ、パッド510で受信されるDQS又はCKI信号に対応することができる。デマルチプレクサ514は選択信号SELによって制御されて、信号「in」を「0」及び「1」と記される2つの出力のうちの一方に渡す。本例では、SELが、HLNANDメモリインタフェースプロトコルモードの選択に対応する論理レベルである場合、「in」は「1」出力に渡される。逆に、SELが、ONFiメモリインタフェースプロトコルモードに対応する論理レベルである場合、「in」は「0」出力に渡される。
【0084】
図11の例では、SELは、ONFiメモリインタフェースメモリプロトコルモードの場合にはロー論理レベルであり、HLNANDメモリインタフェースプロトコルモードの場合にはハイ論理レベルである。HLNANDメモリインタフェースプロトコルモードでは、デマルチプレクサ514は、クロック信号CLK_inを論理ブロック516に提供し、一方、ONFiメモリインタフェースプロトコルモードでは、デマルチプレクサ514は、データクロック信号DQS_inを第2の論理ブロック518に提供する。
【0085】
出力経路は第2の論理ブロック518を含み、このブロック518は、出力データクロック信号DQS_outと、受信入力データクロック信号DQS_inとの両方を制御する。特に、第2の論理ブロック518は、DQS_inをデュアルメモリインタフェースモジュール318から受信し、ONFiメモリインタフェースプロトコルの要件に従ってその信号を処理して、入力データ同期を提供し、チャネル制御モジュール200の特定の回路ブロックに、必要とされる任意の信号を提供する。同様に、第2の論理ブロック518は、デュアルメモリインタフェースモジュール318等のチャネル制御モジュール200の他の回路から信号を受信して、出力データ同期のために、出力データクロック信号DQS_outを生成する。DQS_out信号は出力駆動回路520によってパッド510に駆動されている。出力駆動回路520が選択信号SELによってイネーブル又はディセーブルされることに留意する。デマルチプレクサ514について上述したように、ロー論理レベルのSELはONFiメモリインタフェースプロトコルモードに対応する。したがって、この動作モードでは、出力駆動回路520はイネーブルされるか、又はオンになり、DQS_out信号を増幅し、パッド510を駆動する。他方の動作モードでは、すなわち、SELがHLNANDメモリインタフェースプロトコルモードに対応するハイ論理レベルである場合、出力駆動回路520はディセーブルされるか、又はオフになり、受信器512をオンのままにし、デマルチプレクサ514を介して、パッド510から受信したCKI信号を論理ブロック516に提供する。次に、バッファリングされたクロック信号は、デュアルメモリインタフェースモジュール318に提供される。
【0086】
SELがロー論理レベルであるとき、出力駆動回路520及び受信器512は両方ともイネーブルされ、それにより、任意の出力DQS信号をパッド510に駆動することができ、その間、任意の受信入力DQS信号を、受信器512及びデマルチプレクサ514を通して論理ブロック518によって受信することができることに留意する。
【0087】
図11の実施形態では、ポートバッファ回路402は、双方向DQS信号又は受信CKI信号のいずれかのために構成される。しかし、同様のポートバッファ回路を、
図9で402と記される他のポートバッファ回路に利用することもできる。
図9の実施形態に示されるように、各ONFi信号は双方向信号であり、一方、各双方向ONFi信号にマッピングされるHLNAND信号は、入力信号である。したがって、
図11の同じ回路ブロックが、他のポートバッファ回路402に使用されるが、
図11に示される論理ブロック516及び518は、それらにマッピングされる特定の信号を処理するように構成される。
【0088】
図12は、本開示の一実施形態による、
図9に示される出力ポートバッファ回路404の回路概略図である。出力ポートバッファ回路404は、第1のメモリインタフェースプロトコルに対応する信号を処理するように構成される第1の論理ブロック530と、第2のメモリインタフェースプロトコルに対応する信号を処理するように構成される第2の論理ブロック532と、マルチプレクサ534等のセレクタと、出力駆動回路536と、パッド538とを含む。ここで示される例では、第1の論理ブロック530はONFi論理ブロックであり、第2の論理ブロック532はHLNAND論理ブロックである。ONFi論理ブロック530は、情報をデュアルインタフェースメモリモジュール318から受信し、チャネル制御モジュール200の他の回路ブロックに応答して、読み出しイネーブル信号RE_outを提供し、これはマルチプレクサ534の「0」入力によって受信される。より詳細には、ONFi論理ブロック530は、プロトコルの要件に従って受信信号を処理して、RE_out信号を生成するように構成される。HLNAND論理ブロック532は、デュアルインタフェースメモリモジュール318から受信される情報に応答して、出力クロック信号CKO_outを提供し、これはマルチプレクサ534の「1」入力によって受信される。より詳細には、HLNAND論理ブロック532は、プロトコルの要件に従って受信信号を処理して、CKO_out信号を生成するように構成される。
【0089】
マルチプレクサ534は、選択信号SELに応答して、RE_out及びCKO_outのうちの一方を信号「out」として渡す。本例では、ハイ論理レベルのSELはHLNANDメモリインタフェースプロトコルモードに対応し、それにより、CKO_outを出力駆動回路536に渡す。他方、ロー論理レベルのSELはONFiメモリインタフェースプロトコルモードに対応し、それにより、RE_outを出力駆動回路536に渡す。次に、出力駆動回路536は受信信号を増幅し、パッド538に駆動する。両信号RE及びCKOがONFi及びHLNANDメモリインタフェースプロトコルの出力信号であることに留意する。したがって、
図12の実施形態は、ポートバッファ回路が2つの異なる出力信号を提供するようにいかに構成されるかを示す一例である。
【0090】
図13は、本開示の一実施形態による、
図9に示される代替の双方向ポートバッファ回路406の回路概略図である。双方向ポートバッファ回路406は、受信経路と、出力経路とを含む。出力経路は、第1の論理ブロック550と、信号を増幅してパッド554に駆動する出力駆動回路552とを含む。受信経路は、パッド554で受信された信号を事前処理する受信器556と、第2の論理ブロック558とを含む。本例では、第1の論理ブロックは、チャネル制御モジュール200の他の回路ブロックに応答して、書き込みイネーブル信号WE_outを提供するONFi論理ブロックであり、第2の論理ブロックは、チャネル制御モジュール200の他の回路ブロックに提供されるデータストローブ入力信号DSI_inを受信するHLNAND論理ブロックである。特に、論理ブロック550は、選択されたプロトコルの要件に従って、チャネル制御モジュール200の他の回路ブロックから受信される信号を処理して、WE_out信号を生成するように構成される。同様に、論理ブロック558は、選択されたプロトコルの要件に従ってDSI_in信号を処理し、必要とされる任意の信号をチャネル制御モジュール200の特定の回路ブロックに提供するように構成される。
【0091】
ここで示される双方向ポートバッファ回路は、パッドが第1のメモリインタフェースプロトコルモードで出力信号を提供し、第2のメモリインタフェースプロトコルモードで入力信号を受信する構成例を示す。例えば、選択信号SELがロー論理レベルであるとき、出力駆動回路552はイネーブルされ、一方、受信器556はディセーブルされる。逆に、SELがハイ論理レベルであるとき、出力駆動回路552はディセーブルされ、一方、受信器556はイネーブルされる。したがって、選択信号SELの状態に応じて、受信経路及び出力経路のうちの一方のみがアクティブである。
【0092】
図13の実施形態が、選択信号SELによってイネーブル又はディセーブルされている出力駆動回路520及び入力バッファ512を示すことに留意する。
図11の実施形態は、SELによってイネーブル又はディセーブルされている出力駆動回路520のみを示すが、代替の実施形態では、入力バッファ512をSELによってイネーブル又はディセーブルすることができる。
【0093】
図14は、本開示の一実施形態によるデュアルモード入力インタフェース回路の回路回略図である。この特定の回路実施形態は、2つの異なるメモリインタフェースプロトコルの入力信号が同じポートにマッピングされる場合に使用することができる。
図14に示されるように、デュアル入力ポートバッファ回路570は、パッド572と、パッド572に接続される受信器574と、デマルチプレクサ576等のセレクタと、第1のメモリインタフェースプロトコルに対応する信号を処理するように構成される第1の論理ブロック578と、第2のメモリインタフェースプロトコルに対応する信号を処理するように構成される第2の論理ブロック580とを含む。ここで示される実施形態では、任意のメモリインタフェースプロトコルに固有の信号は示されていない。したがって、パッド572を電気的に結合して、第1の入力又は第2の入力を受信することができ、各入力は異なるメモリインタフェースプロトコルに対応する。受信器574は、パッド572で受信した信号をバッファリングし、その信号を「in」としてデマルチプレクサ576の入力に渡す。デマルチプレクサ576は、選択信号SELの状態に応答して、「in」を「0」又は「1」出力に渡す。上述したように、SELはハイ又はロー論理レベルのいずれかに設定されて、使用中の選択されたメモリインタフェースプロトコルを示す。論理ブロック578及び580は、選択されたプロトコルの要件に従って信号を処理し、必要とされる任意の信号をチャネル制御モジュール200の特定の回路ブロックに提供するように構成される。
【0094】
前に示された
図9の実施形態及び
図10〜
図14のポートバッファ回路実施形態は、デュアルモードピン配列メモリコントローラ実施形態の可能な1つのデュアルピン配列マッピング構の例を示す。信号がマッピングされるポートが、マッピングされた信号を受信又は提供するように構成される場合、他のデュアルピン配列マッピングも可能である。前に示されたポートバッファ回路実施形態は、入力信号、出力信号、及び双方向信号の組み合わせを単一のポートにマッピングするのに使用することができる。いずれの場合でも、ポートバッファ回路で受信された信号は、チャネル制御モジュール200によって受信されて処理され、バス118を介してメモリコントローラ102の他の回路ブロックに渡される。最終的には、データは、ホストインタフェース106を介してホストに提供される。同様に、ホストインタフェース106で受信される任意のデータ及びコマンドは、バス118を介してメモリコントローラの回路ブロックによって処理され、最終的に、メモリインタフェース112のターゲットのチャネル制御モジュールに提供され、チャネル制御モジュールは、メモリ素子のシグナリングに必要なプロトコル適合を実行する。
【0095】
前に示された実施形態は、2つのメモリインタフェースプロトコルの信号をいかに、メモリコントローラの1組のポートにマッピングすることができるかを示す。代替の実施形態では、各ポートバッファ回路は、3つ以上の異なるタイプの信号を受信するように構成することができる。例えば、示される2−1マルチプレクサ又は1−2デマルチプレクサは、3−1マルチプレクサ又は1−3デマルチプレクサで置換することができ、信号を処理して、第3の信号を出力するため、又は受信した第3の信号を処理するために、追加の論理ブロックを含むことができる。
図10〜
図14のポートバッファ回路実施形態を理解した当業者は、各ポートにマッピングされた3つ以上の信号に対応するように回路をいかにスケーリングするかを理解するだろう。
【0096】
デュアルモードピン配列メモリコントローラ実施形態は、SSDドライブ及び他のポータブルメモリ記憶装置を含む固体状態メモリシステム等の任意のメモリシステムで使用することができる。デュアルモードピン配列メモリコントローラ実施形態は更に、例として、携帯電話、ラップトップコンピュータ、及びタブレットを含むポータブル電子装置内等の不揮発性メモリを使用するシステムに統合することができる。
【0097】
上述した実施形態では、装置要素及び回路は、簡潔にするために、図に示されるように互いに接続される。本開示の実際用途では、要素、回路等は互いに直結し得る。同様に、要素、回路等は、デバイス及び装置の動作に必要な他の要素、回路等を通して互いに間接的に接続し得る。したがって、実際の構成では、回路要素及び回路は、互いに直接又は間接的に結合又は接続される。
【0098】
上記説明では、説明のために、多くの詳細が記載されて、実施形態の完全な理解を提供している。しかし、これらの特定の詳細が必要ないことが当業者には明らかだろう。他の場合、理解を曖昧にしないように、周知の電気構造体及び回路はブロック図の形態で示されている。
【0099】
上記実施形態は、単なる例であることが意図される。当業者は、本明細書に添付される特許請求の範囲によってのみ規定される範囲から逸脱せずに、特定の実施形態に変更、修正、及び変形を行うことができる。