block reads and writes for up to 16 bytes