Method of handling transactions, corresponding system and computer program product
AssigneesSTMicroelectronics (Grenoble) SAS, STMicroelectronics S.r.l.
InventorsDaniele Mangano, Ignazio Antonino Urzi
Life of this patent
Estimating the term…
Abstract
A system, such as a System-on-Chip includes an interface component or PLUG which generates transactions over an IP block, such as an interconnect serving one or more clients via virtual channels. The client or clients are mapped onto the virtual channels via client/virtual channel mappings. The virtual channels are provided as a first set of virtual channels in the interface component which cooperate with a second set of virtual channels in the IP block. First and second client/virtual channel mappings for the first set of virtual channels and the second set of virtual channels are provided. The first and second client/virtual channel mappings are separately programmable and mutually decoupled from one another.
Claims25
A method to operate a system arranged to pass data to and from a plurality of clients, comprising:
- providing an interface component;
- providing an IP block;
- providing a plurality of virtual channels, the plurality of virtual channels provided as a first set of virtual channels in said interface component cooperating with a second set of virtual channels in said IP block;
- providing first client/virtual channel mappings to said first set of virtual channels in said interface component;
- providing second client/virtual channel mappings to said second set of virtual channels in said IP block, wherein said first client/virtual channel mappings and said second client/virtual channel mappings are decoupled from one another and separately programmable;
- mapping at least one client onto a first one of the plurality of virtual channels, said mapping according to at least one of the first and second client/virtual channel maps;
- providing a virtualization unit as part of the interface component, the virtualization unit having a set of quality of service logic blocks and a plurality of service mapper logic units, wherein at least one quality of service logic block is associated with each virtual channel of the first set of virtual channels in said interface component, wherein individual clients of the plurality of clients are associated with individual ones of the service mapper logic units, and wherein the set of quality of service logic blocks are arranged to provide selection information that prioritizes one of the plurality of clients;
- configuring the IP block to serve the at least one client via the mapped first one of the plurality of virtual channels;
- and
- generating transactions over the IP block.
A system to pass data to and from a plurality of clients, comprising:
- an interface component;
- an IP block;
- a logical network, the logical network configurable as a plurality of virtual channels, the plurality of virtual channels including a first set of virtual channels in said interface component and a second set of virtual channels in said IP block, the first and second sets of virtual channels arranged to cooperate with each other;
- at least one memory configured to store first client/virtual channel mappings to said first set of virtual channels in said interface component and further configured to store second client/virtual channel mappings to said second set of virtual channels in said IP block, wherein said first client/virtual channel mappings and said second client/virtual channel mappings are decoupled from one another and separately programmable;
- and
- a virtualization unit arranged as part of the interface component, the virtualization unit having a set of quality of service logic blocks and a plurality of service mapper logic units, wherein at least one quality of service logic block is associated with each virtual channel of the first set of virtual channels in said interface component, wherein individual clients of the plurality of clients are associated with individual ones of the service mapper logic units, and wherein the set of quality of service logic blocks are arranged to provide selection information that prioritizes one of the plurality of clients.
A computer non-transitory readable medium containing instructions to control at least one computing device, the instructions including software code portions to implement a method, the acts of the method comprising:
- providing an interface component;
- providing an IP block;
- providing a plurality of virtual channels as a first set of virtual channels in said interface component and a second set of virtual channels in said IP block;
- selecting at least one virtual channel based on a priority;
- mapping at least one client to the at least one virtual channel;
- and
- providing a virtualization unit as part of the interface component, the virtualization unit having a set of quality of service logic blocks and a plurality of service mapper logic units, wherein at least one quality of service logic block is associated with each virtual channel of the first set of virtual channels in said interface component, wherein individual clients of a plurality of clients are associated with individual ones of the service mapper logic units, and wherein the set of quality of service logic blocks are arranged to provide selection information that prioritizes one of the plurality of clients;
- granting permission to access a bus to the selected at least one virtual channel.
A method to operate a system, comprising:
- providing an interface component;
- providing one or more IP blocks each having a message transfer interface (IP) block associated with N clients;
- providing a plurality of K internal virtual channels and a plurality of M system virtual channels wherein N, K and M are integers and wherein N>K;
- providing a virtualization unit as part of the interface component, the virtualization unit having a set of quality of service logic blocks and a plurality of service mapper logic units, wherein at least one quality of service logic block is associated with each internal virtual channel of the plurality of K internal virtual channels, wherein individual clients of the N clients are associated with individual ones of the service mapper logic units, and wherein the set of quality of service logic blocks are arranged to provide selection information that prioritizes one of the plurality of clients;
- mapping each of the N clients onto at least one of the K internal virtual channels;
- mapping each of the N clients onto at least one of the M system virtual channels, the mapping of the system virtual channels being separately programmable from the mapping of the K internal virtual channels;
- generating at least two transactions, each transaction associated with a different one of the plurality of N clients, the at least two transactions arranged to pass data through one of the K internal virtual channels;
- and
- subjecting the at least two transactions to a weighted least recently used (WLRU) arbitration procedure.
Dependencies are inferred from the claim text.