enhancing the move framework endianness port long immediates master’s thesis | ivo janssen | 11...
Post on 18-Dec-2015
214 views
TRANSCRIPT
Enhancing the MOVE framework
Endianness portLong 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
Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 3
introductionintroduction
immediatesimmediates
endiannessendianness
conclusionsconclusions
introduction
• project motivation• overview Move project
introductionintroduction
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
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
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
Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 7
introductionintroduction
immediatesimmediates
endiannessendianness
conclusionsconclusions
the move framework
introductionintroduction
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
endianness
Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 10
introductionintroduction
immediatesimmediates
endiannessendianness
conclusionsconclusions
endianness
• what is endianness• endianness in the Move
framework
endiannessendianness
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
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
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
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
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
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
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
immediates
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
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
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
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
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
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
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
Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 26
introductionintroduction
immediatesimmediates
endiannessendianness
conclusionsconclusions
scheduling algorithms
• mach-file format• data structures• algorithms
immediatesimmediates
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
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
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
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
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
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
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
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
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
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
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
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
Enhancing the MOVE framework - Ivo Janssen - May 11, 2001 39
introductionintroduction
immediatesimmediates
endiannessendianness
conclusionsconclusions
exploration
immediatesimmediates
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
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
conclusions
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
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
questions?
borrelricardishof, 21:00 uur