USPatent applicationPatented

Methods and apparatus to provide refresh for local out of range read requests to a memory device

Granted 14 Apr 2009 · 1 office action

Life of the application

8 dated events
⤢ drag to zoom20062008201020122014201620182020202220242026ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

Methods and apparatus to provide refresh for local out of range read requests for a memory device are disclosed. An example method disclosed herein provides a read signal to a memory cell. An address is received on row address lines ranging from a most significant bit row address line to a least significant bit row address line. A fixed high logic input is coupled to a first input of a row driver logic device associated with a local out of range address. Logic is provided to send a read enable signal on a bit line coupled to an output of the row driver logic device coupled to the memory cell if the address is the local out of range address.

Description

6 parts
›FIELD OF THE DISCLOSURE

This disclosure relates generally to memory devices and, more particularly, to methods and apparatus to provide refresh for local out of range read requests to a memory device.

›BACKGROUND

Asynchronous embedded static random access memory (SRAM) is a common memory device that requires refreshing of its memory cells to retain stored data. Embedded SRAM memory cells are typically composed of devices that hold data without having to refresh individual cells. However, the cells must have a complete electrical path in order to avoid a float state that may cause data integrity loss. Rather than refreshing on a periodic basis, which decreases the time during which a memory may be accessed, refreshes of the memory cells are typically performed only during a read operation, during which the memory cells are read and a complete electrical path is maintained to enable the memory to retain the data.

A typical memory array includes eight word rows and multiple base two columns. The row is first selected and then the column is selected to cause the data from a particular memory cell to be addressed and refreshed by maintaining a completed electrical path. However, a circuit design using memory may not require an entire full base two range of columns or blocks or all the possible memory addresses in a row. Power conservation and gate efficiency is an important factor in circuit design and, thus, it is desirable to eliminate unnecessary memory capacity. For example, in the case of application specific integrated circuit (ASIC) standard 2 port memory, users may configure the word length, bit length and x-y ratio by entering a desired memory length resulting in odd numbers of word lengths. When the addresses of words are not used, they are referenced as a global out of range in the case of an unused column address or a local out of range in the case of unused row addresses. For example, if a memory only requires 59 words, there would be 7 full columns, but the last column would use only rows 0 - 2 and, thus, rows 3 - 7 are out of range local addresses.

To read data from each cell, an address is sent to various row bit lines and column select lines that allow a particular word to be read. However, the cells must be refreshed during any read request because there is no scheduled refresh of the memory cells. In the case of a read request directed to either a local or global out of bounds address (e.g., an attempt to access the words rows 3 - 7 in the last column in the above example), the read request results in not refreshing the accessed memory because the appropriate row and column does not exist, thereby breaking the complete electrical path and resulting in the row bit line floating in a tristate condition and destroying stored data. Thus, to insure that the memory array is refreshed whenever an out of range address is received, the words in an existing row or column must be addressed to refresh the memory. The logic to determine the out of range address and refresh the appropriate existing memory blocks requires additional gates (e.g., out of range detection logic) and increases power consumption. In certain cases, access time to the memory is also increased because of the complexity of the out of range detection logic. Further, drive conflicts may occur because of propagation delay causing interference with subsequent read requests.

›BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a circuit diagram of a portion of an example memory array including an example local out of range circuit.

FIG. 2 is a circuit diagram of a portion of an example memory array including another example local out of range circuit.

FIG. 3 is a circuit diagram of a portion of an example memory array including yet another example local out of range circuit.

FIG. 4 is a circuit diagram of a portion of an example memory array including still another example local out of range circuit.

FIG. 5 is a circuit diagram of a portion of an example memory array including yet another example local out of range circuit.

›DETAILED DESCRIPTION · 1 of 3

FIG. 1 is a circuit diagram of an example embedded SRAM memory array 10 having a local out of range circuit 12 , which relays row address requests to memory blocks in the memory array 10 . The memory array 10 has a series of memory blocks 14 (blocks 0 - 6 ) and a last memory block 16 (block 7 ). Each of the blocks 14 holds eight words in rows 0 - 7 . Thus, the memory array 10 has a maximum of 64 word addresses. In this example, the memory array 10 has 57 addressable words and, thus, requests made for part of the last memory block 16 include local out of range row addresses.

The memory blocks 14 each include eight words ( 0 - 7 ), which are addressed using row address inputs 18 , 20 and 22 and which represent a 3 bit row address having bits ranging from a most significant bit to a least significant bit. Each of the row address inputs 18 , 20 and 22 are coupled to a corresponding inverter 24 , 26 and 28 to provide an inverted row address signal. The two least significant bit row address inputs 18 and 20 , in conjunction with the inverters 24 and 26 , drive a series of two input AND gates 30 , 32 , 34 and 36 , each of which outputs a high value when a particular row address is input to serve as the read control for activating the corresponding rows in the memory blocks 14 . For example, when the row having the least significant bits 00 is selected, the AND gate 30 outputs a high voltage read control signal to row 0 and row 4 of the memory blocks 14 . Those of ordinary skill in the art will understand that other logical devices such as NAND gates or combinations of logic devices with different inputs and outputs may be used instead of or in addition to the AND gates 30 , 32 , 34 and 36 .

Each of the memory blocks 14 and 16 is addressed by a global decoder line 38 , which is selected by additional column address inputs that may range from AC( 0 ) to AC( 3 ) (not shown) for selecting a specific memory block from the memory blocks 14 and 16 . The global decoder line 38 is coupled to both inputs of a two input AND gate 40 . Each of the rows 0 - 7 in the memory blocks 14 have a bit line 42 that is output from a three input row driver AND gate 44 . The bit line 42 normally has a high value to hold the data in the particular word or memory cell. The bit line 42 is set to high to read and refresh the data in the particular word or memory cell.

One input of each of the three input row driver AND gates 44 is connected or coupled to the global decoder lines 38 through the AND gates 40 . The second input of each of the three input row driver AND gates 44 is coupled to the output of one of the two input AND gates 30 , 32 , 34 and 36 . The third input of each of the three input row driver AND gates 44 is coupled to either the row address input 22 or the output of the inverter 28 representing the inverted most significant row address bit. In such a manner, a specific word from the memory blocks 14 may be read via the bit line 42 . For example, a read command for reading the word at address 29 is processed by inputting a row address of 101 to the row address inputs 18 , 20 and 22 . An input of 01 to the row address inputs 18 and 20 causes the AND gate 32 to output a high signal to the second input of the row driver AND gates 44 for rows 1 and 5 . The input of 1 on the row address input 22 , the most significant row address bit, results in a high input to the row driver AND gates 44 connected to rows 4 - 7 . Those of ordinary skill in the art will understand that other logical devices such as NAND gates or combinations of logic devices with different inputs and outputs may be used for the row driver AND gates 44 .

A column address of 011 input to the column address inputs selects block 2 and sends a high signal on the global address line 38 for the memory block 14 for block 2 . The high signal is amplified by the AND gate 40 and input to the row driver AND gates 44 for all the rows ( 0 - 7 ) in block 2 . In this manner, the output of the row driver AND gate 44 relating to row 5 , block 2 outputs a high signal on the bit line 42 for row 5 causing a read and refresh to occur for the word for address 5 .

Because the memory array 10 has 57 words, the only word that is addressable in the memory block 16 (block 7 ) is row 0 . A single bit line 50 drives the read operation of the word 0 . The bit line 50 is output from a three input row driver AND gate 60 . The global bit line 38 is coupled to one input of the row driver AND gate 60 . The other two inputs of the row driver AND gate 60 are coupled to a fixed high logic input 80 , which may be a voltage source (e.g., at a logical high potential). If an out of range address (i.e., rows 1 - 7 ) of block 7 is requested, the bit line 50 changes to a high signal from the high logic input 80 and the global bit line 38 sends high signals to the inputs of the row driver AND gate 60 to prevent a tristate condition in the word 0 .

FIG. 2 is a circuit diagram of an example memory array 100 with another local out of range circuit 102 . The memory array 100 includes a last memory block 104 , which has local out of range word addresses. The local out of range circuit 102 is used to select row addresses of the memory blocks 14 , which are identical to the memory blocks 14 in FIG. 1 and, thus, identical elements have identical reference numbers. The memory array 100 has 58 words and, thus, rows 2 - 7 of the memory block 104 (block 7 ) are out of range.

The memory block 104 includes two words (rows 0 - 1 ) that are addressed using row address inputs 106 , 108 and 110 , which are a 3-bit row address having a most significant bit to a least significant bit. Each of the row address inputs 106 , 108 and 110 is coupled to a corresponding inverter 112 , 114 and 116 to provide an inverted row address signal of the corresponding bit of the row address. The two least significant bit row address inputs 106 and 108 in conjunction with the inverters 112 and 114 drive a series of two input AND gates 120 , 122 , 124 and 126 , each of which outputs a high value when a particular row address is input and, thus, serve as the read control. For example, when the 01 row is selected, the AND gate 122 outputs a high read control signal.

›DETAILED DESCRIPTION · 2 of 3

The example memory array 100 in FIG. 2 allows memory access to words in rows 0 - 7 in the memory blocks 14 . However, the only words addressable in the memory block 104 are words 0 and 1 , which have corresponding bit lines 130 and 132 that are driven by row driver AND gates 150 and 152 , respectively. One of the inputs of the row driver AND gates 150 and 152 is coupled to the global decoder line 38 . The second input of the row driver AND gates 150 and 152 is coupled to a fixed high logic input 170 . Thus, when the memory block 104 (block 7 ) is selected by a column address, the first and second inputs of the row driver AND gates 150 and 152 are driven high by the global decoder line 38 and the high logic input 170 . The third input of the row driver AND gate 150 is coupled to the row address input 106 representing the least significant address bit while the third input of the row driver AND gate 152 is coupled to the inverter 112 , which outputs the inverted least significant address bit input value. A local out of range address request (e.g., any request that includes rows 3 - 7 in block 7 ) provides a high signal to the third input of either the row driver AND gates 150 and 152 via the row address input 106 , thereby causing a high signal on either of the bit lines 130 and 132 . For example, if rows 3 , 5 or 7 are requested, which are all out of range address requests, the address line 106 will output a low signal that is output high by the inverter 112 . This causes a high signal to be input to the row driver AND gate 152 which, in turn, causes the row 1 to be refreshed via a memory read high signal on the bit line 132 .

FIG. 3 is a circuit diagram of an example memory array 200 with yet another local out of range circuit 202 . The memory array 200 includes a memory block 204 , which has local out of range word addresses. The local out of range circuit 202 is used to select row addresses of other memory blocks 14 , which are identical to the memory blocks 14 in FIG. 1 and, thus, identical elements have identical reference numbers. The memory circuit 200 has 59 words and, thus, rows 3 - 7 of the memory block 204 (block 7 ) are out of range.

The memory block 204 includes three words ( 0 - 2 ), which are addressed using row address inputs 206 , 208 and 210 . Each of the row address inputs 206 , 208 and 210 is coupled to a corresponding inverter 212 , 214 and 216 to provide an inverted address signal. The two least significant bit row address inputs 206 and 208 in conjunction with the inverters 212 and 214 drive a series of two input AND gates 220 , 222 , 224 and 226 , each of which output a high value when a particular row address is input and, thus, serve as the read control. For example, when a row address with 11 as the two least significant bits is selected, the AND gate 226 outputs a high read control signal.

The memory array 200 in FIG. 3 allows memory access to words in rows 0 - 2 in the memory block 204 . The words in rows 0 - 2 have corresponding bit lines 230 , 232 and 234 , which are driven by three input row driver AND gates 250 , 252 and 254 , respectively. The first input of the three input row driver AND gates 250 , 252 and 254 is coupled to the output of the global decoder line 38 and the AND gate 40 . The second input of the row driver AND gates 250 , 252 and 254 is coupled to a fixed high logic input 270 . The third input of the row driver AND gate 250 is coupled to the output of the AND gate 220 . The third input of the row driver AND gate 252 is coupled to the row address line 206 . The third input of the row driver AND gate 254 is coupled to the output of the AND gate 224 . An out of range address request that includes rows 3 , 5 or 7 will thus provide a high signal to the third input of the row driver AND gate 252 via the row address input 206 thus causing a high signal to activate the read refresh on the bit line 232 . If an out of range address request for row 4 is requested, the address lines 206 and 208 in conjunction with inverters 112 and 114 will cause a high signal to be output from the AND gate 220 . This causes a high signal to be input to the third input of the row driver AND gate 250 driving the bit line 230 high to refresh row 0 . Similarly, if the out of range address is row 6 , the address lines 206 and 208 in conjunction with the inverter 112 cause a high signal to be output from the AND gate 224 , which causes a high signal to be sent to the third input of the AND gate 254 and the bit line 234 to be driven high to refresh row 2 . In the case where rows 4 - 7 are out of range, the local out of range circuit 202 may be modified to have the corresponding row driver AND gates coupled to the bit lines for enabling the rows 0 - 3 coupled to the AND gates 220 , 222 , 224 and 226 .

FIG. 4 is a circuit diagram of an example memory array 300 with still another local out of range circuit 302 . The memory array 300 includes a memory block 304 that has local out of range word addresses. The local out of range circuit 302 is used to select row addresses of other memory blocks 14 , which are identical to the memory blocks 14 in FIG. 1 and, thus, identical elements have identical reference numbers. The memory array 300 has 61 words and, thus, rows 5 - 7 of the memory block 304 (block 7 ) are out of range.

The memory block 304 includes five words ( 0 - 5 ) that are addressed using row address inputs 306 , 308 and 310 . Each of the row address inputs 306 , 308 and 310 is coupled to a corresponding inverter 312 , 314 and 316 to provide an inverted address signal. The two least significant bit row address inputs 306 and 308 in conjunction with the inverters 312 and 314 drive a series of two input AND gates 320 , 322 , 324 and 326 , each of which outputs a high value when one of the four values of the two least significant bits of a particular row address is input and, thus, serve as the read control. For example, when the 11 row is selected, the AND gate 326 outputs a high read control signal.

›DETAILED DESCRIPTION · 3 of 3

The circuit 300 in FIG. 4 allows memory access to words in rows 0 - 4 in the memory block 304 . The words in rows 0 - 4 have corresponding bit lines 330 , 332 , 334 , 336 and 338 , which are driven by three input row driver AND gates 350 , 352 , 354 , 356 and 358 , respectively. The first inputs of the row driver AND gates 350 , 352 , 354 , 356 and 358 are coupled to the output of the AND gate 40 , which is driven by the global decoder line 38 . The second inputs of the row driver AND gates 350 and 358 are driven by the output of the AND gate 320 . The second inputs of the row driver AND gates 352 , 354 and 356 are coupled to the outputs of the row driver AND gates 322 , 324 and 326 , respectively.

The row address input 310 representing the most significant address bit is coupled via the inverter 316 to the third input of the row driver AND gate 350 . The row address input 310 is coupled to the third input of the row driver AND gate 358 . The row driver AND gates 350 and 358 provide read outputs because row 0 and row 4 are both in range. The third inputs of each of the row driver AND gates 352 , 354 and 356 are coupled to a high logic input 370 . An out of range address request that includes row 5 , 6 or 7 ( 101 , 110 or 111 input to row address inputs 306 , 308 and 310 ) provides a high signal to the third input of the row driver AND gates 352 , 354 or 356 via the AND gates 322 , 324 and 326 . This causes a high signal triggering a read refresh on the respective bit lines 332 , 334 or 336 refreshing one of the rows 5 , 6 or 7 from an out of range request.

In a similar manner, a local out of range circuit may be implemented for out of range addresses for row 6 and row 7 by modifying the local out of range circuit 302 in FIG. 4 . The local out of range circuit 302 may be modified by coupling the most significant bit row address line such as the row address line 310 and corresponding inverter 316 to the AND gates driving the different rows, which are addressable. The third input of the AND gates associated with common least significant bits of the potential out of range row addresses (i.e., row driver gates 354 and 356 ) may be coupled to the high logic input 370 .

FIG. 5 is a circuit diagram of an example memory array 400 with still another local out of range circuit 402 . The memory array 400 includes a memory block 404 , which has local out of range word addresses. The local out of range circuit 402 is used to select row addresses of other memory blocks 14 , which are identical to the memory blocks 14 in FIG. 1 and, thus, identical elements have identical reference numbers. The memory array 400 has 63 words and, thus, row 7 of the memory block 404 (block 7 ) is an out of range address.

The memory block 404 includes seven words (rows 0 - 6 ), which are addressed using row address inputs 406 , 408 and 410 . Each of the row address inputs 406 , 408 and 410 is coupled to a corresponding inverter 412 , 414 and 416 to provide an inverted address signal. The two least significant bit row address inputs 406 and 408 in conjunction with the inverters 412 and 414 drive a series of two input AND gates 420 , 422 , 424 and 426 , each of which outputs a high value when one of the four values of the two least significant bits of a particular row address are input and, thus, serve as the read control.

The example circuit 400 in FIG. 5 allows memory access to words in rows 0 - 6 of the memory block 404 . The words in rows 0 - 6 have corresponding bit lines 430 , 432 , 434 , 436 , 438 , 440 , and 442 , which are driven by three input row driver AND gates 450 , 452 , 454 , 456 , 458 , 460 and 462 , respectively. The first inputs of the three input row driver AND gates 450 , 452 , 454 , 456 , 458 , 460 and 462 are coupled to the output of the AND gate 40 , which is driven by the global decoder line 38 . The second inputs of the row driver AND gates 450 and 458 are coupled to the output of the AND gate 420 . The second inputs of the row driver AND gates 452 and 460 are coupled to the output of the AND gate 422 . The second inputs of the row driver AND gates 454 and 462 are coupled to the output of the AND gate 424 . The second input of the row driver AND gate 456 is coupled to the output of the AND gate 426 .

The row address input 410 representing the most significant row address bit is coupled via the inverter 416 to the third input of the row driver AND gates 450 , 452 and 454 and are used to address rows 0 - 2 which are valid addresses. The row address input 410 is coupled to the third input of the row driver AND gates 458 , 460 and 462 and is used to address rows 4 - 6 , which are valid addresses. The third input of the row driver AND gate 456 is coupled to a high logic input 470 . An out of range address request that includes row 7 provides a high signal to the third input of the row driver AND gate 356 via the AND gate 326 , thereby causing a high signal to read refresh on the bit lines 336 refreshing row 3 during the out of range request.

From the foregoing, persons of ordinary skill in the art will appreciate that the above disclosed methods and apparatus may be realized within a single device or across two cooperating devices, and could be implemented by software, hardware, and/or firmware to implement the example local out of range circuits disclosed herein.

Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.

Claims as granted

15 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

3 codes
IPC · International Patent Classification
Section G — Physics
  • G11C8/00
USPC · US Patent Classification
365/230.6365/189.9

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomJul 2006Oct 2006Jan 2007Apr 2007Jul 2007Oct 2007Jan 2008Apr 2008Jul 2008Oct 2008Jan 2009Apr 2009USPTOApplicantNon-final rejectionResponse after non-final
USPTOApplicanthover for detail · click to open
Pendency
2.6 y
958 days filing → grant
Office actions
1
non-final + final
Responses
1
no RCE
Examiner
Huan Hoang
art unit 2827 · TC 2800
Citations: 1 back · 0 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20062008201020122014201620182020202220242026Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock