Two directional memory blocksΒΆ

  • supporting bidirectional transfers on low level IO devices takes considerable amount of resources and is mostly unnecessary. It also slows down the communication.

  • use only for testers, configuration tools, etc. Do not use for normal IO communication, reliable recovery from exception situations gets complicated. Stick with one directional memory blocks.

  • Both source and target buffers exist memory block in higher and in lower level.

  • Source and target buffer tracks invalidated addresses at byte precision. This is done by using extra memory for mark bits.

  • Invalidated data is transferred, again at byte precision.

  • Received changes coming from lower hierarchy level are not echoed back down to same memory block.