Apparatus to offload and accelerate pico code processing running in a storage processor
First Claim
Patent Images
1. A processor for offloading processing in a storage environment, comprising:
- a zero bus turnaround (“
ZBT”
) interface that interfaces said processor to a network processor configured to perform a storage function;
a hash bucket memory having an array of bit-bucket pointers that each operate as a head pointer to a linked list of active semaphore structures, the hash bucket memory addressable by a hash address derived through application of a hash function to a semaphore value and wherein each semaphore structure accommodates a current thread that owns a semaphore and potentially one or more waiting threads in a queue waiting for release of the semaphore;
semaphore circuitry, coupled to said ZBT interface, that receives a signal from said network processor, and that controls said semaphore associated with the corresponding predetermined linked list of active semaphore structures in the hash bucket memory wherein the received signal and said semaphore are related to locking and unlocking access to data in the storage environment; and
an update engine, further included in the semaphore circuitry, that upon receipt of a received signal from said network processor relating to a thread on said network processor, processes said semaphore related to said received signal and responds, as required, by sending a transmitted signal back to said network processor in association with said semaphore.
3 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and method offloads processing from a networking processor operating in a storage environment. Three main functions are offloaded: semaphore processing, frame order processing, and timer processing. Offloading of semaphore processing enables ordered access to semaphores. Offloading of frame order processing enables the network processor to quickly transmit an incoming frame if the incoming frame is the next one in the frame order. Offloading of timer processing enables background checking of the timer list.
31 Citations
17 Claims
-
1. A processor for offloading processing in a storage environment, comprising:
-
a zero bus turnaround (“
ZBT”
) interface that interfaces said processor to a network processor configured to perform a storage function;a hash bucket memory having an array of bit-bucket pointers that each operate as a head pointer to a linked list of active semaphore structures, the hash bucket memory addressable by a hash address derived through application of a hash function to a semaphore value and wherein each semaphore structure accommodates a current thread that owns a semaphore and potentially one or more waiting threads in a queue waiting for release of the semaphore; semaphore circuitry, coupled to said ZBT interface, that receives a signal from said network processor, and that controls said semaphore associated with the corresponding predetermined linked list of active semaphore structures in the hash bucket memory wherein the received signal and said semaphore are related to locking and unlocking access to data in the storage environment; and an update engine, further included in the semaphore circuitry, that upon receipt of a received signal from said network processor relating to a thread on said network processor, processes said semaphore related to said received signal and responds, as required, by sending a transmitted signal back to said network processor in association with said semaphore. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of controlling a processor for offloading processing in a storage environment, comprising the steps of:
-
receiving a signal from a network processor configured to perform a storage function through a zero bus turnaround (“
ZBT”
) interface;assigning a current thread as owner of a semaphore and potentially one or more waiting threads in a queue waiting for release of the semaphore to a semaphore structure in a linked list of active semaphore structures stored in a hash bucket memory addressable through application of a hash function to a semaphore value associated with the semaphore; controlling said semaphore associated with the linked list of active semaphore structures in the hash bucket memory wherein the received signal and the semaphore are related to locking and unlocking access to data in the storage environment; and processing the received signal from said network processor relating to a thread on said network processor and responding, as required, by sending a transmitted signal back to said network processor in association with said semaphore. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification