发明名称 Communications via shared memory
摘要 A first processing core selects a first memory address of a first memory area based on a last written buffer that identifies a last written memory address. The first memory area is a portion of a shared memory, and the first processing core has sole write access to the first memory area among a plurality of processing cores that use the shared memory. Data is written to the first memory address of the first memory area. After writing the data to the first memory address, the last written buffer is updated to designate the first memory address as the last written memory address of the first memory area. A second processing core of the plurality of processing cores is operable to access the data by accessing the last written buffer and determining, based on the last written buffer, that the data is stored at the first memory address.
申请公布号 US9098462(B1) 申请公布日期 2015.08.04
申请号 US201012881392 申请日期 2010.09.14
申请人 The Boeing Company 发明人 McNicholl Michael J.;Guichard David Joseph;Ling Yong-Long;Wu George
分类号 G06F12/00;G06F13/00;G06F13/28;G06F13/16;G06F12/02 主分类号 G06F12/00
代理机构 Toler Law Group, PC 代理人 Toler Law Group, PC
主权项 1. A system, comprising: a first processing core; a second processing core, wherein the second processing core is configured to execute a first partition; a shared memory accessible to the first processing core and to the second processing core, wherein the shared memory includes a first memory area that can be read and written to by the first processing core, wherein the first memory area can be read by the second processing core and cannot be written to by the second processing core, wherein the shared memory includes a second memory area that can be read and written to by the first partition, and wherein the second memory area can be read by the first processing core and cannot be written to by the first processing core; and a computer-readable storage medium accessible to the first processing core and to the second processing core, wherein the computer-readable medium includes instructions, wherein the instructions are executable by the first processing core to cause the first processing core to: access a last sampling written buffer in the first memory area to identify a last sampling written memory address of the first memory area in response to determining that sampling data is available at the first processing core, wherein the last sampling written buffer stores a value corresponding to the last sampling written memory address;determine a first memory address based on the value;write the sampling data to a memory location identified by the first memory address;update the last sampling written buffer to indicate a second value corresponding to the first memory address, and wherein the instructions are executable by the second processing core to cause the second processing core while executing the first partition to: access the last sampling written buffer of the first memory area;determine, based on the second value, that the sampling data is stored at the memory location identified by the first memory address;read the sampling data from the memory location identified by the first memory address, wherein the sampling data is read by the first partition without updating a first read counter stored in the second memory area; andwrite the sampling data to the second memory area; and wherein the second processing core is further configured to execute a second partition, wherein the shared memory further includes a third memory area that can be read and written to by the second partition, wherein the third memory area can be read by the first processing core and the first partition and cannot be written to by the first processing core and cannot be written to by the first partition, wherein the second partition can read the first memory area and the second memory area and cannot write to the first memory area and cannot write to the second memory area, and wherein the instructions are executable by the second processing core to cause the second processing core while executing the second partition to: access the last sampling written buffer of the first memory area;determine, based on the second value, that the sampling data is stored at the memory location identified by the first memory address;read the sampling data from the memory location identified by the first memory address, wherein the sampling data is read by the second partition without updating a second read counter stored in the third memory area; andwrite the sampling data to the third memory area.
地址 Chicago IL US