CN101611384A - 数据存取追踪 - Google Patents
数据存取追踪 Download PDFInfo
- Publication number
- CN101611384A CN101611384A CNA200880004893XA CN200880004893A CN101611384A CN 101611384 A CN101611384 A CN 101611384A CN A200880004893X A CNA200880004893X A CN A200880004893XA CN 200880004893 A CN200880004893 A CN 200880004893A CN 101611384 A CN101611384 A CN 101611384A
- Authority
- CN
- China
- Prior art keywords
- data address
- historical record
- address
- sliding window
- previous
- 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
- 238000012423 maintenance Methods 0.000 claims abstract 4
- 230000006835 compression Effects 0.000 claims description 26
- 238000007906 compression Methods 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 14
- 230000004069 differentiation Effects 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims 1
- 238000004458 analytical method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Photoreceptors In Electrophotography (AREA)
- Lubrication Of Internal Combustion Engines (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
维护由处理器所存取的至少一先前数据地址的滑动窗历史记录,滑动窗历史记录中至少一先前数据地址的每一个与一个索引相关。决定滑动窗历史记录中至少一先前数据地址的一者与目前数据地址之间的差别值,并且提供差别值与滑动窗历史记录中至少一先前数据地址的一者相关的索引以表示目前数据地址。
Description
相关引用
本申请要求申请号为60/923,974,2007年4月18日递交的美国专利的优先权,其内容被合并与此作为参考。
技术领域
本发明有关于数据存取追踪。
背景技术
嵌入式(embedded)处理器可在单一芯片上包括数字信号处理器和存储器,存储器可并入高速缓存(cache)以迎合数据存取型态的时间和空间区域性。在一些实施例中,由于高速缓存的填充(fill)和写回(copyback)动作,使用高速缓存可能会造成额外的负担。当处理器遇到高速缓存误失(cache miss)情况的时候,高速缓存硬件可从存储器阶层配置中较低的等级开始填充高速缓存列(cache line)。在高速缓存列的填充中,产生高速缓存误失的存储器操作可能导致处理器暂停(stall)运作,并且等待从存储器中读取此数据。
发明内容
本发明记录了数据存取的追踪。在本发明中维护了先前数据地址的一窗口移动历史记录、计算了一目前数据地址和窗口移动历史记录中二或更多先前数据地址之间的最小绝对差别值,并且决定了对应于最小绝对差别值的先前数据地址的索引。
另一方面,本发明追踪了一处理器所存取的数据地址。在本发明中维护了由处理器所存取的至少一先前数据地址的一窗口移动历史记录,并且决定了一目前数据地址和窗口移动历史记录中先前数据地址之间的一差别值。其中窗口移动历史记录中的先前数据地址具有一索引,并且提供差别值和索引以表示目前数据地址。
实施例可包括一或多个以下的特征。窗口移动历史记录可包括好几个由处理器所存取的先前数据地址。可决定目前数据地址和窗口移动历史记录中二或更多先前数据地址之间的一最小绝对差别值。可提供最小绝对差别值和其正负号以及一对应的索引来表示目前数据地址的压缩形式。
另一方面,本发明追踪了一处理器所存取的数据地址。一记忆单元维护了由处理器所存取的至少一先前数据地址的一窗口移动历史记录,其中先前数据地址与一索引相关。一压缩电路决定了一目前数据地址和窗口移动历史记录中先前数据地址之间的一差别值。最后提供差别值和索引以表示目前数据地址。
这些和其它方面,以及特征和其组合可用方法、装置、系统、执行功能的手段、程序产品以及其它的方式表示。
本发明的优点和特征可包括一或多个以下的特点。可记录和分析处理器所存取的地址。根据地址追踪信息,可针对特定硬件架构最佳化软件应用程序。同样地,可针对特定软件应用程序最佳化硬件架构。关于对内存的存取信息可用来最佳化:高速缓存大小、快取列大小、替代方案、使部分快取列成为已写入状态的粒度,以及第一级和第二级高速缓存的分配。
本发明一或更多实施例将于附图和以下的内容详细介绍。通过研读附图、以下的描述和权利要求,将可清楚了解本发明的其它特征、目的和优点。
附图说明
图1显示根据本发明一实施例的包含数据追踪模块的处理系统的方块图;
图2显示根据本发明实施例的数据追踪模块的方块示意图;
图3显示根据本发明实施例的基于历史记录的压缩单元的方块图;以及
图4显示根据本发明所述的用以操作基于历史记录的压缩单元的范例流程图。
相同的符号于各个图标中代表相同的组件。
具体实施方式
为使本发明所述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图式,作详细说明如下:
参照图1。处理系统8包含数据追踪模块20,数据追踪模块用以监控由处理器10所存取的数据地址。数据追踪模块20的输出可以是压缩流,当解压缩后,其包括每一存取地址和读取/写入指示等信息。通过分析正被存取的数据地址,可提升处理系统8的性能(例如减少高速缓存误失)。
处理器10存取数据高速缓存12以取得用以执行指令的数据。处理器10可以是数字信号处理器、微控制器或通用微处理器。数据高速缓存12是容量相对小且高速的存储器。当处理器10所需的数据存在于数据高速缓存12内时(高速缓存命中)可达到高速的操作,当处理器10所需的数据不存在于数据高速缓存12内时(高速缓存误失),则执行高速缓存填充操作以于第二级存储器14内存取所需的数据。在高速缓存填充操作中,将高速缓存的一列写回第二级存储器14,以便于高速缓存12内腾出空间给的新数据。由于经常发生的高速缓存误失可能造成延迟且降低性能,分析处理器10的存储器存取型态可以提供用来调整系统参数(例如高速缓存12和第二级存储器14的大小)的信息,以减少高速缓存的误失进而改善系统的性能。
举例来说,存储器地址的相关存取信息对于以下几个方面影响的确认是很有用的,较大高速缓存的影响、更相联(more associative)高速缓存的影响、不同大小的高速缓存列的影响、不同替换策略的影响、标记部分高速缓存列成为已写入状态时较大的粒度的影响、以及从第一级存储器移动数据结构至外部高速缓存的影响。
在图1的例子中,数据追踪模块20用以监控数据高速缓存12内由处理器10所存取的数据地址。数据追踪模块20接收由处理器10提供给数据高速缓存12的每一地址A,以及用以显示数据存取为读取或写入操作的读取/写入(R/W)信号。数据追踪模块20提供数据地址的压缩流22以便进行硬件和软件性能的芯片外分析(off-chip analysis)。数据地址的压缩流22可提供与存取相关的地址信息。在一些实施例中,压缩流亦包括存取类型的信息(例如读取存取、写入存取或高速缓存控制)。执行于相同硬件配置之上的不同软件应用程序可能具有不同性能,因此在执行软件应用程序期间,通过分析处理器10所存取的数据地址,可针对特定的硬件配置优化软件应用程序。同样地,硬件配置可针对特定软件应用程序而优化。
在一些实施中,数据追踪模块20可提供用户选项以降低输出数据地址的压缩流22的带宽。这对于处理器10因执行应用程序而造成大量数据存取并最终压倒(overwhelm)追踪模块时显得特别有用。举例来说,数据追踪模块20可允许用户设定如下的选项:
(1)于最小和最大地址所定义的地址范围之内执行追踪的动作。
(2)于最小和最大地址所定义的地址范围之外执行追踪的动作。
(3)追踪特定类型的存取,例如对内部第一级高速缓存或对内部第一级静态随机存取存储器(Static Random Access Memory,SRAM)存取命中的情形:
(i)于最小和最大地址所定义的地址范围之内,
(ii)于最小和最大地址所定义的地址范围之外。
(4)追踪非核心总线活动(off-core bus activity):
(i)于最小和最大地址所定义的地址范围之内,
(ii)于最小和最大地址所定义的地址范围之外。
(5)过滤高速缓存控制指令,用于用户特定高速缓存管理(user specificcache management)。
(6)根据大范围性能监控事件(例如特定区域内的高速缓存误失,或是第n次高速缓存误失的发生)来过滤。
数据追踪模块20可应用于任何用以分析芯片运作的产品内。在一些实施例中,数据追踪模块20和处理器10都可存在于相同的芯片或集成电路内。这在数据高速缓存12为芯片内建(on-chip)的高速缓存时有用。数据追踪模块20产生并输出数据地址的压缩流,数据地址的压缩流在芯片外重建以进行进一步的分析和除错。在一些实施例中,数据追踪模块20和处理器10可属于不同的芯片。
在执行特定应用程序时,数据追踪模块20对于追踪大量的数据地址的存取有用。举例来说,MPEG视频解码器应用程序可使处理器10每两个时钟周期(clock cycle)存取数据,若处理器10的操作频率是260MHz,则数据地址流将具有每秒520MB的带宽。数据追踪模块可于高频操作中追踪多个数据地址流,地址并不限定于高速缓存芯片内,地址也可为动态随机存取存储器、闪存存储器、硬盘或光盘内的地址。
参照图2。数据追踪模块20包括地址过滤单元30、基于历史记录的压缩单元40、基于区间的压缩单元50、字节表示转换单元60和输出先进先出缓冲器(FIFO)单元70。
地址过滤单元30可被配置寄存器所控制,并且可包含或排除某些特定类型的存取,也可以一个可编程值(例如从0到7)将数据地址移位(例如右移)。地址过滤单元30可根据所述的用户选项减少正在追踪的地址数目。
基于历史记录的压缩单元40保有过去所存取地址的历史记录,并通过找出目前存取地址和N个先前存取数据地址之间的差别值来压缩地址信息。目前地址被编码成与先前第K个存取的差别值为D个字节。参数K和D分别称为偏移量(offset)和差别值。由于对存储器的存取通常具有区域性,因此D通常仅需几位(bit)来表示。
基于历史记录的压缩单元40从地址过滤单元30接收目前数据地址A和相应的读取/写入信号,并且把地址A、偏移量K和差别值D等信号输出至基于区间(interval)的压缩单元50。在以下的范例中,每一数据地址是32位。然而,数据地址也可用其它的位数来表示。基于历史记录的压缩单元40将于后文中详细介绍。
基于区间的压缩单元50发现连续的数据存取群组之间存在冗余,显然是某些执行序列引发了连续的存取型态。举例来说,{K,D}的序列可以是:
1.{3,1}
2.{3,0}
3.{4,2}
4.{2,1}
5.{1,6}
6.{3,1}
7.{3,0}
8.{4,2}
9.{2,1}
在此情况中,基于区间的压缩处理会将存取6到9(第二存取序列)表示为存取1到4(第一存取序列)的重复。存取6到9可编码为如下的消息格式“长度为4的区间,起始于5个存取之前”。每一区间可用区间的长度L和区间的起始点P来定义,其中P为该区间第一个存取的相对参考位置。在以上的例子中,L=4而P=5。在一实施例中,可通过维护{K,D}封包(packet)内过去8个存取的历史记录来执行基于区间的压缩,并且使用封包{L,P}将多达8个存取的区间编码。在上述例子中,L和P最大的值为8。基于区间的压缩单元50的输出可以是以下两种封包的其中一种:(1)个别存取封包{A,D,K}或(2)区间封包{L,P}。
数据追踪模块20可提供用以从所捕获地址丢弃较低有效位的选项。丢弃位的数目是可编程的,例如从0到7位。还可有一选项,用以过滤未纳入高速缓存的第一级SRAM的存取。
字节表示转换单元60将基于区间的压缩单元50所输出的封包转换成字节大小的封包。设计这个流程有两个目的:效率和同步性。单元60使用尽可能少的所需字节表示这些信息以达成高的压缩比例。单元60也提供方法让输出字节流的观测者与编码程序的状态“同步”,包括能够重建缓冲器的状态。
在一些范例中,存储器空间是4GB,而正被压缩的地址流包括一串32位地址。每一封包{A,D,K}或{L,P}可用1至5个字节表示。如果差别值D所需的位大于一阈值(例如24位)则输出数据地址A,而非输出差别值D和索引K。若地址以较多的位数(例如64位)表示,则可增大该阈值。在这个范例中,在40位的输出中,地址编码消耗了一些数据位,而无法对大于所述阈值的差别值D有效地编码,因此在这种情况下送出完整的地址A。否则,则输出差别值D和索引K。输出FIFO缓冲器单元70提供压缩的地址给芯片外分析单元。
参照图3。在一些实施例中,基于历史记录的压缩单元40包括耦接到压缩电路102的缓冲器存储器(buffer memory)100。缓冲器存储器100包括处理器10最近所存取数据地址的滑动窗历史记录。缓冲器存储器100包括读取历史记录缓冲器110和写入历史记录缓冲器112。读取历史记录缓冲器110包括处理器10于读取操作期间所存取的一或多个先前读取数据地址的滑动窗历史记录。同样地,写入历史记录缓冲器112包括处理器10于写入操作期间所存取的一个或多个先前写入数据地址的滑动窗历史记录。
在一些实施中,读取历史记录缓冲器110可包括五个先前读取数据地址,而写入历史记录缓冲器112可包括三个先前写入数据地址,每一历史记录缓冲器以FIFO的方式操作。因此,每一目前读取数据地址会更新读取历史记录缓冲器110,亦即取代读取历史记录缓冲器110中最旧的先前读取数据地址。类似地,每一目前写入数据地址会更新写入历史记录缓冲器112,亦即取代写入历史记录缓冲器112中最旧的地址。每一历史记录缓冲器都是滑动窗历史记录,在这意义上,每一历史记录缓冲器包括了处理器最近期间所存取的一个或多个数据地址,并且适时地以每一个新的读取数据地址或新的写入数据地址更新。
缓冲器存储器100可以是任何可用于储存先前数据地址和逻辑的存储器,以确定更新历史记录时存储器中哪一个地址要被取代。在一实施例中,缓冲器存储器100以FIFO缓冲器的方式实施。
压缩电路102接收每一个目前数据地址A以及相应的读取/写入信号。压缩电路102根据每一个目前数据地址A和相应的历史记录内容输出压缩的数据地址。
根据压缩技术,其维护了先前数据地址的滑动窗历史记录,因而可将第n个存取的地址A[n]与历史记录中的多个地址做比较,并计算差别值。下一步决定历史记录缓冲器中地址的索引K,决定其中具有最小差别值的地址的索引K,然后输出并记录索引K和有正负号的最小差别值D[K],而非输出并记录地址A[n]。为了要记载目前数据地址是否比历史记录中的地址高或低而须考虑差别值的正负号。对于32位地址A[n]而言,每一存取需要四字节来表示。相较之下,研究发现包括四个先前数据地址的历史记录可允许70%的存取以六位编码。
参照图4。压缩数据地址流程148包括以下的步骤。在步骤150中测试计数器的计数值。如果该计数器并未归零,则该计数器于步骤152中计数值减1。在步骤154中,根据读取/写入信号辨识目前数据地址是读取数据地址或写入数据地址。在读取数据地址的情况中,以如下的方式计算读取历史记录缓冲器110中每一读取数据地址的差别值D[K]:
D[K]=A-H[K] (1)
对于K=0,1,2,3,4,其中A为目前数据读取地址,H[K]是读取历史记录缓冲器110中的一个地址,K是读取历史记录缓冲器110中地址的索引。在这个范例中,由于读取历史记录缓冲器包括了五个读取数据地址,因此索引K具有0到4的选取范围以供读取存取。
在步骤162中决定读取历史记录缓冲器中对应最小绝对差别值D[K]的地址的索引K值,并且将差别值D设成D[K],包括差别值的正负号。在步骤164中更新读取历史记录缓冲器110。读取历史记录缓冲器110中的每一地址都移位一个位置,且把目前数据地址A写到次序中的最低位置。更实际地说,目前数据地址取代读取历史记录缓冲器110中最旧的先前数据地址。
若步骤154中所决定的是写入存取的情况,则根据公式(1)计算写入历史记录缓冲器112中每一地址的差别值D[K],其中K为5,6,7。A为目前写入数据地址,H[K]是写入历史记录缓冲器112中的一个地址,K是写入历史记录缓冲器112中地址的索引。在这个范例中,由于写入历史记录缓冲器包括了三个写入数据地址,因此索引K具有5到7的选取范围以供写入存取。读取存取的索引K的范围值不会与写入存取的索引K的范围值重叠,因此可以根据索引K确认数据地址是有关于读取存取或写入存取。
在步骤172中决定写入历史记录缓冲器地址的索引K的值,索引K对应最小绝对差别值D[K]的值,并且将差别值D设成D[K],包括差别值的正负号。在步骤174中通过以目前数据地址A取代最旧的先前数据地址来更新写入历史记录缓冲器112。在步骤180中输出目前数据地址A、带有正负号的最小差别值D和对应于最小绝对差别值的索引K。当最小绝对差别值的计算结果无法进行压缩时,则输出目前数据地址A。
若步骤150中计数器的值为0,则于步骤190中清除读取历史记录缓冲器110和写入历史记录缓冲器112。此外也输出一个同步序列,同步序列的频率通过寄存器SYNCFREQ可编程。历史记录缓冲器被清除而每N*SYNCFREQ个计数值则送出一同步序列,其中N是整数,例如N=32。
读取历史记录缓冲器110和写入历史记录缓冲器112各自亦可包含许多不同于以上所列举的先前数据地址。通常,每一历史记录缓冲器含有一个或多个先前数据地址。在限定每一历史记录缓冲器只含有一个先前数据地址的情形下,计算所得的差别值为最小差别值。压缩性能可能会受到每个历史记录缓冲器中地址数目的影响。在一些实施中,每个历史记录缓冲器具有三至五个地址则能够提供可接受的性能。
索引K的范围可根据读取历史记录缓冲器110和写入历史记录缓冲器112中先前数据地址的数目而改变。举例来说,如果读取历史记录缓冲器110储存10个读取数据地址而写入历史记录缓冲器112储存6个写入数据地址,则读取存取的索引K可介于0至9的范围,而写入存取的索引K可介于10至15的范围。
虽然本文详述了各种的实施方式,但在不脱离本发明的精神和范围内,当可做些许的更动与润饰。举例来说,可对上述流程重新排序、增加或移除。本发明所述系统和技术的各种实施例可实现于数字电子电路、集成电路、专用集成电路(ASIC)、计算机硬件、固件、软件以及/或其组合之上。本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围。
Claims (31)
1.一种数据地址追踪方法,包括:
维护由处理器所存取的至少一先前数据地址的滑动窗历史记录,该滑动窗历史记录中该至少一先前数据地址的每一个与索引相关;
决定该滑动窗历史记录中该至少一先前数据地址的一者与目前数据地址之间的差别值;以及
提供该滑动窗历史记录中与该至少一先前数据地址的一者相关的该差别值和该索引,以表示该目前数据地址。
2.如权利要求1所述的方法,其特征在于,所述决定差别值的步骤包括:决定该目前数据地址和该滑动窗历史记录中多个先前数据地址之间的最小绝对差别值。
3.如权利要求2所述的方法,其特征在于,所述维护滑动窗历史记录的步骤包括:维护由该处理器所存取的一个或多个先前读取数据地址的读取历史记录。
4.如权利要求3所述的方法,其特征在于,所述决定差别值的步骤包括:决定目前读取数据地址和该滑动窗历史记录中的至少一先前读取数据地址之间的最小绝对差别值。
5.如权利要求2所述的方法,其特征在于,所述维护滑动窗历史记录的步骤包括:维护由该处理器所存取的一个或多个先前写入数据地址的写入历史记录。
6.如权利要求5所述的方法,其特征在于,所述决定差别值的步骤包括:决定目前写入数据地址和该滑动窗历史记录中的该至少一先前写入数据地址之间的最小绝对差别值。
7.如权利要求2所述的方法,其特征在于,所述维护滑动窗历史记录的步骤包括:储存该至少一先前数据地址于先进先出缓冲器中。
8.如权利要求2所述的方法,其特征在于,所述决定差别值的步骤包括:计算该滑动窗历史记录中多个先前数据地址的每一者与该目前数据地址之间的绝对差别值,并且从所计算的该多个绝对差别值中选择一个最小绝对差别值。
9.如权利要求1所述的方法,还包括更新该滑动窗历史记录。
10.如权利要求9所述的方法,其特征在于,所述更新滑动窗历史记录的步骤包括:将该目前数据地址加入该滑动窗历史记录中,并且从该滑动窗历史记录中移除最旧的先前数据地址。
11.一种方法,包括:
接收由处理器所存取的存储器地址;
压缩该存储器地址以产生压缩的存储器地址;以及
输出该压缩的存储器地址。
12.如权利要求11所述的方法,其特征在于,所述压缩存储器地址的步骤包括:决定目前数据地址和先前数据地址之间的差别值,并且输出该差别值以表示该目前数据地址。
13.如权利要求11所述的方法,其特征在于,所述压缩存储器地址的步骤包括:维护由该处理器所存取的至少一先前数据地址的历史记录,决定目前数据地址和该至少一先前数据地址之间的最小绝对差别值,辨识与该先前数据地址相关的索引,以及输出该最小绝对差别值和该索引以表示该目前数据地址。
14.如权利要求11所述的方法,其特征在于,所述压缩存储器地址的步骤包括:
辨识与第一存取序列重复的第二存取序列;
决定该第二存取序列的长度;以及
决定相对于该第一存取序列的该第二存取序列的起始点。
15.如权利要求11所述的方法,其特征在于,所述压缩存储器地址的步骤包括:
维护由该处理器所存取的至少一先前数据地址的历史记录;
决定目前地址A和该至少一先前数据地址D之间的最小差别值;以及
决定相关于该先前地址的索引。
16.如权利要求15所述的方法,其特征在于,所述压缩存储器地址的步骤还包括:
检查由一序列的封包{K,D}所表示的地址;
辨识与第一存取序列重复的第二存取序列;
辨识该第二存取序列的长度L;以及
辨识相对于该第一存取序列的该第二存取序列的起始点P。
17.一种数据地址追踪装置,包括:
缓冲器存储器,维护由处理器所存取的至少一先前数据地址的滑动窗历史记录,该滑动窗历史记录中该至少一先前数据地址的每一个与索引相关;以及
压缩电路,决定该滑动窗历史记录中该至少一先前数据地址的一者与目前数据地址之间的差别值,并且提供该差别值和该滑动窗历史记录中该至少一先前数据地址的一者相关的该索引以表示该目前数据地址。
18.如权利要求17所述的装置,其特征在于,该压缩电路更决定该目前数据地址和该滑动窗历史记录中的多个该多个先前数据地址之间的最小绝对差别值,并且提供该最小绝对差别值及其正负号和对应的索引,以表示该目前数据地址。
19.如权利要求18所述的装置,其特征在于,该缓冲器存储器包括读取历史记录缓冲器,用以维护一个或多个先前读取数据地址的读取历史记录。
20.如权利要求19所述的装置,其特征在于,该压缩电路决定目前读取数据地址和该读取历史记录缓冲器中的该至少一先前读取数据地址之间的最小绝对差别值。
21.如权利要求18所述的装置,其特征在于,该缓冲器存储器包括写入历史记录缓冲器,用以维护一或多个先前写入数据地址的写入历史记录。
22.如权利要求21所述的装置,其特征在于,该压缩电路决定目前写入数据地址和该写入历史记录缓冲器中的该至少一先前写入数据地址之间的最小绝对差别值。
23.如权利要求18所述的装置,其特征在于,该缓冲器存储器包括先进先出缓冲器。
24.如权利要求18所述的装置,其特征在于,该压缩电路更计算该滑动窗历史记录中两个或更多该先前数据地址的每一个与该目前数据地址之间的绝对差别值,并且从所计算的该多个绝对差别值中选择该最小绝对差别值。
25.如权利要求17所述的装置,其特征在于,该压缩电路更新该滑动窗历史记录。
26.如权利要求17所述的装置,其特征在于,该压缩电路通过将该目前数据地址加到该滑动窗历史记录,并且从该滑动窗历史记录移除最旧的先前数据地址,来更新该滑动窗历史记录。
27.一种装置,包括:
具有地址的存储器装置;
处理器,存取该存储器装置中的存储器地址;以及
数据追踪模块,压缩由该处理器所存取的该地址以产生压缩的存储器地址,并且输出该压缩的存储器地址。
28.如权利要求27所述的装置,其特征在于,该数据追踪模块包括基于历史记录的压缩单元,用以决定目前数据地址和先前数据地址之间的差别值,并且输出该差别值以表示该目前数据地址。
29.如权利要求27所述的装置,其特征在于,该数据追踪模块包括基于历史记录的压缩单元,用以决定目前数据地址和该至少一先前数据地址之间的最小差别值、辨识与该先前地址相关的索引,以及输出该差别值和该索引以表示该目前数据地址。
30.如权利要求27所述的装置,其特征在于,该数据追踪模块包括基于区间的压缩单元,用以辨识与第一存取序列重复的第二存取序列,并且输出第一值和第二值表示该第二存取序列,其中该第一值代表该第二存取序列的长度,该第二值代表该第二存取序列的起始点。
31.一种数据地址追踪方法,用以追踪由处理器所存取的数据地址,包括:
维护由该处理器所存取的多个先前数据地址的滑动窗历史记录,其中该滑动窗历史记录中该多个先前数据地址的每一个都具有一个索引;
决定该滑动窗历史记录中两个或更多该先前数据地址与目前数据地址之间的最小绝对差别值;以及
提供该最小绝对差别值及其正负号和对应的索引,以表示该目前数据地址。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92397407P | 2007-04-18 | 2007-04-18 | |
US60/923,974 | 2007-04-18 | ||
PCT/CN2008/070755 WO2008128476A1 (en) | 2007-04-18 | 2008-04-18 | Data access tracing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101611384A true CN101611384A (zh) | 2009-12-23 |
CN101611384B CN101611384B (zh) | 2012-11-14 |
Family
ID=39875101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880004893XA Active CN101611384B (zh) | 2007-04-18 | 2008-04-18 | 数据地址追踪方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8316214B2 (zh) |
EP (1) | EP2156301B1 (zh) |
CN (1) | CN101611384B (zh) |
AT (1) | ATE535868T1 (zh) |
TW (1) | TWI384397B (zh) |
WO (1) | WO2008128476A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7743279B2 (en) | 2007-04-06 | 2010-06-22 | Apple Inc. | Program counter (PC) trace |
US8055950B2 (en) * | 2008-01-11 | 2011-11-08 | Arm Limited | Method and apparatus for improved timing for trace synchronization |
EP2110750B1 (en) * | 2008-04-18 | 2017-03-22 | MediaTek Inc. | Data access tracing |
US8176366B2 (en) | 2009-04-03 | 2012-05-08 | Arm Limited | Trace synchronization |
US8438547B2 (en) * | 2009-05-05 | 2013-05-07 | Freescale Semiconductor, Inc. | Address translation trace message generation for debug |
US8959442B2 (en) * | 2010-06-11 | 2015-02-17 | Microsoft Corporation | Memory allocation visualization for unmanaged languages |
GB2481384B (en) * | 2010-06-21 | 2018-10-10 | Advanced Risc Mach Ltd | Key allocation when tracing data processing systems |
GB2483509B (en) * | 2010-09-13 | 2017-08-02 | Advanced Risc Mach Ltd | Data processing apparatus, trace unit and diagnostic apparatus |
CN102457933B (zh) * | 2010-10-29 | 2015-06-24 | 富士通株式会社 | 无线网络设备、无线网络系统和路由选择控制方法 |
TWI447728B (zh) * | 2011-03-03 | 2014-08-01 | Mstar Semiconductor Inc | 動態隨機存取記憶體之控制方法及控制器 |
CN102682835B (zh) * | 2011-03-11 | 2015-05-13 | 晨星软件研发(深圳)有限公司 | 动态随机存取存储器的控制方法及控制器 |
KR20130066402A (ko) * | 2011-12-12 | 2013-06-20 | 삼성전자주식회사 | 트레이스 데이터 저장 장치 및 방법 |
US20130227221A1 (en) * | 2012-02-29 | 2013-08-29 | Advanced Micro Devices, Inc. | Cache access analyzer |
CN103514105A (zh) * | 2012-06-15 | 2014-01-15 | 上海芯豪微电子有限公司 | 信息处理系统、信息处理方法及存储系统 |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US8924941B2 (en) | 2013-02-12 | 2014-12-30 | Concurix Corporation | Optimization analysis using similar frequencies |
US20130283281A1 (en) | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deploying Trace Objectives using Cost Analyses |
US8595427B1 (en) * | 2013-03-08 | 2013-11-26 | Avalanche Technology, Inc. | Non-volatile block storage module using magnetic random access memory (MRAM) |
US20130219372A1 (en) | 2013-03-15 | 2013-08-22 | Concurix Corporation | Runtime Settings Derived from Relationships Identified in Tracer Data |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
CN105765528B (zh) | 2013-11-13 | 2019-09-24 | 微软技术许可有限责任公司 | 具有可配置原点定义的应用执行路径跟踪的方法、系统和介质 |
CN103984614B (zh) * | 2014-05-06 | 2017-07-21 | 华为技术有限公司 | 一种监控方法及监控装置、电子设备 |
WO2018058625A1 (zh) * | 2016-09-30 | 2018-04-05 | 华为技术有限公司 | 一种检测报文反压的方法及装置 |
US9983978B1 (en) | 2017-03-08 | 2018-05-29 | Microsoft Technology Licensing, Llc | Querying an indexed time-travel trace |
US9934127B1 (en) | 2017-03-08 | 2018-04-03 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of key frames for replay responsiveness |
US9934126B1 (en) | 2017-03-08 | 2018-04-03 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of reverse lookup data structures |
US9959194B1 (en) | 2017-03-08 | 2018-05-01 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of memory snapshots for replay responsiveness |
US9940369B1 (en) | 2017-03-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Searching an indexed time-travel trace |
US10185645B2 (en) | 2017-03-08 | 2019-01-22 | Microsoft Technology Licensing, Llc | Resource lifetime analysis using a time-travel trace |
US10282274B2 (en) | 2017-06-14 | 2019-05-07 | Microsoft Technology Licensing, Llc | Presenting differences between code entity invocations |
US10506079B2 (en) * | 2017-09-14 | 2019-12-10 | Arm Limited | Packet compression |
US11074014B1 (en) * | 2019-08-22 | 2021-07-27 | Seagate Technology Llc | Managing adjacent track interference in a data storage device |
CN113448891B (zh) * | 2020-03-25 | 2023-07-21 | 澜起科技股份有限公司 | 存储器控制器以及用于监测对存储模块的访问的方法 |
US11914499B2 (en) * | 2021-10-29 | 2024-02-27 | Stmicroelectronics Application Gmbh | Systems and methods for preparing trace data |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271705A (ja) * | 1994-02-09 | 1995-10-20 | Hitachi Ltd | データプロセッサ及びこれを用いたトレース回路 |
US6182022B1 (en) | 1998-01-26 | 2001-01-30 | Hewlett-Packard Company | Automated adaptive baselining and thresholding method and system |
US6275782B1 (en) | 1998-05-05 | 2001-08-14 | Advanced Micro Devices, Inc. | Non-intrusive performance monitoring |
US6347383B1 (en) | 1999-03-31 | 2002-02-12 | International Business Machines Corporation | Method and system for address trace compression through loop detection and reduction |
TW440761B (en) * | 1999-05-06 | 2001-06-16 | Ind Tech Res Inst | The cache device and method |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6725341B1 (en) * | 2000-06-28 | 2004-04-20 | Intel Corporation | Cache line pre-load and pre-own based on cache coherence speculation |
JP3913004B2 (ja) * | 2001-05-28 | 2007-05-09 | キヤノン株式会社 | データ圧縮方法及び装置及びコンピュータプログラム及び記憶媒体 |
JP3609794B2 (ja) * | 2002-03-26 | 2005-01-12 | 株式会社東芝 | トレースデータ圧縮装置、トレースデータ圧縮方法及びトレースデータ圧縮回路を内蔵したマイクロコンピュータ |
US7308681B2 (en) * | 2003-10-28 | 2007-12-11 | International Business Machines Corporation | Control flow based compression of execution traces |
US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
US7209058B2 (en) * | 2005-05-13 | 2007-04-24 | Texas Instruments Incorporated | Trace receiver data compression |
US7657729B2 (en) * | 2006-07-13 | 2010-02-02 | International Business Machines Corporation | Efficient multiple-table reference prediction mechanism |
-
2008
- 2008-04-18 WO PCT/CN2008/070755 patent/WO2008128476A1/en active Application Filing
- 2008-04-18 US US12/106,251 patent/US8316214B2/en active Active
- 2008-04-18 EP EP08734113A patent/EP2156301B1/en active Active
- 2008-04-18 AT AT08734113T patent/ATE535868T1/de active
- 2008-04-18 CN CN200880004893XA patent/CN101611384B/zh active Active
- 2008-04-18 TW TW097114196A patent/TWI384397B/zh active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479160A (zh) * | 2010-11-23 | 2012-05-30 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
CN102479160B (zh) * | 2010-11-23 | 2014-12-24 | 国际商业机器公司 | 用于使用滑动写入窗口机制写入数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
EP2156301A1 (en) | 2010-02-24 |
TW200903329A (en) | 2009-01-16 |
US8316214B2 (en) | 2012-11-20 |
EP2156301B1 (en) | 2011-11-30 |
TWI384397B (zh) | 2013-02-01 |
CN101611384B (zh) | 2012-11-14 |
WO2008128476A1 (en) | 2008-10-30 |
US20080288741A1 (en) | 2008-11-20 |
EP2156301A4 (en) | 2010-06-30 |
ATE535868T1 (de) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101611384B (zh) | 数据地址追踪方法及装置 | |
Benini et al. | Hardware-assisted data compression for energy minimization in systems with embedded processors | |
TWI420298B (zh) | 快閃記憶裝置及其資料存取方法 | |
US6816942B2 (en) | Storage control apparatus and method for compressing data for disk storage | |
US9146933B2 (en) | Compressed storage access system with uncompressed frequent use data | |
JP6255893B2 (ja) | ストレージ制御装置、およびストレージ制御プログラム | |
US6446145B1 (en) | Computer memory compression abort and bypass mechanism when cache write back buffer is full | |
CN101667205B (zh) | 一种面向快速回放的实时测点数据存储方法 | |
CN101981551B (zh) | 用于高速缓存利用的设备和方法 | |
CN102968390B (zh) | 基于预先解码分析的配置信息缓存管理方法及系统 | |
KR20180115614A (ko) | Ssd의 백그라운드 동작들을 위한 기회 윈도우 힌트들 | |
Tremaine et al. | Pinnacle: IBM MXT in a memory controller chip | |
US20060294343A1 (en) | Realtime compression of microprocessor execution history | |
US9619400B2 (en) | Efficient management of computer memory using memory page associations and memory compression | |
CN110309081A (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
CN117075810B (zh) | 一种基于zns固态硬盘的数据管理方法 | |
CN113672499A (zh) | 追踪可执行程序中的目标变量的方法和系统 | |
KR101105127B1 (ko) | 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치 | |
TWI407310B (zh) | 資料儲存裝置及資料存取方法 | |
CN103019963A (zh) | 一种高速缓存的映射方法及存储设备 | |
US20070234003A1 (en) | Processor device and method for avoiding thrashing | |
CN103049395A (zh) | 缓存存储设备数据的方法及其系统 | |
CN102456400B (zh) | 使用于闪存的控制方法与控制器 | |
US10503651B2 (en) | Media cache band cleaning |
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 |