WO0211368A2

Enhancing performance by pre-fetching and caching data directly in a communication processor's register set

Abstract

Circuitry (100) to free the core processor (104) from performing the explicit read operation required to read data into the internal register set. The processor's register set (603B) is expanded and a "shadow register" set (603C) is provided. While the core processor (104) is processing one event the "context" and "data" and other associated information for the next event is loaded into the shadow register set (603C). When the core processor (104) finishes processing an event, the core processor (104) switches to the shadow register set (603C) and it can begin processing the next event immediately. With short service routines, there might not be time to fully pre-fetch the "context" and "data" associated with the next event before the current event ends. In this case, the core processor (104) still starts processing the next event and the pre-fetch continues during the event processing.

Term

No projected expiry on record.

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

44 claims: 5 independent, 39 dependent

  1. 1
    We claim:1. An integrated circuit (100) for processing communication packets, said integrated circuit (100) comprising a core processor (104) and the integrated circuit (100) characterized by: the core processor (104) configured to execute software to process a series of communication packets, the processing of each packet being an event and having associated data and context information, said core processor (104) having two sets of data registers (603B, 603C), each set of data registers being capable of storing the context and data information required to process one event, said core processor (104) using said sets of registers alternatively;and a co-processor (107) comprising a plurality of data buffers (314, 315) configured to store data and context information associated with a plurality of packets, data and context from one event being transferred to one of said sets of data registers (603B, 603C) in said core processor (104) while said core processor (104) is utilizing data and context information stored in a different set of data registers (603B, 603C) in said core processor (104), whereby said processor (104) need not wait between event processing in order to load data in said registers (603B, 603C).
  2. 20
    A method of processing communication packets in a system which comprises a core processor (104), the method characterized by the core processor (104) comprising a first set of registers (603B) and a shadow set of registers (603C) and the method comprising:in said first set of registers (603B) and said shadow set of registers (603C), storing the context and data necessary to process one communication packet and a co-processor (107) with a plurality of buffers (814, 820, 315) configured to store data and context information necessary to process a plurality of packets;and transferring data and context information associated with a second communication packet from said co-processor (107) to said shadow set of registers (603C) while said core processor (104) is using the data and context information said first set of registers (603B) to process a first communication packet.
  3. 25
    The method recited in claim 20 wherein said co-processor (107) includes a queue of events.
  4. 32
    A system for processing communication packets comprising a core processor (104), the system characterized by a co-processor (107), said core processor (104) including two sets of registers (603B, 603C), means in said core processor (104) for initiating pre-fetch of data into one set of said registers (603B, 603C) from said co-processor (107) and for at the same time initiating processing of an event using data in the other set of registers, whereby transfer of data from the co-processor (107) to the core processor (104) can take place at the same time as said core processor (104) is processing data for a different communication packet.
  5. 43
    An integrated circuit (100) for processing communication packets, said integrated circuit (100) including a core processor (104), the integrated circuit characterized by:the core processor (104) configured to execute software to process a series of communication packets, the processing of each packet requiring data and context information, said core processor (104) comprising two sets of low latency data registers (603B, 603C), each set of data registers (603B, 603C) configured to store the context and data information required to process one communication packet, said core processor (104) using said sets of registers (603B, 603C) alternatively;a co-processor (107) comprising a plurality of medium latency data buffers (814) configured to store data and context information associated with a plurality of communication packets;and pre-fetch circuitry (601) configured to transfer data and context information required for processing one communication packet from said coprocessor (107) to one of said sets of data registers (603B, 603C) in said core processor (104) while said core processor (104) is utilizing data and context information stored in a different set of data registers (603B, 603C) to processes a different communication packet.