abs-tudelft / fletcher

Fletcher: A framework to integrate FPGA accelerators with Apache Arrow
https://abs-tudelft.github.io/fletcher/
Apache License 2.0
219 stars 31 forks source link

Integrate vhdmmio #194

Closed johanpel closed 5 years ago

johanpel commented 5 years ago

This PR introduces the use of vhdmmio to abstract more of the control flow away from the kernel level.

More specifically, since our value is in abstracting away as much of the byte-level dealings with Arrow data, including pointer arithmetic, it doesn't make sense for many potential users to see the buffer addresses at all.

Therefore, we introduce another layer around the kernel; the nucleus (running out of names here, so we can still rename this). The buffer addresses were originally coming in through MMIO and passed all the way down to the kernel. Now, they are only passed down to this nucleus level, and then properly merged onto the ctrl field of the command stream coming from the kernel. On this nucleus layer, a vhdmmio component is generated and instantiated that exposes all required fields at the nucleus level, but only passes on all fields that are not buffer addresses down to the kernel. The command stream now doesn't include the ctrl field anymore seen from the kernel side. Advanced users that may want the kernel to be in control of switching between Arrow buffers can just hook in their kernels at the nucleus level so they get control to the ctrl field again.

Todo:

codecov[bot] commented 5 years ago

Codecov Report

Merging #194 into develop will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff            @@
##           develop     #194   +/-   ##
========================================
  Coverage    88.03%   88.03%           
========================================
  Files           50       50           
  Lines         4906     4906           
========================================
  Hits          4319     4319           
  Misses         587      587
Impacted Files Coverage Δ
hardware/arrays/Array_pkg.vhd 100% <ø> (ø) :arrow_up:
hardware/arrays/ArrayWriterListSync.vhd 96.15% <ø> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 49b9da7...3edaf49. Read the comment docs.