Identification of a computing device accessing a shared memory
11163681 ยท 2021-11-02
Assignee
Inventors
Cpc classification
G06F12/0831
PHYSICS
G06F2212/621
PHYSICS
G06F2212/62
PHYSICS
International classification
G06F12/00
PHYSICS
G06F12/0831
PHYSICS
Abstract
A method for identifying, in a system including two or more computing devices that are able to communicate with each other, with each computing device having with a cache and connected to a corresponding memory, a computing device accessing one of the memories, includes monitoring memory access to any of the memories; monitoring cache coherency commands between computing devices; and identifying the computing device accessing one of the memories by using information related to the memory access and cache coherency commands.
Claims
1. A method for identifying, in a system including two or more computing devices that are able to communicate with each other, with each computing device having a cache and connected to a corresponding memory, the computing device accessing one of the memories, the method comprising: monitoring memory access, using a first probe attached to a first bus connecting a first memory to a first computing device, to any of the memories by collecting a plurality of access times, a plurality of type of commands, and a plurality of memory addresses from a plurality of memory read accesses; monitoring cache coherency commands, using a second probe attached to an interconnect connecting the first computing device and a second computing device, between the first computing device and the second computing device at one or more cache coherency times; and identifying the first computing device as accessing one of the memories by using information including common memory addresses of two or more memory addresses of the plurality of memory addresses, the first computing device identified by identifying a memory address for the memory access, a first cache coherency command from the first computing device, and a second cache coherency command from the second computing device, and determining the first cache command is associated with a first memory address matching the memory address for the memory access.
2. The method of claim 1, wherein monitoring memory access to any of the memories comprises acquiring information related to memory access via a memory device connected to one of the memories and storing information related to memory access.
3. The method of claim 2, wherein monitoring cache coherency commands between computing devices comprises monitoring cache coherency commands via an interconnect between computing devices and storing information related to cache coherency commands.
4. The method of claim 3, wherein identifying the computing device accessing one of the memories comprises: identifying a cache coherency command from a history of information related to cache coherency commands including a memory address identical to the memory address in information related to memory access; and identifying, as the computing device accessing one of the memories, the computing device issuing the cache coherency command identified from the history of information at a timing closest to a timing of the memory access.
5. The method of claim 4, wherein the information related to memory access includes an access time, a type of command, and a memory address, and the information related to cache coherency commands includes a time at which a command was issued, a type of command, a memory address, and an ID of the computing device issuing the command.
6. A method for identifying, in a system including two or more computing devices that are able to communicate with each other via an interconnect, with each computing device provided with a cache and connected to a corresponding memory, the computing device accessing a first memory, the method comprising: monitoring memory access to the first memory via a memory device connected to the first memory and a first computing device by collecting a plurality of access times, a plurality of type of commands, and a plurality of memory addresses from a plurality of memory read accesses; monitoring cache coherency commands between the first computing device and a second computing device via an interconnect between computing devices and storing information related to the commands, the cache coherency commands monitored at one or more cache coherency times; identifying a first command from the first computing device and a second command from the second computing device, the first command and the second command identified from a history of information related to the commands including a memory address of the first memory; and identifying, as the computing device accessing the first memory, the first computing device issuing the first command at a timing closest to a timing of the memory access to the first memory and the first command being associated with a first memory address matching a memory address for the memory access.
7. A non-transitory, computer readable storage medium having computer readable instruction stored thereon that, when executed by a computer, implement a method for identifying, in a system including two or more computing devices that are able to communicate with each other, with each computing device having a cache and connected to a corresponding memory, the computing device accessing one of the memories, the method comprising: monitoring memory access, using a first probe attached to a first bus connecting a first memory to a first computing device, to any of the memories by collecting a plurality of access times, a plurality of type of commands, and a plurality of memory addresses from a plurality of memory read accesses; monitoring cache coherency commands, using a second probe attached to an interconnect connecting the first computing device and a second computing device, between the first computing device and the second computing device at one or more cache coherency times; and identifying the first computing device as accessing one of the memories by using information including common memory addresses of two or more memory addresses of the plurality of memory addresses, the first computing device identified by identifying a memory address for the memory access, a first cache coherency command from the first computing device, and a second cache coherency command from the second computing device, and determining the first cache command is associated with a first memory address matching the memory address for the memory access.
8. The storage medium of claim 7, wherein monitoring memory access to any of the memories comprises acquiring information related to memory access via a memory device connected to one of the memories and storing information related to memory access.
9. The storage medium of claim 8, wherein monitoring cache coherency commands between computing devices comprises monitoring cache coherency commands via an interconnect between computing devices and storing information related to cache coherency commands.
10. The storage medium of claim 9, wherein identifying the computing device accessing one of the memories comprises: identifying a cache coherency command from a history of information related to cache coherency commands including a memory address identical to the memory address in information related to memory access; and identifying, as the computing device accessing one of the memories, the computing device issuing the cache coherency command identified from the history of information at a timing closest to a timing of the memory access.
11. The storage medium of claim 10, wherein the information related to memory access includes an access time, a type of command, and a memory address, and the information related to cache coherency commands includes a time at which a command was issued, a type of command, a memory address, and an ID of the computing device issuing the command.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Embodiments of the present invention provide a method for identifying a computing device that accesses one of the shared memories in a multiprocessor system where two or more computing devices are able to communicate with each other, and each computing device has a cache and corresponding memory.
(14) In particular, embodiments of the present invention provide a method for identifying the computing device accessing one of the memories in a system, where two or more computing devices are able to communicate with each other, and each computing device has a cache and corresponding memory. This method includes monitoring memory access to any of the memories; monitoring cache coherency commands between computing devices; and identifying the computing device accessing one of the memories by using the information on the memory access and the information on the cache coherency commands.
(15) In one aspect, monitoring memory access to any of the memories also includes acquiring information related to memory access via a memory device connected to one of the memories and storing the information.
(16) In one aspect, monitoring cache coherency commands between computing devices also includes monitoring cache coherency commands via an interconnect between computing devices and storing information related to cache coherency commands.
(17) In one aspect, identifying the computing device accessing one of the memories also includes: identifying a cache coherency command from a history of information related to cache coherency commands including a memory address identical to the memory address in information related to memory access; and identifying, as the computing device accessing one of the memories, the computing device issuing identified cache coherency commands at the timing closest to the timing of the memory access.
(18) In one aspect, the information related to memory access includes the access time, the type of command, and the memory address; and the information related to cache coherency commands includes the time at which a command was issued, the type of command, the memory address, and the ID of the computing device issuing the command.
(19) The following is an explanation of an embodiment of the present invention with reference to the drawings.
(20) In
(21)
(22) The following is an explanation of the processing flow of the present invention referring to
(23) In operation S11 of
(24) In operation S12, cache coherency commands between CPUs 1-4 are monitored. During the monitoring process, a probe 30 is connected to one or more of the interconnects I1-I6, information related to cache coherency commands (packet information, protocols) is obtained from interconnect signals in operation 1010 of
(25) In operation S13, the CPU accessing any one of the memories M1-M4 is identified from the information related to memory access acquired in Step S11, and information related to cache coherency commands obtained in Step S12. The identification process can be executed by a computer performing the following operations as offline analysis using the information stored in the memory:
(26) (i) Identify the cache coherency command that has the same address as the particular memory access generated for one of memories M1-M4 as shown in operation 1210 of method 1200 of
(27) (ii) The CPU performing the memory access is identified as the CPU issuing the identified cache coherency command at the timing closest to the timing of the memory access (immediately before or immediately after) as shown in operation 1220 of
(28) The following is a more detailed explanation of the present invention with reference to
Example 1
(29) This example is explained with reference to
(30) The history of the stored information from operation 1020 of
Example 2
(31) This example is explained with reference to
(32) The history of the stored information is used to identify CPU 4 as the CPU performing memory access A1, because CPU4 issued cache coherency command C2 at the timing closest to the timing of memory access A1 (immediately before or immediately after). In other words, CPU4 is identified as the CPU that accessed (read) memory M1 because it generated memory access A1 at the timing closest to the timing for the issuing of cache coherency command C2 (immediately before or immediately after).
Example 3
(33) This example is explained with reference to
(34) The history of the stored information is used to identify CPU1 as the CPU performing memory access A1, because CPU1 issued cache coherency command C1 at the timing closest to the timing of memory access A1 (immediately before or immediately after). In other words, CPU1 is identified as the CPU that accessed (write) memory M1 because it generated memory access A1 at the timing closest to the timing for the issuing of cache coherency command C1 (immediately before or immediately after).
Example 4
(35) This example is explained with reference to
(36) The history of the stored information is used to identify CPU4 as the CPU performing memory access A1, because CPU4 issued cache coherency command C2 at the timing closest to the timing of memory access A1 (immediately before or immediately after). In other words, CPU4 is identified as the CPU that accessed (write) memory M1 because it generated memory access A1 at the timing closest to the timing for the issuing of cache coherency command C2 (immediately before or immediately after).
Example 5
(37) This example is explained with reference to
(38) The history of the stored information is used to identify CPU2 as the CPU performing memory access A1, because CPU2 accessed (wrote to) the same address as the address in the information on the memory access A1 made to memory M1 most recently (last).
Example 6
(39) This example is explained with reference to
(40) The history of the stored information is used to identify CPU4 as the CPU performing memory access A1, because CPU4 accessed (wrote to) the same address as the address in the information on the memory access A1 made to memory M1 most recently (last).
Example 7
(41) This example is explained with reference to
(42) The history of the stored information is used to identify CPU1 as the CPU performing access to memory M1 (read or write), because CPU1 accessed (read from or wrote to) the same address as the address in the information on the memory access A1 made to memory M1 most recently (last).
Example 8
(43) This example is explained with reference to
(44) Note that it cannot be strictly determined which of CPU2 or CPU3 initiates memory access A1 or A2 on b1 based on the history of stored information as the hardware logic of the internal cache/memory of CPU1 is not monitored. In other words, it only identifies CPU2 and CPU3 as the CPUs performing memory accesses A1 and A2, but cannot identify which of CPU2 or CPU3 drives A1 on b1. It cannot identify which of CPU2 or CPU3 drives A2 on b1.
(45) Embodiments of the present invention were described above with reference to the drawings. However, the present invention is by no means restricted to the embodiments described above. Various improvements, modifications and changes are possible without departing from the spirit and scope of the present invention.
REFERENCE SIGNS LIST
(46) 10: Memory 20: Interconnect 30: Probe 100: Shared memory multiprocessor system