JP5657459B2 - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP5657459B2
JP5657459B2 JP2011086524A JP2011086524A JP5657459B2 JP 5657459 B2 JP5657459 B2 JP 5657459B2 JP 2011086524 A JP2011086524 A JP 2011086524A JP 2011086524 A JP2011086524 A JP 2011086524A JP 5657459 B2 JP5657459 B2 JP 5657459B2
Authority
JP
Japan
Prior art keywords
command
response
executed
data transfer
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011086524A
Other languages
English (en)
Other versions
JP2012094107A (ja
Inventor
曜久 藤本
曜久 藤本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011086524A priority Critical patent/JP5657459B2/ja
Publication of JP2012094107A publication Critical patent/JP2012094107A/ja
Application granted granted Critical
Publication of JP5657459B2 publication Critical patent/JP5657459B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L2001/125Arrangements for preventing errors in the return channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

本発明の実施形態は、例えばSDTMカードに適用され、ADMA(Advanced Direct Memory Access)を有するメモリシステムに関する。
近時、SDカード例えばSDメモリカードは、ホスト機器としての携帯電話器やデジタルカメラ等に広く使用されている。このSDメモリカードは、ホストコントローラを介してホスト機器に接続され、ホストコントローラにより、ホスト機器とSDメモリカードとの間のデータ伝送が制御されている。
特開2010−122898号公報
SD Host Controller Simplified Specification Version 2.00. Section 1.13 Advanced DMA, http://www.sdcard.org/developers/tech/host_controller/
コマンド・レスポンス・シーケンスにエラーが発生した場合においても、データ転送の中断を防止して、データの転送効率を向上することが可能なメモリシステムを提供しようとするものである。
本実施形態によれば、メモリデバイスは、引数に再送フラグを有するコマンドにより制御され、受信した前記コマンドに対して規定時間内にレスポンスを送信する送信部と、ビットエラーを検出するエラー検出部と、を具備するメモリデバイスであって、前記コマンドを認識できない場合、レスポンスを返さないことにより、コマンドが実行されなかったことを示し、且つコマンドを実行せず、前記コマンドを認識できた場合において、コマンドの引数に含まれる前記再送フラグがセットされている場合、コマンドを実行中であれば正常なレスポンスを返して、実行中の処理を継続していることを示し、前記コマンドを認識でき、且つコマンドを実行していない場合、前記再送フラグの値に関わらず、コマンドが実行可能と判定した場合、正常なレスポンスを返して、コマンドを実行することを示し、コマンドが実行不可能と判定した場合、エラーレスポンスを返して、コマンドが実行できなかったことを示すことを特徴とする。
実施形態に係るメモリシステムを概略的に示す構成図。 システムメモリとメモリカードのメモリマップを概略的に示す図。 実施形態に係るディスクリプタの構造を示す図。 図1に示すADMAを概略的に示す構成図。 図5(a)は、コマンドパケットのフォーマットを概略的に示す図であり、図5(b)は、レスポンスパケットのフォーマットを概略的に示す図である。 ホストコントローラの動作シーケンスを示すフローチャート。 デバイスの動作シーケンスを示すフローチャート。
バスインターフェースを用いたホストとデバイス間のコミュニケーション方法として、ホストがデバイスにコマンドを送信し、デバイスからのレスポンスを受信してコマンドがデバイスにより受け付けられたかを確認する方法が取られている。あるいは、特定のリード/ライトコマンドなどを用いてデータ転送が実施されたり、ノイズなどによる伝送中のエラーの検出のためCRC(Cyclic Redundancy Check)コードを用いたエラー検出が用いられたりしている。
ノイズの発生状況が同一の環境で、ノイズによるビットエラーの発生確率が同一である場合においても、バスの転送速度が高速化するに従って、ビットエラーが発生する時間間隔は短くなっていく。このため、例えば数秒から数分に1ビットの割合でビットエラーが発生することが予想される。したがって、高速バスにおいては、プロトコルの再送機能をサポートすることが重要となる。
従来のコマンドプロトコルでは、ビットエラーを含む何らかのエラーが発生した場合(これはCRCコードなどでチェックされる)、ホストが一旦転送をアボートコマンドで停止させ、再度コマンドをリトライ実行する必要があった。このため、データ転送の中断が発生し、転送効率が低下するといい問題があった。特に、ハードウェアによるDMA(Direct Memory Access)転送を実施しているときに、この様なノイズによる中断が発生すると、ホストドライバによる処理が必要となり、DMAの効果が薄れてしまうという問題がある。
また、高速バスによるデータ伝送において、ノイズなどにより発生する転送エラーについても同様な問題があり、データ転送中にノイズによりビットエラーが発生すると(CRCコードなどでチェックされる)、データ転送をいったん中断して、データ転送のリトライ制御をホストが行う必要があり、高速バスにおいては、このオーバーヘッドが無視できなくなる。
以下、実施の形態について、図面を参照して説明する。
図1は、本実施形態に係るメモリシステムを概略的に示している。
本実施形態は、コマンドの引数に再送フラグを設け、最初のコマンドに対応してエラーが発生した場合、ホストコントローラが再送フラグをセットして、最初のコマンドと同一のコマンドを再送するシーケンスを設けている。これにより、データ転送中にノイズによるエラーが発生した場合においても、メモリカード15やSDIOカード16は、データ転送の中断を防止して、データの転送効率の低下を防止可能としている。
図1に示すシステムコントローラ11は、例えば携帯電話機などのホスト機器に設けられ、ホスト機器のCPU12、システムメモリ13、及びSDホストコントローラ14とのインターフェース制御を行う。
システムメモリ13は、ホストドライバ21、ディスクリプタテーブル22、及びデータ23を記憶する。これらホストドライバ21、ディスクリプタテーブル22、及びデータ23を記憶するために必要な領域は、オペレーティングシステム(OS)によってシステムメモリ13上に確保される。
ホストドライバ21は、例えばSDホストコントローラ14用のOS固有のドライバであり、CPU12により実行される。ホストドライバ21は、後述するADMAを実行する前に、ディスクリプタテーブル22を生成する。このディスクリプタテーブル22は、システムメモリ13とSDカードの間のデータ転送に必要な情報をリストにしたものである。ディスクリプタテーブル22の構造については後述する。
SDホストコントローラ14は、SDコマンドを用いて、システムメモリ13とSDカード間のデータ転送を双方向で行う機能を有している。SDホストコントローラ14は、主としてシステムバスインターフェース(I/F)回路31、メモリカードI/F回路32、複数のレジスタを含むレジスタセット33、ADMA34、タイマ35により構成されている。
システムバスI/F回路31は、システムバスを介してシステムコントローラ11に接続され、メモリカードI/F回路32は、図示せぬSDバスインターフェースを介してSDカード、例えばSDメモリカード15、SDIOカード16に接続可能とされている。SDメモリカード15やSDIOカード16は、SDホストコントローラ14から供給されるコマンドにより制御され、受信したコマンドに対して、予め設定された規定時間内にレスポンスをSDホストコントローラ14に返すように設定されている。SDメモリカード15は、例えばCPU15a、RAM15b、ROM15c、バッファ(BUF)15d、インターフェース(I/F)15e、NANDメモリのインターフェース(NI/F)15f、NANDメモリ(NAND)15gにより構成されている。CPU15は、引数に再送フラグを有するコマンドにより制御され、受信したコマンドに対して規定時間内にレスポンスを送信する。さらに、CPU15は、ビットエラーを検出する。
SDホストコントローラ14のレジスタセット33は、例えば図示せぬSDコマンド発生部、レスポンス部、バッファデータポート部、ホストコントロール部、割り込みコントロール部、ADMA部など、複数の部分に分類されている。SDコマンドの発行に必要な情報、例えばコマンド番号、コマンドモード、及びアーギュメントやデータ転送に必要な情報 ブロック長、ブロック数は、レジスタセット33のSDコマンド発生部に設定される。SDコマンド発生部は、これらの情報が設定されることにより、SDカードに対してコマンドを発行する。このコマンドに応じてSDカードから供給されるレスポンスは、レジスタセット33内のレスポンス部で受信される。
ADMA34は、CPU12を介さずに、SDカードとシステムメモリ13間において、データを転送する回路である。このADMA34は、システムメモリ13上のディスクリプタテーブル22に記載された内容に従ってデータ転送を実行する。
タイマ35は、タイム・アウト・エラーを検出するものである。例えばコマンドが発行されてから予め設定された規定時間、又はクロック数以上経過した内にレスポンスを受信できない場合、タイマ35がタイム・アウト・エラーを検出する。再送フラグが“0”に設定されたコマンドに対するレスポンスタイムアウトエラーを検出する場合、ホストCPU12には通知されず、直接SDホストコントローラ14が再送フラグを“1”に設定した同じコマンドを発行する。また、再送フラグが“1”に設定されたコマンドに対するレスポンスタイムアウトエラーを検出する場合、ホストCPU12に割り込みで通知され、ホストドライバによって処理される。
上記再送フラグが“0”に設定されたコマンドに対するレスポンスタイムアウトエラーの場合でも、ホストドライバでコマンドを再送することは可能であるが、性能は低下する。再送コマンドにおいて、再度レスポンスタイムアウトエラーを検出する場合、転送は中断されて、ホストドライバでエラー処理が行われる。
図2は、システムメモリ13のページング管理とSD物理アドレスの関係の例を示している。システムメモリ13はページングにより、例えば4kByte毎の小領域単位で管理される。ホストCPU12が実行するアプリケーションからは、ホストCPU12で管理されるページング機能によって、論理アドレスによりシステムメモリ13がアクセスされる。このため、論理アドレスシステムメモリマップに示すように、データは連続したアドレス領域に配置されているように見える。しかし、システムメモリ13に実際に記録されるデータの位置は、任意であり、物理アドレスシステムメモリマップに示すように断片的である。これらデータは、アドレスとデータ長(length)により管理されており、データ長は可変である。また、システムメモリ13に記憶されたデータの物理アドレスと論理アドレスの関係は、図示せぬページテーブルで管理される。
一方、SDメモリカード13に記憶されるデータは、例えば512Byte〜数MByteのページ単位(ブロック単位)に管理されており、システムメモリ13と完全に独立している。このため、システムメモリ13上のデータをSDメモリカード15に記憶させる場合、SD物理アドレスメモリマップに示すように、システムメモリ13上のデータは、システムメモリ13上とは異なるサイズにより記憶される。SDメモリカード15内のデータは、コマンド毎に指定される記憶領域に保持され、コマンドにより指定されたアドレスを有しており、データ長は可変である。
DMA転送は、物理アドレスによって直接システムメモリ13をアクセスする。このため、システムメモリ13上に転送リストとしてのディスクリプタを作成することにより、DMAの実行が可能となる。
図3は、本実施形態に係るディスクリプタを示している。このディスクリプタは、システムメモリ13のディスクリプタテーブル22内に作成される。
本実施形態のディスクリプタは、従来のディスクリプタを拡張するものであり、階層構造により構成されている。本実施形態のディスクリプタを用いることにより、ADMAによるシステムメモリ13とSDメモリカード15間のデータ転送を、完全にハードウェアにより実行可能としている。したがって、データ転送中にホストCPU12に割り込みを行う必要がなくなる。メモリ書き込みエラーなどの処理要求は割り込みで通知されるが、発生確率が非常に小さいので問題はない。
図3に示すように、第1ディスクリプタ(Integrated Descriptor)は、複数の第2ディスクリプタ(Partial Descriptor)へのポインタの集まりによって構成されている。
各第2ディスクリプタ(Partial Descriptor)は、第3ディスクリプタ(SD Command Descriptor)と第4ディスクリプタ(System Memory Descriptor)のペアで構成される。
第3ディスクリプタの内容は、SDコマンドを発行するための情報により構成されている。すなわち、第3ディスクリプタの内容は、例えばコマンド番号(Command Number)、コマンドモード(Command mode)、引数(Argument)、データ転送に必要な情報としてのブロック長(Block Length)、ブロック数(Block Count)により構成されている。コマンドモードは、例えばリード/ライトを示すものである。この第3ディスクリプタをSDホストコントローラ14のレジスタセット33のうち、SDコマンド発生部に書き込むことにより、1つのSDコマンドが発行される。
第4ディスクリプタ(System Memory Descriptor)の内容は、システムメモリ13上の各データの位置を示すアドレス(Address)と、データ長を示すレングス(length)とにより構成され、断片的に配置された複数のデータの集まりを示している。
第1乃至第4ディスクリプタは、それぞれ属性情報Attを有している。各属性情報Attは、例えばディクスリプタの種類を識別するための情報、及びディスクリプタの終了位置を示す終了ビットを含んでいる。
尚、第3ディスクリプタは、フォーマットが他のディスクリプタと相違するため、属性情報Attは、少なくとも先頭のコマンド番号に対応して設けてもよい。
図4は、ADMA34の概略構成を示している。ADMA34は、システムアドレス制御部34a、データバッファ34b、SDコマンド制御部34c、及びバッファメモリ34dを有している。
システムアドレス制御部34aは、システムメモリ13のアドレスを管理する。具体的には、システムメモリ13に記憶された第1乃至第4のディスクリプタの読み込みを管理する。すなわち、システムアドレス制御部34aは、先ず、システムメモリ13から第1ディスクリプタ(Integrated descriptor)の先頭アドレスの内容、つまり、第2ディスクリプタのアドレスを読み込み、このアドレスに従って第2ディスクリプタを読み込む。次に、第2ディスクリプタを構成する第3ディスクリプタとしてのSDコマンドディスクリプタをSDコマンド制御部34cに転送する。さらに、第2ディスクリプタを構成する第4ディスクリプタに記述されたデータのアドレス、及びデータ長を順次読み込み、このアドレス及びデータ長に従って、メモリライト時は、システムメモリ13からデータを読み出し、データバッファ34bに転送する。メモリリード時は、データバッファ34bからシステムメモリ13にデータを転送する。
これらの動作を実行するため、システムアドレス制御部34aは、第1ディスクリプタ(Integrated Descriptor)の先頭アドレス、第2ディスクリプタ(Partial Descriptor)のポインタ、データのアドレス及びデータ長を保持するため、複数のレジスタ34a_1〜34a_4、及びこれらレジスタの出力信号を選択するマルチプレクサ(MPX)34a_5を有している。
SDコマンド制御部34cは、SDコマンド発生部に値を設定するためのレジスタアドレスを順次発生するとともに、第3ディスクリプタとしてのSD Command Descriptorに含まれるレジスタ設定情報をホストコントローラ14のレジスタセット33のうちSDコマンド発生部に順次設定する。レジスタセット33のSDコマンド発生部は、レジスタの設定が完了するとSDコマンドを発生する。
バッファメモリ34bは、メモリライトの場合、システムアドレス制御部34aにより指定されたシステムメモリ13上のデータを読み込み、供給されたデータを一時的に保持する。データバッファ34bに保持されたデータは、発行されたSDコマンドに同期してSDメモリカード15に転送される。
また、バッファメモリ34dは、メモリリードの場合、発行されたSDコマンドに同期してメモリデバイスとしてのSDメモリカード15から読み込んだデータを一時的に保持し、システムアドレス制御部34aにより指定されたシステムメモリ13上の位置にデータを転送する。このようにバッファメモリ34dは、異なる周波数で動作するシステムメモリ13と、メモリカード15、又はSDIOカード16間のデータの受け渡しを行う働きをする。
図5は、SDホストコントローラ14から発行されるコマンドと、SDメモリカード15から出力されるレスポンスの一例を示すものであり、図5(a)はコマンドの例を示し、図5(b)はレスポンスの例を示している。
図5(a)に示すコマンドパケットは、コマンド番号51、引数52、引数によって決まる付加情報53、CRCなどのエラー検出情報54を含んでいる。引数の一部として、例えば1ビットの再送フラグ52aが割り当てらいれている。再送フラグは、“0”の場合、最初に発生されたコマンドを示し、“1”の場合、再送コマンドであることを意味し、最初に発生したコマンドと同じコマンドであることを示している。
図5(b)に示すレスポンスパケットは、エラーステータス情報55、付加情報56、CRCなどのエラー検出情報57を含んでいる。エラーステータス情報55は、レスポンスを受信した場合のエラー情報である。レスポンスを受信できなかった場合もエラーの一つであるが、これはSDホストコントローラ14のタイマ35によりタイム・アウト・エラーとして検出される。タイマは、特定の時間または特定のクロック数でタイムアウトの検出を制御する。
上記構成において、SDホストコントローラ14とSDメモリカード15のコマンド及びレスポンスについて説明する。
図6は、SDホストコントローラ14のコマンド発行シーケンスを示している。
SDホストコントローラ14は、最初にコマンドを発行する場合、引数52の再送フラグ52aをクリアした状態、すなわち“0”を設定した状態でコマンドを発生し、デバイスとしての例えばSDメモリカード15に送信する(S11)。
コマンドを発生した後、SDメモリカード15からのレスポンスを待つ(S12)。すなわち、SDホストコントローラ14は、コマンド発生後、レスポンスを待ち、タイマ35に予め設定された規定時間を経過した状態においてレスポンスを受信できない場合、SDホストコントローラ14は、タイムアウトかどうかを判別する(S12)。
レスポンスのタイムアウトをデータのタイムアウトに比べて短い時間に設定することにより、レスポンスが受信できなかった場合のロスタイムを減らすことができる。
SDホストコントローラ14は、タイムアウト前にレスポンスを受信した場合(S13)、レスポンスに含まれるエラーステータス情報55に基づき、エラーが有るかどうかを判別する(S14)。この結果、エラーが無い場合、正常動作と判断する。このため、例えばデータ転送コマンドの場合は、データ転送を開始できる。
また、ステップS14において、レスポンスに含まれるエラーステータス情報55がエラーを示す場合、ホストはコマンド送信エラーとして、コマンドの発行タイミングやコマンド引数が間違っていたと解釈する。これはノイズによるエラーではなく、ホストのプログラムの修正が必要となる。
一方、ステップS12において、レスポンスのタイムアウトを検出した場合、SDホストコントローラ14は、コマンドの引数52の再送フラグ52aを“1”に設定し、前回と同じコマンドを発行する(S15)。
コマンドを再送した場合、再びSDメモリカード15からのレスポンスを待つ(S16)。この結果、タイマ35に設定された規定時間内にレスポンスを受信できた場合(S17)、SDホストコントローラ14は、エラーステータス情報55に基づき、エラーが有るかどうかを判別する(S18)。この結果、エラーが無い場合、正常動作と判断する。
ステップS16において、レスポンスのタイムアウトを検出した場合、SDホストコントローラ14は、コマンド送信エラーとされる。
このように、最初のコマンド発行に対して、ノイズなどにより、SDメモリカード15などのデバイスがコマンドを認識できなかった場合や、SDホストコントローラ14がレスポンスを受信できなかった場合、再送フラグ52aをセットするとともに、前回のコマンドと同一の内容のコマンドを再発行することができる。このため、ノイズなどにより、SDメモリカード15などのデバイスがコマンドを認識できなかった場合や、SDホストコントローラ14がレスポンスを受信できなかった場合のエラーを救済することができる。
図7は、デバイスのコマンド処理シーケンスの一例を示している。
SDメモリカード15などのデバイスは、コマンドを受信した場合(S21)、そのコマンドにCRCエラーが発生しているかどうかを判別する(S22)。この結果、CRCエラーが発生している場合、コマンド番号を特定できないため、認識不可能なコマンドとして無視し、デバイスはレスポンスを返さない。したがって、この場合、SDホストコントローラ14のタイマ35は、規定時間経過後、タイム・アウト・エラーを出力する。
一方、判別の結果、CRCが正常である場合、コマンドの引数52に含まれた再送フラグ52aの状態が確認される(S23)。すなわち、再送フラグが“1”であるかどうかが判別される。SDホストコントローラ14から最初にコマンドが発行される場合、再送フラグは、リセットされ、“0”が設定されている。
再送フラグが“0”である場合、通常のコマンド処理シーケンスに移行され、受信したコマンドが実行可能であるかどうかが判別される(S26)。すなわち、コマンドは、コマンド番号とデバイスの状態によって実行可能かどうかが決定される。この判別の結果、コマンドが実行可能ではない場合と判別された場合、デバイスは、SDホストコントローラ14にレスポンスを返さずに終了する。この場合、SDホストコントローラ14は、タイマ35に予め設定された時間を経過してもデバイスからレスポンスを受けることが出来ないため、タイマ35はタイム・アウト・エラーを出力する。
一方、ステップS26において、コマンドが実行可能であると判別された場合、引数が正しいかどうか正当性が判別される(S27)。この判別の結果、引数が正しい場合、デバイスは、SDホストコントローラ14に正常レスポンスを返し(S28)、コマンドを実行する(S29)。
また、ステップS27において、引数が正しくない場合、デバイスは、SDホストコントローラ14にエラーレスポンスを返す(S30)。
但し、引数が正しいかどうかの正当性検査に時間がかかる場合、検査結果を待たずに、正常レスポンスを返すことも可能である。間違った引数で正常レスポンスを返した場合、メモリアクセスエラーなどの別なエラー要因が発生することで引数の間違いを知らせることが可能である。引数の間違いは、本実施形態におけるコマンドの再送対象ではなく、ホストドライバが正しい引数を設定するように修正すべきものである。
さらに、前記ステップS23において、再送フラグが“1”である場合、デバイスが最初の(直前の)コマンドを認識できなかったか、デバイスが最初のコマンドに対してレスポンスを返したが、SDホストコントローラ14がレスポンスを正しく受信できなかった場合である。再送フラグが“1”である場合、デバイスはコマンドを実行中かどうか確認する(S24)。つまり、デバイスがステップS28において、最初のコマンドに対してレスポンスを返したが、ホストコントローラ14がレスポンスを正しく受信できなかった場合、最初のコマンドは正しく認識されているため、最初のコマンドが実行されている可能性がある。このため、デバイスは最初のコマンドが実行中かどうかを確認する。この結果、コマンドを実行中の場合、そのまま実行中の処理が継続され、デバイスからSDホストコントローラ14に正常レスポンスが返される(S25)。
また、ステップS24において、デバイスがコマンドを実行中ではないと判別された場合、制御がステップS26に移行され、前述した動作が行われる。
再送されたコマンドに対して、レスポンスエラー(引数が正当ではない場合)、又はレスポンスタイムアウトを検出した場合、SDホストコントローラ14は、例えばCPU12に割り込みを発生させてエラーがあったことを伝える。
また、コマンドが実行不可能と判定された場合、エラーレスポンスを返して、コマンドが実行できなかったことを示してもよい。
上記実施形態によれば、コマンドの引数52に再送フラグ52aを設け、最初のコマンドに対応して、デバイスにおいて、エラーが発生した場合、SDホストコントローラ14は再送フラグを“1”にセットして、最初のコマンドと同一のコマンドを再送する。また、デバイスは、再送フラグが“0”である場合や、再送フラグが“1”である場合で、最初のコマンドに対応する処理が実行中ではない場合、コマンド処理が実行可能であるかどうかを判別し、実行可能である場合、コマンド処理を実行している。このように、同一コマンドを2回発行可能とするシーケンスを用いることにより、ノイズなどにより、デバイスが最初のコマンドを認識できなかった場合や、SDホストコントローラ14がデバイスからのレスポンスを受信できなかった場合においても、コマンドを再送することによりエラーを救済することが可能である。したがって、CPU12の割り込みを回避し、データ転送を中断する必要がないため、データ転送効率を向上することができる。
しかも、デバイスは、再送フラグの内容を判別することにより、送られてきたコマンドが最初のコマンドであるか、再送コマンドであるかを判別することができる。さらに、再送コマンドである場合、最初のコマンドに応じて処理が実行中かどうかを判別し、実行中である場合は、その動作を継続させている。このため、データ転送の中断を防止して、データの転送効率の低下を防止することが可能であるとともに、コマンドの再実行を防止することができ、コマンド処理の高速化を図ることができる。したがって、ADMA34の実行中において、ノイズによるビットエラーが発生した場合においても、ADMA34の動作を中断することなく実行することが可能である。
ADMA34が、例えば3Gbps程度の高速なデータ転送を実行している場合、数秒に1ビットの割合でビットエラーが発生する可能性がある。しかし、本実施形態によれば、コマンドを再送することにより、データ転送を中断することなく、実行することが可能であり、データ転送の高速化を図ることが可能である。
また、本実施形態によるコマンド再送は、同一コマンドを再送すれば良いため、ハードウェア化が容易であり、ホストドライバを介さずにADMAがコマンド再送を行うことが可能である。
尚、再送フラグは、1ビットにより構成されている場合について説明したが、これに限定されるものではない。例えば再送フラグを複数ビットにより構成したり、カウンタにより構成したりすることにより、複数回コマンドを再送することが可能となる。
また、上記実施形態は、ADMAを用いてデータ転送を行う場合について説明した。しかし、これに限定されるものではなく、他の転送方法を用いることも可能である。この場合において、コマンドの送信時にエラーが発生した場合、上記のように、同一コマンドを再送し、データの再送は、周知の方法により実行すればよい。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
12…CPU、13…システムメモリ、14…SDホストコントローラ、15…SDメモリカード、21…ホストドライバ、22…ディスクリプタテーブル、33…レジスタセット、34…ADMA、34a…システムアドレス制御部、34b…データバッファ、34c…SDコマンド制御部、52…引数、52a…再送フラグ。

Claims (5)

  1. 引数に再送フラグを有するコマンドにより制御され、受信した前記コマンドに対して規定時間内にレスポンスを送信する送信部と、
    ビットエラーを検出するエラー検出部と、
    を具備するメモリデバイスであって、
    前記コマンドを認識できない場合、レスポンスを返さないことにより、コマンドが実行されなかったことを示し、且つコマンドを実行せず、
    前記コマンドを認識できた場合において、コマンドの引数に含まれる前記再送フラグがセットされている場合、コマンドを実行中であれば正常なレスポンスを返して、実行中の処理を継続していることを示し、
    前記コマンドを認識でき、且つそのコマンドを実行していない場合、前記再送フラグの値に関わらず、コマンドが実行可能と判定した場合、正常なレスポンスを返して、コマンドを実行することを示し、コマンドが実行不可能と判定した場合、エラーレスポンスを返して、コマンドが実行できなかったことを示すことを特徴とするメモリデバイス。
  2. 引数に再送フラグを有するデータ転送コマンドを発生し、発生された前記データ転送コマンドをメモリデバイスに送信するコマンド発生部と、
    前記メモリデバイスからのレスポンスが規定時間内に受信できない状態をタイムアウトとして検出する検出手段と、
    を具備するホストコントローラであって、
    最初のデータ転送コマンドを送信する場合、前記再送フラグをクリアして前記データ転送コマンドを送信し、前記検出手段によりタイムアウトが検出された場合、前記タイムアウトが検出されたことをホストに割り込みで通知することなく、前記再送フラグをセットして、前記最初のデータ転送コマンドと同一のデータ転送コマンドを前記メモリデバイスに再送し、再送したデータ転送コマンドに対応して正常なレスポンスを受信した場合、前記最初のデータ転送コマンド又は再送したデータ転送コマンドが前記メモリデバイスに認識され、前記メモリデバイスによって最初のデータ転送コマンドが実行されているか、又は再送したデータ転送コマンドが実行される状態にあると認識し、
    前記再送したデータ転送コマンドに対して前記検出手段によりタイムアウトが検出された場合または、エラーレスポンスを受信した場合、前記データ転送コマンドを実行できなかったことをホストに割り込みで通知することを特徴とするホストコントローラ。
  3. 引数に再送フラグを有するコマンドを発生し、発生された前記コマンドをデバイスに送信するホストコントローラと、
    前記ホストコントローラからの前記コマンドを受信し、
    前記コマンドが認識できない場合、レスポンスを返さないことにより、コマンドが実行されなかったことを示し、
    前記コマンドが認識できた場合でコマンドが実行可能と判定した場合、正常なレスポンスを返しコマンドを受付けたことを示し、
    前記コマンドが認識できた場合でコマンドが実行不可能と判定した場合、エラーレスポンスを返しコマンドが実行できなかったことを示すメモリデバイスと、
    を具備し、
    前記ホストコントローラは、
    前記メモリデバイスからのレスポンスが前記規定時間内に受信できない状態をタイムアウトとして検出する検出手段をさらに有し、
    最初のコマンドを送信する場合、前記再送フラグをクリアしてコマンドを送信し、
    前記検出手段によりタイムアウトが検出された場合、前記再送フラグをセットした前記最初のコマンドと同一のコマンドを前記デバイスに再送し、
    前記最初のコマンド又は再送コマンドのいずれかに対応して正常なレスポンスを受信した場合、そのコマンドは正しく受付られたと認識し、再送コマンドに対して前記検出手段によりタイムアウトが検出された場合またはエラーレスポンスを受信した場合、コマンドが実行できなかったことをホストに割り込みで通知することを特徴とするメモリシステム。
  4. 前記再送フラグは、少なくとも1ビットにより構成されていることを特徴とする請求項に記載のメモリシステム。
  5. 前記ホストコントローラは、ダイレクト・メモリ・アクセス(DMA)回路を有し、
    前記DMA回路は、システムメモリに記憶されたディスクリプタの記述に基づき、データを転送することを特徴とする請求項に記載のメモリシステム。
JP2011086524A 2010-09-29 2011-04-08 メモリシステム Expired - Fee Related JP5657459B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011086524A JP5657459B2 (ja) 2010-09-29 2011-04-08 メモリシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010219780 2010-09-29
JP2010219780 2010-09-29
JP2011086524A JP5657459B2 (ja) 2010-09-29 2011-04-08 メモリシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014235935A Division JP5932947B2 (ja) 2010-09-29 2014-11-20 ホスト及びシステム

Publications (2)

Publication Number Publication Date
JP2012094107A JP2012094107A (ja) 2012-05-17
JP5657459B2 true JP5657459B2 (ja) 2015-01-21

Family

ID=45871935

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011086524A Expired - Fee Related JP5657459B2 (ja) 2010-09-29 2011-04-08 メモリシステム
JP2014235935A Expired - Fee Related JP5932947B2 (ja) 2010-09-29 2014-11-20 ホスト及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014235935A Expired - Fee Related JP5932947B2 (ja) 2010-09-29 2014-11-20 ホスト及びシステム

Country Status (4)

Country Link
US (2) US8874989B2 (ja)
JP (2) JP5657459B2 (ja)
CN (1) CN102436430B (ja)
TW (1) TWI483117B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI483117B (zh) 2010-09-29 2015-05-01 Toshiba Kk 用於執行命令之裝置、主機控制器及用於執行命令之系統
US8972818B2 (en) 2012-10-05 2015-03-03 Qualcomm Incorporated Algorithm for optimal usage of external memory tuning sequence
JP6273972B2 (ja) * 2014-03-31 2018-02-07 富士通株式会社 情報処理装置、送受信装置、及び情報処理装置の制御方法
US9819557B2 (en) * 2014-12-18 2017-11-14 Intel IP Corporation Multi-rate high-speed bus with statistical aggregator
US10437483B2 (en) 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
US10990319B2 (en) 2018-06-18 2021-04-27 Micron Technology, Inc. Adaptive watchdog in a memory device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01231128A (ja) 1988-03-11 1989-09-14 Nec Corp 障害処理方式
JP2907233B2 (ja) 1990-12-19 1999-06-21 オムロン株式会社 プログラマブルコントローラの上位リンクシステム
JPH05314026A (ja) * 1992-05-08 1993-11-26 Nec Corp 制御処理装置
CN1206320A (zh) * 1997-06-03 1999-01-27 诺基亚流动电话有限公司 解决移动台中的dcch到acc转移登录冲突
JP4342629B2 (ja) 1999-03-24 2009-10-14 株式会社東芝 携帯可能電子装置とファイル制御情報の記憶方法とファイル制御情報の検索方法
US6335933B1 (en) * 1999-05-21 2002-01-01 Broadcom Homenetworking, Inc. Limited automatic repeat request protocol for frame-based communication channels
JP3607229B2 (ja) 2001-09-28 2005-01-05 株式会社東芝 携帯可能電子装置及びそのチェック方法
US7110371B2 (en) * 2002-08-28 2006-09-19 Intel Corporation System and method to communicate between a host and a modem
CN100417251C (zh) * 2002-11-08 2008-09-03 中兴通讯股份有限公司 基于随路控制命令的数据下载方法
JP4209743B2 (ja) * 2003-08-08 2009-01-14 三菱電機株式会社 電子制御装置
JP2005323074A (ja) * 2004-05-07 2005-11-17 Matsushita Electric Ind Co Ltd 通信システムおよび基地局装置
CN101964705B (zh) * 2005-01-28 2012-08-08 夏普株式会社 通信设备、通信系统、通信方法、通信程序、通信电路
JP4768283B2 (ja) * 2005-02-15 2011-09-07 パナソニック株式会社 再送制御方法、無線通信システム、基地局および移動局
JP4349349B2 (ja) * 2005-08-30 2009-10-21 ソニー株式会社 データ送受信システム、送信装置、受信装置及びデータ送受信方法
JP2007334555A (ja) 2006-06-14 2007-12-27 Ricoh Co Ltd データ転送装置と電子装置
JP5193822B2 (ja) 2008-11-19 2013-05-08 株式会社東芝 追記型メモリデバイス
JP2010198138A (ja) * 2009-02-23 2010-09-09 Ricoh Co Ltd データ転送装置、データ転送制御方法、データ転送制御プログラム及び記録媒体
TWI483117B (zh) 2010-09-29 2015-05-01 Toshiba Kk 用於執行命令之裝置、主機控制器及用於執行命令之系統

Also Published As

Publication number Publication date
TWI483117B (zh) 2015-05-01
JP2012094107A (ja) 2012-05-17
US20120079338A1 (en) 2012-03-29
US20150033090A1 (en) 2015-01-29
US8874989B2 (en) 2014-10-28
CN102436430A (zh) 2012-05-02
US9473273B2 (en) 2016-10-18
CN102436430B (zh) 2015-05-27
TW201214127A (en) 2012-04-01
JP5932947B2 (ja) 2016-06-08
JP2015043237A (ja) 2015-03-05

Similar Documents

Publication Publication Date Title
JP5932947B2 (ja) ホスト及びシステム
US7024591B2 (en) Mechanism for enabling enhanced fibre channel error recovery across redundant paths using SCSI level commands
US8504737B2 (en) Serial line protocol for embedded devices
US20210011785A1 (en) Methods and apparatus for correcting out-of-order data transactions between processors
CN111448543B (zh) 内存访问技术及计算机系统
US7707346B2 (en) PCI express multi-root IOV endpoint retry buffer controller
US9021147B1 (en) Command queuing in disk drives
CN111930676A (zh) 多处理器间的通信方法、装置、系统及存储介质
CN111258493A (zh) 控制器、存储器控制器、存储设备以及操作控制器的方法
US8255601B2 (en) Transmitting system, apparatus, and method
US6948025B2 (en) System and method for transferring data between an IEEE 1394 device and a SCSI device
JP5966243B2 (ja) ストレージ装置及びストレージ装置の制御方法
TWI582599B (zh) 資料傳輸方法、記憶體控制器、資料傳輸系統
JP4652315B2 (ja) ディスク装置、データ転送システム及びそれに用いるデータ転送方法
JP3683831B2 (ja) データ処理システムにおけるチャネル回復のためのチェックポイント指定方法、装置およびプログラム記録媒体
US8412998B1 (en) Restart operation with logical blocks in queued commands
JP5278117B2 (ja) バッファ縮退方式、装置及び方法
JP2018077679A (ja) 制御装置、伝送装置、及び制御方法
JP5334173B2 (ja) データ転送システム及びリトライ制御方法
WO2010061482A1 (ja) 試験装置、シリアル伝送システム、プログラム、および、記録媒体
JP4439295B2 (ja) データ転送制御装置
JP2005277552A (ja) バスリトライ制御方式及びデータ通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141126

R151 Written notification of patent or utility model registration

Ref document number: 5657459

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees