500行に収めるのはあきらめ、NSLに非商用ライセンスを設定し、一昨日、3時間、今朝、1時間ほどデバッグ作業の時間が取れたので、少し動きはじめた。でも、メモリへの格納値が微妙(?)に違う。
インオーダーのCPUと違い、デバッグで命令を追いかけるのは、結構大変な作業だ。
デバッグの続きは来週後半かな。。
現状、661行で、(それなりに)動作している。たぶん、アウトオブオーダーCPUとしては、世界最小ではないかな? :-)
問題のメモリログは、下記。もともと、SN/Xはメモリ待ち時間は0なので、単にアウトオブオーダーにすると、(分岐でリオーダバッファフラッシュが入るし)実行時間は長くなるのだけれど、レジスタリネーミングしているので、レジスタ数の少ないSN/Xには、OOO実行は向いている気がする。
インオーダーのCPUと違い、デバッグで命令を追いかけるのは、結構大変な作業だ。
デバッグの続きは来週後半かな。。
現状、661行で、(それなりに)動作している。たぶん、アウトオブオーダーCPUとしては、世界最小ではないかな? :-)
/home/SNX> wc snxo.nsl 661 1647 15510 snxo.nsl
問題のメモリログは、下記。もともと、SN/Xはメモリ待ち時間は0なので、単にアウトオブオーダーにすると、(分岐でリオーダバッファフラッシュが入るし)実行時間は長くなるのだけれど、レジスタリネーミングしているので、レジスタ数の少ないSN/Xには、OOO実行は向いている気がする。
HALTED at 122 clock 00000000: 0001 0002 0004 0000 0000 xxxx xxxx xxxx 00000008: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000010: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000018: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000020: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000028: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000030: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000038: 000b xxxx 000b 0000 000b 0001 0003 0002 00000040: xxxx 0003 xxxx xxxx xxxx xxxx xxxx xxxx 00000048: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000050: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000058: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000060: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000068: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000070: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000078: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx PC:0006 /home/SNX> ^simo^sim tail -20 sim.log PC:0003 st $1, 0($0) -- $0:0010 $1:0006 $2:0003 $3:00 PC:0004 HALTED at 109 clock 00000000: 0006 0002 0004 0000 0000 xxxx xxxx xxxx 00000008: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000010: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000018: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000020: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000028: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000030: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000038: 000b 0000 000b 0001 000b 0002 0003 0003 00000040: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000048: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000050: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000058: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000060: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000068: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000070: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 00000078: xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx