JP2011107928A - インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム - Google Patents

インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム Download PDF

Info

Publication number
JP2011107928A
JP2011107928A JP2009261535A JP2009261535A JP2011107928A JP 2011107928 A JP2011107928 A JP 2011107928A JP 2009261535 A JP2009261535 A JP 2009261535A JP 2009261535 A JP2009261535 A JP 2009261535A JP 2011107928 A JP2011107928 A JP 2011107928A
Authority
JP
Japan
Prior art keywords
data
interface circuit
host device
buffer
packet
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.)
Pending
Application number
JP2009261535A
Other languages
English (en)
Inventor
Tadashi Ono
正 小野
Tatsuya Adachi
達也 足立
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009261535A priority Critical patent/JP2011107928A/ja
Publication of JP2011107928A publication Critical patent/JP2011107928A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】不揮発性記憶装置への書き込みデータバーストが不揮発性メモリのページ境界をまたぐとき、効率よく書き込みを行うために追加のバッファが必要となる。
【解決手段】ホスト装置は不揮発性記憶装置のインターフェースバッファに格納できるセクタ数を取得し、データバースト内のDATAパケット数NDBを決定する。続いてホスト装置は、最初のDATAパケットから、Write先セクタアドレスがNDBの倍数である直前のDATAパケットまでで第1データバーストを構成する。
【選択図】図1

Description

