TW201510727A - 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置 - Google Patents

用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置 Download PDF

Info

Publication number
TW201510727A
TW201510727A TW103121746A TW103121746A TW201510727A TW 201510727 A TW201510727 A TW 201510727A TW 103121746 A TW103121746 A TW 103121746A TW 103121746 A TW103121746 A TW 103121746A TW 201510727 A TW201510727 A TW 201510727A
Authority
TW
Taiwan
Prior art keywords
trigger
time slot
value
hardware core
count value
Prior art date
Application number
TW103121746A
Other languages
English (en)
Inventor
Ryan Shirlen
Victor Wong
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201510727A publication Critical patent/TW201510727A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/22Arrangements affording multiple use of the transmission path using time-division multiplexing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

諸實施例包括用於減少引腳交叉觸發以增強除錯體驗的裝置、系統和方法。時分封包化(TDP)技術可被用來促成在串聯連接的、形成TDP通訊環的積體電路(IC)之間傳達觸發。TDP通訊環上的IC可以各自包括用於在觸發信號與硬體核指令之間進行解讀的交叉觸發互連結構。跨TDP通訊環上的IC的串列TDP通訊允許以每個IC上的每個交叉觸發互連結構可如同其是跨TDP通訊環上所有IC的單個交叉觸發互連結構的一部分那樣起作用的方式來連接這些IC。個體IC可非同步作業,並且觸發時鐘可以與其他觸發資料一起傳遞以在每個IC上一致地實現除錯技術。

Description

用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置 【相關申請案】
本專利申請案主張於2013年7月24日提出申請的題為「Method and Apparatus for Multi-chip Reduced Pin Cross Triggering To Enhance Debug Experience(用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置)」的美國臨時專利申請案第61/857,881號的優先權權益,其全部內容經由援引納入於此以用於所有目的。
本案涉及用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置。
片上系統(SoC)和積體電路(IC)設計日益複雜,並且越來越多的處理器被整合到SoC/IC中以執行日益變化和複雜的功能性。另外,多個SoC/IC被共同連結在一起以用於高級應用。在執行某些任務時可涉及多個處理器/SoC/IC, 並且每個處理器/SoC/IC可以依賴於一或多個其他處理器/SoC/IC來完成這些任務。
為了經由避免鎖住和系統故障來確保處理器/SoC/IC的連續且平滑的執行,這些元件要在可供使用和銷售之前進行徹底的除錯。除錯邏輯通常被設計成促成單個SoC上的單一處理器或多處理器除錯功能。諸如單個處理器核的執行的暫停和恢復、多個處理器核的同步暫停和恢復、處理器追蹤啟用和停用、追蹤捕捉啟用之類的功能均是SoC內除錯功能的示例。應當注意,在當前複雜的SoC上,除錯功能遠遠延伸到處理器除錯之外。諸如分散式效能監視、硬體(非處理器)追蹤功能、驅動器級追蹤單元(諸如ARM的系統追蹤巨集單元)、決定性的話務注入(匯流排、狀態機、周邊介面)之類的其他功能是SoC內除錯功能的其他(非處理器)示例。
目前,交叉觸發硬體被用於提供從一個SoC除錯功能至另一SoC除錯功能的低等待時間訊號傳遞。交叉觸發塊(諸如ARM的交叉觸發介面(CTI))被除錯代理(軟體代理或外部除錯器)預先配置成將一組給定的觸發源連線至一組給定的觸發目的地。諸如一旦偵測到嚴重的系統事件(例如,看門狗期滿)就停止循環緩衝器中的追蹤採集、分散式效能監視器的啟用、多個處理器的同步暫停之類的功能均可以經由一或多個SoC交叉觸發塊(例如,ARM CTI)的預先配置來促成。為了促成兩個或更多個SoC(例如,常駐在不同SoC上的兩個處理器的同步處理器恢復)之間的交叉觸發,目前的 技術是經由每個SoC上的共用或專用引腳來連線離散數目的交叉觸發線。當需要併發地執行多個交叉觸發用例時,SoC之間的引腳的數目變得極度昂貴,所以需要另一種技術。
各個態樣的方法和裝置提供了用於傳達觸發值以供在除錯複數個互連硬體核中使用的電路和方法,包括:由第一互連硬體核發起具有序列開始簽名和數個時槽的時分封包化(TDP)信號,其中每個時槽包括配置成指示該時槽為閒置還是包含觸發值的計數值;由第一互連硬體核向第二互連硬體核發送該TDP信號;由第一互連硬體核接收由第三互連硬體核發送的TDP信號;由第一互連硬體核基於每個時槽的第一計數值來決定該時槽是否包含第一觸發值;對於包含第一觸發值的每個時槽,向第一互連硬體核的交叉觸發互連結構傳遞第一觸發值並且修改該時槽的第一計數值;重傳包括序列開始簽名和該數個時槽的TDP信號,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含第一觸發值時包括該第一觸發值,當第一互連硬體核具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括從交叉觸發互連結構獲得的第二觸發值連同指示該時槽包含第二觸發值的第二計數值,以及當第一互連硬體核不具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括具有指示該時槽為閒置的第二計數值的空時槽。
一態樣方法可以進一步包括由第一互連硬體核向第 二互連硬體核發送第一時鐘信號,以及由第一互連硬體核接收來自第三互連硬體核的第二時鐘信號。在一個態樣,所接收到的第二時鐘信號是第一時鐘信號,而在另一態樣,所接收到的第二時鐘信號不同於第一時鐘信號。一態樣方法可進一步包括由第一互連硬體核的交叉觸發互連結構將第一觸發功能與第一觸發值相關聯,以及由第一互連硬體核根據第一時鐘信號來實現第一觸發功能。
一態樣方法可進一步包括由第一互連硬體核的交叉觸發互連結構將第二觸發值與第二觸發功能相關聯,以及由第一互連硬體核將第二觸發值和第二計數值寫入該時槽。一態樣方法可進一步包括將第一和第二計數值設置成比該複數個互連硬體核少1,其中第一計數值被配置成表示尚要讀取第一觸發值的互連硬體核的數目,第二計數值被配置成表示尚要讀取第二觸發值的互連硬體核的數目,並且第一和第二計數值被配置成當第一和第二計數值等於0時指示該時槽是閒置的,並且其中修改第一計數值進一步包括遞減第一計數值。在一態樣方法中,該複數個互連硬體核可被配置成以環形配置連接,以使得每個互連硬體核被配置成連接至兩個其他的互連硬體核,其中第一互連硬體核被配置成向第二互連硬體核進行傳送並且從第三互連硬體核進行接收,第二互連硬體核被配置成向第三互連硬體核進行傳送並且從第一互連硬體核進行接收,並且第三互連硬體核被配置成向第一互連硬體核進行傳送並且從第二互連硬體核進行接收。在一態樣方法中,該複數個互連硬體核被配置成經由非同步的時鐘週期 來操作。
一態樣包括第一積體電路,其包括複數個觸發源和觸發槽、配置成互連該複數個觸發源和觸發槽的交叉觸發互連結構、耦合至交叉觸發互連結構和資料輸出引腳並且配置成連接至第二積體電路的時分封包化發射器(TDPTx)電路、以及耦合至交叉觸發互連結構和資料登錄引腳並且配置成連接至第三積體電路的時分封包化接收器(TDPRx)電路,其中該TDPRx電路被配置成執行包括以下動作的操作:從第三積體電路接收時分封包化(TDP)信號,該TDP信號具有序列開始簽名和數個時槽,其中每個時槽包括配置成指示該時槽為閒置還是包含觸發值的計數值;基於TDP信號之每一者時槽的第一計數值來決定該時槽是否包含第一觸發值;及將包含第一觸發值的每個時槽中的第一觸發值傳遞給交叉觸發互連結構並且修改該時槽的第一計數值,其中TDPTx電路被配置成執行包括以下動作的操作:向第二積體電路重傳包括序列開始簽名和該數個時槽的TDP信號,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含第一觸發值時包括該第一觸發值,當第一積體電路具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括從交叉觸發互連結構獲得的第二觸發值連同指示該時槽包含第二觸發值的第二計數值,以及當第一積體電路不具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括具有指示該時槽為閒置的第二計數值的空時槽。
一態樣包括其上儲存有處理器可執行軟體指令的非瞬態處理器可讀取媒體,該指令被配置成由互連硬體核執行以執行包括以下動作的操作:由第一互連硬體核發起具有序列開始簽名和數個時槽的時分封包化(TDP)信號,其中每個時槽包括配置成指示該時槽為閒置還是包含觸發值的計數值;由第一互連硬體核向第二互連硬體核發送該TDP信號;由第一互連硬體核接收由第三互連硬體核發送的TDP信號;由第一互連硬體核基於每個時槽的第一計數值來決定該時槽是否包含第一觸發值;對於包含第一觸發值的每個時槽,向第一互連硬體核的交叉觸發互連結構傳遞第一觸發值並且修改該時槽的第一計數值;重傳包括序列開始簽名和該數個時槽的TDP信號,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含第一觸發值時包括該第一觸發值,當第一互連硬體核具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括從交叉觸發互連結構獲得的第二觸發值連同指示該時槽包含第二觸發值的第二計數值,以及當第一互連硬體核不具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括具有指示該時槽為閒置的第二計數值的空時槽。
一態樣包括供在除錯複數個互連硬體核中使用的電路,包括:用於在第一互連硬體核內發起具有序列開始簽名和數個時槽的時分封包化(TDP)信號的裝置,其中每個時槽包括配置成指示該時槽為閒置亦是包含觸發值的計數值,用於向第二互連硬體核發送TDP信號的裝置,用於接收由第三互 連硬體核發送的TDP信號的裝置,用於基於每個時槽的第一計數值來決定該時槽是否包含第一觸發值的裝置,對於包含第一觸發值的每個時槽用於向第一互連硬體核的交叉觸發互連結構傳遞第一觸發值的裝置以及用於修改該時槽的第一計數值的裝置,用於重傳包括序列開始簽名和該數個時槽的TDP信號的裝置,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含第一觸發值時包括該第一觸發值,當第一互連硬體核具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括從交叉觸發互連結構獲得的第二觸發值連同指示該時槽包含第二觸發值的第二計數值,以及當第一互連硬體核不具有要傳送的第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時包括具有指示該時槽為閒置的第二計數值的空時槽。
100‧‧‧IC系統
102a‧‧‧IC
102b‧‧‧IC
102c‧‧‧IC
102n‧‧‧IC
104‧‧‧通訊介面
106‧‧‧實體管道
108a1‧‧‧中央處理單元(CPU)
108a2‧‧‧中央處理單元(CPU)
108a3‧‧‧中央處理單元(CPU)
108b1‧‧‧中央處理單元(CPU)
108b2‧‧‧中央處理單元(CPU)
108b3‧‧‧中央處理單元(CPU)
108c1‧‧‧中央處理單元(CPU)
108c2‧‧‧中央處理單元(CPU)
108c3‧‧‧中央處理單元(CPU)
110a‧‧‧交叉觸發互連結構
110b‧‧‧交叉觸發互連結構
110c‧‧‧交叉觸發互連結構
112a‧‧‧TDP接收器(TDPRx)
112b‧‧‧TDP接收器(TDPRx)
112c‧‧‧TDP接收器(TDPRx)
114a‧‧‧TDP發射器(TDPTx)
114b‧‧‧TDP發射器(TDPTx)
114c‧‧‧TDP發射器(TDPTx)
116a‧‧‧資料線
116b‧‧‧資料線
116c‧‧‧資料線
118a‧‧‧時鐘線
118b‧‧‧時鐘線
118c‧‧‧時鐘線
120a‧‧‧緩衝器
120b‧‧‧緩衝器
120c‧‧‧緩衝器
122a‧‧‧第一資料登錄引腳
122b‧‧‧第二資料登錄引腳
122c‧‧‧第三資料登錄引腳
124a‧‧‧第一資料輸出引腳
124b‧‧‧第二資料輸出引腳
124c‧‧‧第三資料輸出引腳
126a‧‧‧第一時鐘輸入引腳
126b‧‧‧第二時鐘輸入引腳
126c‧‧‧第三時鐘輸入引腳
128a‧‧‧第一時鐘輸出引腳
128b‧‧‧第二時鐘輸出引腳
128c‧‧‧第三時鐘輸出引腳
300‧‧‧TDP資料結構
302‧‧‧序列開始碼
304‧‧‧時槽
306‧‧‧時槽開始碼
308‧‧‧時槽控制碼
310‧‧‧計數值或遞減器值
312‧‧‧觸發碼
400‧‧‧時分封包化通訊環
402‧‧‧方塊
404‧‧‧方塊
406‧‧‧方塊
408‧‧‧方塊
410‧‧‧方塊
412‧‧‧方塊
414‧‧‧方塊
416‧‧‧方塊
418‧‧‧方塊
420‧‧‧方塊
422‧‧‧方塊
500‧‧‧方法
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
510‧‧‧方塊
512‧‧‧方塊
514‧‧‧方塊
516‧‧‧方塊
518‧‧‧方塊
520‧‧‧方塊
522‧‧‧方塊
524‧‧‧方塊
526‧‧‧方塊
600‧‧‧方法
602‧‧‧方塊
604‧‧‧方塊
606‧‧‧方塊
608‧‧‧方塊
610‧‧‧方塊
612‧‧‧方塊
614‧‧‧方塊
616‧‧‧方塊
618‧‧‧方塊
700‧‧‧時分封包化通訊環(TDPRx/Tx)
702‧‧‧資料登錄引腳或埠
704‧‧‧資料輸出引腳或埠
706‧‧‧Rx邏輯模組
708‧‧‧Tx邏輯晶片或模組
710‧‧‧緩衝器
712‧‧‧功率控制介面
714‧‧‧主功率軌(Cx)功率控制晶片或模組
716‧‧‧時鐘
718‧‧‧多工器
720‧‧‧設置/清除暫存器邏輯晶片或模組
722‧‧‧流水線級
724‧‧‧引腳或埠
726‧‧‧引腳或埠
728‧‧‧Q匯流排晶片或模組
730‧‧‧儲存
732‧‧‧一或多個位準移位器
納入於此且構成本說明書一部分的附圖示說了本發明的示例性實施例,並與以上提供的概括描述和下面提供的詳細描述一起用來解釋本發明的特徵。
圖1是根據一實施例圖示具有通訊地串聯的複數個積體電路的系統的元件方塊圖。
圖2是根據一實施例圖示具有通訊地串聯的複數個積體電路的系統的元件方塊圖。
圖3是根據一實施例圖示通訊協定結構的示意圖。
圖4是圖示用於在時分封包化通訊環的各元件之間進行時分封包化通訊的實施例方法的程序流程圖。
圖5是圖示用於在時分封包化通訊環中讀取通訊的實施例方法的程序流程圖。
圖6是圖示用於在時分封包化通訊環中寫入通訊的實施例方法的程序流程圖。
圖7是根據一實施例供與時分封包化通訊環聯用的積體電路的通訊電路的示例性實現的組件圖示。
將參照附圖詳細描述各種實施例。在可能之處,相同元件符號將貫穿附圖用於代表相同或類似部分。對特定示例和實現所作的引用是用於說明性目的,而無意限定本發明或請求項的範疇。
措辭「示例性」在本文中用於表示「用作示例、實例或圖示」。本文中描述為「示例性」的任何實現不必然被解釋為優於或勝過其他實現。
術語「片上系統」(SoC)和「積體電路」(IC)在本文中可互換地使用以代表一組電子電路,通常但非排他地包括硬體核、記憶體和通訊介面。硬體核可包括各種不同類型的處理器,諸如通用處理器、中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、加速處理單元(APU)、輔助處理器、單核處理器、以及多核處理器。硬體核可進一步實施其他硬體和硬體組合,諸如現場可程式設計閘陣列(FPGA)、特殊應用積體電路(ASCI)、其他可程式設計邏輯裝置、個別閘邏輯、電晶體邏輯、效能監視硬體、看門狗硬體、以及時間參考。IC可被配置成使得IC的元 件常駐在單片半導體材料(諸如矽)上。此類配置亦可被稱為IC元件在單個晶片上。術語「連結的IC」指的是要作為整合系統來除錯的兩個或更多個互連IC。例如,經互連並且配置成作為互連硬體核的系統來操作的兩個或更多個硬體核可在本文中稱為「連結的IC」以便於描述。
各個態樣提供了以最小的複雜性和低成本來增加針對除錯連結的IC可解決的觸發、連結的晶片、用例、和軟體程式設計的數目的能力。各個態樣利用IC間通訊方法和電路來將在一個IC上產生的觸發、觸發值、標誌、狀態值等(本文中一般稱為「觸發」或「觸發值」)傳達給所有其他連結的IC。IC間通訊方法採用時分封包資料結構,其中串列資料封包中的時槽被用於向系統中的所有IC傳達觸發值,其中時槽可在觸發值繞通訊環中繼一次之後被重用。此IC間通訊方法被稱為時分封包化(TDP)。連結的IC包括用於支援TDP信號的產生、中繼和接收的電路,TDP信號在通訊時槽中將觸發從一個IC傳遞給下一IC直至每個觸發已被所有其他IC(亦即,除發起觸發通訊的IC之外的所有連結的IC)接收。在被除錯的一組連結的IC上實現各個態樣的結果可以是橫跨所有IC的有效交叉觸發互連結構(CTIS)(如同所有IC均在同一晶片上那樣)。
用於從一個IC向下一IC傳達觸發值作為在繞通訊環中繼的訊息封包內的特定的時槽中編碼的觸發值或標誌的態樣方法在本文中被稱為「TDP訊號傳遞」,並且連結IC的通訊環被稱為「TDP通訊環」。該術語是為了便於描述。納入訊息 封包的時分以中繼特定觸發值或標誌的態樣方法不應當與一般的分時多工通訊協定混淆,諸如在實現截然不同形式的基於時分的通訊的蜂巢式電話網路通訊協定(亦即,TDMA協定)中使用的分時多工通訊協定。
諸態樣實現TDP通訊環以在連結的IC之間傳達各種觸發,從而高效率地擴展可被定義的觸發、可被連結的IC、以及可出於除錯連結的IC的目的而被測試的併發用例的數目。諸態樣可提供以有限的引腳介面來執行全功能/大規模和可縮放的積體電路間交叉觸發的能力。諸態樣亦可以允許在多個連結的IC中停止和恢復硬體核(基於硬體事件/差錯或者使用者的幹預)而無需重新配置交叉觸發互連結構。當遇到或滿足某些條件時,停止和恢復追蹤捕捉亦是可能的。交叉觸發多個IC以控制統計量和概況剖析、連接外部邏輯分析儀以監視某些行為、以及向晶片發送觸發以導致觸發動作(例如,停止所有硬體核)亦可以是諸態樣的特徵。各個態樣的其他能力可包括在IC之間同步時間戳記;當追蹤部分程式流程時捕捉程式計數器(PC)或關鍵除錯資訊;及當滿足某個(些)條件時產生對特定硬體核的中斷(例如,當硬體核之一進入除錯模式時移除DRM資料)。連結的IC可非同步作業,並且觸發時鐘可以與每個TDP訊息中的其他觸發資料一起傳遞以在每個IC上一致地實現除錯技術。
圖1圖示了連接數個連結的IC的TDP通訊環的一態樣。該圖示出由任何數目的IC 102a-102n組成的IC系統100可如何經由串列TDP通訊環來串聯連接以將除錯觸發從一個IC 傳遞到下一IC。圖1圖示了經由串列TDP通訊環來串聯連接的三個或更多個IC 102a-102n(IC 1、IC 2、直到IC n)。每個IC 102可具有一或多個通訊介面104,該通訊介面104至少具有在串列TDP通訊環上接收或傳送信號的能力。在圖1中,標記為「輸入」的通訊介面對應於可從TDP通訊環接收信號的資料登錄引腳,而標記為「輸出」的通訊介面對應於可傳送信號的資料輸出引腳。在一些態樣,通訊介面104可被配置為可從具有多個連接元件(諸如引腳或其他觸點(未圖示))的單個通訊連接埠接收和傳送信號的一個裝置。此類態樣可以不需要「輸入」和「輸出」通訊介面104兩者,因為「輸入」和「輸出」能力可整合到一個「輸入/輸出」元件(未圖示)中。
每個IC 102a-102n可經由串列TDP通訊環連接至兩個其他IC,以使得一個IC(例如,102a)的「輸入」通訊介面104(或資料登錄引腳)可連接至下一IC(例如,102b)的「輸出」通訊介面104(或資料輸出引腳)。這些連接導致互連IC或互連硬體核的串列配置。例如,在圖1中,IC 1 102a的「輸出」通訊介面104(或資料輸出引腳)被示為連接至IC 2 102b的「輸入」通訊介面104(或資料登錄引腳)。類似地,IC 2 102b的「輸出」通訊介面104(或資料輸出引腳)被示為連接至下一IC n 102n的「輸入」通訊介面104(或資料登錄引腳)。在IC 2與IC n之間可以有任何數目的類似地連接的IC 102a-102n,以使得IC 2和IC n不是直接連接的。為了完成該串列通訊環,IC n 102n的「輸出」通訊介面104(或資料輸出 引腳)可以連接至IC 1 102a的「輸入」通訊介面104(或資料登錄引腳)。這種連接互連IC的方式形成了互連IC的環形配置。
通訊介面104可以由實體管道106連接,該實體管道106可以是導電連接(亦即,導線或跡線)或者光學管道(例如,光纖電纜或光學介面)。
在另一態樣,通訊介面104可以是無線通訊鏈路(未圖示),該無線通訊鏈路可以實現各種無線通訊協定(例如,近場通訊(NFC))。
圖2圖示了作為連接三個IC 102a-102c的TDP通訊環的IC系統100的一態樣。該圖示出具有三個IC 102a-102c(IC 1、IC 2和IC 3)的IC系統100的另一態樣,該IC系統是示例性的,但是如同圖1那樣可按類似的方式連結任何數目的IC。每個IC 102a-102c可以包括一或多個觸發源和觸發槽,諸如中央處理單元(CPU)108a1-108a3、108b1-108b3、108c1-108c3和交叉觸發互連結構110a-110c。IC 102a-102c亦可包括TDP接收器(TDPRx)112a-112c和TDP發射器114a-114c(TDPTx),它們以所圖示的方式用資料線116a-116c和時鐘線118a-118c連結至每個IC 102a-102c中的對應電路(亦即,發射器至接收器)。因此,在三IC配置中:第一IC 102a包括耦合至第一資料輸出引腳124a的第一TDPTx 114a和耦合至第一資料登錄引腳122a的第一TDPRx 112a;第二IC 102b包括耦合至第二資料輸出引腳124b的第二TDPTx 114b和耦合至第二資料登錄引腳122b的第二TDPRx 112b;並且第三IC 102c包括耦合 至第三資料輸出引腳124c的第三TDPTx 114c和耦合至第三資料登錄引腳122c的第三TDPRx 112c。在此類三IC配置中,第一資料輸出引腳124a經由第一資料線116a耦合至第二資料登錄引腳122b,以使得來自第一TDPTx 114a的輸出發送給第二TDPRx 112b並且由第二TDPRx 112b接收,第二資料輸出引腳124b經由第二資料線116b耦合至第三資料登錄引腳122c,以使得來自第二TDPTx 114b的輸出發送給第三TDPRx 112c並且由第三TDPRx 112c接收,以及第三資料輸出引腳124c經由第三資料線116c耦合至第一資料登錄引腳122a,以使得來自第三TDPTx 114c的輸出發送給第一TDPRx 112a並且由第一TDPRx 112a接收,由此完成該環。以類似的方式,第一時鐘輸出引腳128a經由第一時鐘線118a耦合至第二時鐘輸入引腳126b,第二時鐘輸出引腳128b經由第二時鐘線118b耦合至第三時鐘輸入引腳126c,並且第三時鐘輸出引腳128c經由第三時鐘線118c耦合至第一時鐘輸入引腳126a。
在一些實施例中,緩衝器120a-120c可如圖所示地耦合在TDPRx 112a-112c與TDPTx 114a-114c之間,但是本發明可以在不使用緩衝器120a-120c的情況下實現。TDPRx 112a-112c和TDPTx 114a-114c可以分別耦合至每個IC 102a-102c中的交叉觸發互連結構110a-110c,以使得出現在交叉觸發互連結構110a-110c上的觸發可以由TDPTx 114a-114c電路傳達以傳送給下一IC 102a-102c並且在TDPRx 112a-112c上接收的觸發可被傳達給交叉觸發互連結構110a-110c。如圖2中所示,IC 102a-102c中的TDPRx 112a-112c和TDPTx 114a-114c可以在菊輪鍊中連結在一起以形成橫跨所有IC 102a-102c的迴路。
每個IC 102a-102c中的交叉觸發互連結構110a-110c可以實現除錯觸發管理,其中交叉觸發互連結構110a-110c可以基於來自其連接的硬體核108a1-108a3、108b1-108b3、108c1-108c3的要由其連接的TDPTx 114a-114c發送的資料來產生除錯觸發,或者從接收自其連接的TDPRx 112a-112c的觸發產生用於其連接的硬體核108a1-108a3、108b1-108b3、108c1-108c3的指令。除錯觸發可包括各種功能,諸如控制硬體核108a1-108a3、108b1-108b3、108c1-108c3的處理狀態的功能、以及指令硬體核108a1-108a3、108b1-108b3、108c1-108c3實現處理功能的功能。藉由經由TDPTx/TDPRx通訊路徑116a-116c、118a-118c將來自一個IC(例如,102a)中的交叉觸發互連結構110a的觸發傳遞給其他IC(例如,102b、102c)的交叉觸發互連結構110b、110c,在一個交叉觸發互連結構上出現/產生的觸發可以應用在其他IC的交叉觸發互連結構上,並且反之亦然。這可以使兩個、三個、或者更多個交叉觸發互連結構能夠如同橫跨兩個、三個或更多個IC的單個較大交叉觸發互連結構那樣起作用。以此方式,任何數目的IC中的交叉觸發互連結構可以連結在一起以如同單個較大交叉觸發互連結構那樣起作用。
為了使通訊鏈路的成本和複雜度最小化,TDPRx 112a-112c和TDPTx 114a-114c電路可以使用將時槽分配用於傳達觸發的簡單時分方案來從和向分別連接的IC 102a-102c 接收和傳送信號。在一示例中,TDPRx 112b可以從一個IC 102a接收交叉觸發互連結構觸發資料(Rx資料)和時鐘(RxClk)並且TDPTx 114b可以將其交叉觸發互連結構觸發資料(Tx資料)和時鐘(TxClk)傳送給下一IC 102c。從IC 102a接收的Rx資料和RxClk信號可被稱為第一資料信號和第一時鐘信號,並且向IC 102c發送的Tx資料和TxClk信號可被稱為第二資料信號和第二時鐘信號。這些元件亦可以合適地安排和解讀資料以供由交叉觸發互連結構110a-110c使用或者用於在IC 102a-102c之間傳送資料。IC 102a-102c的TDPRx 112a-112c和TDPTx 114a-114c亦可以連接至緩衝器120a-120c,該緩衝器120a-120c可被配置成保持以待作為傳輸資料(Tx資料)中繼/重傳至環中的下一IC的收到資料(Rx資料)。
圖3圖示可經由TDP通訊環發送以在IC之間傳遞觸發資料的訊息或TDP信號的TDP資料結構300的一個實施例。每個TDP通訊或信號可以包括序列開始碼302,繼以用於資料的數個時槽304。TDP序列開始簽名302可以是TDPRx電路能夠辨識為通訊300的開始的簡單代碼。每個時槽可以劃分成多個部分,該多個部分可包括時槽開始碼306、時槽控制碼308、計數值或遞減器值310以及觸發碼312。TDP序列開始簽名302可以具有任何大小並且在一些實例中可以不必是分開的碼,而是可以整合到第一時槽304(時槽1)中(諸如時槽開始碼306的一部分)。TDP序列開始簽名302的一些態樣可以是其發生在TDP通訊環通訊300的開始處並且不在另一時間重複。在此示例中,TDP序列開始簽名302是4個十六進位數字「FFFF 」的16位序列。然而,TDP序列開始簽名的大小和格式可以變化。序列開始簽名302可以貫穿通訊300的其餘部分是不可模仿的以避免混淆。換言之,通訊300的其餘部分可以不具有有意或無意地包括可複製序列開始簽名302的資料的能力。例如,若序列開始簽名302由十六進位數位組成並且通訊300的其餘部分由二進位元或八進位數字組成,則包括數位8-F的十六進位序列不可在通訊300的其餘部分中被重新建立。
時槽開始碼306可以位於時槽304的頭部以指示相關時槽304的開始。如此示例中所示,時槽開始碼306可以是1位元二進位值或碼。然而,在一些實例中,諸如當TDP序列開始簽名302與時槽開始碼306組合時,時槽開始碼306可被設計為時槽304的較大或不同地格式化的區段,以使得其可指示時槽304的開始以及TDP通訊環通訊300的開始。
時槽控制碼308可被配置成指示觸發控制命令。在圖3中的示例中,時槽控制碼308是允許最多達4個不同碼或位準的2位元二進位值或者碼。例如,時槽碼可以是觸發脈衝請求、觸發位準設置請求和觸發位準清除請求,其中第四個碼被保持為保留碼。觸發脈衝請求可以使接收IC和交叉觸發互連結構脈動地產生觸發達時鐘週期的全部或一部分以向一或多個硬體核提供一次性指令。觸發位準設置和清除請求可以致使將持久觸發設置在高或低狀態直至觸發源對位準觸發解除斷言。
觸發可以繞TDP迴路發送一次,其中每個IC的TDPTx電路中繼該觸發直至所有IC已接收到該觸發。這種繞 迴路一次的程序可如下由計數器或遞減器值310來控制。當觸發第一次由IC傳送時,計數值或遞減器值310可被設置成比迴路中的IC數目小1的數位。隨後,當迴路之每一者後續IC在時槽304中重傳該觸發時,其TDPTx(或TDPRx)使計數值或遞減器值310遞減。當計數值或遞減器值310達到0時,例如,觸發不可由該IC的TDPTx重傳。換言之,在時槽由IC接收到之後,計數值310被修改以指示該IC已讀取時槽304。在遞減器值310的示例中,該值被每個IC遞減直至計數值310等於0,從而指示由TDP通訊環連接的每個IC已接收到該時槽304中的觸發。當時槽計數值或遞減器值310為0時,這指示時槽304可供用於傳送另一觸發並且由此是「閒置時槽」。任何其他計數值310可以指示時槽304保持觸發並且不能被寫入。
為了傳送接收自IC的交叉觸發互連結構的觸發,IC的TDPTx電路可以在所接收到的時槽群中檢視具有為0的計數值或遞減器值310的時槽304。當此類時槽304被找到時,IC可以將觸發寫入該時槽304的觸發碼312。該觸發可隨後被排程用於在該時槽304中連同等於IC數目減去1的計數值或遞減器值310一起傳送。資料封包可隨後由IC的TDPTx傳送給迴路中的下一IC,其中該資料封包包括TDP序列開始簽名302,繼以攜帶所接收到和所重傳的觸發值以及由IC添加的新觸發的時槽304。圖3中的示例將計數值310示為2位元二進位值,然而計數值310可以在大小和格式態樣變化以適合系統中的IC數目。
任何IC可使用的閒置時槽的數目可被限制,以使得 該IC不會使用所有可用時槽304和潛在地使用所有時槽304,這可防止其他IC將觸發寫入時槽304。
計數值310可以是可由IC辨識為指示時槽304被佔用或者閒置的任何值。計數值310可以遞增而不是遞減,或者經由預定的公式來修改。計數值310可以不必指示IC的數目或者計數值310不必被設置為0以指示時槽304是閒置的。例如,每個IC可以具有動態地程式設計或指派的專用標識號。這些標識號可以按邏輯次序或者經由公式來指派。當IC讀取被佔用時槽304時,該IC可以能夠標識將觸發寫入時槽304的IC是否為TDP通訊環中的下一IC。若是,則IC可以知道其是讀取時槽304中的觸發的最後一個IC並且因此該時槽現在閒置可供使用。若IC具有要寫入時槽304的觸發,則該IC可以這麼做並且用其自己的標識號來更新計數值310。否則,IC可以將計數值310修改成其他IC知曉的「閒置時槽」值。
在一些實施例中,時槽304可以包括將時槽304指派給特定IC的指派值。此處,僅獲指派的IC可以寫入時槽304。計數值310可被用作指派值,其中獲指派的IC在時槽返回到該獲指派的IC時知道其他IC已讀取其觸發。指派值亦可以是時槽304的分開部分,而計數值310保持指示其他IC是否已讀取觸發的功能。
其他實施例可以允許任何IC寫入任何閒置時槽304而同時限制每個IC可以佔用的時槽304的最大數目。以此方式,只要存在由IC接收的閒置時槽304並且IC正佔用少於其最大時槽304數目,IC就可以寫入閒置時槽304。若IC接收到閒置 時槽而同時佔用其最大時槽304數目,則可以阻止該IC寫入該閒置時槽並且該IC可以轉發該閒置時槽304。每個IC可以具有相同或不同的最大佔用時槽數目,並且這些最大值可以是固定的或可程式設計的。每個IC可以追蹤其佔用的時槽304數目並且將該數目與其最大時槽304數目進行比較。計數值310可以如本文中所描述的那樣實現以決定時槽何時閒置或被佔用。
觸發碼312可以表示除錯觸發正在IC之間傳達。每個觸發碼312可以表示一或多個不同的觸發。當IC讀取觸發碼312時,交叉觸發互連結構可以將觸發碼312中的一或多個觸發轉譯成傳遞給IC的交叉觸發互連結構的分開的觸發。交叉觸發互連結構亦可以從IC上或連接至IC的觸發源接收觸發功能並且輸出觸發以寫入時槽304的觸發碼312部分。圖3中的示例將觸發碼312示為5位元二進位值,然而觸發碼312可以在大小和格式態樣變化以適合應用的需要。在一些實施例中,觸發碼312值可被用於表示要在接收IC的時間戳記基礎設施上插入時間戳記的請求。
圖3中的示例示出一個時槽304為10位長。每個時槽304的大小一般將是一致的,但是所有時槽304的大小和數目可以變化。時槽304的大小可以取決於其每個部分的要求而變化,如本文中所描述的。大小亦可以是可用頻寬、期望傳送速率、分配給每個時槽304的時間、以及時槽304的數目的乘積。時槽304的數目亦可以按此方式變化。在一些實施例中,時槽304的數目可以等於IC的數目。對於一組連結的IC,時槽 304的數目和大小亦可以是預定的。
在一示例操作中,主IC(例如,觸發發佈IC)可以經由廣播不可模仿的TDP序列開始簽名302繼以可配備數目的TDP時槽304來開始TDP程序。主IC的輸出可以是串列TDP資料線(Tx資料)以及從某個內部時鐘源匯出的時鐘(TxClk)。兩個IC之間的源同步時鐘的頻率可以不同於TDP通訊環中其他某兩個IC之間的頻率。觸發發佈IC可以選擇其希望使用它的哪個時鐘來匯出其TDP觸發輸出時鐘。接收IC可以使用此傳入時鐘(RxClk)。IC可以在彼此非同步的時鐘週期上操作,並且觸發時鐘可以連同其他觸發資料一起傳遞以在每個IC上一致地實現除錯技術。
接收IC可以觀察此資料和時鐘,並且等待不可模仿的TDP序列開始簽名302。包含觸發資料的每個收到時槽304可被遞減,且觸發「完成」並被傳遞給該IC的交叉觸發互連結構。若該時槽的計數值/遞減器值310大於0,則觸發資料可在同一時槽304中傳送給迴路中的下一IC。接收IC亦可以等待獲指派的時槽304或者閒置的TDP時槽304,並且提供自從上一次接收到TDP程序以來已待要寫入獲指派或閒置的TDP時槽304的任何觸發。收到時槽304可以最初不是閒置時槽304,但是可以在接收IC在讀取時槽304之後或之時將計數值/遞減器值310遞減到0時變成閒置時槽304。因此,一旦時槽304中的觸發值已被TDP通訊環中除主IC之外的每個IC接收到,該時槽304就變成閒置。當此情況發生時,現在閒置的時槽304可被用於從接收IC的交叉觸發互連結構繞該環傳送一次新觸發。 然而,若在交叉觸發互連結構中沒有待要在閒置時槽304中傳送的觸發值,則時槽304可以在所傳送的TDP包中保持無資料。換言之,空時槽304保持為空,其中所傳送的封包中的計數值/遞減器值310為0,並且可以保持為空直至IC在該程序期間或者在接收和重傳TDP包期間用觸發值填充該時槽為止。
圖4圖示用於在時分封包化通訊環400的各元件之間進行時分封包化通訊的一態樣方法的程序流程圖。在方塊402,主IC可以發起TDP通訊環通訊300。主IC可以是TDP通訊環中的IC中預定的一個IC。例如,主IC可以是TDP通訊環中可以發起諸IC之間的TDP通訊的唯一IC。替換地,這些IC可以各自被指派優先順序值並且可以決定TDP通訊環中的哪個IC可以是主IC。在後一種實施例中,當原始主IC可能不再能夠發起TDP通訊時,主IC基於演算法而改變是可能的。另一實施例可以簡單地在任何IC具有要傳送的觸發並且TDP通訊300尚待發起時允許該IC成為主IC。在一些實例中,每次可以僅有一個主IC,而在其他實例中,可以有多個主IC。任何TDP通訊環的主IC的數目可以基於一或多個因素來限制,包括形成TDP通訊環的IC的數目、可用頻寬、通訊的大小、期望傳送速率、以及分配給每個時槽的時間。
主IC決定何時要發起TDP通訊環通訊可以變化。在一個實施例中,主IC可以僅當其具有待要向其他IC傳送的觸發時才發起TDP通訊環通訊。在另一實施例中,主IC可以在其上電時、在偵錯工具執行時、或者週期性地發起TDP通訊環通訊。主IC亦可以在另一IC具有待決的觸發傳輸時回應於來自 該另一IC的請求而發起TDP通訊環通訊。主IC亦可以取決於先前發起的TDP通訊環通訊的狀態來限制發起TDP通訊環通訊。若其他TDP通訊環通訊仍活躍,則主IC可以決定不發佈新的TDP通訊環通訊。
主IC可以發佈或傳送TDP序列開始簽名。發佈TDP序列開始簽名可以涉及隨機地產生參數集內的不可模仿的值以確保TDP序列開始簽名302能被TDP通訊環中的其他IC辨識但不能被它們重建。此類參數可以包括TDP序列開始簽名的大小、格式、和可用數位或數位組合。在另一實施例中,TDP序列開始簽名302可以是預定碼,以使得TDP通訊環中的所有IC可以將位序列辨識為TDP序列開始簽名。
在方塊406,主IC可以發佈數個TDP時槽。發佈TDP時槽可以涉及決定要發佈的時槽的數目。在一個示例中,所發佈的時槽的數目可以取決於一或多個因素,諸如可用頻寬、通訊的大小、期望傳送速率、分配給每個時槽的時間、以及TDP通訊環中的IC的數目。在另一實施例中,時槽的數目可以是預定的。
發佈TDP時槽亦可以涉及結構化這些時槽。如圖3中所描述的,時槽304可以包括具有變化的大小、格式和目的的數個區段。例如,時槽304可以包括用於時槽開始碼306、時槽控制碼308、計數值或遞減器值310、以及觸發碼312的區段。取決於時槽304的大小以及對每個區段中的資料的大小要求,每個區段可被分配特定大小。如在其他示例中那樣,區段的大小可以是預定的。
時槽開始碼306的結構可以取決於TDP序列開始簽名302是分開的還是納入到時槽開始碼306中。時槽控制碼308的結構可以取決於為TDP通訊環定義的觸發控制命令的數目。例如,圖3將時槽控制碼308圖示為兩位元二進位值或碼。圖3中的圖例描述了被指定為相應的兩位元二進位時槽控制碼308的四個可能的觸發控制命令。然而,時槽控制碼308可以在數目上更少或更多,由此修改時槽控制碼308所需要的位元及/或格式。一個實施例可以僅包括兩個觸發控制命令,並且在此類實例中,1位元二進位時槽控制碼308可以是足夠的。替換地,若定義四個以上觸發控制命令,則三位元或更多位元二進位時槽控制碼308可能是必需的。
計數值/遞減器值310的結構可以經由TDP通訊環中的IC數目及/或用於追蹤IC何時已讀取由另一IC傳送的觸發的方法來決定。與時槽控制308非常相似,圖3將計數值/遞減器值310圖示為兩位元二進位值或碼。這一般而言僅允許最多達5個所連接的IC,因為兩位元二進位值或碼中最高表示的二進位值「11」等效於4(IC的總數減去1)。可以期望連接5個以上IC、或者4個以下IC,在這種情形中兩位元二進位值或碼可能是不合適的或者是不必要的。如本文中所描述的,改變了用於基於計數值/遞減器值310來決定所有IC何時已讀取時槽304的方法。計數值/遞減器值310的結構可以類似地改變以適合不同的方法。
觸發碼312的結構可以由為交叉觸發互連結構定義的觸發數目來決定。圖3中的示例示出表示8種觸發組合的三 位元二進位值。在三個位元中存在「0」和「1」的8種不同組合的可能性,其中每一位可被指派給由交叉觸發互連結構解讀的不同觸發,並且每一種組合可以表示一或多個觸發。較少的觸發可能不需要所有三個位元,並且較大數目的觸發可能需要更多位元。雖然交叉觸發互連結構可以支援數個觸發,但是觸發碼312的結構不必匹配所支援的觸發的數目。在一個實施例中,特定除錯常式可以僅需要使用由交叉觸發互連結構支援的觸發的子集。在此類實例中,若由該常式使用的觸發被指派給由比全部範圍的受支援觸發少的位元表示的二進位位元,則觸發碼312可被格式化成僅包括所需要的較少位元。
在其他實施例中,三位元直接二進位值或三位元二進位碼可以表示8個觸發。在三個位元中存在「0」和「1」的8種不同組合的可能性,並且每一種組合可以被指派給由交叉觸發互連結構解讀的不同觸發。如同其他實施例那樣,較少的觸發可能不需要所有三個位元,並且較大數目的觸發可能需要更多位元。在另一實施例中,二進位值之每一者位置可以表示不同的觸發數(即「獨熱」方案)。以此方式,與如將在使用二進位編碼的情形中那樣每次每個時槽僅能夠傳達一個觸發相比,一個以上觸發可被傳達給閒置時槽。
在發佈時槽304時,主IC可能已發佈所有閒置時槽304。替換地,主IC可能已發佈閒置時槽304和被佔用時槽304的組合或者僅發佈主IC已向其寫入觸發的被佔用時槽304。
參照回圖4,在方塊408,主IC可以等待TDP通訊環 通訊經由所有其他IC遍歷TDP通訊環直至TDP開始序列簽名返回到主IC。一旦接收到TDP開始序列簽名,在方塊410,主IC就可接收相關的TDP通訊環通訊的時槽。在決定方塊412,主IC可以決定收到時槽是閒置時槽還是被佔用時槽。如所描述的,主IC可以經由讀取計數/遞減值以獲悉該資料指示時槽為閒置還是被佔用的方式來作出此類決定。指示時槽狀態的資料值可以取決於用於指示時槽的閒置和佔用狀態的方法而變化。在一個實施例中,當計數值/遞減值為「0」時,時槽為閒置,並且對於任何其他計數值/遞減值,時槽為被佔用。
當收到時槽被佔用(亦即,決定方塊412=「否」)時,主IC可以在方塊414讀取該時槽。以下參照圖5更詳細地描述讀取時槽。在決定方塊416,主IC可以再次決定時槽為閒置還是被佔用。當主IC是讀取該時槽的最後一個IC時,一旦該時槽被主IC讀取,該時槽的狀態就可變化。此類情況可能在主IC發佈至少一個閒置時槽304並且TDP通訊環中的下一IC將觸發寫入該時槽的情況下出現。
在收到時槽被決定為閒置(亦即,決定方塊412或416=「是」)的任一實例中,主IC可以在決定方塊418決定其是否有待決的觸發要寫入該閒置時槽。此決定可以經由檢查主IC的多個元件來作出。待決的觸發可以在硬體核之一處、在交叉觸發互連結構處、或者在TDPTx處待決。這些元件中的每一個元件可以保持待決的觸發直至存在主IC可將待決的觸發寫入其中的閒置時槽。當主IC保持待決的觸發(亦即,決定方塊418=「是」)時,主IC可以在方塊420將該觸發和相 關資料寫入閒置時槽。本文中參照圖6更詳細地描述寫入時槽。在方塊422,主IC完成該收到時槽並且可將該時槽以其經修改狀態轉發給TDP通訊環上的下一IC。
當主IC決定在讀取時槽之後該時槽仍被佔用(亦即,決定方塊416=「否」)時,或者當主IC決定其不具有任何待決的觸發要寫入閒置時槽(亦即,決定方塊418=「否」)時,主IC可以在方塊422將該時槽以其當前狀態轉發給TDP通訊環上的下一IC。
方法400可以在接收到TDP訊息時有規律地重複,以使得IC可以返回至在方塊408中等待下一TDP封包。主IC、或另一主IC可以在先前的TDP通訊環通訊已停止之後或者在先前的TDP通訊環通訊仍活躍時發起另一TDP通訊環通訊,如以上參照方塊402所描述的。方塊408-422中的操作不必排他地由主IC執行。TDP通訊環之每一者IC都可以執行方塊408-422中的操作。
圖5圖示用於在時分封包化通訊環中讀取通訊的實施例方法500。在方塊502,IC從TDP通訊環上的前一IC接收包括時槽和資料(Tx資料)的TDP通訊環通訊。對TDP封包的接收可以在方塊504中與從TDP通訊環上的前一IC接收時鐘信號(TxClk)併發地或者在時間上接近地發生。在決定方塊506,IC可以決定計數值/遞減器值是否等於值「X」。
類似於以上描述的決定方塊412和416,決定方塊506中作出的決定用於決定正被讀取的時槽為閒置還是被佔用。在此實施例中,該決定是由IC基於計數值/遞減器值是否等於 值「X」來作出的。如本文中所描述的,值「X」可以取決於用於指示時槽304為閒置還是被佔用的方法而變化。其他實施例可以不要求計數值/遞減器值等於值「X」,而是大於(或等於)值「X」、小於(或等於)值「X」、不等於值「X」、或者與值「X」具有某個其他的公式關係。
當IC決定時槽為閒置(亦即,決定方塊506=「是」)時,IC可以在方塊508中繼續如以下參照圖6所描述的方塊606中的操作。當時槽被佔用(亦即,決定方塊506=「否」)時,IC可以讀取該時槽的其他部分。在方塊510,IC可以讀取時槽控制碼和觸發碼。讀取時槽控制碼和觸發碼可以併發地或串列地並且以任何次序發生。時槽控制碼和觸發碼可以由TDP接收器(TDPRx)從該時槽中讀取並且在方塊512傳遞給交叉觸發互連結構。在方塊514,交叉觸發互連結構可以解讀觸發,以使得該交叉觸發互連結構可以傳達該觸發作為用於一或多個觸發槽(例如IC的硬體核)的指令或觸發功能。交叉觸發互連結構可以包含用於將觸發與硬體核指令相關的表、或其他資料結構。在表的實施例中,交叉觸發互連結構可以在該表中找到在一列中包含該觸發並且在另一列中包含相關硬體核指令的一行。替換地,觸發可以與用於決定關於在資料結構內何處存取相關硬體核指令的指標的函數有關或者可被用作該函數的變數。
在方塊516,交叉觸發互連結構可以指令硬體核執行與觸發相關的硬體核指令。在替換實施例中,在方塊518,交叉觸發互連結構可以指令硬體核與作為RxClk信號從TxClk信 號接收的時鐘頻率同步地執行與觸發相關的硬體核指令。在方塊520,IC可以根據用於指示閒置時槽或被佔用時槽的方法來遞減計數值/遞減器值,或者以其他方式修改計數值/遞減器值。在方塊522,如同在方塊506中那樣,IC可以決定計數值/遞減器值是否等於值「X」,或者以其他方式決定正被讀取的時槽為閒置還是仍被佔用。當該時槽為閒置(亦即,決定方塊522=「是」)時,在方塊524,IC可以執行以下參照圖6所描述的方塊606中的操作。當該時槽仍被佔用(亦即,決定方塊522=「否」)時,IC可以在方塊526中將該時槽連同該IC的Tx資料以及可能還有其TxClk一起轉發給TDP通訊環上的下一IC。
圖6圖示用於在時分封包化通訊環中寫入通訊的實施例方法600的程序流程圖。在一些實施例中,在方塊602,IC的一或多個觸發源可以向交叉觸發互連結構傳遞觸發指令。在方塊514的相反程序中,在方塊604,交叉觸發互連結構可以解讀來自觸發源(例如硬體核)的指令或觸發功能,以使得該交叉觸發互連結構可以傳達該指令作為用於TDP通訊環上的一或多個IC的觸發。
在一些實施例中,從由交叉觸發互連結構對收到觸發值的解讀得到的觸發功能(如方塊514中那樣)可被稱為第一觸發功能。從交叉觸發互連結構在方塊604中的解讀得到觸發值的觸發功能可被稱為第二觸發功能。
諸實施例可任選地包括源自讀取方法500的方塊606。在方法500期間,IC決定正被讀取的時槽304為閒置(亦即 ,決定方塊506或522=「是」)並且分別繼續執行方塊508或524中的操作,這些操作包括方塊606中的操作。
在決定方塊608中,IC決定其是否具有任何待決的觸發要寫入閒置時槽並且傳送給TDP通訊環上的其他IC。當IC不具有待決的觸發(亦即,決定方塊608=「否」)時,閒置時槽可在方塊610被轉發給TDP通訊環上的下一IC。當IC具有待決的觸發(亦即,決定方塊608=「是」)時,IC可以在方塊612將該觸發寫入該閒置時槽的觸發碼並且將相關的觸發控制寫入該閒置時槽的時槽控制碼。在一些實施例中,將觸發和觸發控制寫入觸發碼和時槽控制碼可以由TDPTx完成。
在其中從被佔用時槽讀取觸發值的實施例方法500中,此類觸發值可被稱為第一觸發值。當IC已讀取第一觸發值並且決定該時槽現在是閒置時槽時,IC的待決觸發可以是第二觸發值。第二觸發值可被寫入閒置時槽作為第二觸發值。
在變化的實施例中,待決的觸發可被儲存在IC的硬體核、交叉觸發互連結構、或者TDP發射器(TDPTx)中的一者或多者上。當觸發被儲存在一或多個硬體核上時,IC可以在方塊608與612中的操作之間執行方塊602和604中的操作。
在方塊614,計數值/遞減器值可被設置,以使得寫入時槽的該部分的值指示該時槽被佔用。如本文中所描述的,各種方法可被用於決定時槽是閒置的還是被佔用的。寫入計數值/遞減器值的資料可以取決於用於決定時槽狀態的方法。一種所描述的此類方法為:每次IC讀取時槽時就遞減計數 值/遞減器值,直至計數值/遞減器值的資料等於指示閒置時槽的特定值,其中所有其他值指示該時槽被佔用。針對此方法的一種辦法可以是將計數值/遞減器值設置成等於TDP通訊環上的IC總數減去1。該辦法可以允許每次IC讀取時槽時就使計數值/遞減器值遞減1。當最後一個IC(亦即,定位成向將觸發寫入該時槽的IC進行傳送的IC)讀取該時槽時,計數值/遞減器值可以達到值0。當計數值/遞減器值達到0時,IC可以辨識出所有其他IC已讀取該時槽並且該時槽隨即為閒置。
在方塊616,向時槽進行寫入的IC可以選擇要隨同該時槽一起發送的時鐘頻率或觸發輸出時鐘,以使得接收IC根據所選時鐘頻率來實現觸發。TDP通訊環上的個體IC可非同步地執行。每個IC的任務可以或可以不與其他IC相聯絡,並且由此這些IC不必同步地執行。每個IC可以在相同或不同頻率的時鐘上並且與其他IC的時鐘同相或異相地執行。為了以一致的方式執行觸發以使每個IC影響預期的結果,進行傳送的IC可以選擇接收IC可以藉以實現觸發的時鐘頻率和相位。在方塊618,將觸發寫入時槽的IC可以向TDP通訊環上的下一IC發送具有包含經修改的觸發碼312、時槽控制碼及/或計數值/遞減器值的時槽的TDP通訊。進行傳送的IC亦可以在該時槽之前、之後或者與該時槽併發地發送觸發輸出時鐘。觸發輸出時鐘可以作為TxClk傳送並且由下一IC作為RxClk接收。
圖7根據一實施例圖示供與時分封包化通訊環(TDPRx/Tx)700聯用的IC的通訊電路的示例實現的元件圖。TDPRx/Tx電路700可以包括分別用於Rx資料和RxClk的資料 登錄引腳或埠702和資料輸出引腳或埠704。這些輸入和輸出引腳/埠702、704可以連接至可以包含用於管理Rx資料和RxClk的指令的Rx邏輯晶片或模組706。Rx邏輯模組706可以連接至可以包含用於管理Tx資料和TxClk的指令的Tx邏輯晶片或模組708。Rx邏輯模組706可以經由緩衝器710連接至Tx邏輯模組708,該緩衝器710可以延遲或保持用於從Rx邏輯模組706傳輸至Tx邏輯模組708的資料。
Tx邏輯模組706可以包括功率控制介面712以將信號傳達給IC的主功率軌(Cx)功率控制晶片或模組714。此類信號可以包括Cx開/關請求,Cx功率控制模組714可以用Cx開/關確認來對Cx開/關請求進行回應。Cx功率控制模組714可以調節提供給TDP通訊環邏輯的諸部分的功率。
Tx邏輯模組706和功率控制介面712可以連接至可以用於控制何時實現某些指令的開關或時鐘716。時鐘716亦可以用於當IC在時槽304上傳送觸發時提供TxClk信號。Tx邏輯模組706亦可以向多工器718發送信號(諸如Tx資料和TxClk信號)以實現時分封包化通訊。Tx邏輯模組706亦可以連接至設置/清除暫存器邏輯晶片或模組720,Tx邏輯模組706可以向該設置/清除暫存器邏輯晶片或模組720發送設置/清除直通控制信號。設置/清除暫存器邏輯模組720亦可以由時鐘716控制。多工器718可以從設置/清除暫存器邏輯模組720接收直通啟用輸入,該直通啟用輸入可以允許TDPRx/Tx電路700傳送Tx資料和TxClk。(RxClk上的)流水線級722可以促成用於與其他IC對接的元件(諸如引腳或埠702、704、724和726)與該IC 的其他元件(諸如Rx邏輯模組706和Tx邏輯模組708)之間的信號通訊,該信號通訊是因由IC的實體實現中的距離所導致的限制而產生的。多工器718可以控制Tx資料和TxClk何時以及如何被提供給輸出埠724和726。
其他元件可以包括用於管理Rx/TxTMD電路700的各元件之間的通訊的Q匯流排晶片或模組728。用於環形配置元件的儲存730可以向Rx/TxTMD電路700提供關於TDP通訊環的結構(包括TDP通訊環上的IC)的參數以及本文中所描述的用於構成TDP通訊的其他參數。一或多個位準移位器732可被包括以促成在變化的電壓域的各元件之間傳遞指令,從而這些元件可以理解並且管理那些指令。
上述方法描述和程序流程圖僅作為說明性示例而提供,且並非旨在要求或暗示各個實施例的操作必須按所提供的次序來執行。如熟習此項技術者將領會的,前述各實施例中的操作次序可按任何次序來執行。諸如「其後」、「隨後」、「接著」等的措辭並非旨在限定操作的次序;這些措辭僅是簡單地用以指引讀者遍歷方法的描述。進一步地,對單數形式的請求項元素的任何引述,例如使用冠詞「一」、「某」或「該」的引述不應解釋為將該元素限定為單數。
結合各個實施例來描述的各種說明性邏輯區塊、模組、電路、和演算法操作可實現為電子硬體、電腦軟體、或這兩者的組合。為清楚地圖示硬體和軟體的這種可互換性,各種說明性元件、方塊、模組、電路、和操作在上文中以其功能性的形式進行了一般化描述。此類功能性是被實現為硬 體還是軟體取決於具體應用和施加於整體系統的設計約束。熟習技術者對於每種特定應用可用不同的方式來實現所描述的功能性,但此類實現決策不應被解讀成導致脫離了本發明的範疇。
用以實現結合本文中揭示的實施例描述的各種說明性邏輯、邏輯區塊、模組、以及電路的硬體可用設計成執行本文中描述的功能的通用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯裝置、個別閘或電晶體邏輯、個別的硬體元件、或其任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,處理器可以是任何一般的處理器、控制器、微控制器、或狀態機。處理器亦可以被實現為計算設備的組合,例如DSP與微處理器的組合、複數個微處理器、與DSP核心協同的一或多個微處理器或任何其他此類配置。替代地,一些操作或方法可由專用於給定功能的電路系統來執行。
在一或多個實施例中,所描述的功能可在硬體、軟體、韌體或其任何組合中實現。若在軟體中實現,則這些功能可作為一或多數指令或代碼儲存在非瞬態電腦可讀取媒體或非瞬態處理器可讀取媒體上。本文中揭示的方法或演算法的操作可在處理器可執行軟體模組中實施,該處理器可執行軟體模組可常駐在非瞬態電腦可讀或處理器可讀儲存媒體上。非瞬態電腦可讀或處理器可讀儲存媒體可以是能被電腦或處理器存取的任何儲存媒體。作為示例而非限定,此類非瞬 態電腦可讀或處理器可讀取媒體可包括RAM、ROM、EEPROM、快閃記憶體、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或能被用來儲存指令或資料結構形式的期望程式碼且能被電腦存取的任何其他媒體。如本文中所使用的盤(disk)和碟(disc)包括壓縮光碟(CD)、鐳射光碟、光碟、數位多功能光碟(DVD)、軟碟和藍光光碟,其中盤往往以磁的方式再現資料而碟利用鐳射以光學方式再現資料。以上的組合亦被包括在非瞬態電腦可讀和處理器可讀取媒體的範疇內。另外,方法或演算法的操作可作為一條代碼及/或指令或者代碼及/或指令的任何組合或集合而常駐在可被納入電腦程式產品中的非瞬態處理器可讀取媒體及/或電腦可讀取媒體上。
提供所揭示的實施例的先前描述是為了使任何熟習此項技術者皆能製作或使用本發明。對這些實施例的各種修改對熟習此項技術者來說將是顯而易見的,且本文所定義的一般原理可被應用於其他實施例而不背離本發明的精神或範疇。由此,本發明並非旨在限定於本文中示出的實施例,而是應被授予與所附請求項和本文中揭示的原理和新穎性特徵一致的最廣義的範疇。
100‧‧‧IC系統
102a‧‧‧IC
102b‧‧‧IC
102c‧‧‧IC
102n‧‧‧IC
104‧‧‧通訊介面
106‧‧‧實體管道

Claims (36)

  1. 一種用於傳達觸發值以供在除錯複數個互連硬體核中使用的方法,包括以下步驟:由一第一互連硬體核發起具有一序列開始簽名和數個時槽的一時分封包化(TDP)信號,其中每個時槽包括配置成指示該時槽為閒置還是包含一觸發值的一計數值;由該第一互連硬體核向一第二互連硬體核發送該TDP信號;由該第一互連硬體核接收由一第三互連硬體核發送的該TDP信號;由該第一互連硬體核基於每個時槽的一第一計數值來決定該時槽是否包含一第一觸發值;對於包含該第一觸發值的每個時槽,向該第一互連硬體核的一交叉觸發互連結構傳遞該第一觸發值並且修改該時槽的第一計數值;重傳包括該序列開始簽名和該數個時槽的該TDP信號,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含該第一觸發值時,該時槽包括該第一觸發值;當該第一互連硬體核具有要傳送的一第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括從該交叉觸發互連結構獲得的該第二觸發值連同指示該時槽包含該第二觸發值的一第二計數值;及當該第一互連硬體核不具有要傳送的該第二觸發值 並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括具有指示該時槽為閒置的該第二計數值的一空時槽。
  2. 如請求項1述及之方法,進一步包括以下步驟:由該第一互連硬體核向該第二互連硬體核發送一第一時鐘信號;及由該第一互連硬體核從該第三互連硬體核接收一第二時鐘信號。
  3. 如請求項2述及之方法,其中該所接收到的第二時鐘信號是該第一時鐘信號。
  4. 如請求項2述及之方法,其中該所接收到的第二時鐘信號不同於該第一時鐘信號。
  5. 如請求項2述及之方法,進一步包括以下步驟:由該第一互連硬體核的該交叉觸發互連結構將一第一觸發功能與該第一觸發值相關聯;及由該第一互連硬體核根據該第一時鐘信號來實現該第一觸發功能。
  6. 如請求項1述及之方法,進一步包括以下步驟:由該第一互連硬體核的該交叉觸發互連結構將該第二觸 發值與一第二觸發功能相關聯;及由該第一互連硬體核將該第二觸發值和該第二計數值寫入該時槽。
  7. 如請求項1述及之方法,進一步包括以下步驟:將該第一和該第二計數值設置成比該複數個互連硬體核小1,其中該第一計數值被配置成表示尚要讀取該第一觸發值的互連硬體核的一數目,該第二計數值被配置成表示尚要讀取該第二觸發值的互連硬體核的一數目,並且該第一和該第二計數值被配置成當該第一和該第二計數值等於0時指示該時槽為閒置,並且其中修改該第一計數值進一步包括遞減該第一計數值。
  8. 如請求項1述及之方法,其中該複數個互連硬體核被配置成以一環形配置連接,以使得每個互連硬體核被配置成連接至兩個其他的互連硬體核,其中該第一互連硬體核被配置成向該第二互連硬體核進行傳送並且從該第三互連硬體核進行接收,該第二互連硬體核被配置成向該第三互連硬體核進行傳送並且從該第一互連硬體核進行接收,並且該第三互連硬體核被配置成向該第一互連硬體核進行傳送並且從該第二互連硬體核進行接收。
  9. 如請求項1述及之方法,其中該複數個互連硬體核被配置成經由非同步的時鐘週期來操作。
  10. 一種第一積體電路,包括:複數個觸發源和觸發槽;一交叉觸發互連結構,配置成互連該複數個觸發源和觸發槽;一時分封包化發射器(TDPTx)電路,其耦合至該交叉觸發互連結構和一資料輸出引腳並且配置成連接至一第二積體電路;及一時分封包化接收器(TDPRx)電路,其耦合至該交叉觸發互連結構和一資料登錄引腳並且配置成連接至一第三積體電路,其中該TDPRx電路被配置成執行包括以下動作的操作:從該第三積體電路接收一時分封包化(TDP)信號,該TDP信號具有一序列開始簽名和數個時槽,其中每個時槽包括配置成指示該時槽為閒置還是包含一觸發值的一計數值;基於該時槽的一第一計數值來決定該TDP信號之每一者時槽是否包含一第一觸發值;及將包含該第一觸發值的每個時槽中的該第一觸發值傳遞給該交叉觸發互連結構並且修改該時槽的第一計數值;其中該TDPTx電路被配置成執行包括以下動作的操作:向該第二積體電路重傳包括該序列開始簽名和該數個時槽的該TDP信號,其中每個時槽包括以下之一: 當該時槽的經修改的第一計數值指示該時槽包含該第一觸發值時,該時槽包括該第一觸發值;當該第一積體電路具有要傳送的一第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括從該交叉觸發互連結構獲得的該第二觸發值連同指示該時槽包含該第二觸發值的一第二計數值;及當該第一積體電路不具有要傳送的該第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括具有指示該時槽為閒置的該第二計數值的一空時槽。
  11. 如請求項10述及之第一積體電路,其中該TDPTx電路耦合至一時鐘輸出引腳,並且被配置成執行進一步包括向該第二積體電路發送一第一時鐘信號的操作;並且其中該TDPRx電路耦合至一時鐘輸入引腳並且被配置成執行進一步包括從該第三積體電路接收一第二時鐘信號的操作。
  12. 如請求項11述及之第一積體電路,其中該所接收到的第二時鐘信號是該第一時鐘信號。
  13. 如請求項11述及之第一積體電路,其中該所接收到的第二時鐘信號不同於該第一時鐘信號。
  14. 如請求項11述及之第一積體電路,其中該交叉觸發互連結構被配置成執行包括以下動作的操作:將一第一觸發功能與該第一觸發值相關聯;並且其中該複數個觸發源和觸發槽中的至少一者被配置成執行包括根據該第一時鐘信號來實現該第一觸發功能的操作。
  15. 如請求項10述及之第一積體電路,其中該交叉觸發互連結構被配置成執行包括以下動作的操作:將該第二觸發值與一第二觸發功能相關聯;並且其中該TDPRx電路被配置成執行進一步包括將該第二觸發值和該第二計數值寫入該時槽的操作。
  16. 如請求項10述及之第一積體電路,其中該TDPRx電路被配置成執行進一步包括將該第一和該第二計數值設置成比該等積體電路的數目小1的操作,其中該第一計數值被配置成表示尚要讀取該第一觸發值的積體電路的一數目,該第二計數值被配置成表示尚要讀取該第二觸發值的積體電路的一數目,並且該第一和第二計數值被進一步配置成當該第一和該第二計數值等於0時指示該時槽為閒置,並且其中該TDPRx電路被配置成執行進一步包括修改該第一計數值以使得修改該第一計數值進一步包括遞減該第一計數值的操作。
  17. 如請求項10述及之第一積體電路,其中該第一積體電路的該TDPTx電路被配置成連接至該第二積體電路的一第二TDPRx電路,該第二積體電路的一第二TDPTx電路被配置成連接至該第三積體電路的一第三TDPRx電路,並且該第一積體電路的該TDPRx電路被配置成連接至該第三積體電路的一第三TDPTx電路,以使得該積體電路以一環形配置連接。
  18. 如請求項10述及之第一積體電路,其中該第一積體電路被配置成經由與該第二積體電路和該第三整合的一時鐘週期非同步的一時鐘週期來操作。
  19. 一種其上儲存有處理器可執行軟體指令的非瞬態處理器可讀取媒體,該等處理器可執行軟體指令被配置成由一互連硬體核執行以執行包括以下動作的操作:由一第一互連硬體核發起具有一序列開始簽名和數個時槽的一時分封包化(TDP)信號,其中每個時槽包括配置成指示該時槽為閒置還是包含一觸發值的一計數值;由該第一互連硬體核向一第二互連硬體核發送該TDP信號;由該第一互連硬體核接收由一第三互連硬體核發送的該TDP信號;由該第一互連硬體核基於每個時槽的一第一計數值來決定該時槽是否包含一第一觸發值; 對於包含該第一觸發值的每個時槽,向該第一互連硬體核的一交叉觸發互連結構傳遞該第一觸發值並且修改該時槽的第一計數值;重傳包括該序列開始簽名和該數個時槽的該TDP信號,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含該第一觸發值時,該時槽包括該第一觸發值;當該第一互連硬體核具有要傳送的一第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括從該交叉觸發互連結構獲得的該第二觸發值連同指示該時槽包含該第二觸發值的一第二計數值;及當該第一互連硬體核不具有要傳送的該第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括具有指示該時槽為閒置的該第二計數值的一空時槽。
  20. 如請求項19述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成由該互連硬體核執行以執行進一步包括以下動作的操作:由該第一互連硬體核向該第二互連硬體核發送一第一時鐘信號;及由該第一互連硬體核從該第三互連硬體核接收一第二時鐘信號。
  21. 如請求項20述及之非瞬態處理器可讀取媒體,其中該所接收到的第二時鐘信號是該第一時鐘信號。
  22. 如請求項20述及之非瞬態處理器可讀取媒體,其中該所接收到的第二時鐘信號不同於該第一時鐘信號。
  23. 如請求項20述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成由該互連硬體核執行以執行進一步包括以下動作的操作:由該第一互連硬體核的該交叉觸發互連結構將一第一觸發功能與該第一觸發值相關聯;及由該第一互連硬體核根據該第一時鐘信號來實現該第一觸發功能。
  24. 如請求項19述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成由該互連硬體核執行以執行進一步包括以下動作的操作:由該第一互連硬體核的該交叉觸發互連結構將該第二觸發值與一第二觸發功能相關聯;及由該第一互連硬體核將該第二觸發值和該第二計數值寫入該時槽。
  25. 如請求項19述及之非瞬態處理器可讀取媒體,其中該等所儲存的處理器可執行軟體指令被配置成由該互連硬體核執 行以執行進一步包括以下動作的操作:將該第一和該第二計數值設置成比互連硬體核的一數目小1,其中該第一計數值被配置成表示尚要讀取該第一觸發值的互連硬體核的一數目,該第二計數值被配置成表示尚要讀取該第二觸發值的互連硬體核的一數目,並且該第一和該第二計數值被配置成當該第一和該第二計數值等於0時指示該時槽為閒置,並且其中修改該第一計數值進一步包括遞減該第一計數值。
  26. 如請求項19述及之非瞬態處理器可讀取媒體,其中互連硬體核被配置成以一環形配置連接,以使得每個互連硬體核被配置成連接至兩個其他的互連硬體核,其中該第一互連硬體核被配置成向該第二互連硬體核進行傳送並且從該第三互連硬體核進行接收,該第二互連硬體核被配置成向該第三互連硬體核進行傳送並且從該第一互連硬體核進行接收,該第三互連硬體核被配置成向該第一互連硬體核進行傳送並且從該第二互連硬體核進行接收。
  27. 如請求項19述及之非瞬態處理器可讀取媒體,其中互連硬體核被配置成經由非同步時鐘週期來操作。
  28. 一種供在除錯複數個互連硬體核中使用的電路,包括:用於在一第一互連硬體核內發起具有一序列開始簽名和數個時槽的一時分封包化(TDP)信號的裝置,其中每個時槽 包括配置成指示該時槽為閒置還是包含一觸發值的一計數值;用於向一第二互連硬體核發送該TDP信號的裝置;用於接收由一第三互連硬體核發送的該TDP信號的裝置;用於基於每個時槽的一第一計數值來決定該時槽是否包含一第一觸發值的裝置;對於包含該第一觸發值的每個時槽,用於向該第一互連硬體核的一交叉觸發互連結構傳遞該第一觸發值的裝置以及用於修改該時槽的第一計數值的裝置;用於重傳包括該序列開始簽名和該數個時槽的該TDP信號的裝置,其中每個時槽包括以下之一:當該時槽的經修改的第一計數值指示該時槽包含該第一觸發值時,該時槽包括該第一觸發值;當該第一互連硬體核具有要傳送的一第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括從該交叉觸發互連結構獲得的該第二觸發值連同指示該時槽包含該第二觸發值的一第二計數值;及當該第一互連硬體核不具有要傳送的該第二觸發值並且該時槽的經修改的第一計數值指示該時槽為閒置時,該時槽包括具有指示該時槽為閒置的該第二計數值的一空時槽。
  29. 如請求項28述及之電路,進一步包括: 用於從該第一互連硬體核向該第二互連硬體核發送一第一時鐘信號的裝置;及用於從該第三互連硬體核接收一第二時鐘信號的裝置。
  30. 如請求項29述及之電路,其中該所接收到的第二時鐘信號是該第一時鐘信號。
  31. 如請求項29述及之電路,其中該所接收到的第二時鐘信號不同於該第一時鐘信號。
  32. 如請求項29述及之電路,進一步包括:用於將一第一觸發功能與該第一觸發值相關聯的裝置;及用於根據該第一時鐘信號來實現該第一觸發功能的裝置。
  33. 如請求項28述及之電路,進一步包括:用於將該第二觸發值與一第二觸發功能相關聯的裝置;及用於將該第二觸發值和該第二計數值寫入該時槽的裝置。
  34. 如請求項28述及之電路,進一步包括:用於將該第一和該第二計數值設置成比該複數個互連硬 體核小1的裝置,其中該第一計數值被配置成表示尚要讀取該第一觸發值的互連硬體核的一數目,該第二計數值被配置成表示尚要讀取該第二觸發值的互連硬體核的一數目,並且該第一和該第二計數值被配置成當該第一和該第二計數值等於0時指示該時槽為閒置,並且其中該用於修改該第一計數值的裝置進一步包括用於遞減該第一計數值的裝置。
  35. 如請求項28述及之電路,其中該複數個互連硬體核被配置成以一環形配置連接,以使得每個互連硬體核被配置成連接至兩個其他的互連硬體核,其中該第一互連硬體核被配置成向該第二互連硬體核進行傳送並且從該第三互連硬體核進行接收,該第二互連硬體核被配置成向該第三互連硬體核進行傳送並且從該第一互連硬體核進行接收,該第三互連硬體核被配置成向該第一互連硬體核進行傳送並且從該第二互連硬體核進行接收。
  36. 如請求項28述及之電路,其中該複數個互連硬體核被配置成經由非同步的時鐘週期來操作。
