US8032665B2ActiveUtilityA1

Controller, program and methods for communicating with devices coupled to the controller

Assignee: LSI CORPPriority: Jan 27, 2009Filed: Jan 27, 2009Granted: Oct 4, 2011
Est. expiryJan 27, 2029(~2.5 yrs left)· nominal 20-yr term from priority
G06F 3/0607G06F 3/0689G06F 3/0658H04L 25/029
46
PatentIndex Score
0
Cited by
4
References
18
Claims

Abstract

A controller coupled to a redundant array of inexpensive disks (RAID) includes a processor and a non-volatile memory element. The processor has an input/output port that is configurable in one of an open-drain driver configuration, a high-impedance driver configuration and a totem-pole driver configuration. The totem-pole driver configuration is capable of supplying sufficient current to operate a slave device coupled to the input/output port. Firmware stored in the non-volatile memory device dynamically adjusts the driver configuration to prevent negative voltage swings in a signal communicated via the input/output port.

Claims

exact text as granted — not AI-modified
1. A method for dynamically configuring a controller for a redundant array of inexpensive disks (RAID), comprising:
 determining when an operation preceding a high-current load on an input/output port of the controller is a write operation, if so; 
 configuring the input/output port to a totem-pole driver configuration 1-bit transaction earlier; otherwise, when the operation preceding a high-current load on the input/output port of the controller is a read operation, 
 adaptively scanning the input/output port during a last bit transaction to detect when the input/output port is in a logic high range, if so, 
 configuring the input/output port to the totem-pole driver configuration; otherwise, 
 maintaining a present driver configuration. 
 
     
     
       2. The method of  claim 1 , wherein determining when an operation preceding a high-current load on an input/output port of the controller comprises determining if the next operation is in a command buffer in the controller. 
     
     
       3. The method of  claim 1 , wherein maintaining a present driver configuration comprises maintaining an open-drain configuration. 
     
     
       4. The method of  claim 1 , wherein maintaining a present driver configuration comprises maintaining a high-impedance configuration. 
     
     
       5. The method of  claim 1 , further comprising: maintaining a present driver configuration for the first N-1 bits of an N-bit word. 
     
     
       6. A method for dynamically configuring a controller for a redundant array of inexpensive disks (RAID), comprising:
 initially configuring the input/output port of the controller to operate in an open-drain configuration; 
 using firmware to determine when the next operation requires a high-current load, if so, determining when the present operation is a write operation; 
 when the present operation is a write operation, using the input/output port to process N-1 bits of a N-bit word in the open-drain configuration,
 configuring the input/output port to operate in the totem-pole configuration before processing a Nth bit of the N-bit word; 
 processing the Nth bit of the N-bit word; 
 maintaining the totem-pole configuration until the next operation is complete; and 
 
 reconfiguring the input/output port to operate in the open-drain configuration; 
 otherwise, when the present operation is a read operation, using the input/output port to process N- 1 bits of the N-bit word in an open-drain configuration,
 processing the Nth bit of the N-bit word and adaptively scanning the input/output port to determine when the voltage of a signal on the input/put port enters a first logic range, when the input/output port enters the first logic range, 
 configuring the input/output port to operate in a totem-pole configuration; 
 maintaining the totem-pole configuration until the next operation is complete; and 
 reconfiguring the input/output port to operate in the open-drain configuration. 
 
 
     
     
       7. The method of  claim 6 , wherein using firmware to determine when the next operation requires a high-current load comprises identifying when a next operation is a programming operation. 
     
     
       8. The method of  claim 6 , wherein processing an Nth bit of the N-bit word and adaptively scanning the input/output port comprises receiving data from the slave device. 
     
     
       9. A RAID controller in communication with a slave device, comprising:
 a processor having an input/output port, the input/output port configurable in one of an open-drain driver configuration, a high-impedance driver configuration and a totem-pole driver configuration; and 
 a non-volatile memory element configured to store a set of executable instructions that when executed by the processor dynamically adjust the driver configuration to prevent a negative voltage swing of a signal communicated via the input/output port, wherein the dynamically adjusting of the driver configuration comprises:
 determining when an operation preceding a high-current load on an input/output port of the controller is a write operation, if so; 
 configuring the input/output port to a totem-pole driver configuration 1-bit transaction earlier; otherwise, when the operation preceding a high-current load on the input/output port of the controller is a read operation, 
 adaptively scanning the input/output port during a last bit transaction to detect when the input/output port is in a logic high range, if so, 
 configuring the input/output port to the totem-pole driver configuration; otherwise, 
 maintaining a present driver configuration. 
 
 
     
     
       10. The RAID controller of  claim 9 , wherein the non-volatile memory element includes a set of executable instructions that when executed by the processor dynamically adjust the driver configuration in response to a data operation that precedes a programming operation that requires a high-current load. 
     
     
       11. The RAID controller of  claim 9 , wherein the non-volatile memory element includes a set of executable instructions that when executed by the processor dynamically adjust the driver configuration in response to a read operation and an adaptive scan of the voltage at the input/output port, the executable instructions directing the input/output port to operate in the totem-pole driver configuration when the voltage exceeds a threshold voltage. 
     
     
       12. The RAID controller of  claim 9 , wherein the slave device is coupled to the input/output port via a resistor network. 
     
     
       13. The RAID controller of  claim 12 , wherein the resistor network comprises a series-pass resistor having a resistance of approximately 100 Ohms and a pull-up resistor having a resistance of approximately 750 Ohms. 
     
     
       14. The RAID controller of  claim 13 , wherein the pull-up resistor is coupled to a power supply providing a voltage of approximately 3.3 volts. 
     
     
       15. A program including a set of executable instructions embodied on a non-transitory computer readable storage medium, comprising:
 logic configured to determine when a next operation to be processed by a controller requires a current level in excess of a maximum current that can be supplied by a pull-up resistor network; 
 logic configured to determine the nature of a present data operation on an input/output port of the controller; 
 modified read logic responsive to the logic configured to determine the nature of the present data operation and configured to direct an input/output port to process N-1 bits of an N-bit word in an open-drain configuration,
 process an Nth bit of the N-bit word and determine when the input/output port enters a first logic range, when the input/output port enters the first logic range, 
 configure the input/output port to operate in a totem-pole configuration, 
 maintain the totem-pole configuration until the next operation is complete, and 
 configure the input/output port to operate in the open-drain configuration; and 
 
 modified write logic responsive to the logic configured to determine the nature of the present data operation and configured to direct an input/output port to process N-1 bits of an N-bit word in an open-drain configuration,
 configure the input/output port to operate in the totem-pole configuration before processing an Nth bit of the N-bit word, 
 process the Nth bit of the N-bit word, 
 maintain the totem-pole configuration until the next operation is complete, and 
 configure the input/output port to operate in the open-drain configuration. 
 
 
     
     
       16. The program of  claim 15 , wherein the logic configured to determine when a next operation to be processed by a controller requires a current level in excess of a maximum current is responsive to a next mode flag. 
     
     
       17. The program of  claim 15 , wherein the logic configured to determine the nature of a present data operation on an input/output port of the controller is responsive to a data operation flag. 
     
     
       18. The program of  claim 15 , wherein the modified read logic comprises adaptive scan logic configured to determine when the input/put port enters the first logic range.

Join the waitlist — get patent alerts

Track US8032665B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.