Abstract:
A microelectronic memory may be password access protected. A controller may maintain a register with requirements for accessing particular memory locations to initiate a security protocol. A mapping may correlate which regions within a memory array are password protected. Thus, a controller can use a register and the mapping to determine whether a particular granularity of memory is password protected, what the protection is, and what protection should be implemented. As a result, in some embodiments, a programmable password protection scheme may be utilized to control a variety of different types of accesses to particular regions of a memory array.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
     This application is a continuation of U.S. patent application Ser. No. 12/411,453 filed Mar. 26, 2009, which issued as U.S. Pat. No. 9,037,824, which is hereby incorporated by reference, in its entirety for any purpose. 
    
    
     BACKGROUND OF THE INVENTION 
     This relates generally to microelectronic memories. 
     Examples of microelectronic memories include flash memories, electrically erasable programmable read only memories, phase change memories, dynamic random access memories, and static random access memories. Each of these memories are generally accessed by a host device. In some cases, these memories may store information which is confidential or sensitive. Thus, it may be desirable to preclude unauthorized persons from accessing this information. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a system depiction of one embodiment; and 
         FIG. 2  is a flow chart for one embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Referring to  FIG. 1 , in accordance with one embodiment, a host  10  may communicate with a microelectronic memory  12 . The microelectronic memory may be any type of memory, including as examples flash memories, electrically erasable programmable read only memories, phase change memories, dynamic random access memories, and static random access memories. 
     The host  10  may, for example, be a computer system or any processor-based system, including a personal computer, a laptop computer, a set top box, a camera, a graphics controller, a cell phone, a processor, or a controller, to mention a few examples. The memory  12  may be internal or may be external to the host  10 . The memory  12  may be accessed by the host  10  to perform operations such as accessing data stored in the memory array  16 , writing information to the memory array  16 , and configuring or programming the controller  14  to do certain functions under command of the host  10 , to mention a few examples. 
     In one embodiment, the controller  14  may access a password access register  18  and a password access block mapping storage  20 . As used herein, a “password” is any secret code, be it a number, a pattern, or text. The password access block mapping storage  20  may indicate which blocks within the memory array  16  may be password access controlled. While blocks are described herein, the present invention is not limited to any particular granularity of the memory array. The password access register  18  may provide information about the type of access control that may be implemented by password protection. For example, in some embodiments, the password access register  18  may include bits to indicate selected password access modes. 
     In one embodiment, the password access register may include 16 bits. One bit may indicate whether a given granularity of the memory array, such as a particular block, is protected from even being read. For example, the bit may be a 0 or 1 to indicate whether read protection is enabled or disabled, in one embodiment. 
     A second bit in the register  18  may indicate whether or not a given block (or other granularity of memory) is modify protected. In such case, the block may be prevented from being changed (i.e., written to). Again, the bit may be a 1 or a 0 to indicate that this capability is either enabled or disabled. 
     Still another bit may indicate whether each of a plurality of blocks is permanently protected against being rewritten. Again, the bit may be a 1 or a 0 to indicate whether the permanent protection is enabled or disabled. 
     Still another bit may indicate whether a password is needed to update the read block lock map in mapping storage  20 . Still another bit may indicate whether a password is needed to update the modify block lock map in mapping storage  20 . Finally, still another bit may indicate whether a password is needed to update the permanent block lock map in mapping storage  20 . 
     An additional two bits may indicate the password size. The password size may be 64 bits, 128 bits, or 256 bits, in some embodiments. However, different numbers of bits implementing different access controls may be used in other embodiments. 
     In password access read blocking, reading is prevented. In modify blocking, modifying of the stored information may be prevented, even if reading is otherwise allowed. A permanent block lock map indication indicates that the given block is permanently locked and cannot ever be modified. It may or may not be readable. 
     The password access block mapping storage  20  may indicate to the controller  14  which blocks (or other memory granularities) are password accessible. Once it is known that a given block (or other granularity) must be accessed with a password, the password access register  18  may be accessed to determine the type of access protection that is involved. In one embodiment, the register  18  and storage  20  may be combined in one unit. 
     Thus, in some embodiments, the actual data stored in the memory array may be protected with one or more passwords. Only those users who have the correct password can access the protected data. In some embodiments, even though a given block is password protected, it may be read freely, but may not be modified. Thus, the information may be read, but, in some cases, not modified. In other cases, it cannot even be read without a password. 
     Thus, in order to program the password protection status, commands may be provided by the host to the controller. A plurality of commands may be provided that are distinguishable, one for each of the different modes. The different password modes may include, in one embodiment, no protection enabled; permanent protection enabled; modify protection enabled; and read protection enabled; permanent protect and modify protect, both enabled; permanent protect only enabled; modify protect and read protect enabled; and modify protect only enabled. Those skilled in the art would appreciate a number of other programmable password protection modes. 
     Referring to  FIG. 2 , in accordance with one embodiment of the present invention, a sequence of operations may be implemented in hardware or software. In the software embodiment, the sequence may be implemented in a computer readable medium, such as the memory array  16 , or a memory on board the controller  14 , to mention two examples. In still other embodiments, the sequence may be implemented by the host  10 . 
     Initially, a check at diamond  24  indicates whether or not the host  10  is attempting to access a granularity, such as a block, within the memory array  16 . If so, a check of the mapping storage  20 , at block  26 , determines whether or not the access granularity, such as a block, is password protected. If the block is locked (i.e. password protected), as determined in diamond  28 , a check of the password access register  18  determines the type of access conditions that are applicable, as indicated in block  30 . The conditions may then be implemented, as indicated in block  32 . These conditions may involve requesting a password via a user interface or waiting for receipt of the password for a given period of time, as two examples. When the password is received, as indicated at block  34 , a comparison of the received password to a stored password is undertaken, as indicated in diamond  36 . If there is a match, the access may be granted or the requested operation, such as programming the protected password mode, may be implemented. 
     The password may be stored in the sequence where the host programs the controller  14  with the desired access control mode, together with a password for each mode. The password may be reprogrammably stored on board the controller  24  in one embodiment. 
     In some embodiments, the password status may be implemented during the manufacturing process. In other embodiments, it may be programmed by appropriate commands by the first purchaser from the manufacturer. In some cases, the first purchaser is not the end user, but may set up the access passwords as desired. And, in some cases, the access limitations may be applied by the end user. Thus, different parties may be given the commands to program the desired level of password security. 
     References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application. 
     While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.