• 沒有找到結果。

O ArchitecturesandSynthesisAlgorithmsforPower-EfficientBusInterfaces

N/A
N/A
Protected

Academic year: 2022

Share "O ArchitecturesandSynthesisAlgorithmsforPower-EfficientBusInterfaces"

Copied!
12
0
0

加載中.... (立即查看全文)

全文

(1)

Architectures and Synthesis Algorithms for Power-Efficient Bus Interfaces

Luca Benini, Alberto Macii, Enrico Macii, Member, IEEE, Massimo Poncino, Member, IEEE, and Ricardo Scarsi

Abstract—In this paper, we present algorithms for the synthesis of encoding and decoding interface logic that minimizes the av- erage number of transitions on heavily-loaded global bus lines at no cost in communication throughput (i.e., one word is transmitted at each cycle). The distinguishing feature of our approach is that it does not rely on designer’s intuition, but it automatically constructs low-transition activity codes and hardware implementation of en- coders and decoders, given information on word-level statistics. We propose an accurate method that is applicable to low-width buses, as well as approximate methods that scale well with bus width.

Furthermore, we introduce an adaptive architecture that automat- ically adjusts encoding to reduce transition activity on buses whose word-level statistics are not known a priori. Experimental results demonstrate that our approaches well out-perform specialized low- power encoding schemes presented in the past.

Index Terms—Bus encoding, digital systems, low-power design.

I. INTRODUCTION

O

FF-CHIP and on-chip global bus lines in very large scale integrated (VLSI) circuits are generally loaded with large capacitances, up to three orders of magnitude larger than the average on-chip interconnect capacitance. When using standard CMOS signaling, the power dissipated by bus drivers is propor- tional to the product of average number of signal transitions and line capacitance. Hence, one way of reducing power dissipation on bus drivers is to encode the data sent on the bus with schemes that reduce the average number of transitions.

Based on this observation, several researchers have proposed encoding schemes that reduce the average number of signal tran- sitions. Some codes [1]–[3] exploit spatial redundancy, i.e., they increase the number of bus lines, while others exploit temporal redundancy, i.e., they increase the number of bits transmitted in successive bus cycles [4]. A few codes do not rely on spa- tial/temporal redundancy [5], [6].

Theoretical issues in bus encoding for low transition activity are investigated in [7]. In that work, the authors introduce an in- formation-theoretic framework for studying low-transition en- coding, and prove a useful lower bound on minimum achievable average transition activity. Several redundant and irredundant codes are then analyzed and compared to the theoretical bounds to assess their quality. In [8] and [9], the same authors introduce a generic encoder–decoder architecture that can be specialized to obtain an entire class of low-transition coding schemes. A

Manuscript received August 12, 1999; revised February 7, 2000. This paper was recommended by Associate Editor M. Pedram.

L. Benini is with the Università di Bologna, DEIS, 40136 Bologna, Italy.

A. Macii, E. Macii, M. Poncino, and R. Scarsi are with Politecnico di Torino, DAI, 10129 Torino, Italy (e-mail: [email protected]).

Publisher Item Identifier S 0278-0070(00)07472-8.

few personalizations of the generic architecture are described, and the reductions in transition activity are compared.

In [8] and [9], no systematic method is provided for ob- taining optimum codes from the generic architecture. Also, the hardware complexity and cost of encoders and decoders is not studied in detail. Finally, all presented encoding schemes assume some knowledge of the statistical properties of the streams that must be encoded. These issues are addressed in this work.

We propose a generic encoder–decoder architecture and we describe an algorithm for customizing it to obtain im- plementations that minimize bus transition activity, given a detailed statistical characterization of the target stream. We also introduce two heuristic approximations of the basic algorithm that produce low-transition codes and low-complexity encoders and decoders. These codes are tailored for fast and wide buses, where encoders and decoders are subject to tight performance and hardware cost constraints, and for streams whose statis- tical properties are not known exactly. Finally, we describe a general-purpose, efficient encoder–decoder architecture that can be used to reduce bus transition activity for generic data streams with completely unknown statistical properties. This architecture is capable of on-line adaptation of the encoding scheme to the data stream currently being transmitted.

One desirable feature of our approach is that not only the ab- stract specification, but also the circuit implementation of en- coder and decoder is automatically synthesized. In addition, we offer the possibility of trading off bus activity reduction for in- terface complexity. In fact, designers can exploit our approach to rapidly explore the power-saving opportunities enabled by low-transition encodings.

Experimental results concerning both the quality of the en- coding schemes and the efficiency of the encoding–decoding circuitry are very satisfactory for a large variety of data streams.

The rest of the paper is organized as follows. In Section II, we introduce our generic encoder–decoder architecture and we study its properties. In Section III, we describe the basic, exact encoding algorithm, in Section IV we outline approximate vari- ants to be used for low-cost encoding/decoding of fast and wide buses, and in Section V we present the adaptive encoder–de- coder architecture. Experimental results are reported in Sec- tion VI. Finally, Section VII concludes the work.

II. BASICCONCEPTS

Consider a data source that generates symbols over alphabet . We assume that the cardinality of the alphabet is . Each symbol is represented as a -bit word

0278–0070/00$10.00 © 2000 IEEE

(2)

Fig. 1. General codec architecture.

. is the Boolean space such that every -bit configuration has nonnull probability of being generated by the data source. Symbols must be transmitted over time on a bus of width . We assume here a discrete-time setting, and we use the notation to indicate the word transmitted at time

.

The bus width and the communication throughput 1 (one word transmitted in each time period) will be taken as tight constraints. Such constraints rule out the possibility of con- sidering space and/or time redundant codes, as well as vari- able-length codes. The motivation for this assumption is that spatial redundancy is hardly tolerated in global bus organiza- tion because it changes pinout and interface specification. Tem- poral redundancy and variable-length coding do not change bus width, but introduce variable latency in communication, which may be unacceptable.

A. General Codec Architecture

We consider a general encoder–decoder (codec, for brevity) architecture, shown in Fig. 1, which is a specialization of the source-coding encoder–decoder framework introduced in [8], [9]. The encoder takes as input the stream of -bit input words

. It consists of three block:

• a register, that stores when the input is ;

• a combinational encoding function, , that generates the encoded word from , ;

• a decorrelator, that translates one-valued bits of into transitions on the corresponding bus lines (zero-valued bits correspond to stationary values on the bus lines).

The decoder takes as input the word transmitted over the bus and computes the original input word . It consists of three blocks:

• A correlator, that computes the inverse function of the decorrelator and reconstructs ;

• A combinational decoding function, , that reconstructs input word from and ;

• A register, that stores when the output of the decoder is .

Fig. 1 also shows the bus and its input/output buffers (this block is independent from the codec architecture). We assume that information is sent over the bus using standard CMOS level signaling. Also, notice that bus drivers and receivers are clocked (hence, glitches on the decorrelator outputs are filtered out), and that the “time of flight” delay of the bus may be nonnegligible.

Additional latency introduced by bus and drivers is not a concern

for our encoding scheme. In the following, wewill assume that the bus latency is zero time periods without loss of generality.

Before describing the salient features of functions and , we briefly review the operation of decorrelator and correlator.

These two blocks have transfer functions

, and , respectively (we

use symbol “ ” to denote the exclusive-or operation). It is as-

sumed that when , . The

transfer functions of the two blocks are one the inverse of the other. The main advantage of using correlator and decorrelator is that they transform the problem of minimizing the number tran- sitions on the bus into the problem of minimizing the number of ones on the decorrelator’s input [4].

Encoding function should minimize the average number of ones at its output while guaranteeing that the encoded value can still be uniquely decoded by . The sole purpose of is to compute the correct value of . Note that both and exploit past values of the input stream for encoding and decoding.

Clearly, the architecture of Fig. 1 is a generic scheme that can be customized by defining functions and . It is possible to further generalize the architecture by considering more than one past input words for encoding and decoding. In the general case, function takes input words to compute a single output word.

Similarly, function takes previously decoded words, as well as the newly received word to produce the decoded output word.

We will describe the algorithms for computing functions and assuming a value of 2. This is for two main reasons;

first, the case 2 can be illustrated in very simple terms, and generalization to arbitrary is straightforward, once the basic concepts have been understood. Second, and most important, hardware complexity of and rapidly increases with , and schemes with may be inapplicable in practice.

III. EXACT-LOWTRANSITIONENCODINGALGORITHM

The algorithm we present moves from the assumption that a detailed statistical characterization of the data source is avail- able. More specifically, we assume the availability of the com- plete probability distribution of all pairs of consecutive values in the input stream . In symbols, the probability

is known . We call this distribution joint prob- ability distribution (JPD). Furthermore, we assume that JPD is

stationary, i.e., is indepen-

dent of the time index .

(3)

Fig. 2. Code construction algorithm.

The encoding algorithm builds the specification (i.e., the truth table) of function in an enumerative fashion. Function is obtained as a by-product. The starting point of the algorithm is a table (called code table) with three columns, labeled , (current and past input words) and (current en- coded word), respectively. The table has rows, one for each pair of input words. Initially, the third column is empty (i.e., no encoded word is specified), while the first and second columns contain all pairs, ordered for decreasing . The value of the encoded word corresponding to each pair

is computed starting from the first row of the code table.

The pseudocode of the algorithm is shown in Fig. 2. Its only input parameter is the initial code table CodeTab (a matrix with rows and three columns). First, Conflicts is initialized. This array has one element for each row of CodeTab and it will be used to store forbidden values of the encoded word . Initially, any value can be assigned to any row. The external loop scans the table from the top. For each row, the encoded word (i.e., the third column of the table) is assigned by calling function . This function assigns to the -bit word con- taining the minimum number of ones that does not belong to the set of forbidden codes for the row under consideration. As the algorithm scans the table from top to bottom and assigns values to the third column, the Conflicts array is updated. The key point of the algorithm, discussed next, is the update rule for array Conflicts. The algorithm terminates when the code for the last row has been assigned and returns the complete code table.

The need for storing and updating forbidden codes stems from a fundamental decodability constraint. The encoding function cannot be a 1-to-1 mapping, because its domain is while its co-domain is . Thus, many input pairs are necessarily associated to a single output value . However, this association cannot be arbitrary, because we need to decode . The decoder function takes as inputs and and produces as output the correct

value (Fig. 1).

Decodability is ensured if any pair uniquely identifies a single value . This constraint must be satisfied for each row of the table. Hence, whenever we assign a code to the table row with code and in the first two columns, we must guarantee that the same code is not used for any other row with the same value of . If this is not done and, for instance, code is assigned to another row of the table with and in the first two columns, then the decoder will not have a way

to know if the original data word is or , because both are

associated to the same pair and . The

nature of the decodability constraint is best illustrated through an example.

Example 1: Consider a simple data stream with four sym-

bols ( and 2). The code table has 16

rows. The first four rows of the initial code table are shown in Fig. 3(a). No encoded word is assigned yet. Rows are ordered for decreasing probability. The first and second codes are assigned in Fig. 3(b). Code word 00 is selected because it contains the minimum number of ones. The content of array Conflicts, when nonempty, is shown to the right of the table.

Assigning code 00 to the first row creates forbidden codes in rows 3 and 4, because they have the same value as row 1 in column . For instance, code 00 cannot be assigned to the third row because the decoder, observing 10 and 00 would not be capable of selecting between 01 and 11. Since 00 is forbidden, we must select a different code with as few ones as possible. We assign 01 to the third row.

Notice that this choice adds one forbidden code for the fourth row of the table, as shown in Fig. 3(c).

The complete code table is the truth table for function . The first two columns are input minterms, the third column is the output value. The coding function minimizes the probability of generating ones on its outputs, within the constraints imposed by unique decodability. Function is obtained by taking columns

and as inputs, and column as output.

It is important to notice that procedure always finds an encoding that can be uniquely decoded. To prove this claim, we observe that for each value in the second column of the table, there are rows with the same second-column value. A conflict in code assignment arises only if we try to assign the same to two rows with the same second-column value. In that case, we need to choose another for the row that comes last in the ordering of the table. The worst case is when we are trying to assign the third-column value to the last row in the table that has a second-column value (i.e., the th row with second-column value ), and all previous rows have been assigned different values of . Fortunately, there are only rows before the last one, hence there are conflicts in the worst case, while we have available configurations to assign the value of the third column. This guarantees that we can always find a valid code for the third column; thus, procedure always terminates correctly with a complete code table.

The complexity of the algorithm is exponential in , because the number of rows in the code table is . Clearly, compu- tation of the complete table becomes infeasible for large bus widths. Besides the obvious computational bottleneck, there are a few more limitations. First, the knowledge of the JPD may be incomplete or approximate. For instance, obtaining a reasonably accurate estimate of for every pair of input words may be infeasible for large streams. Second, the implementation of functions and in hardware may be unacceptably large, slow or power-consuming. In summary, the encoding algorithm may become impractical for wide global buses in current VLSI cir- cuits. Hence, we need to resort to approximate algorithms that scale well with bus width.

(4)

Fig. 3. Example of code construction.

IV. APPROXIMATELOW-TRANSITIONENCODINGALGORITHMS

A. Clustered Encoding

The most intuitive approximation to the exact algorithm of Section III consists of partitioning the set of bus lines in smaller clusters and apply the exact algorithm to each cluster. We call this solution clustered encoding. In this scheme, we privilege temporal correlation with respect to spatial correlation, since we still base the encoding/decoding process on the statistics of all possible input pairs, yet smaller than the total bus width.

This solution exhibits an evident trade-off between accuracy and complexity; the smaller the clusters, the smaller the reduction in the number of transitions, because the spatial correlation be- tween bits is partially lost. On the other hand, larger clusters imply larger encoders and decoders and longer code construc- tion times, as in the case of the exact algorithm. The criterion for cluster growth is then very important. Since breaking a word into clusters decreases the spatial correlation between bits, we must try to keep in the same cluster bits with high mutual spatial correlation. The clustering algorithm we have used exploits the calculation of various types of correlations and is similar to the one proposed in [6]; the interested reader may refer to that work for the details.

The architecture generated by the clustered encoding consists of a set of encoder/decoder pairs, one for each cluster. The en- coder/decoder logic is synthesized from a two-level description that represents the code table of each cluster.

B. Discretized Encoding

An alternative approximate solution is to consider only the most probable pairs of consecutive words in the code, where . Let us denote such set as . We call this approximate solution discretized encoding. The optimality loss in this solu- tion is due to the fact that we consider all pairs outside the first most probable as equiprobable. In this method, spatial cor- relation is privileged, since the statistics are computed on full words; conversely, we neglect some temporal correlation be- cause the encoding/decoding process is driven only by a small set of code-words.

The implementation of the discretized scheme can be real- ized according to the conceptual architecture of Fig. 4, where

the encoder is shown. The block imple-

ments the encoding function for set . The rest of the words in the alphabet goes through a background function [denoted with

].

The reason for the existence of the background function is that the architecture of Fig. 4 represents one realization of the block denoted with in the general architecture of Fig. 1, whose output feeds the decorrelator. The only constraint on is

Fig. 4. Architecture of the discretized encoder.

that it should not violate the decodability constraint and it should be invertible. For instance, if we want to transmit on the bus the words outside without any change, block should implement

a correlator ( ) to cancel

the effect of the decorrelator that follows . Other choices are possible: Identity and negation are two valid alternatives. Note that the choice of is not critical because we are assuming that words outside are transmitted with small probability.

The block Sel determines which of the two functions, or , has to be applied to the current pair of words. In other terms, Sel represents the characteristic function of the pairs that belong to set .

In the clustered architecture, splitting the bus width in smaller blocks implies smaller encoding and decoding logic.

Conversely, in the discretized solution, encoder and decoder must still be -input, -output functions. The simplification in the hardware implementation of encoding and decoding functions comes from the fact that the specification has a large don’t care set, namely the set of all word pairs that are not encoded.

The construction of the encoding function , unlike the clus- tered approximation, requires the modification of the basic al- gorithm of Section III.

In discretized encoding, constraints imposed by assigning a new code to a pair may create a conflict with another pair that does not belong to . The modified algorithm proceeds as in the exact case for what concerns the assignment of a code to a given pair. After the lists of conflicts have been updated, however, the newly assigned code always affects one of the background pairs, i.e., those outside .

Consider the table row identified by the pair , and assume that it has been assigned code . The conflict mech- anism guarantees that this assignment is uniquely decodable with respect to the pairs in . However, such assignment may affect one of the background pairs, and precisely the one that has the last two columns equal to those of , i.e., . This pair

is , since it implements the background

function (assuming that is a correlator).

(5)

Because of this conflict, we are forced to change the code as- signed to , otherwise and will not be distinguishable by the decoder. Changing the code for (a background pair) means bringing into , because it will not be encoded ac- cording to the background function anymore.

When bringing into , we assign it a new code, say . Ob- viously, code must neither conflict with any other previously assigned pair, nor with other background pairs. A good way to attempt satisfying these two requirements is to assign in such a way that , that is, . The resulting line

of the code table for would then be: .

The rationale is that the entry for is now potentially con- flicting with the background entry , because they share the in the last two columns. After some com- putations, this conflicting entry can be simplified to , which cannot belong to the background pairs, since is exactly . In some cases not described here, conflict resolution with background pairs requires complex operations.

The removal of conflicts with background pairs is best illus- trated through an example.

Example 2: Consider the table at the top, where codes have been replaced by symbols for the sake of clarity. The pair

represents the pair just assigned by the algorithm, and is the chosen code. The horizontal line separates from the background pairs. Below this line, denotes background pair that is conflicting with

To remove the conflict, has to be taken into , and as- signed a new value. This value is obtained by solving the following equation for the unknown

This translates to , that is , as shown

in the table at the bottom.

V. ADAPTIVEENCODING

The solutions described in Sections III and IV require that word-pair statistics are known before synthesizing the codec.

This assumption may not hold in some application domains. In

this section, we present an encoding scheme that does not re- quire any a priori knowledge of the input statistics, and is ca- pable of on-line adaptation of the encoding to stream statistics.

The proposed solution is approximate in the sense that it realizes an adaptive scheme that operates bit-wise rather than word-wise, and therefore ignores the spatial correlation between bits of the same code-word. Such approximate solution is needed to allow a low-cost implementation of the encoding and decoding logic in terms of area, delay and power.

The basic idea behind the adaptive method is to apply the algorithm of Section III on the basis of approximate statistical information, that are collected by observation of the bit stream over a window of fixed size . Clearly, the window size must be chosen as a compromise between adaptation speed and delay in updating the statistics. In particular, the optimal value of de- pends on the streams of patterns that must be transmitted; there- fore, it must be tuned by experimenting with different window sizes and by selecting the one that performs best on average for a given set of data. In our case, for each of the input streams that we have considered, we have tried values of going from 16 to 1024, and we have plotted the corresponding value of the bus switching activity. From the diagram of Fig. 5, that summa- rizes the results of our analysis (on the axis switching activity values are normalized), we can evince that the highest savings are achieved, on average, for a value of 64.

The application of the exact algorithm of Section III on a single bit requires the knowledge of the four joint probabilities , and , whose ranking determines the op- timal 1-bit code. In order to deal with integer quantities, that simplifies the hardware, we will use the occurrence frequen- cies and instead of the joint probabilities.

Clearly, since the window size is fixed, the joint probabilities can always be computed by dividing the occurrence frequen-

cies by , e.g., .

If we analyze the frequency distribution, we note that not all the four occurrences are required. First, the sum of the four oc- currence frequencies is known; since there are only pairs

over a window of size , .

For practical window sizes, we can then assume that . Second, the number of zero-to-one and one-to-zero transitions must be balanced over the observation window, that is

. The equality should be interpreted loosely; in fact, and differ by one at most.

In conclusion, it is sufficient to consider only two joint prob- abilities to fully characterize the JPD, since their knowledge im- plies the other two. Without loss of generality, we choose and . Reducing the information that is required is beneficial from the hardware implementation point of view, because there are fewer quantities that need to be stored.

A. Encoder Architecture

The basic scheme of the architecture for the 1-bit encoder is shown in Fig. 6. The input , and its previous value

