(57)【要約】【課題】データ転送の高速化に有利な半導体記憶装置及びその通信方法を提供する。【解決手段】実施形態によれば、半導体記憶装置１１は、メモリ３１と、前記メモリを制御し、外部のホスト２１と通信するホストインターフェース４２と、コマンドを認識するコマンド認識回路４９とを備えるコントローラ４１とを具備する。前記コマンド認識回路４９は、前記ホストインターフェースからのコマンド受信を認識した段階で、コマンドチェックの終了を待たずに、コマンド応答宣言を前記ホストに送信し、前記ホストをコマンド応答受信可能体制に移行させるコマンド認識部４９−１と、前記コマンド認識部４９−１からのコマンド認識を受けると、前記応答宣言の間に、前記コマンドを解析して、エラーのチェックを行うコマンドチェック部４９−２とを備える。【選択図】図１
2013171344.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、
前記メモリを制御し、外部のホストと通信するホストインターフェースと、コマンドを認識するコマンド認識回路とを備えるコントローラとを具備し、前記コマンド認識回路は、
前記ホストインターフェースからのコマンド受信を認識した段階で、コマンドチェックの終了を待たずに、コマンド応答宣言を前記ホストに送信し、前記ホストをコマンド応答受信可能体制に移行させるコマンド認識部と、
前記コマンド認識部からのコマンド認識を受けると、前記応答宣言の間に、前記コマンドを解析して、エラーのチェックを行うコマンドチェック部とを備える
半導体記憶装置。
【請求項２】
前記コマンド認識回路は、前記コマンドを受けるとホストに対して自動で応答開始を行う、コマンド階層の制御を行い、
前記ホストインターフェースは、前記コマンド階層以外の階層の制御を行う
請求項１に記載の半導体記憶装置。
【請求項３】
前記ホストインターフェースは、ＳＡＴＡインターフェース規格に準拠する
請求項１または２に記載の半導体記憶装置。
【請求項４】
前記コマンドチェック部は、前記コマンドのチェックの終了結果を前記ホストに返信する
請求項１乃至３のいずれか１項に記載の半導体記憶装置。
【請求項５】
バスを介して外部のホストと通信される半導体記憶装置において、
前記ホストからコマンドを受信するステップと、
前記コマンド受信を認識した段階で、コマンドチェックの終了を待たずに、コマンド応答宣言を前記ホストに送信し、前記ホストをコマンド応答受信可能体制に移行させるステップと、
前記応答宣言の間に、前記コマンドを解析して、エラーのチェックを行うステップとを具備する
半導体記憶装置の通信方法。
【請求項６】
前記コマンドのチェックの終了結果を前記ホストに返信するステップと、
データ送信準備が完了した段階で、前記バスの権利を解放するステップとを更に具備する
請求項５に記載の半導体記憶装置の通信方法。
【請求項７】
前記半導体記憶装置は、前記コマンドを受けるとホストに対して自動で応答開始を行う前記コマンド認識回路と、前記ホストと通信を行うホストインターフェースとを備え、
前記コマンド認識回路は、コマンド階層の制御を行い、
前記ホストインターフェースは、前記コマンド階層以外の階層の制御を行う
請求項５または６に記載の半導体記憶装置の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体記憶装置及びその通信方法に関するものである。
【背景技術】
【０００２】
近年、例えば、パーソナルコンピュータ等のホストとハードディスク装置等に代表されるデバイスとを接続するインターフェースとして、シリアルＡＴＡインターフェース（以下、ＳＡＴＡインターフェースまたは、ＳＡＴＡ Ｉ／Ｆと表記する場合がある）がある。ＳＡＴＡインターフェースとは、Serial AT Attachment規格に準拠するインターフェースである。上記ＳＡＴＡインターフェースでは、例えば、通信プロトコルや通信速度などが規格により定められており、ＳＳＤやハードディスク装置のようなＳＡＴＡインターフェースを使用するＳＡＴＡデバイスや、これを利用するホストは、この規格に基づく機能を実装している。
【０００３】
上記ＳＡＴＡインターフェース規格で定められている点について、システムは仕様に則っていなければならない。しかしながら、規格で定められていない点も存在し、このような点については、システムの設計者が定めることができる。このように自由度が存在する事項については、システムの特性に適する形で好ましい性能が実現されるように、決定されるべきである。このような自由度を伴った事項に対して適切な決定を行なって、より高い性能を実現できるシステムを提供する要望がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１１６５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データ転送の高速化に有利な半導体記憶装置及びその通信方法を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、半導体記憶装置は、メモリと、前記メモリを制御し、外部のホストと通信するホストインターフェースと、コマンドを認識するコマンド認識回路とを備えるコントローラとを具備し、前記コマンド認識回路は、前記ホストインターフェースからのコマンド受信を認識した段階で、コマンドチェックの終了を待たずに、コマンド応答宣言を前記ホストに送信し、前記ホストをコマンド応答受信可能体制に移行させるコマンド認識部と、前記コマンド認識部からのコマンド認識を受けると、前記応答宣言の間に、前記コマンドを解析して、エラーのチェックを行うコマンドチェック部とを備える。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るメモリシステムを示すブロック図。
【図２】第１の実施形態に係るメモリシステムの通信プロトコルを示す図。
【図３】第１の実施形態に係るメモリシステムのコマンド応答動作を示す図。
【図４】第１の実施形態に係るコマンド認識フローを示すフロー図。
【図５】参考例に係るメモリシステムのコマンド応答動作を示す図。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。この説明においては、半導体記憶装置として、ＳＳＤ（Solid sate drive）を一例に挙げるが、これに限られることはない。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【０００９】
［第１の実施形態］  
第１の実施形態に係る半導体記憶装置及びその通信方法について、図１乃至図４を用いて説明する。
【００１０】
＜１．構成例＞  
１−１．全体構成（メモリシステム）
まず、図１を用い、第１の実施形態に係る全体構成（メモリシステム）について説明する。本例では、半導体記憶装置として、ＳＳＤ１１が適用される場合を示している。
【００１１】
図示するように、メモリシステムは、ストレージデバイスとしてのＳＳＤ１１（半導体記憶装置）とホスト２１とがバス２０を介して電気的に接続されており、これらの間でＳＡＴＡインターフェース規格に準拠した通信が実行される。
【００１２】
ＳＳＤ１１は、ホスト２１にバス２０を介して接続され、ホスト２１からのアクセスに応じた処理を行う。ホスト２１は、例えばパーソナルコンピュータなどにより構成される。
【００１３】
ＳＳＤ１１は、メモリとしてのＮＡＮＤ型フラッシュメモリ３１と、ＳＳＤコントローラ４１とを備える。
【００１４】
ＮＡＮＤ型フラッシュメモリ３１は、例えば、積層ゲート構造のメモリセル、又はＭＯＮＯＳ構造の複数のメモリセルを有する。このＮＡＮＤ型フラッシュメモリ３１は、例えばユーザデータや、アプリケーションソフトウェア、ＳＳＤを記憶領域として利用するシステムソフトウェア等を記憶する。さらに、ＮＡＮＤ型フラッシュメモリ３１は、ＳＡＴＡデバイスのプロパティや通信速度の情報を記憶するデバイスプロパティ領域を有している。
【００１５】
ＳＳＤコントローラ４１は、ＳＡＴＡインターフェース４２、ＮＡＮＤインターフェース４３、ＣＰＵ４４、ＲＯＭ（Read only Memory）４５、ＲＡＭ（Random Access Memory）４６、バッファ４７、コマンド認識回路４９等を備える。
【００１６】
ＳＡＴＡインターフェース（ホストインターフェース）４２は、ＳＡＴＡの仕様に従って、ＳＤＤコントローラ４１とホスト２１との間のインターフェース処理を行う。なお、このＳＡＴＡインターフェース４２は、ＳＡＴＡプロトコルの階層構造において、コマンド階層以外の階層（物理層、リンク層、トランスポート層）の制御を行う。詳細については、後述する。
【００１７】
ＮＡＮＤインターフェース（メモリインターフェイス）４３は、ＮＡＮＤインターフェース規格に従って、ＮＡＮＤ型フラッシュメモリ３１との間のインターフェース処理を行う。
【００１８】
ＣＰＵ４４は、ＳＳＤ１１全体の制御を司るものである。ＣＰＵ４４は、ホスト２１からライト（書き込み）コマンド、リード（読み出し）コマンド、イレース（消去）コマンドなどを受けてＮＡＮＤフラッシュメモリ３１上の領域をアクセスしたり、バッファ４７を介してデータ転送処理を制御したりする。
【００１９】
ＲＯＭ４５は、ＣＰＵ４４により使用されるＩＰＬ（Initial Program loader）、制御プログラム、コマンドを処理するコマンド処理モジュール、デバイスを初期化する初期化処理モジュールなどのファームウェアを格納する。
【００２０】
ＲＡＭ４６は、ＣＰＵ４４の作業エリアとして使用され、制御プログラムやIdentify Device （Ｉ．Ｄ．）テーブル等のテーブルを記憶する。
【００２１】
バッファ４７は、ホスト２１から送られてくるデータを、例えばＮＡＮＤフラッシュメモリ３１へ書き込む際、一定量のデータを一時的に記憶したり、ＮＡＮＤフラッシュメモリ３１から読み出されたデータをホスト２１へ送り出す際、一定量のデータを一時的に記憶したりする。
【００２２】
コマンド認識回路４９は、ホスト２１からコマンドの応答要求があった場合に、ＣＰＵ４４の制御に従い、後述するコマンド認識動作を行う。コマンド認識回路４９は、コマンド認識部４９−１、コマンドチェック部４９−２を少なくとも備える。なお、コマンド認識回路４９は、ＳＡＴＡプロトコルの階層構造において、コマンド階層（アプリケーション層）の制御を行う。詳細については、後述する。
【００２３】
コマンド認識部４９−１は、ホスト２１から受信するコマンドを認識すると、コマンドチェック終了を待たずに、コマンド応答宣言（具体的には、データ送信準備完了通知X_RDYp）をホスト２１に送信する。これにより、ホスト２１がデータ受信準備完了通知（信号R_RDYp）を送信するまでの間に並行して、ＳＳＤ１１は、コマンドチェックを完了することができる。
【００２４】
コマンドチェック部４９−２は、コマンド認識部４９−１からの受信認識を受け、コマンドを解析して、エラーのチェックを行う。より具体的には、エラーのチェックとは、例えば、書き込めないアドレスであるか否か等のチェックを行う。コマンド認識動作の詳細に関しては、後述する。
【００２５】
ホスト２１は、ＳＡＴＡインターフェース２２、及び図示せぬＣＰＵ、メモリ等を有している。ＳＡＴＡインターフェース２２は、ＳＡＴＡの仕様に従って、ホスト２１とＳＤＤコントローラ４１との間のインターフェース処理を行う。
【００２６】
１−２．通信プロトコル（SATA Protocol）
次に、図２を用い、第１の実施形態に係るメモリシステムの通信プロトコル（SATA Protocol）について説明する。上記のように、本例では、ＳＡＴＡ（Serial AT Attachment）規格に準拠するインターフェース２２、４２間により、通信がされる。
【００２７】
そのため、ＳＳＤ１１側のインターフェース４２と、ホスト２１側のインターフェース２２との間では、図示するような階層構造のプロトコルにより通信される。即ち、
ＳＡＴＡプロトコルでは、物理層（Physical Layer）、リンク層（Link Layer）、トランスポート層（Transport Layer）、アプリケーション層（Application Layer）による階層構造により通信が行われる。なお、本例では、リンク層のことを“Primitive Layer”、トランスポート層のことを“FIS Layer”と称する場合がある。
【００２８】
コマンドは、ホスト２１とＳＳＤ１１との間において、アプリケーション層により処理される。
【００２９】
ホスト２１側のインターフェース２２では、アプリケーション層において、コマンド指示がなされる。続いて、トランスポート層において、指示されたコマンドにフレーム化が行われる。続いて、リンク層において、8bit / 10bit 符号化による変換が行われる。続いて、物理層において、ＳＳＤ１１へのデータの出力（010100110…）が行われる。
【００３０】
ＳＳＤ１１側のインターフェース４２では、物理層において、ホスト２１から受信したデータ（010100110…）について、シリアル／パラレル変換が行われる。続いて、リンク層において、変換したデータの10bit / 8bit 復号化が行われる。続いて、トランスポート層において、復号化したデータのフレーム解析・受領通知が行われ、アプリケーション層に通知される。
【００３１】
＜２．コマンド応答動作＞  
次に、図３を用い、第１の実施形態に係るメモリシステムのコマンド応答動作について説明する。なお、図中の添え字“p”とはリンク層に対応する“Primitive Layer”の信号を表記し、それ以外の“data”とはトランスポート層に対応する“FIS Layer”のデータ信号を表記するものである。
【００３２】
図示するように、ホスト２１側のインターフェースであるＳＡＴＡインターフェース２２は、データ（コマンド）転送の最小単位として、フレーム化された単位（データ送信準備完了通知X_RDYp, データ転送開始通知SOFp, データdata, 信号EOFp, 信号WTRMp）での信号を、ＳＳＤ１１へ送信する。
【００３３】
続いて、ＳＳＤ１１側のインターフェースであるＳＡＴＡインターフェース４２は、ホスト２１側からデータ受信準備完了通知（R_RDYp）を送信し、コマンド受信を認識した段階（R_OKp）で、コマンドチェック終了を待たずに、ＳＳＤコントローラ４１内部のコマンド認識回路４９が、バス同期（SYNCp）し、フレーム化された単位で、コマンド応答宣言（データ送信準備完了通知X_RDYpの送信要求）を開始する。フレーム化された単位とは、データ（コマンド応答）転送の最小単位であり、データ送信準備完了通知X_RDYp, データ転送開始通知SOFp, データdata, 信号EOFp, 信号WTRMpを一単位とする。
【００３４】
これにより、コマンド認識回路４９が、ホスト２１が発行するデータ受信準備完了通知（R_RDYp）をＳＳＤデバイス１１が受信して、データ転送開始通知(SOFp)を送信するまでの間に、ＳＳＤ１１がコマンドチェックを完了し、ホスト２１に対してデータ（data）送信する。
【００３５】
そのため、コマンドのハンドシェーク期間を短縮でき、データ転送を高速化することができる。
【００３６】
例えば、後述する参考例では、図５に示すように、コマンドを認識すると、コマンドチェックの開始から終了するまでの期間Ａの間、ＳＳＤ１１から信号SYNCpを送信する。そのため、この期間Ａの間は、ホスト２１の動作が空いている空白期間となる。結果、全体的な転送速度を落とす要因となり得ている。
【００３７】
これに対して、本例では、コマンドチェックを並行して行うため、上記期間Ａのようなホスト２１の動作が空いている空白期間（コマンドチェック中のSYNCp送信期間）を少なくともなくすことができる。換言すると、本例は、リンク層間の調停処理の無駄を削減することができるものである。
【００３８】
２−１．コマンド認識フロー
ここで、図４に沿って、上記図３中のコマンド認識フローについて、より詳細に説明する。
【００３９】
（Step ＳＴ１）  
まず、ホスト２１からのコマンド発行にともなうデータ送信準備完了通知（X_RDYp）を受信することで、データ受信準備完了通知（R_RDYp）を送信する。
【００４０】
（Step ＳＴ２）  
続いて、コマンド認識部４９−１は、コマンド受信を認識した段階（R_OKp）で、コマンドチェックの終了を待たずに、コマンド応答宣言（データ送信準備完了通知X_RDYp（レディ信号））をホスト２１に送信するとともに、コマンドチェック部４９−２へ受信認識を送信する。換言すると、この応答宣言（X_RDYp）により、ホスト２１をコマンド応答受信可能体制に移行させる。
【００４１】
（Step ＳＴ３）  
続いて、コマンドチェック部４９−２は、コマンド認識部４９−１からの上記コマンドの認識を受け、上記応答宣言（X_RDYp）の間に並行して、コマンドを解析し、エラーのチェックを行う。より具体的には、エラーのチェックとは、例えば、書き込めないアドレスであるか否か等のチェックを行うことをいう。
【００４２】
（Step ＳＴ４）  
続いて、コマンドチェック部４９−２は、データ転送開始（data）までに、コマンドチェックを終了し、データ送信準備が完了すると、コマンドチェック終了の結果（SOFp）をホスト２１に送信する。
【００４３】
（Step ＳＴ５）  
そのため、続いて、データ送信が完了した段階で、バス権を解放する（SYNCp）。
【００４４】
＜３．作用効果＞  
第１の実施形態に係る半導体記憶装置及びその通信方法によれば、少なくとも下記（１）の効果が得られる。
【００４５】
（１）コマンドのハンドシェーク期間を短縮でき、データ転送を高速化することができる。  
上記のように、本例に係るＳＳＤ（半導体記憶装置）１１は、ＮＡＮＤ型フラッシュメモリ３１と、上記メモリ３１を制御し、外部のホスト２１と通信するホストインターフェース４２と、コマンドを認識するコマンド認識回路４９とを備えるコントローラ４１とを具備する。上記コマンド認識回路４９は、ホストインターフェース４２からのコマンド受信を認識した段階で、コマンドチェックの終了を待たずに、コマンド応答宣言をホスト２１に送信し、ホスト２１をコマンド応答受信可能体制に移行させるコマンド認識部４９−１と、コマンド認識部４０−１からのコマンド認識を受けると、上記応答宣言の間に、コマンドを解析して、エラーのチェックを行うコマンドチェック部４９−２とを備える。
【００４６】
上記構成によれば、コマンド認識部４９−１が、コマンド受信を認識した段階（R_OKp）で、コマンドチェック終了を待たずに、バス同期（SYNCp）し、フレーム化された単位で、コマンド応答宣言（データ送信準備完了通知X_RDYpの送信要求）を開始する。
【００４７】
これにより、コマンド認識回路４９が、ホスト２１が発行するデータ受信準備完了通知（R_RDYp）をＳＳＤデバイス１１が受信して、バス権を解放する（SYNCp）までの間に、コマンドチェック部４９−２がコマンドチェックを完了し、ホスト２１に対してデータ（data）送信する。
【００４８】
そのため、コマンドのハンドシェーク期間を短縮でき、データ転送を高速化することができる。
【００４９】
例えば、後述する参考例では、図５に示すように、コマンドを認識すると、コマンドチェックの開始から終了するまでの期間Ａの間、ＳＳＤ１１から信号SYNCpを送信する。そのため、この期間Ａの間は、ホスト２１の動作が空いている空白期間となる。結果、全体的な転送速度を落とす要因となり得ている。
【００５０】
これに対して、本例では、コマンド応答宣言とコマンドチェックとを並行して行うため、上記期間Ａのようなホスト２１の動作が空いている空白期間（コマンドチェック中のSYNCp送信期間）を少なくともなくすことができる。換言すると、本例は、リンク層間の調停処理の無駄を削減することができるものである。
【００５１】
［参考例］  
次に、参考例について、上記第１の実施形態に係る半導体記憶装置及びその通信方法と比較するため、図５を用いて説明する。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。図５はNCQコマンド転送時のコマンド応答完了までのシーケンスをPrimitive単位で示したものである。
【００５２】
参考例では、上記第１の実施形態に係るコマンド認識回路４９を備えていない。
【００５３】
そのため、図示するように、ＳＡＴＡインターフェースではデバイス側がコマンドを受信した際に、そのコマンドチェックをしてからX_RDYpを送信することで、コマンド応答の転送制御を開始する。このコマンドチェックからコマンド応答の転送制御開始までの時間がＳＡＴＡインターフェース上の時間削減可能期間（期間Ａ）が存在する。換言すると、参考例では、コマンドを認識すると、コマンドチェックの開始から終了するまでの期間Ａの間、ＳＳＤ１１から信号SYNCpを送信する。そのため、この期間Ａの間は、ホスト２１の動作が空いている空白期間となる。
【００５４】
結果、この期間Ａが全体的な転送速度を落とす要因となり得ており、転送動作の高速化に対して不利である。
【００５５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５６】
１１…ＳＳＤ（Solid sate drive）、２０…バス、２１…ホスト、２２、４２…ＳＡＴＡインターフェース（ＳＡＴＡ  Ｉ／Ｆ）、３１…ＮＡＮＤ型フラッシュメモリ、４１…ＳＳＤコントローラ、４９…コマンド認識回路、４９−１…コマンド認識部、４９−２…コマンドチェック部。
【図１】
2013171344.tif 000003
【図２】
2013171344.tif 000004
【図３】
2013171344.tif 000005
【図４】
2013171344.tif 000006
【図５】
2013171344.tif 000007