code: def read(self, memory, addr, length):
          
          if memory.id in self._read_requests:
              logger.warning('There is already a read operation ongoing for '
                             'memory id {}'.format(memory.id))
              return False
  
          rreq = _ReadRequest(memory, addr, length, self.cf)
          self._read_requests[memory.id] = rreq
  
          rreq.start()
  
          return True
docs: Read the specified amount of bytes from the given memory at the given
          address