本発明は、ホスト装置、および不揮発性記憶装置をはじめとするスレーブ装置との間のインターフェースを制御するインターフェース回路、およびインターフェース回路を含むホスト装置、スレーブ装置、およびホスト装置とスレーブ装置から構成される不揮発性記憶システムに関する。
書き換え可能な不揮発性メモリを用いた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。不揮発性記憶装置は、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。この不揮発性記憶装置は、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するフラッシュメモリ読み書き制御部、およびデジタルスチルカメラやパソコン(パーソナルコンピュータ)本体等のホスト装置との通信を司るスレーブインターフェース回路を有している。
以下スレーブ装置として不揮発性記憶装置の場合を中心に説明する。ホスト装置と不揮発性記憶装置の間は、複数本のインターフェースバスにより接続されている。このような外部バス上には、ホスト装置から不揮発性記憶装置に対する命令であるコマンドや通知、不揮発性メモリから読み出される、もしくは不揮発性メモリに書き込まれるデータ等が、デジタル信号として伝送される。不揮発性記憶装置の一例としてSDカードがある。これまでのSDカードでは、読み書きの際のデータの基本単位は512byteのセクタであった。すなわち、ホスト装置およびSDカード間のデータ転送はセクタ単位で実施され、SDカード上のアドレスもセクタ単位で管理されていた。また一般にホスト装置からSDカードをはじめとする不揮発性記憶装置へデータを転送する速度より、SDカード内でデータを不揮発性メモリ(フラッシュメモリ)に書き込む速度のほうが遅いため、通常不揮発性記憶装置内にバッファを設け、不揮発性記憶装置がこれ以上データを受信できないときにはホスト装置に対してBUSY通知を実施してホスト装置からのデータ送信を抑止する。このことにより速度差を吸収し、データのオーバーフローを防止している。
一方不揮発性記憶装置内の不揮発性メモリの大容量化に伴い、よりレートの高いデータを効率よく伝送するニーズが高まってきている。上記を実現するための一つの方法として、複数のセクタデータを束ねたデータバーストを単位として転送する方法がある。図6は、上記ニーズを実現するために、ホスト装置と、スレーブ装置の一種である不揮発性記憶装置と、が2本の伝送路で接続された従来の不揮発性記憶システムの構成例を示したブロック図である。
図6における不揮発性記憶システムは、ホスト装置600と不揮発性記憶装置610とから構成され、両者はインターフェースバスである第1伝送路621および第2伝送路622により接続されている。第1伝送路621はホスト装置600から不揮発性記憶装置610への通信(ダウンリンク)、第2伝送路622は不揮発性記憶装置610からホスト装置600への通信(アップリンク)を担う。
ホスト装置600は、少なくともアプリケーション601、メモリ602、ホストインターフェース回路630を含む。またホストインターフェース回路630は少なくとも制御パケット生成部631、制御パケット解析部632、データバースト生成部633からなる。
不揮発性記憶装置610は、少なくともスレーブインターフェース回路640、インターフェースバッファ611、ページバッファ612、不揮発性メモリ読み書き制御部613および不揮発性メモリ614からなる。またスレーブインターフェース回路640は、少なくとも制御パケット解析部641、制御パケット生成部642、データバースト解析部643からなる。またインターフェースバッファ(Interface Buffer)611はIB(A)およびIB(B)の2面から構成される。
不揮発性メモリ614への書き込みは通常セクタの倍数であるページと呼ばれる単位で実施される。ページバッファ612は、書き込みアドレスがページ境界に合致したセクタからページサイズ分のデータがそろって書き込みが可能になる。このことから、ページバッファ612へは、不揮発性メモリ614のページ境界に合わせて書き込む必要がある。またインターフェースバッファ611内のIB(A)およびIB(B)のサイズは、ページサイズに等しいかページサイズの約数であれば、上記制御が容易となり、かつ不要なバッファ領域が削減可能となる。ここでは、ページサイズおよびIB(A)、IB(B)をすべて4セクタすなわち2KByteであると仮定する。なお不揮発性メモリ614上のページの一部に、すでに有効データが書き込まれているセクタを含むページの空きセクタにデータを書き込むときは、書き込みデータをページバッファ612に転送後、上記有効データもページバッファ612にコピーした上で不揮発性メモリ614に書き込まなければならない。
図7(a)〜(c)はインターフェースバッファ611の構成の詳細を説明した図である。インターフェースバッファ611内の2面のバッファIB(A)、IB(B)は、いずれもSector[0]からSector[3]までの4つの領域に分かれており、それぞれにセクタ分のデータを格納することができる。IB(A)およびIB(B)のうち一方はスレーブインターフェース回路640と接続されているとき、もう一方はページバッファ612に
接続されている。
図7(a)はIB(A)がスレーブインターフェース回路640に、IB(B)がページバッファ112に接続されていることを示した図である。このときIB(A)は、スレーブインターフェース回路640からデータを受信することができる。一方IB(B)は、ページバッファ612へ書き込みデータの転送、および不揮発性メモリ614への書き込みを行う。
図7(b)はIB(A)がページバッファ612にIB(B)がスレーブインターフェース回路640に接続されていることを示した図である。、この場合、IB(A)は、ページバッファ612へ書き込みのデータの転送、および不揮発性メモリ614への書き込みを行う。一方、IB(B)は、スレーブインターフェース回路640からデータを受信する。
図8は、本実施の形態において、ホスト装置600から不揮発性記憶装置610にデータを書き込む際のパケットの流れをシーケンシャルに記載した図である。以下図6〜8を用いて、従来例の動作を説明する。なおインターフェースバッファ611の初期状態は図7(a)の通りとする。
ホスト装置600内のアプリケーション601が不揮発性記憶装置610にデータを書き込もうとするとき、アプリケーション601はホストインターフェース回路630にメモリWriteコマンドを発行するよう指示する。メモリWriteコマンドには、Write開始セクタアドレスが多重される。このとき、ホストインターフェース回路630内の制御パケット生成部631はメモリWriteコマンドパケットを生成し、第1伝送路621を介して不揮発性記憶装置610に送信する(図8 801)。
前記パケットを受信したスレーブインターフェース回路640は、制御パケット解析部641にてメモリWriteコマンドであると解析される。不揮発性記憶装置610がコマンド受理可能であれば、スレーブインターフェース回路640内の制御パケット生成部642はRESパケットを生成し、第2伝送路622を介してホスト装置600に送信する(図8 802)。
RESパケットを受信したホストインターフェース回路630は、制御パケット解析部632にてRESパケットであると解析され、不揮発性記憶装置610がメモリWriteコマンドを受理したことを検出する。続いてホストインターフェース回路630内の制御パケット生成部631はDBREQパケットを生成し、第1伝送路621を介して不揮発性記憶装置610に送信する(図8 803)。DBREQパケットは、データ送信側(ここではホスト装置600)がデータ受信側(ここでは不揮発性記憶装置610)に対して、データを送信したい旨通知するための制御パケットである。
DBREQパケットを受信したスレーブインターフェース回路640は、制御パケット解析部641にて受信したパケットがDBREQであると解析する。不揮発性記憶装置610がデータ受信可能であれば、スレーブインターフェース回路640内の制御パケット生成部642はDBRDYパケットを生成し、第2伝送路622を介してホスト装置600に送信する(図8 804)。DBRDYパケットは、データ受信側(ここでは不揮発性記憶装置610)がデータ送信側(ここではホスト装置600)に対して、データ受信可能である旨通知するための制御パケットである。
DBRDYパケットを受信したホストインターフェース回路630は、制御パケット解析部632にて受信したパケットがDBRDYであると解析すると、データ転送が開始さする。
メモリ602内に格納されているデータは、データバースト生成部633に供給される。データバースト生成部633では、メモリ602から供給されたデータをセクタ単位に分割し、必要に応じてパケットヘッダやCRC符号(いずれも図示せず)を付加してDATAパケットを構成し、不揮発性記憶装置610内のインターフェースバッファ611のIB(A)およびIB(B)の容量に等しいDATAパケットからなるデータバーストを生成し、第1伝送路621を介して不揮発性記憶装置610に送信する。図8のデータバースト805は、D(0)からD(3)までの4個のDATAパケットから構成されている。
データバースト805を受信したスレーブインターフェース回路640は、データバースト解析部643でデータバーストであると解析され、必要ならばパケットヘッダやCRC符号等を除去したデータをインターフェースバッファ611のIB(A)に供給する。4セクタ分のデータがIB(A)に供給されると、インターフェースバッファ611は接続形態を図7(b)のように切り換えて、前記データをページバッファ612に供給し、不揮発性メモリ読み書き制御部613を介して不揮発性メモリ614の所定の領域に書き込まれる。
ホスト装置610は、第1データバースト805を送信後、DBREQパケット806を不揮発性記憶装置610に送信する。不揮発性記憶装置610は次のデータバーストも受信可能であるので、DBRDYパケット807をホスト装置600へ送信し、結果としてD(4)からD(7)から構成される第2データバースト808が送信される。
第2データバースト808を受信したスレーブインターフェース回路640は、データをインターフェースバッファ611のIB(B)に供給する。IB(A)に格納されていた第1データバースト805により伝送されたデータの不揮発性メモリ614への書き込み中は、次のデータバーストを受信してもインターフェースバッファ611はそれを格納することができない。従ってスレーブインターフェース回路640は、IB(A)に格納されていた第1データバースト805により伝送されたデータの不揮発性メモリ614への書き込みが完了するまで、DBRDYパケット809を送信してはならない。インターフェースバッファ611が接続形態を図7(a)のように切り換えてIB(B)に格納されていたデータを不揮発性メモリ614に書き込みを開始したときに、DBRDYパケット809をホスト装置600に送信できる。すなわち前のデータバースト送信後、DBRDY送信までがBUSY期間となる。言い換えると、ホスト装置600は不揮発性記憶装置610からDBRDYを受信するまでがBUSY期間であると認識される。なお、DBREQパケットおよびDBRDYパケットによるハンドシェークは、データバーストのフロー制御を兼ねているため、データバースト送信中は、DBRDYを送信することができない。
ところで上記説明した方法では以下のような課題がある。制御の簡便化のために、インターフェースバッファ611およびページバッファ612間のデータ転送においてセクタデータの配列が入れ替わらないことが望ましい。これはすなわち、不揮発性メモリ614上でページ境界に一致するセクタアドレスに書き込まれるセクタは、IB(A)もしくはIB(B)のSector[0]に格納されなければならないことを意味する。またこれまで述べた従来例のように、ページサイズとIB(A)、IB(B)のサイズが等しいときは、IB(A)もしくはIB(B)のSector[0]は、常にページ境界先頭のセクタデータが格納される必要がある。
図9は、図8においてメモリWriteコマンド801に多重されたWrite開始セクタアドレスが0x00100021の場合に、各DATAパケットのWrite先アドレスを記載した図である。また図10は、Write開始セクタアドレスが0x00100021の場合のインターフェースバッファ611の動作について説明した図である。
スレーブインターフェース回路640は、第1データバーストを受信したとき、D(0)からD(3)はIB(A)に供給される。しかし図9により、D(0)のWrite先セクタアドレスはページ境界の先頭ではないので、IB(A)のSector[0]に格納されず、Sector[1]に格納される(本実施の形態では、各DATAパケットのセクタデータは、Write先セクタアドレスを4で除したときの余りの番号を有するSector領域に格納される)。同様にD(1)はSector[2]に、D(2)はSector[3]に格納される(図10(a))。
しかし、図7のようなインターフェースバッファの構成ではD(3)を格納する領域がない。なぜならば、IB(A)のSector[0]にD(3)を格納すると、図10(b)でIB(A)からページバッファ612に転送されるデータはD(3)−D(0)−D(1)−D(2)の順となって順序が不正となる。またIB(B)のSector[0]に格納するものとすると、図10(c)のようにページバッファ612に書き込み最中のバッファにアクセスすることになり、書き込みデータを破壊する恐れがある。
上記を回避するには、IB(A)、IB(B)と独立にTemp領域を設け、IB(A)もしくはIB(B)に格納できなかったセクタデータをTemp領域に一時的に格納し、インターフェースバッファ611の接続形態が変わったときに所定のSector領域に書き込む方法がある。しかしこの方法では、IB(A)もしくはIB(B)のセクタ数がNのとき、2×(N−1)セクタ分の追加バッファ領域が必要となり、かつインターフェースバッファ611の制御が複雑になる、という課題が残る。
上記を解決するための方法を示唆した内容が特許文献1に記載されている。特許文献1には、メモリアクセスする際に先頭から8byteアドレス境界までの部分と、8byteアドレス境界と整合する部分とに分割してメモリアクセスすることで、データ処理の高速化を実現するする技術が開示されている。しかしながら特許文献1においては、メモリアドレス境界が8byte固定であることと、および転送元および転送先アクセスをCPUが一元制御しており、ホスト装置およびスレーブ装置が個別に動作するシステムへの適用は困難である。
特開平4-289935号公報
以上の通り、ホスト装置から不揮発性記憶装置に複数のセクタを束ねたデータバーストの形態で書き込みデータを転送する際に、Write開始アドレスが不揮発性メモリの書き込み単位であるページ境界に一致しない場合に、インターフェースバッファのサイズが大きくなる、あるいは、バスの効率が下がるという課題がある。
そこで本発明は、上記問題点を鑑み、ホスト装置およびスレーブ装置である不揮発性記憶装置がバス接続されている不揮発性記憶システムにおいて、複数セクタを束ねて送信することにより転送効率を高めつつ不揮発性記憶装置のバッファサイズを抑止するためのインターフェース回路、ホスト装置、スレーブ装置、および前記ホスト装置、スレーブ装置からなる不揮発性記憶システムを提供することを目的とする。
前記目的を達成するために、ホスト装置とスレーブ装置とを接続して、命令の実行もしくはデータの送受信を行う通信路のインターフェース回路は、第一のデータ管理単位と、前記第一のデータ管理単位を1または複数個分束ねた第二のデータ管理単位があるとき、データ転送命令直後は、前記第一のデータ管理単位で指定される開始アドレスから、前記第二のデータ管理単位の境界に達するまでのデータでデータバーストを構成し、以降は前記第二のデータ管理単位のデータでデータバーストを構成する。
前記第一のデータ管理単位は、512byteであってもよい。
また、本出願の発明は、上記のインターフェース回路を備え、スレーブ装置と接続して命令やデータの送受信を行うホスト装置であってもよい。
また、同様に本出願の発明は、記載のインターフェース回路と、不揮発性メモリと、バッファと、前記バッファのバッファサイズを格納したレジスタと、を備え、前記インターフェース回路を介してホスト装置と接続して命令やデータの送受信を行うスレーブ装置として実現することも可能である。
また、上記のホスト装置と、スレーブ装置とを備え、前記ホスト装置が前記スレーブ装置のレジスタに格納されたバッファサイズを読み出し、前記第二のデータ管理単位を決定する不揮発性記憶システムであってもよい。
上記の不揮発性記憶システムでは、第二のデータ管理単位は、不揮発性メモリの書き込み単位であるページサイズ、もしくは前記ページサイズの約数であってもよい。
本発明によれば、ホスト装置から不揮発性記憶装置に複数のセクタを束ねたデータバーストの形態で書き込みデータを転送する際に、Write開始アドレスが不揮発性メモリの書き込み単位であるページ境界に一致しない場合でも、不揮発性記憶装置のバッファサイズ増加を抑止することができる。また本発明では、不揮発性記憶装置のバッファサイズが好適で無い場合であっても、データバーストに含めるセクタの数を最適化することで、バス効率をより高めることができる。
本実施の形態のホスト装置と不揮発性記憶装置の構成例を説明したブロック図 本実施の形態におけるスレーブバッファの構成例を説明した図 本実施の形態において、不揮発性記憶装置がホスト装置に装着されたときにNDBを決定するためにバス上を伝送されるパケットを時系列に示したタイミング図 本実施の形態において、不揮発性記憶装置にデータを書き込むためにバス上を伝送されるパケットを時系列に示したタイミング図 第1データバーストをSector[1]から格納した場合の図 IB(A)からページバッファに書き込むよう接続形態を変更した場合の図 データをすべてページ境界に合致させ、BUSY期間とインターフェースバッファの接続形態の切り換えとを同期させた場合の図 従来のホスト装置と不揮発性記憶装置の構成例を説明したブロック図 スレーブインターフェース回路に、IB(B)がページバッファに接続されていることを示した図 IB(A)がページバッファに、IB(B)がスレーブインターフェース回路640に、接続されていることを示した図 従来技術において、不揮発性記憶装置にデータを伝送するパケットを時系列に示したタイミング図 従来技術において、各DATAパケットのWrite先セクタアドレスを示した図 スレーブインターフェース回路が、第1データバーストを受信したとき、D(0)がSector[1]に格納された場合の図 D(3)がIB(A)に格納されず、IB(B)に格納された場合の図 D(7)がIB(A)のSector[0]に格納された場合の図
以下に、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の各実施の形態において、以前に説明した符号の説明は省略する。
図1は、本発明の実施の形態に於ける不揮発性記憶システムの構成を示したブロック図である。図1における不揮発性記憶システムは、ホスト装置100と不揮発性記憶装置110とから構成され、両者は第1伝送路121および第2伝送路121により接続されている。第1伝送路121および第2伝送路122の機能は、図6に記載のものと同一である。
ホスト装置100は、少なくともアプリケーション101、メモリ102、ホストインターフェース回路130を含む。またホストインターフェース回路130は少なくとも制御パケット生成部131、制御パケット解析部132、データバースト生成部133からなる。
不揮発性記憶装置110は、少なくともスレーブインターフェース回路140、インターフェースバッファ111、ページバッファ112、不揮発性メモリ読み書き制御部113、不揮発性メモリ114、およびスレーブレジスタ150からなる。またスレーブインターフェース回路140は、少なくとも制御パケット解析部141、制御パケット生成部142、データバースト解析部143からなる。
図2は、スレーブレジスタ150の構成例を説明した図である。スレーブレジスタ150は、原則Read OnlyのCapability領域と原則ReadおよびWriteが可能なSetting領域からなる。Capability領域は少なくともIBサイズフィールドを含む。IBサイズフィールドには、インターフェースバッファ111のIB(A)およびIB(B)の大きさがセクタ単位で格納されている。本実施の形態ではIBサイズに4が格納されているものとする。このとき、IB(A)、IB(B)それぞれの大きさは2KByte(512byte×4)である。またSetting領域は少なくともNDB(Number of packtes in Data Burst)フィールドを含む。
図3は、本実施の形態において、不揮発性記憶装置110がホスト装置100に装着されたときに実行する際のパケットの流れをシーケンシャルに記載した図である。図4は、本実施の形態において、ホスト装置100から不揮発性記憶装置110にデータを書き込む際のパケットの流れをシーケンシャルに記載した図である。図5は、図4においてメモリWriteコマンド401に多重されたWrite開始セクタアドレスが0x00100021の場合のインターフェースバッファ111の動作について説明した図である。以下図1〜5を用いて、本実施の形態の動作を説明する。
(NDBの決定)
不揮発性記憶装置110がホスト装置100に装着され、所定の初期化処理が完了したとき、ホストインターフェース回路130内の制御パケット生成部131は、少なくともスレーブレジスタ150に格納されているIBサイズを取得するために、レジスタReadコマンドパケットを生成し、第1伝送路121を介して不揮発性記憶装置110に送信する(図3 301)。
Readコマンドパケットを受信したスレーブインターフェース回路140は、制御パケット解析部141にてレジスタReadコマンドであると解析する。不揮発性記憶装置110がコマンド受理可能であれば、スレーブインターフェース回路140内の制御パケット生成部142は、少なくともスレーブバッファ150より取得したIBサイズの値を多重してRESパケットを生成し、第2伝送路122を介してホスト装置100に送信する(図3 302)。
RESパケットを受信したホストインターフェース回路130は、制御パケット解析部132にてRESパケットであると解析し、レジスタReadコマンド受理を検出すると同時に、RESパケットからIBサイズの値(本実施の形態では4)を取得する。
ホストインターフェース回路130は、データバースト生成部133が有するバッファサイズ(HBSZ)と、不揮発性記憶装置110から取得したIBサイズの値から、DATAパケット転送時のデータバースト内のDATAパケットの個数の最大値(NDB)を求め、制御パケット生成部131およびデータバースト生成部133にNDBの値を通知する。NDBは通常HBSZとIBサイズのうち小さいほうの値を選択する。本実施の形態では、HBSZは十分大きいと仮定してNDB=IBサイズ=4とする。
ホストインターフェース回路130内の制御パケット生成部131は、少なくともスレーブレジスタ150にNDBの値を設定するために、NDBの値を多重したレジスタWriteコマンドパケットを生成し、第1伝送路121を介して不揮発性記憶装置110に送信する(図3 303)。
レジスタWriteコマンドパケットを受信したスレーブインターフェース回路140は、制御パケット解析部141にてレジスタWriteコマンドであると解析する。不揮発性記憶装置110がコマンド受理可能であれば、制御パケット解析部141は、受理したレジスタWriteコマンドよりNDBの値を抽出し、スレーブレジスタ150の所定のフィールドに書き込む。上記操作が完了したとき、スレーブインターフェース回路140内の制御パケット生成部142は、コマンド受理を意味するRESパケットを生成し、第2伝送路122を介してホスト装置100に送信する(図3 304)。
これまでに述べた一連のシーケンスによりホスト装置100および不揮発性記憶装置110に、共通のNDBの値が格納されたことになり、以後ホスト装置100から不揮発性メモリ114へのデータ書き込みが可能となる。
なお図3において、IBサイズはRESパケット302に、NDBはレジスタWriteコマンドパケット303に多重しているが、メモリWriteコマンド等と同様に、コマンドに続くDATAパケットを用いてこれらの値を転送してもよい。その場合は、アクセス先アドレス値もしくは識別フラグ等により、不揮発性メモリ114のアドレス空間とスレーブレジスタ150のアドレス空間を識別する必要がある。
(不揮発性メモリへのデータ書き込み)
ホスト装置100内のアプリケーション101が不揮発性記憶装置110内の不揮発性メモリ114に、Write開始セクタアドレス0x00100021からデータを書き込もうとするとき、アプリケーション101はホストインターフェース回路130にメモリWriteコマンドを発行するよう指示する。このとき、ホストインターフェース回路130内の制御パケット生成部131は、前記Write開始セクタアドレスを多重したメモリWriteコマンドパケットを生成し、第1伝送路121を介して不揮発性記憶装置110に送信する(図4 401)。
メモリWriteコマンドパケットを受信したスレーブインターフェース回路140は、制御パケット解析部141にてメモリWriteコマンドであると解析する。不揮発性記憶装置110がコマンド受理可能であれば、スレーブインターフェース回路140内の制御パケット生成部142はRESパケットを生成し、第2伝送路122を介してホスト装置100に送信する(図4 402)。同時にメモリWriteコマンドに多重されたWrite開始アドレスを抽出し、インターフェースバッファ111に通知する。
ホストインターフェース回路130はRESパケットを受信した後、図6と同様にDBREQおよびDBRDYを相互に通信した後、データ転送に移る。
メモリ102内に格納されているデータは、データバースト生成部133に供給される。
データバースト生成部133におけるDATAパケット生成は、D(0)から、Write先セクタアドレスがNDBの倍数である直前のDATAパケットまでで第1データバースト(図4 403)を構成する点が図6と異なる。本実施の形態では、Write開始セクタアドレスが0x00100021であるので、Write先セクタアドレスがNDBの倍数である0x00100024に書き込まれるD(3)の直前のD(2)までで第1データバーストを構成する。上記の通り構成された第1データバースト403は、第1伝送路121を介して不揮発性記憶装置110に送信される。
一般に、第1データバースト403は、
NDB−「Write開始セクタアドレスをNDBで除算したときの余り」
のDATAパケットから構成すればよい。
データバースト403を受信したスレーブインターフェース回路140は、データバースト解析部143でデータバーストであると解析され、必要ならばパケットヘッダやCRC符号等を除去したデータをインターフェースバッファ111のIB(A)に供給する。このとき、インターフェースバッファ111は、通知されているWrite開始セクタアドレスをNDBで除したときの余りのSector番号に相当する領域から格納される。すなわち本実施の形態では、Write開始セクタアドレス(0x00100021)をNDB(4)で除した値は1であるので、第1データバーストをSector[1]から格納する(図5(a))。
第1データバースト書き込み完了後、インターフェースバッファ111はIB(A)からページバッファに書き込むよう接続形態を変更する。このとき、IB(A)に格納されているデータをそのまま転送するだけで書き込みデータをページ境界に合致させることができる(図5(b))。
第1データバースト403転送後、従来例と同様にホスト装置100はDBREQパケット404送信後、BUSY期間解除を示すDBRDYパケット405受信まで、次のデータバーストを送信することはできない。BUSY期間の定義は図8と同様である。第2データバースト406以降は、NDB個のDATAパケットによりデータバーストを構成する。こうすると、以降のデータバーストのデータは、すべてページ境界に合致させることができ、かつBUSY期間とインターフェースバッファ111の接続形態の切り換えとを常に同期させることができ、図10に示すようなTemp領域は不要となる(図5(b)、(c))。
以上説明したように、本発明の実施の形態では、複数個のセクタをデータバーストとして送信する場合、Write開始セクタアドレスによって、第1データバーストの構成を変更することで、不揮発性メモリへの書き込み時、アドレスバッファサイズの増加を伴わずに、データバースト転送による処理性能の向上と、従来のSDカードと同様にセクタ単位でのWrite開始アドレス指定可という利便性を両立させることができる。
また本実施の形態では、ホスト装置が不揮発性記憶装置を装着された後、ホスト装置が不揮発性記憶装置のインターフェースバッファのサイズである「IBサイズ」を読み、データバースト内のセクタ数であるNDBを書き込んで、両者がNDBの値を共有することで、不揮発性記憶装置のバッファサイズがいかなる場合であっても、ホスト装置は最適なデータバーストを構成することができる。
さらに不揮発性記憶装置がBUSY期間をホスト装置に通知可能とすることで、オーバーフローなどデータ通信が破綻しない範囲で、ホスト装置からのデータ送信と、不揮発性記憶装置でのデータ受信を独立に実施することができる。
なお、本実施の形態では、BUSY期間は、データバースト転送完了からDBRDY送信までと定義したが、例えばBUSY通知信号線を独自に設ける等の方法でも実現可能である。また本実施の形態ではデータの書き込みについて説明したが、不揮発性記憶装置からのデータ読み出しの場合にも適用可能である。
なお本実施の形態においては、IB(A)およびIB(B)はページサイズと同じと仮定したが、ページサイズの約数であっても構わない。またページバッファ112もページサイズと同様としたが、これはページサイズの倍数であっても構わない。
なお本実施の形態において、NDB=1と設定することも可能である。この場合はSDカードの場合と同様に、1セクタ単位でのデータ転送であり、BUSY通知も1セクタ転送完了の度に実施することができる。
本発明は、ホスト装置がスレーブ装置に複数セクタ分のデータを束ねてデータバーストとして書き込みデータを送信する不揮発性記憶システムにおいて、ホスト装置は不揮発性記憶装置が備えるインターフェースバッファのサイズを取得し、Write開始セクタアドレスに応じて最初に送信するデータバーストの構成を適宜変更することにより、高速性を維持しつつ、バッファサイズ増加を抑止することができるインターフェース回路、および不揮発性記憶システムを提案したものである。本発明は、インターフェース回路と不揮発性メモリを有した不揮発性記憶装置、およびこれを装着するホスト装置である動画記録再生装置、静止画記録再生装置、音声記録再生装置、あるいは携帯電話等において有益である。
100 ホスト装置
101 アプリケーション
102 メモリ
110 スレーブ装置
111 インターフェースバッファ
112 ページバッファ
113 不揮発性メモリ読み書き制御部
114 不揮発性メモリ
121 第1伝送路
122 第2伝送路
130 ホストインターフェース回路
131 制御パケット生成部
132 制御パケット解析部
133 データバースト生成部
140 スレーブインターフェース回路
141 制御パケット解析部
142 制御パケット生成部
143 データバースト解析部
150 スレーブレジスタ
301 レジスタReadコマンドパケット
302、304、402 RESパケット
303 レジスタWriteコマンド
401 メモリWriteコマンドパケット
403 第1データバースト
404 DBREQパケット
405 DBRDYパケット
406 第2データバースト

