CN102439577B - 一种构建内存访问模型的方法及装置 - Google Patents

一种构建内存访问模型的方法及装置 Download PDF

Info

Publication number
CN102439577B
CN102439577B CN201180002377.5A CN201180002377A CN102439577B CN 102439577 B CN102439577 B CN 102439577B CN 201180002377 A CN201180002377 A CN 201180002377A CN 102439577 B CN102439577 B CN 102439577B
Authority
CN
China
Prior art keywords
access
page
memory
page table
target process
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
Application number
CN201180002377.5A
Other languages
English (en)
Other versions
CN102439577A (zh
Inventor
刘仪阳
王伟
裘稀石
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN102439577A publication Critical patent/CN102439577A/zh
Application granted granted Critical
Publication of CN102439577B publication Critical patent/CN102439577B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种构建内存访问模型的方法及装置,涉及计算机领域,所述方法包括:获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的Present位清零;对引用所述内存块的进程进行实时监听并开始计时;如果引用所述内存块的进程访问所述内存块中的页时产生缺页中断事件,则增加所述访问的页的访问次数;根据所述内存块中的每个页的访问次数和计时的时间构建所述内存块的内存访问模型,所述内存访问模型至少包括所述内存块中的每个页的访问次数和访问频率。所述装置包括:第一获取模块、第一监听柑、第一增加模块和第二获取模块。本发明能够减少内存消耗和系统性能的影响,以及避免造成系统崩溃。

Description

一种构建内存访问模型的方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种构建内存访问模型的方法及装置。
背景技术
随着计算机技术的日新月异的发展,处理器的速度和内存访问速度的差距越来越大,内存系统成为性能的瓶颈,因此针对内存系统亟需优化。其中,如果能够构建出应用程序的内存访问模型,就可以根据构建的内存访问模型提出合适的内存系统的优化方法,从而可以对内存系统进行优化。
目前,现有技术存在一种构建内存访问模型的方法,具体为:在计算机系统上,实时监听应用程序,如果监听出应用程序访问内存,则获取应用程序每次访问内存时的内存访问地址,将获取的内存访问地址存储在内存中指定的区域内,然后再根据指定的区域内存储的内存访问地址构建应用程序的内存访问模型。其中,当构建出应用程序的内存访问模型后就可以根据构建的内存访问模型对内存系统提出合适的优化方法。
其中,现有技术在构建内存访问模型时,需将应用程序每次访问内存时的内存访问地址存储在内存中指定的区域内,如此会消耗大量的内存,将会产生内存资源紧张,从而影响系统性能,甚至造成系统崩溃。
发明内容
为了减少内存消耗和系统性能的影响以及避免造成系统崩溃,本发明实施例提供了一种构建内存访问模型的方法及装置。所述技术方案如下:
一种构建内存访问模型的方法,所述方法包括:
获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的Present(当前)位清零,所述页表用于存储引用所述内存块的进程所要访问的页的页表项;
对引用所述内存块的进程进行实时监听并开始计时;
如果引用所述内存块的进程访问所述内存块中的页时产生缺页中断事件,则增加所述访问的页的访问次数;其中,所述缺页中断事件为引用所述内存块的进程判断出所述访问的页的页表项包括的Present位被清零时产生的,所述访问的页的页表项为引用所述内存块的进程从其对应的页表中获取得到的;
根据所述内存块中的每个页的访问次数和计时的时间构建所述内存块的内存访问模型,所述内存访问模型至少包括所述内存块中的每个页的访问次数和访问频率。。
一种构建内存访问模型的方法,所述方法包括:
获取目标进程对应的页表,并将所述页表中存储的每个页表项所包括的Present位清零,所述页表用于存储所述目标进程所要访问的页的页表项;
对所述目标进程进行实时监听并开始计时;
如果所述目标进程访问待访问的页时产生缺页中断事件,则增加所述待访问的页的访问次数;其中,所述缺页中断事件为所述目标进程判断所述待访问的页的页表项包括的Present位被清零时产生的,所述待访问的页的页表项为所述目标进程从其对应的页表中获取得到的;
根据所述目标进程所访问的每个页的访问次数和计时的时间构建所述目标进程的内存访问模型,所述内存访问模型至少包括所述目标进程所访问的每个页的访问次数和访问频率。
一种构建内存访问模型的装置,所述装置包括:
第一获取模块,用于获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的Present位清零,所述页表用于存储引用所述内存块的进程所要访问的页的页表项;
第一监听模块,用于对引用所述内存块的进程进行实时监听并开始计时;
第一增加模块,用于如果引用所述内存块的进程访问所述内存块中的页时产生缺页中断事件,则增加所述访问的页的访问次数;其中,所述缺页中断事件为引用所述内存块的进程判断出所述访问的页的页表项包括的Present位被清零时产生的,所述访问的页的页表项为引用所述内存块的进程从其对应的页表中获取得到的;
第二获取模块,用于根据所述内存块中的每个页的访问次数和计时的时间构建所述内存块的内存访问模型,所述内存访问模型至少包括所述内存块中的每个页的访问次数和访问频率。
一种构建内存访问模型的装置,所述装置包括:
第五获取模块,用于获取目标进程对应的页表,并将所述页表中存储的每个页表项所包括的Present位清零,所述页表用于存储所述目标进程所要访问的页的页表项;
第二监听模块,用于对所述目标进程进行实时监听并开始计时;
第二增加模块,用于所述目标进程访问待访问的页时产生缺页中断事件,则增加所述待访问的页的访问次数;其中,所述缺页中断事件为所述目标进程判断所述待访问的页的页表项包括的Present位被清零时产生的,所述待访问的页的页表项为所述目标进程从其对应的页表中获取得到的;
第六获取模块,用于根据所述目标进程所访问的每个页的访问次数和计时的时间构建所述目标进程的内存访问模型,所述内存访问模型至少包括所述目标进程所访问的每个页的访问次数和访问频率。
在本发明中,获取引用内存块的进程对应的页表并将获取的页表中的每个页表项包括的Present位清零,对引用该内存块的进程进行实时监听并开始计时,如果引用该内存地块的进程访问页时产生缺页中断事件,则增加访问的页的访问次数,根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型;或者,获取目标进程对应的页表,将获取的页表中的每个页表项包括的Present位清零,对该目标进程进行实时监听并开始计时,如果目标进程访问内存的页时产生缺页中断事件,则增加访问的页的访问次数,根据目标进程所访问的页的访问次数和计时的时间构建目标进程的内存访问模型,如此在构建该内存块的内存访问模型时不需要记录引用该内存块的每个进程访问该内存块的内存访问地址;或者在构建目标进程的内存访问模型时不需要记录目标进程访问内存的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
附图说明
图1是本发明实施例1提供的一种构建内存访问模型的方法流程图;
图2是本发明实施例2提供的一种构建内存访问模型的方法流程图;
图3是本发明实施例3提供的一种构建内存访问模型的方法流程图;
图4是本发明实施例4提供的一种构建内存访问模型的方法流程图;
图5是本发明实施例5提供的一种构建内存访问模型的方法流程图;
图6是本发明实施例6提供的一种构建内存访问模型的装置示意图;
图7是本发明实施例7提供的一种构建内存访问模型的装置示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本发明实施例提供了一种构建内存访问模型的方法,包括:
步骤101:获取引用内存块的进程对应的页表,并将获取的页表中存储的每个页表项所包括的Present位清零;
其中,页表用于存储引用该内存块的进程所要访问的页的页表项。
步骤102:对引用该内存块的进程进行实时监听并开始计时;
步骤103:如果引用该内存块的进程访问该内存块中的页时产生缺页中断事件,则增加访问的页的访问次数;
其中,该缺页中断事件为引用该内存块的进程判断出访问的页的页表项包括的Present位被清零时产生的,访问的页的页表项为引用该内存块的进程从其对应的页表中获取得到的。
步骤104:根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型,内存访问模型至少包括该内存块中的每个页的访问次数和访问频率。
在本发明实施例中,获取引用内存块的进程对应的页表并将获取的页表中的每个页表项包括的Present位清零,对引用该内存块的进程进行实时监听并开始计时,如果引用该内存块的进程访问页时产生缺页中断事件,则增加访问的页的访问次数,根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型,如此在构建该内存块的内存访问模型时不需要记录引用该内存块的每个进程访问内存的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例2
如图2所示,本发明实施例提供了一种构建内存访问模型的方法,包括:
步骤201:对节点的内存进行划分,将节点的内存划分成多个内存段;
其中,可以通过预设的划分策略将节点的内存划分成多个内存段,预设的划分策略可以包括:将节点的内存划分成等大小的多个内存段。
其中,计算机系统中包括多个节点,且每个节点至少包括CPU(Central Processing Unit,中央处理器)和内存,对于任一个节点,该节点内的CPU等设备访问该节点内的内存称为访问本地内存,在计算机系统中,该节点以外的其他节点访问该节点内的内存称为远端节点访问该内存。
步骤202:对于任一个内存段,通过该节点对应的互联芯片实时监听该内存段并开始计时,如果监听出存在远端节点(除该节点以外的其他节点)访问该内存段,则增加该内存段被远端节点访问的次数;
其中,每个节点都有对应的互联芯片,对于任一个节点,如果存在远端节点需要访问该节点的内存,则远端节点需要通过该节点的互联芯片访问该节点的内存;因此,在本实施例中,可以通过该节点对应的互联芯片监听是否存在远端节点访问该节点中的内存段。
其中,互联芯片中包括多个计时器和多个计数器,在本实施例中,可以在互联芯片包括的多个计时器和多个计数器中为该内存段选择对应的一个计时器和计数器,该计时器用于计时,该计数器用于统计该内存段被远端节点访问的次数,即如果互联芯片监听出存在远端节点访问该内存段,则通过增加该计数器的值来实现增加该内存段被远端节点访问的次数。另外,该计数器的初值可以为0等,增加该内存段被远端节点访问的次数可以为1等,在本实施例中,对二者的具体取值不做限定。
步骤203:根据该内存段被远端节点访问的次数和计时的时间,计算出该内存段被远端节点访问的访问频率;
其中,可以周期性地计算出该内存段被远端节点访问的访问频率。具体地,从该内存段对应的计时器中读取计时的时间,从该内存段对应的计数器中读取该内存段被远端节点访问的次数,将该内存段被远端节点访问的次数与计时的时间做比值运算,得到该内存段被远端节点访问的访问频率。
其中,在本实施例中,可以从该节点对应的互联芯片中为该节点包括的每个内存段选择对应的一个计时器和计数器,如此可以通过互联芯片实时监听该节点包括的每个内存段,从而得到每个内存段被远端节点访问的次数,然后再周期性地计算出每个内存段被远端节点访问的访问频率。
步骤204:判断该内存段被远端节点访问的次数是否超过第一阈值以及该内存段被远端节点访问的访问频率是否超过第二阈值,如果该内存段被远端节点访问的次数超过第一阈值且该内存段被远端节点访问的访问频率超过第二阈值,则执行步骤205;
其中,如果该内存段被远端节点访问的次数没有超过第一阈值或该内存段被远端节点访问的访问频率没有超过第二阈值,则继续实时监听是否有远端节点访问该内存段。
步骤205:对该内存段进行划分,将该内存段划分成多个内存块;
其中,可以通过预设的划分策略对该内存段进行划分,将该内存段划分成多个内存块。
步骤206:对于任一个内存块,通过互联芯片实时监听该内存块并开始计时,如果监听出存在远端节点访问该内存块,则增加该内存块被远端节点访问的次数;
其中,在本实施例中,可以在互联芯片剩余的计数器和计时器中为每个内存块选择对应的计数器和计时器,每个计数器用于统计其自身对应的内存块被远端节点访问的次数,即对于任一个内存块,如果监听出存在远端节点访问该内存块,则通过增加该内存块对应的计数器的值来实现增加该内存块被远端节点访问的次数。
步骤207:根据该内存块被远端节点访问的次数和计时的时间,计算出该内存块被远端节点访问的访问频率;
其中,可以周期性地计算出该内存块被远端节点访问的访问频率。具体地,将该内存块被远端节点访问的次数与计时的时间做比值运算,得到该内存块被远端节点访问的访问频率。
其中,在本实施例中,可以按上述206和207的步骤计算出每个内存块的被远端节点访问的访问频率。
步骤208:判断该内存块被远端节点访问的次数是否超过第三阈值以及该内存块被远端节点访问的访问频率是否超过第四阈值,如果该内存段被远端节点访问的次数超过第三阈值且该内存段被远端节点访问的访问频率超过第四阈值,则执行步骤209;
其中,如果该内存块被远端节点访问的访问次数没有超过第三阈值或该内存块被远端节点访问的访问频率没有超过第四阈值,则继续实时监听是否有远端节点访问该内存块。
其中,第三阈值可以等于、大于或小于第一阈值,第四阈值可以等于、大于或小于第二阈值。
其中,在本实施例中,如果该内存块被远端节点访问的次数超过第三阈值且该内存块被远端节点访问的访问频率超过第四阈值,则可以为该内存块建立对应的一个统计线程,并通过该统计线程来执行如下的步骤。
步骤209:通过反向映射的方法,获取到引用该内存块的所有进程,并获取每个进程对应的页表,每个进程对应的页表用于存储每个进程所要访问的页的页表项,页的页表项至少包括页的页表项信息和页的Present位;
其中,内存的最小单位为页,每个内存块包括一个或多个页,访问内存的每个进程对应一个页表,页表中存储进程所要访问的页的页表项;其中,页表中的每个页表项包括一个Present位和页表项信息,如果某个页有效,则该页的页表项中包括的Present位被置位,且进程可以访问该页,如果某个页无效,则该页的页表项中包括的Present位被清零,且进程无法直接访问该页。
步骤210:在节点的内存中申请一块内存区域,将获取的页表中的每个页表项包括的Present位存储在该内存区域中;
具体地,在节点的内存中划分一块内存区域,对于获取的任一个页表,获取该页表对应的进程的进程号,根据该页表中的每个页表项在页表中的序号、获取的进程号和该内存区域的起始地址通过预设的计算模型计算出在该内存区域中存储每个页表项中包括的Present位的内存地址,根据存储每个页表项中包括的Present位的内存地址将该页表中的每个页表项包括的Present位存储到该内存区域中。其中,对于获取的其他每个页表,按上述相同的方法将其他每个页表中的每个页表项包括的Present位存储在该内存区域中。
其中,预设的计算模型可以如公式(1)所示,Memoryaddress为内存地址,Startaddress为内存区域的起始地址,ProcessID为进程号,element为系数以及number为页表项在页表中的序号。
Memoryaddress=Startaddress+ProcessID×element+number……(1)。
步骤211:在获取的页表中将每个页表项包括的Present位清零;
其中,当进程需要访问内存的某个页时,该进程先从其自身对应的页表中获取所要访问页对应的页表项,对获取的页表项包括的Present位进行判断,如果获取的页表项包括的Present位被置位,则该进程根据获取的页表项包括所需要访问页的页表项信息获取所需要访问页的起始地址,根据获取的起始地址从内存中寻找出所需要访问的页,然后在寻找的页中进行数据的读写操作以实现访问所需要访问的页;如果获取的页表项包括的Present位被清零,则该进程会产生缺页中断事件。
其中,对于任一个进程,无法监测到该进程访问内存中的页的过程,但可以检测出该进程产生的缺页中断事件;如果该进程从其自身对应的页表中获取所需要访问页的页表项中包括的Present位被清零,则该进程会产生缺页中断事件,可以检测到该进程产生的缺页中断事件,并据此确定出该进程访问内存中的页。因此,在本实施例中,在引用该内存块的每个进程对应的页表中,将每个页的页表项包括的Present位全部清零,如此当引用该内存块的进程访问该内存块中的页时就会产生缺页中断事件,并检测到该进程产生的缺页中断事件,然后据此确定出该进程访问该内存块中的页。
步骤212:实时监听引用该内存块的进程并开始计时,如果存在引用该内存块的进程访问该内存块中的页时产生缺页中断事件,增加该进程所访问的页的次数;
具体地,实时监听引用该内存块的进程并开始计时,如果监听出存在引用该内存块的进程访问该内存块中的页时产生的缺页中断事件,其中,缺页中断事件是该进程判断出访问的页的页表项包括的Present位被清零时产生的,访问的页的页表项为该进程从其自身对应的页表中获取得到的,获取访问的页的页表项包括的页表项信息,根据该页表项信息获取访问的页的起始地址,并根据获取的起始地址确定出访问的页,并增加访问的页的访问次数。
其中,在本实施例中,可以为该内存块设置对应的计时器以及为该内存块包括的每个页设置对应的一个计数器,每个页对应的计数器用于统计其自身对应的页的访问次数,即通过增加某个页对应的计数器的值来实现增加该页的访问次数;由于该内存块中包括的页的数目可能较多,因此该内存块中包括的每个页对应的计数器都是采用软件的形式来实现统计每个页的访问次数。
其中,在本实施例中,由于对引用该内存块中的所有进程进行监控,从而可以统计出该内存块中的每个页的访问次数。
进一步地,为了保证该进程能够正常访问所访问的页,在本实施例中,当增加该进程所访问的页的次数之后,还可以执行如下(1)-(3)的步骤,分别为:
(1):从该内存区域中获取该进程所访问的页的Present位,根据获取的Present位判断该进程所访问的页在节点的内存中是否有效,如果有效,则执行(2);
具体地,根据该进程的进程号、该进程所访问的页的页表项在页表中的序号和该内存区域的起始地址并通过预设的计算模型计算出内存地址,根据计算的内存地址从该内存区域中对应的空间中读取该进程所访问的页的Present位,对获取的Present位进行判断,如果获取的Present位被置位,则判断出该进程所要访问的页有效,如果获取的Present位被清零,则判断出该进程所访问的页无效。
其中,如果判断出该进程所访问的页无效,则需要触发缺页异常处理程序,并由触发的缺页异常处理程序进行异常处理。
(2):在该进程对应的页表中将该进程所访问的页的页表项包括的Present位置位,并触发该进程重新访问所访问的页;
其中,该进程被触发后,从自身对应的页表中获取其自身所访问的页的页表项,并对获取的页表项中包括的Present位进行判断,且判断出获取的页表项包括的Present位被置位,然后再根据获取的页表项中包括的页表项信息获取所要访问页的起始地址,根据获取的起始地址从该内存块中寻找出对应的页,并在寻找的页中进行数据的读写操作,如此该进程实现访问所访问的页。
(3):当该进程访问完所访问的页,在该进程对应的页表中将该进程所访问的页的页表项中包括的Present位清零。
步骤213:根据该内存块中的每个页的访问次数和计时的时间,构建该内存块的内存访问模型,内存访问模型至少包括该内存块中的每个页的访问频率和访问次数。
其中,可以周期性地构建内存访问模型。具体地,分别将该内存块中的每个页的访问次数与计时的时间做比值运算,得到该内存块包括的每个页的访问频率,如此得到该内存块的内存访问模型至少包括该内存块中的每个页的访问频率和访问次数。
在本发明实施例中,获取到远端节点访问的次数超过第三阈值以及远端节点访问的访问频率超过第四阈值的内存块,获取引用该内存块的进程对应的页表并将获取的页表中的每个页表项的Present位清零,对引用该内存块的进程进行实时监听并开始计时,如果监听出存在引用该内存块的进程访问页时产生的缺页中断事件,则增加访问的页的访问次数,根据该内存块中的每个页的访问次数和计时的时间构建内存访问模型,如此在构建内存访问模型时不需要记录引用该内存块的每个进程访问该内存块的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例3
如图3所示,本发明实施例提供了一种构建内存访问模型的方法,包括:
步骤301:通过预设的划分策略对节点的内存进行划分,将节点的内存划分成多个内存块;
步骤302:针对任一个内存块,通过反向映射的方法,获取到引用该内存块的所有进程,并获取每个进程对应的页表,每个进程对应的页表用于存储每个进程所要访问的页的页表项,页的页表项至少包括页的页表项信息和页的Present位;
其中,内存的最小单位为页,每个内存块包括一个或多个页,访问内存的每个进程对应一个页表,页表中存储每个进程所要访问的页的页表项;其中,页表中的每个页表项包括一个Present位和页表项信息,如果某个应页有效,则该页的页表项中包括的Present位被置位,且进程可以访问该页,如果某个页无效,则该页的页表项中包括的Present位被清零,且进程无法直接访问该页。
步骤303:在节点的内存中申请一块内存区域,将获取的页表中的每个页表项包括的Present位存储在该内存区域中;
具体地,在节点的内存中划分一块内存区域,对于获取的任一个页表,获取该页表对应进程的进程号,根据该页表中的每个页表项在页表中的序号、获取的进程号和该内存区域的起始地址通过预设的计算模型计算出在该内存区域中存储该页表中的每个页表项包括的Present位的内存地址,根据存储每个页表项包括的Present位的内存地址将该页表中的每个页表项包括的Present位存储在对应的内存空间中。其中,对于获取的其他每个页表,按上述相同的方法将其他每个页表中的每个页表项包括的Present位存储在该内存区域中。
步骤304:在获取的页表中将每个页的页表项包括的Present位清零;
其中,当进程需要访问内存的某个页时,该进程先从其自身对应的页表中获取所要访问页对应的页表项,对获取的页表项包括的Present位进行判断,如果获取的页表项包括的Present位被置位,则该进程根据获取的页表项包括所需要访问页的页表项信息获取所需要访问页的起始地址,根据获取的页的起始地址从内存中寻找出所需要访问的页,然后在寻找的页中进行数据的读写操作以实现访问所需要访问的页;如果获取的页表项包括的Present位被清零,则该进程会产生缺页中断事件。
其中,在本实施例中,在引用该内存块的每个进程对应的页表中,将每个页的页表项包括的Present位全部清零,如此当引用该内存块的进程访问该内存块中的页时就会产生缺页中断事件,并检测到该进程产生的缺页中断事件,然后据此确定出该进程访问该内存块中的页。
步骤305:实时监听引用该内存块的进程并开始计时,如果存在引用该内存块的访问该内存块中的页时产生的缺页中断事件,增加该进程所访问的页的次数;
具体地,实时监听引用该内存块的进程并开始计时,如果监听出存在引用该内存块的进程访问该内存块中的页时产生的缺页中断事件,其中,该进程判断出访问的页的页表项包括的Present位被清零时产生的,访问的页的页表项为该进程从其自身对应的页表中获取得到的,获取访问的页的页表项包括的页表项信息,根据该页表项信息获取该进程所访问页的起始地址,并根据获取的起始地址确定出对应的页,并增加确定的页的访问次数。
其中,在本实施例中,可以为该内存块设置对应的计时器以及为该内存块包括的每个页设置对应的一个计数器,每个页对应的计数器用于统计其自身对应的页的访问次数,即通过增加某个页对应的计数器的值来实现增加该页的访问次数;由于该内存块中包括的页的数目可能较多,因此该内存块中包括的每个页对应的计数器都是采用软件的形式来实现统计每个页的访问次数。
其中,在本实施例中,由于对引用该内存块中的所有进程进行监控,从而可以统计出该内存块中的每个页的访问次数。
进一步地,为了保证该进程能够正常访问所访问的页,本实施例中,当增加该进程所访问的页的次数之后,还可以执行如下(a)-(c)的步骤,分别为:
(a):从该内存区域中获取该进程所访问的页的Present位,根据获取的Present位判断该进程所访问的页在内存中是否有效,如果有效,则执行步骤(b);
具体地,根据该进程的进程号、该进程所访问的页的页表项在页表中的序号和该内存区域的起始地址并通过预设的计算模型计算出内存地址,根据计算的内存地址从该内存区域中对应的空间中读取该进程所访问的页的Present位,对获取的Present位进行判断,如果获取的Present位被置位,则判断出该进程所要访问的页有效,如果获取的Present位被清零,则判断出该进程所要访问的页无效。
其中,如果判断出该进程所要访问的页无效,则需要触发缺页异常处理程序,并由触发的缺页异常处理程序进行异常处理。
(b):在该进程对应的页表中将该进程所要访问的页的页表项包括的Present位置位,并触发该进程重新访问所要访问的页;
其中,该进程被触发后,从自身对应的页表中获取其自身所需要访问的页的页表项,并对获取的页表项中包括的Present位进行判断,且判断出获取的页表项包括的Present位被置位,然后再根据获取的页表项中包括的页表项信息获取所要访问页的起始地址,根据获取的起始地址从该内存块中寻找出对应的页,并在寻找的页中进行数据的读写操作,如此该进程实现访问所要访问的页。
(c):当该进程访问完所要访问的页,在该进程对应的页表中将该进程所要访问的页的页表项中包括的Present位清零。
步骤306:根据该内存块中的每个页的访问次数和计时的时间,构建该内存块的内存访问模型,内存访问模型至少包括该内存块中的每个页的访问频率和访问次数。
具体地,分别将该内存块中的每个页的访问次数与计时的时间做比值运算,得到该内存块包括的每个页的访问频率,如此得到该内存块的内存访问模型至少包括该内存块中的每个页的访问频率和访问次数。
在本发明实施例中,获取引用内存块的进程对应的页表并将获取的页表中的每个页表项的Present位清零,对引用该内存块的进程进行实时监听并开始计时,如果监听出存在引用该内存块的进程访问页时产生的缺页中断事件,则增加访问的页的访问次数,根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型,如此在构建内存访问模型时不需要记录引用该内存块的每个进程访问该内存块的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例4
如图4所示,本发明实施例提供了一种构建内存访问模型的方法,包括:
步骤401:获取目标进程对应的页表,并将该页表中存储的每个页表项所包括的Present位清零,页表用于存储目标进程所要访问的页的页表项;
步骤402:对目标进程进行实时监听并开始计时;
步骤403:如果述目标进程访问待访问的页时产生缺页中断事件,则增加待访问的页的访问次数;
其中,该缺页中断事件为目标进程判断待访问的页的页表项包括的Present位被清零时产生的,待访问的页的页表项为目标进程从其对应的页表中获取得到的。
步骤404:根据目标进程所访问的每个页的访问次数和计时的时间构建目标进程的内存访问模型,内存访问模型至少包括目标进程所访问的每个页的访问次数和访问频率。
在本发明实施例中,获取目标进程对应的页表并将该页表中的每个页表项包括的Present位清零,对目标进程进行实时监听并开始计时,如果目标进程访问待访问的页时产生缺页中断事件,则增加待访问的页的访问次数,根据目标进程所访问的每个页的访问次数和计时的时间构建目标进程的内存访问模型,如此在构建目标进程的内存访问模型时不需要记录目标进程访问内存的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例5
如图5所示,本发明实施例提供了一种构建内存访问模型的方法,包括:
步骤501:当节点中的目标进程被调度到该节点中的处理器时,将目标进程访问本地内存的次数以及访问远端节点内存的次数加载到该处理器的统计计数寄存器中;
其中,目标进程的上下文信息中包括目标进程访问本地内存的次数和目标进程访问远端节点内存的次数。具体地,当节点中的进程被调度到该节点的处理器中时,从目标进程的上下文信息中提取目标进程访问本地内存的次数和访问远端节点内存的次数,将提取目标进程访问本地内存的次数和访问远端节点内存的次数加载到该处理器的统计计数寄存器中。
其中,该处理器中包括多个计数器,进一步地,从该处理器包括的多个计数器中选择两个计数器,分别为第一计数器和第二计数器,将第一计数器的初值设置为目标进程访问本地内存的次数,将第二计数器的初值设置为目标进程访问远端节点内存的次数。
其中,计算机系统中包括多个节点,节点至少包括处理器和内存,该节点中的处理器在运行目标进程时,目标进程需要访问该节点的内存即为目标进程访问本地内存,目标进程需要访问计算机系统中的其他节点的内存即为目标进程访问远端节点内存。
步骤502:通过该处理器对目标进程进行实时监听,如果监听出目标进程访问本地内存,则增加目标进程访问本地内存的次数,如果监听出目标进程访问远端节点内存,则增加目标进程访问远端节点内存的次数;
其中,可以通过增加第一计数器的值来实现增加目标进程访问本地内存的次数,以及通过增加第二计数器的值来实现增加目标进程访问远端节点内存的次数。
其中,当该处理器在运行目标进程时,如果目标进程需要访问本地内存,则目标进程会调用访问本地内存事件,如果目标进程需要访问远端节点内存,则目标进程会调用访问远端节点内存事件;因此可以通过该处理器实时监听到目标进程是否访问本地内存和远端节点内存。
其中,当目标进程被处理器调度后,处理器在每个时间片中为目标进程分配运行时间,然后在每个时间片中处理器在为目标进程分配的运行时间内运行目标进程。
其中,当目标进程被调离处理器时,可以将目标进程的上下文信息中包括目标进程访问本地内存的次数和目标进程访问远端节点内存的次数分别更新为增加后的目标进程访问本地内存的次数和目标进程访问远端节点内存的次数。
步骤503:当一个时间片结束时,获取目标进程被调度后运行的实际运行时间;
具体地,获取目标进程被调度到处理器后经过的时间片,将目标进程在获取的每个时间片内的运行时间进行累加得到目标进程的实际运行时间。
步骤504:根据增加后的目标进程访问本地内存的次数和访问远端节点内存的次数以及统计计数寄存器中存储的目标进程访问本地内存的次数和访问远端节点的内存的次数获取目标进程在实际运行时间内访问本地内存的次数和远端节点内存的次数;
其中,可以从第一计数器中读取目标进程访问本地内存的次数,从第二计数器中读取目标进程访问远端节点内存的次数。具体地,根据目标进程访问本地内存的次数和统计计数寄存器中存储目标进程访问本地内存的次数计算出目标进程在实际运行时间内访问本地内存的次数,根据目标进程访问远端节点内存的次数和统计计数寄存器存储目标进程访问远端节点内存的次数计数出目标进程在实际运行时间内访问远端节点内存的次数。
步骤505:根据目标进程在实际运行时间内访问本地内存的次数和访问远端节点内存的次数以及实际运行时间计算出目标进程的远近端访问比率和访问频率;
具体地,计算出目标进程在实际运行时间内访问本地内存的次数与访问远端节点内存的次数的比值,将计算出的比值作为目标进程的远近端访问比率,根据目标进程在实际运行时间内访问本地内存的次数和访问远端节点内存的次数计数出目标进程的访问次数,根据目标进程的访问次数和实际运行时间计算出目标进程的访问频率。
步骤506:对目标进程的远近端访问比率和访问频率进行判断,如果目标进程的远近端访问比率超过第一阈值且目标进程的访问频率超过预设的第六阈值,则执行步骤507;
其中,如果目标进程的远近端访问比率没有超过第五阈值或目标进程的访问频率没有超过第六阈值,则继续执行503。
步骤507:获取目标进程对应的页表,目标进程对应的页表用于存储目标进程所要访问的页的页表项,页的页表项至少包括页的页表项信息和Present位;
其中,内存的最小单位为页,每个进程对应一个页表,页表中存储进程所要访问页的页表项;其中,内存中的每个页对应一个Present位,如果某个页有效,则该页对应的Present位被置位,且进程可以访问该页,如果某个页无效,则该页对应的Present位被清零,且进程无法直接访问该页。
步骤508:在节点的内存中申请一块内存区域,将获取的页表存储的每个页的页表项中包括的Present位存储在该内存区域中;
具体地,在节点的内存中划分一块内存区域,获取目标进程的进程号,根据该页表中的每个页表项在页表中的序号、获取的进程号和该内存区域的起始地址通过预设的计算模型计算出在该内存区域中存储该页表中的每个页表项包括的Present位的内存地址,根据存储该页表中的每个页表项包括的Present位的内存地址将该页表中的每个页表项包括的Present位存储在该内存区域中。
步骤509:将获取的页表中的每个页表项中包括的Present位清零;
其中,当目标进程访问内存的某个页时,目标进程首先在其对应的页表中获取其自身所要访问页的页表项,并对获取的页表项中包括的Present位进行判断,由于目标进程对应的页表中存储的每个页的Present位被清零,所以目标进程判断出获取的页表项中包括的Present位被清零,然后目标进程产生缺页中断事件。
步骤510:实时监听目标进程并开始计时,如果目标进程访问待访问的页时产生缺页中断事件,则增加目标进程访问待访问的页的访问次数;
具体地,实时监听目标进程并开始计时,如果监听出目标进程访问内存中待访问的页时产生的缺页中断事件,其中,所述缺页中断事件为目标进程判断待访问的页的页表项包括的Present位被清零时产生的,待访问的页的页表项为目标进程从其对应的页表中获取得到的,获取待访问的页的页表项,根据该页表项包括待访问的页的页表项信息获取待访问的页的起始地址,根据获取的起始地址确定出待访问的页,并增加待访问的页的访问次数。
进一步地,为了保证目标进程能够正常访问待访问的页,本实施例中,当增加目标进程访问待访问的页的次数之后,还可以执行如下(A)-(C)的步骤,分别为:
(A):从该内存区域中获取待访问的页的Present位,根据待访问的页的Present位判断待访问的页在内存中是否有效,如果有效,则执行步骤513;
具体地,根据目标进程的进程号、待访问的页的页表项在页表中的序号和该内存区域的起始地址并通过预设的计算模型计算出内存地址,根据计算的内存地址从该内存区域中读取待访问的页的Present位,对获取的Present位进行判断,如果获取的Present位被置位,则判断出待访问的页有效,如果获取的Present位被清零,则判断出待访问的页无效。
其中,如果判断出待访问的页无效,则需要触发缺页异常处理程序,并由触发的缺页异常处理程序进行异常处理。
(B):在目标进程对应的页表中将待访问的页的页表项包括的Present位置位,并触发目标进程重新访问待访问的页;
其中,目标进程被触发后,从自身对应的页表中获取待访问的页的页表项,并对获取的页表项中包括的Present位进行判断,且判断出获取的页表项包括的Present位被置位,然后再根据获取的页表项中包括待访问的页的页表项信息获取待访问的页的起始地址,根据获取的起始地址从节点的内存中寻找出对应的页,并在寻找的页中进行数据的读写操作,如此目标进程实现访问待访问的页。
(C):当目标进程访问完待访问的页,在目标进程对应的页表中将待访问的页的页表项中包括的Present位清零。
步骤511:根据目标进程访问的每个页的访问次数和计时的时间,构建目标进程的内存访问模型,至少包括目标进程访问的每个页的访问次数和访问频率。
其中,可以周期性地构建内存访问模型,具体地,分别将目标进程访问的每个页的访问次数与计时的时间做比值运算,得到目标进程访问的每个的访问频率,如此得到目标进程的内存访问模型,至少包括目标进程访问的每个页的访问次数和访问频率。
进一步地,内存访问模型还可以包括目标进程的远近端访问比率。
在本发明实施例中,获取目标进程对应的页表并将该页表中的每个页表项的Present位清零,对目标进程进行实时监听并开始计时,如果监听出目标进程访问待访问的页时产生的缺页中断事件,则增加待访问的页的访问次数,根据目标进程所访问的每个页的访问次数和计时的时间构建目标进程的内存访问模型,如此在构建目标进程的内存访问模型时不需要记录目标进程访问内存的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例6
如图6所示,本发明实施例提供了一种构建内存访问模型的装置,包括:
第一获取模块601,用于获取引用内存块的进程对应的页表,并将获取的页表中存储的每个页表项所包括的Present位清零,页表用于存储引用该内存块的进程所要访问的页的页表项;
第一监听模块602,用于对引用该内存块的进程进行实时监听并开始计时;
第一增加模块603,用于如果监听出引用该内存块的进程访问该内存块中的页时产生缺页中断事件,则增加访问的页的访问次数;其中,缺页中断事件为引用该内存块的进程判断出访问的页的页表项包括的Present位被清零时产生的,访问的页的页表项为引用该内存块的进程从其对应的页表中获取得到的;
第二获取模块604,用于根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型,内存访问模型至少包括该内存块中的每个页的访问次数和访问频率。
其中,第一获取模块601包括:
第一获取单元,用于通过反向映射的方法,获取引用该内存块的进程并进一步获取引用该内存块的进程对应的页表;
第一存储单元,用于在节点的内存中申请一块内存区域,将获取的页表中的每个页表项包括的Present位存储在内存区域中;
第一清零单元,用于将获取的页表中的每个页表项包括的Present位清零。
其中,第一存储单元包括:
第一计算子单元,用于在节点的内存中申请一块内存区域,根据引用该内存块的进程的进程号、获取的页表中的每个页表项在页表中的序号和该内存区域的起始地址,并通过预设的计算模型计算出在该内存区域中存储获取的页表中的每个页表项包括的Present位的存储地址;
第一存储子单元,用于根据获取的页表中的每个页表项包括的Present位的存储地址,将获取的页表中的每个页表项包括的Present位存储在该内存区域中。
其中,第二获取模块604,具体用于根据该内存块中的每个页的访问次数和计时的时间计算出该内存块中的每个页的访问频率,得到内存访问模型,至少包括该内存块中的每个页的访问次数和访问频率。
进一步地,该装置还包括:
第三获取模块,用于将节点的内存划分成多个内存段,获取内存段被远端节点访问的访问次数和访问频率,远端节点为计算机系统中除该节点以外的其他节点;
第一划分模块,用于如果存在被远端节点访问的访问次数超过第一阈值且被远端节点访问的访问频率超过第二阈值的内存段,则将该内存段划分成多个内存块;
第四获取模块,用于获取内存块被远端节点访问的访问次数和访问频率,如果存在被远端节点的访问次数超过第三阈值且被远端节点访问的访问频率超过第四阈值的内存块,则执行获取引用该内存块的进程对应的页表的操作。
其中,第三获取模块包括:
第一监听单元,用于将节点的内存划分成多个内存段,通过节点对应的互联芯片实时监听内存段并开始计时,如果监听出存在远端节点访问内存段,则增加该内存段被远端节点访问的访问次数;
第一计算单元,用于根据该内存段被远端节点访问的访问次数和计时的时间计算出该内存段被远端节点访问的访问频率。
其中,第四获取模块包括:
第二监听单元,用于通过节点对应的互联芯片实时监听内存块并开始计时,如果监听出存在远端节点访问内存块,则增加该内存块被远端节点访问的访问次数;
第二计算单元,用于根据该内存块被远端节点访问的访问次数和计时的时间计算出该内存块被远端节点访问的访问频率。
进一步地,该装置还包括:
第一判断模块,用于从内存区域中获取访问的页的Present位,根据获取的Present位判断访问的页在节点的内存中是否有效;
第一置位模块,用于如果有效,则在该进程对应的页表中将访问的页的页表项包括的Present位置位,并触发引用该内存块的进程继续访问访问的页。
其中,第一判断模块包括:
第三计算单元,用于根据引用该内存块的进程的进程号,访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在内存区域中存储访问的页的Present位的内存地址;
第一判断单元,用于根据计算出的内存地址从内存区域中读取访问的页的Present位,如果读取的Present位被置位,则判断出访问的页有效,如果读取的Present位被清零,则判断出访问的页无效。
进一步地,该装置还包括:
第一清零模块,用于如果引用该内存块的进程访问完访问的页时,则在引用该内存块的进程对应的页表中将访问的页的页表项包括的Present位清零。
在本发明实施例中,获取引用内存块的进程对应的页表并将获取的页表中的每个页表项的Present位清零,对引用该内存块的进程进行实时监听并开始计时,如果监听出存在引用该内存块的进程访问页时产生的缺页中断事件,则增加访问的页的访问次数,根据该内存块中的每个页的访问次数和计时的时间构建该内存块的内存访问模型,如此在构建该内存块的内存访问模型时不需要记录引用该内存块的每个进程访问该内存块的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
实施例7
如图7所示,本发明实施例提供了一种构建内存访问模型的装置,包括:
第五获取模块701,用于获取目标进程对应的页表,并将该页表中存储的每个页表项所包括的Present位清零,页表用于存储目标进程所要访问的页的页表项;
第二监听模块702,用于对目标进程进行实时监听并开始计时;
第二增加模块703,用于如果目标进程访问待访问的页时产生缺页中断事件,则增加待访问的页的访问次数;其中,缺页中断事件为目标进程判断待访问的页的页表项包括的Present位被清零时产生的,待访问的页的页表项为目标进程从其对应的页表中获取得到的;
第六获取模块704,用于根据目标进程所访问的每个页的访问次数和计时的时间构建目标进程的内存访问模型,内存访问模型至少包括目标进程所访问的每个页的访问次数和访问频率。
其中,第五获取模块701包括:
第二获取单元,用于获取目标进程对应的页表;
第二存储单元,用于在节点的内存中申请一块内存区域,将该页表中的每个页表项包括的Present位存储在内存区域中;
第二清零单元,用于将该页表中的每个页表项包括的Present位清零。
其中,第二存储单元包括:
第二计算子单元,用于在节点的内存中申请一块内存区域,根据目标进程的进程号、该页表中的每个页表项在该页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在内存区域中存储该页表中的每个页表项包括的Present位的存储地址;
第二存储子单元,用于根据该页表中的每个页表项包括的Present位的存储地址,将该页表中的每个页表项包括的Present位存储在内存区域中。
其中,第六获取模块704,具体用于根据目标进程所访问的每个页的访问次数和计时的时间,计算出目标进程所访问的每个页的访问频率,得到内存访问模型,至少包括目标进程所访问的每个页的访问次数和访问频率。
进一步地,该装置还包括:
第七获取模块,用于当一个时间片结束时,获取目标进程的远近端访问比率和访问频率,如果目标进程的远近端访问比率超过第五阈值且目标进程的访问频率超过第六阈值,则执行获取目标进程对应的页表的操作。
其中,第七获取模块包括:
第三获取单元,用于获取目标进程被节点的处理器调度后的实际运行时间以及在实际运行时间内目标进程访问本地内存的次数和访问远端节点内存的次数,远端节点内存为计算机系统中除该节点以外的其他节点的内存;
第四获取单元,用于根据实际运行时间和在实际运行时间内目标进程访问本地内存的次数和访问远端节点内存的次数,获取目标进程的远近端访问比率和访问频率。
其中,第三获取单元包括:
加载子单元,用于当目标进程被节点的处理器调度后,将目标进程的上下文信息中包括的访问本地内存的次数和访问远端节点内存的次数加载到处理器的统计计数寄存器中;
监听子单元,用于通过处理器对目标进程进行实时监听,如果监听出目标进程访问本地内存,则增加目标进程访问本地内存的次数,如果监听出目标进程访问远端节点内存,则增加目标进程访问远端节点内存的次数;
第一获取子单元,用于当时问片结束时获取目标进程被调度后的实际运行时间;
第二获取子单元,用于根据增加后的目标进程访问本地内存的次数和访问远端节点内存的次数以及统计计数寄存器中存储的目标进程访问本地内存的次数和访问远端节点的内存的次数获取目标进程在实际运行时间内访问本地内存的次数和远端节点内存的次数。
其中,第四获取单元包括:
第三计算子单元,用于计算出在实际运行时间内目标进程访问本地内存的次数与访问远端节点内存的次数的比值,将该比值作为目标进程的远近端访问比率;
第四计算子单元,用于根据在实际运行时间内目标进程访问本地内存的次数和访问远端节点内存的次数计算出目标进程的访问次数;
第五计算子单元,用于根据目标进程的访问次数和实际运行时间计算出目标进程的访问频率。
进一步地,该装置还包括:
第二判断模块,用于从内存区域中获取待访问的页的Present位,根据待访问的页的Present位判断待访问的页在节点的内存中是否有效;
第二置位模块,用于如果有效,则在目标进程对应的页表中将待访问的页的页表项包括的Present位置位,并触发目标进程继续访问待访问的页。
其中,第二判断模块包括:
第四计算单元,用于根据目标进程的进程号,待访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在内存区域中存储待访问的页的Present位的内存地址;
第二判断单元,用于根据计算出的内存地址从内存区域中读取待访问的页的Present位,如果读取的Present位被置位,则判断出待访问的页有效,如果读取的Present位被清零,则判断出待访问的页无效。
进一步地,该装置还包括:
第二清零模块,用于如果目标进程访问完待访问的页时,则在目标进程对应的页表中将待访问的页的页表项包括的Present位清零。
在本发明实施例中,获取目标进程对应的页表并将该页表中的每个页表项的Present位清零,对目标进程进行实时监听并开始计时,如果监听出目标进程访问待访问的页时产生的缺页中断事件,则增加待访问的页的访问次数,根据目标进程所访问的每个页的访问次数和计时的时间构建目标进程的内存访问模型,如此在构建目标进程的内存访问模型时不需要记录目标进程访问内存的内存访问地址,减少内存消耗和对系统性能的影响,从而避免造成系统崩溃。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (38)

1.一种构建内存访问模型的方法,其特征在于,所述方法包括:
获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的当前Present位清零,所述页表用于存储引用所述内存块的进程所要访问的页的页表项;
对引用所述内存块的进程进行实时监听并开始计时;
如果引用所述内存块的进程访问所述内存块中的页时产生缺页中断事件,则增加所述访问的页的访问次数;其中,所述缺页中断事件为引用所述内存块的进程判断出所述访问的页的页表项包括的Present位被清零时产生的,所述访问的页的页表项为引用所述内存块的进程从其对应的页表中获取得到的;
根据所述内存块中的每个页的访问次数和计时的时间构建所述内存块的内存访问模型,所述内存访问模型至少包括所述内存块中的每个页的访问次数和访问频率。
2.如权利要求1所述的方法,其特征在于,所述获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的当前Present位清零,包括:
通过反向映射的方法,获取引用所述内存块的进程并进一步获取引用所述内存块的进程对应的页表;
在节点的内存中申请一块内存区域,将所述页表中的每个页表项包括的Present位存储在所述内存区域中;
将所述页表中的每个页表项包括的Present位清零。
3.如权利要求2所述的方法,其特征在于,将所述页表中的每个页表项包括的Present位存储在所述内存区域中,包括:
根据引用所述内存块的进程的进程号、所述页表中的每个页表项在所述页表中的序号和所述内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述页表中的每个页表项包括的Present位的存储地址;
根据所述页表中的每个页表项包括的Present位的存储地址,将所述页表中的每个页表项包括的Present位存储在所述内存区域中。
4.如权利要求1-3任一项权利要求所述的方法,其特征在于,所述获取引用内存块的进程对应的页表之前,还包括:
将节点的内存划分成多个内存段,获取所述内存段被远端节点访问的访问次数和访问频率,所述远端节点为计算机系统中除所述节点以外的其他节点;
如果存在被远端节点访问的访问次数超过第一阈值且被远端节点访问的访问频率超过第二阈值的内存段,则将所述内存段划分成多个内存块;
获取所述内存块被远端节点访问的访问次数和访问频率,如果存在被远端节点的访问次数超过第三阈值且被远端节点访问的访问频率超过第四阈值的内存块,则执行获取引用所述内存块的进程对应的页表的操作。
5.如权利要求4所述的方法,其特征在于,获取所述内存段被远端节点访问的访问次数和访问频率,包括:
通过所述节点对应的互联芯片实时监听所述内存段并开始计时,如果监听出存在远端节点访问所述内存段,则增加所述内存段被远端节点访问的访问次数;
根据所述内存段被远端节点访问的访问次数和计时的时间计算出所述内存段被远端节点访问的访问频率。
6.如权利要求4所述的方法,其特征在于,获取所述内存块被远端节点访问的访问次数和访问频率,包括:
通过所述节点对应的互联芯片实时监听所述内存块并开始计时,如果监听出存在远端节点访问所述内存块,则增加所述内存块被远端节点访问的访问次数;
根据所述内存块被远端节点访问的访问次数和计时的时间计算出所述内存块被远端节点访问的访问频率。
7.如权利要求1-3任一项权利要求所述的方法,其特征在于,所述增加所述访问的页的访问次数之后,还包括:
从内存区域中获取所述访问的页的Present位,根据所述获取的Present位判断所述访问的页在节点的内存中是否有效;
如果有效,则在所述进程对应的页表中将所述访问的页的页表项包括的Present位置位,并触发引用所述内存块的进程继续访问所述访问的页。
8.如权利要求7所述的方法,其特征在于,所述从内存区域中获取所述访问的页的Present位,根据所述获取的Present位判断所述访问的页在节点的内存中是否有效,包括:
根据引用所述内存块的进程的进程号,所述访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述访问的页的Present位的内存地址;
根据所述计算出的内存地址从所述内存区域中读取所述访问的页的Present位,如果所述读取的Present位被置位,则判断出所述访问的页有效,如果所述读取的Present位被清零,则判断出所述访问的页无效。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
如果引用所述内存块的进程访问完所述访问的页时,则在引用所述内存块的进程对应的页表中将所述访问的页的页表项包括的Present位清零。
10.一种构建内存访问模型的方法,其特征在于,所述方法包括:
获取目标进程对应的页表,并将所述页表中存储的每个页表项所包括的当前Present位清零,所述页表用于存储所述目标进程所要访问的页的页表项;
对所述目标进程进行实时监听并开始计时;
如果所述目标进程访问待访问的页时产生缺页中断事件,则增加所述待访问的页的访问次数;其中,所述缺页中断事件为所述目标进程判断所述待访问的页的页表项包括的Present位被清零时产生的,所述待访问的页的页表项为所述目标进程从其对应的页表中获取得到的;
根据所述目标进程所访问的每个页的访问次数和计时的时间构建所述目标进程的内存访问模型,所述内存访问模型至少包括所述目标进程所访问的每个页的访问次数和访问频率。
11.如权利要求10所述的方法,其特征在于,所述获取目标进程对应的页表,并将所述页表中存储的每个页表项包括的Present位清零,包括:
获取所述目标进程对应的页表;
在节点的内存中申请一块内存区域,将所述页表中的每个页表项包括的Present位存储在所述内存区域中;
将所述页表中的每个页表项包括的Present位清零。
12.如权利要求11所述的方法,其特征在于,将所述页表中的每个页表项包括的Present位存储在所述内存区域中,包括:
根据所述目标进程的进程号、所述页表中的每个页表项在所述页表中的序号和所述内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述页表中的每个页表项包括的Present位的存储地址;
根据所述页表中的每个页表项包括的Present位的存储地址,将所述页表中的每个页表项包括的Present位存储在所述内存区域中。
13.如权利要求10-12任一项权利要求所述的方法,其特征在于,所述获取目标进程对应的页表之前,还包括:
当一个时间片结束时,获取所述目标进程的远近端访问比率和访问频率,如果所述目标进程的远近端访问比率超过第五阈值且所述目标进程的访问频率超过第六阈值,则执行获取所述目标进程对应的页表的操作。
14.如权利要求13所述的方法,其特征在于,获取所述目标进程的远近端访问比率和访问频率,包括:
获取所述目标进程被节点的处理器调度后的实际运行时间以及在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,所述远端节点内存为计算机系统中除所述节点以外的其他节点的内存;
根据所述实际运行时间和在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,获取所述目标进程的远近端访问比率和访问频率。
15.如权利要求14所述的方法,其特征在于,获取所述目标进程被节点的处理器调度后的实际运行时间以及在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,包括:
当所述目标进程被节点的处理器调度后,将所述目标进程的上下文信息中包括的访问本地内存的次数和访问远端节点内存的次数加载到所述处理器的统计计数寄存器中;
通过所述处理器对所述目标进程进行实时监听,如果监听出所述目标进程访问本地内存,则增加所述目标进程访问本地内存的次数,如果监听出所述目标进程访问远端节点内存,则增加所述目标进程访问远端节点内存的次数;
当所述时间片结束时获取所述目标进程被调度后的实际运行时间;
根据增加后的所述目标进程访问本地内存的次数和访问远端节点内存的次数以及所述统计计数寄存器中存储的所述目标进程访问本地内存的次数和访问远端节点内存的次数获取所述目标进程在所述实际运行时间内访问本地内存的次数和远端节点内存的次数。
16.如权利要求14所述的方法,其特征在于,根据所述实际运行时间和在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,获取所述目标进程的远近端访问比率和访问频率,包括:
计算出在所述实际运行时间内所述目标进程访问本地内存的次数与访问远端节点内存的次数的比值,将所述比值作为所述目标进程的远近端访问比率;
根据在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数计算出所述目标进程的访问次数;
根据所述目标进程的访问次数和所述实际运行时间计算出所述目标进程的访问频率。
17.如权利要求10-12任一项权利要求所述的方法,其特征在于,增加所述待访问的页的访问次数之后,还包括:
从内存区域中获取所述待访问的页的Present位,根据所述待访问的页的Present位判断所述待访问的页在节点的内存中是否有效;
如果有效,则在所述目标进程对应的页表中将所述待访问的页的页表项包括的Present位置位,并触发所述目标进程继续访问所述待访问的页。
18.如权利要求17所述的方法,其特征在于,所述从内存区域中获取所述待访问的页的Present位,根据所述待访问的页的Present位判断所述待访问的页在节点的内存中是否有效,包括:
根据所述目标进程的进程号,所述待访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述待访问的页的Present位的内存地址;
根据所述计算出的内存地址从所述内存区域中读取所述待访问的页的Present位,如果所述读取的Present位被置位,则判断出所述待访问的页有效,如果所述读取的Present位被清零,则判断出所述待访问的页无效。
19.如权利要求17所述的方法,其特征在于,所述方法还包括:
如果所述目标进程访问完待访问的页时,则在所述目标进程对应的页表中将所述待访问的页的页表项包括的Present位清零。
20.一种构建内存访问模型的装置,其特征在于,所述装置包括:
第一获取模块,用于获取引用内存块的进程对应的页表,并将所述页表中存储的每个页表项所包括的当前Present位清零,所述页表用于存储引用所述内存块的进程所要访问的页的页表项;
第一监听模块,用于对引用所述内存块的进程进行实时监听并开始计时;
第一增加模块,用于如果引用所述内存块的进程访问所述内存块中的页时产生缺页中断事件,则增加所述访问的页的访问次数;其中,所述缺页中断事件为引用所述内存块的进程判断出所述访问的页的页表项包括的Present位被清零时产生的,所述访问的页的页表项为引用所述内存块的进程从其对应的页表中获取得到的;
第二获取模块,用于根据所述内存块中的每个页的访问次数和计时的时间构建所述内存块的内存访问模型,所述内存访问模型至少包括所述内存块中的每个页的访问次数和访问频率。
21.如权利要求20所述的装置,其特征在于,所述第一获取模块包括:
第一获取单元,用于通过反向映射的方法,获取引用所述内存块的进程并进一步获取引用所述内存块的进程对应的页表;
第一存储单元,用于在节点的内存中申请一块内存区域,将所述页表中的每个页表项包括的Present位存储在所述内存区域中;
第一清零单元,用于将所述页表中的每个页表项包括的Present位清零。
22.如权利要求21所述的装置,其特征在于,所述第一存储单元包括:
第一计算子单元,用于在节点的内存中申请一块内存区域,根据引用所述内存块的进程的进程号、所述页表中的每个页表项在所述页表中的序号和所述内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述页表中的每个页表项包括的Present位的存储地址;
第一存储子单元,用于根据所述页表中的每个页表项包括的Present位的存储地址,将所述页表中的每个页表项包括的Present位存储在所述内存区域中。
23.如权利要求20-22任一项权利要求所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于将节点的内存划分成多个内存段,获取所述内存段被远端节点访问的访问次数和访问频率,所述远端节点为计算机系统中除所述节点以外的其他节点;
第一划分模块,用于如果存在被远端节点访问的访问次数超过第一阈值且被远端节点访问的访问频率超过第二阈值的内存段,则将所述内存段划分成多个内存块;
第四获取模块,用于获取所述内存块被远端节点访问的访问次数和访问频率,如果存在被远端节点的访问次数超过第三阈值且被远端节点访问的访问频率超过第四阈值的内存块,则执行获取引用所述内存块的进程对应的页表的操作。
24.如权利要求23所述的装置,其特征在于,所述第三获取模块包括:
第一监听单元,用于将节点的内存划分成多个内存段,通过所述节点对应的互联芯片实时监听所述内存段并开始计时,如果监听出存在远端节点访问所述内存段,则增加所述内存段被远端节点访问的访问次数;
第一计算单元,用于根据所述内存段被远端节点访问的访问次数和计时的时间计算出所述内存段被远端节点访问的访问频率。
25.如权利要求23所述的装置,其特征在于,所述第四获取模块包括:
第二监听单元,用于通过所述节点对应的互联芯片实时监听所述内存块并开始计时,如果监听出存在远端节点访问所述内存块,则增加所述内存块被远端节点访问的访问次数;
第二计算单元,用于根据所述内存块被远端节点访问的访问次数和计时的时间计算出所述内存块被远端节点访问的访问频率。
26.如权利要求20-22任一项权利要求所述的装置,其特征在于,所述装置还包括:
第一判断模块,用于从内存区域中获取所述访问的页的Present位,根据所述获取的Present位判断所述访问的页在节点的内存中是否有效;
第一置位模块,用于如果有效,则在所述进程对应的页表中将所述访问的页的页表项包括的Present位置位,并触发引用所述内存块的进程继续访问所述访问的页。
27.如权利要求26所述的装置,其特征在于,所述第一判断模块包括:
第三计算单元,用于根据引用所述内存块的进程的进程号,所述访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述访问的页的Present位的内存地址;
第一判断单元,用于根据所述计算出的内存地址从所述内存区域中读取所述访问的页的Present位,如果所述读取的Present位被置位,则判断出所述访问的页有效,如果所述读取的Present位被清零,则判断出所述访问的页无效。
28.如权利要求26所述的装置,其特征在于,所述装置还包括:
第一清零模块,用于如果引用所述内存块的进程访问完所述访问的页时,则在引用所述内存块的进程对应的页表中将所述访问的页的页表项包括的Present位清零。
29.一种构建内存访问模型的装置,其特征在于,所述装置包括:
第五获取模块,用于获取目标进程对应的页表,并将所述页表中存储的每个页表项所包括的当前Present位清零,所述页表用于存储所述目标进程所要访问的页的页表项;
第二监听模块,用于对所述目标进程进行实时监听并开始计时;
第二增加模块,用于如果所述目标进程访问待访问的页时产生缺页中断事件,则增加所述待访问的页的访问次数;其中,所述缺页中断事件为所述目标进程判断所述待访问的页的页表项包括的Present位被清零时产生的,所述待访问的页的页表项为所述目标进程从其对应的页表中获取得到的;
第六获取模块,用于根据所述目标进程所访问的每个页的访问次数和计时的时间构建所述目标进程的内存访问模型,所述内存访问模型至少包括所述目标进程所访问的每个页的访问次数和访问频率。
30.如权利要求29所述的装置,其特征在于,所述第五获取模块包括:
第二获取单元,用于获取所述目标进程对应的页表;
第二存储单元,用于在节点的内存中申请一块内存区域,将所述页表中的每个页表项包括的Present位存储在所述内存区域中;
第二清零单元,用于将所述页表中的每个页表项包括的Present位清零。
31.如权利要求30所述的装置,其特征在于,所述第二存储单元包括:
第二计算子单元,用于在节点的内存中申请一块内存区域,根据所述目标进程的进程号、所述页表中的每个页表项在所述页表中的序号和所述内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述页表中的每个页表项包括的Present位的存储地址;
第二存储子单元,用于根据所述页表中的每个页表项包括的Present位的存储地址,将所述页表中的每个页表项包括的Present位存储在所述内存区域中。
32.如权利要求29-31任一项权利要求所述的装置,其特征在于,所述装置还包括:
第七获取模块,用于当一个时间片结束时,获取所述目标进程的远近端访问比率和访问频率,如果所述目标进程的远近端访问比率超过第五阈值且所述目标进程的访问频率超过第六阈值,则执行获取所述目标进程对应的页表的操作。
33.如权利要求32所述的装置,其特征在于,所述第七获取模块包括:
第三获取单元,用于获取所述目标进程被节点的处理器调度后的实际运行时间以及在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,所述远端节点内存为计算机系统中除所述节点以外的其他节点的内存;
第四获取单元,用于根据所述实际运行时间和在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数,获取所述目标进程的远近端访问比率和访问频率。
34.如权利要求33所述的装置,其特征在于,所述第三获取单元包括:
加载子单元,用于当所述目标进程被节点的处理器调度后,将所述目标进程的上下文信息中包括的访问本地内存的次数和访问远端节点内存的次数加载到所述处理器的统计计数寄存器中;
监听子单元,用于通过所述处理器对所述目标进程进行实时监听,如果监听出所述目标进程访问本地内存,则增加所述目标进程访问本地内存的次数,如果监听出所述目标进程访问远端节点内存,则增加所述目标进程访问远端节点内存的次数;
第一获取子单元,用于当所述时间片结束时获取所述目标进程被调度后的实际运行时间;
第二获取子单元,用于根据增加后的所述目标进程访问本地内存的次数和访问远端节点内存的次数以及所述统计计数寄存器中存储的所述目标进程访问本地内存的次数和访问远端节点内存的次数获取所述目标进程在所述实际运行时间内访问本地内存的次数和远端节点内存的次数。
35.如权利要求33所述的装置,其特征在于,所述第四获取单元包括:
第三计算子单元,用于计算出在所述实际运行时间内所述目标进程访问本地内存的次数与访问远端节点内存的次数的比值,将所述比值作为所述目标进程的远近端访问比率;
第四计算子单元,用于根据在所述实际运行时间内所述目标进程访问本地内存的次数和访问远端节点内存的次数计算出所述目标进程的访问次数;
第五计算子单元,用于根据所述目标进程的访问次数和所述实际运行时间计算出所述目标进程的访问频率。
36.如权利要求29-31任一项权利要求所述的装置,其特征在于,所述装置还包括:
第二判断模块,用于从内存区域中获取所述待访问的页的Present位,根据所述待访问的页的Present位判断所述待访问的页在节点的内存中是否有效;
第二置位模块,用于如果有效,则在所述目标进程对应的页表中将所述待访问的页的页表项包括的Present位置位,并触发所述目标进程继续访问所述待访问的页。
37.如权利要求36所述的装置,其特征在于,所述第二判断模块包括:
第四计算单元,用于根据所述目标进程的进程号,所述待访问的页的页表项在页表中的序号和内存区域的起始地址,并通过预设的计算模型计算出在所述内存区域中存储所述待访问的页的Present位的内存地址;
第二判断单元,用于根据所述计算出的内存地址从所述内存区域中读取所述待访问的页的Present位,如果所述读取的Present位被置位,则判断出所述待访问的页有效,如果所述读取的Present位被清零,则判断出所述待访问的页无效。
38.如权利要求36所述的装置,其特征在于,所述装置还包括:
第二清零模块,用于如果所述目标进程访问完待访问的页时,则在所述目标进程对应的页表中将所述待访问的页的页表项包括的Present位清零。
CN201180002377.5A 2011-10-31 2011-10-31 一种构建内存访问模型的方法及装置 Active CN102439577B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081544 WO2012167533A1 (zh) 2011-10-31 2011-10-31 一种构建内存访问模型的方法及装置

Publications (2)

Publication Number Publication Date
CN102439577A CN102439577A (zh) 2012-05-02
CN102439577B true CN102439577B (zh) 2014-01-22

Family

ID=45986242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180002377.5A Active CN102439577B (zh) 2011-10-31 2011-10-31 一种构建内存访问模型的方法及装置

Country Status (4)

Country Link
US (1) US9471495B2 (zh)
EP (1) EP2772853B1 (zh)
CN (1) CN102439577B (zh)
WO (1) WO2012167533A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003899A (zh) * 2015-10-28 2017-08-01 华为技术有限公司 一种中断响应方法、装置及基站

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140042546A (ko) * 2012-09-28 2014-04-07 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
CN103914363B (zh) * 2012-12-31 2016-10-26 华为技术有限公司 一种内存监控方法及相关装置
CN104346293B (zh) * 2013-07-25 2017-10-24 华为技术有限公司 混合内存的数据访问方法、模块、处理器及终端设备
CN105701020B (zh) * 2014-11-28 2018-11-30 华为技术有限公司 一种内存访问的方法、相关装置和系统
US9727241B2 (en) * 2015-02-06 2017-08-08 Advanced Micro Devices, Inc. Memory page access detection
CN104899111B (zh) * 2015-06-09 2018-03-20 烽火通信科技股份有限公司 一种处理家庭网关系统内核崩溃的方法及系统
CN105159838B (zh) * 2015-08-27 2018-06-26 华为技术有限公司 访问内存的方法及计算机系统
US20180150256A1 (en) * 2016-11-29 2018-05-31 Intel Corporation Technologies for data deduplication in disaggregated architectures
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) * 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560746A (zh) * 2004-02-27 2005-01-05 中国人民解放军国防科学技术大学 基于操作系统反向页表的页迁移和复制方法
CN101136765A (zh) * 2006-09-01 2008-03-05 中兴通讯股份有限公司 一种快速访问信息模型的方法
CN101315602A (zh) * 2008-05-09 2008-12-03 浙江大学 硬件化的进程内存管理核的方法
CN101604283A (zh) * 2009-06-11 2009-12-16 北京航空航天大学 一种基于Linux内核页表替换的内存访问模型追踪方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761733A (en) * 1985-03-11 1988-08-02 Celerity Computing Direct-execution microprogrammable microprocessor system
US4890223A (en) * 1986-01-15 1989-12-26 Motorola, Inc. Paged memory management unit which evaluates access permissions when creating translator
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
TW212840B (en) * 1992-04-22 1993-09-11 Ibm Multi-bit vector for page aging
US6112286A (en) * 1997-09-19 2000-08-29 Silicon Graphics, Inc. Reverse mapping page frame data structures to page table entries
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US7246101B2 (en) * 2002-05-16 2007-07-17 Hewlett-Packard Development Company, L.P. Knowledge-based system and method for reconstructing client web page accesses from captured network packets
US7487508B2 (en) * 2002-05-16 2009-02-03 Hewlett-Packard Development Company, L.P. System and method for reconstructing client web page accesses from captured network packets
US7155548B2 (en) * 2003-11-04 2006-12-26 Texas Instruments Incorporated Sequential device control with time-out function
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US7395385B2 (en) * 2005-02-12 2008-07-01 Broadcom Corporation Memory management for a mobile multimedia processor
US7330958B2 (en) * 2005-09-22 2008-02-12 International Business Machines Corporation Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
GB0623276D0 (en) * 2006-11-22 2007-01-03 Transitive Ltd Memory consistency protection in a multiprocessor computing system
US8344475B2 (en) * 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
TWI417722B (zh) * 2007-01-26 2013-12-01 Hicamp Systems Inc 階層式不可改變的內容可定址的記憶體處理器
US7991942B2 (en) * 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
GB2457341B (en) * 2008-02-14 2010-07-21 Transitive Ltd Multiprocessor computing system with multi-mode memory consistency protection
US8868847B2 (en) * 2009-03-11 2014-10-21 Apple Inc. Multi-core processor snoop filtering
US8397219B2 (en) * 2009-03-31 2013-03-12 Oracle America, Inc. Method and apparatus for tracking enregistered memory locations
WO2010125574A1 (en) * 2009-04-27 2010-11-04 Kamlesh Gandhi Description
US9086973B2 (en) * 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor
US20110016290A1 (en) * 2009-07-14 2011-01-20 Arie Chobotaro Method and Apparatus for Supporting Address Translation in a Multiprocessor Virtual Machine Environment
US8627041B2 (en) * 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
US8954697B2 (en) * 2010-08-05 2015-02-10 Red Hat, Inc. Access to shared memory segments by multiple application processes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1560746A (zh) * 2004-02-27 2005-01-05 中国人民解放军国防科学技术大学 基于操作系统反向页表的页迁移和复制方法
CN101136765A (zh) * 2006-09-01 2008-03-05 中兴通讯股份有限公司 一种快速访问信息模型的方法
CN101315602A (zh) * 2008-05-09 2008-12-03 浙江大学 硬件化的进程内存管理核的方法
CN101604283A (zh) * 2009-06-11 2009-12-16 北京航空航天大学 一种基于Linux内核页表替换的内存访问模型追踪方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003899A (zh) * 2015-10-28 2017-08-01 华为技术有限公司 一种中断响应方法、装置及基站
CN107003899B (zh) * 2015-10-28 2020-10-23 皓创科技(镇江)有限公司 一种中断响应方法、装置及基站

