GB2239113A - Power saving in conputer systems - Google Patents
Power saving in conputer systems Download PDFInfo
- Publication number
- GB2239113A GB2239113A GB8928409A GB8928409A GB2239113A GB 2239113 A GB2239113 A GB 2239113A GB 8928409 A GB8928409 A GB 8928409A GB 8928409 A GB8928409 A GB 8928409A GB 2239113 A GB2239113 A GB 2239113A
- Authority
- GB
- United Kingdom
- Prior art keywords
- address
- computer system
- chip
- coding
- changed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/16—Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Control Of Ac Motors In General (AREA)
- Inverter Devices (AREA)
Abstract
A comptuer system having a principal CPU chip and a separte memory chip, wherein the principal CPU chip is address line encoded, for example by Gray coding, so that in use the address codes on the address bus are changed sequentially so that at each access step only one address code is changed. Information on the data bus may be analogously encoded.
Description
Title: Improvements in Computer SYstems Field of the Invention
This invention relates generally to computer systems and in particular to methods by which the principal CPU chip accesses other chips, more especially but not exclusively a separate or an external memory chip, within the system.
Background to the invention
The majority of computers currently in use have a Harvard or Von Neumann architecture. Both these architectures consist, essentially, of a central processing unit with memory for data and instructions. During the execution of a program both instructions and data are fetched from memory, although instructions tend to be the more common fetch operation. Most programs will typically consist of a non branching sequence of instructions followed by a branch (eg add two numbers together and branch on the result).
Recently the architecture of integrated computer systems has split into several divisions based upon how the instructions for the computer are organised. The most important divisions are Complicated Instruction Set
Computers (CISCs) and Reduced Instruction Set Computers (RISCs). Historically CISCS are older and their main characteristic is that their native instruction set is such that one instruction can perform several operations to achieve a complicated operation. This approach was satisfactory when machines were programmed at a fairly low level, but began to break down as compiler technology advanced. Under these circumstances it was noted that compilers hardly ever made use of the more complicated instructions and RISCs were introduced. RISC computers have a simple instruction set so that a compiler is able to make much better use of it.A consequence of the simpler instruction set is that more instructions are required for a given program than that required by a CISC program. This increases the rate at which instructions are fetched from memory and also increases the length of sequential instruction fetches between branches in the program.
In a highly integrated computer consisting of a CISC or
RISC chip constituting the principal CPU chip and external memory, the power consumption of the whole system Is dictated by the rate at which memory is accessed and how wide the memory buses are (the number of data and address bits). It is well known that power can be reduced by integrating the computer and the memory onto the same chip. This is because power does not have to be expended changing the state of address or data bus lines. The integration of memory onto the same chip as the computer generally also means that the computer can operate faster.
The amount of memory that can be integrated onto a chip is limited and for all but the simplest applications it is necessary to store programs and data in memory that is not on the same chip as the computer (principal chip). Under these circumstances any reduction in the rate at which instructions or data are accessed in memory will reduce the power requirement. Similarly if the number of lines (wires) that have to change between different accesses is reduced then the power requirement will also be reduced.
The Invention
According to one aspect of the invention, there is provided a method of accessing a separate chip from the principal CPU chip in a computer system, according to which the principal CPU chip is address line encoded so that, on the address bus and for at least one group of the address lines, the address codes are changed sequentially so that at each step only one address code is changed.
According to another aspect of the invention, there is provided a computer system having a principal CPU chip (computer) and at least one separate or external chip such as a memory chip, wherein, the principal CPU chip is address line encoded so that in use, on the address bus and for at least one group of the address lines, the address codes are changed sequentially so that at each step only one address code is changed.
In principle at least, the invention is also applicable to the accessing of data on the data bus, e.g., in a true
Harvard architecture system.
Thus, in accordance with the invention, it is proposed to encode the information transmitted on the buses (collections of wires from the computer) so that the number of wires changing between accesses and the rate at which accesses are performed is reduced. The technique can be applied to both address (where the information is in memory) and data (what the information is) lines of memory. The encoding used for addresses will be different to the encoding used for data because the manner in which the lines are used is different. The technique can be applied to both standard processors and custom designed processors, in order to reduce power consumption.
Address line encoding for RISC/CISC processors is exemplified later using Gray coding, but the invention is not limited to Gray coding. Gray coding is efficient because for sequential accesses only one address line transitions between each address change.
Different encodings may be applied, and in the limit the entire range can be analysed and an optimum coding scheme for a particular program devised. In that case the coding would be highly specific and may not lead to power reduction for other programs. In general it is likely that Gray coding will give the best reduction in average power consumption.
It is important to note that the address lines of the processor are being encoded to access memory, which implies that the data must be stored in the memory at encoded addresses. If the information is put there by the processor then because Gray coding is invertible and unique it will be able to access it without modification.
However, if the program is externally supplied, by a floppy disc or card, the program must be encoded before being presented to the processor.
The invention thus also extends to the combination with the computer system of an input device and a floppy disc or other magnetic storage device bearing a program which enables the principal CPU chip to perform sequential accessing on the address or data bus as aforesaid.
It is to be noted that Gray coding is not directly possible for a standard, off the shelf, processor because unencoded address lines come from the chip. However, if the processor has some memory on chip (whether ROM, RAM or cache memory) a small program can be devised to perform the coding In this case the processor would run the instructions more slowly than the customised case.
Since programs are controlled by the programmer and are fixed, once a program has been written it can be analysed to devise a coding scheme to reduce the number of transitions in a common sequence of instructions. This form of coding will normally necessitate a small amount of on chip memory for the decoding program.
A more radical approach is to analyse a large number of programs and devise a coding scheme for the native instruction bit patterns of the processor itself, so as to reduce the number of transitions between instructions and thereby achieve the objective of the invention - ie power reduction.
As previously mentioned, data line coding could provide power reduction as well, although it requires more work than address line encoding since data is controlled by the user and therefore "random", A system in accordance with the invention is exemplified in the following further description, making reference to the accompanying drawings, in which:
Figure 1 is a block diagram showing conventional computer architecture; and
Figure 2 is a block diagram showing a revised architecture employing address line encoding for power saving; and
Figure 3 is a block diagram showing a modification of the architecture of Figure 2.
Highly pipelined CPUs, RISC processors in particular, exhibit strong sequential (incrementing) address-line activity. Addresses are output binary coded conventionally and because the address-lines must be driven off-chip to all memory devices and some input/output peripherals (with fairly heavy capacitive loading normally), in systems where power or system noise is to be reduced, in accordance with the invention the addresses are coded to exploit the sequential characteristic in favour of reduced address line transitions over conventional binary coding.
Gray coding was devised in the late nineteenth century for use in telegraph systems. Gray coding in digital electronics design is synonymous with "reflected binary" counting. In a binary up-counter the count bit pattern is alternate O's and l's (010101010) whilst the Gray counter bit pattern has the 0 and 1 sequence then reflected the next two counts as 1 and 0 (01100110).
In this example of the invention, a fast coder is employed and a bit-reflecting Gray coding method is adopted whereby single XOR gate is used to gate every address line with the next higher address line (with the top address line left unmodified).
Example: 5-bit Address Coder
A[4:0] - XA[4:0]
5-bit binary and bit-reversed Gray-coded address pattern
For straight sequential address access a number is included in () brackets to indicate the number of capacitive loads that must be driven either high or low.
A net saving in loads driven is shown in [1 -brackets
Binary Gray 11100 10010 11101 10011 11110 10001 11111 10000 0 0 0 0 0 (5) 0 0 0 0 0 (1) [-4] 0 0 0 0 1 (1) 0 0 0 0 1 (1) 0 0 0 1 0 (2) 0 0 0 1 1 (1) [-1] 0 0 0 1 1 (1) 0 0 0 1 0 (1) 0 0 1 0 0 (3) 0 0 1 1 0 (1) [-2] 0 0 1 0 0 (3) 0 0 1 1 0 (1) [-2] 0 0 1 0 1 (1) 0 0 1 1 1 (1) 0 0 1 1 0 (2) 0 0 1 0 1 (1) [-1] o 0 1 1 1 (1) 0 0 1 0 0 (1) 0 1 0 0 0 (4) 0 1 1 0 0 (1) [-3] 0 1 0 0 1 (1) 0 1 1 0 1 (1) 0 1 0 1 0 (2) 0 1 1 1 1 (1) [-1] o 1 0 1 1 (1) 0 1 1 1 0 (1) 0 1 1 0 0 (3) 0 1 0 1 0 (1) [-2] 0 1 1 0 1 (1) 0 1 0 1 1 (1) 0 1 1 1 0 (2) 0 1 0 0 1 (1) [-1] 0 1 1 1 1 (1) 0 1 0 0 0 (1) 1 0 0 0 0 (5) 1 1 0 0 0 (1) [-4] 1 0 0 0 1 (1) 1 1 0 0 1 (1) 1 0 0 1 0 (2) 1 1 0 1 1 (1) [-1] 1 0 0 1 1 (1) 1 1 0 1 0 (1) 1 0 1 0 0 (3) 1 1 1 1 0 (1) [-2] 1 0 1 0 1 (1) 1 1 1 1 1 (1) 1 0 1 1 0 (2) 1 1 1 0 1 (1) [-1] 1 0 1 1 1 (1) 1 1 1 0 0 (1) 1 1 0 0 0 (4) 1 0 1 0 0 (1) [-3] 1 1 0 0 1 (1) 1 0 1 0 1 (1) 1 1 0 1 0 (2) 1 0 1 1 1 (1) [-1] 1 1 0 1 1 (1) 1 0 1 1 0 (1) 1 1 1 0 0 (3) 1 0 0 1 0 (1) [-2] 1 1 1 0 1 (1) 1 0 0 1 1 (1) 1 1 1 1 0 (2) 1 0 0 0 1 (1) [-1] 1 1 1 1 1 (1) 1 0 0 0 0 (1) 0 0 0 0 0 ==== 0 0 0 0 0 ===== ===== 0 0 0 0 1 (62) 0 0 0 0 1 (=32) [=-30] 00010 00011 00011 00010
It is to be noted that in the event that sequential cycling over 32 addresses is performed the number of capacitive loads driven, is virtually half the number of straight binary accesses, with a consequent near 50% saving in address driver power.
A good application of such Gray coding of address lines is in a paged memory system. Such a system, with a page size of 256 bytes for example, benefits from the coding of the low 8 address lines before the addresses are broadcast to the memory system.
The fast Gray-coding hardware tends to generate spikes from a synchronous binary count, so in practice addresses are re-latched and driven off-chip only when a coded address is stable.
Load and Store Multiple instructions (LDM/STM) within pages, as well as executable code with sequential runs, can all benefit from a system such as that exemplified above, with the potential saving of up to one half of the address driver power.
Instructions that perform multiple accesses to sequential locations, eg the Load and Store Multiple instructions (LDM/STM) on the Acorn RISC machine (ARM), as well as executable code with sequential access runs, can all benefit from a system such as that exemplified above, with the potential saving of up to one half of the address driver power.
It is also to be noted that, as far as volatile memory such as RAM is concerned, the same addresses are always used to write and read locations, so to a program the coding scheme is transparent, but pre-programmed devices such as ROM's will require code and data to be interleaved with the same Gray coding of addresses.
Means may be provided for switching off the Gray coder on the low address bits for external I/O peripherals.
For completness, Figure 1 shows the architecture of a conventional computer system and Figure 2 shows the modified architecture of a system in accordance with the invention. Both figures are self-explanatory and will be clear without further description. It should be mentioned, however, that the system of Figure 2 will generally include a data code decoder on the data bus leading to the CPU.
Claims (12)
1. A method of accessing a separate chip from the principal CPU chip in a computer system, according to which the principal CPU chip is address line encoded so that, on the address bus and for at least one group of the address lines, the address codes are changd sequentially so that at each access step only one address code is changed.
2. A method according to claim 1, according to which the information transmitted on the data bus is also encoded so that, for at least one group of the data lines, the information codes are changed sequentially so that at each access step only one information code is changed.
3. A computer system having a principal CPU chip and at least one separate or external chip, wherein the principal
CPU chip is address line encoded so that in use, on the address bus and for at least one group of the address lines, the address codes are changed sequentially so that at each access step only one address code is changed.
4. A computer system according to claim 3, wherein information transmitted on the data bus is also encoded so that, for at least one group of the information lines, the information codes are changed sequentially so that at each access step only one information code is changed.
5. A computer system according to claim 3 or claim 4, wherein the separate or external chip is a memory chip.
6. A computer system according to claim 3 or claim 4 or claim 5, in which the coding employed is Gray coding.
7. A computer system according to any of claims 3 to 6, in which the coding is optimised for a given program.
8. A computer system according to any of claims 3 to 6, in which the coding is optimised to suit the native instruction bit patterns of the processor.
9. A computer system according to any of claims 3 to 8, including an input device and a program storage device bearing a program which enables the principal CPU chip to perform sequential accessing on the address or data bus as aforesaid.
10. A computer system according to any of claims 3 to 9, in which the coding is performed by means of a coder on the address and/or data bus of the CPU chip.
11. A computer system according to any of claims 3 to 9, in which a program is entered into memory on the CPU chip to perform the coding.
12. A computer system substantially as hereinbefore described with reference to Figures 2 and 3 of the accompanying drawings.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB8928409A GB2239113B (en) | 1989-12-15 | 1989-12-15 | Power reduction in computer systems |
| PCT/GB1990/001817 WO1991009367A1 (en) | 1989-12-15 | 1990-11-23 | Improvements in computer systems |
| AU67476/90A AU6747690A (en) | 1989-12-15 | 1990-11-23 | Improvements in computer systems |
| JP3500212A JPH05502312A (en) | 1989-12-15 | 1990-11-23 | improvements in computer systems |
| EP19900917327 EP0505383A1 (en) | 1989-12-15 | 1990-11-23 | Improvements in computer systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB8928409A GB2239113B (en) | 1989-12-15 | 1989-12-15 | Power reduction in computer systems |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| GB8928409D0 GB8928409D0 (en) | 1990-02-21 |
| GB2239113A true GB2239113A (en) | 1991-06-19 |
| GB2239113B GB2239113B (en) | 1994-02-23 |
Family
ID=10668027
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB8928409A Expired - Fee Related GB2239113B (en) | 1989-12-15 | 1989-12-15 | Power reduction in computer systems |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0505383A1 (en) |
| JP (1) | JPH05502312A (en) |
| AU (1) | AU6747690A (en) |
| GB (1) | GB2239113B (en) |
| WO (1) | WO1991009367A1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0675447A1 (en) * | 1994-03-29 | 1995-10-04 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
| EP0713173A1 (en) * | 1994-09-30 | 1996-05-22 | Texas Instruments Incorporated | Data processing system |
| US6134168A (en) * | 1997-04-25 | 2000-10-17 | Texas Instruments Incorporated | Circuit and method for internal refresh counter |
| GB2366634A (en) * | 2000-09-11 | 2002-03-13 | Lucent Technologies Inc | Gray code program counter and address compiler |
| GB2375625A (en) * | 2001-05-18 | 2002-11-20 | At & T Lab Cambridge Ltd | Microprocessors with improved power efficiency |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6061276A (en) | 1997-02-07 | 2000-05-09 | Fujitsu Limited | Semiconductor memory device and a semiconductor integrated circuit |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4556960A (en) * | 1982-12-13 | 1985-12-03 | Sperry Corporation | Address sequencer for overwrite avoidance |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4532587A (en) * | 1981-08-26 | 1985-07-30 | Texas Instruments Incorporated | Single chip processor connected to an external memory chip |
-
1989
- 1989-12-15 GB GB8928409A patent/GB2239113B/en not_active Expired - Fee Related
-
1990
- 1990-11-23 WO PCT/GB1990/001817 patent/WO1991009367A1/en not_active Ceased
- 1990-11-23 AU AU67476/90A patent/AU6747690A/en not_active Abandoned
- 1990-11-23 EP EP19900917327 patent/EP0505383A1/en not_active Withdrawn
- 1990-11-23 JP JP3500212A patent/JPH05502312A/en active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4556960A (en) * | 1982-12-13 | 1985-12-03 | Sperry Corporation | Address sequencer for overwrite avoidance |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0675447A1 (en) * | 1994-03-29 | 1995-10-04 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
| US5887033A (en) * | 1994-03-29 | 1999-03-23 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
| EP0713173A1 (en) * | 1994-09-30 | 1996-05-22 | Texas Instruments Incorporated | Data processing system |
| US5793317A (en) * | 1994-09-30 | 1998-08-11 | Texas Instruments Incorporated | Low power approach to state sequencing and sequential memory addressing in electronic systems |
| US6134168A (en) * | 1997-04-25 | 2000-10-17 | Texas Instruments Incorporated | Circuit and method for internal refresh counter |
| GB2366634A (en) * | 2000-09-11 | 2002-03-13 | Lucent Technologies Inc | Gray code program counter and address compiler |
| GB2366634B (en) * | 2000-09-11 | 2003-03-12 | Lucent Technologies Inc | Memory addressing |
| GB2375625A (en) * | 2001-05-18 | 2002-11-20 | At & T Lab Cambridge Ltd | Microprocessors with improved power efficiency |
| GB2375625B (en) * | 2001-05-18 | 2005-08-31 | At & T Lab Cambridge Ltd | Microprocessors with improved power efficiency |
| US7302597B2 (en) | 2001-05-18 | 2007-11-27 | At&T Corp. | Microprocessors with improved efficiency processing a variant signed magnitude format |
Also Published As
| Publication number | Publication date |
|---|---|
| GB8928409D0 (en) | 1990-02-21 |
| GB2239113B (en) | 1994-02-23 |
| JPH05502312A (en) | 1993-04-22 |
| AU6747690A (en) | 1991-07-18 |
| WO1991009367A1 (en) | 1991-06-27 |
| EP0505383A1 (en) | 1992-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5528819B2 (en) | System, method and software for preloading instructions from an instruction set other than the currently executing instruction set | |
| US8332621B2 (en) | Implementation of variable length instruction encoding using alias addressing | |
| EP0052194B1 (en) | Paging data processing apparatus | |
| US6480938B2 (en) | Efficient I-cache structure to support instructions crossing line boundaries | |
| US5197135A (en) | Memory management for scalable compound instruction set machines with in-memory compounding | |
| US5210842A (en) | Data processor having instruction varied set associative cache boundary accessing | |
| US7676654B2 (en) | Extended register space apparatus and methods for processors | |
| JP5341163B2 (en) | Instruction cache with a fixed number of variable-length instructions | |
| JPH01154261A (en) | Information processor | |
| JPH0916471A (en) | Processor | |
| JP2773471B2 (en) | Information processing device | |
| CN1291306A (en) | Apparatus and method for executing program instructions | |
| GB2239113A (en) | Power saving in conputer systems | |
| KR19990006756A (en) | Multi-way associative cache memory | |
| US10956327B2 (en) | Systems and methods for mitigating dram cache conflicts through hardware assisted redirection of pages (HARP) | |
| Xie et al. | Profile-driven selective code compression [embedded systems] | |
| JP2001522082A (en) | Approximately larger number of branch predictions using smaller number of branch predictions and alternative targets | |
| US6941421B2 (en) | Zero delay data cache effective address generation | |
| US5072372A (en) | Indirect literal expansion for computer instruction sets | |
| Benini et al. | Code compression architecture for cache energy minimisation in embedded systems | |
| GB2366634A (en) | Gray code program counter and address compiler | |
| US5649229A (en) | Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage | |
| JPH0666052B2 (en) | A computer that automatically maps memory contents to machine registers | |
| Chen et al. | A low power-consuming embedded system design by reducing memory access frequencies | |
| EP0507958A1 (en) | Device for processing information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 19951215 |