The present invention relates to memory devices, and more particularly, to a timing control circuit and method for use in a synchronous memory module accessible through an asynchronous interface and related memory module.
Memory devices play a pivotal role in computer systems, serving as the cornerstone for storing and retrieving data that processors use to perform computations. The efficiency and performance of a computer system are significantly influenced by the ability of the memory devices to handle data transactions swiftly and reliably. Among various types of memory, dynamic random-access memory (DRAM) is extensively utilized due to its balance of speed and cost for a wide range of applications, from personal computing devices to sophisticated server systems.
Performance of a memory device is affected by its latency parameters, including CAS Latency (CL), row-to-column delay (tRCD), row pre-charge time (tRP) and row active time (tRAS), . . . , and so on. These latency parameters are essential metrics that define the responsiveness of a memory device to read and write requests. Hence, accessing high-speed memory effectively requires a precise timing control mechanism. Without accurate timing control, the data integrity might be compromised, leading to failed data transactions.
However, things will be different if the active state of the row-to-column delay end indication signal TRCDED occurs after the write latency count satisfaction indication signal WLCEN (i.e., an overlap condition). Please refer to
With this in mind, it is one object of the present invention to provide a timing control circuit and a timing control method for performing asynchronous time domain to synchronous time domain transfer in a synchronous memory module that is accessible by an asynchronous interface. In the embodiments of the present invention, the timing control circuit internally generates a tracking clock signal whose timing is dynamically adjusted according to various latencies in the memory module and adjust the timing of data to be written according to the tracking clock signal, such that any accessing operation can be correctly performed, without being affected by the timing of the external clock signal.
According to one embodiment, a timing control circuit for use in a memory module is provided. The timing control circuit comprising: a clock generation circuit and a data queue. The clock generation circuit is configured to generate one or more delayed versions of an external clock signal and select one of the external clock signal and the one or more delayed versions of the external clock signal to generate a tracking clock signal according to a write latency count satisfaction indication signal and a row-to-column delay end indication signal. The data queue is coupled to the clock generation circuit and configured to queue input data according to the external clock signal and generate an output data signal by de-queuing the queue data according to the tracking clock signal. Specifically, the output data signal and the tracking clock signal are utilized to perform a write operation within the memory module in response to an external write command.
According to one embodiment, a timing control method for use in a memory module is provided. The timing control method comprises: generating one or more delayed versions of an external clock signal; selecting one of the external clock signal and the one or more delayed versions of the external clock signal to generate a tracking clock signal according to a write latency count satisfaction indication signal and a row-to-column delay end indication signal; queuing input data according to the external clock signal; de-queuing the queue data to generate an output data signal according to the tracking clock signal; and performing a write operation within the memory module in response to an external write command according to the output data signal and the tracking clock signal.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present embodiments. It will be apparent, however, to one having ordinary skill in the art that the specific detail need not be employed to practice the present embodiments. In other instances, well-known materials or methods have not been described in detail in order to avoid obscuring the present embodiments.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment or example is included in at least one embodiment of the present embodiments. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable combinations and/or sub-combinations in one or more embodiments.
The timing control circuit 110 is configured to generate a tracking clock signal CK_TR according to an external clock signal CK sent by the external memory controller 50 based on a row-to-column delay indication signal TRCDED and a write latency count satisfaction signal WLCEN. In addition, the timing control circuit 110 is further configured to queue input data on an external data bus DQ<0:k> based on the timing of the external clock signal CK. In addition, the timing control circuit 110 is also configured to dequeue the queued input data to provide at least one output data signal on an output data bus GIO<0:k> based on the timing of the tracking clock signal CK_TR.
The column selection control circuit 120 is configured to generate a plurality of column selection signals YS0-YSj on a column selection signal bus YS<0:j> by decoding an address signal on a column address bus YA<0:i> based on the timing of the tracking clock signal CK_TR, where each of the column selection signals YS0-YSj is aligned with a clock cycle of the tracking clock signal CK_TR. In addition, each of the column selection signals YS0-YSj is configured to activate one of a plurality of columns (i.e., (j+1) columns) of the memory cell array 200, such that a bit line and a corresponding complementary bit line of an activated one of the columns can be read or written.
The DLSA 130 is configured to receive the output data signal from the timing control circuit 110 through the output data bus GIO<0:k> and accordingly convert the output data signal to differential data signals onto internal data buses MDQ<0:k> and MDQF<0:k> when handling a write command (indicated by a signal line WR). Moreover, the DLSA 130 is further configured to receive differential data signals on the internal data buses MDQ<0:k> and MDQF<0:k> and accordingly convert and amplify the differential data signals to generate a single-ended data signal when handling a read command (indicated by a signal line RD). The BLSA 140 is configured to receive the differential data signals on the internal data buses MDQ<0:k> and MDQF<0:k>, amplify the differential data signals and apply appropriate voltage on specific bit lines and corresponding complementary bit lines of the memory cell array 200 when handling a write command. In addition, the BLSA 140 is also configured to sense voltages on specific bit lines and corresponding complementary bit lines of the memory cell array 200 and accordingly amplify the sensed voltages to generate the differential data signals onto the internal data buses MDQ<0:k> and MDQF<0:k> when handling the read command.
Please refer to
At first, the clock generation circuit 115 determines whether an active state of the write latency count satisfaction indication signal WLCEN is after an active state of the row-to-column delay end indication signal TRCDED. If yes, the clock generation circuit 115 selects the external clock signal CK (i.e., the delay-free version CK_D<0>) to generate the tracking clock signal CK_TR; otherwise, the clock generation circuit 115 selects one of the delayed versions CK_D<1>-CK_D<8> of the external clock signal CK to generate the tracking clock signal CK_TR.
In the process of selecting one of the delayed versions CK_D<1>-CK_D<8> of the external clock signal CK to generate the tracking clock signal CK_TR, the clock generation circuit 115 is firstly configured to compare timings of the active state of the row-to-column delay end indication signal TRCDED with each of the delayed versions CK_D<1>-CK_D<8> of the external clock signal CK. By doing so, the clock generation circuit 115 could determine which one of the delayed versions CK_D<1>-CK_D<8> of the external clock signal CK has a rising edge closet to (active) transition of the row-to-column delay end indication signal TRCDED than any other ones of the delayed versions CK_D<1>-CK_D<8> of the external clock signal CK.
In the case of
With this regards, the timing control circuit 110 selects a delayed version of the external clock signal CK (according to the active transition of row-to-column delay end indication signal TRCDED) and accordingly generates the tracking clock signal CK_TR (according to the cycle number of the write latency count). Thus, all necessary column selection signals YS0-YS3 can be properly generated even if the external memory controller 50 ceases to provide the external clock signal CK. Moreover, data signals on the data bus GIO is provided from the data queue 117 according to the timing of the tracking clock signal CK_TR, which will perfectly be aligned with the column selection signals YS0-YS3. As such, the data D0-D3 can be properly written to the memory cell array 200.
In step S105, the flow waits for the row-to-column delay tRCD to elapse. Specifically, the timing of the row-to-column delay tRCD must commence only after the completion of the previously initiated self-refresh operation (i.e., after issuing the row activate command). In step S106, a row-to-column delay end indication signal TRCDED is set as active if the row-to-column delay tRCD has elapsed. On the other hand, the flow also advances to step S107 after step S102. In step S107, the flow waits for a write latency count WLC to be satisfied. Specifically, the counting of the write latency count WLC commence upon receiving the write command from the external memory controller 50. In step S108, a write latency count satisfaction indication signal WLCEN is set as active if the write latency count WLC has been satisfied.
Once the row-to-column delay end indication signal TRCDED and the write latency count satisfaction indication signal WLCEN are both set active, the flow proceeds to step S109. In step S109, it is determined whether the active state of the row-to-column delay end indication signal TRCDED is prior to the active state of the write latency count satisfaction indication signal WLCEN. If yes, the flow advances to step S110, in which the version CK_D<0> of the external clock signal CK without delay is selected as to generate the tracking clock signal CK_TR (by extracting its 5th-8th clock cycles of the version CK_D<0>).
On the other hand, if the active state of the row-to-column delay end indication signal TRCDED is not prior to the active state of the write latency count satisfaction indication signal WLCEN, the flow advances to step S111. In step S111, the tracking clock signal CK_TR will be generated by firstly selecting a delayed version of the external clock signal CK whose rising edge is closet to the active transition of the row-to-column delay end indication signal TRCDED than any other delayed versions of the external clock signal CK. Then, the tracking clock signal CK_TR is generated by extracting specific clock pulses of the selected delayed version of the external clock signal CK, starting from nth clock pulse of the selected delayed version of the external clock signal CK (where “n” is associated with the cycle number of the write latency count WLC). In step 112, a write operation will be performed on the memory cell array 200 according to the tracking clock signal CK_TR and an output data signal on the data bus GIO whose timing is determined by the tracking clock signal CK_TR.
While the foregoing descriptions of the embodiments of the present invention have been provided with examples primarily focused on performing write operations in response external write command, it should be understood that the invention is not limited to these examples. According to various embodiment of the present invention, the timing control circuit and method can be also applied to handling read commands. During handling a read command, the tracking clock signal CK_TR would be used to generate necessary column selection signals, thereby correctly read data from the memory cell array 200 according to the timing of the tracking clock signal CK_TR.
In conclusion, the timing control circuit and method of the present invention effectively address the issues caused by refresh collision (i.e., an internal refresh operation is being performed when receiving an external access command) or improper the write latency count setting (i.e., being set to short) by providing a tracking clock signal and an output data signal that is aligned with tracking clock signal in time to facilitating handling of the access commands. Compared to the conventional art, the read/write operation within the present invention does not rely on an external clock signal, which allows the read/write operation to be properly performed on the memory cell array even if the external memory controller cease to provide the external clock signal.
Embodiments in accordance with the present embodiments can be implemented as an apparatus, method, or computer program product. Accordingly, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects that can all generally be referred to herein as a “module” or “system.” Furthermore, the present embodiments may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium. In terms of hardware, the present invention can be accomplished by applying any of the following technologies or related combinations: an individual operation logic with logic gates capable of performing logic functions according to data signals, and an application specific integrated circuit (ASIC), a programmable gate array (PGA) or a field programmable gate array (FPGA) with a suitable combinational logic.
The flowchart and block diagrams in the flow diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It is also noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. These computer program instructions can be stored in a computer-readable medium that directs a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
This application claims the benefit of U.S. Provisional Application No. 63/607,063, filed on Dec. 6, 2023. The content of the application is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63607063 | Dec 2023 | US |