A bi-directional buffer comprising: a memory buffer for storing blocks of output data and input data, where the output data originates at a first interface and is to be read by a second interface and the input data originates at the second interface and is to be read by the first interface; a first data path connection for intermittently reading segments of several blocks of input data from the memory buffer to the first interface and replacing the read segments by segments of several blocks of output data from the first interface; a second data path connection for continuously reading blocks of output data from the memory buffer to the second interface and continuously replacing the read blocks of data by blocks of input data from the second interface; and a control unit using a first pointer indicating a fill position of the last written output data in the memory buffer and a second pointer indicating a current read position of output data in the memory buffer, the control unit having: a first mode of operation in which the control unit is adapted to intermittently signal to the first interface over a control path connection to write a segment of several blocks of data of a first predetermined size over the first data path connection in the memory buffer at a position ahead of the first pointer; and a second mode of operation in which the control unit is adapted to intermittently signal to the first interface over the control path connection to read and replace a segment of several blocks of data of a second predetermined size less than the first predetermined size over the first data path connection at the position in the memory buffer ahead of the first pointer, where said signalling in the second mode of operation is performed more frequently than in the first mode of operation; wherein a block of data stored in the memory buffer at a position indicated by the second pointer is continuously read and replaced by the second interface over the second data path connection in both modes of operation. a memory buffer for storing blocks of output data and input data, where the output data originates at a first interface and is to be read by a second interface and the input data originates at the second interface and is to be read by the first interface; a first data path connection for intermittently reading segments of several blocks of input data from the memory buffer to the first interface and replacing the read segments by segments of several blocks of output data from the first interface; a second data path connection for continuously reading blocks of output data from the memory buffer to the second interface and continuously replacing the read blocks of data by blocks of input data from the second interface; and a control unit using a first pointer indicating a fill position of the last written output data in the memory buffer and a second pointer indicating a current read position of output data in the memory buffer, the control unit having: a first mode of operation in which the control unit is adapted to intermittently signal to the first interface over a control path connection to write a segment of several blocks of data of a first predetermined size over the first data path connection in the memory buffer at a position ahead of the first pointer; and a second mode of operation in which the control unit is adapted to intermittently signal to the first interface over the control path connection to read and replace a segment of several blocks of data of a second predetermined size less than the first predetermined size over the first data path connection at the position in the memory buffer ahead of the first pointer, where said signalling in the second mode of operation is performed more frequently than in the first mode of operation; a first mode of operation in which the control unit is adapted to intermittently signal to the first interface over a control path connection to write a segment of several blocks of data of a first predetermined size over the first data path connection in the memory buffer at a position ahead of the first pointer; and a second mode of operation in which the control unit is adapted to intermittently signal to the first interface over the control path connection to read and replace a segment of several blocks of data of a second predetermined size less than the first predetermined size over the first data path connection at the position in the memory buffer ahead of the first pointer, where said signalling in the second mode of operation is performed more frequently than in the first mode of operation; wherein a block of data stored in the memory buffer at a position indicated by the second pointer is continuously read and replaced by the second interface over the second data path connection in both modes of operation.