Design and implementation of low power coding for address bus

Publisher:脑洞飞扬Latest update time:2011-11-25 Source: 互联网 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
The research and application of coding methods to reduce address bus power consumption are gradually increasing. Based on a brief description of the power consumption sources on the address bus, this article introduces several typical address bus low-power coding methods. By combining the T0 coding actually used, the power consumption of smart card chips can be effectively reduced.

The power consumption in CMOS circuits comes from two parts: one part is static power consumption, which is generated by leakage and other static currents; the other part is dynamic power consumption, which is generated by short-circuit current and load capacitor charging and discharging. There are three main consumptions in these two parts: switching loss, short-circuit loss, and leakage loss. The power consumption caused by short-circuit loss accounts for 10-15% of the total power consumption, while the power consumption caused by switching loss accounts for 70% to 80% of the total power consumption. The switching power consumption expression of the N-bit address bus is:

Among them, N represents the address bus width, Cload represents the average load of each address line, VDD is the power supply voltage, α represents the average number of capacitor charges and discharges in one cycle, f is the operating frequency, and α×f represents the flip rate.

The address bus inside the smart card chip has to connect RAM, ROM and other modules, so the load is relatively heavy, and the address bus generally has a long routing, which will undoubtedly increase the load capacitance of the address bus. At the same time, the CPU frequently accesses the memory, which also increases the flip frequency of the address bus. Therefore, the power consumed on the address bus is relatively large. Low-power address encoding method The low-power design of the address bus is mainly to encode it with low power consumption. The methods include BI (Bus-Invert) and T0 (Zero-Transition), Gray code, WZE encoding, etc. It compares the N-bit address bus sent by the CPU at time t and time t-1. If the number of bits changed on the bus is greater than N/2, the bus is inverted and sent out, otherwise it is sent directly. Whether the address receiving end inverts the address after receiving it is determined by the INV signal line. For example, if the address bus is 4 bits, the address is 0000 at time t-1 and 1111 at time t, then 1111 is inverted and sent out. The BI encoding formula is as follows:





Where b(t) refers to the actual address at time t, B(t) is the encoded address, and H(t) is the number of bits that differ between b(t) and b(t.1).

The BI decoding formula is as follows:

Where J(t) is the decoded address bus.

The T0 code notifies the address receiver of whether the address on the bus is continuous by adding a redundant line INC. If INC is high, it indicates that the address on the bus is continuous. At this time, all address buses remain unchanged, and the address receiver automatically adds 1 to the previous address as the current address; if INC is low, it indicates that the two addresses are not continuous. At this time, the bus will transmit the address code normally.

Define b(t) as the bus data at time t calculated by the CPU (i.e., data before encoding), B(t) as the data already placed on the bus at time t (i.e., encoded data), and Jt as the data decoded by the decoder. Then the encoding formula for T0 encoding is:

The decoding formula corresponding to T0 encoding is:

Combining the BI and T0 methods, the BI-T0 method is formed. Generally speaking, addresses are relatively continuous, while data buses are relatively random. BI encoding is mainly used for data buses, and when used for address buses, it is generally accompanied by a cache. T0 encoding has the characteristics of low latency and small area, and can effectively reduce the number of address flips when addresses are continuous. When addresses are continuous, T0 encoding is used; when addresses are discontinuous, the BI method is used, which forms BI-T0 encoding.

Gray encoding is also more effective for address buses that are mainly continuously changing. For example, from 7 to 0, using binary encoding is from 111 to 000, which will cause three jumps, while using Gray code is from 100 to 000, which only changes once. For continuous data transformation, Gray code is simpler and more effective.

WZE (Working-Zone-Encoding) encoding assumes that each instant the program only accesses a certain working zone (Working-Zone) of the total address space. The address bus transmits the working zone flag and the address offset based on the working zone base address, and the offset is encoded using one-hot encoding. WZE is mainly used for external address bus, on which PBE encoding and extended WZE encoding are formed.

Implementation and application of T0 encoding

The schematic diagram of T0 address bus encoding is shown in Figure 1, and the structure of the codec is shown in Figure 2. b is the address sent by the CPU core, B is the address output by the encoder, J is the address sent by the decoder to the memory, and INC is used to indicate whether the address is continuous. The circuit scale of the encoder and decoder is very small, and the additional hardware area and power consumption are also small.


Figure 1: Schematic diagram of address bus encoding.


Figure 2: Block diagram of zero flip encoder/decoder circuit.

We selected a test stimulus, and the actual running waveform is shown in Figure 3.


Figure 3: Address zero flip waveform.

From the figure, we can see that when the address bus sent by the CPU is continuous, the address bus between the encoder and the decoder can be kept unchanged, and the memory can obtain the correct address through the INC signal. During FPGA simulation, the VCD file of the above stimulus can be input into XPOWER to analyze the power consumption. When using T0 encoding, the total power consumption is 0.467mW, and when not using T0 encoding, the total power consumption is 0.999mW.

Summary of this article

Combined with the actual situation of an 8-bit smart card chip, a simple and effective T0 encoding is used for the address bus, which effectively reduces the number of address bus flips, thereby helping to reduce the power consumption of the entire smart card chip.

分页
Reference address:Design and implementation of low power coding for address bus

Previous article:Sliding Mode Variable Structure Control of Boost Circuit with Dynamic Error Correction
Next article:Hot-swap design for telecommunications systems: Avoid patchwork and support efficient design

Latest Power Management Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号