Jim Huang
Jim Huang
> For instance, if the size of new machine code is larger than the replaced one, it might cause an overflow. Conversely, if the size of the new machine code...
For scenarios that require caching, a good cache eviction strategy can improve the cache hit rate. The most commonly used cache eviction strategies are LFU (Least Frequently Used) and LRU...
In most operations, a 12-bit size is standard for offsets. This applies to immediate arithmetic and logical operations (e.g., `addi`, `andi`, `slti`), memory access instructions (e.g., `lb`, `lwu`), and branching...
> In conclusion, I think the scenarios where translating the jalr instruction into auipc + jalr is very rare in our benchmarks. The ELF files located in the 'build' directory...
Let's look at a basic example of C code that accesses an array element: ```c int readidx(int *p, size_t idx) { return p[idx]; } ``` This code snippet demonstrates a...
In Arm architecture, the `bl` instruction (branch and link) records the return address in the link register (`lr`), a concept believed to be inherited from early RISC designs that emphasized...
@RinHizakura, Could you provide a comment on the MMU issue mentioned above, drawing from your past experience in developing the [riscv-emulator](https://github.com/RinHizakura/riscv-emulator)?
> I further noticed that every CPU instruction fetch goes through the MMU page walk and a very simple "1-entry-1-page" cache (one for INSN fetch, load & store) speeds up...
> I would *also* like that to be modular enough to be able to either configure a MMU or RAM cache (or not!) during runtime or at least with a...
Regarding enabling offline macro-op fusion, in the context of RISC-V, which is a fixed-width ISA, certain operations are split into multiple instructions. For hardware RISC-V implementations, these instruction pairs are...