Functional-Bus-Description-Language / go-vfbdb

Versatile Functional Bus Description Language compiler back-end written in Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Block write and block read performance

m-kru opened this issue · comments

commented

Block write (bwrite) and block read (bread) must be part of the interface. They might not be supported by the hardware if the maximum throughput is not needed. In such a case, the software implementation of bwrite/bread is simply an iterative call to the write/read.

To make deterministic and manageable solution the performance of bwrite/bread must be known compared to the write/read. The back-end makes call to the bwrite/bread whenever it needs an access to the consecutive registers starting from two registers. This implies, that single bwrite/bread must have at least the same performance as two writes/reads. If this condition is not met, everything will still work correctly, however the achieved performance will be worse. This soft requirement ease the implementation as the threshold when calling bwrite/bread makes sense is fixed, and there is no need to pass this extra information to the back-end when performance is crucial.