IP Library Granted Patent US 10,761,923
Granted Patent B2
US 10,761,923 · App. 16/022,542 · Granted Sep 1, 2020

Collision detection for slave storage devices

Inventors: Mark Robert Hicks (Anaheim, CA); George Christopher Sneed (Irvine, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F11/079G06F5/14G06F11/0727G06F11/0751G06F11/0793G06F11/1004G06F13/4282G06F2205/126
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,761,923
App. No.
16/022,542
Granted
Sep 1, 2020
Kind
B2
Abstract

A method includes transmitting, by a controller of a storage device, a first bit on a data line. The method further includes responsive to transmitting the first bit on the data line, determining, by the controller, a line level of the data line. The method further includes responsive to determining the line level of the data line, determining, by the controller, whether the line level of the data line corresponds to the first bit and responsive to determining that the line level of the data line does not correspond to the first bit, determining, by the controller, that a collision has occurred on the data line.

Claims (66)

1. A method, comprising:

receiving, by a controller of a storage device, an indication of a transmit buffer empty event, wherein the storage device comprises master and slave storage devices;

transmitting, by the controller, data into a transmit holding register;

determining, by the controller, when an acknowledgement is received on a data line, wherein the acknowledgement indicates a successful transmission of data to the transmit holding register;

transmitting, by the controller, a first bit on the data line in response to receiving the acknowledgement;

determining, by the controller, a line level of the data line;

determining, by the controller, that a data collision has not occurred when the first bit corresponds to the line level; and

transmitting, by the controller, a second bit on the data line based on determining that a data collision has not occurred.

2. The method of claim 1 , further comprising determining, by the controller, that a data collision has occurred when the first bit does not correspond to the line level.

3. The method of claim 1 , further comprising receiving, by the controller, an interrupt corresponding to the transmit buffer empty event.

4. The method of claim 3 , wherein transmitting, by the controller, data to the transmit holding register occurs after receiving the interrupt.

5. The method of claim 1 , wherein the controller determines when the acknowledgement is received based on detecting a rising edge of a clock signal on a clock line.

6. The method of claim 1 , wherein a data collision occurs when a multiple of master and slave storage devices transmit on the data bus simultaneously.

7. A device comprising:

a storage element;

an interface coupled to a bus;

one or more storage devices coupled to the bus;

an arbitration module configured to detect data collisions between the one or more storage devices; and

a controller configured to:

transmit a first bit on the data line in response to receiving an acknowledgement from a transmit holding register indication successful receipt of data;

determine a line level of the data line;

determine that a data collision has not occurred when the first bit corresponds to the line level; and

transmit a second bit on the data line based on determining that a data collision has not occurred.

8. The device of claim 7 , further comprising the controller configured to determine whether data was successfully received on the bus based on packet error checking.

9. The device of claim 7 , wherein the controller is further configured to determine that a data collision has occurred when the first bit does not correspond to the line level.

10. The device of claim 7 , further comprising a bus communications unit configured to transmit an acknowledgement indicating data was successfully received, wherein the acknowledgement is transmitted during a rising edge of a clock cycle of a clock signal.

11. The device of claim 7 , further comprising a bus communications unit configured to determine that a data line has been reset in response to receiving a negative acknowledgement during a rising edge of a first clock cycle of a clock signal.

12. The device of claim 7 , further comprising a bus communications unit configured to transmit data stored in a transmit holding register during a rising edge of a first clock cycle of a clock signal.

13. A storage device comprising:

a controller;

a data bus;

an interface coupled to the data bus;

a plurality of memory devices coupled to and configured to share the data bus; and

means for enabling the plurality of memory devices to detect data collisions on the data bus; and

an arbitration module configured to release data to a transmit holding register when a line level of the data bus corresponds to a first bit of a data bus.

14. The storage device of claim 13 , wherein the plurality of memory devices includes one or more slave devices and at least one master device.

15. The storage device of claim 14 , wherein the master device is configured to detect data collisions based on a difference between a transmitted bit and a line level of the data bus.

16. The storage device of claim 14 , wherein the master device is configured to issue a stop command upon detecting a data collision.

17. The storage device of claim 14 , wherein the master device is configured to enable other slave devices and master devices to transmit a bit upon determining that no data collisions exists on the data bus.

18. A method comprising:

transmitting, by a controller of a storage device, a first bit on a data line;

determining, by the controller, a line level of the data line after transmitting the first bit to the data line;

determining, by the controller, whether the line level of the data line corresponds to the first bit;

determining, by the controller, that a collision occurred on the data line in response to determining that the line level of the data line does not correspond to the first bit;

receiving an indication of a transmit buffer empty event;

outputting the first bit into a transmit holding register of the controller, wherein transmitting the first bit on the data line is in response to outputting the first bit into the transmit holding register; and

generating, by the controller, an interrupt based on the collision, wherein the interrupt delays future transmission of a second bit.

19. The method of claim 18 , further comprising:

determining, by the controller, that a collision has not occurred on the data line based on the line level of the data line corresponds to the first bit; and

transmitting, by the controller, a second bit on the data line.

20. A storage device comprising:

a storage element;

an interface coupled to a data bus;

a controller configured to:

transmit a first bit on a data line;

determine a line level of the data line after transmitting the first bit to the data line;

determine whether the line level of the data line corresponds to the first bit;

determine that a collision occurred on the data line in response to determining that the line level of the data line does not correspond to the first bit; and

generate an interrupt based on the collision, wherein the interrupt delays future transmission of a second bit by stopping transmitting on the data line until the data line has undergone a reset, and wherein the reset occurs when a logical “1” is written to the data line during a first clock cycle of a clock signal; and

an arbitration module configured to release data to a transmit holding register when a line level of the data bus corresponds to a first bit of a data bus.

21. The storage device of claim 20 , wherein the controller is further configured to:

determine that a collision has not occurred on the data line based on determining that the line level corresponds to the first bit; and

transmit a second bit on the data line based on determining that the collision has not occurred.

22. The storage device of claim 20 , wherein the controller is further configured to generate an acknowledgement indicating data was successfully received.

23. The storage device of claim 20 , wherein the controller is further configured to determine that the data line has been reset when receiving a negative acknowledgement during a first clock cycle of a clock signal.

24. The storage device of claim 20 , wherein determining that a collision occurred on the data line occurs during a rising edge of a clock cycle of a clock signal.

Assignments (10)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2018
From: HICKS, MARK ROBERT; SNEED, GEORGE CHRISTOPHER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047002/0356 →