US 11,893,423 B2
Techniques for configuring a processor to function as multiple, separate processors
Jerome F. Duluk, Jr., Palo Alto, CA (US); Gregory Scott Palmer, Cedar Park, TX (US); Jonathon Stuart Ramsey Evans, Santa Clara, CA (US); Shailendra Singh, Fremont, CA (US); Samuel H. Duncan, Arlington, MA (US); Wishwesh Anil Gandhi, Sunnyvale, CA (US); Lacky V. Shah, Los Altos, CA (US); Sonata Gale Wen, San Jose, CA (US); Feiqi Su, Cupertino, CA (US); James Leroy Deming, Madison, AL (US); Alan Menezes, San Jose, CA (US); Pranav Vaidya, San Jose, CA (US); Praveen Joginipally, San Jose, CA (US); Timothy John Purcell, Melbourne (AU); and Manas Mandal, Palo Alto, CA (US)
Assigned to NVIDIA CORPORATION, Santa Clara, CA (US)
Filed by NVIDIA CORPORATION, Santa Clara, CA (US)
Filed on Sep. 5, 2019, as Appl. No. 16/562,367.
Prior Publication US 2021/0073042 A1, Mar. 11, 2021
Int. Cl. G06F 9/50 (2006.01); G06F 9/38 (2018.01); G06F 1/3296 (2019.01); G06F 1/04 (2006.01)
CPC G06F 9/5061 (2013.01) [G06F 1/04 (2013.01); G06F 1/3296 (2013.01); G06F 9/3877 (2013.01); G06F 9/5027 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
generating a first signal to sample performance data for a plurality of engines included in a processor, wherein the performance data is captured by a plurality of performance monitors;
receiving, based on the first signal, the performance data from the plurality of performance monitors, wherein the performance data includes a first identifier that identifies which performance monitor included in the plurality of performance monitors that generated the performance data;
extracting a plurality of performance data subsets from the performance data based on a plurality of second identifiers included in the performance data, wherein a first performance data subset of the plurality of performance data subsets includes the first identifier, wherein each of the plurality of performance data subsets corresponds to a different second identifier included in the plurality of second identifiers, and wherein each of the plurality of second identifiers corresponds to a different engine included in the plurality of engines; and
storing each of the plurality of performance data subsets in a different one of a plurality of data stores, wherein, for each of the plurality of performance data subsets, the different one of the plurality of data stores is determined based on the second identifier included in the performance data subset, wherein each data store included in the plurality of data stores is isolated from access by the plurality of engines other than a corresponding engine included in the plurality of engines, and wherein each engine in the plurality of engines accesses the corresponding data store in the plurality of data stores via a different virtual address space.