US20160071574A1 - Method and circuits for low latency initialization of static random access memory - Google Patents
Method and circuits for low latency initialization of static random access memory Download PDFInfo
- Publication number
- US20160071574A1 US20160071574A1 US14/482,613 US201414482613A US2016071574A1 US 20160071574 A1 US20160071574 A1 US 20160071574A1 US 201414482613 A US201414482613 A US 201414482613A US 2016071574 A1 US2016071574 A1 US 2016071574A1
- Authority
- US
- United States
- Prior art keywords
- coupled
- initialization
- sram
- signal
- assertion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
Definitions
- This disclosure is directed to integrated circuits (ICs) and more particularly, to circuitry used in conjunction with static random access memories (SRAMs) and operation of the same.
- ICs integrated circuits
- SRAMs static random access memories
- Static random access memories are widely used in integrated circuits (ICs). Applications of SRAM in ICs includes caches, register files, buffers, and so forth. Advantages of SRAM include a higher density than flip-flops along, faster speeds than dynamic random access memories (DRAMs), while not requiring the refresh cycles used to maintain information in a DRAM.
- DRAMs dynamic random access memories
- Initialization of an SRAM may include writing predetermined data to each address therein. For example, during the initialization, a functional circuit block may write all logic 0's to each address in a correspondingly coupled SRAM. The data may be written into the addresses sequentially (i.e. one address after another) until data has been written into all addresses of the SRAM. Thereafter, normal operations utilizing the SRAM may commence.
- an IC includes an SRAM coupled to at least one functional circuit block.
- the SRAM includes a number of storage locations arranged in rows and columns.
- the functional circuit block and the SRAM may be in different power domains.
- the functional circuit block may assert an initialization signal to begin an initialization process.
- level shifters may force assertion of various select/enable signals in a decoder associated with the SRAM.
- initialization data may be written to the SRAM. Writing initialization data may be performed on a row-by-row basis, with all columns in a row being written to substantially simultaneously.
- an SRAM may include a number of banks, and each row of the SRAM may extend across the number of banks. On a given row within each bank one or more storage locations may be implemented, with each of the storage locations having a number of bits. During the writing of initialization data, all banks and all storage locations within a given row are written to concurrently.
- At least some of the level shifters used to convey signals from the functional circuit block to the may be coupled to receive the initialization signal. Responsive to receiving the initialization signal, these level shifters may drive their respective output nodes to a predetermined logic level, irrespective of any other inputs. The outputs of these level shifters may then force the decoder of the SRAM to allow a number of storage locations within a given row to be written to concurrently.
- Bit line hold circuits associated with bit cells each include extra hold circuitry to hold the initialization data during the initialization.
- Each bit line hold circuit may be coupled to a column of bit cells that extends through the rows of the SRAM.
- FIG. 1 is a block diagram illustrating one embodiment of an IC having a functional circuit block and an SRAM.
- FIG. 2 is a block diagram illustrating one embodiment of an SRAM.
- FIG. 3 is a schematic diagram of one embodiment of a level shifter circuit.
- FIG. 4 is a schematic diagram illustrating one embodiment of a bit line hold circuit coupled to a number of bit cells.
- FIG. 5 is a flow diagram illustrating one embodiment of a method for performing an initialization of an SRAM.
- FIG. 6 is a block diagram of one embodiment of an exemplary system.
- circuits, or other components may be described as “configured to” perform a task or tasks.
- “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation.
- the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on.
- the circuitry that forms the structure corresponding to “configured to” may include hardware circuits and/or memory storing program instructions executable to implement the operation.
- the memory can include volatile memory such as static or dynamic random access memory and/or nonvolatile memory such as optical or magnetic disk storage, flash memory, programmable read-only memories, etc.
- FIG. 1 a block diagram of one embodiment of an IC.
- the embodiment of IC 10 shown here is an exemplary embodiment and is not intended to cover all possible embodiments of an IC falling within the scope of this disclosure. Rather, IC 10 is shown here for illustrative purposes and thus represents only one of many possible IC embodiments according to the principles and scope of the disclosure as discussed below.
- IC 10 as shown in FIG. 1 includes a functional circuit block 11 and an SRAM 20 .
- the SRAM 20 may provide storage for data used by functional circuit block 11 during operation.
- SRAM 20 may be a cache memory
- functional circuit block 11 may be a processor core configured to access the cache and write back data thereto. It is noted that for the sake of simplicity that not all connections between SRAM 20 and functional circuit block 11 are shown. For example, no path for reading data from SRAM 20 by functional circuit block 11 is shown, although it is to be understood that at least one such path is present.
- SRAM 20 is coupled to a corresponding decoder 22 , which is configured to decode read and write addresses, provide write and read enable signals during write and read operations, respectively, and so on.
- functional circuit block 11 is configured to convey various signals and data to SRAM 20 for performing writes thereto.
- signals are a write enable signal (WrEn), column select signals (Col_Sel), row select signals (Row_Sel), and data bits (D0-DX), where the width of the data bus is an integer value X+1.
- Functional circuit block 11 and SRAM 20 are in different power domains and thus receive different supply voltages in the illustrated embodiment. More particularly, functional circuit block 11 is coupled to receive voltage Vdd, while SRAM 20 and decoder 22 are coupled to receive Vdd_SRAM. Accordingly, level shifters are placed between functional circuit block 11 and decoder 22 /SRAM 20 .
- a first group of level shifters 29 and a second group of level shifters 30 are coupled between functional circuit block 11 and decoder 22 /SRAM 20 .
- Both groups of level shifters in the embodiment shown are coupled to receive a respective isolation signal (Iso_ 0 , Iso_ 1 ) from functional circuit block 11 .
- the isolation signals may be used to effectively isolate data SRAM 20 from functional circuit block 11 such that data stored in the former is not disturbed.
- both groups of level shifters 29 and 30 are coupled to receive a clock signal from a clock source (ClkSrc) 13 that is in the Vdd power domain.
- One of the level shifters 29 outputs a level shifted version of the clock signal to decoder 22 .
- one of the level shifters 30 outputs the level shifted clock signal as a precharge clock signal, Pre_Clk_L.
- the low phase of the clock cycle may be used as an input signal to the gate terminals of pre-charge transistors, implemented using p-channel metal oxide semiconductor (PMOS) devices, for performing a precharge of the bit lines during normal read and write operations.
- PMOS metal oxide semiconductor
- an initialization procedure may be performed.
- the initialization procedure may be performed by writing predetermined data to each storage location within SRAM 20 .
- SRAM 20 may be initialized by writing logic 0's to each bit cell of each storage location within SRAM 20 .
- Functional circuit block 11 may assert and hold an initialization signal (Initialize) during the initialization procedure.
- the isolation signal Iso_ 0 may also be held asserted during the initialization procedure.
- the asserted initialization and Iso_ 0 signals may be received by level shifters 30 . Responsive to receiving these signals, level shifters 30 may drive the enable signal to a predetermined logic level opposite of that when the isolation signal alone is asserted. For example, if the isolation signal Iso_ 0 causes the level shifters 30 to drive their respective outputs high (or to logic 1), assertion of the initialization concurrent with assertion of Iso_ 0 ) may cause level shifters 30 to drive their respective outputs low (or to logic 0).
- a precharge clock (Pre_Clk) may be held to a predetermined level (e.g., high, or logic 1) during the initialization procedure. Since toggling of the precharge clock may be used to effect precharging, holding the precharge clock high may inhibit precharging of bit lines is performed during the writing of initialization data during the initialization procedure.
- Decoder 22 may also receive the initialization signal and responsive thereto, force all column select signals to their asserted level.
- functional circuit block 11 could force assertion of all the column select signals. In either case, all column select signals may be asserted such that all columns (or banks, depending on the arrangement of SRAM 20 ) are concurrently enabled for writing.
- Holding as asserted the write enable signal and each column select signal may allow for significantly faster initialization of SRAM 20 . More particularly, holding the signals in these state may allow each storage location within a given row to be written substantially simultaneously. Thus, instead of the number of write cycles being equal to the number of storage locations in SRAM 20 , or the number of rows multiplied by the number of columns, the number of write cycles in the various embodiments discussed herein may be equal to the number of rows. This may represent a substantial reduction in the time spent performing the initialization. Moreover, significant dynamic power savings may be achieved by preventing toggling of the precharge clock and thus inhibiting the occurrence of precharging.
- FIG. 2 is a block diagram illustrating one embodiment of SRAM 20 . It is noted that the size and organization of an SRAM may vary from this particular example while still falling within the scope of this disclosure.
- decoder 22 may assert bank enable signals (BankEn[3:0]) for each bank based on the signals output from level shifters 30 shown in FIG. 1 . Furthermore, if the individual storage locations are independently selectable, then enable signals (not shown) may be asserted for each of these as well.
- Decoder 22 may also assert a write enable signal, while the precharge (Precharge) signal may be inhibited due to the precharge clock being held in a predetermined state.
- the writing of initialization data may be performed with decoder 22 asserting the word line signals (WL[n ⁇ 1:0]) one by one. When a given word line signal is asserted, initialization data may be concurrently written to each storage location of each bank within that row of SRAM 20 .
- level shifter 30 includes a pull-up circuit and a pull-down circuit coupled to the output node, Out.
- the pull-up circuit includes PMOS devices P 6 and P 7 .
- the pull-down circuit includes n-channel metal oxide semiconductor (NMOS) devices N 4 and N 5 .
- NMOS n-channel metal oxide semiconductor
- the arrangement of the pull-up and pull-down circuits relative to the signal inputs results in a priority for controlling the output signal.
- the initialization signal active high in this embodiment
- the isolation signal active low in this embodiment
- the output node is pulled low in this embodiment (which concurs with the assertion levels of the bank select and write enable signals).
- assertion of the initialization signal activates transistor N 5 while causing P 6 to be inactive.
- assertion of the active low isolation signal causes activation of both P 7 and N 4 (the latter being activated due to a high received on the Iso node from inverter 12 ).
- P 6 inactive no pull-up path is present from the output node.
- both N 4 and N 5 active a pull-down path exists between the output node and the reference node, Vss. Accordingly, the output node is pulled low.
- N 5 When the initialization signal is de-asserted concurrent with assertion of the isolation signal, N 5 is inactive while P 6 is activated. Thus, the pull-down path is blocked due to the inactive N 5 , while a pull-up path exists between the output nod and Vdd_SRAM through P 6 and P 7 . Accordingly, assertion of the isolation signal results in the output node being pulled high. Assertion of the isolation signal also activates transistor P 1 . This in turn provides a pull-up path between Out_ and Vdd_SRAM, and thereby inhibits activation of P 4 .
- level shifter 30 may perform its normal level shifting functions. Signals to be level shifted may be received from one power domain (e.g., the Vdd power domain) on the input, In (received from the Vdd power domain in this embodiment).
- the isolation signal, Iso is de-asserted (i.e., high in this embodiment)
- transistor N 3 is active while P 1 is inactive. Accordingly, with both the isolation and initialization signals de-asserted, a pull-down path will exist either through N 1 and N 3 or N 2 and N 3 , depending on the input signal.
- transistor N 1 is activated while inverter 11 outputs a low that is received on P 5 , thereby activating that device. Accordingly the Out_node is pulled low through N 1 and N 3 , while the output node is pulled toward VDD_SRAM through P 5 and P 4 . If the input signal is low, P 3 is active while N 2 is activated via the output if 11. Accordingly, the output node is pulled low through N 2 and N 3 , while the Out_node is pulled toward Vdd_SRAM through P 2 and P 3 .
- FIG. 4 is a schematic diagram illustrating one embodiment of a bit line hold circuit coupled to a number of bit cells.
- bit line hold circuit 40 is coupled to a number of bit cells 45 , one in each row.
- one bit line hold circuit is implemented for each column of bit cells 45 .
- each bit cell is a standard 6T bit cell, including a pair of cross-coupled inverters to store the data and NMOS transistors for coupling the inverters to respective bit lines, BL and BL_.
- Data may be conveyed to the inverters of a bit cell 45 by asserting the corresponding word line and thus activating the corresponding NMOS transistors. When the corresponding word line is inactive, the cross-coupled inverters may hold the data.
- Bit line hold circuit 40 is configured to convey data onto the bit lines, and further configured to hold data on the bit lines.
- the circuit includes two pull-down circuits. A first of these pull-down circuits is implemented by transistors N 6 and N 7 , while a second of these circuits is implemented by transistors N 8 and N 9 .
- Conveying data to the bit lines may be performed by asserting the write enable signal (which is output as high from decoder 22 ). Assertion of the write enable signal activates both transistors N 6 and N 7 .
- Data to be conveyed onto the bit line is received on the node WrData and WrData_, which are complements of one another. Accordingly, the received data will activate either N 7 or N 9 , while the other one of these devices will remain in active.
- the active pull-down path will cause its correspondingly coupled bit line to be pulled low, while the other bit line will remain high.
- bit line hold circuit also includes a pair of cross-coupled PMOS transistors P 8 and P 9 .
- P 8 and P 9 may be activated to pull its correspondingly coupled bit line high.
- the other one of these devices may remain inactive until the state of the data conveyed thereto changes.
- the presence of P 8 and P 9 may compensate for leakage and other noise sources during the pre-charge free writing of initialization data to the bit cells 45 of SRAM 20 .
- FIG. 5 is a flow diagram illustrating one embodiment of a method for performing an initialization of an SRAM.
- Method 500 as shown herein may be performed by various embodiments of the circuitry/hardware discussed above.
- Other embodiments of circuitry/hardware capable of performing various embodiments of method 500 (or on which the method may be performed) are also possible and contemplated.
- Method 500 begins with the assertion of an initialization signal (block 505 ).
- the initialization signal may be asserted by a functional circuit block or other circuitry tasked with initiating and performing the initialization of the SRAM.
- various signals such as bank/column select signals, write enables, and precharge clock signals may be driven and held at predetermined levels (block 510 ). This may have the effect of write enabling all columns and all banks (if bank organization is present) in the SRAM.
- initialization data may then be concurrently written to all storage locations in a first row of the SRAM (block 515 ). In an SRAM organized into banks, this may include writing initialization data to all storage locations in each of the banks within that given row. If there are no more rows
- a subsequent write of initialization data is performed on all locations in a next row of the SRAM (block 520 ). If there are additional rows to which initialization data is to be written (block 525 , yes), then the method returns to block 520 . This loop may be repeated as many times as necessary until initialization data has been written to all locations in each row of the SRAM. If there are no more rows to which initialization data is to be written (block 525 , no), then initialization may be complete and the initialization signal may be de-asserted (block 530 ). Thereafter, method 500 is complete.
- the system 150 includes at least one instance of the integrated circuit 10 coupled to external memory 158 .
- the integrated circuit 10 is coupled to one or more peripherals 154 and the external memory 158 .
- a power supply 156 is also provided which supplies the supply voltages to the integrated circuit 10 as well as one or more supply voltages to the memory 158 and/or the peripherals 154 .
- more than one instance of the integrated circuit 10 may be included (and more than one external memory 158 may be included as well).
- the peripherals 154 may include any desired circuitry, depending on the type of system 150 .
- the system 150 may be a mobile device (e.g. personal digital assistant (PDA), smart phone, etc.) and the peripherals 154 may include devices for various types of wireless communication, such as WiFi, Bluetooth, cellular, global positioning system, etc.
- the peripherals 154 may also include additional storage, including RAM storage, solid-state storage, or disk storage.
- the peripherals 154 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc.
- the system 150 may be any type of computing system (e.g. desktop personal computer, laptop, workstation, tablet, etc.).
- the external memory 158 may include any type of memory.
- the external memory 158 may be SRAM, dynamic RAM (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, LPDDR 1 , LPDDR 2 , etc.) SDRAM, RAMBUS DRAM, etc.
- DRAM dynamic RAM
- the external memory 158 may include one or more memory modules to which the memory devices are mounted, such as single inline memory modules (SIMMs), dual inline memory modules (DIMMs), etc.
Abstract
Description
- 1. Technical Field
- This disclosure is directed to integrated circuits (ICs) and more particularly, to circuitry used in conjunction with static random access memories (SRAMs) and operation of the same.
- 2. Description of the Related Art
- Static random access memories (SRAMs) are widely used in integrated circuits (ICs). Applications of SRAM in ICs includes caches, register files, buffers, and so forth. Advantages of SRAM include a higher density than flip-flops along, faster speeds than dynamic random access memories (DRAMs), while not requiring the refresh cycles used to maintain information in a DRAM.
- When a unit including an SRAM is first powered on (either initially or when returning to an active state from a sleep state), the SRAM may be initialized. Initialization of an SRAM may include writing predetermined data to each address therein. For example, during the initialization, a functional circuit block may write all
logic 0's to each address in a correspondingly coupled SRAM. The data may be written into the addresses sequentially (i.e. one address after another) until data has been written into all addresses of the SRAM. Thereafter, normal operations utilizing the SRAM may commence. - A method and various circuit embodiments for low latency initialization of an SRAM are disclosed. In one embodiment, an IC includes an SRAM coupled to at least one functional circuit block. The SRAM includes a number of storage locations arranged in rows and columns. The functional circuit block and the SRAM may be in different power domains. Upon initially powering up or a restoration of power, the functional circuit block may assert an initialization signal to begin an initialization process. Responsive to the initialization signal, level shifters may force assertion of various select/enable signals in a decoder associated with the SRAM. Thereafter, initialization data may be written to the SRAM. Writing initialization data may be performed on a row-by-row basis, with all columns in a row being written to substantially simultaneously.
- In one embodiment, an SRAM may include a number of banks, and each row of the SRAM may extend across the number of banks. On a given row within each bank one or more storage locations may be implemented, with each of the storage locations having a number of bits. During the writing of initialization data, all banks and all storage locations within a given row are written to concurrently.
- At least some of the level shifters used to convey signals from the functional circuit block to the may be coupled to receive the initialization signal. Responsive to receiving the initialization signal, these level shifters may drive their respective output nodes to a predetermined logic level, irrespective of any other inputs. The outputs of these level shifters may then force the decoder of the SRAM to allow a number of storage locations within a given row to be written to concurrently.
- Bit line hold circuits associated with bit cells each include extra hold circuitry to hold the initialization data during the initialization. Each bit line hold circuit may be coupled to a column of bit cells that extends through the rows of the SRAM.
- The following detailed description makes reference to the accompanying drawings, which are now briefly described.
-
FIG. 1 is a block diagram illustrating one embodiment of an IC having a functional circuit block and an SRAM. -
FIG. 2 is a block diagram illustrating one embodiment of an SRAM. -
FIG. 3 is a schematic diagram of one embodiment of a level shifter circuit. -
FIG. 4 is a schematic diagram illustrating one embodiment of a bit line hold circuit coupled to a number of bit cells. -
FIG. 5 is a flow diagram illustrating one embodiment of a method for performing an initialization of an SRAM. -
FIG. 6 is a block diagram of one embodiment of an exemplary system. - While the disclosed subject matter is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the subject matter to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the disclosed subject matter as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.
- Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits and/or memory storing program instructions executable to implement the operation. The memory can include volatile memory such as static or dynamic random access memory and/or nonvolatile memory such as optical or magnetic disk storage, flash memory, programmable read-only memories, etc. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. §112, paragraph (f) interpretation for that unit/circuit/component.
- Turning now to
FIG. 1 , a block diagram of one embodiment of an IC. The embodiment of IC 10 shown here is an exemplary embodiment and is not intended to cover all possible embodiments of an IC falling within the scope of this disclosure. Rather, IC 10 is shown here for illustrative purposes and thus represents only one of many possible IC embodiments according to the principles and scope of the disclosure as discussed below. - IC 10 as shown in
FIG. 1 includes afunctional circuit block 11 and anSRAM 20. The SRAM 20 may provide storage for data used byfunctional circuit block 11 during operation. For example, SRAM 20 may be a cache memory, whilefunctional circuit block 11 may be a processor core configured to access the cache and write back data thereto. It is noted that for the sake of simplicity that not all connections betweenSRAM 20 andfunctional circuit block 11 are shown. For example, no path for reading data fromSRAM 20 byfunctional circuit block 11 is shown, although it is to be understood that at least one such path is present. - SRAM 20 is coupled to a
corresponding decoder 22, which is configured to decode read and write addresses, provide write and read enable signals during write and read operations, respectively, and so on. - In the embodiment shown,
functional circuit block 11 is configured to convey various signals and data toSRAM 20 for performing writes thereto. Among these signals are a write enable signal (WrEn), column select signals (Col_Sel), row select signals (Row_Sel), and data bits (D0-DX), where the width of the data bus is an integer value X+1. -
Functional circuit block 11 and SRAM 20 (in conjunction with decoder 22) are in different power domains and thus receive different supply voltages in the illustrated embodiment. More particularly,functional circuit block 11 is coupled to receive voltage Vdd, whileSRAM 20 anddecoder 22 are coupled to receive Vdd_SRAM. Accordingly, level shifters are placed betweenfunctional circuit block 11 anddecoder 22/SRAM 20. - In this particular example, a first group of
level shifters 29 and a second group oflevel shifters 30 are coupled betweenfunctional circuit block 11 anddecoder 22/SRAM 20. Both groups of level shifters in the embodiment shown are coupled to receive a respective isolation signal (Iso_0, Iso_1) fromfunctional circuit block 11. The isolation signals may be used to effectively isolatedata SRAM 20 fromfunctional circuit block 11 such that data stored in the former is not disturbed. Additionally, both groups oflevel shifters level shifters 29 outputs a level shifted version of the clock signal todecoder 22. Meanwhile, one of thelevel shifters 30 outputs the level shifted clock signal as a precharge clock signal, Pre_Clk_L. In the embodiment shown, the low phase of the clock cycle may be used as an input signal to the gate terminals of pre-charge transistors, implemented using p-channel metal oxide semiconductor (PMOS) devices, for performing a precharge of the bit lines during normal read and write operations. - Upon initial powering up of
IC 10, or when restoring power to SRAM 20 and decoder 22 (e.g., when exiting a power-gated sleep mode), an initialization procedure may be performed. The initialization procedure may be performed by writing predetermined data to each storage location withinSRAM 20. For example,SRAM 20 may be initialized by writinglogic 0's to each bit cell of each storage location withinSRAM 20. -
Functional circuit block 11 may assert and hold an initialization signal (Initialize) during the initialization procedure. In this embodiment, the isolation signal Iso_0 may also be held asserted during the initialization procedure. The asserted initialization and Iso_0 signals may be received bylevel shifters 30. Responsive to receiving these signals,level shifters 30 may drive the enable signal to a predetermined logic level opposite of that when the isolation signal alone is asserted. For example, if the isolation signal Iso_0 causes thelevel shifters 30 to drive their respective outputs high (or to logic 1), assertion of the initialization concurrent with assertion of Iso_0) may causelevel shifters 30 to drive their respective outputs low (or to logic 0). This may cause the write enable signal to be asserted (since it is an active low signal). In addition, a precharge clock (Pre_Clk) may be held to a predetermined level (e.g., high, or logic 1) during the initialization procedure. Since toggling of the precharge clock may be used to effect precharging, holding the precharge clock high may inhibit precharging of bit lines is performed during the writing of initialization data during the initialization procedure.Decoder 22 may also receive the initialization signal and responsive thereto, force all column select signals to their asserted level. In an alternate embodiment,functional circuit block 11 could force assertion of all the column select signals. In either case, all column select signals may be asserted such that all columns (or banks, depending on the arrangement of SRAM 20) are concurrently enabled for writing. - Holding as asserted the write enable signal and each column select signal may allow for significantly faster initialization of
SRAM 20. More particularly, holding the signals in these state may allow each storage location within a given row to be written substantially simultaneously. Thus, instead of the number of write cycles being equal to the number of storage locations inSRAM 20, or the number of rows multiplied by the number of columns, the number of write cycles in the various embodiments discussed herein may be equal to the number of rows. This may represent a substantial reduction in the time spent performing the initialization. Moreover, significant dynamic power savings may be achieved by preventing toggling of the precharge clock and thus inhibiting the occurrence of precharging. -
FIG. 2 is a block diagram illustrating one embodiment ofSRAM 20. It is noted that the size and organization of an SRAM may vary from this particular example while still falling within the scope of this disclosure. - In this particular example,
SRAM 20 includes four banks (Bank 0,Bank 1,Bank 2, and Bank 3) and n rows. In one embodiment, n=64, although this number may vary. Within each bank in a given row, there are four storage locations (addresses 0, 1, 2, and 3), although this number may also vary. During the initialization procedure,decoder 22 may assert bank enable signals (BankEn[3:0]) for each bank based on the signals output fromlevel shifters 30 shown inFIG. 1 . Furthermore, if the individual storage locations are independently selectable, then enable signals (not shown) may be asserted for each of these as well.Decoder 22 may also assert a write enable signal, while the precharge (Precharge) signal may be inhibited due to the precharge clock being held in a predetermined state. The writing of initialization data may be performed withdecoder 22 asserting the word line signals (WL[n−1:0]) one by one. When a given word line signal is asserted, initialization data may be concurrently written to each storage location of each bank within that row ofSRAM 20. In one embodiment,decoder 22 may assert the word line signals sequentially beginning with word line 0 (WL0) and ending with the final word line, WLn−1. If n=64 in the example shown, then the concurrent writing to each storage location in a given row results in the initialization procedure consuming 64 write cycles. In contrast, were the same embodiment to be initialized on a location-by-location basis, 1024 write cycles would be consumed. - Turning now to
FIG. 3 , one embodiment of alevel shifter 30 is shown. In the embodiment shown,level shifter 30 includes a pull-up circuit and a pull-down circuit coupled to the output node, Out. The pull-up circuit includes PMOS devices P6 and P7. The pull-down circuit includes n-channel metal oxide semiconductor (NMOS) devices N4 and N5. The arrangement of the pull-up and pull-down circuits relative to the signal inputs results in a priority for controlling the output signal. Moreover, when the initialization signal (active high in this embodiment) is asserted concurrent with assertion of the isolation signal (active low in this embodiment), the output node is pulled low in this embodiment (which concurs with the assertion levels of the bank select and write enable signals). In particular, assertion of the initialization signal activates transistor N5 while causing P6 to be inactive. Assertion of the active low isolation signal causes activation of both P7 and N4 (the latter being activated due to a high received on the Iso node from inverter 12). With P6 inactive, no pull-up path is present from the output node. However, with both N4 and N5 active, a pull-down path exists between the output node and the reference node, Vss. Accordingly, the output node is pulled low. - When the initialization signal is de-asserted concurrent with assertion of the isolation signal, N5 is inactive while P6 is activated. Thus, the pull-down path is blocked due to the inactive N5, while a pull-up path exists between the output nod and Vdd_SRAM through P6 and P7. Accordingly, assertion of the isolation signal results in the output node being pulled high. Assertion of the isolation signal also activates transistor P1. This in turn provides a pull-up path between Out_ and Vdd_SRAM, and thereby inhibits activation of P4.
- When neither the isolation (Iso) or initialization (Initialize) signals are asserted,
level shifter 30 may perform its normal level shifting functions. Signals to be level shifted may be received from one power domain (e.g., the Vdd power domain) on the input, In (received from the Vdd power domain in this embodiment). When the isolation signal, Iso, is de-asserted (i.e., high in this embodiment), transistor N3 is active while P1 is inactive. Accordingly, with both the isolation and initialization signals de-asserted, a pull-down path will exist either through N1 and N3 or N2 and N3, depending on the input signal. If the input signal is high, transistor N1 is activated whileinverter 11 outputs a low that is received on P5, thereby activating that device. Accordingly the Out_node is pulled low through N1 and N3, while the output node is pulled toward VDD_SRAM through P5 and P4. If the input signal is low, P3 is active while N2 is activated via the output if 11. Accordingly, the output node is pulled low through N2 and N3, while the Out_node is pulled toward Vdd_SRAM through P2 and P3. -
FIG. 4 is a schematic diagram illustrating one embodiment of a bit line hold circuit coupled to a number of bit cells. In the embodiment shown, bitline hold circuit 40 is coupled to a number ofbit cells 45, one in each row. In various embodiments of anSRAM 20, one bit line hold circuit is implemented for each column ofbit cells 45. In this particular example, each bit cell is a standard 6T bit cell, including a pair of cross-coupled inverters to store the data and NMOS transistors for coupling the inverters to respective bit lines, BL and BL_. Data may be conveyed to the inverters of abit cell 45 by asserting the corresponding word line and thus activating the corresponding NMOS transistors. When the corresponding word line is inactive, the cross-coupled inverters may hold the data. - Bit line hold
circuit 40 is configured to convey data onto the bit lines, and further configured to hold data on the bit lines. The circuit includes two pull-down circuits. A first of these pull-down circuits is implemented by transistors N6 and N7, while a second of these circuits is implemented by transistors N8 and N9. Conveying data to the bit lines may be performed by asserting the write enable signal (which is output as high from decoder 22). Assertion of the write enable signal activates both transistors N6 and N7. Data to be conveyed onto the bit line is received on the node WrData and WrData_, which are complements of one another. Accordingly, the received data will activate either N7 or N9, while the other one of these devices will remain in active. The active pull-down path will cause its correspondingly coupled bit line to be pulled low, while the other bit line will remain high. - In the embodiment shown, bit line hold circuit also includes a pair of cross-coupled PMOS transistors P8 and P9. During the conveying of data from the WrData and WrData— lines to the bit lines, one of these devices may be activated to pull its correspondingly coupled bit line high. The other one of these devices may remain inactive until the state of the data conveyed thereto changes. The presence of P8 and P9 may compensate for leakage and other noise sources during the pre-charge free writing of initialization data to the
bit cells 45 ofSRAM 20. -
FIG. 5 is a flow diagram illustrating one embodiment of a method for performing an initialization of an SRAM.Method 500 as shown herein may be performed by various embodiments of the circuitry/hardware discussed above. Other embodiments of circuitry/hardware capable of performing various embodiments of method 500 (or on which the method may be performed) are also possible and contemplated. -
Method 500 begins with the assertion of an initialization signal (block 505). The initialization signal may be asserted by a functional circuit block or other circuitry tasked with initiating and performing the initialization of the SRAM. Responsive to assertion of the initialization signal, various signals such as bank/column select signals, write enables, and precharge clock signals may be driven and held at predetermined levels (block 510). This may have the effect of write enabling all columns and all banks (if bank organization is present) in the SRAM. With all columns/banks write enabled, initialization data may then be concurrently written to all storage locations in a first row of the SRAM (block 515). In an SRAM organized into banks, this may include writing initialization data to all storage locations in each of the banks within that given row. If there are no more rows - With the initialization written to the first row, a subsequent write of initialization data is performed on all locations in a next row of the SRAM (block 520). If there are additional rows to which initialization data is to be written (block 525, yes), then the method returns to block 520. This loop may be repeated as many times as necessary until initialization data has been written to all locations in each row of the SRAM. If there are no more rows to which initialization data is to be written (block 525, no), then initialization may be complete and the initialization signal may be de-asserted (block 530). Thereafter,
method 500 is complete. - Turning next to
FIG. 6 , a block diagram of one embodiment of asystem 150 is shown. In the illustrated embodiment, thesystem 150 includes at least one instance of theintegrated circuit 10 coupled toexternal memory 158. Theintegrated circuit 10 is coupled to one ormore peripherals 154 and theexternal memory 158. Apower supply 156 is also provided which supplies the supply voltages to theintegrated circuit 10 as well as one or more supply voltages to thememory 158 and/or theperipherals 154. In some embodiments, more than one instance of theintegrated circuit 10 may be included (and more than oneexternal memory 158 may be included as well). - The
peripherals 154 may include any desired circuitry, depending on the type ofsystem 150. For example, in one embodiment, thesystem 150 may be a mobile device (e.g. personal digital assistant (PDA), smart phone, etc.) and theperipherals 154 may include devices for various types of wireless communication, such as WiFi, Bluetooth, cellular, global positioning system, etc. Theperipherals 154 may also include additional storage, including RAM storage, solid-state storage, or disk storage. Theperipherals 154 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc. In other embodiments, thesystem 150 may be any type of computing system (e.g. desktop personal computer, laptop, workstation, tablet, etc.). - The
external memory 158 may include any type of memory. For example, theexternal memory 158 may be SRAM, dynamic RAM (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, LPDDR1, LPDDR2, etc.) SDRAM, RAMBUS DRAM, etc. Theexternal memory 158 may include one or more memory modules to which the memory devices are mounted, such as single inline memory modules (SIMMs), dual inline memory modules (DIMMs), etc. - Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/482,613 US9286971B1 (en) | 2014-09-10 | 2014-09-10 | Method and circuits for low latency initialization of static random access memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/482,613 US9286971B1 (en) | 2014-09-10 | 2014-09-10 | Method and circuits for low latency initialization of static random access memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160071574A1 true US20160071574A1 (en) | 2016-03-10 |
US9286971B1 US9286971B1 (en) | 2016-03-15 |
Family
ID=55438096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/482,613 Active US9286971B1 (en) | 2014-09-10 | 2014-09-10 | Method and circuits for low latency initialization of static random access memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US9286971B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9401201B1 (en) * | 2015-05-22 | 2016-07-26 | Qualcomm Incorporated | Write driver for memory |
US20160239060A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Independent power collapse methodology |
US10037788B2 (en) | 2016-08-02 | 2018-07-31 | SK Hynix Inc. | Semiconductor devices and semiconductor systems |
US10685697B2 (en) | 2016-08-02 | 2020-06-16 | SK Hynix Inc. | Semiconductor devices and operations thereof |
US10847195B2 (en) | 2016-06-27 | 2020-11-24 | SK Hynix Inc. | Semiconductor device having ranks that performs a termination operation |
US11133042B2 (en) | 2016-06-27 | 2021-09-28 | SK Hynix Inc. | Semiconductor memory system and semiconductor memory device, which can be remotely initialized |
US11217286B2 (en) | 2016-06-27 | 2022-01-04 | SK Hynix Inc. | Semiconductor memory device with power down operation |
US11443795B2 (en) * | 2017-07-12 | 2022-09-13 | Ambiq Micro, Inc. | SRAM with address dependent power usage |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10082964B2 (en) * | 2016-04-27 | 2018-09-25 | Micron Technology, Inc | Data caching for ferroelectric memory |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69024921T2 (en) | 1989-11-24 | 1996-09-05 | Nec Corp | Semiconductor memory arrangement with resettable memory cells |
KR100604890B1 (en) | 2004-07-22 | 2006-07-28 | 삼성전자주식회사 | Semiconductor device for initialization by the unit SRAMs |
US7355905B2 (en) * | 2005-07-01 | 2008-04-08 | P.A. Semi, Inc. | Integrated circuit with separate supply voltage for memory that is different from logic circuit supply voltage |
US7292495B1 (en) * | 2006-06-29 | 2007-11-06 | Freescale Semiconductor, Inc. | Integrated circuit having a memory with low voltage read/write operation |
US8407395B2 (en) | 2006-08-22 | 2013-03-26 | Mosaid Technologies Incorporated | Scalable memory system |
US8488396B2 (en) | 2010-02-04 | 2013-07-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Dual rail static random access memory |
US20140063920A1 (en) | 2012-08-28 | 2014-03-06 | United States Government, As Represented By The Secretary Of The Navy | Static random access memory that initializes to pre-determined state |
US8976607B2 (en) * | 2013-03-05 | 2015-03-10 | Qualcomm Incorporated | High-speed memory write driver circuit with voltage level shifting features |
-
2014
- 2014-09-10 US US14/482,613 patent/US9286971B1/en active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160239060A1 (en) * | 2015-02-13 | 2016-08-18 | Qualcomm Incorporated | Independent power collapse methodology |
US9785211B2 (en) * | 2015-02-13 | 2017-10-10 | Qualcomm Incorporated | Independent power collapse methodology |
US9401201B1 (en) * | 2015-05-22 | 2016-07-26 | Qualcomm Incorporated | Write driver for memory |
US10847195B2 (en) | 2016-06-27 | 2020-11-24 | SK Hynix Inc. | Semiconductor device having ranks that performs a termination operation |
US11133042B2 (en) | 2016-06-27 | 2021-09-28 | SK Hynix Inc. | Semiconductor memory system and semiconductor memory device, which can be remotely initialized |
US11217286B2 (en) | 2016-06-27 | 2022-01-04 | SK Hynix Inc. | Semiconductor memory device with power down operation |
US10037788B2 (en) | 2016-08-02 | 2018-07-31 | SK Hynix Inc. | Semiconductor devices and semiconductor systems |
US10147471B2 (en) | 2016-08-02 | 2018-12-04 | SK Hynix Inc. | Semiconductor devices and semiconductor systems |
US10685697B2 (en) | 2016-08-02 | 2020-06-16 | SK Hynix Inc. | Semiconductor devices and operations thereof |
US10777241B2 (en) | 2016-08-02 | 2020-09-15 | SK Hynix Inc. | Semiconductor devices and semiconductor systems |
US11443795B2 (en) * | 2017-07-12 | 2022-09-13 | Ambiq Micro, Inc. | SRAM with address dependent power usage |
Also Published As
Publication number | Publication date |
---|---|
US9286971B1 (en) | 2016-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9286971B1 (en) | Method and circuits for low latency initialization of static random access memory | |
US9773544B2 (en) | Memory device with switchable sense amplifier | |
US8559247B2 (en) | Dynamic level shifter for interfacing signals referenced to different power supply domains | |
US9311971B1 (en) | Systems and methods of semiconductor memory devices including features of output buffer initialization circuit(s) and/or multiple power-up detection/handling | |
US9875788B2 (en) | Low-power 5T SRAM with improved stability and reduced bitcell size | |
US9412429B2 (en) | Memory device with multiple voltage generators | |
US8947951B2 (en) | Semiconductor memory devices | |
US9159398B2 (en) | Memory core and semiconductor memory device including the same | |
JP5621704B2 (en) | Semiconductor memory device | |
US9589625B2 (en) | Method of operating memory device and refresh method of the same | |
US8493811B2 (en) | Memory having asynchronous read with fast read output | |
US9196350B2 (en) | Active control device, semiconductor device and system including the same | |
US20060176078A1 (en) | Voltage level shifting circuit and method | |
US20140016392A1 (en) | Memory Having Isolation Units For Isolating Storage Arrays From A Shared I/O During Retention Mode Operation | |
US10720193B2 (en) | Technique to lower switching power of bit-lines by adiabatic charging of SRAM memories | |
US9019751B2 (en) | Process tolerant circuits | |
US8169246B2 (en) | Dynamic-to-static converter latch with glitch suppression | |
US9922688B2 (en) | Bitline sensing latch | |
EP3411877B1 (en) | Shared sense amplifier | |
US8441885B2 (en) | Methods and apparatus for memory word line driver | |
US8174918B2 (en) | Passgate for dynamic circuitry | |
US10902907B1 (en) | Output drivers, and related methods, memory devices, and systems | |
US10535400B2 (en) | Level shifting dynamic write driver | |
JP2008176907A (en) | Semiconductor memory device | |
KR100884262B1 (en) | Word line decoder capable of preventing current from leaking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HESS, GREG M.;ARVAPALLI, RAMESH;ARENGO, ANDREW L.;SIGNING DATES FROM 20140909 TO 20140910;REEL/FRAME:033712/0396 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
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 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |