The present invention relates to a data processing device implemented as a semiconductor integrated circuit, including an electrically rewriteable and randomly accessible nonvolatile memory, and also relates to a technique that is effectively applied to, for example, single-chip microcomputers.
An EEPROM (Electrically Erasable Programmable Read Only Memory) is typical of an electrically rewriteable and randomly accessible nonvolatile memory. If, for example, the number of parallel bits carried by a data bus coupled to the EEPROM is two bytes, data rewriting in the EEPROM can be performed by erasing and writing data in units of two bytes or an integral multiple of two bytes.
As a technique enabling faster read access to data in this EEPROM, a cache memory that applies associative storage can be adopted.
As for an electrically rewriteable nonvolatile memory like a flash memory as a storage device having a large storage capacity, data rewriting is performed as follows: from a block to be erased, which is an erasable unit as large as, e.g., 256 bytes, data is read and latched into a sense latch and then the block is erased, followed by executing a logical OR operation or the like between the data saved in the sense latch and a few bytes of data to be written newly and writing the operation result data back into the erased block.
For the purpose of enabling faster read access to data in this flash memory, again, the cache memory can be applied similarly as above. Besides, other techniques for faster continuous read operation are provided, as described in Patent Documents 1 and 2. In these techniques, data, once having been read from nonvolatile memory cells, is buffered into a plurality of page buffers embodied by SRAM and the data buffered in the page buffers is output to outside.
However, it has been revealed by the present inventors that adopting the cache memory based on associative storage for faster read access to data in the EEPROM poses, inter alia, the following problems: the area occupied by the chip increases; power consumption increases; and, for a system that handles confidential data, a decrease in security is inevitable, because the confidential data is also held temporarily on a device different from the EEPROM. In a case where the page buffers as described in Patent Documents 1 and 2 are adopted with the EEPROM, the page buffers are added and relatively large logic components, namely, control logics for the page buffers also have to be added. Similarly as above, it has been revealed that the problems that the area occupied by the chip increases and power consumption increases still remain.
An object of the present invention is to provide a data processing device enabling faster read access to data in an on-chip EEPROM in a relatively easy manner, without increasing the area occupied by the chip as well as its power consumption.
The above-noted object and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
A typical aspect of the invention disclosed in this application is outlined as follows.
An on-chip nonvolatile memory included in a data processing device is provided with a pre-read cache which latches all or part of data, once having been read to bit lines from an array of nonvolatile memory cells by selecting a row address, and a selecting circuit which selects a portion of the data latched by the pre-read cache by selecting a portion of columns. Control is performed to temporarily retain address information for data latched by the pre-read cache, inhibit latching new data into the pre-read cache for read access to data in the nonvolatile memory according to the same address information as the retained address information, and cause the selecting circuit to select the data latched by the pre-read cache.
Since the above control may be implemented via a memory control circuit and controls latching data into the pre-read cache and outputting data, the control is relatively simple and there is no need for a large circuit size for the control logic. In addition, the logic circuit size of the pre-read cache to be added to the nonvolatile memory logic is large enough to allow for latching, at most, all data that has been once read to the bit lines by selecting a row address. An increase in the logic circuit size for the nonvolatile memory can be suppressed to a small extent.
Effect obtained by the typical aspect of the invention disclosed in the present application is outlined below.
Faster read access to data in an on-chip EEPROM can be implemented in a relatively easy manner, without increasing the area occupied by the chip as well as its power consumption.
To begin with, exemplary embodiments of the invention disclosed herein are outlined. In the following general description of exemplary embodiments, reference designators in the drawings, which are given for referential purposes in parentheses, are only illustrative of elements that fall in the concepts of the components identified by the designators.
[1] <Pre-read cache and memory control logic> A data processing device (1) pertaining to an exemplary embodiment of the present invention includes, within a single semiconductor substrate, a central processing unit (5) which executes instructions, an electrically rewritable and randomly accessible nonvolatile memory (3), and a memory control logic (2, 2A, 2B) for implementing faster read access to data in the nonvolatile memory. The nonvolatile memory includes a pre-read cache (15, 15A, 15B) which latches all or part of data, once having been read to bit lines from an array of nonvolatile memory cells by selecting a row address, and a selecting circuit which selects a portion of the data latched by the pre-read cache by selecting a portion of columns. The memory control logic retains address information for the data latched by the pre-read cache, inhibits latching new data into the pre-read cache for read access to data in the nonvolatile memory according to the same address information as the retained address information, and causes the selecting circuit to select the data latched by the pre-read cache.
Since control that is implemented by the memory control logic controls latching data into the pre-read cache and outputting data, such control is relatively simple and there is no need for a large circuit size for the control logic. In addition, the logic circuit size of the pre-read cache to be added to the nonvolatile memory logic is large enough to allow for latching, at most, all data that has been once read to the bit lines by selecting a row address. An increase in the logic circuit size for the nonvolatile memory can be suppressed to a small extent.
[2] <Pre-read cache> In the data processing device as set forth in [1], the pre-read cache includes a sense latch circuit (32) which latches all or part of data, once having been read to the bit lines, an input gate circuit (30) placed at an input stage for the sense latch circuit, and an output gate circuit (31) placed at an output stage for the sense latch circuit
The pre-read cache is configured with the sense latch circuit and the gate circuits, so that its circuit size will be easy to reduce.
[3] <Encryption/decryption circuit> The data processing device as set forth in [2] further includes an encryption/decryption circuit (17) which encrypts write data to be input to the nonvolatile memory and written into nonvolatile memory cells and decrypts read data having been read from nonvolatile memory cells and to be output to outside.
In comparison to s system configuration in which a cache memory of associative storage type is provided external to the nonvolatile memory and decrypted confidential data is stored temporarily in the cache memory, a period during which confidential data is held externally to the nonvolatile memory becomes shorter and this can contribute to an improvement in security for confidential data.
[4] <Continuous self-cache> In the data processing device as set forth in [1], the pre-read cache (15A) includes a first sense latch circuit (42) which latches all or part of data, once having been read to the bit lines, a first input gate circuit (40) placed at an input stage for the first sense latch circuit, a first output gate circuit (44) placed at an output stage for the first sense latch circuit, a second sense latch circuit (43) which latches all or part of data, once having been read to the bit lines, a second input gate circuit (41) placed at an input stage for the second sense latch circuit, and a second output gate circuit (45) placed at an output stage for the second sense latch circuit. The memory control logic (2A) is equipped with an address counter which serially generates address information following the address information for the data latched by the pre-read cache during a reading operation. The memory control logic causes the first sense latch circuit and the second sense latch circuit to latch read data alternately, after having been read by selecting a row address, using address information which is serially generated by the address counter from an initial base value, and in parallel with a latching operation of read data into one sense latch circuit via one input gate circuit, the memory control logic causes data held by the other sense latch circuit to be output via the other output gate circuit to outside.
Thereby, it is possible to accomplish faster continuous read access to data in the nonvolatile memory, without imposing an additional load on the central processing unit.
[5] <Caching data and program code separately> In the data processing device as set forth in [1], the pre-read cache (15B) includes a first sense latch circuit (62) which latches all or part of data, once having been read to the bit lines, a first input gate circuit (60) placed at an input stage for the first sense latch circuit, a first output gate circuit (64) placed at an output stage for the first sense latch circuit, a second sense latch circuit (63) which latches all or part of data, once having been read to the bit lines, a second input gate circuit (61) placed at an input stage for the second sense latch circuit, and a second output gate circuit (65) placed at an output stage for the second sense latch circuit. The memory control logic (2B) retains address information for a program code latched by the pre-read cache during a program code reading operation, inhibits latching a new program code into the first sense latch circuit of the pre-read cache for read access to a program code in the nonvolatile memory according to the same address information as the retained address information for the program code, and generates a control signal causing the selecting circuit to select the program code latched by the pre-read cache. The memory control logic also retains address information for data latched by the pre-read cache during a data reading operation, inhibits latching new data into the second sense latch circuit of the pre-read cache for read access to data in the nonvolatile memory according to the same address information as the retained address information for the data, and causes the selecting circuit to select the data latched by the pre-read cache.
Thereby, the memory control logic can implement faster read access to both program code and data in the nonvolatile memory evenly and can accomplish this, without imposing an additional load on the central processing unit.
2. Details on Embodiments
Embodiments of the invention will now be described in greater detail.
A microcomputer (microprocessor) pertaining to a first embodiment of the present invention is illustrated in
The microcomputer 1 includes a central processing unit (CPU) 5 which executes a program, a RAM 4 as a working memory which is used as a working area or the like for the CPU 5, an accelerator (ACCL) 6 which undertakes a part of processing tasks of the CPU 5, a ROM 3m like a mask ROM which is an electrically non-rewritable nonvolatile memory for storing programs or the like which are executed by the CPU 5, an EEPROM 3 as a nonvolatile memory which stores data or the like for use in data processing by the CPU 5 in an electrically rewritable manner, a memory control logic (MCLGC) 2 which controls a pre-read cache function of the EEPROM 3, external input/output circuit (EXIO) 7, and an analog circuit (ANGLG) 8, each of these components being coupled to a system bus 9.
Although not restrictive, the microcomputer 1 is the one that is applied to an IC card microcomputer and is used for, inter alia, authentication processing using confidential data; for example, it is applied for authentication of a user of a mobile phone and authentication of a user of an IC card.
A configuration of the EEPROM 3 is illustrated in
Word lines which are coupled to the selecting terminals of the nonvolatile memory cells are driven by a select signal which is output from an X decoder (XDEC) 11 which generates a select signal by decoding an address signal ADR. Source lines are driven by a select signal which is output from the X decoder (XDEC) 11. A voltage for driving bit lines, source lines, and word lines is provided by a high voltage which is produced by a charge pump circuit (CHGPMP) 13. Bit lines are selected by a Y selector (YSEL) 12 and this selection is made by a Y select signal which is generated by decoding an address signal ADR by an YZ decoder (YZDEC) 14. Here, although not restrictive, memory cells to be selected by a word line are assumed to be 64 bytes wide. The Y selector 12 selects 8 bytes from the 64 bytes.
8 bytes of read data selected by the Y selector 12 are temporarily cached in a pre-read cache (PRCCH) 15. From the 8 bytes of read data cached in the pre-read cache (PRCCH) 15, for example, 2 bytes re selected by a Z selector (ZSEL) 16. This selection is made by a Z select signal which is generated by decoding an address signal ADR by an YZ decoder 14. Here, the address signal ADR includes an X address signal for generating word line and source line selecting signals by the X decoder 11, a Y address signal for generating a Y select signal, and a Z address signal for generating a Z select signal. The read data selected by the Z selector 16 is decrypted by an encryption/decryption circuit (CRENCR) 17 and output to the system bus 9 from an input/output circuit (10) 18. DAT denotes data on the system bus 9.
2 bytes of write data passed from the system bus 9 to the input/output circuit 18 are encrypted by the encryption/decryption circuit 17. The encrypted 2 bytes of write data are passed to bit lines selected via the Z selector 16 and the Y selector 12 and written into memory cells on a word line selected at that moment. Although not shown particularly, it is assumed that data erasure to be done before writing is performed in units of 8 bytes which are defined as erasable blocks. The following process is performed: latching data from a block to be erased before erasing it, executing a logical OR operation between the latched 8 bytes of data and 2 bytes of write data, and writing the result data back into the erased block of 8 bytes. In a case that data erasure is also performed in units of two bytes, it is not needed to execute a logical OR operation between latched data and write data.
Generating internal timing for a read operation, an erasure operation, and a write operation is performed by a timing generator (TGNR) 19. The timing generator 19 receives an access control signal CNT from the system bus 9 and also receives control signals EEP_ac, CCH_ac, and WAIT_cn for pre-read cache operation from a memory controller (MCNT) 20.
An example of the memory controller 20 is shown in
The flow of a control signal from the timing generator 19 to the pre-read cache 15 is illustrated in
A configuration of the pre-read cache 15 is illustrated in
In
In
In
In
The microcomputer described in the foregoing first embodiment provides the following positive effects.
(1) <Pre-read cache and memory control logic> The pre-read cache function for the EEPROM 3 controls a data latch operation or a data output operation for the pre-read cache 15. Such control is relatively simple and there is no need for a large circuit size for the control logic. In addition, the logic circuit size of the pre-read cache to be added is large enough to allow for latching, at most, all data that has been once read to the bit lines by selecting a row address. An increase in the pre-read cache circuit size can be suppressed to a small extent relative to the whole EEPROM logic circuit size. Accordingly, it is possible to enable faster read access to data in the on-chip EEPROM in a relatively easy manner, without increasing the area occupied by the chip as well as its power consumption.
(2) <Pre-read cache> The pre-read cache 15 is configured with the sense latch circuit 32 and the gate circuits 30, 31, so that its circuit size will be easy to reduce.
(3) <Encryption/decryption circuit> In comparison to s system configuration in which a cache memory of associative storage type is provided external to the EEPROM and decrypted confidential data is stored temporarily in the cache memory, a period during which confidential data is held externally to the EEPROM becomes shorter and this can contribute to an improvement in security for confidential data.
A data processing device adopting an EEPROM, additionally including a self-cache function for continuous reading, is illustrated in
In contrast to the configuration illustrated in
Input/output operations of the input gate circuit 40 and the output gate circuit 44 are controlled by timing control signals cch_ac1, cch_ac2. Input/output operations of the input gate circuit 41 and the output gate circuit 45 are controlled in a complementary fashion by timing control signals cch_ac3, cch_ac4.
A memory control logic 2A is equipped with an address counter (ACUNT) 50, besides a memory controller 20A. The memory controller 20A is equipped with two address latch circuits 22 which are used alternately, switched from one to another every four cycles of the clock signal CLK. The address counter 50 generates a pre-read address ADR_ca by incrementing a block address signal ADR_BLK every three cycles of the clock signal CLK and turns cache input timing signals CCH1_ac and CCH2_ac to a select level alternately for each increment.
A timing generator 19A includes a logic that takes input of the control signals ADR_ca, CCH1_ac, CCH2_ac, EEP_ac, CCH_ac, and WAIT_cn and generates timing signals cch_ac1, cch_ac2, cch_ac3, and cch_ac4. Although not restrictive, this logic is configured to satisfy the operation timing as illustrated in
According to the second embodiment, it is possible to accomplish faster continuous read access to data in the EEPROM 3A, without imposing an additional load on the CPU 5.
A data processing device adopting an EEPROM including a pre-read cache 15B that latches data and program code separately is illustrated in
A memory control logic 2B includes a memory controller 20B and this memory controller 20B additionally includes a function to output a control signal CNT_pd in response to an access strobe signal PF/DA which is output by the CPU 5; this function is added to the memory controller 20 described in the first embodiment. The CPU 5 outputs an access strobe signal PF/DA which is turned to be high level for fetching program code and low level for access to data. Although not restrictive, the control signal CNT_ad is assumed to have the same logic value as the access strobe signal PF/DA. The memory controller 20B supplies the control signal CNT_ad as well as the same control signals EEP_ac, CCH_ac, and WAIT_cn as those that are output by the foregoing memory controller 20 to the timing generator 19B. For fetching program code, the timing generator 19B controls the input gate circuit 60 and the output gate circuit 64, using a timing control signal cchp_ac in the same way as done by the timing signal cch_ac in the first embodiment. For access to data, the timing generator 19B controls the input gate circuit 61 and the output gate circuit 65, using a timing control signal cchd_ac in the same way as done by the timing signal cch_ac in the first embodiment. In other words, the memory controller retains program code address information during a program code reading operation, inhibits latching a new program code into the first sense latch circuit 62 of the pre-read cache 15B for read access to a program code in the EEPROM 3B according to the same address information as the retained program code address information, and causes the Z selector 16 to select the program code latched by the pre-read cache 15B. Likewise, the memory controller retains data address information at the instant of reading data, inhibits latching new data into the second sense latch circuit 63 of the pre-read cache 15B for read access to data in the EEPROM 3B according to the same address information as the retained data address information, and causes the Z selector 16 to select the data latched by the pre-read cache 15B.
Thereby, faster read access to both program code and data in the EEPROM 3B can be carried out evenly.
While the invention made by the present inventors has been described specifically based on its embodiments hereinbefore, it will be appreciated that the present invention is not limited to the described embodiments and a variety of modifications may be made without departing from the scope of the invention.
For example, circuit modules that are installed in the microcomputer are not limited to those described in the foregoing embodiments and may be modified as appropriate. The microcomputer is not limited to a microcomputer for IC cards and the invention is widely applicable to microcomputers which can be embedded in various types of equipment and devices.
The arrangement for selecting a portion of columns is not limited to the arrangement using the Y selector and the Z selector. Data that is stored in the pre-read cache is not limited to 8 bytes. The pre-read cache may have a capacity to store all data, once having been read to the bit lines by selecting a word line, for example, 64 bytes of data in accordance with
It may be dispensable that the nonvolatile memory is equipped with the encryption/decryption circuit.
Number | Date | Country | Kind |
---|---|---|---|
2010-177434 | Aug 2010 | JP | national |
The disclosure of Japanese Patent Application No. 2010-177434 filed on Aug. 6, 2010 including the specification, drawings and abstract is incorporated herein by reference in its entirety.