the present invention provides a method and apparatus for data flow control . one embodiment detects input congestion and output starvation in a plurality of sub - buffers of a ripple fifo buffer . this embodiment is used to draw conclusions about the occupancy of the ripple fifo buffer under steady - state conditions . one embodiment detects input congestion and output starvation at every sub - buffer of the ripple fifo buffer . other embodiments detect input congestion and output starvation at a subset of the sub - buffers of the ripple fifo buffer . one embodiment determines occupancy of the ripple fifo buffer by the number of sub - buffers which report a steady congested state . another embodiment determines occupancy of the ripple fifo buffer by the number of sub - buffers which report a steady starved state . another embodiment determines occupancy of the ripple fifo buffer by the location of sub - buffers which report a steady congested state . another embodiment determines occupancy of the ripple fifo buffer by the location of sub - buffers which report a steady starved state . other embodiments determine occupancy of the ripple fifo buffer by a combination of the above methods .