System and method for efficient data mirroring in a pair of storage devices
First Claim
1. A circuit, comprising:
- mirroring logic configured to couple to a host controller, a first device, and a second device, wherein each of the first and second devices comprises a plurality of registers; and
wherein the mirroring logic is configurable to operate in;
a first connect mode wherein the mirroring logic allows the registers of the first device to be accessed from the host controller and prevents the registers of the second device from being accessed from the host controller when the first and second devices are both active on the same communication channel; and
a second connect mode wherein the mirroring logic allows the registers of the second device to be accessed from the host controller and prevents the registers of the first device from being accessed from the host controller when the first and second devices are both active on the same communication channel; and
a third connect mode wherein the mirroring logic allows the registers of both the first device and second device to be accessed from the host controller;
wherein the mirroring logic is configured to switch between said first, second and third connect modes in response to mode commands from the host controller.
3 Assignments
0 Petitions
Accused Products
Abstract
A system may include mirroring logic, a controller, and first and second devices (e.g., data storage devices). The first and second devices may include multiple registers. The mirroring logic may be configured in a first mode wherein the mirroring logic allows the registers of the first device to be accessed from the controller and prevents the registers of the second device from being accessed from the controller. The mirroring logic may be configured in a second mode wherein the mirroring logic allows the registers of the second device to be accessed from the controller and prevents the registers of the first device from being accessed. The first and second devices may be configured via the mirroring logic such that the first and second devices are selected simultaneously. When selected simultaneously, the first and second devices may carry out a subsequently issued command substantially simultaneously.
61 Citations
55 Claims
-
1. A circuit, comprising:
-
mirroring logic configured to couple to a host controller, a first device, and a second device, wherein each of the first and second devices comprises a plurality of registers; and
wherein the mirroring logic is configurable to operate in;
a first connect mode wherein the mirroring logic allows the registers of the first device to be accessed from the host controller and prevents the registers of the second device from being accessed from the host controller when the first and second devices are both active on the same communication channel; and
a second connect mode wherein the mirroring logic allows the registers of the second device to be accessed from the host controller and prevents the registers of the first device from being accessed from the host controller when the first and second devices are both active on the same communication channel; and
a third connect mode wherein the mirroring logic allows the registers of both the first device and second device to be accessed from the host controller;
wherein the mirroring logic is configured to switch between said first, second and third connect modes in response to mode commands from the host controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
a host controller configured to produce a plurality of control signals;
a first device and a second device accessible on the same communication channel, wherein each of the first and second devices comprise a plurality of registers accessed via the control signals; and
mirroring logic coupled to the first and second devices and to receive a portion of the control signals, wherein the mirroring logic is configurable to provide the portion of the control signals to;
(i) only the first device in a first mode so that the registers of the second device are not accessed, (ii) only the second device in a second mode so that the registers of the first device are not accessed, and (iii) both the first and second devices in a third mode so that the registers of both the first and second devices are accessed, wherein the mirroring logic is configured to switch between said first, second and third modes in response to mode commands from the host controller.- View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A system, comprising:
-
a pair of devices each having an AT Attachment (ATA) interface conforming to an ATA standard, wherein one of the pair of devices is configured as an ATA master device and the other device is configured as an ATA slave device on the same ATA channel; and
mirroring logic coupled to the pair of devices and to receive a plurality of ATA control signals, wherein the ATA control signals include a plurality of ATA address signals, and wherein the mirroring logic is configurable to operate in one of a plurality of modes comprising;
a first connect mode wherein the mirroring logic provides the ATA address signals to only the ATA master device;
a second connect mode wherein the mirroring logic provides the ATA address signals to only the ATA slave device; and
a third connect mode wherein the mirroring logic provides the ATA address signals to both the ATA master device an the ATA slave device to concurrently address both the ATA master device and the ATA slave device. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. In a system comprising a controller a first storage device and a second storage device, wherein each of the pair of devices comprises a plurality of registers mapped to the same register address space, a method for configuring the first storage device and the second storage device to carry out a command from the controller simultaneously, the method comprising:
-
performing at least the following actions to carry out the command from the controller simultaneously on the first and second storage devices;
writing to a first register in the address space to select the first storage device to respond to commands;
while the first storage device is selected to respond to commands, preventing the registers of the first storage device from being accessed;
while the registers of the first storage device are prevented from being accessed, writing to the first register in the address space to select the second storage device to respond to commands so that both the first storage device and the second storage device are selected to respond to commands;
while both the first and second storage devices are selected to respond to commands, allowing the registers of both the first storage device and the second storage device to be accessed; and
while the registers of both the first and second storage devices are allowed to be accessed, writing a command to a command register in the register address space, wherein the first storage device and the second storage device receive the command and both carry out the command approximately simultaneously. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47)
determining if the first storage device is ready to receive data;
determining if the second storage device is ready to receive data;
performing the following if both the first storage device and the second storage device are ready to receive data;
allowing the registers of both the first storage device and the second storage device to be accessed; and
writing a block of data to corresponding data registers of the first storage device and the second storage device, wherein the first storage device and the second storage device store the data approximately simultaneously.
-
-
45. The method of claim 44, wherein said determining if the first storage device is ready to receive data comprises:
-
preventing the registers of the second storage device from being accessed; and
while the registers of the second storage device are prevented from being accessed, reading a value from a status register of the first storage device.
-
-
46. The method of claim 44, wherein said determining if the second storage device is ready to receive data comprises:
-
preventing the registers of the first storage device from being accessed; and
while the registers of the first storage device are prevented from being accessed, reading a value from a status register of the second storage device.
-
-
47. The method of claim 38, wherein said controller is an AT Attachment (ATA) controller and said first and second storage devices are ATA storage devices both coupled to the same port of said ATA controller.
-
48. A method for communicating with devices, comprising:
-
performing at least the following actions to carry out a same command on multiple devices;
sending a first communication to a first device configured as a master device, wherein said communication indicates that the first device, but not a second device configured as a slave device on the same communication channel as the master device, is selected to respond to subsequent communications;
subsequent to said sending a first communication, sending a second communication to the second device, wherein the second communication indicates that the second device, but not the first device, is selected to respond to subsequent communications, wherein said sending a second communication is performed while preventing the first device from recognizing the second communication so that both the first device and the second device are selected to respond to subsequent communications; and
subsequent to said sending a second communication and while both the first device and the second device are selected to respond to subsequent communications, sending a third communication to both the first device and the second device, wherein both the first device and the second device respond to the third communication. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55)
determining if the first device is ready to receive data;
determining if the second device is ready to receive data; and
if both the first device and the second device are ready to receive data, communicating a block of data to the first device and the second device while both the first device and the second device are selected, wherein the first storage device and the second storage device both store the data.
-
-
53. The method of claim 52, wherein said determining if the first device is ready to receive data comprises:
while preventing the second device from recognizing communications, reading a value from a status register of the first device.
-
54. The method of claim 52, wherein said determining if the second device is ready to receive data comprises:
while preventing the first device from recognizing communications, reading a value from a status register of the second device.
-
55. The method of claim 48, wherein said first and second devices are ATA storage devices both coupled to the same port of an ATA controller.
Specification