1. Field of the Invention
Embodiments of the invention relate to a code driver having a codeword source that is designed to provide a sequence of n-digit code words, each in the form of n parallel code characters. An application of the invention is a memory controller that contains the means for sending instruction and address information in addition to write data to a memory chip.
2. Description of the Related Art
In many cases, communication between electric circuit arrangements, e.g., between devices within a module or between different components of a system, occurs over a plurality of parallel lines. This allows digital coding of individual messages in parallel format, where each message is represented by a pattern of discrete and uniquely discriminatable signal states or levels on a plurality of lines. If “n” is the number of lines involved, then each pattern forms an n-digit “codeword” (also known as a “symbol”), where each line transfers one “character” of the codeword. The character repertoire “p” and hence the information value of a character equals the number of possible (discriminatable) signal states, and the information value of the whole codeword equals pn. The p different possible signal states hence represent the p different digit values of a number system to base p e.g., the binary or logic values “0” and “1” of a binary number system in which p=2.
In order to separate consecutive codewords cleanly from each other and synchronize character transmission during continuous communication, the codeword sequence is usually generated and transmitted under clock control i.e., in each clock period, all n characters of an n-digit codeword are generated synchronously from a codeword source within the communications partner currently transmitting, and appear at n terminals of this source. Thus, a continuous sequence of n-digit codewords appears at the n source terminals throughout the transmit mode.
The larger the number of digits or “width” of the parallel-coded codewords and the higher the clock frequency, the greater the power used by the code driver. For each character to be transmitted, transmit power is consumed in order to take the electrical state of the transmit line concerned, right up to the receiver, to the level that reproduces uniquely the given character value. This power consumption is particularly large for each character change, because the charge may be transferred against the line reactance (usually mainly capacitive). The resulting high power consumption caused by the modulation of the transmit drivers causes the temperature to rise and the supply source to be depleted prematurely in the case of a battery or cell power supply.
One embodiment of the invention provides reduced power consumption of a code driver of the type described above without reducing the number of digits of the codewords or the transmit speed.
One embodiment of the invention is implemented in a code driver containing a codeword source, which has n>1 source terminals and is designed to output at these terminals a sequence of n-digit codewords, each in the form of n parallel code characters, where n parallel transmission paths are provided between the n source terminals and n transmit terminals for sending the message represented by the codewords to a receiver. According to the invention, a selection device is also provided, which indicates explicitly for each codeword which of the n digits of the codeword concerned are relevant to the decoding of the message in the receiver, and which, dependent on this explicit indication, activates only those of the n transmission paths that are assigned to the relevant digits of the codeword.
Embodiments of the invention exploit the fact that not all the characters of the n-digit codeword are always relevant to the unique interpretation of a message by the receiver. Thus, it is often useful to assign a specific purpose in the receiver to selected subsets or groups of the lines within the n-line communication link and hence to selected digits of the n-digit codeword. It also happens that a message, which is assigned to a specific purpose and hence to a specific group of codeword digits, depending on its relevance, is either sufficient on its own or else requires an additional message that is accommodated in other digits of the codeword. In the latter case, the receiver takes account of the characters contained in these other digits, while in the former case it may ignore them (“don't care”).
For example, a first group of codeword digits can be assigned to the purpose of providing instructions for setting and holding one of a plurality of fundamental states of the receiver e.g., “idle state”, “configuration state” or “operating state”. A second group can be assigned to the purpose of supplying a message that defines specific parameters for the fundamental state to be set at that time e.g., the configuration setting in the case of the configuration state, or the operating speed setting in the case of the operating state. On the other hand, no further message elements are needed in conjunction with the “idle state” instruction; the characters of the second group are therefore irrelevant in this case, but are relevant in conjunction with the other two instructions. Furthermore, differences can also exist between these two instructions in terms of the number of characters that are needed to represent the respective parameters. For example, if the second group contains twelve digits, the configuration setting requires twelve characters, and if the operating speed setting requires just two characters, then ten characters of the second group are irrelevant in conjunction with the “operating state” instruction.
Put in general terms, the characters within selected groups of the n codeword digits can represent in full a message to be decoded or just a part of the whole message, and the respective pattern of these characters also implicitly (inherently) contains information as to whether and which of the remaining codeword digits are relevant to decoding the whole message and hence are not ignored. Thus, an explicit representation of this implicit “relevancy” information may be provided in the code driver to inhibit the forwarding of the currently “irrelevant” characters of the codeword supplied by the code source depending on this information.
Thus, embodiments of the invention prevent modulation of the transmit drivers by the currently “irrelevant” characters of a codeword that can be ignored during decoding in the receiver, thereby saving transmit power.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
As described above, embodiments of the invention may be utilized in a memory controller where situations in which generated code characters can be ignored are very common. Thus, the example of the control-signal coding of a memory controller is used below to explain in greater detail the principle and particular embodiments of the invention with reference to drawings.
The actual chip to be controlled in each case is not shown in the figure. In the example described here, the controller 1 is designed for communication with one or more synchronous dynamic RAM (SDRAM) memory chips of standard design, each integrated on a separate chip and containing a plurality of banks, each comprising a multiplicity of binary data storage locations that form in each bank a matrix of rows and columns. It shall be assumed for description purposes herein that the or each memory chip is of a size and organization such that two bank address bits, sixteen row address bits and eleven column address bits are used to select the storage locations for writing or reading data in a memory chip. In addition, it shall be assumed that (as is standard practice in typical SDRAMs) the row and column addresses are sent sequentially in time from the controller to the memory chip (first the row address and then the column address).
In addition to the address bits mentioned, the memory chip may require additional control signals, namely “instructions” for setting different operating states and for controlling operating procedures. Like the addresses, these instructions are generated in binary coded form. The instruction bits and the address bits are sent from the controller 1 in parallel format via an assigned bundle of connecting lines to the memory chip. Generation and transmission of the control signals are synchronized by a common clock signal CLK.
The “contents” (character value) of the bits for the addresses and instructions, i.e., the respective binary value “0” or “1”, are updated within the controller 1 in each CLK clock period, so that with every clock pulse a special combination of n characters is generated, where n is the total number of instruction and address bits. This character combination thus forms in total an n-digit codeword in parallel format, and the device that generates the consecutive codewords thus constitutes a code source having n separate source terminals, one for each bit position of the codeword. The code source is shown in
The instruction and address coding scheme used by the code source 10 in the example described here is the same as that currently in common use for controlling SDRAMs, and is shown in table form in the top section of
A first bit position CS (“Chip Select”) provides the instruction for the selection/deselection of the memory chip, where “1” means selection (operating state) and “0” deselection (idle state). Three additional bit positions, conventionally labeled (for historical reasons) as RAS, CAS and WE, are used for formulating eight (=23) operating instructions. Two further bit positions BA0 and BA1 provide the address for the bank addressing at the memory chip, and sixteen additional bit positions A0 to A15 are provided for the row and column addressing. The full set of all sixteen address bits A0:A15 (the colon “:” stands for “to”) is used to formulate the row address, while eleven bits are sufficient to formulate the column address, as specified earlier in the document. Since simultaneous transmission of row address and column address is not intended, a subset of the bit positions A0:15 can also be used advantageously for the column address; in the present example these are the eleven bit positions A0:10.
In the n-row codeword table of
DES (Deselect) expressed by “0” in the bit position CS, i.e.
CS=0
instructs deselection (“no operation”). In this case, the contents of all other bit positions of the codeword are immaterial; these contents are consequently irrelevant and may be ignored. This is symbolized in the table by the entry “X” in the appropriate boxes.
MRS (Mode Register Set), expressed by
CS=1
RAS=1
CAS=1
WE=1
instructs the setting of operating parameters of the memory chip during an initialization phase. The information defining which parameters shall be set to which values is coded in the address bit positions B1, B2 and A0:15, because for the MRS instruction no storage locations are addressed. The contents (“0” or “1”) of these bit positions are thus relevant and not ignored, which is symbolized by the entry “!” in the appropriate boxes.
ARF (Autorefresh), expressed by
CS=1
RAS=1
CAS=1
WE=0
instructs the automatic refreshing of all storage locations in the memory chip. No addressing is required for this. Thus the contents of all address bit positions B1, B2 and A0:15 are irrelevant in this case (“X”).
ACT (Activate), expressed by
CS=1
RAS=1
CAS=0
WE=0
instructs the activation of a selected storage-location row in the memory chip for a write or read operation by applying an activation potential to the appropriate row-selection line, where this potential continues to be applied until a close instruction (PRE, see below) is given. All the address bits BA0, BA1 and A0:15 are required here for selecting the row; The contents of the associated bit positions are therefore relevant and not ignored (“!”).
WRD (Write Data), expressed by
CS=1
RAS=0
CAS=1
WE=1
instructs the writing of data in selected locations of the activated row by opening (make conducting) data paths for transferring the data bits applied to the data terminals of the chip to the locations concerned. In this case the address bits BA0, BA1 for selecting the memory bank and the eleven address bits A0:A10 for column selection are used for selecting the locations. Thus the contents of the associated bit positions are relevant and are not ignored (“!”). The contents of the remaining address bits A11:A15 are irrelevant (“X”).
RDD (Read Data), expressed by
CS=1
RAS=0
CAS=1
WE=0
instructs the reading of data from selected locations of the activated row by opening (make conducting) data paths for transferring the data from the locations concerned to the data terminals of the chip. In this case the address bits BA0, BA1 for selecting the memory bank and the eleven address bits A0:A10 for column selection are used for selecting the locations; Thus the contents of the associated bit positions are relevant and are not ignored (“!”). The contents of the remaining address bits A11:A15 are irrelevant (“X”).
PRE (Precharge), expressed by
CS=1
RAS=1
CAS=0
WE=1
and additionally
A10=0
instructs the “closing” of a bank, i.e., termination of the row activation, initiated with the instruction ACT, by applying a deactivation potential (“precharge” potential) to all row-selection lines of the bank selected with ACT. In this case only the bank address bits BA0, BA1 are relevant and are not ignored (“!”). The contents of the address bits A0:A15 are irrelevant (“X”).
If all the banks are to be instructed to close, then A10 can be set to “1” instead of “0” for the instruction PRE. BA0 and BA1 are irrelevant for this option. With the instruction PRE, any of the other address bits A0:A15 could also be used instead of A10.
BST (Burst Stop), expressed by
CS=1
RAS=0
CAS=0
WE=1
instructs the termination of a write or read cycle in progress. No specific addressing is required for this. Thus the contents of all address bit positions B1, B2 and A0:A15 are irrelevant in this case (“X”).
NOP (No Operation), expressed by
CS=1
RAS=0
CAS=0
WE=0
instructs that there is to be no change in the prevailing operating state. The contents of all other bit positions B1, B2 and A0:A15 are thus irrelevant in this case (“X”).
It is in the nature of a coder to output, while it is in operation, within each clock period and for each bit position of a codeword, a defined character, i.e., either “0” or “1” in the case of a binary coder, from which the codewords output by the codeword source 10 ultimately originate (the codeword source 10 can itself even be the n-bit coder). As mentioned above, a certain amount of energy is required to transmit each character from the transmitter terminals Y; this energy is considerable for each change in the character content.
In order to reduce the power consumption of the controller 1 (code driver), embodiment of the invention ensure that little transmit power is consumed for those characters that are output by the codeword source 10 according to the coding specification, but that are irrelevant in the memory chip (receiver) for interpreting the information contained in the codeword. Expressed the other way round, embodiments ensure that only the currently relevant characters modulate the transmit terminals Y.
For this purpose, a selection device 30 is provided in the controller 1 that ensures that the transmission paths 20 between the source terminals X of the codeword source 10 and the transmit terminals Y are selectively active or inactive for transmit modulation depending on whether the contents of the bit (character) assigned to the respectively assigned source terminal is relevant or irrelevant to the memory chip. The selection device 30 has a plurality of parallel output terminals, which are connected in a special pattern to switching signal inputs s of the transmission paths 20, and each output is a “switching bit” S, which activates or deactivates the transmission path 20 concerned depending on the binary value of the bit. The binary value “1” is intended to set the “active” state, and the binary value “0” is intended to set the “inactive” state.
In the example described here, the selection device 30 responds to bits from the X-terminals. It is basically a look-up table e.g., in the form of a read only memory (ROM), which receives as an address the bits of the source codewords at a plurality of address inputs, and for each address outputs a unique value combination for the switching bits S.
In one embodiment, a ROM suitable for the function of the selection device could have n address inputs and n switching-bit outputs S, and be designed so that it outputs in the switching bits S, for each pattern of the n source-codeword bits X, exactly that binary pattern that contains a “1” at the digits corresponding to the relevant bits of the X pattern and a “0” at the digits corresponding to the irrelevant bits of the X pattern. Such a ROM may have n selectively addressable memory locations each having n binary storage locations. In the present case of n=22, a ROM matrix having 484 binary storage locations may be provided. The ROM could be designed as a programmable ROM (“PROM”), which would have the advantage that it can be adapted to suit every type of coding scheme of the codewords and hence every type of instruction structure of a memory chip to be controlled.
In one embodiment, the selection device may have a simpler design, however, if one specializes its design by taking account of certain individual features of the specific coding scheme applied to the instruction and address bits used in the receiver. For instance, in the coding scheme chosen as the example here, one can see from
In the case illustrated, K contains the k=5 codeword bits CS, RAS, CAS, WE, A10. The number of groups is g=6. Consequently, just a 6-digit “switching-bit word” comprising the switching bits S1 to S6, each of which is assigned to one of the g groups G1 to G6, is sufficient for the selective activation of the transmission paths 20. The division of the n codeword bits into six groups G1 to G6 is indicated on the left-hand side in
A first group G1 contains the ten bits A0:9, which are relevant for the instructions MRS, ACT, WRD, and RDD. Thus, for the switching bit S1 that activates the transmission paths of the bit group A0:9 by its binary value “1”, the following logic applies:
S1=1, if: (MRS or ACT or WRD or RDD).
Expressed as a table by codeword bits of the subset K defined above:
A second group G2 contains the single bit A10, which is only relevant for the instructions MRS, ACT, WRD, RDD, and PRE. Thus, the following logic applies to the switching bit S2
S2=1, if: (MRS or ACT or WRD or RDD or PRE).
Expressed as a table by codeword bits of the subset K defined above:
A third group G3 contains the five bits A11:A15, which are only relevant for the instructions MRS and ACT. Thus, the following logic applies to the switching bit S3
S3=1, if: (MRS or ACT).
Expressed as a table by codeword bits of the subset K defined above:
A fourth group G4 contains the two bits BA0:1, which are only relevant for the instructions MRS, ACT, WRD, RDD, and PRE. Thus the following logic applies to the switching bit S4
S4=1, if: (MRS or ACT or WRD or RDD or PRE with A10=0).
Expressed as a table by codeword bits of the subset K defined above:
A fifth group G5 contains the three bits RAS, CAS, WE, which are relevant for the instructions MRS, ARF, ACT, WRD, RDD, PRE, BST, NOP, i.e., for all instructions except for DES. Thus the following logic applies to the switching bit S5
S5=1, if: (MRS or ARF or ACT or WRD or RDD or PRE or BST or NOP); or if: (not DES).
Expressed as a table by codeword bits of the subset K defined above:
A sixth group G6 contains the single bit CS, which is relevant for all instructions. The switching bit S6 is therefore always “1”.
The binary values of the switching bits S1:S6 for the different instructions are entered in the lower section of the table in
The selection device 30 shown in
Thus, one may not utilize any switching device at all in the transmission path 20 of the codeword bit CS for selective deactivation, because the bit CS is relevant, and so the path may remain active. In one embodiment, however, all transmission paths may have the same design in order to keep the delays equal and thus ensure the synchronicity of the transmission. The transmission path 20a shown in
The embodiment 20b of the transmission paths 20 shown in
In order to take into account delay differences between the codeword bits and the clock signal CLK, and also to ensure the correct phase relation between the codeword bits and the clock signal CLK in the transmission paths 20, equalization delays may be incorporated, symbolized by the block 50 in
The code driver described above with reference to the drawing figures, which is designed for use in a memory controller having a specific instruction structure, is, as stated, only an example of a possible implementation form of the invention. The principles described may also be transferred directly to other instruction structures by designing or programming the selection device to implement the appropriate logic function for the particular case. Since the instruction structure itself implicitly contains the information as to which codeword bits are relevant to which instruction, the selection device can also be designed so that it derives the switching bits S for the selective activation of the transmission paths 20 from the instructions yet to be coded, i.e., at a point prior to the codeword source 10.
In addition, the invention is not restricted to use in memory controllers, but can be applied wherever sequences of messages as sequences of codewords of fixed number of digits n are to be sent to a receiver that does not always use the contents of all n codeword digits in order to “interpret” a message. In addition, the invention is not restricted to codewords having 2-valued (binary) characters. The codeword characters can also come from a repertoire of more than two character values. The transmit-modulation power consumption is also reduced in this case if no modulation takes place for those codeword digits irrelevant at a given time.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
| Number | Date | Country | Kind |
|---|---|---|---|
| 10 2004 041 331.2 | Aug 2004 | DE | national |
This application claims foreign priority benefits under 35 U.S.C. §119 to co-pending German patent application number DE 10 2004 041 331.2, filed 26 Aug. 2004. This related patent application is herein incorporated by reference in its entirety.