Also Published As

Publication number Publication date
EP2772853A4 (en) 2014-11-26
US20140237192A1 (en) 2014-08-21
WO2012167533A1 (zh) 2012-12-13
EP2772853A1 (en) 2014-09-03
EP2772853B1 (en) 2019-05-22
US9471495B2 (en) 2016-10-18
CN102439577A (zh) 2012-05-02

Similar Documents

Publication Publication Date Title
CN102439577B (zh) 一种构建内存访问模型的方法及装置
Lu et al. Log-based abnormal task detection and root cause analysis for spark
US9031826B2 (en) Method and apparatus for simulating operation in a data processing system
US9189410B2 (en) Hypervisor-based flash cache space management in a multi-VM environment
CN102362464B (zh) 内存访问监测方法和装置
US20110067029A1 (en) Thread shift: allocating threads to cores
US20140149078A1 (en) Performance measurement unit, processor core including the same and process profiling method
CN103838668A (zh) 关联能量消耗与虚拟机
US9727465B2 (en) Self-disabling working set cache
US20120089761A1 (en) Apparatus and method for processing an interrupt
US20110320150A1 (en) Memory power estimation by means of calibrated weights and activity counters
US9836396B2 (en) Method for managing a last level cache and apparatus utilizing the same
US20190258561A1 (en) Real-time input/output bandwidth estimation
US8209299B2 (en) Selectively generating program objects on remote node of a multi-node computer system
CN106897022B (zh) 一种管理存储设备的方法及装置
US10331537B2 (en) Waterfall counters and an application to architectural vulnerability factor estimation
CN106681830B (zh) 一种任务缓存空间监测方法和装置
KR101991687B1 (ko) 동적 라이브러리 프로파일링 방법, 이를 기록한 컴퓨터로 읽을 수 있는 기록 매체 및 동적 라이브러리 프로파일링 시스템
US10698813B2 (en) Memory allocation system for multi-tier memory
US9329972B2 (en) Implementing client based throttled error logging in a computing device
CN106155923B (zh) 内存共享的方法和装置
CN114625719A (zh) 一种基于移动滤波框架的动态集合管理方法和系统
CN113835953A (zh) 作业信息的统计方法、装置、计算机设备和存储介质
Fang et al. Performance optimization by dynamically altering cache replacement algorithm in CPU-GPU heterogeneous multi-core architecture
JP3099807B2 (ja) Cpu使用率測定方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant