IL160997A

Vertical instruction and data processing in a network processor architecture

Abstract

This record has no abstract on file.

IL160997A, drawing sheet 1
Sheet 1 of 53

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

66 claims: 8 independent, 58 dependent

  1. 1
    What is claimed is:1. A method for processing an incoming information element belonging to a flow, the incoming information element comprising at least one information element segment, the method comprising: receiving a particular one of the at least one information element segment;stacking the particular one of the at least one information element segment so that a plurality of bits of the particular one of the at least one information element segment are parallel to each other in a vertical direction;fetching a plurality of instructions corresponding to the flow to which the incoming information element belongs;fetching a plurality of registers corresponding to the flow to provide adequate memory space to execute the plurality of instructions without performing a context switch;and executing the plurality of instructions to perform a function on the particular one of the at least one information element segment.
  2. 23
    A data pipelined processor to process an incoming information element belonging to a flow, comprising:a program counter (PCNT) stage to receive a particular one of at least one segment of the incoming information element and upon receiving the particular one of the at least one segment, to parallelize the particular one of the at least one segment of the incoming information element so that a plurality of bits of the particular one of the at least one segment are parallel to each other in a vertical direction;an instruction and register fetch (1RF) stage to fetch a plurality of instructions corresponding to the flow to which the incoming information element belongs and to fetch a plurality of registers corresponding to the flow to provide adequate memory space to execute the plurality of instructions without performing a context switch;and an execution (EXE) stage, coupled to the 1RF stage, to execute the plurality of instructions to perform a function on the parallelized particular one of the at least one information element segment.
  3. 42
    A method for updating a count of rollovers of a timer for a flow in order to accurately time stamp an incoming information element belonging to the flow, comprising:determining if the incoming information element conforms to a burst tolerance;resetting a count of timer rollovers to zero if the information element conforms to the burst tolerance;and incrementing by one the count of timer rollovers upon an occurrence of the timer rollover if the count of timer rollovers is less than (2.sup.N-l), where N is the number of bits that represent the number of timer rollovers.
  4. 45
    A system for updating a count of rollovers of a timer for a flow in order to accurately time stamp an incoming information element belonging to the flow, comprising:the timer for the flow;a time stamp rollover recovery state table that includes at least one entry, a particular one of the at least one entry includes a rollover count of the timer;a policing unit to determine if the incoming information element conforms to a burst tolerance, and if the incoming information element conforms to the burst tolerance, to reset the rollover count to zero;a mixer, coupled to the time stamp rollover recovery state table, if the rollover count is reset to zero by the policing unit, to modify the particular one of the at least one entry to include the rollover reset to zero and to write the modified particular one of the at least one entry into the time stamp rollover recovery state table;and a time stamp rollover recovery circuit that increments by one the rollover count within the particular one of the at least one entry if the timer for the flow rolls over and if the rollover count is less than (2.sup.N-l), where N is the number of bits used to implement the rollover count, and writes the particular one of the at least one entry to the time stamp rollover recovery state table.
  5. 50
    For a port, a method to create a chain associated with the port, the chain includes a plurality of information segment storage units belonging to at least one flow that is an unassigned bit rate (UBR) flow and assigned to the port, comprising:receiving an end-of-packet (EOP) segment of at least one segment of a first information element belonging to a particular one of the at least one flow;removing from a deferred storage unit an EOP segment of at least one segment of a second information element belonging to a specific one of the at least one flow;and if the EOP segment of the at least one segment of the first information element is not a start-0f-packet (SOP), then: storing the EOP segment of the second information element to a first one of the plurality of information segment storage units;storing an SOP segment of the at least one segment of the first information element to a second one of the plurality of information segment storage units, and linking the first one of the plurality of information segment storage units to the second one of the plurality of information segment storage units.
  6. 52
    A method for storing within at least one fixed-size buffer a current one of at least one information element that all have the same input logical port number and priority, wherein each one of the at least one information element includes at least one information element segment, comprising:(1) performing at least one of: determining if an immediately earlier arriving one of the at least one information element segment of the current one of the at least one information element has data remaining that did not fit into an earlier-filled one of the at least one fixed-size buffer;and determining if a last one of the at least one information element segment of an immediately earlier arriving one of the at least one information element has data remaining that did not fit into an earlier-filled one of the at least one fixed-size buffer;(2) rotating backward an incoming one of the at least one information element segment of the current one of the at least one information element to produce at least one of: a matching segment portion that combined with any remaining data tills as much as possible a particular one of the at least one fixed-size buffer;and a remainder segment portion that includes any excess data from the combining of the remaining data and the incoming one of the at least one information element segment that could not fit into the particular one of the at least one fixed-size buffer;and (3) mixing any remaining data with the matching segment to produce a fixed-size buffer.
  7. 58
    A system for storing within at least one fixed-size buffer a current one of at least one information element that all have the same input logical port number and priority, wherein each one of the at least one information element includes at least one information element segment, comprising:an alignment intermediate data fetch (ALF) unit to do at least one of: determine if an immediately earlier arriving one of the at least one information element segment of the current one of the at least one information element has data remaining that did not fit into an earlier-filled one of the at least one fixed-size buffer;and determine if a last one of the at least one information element segment of an immediately earlier arriving one of the at least one information element has data remaining that did not fit into an earlier-filled one of the at least one fixed-size buffer;a rotator, coupled to the ALF unit, to rotate backward an incoming one of the at least one information element segment of the current one of the at least one information element to produce at least one of: a matching segment portion that combined with any remaining data fills as much as possible a particular one of the at least one fixed-size buffer;and a remainder segment portion that includes any excess data from the combining of the remaining data and the incoming one of the at least one information element segment that could not fit into the particular one of the at least one fixed-size buffer;and a mixer, coupled to the rotator, to mix any remaining data with the matching segment to produce a fixed-size buffer.
  8. 64
    A method for processing an incoming information element belonging to a flow, the incoming information element comprising at least one information element segment, the method comprising:receiving a particular one of the at least one information element segment;stacking the particular one of the at least one information element segment so that a plurality of bits of the particular one of the at least one information element segment are parallel to each other in a vertical direction;fetching a very long instruction that is composed of multiple smaller sets of basic instructions in response to the incoming information element;fetching a plurality of registers in response to the incoming information element to provide adequate memory space to execute the very long instruction without performing a context switch;and executing the very long instruction to perform a function on the particular one of the at least one information element segment.