CN1922616A - 存储装置和数据处理装置 - Google Patents

存储装置和数据处理装置 Download PDF

Info

Publication number
CN1922616A
CN1922616A CNA200580005441XA CN200580005441A CN1922616A CN 1922616 A CN1922616 A CN 1922616A CN A200580005441X A CNA200580005441X A CN A200580005441XA CN 200580005441 A CN200580005441 A CN 200580005441A CN 1922616 A CN1922616 A CN 1922616A
Authority
CN
China
Prior art keywords
information
card
data
chip
order
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
CNA200580005441XA
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 CN1922616A publication Critical patent/CN1922616A/zh
Pending 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

Abstract

一种存储装置,包括卡控制器(4),可重写非易失性存储器(5)和IC卡芯片(6)。该卡控制器能够响应从外部提供的预定命令,向外部输出响应对IC卡芯片的复位请求而从IC卡芯片输出的对复位信息的应答(ATR)、或表示闪存的擦除单位的信息。一种卡主机设备能够参照对复位信息的应答,请求该卡控制器改变IC卡芯片的工作速度、工作频率等。卡主机设备在将存储信息重写到非易失性存储器时,能够参照表示初始化单位的信息,并在向其提出写入请求之前传输数量与初始化单位相对应的写入数据。

Description

存储装置和数据处理装置
技术领域
本发明涉及一种具有非易失性信息存储功能的存储装置、对所存储的信息具有安全功能以及非易失性信息存储功能的存储装置、和诸如存储装置被插入其中的主机之类的数据存储装置。例如,本发明涉及一种可有效地应用于具有闪存芯片、IC卡的微机芯片和控制器芯片的存储卡中的技术。
背景技术
非专利文献1中公开了在IC卡设备之间的接口端和传输协议。此参考文献包括ATR(对复位的应答)等的说明。按照此参考文献,ATR表示在复位处理之后作为对复位处理的响应而从IC卡发送到接口设备的通信协议的值。非专利文献2公开了一种用于在IC卡上交换信息的命令标准。
专利文献1示出了包括闪存芯片、能够运行安全程序的IC卡芯片和响应来自主机设备的请求来控制对闪存芯片和IC卡芯片的存取以及其它处理的控制器芯片的存储卡。控制器芯片能够响应来自主机设备的命令来存取闪存芯片和IC卡芯片。
非专利文献No.1:ISO/IEC 7816-3第二版(1997-12-15)
非专利文献No.2:ISO/IEC 7816-4第一版(1995-9-1)
专利文献No.1:JP-A-2003-22216(图1)
发明内容
发明所要解决的问题
发明人研究了存储卡与卡主机设备之间的通信能力。研究的第一方面涉及具有由IC卡芯片提供的安全功能、并用在移动应用中的闪存卡。
通常,在IC卡与卡主机设备之间的IC卡复位时,卡主机设备直接读取从IC卡输出的ATR数据,作为对复位处理的应答。然后,卡主机设备根据ATR数据确定必要的通信设置,并在所确定的通信条件下按照非专利文献2中所示的标准执行命令处理。一些卡主机应用使用依包含在ATR数据中的每个IC卡的OS(操作系统)而改变的特定值。特别地,在使用以移动终端为目的的IC卡的应用的情况下,需要控制由IC卡执行的处理,使得当IC卡需要高速处理时增加通信速度或计算速度,并使得当不需要高速处理时降低功耗以延长电池使用寿命。
但是,当存储卡内含有由IC卡提供的安全功能时,优选的是,控制器芯片不深入地涉及由IC卡执行的处理,以便维持足够的安全程度。因此,对IC卡的复位和通信设置的处理是通过控制器执行的,但是完成通信设置之后的卡主机设备与IC卡芯片之间的数据交换是在新的卡命令(例如CMD51和CMD52)被提供给控制器之后执行。这些新的卡命令包括要求满足ISO 7816的命令处理的IC卡命令和其它的命令。已经接收新的存储卡命令CMD52的卡控制器将包含在命令CMD52中作为安全处理数据的IC卡命令提供给IC卡芯片。然后,IC卡响应该IC卡命令而输出应答数据或其它数据,已经接收到存储器命令CMD51的卡控制器将该应答数据提供给卡主机设备。
在此情况下,不能读取传统技术中已经在卡主机设备与IC卡之间直接交换的ATR数据。更具体地,通过卡控制器执行对于IC卡的复位和通信设置,而ATR数据不输出到卡主机设备。在通信设置之后不能通过新的卡命令CMD51和CMD52读出ATR数据。结果,在卡主机设备的、参照ATR数据的某些应用中,在处理过程中卡主机设备与IC卡之间出现了兼容性的问题。而且,由于卡主机设备未从具有IC卡芯片的存储卡中获得ATR数据,因此卡主机设备不能按照卡主机设备的应用以及IC卡芯片执行的处理内容来改变通信设置,例如IC卡芯片的工作频率。此问题对移动应用的变化施加了限制,结果在传统的存储卡的命令系统中产生了具有IC卡功能的存储卡与卡主机设备之间通信能力不充分的问题。
上述研究的第二方面涉及当存储卡中包含的闪存的擦除单位随存储卡的类型而改变时,取决于写入时从卡主机设备传输数据的次数的、提供给闪存的重写压力的增加以及写入传输率的降低。通常,存储卡中包含的闪存的擦除单位随存储器阵列结构的不同类型(例如AND、NAND和AG-AND)和不同的存储容量而改变。因此,存储卡的控制器考虑到擦除单位的变化来控制擦除处理,并按照来自卡主机设备的每一写入命令而传输的写入数据的数量来变化由闪存物理执行的擦除次数。例如,为了以2048位的擦除单位重写2048位,当卡主机设备以1024位的写入数据两次发出写入命令时,通过施加用于擦除的高电压所产生的压力是卡主机设备以2048位的写入数据发出一次写入命令所产生的压力的两倍。随着存储卡中包含的闪存的重写单位的增加,重写压力(擦除的次数)增加并且写入时的开销增大。这传统存储卡的命令系统中由于缺乏能够从外部识别非易失性存储器中含有的擦除单位的通信装置而导致的通信能力不充分。
本发明的一个目的是提高数据处理装置与存储装置(例如,含有诸如IC卡芯片的安全控制器或诸如闪存芯片的非易失性存储器的存储卡)之间的通信能力。
本发明的另一个目的是提供一种存储装置,例如,含有诸如IC卡芯片的安全控制器的存储卡,其中能够改变安全控制器的工作速度或功耗。
本发明的另一个目的是提供一种包含在存储卡中的非易失性存储器(例如闪存),其中能够以降低的重写压力以及较好的写入数据传输效率,按照非易失性存储器的存储区域的初始化单位从外部实现存储器的初始化。
将在下面的说明书和附图中说明本发明的上述和其它的目的以及新颖的特点。
解决问题的手段
下面主要说明按照本发明所述的典型方面。
『1』一种存储装置,例如存储卡,包括接口控制器、可重写的非易失性存储器和执行数据安全处理的安全控制器。接口控制器能够响应从外部提供给接口控制器的预定的第一命令,至少向外部输出响应提供给安全控制器的复位请求而输出对从安全控制器输出的复位信息的应答(ATR)、或表示非易失性存储器的存储区域的初始化单位的信息(F_CODE,F_CNT)。通过响应从外部给出的命令而向外部输出复位应答信息,接收复位应答信息的数据处理装置(例如卡主机设备)能够参照复位应答信息,要求接口控制器改变安全控制器的工作速度、工作频率等。此外,通过响应从外部提供的命令而向外部输出表示初始化单位的信息,接收表示初始化单位的信息的数据处理装置(例如卡主机设备)能够参照表示初始化单位的信息,在将存储信息重写到非易失性存储器时,在向其发出写入请求之前,将数量对应于存储区域的初始化单位的写入数据传输到存储装置。
在按照本发明的存储装置的具体示例中,接口控制器能够响应频率设置命令来改变提供给安全控制器的时钟信号的频率。
在按照本发明的存储装置的具体示例中,接口控制器响应从外部提供的第二命令,提取包含在第二命令中的用于安全处理的信息,将此信息提供给安全控制器,并且响应从外部提供的第三命令将从安全控制器获得的安全处理结果输出到外部。因此,接口控制器能够命令安全控制器执行安全处理,而不与安全控制器的结构相干扰。
在按照本发明的存储装置的具体示例中,接口控制器具有用于锁存信息的易失性存储电路,该信息至少是复位应答信息或表示响应存储装置的初始化命令而初始化的单位的信息,接口控制器响应预定的第一命令将存储电路保持的该信息输出到存储装置的外部。在此情况下,最初可在非易失性存储器中存储被易失性存储电路锁存的、该至少为复位应答或表示初始化单位的信息的信息。因此如果存在多个非易失性存储器,则为了从每个非易失性存储器获得设备码等,不必访问安全控制器的内部,也不必多次访问非易失性存储器。
在按照本发明的存储装置的具体示例中,预定的第一命令具有与存储装置的初始化命令不同的命令码。在另一个示例中,当存储装置的初始化命令的命令码被分配给预定的第一命令时,在输出对初始化处理的应答之后,接口控制器将至少是复位应答信息或表示初始化单位的信息的信息输出到外部。在另一个示例中,当提供给预定寄存器(例如,卡控制器所含有的卡识别寄存器和卡属性寄存器)的读取命令的命令码被分配给预定的第一命令时,接口控制器在输出寄存器中所包含的信息或分配寄存器的保留区域之后,向外部输出至少是复位应答信息或表示初始化单位的信息的该信息。
在按照本发明的存储装置的具体示例中,复位应答信息包括安全控制器的工作极限频率和历史字节数据。表示存储区域的初始化单位的信息是表示非易失性存储器类型的设备码,或按照初始化单位基于设备码产生的数据量信息。
『2』一种数据处理装置,例如卡主机设备,其可以安装上述的存储装置,数据处理装置能够将用于输出复位应答信息的预定第一命令输出到存储装置,输入响应第一命令而从存储装置输出的复位应答信息,并通过参照该输入的复位应答信息来改变安全控制器的工作频率。通过响应从外部给出的命令将复位应答信息输出到外部,接收复位应答信息的数据处理装置通过参照复位应答信息能够命令接口控制器改变条件,例如安全控制器的工作速度、工作频率。
在例如卡主机设备的数据处理装置的另一个具体示例中,数据处理装置可以安装上述的存储装置,数据处理装置将要求输出显示存储区域的初始化单位的信息的预定第一命令输出到存储装置,输入存储装置响应第一命令而输出的表示存储区域的初始化单位的信息,并根据该输入的表示初始化单位的信息将要写入存储装置的传输数据的量设置成与初始化单位对应的值。通过响应从外部提供的命令将表示初始化单位的信息输出到外部,接收表示初始化单位的信息的数据处理装置(例如卡主机设备)能够参照表示初始化单位的信息,并在将存储信息重写到非易失性存储器时,在向其发出写入请求之前,将数量对应于存储区域的初始化单位的写入数据传输到存储装置。
『3』一种存储装置,例如存储卡,包括接口控制器和可重写的非易失性存储器。接口控制器能够响应从外部提供给接口控制器的预定命令,将表示非易失性存储器的存储区域的初始化单位的信息输出到外部。通过响应从外部提供的命令将表示初始化单位的信息输出到外部,接收表示初始化单位的信息的数据处理装置(例如卡主机设备)能够参照表示初始化单位的信息,在将存储信息重写到非易失性存储器时,在向其发出写入请求之前,将数量对应于存储区域的初始化单位的写入数据传输到存储装置。
在按照本发明的存储装置的具体示例中,在把与存储装置初始化命令的命令码相同的命令码分配给预定的命令时,在输出对初始化处理的应答之后,接口控制器将表示初始化单位的信息输出到外部。在另一个示例中,在把与提供给预定寄存器(例如,卡控制器所含有的卡识别寄存器和卡属性寄存器)的读取命令的命令码相同的命令码分配给预定的命令时,在输出寄存器中所含的信息或者分配寄存器的保留区域之后,接口控制器将表示初始化单位的信息输出到外部。
在按照本发明的存储装置的具体示例中,表示初始化单位的信息是表示非易失性存储器类型的设备码、或按照存储区域的初始化单位基于设备码产生的数据量信息。接口控制器从非易失性存储器获得显示非易失性存储器类型的设备码,根据所获得的设备码获得非易失性存储器的工作极限频率,并响应预定的命令将工作极限频率输出到外部。接口控制器能够响应频率设置命令来改变提供给非易失性存储器的时钟信号的频率。
本发明的效果
下面主要说明通过按照本发明所述的典型结构提供的优点。
由于能够将复位应答信息和表示初始化单位的信息输出到外部,所以能够提高数据处理装置(例如卡主机设备)与存储装置(例如含有诸如像IC卡芯片和闪存卡芯片的安全控制器之类的非易失性存储器的存储卡)之间的通信能力。
由于能够将复位应答信息输出到外部,所以能够改变存储装置的安全控制器(例如IC卡芯片)的工作速度和功耗,存储装置例如是含有安全控制器的存储卡。
由于能够将表示初始化单位的信息输出到外部,所以能够按照应用到包含存储卡中的存储区域的初始化单位(例如,诸如闪存的非易失性存储器的擦除单位)来降低重写压力,并控制从外部的访问,因此能够增加写入数据的传输能力。
附图说明
图1是显示作为本发明存储装置的MMC的内部结构的方块图;
图2是显示安全读取命令(CMD51)和安全写入命令(CMD52)的命令协议的示意图;
图3是显示ATR数据读取命令的几个示例的示意图;
图4是显示用于提供ATR数据读取命令CMD50功能的结构的第一示例的示意图;
图5是显示用于提供ATR数据读取命令CMD50功能的结构的第二示例的示意图;
图6是显示用于提供ATR数据读取命令CMD50功能的结构的第三示例的示意图;
图7是显示主机设备针对ATR数据执行的操作的示例的示意图;
图8是显示主机设备针对ATR数据执行的操作的另一个示例的示意图;
图9是显示主机设备针对ATR数据执行的操作的另一个示例的示意图;
图10是显示主机设备针对ATR数据执行的操作的另一个示例的示意图;
图11是显示主机设备针对ATR数据执行的操作的另一个示例的示意图;
图12是显示命令的几个示例的示意图,该命令用于读取存储在闪存芯片中的设备码作为显示擦除单位的数据;
图13是显示用于提供设备码读取命令CMD49功能的第一示例结构的示意图;
图14是显示用于提供设备码读取命令CMD49功能的第二示例结构的示意图;
图15是显示用于提供设备码读取命令CMD49功能的第三示例结构的示意图;
图16是显示第一半操作的示意图,第一半操作用于在每一个命令将1KB数据传输至MMC 1,MMC 1包括具有2KB的擦除单位的闪存,以便将总共2KB数据写入MMC 1中;
图17是显示图16所示的第二半操作的示意图;
图18是比较每一个写入命令传输1KB写入数据以便总共写入16KB数据的示例与每一个写入命令传输2KB写入数据以便总共写入16KB数据的示例的示意图;
图19是显示主机设备根据闪存设备码识别闪存的擦除单位并优化将要传输的写入数据数量的操作示例的示意图;
图20是显示用于在每一个命令将2KB数据传输至MMC 1的操作的示意图,MMC 1包括具有2KB的擦除单位的闪存以便写入总共2KB的数据;
图21是显示控制器芯片具有分析功能的示例的示意图,控制器芯片根据读取的设备码分析重写的最佳单位;
图22是显示根据重写的最佳单位的分析结果的重写操作的时序图;
图23是显示使用设备码设置闪存芯片的频率的示例的示意图。
附图标记和符号的说明
1  MMC
2  主机设备
3  MMC外部端
4   控制器芯片
5   闪存芯片
6   IC卡芯片
10  电源供应端
11  时钟输入端
12  命令输入/输出端
13  数据输入/输出端
14  接地端
20  电源供应端
21  时钟输入端
23  输入/输出端
24  接地端
31  CPU
32  闪存I/F控制电路
33  MMC I/F控制电路
34  CLK0发生器
35  VCC2控制电路
36  CLK2控制电路
37  IC卡I/F控制电路
38 数据缓冲器
具体实施方式
《MMC》
图1给出了作为本发明存储装置的多媒体卡(MultiMedia Card是由Infineon Technologies AG制造的产品的商标)的内部结构。MMC1优选地满足MMC标准。MMC 1具有安全功能,用于根据符合由与MMC 1连接、作为数据处理装置的主机设备(或卡主机设备)发布的MMC标准的存储卡命令执行用于安全数据保护和个人识别的加密操作。
主机设备2例如包括便携式电话、便携式数据终端(PDA)、个人计算机、音乐再现(和记录)装置、相机、摄像机、自动收款售货机、街角终端、结算终端等。
MMC 1包括MMC外部端3、作为接口控制器的控制器芯片4、作为非易失性存储器的闪存芯片(FLASH)5、和作为安全控制器的IC卡芯片(MCU)6。闪存芯片5是使用非易失性半导体存储器作为存储介质的存储器芯片,其能够根据闪存命令读取和写入数据。MMC外部端3由例如电源(VCC2)供应端10、时钟(CLK1)输入端11、命令(CMD)输入/输出端12、数据(DAT)输入/输出端13、接地(GND)端14、和片选(CS)端15这7个端子构成,以便与外部主机设备2交换信息。MMC标准规定了用于MMC1的两种类型的操作模式:MMC模式和SPI模式。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卡命令发给IC卡芯片6,来执行对于外部主机设备2所要求的安全处理而言必须的计算。
IC卡芯片6包括CPU(微机)、用于存储数据(包括程序)的ROM(只读存储器)、RAM(随机存取存储器)、EEPROM(电可擦除可编程ROM)、构成用于执行加密和解密处理的加密器的加密协处理器、和用于将数据发送到外部并从外部接收数据的串行接口,所有这些附图中没有具体显示的组件都通过总线彼此连接。
加密协处理器响应从主机设备2给出的命令执行安全处理。也可以根据程序(软件)而不使用加密协处理器(硬件)通过CPU来执行安全处理。例如,当数据被写入IC卡芯片6的存储区域时、或者当从IC卡芯片6的存储区域读取数据时,执行安全处理。
闪存芯片5具有非易失性存储器件。通常,IC卡芯片6的EEPROM的存储容量小于闪存芯片5的存储容量。但是,EEPROM的存储容量也可以等于或大于闪存芯片5的存储容量。
优选的是,由已经经作为安全评价标准国际准则的ISO/IEC15408的评价/认证组织认证过的产品构成IC卡芯片6。通常,当在实际电子结算服务中使用具有运行安全处理功能的IC卡时,该IC卡需要从ISO/IEC 15408的评价/认证组织接收评价和认证。当通过将运行安全处理的功能添加到MMC来生产出MMC 1并将其用于实际的电子结算服务等时,类似地要求MMC 1从ISO/IEC 15408的评价/认证组织接收评价和认证。按照本发明,MMC 1通过内置经被评价和认证组织认证的IC卡芯片6而获得安全功能,并通过IC卡芯片6执行安全处理。因此,MMC 1容易满足基于ISO/IEC 15408的安全评价标准,对于开发额外提供安全功能的MMC而言,需要较短的周期。但是,对没有经过ISO/IEC 15408的评价和认证组织认证过的IC卡芯片的使用并不排除在本发明的范围之外。可以使用任何IC卡芯片,只要它们具有由IC卡芯片提供的服务所要求的级别的安全功能即可。
MMC 1优选地具有满足MMC标准的外部接口。MMC 1需要通过一种类型的外部接口来接收要求执行安全处理的命令和标准的存储卡命令(要求存取闪存芯片的命令)。因此,控制器芯片4确定MMC1接收到标准存储卡命令和要求执行安全处理的命令中的哪一个,并为接收到的命令选择适当的芯片来进行存取,使得能够按照命令类型分开地处理该命令。在此示例中,当控制器芯片4接收到标准存储卡命令时,控制器芯片4选择闪存芯片5,并向闪存芯片5发出闪存命令,以便读取和写入主机数据。当控制器芯片4接收到要求执行安全处理的命令时,控制器芯片4选择IC卡芯片6,并向IC卡芯片6发出IC卡命令,以便执行安全处理。而且,控制器芯片具有响应复位请求而将已经从IC卡芯片输出的ATR数据输出到外部的功能,并具有将表示闪存芯片5的擦除单位的信息输出到外部的功能,以便增强与主机设备2的通信能力。但是,除了符合MMC标准的外部接口以外的外部接口并不排除在本发明的范围之外。可以使用任何类型的目前可获得的或将来可获得的外部接口。
除了接地端24之外的IC卡芯片6的外部端,即,电源供应端20、时钟输入端21、复位输入端22和输入/输出端23与控制器芯片4连接。
控制器芯片4通过电源供应端10和时钟输入端11控制供应到IC卡芯片6的电源和时钟。在此实施例中,当主机设备2不要求安全处理时,控制器芯片4能够停止向IC卡芯片6供应电源和时钟,由此降低了MMC 1的功耗。
在没有供应电源的IC卡芯片6接收到IC卡命令之前,IC卡芯片6需要接收电源供应并复位。也就是说,控制器芯片4具有在MMC1从主机设备2接收到要求执行安全处理的命令时通过电源供应端启动对IC卡芯片6的电源供应的功能。此外,控制器芯片4具有在MMC1从主机设备2接收到要求执行安全处理的命令时通过复位输入端对IC卡芯片6进行复位的功能。按照此功能,控制器芯片4能够中断对IC卡芯片6的电源供应,直到接收到要求执行安全处理的命令为止,这有助于降低MMC 1的功耗。
控制器芯片4具有在MMC 1内产生时钟信号并通过IC卡芯片6的时钟输入端将时钟信号供应到IC卡芯片6的功能,以便控制IC卡芯片6的频率、供应启动定时和供应停止定时。
控制器芯片4具有CPU 31、闪存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通过经VCC1端10和GND1端14、14而从主机设备2供应的电源进行工作。MMC I/F控制电路33与CS端15、CMD端12、CLK1 11和DAT端13连接,以便作为控制用于通过这些端子在MMC 1与主机设备2之间交换数据的接口的逻辑电路。
CPU 31与MMC I/F控制电路33连接,以便控制MMC I/F控制电路33。当MMC I/F控制电路33通过CMD端12从主机设备2接收到存储卡命令时,MMC I/F控制电路33通过CMD端12向主机设备2发送应答,以便向主机设备2提供关于是否已经成功地接收到命令的信息。CPU 31解释接收的存储卡命令,并按照命令的内容执行处理。当根据命令的内容必须通过DAT端13向主机设备2发送数据或从主机设备2接收数据时,CUP 31向MMC I/F控制电路33发送数据或从MMC I/F控制电路33获得数据。CLK0发生器34与CPU 31连接,以便提供用以操作CPU 31的驱动时钟。
闪存芯片5是具有非易失性半导体存储器作为存储介质的存储器芯片。闪存芯片5通过经VCC1端10与GND端14从主机设备2供应的电源进行工作。闪存芯片5具有用于将输入的数据存储在非易失性半导体存储器中的写入功能,以及根据从外部给出的闪存命令将存储在此存储器中的数据输出到外部的读取功能。闪存I/F控制电路32是逻辑电路,用于将闪存命令发送到闪存芯片5并根据这些命令传输所输入或输出的数据。CPU 31控制闪存I/F控制电路32,并命令闪存芯片5来执行数据写入功能或数据读取功能。当必须将从主机设备2接收的数据写入到闪存芯片5或者将闪存芯片5中存储的数据发送到主机设备2时,CPU 31控制闪存I/F控制电路32与MMC I/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与CPU 31连接,使得CPU 31能够控制VCC2端20的电源的启动和停止。当不使用IC卡芯片6时,CPU 31停止向VCC2端20供应电源。因此,MMC 1通过停止向IC卡芯片6供应电源能够降低其功耗。
CLK2端21是时钟信号经其输入到IC卡芯片6的端子。CLK2控制电路36是用于向CLK2端21供应时钟的电路。CLK2控制电路36根据从CLK0发生器34提供的时钟信号产生将被供应至CLK2端21的时钟信号。CLK2控制电路36与CPU 31连接,并通过CPU 31控制对CLK2端21的时钟供应的启动和停止。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。能够使用CPU 31来确定P和Q的值。当P被设置成较大的值以增加F2的值时,能够以较高的速度执行IC卡芯片6的内部处理。当Q被设置成较大的值以降低F2的值时,能够以较低的速度执行IC卡芯片6的内部处理,由此能够降低IC卡芯片6的功耗。需要将IC卡芯片6的驱动时钟频率建立在可允许的频率范围内,在该可允许的频率范围内IC卡芯片6能够以正常的条件进行工作。因此,CLK2控制电路36不将P和Q值设置为产生超出可允许频率范围的F2的值。
I/O端23是当IC卡命令输入到IC卡芯片6时以及IC卡芯片6输出IC卡应答时所使用的输入/输出端。IC卡I/F控制电路37与I/O端23连接,并通过I/O端23发送IC卡命令的信号和接收IC卡应答的信号。IC卡I/F控制电路37与CPU 31连接。CPU 31控制由IC卡I/F控制电路37执行的IC卡命令和IC卡应答的发送及接收的处理,建立将要为IC卡I/F控制电路37发送的IC卡命令数据,并从IC卡I/F控制电路37获得所接收的IC卡应答等。IC卡I/F控制电路37从CLK2控制电路36接收时钟。IC卡命令和IC卡应答与按位提供给CLK2端21的时钟信号同步,并通过I/O端23被发送和接收。RST端22是在复位IC卡芯片6时输入复位信号的端子。IC卡I/F控制电路37与RST端22连接,以便基于来自CPU 31的请求将复位信号发送至IC卡芯片6。
《标准的存储卡命令》
现在说明符合MMC标准的存储卡命令。此命令具有6字节命令字段,其中:第1个字节是命令码(前2位固定为“01”);中间的4个字节是用于指定参数的自变量;最后1个字节是CRC(循环冗余校验)。每当发布命令时,MMC向主机设备返回应答。例如,当发出例如CMD1的复位启动命令时,初始化MMC1的内部。此时,控制器芯片4向IC卡芯片6的复位端22发出复位请求。当复位端22接收复位请求时,IC卡芯片6初始化内部并向控制器芯片4输出ATR数据作为复位应答信息。ATR数据包括IC卡芯片6的工作极限频率、历史字节和其它的数据。历史字节涉及例如IC卡芯片6内安装的OS(操作系统)的版本数据以及应用程序的属性数据之类的信息。控制器芯片4参照从IC卡芯片6接收的ATR数据,确定通信设置,例如时钟CLK2的频率。当主机设备发布例如CMD17的读取命令作为下一步骤时,MMC1向主机设备返回包括对应于所接收的命令的命令索引、卡状态等的应答,并将从闪存芯片读取的数据输出到主机设备。当发布例如CMD24的写入命令时,MMC1向主机设备返回包括对应于接收到的命令的命令索引、卡状态等的应答,并将从主机设备提供的写入数据写入闪存芯片。
《安全处理命令》
通过IC卡存取命令来构成要求IC卡芯片6执行安全处理的安全处理命令。更具体地,安全处理命令主要由利用标准存储卡命令的空闲命令码的安全读取命令(CMD51)和安全写入命令(CMD52)构成。这些命令协议类似于标准存储卡命令的读取命令和写入命令。
图2显示了安全读取命令(CMD51)和安全写入命令(CMD52)的命令协议。与CMD进入位置相关的信号数据对应于通过CMD端输入和输出的信号数据。与DAT进入位置相关的信号数据对应于通过DAT端输入和输出的信号数据。在该图中,进入单线所示的框内的数据供应方向是从卡主机设备到MMC1的方向,而进入双线所示的框内的数据供应方向是从MMC1到卡主机设备的方向。在安全写入命令(CMD52)的情况下,写入数据包括传输数据STL的字节数和符合ISO 7816的IC卡命令(C-APDU)。在根据所提供命令的命令码识别CMD52之后,控制器芯片4的CPU 31从与CMD52相关的写入数据中获得字节数等于传输数据STL的字节数的IC卡命令(C-APDU),并通过ICIF 37将此IC卡命令发送至IC卡芯片6的输入/输出端23。在安全读取命令(CMD51)的情况下,读取数据包括传输数据STL的字节数和符合ISO 7816的IC卡应答(R-APDU)。IC卡应答(R-APDU)是指在通过IC卡执行安全处理之后获得的数据。更具体地,IC卡应答是响应基于先前发布的安全写入命令而提供给IC卡的IC卡命令(C-APDU)所执行的处理产生的数据,并且保持在ICIF 37的数据缓冲器中。在根据所提供命令的命令码识别CMD51之后,控制器芯片4的CPU 31将在头部具有IC卡应答(R-APDU)的传输数据字节数STL的IC卡应答(R-APDU)输出到MMC 1的外部。
在安全读取命令(CMD51)的情况下,不能从IC卡芯片6读取将要输出到MMC 1外部的ATR数据。
《ATR数据读取命令》
作为复位应答信息的ATR数据包括用于确定工作极限频率的工作时钟的时钟频率,输入/输出数据的波特率、IC卡芯片的历史字节数据,和其它的数据,如“ISO/IEC 7816-3:1997(E),6.4节,Answer-to-Reset structure”中所述。MMC1发出用于使ATR数据对于MMC1外部的设备可读的命令,作为用于增强与主机设备的通信能力的命令。
图3显示了ATR数据读取命令的几个示例。ATR数据读取命令的第一示例是利用标准存储卡命令(也简单地称作ATR数据读取命令CMD50)的空闲命令码的新命令。在ATR数据读取命令CMD50的列中,与CMD进入位置相关的信号数据对应于通过CMD端输入和输出的信号数据,而与DAT进入位置相关的信号数据对应于通过DAT端输入和输出的信号数据。在该图中,进入单线所示的框内的数据供应方向是从卡主机设备到MMC1的方向,而进入双线所示的框内的数据供应方向是从MMC1到卡主机设备的方向。当CMD50被提供给CMD端时,响应CMD50而返回应答并且在传输数据STL的字节数之后将ATR数据输出到DAT端。在ATR数据读取命令CMD50的情况下假设MMC1中含有单个IC卡芯片。
在ATR数据读取命令的第二示例中,假设MMC1中含有两个或更多个IC卡芯片。响应CMD50从每个IC卡芯片的DAT端顺序地输出数据字节数STL和ATR数据。通过控制器芯片4识别IC卡芯片6的数量。
在ATR数据读取命令的第三示例中,从两个或更多个IC卡芯片读取由参数指定的IC卡芯片的ATR数据。参数是用于指定IC卡芯片序号的数据,控制器芯片4通过DAT端针对与所有IC卡芯片6的数量,输出与由参数指定的编号对应的IC卡芯片6的ATR数据。
在ATR数据读取命令的第四示例中,给出了与现有的复位启动命令码(例如CMD1)类似的命令码。在输出对初始化处理的应答之后,控制器芯片4将传输数据的字节数STL和ATR数据输出到CMD端。
在ATR数据读取命令的第五示例中,给出了与现有的寄存器读取命令(例如CMD9)类似的命令码。在输出寄存器值或分配寄存器的保留区域之后,控制器芯片4将传输数据的字节数STL和ATR数据输出到CMD端。基于CMD9的读取目标寄存器包括具有制造商编号、卡序列号和其它数据的卡识别寄存器(CID),以及具有存取时间、卡容量和其它数据的卡标准数据寄存器(CSD)。
图4给出了提供依据ATR数据读取命令CMD50的功能的结构的第一示例。当在第一示例中接收到ATR数据读取命令CMD50时,对IC卡芯片6执行复位处理。然后,将此时从IC卡芯片6输出的ATR数据存储在数据缓冲器38中,并将存储的ATR数据输出到主机设备2。更具体地,当从主机设备2发出ATR数据读取命令CMD50时(ST1),控制器芯片4使用CPU 31输入并解码此命令,然后通过ICIF 37命令IC卡芯片6的RES端进行复位(ST2)。通过此处理,IC卡芯片6被初始化并输出ATR数据,使用CPU 31通过ICIF 37将输出的ATR数据存储在数据缓冲器38中(ST3)。存储的ATR数据通过MMCIF 33输出到主机设备2(ST4)。
图5给出了用于提供依据ATR数据读取命令CMD50的功能的结构的第二示例。按照第二示例,将在MMC 1的加电(POWER ON)复位时通过对IC卡芯片6的复位过程而输出的ATR数据存储在数据缓冲器38中,并且当接收了ATR读取命令CMD50时,将ATR数据从数据缓冲器38输出到主机设备2。更具体地,当从主机设备2发出复位启动命令CMD1时(ST5),控制器芯片4使用CPU 31输入并解码此命令,然后通过ICIF 31要求IC卡芯片6的RES端进行复位(ST2)。通过此处理,IC卡芯片6被初始化并输出ATR数据,使用CPU 31通过ICIF 37将该ATR数据存储在数据缓冲器38中并保持在数据缓冲器38中(ST3)。然后,从主机设备2发出ATR数据读取命令CMD50(ST1),控制器芯片4使用CPU 31输入并解码此命令,然后通过MMCIF 33将存储在数据缓冲器38中的ATR数据输出到主机设备2(ST4)。按照第二示例,从主机设备2发出ATR数据读取命令CMD 50的时间开始到MMCIF 33将ATR数据输出到主机设备2的时间为止的等待时间比第一示例中对应的等待时间短。
图6给出了用于提供依据ATR数据读取命令CMD50的功能的结构的第三示例。按照第三示例,预先将ATR数据存储在闪存芯片5的预定区域中,当接收了ATR读取命令CMD50时,从闪存芯片5读取ATR数据并输出到主机设备2。更具体地,例如CID的控制数据和ATR数据预先存储在闪存芯片5的用户区域之外的系统区域(MMC 1地用户不能自由使用的区域)中。当从主机设备2发出ATR数据读取命令CMD50时(ST5),控制器芯片4使用CPU 31输入并解码此命令。然后控制器芯片4通过FMIF 32读取ATR数据并将ATR数据存储在数据缓冲器38中(ST6)。之后,CPU 31通过MMCIF 33将存储在数据缓冲器38中的ATR数据输出到主机设备2(ST4)。按照第三示例,从主机设备2发出ATR数据读取命令CMD 50的时间开始到MMCIF 33将ATR数据输出到主机设备2的时间为止的等待时间比第一示例中对应的等待时间短,但是比第二示例中的长。
尽管附图中没有显示,但是可以根据CMD1的初始化命令将图6情况下的ATR数据从闪存芯片5读取到数据缓冲器38,然后类似于图5的情况地响应命令CMD50,将ATR数据从数据缓冲器38输出到外部。
图7显示了主机设备针对ATR数据执行的操作的示例。在执行了主机应用程序中的基准模块之后,主机设备2发出ATR数据读取命令CMD50(ST1)。MMC 1的控制器芯片4响应此命令将ATR数据输出到主机设备2(ST4)。主机设备2判断基于基准模块的程序读取的ATR数据是否是由期待数据指定的IC卡OS的ATR数据(ST7)。当确定ATR数据属于期待的IC卡OS时,主机设备2发出安全写入命令CMD52(ST8),要求IC卡芯片6执行预定的安全处理。例如,当主机设备2根据与IC卡OS相关的ATR数据判断加密系统被安装在IC卡芯片中并识别出该加密系统是使用椭圆曲线密码系统加密时,主机设备2使用跟在安全写入命令CMD52之后的写入数据来命令执行对应于此系统的操作(ST9)。
图8显示了主机设备针对ATR数据执行的操作的另一个示例。当主机设备2是由电池电源供电的便携式终端时,例如,考虑到节电,IC卡芯片6的工作频率优选为低。当主机设备2是可利用商用电源操作并显示余额信息的固定类型终端设备时,考虑到提高处理性能,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是使用标准存储卡命令的空闲命令码的新命令。用于控制频率的CLK2CNT 36具有用于分割CLK0GEN产生的时钟的分频器DIV1和DIV2,以及用于选择分频器DIV1和DIV2的输出的时钟选择器CLKSEL。当IC卡芯片6的最大工作频率为10MHz(兆赫兹)时,分频器DIV1和DIV2的输出分别为10MHz和1MHz。通过命令CMD54指定由时钟选择器CLKSEL输出的选择。主机设备2参照读取的ATR数据,当要求IC卡芯片工作在可从ATR数据识别的最大频率时,通过命令CMD54要求时钟选择器CLKSEL选择分频器DIV1的输出,以及不要求IC卡芯片工作在可从ATR数据识别的最大频率时,通过命令CMD54要求时钟选择器CLKSEL选择分频器DIV2的输出。
图9显示了主机设备针对ATR数据执行的操作的另一个示例。主机设备2按照IC卡芯片6的应用程序的工作内容来控制IC卡芯片6的工作频率。当主机设备2依据应用程序要求IC卡芯片6执行加密操作时,例如主机设备2通过发出命令CMD50来读取ATR数据,并通过命令CMD54要求控制器芯片4控制IC卡芯片6的工作频率,以使IC卡芯片6能够以由读取出的ATR数据所示的极限工作频率来进行工作。例如,能够通过选择图8所示的分频器的输出来控制IC卡芯片6的工作频率。然后,主机设备2通过命令CMD52将用于加密操作的IC卡命令写入控制器芯片4作为IC卡命令(C-APDU)。控制器芯片6将用于加密操作的IC卡命令(C-APDU)提供至IC卡芯片6。IC卡芯片6解码用于加密操作的IC卡命令(C-APDU),按照解码的结果执行加密操作(处理),并返回对应于操作结果的应答(R-APDU)。此应答响应主机设备发出的命令CMD51,经控制器芯片4通过MMC 1的DAT端而被输出到主机设备2。在此操作中,由IC卡芯片6执行的加密处理与IC卡芯片6的极限工作频率或与极限工作频率相等的频率相同步地被高速执行。换句话说,主机设备通过ATR数据读取命令CMD50识别可允许设置诸如IC卡芯片6的极限工作频率的工作能力,并根据工作能力确定对IC卡芯片6的设置,以使得由于主机设备使用IC卡芯片6执行处理,从而能够高效率地执行处理,其中,通常通过用于加密操作的同步时钟频率的速度增加来提供效率。因此,在由IC卡芯片6执行的加密处理中通常可以看出,能够根据主机设备2的应用程序中的处理来提高由MMC 1执行的操作的处理速度。当主机设备2没有如传统结构一样具有用于读取IC卡芯片6的ATR数据的命令系统时,主机设备2不能执行图9中虚线所示方块内的命令处理。在此情况下,不能通过指定由IC卡芯片6执行的加密操作处理来提高操作速度,这延长了加密操作处理的运行周期。
图10显示了主机设备2针对ATR数据执行的操作的另一个示例。类似于图9的情况,主机设备2按照IC卡芯片6的应用程序中的工作内容来控制IC卡芯片6的工作频率。在此示例中,当在主机设备2与IC卡芯片6之间进行数据传输时,将IC卡芯片6的时钟信号频率设置在较高的值。当与IC卡芯片6传输数据时,主机设备2通过发出命令CMD50读取ATR数据,并通过命令CMD54要求控制器芯片4提高IC卡芯片6的工作频率的速度,使得IC卡芯片6能够工作在由读取的ATR数据所示的极限工作频率。通过此方法,能够增加在主机设备2与IC卡芯片6之间进行大量数据传输的速度。当主机设备2没有如传统结构的用于读取IC卡芯片6的ATR数据的命令系统时,主机设备2不能执行图10中虚线所示方块内的命令处理。在此情况下,不能提高IC卡芯片6的工作频率,这延长了主机设备2与IC卡芯片6之间的数据传输所需的周期。
图11显示了主机设备2针对ATR数据执行的操作的另一个示例。类似于图9的情况,主机设备2按照IC卡芯片6的应用程序中的工作内容来控制IC卡芯片6的工作频率。在此示例中,当在主机设备2与闪存芯片5之间数据传输时,将IC卡芯片6的时钟信号频率设置为较高的值。当在IC卡芯片6与闪存芯片5之间传输数据时,主机设备2通过发出命令CMD50读取ATR数据,并通过命令CMD54要求控制器芯片4增加IC卡芯片6的工作频率的速度,以使IC卡芯片6能够工作在由读取的ATR数据所示的极限工作频率。通过此方法,能够增加IC卡芯片6与闪存芯片5之间进行大量数据传输时的速度。当主机设备2没有如传统结构的用于读取IC卡芯片6的ATR数据的命令系统时,主机设备2不能执行图10中虚线所示方块内的命令处理。在此情况下,不能提高IC卡芯片6的工作频率,这延长了IC卡芯片6与闪存芯片5之间的数据传输所需的周期。
《用于读取擦除数据单位的命令》
图12显示了用于读取存储在闪存芯片5中的设备码(设备码读取命令)作为表示擦除单位的数据的命令的几个示例。设备码是指表示由每个闪存制造商确定的产品类型的码数据。能够容易地从设备码获得关于对应的闪存芯片5的信息,例如其存储容量和作为擦除单位的字节数。
设备码读取命令的第一示例是利用标准存储卡命令的空闲命令码的新命令CMD49。在设备码读取命令CMD49的列中,与CMD的进入位置相关的信号数据对应于通过CMD端输入和输出的信号数据,而与DAT的进入位置相关的信号数据对应于通过DAT端输入和输出的信号数据。在该图中,进入单线所示的框内的数据供应方向是从卡主机设备到MMC1的方向,而进入双线所示的框内的数据供应方向是从MMC1到卡主机设备的方向。当CMD49被提供给CMD端时,响应此命令返回应答并在传输数据的字节数STL之后将闪存芯片5的设备码(闪存设备码)输出到DAT端。在第一示例的情况下假设提供单个闪存芯片5。
在设备码读取命令的第二示例中,假设由多个存储芯片构成MMC1中所含有的闪存芯片5。响应CMD49而从每个闪存芯片5的DAT端顺序地输出数据字节数STL和ATR数据。控制器芯片4识别闪存芯片5的数量,并控制每个闪存芯片5的数据输出。
在设备码读取命令的第三示例中,当MMC1中含有两个或多个闪存芯片5时,读取由参数指定的单个闪存芯片5的闪存设备码。参数是用于指定闪存芯片序号的数据,控制器芯片4针对所有闪存芯片编号,通过DAT端输出与由参数所指定的编号对应的闪存芯片的闪存设备码。当期望读取多个闪存芯片5中的每个闪存芯片5的闪存设备码时,第三示例是有用的。
图13显示了用于提供依据设备码读取命令CMD49的功能的第一示例结构。当在第一示例中主机设备2发出设备码读取命令CMD49时(ST10),控制器芯片4将设备码输出命令发送至闪存芯片5(ST11)。从闪存芯片5读取的设备码被存储在数据缓冲器38中(ST12)。将存储的闪存设备码输出到主机设备(ST13)。F_CODE是从MMC 1输出的闪存设备码。
图14显示了用于提供依据设备码读取命令CMD49的功能的第二示例结构。按照第二示例,将在MMC 1的加电复位时通过闪存芯片5的复位过程而从闪存芯片5读取的闪存设备码存储在数据缓冲器38中,并且当接收了设备码读取命令CMD49时,将闪存设备码从数据缓冲器38输出到主机设备2。更具体地,当从主机设备2发出复位启动命令CMD1时(ST14),控制器芯片4使用CPU 31输入并解码此命令,然后通过FMIF 32将设备码输出命令提供给闪存芯片5(ST11)。控制器芯片4使用CPU 31将由此从闪存芯片5读取的闪存设备码存储在数据缓冲器38中,并将该码保持在数据缓冲器38中(ST12)。然后,从主机设备2发出设备码读取命令CMD49(ST10),控制器芯片4使用CPU 31输入并解码此命令,然后通过MMCIF 33将存储在数据缓冲器38中的闪存设备码输出到主机设备2(ST13)。按照第二示例,从主机设备2发出设备码读取命令CMD 49的时间开始到MMCIF 33将闪存设备码输出到主机设备2的时间为止的等待时间比第一示例中对应的等待时间短。
图15显示了用于提供依据设备码读取命令CMD49的功能的第三示例结构。按照第三示例,预先将闪存设备码F_CODE存储在闪存芯片5的预定存储区域中,当接收了设备码读取命令CMD49时,通过用于读取闪存设备码的存储器存取命令从闪存芯片5中读取闪存设备码并输出到主机设备2。更具体地,将诸如CID之类的控制数据和闪存设备码F_CODE预先存储在闪存芯片5的用户区域之外的系统区域中。此系统区域是与闪存芯片5中单独保留的设备码的存储区域不同的存储区域。因此,当通过多个芯片构成闪存芯片5时,所有闪存芯片的设备码集中地存储在单个闪存芯片的预定区域中。当从主机设备2发出设备码读取命令CMD49时(ST10),控制器芯片4使用CPU31输入并解码此命令。然后,控制器芯片4通过FMIF 32将用于读取设备码的存储器存取命令提供给闪存芯片5(ST15),并将由此读取的闪存设备码存储在数据缓冲器38中(ST16)。之后,CPU 31通过MMCIF 33将存储在数据缓冲器38中的闪存设备码输出到主机设备2(ST13)。按照第三示例,从主机设备2发出设备码读取命令CMD49的时间开始到MMCIF 33将闪存设备码输出到主机设备2的时间为止的等待时间比第一示例中对应的等待时间短,但是比第二示例中的长。
尽管图中没有显示,但是可以根据CMD1的初始化命令将图15情况中的闪存设备码从闪存芯片5读取到数据缓冲器38,然后类似于图14的情况地响应命令CMD49将闪存设备码从数据缓冲器38输出到外部。
接下来,说明由主机设备2执行的用于向MMC 1写入数据的数据写入处理。在给出使用闪存设备码的示例之前,先讨论由每个闪存芯片依写入命令处理的命令内容而不同的擦除单位所引起的擦除次数的变化以及写入处理周期的变化。
当给出了需要将数据连续写入MMC 1的多写入命令时,主机设备2通过命令CMD23以512字节为单位建立写入数据的数量,然后发出命令CMD25和写入数据,以命令写入操作开始。因此,依据指定数量的写入数据与擦除单位之间的相互关系产生了擦除次数的变化。假设每个写入命令传输1千字节(KB)数据,例如,当把2KB数据写入具有2KB擦除单位的AND型闪存时,总共发出两次写入命令。当把4KB数据写入具有4千字节(KB)擦除单位的AG-AND型闪存时,总共发出四次写入命令。因此,对于一个擦除的单位需要执行四次擦除。类似地,当把16KB数据写入具有16千字节(KB)擦除单位的NAND型闪存时,总共发出16次写入命令。因此,对于一个擦除的单位需要执行16次擦除。
当每个命令传输1KB数据,以便总共向MMC 1写入2KB数据时,其中MMC 1包括具有2KB擦除单位的闪存,例如,如图16所示从主机设备以512字节为单位提供写入命令CMD25以及写入数据Data0和Data1(ST20)。将这些传输数据Data0和Data1(512B×2)放入数据缓冲器(ST21)。当存在对应于写入目标逻辑地址的有效物理地址时,搜索将被分配以逻辑地址的新的物理地址,擦除搜索到的新的写入目标物理地址的区块(ST22)。然后,将数据缓冲器中含有的1KB写入数据Data0和Data1以及被分配了写入目标逻辑地址的原始地址中剩余的1KB数据Data2’和Data3’写入已擦除的写入目标物理地址(ST23)。当如图17所示从主机设备以512字节为单位提供写入命令CMD25以及剩余数据Data2和Data3时(ST24),将这些传输数据Data2和Data3(512B×2)放入数据缓冲器(ST25)。当存在对应于写入目标逻辑地址的有效物理地址时,搜索将被分配以逻辑地址的新的物理地址,擦除搜索到的新的写入目标物理地址的区块(ST26)。然后,将数据缓冲器中含有的1KB写入数据Data2和Data3以及被分配了写入目标逻辑地址的原始地址中剩余的1KB数据Data0和Data1写入已擦除的写入目标物理地址(ST27)。因此,当每个写入命令给出的新写入数据为1KB时,对于具有2KB的擦除单位的闪存需要擦除2个区块。
此外,写入处理所需要的周期随一个写入命令的传输数据的数量而改变。图18比较了每一写入命令传输1KB写入数据以便总共写入16KB数据的情况与每一写入命令传输2KB写入数据以便总共写入16KB数据的情况。通过此比较,将以512字节为单位的数据传输所需的全部周期固定在tdtr×32,而与擦除单位无关。但是,闪存的擦除处理和写入处理所需的周期发生了改变。为了将总共16KB数据写入具有2KB的擦除单位的闪存,每个写入命令传输2KB的写入数据是最有效的。
从上述可知,由于每个闪存芯片的擦除单位不同,使得写入处理所需的擦除次数和周期依写入命令的命令内容而改变。考虑到此因素,如果在传输写入数据之前主机设备识别了闪存的擦除单位,则能够降低对一个擦除单位的擦除次数,并防止无意义地延长写入处理周期。主机设备2能够根据设备码读取命令CMD49读取的闪存设备码来识别闪存芯片5的擦除单位。
图19显示了主机设备2根据闪存设备码识别闪存芯片5的擦除单位以便优化所传输的写入数据的数量的操作示例。当以512B为单位将数据写入具有2KB的擦除单位的闪存芯片5时,发出写入命令、擦除和写入的过程将被要求重复四次。但是,如果主机设备2根据响应设备码读取命令CMD49所读取的闪存设备码识别了闪存芯片5的擦除单位,则主机设备2判断,通过以2KB为单位将数据写入具有2KB的擦除单位的闪存芯片5以一次操作能够完成从主机设备2发出写入命令以及从或向闪存芯片5擦除和写入的过程。因此,主机设备2传输4个512字节的写入数据,并通过一次2KB写入操作完成写入过程。
图20显示了用于每一命令向MMC 1传输2KB数据的操作,MMC1包括具有2KB的擦除单位的闪存芯片5以总共写入2KB的数据。主机设备2在执行写入处理之前,根据命令CMD49识别出MMC 1中含有的闪存芯片5具有2KB的擦除单位。
当从主机设备2提供写入命令CMD25以及2KB单位的写入数据Data0、Data1、Data2和Data3时(ST30),将这些传输数据Data0、Data1、Data2和Data3(512B×4)放入数据缓冲器38(ST31)。当存在对应于写入目标逻辑地址的有效物理地址时,搜索将被分配以逻辑地址的新的物理地址,并擦除搜索到的新的写入目标物理地址的区块(ST32)。然后,将数据缓冲器中含有的2KB写入数据Data0、Data1、Data2和Data3写入已擦除的写入目标物理地址(ST33)。由此完成写入处理。
图21显示了控制器芯片4具有根据读取到的设备码分析重写最佳单位的分析功能的示例。当主机设备2提供最佳重写单位读取命令CMD48时(ST40),控制器芯片4使用CPU 31解码此命令CMD48,并命令闪存芯片5读取闪存设备码(St41)。控制器芯片4根据从闪存芯片5读取的闪存设备码获得擦除单位,并分析重写最佳单位。例如,当闪存芯片5具有2KB的擦除单位时,重写最佳单位是2KB。分析结果例如可以是2KB的值,也可以是以512B为单位的数据的数量,例如4。将分析结果保持在数据缓冲器38中(ST42)。然后,CPU 31将对数据缓冲器38中所保持的数据进行重写的最佳单位输出到主机设备2。主机设备2直接参照重写数据的最佳单位,确定将附在一个写入命令上的数据的数量,并向MMC 1发出写入命令。按照图22所示的情况,重写数据的最佳单位是F_CNT,并且值为4。值4表示512B×4。因此,跟在写入命令CMD25之后的重写数据是以512B为单位的、4个单位的Din512B,从而总共2KB。在此情况下,能够最有效地执行从或向具有2KB擦除单位的闪存芯片5擦除和写入的处理。
图23显示了使用设备码设置闪存芯片5的频率的示例。当主机设备2发出设备码读取命令CMD49时(ST10),响应此命令将闪存设备码F_CODE输出到主机设备2(ST13),主机设备2根据闪存设备码计算闪存芯片5的工作极限频率(ST50),并发出用于设置闪存芯片5的工作极限频率的命令CMD54(ST51)。当接收到命令CMD54时,控制器芯片4使用CLK2CNT 36控制CPU 31、DBUF 38和闪存芯片5的工作频率。按照参照图8的说明,使用CLK2CNT 36设置IC卡芯片6的工作频率。在此示例中,CLK2CNT 36具有用于分割由CLK0GEN 34产生的时钟的分频器DIV1和DIV2,以及用于选择分频器DIV1和DIV2的输出的时钟选择器CLKSEL。当闪存芯片5的最大工作频率为10MHz(兆赫兹)时,例如,分频器DIV1和DIV2的输出分别为10MHz和1MHz。通过命令CMD54指定由时钟选择器CLKSEL输出的选择。主机设备2参照读取的闪存设备码,并且当要求闪存芯片5工作在可从闪存设备码识别的最大工作频率时,通过命令CMD54要求时钟选择器CLKSEL选择分频器DIV1的输出,以及当不要求闪存芯片5工作在可从设备码识别的最大工作频率时,通过命令CMD54要求时钟选择器CLKSEL选择分频器DIV2的输出。由于DBUF 38是类似于同步DRAM的时钟同步工作的设备,因此能够按照闪存芯片5和CPU 31的工作频率来控制DBUF 38的工作时钟频率。
能够使用可变分频器来代替此示例中所示的两个分频器,使得能够通过命令以任意或多级的方式来改变或编程分频比。这应用到图8所示的情况。
尽管附图中没有具体地显示,但是控制器芯片4可以响应预定的命令(例如工作极限频率读取命令)从闪存芯片5读取闪存设备码F_CODE,并根据读取的闪存设备码计算闪存芯片5的工作极限频率,将计算的工作极限频率输出到主机设备2。当主机设备2根据由此接收的工作极限频率发出用于设置闪存芯片5的工作频率等的命令CMD54时,控制器芯片4响应命令CMD54使用CLK2CNT 36控制CPU 31、DNUF 38和闪存芯片5的工作频率。
本发明不限于由发明人在此说明和描述的具体实施例。显而易见地,在不脱离本发明范围的情况下,能够对本发明进行各种修改和改变。
例如,按照本发明的存储装置不限于MMC,可以是满足其它存储卡标准的各种类型的存储装置。因此,命令码、命令格式、数据通信协议等可以按照卡标准而改变。接口控制器、安全控制器和非易失性存储器不要求是彼此分开的芯片,接口控制器和非易失性存储器可以作为一个芯片而形成,或者所有的这些部件可以由一个芯片构成。安全控制器不限于IC卡微机,可以是具有安全功能的将在未来开发或已经开发的电路模块。
工业应用性
本发明可适当地用于闪存芯片、IC卡的微机芯片、含有控制器芯片的存储卡和其它设备。

Claims (18)

1.一种存储装置,包括:
接口控制器;
可重写的非易失性存储器;和
安全控制器,执行数据安全处理,
其中,所述接口控制器能够响应从外部给所述接口控制器的预定的第一命令,至少向外部输出响应对所述安全控制器的复位请求而输出对从所述安全控制器输出的复位信息的应答、或表示非易失性存储器的存储区域初始化的单位的信息。
2.如权利要求1所述的存储装置,其中所述接口控制器响应从外部提供的第二命令,提取包含在该第二命令中的用于安全处理的信息,以将该信息提供给安全控制器,并且响应从外部提供的第三命令而将从所述安全控制器获得的安全处理结果输出到外部。
3.如权利要求1所述的存储装置,其中所述接口控制器具有用于锁存信息的易失性存储电路,该信息至少是对复位信息的应答或者是表示响应存储装置初始化命令而进行初始化的单位的信息,所述接口控制器响应所述预定的第一命令将所述存储电路保持的该信息输出到存储卡的外部。
4.如权利要求3所述的存储装置,其中从非易失性存储器中读取要被易失性存储电路锁存的所述信息,所述信息至少为对复位信息的应答或表示初始化单位的信息。
5.如权利要求1所述的存储装置,其中所述预定的第一命令具有与所述存储装置的初始化命令不同的命令码。
6.如权利要求1所述的存储装置,其中:
所述预定的第一命令是所述存储装置的初始化命令;和
所述接口控制器在输出对初始化处理的应答之后,向外部输出所述至少为对复位信息的应答或表示初始化单位的信息的信息。
7.如权利要求1所述的存储装置,其中:
所述预定的第一命令是针对所述接口控制器中包含的预定寄存器的读取命令;和
所述接口控制器在输出寄存器中所包含的信息或分配寄存器的保留区域之后,向外部输出所述至少为对复位信息的应答或表示初始化单位的信息的信息。
8.如权利要求1所述的存储装置,其中所述对复位信息的应答包括所述安全控制器的工作极限频率和历史字节数据。
9.如权利要求1所述的存储装置,其中所述表示存储区域的初始化单位的信息是表示非易失性存储器类型的设备码、或依据初始化单位基于所述设备码而生成的数据量信息。
10.如权利要求1所述的存储装置,其中所述接口控制器能够响应频率设置命令来改变提供给所述安全控制器的时钟信号的频率。
11.一种数据处理装置,其可以安装如权利要求1所述的存储装置,其中:所述数据处理装置能够向所述存储装置输出用于输出对复位信息的应答的预定的第一命令,输入响应所述第一命令而从所述存储装置输出的对复位信息的应答,并通过参照所输入的对复位信息的应答来改变所述安全控制器的工作频率。
12.一种数据处理装置,其可以安装如权利要求1所述的存储装置,其中:所述数据处理装置向所述存储装置输出用以请求输出表示存储区域的初始化单位的信息的预定的第一命令,输入响应所述第一命令而从所述存储装置输出的表示存储区域的初始化单位的信息,并根据所输入的表示初始化单位的信息而将要写入所述存储装置的传输数据的量设置成与所述初始化单位相对应的值。
13.一种存储装置,包括:
接口控制器;
可重写的非易失性存储器,
其中,所述接口控制器能够响应从外部给所述接口控制器的预定命令,向外部输出表示非易失性存储器的存储区域的初始化单位的信息。
14.如权利要求13所述的存储装置,其中:
所述预定命令是所述存储装置的初始化命令;和
所述接口控制器在输出对初始化处理的应答之后,向外部输出表示初始化单位的信息。
15.如权利要求13所述的存储装置,其中:
所述预定命令是针对所述接口控制器中包含的预定寄存器的读取命令;和
所述接口控制器在输出寄存器中所包含的信息或分配寄存器的保留区域之后,向外部输出表示初始化单位的信息。
16.如权利要求13所述的存储装置,其中所述表示初始化单位的信息是表示非易失性存储器类型的设备码、或依据存储区域的初始化单位基于所述设备码而生成的数据量信息。
17.如权利要求13所述的存储装置,其中所述接口控制器从所述非易失性存储器获得表示非易失性存储器类型的设备码,根据所获得的设备码获得所述非易失性存储器的工作极限频率,并响应所述预定命令而将工作极限频率输出到外部。
18.如权利要求17所述的存储装置,其中所述接口控制器能够响应频率设置命令来改变提供给非易失性存储器的时钟信号的频率。
CNA200580005441XA 2004-02-20 2005-01-19 存储装置和数据处理装置 Pending CN1922616A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004043945 2004-02-20
JP043945/2004 2004-02-20

Publications (1)

Publication Number Publication Date
CN1922616A true CN1922616A (zh) 2007-02-28

Family

ID=34858031

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200580005441XA Pending CN1922616A (zh) 2004-02-20 2005-01-19 存储装置和数据处理装置

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103009816A (zh) * 2011-09-20 2013-04-03 珠海天威技术开发有限公司 耗材芯片及对其重写的重写器、重写方法

Families Citing this family (23)

* 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
US7707379B2 (en) * 2006-07-13 2010-04-27 International Business Machines Corporation Dynamic latency map for memory optimization
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
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
US8527781B2 (en) * 2007-05-09 2013-09-03 Kingston Technology Corporation Secure and scalable solid state disk system
US8499168B2 (en) * 2007-05-09 2013-07-30 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
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 ソニー株式会社 データ記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103009816A (zh) * 2011-09-20 2013-04-03 珠海天威技术开发有限公司 耗材芯片及对其重写的重写器、重写方法
CN103009816B (zh) * 2011-09-20 2015-08-19 珠海天威技术开发有限公司 耗材芯片及对其重写的重写器、重写方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1922616A (zh) 存储装置和数据处理装置
CN1241142C (zh) 在智能卡和主站之间通信的方法
CN1299234C (zh) 存储卡
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
CN101064893A (zh) Ic模块和便携电话
US20040064612A1 (en) Method and system for using a memory card protocol inside a bus protocol
JP2007226796A (ja) 複数個のインターフェースを支援するスマートカード及びこれを含むスマートカードシステム
CN102375788A (zh) 为具有非易失性存储器的系统动态地分配功率预算的方法及装置
CN1293408A (zh) 半导体存储装置及其操作设定方法
CN1766850A (zh) 具有存储元件的存储卡及其控制方法
CN1728072A (zh) 存储卡和搭载在存储卡中的卡用控制器以及存储卡的处理装置
CN1551241A (zh) 非易失性半导体存储器件
CN1652152A (zh) 辅助运算用协处理器内置型ic卡及其控制方法
CN109410993A (zh) 存储系统及其操作方法
CN1855310A (zh) 非易失性存储装置
US20110256832A1 (en) Apparatus and method for controlling smart card comprised of multi sensor
CN1940974A (zh) 便携式电子装置及ic卡
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
US20050223148A1 (en) Electronic apparatus that communicates with host through serial communication interface
US8645624B2 (en) Portable electronic device, smartcard and control method for portable electronic device
CN1165837C (zh) 微计算机及其存储内容变更系统以及存储内容变更方法
CN109493910A (zh) 微控制器及其操作方法以及具有该微控制器的存储系统
CN1142669C (zh) 手持设备、智能卡接口设备及数据传输方法
US9450751B2 (en) Smart card, electronic device, and portable electronic device
US20130013851A1 (en) Data stream dispatching method, memory controller, and memory storage apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication