US Patent for Method of handshaking in a data communications bus Patent (Patent # 5,857,087 issued January 5, 1999) (2024)

1. A method of operating a data communication system, the data communication system comprising an arbitration device, a first data source device, a second data source device, a first data-sink device, a second data-sink device, the data source devices and data-sink devices each having a slot address associated therewith, an arbitration bus, a control bus including a clock distribution bus, an address buss a response bus, and a data bus, the method comprising:

a. in the arbitration device:
i. providing clock signals on the clock distribution bus;
ii. in each clock period, placing the slot address of one of the data source devices on the arbitration bus. the slot addresses being selected sequentially and repetitively;
b. in the first data source device which is in a state to send data to a first desired data-sink device:
i. identifying the slot address associated with the first desired data-sink device;
ii. receiving the slot address of the first data source device on the arbitration bus in a first clock period;
iii. transmitting the slot address of the first desired data-sink device on the address bus and a channel request message on the command bus in a second clock period;
iv. receiving an acknowledgment message of the channel request message from the first desired data-sink device on the response bus in a third clock period;
v. transmitting the data from the first data source device to the first desired data-sink device on the data bus in a fourth clock period;
c. in a given second desired data-sink device which is in a state to receive data:
i. receiving the slot address of the second desired data-sink device on the arbitration bus in the second clock period;
ii. transmitting an acknowledgment message from the second desired data-sink device on the response bus in the fourth clock period;
iii. the second desired data sink device receiving the data from the second data source device on the data bus in the fifth clock period.

2. A method as set forth in claim 1, wherein at least one of the first data source device and the second data source device also functions as a data-sink device.

3. A method as set forth in claim 2, wherein in a case where the first data source device has no data to send and is not prepared to receive data:

omitting all of step b;
d. receiving the slot address of the first data source device on the arbitration bus in the first clock period;
e. transmitting a non-acknowledgment message on the response bus in the second clock period.

4. A method as set forth in claim 1, wherein the data communication system also comprises a first interface device and a second device, the first interface device and the second interface device each being between the data source devices and the data sink devices, the data bus accommodates data in blocks and the first interface device has a number of blocks of data to send, in a given data source device, the method of transmitting data further comprises, for each block:

f. receiving the slot address of the given data source device on the arbitration bus in an nth clock period;
g. transmitting the slot address of a given data-sink device on the address bus and a data available message on the command bus in an nth +1 clock period;
h. transmitting a next block of data to the second interface device in an nth+2 clock period.

5. A method as set forth in claim 4, wherein if the given data source device receives a non-acknowledgment message from the given data-sink device in the nth+2 clock period while transmitting a given block of data, resending the given block of data and continuing to send blocks of data.

6. A method of operating a data communication system as set forth in claim 1 wherein the data source addresses and the data-sink addresses are mutually unique.

7. A command/response method for managing data transfers between data sources and data-sinks, respective data transfers occurring between one data source and one data-sink, the method being performed during sequential clock cycles by a pair comprising a selected data source and a selected data-sink, the method comprising the steps of:

(a) a set up step comprising setting up a channel between the selected data source and the selected data-sink;
(b) a new data step comprising signaling from the selected data source to the selected data-sink that new data is available to be sent;
(c) an acknowledgment step comprising acknowledgment by the selected data-sink of receipt of the new data; and
(d) a break down step comprising breaking down the channel;
wherein for a first given data source and data-sink pair, the steps are performed sequentially in a first set of sequential clock cycles, and for a second given data source and data-sink pair, the steps are performed sequentially in a second set of sequential clock cycles and staggered by one step from the steps being performed by the first data source and data-sink pair.

8. A command/response method as set forth in claim 7 further comprising the steps of selecting data sources in a calculated order and providing an enable signal for a selected data source during a clock cycle, wherein the set up step further initially comprises waiting for the enable signal for the selected data source.

9. A command/response method as set forth in claim 7 wherein the set up step further comprises the selected data source requesting a channel to the selected data-sink, and the selected data-sink acknowledging acceptance of the channel.

10. A command/response method as set forth in claim 7 further comprising selection of the selected data sources in a calculated order and providing an enable signal for the selected data source during a clock cycle, wherein the new data step further initially comprises waiting for the enable signal for the selected data source.

11. A command/response method as set forth in claim 7, further comprising selection of the selected data sources in a calculated order and providing an enable signal for the selected data source during a clock cycle, wherein the acknowledgment step further initially comprises waiting for the enable signal for the selected data source.

12. A command/response method as set forth in claim 7 wherein for a third given data source and data-sink pair, the steps are performed sequentially in a third set of sequential clock cycles and the third set of sequential clock cycles is staggered from those of the first and second sets of sequential clock cycles.

13. A command/response method as set forth in claim 7 further comprising selection of data sources in a calculated order and providing an enable signal for the selected data source during a clock cycle, wherein the break down step further initially comprises waiting for the enable signal for the selected data source.

14. A command/response method as set forth in claim 7 wherein the channel break down comprises the selected data source transmitting a last data available signal during a clock cycle, then transmitting the last data during a subsequent clock cycle.

15. A command/response method as set forth in claim 7 wherein while the channel set up is being performed for the second given data source and data-sink pair, the data source of the first given pair is preparing data to be sent to the data-sink of the first given pair.

16. A command/response method as set forth in claim 7 wherein the data sources and data-sinks share a common data bus for transmitting data.

17. A command/response method as set forth in claim 7 wherein addresses of the data sources and addresses of the data-sinks are mutually unique, and the data sources and data-sinks share a common address bus for transmitting addresses.

18. A command/response method as set forth in claim 7 wherein the data-sinks transmit acknowledgments on a common response bus.

19. A command/response method as set forth in claim 7 wherein the selected data source signals that new data is available on a command bus and the selected data-sink acknowledges receipt of data on a response bus distinct from the command bus.

20. A command/response method as set forth in claim 8 wherein the order of selection of the data sources is based upon previous data transmission activity of the data sources.

21. A command/response method as set forth in claim 8 wherein if the selected data source receives the enable signal but has no data to send, then the selected data source signals that it has no data to send.

22. A command/response method as set forth in claim 8 wherein the calculated order comprises repetitively selecting the data sources sequentially.

23. A command/response method as set forth in claim 20 wherein if a selected data source receives the enable signal but has no data to send, then the selected data source signals that it has no data to send, and the selected data source is skipped during the next selection sequence.

24. In a data communication system having a bus for routing data between a plurality of channels, each channel comprising a data source device and a data destination device, and the bus having a clock for defining a plurality of sequential clock cycles, an arbitration processor, a command bus, an address bus, a response bus, and a data bus, a method for operating the data communication system, comprising the steps of:

selecting data sources in a calculated order using the arbitration processor;
providing an enable signal for a single selected data source during each clock cycle;
transmitting, on the command bus, during a first clock cycle, a command from a first enabled data source;
transmitting, on the command bus, during a second clock cycle, a command from a second enabled data source;
transmitting, on the command bus, during a third clock cycle, a command from a third enabled data source;
transmitting, on the command bus, channel control commands;
transmitting, on the address bus, during the first clock cycle, the address of a first data destination to be used by the first data source;
transmitting, on the address bus, during the second clock cycle, the address of a second data destination to be used by the second data source;
transmitting, on the address bus, during the third clock cycle, the address of a third data destination to be used by the third data source;
transmitting, on the response bus, during the second clock cycle, a response by the first data destination to the command from the first data source;
transmitting, on the response bus, during the third clock cycle a response by the second data destination to the command from the second data source;
transmitting, on the response bus, during a fourth clock cycle, a response by the third data destination to the command from the third data source;
transmitting, on the data bus, during the third clock cycle, data from the first data source to the first data destination;
transmitting, on the data bus, during the fourth clock cycle, data from the second data source to the second data destination, and during a fifth third clock cycle data from the third data source to the third data destination; and
allowing set up and delivery of data for plural channels to overlap in each clock cycle.

25. A method as set forth in claim 24 wherein at least one of the data source devices also functions as a data destination device.

26. A method as set forth in claim 24 wherein when a given data source device has no data to send and is not prepared to receive data then performing the additional steps of:

receiving a slot address of the given data source device on the arbitration bus in a nth clock period and transmitting a non-acknowledgment message on the response bus in a nth+1 clock period.

27. A method as set forth in claim 24, wherein the data communication system also comprises a first interface device and a second device, the first interface device and the second interface device each being between the data source devices and the data destination devices, the data bus accommodates data in blocks and the first interface device has a number of blocks of data to send, in a given data source device, the method of transmitting data further comprises, for each block:

receiving the slot address of the given data source device on the arbitration bus in an nth clock period;
transmitting the slot address of the a given data destination device on the address bus and a data available message on the command bus in an nth+1 clock period; and transmitting a next block of data to the second interface device in an nth+2 clock period.

28. A method as set forth in claim 26, wherein if the given data source device receives a non-acknowledgment message from the given data destination device in the nth+2 clock period while transmitting a given block of data, resending the given block of data and continuing to send blocks of data.

29. A method as set forth in claim 24, further comprising the steps of:

each selected data source requesting a channel to be assigned to each respective selected data destination, and
each selected data destination acknowledging acceptance of the channel assignment.

30. A method as set forth in claim 34 wherein addresses of the data sources and the address of the data destinations addresses are mutually unique, and the data sources and data destinations share a common address bus for transmitting addresses.

31. A method as set forth in claim 24 wherein the data destinations transmit acknowledgments on a common response bus.

32. A method, as set forth in claim 24, wherein the data communication system also has an arbitration bus and comprising the additional step of transmitting a slot address of a desired data source device on the arbitration bus.

33. In a data communication system having a bus for routing data between a plurality of channels, each channel comprising a data source device and a data destination device, and the bus having clock for defining a plurality of sequential clock cycles, an arbitration processor, a command bus, an address bus, a response bus, and a data bus, a method for operating the data communication system, comprising the steps of:

selecting data sources in a calculated order using the arbitration processor;
providing an enable signal for one selected data source during each clock cycle;
transmitting, on the command bus, during a xth clock cycle, a command from a first enabled data source;
transmitting, on the command bus, during a yth clock cycle, a command from a second enabled data source;
transmitting, on the command bus, during a zth clock cycle, a command from a third enabled data source;
transmitting, on the command bus, channel control commands;
transmitting, on the address bus, during the xth clock cycle, the address of a first data destination by the first data source;
transmitting, on the address bus, during the yth clock cycle, the address of a second data destination by the second data source;
transmitting, on the address bus, during the zth clock cycle, the address of a third data destination by the third data source;
transmitting, on the response bus, during the yth clock cycle, a response by the first data destination to the command from the first data source;
transmitting, on the response bus, during the zth clock cycle a response by the second data destination to the command from the second data source;
transmitting, on the response bus, during a vth clock cycle, a response by the third data destination to the command from the third data source;
transmitting, on the data bus, during the zth clock cycle, data from the first data source to the first data destination;
transmitting, on the data bus, during the vth clock cycle, data from the second data source to the second data destination, and during a wth third clock cycle data from the third data source to the third data destination; and
allowing set up and delivery of data for plural channels to overlap in each clock cycle wherein v,w,x, and z are all integer numbers and v.noteq.w.noteq.x.noteq.y.noteq.z.

34. A method, as set forth in claim 33, wherein the data communication system also has an arbitration bus and comprising the additional step of transmitting a slot address of a desired data source device on the arbitration bus.

US Patent for Method of handshaking in a data communications bus Patent (Patent #  5,857,087 issued January 5, 1999) (2024)

References

Top Articles
Whipped Lemon Feta Dip Recipe - 6 Ingredients
Weight Watchers Zero Point Soup Recipes {+More Low-Point Soups} · The Inspiration Edit
Ohio Houses With Land for Sale - 1,591 Properties
Cooking Chutney | Ask Nigella.com
Access-A-Ride – ACCESS NYC
Tugboat Information
Southland Goldendoodles
Toonily The Carry
Turbocharged Cars
Herbalism Guide Tbc
Keurig Refillable Pods Walmart
123Moviescloud
Taylor Swift Seating Chart Nashville
Assets | HIVO Support
Housework 2 Jab
Dutchess Cleaners Boardman Ohio
272482061
VMware’s Partner Connect Program: an evolution of opportunities
Grab this ice cream maker while it's discounted in Walmart's sale | Digital Trends
Powerball winning numbers for Saturday, Sept. 14. Check tickets for $152 million drawing
Gemita Alvarez Desnuda
Accident On The 210 Freeway Today
Iu Spring Break 2024
Wnem Tv5 Obituaries
2487872771
Sound Of Freedom Showtimes Near Movie Tavern Brookfield Square
Great ATV Riding Tips for Beginners
What is Software Defined Networking (SDN)? - GeeksforGeeks
Diggy Battlefield Of Gods
Ourhotwifes
Gideon Nicole Riddley Read Online Free
Kvoa Tv Schedule
Terrier Hockey Blog
Vanessa West Tripod Jeffrey Dahmer
The Blackening Showtimes Near Regal Edwards Santa Maria & Rpx
Fifty Shades Of Gray 123Movies
Easy Pigs in a Blanket Recipe - Emmandi's Kitchen
Directions To Cvs Pharmacy
Frigidaire Fdsh450Laf Installation Manual
National Weather Service Richmond Va
Grand Valley State University Library Hours
Craigslist Woodward
Port Huron Newspaper
UWPD investigating sharing of 'sensitive' photos, video of Wisconsin volleyball team
VerTRIO Comfort MHR 1800 - 3 Standen Elektrische Kachel - Hoog Capaciteit Carbon... | bol
Christie Ileto Wedding
Madden 23 Can't Hire Offensive Coordinator
Craiglist.nj
Peugeot-dealer Hedin Automotive: alles onder één dak | Hedin
Inside the Bestselling Medical Mystery 'Hidden Valley Road'
Noaa Duluth Mn
Latest Posts
Article information

Author: Merrill Bechtelar CPA

Last Updated:

Views: 5794

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Merrill Bechtelar CPA

Birthday: 1996-05-19

Address: Apt. 114 873 White Lodge, Libbyfurt, CA 93006

Phone: +5983010455207

Job: Legacy Representative

Hobby: Blacksmithing, Urban exploration, Sudoku, Slacklining, Creative writing, Community, Letterboxing

Introduction: My name is Merrill Bechtelar CPA, I am a clean, agreeable, glorious, magnificent, witty, enchanting, comfortable person who loves writing and wants to share my knowledge and understanding with you.