bu-icsg / dana

Dynamically Allocated Neural Network Accelerator for the RISC-V Rocket Microprocessor in Chisel
Other
205 stars 36 forks source link

X-FILES Integration with the Linux kernel #3

Open seldridge opened 8 years ago

seldridge commented 8 years ago

The patched proxy kernel with additional system calls to deal with setup and manual, user process management of the ASID--NNID Table is a crutch that needs to be remove at some point.

This issue roughly covers full integration of the X-Files supervisor libraries with the Linux kernel to enable the transparent use of X-Files/Dana by user processes without having to use system calls to get the OS to setup the ASID--NNID Table. All this should happen transparently, likely with a trap-based model.

Roughly, this whole thing should work as follows (similar to my understanding of how the floating point unit is managed):

By default, the kernel sets up a small ASID--NNID Table. On first access by a user process to the X-Files arbiter, the kernel traps and deals with setup of the X-Files arbiter, i.e., the kernel sets the ASID and ASID--NNID Table pointer (though this latter bit could be setup earlier). The kernel then deals with setting the appropriate traps or automatically changing the ASID across context switches of user processes. This may require some modifications to whatever structures that the kernel uses to manage the list of all processes (e.g., child processes should, I expected, have the same ASID as their parents).