信息处理设备及信息处理方法与流程

文档序号:31711619发布日期:2022-10-04 19:26阅读:62来源:国知局
信息处理设备及信息处理方法与流程

1.本文所讨论的实施方式涉及信息处理。


背景技术:

2.在近来的信息处理设备(计算机)中,在算术处理单元中经常连同中央处理单元(cpu)一起提供高速缓存存储器。存储在高速缓存存储器中的信息是由cpu执行的指令或用于执行指令的数据。
3.当用于cpu的指令处理的信息存在于高速缓存存储器中并且从高速缓存存储器读取该信息成功时,这被称为高速缓存命中(cache hit)。另一方面,当用于指令处理的信息不存在于高速缓存存储器中并且从高速缓存存储器中读取该信息失败时,这被称为高速缓存未命中(cache miss)。
4.关于高速缓存未命中,已知用于计算机系统的可以提高高速缓存存储器的命中率的编译器装置。还已知cpu存储器访问分析装置,其在不影响系统的行为的情况下以低带宽输出cpu存储器访问状态,以便通过cpu存储器访问分析来优化软件的处理速度。
5.相关技术的示例包括如下:日本公开特许公报第2009-277243号以及日本公开特许公报第2006-285430号。


技术实现要素:

6.技术问题
7.在由于预提取高速缓存存储器中的数据时的意外结果而导致对要访问的数据的预提取失败的情况下,会发生高速缓存未命中。在这种情况下,高速缓存未命中的原因是特定数据的预提取失败。此外,在从高速缓存存储器中排出数据的情况下也会发生高速缓存未命中。在这种情况下,高速缓存未命中的原因是特定数据的驱逐。
8.在调整或调试由信息处理设备执行的程序时,可以获取关于高速缓存未命中的统计信息和其中发生了高速缓存未命中的数据的物理地址(pa)。然而,其中发生了高速缓存未命中的数据的虚拟地址(va)是未知的。
9.另一方面,由于软件仅识别虚拟地址空间而不能识别物理地址空间,因此在不知道数据的虚拟地址的情况下难以指定高速缓存未命中的原因。在未指定高速缓存未命中原因的情况下,将难以修改程序以减少高速缓存未命中。
10.当为了获取其中发生了高速缓存未命中的数据的虚拟地址而向由高速缓存存储器发送和接收的读取请求和写入请求添加虚拟地址时,存储器带宽的使用量增加。当为了避免存储器带宽(memory bandwidth)的使用量增加而增加高速缓存存储器与主存储装置之间的布线时,布线面积增加。
11.注意,这样的问题不仅在发生数据的高速缓存未命中的情况下发生,而且在发生指令的高速缓存未命中的情况下也发生。此外,这样的问题不仅在高速缓存未命中的情况下发生,而且在分析高速缓存存储器的各种操作的情况下也发生。
12.在一方面,实施方式旨在与信息的虚拟地址相关联地记录高速缓存存储器的操作。
13.问题的解决方案
14.根据实施方式的一方面,提供一种信息处理设备,该信息处理设备包括算术处理单元,该算术处理单元包括:执行程序的处理器;以及耦接至该处理器的高速缓存存储器。在示例中,高速缓存存储器包括:获取单元,其在程序被执行时获取作为在高速缓存存储器中已经发生的事件的目标的目标信息的物理地址;以及生成单元,其通过使用指示目标信息的物理地址与目标信息的虚拟地址之间的对应关系的对应关系信息将目标信息的物理地址转换成目标信息的虚拟地址,并且生成日志信息,在日志信息中指示目标信息的虚拟地址的虚拟地址信息和事件的标识信息彼此相关联。
15.本发明的目的和优点将借助于在权利要求书中特别指出的元素和组合来实现和获得。
16.应当理解,前面的总体描述和下面的详细描述均是示例性的和说明性的并且不限制本发明。
17.发明的有益效果
18.根据一方面,可以与信息的虚拟地址相关联地记录高速缓存存储器的操作。
附图说明
19.图1是信息处理设备的配置图;
20.图2是日志生成处理的流程图;
21.图3是信息处理设备的第一硬件配置图;
22.图4是l2高速缓存的硬件配置图;
23.图5是示出转换表的图;
24.图6是示出虚拟地址和物理地址的图;
25.图7是示出日志信息的图;
26.图8是表控制单元的硬件配置图;
27.图9是示出更新信息的图;
28.图10是日志控制单元的硬件配置图;
29.图11是示出信息处理设备在高速缓存监测模式下的操作的图;
30.图12是示出信息处理设备在日志获取模式下的操作的图;
31.图13是示出日志生成处理的图;
32.图14是示出分析处理的图;
33.图15是示出虚拟地址表的图;
34.图16是表生成处理的流程图;
35.图17是示出在日志获取模式下的处理中获取的日志信息的图;
36.图18是日志信息分析处理的流程图;
37.图19是示出增加了列的虚拟地址表的图;以及
38.图20是信息处理设备的第二硬件配置图。
具体实施方式
39.在下文中,将参照附图详细描述实施方式。
40.图1示出了实施方式的信息处理设备的配置示例。图1的信息处理设备101包括算术处理单元111。算术处理单元111包括处理器121和高速缓存存储器122,并且高速缓存存储器122包括获取单元131和生成单元132。
41.图2是示出由图1的信息处理设备101执行的日志生成处理的示例的流程图。首先,处理器121执行程序(步骤201),并且获取单元131在所述程序被执行时获取作为发生在高速缓存存储器中的事件的目标的目标信息的物理地址(步骤202)。
42.接下来,生成单元132通过使用指示目标信息的物理地址与目标信息的虚拟地址之间的对应关系的对应关系信息,将目标信息的物理地址转换成目标信息的虚拟地址(步骤203)。然后,生成单元132生成其中指示目标信息的虚拟地址的虚拟地址信息和事件的标识信息彼此相关联的日志信息(步骤204)。
43.根据图1的信息处理设备101,可以与信息的虚拟地址相关联地记录高速缓存存储器122的操作。
44.图3是图1的信息处理设备101的第一硬件配置图。图3的信息处理设备301包括算术处理单元311、存储器单元312、辅助存储装置313和显示装置314。这些部件是硬件并通过总线315相互连接。
45.算术处理单元311包括中央处理单元(cpu)321、转换后备缓冲器(tlb)322、1级(l1)高速缓存323和2级(l2)高速缓存324。这些部件是硬件。
46.tlb 322保存指示多条数据中的每条数据的物理地址与虚拟地址之间的对应关系的对应关系信息。在tlb 322从cpu 321接收到虚拟地址的情况下,tlb 322通过使用对应关系信息将接收到的虚拟地址转换成对应的物理地址,并将该物理地址发送至l1高速缓存323。tlb 322是转换单元的示例。
47.l1高速缓存323是初级高速缓存存储器,而l2高速缓存324是次级高速缓存存储器。l2高速缓存324属于比l1高速缓存323的存储层级低的存储层级。因此,l2高速缓存324的存取速度比l1高速缓存323的存取速度慢,并且l2高速缓存324的存储容量比l1高速缓存323的存储容量大。
48.算术处理单元311对应于图1的算术处理单元111。cpu 321和l2高速缓存324分别对应于图1的处理器121和高速缓存存储器122。
49.存储器单元312是半导体存储器例如随机存取存储器(ram),并且存储分析目标程序和数据。存储器单元312有时被称为主存储器装置。cpu321通过使用存储在存储器单元312中的数据来执行分析目标程序。
50.辅助存储装置313是例如磁盘装置、光盘装置、磁光盘装置或磁带装置。辅助存储装置313可以是硬盘驱动器。信息处理设备301可以将分析目标程序和数据存储在辅助存储装置313中,并将它们加载到存储器单元312中以供使用。显示装置314在屏幕上向用户显示查询或指令以及处理结果。
51.当执行分析目标程序时,在算术处理单元311中可以发生以下事件。
52.提取(l2

l1)
53.提取(主

l2)
54.预提取(l2

l1)
55.预提取(主

l2)
56.替换
57.无效
58.写入(l1

l2)
59.写入(l2

主)
60.提取(l2

l1)表示l2高速缓存324向l1高速缓存323发送数据并且l1高速缓存323从l2高速缓存324接收数据的操作。提取(主

l2)表示存储器单元312向l2高速缓存324发送数据并且l2高速缓存324从存储器单元312接收数据的操作。
61.预提取(l2

l1)表示l1高速缓存323从l2高速缓存324预提取数据的操作,并且预提取(主

l2)表示l2高速缓存324从存储器单元312预提取数据的操作。提取(l2

l1)、提取(主

l2)、预提取(l2

l1)和预提取(主

l2)对应于数据读取。
62.替换表示通过替换高速缓存行来删除数据的操作,并且无效表示使高速缓存行无效的操作。替换和无效对应于数据删除。
63.写入(l1

l2)表示l1高速缓存323向l2高速缓存324发送数据并且l2高速缓存324从l1高速缓存323接收数据的操作。写入(l2

主)表示l2高速缓存324向存储器单元312发送数据并且存储器单元312从l2高速缓存324接收数据的操作。写入(l1

l2)和写入(l2

主)对应于数据写入。
64.取决于所发生的事件,在l1高速缓存323与l2高速缓存324之间或在l2高速缓存324与存储器单元312之间发送和接收分组。例如,要发送和接收的分组包括指示已经发生的事件的事件信息、作为事件的目标的目标数据以及目标数据的物理地址。
65.cpu 321在执行分析目标程序时访问存储在存储器单元312中的数据的情况下向tlb 322发送访问请求。访问请求为例如读取请求或写入请求,并且包括要访问的数据的虚拟地址。tlb 322将访问请求中所包括的虚拟地址转换成对应的物理地址,并且将该物理地址发送至l1高速缓存323。
66.在访问请求是读取请求并且在l1高速缓存323中发生高速缓存命中的情况下,l1高速缓存323将所请求的数据发送至cpu 321。另一方面,在l1高速缓存323中发生高速缓存未命中的情况下,l1高速缓存323将包括所请求数据的物理地址的分组发送至l2高速缓存324。
67.在l2高速缓存324中发生高速缓存命中的情况下,l2高速缓存324向l1高速缓存323发送提取(l2

l1)分组。提取(l2

l1)分组包括指示提取(l2

l1)的事件信息、作为提取(l2

l1)的目标的数据以及数据的物理地址。作为提取(l2

l1)的目标的数据是其中发生高速缓存命中的数据。
68.l1高速缓存323存储包括在所接收的提取(l2

l1)分组中的数据,并且将该数据发送至cpu 321。
69.另一方面,在l2高速缓存324中发生高速缓存未命中的情况下,l2高速缓存324将包括所请求数据的物理地址的分组发送至存储器单元312。
70.存储器单元312提取在所接收的分组中包括的物理地址中存储的数据,并且向l2高速缓存324发送提取(主

l2)分组。提取(主

l2)分组包括指示提取(主

l2)的事件信
息、作为提取(主

l2)的目标的数据以及数据的物理地址。作为提取(主

l2)的目标的数据是从存储器单元312中提取的数据。
71.l2高速缓存324存储包括在所接收的分组中的数据,并且将提取(l2

l1)分组发送至l1高速缓存323。提取(l2

l1)分组包括指示提取(l2

l1)的事件信息、作为提取(l2

l1)的目标的数据以及数据的物理地址。作为提取(l2

l1)的目标的数据是包括在从存储器单元312接收的分组中的数据。
72.l1高速缓存323存储包括在所接收的提取(l2

l1)分组中的数据,并且将该数据发送至cpu 321。
73.图4示出了图3的l2高速缓存324的硬件配置示例。图4的l2高速缓存324包括表控制单元411、日志控制单元412、高速缓存控制单元413和存储单元414。这些部件是硬件电路。存储单元414可以是存储器阵列。高速缓存控制单元413对应于图1的获取单元131。
74.存储单元414存储转换表421和高速缓存信息423。转换表421包括与tlb 322所保存的对应关系信息相同的对应关系信息。
75.图5示出了图4的转换表421的示例。图5的转换表421的每个条目包括条目编号、valid(有效性)、虚拟页编号和物理页编号。tlb 322所保存的对应关系信息还包括与图5中的这些条目类似的条目。
76.条目编号是条目的标识信息,并且valid指示条目是有效还是无效。在valid为逻辑“1”的情况下,条目有效,并且在valid为逻辑“0”的情况下,条目无效。
77.虚拟页编号是包括在虚拟地址中的页编号,并且物理页编号是包括物理地址中的页编号。在该示例中,虚拟页编号和物理页编号以十六进制数表示。每个条目中的物理页编号与同一条目的虚拟页编号相对应。因此,转换表421指示每条数据的物理地址与虚拟地址之间的对应关系。
78.图6示出了虚拟地址和物理地址的示例。虚拟存储空间的大小为2gb,并且物理存储空间的大小为128mb。虚拟存储空间和物理存储空间被划分为4kb的页。
79.图6的虚拟地址601表示虚拟存储空间中的31位地址,并且包括19位虚拟页编号611和12位页偏移612。物理地址602与虚拟地址601相对应,并且表示物理存储空间中的27位地址。物理地址602包括15位物理页编号621和12位页偏移622。
80.页偏移622的内容与页偏移612的内容相同,并且包括高速缓存索引631、块偏移632和字节偏移633。高速缓存索引631是指示高速缓存行的信息,块偏移632是指示字在高速缓存行中的位置的信息,并且字节偏移633是指示字节在字中的位置的信息。
81.由于页偏移612的内容和页偏移622的内容相同,因此仅通过将虚拟页编号611和物理页编号621彼此关联地记录在转换表421中,就可以执行虚拟地址与物理地址的转换。
82.高速缓存信息423包括多个高速缓存行,并且每个高速缓存行包括由l2高速缓存324从l1高速缓存323或存储器单元312接收的数据。包括在每个高速缓存行中的数据与页或块相对应。
83.高速缓存控制单元413连接至l1高速缓存323,并且可以向l1高速缓存323发送分组以及从l1高速缓存323接收分组。高速缓存控制单元413还连接至总线315,并且可以向存储器单元312发送分组以及从存储器单元312接收分组。
84.在从l1高速缓存323接收到包括数据的物理地址的分组并且发生高速缓存命中的
情况下,高速缓存控制单元413从高速缓存信息423中提取与所接收的分组中包括的物理地址相对应的数据。然后,高速缓存控制单元413将包括所提取的数据的提取(l2

l1)分组发送至l1高速缓存323和日志控制单元412。
85.另一方面,在发生高速缓存未命中的情况下,高速缓存控制单元413将包括所请求的数据的物理地址的分组发送至存储器单元312,并且从存储器单元312接收提取(主

l2)分组。
86.接下来,高速缓存控制单元413将包括在提取(主

l2)分组中的数据记录在高速缓存信息423中,并且将该分组发送至日志控制单元412。然后,高速缓存控制单元413将包括高速缓存信息423中所记录的数据的提取(l2

l1)分组发送至l1高速缓存323和日志控制单元412。
87.表控制单元411响应于来自日志控制单元412或高速缓存控制单元413的请求,参考或更新转换表421。
88.日志控制单元412请求表控制单元411对包括在从高速缓存控制单元413接收的分组中的物理地址进行转换。表控制单元411通过使用转换表421将物理地址转换成虚拟地址,并将虚拟地址输出至日志控制单元412。此时,表控制单元411使用转换表421将包括在物理地址中的物理页编号转换成虚拟页编号,并将虚拟页编号与包括在物理地址中的页偏移连接以生成虚拟地址。
89.日志控制单元412通过从由表控制单元411输出的虚拟地址中去除块偏移和字节偏移来生成包括虚拟页编号和高速缓存索引的虚拟地址信息。然后,日志控制单元412通过使用虚拟地址信息生成日志信息422的条目,并将该条目存储在存储单元414中。
90.图7示出了图4的日志信息422的示例。图7的日志信息422中的每个条目包括循环计数、虚拟地址信息和标识信息。循环计数是指示事件发生的时间的信息,并且虚拟地址信息包括虚拟页编号和高速缓存索引。在该示例中,循环计数和虚拟地址信息以十六进制数表示。标识信息是与包括在所接收的分组中的事件信息相对应的事件的标识信息。
91.在虚拟页编号和高速缓存索引已知的情况下,可以指定其中存储有由虚拟地址指示的数据的高速缓存行。因此,块偏移和字节偏移被排除在虚拟地址信息之外。例如,可以使用以下值作为标识信息。
92.0x1提取(l2

l1)
93.0x2提取(主

l2)
94.0x3预提取(l2

l1)
95.0x4预提取(主

l2)
96.0x5替换
97.0x6无效
98.0x7写入(l1

l2)
99.0x8写入(l2

主)
100.注意,日志信息422的条目中可以添加其他信息。所述其他信息是对应于虚拟地址信息的物理地址信息、作为事件的目标的数据、在事件发生时程序计数器的值等。在添加物理地址信息的情况下,日志控制单元412通过从包括在从高速缓存控制单元413接收的分组中的物理地址中去除块偏移和字节偏移来生成物理地址信息。物理地址信息包括物理页编
号和高速缓存索引。
101.信息处理设备301在包括正常模式、高速缓存监测模式和日志获取模式的任何一种操作模式下进行操作。在高速缓存监测模式下,信息处理设备301监测l2高速缓存324中的数据的输入/输出,并且在事件发生时生成日志信息422的条目。
102.在日志获取模式下,信息处理设备301从存储单元414获取日志信息422。在正常模式下,信息处理设备301执行信息处理而不生成或获取日志信息422。
103.图8示出了图4的表控制单元411的硬件配置示例。图8的表控制单元411包括虚拟地址(va)获取单元811、物理地址(pa)获取单元812和更新单元813。这些部件是硬件电路。
104.在从日志控制单元412输入物理地址的情况下,va获取单元811参考转换表421中的包括所输入的物理地址中的物理页编号的条目。然后,va获取单元811从该条目获取虚拟页编号、生成包括所获取的虚拟页编号的虚拟地址并将该虚拟地址输出至日志控制单元412。
105.在从外部请求源输入虚拟页编号的情况下,pa获取单元812参考转换表421中的包括所输入的虚拟页编号的条目。然后,pa获取单元812从该条目获取物理页编号,并且将所获取的物理页编号输出至请求源。外部请求源可以是图3和图4中未示出的硬件电路。
106.在更新单元813接收到指示对tlb 322中的对应关系信息的更新的更新信息的情况下,更新单元813基于所接收的更新信息更新转换表421,使得tlb 322中的更新反映在转换表421中。利用这种配置,可以使转换表421与tlb 322中的对应关系信息同步。
107.图9示出了更新信息的示例。图9的更新信息是分组,并且包括由tlb322保存的对应关系信息的条目中的经更新的条目的条目编号、valid、虚拟页编号和物理页编号。
108.tlb 322将图9的分组发送至l2高速缓存324,并且高速缓存控制单元413将所接收的分组发送至表控制单元411。更新单元813通过将包括在分组中的信息重写在转换表421中的具有相同条目编号的条目上来更新转换表421。
109.图10示出了图4的日志控制单元412的硬件配置示例。图10的日志控制单元412包括读取单元1011、写入单元1012和生成单元1013。这些部件是硬件电路。图8的va获取单元811和图10的生成单元1013对应于图1的生成单元132。
110.在生成单元1013从cpu 321接收到有效信号的情况下,生成单元1013使高速缓存监测模式有效,并且在生成单元1013从cpu 321接收到无效信号的情况下,生成单元1013使高速缓存监测模式无效。
111.在使高速缓存监测模式有效的情况下,生成单元1013请求表控制单元411对包括在从高速缓存控制单元413接收的分组中的物理地址进行转换。然后,生成单元1013从表控制单元411接收与物理地址相对应的虚拟地址。
112.接下来,生成单元1013通过从由表控制单元411输出的虚拟地址中去除块偏移和字节偏移来生成虚拟地址信息,并且通过使用所生成的虚拟地址信息来生成日志信息422的条目。然后,生成单元1013将所生成的条目发送至写入单元1012。写入单元1012将从生成单元1013接收的条目写入日志信息422。
113.在读取单元1011从cpu 321接收到日志请求的情况下,读取单元1011从存储单元414读取日志信息422,并将日志信息422发送至cpu 321。
114.根据图3的信息处理设备301,在l2高速缓存324中发生事件的情况下,事件的标识
321向l2高速缓存324发送使高速缓存监测模式有效的有效信号,并且日志控制单元412中的生成单元1013基于所接收的有效信号使高速缓存监测模式有效(过程1111)。
130.每当cpu 321在高速缓存监测模式有效的状态下参考数据时,重复接下来的处理1101。在处理1101中,cpu 321向tlb 322发送包括数据的虚拟地址的读取请求(过程1112)。
131.在tlb 322中发生tlb未命中的情况下执行接下来的处理1102,并且在发生tlb命中的情况下跳过接下来的处理1102。在处理1102中,tlb322向cpu 321通知页错误(过程1113),并且cpu 321指示tlb 322更新tlb 322(过程1114)。
132.接下来,tlb 322向辅助存储装置313发送指示其中发生tlb未命中的页的页请求(过程1115),并且辅助存储装置313将由页请求指示的页发送至存储器单元312(程序1116)。存储器单元312存储所接收的页,并且向tlb 322发送包括页的物理页编号的加载完成通知(过程1117)。此时,由于数据的换出和换入,页表被更新。
133.接下来,tlb 322通过将发生tlb未命中的虚拟页编号和包括在加载完成通知中的物理页编号与所保存的对应关系信息相关联地记录来更新对应关系信息(过程1118)。然后,tlb 322将包括所记录的虚拟页编号和物理页编号的组合的分组作为更新信息发送至l2高速缓存324(过程1119)。
134.接下来,表控制单元411中的更新单元813通过将包括在所接收的分组中的虚拟页编号和物理页编号的组合记录在转换表421中来更新转换表421(过程1120)。由于页错误处理是软件处理,因此可以通过由硬件处理更新转换表421来隐藏更新所需的时间。
135.接下来,tlb 322将包括在从cpu 321接收的读取请求中的虚拟地址转换成对应的物理地址,并且将该物理地址发送至l1高速缓存323(过程1121)。
136.在l1高速缓存323中发生高速缓存未命中的情况下执行接下来的处理1103,并且在发生高速缓存命中的情况下跳过接下来的处理1103。在处理1103中,l1高速缓存323将包括从tlb 322接收的物理地址的分组发送至l2高速缓存324(过程1122)。
137.在l2高速缓存324中发生高速缓存未命中的情况下执行接下来的处理1104,并且在发生高速缓存命中的情况下跳过接下来的处理1104。在处理1104中,高速缓存控制单元413从所接收的分组中提取物理地址,并且将包括物理地址的分组发送至存储器单元312(过程1123)。
138.接下来,存储器单元312将包括由包括在所接收的分组中的物理地址指示的数据的提取(主

l2)分组发送至l2高速缓存324(过程1124)。高速缓存控制单元413从所接收的提取(主

l2)分组中提取数据,并将数据记录在高速缓存信息423中。然后,l2高速缓存324执行日志生成处理1105。
139.接下来,高速缓存控制单元413从高速缓存信息423中读取由包括在从l1高速缓存323接收的分组中的物理地址指示的数据。然后,高速缓存控制单元413将包括所读取的数据的提取(l2

l1)分组发送至l1高速缓存323(过程1125)。
140.l1高速缓存323存储包括在所接收的提取(l2

l1)分组中的数据。然后,l2高速缓存324执行日志生成处理1106。
141.接下来,l1高速缓存323将由从tlb 322接收的物理地址指示的数据发送至cpu 321(过程1126)。
142.在重复处理1101之后,cpu 321向l2高速缓存324发送使高速缓存监测模式无效的
无效信号(过程1127)。然后,日志控制单元412中的生成单元1013基于所接收的无效信号使高速缓存监测模式无效。
143.图11的处理1101是在从cpu 321向tlb 322发送读取请求的情况下的处理,但是cpu 321也可以向tlb 322发送写入请求。另外,在发送写入请求的情况下,除了过程1126之外,执行与处理1101类似的处理。
144.图12示出了信息处理设备301在日志获取模式下的操作的示例。首先,cpu 321向l2高速缓存324发送日志请求,并且高速缓存控制单元413将所接收的日志请求发送至日志控制单元412(过程1211)。
145.基于所接收的日志请求,日志控制单元412中的读取单元1011向存储单元414请求日志信息422(过程1212),并且从存储单元414读取日志信息422(过程1213)。然后,读取单元1011将所读取的日志信息422发送至高速缓存控制单元413,并且高速缓存控制单元413将所接收的日志信息422发送至cpu 321(过程1214)。
146.图13示出了图11的日志生成处理1105和日志生成处理1106的示例。在日志生成处理1105中,高速缓存控制单元413将从存储器单元312接收的提取(主

l2)分组发送至日志控制单元412(过程1311)。
147.日志控制单元412中的生成单元1013将包括在所接收的提取(主

l2)分组中的物理地址发送至表控制单元411(过程1312)。然后,生成单元1013从表控制单元411接收对应的虚拟地址(过程1313)。
148.接下来,生成单元1013根据从表控制单元411接收的虚拟地址生成虚拟地址信息,并且通过使用所生成的虚拟地址信息来生成日志信息422的条目。然后,生成单元1013将所生成的条目发送至写入单元1012。写入单元1012将从生成单元1013接收的条目写入存储单元414中的日志信息422(过程1314)。
149.在日志生成处理1106中,高速缓存控制单元413将被发送至l1高速缓存323的提取(l2

l1)分组发送至日志控制单元412(过程1321)。
150.日志控制单元412中的生成单元1013将包括在所接收的提取(l2

l1)分组中的物理地址发送至表控制单元411(过程1322)。然后,生成单元1013从表控制单元411接收对应的虚拟地址(过程1323)。
151.接下来,生成单元1013根据从表控制单元411接收的虚拟地址生成虚拟地址信息,并且通过使用所生成的虚拟地址信息来生成日志信息422的条目。然后,生成单元1013将所生成的条目发送至写入单元1012。写入单元1012将从生成单元1013接收的条目写入存储单元414中的日志信息422(过程1324)。
152.图14示出了使用图3的信息处理设备301进行分析处理的示例。调试器1402是支持调试操作的程序,并且由cpu 321执行。
153.首先,用户1401按单元例如函数来指定分析目标程序中的调整目标部分、将所指定的调整目标部分输入至调试器1402(过程1411)并激活调试器1402(过程1412)。
154.调试器1402请求cpu 321执行分析目标程序(过程1413),并且信息处理设备301在正常模式下执行处理1431。
155.调试器1402请求cpu 321在调整目标部分的开始位置处使高速缓存监测模式有效(过程1414),并且cpu 321向l2高速缓存324发送有效信号。然后,信息处理设备301在高速
缓存监测模式下执行处理1432。
156.调试器1402请求cpu 321在调整目标部分的结束位置处使高速缓存监测模式无效(过程1415),并且cpu 321向l2高速缓存324发送无效信号。然后,信息处理设备301在正常模式下执行处理1433。
157.在分析目标程序的执行结束的情况下(过程1416),调试器1402向用户通知执行结束(过程1417)。然后,调试器1402请求cpu 321获取日志信息422(过程1418),并且信息处理设备301在日志获取模式下执行处理1434。
158.cpu 321将从l2高速缓存324接收的日志信息422传送至调试器1402(过程1419),并且调试器1402在显示装置314的屏幕上显示日志信息422(过程1420)。利用这种配置,用户1401可以确认日志信息422的内容。
159.接下来,调试器1402分析日志信息422(过程1421),并且在显示装置314的屏幕上显示分析结果(过程1422)。利用这种配置,用户1401可以确认分析结果。
160.在图14的分析处理中,cpu 321通过执行调试器1402来生成虚拟地址表。虚拟地址表包括被包括在分析目标程序的调整目标部分中的变量的虚拟地址,并且被存储在存储器单元312中。
161.图15示出了虚拟地址表的示例。图15的虚拟地址表中的每个条目包括变量和变量的虚拟地址。在该示例中,虚拟地址以十六进制数表示。
162.图16是示出用于生成虚拟地址表的表生成处理的示例的流程图。cpu321通过执行调试器1402来执行图16的生成处理。
163.首先,cpu 321开始执行调试器1402和分析目标程序,并且分析目标程序中要执行的指令的位置到达调整目标部分的开始位置(步骤1601)。
164.接下来,cpu 321通过向l2高速缓存324发送有效信号来使高速缓存监测模式有效(步骤1602)。然后,cpu 321检查要执行的指令的位置是否已经到达调整目标部分的结束位置(步骤1603)。
165.在要执行的指令的位置尚未到达调整目标部分的结束位置的情况下(步骤1603为否),cpu 321参考或改变包括在调整目标部分中的变量的值,并且将该变量的变量名设置为var(步骤1604)。然后,cpu 321获取被设置为var的变量的虚拟地址,并且将虚拟地址设置为vaddr(步骤1605)。
166.接下来,cpu 321检查虚拟地址表中是否存在包括变量var的条目(步骤1606)。在存在包括变量var的条目的情况下(步骤1606为是),cpu 321检查包括变量var的条目之中的最新条目的虚拟地址是否是vaddr(步骤1607)。在最新条目的虚拟地址是vaddr的情况下(步骤1607为是),cpu321重复步骤1603和后续步骤的处理。
167.另一方面,在最新条目的虚拟地址不是vaddr的情况下(步骤1607为否),cpu 321将包括变量var和虚拟地址vaddr的条目添加至虚拟地址表(步骤1608)。然后,cpu 321重复步骤1603和后续步骤的处理。在不存在包括变量var的条目的情况下(步骤1606为否),cpu 321执行步骤1608之后的处理。
168.在要执行的指令的位置已经到达调整目标部分的结束位置的情况下(步骤1603为是),cpu 321通过向l2高速缓存324发送无效信号来使高速缓存监测模式无效(步骤1609)。然后,cpu 321检查是否继续处理(步骤1610)。
169.在继续处理的情况下(步骤1610为是),cpu 321重复步骤1601和后续步骤的处理。在不继续处理的情况下(步骤1610为否),cpu 321结束执行调试器1402和分析目标程序。
170.图17示出了在图14的日志获取模式下的处理1434中获取的日志信息422的示例。图17的日志信息422中的每个条目包括循环计数、虚拟地址信息和标识信息。
171.与循环计数“0x01001222”的虚拟地址“0x00ffab”相关联的标识信息“0x1”指示提取(l2

l1)。与循环计数“0x01001224”的虚拟地址“0x00ffab”相关联的标识信息“0x2”指示提取(主

l2)。
172.标识信息“0x1”还与循环计数“0x01002020”的虚拟地址“0x00aacc”和循环计数“0x01002333”的虚拟地址“0x10ffab”相关联。
173.图18是示出在图14的过程1421中执行的日志信息分析处理的示例的流程图。cpu 321通过执行调试器1402来执行图18的日志信息分析处理。
174.首先,cpu 321将列l2$miss和列l1$miss添加至虚拟地址表,并且将每个条目的l2$miss和l1$miss设置为0(步骤1801)。l1$miss表示l1高速缓存323中发生高速缓存未命中的次数,并且l2$miss表示l2高速缓存324中发生高速缓存未命中的次数。
175.图19示出增加了列l2$miss和列l1$miss的虚拟地址表的示例。在图19的虚拟地址表中,每个条目的l2$miss和l1$miss为0。
176.接下来,cpu 321通过使用指示虚拟地址表的条目的控制变量j(j=1至nl)和指示所获取的日志信息422的条目的控制变量k(k=1至n2)来执行步骤1802至步骤1806的处理。n1表示虚拟地址表的条目的数量,并且n2表示日志信息422的条目的数量。
177.在以下描述中,va1(j)表示虚拟地址表的第j个条目的虚拟地址。l1$miss(j)表示虚拟地址表的第j个条目中的l1$miss,并且l2$miss(j)表示虚拟地址表的第j个条目中的l2$miss。
178.va2(k)表示日志信息422的第k个条目的虚拟地址信息,并且id(k)表示日志信息422的第k个条目的标识信息。
179.首先,cpu 321将j设置为1并将k设置为1以将va1(j)的虚拟页编号和高速缓存索引与va2(k)的虚拟页编号和高速缓存索引进行比较(步骤1802)。在va1(j)的虚拟页编号和高速缓存索引与va2(k)的虚拟页编号和高速缓存索引匹配的情况下(步骤1802中为是),cpu 321检查id(k)(步骤1803)。
180.在id(k)指示提取(l2

l1)的情况下,cpu 321使l1$miss(j)递增1(步骤1804),并且删除日志信息422的第k个条目(步骤1806)。利用这种配置,将由第j个虚拟地址指示的数据的提取(l2

l1)发生的次数计数为l1高速缓存323中出现高速缓存未命中的次数。
181.在id(k)指示提取(主

l2)的情况下,cpu 321使l2$miss(j)递增1(步骤1805),并且删除日志信息422的第k个条目(步骤1806)。利用这种配置,将由第j个虚拟地址指示的数据的提取(主

l2)发生的次数计数为在l2高速缓存324中出现高速缓存未命中的次数。
182.在id(k)指示除提取(l2

l1)和提取(主

l2)外的事件的情况下,cpu 321删除日志信息422的第k个条目(步骤1806)。
183.接下来,cpu 321使k递增1。然后,在递增之后k为n2或小于n2的情况下,则cpu 321重复步骤1802和后续步骤的处理。
184.在va1(j)的虚拟页编号和高速缓存索引与va2(k)的虚拟页编号和高速缓存索引
不匹配的情况下(步骤1802中为否),cpu 321使k递增1。然后,在递增之后k为n2或小于n2的情况下,cpu 321重复步骤1802和后续步骤的处理。
185.在递增之后k大于n2的情况下,cpu 321将k设置为1,并且使j递增1。然后,在递增之后j为n1或小于n1的情况下,cpu 321重复步骤1802及后续步骤的处理。
186.在步骤1802中删除了日志信息422的第k个条目的情况下,确定va1(j)的虚拟页编号和高速缓存索引与va2(k)的虚拟页编号和高速缓存索引不匹配。在递增之后j大于n1的情况下,cpu 321结束处理。
187.根据图18的日志信息分析处理,对于分析目标程序中的调整目标部分,记录在日志信息422中的每个虚拟地址与记录在虚拟地址表中的变量相关联。利用这种配置,在l1高速缓存323和l2高速缓存324的每一个中,可以获取针对由每个变量指示的数据的高速缓存未命中发生的次数。
188.此后,在图14的过程1422中,cpu 321指定高速缓存未命中的原因。首先,cpu 321从包括l2$miss和l1$miss的虚拟地址表中提取发生了预定次数或多于预定次数高速缓存未命中的变量x,并指定变量x在分析目标程序中的位置。
189.接下来,cpu 321提取包括变量x的虚拟地址信息的条目,该条目是在日志获取模式下在处理1434中获取的日志信息422中的提取(l2

l1)或提取(主

l2)之前被记录的。然后,cpu 321根据由包括在所提取的条目中的标识信息指示的事件来指定预提取失败、高速缓存行的替换或无效等作为高速缓存未命中的原因。
190.cpu 321在显示装置314的屏幕上显示变量x在分析目标程序中的位置和所指定的高速缓存未命中的原因作为分析结果。cpu 321还可以在屏幕上显示包括l2$miss和l1$miss的虚拟地址表。
191.用户1401基于所显示的分析结果执行分析目标程序的调整。例如,在高速缓存未命中的原因是高速缓存行的替换的情况下,采取诸如软件预提取的驱逐预防措施。此外,在高速缓存未命中的原因是高速缓存行的无效的情况下,检查并行计算算法或共享存储器使用方法,并且在高速缓存未命中的原因是硬件预提取失败的情况下,插入软件预提取。
192.通过执行这样的调整,可以有效地减少针对变量x的高速缓存未命中发生的次数。代替用户1401,编译器可以执行分析目标程序的调整。
193.注意,在图3的信息处理设备301中,l1高速缓存323和l2高速缓存324也可以存储指令而不是数据。在这种情况下,在l1高速缓存323与l2高速缓存324之间或在l2高速缓存324与存储器单元312之间发送和接收的分组包括事件信息、作为事件的目标的目标指令以及目标指令的物理地址。然后,以与事件的目标是数据的情况类似的方式执行图14的分析处理。
194.图20示出了图1的信息处理设备101的第二硬件配置示例。图20的信息处理设备2001具有其中输入装置2011、介质驱动装置2012和网络连接装置2013被添加至图3的信息处理设备301的配置。这些部件是硬件并通过总线315相互连接。
195.输入装置2011例如是键盘、定点装置等,并且用于输入来自用户的指令或信息。
196.介质驱动装置2012驱动便携式记录介质2014,并访问记录在便携式介质2014中的内容。便携式记录介质2014是存储装置、软盘、光盘、磁光盘等。便携式记录介质2014可以是致密盘只读存储器(cd-rom)、数字多功能盘(dvd)、通用串行总线(usb)存储器等。
197.用户可以将用于处理的程序和数据存储在便携式记录介质2014中,并且将程序和数据加载到存储器单元312中以供使用。用于处理的程序的示例包括分析目标程序和调试器1402。信息处理设备2001可以将用于处理的程序和数据存储在辅助存储装置313中,并且将程序和数据加载到存储器单元312中以供使用。
198.如上所述,存储有用于处理的程序和数据的计算机可读记录介质是物理(非暂态)记录介质,例如存储器单元312、辅助存储装置313或便携式记录介质2014。
199.网络连接装置2013是连接至通信网络例如局域网(lan)和广域网(wan)并且执行与通信有关的数据转换的通信接口电路。信息处理设备2001可以经由网络连接装置2013从外部装置接收用于处理的程序和数据,并且将程序和数据加载到存储器单元312中以供使用。
200.图1的信息处理设备101、图3的信息处理设备301和图20的信息处理设备2001的配置仅是示例,并且可以根据信息处理设备的使用或状况省略或改变一些部件。
201.图4的l2高速缓存324的配置仅是示例,并且可以根据信息处理设备301的使用或状况省略或改变一些部件。图8的表控制单元411的配置仅是示例,并且可以根据信息处理设备301的使用或状况省略或改变一些部件。图10的日志控制单元412的配置仅是示例,并且可以根据信息处理设备301的使用或状况省略或改变一些部件。
202.图2、图16和图18的流程图仅是示例,并且可以根据信息处理设备301的配置或状况省略或改变一些部件。图11和图12的信息处理设备301的操作以及图13和图14的处理仅是示例,并且可以根据信息处理设备301的配置或状况省略或改变一些过程。
203.图5中示出的转换表421仅是示例,并且转换表421根据分析目标程序而改变。图6中示出的虚拟地址和物理地址仅是示例,并且虚拟地址和物理地址根据信息处理设备301的配置或状况而改变。图7和图17中示出的日志信息422仅是示例,并且日志信息422根据分析目标程序而改变。
204.图9中示出的更新信息仅是示例,并且更新信息的格式根据转换表421的格式而改变。图15和图19中示出的虚拟地址表仅是示例,并且虚拟地址表根据分析目标程序而改变。
205.尽管已经详细描述了所公开的实施方式及其优点,但是本领域技术人员将能够在不脱离根据权利要求中明确阐述的实施方式的范围的情况下进行各种修改、添加和省略。
206.本文提供的所有示例和条件语言旨在用于帮助读者理解本发明和发明人对进一步发展本领域所贡献的构思的教示目的,并且不应被解释为受限于这些具体叙述的示例和条件,说明书中这些示例的组织也不涉及本发明的优势和劣势的展示。虽然已经详细描述了本发明的一个或更多个实施方式,但是应当理解,在不脱离本发明的精神和范围的情况下,可以对其进行各种改变、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1