USO0RE43393E

(19) United States (12) Reissued Patent

(10) Patent Number:

Master (54)

(45) Date of Reissued Patent:

METHOD AND SYSTEM FOR CREATING

(56)

AND PROGRAMMING AN ADAPTIVE COMPUTING ENGINE

(75)

Inventor: '

Paul L. Master, Sunnyvale, CA (US) .

5,966,534 A

2004/0006584 A1 *

Notice:

(21)

Appl~ p10‘Z 12/504,093

f_

Primary Examiner * Paul Dinh

(74) AZZOI’I’IEy, Agent, 01’ Firm i NiXOIl Peabody LLP

Jul. 16, 2009 RltdU.S.Pt e a e

1 e :

717/160

1/2004 Vandeweerd ............... .. 709/107

Clalmer'

isuel: _ F.I1)pd' 0"

a en

tD

(57) ABSTRACT A system for creating an adaptive computing engine (ACE)

t

Ocumen 5

includes algorithmic elements adaptable for use in the ACE

7 328 414

and con?gured to provide algorithmic operations, and pro

F’ b 5’ 2008

vides mapping of the algorithmic operations to heteroge

13/4‘37’ 800 M I; 2003

neous nodes. The mapping is for initially con?guring the heterogeneous nodes to provide appropriate hardware circuit functions that perform algorithmic operations. A recon?g

ay

,

U.S. Applications: (60) Provisional application No. 60/378,088, ?led on May

urable interconnection network interconnects the heteroge neous nodes. The mapping includes selecting a combination

13, 2002.

of ACE building blocks from the ACE building block types for the appropriate hardware circuit functions. The system

Int. Cl. G06F 17/50

and corresponding method also includes utilizing the algo (2006.01)

rithmic operations for optimally con?guring the heteroge neous nodes to provide the appropriate hardware circuit func

U.S.Cl. ...... .. 716/104;716/106;716/116;716/117;

716/128; 716/132 (58)

Bingham ........................ .. 716/4 Tsien et a1. 716/17

* Cited by examiner

( ) Iatené 0"

(52)

7/2007 9/2009

This patent is subject to a terminal dis-

gzssugo ' N _

(51)

10/1999 Cooke et a1.

2003/0200538 Al* 10/2003 Ebeling et a1.

)

(*)

(22) Filed:

References Cited

7,246,333 B2 * 7,596,775 B2*

-

(

*May 15, 2012

U.S. PATENT DOCUMENTS 5,603,043 A 2/1997 Taylor et a1.

(73) Asslgnee' QJSST Holdmgs’ LLC’ Sunnyvale’ CA

R _

US RE43,393 E

tion. The utilizing includes the simulating of the performance

Field of Classi?cation Search ........ .. 7l6/l03il04,

of the ACE with the combination ofACE building blocks and

716/106*107,116*117,128,132,136,138; 712/15, 17, 19, 29, 220, 227; 703/13*15; 709/l06il07, 223; 711/145, 147, 149, 218; 717/114,119,149,150,160

altering the combination until predetermined performance standards that determine the e?iciency of the ACE are met

while simulating performance of the ACE.

See application ?le for complete search history.

10 Claims, 3 Drawing Sheets

202 /

PROVIDE A PLURALITY OF ALGORITHMIC ELEMENTS

204 /

MAP ELEMENTS ONTO NON-HOMOGENOUS NODES

206 1V

/

UTILIZE MAPPED ELEMENTS TO PROVIDE APPROPRIATE HARDWARE FUNCTIONS

US. Patent

May 15, 2012

US RE43,393 E

Sheet 2 0f 3

202 /

PROVIDE A PLURALITY OF ALGORITHMIC ELEMENTS

II

/

MAP ELEMENTS ONTO NON-HOMOGENOUS NODES

206 v

/

UTILIZE MAPPED ELEMENTS TO PROVIDE APPROPRIATE HARDWARE FUNCTIONS

FIG. 2

PROVIDE CODE TO SIMULATE DEVICE

II

IDENTIFY HOT SPOTS OF HIGH POWER AND HIGH DATA MOVEMENT

FIG. 3

/

US. Patent

May 15, 2012

Sheet 3 of3

US RE43,393 E

402 /

CHOOSE MIXTURE OF COMPOSITE BLOCKS 404 v

/

INVOKE SIMULATOR TO PROVIDE PERFORMANCE METRICS

I

$06

REVIEW PERFORMANCE METRICS AND COMPARE TO CHOSEN METRICS

V

LL08

ADJUST MIXTURE UNTIL CHOSEN PERFORMANCE METRICS ARE MET 410 r

/

SAVE MIXTURE DATA

FIG. 4

g

/ 602

/ 604

III E606

I 608 FIG. 5

US RE43,393 E 1

2

METHOD AND SYSTEM FOR CREATING AND PROGRAMMING AN ADAPTIVE COMPUTING ENGINE

mobile terminal. There typically is only a single channel is

processed and for signi?cant performance and power saving to be realized then many algorithmic elements must be accel erated. The problem, however, is that the size of the silicon is bounded by cost constraints and a designer can not justify

Matter enclosed in heavy brackets [ ] appears in the original patent but forms no part of this reissue speci?ca

added speci?c acceleration circuitry for every algorithm ele ment. However, the QCELP algorithm itself consists of many individual algorithm elements (1 7 of the mo st frequently used

tion; matter printed in italics indicates the additions made by reissue.

algorithmic elements): . Pitch Search Recursive Convolution . Pitch Search Autocorrelation of Exx

CROSS REFERENCE T0 RELATED APPLICATIONS

. Pitch Search Correlation of Exy . Pitch Search Autocorrelation of Eyy . Pitch Search Pitch Lag and Minimum Error

This application claims the benefit ofpriorily to US. Pro visional Application No. 60/3 78, 088, ?led May 13, 2002.

. Pitch Search Sinc Interpolation of Exy . Pitch Search Interpolation of Eyy

FIELD OF INVENTION

The present invention relates to adaptive computing machines, and more particularly to creating and program

. Codebook Search Recursive convolution

20

ming an adaptive computing engine.

9. Codebook Search Autocorrelation of Eyy l0. Codebook Search Correlation of Exy ll. Codebook Search Codebook index and Minimum Error 12. Pole Filter 13. Zero Filter

BACKGROUND OF THE INVENTION

14. Pole 1 Tap Filter

The electronics industry has become increasingly driven to meet the demands of high-volume consumer applications, which comprise a majority of the embedded systems market. Examples of consumer applications where embedded sys

25

16. Line Spectral Pair Zero search 17. Divider For example, in a mobile terminal implementation of the

tems are employed include handheld devices, such as cell

phones, personal digital assistants (PDAs), global positioning

QCELP algorithm, if the pitch computation is accelerated, the 30

system (GPS) receivers, digital cameras, etc. By their nature, these devices are required to be small, low-power, light weight, and feature-rich. Thus, embedded systems face chal lenges in producing performance with minimal delay, mini mal power consumption, and at minimal cost. As the numbers and types of consumer applications where embedded systems are employed increases, these challenges become even more

increased cost of silicon area. By itself, the gain for the cost is con area of a single accelerator there was an IC that can adapt 35

itself in time to be able to become the accelerator for each of the 17 algorithmic elements, it would cost 80% of the cost for

a single adaptable accelerator. Normal design approaches for embedded systems tend to fall in one of three categories: an ASIC (application speci?c

Each of these applications typically comprises a plurality

integrated circuit) approach; a microprocessor/DSP (digital 40

ticular application. An algorithm typically includes multiple smaller elements called algorithmic elements which when performed produce a work product. An example of an algo rithm is the QCELP (QUALCOMM code excited linear pre

diction) voice compression/decompression algorithm which

performance/power dissipation is reduced by 20% for an

not economically justi?able. However, if for the cost in sili

pressing. of algorithms which perform the speci?c function for a par

1 5 . Cosine

45

is used in cell phones to compress and decompress voice in

signal processor) approach; and an FPGA (?eld program mable gate array) approach. Unfortunately, each of these approaches has drawbacks. In the ASIC approach, the design tools have limited ability to describe the algorithm of the system. Also, the hardware is ?xed, and the algorithms are frozen in hardware. For the microprocessor/DSP approach, the general-purpose hardware is ?xed and inef?cient. The

order to save wireless spectrum.

algorithms may be changed, but they have to be arti?cially

Conventional systems in hardware architectures provide a speci?c hardware accelerator typically for one or two algo rithmic elements. This has typically suf?ced in the past since mo st hardware acceleration has been performed in the realm of infrastructure base stations. There, many channels are pro cessed (typically 64 or more) and having one or two hardware

partitioned and constrained to match the hardware. With the FPGA approach, use of the same design tools as for the ASIC 50

power and are too dif?cult to recon?gure to meet the changes

of product requirements as future generations are produced.

accelerations, which help accelerate the two algorithmic ele ments, can be justi?ed. Best current practices are to place a

An alternative is to attempt to overcome the disadvantages 55

Digital Signal Processing IC alongside the speci?c hardware acceleration circuitry and then arraying many of these together in order to process the workload. Since any gain in performance or power dissipation is multiplied by the number of channels (64) this approach is currently favored. For example, in a base station implementation of the

approach result in the same problem of limited ability to describe the algorithm. Further, FPGAs consume signi?cant

of each of these approaches while utilizing their advantages. Accordingly, what is desired is a system in which more e?i cient consumer applications can be created and programmed

than when utilizing conventional approaches. 60

SUMMARY OF THE INVENTION

QCELP algorithm acceleration the pitch computation will

A system for creating an adaptive computing engine (ACE)

result in a 20% performance/power savings per channel. 20% of the processing which is done across 64 channels results in

The shortcomings with this approach are revealed when

is disclosed. The system comprises a plurality of algorithmic elements capable of being con?gured into an adaptive com puting engine, and means for mapping the operations of the plurality of algorithmic elements to non-homogenous nodes

attempts are made to accelerate an algorithmic element in a

by using computational and data analysis. The system and

a signi?cantly large performance/power savings.

65

US RE43,393 E 3

4

method also includes means for utilizing the mapped algo rithmic elements to provide the appropriate hardWare func tion. A system and method in accordance With the present invention provides the ability to bring into existence e?icient hardWare accelerators for a particular algorithmic element

illustrated, a matrix interconnection netWork 110, and pref erably also includes a memory 140.

A signi?cant departure from the prior art, the ACE 100 does not utiliZe traditional (and typically separate) data and instruction busses for signaling and other transmission

and then to reuse the same silicon area to bring into existence a neW hardWare accelerator for the next algorithmic element.

betWeen and among the recon?gurable matrices 150, the con troller 120, and the memory 140, or for other input/output

With the ability to optimiZe operations of anACE in accor dance With the present invention, an algorithm is alloWed to

information are transmitted betWeen and among these ele

run on the most ef?cient hardWare for the minimum amount

ments, utiliZing the matrix interconnection netWork 110, Which may be con?gured and recon?gured, in real-time, to

(“I/ O”) functionality. Rather, data, control and con?guration

of time required. Further, more adaptability is achieved for a Wireless system to perform the task at hand during run time. Thus, algorithms are no longer required to be altered to ?t predetermined hardWare existing on a processor, and the opti mum hardWare required by an algorithm comes into existence for the minimum time that the algorithm needs to run. BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a preferred apparatus in accordance With the present invention. FIG. 2 illustrates a simple ?oW chart of providing an ACE in accordance With the present invention. FIG. 3 is a How chart Which illustrates the operation of the pro?ler in accordance With the present invention. FIG. 4 is a How chart Which illustrates optimiZing the

20

25

mixture of composite blocks. FIG. 5 illustrates an integrated environment in accordance

With the present invention. 30

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and system for

optimiZing operations of an ACE. The folloWing description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent

application and its requirements. Various modi?cations to the preferred embodiment Will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is

35

provide any given connection betWeen and among the recon ?gurable matrices 150, the controller 120 and the memory 140, as discussed in greater detail beloW. The memory 140 may be implemented in any desired or preferred Way as knoWn in the art, and may be included Within the ACE 100 or incorporated Within another IC or portion of an IC. In the preferred embodiment, the memory 140 is included Within the ACE 100, and preferably is a loW poWer consumption random access memory (RAM), but also may be any other form of memory, such as ?ash, DRAM, SRAM, MRAM, ROM, EPROM or EEPROM. In the preferred embodiment, the memory 140 preferably includes direct memory access (DMA) engines, not separately illustrated. The controller 120 is preferably implemented as a reduced instruction set (“RISC”) processor, controller or other device or IC capable of performing the tWo types of functionality discussed beloW. The ?rst control functionality, referred to as “kemal” control, is illustrated as kernal controller (“KARC”) 125, and the second control functionality, referred to as “matrix” control, is illustrated as matrix controller (“MARC”) 130. The control functions of the KARC 125 and MARC 130 are explained in greater detail beloW, With refer ence to the con?gurability and recon?gurability of the various matrices 150, and With reference to the preferred form of

combined data, con?guration and control information referred to herein as a “silverware” module.

The matrix interconnection netWork 110 of FIG. 1, and its

subset interconnection netWorks collectively and generally 40

referred to as “interconnect”, “interconnection(s)” or “inter

not intended to be limited to the embodiments shoWn but is to

connection netWork(s)”, may be implemented as knoWn in

be accorded the Widest scope consistent With the principles and features described herein. An approach that is dynamic both in terms of the hardWare

the art, such as utiliZing the interconnection netWorks or sWitching fabrics of FPGAs, albeit in a considerably more

resources and algorithms is emerging and is referred to as an

limited, less “rich” fashion, to reduce capacitance and increase speed of operation. In the preferred embodiment, the

adaptive computing engine (ACE) approach. ACEs can be

various interconnection netWorks are implemented as

recon?gured upWards of hundreds of thousands of times a second While consuming very little poWer. The ability to

described, for example, in US. Pat. Nos. 5,218,240, 5,336, 950, 5,245,277, and 5,144,166. These various interconnec tion netWorks provide selectable (or sWitchable) connections

recon?gure the logical functions inside the ACE at high speed and “on-the-?y”, i.e., While the device remains in operation,

50

Similarly, the ACE operates With dynamic algorithms, Which refers to algorithms With constituent parts that have temporal

generally referred to herein as “con?guration information”.

elements and thus are only resident in hardWare for short

portions of time as required.

betWeen and among the controller 120, the memory 140, the

various matrices 150, providing the physical basis for the con?guration and recon?guration referred to herein, in response to and under the control of con?guration signaling

describes the dynamic hardWare resource feature of the ACE.

55

In addition, the various interconnection netWorks including

While the advantages of on-the-?y adaptation in ACE

110 and the interconnection netWorks Within each of the

approaches are easily demonstrated, a need exists for a tool that supports optimiZing of the ACE architecture for a par ticular problem space. FIG. 1 is a block diagram illustrating a

matrices (not shoWn) provide selectable or sWitchable data, input, output, control and con?guration paths, betWeen and

preferred apparatus 1 00 in accordance With the present inven

60

among the controller 120, the memory 140, the various matri ces 150, and the computational units (not shoWn) and com

tion. The apparatus 100, referred to herein as an adaptive

putational elements (not shoWn) Within the matrices 150 in

computing machine (“ACE”) 100, is preferably embodied as

lieu of any form of traditional or separate input/output busses, data busses, and instruction busses. The various matrices 150 are recon?gurable and heteroge

an integrated circuit, or as a portion of an integrated circuit

having other, additional components. In the preferred embodiment, and as discussed in greater detail beloW, the ACE 100 includes a controller 120, one or more recon?g

urable matrices 150, such as matrices 150A through 150N as

65

neous, namely, in general, and depending upon the desired con?guration: recon?gurable matrix 150A is generally dif ferent from recon?gurable matrices 150B through 150N;

US RE43,393 E 5

6

recon?gurable matrix 150B is generally different from recon

take many clock cycles to perform. What this invention Will

?gurable matrices 150A and 150C through 150N; recon?g

identify Which is not performed in existing pro?les is identify

urable matrix 150C is generally different from recon?gurable

not only the computation hot spots, but also memory hot spots as Well as data movement hotspots. Line 7 and line 11 are

matrices 150A, 150B and 150D through 150D, and so on. The various recon?gurable matrices 150 each generally contain a different or varied mix of computation units, Which in turn generally contain a different or varied mix of ?xed, applica tion speci?c computational elements, Which may be con nected, con?gured and recon?gured in various Ways to per form varied functions, through the interconnection netWorks. In addition to varied internal con?gurations and recon?gura tions, the various matrices 150 may be connected, con?gured and recon?gured at a higher level, With respect to each of the other matrices 150, through the matrix interconnection net Work 110. FIG. 2 illustrates a simple ?oW chart of providing an ACE in accordance With the present invention. First, a plurality of algorithmic elements are provided, via step 202. Next, the algorithmic elements are mapped onto non-homogeneous,

identi?ed as data movement hot spots since the data Will be input from the producer B on line 7 and the sum Will be sent to consumer C in line 11. Also identi?ed by the pro?ler as a

secondary data movement hot spot is line 2 Where 1024 values from ProducerA Will be moved into the array X. Finally, line 9 is identi?ed as a data movement hot spot since an element of the array x and the temp value are summed With the variable sum and the result placed back into the variable sum. The pro?le Will also identify on line 9 the array x as a memory

hotspot folloWed, secondarily, by line 2 array x as a memory

hotspot. With this information from the pro?ler, the ACE can

instantiate the folloWing hardWare circuitry to accelerate the performance as Well as loWer the poWer dissipation of this

algorithmic fragment (algorithmic element) by putting the building block elements together. Data movements Will be accelerated by constructing from the loW level ACE building

i.e., heterogeneous, nodes by using data and computational analyses, via step 204. Finally, the mapped algorithmic ele

blocks DMA (Direct Memory Address) hardWare to perform

ments Within the node are utiliZed to provide the appropriate

hardWare function, via step 206. In a preferred embodiment, the algorithmic elements Within a node are segmented to over

optimiZe performance. The segmentation can either be spa

25

construct a Multiply Accumulate hardWare accelerator.

cial, that is, ensuring elements are close to each other, or the segmentation can be temporary, that is, the elements come into existence at different points in time.

Finally, the information from the pro?ler on the memory hot spot on line 2 and line 9 Will alloW the ACE to either build a

The data and computational and analysis of the algorithmic mapping step 204 is provided through the use of a pro?ler. The operation of the pro?ler is described in more detail herein

beloW in conjunction With the accompanying ?gure. FIG. 3 is a How chart Which illustrates the operation of the pro?ler in accordance With the present invention. First code is provided to simulate the device, via step 302. From the design code hot spots are identi?ed, via step 304. Hot spots are those operations Which utiliZe high poWer and/

35

40

A code that is to be pro?led is shoWn beloW: 45

line 1:

for (i = 0 to 1023) {

line 2: line 3: line 4:

for(;;)

// do this loop forever

line 6:

sum = 0

// initialize variable sum

line 7:

temp = get data from producer B

// get a neW value

line 8:

for (j = to 1023) {

line 9:

sum = sum + x[i] * temp

50

// do this loop 1024 times // perform multiply

}

line 11:

send sum to consumer C

line 12:

}

ers, adders, double adders, multiply double accumulators, radix 2, DCT, FIR, IIR, FFT, square root, divides. A second type may include Taylor Series approximation, CORDIC, sines, cosines, polynomial evaluations. A third type may be labeled FSM (?nite status machine) blocks, While a fourth type may be termed FPGA blocks. Bit processing blocks may form a ?fth type, and memory blocks may form a sixth type of

accumulate

line 10:

means greater capacitance, Which is one of the prime ele ments Which dictates poWer consumption. The resources needed for implementing the algorithmic elements specify the types of composite blocks needed for a given problem, the number of each of the types that are needed, and the number of composite blocks per minimatrix. The composite blocks and their types are preferably stored in a database. By Way of example, one type of composite block

may be labeled linear composite blocks and include multipli

// do this loop 1024 times

x[i] = get data from producerA // ?ll up an array of 1024

line 5:

memory array of exactly 1024 elements from the loW level ACE building blocks or ensure that the smallest possible memory Which can ?t 1024 elements is used. Optimal siZing of memory is mandatory to ensure loW poWer dissipation. In addition, the pro?ling information on the memory hot spot on line 9 is used to ensure that the ACE Will keep the circuitry for the multiply accumulate physically local to the array x to ensure the minimum physical distance Which is directly pro

portional to the effective capacitanceithe greater the dis tance betWeen Where data is kept and Where data is processed

or require a high amount of movement of data (data move

ment). The identi?cation of hot spots, in particular the iden ti?cation of data movement is important in optimiZing the performance of the implemented hardWare device. A simple example of the operation of the pro?ler is described beloW.

the data movement on lines 2, 9, 7, 11. A speci?c hardWare accelerator to perform the computation on line 9 Will be constructed from the loWer level ACE building blocks to

55 // send sum

composite block. FIG. 4 is a How chart Which illustrates optimiZing the

mixture of composite blocks. First, a mixture of composite blocks are chosen, via step 402. Given a certain mixture of

composite blocks, composite block types, and interconnect

This illustrates three streams of data, producer A on line 2, producer B on line 6 and a consumer of data on line 10. The

60

density, a simulator/resource estimator/scheduler is invoked

to provide performance metrics, via step 404. In essence, the performance metrics determine the ef?ciency of the architec ture to meet the desired goal. Thus, the operations by the

producers or consumers may be variables, may be pointers, may be arrays, or may be physical devices such as Analog to Data Converters (ADC) or Data to Analog Converters (DAC). Traditional pro?lers Would identify line 8 as a computational

designated hardWare resources are simulated to identify the

computations. Line 8 consists of a multiply folloWed by an

metrics of the combination of composite blocks. The metrics produced by the simulation are then revieWed to determine

accumulation Which, on some hardWare architecture, may

Whether they meet the chosen performance metrics, via step

hot spot an area of the code Which consumes large amounts of

65

US RE43,393 E 7

8

406. When the chosen performance metrics are not met, the

e?ts from the optimiZing of an ACE. As a vector quantiZer

combination of resources provided by the composite blocks is adjusted until the resulting metrics are deemed good enough, via step 408. By Way of example, computation poWer e?i ciency (CPE) refers to the ratio of the number of gates actively Working in a clock cycle to the total number of gates in the

based speed codec, a QCELP coding speech compression engine has eight inner loops/algorithms that consume most of the poWer. These eight algorithms include code book search,

pitch search, line spectral pairs (LSP) computation, recursive convolution and four different ?lters. The QCELP engine thus provides an analyzer/compressor and synthesiZer/de

device. A particular percentage for CPE can be chosen as a

performance metric that needs to be met by the combination

compressor With variable compression ranging from 13 to 4

of composite blocks.

kilobits/ second (kbit/ s).

Once the chosen performance metrics are met, the infor mation about Which composite blocks Were combined to

With the analyZer operating on a typical DSP requiring about 26 MHZ of computational poWer, 90 percent of the

achieve the particular design code is stored in a database, via step 410. In this manner, subsequent utiliZation of that design code to optimiZe an ACE is realiZed by accessing the saved

poWer and performance is dissipated by 10 percent of the code, since the synthesiZer needs only about half that perfor

data. For purposes of this discussion, these combinations are referred to as data?oW graphs. To implement the How chart of FIG. 4 an integrated envi ronment is provided to alloW a user to make the appropriate tradeoffs betWeen poWer performance and data movement. FIG. 5 illustrates an integrated environment 600 in accor

mance. For purposes of this disclosure, a small portion of

code that requires a large portion of the poWer and perfor mance dissipated is referred to as a hot spot in the code. The

optimiZation of an ACE in accordance With the present inven tion preferably occurs such that it appears that a small piece of silicon is time-sliced to make it appear as anASIC solution in 20

dance With the present invention. A legacy code of a typical design on one chart 602 is provided alongside the correspond ing ACE architecture on the other chart 604. PoWer, perfor mance and data movement readings are provided at the bot tom of each of the charts 606 and 608. In a preferred

25

embodiment, it Would be possible to drag and drop code from the legacy chart 602 onto one of the mini-matrices of the ACE chart 604. In a preferred embodiment there Would be imme diate feedback, that is, as a piece of code Was dropped on the ACE chart 604, the poWer energy and data movement reading

30

process an ACE Which is optimized for a particular perfor mance can be provided. 35

over, a slice of ACE material builds and dismantles the

equivalent of hundreds or thousands of ASIC chips, each optimiZed to a speci?c task. Since each of these ACE “archi tectures” is optimiZed so explicitly, conventional silicon can not attempt its recreation, conventional ASIC chips Would be far too large, and microprocessors/DSPs far too customiZed. Further, the ACE alloWs softWare algorithms to build and then embed themselves into the most ef?cient hardWare possible for their application. This constant conversion of “software” into “hardWare” alloWs algorithms to operate faster and more

codec every 20 milliseconds, each inner loop is applied 50 times a second. By optimiZing the ACE, the hardWare required to run each inner loop algorithm 400 times a second is brought into existence. With the ability to optimiZe operations of anACE in accor dance With the present invention, an algorithm is alloWed to run on the most ef?cient hardWare for the minimum amount

Would change to re?ect the change. Accordingly, through this As mentioned before, the ACE can be segmented spatially and temporally to ensure that a particular task is performed in the optimum manner. By adapting the architecture over and

handling the hot spots of coding. Thus, for the example QCELP vocoder, When data comes into the QCELP speech

40

of time required. Further, more adaptability is achieved for a Wireless system to perform the task at hand during run time. Thus, algorithms are no longer required to be altered to ?t predetermined hardware existing on a processor, and the opti mum hardWare required by an algorithm comes into existence for the minimum time that the algorithm needs to run. Although the present invention has been described in accordance With the embodiments shoWn, one of ordinary skill in the art Will readily recogniZe that there could be variations to the embodiments and those variations Would be Within the spirit and scope of the present invention. Accord ingly, many modi?cations may be made by one of ordinary skill in the art Without departing from the spirit and scope of

the appended claims. What is claimed is: 45

1. A system for creating an adaptive computing engine

(ACE), the system comprising:

e?iciently than With conventional chip technology. ACE tech nology also extends conventional DSP functionality by add

algorithmic elements adaptable for use in the ACE and

ing a greater degree of freedom to such applications as Wire

means for mapping the algorithmic operations to hetero

less designs that so far have been attempted by changing

con?gured to provide algorithmic operations; 50

Wireless handset can be adapted to become a handwriting or

55

voice recognition system or to do on-the-?y cryptography. The performance of these and many other functions at hard Ware speeds may be readily recogniZed as a user bene?t While

greatly loWering poWer consumption Within battery-driven

products.

60

In a preferred embodiment, the hardWare resources of an ACE are optimiZed to provide the necessary resources for those parts of the design that most need those resources to

by a recon?gurable interconnection netWork, the map ping by the mapping means including selecting a com bination of ACE building blocks from ACE building block types for the appropriate hardWare circuit func

tions; and means for utiliZing the algorithmic operations such that the heterogeneous nodes are optimally con?gured to pro vide the appropriate hardWare circuit functions, the uti

liZing by the utiliZing means including simulating per formance of the ACE With the combination of ACE

building blocks and altering the combination of ACE

achieve ef?cient and effective performance. By Way of example, the operations of a vocoder, such as a QCELP (QUALCOMM’ s Code Excited Linear Predictive), provide a design portion of a cellular communication device that ben

geneous nodes such that the heterogeneous nodes are

initially con?gured to provide appropriate hardWare cir cuit functions that perform the algorithmic operations, the heterogeneous nodes being coupled With each other

softWare. Adapting the ACE chip architecture as necessary intro duces many neW system features Within reach of a single ACE-based platform. For example, With an ACE approach, a

65

building blocks until predetermined performance stan dards that determine an ef?ciency of the ACE are met

While simulating performance of the ACE.

US RE43,393 E 9

10 utiliZing the algorithmic operations such that the heteroge

2. The system of claim 1 wherein the ACE building blocks types include linear computation block types, ?nite state machine block types, ?eld programmable gate array block types, bit processor block types, and memory block types. 3. The system of claim 1 Wherein the mapping means further includes a pro?ler that comprises:

neous nodes are optimally con?gured to provide the

appropriate hardWare circuit functions, the utiliZing comprising simulating performance of the ACE With the combination of ACE building blocks and altering the combination of ACE building blocks until predeter

means for providing code to simulate a hardWare design

mined performance standards that determine an e?i ciency of the ACE are met While simulating performance of the ACE. 7. The method of claim 6 Wherein the ACE building blocks

that performs the algorithmic operations; and means for identifying one or more hot spots in the code, Wherein the identi?ed hot spots are those areas of code

requiring high poWer and/ or high data movement and the mapping means selects the combination of ACE build ing blocks based on the identi?ed hot spots.

types include linear computation block types, ?nite state machine block types, ?eld programmable gate array block types, bit processor block types, and memory block types. 8. The method of claim 6 Wherein the mapping further includes pro?ling using a pro?ler, Wherein the pro?ling com

4. The system of claim 3 Wherein each hot spot comprises a computational hot spot or a data movement hot spot. 5. The system of claim 4 Wherein the mapping means uses

prises:

each data movement hot spot to restrict high data movements to a minimum physical distance in the ACE.

providing code to simulate a hardWare design that performs

the algorithmic operations; and

6. A method for creating an adaptive computing engine

(ACE), the method comprising:

20

providing algorithmic elements adaptable for use in the

high poWer and/or high data movement and the mapping selects the combination of ACE building blocks based

ACE and con?gured to provide algorithmic operations; mapping using a processor, the algorithmic operations to heterogeneous nodes such that the heterogeneous nodes are initially con?gured to provide appropriate hardWare circuit functions that perform the algorithmic opera

tions, the heterogeneous nodes being coupled With each other by a recon?gurable interconnection netWork, the mapping including selecting a combination of ACE building blocks from ACE building block types for the appropriate hardWare circuit functions; and

identifying one or more hot spots in the code, Wherein the identi?ed hot spots are those areas of code requiring

on the identi?ed hot spots.

9. The method of claim 8 Wherein each hot spot comprises 25

a computational hot spot or a data movement hot spot.

10. The method of claim 9 Wherein the mapping uses each data movement hot spot to restrict high data movements to a

minimum physical distance in the ACE.

(19) United States

717/114,119,149,150,160. See application ?le for complete search history. .... Best current practices are to place a ... bounded by cost constraints and a designer can not justify ... Divider. For example, in a mobile terminal implementation of the.

859KB Sizes 1 Downloads 156 Views

Recommend Documents

(19) United States
Cyclosporins, British patent application 2222770 A discloses galenic formulations ... Ascomycins, of Which FK-506 and ascomycin are the best known, comprise ...

(19) United States
Patent Application Publication May 10, 2012 Sheet 1 0f 8. US 2012/0113143 ..... as those forAndroid (Android is a trademark of Google, Inc.) and more recently ...

(19) United States
H04N 9/74. (2006.01). (11). The replacement of the data for the run length coding ...... A machine readable storage device, in particular an optical disc, having ...

(19) United States
7/1997 Tipton et al. 5,864,397 ... into a chemical Vessel through a small diameter ?tting While. G01] 3/44 ... Molecular spectroscopy is a family on analytical tech.