feed some glue logic that triggers the two counters that store the number of occurrences of the two consecutive pairs ( , ).

The counters count over a window size, and are reset after each cycles. This is realized by a window counter (WinCnt) that

(6)

Fig. 5. Experimental search of the optimal window size (S).

properly resets the two counters. The window counter is shared across all the bits in the bus.

The shaded block on the right computes the encoding based on the knowledge of , and the values of

and . Since there are only four possible combinations of we can explicitly enumerate all the possible orderings of these four configurations, that corresponds to con- sider 24 cases. These orderings can be further reduced by observing that . We actually need to consider only 6 cases, corresponding to all the possible orderings of three quantities: , and one of and . For ease of no- tation, we will denote both and with the symbol , to emphasize the fact that they are indistinguishable.

The enumeration of the six orderings results in only four dif-

ferent encoding functions :

a) ;

b) ;

c) ;

d) .

The block inside the shaded area denoted with Sorting Net- work serves the purpose of selecting the proper encoding func-

tion according to the JPD of the current

window. Such decision is taken as follows:

when when when when

(1)

Fig. 6. Architecture of the adaptive encoder.

This selection mechanism of the encoding functions has an intuitive interpretation; for example, in the first case, since the most probable pair of symbols is 00, it is reasonable to leave the bits unchanged, since a zero in the stream will result in no tran- sition after the decorrelator in the scheme of Fig. 1. Similarly, when (i.e., a transition) is the most probable symbol, the transitions are first eliminated by XOR-ing two consecutive bits (in other terms, by using a correlator). This yields a sequence of ones, that has to be complemented before being fed to the decorrelator. The latter example clearly shows how the general scheme proposed includes the general framework structure of [8], [9] as a particular case.

It is important to observe that the sorting rules of (1) rely on two approximations, that may lead to suboptimal results in some special cases. The first one is due to the assumption that

which is only asymptotically true. The second is that the above inequalities are always considered as strict inequalities.

(7)

Fig. 7. Space of the sorting network.

Consider for example the following JPD over a given window

of size 64: 25, 12, 13, and

13. The exact ordering is clearly .

According to our computation, however, we will infer and from and , and get another JPD: 25, 13, and 13. Therefore, we are not able to distinguish the

two orderings from ,

that require different encoding functions, according to (1).

The decision rules described in (1) can be graphically repre- sented as in Fig. 7, where the four regions denoted with a), b), c) and d) correspond to the four different encoding functions.

The regions are delimited by the square of size in the plane , and by three lines, that identify the possible rela-

tions between , and .

The boundary lines are obtained by expressing all the in- equalities in terms of and , replacing thus with . The line equations are derived as fol- lows:

Notice that regions a) and b) are symmetric around the line , denoting the fact that in these two regions the rel- ative magnitude of and is irrelevant.

B. Implementation

Concerning the hardware implementation of the sorting net- work, we face two possibilities. The most intuitive choice is to generate a two-level cover of the sorting network with a software program, by exploring all the possible orderings and associating an output value to each of them. This solution may result in ex- cessively large circuits.

Another option is to realize the sorting network by directly implementing the decision regions of Fig. 7. We observe that counters and and the sorting network can be merged together. The inequalities of Section V-A can be rewritten as

(2) Instead of computing and , and derive the two left-hand sides of the above inequalities from them arithmeti-

Fig. 8. Efficient encoder implementation.

cally, we can directly store in a register the quantities needed

to take the decision, i.e., and . The

magnitude of the left-hand sides of the inequalities of (2) is bounded by , and can then be stored in a register with

bits.

The dashed box in Fig. 8 shows the optimized schematic that merges the two counters of Fig. 6 and the sorting network for a window of size 64.

Each counter is replaced by a cheaper register: Register is

used to store , while register stores .

Each register computes , where is determined by the values that are present on the signals and that detect the zero-to-zero and one-to-one transitions. For example, for register :

• 0, if ;

• 1, if ;

• , if 10.

The operations for are similar, and are obtained by ex- changing the last two conditions. At the end of the window, the conditions of (2) can be obtained by looking at the value con- tained in the two registers. The values of their two most signif- icant bits (bit 6 and 7) express the condition that the number stored in the register exceeds the value of (and cannot thus be represented using only six bits). By OR-ing these two bit pairs we obtain two selection signals and that can be used to directly drive the output multiplexor of Fig. 6. More pre- cisely, 1 implies , that is, ; similarly,

1 implies .

The four combinations of select the proper en- coding function, as follows:

Concerning the performance of the encoder, the critical path runs through the block and the multiplexor, in the upper part of Fig. 6. Since the encoding functions consist of at most one gate, we can conclude that in the worst case we have two

(8)

Fig. 9. Architecture of the adaptive decoder.

or three equivalent gates on the critical path, depending on the multiplexor implementation.

C. Decoder Architecture

The architecture of the decoder, shown in Fig. 9, is very sim- ilar to that of the encoder, and is not shown here for space reasons. It computes the same statistics as the encoder, that is and , that are derived by observing pairs of consecutive

values of the decoded output .

There are two main differences with respect to the encoder.

First, according to the architectural scheme of Fig. 1, the “true”

decoder must take as inputs and . Second, the

decoding functions [block ] must compute

the inverse of the functions in the encoder.

In this case, all the encoding functions of (1) are exactly the same as their inverse. For example, if is selected in the encoder, is selected in the decoder. Notice that the same hardware optimization employed for the encoder can be used in the decoder as well.

VI. EXPERIMENTALRESULTS

In this section, we report the data we have collected through extensive experimentation of the encoding schemes proposed in this paper. We first consider exact and approximate encodings, then we focus on the adaptive solution.

A. Exact and Approximate Encoding

We have applied the exact (see Section III) and the approx- imate variants (see Section IV) of the new encoding algorithm to a set of real-life streams with various statistical profiles. The streams we have considered are the following, and we assume they have to be transmitted over a 32-bit data bus:

• sound: A file;

• m31: An image in the format;

• screen: An image in raw format captured from a screen;

• html: A HTML page containing some images;

• gopher, gzip, gcc, bison, espresso, ghostview, gnuplot, flex: Executable files.

Table I collects the data of the experiments regarding exact encoding. Column Initial gives the number of transitions occurring in the stream when no encoding is applied. Column Exact reports the number of transitions in the stream after encoding is applied (Trans) and the percentage of achieved transition savings (Sav). Columns xor-pbm and dbm-pbm show similar data as obtained from application of the xor-pbm and

TABLE I

RESULTS: TRANSITION SAVINGS FOR EXACTENCODING

dbm-pbm methods of [8] and [9]. The motivation for choosing xor-pbm for the comparison is that it seems the most promising for the case of data buses. On the other hand, dbm-pbm has been picked because, as pointed out in [8] and [9], it is the one that, in general, works best.

The numbers clearly support the claim that our exact algo- rithm out-performs both xor-pbm and dbm-pbm. The average savings is, in fact, 94.8% as opposed to 69.6% of xor-pbm and 69.9% of dbm-pbm.

Results of the application of our approximate encoding methods are shown in Table II. Data for the discretized algo- rithm (column Discretized) consist of three sets of numbers

(columns 20, 50, 100), corresponding

to different numbers of words considered. For the clustered method (column Clustered), two sets of results are shown: The first refers to the case of eight clusters of size 4, the second to the case of four clusters of size 8.

A key observation about the data in Table II is that the clustered algorithms perform almost as well as xor-pbm and dbm-pbm when the latter are applied to the entire 32-bit bus (see data in Table I). This is an important result, because our exact algorithm, as well as xor-pbm and dbm-pbm are of limited practical applicability, due to the size and complexity of the encoders and decoders they necessitate. In fact, any code for which the codec contains a combinational function with a number of inputs larger than (as for our exact algorithm) or equal to (as for xor-pbm and dbm-pbm) the bus width, may be unusable on wide buses. This is because, as bus width grows, it becomes more difficult building the encoding and decoding functions with a reasonably small digital circuit.

In our specific case, since the data bus we considered was 32-bit wide, the pbm part of the encoder could not be synthe- sized for any of the benchmarks we used in the experiments.

Obviously, the same thing happened for our exact encoder, since it encompasses a 64-bit combinational function. Conversely, as the results of Section VI-A1 will show, both the clustered and the discretized methods have been successfully implemented in hardware; therefore, the reported savings will translate to real- istic power reductions.

We note also that the discretized encoding is typically less ef- fective than the clustered one; this indicates that, for the streams

(9)

TABLE II

RESULTS: TRANSITIONSAVINGS FORAPPROXIMATEENCODING

TABLE III

RESULTS: CODECIMPLEMENTATION FORAPPROXIMATEENCODING

we considered, preserving temporal correlation is more impor- tant than preserving spatial correlation.

1) Codec Implementation: Table III provides data about codec implementation for the cases of approximate methods.

Synthesis has been carried out using Synopsys Design Com- piler, with a 0.25 m, 2.5-V technology library from ST Microelectronics. The circuits have been optimized for speed, because we assumed that the latency of the encoders and decoders is the most stringent constraint. The results report the values of area (in m ), power (in milliwatts), and delay (in nanoseconds) for both encoders and decoders of each stream. Power estimates have been obtained with Synopsys DesignPower with a clock frequency of 400 MHz.

For the discretized method, all three versions (i.e., 20, 50, and 100) were successfully implemented. As expected,

TABLE IV

RESULTS: TRADE-OFFANALYSIS OFBUS-LINECAPACITANCE

(10)

TABLE V

RESULTS: COMPARISON OFEXACT ANDBEACHCODING

TABLE VI

RESULTS: COMPARISON OFAPPROXIMATE ANDBEACHCODING

the complexity of the codec tends to increase rapidly for larger values of . Concerning the clustered scheme, only the ver- sion with eight clusters of size 4 resulted in a compact imple- mentation. Notice that the values of area, power and delay for the clustered method are comparable to those of the discretized method with 50 and 100, although the latter provide sensibly smaller savings.

We complete our analysis of the synthesized codecs by cal- culating the break-even point of the trade-off curve between ca- pacitance per bus line and bus power savings. In other words, for each data stream, we determine the minimum capacitance each bus line should have in order for the encoding to pay off. (The in- terested reader may find a similar investigation for a number of existing encoding schemes in [10].) From the data in Table IV we can evince that, while discretized encoding may be appli- cable only at the interface of off-chip buses (capacitance per bus line is within a few tens of pF), the cost of the clustered codec is affordable also in the case of on-chip buses, since capacitance per bus line never exceeds 10 pF.

2) Comparison to Beach: As our exact and approximate en- codings, also the Beach scheme introduced in [6] is applicable in cases where statistics about the stream being transmitted over the bus are available up-front. On the other hand, the Beach code is specifically thought for encoding address buses, since code construction is based on the identification of correlations that are typical of address sequences.

Tables V and VI compare the results of the application of exact and approximate encodings to those achieved by the Beach code when the address streams being transmitted are those described in [6]. For completeness in the comparison, Table V also includes the data obtained by using dbm-pbm and inc-xor, the latter being the version of the source-coding framework of [8] and [9] which is most appropriate for address buses.

We observe that, although more general, the encoding schemes introduced in this paper are clearly superior to the Beach method. It is also worth noting the limited effectiveness

TABLE VII RESULTS: ADAPTIVEENCODING

of inc-xor. This behavior is justified by the fact that the address streams we have used are characterized by a low sequentiality;

this in sharp contrast with the assumption on which inc-xor is based (i.e., most addresses are consecutive).

B. Adaptive Encoding

The same streams described in Section VI-A have been used to benchmark the performance of the adaptive encoding scheme introduced in Section V. Table VII collects all the results, in- cluding savings in number of bus transitions, encoder imple- mentation data (numbers for the decoder are not reported since it has roughly the same realization of the encoder, as mentioned in Section V-C), and minimum bus-line capacitance required to guarantee an advantage in the usage of the codec.

Concerning codec implementation (one number only is re- ported for area, power dissipation and delay, since the synthe- sized circuit is the same for all streams), we observe that the adaptive encoder is typically larger than the approximate so- lutions. One desirable characteristics of the adaptive interface logic, however, is its negligible delay (0.36 ns), which is at least five times smaller than the fastest among the other encoders/de- coders.

(11)

TABLE VIII

RESULTS: COMPARISON OFADAPTIVE ANDBUS-INVERTENCODING

1) Comparison to Bus-Invert: To fairly evaluate the effec- tiveness of the adaptive scheme, we have compared its perfor- mance against the Bus-Invert code [4]. Although spatially re- dundant codes were excluded from our analysis because of our tight constraint on the bus width, we have included these ex- periments because the Bus-Invert is the only low-power coding scheme that does not require any a priori information about the stream that is transmitted, and can be reasonably compared to our general-purpose, adaptive scheme.

We have considered three versions of the Bus-Invert code:

The base case (i.e., no clustering of the 32-bit data bus), a two- cluster solution (each cluster contains 16 bus lines) and a four- cluster solution (each cluster is of size 8). Data are collected in Table VIII.

The adaptive code clearly out-performs the nonclustered Bus- Invert code, it provides results similar to those of the two-cluster version and it is less effective than the four-cluster implemen- tation. However, as already mentioned, the Bus-Invert code is redundant by nature. The clustered versions imply a further in- crease in the number of bus lines that have to be added to the bus interface (i.e., one line for each cluster). Since pin count is normally a scarse resource, these schemes may not be usable in practice.

VII. CONCLUSION

We have presented novel algorithms for the automatic syn- thesis of bus interface logic that targets the minimization of the switching activity on global buses. In particular, we have ad- dressed the problem of minimizing the bus activity in three dif- ferent situations.

For buses with limited width and known statistics of the streams being transmitted, we have proposed a method that allows us to exactly determine the optimum encoding scheme.

For wider buses, the exact approach is no longer applicable, since the complexity of the synthesized encoding/decoding logic may become unmanageable. We have solved this problem by means of two classes of encoding algorithms. The first one reduces the size of the codec by separately considering clusters of bus lines instead of the entire bus width; the second scheme re-encodes only a subset of the patterns being transmitted,

namely, those with higher occurrence probability. Both these methods still rely on the assumption of full knowledge of the input statistics. When this assumption is no longer satisfied, a different path must be followed. Thus, we have introduced an adaptive strategy that dynamically modifies the encoding function depending on the patterns that are being transmitted.

We have benchmarked the capabilities of the proposed en- coding techniques on a set of data streams; we have also inves- tigated the trade-off between optimality of the encoding scheme and complexity of the encoding/decoding circuitry, and we have pointed out possible domains of applicability of the presented encoding approaches. The results we have obtained from an ex- tensive experimentation are satisfactory, since they have out- performed those produced by the most effective schemes that are currently available.

REFERENCES

[1] M. R. Stan and W. P. Burleson, “Bus-invert coding for low-power I/O,”

IEEE Trans. VLSI Syst., vol. 3, pp. 49–58, Mar. 1995.

[2] L. Benini, G. De Micheli, E. Macii, D. Sciuto, and C. Silvano, “Asymp- totic zero-transition activity encoding for address busses in low-power microprocessor-based systems,” in Proc. GLS-VLSI-97: IEEE/ACM 7th Great Lakes Symp. VLSI, Urbana-Champaign, IL, Mar. 1997, pp. 77–82.