TW103121746A 2013-07-24 2014-06-24 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置 TW201510727A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361857881P 2013-07-24 2013-07-24
US13/963,292 US9208008B2 (en) 2013-07-24 2013-08-09 Method and apparatus for multi-chip reduced pin cross triggering to enhance debug experience

Publications (1)

Publication Number Publication Date
TW201510727A true TW201510727A (zh) 2015-03-16

Family

ID=52391545

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103121746A TW201510727A (zh) 2013-07-24 2014-06-24 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置

Country Status (3)

Country Link
US (1) US9208008B2 (zh)
TW (1) TW201510727A (zh)
WO (1) WO2015012993A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606679B2 (en) * 2017-12-04 2020-03-31 Arm Limited Debug apparatus and method
EP3584601B1 (en) 2018-06-18 2023-10-18 NXP USA, Inc. Time-encoded messaging for radar cascaded synchronization system
US10725946B1 (en) * 2019-02-08 2020-07-28 Dell Products L.P. System and method of rerouting an inter-processor communication link based on a link utilization value
CN111858116B (zh) * 2020-06-19 2024-02-13 浪潮电子信息产业股份有限公司 一种信息记录方法、装置、设备及可读存储介质
CN114064545B (zh) * 2021-10-29 2023-11-03 佛山市顺德区美的电子科技有限公司 串口功能识别方法、装置、主控芯片、家电设备及介质
US11994937B2 (en) * 2022-03-08 2024-05-28 Dell Products L.P. Automated recovery mechanism from a system crash

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU665521B2 (en) * 1990-10-03 1996-01-11 Thinking Machines Corporation Parallel computer system
US5265207A (en) * 1990-10-03 1993-11-23 Thinking Machines Corporation Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US20060117274A1 (en) 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US20020152060A1 (en) 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
WO2003017099A1 (en) 2001-08-14 2003-02-27 Axis Systems, Inc. Vcd-on-demand system and method
DE60239475D1 (de) * 2001-08-22 2011-04-28 Tekelec Calabasas Verfahren zur Verbesserung der Ausnutzung einer Zeitmultiplex-Kommunikationsstrecke eines Signalisierungstransferpunktes, und entsprechender Signalisierungstransferpunkt
US8407528B2 (en) 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US8566645B2 (en) 2010-12-02 2013-10-22 Advanced Micro Devices, Inc. Debug state machine and processor including the same
US20120150474A1 (en) 2010-12-09 2012-06-14 Advanced Micro Devices, Inc. Debug state machine cross triggering
CN102073565B (zh) 2010-12-31 2014-02-19 华为技术有限公司 触发操作方法、多核分组调试方法、装置及系统