(19) United States
Thus, a cell voltage (V c) that is a sum of the wall voltage. (Vw) and .... select cells C roW by roW. .... the sustain pulse Ps is applied to the main electrodes XliXn.

(19) United States
ring information regarding fax pages and the actual content of the fax message. ..... reason, access servers in the IP netWork 46 are also called data pumps.

(19) United States
(75) Inventors: Rick C. Stevens, Apple Valley, MN ... An optical sensing device uses a set of source mirrors direct ..... ena of interest at discrete times t1 and t2.

(19) United States
(58) Field of Classi?cation Search . .... software according to the requirements of resolution, total track (TT) ... While connecting the compound lens with the basic.

(19) United States
105: PLSIGNAL cmcun. 105. 102. 'R 108 ; ANTEN'IA. SPSOEQE'SNG. 107. 0 103-1. &. 101 :gmsmume. RAD'O. MULTIPLEX. SPREADMG 104" SEPARATION.

(19) United States
Ames test and have a PII, or skin irritation, value of 2 or less. 6 Claims, No ..... bad been added, and histidine-free media devoid of the meta bolically active ...

(19) United States
ing energy to the ?rst translation module and the light sources. Moreover, a second translation module connects with the light sources and the image capture ...

(19) United States
aspects, advantages, and novel features of the invention are described herein. .... metadata into custom playlists, (i.e., lists of tracks that the user Wants played in a ... installed in a dynamic link library, or may be Written in an interpretive l

(19) United States
Mar 22, 2002 - a catalyst for the production of a polyurethane foam With speci?c properties. ... tion to too high a degree, carbon dioxide Will be evolved before suf?cient ..... used in automotive seating) containing a catalyst such as the.

