Method and system for efficiently programming non-volatile...

Electrical computers and digital processing systems: memory – Storage accessing and control – Specific memory composition

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S150000, C711S167000, C711S168000

Reexamination Certificate

active

06226708

ABSTRACT:

TECHNICAL FIELD OF THE INVENTION
This invention relates generally to microprocessors and more particularly to a method and system for efficiently programming non-volatile memory in a microprocessor.
BACKGROUND OF THE INVENTION
Non-volatile memory retains information in the absence of power. Examples of non-volatile memory include erasable programmable read-only memory (EPROM) and electrically erasable programmable read-only memory (EEPROM). Non-volatile memory may be used in a variety of electronic devices to provide storage capability, including for example, microprocessors and, more particularly, microcontrollers.
Programming or writing to non-volatile memory is conventionally much slower than reading from non-volatile memory. This contrasts with volatile memory, in which the time required to read and write data are similar. This phenomena may be understood with reference to FIG.
1
.
FIG. 1
illustrates one example of a portion of a non-volatile memory, showing a floating-gate field-effect transistor
10
that functions as a memory cell that is part of an EEPROM memory array. In this example, floating-gate field-effect transistor
10
is an n-channel metal oxide semiconductor. Floating-gate field-effect transistor
10
includes a control gate
12
, which controls the programming operations of floating-gate field-effect transistor
10
, a floating gate
14
, which stores an electrical charge, a drain
16
, a source
18
, and a channel region
15
disposed between source
18
and drain
16
.
To program floating-gate field-effect transistor
10
, a relatively high voltage is applied to control gate
12
and drain
16
simultaneously. As a result of this excitation, some of the electrons in channel region
15
acquire enough energy to be transported from channel region
15
via a thin oxide layer
20
to floating gate
14
, as indicated by arrow
19
. This captured negative charge leaves channel
15
more positive and, hence, less conducting. As a result, the threshold voltage at control gate
12
is higher for a charged cell than for one that has no charge on floating gate
14
. Consequently, for a given voltage applied to control gate
12
, floating-gate field-effect transistor
10
will conduct if floating gate
14
is not charged and remain non-conducting if the floating gate
14
is charged with stored electrons. Therefore, a one or a zero may be stored by floating-gate field effect transistor
10
based on whether or not current flows through the transistor. Discharge of electrons from floating gate
14
is illustrated by arrows
22
.
Charging or discharging, and therefore programming or writing to floating gate
14
, may be time consuming for several reasons. First, the time required for electrons to move from channel
15
through oxide layer
20
, and onto floating gate
14
is significant. In addition, charging floating gate
14
may cause damage to oxide layer
20
between channel
15
and floating gate
14
because of a resulting electric field. Therefore, charging should be performed slowly to protect the integrity of oxide layer
20
.
A plurality of non-volatile memory cells may be grouped to form an addressable location within a non-volatile memory array. Addressable locations typically include eight or sixteen bits. A non-volatile memory array may be contained on a non-volatile memory module along with control registers and additional circuitry that controls access to the non-volatile memory array. A plurality of non-volatile memory modules may be contained within one electronic device. In some prior electronic devices, only one address location in each non-volatile memory module may be accessed at a given time. Therefore, because the time required to program the addressable location is substantial, programming all non-volatile memory arrays within an electronic device may be very time consuming. In addition, the use of a plurality of non-volatile memory modules conventionally leads to a large number of peripheral select lines required to access each non-volatile memory module. Requiring a large number of peripheral select lines is undesirable, for example, because it may exhaust the limited number of peripheral select lines that are available and it reduces the efficiency of the code.
SUMMARY OF THE INVENTION
Therefore a need has arisen for a method and system for efficiently programming non-volatile memory that address the disadvantages and deficiencies of prior systems and methods. The invention includes a method and system for efficiently programming non-volatile memory.
A method of writing a plurality of data values to a plurality of non-volatile memory modules connected to a processor includes initiating writing of a first data value to a first non-volatile memory array and delaying processing by the processor for a predetermined time to allow the first data value to be written to the first non-volatile memory array. The method further includes initiating writing of a second data value to a second non-volatile memory array before delaying processing by the processor to allow the processor to delay processing while both the first data value and the second data value are being written.
According to another aspect of the invention, a microprocessor includes a central processing unit and a memory system accessible by the central processing unit. The memory system includes memory divided into a plurality of non-volatile memory modules with each non-volatile memory module including a non-volatile memory array and a control register associated with the non-volatile memory array. The microprocessor also includes a common control register select line connecting the central processing unit to each control register in the plurality of non-volatile memory modules for providing access to the plurality of non-volatile memory arrays by the central processing unit.
The invention provides several technical advantages. For example, according to the invention the amount of time required to write to all cells of a non-volatile memory system is reduced by, at least in part, splitting a non-volatile memory system into a plurality of memory arrays, each memory array stored on a separate module having a separate control register. Because each memory has a separate control register, multiple memory cells may be written to, or programmed, at the same timel In addition, according to the invention, the number of peripheral select lines required for memory modules is reduced by connecting the memory modules to a common control register select bus.


REFERENCES:
patent: 5541887 (1996-07-01), Dhong et al.
patent: 5649161 (1997-07-01), Andrade et al.
patent: 5740112 (1998-04-01), Tanaka et al.
patent: 5831929 (1998-11-01), Manning
patent: 5949716 (1999-09-01), Wong et al.
patent: 5983330 (1999-11-01), Miwa et al.
patent: 6026020 (2000-02-01), Matsubara et al.
Computer System Architecture, Third Edition, pp 42-43, M. Morris Mano, 1993.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for efficiently programming non-volatile... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for efficiently programming non-volatile..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for efficiently programming non-volatile... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2457353

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.