US20190278362A1 - Power Management Integrated Circuit with In Situ Non-Volatile Programmability - Google Patents

Power Management Integrated Circuit with In Situ Non-Volatile Programmability Download PDF

Info

Publication number
US20190278362A1
US20190278362A1 US15/919,036 US201815919036A US2019278362A1 US 20190278362 A1 US20190278362 A1 US 20190278362A1 US 201815919036 A US201815919036 A US 201815919036A US 2019278362 A1 US2019278362 A1 US 2019278362A1
Authority
US
United States
Prior art keywords
memory bank
otp memory
pmic
otp
bank
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US15/919,036
Other versions
US10423218B1 (en
Inventor
Matthew David Rowley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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
Priority to US15/919,036 priority Critical patent/US10423218B1/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Assigned to MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT reassignment MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT SUPPLEMENT NO. 8 TO PATENT SECURITY AGREEMENT Assignors: MICRON TECHNOLOGY, INC.
Assigned to JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT reassignment JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICRON SEMICONDUCTOR PRODUCTS, INC., MICRON TECHNOLOGY, INC.
Assigned to MICRON TECHNOLOGY, INC. reassignment MICRON TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ROWLEY, MATTHEW DAVID
Priority to US16/395,974 priority patent/US10852812B2/en
Publication of US20190278362A1 publication Critical patent/US20190278362A1/en
Publication of US10423218B1 publication Critical patent/US10423218B1/en
Application granted granted Critical
Assigned to MICRON TECHNOLOGY, INC. reassignment MICRON TECHNOLOGY, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Assigned to MICRON TECHNOLOGY, INC., MICRON SEMICONDUCTOR PRODUCTS, INC. reassignment MICRON TECHNOLOGY, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Priority to US17/099,158 priority patent/US11379032B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/26Sensing or reading circuits; Data output circuits
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/147Voltage reference generators, voltage or current regulators; Internally lowered supply levels; Compensation for voltage drops
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • H01L27/11521
    • H01L27/11526
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/40Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the peripheral circuit region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Definitions

  • PMIC power management integrated circuit
  • a memory system can be a storage system, such as a solid-state drive (SSD), and can include one or more memory components that store data.
  • a memory system can include memory devices such as non-volatile memory devices and volatile memory devices.
  • a host system can utilize a memory system to store data at the memory devices of the memory system and to retrieve data stored at the memory system.
  • a memory system can include a PMIC to manage the power requirements of the memory system in which the PMIC is configured.
  • the PMIC typically includes electronic power conversion circuitry and relevant power control functions.
  • a PMIC additionally allows for programmable control of the functionality of the PMIC. For example, a PMIC may be reconfigured to change the power sequence, output voltages, and various other functions of the PMIC.
  • Certain dedicated hardware is included within a PMIC package to support programmatic control of the device.
  • a register file is used for storing values controlling the operation of the device.
  • More recent PMICs incorporate non-volatile memory (e.g., electrically erasable programmable read-only memory, or, EEPROM) for storage of data.
  • non-volatile memory e.g., electrically erasable programmable read-only memory, or, EEPROM
  • the use of non-volatile memory allows for storage of data values that persists despite (sometimes frequent) power cycles.
  • register file is a volatile storage device, and any data stored therein is lost during power cycling of the PMIC.
  • the register file fails to maintain data in the event of a power cycle, making it unsuitable for longer-term value storage. This deficiency is particularly pronounced during development and testing of PMIC devices, where operational parameters regarding the operation of the PMIC during power cycles is desired to be tested.
  • non-volatile memory like EEPROM
  • EEPROM electrically erasable programmable read-only memory
  • circuitry required to support these memories increases the size and power consumption of PMIC devices.
  • a PMIC with a read-only memory bank and an EEPROM bank requires twice the circuity for accessing the read-only memory bank as well as supporting erasing and writing to the EEPROM.
  • FIG. 1 is a block diagram of a power management integrated circuit according to some embodiments of the disclosure.
  • FIG. 2 is a flow diagram illustrating a method for toggling between OTP memory banks according to some embodiments of the disclosure.
  • FIG. 3 illustrates an example computing environment that includes a memory system in accordance with some implementations of the present disclosure.
  • a power management integrated circuit in a memory system.
  • An example of a memory system is a storage system, such as a solid-state drive (SSD).
  • the memory system is a hybrid memory/storage system.
  • a host system can utilize a memory system that includes one or more memory devices.
  • the memory devices can include media.
  • the media can be non-volatile memory devices, such as, for example, negative-and (NAND).
  • the host system can provide write requests to store data at the memory devices of the memory system and can provide read requests to retrieve data stored at the memory system.
  • a memory system can include a controller that manages the memory devices to perform operations such as reading data, writing data, or erasing data and other such operations.
  • a storage system (also hereinafter referred to as storage device) is used as one example of the memory system hereinafter throughout this document.
  • FIG. 1 is a block diagram of a power management integrated circuit according to some embodiments of the disclosure.
  • the PMIC ( 100 ) illustrated in FIG. 1 includes switch drivers ( 102 ), voltage regulators ( 104 ), sequencer ( 106 ), memory banks ( 108 A, 108 B), access control circuity ( 116 ) and an interface ( 114 ).
  • the PMIC ( 100 ) is connected to a host application ( 120 ) via a bus ( 118 ), such as an I2C bus.
  • the host application ( 120 ) comprises an external computing device that provides read and, more importantly, write commands to the PMIC ( 100 ).
  • interface ( 114 ) is configured to receive and transmit commands over the bus ( 118 ) and forward write requests to the access control logic ( 116 ).
  • the PMIC ( 100 ) has one or more voltage regulators ( 104 ) that convert the external power supply to the PMIC ( 100 ) to operating voltages used by various components of the device (or devices) powered by the PMIC ( 100 ) (e.g., solid-state storage devices, DRAM, etc.).
  • the PMIC ( 100 ) includes a plurality of switch drivers ( 102 ) that provide the control signals for the load switches (not illustrated) that selectively enable and disable power to and from the supported devices.
  • the PMIC ( 100 ) includes a sequencer ( 106 ) that schedules the power-related events according to desirable sequences for the operations of the supported devices, including the sequences of the operations of the voltage regulators ( 102 ) and the switch drivers ( 104 ).
  • each memory bank ( 108 A, 108 B) comprises a one-time programmable (OTP) memory bank.
  • OTP one-time programmable
  • each memory bank ( 108 A, 108 B) comprises the same type of memory, although, in some embodiments, the memory banks ( 108 A, 108 B) may comprise differing OTP memory technologies.
  • memory banks ( 108 A, 108 B) are identically sized while in other embodiments the size of each memory bank ( 108 A, 108 B) may be adjusted based on the needs of the PMIC ( 100 ).
  • memory bank ( 108 B) may be sized larger than memory bank ( 108 A) to compensate for the single-write aspects of the memory bank (e.g., multiple versions of parameters may be stored during development).
  • memory bank ( 108 A) may be sized larger than memory bank ( 108 B) to support vendor-specific parameters.
  • memory banks ( 108 A, 108 B) store parameters ( 124 A, 124 B) controlling the operation of the PMIC ( 100 ) including circuitry ( 102 - 106 ).
  • Various circuits of the PMIC ( 100 ) access the memory banks ( 108 A, 108 B) and utilize the stored parameters to control their operation.
  • Parameters ( 124 B) are dashed in FIG. 1 to illustrate an empty bank ( 108 B).
  • Both memory banks ( 108 A, 108 B) may include a write enable pin, pad, or connector (referred to generally as a “write enable”). This write enable controls whether writing is possible to the memory bank, regardless of whether the memory bank has already been written to, thus converting the memory bank into a write-never memory device.
  • One write enable ( 112 ) is illustrated in the memory bank ( 108 B) however in some embodiments memory bank ( 108 A) also may include a write enable.
  • one memory bank ( 108 A) includes a dedicated bit ( 110 ).
  • This dedicated bit ( 110 ) drives the write enable ( 112 ) of the second memory bank ( 108 B).
  • other signals may also drive the write enable ( 112 ), and these signals, combined with bit ( 110 ) may be multiplexed to control writing to the bank ( 108 B).
  • bit ( 110 ) comprises a fixed location in the bank ( 108 A). For example, a specific bit in a specific memory location may be used as the bit ( 110 ).
  • the bit ( 110 ) is hardwired to the write enable ( 112 ) thus automatically enabling/disabling the bank ( 108 B) when that bit is written. For example, if bit ( 110 ) is set to one, writing to the bank ( 108 B) is enabled; while if bit ( 110 ) is set to zero, writing to the bank ( 108 B) is disabled.
  • bank ( 108 A) is written to during manufacturing of the PMIC ( 100 ).
  • a manufacturer may write a one or zero to bit ( 110 ) achieving the effect of providing or not providing, respectively, one-time programmable features to the PMIC ( 100 ).
  • PMIC ( 100 ) additionally includes access control logic ( 116 ) which controls access to banks ( 108 A, 108 B).
  • access control logic ( 116 ) may comprise a controllable switch or fuse that switches between banks ( 108 A, 108 B).
  • access control logic ( 116 ) is switched to provide access to the bank ( 108 A) (e.g., to circuits 102 - 106 ).
  • the access control logic ( 116 ) may later receive a write request from host application ( 120 ) via an interface ( 114 ).
  • the access control logic ( 116 ) includes a second switch driven by the write enable ( 112 ) that determines whether data in the write request may be written to the bank ( 108 B). If the write enable ( 112 ) is enabled, access control logic ( 116 ) permits the writing to the bank ( 108 B). After writing is complete, the access control logic ( 116 ) toggles the first switch such that future requests from circuits ( 102 - 106 ) are routed automatically to the second bank ( 108 B).
  • FIG. 2 is a flow diagram illustrating a method for toggling between OTP memory banks according to some embodiments of the disclosure.
  • the method performed in FIG. 2 is performed by a PMIC.
  • operations at blocks 206 - 222 C may be controlled by access control logic in the PMIC, while other steps may be performed by other components of the PMIC (or in response to external inputs).
  • bank A is programmed.
  • bank A comprises an OTP memory bank.
  • bank A is programmed by a manufacturer of the PMIC, although the specific programmer is not intended to be limited.
  • bank A includes all non-volatile parameters needed to operate the PMIC.
  • the method powers on the PMIC device.
  • powering on the PMIC device causes the circuits of the PMIC device to issue read requests to the PMICs memory to retrieve operational parameters.
  • bank B may also comprise an OTP memory bank that is uninitialized during manufacturing and, potentially, written to after manufacturing.
  • the operation at block 206 is performed in response to a request for data from the circuitry of the PMIC.
  • step 206 may be performed by a CMOS or similar switch within the access control logic of the PMIC.
  • the operation at block 206 may be performed immediately upon powering the PMIC.
  • the method sets bank A as the parameter source at block 208 .
  • the method may receive one or more requests for data from the circuitry of the PMIC (block 222 A). In response to these requests, the method responds to the requests with the data stored in bank A. These requests may continue until a write request is received and may continue during the actual write request.
  • the method receives a write request.
  • the write request includes data to be written to bank B.
  • the write request is received from a host application over a bus and interface, as described previously.
  • the method determines if writing is enabled for bank B. In one embodiment, the method makes this determination by detecting whether a write enable signal is enabled or disabled for bank B. In one embodiment, the operation at block 212 additionally includes determining whether data has already been written to bank B.
  • the method continues to handle parameter requests from circuitry using bank A (block 222 B). This process continues until power to the PMIC is cycled (block 220 ).
  • the method determines that writing is enabled at block 212 , the method writes the contents of the write request to bank B at block 214 .
  • the write request may include all data to be written to bank B.
  • the write request may comprise multiple sub-requests including data to be written, delimited by START and STOP commands.
  • the method sets bank B as the parameter source for future requests and handles parameter requests using bank B (block 222 C) for future requests until power is cycled (block 220 ).
  • the method determines that bank B has been written to in response to a power on or power cycle, the method ignores any future write requests (block 218 ). Since bank B has been written to, the method proceeds to handle all parameter requests from bank B (block 222 C) until power cycling.
  • FIG. 3 illustrates an example computing environment 300 that includes a memory system 310 in accordance with some implementations of the present disclosure.
  • the memory system 310 can include media, such as memory devices 312 A to 312 N.
  • the memory devices 312 A to 312 N can be volatile memory devices, non-volatile memory devices, or a combination of such.
  • the memory system is a storage system.
  • An example of a storage system is a SSD.
  • the memory system 310 is a hybrid memory/storage system.
  • the computing environment 300 can include a host system 320 that uses the memory system 310 .
  • the host system 320 can write data to the memory system 310 and read data from the memory system 310 .
  • the host system 320 can be a computing device such as a desktop computer, laptop computer, network server, mobile device, or such computing device that includes a memory and a processing device.
  • the host system 320 can include or be coupled to the memory system 310 so that the host system 320 can read data from or write data to the memory system 310 .
  • the host system 320 can be coupled to the memory system 310 via a physical host interface.
  • “coupled to” generally refers to a connection between components, which can be an indirect communicative connection or direct communicative connection (e.g., without intervening components), whether wired or wireless, including connections such as, electrical, optical, magnetic, etc.
  • Examples of a physical host interface include, but are not limited to, a serial advanced technology attachment (SATA) interface, a peripheral component interconnect express (PCIe) interface, universal serial bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), etc.
  • the physical host interface can be used to transmit data between the host system 320 and the memory system 310 .
  • the host system 320 can further utilize an NVM Express (NVMe) interface to access the memory devices 312 A to 312 N when the memory system 310 is coupled with the host system 320 by the PCIe interface.
  • NVMe NVM Express
  • the physical host interface can provide an interface for passing control, address, data, and other signals between the memory system 310 and the host system 320 .
  • the memory devices 312 A to 312 N can include any combination of the different types of non-volatile memory devices and/or volatile memory devices.
  • An example of non-volatile memory devices includes a negative-and (NAND) type flash memory.
  • Each of the memory devices 312 A to 312 N can include one or more arrays of memory cells such as single level cells (SLCs) or multi-level cells (MLCs) (e.g., triple level cells (TLCs) or quad-level cells (QLCs)).
  • a particular memory device can include both an SLC portion and a MLC portion of memory cells.
  • Each of the memory cells can store bits of data (e.g., data blocks) used by the host system 320 .
  • the memory devices 312 A to 312 N can be based on any other type of memory such as a volatile memory.
  • the memory devices 312 A to 312 N can be, but are not limited to, random access memory (RAM), read-only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change memory (PCM), magneto random access memory (MRAM), negative-or (NOR) flash memory, electrically erasable programmable read-only memory (EEPROM), and a cross-point array of non-volatile memory cells.
  • a cross-point array of non-volatile memory can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many Flash-based memory, cross point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. Furthermore, the memory cells of the memory devices 312 A to 312 N can be grouped as memory pages or data blocks that can refer to a unit of the memory device used to store data.
  • the controller 315 can communicate with the memory devices 312 A to 312 N to perform operations such as reading data, writing data, or erasing data at the memory devices 312 A to 312 N and other such operations.
  • the controller 315 can include hardware such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof.
  • the controller 315 can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.
  • the controller 315 can include a processor (processing device) 317 configured to execute instructions stored in local memory 319 .
  • the local memory 319 of the controller 315 includes an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory system 310 , including handling communications between the memory system 310 and the host system 320 .
  • the local memory 319 can include memory registers storing, e.g., memory pointers, fetched data, etc.
  • the local memory 319 can also include read-only memory (ROM) for storing micro-code. While the example memory system 310 in FIG.
  • a memory system 310 may not include a controller 315 , and may instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory system).
  • external control e.g., provided by an external host, or by a processor or controller separate from the memory system.
  • the controller 315 can receive commands or operations from the host system 320 and can convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory devices 312 A to 312 N.
  • the controller 315 can be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error-correcting code (ECC) operations, encryption operations, caching operations, and address translations between a logical block address and a physical block address that are associated with the memory devices 312 A to 312 N.
  • the controller 315 can further include host interface circuitry to communicate with the host system 320 via the physical host interface.
  • the host interface circuitry can convert the commands received from the host system into command instructions to access the memory devices 312 A to 312 N as well as convert responses associated with the memory devices 312 A to 312 N into information for the host system 320 .
  • the memory system 310 can also include additional circuitry or components that are not illustrated.
  • the memory system 310 can include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the controller 315 and decode the address to access the memory devices 312 A to 312 N.
  • a cache or buffer e.g., DRAM
  • address circuitry e.g., a row decoder and a column decoder
  • the memory system 310 can include PMIC 311 (e.g., PMIC 100 in FIG. 1 ).
  • the memory system 310 can include additional circuitry, such as illustrated in FIG. 1 .
  • various functions and operations may be described as being performed by or caused by computer instructions to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the computer instructions by one or more controllers or processors, such as a microprocessor.
  • the functions and operations can be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA).
  • ASIC Application-Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.
  • At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor or microcontroller, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.
  • processor such as a microprocessor or microcontroller
  • a memory such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.
  • Routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.”
  • the computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.
  • a tangible, non-transitory computer storage medium can be used to store software and data which, when executed by a data processing system, causes the system to perform various methods.
  • the executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices.
  • the data and instructions can be obtained from centralized servers or peer-to-peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer-to-peer networks at different times and in different communication sessions or in a same communication session.
  • the data and instructions can be obtained in their entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine-readable medium in their entirety at a particular instance of time.
  • Examples of computer-readable storage media include, but are not limited to, recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, and optical storage media (e.g., Compact Disk Read-Only Memory (CD ROM), Digital Versatile Disks (DVDs), etc.), among others.
  • the instructions may be embodied in a transitory medium, such as electrical, optical, acoustical or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc.
  • a transitory medium is typically used to transmit instructions, but not viewed as capable of storing the instructions.
  • hardwired circuitry may be used in combination with software instructions to implement the techniques.
  • the techniques are neither limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.

Abstract

Disclosed is a power management integrated circuit including dual one-time programmable memory banks and methods for controlling the same. In one embodiment, the power management integrated circuit (PMIC) includes a first one-time programmable (OTP) memory bank; a second OTP memory bank; and access control logic, communicatively coupled to the first OTP bank and the second OTP bank, the access control logic configured to: utilize the first OTP memory bank for operation of the PMIC upon detecting that the second OTP memory bank is empty, write data to the second OTP memory bank in response to a write request from a host application if the second OTP memory bank is not empty, and utilize the second OTP memory bank for operation of the PMIC upon detecting that the second OTP memory bank is not empty.

Description

    FIELD OF THE TECHNOLOGY
  • At least some embodiments disclosed herein relate to power management integrated circuit (PMIC) in general and, more particularly but not limited to, a PMIC with in situ non-volatile programmability.
  • BACKGROUND
  • A memory system can be a storage system, such as a solid-state drive (SSD), and can include one or more memory components that store data. For example, a memory system can include memory devices such as non-volatile memory devices and volatile memory devices. In general, a host system can utilize a memory system to store data at the memory devices of the memory system and to retrieve data stored at the memory system.
  • A memory system can include a PMIC to manage the power requirements of the memory system in which the PMIC is configured. The PMIC typically includes electronic power conversion circuitry and relevant power control functions. A PMIC additionally allows for programmable control of the functionality of the PMIC. For example, a PMIC may be reconfigured to change the power sequence, output voltages, and various other functions of the PMIC.
  • Certain dedicated hardware is included within a PMIC package to support programmatic control of the device. For example, a register file is used for storing values controlling the operation of the device. More recent PMICs incorporate non-volatile memory (e.g., electrically erasable programmable read-only memory, or, EEPROM) for storage of data. The use of non-volatile memory allows for storage of data values that persists despite (sometimes frequent) power cycles.
  • These conventional storage mechanisms in PMIC suffer from particular deficiencies. A register file is a volatile storage device, and any data stored therein is lost during power cycling of the PMIC. Thus, despite being convenient for storage during operations, the register file fails to maintain data in the event of a power cycle, making it unsuitable for longer-term value storage. This deficiency is particularly pronounced during development and testing of PMIC devices, where operational parameters regarding the operation of the PMIC during power cycles is desired to be tested.
  • The use of non-volatile memory, like EEPROM, enables long-term, reprogrammable storage of data. However, the circuitry required to support these memories (in addition to existing read-only memory) increases the size and power consumption of PMIC devices. For example, a PMIC with a read-only memory bank and an EEPROM bank requires twice the circuity for accessing the read-only memory bank as well as supporting erasing and writing to the EEPROM.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
  • FIG. 1 is a block diagram of a power management integrated circuit according to some embodiments of the disclosure.
  • FIG. 2 is a flow diagram illustrating a method for toggling between OTP memory banks according to some embodiments of the disclosure.
  • FIG. 3 illustrates an example computing environment that includes a memory system in accordance with some implementations of the present disclosure.
  • DETAILED DESCRIPTION
  • Aspects of the present disclosure are directed to a power management integrated circuit (PMIC) in a memory system. An example of a memory system is a storage system, such as a solid-state drive (SSD). In some embodiments, the memory system is a hybrid memory/storage system. In general, a host system can utilize a memory system that includes one or more memory devices. The memory devices can include media. The media can be non-volatile memory devices, such as, for example, negative-and (NAND). The host system can provide write requests to store data at the memory devices of the memory system and can provide read requests to retrieve data stored at the memory system. A memory system can include a controller that manages the memory devices to perform operations such as reading data, writing data, or erasing data and other such operations. A storage system (also hereinafter referred to as storage device) is used as one example of the memory system hereinafter throughout this document.
  • FIG. 1 is a block diagram of a power management integrated circuit according to some embodiments of the disclosure.
  • The PMIC (100) illustrated in FIG. 1 includes switch drivers (102), voltage regulators (104), sequencer (106), memory banks (108A, 108B), access control circuity (116) and an interface (114). In one embodiment, the PMIC (100) is connected to a host application (120) via a bus (118), such as an I2C bus. In the illustrated embodiment, the host application (120) comprises an external computing device that provides read and, more importantly, write commands to the PMIC (100). In the illustrated embodiment, interface (114) is configured to receive and transmit commands over the bus (118) and forward write requests to the access control logic (116).
  • The PMIC (100) has one or more voltage regulators (104) that convert the external power supply to the PMIC (100) to operating voltages used by various components of the device (or devices) powered by the PMIC (100) (e.g., solid-state storage devices, DRAM, etc.). The PMIC (100) includes a plurality of switch drivers (102) that provide the control signals for the load switches (not illustrated) that selectively enable and disable power to and from the supported devices. The PMIC (100) includes a sequencer (106) that schedules the power-related events according to desirable sequences for the operations of the supported devices, including the sequences of the operations of the voltage regulators (102) and the switch drivers (104).
  • PMIC (100) includes two memory banks (108A, 108B). In one embodiment, each memory bank (108A, 108B) comprises a one-time programmable (OTP) memory bank. In general, OTP memory allows for write-once, read-many functionality. In the illustrated embodiment, each memory bank (108A, 108B) comprises the same type of memory, although, in some embodiments, the memory banks (108A, 108B) may comprise differing OTP memory technologies. In some embodiments, memory banks (108A, 108B) are identically sized while in other embodiments the size of each memory bank (108A, 108B) may be adjusted based on the needs of the PMIC (100). For example, memory bank (108B) may be sized larger than memory bank (108A) to compensate for the single-write aspects of the memory bank (e.g., multiple versions of parameters may be stored during development). On the other hand, memory bank (108A) may be sized larger than memory bank (108B) to support vendor-specific parameters.
  • As described above, memory banks (108A, 108B) store parameters (124A, 124B) controlling the operation of the PMIC (100) including circuitry (102-106). Various circuits of the PMIC (100) access the memory banks (108A, 108B) and utilize the stored parameters to control their operation. Parameters (124B) are dashed in FIG. 1 to illustrate an empty bank (108B).
  • Both memory banks (108A, 108B) may include a write enable pin, pad, or connector (referred to generally as a “write enable”). This write enable controls whether writing is possible to the memory bank, regardless of whether the memory bank has already been written to, thus converting the memory bank into a write-never memory device. One write enable (112) is illustrated in the memory bank (108B) however in some embodiments memory bank (108A) also may include a write enable.
  • As illustrated, one memory bank (108A) includes a dedicated bit (110). This dedicated bit (110) drives the write enable (112) of the second memory bank (108B). In some embodiments, other signals may also drive the write enable (112), and these signals, combined with bit (110) may be multiplexed to control writing to the bank (108B). In the illustrated embodiment, bit (110) comprises a fixed location in the bank (108A). For example, a specific bit in a specific memory location may be used as the bit (110). In one embodiment, the bit (110) is hardwired to the write enable (112) thus automatically enabling/disabling the bank (108B) when that bit is written. For example, if bit (110) is set to one, writing to the bank (108B) is enabled; while if bit (110) is set to zero, writing to the bank (108B) is disabled.
  • In one embodiment, bank (108A) is written to during manufacturing of the PMIC (100). Thus, in one embodiment, a manufacturer may write a one or zero to bit (110) achieving the effect of providing or not providing, respectively, one-time programmable features to the PMIC (100).
  • PMIC (100) additionally includes access control logic (116) which controls access to banks (108A, 108B). In one embodiment, access control logic (116) may comprise a controllable switch or fuse that switches between banks (108A, 108B).
  • In an initial state, access control logic (116) is switched to provide access to the bank (108A) (e.g., to circuits 102-106). The access control logic (116) may later receive a write request from host application (120) via an interface (114). In one embodiment, the access control logic (116) includes a second switch driven by the write enable (112) that determines whether data in the write request may be written to the bank (108B). If the write enable (112) is enabled, access control logic (116) permits the writing to the bank (108B). After writing is complete, the access control logic (116) toggles the first switch such that future requests from circuits (102-106) are routed automatically to the second bank (108B).
  • FIG. 2 is a flow diagram illustrating a method for toggling between OTP memory banks according to some embodiments of the disclosure. In one embodiment, the method performed in FIG. 2 is performed by a PMIC. In one embodiment, operations at blocks 206-222C may be controlled by access control logic in the PMIC, while other steps may be performed by other components of the PMIC (or in response to external inputs).
  • At block 202, bank A is programmed. As described above, bank A comprises an OTP memory bank. In one embodiment, bank A is programmed by a manufacturer of the PMIC, although the specific programmer is not intended to be limited. As discussed above, bank A includes all non-volatile parameters needed to operate the PMIC.
  • At block 204, the method powers on the PMIC device. In one embodiment, powering on the PMIC device causes the circuits of the PMIC device to issue read requests to the PMICs memory to retrieve operational parameters.
  • At block 206, the method determines whether data has been written to bank B. As described above, bank B may also comprise an OTP memory bank that is uninitialized during manufacturing and, potentially, written to after manufacturing.
  • In one embodiment, the operation at block 206 is performed in response to a request for data from the circuitry of the PMIC. In one embodiment, step 206 may be performed by a CMOS or similar switch within the access control logic of the PMIC. In another embodiment, the operation at block 206 may be performed immediately upon powering the PMIC.
  • If bank B is empty (i.e., not written to), the method sets bank A as the parameter source at block 208. In one embodiment, between block 208 and 210, the method may receive one or more requests for data from the circuitry of the PMIC (block 222A). In response to these requests, the method responds to the requests with the data stored in bank A. These requests may continue until a write request is received and may continue during the actual write request.
  • At block 210, the method receives a write request. In one embodiment, the write request includes data to be written to bank B. In one embodiment, the write request is received from a host application over a bus and interface, as described previously.
  • At block 212, the method determines if writing is enabled for bank B. In one embodiment, the method makes this determination by detecting whether a write enable signal is enabled or disabled for bank B. In one embodiment, the operation at block 212 additionally includes determining whether data has already been written to bank B.
  • If the writing is not enabled, the method continues to handle parameter requests from circuitry using bank A (block 222B). This process continues until power to the PMIC is cycled (block 220).
  • Alternatively, if the method determines that writing is enabled at block 212, the method writes the contents of the write request to bank B at block 214. In some embodiments, the write request may include all data to be written to bank B. In other embodiments, the write request may comprise multiple sub-requests including data to be written, delimited by START and STOP commands.
  • At block 216, after writing to bank B is complete, the method sets bank B as the parameter source for future requests and handles parameter requests using bank B (block 222C) for future requests until power is cycled (block 220).
  • Returning to block 206, if the method determines that bank B has been written to in response to a power on or power cycle, the method ignores any future write requests (block 218). Since bank B has been written to, the method proceeds to handle all parameter requests from bank B (block 222C) until power cycling.
  • FIG. 3 illustrates an example computing environment 300 that includes a memory system 310 in accordance with some implementations of the present disclosure. The memory system 310 can include media, such as memory devices 312A to 312N. The memory devices 312A to 312N can be volatile memory devices, non-volatile memory devices, or a combination of such. In some embodiments, the memory system is a storage system. An example of a storage system is a SSD. In some embodiments, the memory system 310 is a hybrid memory/storage system. In general, the computing environment 300 can include a host system 320 that uses the memory system 310. In some implementations, the host system 320 can write data to the memory system 310 and read data from the memory system 310.
  • The host system 320 can be a computing device such as a desktop computer, laptop computer, network server, mobile device, or such computing device that includes a memory and a processing device. The host system 320 can include or be coupled to the memory system 310 so that the host system 320 can read data from or write data to the memory system 310. The host system 320 can be coupled to the memory system 310 via a physical host interface. As used herein, “coupled to” generally refers to a connection between components, which can be an indirect communicative connection or direct communicative connection (e.g., without intervening components), whether wired or wireless, including connections such as, electrical, optical, magnetic, etc. Examples of a physical host interface include, but are not limited to, a serial advanced technology attachment (SATA) interface, a peripheral component interconnect express (PCIe) interface, universal serial bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), etc. The physical host interface can be used to transmit data between the host system 320 and the memory system 310. The host system 320 can further utilize an NVM Express (NVMe) interface to access the memory devices 312A to 312N when the memory system 310 is coupled with the host system 320 by the PCIe interface. The physical host interface can provide an interface for passing control, address, data, and other signals between the memory system 310 and the host system 320.
  • The memory devices 312A to 312N can include any combination of the different types of non-volatile memory devices and/or volatile memory devices. An example of non-volatile memory devices includes a negative-and (NAND) type flash memory. Each of the memory devices 312A to 312N can include one or more arrays of memory cells such as single level cells (SLCs) or multi-level cells (MLCs) (e.g., triple level cells (TLCs) or quad-level cells (QLCs)). In some implementations, a particular memory device can include both an SLC portion and a MLC portion of memory cells. Each of the memory cells can store bits of data (e.g., data blocks) used by the host system 320. Although non-volatile memory devices such as NAND type flash memory are described, the memory devices 312A to 312N can be based on any other type of memory such as a volatile memory. In some implementations, the memory devices 312A to 312N can be, but are not limited to, random access memory (RAM), read-only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), phase change memory (PCM), magneto random access memory (MRAM), negative-or (NOR) flash memory, electrically erasable programmable read-only memory (EEPROM), and a cross-point array of non-volatile memory cells. A cross-point array of non-volatile memory can perform bit storage based on a change of bulk resistance, in conjunction with a stackable cross-gridded data access array. Additionally, in contrast to many Flash-based memory, cross point non-volatile memory can perform a write in-place operation, where a non-volatile memory cell can be programmed without the non-volatile memory cell being previously erased. Furthermore, the memory cells of the memory devices 312A to 312N can be grouped as memory pages or data blocks that can refer to a unit of the memory device used to store data.
  • The controller 315 can communicate with the memory devices 312A to 312N to perform operations such as reading data, writing data, or erasing data at the memory devices 312A to 312N and other such operations. The controller 315 can include hardware such as one or more integrated circuits and/or discrete components, a buffer memory, or a combination thereof. The controller 315 can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor. The controller 315 can include a processor (processing device) 317 configured to execute instructions stored in local memory 319. In the illustrated example, the local memory 319 of the controller 315 includes an embedded memory configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory system 310, including handling communications between the memory system 310 and the host system 320. In some embodiments, the local memory 319 can include memory registers storing, e.g., memory pointers, fetched data, etc. The local memory 319 can also include read-only memory (ROM) for storing micro-code. While the example memory system 310 in FIG. 3 has been illustrated as including the controller 315, in another embodiment of the present disclosure, a memory system 310 may not include a controller 315, and may instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory system).
  • In general, the controller 315 can receive commands or operations from the host system 320 and can convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory devices 312A to 312N. The controller 315 can be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error-correcting code (ECC) operations, encryption operations, caching operations, and address translations between a logical block address and a physical block address that are associated with the memory devices 312A to 312N. The controller 315 can further include host interface circuitry to communicate with the host system 320 via the physical host interface. The host interface circuitry can convert the commands received from the host system into command instructions to access the memory devices 312A to 312N as well as convert responses associated with the memory devices 312A to 312N into information for the host system 320.
  • The memory system 310 can also include additional circuitry or components that are not illustrated. In some implementations, the memory system 310 can include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the controller 315 and decode the address to access the memory devices 312A to 312N.
  • The memory system 310 can include PMIC 311 (e.g., PMIC 100 in FIG. 1). The memory system 310 can include additional circuitry, such as illustrated in FIG. 1.
  • In this description, various functions and operations may be described as being performed by or caused by computer instructions to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the computer instructions by one or more controllers or processors, such as a microprocessor. Alternatively, or in combination, the functions and operations can be implemented using special purpose circuitry, with or without software instructions, such as using Application-Specific Integrated Circuit (ASIC) or Field-Programmable Gate Array (FPGA). Embodiments can be implemented using hardwired circuitry without software instructions, or in combination with software instructions. Thus, the techniques are limited neither to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.
  • While some embodiments can be implemented in fully functioning computers and computer systems, various embodiments are capable of being distributed as a computing product in a variety of forms and are capable of being applied regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
  • At least some aspects disclosed can be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor or microcontroller, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device.
  • Routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects.
  • A tangible, non-transitory computer storage medium can be used to store software and data which, when executed by a data processing system, causes the system to perform various methods. The executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices. Further, the data and instructions can be obtained from centralized servers or peer-to-peer networks. Different portions of the data and instructions can be obtained from different centralized servers and/or peer-to-peer networks at different times and in different communication sessions or in a same communication session. The data and instructions can be obtained in their entirety prior to the execution of the applications. Alternatively, portions of the data and instructions can be obtained dynamically, just in time, when needed for execution. Thus, it is not required that the data and instructions be on a machine-readable medium in their entirety at a particular instance of time.
  • Examples of computer-readable storage media include, but are not limited to, recordable and non-recordable type media such as volatile and non-volatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy and other removable disks, magnetic disk storage media, and optical storage media (e.g., Compact Disk Read-Only Memory (CD ROM), Digital Versatile Disks (DVDs), etc.), among others. The instructions may be embodied in a transitory medium, such as electrical, optical, acoustical or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, etc. A transitory medium is typically used to transmit instructions, but not viewed as capable of storing the instructions.
  • In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the techniques. Thus, the techniques are neither limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.
  • Although some of the drawings illustrate a number of operations in a particular order, operations that are not order dependent may be reordered and other operations may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art and so do not present an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software or any combination thereof.
  • The above description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.
  • In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims (20)

1. A power management integrated circuit (PMIC) comprising:
a first one-time programmable (OTP) memory bank;
a second OTP memory bank, wherein the first OTP memory bank comprises a first bit, the first bit controlling write access to the second OTP memory bank, the first bit being hardwired to a write enable of the second OTP memory bank; and
access control logic, communicatively coupled to the first OTP bank and the second OTP bank, the access control logic configured to:
utilize the first OTP memory bank for operation of the PMIC upon detecting that the second OTP memory bank is empty,
write data to the second OTP memory bank in response to a write request from a host application if the second OTP memory bank is not empty, and
utilize the second OTP memory bank for operation of the PMIC upon detecting that the second OTP memory bank is not empty.
2. The PMIC of claim 1, wherein the first OTP memory bank is pre-programmed prior to use and the second OTP memory bank is empty prior to use.
3. (canceled)
4. (canceled)
5. The PMIC of claim 1, the access control logic further configured to select between the first OTP bank and the second OTP bank after a power cycle.
6. The PMIC of claim 1, the access control logic further configured to ignore a write request if the second OTP memory bank is not empty.
7. The PMIC of claim 1, further comprising an interface configured to receive the write request over a bus.
8. The PMIC of claim 7, the write request conforming to an I2C protocol message.
9. The PMIC of claim 1, further comprising at least one of switch driver, a voltage regulator, or a sequencer.
10. The PMIC of claim 1, further comprising a switch driver, the switch driver configured to drive a solid-state storage device.
11. A method comprising:
determining, by a power management integrated circuit (PMIC), whether a second one-time programmable (OTP) memory bank contains data;
utilizing, by the PMIC, a first OTP memory bank as a parameter source if the second OTP memory bank does not contain data;
enabling, by the PMIC, write access to the second OTP memory bank by writing to a first bit in the first OTP memory bank, the first bit being hardwired to a write enable of the second OTP memory bank;
writing, by the PMIC, data to the second OTP memory bank in response to a write request from a host application if the second OTP memory bank is not empty; and
utilizing, by the PMIC, the second OTP memory bank as a parameter source if the second OTP memory bank does contain data.
12. The method of claim 11, the determining whether a second OTP memory bank contains data performed in response to powering on the PMIC.
13. The method of claim 12, the powering on the PMIC resulting from a power cycle.
14. The method of claim 11, the writing data to the second OTP memory bank performed upon determining that writing is enabled for the second OTP memory bank.
15. The method of claim 14, the determining that writing is enabled for the second OTP memory bank comprising analyzing a write enable of the second OTP memory bank.
16. The method of claim 11, the utilizing a first OTP memory bank as a parameter source and utilizing a second OTP memory bank as a parameter source both comprising supply parameters from a respective memory bank to circuitry of the PMIC.
17. The method of claim 11, further comprising pre-programming the first OTP memory bank prior to use.
18. The method of claim 17, the second OTP memory bank being uninitialized prior to use.
19. The method of claim 11, further comprising ignoring a write request if data is stored in the second OTP memory bank.
20. The method of claim 11, further comprising receiving the write request from a host application over a bus.
US15/919,036 2018-03-12 2018-03-12 Power management integrated circuit with in situ non-volatile programmability Active US10423218B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/919,036 US10423218B1 (en) 2018-03-12 2018-03-12 Power management integrated circuit with in situ non-volatile programmability
US16/395,974 US10852812B2 (en) 2018-03-12 2019-04-26 Power management integrated circuit with in situ non-volatile programmability
US17/099,158 US11379032B2 (en) 2018-03-12 2020-11-16 Power management integrated circuit with in situ non-volatile programmability

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/919,036 US10423218B1 (en) 2018-03-12 2018-03-12 Power management integrated circuit with in situ non-volatile programmability

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/395,974 Continuation US10852812B2 (en) 2018-03-12 2019-04-26 Power management integrated circuit with in situ non-volatile programmability

Publications (2)

Publication Number Publication Date
US20190278362A1 true US20190278362A1 (en) 2019-09-12
US10423218B1 US10423218B1 (en) 2019-09-24

Family

ID=67842564

Family Applications (3)

Application Number Title Priority Date Filing Date
US15/919,036 Active US10423218B1 (en) 2018-03-12 2018-03-12 Power management integrated circuit with in situ non-volatile programmability
US16/395,974 Active US10852812B2 (en) 2018-03-12 2019-04-26 Power management integrated circuit with in situ non-volatile programmability
US17/099,158 Active US11379032B2 (en) 2018-03-12 2020-11-16 Power management integrated circuit with in situ non-volatile programmability

Family Applications After (2)

Application Number Title Priority Date Filing Date
US16/395,974 Active US10852812B2 (en) 2018-03-12 2019-04-26 Power management integrated circuit with in situ non-volatile programmability
US17/099,158 Active US11379032B2 (en) 2018-03-12 2020-11-16 Power management integrated circuit with in situ non-volatile programmability

Country Status (1)

Country Link
US (3) US10423218B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802754B2 (en) 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection
US10852812B2 (en) 2018-03-12 2020-12-01 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6021092A (en) 1983-07-15 1985-02-02 株式会社東芝 Color index conversion system
EP0340901A3 (en) 1988-03-23 1992-12-30 Du Pont Pixel Systems Limited Access system for dual port memory
US5428754A (en) 1988-03-23 1995-06-27 3Dlabs Ltd Computer system with clock shared between processors executing separate instruction streams
US5659690A (en) 1992-10-15 1997-08-19 Adaptec, Inc. Programmably configurable host adapter integrated circuit including a RISC processor
US5826069A (en) 1993-09-27 1998-10-20 Intel Corporation Having write merge and data override capability for a superscalar processing device
US6604190B1 (en) 1995-06-07 2003-08-05 Advanced Micro Devices, Inc. Data address prediction structure and a method for operating the same
US6072508A (en) 1997-03-14 2000-06-06 S3 Incorporated Method and apparatus for shortening display list instructions
US5958024A (en) 1997-08-29 1999-09-28 Advanced Micro Devices, Inc. System having a receive data register for storing at least nine data bits of frame and status bits indicating the status of asynchronous serial receiver
EP0973086B1 (en) 1998-07-15 2009-11-04 Hewlett-Packard Company, A Delaware Corporation Computer remote power on
US6378056B2 (en) 1998-11-03 2002-04-23 Intel Corporation Method and apparatus for configuring a memory device and a memory channel using configuration space registers
US6205543B1 (en) 1998-12-03 2001-03-20 Sun Microsystems, Inc. Efficient handling of a large register file for context switching
US20080184017A1 (en) 1999-04-09 2008-07-31 Dave Stuttard Parallel data processing apparatus
US6339823B1 (en) 1999-07-20 2002-01-15 Ip-First, L.L.C. Method and apparatus for selective writing of incoherent MMX registers
US6384634B1 (en) 2001-02-21 2002-05-07 Nortel Networks Limited Elastic store: recovery and boundary verification
US7219173B2 (en) 2001-07-31 2007-05-15 Micronas Usa, Inc. System for video processing control and scheduling wherein commands are unaffected by signal interrupts and schedule commands are transmitted at precise time
US6845412B1 (en) 2001-11-07 2005-01-18 Lsi Logic Corporation Method and system for a host processor to broadcast data to instruction or data memories of several processors in a multi-processor integrated circuit
US7421559B1 (en) 2003-12-18 2008-09-02 Cypress Semiconductor Corporation Apparatus and method for a synchronous multi-port memory
KR101147190B1 (en) 2004-05-13 2012-05-25 실리콘 하이브 비.브이. Run-time selection of feed-back connections in a multiple-instruction word processor
US7484022B1 (en) 2004-08-27 2009-01-27 Xilinx, Inc. Network media access controller embedded in a programmable logic device—host interface
US20060112257A1 (en) 2004-11-12 2006-05-25 Undy Stephen R Microprocessor architected state signature analysis
US7518894B2 (en) 2005-03-31 2009-04-14 Silicon Laboratories Inc. Distributed power supply system having reassignable master
US8631483B2 (en) 2005-06-14 2014-01-14 Texas Instruments Incorporated Packet processors and packet filter processes, circuits, devices, and systems
US7945844B2 (en) 2006-05-22 2011-05-17 Limberg Allen Leroy Robust DTV signals transmitted at two thirds the code rate of ordinary 8VSB DTV signals
US7739528B2 (en) 2006-06-09 2010-06-15 Broadcom Corporation Method for managing and controlling the low power modes for an integrated circuit device
US7774661B2 (en) 2007-03-29 2010-08-10 Montage Technology Group Limited Register read mechanism
US7783860B2 (en) 2007-07-31 2010-08-24 International Business Machines Corporation Load misaligned vector with permute and mask insert
CN101216756B (en) 2007-12-28 2011-03-23 中国科学院计算技术研究所 RISC processor processor arrangement and its floating point stack manipulation simulation method
US8356162B2 (en) 2008-03-18 2013-01-15 International Business Machines Corporation Execution unit with data dependent conditional write instructions
GB2472051B (en) * 2009-07-22 2012-10-10 Wolfson Microelectronics Plc Power management apparatus and methods
US8301992B2 (en) 2009-08-07 2012-10-30 International Business Machines Corporation System and apparatus for error-correcting register files
US8281163B2 (en) 2010-03-16 2012-10-02 Dell Products L.P. System and method for providing power control fault masking
US20120008450A1 (en) 2010-07-07 2012-01-12 Lsi Corporation Flexible memory architecture for static power reduction and method of implementing the same in an integrated circuit
US8862835B2 (en) 2011-06-14 2014-10-14 Texas Instruments Incorporated Multi-port register file with an input pipelined architecture and asynchronous read data forwarding
US8862836B2 (en) 2011-06-14 2014-10-14 Texas Instruments Incorporated Multi-port register file with an input pipelined architecture with asynchronous reads and localized feedback
US9448801B2 (en) 2012-12-31 2016-09-20 Cadence Design Systems, Inc. Automatic register port selection in extensible processor architecture
US9477473B2 (en) 2012-12-31 2016-10-25 Cadence Design Systems, Inc. Bit-level register file updates in extensible processor architecture
US20140229644A1 (en) 2013-02-12 2014-08-14 Haran Thanigasalam Method, apparatus, system for including interrupt functionality in sensor interconnects
US10061592B2 (en) 2014-06-27 2018-08-28 Samsung Electronics Co., Ltd. Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (SIMD/T) devices
US9383223B2 (en) 2014-07-14 2016-07-05 International Technological University Smart meter system architecture
US10565676B2 (en) 2017-04-17 2020-02-18 Intel Corporation Thread prefetch mechanism
US10802754B2 (en) 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection
US10423218B1 (en) 2018-03-12 2019-09-24 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802754B2 (en) 2018-03-12 2020-10-13 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection
US10852812B2 (en) 2018-03-12 2020-12-01 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability
US11379032B2 (en) 2018-03-12 2022-07-05 Micron Technology, Inc. Power management integrated circuit with in situ non-volatile programmability
US11513734B2 (en) 2018-03-12 2022-11-29 Micron Technology, Inc. Hardware-based power management integrated circuit register file write protection

Also Published As

Publication number Publication date
US10852812B2 (en) 2020-12-01
US11379032B2 (en) 2022-07-05
US20210089115A1 (en) 2021-03-25
US20190278364A1 (en) 2019-09-12
US10423218B1 (en) 2019-09-24

Similar Documents

Publication Publication Date Title
US11614872B2 (en) Power management integrated circuit (PMIC) master/slave functionality
US11663153B2 (en) Access optimization in aggregated and virtualized solid state drives
CN113168862A (en) Performing on-demand refresh operations of a memory subsystem
US11269397B2 (en) Power configuration component including selectable configuration profiles corresponding to operating power characteristics of the power configuration component
US11573703B2 (en) Capacity expansion for memory sub-system controllers having at least I/O expander circuit to limit impedance loads
US11720493B2 (en) Cache management based on memory device over-provisioning
US11379032B2 (en) Power management integrated circuit with in situ non-volatile programmability
US11106391B2 (en) Managing a memory system including memory devices with different characteristics
US20230359390A1 (en) Configurable buffered i/o for memory systems
US11775218B2 (en) Management of power during memory device reset and initialization
US9697903B1 (en) Nonvolatile memory device and data storage device including the same
US20210117115A1 (en) Selection component that is configured based on an architecture associated with memory devices
US20200348856A1 (en) Power management integrated circuit with embedded address resolution protocol circuitry
KR20160025377A (en) Semiconductor memory device, operating method thereof and data storage device including the same
US11604601B2 (en) Trim value loading management in a memory sub-system
US20240061607A1 (en) Variable nand mode with single pll source
US20230064781A1 (en) Dynamic buffer limit for at-risk data
US11301132B2 (en) Scheduling media management operations based on provided host system usage requirements
US20230359398A1 (en) Enabling multiple data capacity modes at a memory sub-system

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL

Free format text: SUPPLEMENT NO. 8 TO PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:046084/0955

Effective date: 20180424

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND

Free format text: SUPPLEMENT NO. 8 TO PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:046084/0955

Effective date: 20180424

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL

Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001

Effective date: 20180703

Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS

Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001

Effective date: 20180703

AS Assignment

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROWLEY, MATTHEW DAVID;REEL/FRAME:047057/0554

Effective date: 20180316

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050709/0965

Effective date: 20190731

AS Assignment

Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001

Effective date: 20190731

Owner name: MICRON TECHNOLOGY, INC., IDAHO

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001

Effective date: 20190731

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4