Block write and block read performance
m-kru opened this issue · comments
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 write
s/read
s. 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.