Claims (6)

  1. ホスト装置とスレーブ装置とを接続して、命令の実行もしくはデータの送受信を行う通信路のインターフェース回路であって、
    第一のデータ管理単位と、前記第一のデータ管理単位を1または複数個分束ねた第二のデータ管理単位があるとき、
    データ転送命令直後は、前記第一のデータ管理単位で指定される開始アドレスから、前記第二のデータ管理単位の境界に達するまでのデータでデータバーストを構成し、以降は前記第二のデータ管理単位のデータでデータバーストを構成することを特徴とするインターフェース回路。
  2. 前記第一のデータ管理単位は、512byteであることを特徴とする、
    請求項1に記載のインターフェース回路。
  3. 請求項1乃至請求項2のいずれかに記載のインターフェース回路を備え、
    前記インターフェース回路を介してスレーブ装置と接続して命令やデータの送受信を行うことを特徴とするホスト装置。
  4. 請求項1乃至請求項2のいずれかに記載のインターフェース回路と、
    不揮発性メモリと、
    バッファと、
    前記バッファのバッファサイズを格納したレジスタと、を備え、
    前記インターフェース回路を介してホスト装置と接続して命令やデータの送受信を行う、
    ことを特徴とするスレーブ装置。
  5. 請求項3に記載のホスト装置と、
    請求項4に記載のスレーブ装置と、を備える不揮発性記憶システムであって、
    前記ホスト装置が前記スレーブ装置のレジスタに格納されたバッファサイズを読み出し、前記第二のデータ管理単位を決定する、
    ことを特徴とする不揮発性記憶システム。
  6. 前記第二のデータ管理単位は、不揮発性メモリの書き込み単位であるページサイズ、もしくは前記ページサイズの約数である、
    ことを特徴とする請求項5に記載の不揮発性記憶システム。
JP2009261535A 2009-11-17 2009-11-17 インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム Pending JP2011107928A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009261535A JP2011107928A (ja) 2009-11-17 2009-11-17 インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009261535A JP2011107928A (ja) 2009-11-17 2009-11-17 インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム

Publications (1)

Publication Number Publication Date
JP2011107928A true JP2011107928A (ja) 2011-06-02

Family

ID=44231328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009261535A Pending JP2011107928A (ja) 2009-11-17 2009-11-17 インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム

Country Status (1)

Country Link
JP (1) JP2011107928A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977602B2 (en) 2013-06-24 2018-05-22 Fujitsu Limited Storage system, storage device, and control method of storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977602B2 (en) 2013-06-24 2018-05-22 Fujitsu Limited Storage system, storage device, and control method of storage system

Similar Documents

Publication Publication Date Title
US20200236191A1 (en) Memory system allowing host to easily transmit and receive data
EP2732374B1 (en) Mobile memory cache read optimization
US7660911B2 (en) Block-based data striping to flash memory
KR101412173B1 (ko) 다중―프로세서 시스템에서 1차 프로세서로부터 하나 이상의 2차 프로세서로의 실행 가능 소프트웨어 이미지의 직접적인 분산 로딩
US9563368B2 (en) Embedded multimedia card and method of operating the same
KR20110010707A (ko) 슬레이브 디바이스 사이에서 직접 데이터를 전송하는 방법
US8635386B2 (en) Communication control device, data communication method and program
JP2004005382A (ja) データ転送装置および方法
JP2007087388A (ja) メモリコントローラ及びそれを含んだデータ処理システム
JP2004086503A (ja) メモリカード認識システム、メモリカード・ホスト機器、メモリカード、記憶領域切り替え方法及び記憶領域切り替えプログラム
US7831755B2 (en) Method and system for interfacing a plurality of memory devices using an MMC/SD protocol
US7925819B2 (en) Non-volatile memory storage system and method for reading an expansion read only memory image thereof
EP1513071A2 (en) Memory bandwidth control device
JP2008117157A (ja) 半導体メモリカード、ホスト装置、及びデータ転送方法
JP2007310680A (ja) 不揮発性記憶装置およびそのデータ転送方法
US20090138673A1 (en) Internal memory mapped external memory interface
JP2011107928A (ja) インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム
WO2011007511A1 (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
KR100761374B1 (ko) 플래시 메모리 제어 방법 및 장치
JP2010049303A (ja) メモリコントローラ、不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
US20090043945A1 (en) Non-Volatile Memory System and Method for Reading Data Therefrom
KR100563418B1 (ko) 통신 컨트롤러 및 통신 방법
JP5984585B2 (ja) 通信装置及びその制御方法
KR101345437B1 (ko) 칩들간의 통신을 위한 인터페이스 장치 및 방법
KR102242957B1 (ko) 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스