The present invention relates generally to a method for digital communications, and more particularly to a method for controlling the burst length of a data transmission.
The transmission of a burst of data can be an effective way to increase the communications efficiency of a communications system. The transmission of a burst of data rather than a single unit of data can increase efficiency by increasing the amount of data transmitted for an approximately equal amount of communications overhead. Communications overhead may include set up messages or signals and tear down messages or signals along with latency associated with the messages or signals. For example, sixteen (16) units of data can be transmitted using substantially the same amount of communications overhead used to transmit a single unit of data. The communications efficiency can be further increased by fixing the length of the burst of data being transmitted. The fixed length burst can increase efficiency since it is not necessary to specify the length of the transmission burst, further reducing communications overhead.
However, the communications system, be it a network of computers connected via a communications network or a computer (or digital device) that is reading and writing data to a local memory, may occasionally wish to transmit less data than what is transmitted using a single fixed length burst transmission. One way to transmit data when there is less data to transmit than what is required by the fixed length burst transmission is to revert to the technique of transmitting data in single units. The use of the single unit data transmissions can permit the transmission of any arbitrary number of data units.
Another technique that can be used to transmit less data than what is required by the fixed length burst transmission is to transmit what is desired and then mask out any remaining data units. This technique is commonly used in memory systems. For example, in the double data rate (DDR) and double data rate two (DDR2) synchronous dynamic random access memory (SDRAM) technical standards, as specified in technical standards entitled: JEDEC Standard “Double Data Rate (DDR) SDRAM Specification—JESD79D” (DDR SDRAM) and “DDR2 SDRAM Specification—JESD79-2,” (DDR2 SDRAM), a pin on the memory module referred to as the data mask (DM) pin can be used to mask out portions of the data being exchanged.
Yet another technique that is used in certain memory systems is to terminate a fixed length burst data read exchange using a burst terminate command. A burst terminate command can be issued to terminate a fixed length burst data read exchange.
One disadvantage of the prior art is that the use of single data unit transmissions incurs high communications overhead and can greatly reduce communications efficiency.
A second disadvantage of the prior art is that the use of additional pins (such as the DM pin) can increase the overall cost of the device since a significant number of additional pins may be required.
Yet another disadvantage of the prior art is that while the use of the DM pin will stop the transfer of data after the transmission of the last desired data unit, the communications bus can still be occupied until the entire fixed length burst is transmitted. This can lead to an under utilized and therefore inefficient communications bus.
Another disadvantage of the prior art is that the use of a command to terminate the fixed length burst data read exchange incurs a fixed latency. Therefore, the terminate command will not work properly with transmissions that finish transmitting data before the burst terminate command can execute.
Yet another disadvantage of the prior art is that the issuance of a command to terminate the fixed length burst data transfer exchange cannot occur at any time after the initial read or write command. There are situations, such as in a multi-bank memory system, wherein a command slot immediately following the fixed length burst data transfer exchange is already occupied by another command.
These and other problems are generally solved or circumvented, and technical advantages are generally achieved, by preferred embodiments of the present invention which provides a method for controlling the length of a burst transmission.
In accordance with a preferred embodiment of the present invention, a method for shortening a fixed burst length data transfer is provided. The method comprises initiating a fixed burst length data transfer, and issuing a burst terminate command specifying a desired length of the burst data transfer, wherein the burst terminate command is issued prior to the completion of the fixed burst length data transfer.
In accordance with another preferred embodiment of the present invention, a method for shortening fixed length burst transfers in a memory system is provided. The method comprises placing a burst transfer command on a command bus and a first memory address on an address bus, wherein the first memory address specifies a starting address of data to be transferred, and after a burst transfer starts, placing a burst terminate command on the command bus and a second memory address on the address bus, wherein the second memory address specifies a terminating address of data to be transferred.
An advantage of a preferred embodiment of the present invention is that an implementation of the present invention on a memory system does not require any additions or modifications to the hardware, such as the addition of input/output pins. This can ease the implementation of a preferred embodiment of the present invention on communications systems already deployed.
A further advantage of a preferred embodiment of the present invention is that the use of a preferred embodiment of the present invention does not incur a latency and the transmission of data can stop immediately after the last desired data unit is transmitted.
Yet another advantage of a preferred embodiment of the present invention is that after the last desired data unit is transmitted, the communications bus becomes free and can be used to transmit other data.
Another advantage of a preferred embodiment of the present invention is that the burst terminate command can be issued at any time after the issuance of the fixed length burst data transfer command. This can be advantageous in certain systems wherein command instruction slots immediately following the fixed length burst data transfer command are already occupied.
A further advantage of a preferred embodiment of the present invention is that the burst terminate command can terminate a fixed length burst data transfer after an even number or an odd number of data units transferred with equal efficiency.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiments disclosed may be readily utilized as a basis for modifying or designing other structures or processes for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
a and 1b are diagrams of an exemplary computer system and an exemplary communications network;
a and 2b are diagrams of a fixed length burst transfer of data to and from a memory in a computer system;
a and 5b are diagrams of the use of the burst terminate command to reduce the number of data units transferred in a fixed length burst transfer, according to a preferred embodiment of the present invention; and
a and 6b are diagrams of the use of the burst terminate command to reduce the number of data units transferred in a fixed length burst transfer in a memory system, according to a preferred embodiment of the present invention.
The making and using of the presently preferred embodiments are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
The present invention will be described with respect to preferred embodiments in a specific context, namely a memory system in a digital device that is adherent to a SDRAM technical standard, such as DDR, DDR2, and subsequent standards such as DDR3, DDR4, and so forth. The invention may also be applied, however, to other memory systems for use in a digital device as well as communications networks wherein one digital device can put (write) data to another digital device or get (read) data from another digital device.
With reference now to
The processor 105 can access data stored in the memory 110 through read and write commands issued to a memory controller (not shown). The memory controller can interpret the commands of the processor 105 and perform the requested operation. For example, the processor 105 can provide a read command along with a memory address and the memory controller can perform the command and provide the processor 105 with the contents of the memory address.
The diagram shown in
One of the devices, such as the device 1155, can communicate with the other device, such as the device 2160, through commands to put and get data. The device 1155 can execute a command, such as the put command that can result in a message being passed to the device 2160. The message can contain the data being provided to the device 2160. The device 2160 can then take the data provided in the message and store it, perhaps in a position specified by the device 1155.
The configuration of the computer system 100 and the communications network 150 shown in
With reference now to
The diagram shown in
The diagram shown
The use of a fixed length burst transfer can help to increase efficiency by reducing overhead per data unit transferred. However, there can be instances when there is a desire to transfer data units that are fewer in number than what is transferred in the fixed length burst transfer. In these instances, it can be possible to use a data transfer that permits a variable number of data units or transfers a smaller number of data units than the number that is desiring transfer. For example, it can be possible to issue a data transfer of one data unit each a total of ten times to transfer ten data units. Alternatively, it can be possible to mask out part of a data transfer not transferring actual data. For example, the transfer of ten data units using a fixed length burst transfer of sixteen data units can be accomplished by masking out the six unused data units.
However, an occasion may arise wherein it may be desirous to stop a fixed length burst transmission after the fixed length burst transmission has been initiated. For example, an error may be detected that may result in the data being transferred being invalid, an interrupt may occur and need to be processed immediately resulting in an immediate need to transfer some data of its own, and so forth. Unfortunately, the technique of masking unused data units will keep the connection 115 (between the processor 105 and the memory 110) busy until the fixed length burst transmission is complete, even if all data units have been transmitted, while the use of small transfers can greatly reduce the efficiency of the data transmission.
With reference now to
Alternatively, the changing of the length of the burst transfer can be configured so that the change in the length of the burst will only apply to the burst transfer immediately following the burst length command. A disadvantage of the prior art technique is that an additional command needs to be supported by the computer system 100 or the communications network 150. Additionally, the additional command needs to be executed at least once for each burst transfer that is not of the standard length (the additional command needs to be executed twice for each burst transfer if the length does not automatically reset to the default value). Furthermore, the additional command does not resolve the situation wherein there may be a need to stop the burst transfer after it has been started.
In many computer systems and communications networks, there exists a command that can be used to terminate a fixed length burst transfer. This burst terminate command can typically be used to terminate a data transfer (be it resulting from a read/write or get/put command) once the command is executed. It can be possible to modify the burst terminate command to terminate a burst transfer after the completion of a transfer of a desired number of data units.
With reference now to
After the initiation of the data transfer (by either a read or a write command), a burst terminate command is executed with an intent of stopping the data transfer after six data units have been transferred. According to a preferred embodiment of the present invention, the burst terminate command can be issued with an argument specifying a number representing the address of the storage location where the burst transfer is to be stopped. For example, if the data transfer started with a storage location with an address of AX, then six data units transferred will be a storage location 409 with an address of AX+5, so the burst terminate command will be issued with an argument of AX+5. Alternatively, the burst terminate command can be issued with a number representing the number of data units to be transferred, in this example, the number is six (6). Other variations can be possible, for example, the argument of the burst terminate command can specify the address of the last storage location to be transferred or the address of the first storage location immediately following the last storage location to be transferred, the argument of the burst terminate command can specify the count of the data units to transfer or the count of the first data unit not transferred, and so forth.
With the argument of the burst terminate command being an address of AX+5, the burst transfer can transfer a series of data units from storage locations with address AX through AX+5. Then, the contents 411 of a storage location 411, which would have been the next data unit transferred, is not transferred, as are subsequent data units. As an example, in a memory system of the computer system 100 that is compliant to the JEDEC Technical Standard, “Double Data Rate (DDR) SDRAM Specification—JESD79D,” published January 2004, the burst terminate command “BST” is defined as CS#=L (CS—chip select), RAS#=H, CAS#=H, and WE#=L (RAS, CAS, and WE are command inputs that can be used to define a command being entered, depending upon the state of the command inputs) can be extended with the previously unused address bus (ADDR) can be used to specify an argument representing a stopping point of the burst transfer. Note that the # operator indicates negative true logic signals.
With reference now to
The flow diagram shown in
The flow diagram shown in
In certain configurations, such as in a computer memory system implementing double data rate transfers, it may be desirable to let a fixed length burst transfer continue until an even data unit is reached. This can permit an easier implementation of the address strobe signal. However, if it is desired that a fixed length burst transfer stop on an odd data unit, then the even data unit can be masked to provide the desired odd burst length.
With reference now to
The diagram shown in
Due to the three clock cycle latency of the read command, the data bus signal (the third set of traces 615) does not show the contents of the memory location AX until time T3 (the data bus (the fourth set of traces 620) shows the content 632 of memory location AX). Since the memory system is a double data rate memory system, half-way through a clock cycle beginning at time T3, the data bus signal and the data bus show the content 633 of memory location AX+1. After the content 634 of the memory location AX+3 (AY) has been transferred, the fixed length burst transfer is stopped.
The diagram shown in
Due to the two clock cycle latency of the write command, the data bus signal and the data bus (the seventh and eighth sets of traces 665 and 670) do not show the content 682 of the memory location AX until time T2. At a time that is at time T4, the data bus signal and the data bus (the seventh and eighth sets of traces 665 and 670, respectively) show the content 683 of the memory location AX+4 (AZ). This is the desired stopping point of the fixed length burst transfer. However, to maintain simplicity of strobe signal of the memory system, fixed length burst transfers are stopped after even data units. Therefore, the data bus signal and the data bus (the seventh and eighth sets of traces 665 and 670) show the content 684 of the memory location AX+5 (AZ+1). Note however that the content 684 of the memory location AX+5 has been masked (shown as a shaded region). Alternatively, the content 684 of the memory location AX+3 can simply be ignored by recipients of the fixed length burst transfer.
The burst terminate commands shown in
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.
Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.