EP1952583A2

System of virtual data channels across clock boundaries in an integrated circuit

Abstract

This record has no abstract on file.

Term

Projected expiry 7 November 2026.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

73 claims: 10 independent, 63 dependent

  1. 1
    Claims of equivalent WO 2007056735 A2 CLAIMS 1. A system of virtual communication channels in an integrated circuit, comprising:at least a first and second data sending port;a data receiver coupled to a physical bus, the physical bus having a capacity less than a capacity to send data from the at least first and second data ports simultaneously;a virtual channel master structured to receive first protocol information describing data in the first and second data sending ports and second protocol information describing the data receiver, and structured to couple data from a selected one of the at least first and second data sending ports to the physical bus based on a combination of the first and second protocol information.
  2. 7
    A system of virtual communication channels according to claim I 5 further comprising at least two data receivers coupled to the physical bus.
  3. 14
    15. A system of virtual channel communication according to claim 14 in which the second protocol information comprises a signal of a present ability of the data receiver to receive information and to remove the received information from the physical bus.
  4. 16
    17. A system of virtual communication channels according to claim 16, further comprising at least two data receivers coupled to the physical bus, the at least two data receivers in at least a fourth and a fifth clock domain.
  5. 17
    18. A system of virtual communication channels according to claim 17 in which the third clock domain is structured to run at a higher frequency than the first clock domain and the fourth clock domain.
  6. 21
    22. A system of virtual communication channels of claim 21 , further comprising within the clock crossing domain, circuitry structured to ensure lossless o data transfer without retry between one of the data sending ports and the virtual channel master.
  7. 22
    23. A system of virtual communication channels in an integrated circuit, comprising:5 at least two data sending ports;a physical channel that has a capacity less than the at least two data sending ports;one or more receiving ports coupled to the physical channel;and a channel master coupled between the at least two data sending ports and the 0 physical channel, the channel master including: a first protocol receiver to receive first information describing data presently stored in the at least two data sending ports, a second protocol receiver to receive second information describing a present ability of the one or more receiving ports to accept data, 5 the channel master structured to couple data from a selected one of the at least two data sending ports to the physical channel based at least in part on a state of the first information and the second information.
  8. 23
    24. A system of virtual communication channels according to claim 23 0 in which the channel master comprises:a channel selector coupled to the at least two data sending ports and structured to inspect the first and second information and to generate an output;and a channel controller coupled to the output of the channel selector and structured to couple the data from the selected data sending port to the physical channel based on the output of the channel selector.
  9. 27
    28. An integrated circuit, comprising:a first plurality of processing units each having at least two output data ports;a second plurality of processing units each having at least one input data port;a virtual communication network having multiple sections, each section coupled between one of the first plurality of processing units and one of the second plurality of processing units, each section of the virtual communication network including: a physical bus having a bus width less than a width of the at least two output data ports;and a channel master coupled between the at least two output data ports and the physical bus and structured to couple data from exactly one of the output data ports to the physical bus based on a simultaneous combination of forward protocol information from the one of the first, plurality of processing units and based on reverse protocol information from the one of the second plurality of processing units.
  10. 28
    29. An integrated circuit according Io claim 28, further comprising:a second virtual communication network coupled to the virtual communication network, the second virtual network including a plurality of data directing switches.
  11. 29
    30. An integrated circuit according to claim 29 in which the second virtual communication network further comprises a system of physical channels coupled between the plurality of data directing switches, the system of physical channels including virtual channels.
  12. 30
    31. An integrated circuit according to claim 30 in which at least some of the physical channels on the second virtual communication network include a different number of virtual channels than, a number of channels in the virtual communication network.
  13. 33
    34. A communication system within an integrated circuit, comprising:in a first clock domain: a plurality of data sending sources, each source structured to store a set of data;and in a second clock domain structured to operate at a different clock rate than the first clock domain: a physical channel having a parallel width less than a width of the plurality of data sending sources;and a selector structured to receive a first signal from a receiver that indicates an ability of the receiver to receive data from the physical channel, and structured to couple the set of data from a selected one of the plurality of data sending sources to the physical channel.
  14. 34
    35. A communication system according to claim 34 in which the receiver is structured to generate the first signal after the receiver is able to remove the set of data from the physical channel.
  15. 36
    37. A communication system according to claim 36 in which the clock rate multiple is equal to or greater than a number of data sending sources in the phirality of data sending sources.
  16. 40
    41. A communication system according to claim 40, further comprising, within the clock crossing domain, circuitry structured to ensure lossless data transfer without retry between one of the plurality of data sending sources and the selector.
  17. 41
    42. A communication system according to claim 41, in which the circuitry structured to ensure data transfer is structured to transfer data only after receiving a signal from a receiver that the receiver is ready to accept data.
  18. 43
    44. A communication system within a circuit, comprising:more than one data sending source, each data sending source configured to store a set of data, the more than one data sending source having a parallel bit storage capacity;a physical channel that has a bit capacity less than the parallel bit storage capacity;a clock crossing circuit coupled between at least one of the more than one data sending source and the physical channel;a receiver coupled to the physical channel and structured to send a protocol signal that indicates a present ability of the receiver to remove data from the physical channel;and an arbiter coupled to the more than one data sending source and structured to receive the protocol signal, to select one of the sets of data based on a state of the protocol signal, and to couple the selected set of data to the physical channel.
  19. 44
    45. A communication system according to claim 44 in which a plurality of receivers are coupled to the physical channel.
  20. 47
    48. A communication system according to claim 47 in which the receiver operates in a third clock domain.
  21. 49
    50. A method for communicating data within an integrated circuit in a system that has at least two data sending ports, a physical communication channel coupled to the at least two data sending ports, and at least one data receiver coupled to the physical communication channel, the method comprising:inspecting first protocol information describing the data in the data sending ports;inspecting second protocol information describing a present ability of the at least one data receiver to receive data;selecting, based on the first and second protocol information, one of the at least two sending ports;and coupling data from the selected data port to the physical channel based on the selection.
  22. 50
    51. A method according to claim 50 in which selecting one of the at least two data sending ports comprises:grouping those of the at least two data sending ports that are presently ready to send data;and choosing one of the data sending ports from the group as the selected data port.
  23. 51
    52. A method according to claim 51 in which choosing one of the data sending ports comprises choosing one of the data sending ports based on a history of which data sending ports have been previously connected to the physical communication channel.
  24. 57
    58. A method according to claim 57 in which the second clock domain operates at a faster clock rate than the first clock domain.
  25. 60
    61. A method according to claim 60 in which operating circuitry in a clock crossing domain comprises operating circuitry at a clock rate equal to or exceeding a clock rate of the first clock domain and the second clock domain.
  26. 62
    63. A method of communicating between a first and a second element in an integrated circuit, comprising:inspecting a first set of protocol data that indicates a present validity of data at each of two or more data ports;inspecting a second set of protocol data that indicates an ability of one or more data receivers to receive data in a present communication cycle;selecting, based on the first set of protocol data and the second set of protocol data one of the two or more data ports;and connecting the selected data port to a physical communication bus having a parallel bandwidth less than a combined capacity of the two or more data ports.
  27. 63
    64. A method according to claim 63, further comprising:generating new first protocol information based on the selection;and connecting the new first protocol information to the physical communication bus.
  28. 65
    66. A method according to claim 65 in which programming a programmable switch comprises writing data to a memory element coupled to a multiplexer.
  29. 66
    67. A method of sending data in an integrated circuit, comprising:in a first clock domain, sending data to two or more data storing registers;in a second clock domain: accepting a signal from a receiver coupled to a physical bus having a parallel width less than a width of the two or more data storing registers, the signal indicating an ability of the receiver to remove data from the physical bus, choosing one of the two or more data storing registers based at least in part on a state of the signal, and coupling data from the selected register to the physical bus. 5
  30. 67
    68. A method according to claim 67, further comprising driving the second clock domain al a rate related to a rate at which the two or more data storing registers receive data.
Independent claims30