Also Published As

Publication number Publication date
US9208008B2 (en) 2015-12-08
US20150033082A1 (en) 2015-01-29
WO2015012993A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
TW201510727A (zh) 用於多晶片減少引腳交叉觸發以增強除錯體驗的方法和裝置
TWI403909B (zh) 主從式系統、主從式電腦系統以及用於在一主從式系統內傳達一中斷之方法
US9252969B2 (en) Method for transmitting data
JP2021170311A (ja) EtherCATマスタースレーブ統合ブリッジコントローラー及び制御方法
JP5260758B2 (ja) 汎用プロトコルエンジン
KR100981461B1 (ko) 통신 칩 및 메시지 관리자에 의한 통신 칩의 메시지 메모리의 데이터에 대한 액세스 제어 방법
JP2007513425A (ja) 多数の時間領域群を有するシステムでイベント群を時間順序付けする装置及び方法
JP2012523616A (ja) マルチプロセッサデータ処理システムにおけるデバッグシグナリング
JP2009535677A (ja) I2cクロックの生成方法及びシステム
JP2011154023A (ja) 試験装置および試験方法
KR20150024350A (ko) 링 토폴로지 스테이터스 인디케이션
TW201322689A (zh) 操作一通訊裝置的方法
CN116075815A (zh) 跨接口的批操作
TW201905676A (zh) 具有多個主資料通道之高頻寬聲音(SoundWire)主控器
JP5570556B2 (ja) Ioユニットと通信を行う数値制御装置
US20130258906A1 (en) Communication configuration and method for debugging, respectively for programming one or more participants of the communication configuration
US9071256B1 (en) Method for link resets in a SerDes system
CN103814367A (zh) 具有通过用于串行芯片间数据传输的物理传输路径的逻辑多通道通信的通信装置
JP2017168950A (ja) 通信制御装置、通信システム、および、通信制御方法
US7843966B2 (en) Communication system for flexible use in different application scenarios in automation technology
KR20130111391A (ko) 프로그래밍 가능 하드웨어를 구성하기 위한 통신 시스템 및 그 방법
CN114518902A (zh) 一种内存定序器系统和应用该系统的内存定序方法
US10027747B2 (en) Terminal communication apparatus, and distributed control system
JPWO2011087076A1 (ja) 計算機、並列計算機システム、同期方法、及びコンピュータプログラム
JP2008187711A (ja) 2つのエンティティ間の通信ゲートウェイ