From 8401fde7b1d10dc4c1ce9117c1eda7a21067778b Mon Sep 17 00:00:00 2001 From: Paul Oliver Date: Fri, 24 Apr 2026 05:19:57 +0200 Subject: Removes old data server and cleans up python code --- arch/dummy/arch.c | 6 +- arch/dummy/arch_vars.py | 27 --------- arch/dummy/vars.py | 18 ++++++ arch/v1/arch.c | 32 +++++----- arch/v1/arch_vars.py | 153 ------------------------------------------------ arch/v1/vars.py | 99 +++++++++++++++++++++++++++++++ 6 files changed, 136 insertions(+), 199 deletions(-) delete mode 100644 arch/dummy/arch_vars.py create mode 100644 arch/dummy/vars.py delete mode 100644 arch/v1/arch_vars.py create mode 100644 arch/v1/vars.py (limited to 'arch') diff --git a/arch/dummy/arch.c b/arch/dummy/arch.c index 5f7b912..20fc49d 100644 --- a/arch/dummy/arch.c +++ b/arch/dummy/arch.c @@ -1,4 +1,4 @@ -#if (defined(COMMAND_BENCH) || defined(COMMAND_NEW)) && defined(ANC_BYTES) +#if defined(COMMAND_NEW) void arch_core_init(struct Core *core) { assert(core); @@ -27,7 +27,7 @@ void arch_core_free(struct Core *core) { (void)core; } -#if defined(COMMAND_LOAD) || defined(COMMAND_NEW) +#if defined(COMMAND_NEW) || defined(COMMAND_LOAD) void arch_core_save(FILE *f, const struct Core *core) { assert(f); assert(core); @@ -144,7 +144,7 @@ const char *arch_mnemonic(uint8_t inst) { return NULL; } -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) #if defined(COMMAND_NEW) void arch_push_data_header(void) { assert(g_sim_data); diff --git a/arch/dummy/arch_vars.py b/arch/dummy/arch_vars.py deleted file mode 100644 index 0516167..0000000 --- a/arch/dummy/arch_vars.py +++ /dev/null @@ -1,27 +0,0 @@ -class ArchVars: - def __init__(self, _): - self.inst_set = [ - (["dummy", f"{i:02x}"], symbol) - for i, symbol in enumerate( - "⠀⠁⠂⠃⠄⠅⠆⠇⡀⡁⡂⡃⡄⡅⡆⡇⠈⠉⠊⠋⠌⠍⠎⠏⡈⡉⡊⡋⡌⡍⡎⡏⠐⠑⠒⠓⠔⠕⠖⠗⡐⡑⡒⡓⡔⡕⡖⡗⠘⠙⠚⠛⠜⠝⠞⠟⡘⡙⡚⡛⡜⡝⡞⡟" - "⠠⠡⠢⠣⠤⠥⠦⠧⡠⡡⡢⡣⡤⡥⡦⡧⠨⠩⠪⠫⠬⠭⠮⠯⡨⡩⡪⡫⡬⡭⡮⡯⠰⠱⠲⠳⠴⠵⠶⠷⡰⡱⡲⡳⡴⡵⡶⡷⠸⠹⠺⠻⠼⠽⠾⠿⡸⡹⡺⡻⡼⡽⡾⡿" - "⢀⢁⢂⢃⢄⢅⢆⢇⣀⣁⣂⣃⣄⣅⣆⣇⢈⢉⢊⢋⢌⢍⢎⢏⣈⣉⣊⣋⣌⣍⣎⣏⢐⢑⢒⢓⢔⢕⢖⢗⣐⣑⣒⣓⣔⣕⣖⣗⢘⢙⢚⢛⢜⢝⢞⢟⣘⣙⣚⣛⣜⣝⣞⣟" - "⢠⢡⢢⢣⢤⢥⢦⢧⣠⣡⣢⣣⣤⣥⣦⣧⢨⢩⢪⢫⢬⢭⢮⢯⣨⣩⣪⣫⣬⣭⣮⣯⢰⢱⢲⢳⢴⢵⢶⢷⣰⣱⣲⣳⣴⣵⣶⣷⢸⢹⢺⢻⢼⢽⢾⢿⣸⣹⣺⣻⣼⣽⣾⣿" - ) - ] - - self.core_fields = [] - self.core_data_fields = [] - self.mvec_loop = True - - self.proc_fields = [ - ("uint64_t", "ip"), - ("uint64_t", "sp"), - ("uint64_t", "mb0a"), - ("uint64_t", "mb0s"), - ("uint64_t", "mb1a"), - ("uint64_t", "mb1s"), - ] - - self.plots = {} - self.heatmaps = {} diff --git a/arch/dummy/vars.py b/arch/dummy/vars.py new file mode 100644 index 0000000..7150767 --- /dev/null +++ b/arch/dummy/vars.py @@ -0,0 +1,18 @@ +inst_set = [(["dummy", f"{i:02x}"], symbol) for i, symbol in enumerate( + "⠀⠁⠂⠃⠄⠅⠆⠇⡀⡁⡂⡃⡄⡅⡆⡇⠈⠉⠊⠋⠌⠍⠎⠏⡈⡉⡊⡋⡌⡍⡎⡏⠐⠑⠒⠓⠔⠕⠖⠗⡐⡑⡒⡓⡔⡕⡖⡗⠘⠙⠚⠛⠜⠝⠞⠟⡘⡙⡚⡛⡜⡝⡞⡟" + "⠠⠡⠢⠣⠤⠥⠦⠧⡠⡡⡢⡣⡤⡥⡦⡧⠨⠩⠪⠫⠬⠭⠮⠯⡨⡩⡪⡫⡬⡭⡮⡯⠰⠱⠲⠳⠴⠵⠶⠷⡰⡱⡲⡳⡴⡵⡶⡷⠸⠹⠺⠻⠼⠽⠾⠿⡸⡹⡺⡻⡼⡽⡾⡿" + "⢀⢁⢂⢃⢄⢅⢆⢇⣀⣁⣂⣃⣄⣅⣆⣇⢈⢉⢊⢋⢌⢍⢎⢏⣈⣉⣊⣋⣌⣍⣎⣏⢐⢑⢒⢓⢔⢕⢖⢗⣐⣑⣒⣓⣔⣕⣖⣗⢘⢙⢚⢛⢜⢝⢞⢟⣘⣙⣚⣛⣜⣝⣞⣟" + "⢠⢡⢢⢣⢤⢥⢦⢧⣠⣡⣢⣣⣤⣥⣦⣧⢨⢩⢪⢫⢬⢭⢮⢯⣨⣩⣪⣫⣬⣭⣮⣯⢰⢱⢲⢳⢴⢵⢶⢷⣰⣱⣲⣳⣴⣵⣶⣷⢸⢹⢺⢻⢼⢽⢾⢿⣸⣹⣺⣻⣼⣽⣾⣿" +)] + +core_data_fields = [] +core_fields = [] +mvec_loop = True +proc_fields = [ + ("uint64_t", "ip"), + ("uint64_t", "sp"), + ("uint64_t", "mb0a"), + ("uint64_t", "mb0s"), + ("uint64_t", "mb1a"), + ("uint64_t", "mb1s"), +] diff --git a/arch/v1/arch.c b/arch/v1/arch.c index b4dabcf..ec5d778 100644 --- a/arch/v1/arch.c +++ b/arch/v1/arch.c @@ -7,7 +7,7 @@ enum { #undef INST }; -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) #define ARCH_EVENT_ARRAYS \ ARCH_EVENT_ARRAY(0, wev) /* write events array*/ \ ARCH_EVENT_ARRAY(1, xev) /* memory block swap events array */ @@ -23,7 +23,7 @@ thrd_t g_arch_eva_thrds[CORES][ARCH_EVENT_ARRAYS_COUNT]; struct DeflateParams g_arch_eva_deflate_params[CORES][ARCH_EVENT_ARRAYS_COUNT]; #endif -#if (defined(COMMAND_BENCH) || defined(COMMAND_NEW)) && defined(ANC_BYTES) +#if defined(COMMAND_NEW) void arch_core_init(struct Core *core) { assert(core); @@ -51,12 +51,12 @@ void arch_core_free(struct Core *core) { (void)core; } -#if defined(COMMAND_LOAD) || defined(COMMAND_NEW) +#if defined(COMMAND_NEW) || defined(COMMAND_LOAD) void arch_core_save(FILE *f, const struct Core *core) { assert(f); assert(core); -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) fwrite(core->iexe, sizeof(uint64_t), INST_COUNT, f); fwrite(core->iwrt, sizeof(uint64_t), INST_COUNT, f); fwrite(&core->wmb0, sizeof(uint64_t), 1, f); @@ -78,7 +78,7 @@ void arch_core_load(FILE *f, struct Core *core) { assert(f); assert(core); -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) fread(core->iexe, sizeof(uint64_t), INST_COUNT, f); fread(core->iwrt, sizeof(uint64_t), INST_COUNT, f); fread(&core->wmb0, sizeof(uint64_t), 1, f); @@ -438,7 +438,7 @@ void _bswap(struct Core *core, uint64_t pix) { proc->mb1a = tmpa; proc->mb1s = tmps; -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) // Memory block swap events mark all addresses within both blocks for (uint64_t i = 0; i < proc->mb0s; i++) { uint64_t addr = proc->mb0a + i; @@ -675,10 +675,10 @@ void _write(struct Core *core, uint64_t pix) { if (_is_writeable_by(core, *regs[0], pix)) { uint64_t addr = *regs[0]; -#if defined(DATA_PUSH_PATH) - // Store write event +#if defined(DATA_PUSH) uint8_t inst = *regs[1] % INST_COUNT; + // Store write event ++core->iwrt[inst]; ++core->weva[addr]; @@ -734,7 +734,7 @@ void arch_proc_step(struct Core *core, uint64_t pix) { struct Proc *proc = proc_fetch(core, pix); uint8_t inst = _get_inst(core, proc->ip); -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) // Store specific instruction execution event in database ++core->iexe[inst]; #endif @@ -873,12 +873,12 @@ const char *arch_mnemonic(uint8_t inst) { // ---------------------------------------------------------------------------- // Data aggregation functions // ---------------------------------------------------------------------------- -#if defined(DATA_PUSH_PATH) +#if defined(DATA_PUSH) #if defined(COMMAND_NEW) void arch_push_data_header(void) { assert(g_sim_data); - g_info("Creating 'arch' table in SQLite database"); + g_info("Creating arch table in SQLite database"); salis_exec_sql( 0, NULL, NULL, "create table arch (" @@ -899,7 +899,7 @@ void arch_push_data_header(void) { for (int i = 0; i < CORES; ++i) { for (int j = 0; j < iprefs_cnt; ++j) { - g_info("Creating '%s_%d' table in SQLite database", iprefs[j], i); + g_info("Creating %s_%d table in SQLite database", iprefs[j], i); salis_exec_sql( 0, NULL, NULL, "create table %s_%d (" @@ -929,7 +929,7 @@ void arch_push_data_header(void) { default: assert(false); } - g_info("Creating '%s_%d' table in SQLite database", pref, i); + g_info("Creating %s_%d table in SQLite database", pref, i); salis_exec_sql( 0, NULL, NULL, "create table %s_%d (" @@ -969,7 +969,7 @@ void arch_push_data_line(void) { #endif } - g_info("Pushing row to 'arch' table in SQLite database"); + g_info("Pushing row to arch table in SQLite database"); salis_exec_sql( 0, NULL, NULL, "insert into arch (" @@ -1013,7 +1013,7 @@ void arch_push_data_line(void) { default: assert(false); } - g_info("Pushing row to '%s_%d' table in SQLite database", pref, i); + g_info("Pushing row to %s_%d table in SQLite database", pref, i); salis_exec_sql( 0, NULL, NULL, "insert into %s_%d (" @@ -1087,7 +1087,7 @@ void arch_push_data_line(void) { const void *blob = params->out; int blob_size = params->strm.total_out; - g_info("Pushing row to '%s_%d' table in SQLite database", pref, i); + g_info("Pushing row to %s_%d table in SQLite database", pref, i); salis_exec_sql( 1, &blob, &blob_size, "insert into %s_%d (" diff --git a/arch/v1/arch_vars.py b/arch/v1/arch_vars.py deleted file mode 100644 index 9605f85..0000000 --- a/arch/v1/arch_vars.py +++ /dev/null @@ -1,153 +0,0 @@ -class ArchVars: - def __init__(self, args): - self.inst_set = [ - (["noop"], " "), - (["nop0"], "0"), - (["nop1"], "1"), - (["nop2"], "2"), - (["nop3"], "3"), - - (["jmpb"], "("), - (["jmpf"], ")"), - (["adrb"], "["), - (["adrf"], "]"), - (["ifnz"], "?"), - - (["allb"], "{"), - (["allf"], "}"), - (["bswp"], "%"), - (["bclr"], "|"), - (["splt"], "$"), - - (["addn"], "+"), - (["subn"], "-"), - (["muln"], "*"), - (["divn"], "/"), - (["incn"], "^"), - (["decn"], "v"), - (["notn"], "!"), - (["shfl"], "<"), - (["shfr"], ">"), - (["zero"], "z"), - (["unit"], "u"), - - (["pshn"], "#"), - (["popn"], "~"), - - (["load"], "."), - (["wrte"], ":"), - (["dupl"], "="), - (["swap"], "x"), - - (["keya"], "a"), - (["keyb"], "b"), - (["keyc"], "c"), - (["keyd"], "d"), - (["keye"], "e"), - (["keyf"], "f"), - (["keyg"], "g"), - (["keyh"], "h"), - (["keyi"], "i"), - (["keyj"], "j"), - (["keyk"], "k"), - (["keyl"], "l"), - (["keym"], "m"), - (["keyn"], "n"), - (["keyo"], "o"), - (["keyp"], "p"), - - (["loka"], "A"), - (["lokb"], "B"), - (["lokc"], "C"), - (["lokd"], "D"), - (["loke"], "E"), - (["lokf"], "F"), - (["lokg"], "G"), - (["lokh"], "H"), - (["loki"], "I"), - (["lokj"], "J"), - (["lokk"], "K"), - (["lokl"], "L"), - (["lokm"], "M"), - (["lokn"], "N"), - (["loko"], "O"), - (["lokp"], "P"), - ] - - self.core_fields = [] - self.core_data_fields = [ - ("uint64_t", "ipop", f"[{len(self.inst_set)}]"), # instruction population counter - ("uint64_t", "iexe", f"[{len(self.inst_set)}]"), # instruction execution counter - ("uint64_t", "iwrt", f"[{len(self.inst_set)}]"), # instruction write counter - - ("uint64_t", "wmb0", ""), # writes within mb0 counter - ("uint64_t", "wmb1", ""), # writes within mb1 counter - ("uint64_t", "wdea", ""), # writes within dead code counter - - ("uint64_t", "weva", f"[{2 ** args.mvec_pow}]"), # write events array - ("uint64_t", "xeva", f"[{2 ** args.mvec_pow}]"), # memory block swap events array - ] - - self.mvec_loop = False - - self.proc_fields = [ - ("uint64_t", "ip"), - ("uint64_t", "sp"), - ("uint64_t", "mb0a"), - ("uint64_t", "mb0s"), - ("uint64_t", "mb1a"), - ("uint64_t", "mb1s"), - ("uint64_t", "r0x"), - ("uint64_t", "r1x"), - ("uint64_t", "r2x"), - ("uint64_t", "r3x"), - ("uint64_t", "s0"), - ("uint64_t", "s1"), - ("uint64_t", "s2"), - ("uint64_t", "s3"), - ("uint64_t", "s4"), - ("uint64_t", "s5"), - ("uint64_t", "s6"), - ("uint64_t", "s7"), - ] - - self.plots = { - "General": { - "wevs": { - "table": "arch", - "type": "lines", - "cols": [f"{pref}_{i}" for pref in ["wmb0", "wmb1", "wdea"] for i in range(args.cores)], - }, - }, - "Instructions": { - f"ipop_{i}": { - "table": f"pop_{i}", - "type": "stack", - "cols": ["_".join(inst[0]) for inst in self.inst_set], - } for i in range(args.cores) - } | { - f"iexe%_{i}": { - "table": f"exe_{i}", - "type": "stack_percent", - "cols": ["_".join(inst[0]) for inst in self.inst_set], - } for i in range(args.cores) - } | { - f"iwrt%_{i}": { - "table": f"wrt_{i}", - "type": "stack_percent", - "cols": ["_".join(inst[0]) for inst in self.inst_set], - } for i in range(args.cores) - }, - } - - self.heatmaps = { - "Events": { - f"wev_{i}": { - "table": f"wev_{i}", - } for i in range(args.cores) - } | { - f"xev_{i}": { - "table": f"xev_{i}", - } for i in range(args.cores) - }, - } diff --git a/arch/v1/vars.py b/arch/v1/vars.py new file mode 100644 index 0000000..cf4f376 --- /dev/null +++ b/arch/v1/vars.py @@ -0,0 +1,99 @@ +inst_set = [ + (["noop"], " "), + (["nop0"], "0"), + (["nop1"], "1"), + (["nop2"], "2"), + (["nop3"], "3"), + (["jmpb"], "("), + (["jmpf"], ")"), + (["adrb"], "["), + (["adrf"], "]"), + (["ifnz"], "?"), + (["allb"], "{"), + (["allf"], "}"), + (["bswp"], "%"), + (["bclr"], "|"), + (["splt"], "$"), + (["addn"], "+"), + (["subn"], "-"), + (["muln"], "*"), + (["divn"], "/"), + (["incn"], "^"), + (["decn"], "v"), + (["notn"], "!"), + (["shfl"], "<"), + (["shfr"], ">"), + (["zero"], "z"), + (["unit"], "u"), + (["pshn"], "#"), + (["popn"], "~"), + (["load"], "."), + (["wrte"], ":"), + (["dupl"], "="), + (["swap"], "x"), + (["keya"], "a"), + (["keyb"], "b"), + (["keyc"], "c"), + (["keyd"], "d"), + (["keye"], "e"), + (["keyf"], "f"), + (["keyg"], "g"), + (["keyh"], "h"), + (["keyi"], "i"), + (["keyj"], "j"), + (["keyk"], "k"), + (["keyl"], "l"), + (["keym"], "m"), + (["keyn"], "n"), + (["keyo"], "o"), + (["keyp"], "p"), + (["loka"], "A"), + (["lokb"], "B"), + (["lokc"], "C"), + (["lokd"], "D"), + (["loke"], "E"), + (["lokf"], "F"), + (["lokg"], "G"), + (["lokh"], "H"), + (["loki"], "I"), + (["lokj"], "J"), + (["lokk"], "K"), + (["lokl"], "L"), + (["lokm"], "M"), + (["lokn"], "N"), + (["loko"], "O"), + (["lokp"], "P"), +] + +core_data_fields = [ + ("uint64_t", f"ipop[{len(inst_set)}]"), # instruction population counter + ("uint64_t", f"iexe[{len(inst_set)}]"), # instruction execution counter + ("uint64_t", f"iwrt[{len(inst_set)}]"), # instruction write counter + ("uint64_t", "wmb0"), # writes within mb0 counter + ("uint64_t", "wmb1"), # writes within mb1 counter + ("uint64_t", "wdea"), # writes within dead code counter + ("uint64_t", f"weva[{2 ** globals()["args"].mvec_pow}]"), # write events array + ("uint64_t", f"xeva[{2 ** globals()["args"].mvec_pow}]"), # memory block swap events array +] +core_fields = [] +mvec_loop = False +proc_fields = [ + ("uint64_t", "ip"), + ("uint64_t", "sp"), + ("uint64_t", "mb0a"), + ("uint64_t", "mb0s"), + ("uint64_t", "mb1a"), + ("uint64_t", "mb1s"), + ("uint64_t", "r0x"), + ("uint64_t", "r1x"), + ("uint64_t", "r2x"), + ("uint64_t", "r3x"), + ("uint64_t", "s0"), + ("uint64_t", "s1"), + ("uint64_t", "s2"), + ("uint64_t", "s3"), + ("uint64_t", "s4"), + ("uint64_t", "s5"), + ("uint64_t", "s6"), + ("uint64_t", "s7"), +] -- cgit v1.3