[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[f-cpu] F-CPU vs. Itanium

in docs there is stated that f-cpu was at first meant to
be itanium killer. I was thinking what makes it better
than Itanium in terms of performance:

- = better for Itanium
+ = better for f-cpu

= register count (let's ignore FPU splitted bank)
- IA64 defines twice more registers which are used
  as cache during subroutine calls -> less push/pop
  to memory
+ f-cpu saves 3bits here ->shorter opcode
+ maybe less registers -> less expensive to add next
  ports to reg-file (due to fanout) ?

= register renaming
- f-cpu has to do more register saves during calls
  because of fixed register allocation (call-presistent
  vs. call-clobbered)
- itanium can do sw pipelining with less code size
+ f-cpu is simpler -> higher clock ?

= multi issue & groups
- Itanium uses stop-marks to denote parts of machine code
  where is no RAW->WAW between regs -> simpler multiissue logic
- 6/9 issue at this time for Itanium/Merced
+ f-cpu saves 1bit per op here

= simd
+ f-cpu can do simd on every op while Itanium has dedicated ops

= pipeline depth
+ shorter pipeline is always better
- if f-cpu will want to be multiissue maybe xbar stage will have
  to be larger ? like using 5x 4-stage omega network to do full
  mesh between each register and each of 63 EU's ;-]

= address disambiguation
- Itanium can do it (explicitly) so that you can exploit more
  ILP - move loads before potential overwrites of the same address
+ Itanium spends instruction slot for it (while Alpha does it
  automaticaly AFAIK)

So where is the key for f-cpu to be faster ? Will it run at higher
clocks ? Or did I miss something ?

To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/