using pipelining techniques, i.e. using latches between functional memory parts