TWI384397B - 資料位址追蹤方法及資料位址追蹤裝置、資料追蹤方法及資料追蹤裝置 - Google Patents
資料位址追蹤方法及資料位址追蹤裝置、資料追蹤方法及資料追蹤裝置 Download PDFInfo
- Publication number
- TWI384397B TWI384397B TW097114196A TW97114196A TWI384397B TW I384397 B TWI384397 B TW I384397B TW 097114196 A TW097114196 A TW 097114196A TW 97114196 A TW97114196 A TW 97114196A TW I384397 B TWI384397 B TW I384397B
- Authority
- TW
- Taiwan
- Prior art keywords
- address
- data
- data address
- history
- difference value
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 29
- 239000000872 buffer Substances 0.000 claims description 64
- 238000007906 compression Methods 0.000 claims description 37
- 230000006835 compression Effects 0.000 claims description 36
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 235000012431 wafers Nutrition 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
- Lubrication Of Internal Combustion Engines (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
- Photoreceptors In Electrophotography (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本發明係有關於一種資料存取的追蹤。
於單一晶片上之嵌入式(embedded)處理器包括一數位信號處理器和一記憶體,記憶體可併入快取記憶體以迎合資料存取型態的時間和空間區域性。在一些實施例中,由於快取記憶體的填充(fill)和寫回(copyback)動作,因此快取記憶體的使用可能會造成額外的負擔。當處理器遇到快取誤失(cache miss)情況的時候,快取記憶體硬體可從記憶體階層架構中較低的等級開始填寫快取列(cache line)。在快取列的填寫中,產生快取誤失的記憶體操作可能導致處理器暫停運作,並且等待從記憶體中讀取此資料。
為解決以上存在的技術問題,特提供以下技術方案:本發明揭示一種資料位址追蹤方法。該方法包括維護由一處理器所存取之至少一先前資料位址的一視窗移動歷史記錄,該視窗移動歷史記錄中該至少一先前資料位址之每一者係與一索引相關;決定該視窗移動歷史記錄中該至少一先前資料位址之一者與一目前資料位址之間的一差別值;以及提供該差別值和該視窗移動歷史記錄中該至少一先前資料位址之一者相關的該索引,以表
示該目前資料位址。
另一方面,本發明揭示一種資料追蹤方法,包括接收由一處理器所存取的記憶體位址;壓縮該記憶體位址以產生壓縮的記憶體位址;以及輸出該壓縮的記憶體位址。
本發明揭示一種資料位址追蹤裝置。包括:一緩衝器記憶體,維護由一處理器所存取之至少一先前資料位址的一視窗移動歷史記錄,該視窗移動歷史記錄中該至少一先前資料位址之每一者係與一索引相關;以及一壓縮電路,決定所述視窗移動歷史記錄中該至少一先前資料位址之一者與一目前資料位址之間的一差別值,並且提供該差別值和該視窗移動歷史記錄中該至少一先前資料位址之一者相關的該索引以表示該目前資料位址。
本發明揭示一種資料追蹤裝置。包括:一記憶裝置;一處理器,存取該記憶裝置中的位址;以及一資料追蹤模組,壓縮由該處理器所存取的該位址以產生壓縮的位址,並且輸出該壓縮的位址。
本發明揭示一種資料位址追蹤方法,用以追蹤由一處理器所存取之資料位址,包括:維護由該處理器所存取之複數先前資料位址的一視窗移動歷史記錄,其中該視窗移動歷史記錄中該等先前資料位址之每一者皆具有一索引;決定該視窗移動歷史記錄中兩個或更多該等先前資料位址與一目前資料位址之間的一最小絕對差別值;以及提供該最小絕對差別值及其正負號和一對應的
索引以表示該目前資料位址。
這些和其他方面,以及特徵和其組合可用方法、裝置、系統、執行功能的手段、程式產品以及其他的方式表示。
實施本發明,可記錄和分析處理器所存取的位址。根據位址追蹤資訊,可針對特定硬體架構最佳化軟體應用程式。同樣地,可針對特定軟體應用程式最佳化硬體架構。關於對記憶體的存取資訊可用來最佳化:快取記憶體大小、快取列大小、替代方案、使部分快取列成為已寫入狀態的粒度,以及第一級和第二級快取記憶體的分配。
為使本發明之所述目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:參照第1圖,第1圖顯示根據本發眀一實施例之包含資料追蹤模組20的處理系統8的方塊圖。處理系統8包含一處理器10、一資料快取記憶體12、一第二級記憶體14及資料追蹤模組20,資料追蹤模組20用以監控由處理器10所存取的資料位址。資料追蹤模組20的輸出可以是壓縮的串流,當解壓縮後,其包括每一存取位址和讀取/寫入指示等資訊。透過分析正被存取的資料位址可提升處理系統8的效能(例如減少快取的誤失)。
處理器10存取資料快取記憶體12以取得用以執行指令的資料。處理器10可以是數位信號處理器、微控制器或一般用途微處理器。資料快取記憶體12是一容量相對小且高速的記憶體。當處理器10所需的資料存在於資料快取記憶體12內時(快取命中)可達到高速的操作,當處理器10所需的資料不存在於資料快取記憶體12內時(快取誤失),則執行快取填充操作以於第二級記憶體14內存取所需的資料。在快取填充操作中,將資料快取記憶體12的一列寫回第二級記憶體14,以便於資料快取記憶體12內騰出空間給的新資料。由於經常發生的快取誤失可能造成延遲且降低效能,因此分析處理器10的記憶體存取型態可提供相關的資訊,這些資訊可以用來調整系統的參數(例如資料快取記憶體12和第二級記憶體14的大小)以減少快取的誤失進而改善系統的效能。
舉例來說,記憶體位址的相關存取資訊對於以下幾個方面的影響的確認是很有用的,例如:較大快取記憶體的影響、更相關式(more associative)快取記憶體的影響、不同大小的快取列的影響、不同替代方案的影響、使部分快取列成為已寫入狀態時較大的粒度(greater granularity)的影響、以及從第一級記憶體移動資料結構至外部快取記憶體的影響。
在第1圖的例子中,資料追蹤模組20用以監控資料快取記憶體12內由處理器10所存取的資料位址。資料追蹤模組20接收由處理器10提供給資料快取記憶體12
的每一位址A,以及一用以顯示資料存取是否為讀取或寫入操作的讀取/寫入(R/W)信號。資料追蹤模組20提供一資料位址的壓縮串流22以便進行硬體和軟體效能的晶片外分析(off-chip analysis)。資料位址的壓縮串流22可提供存取相關的位址資訊。在一些實施例中,壓縮串流亦包括存取類型的資訊(例如讀取存取、寫入存取或快取控制)。執行於相同硬體架構之上的不同軟體應用程式可能具有不同的效能,因此於執行軟體應用程式期間,藉著分析處理器10所存取的資料位址可針對特定的硬體架構進行最佳化軟體應用程式。同樣地,硬體架構可針對特定軟體應用程式而最佳化。
在一些實施中,資料追蹤模組20可提供使用者選項以降低輸出資料位址的壓縮串流22的頻寬。這對於處理器10因執行一應用程式而造成大量的資料存取並最終壓倒(overwhelms)追蹤模組時顯得特別有用。舉例來說,資料追蹤模組20可允許使用者設定如下的選項:(1)於最小和最大位址所定義的位址範圍之內執行追蹤的動作。
(2)於最小和最大位址所定義的位址範圍之外執行追蹤的動作。
(3)追蹤特定類型的存取,例如對內部第一級快取記憶體或內部第一級靜態隨機存取記憶體(Static Random Access Memory,SRAM)存取命中之情形:(i)於最小和最大位址所定義的位址範圍之內;
(ii)於最小和最大位址所定義的位址範圍之外。
(4)追蹤非核心匯流排活動(off-core bus activity):(i)於最小和最大位址所定義的位址範圍之內。
(ii)於最小和最大位址所定義的位址範圍之外。
(5)過濾快取控制指令,用於用戶指定快取管理(user specific cache management)。
(6)根據一大範圍的執行效能監控事件(例如特定區域內的快取誤失,或是第n次快取誤失的發生)來過濾。
資料追蹤模組20可應用於任何用以分析晶片運作的產品內。在一些實施例中,資料追蹤模組20和處理器10皆可存在於相同的晶片或積體電路內。這在資料快取記憶體12為晶片內建的快取記憶體時有用。資料追蹤模組20產生並輸出一資料位址的壓縮串流,輸出晶片之資料位址的壓縮串流於晶片外重建以進行進一步的分析和除錯。在一些實施例中,資料追蹤模組20和處理器10可屬於不同的晶片。
在執行特定應用程式時,資料追蹤模組20對於追蹤大量的資料位址的存取有用。舉例來說,動畫專家群組(Motion Picture Experts Group,MPEG)視訊解碼器應用程式可使處理器10每隔兩個時脈週期存取資料,若處理器10的操作頻率是260MHz,則資料位址的串流將具有每秒520M字節的頻寬。資料追蹤模組可於高頻操作中追蹤多個資料位址的串流,位址並不限定於快取記憶體
晶片內,位址也可為動態隨機存取記憶裝置、靜態隨機存取記憶裝置、快閃記憶裝置、硬碟或光碟內的位址。
參照第2圖,第2圖顯示根據本發明實施例之資料追蹤模組20的方塊示意圖。資料追蹤模組20包括一位址過濾單元30、一基於歷史記錄的壓縮單元40、一基於區間的壓縮單元50、一位元組表示轉換單元60和一輸出先進先出緩衝器單元70。
位址過濾單元30可被架構暫存器所控制,並且可包含或排除某些特定類型的存取,也可透過一可程式的值(例如從0到7)將資料位址移位。位址過濾單元30可根據所述的使用者選項減少正在追蹤的位址數目。
基於歷史記錄的壓縮單元40保有過去所存取的位址的歷史記錄,並藉著找出目前存取資料位址和N個先前存取資料位址之間的不同之處來壓縮位址資訊。目前資料位址被編碼成與先前第K個存取差別D個位元組的值。參數K和D分別稱為偏移量(offset)和差別值(difference)。由於對記憶體的存取通常具有區域性,因此D通常使用少許的位元表示。
基於歷史記錄的壓縮單元40從位址過濾單元30接收目前資料位址A和相應的讀取/寫入信號,並且把位址A、偏移量K和差別值D等信號輸出至基於區間的壓縮單元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位元。可以有一選項用以過濾掉未快取的第一級靜態隨機存取記憶體存取。
位元組表示轉換單元60將基於區間的壓縮單元50所輸出的封包轉換成位元組大小的封包。設計這個流程有兩個目的:效率和同步性。位元組表示轉換單元60使用盡可能少的所需位元組表示這些資訊以達成高的壓縮比例。位元組表示轉換單元60也提供一方法讓輸出位元組串流的觀測者與編碼程序的狀態同步,包括能夠重建緩衝器的狀態。
在一些範例中,記憶體空間是4GB,而正被壓縮的位址串流包括一串32位元位址。每一封包{A,D,K}或{L,P}可用1至5個位元組表示。如果差別值D所需的位元大於一門檻(例如24位元)則輸出資料位址A,而非輸出差別值D和索引K。若位址以較多的位元數(例如64位元)表示,則可增加該門檻。在這個範例中,位址編碼本身於40位元的輸出中消耗了一些資料位元,而無法對大於所述門檻的差別值D有效地編碼,因此在這種情況下送出完整的位址A。否則,則輸出差別值D和索引K。輸出先進先出緩衝器單元70提供壓縮的位址資訊給晶片外分析單元。
參照第3圖,第3圖顯示根據本發眀實施例之基於歷史記錄的壓縮單元的方塊圖。在一些實施例中,基於
歷史記錄的壓縮單元40包括一耦接到壓縮電路102的緩衝器記憶體100。緩衝器記憶體100包括處理器10最近所存取之資料位址的視窗移動歷史記錄。緩衝器記憶體100包括一讀取歷史記錄緩衝器110和一寫入歷史記錄緩衝器112。讀取歷史記錄緩衝器110包括處理器10於讀取操作期間所存取之一個或多個先前讀取資料位址的視窗移動歷史記錄。同樣地,寫入歷史記錄緩衝器112包括處理器10於寫入操作期間所存取之一個或多個先前寫入資料位址的視窗移動歷史記錄。
在一些實施中,讀取歷史記錄緩衝器110可包括五個先前讀取資料位址,而寫入歷史記錄緩衝器112可包括三個先前寫入資料位址,每一歷史記錄緩衝器以先進先出的方式操作。因此,每一目前讀取資料位址會更新讀取歷史記錄緩衝器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圖,第4圖顯示根據本發眀所述之用以操作基於歷史記錄的壓縮單元之範例流程圖。壓縮資料位址的流程148包括以下的步驟。在步驟150中測試一計數器的計數值是否歸零。如果該計數器並未歸零,則該計數器於步驟152中計數值減1。在步驟154中,根據讀取/寫入信號辨識目前資料位址是讀取資料位址或寫入資料位址。在讀取資料位址的情況中,在步驟160中以如下的方式計算讀取歷史記錄緩衝器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中決定讀取歷史記錄緩衝器位址的索引K的值,索引K對應最小絕對差別值D[K]的值,並且將差別值D設成D[K],包括差別值的正負號。在步驟164中更新讀取歷史記錄緩衝器110。讀取歷史記錄緩衝器110中的每一位址都移位一個位置,且把目前資料位址A寫到次序中的最低位置。更實際地說,目前資料位址取代讀取歷史記錄緩衝器110中最舊的先前資料位址。
若步驟154中所確認的是一寫入存取的情況,則在步驟170中根據公式(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是整數,例如32。
讀取歷史記錄緩衝器110和寫入歷史記錄緩衝器112各自亦可包含許多不同於以上所列舉的先前資料位址。通常,每一歷史記錄緩衝器含有一個或多個先前資料位址。在限定每一歷史記錄緩衝器只含有一個先前資料位址的情形下,計算所得的差別值為最小差別值。壓縮效能可能會受到每一個歷史記錄緩衝器中位址數目的影響。於實作上,每一個歷史記錄緩衝器中具有三至五個位址則能夠提供可接受的效能。
索引K的範圍可根據歷史記錄緩衝器110和112中先前資料位址的數目而改變。舉例來說,如果讀取歷史記錄緩衝器110儲存10個讀取資料位址而寫入歷史記錄
緩衝器112儲存6個寫入資料位址,則讀取存取的索引K可介於0至9的範圍,而寫入存取的索引K可介於10至15的範圍。
雖然本文詳述了各種的實施方式,但在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾。舉例來說,可對上述的流程重新排序、增加或移除。本發明所述之系統和技術的各種實施例可實現於數位電子電路、積體電路、特殊設計的特定應用積體電路(Application Specific Integrated Circuits,ASIC)、電腦硬體、韌體、軟體以及/或其組合之上。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何熟習此項技藝者,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
8‧‧‧處理系統
10‧‧‧處理器
12‧‧‧資料快取記憶體
14‧‧‧第二級記憶體
20‧‧‧資料追蹤模組
30‧‧‧位址過濾單元
40‧‧‧基於歷史記錄的壓縮單元
50‧‧‧基於區間的壓縮單元
60‧‧‧位元組表示轉換單元
70‧‧‧輸出先進先出緩衝器單元
100‧‧‧緩衝器記憶體
102‧‧‧壓縮電路
110‧‧‧讀取歷史記錄緩衝器
112‧‧‧寫入歷史記錄緩衝器
第1圖顯示根據本發眀一實施例之包含資料追蹤模組的處理系統的方塊圖;第2圖顯示根據本發眀實施例之資料追蹤模組的方塊示意圖;第3圖顯示根據本發眀實施例之基於歷史記錄的壓縮單元的方塊圖;以及第4圖顯示根據本發眀所述之用以操作基於歷史記錄的壓縮單元之範例流程圖。
8‧‧‧處理系統
10‧‧‧處理器
12‧‧‧資料快取記憶體
14‧‧‧第二級記憶體
20‧‧‧資料追蹤模組
Claims (28)
- 一種資料位址追蹤方法,包括:維護由一處理器所存取之多個先前資料位址的一視窗移動歷史記錄,該視窗移動歷史記錄中該多個先前資料位址之每一者係與一索引相關;決定一目前資料位址與該視窗移動歷史記錄中該多個先前資料位址之間的一最小絕對差別值;以及提供該最小絕對差別值及其正負號和該視窗移動歷史記錄中該多個先前資料位址之一者相關的該索引,以表示該目前資料位址。
- 如申請專利範圍第1項所述之資料位址追蹤方法,其中所述維護視窗移動歷史記錄的步驟包括:維護由該處理器所存取之一個或多個先前讀取資料位址的一讀取歷史記錄。
- 如申請專利範圍第1項所述之資料位址追蹤方法,其中所述決定差別值的步驟包括:決定一目前讀取資料位址和該視窗移動歷史記錄中的至少一先前讀取資料位址之間的一最小絕對差別值。
- 如申請專利範圍第1項所述之資料位址追蹤方法,其中所述維護視窗移動歷史記錄的步驟包括:維護由該處理器所存取之一個或多個先前寫入資料位址的一寫入歷史記錄。
- 如申請專利範圍第4項所述之資料位址追蹤方法,其中所述決定差別值的步驟包括:決定一目前寫入資料位 址和該視窗移動歷史記錄中的該至少一先前寫入資料位址之間的一最小絕對差別值。
- 如申請專利範圍第1項所述之資料位址追蹤方法,其中所述維護視窗移動歷史記錄的步驟包括:儲存該至少一先前資料位址於一先進先出緩衝器中。
- 如申請專利範圍第1項所述之資料位址追蹤方法,其中所述決定差別值的步驟包括:計算該視窗移動歷史記錄中多個先前資料位址之每一者與該目前資料位址之間的一絕對差別值,並且從所計算的該等絕對差別值中選擇一最小絕對差別值。
- 如申請專利範圍第1項所述之資料位址追蹤方法,更包括更新該視窗移動歷史記錄。
- 如申請專利範圍第8項所述之資料位址追蹤方法,其中所述更新視窗移動歷史記錄的步驟包括:將該目前資料位址加入該視窗移動歷史記錄中,並且從該視窗移動歷史記錄中移除一最舊的先前資料位址。
- 一種資料追蹤方法,包括:接收由一處理器所存取的記憶體位址;壓縮該記憶體位址以產生壓縮的記憶體位址;以及輸出該壓縮的記憶體位址;其中所述壓縮該記憶體位址的步驟包括:辨識與一第一存取序列重複的一第二存取序列;決定該第二存取序列的一長度;以及決定相對於該第一存取序列之該第二存取序列的一起始點。
- 如申請專利範圍第10項所述之資料追蹤方法,其中所述壓縮記憶體位址的步驟包括:決定一目前資料位址和一先前資料位址之間的一差別值,並且輸出該差別值以表示該目前資料位址。
- 如申請專利範圍第10項所述之資料追蹤方法,其中所述壓縮記憶體位址的步驟包括:維護由該處理器所存取之至少一先前資料位址的一歷史記錄,決定一目前資料位址和該至少一先前資料位址之間的一最小絕對差別值,辨識與該先前資料位址相關的一索引,以及輸出該最小絕對差別值和該索引以表示該目前資料位址。
- 如申請專利範圍第10項所述之資料追蹤方法,其中所述壓縮記憶體位址的步驟包括:維護由該處理器所存取之至少一先前資料位址的一歷史記錄;決定一目前位址和該至少一先前資料位址之間的一最小差別值;以及決定相關於該先前位址的一索引。
- 如申請專利範圍第13項所述之資料追蹤方法,其中所述壓縮記憶體位址的步驟更包括:檢視由一序列之封包所表示的位址;辨識與一第一存取序列重複的一第二存取序列;辨識該第二存取序列的一長度;以及辨識相對於該第一存取序列之該第二存取序列的一起始點。
- 一種資料位址追蹤裝置,包括:一緩衝器記憶體,維護由一處理器所存取之多個先前資料位址的一視窗移動歷史記錄,該視窗移動歷史記錄中該多個先前資料位址之每一者係與一索引相關;以及一壓縮電路,決定該視窗移動歷史記錄中該多個先前資料位址與一目前資料位址之間的一最小絕對差別值,並且提供該最小絕對差別值及其正負號和該視窗移動歷史記錄中該多個先前資料位址之一者相關的該索引以表示該目前資料位址。
- 如申請專利範圍第15項所述之資料位址追蹤裝置,其中該緩衝器記憶體包括一讀取歷史記錄緩衝器,用以維護一個或多個先前讀取資料位址的一讀取歷史記錄。
- 如申請專利範圍第16項所述之資料位址追蹤裝置,其中該壓縮電路更決定一目前讀取資料位址和該讀取歷史記錄緩衝器中的該多個先前讀取資料位址之間的一最小絕對差別值。
- 如申請專利範圍第15項所述之資料位址追蹤裝置,其中該緩衝器記憶體包括一寫入歷史記錄緩衝器,用以維護一或多個先前寫入資料位址的一寫入歷史記錄。
- 如申請專利範圍第18項所述之資料位址追蹤裝置,其中該壓縮電路更決定一目前寫入資料位址和該寫入歷史記錄緩衝器中的該多個先前寫入資料位址之間的一最小絕對差別值。
- 如申請專利範圍第15項所述之資料位址追蹤裝 置,其中該緩衝器記憶體包括一先進先出緩衝器。
- 如申請專利範圍第15項所述之資料位址追蹤裝置,其中該壓縮電路更計算該視窗移動歷史記錄中兩個或更多該等先前資料位址之每一者與該目前資料位址之間的一絕對差別值,並且從所計算的該等絕對差別值中選擇該最小絕對差別值。
- 如申請專利範圍第15項所述之資料位址追蹤裝置,其中該壓縮電路更更新該視窗移動歷史記錄。
- 如申請專利範圍第15項所述之資料位址追蹤裝置,其中該壓縮電路係藉著將該目前資料位址加到該視窗移動歷史記錄並且從該視窗移動歷史記錄移除一最舊的先前資料位址來更新該視窗移動歷史記錄。
- 一種資料追蹤裝置,包括:一記憶體裝置;一處理器,存取該記憶體裝置中的記憶體位址;以及一資料追蹤模組,壓縮由該處理器所存取的該位址以產生壓縮的記憶體位址,並且輸出該壓縮的記憶體位址;其中,經由辨識與一第一存取序列重複的一第二存取序列,決定該第二存取序列的一長度,以及決定相對於該第一存取序列之該第二存取序列的一起始點,該資料追蹤模組被配置為壓縮由該處理器所存取的該記憶體位址。
- 如申請專利範圍第24項所述之資料追蹤裝置,其中該資料追蹤模組包括一基於歷史記錄的壓縮單元,用以決定一目前資料位址和一先前資料位址之間的一差別值, 並且輸出該差別值以表示該目前資料位址。
- 如申請專利範圍第24項所述之資料追蹤裝置,其中該資料追蹤模組包括一基於歷史記錄的壓縮單元,用以決定一目前資料位址和該至少一先前資料位址之間的一最小差別值、辨識與該先前位址相關的一索引,以及輸出該差別值和該索引以表示該目前資料位址。
- 如申請專利範圍第24項所述之資料追蹤裝置,其中該資料追蹤模組包括一基於區間的壓縮單元,用以辨識與該第一存取序列重複的該第二存取序列,並且輸出一第一值和一第二值表示該第二存取序列,其中該第一值代表該第二存取序列的該長度,該第二值代表該第二存取序列的該起始點。
- 一種資料位址追蹤方法,用以追蹤由一處理器所存取之資料位址,包括:維護由該處理器所存取之複數先前資料位址的一視窗移動歷史記錄,其中該視窗移動歷史記錄中該等先前資料位址之每一者皆具有一索引;決定該視窗移動歷史記錄中兩個或更多該等先前資料位址與一目前資料位址之間的一最小絕對差別值;以及提供該最小絕對差別值及其正負號和與該最小絕對差別值對應的索引以表示該目前資料位址。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92397407P | 2007-04-18 | 2007-04-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200903329A TW200903329A (en) | 2009-01-16 |
TWI384397B true TWI384397B (zh) | 2013-02-01 |
Family
ID=39875101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097114196A TWI384397B (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) |
Families Citing this family (37)
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 | 富士通株式会社 | 无线网络设备、无线网络系统和路由选择控制方法 |
US8244938B2 (en) * | 2010-11-23 | 2012-08-14 | International Business Machines Corporation | Sliding write window mechanism for writing data |
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) |
US20130227529A1 (en) * | 2013-03-15 | 2013-08-29 | Concurix Corporation | Runtime Memory Settings Derived from Trace 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 | 华为技术有限公司 | 一种检测报文反压的方法及装置 |
US9959194B1 (en) | 2017-03-08 | 2018-05-01 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of memory snapshots 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 |
US9934127B1 (en) | 2017-03-08 | 2018-04-03 | Microsoft Technology Licensing, Llc | Indexing a trace by insertion of key frames for replay responsiveness |
US10185645B2 (en) | 2017-03-08 | 2019-01-22 | Microsoft Technology Licensing, Llc | Resource lifetime analysis using a time-travel trace |
US9983978B1 (en) | 2017-03-08 | 2018-05-29 | Microsoft Technology Licensing, Llc | Querying an indexed time-travel trace |
US9940369B1 (en) | 2017-03-08 | 2018-04-10 | Microsoft Technology Licensing, Llc | Searching an indexed 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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Family Cites Families (11)
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 |
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 AT AT08734113T patent/ATE535868T1/de active
- 2008-04-18 TW TW097114196A patent/TWI384397B/zh active
- 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 CN CN200880004893XA patent/CN101611384B/zh active Active
- 2008-04-18 EP EP08734113A patent/EP2156301B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Non-Patent Citations (1)
Title |
---|
IEEE computers and communications, 1994。 * |
Also Published As
Publication number | Publication date |
---|---|
EP2156301B1 (en) | 2011-11-30 |
CN101611384A (zh) | 2009-12-23 |
ATE535868T1 (de) | 2011-12-15 |
EP2156301A1 (en) | 2010-02-24 |
US20080288741A1 (en) | 2008-11-20 |
US8316214B2 (en) | 2012-11-20 |
EP2156301A4 (en) | 2010-06-30 |
TW200903329A (en) | 2009-01-16 |
WO2008128476A1 (en) | 2008-10-30 |
CN101611384B (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI384397B (zh) | 資料位址追蹤方法及資料位址追蹤裝置、資料追蹤方法及資料追蹤裝置 | |
Arelakis et al. | SC2: A statistical compression cache scheme | |
US8713370B2 (en) | Non-intrusive processor tracing | |
JP5325436B2 (ja) | データ処理装置用トレース・ストリームの生成技術 | |
US6192499B1 (en) | Device and method for extending error correction beyond one sector time | |
US7302543B2 (en) | Compressed memory architecture for embedded systems | |
JP2004038981A (ja) | データ処理装置用トレース要素生成システム | |
JP5680511B2 (ja) | データ処理装置、トレースユニット、および診断装置 | |
US8516189B2 (en) | Software technique for improving disk write performance on raid system where write sizes are not an integral multiple of number of data disks | |
JP2009531976A (ja) | セットアソシアティブキャッシュマッピング技術に基づく高速データ圧縮 | |
JP2006146921A (ja) | 追跡バッファでブックマークを使用するための方法及びシステム | |
US20100172355A1 (en) | Rapid I/O Traffic System | |
JP3766035B2 (ja) | 命令セットの情報を格納するための装置及び方法 | |
US20180375528A1 (en) | Decompression using cascaded history windows | |
Yang et al. | Mithril: mining sporadic associations for cache prefetching | |
US7552363B2 (en) | Generation of trace elements within a data processing apparatus | |
CN107544926A (zh) | 处理系统及其访存方法 | |
Milenkovic et al. | Caches and predictors for real-time, unobtrusive, and cost-effective program tracing in embedded systems | |
WO2024146076A1 (zh) | 乱序处理器中队列的队列项选择方法及装置 | |
Xie et al. | Thread-aware dynamic shared cache compression in multi-core processors | |
US20170083455A1 (en) | Cache access statistics accumulation for cache line replacement selection | |
EP2110750A1 (en) | Data access tracing | |
TWI513282B (zh) | 快取記憶體管理裝置及應用該快取記憶體管理裝置之動態影像系統及方法 | |
TW201327165A (zh) | 對處理器的快取進行清除的方法以及該處理器 | |
Uzelac et al. | Hardware-based data value and address trace filtering techniques |