Controller, program and methods for communicating with devices coupled to the controller
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-modified1. 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.