Compiler ported to generate code for SESC FlexRAM OS and Runtime libraries.
Small tests spawning several threads both in the PHost and the PArrays successful.
Simple OS extension to provide FIFO-like scheduling for the PHost threads (Joe's internal scheduler always seems to alternate between the last two spawned ones...).
Other OS/Runtime library notes:
Wait algorithm for spawned threads based in yield to next thread in FIFO. This means that the CPU wait is always busy. Think how to speed up simulation suspending threads, removing them from the queue, activating them, etc.
Yet to try/debug local heap management runtime library for PArrays.
First execution of the system including spawning a task on a PArray and getting the resuls.
Core OS Interruption SW handlers and kernel working.
The improvements in the internal structure of the simulator have speeded it up about 30% since January.
Threads completely removed from the backend: now we only use callbacks.
Adding function to interrupt processor resuming threads from the backend.
HUGE change decided in FlexRAM architecture: Mesh added, PMem removed.
Backend internals completely
modified to simulate real lock-up free cache with a given number of MSHRs.
Write buffer between each cache and its lower level adapted to the write policy (WT/WB) that stalls when full and allows reads to bypass writes.
Interaction of write buffer stall with cache stall due to blocking may have to be further studied.
Cache flush operation implemented.
TLB, OS with two-level page table implemented.
Improvements to FlexRAM memory backend:
Check of maximum number of simultaneous misses implemented.
Several performance improvements implemented.
Statistics collection/storage adapted to SESC.
FlexRAM memory backend ported to SESC.
No coherence protocol (FlexRAM has no coherence protocol, so...).