CN108369624A - 用于以最小性能降级检测恶意软件的技术 - Google Patents

用于以最小性能降级检测恶意软件的技术 Download PDF

Info

Publication number
CN108369624A
CN108369624A CN201680068821.6A CN201680068821A CN108369624A CN 108369624 A CN108369624 A CN 108369624A CN 201680068821 A CN201680068821 A CN 201680068821A CN 108369624 A CN108369624 A CN 108369624A
Authority
CN
China
Prior art keywords
page
daily record
entry
instruction
malware
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.)
Granted
Application number
CN201680068821.6A
Other languages
English (en)
Other versions
CN108369624B (zh
Inventor
M·勒梅
D·M·德拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN108369624A publication Critical patent/CN108369624A/zh
Application granted granted Critical
Publication of CN108369624B publication Critical patent/CN108369624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

各种实施例通常涉及用于以减轻处理设备的处理和/或存储资源的消耗的方式来检测恶意软件的技术。一种装置可以包括处理设备的第一处理器组件,其用于在被划分成多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由第一处理器组件对多个页中的一个页进行的写入存取;处理设备的图形控制器的取回组件,其用于循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示;以及图形控制器的扫描组件,其用于循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。

Description

用于以最小性能降级检测恶意软件的技术
相关申请的交叉引用
本申请要求于2015年12月24日提交的、先前提交的美国专利申请序列号14/757,945的优先权的权益,该申请的主题通过引用整体并入本文。
背景技术
随着越来越复杂的技术被用来使得恶意软件能够逃避用于检测恶意软件的安全例程进行的检测,检测恶意软件所需的技术必须消耗更多的处理和/或存储资源。因此,处理设备的处理和/或存储资源的越来越大的比例必须转移到检测恶意软件而远离执行最初获取这些处理设备以用于的功能。
通过示例的方式,常见的恶意软件块越来越多地使用包括数据压缩技术的各种字节打包技术,以使安全例程更加难以通过使用已知签名(例如,指令的特定组合,其可能对于恶意软件块是独一无二的)来识别这些恶意软件块。为了利用具有打包的恶意软件块的已知签名,必须首先对这些恶意软件块执行解包,这可能会消耗处理设备的很多可用处理和/或存储资源。
附图说明
图1示出了安全处理系统的示例实施例。
图2A和图2B各自示出了生成并维护至少一个页修改日志的示例实施例。
图3示出了将对已被写入的页的指示组织在至少一个页修改日志中的示例实施例。
图4A、图4B和图4C各自示出了循环存取至少一个页修改日志以识别近期写入的页的示例实施例。
图5示出了对易失性存储装置内的恶意软件进行扫描和响应的示例实施例。
图6图示根据实施例的逻辑流程。
图7示出根据实施例的处理架构。
具体实施方式
各种实施例总体上涉及用于以减轻处理设备的处理和/或存储资源的消耗的方式来检测恶意软件的技术。由于执行指令使得处理设备的主处理器组件写入处理设备的存储装置中的已作为页被分配的部分,所以主处理器组件可以参与页修改日志记录(PML),其中处理器组件可以在一个或多个页修改日志中添加这些页中的哪些页近期被写入的指示。可替代地,当这些页被主处理器组件和/或其他处理器组件写入时,通过其存取这些页的存储控制器可以将这些指示添加到一个或多个页修改日志中。当生成一个或多个页修改日志时,图形控制器的图形处理器组件可以循环存取一个或多个页修改日志以识别页中的近期被写入的页。图形处理器组件然后可以执行对那些近期写入的页的扫描以检测恶意软件。在检测到一个或多个页内的恶意软件时,图形处理器组件可以将其中检测到恶意软件的那些页的指示提供给由处理设备内的主处理器组件和/或另一处理器组件和/或安全服务器的处理器组件执行的安全例程,以使得能够采取进一步的动作。
在各种实施例中,页修改日志的数量可以基于这样的因素而不同:例如,处理器组件的数量、每个处理器组件的核心的数量、每个处理器组件的每个核心所支持的执行线程的数量、虚拟机(VM)是否在处理设备内被实例化、被实例化的VM的数量、操作系统(OS)的数量和/或执行的应用例程等。更具体地,在一些实施例中,可以存在单个页修改日志,而不管可能存在多少个核心、执行线程、VM、OS和/或应用例程。但是,在特定情况下,单个页修改日志的大小可能会增加,或者可以实例化附加的(多个)页修改日志。在其中主处理器组件包含多个核心和/或支持多个执行线程以支持多个VM的其他实施例中,每个核心、每个执行线程、每个VM、每个OS和/或每个应用例程可以有一个页修改日志。
在一些实施例中,主处理器组件的地址转换器可以定义存储装置内的每个页修改日志的位置,并且可以基于由地址转换器执行的虚拟地址到物理地址的转换来生成每个页修改日志内的条目,以支持在最初由虚拟地址指定的地址位置处对页进行写入操作。在主处理器组件支持多个VM的情况下,地址转换器可以为每个VM定义单独的(多个)页修改日志的位置,并且可以基于虚拟地址到物理和/或机器地址的转换在这些页修改日志中的不同的页修改日志内生成条目,以支持在与VM中的不同VM相关联的地址位置处对页进行写入操作。然而,在其他实施例中,耦合到其部分已经作为页被分配的存储装置的存储控制器可以跟踪对其的写入操作,并且可以生成一个或多个页修改日志内的条目。在一些实施例中,存储控制器可以维护单个页修改日志并且可以生成其中的条目,而不管它是主处理器组件、处理设备的另一个处理器组件还是对页执行写入操作的处理设备的另一类型的组件。在其他实施例中,存储控制器可以维护单独的页修改日志,每个页修改日志与不同处理器组件和/或可以对页执行写入操作的处理设备的不同的其他类型的组件相关联。
在一些实施例中,与(多个)页修改日志的条目相关联的存储空间的粒度可以与由地址转换器遍历的(多个)页表的条目相关联的粒度相同。通过示例的方式,在可以选择和/或配置处理设备的架构的各种特征以符合由加利福尼亚州圣克拉拉的Intel公司所颁布的IA-32架构的方面的情况下,每个页的大小可以是四千字节并且页表内和每个页修改日志内的条目可以与单个四千字节页相关联。然而,在其他实施例中,与(多个)页修改日志的条目相关联的存储空间的粒度可以是比与(多个)页表的条目相关联的粒度更精细的粒度。通过示例的方式,在页表内的条目可以与单个四千字节页相关联的情况下,每个页修改日志内的每个条目可以仅与四千字节页的一部分相关联,并且可以选择这种部分的大小以匹配主处理器组件的高速缓存中的高速缓存行内的字节数量(例如,32字节、64字节等)。
在一些实施例中,处理设备可以包含图形控制器,以生成图像以供呈现在与处理设备相关联的显示器上。图形控制器可以包含图形处理器组件以执行复杂的图形操作,包括但不限于对运动视频解压缩和/或解密,从选定视角渲染三维(3D)模型中的对象的二维(2D)图像等。事实上,图形处理器组件能够实现和/或支持图形控制器内的图形管线,其中具有执行并行和/或基于矢量的数学和/或逻辑操作的相当大的能力,使得至少图形处理器组件非常适合执行模式匹配。在这样的实施例中,图形处理器组件可以对存储装置具有存取权并且可以使用该存取权来循环地检查一个或多个页修改日志以识别近期被写入的页(或页的部分)。然后图形处理器组件可以使用签名的恶意软件数据库及其模式匹配能力来针对恶意软件块扫描那些近期写入的页(或页的部分)中的每个。图形处理器组件可以在其没有被图形操作的执行占据的时间段内进行这样的扫描的执行,以至于其实际上不能够执行这样的扫描。因此,这种扫描的执行可能是基于机会的。无论图形处理器组件何时或如何持续地能够执行这样的扫描,图形处理器组件执行这样的扫描而代替使用主处理器组件执行这样的扫描的这种使用可以用于减少处理器组件执行这样的扫描对处理资源的消耗主,并且通过使由不同于主处理器组件的处理器组件执行这样的扫描来提高这种扫描的执行的可信性。
在各种实施例中,一个或多个页修改日志可以用作对一个或多个地址转换和/或页管理监督功能的输入,例如,使得能够监测执行的各种方面和/或用作同步由地址转换器维护的各种页表的内容的触发器。这种(多个)其他功能可以以与图形处理器组件不同的速率消耗包含在一个或多个页修改日志中的信息,并且当以可能剥夺图形处理器组件的写入的页(或页的部分)的指示中的至少一些指示的方式来清零和/或以其他方式修改一个或多个页修改日志中的每个时,这可能导致各种形式的争用。在一些实施例中,可以允许图形处理器组件提供增加一个或多个页修改日志的大小和/或创建并维护附加页修改日志以至少延迟页修改日志的清零的请求。在其他实施例中,图形处理器组件可以在清零一个或多个页修改日志的内容之前创建其副本,并且然后可以检查副本以识别近期已经写入的页(或页的部分)。
无论图形处理器组件可以存取和/或维护对一个或多个页修改日志的内容的存取的确切方式如何,一旦在近期写入的页(或者页的部分)的扫描之一中检测到恶意软件块,图形处理器组件可以采取各种动作中的任一种来至少减轻存在该恶意软件的后果。在一些实施例中,图形处理器组件可以向由主处理器组件执行的安全例程提供指示,以使得能够采取动作来消除和/或以其他方式挫败该恶意软件可能采取的无论何种恶意动作。在存在VM的情况下,该安全例程可以由主处理器组件在VM中的一个VM内的客体OS提供的操作环境内执行。
在其他实施例中,处理设备可以包括控制器,该控制器包含单独的控制器处理器组件以执行另一安全例程,并且图形处理器组件可以向控制器处理器组件提供已检测到恶意软件的指示,以使得控制器处理器组件能够采取动作以至少减轻存在恶意软件的后果。可能图形处理器组件已经基于其中检测到恶意软件的页表(或页表的部分)的地址确定主机OS和/或客体OS的完整性被充分地损坏以至于没有任何由主处理器组件执行的安全例程能够充分解决这种情况。因此,控制器处理器组件所采取的动作可以包括引起处理设备的重新初始化,从而使得清空存储装置以努力清除恶意软件,操作处理设备的网络接口以将处理设备从网络断开连接来防止恶意软件扩散到其他处理设备,和/或操作网络接口以将对检测到恶意软件的指示发送到安全服务器以使得安全服务器能够采取动作。安全服务器的这种动作可以是发信号通知路由器和/或其他网络设备以将处理设备从网络断开连接,和/或发信号通知耦合到网络的其他处理设备以停止与处理设备的所有通信。
通常参考本文中使用的符号和术语,可以根据在计算机或计算机网络上执行的程序过程来呈现下面的详细描述的部分。本领域技术人员使用这些过程化描述和表示来将他们工作的实质最有效地传达给本领域其他技术人员。过程在这里通常被认为是产生期望的结果的自一致的操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,但不一定,这些量采用能够被存储、传输、组合、比较和以其他方式操纵的电、磁或光信号的形式。主要出于常见用法的原因,有时将这些信号称为位、值、元素、符号、字符、术语、数字等证明是方便的。但是,应该注意,所有这些术语和类似术语都与适当的物理量相关联,并且仅仅是适用于这些量的方便标签。
此外,这些操纵经常以诸如添加或比较之类的术语来引用,其通常与由人类操作员执行的心理操作相关联。然而,在形成一个或多个实施例的一部分的本文描述操作中的任何操作中,人类操作员的这种能力不是必需的,或者在大多数情况下不是期望的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括通用数字计算机(其被存储在其内的根据本文的教导编写的计算机程序选择性地激活或配置),和/或包括专门为所需目的构造的装置。各种实施例还涉及用于执行这些操作的装置或系统。这些装置可以为了所需目的而专门构造,或者可以包括通用计算机。从所给出的描述中可以看出各种这些机器所需的结构。
现在参考附图,其中相同的附图标记始终用于指代相同的元件。在下面的描述中,为了解释的目的,阐述了许多具体细节以便提供对其的透彻理解。然而,可能显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其他情况下,以框图形式示出公知的结构和设备以便于对其进行描述。目的是覆盖权利要求范围内的所有修改、等同物和替代方案。
图1示出了包含安全服务器100和/或处理设备500的安全处理系统1000的实施例的框图。安全服务器100和处理设备500可以交换与扫描和/或检测处理设备500内的恶意软件相关联的数据。如将更详细地解释的,以使得在执行其他功能时采用的处理和/或存储资源的消耗最小化的方式在处理设备500内循环地执行对恶意软件的扫描,并且至少这些扫描的结果的指示可以由处理设备500发送到安全服务器100,以至少使得安全服务器100能够确定将采取何种动作来做出响应。然而,这些设备中的一个或两个可以经由网络999与彼此和/或与其他设备(未示出)交换与扫描和/或检测恶意软件完全无关的其他数据。
在各种实施例中,网络999可以是可能限于在单个建筑物或其他相对有限的区域内延伸的单个网络、可能延伸相当大距离的连接网络的组合,和/或可以包括互联网。因此,网络999可以基于通过其可以交换信号的各种通信技术(或其组合)中的任一种,包括但不限于采用电和/或光导电缆的有线技术以及采用红外、射频或其他形式的无线传输的无线技术。
在各种实施例中,安全服务器100可以包含处理器组件150、存储装置160和/或将安全服务器100耦合到网络999的网络接口190。存储装置160可以存储安全例程140和/或恶意软件数据库130。安全例程140可以包含在处理器组件150上可操作的指令序列,以实现执行各种功能的逻辑。如将更详细解释的,至少执行安全例程140可以使得处理器组件150至少接收在处理设备500内是否已经检测到恶意软件的指示。响应于接收到已经检测到恶意软件的指示,处理器组件150可以采取多种动作中的任何一种,包括但不限于向耦合到网络999的一个或多个其他设备(未示出)发送命令,以避免与处理设备500通信和/或采取动作以将处理设备500从网络999断开连接。
在一些实施例中,这种已经检测到恶意软件的指示可以包括已经如此检测到的恶意软件的至少一部分的副本。在这样的实施例中,恶意软件数据库130可以由已知恶意软件块的若干签名(例如,已知存在于已知恶意软件块中的可执行指令集)构成。执行安全例程140可以使得处理器组件150将在处理设备500内检测到的恶意软件的接收到的内容与恶意软件数据库130中的已知恶意软件块的签名进行比较,以识别恶意软件。可替代地或另外地,接收到的已经检测到恶意软件的指示可以包括恶意软件的标识符。恶意软件数据库130可以可替代地或另外包括对各种已知恶意软件块的威胁等级的评估,并且处理器组件150可以参考恶意软件数据库130来确定已经检测到的该特定恶意软件的威胁等级,以及可以基于该威胁等级确定采取何种动作。
在各种实施例中,处理设备500可以包含处理器组件550、存储装置560、手动可操作控件520、显示器580和/或将处理设备500耦合到网络999的网络接口590。处理器组件550可以包含高速缓存554、一个或多个处理器核心555和/或地址转换器556。存储装置560可以包含易失性存储装置561、非易失性存储装置562和/或存储控制器565a-b。处理设备500还可以包含控制器400,控制器400可以包含处理器组件450和/或存储装置460。处理设备500还可以包含图形控制器800,该图形控制器800可以包含处理器组件850和/或存储装置860。
易失性存储装置561可以由一个或多个易失性的存储装置构成,因为它们需要持续提供电力来保持存储在其中的信息。易失性存储装置561的(多个)存储设备的操作可以由存储控制器565a来控制,存储控制器565a可以接收来自处理器组件550和/或处理设备500的其他组件的命令以将信息存储在其中和/或取回其中的信息,并且可以将这些命令在接收这些命令所借助的总线协议和/或定时与易失性存储装置561的(多个)存储设备耦合到存储控制器565a所借助的其他总线协议和/或定时之间变换。通过示例的方式,易失性存储装置561的一个或多个存储设备可以由经由接口耦合到存储控制器565a的动态随机存取存储器(DRAM)设备构成,其中行地址和列地址连同字节使能信号用于选择存储位置,同时由存储控制器565a接收的命令可以沿着一对或多对数字串行传输线传送到其上。
非易失性存储装置562可以由一个或多个非易失性的存储设备构成,因为它们能够保持存储在其中的信息而不需要持续提供电力。非易失性存储设备562的(多个)存储设备的操作可以由存储控制器565b控制,存储控制器565b可以接收来自处理器组件550和/或处理设备500的其他组件的命令以将信息存储在其中和/或取回其中的信息,并且可以将这些命令在接收这些命令所借助的总线协议和/或定时与非易失性存储装置562的(多个)存储设备耦合到存储控制器565b所借助的其他总线协议和/或定时之间变换。通过示例的方式,非易失性存储设备562的一个或多个存储设备可以由基于铁磁磁盘的驱动器(硬盘驱动器)构成,该驱动器经由数字串行接口耦合到存储控制器565b,其中每个这样的存储设备内的存储空间的部分通过轨道和扇区来寻址。相反,由存储控制器565b接收的命令可以沿传送读取和写入命令的一对或多对数字串行传输线传送到其上,其中每个这样的存储设备内的存储空间的那些相同部分通过块编号来寻址。
易失性存储装置561可以存储恶意软件数据库530的一个或多个实例、安全例程540的一个或多个实例、主机操作系统(OS)640、一个或多个客体操作系统740和/或一个或多个应用例程770。当处理器组件550执行主机OS 640和/或(多个)客体OS 740的指令以提供其中可以执行一个或多个应用例程770的一个或多个操作环境时,处理器组件550、主机OS 640和/或(多个)客体OS 740可以协作以将易失性存储装置561内的存储空间划分为多个页并提供虚拟寻址。如虚拟寻址领域的技术人员所熟悉的,基于哪些包含数据部分和/或可执行例程部分的页更近期被存取,包含数据部分和/或可执行例程部分的页可以在易失性存储装置内的存储空间与在非易失性存储装置562内维护的交换数据533之间交换。作为提供这种支持的一部分,处理器组件550可以生成并维护易失性存储装置561的一部分内的一个或多个页表536以用于在虚拟地址与物理地址之间进行变换,和/或生成并维护易失性存储装置561的一部分内的一个或多个页修改日志535以用于跟踪对当前在易失性存储装置561内的页的近期存取。虽然为了避免视觉混乱而没有具体示出,但是主机OS 640、(多个)客体OS 740和/或(多个)应用例程770中的每个的副本还可以与交换数据533一起存储在非易失性存储装置562内,以准备至少在处理设备500的初始化期间被加载到易失性存储装置561中。
处理器组件550包含至少一个处理器核心555以在至少一个执行线程中执行可执行例程的指令。然而,处理器组件550可以包含多于一个处理器核心555和/或可以采用其他处理架构技术来支持多个执行线程,通过该多个执行线程可以并行执行多于一个可执行例程的指令。高速缓存554可以是多层高速缓存集合,其可以包括用于每个处理器核心555的单独的第一级(L1)高速缓存和/或用于处理器核心555中的多个的更大的第二级(L2)高速缓存。地址转换器556可以为使用虚拟寻址提供支持,并且因此,其可以是采用一个或多个页表536用于在虚拟地址与物理地址之间进行转换的地址转换器556。在这样做时,其也可以是生成一个或多个页修改日志535内的条目作为跟踪对当前在易失性存储装置561内的页的近期存取的一部分的地址转换器556。
图2A更详细地示出了其中没有提供VM并且仅执行单个OS的(多个)页表536和/或(多个)页修改日志535的使用的示例。在各种实施例中,并且如所描绘的,主机OS 640和地址转换器556可以以各种方式协作以生成一个或多个页表536和/或一个或多个页修改日志535。更具体地,在一些实施例中,主机OS 640可以在易失性存储装置561内生成页表536中的一个或多个,并且然后可以经由所描绘的并入地址转换器556的一个或多个寄存器558或通过与地址转换器556通信的另一机制将一个或多个页表536的(多个)基地址提供给地址转换器556。可替代地,在其他实施例中,主机OS 640可以请求地址转换器556自身生成一个或多个页表536。这种机制之一也可以用于生成一个或多个页修改日志535。
如使用页表执行地址转换领域的技术人员所熟悉的,一个或多个页表536中的每个可以以各种方式中的任何一种来结构化,以使得地址转换能够相对高效地执行。通过示例的方式,在相对简单的实现方式中,可能存在由条目构成的单个页表,每个条目页的虚拟地址与对应的物理地址关联,并且虚拟地址可以在其中排序以适应可以用于定位正确的条目的无论何种机制。实现这样的单页表可能需要采用虚拟地址的位中的至少一部分位作为对单页表内可以存储对应物理地址的条目的索引。然而,通过另一示例的方式,在更复杂的实现方式中,通常被称为“页表”的每一个实际上可以由更小页表的树构成,其中树的结构具有从较少数量的此类较小表到较大数量的此类较小表的多层分支。构成虚拟地址的位可以被划分成位子集,每个位子集可以用作在不同分支层处的此类较小表的索引。在转换虚拟地址时,地址转换器556可以在该树状结构的底部开始,并且可以使用虚拟地址的位子集中的每个(从包括使用的最高有效位的子集开始)顺序地确定通过树状结构中的每个连续分支的路径的每个部分,以在可以找到对应物理地址的分支的端点处到达较小表中的一个较小表内的条目。这可以称为“遍历”通过这样的页表。
如所描绘的,在主机OS 640与处理器组件550协作以采用虚拟寻址的情况下,在由主机OS 640提供的操作环境内执行的应用例程770(或主机OS 640自身)可以执行到易失性存储装置561内的页内的存储位置(例如,字节、字、双字、四字等的位置)的读取或写入存取,同时用虚拟地址来引用该存储位置。该虚拟地址可以被提供给地址转换器556,该地址转换器556可以遍历(多个)页表536以到达将该虚拟地址与对应的物理地址进行关联的条目。如同样描绘的,每个这样的条目可以包括可以被置位和/或复位以提供对每个页的状态的各种指示的一个或多个标志位。在这些标志位中可以存在“脏”位,其提供对自上次与该页如此关联的该标志位被清零时起易失性存储装置561内的对应页内的至少一个字节的存储空间已经被写入的指示。因此,在定位该条目时,可以对该条目的标志位中的脏位进行置位,以指示如果由该应用例程770(或者由主机OS 640本身)进行的存取是写入存取则该页的至少一个字节已经被写入。
如另外描绘的,页修改日志535中的每个可以由其中可以存储页的一系列物理地址(或其他标识符)的多个条目构成。在一些实施例中,由于至少一个字节被写入页,可以将条目添加到页修改日志535,使得条目的存在指示进行了写入存取。在其他实施例中,还可以在页修改日志535内生成条目以记录影响页的一个或多个其他事件,而不是向其写入了至少一个字节。为了在这样的其他实施例中提供导致在(多个)页修改日志535中生成每个条目的事件类型的指示,(多个)页修改日志535的每个条目可以包括可能与(多个)页表536的上述条目内的标志位类似的标志位,包括对应的脏位。在(多个)页修改日志535内生成条目可以由于使用(多个)页表536来转换用于对页进行写入存取的地址而引起和/或以其他方式与使用(多个)页表536来转换用于对页进行写入存取的地址相关联。因此,如果应用例程770(或主机OS 640自身)对页内的至少一个字节执行写入存取,则除了对针对该页的页表536内的脏位进行置位以指示该页已经被写入之外,地址转换器556还可以在页修改日志535内生成条目,其中地址转换器556将脏位置位以指示写入操作导致生成该条目。
如进一步描绘的,以及如本领域技术人员所熟悉的,地址转换器556可以包括一个或多个转换后备缓冲器(TLB)557,其存储用于有限数量的最近期存取页的与(多个)页表536的条目类似的条目。由于并入地址转换器556中,对一个或多个TLB 557的存取可以比对易失性存储装置561内的一个或多个页表536的存取显著更快地完成。因此,一个或多个TLB557可以充当用于一个或多个页表536的高速缓存以加速将虚拟地址转换成与更近期存取的页相关联的物理地址的过程。
回到图1,在一些实施例中,主机OS 640可以包含用于实现处理设备500内的虚拟机(VM)的例程,并且(多个)客体OS 740(和/或单个客体OS 740的多个实例)中的任何一个可以在这些VM中的每一个内执行。在这样的实施例中,主机OS 640可以被称为虚拟机管理器(VMM)。在这些VM中的每一个内,可以在通过客体OS 740在该VM内的执行提供的操作环境中执行一个或多个应用例程770。如本领域技术人员所熟悉的,在处理设备500内提供VM可能需要提供两层地址转换,其中可以存在针对在每个VM内执行的每个应用770(和/或客体OS 740)的在虚拟地址与物理地址之间的单独转换,以及在针对VM中的每个VM的物理地址与表示构成易失性存储装置561的存储位置的实际地址的机器地址之间的转换。这种情况源于以下事实:在VM中的一个VM内执行的每个客体OS 740可能不知道每个VM内的物理地址空间本身是处理设备500的硬件组件的实际地址空间(包括构成易失性存储装置561的存储位置)的虚拟化。
图2B更详细地示出了在提供VM以支持多个客体OS 740和/或单个客体OS 740的多个实例的执行的这种双层配置中使用页表536和/或(多个)页修改日志535的示例。在各种实施例中,并且如所描绘的,除了主机OS640之外,各自在单独的VM内执行的多个客体OS740和/或各自在单独的VM内执行的单个OS 740的多个实例可以以各种方式与地址转换器556协作以生成一组嵌套的页表536和/或一个或多个页修改日志535。
更具体地,在一些实施例中,为了提供一层转换,客体OS 740中的每个和/或单个客体OS 740的每个实例可以在易失性存储装置561内生成一个或多个页表536,并且然后可以经由所描绘的并入地址转换器556中的一个或多个寄存器558或通过与地址转换器556通信的另一种机制将各自创建的一个或多个页表536的(多个)基址提供给地址转换器556。如所描绘的,每个这样的客体OS 740和/或单个客体OS 740的每个这样的实例可以针对每个应用例程770和/或在其环境内执行的单个应用例程770的每个实例生成单独的页表536。这样创建的这些页表536中的每个可以实现由应用例程770(和/或由客体OS 740)采用的虚拟地址到与在相关联的VM内创建的物理地址空间相关联的物理地址的转换,作为虚拟化处理设备500的硬件组件的一部分。
再次,在每个VM内创建的物理地址空间的至少一部分本身可以是与用于每个VM的处理设备500的硬件组件的实际地址不同的虚拟地址空间。因此,要求从每个VM内创建的各种物理地址空间到由处理设备500的硬件组件占用的实际地址构成的单个机器地址空间的另一层地址转换。因此,在一些实施例中,为了提供另一层转换,主机OS 640可以在易失性存储装置561内生成一个或多个附加页表536,并且然后可以经由所描绘的并入地址转换器556中的一个或多个寄存器558或者通过与地址转换器556通信的另一种机制将一个或多个附加页表536的(多个)基地址提供给地址转换器556。可替代地,在其他实施例中,主机OS640本身可以请求地址转换器556生成一个或多个页表536。再次,这样的机制之一也可以用于生成一个或多个页修改日志535。
如所描绘的,页表536的某种树形布置可以导致其中将针对每个应用例程770(和/或针对每个客体OS 740)所关联的虚拟地址被转换为的物理地址然后被路由到这些物理地址被转换为机器地址的一个或多个页表536。因此,在于特定VM内执行的特定应用例程770(或客体OS 740)基于该VM内的虚拟地址空间采用虚拟地址进行读取或写入存取的情况下,地址转换器556可以使用与该VM内的该应用例程770相关联的页表536来将该虚拟地址转换成与该相同VM相关联的物理地址。然后,地址转换器556可以使用与主机OS 640协作生成的附加页表536来将与该VM相关联的物理地址转换成机器地址。这样做时,如果存取是写入存取,则地址转换器556可以对从其获得机器地址的条目内的脏位置位以指示页已被写入。此外,如所描绘的,一个或多个页修改日志535可以与在将该VM的物理地址转换为机器地址时采用的(多个)附加页表536相关联。因此,如果存取是写入存取,则除了对这样的页表536的条目内的脏位置位之外,地址转换器556还可以在页修改日志535内生成条目并且可以在其中置位对应的脏位。
应该注意,尽管(多个)页修改日志535的条目可以提供对于在(多个)页表536的条目中提供的信息而言冗余的信息,但是(多个)页修改日志535中的条目的组织本质上可以是按时间顺序的,与(多个)页表536内的条目不同。换言之,不同于(多个)页表536,(多个)页修改日志535内的条目的顺序结合每个条目内所包括的标志位可以提供对影响易失性存储装置561内的页的事件(包括写入存取)发生的顺序的指示。然而,还应该注意,虽然对(多个)页修改日志535的具体描述和讨论由包含与以相似的方式组织在每个条目内的、(多个)页表536的条目内包含的信息类似的信息的条目构成,但是其他实施例是可能的,其中(多个)页修改日志535可以使用完全不同的数据结构来以完全不同的方式组织和/或表示类似的信息。
通过示例的方式,在其他实施例中,(多个)页修改日志535可以各自由位字段构成,其中表示已经被写入的页的位的组合通过使用并入处理器组件550和/或处理设备的另一组件(例如,存储控制器565a)的地址转换器556中的布隆过滤器来设置。布隆过滤器的这种使用可以为(多个)页修改日志535中传达的信息提供一定程度的安全性,因为处理设备500内的任何组件或例程将需要设置有与如何解释位字段内的位设置的可能组合有关的信息。作为在(多个)页修改日志535中的每个内使用单个位字段的替代方案,并且如图3所描绘的,(多个)页修改日志中的每个可以由按时间顺序生成的多个条目构成,其中每个条目由位字段构成,其中表示在由该条目表示的一段时间内已经被写入的页的位的组合通过使用布隆过滤器来设置。以这种方式,(多个)页修改日志535能够以同样传达时间顺序的方式安全地提供对已经被写入的页的指示。
回到图1,随着处理器组件550执行主机OS 640和/或(多个)客体OS 740以提供其中处理器组件550执行一个或多个应用例程770的一个或多个操作环境,执行安全例程840可以使得图形控制器800的处理器组件850循环地扫描易失性存储装置561内的近期被写入的页。在一些实施例中,处理器组件850可将此类扫描的执行限于以下时间:当图形控制器800尚未参与执行需要大量处理和/或存储资源的诸如视频回放、三维(3D)渲染和/或图形相关功能之类的图形操作时。在其他实施例中,此类扫描的执行可以在图形控制器800内被赋予充足的优先权,使得即使在这样的图形相关功能也被执行时,某些量的处理和/或存储资源仍然被分配给扫描。为了识别易失性存储装置561内的近期被写入的页,处理器组件850可以循环地存取一个或多个页修改日志535,并且由此可以利用可以在其中提供的任何时间顺序的表示来识别对页的近期写入。
应该注意,尽管对(多个)页表536和(多个)页修改日志535两者的描述和讨论具有各自与单个页相关联的条目,使得两者中的每个条目与易失性存储装置561内的相同量的存储空间相关联,但是其中(多个)页表536和(多个)页修改日志535内的条目与不同量的这种存储空间相关联的其他实施例是可能的。更具体地,在一些实施例中,易失性存储装置561内的每个页可以被划分成多个较小的存储空间块,并且这些块的大小可以被选择为等于存储在处理器组件550的高速缓存554中的每个高速缓存行内的数据量。可替代地或另外,在其它实施例中,易失性存储装置561内的每个页可以被划分成多个较小的存储空间块,并且这些块的大小可以被选择为等于存储在一个或多个子页表的每个子页内的数据量,该一个或多个子页表在处理器组件550内维护或由易失性存储装置561内的处理器组件550维护。这样的子页表可以由针对每个子页的条目构成,并且在每个这样的条目内可以存在控制允许对每个子页进行的存取的类型的位和/或提供对影响每个子页的近期事件的指示的位,例如,指示近期的写入存取的脏位。因此,无论这样的块的确切大小如何,当(多个)页表536的每个条目对应于易失性存储装置561内的完整页时,(多个)页修改日志535的每个条目可以对应于构成这些页之一的这样的块中的一个块。因此,在这样的实施例中,(多个)页修改日志535可以提供这样的事件的时间顺序,如以比(多个)页表536更精细的粒度对易失性存储装置561内的存储位置的写入存取。这可以使得处理器组件850以对应的更精细的粒度指导其对易失性存储装置561内的恶意软件的扫描,这可以减少执行的不必要扫描的量。
图4A、图4B和图4C各自描绘了对(多个)页修改日志535进行的这种循环存取的示例实施例的方面。图4A描绘了对由地址转换器556维护的(多个)页修改日志535进行的循环存取,其中处理器组件550执行主机OS 640并且在VM内没有(多个)客体OS 740,图4B描绘了对由地址转换器556生成并维护的(多个)页修改日志535进行的循环存取,其中处理器组件550执行多个VM中的多个客体OS 740,并且图4C描绘了对由存储控制器565a生成并维护的(多个)页修改日志535进行的循环存取。
转到图4A,主机OS 640可以由处理器组件550执行以提供用于执行应用例程770中的一个或多个而不使用VM的单个操作环境。如已经讨论的,在其中不使用VM的一些实施例中,可以仅生成并维护页表536中的单个页表536,并且因此,可以生成并维护单个页修改日志535,如用实线描绘的。在这样的实施例中,执行安全例程840可以使得图形控制器800的处理器组件850循环地存取该单个页修改日志535以从中取回对易失性存储装置561内的哪些页近期被写入的指示。如将更详细解释的,处理器组件850然后可以使用这些指示来对那些近期写入的页执行扫描以尝试检测其中的恶意软件。
如较早提及的,(多个)页修改日志535的内容可以被循环地清零。由于页修改日志535作为循环或环形缓冲器操作,其中最旧的条目被替换为下一个最新的条目,所以这种清零可能发生。可替代地或另外,每个页修改日志535的这种清零可以与清零每个页修改日志535所关联的(多个)页表中的标志位一起发生。在一些实施例中,对标志位和/或(多个)页表536的这种清零可以以通常被称为历元(epoch)的定期重复的时间间隔发生。这可以完成以确保由(多个)页表536的条目内的标志位传达的信息不会变得过时和/或以其他方式失去其有用性,因为随着时间的推移最终易失性存储装置561内的所有页都可以被写入。关于(多个)页修改日志535,可能自从清零页修改日志535的最后时机以来,对于在清零该页修改日志535之间在该页修改日志535表示的时间段期间写入的每个页,在该页修改日志内可以仅生成一个条目。对于每个页,该一个条目可以仅在被写入该页的第一时机生成,并且之后不再可以在该页修改日志535内生成针对该页的另外的条目,而不管在该页修改日志535接下来被清零之前的时间内该同一页被写入多少次。因此,对页修改日志535的这种定期清零还可以用于确保其中传达的信息也不会过时。可替代地或另外,在(多个)页修改日志535具有固定大小以使得每个页修改日志内只能生成有限数量的条目的情况下,对(多个)页修改日志535的这种清零可以响应于已经完全填满条目而进行。
应该注意的是,作为以定期时间间隔(例如,历元)和/或响应于已经达到的条目的容量限制发生的这种清零的替代或者除此之外,至少对页修改日志535的这样的清零可以通过处理器组件850向地址转换器556的一个或多个寄存器558写入(或以其他方式发信号通知地址转换器556)来触发,以使地址转换器556至少清零页修改日志535。处理器组件850可以基于相对短的时间间隔(例如,比可以与(多个)页表536一起采用的循环历元时间段更短)来循环地这样做,以使得能够更容易检测到对易失性存储装置561内的特定页的更频繁的写入存取,以对应地导致对这些页的更频繁的扫描发生。
不幸的是,尽管循环地清零页修改日志535可以减少其中包含的信息的过时和/或为新条目清零其中的空间,但是其也可能导致其中条目中包含的、处理器组件850尚未取回的信息丢失。可能有这样的情况,其中处理器组件850的处理资源在执行与图形相关的功能中被如此充分利用以至于处理器组件850不能跟上在页修改日志535内生成新条目。因此,由于在处理器组件850能够取回那些信息和/或对这些条目中引用的页执行扫描之前被清零,所以在页修改日志535内生成的条目内的信息可能丢失。
在一些实施例中,处理器组件850可以监测页修改日志535已满的程度,并且可以通过写入寄存器558中的一个或多个(或以其他方式发信号通知地址转换器556)以在变得已满触发对该页修改日志535的清零的事实之前增加页修改日志535的大小(如用虚线和虚线箭头指示的)来对页修改日志535已满(或接近变满)的实例做出响应。可替代地或另外,处理器组件850可以如此向地址转换器556发信号以生成一个或多个附加页修改日志535(用虚线指示),从而创建地址转换器556和处理器组件850可以以轮换(例如,“往返”)方式存取以相应地填充信息和从中取回信息的一组页修改日志535。在这样的布置中,地址转换器556从用条目填充这样的集合中的一个页修改日志535切换到开始填充该集合中的另一个页修改日志535的每个时机可以以类似于清零单个页修改日志535的方式起作用,因为在针对该集合中的前一页修改日志535中的相同页生成条目之后,可以在该集合中的下一页修改日志535内生成针对写入的页的新条目。作为解决对单个页修改日志535的循环清零的另一种替代方案,处理器组件850可以在每次清零单个页修改日志535之前循环地缓冲填满存储装置860内(和/或处理器组件850有权存取的存储装置560的一部分内)的该单个页修改日志535的条目。
应该注意的是,尽管主机OS 640可以是由处理器组件550执行的唯一OS,但是作为执行主机OS 640的一部分使用多于一个处理器核心555和/或多个执行线程以及由主机OS640提供的操作环境中的应用例程770中的任一个可能导致地址转换器556生成和/或维护多于一个页修改日志535,其中每个这样的页修改日志535与处理器核心555中的不同的一个和/或执行线程中的不同的一个相关联。在如此提供这样的多个页修改日志535的情况下,图形控制器800的处理器组件850可以在循环的基础上存取这些页修改日志535中的每一个,以从每个页修改日志中取回对近期写入的页的指示。
转到图4B,多个客体OS 740和/或单个客体OS 740的多个实例可以由处理器组件550在通过主机OS 640的执行生成的单独的VM(参考图2B)内执行,以提供多个单独的操作环境以用于在VM中的每个VM内执行一个或多个应用例程770。如已经讨论的,在其中使用VM的一些实施例中,可以针对每个VM和/或针对在每个VM内执行的每个应用例程770生成并维护单独的页表536。因此,如也已经讨论的那样,可以针对每个VM和/或在每个VM内执行的每个应用例程770生成并维护单独的页修改日志535。与上述使用多个处理器核心555和/或多个执行线程导致提供各自与这些处理器核心555中的一个和/或这些线程中的一个相关联的多个页修改日志535的上述情况不同,执行安全例程840可以使得处理器组件850循环地存取这些页修改日志535中的每个以从其取回对易失性存储装置561内的哪些页近期被写入的指示。
如VM支持领域的技术人员所熟悉的,在一些实施例中,主机OS 640(以其作为VMM的角色)的VM监视组件(未具体描绘)可能需要循环存取页表536和/或页修改日志535的内容以支持针对每个VM提供地址转换功能。在这样的实施例中,不仅在生成页表536中,而且通过地址转换器556维护页表536以及相应地维护页修改日志535的方式,主机OS 640可以被赋予排他性的控制权。因此,这样的VM监视组件可以以选择用于增强提供这种支持的效率的方式配置页表536和/或页修改日志535的各种方面。在一些这样的实施例中,主机OS640可以与地址转换器556协作以生成页表536的一个或多个集合,地址转换器556可以在使用页表536的在每个这样的集合内的不同的页表执行地址转换并记录与页相关联的事件(例如,向其写入一个或多个字节)时在其中(例如,以往返方式)轮换。主机OS 640的VM监视组件可以以定期的间隔(例如,循环的时间段,例如历元)和/或基于其他标准来实现这样的轮换,作为避免在足够长的时间段内使用任何一个页表536而导致其标志位所提供的信息被认为已经过时的一部分。可能是主机OS 640导致在监测页表536和/或页修改表535的状态的VM之一内执行主机OS 640的例程,并且采用处理器组件550的指令集中的一个或多个指令以在满足各种标准中的任何一个时引起这样的轮换,包括但不限于避免一个或多个页修改日志535变满而使得在VM之间和/或VM与VM监视组件之间发生耗时切换的上下文。在处理器组件550符合由加利福尼亚州圣克拉拉的公司提供的处理器组件的IA-32或IA-64架构的情况下,这样的一个或多个指令可以是包括在这些处理器组件的指令集中以针对VM的使用提供支持的一种或多种形式的VMFUNC指令。
无论页表536中的每个轮换被触发的方式如何,地址转换器556都可以将每个这样的轮换视作将所有页的标记位清零的形式,这是因为地址转换器556可以在页表536之间轮换的每个时机至少清零页修改日志535的子集。这可以引起较早讨论的顾虑:包含在一个或多个页修改日志535内的信息由于在处理器组件850能够对其进行存取并且/或者基于其执行对恶意软件的扫描之前进行的这种清零而丢失。再次,为了解决这个问题,处理器组件850可以设法增加页修改日志535中的每个的大小和/或导致形成页修改日志535的集合。因此,处理器组件850可以向主机OS 640发送对页修改日志535的大小进行改变和/或针对每个VM生成单独的页修改日志535的集合以更好地使处理器组件850能够使用页修改日志来支持扫描恶意软件的请求。可替代地或另外,如先前描述的,处理器组件850可以缓冲存储装置860和/或处理器组件850对其具有存取权的存储装置560的一部分内的页修改日志的内容。
在一些实施例中,处理器组件850可以通过与主机OS 640的例程协作并且在采取一个或多个措施来保存一个或多个页修改日志535内的信息之后,利用诸如VMFUNC的这样的指令本身来要求页表536之间的轮换。在以下情况下这可能被认为是期望的:页表536之间的这种轮换导致页修改表535的清零和/或页修改表535之间的轮换,使得(多个)页修改日志535中的新条目再次针对先前已被写入的页生成,使得否则可能无法生成新的条目页修改日志535,使得包含在一个或多个页修改日志535内的信息可能已经变得(或可能很快变得)过时。
转到图14C,除了处理器组件550的地址转换器556生成并维护一个或多个页修改日志535之外或者作为对其的替代,存储控制器565a可以生成并维护一个或多个页修改日志535。这可以被认为是期望的,作为包括代表主机OS 640和/或(多个)客体OS 740的处理设备500以外的处理设备500的组件进行的写入存取(和/或影响易失性存储装置561内的页的其他事件)的方式。更具体地,在一些实施例中,处理设备500的其他组件(例如,所描绘的存储控制器565b和/或网络接口590)可以具有其自身对易失性存储装置561内的页进行存取(包括写入存取)的能力。可能是存储控制器565b能够成为能够自身将数据从非易失性存储装置562复制到易失性存储装置561中的总线主设备。可替代地或另外,网络接口590能够变成总线主设备,使得它能够将从网络999接收到的数据直接存储到易失性存储装置561中。在必须通过存储控制器565a执行对易失性存储装置561的所有存取的情况下,可以认为存储控制器565a处于处理设备500内的有利位置中,以监测对在易失性存储装置561内定义的页的所有存取,并且(多个)在页修改日志535中记录影响这些页的事件(例如,对这些页中的特定页的写入存取)的指示。
如所描绘的,可以将用于配置对一个或多个页修改日志535的生成和维护的(多个)寄存器558(或其他机制)并入存储控制器565a中,而不是并入处理器组件550的地址转换器556中。再次,处理器组件850可以直接或通过主机OS 640存取寄存器558,以配置对(多个)页修改日志535的生成和维护的各种方面来防止丢失其条目中的信息,如先前讨论的。
图5更详细地描绘了对易失性存储装置561内的恶意软件进行扫描和做出响应的方面。如所描绘的,安全例程840可以由多个组件841、845和/或849构成,使得处理器组件850执行安全例程840可能需要执行这些组件中的一个或多个。再次,可能被认为期望安全例程840使得处理器组件850执行这样的操作以利用在可以实现针对恶意软件部分扫描页的更高效执行的图形控制器的处理器组件内可以发现的矢量操作和/或其他特征。
如所描绘的,安全例程840可以包括通信组件849,如上所述,通信组件849可以由处理器组件850执行以操作网络接口890经由网络999发送和接收信号。这些信号之中可以存在传达已经检测到恶意软件的指示、检测到的恶意软件的一部分和/或用于采取动作来减轻存在检测到的恶意软件的后果的命令的信号。这样的信号可以至少在安全服务器100与处理设备500之间交换,但是也可以在安全服务器100与处理设备500中的多个处理设备500之间交换,如将更详细解释的。如本领域技术人员将认识到的,通信组件849可以被选择为与被选择用于实现网络接口890的无论何种类型的接口技术一起操作。
同样如所描绘的,安全例程840可以包括取回组件841,该取回组件841可以由处理器组件850执行以执行较早描述的对一个或多个页修改日志535进行循环存取,以识别易失性存储装置561内的近期写入的页。再次,取决于是否使用VM,是否使用多于一个处理器核心555和/或是否使用多于一个执行线程,可能存在单个页修改日志535或多个页修改日志535。而且,取回组件841可以直接地或通过主机OS 640用信号通知地址转换器556或存储控制器565a,以放大一个或多个页修改日志535以便为每个页修改日志内部的更多条目腾出空间,和/或创建一组或多组页修改日志535,其填充有条目并由取回组件841以轮换(例如,往返)方式存取以在其中容纳对更多条目进行的存储。再次,当处理器组件550执行主机OS640、一个或多个客体OS 740和/或一个或多个应用例程770时,可以由取回组件841对这一个或多个页修改日志535进行这样的循环存取。
除了针对近期写入的页的指示对一个或多个页修改日志535进行循环存取之外,取回组件还可以监测一个或多个页修改日志535以获得可测量并且显著地比观测到的条目通常在其中生成的速率大的、增加的条目在其中生成的速率。这种增加的速率可能是恶意软件企图降低基于一个或多个页修改日志535内的条目来执行页扫描的能力的结果。目的可以是强制填满一个或多个页修改日志535,以在可以取回导致检测到恶意软件的条目中的信息并且用于这样做之前使一个或多个页修改日志535清零。
如进一步描绘的,安全例程840可以包括扫描组件845,该扫描组件845可以由处理器组件850执行以执行较早描述的在易失性存储装置561内进行对在一个或多个页修改日志535中指示被写入的页的扫描,如由取回组件841对一个或多个页修改日志535进行的循环存取中所标识的。在扫描易失性存储装置561内的这些页时,扫描组件845可以尝试将这些页的内容与存储在恶意软件数据库830内的已知恶意软件块的签名进行匹配。如先前讨论的,对恶意软件解包(例如,对恶意软件解压缩)必然需要将恶意软件的未解包的指令中的至少一部分写入易失性存储装置561的一个或多个页中。因此,对这些一个或多个页的写入被记录在一个或多个页修改日志535内,由此导致将这些页识别为已经由取回组件841写入,扫描组件845可以由取回组件841触发以使得扫描这些页。这为扫描组件845提供了将该恶意软件的现在解包的指令的模式与恶意软件数据库内的签名进行比较以尝试检测并识别该恶意软件的机会。
假定扫描组件845确实检测到在非易失性存储装置561的一个或多个页内存在以其解包的形式的恶意软件,则扫描组件845可以采取各种动作中的任一种来减轻存在该恶意软件的后果。作为示例,扫描组件845可以将已经检测到恶意软件的指示、恶意软件在易失性存储装置561内的位置和/或恶意软件的身份发送到安全例程540中的至少一个。在VM未被使用的实施例中,可以存在单个安全例程540在通过处理器组件550执行主机OS 640所提供的操作环境内执行,并且单个安全例程540可以包括用于移除或以其他方式寻址在该操作环境内检测到恶意软件的例程。在使用VM的实施例中,可以存在安全例程540在如由处理器组件550执行的主机OS640的操作环境内执行,和/或可以存在一个或多个安全例程540在如通过执行主机OS 640和与每个VM相关联的客体OS 740的组合而提供的一个或多个VM的操作环境内执行。在使用VM的这样的实施例中,扫描组件845可以采用其中发现检测到的恶意软件的页的(多个)地址来确定恶意软件是在主机OS 640的操作环境内还是在VM中的一个VM的操作环境内发现的,并且可以将检测到恶意软件的指示发送到安全例程540中的在其中发现恶意软件的操作环境内执行的一个安全例程。在接收到这样的指示后,被如此用信号通知的安全例程540可以对其自己的单独的恶意软件数据库530进行存取以确认恶意软件的身份和/或以更大的特异性作为确定针对恶意软件采取什么动作的一部分来识别恶意软件。
然而,可能存在其中发现恶意软件的(多个)页的(多个)地址指示恶意软件已经损坏OS或在该操作环境内执行的安全例程540之一的核心例程而使得与该环境相关联的安全例程540之一可能无法有效地寻址恶意软件的存在的实例。在这样的实施例中,扫描组件845可以与通信组件849协作以操作网络接口590将已经检测到恶意软件的指示发送到安全服务器100。在一些实施例中,该指示可以包括对恶意软件的身份的指示(如使用恶意软件数据库830所确定的),以使得安全服务器100能够确定采取何种措施,和/或包括恶意软件的至少一部分的副本以使得安全服务器100能够进一步分析恶意软件。响应于对检测到恶意软件的指示,安全服务器100可以采取多种动作中的任何一种。通过示例的方式,安全服务器100可以向处理设备500发送命令,以使其与网络999断开连接(这可以由控制器400执行)和/或可以向耦合到网络999的其他设备(未示出)发送命令,以避免与处理设备500进行任何进一步的通信。
作为向安全服务器100发送这样的指示的替代或除了向安全服务器100发送这样的指示之外,扫描组件845可以向控制器400(如果存在于处理设备500内)提供对检测到恶意软件的指示。作为响应,控制器400可以采取各种动作中的任何一种来减轻存在恶意软件的后果。通过示例的方式,控制器400可以触发处理设备500的重新初始化,努力清除易失性存储装置561中的包括恶意软件的内容。可替代地或另外,控制器400可以操作网络接口590以向安全服务器100发送检测到恶意软件的指示和/或将处理设备500从网络999断开连接,以避免恶意软件扩散至耦合到网络999的其他设备。
扫描组件845可以基于可测量并且显著更高的生成一个或多个页修改日志535内的条目的速率来从取回组件841接收明显努力的指示,以通过在至少一些条目能够被存取之前导致清零页修改日志535中的一个或多个来降低由扫描组件845执行扫描以检测恶意软件的能力。扫描组件845可以通过执行对易失性存储装置561内的所有页的扫描来做出响应。
在各种实施例中,处理器组件150、450、550和/或850可以包括多种商业可用处理器中的任何一种。此外,这些处理器组件中的一个或多个可以包括多个处理器、多线程处理器、多核心处理器(不管多个核心在相同的芯片还是单独的芯片上共存),和/或多种物理上分离的处理器以某种方式被链接的一些其他种类的多处理器架构。
在各种实施例中,存储装置160、460、560和/或860可以基于多种信息存储技术中的任何一种,可能包括需要不间断提供电力的易失性技术,并且可能包括需要使用可移除或不可移除的机器可读存储介质的技术。因此,这些存储装置中的每一个可以包括各种类型(或类型组合)的存储设备中的任一种,包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、聚合物存储器(例如,铁电聚合物存储器)、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、一个或多个独立铁磁磁盘驱动器或组织成一个或多个阵列的多个存储设备(例如,组织成独立磁盘阵列冗余阵列或RAID阵列的多个铁磁磁盘驱动器)。应该注意的是,尽管这些存储装置中的每一个被描述为单个块,但其中的一个或多个可以包括可以基于不同存储技术的多个存储设备。因此,例如,这些所描绘的存储装置中的每个存储装置中的一个或多个可以代表以下各项的组合:光盘驱动器或闪速存储器卡读取器(通过这些光盘驱动器或闪速存储器卡读取器,程序和/或数据可以在某种形式的机器可读存储介质上存储和传送)、铁磁磁盘驱动器(其在相对较长的时间段内在本地存储程序和/或数据)以及实现对程序和/或数据的相对快速存取的一个或多个易失性固态存储器设备(例如,SRAM或DRAM)。还应该注意的是,这些存储装置中的每个都可以由基于相同存储技术但是由于专门使用可以单独维护(例如,一些DRAM设备用作主存储装置,而其他DRAM设备用作图形控制器的不同帧缓冲器)的多个存储组件构成。
在各种实施例中,如上面描述的,网络接口190和/或590的至少一部分可以采用各种各样的信令技术中的任何一种,使得这些设备能够耦合到其他设备。这些接口中的每个都包括提供必要功能中的至少一些以实现这种耦合的电路。然而,这些接口中的每个还可以至少部分地用处理器组件中的对应处理器组件执行的指令序列来实现(例如,以实现协议栈或其他特征)。在采用电和/或光导电缆的情况下,这些接口可以采用符合各种工业标准中的任一种的信令和/或协议,包括但不限于RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况下,这些接口可以采用符合各种工业标准中的任一种的信令和/或协议,包括但不限于IEEE 802.11a、802.11b、802.11g、802.16、802.20(通常称为作为“移动宽带无线接入”);蓝牙;ZigBee;或蜂窝无线电话业务,例如具有通用分组无线业务的GSM(GSM/GPRS)、CDMA/1xRTT、增强型全球演进数据速率(EDGE)、仅数据演进/优化(EV-DO)、数据和语音演进(EV-DV)、高速下行分组接入(HSDPA)、高速上行分组接入(HSUPA)、4G LTE等。
图6示出了逻辑流程2100的实施例。逻辑流程2100可以表示由本文描述的一个或多个实施例执行的操作中的一些或全部。更具体地,逻辑流程2100可以示出由处理器组件850在至少执行安全例程840时执行的和/或由处理设备500的(多个)其他组件执行的操作。特别地,逻辑流程2100关注针对恶意软件进行循环扫描的操作。
在2110处,处理设备的图形控制器的处理器组件(例如,处理设备500的图形控制器800的处理器组件850)可以从页修改日志(例如,页修改日志535中的一个)取回对近期写入的页的指示。如已经讨论的,可以存在由处理设备的主处理器组件的地址转换器(例如,处理器组件550的地址转换器556)或由存储控制器生成并维护的一个或多于一个页修改日志,该存储控制器控制其中已对页进行定义的易失性存储装置的存取(例如,存储控制器565a控制对易失性存储装置561的存取)。
在2120处,关于是否存在近期被写入的页的一个或多个页修改日志中丢失进一步指示的风险进行检查。如先前所讨论的,基于可能不受图形控制器的处理器组件控制的各种因素中的任一个,可以循环地清零由图形控制器的处理器组件循环地存取的一个或多个页修改日志。因此,在图形控制器的处理器组件能够存取传达对近期写入的页的指示的条目和/或对这样的条目采取动作之前,这样的条目可能丢失。如果在2120处存在这样的风险,则在2122处,图形控制器的处理器组件可以用信号通知地址转换器和/或存储控制器,以放大一个或多个页修改日志和/或用其集合替换单个页修改日志,以便为传达对近期写入的页的指示的更多条目提供更多的空间。
无论是否存在这样的风险,在2130处,图形控制器的处理器组件可以针对从页修改日志中取回针对其的指示的恶意软件扫描易失性存储装置内的近期写入的页。如上面讨论的,打包的恶意软件必须解包为可执行的,并且这必然需要将恶意软件的解包部分写入易失性存储装置内的页中,这可能导致页修改日志中的一个或多个条目可以通过图形控制器的处理器组件扫描那些页而被识别并且然后对其采取动作。
在2140处,如果在页扫描中未检测到恶意软件,则在2110处,图形控制器的处理器组件从页修改日志中取回对近期写入的页的另一指示。然而,如果在2140检测到恶意软件,则在2142处,图形控制器的处理器组件可以向处理设备的另一组件提供对这样的检测的指示,包括但不限于可以进一步分析恶意软件和/或采取动作以将其移除的安全例程(例如,安全例程540),可以触发计算设备的重新初始化的处理设备的控制器(例如,控制器400),或者处理设备的要被中继到安全服务器的网络接口(例如,将指示中继到安全服务器100的网络接口590)。
图7示出了适合于实现如先前描述的各种实施例的示例性处理架构3000的实施例。更具体地,处理架构3000(或其变型)可以被实现为设备100、200、304、305或500中的一个或多个设备的一部分和/或控制器400。应该注意,处理架构3000的组件被赋予附图标记,其中最后两位数字对应于较早作为这些设备和/或控制器的一部分描绘和描述的组件中的至少一些组件的附图标记的最后两位数字。这是为了帮助对各自的组件进行关联。
处理架构3000包括数字处理中常见地采用的各种元件,包括但不限于一个或多个处理器、多核心处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请中所使用的,术语“系统”和“组件”旨在指代其中进行数字处理的设备的实体,该实体是硬件、硬件和软件的组合、软件或执行软件,其示例由所描绘的示例性处理架构提供。例如,组件可以是但不限于是在处理器组件上运行的进程、处理器组件本身、可以采用光学和/或磁性存储介质的存储设备(例如,硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、可执行指令序列、执行线程、程序和/或整个设备(例如,整台计算机)。通过示例的方式,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个设备上和/或分布在两个或更多个设备之间。此外,组件可以通过各种类型的通信介质彼此通信地耦合以协调操作。协调可能涉及信息的单向或双向交换。例如,组件可以以通过通信介质传送的信号的形式传送信息。信息可以实现为分配给一个或多个信号线的信号。消息(包括命令、状态、地址或数据消息)可以是这样的信号中的一个,或者可以是多个这样的信号,并且可以通过多种连接和/或接口中的任何一种串行地或基本上并行地发送。
如所描绘的,在实现处理架构3000时,设备至少包括处理器组件950、存储装置960、到其他设备的接口990以及耦合件959。如将要解释的,根据实现该处理架构3000的设备的各种方面,包括其预期用途和/或使用条件,这样的设备可以进一步包括附加组件,例如但不限于显示器接口985。
耦合件959包括至少将处理器组件950通信地耦合到存储装置960的一个或多个总线、点对点互连、收发器、缓冲器、交叉点开关和/或其它导体和/或逻辑。耦合件959可以进一步将处理器组件950耦合到接口990、音频子系统970和显示器接口985中的一个或多个(取决于还存在这些和/或其他组件中的哪一个)。在处理器组件950如此通过耦合件959耦合的情况下,处理器组件950能够执行上文详细描述的任务中的各种任务,前述设备针对无论哪个(哪些)任务实现处理架构3000。耦合件959可以利用通过其对光信号和/或电信号进行传送的各种技术或技术的组合来实现。此外,耦合件959的至少一部分可以采用符合多种工业标准中的任何一种的时序和/或协议,包括但不限于加速图形端口(AGP)、CardBus、扩展工业标准架构(E-ISA)、微型通道结构(MCA)、NuBus、外围部件互连(扩展)(PCI-X)、PCI快速(PCI-E)、个人计算机存储卡国际协会(PCMCIA)总线、HyperTransportTM、快速路径等。
如先前讨论的,处理器组件950(其可以对应于处理器组件450)可以包含多种商业可用处理器中的任一种,其采用各种技术中的任一种并且利用以多种方式中的任一种物理地组合的一个或多个核心来实现。
如先前讨论的,存储装置960(其可以对应于存储装置460)可以基于多种技术或技术组合中的任一种由一个或多个不同存储设备构成。更具体地,如所描绘的,存储装置960可以包括易失性存储装置961(例如,基于一种或多种形式的RAM技术的固态存储装置)、非易失性存储装置962(例如,固态、铁磁或不需要恒定的电力供应来保存其内容的其他存储装置)以及可移除介质存储装置963(例如,可以通过其在设备之间传送信息的可移除盘或固态存储卡存储装置)。对可能包括多种不同类型存储的存储装置960的这种描述是在认识到在设备中常见地使用多于一种类型的存储设备的情况下进行的,其中一种类型提供相对较快的读取和写入能力,使得数据处理器组件950能够更快速地操作(但可能使用持续需要电力的“易失性”技术),而另一种类型提供相对高密度的非易失性存储(但可能提供相对较慢的读取和写入能力)。
考虑到采用不同技术的不同存储设备的通常不同的特性,通过经由不同的接口耦合到不同的存储设备的不同的存储控制器来将这种不同的存储设备耦合到设备的其他部分也是常见的。通过示例的方式,在易失性存储装置961存在并且基于RAM技术的情况下,易失性存储装置961可以通过存储控制器965a可通信地耦合到耦合件959,存储控制器965a向易失性存储装置961提供合适的接口,易失性存储装置961可能使用行和列寻址,并且存储控制器965a可以执行行刷新和/或其他维护任务以帮助保存存储在易失性存储装置961内的信息。通过另一示例的方式,在存在非易失性存储装置962并且包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储装置962可以通过存储控制器965b通信地耦合到耦合件959,存储控制器965b向非易失性存储装置962提供适当的接口,非易失性存储装置962可能采用对信息块和/或圆柱体和扇区寻址。通过另一示例的方式,在存在可移除介质存储装置963并且包括采用一个或多个机器可读存储介质969的一个或多个光学和/或固态磁盘驱动器的情况下,可移除介质存储装置963可以通过存储控制器965c通信地耦合到耦合件959,向可移除介质存储装置963提供适当的接口,可移除介质存储装置963可能采用信息块寻址,并且其中存储控制器965c可以以特定于延长机器可读存储介质969寿命的方式协调读取、擦除和写入操作。
易失性存储装置961或非易失性存储装置962中的一个或另一个可以包括机器可读存储介质形式的制品,在该机器可读存储介质上可以存储包括能够由处理器组件950执行的指令序列的例程,这取决于各自基于的技术。通过示例的方式,在非易失性存储装置962包括基于铁磁的磁盘驱动器(例如,所谓的“硬盘驱动器”)的情况下,每个这种磁盘驱动器典型地采用一个或多个旋转盘,其上沉积磁响应粒子的涂层并且以各种模式磁性地取向以存储诸如指令序列的信息,以类似于诸如软盘之类的存储介质的方式。作为另一示例,非易失性存储装置962可以由固态存储设备组构成,以类似于压缩闪存卡的方式存储诸如指令序列的信息。再次,在不同时间在设备中使用不同类型的存储设备来存储可执行例程和/或数据是常见的。因此,包括要由处理器组件950执行的指令序列的例程可以最初被存储在机器可读存储介质969上,并且随后可以使用可移除介质存储装置963将该例程复制到非易失性存储装置962以用于长期存储,而不要求机器可读存储介质969和/或易失性存储装置961的持续存在,以使处理器组件950能够在该例程被执行时更快地进行存取。
如先前所讨论的,接口990(其可以对应于(多个)接口490)可以采用与可以用于将设备通信地耦合到一个或多个其他设备的各种通信技术中的任一种相对应的各种信令技术中的任一种。再次,可以采用各种形式的有线或无线信令中的一种或两种来使处理器组件950能够与输入/输出设备(例如,所描绘的示例键盘920或打印机925)和/或其他设备交互,可能通过网络(例如,网络999)或互联的一组网络。在认识到任何一个设备经常必须支持的多种类型的信令和/或协议的特征经常大不相同的情况下,接口990被描绘为包括多个不同的接口控制器995a、995b和995c。接口控制器995a可以采用各种类型的有线数字串行接口或射频无线接口中的任何一种来接收来自用户输入设备(例如,所描绘的键盘920)的串行传输消息。接口控制器995b可以采用通过所描绘的网络999(可能是由一个或多个链路构成的网络、较小网络或可能是互联网)访问其他设备的各种基于电缆的或无线的信令、定时和/或协议中的任一种。更具体地,接口控制器995b可以结合一个或多个射频(RF)收发器和/或可以耦合到一个或多个天线991(其可以被并入到接口990的一部分中)以作为所描绘的网络999上的无线通信的一部分与一个或多个其它设备的天线交换RF无线信号。接口控制器995c可以采用各种导电缆线中的任一种,使得能够使用串行或并行信号传输来向所描绘的打印机925传送数据。可以通过接口990的一个或多个接口控制器通信地耦合的设备的其它示例包括但不限于用于监测人的声音以接受由那些人经由其发出语音或其他声音用信号传达命令和/或数据的麦克风、遥控器、手写笔、读卡器、指纹阅读器、虚拟现实交互手套、图形输入板、游戏杆、其他键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、监测人的移动以接受由这些人经由手势和/或面部表情用信号传达的命令和/或数据的照相机或照相机阵列、激光打印机、喷墨打印机、机械机器人、铣床等。
在设备通信地耦合到(或者可能实际上包含)显示器(例如,所描绘的示例显示器980)的情况下,实现处理架构3000的这种设备还可以包括显示器接口985。虽然可以采用以可通信方式耦合到显示器的更通用的接口类型,但是在显示器上直观地显示各种形式的内容时经常需要某种程度上专门的附加处理以及使用基于布线的接口的某种程度上专门的性质经常使得期望提供独特的显示接口。可以在显示器980的通信耦合中由显示器接口985采用的有线和/或无线信令技术可以利用符合各种工业标准中的任一种的信令和/或协议,包括但不限于各种模拟视频接口、数字视频接口(DVI)、显示端口等中的任一种。
更一般地,本文描述和描绘的设备的各种元件可以包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器组件、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。然而,确定一个实施例是否使用硬件元件和/或软件元件来实现可以根据诸如期望的计算速率、功率水平、热容差、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束等之类的任何数量的因素而变化,如给定实现方式所期望的。
可以使用表达语“一个实施例”或“实施例”连同其衍生词来描述一些实施例。这些术语表示,结合实施例所描述的特定的特征、结构或特性包含在至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指代同一实施例。此外,可以利用表达方式“耦合”或“连接”连同其衍生词来描述一些实施例。这些术语不一定意在彼此同义。例如,可以利用术语“连接”和/或“耦合”来描述一些实施例以指示两个或更多个的元件彼此直接物理接触或电接触。然而,术语“耦合”还可以表示两个或更多个的元件彼此不直接接触,但是仍共同操作或者彼此交互。此外,来自不同实施例的方面或元素可以被组合。
要强调的是,本公开的摘要被提供以使读者快速确定技术公开的实质。应理解的是,摘要不用于解释或限制权利要求的范围或含义。此外,在前面的具体实施方式中,可以看出,为了简化本公开的目的,在单个实施例中将各种特征组合在一起。这种公开的方法不应被解释为反映所要求保护的实施例要求比每个权利要求中明确叙述的更多特征的意图。相反,如所附权利要求所反映的那样,本发明的主题在于比所公开的示例的所有特征少的特征。因此,所附权利要求被并入具体实施方式中,其中每个权利要求独立地作为单独的示例。在所附权利要求中,术语“包括(including)”和“其中(in which)”分别用作相应术语“包括(comprising)”和“其中(wherein)”的通俗英语等同词。此外,术语“第一”、“第二”、“第三”等仅用作标签,而并不意图对其对象施加数字要求。
以上描述的内容包括所公开的架构的示例。当然,不可能描述组件和/或方法的每个可想到的组合,但是本领域普通技术人员可以认识到许多进一步的组合和排列是可能的。因此,新颖的架构旨在涵盖落入所附权利要求的精神和范围内的所有这些改变、修改和变化。详细公开内容现在转向提供涉及另外的实施例的示例。以下提供的示例并非意在限制。
在示例1中,一种装置包括:处理设备的第一处理器组件,其用于在被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由第一处理器组件对多个页中的一个页进行的写入存取;处理设备的图形控制器的取回组件,其用于循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示;以及图形控制器的扫描组件,其用于循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例1的主题的示例2中,第一处理器组件可以包括地址转换器,以支持基于多个页的虚拟寻址并且响应于提供用于对多个页中的一个页进行的写入存取的地址转换而生成第一页修改日志内的每个条目。
在包括示例1-2中的任一个的主题的示例3中,地址转换器可以遍历在第一存储装置内维护的至少一个页表以转换地址,以便使得操作系统(OS)中的采用虚拟寻址的一个OS或OS支持的应用例程能够至少存取多个页的子集。
在包括示例1-3中的任一个的主题的示例4中,地址转换器可以遍历在第一存储装置内维护的多层页表以转换地址,以便支持由主机OS生成的多个虚拟机(VM)并且使得在VM中的一个VM内采用虚拟寻址的客体OS能够通过主机OS来至少存取与VM中的一个VM相关联的多个页的子集。
在包括示例1-4中的任一个的主题的示例5中,地址转换器可以生成多个页修改日志内的条目,每个VM可以与多个页修改日志中的至少一个页修改日志相关联,多个页修改日志可以包括第一页修改日志,并且取回组件可以循环地从多个页修改日志中取回对近期写入的页的指示。
在包括示例1-5中的任一个的主题的示例6中,第一页修改日志可以容纳有限数量的条目,并且取回组件可以与地址转换器协作以生成在第一存储装置内维护的第二页修改日志内的条目,以便允许取回组件在第一页修改日志内的条目被由地址转换器生成的新条目覆写之前有更多时间从第一页修改日志内的条目中取回对近期写入的页的指示。
在包括示例1-6中的任一个的主题的示例7中,地址转换器可以至少在第一页修改日志和第二页修改日志之中轮换以生成条目,并且取回组件可以至少在第一页修改日志和第二页修改日志之中轮换以取回对近期写入的页的指示。
在包括示例1-7中的任一个的主题的示例8中,图形控制器可以包括执行取回组件或扫描组件中的至少一个的第二处理器组件。
在包括示例1-8中的任一个的主题的示例9中,第二处理器组件可以基于由第二处理器组件执行的图形操作对第二处理器组件的处理资源的当前使用程度来选择性地执行取回组件或扫描组件中的至少一个。
在包括示例1-9中的任一个的主题的示例10中,图形控制器可以包括用于存储恶意软件数据库的第二存储装置,恶意软件数据库可以包括对供扫描组件使用以检测恶意软件的至少可执行指令的模式的指示。
在包括示例1-10中的任一个的主题的示例11中,第一存储装置可以存储由第一处理器组件执行以抵制恶意软件的安全例程,扫描组件可以向安全例程提供对由扫描组件在页内检测到的恶意软件的指示。
在包括示例1-11中任一个的主题的示例12中,该装置可以包括用于将处理设备耦合到网络的网络接口,并且扫描组件可以分析其中检测到恶意软件的页的地址以确定与恶意软件相关联的严重性,并且可以经由网络向安全服务器发送对由扫描组件在页内检测到的恶意软件的指示,而代替基于严重性向安全例程提供指示。
在包括示例1-12中的任一个的主题的示例13中,该装置可以包括将处理设备耦合到网络的网络接口,并且扫描组件可以操作网络接口,以响应于在页内检测到恶意软件而将处理设备从网络断开连接。
在示例14中,一种装置包括:处理设备的存储控制器,其用于在耦合到存储器控制器并且被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示对多个页中的一个页进行的写入存取;处理设备的图形控制器的取回组件,其用于循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示;以及图形控制器的扫描组件,其用于循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例14的主题的示例15中,第一页修改日志容纳有限数量的条目,并且取回组件与存储控制器协作以生成在第一存储装置内维护的第二页修改日志内的条目,以便允许取回组件在第一页修改日志内的条目被由存储控制器生成的新条目覆写之前有更多时间从第一页修改日志内的条目中取回对近期写入的页的指示。
在包括示例14-15中的任一个的主题的示例16中,存储控制器可以至少在第一页修改日志和第二页修改日志之中轮换以生成条目,并且取回组件可以至少在第一页修改日志和第二页修改日志之中轮换以取回对近期写入的页的指示。
在包括示例14-16中的任一个的主题的示例17中,图形控制器可以包括执行取回组件或扫描组件中的至少一个的第二处理器组件。
在包括示例14-17中的任一个的主题的示例18中,第二处理器组件可以基于由第二处理器组件执行的图形操作对第二处理器组件的处理资源的当前使用程度来选择性地执行取回组件或扫描组件中的至少一个。
在包括示例14-18中的任一个的主题的示例19中,图形控制器可以包括用于存储恶意软件数据库的第二存储装置,恶意软件数据库可以包括对供扫描组件使用以检测恶意软件的至少可执行指令的模式的指示。
在包括示例14-19中的任一个的主题的示例20中,该装置可以包括用于将处理设备耦合到网络的网络接口,扫描组件可以操作网络接口,以响应于在页内检测到恶意软件而将处理设备从网络断开连接。
在示例21中,一种计算实现的方法,包括:由处理设备的第一处理器组件在被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由第一处理器组件对多个页中的一个页进行的写入存取;由处理设备的图形控制器循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示;以及由图形控制器循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例21的主题的示例22中,该方法可以包括:提供用于对多个页中的页进行存取的地址转换以支持基于多个页的虚拟寻址;以及响应于提供用于对多个页中的一个页进行的写入存取的地址转换,生成第一页修改日志内的每个条目。
在包括示例21-22中的任一个的主题的示例23中,该方法可以包括:由第一处理器组件生成第一存储装置内的至少一个页表;以及由第一处理器组件遍历至少一个页表以转换地址,以便使得操作系统(OS)中的采用虚拟寻址的一个OS或OS支持的应用例程能够至少存取多个页的子集。
在包括示例21-23中的任一个的主题的示例24中,该方法可以包括:由第一处理器组件在第一存储装置内生成多层页表;以及由第一处理器组件遍历多层页表以转换地址,以便支持由主机OS生成的多个虚拟机(VM)并且使得在VM中的一个VM内采用虚拟寻址的客体OS能够通过主机OS来至少存取与VM中的一个VM相关联的多个页的子集。
在包括示例21-24中的任一个的主题的示例25中,该方法可以包括:由第一处理器组件生成多个页修改日志内的条目,每个VM与多个页修改日志中的至少一个页修改日志相关联,多个页修改日志包括第一页修改日志;以及由图形控制器循环地从多个页修改日志中取回对近期写入的页的指示。
在包括示例21-25中的任一个的主题的示例26中,第一页修改日志可以容纳有限数量的条目,并且该方法可以包括由第一处理器组件生成在第一存储装置内维护的第二页修改日志内的条目,以便允许取回组件在第一页修改日志内的条目被由地址转换器生成的新条目覆写之前有更多时间从第一页修改日志内的条目中取回对近期写入的页的指示。
在包括示例21-26中的任一个的主题的示例27中,该方法可以包括:由第一处理器组件至少在第一页修改日志和第二页修改日志之中轮换以生成条目;以及由图形控制器至少在第一页修改日志和第二页修改日志之中轮换以取回对近期写入的页的指示。
在包括示例21-27中的任一个的主题的示例28中,图形控制器可以包括第二处理器组件,并且该方法可以包括基于由第二处理器组件执行的图形操作对第二处理器组件的处理资源的当前使用程度来选择性地执行以下中的至少一个:循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示,或循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例21-28中的任一个的主题的示例29中,图形操作可以包括提供用户接口、渲染三维对象或对运动视频进行解压缩中的至少一个。
在包括示例21-29中的任一个的主题的示例30中,该方法可以包括:分析其中检测到恶意软件的页的地址以确定与恶意软件相关联的严重性;以及将对页内检测到的恶意软件的指示提供给由第一处理器组件执行的安全例程,或者基于严重性经由网络将对在页内检测到的恶意软件的指示发送给安全服务器。
在包括示例21-30中的任一个的主题的示例31中,该方法可以包括:由图形控制器操作处理设备的网络接口,以响应于在页中检测到恶意软件而将处理设备从网络断开连接。
在示例32中,至少一种有形机器可读存储介质,其包括指令,该指令在由处理设备执行时可以使得处理设备:由处理设备的第一处理器组件在被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由第一处理器组件对多个页中的一个页进行的写入存取;由处理设备的图形控制器循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示;以及由图形控制器循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例32的主题的示例33中,可以使得处理设备:提供用于对多个页中的页进行存取的地址转换以支持基于多个页的虚拟寻址;以及响应于提供用于对多个页中的一个页进行的写入存取的地址转换,生成第一页修改日志内的每个条目。
在包括示例32-33中的任一个的主题的示例34中,可以使得处理设备:由第一处理器组件生成第一存储装置内的至少一个页表;以及由第一处理器组件遍历至少一个页表以转换地址,以便使得操作系统(OS)中的采用虚拟寻址的一个OS或OS支持的应用例程能够至少存取多个页的子集。
在包括示例32-34中的任一个的主题的示例35中,可以使得处理设备:由第一处理器组件在第一存储装置内生成多层页表;以及由第一处理器组件遍历多层页表以转换地址,以便支持由主机OS生成的多个虚拟机(VM)并且使得在VM中的一个VM内采用虚拟寻址的客体OS能够通过主机OS来至少存取与VM中的一个VM相关联的多个页的子集。
在包括示例32-35中的任一个的主题的示例36中,可以使得处理设备:由第一处理器组件生成多个页修改日志内的条目,每个VM与多个页修改日志中的至少一个页修改日志相关联,多个页修改日志包括第一页修改日志;以及由图形控制器循环地从多个页修改日志中取回对近期写入的页的指示。
在包括示例32-36中的任一个的主题的示例37中,第一页修改日志可以容纳有限数量的条目,并且可以使得处理设备:由第一处理器组件生成在第一存储装置内维护的第二页修改日志内的条目,以便允许取回组件在第一页修改日志内的条目被由地址转换器生成的新条目覆写之前有更多时间从第一页修改日志内的条目中取回对近期写入的页的指示。
在包括示例32-37中的任一个的主题的示例38中,可以使得处理设备:由第一处理器组件至少在第一页修改日志和第二页修改日志之中轮换以生成条目;以及由图形控制器至少在第一页修改日志和第二页修改日志之中轮换以取回对近期写入的页的指示。
在包括示例32-38中的任一个的主题的示例39中,图形控制器可以包括第二处理器组件,并且可以使得处理设备基于由第二处理器组件执行的图形操作对第二处理器组件的处理资源的当前使用程度来选择性地执行以下中的至少一个:循环地从第一页修改日志中取回对多个页中的至少一个近期写入的页的指示,或循环地扫描至少一个近期写入的页以检测至少一个近期写入的页内的恶意软件。
在包括示例32-39中的任何一个的主题的示例40中,图形操作可以包括提供用户接口、渲染三维对象或对运动视频进行解压缩中的至少一个。
在包括示例32-40中的任一个的主题的示例41中,可以使得处理设备:分析其中检测到恶意软件的页的地址以确定与恶意软件相关联的严重性;以及将对页内检测到的恶意软件的指示提供给由第一处理器组件执行的安全例程,或者基于严重性经由网络将对在页内检测到的恶意软件的指示发送给安全服务器。
在包括示例32-41中的任何一个的主题的示例42中,可以使得处理设备:由图形控制器操作处理设备的网络接口,以响应于在页内检测到恶意软件而将处理设备从网络断开连接。
在示例43中,至少一种有形的机器可读存储介质,可以包括指令,该指令在由处理器组件执行时使处理器组件执行上述操作中的任一个。
在示例44中,一种装置,可以包括用于执行上述操作中的任一个的单元。

Claims (25)

1.一种用于支持安全处理的装置,包括:
处理设备的第一处理器组件,其用于在被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由所述第一处理器组件对所述多个页中的一个页进行的写入存取;
所述处理设备的图形控制器的取回组件,其用于循环地从所述第一页修改日志中取回对所述多个页中的至少一个近期写入的页的指示;以及
所述图形控制器的扫描组件,其用于循环地扫描所述至少一个近期写入的页以检测所述至少一个近期写入的页内的恶意软件。
2.根据权利要求1所述的装置,所述第一处理器组件包括地址转换器,以支持基于所述多个页的虚拟寻址并且响应于提供用于对所述多个页中的一个页进行的写入存取的地址转换而生成所述第一页修改日志内的每个条目。
3.根据权利要求2所述的装置,所述地址转换器遍历在所述第一存储装置内维护的多层页表以转换地址,以便支持由主机OS生成的多个虚拟机(VM)并且使得在所述VM中的一个VM内采用虚拟寻址的客体OS能够通过所述主机OS来至少存取与所述VM中的所述一个VM相关联的所述多个页的子集。
4.根据权利要求3所述的装置,所述地址转换器生成多个页修改日志内的条目,每个VM与所述多个页修改日志中的至少一个页修改日志相关联,所述多个页修改日志包括所述第一页修改日志,并且所述取回组件循环地从所述多个页修改日志中取回对近期写入的页的指示。
5.根据权利要求2所述的装置,所述第一页修改日志容纳有限数量的条目,并且所述取回组件与所述地址转换器协作以生成在所述第一存储装置内维护的第二页修改日志内的条目,以便允许所述取回组件在所述第一页修改日志内的条目被由所述地址转换器生成的新条目覆写之前有更多时间从所述第一页修改日志内的条目中取回对近期写入的页的指示。
6.根据权利要求5所述的装置,所述地址转换器至少在所述第一页修改日志和所述第二页修改日志之中轮换以生成条目,并且所述取回组件至少在所述第一页修改日志和所述第二页修改日志之中轮换以取回对近期写入的页的指示。
7.根据权利要求1所述的装置,所述图形控制器包括用于存储恶意软件数据库的第二存储装置,所述恶意软件数据库包括对供所述扫描组件使用以检测恶意软件的至少可执行指令的模式的指示。
8.根据权利要求1所述的装置,所述第一存储装置存储由所述第一处理器组件执行以抵制恶意软件的安全例程,所述扫描组件向所述安全例程提供对由所述扫描组件在页内检测到的恶意软件的指示。
9.根据权利要求8所述的装置,包括用于将所述处理设备耦合到网络的网络接口,所述扫描组件分析其中检测到所述恶意软件的页的地址以确定与所述恶意软件相关联的严重性,并且经由所述网络向安全服务器发送对由所述扫描组件在页内检测到的恶意软件的指示,而代替基于所述严重性向所述安全例程提供所述指示。
10.一种用于支持安全处理的装置,包括:
处理设备的存储控制器,其用于在耦合到所述存储器控制器并且被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示对所述多个页中的一个页进行的写入存取;
所述处理设备的图形控制器的取回组件,其用于循环地从所述第一页修改日志中取回对所述多个页中的至少一个近期写入的页的指示;以及
所述图形控制器的扫描组件,其用于循环地扫描所述至少一个近期写入的页以检测所述至少一个近期写入的页内的恶意软件。
11.根据权利要求10所述的装置,所述第一页修改日志容纳有限数量的条目,并且所述取回组件与所述存储控制器协作以生成在所述第一存储装置内维护的第二页修改日志内的条目,以便允许所述取回组件在所述第一页修改日志内的条目被由所述存储控制器生成的新条目覆写之前有更多时间从所述第一页修改日志内的条目中取回对近期写入的页的指示。
12.根据权利要求11所述的装置,所述存储控制器至少在所述第一页修改日志和所述第二页修改日志之中轮换以生成条目,并且所述取回组件至少在所述第一页修改日志和所述第二页修改日志之中轮换以取回对近期写入的页的指示。
13.根据权利要求10所述的装置,所述图形控制器包括执行所述取回组件或所述扫描组件中的至少一个的第二处理器组件。
14.根据权利要求13所述的装置,所述第二处理器组件基于由所述第二处理器组件执行的图形操作对所述第二处理器组件的处理资源的当前使用程度来选择性地执行所述取回组件或所述扫描组件中的至少一个。
15.根据权利要求10所述的装置,所述图形控制器包括用于存储恶意软件数据库的第二存储装置,所述恶意软件数据库包括对供所述扫描组件使用以检测恶意软件的至少可执行指令的模式的指示。
16.根据权利要求10所述的装置,包括用于将所述处理设备耦合到网络的网络接口,所述扫描组件操作所述网络接口,以响应于在页内检测到恶意软件而将所述处理设备从所述网络断开连接。
17.一种用于支持安全处理的计算机实现的方法,包括:
由处理设备的第一处理器组件在被划分为多个页的第一存储装置内维护的第一页修改日志内按时间顺序生成条目,每个条目指示由所述第一处理器组件对所述多个页中的一个页进行的写入存取;
由所述处理设备的图形控制器循环地从所述第一页修改日志中取回对所述多个页中的至少一个近期写入的页的指示;以及
由所述图形控制器循环地扫描所述至少一个近期写入的页以检测所述至少一个近期写入的页内的恶意软件。
18.根据权利要求17所述的计算机实现的方法,包括:
提供用于对所述多个页中的页进行存取的地址转换以支持基于所述多个页的虚拟寻址;以及
响应于提供用于对所述多个页中的一个页进行的写入存取的地址转换,生成所述第一页修改日志内的每个条目。
19.根据权利要求18所述的计算机实现的方法,包括:
由所述第一处理器组件在所述第一存储装置内生成多层页表;以及
由所述第一处理器组件遍历所述多层页表以转换地址,以便支持由主机OS生成的多个虚拟机(VM)并且使得在所述VM中的一个VM内采用虚拟寻址的客体OS能够通过所述主机OS来至少存取与所述VM中的所述一个VM相关联的所述多个页的子集。
20.根据权利要求19所述的计算机实现的方法,包括:
由所述第一处理器组件生成多个页修改日志内的条目,每个VM与所述多个页修改日志中的至少一个页修改日志相关联,所述多个页修改日志包括所述第一页修改日志;以及
由所述图形控制器循环地从所述多个页修改日志中取回对近期写入的页的指示。
21.根据权利要求18所述的计算机实现的方法,所述第一页修改日志容纳有限数量的条目,所述方法包括由所述第一处理器组件生成在所述第一存储装置内维护的第二页修改日志内的条目,以便允许在所述第一页修改日志内的条目被由地址转换器生成的新条目覆写之前有更多时间从所述第一页修改日志内的条目中取回对近期写入的页的指示。
22.根据权利要求21所述的计算机实现的方法,包括:
由所述第一处理器组件至少在所述第一页修改日志和所述第二页修改日志之中轮换以生成条目;以及
由所述图形控制器至少在所述第一页修改日志和所述第二页修改日志之中轮换以取回对近期写入的页的指示。
23.根据权利要求17所述的计算机实现的方法,所述图形控制器包括第二处理器组件,所述方法包括基于由所述第二处理器组件执行的图形操作对所述第二处理器组件的处理资源的当前使用程度来选择性地执行以下中的至少一个:循环地从所述第一页修改日志中取回对所述多个页中的至少一个近期写入的页的指示,或循环地扫描所述至少一个近期写入的页以检测所述至少一个近期写入的页内的恶意软件。
24.根据权利要求23所述的计算机实现的方法,所述图形操作包括提供用户接口、渲染三维对象或对运动视频进行解压缩中的至少一个。
25.至少一种有形的机器可读存储介质,其包括指令,所述指令在由处理器组件执行时使所述处理器组件执行根据权利要求17-24中的任一项所述的方法。
CN201680068821.6A 2015-12-24 2016-11-25 用于以最小性能降级检测恶意软件的技术 Active CN108369624B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/757,945 US9817976B2 (en) 2015-12-24 2015-12-24 Techniques for detecting malware with minimal performance degradation
US14/757,945 2015-12-24
PCT/US2016/063762 WO2017112335A1 (en) 2015-12-24 2016-11-25 Techniques for detecting malware with minimal performance degradation

Publications (2)

Publication Number Publication Date
CN108369624A true CN108369624A (zh) 2018-08-03
CN108369624B CN108369624B (zh) 2023-01-06

Family

ID=59087099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680068821.6A Active CN108369624B (zh) 2015-12-24 2016-11-25 用于以最小性能降级检测恶意软件的技术

Country Status (4)

Country Link
US (2) US9817976B2 (zh)
CN (1) CN108369624B (zh)
DE (1) DE112016006050T5 (zh)
WO (1) WO2017112335A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061918B2 (en) * 2016-04-01 2018-08-28 Intel Corporation System, apparatus and method for filtering memory access logging in a processor
EP3352110B1 (en) * 2017-01-23 2020-04-01 Cyphort Inc. System and method for detecting and classifying malware
US11947458B2 (en) * 2018-07-27 2024-04-02 Vmware, Inc. Using cache coherent FPGAS to track dirty cache lines
JP2021106369A (ja) * 2019-12-27 2021-07-26 京セラドキュメントソリューションズ株式会社 情報処理装置及び画像形成装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609651A (zh) * 2012-02-07 2012-07-25 苏州工业园区飞酷电子科技有限公司 计算机设备中的恶意软件检测
US20120291126A1 (en) * 2011-05-12 2012-11-15 Rutgers, The State University Of New Jersey Balancing Malware Rootkit Detection with Power Consumption on Mobile Devices
CN105190571A (zh) * 2013-05-13 2015-12-23 Arm有限公司 页表数据管理

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489150B2 (en) * 2003-08-14 2016-11-08 Dell International L.L.C. System and method for transferring data between different raid data storage types for current data and replay data
US7694340B2 (en) * 2004-06-21 2010-04-06 Microsoft Corporation Anti virus for an item store
US7765593B1 (en) * 2004-06-24 2010-07-27 Mcafee, Inc. Rule set-based system and method for advanced virus protection
US8474032B2 (en) * 2006-05-17 2013-06-25 Richard Fetik Firewall+ storage apparatus, method and system
US7797748B2 (en) 2007-12-12 2010-09-14 Vmware, Inc. On-access anti-virus mechanism for virtual machine architecture
US7472420B1 (en) 2008-04-23 2008-12-30 Kaspersky Lab, Zao Method and system for detection of previously unknown malware components
US8347386B2 (en) * 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8607340B2 (en) * 2009-07-21 2013-12-10 Sophos Limited Host intrusion prevention system using software and user behavior analysis
US8474039B2 (en) 2010-01-27 2013-06-25 Mcafee, Inc. System and method for proactive detection and repair of malware memory infection via a remote memory reputation system
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US8584242B2 (en) 2011-07-12 2013-11-12 At&T Intellectual Property I, L.P. Remote-assisted malware detection
US20140181975A1 (en) * 2012-11-06 2014-06-26 William Spernow Method to scan a forensic image of a computer system with multiple malicious code detection engines simultaneously from a master control point
US9967264B2 (en) * 2014-09-14 2018-05-08 Sophos Limited Threat detection using a time-based cache of reputation information on an enterprise endpoint

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120291126A1 (en) * 2011-05-12 2012-11-15 Rutgers, The State University Of New Jersey Balancing Malware Rootkit Detection with Power Consumption on Mobile Devices
CN102609651A (zh) * 2012-02-07 2012-07-25 苏州工业园区飞酷电子科技有限公司 计算机设备中的恶意软件检测
CN105190571A (zh) * 2013-05-13 2015-12-23 Arm有限公司 页表数据管理

Also Published As

Publication number Publication date
CN108369624B (zh) 2023-01-06
US10318733B2 (en) 2019-06-11
US20180129808A1 (en) 2018-05-10
WO2017112335A1 (en) 2017-06-29
DE112016006050T5 (de) 2018-09-06
US9817976B2 (en) 2017-11-14
US20170185773A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
CN108369624A (zh) 用于以最小性能降级检测恶意软件的技术
CN107851152A (zh) 用于安全控制器的分布式操作的技术
CN102622329B (zh) 多核计算机中的远程核操作
US11327900B2 (en) Securing memory accesses in a virtualized environment
CN104364775B (zh) 具有段偏移寻址的专用存储器访问路径
CN106164899B (zh) 从分布式存储系统的高效数据读取
CN102110196B (zh) 并行运行多用户操作系统间的数据安全传输方法及系统
US20110271014A1 (en) Direct i/o device access by a virtual machine with memory managed using memory disaggregation
CN101351773A (zh) 基于存储器访问数据结构执行直接高速缓存访问事务
US9015440B2 (en) Autonomous memory subsystem architecture
CN103430145A (zh) 页面错误应对机制
CN107408077A (zh) 存储器扫描方法和装置
CN113781617B (zh) 使用一个或更多个神经网络生成环境
US20140040541A1 (en) Method of managing dynamic memory reallocation and device performing the method
CN103984671B (zh) 多核处理器系统和用于操作多核处理器系统的方法
CN106462522A (zh) 基于闪存的存储设备的输入/输出虚拟化(iov)主机控制器(hc)(iov‑hc)
CN105393218A (zh) 通过虚拟机切换的重构
CN107250980A (zh) 具有图形和系统存储器冲突检查的计算方法和设备
CN104951244B (zh) 用于存取数据的方法和设备
US10915445B2 (en) Coherent caching of data for high bandwidth scaling
EP1807767A1 (en) A virtual address cache and method for sharing data stored in a virtual address cache
CN101751356B (zh) 用于改进直接存储器存取传送效率的方法、系统和装置
US11836361B2 (en) Implementing compiler-based memory safety for a graphic processing unit
US11745347B2 (en) Method for assessing the quality of a robotic grasp on 3D deformable objects

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