(57)【要約】  ホスト(14)と通信するデータ記憶デバイスのメモリコントローラ(16)は、異なるメモリインターフェースプロトコルで動作する2つの異なるタイプのメモリデバイスとインターフェースする3つの異なるピン配列割り当てを有する複数のチャネル制御モジュールを有し、1つのピン配列割り当て(40)はメモリデバイス(42〜46)が互いに並列に接続されるメモリインターフェースプロトコルに対応する。2つの他のピン配列割り当て(60)はメモリデバイス(62〜68)が互いに直列に接続される別のメモリインターフェースプロトコルのインバウンド信号及びアウトバウンド信号にそれぞれ対応する。この動作モードでは、1つのチャネル制御モジュールはアウトバウンド信号を提供し、別のチャネル制御モジュールはインバウンド信号を受信する。チャネル制御モジュールの各メモリポートは異なる機能的信号割り当て用のポートバッファ回路網を含む。
2015536496.tif 000002
【特許請求の範囲】
【請求項１】
第1のメモリインターフェースプロトコルでの通信に適合した第1の信号、前記第1のメモリインターフェースプロトコルとは異なる第2のメモリインターフェースプロトコルでの通信に適合した第2の信号、または、前記第2のメモリインターフェースプロトコルでの通信に適合した第3の信号をバッファリングするように構成可能な回路網を含む少なくとも1つのメモリインターフェースポートを各々が有するチャネル制御モジュールと、
ホストデバイスとメモリインターフェースとの間で情報を通信するためのホストインターフェースポートを有するホストインターフェースと
を備える多機能メモリコントローラ。
【請求項２】
前記チャネル制御モジュールの各々が、
第1の電圧または第2の電圧のいずれかに選択的に接続可能な第1のモード選択ポートと、
前記第1のモード選択ポートと独立して前記第1の電圧または前記第2の電圧のいずれかに選択的に接続可能な第2のモード選択ポートと
を含む、請求項1に記載の多機能メモリコントローラ。
【請求項３】
すべての前記チャネル制御モジュールの前記少なくとも1つのメモリインターフェースポートが、前記第1のメモリインターフェースプロトコルでの通信に適合した前記第1の信号をバッファリングするように構成された、請求項2に記載の多機能メモリコントローラ。
【請求項４】
前記第1のモード選択ポートおよび前記第2のモード選択ポートが、前記第1の信号をバッファリングするようにすべての前記チャネル制御モジュールを構成するための前記第1の電圧および前記第2の電圧の第1の予め定義された組み合わせに接続される、請求項3に記載の多機能メモリコントローラ。
【請求項５】
第1のチャネル制御モジュールが、前記第2のメモリインターフェースプロトコルで通信するための前記第2の信号をバッファリングするように構成され、第2のチャネル制御モジュールが、前記第2のメモリプロトコルで通信するための前記第3の信号をバッファリングするように構成された、請求項4に記載の多機能メモリコントローラ。
【請求項６】
前記第1のチャネル制御モジュールの前記第1のモード選択ポートおよび前記第2のモード選択ポートが、前記第1の予め定義された組み合わせとは異なる、前記第1の電圧および前記第2の電圧の第2の予め定義された組み合わせに接続される、請求項5に記載の多機能メモリコントローラ。
【請求項７】
前記第2のチャネル制御モジュールの前記第1のモード選択ポートおよび前記第2のモード選択ポートが、前記第1の予め定義された組み合わせおよび前記第2の予め定義された組み合わせとは異なる、前記第1の電圧および前記第2の電圧の第3の予め定義された組み合わせに接続される、請求項6に記載の多機能メモリコントローラ。
【請求項８】
第1のチャネル制御モジュールが、前記第2のメモリインターフェースプロトコルで通信するための前記第2の信号をバッファリングするように構成され、第2のチャネル制御モジュールが、前記第2のメモリプロトコルで通信するための前記第3の信号をバッファリングするように構成された、請求項2に記載の多機能メモリコントローラ。
【請求項９】
前記第2の信号が、アウトバウンド信号であり、前記第3の信号が、インバウンド信号である、請求項8に記載の多機能メモリコントローラ。
【請求項１０】
前記第1のチャネル制御モジュールが、前記第2のメモリインターフェースプロトコルで通信するためのアウトバウンド信号のみをバッファリングするように構成され、前記第2のチャネル制御モジュールが、前記第2のメモリインターフェースプロトコルで通信するためのインバウンド信号のみをバッファリングするように構成された、請求項9に記載の多機能メモリコントローラ。
【請求項１１】
前記第1のメモリインターフェースプロトコルが、ONFiメモリインターフェースプロトコルである、請求項10に記載の多機能メモリコントローラ。
【請求項１２】
前記第2のメモリインターフェースプロトコルが、HLNANDメモリインターフェースプロトコルである、請求項10に記載の多機能メモリコントローラ。
【請求項１３】
第1のメモリインターフェースプロトコルに対応する第1の信号と、第2のメモリインターフェースプロトコルに対応する第2の信号と、前記第2のメモリインターフェースプロトコルに対応する第3の信号とをバッファリングするように構成されたポートを各々が有するチャネル制御モジュールを含むメモリコントローラと、
前記チャネル制御モジュールの1つと通信する際に、前記第1のメモリインターフェースプロトコルおよび前記第2のメモリインターフェースプロトコルのうちの一方で動作可能であるメモリデバイスと
を備える不揮発性メモリシステム。
【請求項１４】
前記チャネル制御モジュールの各々が、
第1の電圧または第2の電圧のいずれかに選択的に接続可能な第1のモード選択ポートと、
前記第1のモード選択ポートと独立して前記第1の電圧または前記第2の電圧のいずれかに選択的に接続可能な第2のモード選択ポートと
を含む、請求項13に記載の不揮発性メモリシステム。
【請求項１５】
前記第1のメモリインターフェースプロトコルでは、前記メモリデバイスが、前記チャネル制御モジュールの1つのチャネル制御モジュールの前記ポートに並列に接続された少なくとも2つのメモリチップを含む、請求項13に記載の不揮発性メモリシステム。
【請求項１６】
前記第1のメモリインターフェースプロトコルが、ONFiメモリインターフェースプロトコルである、請求項15に記載の不揮発性メモリシステム。
【請求項１７】
前記第2の信号が、アウトバウンド信号であり、前記第3の信号が、インバウンド信号である、請求項15に記載の不揮発性メモリシステム。
【請求項１８】
第1のチャネル制御モジュールが、前記アウトバウンド信号をバッファリングするように構成され、第2のチャネル制御モジュールが、前記第2のメモリインターフェースプロトコルの前記インバウンド信号をバッファリングするように構成された、請求項17に記載の不揮発性メモリシステム。
【請求項１９】
前記第2のメモリインターフェースプロトコルでは、前記メモリデバイスが、前記第1のチャネル制御モジュールおよび前記第2のチャネル制御モジュールとリングトポロジー構成で直列に接続された少なくとも2つのメモリチップを含む、請求項18に記載の不揮発性メモリシステム。
【請求項２０】
前記第2のメモリインターフェースプロトコルが、HLNANDメモリインターフェースプロトコルである、請求項19に記載の不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全体的にメモリシステムに関する。より具体的には、本出願は、不揮発性メモリコントローラに関する。
【背景技術】
【０００２】
今日、多くの電子デバイスは、デバイスによって利用される情報(データ)を記憶するために使用されるメモリシステムを含む。例えば、いくつかのデジタルオーディオプレーヤは、プレーヤによって再生され得るデジタル化されたオーディオを記憶するために使用されるメモリシステムを含む。同様に、パーソナルコンピュータシステムは、しばしば、コンピュータシステムによって利用されるソフトウェアを記憶するために、メモリシステムを用いる。
【０００３】
多くの電子デバイスでは、メモリシステムは、しばしば、コントローラと、1つまたは複数のメモリデバイスとを備える。コントローラは、典型的には、情報を記憶するおよび引き出すようにメモリデバイスに指示するために使用される信号を生成するように構成された回路網を含む。メモリデバイスは、典型的には、メモリデバイスに含まれるメモリに情報を記憶する。メモリは、揮発性または不揮発性であり得る。揮発性メモリを含むメモリデバイスは、しばしば、デバイスの電力がオフになると記憶された情報を失う。不揮発性メモリを含むメモリデバイスは、しばしば、デバイスの電力がオフになっても記憶された情報を維持する。
【０００４】
特定の従来のメモリシステムでは、データおよび制御信号は、パラレルバスを使用してコントローラとメモリデバイスとの間で並列に転送される。しばしば、バスを実装するために多くの配線が使用され、メモリシステムのレイアウトに応じて、配線は、かなりの長さに延在する可能性がある。
【０００５】
電子機器は、例えば、メモリデバイスなどの半導体デバイスを使用する。メモリデバイスは、ランダムアクセスメモリ(RAM:random access memory)、フラッシュメモリ(例えば、NANDフラッシュデバイス、NORフラッシュデバイス)、および、データまたは情報を記憶するための他のタイプのメモリを含むことができる。メモリデバイスは、記憶デバイス(例えば、ソリッドステートドライブ(SSD:solid state drive))として形成するために組み合わせることもできる。
【発明の概要】
【課題を解決するための手段】
【０００６】
本開示の第1の態様によれば、多機能メモリコントローラが提供される。多機能メモリコントローラは、チャネル制御モジュールとホストインターフェースとを含む。チャネル制御モジュールは、第1のメモリインターフェースプロトコルでの通信に適合した第1の信号、第1のメモリインターフェースプロトコルとは異なる第2のメモリインターフェースプロトコルでの通信に適合した第2の信号、または、第2のメモリインターフェースプロトコルでの通信に適合した第3の信号をバッファリングするように構成可能な回路網を含む少なくとも1つのメモリインターフェースポートを、各々が有する。ホストインターフェースは、ホストデバイスとメモリインターフェースとの間で情報を通信するためのホストインターフェースポートを有する。
【０００７】
第1の態様の一実施形態によれば、チャネル制御モジュールの各々は、第1の電圧または第2の電圧のいずれかに選択的に接続可能な第1のモード選択ポートと、第1のモード選択ポートと独立して第1の電圧または第2の電圧のいずれかに選択的に接続可能な第2のモード選択ポートとを含む。すべてのチャネル制御モジュールの少なくとも1つのメモリインターフェースポートは、第1のメモリインターフェースプロトコルでの通信に適合した第1の信号をバッファリングするように構成される。第1のモード選択ポートおよび第2のモード選択ポートは、第1の信号をバッファリングするようにすべてのチャネル制御モジュールを構成するための第1の電圧および第2の電圧の第1の予め定義された組み合わせに接続される。この実施形態では、第1のチャネル制御モジュールは、第2のメモリインターフェースプロトコルで通信するための第2の信号をバッファリングするように構成され、第2のチャネル制御モジュールは、第2のメモリプロトコルで通信するための第3の信号をバッファリングするように構成される。第1のチャネル制御モジュールの第1のモード選択ポートおよび第2のモード選択ポートは、第1の予め定義された組み合わせとは異なる、第1の電圧および第2の電圧の第2の予め定義された組み合わせに接続され、第2のチャネル制御モジュールの第1のモード選択ポートおよび第2のモード選択ポートは、第1の予め定義された組み合わせおよび第2の予め定義された組み合わせとは異なる、第1の電圧および第2の電圧の第3の予め定義された組み合わせに接続される。
【０００８】
第1の態様の別の実施形態では、第1のチャネル制御モジュールは、第2のメモリインターフェースプロトコルで通信するための第2の信号をバッファリングするように構成され、第2のチャネル制御モジュールは、第2のメモリプロトコルで通信するための第3の信号をバッファリングするように構成され、第2の信号は、アウトバウンド信号であり、第3の信号は、インバウンド信号である。この実施形態では、第1のチャネル制御モジュールは、第2のメモリインターフェースプロトコルで通信するためのアウトバウンド信号のみをバッファリングするように構成され、第2のチャネル制御モジュールは、第2のメモリインターフェースプロトコルで通信するためのインバウンド信号のみをバッファリングするように構成される。第1のメモリインターフェースプロトコルは、ONFiメモリインターフェースプロトコルであり、第2のメモリインターフェースプロトコルは、HLNAND(商標)メモリインターフェースプロトコルである。
【０００９】
第2の態様では、メモリコントローラとメモリデバイスとを含む不揮発性メモリシステムが提供される。メモリコントローラは、第1のメモリインターフェースプロトコルに対応する第1の信号と、第2のメモリインターフェースプロトコルに対応する第2の信号と、第2のメモリインターフェースプロトコルに対応する第3の信号とをバッファリングするように構成されたポートを各々が有するチャネル制御モジュールを含む。メモリデバイスは、チャネル制御モジュールの1つと通信する際に、第1のメモリインターフェースプロトコルおよび第2のメモリインターフェースプロトコルのうちの一方で動作可能である。第2の態様の一実施形態によれば、チャネル制御モジュールの各々は、第1の電圧または第2の電圧のいずれかに選択的に接続可能な第1のモード選択ポートと、第1のモード選択ポートと独立して第1の電圧または第2の電圧のいずれかに選択的に接続可能な第2のモード選択ポートとを含む。第1のメモリインターフェースプロトコルの場合、メモリデバイスは、1つのチャネル制御モジュールのポートに並列に接続された少なくとも2つのメモリチップを含む。第1のメモリインターフェースプロトコルは、ONFiメモリインターフェースプロトコルであり得る。
【００１０】
メモリデバイスが第1のメモリインターフェースプロトコルでチャネル制御モジュールのポートに並列に接続された少なくとも2つのメモリチップを含む実施形態では、第2の信号は、アウトバウンド信号であり、第3の信号は、インバウンド信号である。この実施形態では、第1のチャネル制御モジュールは、アウトバウンド信号をバッファリングするように構成され、第2のチャネル制御モジュールは、第2のメモリインターフェースプロトコルのインバウンド信号をバッファリングするように構成される。第2のメモリインターフェースプロトコルの場合、メモリデバイスは、第1のチャネル制御モジュールおよび第2のチャネル制御モジュールとリングトポロジー構成で直列に接続された少なくとも2つのメモリチップを含む。第2のメモリインターフェースプロトコルは、HLNANDメモリインターフェースプロトコルであり得る。
【００１１】
本開示の他の態様および特徴は、添付図面と併せて以下の特定の実施形態の説明を検討すれば、当業者には明らかになるであろう。
【００１２】
本開示の実施形態は、添付図面を参照して、単なる例として説明される。
【図面の簡単な説明】
【００１３】
【図１】本開示の実施形態が適用されるメモリシステムのブロック図である。
【図２Ａ】第1のタイプのメモリコントローラの機能的ピン配列を示すブロック図である。
【図２Ｂ】第2のタイプのメモリコントローラの機能的ピン配列を示すブロック図である。
【図３Ａ】マルチドロップメモリシステムを示す概略図である。
【図３Ｂ】直列接続メモリシステムを示す概略図である。
【図４】本開示の一実施形態による、多機能メモリコントローラを使用するソリッドステート記憶デバイスのブロック図である。
【図５】本開示の一実施形態による、図4に示す多機能メモリコントローラのメモリインターフェースブロックのブロック図である。
【図６】本開示の一実施形態による、多機能メモリコントローラを使用するマルチドロップバスアーキテクチャメモリシステムのブロック図である。
【図７】本開示の一実施形態による、多機能メモリコントローラを使用するシリアルポイントツーポイントアーキテクチャメモリシステムのブロック図である。
【図８】本開示の一実施形態による、図6のマルチドロップバスアーキテクチャメモリシステムの一例を示す概略図である。
【図９】本開示の一実施形態による、一例のシリアルポイントツーポイントアーキテクチャメモリシステムを示す概略図である。
【図１０】本開示の一実施形態による、図7および図10に示すメモリインターフェースブロックのチャネル制御モジュールのブロック図である。
【図１１】本開示の一実施形態による、多機能チャネル制御モジュールのポートへの信号のピン配列マッピングの図である。
【図１２】本開示の一実施形態による、モード選択インターフェース回路の回路図である。
【図１３】本開示の一実施形態による、多モード双方向インターフェース回路の回路図である。
【図１４】本開示の一実施形態による、多モード双方向インターフェース回路の回路図である。
【図１５】本開示の一実施形態による、多モード出力インターフェース回路の回路図である。
【図１６】本開示の一実施形態による、代替の多モード双方向インターフェース回路の回路図である。
【発明を実施するための形態】
【００１４】
全体的に、本開示の実施形態は、異なるメモリインターフェースプロトコルで動作する2つの異なるタイプのメモリデバイスとインターフェースするための3つの異なるピン配列割り当てを有するように各々が構成され得るチャネル制御モジュールを有する、ホストと通信するデータ記憶デバイスのメモリコントローラを提供する。1つのピン配列割り当ては、メモリデバイスが互いに並列に接続され得るメモリインターフェースプロトコルに対応する。2つの他のピン配列割り当ては、メモリデバイスが互いに直列に接続される別のメモリインターフェースプロトコルのインバウンドおよびアウトバウンド信号にそれぞれ対応する。この動作モードでは、1つのチャネル制御モジュールは、アウトバウンド信号を提供するように構成され、別のチャネル制御モジュールは、インバウンド信号を受信するように構成される、チャネル制御モジュールの各々のメモリポートは、異なる機能的信号割り当てのために構成可能なポートバッファ回路網を含む。各チャネル制御モジュールの構成は、所定のポートまたはレジスタを設定することによって選択可能である。
【００１５】
フラッシュメモリは、例えば、デジタルカメラおよびポータブルデジタル音楽プレーヤなどの民生用電子機器のための大容量記憶装置として広範囲な用途で一般的に使用されているタイプの不揮発性メモリである。そのようなフラッシュメモリは、各々が内部に形成された少なくとも1つのメモリデバイスおよびメモリコントローラを有する、メモリカードまたはユニバーサルシリアルバス(USB:universal serial bus)タイプメモリスティックの形態をとる。別の大容量記憶装置の用途は、コンピュータのハードディスクドライブの代替品として使用され得るソリッドステートドライブ(SSD)である。これらのソリッドステートドライブは、コンピュータワークステーション、ネットワーク、および大量のデータを格納する必要のある実質的にどのような用途にも使用され得る。
【００１６】
図1は、例えば、本開示の実施形態が適用される不揮発性メモリシステムなどのシステムを示す。図1を参照すると、不揮発性メモリシステム10は、データ記憶デバイス12と、外部デバイスまたは装置としてのホスト14とを含む。データ記憶デバイス12の非限定的な例は、ソリッドステートドライブ(SSD)である。ホスト14の非限定的な例は、コンピュータまたは他のコンピューティングシステムである。
【００１７】
データ記憶デバイス12は、メモリコントローラ16とメモリ18とを含む。メモリ18は、揮発性メモリデバイス、または、例えば、フラッシュメモリデバイスなどの不揮発性メモリデバイスを含む。メモリ18は、従来の回転磁気記憶ディスクを含むことができる。ホスト14は、インターフェースプロトコルバス20を介してデータ記憶デバイス12と結合され、インターフェースプロトコルを使用してメモリコントローラ16と通信する。インターフェースプロトコルは、例えば、周辺構成要素相互接続エクスプレス(PCI-E:peripheral component interconnect-express)プロトコル、アドバンステクノロジアタッチメント(ATA:advanced technology attachment)プロトコル、シリアルATA(ASTA:serial ATA)プロトコル、パラレルATA(PATA:parallel ATA)プロトコル、または、シリアルアタッチドSCSI(SAS:serial attached SCSI)プロトコルを含む。しかしながら、ホスト14とデータ記憶デバイス12との間のインターフェースプロトコルは、上記の例に限定されず、ユニバーサルシリアルバス(USB)プロトコル、マルチメディアカード(MMC:multi-media card)プロトコル、エンハンスドスモールディスクインターフェース(ESDI:enhanced small disk interface)プロトコル、インテグレーテッドドライブエレクトロニクス(IDE:integrated drive electronics)プロトコル、などの他のインターフェースプロトコルを含むことができる。インターフェースプロトコルバス20は、ホスト14とメモリコントローラ16との間でデータおよびコマンドを転送し、ピン、ポート、および他の物理的インターフェースの形態を有する。データ記憶デバイス12は、例えば、従来のHDD (Hard Disk Drive)(ハードディスクドライブ)フォームファクタ、PCIe PCBカードフォームファクタ、プラグインモジュール(例えば、DIMM)フォームファクタ、または、ポータブルメモリカード(例えば、セキュアデジタル(SD:secure digital)カードもしくはMMC)におけるフォームファクタを含む、任意のタイプのフォームファクタを有することができる。
【００１８】
メモリ18は、少なくとも1つのNANDフラッシュメモリデバイス、例えば、限定はしないが、この例示的な構成ではNANDフラッシュメモリを含む。メモリ18は、相変化ランダムアクセスメモリ(PCRAM:phase-change random access memory)、磁気抵抗RAM(MRAM:magneto-resistive RAM)、抵抗RAM(ReRAM:resistive RAM)、強誘電体RAM(FeRAM:ferroelectric RAM)、または他のタイプのメモリを含むことができる。メモリ18がフラッシュメモリデバイスであるとき、例えば、フローティングゲート技術または電荷トラップフラッシュ(CTF:charge trap flash)技術を使用するNANDフラッシュメモリデバイスであり得る。
【００１９】
メモリコントローラ16は、メモリプロトコルバス22に結合される。メモリコントローラ16は、メモリプロトコルを使用してメモリ18とコマンドおよびデータを通信するためのインターフェースを含む。データ記憶デバイス12内のメモリ18として使用されているメモリの特定のタイプに応じて、メモリの特定のタイプに固有の特定のプロトコルが使用される。したがって、メモリコントローラ16は、使用されているメモリ18のタイプによって決定される特定のプロトコルを使用してメモリ18と通信するように構成される。例えば、前述した不揮発性メモリの異なるタイプの各々は、コマンド動作コードが異なり得、制御信号のタイプが異なり得、データフォーマットが異なり得る、異なる通信プロトコルを有し得る。要するに、異なるメモリの通信プロトコルは、互いに互換性がない。したがって、データ記憶デバイス12に使用される異なるタイプのメモリ18とインターフェースするために、異なるメモリコントローラが必要とされる。データ記憶デバイス12の製造業者のコストは、したがって、製造業者が特定のタイプのメモリ18と通信するように各々が構成された異なるメモリコントローラ16を使用しなければならないので、増大する。したがって、データ記憶デバイスの製造業者に対するリスクは、1つの特定のタイプのデータ記憶デバイス12が消費者の人気を失う場合、または、特定のタイプのメモリ18がもはや製造されない場合、増大する。
【００２０】
データ記憶デバイス用のメモリコントローラは、信号をホストデバイスおよび少なくとも1つのメモリデバイスに電気的に結合するために、例えば物理ピンなどのポートを使用する。USBメモリスティックおよびSSDなどのソリッドステート記憶デバイス用のメモリコントローラは、典型的には、複数のチャネルを有し、各チャネルは、少なくとも1つのメモリデバイスに電気的に接続される。
【００２１】
図2Aは、特定のメモリインターフェースプロトコルの一例であるONFiメモリインターフェースプロトコルのために構成されたメモリコントローラ30の機能的ピン配列を示す。図2Aの例では、1つのチャネルのためのポートが示されている。Table 1(表1)は、図2Aに示すポートのための信号の説明を提供する。
【００２２】
【表１】
2015536496.tif 000003
【００２３】
現在示している例では、8つのポートが、8ビット幅のデータ信号のために必要とされ、9つのポートが、ONFiフラッシュメモリデバイスの動作を有効にするために必要な制御信号を搬送するために必要とされる。したがって、チャネルが少なくとも1つのONFiフラッシュメモリデバイスに接続されるために、合計17のポートが必要とされる。メモリコントローラ30が8つのチャネルを含む場合、メモリコントローラ30は、少なくとも8×7=136のポートを必要とする。これは、ホストシステムとインターフェースするために必要なポートを除く。
【００２４】
図2Bは、選択されたメモリインターフェースプロトコルの一例である別のプロトコルで動作する別のタイプのメモリデバイスのために構成されたメモリコントローラ32の機能的ピン配列を示す。選択されたメモリインターフェースプロトコルの一例は、HLNAND(商標)メモリインターフェースプロトコルである。メモリデバイスは、別のタイプのメモリインターフェースプロトコルで動作することできる。図2Bの例では、1つのチャネルのためのポートが示されている。Table 2(表2)は、図2Aに示すポートのための信号の説明を提供する。
【００２５】
【表２】
2015536496.tif 000004
【００２６】
現在示している例では、8つのポートが、Q0〜Q7データ出力のために必要とされ、8つのポートが、D0〜D7データ入力のために必要とされ、9つのポートが、HLNANDフラッシュメモリデバイスの動作を有効にするために必要な制御信号を搬送するために必要とされる。したがって、合計26のポートが、チャネルが少なくとも1つのHLNANDフラッシュメモリデバイスに接続されるために必要とされる。メモリコントローラ32が8つのチャネルを含む場合、メモリコントローラ32は、少なくとも8×25=200のポートを必要とする。これは、ホストシステムとインターフェースするために必要なポートを除く。
【００２７】
ONFiおよびHLNANDメモリインターフェースプロトコルの特定の信号名および機能は、互いに同様に見えるかもしれないが、それらが使用される方法、および、メモリデバイスがメモリコントローラと相互接続される方法は、互いに非常に異なる。この違いは、図3Aおよび図3Bに示されている。
【００２８】
図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)状態に設定される。
【００２９】
ONFiフラッシュデバイス42、44、および46の各々は、チャネル制御モジュールを介してONFiフラッシュデバイスとホストコントローラデバイス(図示せず)との間のコマンドおよびデータ転送を調整するための同じ電気信号を使用する。現在示している例では、1つのチャネル制御モジュールのためのポートは、図3Aに示されている。これらの信号は、ALE(Address Latch Enable)(アドレスラッチイネーブル)、CLE (Command Latch Enable)(コマンドラッチイネーブル)、WE#(Write Enable)(書き込みイネーブル)、RE#(Read Enable)(読み出しイネーブル)、および、以前にTable 1(表1)に示した他のものなどの、データラインおよび制御信号を含む。このタイプのインターフェースプロトコルは、「ONFi NANDインターフェース」として当該技術分野で知られている。「NANDインターフェースプロトコル」は、現在まで、標準化団体によって正式に標準化されていないにもかかわらず、NANDフラッシュメモリの製造業者は、すべて、NANDフラッシュ機能の基本的なサブセットをサポートするための同様のプロトコルに従っている。これは、自身の電子製品内でNANDフラッシュメモリデバイスを使用する顧客が、特定の供給業者からのデバイスで動作するための自身のハードウェアまたはソフトウェアを調整することなく、どのような製造業者からのNANDフラッシュメモリデバイスも使用することができるように行われる。いくつかのNANDフラッシュメモリ供給業者は、他の供給業者によって使用されるプロトコルとの互換性を提供するために基本的な機能が提供されることを保証しながら、機能のこの基本的なサブセットを超える追加の機能を提供することができることに留意されたい。
【００３０】
図3Bは、HLNANDフラッシュメモリデバイスを使用する不揮発性メモリシステムの一例を示す。メモリシステムは、HLNAD(商標)に構成されたメモリコントローラ60と、いくつかのHLNAND互換性のあるフラッシュデバイス62、64、66、および68とを含む。図3Bを参照すると、HLNANDメモリデバイス62、64、66、および68は、コマンド、アドレス、およびデータなどの情報を転送するために、高度に多重化された単方向ポイントツーポイントバスアーキテクチャを使用する。メモリデバイス間のこれらのコマンド、アドレス、およびデータの各相互接続は、「リンク」と呼ばれる。一例では、ある単一のリンクは、2つの差動クロック入力信号CKI/CKI#、クロック出力信号CKO/CKO#、ならびに、共通信号CE#(チップイネーブル)およびRST# (リセット)と共に、7つの信号、CSI(=コマンドストローブ入力)、CSO(=コマンドストローブ出力)、DSI(=データストローブ入力)、DSO(=データストローブ出力)、D[0:7](=データ入力)、STI(=ステータス入力)、およびQ[0:7](=データ出力)から構成される。
【００３１】
以下は、これらの制御信号のいくつかが図3Bのメモリシステムで使用される方法の簡単な説明である。CKI/CKI#は、入力クロックである。CSIによって画定されたD[0:7]ポート上のコマンド/アドレスパケットは、CKIの立ち上がりエッジまたはCKI#の立ち下がりエッジでラッチされる。DSIによって画定されたD[0:7]上の書き込みデータパケットは、CKIの立ち上がりエッジまたはCKI#の立ち下がりエッジでラッチされる。DSOで画定されたQ[0:7]上の読み出しデータパケットは、CKOの立ち上がりエッジまたはCKO#の立ち下がりエッジで参照される。CKO/CKO#は、CI/CI*の遅延されたバージョンである出力クロックである。
【００３２】
CSO、DSO、およびQ[0:7]信号は、CKOの立ち上がりエッジを、または、CKO#の立ち下がりエッジを基準とする。コマンドストローブ入力(=CSI)がハイのとき、D[0:7]を介するコマンド/アドレスパケットは、CKIの立ち上がりエッジまたはCKI#の立ち下がりエッジでラッチされる。コマンドストローブ出力(=CSO)は、CSIのエコー信号である。それは、CSIの遷移を、CKOの立ち上がりエッジまたはCKO#の立ち下がりエッジを基準にした1クロックサイクルレイテンシ(=tlOL)でバイパスする(=または、エコーする)。1クロックサイクルレイテンシは、本開示の例示的な実施形態の1つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであり得る。
【００３３】
HLNAND互換メモリデバイスは、「読み出しモード」にある間にデータストローブ入力(=DSI)がハイのとき、読み出しデータ出力経路およびQ[0:7]バッファを有効にする。DSIがローの場合、Q[0:7]バッファは、アクセスされた以前のデータを保持する。メモリデバイスは「書き込みモード」にある間にDSIがハイの場合、D[0:7]バッファを有効にし、CKIの立ち上がりエッジまたはCKI#の立ち下がりエッジで書き込みデータパケットを受信する。
【００３４】
データストローブ出力(=DSO)は、DSIのエコー信号である。それは、DSIの遷移を、CKOの立ち上がりエッジまたはCKO#の立ち下がりエッジを基準にした1クロックサイクルレイテンシ(=tlOL)でバイパスまたはエコーする。1クロックサイクルレイテンシは、本開示の例示的な実施形態の1つであるが、設計のバリエーションに応じて任意の数のクロックサイクルであり得る。
【００３５】
任意の時点で、メモリコントローラ60は、具体的には、選択されたメモリデバイスが特定の動作を完了したかどうかを決定するために、特定のメモリデバイスのステータスに関する要求を発行することができる。これに応答して、ステータス要求を受信する選択されたメモリデバイスは、保留中の動作が完了したことを示すために、そのSTO出力をパルスにすることになる。メモリコントローラ60は、そのSTI入力でパルスを受信することになり、次いで、同じメモリデバイスにさらなるコマンドを発行することができる。メモリコントローラ60は、STOパルスに対して所定の時間待機するように設定され得る。所定の時間が経過した後にSTOパルスが受信されない場合、メモリコントローラ60は、選択されたメモリデバイスがまだビジーであると判断することができる。この状況では、メモリコントローラ60は、次いで、他のメモリデバイスのためのさらなる動作を実行することができる。
【００３６】
データ入力信号D[0:7]は、コマンド、アドレス、および/または入力データ情報を搬送し、データ出力信号Q[0:7](n=0、1、2、3、4、5、6または7)は、読み出し動作中に出力データを搬送し、または、D[0:7]で受信されたコマンド、アドレス、または入力データをバイパスする。
【００３７】
メモリコントローラ60は、そのポートCKO/CKO#から差動クロックを駆動し、HLNAND互換メモリデバイス62、64、66、および68のすべては、直列フロースルー(flow-through)方式で、前のCKO/CKO#ポートから、それら自体のクロックポートCKI/CKI#を介して、差動クロックバスを受信する。メモリコントローラ60は、それぞれ、そのポートCSO、DSO、およびQ[0:7]を介して、4つの差動バス70、72、74、および76を駆動する。第1のメモリデバイス62は、それぞれ、そのポートCSI、DSI、およびD[0:7]を介して、バス70、72、および74を受信する。第1のメモリデバイスは、前のメモリデバイスから受信するSTOパルスがないように、接地されたそのSTIポートを有することに留意されたい。第1のメモリデバイス62は、1クロックサイクルのレイテンシ(= tlOL)で、それぞれ、その出力ポートCSO、DSO、Q[0:7]、およびSTOを介して、4つの対応するバス78、80、82、および84を再駆動する。信号を受信し、それらを連続するメモリデバイスに再駆動するこのパターンは、最後のメモリデバイス68が、最終的なバス86、88、90、および92を、それぞれ、メモリコントローラの入力ポートCSI、DSI、D[0:7]、およびSTIを介して、メモリコントローラ60に戻って再駆動するまで継続する。本例では、メモリデバイス68のCSOポートから信号を再駆動する必要はなく、したがって、メモリコントローラ60のCSI入力ポートは、省略されてよく、最終的なバス88は、必要ない。
【００３８】
ONFiおよびHLNANDメモリインターフェースプロトコルは、互いに十分に異なり、ONFiメモリインターフェースプロトコルのために構成されたどのようなメモリコントローラも、HLNANDメモリデバイスで動作せず、その逆でもあることは、当業者には明らかであるべきである。先に説明したONFiおよびHLNANDメモリシステムは、単に、互いに互換性がない2つの異なるタイプのメモリインターフェースプロトコルの例である。上述したメモリデバイスタイプのいずれもが、各タイプが異なるメモリデバイスタイプでは機能しない特定のメモリインターフェースプロトコルを必要とするので、互いに互換性があるとは非常に考えにくい。
【００３９】
異なるタイプの利用可能なメモリデバイスを考慮して、製造業者は、異なるタイプのメモリデバイスに基づいて異なるデータ記憶デバイスを設計することができる。例えば、従来のNANDフラッシュメモリデバイスベースのデータ記憶デバイスは、従来のNANDフラッシュメモリデバイスの可用性および低コストにより、一般に利用可能である。例によって、これらは、ONFiタイプのフラッシュメモリデバイスであり得る。残念ながら、図3Aに示すようなONFiタイプのフラッシュメモリシステムのマルチドロップ構成は、システムの全体の速度および性能を低下させることなくメモリコントローラ40の1つのチャネルに並列に接続され得る有限数のメモリデバイスを有することになる。これは、バスに接続される各メモリデバイスの累積的な負荷の影響による。したがって、そのようなデータ記憶デバイスのコストは、低い可能性があるが、最大記憶密度も、比較的低くなる。
【００４０】
他方では、HLNANDタイプのメモリデバイスは、マルチドロップ構成されたメモリシステムの制限を受けない。例による図3Bに示すもののようなHLNANDメモリシステムでは、任意の数のメモリデバイスが、メモリコントローラ60の1つのチャネルと、互いに直列に接続され得る。したがって、HLNANDタイプのメモリデバイスを使用するデータ記憶デバイスの全体の記憶密度は、非常に大きい可能性がある。
【００４１】
製造業者が直面する問題は、特定のタイプのメモリデバイスのために構成された異なるメモリコントローラ、または、異なるタイプのデータ記憶デバイスを製造するために特定のメモリインターフェースプロトコルを購入する必要性である。コストリスクを軽減するために、2つ以上のメモリインターフェースプロトコルで動作するように構成されたメモリコントローラが可能であり、設けられた別個のポートは、選択されたタイプのメモリデバイスとの接続のために利用可能である。残念ながら、ポートの別個のセットを設けることは、メモリコントローラパッケージに必要になるポートの数により非現実的になる。例えば、先に説明したONFiおよびHLNANDメモリコントローラの例を用いる。8チャネルONFiインターフェースが、ONFi NAND信号のためにのみ合計136ポートを必要とし、8チャネルHLNANDメモリコントローラインターフェースが、合計208ポートを必要とする場合、両方のインターフェースプロトコルで動作するように構成されたメモリコントローラは、344ポートを必要とすることになる。メモリコントローラパッケージのサイズは、ポートの数によって支配されることが、当業者によって認識されるべきである。したがって、344ポートを有するパッケージは、136ポートまたは208ポートを有するパッケージよりも面積がかなり大きくなると思われる。
【００４２】
本開示の一実施形態によれば、3つの異なるモードの少なくとも1つで動作するように構成可能なメモリコントローラが提供される。チャネルのポートは、3つの異なる機能的割り当てにマッピングされ、各機能的割り当ては、メモリインターフェースプロトコルに固有の信号に対応する。各ポートは、メモリデバイスへの信号導体線との電気的接続のためのパッドと、3つの機能的割り当ての各々のためのバッファ回路網とを含む。各ポートの異なるバッファ回路網は、使用するように選択されたモードに基づいて選択的に有効にされる。一例の実施形態では、1つの動作モードは、ONFiプロトコルなどの第1のメモリインターフェースプロトコルに対応し、第2の動作モードは、HLNANDプロトコルなどのアウトバウンドまたは出力信号に対応し、第3の動作モードは、HLNANDプロトコルのインバウンドまたは入力信号に対応する。
【００４３】
本開示の一実施形態による多モードピン配列メモリコントローラを使用するソリッドステート記憶デバイスのブロック図が図4に示されている。ソリッドステート記憶デバイス100は、多機能ピン配列メモリコントローラ102と、メモリ104とを含む。特定の実施形態では、メモリ104は、ONFiフラッシュメモリデバイスまたはHLNANDフラッシュメモリデバイスなどの不揮発性メモリを含む。本実施形態では、任意のタイプのメモリデバイスがメモリ104として使用され得る。本文脈では、メモリ104は、メモリデバイスを含む。
【００４４】
コントローラ102は、ソリッドステート記憶デバイス100の全体の動作を制御し、ホストとメモリ104との間のデータの交換を制御する。例えば、コントローラ102は、ホスト(図示せず)からの要求に応答して、データを書き込むため、またはデータを読み出すために、メモリ104を制御する。また、コントローラ102は、例えば、不揮発性メモリの特性のために、または、メモリ104の効率的な管理のために必要とされる性能制御、マージング、およびウェアレベリングなどの、内部動作を制御する。コントローラ102は、フラッシュトランスレーションレイヤ(FTL:flash translation layer)(図示せず)と呼ばれるメモリ104の動作を制御するためのファームウェアおよび/またはソフトウェアを駆動する。コントローラ102は、ホストからの要求に基づいて、メモリデバイス104に含まれる複数の不揮発性メモリの中からのいくつかのメモリの動作を制御するために、メモリ104を制御することができる。メモリ104は、データを記憶するための記憶媒体を提供する。メモリ104が少なくとも不揮発性メモリデバイスである場合、データは、不揮発に記憶される。例えば、不揮発性メモリデバイスは、オペレーティングシステム(OS:operating system)と、様々なプログラムと、様々なマルチメディアデータとを記憶することができる。
【００４５】
その基本動作モードでは、多機能ピン配列メモリコントローラ102は、ホストとメモリ104との間のデータの交換を制御する。多機能ピン配列メモリコントローラ102は、バス118を介して相互接続された、ホストインターフェースブロック(HIB:host interface block)106と、中央処理ユニット108と、ランダムアクセスメモリ(RAM)110と、メモリインターフェースブロック(MIB:memory interface block)112と、読み出し専用メモリ(ROM:read only memory)114と、誤り訂正符号(ECC:error correction code)エンジン116とを含む。コントローラ102は、ソフトウェアまたはファームウェアとして具体化されたFTLを動作させることができる。RAM110は、コントローラ102内に統合されて示されているが、代替実施形態では、コントローラ102の外部に配置され得る。
【００４６】
ホストインターフェースブロック106は、ホストからホストインターフェースポートを介して、データと、アドレス情報と、外部コマンドと、他の信号とを受信する。これらは、一般的に、情報と呼ばれる。アドレス情報、コマンド、および、信号に関連する任意の他の非データは、単に制御情報と呼ばれ得る。また、ホストインターフェースブロック106は、同じまたは異なるホストインターフェースポートを介してホストに、データ、およびステータス情報を送る。これらのインターフェースポートは、ピンまたは他の物理コネクタを含むことができる。ホストから受信された外部コマンドは、メモリコントローラ102を制御するために使用される。ホストによってソリッドステート記憶デバイス100に提供されるデータおよび他の情報は、データのための入口としてのホストインターフェースブロック106を介して、ソリッドステート記憶デバイス100の機能ブロック、例えば、バッファRAM110に入力される。また、ソリッドステート記憶デバイス100からホストに提供されるデータおよび他の情報は、データのための出口としてのホストインターフェースブロック106を介して提供される。
【００４７】
中央プロセッサ108は、ROM114またはメモリ104からプログラムコードを読み出し、読み出されたプログラムコードに従って、コントローラ102に含まれるすべての機能ブロックを制御する。プログラムコードは、中央プロセッサ108の動作を指定する。中央プロセッサ108は、読み出されたプログラムコードに基づいて、メモリ104へのアクセスを制御する。1つの動作モードでは、メモリ104に記憶されたプログラムコードは、メモリ104から読み出され、ソリッドステート記憶デバイス100が起動されるとき、RAM110に書き込まれる。
【００４８】
RAM110は、プロセッサ108の動作メモリとして使用され得、ダイナミックRAM(DRAM:dynamic RAM)、スタティックRAM(SRAM:static RAM)、などとして具体化され得る。また、RAM110は、ホストから受信したデータを一時的に記憶するためのバッファメモリとして作用することができる。プロセッサ108は、データをメモリ104に書き込むため、またはデータをメモリ104から読み出すために、全体の制御動作を実行する。また、プロセッサ108は、ホストからの要求に基づいて、FTLの動作を制御することができ、または、そうでなければ実行することができる。
【００４９】
ECCブロック116は、メモリ104に書き込まれるデータに関係するECC(誤り訂正符号)を生成する。データは、それに関係するECCと一緒に記憶される。さらに、ECCブロック116は、読み出しデータに関連付けられたECCに基づいて、メモリ104から読み出されたデータのビット誤りを検出し、訂正する。
【００５０】
ROM114は、ホストとインターフェースするためのコードデータを記憶する。ROM114には、メモリ104を制御するために必要なファームウェアが記憶される。付随的に、起動するために必要な最低限のファームウェアのみがROM114に記憶され得、他のファームウェアは、メモリ104に記憶され得る。ROMは、固定された読み出し専用メモリであるので、他のファームウェアをメモリ102に記憶することは、ファームウェアの更新を容易にする。中央プロセッサ108、RAM110、ROM114、ECCエンジン116、および、ホストまたはMIB112から受信した情報を処理するために必要な任意の他の回路は、コア回路と呼ばれ得る。
【００５１】
メモリインターフェースブロック112は、ROM114またはメモリ104からシーケンスコードを読み出す。シーケンスコードは、メモリインターフェースブロック112によって実行される様々な動作を指定する。メモリインターフェースブロック112は、読み出されたシーケンスコードに基づいて、様々な動作を実行する。シーケンスコードは、複数のコードセットから構成される。コードセットは、複数のコードを含む。コードセットの各々は、それに対応する動作を指定する。シーケンスコードに基づいて実行される動作では、メモリインターフェースブロック112とメモリ104との間で、データ、アドレス情報、ステータス情報、内部コマンド、などが、内部メモリバス120を介して転送される。内部メモリバス120は、コントローラ102のポートをメモリ104の対応するポートに電気的に接続するための信号導体線を含む。内部メモリバス120は、複数のチャネルに対応する信号を搬送することができる。内部コマンドは、コントローラ102がメモリ104を制御するためのものであり、メモリデバイス104は、内部コマンドに従って機能する。付随的に、動作が実行される前に、メモリ104に記憶されたシーケンスコードは、メモリ104から読み出され、RAM110に書き込まれる。
【００５２】
FTLは、データマッピング動作を実行するためのマッピングテーブル(図示せず)を含む。一般に、マッピングテーブルは、RAM110に記憶される。マッピングテーブルでは、複数の論理ページ番号(LPN:logical page number)は、それぞれメモリ104にマッピングされるように記録される。メモリ104が1つまたは複数のNANDフラッシュメモリデバイスとして実装された例では、データは、ページ単位で書き込まれまたは読み出される。LPNは、したがって、マッピング単位として使用され得る。
【００５３】
また、FTLは、ホストからの要求が書き込みコマンドであるか読み出しコマンドであるかに基づいてメモリ104を制御することができ、ホストによって提供される書き込みコマンドまたは読み出しコマンドがメモリ104上で実行されるときはいつでも、更新されるマッピングテーブルを管理することができる。例えば、ホストからの要求が書き込みコマンドであるとき、FTLは、LPNに対応するメモリ104のメモリデバイスの1つに書き込まれるデータを制御し、LPNおよび対応するメモリデバイスをマッピングテーブルに書き込む。ホストからの要求が読み出しコマンドであるとき、FTLは、マッピングテーブルに基づいて、LPNに対応する不揮発性メモリの1つから読み出されるデータを制御する。
【００５４】
上述したように、メモリ104は、各々が特定のメモリインターフェースプロトコルで動作を実行するNANDフラッシュメモリとして実装され得る複数の不揮発性メモリを含むことができる。本実施形態によれば、異なるメモリインターフェースプロトコルを有する異なるタイプのメモリデバイスが、同じ多機能メモリコントローラ102と共に使用され得る。本実施形態では、メモリインターフェースブロック112は、各チャネルのためのポートの1つのセットを含み、少なくとも1つのポートは、3つのモードのうちの1つで機能するように動的に構成可能であり、3つのモードのうちの2つは、1つのメモリインターフェースプロトコルに対応し、3つのモードのうちの1つは、異なるメモリインターフェースプロトコルに対応する。したがって、両方のタイプのメモリ104は、バス120の信号線を介してチャネルの同じポートに接続され得るので、どのような追加のポートも必要とすることなしに、2つの異なるタイプのメモリ104が、メモリインターフェースブロック112のチャネルに接続され得る。
【００５５】
本実施形態によれば、第1のモードは、第1のメモリインターフェースプロトコルのための単方向および双方向信号を受信および提供するために機能し、第2のモードは、第2のメモリインターフェースプロトコルのためのアウトバウンド信号のみを提供するために機能し、第3のモードは、第2のメモリインターフェースプロトコルのためのインバウンド信号のみを受信するために機能する。例によって、第1のモードは、ONFiメモリインターフェースプロトコル、または、任意の同様のマルチドロップバスアーキテクチャメモリインターフェースプロトコルに対応し、第2のモードは、HLNANDメモリインターフェースプロトコル、または、任意の同様なポイントツーポイントシリアル接続メモリインターフェースプロトコルに対応する。
【００５６】
ポートは、2つの専用または既存のポートの各々を、正またはグランド電源(VDDまたはVSS)のいずれかに接続することによって、3つのモードのうちの1つで機能するように構成され得る。したがって、4つまでの異なるモードが、各ポートのためのVDDおよびVSSのバイアスの組み合わせで選択され得る。そのような技術は、3つの動作モードのうちの1つを選択するために有効であるが、メモリインターフェースブロック112は、任意の数のモードで動作するように構成可能であり得る。図5では、モード選択は、モード選択ポートをVDDまたはVSSのいずれかにバイアスすることによって達成される。代替的に、n個の動作モードのうちの1つを選択するために、多ビットコードを提供するために、レジスタが、ヒューズもしくはアンチヒューズを切断することによって電気的にプログラムされ得、または、レーザプログラムされ得る。すべてのこれらの実施形態では、各動作モードのために必要なバッファ回路網は、メモリインターフェースブロック112の個々のポートに選択的に結合可能である。バス118から受信したネイティブメモリコントローラ信号は、選択されたバッファ回路網によって、選択されたメモリインターフェースプロトコルに適合するフォーマットに変換される。同様に、バス120から受信した信号は、選択されたバッファ回路網によって、ネイティブメモリコントローラ信号に変換される。
【００５７】
ポートバッファ回路網の詳細を説明する前に、図5および図10を参照してメモリインターフェースブロック112の構成を最初に説明する。
【００５８】
図5は、図4に示す多機能メモリコントローラ102のメモリインターフェースブロック112のブロック図を示し、ここでメモリインターフェースブロック112は、少なくとも1つのメモリデバイスに結合されている。メモリインターフェースブロック112は、n個までのチャネル制御モジュール(CCM:channel control module)200を含み、ここでnは、ゼロよりも大きい任意の整数値である。各チャネル制御モジュール200は、第1のメモリインターフェースプロトコルのチャネルと、第2のメモリインターフェースプロトコルの2つのサブチャネルのうちの1つとに関連付けられる。したがって、チャネル制御モジュール200の各対は、第2のメモリインターフェースプロトコルのチャネル形成するために一緒に組み合わされる。先に説明した例を参照し、1つのサブチャネルは、アウトバウンド信号を含み、第2のサブチャネルは、インバウンド信号を含む、またはその逆である。
【００５９】
各チャネル制御モジュール200は、チャネルバス204を介して、少なくとも1つのメモリデバイス202に接続される。チャネルバス204の集合は、図4に示すバス120を形成することに留意されたい。同様に、すべてのメモリデバイス202は、図4に示すメモリ104内に含まれる。1対のチャネル制御モジュール200が第2のメモリインターフェースプロトコルのためのチャネルを形成する実施形態では、チャネル制御モジュール200の対に接続されたメモリデバイス202は、さらに、例によって図3Bに示すポイントツーポイントシリアル構成で互いに接続される。
【００６０】
メモリインターフェースブロック112は、さらに、各チャネル制御モジュールに対応するモードセレクタ206を含む。各モードセレクタ206は、第1のモード選択ポート210をVDDまたはVSSのいずれかにバイアスするための第1のセレクタ208と、第2のモード選択ポート214をVDDまたはVSSのいずれかにバイアスするための第2のセレクタ212とを含む。VDDおよびVSS電圧は、メモリインターフェースブロック112内の図5の垂直方向に延在するレールとして示されている。したがって、異なるチャネル制御モジュール200が、異なるモードで動作するために設定され得る。ポート210および214は、任意の適切な手段を介してVDDまたはVSSにバイアスされ得る。
【００６１】
本実施形態によれば、各チャネル制御モジュール200は、ポートの1つのセットを含み、ここで、少なくとも1つのポートは、第1および第2のモード選択信号に応答して、3つの異なるモードの少なくとも1つで機能するように構成され得るバッファ回路網を含む。第1のモードの一例では、メモリデバイス202がONFiタイプのフラッシュメモリデバイスである場合、メモリデバイス202およびそのチャネル制御モジュールの相互接続構成は、図3Aに示すように現れることになる。第2のモードの一例では、メモリデバイス202がHLNANDタイプのフラッシュメモリデバイスである場合、メモリデバイス202およびそのチャネル制御モジュールの相互接続構成は、メモリデバイス62および64と、アウトバウンド信号CKO/CKO#、CSO、DSO、およびQ[0:7]とを含む図3Bの上半分に示すように現れることになる。第3のモードの一例では、メモリデバイス202がHLNANDタイプのフラッシュメモリデバイスである場合、モリデバイス202およびそのチャネル制御モジュールの相互接続構成は、メモリデバイス66および68と、インバウンド信号CKI/CKI#、CSI、DSI、D[0:7]、およびSTIとを含む図3Bの下半分に示すように現れることになる。本実施形態によれば、ONFiタイプのフラッシュメモリデバイスおよびHLNANDタイプのフラッシュメモリデバイスの両方は、チャネル制御モジュール200に接続され得る。
【００６２】
図6は、一実施形態による、多機能メモリコントローラを有するマルチドロップバスアーキテクチャメモリシステムのブロック図である。より具体的には、図6は、マルチドロップアーキテクチャで構成された、図4のソリッドステート記憶デバイス100の一例の構成を示す。多機能メモリコントローラのメモリインターフェースブロック220は、ONFi CH-1〜ONFi CH-Nとも呼ばれる個々のチャネル224-1〜224-Nを各々制御するための複数のチャネル制御モジュール222-1〜222-Nを含む。「N」は、基数が参照する要素の最後の単位を示す整数であることに留意されたい。チャネルは、不揮発性メモリ226に提供される。各チャネルと電気的に通信するのは、メモリデバイス228-1、228-2、および228-Nであり、ここで、各メモリデバイスは、単一のパッケージ化されたメモリデバイスである。メモリデバイスの各々は、その1つのみが図6で注釈がつけられたいくつかのONFi不揮発性NANDフラッシュメモリチップ230を含む。各ONFi NANDフラッシュメモリチップ230は、チャネル制御モジュールから情報を受信するため、および、チャネル制御モジュールに情報を提供するためのその関連するチャネルと双方向通信する。メモリデバイスのメモリチップ230は、チャネルと並列に接続される。
【００６３】
メモリインターフェースブロック220のチャネル制御モジュール222-1〜222-Nの各々は、不揮発性メモリ226、および、具体的には、個々のメモリデバイス228-1〜228-Nを制御する目的のために、不揮発性メモリ226の個々のチャネルONFi CH-1〜ONFi CH-N専用である。例えば、一般にファームウェアおよび/またはソフトウェアであるフラッシュトランスレーションレイヤ(FTL)は、ホストからの要求に基づいて、チャネルONFi CH-1〜ONFi CH-Nに接続された様々なONFi NANDフラッシュメモリチップ230をアクティブ化または非アクティブ化するために、不揮発性メモリ226を制御するために、チャネルONFi CH-1〜ONFi CH-Nに対応するチャネル制御モジュール222-1〜222-Nの動作を制御する。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【００６４】
HDDを置き換えるためのSATAまたはPCIeベースのソリッドステートドライブ(SSD)などのソリッドステート記憶システムに実装される多数の不揮発性フラッシュメモリデバイスにおける記憶容量を増加させるため、および信号品位(signal integrity)を改善するために、代替のタイプのフラッシュメモリが使用され得る。一例の代替のタイプのフラッシュメモリは、前述したHLNANDフラッシュメモリである。HLNANDフラッシュメモリは、典型的には、例えば、図3Bに示すような、メモリコントローラによるリングトポロジーで配置されたポイントツーポイントシリアル接続技術を使用する、高度で高性能な同期不揮発性フラッシュメモリデバイスである。
【００６５】
図7は、本実施形態による、図6のメモリシステムと同じ多機能メモリコントローラを有するシリアルポイントツーポイントアーキテクチャメモリシステムのブロック図である。より具体的には、図7は、HLNANDフラッシュメモリを使用するシリアルポイントツーポイントアーキテクチャで構成された、図4のソリッドステート記憶デバイス100の一例の構成を示す。メモリインターフェースブロック220は、同じチャネル制御モジュール222-1〜222-Nを有する。図6の実施形態に対する図7の実施形態の違いの1つは、不揮発性メモリ250がHLNANDフラッシュメモリデバイスから構成されることである。図7に示すように、不揮発性メモリ250は、HLNANDフラッシュメモリデバイス252-1〜252-N/2を含み、それらの各々は、その1つのみが注釈がつけられた複数のHLNANDメモリチップ254から構成されているパッケージ化されたデバイスを含むことができる。本実施形態では、チャネル制御モジュール222が存在する数の半分の数のHLNANDフラッシュメモリデバイス252が存在する。例えば、メモリデバイス252-1などのメモリデバイスのすべてのHLNANDメモリチップ254は、単方向ポイントツーポイント接続を介して互いに直列に接続される。これらのポイントツーポイント接続は、一例では、デバイスの出力ピンを次のデバイスの入力ピンに接続することによって形成され、単方向バスの形態をとることができる。したがって、この直列相互接続は、デイジーチェーンカスケード接続、または、チャネル制御モジュール222-1などのホストによるリングトポロジー構成とも呼ばれ得る。
【００６６】
したがって、図6の実施形態に対する別の違いは、チャネル制御モジュール222-1〜222-Nの各対が、HL CH-1〜HL CH-N/2とも呼ばれる個々のHLNANDチャネル256-1〜256-Nに接続されることである。HLNANDチャネルの各々は、インバウンドサブチャネル258-1およびアウトバウンドサブチャネル260-1を含む。インバウンドサブチャネル258-1は、チャネル制御モジュール222-1の出力端子から、メモリデバイス252-1の直列に接続されたメモリチップの第1のHLNANDメモリチップ254にデータおよび制御情報を提供するための接続のセットである。アウトバウンドサブチャネル260-1は、メモリデバイス252-1の直列に接続されたメモリチップの最後のHLNANDメモリチップ254から、チャネル制御モジュール222-2の入力端子にデータおよび制御情報を提供するための接続のセットである。したがって、チャネル制御モジュール222の各対がHLNANDフラッシュメモリデバイス252の1つのチャネル専用である合計N個のチャネル制御モジュールによって、現在示す構成は、N/2個までのHLNANDフラッシュメモリデバイス252およびN/2個までのHLNANDチャネル256を収容する。
【００６７】
したがって、このシステムのチャネル制御モジュール222-1〜222-Nは、メモリデバイスの最初のHLNANDメモリチップまたは最後のHLNANDメモリチップのいずれかとインターフェースすることのみを必要とする。結果として、マルチドロップ接続を使用するシステム内のチップ間の物理的距離の違いによって引き起こされるクロックスキューおよびデータスキューの問題は、存在しない。さらに、メモリチップと対応するチャネル制御モジュールとの間のポイントツーポイント接続の使用により、マルチドロップバスアーキテクチャで典型的に使用されるバス終端は、必要とされない。結果として、マルチドロップバスアーキテクチャを使用するフラッシュメモリシステムと比較してより低い電力消費が実現される。
【００６８】
各メモリデバイスのメモリチップに関連する1対のチャネル制御モジュールが存在するので、FTLは、図1のホスト14などのホストデバイスからの要求に基づいて、チャネルHL CH-1〜HL CH-N/2に対応する様々なHLNANDフラッシュメモリチップ254をアクティブ化または非アクティブ化するために、不揮発性メモリ250を制御するために、チャネル制御モジュール222-1〜222-Nの各対の動作を制御することができる。メモリチップのアクティブ化は、選択されたメモリチップ内の様々なタイプのメモリ動作を開始することを含むことができる。
【００６９】
前に示した図6および図7の実施形態は、本開示による同じ多機能メモリコントローラを使用するメモリシステムを示す。不揮発性メモリ226および250のために使用されるONFiおよびHLNANDメモリタイプは、単に、本開示の多機能メモリコントローラで使用され得る2つの異なるタイプのメモリの例である。多機能メモリコントローラの異なる実施形態は、異なる入力/出力インターフェースを有する現在既知のメモリおよび将来のメモリの組み合わせとインターフェースするように構成され得る。
【００７０】
図8は、本開示の一実施形態による、図6の一例のマルチドロップバスアーキテクチャメモリシステムの相互接続の詳細を示す概略図である。図8は、チャネル制御モジュール222-1などの図6の多機能メモリコントローラ220の1つのチャネル制御モジュールと、図6のメモリデバイス228-1などのメモリデバイスとの間の相互接続を示す。図8では、マルチピン配列チャネル制御モジュール300は、複数のメモリデバイス302および304〜306に接続される。メモリデバイス302および304〜306の各々は、そのすべてがメモリデバイスの単一のパッケージに埋め込まれる半導体チップとして形成され得る。代替的に、各メモリデバイスは、それ自体のパッケージに埋め込まれた単一の半導体チップであり得る。チャネル制御モジュール300によって提供され、受信される信号は、図3Aのメモリコントローラ40のために示したものと同じである。同様に、メモリデバイス302および304〜306の各々によって提供され、受信される信号は、メモリデバイス42および44〜46のために示したものと同じである。本例では、メモリデバイス302および304〜306は、ONFiメモリデバイスである。
【００７１】
図8では、チャネル制御モジュール300は、SEL0およびSEL1とラベル付けされた2つの追加のモード選択ポートを含み、これらのモード選択ポートの各々は、その動作モードを設定するために、VDDまたはVSSの選択的にバイアスされ得る。現在示している例では、SEL0およびSEL1は、第1の動作モードを設定するためにVSSに固定されており、第1の動作モードでは、チャネル制御モジュールのポートは、ONFiメモリインターフェースプロトコルで動作するように構成される。SEL0およびSEL1のバイアスは、例によって図5の第1および第2のモードセレクタ206および208によって提供され得る。したがって、チャネル制御モジュール300は、ここでは、メモリデバイス302および304〜306と互換性がある。本例では、SEL0およびSEL1は、ONFiメモリインターフェースプロトコルの動作モードを設定するためのVSSにバイアスされているが、SEL0およびSEL1のための任意の所定のバイアスの組み合わせが使用され得る。
【００７２】
図9は、本開示の一実施形態による、図7の一例のシリアルポイントツーポイントアーキテクチャメモリシステムの相互接続の詳細を示す概略図である。図9は、チャネル制御モジュール222-1および222-2などの図7の多機能メモリコントローラ220の1対のチャネル制御モジュールと、図7のメモリデバイス252-1などのメモリデバイスとの間の相互接続を示す。図8では、第1の多機能チャネル制御モジュール350は、第1のメモリデバイス352に接続され、第1のメモリデバイス352は、次に、第2のメモリデバイス354に接続される。第2のメモリデバイス354、第3のメモリデバイス356、および第4のメモリデバイス358は、互いに直列に接続され、第4のメモリデバイス358の出力は、第2の多機能チャネル制御モジュール360に接続される。メモリデバイス352、354、356、および358の各々は、半導体チップとして形成され得、半導体チップのすべては、メモリデバイスの単一のパッケージに埋め込まれる。代替的には、各メモリデバイスは、それ自体のパッケージに埋め込まれた単一の半導体チップであり得る。代替的には、各メモリデバイスは、図9の2つのメモリデバイス間に示すのと同じ構成で互いに直列に接続された少なくとも2つの半導体チップを含む多チップパッケージであり得る。
【００７３】
第1の多機能チャネル制御モジュール350によって提供されるCKO/CKO#、CSO、DSO、Q[0:7]、およびSTO信号は、図3Bのメモリコントローラ60によって提供されるものと同じである。第2のマルチピン配列チャネル制御モジュール360によって受信されるCKI/CKI#、CSI、DSI、D[0:7]、およびSTI信号は、図3Bのメモリコントローラ60によって受信されるものと同じである。したがって、メモリデバイス352、354、356、および358の各々によって受信され、提供される信号は、メモリデバイス62、64、66、および68のために示したものと同じである。本例では、メモリデバイス352、354、356、および358は、HLNANDメモリデバイスである。
【００７４】
図9では、第1のチャネル制御モジュール350は、第2の動作モードを設定するために、それぞれVDDおよびVSSに固定されたそのSEL0およびSEL1ポートを有し、第2の動作モードでは、チャネル制御モジュールのポートは、HLNANDアウトバウンドメモリインターフェースプロトコルで動作するように構成される。第2のチャネル制御モジュール360は、第3の動作モードを設定するために、それぞれVDDおよびVDDに固定されたそのSEL0およびSEL1ポートを有し、第3の動作モードでは、チャネル制御モジュールのポートは、HLNANDインバウンドメモリインターフェースプロトコルで動作するように構成される。この実施形態では、SEL0ポートは、ONFiまたはHLNAND動作モードのいずれかを選択するために使用され得る。SEL1ポートは、SEL0ポートがONFi動作モードを選択するように設定されているとき、無視される。他方では、SEL1ポートは、SEL0ポートがHLAND動作モードを選択するように設定されているとき、HLNAND動作モードのサブモードを選択するために使用される。したがって、チャネル制御モジュール350および360は、ここでは、メモリデバイス352、354、356、および358と適合性がある。図9の例に示すもの以外のSEL0およびSEL1のための異なる電圧バイアスの組み合わせは、HLNANDメモリインターフェースプロトコルの動作モードのサブモードを設定するために使用され得る。
【００７５】
図10は、図5に示すチャネル制御モジュール200の1つのブロック図である。この特定の実施形態では、チャネル制御モジュール200は、2つのメモリインターフェースプロトコルのうちの一方で動作するように構成可能である。例示の目的のため、使用されている2つのメモリインターフェースプロトコルは、ONFiおよびHLNANDメモリインターフェースプロトコルである。
【００７６】
現在示している実施形態では、チャネル制御モジュール200は、ECCエンコーダ400と、ECCデコーダ402と、コマンドプロセッサ404と、アドレスプロセッサ406と、チャネル制御ロジック408と、データスクランブラ410と、データデスクランブラ412と、暗号化プロセッサ414と、EDCプロセッサ416と、マルチメモリインターフェースモジュール418とを含む。マルチメモリインターフェースモジュール418は、メモリデバイス(図示せず)に電気的に結合するためのポートのセットを含む。いくつかの上述した構成要素の機能を、図4のブロック図をさらに参照して説明する。
【００７７】
一般に、チャネル制御モジュール200を介してメモリデバイスにプログラムされるデータは、それに付加された誤り検出または誤り訂正符号を有し、メインデータと共に、メモリデバイスのメモリセルアレイに記憶される。
【００７８】
チャネル制御モジュール200は、この機能のためのECCエンコーダ400を使用する。そのようなデータがメモリデバイスから図4のRAM110に読み出されると、ECCデコーダ402は、データからECCコードを再生成し、それを、メモリデバイスにプログラムされたときにデータに付加されたECCコードと比較する。データが、書き込まれたデータと同一である場合、ECC回路は、データ誤りが存在しないことを示す。読み出しデータになんらかの差異が検出され、差異が、ECCの訂正する能力の範囲内であるように十分に小さい場合、(典型的には、RAM110に含まれる)読み出しデータは、プロセッサ108によって制御されるようにECC訂正エンジン116によってそれを元の値に戻すように「訂正」または修正される。データ誤りがECC訂正能力を超える場合、「訂正不能」読み出し誤りが発生する。典型的には、訂正不能読み出し誤りは、読み出されたときにホストインターフェースに返される誤りステータスをもたらすことになる。
【００７９】
ホストがホストインターフェースブロック106を介してプロセッサ108に要求を送ると、それに応答して、プロセッサ108は、ホストインターフェースブロック106からコマンドを読み出し、コマンドに基づいて、チャネル制御モジュール200内のデータ経路をセットアップし、コマンドをチャネル制御モジュールのコマンドプロセッサ404のコマンドレジスタに記憶する。
【００８０】
プロセッサ108は、また、ホストインターフェースブロック106からのアドレスを内部NANDアドレスに変換し、それをチャネル制御モジュールのアドレスプロセッサ406に記憶する。論理-物理アドレス変換が実行される場合、プロセッサ108は、正確な物理アドレスを作成するために、マッピングテーブルを使用することができる。プロセッサ108は、以下に説明する1つまたは複数の追加の機能を実行することもできる。プロセッサ108は、次いで、RAM110からチャネル制御モジュール200へのデータ転送をセットアップする。メモリインターフェースブロック112は、図5に示すように、複数のチャネル制御モジュールを含むことができることに留意されたい。
【００８１】
チャネル制御モジュール200は、アドレスプロセッサ406から値を取得し、それをONFiメモリインターフェースプロトコルフォーマットまたはHLNANDメモリインターフェースプロトコルフォーマットにしたがってフォーマットする。RAM110に記憶されたデータは、暗号化のための暗号化プロセッサ414に送られ、次いで、データスクランブラ410を介して送られる。データスクランブラ410は、データをスクランブルし、スクランブルされたデータをECCエンコーダ400に出力し、ECCエンコーダ400は、データと共に記憶されるECCパリティビットを生成する。データおよびECCパリティビットは、次いで、ページプログラムまたは書き込みコマンドにより、多モードメモリインターフェースモジュール418のポートを介して、ONFiメモリインターフェースプロトコルフォーマットまたはHLNANDメモリインターフェースプロトコルフォーマットのいずれかで、記憶のためのメモリデバイスに転送される。
【００８２】
チャネル制御モジュール200は、さらに、EDCエンコーダおよびEDCデコーダを含むEDCプロセッサ416を含む。EDCプロセッサ416は、HLNANDまたはONFiメモリインターフェースプロトコルのいずれかに関する誤り検出符号化アルゴリズムを実行する。チャネル制御ロジック408は、一般に、ある機能ブロックから別の機能ブロック、ならびに、多機能メモリインターフェースモジュール418およびバスへ、処理された情報およびデータをルーティングすることを担当する。
【００８３】
要約すると、先に説明したチャネル制御モジュール200の機能ブロックは、使用されているメモリインターフェースプロトコルとは無関係に、メモリデバイスに書き込まれるデータ、および、メモリデバイスから読み出されるデータに対して、データ処理動作を実行する。チャネル制御ロジック408は、多機能メモリインターフェースモジュール418を介して、制御信号CLE、ALE、CSO、およびDSOなどの制御信号を駆動するときを、それらの制御信号が特定のメモリ動作と適切な順序で組み合わされるように決定することもできることに留意されたい。したがって、チャネル制御ロジック408は、HLNANDおよびONFiの両方に固有のアルゴリズムを実行するように構成される。
【００８４】
多機能メモリインターフェースモジュール418は、ポートの単一のセットで受信されるデータおよび他の情報を取り込むことと、2つのメモリインターフェースプロトコルフォーマットのいずれかに対応し得るいずれかの動作モードで受信したデータおよび他の情報を本来のメモリコントローラフォーマットに変換することとを担当する。逆に、多機能メモリインターフェースモジュール418は、2つのメモリインターフェースプロトコルフォーマットのいずれかに対応し得るいずれかの動作モードで、コマンド、アドレス、および書き込みデータを提供することを担当する。ポートの単一のセットのみが利用可能であるので、少なくとも1つのポートは、3つの異なる機能のいずれか1つを割り当てられ得る。
【００８５】
図11は、各ポートに複数の機能が割り当てられた、図10の多機能メモリインターフェースモジュール418のブロック図である。本実施形態によれば、同様のタイプの信号は、可能な限り、同じポートにマッピングされる。信号のタイプは、制御、ステータス、データ、およびクロック信号を含む。信号の各タイプは、パッドに接続されたバッファ回路の対応するタイプを有する。図11の実施形態では、多機能メモリインターフェースモジュール418は、3つの動作モードのために構成されたポートバッファ回路を有する。例えば、1つのモードは、ONFiメモリインターフェースプロトコルモードであり、第2のモードは、HLNANDメモリインターフェースプロトコルアウトバウンドモードであり、第3のモードは、HLNANDメモリインターフェースプロトコルインバウンドモードである。
【００８６】
図11の多機能メモリインターフェースモジュール418の実施形態は、各パッドのためのポートバッファ回路を含み、ここで、パッドは、ボンドワイヤの一方の端に電気的に接続するための半導体基板の金属化された領域である。ボンドワイヤの他方の端は、半導体基板をカプセル化するパッケージの物理的なピンに接続される。多機能メモリインターフェースモジュール418の実施形態は、参照番号500、502、504、および506によって示される複数のポートバッファ回路を含む。ポートバッファ回路500は、本実施形態ではマルチビットモードセレクタ回路である入力バッファ回路である。より具体的には、ポートバッファ回路500は、2つのパッドを含み、1つのパッドは、SEL0に対応し、別のパッドは、SEL1に対応し、SEL0およびSEL1は、図8および図9に示すのと同じモード選択ポートである。図11の表に示すように、SEL0およびSEL1のVDD(論理1)またはVSS(論理0)への接続は、他のポートバッファ回路502、504、506、および508が3つの動作モードのうちのどれとして構成されるのかを選択する。いくつかのポートバッファ回路は、3つまでの異なるモードで動作するように構成され得、他のポートバッファ回路は、2つまでの異なるモードで動作するように構成され得、他のポートバッファ回路は、1つのモードでのみ動作し得ることに留意されたい。
【００８７】
ポートバッファ回路502および508は、双方向ポートバッファ回路であり、それらが、それぞれ、信号を出力し、信号を受信するためのドライバおよびレシーバ回路を含むことを意味する。ポートバッファ回路502および508は、3つのモードのうちの任意の1つで動作することができる。ポートバッファ回路502および508間の違いは、ポートバッファ回路502が、ONFiメモリインターフェースプロトコルモードで双方向に動作するように構成され、ポートバッファ回路508が、ONFiメモリインターフェースプロトコルモードで単方向に動作するように構成されることである。ポートバッファ回路504は、単方向ポートバッファ回路であり、具体的には、信号を出力するためのドライバ回路のみを含む。ポートバッファ回路504は、2つのモードのうちの任意の1つで動作することができる。ポートバッファ回路506も、ドライバ回路のみを含む単方向ポートバッファ回路であるが、1つのモードのみで動作する。
【００８８】
多機能メモリインターフェースモジュール418の右側には、各ポートバッファ回路のための信号割り当てを示す表がある。左端の列は、各ポートバッファ回路のためのONFiメモリインターフェースプロトコル信号を示す。中央の列は、同じポートバッファ回路のためのHLNANDメモリインターフェースプロトコルインバウンド信号を示す。右端の列は、同じポートバッファ回路のためのHLNANDメモリインターフェースプロトコルアウトバウンド信号を示す。本例は、ポートバッファ回路のための1つの可能な多機能ピン配列マッピングを示す。図11の表に示すように、CKI、CKO、およびDQSなどのクロック信号は、同じポートバッファ回路502にマッピングされ、CLE、CSI、およびCSOなどの制御信号は、同じポートバッファ回路502にマッピングされる。HLNANDメモリインターフェースプロトコルの他のインバウンドおよびアウトバウンド制御信号、ならびに、ONFiメモリインターフェースプロトコルの制御信号は、同じポートバッファ回路502にマッピングされる。
【００８９】
ONFiメモリインターフェースプロトコルは、データ信号DQ[0]〜DQ[7]を提供および受信するための8つの双方向ポートバッファ回路を使用し、HLNANDメモリインターフェースプロトコルは、入力データD[0]〜D[7]を受信するための8つのポートと、出力データQ[0]〜Q[7]を駆動するための8つのポートとを必要とすることに留意されたい。本実施形態では、HLNANDメモリインターフェースプロトコルの同じ論理インバウンドおよびアウトバウンドデータ信号は、ONFiメモリインターフェースプロトコルの双方向データ信号と同じポートバッファ回路502にマッピングされる。
【００９０】
多機能メモリインターフェースモジュール418のいくつかのポートは、2つの信号のみがそれらにマッピングされている。図11に示すように、WP#およびRST#出力信号は、ポートバッファ回路504にマッピングされている。別の例では、ONFiメモリインターフェースプロトコルは、チャネルの個々のONFiメモリデバイスを有効にするための個別のチップイネーブル信号CE[0]〜CE[7]を必要とする。HLNANDメモリインターフェースプロトコルでは、単一の共通CE信号のみが、すべてのメモリデバイスを同時に有効にするために必要とされる。したがって、1つの出力ポートのみが、ONFiメモリインターフェースプロトコルのその1つのチップイネーブル信号(CE#)およびHLNANDメモリインターフェースプロトコルのチップイネーブル信号(CE#)にマッピングされる。図11を簡略化するために、複数のONFiチップイネーブル信号のうちの1つのみが示されている。図11の多機能メモリインターフェースモジュール418は、どのように複数の信号が同じポートに割り当てられ得るのかの例を示すことを意図しており、したがって、ONFiおよびHLNANDメモリインターフェースプロトコルのためのすべてのポートおよび信号を示していない場合がある。
【００９１】
多機能メモリインターフェースモジュール418のいくつかのポートは、1つの信号割り当てのみを有することができる。図11の例は、ポートバッファ回路506にマッピングされたONFiメモリインターフェースプロトコルのRE、RE#、およびR/B#信号を含む。代替実施形態では、HLNANDメモリインターフェースプロトコルの1つの信号が割り当てられた多機能メモリインターフェースモジュール418のポートが存在することができる。さらなる代替実施形態では、多機能メモリインターフェースモジュール418のポートにマッピングされたHLNANDメモリインターフェースプロトコルのインバウンドおよびアウトバウンド信号のみが存在することができる。
【００９２】
ポートバッファ回路500、502、504、および506の実施形態は、それぞれ、図12、13、14、および5の回路図に示されている。
【００９３】
図12は、本開示の一実施形態による、図11に示すモード選択回路500の回路図である。後により詳細に示すように、多のポートバッファ回路は、どのようにモード選択回路500が設定されるのかに応じて、3つまでの異なるモードのうちの1つで動作するように構成される。
【００９４】
図12の実施形態では、パッド600および602は、各々、半導体チップまたは基板の表面上の金属化された領域を含み、その領域に対して金ワイヤボンディングなどの接続が行われ得る。本例では、パッド600は、電源VDDまたは接地VSSのうちの一方に電気的に接続され、多機能メモリインターフェースモジュール418のSEL0入力に対応する。例えば、入力バッファ回路などの入力レシーバ回路網604は、内部の選択信号SEL0を内部のハイまたはロー論理レベルに駆動するために、パッド600のVDDまたはVSS接続を検出する。パッド602は、電源VDDまたは接地VSSのうちの1つに電気的に接続され、多機能メモリインターフェースモジュール418のSEL1入力に対応する。例えば、入力バッファ回路などの入力レシーバ回路網606は、内部の選択信号SEL1を内部のハイまたはロー論理レベルに駆動するために、パッド602のVDDまたはVSS接続を検出する。
【００９５】
本例では、SEL1は、多機能メモリインターフェースモジュール418のポートバッファ回路のための2つのメモリインターフェースプロトコルのうちの1つを選択する高次モード選択ビットである。具体的には、SEL1が論理ローレベル(0)であるとき、多機能メモリコントローラ102は、ONFiメモリインターフェースプロトコルなどの第1のメモリインターフェースプロトコルで動作するように設定される。SEL1が論理ハイレベル(1)であるとき、多機能メモリコントローラ102は、HLNANDメモリインターフェースプロトコルなどの第2のメモリインターフェースプロトコルで動作するように設定される。したがって、SEL0は、HLNANDメモリインターフェースプロトコルのサブモードを選択するために使用される低次モード選択ビットである。具体的には、SEL0が論理ハイレベルにあるとき、HLNANDインバウンドサブモードが選択される。そうでなければ、SEL0が論理ローレベルにあるとき、HLNANDアウトバウンドサブモードが選択される。SEL0は、SEL1が論理ローレベルにあるとき、無視される。したがって、多機能メモリコントローラ102の他のポートバッファ回路の各々は、それにマッピングされる3つまでの信号のうちの1つを受信または提供するように構成される。
【００９６】
図13は、本開示の一実施形態による、図11に示す双方向ポートバッファ回路502の回路図である。本例は、ポートバッファ回路502にマッピングされた信号DQS、CKI、およびCKOを示す。パッド610は、ONFiメモリデバイスのDQSピン、または、HLNAND準拠のメモリデバイスのCKIピンもしくはHLNAND準拠のメモリデバイスのCKOピンのいずれかに電気的に結合され得る。バッファ回路網は、受信経路と出力経路とを含む。受信経路は、入力バッファなどのレシーバ612と、デマルチプレクサ614などのセレクタと、HLNANDメモリインターフェースプロトコルなどの1つのメモリインターフェースプロトコルから信号を受信するために構成された第1の論理ブロック616と、ONFiメモリインターフェースプロトコルなどの別のメモリインターフェースプロトコルから信号を受信するために構成された第2の論理ブロック618とを含む。
【００９７】
第1の論理ブロック616は、具体的には、デマルチプレクサ614を介してパッド610からCKI信号を受信するように構成され、HLNANDメモリインターフェースプロトコルの要件に従って信号を処理するように構成され得、任意の必要な信号をチャネル制御モジュール200の特定の回路ブロックに提供する。具体的には、HLNAND論理ブロック616は、バッファリングされたクロック信号をチャネル制御モジュールに提供し、遅延ロックループ(DLL:delay locked loop)または位相ロックループ(PLL:phase locked loop)を含むことができる。第2の論理ブロック618は、DQSjnを多機能メモリインターフェースモジュール418から受信し、ONFiメモリインターフェースプロトコルの要件に従って入力データ同期化を提供するために信号を処理し、任意の必要な信号をチャネル制御モジュール200の特定の回路ブロックに提供する。
【００９８】
デマルチプレクサ614として示されるセレクタによって受信される信号は、「イン(in)」と呼ばれ、パッド610で受信されるDQSまたはCKI信号に対応することができる。デマルチプレクサ614は、信号「イン」を、「0」および「1」とラベル付けされた2つの出力のうちの一方に渡すように、選択信号SEL1によって制御される。本例では、「イン」は、SEL1が、HLNANDメモリインターフェースプロトコルモードを選択することに対応する論理レベルにあるとき、「1」出力に渡される。逆に、「イン」は、SELが、ONFiメモリインターフェースプロトコルモードに対応する論理レベルにあるとき、「0」出力に渡される。
【００９９】
図13の例では、SEL1は、ONFiメモリインターフェースプロトコルモードのためのロー論理レベル、および、HLNANDメモリインターフェースプロトコルモードのためのハイ論理レベルにある。HLNANDメモリインターフェースプロトコルモードでは、デマルチプレクサ614は、クロック信号CKLJnを論理ブロック616に提供し、ONFiメモリインターフェースプロトコルモードでは、デマルチプレクサ616は、データクロック信号DQS_inを第2の論理ブロック618に提供する。
【０１００】
出力経路は、第1の論理ブロック616と、第2の論理ブロック618と、マルチプレクサ620として示すセレクタと、出力ドライバ622とを含む。第1の論理ブロック616は、HLNANDメモリインターフェースプロトコルのための出力クロックCLK_outを提供する。第2の論理ブロック618は、出力データクロック信号DQS_outを提供する。第2の論理ブロック618は、出力データクロック信号DQS_outを生成するために、多機能メモリインターフェースモジュール418などのチャネル制御モジュール200の他の回路から信号を受信する。同様に、第1の論理ブロック616は、出力クロックCLK_outを生成するために、チャネル制御モジュール200の他の回路から信号を受信する。両方のクロックは、それらの個々のメモリインターフェースプロトコルのためのデータ同期化のために使用される。
【０１０１】
DQS_outおよびCLK_outの両方は、マルチプレクサ620に提供され、マルチプレクサ620は、DQS_outおよびCLK_outのいずれかを信号「アウト(out)」として出力ドライバ622に渡すように、SEL1によって制御される。したがって、出力ドライバ622は、SEL1の状態に基づいて、信号DQS_outまたは信号CLK_outのいずれかでパッド610を駆動する。本例では、ハイ論理レベルのSEL1は、CLK_outを渡すようにマルチプレクサ620を制御し、ロー論理レベルのSEL1は、DQS_outを渡すようにマルチプレクサ620を制御する。出力ドライバ622は、論理ゲート624によって提供される選択信号enによって有効または無効にされることに留意されたい。本例では、論理ゲート624は、SEL0およびSEL1を受信するNANDゲートである。したがって、図11に示すSEL1およびSEL0符号化構成に従って、出力ドライバは、SEL1およびSEL0の両方が論理「1」レベルにあるとき、ターンオフする。図11に示すように、論理「1」のSEL1およびSEL0は、HLNANDメモリインターフェースプロトコルインバウンドサブモードで動作するようにポートバッファ回路を構成する。このモードでは、出力ドライバ622は、必要とされず、したがって、無効化またはターンオフされる。したがって、ポートバッファ回路502は、CLKJnを受信するための入力ポートとして構成される。
【０１０２】
SEL1=0およびSEL0=0のとき、ポートバッファ回路502は、DQS_outを提供し、DQSjnを受信するための、完全に双方向の入力および出力ポートとして構成される。SEL1=1およびSEL0=0のとき、ポートバッファ回路502は、CLK_outを提供するための出力ポートとして構成される。この動作モードでは、第1の論理ブロック616は、SEL0モード選択ビットに応答して、デマルチプレクサ614によって受信されたCLKjn信号を無視するように構成され得る。オプションで、第1の論理ブロック616は、SEL1の1つの論理状態によって有効にされ得、第2の論理ブロック618は、SEL1の同じ論理状態によって無効にされ得る。したがって、第1の論理ブロック616は、SEL1の他の論理状態によって無効され得、第2の論理ブロック618は、SEL1の同じ論理状態によって有効にされ得る。この技術は、未使用の論理ブロックをパワーダウンさせることを可能にし、それによって、電力を節約する。
【０１０３】
図13の実施形態では、ポートバッファ回路502は、双方向DQS信号、または単方向CKIおよびCKO信号のために構成される。しかしながら、同様のポートバッファ回路が、図11中の502とラベル付けされた他のポートバッファ回路のために用いられてよく、ここで、それらの間の主な違いは、それらにマッピングされるこれらの特定の信号を処理するように特別に構成されることになる論理ブロック616および618の特定のタイプである。
【０１０４】
図14は、本開示の一実施形態による、図11に示す双方向ポートバッファ回路508の回路図である。ポートバッファ回路508は、受信経路内のデマルチプレクサ614に対応するデマルチプレクサが存在しないことを除いて、図13のポートバッファ回路502と同様である。図14に示す構成要素は、図13の構成要素と同様であるので、ポートバッファ回路508の構成要素の省略した説明は、以下の通りである。本例は、信号CLE、CSI、およびCSOがポートバッファ回路508にマッピングされていることを仮定している。パッド650は、ONFiメモリデバイスのCLEピン、または、HLNAND準拠のメモリデバイスのCSIピンもしくはHLNAND準拠のメモリデバイスのCSOピンのいずれかに電気的に結合される。受信経路は、入力バッファなどのレシーバ652と、HLNANDメモリインターフェースプロトコルのCSI信号を受信するように構成された第1の論理ブロック656とを含む。出力経路は、HLNANDメモリインターフェースプロトコルのCSO信号を提供するための第1の論理ブロック656と、ONFiメモリインターフェースプロトコルのCLE信号を提供するための第2の論理ブロック658と、マルチプレクサ660として示すセレクタと、出力ドライバ662とを含む。マルチプレクサ660は、SEL1の状態に応答して、CLEまたはCSOのいずれかを出力ドライバ662に渡す。論理ゲート664は、HLNANDメモリインターフェースプロトコルインバウンドサブモードでポートバッファ回路508を構成するために、SEL0およびSEL1の両方が「1」論理レベルにあるときに、出力ドライバ662を無効にするために、SEL0およびSEL1を受信する。図13の実施形態と同様に、第1および第2の論理ブロック656および658は、SEL1に応答して有効または無効にされ得る。
【０１０５】
図15は、本開示の一実施形態による、図11に示す出力ポートバッファ回路504の回路図である。出力ポートバッファ回路504は、第1のメモリインターフェースプロトコルに対応する信号を処理するように構成された第1の論理ブロック680と、第2のメモリインターフェースプロトコルに対応する信号を処理するように構成された第2の論理ブロック682と、マルチプレクサ684などのセレクタと、出力ドライバ686と、パッド688とを含む。現在示している例では、第1の論理ブロック680は、ONFi論理ブロックであり、第2の論理ブロック682は、HLNAND論理ブロックである。ONFi論理ブロック680は、チャネル制御モジュール200の他の回路ブロックに応答して、マルチプレクサ684の「0」入力によって受信される読み出しイネーブル信号RE_outを提供するための多機能メモリインターフェースモジュール418から情報を受信する。より具体的には、ONFi論理ブロック680は、WP_out信号を生成するために、プロトコルの要件に従って、受信した信号を処理するように構成される。HLNAND論理ブロック682は、多機能メモリインターフェースモジュール418から受信した情報に応答して、マルチプレクサ684の「1」入力によって受信されるリセット信号RST_utを提供する。より具体的には、HLNAND論理ブロック682は、RST_outを生成するために、プロトコルの要件に従って、受信した信号を処理するように構成される。
【０１０６】
マルチプレクサ684は、選択信号SEL1に応答して、WP_outおよびRST_outのうちの一方を信号「アウト」として渡す。本例では、ハイ論理レベルのSEL1は、HLNANDメモリインターフェースプロトコルモードに対応し、それによって、RST_outを出力ドライバ686に渡す。他方では、低論理レベルのSEL1は、ONFiメモリインターフェースプロトコルモードに対応し、それによって、WP_outを出力ドライバ686に渡す。他の実施形態のために先に説明したように、第1および第2の論理ブロック680および682は、SEL1によって有効または無効にされ得る。出力ドライバ686は、次いで、その受信した信号を増幅し、パッド688に対して駆動する。両方の信号WP#およびRST#は、ONFiおよびHLNANDメモリインターフェースプロトコルのための出力信号であることに留意されたい。したがって、図15の実施形態は、2つの異なる出力信号を提供するためにどのようにポートバッファ回路が構成されるのかを示す一例である。
【０１０７】
図16は、本開示の一実施形態による、図11に示す単方向ポートバッファ回路506の回路図である。単方向ポートバッファ回路506は、論理ブロック690と、信号を増幅し、パッド694に対して駆動するための出力ドライバ692とから構成される出力経路を含む。本例では、ポートバッファ回路506は、読み出しイネーブル信号RE#を提供するためのONFiメモリインターフェースプロトコルモードである1つのモードでのみ使用される。オプションで、論理ブロック690は、SEL1に応答して有効または無効にされ得る。論理ブロック690は、HLNANDメモリインターフェースプロトコルサブモードの両方で使用されないように、SEL1に応答して無効にされ得る。
【０１０８】
先に示した図11の実施形態、および、図12〜図16のポートバッファ回路の実施形態は、多機能メモリコントローラの実施形態のための1つの可能なピン配列のマッピング配置の一例を示す。信号がマッピングされるポートが、マッピングされた信号を受信または提供するように構成されているとすれば、他のピン配列マッピングが可能である。先に示したポートバッファ回路の実施形態は、入力、出力、および双方向信号の組み合わせを単一のポートにマッピングするために使用され得る。いずれの場合でも、ポートバッファ回路で受信された信号は、チャネル制御モジュール200によって受信され、処理され、バス118を介してメモリコントローラ102の他の回路ブロックに渡される。最終的に、データは、ホストインターフェース106を介してホストに提供される。同様に、ホストインターフェース106で受信された任意のデータおよびコマンドは、バス118を介してメモリコントローラの回路ブロックによって処理され、最終的に、メモリインターフェース112のターゲットのチャネル制御モジュールに提供され、チャネル制御モジュールは、メモリデバイスにシグナリングするための必要なプロトコルアダプテーションを実行する。
【０１０９】
先に示した実施形態は、2つのメモリインターフェースプロトコルの3つまでの信号がどのようにメモリコントローラの単一のポートにマッピングされ得るのかを示す。これは、メモリコントローラの柔軟な適用を可能にする。代替実施形態では、各ポートバッファ回路は、3つより多い異なるタイプの信号を受信するように構成され得る。図12〜図16のポートバッファ回路の実施形態を理解している当業者は、3つより多くの信号を各ポートに収容するために、どのように回路をスケーリングするのかを理解するであろう。
【０１１０】
デュアルモードピン配列メモリコントローラの実施形態は、SSDドライブを含むソリッドステートメモリシステムおよび他のポータブルメモリ記憶デバイスなどの任意のメモリシステムで使用され得る。デュアルモードピン配列メモリコントローラの実施形態は、さらに、例えば、携帯電話、ラップトップコンピュータ、およびタブレットを含むポータブル電子デバイスなどの、不揮発性メモリを使用するシステムと統合され得る。
【０１１１】
上述の実施形態では、デバイス要素および回路は、簡略化のため、図に示すように互いに接続される。本開示の実際の適用では、要素、回路などは、互いに直接接続され得る。同様に、要素、回路などは、デバイスおよび装置の動作のために必要な他の要素、回路などを介して、互いに間接的に接続され得る。したがって、実際の構成では、回路要素および回路は、互いに直接または間接的に結合または接続される。
【０１１２】
前述の説明では、説明の目的のため、多くの詳細が、実施形態の完全な理解を提供するために述べられている。しかしながら、これらの特定の詳細は、必要とされないことが、当業者には明らかであろう。他の例では、周知の電気的構造および回路は、理解を不明瞭にしないために、ブロック図の形態で示される。
【０１１３】
上述した実施形態は、単なる例であることが意図されている。変更、修正、および変形は、もっぱら添付した特許請求の範囲によって定義される範囲から逸脱することなく、当業者によって特定の実施形態に行われ得る。
【符号の説明】
【０１１４】
10  不揮発性メモリシステム
12  データ記憶デバイス
14  ホスト
16  メモリコントローラ
18  メモリ
20  インターフェースプロトコルバス
22  メモリプロトコルバス
30  メモリコントローラ
32  メモリコントローラ
40  メモリコントローラ
42  ONFiフラッシュデバイス
44  ONFiフラッシュデバイス
46  ONFiフラッシュデバイス
60  メモリコントローラ
62  HLNANDメモリデバイス
64  HLNANDメモリデバイス
66  HLNANDメモリデバイス
68  HLNANDメモリデバイス
100  ソリッドステート記憶デバイス
102  多機能ピン配列メモリコントローラ
104  メモリ
106  ホストインターフェースブロック(HIB)
108  中央処理ユニット
110  ランダムアクセスメモリ(RAM)
112  メモリインターフェースブロック(MIB)
114  読み出し専用メモリ(ROM)
116  誤り訂正符号(ECC)エンジン
118  バス
120  内部メモリバス
112  メモリインターフェースブロック
200  チャネル制御モジュール(CCM)
202  メモリデバイス
204  チャネルバス
206  モードセレクタ
208  第1のセレクタ
210  第1のモード選択ポート
212  第2のセレクタ
214  第2のモード選択ポート
220  メモリインターフェースブロック
222-1〜222-N  チャネル制御モジュール
224-1〜224-N  チャネル
226  不揮発性メモリ
228-1〜222-N  メモリデバイス
230  ONFi不揮発性NANDフラッシュメモリチップ
250  不揮発性メモリ
252-1〜252-N/2  HLNANDフラッシュメモリデバイス
254  HLNANDメモリチップ
256-1〜256-N  HLNANDチャネル
258-1〜258-N  インバウンドサブチャネル
260-1〜260-N  アウトバウンドサブチャネル
300  マルチピン配列チャネル制御モジュール
350  第1の多機能チャネル制御モジュール
352  第1のメモリデバイス
354  第2のメモリデバイス
356  第3のメモリデバイス
358  第4のメモリデバイス
360  第2の多機能チャネル制御モジュール
400  ECCエンコーダ
402  ECCデコーダ
404  コマンドプロセッサ
406  アドレスプロセッサ
408  チャネル制御ロジック
410  データスクランブラ
412  データデスクランブラ
414  暗号化プロセッサ
416  EDCプロセッサ
418  マルチメモリインターフェースモジュール
500  ポートバッファ回路
502  ポートバッファ回路
504  ポートバッファ回路
506  ポートバッファ回路
508  ポートバッファ回路
600  パッド
602  パッド
604  入力レシーバ回路網
606  入力レシーバ回路網
610  パッド
612  レシーバ
614  デマルチプレクサ
616  第1の論理ブロック
618  第2の論理ブロック
620  マルチプレクサ
622  出力ドライバ
624  論理ゲート
650  パッド
652  レシーバ
656  第1の論理ブロック
658  第2の論理ブロック
660  マルチプレクサ
662  出力ドライバ
664  論理ゲート
680  第1の論理ブロック
682  第2の論理ブロック
684  マルチプレクサ
686  出力ドライバ
688  パッド
690  論理ブロック
692  出力ドライバ
694  パッド
【図１】
2015536496.tif 000005
【図２Ａ】
2015536496.tif 000006
【図２Ｂ】
2015536496.tif 000007
【図３Ａ】
2015536496.tif 000008
【図３Ｂ】
2015536496.tif 000009
【図４】
2015536496.tif 000010
【図５】
2015536496.tif 000011
【図６】
2015536496.tif 000012
【図７】
2015536496.tif 000013
【図８】
2015536496.tif 000014
【図９】
2015536496.tif 000015
【図１０】
2015536496.tif 000016
【図１１】
2015536496.tif 000017
【図１２】
2015536496.tif 000018
【図１３】
2015536496.tif 000019
【図１４】
2015536496.tif 000020
【図１５】
2015536496.tif 000021
【図１６】
2015536496.tif 000022
【国際調査報告】
2015536496.tif 000023
2015536496.tif 000024