System and method for write-protecting predetermined portions of a memory array

Abstract: A system and method wherein a predetermined soft fuse value may be written to a corresponding soft fuse register to control subsequent access to a number of lock bits in a non-volatile semiconductor memory array which are provided for selectively precluding writes to predetermined portions of the memory array. In a specific embodiment, the system and method may be utilized in conjunction with radio frequency ("RF") identification ("ID") transponders incorporating a non-volatile ferroelectric random access memory ("FRAM") array integrated circuit.

Description: BACKGROUND OF THE INVENTION The present invention relates, in general, to a system and method for write-protecting predetermined portions of a memory array. More particularly, the present invention relates to a system and method wherein a predetermined soft fuse value may be written to a corresponding soft fuse register to control subsequent access to a number of lock bits in a non-volatile semiconductor memory array which are provided for selectively precluding writes to predetermined portions of the memory array. In a specific embodiment, the system and method may be utilized in conjunction with radio frequency ("RF") identification ("ID") transponders incorporating a non-volatile ferroelectric random access memory ("FRAM®") array integrated circuit available from Ramtron International Corporation at Colorado Springs, Colorado, assignee of the present invention. An implementation of a passive RF transponder and a communication system utilizing frequency shift keying ("FSK") and pulse shift keying ("PSK") modulation techniques in conjunction with the passive RF transponder are marketed by RACOM Systems, Inc. of Englewood, Colorado. RACOM Systems, Inc. manufactures and sells the RFC100 CORE reader/writer electronics module controller and the RFM256 transponder, the latter of which comprises an integrated circuit device including a 16 word (32 x 8 bit) FRAM memory array manufactured by Ramtron International Corporation using a proprietary leading zirconate-titanate ("PZT") ceramic thin film process. The non-volatile FRAM memory array of the transponder utilizes a number of lock bits to write-protect certain areas of the memory array. In this particular implementation, the lock bits are located in the first four bit positions of word 0. In operation, if specific lock bits are set, "writes" are precluded to predetermined corresponding portions of the FRAM memory array making the information contained therein essentially unchangeable. On the other hand, if specific lock bits are not set, data can be written to the same memory word bit locations repeatedly, thereby "over-writing" or changing the data. Once the lock bits have been set, they may not be "unset" thereafter to ensure the integrity of the information at the corresponding memory array bit locations. Upon fabrication of the integrated circuit for the RFM256, the individual lock bits of the memory array (as with all other bit locations in the memory) array) may randomly assume one of two different states in accordance with the known operating characteristics of FRAM memory devices. That is, they may individually assume either a logic level "one" (or "set" condition) or logic level "zero" (or "unset" condition). Prior to shipment to the end user for encapsulation or integration with other circuitry or devices, the lock bits must be cleared to a consistently "unset" state such that they may later be set as appropriate once data is written to the memory array. Currently, the integrated circuit includes a test pad which is probed during wafer test to set and unset (or "toggle") the lock bits to test their functionality and to ensure that they actually lock as well as to effectively "clear" (or unset) them prior to shipment. However, in addition to the on chip "real estate" consumed by the test pad, the time necessary to probe the wafer adds significantly to the processing and handling time of the integrated circuit die, and hence, increases its cost. Moreover, once the die has been encapsulated, for example in an RF transponder package, the test pad is no longer accessible to allow toggling of the lock bits to alter their state or determine whether encapsulation has rendered the die inoperative. SUMMARY OF THE INVENTION The system and method of the present invention can allow for the elimination of the memory array lock bit test pad as well as obviating a substantial portion of the wafer testing necessary to ensure that the lock bits are cleared prior to encapsulation or packaging of the integrated circuit die. This may be effectuated by defining a first memory array location, which may be an additional non-volatile memory array word or similar grouping of memory bits constituting a soft fuse register. In the case of an unprogrammed die, this additional word would, as with the memory array itself, contain a number of bits of random data. A comparison of a known soft fuse value of "signature" to this random data at power-up is utilized to provide a signal that indicates that the part is as yet unprogrammed. A soft fuse value is a known data value that is "N" bits wide. The soft fuse value can also be thought of as a signature or password. As long as the "unprogrammed" signal remains true, the die may be considered to be new. During this mode of operation, the user is accorded access to all locations (including the lock bits) of the memory array as well as the additional word or row containing the soft fuse value as long as the soft fuse value is not written to this latter memory location. This allows the user to toggle all locations of the memory array and set the lock bits to the desired state. Upon execution of a predefined command, the integrated circuit writes the soft fuse value or "signature" into the additional memory word location. This additional memory word now no longer contains random data, but rather contains the soft fuse value. From this point on, the "unprogrammed" signal remains false and the integrated circuit will allow only a one-time setting of the lock bits and writing to unlocked memory locations. In addition, the soft fuse value can no longer be written to the additional memory word location following the first "write". On all subsequent power-up cycles, the integrated circuit compares the contents of the additional memory word to the soft fuse value and sets the "programmed" signal appropriately. Utilizing the system and method of the present invention, the estimated integrated circuit die yield loss due to a random occurrence of the soft fuse value appearing in the FRAM soft fuse register may be on the order of 1/2 n , where n is the register width. As a practical matter, the "signature" value selected to be written to the soft fuse register may be carefully selected to actually lower the anticipated yield loss from the previously defined statistical average. In operation in conjunction with an RE/ID transponder, for example, a potentially bad FRAM memory location within the integrated circuit memory array may also be flagged should the "unprogrammed" indication from the transponder be received by the controller. In this manner, the controller can also determine if the transponder is either a "new" or an already "programmed" part. Transponders indicating that they are "new" or "unprogrammed" may be flagged as having potential problems. According to the invention, there is provided a method for write-protecting predetermined portions of a memory array utilizing a number of lock bits settable for controlling subsequent writes to selected ones of the predetermined portions of the memory array. The method includes the steps of defining a first memory location for containing a predetermined soft fuse value and a second memory location for containing the lock bits. The contents of the first memory location are read to determine a read-out contents thereof. The read-out contents of the first memory location are compared to the soft fuse value and the setting and resetting of individual ones of the lock bits is allowed if the read-out contents do not correspond to the soft fuse value. Alternatively, setting is allowed and resetting is disallowed of individual ones of the lock bits if the read-out contents correspond to the soft fuse value. Also provided herein is an integrated circuit and an RF transponder incorporating the same including a memory array having predetermined write-protectable portions thereof utilizing a number of lock bits settable for controlling subsequent writes to selected ones of the write-protectable portions. The memory array comprises first and second memory locations for containing a predetermined soft fuse value and the lock bits respectively. Means are provided for reading the contents of the first memory location to determine a read-out contents thereof. Additional means are provided for comparing the read-out contents of the first memory location to the soft fuse value and for allowing setting and resetting of individual ones of the lock bits if the read-out contents do not correspond to the soft fuse value. Still further, means are also provided for allowing setting, and disallowing resetting, of individual ones of the lock bits if the read-out contents correspond to the soft fuse value. BRIEF DESCRIPTION OF THE DRAWINGS The aforementioned, and other features and objects of the present invention and the manner of attaining them will become more apparent and the invention itself will be best understood by reference to the following description of a specific embodiment taken in conjunction with the accompanying drawings wherein: Fig. 1 is a simplified, functional block diagram of an active RF controller and associated passive RF transponder forming a communication system whereby data may be written to, or read from selected bit locations in the non-volatile memory array by means of FSK modulated command words transmitted to the transponder; Fig. 2A is a representative configuration word which may be continuously transmitted from the transponder of Fig. 1 in response to reception of sufficient RF signal strength from the associated controller to enable the non-volatile memory array and associated functional logic blocks wherein the configuration word comprises, for example, a 16 bit word including, inter alia , a number of lock bits representative of the states of the first four bits of word 0 of the memory array; Fig. 2B is a representative command word which may be transmitted from the controller Fig. 1 to cause the transponder to read one or more words from the non-volatile memory array and transmit the same back to the controller utilizing a PSK modulated signal as well as to write a soft fuse value to a memory location to preclude further setting and resetting of the lock bits of word 0; and Fig. 3 is a logic flow chart of a method in accordance with an embodiment of the present invention utilized to read out the contents of a memory location to determine the presence or absence of the soft fuse value and allow setting and resetting of the lock bits of a memory array when the soft fuse value has not been found and to allow only the one-time setting of the lock bits once the soft fuse value has been written to the designated memory location. DESCRIPTION OF A PREFERRED EMBODIMENT With reference now to Fig. 1, an exemplary communication system 10 to which the system and method for write-protecting predetermined portions of a memory array of an embodiment of the present invention may be applied, is shown. Communication system 10 comprises, in pertinent part, an active controller 12 and associated passive transponder 14. The controller 12 comprises, in pertinent part, a microcomputer 16 which may be bidirectionally coupled to a host computer 18 by means of an RS-232 port or other similar communications interface. The microcomputer 16 is coupled to an FSK output section 20 which, in turn, is coupled to an antenna 22 for broadcasting an FSK modulated digital signal varying between 116.3 and 125 KHz. Antenna 22 is also utilized for reception of a PSK modulated signal of 62.5 KHz transmitted by the transponder 14 in response to the powering FSK signal received from the controller 12. The microcomputer 16 is coupled to a PSK input section 24 for reception of the data transmitted from the transponder 14 as received by the antenna 22. Transponder 14 comprises an integrated circuit 26 as well as an externally connected antenna coil 28 and parallel connected tuning capacitor 30. The parallel combination of antenna coil 28 and tuning capacitor 30 is coupled to the integrated circuit 26 at RF+ node 32 and RF- node 34. Power for the integrated circuit 26 of the transponder 14 is derived from the RF signal transmitted from the controller 12 by means of power supply 36 coupled across RF+ node 32 and RF- node 34. In this manner, when the transponder 14 is sufficiently within the powering RF field of the controller 12, power supply 36 can provide a source of V DD , V SS and PWREN as shown. The FSK modulated RF signal received by antenna coil 28 and tuning capacitor 30 is also supplied through amplifier 38 to a timing control circuit 40 for synchronizing operation of the various logic blocks of the transponder 14. Timing control circuit 40 supplies inputs to FSK detector circuit 42, control logic 44 and command data register 48. Output of FSK detector circuit 42 is supplied as one input to lock control circuit 46 which has an output coupled to the command data register 48. Lock control circuit 46 also receives as input, an output of control logic 44. An additional input to the command data register 48 is supplied as configuration data which may be "hard-wired" or pre-set during the manufacture of the integrated circuit 26 of the transponder 14. The command data register 48 supplies inputs to address register 52 and control logic 44 to provide signals indicative of the address bits and command bits respectively derived from the controller 12 command word as will be more fully described hereinafter. The address register 52 provides a row address ("ROWADD") and column address ("COLADD") input to memory array 50 to select desired memory locations. Memory array 50 is bidirectionally coupled by means of a data bus to the command data register 48 such that information may be written to or read from the memory array 50 in accordance with the contents of the current contents of the command data register and the signals from the address register 52. The contents of the command data register 48 is also supplied as a data out signal to an encoder and synchronization generator 54 which has its output coupled to a PSK modulator 56. The output of the PSK modulator 56 is supplied across RF+ node 32 and RF- node 34 to generate a PSK encoded RF signal for transmission from the transponder 14 to the controller 12. Memory array 50 has an associated test pad 58 to allow, inter alia , the setting and resetting of the lock bits which, in this particular implementation, comprise the first four bit locations of word 0 of the memory array 50. In accordance with the present embodiment, an additional memory word, or register, may be associated with, or part of, the memory array 50 to constitute a soft fuse register 60 for implementing the system and method of the present invention as will be more fully described hereinafter. In operation, the communication system 10 utilizes FSK modulated RF signals transmitted from the controller 12 to the transponder 14 from which the latter derives its power as previously described. The use of FSK modulation allows the average signal power to remain at a maximum as opposed to other modulation techniques and the transponder 14 is able to demodulate the FSK encoded signal without the incorporation of an on-chip oscillator frequency reference. Upon power-up by introduction of the transponder 14 to the electromagnetic field of the associated controller 12, the transponder 14 continuously transmits a configuration word to the controller 12 utilizing a phase coherent PSK modulated signal of 62.5 KHz which is derived from the 125 KHz FSK RF input. An exemplary configuration word 100 is shown in Fig. 2A. With reference additionally to Fig. 2A, the configuration word 100 comprises 16 bits of data designated as bits D0-D15. Bits D0-D3 are denominated as a synchronization block 102 which generally comprises four consecutive logic level "zeros". Bit D4 is denominated a start bit 104 and generally comprises a single bit of logic level "one". Following the synchronization block 102 and start bit 104, bits D5-D8 comprise a number of lock bits 106 designated L0-L3. lock bits 106 may be followed by a number of mask bits 108 and type bits 110 as well as two bits D14 and D15 which correspond to the command bits of a command word transmitted by the controller 12 to the transponder 14. Bits D14 and D15 may be utilized to indicate the state of the soft fuse register 60 to the associated controller 12. The lock bits 106 control access to writes initiated by the controller 12 to predetermined locations of the memory array 50 of the transponder 14. As an example only, if bit L0 is set to a logic level "one" , words 0 through 15 (and, hence, the entire memory array 50) are locked and thus the contents of the memory array 50 may not be altered. Conversely, if all of the lock bits 106 L0-L3 are logic level "zero", none of the words of the memory array 50 are precluded from being written to by the receipt of the appropriate command from the controller 12. If bit L2 of the lock bits 106 is a logic level "one" and the remaining lock bits are logic level "zero", words 1 through 3 of the memory array 50 are locked. If bit L3 of the lock bits 106 is a logic level "one" and the remaining lock bits are logic level "zero", words 1 through 5 are locked. In like manner, if bits L2 and L3 of the lock bits 106 are logic level "one" and the remaining lock bits are logic level "zero", words 1 through 7 are locked. Finally, if bit L1 of the lock bits 106 is a logic level "one", word 0 of the memory array 50 is locked except for the first four bit locations 0 through 3 which contain the actual lock bits corresponding to the lock bits 106 of the configuration word 100. Referring additionally now to Fig. 2B, the controller 12 modulates a data signal between 125 KHz and 116.3 KHz to send a four bit time synchronization block 114, a start bit 116, a memory word address 118 and command bits 120 together comprising a 16 bit command word 112 comprising bits D0-D15. The synchronization block 114 and start bit 116 correspond directly with the synchronization block 102 and start bit 104 of the configuration word 100 transmitted by the transponder 14. When synchronization between these portions of the configuration word 100 and the command word 112 is achieved, the bits of the memory word address 118 designates to the transponder 14 the word location within the memory array 50 from which data is to be read, or to which data is to be written. The two command bits 120 control the operation of the transponder 14 in accordance with the finite state machine of the control logic 44. As an example, when in the idle mode, the command bits C1 and C0 are both at logic level "zero" whereupon the transponder 14 will continuously transmit the configuration word 100 to the associated controller 12. By setting bit C1 to a logic level "one" and bit C0 to logic level "zero", the transponder 14 will read the data from the corresponding word of the memory array 50 and transmit the same back to the associated controller 12. If the controller 12 changes the data at the word denominated by the memory word address 118, it simultaneously transmits complementary bit signals of 116.3 KHz in bit-for-bit synchronization with the data being transmitted from the transponder 14. In like manner, if the command bit C1 is a logic level "one" and the command bit C0 is also a logic level "one", the transponder will begin transmitting the contents of the memory array 50 beginning at the memory word address 118 specified through and including word 15. As before, should the controller wish to alter the contents of the memory array 50, it will transmit 116.3 KHz signals in synchronization with the data being transmitted from the transponder 14. The command bits 120 may also be utilized in accordance with the present invention to write a predetermined soft fuse value to the soft fuse register 60 by setting bit C1 to a logic level "zero" and bit C0 to a logic level "one". In this manner, and as will be more fully described hereinafter, the integrated circuit 26 of the transponder 14 will be recognized as either a "programmed" (i.e., the predetermined soft fuse value has been written to the soft fuse register 60) or "unprogrammed" (i.e., the soft fuse value has not yet been written to the soft fuse register 60) unit. With reference additionally now to Fig. 3, a logic flow chart for the system and method of an embodiment of the present invention is shown. The logic flog begins at decision step 130 whereupon, if sufficient power is being supplied to the integrated circuit 26 of the transponder 14 by the power supply 36, the process proceeds to step 134 where the contents of the soft fuse register 60 are read. Alternatively, if the transponder 14 is not powered sufficiently to be fully operational, but still sufficiently powered to enable transmission of the configuration word 100, the process proceeds to step 132 where the configuration word 100 is continuously transmitted to the associated controller 12. From step 134, the process proceeds to decision step 136 where it is determined whether or not the integrated circuit 26 is an unprogrammed part. At step 138, if the integrated circuit 26 is an unprogrammed part, the bits D14 and D15 of the configuration word 100 are set to a predefined state to indicate to the controller 12 that it is an unprogrammed part and the configuration word 100 is sent to the controller 12 at step 142. Conversely, if it is determined at decision step 140 that the integrated circuit 26 is not an unprogrammed part, then, at step 140, the final two bits of the configuration word 100 are set to a different predefined state to indicate to the controller 12 that it is an already programmed part and the configuration word 100 is sent at step 142. Briefly then, by means of steps 138 and 140, the transponder 14 serves to indicate by the setting of bits D14 and D15 of the configuration word 100 whether or not it is a programmed or unprogrammed part. At step 144, the transponder 14 reads the command bits 120 from the command word 112 and the process proceeds to decision step 146. If at decision step 146, the "program" command (01) is not found, then at step 148 the normal command designated by the command bits 120 of the command word 112 is executed. However, if at step 146 the "program" command is recognized, then the process proceeds to decision step 150 where, if the integrated circuit 26 of the transponder 14 is not an unprogrammed part (i.e. is a programmed part), the process returns to step 140 to set bits D14 and D15 of the configuration word 100 to indicate that it is already a programmed part. Alternatively, if at decision step 150 it is determined that the integrated circuit 26 of the transponder 14 is an unprogrammed part, then the process proceeds to step 152 where the predetermined soft fuse value is written to the soft fuse register 60 associated with the memory array 50. The process then proceeds to step 140 to indicate that the integrated circuit 26 of the transponder 14 is now a programmed part inasmuch as the predetermined soft fuse value, or "signature", has been written to the soft fuse register 60. While there have been described above the principles of the invention in conjunction with specific apparatus, it is to be clearly understood that the foregoing description is made only by way of example and not as a limitation to the scope of the invention. Particularly, while having been described with respect to an exemplary implementation in conjunction with a FRAM memory array and an RF/ID communications system, the system and method of the present invention is nevertheless applicable to use in conjunction with any type of non-volatile memory devices including non-volatile RAMs ("NVRAMs"), static RAMs ("SRAMs"), battery backed SRAMs ("BBSRAMs"), electrically erasable programmable read only memories ("EEPROMs") and the like.

Claims: A method for write-protecting predetermined portions of a memory array (50) utilizing a number of lock bits settable for controlling subsequent writes to selected ones of said predetermined portions of said memory array (50), said method comprising the steps of: defining a first memory location (60) in said memory array (50) for containing a predetermined soft fuse value and a second memory location for containing said lock bits; reading the contents of said first memory location (60) to determine a read-out contents thereof; comparing said read-out contents of said first memory location (60) to said soft fuse value; allowing setting and resetting of individual ones of said lock bits if said read-out contents do not correspond to said soft fuse value; and allowing setting and disallowing resetting of individual ones of said lock bits if said read-out contents correspond to said soft fuse value. The method of claim 1 wherein said step of defining comprises the step of partitioning said first and second memory locations within said memory array (50). The method of claim 1 wherein said step of defining comprises the step of providing an additional memory word of said memory array (50) as said first memory location (60). The method of claim 1 wherein said step of defining is carried out by means of a non-volatile storage device. The method of claim 4 wherein said non-volatile storage device comprises a ferroelectric random access memory integrated circuit. The method of claim 1 further comprising the step of: writing said soft fuse value to said first memory location (60) prior to said step of reading. The method of claim 1 further comprising the step of: indicating to an external device whether said first memory location (60) contains said soft fuse value. An integrated circuit including a memory array (50) having predetermined write-protectable portions thereof utilizing a number of lock bits settable for controlling subsequent writes to selected ones of said write-protectable portions, characterised in that said memory array (50) comprises: first and second memory locations for containing a predetermined soft fuse value and said lock bits respectively; and in that the circuit also includes means for reading the contents of said first memory location to determined a read-out contents thereof; means for comparing said read-out contents of said first memory location to said soft fuse value; means (58) for allowing setting and resetting of individual ones of said lock bits if said read-out contents do not correspond to said soft fuse value; and means (58) for allowing setting and disallowing resetting of individual ones of said lock bits if said read-out contents correspond to said soft fuse value. The integrated circuit of claim 8 wherein said memory array (50) comprises a non-volatile memory array. The integrated circuit of claim 9 wherein said memory array (50) comprises a ferroelectric memory array. The integrated circuit of claim 10 wherein said first and second memory locations comprise a portion of said ferroelectric memory array (50). The integrated circuit of claim 8 further comprising: means for writing said soft fuse value to said first memory location in response to an external device. The integrated circuit of claim 12 further comprising: means for indicating to said external device whether said first memory location contains said soft fuse value. An RF transponder comprising an integrated circuit as claimed in any one of claims 8 to 11. The RF transponder of claim 14 further comprising: means for writing said soft fuse value to said first memory location (60) in response to an external device. The RF transponder of claim 15 further comprising: means for indicating to said external device whether said first memory location (60) contains said soft fuse value. The RF transponder of claim 16 wherein said external device is an RF controller. The RF transponder of claim 17 wherein said indicating means comprises a number of bits transmitted to said RF controller indicative of said soft fuse value being present or not present in said first memory location.

Inventors: DOWNS JEFFERY E, YEAGER MICHAEL W, DOWNS, JEFFERY E., YEAGER, MICHAEL W.
Applicants: RAMTRON INT CORP, RAMTRON INTERNATIONAL CORPORATION
Application year: 1994
Main classification: G11C7
IPC codes: G06F21, G06F12, G11C11, G11C7