Single pipe non-blocking architecture
First Claim
1. A method for processing an incoming command from a host at a bridge, the incoming command destined for a target, the target having a storage management component and a separately accessible disk command queue, the method comprising:
- determining, at the bridge, if the incoming command is a data command or a management command;
processing management commands separately from data commands, including;
forwarding, by the bridge, the incoming command to the storage management component of the target when the incoming command is a management command; and
when the incoming command is a data command, the bridge;
determining if the disk command queue on the target is full;
sending the incoming command to the disk command queue when the disk command queue is not full;
when the disk command queue is full, the bridge;
starting a timer, the timer having a predetermined length;
sending the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and
sending a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full;
wherein the predetermined length of the time is selected to reduce a performance penalty for the host to process rejections of incoming data commands when there is a temporary disk command queue full state.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for processing an incoming command destined for a target is provided, comprising: determining if the incoming command is a data command or a management command; forwarding the incoming command to a storage management component of the target when the incoming command is a management command; when the incoming command is a data command: determining if a disk command queue on the target is full; sending the incoming command to the disk command queue when the disk command queue is not full; when the disk command queue is full: starting a timer, the timer having a predetermined length; sending the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and sending a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full.
57 Citations
20 Claims
-
1. A method for processing an incoming command from a host at a bridge, the incoming command destined for a target, the target having a storage management component and a separately accessible disk command queue, the method comprising:
-
determining, at the bridge, if the incoming command is a data command or a management command; processing management commands separately from data commands, including; forwarding, by the bridge, the incoming command to the storage management component of the target when the incoming command is a management command; and when the incoming command is a data command, the bridge; determining if the disk command queue on the target is full; sending the incoming command to the disk command queue when the disk command queue is not full; when the disk command queue is full, the bridge; starting a timer, the timer having a predetermined length; sending the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and sending a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full; wherein the predetermined length of the time is selected to reduce a performance penalty for the host to process rejections of incoming data commands when there is a temporary disk command queue full state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A bridge coupled between a host and a target, the target having a storage management component and a separately accessible disk command queue, the bridge comprising:
-
a command FIFO used to temporarily store incoming commands from the host; a timer; and a processor configured to; determine if the incoming command is a data command or a management command; processing management commands separately from data commands, including; forward the incoming command to the storage management component of the target when the incoming command is a management command; when the incoming command is a data; determine if a disk command queue on the target is full; send the incoming command to the disk command queue when the disk command queue is not full; when the disk command queue is full; start a timer, the timer having a predetermined length; send the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and send a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full; wherein the predetermined length of the time is selected to reduce a performance penalty for the host to process rejections of incoming data commands when there is a temporary disk command queue full state. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. An apparatus for processing an incoming command from a host at a bridge, the incoming command destined for a target, the target having a storage management component and a separately accessible disk command queue, the apparatus comprising:
-
means for determining if the incoming command is a data command or a management command; means for processing management commands separately than data commands, including; means for forwarding the incoming command to the storage management component of the target when the incoming command is a management command; means for, when the incoming command is a data command; determining if a disk command queue on the target is full; sending the incoming command to the disk command queue when the disk command queue is not full; when the disk command queue is full; starting a timer, the timer having a predetermined length; sending the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and sending a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full; wherein the predetermined length of the time is selected to reduce a performance penalty for the host to process rejections of incoming data commands when there is a temporary disk command queue full state. - View Dependent Claims (18)
-
-
19. A non-transitory program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform a method for processing an incoming command from a host at a bridge, the incoming command destined for a target, the method comprising:
-
determining if the incoming command is a data command or a management command; processing management commands separately than data commands, including; forwarding the incoming command to a storage management component of the target when the incoming command is a management command; when the incoming command is a data command; determining if a disk command queue on the target is full; sending the incoming command to the disk command queue when the disk command queue is not full; when the disk command queue is full; starting a timer, the timer having a predetermined length; sending the incoming command to the disk command queue when the disk command queue becomes not full prior to the expiration of the timer; and sending a rejection of the incoming command to the host only if, upon expiration of the timer, if the disk command queue is still full; wherein the predetermined length of the time is selected to reduce a performance penalty for the host to process rejections of incoming data commands when there is a temporary disk command queue full state. - View Dependent Claims (20)
-
Specification