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.