JPWO2005081180A1 - 記憶装置及びデータ処理装置 - Google Patents

記憶装置及びデータ処理装置 Download PDF

Info

Publication number
JPWO2005081180A1
JPWO2005081180A1 JP2006510172A JP2006510172A JPWO2005081180A1 JP WO2005081180 A1 JPWO2005081180 A1 JP WO2005081180A1 JP 2006510172 A JP2006510172 A JP 2006510172A JP 2006510172 A JP2006510172 A JP 2006510172A JP WO2005081180 A1 JPWO2005081180 A1 JP WO2005081180A1
Authority
JP
Japan
Prior art keywords
command
card
information
chip
storage device
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.)
Withdrawn
Application number
JP2006510172A
Other languages
English (en)
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of JPWO2005081180A1 publication Critical patent/JPWO2005081180A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B42BOOKBINDING; ALBUMS; FILES; SPECIAL PRINTED MATTER
    • B42DBOOKS; BOOK COVERS; LOOSE LEAVES; PRINTED MATTER CHARACTERISED BY IDENTIFICATION OR SECURITY FEATURES; PRINTED MATTER OF SPECIAL FORMAT OR STYLE NOT OTHERWISE PROVIDED FOR; DEVICES FOR USE THEREWITH AND NOT OTHERWISE PROVIDED FOR; MOVABLE-STRIP WRITING OR READING APPARATUS
    • B42D25/00Information-bearing cards or sheet-like structures characterised by identification or security features; Manufacture thereof
    • B42D25/30Identification or security features, e.g. for preventing forgery
    • B42D25/305Associated digital information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/30Reduction of number of input/output pins by using a serial interface to transmit or receive addresses or data, i.e. serial access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Credit Cards Or The Like (AREA)
  • Read Only Memory (AREA)

Abstract

カードコントローラ(4)、書き換え可能な不揮発性メモリ(5)及びICカードチップ(6)を備え、カードコントローラは、ICカードチップへのリセット指示に応答してICカードチップが出力するリセット応答情報(ATR)と、フラッシュメモリの消去単位を示す情報の少なくとも一方の情報を、外部から与えられる所定コマンドに応答して外部に出力可能である。カードホストはリセット応答情報を参照してカードコントローラにICカードチップの動作速度若しくは動作周波数等を変更させることが可能になる。カードホストは、不揮発性メモリに対する記憶情報の書き換えに際して、初期化単位を示す情報を参照することにより、初期化単位に見合う量の書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。

Description

