the dispatch interface - iowa state universitywikis.ece.iastate.edu/cpre584/images/1/10/cyc05... ·...

8
The Dispatch Interface Team Cyc05 Week - 1

Upload: others

Post on 05-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

The Dispatch Interface

Team Cyc05

Week - 1

Page 2: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Convey Platform Overview HC-1 Architecture

7/12/2010 8

“Commodity”  Intel  Server Convey FPGA-based coprocessor

Intel 5138 Dual Core Processor

Intel 5400 MCH

Memory Intel IO

Subsystem

Application Engine Hub

Application Engines

Memory

FPGA based Shared cache-coherent memory

Intel x86-64 Server x86-64 Linux

Direct Data Port

Page 3: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Convey Coprocessor

Convey PDK Reference Manual v5.2 2

2 Coprocessor Architecture

The Convey Coprocessor is made up of three major sets of components: The Application Engine Hub (AEH), the Memory Controllers (MCs) and the Application Engines (AEs). This document focuses on the Application Engine FPGAs and how they interface to the system. For a high-level system overview of coprocessor architecture, refer to the Convey Reference Manual.

Custom instructions developed for the Convey coprocessor are implemented in the Application Engines FPGAs, and the AEs are the only FPGAs that are reconfigured for different personalities. The AEs contain 4 major interfaces to the rest of the system: the dispatch interface, memory controller interface, CSR/debug interface and AE-to-AE interface. Those interfaces are described in detail later in this document.

Figure 1 – Convey HC Coprocessor Block Diagram

Page 4: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Application Engine Diagram

Convey PDK Reference Manual v5.2 27

Application Engine FPGAAE[n]

ScalarProcessor

MCMCMCMCMCMCMCMC(x8)

AE-AEI/F

AE[n-1]

AE[n+1]MGMT

I/FMgmt.

Processor

AE Personality

MC I/F

DispI/F

Custom Functionality

Required Convey Supplied Functionality

Optional Convey Supplied Functionality

Figure 8 – Application Engine (AE) FPGA Block Diagram

9.3.2 Dispatch Interface The dispatch interface is the hardware interface through which a host application sends coprocessor instructions to be executed by the AE. The dispatch interface receives instructions from the Application Engine Hub (AEH). Some instructions, such as MOV to and from AE registers, are handled directly in the dispatch module. Instructions intended for the custom Application Engine personality are passed to the custom personality through the signals described below. The dispatch interface also ensures that scalar data is returned to the AEH when required by the instruction.

The diagram below shows the data flow through the dispatch interface:

Page 5: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Convey PDK Reference Manual v5.2 28

Dispatch Interface AE Personality

inst queue

AECAES

data queuedata

ScalarProcessor

return data

inst crack

instructionCAE data

CAE inst

CAE return data

AEEM

AEGcnt

CAE inst vld

Figure 9 – Dispatch Interface Diagram

9.3.2.1 Registers The dispatch module implements both the AEC (Application Engine Control) and AES (Application Engine Status) registers defined in section 5.1.

Because the AEC register has exception masks that must be stable during the execution of custom instructions, writes to the AEC register will stall the dispatch of instructions and pend until the cae_idle signal is asserted. Likewise, since the AES register contains exception status that can be modified by the custom personality, reads of the AES register will stall dispatch and pend until cae_idle is asserted high.

9.3.2.2 Signal Interface to Custom Personality The diagram below shows the signal interface between the dispatch block and the custom AE personality. Detailed signal definitions are in section 9.3.2.10.

The Dispatch Interface

Page 6: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Dispatch Interface Signals

Convey PDK Reference Manual v5.2 29

Application Engine FPGA

IAS

DispatchI/F

AE Personalitycae_instr<31:0>

cae_inst_vld

cae_idle

cae_data<63:0>cae_stall

cae_exception[15:0]cae_aeg_cnt[17:0]

cae_ret_data[63:0]cae_ret_data_vld

AECAES

AEGcnt

AEG[0]...

AEG[n-1]

AEEM

Figure 10 – Dispatch Interface Signals

9.3.2.3 Instruction decode Instructions intended for the Custom Application Engine (CAE) personality are presented on the cae_inst<31:0> bus and are valid when cae_inst_vld is high. The dispatch interface asserts cae_inst_vld when the following are true:

the instruction is intended for the AE

the AE is enabled in the AEEM register

the instruction is an AEG read or write, a custom instruction or an inband fence

Data associated with the instruction is driven on the cae_data<63:0> bus and is valid on the same cycle. The personality can stall instruction dispatch by asserting cae_stall.

The dispatch module handles all reads and writes to the AEC and AES registers, as well as reads of AEGCnt. In addition, the dispatch module has an unimplemented instruction filter that drops all instructions that cannot be decoded.

The custom personality must decode AEG reads and writes, and custom instructions. In addition, the custom personality should generate an unimplemented instruction exception, by asserting cae_exception<0>, to cover all CAEP space that it does not use.

A verilog instruction decode module (instdec.v) is available in the Vadd sample program included in the PDK.

See appendix A for detailed instruction definitions.

9.3.2.3.1 Directed Instructions

Page 7: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Dispatch Interface Overhead

Page 8: The Dispatch Interface - Iowa State Universitywikis.ece.iastate.edu/cpre584/images/1/10/Cyc05... · 2013-01-22 · Convey PDK Reference Manual v5.2 28 Dispatch Interface AE Personality

Thank You! Questions?