[3] E. Musoll, T. Lang, and J. Cortadella, “Working-zone encoding for re- ducing the energy in microprocessor address buses,” IEEE Trans. VLSI Syst., vol. 6, pp. 568–572, Dec. 1998.

[4] M. R. Stan and W. P. Burleson, “Low-power encodings for global communication in CMOS VLSI,” IEEE Trans. VLSI Syst., vol. 5, pp.

444–455, Dec. 1997.

[5] H. Mehta, R. M. Owens, and M. J. Irwin, “Some issues in gray code addressing,” in Proc GLS-VLSI-96: IEEE/ACM 6th Great Lakes Symp.

VLSI, Ames, IA, Mar. 1996, pp. 178–180.

[6] L. Benini, G. De Micheli, E. Macii, M. Poncino, and S. Quer, “Reducing power consumption of core-based systems by address bus encoding,”

IEEE Trans. VLSI Syst., vol. 6, pp. 554–562, Dec. 1998.

[7] S. Ramprasad, N. R. Shanbhag, and I. N. Hajj, “Information-theoretic bounds on average signal transition activity,” IEEE Trans. VLSI Syst., vol. 7, pp. 359–368, Sept. 1999.

[8] , “A coding framework for low power address and data busses,”

IEEE Trans. VLSI Syst., vol. 7, pp. 212–221, June 1999.

[9] , “Signal coding for low power: Fundamental limits and practical realizations,” IEEE Trans. Circuits Syst. II, vol. 46, pp. 923–929, July 1999.

[10] L. Benini, G. De Micheli, E. Macii, D. Sciuto, and C. Silvano, “Address bus encoding techniques for system-level power optimization,” in Proc.

DATE-98: IEEE Design Automation and Test in Europe, Paris, France, Feb. 1998, pp. 861–866.

(12)

Luca Benini received the Dr.Eng. degree in elec- trical engineering from the Università di Bologna, Bologna, Italy, in 1991, and the M.S. and Ph.D degrees in electrical engineering from Stanford University, Stanford, CA, in 1994 and 1997, respectively.

Currently he is an Assistant Professor at the Uni- versità di Bologna. His research interests are in all aspects of computer-aided design of digital circuits, with special emphasis on low-power applications.

Alberto Macii received the Dr.Eng. degree in com- puter engineering from Politecnico di Torino, Torino, Italy, in 1996. Currently, he is working toward the Ph.D. degree in computer engineering at the same in- stitution.

His research interests include several aspects of the development of algorithms, methods, and tools for low-power digital design.

Enrico Macii (M’91) received the Dr.Eng. degree in electrical engineering from Politecnico di Torino, Torino, Italy, in 1990, and the Dr.Sc. degree in computer science from the Universitè di Torino in 1991 and the Ph.D. degree in computer engineering from Politecnico di Torino in 1995, respectively.

From 1991–1994, he was an Adjunct Faculty at the University of Colorado at Boulder.Currently he is an Associate Professor at Politecnico di Torino. His re- search interests include synthesis, verification, simu- lation, and testing of digital circuits and systems.

Dr. Macii is an Associate Editor of the IEEE TRANSACTIONS ONCOMPUTER- AIDEDDESIGN OFINTEGRATEDCIRCUITS ANDSYSTEMS.

Massimo Poncino (M’97) received the Dr.Eng. de- gree in electrical engineering in 1989 and the Ph.D.

degree in computer engineering in 1993, both from Politecnico di Torino, Torino, Italy.

From 1993–1994, he was a Visiting Faculty at the University of Colorado at Boulder. Currently he is an Assistant Professor at Politecnico di Torino. His re- search interests include synthesis, verification, simu- lation, and testing of digital circuits and systems.

Riccardo Scarsi received the Dr. Eng. degree in elec- trical engineering from Politecnico di Torino, Torino, Italy, in 1997. Currently, he is working toward his Ph.D. degree in computer engineering at the same in- stitution.

His research interests include several aspects of the development of algorithms, methods, and tools for low-power digital design.

參考文獻

相關文件

This research has resulted in the development of a fuzzy Petri net based expert system (FPNES) for bridge damage as- sessment, which contains a reasoning mechanism to deal

For example, if we use summation of characters of a string, which is a word or a sentence written in English, as the hash function, then two strings with same characters set always

(a)  is the rate at which the percentage of the city’s electrical power produced by solar panels changes with respect to time , measured in percentage points per year..

(b) 0 = IV, since from left to right, the slopes of the tangents to graph (b) start out at a fixed positive quantity, then suddenly become negative, then positive again..

(b)- IV, since from left to right, the slopes of the tangents to graph (b) start out at a fixed positive quantity, then suddenly become negative, then

To write the power series with   rather than  +2 , we will decrease each occurrence of  in the term by 2 and increase the initial value of the summation variable by 2..

Understanding and inferring information, ideas, feelings and opinions in a range of texts with some degree of complexity, using and integrating a small range of reading

Writing texts to convey information, ideas, personal experiences and opinions on familiar topics with elaboration. Writing texts to convey information, ideas, personal