Gabrial Benchmarks on Tamarin Simulator TAK This benchmark mainly tests the function call of a Lisp processor. We had to run the simulation with a reduced number of iterations so that the simulation would complete in a reasonable amount of time. The TAK program which was run is as follows: (LAMBDA (x y z) (COND ((NOT (LESSP y x)) z) (T (tak (tak (SUB1 x) y z) (tak (SUB1 y) z x) (tak (SUB1 z) x y))))) The Tamarin code used for the function TAK (which was mostly taken from the KOTO Bytecompiler with the proper Tamarin Opcodes added) is as follows: VAR x Lab0 COPY VAR y GREATERP TJUMP Lab1 VAR z RETURN Lab1 SUBX 1 VAR y VAR z FN3 tak VAR y SUBX 1 VAR z VAR x FN3 tak VAR z SUBX 1 VAR x VAR y FN3 tak VAR z_^ VAR y_^ VAR x_ NJUMPX Lab0 The execution frequence of the opcodes (with the # cycles for each opcode) when (TAK 9 6 3) is simulated is as follows: OPCODE Executions CMos 0.9 CMos I CMos II Cycles Cycles Cycles VAR x 366 1 366 1 366 1 366 VAR y 512 1 512 1 512 1 512 VAR z 439 1 439 1 439 1 439 VAR x_ 73 1 73 1 73 1 73 VAR y_^ 73 1 73 1 73 1 73 VAR z_ 73 1 73 1 73 1 73 COPY 293 1 293 1 293 1 293 GREATERP False 220 3 660 2 440 1 220 True 73 2 146 1 73 1 73 SUBX 220 1 220 1 220 1 220 TJUMP False 220 1 220 1 220 1 220 True 73 10 730 6 438 2 146 NJUMPX 73 9 657 6 438 3 219 FN3 tak 220 16 3520 13 2860 4 880 RETURN 220 9 1980 5 1100 3 660 ------------ ----------- ---------- 9962 7618 4467 The Tamarin Architecture maintains several stack frames on chip, so that accesses to local variables and the execution stack do not require off-chip memory cycles. This speeds up most operations, but does require that these frames be transferred to and from main memory when the function call depth exceeds the internal capacity of the chip. The simulation was run with 6 stack frames on chip, but we plan to possibly have 8 on the CMos II version, so there will be fewer frame loads & dumps in the final version. The times for loading and dumping (as required for 6 on-chip frames; Note CMos 0.9 numbers are for 4 on-chip frames) is as follows: OPERATION Executions CMos 0.9 CMos I CMos II (Frames) Cycles Cycles Cycles Frame Dumps 7 (6) 29 203 19 133 Frame Loads 7 (6) 26 182 16 112 Frame Dumps 26 (4) 29 754 Frame Loads 26 (4) 26 676 ----------- ----------- ----------- 1430 285 245 So the Total cycles of the TAK test are: OPERATION CMos 0.9 CMos I CMos II Cycles Cycles Cycles Execution 9962 7618 4467 Frame Management 1430 285 245 ---- ---- ---- 11392 7903 4712 A CMmos 0.9 cycle = 80 ns so 11392 cycles x 80 ns = .911 ms A CMmos I cycle = 80 ns so 7903 cycles x 80 ns = .632 ms A CMos II cycle = 65 ns so 4712 cycles x 65 ns = .306 ms Timing comparisons between the Tamarin chips and other machines running the same function are as follows: x DayBreak x Symbolics Tamarin CMos 0.9: .911 ms 8.6 3.6 Tamarin CMos I: .632 ms 12.4 5.3 Tamarin CMos II: .306 ms 25.6 10.9 Dorado (Koto Byte Compiler): 2.42 ms 3.2 1.3 DBreak (Koto Byte Compiler): 7.85 ms 1.0 .4 DBreak (Lyric Common Lisp) 8.60 ms .9 .4 Symbolics 3600 w/out IFU 3.36 ms 2.3 1.0 )T((TERMINALTERMINAL GACHA GACHA ?1(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8)) 'ù ”                   x/$$$%%%# $"# ##%*%+&Š2%**  ,)(!'99j ./8<64 øåzº