TWI668574B - 服務品質序數修正之計算裝置、系統單晶片及方法 - Google Patents

服務品質序數修正之計算裝置、系統單晶片及方法 Download PDF

Info

Publication number
TWI668574B
TWI668574B TW106135463A TW106135463A TWI668574B TW I668574 B TWI668574 B TW I668574B TW 106135463 A TW106135463 A TW 106135463A TW 106135463 A TW106135463 A TW 106135463A TW I668574 B TWI668574 B TW I668574B
Authority
TW
Taiwan
Prior art keywords
ordinal
service
quality
profile
master
Prior art date
Application number
TW106135463A
Other languages
English (en)
Other versions
TW201820152A (zh
Inventor
考夏爾 桑海
湯瑪斯C 阿傑米安
羅伯特E 佩羅坤恩
Original Assignee
美商美國亞德諾半導體公司
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 美商美國亞德諾半導體公司 filed Critical 美商美國亞德諾半導體公司
Publication of TW201820152A publication Critical patent/TW201820152A/zh
Application granted granted Critical
Publication of TWI668574B publication Critical patent/TWI668574B/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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
    • 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
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/36Arbitration

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)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

於一實施例中,於此揭露一計算裝置,包含:一第一主控端,其具有一第一序數服務品質(QoS)設定檔;一第二主控端,其具有第二序數服務品質設定檔,其中,該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端;一多工互連,根據該序數服務品質設定檔優先將該第一主控端與該第二主控端通訊耦合至該從屬端;以及至少一邏輯元件,其包括至少一硬體邏輯元件,其提供一服務品質引擎以:確定該第一主控端經由該互連已啟動一從屬端操作;根據由需經提升之服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作;以及將該第一主控端提升至具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。

Description

