CN108345546B - 用于确定处理器操作的方法及装置 - Google Patents
用于确定处理器操作的方法及装置 Download PDFInfo
- Publication number
- CN108345546B CN108345546B CN201710320972.2A CN201710320972A CN108345546B CN 108345546 B CN108345546 B CN 108345546B CN 201710320972 A CN201710320972 A CN 201710320972A CN 108345546 B CN108345546 B CN 108345546B
- Authority
- CN
- China
- Prior art keywords
- caching
- processor
- object run
- memory
- marked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 328
- 230000008569 process Effects 0.000 claims abstract description 276
- 238000012545 processing Methods 0.000 claims description 80
- 238000003860 storage Methods 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims 1
- 230000006399 behavior Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 238000001514 detection method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 8
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种用于确定处理器操作的方法及装置,所述方法包括:记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息;其中,在目标运行过程之前,处理器的缓存已被处理为满足第一条件,第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存已被处理为满足第二条件,第二条件包括:所述缓存中不存在被标记为改动过的项目;输出所述访存操作信息。利用本发明实施例,能够有效获得在目标运行过程中处理器与存储器之间的访存操作,而且该实现方案简洁高效。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及用于确定处理器操作的方法及装置。
背景技术
由于访存操作是处理器的输入输出操作中重要的部分,因此处理器的访存操作信息对于需要分析处理器行为的很多场景而言是非常重要的。然而,为了提升计算性能,现代处理器大都使用了缓存。
缓存有多种组织形式,缓存层数也不尽相同。即使是同一代产品的不同型号的缓存的具体行为也可能会有所有不同。此外,现代处理器设计也十分复杂,完全复现一个处理器的缓存行为甚至在原理上不可实现。因此,缓存的存在对于获得处理器的访存操作带来了相当大的难度。
发明内容
为解决现有技术中的技术问题,本发明实施例提供了用于确定处理器操作的方法及装置,以能够消除缓存对于记录处理器与存储器之间的访存操作所带来的不确定性。
一方面,本发明实施例提供了一种用于确定处理器操作的方法,所述方法包括:
记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息;其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目;
输出所述访存操作信息。
另一方面,本发明实施例提供了另一种用于确定处理器操作的方法,所述方法包括:
在目标运行过程之前,对处理器的缓存进行处理以使所述缓存满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;
在所述目标运行过程结束时,对所述缓存进行处理以使所述缓存满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目,其中,所述第一条件和所述第二条件使得在所述目标运行过程中处理器与存储器之间的访存操作能够被记录。
另一方面,本发明实施例还提供了另一种用于确定处理器操作的方法,所述方法包括:
获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作;其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目;
根据所述访存操作信息,确定读操作信息,其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容;所述读操作信息用于指示以下操作作为读操作:所记录到的在第1个运行过程至第N-1个运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
另一方面,本发明实施例提供了一种用于确定处理器操作的装置,所述装置包括:
记录单元,用于记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息;其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目;
输出单元,用于输出所述访存操作信息。
另一方面,本发明实施例提供了另一种用于确定处理器操作的装置,所述装置包括:
第一处理单元,用于在目标运行过程之前,对处理器的缓存进行处理以使所述缓存满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;
第二处理单元,用于在所述目标运行过程结束时,对所述缓存进行处理以使所述缓存满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目,其中,所述第一条件和所述第二条件使得在所述目标运行过程中处理器与存储器之间的访存操作能够被记录。
另一方面,本发明实施例还提供了另一种用于确定处理器操作的装置,所述装置包括:
获取单元,用于获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作;其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目;
确定单元,用于根据所述访存操作信息,确定读操作信息,其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容;所述读操作信息用于指示以下操作作为读操作:所记录到的在第1个运行过程至第N-1个运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
另一方面,本发明实施例还提供了一种计算机可读介质,其存储有可执行上述各个实施例的方法的指令。
可见,在本发明实施例中,通过在目标运行过程之前以及在目标运行过程结束时对缓存进行的处理,一方面能够消除在目标运行过程之前处理器在缓存中的访问操作所造成的影响,另一方面能够有效获得在目标运行过程中处理器与存储器之间的访存操作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例用于确定处理器操作的方法的流程示意图;
图2为本发明另一实施例用于确定处理器操作的方法的流程示意图;
图3为本发明又一实施例用于确定处理器操作的方法的流程示意图;
图4为应用本发明实施例的方案的例子的示意图;
图5为本发明实施例用于确定处理器操作的装置的结构示意图;
图6为本发明实施例用于确定处理器操作的装置的结构示意图;
图7为本发明另一实施例用于确定处理器操作的装置的结构示意图;
图8为本发明实施例又一用于确定处理器操作的装置的结构示意图;
图9为本发明实施例另一用于确定处理器操作的装置的结构示意图;
图10为本发明实施例电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前所述,为了提升计算性能,现代处理器通常会使用缓存。那么,在处理器运行过程中,一些内容的访存操作(包含读/写操作)可能是在缓存中执行的,而不会直接从存储器中进行读写。这样,由于缓存的“缓冲作用”,从处理器外部难以观测到处理器对这部分内容的读写操作,从而导致难以有效地获得处理器与存储器之间的访存操作。
本发明实施例提出的用于确定处理器操作的方法及装置,能够有效地消除处理器缓存的“缓冲作用”对于记录处理器的访存操作的影响。
在本发明实施例中,可以记录在目标运行过程中处理器与存储器之间的访存操作,从而生成访存操作信息。在目标运行过程之前,处理器的缓存已经被处理器处理为满足第一条件,第一条件可以包括缓存中不存在被标记为改动过的项目。而在目标运行过程结束时,缓存被处理器处理为满足第二条件,第二条件可以包括缓存中不存在被标记为改动过的项目。
可见,通过在目标运行过程之前对缓存的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响,由此在目标运行过程中至少能够记录到处理器对存储器的部分访存操作,而通过在目标运行过程结束时对缓存的处理,能够捕获到在目标运行过程中处理器在缓存中的写操作(如果在该期间存在写操作的话),也就是处理器与存储器之间的写操作。这样,能够有效地获得在目标运行过程中处理器与存储器之间的访存操作。
可见,利用上述方案,能够有效地消除缓存结构对于记录处理器与存储器之间的访存操作所带来的不确定性,而且无需实现与处理器行为以及内容完全相同的复杂缓存结构,从而使得记录访存操作的实现更为简洁高效。
此外,在现有技术中,为了记录处理器与存储器之间的访存操作,通常还会选择关闭缓存,极大地降低了处理器性能。而利用本发明实施例的方案,无需关闭缓存,在有效记录访存操作的同时,还能够保证处理器的处理性能。
在本发明实施例中,在记录处理器与存储器之间的访存操作时,可以将处理器的实时运行过程划分为一个或多个目标运行过程。例如,可以将处理器从开机到关机的整个运行过程作为一个目标运行过程,也可以将整个运行过程划分为多个目标运行过程。多个目标运行过程可以是连续的,也可以是非连续的。应理解的是,本发明实施例并不限定目标运行过程的数量或长度,以上变化例都应落在本发明的保护范围内。
具体而言,在目标运行过程之前,为了使得缓存中不存在被标记为改动过的项目,处理器可以将缓存中被标记为改动过的项目写回存储器,并且处理器还可以在缓存中将这些被标记为改动过的项目重新标记为未改动过,或者可以在缓存中将这些被标记为改动过的项目标记为无效。至于是将这些项目重新标记为未改动过还是标记为无效,这可以根据不同的缓存实现策略来决定,本发明实施例对此并不限定。可以理解的是,在处理器对缓存进行处理时,可以暂停其它读写操作。可见,通过对缓存进行这样的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响。
在另一实施例中,第一条件还可以包括缓存中不存在有效的内容。这样,在目标运行过程之前,处理器可以将缓存中被标记为改动过的项目写回存储器,并且将缓存中的内容全部标记为无效。可见,这样的处理相当于将缓存完全清空,从而能够完全消除在目标运行过程之前处理器在缓存中读/写操作的影响。这样,能够有效地获得在目标运行过程中处理器与存储器之间的访存操作。
此外,为了使得缓存满足第二条件,在目标运行过程结束时,处理器可以将被标记为改动过的项目写回存储器。此外,处理器还可以在缓存中将这些被标记为改动过的项目重新标记为未改动过,或者可以在缓存中将这些被标记为改动过的项目标记为无效。至于是将这些项目重新标记为未改动过还是标记为无效,这可以根据不同的缓存实现策略来决定,本发明实施例对此并不限定。可见,通过对缓存进行这样的处理,能够至少记录到在目标运行过程中处理器在缓存中的写操作,也就是在目标运行过程中处理器与存储器之间的写操作。
在其它实施例中,第二条件还可以包括缓存中不存在有效的内容。也就是说,在目标运行过程结束时,处理器可以将缓存中被标记为改动过的项目写回存储器,并且将缓存中的内容全部标记为无效。
可以理解的是,在处理器将缓存中被标记为改动过的项目写回存储器时,可以将被标记为改动过的项目一次性地或者逐行地写回存储器。
如上所述,可以根据实际需求以多种不同的方式来划分目标运行过程。对于不同方式划分的目标运行过程而言,缓存的处理方式可以有所不同。下面通过例子来进行说明。
对于某个单独的目标运行过程而言,例如,该目标运行过程可以是从处理器开机到关机的整个运行过程,或者该目标运行过程与其它目标运行过程不连续,在这种情况下,在该目标运行过程之前,处理器可以将缓存处理为不存在有效的内容,也就是说,处理器可以将缓存清空,这样能够消除在目标运行过程之前缓存的影响。这样,在该目标运行过程中,可以至少记录处理器与存储器之间的部分访存操作。而在该目标运行过程结束时,处理器可以将缓存处理为不存在被标记为改动过的项目。具体而言,处理器可以将被标记为改动过的项目写回存储器,并且可以在缓存中将这些改动过的项目重新标记为未改动或者无效,由此能够至少记录到在该目标运行过程中处理器与存储器之间的写操作。这样,能够得到在该目标运行过程中的访存操作信息。
对于多个连续的目标运行过程中的第1个目标运行过程而言,缓存的处理方式可以与上述单独的目标运行过程类似。例如,在第1个运行过程之前,处理器可以将缓存处理为不存在有效的内容。在第1个运行过程结束时,处理器可以将被标记为改动过的项目写回存储器,并且可以在缓存中将这些改动过的项目重新标记为未改动或者无效。
对于多个连续的目标运行过程中除第1个目标运行过程之外的第N个目标运行过程而言(N是大于1的正整数),缓存的处理方式可以根据实际需求来选择。
例如,可以按照与第1个目标运行过程类似的方式来处理第N个目标运行过程。具体而言,在第N个目标运行过程之前,处理器将缓存处理为不存在有效的内容。而在第N个目标运行过程结束时,处理器将缓存处理为不存在被标记为改动过的项目。
在另外的实施例中,在第N个目标运行过程之前,处理器可以将缓存处理为不存在被标记为改动过的项目。此时,缓存中可能还会存在有效的内容。这样,由于缓存中的内容得到了一定的保留,所以对处理器的运行速度影响较小。在第N个目标运行过程结束时,处理器可以再次将缓存处理为不存在被标记为改动过的项目。针对于这种情况,在进行后续的分析时,所记录的第N个目标运行过程中处理器与存储器之间的访存操作信息可以结合第N个目标运行过程之前的各个目标运行过程中的访存操作信息一起使用。关于如何得到第N个目标运行过程中可用的访存操作信息,在下文中将会进行说明。可以,在该实施例中,缓存并不会被完全清空,也就是说,缓存中的内容能够得到一定的保留,从而能够减轻对处理器运行速度的影响。
另外,可以明白的是,对于多个连续的目标运行过程而言,前一个目标运行过程结束时的缓存处理可以理解为紧接着的下一个目标运行过程之前的缓存处理。在这种情况下,第一条件和第二条件是相同的。
在本发明实施例中,上述缓存可以包括第一缓存模块,第一缓存模块可以用于存储数据。在这种情况下,上述的项目可以是数据。例如,上述被标记为改动过的项目可以指脏数据,即在缓存中脏位(dirty bit)为1的数据。那么,在将缓存处理为不存在被标记为改动过的项目的情况下,对于第一缓存模块而言,处理器可以将脏数据写回存储器,另外还可以在第一缓存模块中将脏数据的脏位修改为“0”,或者在第一缓存模块中将脏数据标记为无效。在将缓存处理为不存在有效的内容的情况下,对于第一缓存模块而言,处理器可以将脏数据写回存储器,并且将第一缓存模块中的数据全部标记为无效。
可选地,上述缓存可以包括第二缓存模块,第二缓存模块可以用于存储页表。例如,第二缓存模块可以是翻译后备缓冲器(Translation Lookaside Buffer,TLB)。TLB是页表的缓存,能够改进虚拟地址到物理地址转换速度。在这种情况下,上述的项目可以是页表中的标志位。根据不同的TLB实现策略,这些标志位可能也是不同的。在本发明实施例中,这些标志位可以包括本领域中已知的任何适用的标志位,本发明实施例对此不作限定。
在将缓存处理为不存在被标记为改动过的项目的情况下,对于第二缓存模块而言,处理器可以将第二缓存模块中被改动过的标志位写回存储器,例如,写回存储器的页表中。另外,处理器可以在第二缓存模块中将这些标志位重新标记为未改动过。或者,处理器可以在第二缓存模块中将这些标志位对应的条目标记为无效,此时这些标志位也是无效的。
在将缓存处理为不存在有效的内容的情况下,对于第二缓存模块而言,处理器可以将第二缓存模块中被改动过的标志位写回存储器(例如,写回存储器的页表中),并且可以将第二缓存模块中的页表的全部条目标记为无效。
可以理解的是,本发明实施例中的缓存可以仅包括第一缓存模块,可以仅包括第二缓存模块,或者可以包括第一缓存模块和第二缓存模块二者。本发明实施例对此不作限定。因此,可以理解的是,本发明实施例中所描述的访存操作信息可以包括:处理器对存储器的数据读/写操作信息、和/或处理器对存储器的页表读/写操作信息。
另外,上述访存操作信息可以包括访问地址、访问的内容、访问类型等任何适用的信息。本发明实施例对此不作限定。
从上述可以理解的是,本发明实施例中所记录到的访存操作可能并非是处理器实际执行的所有访存操作。例如,在目标运行过程中,处理器可能会针对同一地址的内容进行多次读和/或写操作。通过本发明实施例,至少可以记录到针对该地址的首次读操作以及最后一次写操作。而本领域技术人员所明白的是,这样的访存操作信息已经足以应用于各种应用场景的分析。
在本发明实施例中,可以由用于实现记录功能的装置(例如,图5中的装置500)来记录在目标运行过程中处理器与存储器之间的访存操作。在一个实施例中,用于实现记录功能的装置可以向处理器通知何时对缓存进行处理。例如,用于实现记录功能的装置可以在目标运行过程之前向处理器发送第一通知消息,第一通知消息可以用于指示处理器对缓存进行处理以使得缓存满足第一条件。此外,用于实现记录功能的装置还可以在目标运行过程结束时向处理器发送第二通知消息,第二通知消息用于指示处理器对缓存进行处理以使得缓存满足第二条件。此外,处理器在对缓存处理之后,可以返回用于指示已完成对缓存的处理的响应。
在其它实施例中,可以在用于实现记录功能的装置和处理器处预先定义目标运行过程的开始和/或结束时间。这样,用于实现记录功能的装置可以不向处理器发送上述通知消息,从而节省开销。
下面将结合各个图来对本发明实施例进行描述。
图1为本发明实施例用于确定处理器操作的方法的流程示意图。如图1所示,该方法包括:
步骤S101,记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息。其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目。
步骤S102,输出所述访存操作信息。
可见,通过在目标运行过程之前对缓存的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响,由此在目标运行过程中至少能够记录到处理器对存储器的部分访存操作,而通过在目标运行过程结束时对缓存的处理,能够捕获到在目标运行过程中处理器在缓存中的写操作(如果在该期间存在写操作的话),也就是处理器与存储器之间的写操作。这样,能够有效地获得在目标运行过程中处理器与存储器之间的访存操作。
在一个实施例中,所述第一条件还包括,上述缓存中不存在有效的内容,也可以理解为,缓存中的所有内容被处理为无效(即不可用)。
在一个实施例中,上述目标运行过程可以是多个连续的运行过程中的第1个运行过程。
在一个实施例中,上述目标运行过程可以是多个连续的运行过程中的第N个运行过程,其中N是大于1的正整数。在该多个连续的运行过程中的第1个运行过程之前,缓存已被所述处理器处理为不存在有效的内容。
在一个实施例中,所述缓存可以包括用于存储数据的第一缓存模块,那么上述步骤中的项目可以包含第一缓存模块中所存储的数据。
在一个实施例中,所述缓存可以包括用于存储页表的第二缓存模块,那么上述步骤中的项目可以包含所述页表的标志位。
在一个实施例中,在所述目标运行过程之前,可以向所述处理器发送第一通知消息,用于指示所述处理器对所述缓存进行处理,以使所述缓存满足所述第一条件。
在一个实施例中,在所述目标运行过程结束时,可以向所述处理器发送第二通知消息,所述第二通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第二条件。
图2为本发明另一实施例用于确定处理器操作的方法。如图2所示,该方法主要包括:
步骤S201,在目标运行过程之前,对处理器的缓存进行处理以使所述缓存满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;
步骤S202,在所述目标运行过程结束时,对所述缓存进行处理以使所述缓存满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目,其中,所述第一条件和所述第二条件使得在所述目标运行过程中处理器与存储器之间的访存操作能够被记录。
可见,通过在目标运行过程之前对缓存的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响,由此在目标运行过程中至少能够记录到处理器对存储器的部分访存操作,而通过在目标运行过程结束时对缓存的处理,能够捕获到在目标运行过程中处理器在缓存中的写操作(如果在该期间存在写操作的话),也就是处理器与存储器之间的写操作。这样,能够有效地获得在目标运行过程中处理器与存储器之间的访存操作。
在一个实施例中,步骤S201中对处理器的缓存进行处理以使所述缓存满足第一条件,可以是将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过;或者,也可以是将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目标记为无效。
在一个实施例中,所述第一条件还包括所述缓存中不存在有效的内容,此时,在步骤S201中,将对处理器的缓存进行处理以使所述缓存满足第一条件时,将所述被标记为改动过的项目写回所述存储器,并将所述缓存中的内容全部标记为无效。
在一个实施例中,上述目标运行过程可以是多个连续的运行过程中的第1个运行过程。
在一个实施例中,上述目标运行过程可以是多个连续的运行过程中的第N个运行过程,其中N是大于1的正整数;其中,在所述多个连续的运行过程中的第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容。
在一个实施例中,为使所述缓存进行处理以使所述缓存满足第二条件,可以选择将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过的方式;或者,也可以选择将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目标记为无效的方式。
在一个实施例中,所述的缓存可以包括第一缓存模块,其用于存储数据,此时,所述的项目中包含该数据。
在一个实施例中,所述的缓存可以包括第二缓存模块,其用于存储页表,此时,所述的项目中包含页表的标志位。
在一个实施例中,本发明实施例提供的上述方法还包括:在所述目标运行过程之前,接收第一通知消息,其中,该第一通知消息用于指示处理所述缓存以使所述缓存满足所述第一条件;和/或,在所述目标运行过程结束时,接收第二通知消息,其中,所述第二通知消息用于指示处理所述缓存以使所述缓存满足所述第二条件。
如上所述,对于多个连续的目标运行过程中除第1个目标运行过程之外的第N个目标运行过程而言(N是大于1的正整数),如果在第N个目标运行过程之前,处理器可以将缓存处理为不存在被标记为改动过的项目。此时,缓存中可能还会存在有效的内容。在第N个目标运行过程结束时,处理器可以再次将缓存处理为不存在被标记为改动过的项目。针对于这种情况,可以结合第N个目标运行过程之前的各个目标运行过程中的访存操作信息来对所记录的第N个目标运行过程中处理器与存储器之间的访存操作信息进行处理,从而得到第N个目标运行过程中可用于各个场景的有效访存信息。下面将结合具体实施例来描述该过程。
图3为本发明实施例提供的另一用于确定处理器操作的方法的流程示意图。如图3所示,该方法主要包括:
步骤S301,获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作。其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目。
步骤S302,根据所述访存操作信息,确定读操作信息。其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存被所述处理器处理为不存在有效的内容;所述读操作信息用于指示以下操作作为读操作:所记录到的在第1运行过程至第N-1运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
可见,通过在目标运行过程之前对缓存的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响,由此在目标运行过程中至少能够记录到处理器对存储器的部分访存操作,而通过在目标运行过程结束时对缓存的处理,能够捕获到在目标运行过程中处理器与存储器之间的写操作。此外,对于多个连续的运行过程中的第N个运行过程而言,通过结合该运行过程之前的各个运行过程中的访存操作信息,能够获得该第N个运行过程中处理器与存储器之间的有效信息,从而可用于需要对处理器操作进行分析的各个场景中。
在该实施例中,由于在该目标运行过程之前,缓存被从上述实施例可以看出,所确定的在目标运行过程中处理器与存储器之间的读操作可以包括:在该目标运行过程之前的各个运行过程中的全部访存操作以及该目标运行过程中的读操作。这些操作的信息可以按照时间顺序排列,从而形成可用于对处理器在该目标运行过程期间的行为进行分析的读操作信息。例如,读操作信息可以是有序列表的形式。
应当理解的是,所记录到的在该目标运行过程中处理器与存储器之间的写操作信息可以被视为可用于对处理器在该目标运行过程中的行为进行分析的写操作信息。
下面将结合具体例子来对本发明实施例进行说明。应当理解的是,该例子仅是为了便于本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
如图4所示,该例子提供了连续的3个目标运行过程(在图4中表示为目标运行过程1-3),也就是3个记录区间,图4中的“缓存处理1”~“缓存处理4”指的是4次处理缓存的操作。
在目标运行过程1之前,处理器可以对缓存进行第一次处理(即,图4中所示的缓存处理1)。具体而言,处理器可以将缓存中被标记为改动过的项目写回存储器,并且将缓存中的内容全部标记为无效。
在目标运行过程1结束时,处理器可以对缓存进行第二次处理(即,图4中所示的缓存处理2)。由于目标运行过程1与目标运行过程2是连续的过程,所以缓存处理2也相当于在目标运行过程2之前的缓存处理。类似地,在目标运行过程2结束时,处理器可以对缓存进行第三次处理(即,图4中所示的缓存处理3)。缓存处理3也相对于目标运行过程3之前的缓存处理。在目标运行过程3结束时,处理器可以对缓存进行第四次处理(即,图4所示的缓存处理4)。
如上所述,缓存处理2至缓存处理4可以采用不同的方式来进行。
方式1:缓存处理2至缓存处理4可以与缓存处理1的方式类似。具体而言,处理器将缓存中被标记为改动过的项目写回存储器,并且将缓存中的内容全部标记为无效。
方式2:对于缓存处理2至缓存处理4中的每一次缓存处理而言,处理器可以将缓存中被标记为改动过的项目写回存储器,并且可以在缓存中将这些被标记为改动过的项目重新标记为未改动过或无效。
在这种情况下,可以结合目标运行过程1中的访存操作信息,来对目标运行过程2和目标运行过程3中的访存操作信息来进行处理,从而得到目标运行过程2和目标运行过程3中的有效访存信息,使得其能够用于诸如分析处理器行为之类的场景中。
如图4所示,假设使用前述实施例所描述的方案来记录到的目标运行过程1中处理器与存储器之间的访存操作信息为(R1,W1),所记录到的目标运行过程2中的访存操作信息为(R2,W2),所记录到的目标运行过程3中的访存操作信息为(R3,W3)。其中,R可以表示读操作,W可以表示写操作。
对于目标运行过程2而言,可以将目标运行过程1中的R1和W1合并作为新的读操作信息R’。然后可以将(R’+R2)作为目标运行过程2中的有效的读操作信息,而可以将W2作为目标运行过程2中的有效的写操作信息。其中,R’+R2可以视为将R’和R2有序地合并,即R’放在R2之前。
对于目标运行过程3而言,可以将(R’+R2)以及W2合并作为新的读操作信息R”。然后可以将(R”+R3)作为目标运行过程3中的有效的读操作信息,而可以将W3作为目标运行过程3中的有效的写操作信息。
通过该方案,能够得到可用于分析处理器的有效访存信息,从而能够应用各个相关场景中。
例如,本发明的各个实施例所描述的方案可以应用于检测处理器安全性的场景中。
硬件安全是软件安全的基石。所有的软件安全实现方法都是基于硬件可信的假设,即硬件应该按照其手册所定义的行为进行工作。目前大多数情况是在设计环节、出厂环节对硬件进行性能检测,由于硬件出厂后是以黑盒子的面目出现在用户的系统中(不像软件木马,其代码是存在于系统中的,可以被读取和分析),硬件的行为是很难监控或感知的。此外,由于难以判断硬件行为的合理性。
对硬件(例如处理器)进行安全性检测可能包括多个方面,而其中一方面包括将处理器的访存操作记录下来,检测装置根据访存操作信息,以符合预定义行为的方式执行目标运行过程中的任务,从而来判断处理器在目标运行过程中是否安全。其中,所述预定义行为是处理器的硬件行为标准。例如,上述用于实现记录功能的装置可以位于该检测装置内,或者可以位于该检测装置之外,但是与该检测装置相耦合。本发明实施例对此不作限定。
例如,检测装置可以从有效访存信息中获取目标运行过程中的首次读操作信息,然后可以将首次读操作信息中的访存数据作为检测装置的输入信息或初始运行状态,使检测装置以符合预定义行为的方式执行目标运行过程中的任务。此外,检测装置可以从访存操作信息中获取目标运行过程中的写操作信息,然后可以基于该写操作信息以符合预定义行为的方式执行目标运行过程中的任务。通过将检测装置执行目标运行过程中的任务的结果与处理器执行的结果进行比较,可以判断处理器在目标运行过程中是否安全。
可以理解的是,对于某个单独的目标运行过程或者多个连续的目标运行过程中的第1个目标运行过程而言,检测装置所使用的有效访存信息可以是上述图1中所描述的记录到的访存操作信息。而对于多个连续的目标运行过程中除第1个目标运行过程之外的其余目标运行过程而言,如果在该目标运行过程之前,处理器并没有使得缓存中的内容全部无效,即,处理器将被标记为改动过的项目写回存储器,并且将被标记为改动过的项目重新标记为未改动过或无效,那么检测装置所使用的有效访存信息可以是如图3或图4中所描述的经过处理得到的有效访存信息。
基于与图1所示用于确定处理器操作的方法相同的发明构思,本发明实施例还提供了一种用于确定处理器操作的装置,具体如下面实施例所述。由于该装置解决问题的原理与图1中的方法相似,因此该装置的实施可以参见图1所示方法的实施,重复之处不再赘述。
如图5所示实线部分,本发明实施例还提供了一种用于确定处理器操作的装置500。例如,装置500可以设置在处理器与存储器之间的访问接口上,这样,装置500可以通过捕获该访问接口上的信号,来获得处理器与存储器之间的访存操作信息。可以理解的是,装置500可以以各种方式来捕获访问接口上的信号,本发明实施例对此不作限定。
装置500主要包括:记录单元51和输出单元52。记录单元51用于记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息。其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目。输出单元52用于输出所述访存操作信息。
在一个实施例中,所述第一条件还包括:所述缓存中不存在有效的内容。
在一个实施例中,所述目标运行过程是多个连续的运行过程中的第1个运行过程。
在一个实施例中,所述目标运行过程是多个连续的运行过程中的第N个运行过程,其中N是大于1的正整数。其中,在所述多个连续的运行过程中的第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容。
在一个实施例中,所述缓存包括第一缓存模块,用于存储数据,此时,所述项目包括所述数据。
在一个实施例中,所述缓存还包括第二缓存模块,用于存储页表,此时,所述项目包括所述页表中的标志位。
在一个实施例中,所述装置500还包括通知单元53,如图6所示。该单元用于在所述目标运行过程之前,向所述处理器发送第一通知消息,所述第一通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第一条件;和/或,该单元用于在所述目标运行过程结束时,向所述处理器发送第二通知消息,所述第二通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第二条件。
可见,通过在目标运行过程之前对缓存的处理,能够至少消除在目标运行过程之前处理器在缓存中的写操作的影响,由此在目标运行过程中至少能够记录到处理器对存储器的部分访存操作,而通过在目标运行过程结束时对缓存的处理,能够捕获到在目标运行过程中处理器在缓存中的写操作(如果在该期间存在写操作的话),也就是处理器与存储器之间的写操作。这样,能够有效地获得在目标运行过程中处理器与存储器之间的访存操作。
基于与图2所示用于确定处理器操作的方法相同的发明构思,本发明实施例还提供了一种用于确定处理器操作的装置,具体如下面实施例所述。由于该装置解决问题的原理与图2中的方法相似,因此该装置的实施可以参见图2所示方法的实施,重复之处不再赘述。
如图7所示实线部分,本发明实施例还提供了另外一种用于确定处理器操作的装置700。例如,装置700的一个例子可以是前述处理器或者前述处理器中的一部分。装置700主要包括第一处理单元71和第二处理单元72。第一处理单元71用于在目标运行过程之前,对处理器的缓存进行处理以使所述缓存满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目。第二处理单元72用于在所述目标运行过程结束时,对所述缓存进行处理以使所述缓存满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目,其中,所述第一条件和所述第二条件使得在所述目标运行过程中处理器与存储器之间的访存操作能够被记录。
在一个实施例中,第一处理单元71可以用于将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过;或者,也可以用于将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目标记为无效。
在一个实施例中,当所述第一条件还包括所述缓存中不存在有效的内容时,第一处理单元71进一步用于将所述被标记为改动过的项目写回所述存储器,并将所述缓存中的内容全部标记为无效。
在一个实施例中,所述目标运行过程是多个连续的运行过程中的第1个运行过程。
在一个实施例中,所述目标运行过程是多个连续的运行过程中的第N个运行过程,其中N是大于1的正整数。其中,在所述多个连续的运行过程中的第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容。
在以上实施例中,第二处理单元72用于将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过;或者,也可以用于将所述被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目标记为无效。
在一个实施例中,所述缓存包括第一缓存模块,该第一缓存模块用于存储数据,此时,所述项目包括所述数据。
在一个实施例中,所述缓存还包括第二缓存模块,该第二缓存模块用于存储页表,此时,所述项目还包括所述页表中的标志位。
在一个实施例中,如图8所示,本发明实施例提供的装置700还包括一通信单元73。该单元用于在所述目标运行过程之前,接收第一通知消息,其中,所述第一通知消息用于指示处理所述缓存以使所述缓存满足所述第一条件;和/或,该单元用于在所述目标运行过程结束时,接收第二通知消息,其中,所述第二通知消息用于指示处理所述缓存以使所述缓存满足所述第二条件。
应当理解的是,虽然在图7和图8中将缓存示为在装置700之外,但是在本发明实施例中,缓存与装置700也可以集成在同一芯片上或者通过不同的芯片来实现。本发明实施例对此不作限定。
基于与图3所示用于确定处理器操作的方法相同的发明构思,本发明实施例还提供了一种用于确定处理器操作的装置,具体如下面实施例所述。由于该装置解决问题的原理与图3中的方法相似,因此该装置的实施可以参见图3所示方法的实施,重复之处不再赘述。
如图9所示实线部分,本发明实施例还提供了另外一种用于确定处理器操作的装置900。例如,装置900与装置500可以被包括在上述的检测装置中。例如,检测装置可以使用可重构处理器来实现。此外,装置900与装置500可以集成在同一个芯片上,或者也可以实现为独立的芯片。此外,检测装置与前述处理器也可以集成在一起或者以分布式的方式进行布置。本发明实施例对此不作限定。
装置900主要包括获取单元91和确定单元92。获取单元91用于获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作。其中,在所述目标运行过程之前,所述处理器的缓存已被所述处理器处理为满足第一条件,所述第一条件包括:所述缓存中不存在被标记为改动过的项目;在所述目标运行过程结束时,所述缓存被所述处理器处理为满足第二条件,所述第二条件包括:所述缓存中不存在被标记为改动过的项目。确定单元92用于根据所述访存操作信息,确定读操作信息,其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容。所述读操作信息用于指示以下操作作为读操作:所记录到的在第1个运行过程至第N-1个运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
本发明实施例还提供了一种电子设备。该电子设备可以是能够实现本发明实施例的方案的任何设备,例如,该电子设备可以是台式计算机、笔记本电脑、移动手机等,本实施例对此不作限定。在本实施例中,该电子设备的各部分结构与图10所示电子设备相同,电子设备中的处理模块101可以实现图1至图3中的至少一个图所描述的功能,重复之处不再赘述。
如图10所示,该电子设备还可以包括:输入单元103、显示单元104和电源105。值得注意的是,该电子设备也并不是必须要包括图10中所示的所有部件。此外,电子设备中还可以包括图10中没有示出的部件,可以参考现有技术。
如图10所示,处理模块101有时也称为控制器或操作控件,其可以使用微处理器或其他处理器装置和/或逻辑装置来实现。该处理模块101接收输入并控制电子设备的各个部件的操作。
其中,存储模块102例如可以包括缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或多种,可存储处理模块101的配置信息或者其执行的指令等信息中的一种或多种。处理模块101可以执行存储模块102存储的程序,以实现信息存储或处理等。在一实施例中,存储模块102中还包括缓冲存储器,即缓冲器,以存储中间信息。
输入单元103例如可以为按键输入装置或触摸输入装置,用于向处理模块101提供输入。显示单元104用于进行图像或文字等显示对象的显示,该显示单元例如可以为LCD显示器,但本发明并不限于此。电源105用于向电子设备提供电力。
本发明实施例还提供一种计算机可读指令,其中在当电子设备中执行所述指令时,其中的程序使得电子设备执行如图1至图3所示的用于确定处理器操作的方法。
本发明实施例还提供了一种计算机可读介质,其存储有可执行上述各个实施例的方法的指令。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
还应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种用于确定处理器操作的方法,其特征在于,所述方法包括:
记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息;其中,在所述目标运行过程之前,所述处理器对所述处理器的缓存执行如下操作以使所述缓存满足第一条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;在所述目标运行过程结束时,所述处理器对所述缓存执行如下操作以使所述缓存满足第二条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;
输出所述访存操作信息。
2.根据权利要求1所述的方法,其特征在于,所述第一条件还包括:所述缓存中不存在有效的内容。
3.根据权利要求2所述的方法,其特征在于,所述目标运行过程是多个连续的运行过程中的第1个运行过程。
4.根据权利要求1所述的方法,其特征在于,所述目标运行过程是多个连续的运行过程中的第N个运行过程,其中N是大于1的正整数;
其中,在所述多个连续的运行过程中的第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述缓存包括第一缓存模块,所述第一缓存模块用于存储数据;所述项目包括所述数据。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述缓存包括第二缓存模块,所述第二缓存模块用于存储页表;所述项目包括所述页表中的标志位。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
在所述目标运行过程之前,向所述处理器发送第一通知消息,所述第一通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第一条件;和/或
在所述目标运行过程结束时,向所述处理器发送第二通知消息,所述第二通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第二条件。
8.一种用于确定处理器操作的方法,其特征在于,所述方法包括:
获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作;其中,在所述目标运行过程之前,所述处理器对所述处理器的缓存执行如下操作以使所述缓存满足第一条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;在所述目标运行过程结束时,所述处理器对所述缓存执行如下操作以使所述缓存满足第二条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;
根据所述访存操作信息,确定读操作信息,其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容;所述读操作信息用于指示以下操作作为读操作:所记录到的在第1个运行过程至第N-1个运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
9.一种用于确定处理器操作的装置,其特征在于,所述装置包括:
记录单元,用于记录在目标运行过程中处理器与存储器之间的访存操作,以生成访存操作信息;其中,在所述目标运行过程之前,所述处理器对所述处理器的缓存执行如下操作以使所述缓存满足第一条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;在所述目标运行过程结束时,所述处理器对所述缓存执行如下操作以使所述缓存满足第二条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动或无效;
输出单元,用于输出所述访存操作信息。
10.根据权利要求9所述的装置,其特征在于,所述第一条件还包括:所述缓存中不存在有效的内容。
11.根据权利要求9或10所述的装置,其特征在于,所述缓存包括第一缓存模块,所述第一缓存模块用于存储数据;所述项目包括所述数据。
12.根据权利要求9或10所述的装置,其特征在于,所述缓存包括第二缓存模块,所述第二缓存模块用于存储页表;所述项目包括所述页表中的标志位。
13.根据权利要求9或10所述的装置,其特征在于,所述装置还包括:
通知单元,用于在所述目标运行过程之前,向所述处理器发送第一通知消息,所述第一通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第一条件;和/或,用于在所述目标运行过程结束时,向所述处理器发送第二通知消息,所述第二通知消息用于指示所述处理器对所述缓存进行处理以使所述缓存满足所述第二条件。
14.一种用于确定处理器操作的装置,其特征在于,所述装置包括:
获取单元,用于获取访存操作信息,所述访存操作信息用于指示所记录到的、在目标运行过程中处理器与存储器之间的访存操作;其中,在所述目标运行过程之前,所述处理器对所述处理器的缓存执行如下操作以使所述缓存满足第一条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;在所述目标运行过程结束时,所述处理器对所述缓存执行如下操作以使所述缓存满足第二条件:将所述缓存中被标记为改动过的项目写回所述存储器,并将所述被标记为改动过的项目重新标记为未改动过或无效;
确定单元,用于根据所述访存操作信息,确定读操作信息,其中,所述目标运行过程是第N个运行过程,第1个运行过程至所述第N个运行过程是连续的,N是大于1的正整数;在所述第1个运行过程之前,所述缓存已被所述处理器处理为不存在有效的内容;所述读操作信息用于指示以下操作作为读操作:所记录到的在第1个运行过程至第N-1个运行过程中所述处理器与所述存储器之间的全部访存操作、以及所记录到的在所述目标运行过程中所述处理器与所述存储器之间的读操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320972.2A CN108345546B (zh) | 2017-05-09 | 2017-05-09 | 用于确定处理器操作的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710320972.2A CN108345546B (zh) | 2017-05-09 | 2017-05-09 | 用于确定处理器操作的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345546A CN108345546A (zh) | 2018-07-31 |
CN108345546B true CN108345546B (zh) | 2019-09-20 |
Family
ID=62962369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710320972.2A Active CN108345546B (zh) | 2017-05-09 | 2017-05-09 | 用于确定处理器操作的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345546B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104603767A (zh) * | 2012-09-07 | 2015-05-06 | 株式会社东芝 | 信息处理设备 |
CN104798032A (zh) * | 2012-09-28 | 2015-07-22 | 英特尔公司 | 用于缩短缓存的清空时间的设备和方法 |
CN105740166A (zh) * | 2014-12-11 | 2016-07-06 | 中兴通讯股份有限公司 | 缓存的读取、读取处理方法及装置 |
CN106201348A (zh) * | 2012-06-20 | 2016-12-07 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN106326143A (zh) * | 2015-06-18 | 2017-01-11 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
-
2017
- 2017-05-09 CN CN201710320972.2A patent/CN108345546B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201348A (zh) * | 2012-06-20 | 2016-12-07 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN104603767A (zh) * | 2012-09-07 | 2015-05-06 | 株式会社东芝 | 信息处理设备 |
CN104798032A (zh) * | 2012-09-28 | 2015-07-22 | 英特尔公司 | 用于缩短缓存的清空时间的设备和方法 |
CN105740166A (zh) * | 2014-12-11 | 2016-07-06 | 中兴通讯股份有限公司 | 缓存的读取、读取处理方法及装置 |
CN106326143A (zh) * | 2015-06-18 | 2017-01-11 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108345546A (zh) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461936B (zh) | 缓存数据的刷盘方法及装置 | |
CN104854568B (zh) | 用于更新远程处理节点中的地址转换数据结构的转换管理指令 | |
US8462369B2 (en) | Hybrid image processing system for a single field of view having a plurality of inspection threads | |
US8675219B2 (en) | High bandwidth image processing with run time library function offload via task distribution to special purpose engines | |
CN107229475B (zh) | 页面显示方法、电子设备及计算机存储介质 | |
CN108132838A (zh) | 一种图数据处理的方法、装置及系统 | |
CA2511395A1 (en) | Real-time inking | |
WO2015006354A1 (en) | Using headerspace analysis to identify flow entry reachability | |
CN109960686A (zh) | 数据库的日志处理方法和装置 | |
TW200923832A (en) | Systems and methods for managing texture descriptors in a shared texture engine | |
CN109902255B (zh) | 页面混合浏览记录生成方法、装置、设备和存储介质 | |
CN107870727A (zh) | 用于存储数据的方法和设备 | |
US8856675B1 (en) | User interface with hierarchical window display | |
CN108959117A (zh) | H2d写操作加速方法、装置、计算机设备及存储介质 | |
US9165603B2 (en) | Method and apparatus for grouping video tracks in a video editing timeline | |
CN107544886A (zh) | 一种模块流程化调度方法及装置 | |
CN106817388A (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的系统 | |
CN103345429B (zh) | 基于片上ram的高并发访存加速方法、加速器及cpu | |
CN103019929A (zh) | 计算机软件分析系统 | |
CN110473113A (zh) | 基于disruptor提高业务系统吞吐量方法、装置及介质、服务器 | |
CN108470008B (zh) | 串口数据读写方法、装置、计算机设备和存储介质 | |
CN108319619A (zh) | 数据处理方法及装置 | |
US20110107256A1 (en) | Zooming Task Management | |
ES2672240T3 (es) | Sistema y procedimiento para recopilación dinámica de datos de gestión de sistema en un entorno informático de ordenador central | |
CN105164636B (zh) | 一种虚拟化环境中的数据通信的方法、装置及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |