From f7f2d1193758bb9d7a2d467f188cf755c8d5ddc9 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/v1/arch.c | 24 ++++++++-------- arch/v1/arch_vars.py | 77 +++++++++------------------------------------------- 2 files changed, 25 insertions(+), 76 deletions(-) (limited to 'arch/v1') diff --git a/arch/v1/arch.c b/arch/v1/arch.c index b4dabcf..f1b8c98 100644 --- a/arch/v1/arch.c +++ b/arch/v1/arch.c @@ -7,7 +7,7 @@ enum { #undef INST }; -#if defined(DATA_PUSH_PATH) +#if DATA_PUSH == 1 #define ARCH_EVENT_ARRAYS \ ARCH_EVENT_ARRAY(0, wev) /* write events array*/ \ ARCH_EVENT_ARRAY(1, xev) /* memory block swap events array */ @@ -23,11 +23,11 @@ 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); -#if defined(MVEC_LOOP) +#if MVEC_LOOP = 1 uint64_t addr = UINT64_HALF; #else uint64_t addr = 0; @@ -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 DATA_PUSH == 1 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 DATA_PUSH == 1 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,12 +438,12 @@ void _bswap(struct Core *core, uint64_t pix) { proc->mb1a = tmpa; proc->mb1s = tmps; -#if defined(DATA_PUSH_PATH) +#if DATA_PUSH == 1 // 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; -#if defined(MVEC_LOOP) +#if MVEC_LOOP = 1 ++core->xeva[mvec_loop(addr)]; #else ++core->xeva[addr]; @@ -453,7 +453,7 @@ void _bswap(struct Core *core, uint64_t pix) { for (uint64_t i = 0; i < proc->mb1s; i++) { uint64_t addr = proc->mb1a + i; -#if defined(MVEC_LOOP) +#if MVEC_LOOP = 1 ++core->xeva[mvec_loop(addr)]; #else ++core->xeva[addr]; @@ -675,7 +675,7 @@ 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) +#if DATA_PUSH == 1 // Store write event uint8_t inst = *regs[1] % INST_COUNT; @@ -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 DATA_PUSH == 1 // Store specific instruction execution event in database ++core->iexe[inst]; #endif @@ -873,7 +873,7 @@ const char *arch_mnemonic(uint8_t inst) { // ---------------------------------------------------------------------------- // Data aggregation functions // ---------------------------------------------------------------------------- -#if defined(DATA_PUSH_PATH) +#if DATA_PUSH == 1 #if defined(COMMAND_NEW) void arch_push_data_header(void) { assert(g_sim_data); diff --git a/arch/v1/arch_vars.py b/arch/v1/arch_vars.py index 9605f85..af30650 100644 --- a/arch/v1/arch_vars.py +++ b/arch/v1/arch_vars.py @@ -1,24 +1,34 @@ class ArchVars: def __init__(self, args): + 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.core_fields = [] 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"], "*"), @@ -30,15 +40,12 @@ class ArchVars: (["shfr"], ">"), (["zero"], "z"), (["unit"], "u"), - (["pshn"], "#"), (["popn"], "~"), - (["load"], "."), (["wrte"], ":"), (["dupl"], "="), (["swap"], "x"), - (["keya"], "a"), (["keyb"], "b"), (["keyc"], "c"), @@ -55,7 +62,6 @@ class ArchVars: (["keyn"], "n"), (["keyo"], "o"), (["keyp"], "p"), - (["loka"], "A"), (["lokb"], "B"), (["lokc"], "C"), @@ -73,23 +79,7 @@ class ArchVars: (["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"), @@ -110,44 +100,3 @@ class ArchVars: ("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) - }, - } -- cgit v1.3