服務品質序數修正之計算裝置、系統單晶片及方法
本發明所揭露之內容整體係關於計算領域,更具體而言,係關於但非限於用於服務品質序數修正之一系統與方法。
如一系統單晶片(system-on-a-chip,SoC)之一計算系統可具有複數個主控端,其等需存取系統資源,如L2記憶體(或複數個資源,如L2與L3記憶體)。一互連(interconnect)結構,例如一晶片網路(network-on-a-chip,NOC),係可將該等主控端耦合至該資源。各主控端係可經分配一優先級,其控制存取該晶片網路與該資源之優先級。
本發明之一實施例提供一種計算裝置,包含:一第一主控端,其具有一第一序數服務品質(quality of service,QoS)設定檔;一第二主控端,其具有一第二序數服務品質設定檔,其中該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端;一多工互連,其根據該等序數服務品質設定檔優先將該第一主控端與該第二主控端通訊耦合至該從屬端;以及一服務品質引擎,以:確定該第一主控端經由該互連啟動一從屬端操作;確定根據由需要經提升之服務品質之該第二主控端所提供之一服務品質準則完成該從屬 端操作;促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
本發明又一實施例提供一種系統單晶片(system-on-a-chip,SoC),包含:一第一主控端,其具有一第一序數服務品質(QoS)設定檔;一第二主控端,其具有一第二序數服務品質設定檔,其中該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端;一晶片網路(network on a chip,NOC),其通訊耦合該第一主控端與該第二主控端,該晶片網路包含一晶片網路控制器,其根據該等序數服務品質設定檔提供優先存取;以及一晶載服務品質引擎,以:確定該第一主控端經由該互連啟動一從屬端操作;確定根據由需要經提升之服務品質之該第二主控端所提供之一服務品質準則完成該從屬端操作;以及促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
本發明另一實施例提供一種提供用於一計算系統之服務品質(QoS)序數提升之方法,該計算系統具有一第一主控端,其具有一第一序數服務品質設定檔,一第二主控端,其具有一第二序數服務品質設定檔,與一多工互連,其用以根據該序數服務品質設定檔優先將該第一主控端與該第二主控端通訊耦合至一從屬端資源,包含:確定該第一主控端經由該互連啟動一從屬端操作;確定根據由需要經提升之服務品質之該第二主控端所提供之一服務品質準則完成該從屬端操作;以及促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
100‧‧‧數位訊號處理器核心
112‧‧‧算術邏輯單元與資料位址產生單元
114‧‧‧程式定序器
116‧‧‧程式記憶體
120‧‧‧記憶體
130‧‧‧計算陣列
140‧‧‧圖像處理單元
152-1‧‧‧計算單元
152-2‧‧‧計算單元
152-3‧‧‧計算單元
152-4‧‧‧計算單元
154-1‧‧‧暫存檔
154-2‧‧‧暫存檔
154-3‧‧‧暫存檔
154-4‧‧‧暫存檔
155-1‧‧‧通用暫存器
155-2‧‧‧通用暫存器
155-3‧‧‧通用暫存器
155-4‧‧‧通用暫存器
158-1‧‧‧專用暫存器
158-2‧‧‧專用暫存器
158-3‧‧‧專用暫存器
158-4‧‧‧專用暫存器
170-1‧‧‧主系統匯流排
170-2‧‧‧計算匯流排
170-3‧‧‧記憶體匯流排
200‧‧‧系統單晶片
210‧‧‧處理器
222‧‧‧直接記憶體存取控制器
250‧‧‧儲存器
260‧‧‧網路介面
270‧‧‧互連
272‧‧‧晶片網路控制器
304‧‧‧選擇器
318‧‧‧佇列
320‧‧‧L2記憶體
340-1‧‧‧服務品質設定檔
340-2‧‧‧服務品質設定檔
340-3‧‧‧服務品質設定檔
340-4‧‧‧服務品質設定檔
502‧‧‧服務品質引擎
504‧‧‧計時器
506‧‧‧帶外發訊器
508‧‧‧服務品質分析器
508‧‧‧帶外匯流排
558‧‧‧服務品質暫存器
600‧‧‧方法
602‧‧‧方塊
604‧‧‧方塊
606‧‧‧方塊
608‧‧‧方塊
透過以下詳細實施方式並參閱相關圖式可易於理解本發明所揭露之內容。特別強調,根據該產業之標準方法,各種特徵未必按比例繪製,其僅用於說明之目的。不論是否明確或暗示地顯示一比例,其僅提供一例示範例。於其他實施例中,以明確表達為由,可任意增加或減少各種特徵之尺寸。
圖1為根據本發明至少一實施例之一數位訊號處理器之一方塊圖。
圖2為根據本發明至少一實施例之一系統單晶片之一方塊圖。
圖3為根據本發明至少一實施例之一系統單晶片之複數個經選擇之元件之一方塊圖。
圖4為根據本發明至少一實施例之一系統單晶片之複數個經選擇之元件之一方塊圖。
圖5為根據本發明至少一實施例之系統單晶片之複數個經選擇之元件之一方塊圖。
圖6為根據本發明至少一實施例之一方法之一流程圖。
於一實施例中,於此揭露一計算裝置,包含:一第一主控端,其具有一第一序數服務品質(quality of service,QoS)設定檔(profile);一第二主控端,其具有第二序數服務品質設定檔,其中,該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端(slave);一多工互連(multiplexed interconnect),根據該序數服務品質設定檔之優先級將該第一主控端與該第二主控端通訊耦合至該從屬端;以及至少一邏輯元件,其包括至少一硬體邏輯元件,其提供一服務品質引擎(engine)以:確定該第一主控端已經由該互連啟動一從屬端操作;根據由需經提升之服務品質之該第二主控端所提供 之一服務品質準則,確定完成該從屬端操作;以及將該第一主控端提升至具有高於該第二序數服務品質設定檔次序之一第三序數服務品質設定檔。
以下所揭露之內容提供用以實施本發明所揭露內容之不同特徵之數個不同實施例或範例。以下所述之特定組件與排列方式之實施例係用以簡化本發明所揭露之內容。該些僅係為實施例並不用以限制。此外,本發明所揭露之內容可重複於各種實施例中之參考符號與/或字母。該重複係以簡化性與明確性為目的,本身並不指示於此所述各種實施例與/或設置方式間之關係。不同實施例具有不同優點,且對於任何實施例而言其未必需要特定優點。
於實施有系統單晶片(system-on-a-chip,SoC)之一範例中,一系統中具有數個主控端(master),其包括例如至少一中央處理單元(central processing unit,CPU)、數位訊號處理器(digital signal processors,DSPs)、圖像處理單元(graphical processing units,GPUs)、直接記憶體存取(direct memory access,DMA)與周邊設備,如高速串聯埠、乙太網路、通用串聯匯流排(USB)、感測器與機電介面,其等係以非限制性實施例方式舉例。該等主控端可通過如晶片網路(Network-on-a-chip,NOC)之一互連網路與從屬端及記憶體進行通訊。
基於設計考量,該等主控端具有不同服務品質之需求,例如對於延遲(latency)與帶寬(bandwidth)之要求。該晶片網路可提供多種不同交易屬性(transaction attributes)以滿足該些服務品質需求。例如,該些屬性可包括優先級賦值(priority assignments)、未處理交易調節(outstanding transaction regulation)、帶寬調節、最大延遲、優先等級(priority levels)、未處理交易數值或其他因素。各主控端可具有一指定服務品質設定檔,其為自身交易需求與優先級之合成。各種主控端之服務品質設定檔係為序數的(ordinal),使對於各 交易而言,晶片網路控制器必須決定當前取得存取該晶片網路優先權之主控端為何。
於傳統優先級架構中,係分配一單一號碼序數優先級至各主控端。例如,該中央處理單元其優先級為0(priority 0)、該數位訊號處理器其優先級為1(priority 1)、該圖像處理單元其優先級為2(priority 2)等。較高優先級之主控端必勝過較低優先級之主控端。雖該此等架構係與本發明說明書之教示完全相容,但其非為限制用途。亦可納入其他因素以增加「公正性」與「效率」,或以限制具有帶寬需求(bandwidth hungry)之主控端對該系統之影響。例如,一主控端可具有最小延遲要求,其可避免較高優先級之主控端獨佔該互連。若較低優先級之主控端已等待足夠長之存取時間,則其可暫時勝過較高優先級之主控端並獲得對該互連之存取。許多其他因素可影響優先級佇列交易仲裁、排序或流程控制。因此,當本說明書論及一序數服務品質設定檔時,該序數方面可能非為其通常所遵循之一簡單排序。相反地,一主控端之序數優先級可隨時間背景改變。如本說明書中所使用,該用語「序數服務品質設定檔(ordinal QoS profile)」應被廣義理解以包含任何優先級、佇列或決策結構(decision structure),其使一控制器決定可獲得一有限資源之存取之主控端為何。該「序數」方面(或換言之,該設定檔之「次序(order)」)可包括適用於一特定實施例之一靜態序數優先級或一動態、上下文(contextual)或瞬時序數優先級。
於本文中,其亦應理解該「提升(elevating)」或「促進(promoting)」一序數服務品質設定檔為非僅限以改變單一優先級號碼。相反地,此可包括任何動作,其將一主控端之請求於該佇列中向前移動,或其他確保或增加比起不 受提升或促進者能更快受到處理之可能性。於某些案例中需注意,提升或促進一主控端可透過降低或降級一不同主控端所完成。
服務品質設定檔之設計與實施方式可對一系統單晶片之系統級效能造成重大影響。例如,於某些現存系統中,服務品質設定檔之控制留駐於該晶片網路中,並給予某些主控端於初始化(initialization)或後續應用運行時間內對其進行程式設計之能力。
然而,不論於事前(priori)或於運行時間中,欲確定一複雜互連網路之一最佳或可接收之服務品質設定檔集合係具有一定困難。一系統亦可根據該系統之行為提供一機制,以於運行時間自動修正服務品質設定檔。
考量例如一系統單晶片,於其中至少一主控端為一數位訊號處理器核心以及至少一主控端為一直接記憶體存取(DMA)。該系統單晶片亦可包括一晶片網路與具多級之記憶體階層(memory hierarchy),如L1與L2。考量一應用情況,其中該數位訊號處理器核心係處理由該直接記憶體存取由一L2與L3記憶體傳輸至該核心L1記憶體之資料。
當該核心係等待直接記憶體存取資料轉移時,運行於該核心之應用軟體係嘗試使該時間最小化或消除,但因系統流量之動態特性,該軟體係受到該直接記憶體存取傳輸之非確定性行為之限制。因此,有時該核心正等待一直接記憶體存取傳輸完成,但其可能因其他系統流量而延滯。
不同主控端可具有不同延遲要求。例如,於一延遲敏感(latency-sensitive)主控端中,該主控端之效能係直接受到記憶體延遲影響,記憶體延遲愈長,則效能愈低。於一延遲關鍵(latency-critical)主控端中,係可對各單獨交易指定一最大可接受延遲,且若未達到該延遲,則會產生災難性故 障後果(如,一視訊串流中斷或該音頻中之點擊/彈出/暫停)。但只要滿足最小要求,則進一步減少延遲時可能無法再提升對於效能之改善。一帶寬方向梯度直方圖(hog)主控端係為一節點,其具有高寬帶要求與流程控制,意即所增加之延遲響應將不會造成重大故障。
此為一延遲敏感之主控端(如一數位訊號處理器核心)正等待一不同主控端(如一直接記憶體存取)之一非決定性操作完成之情形。為具體說明,一第一主控端(於此為該直接記憶體存取)具有一第一序數服務品質設定檔。一第二主控端(於此為該數位訊號處理器核心)具有一第二序數服務品質設定檔。該第二序數服務品質設定檔其次序係高於(或相反地,位於一較低整數值)該第二序數服務品質設定檔,例如,該數位訊號處理器具有優先級為1,而該直接記憶體存取具有優先級為3。同時,一圖像處理單元可具有一第三序數服務品質設定檔,於此案例中其優先級為2。
所得之結果為,因該數位訊號處理器需要來自具有優先級為3之直接記憶體存取之資料,因此優先級為1之該數位訊號處理器必須等待優先級為2之該圖像處理單元。
於此案例中,對於該直接記憶體存取「繼承」該數位訊號處理器之較高優先級,此係有其效益。於某些實施例中,因該直接記憶體存取之要求可能為較早,且解決相同排序之主控端間之競賽條件(race conditions)係利於最早者,此將足以確保優先於該圖像處理單元。有利地,此亦確保該直接記憶體存取不干擾該數位訊號處理器本身於此時需要執行之任何操作。
或者,不論要求時段為何,需要該直接記憶體存取比該圖像處理單元獲得絕對優先係為期望之目標。於此案例中,該直接記憶體存取可接收一 序數優先級為1或0,因此確保優先級係優於該直接記憶體存取或甚至優於該數位訊號處理器。
值得注意的是,一非負整數優先級標記僅係為可被修正以確保一請求得到來自一較高次序主控端「繼承」優先級之一服務品質設定檔中數個可能欄位(filed)之一實施例。一服務品質設定檔中之任何其他欄位可被修正以影響該期望優先級。例如,來自該主控端之請求之最大佇列大小(queue size)可被向下調整,甚至為零,以確保立即處理下一待定之請求。該主控端之最大可允許延遲亦可被向下調整,低至零,以確保達到該優先級。於另一實施例中,可使用如「ABSOLUTE_PRIORITY」之旗標。當設定該旗標時,不論其他服務品質設定檔因素(概念上地,獲得優先級為1.5之主控端,係低於所有優先級為1之主控端,但卻高於所有優先級為2之主控端)該主控端可比起其他相同次序之主控端優先接收優先級。因此,具一ABSOLUTE_PRIORITY旗標之優先級為0之組合可被用以迫使該互連於下一可用週期服務該主控端。許多其他服務品質因素可經調整,並意於落入本發明所揭露之範圍中。
於一通常案例中,該系統可稱包括一服務品質引擎,其具有數種邏輯功能,包括以下非限制性實施例:a.至少一主控端自動檢測條件之一能力,其將受益於該服務品質架構之調整,包括序數優先級提升,包括通知其他主控端需如此進行之選擇性能力。例如,一第一較低優先級主控端(如該直接記憶體存取)可對一第二較高優先級主控端發出其需要經提升之優先級以滿足服務品質參數之訊號; b.自動識別該第二主控端(如該數位訊號處理器)與該第一主控端(如該直接記憶體存取)間之相依性(dependency),並確定一較高次序主控端被迫等待一較低次序主控端,或該較低次序主控端適合繼承較高次序主控端之優先級之一能力;以及c.提升該第一主控端至一更高序數優先級之一能力。
該服務品質引擎可部分實施於該等主控端之一者中,如一主控端,其具有足以覆寫優先級(如該中央處理單元或數位訊號處理器)之系統特權,並可獲得經編碼為微代碼(microcode)指令之邏輯、一唯讀記憶體(ROM)中編碼於專用硬體中,或編碼於某些其他非暫態電腦可讀儲存媒介中之指令之幫助。於其他實施例中,該服務品質引擎可為一獨立硬體區塊,其監控該等主控端並執行所需之序數優先級提升。於此案例中,該服務品質引擎可經設計以具有實現序數特權提升所必需之所有特權。
有利地,於不對晶片網路本身進行任何改變之情況下,某些實施例可選擇性地達成序數優先級提升。此對於該晶片網路單獨設置為一「IP區塊」之實施例係為重要的。於半導體設計中,第三方可提供作為黑箱(black boxes)之IP區塊,且系統設計者於其配置與路由外之區塊具有微小控制或無任何控制。因此,於使用一黑箱晶片網路之實施例中亦可實現序數優先級之調整。
多種不同機制可被用以調整序數優先級。例如,序數優先級可由專用暫存器(registers)或緩衝器(buffers)所控制或調整。於此案例中,該原始服務品質設定檔係儲存於該緩衝器或暫存器中。當需要序數優先級提升時,該受影響之主控端之服務品質設定當可受到暫時性更改。於另一實施例中,提供可包括至少一導線(wire)之一帶外(out-of-band,OOB)訊號匯流排以發出 需要對一服務品質設定檔之一序數優先級提升或其他改變之訊號。於另一實施例中,可傳送一帶內調整訊號至該晶片網路。於另一實施例中,可觸發一中斷(interrupt)以通知該晶片網路一服務品質設定檔需受到改變。於另一實施例中,一主控端具有改變其自身服務品質設定檔之權限。服務品質設定檔之改變亦可僅應用於所論之主控端、系統中之其他主控端或該晶片網路本身。於另一實施例中,服務品質設定檔可包括至少一可程式化數值,其可由應用軟體所設定。於某些實施例中,該服務品質設定檔於下一傳輸起始前,可經重置為其預設值(default value)。為進一步擴展該傳訊機制,於此有許多不同方式以發出對該交易屬性修正之訊號。於另一實施例中,該第一主控端傳送一訊號至一觸發單元,其係觸發對該第二主控端中至少一服務品質設定檔暫存器之修正。新服務品質設定檔可留駐於該第二主控端本身(如為一組暫存器)中,或可為記憶體描述符(memory descriptor)之一部分,其加載用於一給定之資料傳輸以對使用者提供更大之應用控制。
該服務品質引擎之另一方面係邏輯性決定何時適當提供優先序數提升。此可包括如明確邏輯,其中該數位訊號處理器,舉例而言,於退出將導致一直接記憶體存取操作之指令後,可明確地提升該直接記憶體存取之序數優先級,其中時間點係易受影響,並將取決於直接記憶體存取對該晶片網路之存取。於另一實施例中,該服務品質引擎可包括獨立監控所有主控端之一探索式引擎(heuristic engine)。該服務品質可確定該數位訊號處理器已發出取決於該直接記憶體存取之一指令,且該指令之完成係處於未於可為該數位訊號處理器之服務品質設定檔之一部分之一延遲閾值內獲得滿足之危險(danger)中。於此案例中,於等待充足時間後(如最大延遲之¾),該服務品質引擎可立即提升該 直接記憶體存取之序數優先級,選擇性提升至一最大或其他最佳數值,以確保該數位訊號處理器之請求於該延遲閾值內能獲得滿足。後者之方法其具有對服務品質架構之調整可為最小化,且僅當一時序關鍵功能處於未獲滿足之危險時才進行之優點。於某些實施例中,使用者或程式設計人員對該架構可具有應用層級能見度(visibility),使該程式設計人員能將某些操作標記為時序關鍵,並選擇性地明確設置該些操作之延遲閾值,或甚至明確提升與一特定命令相關之直接記憶體存取之序數優先級。
用於序數服務品質提升之一系統與方法將更具體參酌所附之圖式進行描述。應注意的是,圖式中某些標號可為重複以指示一特定裝置或區塊於所有圖式中係完全或實質上相符。然而,其非意圖暗示所揭露之各種實施例之間任何特定關係。於某些實施例中,元件屬可由一特定之參考標號(「界面工具集」10)所參酌,而該屬之個別種類或實施例可由一帶連字符之標號(「第一特定界面工具集10-1」與「第二特定小部件10-2」)所參酌。
圖1為根據本發明之至少一實施例之一實施例數位訊號處理器核心100之一方塊示意圖。值得注意的是該數位訊號處理器核心100係提供作為一處理器類型之一非限制性實施例,且於說明書中所用之該用語「處理器」係意圖包含硬體、軟體或提供可程式化邏輯之韌體之任何組合,以非限制性實施例方式舉例,包括一微處理器、數位訊號處理器、現場可程式閘陣列、可程式邏輯陣列、特殊應用積體電路或虛擬機器處理器。該數位訊號處理器核心100可構成一較大「計算裝置」之一部分,以非限制性實施例方式舉例,其於各種實施例中可包括或可為一電腦、嵌入式電腦、嵌入式控制器、個人數位助理(PDA)、筆記型電腦、蜂巢式電話、網路電話、智慧型手機、平板電腦、手持計算機或 任何其他用於處理與計算資料之電子、微電子或微機電裝置之一部分。以明確性為由並以易於理解本發明所揭露之內容其新穎概念係已將圖1進行簡化。因此,附加特徵可加入該數位訊號處理器核心100中,且以下所述之某些特徵可於該數位訊號處理器核心100之其他實施例中經替代或消除。
該數位訊號處理器核心100可包括一控制單元110、一記憶體230與一計算陣列130。於一實施例中,該控制單元110與該計算陣列130組成一核心處理器,其可執行該數位訊號處理器核心100之計算與資料處理功能。該數位訊號處理器核心100之某些實施例可包括其他組件,如用於執行微控制器指令之一微控制器、一直接記憶體存取單元與至晶片外裝置之各種介面。此外,雖然該記憶體120於此係顯示為一單一邏輯區塊,其應理解該記憶體120可包括系統主記憶體、晶載或區域記憶體之各種層級、高速緩衝記憶體(cache)與/或其他揮發性或非揮發性記憶體技術。
該控制單元110能加快該數位訊號處理器核心100之程式執行。該控制單元110可包括一算術邏輯單元與資料位址產生(ALU-DAG)單元112、一程式定序器114與一區域程式記憶體116。該控制單元110亦可包括其他組件,如一指令高速緩衝記憶體、一計時器(timer)與一指令暫存器(instruction register)。於一實施例中,該算術邏輯單元與資料位址產生單元112支援通常目的整數運算與提供記憶體位址。例如,當資料係於該記憶體120與暫存器(如上所述該計算陣列130之暫存檔)之間傳輸時,該算術邏輯單元與資料位址產生單元112提供記憶體位址。該算術邏輯單元與資料位址產生單元112可對資料記憶體(例如該記憶體120)與/或該程式記憶體116提供位址。該程式定序器114對該程式記憶體116提供指令位址以用於指令擷取。該程式記憶體116儲存該數位訊號處理器核 心100實施以處理資料(如儲存於該記憶體120中之資料)之程式,並亦可儲存經處理之資料。於本說明書中所使用之「程式」,包括可操作以命令一處理器,如該數位訊號處理器核心100,以執行一特定任務之任何經排列之可執行指令集。該數位訊號處理器核心100可透過擷取該等指令實施該等程式,例如,透過由該記憶體120提取該等程式,並將其等載入該程式定序器114中,解碼該等指令,並提供經解碼之指令至處理元件PE以用於執行,或於該算術邏輯單元與資料位址產生單元112中原位執行。於一實施例中,程式可包括用於執行各種數位訊號處理器演算法之指令集,其包括透過於至少二處理元件PE上或於單一指令多重資料(single-instruction-multiple-data,SIMD)模式中以並行方式所執行之演算法,於該單一指令多重資料模式中,至少二處理元件執行由該程式定序器114所接收之相同指令用於不同資料元件上。單一指令多重資料係常用於例如較大資料陣列之迅速處理上,其係透過將陣列區分成n個子陣列,並允許n個處理元件分別處理各子陣列。
該記憶體120儲存欲由該數位訊號處理器核心100(資料記憶體)所之資料,由該數位訊號處理器核心100所實施以處理該資料(程式記憶體)之程式,或其等之組合。於某些實施例中,該記憶體120可具有一多組交叉記憶體(interleaved memory)結構,使該記憶體120包括記憶體組M1至Mn,其中n為該記憶體120之記憶體組總數。如一靜態隨機存取記憶體(static random-access memory,SRAM)、動態隨機存取記憶體(DRAM)、唯讀記憶體(ROM)、快閃記憶體或其他適當記憶體技術。於一實施例中,至少一記憶體組M為一獨立隨機存取記憶體。或者,該記憶體可表示為一多層記憶體結構,包括例如一快速L1記憶體、一中間L2記憶體與一慢速主記憶體,其中各記憶體之尺寸大小與 成本係隨著該記憶體之存取速度成反向變化。於另一實施例中,記憶體120可包括一快取或其他適當類型之記憶體。於某些案例中,亦可提供一直接記憶體存取控制器,以允許由該數位訊號處理器核心100至該記憶體120之直接記憶體存取作業。
為舉例說明,於此顯示三個匯流排(bus)170。如本說明書中所使用,一「匯流排」包括可操作以攜帶一計算裝置部件間或計算裝置間之資料之任何互連線、網路、連接、束(bundle)、單匯流排、多匯流排、交叉開關網路(crossbar network)、單級網路、多級網路或其他傳導媒體(conduction medium)。當有需要或適當時,該等匯流排170亦可包括適當控制器,如一記憶體管理單元(memory management unit,MMU)或相似物。於此實施例中,一主系統匯流排170-1係提供以將該數位訊號處理器核心100通訊耦合至其他系統組件,如透過圖2中更加詳細實施例所述。一計算匯流排170-2將該計算陣列130通訊耦合至該控制單元110。一記憶體匯流排170-3將該等處理元件PE通訊耦合至該記憶體120。應注意的是,該些使用僅透過非限制性實施例方式所揭露,且某些實施例可省略至少一前述匯流排,但其他實施例可使用額外或不同匯流排。
該控制單元110可經由該計算匯流排170-2發出指令與資料位址至該計算陣列130。該計算匯流排170-2傳輸該等址令與資料之位址至該計算陣列130之各種處理元件PE。該記憶體匯流排170-3可傳輸來自記憶體(如該記憶體120、該程式記憶體116、其他記憶體或其等之組合)之資料與/或指令,使該數位訊號處理器核心100中任何暫存器之內容可被傳輸至任何其他暫存器或任何記憶體位置,且該記憶體120可對該計算陣列130提供資料運算元(數值)。
於該所示實施例中,該計算陣列130包括四個處理元件PE1至PE4。於其他實施例中,該計算陣列130可包括零個或更多離散處理元件。該等處理元件PE執行數字處理,並於一實施例中可包括用於執行特定計算類型,如數位訊號處理器演算法之專用硬體。該等處理元件PE可獨立地並行操作,或作為一單一指令多重資料引擎。於現有實施例中,各處理元件PE可為一向量處理器(vector processor)。或者,該等處理元件PE可為純量處理器(scalar processor),或為純量處理器與向量處理器之組合。
該等處理元件PE可包括一個別計算單元(CU)152(152-1、152-2、152-3、152-4)。於所描繪實施例中,雖然於此揭露之內容中考量該等計算單元152為相異之實施例,但該等計算單元152可為相同。於此揭露之內容中進一步考量至少一處連元件PE不包括一計算單元152之配置方式。於現有實施例中,該等計算單元152各包括一算術邏輯單元(arithmetic logic unit,ALU)、一乘法累加器(multiplier-accumulator,MAC)、一移相器(shifter)、其他計算單元或其等之組合。一算術邏輯單元可執行算術與邏輯運算,如加、減、取消(negate)、增量(increment)、減量(decrement)、絕對值、AND、OR、EXCLUSIVE OR、NOT等邏輯、除法基元(divide primitive)、其他算術運算、其他邏輯運算或其等之組合。一實施例乘法累加器可執行乘法運算以及乘法與累加運算,如單循環乘法、乘法/加法、乘法/減法、其他運算或其等之組合。一移相器可執行邏輯與算數移位(shifts)、位元調處(bit manipulations)、正規化(normalization)、去正規化(denormalization)、導數指數運算、其他運算或其等之組合。各種算術運算、邏輯運算與其他運算可於定點與浮點格式上所執行。於各種實施例中,算術邏輯單元、乘法累加器與/或移相器包括與其等相關聯之暫存器。
該等處理元件PE各可包括一個別暫存檔154(154-1、154-2、154-3、154-4)。於所描繪實施例中,雖然於此揭露之內容中考量該等暫存檔154為相異之實施例,但該等暫存檔154可為相同。於此揭露之內容中進一步考量至少一處連元件PE不包括一暫存檔154之配置方式。該等暫存檔154包括傳輸該等處理元件PE與該記憶體匯流排170-3之間之資料並儲存所得之結果之暫存器。於現有實施例中,該等暫存檔154可包括一個別通用暫存器集155(155-1、155-2、155-3、155-4),其包括具有取決於數位訊號處理器核心100之設計要求之寬度之通用暫存器,如32位元通用暫存器、40位元通用暫存器、64位元通用暫存器、128位元通用暫存器、其他寬度通用暫存器或其等之組合。為用於以下討論之目的,該等通用暫存器155包括32位元通用暫存器。
於現有實施例中,該等暫存檔154亦可包括專用暫存器158(158-1、158-2、158-3、158-4)。特別地,可具有一服務品質設定檔暫存器。值得注意的是,該等專用暫存器158可為已適當用於特殊目的之通用暫存器,因此其不需包含特殊硬體。相反地,其「專用」係根據其本身作用所定義,意即,根據於此所揭露之方法提供服務品質序數提升中之本身作用。
於一實施例中,一專用暫存器158係被指定作為一服務品質設定檔暫存器。一較高優先級之主控端(例如,圖3之處理器或數位訊號處理器)可將一數值,例如指示已受分配一暫時提升服務品質設定檔之主控端為何,與代表該暫時提升服務品質設定檔之一數值寫入該專用暫存器158。值得注意的是,於一實施例中,該服務品質設定檔可為由0至n之一簡單序數整數,其中較小編號之數值具有較高之優先級。然而,此應被視為一非限制性實施例。確實,該服務品質設定檔可為一多維設定檔,其具有可影響排序之多個不同因素,如晶 片網路擁擠(congestion)、當前待處理請求之延遲、一最大可允許延遲、或其他可使一選擇器(如圖3之選擇器304)於多主控端之間進行選擇之因素。因此,於本說明書中所述之序數提升應理解為包括任何架構,其中不同主控端接收序數優先級,其包括於其中該優先級係為上下文的或其他可變之架構。
該數位訊號處理器核心100可執行各種平行運算(parallel operation)。例如,於一單一週期期間,處理元件PE可存取一指令(經由互連網路142)並存取來自記憶體(經由記憶體匯流排170-3)之N個資料運算元以用於同步處理。於單一指令多重資料模式中,該數位訊號處理器核心100可以並行方式處理多重資料流。例如,當處於單一指令多重資料模式時,於一單一週期中之該數位訊號處理器核心100可經由計算匯流排170-2發送單一指令至各處理元件PE或複數個處理元件PE;經由該記憶體匯流排170-3載入來自記憶體(該記憶體120、該程式記憶體116、其他記憶體或其等之組合)之N個資料集,各處理元件PE各具有一資料集(於一實施例中,各資料集包括二資料運算元);於處理元件PE中同步執行該單一指令;以及儲存來自該記憶體120中同步執行之資料結果。
圖2為根據本發明之至少一實施例之一系統單晶片200之一方塊示意圖。值得注意的是,該系統單晶片200於此僅係以例示方式所提供。於一通常案例中,該系統單晶片200可為任何適當之計算裝置。於各種實施例中,一「計算裝置」,以非限制性實施例方式舉例,可為或可包含,一電腦、工作站、伺服器、主機(mainframe)、虛擬機器(不論其係為模擬或位於一「裸機(bare-metal)」超管理器(hypervisor)上)、嵌入式電腦、嵌入式控制器、嵌入式感測器、個人數位助理、筆記型電腦、蜂巢式電話、網路電話、智慧型手機、平板電腦、 可轉換式平板電腦、計算設備、網路設備、接收器、可穿戴式電腦、手持計算機或任何其他用於處理與計算資料之電子、微電子或微機電裝置。
該系統單晶片200包括一處理器210,其經由一直接記憶體存取控制器222連接至一記憶體120。該系統單晶片200之其他組件包括一數位訊號處理器核心100、一圖像處理單元(GPU)140、儲存器250與一網路介面260。僅以例示方式提供此架構,並為非排他性與非限制性。此外,所揭露之各種部件僅係為邏輯劃分(logical division),且未必代表實體分離之硬體與/或軟體組件。例如,某些計算裝置於一單一實體記憶體裝置中提供一主記憶體220與該儲存器250,且於其他案例中,該記憶體220與/或該儲存器250係功能性分布跨越多個實體裝置。於虛擬機器或超管理器之案例中,一功能之所有或其部分可以運行於一虛擬化層體上之軟體或韌體形式提供,以提供所揭露之邏輯功能。於其他實施例中,如一網路介面260之一裝置可能僅提供必需用以執行其邏輯運算之最小硬體介面,並可依賴一軟體驅動器以提供額外必要之邏輯。因此,於此所揭露之各邏輯區塊係廣義地包括至少一邏輯元件,其係經配置並可操作用於提供該區塊經揭露之邏輯運算。如本說明書中所使用之「邏輯元件」可包括,硬體、外部硬體(數位、類比或混合訊號)、軟體、往復軟體、伺服器、驅動器、介面、組件、模組、演算法、感測器、組件、韌體、微代碼、可程式化邏輯,或可協調以達成一邏輯作業之物件。
於一實施例中,該處理器210係經由該直接記憶體存取控制器222通訊耦合至該記憶體220,但仍可能有其他記憶體架構,包括該記憶體220係經由一系統匯流排或某些其他匯流排與該處理器210進行通訊之一種架構。該處理器210可經由一互連270通訊耦合至其他裝置,該互連270例如可為一晶片網路或 任何其他適當匯流排。如本說明書中所使用之一「匯流排」包括,可操作以攜帶一計算裝置部件間或計算裝置間之資料、訊號或功率之任何有線或無線互連線、網路、連接、束、單匯流排、多匯流排、交叉開關網路、單級網路、多級網路或其他傳導媒體。應注意的是,該些用途僅透過非限制性實施例方式所揭露,且某些實施例可省略至少一前述匯流排,但其他實施例可使用額外或不同匯流排。
該互連270可由一晶片網路控制器272所控制,其可指派序數優先級至各主控端,亦可根據該優先級分配路由資料。
於各種實施例中,不論係由記憶體所載入或直接實施於硬體中,一「處理器」可包括可操作以執行指令之邏輯元件之任何組合,以非限制性實施例方式舉例,其包括一微處理器、數位訊號處理器、現場可程式閘陣列、圖像處理單元、可程式邏輯陣列、特殊應用積體電路或虛擬機器處理器。於某些架構中,可具有一多核心處理器,於此案例中,該處理器210適當地可僅視為一多核心處理器之一核心、或視為該整體多核心處理器。於某些實施例中,亦可具有用於特殊或支援功能之至少一共處理器(co-processor)。相似地,該數位訊號處理器核心100可為具單一指令多重資料能力之一單核心,或可為各具有單一指令多重資料能力之多核心。
該處理器210可經由該直接記憶體存取控制器222連接至於一直接記憶體存取配置中之記憶體220。為簡化所揭露之內容,該記憶體220係揭露為一單一邏輯區塊,但於一實體實施例中可包括,任何適當揮發性或非揮發性記憶體技術或包括例如資料方向暫存器(DDR)、隨機存取記憶體(RAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM、高速緩衝記憶 體)、L1或L2記憶體、晶載記憶體、暫存器、快閃記憶體、唯讀記憶體(ROM)、光學媒體、虛擬記憶體區域、磁性或磁帶記憶體或類似物之該等技術之至少一區塊。於某些實施例中,該記憶體220可包含一相對低速延遲揮發性主記憶體,而該儲存器250可包含一相對較高延遲非揮發性記憶體。然而,該記憶體220與該儲存器250未必為實體分離裝置,並於某些實施例中可簡要表示為一功能之邏輯分離。亦應注意的是,雖然直接記憶體存取係透過非限制性實施例方式所揭露,但直接記憶體存取非唯一與本說明書為一致之協定,仍有其他可用之記憶體架構。相似地,一L2記憶體320係以一獨立邏輯區塊之例示方式所表示。此係用以描述本發明說明書之某些特徵,包括該晶片網路控制器272根據一序數服務品質方案媒合存取各種主控端間之該L2記憶體320之特徵。然而,於一般案例中,該晶片網路控制器272可媒合存取共享於包括任何可定址裝置或緩衝器之各種主控端間之任何從屬資源。
該儲存器250可為該記憶體220之任何種類,或可為一獨立裝置。該儲存器250可包括至少一非暫態電腦可讀取媒體,以非限制性實施例方式舉例,包括一硬碟、外部儲存器、獨立磁碟冗餘陣列(redundant array of independent disks,RAID)、網路附加儲存器、光學儲存器、磁帶驅動器、備份系統、雲端儲存器或前述之任何組合。該儲存器250可為,或可包括一資料庫或數個資料庫或儲存於其他配置中之資料於其中,並可包括一操作軟體之儲存複本,如該操作系統222與一服務品質引擎502之軟體部分。仍有許多其他配置之可能,並皆為本發明之最廣義範圍所涵蓋。
可設置該網路介面260以將該系統單晶片200通訊耦合至一有線或無線網路。於本發明中所使用之一「網路」,可包括可操作以改變計算裝置 之間或其內之資料或資訊之任何通訊平台,以非限制性實施例方式舉例,包括如一特定區域網路、提供具有電子互動能力之計算裝置之一網際網路架構、一傳統電話系統(plain old telephone system,POTS)等可用以執行由操作人員所輔助或手動將資料輸入至電話或其他適當電子設備中之交易之計算裝置、提供一通訊介面或一系統中任兩節點間之交換之任何封包數據網路(packet data network)、或任何區域網路(local area network,LAN)、都會區域網路(metropolitan area network,MAN)、廣域網路(wide area network,WAN)、無線區域網路(wireless local area network,WLAN)、虛擬專用網路(virtual private network,VPN)、內部網路(intranet)、促進網路或電話環境中之通訊之任何其他適當架構或系統。
圖3為根據本發明至少一實施例之一系統單晶片200之經選擇元件之一方塊圖。於此所述之數個元件係經選擇以描述一優先級方案。於此案例中,所示之數個主控端包括一中央處理單元210、一數位訊號處理器100、一直接記憶體存取222與一圖像處理單元140。各該等係經由一晶片網路270通訊耦合至一從屬端,例如L2記憶體320。應注意的是,於此所提供之特定實施方式僅為一例示性與非限制性實施例。可使用任何主控端集,可以任何適當互連或匯流排取代該晶片網路270,並可以任何從屬裝置取代一晶片網路控制器272。
於此實施例中,一晶片網路控制器272係設置以控制一選擇器304,其於各種主控端之間進行選擇,並決定將於下一週期受服務之主控端。於某些案例中,該選擇器304或該晶片網路270可包括一佇列318,其保持複數個待定之請求,各請求可具有應受滿足之一相關服務品質設定檔或服務品質參數。於該晶片網路270變為可用之各週期中或各週期前,該晶片網路控制器272檢查 該佇列318中待定之請求,並決定下一受服務之請求。該選擇器304可自該佇列318提取該請求,並服務該請求。
於此實施例中,各主控端具有一服務品質設定檔340,意即該中央處理單元210具有服務品質設定檔340-1、該數位訊號處理器100具有服務品質設定檔340-2、該直接記憶體存取222具有服務品質設定檔340-3,以及該圖像處理單元具有服務品質設定檔340-4。該服務品質設定檔可儲存於或可經編碼於任何適當位置,或可透過任何適當方式進行儲存或編碼,如硬體編碼、韌體編碼、編碼於一暫存器中、編碼於一緩衝器中或於任何其他適當位置。
於此,各服務品質設定檔340包括一序數優先級數值。於此案例中,該序數優先級為一簡易非負數整數數值。應注意的是,許多其他服務品質因素可經編碼至該服務品質設定檔340,且於此所示之數值僅為一例示性實施例。於此案例中,該中央處理單元其序數優先級為0,該數位訊號處理器100其序數優先級為1,該直接記憶體存取其序數優先級為3,以及該圖像處理單元140其序數優先級為2。換言之,該中央處理單元210被認為是具有最高優先級之最高次序主控端。該數位訊號處理器100具有次高序數優先級。該圖像處理單元140具有次高優先級。該直接記憶體存取222具有所描繪數個主控端中之最低優先級。當然,仍可能有其他優先級架構,於此所示僅為一非限制性實施例。
其他方面亦為相同,該中央處理單元210對該晶片網路270具有第一存取。該數位訊號處理器100對該晶片網路270具有第二存取。該圖像處理單元對該晶片網路270具有第三存取。該直接記憶體存取222對該晶片網路具有第四存取。然而,於該佇列318中未必為相同。例如,特別是若該直接記憶體存取222具有具一最大可接受延遲之一服務品質設定檔,且該延遲係處於未被滿足之 危險中,則來自該直接記憶體存取222之一極為老舊佇列請求可比來自該中央處理單元210之一極新請求獲得優先佇列(priority queueing)。許多其他服務品質因素亦可對由該晶片網路控制器272所為之佇列決定產生作用。
圖4為根據本發明至少一實施例之一系統單晶片200之經選擇元件之一方塊圖。該圖式描述一序數優先級提升。根據於此所述之方法,其決定該直接記憶體存取222需要一短暫序數優先級提升,例如至優先級為0。因此,該直接記憶體存取222係經提升至優先級為0,使該中央處理單為210可接收其需繼續進行之資料,例如用於一具時效性之操作。於某些案例中,該優先級提升係於事前作成,使當該請求佇列於該佇列318中時,其已具有該經提升之優先級。於其他實施例中,優先級係於存在事實(例如當該中央處理單元210之一服務品質度量係處於未被滿足之危險中時)後受到提升。於該案例中,一服務品質引擎需要通知該經提升優先級之該晶片網路控制器272,使該請求能受到即時服務。
圖5為根據本發明至少一實施例之一系統單晶片200之經選擇元件之一方塊圖。於此實施例中,係顯示一服務品質引擎502。該服務品質引擎502可包括指令,例如微代碼或唯讀記憶體指令,其於一非限制性實施例中可由該中央處理單元210(或者該數位訊號處理器100)所執行。應注意的是,於某些實施例中,可設有一單一服務品質引擎502,而於其他實施例中,各主控端可具有其自身完整或部分服務品質引擎502,且於其他實施例中,功能可被區分於一專用服務品質引擎502與各種控端服務品質引擎之間。
於此實施例中,該服務品質引擎502包括數個邏輯區塊,其等於此係定義為邏輯功能而非特殊或離散硬體單元。
該等包括:
a.服務品質暫存器558:分配用於保持各種主控端之服務品質數值之專用暫存器。
b.計時器504:一計時器,其用以分析自發出一特定請求後所經過之時間。 此可用以分析來自一較高序數主控端之一特定請求,可能因其正等待一較低序數主控端,是否處於該可接受服務品質極限內未被服務之危險中。
c.服務品質分析器502可經設置以自動檢測將受益於服務品質設定檔方案之調整之條件,包括序數優先級提升,其包括通知該等主控端需如此進行之可選能力。該服務品質分析器508亦可經設置以自動識別該第二主控端(如該數位訊號處理器)與該第一主控端(如該直接記憶體存取)之間之相依性(dependency),並決定一較高排序主控端被迫等待一較低排序主控端,或該較低排序主控端適合繼承較高排序主控端之優先級。
d.帶外發訊器506:假使該服務品質引擎502無法於內部(例如於主控端之間)處理服務品質序數優先級提升,該帶外發訊器506可經由帶外匯流排508提供訊號至該晶片網路270。係提供一帶外發訊做為一實施例,但亦可使用其他機制,例如帶內發訊或中斷。
該服務品質引擎502可部分實施於該等主控端中之一者,例如一主控端,其具有足以覆寫優先級(如,中央處理單元210或數位訊號處理器100)之系統特權,並可由經編碼為微代碼指令、一唯讀記憶體中之指令、編碼於特殊用途硬體中或編碼於某些其他非暫態電腦可讀取儲存媒體中之邏輯所輔助。於其他實施例中,該服務品質引擎502可為一獨立硬體區塊,其監控該等主控端 並執行所需之序數優先級提升。於此案例中,該服務品質硬體引擎可經設計以具有影響序數優先級提升所必要之所有特權。
可使用多種不同機制調整序數優先級。例如,序數優先級可由服務品質暫存器558或緩衝器所控制或調整。於此案例中,該原始服務品質設定檔係儲存於該緩衝器或暫存器中。當需要序數優先級提升時,該受影響主控端之服務品質設定檔可被暫時修正。於另一實施例中,可包括至少一導線之一帶外訊號匯流排508可經設置以發出需要對一服務品質設定檔之一序數優先級提升或其他改變之訊號。於另一實施例中,一帶內調整訊號可被傳送至該晶片網路。於另一實施例中,一中斷可經觸發以通知該晶片網路需要一服務品質設定檔之改變。於另一實施例中,一主控端可具有權限以改變其自身服務品質設定檔。服務品質設定檔改變亦可僅應用於所述主控端、該系統中之其他主控端或該晶片網路本身。於另一實施例中,服務品質設定檔可包括由應用軟體所設定之至少一可程式化數值。於某些實施例中,該服務品質設定檔於下一傳輸起始前可經重置為其預設值。為進一步擴展該訊號機制,於此仍有許多其他方式以發出對該交易屬性修正之訊號。於另一實施例中,該第一主控端可發出一訊號至一觸發單元,其觸發對該第二主控端中至少一服務品質設定檔暫存器之修正。新服務品質設定檔可留駐於該第二主控端本身(如為一組暫存器)中,或可為記憶體描述符之一部分,其加載用於一給定之資料傳輸以對使用者提供更大之應用控制。
一服務品質分析器508可經設置以判斷提供序數優先級提升之適當時間點為何。此可包括,例如外顯(explicit)邏輯,其中數位訊號處理器100例如,可於提取將導致一直接記憶體存取操作之一指令後,明顯提升該直接記 憶體存取222之序數優先級,其中時間係具時效性並將取決於直接記憶體存取對該晶片網路270之存取。於另一實施例中,該服務品質引擎508可包括獨立監控所有主控端之一試探引擎。該服務品質引擎508可判斷該數位訊號處理器100已發出取決於該直接記憶體存取222之一指令,且該指令之完成係處於未於可為該數位訊號處理器100之服務品質設定檔之一部分之一延遲閾值內獲得滿足之危險中。於此案例中,於等待充足時間後(如最大延遲之¾),該服務品質引擎508可立即提升該直接記憶體存取222之序數優先級,選擇性至一最大或其他最佳數值,以確保該數位訊號處理器之請求於該延遲閾值內獲得滿足。後者之方法其具有對該服務品質架構之調整可為最小化,且僅當一時序關鍵功能處於未獲滿足之危險時才進行之優點。於某些實施例中,使用者或程式設計人員對該架構可具有應用層級能見度,使該程式設計人員能將某些操作標記為時序關鍵,並選擇性地明確設置該些操作之延遲閾值,或甚至明確提升與一特定命令相關之直接記憶體存取222之序數優先級。
於一實施例中,該服務品質引擎502係可操作以執行於本發明中所述之電腦實施方法。該服務品質引擎502可包括至少一有形非暫態電腦可讀取媒體,其具有儲存於其中之可執行指令,其可操作以指示一處理器提供一服務品質引擎502。如本發明中所使用之一「引擎」,包括至少一相似或非相似種類之邏輯元件之任何組合,其等可操作用於並可經設置以執行由該引擎所提供之至少一方法。因此,該服務品質引擎502可包含設置以提供本發明中所揭露之方法之至少一邏輯元件。於某些案例中,該服務品質引擎502可包括一特殊積體電路或硬體電路元件,其係經設計以執行一方法或其一部分,並亦可包括可操作以指示一處理器執行該方法之軟體或微代碼指令。於某些案例中,該服務品質 引擎502可作為一常駐程式(daemon)處理運行。一「常駐程式」可包括可執行指令之任何程式或序列,不論是否實施於硬體、軟體、韌體或其等之任何組合中,其等係運行作為一背景程序、一常駐程式(terminate-and-stay-resident)、一服務、系統延伸、控制板(control panel)、開機程序、基本輸入輸出系統次常式(BIOS subroutine)、不需使用者直接互動即可操作之任何相似程式。於某些實施例中,常駐程式程序可以一「驅動空間」中、或於一保護環(protection ring)架構中之環0、1或2中之經提升特權運行。亦應注意的是,該服務品質引擎502亦可包括其他硬體與軟體,以非限制性實施例方式舉例,其包括組態檔案(configuration file)、註冊登錄(registry entries),與交互或用戶模式軟體。
於一實施例中,該服務品質引擎502包括儲存於一非暫態媒體之可執行指令,該非暫態媒體為可操作以執行根據本發明之一方法。除編碼軟體指令之一媒體外,該非暫態媒體可明確包括硬體編碼邏輯或韌體。於一適當時間點,例如於啟動該系統單晶片200後,或根據來自該操作系統或使用者之一命令,該處理器可提取來自該儲存器之指令之一複本,並將其載入至記憶體中。該處理器可重複執行該服務品質引擎502之指令,以提供該所需之方法。
圖6為根據本發明至少一實施例提供序數服務品質優先級提升之一方法600之一流程圖。此方法可由該服務品質引擎502所執行。
於方塊602中,該服務品質引擎502檢測一第一主控端啟動一從屬存取操作,如該直接記憶體存取222經由該網路晶片270存取該L2記憶體322。應注意的是,此「檢測作業」之形式係可以一獨立服務品質引擎502檢測該操作,或採用紀錄該操作之一主控端內部之一服務品質引擎502(或其一部分)。應注 意的是,此可為一事前通知,或於檢測一條件後,例如一操作係處於未於一服務品質極限內完成之危險中時。
於方塊604中,該服務品質引擎502確定一第二主控端已分配工作至該第一主控端。例如,該數位訊號處理器100可能已發出要求該直接記憶體存取222存取該晶片網路之一記憶體請求,並於其可繼續進行其本身操作前等待該結果。
於方塊606中,該服務品質引擎502確定該受分配之工作需要一經提升之序數優先級或其他服務品質參數。此可能為,例如因該第二主控端於其可繼續進行之前係等待該第一主控端之結果。
於方塊608中,該服務品質引擎502變更至少一服務品質參數,如一序數優先級或影響序數優先級之至少一因素。此有效「促進」該第一主控端,獲得用於晶片網路存取目的之一較高次序,或可有效使該第一主控端「繼承」該第二主控端之優先級,使其可及時完成其任務。
應注意的是,如上透過參閱圖式所述之活動係可應用至任何積體電路,其涉及訊號處理(例如,手勢訊號處理),特別是該些可執行特殊軟體程式或演算法,其中一部分者係與處理數位化即時資料有關。某些實施例涉及多數位訊號處理器訊號處理、浮點處理、訊號/控制處理、固定功能處理、微控制器應用等。於某些內文中,於此所述之特徵可應用至醫療系統、科學儀器、無線與有線通訊、雷達、工業處理控制(industrial process control)、視聽設備、電流感測、儀表(可為高度精確)、業餘無線電(amateur radio)、家庭自動化、「物聯網(internet of things)」與其他數位處理基底系統。此外,如上所述之某些實施例可用於醫學成像、病患監控、醫療儀器與家庭醫療保健之訊號處理技 術。此可包括肺部(pulmonary)監測器、加速儀(accelerometer)、心率監測器、心律調節器(pacemaker)等。其他應用可涉及安全系統之汽車技術(例如,穩定性控制系統、輔助駕駛系統、煞車系統、娛樂資訊與任何種類之內部應用)。進一步,動力傳動系統(例如,混合動力電動車)於電池監控、控制系統、報告控制、維修保養上使用高精密度資料轉換產品。於其他實施例情境中,本發明所揭露之技術可應用於產業市場上,其包括有助於驅動生產力、能源效率與可信度之程序控制系統。於消費性應用中,上述訊號處理電路之技術可用於影像處理、自動對焦與影響穩定(例如,用於數位相機、攝錄影機等)。其他消費性應用可包括用於家庭劇院系統、DVD錄影機與高畫質電視之視聽處理器。其他消費性應用可與先進觸控螢幕控制器(例如,任何類型之可攜式媒體裝置)有關。因此,該等技術可易於成為智慧手機、平板電腦、安全系統、個人電腦、遊戲技術、虛擬實境、模擬訓練等之部分。僅以例示性與非限制性實施例方式提供前述之內容。其應該理解,本發明之技術可廣泛應用更廣義技術領域上。
如前所概述數個實施例之技術特徵使該技術領域之通常知識者能更佳理解本發明所揭露之內涵。應當理解,本發明所屬技術領域之通常知識者能輕易基於本發明所揭露之內容設計或修正用於執行相同目的與/或達到於此所引進實施例之相同優點之其他其它程序與結構。所屬技術領域之通常知識者亦可理解此等均等構造係不脫離本發明所揭露之精神與範圍,並於不脫離本發明之精神與範圍下,其可進行各種改變、置換與變更。
本發明所揭露之特定實施例可包括一系統單晶片、數位訊號處理器、中央處理單元或類似封裝。一系統單晶片表示一積體電路(IC),其整合一電腦或其他電子系統之組件於一單晶片中。其包含數位、類比、混合訊號與 射頻功能:其等均可設置於一單晶片基板上。其他實施例可包括一多晶片模組(multi-chip-module,MCM),其具有位於一單電子封裝內並設置以透過該電子封裝彼此緊密交互作用之複數個晶片。於各種其他實施例中,該數位訊號處理功能性可實施於特殊應用積體電路(ASICs)、現場可程式閘陣列(FPGAs)與其他半導體晶片中之至少一矽核中。
於某一實施例實施例中,於此概述之處理活動之至少某些部分亦可實施於軟體中。於某些實施例中,該些特徵之至少一者可於設置於所揭露圖式之元件外部之硬體中實施,或以任何適當的方式合併以達到所欲之功能性。各種組件可包括可進行協調以達到如此所概述之操作之軟體(或往復軟體)。於其他實施例中,該些元件可包括任何適當演算法、硬體、軟體、組件、模組、介面或促進其等操作之物件。
此外,可移除或合併與所述處理器有關之某些組件。於一通常案例中,於圖式中所描繪之排列於其所表示中可能更合乎邏輯,其中一實體架構可包括各種排列、組合與/或該等元件之混合。必須注意的是,有無數個可能之設計配置可用以達到於此所概述之操作目標。因此,相關之基礎建設具有無數替代排列、設計選擇、裝置可能性、硬體配置方式、軟體實施方式、設備選項等。
任何經適當配置之處理器組件可執行與該資料有關之任何類型之指令,以達到於此所詳細描述之操作。於此所揭露之任何處理器可將一元件或一物品(例如資料)由一狀態或事物轉換為另一狀態或事物。於另一實施例中,於此概述之某些活動可以固定邏輯或可程式化邏輯(例如,由一處理器所執行之軟體與/電腦指令)所實施,且於此所識別之元件可為一可程式化處理器 之某些類型、可程式化數位邏輯(例如,一現場可程式閘陣列(FPGA)、一可抹除可程式化唯讀記憶體(EPROM)、一電子可抹除可程式化唯讀記憶體(electrically erasable programmable read only memory,EEPROM)、包括數位邏輯之一特殊應用積體電路(ASIC)、軟體、代碼、電子指令、快閃記憶體、光學磁碟、唯讀式光碟(CD-ROMs)、唯讀式DVD光碟機(DVD ROMs)、磁性或光學卡、適用於儲存電子指令之其他類型之機器可讀媒體,或其等之任何適當組合。於操作中,處理器可將資訊儲存於任何適當類型之非暫態儲存媒體(例如,隨機存取記憶體(RAM)、唯讀記憶體(ROM)、現場可程式閘陣列(FPGA)、可抹除可程式化唯讀記憶體(EPROM)、電子可抹除可程式化唯讀記憶體(EEPROM)等)、軟體、硬體,或任何其他適當組件、裝置、元件或適當並根據特定需求之物品中。進一步,根據特定需求與實施方式,經追蹤、傳送、接收或儲存於一處理器中之資訊可提供至任何資料庫、暫存器、表、高速緩衝記憶體、佇列、控制清單或儲存結構中,上述均可於任何適當時框(timeframe)中參閱。於此所述之任何記憶體項目應理解為其被包含於廣義用語「記憶體」中。相似地,於此所述任何可能之處理元件、模組與機器應理解為其等被包含於廣義用語「微處理器」、「數位訊號處理器」或「處理器」中。更進一步,於各種實施例中,於此所述之該等處理器、記憶體、網路卡、匯流排、儲存裝置、相關周邊,與其他硬體元件可由一處理器、記憶體,與其他由軟體或韌體所配置之相關裝置所實施,以模擬或虛擬化該等硬體元件之功能。
實施於此所述之所有或部分功能性之電腦程式邏輯係以各種形式實施,包括但不限於,一原始碼形式、一電腦可執行形式與各種中間形式(例如,由一組譯器、編譯器、鏈接器或定位器所產生)。原始碼包括以各種程式 語言所實施之一系列電腦程式指令,例如一目標碼(object code)、一組合語言(assembly language)或一高階語言(high-level language),例如用於各種操作系統或操作環境之OpenCL、C、C++、JAVA或HTML。該原始碼可定義並使用各種資料結構與通訊訊息。該原始碼可為一電腦可執行形式(例如,經由一解譯器(interpreter)),或該原始碼可經轉換(如,經由一翻譯器、組譯器或編譯器)成一電腦可執行形式。
於上所述之實施例中,任何電容器、緩衝器、圖像元件、互連板、時鐘、資料方向暫存器(DDRs)、除法器、感應器、電阻器、放大器、開關、數位核心、電晶體與/或其他組件可經取代、替代或修正以符合特定電路系統需求。此外,應注意的是,互補電子裝置、硬體、非暫態軟體等之用途提供用於實施本發明所揭露內容之教示之一同等可行選項。
圖式之任何數量之電子電路可實施於一相關聯電子裝置之一板體上。該板體可為一通用電路板,其可包含該電子裝置之內部電子系統之各種組件,並進一步提供其他周邊設備之連接器。更具體而言,該板體可提供電連接,該系統之其他組件可透過該電連接進行電通訊。任何適當處理器(包括數位訊號處理器、微處理器、支援晶片組等)、記憶體元件等根據特定配置需求、處理要求、電腦設計等可適當耦合至該基板。其他組件例如外部儲存器、附加感測器、用於聲頻/視訊播放之控制器與周邊設備裝置可作為插入卡經由電纜貼附至該板體,或整合至該板體中。於另一實施例實施例中,圖式之電子電路可實施作為獨立模組(例如,具有設置以執行特定應用或功能之相關組件與電路系統之一裝置),或實施作為插入模組應用至電子裝置之特定硬體。
應注意的是,於此所提供之數個實施例,交互作用可以二個、三個、四個或更多組件表示。然而,此僅以明確表達與例示為目的。應當理解,該系統可以任何適當方式所合併。伴隨相似設計替代方案,圖式中所示之任何組件、模組與元件中可以各種可能之配置方式所組合,所有配置方式皆明確落入本發明之廣義範疇內。於某些案例中,透過僅參閱有限數量之電子元件可輕易描述一組給定流程之至少一功能性。應當理解,圖式中之電子電路與其教示係易於擴充,並可容納大量組件,以及更複雜/精密之排列與配置方式。因此,於此所提供之實施例不應對潛在應用至無數其他架構之電子電路之範圍進行限制或禁止其廣義之教示。
透過例示方式,於此所揭露係為一計算裝置,包含:一第一主控端,其具有一第一序數服務品質設定檔;一第二主控端,其具有一第二序數服務品質設定檔,其中,該第二序數服務品質設定檔於次序上係高於該第一服務品質設定檔;一從屬端;一多工互連,其根據該第一序數服務品質設定檔與該第二序數服務品質設定檔將該第一主控端與該第二主控端通訊耦合至該從屬端;以及至少一邏輯元件,其包括至少一硬體邏輯元件,其包含一服務品質引擎以:確定該第一主控端經由該互連啟動一從屬端操作;根據由需經提升之服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作;以及促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
於此進一步揭露一實施例,其中該第三序數服務品質設定檔其次序係與該第二服務品質設定檔相同。
於此進一步揭露一實施例,其中該第三序數服務品質設定檔係高於該第一序數服務品質設定檔一次序,並低於該第二序數服務品質設定檔一次序。
於此進一步揭露一實施例,其中根據由需經提升之服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作包含,確定該從屬端操作處於未於一期限內完成之危險中。
於此進一步揭露一實施例,其中該期限係由該第二主控端所提供。
於此進一步揭露一實施例,其中該期限係選自由數個處理器週期、一固定時窗或一立即觸發器所組成之群組。
於此進一步揭露一實施例,其中促進該第一主控端獲得該第三序數服務品質設定檔包含,該第二主控端明確將該第三序數服務品質設定檔分配至該第一主控端。
於此進一步揭露一實施例,其中將該第三序數服務品質設定檔分配至該第一主控端包含,通知該第三序數服務品質設定檔之互連。
於此進一步揭露一實施例,其中通知該互連包含,經由一帶外匯流排提供一訊號。
於此進一步揭露一實施例,其中通知該互連包含,寫入至一暫存器。
於此進一步揭露一實施例,其中通知該互連包含,觸發一中斷。
於此進一步揭露系統單晶片之一實施例,包含:一第一主控端,其具有一第一序數服務品質設定檔;一第二主控端,其具有一第二序數服務品 質設定檔,其中該第二服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端;通訊耦合該第一主控端與該第二主控端之一晶片網路,該晶片網路包含,根據該第一序數服務品質設定檔與該第二序數服務品質設定檔提供優先存取之一晶片網路控制器;以及一晶載服務品質引擎:確定該第一主控端經由該互連啟動一從屬端操作;根據由需經提升服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作;以及促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
於此進一步揭露一實施例,其中根據由需經提升服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作包含,確定該從屬端操作處於未於一期限內完成之危險中。
於此進一步揭露一實施例,其中該第二主控端係明確將該第三序數服務品質設定檔分配至該第一主控端。
於此進一步揭露一實施例,進一步包含,接收該第三服務品質設定檔之一服務品質暫存器。
於此進一步揭露一種提供用於一計算系統之服務品質序數提升之一方法之實施例,該計算系統具有一第一主控端,其具有一第一序數服務品質設定檔;一第二主控端,其具有一第二序數服務品質設定檔,與一多工互連,其根據該序數服務品質設定檔優先將第一主控端與該第二主控端通訊耦合至一從屬端資源;包含:確定該第一主控端經由該互連啟動一從屬端操作;根據由需經提升服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作;以及促進該第一主控端獲得具有高於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
於此進一步揭露一實施例,其中該第三序數服務品質設定檔其次序係與該第二服務品質設定檔相同。
於此進一步揭露一實施例,其中該第三序數服務品質設定檔係高於該第一序數服務品質設定檔一次序,並低於該第二序數服務品質設定檔一次序。
於此進一步揭露一實施例,其中根據由需經提升服務品質之該第二主控端所提供之一服務品質準則,確定完成該從屬端操作包含,確定該從屬端操作處於未於一期限內完成之危險中。
於此進一步揭露一實施例,其中促進該第一主控端獲得該第三序數服務品質設定檔包含,該第二主控端明確將該第三序數服務品質設定檔分配至該第一主控端。
於此進一步揭露一種提供任何前述實施例之服務品質引擎之方法之一實施例。
於此進一步揭露包含用以執行該方法之手段之一裝置之一實施例。
於此進一步揭露一實施例,其中該手段包含一系統單晶片。
可向該所屬技術領域通常知識者確定其他多種改變、替代、變化、變更與修改,且發明所揭露之內容係意圖包含所有落入本發明申請專利範圍內之該等改變、替代、變化、變更與修改。為協助美國專利商標局(United States Patent and Trademark Office,USPTO),此外,任何讀者對於本申請案中所公告之專利,於申請專利範圍之解釋上,申請人希望注意到的是,申請人:(a)除非該用語「手段用於」或「步驟用於」於特定申請專利範圍中特別使用,因其 存在於申請日,不意圖援引35 U.S.C第112條第(f)款之規定;(b)不意圖透過本說明書中之任何聲明以其他非反映於申請專利中之任何方式限制本發明所揭露之內容。

Claims (19)

  1. 一種計算裝置,包含:一第一主控端,其具有一第一序數服務品質(quality of service,QoS)設定檔;一第二主控端,其具有一第二序數服務品質設定檔,其中該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端;一多工互連,其根據該等序數服務品質設定檔優先將該第一主控端與該第二主控端通訊耦合至該從屬端;以及一服務品質引擎,以:確定該第一主控端經由該互連啟動一從屬端操作;接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級;促進該第一主控端獲得具有高於或等於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
  2. 如請求項1所述之計算裝置,其中該第三序數服務品質設定檔其次序係與該第二序數服務品質設定檔相同。
  3. 如請求項1所述之計算裝置,其中該第三序數服務品質設定檔係高於該第一序數服務品質設定檔一次序,並低於該第二序數服務品質設定檔一次序。
  4. 如請求項1所述之計算裝置,其中接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級的步驟,包含確定該從屬端操作處於未於一期限內完成之危險。
  5. 如請求項4所述之計算裝置,其中該期限係由該第二主控端所提供。
  6. 如請求項4所述之計算裝置,其中該期限係選自由數個處理器週期、一固定時窗或一立即觸發器所組成之群組。
  7. 如請求項1所述之計算裝置,其中該訊息包含給該第三序數服務品質設定檔之互連之一通知。
  8. 如請求項1所述之計算裝置,其中該訊息包含經由一帶外匯流排的一訊號。
  9. 如請求項1所述之計算裝置,其中該訊息包含寫入至一暫存器的一數值。
  10. 如請求項1所述之計算裝置,其中該訊息包含一中斷。
  11. 如請求項1所述之計算裝置,其中該訊息包含同時提供一訊號與該第二序數服務品質設定檔所應用之一交易。
  12. 如請求項1所述之計算裝置,其中該訊息包含給該從屬端之一通知。
  13. 一種系統單晶片(system-on-a-chip,SoC),包含:一第一主控端,其具有一第一序數服務品質(QoS)設定檔;一第二主控端,其具有一第二序數服務品質設定檔,其中該第二序數服務品質設定檔於次序上係高於該第一序數服務品質設定檔;一從屬端; 一晶片網路(network on a chip,NOC),其通訊耦合該第一主控端與該第二主控端,該晶片網路包含一晶片網路控制器,其根據該等序數服務品質設定檔提供優先存取;以及一晶載(on-chip)服務品質引擎,以:確定該第一主控端經由該互連啟動一從屬端操作;接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級;以及促進該第一主控端獲得具有高於或等於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
  14. 如請求項13所述之系統單晶片,其中接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級的步驟,包含確定該從屬端操作處於未於一期限內完成之危險。
  15. 如請求項13所述之系統單晶片,進一步包含一服務品質暫存器,其係用以接收該第三序數服務品質設定檔。
  16. 一種提供用於一計算系統之服務品質(QoS)序數提升之方法,該計算系統具有一第一主控端,其具有一第一序數服務品質設定檔,一第二主控端,其具有一第二序數服務品質設定檔,與一多工互連,其用以根據該等序數服務品質設定檔優先將該第一主控端與該第二主控端通訊耦合至一從屬端資源,包含:確定該第一主控端經由該互連啟動一從屬端操作;接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級;以及 促進該第一主控端獲得具有高於或等於該第二序數服務品質設定檔一次序之一第三序數服務品質設定檔。
  17. 如請求項16所述之用於一計算系統提供服務品質序數提升之方法,其中該第三序數服務品質設定檔其次序係與該第二序數服務品質設定檔相同。
  18. 如請求項16所述之用於一計算系統提供服務品質序數提升之方法,其中該第三序數服務品質設定檔係高於該第一序數服務品質設定檔一次序,並低於該第二序數服務品質設定檔一次序。
  19. 如請求項16所述之用於一計算系統提供服務品質序數提升之方法,其中接收來自於該第二主控端之一訊息以使得該第一主控端繼承該第二主控端之優先級的步驟,包含確定該從屬端操作處於未於一期限內完成之危險。
TW106135463A 2016-10-18 2017-10-17 服務品質序數修正之計算裝置、系統單晶片及方法 TWI668574B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/297,115 US10223312B2 (en) 2016-10-18 2016-10-18 Quality of service ordinal modification
US15/297,115 2016-10-18

Publications (2)

Publication Number Publication Date
TW201820152A TW201820152A (zh) 2018-06-01
TWI668574B true TWI668574B (zh) 2019-08-11

Family

ID=61765465

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106135463A TWI668574B (zh) 2016-10-18 2017-10-17 服務品質序數修正之計算裝置、系統單晶片及方法

Country Status (4)

Country Link
US (1) US10223312B2 (zh)
CN (1) CN107957965B (zh)
DE (1) DE102017124078A1 (zh)
TW (1) TWI668574B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734249B (zh) * 2019-11-07 2021-07-21 財團法人資訊工業策進會 網路系統以及決策方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082881B2 (en) * 2018-04-05 2021-08-03 At&T Intellectual Property I, L.P. Dynamic quality of service setting system
US10990548B1 (en) 2019-11-25 2021-04-27 Micron Technology, Inc. Quality of service levels for a direct memory access engine in a memory sub-system
US12105666B2 (en) * 2021-04-19 2024-10-01 Advanced Micro Devices, Inc. Master-slave communication with subdomains
US11789653B2 (en) * 2021-08-20 2023-10-17 Micron Technology, Inc. Memory access control using a resident control circuitry in a memory device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200816715A (en) * 2006-07-31 2008-04-01 Harris Corp Systems and methods for SAR-capable quality of service
CN101404650A (zh) * 2008-11-19 2009-04-08 中国电信股份有限公司 一种细分网络应用服务质量的方法和系统
CN102693202A (zh) * 2011-03-24 2012-09-26 三星电子株式会社 改善数据流量的片上系统及其操作方法
US8316171B2 (en) * 2010-06-03 2012-11-20 Arteris S.A. Network on chip (NoC) with QoS features
CN103067217A (zh) * 2012-12-14 2013-04-24 北京思特奇信息技术股份有限公司 一种通信网络服务质量的指示系统及方法
US8649286B2 (en) * 2011-01-18 2014-02-11 Apple Inc. Quality of service (QoS)-related fabric control
TW201436598A (zh) * 2013-02-05 2014-09-16 Qualcomm Inc 用於蜂巢上服務之動態服務品質

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2064162C (en) 1991-05-28 2002-07-09 Daniel Paul Fuoco Personal computer with local bus arbitration
US6088751A (en) 1998-02-12 2000-07-11 Vlsi Technology, Inc. Highly configurable bus priority arbitration system
US7007122B2 (en) 2002-11-27 2006-02-28 Lsi Logic Corporation Method for pre-emptive arbitration
DE102004013635B4 (de) 2004-03-19 2006-04-20 Infineon Technologies Ag Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法
WO2008023219A1 (en) * 2006-08-23 2008-02-28 Freescale Semiconductor, Inc. Pipelined device and a method for executing transactions in a pipelined device
WO2008023218A1 (en) * 2006-08-23 2008-02-28 Freescale Semiconductor, Inc. Device having priority upgrade mechanism capabilities and a method for updating priorities
CN101729392B (zh) * 2008-10-23 2011-11-16 大唐移动通信设备有限公司 一种操作服务质量的方法和装置
CN102075421B (zh) * 2010-12-30 2013-10-02 杭州华三通信技术有限公司 服务质量处理方法及装置
CN103326956A (zh) * 2011-01-24 2013-09-25 华为技术有限公司 一种服务质量QoS保持方法、装置及系统
US9372818B2 (en) 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9910803B2 (en) 2013-06-17 2018-03-06 Texas Instruments Incorporated Multi master arbitration scheme in a system on chip

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200816715A (en) * 2006-07-31 2008-04-01 Harris Corp Systems and methods for SAR-capable quality of service
CN101404650A (zh) * 2008-11-19 2009-04-08 中国电信股份有限公司 一种细分网络应用服务质量的方法和系统
US8316171B2 (en) * 2010-06-03 2012-11-20 Arteris S.A. Network on chip (NoC) with QoS features
US8649286B2 (en) * 2011-01-18 2014-02-11 Apple Inc. Quality of service (QoS)-related fabric control
CN102693202A (zh) * 2011-03-24 2012-09-26 三星电子株式会社 改善数据流量的片上系统及其操作方法
CN103067217A (zh) * 2012-12-14 2013-04-24 北京思特奇信息技术股份有限公司 一种通信网络服务质量的指示系统及方法
TW201436598A (zh) * 2013-02-05 2014-09-16 Qualcomm Inc 用於蜂巢上服務之動態服務品質

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734249B (zh) * 2019-11-07 2021-07-21 財團法人資訊工業策進會 網路系統以及決策方法

Also Published As

Publication number Publication date
TW201820152A (zh) 2018-06-01
US20180107621A1 (en) 2018-04-19
CN107957965A (zh) 2018-04-24
DE102017124078A1 (de) 2018-04-19
US10223312B2 (en) 2019-03-05
CN107957965B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
TWI668574B (zh) 服務品質序數修正之計算裝置、系統單晶片及方法
US11562213B2 (en) Methods and arrangements to manage memory in cascaded neural networks
US9798682B2 (en) Completion notification for a storage device
US9135044B2 (en) Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
KR102219545B1 (ko) 소프트웨어 지원 콘텍스트 스위치를 갖는 미드-쓰레드 선점
US20120216212A1 (en) Assigning a portion of physical computing resources to a logical partition
US8271707B2 (en) Method and system for PCI hybrid function
US11243795B2 (en) CPU overcommit with guest idle polling
US10467052B2 (en) Cluster topology aware container scheduling for efficient data transfer
US10002103B2 (en) Low-pin microcontroller device with multiple independent microcontrollers
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
EP3979072B1 (en) Firmware boot task distribution to enable low latency boot performance
US20130055284A1 (en) Managing shared computer resources
US20160117200A1 (en) Resource mapping in multi-threaded central processor units
US9342477B2 (en) Multi-core processor, controlling method thereof and computer system with such processor
US8499142B1 (en) UEFI boot loader for loading non-UEFI compliant operating systems
Sander et al. A flexible interface architecture for reconfigurable coprocessors in embedded multicore systems using PCIe Single-root I/O virtualization
US10810032B2 (en) System and method for dynamic guest-controlled halt polling using a CPU governor
US20150100759A1 (en) Pipelined finite state machine
WO2018107394A1 (en) I/o emulation abortion in virtualized environments
JP2021096829A (ja) 分散環境における深層学習トレーニングの最適化のためのランタイムにおけるサービスクラス属性の初期化及び管理
US20180210846A1 (en) Files access from a nvm to external devices through an external ram
WO2012143947A2 (en) Multi-host peripheral controller
WO2009004628A2 (en) Multi-core cpu