SEQUENTIAL-WRITE, RANDOM-READ MEMORY

Abstract
In one embodiment, a method includes, in response to assertion of a write-enable signal at a memory array that comprises a plurality of words, sequentially and at a first clock frequency writing data to the memory array starting at a beginning of the memory array until the memory array is full. The method includes, independent of the writing of data to the memory array, asynchronously and at a second clock frequency that is slower than the first clock frequency reading data from the memory array based on read addresses received at the memory array.
Description
TECHNICAL FIELD

This disclosure relates generally to memory devices.


BACKGROUND

Sequential-access memory (SAM) devices access their data in a predetermined, ordered sequence. In contrast, random-access memory (RAM) devices can access their data in any order.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an example memory array.



FIG. 2 illustrates an example control and synchronization circuit.



FIG. 3 illustrates an example write word-line (WL) select circuit.



FIG. 4 illustrates an example memory cell schematic.



FIG. 5 illustrates an example floor plan of an example memory array.



FIG. 6 illustrates an example timing diagram of an example memory array, which illustrates the start of a write sequence.



FIG. 7 illustrates an example timing diagram of an example memory array, which illustrates the completion of one write sequence and the start of another write sequence.



FIG. 8 illustrates an example radio frequency (RF) receiver with an example memory array.



FIG. 9 illustrates an example method for sequential-write random-read memory.





DESCRIPTION OF EXAMPLE EMBODIMENTS

SAM devices access their data in a predetermined, ordered sequence. In contrast, RAM devices can access their data in any order. The following, which are all incorporated herein by reference as an example and not by way of limitation, disclose example memory devices: U.S. Pat. No. 5,535,170, entitled Sequential Memory Access that Can Have Circuit Area Reduced; U.S. Pat. No. 5,612,926, entitled Sequential Access Memory; U.S. Pat. No. 5,699,087, entitled Sequential Access Memories, Systems and Methods; U.S. Pat. No. 5,848,015, entitled Bitline Precharge Halt Access Mode for Low Power Operation of a Memory Device; U.S. Pat. No. 7,477,570, entitled Sequential Access Memory with System and Method. U.S. Patent Application Publication No. 2009/0061795, entitled Wireless Architecture for 60 GHz, which is also incorporated herein by reference as an example and not by way of limitation, discloses an example system for wireless communication at millimeter-wave (mm-wave) frequencies around 60 GHz.


Particular embodiments provide a hybrid SAM-RAM device, which combines sequential memory-write access with random memory-read access. In particular embodiments, the memory write and memory read are two independent operations and may be performed independently from each other. In particular embodiments, the sequential memory-write access may be performed at a relatively high speed, while the random memory-read access may be performed at a relatively low speed. FIG. 1 illustrates the overview of an example memory array 100 suitable for implementing a hybrid SAM-RAM device.


In particular embodiments, memory array 100 is a 1024-word by 10-bit array. In particular embodiments, memory array 100 is a 1024-word by 10-bit 1-write 1-read register file. Such memory array may be used in various applications. For example, memory array 100 may be used in conjunction with Joint Test Action Group (JTAG) Test Access Port (TAP) circuit or other types of circuit to capture and store the outputs of an analog-to-digital converter (ADC) or other types of circuit. As another example, memory array 100 may be used in a WPAN radio module. In such an application, a relatively large quantity (e.g., 1 kB) of digitized data can be sequentially captured and stored in memory array 100 until being accessed by digital baseband circuitry, such as a digital signal processor (DSP).


In FIG. 1, the port symbols represent primary signal I/O and the 2.5-GHz baseband clock is labeled clk. The following nets in FIG. 1 are digital data input signals or digital control input signals received from an external circuit, such as, for example, an ADC or JTAG TAP circuit:

















Name
Type
Description









raddr[9:0]
ctrl
Read address, asynchronous



wd[14:0]
data
Write data



wenb
ctrl
Write enable signal










The following nets in FIG. 1 are digital observation bits to an external circuit:

















Name
Type
Description









full
ctrl
Full output signal



rd[9:0]
data
Output data










In particular embodiments, the IQ baseband signal is sampled and digitized by the ADCs at a baseband clock frequency of 2.5 GHz. The output of the ADC is written to memory array 100 for reading and processing by, for example, a DSP. As an example and not by way of limitation, the DSP may implement baseband training algorithms that could, for example, correct impairments (such as DC offset, phase noise, non-linearities, and IQ mismatch) that may be present in the transmitter, channel, or receiver.


In particular embodiments, at the baseband clock frequency the ADC samples and digitizes the baseband signal produced by the mm-wave front end circuits of a radio receiver. In particular embodiments, following assertion of wenb, 1024 contiguous ADC output samples are captured in the 1024×10-bit memory array. The memory array asserts its full output pin after sample 1024 has been captured. Then it can be read out, for example, through a JTAG TAP circuit into software-based baseband algorithms programmed in MATLAB. The following describes (as an example only and not by way of limitation) the operation of the memory array in particular embodiments:


The rising edge of wenb resets the write address pointer to the first word (after 2 clock cycles). Two cycles later, the register file's internal clock, clki, is enabled. Each 10-bit word is then written contiguously from address 0 to address 1023 at the rising edge of clki. wenb must remain high for the duration of write operations.


On clki rising edge 1024, no data is written into the array. Instead, output full is asserted and the memory array performs no more write operations until a rising edge of wenb is detected.


Read is asynchronous and performed through the control circuit (e.g., JTAG TAP). The read data, rd[9:0], outputs the data stored in the memory cell addressed by raddr[9:0].


In particular embodiments, memory array 100 illustrated in FIG. 1 may include a control and synchronization component 110. FIG. 2 illustrates an example control and synchronization circuit 200, which may be used as a suitable implementation for control and synchronization component 110 of memory array 100.


In particular embodiments, memory array 100 illustrated in FIG. 1 may include word line (WL)-select component 120. FIG. 3 illustrates an example Write-WL select circuit 300, which may be used as a suitable implementation for WL select component 120 of memory array 100.


In particular embodiments, memory array 100 illustrated in FIG. 1 may include a left cell array 130 and a right cell array 140. FIG. 4 illustrates an example memory cell schematic. In particular embodiments, memory cells, such as the one illustrated in FIG. 4, may be incorporated in memory array 100 to form left cell array 130 and right cell array 140. FIG. 5 illustrates an example floor plan of memory array 100 illustrated in FIG. 1. FIG. 6 illustrates an example timing diagram 600 of memory 100 illustrated in FIG. 1, which illustrates the start of a write sequence. Although cell addresses are shown in timing diagram 600 as incrementing from 0 to 1023, particular embodiments may use an 8-bit rotator to route each wd[9:0] bit to one of eight columns and a 128-bit shifter to increment through the 128 write word lines (WWL). The shifter increments the WWL every eight clock cycles. Each WWL thus remains high as the rotator increments the column from 0 to 7.



FIG. 7 illustrates an example timing diagram 700 of memory 100 illustrated in FIG. 1, which illustrates the completion of one write sequence and the start of another write sequence. In particular embodiments, the write sequence is initiated and allowed to progress until all 1024 memory cells are written. After the final cell is written (located on the 128th word line and in the 40th column), output full is asserted and all bit lines remain low. Some time later, write enable (wenb, supplied from an external control circuit, e.g., DSP) is lowered and then raised, resetting the register file write operation. This causes full to de-assert and a new write sequence to commence.



FIG. 8 illustrates an example RF receiver with an example memory array, such as memory array 100 illustrated in FIG. 1. In particular embodiments, the receiver block includes a mm-wave front end, a baseband clock generator, one or more analog-to-digital converters (ADCs), and a memory array to capture and store the outputs of the ADC(s), and a control circuit (“Ctrl Cir,” e.g., JTAG, DSP) that controls the memory array. The output of the ADC(s) is stored in the memory array and may be read in chunks of 1024 words for post-processing. The control circuit may also generate signals, based on the data captured and stored in the memory array, that control or adapt the circuits that make up the radio receiver and affect its performance. Such settings may include gain control, attenuation control, and phase correction, among others.



FIG. 9 illustrates an example method for sequential-write random-read memory. In particular embodiments, when assertion of a write-enable signal is detected at a memory array, as illustrated in step 902, data is written, sequentially and at a first clock frequency, to the memory array starting at a beginning of the memory array until the memory array is full, as illustrated in step 904. In particular embodiments, writing data to the memory array and reading data from the memory are two independent operations and may be performed independently from each other. In particular embodiments, data may be read from the memory array asynchronously and at a second clock frequency based on read addresses received at the memory array, as illustrated in step 906. In particular embodiments, the second frequency at which the data is read from the memory array may be slower than the first frequency at which the data is written to the memory array.


Although this disclosure describes and illustrates particular steps of the method of FIG. 9 as occurring in a particular order, this disclosure contemplates any suitable steps of the method of FIG. 9 occurring in any suitable order. Moreover, although this disclosure describes and illustrates particular components carrying out particular steps of the method of FIG. 9, this disclosure contemplates any suitable components carrying out any suitable steps of the method of FIG. 9.


Particular embodiments may reduce power consumption and area occupation by memory devices, compared with conventional SAM devices. In particular embodiments, these advantages are a consequence, at least in part, of disabling the memory array's clock once all memory locations have been written to—i.e., once the array is full and the array asserts the full signal. This may be seen in timing diagrams 600 and 700 illustrated in FIGS. 6 and 7. In these embodiments, the clock signal is gated with full, disabling it once full has been asserted. By gating the clock in this manner, power consumption may drop to almost zero until a new write request from an external circuit (e.g., DSP) is received. Moreover, if the radio receiver's training algorithm requires only sporadic writes into the memory array, power consumption may remain at almost zero for long periods. Further, if the baseband circuit (which may be a DSP) operates at a clock frequency that is much lower than that of the system clock, as is typical, read operations will require more time to complete than will write operations. Accordingly, the majority of a complete write-then-read operation may be spent reading the data. Because read operations consume less power than write operations, the memory device may consume less power than a memory device that provides sequential read access. As an example and not by way of limitation, assume the system clock operates at 2.5 GHz and the DSP clock sixteen times slower, or 156 MHz. The 1-kWord memory array will fill after 410 ns (1024 cycles of the 2.5-GHz clock), at which point the device will disable its clock and consume virtually zero power. Then, the DSP will read the data, an operation that requires 6.55 μs (1024 cycles of the 156-MHz clock). Thus only the device's read circuitry consumes power for 94 percent of one write-then-read operation.


In particular embodiments, power consumption and chip area are reduced by the absence of sense amplifiers. Because the read operations are performed at a slower clock frequency than write operations, sense amplifiers are not required to resolve the logical value of the voltage issued onto an accessed read bit-line (RBL) within one cycle of the baseband clock. In particular embodiments, power consumption may be reduced by smaller pre-charge circuitry. Conventionally, a memory array's write bit-lines (WBLs) and RBLs are pre-charged to a known voltage level prior to a write or read operation. This may be performed by a pre-charge signal that is activated every clock cycle or at a reduced rate. In contrast, in particular embodiments, no pre-charge is required for read operations, because the baseband circuit (which may be a DSP) operates at a clock frequency much slower than the system clock. As a result, the RBLs need not be pre-charged, saving power and area.


For write operations, particular embodiments take advantage of the nature of the memory device's sequential access. When write operations are performed, a particular column of storage cells in the memory array will be accessed only once per row of storage cells (every eight clock cycles in particular embodiments). This leaves a number of clock cycles (seven in particular embodiments) for the WBL of that column to return to a known state prior to the start of the next write operation on that column—i.e., when writing into the next row. Because the voltages of the WBLs have seven clock cycles by which to settle, the pre-charge circuitry can be smaller, and thus consume less power, than it would if the WBLs were pre-charged every clock cycle. In particular embodiments, read and write operations are independent of each other (random and sequential, respectively), which may allow read operations to commence before write operations complete, according to particular needs.


Herein, reference to a memory array or memory device encompasses one or more tangible computer-readable storage media possessing structure. As an example and not by way of limitation, a memory array or memory device may include or be a part of a semiconductor-based or other integrated circuit (IC) (such, as for example, a field-programmable gate array (FPGA) or an application-specific IC (ASIC)), a hard disk, an HDD, a hybrid hard drive (HHD), an optical disc, an optical disc drive (ODD), a magneto-optical disc, a magneto-optical drive, a floppy disk, a floppy disk drive (FDD), magnetic tape, a holographic storage medium, a solid-state drive (SSD), a RAM-drive, a SECURE DIGITAL card, a SECURE DIGITAL drive, or another suitable computer-readable storage medium or a combination of two or more of these, where appropriate. Herein, reference to a memory array or memory device excludes any medium that is not eligible for patent protection under 35 U.S.C. §101. Herein, reference to a memory array or memory device excludes transitory forms of signal transmission (such as a propagating electrical or electromagnetic signal per se) to the extent that they are not eligible for patent protection under 35 U.S.C. §101.


This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend.

Claims
  • 1. A method comprising, by one or more computing devices: in response to assertion of a write-enable signal at a memory array, sequentially and at a first clock frequency writing data to the memory array starting at a beginning of the memory array until the memory array is full; andindependent of the writing of data to the memory array, asynchronously and at a second clock frequency that is slower than the first clock frequency reading data from the memory array based on read addresses received at the memory array.
  • 2. The method of claim 1, wherein the memory array is an n-word by m-bit 1-write 1-read register file, wherein n and m are integers.
  • 3. The method of claim 1, wherein: the memory array comprises a plurality of contiguous words; andsequentially writing data to the memory array starting at a beginning of the memory array comprises writing the data to the words of the memory array in order from a first one of the words to a last one of the words.
  • 4. The method of claim 1, wherein the write-enable signal comprises a control bit to the memory array.
  • 5. The method of claim 1, wherein the read addresses comprise control bits to the memory array.
  • 6. The method of claim 1, wherein data written to the memory array comprises contiguous data produced by an external circuit.
  • 7. The method of claim 6, wherein the data written to the memory array is stored in the array for subsequent processing by another external circuit.
  • 8. The method of claim 7, wherein the other external circuit supplies the read addresses to the memory array to read data from the memory array.
  • 9. The method of claim 8, wherein the reading of data from the memory array commences after the memory array is full.
  • 10. The method of claim 1, further comprising disabling an internal clock of the memory array when the memory array is full and asserting an output signal indicating that the memory array is full until reassertion of the write-enable signal.
  • 11. The method of claim 10, wherein disabling the internal clock at least in part causes the memory array to consume substantially zero power.
  • 12. A memory device configured to: in response to assertion of a write-enable signal at a memory array, sequentially and at a first clock frequency write data to the memory array starting at a beginning of the memory array until the memory array is full; andindependent of the writing of data to the memory array, asynchronously and at a second clock frequency that is slower than the first clock frequency read data from the memory array based on read addresses received at the memory array.
  • 13. The memory device of claim 12, wherein the memory array is an n-word by m-bit 1-write 1-read register file, wherein n and m are integers.
  • 14. The memory device of claim 12, wherein: the memory array comprises a plurality of contiguous words; andsequentially writing data to the memory array starting at a beginning of the memory array comprises writing the data to the words of the memory array in order from a first one of the words to a last one of the words.
  • 15. The memory device of claim 12, wherein the write-enable signal comprises a control bit to the memory array.
  • 16. The memory device of claim 12, wherein the read addresses comprise control bits to the memory array.
  • 17. The memory device of claim 12, wherein data written to the memory array comprises contiguous data produced by an external circuit.
  • 18. The memory device of claim 17, wherein the data written to the memory array is stored in the array for subsequent processing by another external circuit.
  • 19. The memory device of claim 18, wherein the other external circuit supplies the read addresses to the memory array to read data from the memory array.
  • 20. The memory device of claim 19, wherein the reading of data from the memory array commences after the memory array is full.
  • 21. The memory device of claim 12, further configured to disable an internal clock of the memory array when the memory array is full and assert an output signal indicating that the memory array is full until reassertion of the write-enable signal.
  • 22. The memory device of claim 21, wherein disabling the internal clock at least in part causes the memory array to consume substantially zero power.