834 ieee transactions on computers, vol. 50, no. 8, … · an architecture that can overcome this...

13
Scheduled Dataflow: Execution Paradigm, Architecture, and Performance Evaluation Krishna M. Kavi, Senior Member, IEEE, Roberto Giorgi, Member, IEEE, and Joseph Arul, Student Member, IEEE Abstract—In this paper, the Scheduled Dataflow (SDF) architecture—a decoupled memory/execution, multithreaded architecture using nonblocking threads—is presented in detail and evaluated against Superscalar architecture. Recent focus in the field of new processor architectures is mainly on VLIW (e.g., IA-64), superscalar, and superspeculative designs. This trend allows for better performance, but at the expense of increased hardware complexity and, possibly, higher power expenditures resulting from dynamic instruction scheduling. Our research deviates from this trend by exploring a simpler, yet powerful execution paradigm that is based on dataflow and multithreading. A program is partitioned into nonblocking execution threads. In addition, all memory accesses are decoupled from the thread’s execution. Data is preloaded into the thread’s context (registers) and all results are poststored after the completion of the thread’s execution. While multithreading and decoupling are possible with control-flow architectures, SDF makes it easier to coordinate the memory accesses and execution of a thread, as well as eliminate unnecessary dependencies among instructions. We have compared the execution cycles required for programs on SDF with the execution cycles required by programs on SimpleScalar (a superscalar simulator) by considering the essential aspects of these architectures in order to have a fair comparison. The results show that SDF architecture can outperform the superscalar. SDF performance scales better with the number of functional units and allows for a good exploitation of Thread Level Parallelism (TLP) and available chip area. Index Terms—Multithreaded architectures, dataflow architectures, superscalar, decoupled architectures, Thread Level Parallelism. æ 1 INTRODUCTION T HE performance gap between processors and memory has widened in recent years and the trend appears to continue in the foreseeable future. In this paper, we present an architecture that can overcome this problem, with better scalability than superscalar processors with increased number of pipelines. Our architecture is based on multi- threading and dataflow concepts. Multithreading has been touted as a solution to minimize the loss of CPU cycles by executing several instruction streams simultaneously. While there are several different approaches to multithreading, there is a consensus that multithreading, in general, achieves higher instruction issue rates on processors that contain multiple functional units (e.g., Superscalar and VLIW) or multiple processing elements (i.e., Chip Multiprocessors) [11], [23], [24], [40], [42], [44]. Nevertheless, research is open to find an appropriate multithreaded model and implementation to achieve the best possible performance. Recent efforts like the MP98 [15] show that attention to data-dependencies and hardware support for forking multiple threads help in- crease the performance. We have found that the use of nonblocking dataflow- based threads are appropriate for improving the perfor- mance of superscalar architectures. Dataflow ideas are often utilized in modern processor architectures. However, these architectures rely on conventional programming paradigms and perform runtime transformations of the control-flow programs into dataflow programs, requiring complex hardware to detect data and control hazards, and reorder and issue multiple instructions. Our architecture differs from other multithreaded architectures in two ways: 1) Our programming paradigm is based on dataflow, which eliminates the need for runtime instruction scheduling, thus reducing the hardware com- plexity significantly and 2) complete decoupling of all memory accesses from execution pipeline. The underlying dataflow and nonblocking models permit for clean separa- tion of memory accesses from execution (which is very difficult to coordinate in other programming models). Data is preloaded into an enabled thread’s register context prior to its scheduling on the execution pipeline. After a thread completes execution, the results are poststored from its registers into memory. The instruction set implements dataflow computational model, while the execution engine relies on control-flow-like sequencing of instructions (hence the name Scheduled Dataflow). Unlike Superscalar, our architecture performs no (dynamic) Out-of-Order execution and thus eliminates the need for complex instruction issue and retiring hardware. These hardware savings could be utilized to include either more processing units on a chip or more register sets to increase the degree of multithreading (i.e., Thread Level Parallelism). More- over, it was stated that a significant power is expended by instruction issue logic and the power consumption increases quadratically with the size of the instruction issue width [27], [43]. Some researchers are exploring 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001 . K.M. Kavi and J. Arul are with the Department of Electrical and Computer Engineering, University of Alabama at Huntsville, Huntsville, AL 35899. E-mail: [email protected], [email protected]. . R. Giorgi is with the Departimento di Ing. Informazione, Universita` di Siena, 56 Via Roma, 53100 Siena, Italy. E-mail: [email protected]. Manuscript received 1 Sept. 2000; accepted 8 Feb. 2001. For information on obtaining reprints of this article, please send e-mail to: [email protected], and reference IEEECS Log Number 113587. 0018-9340/01/$10.00 ß 2001 IEEE

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

Scheduled Dataflow: Execution Paradigm,Architecture, and Performance Evaluation

Krishna M. Kavi, Senior Member, IEEE, Roberto Giorgi, Member, IEEE, and

Joseph Arul, Student Member, IEEE

AbstractÐIn this paper, the Scheduled Dataflow (SDF) architectureÐa decoupled memory/execution, multithreaded architecture

using nonblocking threadsÐis presented in detail and evaluated against Superscalar architecture. Recent focus in the field of new

processor architectures is mainly on VLIW (e.g., IA-64), superscalar, and superspeculative designs. This trend allows for better

performance, but at the expense of increased hardware complexity and, possibly, higher power expenditures resulting from dynamic

instruction scheduling. Our research deviates from this trend by exploring a simpler, yet powerful execution paradigm that is based on

dataflow and multithreading. A program is partitioned into nonblocking execution threads. In addition, all memory accesses are

decoupled from the thread's execution. Data is preloaded into the thread's context (registers) and all results are poststored after the

completion of the thread's execution. While multithreading and decoupling are possible with control-flow architectures, SDF makes it

easier to coordinate the memory accesses and execution of a thread, as well as eliminate unnecessary dependencies among

instructions. We have compared the execution cycles required for programs on SDF with the execution cycles required by programs on

SimpleScalar (a superscalar simulator) by considering the essential aspects of these architectures in order to have a fair comparison.

The results show that SDF architecture can outperform the superscalar. SDF performance scales better with the number of functional

units and allows for a good exploitation of Thread Level Parallelism (TLP) and available chip area.

Index TermsÐMultithreaded architectures, dataflow architectures, superscalar, decoupled architectures, Thread Level Parallelism.

æ

1 INTRODUCTION

THE performance gap between processors and memoryhas widened in recent years and the trend appears to

continue in the foreseeable future. In this paper, we presentan architecture that can overcome this problem, with betterscalability than superscalar processors with increasednumber of pipelines. Our architecture is based on multi-threading and dataflow concepts.

Multithreading has been touted as a solution to minimizethe loss of CPU cycles by executing several instructionstreams simultaneously. While there are several differentapproaches to multithreading, there is a consensus thatmultithreading, in general, achieves higher instruction issuerates on processors that contain multiple functional units(e.g., Superscalar and VLIW) or multiple processingelements (i.e., Chip Multiprocessors) [11], [23], [24], [40],[42], [44]. Nevertheless, research is open to find anappropriate multithreaded model and implementation toachieve the best possible performance. Recent efforts likethe MP98 [15] show that attention to data-dependencies andhardware support for forking multiple threads help in-crease the performance.

We have found that the use of nonblocking dataflow-based threads are appropriate for improving the perfor-mance of superscalar architectures. Dataflow ideas are often

utilized in modern processor architectures. However, thesearchitectures rely on conventional programming paradigmsand perform runtime transformations of the control-flowprograms into dataflow programs, requiring complexhardware to detect data and control hazards, and reorderand issue multiple instructions.

Our architecture differs from other multithreadedarchitectures in two ways: 1) Our programming paradigmis based on dataflow, which eliminates the need for runtimeinstruction scheduling, thus reducing the hardware com-plexity significantly and 2) complete decoupling of allmemory accesses from execution pipeline. The underlyingdataflow and nonblocking models permit for clean separa-tion of memory accesses from execution (which is verydifficult to coordinate in other programming models). Datais preloaded into an enabled thread's register context priorto its scheduling on the execution pipeline. After a threadcompletes execution, the results are poststored from itsregisters into memory. The instruction set implementsdataflow computational model, while the execution enginerelies on control-flow-like sequencing of instructions(hence the name Scheduled Dataflow). Unlike Superscalar,our architecture performs no (dynamic) Out-of-Orderexecution and thus eliminates the need for complexinstruction issue and retiring hardware. These hardwaresavings could be utilized to include either more processingunits on a chip or more register sets to increase the degreeof multithreading (i.e., Thread Level Parallelism). More-over, it was stated that a significant power is expended byinstruction issue logic and the power consumptionincreases quadratically with the size of the instructionissue width [27], [43]. Some researchers are exploring

834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

. K.M. Kavi and J. Arul are with the Department of Electrical and ComputerEngineering, University of Alabama at Huntsville, Huntsville, AL 35899.E-mail: [email protected], [email protected].

. R. Giorgi is with the Departimento di Ing. Informazione, UniversitaÁ diSiena, 56 Via Roma, 53100 Siena, Italy. E-mail: [email protected].

Manuscript received 1 Sept. 2000; accepted 8 Feb. 2001.For information on obtaining reprints of this article, please send e-mail to:[email protected], and reference IEEECS Log Number 113587.

0018-9340/01/$10.00 ß 2001 IEEE

Page 2: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

mechanisms to construct dependence graphs at runtime toguide which instructions should be examined for readiness(rather than all instruction in the issue window) [27]. In ourarchitecture, we perform no dynamic instruction scheduling(or select one or more instructions for issue from a large set ofinstructions). Thus, our approach could naturally obviate theneed for runtime construction of dependence graphs.

We have translated several programs into our SDFinstruction set. Using a cycle-level simulator developed atthe University of Alabama in Huntsville (UAH), we havecompared the execution performance of our architecturewith that of conventional superscalar architecture withmultiple functional units and aggressive Out-of-Orderinstruction issue logic as facilitated by the SimpleScalartool set [10].

In Section 2, we will present research that is most closelyrelated to ours. In Section 3, we will present our ScheduledDataflow architecture in detail. Section 4 will discuss themethodology that we used in our evaluation and Section 5will show our numerical results for real programs.

2 RELATED RESEARCH AND BACKGROUND

2.1 Decoupling Memory Accesses From ExecutionPipeline

Decoupling memory accesses from the execution pipeline toovercome the ever-increasing processor-memory commu-nication cost was first introduced in [34]. Since then largercache memories have been used to alleviate the memorylatency problem. But, the gap between processor speed andaverage memory access time is still a major limitation inachieving high performance. Increasing cache capacities,while consuming an increasingly large silicon area onprocessor chips, often results in diminishing returns.Decoupled architectures may again present a solution toleaping over the ªmemory wall.º Decoupled ideas wererecently used in a multithreaded architecture known asRhamma [17]. Rhamma uses conventional control-flowprogramming paradigm and blocking threads, hencerequiring many more thread context switches than ournonblocking dataflow threads. Moreover, SDF groups allLoad instructions together into ªpreloadº and all Storeinstructions together into ªpoststore.º An analytical com-parison with the Rhamma architecture was presented in[21] and, on that basis, we found that SDF outperformsRhamma.

2.2 Dataflow Model and Architectures

The dataflow model and architecture have been studied formore than two decades and held the promise of an elegantexecution paradigm with the ability to exploit inherentparallelism available in applications [4], [5], [12], [14], [28],[29], [30]. However, actual implementations of the modelhave failed to deliver the promised performance. Never-theless, several features of the dataflow computationalmodel have found their place in modern processorarchitectures and compiler technology (e.g., Static SingleAssignment (SSA) [13], register renaming, dynamic sche-duling and Out-of-Order instruction execution [18],I-structure-like synchronization [1], [6], nonblockingthreads [8]). Most modern processors utilize complex

hardware techniques to detect data and control hazards,and dynamic parallelismÐto bring the execution enginecloser to an idealized dataflow engine. It is our contentionthat such complexities can be eliminated if a moresuitable and direct implementation of the dataflow modelcan be discovered. Some of the limitations of the puredataflow model that prevented its practical implementa-tions include the following: 1) too fine-grained (instruc-tion level) multithreading, 2) difficulty in exploitingmemory hierarchies and registers, and 3) asynchronoustriggering of instructions.

Many researchers have addressed the first two limita-tions of dataflow architectures [12], [20], [30], [35], [37], [38],[39]. Our current architecture specifically addresses thethird limitation. Some researchers have proposed hybriddesigns in which the dataflow scheduling is applied only atthread level (i.e., macro-dataflow), while each thread iscomprised of conventional control-flow instructions [16],[19], [31]. In such systems, the instructions within a threaddo not retain functional properties and hence, introduceWrite-After-Write (WAW) and Write-After-Read (WAR)dependencies. This in turn requires complex hardware toperform dynamic instruction scheduling. In our system, theinstructions within a thread still retain functional propertiesof dataflow model and thus eliminate the need for complexhardware. The results (or data) flow from instruction toinstruction; the data destined to an instruction is stored inregisters exclusively assigned for the instruction. Ourdeviation, in the Scheduled Dataflow (SDF) system, frompure dataflow is a deviation from data driven asynchro-nous1 execution (or token driven execution) that istraditionally used for the implementation of ªpureº data-flow processors.

3 THE SCHEDULED DATAFLOW PROCESSOR

We will first show how it is possible to ªscheduleº dataflowinstructions. Let us consider a simple dataflow graph,shown in Fig. 1, and the corresponding SDF code. Eachnode of the graph will be translated into an SDF instruction.The two source operands (i.e., input data) destined for adyadic SDF instruction are stored in a pair of registersspecifically assigned to that instruction; a pair consists ofeven-odd registers; for example, RR2 refers to registers R2and R3 within a specified thread context. Predecessorinstructions store the data in either the left or right half of aregister pair, as dictated by the data dependencies of theprogram. Unlike in conventional dataflow architecture-sÐe.g., Monsoon [29], Tagged-Token Dataflow Architecture(TTDA) [7]Ðin our architecture, an instruction is notscheduled for execution immediately when the operandsare matched (i.e., available). Instead, operands are saved inthe register-pair associated with the instruction and theenabled instruction is scheduled for execution based on

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 835

1. It is often believed that dataflow means parallel execution. Thedataflow model of computation only exposes the inherent parallelism andthe parallelism can only be exploited if multiple functional units orprocessing elements are available. In the presence of a single processingelement (or functional unit), dataflow instructions still execute sequentially,albeit asynchronously.

Page 3: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

compile time ordering of the dataflow graph, eliminatingthe asynchronous execution implied by dataflow.

Assuming that the inputs A, B, X, and Y to the dataflowgraph of Fig. 1 are available in R2, R3, R4, and R5,respectively (this is achieved during preload, as explainedbelow), the five instructions shown in Fig. 2 will be scheduledfor execution sequentially and perform the necessary compu-tations, as indicated by the graph in Fig. 1. Note that a pairof registers is specified as source operands with eachinstruction. For example, ADD RR2, R11, R13 adds thecontents of registers R2 and R3 and stores the result in R11and R13. Our instructions still retain the functional natureof dataflowÐeach instruction stores its results in theregisters that are specifically associated with destinationinstructions. There are no Write-After-Read (WAR orconceptually equivalent anti) and Write-After-Write(WAW or equivalent output) dependencies with ourinstructions.

The code shown in Fig. 2 is for the Execution Pipeline(EP). Since our architecture is a decoupled multithreadedsystem, we use two separate units: Synchronization Pipe-line (SP) and Execution Pipeline (EP). SP prepares enabledthreads for execution on EP by preloading threads' context(i.e., registers) with data from the threads' Frame Memories(Frame Memory is a portion of memory allocated to athread) and poststoring results from completed threads'registers in frame memories of destination threads.

To illustrate the preload concept, consider Fig. 1 and theSDF code shown in Fig. 2. Assume that the code block ofFig. 2 (viewed as a thread) receives the four inputs (A, B, X,Y) from other threads. Inputs to a thread are saved in theframe memory allocated for the thread when the thread iscreated and a thread is enabled for execution only when itreceives all inputs (as specified by its synchronizationcount). When enabled, a register context is allocated to thethread and the input data for the thread is ªpreloadedºfrom its frame memory into its registers.

Assuming that the inputs for the thread (A, B, X, and Y) arestored in its frame (pointed by RFP) at offsets 2, 3, 4, and 5, the

first four LOAD instructions of Fig. 3 (executed by SP)preload the thread's data into registers R2, R3, R4, R5 of theregister context allocated for the thread. After the preload, thethread is scheduled for execution on EP. The EP then usesonly its registers during the execution of the thread body(Fig. 2). Consider that the results generated by MULT andDIV in our code example (i.e., R14 and R15) are needed by twoother threads. The frame pointers and frame-offsets for thedestination threads are made available to the current threadin register couples R6|R7 and R8|R9, as shown in the preloadcode above (the last four LOAD instructions of Fig. 3).

The instructions shown in Fig. 4 transfer (or poststore)the results of the current thread (i.e., from MULT in R14 andDIV in R15) to frames pointed to by R6 and R8 at frame-offsets contained in R7 and R9. SP executes STOREinstructions after a thread completes its execution at EP.As can be observed from this example, when a thread iscreated, it is necessary to provide the thread with thedestination thread's frame pointers and offsets.

3.1 Continuations

To better understand the implementation of the SDFarchitecture, we need to focus first on the dynamic scenariothat can be generated at run time. We need to introduce theconcept of continuation: a continuation in our architectureis simply a four-value tuple, designated as <FP, IP, RS,SC>, where FP is the Frame Pointer (where thread inputvalues are stored), IP is the Instruction Pointer (whichpoints to the thread code), RS is a Register Set (adynamically allocated register set), and SC is a Synchroni-zation Count (the number of values needed to enable thatthread). Each thread has an associated continuation. At agiven time a thread continuation can be one of thefollowing, where ª- -ª means that the value is eitherundefined or unnecessary:

. Waiting Continuation (WTC) or <FP, IP, - -, SC>

. Preload Continuation (PLC) or <FP, IP, RS, - ->

. Enabled Continuation (EXC) or <- -, IP, RS, - ->

. Poststore Continuation (PSC) or <- -, IP, RS, - ->

Thus, at a given time, a thread can be in one of fourpossible states: WTC, PLC, EXC, or PSC (Fig. 5) based on itscontinuation. After being created (in status WTC), athread's continuation moves from ªpreloadº (or PLC) statusat SP to ªexecuteº (or EXC) status at EP and finishes inªpoststoreº (PSC) status again at SP.

A Scheduler Unit (SU) handles the management ofcontinuations and processing resources. In our design, theSU is very simple and can be implemented in hardwareusing a PLA. We now describe the details of the mainfunctional units in our architecture: the EP, the SP, andthe SU.

836 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

Fig. 1. A simple dataflow graph.

Fig. 2. Code corresponding to the previous dataflow graph.

Page 4: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

3.2 Execution Pipeline (EP)

Fig. 6 shows the block diagram of the Execution Pipeline(EP). Remember that EP executes computations of a threadusing only registers. The instruction fetch unit behaves likea traditional fetch unit, relying on a program counter tofetch the next instruction.2 We rely on compile time analysisto produce the code for EP so that instructions can beexecuted in sequence and assure that the instruction dataalready available in its pair of source registers.

The instruction fetch unit fetches an instruction belongingto the current thread using PC. The decode (and registerfetch) unit decodes the instruction and obtains a pair ofregisters that contains (up to two) source operands for theinstruction. The execute unit executes the instruction andsends the results to the write-back unit along with thedestination register numbers. The write-back unit writes (upto) two values to the register file. As can be seen, theExecution Pipeline (EP) behaves more like a conventionalpipeline while retaining the primary dataflow properties:Data flows from instruction to instruction. Moreover, the EPdoes not access data cache memory and, hence, requires nopipeline stalls (or context switches) due to cache misses.

3.3 Synchronization Pipeline

Fig. 7 shows the organization of the SynchronizationPipeline (SP), which mainly deals with memory accesses.Here, we deal with preload and poststore instructions. Thepipeline consists of the following stages: the instruction fetchunit fetches an instruction belonging to the current threadusing PC. The decode unit decodes the instruction andfetches register operands (using a Register Set). The effectiveaddress unit computes the effective address for LOAD andSTORE instructions. LOAD and STORE instructions onlyreference the Frame memories3 of threads, using a frame-pointer (FP) and an offset into the frame, both of which arecontained in registers. The memory access unit completesLOAD and STORE instructions. Pursuant to a poststore, thesynchronization count of a thread is decremented. Thewrite-back unit completes LOAD (preload).

3.4 Scheduling Unit (SU)

In our architecture, a thread is created using a FALLOCinstruction. FALLOC allocates a frame (accessible by aFrame Pointer FP) and initializes the frame by storing an

Instruction pointer (IP) for the thread and a Synchroniza-

tion Count (SC), which indicates the number of inputs

needed to enable the thread. The FALLOC thus creates a

WTC (<FP, IP, - -, SC>).In order to speed up frame allocation, fixed sized frames

for threads are preallocated and a stack of indices pointing

to the available frames is maintained. The Scheduling Unit

actually carries out this operation by popping an index from

that stack. The SP pushes deallocated frames when

executing FFREE instruction subsequent to poststores of

completed threads. This policy permits fast context switch-

ing and creation of threads.When some thread completes its execution and ªpost-

storesº results (performed by SP), the synchronization

counts of each awaiting (WTC) thread are decremented.

The SU takes care of checking when the synchronization

count becomes zero. Then, it allocates a Register Set (RS) to

that thread. The register sets are viewed as circular buffers

for assigning (and deallocating) register contexts to enabled

threads.The thread's continuation becomes a PLC (<FP, IP, RS,

- ->) and it is scheduled for execution on SP for preload.

Then, SP loads the thread's data from its frame memory

into the register context allocated. Upon the completion of

preload, the thread continuation (in state EXC) is handed

off to the Execution Processor (EP), using a FORKEP

instruction. After the execution stage, we use FORKSP to

move this thread back to SP.FALLOC and FFREE take two cycles in our architecture.

FORKEP and FORKSP take four cycles to complete. These

numbers are based on the observations made in Sparcle [2]

that a 4-cycle context switch can be implemented in

hardware. Note the scheduling is at thread level in our

system, rather than at instruction level as done in other

multithreaded systems (e.g., Tera [3], SMT [41]), and, thus,

requires simpler hardware.The Scheduler Unit is also responsible for scheduling

preload (PLC) and poststore (PSC) on multiple SPs and

preloaded threads on multiple EPs in superscalar imple-

mentations of our architecture (Section 5.2).

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 837

Fig. 3. A sample preload code. This one corresponds to the previous example.

Fig. 4. A sample poststore code. This one corresponds to the previous

example.

2. Since both EP and SP need to execute instructions, our instructioncache is assumed to be dual ported. Since instruction memory causes nocoherency related problems, it may be possible to utilize separate cachememories for EP and SP. This is not unlike most Superscalar systems.

3. Following the traditional dataflow paradigm, we use I-Structurememory for arrays and other structures.

Page 5: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

4 METHODOLOGY

We have evaluated our architecture based on execution ofgenerated code for actual programs using our instructionlevel simulator.4 The simulator used for this paper assumesa perfect cache (i.e., all memory accesses take one cycle). Wehave also developed a backend to Sisal [9] and used MIDCas intermediate language [32], [33] to generate code for ourarchitecture, but still without implementing any particularoptimization.

Previously, we have reported comparisons of SDF withMIPS-like architectures in [22]. In this paper, we willcompare our SDF with a superscalar architecture withmultiple functional units and Out-of-Order instructionissue logic as facilitated by the SimpleScalar tool set [10].Also, we will investigate the effect of parallelism (i.e.,number of enabled threads) and thread granularity (aver-age run-lengths of the execution threads on EP) on theperformance of our architecture (Sections 5.3, 5.4). We willinvestigate the performance gained by increasing thenumber of SPs and EPs (that is, Superscalar-SDF) andcompare the performance with that of conventional super-scalar processors containing multiple functional units(Section 5.2. The programs used for this study include a

Matrix Multiply, FFT, Fibonacci, Zoom. We chose theseapplications since they exhibit different characteristics.Matrix multiply can be written to exploit both thread leveland instruction level parallelism; FFT exhibits higherdegrees of thread level parallelism with increasing datasizes; recursive Fibonacci exhibits very little parallelism(either instruction level or thread level); Zoom (a codesegment of picture zooming application [36]) consists ofthree nested loops and a substantial amount of instructionlevel parallelism in the middle loop (but only small degreesof thread level parallelism).

5 EVALUATION OF THE DECOUPLED SCHEDULED

DATAFLOW ARCHITECTURE

In the first experiment, we have compared the executionperformance of SDF (with one SP and one EP), with asuperscalar processor with one Integer ALU (one integeradder and an integer multiply/divide unit) and oneFloating Point ALU (one floating-point adder and a floatingpoint multiply/divide unit). This way SDF and the superscalar

have the same number of functional units.5 For the superscalar,

838 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

Fig. 5. Thread continuation transitions handled by the Scheduling Unit (SU).

Fig. 6. General organization of Execution Pipeline (EP).

4. We will provide the simulator and our benchmark programs to anyinterested reader so that our experimental data can be verified.

5. Actually, the superscalar system contains four functional units, oneinteger adder, one integer multiply/divide, one floating point adder, onefloating point multiply/divide. SDF has only two arithmetic units, one in SPand one in EP. There are no separate multiply/divide units.

Page 6: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

we will show data for both In-Order and Out-of-Orderinstruction issue. In all systems, we have set all instructionsto take one cycle and assume perfect cache (all memoryaccesses are set to one cycle). For superscalar (Table 1), wehave set the Instruction Fetch and Decode Width andInstruction Issue Width to 8, Register Update Unit (RUU)and Load/Store Queue (LSQ) to 32. The last two columns ofTables 2, 3, 4, and 5 compare SDF with In-Order and Out-of-Order superscalar systems. We indicated in boldface the caseswhen SDF cycles result lower than both the In-Order and Out-ofOrder superscalar cases.

For the Matrix Multiply program (Table 2), we haveforked 10 threads to execute concurrently on the SDF. TheOut-of-Order Superscalar system consistently outperformsSDF, although SDF performs better than the In-Ordersuperscalar.

We are not surprised by this result since theSimpleScalar tool set performs extensive optimizationsand dynamic instruction scheduling. SDF does not per-form any dynamic instruction scheduling, eliminatingcomplex hardware (e.g., Scoreboards or reservationstations [18]). Moreover, SimpleScalar utilizes branchprediction (the data shown uses Bimodal prediction with2,048 entries). At present, SDF uses no branch prediction.Matrix Multiply program exhibits a large degree ofinstruction level parallelism and a good branch prediction

is easy to achieve. Although the Matrix multiply programcan be written to exhibit greater thread level parallelism,we have used a fixed number of threads (10) in thisexperiment. Later, we will show how the thread levelparallelism can improve SDF performance (Section 5.3).

While executing FFT (Table 3), unlike for Matrix Multi-ply, SDF outperforms Out-of-Order superscalar only forlarger input sizes (shown in bold). This is because of theavailable instruction-level and thread-level parallelism. Forvery small data sizes, Out-of-Order Superscalar systemperforms better than all other systems by exploitinginstruction level parallelism. Very little thread levelparallelism is available for such data sizes. However, fordata sizes of 256 or larger, the available thread levelparallelism in SDF (and the overlapped execution of SP andEP) exceeds the available instruction level parallelism,leading to a better performance by SDF. This data is in linewith the studies performed on Simultaneous Multithread-ing systems [26], [25], which indicates that high perfor-mance is achieved by using a combination of thread leveland instruction level parallelism. Fig. 8 shows this moreclearlyÐfor larger data sizes, SDF performs better thansuperscalar architectures.

The Recursive Fibonacci program (Table 4) exhibits verylittle parallelism (neither instruction level nor thread level).For very small data sizes, conventional superscalar systems

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 839

Fig. 7. The Synchronization Pipeline (SP).

TABLE 1Superscalar Parameters for Tables 2, 3, 4, and 5

Page 7: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

appear to incur overheads in creating recursive function

calls, while SDF creates very few threads and incurs smaller

overhead. As the data size increases, SDF creates too many

threads, yet there is very little thread level parallelism,

leading to poor performance by SDF as compared to

superscalar systems. This is again in line with the general

observation that multithreaded architectures perform

poorly for applications with little or no thread level

parallelism (and for single threaded applications).The Zoom program (Table 5) contains substantial

amounts of sequential code in the middle loop. This code

allows for the exploitation of instruction level parallelism.

However, it limits the amount of thread level parallelism.

Moreover, in SDF, newly created threads wait for preload

(and poststore) operations, causing the SP to be overloaded.

As we will see later, SDF's performance improves whenmultiple SPs are used (see Tables 7, 8, 9, 10).

5.1 Summarizing

The data thus far confirms that any multithreadedarchitecture requires greater thread level parallelism toachieve good performance; superscalar architectures re-quire greater instruction level parallelism. We feel that ournonblocking model is better suited for decoupling memoryaccesses from execution unit. The functional nature of ourinstructions eliminates the need for dynamic scheduling ofinstructions within a thread. Since our architecture uses twodifferent types of pipelines (SP and EP), it is necessary toachieve a good balance of utilization between these twounits. Our architecture incurs unavoidable overheads forcreating threads (allocation of frames, allocation of register

840 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

TABLE 4Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Fibonacci for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 5Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Zoom for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 3Schedule Dataflow (SDF) vs. Superscalar (SS) for the Program FFT for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 2Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Matrix Multiply for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

Page 8: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

contexts) and transferring threads between SP and EP(FORKEP and FORKSP instructions). At present, data canonly be exchanged between threads by storing them inthreads' frames (memory). These memory accesses can beavoided by storing the results of a thread directly intoanother thread's register context. Our experiments showthat Matrix Multiply needs 16 frames with 10 parallelthreads (for data shown in Table 2). For this application, wecould have eliminated storing (and loading) thread's data inmemory by allocating all frames directly in register sets (byproviding sufficient register sets in hardware). It is ourcontention that the hardware savings achieved by SDF (byeliminating dynamic instruction scheduling logic) can beused to either increase the number of register sets (thussupporting greater thread-level parallelism) or add moreSPs and EPs; either of which can improve the performanceof SDF.

5.2 Execution Performance of SDF with MultipleSPs and EPs

In our next experiment, we have investigated the perfor-mance of SDF using multiple SPs and EPs and comparedthe performance with superscalar architectures usingmultiple Integer and Floating-Point units. We have utilizedan equal number of functional units in our comparisons bysetting the number of functional units in a superscalar(#Integer ALUs + #Floating Point ALUs)6 equal to thenumber of SPs and EPs (#SPs + #EPs). It is our contentionthat conventional superscalar systems do not scale wellwith increasing number of functional units and thescalability is limited by the instruction fetch/decodewindow size and the RUU size. SDF relies primarily onthread level parallelism, and the decoupling of memoryaccesses from execution. SDF performance can scale betterwith a proper balance of workload among SPs and EPs.

Tables 7, 8, 9, 10 show the results for this series ofexperiments. In order to provide greater opportunities fordynamic instruction scheduling for the superscalar system, wehave set the Instruction Fetch & Decode window widths to 32

and RUU to 32 (Table 6). We have observed little changein the performance (for the selected benchmarks) whenthe window width is increased beyond 32. We have alsoexplored the impact of changing the RUU size. WhenRUU is set to 64, the performance of superscalar showedless than 5 percent improvement as compared to thatwith RUU set to 32.

In Table 7, we show the data for the Matrix Multiplyprogram. As can be noted, when we add more SPs and EPs(correspondingly, more Integer and Floating Point func-tional units in Superscalar), SDF outperforms superscalararchitecture (shown in bold in Table 7), even whencompared to complex out-of-order scheduling used bysuperscalar architectures.

SDF performance overtakes that of the Out-of-Ordersuperscalar architecture with three SPs and three EPs(correspondingly, with three Integer and three FP ALUsin the Superscalar system). It should also be noted that, forthe superscalar architecture, the performance improvementwith increasing number of functional units scales poorlyÐsuperscalar architecture exhibits no improved performancebeyond three Integer and three Floating Point ALUs. ForSDF, the performance is limited by SPsÐperformance isimproved consistently by adding more SPs.

This can more easily be seen from Fig. 9. The x-axisshows the number of functional units (#SP + #EP for SDF;#Integer ALUs + #FP ALUs for superscalar). The figureshows the execution times for matrix multiplication with a150*150 data size.

The next table (Table 8) shows the results for FFT. In thiscase, SDF outperforms Out-of-Order Superscalar for datasizes greater that 256 for all machine configurations. Onceagain, SDF performance scales better with added SPs thanthat of a superscalar when more functional units are added.

Fig. 10 shows the scalability of SDF for FFT (data size256). Again, the x-axis shows the number of functional units(#SP + #EP for SDF; #Integer ALUs + #FP ALUs forSuperscalar).

For Fibonacci (Table 9), as the number of SPs isincreased, SDF compares more favorably with Out-of-OrderSuperscalar with a similar number of Integer units (ascompared to the data in Table 4). As before, SDFperformance scales better with more SPs and EPs than thesuperscalar case (when more functional units are added).Adding more FP ALUs in superscalar shows no improve-ment since Fibonacci does not utilize Floating Pointarithmetic). Fig. 11 shows the scalability of SDF forFibonacci (data size 15) more clearly. The x-axis shows thenumber of functional units (#SP + #EP for SDF; #IntegerALUs + #FP ALUs for superscalar).

Table 10 shows the data for the Zoom program. Onceagain, the performance of SDF scales better than Super-scalar. With five SPs and four EPs, SDF outperforms theOut-of-Order Superscalar system with five Integer and fourFP ALUs (shown in bold in Table 10), even for this program.Fig. 12 shows the scalability of SDF for Zoom (for 200*200*4)more clearly. The X-axis shows the number of functionalunits (#SP + #EP for SDF; #Integer ALUs + #FP ALUs forSuperscalar).

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 841

Fig. 8. Comparing SDF with a superscalar processor for FFT (ªIOº

stands for In-Order and ªOOº for Out-of Order) for different data sizes.

6. Again, each ALU in superscalar contains separate adder andmultiply/divide units. In SDF, each ALU is treated as a single unitperforming all arithmetic operations.

Page 9: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

5.2.1 Summarizing

The data for each of the benchmarks (Tables 7, 8, 9, 10) is

consistent with our contention that SDF can be a viable

alternative with multiple SPs and EPs to Superscalar

architectures that utilize complex dynamic instruction

scheduling logic. In fact, it would be fairer to compare SDF

with more functional units (#EPs + #SPs) than those in a

Superscalar because of the hardware savings. Our SPs and EPs

are no more complex than a traditional functional unit used

in Superscalar systems. We eliminate the complex instruc-

tion issue, register renaming, and instruction retiring logic.

Scheduling of threads among available SPs and EPs is

performed at thread level (instead of at instruction level, as

done in Tera and SMT).

842 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

TABLE 7Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Matrix Multiply for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 8Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program FFT for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 6Superscalar Parameters for Tables 7, 8, 9, and 10

Page 10: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

5.3 Effect of Thread Level Parallelism on ExecutionBehavior

Here, we will explore the performance benefits of increas-

ing the thread level parallelism (i.e., number of concurrent

threads) using one SP and one EP for SDF architecture. We

have used the Matrix Multiply for this purpose. We have

executed a 50*50 matrix multiply by varying the number ofconcurrent threads. Each thread has executed five (un-rolled) loop iterations. In this data collection, we concen-trated only on the innermost loop of Matrix Multiply, unlikeprevious data, where we have parallelized all three nestedloops of Matrix Multiply, see Fig. 13.

As can be expected, increasing the degree of parallelismwill not always decrease the number of cycles needed in a

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 843

TABLE 9Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Fibonacci for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

TABLE 10Scheduled Dataflow (SDF) vs. Superscalar (SS) for the Program Zoom for Different Data Sizes

ªIOº stands for In-Order and ªOOº for Out-of-Order.

Fig. 9. Scalability of SDF over Superscalar for the program Matrix

Multiply (data size 150*150).

Fig. 10. Scalability of SDF over Superscalar for the program FFT (data

size 256).

Page 11: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

linear fashion. This is due to the saturation of SP (reaching

more than 90 percent utilization with 10 threads). As shown

previously (Table 7, Fig. 9), adding additional SP and EP

units (i.e., Superscalar-SDF implementation) will allow us to

utilize higher levels of thread parallelism. Although not

presented in this paper, we have observed very similar

behavior with other data sizes for Matrix Multiply and with

the other benchmarks, Fibonacci, FFT, and Zoom.

5.4 Effect of Thread Granularity on ExecutionBehavior

In the next experiment with Matrix Multiply, we have heldthe number of threads at five and varied the threadgranularity by varying the number of innermost loopiterations executed by each thread (i.e., degree of unrolling).Once again, we have used one SP and one EP for thisexperiment and concentrated only on the innermost loop ofMatrix Multiply.

The data size for Fig. 14 is 50*50. Here, the threadgranularity ranged from an average of 27 instructions (12for SP and 15 for EP), with no loop unrolling, to 51 instructions(13 for SP and 39 for EP), when each thread executed 10unrolled loop iterations. Once again, the execution perfor-mance improves (i.e., execution time decreases) as the threadsbecome coarser. However, the improvement becomes lesssignificant beyond a certain granularity. Similar behavior hasbeen observed for larger data sizes and other benchmarks. Weare exploring innovative compiler optimizations utilizingstatic branch prediction to speculatively preload threads toincrease thread run-lengths (i.e. granularities).

6 CONCLUSIONS AND FUTURE WORK

In this paper, we have presented a nonblocking multi-threaded dataflow architecture that utilizes control-flow-like scheduling of instructions. Our architecture separatesmemory accesses from instruction execution. Using aninstruction set simulator for our decoupled ScheduledDataflow (SDF), we have compared the execution perfor-mance of SDF with that of a superscalar with multiplefunctional units and aggressive Out-of-Order instructionissue logic. When the thread level parallelism is high, SDFsubstantially outperforms superscalar architectures (withmultiple functional units) using In-Order instruction ex-ecution. SDF underperforms superscalar architectures withOut-of-Order execution, when the instruction level paralle-lism is high, but thread level parallelism is low. Also, the SPin SDF can be a bottleneck since threads can only bescheduled on EP after preload operations. The performancecan be improved by adding more SPs. As a matter ofobservation, when more functional units are added, theOut-of-Order execution of superscalar architecture does notscale as well as SDF. Another factor that must be kept inmind while analyzing the data is that SDF uses no branchprediction (unlike superscalar architectures). At this time,we did not optimize our instruction set or the compiler thatgenerated the code for the benchmarks.

SDF reduces the complexity of the processor byeliminating the need for complex logic (e.g., scoreboard orreservation stations) needed for resolving data dependen-cies, register renaming, Out-of-Order instruction issue, andbranch predictions. The silicon area thus saved may be usedto include more register-sets and registers per set toimprove thread level parallelism and thread granularitiesor add more SPs and EPs. We are working to improve both

844 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001

Fig. 11. Scalability of SDF over Superscalar for the program Fibonacci

(data size 15).

Fig. 12. Scalability of SDF over Superscalar for the program Zoom (data

size 200*200*4).

Fig. 13. Effect of thread level parallelism on SDF execution for the

program Matrix Multiply (data size 50*50).

Fig. 14. Effect of thread granularity on SDF execution for the program

Matrix Multiply (data size 50*50).

Page 12: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

the instruction set and the compiler to produce moreefficient executions of programs. At present, SDF uses no

branch prediction, although we are planning to experimentwith static branch prediction to speculatively preload data

and increase run-lengths of our threads. Using compileroptimizations, speculative executions, and branch-predic-

tion, we aim to increase the run-lengths of threadsexecuting on EP.

While decoupled access/execute implementations are

possible within the scope of conventional architectures, themultithreading model presents greater opportunities for

exploiting the separation of memory accesses from theexecution pipeline. We feel that, even among multithreaded

alternatives, nonblocking models are more suited for thedecoupled execution. In our model, threads exchange data

only through the frame memories of threads (array data isprovided through I-structure memory). The use of frame

memories for thread data permits a clean decoupling ofmemory accesses into preloads and poststores. This can

lead to greater data localities and relatively low cache-missrates.

ACKNOWLEDGMENTS

This research is supported in part by the following grants

from the US National Science Foundation: CCR-9796310,EIA-9805216, and EIA-9820147 and Italian grant from CNR

203.15.9/97. the authors also than the anonymous reviewersfor their work.

REFERENCES

[1] A. Agarwal, R. Bianchini, D. Chaiken, K. Johnson, D. Kranz, J.Kubiatowicz, B.-J. Lim, K. Mackenzie, and D. Yeung, ªThe MITAlewife Architecture and Performance,º Proc. 22nd Int'l Symp.Computer Architecture, pp. 2-13, June 1995.

[2] A. Agarwal, J. Kubiatowicz, D. Kranz, B.-H. Lim, D. Yeoung, G.D'Souza, and M. Parkinet, ªSparcle: An Evolutionary ProcessorDesign for Multiprocessors,º IEEE Micro, pp. 48-61, June 1993.

[3] R. Alverson, D. Callahan, D. Cummings, B. Koblenz, A. Porter-field, and B. Smith, ªThe TERA Computer System,º Proc. 1990 Int'lConf. Supercomputing, pp. 1-6, July 1990.

[4] B.S. Ang, Arvind, and D. Chiou, ªStarTÐThe Next Generation:Integrating Global Caches and Dataflow Architecture,º TechnicalReport 354, Laboratory for Computer Science, Massachusetts Inst.of Technology, Aug. 1994.

[5] Arvind and K.S. Pingali, ªA Dataflow Architecture with TaggedTokens,º Technical Memo 174, Laboratory for Computer Science,Massachusetts Inst. of Technology, Sept. 1980.

[6] Arvind, R.S. Nikhil, and K.S. Pingali, ªI-Structures DataStructures for Parallel Computing,º ACM Trans. ProgrammingLanguages and Systems, vol. 11, no. 4, pp. 598-632, Oct. 1989.

[7] Arvind and R.S. Nikhil, ªExecuting a Program on the MITTagged-Token Dataflow Architecture,º IEEE Trans. Computers,vol. 39, no. 3, pp. 300-318, Mar. 1990.

[8] R.D. Blumofe, C.F. Joerg, B.C. Kuszmaul, C.E. Leiserson, K.H.Randall, and Y. Zhou, ªCilk: An Efficient Multithreaded RuntimeSystem,º Proc. Fifth ACM Symp. Principles and Practice of ParallelProgramming (PoPP), pp. 206-215, July 1995.

[9] A.D.W. Bohm, D.C. Cann, J.T. Feo, and R.R. Oldehoeft, ªSISALReference Manual: Language Version 2.0,º Technical Report CS91-118, Computer Science Dept., Colorado State Univ., 1991.

[10] D. Burger and T.M. Austin, ªThe SimpleScalar Tool SetVersion 2.0,º Technical Report #1342, Dept. of Computer Science,Univ. of Wisconsin, Madison, 1997.

[11] M. Butler et al., ªSingle Instruction Stream Parallelism Is Greaterthan Two,º Proc. 18th Int'l Symp. Computer Architecture (ISCA-18),pp. 276-286, May 1991.

[12] D.E. Culler and G.M. Papadopoulos, ªThe Explicit Token Store,ºJ. Parallel and Distributed Computing, vol. 10, no. 4, pp. 289-308,1990.

[13] R. Cytron, J. Ferrante, B.K. Rosen, M.N. Wegman, and F.K.Zadeck, ªEfficiently Computing Static Single Assignment Formand the Control Dependence Graph,º ACM Trans. ProgrammingLanguages and Systems, vol. 13, no. 4, pp. 451-490, Oct. 1991.

[14] J.B. Dennis, ªDataflow Supercomputers,º Computer, pp. 48-56,Nov. 1980.

[15] M. Edahiro, S. Matsushita, M. Yamashina, and N. Nishi, ªSingle-Chip Multiprocessor for Smart Terminals,º IEEE Micro, vol. 20,no. 4, pp. 12-20, July 2000.

[16] R. Govindarajan, S.S. Nemawarkar, and P. LeNir, ªDesign andPerformance Evaluation of a Multithreaded Architecture,º Proc.First High Performance Computer Architecture (HPCA-1), pp. 298-307, Jan. 1995.

[17] W. Grunewald and T. Ungerer, ªA Multithreaded ProcessorDesign for Distributed Shared Memory System,º Proc. Int'l Conf.Advances in Parallel and Distributed Computing, pp. 206-213, Mar.1997.

[18] J.L. Hennessy and D.A. Patterson, Computer Architecture: AQuantitative Approach, second ed. Morgan Kaufmann, 1996.

[19] H.H.-J. Hum et al., ªA Design Study of the EARTH Multi-processor,º Proc. Conf. Parallel Architectures and CompilationTechniques (PACT), pp. 59-68, June 1995.

[20] R.A. Iannucci, ªToward a Dataflow/Von Neumann HybridArchitecture,º Proc. 15th Symp. Computer Architecture (ISCA-15),pp. 131-140, May 1990.

[21] K.M. Kavi, H.S. Kim, and A.R. Hurson, ªScheduled DataflowArchitecture: A Synchronous Execution Paradigm for Dataflow,ºIASTED J. Computers and Applications, vol. 21, no. 3, pp. 114-124,Oct. 1999.

[22] K.M. Kavi, J. Arul, and R. Giorgi, ªExecution and CachePerformance of the Scheduled Dataflow Architecture,º J. UniversalComputer Science, special issue on multithreaded and chip multi-processors, vol. 6, no. 10, pp. 948-967, Oct. 2000.

[23] V. Krishnan and J. Torrellas, ªChip-Multiprocessor Architecturewith Speculative Multithreading,º IEEE Trans. Computers, vol. 48,no. 9, pp. 866-880, Sept. 1999.

[24] M. Lam and R.P. Wilson, ªLimits of Control Flow on Parallelism,ºProc. 19th Int'l Symp. Computer Architecture (ISCA-19), pp. 46-57,May 1992.

[25] J.L. Lo et al., ªConverting Thread-Level Parallelism into Instruc-tion-Level Parallelism via Simultaneous Multithreading,º ACMTrans. Computer Systems, pp. 322-354, Aug. 1997.

[26] N. Mitchell, L. Carter, J. Ferrante, and D. Tullsen, ªInstructionLevel Parallelism vs. Thread Level Parallelism on SimultaneousMulti-Threading Processors,º Proc. Supercomputing '99, http://www.supercomp.org/sc99/proceedings/papers/mitchell.pdf,1999.

[27] S. Onder and R. Gupta, ªSuperscalar Execution with Direct DataForwarding,º Proc. Int'l Conf. Parallel Architectures and CompilerTechnologies (PACT-98), pp. 130-135, Oct. 1998.

[28] G.M. Papadopoulos, ªImplementation of a General PurposeDataflow Multiprocessor,º Technical Report TR-432, Laboratoryfor Computer Science, Massachusetts Inst. of Technology, Aug.1988.

[29] G.M. Papadopoulos and D.E. Culler, ªMonsoon: An ExplicitToken-Store Architecture,º Proc. 17th Int'l Symp. ComputerArchitecture (ISCA-17), pp. 82-91, May 1990.

[30] G.M. Papadopoulos and K.R. Traub, ªMultithreading: A Revisio-nist View of Dataflow Architectures,º Proc. 18th Int'l Symp.Computer Architecture (ISCA-18), pp. 342-351, June 1991.

[31] S. Sakai et al., ªSuper-Threading: Architectural and SoftwareMechanisms for Optimizing Parallel Computations,º Proc. 1993Int'l Conf. Supercomputing, pp. 251-260, July 1993.

[32] B. Shankar, L. Roh, W. Bohm, and W. Najjar, ªControl ofParallelism in Multithreaded Code,º Proc. Int'l Conf. ParallelArchitectures and Compiler Techniques (PACT-95), pp. 131-139, June1995.

[33] B. Shankar and L. Roh, ªMIDC Language Manual,º technicalreport, CS Dept., Colorado State Univ., July 1996, http://www.cs.colostate.edu/~dataflow/papers/Manuals/manual.pdf.

[34] J.E. Smith, ªDecoupled Access/Execute Computer Architectures,ºProc. Ninth Ann. Symp. Computer Architecture, pp. 112-119, May1982.

KAVI ET AL.: SCHEDULED DATAFLOW: EXECUTION PARADIGM, ARCHITECTURE, AND PERFORMANCE EVALUATION 845

Page 13: 834 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, … · an architecture that can overcome this problem, with better scalability than superscalar processors with increased number

[35] M. Takesue, ªA Unified Resource Management and ExecutionControl Mechanism for Dataflow Machines,º Proc. 14th Int'l Symp.Computer Architecture (ISCA-14), pp. 90-97, June 1987.

[36] H. Terada, S. Miyata, and M. Iwata, ªDDMP's: Self-Timed Super-Pipelined Data-Driven Multimedia Processor,º Proc. IEEE, pp. 282-296, Feb. 1999.

[37] R. Thekkath and S.J. Eggers, ªThe Effectiveness of MultipleHardware Contexts,º Proc. Sixth Int'l Conf. Architectural Support forProgramming Languages and Operating Systems, pp. 328-337, Oct.1994.

[38] S.A. Thoreson and A.N. Long, ªA Feasibility Study of a MemoryHierarchy in Data Flow Environment,º Proc. Int'l Conf. ParallelConf., pp. 356-360, June 1987.

[39] M. Tokoro, J.R. Jagannathan, and H. Sunahara, ªOn the WorkingSet Concept for Data-Flow Machines,º Proc. 10th Ann. Symp.Computer Architecture (ISCA-10), pp. 90-97, July 1983.

[40] J.Y. Tsai, J. Huang, C. Amlo, D. Lilja, and P.C. Yew, ªTheSuperthreaded Processor Architecture,º IEEE Trans. Computers,vol. 48, no. 9, pp. 881-902, Sept. 1999.

[41] D.M. Tullsen et al., ªSimultaneous Multithreading: MaximizingOn-Chip Parallelism,º Proc. 22nd Int'l Symp. Computer Architecture,pp. 392-403, 1995.

[42] D.W. Wall, ªLimits on Instruction-Level Parallelism,º Proc. FourthInt'l Conf. Architectural Support for Programming Languages andOperating Systems (ASPLOS-4), pp. 176-188, Apr. 1991.

[43] K. Wilcox and S. Manne, ªAlpha Processors: A History of PowerIssue and a Look at the Future,º Cool Chips Tutorial in Conjunctionwith MICRO-32, Dec. 1999.

[44] V. Milutinovic, Microprocessor and Multiprocessor Systems. WileyInt'l, 2000.

Krishna M. Kavi received the BE (electrical)degree from the Indian Institute of Science andthe MS and PhD degrees (computer science andengineering) from Southern Methodist Univer-sity. He is currently a professor and eminentscholar of computer engineering at the Univer-sity of Alabama at Huntsville (UAH). Prior tojoining UAH, he was a professor of computerscience and engineering at the University ofTexas at Arlington. For two years (1993-1995),

he was a program manager at the National Science Foundation,managing operating systems and programming languages and compi-lers programs in the CCR Division. He was an IEEE Computer Society(CS) Distinguished Visitor (1989-1991), editor of the IEEE Transactionson Computers (1993-1997), and editor of the Computer Society Press(1987-1991). His primary research interest lies in computer systemsarchitecture, including dataflow and multithreaded systems, memorymanagement, operating systems, and compiler optimization. His otherresearch interests include formal specification of concurrent processingsystems, performance modeling, and evaluation, load balancing, andscheduling of parallel programs. He has published more than 125technical papers on these topics. He is a senior member of the IEEE anda member of the ACM.

Roberto Giorgi received the MS degree inelectronic engineering, summa cum laude, andthe PhD degree in computer engineering, bothfrom the University of Pisa, Italy. He is currentlyan assistant professor in the Department ofInformation Engineering, University of Siena,Italy. He was a research associate in theDepartment of Electrical and Computer Engi-neering, University of Alabama at Huntsville. Hismain academic interest is computer architecture

and, in particular, multithreaded and multiprocessors systems. He isexploring coherence protocols, compile time optimizations, behavior ofuser and system code, architectural simulation for improving theperformance of a wide range of applications from desktop toembedded-systems, web-servers, and e-commerce servers. He tookpart in the ChARM project in cooperation with VLSI Technology Inc.,San Jose, California, developing part of the software used forperformance evaluation of ARM-processor-based embedded systemswith cache memory. He is a member of the IEEE, IEEE ComputerSociety, and ACM.

Joseph Arul received the BSc degree inmathematics in 1981 from Indore University,India, and the MS degree in computer science in1994 from De Paul University, Chicago. From1994-1995, he was a lecturer at Fu Jen CatholicUniversity, Taiwan. Currently, he is a computerengineering PhD student at the University ofAlabama at Huntsville (UAH). His current re-search interests are computer architecture,parallel and distributed computing, multi-

threaded programs, and compilers. He is a student member of theIEEE and the IEEE Computer Society and a member of the ACM.

. For further information on this or any computing topic, pleasevisit our Digital Library at http://computer.org/publications/dlib.

846 IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 8, AUGUST 2001