EP0971289A2

Apparatus and method for concurrently executing multiple instructions

Abstract

A network switch executes high-speed switching operations using 100 Mb/s or 1 Gb/s wire rates using layer-2 (Ethernet or IEEE 802.3) or layer-3 (IPv4 or IPv6) protocol by concurrently executing a plurality of instructions in a pipelined-timeshared arrangement. The network switch includes a switch fabric having multiple network ports, and switching logic for performing switching decisions for each received packet at either the layer-2 level or layer-3 level. The switching logic includes a lookup processor configured for concurrently executing a plurality of instructions within a prescribed number of clock cycles, where separate logic components within the lookup processor perform an instruction operation each clock cycle for a different instruction. Hence, the lookup processor performs concurrent processing of multiple instructions without the necessity of multiple redundant logical devices. The concurrent execution of multiple instructions effectively eliminates the delays normally encountered from accessing a memory over two clock cycles.

EP0971289A2, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Projected expiry passed 21 April 2019, 7.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

26 claims: 6 independent, 20 dependent

  1. 1
    A method of executing instruction operations, comprising:successively fetching instructions during a respective prescribed number of cycles;and concurrently executing the fetched instructions by successively executing each of the fetched instructions within the prescribed number of cycles.
  2. 8
    A method in a processor circuit of concurrently executing a plurality of instructions, comprising:establishing a prescribed number of clock cycles for executing an executable instruction in the processor circuit, each executable instruction having a corresponding number of instruction operations up to the prescribed number of clock cycles;and concurrently executing one of the instruction operations for each of the instructions in respective logic components of the processor circuit during each clock cycle.
  3. 16
    A method in a processor circuit, having logic components, for concurrently executing a plurality of instructions, the method comprising:outputting a count value each clock cycle that identifies one of a prescribed number of clock cycles, each instruction having a corresponding number of instruction operations up to the prescribed number of clock cycles;and selecting based on the count value, by each logic component, one of a plurality of operands associated with a corresponding instruction for execution of a corresponding instruction operation each clock cycle.
  4. 18
    A method in a network switch for determining output switch ports for received data packets, comprising:receiving for each of the received data packets a destination address and an addressing protocol identifier;and concurrently determining output switch ports for a prescnbed number of data packets, comprising: (1) successively fetching an executable instruction each clock cycle for a corresponding data packet based on the corresponding addressing protocol identifier, the executable instruction having a corresponding prescnbed number of instruction operations up to the prescribed number;(2) concurrently executing, during each clock cycle, one of the instruction operations for each of the fetched instructions for the corresponding data packet, at least one of the instruction operations including comparing a stored address to the destination address to determine the output switch port for the corresponding data packet.
  5. 19
    A processor apparatus, comprising:a counter for outputting a count value, each clock cycle, of a repeating sequence of a prescribed number of clock cycles;an instruction memory for selectively fetching, each clock cycle, one of a plurality of instructions identified by respective instruction addresses supplied during each clock cycle, the instruction memory selecting the corresponding one supplied instruction address based on the count value;an instruction decoder for decoding, each clock cycle, the fetched instruction output from the instruction memory the preceding clock cycle, the instruction decoder configured for identifying a memory address and an instruction operation for each fetched instruction;a memory interface for selectively supplying to an external memory, each clock cycle, one of a plurality of the memory addresses supplied during each clock cycle and identified by the instruction decoder for the respective fetched instructions, the memory interface selecting the corresponding one supplied memory address based on the count value;and a logic unit configured for selectively executing, each clock cycle, one of the instruction operations for the corresponding fetched instruction using memory data retrieved from the supplied memory address, the logic unit selecting the one instruction operation based on the count value.
  6. 23
    A network switch comprising:a plurality of network ports, each configured for sending and receiving data packets selectively according to at least one of a first layer protocol and a second layer protocol. the first layer protocol specifying a first data packet type having a first layer address and a first payload, the second layer protocol specifying a second data packet type having a second layer address and a second payload carrying the first data packet type;switching logic for concurrently determining output network ports for respective received data packets, the switching logic selectively comparing one of the first layer address and the second layer address of each received data packet with a corresponding stored destination address based on identification of one of the first and second layer protocols;and switch fabric for outputting the received data packets to the determined output network ports.