EP0793397A2

A real-time hardware method and apparatus for reducing queue processing

Abstract

In a simple high speed Real-Time method and apparatus for processing a queue in a network queue server, long packets (20) at the beginning of the queue are processed while a pointer (80) chains down the queue to find shorter packets (40). When a shorter packet (40) is found the pointer (80) stops and waits for a timing threshold to be met. When the timing threshold is met the short packet is processed until completion and then work is resumed on the long packet. The method is implemented using a pointer (60) to identify the position in the queue that is currently being processed, a pointer (80) to search for the shorter packets, two registers (70,90) to hold values of the respective pointers and memory to hold the location of the discontinued packet (20). An additional register (20) is utilized to hold the incremented cycle processing time, and a final register (150) is used to hold a threshold value for processing a packet. Lastly, a previous pseudo head register (110) is also utilized when the queue is not doubly linked.

EP0793397A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 18 February 2017, 9.6 years ago.

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

18 claims: 3 independent, 15 dependent

  1. 1
    A queue processing system comprising:at least one queue server for processing a queue, wherein said queue server further comprises;a true head register, for holding an address of said queue currently being processed by said queue server;a processing counter register, for maintaining time used in processing said queue;a fair counter register, including a value which is compared with said time in the processing counter register;and a pseudo head register, for holding an address of another position in said queue.
  2. 8
    A method of processing a queue consisting of a plurality of a first packets, and at least one second packet, wherein a packet being processed is a first packet, said method comprising the steps of:(a) processing said first packet, (b) preempting processing of said first packet, (c) processing said second packet in the queue, (d) resuming processing of said first packet, and (e) continuing steps (a) through (d), thereby processing said queue.
  3. 18
    A method of processing a queue consisting of a plurality of first packets and at least one second packet, with a queue server including a true head pointer, a pseudo head pointer, a true head register, a pseudo head register, a previous pseudo head register, a processing counter and a fair counter, said method comprising the steps of:(a) storing a value designating a beginning of said queue in said true head register, (b) setting said true head pointer and said pseudo head pointer to said value, (c) at a first cycle time, processing one of said plurality of first packets, moving said pseudo pointer to a second of said plurality of first packets, storing a value of said pseudo pointer in said pseudo head register thereby creating an old value, storing said old value in said previous pseudo head register, incrementing said processing time register, and comparing said processing time register with said fair count register, (d) at a second cycle time, processing said one of said plurality of first packets, moving said pseudo pointer to said at least one second packet, updating said value of said pseudo pointer with an address of said at least one second packet, incrementing said processing time register, storing said pseudo pointer in said pseudo head register, and comparing said processing time register with said fair count register, (e) at a third cycle time, preempting processing of said one of said plurality of first packets, storing a memory location where said processing of said one off said plurality of first packets stopped, processing said at least one second packet, and (f) at a fourth cycle time, completing processing of said at least one second packet, returning to processing said one of said plurality of said at least one first packets, and then updating the true head register, (g) repeating steps (c) through (f) until all packets in said queue are processed thereby processing said queue.