enhancing the move framework endianness port long immediates master’s thesis | ivo janssen | 11...

46
Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Post on 18-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework

Endianness portLong Immediates

Master’s thesis | Ivo Janssen | 11 mei 2001

Page 2: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 2

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

overview

• introduction• endianness• long immediates• conclusions

introductionintroduction

Page 3: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 3

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

introduction

• project motivation• overview Move project

introductionintroduction

Page 4: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 4

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

motivation

• Laboratory ofComputer Engineering

• NEC C&CRL, Princeton, NJ, USA

• PcomP / packet processor• endianness• immediates

• linux/x86 machines• cheap• little endian

introductionintroduction

Page 5: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 5

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

the move framework

softwareframeworksoftware

frameworkhardwareframeworkhardwareframework

explorerexplorer

cost/performancecycle count

modify configuration

applicationC/C++ machine technology

description

introductionintroduction

Page 6: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 6

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

the move framework

add r3,r8,r9

shl r3,r3,4

RISC

jump 100 4 -> shl_t

r9 -> add_tr8 -> add_o add_r -> r3

r3 -> shl_o shl_r -> r3

TTA

100 -> jump_t

C++c = a+b;

c = c<<4;

d = func100(c);

Pascalbegin

c := a+b;

c := c*16;

d := func100(c)

end;

introductionintroduction

Page 7: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 7

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

the move framework

introductionintroduction

Page 8: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 8

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

the move framework

4 -> shl_t

r9 -> add_tr8 -> add_o

add_r -> r3

r3 -> shl_o shl_r -> r3

4 -> shl_t

r9 -> add_tr8 -> add_oadd_r -> r3

r3 -> shl_o

100 -> jump_t

add_r -> r3

r3 -> shl_o

move bus

cycle

01234

0 1 2 3

introductionintroduction

Page 9: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

endianness

Page 10: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 10

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

endianness

• what is endianness• endianness in the Move

framework

endiannessendianness

Page 11: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 11

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

what is endianness

• Gulliver’s travels• byte ordering

• 32 bit architecture• ‘byte addressable’

endiannessendianness

Page 12: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 12

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

what is endianness

• little endian (x86, PDP-11, Alpha)least significant byte is stored at the most significant address

• big endian (Sparc, HPPA, m68k)most significant byte is stored at the most significant address

11 22 33 44memory address 00 01 02 03

44 33 22 11memory address 00 01 02 03

= 0x44332211

= 0x44332211

endiannessendianness

Page 13: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 13

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

changing endianness

• ‘byte swap’

11 22 33 44memory address 00 01 02 03

44 33 22 11

endiannessendianness

Page 14: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 14

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

host and target endianness

• host endianness• file on disk always has the same

endianness• ‘swap’ if host != file

• target endianness• file on disk is e.g. a binary with a

certain endianness • ‘swap’ if host != target

endiannessendianness

Page 15: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 15

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

endianness in the Move framework

• apply principles on Move framework

• host endiannessMove framework has to run on

both little (x86) and big (sparc)

• target endiannesshost should be able to run both ‘big

move’ and ‘little move’

endiannessendianness

Page 16: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 16

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

endianness in the front end

endiannessendianness

C/C++

gcc-movegcc-move

seq. TTA

.o

assemblerassembler

linkerlinker

bintoolsbintools

movelibraries

Page 17: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 17

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

endianness in the back end

endiannessendianness

verification

seq. TTA

s. simulators. simulator

profile

.txt

schedulerscheduler

par. TTA

p. simulatorp. simulator

profiling

parameters

machine

Page 18: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

immediates

Page 19: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 19

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

immediates

• what are immediates• existing implementation• requirements• possible solutions• ‘resource variant’• ‘pseudo-move variant’• conclusions• future work

immediatesimmediates

Page 20: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 20

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

what are immediates

• immediates take lots of bits• more than available space?

immediatesimmediates

dy=y-1993;

1993 sub_o

1993 -> sub_o

y -> sub_t

sub_r -> dy

2 8 6guard source destination

Page 21: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 21

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

existing implementation

• fixed immediate fields• always writes to

‘immediate register’

immediatesimmediates

1993move slot move slot move slot immediate field

guard i0 sub_o

definition

use

Page 22: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 22

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

requirements

• possibility of no dedicated fields• short immediates stay in source

field• long immediate bits in

instruction stream• add state between ‘definition’

and ‘use’• clean code interface• must be applicable to PcomP

immediatesimmediates

Page 23: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 23

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

possible solutions

1. make move slot wider2. use multiple ‘short

immediates’ to construct large

3. schedule immediate fields in the move slots

immediatesimmediates

1993move slot move slot move slot

immediate field

guard i0 sub_o

Page 24: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 24

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

‘resource variant’

immediatesimmediates

i0 -> r4

immediate bits

tim

e

LIT i0

free

busy

busy

busy

busy

free

resource table

Page 25: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 25

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

‘resource variant’

• decoupling of def/use• no dedicated fields required• LIT tag• immediates not part of

movelist• Ifetch unit stores bits in

immediate registers• immediate registers become

part of state

immediatesimmediates

Page 26: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 26

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

scheduling algorithms

• mach-file format• data structures• algorithms

immediatesimmediates

Page 27: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 27

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

mach file formatLongImmediate{ Registers: i0 20, signed, ir_0; i1 20, signed, ir_1; i2 32, signed, ir_2; Control: {}; i0 20 : {4}; i1 20 : {5}; i0 20 : {4}, i1 20: {5}, i2 32: {4,5};}

ImmediateUnits{ i0 32, signed, ir_1; i1 20, signed, ir_2; i2 20, signed, ir_3;}

immediatesimmediates

Page 28: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 28

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

scheduling algorithms

if (immediate fits in source field)return success

elseforall (iregs) do

assign ireg socket to sourcecheck resources on iregif (possible allocation imm-use found)

tentatively claim imm-usefor (this cycle downto zero) do

check if ireg is availablecheck if LIT encodig is possibletentatively assign LIT tagif (movebuses allocatable) then break

commit imm-def and imm-usereturn success

immediatesimmediates

FindImmMoveBus

Page 29: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 29

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

benchmarks

• various mach-files:• mach.pcomp

• 6 buses, 3 imm. reg., 2 imm. ‘slots’

• mach.one• 6 buses, 1 imm. reg., 1 imm. ‘slot’

• mach.small• 3 buses, 1 imm. reg., 1 imm. ‘slot’

• mach.big• 8 buses, 2 imm. reg., 2 imm. ‘slots’

• no dedicated fields

immediatesimmediates

Page 30: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 30

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

benchmarks

• various benchmarks:• dsp-suite (arfreq, music, radproc,

edge, expand, flatten, smooth)• g722main• cjpeg, djpeg• go• compress• m88ksim

immediatesimmediates

Page 31: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 31

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

benchmarks

• metric under test:• instruction counts• also derived: code size

• prediction:• slight increase instr. count• if dedicated fields go,

huge reduction in code size

immediatesimmediates

Page 32: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 32

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

benchmark results

• instruction count increases• especially for smaller machines• 1-2% average increase

(6% for small machines)

• code size decreases• dedicated fields are ~20% of

instruction word width• code size decrease can be near

20% if dedicated fields go

immediatesimmediates

Page 33: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 33

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

‘pseudo-move variant’

• TNO-FEL needed implementation too

• paradigm shift:• ‘resource variant’:

clean code interface

• resulting in the ‘pseudo-move variant’

immediatesimmediates

Page 34: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 34

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

‘pseudo-move variant’

immediatesimmediates

1993 -> sub_o

1993 -> i01993 -> i0

i0 -> r33

r33 -> sub_o

dflw(r33)

imm

edia

te o

pera

tion

Page 35: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 35

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

‘pseudo-move variant’

• split immediate move in two operations

• schedule the immediate operation (def and use) as normal moves

• count on bypass of virtual register as optimization

immediatesimmediates

Page 36: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 36

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

qualitative comparison

‘resource variant’• one ‘move’ less added• more flexible encoding• clean code interface

‘pseudo-move variant’• importing is possible• ‘real’ moves can be scheduled

effeciently

immediatesimmediates

Page 37: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 37

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

quantitative comparison

• two completely different schedulers

• compare relative cycle counts, not absolute

• cycle count increase both about the same

• small machines:‘real’ move -> better schedule

immediatesimmediates

Page 38: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 38

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

future work

• exploration• importing of immediate

writes• sharing of immediate writes

immediatesimmediates

Page 39: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 39

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

exploration

immediatesimmediates

Page 40: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 40

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

region scheduling immediate writes

immediatesimmediates

immediate bitsimmediate bits

i0 -> r4

A B

C

Page 41: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 41

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

sharing immediate writes

immediatesimmediates

i0->sub_o

i0 -> ld_t

immediate bits

tim

e

LIT i0

0

2

2

2

1

0

resource table

Page 42: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

conclusions

Page 43: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 43

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

conclusions endianness

• completed• host-dependency:

•sources compile onboth platforms

• target-dependency:•one Makefile switch controls

all tools

conclusionsconclusions

Page 44: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 44

introductionintroduction

immediatesimmediates

endiannessendianness

conclusionsconclusions

conclusions immediates

• small (negligible) instruction count increase

• possible large decrease code size

• clean code interface not entirely achieved

conclusionsconclusions

Page 45: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

questions?

Page 46: Enhancing the MOVE framework Endianness port Long Immediates Master’s thesis | Ivo Janssen | 11 mei 2001

borrelricardishof, 21:00 uur