CN106802868A - 通过数据挖掘优化的存储器配置 - Google Patents
通过数据挖掘优化的存储器配置 Download PDFInfo
- Publication number
- CN106802868A CN106802868A CN201611007858.6A CN201611007858A CN106802868A CN 106802868 A CN106802868 A CN 106802868A CN 201611007858 A CN201611007858 A CN 201611007858A CN 106802868 A CN106802868 A CN 106802868A
- Authority
- CN
- China
- Prior art keywords
- correlation
- storage device
- memory
- global storage
- memory location
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/281—Single cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Abstract
一种通过全局存储器装置上的中央处理单元的指令缓存来排序存储器访问的方法。在全局存储器装置中提取链接映射文件的信号列表。从信号列表中访问涉及执行任务的存储器访问痕迹。识别来自访问痕迹的在全局存储器装置中访问的存储器位置。确定用于在全局存储器装置中访问的每对存储器位置的相关值。确定存储器位置对的相关值,其中利用相应存储器位置对基于可执行指令的接近性来计算相关值。重排全局存储器装置内的访问的存储器位置作为确定的相关值的函数。修改访问全局存储器装置的可执行文件。
Description
背景技术
一个实施例涉及存储器分配。
中央处理单元(CPU)利用缓存,该缓存加载存储在供中央处理单元使用的随机访问存储器(RAM)中的数据。与从RAM读取数据和将数据写入RAM相反,缓存为本地读取和写入数据提供了快速的解决方案。缓存保持在其最常利用的存储数据中。
CPU包括当对将被用于存储数据的那些地址执行代码时的指令。相应地址位置的存储器配置影响电子控制单元(ECU)的启用缓存结构的存储器带宽。例如,如果存储器配置设计不正确(例如,效率低下),那么当预定了相应的执行指令流的存储器分配时,在检索数据时可能发生减速,特别对于在RAM中反复利用的那些位置。如果CPU必须在RAM内访问存储器的各种位置,那么会导致较慢的CPU操作。就是说,如果未有效地组织存储器分配,那么CPU处理时间也会效率低下。存储器配置影响CPU的启用缓存结构的存储器带宽。如果由可执行指令访问的RAM的存储器配置设计效率低下,那么如果任务必须持续地访问RAM的各种位置,则可能出现检索数据瓶颈。
发明内容
实施例的优点在于当访问随机访问存储器(RAM)时优化存储器配置。中央处理单元(CPU)利用在随机访问存储器中存储数据的缓存来读取/写入CPU最常使用的数据。硬件将RAM实现为存储器块,用于由CPU处理的数据的临时存储。存储在缓存和RAM中的数据可以是来自先前的计算操作或新操作的数据。当待处理数据不在缓存中时,系统加载RAM中的另一个数据块来替换缓存块。本文所描述的技术识别信号变量对并将邻近的存储器位置分配给彼此极其接近的信号变量,所述信号变量对将利用在彼此极其接近(即,可执行指令基本上彼此邻近)时执行的RAM的存储器位置。以这种方式,在知道将基本上频繁地和基本上依次地访问两个存储器位置的情况下,将信号变量分配到彼此接近的存储器位置来减少CPU尝试替换缓存块的处理时间。因此,本文的技术高效地将存储器配置分配到相应的信号变量,使得那些频繁且通常访问的相应信号变量对在RAM中被分配到彼此接近的、由RAM访问的存储器位置。这改善了CPU的效率并且减少了瓶颈。
实施例涉及通过全局存储器装置上的中央处理单元的指令缓存对存储器访问进行排序的方法。在全局存储器装置中提取链接映射文件的信号列表。从信号列表获得涉及执行任务的存储器访问痕迹。从访问痕迹中识别全局存储器装置中访问的存储器位置。确定全局存储器装置中访问的每对存储器位置的相关值。利用相应的存储器位置对基于可执行指令的接近性来计算相关值。在全局存储器装置内重排访问的存储器位置作为确定的相关值的函数。修改访问全局存储器装置的可执行文件。当访问全局存储器装置时,可执行文件优化存储器配置。
附图说明
图1是用于优化任务分区的硬件的框图。
图2是示例性的加权相关矩阵。
图3是用于优化存储器配置的方法的流程图。
具体实施方式
图1是用于优化存储器配置的硬件的框图。执行应用程序代码的相应算法在电子控制单元(ECU)10上执行。执行的算法是在产品(例如,车辆发动机控制装置、计算机、游戏、工厂设备、或任何其他利用电子控制单元的电子控制装置)中将被执行的那些程序。在全局存储器装置12(例如,随机访问存储器)内数据被写入和读取到各种地址/从各种地址写入和读取数据。
映射链接文件14是文本文件,其详细说明了数据与代码存储在全局存储器装置12内的可执行文档内部。映射链接文件14包括含有事件日志的跟踪文件,该事件日志描述了全局存储器装置12内已出现的事务处理以及代码和数据的存储地。因此,可以获得链接文件映射14用于识别所有信号和相关联的存储器地址,当ECU 10执行可执行指令时,访问该存储器地址。
挖掘处理器16用于执行来自全局存储器装置12的数据挖掘18,重排相关联的存储器位置20,确定与用于识别最佳存储器配置的置换22相关联的最小能量函数,可将信号变量分配给该存储器配置来用于读取和写入数据。
指令执行流包括由ECU 10执行的代码(即,可执行代码)。代码包括全局存储器装置12内的地址位置,访问该全局存储器装置12用于写入相应地址位置或从相应地址位置检索数据。用于加载指令的示例性指令流可具有如下格式:
ADDR X-LD#sa,Rx.
用于向全局存储器装置12中的地址写入指令的示例性指令流可以具有如下格式:
ADDR Y-WR Rx,#sb,
其中sa和sb表示识别存储器位置的可执行指令的信号变量,访问该存储器位置用于在全局存储器装置12内写入或读取数据。对于所有信号变量{si│i=1,…,N},构建识别所有信号变量之间的相关性的相关矩阵W。把每个信号变量列在相关矩阵W的竖直侧和相关矩阵W的水平侧以用于交叉比较。确定每个相应变量对的相关因子w。例如,对于信号变量sa和sb,相关因子wab位于相关矩阵W中的两个信号变量的交叉部分。与不彼此接近的信号变量对相比,在i-缓存中是基本相邻指令的那些信号变量对将产生更大的相关值w。由指令执行流中的相邻指令引用的相应信号变量对表明在可执行代码中彼此及时接近地执行的这些相应信号变量在相关矩阵中给了更高的相关值。因此,与在进一步间隔开的指令中执行的相应信号变量对相比,在相邻指令中执行的相应信号变量对将具有更大的相关因子w。
图2表示示例性相关矩阵W。信号变量在相关矩阵W中均被水平地(例如,行)和竖直地(例如,列)标记。如图所示,对于所有信号变量{si│i=1,…,N},输入每个相应信号变量对的相关值。在指令执行计划中彼此更加靠近地执行的那些信号变量生成更大的相关值。此外,更频繁地引用的那些相应信号变量对将进一步增大相关值。
相关值可在指令执行流内规范化成接近一对信号变量的函数。以下是对相关值进行规范化的示例性函数:
如果|ADDR X-ADDR Y|<1K,
那么wab=wab+1。
如以上函数中所示,如果它们的差小于1K,那么规范化相关值;然而,应该理解的是,1K的比较值的大小是示例性的,并且可使用其他值,这可取决于诸如指令缓存大小在内的各种因素。
在生成相关矩阵W之后,重排相关矩阵W以识别可被输入用于分选的最小能量函数的置换,这有助于识别高效的存储器配置。为了重排相关矩阵W,必须置换相关矩阵W中的相应信号的位置。首先,应当重新定位相关矩阵W的信号变量,使得相关矩阵W的所有对角项具有零值。接下来,在相关矩阵W的所有相关值之中为最高的相关值应当最接近于由相关矩阵W的零值项所表示对角线。还重新定位相关矩阵的信号变量来解释对相关值的重排。因此,具有最高相关值的那些相关值被定位于更接近零对角线,而减小的相关值被放置成向外远离零对角线。
在重新定位相关值和相关联的信号变量之后,置换的相关矩阵W被输入到如下所述的最小能量函数。
相对于相关矩阵W,通过寻找顶点的置换{π1,...,πN}实现存储器位置的所需排序,使得相邻顶点是最相关的顶点。所选的置换表明由相同任务组频繁访问的数据可适合本地数据缓存。数学上地,所需重排置换可以表达为以下最小能量函数:
最小
这等于寻找逆置换π-1使得以下能量函数最小化:
最小
通过利用用于以下特征方程的第二最小特征值计算特征向量(q2)来大体上解决以上问题:
(D-W)q=λDq
其中拉普拉斯矩阵是L=D-W,次数矩阵D是定义为的对角线,然后按升序分选由此获得的q2。分选之后的顶点的索引是所需置换{π1,...,πN}。通过根据置换结果重新布置存储器位置,随后可从该置换中得到存储器位置的顺序。
图3示出了用于优化由ECU访问的全局存储器装置的存储器配置的技术的流程图。在步骤30中,通过相应的ECU任务来执行用于软件程序的应用代码。在全局存储器装置中执行读取和写入操作(例如,存储器未在挖掘处理器上)。
在步骤31中,通过挖掘处理器从全局存储器中的链接映射文件中提取信号列表。信号列表识别由可执行指令执行的任务命中的存储器位置的痕迹。
在步骤32中,挖掘处理器收集存储器访问痕迹。
在步骤33中,构建包括用于信号变量对的相关值的相关矩阵W,该信号变量对识别相应存储器位置是本地指令缓存中的相同任务组频繁访问的数据的等级。将分配给每个相应信号变量对相关值。取决于相应信号变量的地址是否在预定大小内,可随后标准化相关值。相关值也可以基于在可执行指令流中执行相应信号变量对的频率。
在步骤34中,重排相关矩阵,使得相关矩阵W中的多个相关值中的较高相关值放置得更接近于矩阵的零对角线。减值的其余相关值被放置在以降序向外远离零对角线的相关矩阵中。
步骤35中,置换的相关矩阵被输入到最小能量函数,以利用用于每个相关值的第二最小特征值来计算特征向量(q2)。然后使用升序分选每个计算的特征值来识别用于全局存储器装置中的存储器配置的所需置换。
在步骤36中,修改可执行二进制文件来分配如在步骤35中所确定的存储器配置。
本文所描述的技术识别利用RAM的存储器位置的信号变量对,在彼此极其接近(例如,可执行指令基本上彼此邻近)时执行该RAM的存储器位置。将相邻存储器位置分配给确定为在可执行指令中彼此极其接近的信号变量。以这种方式,频繁地和基本上依次地执行的相应信号变量在全局存储器装置中被基本上分配到接近存储位置处,这减少了CPU尝试去搜索和寻找相应存储器位置的处理时间。因此,本文所描述的技术有效地将存储器配置分配给彼此靠近的可执行指令的相应信号变量,以减少处理时间。这改善了CPU的效率并且减少了瓶颈。
尽管已经详细描述了本发明的某些实施例,但是那些熟悉本发明所涉及的领域的技术人员将认识到用于实践如以下权利要求所限定的本发明的各种可选设计和实施例。
Claims (10)
1.一种通过全局存储器装置上的中央处理单元的指令缓存来排序存储器访问的方法,其包括所述步骤:
在所述全局存储器装置中提取链接映射文件的信号列表;
从所述信号列表中获取涉及执行任务的存储器访问痕迹;
从所述访问痕迹中识别在所述全局存储器装置中访问的存储器位置;
确定用于在所述全局存储器装置中访问的每对存储器位置的相关值,其中利用所述相应存储器位置对基于可执行指令的接近性来计算所述相关值;
重排所述全局存储器装置内的访问的存储器位置作为所述确定相关值的函数;以及
修改访问所述全局存储器装置的可执行文件,当访问所述全局存储装置时,所述可执行文件优化所述存储器配置。
2.根据权利要求1所述的方法,其中确定所述存储器位置对的相关值包括所述下列步骤:
生成相关矩阵,其中每个存储器位置彼此交叉引用;
确定用于由相应可执行指令访问的每个相应的存储器位置对的相关值,其中每个相关值是基于指令执行流中彼此相对的所述相应可执行指令的接近性的加权值。
3.根据权利要求2所述的方法,其中所述加权值通过所述相应可执行指令被进一步地确定为访问每个相应存储器位置对的频率的函数。
4.根据权利要求3所述的方法,其中所述加权值是规范化的。
5.根据权利要求4所述的方法,其中通过所述以下规范化函数来规范化所述加权值:
如果|ADDR X-ADDR Y|<S,
那么wab=wab+1
其中ADDR X是在所述全局存储器中访问的第一地址,ADDR Y是在所述全局存储器中访问的第二地址,S是预定的字节大小,以及wab和所述加权值用于所述相关矩阵中的所述成对存储器位置。
6.根据权利要求5所述的方法,其中重排所述相关矩阵以获得所需置换,所述重排的相关矩阵包括每个都具有零的相关值的项的对角行,并且其中具有在所述相关矩阵的每个所述相关值中的最高值的相应相关值被放置成最接近所述零对角项。
7.根据权利要求6所述的方法,其中当所述项远离所述零对角项时,所述相关值减小。
8.根据权利要求7所述的方法,其中所述置换的相关矩阵的所述相关值被输入到最小能量函数中,用于确定最优访问存储器配置。
9.根据权利要求8所述的方法,其中所述最小能量函数由所述以下方程表示:
最小
10.根据权利要求9所述的方法,其中所述最小能量函数的逆置换用于确定所述存储器配置,所述逆置换由所述以下方程表示:
最小π-1J(π-1)=∑a,b(πa -1-πb -1)2wab。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/951,656 US9830270B2 (en) | 2015-11-25 | 2015-11-25 | Optimized memory layout through data mining |
US14/951656 | 2015-11-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106802868A true CN106802868A (zh) | 2017-06-06 |
CN106802868B CN106802868B (zh) | 2021-01-05 |
Family
ID=58693397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611007858.6A Active CN106802868B (zh) | 2015-11-25 | 2016-11-16 | 通过数据挖掘优化的存储器配置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9830270B2 (zh) |
CN (1) | CN106802868B (zh) |
DE (1) | DE102016121947B4 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889999A (en) * | 1996-05-15 | 1999-03-30 | Motorola, Inc. | Method and apparatus for sequencing computer instruction execution in a data processing system |
CN101196889A (zh) * | 2006-12-08 | 2008-06-11 | 国际商业机器公司 | 优化存储系统中的文件放置的方法及装置 |
US20090249302A1 (en) * | 2008-03-31 | 2009-10-01 | Zheng Xu | Method and Apparatus to Trace and Correlate Data Trace and Instruction Trace for Out-of-Order Processors |
US20120144372A1 (en) * | 2010-12-06 | 2012-06-07 | University Of Washington Through Its Center For Commercialization | Systems and methods for finding concurrency errors |
CN102722341A (zh) * | 2012-05-17 | 2012-10-10 | 杭州中天微系统有限公司 | 存储载入单元投机执行控制装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6947052B2 (en) * | 2001-07-13 | 2005-09-20 | Texas Instruments Incorporated | Visual program memory hierarchy optimization |
-
2015
- 2015-11-25 US US14/951,656 patent/US9830270B2/en active Active
-
2016
- 2016-11-15 DE DE102016121947.9A patent/DE102016121947B4/de active Active
- 2016-11-16 CN CN201611007858.6A patent/CN106802868B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889999A (en) * | 1996-05-15 | 1999-03-30 | Motorola, Inc. | Method and apparatus for sequencing computer instruction execution in a data processing system |
CN101196889A (zh) * | 2006-12-08 | 2008-06-11 | 国际商业机器公司 | 优化存储系统中的文件放置的方法及装置 |
US20090249302A1 (en) * | 2008-03-31 | 2009-10-01 | Zheng Xu | Method and Apparatus to Trace and Correlate Data Trace and Instruction Trace for Out-of-Order Processors |
US20120144372A1 (en) * | 2010-12-06 | 2012-06-07 | University Of Washington Through Its Center For Commercialization | Systems and methods for finding concurrency errors |
CN102722341A (zh) * | 2012-05-17 | 2012-10-10 | 杭州中天微系统有限公司 | 存储载入单元投机执行控制装置 |
Also Published As
Publication number | Publication date |
---|---|
US9830270B2 (en) | 2017-11-28 |
DE102016121947A1 (de) | 2017-06-01 |
CN106802868B (zh) | 2021-01-05 |
DE102016121947B4 (de) | 2023-08-17 |
US20170147495A1 (en) | 2017-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163828B2 (en) | Building and querying hash tables on processors | |
US9940060B1 (en) | Memory use and eviction in a deduplication storage system | |
CN101243435A (zh) | 使用网络上的文档的偏离点击距离的排序函数 | |
EP2885728A2 (en) | Hardware implementation of the aggregation/group by operation: hash-table method | |
KR102005343B1 (ko) | 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체 | |
CN111160140B (zh) | 一种图像检测方法及装置 | |
KR20160032934A (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
US20200143284A1 (en) | Learning device and learning method | |
CN104077241A (zh) | 缓存淘汰算法切换处理方法及装置 | |
CN106802868A (zh) | 通过数据挖掘优化的存储器配置 | |
CN103955443A (zh) | 一种基于gpu加速的蚁群算法优化方法 | |
US8112588B2 (en) | Sorting cache objects based on access counters reset upon garbage collection | |
CN104008333B (zh) | 一种安装包的检测方法和设备 | |
CN108320109A (zh) | 一种关键指标确定方法和装置 | |
CN108268295A (zh) | 一种基于单界面的页面跳转的方法及装置 | |
Chen et al. | Enhancing feature selection with density cluster for better clustering | |
JP7040168B2 (ja) | 学習識別装置および学習識別方法 | |
US20170147402A1 (en) | Optimized task partitioning through data mining | |
WO2014168199A1 (ja) | 論理演算方法および情報処理装置 | |
Fazul et al. | PRBP: A prioritized replica balancing policy for HDFS balancer | |
Oortwijn et al. | A distributed hash table for shared memory | |
KR20180018269A (ko) | 컴퓨팅 장치 및 컴퓨팅 장치에서 연산들을 처리하는 방법 | |
KR20180068454A (ko) | G-optics를 이용한 데이터 클러스터링 장치 | |
EP2858031A1 (en) | Program, apparatus, and method for data management | |
US10642791B2 (en) | Method and apparatus for authentication of file read events |
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 |