本発明は、不揮発性の情報記憶機能を有する記憶装置、不揮発性の情報記憶機能と共に記憶情報に対するセキュリティ機能を有する記憶装置、更にその記憶装置が挿入されるホスト機器などのデータ処理装置に関し、例えばフラッシュメモリチップ、ICカード用マイクロコンピュータチップ及びコントローラチップを有するメモリカードに適用して有効な技術に関する。
非特許文献1にはICカードのデバイス間におけるインタフェース端子及び転送プロトコルについて記載される。ここには、例えば、ATR(Answer To Reset)等について記載がある。ATRは、リセット処理に対する応答としてリセット処理後にICカードからインタフェースデバイスに向けて送られる通信プロトコルを示すための値である、とされる。非特許文献2にはICカードの情報交換のためのコマンド仕様が記載される。
特許文献1には、フラッシュメモリチップとセキュリティ処理を実行可能なICカードチップと、ホストからの要求に応じてフラッシュメモリチップ及びICカードチップへのアクセス等を制御するコントローラチップとを有し、このコントローラチップがフラッシュメモリチップとICカードチップの両方にホストからの要求に応じてアクセス可能な、メモリカードについて記載される。
ISO/IEC 7816−3 Second edition(1997−12−15) ISO/IEC 7816−4 First edition(1995−09−01) 特開2003−22216号公報(図1)
本発明者はメモリカードとカードホストとの間でのコミュニケーション能力について検討した。第1には、ICカードチップによるセキュリティ機能を搭載したフラッシュメモリカードのモバイル用途への適用に関してである。
通常、ICカードとカードホスト間でICカードリセット時に、カードホストはICカードから出力されるリセット応答としてATR情報を直接読み取り、このATRの情報を使用して必要な通信設定を行い、設定された通信条件にて、それ以降、前記非特許文献2の記載に準拠したコマンド処理を行う。またカードホストのアプリケーションによってはATR情報に含まれる、ICカードのOS(オペレーティングシステム)に依存する固有値を使用するものも存在する。特に、モバイル端末をターゲットとしたICカードを使用するアプリケーションを考えると、ICカードによる高速処理が必要な場合には通信速度や演算速度を高速化し、そうでない時は電力消費を抑えてバッテリ寿命を延ばす、という制御形態の必要性が見出された。
しかしながら、ICカードによるセキュリティ機能をメモリカードに搭載した場合、コントローラチップがICカードの処理に深く係わらないことがセキュリティ性の維持には望ましいことから、ICカードへのリセット及び通信設定はコントローラが行い、通信設定終了以降におけるカードホストとICカードチップとのデータのやり取りは、CMD51,CMD52などの新規のカードコマンドをコントローラに与えて行なうようにしている。この新規カードコマンドは、ISO7816に準拠したコマンド処理を指示するICカードコマンド等を付随させたコマンドである。この新規メモリカードコマンドCMD52を受取ったカードコントローラは、そのコマンドに付随するセキュリティ処理用の情報であるICカードコマンドをICカードチップに与える。また、そのICカードコマンドに応答してICカードから出力される応答データ等に対しては、メモリカードコマンドCMD51を受取ったカードコントローラがカードホストに向けて供給する。
その場合には、従来カードホストとICカード間で直接やり取りをしていたATR情報を読み出すことが出来ない。即ち、ICカードチップに対するリセットと通信設定はカードコントローラが行ない、ATR情報はカードホストに出力されない。通信設定後の新規カードコマンドCMD51,CMD52ではATR情報を読み出す事ができない。これにより、カードホストにおいて、ATR情報を照会するアプリケーションなどによっては、処理上ICカードとの互換性の点で問題となる。さらに、カードホストは前記ICカードチップを有するメモリカードからATR情報を取得することができないため、カードホストのアプリケーションやICカードチップによる処理内容に応じてICカードチップの動作周波数などの通信設定を変更することができず、モバイル用途に対する制限になってしまう。これは、従来のメモリカードのコマンド体系ではICカード機能を搭載したメモリカードとカードホストとの間でのコミュニケーション能力が不十分であることに起因する。
第2には、メモリカードに搭載されるフラッシュメモリの消去単位がメモリカード間で異なる場合、書込み時におけるカードホストからのデータ転送数により、フラッシュメモリにかかる書換えストレスが増加したりや書込み転送レートが悪くなったりすることに関する。一般的にメモリカードに搭載されるフラッシュメモリはAND、NAND、AG−ANDといったメモリアレイの構成の違いや記憶容量の相違により消去単位が統一されていない。この消去単位の違いに対しては、メモリカードのコントローラがその違いに応じて消去処理を制御するが、カードホストからの1回の書込みコマンドで転送される書込みデータ数によってフラッシュメモリが物理的に消去を行う回数が異なる。例えば、消去単位が2048ビットのとき、2048ビットの書き換えを行なうのに、カードホストが1024ビットの書込みデータを伴って2回書込みコマンドを発行する場合には、2048ビットの書込みデータを伴って1回書込みコマンドを発行する場合に比べて、消去の高電圧印加によるストレスが2倍になる。書換え単位が大きいフラッシュメモリを搭載したメモリカードほど書換えストレス(消去回数)が大きく、書込み時のオーバーヘッドも大きくなる。これは、従来のメモリカードのコマンド体系では内蔵不揮発性メモリの消去単位を外部から認識するコミュニケーション手段が提供されていないという、コミュニケーション能力の不足に起因する。
本発明の目的は、ICカードチップのようなセキュリティコントローラ若しくはフラッシュメモリチップのような不揮発性メモリを搭載したメモリカードのような記憶装置のデータ処理装置との間におけるコミュニケーション能力を向上させることにある。
本発明の別の目的は、ICカードチップのようなセキュリティコントローラを搭載したメモリカードのような記憶装置におけるセキュリティコントローラの動作速度や電力消費を変更可能にすることである。
本発明のさらに別の目的は、メモリカードに搭載されたフラッシュメモリのような不揮発性メモリにおける記憶領域の初期化単位に則した、書換えストレスが少なく書込みデータの転送効率の良好な初期化を、外部より可能にすることである。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕メモリカードのような記憶装置は、インタフェースコントローラ、書き換え可能な不揮発性メモリ及びデータのセキュリティ処理を行なうセキュリティコントローラを備え、前記インタフェースコントローラは、セキュリティコントローラへのリセット指示に応答してセキュリティコントローラが出力するリセット応答情報(ATR)と、前記不揮発性メモリの記憶領域の初期化単位を示す情報(F_CODE、F_CNT)の少なくとも一方の情報を、外部から前記インタフェースコントローラに与えられる所定の第1のコマンドに応答して外部に出力可能である。リセット応答情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、リセット応答情報を参照してインタフェースコントローラにセキュリティコントローラの動作速度若しくは動作周波数等を変更させることが可能になる。また、初期化単位を示す情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、不揮発性メモリに対する記憶情報の書き換えに際して、初期化単位を示す情報を参照することにより、記憶領域の初期化単位に見合う量の書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。
本発明の具体的な形態として、前記インタフェースコントローラは周波数を設定するコマンドに応答してセキュリティコントローラに与えるクロック信号の周波数を変更可能である。
本発明の具体的な形態として、前記インタフェースコントローラは、外部から与えられる第2のコマンドに応答して当該第2のコマンドに含まれるセキュリティ処理用情報を抜き出してセキュリティコントローラに与え、外部から与えられる第3のコマンドに応答して前記セキュリティコントローラによるセキュリティ処理結果を外部に出力する。インタフェースコントローラはセキュリティコントローラの構成に立ち入らずにセキュリティコントローラにセキュリティ処理を指示することができる。
本発明の具体的な形態として、前記インタフェースコントローラは、上記記憶装置の初期化コマンドに応答して前記少なくとも一方の情報をラッチする揮発性記憶回路を有し、前記所定の第1のコマンドに応答して前記記憶回路が保有する前記一方の情報を上記記憶装置の外部に出力する。このとき、前記揮発性記憶回路にラッチする前記少なくとも一方の情報は前記不揮発性メモリに初期的に格納されていてよい。一々セキュリティコントローラ内部をアクセスしなくても済み、また、不揮発性メモリが複数個存在するような場合に夫々からデバイスコードなどを取得するのに複数回不揮発性メモリをアクセスしなくても済む。
本発明の具体的な形態として、前記所定の第1のコマンドは上記記憶装置の初期化コマンドとは異なるコマンドコードを有する。別の形態として、前記所定の第1のコマンドに上記記憶装置の初期化コマンドのコマンドコードを割当てるとき、前記インタフェースコントローラは、初期化処理のレスポンスに続けて前記少なくとも一方の情報を外部に出力する。更に別の形態として、前記所定の第1のコマンドに前記インタフェースコントローラが保有するカード識別レジスタ又はカード特性レジスタのような所定のレジスタに対するリードコマンドのコマンドコードを割当てるとき、前記インタフェースコントローラは、前記レジスタが保有する情報の出力に続けて、又はレジスタの予約領域に割当てて前記少なくとも一方の情報を外部に出力する。
本発明の具体的な形態として、前記リセット応答情報は、前記セキュリティコントローラの動作限界周波数及びヒストリカルバイト情報を含む。前記記憶領域の初期化単位を示す情報は、不揮発性メモリの種別を示すデバイスコード、又は前記デバイスコードに基づいて生成された初期化単位に応ずるデータ数情報である。
〔2〕カードホストのようなデータ処理装置は、上記記憶装置が装着可能にされ、前記リセット応答情報を出力させる前記所定の第1のコマンドを前記記憶装置に出力し、これに応答して前記記憶装置から出力されるリセット応答情報を入力し、入力したリセット応答情報を参照して、前記セキュリティコントローラの動作周波数の設定を変更可能である。リセット応答情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、リセット応答情報を参照してインタフェースコントローラにセキュリティコントローラの動作速度若しくは動作周波数等を変更させることが可能になる。
別の形態によるカードホストのようなデータ処理装置は、上記記憶装置が装着可能にされ、前記記憶領域の初期化単位を示す情報を出力させる前記所定の第1のコマンドを前記記憶装置に出力し、これに応答して前記記憶装置から出力される前記記憶領域の初期化単位を示す情報を入力し、入力した前記初期化単位を示す情報に基づいて、前記記憶装置への書込みデータのデータ転送数を前記初期化単位毎とする。初期化単位を示す情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、不揮発性メモリに対する記憶情報の書き換えに際して、初期化単位を示す情報を参照することにより、記憶領域の初期化単位に見合う量の書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。
〔3〕メモリカードのような記憶装置はインタフェースコントローラ及び書き換え可能な不揮発性メモリを備え、前記インタフェースコントローラは、前記不揮発性メモリの記憶領域の初期化単位を示す情報を、外部から前記インタフェースコントローラに与えられる所定のコマンドに応答して外部に出力可能である。初期化単位を示す情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、不揮発性メモリに対する記憶情報の書き換えに際して、初期化単位を示す情報を参照することにより、記憶領域の初期化単位に見合う量の書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。
本発明の具体的形態として、前記所定のコマンドに前記記憶装置の初期化コマンドと同じコマンドコードを割当てるとき、前記インタフェースコントローラは、初期化処理のレスポンスに続けて前記初期化単位を示す情報を外部に出力する。また、別の形態として、前記所定のコマンドに前記インタフェースコントローラが保有するカード識別レジスタ又はカード特性レジスタのような所定のレジスタに対するリードコマンドと同じコマンドコードを割当てるとき、前記インタフェースコントローラは、前記レジスタが保有する情報の出力に続けて、又はレジスタの予約領域に割当てて前記初期化単位を示す情報を外部に出力する。
本発明の具体的形態として、前記初期化単位を示す情報は、不揮発性メモリの種別を示すデバイスコード、又は前記デバイスコードに基づいて生成された記憶領域の初期化単位に応ずるデータ数情報である。前記インタフェースコントローラは、前記不揮発性メモリからその種別を示すデバイスコードを取得し、取得したデバイスコードに基づいて前記不揮発性メモリの動作限界周波数を取得し、前記所定のコマンドに応答して動作限界周波数を外部に出力する。前記インタフェースコントローラは周波数を設定するコマンドに応答して不揮発性メモリに与えるクロック信号の周波数を変更可能である。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、リセット応答情報の外部出力や初期化単位を示す情報の外部出力を行なうことができるから、ICカードチップのようなセキュリティコントローラ若しくはフラッシュメモリチップのような不揮発性メモリを搭載したメモリカードのような記憶装置に対して、カードホストのようなデータ処理装置との間におけるコミュニケーション能力を向上させることができる。
リセット応答情報の外部出力が可能であるから、ICカードチップのようなセキュリティコントローラを搭載したメモリカードのような記憶装置におけるセキュリティコントローラの動作速度や電力消費を変更可能になる。
初期化単位を示す情報の外部出力が可能であるから、メモリカードに搭載されたフラッシュメモリのような不揮発性メモリにおける消去単位のような記憶領域に対してその初期化単位に則した書換えストレスが少なく書込みデータの転送効率の良好なアクセス制御を外部より行なうことが可能になる。
本発明を適用した記憶装置としてのMMCの内部構成を示したブロック図である。 セキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD52)のコマンドプロトコルを示す説明図である。 ATR情報読み出しコマンドの幾つかの形態を例示する説明図である。 ATR情報読み出しコマンドCMD50による機能を実現するための第1の実施形態を例示する説明図である。 ATR情報読み出しコマンドCMD50による機能を実現するための第2の実施形態を例示する説明図である。 ATR情報読み出しコマンドCMD50による機能を実現するための第3の実施形態を例示する説明図である。 ホスト機器によるATR情報を参照した動作例を示す説明図である。 ホスト機器によるATR情報を参照した別の動作例を示す説明図である。 ホスト機器によるATR情報を参照した別の動作例を示す説明図である。 ホスト機器によるATR情報を参照した別の動作例を示す説明図である。 ホスト機器によるATR情報を参照した別の動作例を示す説明図である。 消去単位を示す情報としてフラッシュメモリチップに格納されているデバイスコードの読み出しコマンドの幾つかの形態を例示する説明図である。 デバイスコード読み出しコマンドCMD49による機能を実現するための第1の実施形態を例示する説明図である。 デバイスコード読み出しコマンドCMD49による機能を実現するための第2の実施形態を例示する説明図である。 デバイスコード読み出しコマンドCMD49による機能を実現するための第3の実施形態を例示する説明図である。 消去単位2KBのフラッシュメモリを搭載したMMC1に1コマンドで1KBのデータ転送を行なって合計2KBのデータを書き込む場合の動作の前半を例示する説明図である。 図16の動作に続く後半動作を例示する説明図である。 1回の書き込みコマンドで1KBの書き込みデータを転送して合計16KBの書き込みを行なう場合と、1回の書き込みコマンドで2KBの書き込みデータを転送して合計16KBの書き込みを行なう場合との動作の比較例を示す説明図である。 ホスト機器がフラッシュデバイスコードからフラッシュメモリの消去単位を把握して書込みデータの転送数を最適化する動作例を示す説明図である。 消去単位2KBのフラッシュメモリを搭載したMMC1に1コマンドで2KBのデータ転送を行なって合計2KBのデータを書き込む動作を示す説明図である。 読み出したデバイスコードに基づく最適書き換え単位の解析機能をコントローラチップが有する場合の例を示す説明図である。 最適書き換え単位の解析結果に基づく書込み動作のタイミングチャートである。 デバイスコードをフラッシュメモリチップの周波数設定に用いる例を示す説明図である。
符号の説明
1 MMC
2 ホスト機器
3 MMC外部端子
4 コントローラチップ
5 フラッシュメモリチップ
6 ICカードチップ
10 電源供給端子
11 クロック入力端子
12 コマンド入出力端子
13 データ入出力端子
14 グランド端子
20 電源供給端子
21 クロック入力端子
23 入出力端子
24 グランド端子
31 CPU
32 フラッシュメモリI/F制御回路
33 MMCI/F制御回路
34 CLK0発振器
35 VCC2制御回路
36 CLK2制御回路
37 ICカードI/F制御回路
38 データバッファ
《MMC》
図1は、本発明を適用した記憶装置としてのMultiMediaCard(MultiMediaCardは、InfineonTechnologiesAGの登録商標である。以下、「MMC」と略記する。)の内部構成を示した図である。MMC1は、MMC仕様に準拠するのが好ましい。MMC1は、MMC1に接続されたデータ処理装置としてのホスト機器(若しくはカードホスト)2から発行されたMMC仕様に準拠したメモリカードコマンドに基づいて、機密データ保護や個人認証などに必要な暗号演算をおこなうセキュリティ処理機能を持つ。
ホスト機器2は、例えば、携帯電話、携帯情報端末(PDA)、パーソナルコンピュータ、音楽再生(及び録音)装置、カメラ、ビデオカメラ、自動預金預払機、街角端末、及び決済端末等が該当する。
MMC1は、MMC外部端子3、インタフェースコントローラとしてのコントローラチップ4、不揮発性メモリとしてのフラッシュメモリチップ(FLASH)5、及びセキュリティコントローラとしてのICカードチップ(MCU)6を持つ。フラッシュメモリチップ5は、不揮発性の半導体メモリを記憶媒体とするメモリチップであり、フラッシュメモリコマンドによりデータの読み書きができる。MMC外部端子3は、外部のホスト機器2と情報交換するために、電源(VCC2)供給端子10、クロック(CLK1)入力端子11、コマンド(CMD)入出力端子12、データ(DAT)入出力端子13、グランド(GND)端子14、チップ選択(CS)端子15等の7つの端子から構成される。MMC仕様は、MMC1の動作モードとしてMMCモードとSPIモードという2種類を規定しており、動作モードによってMMC外部端子3の使用法は異なる。
コントローラチップ4は、MMC外部端子3、フラッシュメモリチップ5、及びICカードチップ6と接続され、これらを制御するマイコンチップである。
ICカードチップ6は、ICカードのプラスチック基板中に埋め込むためのマイコンチップであり、ICカードチップ6が有する外部端子、電気信号プロトコル、コマンドはISO/IEC7816規格に準拠している。ICカードチップ6の外部端子には、電源(VCC2)供給端子20、クロック(CLK2)入力端子21、リセット(RES)入力端子22、入出力(I/O)端子23、及びグランド(GND)端子24がある。NC端子は将来のための予備端子である。コントローラチップ4は、ICカードチップ6の外部端子からICカードチップ6にICカードコマンドを発行することによって、外部のホスト機器2から要求されたセキュリティ処理に必要な演算を行なう。
ICカードチップ6は、特に図示は省略するが、演算処理を行うためのCPU(マイコン)、データ(プログラムを含む。)を記憶するためのROM(Read Only Memory)、RAM(Random Access Memory)、EEPROM(Electrically Erasable Programmable ROM)、暗号/復号に関する処理を行うための暗号器を構成する暗号コプロセッサ、及び外部とデータを送受信するためのシリアルインターフェースを備える。これらはバスによって相互に接続される。
前記暗号コプロセッサは、ホスト機器2からのコマンドに応じて、セキュリティ処理を実行する。尚、暗号コプロセッサ(ハードウェア)の変わりに、プログラム(ソフトウェア)を用いてCPUがセキュリティ処理を実行してもよい。セキュリティ処理は、例えば、ICカードチップ6内の記憶領域にデータが書き込まれるとき、又は、ICカードチップ6内の記憶領域からデータが読み出されるときに実行される。
前記フラッシュメモリチップ5は、不揮発性の記憶素子を有する。一般的に、ICカードチップ6のEEPROMの記憶容量は、フラッシュメモリチップ5の記憶容量より小さい。但し、EEPROMの記憶容量は、フラッシュメモリチップ5の記憶容量と同じでもよいし、大きくてもよい。
ICカードチップ6には、セキュリティ評価基準の国際標準であるISO/IEC15408の評価・認証機関によって認証済みである製品を利用するのが望ましい。一般に、セキュリティ処理を行なう機能を持つICカードを実際の電子決済サービスなどで利用する場合、そのICカードはISO/IEC15408の評価・認証機関による評価と認定を受ける必要がある。MMCにセキュリティ処理を行なう機能を追加することによってMMC1を実現し、それを実際の電子決済サービスなどで利用する場合、MMC1も同様にISO/IEC15408の評価・認証機関による評価と認定を受ける必要がある。本発明においては、MMC1は、評価・認証機関によって認証済みのICカードチップ6を内蔵し、そのICカードチップ6を利用してセキュリティ処理をおこなう構造を持つことにより、セキュリティ処理機能を得る。したがって、MMC1はISO/IEC15408に基づくセキュリティ評価基準を容易に満足することができ、MMCにセキュリティ処理機能を追加するための開発期間を短縮することができる。しかし、ISO/IEC15408の評価・認証機関により認証済の製品ではないICカードチップを排除するものではなく、ICカードチップにより提供するサービスの求めるセキュリティ強度に応じたICカードチップを用いても良い。
MMC1は、MMC仕様に準拠した外部インタフェースを持つのが好ましい。MMC1は、一種類の外部インタフェースを通じて、標準メモリカードコマンド(フラッシュメモリチップへアクセスするためのコマンド)に加えて、セキュリティ処理を実行するコマンドを受け付ける必要がある。コントローラチップ4は、MMC1が受信したコマンドが標準メモリカードコマンドであるか、セキュリティ処理を実行するコマンドであるかによって、アクセスすべきチップを選択し、コマンド処理を分配する機能を持つ。この例では、コントローラチップ4は、標準メモリカードコマンドを受信したならば、フラッシュメモリチップ5を選択し、これにフラッシュメモリコマンドを発行してホストデータを読み書きできる。また、セキュリティ処理を実行するコマンドを受信したならば、ICカードチップ6を選択し、これにICカードコマンドを発行してセキュリティ処理を実行することができる。更にコントローラチップは、ホスト機器2とのコミュニケーション能力を強化するために、リセット指示に応答してICカードチップが出力するATR情報を外部に出力する機能、並びに、フラッシュメモリチップ5の消去単位を示す情報を外部に出力する機能を有する。しかし、MMC仕様に準拠した外部インタフェース以外の外部インタフェースを排除するものではなく、現在存在し若しくは将来において存在するであろう外部インタフェースに準拠するものであって良い。
ICカードチップ6の外部端子は、グランド端子24を除いて、電源供給端子20、クロック入力端子21、リセット入力端子22、入出力端子23がコントローラチップ4と接続されている。
コントローラチップ4は、電源供給端子10、クロック入力端子11を通して、ICカードチップ6への電源供給、クロック供給を制御する。本実施形態によれば、ホスト機器2からセキュリティ処理を要求されないときには、コントローラチップ4がICカードチップ6への電源供給やクロック供給を停止することができ、MMC1の電力消費を削減することができる。
電源が供給されていないICカードチップ6を、ICカードコマンドを受信できる状態にするには、まず、ICカードチップ6に電源供給を開始し、リセット処理を施す必要がある。即ち、コントローラチップ4は、MMC1がホスト機器2からセキュリティ処理を実行するコマンドを受信したのを契機に、電源供給端子を通してICカードチップ6への電源供給を開始する機能を有する。また、コントローラチップ4は、MMC1がホスト機器2からセキュリティ処理を実行するコマンドを受信したのを契機に、リセット入力端子を通してICカードチップ6のリセット処理をおこなう機能を有する。これによれば、コントローラチップ4は、セキュリティ処理を実行するコマンドを受信するまでICカードチップ6への電源供給を停止させておくことができる。したがって、MMC1の電力消費を削減することができる。
コントローラチップ4は、ICカードチップ6のクロック入力端子を通してICカードチップ6に供給するクロック信号をMMC1内部で発生し、その周波数、供給開始タイミング、供給停止タイミングを制御する機能を有する。
コントローラチップ4は、CPU31、フラッシュメモリI/F制御回路(FMIF)32、MMCI/F制御回路(MMCIF)33、CLK0発振器(CLK0GEN)34、VCC2制御回路(VCC2CNT)35、CLK2制御回路(CLK2CNT)36、ICカードI/F制御回路(ICIF)37、及びデータバッファ38を有する。これらの構成要素31〜38は、ホスト機器2からVCC1端子10やGND1端子14、14を通して供給された電力により動作する。MMCI/F制御回路33は、CS端子15、CMD端子12、CLK1端子11、及びDAT端子13と接続されており、MMC1がそれらの端子を通してホスト機器2と情報交換するためのインタフェースを制御する論理回路である。
CPU31は、MMCI/F制御回路33と接続されており、MMCI/F制御回路33を制御する。MMCI/F制御回路33がCMD端子12を通してホスト機器2からメモリカードコマンドを受信すると、MMCI/F制御回路33は、そのコマンドの受信が成功したかどうかの結果をホスト機器2に伝えるためCMD端子12を通してホスト機器2にレスポンスを送信する。CPU31は、受信したメモリカードコマンドを解釈し、コマンド内容に応じた処理を実行する。また、そのコマンド内容に応じてホスト機器2とDAT端子13を通してデータの送受信をおこなう必要がある場合、CPU31は、MMCI/F制御回路33へのデータの送出、MMCI/F制御回路33からのデータの取得を行なう。CLK0発振器34は、CPU31と接続され、CPU31を動作させる駆動クロックを供給する。
フラッシュメモリチップ5は、不揮発性の半導体メモリを記憶媒体とするメモリチップである。フラッシュメモリチップ5は、ホスト機器2からVCC1端子10やGND1端子14を通して供給された電力により動作する。フラッシュメモリチップ5は、外部からのフラッシュメモリコマンドに従って、入力されたデータを不揮発性の半導体メモリに格納するライト機能、また同メモリに格納されたデータを外部に出力するリード機能を持つ。フラッシュメモリI/F制御回路32は、フラッシュメモリチップ5にフラッシュメモリコマンドを発行したり、そのコマンドで入出力するデータを転送するための論理回路である。CPU31は、フラッシュメモリI/F制御回路32を制御し、フラッシュメモリチップ5にデータのライト機能やリード機能を実行させる。ホスト機器2から受信したデータをフラッシュメモリチップ5にライトしたり、フラッシュメモリチップ5に格納されたデータをホスト機器2に送信する必要があるとき、CPU31は、フラッシュメモリI/F制御回路32とMMCI/F制御回路33の間のデータ転送を制御する。
ICカードチップ6のグランド端子24は、MMC外部端子3のGND端子14に接続される。ICカードチップ6のVCC2端子20は、コントローラチップ4のVCC2制御回路35に接続される。ICカードチップ6のRST端子(リセット入力端子)22とI/O端子(データ入出力端子)23は、コントローラチップ4のICカードI/F制御回路37に接続される。ICカードチップ6のCLK2端子(クロック入力端子)21は、コントローラチップ4のCLK2制御回路36に接続される。
VCC2端子20は、ICカードチップ6に電力を供給するための電源端子である。VCC2制御回路35は、VCC2電圧を生成し、MOS−FET素子を用いたスイッチ回路によりVCC2端子20への電力の供給開始と供給停止を制御する回路である。VCC2制御回路35はCPU31と接続され、CPU31はVCC2端子20への電力供給の開始と停止を制御することができる。ICカードチップ6を使用しないときは、CPU31はVCC2端子20への電力供給を停止することができる。MMC1は、ICカードチップ6への電力供給を停止することにより、それが消費する電力を節約することができる。
CLK2端子21は、ICカードチップ6にクロック信号を入力する端子である。CLK2制御回路36は、CLK2端子21にクロックを供給する回路である。CLK2制御回路36は、CLK0発振器34から供給されたクロック信号をもとにしてCLK2端子21に供給するクロック信号を生成する。CLK2制御回路36はCPU31と接続されており、CLK2端子21へのクロックの供給開始と供給停止をCPU31から制御することができる。ICカードチップ6は、自身内部に駆動クロック発振器をもたない。そのため、CLK2端子21から駆動クロックを供給することによって動作する。CLK2制御回路36が、CLK2端子21へのクロック供給を停止すると、ICカードチップ6の動作は停止するため、ICカードチップ6の消費電力を低下させることができる。この時、VCC2端子20への電力供給が保たれていれば、ICカードチップ6の内部状態は維持される。
ここで、CLK2端子21に供給するクロック信号の周波数をF2、CLK0発振器34から供給されたクロック信号の周波数をF0、PとQを正の整数とすると、CLK2制御回路36は、F2=(P/Q)*F0の関係になるようなクロック信号を作成して、これをCLK2端子21に供給する。PとQの値はCPU31により設定できるようになっている。Pを大きく設定してF2を大きくすると、ICカードチップ6の内部処理をより高速に駆動できる。Qを大きく設定してF2を小さくすると、ICカードチップ6の内部処理はより低速に駆動され、ICカードチップ6の消費電力を低下させることができる。ICカードチップ6の駆動クロック周波数は、ICカードチップ6が正しく動作できるような許容周波数範囲内に設定される必要がある。そのため、CLK2制御回路36は、F2の値がその許容周波数範囲を外れるようなPとQの値を設定させないようになっている。
I/O端子23は、ICカードチップ6にICカードコマンドを入力したり、ICカードチップ6がICカードレスポンスを出力するときに使用する入出力端子である。ICカードI/F制御回路37は、I/O端子23と接続されており、I/O端子23を通してICカードコマンドの信号送信やICカードレスポンスの信号受信をおこなう回路である。ICカードI/F制御回路37はCPU31に接続されており、CPU31は、ICカードI/F制御回路37によるICカードコマンドやICカードレスポンスの送受信の手続きを制御したり、送信すべきICカードコマンドデータをICカードI/F制御回路37に設定したり、受信したICカードレスポンス等をICカードI/F制御回路37から取得する。ICカードI/F制御回路37にはCLK2制御回路36からクロックが供給されており、ICカードコマンドやICカードレスポンスは、CLK2端子21に供給するクロック信号にビット単位で同期して、I/O端子23を通して送受信される。また、RST端子22は、ICカードチップ6をリセットするときにリセット信号を入力する端子である。ICカードI/F制御回路37は、RST端子22と接続されており、CPU31の指示によりICカードチップ6にリセット信号を送ることができる。
《標準メモリカードコマンド》
MMCに準拠した標準メモリカードコマンドについて説明する。コマンドは6バイトのコマンドフィールドを有し、先頭1バイトがコマンドコード(先頭2ビットは“01”固定)、途中の4バイトがパラメータ指定などに利用されるアーギュメント、最後の1バイトがCRC(Cyclic Redundancy Check)とされる。MMCではコマンドが発行される毎にホスト機器にレスポンスを返す。例えばCMD1などのリセット起動コマンドが発行されると、MMC1内部が初期化される。このとき、コントローラチップ4はICカードチップ6のリセット端子22にリセット指示を与える。ICカードチップ6はリセット端子22にリセット指示が与えられると、内部を初期化した後、リセット応答情報としてのATR情報をコントローラチップ4に向けて出力する。ATR情報にはICカードチップ6の動作限界周波数やヒストリカルバイト等が含まれている。ヒストリカルバイトはICカードチップ6が保有するOS(オペレーティングシステム)のバージョン情報やアプリケーションプログラムの属性情報等を含む。コントローラチップ4はICカードチップ6から受取ったATR情報を参照してクロックCLK2の周波数などの通信設定を行なう。この後、ホスト機器がCMD17などのリード系コマンドを発行すると、MMC1は、受領したコマンドに応ずるコマンドインデックス及びカードステータス等を含むレスポンスをホスト機器に返し、フラッシュメモリチップからリードしたデータをホスト機器に出力する。CMD24などのライト系コマンドが発行されると、MMC1は、受領したコマンドに応ずるコマンドインデックス及びカードステータス等を含むレスポンスをホスト機器に返し、ホスト機器から供給される書込みデータをフラッシュメモリチップに書き込む。
《セキュリティ処理用コマンド》
ICカードチップ6にセキュリティ処理を実行させるセキュリティ処理用コマンドは、ICカードアクセスコマンドで実現され、具体的には標準メモリカードコマンドの空きコマンドコードを利用したセキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD52)を主体とする。それらのコマンドプロトコルは標準メモリカードコマンドのリード系コマンド、ライト系コマンドと同様とされる。
図2にはセキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD52)のコマンドプロトコルが示される。CMDの記載位置に対応された信号情報はCMD端子を介して入出力される信号情報であることを意味し、DATの記載位置に対応された信号情報はDAT端子を介して入出力される信号情報であることを意味する。図において一重枠内に記述された情報の供給方向はカードホストからMMC1の向きであり、二重枠内に記述された情報の供給方向はMMC1からカードホストの向きである。セキュアライトコマンド(CMD52)の場合、書込みデータには、転送データバイト数STLと、ISO7816準拠のICカードコマンド(C−APDU)とが含まれる。コントローラチップ4のCPU31は供給されたコマンドのコマンドコードからCMD52を識別すると、それに付随する書込みデータの内、転送データバイト数STLで示されるバイトのICカードコマンド(C−APDU)をICIF37からICカードチップ6の入出力端子23に与える。セキュアリードコマンド(CMD51)の場合、リードデータには、転送データバイト数STLと、ISO7816準拠のICカードレスポンス(R−APDU)とが含まれる。ICカードレスポンス(R−APDU)とはICカードによるセキュリティ処理が施されたデータである。即ち、先に発行されたセキュアライトコマンドでICカードに与えられたICカードコマンド(C−APDU)にしたがって処理された結果であり、ICIF37のデータバッファに保持されているデータである。コントローラチップ4のCPU31は、供給されたコマンドのコマンドコードからCMD51を識別すると、ICカードレスポンス(R−APDU)のデータバイト数STLを先頭に当該ICカードレスポンス(R−APDU)をMMC1の外部に出力する。
前記セキュアリードコマンド(CMD51)ではICカードチップ6からATR情報を読み出してMMC1の外部に出力させることはできない。
《ATR情報読み出しコマンド》
リセット応答情報としてのATR情報は、“ISO/IEC 7816−3:1997(E)のセクション6.4Anser−to−Reset structure”に記載されるようにICカードチップの動作限界周波数を決定する動作クロックのクロックレートや入出力データのボーレート、並びにICカードチップのヒストリカルバイト情報等を含む。MMC1はホスト機器とのコミュニケーション能力を強化するためのコマンドとして、ATR情報をMMC1の外部に読み出し可能にするコマンド(ATR情報読み出しコマンド)を有する。
図3にはATR情報読み出しコマンドの幾つかの形態が例示される。ATR情報読み出しコマンドの第1形態は、標準メモリカードコマンドの空きコマンドコードを利用した新規コマンド(単にATR情報読み出しコマンドCMD50とも称する)とされる。ATR情報読み出しコマンドCMD50の欄においてCMDの記載位置に対応された信号情報はCMD端子を介して入出力される信号情報であることを意味し、DATの記載位置に対応された信号情報はDAT端子を介して入出力される信号情報であることを意味する。図において一重枠内に記述された情報の供給方向はカードホストからMMC1の向きであり、二重枠内に記述された情報の供給方向はMMC1からカードホストの向きである。CMD端子にコマンドCMD50が投入されると、これに応答してレスポンスが返され、DAT端子には転送データバイト数STLに続けてATR情報が出力される。ATR情報読み出しコマンドCMD50はMMC1に搭載されたICカードチップが1枚の場合を想定する。
ATR情報読み出しコマンドの第2の形態は、MMC1に搭載されたICカードチップが2枚以上の場合を想定し、CMD50に応答するDAT端子からのデータ出力は、ICカードチップ毎にデータバイト数STLとATR情報の順次出力とされる。ICカードチップ6の枚数の認識はコントローラチップ4が行なう。
ATR情報読み出しコマンドの第3の形態は、MMC1に搭載されたICカードチップが2枚以上の場合に、パラメータで指定されたICカードチップのATR情報を読み出すようにしたものである。前記パラメータは何番目のICカードチップであるかを指定する情報であり、コントローラチップ4はICカードチップ6の枚数に対してパラメータで指定された番号のICカードチップ6のATR情報をDAT端子から出力する。
ATR情報読み出しコマンドの第4の形態はCMD1等の既存のリセット起動コマンドと同じコマンドコードを持ち、コントローラチップ4は初期化処理のレスポンスに続けて、前記CMD端子に転送データバイト数STLとATR情報を出力させる。
ATR情報読み出しコマンドの第5の形態はCMD9等の既存のレジスタリードコマンドと同じコマンドコードを持ち、コントローラチップ4はレジスタ値の出力に続けて、又はレジスタの予約領域に割当てて前記CMD端子に転送データバイト数STLとATR情報を出力させる。CMD9によるリード対象レジスタは、製造者番号やカードのシリアル番号などを保有するカード識別レジスタ(CID)、アクセスタイム及びカード容量等の情報を保有するカード特性データレジスタ(CSD)とされる。
図4にはATR情報読み出しコマンドCMD50による機能を実現するための第1の実施形態が例示される。第1の実施形態は、ATR情報読み出しコマンドCMD50を受付けると、ICカードチップ6にリセット処理を行ない、それによってICカードチップ6から出力されるATR情報をデータバッファ38に蓄積し、蓄積したATR情報をホスト機器2に出力する、というものである。即ち、ホスト機器2からATR情報読み出しコマンドCMD50が発行されると(ST1)、コントローラチップ4はこれを入力し、CPU31で解読し、ICIF37を介してICカードチップ6のRES端子にリセットを指示する(ST2)。これによってICカードチップ6は初期化動作され、ATR情報を出力するので、これをICIF37からCPU31を介してデータバッファ38に格納する(ST3)。格納されたATR情報はMMCIF33からホスト機器2に向けて出力される(ST4)。
図5にはATR情報読み出しコマンドCMD50による機能を実現するための第2の実施形態が例示される。第2の実施形態は、MMC1のパワーオンリセット時にICカードチップ6のリセット処理で出力されたATR情報をデータバッファ38に蓄えておいて、ATR情報読み出しコマンドCMD50を受付けたときは、ATR情報をデータバッファ38からホスト機器2に出力する、というものである。即ち、ホスト機器2からリセット起動コマンドCMD1が発行されると(ST5)、コントローラチップ4はこれを入力し、CPU31で解読し、ICIF31を介してICカードチップ6のRES端子にリセットを指示する(ST2)。これによってICカードチップ6は初期化動作され、ATR情報を出力するので、これをICIF37からCPU31を介してデータバッファ38に格納して保持する(ST3)。その後、ホスト機器2からATR情報読み出しコマンドCMD50が発行されると(ST1)、コントローラチップ4はこれを入力し、CPU31で解読し、データバッファ38に格納してあるATR情報をMMCIF33からホスト機器2に向けて出力する(ST4)。第2の実施形態は第1の実施形態に比べ、ホスト機器2からATR情報読み出しコマンドCMD50が発行されてからATR情報がMMCIF33からホスト機器2に出力されるまでの待ち時間が短くなる。
図6にはATR情報読み出しコマンドCMD50による機能を実現するための第3の実施形態が例示される。第3の実施形態は、予めフラッシュメモリチップ5の所定領域にATR情報を格納しておき、ATR情報読み出しコマンドCMD50を受付けたときは、ATR情報をフラッシュメモリチップ5から読み出してホスト機器2に出力する、というものである。即ち、フラッシュメモリチップ5にはそのユーザ領域とは別のシステム領域(MMC1のユーザに自由な使用が認められていない領域)に、予めCIDなどの制御データやATR情報が格納されている。ホスト機器2からATR情報読み出しコマンドCMD50が発行されると(ST1)、コントローラチップ4はこれを入力し、CPU31で解読し、FMIF32を介してATR情報をリードして、データバッファ38に格納する(ST6)。そして、CPU31はATR情報をデータバッファ38からMMCIF33を介してホスト機器2に向けて出力する(ST4)。第3の実施形態は、第1の実施形態に比べれば、ホスト機器2からATR情報読み出しコマンドCMD50が発行されてからATR情報がMMCIF33からホスト機器2に出力されるまでの待ち時間が短くなるが、その待ち時間は第2の実施形態よりも長い。
尚、図示はしないが、図6の例においてフラッシュメモリチップ5からデータバッファ38へのATR情報の読み出しをCMD1による初期化コマンドで行い、その後、図5の場合と同様にコマンドCMD50に応答して、ATR情報をデータバッファ38から外部に出力するようにしてもよい。
図7にはホスト機器によるATR情報を参照した動作例が示される。ホスト機器2はそのホストアプリケーションプログラムにおけるATR情報の照会モジュールを実行すると、ATR情報読み出しコマンドCMD50を発行する(ST1)。MMC1はこれに応答してコントローラチップ4がATR情報をホスト機器2に出力する(ST4)。ホスト機器2は、その照会モジュールのプログラムにしたがってリードしたATR情報がその期待情報で特定されるICカードOSのものであるかを判定する(ST7)。期待したICカードOSのものであれば、セキュアライトコマンドCMD52を発行して(ST8)、ICカードチップ6に所定のセキュリティ処理を指示する。例えば、ICカードOSに応ずるATR情報によりICカードチップに搭載されている暗号化処理方式を判定し、判定した方式が楕円暗号演算による暗号化処理方式である場合には、セキュアライトコマンドCMD52の続く書き込みデータ(Data)にてそれに見合った動作を指示する(ST9)。
図8にはホスト機器によるATR情報を参照した別の動作例が示される。例えばホスト機器2がバッテリ電源で動作されるような携帯端末の場合には省電力の観点よりICカードチップ6の動作周波数を低くするのが望ましく、商用電源で動作される残高照会などが可能な据え置き型の端末装置の場合には処理の高速化の観点よりICカードチップ6の動作周波数を高くするのが望ましい。また、ホスト機器2がICカードチップ6と非接触インタフェース通信を行う場合にはICカードチップ6への電力供給もアンテナを介する起電力で賄うから早くデータ処理を完了するのが望ましい。このとき、ホスト機器2は、ATR情報読み出しコマンドCMD50にて読み出したATR情報に含まれる、ICカードチップ6の動作可能周波数情報を参照し、そのホスト機器2が携帯端末であれば、動作周波数設定コマンドCMD54にて、その最高動作周波数よりも低い周波数をICカードチップ6に設定する。そのホスト機器2が据え置き型の端末装置であれば、動作周波数設定コマンドCMD54にて、そのICカードチップ6の動作周波数を最高動作周波数に設定する。また、そのホスト機器2がICカードチップと非接触でインタフェースを行う装置であれば、動作周波数設定コマンドCMD54にて、そのICカードチップ6の動作周波数を最高動作周波数に設定する。なお、ICカード動作周波数設定コマンドCMD54は標準メモリカードコマンドの空きコマンドコードを利用した新規コマンドである。上記周波数制御を行うCLK2CNT36は、CLK0GEN34で生成されるクロックを分周する分周器DIV1,DIV2と、前記分周器DIV1,DIV2の出力を選択するクロックセレクタCLKSELを有する。例えばICカードチップ6の最高動作周波数を10MHz(メガ・ヘルツ)とすると、分周器DIV1の出力が10MHz、分周器DIV2の出力が1MHzとされる。クロックセレクタCLKSELによる出力の選択はコマンドCMD54で指定される。ホスト機器2はリードしたATR情報を参照し、ATR情報から把握できる最高動作周波数でICカードチップを動作させたいときはコマンドCMD54にて分周器DIV1の出力を選択させ、ATR情報から把握できる最高動作周波数でICカードチップを動作させたくないときはコマンドCMD54にて分周器DIV2の出力を選択させる。
図9にはホスト機器2によるATR情報を参照した別の動作例が示される。ホスト機器2はアプリケーションプログラムに従ったICカードチップ6に対する動作内容に応じてICカードチップ6の動作周波数を制御する。例えばホスト機器2は、そのアプリケーションプログラムにしたがってICカードチップ6に暗号演算を実行させるとき、前記コマンドCMD50を発行してATR情報を読み込み、読み込んだATR情報が示す限界動作周波数でICカードチップ6を動作させるように、コマンドCMD54にてコントローラチップ4にICカードチップ6の動作周波数を制御させる。ICカードチップ6に対する動作周波数の制御は、例えば図8で説明したように分周器の出力選択で行うことができる。その後、ホスト機器2は、コマンドCMD52にてICコマンド(C−APDU))として暗号演算用のICカードコマンドをコントローラチップ4に書き込む。コントローラチップ6はその暗号演算用のICカードコマンド(C−APDU)をICカードチップ6に供給し、ICカードチップ6はその暗号演算用のICカードコマンド(C−APDU)を解読し、解読結果にしたがって暗号演算(処理)を行い、その演算結果に対するレスポンス(R−APDU)を返す。そのレスポンスは、ホスト機器から与えられるコマンドCMD51に応答して、コントローラチップ4を経由し、MMC1のDAT端子からホスト機器2に出力される。この動作において、ICカードチップ6による暗号演算処理は、ICカードチップ6の限界動作周波数若しくはそれに見合う高周波数に同期して高速に実行されることになる。要するに、ATR情報読み出しコマンドCMD50によりホスト機器がICカードチップ6の限界動作周波数などの設定可能な動作能力を把握し、それにしたがってホスト機器はICカードチップ6を利用する動作の性質上、暗号演算の同期クロック周波数の高速化に代表されるように、処理を効率化できる設定をICカードチップ6に対して行うことができる。これにより、ICカードチップ6による暗号演算処理に代表されるように、ホスト機器2のアプリケーションプログラムによる処理にしたがってMMC1の処理動作を高速化することができる。従来のようにホスト機器2がICカードチップ6のATR情報を読み込むためのコマンド体系が用意されていない場合には、図9の破線で囲んだコマンド処理を行うことはできず、ICカードチップ6による暗号演算処理を指定してその動作の高速化を図るという制御を行うことはできず、図9における暗号演算処理の実行期間が長くなってしまう。
図10にはホスト機器2によるATR情報を参照した別の動作例が示される。図9と同様に、ホスト機器2はアプリケーションプログラムに従ったICカードチップ6に対する動作内容に応じてICカードチップ6の動作周波数を制御する。ここでは、ホスト機器2とICカードチップ6との間でデータ転送を行うときにICカードチップ6のクロック信号周波数を高く設定する。ホスト機器2はICカードチップ6との間でデータ転送を行うとき、前記コマンドCMD50を発行してATR情報を読み込み、読み込んだATR情報が示す限界動作周波数でICカードチップ6を動作させるように、コマンドCMD54にてコントローラチップ4にICカードチップ6の動作周波数を高速化させる。これにより、ホスト機器2とICカードチップ6間の大容量のデータ転送を高速化することができる。従来のようにホスト機器2がICカードチップ6のATR情報を読み込むためのコマンド体系が用意されていない場合には、図10の破線で囲んだコマンド処理を行うことはできず、ICカードチップ6の動作周波数を高くすることはできず、ホスト機器2とICカードチップ6間のデータ転送処理に長い時間を要することになる。
図11にはホスト機器2によるATR情報を参照した別の動作例が示される。図9と同様に、ホスト機器2はアプリケーションプログラムに従ったICカードチップ6に対する動作内容に応じてICカードチップ6の動作周波数を制御する。ここでは、ICカードチップ6とフラッシュメモリチップ5との間のデータ転送を行うときにICカードチップ6のクロック信号周波数を高く設定する。ホスト機器2はICカードチップ6とフラッシュメモリチップ5との間でデータ転送を行うとき、前記コマンドCMD50を発行してATR情報を読み込み、読み込んだATR情報が示す限界動作周波数でICカードチップ6を動作させるように、コマンドCMD54にてコントローラチップ4にICカードチップ6の動作周波数を高速化させる。これにより、ICカードチップ6とフラッシュメモリチップ5との間の大容量のデータ転送を高速化することができる。従来のようにホスト機器2がICカードチップ6のATR情報を読み込むためのコマンド体系が用意されていない場合には、図10の破線で囲んだコマンド処理を行うことはできず、ICカードチップ6の動作周波数を高くすることはできず、ICカードチップ6とフラッシュメモリチップ5との間のデータ転送処理に長い時間を要することになる。
《消去単位を示す情報の読み出しコマンド》
図12には消去単位を示す情報としてフラッシュメモリチップ5に格納されているデバイスコードの読み出しコマンド(デバイスコード読み出しコマンド)の幾つかの形態が例示される。デバイスコードとはフラッシュメモリの製造メーカ毎における製品種別を示すコード情報とされる。このデバイスコードにより、当該フラッシュメモリチップ5の記憶容量及び消去単位のバイト数などが一意にわかる。
デバイスコード読み出しコマンドの第1形態は、標準メモリカードコマンドの空きコマンドコードを利用した新規コマンドCMD49とされる。デバイスコード読み出しコマンドCMD49の欄においてCMDの記載位置に対応された信号情報はCMD端子を介して入出力される信号情報であることを意味し、DATの記載位置に対応された信号情報はDAT端子を介して入出力される信号情報であることを意味する。図において一重枠内に記述された情報の供給方向はカードホストからMMC1の向きであり、二重枠内に記述された情報の供給方向はMMC1からカードホストの向きである。CMD端子にコマンドCMD49が投入されると、これに応答してレスポンスが返され、DAT端子には転送データバイト数STLに続けてフラッシュメモリチップ5のデバイスコード(フラッシュデバイスコード)が出力される。第1形態ではフラッシュメモリチップ5が1個である場合を想定する。
デバイスコード読み出しコマンドの第2の形態は、MMC1に搭載されたフラッシュメモリチップ5が複数個のメモリチップから構成されている場合を想定し、CMD49に応答するDAT端子からのデータ出力は、フラッシュメモリチップ5毎にデータバイト数STLとフラッシュデバイスコードの順次出力とされる。フラッシュメモリチップ5の個数の認識はコントローラチップ4が行い、その個数分のデータ出力を制御する。
デバイスコード読み出しコマンドの第3の形態は、MMC1に搭載されたフラッシュメモリチップ5が2枚以上の場合に、パラメータで指定された1枚のフラッシュメモリチップ5のフラッシュデバイスコードを読み出すようにしたものである。前記パラメータは何番目のフラッシュメモリチップであるかを指定する情報であり、コントローラチップ4はフラッシュメモリチップの枚数に対してパラメータで指定された番号のフラッシュメモリチップのフラッシュデバイスコードをDAT端子から出力する。第3形態は、フラッシュメモリチップ5が複数枚搭載されている場合に、一つずつ個別のフラッシュデバイスコードをリードしようとする場合に用いる意義が有る。
図13にはデバイスコード読み出しコマンドCMD49による機能を実現するための第1の実施形態が例示される。第1の実施形態では、ホスト機器2がデバイスコード読み出しコマンドCMD49を発行すると(ST10)、コントローラチップ4はフラッシュメモリチップ5にデバイスコード出力コマンドを発行し(ST11)、これによってフラッシュメモリチップ5から読み出されたフラッシュデバイスコードをデータバッファ38に蓄積し(ST12)、蓄積したフラッシュデバイスコードをホスト機器2に出力する(ST13)。F_CODEはMMC1から出力されるフラッシュデバイスコードである。
図14にはデバイスコード読み出しコマンドCMD49による機能を実現するための第2の実施形態が例示される。第2の実施形態は、MMC1のパワーオンリセット時にリセット処理でフラッシュメモリチップ5からフラッシュデバイスコードを読み出してデータバッファ38に蓄えておいて、デバイスコード読み出しコマンドCMD49を受付けたときは、フラッシュデバイスコードをデータバッファ38からホスト機器2に出力する、というものである。即ち、ホスト機器2からリセット起動コマンドCMD1が発行されると(ST14)、コントローラチップ4はこれを入力し、CPU31で解読し、FMIF32を介してフラッシュメモリチップ5にデバイスコード出力コマンドを与える(ST11)。コントローラチップ4はこれによってフラッシュメモリチップ5から読み出されたフラッシュデバイスコードをCPU31を介してデータバッファ38に格納して保持する(ST12)。その後、ホスト機器2からデバイスコード読み出しコマンドCMD49が発行されると(ST10)、コントローラチップ4はこれを入力し、CPU31で解読し、データバッファ38に格納してあるフラッシュデバイスコードをMMCIF33からホスト機器2に向けて出力する(ST13)。第2の実施形態は第1の実施形態に比べ、ホスト機器2からデバイスコード読み出しコマンドCMD49が発行されてからフラッシュデバイスコードがMMCIF33からホスト機器2に出力されるまでの待ち時間が短くなる。
図15にはデバイスコード読み出しコマンドCMD49による機能を実現するための第3の実施形態が例示される。第3の実施形態は、予めフラッシュメモリチップ5の所定メモリ領域にフラッシュデバイスコードF_CODEを格納しておき、デバイスコード読み出しコマンドCMD49を受付けたときは、フラッシュデバイスコードをリードするメモリアクセスコマンドによってフラッシュデバイスコードをフラッシュメモリチップ5から読み出してホスト機器2に出力する、というものである。即ち、フラッシュメモリチップ5にはそのユーザ領域とは別のシステム領域に、予めCIDなどの制御データやフラッシュデバイスコードF_CODEが格納されている。この領域はフラッシュメモリチップ5が個別に保有するデバイスコードの記憶領域とは別のメモリ領域とされる。したがって、フラッシュメモリチップ5が複数個ある場合には、全てのフラッシュメモリチップのデバイスコードが一つのフラッシュメモリチップの前記所定領域に代表的に格納されることになる。ホスト機器2からデバイスコード読み出しコマンドCMD49が発行されると(ST10)、コントローラチップ4はこれを入力し、CPU31で解読し、FMIF32を介してフラッシュメモリチップ5にデバイスコードを読み出すためのメモリアクセスコマンドを与え(ST15)、これによってリードしたフラッシュデバイスコードをデータバッファ38に格納する(ST16)。そして、CPU31はフラッシュデバイスコードをデータバッファ38からMMCIF33を介してホスト機器2に向けて出力する(ST13)。第3の実施形態は、第1の実施形態に比べれば、ホスト機器2からデバイスコード読み出しコマンドCMD49が発行されてからフラッシュデバイスコードがMMCIF33からホスト機器2に出力されるまでの待ち時間が短くなるが、その待ち時間は第2の実施形態よりも長い。
尚、図示はしないが、図15の例においてフラッシュメモリチップ5からデータバッファ38へのフラッシュデバイスコードの読み出しをCMD1による初期化コマンドで行い、その後、図14の場合と同様にコマンドCMD49に応答して、フラッシュデバイスコードをデータバッファ38から外部に出力するようにしてもよい。
次に、ホスト機器2によるMMC1に対するデータ書き込み動作について説明する。フラッシュデバイスコードの利用形態について説明する前に、フラッシュメモリチップの消去単位の違いにより書き込みコマンド処理による指示内容に応じて消去回数や書き込み処理時間に相違を生ずることについて説明する。
MMC1に対してデータを連続的に書き込むマルチライトを指示するとき、ホスト機器2は、コマンドCMD23にて512バイト単位の書き込みデータ数を設定し、その後コマンドCMD25及び書き込みデータを供給して書込み動作の開始を指示する。したがって、指定される書込みデータ数と消去単位との関係によって、消去回数に相違を生ずる。例えば、1回の書き込みコマンドで1キロバイト(KB)のデータを転送する場合に、消去単位2KBのAND型フラッシュメモリに2KBのデータを書き込む場合には合計2回の書込コマンドが発行され、1消去単位に対して2回消去が必要になる。消去単位4キロバイト(KB)のAG−AND型フラッシュメモリに4KBのデータを書き込む場合には合計4回の書込コマンドが発行され、1消去単位に対して4回消去が必要になる。同様に、消去単位16キロバイト(KB)のNAND型フラッシュメモリに16KBのデータを書き込む場合には合計16回の書込コマンドが発行され、1消去単位に対して16回消去が必要になる。
例えば消去単位2KBのフラッシュメモリを搭載したMMC1に1コマンドで1KBのデータ転送を行なって合計2KBのデータを書き込む場合、図16に示されるように、ホスト機器から書き込みコマンドCMD25と512バイト単位の書込みデータData0,Data1が供給されると(ST20)、データバッファにその転送データData0,Data1(512B×2)を取込む(ST21)。書き込みを行なう論理アドレスに対応する有効な物理アドレスが存在する場合には、その論理アドレスを割当てる新たな物理アドレスを検索し、検索された新たな書き込み先物理アドレスのブロックを消去する(ST22)。消去された書き込み先物理アドレスには、データバッファ内の1KBの書込みデータData0,Data1と、書き込み対象論理アドレスが割当てられていた元の物理アドレスの残りの1KBのデータData2’、Data3’とを書き込む(ST23)。次に、図17に示されるように、ホスト機器から書き込みコマンドCMD25と残りの512バイト単位の書込みデータData2,Data3が供給されると(ST24)、データバッファにその転送データData2,Data3(512B×2)を取込む(ST25)。書き込みを行なう論理アドレスに対応する有効な物理アドレスが存在する場合には、その論理アドレスを割当てる新たな物理アドレスを検索し、検索された新たな書き込み先物理アドレスのブロックを消去する(ST26)。消去された書き込み先物理アドレスには、データバッファ内の1KBの書込みデータData2,Data3と、書き込み対象論理アドレスが割当てられていた元の物理アドレスの残りの1KBのデータData0、Data1とを書き込む(ST27)。このように、消去単位2KBのフラッシュメモリに対しては1書き込みコマンドによる新たな書き込みデータが1KBの場合には2ブロックの消去が必要になる。
また、1回の書き込みコマンドの転送データ数によって書き込み時間にも差を生ずる。例えば図18に例示されるように、1回の書き込みコマンドで1KBの書き込みデータを転送して合計16KBの書き込みを行なう場合と、1回の書き込みコマンドで2KBの書き込みデータを転送して合計16KBの書き込みを行なう場合とを比較すると、消去単位に拘わらず512バイト単位のデータ転送に要する合計時間はtdtr×32のように一定になるが、フラッシュメモリに対する消去及び書き込み処理に要する時間に差異を生ずる。消去単位2KBのフラッシュメモリで合計16KBの書き込みを行なうには、1回の書き込みコマンド毎に2KBの書き込みデータを転送するのが最も効率的である。
このように、フラッシュメモリチップの消去単位の違いにより書き込みコマンド処理による指示内容に応じて消去回数や書き込み処理時間に相違を生ずる。これに鑑みれば、ホスト機器がフラッシュメモリの消去単位を把握して書き込みデータを転送すれば、1消去単位に対する消去回数を減らし、また、書き込み処理時間が無駄に長くなることを抑止することが可能になる。ホスト機器2は、前記デバイスコード読み出しコマンドCMD49によって読み出したフラッシュデバイスコードからフラッシュメモリチップ5の消去単位を把握する。
図19にはホスト機器2がフラッシュデバイスコードからフラッシュメモリチップ5の消去単位を把握して書込みデータの転送数を最適化する動作例が示される。消去単位2KBのフラッシュメモリチップ5に対して512B単位で書き込みを行なう場合には書き込みコマンドの発行と消去及び書き込み動作を4回繰り返すことが必要になる。これに対し、ホスト機器2は、デバイスコード読み出しコマンドCMD49によって読み出したフラッシュデバイスコードからフラッシュメモリチップ5の消去単位を把握すれば、消去単位2KBのフラッシュメモリチップ5の場合には2KB単位で書き込みを行なえば、ホスト機器2からの書き込みコマンドの発行とフラッシュメモリチップ5での消去及び書き込み動作を1回で完了できることを把握し、それにしたがって、512バイトの書込みデータを4個転送して、2KBの書き込み1回で書き込み処理を完了する。
図20には消去単位2KBのフラッシュメモリチップ5を搭載したMMC1に1コマンドで2KBのデータ転送を行なって合計2KBのデータを書き込む動作が示される。この書き込み動作の前にホスト機器2はコマンドCMD49にてMMC1に搭載されたフラッシュメモリチップ5の消去単位が2KBであることを把握している。
ホスト機器2から書き込みコマンドCMD25と2KBバイト単位の書込みデータData0,Data1、Data2,Data3が供給されると(ST30)、データバッファ38にその転送データData0,Data1,Data2,Data3(512B×4)を取込む(ST31)。書き込みを行なう論理アドレスに対応する有効な物理アドレスが存在する場合には、その論理アドレスを割当てる新たな物理アドレスを検索し、検索された新たな書き込み先物理アドレスのブロックを消去する(ST32)。消去された書き込み先物理アドレスには、データバッファ内の2KBの書込みデータData0,Data1、Data2,Data3を書き込む(ST33)。これで書き込み処理を完了する。
図21には読み出したデバイスコードも基づく最適書き換え単位の解析機能をコントローラチップ4が有する場合の例を示す。コントローラチップ4は、ホスト機器2から最適書き換え単位読み出しコマンドCMD48が供給されると(ST40)、そのコマンドCMD48をCPU31でデコードし、フラッシュメモリチップ5にフラッシュデバイスコードの読み出しを指示(ST41)する。コントローラチップ4はフラッシュメモリチップ5から読み出されたフラッシュデバイスコードから、消去単位を取得し、最適な書き換え単位を解析する。例えば、デバイスが消去単位2KBのフラッシュメモリチップ5の場合には最適書き換え単位は2KBである。解析結果は2KBのような値であってもよいし、512Bをデータ単位とするデータ数、例えば4であってもよい。この解析結果はデータバッファ38に保持される(ST42)。その後、CPU31はデータバッファ38に保持した最適書き換え単位情報をホスト機器2に出力する。ホスト機器2はその最適書き換え単位情報を直接参照して、1回の書き込みコマンドに付随させるデータ数を決定して、MMC1に書き込みコマンドを発行する。例えば、図22の例では、F_CNTが最適書き換え単位情報であり値4とされる。この値4は、512B×4を意味し、書き込みコマンドCMD25に続く書き込みデータは、512BのDin512Bが4単位とされ、合計2KBとされ、消去単位2KBのフラッシュメモリチップ5にとって消去及び書き込み処理を最も効率的に行なうことができる。
図23にはデバイスコードをフラッシュメモリチップ5の周波数設定に用いる例が示される。ホスト機器2からデバイスコード読み出しコマンドCMD49が発行され(ST10)、それに応答するフラッシュデバイスコードF_CODEがホスト機器2に出力されると(ST13)、ホスト機器2はフラッシュデバイスコードからフラッシュメモリチップ5の動作限界周波数を算出し(ST50)、フラッシュメモリチップ5の動作周波数を設定するためのコマンドCMD54を発行する(ST51)。コントローラチップ4はそのコマンドCMD54を受取ると、CLK2CNT36によって、CPU31、DBUF38、フラッシュメモリチップ5の動作周波数を制御する。図8の説明ではCLK2CNT36によってICカードチップ6の動作周波数の設定を行なったが、ここでは、CLK2CNT36は、CLK0GEN34で生成されるクロックを分周する分周器DIV1,DIV2と、前記分周器DIV1,DIV2の出力を選択するクロックセレクタCLKSELを有し、例えばフラッシュメモリチップ5の最高動作周波数を10MHz(メガ・ヘルツ)とすると、分周器DIV1の出力が10MHz、分周器DIV2の出力が1MHzとされる。クロックセレクタCLKSELによる出力の選択はコマンドCMD54で指定される。ホスト機器2はリードしたフラッシュデバイスコードを参照し、そこから把握できる最高動作周波数でフラッシュメモリチップ5を動作させたいときはコマンドVCMD54にて分周器DIV1の出力を選択させ、デバイスコードから把握できる最高動作周波数でICカードチップを動作させたくないときはコマンドCMD54にて分周器DIV2の出力を選択させる。尚、DBUF38はシンクロナスDRAMのようなクロック同期動作されるので、フラッシュメモリチップ5やCPU31の動作周波数に合わせてその動作クロック周波数も制御されるようになっている。
図8の場合もそうであるが、代表的に2個が示された分周器は可変分周器に変更し、コマンドによって分周比を任意にもしくは多段階でプログラマブルに可変可能に制御できるようにしてもよい。
特に図示はしないが、動作限界周波数読み出しコマンドのような所定のコマンドに応答して、コントローラチップ4がフラッシュメモリチップ5からフラッシュデバイスコードF_CODEを読み込み、読み込んだフラッシュデバイスコードからフラッシュメモリチップ5の動作限界周波数を算出し、算出した動作限界周波数をホスト機器2に出力するようにしてもよい。ホスト機器2が、その動作限界周波数に基づいてフラッシュメモリチップ5などの動作周波数を設定するためのコマンドCMD54を発行すると、コントローラチップ4はそのコマンドCMD54に応答して、前記CLK2CNT36によって、CPU31、DBUF38、フラッシュメモリチップ5の動作周波数を制御する。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、記憶装置はMMCに限定されず、その他のメモリカード規格の種種の記憶装置に広く適用する事ができる。したがって、コマンドコード、コマンドフォーマット、データ通信プロトコルなどはそのカード規格に従って種々変更可能である。また、インタフェースコントローラ、セキュリティコントローラ、不揮発性メモリは夫々別チップであることに限定されず、例えば、インタフェースコントローラと不揮発性メモリメモリを1チップにしたり、全てを1チップにしたりすることも可能である。また、セキュリティコントローラはICカードマイコンに限定されず、将来開発され或いは現に存在する、セキュリティ機能を有する回路モジュールであればよい。
本発明は、フラッシュメモリチップ、ICカード用マイクロコンピュータチップ及びコントローラチップを搭載したメモリカードなどに好適である。

Claims (18)

  1. インタフェースコントローラ、書き換え可能な不揮発性メモリ及びデータのセキュリティ処理を行なうセキュリティコントローラを備え、
    前記インタフェースコントローラは、セキュリティコントローラへのリセット指示に応答してセキュリティコントローラが出力するリセット応答情報と、前記不揮発性メモリの記憶領域の初期化単位を示す情報の少なくとも一方の情報を、外部から前記インタフェースコントローラに与えられる所定の第1のコマンドに応答して外部に出力可能である、記憶装置。
  2. 前記インタフェースコントローラは、外部から与えられる第2のコマンドに応答して当該第2のコマンドに含まれるセキュリティ処理用情報を抜き出してセキュリティコントローラに与え、外部から与えられる第3のコマンドに応答して前記セキュリティコントローラによるセキュリティ処理結果を外部に出力する、請求項1記載の記憶装置。
  3. 前記インタフェースコントローラは、前記記憶装置の初期化コマンドに応答して前記少なくとも一方の情報をラッチする揮発性記憶回路を有し、前記所定の第1のコマンドに応答して前記記憶回路が保有する前記一方の情報をメモリカードの外部に出力する、請求項1記載の記憶装置。
  4. 前記揮発性記憶回路にラッチする前記少なくとも一方の情報は前記不揮発性メモリから読み出される、請求項3記載の記憶装置。
  5. 前記所定の第1のコマンドは前記記憶装置の初期化コマンドとは異なるコマンドコードを有する、請求項1記載の記憶装置。
  6. 前記所定の第1のコマンドは前記記憶装置の初期化コマンドであり、
    前記インタフェースコントローラは、初期化処理のレスポンスに続けて前記少なくとも一方の情報を外部に出力する、請求項1記載の記憶装置。
  7. 前記所定の第1のコマンドは前記インタフェースコントローラが保有する所定のレジスタに対するリードコマンドであり、
    前記インタフェースコントローラは、前記レジスタが保有する情報の出力に続けて、又はレジスタの予約領域に割当てて前記少なくとも一方の情報を外部に出力する、請求項1記載の記憶装置。
  8. 前記リセット応答情報は、前記セキュリティコントローラの動作限界周波数及びヒストリカルバイト情報を含む、請求項1記載の記憶装置。
  9. 前記記憶領域の初期化単位を示す情報は、不揮発性メモリの種別を示すデバイスコード、又は前記デバイスコードに基づいて生成された初期化単位に応ずるデータ数情報である、請求項1記載のメ記憶装置。
  10. 前記インタフェースコントローラは周波数を設定するコマンドに応答してセキュリティコントローラに与えるクロック信号の周波数を変更可能である、請求項1記載の記憶装置。
  11. 請求項1記載の記憶装置が装着可能にされるデータ処理装置であって、前記リセット応答情報を出力させる前記所定の第1のコマンドを前記記憶装置に出力し、これに応答して前記記憶装置から出力されるリセット応答情報を入力し、入力したリセット応答情報を参照して、前記セキュリティコントローラの動作周波数の設定を変更可能である、データ処理装置。
  12. 請求項1記載の記憶装置が装着可能にされるデータ処理装置であって、前記記憶領域の初期化単位を示す情報を出力させる前記所定の第1のコマンドを前記記憶装置に出力し、これに応答して記憶装置から出力される前記記憶領域の初期化単位を示す情報を入力し、入力した前記初期化単位を示す情報に基づいて、前記記憶装置への書込みデータのデータ転送数を前記初期化単位毎とする、データ処理装置。
  13. インタフェースコントローラ及び書き換え可能な不揮発性メモリを備え、
    前記インタフェースコントローラは、前記不揮発性メモリの記憶領域の初期化単位を示す情報を、外部から前記インタフェースコントローラに与えられる所定のコマンドに応答して外部に出力可能である、記憶装置。
  14. 前記所定のコマンドは記憶装置の初期化コマンドであり、
    前記インタフェースコントローラは、初期化処理のレスポンスに続けて前記初期化単位を示す情報を外部に出力する、請求項13記載の記憶装置。
  15. 前記所定のコマンドは前記インタフェースコントローラが保有する所定のレジスタに対するリードコマンドであり、
    前記インタフェースコントローラは、前記レジスタが保有する情報の出力に続けて、又はレジスタの予約領域に割当てて前記初期化単位を示す情報を外部に出力する、請求項13記載の記憶装置。
  16. 前記初期化単位を示す情報は、不揮発性メモリの種別を示すデバイスコード、又は前記デバイスコードに基づいて生成された記憶領域の初期化単位に応ずるデータ数情報である、請求項13記載の記憶装置。
  17. 前記インタフェースコントローラは、前記不揮発性メモリからその種別を示すデバイスコードを取得し、取得したデバイスコードに基づいて前記不揮発性メモリの動作限界周波数を取得し、前記所定のコマンドに応答して動作限界周波数を外部に出力する、請求項13記載の記憶装置。
  18. 前記インタフェースコントローラは周波数を設定するコマンドに応答して不揮発性メモリに与えるクロック信号の周波数を変更可能である、請求項17記載の記憶装置。
JP2006510172A 2004-02-20 2005-01-19 記憶装置及びデータ処理装置 Withdrawn JPWO2005081180A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004043945 2004-02-20
JP2004043945 2004-02-20
PCT/JP2005/000588 WO2005081180A1 (ja) 2004-02-20 2005-01-19 記憶装置及びデータ処理装置

Publications (1)

Publication Number Publication Date
JPWO2005081180A1 true JPWO2005081180A1 (ja) 2007-08-02

Family

ID=34858031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006510172A Withdrawn JPWO2005081180A1 (ja) 2004-02-20 2005-01-19 記憶装置及びデータ処理装置

Country Status (6)

Country Link
US (1) US20050185463A1 (ja)
JP (1) JPWO2005081180A1 (ja)
KR (1) KR20060132702A (ja)
CN (1) CN1922616A (ja)
TW (1) TW200604810A (ja)
WO (1) WO2005081180A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
WO2007105926A1 (en) * 2006-03-16 2007-09-20 Ktfreetel Co., Ltd. Ic chip of supporting large size memory and method thereof
US7404026B2 (en) * 2006-04-10 2008-07-22 Spansion Llc Multi media card with high storage capacity
US8255628B2 (en) * 2006-07-13 2012-08-28 International Business Machines Corporation Structure for multi-level memory architecture with data prioritization
US7496711B2 (en) * 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US7707379B2 (en) * 2006-07-13 2010-04-27 International Business Machines Corporation Dynamic latency map for memory optimization
US8607070B2 (en) * 2006-12-20 2013-12-10 Kingston Technology Corporation Secure storage system and method of use
US7761633B2 (en) * 2007-01-29 2010-07-20 Microsemi Corp. - Analog Mixed Signal Group Ltd. Addressable serial peripheral interface
US8499168B2 (en) * 2007-05-09 2013-07-30 Kingston Technology Corporation Secure and scalable solid state disk system
US8527781B2 (en) * 2007-05-09 2013-09-03 Kingston Technology Corporation Secure and scalable solid state disk system
KR101555637B1 (ko) * 2009-03-27 2015-09-24 삼성전자주식회사 스마트 카드
US8200864B1 (en) * 2010-03-02 2012-06-12 Amazon Technologies, Inc. Pre-defined multiblock transfers
CN103009816B (zh) * 2011-09-20 2015-08-19 珠海天威技术开发有限公司 耗材芯片及对其重写的重写器、重写方法
US20130151755A1 (en) 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
JP5481464B2 (ja) * 2011-12-13 2014-04-23 株式会社東芝 通信媒体及び通信媒体処理装置
KR101978981B1 (ko) 2012-09-14 2019-05-16 삼성전자주식회사 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법
US9690650B2 (en) * 2013-03-11 2017-06-27 Macronix International Co., Ltd. Storage scheme for built-in ECC operations
US9490653B2 (en) 2013-07-23 2016-11-08 Qualcomm Incorporated Systems and methods for enabling a universal back-cover wireless charging solution
KR102145420B1 (ko) 2013-07-25 2020-08-18 삼성전자주식회사 데이터 전송 속도를 변경하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
EP3174062A1 (en) * 2015-11-26 2017-05-31 Gemalto Sa Electronic device with memory erased by page
US10904163B2 (en) * 2018-03-28 2021-01-26 Lumentum Operations Llc Tunneling data to a data-path chip via a microcontroller unit (MCU)
JP2019215662A (ja) * 2018-06-12 2019-12-19 株式会社日立製作所 不揮発性メモリデバイス、及びインターフェース設定方法
CN110336592B (zh) * 2019-06-28 2021-03-16 飞天诚信科技股份有限公司 适用蓝牙读卡器的数据传输方法、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134446A (ja) * 1997-10-31 1999-05-21 Olympus Optical Co Ltd 情報記録再生装置
JP2001101362A (ja) * 1999-09-30 2001-04-13 Dainippon Printing Co Ltd Icカードシステム
JP4185680B2 (ja) * 2001-07-09 2008-11-26 株式会社ルネサステクノロジ 記憶装置
JP3822081B2 (ja) * 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置

Also Published As

Publication number Publication date
US20050185463A1 (en) 2005-08-25
KR20060132702A (ko) 2006-12-21
WO2005081180A1 (ja) 2005-09-01
CN1922616A (zh) 2007-02-28
TW200604810A (en) 2006-02-01

Similar Documents

Publication Publication Date Title
JPWO2005081180A1 (ja) 記憶装置及びデータ処理装置
US11789521B2 (en) Card and host apparatus
KR100887083B1 (ko) Ic 모듈 및 휴대 전화
US7483329B2 (en) Flash card and controller with integrated voltage converter for attachment to a bus that can operate at either of two power-supply voltages
US7676640B2 (en) Flash memory controller controlling various flash memory cells
KR101223986B1 (ko) 복수 개의 인터페이스를 지원하는 스마트 카드 및 이를포함하는 스마트 카드 시스템
US20040064612A1 (en) Method and system for using a memory card protocol inside a bus protocol
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
KR100707308B1 (ko) 엠엠씨 인터페이스를 갖는 플래시 메모리 장치 및 그것을포함한 메모리 시스템
JP4588427B2 (ja) メモリシステムおよびホストとメモリカードとの間のデータ伝送速度設定方法
JP2006236200A (ja) カード状記憶装置とそのホスト装置
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
EP2775461B1 (en) Smart card, electronic device and portable electronic device
US20090177921A1 (en) Portable electronic device and control method thereof
KR100884239B1 (ko) 메모리 카드 시스템 및 그것의 백그라운드 정보 전송 방법
JP2004139244A (ja) Icカード及びicカードプログラム
KR100399603B1 (ko) 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
JP5932588B2 (ja) Icカード、携帯可能電子装置、及びicカード処理装置
KR100478963B1 (ko) 디스플레이 스마트 카드 및 그 제어장치
JP2008123450A (ja) 記録媒体及びメモリアクセス可能な電子機器
JP2007122241A (ja) メモリカードコントローラ及びメモリカード
JPH02220189A (ja) 携帯用icカード端末装置
KR102020674B1 (ko) Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법
JP2008243017A (ja) Icカード

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090224

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090428

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090513