(19) United States
12, there is some cell phone designed such ... display surface of a sub liquid crystal display panel 7 smaller ... the display portion housing 2 of the cell phone.

(19) United States
knoWn to those skilled in the art of the present invention. In another embodiment .... illustration and not as a limitation, a reporting station 330 may be deployed at ...

(19) United States
alloW external storage of the recorded voice data irrespective of Whether poWer of the mobile radio telephone is on or off. As previously stated, in accordance ...

(19) United States
7/1985 Spiegelet al. (21) Appl.No.: 10/636,908. 4,606,582 A. 8/1986 Wérren. 4,720,149 A * 1/1988 Thlssen et al. ........... .. 301/5.21. (22) Filed: Aug. 7, 2003. 5,031,966 A. 7/1991 Oakey ..... one of the WindoWs 40 includes a cut-out portion 42 (s

(19) United States
mal COP is maintained (see patent documents 1 and 2 for ... [Patent Document 1] ..... A room is heated utiliZing this radiation. Then, the CO2 refrigerant is.

(19) United States
(73) Asslgnee: Warsaw Orthopedic, Inc., WarsaW, IN. 4,757,983 A .... Goteborg; Sweden; 1985 Butterworth & Co. Publishers ..... is transmitted by telephone, computer datalink or documen .... confronting concaval-convex supports, each support.

(19) United States
particular to GUI's for devices with a relatively small screen real estate, such as handheld information appliances (palm tops, mobile phones, Web pads, PDA's or ...

(19) United States
Information and Computer Science, pp. 1428. John David Cavanaugh .... E77iB, No. 3 1994, pp. 1*13. H. Esaki et al, “Class D Service Architecture in an ATMiln.

(19) United States
ee app lea Ion e or Comp e e Seam 15 Dry number and because the intended ... same place, different places in one building, or distributed throughout different ...

(19) United States
class 2 transactions, the receiver replies with one result mes sage that ... ment message containing the packet sequence number of that ..... a mobile phone. 16.

(19) United States
Seo, Kyunggi-do (KR). (73) Assignee: LG .... check the connected equipments. J. + ...... (b) checking Whether the requested feature information is received or not ...