JP2005258804A - メモリカード装置およびメモリカード制御方法 - Google Patents

メモリカード装置およびメモリカード制御方法 Download PDF

Info

Publication number
JP2005258804A
JP2005258804A JP2004069424A JP2004069424A JP2005258804A JP 2005258804 A JP2005258804 A JP 2005258804A JP 2004069424 A JP2004069424 A JP 2004069424A JP 2004069424 A JP2004069424 A JP 2004069424A JP 2005258804 A JP2005258804 A JP 2005258804A
Authority
JP
Japan
Prior art keywords
memory
bank
card
host device
address
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.)
Granted
Application number
JP2004069424A
Other languages
English (en)
Other versions
JP4515793B2 (ja
Inventor
Hiroshi Masuyama
大志 益山
Tetsuya Kaize
哲也 海瀬
Akio Yazawa
昭雄 矢沢
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
Toshiba Development and Engineering Corp
Original Assignee
Toshiba Corp
Toshiba Digital Media Engineering 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, Toshiba Digital Media Engineering Corp filed Critical Toshiba Corp
Priority to JP2004069424A priority Critical patent/JP4515793B2/ja
Priority to US10/930,872 priority patent/US7185146B2/en
Publication of JP2005258804A publication Critical patent/JP2005258804A/ja
Application granted granted Critical
Publication of JP4515793B2 publication Critical patent/JP4515793B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性を維持しつつ、メモリカードのメモリアドレス空間の拡張を図る。
【解決手段】SDメモリカード101は、バンク識別番号と、特定ビット幅のメモリアドレスを伴うメモリアクセスコマンドとをホスト装置10から受信するI/Oインタフェース111と、32ビット幅のメモリアドレスによってアクセス可能な最大メモリサイズよりも大きいメモリサイズの記憶領域を含むフラッシュメモリ116と、フラッシュメモリ116の記憶領域を複数のバンクに分割して管理し、バンク識別番号で指定される複数のバンクの一つを、32ビット幅のメモリアドレスを伴うメモリアクセスコマンドに従ってアクセスするカードコントローラ114とを備えている。
【選択図】 図1

Description

本発明はホスト装置に取り外し自在に接続可能なメモリカード装置およびその制御方法に関する。
近年、音楽、映像のようなコンテンツデータのデジタル化に伴いデジタル機器の開発が盛んに行われている。これらのデジタル機器の多くは、コンテンツデータを記録するためにコンパクトディスクドライブ、ハードディスクドライブのような記憶装置を備えている。
最近では、デジタル機器は小型化が進み、例えば、音楽再生機のようなデジタル機器では、そのサイズが数センチメートル四方である製品も登場している。このような小型デジタル機器においては、記録媒体の小型化も必要となる。小型記録媒体としては、不揮発性半導体メモリを内蔵したメモリカードが注目されている。
このようなメモリカードの一種として、著作権保護機能を有するメモリカードが知られている(例えば、特許文献1参照。)。このメモリカードは、著作権保護機能の一つとして、不正機器を排除するためのリボケーション機能を有している。
SD(Secure Digital)メモリカードは著作権保護機能を有するメモリカードであり、NAND型フラッシュEEPROMを搭載している。このNAND型フラッシュEEPROMは不揮発性半導体メモリの一種であり、電気的に書き換えが可能である。NAND型フラッシュEEPROMはフラッシュメモリに分類されている。フラッシュメモリにおいては、1回の消去動作で消去可能な最低エリアが消去ブロックとして規定されており、データの消去は常に消去ブロックを単位として行われる。従って、フラッシュメモリは、データの更新が頻繁に発生するランダムアクセス用途よりは、大容量のファイルの記録に適している。
特開2000−357126号公報
しかし、SDメモリカードにおいては、ホスト装置からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレスを用いて、バイト単位でアクセス位置を指定するというアドレッシング方法(以下、バイト単位アドレッシング方法と称する)が利用されている。このため、SDメモリカードのメモリサイズの上限は232バイト、つまり4GBに制限される。
もし、バイト単位アドレッシング方法の代わりに、複数バイトをまとめたブロック単位でアクセス位置を指定するというアドレッシング方法(以下、ブロック単位アドレッシング方法と称する)を利用したならば、たとえ32ビット幅のメモリアドレスであっても、4GB以上のメモリアドレス空間をアクセスすることが可能となる。
しかし、単純にブロック単位アドレッシング方法を使用すると、ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性が維持できなくなるという問題が発生する。すなわち、ブロック単位アドレッシング方法を用いてデータの書き込みを行うと、ファイルの断片化により、一つのファイルを構成するデータ群が4GBを越えるメモリアドレス空間内に分散して書き込まれる場合がある。これは、例えば、全メモリサイズが8GBのメモリカードを例にとると、あるファイルAを構成する一部のデータは8GBのメモリ空間内の下位4GB内の位置に存在するにもかかわらず、そのファイルAの残りの部分のデータは上位4GB内の位置に存在するという状況である。このように、一つのファイルを構成するデータ群が4GBを越えるメモリアドレス空間内に分散されてしまうと、ブロック単位アドレッシング方法に対応しておらず、バイト単位アドレッシング方法のみに対応した既存のホスト装置は、もはやそのファイルを正しくリードすることができない。バイト単位アドレッシング方法によってアクセス可能な最大メモリ空間は4GBだからである。よって、メモリカードのメモリ空間を拡張するための新たな仕組みの実現が必要である。
本発明は上述の事情を考慮してなされたものであり、ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性を維持しつつ、アクセス可能なメモリアドレス空間を拡張することが可能なメモリカード装置およびその制御方法を提供することを目的とする。
上述の課題を解決するため、本発明は、ホスト装置に取り外し自在に接続可能なメモリカード装置において、前記ホスト装置との通信を実行して、前記ホスト装置から送信される、少なくとも、特定ビット幅のメモリアドレスを伴うメモリアクセスコマンドを含むコマンド群を受信するホストインタフェースユニットと、前記特定ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズよりも大きな記憶領域を有する不揮発性半導体メモリと、前記不揮発性半導体メモリの記憶領域を複数のバンクに分割し前記複数のバンクそれぞれに対応する複数のバンク識別番号を管理するバンク識別番号管理手段と、前記ホスト装置から送信されるバンク指定コマンドに含まれるバンク識別番号に応じて、前記複数のバンクの一つをアクセス対象バンクとして指定するバンク指定手段と、前記指定された前記複数のバンクの一つを、前記ホスト装置から送信される、前記特定ビット幅のメモリアドレスを伴う前記メモリアクセスコマンドに応じてアクセスするメモリ制御手段とを具備することを特徴とする。
本発明によれば、ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性を維持しつつ、アクセス可能なメモリアドレス空間を拡張することが可能となる。
以下、図面を参照して、本発明の実施形態を説明する。
(実施形態1)
図1は本発明の第一実施形態に係るメモリカードの構成を示すブロック図である。このメモリカード101は、ホスト装置10に取り外し自在に接続可能なメモリカードであり、例えば、SD(Secure Digital)メモリカードとして実現されている。SDメモリカード101は、パーソナルコンピュータ、PDA(Personal Digital Assistants)、カメラ、携帯電話のようなホスト装置10に設けられたメモリカード装着スロット(SDカードスロット)に着脱自在に装着して使用されるリムーバブル記憶装置である。ホスト装置10とSDメモリカード101との間の通信は、全てホスト装置10からのコマンドによって制御される。
ホスト装置10とSDメモリカード101との間を接続するバス(SDバス)20は、6本の通信線(データDAT0−3,コマンドCMD,クロックCLK)と、3本の電源供給線(VDD,GND,GND)を含む。これに対応して、SDメモリカード101には、図示のように、4本のデータピン[DAT0−3]109,110,102,103、コマンドピン[CMD]104、クロック信号ピン[CLK]107、電源ピン[VDD]106、2つのグランドピン[GND]105,108が設けられている。6本の通信線(データDAT0−3,コマンドCMD,クロックCLK)の機能は次の通りである。
・DAT0−3: 各データ線はホスト装置10とSDメモリカード101との間のデータ転送に使用される双方向信号線である。ホスト装置10およびSDメモリカード101はそれぞれプッシュプルモードで動作する。
・CMD: コマンド信号線は双方向信号線である。ホスト装置10からSDメモリカード101へのコマンドの転送、およびSDメモリカード101からホスト装置10へのレスポンスの転送に使用される。リードコマンドおよびライトコマンドのようなメモリアクセスコマンドの各々は、そのコマンド引数として32ビット幅のメモリアドレスを含む。
・CLK: クロック信号線はホスト装置10からSDメモリカード101へクロック信号CLKを送信するための信号線である。ホスト装置10からSDメモリカード101へのコマンドの転送、およびホスト装置10とSDメモリカード101との間のデータ転送などは、ホスト装置10からSDメモリカード101へ供給されるクロック信号CLKに同期して実行される。
SDメモリカード101には、カードコントローラ114およびフラッシュメモリ116が設けられている。フラッシュメモリ116は電気的に消去および書き込み可能な不揮発性半導体メモリであり、例えば、1以上のNAND型フラッシュEEPROMチップから構成されている。本実施形態においては、フラッシュメモリ116は、32ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズ(4GB)よりも大きいメモリサイズの記憶領域を含む。
フラッシュメモリ116の記憶領域は、多数の消去ブロックから構成されている。各消去ブロックのサイズは、例えば、8KB、16KB、あるいは32KBである。各消去ブロックは、複数のページから構成されている。1ページは、通常、528(512+16)バイトで構成されている。512バイトはデータ記憶用領域として用いられ、16バイトはエラー訂正コード等を格納するための冗長領域として用いられる。消去ブロックのサイズが8KBであれば、1消去ブロックは16ページから構成される。消去ブロックのサイズが16KBであれば、1消去ブロックは32ページから構成される。また消去ブロックのサイズが32KBであれば、1消去ブロックは64ページで構成される。例えば、64MBのフラッシュEEPROMの場合は、528バイト×32ページ×4096消去ブロックで構成されている。
SDメモリカード101においては、フラッシュメモリ116をユーザデータ領域と保護領域に分けて管理しており通常のコマンドではこのユーザーデータ領域しか読み書きできない。保護領域にアクセスするためには、所定の認証処理が必要となる。この方法は、CPRM(Content Protection for Recordable Media: http://www.4centity.com/tech/cprm/)の仕組みが利用される。この仕組みにより不正機器のアクセスを抑制する機能などが実現される。
カードコントローラ114は、ホスト装置10からのコマンドに応じてフラッシュメモリ116をアクセスするコントローラである。このカードコントローラ114は、I/Oインタフェースユニット(I/O I/F)111、ROM112、SRAM113、メモリインタフェース(メモリ I/F)115、レジスタ117、バンクID生成部118、バンク指定部119、およびMPU120を備えている。
I/Oインタフェースユニット(I/O I/F)111はホスト装置10との通信を実行するためのホストインタフェースユニットである。ROM112は、MPU120によって実行されるプログラム(ファームウェア)を格納している。メモリインタフェース115は、MPU120の制御の下に、ホスト装置10からのメモリアクセスコマンドに従ってフラッシュメモリ116をアクセスするメモリ制御ユニットである。レジスタ117は、SDメモリカード101に関する各種情報を保持するために利用される。バンクID生成部118は、フラッシュメモリ116の記憶領域を複数のバンク(複数の記憶領域)に分割し、それら複数のバンクそれぞれに対応する複数のバンク識別番号を管理するバンク識別番号管理ユニットである。このバンクID生成部118は、複数のバンクそれぞれに割り当てるべき複数のバンク識別番号(バンクID)を生成する。バンク指定部119は、ホスト装置10から送信された送信バンク識別番号に応じて、複数のバンクの中の一つをアクセス対象バンクとして指定するバンク指定ユニットである。MPU120は、SDメモリカード101の動作を制御するプロセッサであり、ROM112からSRAM113にロードされるファームウェアを実行する。MPU120は、バンクID生成部118およびバンク指定部119を用いることにより、フラッシュメモリ116の記憶領域を複数のバンクに分割して管理し、そしてホスト装置10からのバンク識別番号で指定されるバンクを、ホスト装置10からのメモリアクセスコマンド(ライトコマンド、リードコマンド等)に従ってアクセスする。各バンクに対するアドレッシング(アドレス指定)は、ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性を維持するために、バイト単位アドレッシング方法を用いて実行される。
次に、図2を参照して、フラッシュメモリ116の構成例を説明する。
図2に示されているように、フラッシュメモリ116の記憶領域は、保護領域201と、ユーザーデータ領域202とに分けられている。ユーザーデータ領域202のメモリサイズは、メモリアクセスコマンドにコマンド引数として付随する32ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズよりも大きなメモリサイズ、例えば16GBである。ユーザーデータ領域202は、バンクID生成部118によって、バンク0−バンク3の4つのバンクに分割して管理されている。即ち、ユーザーデータ領域202の16GBのメモリアドレス空間(16進表示で000000000〜3FFFFFFFFの空間)には、その下位アドレス側から順にバンク0,1,2,3が割り当てられている。これらバンク0−バンク3の各々のメモリサイズは、32ビット幅メモリアドレスによってアドレス指定可能な最大メモリサイズ4GB以下のサイズである。本実施形態では、各バンクのメモリサイズを4GBとしている。
図3には、バンクID生成部118によって管理されているバンクIDテーブルの例が示されている。このバンクIDテーブルは、バンク0−バンク3の各々に対応するバンクIDと、各バンクに対応する絶対アドレスの上位2ビットとの関係を規定するテーブルである。絶対アドレスはユーザーデータ領域202が有する16GBのメモリアドレス空間(16進表示で000000000〜3FFFFFFFFの空間)をアドレス指定可能な34ビット幅のメモリアドレスである。バンク指定部119は、バンクID生成部118によって管理されている、図3のバンクIDテーブルを参照して、ホスト装置20から指定されたバンクIDに対応する絶対アドレスの上位2ビットを得る。この上位2ビットと、ホスト装置20からのメモリアドレスコマンドのコマンド引数として与えられる32ビット幅のメモリアドレスとによって、34ビット幅の絶対メモリアドレスを生成することが出来る。
図4には、各バンクに対応する絶対アドレスの上位2ビットと、コマンド引数(32ビット幅のメモリアドレス)と、34ビット幅の絶対アドレスとの関係が示されている。
上述したように、32ビット幅のメモリアドレスは、ホスト装置10からのメモリアクセスコマンドと一緒にそのコマンドの引数として与えられる。32ビット幅のメモリアドレスの最大値は16進表示でFFFFFFFFである。
もしホスト装置20から指定されたバンクIDが0であれば、バンク指定部119は、バンク0を選択するために、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレスに対して、上位2ビット“00”を付加することにより、バンク0をアクセスするための34ビット幅の絶対メモリアドレスを生成する。もしホスト装置20から指定されたバンクIDが1であれば、バンク指定部119は、バンク1を選択するために、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレスに対して、上位2ビット“01”を付加することにより、バンク1をアクセスするための34ビット幅の絶対メモリアドレスを生成する。もしホスト装置20から指定されたバンクIDが2であれば、バンク指定部119は、バンク2を選択するために、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレスに対して、上位2ビット“10”を付加することにより、バンク2をアクセスするための34ビット幅の絶対メモリアドレスを生成する。またもしホスト装置20から指定されたバンクIDが3であれば、バンク指定部119は、バンク3を選択するために、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレスに対して、上位2ビット“11”を付加することにより、バンク3をアクセスするための34ビット幅の絶対メモリアドレスを生成する。
次に、図5を参照して、SDメモリカード101の動作を説明する。ここでは、ホスト装置10からのライトデータをバンクに書き込む場合を想定する。
ステップ501において、ホスト装置10はコマンド(CMD)線を介して初期化コマンドをSDメモリカード101に送信する。SDメモリカード101のカードコントローラ114は、ステップ502において所定の初期化処理を行い、そしてステップ503において、初期化処理の終了を示すレスポンスをコマンド(CMD)線を介してホスト装置10に送信する。ステップ504において、ホスト装置10はレスポンスを受信し初期化処理の終了を確認する。
ホスト装置10は、ステップ505において、アクセスすべきバンクを指定するバンク識別番号(バンクID)を含むバンク指定コマンドをコマンド(CMD)線を介してSDメモリカード101に送信する。SDメモリカード101のカードコントローラ114は、ステップ506において、バンク指定処理として、前述のバンクIDテーブルを用いて、ホスト装置10からのバンク指定コマンドに含まれるバンクIDの値を、絶対アドレスの上位2ビットに変換する処理を実行し、その上位2ビットの値を保持しておく。ステップ507において、SDメモリカード101のカードコントローラ114は、バンク指定処理の終了を示すレスポンスをコマンド(CMD)線を介してホスト装置10に送信する。ステップ508において、ホスト装置10はレスポンスを受信し、バンク指定処理の終了を確認する。
ステップ509において、ホスト装置10は、ライトコマンドをコマンド(CMD)線を介してSDメモリカード101に送信する。このライトコマンドには、そのコマンド引数として32ビット幅のメモリアドレス値が付加されている。SDメモリカード101のカードコントローラ114は、ライトコマンドを受け付けると、ステップ510において、ライトコマンドに付随するコマンド引数から32ビット幅のメモリアドレス値を得、この32ビット幅のメモリアドレス値に対して、保持しておいた上位2ビットの値を拡張することにより、34ビット幅の絶対アドレスを生成する。続くステップ511において、SDメモリカード101のカードコントローラ114は、ライトコマンドに後続してホスト装置10からデータ(DAT0−3)線を介して送信されるライトデータを、34ビット幅の絶対アドレスで指定されるフラッシュメモリ116内の記憶位置に書き込む書き込み処理を実行する。書き込み処理においては、メモリI/F115を介して絶対アドレス、ライトデータ、その制御信号がフラッシュメモリ116に供給される。書き込み対象バンクは上位2ビットの値によって決定され、またその書き込み対象バンク内のどの記憶位置にデータを書き込むかは、ライトコマンドに付随する32ビット幅のメモリアドレス値によって決定される。なお、バンク指定機能を持たない既存のホスト装置からのライトコマンドを受信した場合、つまりバンク指定コマンドを受けずにライトコマンドを受信した場合には、SDメモリカード101のカードコントローラ114は、常にバンク0をアクセス対象バンクとして選択する。
続くステップ512では、SDメモリカード101のカードコントローラ114は、書き込み処理の完了を示すレスポンスをコマンド(CMD)線を介してホスト装置10に送信する。ステップ513において、ホスト装置10はレスポンスを受信し、書き込みの完了を確認する。
尚、同一バンクに対するライトアクセスを複数回実行する場合には、ホスト装置10は、最初のライトコマンドを送信する前にバンク指定コマンドを一回送信しておくだけでよく、以降は、バンク指定コマンドを送信せずに、ライトコマンドだけを送信すればよい。
また、バンクIDの値としては、各バンクを一意に識別することが出来る任意の値を用いることが出来る。さらに、バンクIDを含むバンク指定コマンドは必ずしもバンク指定専用のコマンドである必要は無い。バンクIDの値をコマンド引数として含むことが可能なコマンドであれば、様々な既存のコマンドをバンク指定コマンドとして利用することが出来る。
このように、本実施形態においては、ホスト装置10からのバンクIDによってまずアクセス対象バンクが指定され、そしてその指定されたアクセス対象バンクに対するライトアクセスがホスト装置10からのライトコマンドに従って実行される。よって、ホスト装置10は、アクセス対象バンクを変えるだけで、32ビット幅のメモリアドレス(バイト単位アドレス)でアクセス可能なメモリアドレス空間よりも大きなメモリアドレス空間をアクセスすることが可能となる。よって、ブロック単位アドレッシング方法に対応していない既存のホスト装置との互換性を維持しつつ、アクセス可能なメモリアドレス空間を拡張することが可能となる。さらに、ファイルの書き込み時には、あるバンクが指定された状態で、ファイルを構成するデータ群を書き込むための何回かのライトアクセスが指定されたバンクに対して実行される。このため、たとえファイルの断片化が発生しても、同一のファイルを構成するデータ群が異なるバンクに跨って記憶されてしまうという事態の発生を防止することができる。したがって、バンク指定機能を持たない既存のホスト装置であっても、バンク0内に存在するファイルについては、そのファイルを構成する全てのデータ群を正しくリードすることができる。
尚、データの読み出しも図5と同様の手順で実行される。また、バンク0−3を4つのフラッシュEEPROMチップから構成しても良い。この場合、例えば、絶対メモリアドレスの上位2ビットの値に応じて、4つのフラッシュEEPROMチップの一つに例えばチップイネーブル信号を供給することにより、4つのフラッシュEEPROMチップの一つがアクセス対象バンクとして指定される。そして、指定されたフラッシュEEPROMチップに対するアクセスが、32ビット幅のメモリアドレスを含むメモリアクセスコマンドに従って実行される。
次に、バンク指定コマンドとして、カード選択コマンド(CMD7)を利用する場合について説明する。
カード選択コマンド(CMD7)は、SDメモリカード101の動作モードを、ホスト装置との間でデータ転送を実行可能なデータ転送モードに遷移させるためのコマンドである。カード選択コマンド(CMD7)は、RCA(Relative Card Address)と称される、SDメモリカード101を識別するためのカードアドレスを含む。SDメモリカード101は、自身のRCAを含むカード選択コマンドを受信したとき、そのSDメモリカード101の動作モードをデータ転送モードに遷移させる。データ転送モードに遷移すると、SDメモリカード101は、ホスト装置10からのメモリアクセスコマンド(リードコマンド、ライトコマンド等)を正常に受け付けることができる。よって、通常、SDメモリカード101に対するリードアクセスおよびライトアクセスを実行する場合には、メモリアクセスコマンドを発行する前に、SDメモリカード101にカード選択コマンドを発行することによって、SDメモリカード101をデータ転送モードに設定することが必要となる。
したがって、もしRCAとバンクIDとを含むカード選択コマンド(CMD7)をSDメモリカード101に送信すれば、データ転送モードへの遷移の指示とアクセス対象バンクの指定とを一つのコマンドで行うことが出来る。
図6には、カード選択コマンド(CMD7)を用いてアクセス対象バンクを指定する処理の手順が示されている。
ステップ601において、ホスト装置10はRCA生成コマンド(CMD3)をコマンド(CMD)線を介してSDメモリカード101に送信する。RCA生成コマンド(CMD3)は、SDメモリカード101に対してRCAの生成(RCAの発行とも云う)を要求するコマンドである。ステップ602においてSDメモリカード101のカードコントローラ114は自身でRCAを生成し、ステップ603においてレスポンスとしてそのRCAをコマンド(CMD)線を介してホスト装置10に返信する。ステップ604において、ホスト装置10はSDメモリカード101からのレスポンスを受信し、RCAを得る。次に、ステップ605において、ホスト装置10は、SDメモリカード101に対してカード選択コマンド(CMD7)を送信する。このカード選択コマンド(CMD7)は、SDメモリカード101のRCAと、アクセス対象バンクを指定するためのバンクIDとを含む。なお、カード選択コマンド(CMD7)は必ずしもRCAとバンクIDとを個別に含む必要はなく、カード選択コマンド(CMD7)に含まれるRCAの値をバンクIDとして兼用することも出来る。
ステップ606において、SDメモリカード101のカードコントローラ114はSDメモリカード101の動作モードをデータ転送モードに変更すると共に、バンク指定処理として、カード選択コマンド(CMD7)に含まれるバンクIDの値を、絶対アドレスの上位2ビットに変換する処理を実行してその上位2ビットの値を保持しておく。ステップ607において、SDメモリカード101のカードコントローラ114はデータ転送モードに変更したことを示すレスポンスをホスト装置10に返信する。ホスト装置10はステップ608においてレスポンスを受信し、SDメモリカード101がデータ転送モードに変更されたことを確認する。
尚、ステップ604において、ホスト装置10は、SDメモリカード101から得られたRCAの値を変更したいときは、再度ステップ601からステップ604までを繰り返すことにより、SDメモリカード101から新たなRCAの値を受信することができる。
また、カード選択コマンド(CMD7)にRCAとバンクIDとを含ませるのではなく、カード選択コマンド(CMD7)に含まれるRCAの値をバンクIDとして利用する場合には、バンクID生成部118は、ホスト装置10に対して発行したRCAの値から、バンク0−3それぞれに対応するバンクIDを生成する。
図7は、RCAから生成された値をバンクIDとして使用した場合におけるバンクIDテーブルの例が示されている。図7においては、バンク0に対応するバンクIDとしてRCAの値そのものを使用している。また、バンク1に対応するバンクIDはRCA+1、バンク2に対応するバンクIDはRCA+2、バンク3に対応するバンクIDはRCA+3である。
図7では、SDメモリカード101がホスト装置10に送信したRCAの値が0x1100の場合を示しており、バンク0、バンク1、バンク2、バンク3のバンクIDはそれぞれ、0x1100、0x1101、0x1102、0x1103となる。図7のバンクIDテーブルにおいては、RCA、RCA+1、RCA+2、RCA+3それぞれに対して、絶対アドレスの上位2ビットの値が対応付けられている。
このように、RCAの値からバンク0、バンク1、バンク2、バンク3それぞれのバンクIDを生成し、それらバンクIDと絶対アドレスの上位2ビットの値とをバンクIDテーブルを用いて対応付けて保持することにより、ホスト装置10は、コマンド引数として以下のような値を含むカード選択コマンドを発行するだけで、所望のバンクを指定することが出来る。
バンク0を指定するときは、ホスト装置10は、SDメモリカード101から得たRCAをコマンド引数として含むカード選択コマンドを発行する。バンク指定機能を持たない既存のホスト装置10は、常に、SDメモリカード101から得たRCAをコマンド引数として含むカード選択コマンドを発行する。このため、SDメモリカード101が、バンク指定機能を持たない既存のホスト装置10に装着された場合には、アクセス対象バンクとしてバンク0を自動的に選択することができる。
バンク1を指定するときは、ホスト装置10は、RCA+1、つまりSDメモリカード101から得たRCAの値に+1を加えた値を、コマンド引数として含むカード選択コマンドを発行する。バンク2を指定するときは、ホスト装置10は、RCA+2、つまりSDメモリカード101から得たRCAの値に+2を加えた値を、コマンド引数として含むカード選択コマンドを発行する。バンク3を指定するときは、ホスト装置10は、RCA+3、つまりSDメモリカード101から得たRCAの値に+3を加えた値を、コマンド引数として含むカード選択コマンドを発行する。
尚、以上の説明では、バンク0、1、2、3に対応するバンクIDの値をRCAに対してそれぞれ0、1、2、3を加算することによって生成したが、例えば、RCAに対してそれぞれ、0、1、2、3以外の4つの値を加算すること、RCAに対して0、1、2、3をそれぞれ減算すること、または、RCAに対してそのRCAの値をビット反転するなどの他の演算を施すこと、によって生成しても良い。
カード選択コマンドのコマンド引数は32ビット幅のサイズを有するが、その上位16ビット部はRCAを示すために使用され、下位16ビット部は予約ビットとなっている。このため、カード選択コマンドのコマンド引数にセットすべきRCAの値を、RCA、RCA+1、RCA+2、RCA+3のように変化させる代わりに、上位16ビット部には常にRCAをセットし、予約ビットにセットする値を、0、1、2、3、あるいはRCA、RCA+1、RCA+2、RCA+3のように変化させてもよい。この場合、バンク指定部119は、カード選択コマンドのコマンド引数に含まれる予約ビットからバンクIDを取得し、そして、バンクIDテーブルを参照して、取得したバンクIDを絶対アドレスの上位ビットに変換すればよい。また、カード選択コマンドのみならず、RCAをコマンド引数として含むコマンドであれば、そのコマンドをバンク指定コマンドとして利用することが出来る。
このように、カード選択コマンドを用いてバンクを指定する方法を用いることにより、バンク指定専用のコマンドを用いることなく、アクセス対象のバンクを指定することが出来る。特に、バンク0に割り当てられるバンクIDの値をRCAと等しくすることにより、バンク0については任意の既存のホスト装置が正常にアクセスすることが出来る。
尚、上述の例においては、バンクIDを生成する手順をホスト装置10とSDメモリカード101との間であらかじめ決めておく方式を前提に説明したが、各バンクに対応するバンクIDをSDメモリカード101からホスト装置10に通知するようにすることもできる。例えば、SDメモリカード101がバンク0−3それぞれに対応するRCAをホスト装置10に送信し、それらRCAをバンク0−3それぞれに対応するバンクIDとして使用することもできる。SDメモリカード101は、例えば、RCA生成コマンド(CMD3)が所定回数発行された場合に次のバンク用のRCAを発行すればよい。その所定回数を例えば3回としたならば、SDメモリカード101は、1回目から3回目までのRCA生成コマンドに対してはバンク0用のRCAを生成し、4回目から6回目までのRCA生成コマンドに対してはバンク1用のRCAを生成し、7回目から9回目までのRCA生成コマンドに対してはバンク2用のRCAを生成し、10回目から12回目までのRCA生成コマンドに対してはバンク3用のRCAを生成する。
また、受信したRCA生成コマンドに含まれるコマンド引数の値が0でなかった場合、あるいは受信したRCA生成コマンドに含まれるコマンド引数が生成済みのRCAを示す場合に、SDメモリカード101が、次のバンク用のRCAを発行するようにしてもよい。この場合、ホスト装置10は、まずコマンド引数として0を含むRCA生成コマンドをSDメモリカード101に送信し、これによりバンク0用のRCAを得る。次に、ホスト装置10は、バンク0用のRCAをコマンド引数として含むRCA生成コマンドをSDメモリカード101に送信し、これによりバンク1用のRCAを得る。次に、ホスト装置10は、バンク1用のRCAをコマンド引数として含むRCA生成コマンドをSDメモリカード101に送信し、これによりバンク2用のRCAを得る。最後に、ホスト装置10は、バンク2用のRCAをコマンド引数として含むRCA生成コマンドをSDメモリカード101に送信し、これによりバンク3用のRCAを得る。
以上説明した第1実施形態においては、フラッシュメモリ116のユーザーデータ領域を4つのバンクに分割した場合を説明したが、バンクの数は4つに限定されず、さらに多くのバンクに分割しても良い。
(実施形態2)
次に、本発明の第2実施形態に係るSDメモリカード101について説明する。
第1実施形態においては、16GBの記憶領域を各々が4GBのメモリサイズを持つ4つのバンクに分割した例を説明したが、本第2実施形態においては、16GBの記憶領域を、下位4GBのバンク0と上位12GBのバンク1との2つのバンクに分割する。バンク0に対するアドレッシングはバイト単位アドレッシング方法を用いて実行され、またバンク1に対するアドレッシングはブロック単位アドレッシング方法を用いて実行される。ホスト装置10は、第1実施形態と同様の方法でバンク指定を行った後、下位4GBに対しては前述したバイト単位アドレッシング方法を用いてアドレス指定し、上位12GBに対しては前述したブロック単位アドレッシング方法を用いてアドレス指定する。
図8は、第2実施形態に係るSDメモリカード101の構成を示すブロック図である。このSDメモリカード101のカードコントローラ114には、図1の構成に加え、バイトアドレス変換部801が設けられている。また、ROM112に格納されたファームウェアは、バイト単位アドレッシング方法とブロック単位アドレッシング方法とを選択的に使用できるように構成されている。その他の部分は、図1と同じである。
バンクID生成部118は、フラッシュメモリ116の記憶領域を2つのバンクに分割して管理するためのバンク識別番号(バンクID)を生成する。バンク指定部119は、ホスト装置10からのバンク識別番号(バンクID)に応じて、アクセスすべきバンクを指定する。バイトアドレス変換部801は、ブロック単位アドレッシング方法が使用される時に、ホスト装置10から送信されるメモリアクセスコマンドに付随するブロック単位のメモリアドレスを、バイト単位のアドレスに変換する。例えば、1ブロックを512バイトとした場合、バイトアドレス変換部801は、ブロック単位のメモリアドレスの値を512倍することにより、ブロック単位のメモリアドレスの値をフラッシュメモリ116の記憶領域を実際にアクセスするためのバイト単位のメモリアドレス値に変換する。
ブロック単位のメモリアドレスによって指定可能な記憶位置は、ブロック毎、つまり512バイト毎にとびとびとなる。例えば、ブロック単位のメモリアドレスによって
0x00000000
0x00000001
0x00000002
と指定した場合、バイト単位アドレスに変換すると、
0x00000000
0x00000200
0x00000400
となる。
ROM112にはブロック単位アドレッシング方法を解釈するように変更したファームウェアを格納している。MPU120はこのファームウェアを実行するので、ブロック単位アドレッシングを解釈することができる。
次に、図9を参照して、フラッシュメモリ116の構成例を説明する。
図9に示されているように、フラッシュメモリ116の記憶領域は、保護領域201と、ユーザーデータ領域202とに分けられている。ユーザーデータ領域202のメモリサイズは例えば16GBである。ユーザーデータ領域202はバンク0とバンク1の2つのバンクに分割して管理されている。即ち、ユーザーデータ領域202の16GBのメモリアドレス空間(16進表示で000000000〜3FFFFFFFFの空間)には、その下位アドレス側から順にバンク0,1が割り当てられている。バンク0のメモリサイズは4GBであり、バンク1のメモリサイズは12GBである。
図10には、バンクID生成部118によって管理されているバンクIDテーブルの例が示されている。このバンクIDテーブルは、バンク0,バンク1の各々に対応するバンクIDを規定するテーブルである。ここでは、バンク0に対応するバンクIDを0、バンク1に対応するバンクIDを1としているが、第1実施形態と同様に、バンクIDとしてRCAを用いてもよい。
図11には、各バンクに対応するコマンド引数(32ビット幅のメモリアドレス)と、34ビット幅の絶対アドレスとの関係が示されている。
上述したように、32ビット幅のメモリアドレスは、ホスト装置10からのメモリアクセスコマンドと一緒にそのコマンドの引数として与えられる。バンク0に対応する32ビット幅のメモリアドレスはバイト単位のアドレスであり、またバンク1に対応する32ビット幅のメモリアドレスはブロック単位のアドレスである。
もしホスト装置10から指定されたバンクIDが0であれば、バンク指定部119は、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレス(バイト単位アドレス)に対して、上位2ビット“00”を付加することにより、バンク0をアクセスするための34ビット幅の絶対メモリアドレス(バイト単位アドレス)を生成する。もしホスト装置20から指定されたバンクIDが1であれば、バンク指定部119は、ホスト装置10からのメモリアクセスコマンドに付随する32ビット幅のメモリアドレス(ブロック単位アドレス)を512倍することにより、バンク1をアクセスするための34ビット幅の絶対メモリアドレス(バイト単位アドレス)を生成する。
次に、図12を参照して、SDメモリカード101の動作を説明する。ここでは、ホスト装置10からのライトデータをバンクに書き込む場合を想定する。図12は、図5と比してステップ901からステップ906を追加した点が異なる。その他の部分については、図5と同一である。
ステップ501において、ホスト装置10は初期化コマンドをSDメモリカード101に送信する。SDメモリカード101のカードコントローラ114は、ステップ502において所定の初期化処理を行い、そしてステップ503において、初期化処理の終了を示すレスポンスをホスト装置10に送信する。ステップ504において、ホスト装置10はレスポンスを受信し初期化処理の終了を確認する。
ホスト装置10は、ステップ505において、アクセスすべきバンクを指定するバンク識別番号(バンクID)を含むバンク指定コマンドをSDメモリカード101に送信する。バンク指定コマンドの代わりに、バンクIDを含むカード選択コマンドを用いても良い。ステップ506において、SDメモリカード101のカードコントローラ114は、バンク指定処理を実行する。このバンク指定処理においては、SDメモリカード101のカードコントローラ114は、もしバンク指定コマンドでバンク0が指定されたならば、絶対アドレスの上位2ビットの値として“00”を保持し、もしバンク指定コマンドでバンク1が指定されたならば、上位2ビットの値は何等保持しない。ステップ507において、SDメモリカード101のカードコントローラ114は、バンク指定処理の終了を示すレスポンスをホスト装置10に送信する。ステップ508において、ホスト装置10はレスポンスを受信し、バンク指定処理の終了を確認する。
バンク1をアクセスする場合、ホスト装置10は、ステップ901において、SDメモリカード101のアドレスモードをブロック単位アドレスモードに切り替えることを示すアドレスモード変更コマンドをSDメモリカード101に送信する。ブロック単位アドレスモードは、ブロック単位のアドレスを受け付けることが可能なアドレスモードである。一方、バンク0をアクセスする場合、ホスト装置10は、ステップ901において、SDメモリカード101のアドレスモードをバイト単位アドレスモードに切り替えることを示すアドレスモード変更コマンドをSDメモリカード101に送信する。バイト単位アドレスモードは、バイト単位のアドレスを受け付けるためのアドレスモードである。
SDメモリカード101のカードコントローラ114は、ステップ902において、アドレスモード変更コマンドに応じて、自身のアドレスモードをバイト単位アドレスモードからブロック単位アドレスモードに変更、またはブロック単位アドレスモードからバイト単位アドレスモードに変更する。ステップ903において、SDメモリカード101のカードコントローラ114は、アドレスモード変更の完了を示すレスポンスをホスト装置10に送信する。ホスト装置10はステップ904においてレスポンスを受信し、SDメモリカード101がアドレスモードを変更したことを確認する。なお、SDメモリカード101のデフォルトのアドレスモードはバイト単位アドレスモードであり、ホスト装置からアドレスモード変更コマンドを受信するまでは、SDメモリカード101のバイト単位アドレスモードで動作する。
ステップ509において、ホスト装置10は、ライトコマンドをSDメモリカード101に送信する。このライトコマンドには、そのコマンド引数として32ビット幅のメモリアドレスが付加されている。この32ビット幅のメモリアドレスは、アクセス対象バンクがバンク0であるならばバイト単位アドレスであり、アクセス対象バンクがバンク1であるならばブロック単位アドレスである。ステップ905において、SDメモリカード101のカードコントローラ114は、現在のアドレスモードがブロック単位アドレスモードおよびバイト単位アドレスモードのいずれであるかを判別する。
現在のアドレスモードがブロック単位アドレスモードであれば、SDメモリカード101のカードコントローラ114は、ステップ906に進む。ステップ906において、SDメモリカード101のカードコントローラ114は、ライトコマンドに付随するコマンド引数から32ビット幅のメモリアドレス値を得、このメモリアドレスの値をブロック単位アドレスからバイト単位アドレス(34ビット幅の絶対アドレス)に変換する。続くステップ511において、SDメモリカード101のカードコントローラ114は、ライトコマンドに後続してホスト装置10から送信されるライトデータを、バイト単位アドレスで指定されるフラッシュメモリ116内の記憶位置に書き込む書き込み処理を実行する。書き込み処理においては、メモリI/F115を介して絶対アドレス、ライトデータ、その制御信号がフラッシュメモリ116に供給される。
一方、現在のアドレスモードがバイト単位アドレスモードであれば、SDメモリカード101のカードコントローラ114は、ステップ510に進む。ステップ510において、SDメモリカード101のカードコントローラ114は、ライトコマンドに付随するコマンド引数から32ビット幅のメモリアドレス値を得、この32ビット幅のメモリアドレス値に対して、保持しておいた上位2ビットの値を拡張することにより、34ビット幅の絶対アドレスを生成する。続くステップ511において、SDメモリカード101のカードコントローラ114は、ライトコマンドに後続してホスト装置10から送信されるライトデータを、絶対アドレスで指定されるフラッシュメモリ116内の記憶位置に書き込む書き込み処理を実行する。
続くステップ512では、SDメモリカード101のカードコントローラ114は、書き込み処理の完了を示すレスポンスをホスト装置10に送信する。ステップ513において、ホスト装置10はレスポンスを受信し、書き込みの完了を確認する。
なお、バンク指定機能およびブロック単位アドレスモードをサポートしない既存のホスト装置からのライトコマンドを受信した場合には、SDメモリカード101のカードコントローラ114は、常にバンク0をバイト単位アドレスモードでアクセスすればよい。これにより、既存のホスト装置も、バンク0に対しては正しくアクセスすることができる。
(実施形態3)
次に、本発明の第3実施形態に係るSDメモリカード101について説明する。
第3実施形態に係るSDメモリカード101は、第1実施形態の構成に加え、各バンクに対するアクセスを所定の条件を満たしたときのみ許可するアクセス制御機能を有している。
図13は、第3実施形態に係るSDメモリカード101の構成を示すブロック図である。このSDメモリカード101のカードコントローラ114には、図1の構成に加え、バンクアクセス制御部901が設けられている。他の点は図1と同じである。バンクアクセス制御部901はアクセス制御機能を実現するために設けられたものであり、各バンク毎にホスト装置10によるアクセスを許可するか否かを判別する。
図14は、アクセスを許可する条件を規定したアクセス制御テーブルを示している。このアクセス制御テーブルは、アクセスを許可するバンク番号と、バンク指定コマンドの受信回数とを対応付けている。バンクアクセス制御部901は、ホスト装置10からのバンク指定コマンドの受信回数を計数し、その計数されたバンク指定コマンドの受信回数をインデックスとしてアクセス制御テーブルを参照することにより、ホスト装置10にアクセスを許可すべきバンクを決定する。例えば、図14のアクセス制御テーブルにおいては、バンク0へのアクセスはバンク指定コマンドの受信回数が3回以上の場合に許可される。同様に、バンク1へのアクセスはバンク指定コマンドの受信回数が5回以上の場合に許可され、バンク2へのアクセスはバンク指定コマンドの受信回数が7回以上の場合に許可され、バンク3へのアクセスはバンク指定コマンドの受信回数が9回以上の場合に許可される。
次に、図15を参照して、SDメモリカード101の動作を説明する。ここでは、ホスト装置10からのライトデータをバンクに書き込む場合を想定する。本例では、図5のステップ505からステップ508をステップ1101からステップ1105に変更している。
ステップ501において、ホスト装置10は初期化コマンドをSDメモリカード101に送信する。SDメモリカード101のカードコントローラ114は、ステップ502において所定の初期化処理を行い、そしてステップ503において、初期化処理の終了を示すレスポンスをホスト装置10に送信する。ステップ504において、ホスト装置10はレスポンスを受信し初期化処理の終了を確認する。
ホスト装置10は、ステップ1101において、アクセスすべきバンクを指定するバンク識別番号(バンクID)を含むバンク指定コマンドをSDメモリカード101に送信する。バンク指定コマンドの代わりに、バンクIDを含むカード選択コマンドを用いても良い。SDメモリカード101のカードコントローラ114は、ステップ1102において、バンク指定コマンドを受信すると、バンク指定コマンドの受信回数を示す値を+1増加する。初期化処理後に初めてバンク指定コマンドを受信した時、バンク指定コマンドの受信回数は1となる。ステップ1102においては、SDメモリカード101のカードコントローラ114は、前述の方法でアクセス可能なバンク番号を判定する。続くステップ1103において、SDメモリカード101のカードコントローラ114は、もしバンク指定コマンドで指定されたアクセス対象バンクがアクセス可能なバンクであるならば、バンク指定処理として、ホスト装置10からのバンク指定コマンドに含まれるバンクIDの値を、絶対アドレスの上位2ビットに変換する処理を実行し、その上位2ビットの値を保持しておく。もしバンク指定コマンドで指定されたアクセス対象バンクがアクセス可能なバンクでなければ、バンク指定処理は実行されない。ステップ1104においては、SDメモリカード101のカードコントローラ114は、バンク指定の終了を示すレスポンスをホスト装置10に送信する。このレスポンスにはバンク指定処理の成功の有無を示す情報を含めることができる。ステップ1105において、ホスト装置10はレスポンスを受信しバンク指定処理が成功したかどうかを確認する。ホスト装置10は所望するバンクにアクセスするために必要に応じてステップ1101を再度実行する。これに伴い、再度ステップ1102、ステップ1103、ステップ1104が同様の手順で実行される。
ここで、バンクアクセス制御の例として、バンク指定コマンドを3回受信した場合の状態について説明する。バンク指定コマンドを3回受信した状態では、図14のアクセス制御テーブルを参照してバンク0がアクセス可能であると判断する。バンク指定コマンドにより指定されたバンクが0であるならば、バンク指定処理として、バンク0に対応するバンクIDを、そのバンク0に対応する絶対アドレスの上位2ビットに変換する処理が行われる。これにより、バンク0にアクセスすることが可能となる。しかし、バンク指定コマンドにより指定されたバンクが1の場合は、バンク指定処理は実行されない。これにより、バンク1へのアクセスは禁止される。バンク1へのアクセスを禁止する方法としては、バンク指定処理は行わない方法の他、例えば、実在しないバンクのメモリアドレスの上位ビットに変換する方法、またはある特定のバンク、例えばバンク0、に対応する絶対アドレスの上位2ビットに変換して、ある特定のバンクを常にアクセス対象バンクとする方法等が挙げられる。
ステップ1104において、ホスト装置10はレスポンスを受信して指定したバンクがアクセス可能であることを認識すると、ステップ509以降の処理を行ってデータの書き込みを行う。ステップ509において、ホスト装置10は、ライトコマンドをSDメモリカード101に送信する。このライトコマンドには、そのコマンド引数として32ビット幅のメモリアドレス値が付加されている。SDメモリカード101のカードコントローラ114は、ライトコマンドを受け付けると、ステップ510において、ライトコマンドに付随するコマンド引数から32ビット幅のメモリアドレス値を得、この32ビット幅のメモリアドレス値に対して、保持しておいた上位2ビットの値を拡張することにより、34ビット幅の絶対アドレスを生成する。続くステップ511において、SDメモリカード101のカードコントローラ114は、ライトコマンドに後続してホスト装置10から送信されるライトデータを、34ビット幅の絶対アドレスで指定されるフラッシュメモリ116内の記憶位置に書き込む書き込み処理を実行する。書き込み処理においては、メモリI/F115を介して絶対アドレス、ライトデータ、その制御信号がフラッシュメモリ116に供給される。続くステップ512では、SDメモリカード101のカードコントローラ114は、書き込み処理の完了を示すレスポンスをホスト装置10に送信する。ステップ513において、ホスト装置10はレスポンスを受信し、書き込みの完了を確認する。
尚、上述のバンクアクセス制御では、アクセスを許可するバンクを示したテーブルを参照し、バンク指定コマンド受信回数に達したら対応するバンクをアクセス可能としたが、これに限るものではなく、様々な方法を用いて各バンクのアクセスを制限することが出来る。
また、上述の各実施形態においては、SDメモリカードのユーザーデータ領域を複数バンクに分割して扱う例を示したが、ユーザーデータ領域に限るものではなく、保護領域を複数バンクに分割してもよい。ただし、その場合は保護領域にアクセスするために前述のCPRMの仕組みを利用する必要がある。また、上述の各実施形態はSDメモリカードを例示して説明したが、各実施形態のバンク制御の構成はホスト装置に取り外し自在に接続可能な様々なメモリカードに適用することができる。メモリカードはリムーバブル記憶装置の総称であり、その物理的形状を制限するものではない。
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の第1実施形態に係るメモリカードの構成を示すブロック図。 図1のメモリカードに設けられた不揮発性半導体メモリのバンク構成を示す図。 図1のメモリカードにおいて使用されるバンクIDテーブルの例を示す図。 図1のメモリカード内の各バンクに対応する絶対アドレスの上位2ビットと、コマンド引数と、34ビット幅の絶対アドレスとの関係を示す図。 図1のメモリカードの動作を示すフローチャート。 図1のメモリカードにおいてカード選択コマンドを用いてバンクを指定する動作を説明するためのフローチャート。 図1のメモリカードにおいて使用されるバンクIDテーブルの他の例を示す図。 本発明の第2実施形態に係るメモリカードの構成を示すブロック図。 図8のメモリカードに設けられた不揮発性半導体メモリのバンク構成を示す図。 図8のメモリカードにおいて使用されるバンクIDテーブルの例を示す図。 図8のメモリカード内の各バンクに対応するコマンド引数と、34ビット幅の絶対アドレスとの関係を示す図。 図8のメモリカードの動作を示すフローチャート。 本発明の第3実施形態に係るメモリカードの構成を示すブロック図。 図13のメモリカードにおいて用いられるアクセス制御テーブルの例を示す図。 図13のメモリカードの動作を示すフローチャート。
符号の説明
10…ホスト装置、101…SDメモリカード、111…I/Oインタフェース、120…MPU、115…メモリインタフェース、116…フラッシュメモリ、118…バンクID生成部、119…バンク指定部、801…バイトアドレス変換部、901…バンクアクセス制御部。

Claims (5)

  1. ホスト装置に取り外し自在に接続可能なメモリカード装置において、
    前記ホスト装置との通信を実行して、前記ホスト装置から送信される、少なくとも、特定ビット幅のメモリアドレスを伴うメモリアクセスコマンドを含むコマンド群を受信するホストインタフェースユニットと、
    前記特定ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズよりも大きな記憶領域を有する不揮発性半導体メモリと、
    前記不揮発性半導体メモリの記憶領域を複数のバンクに分割し前記複数のバンクそれぞれに対応する複数のバンク識別番号を管理するバンク識別番号管理手段と、
    前記ホスト装置から送信されるバンク指定コマンドに含まれるバンク識別番号に応じて、前記複数のバンクの一つをアクセス対象バンクとして指定するバンク指定手段と、
    前記指定された前記複数のバンクの一つを、前記ホスト装置から送信される、前記特定ビット幅のメモリアドレスを伴う前記メモリアクセスコマンドに応じてアクセスするメモリ制御手段とを具備することを特徴とするメモリカード装置。
  2. 前記ホスト装置から送信されるカードアドレス生成コマンドに応じて、前記メモリカード装置を識別するためのカードアドレスを生成して前記ホスト装置に送信するカードアドレス生成手段をさらに具備し、
    前記バンク識別番号管理手段は、前記複数のバンクの中の特定の一つのバンクに対して前記生成されたカードアドレスの値に等しいバンク識別番号が割り当てられるように、前記カードアドレス生成手段によって生成されたカードアドレスから、前記複数のバンクそれぞれに対応するバンク識別番号を生成するように構成されており、
    前記バンク指定コマンドは、前記ホスト装置から送信される、前記カードアドレスで指定されるメモリカード装置の動作モードを前記ホスト装置との間でデータ転送を実行可能なデータ転送モードに遷移させるカード選択コマンドであることを特徴とする請求項1記載のメモリカード装置。
  3. 前記バンク識別番号管理手段は、前記メモリカード装置を識別するためのカードアドレスから、前記複数のバンクそれぞれに対応するバンク識別番号を生成するように構成されており、
    前記バンク指定コマンドは、前記ホスト装置から送信される、前記カードアドレスから生成されるバンク識別番号を含み前記メモリカード装置の動作モードを前記ホスト装置との間でデータ転送を実行可能なデータ転送モードに遷移させるカード選択コマンドであり、
    前記バンク指定手段は、前記カード選択コマンドに含まれるバンク識別番号に応じて前記複数のバンクの一つをアクセス対象バンクとして指定するように構成されていることを特徴とする請求項1記載のメモリカード装置。
  4. ホスト装置に取り外し自在に接続可能なメモリカード装置において、
    前記ホスト装置との通信を実行して、前記ホスト装置から送信される、少なくとも、前記メモリカード装置を識別するためのカードアドレスの生成を要求するカードアドレス生成コマンドと、前記メモリカード装置を識別するためのカードアドレスから生成された値をバンク識別番号として含み前記メモリカード装置の動作モードを前記ホスト装置との間でデータ転送を実行可能な転送モードに遷移させるカード選択コマンドと、特定ビット幅のメモリアドレスを伴うメモリアクセスコマンドとを含むコマンド群を受信するホストインタフェースユニットと、
    前記特定ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズよりも大きな記憶領域を有する不揮発性半導体メモリと、
    前記カードアドレス生成コマンドに応答して、前記カードアドレスを生成して前記ホスト装置に送信するカードアドレス生成手段と、
    前記不揮発性半導体メモリの記憶領域を複数のバンクに分割し、前記カードアドレス生成手段によって生成されたカードアドレスから生成された値を、前記複数のバンクにそれぞれ対応する前記バンク識別番号として管理するバンク識別番号管理手段と、
    前記カード選択コマンドに含まれるバンク識別番号に応じて、前記複数のバンクの一つをアクセス対象バンクとして指定するバンク指定手段と、
    前記指定された前記複数のバンクの一つを、前記ホスト装置から送信される、前記特定ビット幅のメモリアドレスを伴う前記メモリアクセスコマンドに応じてアクセスするメモリ制御手段とを具備することを特徴とするメモリカード装置。
  5. ホスト装置に取り外し自在に接続可能なメモリカード装置の動作を制御するメモリカード制御方法であって、
    前記ホスト装置との通信を実行して、前記ホスト装置から送信される、少なくとも、特定ビット幅のメモリアドレスを伴うメモリアクセスコマンドを含むコマンド群を受信するステップと、
    前記特定ビット幅のメモリアドレスによってアドレス指定可能な最大メモリサイズよりも大きな記憶領域を有する不揮発性半導体メモリの前記記憶領域を複数のバンクに分割し、前記メモリカード装置を識別するためのカードアドレスから、前記複数のバンクそれぞれに割り当てられる複数のバンク識別番号を生成するステップと、
    前記ホスト装置から送信される、前記カードアドレスから生成された値をバンク識別番号として含み前記メモリカード装置の動作モードを前記ホスト装置との間でデータ転送を実行可能な転送モードに遷移させるカード選択コマンドに応じて、前記複数のバンクの一つをアクセス対象バンクとして指定するバンク指定ステップと、
    前記指定された前記複数のバンクの一つを、前記ホスト装置から送信される、前記特定ビット幅のメモリアドレスを伴う前記メモリアクセスコマンドに応じてアクセスするステップとを具備することを特徴とするメモリカード制御方法。
JP2004069424A 2004-03-11 2004-03-11 メモリカード装置およびメモリカード制御方法 Expired - Fee Related JP4515793B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004069424A JP4515793B2 (ja) 2004-03-11 2004-03-11 メモリカード装置およびメモリカード制御方法
US10/930,872 US7185146B2 (en) 2004-03-11 2004-09-01 Memory card device, and memory card control method for controlling the device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004069424A JP4515793B2 (ja) 2004-03-11 2004-03-11 メモリカード装置およびメモリカード制御方法

Publications (2)

Publication Number Publication Date
JP2005258804A true JP2005258804A (ja) 2005-09-22
JP4515793B2 JP4515793B2 (ja) 2010-08-04

Family

ID=34918492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004069424A Expired - Fee Related JP4515793B2 (ja) 2004-03-11 2004-03-11 メモリカード装置およびメモリカード制御方法

Country Status (2)

Country Link
US (1) US7185146B2 (ja)
JP (1) JP4515793B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257345A (ja) * 2006-03-23 2007-10-04 Nec Corp 電子タグ
JP2010049530A (ja) * 2008-08-22 2010-03-04 Buffalo Inc メモリカード、並びにメモリカード制御装置およびメモリカード制御方法
US7873753B2 (en) 2007-02-22 2011-01-18 Samsung Electronics Co., Ltd. Memory subsystem capable of accessing a plurality of memory bank identifications and method thereof
KR20170008141A (ko) * 2015-07-13 2017-01-23 삼성전자주식회사 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
JP2021501941A (ja) * 2017-11-07 2021-01-21 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリブロックリクレーム方法およびメモリブロックリクレーム装置
JP2021508878A (ja) * 2017-12-28 2021-03-11 シリコン モーション インコーポレイティッドSilicon Motion Inc. フラッシュメモリコントローラ、sdカードデバイス、フラッシュメモリコントローラで使用される方法、およびsdカードデバイスに結合されたホストデバイス
US11422717B2 (en) 2017-12-28 2022-08-23 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI117489B (fi) * 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
JP2005275907A (ja) * 2004-03-25 2005-10-06 Toshiba Corp 電子機器および同機器の記憶媒体ユニット制御方法
JP4817836B2 (ja) 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
US7581678B2 (en) 2005-02-22 2009-09-01 Tyfone, Inc. Electronic transaction card
JP4473900B2 (ja) 2007-08-22 2010-06-02 株式会社東芝 半導体メモリ装置
US9741027B2 (en) 2007-12-14 2017-08-22 Tyfone, Inc. Memory card based contactless devices
CN101282347B (zh) * 2008-05-15 2011-04-06 普天信息技术研究院有限公司 一种智能存储卡的控制方法
US7961101B2 (en) * 2008-08-08 2011-06-14 Tyfone, Inc. Small RFID card with integrated inductive element
US8451122B2 (en) 2008-08-08 2013-05-28 Tyfone, Inc. Smartcard performance enhancement circuits and systems
US20100033310A1 (en) * 2008-08-08 2010-02-11 Narendra Siva G Power negotation for small rfid card
US8473964B2 (en) * 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems
WO2010099093A1 (en) 2009-02-24 2010-09-02 Tyfone, Inc. Contactless device with miniaturized antenna
US20110173458A1 (en) * 2010-01-13 2011-07-14 Bonica Richard T Secure portable data storage device
JP5549432B2 (ja) * 2010-07-02 2014-07-16 富士通株式会社 ストレージ装置及びアクセス制御プログラム
CN102169459B (zh) * 2010-11-29 2013-04-24 北京握奇数据系统有限公司 一种访问数据的方法、装置和智能卡
TW201310329A (zh) * 2011-08-18 2013-03-01 Chen jian long 外部記憶裝置及該外部記憶裝置的控制方法
US8656063B1 (en) * 2012-11-09 2014-02-18 Ralink Technology Corp. Method of detecting addressing mode and electronic system thereof
US10235103B2 (en) * 2014-04-24 2019-03-19 Xitore, Inc. Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory
US20220404975A1 (en) * 2014-04-24 2022-12-22 Executive Advisory Firm Llc Apparatus, system, and method of byte addressable and block addressable storage and retrieval of data to and from non-volatile storage memory

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051897A (ja) * 1999-08-11 2001-02-23 Toshiba Corp 半導体記憶装置
JP2004038643A (ja) * 2002-07-04 2004-02-05 Matsushita Electric Ind Co Ltd 複合入出力装置
JP2004086503A (ja) * 2002-08-26 2004-03-18 Toshiba Corp メモリカード認識システム、メモリカード・ホスト機器、メモリカード、記憶領域切り替え方法及び記憶領域切り替えプログラム
JP2004514962A (ja) * 2000-08-17 2004-05-20 サンディスク コーポレイション ホストと順次通信する複数の取り外し可能な不揮発性メモリ・カード
WO2005045680A1 (ja) * 2003-11-07 2005-05-19 Matsushita Electric Industrial Co., Ltd. 情報記録媒体及びその制御方法
JP2006524405A (ja) * 2003-04-23 2006-10-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ユニバーサル記憶装置のためのパーティション選択
JP2007518188A (ja) * 2004-01-09 2007-07-05 サンディスク コーポレイション ファイルシステム相互運用性をサポートするメモリカード

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473877A (en) * 1981-04-16 1984-09-25 Tulk Ronald K Parasitic memory expansion for computers
US5630098A (en) * 1991-08-30 1997-05-13 Ncr Corporation System and method for interleaving memory addresses between memory banks based on the capacity of the memory banks
JPH06274412A (ja) 1993-03-19 1994-09-30 Fujitsu Ltd メモリ制御装置
JP4621314B2 (ja) 1999-06-16 2011-01-26 株式会社東芝 記憶媒体
US6430648B1 (en) * 2000-01-05 2002-08-06 International Business Machines Corporation Arranging address space to access multiple memory banks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001051897A (ja) * 1999-08-11 2001-02-23 Toshiba Corp 半導体記憶装置
JP2004514962A (ja) * 2000-08-17 2004-05-20 サンディスク コーポレイション ホストと順次通信する複数の取り外し可能な不揮発性メモリ・カード
JP2004038643A (ja) * 2002-07-04 2004-02-05 Matsushita Electric Ind Co Ltd 複合入出力装置
JP2004086503A (ja) * 2002-08-26 2004-03-18 Toshiba Corp メモリカード認識システム、メモリカード・ホスト機器、メモリカード、記憶領域切り替え方法及び記憶領域切り替えプログラム
JP2006524405A (ja) * 2003-04-23 2006-10-26 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ユニバーサル記憶装置のためのパーティション選択
WO2005045680A1 (ja) * 2003-11-07 2005-05-19 Matsushita Electric Industrial Co., Ltd. 情報記録媒体及びその制御方法
JP2007518188A (ja) * 2004-01-09 2007-07-05 サンディスク コーポレイション ファイルシステム相互運用性をサポートするメモリカード

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257345A (ja) * 2006-03-23 2007-10-04 Nec Corp 電子タグ
US7873753B2 (en) 2007-02-22 2011-01-18 Samsung Electronics Co., Ltd. Memory subsystem capable of accessing a plurality of memory bank identifications and method thereof
JP2010049530A (ja) * 2008-08-22 2010-03-04 Buffalo Inc メモリカード、並びにメモリカード制御装置およびメモリカード制御方法
KR102363526B1 (ko) * 2015-07-13 2022-02-16 삼성전자주식회사 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
KR20170008141A (ko) * 2015-07-13 2017-01-23 삼성전자주식회사 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
JP2017021789A (ja) * 2015-07-13 2017-01-26 三星電子株式会社Samsung Electronics Co.,Ltd. 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法
JP2021501941A (ja) * 2017-11-07 2021-01-21 ホアウェイ・テクノロジーズ・カンパニー・リミテッド メモリブロックリクレーム方法およびメモリブロックリクレーム装置
US11886333B2 (en) 2017-11-07 2024-01-30 Huawei Technologies Co., Ltd. Memory block reclamation method and apparatus
JP2021508878A (ja) * 2017-12-28 2021-03-11 シリコン モーション インコーポレイティッドSilicon Motion Inc. フラッシュメモリコントローラ、sdカードデバイス、フラッシュメモリコントローラで使用される方法、およびsdカードデバイスに結合されたホストデバイス
US11422717B2 (en) 2017-12-28 2022-08-23 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host
US11829289B2 (en) 2017-12-28 2023-11-28 Silicon Motion Inc. Flash memory controller, SD card device, method used in flash memory controller, and host device coupled to SD card device
US11249893B2 (en) 2017-12-28 2022-02-15 Silicon Motion Inc. Flash memory controller, SD card device, method used in flash memory controller, and host device coupled to SD card device
US12061801B2 (en) 2017-12-28 2024-08-13 Silicon Motion Inc. Memory addressing methods and associated controller, memory device and host

Also Published As

Publication number Publication date
US20050204092A1 (en) 2005-09-15
US7185146B2 (en) 2007-02-27
JP4515793B2 (ja) 2010-08-04

Similar Documents

Publication Publication Date Title
JP4515793B2 (ja) メモリカード装置およびメモリカード制御方法
EP1189139B1 (en) Recording system, data recording device, memory device, and data recording method
US8291155B2 (en) Data access method, memory controller and memory storage system
US8127072B2 (en) Data storage device and method for accessing flash memory
US6965963B1 (en) Continuous arrangement of data clusters across multiple storages
KR20080091203A (ko) 복수의 플래시 메모리 유닛을 포함하는 휴대용 데이터 저장장치
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP2005267628A (ja) Nandフラッシュメモリを使用するメモリカード及びそれの動作方法
JP2006092019A (ja) コントローラ、メモリカード及びその制御方法
TW201027555A (en) Semiconductor storage device and storage controlling method
KR20020094921A (ko) 메모리 장치
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
TW200540690A (en) Memory card that supports file system interoperability
JP2010146326A (ja) 記憶装置、その制御方法及びその記憶装置を用いた電子装置
JPWO2005083573A1 (ja) 半導体メモリ装置
JP2009245278A (ja) 半導体記憶装置
JP2004295865A (ja) 自動ブーティングシステム及び自動ブーティング方法
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2006195565A (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20130262737A1 (en) Storage control apparatus , storage apparatus, information processing system and processing method
KR20080033649A (ko) 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법
JP2009116465A (ja) 記憶装置及びメモリ制御方法
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
JP2007233838A (ja) メモリシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100308

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: 20100413

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100513

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees