US 11,861,422 B2
Method and system for enabling communication between multiple virtual platforms
Ziang Zhang, Trondheim (NO); Michael Davis, Trondheim (NO); and Christopher Smith, Trondheim (NO)
Assigned to Nordic Semiconductor ASA, Trondheim (NO)
Filed by Nordic Semiconductor ASA, Trondheim (NO)
Filed on Nov. 24, 2021, as Appl. No. 17/535,230.
Claims priority of application No. 2018547 (GB), filed on Nov. 25, 2020.
Prior Publication US 2022/0164243 A1, May 26, 2022
Int. Cl. G06F 13/10 (2006.01); G06F 9/54 (2006.01); G06F 9/455 (2018.01); G06F 12/02 (2006.01)
CPC G06F 9/544 (2013.01) [G06F 9/455 (2013.01); G06F 12/023 (2013.01); G06F 2212/152 (2013.01)] 23 Claims
OG exemplary drawing
 
1. A computer system configured to enable communication between two or more virtual platforms, the computer system comprising:
a physical processor configured to run the two or more virtual platforms, the physical processor executing for each virtual platform:
a processor simulator configured to simulate a virtual processor, wherein the virtual processor runs a device driver;
a simulated communication device configured to run firmware, wherein the firmware initiates communication between its corresponding virtual platform and at least one other virtual platform; and
an interface connecting the processor simulator with the simulated communication device such that the simulated virtual processor interacts with the simulated communication device; and
a memory comprising one or more separate memory portions allocated to each of the two or more virtual platforms, wherein within at least one memory portion allocated to one of the virtual platform a predefined range of addresses is configured as a shared device memory, the shared device memory being accessible by all the virtual platforms and comprising:
a data portion visible to the two or more virtual platforms; and
a register portion representing a plurality of registers, wherein each virtual platform is allocated one or more registers in the register portion;
wherein the firmware running on a first virtual platform is configured to transfer a data packet from the first virtual platform to one or more further virtual platforms via the shared device memory; and
wherein the simulated communication device indicates the transfer of the data packet by writing into a register in the register portion allocated to each of the corresponding one or more virtual platforms to which data packet is transferred.