×

Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem

  • US 7,013,353 B2
  • Filed: 03/30/2001
  • Issued: 03/14/2006
  • Est. Priority Date: 03/30/2001
  • Status: Expired due to Fees
First Claim
Patent Images

1. A host-fabric adapter, comprising:

  • at least one Micro-Engine (ME) arranged to establish connections and support data transfers, via a switched fabric, in response to work requests from a host system for data transfers;

    interface blocks arranged to interface said switched fabric and said host system, and send/receive work requests and/or data for data transfers, via said switched fabric, and configured to provide context information needed for said Micro-Engine (ME) to process said work requests for data transfers, via said switched fabric, wherein said Micro-Engine (ME) is implemented with a pipelined instruction execution architecture to handle one or more ME instructions and/or one or more tasks so as to process data for data transfers;

    wherein said Micro-Engine (ME) processes multiple ME instructions in parallel, when said ME instructions are deterministic logic and arithmetic instructions by;

    processing a first instruction at a first cycle in which an OpCode, source address and destination address are read from an Instruction Memory;

    providing a source address to the interface blocks for the first instruction at a second cycle, and processing a second instruction in which the OpCode, source address and destination address are read from the Instruction Memory;

    when data for the first instruction is available from the interface blocks at a third cycle, providing the source address to the interface blocks for the second instruction, and processing a third instruction in which the OpCode, source address and destination address are read from the Instruction Memory;

    processing data messages from the interface blocks for the first instruction at a fourth cycle, and when data for the second instruction is available from the interface blocks, providing the source address to the interface blocks for the third instruction and processing a fourth instruction in which the OpCode, source address and destination address are read from the Instruction Memory;

    providing destination and write controls of the first instruction for the interface blocks at a fifth cycle, processing data messages from the interface blocks for the second instruction and when data for the third instruction is available from the interface blocks, providing the source address to the interface blocks for the fourth instruction and processing a fifth instruction in which the OpCode, source address and destination address are read from the Instruction Memory; and

    when the first instruction is retired at a sixth cycle, providing destination and write controls of the second instruction for the interface blocks, processing the data from the interface blocks for the third instruction, and when data for the fourth instruction is available from the interface blocks, providing the source address to the interface blocks for the fifth instruction and processing a sixth instruction in which the OpCode, source address and destination address are read from the Instruction Memory.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×