TWI494753B - 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術 - Google Patents

用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術 Download PDF

Info

Publication number
TWI494753B
TWI494753B TW099136478A TW99136478A TWI494753B TW I494753 B TWI494753 B TW I494753B TW 099136478 A TW099136478 A TW 099136478A TW 99136478 A TW99136478 A TW 99136478A TW I494753 B TWI494753 B TW I494753B
Authority
TW
Taiwan
Prior art keywords
transaction
original
data path
copy
transactions
Prior art date
Application number
TW099136478A
Other languages
English (en)
Other versions
TW201129903A (en
Inventor
Yen Hsiang Chew
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW201129903A publication Critical patent/TW201129903A/zh
Application granted granted Critical
Publication of TWI494753B publication Critical patent/TWI494753B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • 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/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Description

用於輸入/輸出及其他非記憶體類型化異動之DFX軟體除錯特徵技術 發明的技術領域
本發明的實施例係有關電腦網路連結的技術,且更確切來說,本發明的實施例係有關針對異動於一系統匯流排位準監看一資料路徑,並且針對診斷目的把選出異動複製到一指定記憶體裝置。
發明的技術背景
診斷工具與方法對軟體與硬體設計來說是一項重要面向,並且可促進一穩定、有效、與成熟運算環境的發展。診斷或〝除錯〞工具的範圍相當廣泛,但一種常見技術是分析一運算系統之硬體或軟體的狀態,以判定一特定硬體部件或邏輯部件所處理的資訊是否正確。
例如,可能需要診斷一硬體裝置的正確操作,以判定一特定硬體部件是否以正確的旗標、數值、或狀態來操作。可透過硬體暫存器來儲存該種資訊,或者可把該種資訊儲存在運作記憶體中。相似地,可藉著分析一邏輯模組所使用的數值來診斷該邏輯模組,不管是否把該等數值儲存在一晶片上快取記憶體中、儲存在一晶片下快取記憶體中、或者儲存在支援該邏輯模組進行之命令與指令之操作與執行動作的一分別記憶體模組中。
一種用以從一執行邏輯模組或從一硬體裝置取得該種資訊的常見習知機構是寫入一特定目標指令,其在一執行迴路中取回所需的數值並且隨後把該數值輸出到一電腦監視器或到一記錄檔中。此種方式的一項缺點是必須要針對欲取得的每個數值寫入並執行一特定指令組。再者,必須要把除錯指令引入到正受診斷的實際程式中,或者必須把除錯指令引入到從欲受診斷硬體取得數值的一定製應用程式中;且該等指令會增加額外的複雜度、執行冗餘工作,且如果正受診斷的軟體或硬體在執行所引入的該診斷指令之前就當機或停機,該等指令本身根本就不會受到執行。
另一種用以從一執行硬體裝置或邏輯單元捕捉且分析狀態資訊的機構是透過使用一邏輯分析器。邏輯分析器允許使用者能把〝探針〞連接至各種不同硬體連接點,例如現場可規劃閘陣列(FPGA)或一通訊匯流排,並且隨後監看流經過該位置的信號。該邏輯分析器中的軟體隨後允許受監看信號能與某些事件互相關聯,例如一特定狀態或流經過該點的一指令。不幸地,邏輯分析器因為它們需要使用〝探針〞或〝夾子〞(實體地附接到欲受監看的系統)的事實而受到限制。例如,對實體上連接至一特定系統的探針數量設有限制,且一邏輯分析器在它可支援的信號接腳數量方面另受到限制,例如可使一特定邏輯分析器受限於32個分別信號接腳探針,進而限制該使用者僅從一複雜系統中的可得數百或數千個潛在信號中選擇監看32個信號。
再者,必須要解譯或映射一邏輯分析器取得的信號,或者使該信號對應於一特定事件或指令,且在該種程序中,可能會遺失某些細節或資訊。雖然該邏輯分析器可透過其〝探針〞來觀看該系統中的該等信號,該等信號未必準確地對應於在該受探測位置上往來移動的信號,但反之,它們為透過該邏輯分析器本身的硬體與探針引線所觀看到的信號,此狀況會潛在地產生小量差異,或者使該等受觀看信號無法與正受診斷系統中之一目標裝置所接收到的一準確對應異動產生互相關聯。
發明的概要說明
依據本發明的一實施例,係特地提出一種方法,其包含下列步驟:針對獨特地定址到與一匯流排可通訊地介接的多個裝置中之一裝置的一異動,監看介於該等多個裝置之間的一資料路徑;從該異動產生一複製異動;允許該異動能行進至該等多個裝置中由該異動獨特地定址的一裝置;把該複製異動的一目的地位址修改為與該匯流排可通訊地介接的一指定記憶體裝置;以及在該資料路徑上發佈該複製異動,其中該複製異動根據該經修改目的地位址行進至該指定記憶體裝置。
圖式的簡要說明
係以舉例且不具限制性的方式在圖式中展示出本發明的多個實施例,並可參照以下的發明詳細說明並考量圖式而完整地了解本發明;在圖式中:第1圖展示出一種例示架構,其中可操作本發明的多個實施例;第2圖展示出一種替代架構,其中可操作本發明的多個實施例;第3圖展示出當中可操作本發明多個實施例之一種架構的替代視圖;第4圖以圖解表述圖展示出一種命令信箱與一種系統,在該系統中可操作該命令信箱的一實施例;第5A圖以流程圖展示出根據本發明一實施例之一種用以針對一項異動在一匯流排上監看一資料路徑的方法;第5B圖以替代流程圖展示出根據本發明一實施例之一種用以針對一項異動在一匯流排上監看一資料路徑的方法;以及第6圖以圖解表述圖展示出根據本發明一實施例之一種呈電腦系統之例示形式的機器。
較佳實施例的詳細說明
本發明說明用以針對多項異動在一匯流排上監看一資料路徑並且把該等異動複製到一指定儲存位置,而不會使原始異動中斷或影響原始異動的系統、裝置與方法。
在一實施例中,將監看介於與一匯流排可通訊地介接之多個裝置之間的一資料路徑。將把該異動複製到一複製異動中,且允許該原始異動行進至根據該異動而使其獨特地定址之該等多個裝置中的一裝置。將把該複製異動的一目的地位址修改為亦與該匯流排可通訊地介接的一指定記憶體裝置,且隨後在該資料路徑上發佈該複製異動,進而允許該複製異動根據該經修改目的地位址而行進至該指定記憶體裝置。
在一特定實施例中,原始地安置在該資料路徑上的該異動繼續前往其原始地且獨特地定址的原始目的地,典型地為與該匯流排可通訊地介接之多個週邊裝置中之一。該異動本身、該起源裝置、以及該目標或目的地周邊裝置不需要知悉(例如不需要能夠檢測)該異動已經受到複製,且可能的確不知悉或無法檢測到該異動受到了複製。在該實施例中,將使用一種平常方式在該原始指定目的地位址上處理該原始異動。
在一特定實施例中,將把該複製異動安置、插入、或引入到該資料路徑上,以經由該匯流排行進至一指定記憶體裝置或指定儲存位置,其中它隨後將受到該指定記憶體裝置或儲存位置處理。例如,在該指定記憶體位置或儲存位置上處理該複製異動的動作可包括把該複製異動本身儲存為該原始異動的一項表述。
在此所述的特定功能可由一命令信箱來執行,該命令信箱係被安裝至一系統中做為,舉例來說,該系統之通訊地介接於一匯流排的一周邊裝置。然而,更清楚地來說,能夠實現其所述功能的該命令信箱係個別地被請求,並且可個別地被製造與販售,或者可替代地在製造與販售一系統時被整合到此一系統中,諸如亦已經在本發明中請求的內容。
在以下的說明中,列出了多種特定細節,例如特定系統、語言、部件等的實例,以便提供本發明各種不同實施 例的完整說明。然而,熟知技藝者將可了解的是,不需要使用該等特定細節亦能實行本發明揭露的實施例。在其他事例中,並不詳細地解說已知的材質或方法,以避免不必要地模糊本發明揭露之實施例的重點。
除了圖式中展示以及本發明說明中解說的各種不同硬體部件之外,本發明的實施例另包括以下將說明的各種不同操作。根據該等實施例所解說的操作可由硬體部件來執行,或者該等操作可體現於機器可執行指令中,其可用來使以該等指令規劃的一般用途或特殊用途處理器執行該等操作。替代地,可由硬體與軟體的一組合來執行該等操作。
本發明的實施例亦有關一種用以執行本文所述之操作的裝置。可特別地針對所需目的來建構該種裝置,或者該裝置可包含由受儲存在該電腦中之一電腦程式選擇性地啟動或重新組配的一般用途電腦。該種電腦程式可受儲存於一電腦可讀儲存媒體中,例如但不限於:任何類型的碟片,包括軟碟片、光碟片、CD-ROM、以及磁性光碟片,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁性或光學卡,或適於儲存電子指令的任何類型媒體,上述媒體各耦合至一電腦系統匯流排。
呈現在本發明說明中的演繹法與顯示畫面並非固有地與任何特定電腦或其他裝置有關。各種不同的一般用途系統可結合根據本發明揭示內容的程式來使用,或者可證明出能方便地建構更專業的程式以執行所需的方法步驟。該等多種系統所需的結構將出現在以下的發明說明中。此外,並不參照任何特定程式語言來解說本發明的實施例。應該要了解的是,可使用多種不同的程式語言來實行本發明所述之該等實施例的揭示內容。
可把本發明的實施例備置為一種電腦程式產品或軟體,其可包括儲存有指令的一機器可讀媒體,該等指令可用來規劃一電腦系統(或其他電子裝置)以執行根據該等揭露實施例的一種程序。一機器可讀媒體包括用以儲存或發送呈一機器(例如一電腦)可讀形式之資訊的任何機構。例如,一機器可讀(例如電腦可讀)媒體包括一機器(例如一電腦)可讀儲存媒體(例如唯讀記憶體(〝ROM〞)、隨機存取記憶體(〝RAM〞)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置等)、一機器(例如電腦)可讀傳輸媒體(電性、光學、聲學)等。
第1圖展示出一種例示架構100,其中可操作本發明的多個實施例。架構100包括當中或上面具有資料路徑155的匯流排150。多個異動,例如異動105、110、與115,係展示為經由匯流排150而在資料路徑155上往來移動,該匯流排150介於與該匯流排可通訊地介接之多個周邊裝置之間並且以延伸部方式可通訊地介接到該資料路徑。例如,展示出一般周邊裝置120與121,而同時展示出可通訊地介接於該匯流排的更多特定周邊裝置,包括儲存裝置125、命令信箱140、記憶體位置130、與指定記憶體裝置145。
匯流排150可為整合到一運算裝置而用以把多個運算部件介接在一起的一種通訊傳輸機構,因此它們可以彼此進行通訊(例如通訊匯流排、骨幹匯流排、背板匯流排、傳輸匯流排等)。該種運算部件可包括展示於第1圖中的該等部件,例如周邊裝置120與121、儲存裝置125、記憶體位置130等等。例如,該等裝置可為硬碟驅動機、電腦處理器(例如中央處理單元)、操作性記憶體(例如各種不同類型的隨機存取記憶體(RAM),包括雙資料率同步動態隨機存取記憶體(DDR SDRAM)、DDR2、快閃式RAM、記憶體控制器、專屬音訊及/或視訊處理裝置、儲存控制器、有線及/或無線通訊/網路連結裝置、快速PCI(周邊部件互連體區域互連體)以及USB主機及/或橋接器裝置,以及共同地與一運算裝置或系統整合或者安裝到一運算裝置或系統中的其他各種不同周邊裝置。
資料路徑155代表在實體通訊匯流排上往來移動的一信號,其可由與該匯流排通訊式地介接的各種不同周邊裝置與部件檢測到(例如觀察到、觀看到)。異動105、110與115可體現在該資料路徑中作為一數位或類比信號,且可呈對應於當中存在有該等異動之基本運算裝置或系統的一適當格式、結構、或協定。例如,可以根據訓練順序、分別方塊長度、時脈周期等等來解密分別的異動。
第1圖另展示出命令信箱140可與匯流排150整合在一起或者可通訊式地介接於匯流排150,以使該命令信箱能具有該資料路徑的一視圖,並且可因此經由該匯流排監看介於該等各種不同部件與周邊裝置(例如120、121、125、130、145)之間之該資料路徑上往來的該等各種不同異動(例如105、110、115)。命令信箱140可介接於匯流排150,並且監看在匯流排150上往來移動的多項異動,或者命令信箱140可在匯流排150以及該等周邊裝置(例如120、121、125、130、145)中之一或多個之間介接,並且監看介於匯流排150以及該一或多個周邊裝置之間之一點上的多項異動。
第2圖展示出一種替代架構200,其中可操作本發明的多個實施例。例如,展示出了異動110的其他細節,以及複製異動211,其為從異動110產生的一經修改副本、事例、或版本。再者,將展示出複製異動211的其他細節以及命令信箱140的其他子部件細節。
在一特定實施例中,將針對獨特地定址到該等多個裝置中之一裝置(例如120、121、125、130或145中之一)的一異動(例如105、110、或115),監看與一匯流排150可通訊地介接的多個裝置(例如120、121、125、130、145)之間的資料路徑155。
在一實施例中,針對在該資料路徑上往來移動之該等多個異動之間的該異動來監看資料路徑155的動作(例如監看異動105、110與115中的異動110)包括根據該異動之一使用者指定異動類型215,在該資料路徑上往來移動的該等多個異動(例如異動105、110與115)之間選出該異動(例如110),或接著進行此動作。可根據一使用者輸入或已儲存的使用者偏好選出異動類型215。該異動類型可選自於多種異動類型,包括一輸入/輸出(IO)讀取/寫入請求、一組態讀取/寫入請求、一異動確認訊息、一中斷請求、或該匯流排架構所支援的任何其他異動類型。
在一實施例中,將把該異動(例如110)複製到複製異動211中,並且允許異動110行進至由異動110獨特地定址地的該等多個裝置中的一裝置,而不會產生中斷。例如,異動110根據異動110的原始目的地位址欄位225進行。在一替代實施例中,將根據使用者從在複製異動211中可供複製的多個欄位中選出的欲受複製異動110的欄位,把異動110複製到複製異動211。例如,雖然許多欄位可用來儲存於該複製異動中且後續儲存於一指定記憶體位置(例如根據一使用者輸入或已儲存的使用者偏好)中以供進行除錯,使用者可能僅希望把原始異動110的異動命令與位址儲存在複製異動211中,而同時忽略一可得酬載欄位。
在一實施例中,可把複製異動211的目的地位址226修改為(例如改變、更新、修改)與匯流排150可通訊地介接的一指定記憶體裝置(例如145)。可根據一使用者輸入或一已儲存使用者偏好把複製異動211的目的地位址226改變為一大量儲存裝置、一記憶體裝置、一記憶體位置、或一記憶體裝置中的位置範圍(例如130)等等。
在一實施例中,將在該資料路徑155上發佈複製異動211,進而允許複製異動(211)能根據經修改的目的地位址226行進至指定記憶體裝置145。
在一特定實施例中,異動110(例如受到複製的該原始異動)行進至由原始異動110之原始目的地位址225指定的一目標裝置,以供利用其平常方式來處理,例如根據在元件215或元件240上把位於異動110中的一異動或命令類型複製到複製異動211的方式、根據在元件220或元件245上把位於異動110中的異動資料或其所攜載或其中攜載的〝酬載〞複製為複製異動211的方式、根據異動110的一原始目的地位址(其對應於且獨特地定址為一運算系統中唯一一個可通訊式地得到的個別周邊裝置,如異動110的元件225所表示)、或根據一異動命令(例如攜載有該異動的一請求、命令、或指令),如異動110的元件230所表示。例如,處理動作可為把一寫入請求儲存在一記憶體或儲存位置上、從一儲存體或記憶體位置取回一讀取請求所指定的資料、適切地在一音訊或視訊裝置上處理音訊或視訊資料、在一通訊裝置上執行一發送及/或接收功能等等。
在一實施例中,該等多個裝置中由異動110獨特地定址的該裝置為該異動的一〝目標裝置〞,其對應於異動110的原始目的地位址225。
在一實施例中,從一原始異動(例如異動110)複製的複製異動211包括原始異動110所體現的原始資訊(例如對應於異動110的元件215、220、225與230的資料),但呈一種稍經修改的形式,因此可適當地處理該複製異動。例如,除了修改複製異動211的目的地位址226之外,該複製異動可包括經修改異動命令216。在一實施例中,為了維持該原始異動的一真實表述,可把原始異動110的原始目的地位址分別地儲存在該複製異動中做為一已儲存原始位址(目的地位址),例如在元件255上。
相似地,在一特定實施例中,可把異動110的原始異動命令分別地儲存在該複製異動中作為一已儲存原始異動命令,例如在元件217上。再者,可把與原始異動110相關聯的一起源位址分別地儲存在複製異動211中,因此啟始或產生原始異動110的該位址或周邊裝置可稍後在複製異動211中受到識別。起源位址可另包括識別出該異動之起源者的任何其他資訊,例如某些匯流排架構可得的裝置標籤及/或裝置識別符(ID)。例如,某些匯流排架構針對連接至該匯流排的各個特定裝置支援一獨特請求信號,其可用來識別該異動的起源者,且因此被視為一起源位址。
第2圖另展示出命令信箱140的另一個子結構,包括信號分析器260、信號產生器265、選擇準則275、以及邏輯單元270。在一特定實施例中,針對該異動(例如異動110),監看與匯流排150可通訊地介接之該等多個裝置(120、121、125、130、145)之間的資料路徑155的動作包括信號分析器260監看透過命令信箱140介接於匯流排150之資料路徑155上往來移動的信號。例如,信號分析器260可根據一組協定或標準連續地解密流經資料路徑155的一信號,以摘取並觀看體現在該信號中的資料,例如對應於該等各種不同異動(例如105、110、115)的資料,或由該等各種不同異動(例如105、110、115)體現的資料。
在一特定實施例中,從異動110產生複製異動211並且修改複製異動211之目的地位址226的動作係由信號產生器265來執行,其係透過命令信箱140而與匯流排150可通訊地介接。例如,信號產生器265可通訊式地介接於邏輯單元270,其針對該複製異動提供經修正或經修改目的地位址226,其為信號產生器265可隨後在該複製異動中呈一信號形式實行,該信號將被引入到資料路徑155中以在匯流排150上往來移動。
在一實施例中,一信箱周邊裝置或命令信箱(例如元件140)執行上述的監看、選擇、修改、複製、以及信號產生/插入功能。在該實施例中,該信箱周邊裝置係與匯流排150可通訊地介接,或可通訊式地介接在介於二或更多個該等周邊裝置之間的一匯流排上,例如介於記憶體位置130與記憶體控制器299之間、介於儲存裝置125與儲存控制器298之間、介於記憶體控制器299與匯流排150之間、或介於儲存控制器298與匯流排150之間,例如由第2圖之上述位置中列出之替代命令信箱140表述所說明地,且以虛線表示為替代方案。某些實施例中,可把多個命令信箱140實行於一個單一系統中,以執行本文所述的該等功能。
在一實施例中,當命令信箱140係位於記憶體控制器299以及匯流排150之間、信箱140與記憶體控制器299之間有一直接資料路徑,且一使用者把記憶體控制器299指定為供儲存複製異動的指定記憶體位置時,命令信箱140實際上並不需要改變該複製異動的目的地位址且把該複製異動插入到匯流排150上,因為該複製異動將受到記憶體控制器299請求。根據該實施例,命令信箱140可因此驗證出該複製異動的目的地對應於記憶體控制器299中的指定記憶體位置、選擇要把該原始異動複製到一複製異動(具有該等複製異動所提供的額外細節),並且隨後把該複製異動推入到記憶體控制器299的寫入佇列中(具有一經修改記憶體目的地位址),以供利用該直接資料路徑而儲存到記憶體控制器299中,而同時允許該原始異動行進至其所意圖的目的地裝置,而不會產生中斷。
在一特定實施例中,針對該異動,與該匯流排可通訊地介接的一信箱周邊裝置或命令信箱裝置(例如140)經由解密在該匯流排上往來移動之該資料路徑的一信號分析器來監看該資料路徑、經由一邏輯單元而根據儲存在該信箱周邊裝置中的選擇準則275從該等多個異動中選出該異動、經由一信號產生器複製該選定異動、並且經由該信號產生器把該複製異動引入到該資料路徑中。
第3圖展示出當中可操作本發明多個實施例之一種架構300的替代視圖。第3圖針對指定記憶體裝置145上的已儲存異動表述(例如元件311與316)展示出其他細節。
在一實施例中,將在複製異動211之經修改目的地位址226所指定的指定記憶體裝置145上處理複製異動211。此動作由已經到達指定記憶體裝置145的複製異動211藉著根據其經修改目的地位址226而在該匯流排的資料路徑155上往來移動來展示於第3圖中。在一替代實施例中,經修改目的地位址226根據一使用者輸入或已儲存偏好,引導複製異動211朝向記憶體位置130中之一或記憶體位置130中的一範圍。儲存複製異動的動作可發生於以一基本位址開始的連續記憶體位置中。在一實施例中,記憶體位置130中的BASE_ADDR包含一第一複製異動,且BASE_ADDR+一偏移包含一第二複製異動,以此類推。因此,可連續地捕捉並儲存符合選擇準則275的多項異動。可由一軟體除錯程式/剖析工具稍後摘取該等複製異動,以供觀看。
在一特定實施例中,在指定記憶體裝置145或指定記憶體位置130上處理複製異動211的動作包括該指定周邊裝置(例如130或145)在指定記憶體裝置145或記憶體位置130上儲存異動311的一表述。在一實施例中,在指定記憶體裝置145上儲存異動311之該表述的動作包括把來自複製異動211的一原始目的地位址儲存在異動311的已儲存表述中,如所展示地。在一實施例中,在指定記憶體裝置145上儲存異動311之該表述的動作包括把來自複製異動211的一已儲存原始異動類型及/或一已儲存原始異動命令217儲存在異動311的該已儲存表述中,如所展示地。在一實施例中,在指定記憶體裝置145上儲存異動311之該表述的動作包括在指定記憶體裝置上把隨著複製異動211的異動資料儲存為一酬載。亦可把從該複製異動衍生出的其他資訊儲存在異動311的該表述中,包括標籤、ID、訊務分類、虛擬通道、中斷向量資訊、以及由該特定匯流排與異動架構支援而令一使用者能識別一異動之一起源者的其他資訊,或可從一匯流排架構摘取且可證明出能用於後續除錯活動的任何其他資訊。
可明顯地儲存額外的已儲存異動表述或全部的異動表述,或把其引導至一指定裝置,例如由在元件316上一異動的已儲存表述所展示的。哪些異動受選以供進行複製且受引導以供儲存在該指定裝置上的狀況可依據使用者輸入、已儲存使用者偏好、以及命令信箱140可得的選擇準則而定。
在一實施例中,針對該異動(例如110)監看資料路徑155的動作包括針對在資料路徑155上往來移動之多個異動(105、110與115)中的異動110監看資料路徑155。可根據選擇準則來監看並且選出某些或全部的該等異動。
在一實施例中,係根據原始目的地位址225、對應於啟始該原始異動之一裝置的起源位址(例如120、121、125、130或145的位址)、或該原始目的地位址與該起源位址的一組合,從在資料路徑155上往來移動的該等多個異動(105、110與115)中選出異動110。在一替代實施例中,根據屬於原始目的地位址之一範圍內的原始目的地位址225、屬於起源位址之一範圍內之一起源裝置的一起源位址、或各屬於一指定位址範圍內之原始目的地位址與起源位址的一組合,從在該資料路徑上往來移動的該等多個異動中選出異動110。異動類型、異動命令、及/或起源器身分或位址亦可用來過濾出異動,如可由該命令信箱在一異動中識別出的任何特定資料欄位或數值一般。在另一實施例,根據一使用者輸入,選出並且處理在資料路徑155上往來移動的所有該等多個異動,以複製並儲存所有該等異動。
在一實施例中,針對在該資料路徑上往來移動之多個異動中的該異動監看該資料路徑的動作包括根據一使用者輸入在該資料路徑上往來移動的該等多個異動中選擇並處理多個異動,其中該等多個異動係與多個不同的起源裝置相關聯,其中該等多個異動包含多個不同的異動類型,且其中該等多個異動攜載有多個不同的異動資料酬載。
僅針對相符或相配一指定準則之該等異動選出唯一一個子組或過濾該等異動的能力為可透過習知機構來實行的一項獨特優點。該等習知機構並不允許在捕捉資料之前監看異動並且僅選出符合指定準則的該等異動。在該資料受到複製之前或被複製到一分別位置以供進行除錯或診斷之前,相較於能在此程序中較早進行過濾的能力來說,後續過濾出不欲或不需要資料的動作容易產生錯誤,並且會增加運算冗餘工作與額外需求。
相反地,捕捉所有異動或相當大量異動的能力對使用診斷工具的熟知技藝者來說亦是一項優點。習知機構與系統並不允許同時地捕捉相當大量的變化異動類型、針對不同周邊裝置的異動、或起源自不同裝置的異動,單單因為習知系統中可得接腳與探針數量的實體限制。例如,並無法具備擁有數百個甚至數千個接腳來做為探針引線的系統,因為該種系統的組態/設定與用途相當地複雜,且實體上需要使各個彼此連接且使各個個別探針位於一正確位置。相反地,可把命令信箱140整合到該匯流排上或介接於其他資料路徑通訊匯流排,進而允許該命令信箱能具有在該特定匯流排上往來移動之所有異動的一視圖,並且如上所述地選擇性地從該等多個異動中選出將受到作用的該異動。
使用習知機構來做為內部匯流排,例如一晶片上系統(SoC) IC設計內的匯流排,將會產生額外的問題,因為內部匯流排異動信號並未直接地為使用者可見,且必須要選擇性地把該等信號拉出到外部IO接腳外,以供利用邏輯分析器進行探測。把該等信號拉出到該SoC IC外的動作需要使用系統套裝IO接腳,進而需要共享功能性IO接腳或者利用內部信號來源對功能性IO接腳進行多工處理。
例如,該等習知機構的其他限制包括一使用者在一單一時點能觀看到之內部匯流排信號的數量限制,其受限於該系統套裝上的可得IO接腳數量,例如,具有32位元位址與64位元資料(加上其他控制信號)的一系統匯流排可能需要至少總共96個IO接腳才能有效地受到一邏輯分析器以其完整形式來摘取。因此,需要額外的硬體與平台資源。
再者,用以摘取該等內部匯流排信號的共享IO接腳無法再用來執行其原始功能,例如,如果一DDR控制器之IO接腳的較高32個資料位元以及20個GPIO(一般用途輸入輸出)接腳係用來摘取內部匯流排資料,便可使DDR記憶體有效地縮減為32位元記憶體而不是原始的64位元,其會消極地影響效能並且進一步地使該DIMM的一半無法使用。再者,當該等GPIO正用於摘取內部匯流排信號時,它們便無法用於GPIO功能,且用來摘取內部匯流排信號的任何共享IO接腳無法用於其原始的目標功能性。單單為了摘取內部匯流排信號的目的而增加一系統套裝上之IO接腳數量會產生過高的費用,並且會不欲地增加系統套裝設計的複雜性,因為必須要增加一系統的IO接腳總數以容納需求。針對該等因素,無法在市場上看到該種架構,且該種架構無法成為商業上可得的。
針對一完整系統仍有其他限制存在著,例如用於軟體設計與除錯的一電腦,其中對使用者來說要實體地把硬體探針連接至該系統或者修改該平台以促進對該系統中內部匯流排信號的除錯或探測動作是相當不便的,因為要如此做至少需要部分地拆解該系統且使該系統暴露於靜電放電(ESD)損傷的風險中。本發明所述的實施例使用現存硬體,例如系統記憶體中的額外容量,以供結合所揭露的該命令信箱來儲存複製異動,因此不需要改變該原始硬體,因為該命令信箱提供了所需的功能,而不需要使實體探針連接至該系統,進而對終端使用者提供相當程度的便利性並且能節省費用。再者,使用一習知邏輯分析器來摘取內部匯流排信號會產生額外的平台費用,並且增加平台大小,因為除了購買一邏輯分析器的費用之外,還必須把邏輯分析器探針介面加入到該系統中。
再者,某些異動由目標裝置耗用,例如張貼寫入異動,或者異動可能會改變一目標裝置的狀態(例如中斷異動)。因此,一處理器可能無法利用習知機構或習知軟體除錯工具來阻止該等異動。相反地,本發明所述的實施例可提供該種功能,不管該異動是否受到耗用,或者該異動是否改變該目標裝置的狀態,進而允許終端使用者能實際上即時地觀看(例如監看)該匯流排上發生的活動,例如監看哪些異動進入一特定裝置且來自哪些起源器,除了其實際發生順序之外,或者可監看一處理器何時與一裝置進行通訊,這對多執行緒應用程式進行除錯動作尤其有用。
此外,因為系統設計者可以使其內部匯流排的協定隱藏起來不給需要除錯軟體之系統的使用者知悉,如果要把邏輯分析器用來有效地解譯或解碼從該匯流排摘取出的資料,終端使用者必須知悉該匯流排的協定並且據此規劃該邏輯分析器。相反地,本發明揭露的命令信箱實施例可複製異動並且把有用資料儲存在記憶體中(例如作為已儲存異動表述311),且因此可以克服隱藏一匯流排實行方案或協定不給使用者知悉的問題。協定堅持係由該命令信箱中的一信號分析器與信號產生器來實行。因此,系統設計者能夠對終端使用者發佈該除錯器,而不必揭露其專屬匯流排架構或協定。
最後,不若習知軟體除錯機構,本發明揭露的實施例對一系統上的軟體執行流程所產生的干擾最小,因為不必把額外指令加入到該原始處理器可執行碼中以供阻止異動。
本發明揭露之實施例的另一項優點是使用者能夠存取非記憶體型異動的一即時影像,例如尚未傳送到一儲存位置的異動,該儲存位置可以是RAM或大量儲存體。例如,一旦任何信號導向一非記憶體型周邊裝置,例如一通訊介面、一音訊或視訊介面等,如果該介面的初始設計並未考量到一適當探針點,那麼習知系統便往往無法存取該信號。整合該種實體探針點的動作並非不會產生進一步費用或複雜性,且因此許多設計往往拋棄此種考量,而支持較低費用或簡化的設計。相反地,可把命令信箱140設置在該種周邊裝置以及該匯流排之間,或者把命令信箱140設置在該匯流排上,並監看引導到該種裝置的異動,或來自該種裝置的異動,或者該等二者異動,且隨後針對診斷目的把該等異動複製到一指定位置,進而允許能即時地觀看因為硬體限制而可能無法取得的資料。這是對該命令信箱來說可能的,不管探針點是否存在於該周邊裝置上。
在當中韌體或軟體工具用來存取非記憶體型異動的狀況中,例如上述狀況,該資料仍無法即時地可得,因為該該等工具所複製的並不是該異動本身,而但反之,必須要執行軟體以從韌體參數值或硬體暫存器找尋適當資料點,且隨後以某種方式將該等數值報告出去。即便是可以快速地進行此動作,並無法即時地進行此動作,且此動作將不會影響實際異動,但反之,將會導致資料的重新建構或改變。該等差異本身會使努力除錯的成果受挫,因為傳送給一非記憶體類型化裝置的實際資料值與異動命令將單單地成為不可得,且僅能後續地取得所欲異動的不完美轉譯或重新建構樣式。
第4圖以圖解表述圖展示出一種命令信箱401與一種系統400,在該系統中可操作該命令信箱401的一實施例。從第4圖之命令信箱401延伸出的虛線係意圖表示該命令信箱可實體地不同於系統400,或者可把該命令信箱整合到系統400中,依據特定實施例而定。
系統400包括記憶體495以及處理器490。例如,記憶體495可儲存欲執行的指令,且處理器490可執行該等指令。系統400包括匯流排415,其用以在與匯流排415可通訊地介接的多個周邊裝置之間以在系統400內傳輸異動。該等多個周邊裝置包括周邊裝置430與周邊裝置435、指定儲存裝置420、以及指定記憶體裝置425。系統400另包括資料儲存體450(例如一記憶體、硬碟驅動機,或其他系統儲存位置),其則包括已儲存異動表述405與使用者準則410。
不同於系統400,命令信箱401(在本文中亦稱為〝信箱周邊裝置〞401)包括邏輯單元470、異動複製器460、異動選擇單元465、信號分析器445、以及信號產生器455。命令信箱401可在製造時與系統400整合在一起,或者可分別製造且後續受到安裝,依據與欲實現的選定實施例而定且與本發明的揭示內容一致。
在一實施例中,信箱周邊裝置401係與匯流排415可通訊地介接,以針對一異動監看該等多個裝置(420、425、430、435)之間的一資料路徑,該異動係獨特地定址為該等多個裝置中的一裝置,除了該信箱周邊裝置本身之外。
在一實施例中,信箱周邊裝置401將從該異動產生一複製異動、把該複製異動的一目的地位址改為與匯流排415可通訊地介接的一指定儲存裝置420,並且把該複製異動插入到該資料路徑中,以使該複製異動根據經修改目的地位址而朝著指定儲存裝置425行進。
在一特定實施例中,信箱周邊裝置401將允許該原始異動能行進至該等多個裝置中由該異動獨特地定址的一裝置。
在一實施例中,信箱周邊裝置401使用整合信號分析器445,以針對該異動監看該等多個裝置(420、425、430、435)之間的該資料路徑。
在一實施例中,信箱周邊裝置401使用邏輯單元470把該複製異動的目的地位址改變為指定儲存裝置420。邏輯單元470亦可追蹤該目的地基本位址,並且針對欲儲存在記憶體中的每個連續複製異動來增加目的地位址。
在一實施例中,信箱周邊裝置401使用信號產生器455把該複製異動插入到該資料路徑中,以使該複製異動朝著指定儲存裝置420行進,其中該複製異動體現著該經改變目的地位址,且其中該複製異動將根據該經改變目的地位址而經由匯流排415朝著指定儲存裝置420行進。在一替代實施例中,信箱周邊裝置401使用信號產生器455以在該資料路徑上發佈、插入、注入、或引導該複製異動。
在一特定實施例中,信箱周邊裝置401使用異動選擇單元465,以從響應於正受信號分析器445監看之該異動的該資料路徑選出一異動以供進行複製。在一特定實施例中,異動選擇單元465將根據從一使用者輸入衍生出的一使用者指定準則或從已儲存的使用者偏好衍生出的一使用者指定準則,來選出該異動以供複製。
在一實施例中,信箱周邊裝置401使用異動複製器460把該選定異動複製到一複製異動中,並且根據來自邏輯單元470的一指令(提供指定儲存裝置420的經改變目的地位址)把該經改變目的地位址實行到該複製異動中。在一特定實施例中,異動複製器460複製該異動,而不會使匯流排415上的該異動中斷。
第5A圖與第5B圖以流程圖展示出根據本發明一實施例之用以針對一項異動在一匯流排上監看一資料路徑的方法500以及替代方法501。方法500與方法501可由處理邏輯組件進行,其可包括硬體(例如電路、專屬邏輯組件、可規劃邏輯組件、微碼等)、軟體(例如在一處理裝置運作以執行硬體模擬的指令),或該等項目的一組合。在一實施例中,方法500與方法501係由一命令信箱執行,例如第4圖的命令信箱401。在一替代實施例中,係由命令信箱401結合一系統來執行方法500與方法501,例如結合了命令信箱401的系統400,如第4圖所示。
請先參見第5A圖,方法500以處理邏輯組件針對一異動監看與一匯流排可通訊地介接之多個裝置之間的一資料路徑來開始(方塊505)。在方塊510中,處理邏輯組件從在該資料路徑上往來移動的多個異動中選出該異動。
在方塊515中,處理邏輯組件把該異動複製到一複製異動,並且允許該異動行進至該等多個裝置中獨特地由該異動定址的一裝置(方塊520)。在方塊525中,處理邏輯組件把該複製異動的一目的地位址修改為一指定記憶體裝置或儲存裝置。在方塊530中,處理邏輯組件把該異動的該原始目的地位址儲存在該複製異動中。在方塊535中,處理邏輯組件在該目標裝置上處理該原始異動。
在方塊540中,處理邏輯組件在該資料路徑上發佈該複製異動。在方塊545中,處理邏輯組件分別地在該指定記憶體裝置或儲存裝置上處理該複製異動。且在方塊550中,處理邏輯組件分別地在該指定記憶體裝置或儲存裝置上儲存該異動的一表述。
第5B圖以替代流程圖展示出根據本發明一實施例之一種用以針對一項異動在一匯流排上監看一資料路徑的方法501。方法501開始於方塊570,其中一使用者組配一命令信箱以檢測屬於一選定PCI位址範圍(ADDR_RANGE)內的特定類型非記憶體映射異動。在方塊575中,使用者組配該命令信箱以界定一DDR記憶體位址空間中的位置,以從一指定DDR記憶體輸入/輸出基本位址範圍(DDR_IO_BAR)開始複製非記憶體映射異動。
在決策方塊580中,該命令信箱判定是否檢測到有一項使用者組配異動。決策方塊580的〝否〞分支將行進至方塊585,其中將進行正常操作以處理該異動(例如異動並不受到複製),且方法501隨後結束。如果跟隨著決策方塊580的〝是〞分支而到達方塊590,該命令信箱將把該異動複製到一DDR記憶體控制器中,其具有一經改變的目的地位址欄位。在方塊595中,該DDR記憶體控制器把與該異動相關聯的資料寫入到DRAM記憶體中,而同時該匯流排上的原始異動維持為不變。方法501隨後結束。方法500與方法501可連續地重複進行,以監看並檢測一系統中的多個使用者指定異動。顯而易見地,在所有實施例中,並不需要方法500與方法501中標示出的每個方塊,且亦可使用不同於上述該等標示方塊之順序的其他順序。
第6圖以圖解表述圖展示出根據本發明一實施例之一種呈電腦系統之例示形式的機器600,其中可以執行一組指令,該等指令用以使該機器執行本文所述之該等方法中的任何一或多個。在替代實施例中,該機器可連接(例如網路連結)至一區域網路(LAN)、一企業內部網路、一企業外部網路、或網際網路中的其他機器。該機器以一客戶機-伺服器網路環境中之伺服器或一客戶機的身分來運作,或以一點對點(或分散式)網路環境中之一個別機器的身分來運作。該機器可為一個人電腦(PC)、一平板式PC、一機上盒(STB)、一個人數位助理(PDA)、一蜂巢式電話、一網路設備、一伺服器、一網路路由器、交換器或橋接器、運算系統、或能夠執行一組指令(依序地或以其他方式)的任何機器,該等指令指定了該機器所要進行的動作。再者,儘管僅展示出一個單一機器,〝機器〞一語應包括機器(例如電腦)的任何集合,其個別地或集體地執行一組(或多組)指令,以執行本文所述之該等方法中的任何一或多個。
例示性電腦系統600包括處理器602、主要記憶體604(例如唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等,靜態記憶體,例如快閃記憶體、靜態隨機存取記憶體(SRAM)等),以及輔助記憶體618(例如一資料儲存裝置),其經由匯流排630彼此通訊。主要記憶體604包括已儲存異動表述624與選擇準則623,其結合處理邏輯組件626與處理器602操作以執行本文所述的該等方法。
處理器602代表一或多個一般用途處理裝置,例如微處理器、中央處理單元等等。更確切來說,處理器602可為例如複雜指令集電腦(CISC)微處理器、精簡指令集電腦運算(RISC)微處理器、特長指令字集(VLIW)微處理器、實行其他指令組的處理器、或實行指令組之組合的處理器。處理器602亦可為一或多個特殊用途處理裝置,例如一特定應用積體電路(ASIC),一可現場規劃閘陣列(FPGA)、一數位信號處理器(DSP)、網路處理器或類似裝置。處理器602受組配成可執行處理邏輯組件626,以供執行本文所述的該等操作與步驟。
電腦系統600可另包括網路介面卡608。電腦系統600亦可包括使用者介面610(例如一視訊顯示器單元、一液晶顯示器(LCD)、或一陰極射線管顯示器(CRT))、字母數字輸入裝置612(例如一鍵盤)、游標控制裝置614(例如一滑鼠)、以及信號產生裝置616(例如一揚聲器)。電腦系統600可另包括周邊裝置636(例如無線或有線通訊裝置、記憶體裝置、儲存裝置、音訊處理裝置、視訊處理裝置等),以及命令信箱周邊裝置634。
輔助記憶體618可包括機器可讀儲存媒體(或更確切地包括一電腦可讀儲存媒體)631,其上儲存有一或多組指令(例如軟體622),該等指令體現著本文所述之該等方法或功能中的任何一或多個。在由電腦系統600執行的過程中,軟體622亦可完全地或至少部分地駐存在主要記憶體604中及/或處理裝置602中,該主要記憶體604與處理裝置602亦構成機器可讀儲存媒體。軟體622可經由網路介面裝置608而透過網路620受到發送或接收。
儘管在一例示實施例中係把機器可讀儲存媒體631展示為一個單一媒體,〝機器可讀儲存媒體〞一語應可包括儲存該一或多組指令的一個單一媒體或多個媒體(例如一集中式或一分散式資料庫,及/或相關聯快取記憶體與伺服器)。〝機器可讀儲存媒體〞亦應該可以包括能夠儲存或編碼一組指令以供由該機器執行並且使該機器能執行本文所述之該等方法中之任何一或多個的任何媒體。〝機器可讀儲存媒體〞一語應可因此包括但不限於:固態記憶體、以及光學與磁性媒體。
應該要了解的是,上述的發明說明意圖為展示性的,且不具有限制性。在閱讀且瞭解上面的發明說明之後,熟於此技者將可思及許多其他實施例。因此,應參照以下的申請專利範圍以及該等申請專利範圍之等效內容的完整範圍來判定本發明的範圍。
100、200、300...架構
105~115...異動
120、121、430、435、636...周邊裝置
125...儲存裝置
130...記憶體位置
140、401...命令信箱
145...指定記憶體裝置
150、415、630...匯流排
155...資料路徑
211...複製異動
215、240...異動/命令類型
216...經修改異動命令
217...已儲存原始異動命令
220、245...異動資料/酬載
225...原始目的地位址
226...目的地位址
230...異動命令
255...已儲存原始位址
260、445...信號分析器
265、455...信號產生器
270、470...邏輯單元
275、623...選擇準則
298...儲存控制器
299...記憶體控制器
311、316、405、624...已儲存異動表述
400...系統
410...使用者準則
420...指定儲存裝置
425...指定記憶體裝置
450...資料儲存體
460‧‧‧異動複製器
465‧‧‧異動選擇單元
490、602‧‧‧處理器
495‧‧‧記憶體
600‧‧‧電腦系統
604‧‧‧主要記憶體
608‧‧‧網路介面卡
610‧‧‧使用者介面
612‧‧‧字母數字輸入裝置
614‧‧‧游標控制裝置
616‧‧‧信號產生裝置
618‧‧‧輔助記憶體
620‧‧‧網路
622‧‧‧軟體
626‧‧‧處理邏輯組件
631‧‧‧機器可讀儲存媒體
634‧‧‧命令信箱周邊裝置
500、501‧‧‧方法
505~595‧‧‧步驟
第1圖展示出一種例示架構,其中可操作本發明的多個實施例;
第2圖展示出一種替代架構,其中可操作本發明的多個實施例;
第3圖展示出當中可操作本發明多個實施例之一種架構的替代視圖;
第4圖以圖解表述圖展示出一種命令信箱與一種系統,在該系統中可操作該命令信箱的一實施例;
第5A圖以流程圖展示出根據本發明一實施例之一種用以針對一項異動在一匯流排上監看一資料路徑的方法;
第5B圖以替代流程圖展示出根據本發明一實施例之一種用以針對一項異動在一匯流排上監看一資料路徑的方法;以及
第6圖以圖解表述圖展示出根據本發明一實施例之一種呈電腦系統之例示形式的機器。
100...架構
105~115...異動
120~121...周邊裝置
125...儲存裝置
130...記憶體位置
140...命令信箱
145...指定記憶體裝置
150...匯流排
155...資料路徑

Claims (23)

  1. 一種方法,其包含下列步驟:針對獨特地定址到與一匯流排可通訊地介接的多個裝置中之一裝置的異動,監看該等多個裝置之間的一資料路徑,其中該等異動中之一或多者係要被複製並儲存作為一原始異動的一表述;根據使用者輸入或經儲存之使用者偏好而選出該等異動中之何者要被複製並儲存;其中,針對經選擇的各個異動,該方法進一步包含:從該原始異動產生一複製異動;允許該原始異動能行進至該等多個裝置中由該原始異動獨特地定址的一裝置;把該複製異動的一目的地位址修改為與該匯流排可通訊地介接的一指定記憶體裝置;以及在該資料路徑上發佈該複製異動,其中該複製異動基於經修改之該目的地位址而行進至該指定記憶體裝置以被儲存。
  2. 如申請專利範圍第1項之方法,其中該等多個裝置中由該原始異動獨特地定址的該一裝置包含該異動的一目標裝置,且其中該原始異動的該目標裝置對應於該原始異動的一原始目的地位址。
  3. 如申請專利範圍第2項之方法,其另包含下列步驟:在由該原始目的地位址指定的該目標裝置上處理該原始異動;以及 如該經修改目的地位址所指定地,在該指定記憶體裝置上處理該複製異動,其中該指定記憶體位址係根據一使用者輸入或一已儲存使用者偏好。
  4. 如申請專利範圍第2項之方法,其中在該指定記憶體裝置上處理該複製異動的步驟包含在該指定記憶體裝置上儲存該原始異動的一表述。
  5. 如申請專利範圍第4項之方法,其另包含下列步驟:把該原始異動的該原始目的地位址儲存在該複製異動中;並且其中在該指定記憶體裝置上儲存該原始異動之該表述的步驟包含一起儲存該原始目的地位址以及該原始異動的該表述。
  6. 如申請專利範圍第4項之方法,其中在該指定記憶體裝置上儲存該原始異動之該表述的步驟包含下列步驟:在該指定記憶體裝置上儲存該原始異動的該原始目的地位址;在該指定記憶體裝置上儲存與該原始異動相關聯的一起源位址,其中該起源位址對應於與該匯流排可通訊地介接之啟始該原始異動的該等多個裝置中之一;在該指定記憶體裝置上儲存對應於該原始異動的一異動類型;以及在該指定記憶體裝置上儲存異動資料,其中該異動資料對應於該原始異動的酬載資料。
  7. 如申請專利範圍第4項之方法,其中係把根據該匯流排 所用之一匯流排架構而可從該匯流排摘取出的所有資訊儲存在該等複製異動中,其中可從該匯流排摘取出的該資訊包括異動命令、標籤、ID、訊務分類、虛擬通道、中斷向量資訊、以及識別出一異動之一起源器之資訊中的至少一或多個。
  8. 如申請專利範圍第2項之方法,其中該經產生複製異動的一或多個欄位係選自於可用來根據一使用者輸入或一已儲存使用者偏好複製到該複製異動中的多個欄位。
  9. 如申請專利範圍第2項之方法,其中針對該等異動監看該資料路徑的步驟包含針對在該資料路徑上往來移動之多個異動中的該原始異動監看該資料路徑。
  10. 如申請專利範圍第9項之方法,其中針對在該資料路徑上往來移動之該等多個異動中的該等異動監看該資料路徑的步驟包含下列步驟:根據一指定異動類型,從在該資料路徑上往來移動之該等多個異動中選出該原始異動,其中該指定異動類型係選自於一輸入/輸出(IO)讀取/寫入請求、一組態讀取/寫入請求、一異動確認訊息、一中斷請求、或該匯流排所用之一匯流排架構所界定的另一種異動類型。
  11. 如申請專利範圍第9項之方法,其中針對在該資料路徑上往來移動之該等多個異動中之該等異動監看該資料路徑的步驟包含下列步驟:根據該原始目的地位址、對應於啟始該原始異動之一裝置的一起源位址、或該原始目的地位址與該起源位址的 一組合,從在該資料路徑上往來移動之該等多個異動中選出該原始異動。
  12. 如申請專利範圍第9項之方法,其中針對在該資料路徑上往來移動之該等多個異動中之該等異動監看該資料路徑的步驟包含下列步驟:根據屬於一原始目的地位址範圍內的該原始目的地位址、屬於一起源位址範圍內之一起源裝置的一起源位址、或各屬於一指定位址範圍內之該原始目的地位址與該起源位址的一組合,從在該資料路徑上往來移動之該等多個異動中選出該原始異動。
  13. 如申請專利範圍第9項之方法,其中針對在該資料路徑上往來移動之該等多個異動中之該等異動監看該資料路徑的步驟,包含根據一使用者輸入或一已儲存使用者偏好,選擇並處理在該資料路徑上往來移動之該等多個異動中的全部異動。
  14. 如申請專利範圍第9項之方法,其中針對在該資料路徑上往來移動之該等多個異動中之該等異動監看該資料路徑的步驟,包含根據一使用者輸入或一已儲存使用者偏好,選擇並處理在該資料路徑上往來移動之該等多個異動中的數個異動,其中該等數個異動係與多個不同的起源裝置相關聯,其中該等數個異動包含多個不同的異動類型,且其中該等數個異動攜載著多個不同的異動資料酬載。
  15. 如申請專利範圍第1項之方法,其中: 針對該等異動監看介於與該匯流排可通訊地介接之該等多個裝置之間之該資料路徑的步驟,包含經由與該匯流排可通訊地介接的一信號分析器,監看在該資料路徑上往來移動的信號;其中產生該複製異動並且修改該複製異動之該目的地位址的步驟,包含經由與該匯流排可通訊地介接的一信號產生器,產生該複製異動並且修改該複製異動的該目的地位址。
  16. 如申請專利範圍第1項之方法,其中與該匯流排可通訊地介接的一信箱周邊裝置針對該等異動監看該資料路徑,該信箱周邊裝置包含用以解密通過該匯流排之該資料路徑的一信號分析器、用以根據儲存在該信箱周邊裝置內的選擇準則從該等多個異動中選出該原始異動的一邏輯單元、以及用以複製選定之該異動並且把該複製異動引入到該資料路徑中的一信號產生器。
  17. 一種系統,其包含:用以儲存指令的一記憶體;用以執行儲存在該記憶體中之指令的一處理器;一匯流排,用以在與該匯流排可通訊地介接之多個周邊裝置之間於該系統中傳輸異動;與該匯流排可通訊地介接的一信箱周邊裝置,該信箱周邊裝置用以針對獨特地定址到該信箱周邊裝置以外之多個裝置中之一裝置的異動,監看介於該等多個裝置之間的一資料路徑,其中該等異動中之一或多者將被複製並 儲存作為一原始異動的一表述;該信箱周邊裝置用以根據使用者輸入或經儲存之使用者偏好而選出該等異動中之何者要被複製並儲存;其中,針對經選擇的各個異動:該信箱周邊裝置用以從該原始異動產生一複製異動;該信箱周邊裝置用以把該複製異動的一目的地位址改變為與該匯流排可通訊地介接的一指定儲存裝置;以及該信箱周邊裝置用以把該複製異動插入到該資料路徑中,以根據經修改目的地位址使該複製異動朝著該指定儲存裝置行進。
  18. 如申請專利範圍第17項之系統,其中該信箱周邊裝置用以從該原始異動產生該複製異動的動作,包含該信箱周邊裝置允許該原始異動能無中斷地行進至該等多個裝置中由該原始異動獨特地定址的一裝置。
  19. 如申請專利範圍第17項之系統,其中該信箱周邊裝置包含:一信號分析器,其中該信號分析器用以針對該等異動監看介於該等多個裝置之間的該資料路徑;一邏輯單元,其中該邏輯單元用以把該複製異動的該目的地位址改變為該指定儲存裝置;以及一信號產生器,其中該信號產生器用以把該複製異動插入到該資料路徑中,以使該複製異動朝著該指定儲存裝 置行進,其中該複製異動包含該經改變目的地位址,且係根據經改變之該目的地位址經由該匯流排朝著該指定儲存裝置行進。
  20. 一種儲存有指令於其中的非暫態電腦可讀儲存媒體,該等指令受一處理器執行時會使一機器執行包含下列的操作:針對獨特地定址到與一匯流排可通訊地介接的多個裝置中之一裝置的異動,監看介於該等多個裝置之間的一資料路徑,其中該等異動中之一或多者係要被複製並儲存作為一原始異動的一表述;根據使用者輸入或經儲存之使用者偏好而選出該等異動中之何者要被複製並儲存;其中,針對經選擇的各個異動,該方法進一步包含:從該原始異動產生一複製異動;允許該原始異動能行進至該等多個裝置中由該原始異動獨特地定址的一裝置;把該複製異動的一目的地位址修改為與該匯流排可通訊地介接的一指定記憶體裝置;以及在該資料路徑上發佈該複製異動,其中該複製異動根據經修改之該目的地位址行進至該指定記憶體裝置以被儲存。
  21. 如申請專利範圍第20項之非暫態電腦可讀儲存媒體,其中該方法另包含下列步驟:在該等多個裝置中由該原始異動獨特地定址的該一裝置 上處理該原始異動;以及在由該經修改目的地位址指定的該指定儲存位置上處理該複製異動,其中處理該複製異動的步驟包含在該指定儲存位置上儲存該原始異動的一表述。
  22. 一種命令信箱,其包含:與一系統之一匯流排介接的一介面,其中該命令信箱用以針對獨特地定址到除了該命令信箱以外之與該系統連接的多個裝置中之一裝置的異動,經由該匯流排監看介於該等多個裝置之間的一資料路徑;一信號分析器,其用以監看與該命令信箱可通訊地介接之該匯流排的該資料路徑;一異動選擇單元,其用以響應於正受該信號分析器監看之異動,而從該資料路徑選出該異動以供複製,其中該異動選擇單元用以根據使用者輸入或經儲存之使用者偏好而選出用於複製之該異動;其中,針對由該異動選擇單元所選擇的各個異動:一異動複製器係用以從選定之該異動產生一複製異動;一邏輯單元係用以把該複製異動的一目的地位址改變為一指定儲存裝置;以及一信號產生器係用以經由與該命令信箱可通訊地介接之該匯流排在該系統的該資料路徑上發佈該複製異動,經發佈之該複製異動將被儲存於該指定儲存裝置。
  23. 如申請專利範圍第22項之命令信箱,其中該異動選擇單元根據一使用者指定準則選出該異動 以供複製;其中該異動複製器複製該原始異動,而不使該匯流排上的該原始異動中斷;以及其中該信號產生器在該資料路徑上發佈該複製異動的動作,包含根據該複製異動的經改變之該目的地位址,經由該匯流排使該複製異動朝著該指定儲存裝置行進。
TW099136478A 2009-12-16 2010-10-26 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術 TWI494753B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/639,868 US8661166B2 (en) 2009-12-16 2009-12-16 DFX software debug feature for IO and other non-memory typed transactions

Publications (2)

Publication Number Publication Date
TW201129903A TW201129903A (en) 2011-09-01
TWI494753B true TWI494753B (zh) 2015-08-01

Family

ID=44144150

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099136478A TWI494753B (zh) 2009-12-16 2010-10-26 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術

Country Status (4)

Country Link
US (1) US8661166B2 (zh)
BR (1) BRPI1005608B1 (zh)
DE (1) DE102010049523A1 (zh)
TW (1) TWI494753B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176839B2 (en) * 2011-05-20 2015-11-03 Whizchip Design Technologies Pvt. Ltd. Bus transaction monitoring and debugging system using FPGA
US10133653B2 (en) * 2012-02-23 2018-11-20 Cadence Design Systems, Inc. Recording and playback of trace and video log data for programs
US9342641B1 (en) 2014-04-30 2016-05-17 Keysight Technologies, Inc. Configuration of logic analyzer using graphical user interface

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1218566A (zh) * 1996-03-13 1999-06-02 钻石多媒体系统公司 支持要求驱动的多重并行数字数据流传输的方法和装置
US20030120802A1 (en) * 2001-12-04 2003-06-26 Michinari Kohno Data communication system, data transmission apparatus, data reception apparatus, data communication method, and computer program
US20070055803A1 (en) * 2005-09-02 2007-03-08 Fuchs Kenneth C Method and apparatus for enforcing independence of processors on a single IC
US20090249090A1 (en) * 2008-03-28 2009-10-01 Schmitz Michael J Method and apparatus for dynamic power management control using parallel bus management protocols

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793993A (en) * 1995-01-26 1998-08-11 General Magic, Inc. Method for transmitting bus commands and data over two wires of a serial bus
US6247101B1 (en) * 1998-07-01 2001-06-12 Lsi Logic Corporation Tagged access synchronous bus architecture
JP2005284557A (ja) * 2004-03-29 2005-10-13 Fujitsu Ltd 内部メモリをモニタ可能なマイクロコンピュータ
US20070209247A1 (en) * 2006-01-17 2007-09-13 Raisner David H Souvenir display device
US7533201B2 (en) 2006-12-26 2009-05-12 Intel Corporation Queue management mechanism in network processor wherein packets stored at memory device corresponds to addresses stored in plurity of queues within queue management
US7710989B2 (en) 2007-03-06 2010-05-04 Intel Corporation Scalable and configurable queue management for network packet traffic quality of service
US8198716B2 (en) 2007-03-26 2012-06-12 Intel Corporation Die backside wire bond technology for single or stacked die package
US8110930B2 (en) 2007-06-19 2012-02-07 Intel Corporation Die backside metallization and surface activated bonding for stacked die packages
US20080315388A1 (en) 2007-06-22 2008-12-25 Shanggar Periaman Vertical controlled side chip connection for 3d processor package
US7743181B2 (en) 2007-07-09 2010-06-22 Intel Corporation Quality of service (QoS) processing of data packets
US8044497B2 (en) 2007-09-10 2011-10-25 Intel Corporation Stacked die package

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1218566A (zh) * 1996-03-13 1999-06-02 钻石多媒体系统公司 支持要求驱动的多重并行数字数据流传输的方法和装置
US20030120802A1 (en) * 2001-12-04 2003-06-26 Michinari Kohno Data communication system, data transmission apparatus, data reception apparatus, data communication method, and computer program
US20070055803A1 (en) * 2005-09-02 2007-03-08 Fuchs Kenneth C Method and apparatus for enforcing independence of processors on a single IC
US20090249090A1 (en) * 2008-03-28 2009-10-01 Schmitz Michael J Method and apparatus for dynamic power management control using parallel bus management protocols

Also Published As

Publication number Publication date
TW201129903A (en) 2011-09-01
BRPI1005608B1 (pt) 2020-09-15
BRPI1005608A2 (pt) 2012-02-28
US8661166B2 (en) 2014-02-25
US20110145443A1 (en) 2011-06-16
DE102010049523A1 (de) 2011-06-22

Similar Documents

Publication Publication Date Title
US10671468B2 (en) Enhanced dump data collection from hardware fail modes
US9479395B2 (en) Model framework to facilitate robust programming of distributed workflows
Carena et al. The ALICE data acquisition system
US20150234730A1 (en) Systems and methods for performing software debugging
Beschastnikh et al. Visualizing distributed system executions
US9632919B2 (en) Request change tracker
TWI689813B (zh) 用於電子系統中多重介面除錯之嵌入式通用串列匯流排除錯
US20160004629A1 (en) User workflow replication for execution error analysis
US9740595B2 (en) Method and apparatus for producing a benchmark application for performance testing
US9870301B2 (en) High-speed debug port using standard platform connectivity
US20050034026A1 (en) Data processing system trace bus
TWI566090B (zh) Debugging firmware / software to produce tracking systems and methods, recording media and computer program products
US10013335B2 (en) Data flow analysis in processor trace logs using compiler-type information method and apparatus
EP4120207A1 (en) Methods, systems, articles of manufacture and apparatus to label text on images
CN103890733A (zh) 用于将错误注入存储器的方法和装置
US20170124191A1 (en) Techniques for visualizing storage cluster system configurations and api therefore
TWI494753B (zh) 用於輸入/輸出及其他非記憶體類型化異動之dfx軟體除錯特徵技術
US20160291847A1 (en) Method and Apparatus for Providing Application Context Tag Communication Framework
US10324822B1 (en) Data analytics in a software development cycle
US7684970B2 (en) Graphical user interface for use during processor simulation
TW202223653A (zh) 決定故障日誌記錄之結構的裝置、系統及方法
US10452464B1 (en) Automatic human configuration error detection for reoccurring events
CN101853089A (zh) 一种医学检查报告辅助输入方法
US20150278418A1 (en) Logic analyzer circuit for programmable logic device
IL193912A (en) Apparatus, method and computer program product for generating trace data

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees