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

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

Info

Publication number
WO2005081180A1
WO2005081180A1 PCT/JP2005/000588 JP2005000588W WO2005081180A1 WO 2005081180 A1 WO2005081180 A1 WO 2005081180A1 JP 2005000588 W JP2005000588 W JP 2005000588W WO 2005081180 A1 WO2005081180 A1 WO 2005081180A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
information
card
storage device
chip
Prior art date
Application number
PCT/JP2005/000588
Other languages
English (en)
French (fr)
Inventor
Motoki Kanamori
Shinichi Fukasawa
Shigeo Kurakata
Tetsuya Iida
Shinsuke Asari
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.
Priority to JP2006510172A priority Critical patent/JPWO2005081180A1/ja
Publication of WO2005081180A1 publication Critical patent/WO2005081180A1/ja

Links

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

Definitions

  • the present invention relates to a storage device having a nonvolatile information storage function, a storage device having a security function for stored information as well as a nonvolatile information storage function, and a data processing device such as a host device into which the storage device is inserted.
  • a storage device having a nonvolatile information storage function
  • a data processing device such as a host device into which the storage device is inserted.
  • Device for example, flash memory chip
  • the present invention relates to a technology effective when applied to a memory card having a microcomputer chip for an IC card and a controller chip.
  • Non-Patent Document 1 describes an interface terminal and a transfer protocol between devices of an IC card.
  • ATR Answer To Reset
  • the ATR is a value indicating the communication protocol sent from the IC card to the interface device after the reset process as a response to the reset process.
  • Non-Patent Document 2 describes a command specification for information exchange of an IC card.
  • Patent Document 1 discloses a flash memory chip and an IC card chip that can execute security processing, and a controller chip that controls access to the flash memory chip and the IC card chip in response to a request from a host.
  • the following describes a memory card in which this controller chip can access both a flash memory chip and an IC card chip in response to a request from a host.
  • Non-patent document l ISO / lEC 7816-3 Second edition (1997—12—15)
  • Non-Patent Document 2 ISOZlEC 7816-4 First edition (1995-09-01)
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003-22216 (FIG. 1)
  • the inventor has studied the communication ability between the memory card and the card host.
  • the first concerns the application of flash memory cards equipped with security functions using IC card chips to mopile applications.
  • the card host Normally, when the IC card is reset between the IC card and the card host, the card host directly reads the ATR information as a reset response output from the IC card, and performs necessary communication settings using the ATR information. Thereafter, under the set communication conditions, command processing is performed in accordance with the description of Non-Patent Document 2.
  • Some card host applications use unique values that are included in the ATR information and depend on the IC card OS (operating system).
  • the ATR information which has been directly exchanged between the card host and the IC card in the past cannot be read. That is, the reset and communication settings for the IC card chip are performed by the card controller, and the ATR information is not output to the card host. ATR information cannot be read with the new card commands CMD51 and CMD52 after communication settings. As a result, there is a problem in terms of compatibility with an IC card in processing depending on an application for inquiring ATR information in a card host. Further, since the card host cannot acquire the ATR information from the memory card having the IC card chip, the operation of the IC card chip depends on the application of the card host and the processing performed by the IC card chip. Communication settings such as frequency cannot be changed, which limits the use of mopile. This is because the communication system between the memory card equipped with the IC card function and the card host is insufficient with the conventional memory card command system.
  • the erasing unit memory of the flash memory mounted on the memory card differs, the rewriting stress on the flash memory may increase or the writing may increase depending on the number of data transfers from the card host during writing. Regarding the transfer rate getting worse.
  • the flash memory mounted on a memory card does not have a uniform erasing unit due to differences in memory array configurations such as AND, NAND, and AG-AND and differences in storage capacity.
  • the controller of the memory card controls the erasing process according to the difference in the erase unit.
  • the flash memory is physically erased by the number of write data transferred by one write command from the card host. Are performed differently.
  • the erasing unit is 2048 bits
  • rewriting of 2048 bits is performed.
  • the card host issues a write command twice with 1024 bits of writing data
  • the writing is performed with 2048 bits of writing data.
  • the stress caused by applying a high voltage for erasing is doubled compared to issuing a single write command.
  • a memory card with a flash memory with a larger rewrite unit has a higher rewrite stress (erase count) and a larger write overhead. This is because the conventional memory card command system provides a communication means for recognizing the erasing unit of the built-in non-volatile memory also by an external force.
  • An object of the present invention is to improve the communication capability between a security controller such as an IC card chip or a data processing device of a storage device such as a memory card equipped with a nonvolatile memory such as a flash memory chip. It is in.
  • Another object of the present invention is to make it possible to change the operation speed and power consumption of a security controller in a storage device such as a memory card equipped with a security controller such as an IC card chip.
  • Still another object of the present invention is to provide a non-volatile memory such as a flash memory mounted on a memory card, which performs writing with less rewriting stress in accordance with the unit of initialization of a storage area.
  • An object of the present invention is to externally enable good initialization of data transfer efficiency.
  • a storage device such as a memory card includes an interface controller, a rewritable nonvolatile memory, and a security controller that performs data security processing, and the interface controller responds to a reset instruction to the security controller.
  • the reset response information (ATR) output by the security controller and at least one of the information (F-CODE and F_CNT) indicating the unit of initialization of the storage area of the nonvolatile memory are externally provided to the interface controller. It can be output to the outside in response to a given first command.
  • a data processing device such as a card host receiving the reset response information refers to the reset response information and informs the interface controller of the operation speed or operation of the security controller.
  • a data processing device such as a card host receiving the information outputs the information when rewriting the storage information in the nonvolatile memory.
  • a data processing device such as a card host receiving the information outputs the information when rewriting the storage information in the nonvolatile memory.
  • the interface controller can change the frequency of a clock signal provided to the security controller in response to a command for setting a frequency.
  • the interface controller extracts security processing information included in the second command in response to a second command given from the outside, and provides the information to the security controller.
  • the security controller In response to the third command to which external force is also given, the security controller outputs the security processing result to the outside.
  • the interface controller provides security without entering the security controller configuration. The security processing can be instructed to the controller.
  • the interface controller has a volatile storage circuit that latches the at least one information in response to an initialization command of the storage device,
  • the one information stored in the storage circuit is output to the outside of the storage device in response to a command.
  • the at least one information latched in the volatile storage circuit may be initially stored in the nonvolatile memory. It is not necessary to access the inside of the security controller each time.In addition, when there are multiple non-volatile memories, it is not necessary to access the non-volatile memory more than once to obtain device codes etc. I'm done.
  • the predetermined first command has a command code different from the initialization command of the storage device.
  • the interface controller when assigning a command code of the initialization command of the storage device to the predetermined first command, sends the at least one information to the outside following the response of the initialization processing. Output.
  • the interface controller when assigning a command code of a read command to a predetermined register such as a card identification register or a card characteristic register held by the interface controller to the predetermined first command, the interface controller Outputs the at least one piece of information to the outside following the output of the information held by the register or by allocating it to a reserved area of the register.
  • the reset response information includes an operation limit frequency of the security controller and historical byte information.
  • the information indicating the initialization unit of the storage area is a device code indicating the type of the nonvolatile memory, or data number information corresponding to the initialization unit generated based on the device code.
  • a data processing device such as a card host, to which the storage device can be attached, outputs the predetermined first command for outputting the reset response information to the storage device. It is possible to input reset response information output from the storage device in response and change the setting of the operating frequency of the security controller with reference to the input reset response information. By outputting the reset response information to an external device in response to an external command, a data processing device such as a card host that receives the reset response information refers to the reset response information. Thus, the operating speed or operating frequency of the security controller can be changed by the interface controller.
  • the storage device is attachable, and the predetermined first command for outputting information indicating an initialization unit of the storage area is stored in the storage device.
  • the information indicating the initialization unit of the storage area output from the storage device in response to the information is input, and based on the input information indicating the initialization unit, the storage is performed.
  • the number of data transfers of write data to the device is defined as the unit of initialization.
  • a storage device such as a memory card includes an interface controller and a rewritable nonvolatile memory, and the interface controller stores information indicating a unit of initialization of a storage area of the nonvolatile memory, and stores the information in an external memory. It can be output to the outside in response to a predetermined command given to the interface controller. By outputting the information indicating the initialization unit to the outside in response to an external command, the data processing device such as a card host receiving the information indicates the initialization unit when rewriting the storage information in the nonvolatile memory. By referring to the information, it becomes possible to send a write data of an amount corresponding to the unit of initialization of the storage area to the storage device and then give a write instruction.
  • the interface controller when assigning the same command code as the initialization command of the storage device to the predetermined command, the interface controller sets the initialization unit following the response of the initialization processing. Is output to the outside.
  • the interface controller determines that the register is Following the output of the held information or by allocating it to a reserved area of the register, the information indicating the initialization unit is output to the outside.
  • the information indicating the initialization unit is a device code indicating a type of a nonvolatile memory, or an initialization unit of a storage area generated based on the device code. Is data number information corresponding to.
  • the interface controller obtains a device code indicating the type from the non-volatile memory, obtains an operation limit frequency of the non-volatile memory based on the obtained device code, and outputs the operation limit frequency to the predetermined command. In response, the operation limit frequency is output to the outside.
  • the interface controller is capable of changing the frequency of a clock signal applied to the nonvolatile memory in response to a command for setting the frequency.
  • a security controller such as an IC card chip or a nonvolatile memory such as a flash memory chip is mounted. It is possible to improve communication ability between a storage device such as a memory card and a data processing device such as a card host.
  • the reset response information can be externally output, the operation speed and power consumption of the security controller in a storage device such as a memory card equipped with a security controller such as an IC card chip can be changed.
  • the information indicating the initialization unit can be externally output, a storage area such as an erase unit in a nonvolatile memory such as a flash memory mounted on a memory card is used as the initialization unit. It is possible to externally perform access control with low rewriting stress and good write data transfer efficiency.
  • FIG. 1 is a block diagram showing an internal configuration of an MMC as a storage device to which the present invention is applied.
  • FIG. 2 is an explanatory diagram showing command protocols of a secure read command (CMD51) and a secure write command (CMD52).
  • FIG. 3 is an explanatory diagram illustrating some forms of an ATR information read command.
  • FIG. 4 is an explanatory diagram illustrating a first embodiment for realizing a function based on an ATR information read command CMD50.
  • FIG. 5 is an explanatory diagram illustrating a second embodiment for realizing a function based on an ATR information read command CMD50.
  • FIG. 6 is an explanatory diagram illustrating a third embodiment for realizing a function based on an ATR information read command CMD50.
  • FIG. 7 is an explanatory diagram showing an operation example in which the host device refers to ATR information.
  • FIG. 8 is an explanatory diagram showing another operation example in which the host device refers to the ATR information.
  • FIG. 9 is an explanatory diagram showing another operation example in which the host device refers to the ATR information.
  • FIG. 10 is an explanatory diagram showing another operation example in which the host device refers to ATR information.
  • FIG. 11 is an explanatory diagram showing another operation example in which the host device refers to the ATR information.
  • FIG. 12 is an explanatory diagram illustrating some forms of a device code read command stored in a flash memory chip as information indicating an erase unit.
  • FIG. 13 is an explanatory diagram illustrating a first embodiment for realizing a function based on a device code read command CMD49.
  • FIG. 14 is an explanatory diagram exemplifying a second embodiment for realizing a function by a device code read command CMD49.
  • FIG. 15 is an explanatory diagram illustrating a third embodiment for realizing a function based on a device code read command CMD49.
  • FIG. 16 is an explanatory diagram exemplifying the first half of the operation in the case of performing 1 KB data transfer with one command and writing a total of 2 KB data to the MMC1 equipped with an erase unit of 2 KB flash memory.
  • FIG. 17 is an explanatory diagram illustrating a second half operation following the operation in FIG.
  • FIG. 9 is an explanatory diagram showing a comparative example of the operation of FIG.
  • FIG. 7 is an explanatory diagram showing an operation example of optimizing the number of transfer of write data by using the operation example.
  • FIG. 20 is an explanatory diagram showing an operation of performing 2 KB data transfer with one command and writing a total of 2 KB data to the MMC1 equipped with a flash memory of 2 KB erase unit.
  • FIG. 21 is an explanatory diagram showing an example in which a controller chip has an analysis function of an optimum rewrite unit based on a read device code.
  • FIG. 1 is a diagram showing an internal configuration of a MultiMediaCard (MultiMediaCard is a registered trademark of Infineon Technologies AG; hereinafter, abbreviated as “MMC”) as a storage device to which the present invention is applied.
  • MMC1 preferably conforms to the MMC specification.
  • MMC 1 is necessary for protection of confidential data and personal authentication based on a memory card command conforming to the MMC specification issued from the host device (or card host) 2 as a data processing device connected to MMC 1. It has a security processing function that performs various cryptographic operations.
  • the host device 2 is, for example, a mobile phone, a personal digital assistant (PDA), a personal computer, a music reproducing (and recording) device, a camera, a video camera, an automatic teller machine, a street corner terminal, and a settlement terminal. Is applicable.
  • the MMC 1 has an MMC external terminal 3, a controller chip 4 as an interface controller, a flash memory chip (FLASH) 5 as a non-volatile memory, and an IC card chip (MCU) 6 as a security controller.
  • the flash memory chip 5 is a memory chip using a nonvolatile semiconductor memory as a storage medium, and can read and write data by a flash memory command.
  • the MMC external terminal 3 is used to exchange information with the external host device 2 to supply power (VCC2) 10, clock (CLK1) input 11, command (CMD) input / output 12, and data (DAT) input.
  • the MMC specification stipulates two types of operation modes for MMC1, an MMC mode and an SPI mode, and the usage of the MMC external pin 3 differs depending on the operation mode.
  • the controller chip 4 is a microcomputer chip that is connected to the MMC external terminal 3, the flash memory chip 5, and the IC card chip 6 and controls these.
  • the IC card chip 6 is a microcomputer chip to be embedded in a plastic substrate of the IC card. External terminals, electric signal protocols and commands of the IC card chip 6 conform to the ISO ZIEC7816 standard.
  • the external terminals of the IC card chip 6 include a power (VCC2) supply terminal 20, a clock (CLK2) input terminal 21, a reset (RES) input terminal 22, an input / output (IZO) terminal 23, and a ground (GND) terminal 24. There is.
  • the NC terminal is a spare terminal for the future.
  • the IC card chip 6 includes a CPU (microcomputer) for performing arithmetic processing, a ROM (Read Only Memory) for storing data (including programs), and a RAM (Read Only Memory). Random Access Memory), an EEPROM (Electrically Erasable Programmable ROM), an encryption coprocessor that constitutes an encryption device for performing processing related to encryption Z decryption, and a serial interface for transmitting and receiving data to and from the outside. These are interconnected by a bus.
  • a CPU microcomputer
  • ROM Read Only Memory
  • RAM Read Only Memory
  • EEPROM Electrical Erasable Programmable ROM
  • an encryption coprocessor that constitutes an encryption device for performing processing related to encryption Z decryption
  • serial interface for transmitting and receiving data to and from the outside.
  • the cryptographic coprocessor performs security processing in response to a command from the host device 2.
  • the CPU may execute the security processing using a program (software) instead of the cryptographic coprocessor (wareware).
  • the security processing is executed, for example, when data is written to the storage area in the IC card chip 6 or when the storage area data in the IC card chip 6 is read.
  • the flash memory chip 5 has a nonvolatile storage element.
  • the storage capacity of the EEPROM of the IC card chip 6 is smaller than the storage capacity of the flash memory chip 5! / ⁇ .
  • the storage capacity of the EEPROM may be the same as or larger than the storage capacity of the flash memory chip 5.
  • the IC card chip 6 it is desirable to use a product that has been certified by a certification organization of ISOZIEC15408, which is an international security evaluation standard.
  • ISOZIEC15408 which is an international security evaluation standard.
  • the IC card must be evaluated and certified by an ISOZIEC 15408 evaluation and certification body.
  • MM by adding a function to perform security processing to MMC
  • MMC1 also needs to be evaluated and certified by ISOZIEC15408.
  • the MMC 1 obtains a security processing function by incorporating the IC card chip 6 that has been certified by the evaluation organization and performing security processing using the IC card chip 6.
  • MMC1 can easily satisfy the security evaluation criteria based on ISOZIEC15408, and the development period for adding security processing functions to MMC can be shortened.
  • an IC card chip that is not a product that has been certified by the ISOZIEC15408 evaluation and certification body is not excluded, and an IC card chip according to the security strength required for the service provided by the IC card chip may be used.
  • the MMC 1 has an external interface conforming to the MMC specification. MMC 1 needs to accept commands to execute security processing in addition to standard memory card commands (commands for accessing the flash memory chip) through one type of external interface.
  • the controller chip 4 has a function of selecting a chip to be accessed and distributing command processing according to whether the command received by the MMC 1 is a standard memory card command or a command for executing security processing. . In this example, when the controller chip 4 receives the standard memory card command, it can select the flash memory chip 5 and issue a flash memory command to it to read and write host data.
  • the controller chip When a command for executing the security processing is received, the IC card chip 6 is selected, and an IC card command is issued to the IC card chip 6 to execute the security processing.
  • the controller chip has a function of outputting ATR information output from the IC card chip in response to a reset instruction to the outside in order to enhance communication capability with the host device 2, and indicates an erasing unit of the flash memory chip 5. It has a function to output information to the outside. However, it does not exclude external interfaces other than the external interfaces conforming to the MMC specifications, but may conform to external interfaces that exist now or will exist in the future.
  • the external terminals of the IC card chip 6 are connected to the controller chip 4 except for the power supply terminal 20, the clock input terminal 21, the reset input terminal 22, and the input / output terminal 23 except for the ground terminal 24. It is.
  • the controller chip 4 controls power supply and clock supply to the IC card chip 6 through the power supply terminal 10 and the clock input terminal 11. According to the present embodiment, the controller chip 4 can stop the power supply and the clock supply to the IC card chip 6 when the host device 2 does not require the security processing, and the power consumption of the MMC 1 can be reduced. Monkey
  • the controller chip 4 has a function of starting power supply to the IC card chip 6 through the power supply terminal when the MMC 1 receives a command for executing security processing from the host device 2. Further, the controller chip 4 has a function of performing a reset process of the IC card chip 6 through a reset input terminal when the MMC 1 receives a command for executing a security process from the host device 2. According to this, the controller chip 4 can stop the power supply to the IC card chip 6 until receiving the command for executing the security processing. Therefore, the power consumption of MMC1 can be reduced.
  • the controller chip 4 generates a clock signal to be supplied to the IC card chip 6 through the clock input terminal of the IC card chip 6 inside the MMC 1 and has a function of controlling the frequency, supply start timing, and supply stop timing. .
  • Controller chip 4 includes CPU 31, flash memory iZF control circuit (FMIF) 32, MM ClZF control circuit (MMCIF) 33, CLKO oscillator (CLKOGEN) 34, VCC2 control circuit (VCC2CNT) 35, CLK2 control circuit (CLK2CNT) 36, an IC card iZF control circuit (ICIF) 37, and a data buffer 38.
  • These components 31 to 38 are operated by the power supplied from the host device 2 through the VCC1 terminal 10 and the GND1 terminals 14 and 14.
  • the MMCIZF control circuit 33 is a logic circuit that is connected to the CS terminal 15, the CMD terminal 12, the CLK1 terminal 11, and the DAT terminal 13, and controls the interface for the MMC1 to exchange information with the host device 2 through those terminals. is there.
  • the CPU 31 is connected to the MMCIZF control circuit 33. Control. When the MMCIZF control circuit 33 receives a memory load command from the host device 2 through the CMD terminal 12, the MMCIZF control circuit 33 transmits the result of whether or not the command was successfully received to the host device 2 through the CMD terminal 12 to inform the host device 2 of the result. Send the response to 2.
  • the CPU 31 interprets the received memory card command and executes a process according to the command content. If it is necessary to transmit and receive data through the host device 2 and the DAT terminal 13 according to the command content, the CPU 31 sends data to the MMCIZF control circuit 33 and obtains data from the MMCIZF control circuit 33. Perform.
  • the CLKO oscillator 34 is connected to the CPU 31 and supplies a drive clock for operating the CPU 31.
  • the flash memory chip 5 is a memory chip using a nonvolatile semiconductor memory as a storage medium.
  • the flash memory chip 5 operates by power supplied from the host device 2 through the VCC1 terminal 10 and the GND1 terminal 14.
  • the flash memory chip 5 has a write function of storing input data in a nonvolatile semiconductor memory in accordance with an external flash memory command, and a read function of outputting data stored in the memory to the outside.
  • the flash memory IZF control circuit 32 is a logic circuit for issuing a flash memory command to the flash memory chip 5 and transferring data input / output by the command.
  • the CPU 31 controls the flash memory IZF control circuit 32 to cause the flash memory chip 5 to execute a data write function and a data read function.
  • the CPU 31 communicates with the flash memory IZF control circuit 32.
  • the data transfer between the MMCIZF control circuits 33 is controlled.
  • the ground terminal 24 of the IC card chip 6 is connected to the GND terminal 14 of the MMC external terminal 3.
  • the VCC2 terminal 20 of the IC card chip 6 is connected to the VCC2 control circuit 35 of the controller chip 4.
  • the RST terminal (reset input terminal) 22 and the IZO terminal (data input / output terminal) 23 of the IC card chip 6 are connected to the IC card IZF control circuit 37 of the controller chip 4.
  • the CLK2 terminal (clock input terminal) 21 of the IC card chip 6 is connected to the CLK2 control circuit 36 of the controller chip 4.
  • the VCC2 terminal 20 is a power supply terminal for supplying power to the IC card chip 6.
  • the C2 control circuit 35 is a circuit that generates a VCC2 voltage and controls the start and stop of power supply to the VCC2 pin 20 by a switch circuit using a MOS-FET element.
  • the VCC2 control circuit 35 is connected to the CPU 31, and the CPU 31 can control the start and stop of power supply to the VCC2 pin 20.
  • the CPU 31 can stop supplying power to the VCC2 terminal 20.
  • the MMC 1 can save power consumed by stopping power supply to the IC card chip 6.
  • the CLK 2 terminal 21 is a terminal for inputting a clock signal to the IC card chip 6.
  • the CLK2 control circuit 36 is a circuit that supplies a clock to the CLK2 terminal 21.
  • the CLK2 control circuit 36 generates a clock signal to be supplied to the CLK2 terminal 21 based on the clock signal supplied from the CLKO oscillator 34.
  • the CLK2 control circuit 36 is connected to the CPU 31, and can control the start and stop of the supply of the clock to the CLK 2 terminal 21 from the CPU 31.
  • the IC card chip 6 does not have a drive clock oscillator therein. Therefore, it operates by supplying a drive clock from the CLK2 terminal 21.
  • the CLK2 control circuit 36 F2 (P / Q) * Create a clock signal that has the relationship of FO and supply it to CLK2 pin 21.
  • the values of P and Q can be set by CPU31. If P2 is set large and F2 is increased, the internal processing of the IC card chip 6 can be driven at a higher speed. When Q is set large and F2 is reduced, the internal processing of the IC card chip 6 is driven at a lower speed, and the power consumption of the IC card chip 6 can be reduced.
  • the driving clock frequency of the IC card chip 6 needs to be set within an allowable frequency range in which the IC card chip 6 can operate properly. Therefore, the CLK2 control circuit 36 does not allow the values of P and Q to be set so that the value of F2 is out of the allowable frequency range.
  • the IZO terminal 23 is an input / output terminal used when an IC card command is input to the IC card chip 6 or the IC card chip 6 outputs an IC card response.
  • IC card IZF The control circuit 37 is connected to the IZO terminal 23 and is a circuit for transmitting a signal of an IC card command and receiving a signal of an IC card response through the ⁇ terminal 23.
  • the IC card ⁇ F control circuit 37 is connected to the CPU 31.
  • the CPU 31 controls the procedure for transmitting and receiving IC card commands and IC card responses by the IC card iZF control circuit 37, and transmits IC card command data to be transmitted to the IC card.
  • the card IZF control circuit 37 It is set in the card IZF control circuit 37, and the received IC card response and the like are acquired from the IC card IZF control circuit 37.
  • a clock is supplied from the CLK2 control circuit 36 to the IC card IZF control circuit 37, and IC card commands and IC card responses are transmitted and received through the IZO terminal 23 in synchronization with the clock signal supplied to the CLK2 terminal 21 in bit units. Is done.
  • the RST terminal 22 is a terminal for inputting a reset signal when resetting the IC card chip 6.
  • the IC card IZF control circuit 37 is connected to the RST terminal 22, and can send a reset signal to the IC card chip 6 according to an instruction from the CPU 31.
  • the standard memory card command conforming to the MMC will be described.
  • the command has a 6-byte command field.
  • the first byte is the command code (the first two bits are fixed to "01"), the middle four bytes are arguments used for parameter specification, and the last one byte is CRC ( Cyclic Redundancy Check).
  • MMC returns a response to the host device every time a command is issued. For example, when a reset start command such as CMD1 is issued, the inside of MMC1 is initialized. At this time, the controller chip 4 gives a reset instruction to the reset terminal 22 of the IC card chip 6. When a reset instruction is given to the reset terminal 22, the IC card chip 6 initializes the inside and outputs ATR information as reset response information to the controller chip 4.
  • the ATR information includes an operating limit frequency of the IC card chip 6, a historical byte, and the like.
  • the historical bytes include version information of the OS (operating system) held by the IC card chip 6 and attribute information of application programs.
  • the controller chip 4 refers to the ATR information received from the IC card chip 6 and performs communication settings such as the frequency of the clock CLK2.
  • the host device issues a read command such as CMD17
  • the MMC1 returns a response including the command index and the card status corresponding to the received command to the host device
  • the data read from the flash memory chip is output to the host device.
  • a write command such as CMD24 is issued
  • the MMC1 returns a response including the command index and card status corresponding to the received command to the host device, and writes the write data supplied from the host device to the flash memory chip. Write.
  • the security processing command that causes the IC card chip 6 to execute security processing is realized by an IC card access command. Specifically, a secure read command (CMD51) and a secure write command (CMD51) using a free command code of a standard memory card command are used. CMD 52).
  • the command protocol is the same as the standard memory card command read and write commands.
  • FIG. 2 shows a command protocol of a secure read command (CMD51) and a secure write command (CMD52).
  • the signal information corresponding to the description position of the CMD is signal information input / output via the CMD terminal
  • the signal information corresponding to the description position of the DAT is a signal input / output via the DAT terminal. It means information.
  • the supply direction of the information described in the single frame is the direction from the card host to the MMC1
  • the supply direction of the information described in the double frame is the direction from the MMC1 to the card host.
  • the write data includes a transfer data byte count STL and an IC card command (C APDU) conforming to IS07816.
  • the CPU 31 of the controller chip 4 When the CPU 31 of the controller chip 4 identifies the CMD52 from the command code of the supplied command, among the accompanying write data, it issues an IC card command (C-APDU) of the byte indicated by the transfer data byte number STL. Provided from ICIF37 to input / output terminal 23 of IC card chip 6.
  • the read data includes a transfer data byte number STL and an IC card response (R-APDU) based on IS07816.
  • IC card response (R-APDU) is data that has been subjected to security processing by an IC card.
  • ATR information cannot be read from the IC card chip 6 and output to the outside of the MMC1.
  • the ATR information as reset response information is based on the operating clock that determines the operating limit frequency of the IC card chip. Includes the clock rate, baud rate of input / output data, and historical byte information of the IC card chip.
  • MMC1 has a command (ATR information read command) that enables ATR information to be read out of MMC1 as a command to enhance communication capability with the host device.
  • FIG. 3 illustrates some forms of the ATR information read command.
  • the first form of the ATR information read command is a new command using the empty command code of the standard memory card command (also simply referred to as the ATR information read command CMD50).
  • ATR information read command In the column of CMD50 the signal information corresponding to the description position of CMD means the signal information input / output via the CMD terminal, and the signal information corresponding to the description position of DAT is DAT This means that the signal information is input / output via the terminal.
  • the supply direction of the information described in the single frame is the direction from the card host to the MMC1
  • the supply direction of the information described in the double frame is the direction from the MMC1 to the card host.
  • the command CMD50 When the command CMD50 is input to the CMD pin, a response is returned in response to this, and the ATR information is output to the DAT pin following the transfer data byte count STL.
  • the ATR information read command CMD50 assumes that the MMC1 has one IC card chip.
  • the second form of the ATR information read command assumes that the IC card chip mounted on the MMC1 has a power of two or more, and the data output from the DAT terminal in response to the CMD50 is performed for each IC card chip. Number of data bytes STL and ATR information are output sequentially.
  • the controller chip 4 recognizes the number of IC card chips 6.
  • the third form of the ATR information read command is an IC card chip mounted on the MMC1.
  • the ATR information of the IC card chip specified by the parameter is read.
  • the parameter is information specifying the number of the IC card chip
  • the controller chip 4 DATs the ATR information of the IC card chip 6 of the number specified by the parameter with respect to the number of IC card chips 6. Output from the terminal.
  • the fourth form of the ATR information read command has the same command code as an existing reset start command such as CMD1, and the controller chip 4 sends the number of transfer data bytes STL to the CMD terminal following the response of the initialization processing. And output ATR information.
  • the fifth form of the ATR information read command has the same command code as the existing register read command such as CMD9, and the controller chip 4 continues to output the register value or allocates it to the reserved area of the register.
  • the transfer data byte number STL and ATR information are output to the CMD terminal.
  • the registers to be read by CMD9 are a card identification register (CID) that holds the manufacturer number and the serial number of the card, and a card characteristic data register (CSD) that holds information such as access time and card capacity.
  • CID card identification register
  • CSD card characteristic data register
  • FIG. 4 illustrates a first embodiment for realizing a function based on the ATR information read command CMD50.
  • the IC card chip 6 when the ATR information read command CMD50 is received, the IC card chip 6 performs a reset process, whereby the ATR information output from the IC card chip 6 is stored in the data buffer 38 and stored.
  • the ATR information is output to the host device 2. That is, when the ATR information read command CMD50 is issued from the host device 2 (ST1), the controller chip 4 inputs this, decodes it with the CPU 31, and instructs the RES terminal of the IC card chip 6 to reset via the ICIF37. (ST2).
  • the IC card chip 6 is initialized and outputs ATR information, which is stored in the data buffer 38 from the ICIF 37 via the CPU 31 (ST3).
  • the stored ATR information is output from the MMCIF 33 to the host device 2 (ST4).
  • FIG. 5 illustrates a second embodiment for realizing a function based on the ATR information read command CMD50.
  • the ATR information output by the reset processing of the IC card chip 6 is stored in the data buffer 38 at the time of the power-on reset of the MMC1, and when the ATR information read command CMD50 is received, the ATR information is Output from the data buffer 38 to the host device 2. That is, the reset start command is issued from the host device 2.
  • the controller chip 4 inputs the command, decodes it by the CPU 31, and instructs the RES terminal of the IC card chip 6 to reset via the ICIF 31 (ST2).
  • the IC card chip 6 is initialized and outputs ATR information, which is stored in the data buffer 38 from the ICIF 37 via the CPU 31 and held (ST3).
  • the controller chip 4 receives the command, decodes the ATR information in the CPU 31, and stores the ATR information stored in the data buffer 38 from the MMCIF 33 into the host device. Output to device 2 (ST4).
  • the waiting time from when the ATR information read command CMD50 is issued from the host device 2 to when the ATR information is output from the MMCIF 33 to the host device 2 is shorter than in the first embodiment.
  • FIG. 6 illustrates a third embodiment for realizing a function based on the ATR information read command CMD50.
  • ATR information is stored in a predetermined area of the flash memory chip 5 in advance, and when an ATR information read command CMD50 is received, the ATR information is read from the flash memory chip 5 and output to the host device 2. It does. That is, in the flash memory chip 5, control data such as CID and ATR information are stored in advance in a system area different from the user area (an area in which the user of the MMC 1 is not allowed to use freely).
  • the controller chip 4 When the ATR information read command CMD50 is issued from the host device 2 (ST1), the controller chip 4 inputs this, decodes it with the CPU 31, reads the ATR information via the FMIF32, and stores it in the data buffer 38. (ST6). Then, the CPU 31 outputs the ATR information from the data buffer 38 to the host device 2 via the MMCIF 33 (ST4).
  • the waiting time from when the ATR information read command CMD50 is issued from the host device 2 to when the ATR information is output from the MMC IF 33 to the host device 2 is shorter than in the first embodiment. Force The waiting time is longer than in the second embodiment.
  • FIG. 7 shows an operation example in which the host device refers to the ATR information.
  • the host device 2 executes the ATR information query module in the host application program, it issues an ATR information read command CMD50 (ST1).
  • the controller chip 4 of the MMC 1 outputs the ATR information to the host device 2 (ST4).
  • the host device 2 determines whether the ATR information read according to the program of the inquiry module is that of the IC card OS specified by the expected information (ST7). If it is of the expected IC card OS, it issues a secure write command CMD52 (ST8) and instructs the IC card chip 6 to perform predetermined security processing. For example, the encryption processing method mounted on the IC card chip is determined based on the ATR information corresponding to the IC card OS, and if the determined method is the encryption processing method based on the elliptical encryption operation, the secure write processing is performed. The operation corresponding to the write data (Data) following the command CMD52 is instructed (ST9).
  • FIG. 8 shows another operation example in which the host device refers to the ATR information.
  • the host device 2 refers to the ATR information.
  • a balance inquiry operated by a commercial power source for which it is desirable to lower the operating frequency of the IC card chip 6 from the viewpoint of power saving.
  • a stationary terminal device capable of performing the above it is desirable to increase the operating frequency of the IC card chip 6 from the viewpoint of high-speed processing.
  • the host device 2 performs non-contact interface communication with the IC card chip 6, it is desirable to complete the data processing quickly because the power supply to the IC card chip 6 is covered by the electromotive force via the antenna.
  • the host device 2 refers to the operable frequency information of the IC card chip 6 included in the ATR information read by the ATR information read command CMD50, and operates if the host device 2 is a portable terminal.
  • the frequency lower than the highest operating frequency is set to the IC card chip 6 by the frequency setting command CMD54. If the host device 2 is a stationary terminal device, the operating frequency of the IC card chip 6 is set to the highest operating frequency by the operating frequency setting command CMD54. If the host device 2 is a device that interfaces with the IC card chip in a non-contact manner, the operating frequency of the IC card chip 6 is set to the maximum operating frequency by the operating frequency setting command CMD54.
  • the IC card operation frequency setting command CMD54 is a new command that uses an empty command code of a standard memory card command.
  • CLK2CNT36 that performs the above frequency control is CLK0GEN34 It has frequency dividers DIV1 and DIV2 for dividing the generated clock, and a clock selector CLKSEL for selecting the output of the frequency dividers DIV1 and DIV2. For example, if the maximum operating frequency of the IC card chip 6 is 10 MHz (megahertz), the output of the frequency divider DIV1 is 10 MHz, and the output of the frequency divider DIV2 is 1 MHz.
  • Clock selector Output selection by CLKSEL is specified by command CMD54.
  • the host device 2 refers to the read ATR information, and if you want to operate the IC card chip at the maximum operating frequency at which the ATR information can be ascertained, select the output of the frequency divider DIV1 with command C MD54 and also understand the ATR information If you do not want to operate the IC card chip at the highest possible operating frequency, use command CMD54 to select the output of frequency divider DIV2.
  • FIG. 9 shows another operation example in which the host device 2 refers to the ATR information.
  • the host device 2 controls the operating frequency of the IC card chip 6 according to the operation content of the IC card chip 6 according to the application program. For example, when the host device 2 causes the IC card chip 6 to perform a cryptographic operation in accordance with the application program, the host device 2 issues the command CMD50 to read the ATR information, and reads the IC card at the limit operating frequency indicated by the read ATR information.
  • the command CMD54 causes the controller chip 4 to control the operating frequency of the IC card chip 6 so that the chip 6 operates.
  • the operation frequency of the IC card chip 6 can be controlled by, for example, selecting the output of the frequency divider as described with reference to FIG.
  • the host device 2 writes an IC card command for signal calculation into the controller chip 4 as an IC command (C APDU)) by the command CMD52.
  • the controller chip 6 supplies the IC card command (C-APDU) for the cryptographic operation to the IC card chip 6, and the IC card chip 6 decrypts the IC card command (C APDU) for the cryptographic operation, and the decryption result is obtained. , And returns a response (R-APDU) to the calculation result.
  • the response is output to the host device 2 from the DAT terminal of the MMC 1 via the controller chip 4 in response to the command CMD51 given from the host device.
  • the cryptographic operation processing by the IC card chip 6 is executed at high speed in synchronization with the limited operating frequency of the IC card chip 6 or a high frequency corresponding thereto.
  • the host device recognizes the settable operation capability such as the limit operating frequency of the IC card chip 6 by the ATR information read command CMD50, and Due to the nature of the operation using the IC card chip 6, the device can make settings for the IC card chip 6 so that the processing can be performed efficiently, as represented by the high-speed control of the synchronous clock frequency of the cryptographic operation. .
  • the processing operation of the MMC 1 can be performed at high speed in accordance with the processing by the application program of the host device 2, as represented by the cryptographic operation processing by the IC card chip 6.
  • the host device 2 does not have a command system for reading the ATR information of the IC card chip 6 as in the related art, the command processing enclosed by the broken line in FIG. 9 cannot be performed, and the IC card chip It is not possible to perform the control of designating the cryptographic operation processing by 6 to achieve high-speed operation, and the execution period of the cryptographic operation processing in FIG. 9 is prolonged.
  • FIG. 10 shows another operation example in which the host device 2 refers to the ATR information.
  • the host device 2 controls the operating frequency of the IC card chip 6 according to the operation of the IC card chip 6 according to the application program.
  • the clock signal frequency of the IC card chip 6 is set high when performing data transfer between the host device 2 and the IC card chip 6.
  • the host device 2 reads the ATR information by issuing the command CMD50 and operates the IC card chip 6 at the limit operating frequency indicated by the read ATR information. Then, the command CMD54 causes the controller chip 4 to change the operating frequency of the IC card chip 6 at a high speed.
  • FIG. 11 shows another operation example in which the host device 2 refers to the ATR information.
  • the host device 2 controls the operating frequency of the IC card chip 6 according to the operation of the IC card chip 6 according to the application program.
  • the clock signal frequency of the IC card chip 6 is set high when performing data transfer between the IC card chip 6 and the flash memory chip 5.
  • the host device 2 issues the command CMD50 to read the ATR information.
  • the command CMD54 causes the controller chip 4 to change the operating frequency of the IC card chip 6 at a high speed so that the IC card chip 6 operates at the limit operating frequency indicated by the read and read ATR information.
  • FIG. 12 exemplifies some forms of a device code read command (device code read command) stored in the flash memory chip 5 as information indicating an erase unit.
  • the device code is code information indicating a product type of each flash memory manufacturer. With this device code, the storage capacity of the flash memory chip 5 and the number of bytes of the erasing unit are uniquely controlled.
  • the first form of the device code read command is a new command CMD49 using a free command code of a standard memory card command.
  • Device code read command In the column of CMD49, the signal information corresponding to the description position of CMD means signal information input / output via the CMD terminal, and the signal information corresponding to the description position of DAT is DAT It means signal information input / output via a terminal.
  • the supply direction of the information described in the single frame is the direction from the card host to MMC1
  • the supply direction of the information described in the double frame is the direction from MMC1 to the card host.
  • the command CMD49 When the command CMD49 is input to the CMD terminal, a response is returned in response to the command CMD49, and the device code of the flash memory chip 5 (flash device code) is output to the DAT terminal following the number STL of transfer data knots. In the first embodiment, it is assumed that the number of flash memory chips 5 is one.
  • the second form of the device code read command is based on the assumption that the flash memory chip 5 mounted on the MMC1 is composed of a plurality of memory chip cards, and the data of the DAT terminal force in response to CMD49.
  • the output is the number of data bytes S for each flash memory chip 5.
  • TL and flash device code are sequentially output.
  • the controller chip 4 recognizes the number of the flash memory chips 5 and controls data output for the number.
  • the third form of the device code read command is such that when two or more flash memory chips 5 are mounted on the MMC1, the flash device code of one flash memory chip 5 specified by a parameter is read. It was made.
  • the parameter is information specifying the number of the flash memory chip, and the controller chip 4 outputs the flash device code of the flash memory chip of the number specified by the parameter with respect to the number of flash memory chips from the DAT terminal. I do.
  • the third embodiment has a significance to be used in a case where a plurality of flash memory chips 5 are mounted and an attempt is made to read individual flash device codes one by one.
  • FIG. 13 illustrates a first embodiment for realizing a function based on the device code read command CMD49.
  • the controller chip 4 issues a device code output command to the flash memory chip 5 (ST11).
  • the flash device code read from the flash memory chip 5 is stored in the data buffer 38 (ST12), and the stored flash device code is output to the host device 2 (ST13).
  • F—CODE is the flash device code output from MMC1.
  • FIG. 14 illustrates a second embodiment for realizing the function by the device code read command CMD49.
  • the flash device code is read out from the flash memory chip 5 by a reset process at the time of power-on reset of the MMC 1 and stored in the data buffer 38, and when the device code read command CMD49 is received, the flash device The code is output from the data buffer 38 to the host device 2. That is, when the reset start command CMD1 is issued from the host device 2 (ST14), the controller chip 4 inputs this, decodes it in the CPU 31, and gives a device code output command to the flash memory chip 5 via the FMIF 32 (ST11). . The controller chip 4 stores the flash device code read from the flash memory chip 5 in the data buffer 38 via the CPU 31 (ST12).
  • the controller In step 4 when the host device 2 issues a device code read command CMD49 (ST10), the controller In step 4, this is input, decoded by the CPU 31, and the flash device code stored in the data buffer 38 is output from the MMCIF 33 to the host device 2 (ST13).
  • the second embodiment has a shorter waiting time from the issuance of the device code read command CMD49 from the host device 2 to the output of the flash device code from the MMCIF 33 to the host device 2 as compared to the first embodiment. .
  • FIG. 15 illustrates a third embodiment for realizing the function by the device code read command CMD49.
  • the flash device code F-CODE is stored in a predetermined memory area of the flash memory chip 5 in advance, and when the device code read command CMD49 is received, the memory device reads the flash device code.
  • the flash device code is read from the flash memory chip 5 and output to the host device 2. That is, in the flash memory chip 5, control data such as CID and a flash device code F-CODE are stored in advance in a system area different from the user area! This area is a different memory area from the device code storage area individually held by the flash memory chip 5.
  • the device codes of all the flash memory chips are typically stored in the predetermined area of one flash memory chip.
  • the controller chip 4 inputs this, decodes it in the CPU 31, and reads the device code to the flash memory chip 5 via the FMIF32.
  • An access command is given (ST15), and the read flash device code is stored in the data buffer 38 (ST16). Then, the CPU 31 outputs the flash device code from the data buffer 38 to the host device 2 via the MMCIF 33 (ST13).
  • the wait time until the device code read command CMD49 is issued from the host device 2 and the flash device code is output from the MMCIF 33 to the host device 2 is shortened.
  • the waiting time is longer than in the second embodiment.
  • reading of the flash device code from the flash memory chip 5 to the data buffer 38 is performed by an initialization command by CMD1, and thereafter, the command CMD49 is executed in the same manner as in FIG. In response to the flash device code May be output from the data buffer 38 to the outside.
  • the host device 2 When instructing MMC1 to perform multi-write for continuously writing data, the host device 2 sets the number of write data in 512-byte units with the command CMD23, and then supplies the command CMD25 and the write data. To start the write operation. Therefore, the number of erasures differs depending on the relationship between the designated number of write data and the erasure unit. For example, when transferring 1 kilobyte (KB) of data with one write command, and writing 2 KB of data to the AND-type flash memory with the erase unit of 2 KB, a total of two write commands are issued. Two erasures are required for each erasure unit.
  • KB kilobyte
  • the erased physical address of the write destination is assigned 1 KB of write data DataO, Data 1 in the data buffer and the write target logical address! /, And the remaining 1 KB of the original physical address Data2, Data2, , Data3, and so on (ST23).
  • the host device issues a write command CMD25 and the remaining 512 bytes of write data Dat.
  • the transfer data Data2 and Data3 (512B ⁇ 2) are taken into the data buffer (ST25). If a valid physical address corresponding to the logical address to be written exists, a new physical address to which the logical address is assigned is searched, and the block of the searched new write destination physical address is erased (ST26).
  • the number of erasures and the write processing time differ depending on the content of the instruction by the write command process due to the difference in the erase unit of the flash memory chip.
  • the host device grasps the erase unit of the flash memory and transfers the write data, the number of erases per erase unit can be reduced, and the write processing time can be prevented from becoming uselessly long. Will be possible.
  • the host device 2 grasps the erase unit of the flash memory chip 5 from the flash device code read by the device code read command CMD49.
  • FIG. 19 shows an operation example in which the host device 2 recognizes the erase unit of the flash memory chip 5 from the flash device code and optimizes the transfer number of write data.
  • Erase unit When writing to a 2KB flash memory chip 5 in 512B units, write It is necessary to repeat the write command issue and erase and write operations four times.
  • the host device 2 knows the flash device code read by the device code read command CMD49 and the erasure unit of the flash memory chip 5, the host device 2 can use the 2KB unit in the case of the flash memory chip 5 having the erasure unit of 2KB.
  • FIG. 20 shows an operation of transferring 2 KB of data by one command to the MMC 1 equipped with the flash memory chip 5 of 2 KB of erasure unit and writing a total of 2 KB of data.
  • the host device 2 knows that the erase unit of the flash memory chip 5 mounted on the MMC 1 is 2 KB by the command CMD49.
  • FIG. 21 shows an example in which the controller chip 4 has the function of analyzing the optimum rewrite unit based on the read device code.
  • the controller chip 4 decodes the command CMD48 by the CPU 31 and instructs the flash memory chip 5 to read the flash device code (ST41). I do.
  • the controller chip 4 obtains an erase unit from the flash device code read from the flash memory chip 5, and analyzes an optimum rewrite unit. For example, if the device is a flash memory chip 5 with an erase unit of 2 KB, the optimal rewrite unit is 2 KB.
  • the analysis result may be a value such as 2 KB, or the number of data in units of 512 ⁇ ⁇ ⁇ , for example, four.
  • This analysis result is It is held in file 38 (ST42).
  • the CPU 31 outputs the optimum rewrite unit information held in the data buffer 38 to the host device 2.
  • the host device 2 directly refers to the optimum rewriting unit information, determines the number of data to be attached to one write command, and issues a write command to the MMC1.
  • F-CNT is the optimum rewriting unit information and has a value of 4.
  • the value 4 means 512B x 4
  • the write data following the write command CMD25 is 512 units of 0 ⁇ 15128 units, which is a total of 2KB, and erases and erases data for the flash memory chip 5 with an erase unit of 2KB. The writing process can be performed most efficiently.
  • FIG. 23 shows an example in which the device code is used for setting the frequency of the flash memory chip 5.
  • the host device 2 reads the flash device code from the flash memory.
  • the operation limit frequency of the chip 5 is calculated (ST50), and a command CMD54 for setting the operation frequency of the flash memory chip 5 is issued (ST51).
  • the controller chip 4 controls the operating frequencies of the CPU 31, the DBUF 38, and the flash memory chip 5 by the CLK2CNT36. In the description of FIG. 8, the operating frequency of the IC card chip 6 is set by the CLK2CNT36.
  • the CLK2CNT36 includes frequency dividers DIV1 and DIV2 for dividing the clock generated by the CLK0GEN34, and the frequency dividers DIV1 and DIV1. It has a clock selector CLKSEL for selecting the output of DIV2. For example, if the maximum operating frequency of the flash memory chip 5 is 10 MHz (megahertz), the output of the divider DIV1 is 10 MHz and the output of the divider DIV2 is 1 MHz. The output selection by the clock selector CLKSEL is specified by the command CMD54.
  • the host device 2 refers to the read flash device code, and if you want to operate the flash memory chip 5 at the highest operating frequency that can be grasped, select the output of the frequency divider DIV1 with the command VCMD54 and grasp from the device code. If you do not want to operate the IC card chip at the highest possible operating frequency, use command CMD54 to select the output of frequency divider DIV2. Since the DBUF 38 operates in synchronization with a clock like a synchronous DRAM, the operation clock frequency is controlled in accordance with the operation frequency of the flash memory chip 5 and the CPU 31. [0091] As in the case of Fig. 8, the frequency dividers typically shown in Fig. 8 are changed to variable frequency dividers, and the frequency division ratio can be arbitrarily or multiply programmable by a command. Just try to control it.
  • the controller chip 4 reads the flash device code F-CODE from the flash memory chip 5 in response to a predetermined command such as the operation limit frequency read command, and reads the flash device code from the read flash device code.
  • the operation limit frequency of the memory chip 5 may be calculated, and the calculated operation limit frequency may be output to the host device 2.
  • the controller chip 4 responds to the command CMD54 by the CLK2CNT36 to , DBUF38, control the operating frequency of the flash memory chip 5.
  • the storage device is not limited to the MMC, and can be widely applied to various types of storage devices of other memory card standards. Therefore, the command code, command format, data communication protocol and the like can be variously changed according to the card standard.
  • the interface controller, security controller, and non-volatile memory are not limited to separate chips.For example, the interface controller and non-volatile memory can be integrated into one chip, or all can be integrated into one chip. It is.
  • the security controller is not limited to the IC card microcomputer, but may be any circuit module having a security function that will be developed or currently exists in the future.
  • the present invention is suitable for a flash memory chip, a microcomputer chip for an IC card, a memory card equipped with a controller chip, and the like.

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

明 細 書
記憶装置及びデータ処理装置
技術分野
[0001] 本発明は、不揮発性の情報記憶機能を有する記憶装置、不揮発性の情報記憶機 能と共に記憶情報に対するセキュリティ機能を有する記憶装置、更にその記憶装置 が挿入されるホスト機器などのデータ処理装置に関し、例えばフラッシュメモリチップ
、 ICカード用マイクロコンピュータチップ及びコントローラチップを有するメモリカード に適用して有効な技術に関する。
背景技術
[0002] 非特許文献 1には ICカードのデバイス間におけるインタフェース端子及び転送プロ トコルについて記載される。ここには、例えば、 ATR (Answer To Reset)等について 記載がある。 ATRは、リセット処理に対する応答としてリセット処理後に ICカードから インタフェースデバイスに向けて送られる通信プロトコルを示すための値である、とさ れる。非特許文献 2には ICカードの情報交換のためのコマンド仕様が記載される。
[0003] 特許文献 1には、フラッシュメモリチップとセキュリティ処理を実行可能な ICカードチ ップと、ホストからの要求に応じてフラッシュメモリチップ及び ICカードチップへのァク セス等を制御するコントローラチップとを有し、このコントローラチップがフラッシュメモ リチップと ICカードチップの両方にホストからの要求に応じてアクセス可能な、メモリ力 ードについて記載される。
[0004] 非特許文献 l :ISO/lEC 7816-3 Second edition (1997—12—15)
非特許文献 2 :ISOZlEC 7816-4 First edition (1995—09—01)
特許文献 1 :特開 2003— 22216号公報(図 1)
発明の開示
発明が解決しょうとする課題
[0005] 本発明者はメモリカードとカードホストとの間でのコミュニケーション能力について検 討した。第 1には、 ICカードチップによるセキュリティ機能を搭載したフラッシュメモリ力 一ドのモパイル用途への適用に関してである。 [0006] 通常、 ICカードとカードホスト間で ICカードリセット時に、カードホストは ICカードか ら出力されるリセット応答として ATR情報を直接読み取り、この ATRの情報を使用し て必要な通信設定を行い、設定された通信条件にて、それ以降、前記非特許文献 2 の記載に準拠したコマンド処理を行う。またカードホストのアプリケーションによっては ATR情報に含まれる、 ICカードの OS (オペレーティングシステム)に依存する固有値 を使用するものも存在する。特に、モパイル端末をターゲットとした ICカードを使用す るアプリケーションを考えると、 ICカードによる高速処理が必要な場合には通信速度 や演算速度を高速化し、そうでない時は電力消費を抑えてバッテリ寿命を延ばす、と いう制御形態の必要性が見出された。
[0007] し力しながら、 ICカードによるセキュリティ機能をメモリカードに搭載した場合、コント ローラチップが ICカードの処理に深く係わらないことがセキュリティ性の維持には望ま しいことから、 ICカードへのリセット及び通信設定はコントローラが行い、通信設定終 了以降におけるカードホストと ICカードチップとのデータのやり取りは、 CMD51, C MD52などの新規のカードコマンドをコントローラに与えて行なうようにしている。この 新規カードコマンドは、 IS07816に準拠したコマンド処理を指示する ICカードコマン ド等を付随させたコマンドである。この新規メモリカードコマンド CMD52を受取った力 ードコントローラは、そのコマンドに付随するセキュリティ処理用の情報である ICカー ドコマンドを ICカードチップに与える。また、その ICカードコマンドに応答して ICカー ドから出力される応答データ等に対しては、メモリカードコマンド CMD51を受取った カードコントローラがカードホストに向けて供給する。
[0008] その場合には、従来カードホストと ICカード間で直接やり取りをしていた ATR情報 を読み出すことが出来ない。即ち、 ICカードチップに対するリセットと通信設定はカー ドコントローラが行ない、 ATR情報はカードホストに出力されない。通信設定後の新 規カードコマンド CMD51, CMD52では ATR情報を読み出す事ができない。これ により、カードホストにおいて、 ATR情報を照会するアプリケーションなどによっては、 処理上 ICカードとの互換性の点で問題となる。さらに、カードホストは前記 ICカードチ ップを有するメモリカードから ATR情報を取得することができな 、ため、カードホスト のアプリケーションや ICカードチップによる処理内容に応じて ICカードチップの動作 周波数などの通信設定を変更することができず、モパイル用途に対する制限になつ てしまう。これは、従来のメモリカードのコマンド体系では ICカード機能を搭載したメモ リカードとカードホストとの間でのコミュニケーション能力が不十分であることに起因す る。
[0009] 第 2には、メモリカードに搭載されるフラッシュメモリの消去単位カ モリカード間で 異なる場合、書込み時におけるカードホストからのデータ転送数により、フラッシュメ モリにかかる書換えストレスが増加したりや書込み転送レートが悪くなつたりすることに 関する。一般的にメモリカードに搭載されるフラッシュメモリは AND、 NAND、 AG- ANDといったメモリアレイの構成の違いや記憶容量の相違により消去単位が統一さ れていない。この消去単位の違いに対しては、メモリカードのコントローラがその違い に応じて消去処理を制御する力 カードホストからの 1回の書込みコマンドで転送さ れる書込みデータ数によってフラッシュメモリが物理的に消去を行う回数が異なる。 例えば、消去単位が 2048ビットのとき、 2048ビットの書き換えを行なうの〖こ、カード ホストが 1024ビットの書込みデータを伴って 2回書込みコマンドを発行する場合には 、 2048ビットの書込みデータを伴って 1回書込みコマンドを発行する場合に比べて、 消去の高電圧印加によるストレスが 2倍になる。書換え単位が大きいフラッシュメモリ を搭載したメモリカードほど書換えストレス (消去回数)が大きぐ書込み時のオーバ 一ヘッドも大きくなる。これは、従来のメモリカードのコマンド体系では内蔵不揮発性メ モリの消去単位を外部力も認識するコミュニケーション手段が提供されて 、な 、と 、う 、コミュニケーション能力の不足に起因する。
[0010] 本発明の目的は、 ICカードチップのようなセキュリティコントローラ若しくはフラッシュ メモリチップのような不揮発性メモリを搭載したメモリカードのような記憶装置のデータ 処理装置との間におけるコミュニケーション能力を向上させることにある。
[0011] 本発明の別の目的は、 ICカードチップのようなセキュリティコントローラを搭載したメ モリカードのような記憶装置におけるセキュリティコントローラの動作速度や電力消費 を変更可能にすることである。
[0012] 本発明のさらに別の目的は、メモリカードに搭載されたフラッシュメモリのような不揮 発性メモリにおける記憶領域の初期化単位に則した、書換えストレスが少なく書込み データの転送効率の良好な初期化を、外部より可能にすることである。
[0013] 本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面 力 明らかになるであろう。
課題を解決するための手段
[0014] 本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記 の通りである。
[0015] 〔1〕メモリカードのような記憶装置は、インタフェースコントローラ、書き換え可能な不 揮発性メモリ及びデータのセキュリティ処理を行なうセキュリティコントローラを備え、 前記インタフェースコントローラは、セキュリティコントローラへのリセット指示に応答し てセキュリティコントローラが出力するリセット応答情報 (ATR)と、前記不揮発性メモリ の記憶領域の初期化単位を示す情報 (F— CODE、 F_CNT)の少なくとも一方の 情報を、外部から前記インタフェースコントローラに与えられる所定の第 1のコマンド に応答して外部に出力可能である。リセット応答情報を外部からのコマンドに応答し て外部に出力することにより、それを受けるカードホストのようなデータ処理装置は、リ セット応答情報を参照してインタフェースコントローラにセキュリティコントローラの動作 速度若しくは動作周波数等を変更させることが可能になる。また、初期化単位を示す 情報を外部からのコマンドに応答して外部に出力することにより、それを受けるカード ホストのようなデータ処理装置は、不揮発性メモリに対する記憶情報の書き換えに際 して、初期化単位を示す情報を参照することにより、記憶領域の初期化単位に見合う 量の書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。
[0016] 本発明の具体的な形態として、前記インタフェースコントローラは周波数を設定する コマンドに応答してセキュリティコントローラに与えるクロック信号の周波数を変更可能 である。
[0017] 本発明の具体的な形態として、前記インタフェースコントローラは、外部から与えら れる第 2のコマンドに応答して当該第 2のコマンドに含まれるセキュリティ処理用情報 を抜き出してセキュリティコントローラに与え、外部力も与えられる第 3のコマンドに応 答して前記セキュリティコントローラによるセキュリティ処理結果を外部に出力する。ィ ンタフェースコントローラはセキュリティコントローラの構成に立ち入らずにセキュリティ コントローラにセキュリティ処理を指示することができる。
[0018] 本発明の具体的な形態として、前記インタフェースコントローラは、上記記憶装置の 初期化コマンドに応答して前記少なくとも一方の情報をラッチする揮発性記憶回路を 有し、前記所定の第 1のコマンドに応答して前記記憶回路が保有する前記一方の情 報を上記記憶装置の外部に出力する。このとき、前記揮発性記憶回路にラッチする 前記少なくとも一方の情報は前記不揮発性メモリに初期的に格納されていてよい。一 々セキュリティコントローラ内部をアクセスしなくても済み、また、不揮発性メモリが複 数個存在するような場合に夫々力 デバイスコードなどを取得するのに複数回不揮 発性メモリをアクセスしなくても済む。
[0019] 本発明の具体的な形態として、前記所定の第 1のコマンドは上記記憶装置の初期 化コマンドとは異なるコマンドコードを有する。別の形態として、前記所定の第 1のコ マンドに上記記憶装置の初期化コマンドのコマンドコードを割当てるとき、前記インタ フェースコントローラは、初期化処理のレスポンスに続けて前記少なくとも一方の情報 を外部に出力する。更に別の形態として、前記所定の第 1のコマンドに前記インタフ エースコントローラが保有するカード識別レジスタ又はカード特性レジスタのような所 定のレジスタに対するリードコマンドのコマンドコードを割当てるとき、前記インタフエ ースコントローラは、前記レジスタが保有する情報の出力に続けて、又はレジスタの予 約領域に割当てて前記少なくとも一方の情報を外部に出力する。
[0020] 本発明の具体的な形態として、前記リセット応答情報は、前記セキュリティコントロー ラの動作限界周波数及びヒストリカルバイト情報を含む。前記記憶領域の初期化単 位を示す情報は、不揮発性メモリの種別を示すデバイスコード、又は前記デバイスコ ードに基づいて生成された初期化単位に応ずるデータ数情報である。
[0021] 〔2〕カードホストのようなデータ処理装置は、上記記憶装置が装着可能にされ、前 記リセット応答情報を出力させる前記所定の第 1のコマンドを前記記憶装置に出力し 、これに応答して前記記憶装置から出力されるリセット応答情報を入力し、入力したリ セット応答情報を参照して、前記セキュリティコントローラの動作周波数の設定を変更 可能である。リセット応答情報を外部からのコマンドに応答して外部に出力することに より、それを受けるカードホストのようなデータ処理装置は、リセット応答情報を参照し てインタフェースコントローラにセキュリティコントローラの動作速度若しくは動作周波 数等を変更させることが可能になる。
[0022] 別の形態によるカードホストのようなデータ処理装置は、上記記憶装置が装着可能 にされ、前記記憶領域の初期化単位を示す情報を出力させる前記所定の第 1のコマ ンドを前記記憶装置に出力し、これに応答して前記記憶装置から出力される前記記 憶領域の初期化単位を示す情報を入力し、入力した前記初期化単位を示す情報に 基づ!、て、前記記憶装置への書込みデータのデータ転送数を前記初期化単位毎と する。初期化単位を示す情報を外部力ものコマンドに応答して外部に出力することに より、それを受けるカードホストのようなデータ処理装置は、不揮発性メモリに対する 記憶情報の書き換えに際して、初期化単位を示す情報を参照することにより、記憶領 域の初期化単位に見合う量の書込みデータを記憶装置に送ってから書込み指示を 与えることが可能になる。
[0023] 〔3〕メモリカードのような記憶装置はインタフェースコントローラ及び書き換え可能な 不揮発性メモリを備え、前記インタフェースコントローラは、前記不揮発性メモリの記 憶領域の初期化単位を示す情報を、外部力も前記インタフェースコントローラに与え られる所定のコマンドに応答して外部に出力可能である。初期化単位を示す情報を 外部からのコマンドに応答して外部に出力することにより、それを受けるカードホスト のようなデータ処理装置は、不揮発性メモリに対する記憶情報の書き換えに際して、 初期化単位を示す情報を参照することにより、記憶領域の初期化単位に見合う量の 書込みデータを記憶装置に送ってから書込み指示を与えることが可能になる。
[0024] 本発明の具体的形態として、前記所定のコマンドに前記記憶装置の初期化コマン ドと同じコマンドコードを割当てるとき、前記インタフェースコントローラは、初期化処 理のレスポンスに続けて前記初期化単位を示す情報を外部に出力する。また、別の 形態として、前記所定のコマンドに前記インタフェースコントローラが保有するカード 識別レジスタ又はカード特性レジスタのような所定のレジスタに対するリードコマンドと 同じコマンドコードを割当てるとき、前記インタフェースコントローラは、前記レジスタが 保有する情報の出力に続けて、又はレジスタの予約領域に割当てて前記初期化単 位を示す情報を外部に出力する。 [0025] 本発明の具体的形態として、前記初期化単位を示す情報は、不揮発性メモリの種 別を示すデバイスコード、又は前記デバイスコードに基づ!ヽて生成された記憶領域 の初期化単位に応ずるデータ数情報である。前記インタフェースコントローラは、前 記不揮発性メモリからその種別を示すデバイスコードを取得し、取得したデバイスコ ードに基づ 、て前記不揮発性メモリの動作限界周波数を取得し、前記所定のコマン ドに応答して動作限界周波数を外部に出力する。前記インタフェースコントローラは 周波数を設定するコマンドに応答して不揮発性メモリに与えるクロック信号の周波数 を変更可能である。
発明の効果
[0026] 本願において開示される発明のうち代表的なものによって得られる効果を簡単に説 明すれば下記の通りである。
[0027] すなわち、リセット応答情報の外部出力や初期化単位を示す情報の外部出力を行 なうことができるから、 ICカードチップのようなセキュリティコントローラ若しくはフラッシ ュメモリチップのような不揮発性メモリを搭載したメモリカードのような記憶装置に対し て、カードホストのようなデータ処理装置との間におけるコミュニケーション能力を向 上させることができる。
[0028] リセット応答情報の外部出力が可能であるから、 ICカードチップのようなセキュリティ コントローラを搭載したメモリカードのような記憶装置におけるセキュリティコントローラ の動作速度や電力消費を変更可能になる。
[0029] 初期化単位を示す情報の外部出力が可能であるから、メモリカードに搭載されたフ ラッシュメモリのような不揮発性メモリにおける消去単位のような記憶領域に対してそ の初期化単位に則した書換えストレスが少なく書込みデータの転送効率の良好なァ クセス制御を外部より行なうことが可能になる。
図面の簡単な説明
[0030] [図 1]本発明を適用した記憶装置としての MMCの内部構成を示したブロック図であ る。
[図 2]セキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD52)のコマンド プロトコルを示す説明図である。 圆 3]ATR情報読み出しコマンドの幾つかの形態を例示する説明図である。
[図 4]ATR情報読み出しコマンド CMD50による機能を実現するための第 1の実施形 態を例示する説明図である。
[図 5]ATR情報読み出しコマンド CMD50による機能を実現するための第 2の実施形 態を例示する説明図である。
[図 6]ATR情報読み出しコマンド CMD50による機能を実現するための第 3の実施形 態を例示する説明図である。
圆 7]ホスト機器による ATR情報を参照した動作例を示す説明図である。
圆 8]ホスト機器による ATR情報を参照した別の動作例を示す説明図である。
圆 9]ホスト機器による ATR情報を参照した別の動作例を示す説明図である。
圆 10]ホスト機器による ATR情報を参照した別の動作例を示す説明図である。
圆 11]ホスト機器による ATR情報を参照した別の動作例を示す説明図である。
[図 12]消去単位を示す情報としてフラッシュメモリチップに格納されているデバイスコ ードの読み出しコマンドの幾つかの形態を例示する説明図である。
[図 13]デバイスコード読み出しコマンド CMD49による機能を実現するための第 1の 実施形態を例示する説明図である。
[図 14]デバイスコード読み出しコマンド CMD49による機能を実現するための第 2の 実施形態を例示する説明図である。
[図 15]デバイスコード読み出しコマンド CMD49による機能を実現するための第 3の 実施形態を例示する説明図である。
[図 16]消去単位 2KBのフラッシュメモリを搭載した MMC1に 1コマンドで 1KBのデー タ転送を行なって合計 2KBのデータを書き込む場合の動作の前半を例示する説明 図である。
圆 17]図 16の動作に続く後半動作を例示する説明図である。
[図 18]1回の書き込みコマンドで 1KBの書き込みデータを転送して合計 16KBの書き 込みを行なう場合と、 1回の書き込みコマンドで 2KBの書き込みデータを転送して合 計 16KBの書き込みを行なう場合との動作の比較例を示す説明図である。
[図 19]ホスト機器がフラッシュデバイスコードからフラッシュメモリの消去単位を把握し て書込みデータの転送数を最適化する動作例を示す説明図である。
[図 20]消去単位 2KBのフラッシュメモリを搭載した MMC1に 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 フラッシュメモリ IZF制御回路
33 MMCI/F制御回路 34 CLKO発振器
35 VCC2制御回路
36 CLK2制御回路
37 ICカード IZF制御回路
38 データバッファ
発明を実施するための最良の形態
[0032] 《MMC》
図 1は、本発明を適用した記憶装置としての MultiMediaCard (MultiMediaCard は、 InfineonTechnologiesAGの登録商標である。以下、「MMC」と略記する。)の 内部構成を示した図である。 MMC1は、 MMC仕様に準拠するのが好ましい。 MM C 1は、 MMC1に接続されたデータ処理装置としてのホスト機器 (若しくはカードホス ト) 2から発行された MMC仕様に準拠したメモリカードコマンドに基づいて、機密デ ータ保護や個人認証などに必要な暗号演算をおこなうセキュリティ処理機能を持つ。
[0033] ホスト機器 2は、例えば、携帯電話、携帯情報端末 (PDA)、パーソナルコンビユー タ、音楽再生 (及び録音)装置、カメラ、ビデオカメラ、自動預金預払機、街角端末、 及び決済端末等が該当する。
[0034] MMC1は、 MMC外部端子 3、インタフェースコントローラとしてのコントローラチッ プ 4、不揮発性メモリとしてのフラッシュメモリチップ (FLASH) 5、及びセキュリティコ ントローラとしての ICカードチップ(MCU) 6を持つ。フラッシュメモリチップ 5は、不揮 発性の半導体メモリを記憶媒体とするメモリチップであり、フラッシュメモリコマンドによ りデータの読み書きができる。 MMC外部端子 3は、外部のホスト機器 2と情報交換す るために、電源 (VCC2)供給端子 10、クロック(CLK1)入力端子 11、コマンド (CM D)入出力端子 12、データ (DAT)入出力端子 13、グランド (GND)端子 14、チップ 選択 (CS)端子 15等の 7つの端子力 構成される。 MMC仕様は、 MMC1の動作モ ードとして MMCモードと SPIモードという 2種類を規定しており、動作モードによって MMC外部端子 3の使用法は異なる。
[0035] コントローラチップ 4は、 MMC外部端子 3、フラッシュメモリチップ 5、及び ICカード チップ 6と接続され、これらを制御するマイコンチップである。 [0036] ICカードチップ 6は、 ICカードのプラスチック基板中に埋め込むためのマイコンチッ プであり、 ICカードチップ 6が有する外部端子、電気信号プロトコル、コマンドは ISO ZIEC7816規格に準拠している。 ICカードチップ 6の外部端子には、電源 (VCC2) 供給端子 20、クロック (CLK2)入力端子 21、リセット (RES)入力端子 22、入出力(I ZO)端子 23、及びグランド (GND)端子 24がある。 NC端子は将来のための予備端 子である。コントローラチップ 4は、 ICカードチップ 6の外部端子から ICカードチップ 6 に ICカードコマンドを発行することによって、外部のホスト機器 2から要求されたセキ ユリティ処理に必要な演算を行なう。
[0037] ICカードチップ 6は、特に図示は省略するが、演算処理を行うための CPU (マイコ ン)、データ(プログラムを含む。 )を記憶するための ROM (Read Only Memory)、 RA M (Random Access Memory)、 EEPROM (Electrically Erasable Programmable ROM )、暗号 Z復号に関する処理を行うための暗号器を構成する暗号コプロセッサ、及び 外部とデータを送受信するためのシリアルインターフェースを備える。これらはバスに よって相互に接続される。
[0038] 前記暗号コプロセッサは、ホスト機器 2からのコマンドに応じて、セキュリティ処理を 実行する。尚、暗号コプロセッサ(ノヽ一ドウエア)の変わりに、プログラム(ソフトウェア) を用いて CPUがセキュリティ処理を実行してもよい。セキュリティ処理は、例えば、 IC カードチップ 6内の記憶領域にデータが書き込まれるとき、又は、 ICカードチップ 6内 の記憶領域力 データが読み出されるときに実行される。
[0039] 前記フラッシュメモリチップ 5は、不揮発性の記憶素子を有する。一般的に、 ICカー ドチップ 6の EEPROMの記憶容量は、フラッシュメモリチップ 5の記憶容量より小さ!/ヽ 。但し、 EEPROMの記憶容量は、フラッシュメモリチップ 5の記憶容量と同じでもよい し、大さくてちょい。
[0040] ICカードチップ 6には、セキュリティ評価基準の国際標準である ISOZIEC15408 の評価'認証機関によって認証済みである製品を利用するのが望ましい。一般に、セ キユリティ処理を行なう機能を持つ ICカードを実際の電子決済サービスなどで利用す る場合、その ICカードは ISOZIEC 15408の評価 ·認証機関による評価と認定を受 ける必要がある。 MMCにセキュリティ処理を行なう機能を追加することによって MM CIを実現し、それを実際の電子決済サービスなどで利用する場合、 MMC1も同様 に ISOZIEC15408の評価 ·認証機関による評価と認定を受ける必要がある。本発 明においては、 MMC1は、評価'認証機関によって認証済みの ICカードチップ 6を 内蔵し、その ICカードチップ 6を利用してセキュリティ処理をおこなう構造を持つこと により、セキュリティ処理機能を得る。したがって、 MMC1は ISOZIEC15408に基 づくセキュリティ評価基準を容易に満足することができ、 MMCにセキュリティ処理機 能を追加するための開発期間を短縮することができる。しかし、 ISOZIEC15408の 評価 ·認証機関により認証済の製品ではない ICカードチップを排除するものではなく 、ICカードチップにより提供するサービスの求めるセキュリティ強度に応じた ICカード チップを用いても良い。
[0041] MMC1は、 MMC仕様に準拠した外部インタフェースを持つのが好ましい。 MMC 1は、一種類の外部インタフェースを通じて、標準メモリカードコマンド (フラッシュメモ リチップへアクセスするためのコマンド)に加えて、セキュリティ処理を実行するコマン ドを受け付ける必要がある。コントローラチップ 4は、 MMC1が受信したコマンドが標 準メモリカードコマンドである力、セキュリティ処理を実行するコマンドであるかによつ て、アクセスすべきチップを選択し、コマンド処理を分配する機能を持つ。この例では 、コントローラチップ 4は、標準メモリカードコマンドを受信したならば、フラッシュメモリ チップ 5を選択し、これにフラッシュメモリコマンドを発行してホストデータを読み書き できる。また、セキュリティ処理を実行するコマンドを受信したならば、 ICカードチップ 6を選択し、これに ICカードコマンドを発行してセキュリティ処理を実行することができ る。更にコントローラチップは、ホスト機器 2とのコミュニケーション能力を強化するため に、リセット指示に応答して ICカードチップが出力する ATR情報を外部に出力する 機能、並びに、フラッシュメモリチップ 5の消去単位を示す情報を外部に出力する機 能を有する。しかし、 MMC仕様に準拠した外部インタフェース以外の外部インタフエ ースを排除するものではなぐ現在存在し若しくは将来において存在するであろう外 部インタフェースに準拠するものであって良 、。
[0042] ICカードチップ 6の外部端子は、グランド端子 24を除 、て、電源供給端子 20、クロ ック入力端子 21、リセット入力端子 22、入出力端子 23がコントローラチップ 4と接続さ れている。
[0043] コントローラチップ 4は、電源供給端子 10、クロック入力端子 11を通して、 ICカード チップ 6への電源供給、クロック供給を制御する。本実施形態によれば、ホスト機器 2 力もセキュリティ処理を要求されないときには、コントローラチップ 4が ICカードチップ 6への電源供給やクロック供給を停止することができ、 MMC1の電力消費を削減す ることがでさる。
[0044] 電源が供給されて 、な 、ICカードチップ 6を、 ICカードコマンドを受信できる状態に するには、まず、 ICカードチップ 6に電源供給を開始し、リセット処理を施す必要があ る。即ち、コントローラチップ 4は、 MMC1がホスト機器 2からセキュリティ処理を実行 するコマンドを受信したのを契機に、電源供給端子を通して ICカードチップ 6への電 源供給を開始する機能を有する。また、コントローラチップ 4は、 MMC1がホスト機器 2からセキュリティ処理を実行するコマンドを受信したのを契機に、リセット入力端子を 通して ICカードチップ 6のリセット処理をおこなう機能を有する。これによれば、コント ローラチップ 4は、セキュリティ処理を実行するコマンドを受信するまで ICカードチップ 6への電源供給を停止させておくことができる。したがって、 MMC1の電力消費を削 減することができる。
[0045] コントローラチップ 4は、 ICカードチップ 6のクロック入力端子を通して ICカードチッ プ 6に供給するクロック信号を MMC1内部で発生し、その周波数、供給開始タイミン グ、供給停止タイミングを制御する機能を有する。
[0046] コントローラチップ 4は、 CPU31、フラッシュメモリ iZF制御回路(FMIF) 32、 MM ClZF制御回路(MMCIF) 33、 CLKO発振器 (CLKOGEN) 34、 VCC2制御回路( VCC2CNT) 35、 CLK2制御回路(CLK2CNT) 36、 ICカード iZF制御回路(ICI F) 37、及びデータバッファ 38を有する。これらの構成要素 31— 38は、ホスト機器 2 から VCC1端子 10や GND1端子 14、 14を通して供給された電力により動作する。 MMCIZF制御回路 33は、 CS端子 15、 CMD端子 12、 CLK1端子 11、及び DAT 端子 13と接続されており、 MMC1がそれらの端子を通してホスト機器 2と情報交換 するためのインタフェースを制御する論理回路である。
[0047] CPU31は、 MMCIZF制御回路 33と接続されており、 MMClZF制御回路 33を 制御する。 MMCIZF制御回路 33が CMD端子 12を通してホスト機器 2からメモリ力 ードコマンドを受信すると、 MMCIZF制御回路 33は、そのコマンドの受信が成功し たかどうかの結果をホスト機器 2に伝えるため CMD端子 12を通してホスト機器 2にレ スポンスを送信する。 CPU31は、受信したメモリカードコマンドを解釈し、コマンド内 容に応じた処理を実行する。また、そのコマンド内容に応じてホスト機器 2と DAT端 子 13を通してデータの送受信をおこなう必要がある場合、 CPU31は、 MMCIZF制 御回路 33へのデータの送出、 MMCIZF制御回路 33からのデータの取得を行なう 。 CLKO発振器 34は、 CPU31と接続され、 CPU31を動作させる駆動クロックを供給 する。
[0048] フラッシュメモリチップ 5は、不揮発性の半導体メモリを記憶媒体とするメモリチップ である。フラッシュメモリチップ 5は、ホスト機器 2から VCC1端子 10や GND1端子 14 を通して供給された電力により動作する。フラッシュメモリチップ 5は、外部からのフラ ッシュメモリコマンドに従って、入力されたデータを不揮発性の半導体メモリに格納す るライト機能、また同メモリに格納されたデータを外部に出力するリード機能を持つ。 フラッシュメモリ IZF制御回路 32は、フラッシュメモリチップ 5にフラッシュメモリコマン ドを発行したり、そのコマンドで入出力するデータを転送するための論理回路である 。 CPU31は、フラッシュメモリ IZF制御回路 32を制御し、フラッシュメモリチップ 5に データのライト機能やリード機能を実行させる。ホスト機器 2から受信したデータをフラ ッシュメモリチップ 5にライトしたり、フラッシュメモリチップ 5に格納されたデータをホス ト機器 2に送信する必要があるとき、 CPU31は、フラッシュメモリ IZF制御回路 32と MMCIZF制御回路 33の間のデータ転送を制御する。
[0049] ICカードチップ 6のグランド端子 24は、 MMC外部端子 3の GND端子 14に接続さ れる。 ICカードチップ 6の VCC2端子 20は、コントローラチップ 4の VCC2制御回路 3 5に接続される。 ICカードチップ 6の RST端子 (リセット入力端子) 22と IZO端子 (デ ータ入出力端子) 23は、コントローラチップ 4の ICカード IZF制御回路 37に接続され る。 ICカードチップ 6の CLK2端子(クロック入力端子) 21は、コントローラチップ 4の C LK2制御回路 36に接続される。
[0050] VCC2端子 20は、 ICカードチップ 6に電力を供給するための電源端子である。 VC C2制御回路 35は、 VCC2電圧を生成し、 MOS— FET素子を用いたスィッチ回路に より VCC2端子 20への電力の供給開始と供給停止を制御する回路である。 VCC2 制御回路 35は CPU31と接続され、 CPU31は VCC2端子 20への電力供給の開始 と停止を制御することができる。 ICカードチップ 6を使用しないときは、 CPU31は VC C2端子 20への電力供給を停止することができる。 MMC1は、 ICカードチップ 6への 電力供給を停止することにより、それが消費する電力を節約することができる。
[0051] CLK2端子 21は、 ICカードチップ 6にクロック信号を入力する端子である。 CLK2 制御回路 36は、 CLK2端子 21にクロックを供給する回路である。 CLK2制御回路 3 6は、 CLKO発振器 34から供給されたクロック信号をもとにして CLK2端子 21に供給 するクロック信号を生成する。 CLK2制御回路 36は CPU31と接続されており、 CLK 2端子 21へのクロックの供給開始と供給停止を CPU31から制御することができる。 I Cカードチップ 6は、自身内部に駆動クロック発振器をもたない。そのため、 CLK2端 子 21から駆動クロックを供給することによって動作する。 CLK2制御回路 36が、 CL K2端子 21へのクロック供給を停止すると、 ICカードチップ 6の動作は停止するため、 ICカードチップ 6の消費電力を低下させることができる。この時、 VCC2端子 20への 電力供給が保たれていれば、 ICカードチップ 6の内部状態は維持される。
[0052] ここで、 CLK2端子 21に供給するクロック信号の周波数を F2、 CLKO発振器 34か ら供給されたクロック信号の周波数を FO、 Pと Qを正の整数とすると、 CLK2制御回路 36は、 F2= (P/Q) * FOの関係になるようなクロック信号を作成して、これを CLK2 端子 21に供給する。 Pと Qの値は CPU31により設定できるようになつている。 Pを大き く設定して F2を大きくすると、 ICカードチップ 6の内部処理をより高速に駆動できる。 Qを大きく設定して F2を小さくすると、 ICカードチップ 6の内部処理はより低速に駆動 され、 ICカードチップ 6の消費電力を低下させることができる。 ICカードチップ 6の駆 動クロック周波数は、 ICカードチップ 6が正しく動作できるような許容周波数範囲内に 設定される必要がある。そのため、 CLK2制御回路 36は、 F2の値がその許容周波 数範囲を外れるような Pと Qの値を設定させな 、ようになって 、る。
[0053] IZO端子 23は、 ICカードチップ 6に ICカードコマンドを入力したり、 ICカードチップ 6が ICカードレスポンスを出力するときに使用する入出力端子である。 ICカード IZF 制御回路 37は、 IZO端子 23と接続されており、 ΙΖΟ端子 23を通して ICカードコマ ンドの信号送信や ICカードレスポンスの信号受信をおこなう回路である。 ICカード ΊΖ F制御回路 37は CPU31に接続されており、 CPU31は、 ICカード iZF制御回路 37 による ICカードコマンドや ICカードレスポンスの送受信の手続きを制御したり、送信 すべき ICカードコマンドデータを ICカード IZF制御回路 37に設定したり、受信した I Cカードレスポンス等を ICカード IZF制御回路 37から取得する。 ICカード IZF制御 回路 37には CLK2制御回路 36からクロックが供給されており、 ICカードコマンドや I Cカードレスポンスは、 CLK2端子 21に供給するクロック信号にビット単位で同期して 、 IZO端子 23を通して送受信される。また、 RST端子 22は、 ICカードチップ 6をリセ ットするときにリセット信号を入力する端子である。 ICカード IZF制御回路 37は、 RS T端子 22と接続されており、 CPU31の指示により ICカードチップ 6にリセット信号を 送ることができる。
《標準メモリカードコマンド》
MMCに準拠した標準メモリカードコマンドについて説明する。コマンドは 6バイトの コマンドフィールドを有し、先頭 1バイトがコマンドコード(先頭 2ビットは" 01"固定)、 途中の 4バイトがパラメータ指定などに利用されるアーギュメント、最後の 1バイトが C RC (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の周波数などの通信設定を行なう。この後、ホスト機器が C MD17などのリード系コマンドを発行すると、 MMC1は、受領したコマンドに応ずるコ マンドインデックス及びカードステータス等を含むレスポンスをホスト機器に返し、フラ ッシュメモリチップからリードしたデータをホスト機器に出力する。 CMD24などのライ ト系コマンドが発行されると、 MMC1は、受領したコマンドに応ずるコマンドインデック ス及びカードステータス等を含むレスポンスをホスト機器に返し、ホスト機器から供給 される書込みデータをフラッシュメモリチップに書き込む。
[0055] 《セキュリティ処理用コマンド》
ICカードチップ 6にセキュリティ処理を実行させるセキュリティ処理用コマンドは、 IC カードアクセスコマンドで実現され、具体的には標準メモリカードコマンドの空きコマン ドコードを利用したセキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD 52)を主体とする。それらのコマンドプロトコルは標準メモリカードコマンドのリード系コ マンド、ライト系コマンドと同様とされる。
[0056] 図 2にはセキュアリードコマンド(CMD51)とセキュアライトコマンド(CMD52)のコ マンドプロトコルが示される。 CMDの記載位置に対応された信号情報は CMD端子 を介して入出力される信号情報であることを意味し、 DATの記載位置に対応された 信号情報は DAT端子を介して入出力される信号情報であることを意味する。図にお いて一重枠内に記述された情報の供給方向はカードホストから MMC1の向きであり 、二重枠内に記述された情報の供給方向は MMC1からカードホストの向きである。 セキュアライトコマンド(CMD52)の場合、書込みデータには、転送データバイト数 S TLと、 IS07816準拠の ICカードコマンド(C APDU)とが含まれる。コントローラチ ップ 4の CPU31は供給されたコマンドのコマンドコードから CMD52を識別すると、そ れに付随する書込みデータの内、転送データバイト数 STLで示されるバイトの IC力 ードコマンド(C-APDU)を ICIF37から ICカードチップ 6の入出力端子 23に与える 。セキュアリードコマンド(CMD51)の場合、リードデータには、転送データバイト数 S TLと、 IS07816準拠の ICカードレスポンス(R— APDU)とが含まれる。 ICカードレス ポンス (R-APDU)とは ICカードによるセキュリティ処理が施されたデータである。即 ち、先に発行されたセキュアライトコマンドで ICカードに与えられた ICカードコマンド( C-APDU)にしたがって処理された結果であり、 ICIF37のデータバッファに保持さ れているデータである。コントローラチップ 4の CPU31は、供給されたコマンドのコマ ンドコードから CMD51を識別すると、 ICカードレスポンス (R-APDU)のデータバイ ト数 STLを先頭に当該 ICカードレスポンス (R-APDU)を MMC1の外部に出力する
[0057] 前記セキュアリードコマンド(CMD51)では ICカードチップ 6から ATR情報を読み 出して MMC1の外部に出力させることはできない。
[0058] 〈く ATR情報読み出しコマンド》
リセット応答情報としての ATR情報は、 "ISOZIEC 7816-3: 1997 (E)のセクシ ヨン 6. 4Anser— to— Reset structure"に記載されるように ICカードチップの動作 限界周波数を決定する動作クロックのクロックレートや入出力データのボーレート、並 びに ICカードチップのヒストリカルバイト情報等を含む。 MMC1はホスト機器とのコミ ュ-ケーシヨン能力を強化するためのコマンドとして、 ATR情報を MMC1の外部に 読み出し可能にするコマンド (ATR情報読み出しコマンド)を有する。
[0059] 図 3には ATR情報読み出しコマンドの幾つかの形態が例示される。 ATR情報読み 出しコマンドの第 1形態は、標準メモリカードコマンドの空きコマンドコードを利用した 新規コマンド (単に ATR情報読み出しコマンド CMD50とも称する)とされる。 ATR情 報読み出しコマンド CMD50の欄において CMDの記載位置に対応された信号情報 は CMD端子を介して入出力される信号情報であることを意味し、 DATの記載位置 に対応された信号情報は DAT端子を介して入出力される信号情報であることを意味 する。図にお 、て一重枠内に記述された情報の供給方向はカードホストから MMC1 の向きであり、二重枠内に記述された情報の供給方向は MMC1からカードホストの 向きである。 CMD端子にコマンド CMD50が投入されると、これに応答してレスポン スが返され、 DAT端子には転送データバイト数 STLに続けて ATR情報が出力され る。 ATR情報読み出しコマンド CMD50は MMC1に搭載された ICカードチップが 1 枚の場合を想定する。
[0060] ATR情報読み出しコマンドの第 2の形態は、 MMC1に搭載された ICカードチップ 力 S 2枚以上の場合を想定し、 CMD50に応答する DAT端子からのデータ出力は、 IC カードチップ毎にデータバイト数 STLと ATR情報の順次出力とされる。 ICカードチッ プ 6の枚数の認識はコントローラチップ 4が行なう。
[0061] ATR情報読み出しコマンドの第 3の形態は、 MMC1に搭載された ICカードチップ 力^枚以上の場合に、パラメータで指定された ICカードチップの ATR情報を読み出 すようにしたものである。前記パラメータは何番目の ICカードチップであるかを指定す る情報であり、コントローラチップ 4は ICカードチップ 6の枚数に対してパラメータで指 定された番号の ICカードチップ 6の ATR情報を DAT端子から出力する。
[0062] ATR情報読み出しコマンドの第 4の形態は CMD1等の既存のリセット起動コマンド と同じコマンドコードを持ち、コントローラチップ 4は初期化処理のレスポンスに続けて 、前記 CMD端子に転送データバイト数 STLと ATR情報を出力させる。
[0063] ATR情報読み出しコマンドの第 5の形態は CMD9等の既存のレジスタリードコマン ドと同じコマンドコードを持ち、コントローラチップ 4はレジスタ値の出力に続けて、又 はレジスタの予約領域に割当てて前記 CMD端子に転送データバイト数 STLと ATR 情報を出力させる。 CMD9によるリード対象レジスタは、製造者番号やカードのシリ アル番号などを保有するカード識別レジスタ(CID)、アクセスタイム及びカード容量 等の情報を保有するカード特性データレジスタ (CSD)とされる。
[0064] 図 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情報を出力するので、これを I CIF37から CPU31を介してデータバッファ 38に格納する(ST3)。格納された ATR 情報は MMCIF33からホスト機器 2に向けて出力される(ST4)。
[0065] 図 5には ATR情報読み出しコマンド CMD50による機能を実現するための第 2の実 施形態が例示される。第 2の実施形態は、 MMC1のパワーオンリセット時に ICカード チップ 6のリセット処理で出力された ATR情報をデータバッファ 38に蓄えておいて、 ATR情報読み出しコマンド CMD50を受付けたときは、 ATR情報をデータバッファ 3 8からホスト機器 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に出力されるまでの待ち時間 が短くなる。
[0066] 図 6には ATR情報読み出しコマンド CMD50による機能を実現するための第 3の実 施形態が例示される。第 3の実施形態は、予めフラッシュメモリチップ 5の所定領域に ATR情報を格納しておき、 ATR情報読み出しコマンド CMD50を受付けたときは、 ATR情報をフラッシュメモリチップ 5から読み出してホスト機器 2に出力する、というも のである。即ち、フラッシュメモリチップ 5にはそのユーザ領域とは別のシステム領域( MMC1のユーザに自由な使用が認められていない領域)に、予め CIDなどの制御 データや ATR情報が格納されて ヽる。ホスト機器 2から ATR情報読み出しコマンド C MD50が発行されると(ST1)、コントローラチップ 4はこれを入力し、 CPU31で解読 し、 FMIF32を介して ATR情報をリードして、データバッファ 38に格納する(ST6)。 そして、 CPU31は ATR情報をデータバッファ 38から MMCIF33を介してホスト機器 2に向けて出力する(ST4)。第 3の実施形態は、第 1の実施形態に比べれば、ホスト 機器 2から ATR情報読み出しコマンド CMD50が発行されてから ATR情報が MMC IF33からホスト機器 2に出力されるまでの待ち時間が短くなる力 その待ち時間は第 2の実施形態よりも長い。
[0067] 尚、図示はしないが、図 6の例においてフラッシュメモリチップ 5からデータバッファ 3 8への ATR情報の読み出しを CMD1による初期化コマンドで行い、その後、図 5の 場合と同様にコマンド CMD50に応答して、 ATR情報をデータバッファ 38から外部 に出力するようにしてもよい。 [0068] 図 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)。
[0069] 図 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の出力が 1 MHzとされる。クロックセレクタ CLKSELによる出力の選択は コマンド CMD54で指定される。ホスト機器 2はリードした ATR情報を参照し、 ATR情 報力 把握できる最高動作周波数で ICカードチップを動作させたいときはコマンド C MD54にて分周器 DIV1の出力を選択させ、 ATR情報力も把握できる最高動作周 波数で ICカードチップを動作させたくないときはコマンド CMD54にて分周器 DIV2 の出力を選択させる。
図 9にはホスト機器 2による ATR情報を参照した別の動作例が示される。ホスト機器 2はアプリケーションプログラムに従った ICカードチップ 6に対する動作内容に応じて I Cカードチップ 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-APD U)を返す。そのレスポンスは、ホスト機器から与えられるコマンド 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における暗号演算処 理の実行期間が長くなつてしまう。
[0071] 図 10にはホスト機器 2による ATR情報を参照した別の動作例が示される。図 9と同 様に、ホスト機器 2はアプリケーションプログラムに従った ICカードチップ 6に対する動 作内容に応じて ICカードチップ 6の動作周波数を制御する。ここでは、ホスト機器 2と I Cカードチップ 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 間のデータ転送処理に長い時間を要することになる。
[0072] 図 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との間のデータ転 送処理に長い時間を要することになる。
[0073] 《消去単位を示す情報の読み出しコマンド》
図 12には消去単位を示す情報としてフラッシュメモリチップ 5に格納されているデバ イスコードの読み出しコマンド (デバイスコード読み出しコマンド)の幾つかの形態が 例示される。デバイスコードとはフラッシュメモリの製造メーカ毎における製品種別を 示すコード情報とされる。このデバイスコードにより、当該フラッシュメモリチップ 5の記 憶容量及び消去単位のバイト数などが一意にわ力る。
[0074] デバイスコード読み出しコマンドの第 1形態は、標準メモリカードコマンドの空きコマ ンドコードを利用した新規コマンド CMD49とされる。デバイスコード読み出しコマンド CMD49の欄において CMDの記載位置に対応された信号情報は CMD端子を介し て入出力される信号情報であることを意味し、 DATの記載位置に対応された信号情 報は DAT端子を介して入出力される信号情報であることを意味する。図において一 重枠内に記述された情報の供給方向はカードホストから MMC1の向きであり、二重 枠内に記述された情報の供給方向は MMC1からカードホストの向きである。 CMD 端子にコマンド CMD49が投入されると、これに応答してレスポンスが返され、 DAT 端子には転送データノイト数 STLに続けてフラッシュメモリチップ 5のデバイスコード ( フラッシュデバイスコード)が出力される。第 1形態ではフラッシュメモリチップ 5が 1個 である場合を想定する。
[0075] デバイスコード読み出しコマンドの第 2の形態は、 MMC1に搭載されたフラッシュメ モリチップ 5が複数個のメモリチップカゝら構成されている場合を想定し、 CMD49に応 答する DAT端子力 のデータ出力は、フラッシュメモリチップ 5毎にデータバイト数 S TLとフラッシュデバイスコードの順次出力とされる。フラッシュメモリチップ 5の個数の 認識はコントローラチップ 4が行い、その個数分のデータ出力を制御する。
[0076] デバイスコード読み出しコマンドの第 3の形態は、 MMC1に搭載されたフラッシュメ モリチップ 5が 2枚以上の場合に、パラメータで指定された 1枚のフラッシュメモリチッ プ 5のフラッシュデバイスコードを読み出すようにしたものである。前記パラメータは何 番目のフラッシュメモリチップであるかを指定する情報であり、コントローラチップ 4は フラッシュメモリチップの枚数に対してパラメータで指定された番号のフラッシュメモリ チップのフラッシュデバイスコードを DAT端子から出力する。第 3形態は、フラッシュ メモリチップ 5が複数枚搭載されて ヽる場合に、一つずつ個別のフラッシュデバイスコ ードをリードしょうとする場合に用いる意義が有る。
[0077] 図 13にはデバイスコード読み出しコマンド CMD49による機能を実現するための第 1の実施形態が例示される。第 1の実施形態では、ホスト機器 2がデバイスコード読み 出しコマンド CMD49を発行すると(ST10)、コントローラチップ 4はフラッシュメモリチ ップ 5にデバイスコード出力コマンドを発行し(ST11)、これによつてフラッシュメモリ チップ 5から読み出されたフラッシュデバイスコードをデータバッファ 38に蓄積し (ST 12)、蓄積したフラッシュデバイスコードをホスト機器 2に出力する(ST13)。 F— CO DEは MMC1から出力されるフラッシュデバイスコードである。
[0078] 図 14にはデバイスコード読み出しコマンド CMD49による機能を実現するための第 2の実施形態が例示される。第 2の実施形態は、 MMC1のパワーオンリセット時にリ セット処理でフラッシュメモリチップ 5からフラッシュデバイスコードを読み出してデータ バッファ 38に蓄えておいて、デバイスコード読み出しコマンド CMD49を受付けたとき は、フラッシュデバイスコードをデータバッファ 38からホスト機器 2に出力する、という ものである。即ち、ホスト機器 2からリセット起動コマンド CMD1が発行されると(ST14 )、コントローラチップ 4はこれを入力し、 CPU31で解読し、 FMIF32を介してフラッシ ュメモリチップ 5にデバイスコード出力コマンドを与える(ST11)。コントローラチップ 4 はこれによってフラッシュメモリチップ 5から読み出されたフラッシュデバイスコードを C PU31を介してデータバッファ 38に格納して保持する(ST12)。その後、ホスト機器 2 力 デバイスコード読み出しコマンド CMD49が発行されると(ST10)、コントローラチ ップ 4はこれを入力し、 CPU31で解読し、データバッファ 38に格納してあるフラッシュ デバイスコードを MMCIF33からホスト機器 2に向けて出力する(ST13)。第 2の実 施形態は第 1の実施形態に比べ、ホスト機器 2からデバイスコード読み出しコマンド C MD49が発行されてからフラッシュデバイスコードが MMCIF33からホスト機器 2に 出力されるまでの待ち時間が短くなる。
[0079] 図 15にはデバイスコード読み出しコマンド CMD49による機能を実現するための第 3の実施形態が例示される。第 3の実施形態は、予めフラッシュメモリチップ 5の所定 メモリ領域にフラッシュデバイスコード F— CODEを格納しておき、デバイスコード読 み出しコマンド CMD49を受付けたときは、フラッシュデバイスコードをリードするメモ リアクセスコマンドによってフラッシュデバイスコードをフラッシュメモリチップ 5から読 み出してホスト機器 2に出力する、というものである。即ち、フラッシュメモリチップ 5に はそのユーザ領域とは別のシステム領域に、予め CIDなどの制御データやフラッシュ デバイスコード F— CODEが格納されて!、る。この領域はフラッシュメモリチップ 5が 個別に保有するデバイスコードの記憶領域とは別のメモリ領域とされる。したがって、 フラッシュメモリチップ 5が複数個ある場合には、全てのフラッシュメモリチップのデバ イスコードが一つのフラッシュメモリチップの前記所定領域に代表的に格納されること になる。ホスト機器 2からデバイスコード読み出しコマンド CMD49が発行されると(S T10)、コントローラチップ 4はこれを入力し、 CPU31で解読し、 FMIF32を介してフ ラッシュメモリチップ 5にデバイスコードを読み出すためのメモリアクセスコマンドを与 え(ST15)、これによつてリードしたフラッシュデバイスコードをデータバッファ 38に格 納する(ST16)。そして、 CPU31はフラッシュデバイスコードをデータバッファ 38から MMCIF33を介してホスト機器 2に向けて出力する(ST13)。第 3の実施形態は、第 1の実施形態に比べれば、ホスト機器 2からデバイスコード読み出しコマンド CMD49 が発行されて力もフラッシュデバイスコードが MMCIF33からホスト機器 2に出力され るまでの待ち時間が短くなるが、その待ち時間は第 2の実施形態よりも長い。
[0080] 尚、図示はしないが、図 15の例においてフラッシュメモリチップ 5からデータバッファ 38へのフラッシュデバイスコードの読み出しを CMD1による初期化コマンドで行い、 その後、図 14の場合と同様にコマンド CMD49に応答して、フラッシュデバイスコード をデータバッファ 38から外部に出力するようにしてもよい。
[0081] 次に、ホスト機器 2による MMC1に対するデータ書き込み動作にっ 、て説明する。
フラッシュデバイスコードの利用形態にっ 、て説明する前に、フラッシュメモリチップ の消去単位の違いにより書き込みコマンド処理による指示内容に応じて消去回数や 書き込み処理時間に相違を生ずることについて説明する。
[0082] 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回消去が必要になる。
[0083] 例えば消去単位 2KBのフラッシュメモリを搭載した MMC1に 1コマンドで 1KBのデ ータ転送を行なって合計 2KBのデータを書き込む場合、図 16に示されるように、ホス ト機器から書き込みコマンド CMD25と 512バィト単位の書込みデータ0& &0, Data 1が供給されると(ST20)、データバッファにその転送データ DataO, Datal (512B X 2)を取込む(ST21)。書き込みを行なう論理アドレスに対応する有効な物理アドレ スが存在する場合には、その論理アドレスを割当てる新たな物理アドレスを検索し、 検索された新たな書き込み先物理アドレスのブロックを消去する(ST22)。消去され た書き込み先物理アドレスには、データバッファ内の 1KBの書込みデータ DataO, D ata 1と、書き込み対象論理アドレスが割当てられて!/、た元の物理アドレスの残りの 1 KBのデータ Data2,、 Data3,とを書き込む(ST23)。次に、図 17に示されるように、 ホスト機器から書き込みコマンド CMD25と残りの 512バイト単位の書込みデータ Dat a2, Data3が供給されると(ST24)、データバッファにその転送データ Data2, Data 3 (512B X 2)を取込む(ST25)。書き込みを行なう論理アドレスに対応する有効な 物理アドレスが存在する場合には、その論理アドレスを割当てる新たな物理アドレス を検索し、検索された新たな書き込み先物理アドレスのブロックを消去する(ST26)。 消去された書き込み先物理アドレスには、データバッファ内の 1KBの書込みデータ Data2, Data3と、書き込み対象論理アドレスが割当てられていた元の物理アドレス の残りの 1KBのデータ DataO、 Datalとを書き込む(ST27)。このように、消去単位 2 KBのフラッシュメモリに対しては 1書き込みコマンドによる新たな書き込みデータが 1 KBの場合には 2ブロックの消去が必要になる。
[0084] また、 1回の書き込みコマンドの転送データ数によって書き込み時間にも差を生ず る。例えば図 18に例示されるように、 1回の書き込みコマンドで 1KBの書き込みデー タを転送して合計 16KBの書き込みを行なう場合と、 1回の書き込みコマンドで 2KB の書き込みデータを転送して合計 16KBの書き込みを行なう場合とを比較すると、消 去単位に拘わらず 512バイト単位のデータ転送に要する合計時間は tdtr X 32のよう に一定になる力 フラッシュメモリに対する消去及び書き込み処理に要する時間に差 異を生ずる。消去単位 2KBのフラッシュメモリで合計 16KBの書き込みを行なうには 、 1回の書き込みコマンド毎に 2KBの書き込みデータを転送するのが最も効率的で ある。
[0085] このように、フラッシュメモリチップの消去単位の違いにより書き込みコマンド処理に よる指示内容に応じて消去回数や書き込み処理時間に相違を生ずる。これに鑑みれ ば、ホスト機器がフラッシュメモリの消去単位を把握して書き込みデータを転送すれ ば、 1消去単位に対する消去回数を減らし、また、書き込み処理時間が無駄に長くな ることを抑止することが可能になる。ホスト機器 2は、前記デバイスコード読み出しコマ ンド CMD49によって読み出したフラッシュデバイスコードからフラッシュメモリチップ 5 の消去単位を把握する。
[0086] 図 19にはホスト機器 2がフラッシュデバイスコードからフラッシュメモリチップ 5の消 去単位を把握して書込みデータの転送数を最適化する動作例が示される。消去単 位 2KBのフラッシュメモリチップ 5に対して 512B単位で書き込みを行なう場合には書 き込みコマンドの発行と消去及び書き込み動作を 4回繰り返すことが必要になる。こ れに対し、ホスト機器 2は、デバイスコード読み出しコマンド CMD49によって読み出 したフラッシュデバイスコード力 フラッシュメモリチップ 5の消去単位を把握すれば、 消去単位 2KBのフラッシュメモリチップ 5の場合には 2KB単位で書き込みを行なえ ば、ホスト機器 2からの書き込みコマンドの発行とフラッシュメモリチップ 5での消去及 び書き込み動作を 1回で完了できることを把握し、それにしたがって、 512バイトの書 込みデータを 4個転送して、 2KBの書き込み 1回で書き込み処理を完了する。
[0087] 図 20には消去単位 2KBのフラッシュメモリチップ 5を搭載した MMC1に 1コマンド で 2KBのデータ転送を行なって合計 2KBのデータを書き込む動作が示される。この 書き込み動作の前にホスト機器 2はコマンド CMD49にて MMC1に搭載されたフラッ シュメモリチップ 5の消去単位が 2KBであることを把握している。
[0088] ホスト機器 2から書き込みコマンド CMD25と 2KBバイト単位の書込みデータ Data 0, Datal、 Data2, Data3が供給されると(ST30)、データバッファ 38にその転送 データ DataO, Datal, Data2, 0& &3 (512 4)を取込む(3丁31)。書き込みを 行なう論理アドレスに対応する有効な物理アドレスが存在する場合には、その論理ァ ドレスを割当てる新たな物理アドレスを検索し、検索された新たな書き込み先物理ァ ドレスのブロックを消去する(ST32)。消去された書き込み先物理アドレスには、デー タバッファ内の 2KBの書込みデータ DataO, Datal、 Data2, Data3を書き込む(S T33)。これで書き込み処理を完了する。
[0089] 図 21には読み出したデバイスコードも基づく最適書き換え単位の解析機能をコント ローラチップ 4が有する場合の例を示す。コントローラチップ 4は、ホスト機器 2から最 適書き換え単位読み出しコマンド CMD48が供給されると(ST40)、そのコマンド C MD48を CPU31でデコードし、フラッシュメモリチップ 5にフラッシュデバイスコードの 読み出しを指示(ST41)する。コントローラチップ 4はフラッシュメモリチップ 5から読 み出されたフラッシュデバイスコードから、消去単位を取得し、最適な書き換え単位を 解析する。例えば、デバイスが消去単位 2KBのフラッシュメモリチップ 5の場合には 最適書き換え単位は 2KBである。解析結果は 2KBのような値であってもよいし、 512 Βをデータ単位とするデータ数、例えば 4であってもよい。この解析結果はデータバッ ファ 38に保持される(ST42)。その後、 CPU31はデータバッファ 38に保持した最適 書き換え単位情報をホスト機器 2に出力する。ホスト機器 2はその最適書き換え単位 情報を直接参照して、 1回の書き込みコマンドに付随させるデータ数を決定して、 M MC1に書き込みコマンドを発行する。例えば、図 22の例では、 F— CNTが最適書き 換え単位情報であり値 4とされる。この値 4は、 512B X 4を意味し、書き込みコマンド CMD25に続く書き込みデータは、 512 の0^15128カ 単位とされ、合計 2KBとさ れ、消去単位 2KBのフラッシュメモリチップ 5にとつて消去及び書き込み処理を最も 効率的に行なうことができる。
図 23にはデバイスコードをフラッシュメモリチップ 5の周波数設定に用いる例が示さ れる。ホスト機器 2からデバイスコード読み出しコマンド CMD49が発行され(ST10) 、それに応答するフラッシュデバイスコード F— CODEがホスト機器 2に出力されると( ST13)、ホスト機器 2はフラッシュデバイスコードカゝらフラッシュメモリチップ 5の動作 限界周波数を算出し (ST50)、フラッシュメモリチップ 5の動作周波数を設定するため のコマンド CMD54を発行する(ST51)。コントローラチップ 4はそのコマンド CMD5 4を受取ると、 CLK2CNT36によって、 CPU31、 DBUF38、フラッシュメモリチップ 5 の動作周波数を制御する。図 8の説明では CLK2CNT36によって ICカードチップ 6 の動作周波数の設定を行なった力 ここでは、 CLK2CNT36は、 CLK0GEN34で 生成されるクロックを分周する分周器 DIV1, DIV2と、前記分周器 DIV1, DIV2の 出力を選択するクロックセレクタ CLKSELを有し、例えばフラッシュメモリチップ 5の最 高動作周波数を 10MHz (メガ ·ヘルツ)とすると、分周器 DIV1の出力が 10MHz、 分周器 DIV2の出力が 1 MHzとされる。クロックセレクタ CLKSELによる出力の選択 はコマンド CMD54で指定される。ホスト機器 2はリードしたフラッシュデバイスコード を参照し、そこ力 把握できる最高動作周波数でフラッシュメモリチップ 5を動作させ たいときはコマンド VCMD54にて分周器 DIV1の出力を選択させ、デバイスコードか ら把握できる最高動作周波数で ICカードチップを動作させたくないときはコマンド C MD54にて分周器 DIV2の出力を選択させる。尚、 DBUF38はシンクロナス DRAM のようなクロック同期動作されるので、フラッシュメモリチップ 5や CPU31の動作周波 数に合わせてその動作クロック周波数も制御されるようになって 、る。 [0091] 図 8の場合もそうであるが、代表的に 2個が示された分周器は可変分周器に変更し 、コマンドによって分周比を任意にもしくは多段階でプログラマブルに可変可能に制 御でさるようにしてちょい。
[0092] 特に図示はしないが、動作限界周波数読み出しコマンドのような所定のコマンドに 応答して、コントローラチップ 4がフラッシュメモリチップ 5からフラッシュデバイスコード F— CODEを読み込み、読み込んだフラッシュデバイスコードからフラッシュメモリチ ップ 5の動作限界周波数を算出し、算出した動作限界周波数をホスト機器 2に出力す るようにしてもよい。ホスト機器 2が、その動作限界周波数に基づいてフラッシュメモリ チップ 5などの動作周波数を設定するためのコマンド CMD54を発行すると、コント口 ーラチップ 4はそのコマンド CMD54に応答して、前記 CLK2CNT36によって、 CP U31、 DBUF38、フラッシュメモリチップ 5の動作周波数を制御する。
[0093] 以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、 本発明はそれに限定されるものではなぐその要旨を逸脱しない範囲において種々 変更可能であることは言うまでもな 、。
[0094] 例えば、記憶装置は MMCに限定されず、その他のメモリカード規格の種種の記憶 装置に広く適用する事ができる。したがって、コマンドコード、コマンドフォーマット、デ ータ通信プロトコルなどはそのカード規格に従って種々変更可能である。また、インタ フェースコントローラ、セキュリティコントローラ、不揮発性メモリは夫々別チップである ことに限定されず、例えば、インタフェースコントローラと不揮発性メモリメモリを 1チッ プにしたり、全てを 1チップにしたりすることも可能である。また、セキュリティコントロー ラは ICカードマイコンに限定されず、将来開発され或いは現に存在する、セキユリテ ィ機能を有する回路モジュールであればょ 、。
産業上の利用可能性
[0095] 本発明は、フラッシュメモリチップ、 ICカード用マイクロコンピュータチップ及びコント ローラチップを搭載したメモリカードなどに好適である。

Claims

請求の範囲
[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記載の記憶装置。
PCT/JP2005/000588 2004-02-20 2005-01-19 記憶装置及びデータ処理装置 WO2005081180A1 (ja)

Priority Applications (1)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-043945 2004-02-20
JP2004043945 2004-02-20

Publications (1)

Publication Number Publication Date
WO2005081180A1 true WO2005081180A1 (ja) 2005-09-01

Family

ID=34858031

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/000588 WO2005081180A1 (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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529745A (ja) * 2006-03-16 2009-08-20 ケーティーフリーテル・カンパニー・リミテッド 大容量メモリを支援するicチップ及び支援方法
JP2012089152A (ja) * 2011-12-13 2012-05-10 Toshiba Corp 通信媒体及び通信媒体処理装置
TWI509623B (zh) * 2013-03-11 2015-11-21 Macronix Int Co Ltd 用於內建錯誤更正的儲存架構

Families Citing this family (21)

* 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
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
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
KR101978981B1 (ko) 2012-09-14 2019-05-16 삼성전자주식회사 임베디드 멀티미디어 카드(eMMC), 상기 eMMC를 제어하는 호스트, 및 이들을 포함하는 시스템의 동작 방법
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 飞天诚信科技股份有限公司 适用蓝牙读卡器的数据传输方法、电子设备及存储介质

Citations (4)

* 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カードシステム
JP2003022216A (ja) * 2001-07-09 2003-01-24 Hitachi Ltd 記憶装置
JP2003308240A (ja) * 2002-04-15 2003-10-31 Sony Corp データ記憶装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3822081B2 (ja) * 2001-09-28 2006-09-13 東京エレクトロンデバイス株式会社 データ書込装置、データ書込制御方法及びプログラム

Patent Citations (4)

* 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カードシステム
JP2003022216A (ja) * 2001-07-09 2003-01-24 Hitachi Ltd 記憶装置
JP2003308240A (ja) * 2002-04-15 2003-10-31 Sony Corp データ記憶装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529745A (ja) * 2006-03-16 2009-08-20 ケーティーフリーテル・カンパニー・リミテッド 大容量メモリを支援するicチップ及び支援方法
JP2012089152A (ja) * 2011-12-13 2012-05-10 Toshiba Corp 通信媒体及び通信媒体処理装置
TWI509623B (zh) * 2013-03-11 2015-11-21 Macronix Int Co Ltd 用於內建錯誤更正的儲存架構

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2005081180A1 (ja) 記憶装置及びデータ処理装置
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
US11789521B2 (en) Card and host apparatus
US20070168614A1 (en) Secure-Digital (SD) Flash Card with Auto-Adaptive Protocol and Capacity
US7676640B2 (en) Flash memory controller controlling various flash memory cells
US8171204B2 (en) Intelligent solid-state non-volatile memory device (NVMD) system with multi-level caching of multiple channels
US8335123B2 (en) Power management of memory systems
KR100524988B1 (ko) Usb 인터페이스 기능을 가지는 mmc 장치 및 이에대한 인터페이스 방법
JP2007317170A (ja) Icモジュールおよび携帯電話
US20050114587A1 (en) ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US20080071973A1 (en) Electronic data flash card with various flash memory cells
US20100082893A1 (en) Flash Memory Controller For Electronic Data Flash Card
US8812756B2 (en) Method of dispatching and transmitting data streams, memory controller and storage apparatus
WO2003071436A1 (fr) Dispositif de connexion externe, dispositif hote et systeme de communication de donnees
JP4178809B2 (ja) 外部接続機器及びホスト機器
KR20060129804A (ko) 엠엠씨 인터페이스를 갖는 플래시 메모리 장치 및 그것을포함한 메모리 시스템
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
CN103218300B (zh) 数据处理方法、存储器控制器与存储器储存装置
JP2006236200A (ja) カード状記憶装置とそのホスト装置
JP4776462B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
US8957763B2 (en) RFID access method using an indirect memory pointer
KR100399603B1 (ko) 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
US20220137867A1 (en) Secure memory card and control method thereof
JP2008123450A (ja) 記録媒体及びメモリアクセス可能な電子機器
JP2007122241A (ja) メモリカードコントローラ及びメモリカード

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006510172

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200580005441.X

Country of ref document: CN

Ref document number: 1020067016691

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWP Wipo information: published in national office

Ref document number: 1020067016691

Country of ref document: KR

122 Ep: pct application non-entry in european phase