新四季網

多芯架構中的資源管理的製作方法

2023-04-26 23:57:16

專利名稱:多芯架構中的資源管理的製作方法
技術領域:
本發明涉及用於多芯架構中的資源管理的方法和裝置。
背景技術:
現今,合併複雜異機種的多芯架構的半導體裝置被用於寬泛的各種系統和裝置(從遍布的桌面計算機到最新近的現代電子裝置,如行動電話、個人數字助理以及高速電信或網絡切換裝備)中。
無論打算使用何種計算機處理器,處理器製造商都持續努力增加當前處理器的性能,同時保持或減小它們的單位「成本」。
處理器的「成本」可以利用各種參數來度量。儘管在許多情況下,該成本將是純粹的金融成本,但是,在許多應用中,尤其是在嵌入式處理器市場中,成本計算還包括諸如功耗、冷卻要求、功效以及面市時間的輔助考慮。
任何處理器執行有用功能的絕對能力可以根據可實現的MIPS(每秒百萬條指令)比加以描述,由此,任何處理器的「性價」比都可以根據例如MIPS/mm2、MIPS/$或MIPS/mW加以描述。
然而,實際上,不是全部指令都完成相同量的有用工作,因此,「純粹的」MIPS額定值是不容易比較的。因而,雖然數位訊號處理器(DSP)在行動電話的無線接口近旁可很好地適於解決數學運算密集處理,但是在運行在該行動電話的屏幕上運行的網頁瀏覽器方面效率非常低下。有效的是,這意謂著處理器可以根據「應用可獲」性價更有用地分類。
而且,為實現具體應用而必須使用以控制和定製處理器的編程(即軟體)工具的低效,可以造成有效性能的額外減小。由此,可以從針對具體應用的處理器中提取的性能的最終等級可以看作為可用的或「可實現的應用可獲」性價的等級。
在半導體公司為改進處理器應用可獲性價的驅動下,已經開發出一款新處理器,即,多芯裝置。多芯裝置是由各種單元(核心)構建的高度集成的處理器,每個單元可以高度地專業化,以便為該處理器可以執行的應用的具體方面提供最大等級的有用性價。這種裝置可以是「異機種的」(即,包括多個相異的核心),或者是「同機種的」(即,包括多個相似的核心)。
因為針對任何具體產品,集成不但包括多個處理核心,而且包括處理大部分(否則全部)硬體需求所需的存儲器、IO以及其它系統「核心」,所以大部分多芯裝置也可以被分類為晶片上系統(SoC)裝置。儘管不是全部SoC裝置都具有多個處理核心,但是術語多芯和SoC經常是可互換的。多芯SoC的一個良好的示例可以在許多行動電話中發現,其中會發現為運行無線接口而包括一個或更多個DSP的單個處理器,和在電話上運行用戶應用的通用處理器。
摩爾定律使得能夠出現多芯裝置,摩爾定律聲明可以安裝到由矽製成的任何指定面積中的電晶體的數量因製造工藝的改進每十八個月就會翻番。因此,摩爾定律允許把更多單個電晶體安裝到矽片上的任何指定面積中,使得在單片矽上製造更複雜的裝置在技術上和經濟上都是可行的。同樣,由於縮減電晶體的尺寸,因而電晶體能夠按更高的速度開關。
歷史上,摩爾定律用於製造更快或就使用的矽而言成本更有效的尺寸更小的新一代處理器,而不對基礎的架構進行任何大的改變(即,該改進是在製造工藝和裝置的物理微觀架構而不是裝置的邏輯宏觀架構上的改進)。
有效的是,趨向於多芯/SoC處理器可以被視為向更高等級的集成的宏觀架構轉換,這首先是從把1O(通信)功能性引入到矽片自身上開始的;現在,IO、存儲器以及多個處理單元、DSP以及協處理器的功能性都可以集成到同一矽片上。這些處理器通過為特定類的應用提供最低成本、最高性能的處理器而會減小最終產品的製造成本。而且,通過將大多數系統組件集成到單個處理器上,可以減小部件數,因此,提高可靠性並降低功耗。
關鍵問題是可以怎樣優化底層硬體在這種多芯裝置中的使用,以便實現最高可能的「應用可獲」性價。
處理器和系統設計者可以按許多方式影響應用軟體內的並行(應用級並行)和指令流內的並行(指令級並行)。各種表現的不同之處在於,當系統在執行/處於「運行時」(動態系統)時,或者當應用軟體被編譯/處於編譯時間(靜態系統)時,在何處管理並行和是否管理並行。實際上,動態和靜態系統與硬體加強和軟體加強解決方案之間的劃分不明顯,來自一個門類的技術通常由另一個門類借用。
在單處理核心級方面,本領域很好地建立了多發處理器或並行操作來自單個流的許多指令的機器的概念。它們分為兩種基本類型超標量處理器和超長指令字(VLIW)處理器。超標量處理器以按運行時(動態調度)或者按編譯時間(靜態調度)識別的時鐘周期發出可變數量個指令。VLIW處理器發出固定數量個指令,形成超長指令字,這由編譯器限定。典型的是,當系統的編程模型是標準的單處理器抽象時,編程者完全不知道這個過程。
過線程(Super-threading)和超線程(Hyper-threading)是在多個虛擬處理器中通過復用多個執行線程來仿真多個處理器的兩種技術。典型的是,這些虛擬處理器共享統計上不由單個線程在全部時間使用的某些資源。過線程和超線程架構看起來像多個獨立處理器,因此需要提交應用級並行,以便高效地工作。典型的是,處理器核心中的硬體限制把可以支持的線程的數量限制得大致小於100個線程。
而且,針對許多應用中的固有並行的開發,存在幾種系統架構選擇。多指令多數據(MIMD)機器(其中,各處理器執行其自己的指令並且對其自己的數據集進行操作,同時通過一些共享資源(例如存儲器和/或互連)與其對等體協作)因它們能夠解決寬泛的各種應用而變得流行起來。
隨著性能需求的增加,嵌入式系統日益利用多芯MIMD架構,利用多個相異或相似的處理資源,以提供所需等級的矽功效。典型的是,儘管通常還可以發現更多應用型混合架構,但是,存在一類稱為集中共享存儲器架構(即,在多個處理資源之間共享單個地址空間(或其比例))的MIMD機器。
儘管MIMD陣列的各處理資源可以採用指令級並行(ILP),但是,MIMD機器也可以採用線程級並行(TLP),以實現底層硬體的潛在性能。相比於ILP(其按運行時(通過特定硬體)或編譯時間(通過優化編譯工具)識別),TLP是按應用設計時間在高級編程軟體內限定的。
線程是已作為並行的高級表達在軟體界內使用許多年的概念。線程限定工作的自主包,該自主包包括執行狀態、指令流以及數據集,根據定義,其可以與其它線程同時執行。指令流的複雜性是不重要的。線程可以描述從簡單的數據傳遞到複雜的數學變換的任何事情。
傳統上,作業系統已經參與系統管理的設置,包括線程分配功能,這使得應用能夠在多芯架構的特定配置上運行,而不需要軟體工程師對底層設備架構有詳細的理解。然而,針對單芯裝置內的線程管理的現有軟體技術不能容易地以連貫的方式適於多芯架構。迄今為止的解決方案需要逐設計地專門預定解決方案,並且通常已折衷處理了性能和可擴展性。
歷史上,對於異機種的多芯系統(即,具有廣泛相異處理資源的系統)的情況來說,已經採用了許多變化方法,以使得全異的處理資源能夠一起工作。然而,廣泛地說,這些可以分成兩類,「代理伺服器主機」和「協作」(也稱為「端到端」)。對於前一情況來說,指定的通用主機處理器(其在基於總線的系統中通常被稱為CPU)全面控制系統,代管系統上任務,並同步對諸如存儲器和裝置的資源的訪問。這種系統監管典型地在作業系統核心中操作,並且與主機處理器上的系統應用和異步事件的處理競爭時間片。換句話說,這種通用處理器必須充任針對多芯裝置上的全部處理資源的中央代理伺服器線程管理器,並充任關鍵應用處理器。
當在這種配置中使用時,在準備好針對各處理資源執行的線程的隊列可以自行開行執行之前(即,等待和定時隊列),根據預定調度策略,即,它們的優先級(即,分派或就緒隊列)和等待某一事件的線程的隊列,或者另一線程的結果返回,通用處理器必須保持所述準備好針對各處理資源執行的線程的隊列。這些在其它系統消耗(如在線程執行之前的處理器配置)之外。
無論何時例如,作為因線程完成而發出中斷(因此釋放已經完成該線程的處理資源)的結果,通用處理器將其處理時間從其當前執行的線程轉向系統的管理(包括線程管理),通用處理器都必須進行現場(context)改變。
現場改變涉及將中止線程的當前進程存儲到存儲器中,取與為其它線程/處理資源進行服務的管理例程有關的指令,接著執行這些指令,包括任何配置要求。必須執行進一步的現場改變,以返回到原來的中止線程。這些現場改變典型地在接收到中斷時執行,而在嵌入式系統中,這些中斷針對在通用存儲器上執行的應用代碼來說通常是頻繁且異步的。因此,系統整體上表現出顯著的性能劣化。現場切換還對主機處理器高速緩存的功效具有負面影響(所謂的「冷高速緩存」效應)。
對於協作系統的情況來說,各處理資源運行作業系統的單獨例程,所述單獨例程的一部分使得能夠實現資源間通信。因此,這種布置具有相對嚴格的架構劃分,作為在對等體之間具體路由中斷的結果。儘管這種類型的系統提供生成應用所需的原型(primitive),但是,實現的性能仍經受與作業系統核心活動相關聯的頻繁現場切換。
總之,針對在傳統架構(通用處理器、軟體執行程序等)中實現系統管理的當前設計和方法,對於複雜異機種的多芯架構的系統和線程管理來說是不合適的。的確,通用處理器在微觀(指令集)架構級和宏觀(高速緩存、寄存器文件管理)架構級方面都缺乏優化。儘管多芯處理器的互連提供了用於分立處理資源間操作的物理介質,但是不存在能夠實現針對系統管理的相干方法的在全部處理資源間共享的系統範圍的任務管理和通信層。在最糟的情況下,這可能導致與每個處理資源之間的每個可能通信通道相關聯的明顯不同的問題,其中的每個傳統上都必須特別地在軟體中單獨解決。
因而,需要用於這些非常複雜的多芯架構的高效系統管理方法。軟體抽象不能單獨地提供複雜多芯架構的必需性能等級。

發明內容根據本發明第一方面,提供了一種根據權利要求
1所述的用於多芯處理器的資源管理和任務分配控制器。
在優選實施例中,根據權利要求
1所述的控制器專用於資源管理和任務分配,並且不提供進一步的處理資源。
在本發明的實施例中,「傳統的」主處理單元(即,在缺少本發明的資源管理和任務分配控制器的情況下執行任務分配和用作一個可用處理資源的一般處理資源)可以在系統開啟時作為主控而開始,而在初始化序列期間資源管理和任務分配控制器採用來自MPU的主控狀態。
本發明的實施例還提供針對異機種多芯處理器的功能性,該功能性使得能夠向會被忽略的處理資源分配任務,以用於處理特定任務。這樣,本發明的控制器允許更有效地使用可用資源。
通過提供一種單獨的資源管理和任務分配控制器,本發明提供了針對多芯處理器的改進的任務分配和管理系統,使得能夠在可用處理資源之間更有效地分配任務。該控制器把系統管理和異常處理的單元抽象成專用、高效、硬代碼化的實施例。
本發明的實施例採用控制器客戶端以及控制器,而不是實現「代理伺服器代理」的作用。該控制器客戶端可以採用硬體或軟體的形式實現。這種布置有效地控制了底層系統的「運行時」活動。具體來說,該控制器基於預定分配參數的範圍持續地(「貪心地」)保持系統線程狀態和調度判決的正確性。
因此,與複雜性無關地,就在構成的組件之間劃分工作與單個處理資源的自主性而言,優選實施例的架構提供顯著的有益效果。全部處理資源變成從屬裝置,這些從屬裝置默認是「懶惰的」,即,它們等待資源管理和任務分配控制器在優先實施例中經由專用中斷明確指示以執行任務。同樣,在其它實施例中,在資源管理和任務分配控制器與處理資源之間可以使用基於輪詢的通信。
在採用本發明的控制器的系統中,直接通過插針或者間接通過一個處理資源(即,IO裝置)的外部操縱從架構外部發起的所有異步事件,都被優先路由至該控制器,在該控制器處,利用在「引導時間」配置的一組調度策略來對它們與目標處理資源上的當前執行任務進行比較。處理資源僅在與外部事件相關聯的中斷服務線程(IST)負責當前執行事務(線程或任務)時中斷,由此消除了作為現有技術中的問題的在任何處理資源中的不必要的現場切換。而且,優選實施例的控制器客戶端使得具有任意複雜性的處理資源能夠對共享資源和控制器自身執行基本系統管理操作(生成線程、發出同步原型、刪除線程、存儲器複製等),避免基於指令集的機器通過代理伺服器執行這些任務的必要。
在本發明的又一方面中,提供了一種包括這種控制器的多芯處理器。
本發明還延伸至根據權利要求
40所述的在多芯處理器中控制並分配資源的方法。
此外,在所附加的從屬權利要求
中限定了本發明的優點和特徵。
本發明可以採用許多方式進行實施,下面,參照附圖,僅通過示例,對一些實施例進行描述,其中圖1示出了包括根據本發明實施例的資源管理和任務分配控制器的系統的邏輯布局的示意性框圖;圖2示出了圖1中的邏輯布局的一個示範實現的示意性框圖,其中,實現本發明的控制器連同專用存儲器裝置和控制器客戶端一起併入通用多芯處理器架構內;圖3再次採用框圖的形式示出了包括有圖2中的單元的現代晶片上系統(SoC)總線型架構的示例;圖4示出了與圖1、2以及3中的控制器的外部連接的更詳細的圖;圖5示出了圖2和3中的存儲器裝置的更詳細的圖;圖6示出了圖2、3以及4中的控制器的內部構成的更詳細的圖;圖7示出了如圖2和3中所示的控制器客戶端的示意性框圖;圖7b示出了在充任用於多個處理資源的代理伺服器的單個控制器客戶端的情況下的系統的示意性框圖;圖8示出了硬體控制器客戶端的更詳細的示意性框圖;圖9a和9b示出了一般描述符及其相關聯的域;圖9c和9d示出了線程描述符及其相關聯的域;圖9e和9f示出了調度程序層描述符及其相關聯的域;圖9g和9h示出了分派隊列描述符及其相關聯的域;圖9i和9j示出了等待隊列描述符及其相關聯的域;圖9k和9l示出了跳躍列表描述符及其相關聯的域;圖10示出了在線程描述符、系統管理控制器、處理資源與共享的系統存儲器之間的典型的關係;圖11例示了在圖10中的布置中的間接的原理,其中,呈現了兩個相異的處理資源;圖12示出了圖4中的控制器內的線程管理的典型的全貌圖;圖13示出了典型的等待隊列結構;圖14示出了典型的等待隊列跳躍列表;圖15示出了典型的定時器隊列;圖16示出了針對兩個處理資源的典型的就緒隊列結構;圖17示出了典型的單個分派隊列結構的示範實施例;圖18示出了包括線程包的兩層調度層級;以及圖19示出了通常可以在通信系統中發現的示範簡化隊列結構。
具體實施方式圖1示出了包括有根據本發明實施例的特徵的系統框架10的邏輯圖。框架10包括多個處理資源150,各處理資源相對於其它處理資源150可以是相似或相異的,並且各處理資源可以是任意複雜的。各處理資源共享經由互連部160對存儲有共享數據的公共系統存儲器140的訪問。應當明白,當然不是全部系統存儲器140都必需公用於全部處理資源150。
該系統框架還包括根據本發明實施例的集中任務分配和管理系統20。集中任務分配和管理系統20包括系統管理控制器130和連接至專用緊密耦合存儲器190的專用緊密耦合存儲器接口180。各處理資源150能夠經由互連部115訪問控制器130。要明白的是,在圖1中的布置的實現中不需要特殊的互連策略(即,控制器130與各處理資源150通信所採用的布置,和相反情況下各處理資源150與系統存儲器140通信所採用的布置);具體地,可以同等地採用點對點連接、中央系統總線以至管道傳送架構,僅僅除了各處理資源應當能夠與控制器130直接或間接地(即,經由其它處理資源等)通信的情況之外。
圖2再次僅通過示例示出了實現圖1中的邏輯布置的多芯處理器。圖2中的多芯處理器採用各經由系統互連部160相連接的多個處理資源150。系統互連部160又經由輸入接口100和輸出接口110而與系統管理控制器130通信。在圖2中的示例中,系統互連部160被設置為傳統的中央總線,其將各處理資源150相互連接並將各處理資源150與控制器130相連接,並且還將各處理資源150與諸如系統存儲器140的共享系統資源相連接。與存儲器140的連接可以通過多個當前可用的接口技術中的任何一種來實現。該存儲器可以由當前可用的中央計算機存儲器技術(例如,靜態隨機存取存儲器(SRAM),或雙倍數據速率隨機存取存儲器(DDR RAM))中的任何一種組成。
參照圖2,所述多個處理資源150中的每個都具有被設置成接收來自中央控制器130的控制信息並且根據接收的控制信息來管理處理資源150的相關聯的系統管理控制器客戶端120。下面,結合圖7和8,對控制器客戶端120的功能和用途進行更詳細的描述。各處理資源還具有相關聯的互連代理170,以經由系統互連部160與控制器130通信。互連代理170向控制器客戶端120提供一般接口,該一般接口獨立於系統互連部160上使用的基礎互連協議,即,其提供在系統互連部160上使用的通信協議與控制器客戶端120使用的通信協議之間的協議轉換。由於互連代理170的使用,本發明實施例中的控制器客戶端120可以與當前可用的任何系統互連協議一起使用。
整體上,多芯處理器被設置成執行目標應用,該目標應用可以分解為許多單個任務,即,所謂的線程。根據參數(包括但不限於所關注的線程的優先級、各處理資源150的可用性以及特定處理資源對於執行特定線程的適合性)的數量,通過控制器130向各處理資源150分配一合適的線程。下面將再次對其進行更詳細的描述。
然而,要明白的是,系統管理控制器130及其專用存儲器190的增加並不另外要求重新設計處理器10的布局。
圖3中示出了一種具體布置,其採用框圖的形式示出了典型的晶片上系統(SoC)架構,並且其例示了在具體應用中可以受控制器130的資源管理的各種處理資源。應當注意到,處理資源可以具體具有諸如DSP的相對一般的性能,或者可以具有諸如外圍IO的相對受限的功能性。
系統管理控制器接口組圖4示出了控制器130及設置在控制器130的外圍的與其相關聯的接口組200-250。
系統控制組200包括為確保系統管理控制器130的正確操作所需的兩個系統輸入信號。這兩個系統輸入包括連接至系統時鐘的CLK輸入,和RST輸入。來自系統管理控制器130的全部輸入信號都與系統時鐘同步,並且針對系統管理控制器130的全部輸入信號都是利用該時鐘進行採樣的。RST輸入是同步復位信號,用於對系統管理控制器130進行復位。
外部中斷組210由源自系統管理系統外部的一組同步外部中斷組成。這些信號在它們接合至系統管理控制器130外圍之前必須與CLK同步。在外部中斷組210中的信號可以從例如與外界的輸入接口來驅動,或者經由插針直接從多芯處理器外部驅動。外部中斷輸入的數量在多芯處理器10設計階段限定。
內部控制組220由針對各控制器客戶端120的單個同步中斷及其關聯處理資源150組成。因此,信號組的數量典型地與系統內的處理資源150的數量相對應,並且將在多芯處理器10設計階段限定。內部中斷信號指示準備執行的線程,並且被指配給與控制器客戶端120相關聯的具體處理資源150。
緊密耦合存儲器接口組180將系統管理控制器130連接至其自己的專用緊密耦合存儲器資源190。圖5示出了專用緊密耦合存儲器190的典型結構。地址路徑和數據路徑的寬度在多芯處理器10設計階段限定。專用緊密耦合存儲器接口包括存儲器地址總線191、存儲器讀取數據總線192、存儲器寫入數據總線193以及寫入使能信號194和讀取使能信號196。
假定安裝的存儲器是同步SRAM裝置。根據目標應用的需要,專用緊密耦合存儲器190包括整數數量個控制器存儲器單元195,這些是在多芯處理器10設計階段限定的。在當前優選實施例中,各控制器存儲器單元195消耗256比特存儲器空間。還是在當前優選實施例中,控制器支持最多65536個控制器存儲器單元(即,16Mb存儲器)。儘管如下面所述的隊列描述符消耗控制器存儲器單元195,但是,在典型的系統中,所需的控制器存儲器單元195的數量將由線程支持需求支配。例如,能夠在系統管理控制器130內同時支持400個線程的系統將需要大約128Kb的安裝存儲器。
圖4中的互連接口組230與多芯處理器10和互連代理170中使用的所選互連協議一致,這是在多芯處理器設計階段限定的。
控制器子模塊描述和功能圖6示出了系統管理控制器130的主邏輯組件。控制器130的功能性在四個主要的內部並行處理子模塊中劃分,並執行下列功能1、線程輸入管理器(TSIM)300,其被設置成,將空閒控制器存儲器單元195的列表保持在專用緊密耦合存儲器190內,並且監控控制器存儲器單元195恢復。
2、線程同步管理器(TSPM)310,其被設置成,將等待列表和定時器隊列保持在專用緊密耦合存儲器190內,並且在線程之間執行同步,並且在需要時,對專用緊密耦合存儲器190內的就緒隊列結構執行線程的升級。線程同步管理器310通過在專用緊密耦合存儲器190內插入和提取等待線程描述符來保持等待和定時器隊列結構的完整性。
3、線程輸出管理器(TSOM)320,其被設置成,將就緒隊列結構保持在專用緊密耦合存儲器190內,並且分派在專用緊密耦合存儲器190內的針對各處理資源150的隊列。線程輸出管理器(TSOM)320還被設置成,生成向控制器客戶端120發送的中斷220。在專用緊密耦合存儲器190內,通過對保持在控制器存儲器單元195中的線程描述符進行插入和提取來執行對就緒隊列結構的完整性的保持。
4、線程調度管理器(TSSM)330,其被設置成,在設置在專用緊密耦合存儲器190內的就緒隊列結構內提供針對各處理資源150的調度判決。
另外,多個輔助處理子模塊提供支持以下功能5、線程存儲器管理器(TSMM)340,其被設置成,提供對安裝的專用緊密耦合存儲器190的集中訪問,包括相互獨佔和鎖定。
6、中斷管理器(TSIC)350,其被設置成,將引入的外部系統中斷轉換成內部同步原型。
7、定時管理器(TSTC)360,其被設置成,提供針對各處理資源150的用於同步目的和監控定時器功能性的定時器功能。
8、系統接口(TSIF)380,其被設置成,提供對多芯處理資源150的互連接口連接和配置以及運行時訪問。
下面,對系統管理控制器130內的上述主要和輔助處理子模塊的交互進行詳細的描述。
各子模塊呈現了針對其它子模塊的功能集,使得各子模塊能夠指示其對端對它們各自在專用緊密耦合存儲器190內保持的結構執行操作。在控制器軟體應用編程接口(API)處接收到類似命令時,由具體的子模塊調用功能。
線程輸入管理器功能線程輸入管理器300提供針對系統管理控制器130內的其它子模塊的三個公共功能。
空閒列表狀態(FreeListStatus)功能,其返回控制器存儲器單元195空閒列表內的單元的頭指針和數量。空閒列表是當前未使用的控制器存儲器單元195的列表。在控制器130軟體API處接收到類似的命令時,僅可以由系統接口380調用這個功能。
入棧空閒索引(PushFreeIndex)功能,其用來將釋放的控制器存儲器單元195索引向後推入到空閒列表上。僅可以由線程調度管理器330調用這個功能。
出棧空閒索引(PopFreeIndex)功能,其用來將空閒控制器存儲器單元195索引從空閒列表彈出。典型地從系統接口380內的API調用服務例程調用該功能。
線程同步管理器功能線程同步管理器310提供七個針對系統管理控制器130內的其它子模塊的公共功能。
響應於控制器130軟體API接收到的類似的命令,僅可以由系統接口380調用下列五個功能。
入棧等待描述符(PushPendingDescriptor)功能,其被用來在引導過程期間向等待隊列描述符的列表添加等待隊列描述符。
入棧線程(PushThread)功能,其被用來在運行時期間向指定等待隊列增加附屬線程。
設置定時器狀態(SetTimerStatus),其設置定時器隊列內的單元的頭指針和數量。
獲得定時器狀態(GetTimerStatus)功能,其返回定時器隊列內的單元的頭指針和數量。
設置等待狀態(SetPendingStatus)功能,其設置等待隊列描述符列表的狀態。
獲得等待狀態(GetPendingStatus)功能,其返回等待描述符隊列內的單元的頭指針和數量。
同步事件(SyncEvent)功能,其被用來向指定等待隊列發出同步原型。由線程中斷管理器350和系統管理控制器380調用這個功能。
時間事件(TimeEvent)功能,其被用來向定時器隊列發出基於定時器的同步原型。僅由時間管理器360調用這個功能。
線程輸出管理器功能線程輸出管理器320提供五個針對系統管理控制器130內的其它子模塊的公共功能。
入棧功能在就緒隊列結構內設置線程描述符。可以以加快處理速度(例如,針對處理中斷)的高優先級來調用該方法。如果線程是獨立(立即就緒)的,則調用將從系統接口380進行,而如果線程描述符最初具有相關性,則調用從線程同步管理器310進行。
響應於在控制器130軟體API處接收到類似的命令,可以僅由系統接口380調用下列三個功能。
獲得分派隊列狀態(GetDispatchQueueStatus)功能,其返回分派隊列列表內的單元的頭指針和數量。
設置分派隊列狀態(SetDispatchQueueStatus)功能,其設置分派隊列列表內的單元的頭指針和數量。
分派隊列出棧(DispatchQueuePop)功能,其從分派隊列的頭部彈出線程描述符。
分派工作隊列入棧(DispatchWorkQueuePush)功能,其將分派隊列推入到線程輸出管理器320工作隊列上。可以僅由線程調度管理器330調用這個功能,線程調度管理器330使用這個功能來向輸出管理器320通知分派隊列內作為調度更新的結果所需的改變。
線程調度管理器功能線程調度管理器330提供針對設置在系統管理控制器130內的線程輸出管理器320和系統接口(TSIF)380的三個公共功能。
入棧推入工作事件(PushPushWorkEvent)功能,其在線程輸出管理器320將線程描述符增加到就緒隊列結構之後立即由該線程輸出管理器320調用。
入棧彈出工作事件(PushPopWorkEvent)功能,其在線程輸出管理器320從就緒隊列結構中去除線程描述符之後立即由該線程輸出管理器320調用。
空閒索引(FreeIndex)功能,其使得控制器存儲器單元195的釋放能夠與在線程調度管理器330內進行的調度活動恰當地同步。在控制器130軟體API處接收到類似的命令時,或者作為在線程輸出管理器320內的出棧操作的結果,可以發出該調用。
控制器客戶端如前所述,術語處理資源150應用於可以執行指令的任何資源,而與指令可以是如何初步的無關。因此,也包括具有諸如輸入/輸出模塊的固定功能的資源。根據處理資源150的類型,系統互連部160與處理資源150之間經由系統管理核心客戶端120的連接可以是單向的,或者是雙向的。
圖7示出了與系統管理控制器130一起使用的控制器客戶端120的示範示意性框圖。
對於合適的處理資源150,例如,通用處理器或數位訊號處理器,典型地採用軟體的形式實現控制器客戶端120。然而,如果處理資源150具有受限的功能,則控制器客戶端120可能需要硬體組件。
當在系統互連部160與處理資源150之間使用硬體組件時,控制器客戶端120仍利用相同接口連接至處理資源150。也就是說,控制器客戶端向互連代理170呈現與處理資源150針對控制器客戶端的接口相同的接口。在一些情況下,例如,在輸入/輸出裝置的情況下,恰當的是,把進入到處理資源內的數據路徑處理為明顯與從處理資源出去的數據路徑不同。
除了主接口之外,控制器客戶端120還提供出帶接口(out of bandinterface),以用作針對運行時和調試事件的輸出。如果使用軟體控制器客戶端120,則可利用標準中斷來調用恰當的服務例程。
操作的控制器客戶端模式各控制器客戶端120完全受中斷驅動。在接收到來自控制器130的內部中斷的時候,控制器客戶端120從與特定處理資源150相關聯的分派隊列的頭部彈出線程描述符,該分派隊列保持在專用緊密耦合存儲器190中。接著,將線程描述符內的唯一引用用於讀取來自主存儲器資源140的進一步的線程控制信息、線程控制模塊(TCB)。在TCB內包括的信息可以是下列任何一種1、控制器客戶端120配置內容。這個信息可以用於配置控制器客戶端120系統資源使用策略、數據呈現模式等。
2、處理資源150配置內容。這是為準備用於執行具體線程的處理資源150所需的信息。這個信息可以包括從該線程的先前部分執行起的恢復或諸如音頻編解碼器的專用程序硬體加速器的配置。
3、指令內容。在固定功能硬體加速器的情況下,「指令」將隱含在目標化的硬體處理資源150中,例如,處理資源150是輸出模塊時的輸出指令,並且任何需要的專用程序或配置將容納在配置信息內。在軟體控制器客戶端120的情況下,這將典型地作為針對與線程相關聯的功能代碼的指針。
4、數據內容。這個內容可以限定在系統存儲器140中的開始地址或多個地址,和線程可以進行操作的數據範圍。
5、控制器客戶端120後處理內容。這個內容確定在完成線程執行之後控制器客戶端120的動作。
控制器客戶端120的操作存在三個明顯的階段1、配置階段,其中,針對特定線程的執行而準備處理資源150和控制器客戶端120。在最簡單情況下,配置階段為空值。
2、執行階段。其中,正在執行線程,並且控制器客戶端120可以提供數據和/或監控資源利用。
3、完成階段。處理的完成可能導致沒有動作、另一線程的生成、同步原型的發出或線程生成和同步的組合。而且,控制器客戶端120還可能被要求設置或更新調度程序測度並終止線程。在線程的執行期間需要進一步的存儲器以存儲結果的情況下,控制器客戶端120還必須執行這個方法。
在單個硬體控制器客戶端120b在有效時段期間完全使用可用系統互連部160帶寬的情況下,最優化的解決方案允許控制器客戶端120b作為針對多個硬體處理資源150的代理伺服器操作。圖7b中示出了這種布置。如前述情況,代理伺服器控制器客戶端120b受中斷驅動,然而,儘管在前述示例中,僅從控制器130發出單個中斷,但是在代理伺服器控制器客戶端模型中,存在針對各處理資源150的中斷。根據從控制器130接收到的中斷的索引,代理伺服器控制器客戶端120b在識別的處理資源150上執行相同的步驟。在需要系統互連部160使用策略的代理伺服器控制器客戶端模型中,硬體適配器120c保持在處理資源150與系統互連部160之間。
如前所述,可以採用軟體的形式實現控制器客戶端120。在這種情況下,控制器客戶端120的一些功能性,例如,共享的資源使用策略,將典型地使用可能已經呈現在處理資源150硬體中的現有硬體組件(例如,存儲器管理單元(MMU))。
因此,軟體控制器客戶端120架構和實現是針對處理資源150特定的。
根據相關聯的處理資源150的特性,硬體控制器客戶端120還可以具有專用程序需求。下面的部分描述適於多數情況下的一般架構。
硬體控制器客戶端的一般示例圖8中示出了硬體控制器客戶端120的基本結構。控制器客戶端有限狀態機(FSM)500在設計的功能中心處。該有限狀態機(FSM)500可以在全部三個階段期間都是有效的。通過來自控制器120的中斷220激活控制器客戶端FSM 500。
首先,控制器客戶端FSM 500控制系統互連部160,以從共享存儲器資源140讀取TCB,該TCB包括針對其自己的指令的引用。在配置階段期間,控制器客戶端120可以控制處理資源接口,解釋配置命令並且將它們轉換成向處理資源150發出的寫入周期。而且,控制器客戶端120配置其自己的資源策略。從配置狀態到執行狀態的轉換的方式是針對處理資源150特定的,但可以通過顯式的執行原型或僅通過進入數據傳遞狀態來標誌。
從控制器客戶端120的角度來看,最簡架構在處理資源150與系統側具有相同的接口協議。在這種情況下,在執行階段期間,將處理資源150讀取和寫入周期簡單地交叉映射到系統接口,而在合適情況下進行校驗。
在系統到處理資源510和處理資源到系統520的路徑中,最簡單的控制器客戶端120實現需要FIFO型接口。在這種特性的控制器客戶端120的執行階段期間,可以通過消息或流式傳輸模式向處理資源150提交數據。整個數據集在處理之前本地積聚在控制器客戶端120內的消息模式,造成可能便於更複雜互連仲裁器的更粗模塊互連行為。數據直接從系統存儲器流式傳輸到處理資源150中的流式傳輸模式呈現更加矽片有效的解決方案,該解決方案需要更仔細地考慮信號交換(hand-shaking)並且展示出細緻的互連事務以及與互連性能的緊密耦合。
通過對向處理資源150提交數據進行測量,可以推斷從執行階段到完成階段的轉換,或者可以由處理資源150自身明確地信令指示從執行階段到完成階段的轉換。在完成階段期間,控制器客戶端120再次從最初的線程控制模塊提供的指令集起執行。
注意,在一些情況下,恰當的是,把進入處理資源150的數據路徑(例如,輸入/輸出裝置)和從處理資源150出去的路徑處理成明顯不同的。相反,在一些情況下(舉例來說,如DSP的算術加速器),自然的是,把數據的消耗方和產生方耦合在同一控制器客戶端120框架內。
為了提供處理資源150與其它系統資源之間的去耦等級,也可以通過控制器客戶端120設置多個另外的措施a)通過利用比較器530和比較地址寄存器540,可以針對由基址和偏移限定所限定的期望行為校驗處理資源150生成的地址。
b)利用減法器550和偏移地址寄存器560,可以偏移處理資源150生成的地址,使得處理資源150能夠具有針對任何指定線程的地址映射的標準化視圖,典型的是,標準化的循環地址(arund address)0×0。
對象在系統管理控制器130內使用的數據類型的實例被分成公共可見性(從系統可見並由系統整體操縱)和私有可見性(僅在系統管理控制器130內可見並僅由系統管理控制器130子模塊操縱)。為了確保設計在多個端應用上的可移植性,將全部線程、隊列以及集中的隊列描述符存儲在利用公共基類的專用緊密耦合存儲器190、控制器存儲器單元195內。
控制器存儲器單元各控制器存儲器單元195可以表示下列7種描述符類型中的任一種1、空閒列表單元。這個單元針對任一其它描述符類型的使用都是空閒的。不需要用戶初始化或運行時操縱。
2、線程描述符(TD)。其是表示應用/OS線程的數據結構。這個描述符可以存在於專用緊密耦合存儲器190中的等待隊列、就緒隊列或分派隊列中。不需要用戶初始化,但是需要運行時操縱。
3、調度程序根描述符(SRD)。其是調度程序層級的頂描述符。需要用戶初始化,但是不需要運行時操縱。該根描述符沒有父系,而子系可以是SSTD、DSTD或TD中的任一種。
4、靜態調度程序層描述符(SSTD)。其是靜態調度程序層描述符,其父系可以是SRD,或者是另一SSTD。SSTD的子系可以是另一SSTD、DSTD或TD中的任一種。
5、動態調度程序層描述符(DSTD)。其是動態調度程序層描述符。不需要用戶初始化,但是需要運行時操縱。DSTD的父系可以是SRD,或者是SSTD,但是DSTD可以僅具有TD子系。
6、分派隊列描述符。這種類型的描述符描述這樣的線程描述符的列表,即,其在等待來自相關聯的處理資源150的出棧操作。需要用戶初始化,但是不需要運行時操縱。
7、等待隊列描述符。這種類型的描述符描述這樣的線程描述符的列表,即,其在等待同步事件。需要用戶初始化,但是不需要運行時操縱。
在下列部分中更詳細地描述這些描述符。
圖9a到91示出了控制器存儲器單元195的各種形式及它們自己。
線程表示如果描述符需要初始化或運行時操縱,則通過控制器130 API完成操作。集中的任務分配和管理系統被設計成確保實時交互對於硬體實現是足夠合適/簡單的。
圖10示出了在線程描述符、系統管理控制器130、處理資源150與共享的系統存儲器140之間的典型關係。各線程原型包括唯一引用,pReference。這個引用不通過系統管理控制器130解釋或修改。pReference提供了針對系統存儲器140中限定待執行任務的數據結構的指針。典型地,其是控制器客戶端控制模塊125,並且至少包括下列元素函數指針(如圖10中所示的處理資源指令模塊145)、堆棧指針以及變元指針(如圖10同時示出的數據模塊135)。另外,可以限定提供遍及共享系統資源的帶內配置或安全性的域。
然而,根據應用和/或目標處理資源150,可以改變控制器客戶端控制模塊125的複雜性。具體地,注意,可以包括進一步的間接等級,其在指定合適的「控制」指令代碼和相對應的「數據路徑」代碼時,可以使全異的處理資源150能夠在特定情況下對相同數據執行相同的功能。
圖11示出了調度層級負載對兩個相異的處理資源(圖11中的類型I和類型II)150a和150b上的任務進行平衡的示例。除了在此具有與各類處理資源的相異的指令集所需的特定指令流相對應的針對各類處理資源的指針之外,pReference域(在針對這個層級排隊的線程描述符內)如前引用控制器客戶端控制模塊125。控制器客戶端120根據控制器客戶端控制模塊125內的標誌選擇恰當的指令流(指令模塊145a或145b)。
這個特徵可以是例如結合特定處理資源的下電特徵而有用的。在針對指定任務的最優處理器下電的情況下,希望次優處理器執行任務,而不是招致代價高的重新引導周期。而且,在例外的負載下,可以使得能夠實現輕負載的通用處理器,以例如減輕重負載的DSP上的負擔。
當處理資源150準備好處理線程時,其從與所述處理資源150唯一地相關聯的合適分派隊列出棧。出棧操作返回以下對象,其包括pReference,其是導致調度事件的調度程序測度;和包括對線程是否因超時或同步原型而就緒的指示的一組標誌。用於線程描述符的控制器存儲器單元195自動地返回到由將來的線程描述符使用的空閒列表。
公共對象這個部分描述系統通過控制器130 API可見的對象。典型地,這些對象由集中的任務分配和管理系統按運行時操縱,該任務分配和管理系統包括控制器130和客戶端120以及它們的相關聯的處理資源150。
運行時控制器130 API使得應用能夠引入新的線程、引入新的動態調度程序單元、發出同步原型、彈出調度的線程、推入被搶先的線程或去除線程。
圖12示出了系統管理控制器130內的線程管理的典型全貌圖。
線程原型圖9c和9d中示出了線程原型的格式。根據其依賴性,可以將線程描述符設置在等待隊列結構中或直接設置到就緒隊列結構中。如果要把線程設置在等待隊列結構中,則應用必須限定線程的依賴性。對外部事件的依賴表明其自身為依賴性引用。控制器130不解釋該依賴性引用;其被保持以與到來的同步原型比較,來確定何時將線程描述符轉到就緒隊列結構中。
對於從屬線程來說,可以結合空依賴性引用指定超時,這個措施可以用作基於線程硬體的定時措施。與依賴性引用無關地,超時導致在特定時間調度線程。
根據使線程進到就緒隊列結構的同步事件(定時器或原型),來標識線程。
同步原型同步原型與等待隊列連接,並且可以使一個或更多個線程描述符從等待隊列結構轉至就緒隊列結構。
各同步原型包括唯一的引用,其被與存儲在標識的等待隊列中的各線程描述符內的依賴性引用比較。按線程原型標識的優先級的順序繼續比較。
根據其類型,同步可以激發等待隊列內的最高優先級匹配線程描述符,或者全部匹配的線程描述符。而且,特殊廣播原型激發全部等待對列內的全部匹配的線程描述符。
中斷處理中斷服務線程(IST)方法提供使異步事件施加在處理資源150上的負載最小化的有價值方法。而且,在基於本發明的系統中的加速實時響應使得能夠以較少的系統修改實現IST的更普遍的使用。
控制器130從控制器外圍上的外部中斷輸入210自動生成同步原型。在接收到這些中斷同步原型的時候,將等待隊列內的預配置中斷服務線程描述符推到就緒隊列結構。
應用通常在系統初始化時,並且也在與相關聯的中斷服務線程的各次執行內,配置與外部中斷210相關聯的線程描述符。
這個措施有效地消除了針對系統內的任何其它專用中斷服務處理資源150的需要。而且,其通過相同的優先級結構並根據用於全部處理器任務的相同策略處理這些外部中斷210,從而消除了針對在已經執行更高優先級任務的處理資源內進行現場(context)切換的需要。通過利用正常搶先例程將當前執行的線程推回到就緒隊列中的能力,來支持任意數量的嵌套中斷。
採用類似的方式處理基於定時器的中斷(監控和定期事件)。基於時間的任務(定期的或只有一次的)必須插入到定時器隊列中,並且按與針對具有超時依賴性的線程類似的方式來處理。根據設計,這個方法排除了具有無用處理需求的基於時間的異常。
中斷優先級可以被設置成,使得中斷例程可以為獲得快速響應時間而搶先當前執行的任務。
私有對象典型地,在引導時間,即,在下電周期之後的系統初始化期間,配置私有對象。處理資源150在運行時期間幾乎不與內部對象直接交互。
內部對象是主隊列結構。系統管理控制器130管理四個主隊列類型等待隊列、定時器隊列、就緒隊列以及分派隊列。
在系統管理控制器130內存在額外的輔隊列,以便於內部操作。隊列之間的線程描述符移動僅以指針操作發生。從不複製線程描述符。
等待隊列結構可以通過同步事件或定時器事件將線程從等待隊列結構升到就緒隊列結構。線程可能對上述兩類事件都敏感,或者只對其中的一個敏感。在其中線程對兩者上述兩類事件都敏感的情況下,線程呈現在等待隊列和定時器隊列中。
等待隊列保持等待同步事件的從屬線程。通過同步原型從這些結構中去除線程,或者通過定時管理器360內部生成的定時器事件從處理資源150去除線程。可配置的多個等待隊列可用於應用編程器,以支持多個爭用範圍和中斷服務線程;必須根據各等待隊列內的單元的優先級處理它們。針對根據優先級的處理,存在兩種另選例,插入排序和提取排序。插入排序限定這樣一過程,即,通過該過程按嚴格的優先級順序存儲等待列表,並且根據新線程的優先級將它們插入到該列表內的一位置處。提取排序對插入新線程的位置進行任意的選擇,並且在同步之後對合格的線程描述符執行基於的優先級排序。本發明的優選實施例採用插入排序技術。
圖13示出了等待隊列的典型結構。按嚴格的優先級順序存儲條目。可以通過使用跳躍列表加速完成新線程插入的速度,並且圖14示出了典型的等待隊列跳躍列表。
如前所述,線程可以被阻止,以等待同步或定時器事件。一些線程專門等待同步事件,而類似地,一些線程專門等待定時器事件。在各情況下,線程將僅呈現在單個隊列中。各線程包括名義上與等待隊列和定時器隊列相關聯的兩組指針。在這些情況下,設置的定時器隊列和等待隊列指針分別是備用的。跳躍列表可以利用這些備用指針,例如,如果線程沒有出現在定時器列表中,則這些指針可以再用於指示在等待隊列中可能的向前跳躍。這使得當迭代地接近針對新從屬線程的正確插入點時,另外的順序搜索能夠跳過線程描述符塊。
一個另選例是跳躍節點描述符,並且在圖9k中示出了其一個示例,以及其相關聯的域(圖9l)。跳躍節點描述符可以根據預定測度周期性地插入到等待和定時器隊列結構中。根據在跳躍節點描述符之間或參與的線程描述符之間的限定最大觀察數量個線程描述符,插入跳躍節點描述符。跳躍節點描述符可以同時形成等待隊列和定時器隊列跳躍列表的一部分。
必須根據各新的從屬線程的優先級插入各新的從屬線程。這個過程典型地通過遍歷跳躍列表開始,直到新線程的優先級高於跳躍列表節點的優先級為止。此後,將按逐線程描述符的方式從該跳躍列表節點繼續搜索,直到發現正確的插入點為止。這使得另外的線性搜索在針對新從屬線程導向正確的插入點時能夠跳過等待線程塊。
同步事件具有三個明顯不同的類型單播同步事件對在指定等待隊列中發現的第一(最高優先級)合適的從屬線程觸發狀態轉換。
多播同步事件對在指定等待隊列中全部合適的從屬線程觸發狀態轉換。
廣播同步事件對在所有等待隊列中全部合適的從屬線程觸發狀態轉換。
如圖9i和9j所示,等待隊列描述符限定等待隊列。等待隊列描述符在系統初始化期間被設置一次,並且消耗一個控制器存儲器單元195。等待隊列僅包括從屬線程描述符和跳躍列表節點。
定時器隊列結構設置單個系統寬定時器隊列,其存儲等待超時事件的線程描述符。
圖15示出了定時器隊列的示範實施例。
跳躍列表還被用於加速如上所述的將線程插入到定時器隊列結構中。然而,在這種情況下,對於跳躍列表使用的是僅具有時間相關性(如果存在)的線程。
定時器隊列描述符存儲在寄存器內,使得能夠在定時器隊列的頭部與當前時間之間進行同時比較。這極大地減小了定時器信號對存儲器帶寬的影響。
就緒隊列結構就緒隊列結構保持準備執行的線程。這些線程利用獨立的線程原型生成,或者它們已經接收到它們所依據的同步原型。已經預先從等待隊列結構轉換出同步的線程。
就緒隊列結構可以包括調度程序節點描述符和獨立且同步的線程描述符。儘管允許線程描述符和動態調度程序層描述符實時進出,但是,這種結構很大程度上是在系統初始化期間限定的。
就緒隊列可以針對指定處理資源150或一組處理資源150調度線程。這使得在保持把特定任務定位於特定處理資源150(例如,硬體加速器或IO裝置)處的能力的同時,能夠實現橫跨多個處理資源150的負載平衡。
圖16示出了針對兩個處理資源150的典型就緒隊列結構。注意,動態調度程序層2可用於兩個根調度程序層。這使得系統管理控制器130在與根層1和2相關聯的處理資源150之間的動態層2之下能夠負載平衡線程。
調度程序層調度程序層限定為調度線程描述符而使用的層級。各調度程序層典型地限定調度算法、用於確定調度判決的一些測度和子單元的列表,這些子單元可以是進一步的調度程序層或線程描述符。存在三種類型的調度程序層描述符根、靜態以及動態。圖9e和9f示出了調度程序層存儲器單元的格式。
根調度程序描述符與分派隊列具有一對一映射的關係。它們表示就緒隊列結構中的最後結點。調度程序根描述符在系統初始化期間被配置並且永遠存在。
靜態調度程序描述符存在於調度程序層級中的根節點之下。靜態調度程序描述符的父系可以是其它靜態調度程序描述符或根描述符。它們根據它們的父系的限定調度程序算法和它們的調度程序測度與同胞節點競爭。靜態調度程序描述符在系統初始化期間被配置並且永遠存在。在操作期間,系統管理控制器130根據選擇的調度算法(例如,循環調度)保持調度程序測度。
動態調度程序描述符存在於調度層級中的根之下並且可能存在於靜態節點之下。動態調度程序描述符的父系可以是靜態調度程序描述符或根描述符。它們根據它們的父系的限定調度程序算法和它們自己的調度程序測度與同胞節點競爭。動態調度程序描述符可以在任何時間配置,並且可以在指定情況下退出。這使得系統與可能完全靜態設置相比能夠支持更多數量的調度層。系統管理控制器130通過利用似然性(儘管在全部時間使用了大量和各種線程和動態調度程序層,但在有限時段,暫態需求較小)來實現這個目標。例如,在具有安裝的支持最多4000個動態單元(線程和動態調度程序描述符)的存儲器的聯網系統中,可以及時在任何時刻支持16000個連接,來自全部連接空間的僅一小部分的數據單元將駐留在控制器中。因為如果動態調度程序描述符沒有出現,則其必須在添加子系線程描述符之前生成,所以以性能上的小損失為代價而實現了這種靈活性。
在操作期間,系統管理控制器130根據選擇的調度算法保持調度程序測度。在特定情況下,動態調度程序描述符將被釋放回控制器存儲器單元195空閒列表。這可通過把要處理的最後線程的pReference存儲在動態調度程序層描述符內的該層內來實現。控制器130 API支持控制器存儲器單元195的輪詢,以確定動態調度程序描述符在隨後的類似線程之間是否持續。
分派隊列分派隊列將調度的線程描述符保持在等待來自相關聯的處理資源150的服務的先入先出(FIFO)隊列中。在當前優選實施例中,允許最多32個分派隊列。在圖9g和9h中示出,通過分派隊列描述符限定分派隊列。在系統初始化期間配置分派隊列描述符。
將線程描述符從就緒隊列結構轉至分派隊列結構的過程是在硬體中執行的,並且不需要控制器130 API交互。
圖17示出具體實現本發明特徵的典型單的一個分派隊列結構的示範實施例。分派隊列描述符限定一全閾值。分派隊列長度僅被允許超過正在調度線程包或發生搶先線程入棧的全閾值。
通過處理資源經由控制器130 API調用的出棧操作,從分派隊列中去除單元。
在分派隊列描述符中包括優先級域。當線程從分派隊列彈出時,優先級域填充有現在執行的線程的優先級。進一步的API調用使得優先級能夠被執行處理器復位成另一值,以便避免優先級倒置。優先級倒置涉及不同優先級的至少3個線程,描述了同步需求和調度需求之間的衝突。優先級倒置允許低優先級線程無限期地阻止高優先級線程。例如,低優先級線程鎖定共享的資源,接著被高優先級線程搶先。接著,高優先級線程阻止低優先級線程鎖定的資源。因為高優先級線程現被阻止,正常情況下,低優先級線程將繼續,要是沒有第三介質線程(其獨立於鎖定的資源,並且現在可以運行)的話。低優先級線程從未獲得機會,以解鎖共享的資源,因此,無限期地阻止高優先級線程。「優先級最高限度」協議意指,當線程擁有共享的資源時,其按指定的優先級運行。這確保了如上所述的「低」優先級線程在擁有與高優先級線程共享的資源時,呈現「高」優先級。
線程包描述源於同一調度程序層的一組線程描述符。在強制更新調度確定之前,參數出現在限定可以從就緒隊列的層轉換至分派隊列的線程的數量的各調度程序描述符中。通過利用這個能力,並且設置調度程序層共享公共資源,可以向處理資源150提交與其它情況下相比表現出顯著更高的高速緩存本地性的線程塊,由此減小高速緩存缺失並增加系統性能。
圖18示出了根據本發明實施例的包括線程包的示範兩層調度層級。距離根層最遠的層,即,子層,利用了FIFO調度算法。根層調度程序算法被設置為循環。在實施例中,各FIFO隊列內的單元相對於同一隊列中的其它成員表現出高等級的高速緩存本地性。
圖18中的(a)示出了這樣的調度結果,其中子層線程包限制被設置成1。該結果被理想地交錯。這個方案針對各隊列呈現最小等待時間;然而,它也是最少存儲器感覺的(即,最可能表現出差的高速緩存性能)。在各調度的線程之後必需進行現場切換。如果根層與使用高速緩存的處理資源150相關聯,則強制高速緩存缺失可能影響系統性能。
圖18中的(b)示出了這樣的調度結果,其中子層線程包限制被設置成4。調度程序表現出更粗的更新特性,這表明其自己為按所述線程包限制設置的限制從同一隊列調度的線程塊。儘管這個突發(bursty)行為在一些情況下可能不夠理想,但是,其表現出更好的高速緩存性能,因為相對不太需要進行現場切換。所得效果模擬了粗粒(coarse grain)多線程化的優異的高速緩存性能,同時保持了細化方法的優異的編程模型。
如果系統與外界交互,則往往最不希望線程包的突發特性。然而,線程包僅是在目標處理資源150使用高速緩存的情況下的有益效果,因此與外界交互的專用程序處理資源150(例如,IO裝置)往往不使用高速緩存技術,因而不利用線程包。
返回到圖17,通過處理資源150經由控制器130 API調用的出棧操作,從分派隊列中去除單元。如果發生搶先,則可以將單元推回到就緒隊列中。
在分派隊列描述符中包括優先級域,其使得能夠實現優先級最高限度協議,防止針對共享數據的優先級倒置。各處理資源150具有唯一分派隊列。
調度針對應用和系統的調度需求在寬範圍內變化,並且實際上,僅可能在真實操作環境中測試之後才變得清楚。為適應這種情況,系統管理控制器130在使用的調度策略和調度算法中提供靈活性,可以在整個多芯處理器設計階段對其進行修改和調整。
調度策略可以分成三類1、協作調度程序,其依賴於當前執行的任務,以在調度新任務之前釋放處理資源150。儘管這個類型的系統與最小化冷高速緩存效應(例如,如果針對處理資源150的本地高速緩存不包括所需指令,則因此必須從更慢的高等級存儲器加載缺失的指令)和固定功能硬體加速器一致,但它可能不適合更複雜的嵌入式應用。
2、靜態算法驅動調度程序,其可以搶先當前執行的任務,以便執行更合格的任務。根據預定調度參數和算法,最合格的線程總是在這些系統中執行的線程。在系統開始執行之前,任何指定的任務的合格性都是固定的。
3、動態算法驅動調度程序,其可以按運行時重定義合格性。如前所述,當前運行的過程仍具有最高合格性,但是,合格性測度自任務開始執行起已經改變。
系統管理控制器130經由恰當的配置和與目標應用的運行時交互來滿足全部三個調度策略。
系統管理控制器130支持建立在作業系統和通信組內的許多調度算法。例如,在先入先出隊列中,優先級排隊或加權公平排隊。調度算法的恰當選擇表現出明顯的優點,特別是在涉及主觀質量測度的情況下。
在線程描述符內設置了兩個調度程序測度,以支持系統管理控制器130內的調度行為。第一個調度程序測度表示在所有情況下線程的優先級,並且在等待隊列結構、基於優先級的調度程序和分派隊列結構內使用。必要情況下,使用第二個調度程序測度來在單個線程及其對等體之間進行選擇。而且,任一測度都可以用於更新父系描述符內的測度。在線程描述符的第二原型內設置的值必須反映在其調度程序層級中經受的調度的類型。
這兩個調度程序測度被用於調度程序描述符和線程描述符二者中。然而,儘管在處理資源150內計算線程測度,但是,這對於調度程序層是不可能的。從而,必須從指定的層的調度線程傳遞足夠的參數,以使得調度程序層能夠更新其自己的測度。針對各調度程序層限定一組指令,這一組指令限定測度怎樣從子系向父系傳播。
對全部調度程序層級進行一定的關注,可以容易地生成調度程序算法的複雜組合,以在應用系統中提供改進的傳輸和任務管理能力。
參數繼承示例圖19示出了通常可在通信系統中發現的簡化隊列結構的示範實施例。該結構表示針對IO裝置的輸出隊列。共享FIFO隊列的全部線程處在同一連接上,因此,這就是按連接(per connection)排隊結構。在這個示例中,第二調度層使用加權公平排隊(WFQ)算法。這個算法基於指定任務的長度和加權因子計算該指定任務的完成時間。接著,它選擇具有最先完成時間的分組。儘管WFQ依賴於線程表示的分組長度的知識,但是,最初的FIFO隊列是獨立於這個信息的。在這種情況下,應用編程者必須確保分組的長度出現在針對各線程的調度程序測度中。在層級中更高的調度程序層針對它們自己的調度算法繼承這種參數。
對於WFQ來說,需要下列變量P 分配給連接的管道(pipe)帶寬的分數l 分組的長度B 總體管道帶寬c 連接帶寬d 調度程序層最終期限計算連接帶寬c的公式是
P*B=c如果把信道標準化為帶寬l,則p變得等於c。
接著,給出分組的處理完成時間t1p*l=t]]>這樣,需要的測度是1/p和l。因為p最初是一分數,所以這些值(1/p和l)都是整數。調度分組的長度通過調度程序層級向上傳遞,從而逐漸更新層的最終期限。整體上,在各次更新內執行的計算為d=d+[1p*l]]]>其中,在調度程序層描述符內存儲d和1/p(權重),而在調度更新期間通過層級傳遞l。在調度程序管理器330內執行這個計算。
雖然描述了本發明的具體實施例,但是,應當明白,這僅僅是示例而已,可以考慮對本發明進行各種修改。而且,本發明是採用例如但不限於行動電話或網際網路協議話音業務(VoIP)的多芯處理器的任何裝置或應用中的一般應用。因此,所述具體實施例不應被視為對下列權利要求
確定的保護範圍的限制。
權利要求
1.一種資源管理和任務分配控制器,該控制器用於安裝在具有多個互連處理器單元的多芯處理器中,所述處理器單元為處理可執行事務提供資源,所述多個處理器單元中的至少一個是主處理單元;所述控制器適於在安裝時與包括所述主處理單元在內的所述多個處理器單元中的每一個通信,並且包括控制邏輯,該控制邏輯用於根據預定分配參數將所述多芯處理器內的可執行事務分配給特定處理器單元。
2.根據權利要求
1所述的控制器,其中,在所述控制器的控制邏輯內包括的預定分配參數的範圍包括多個事務調度規則,所述多個事務調度規則用於調度所述處理器單元執行可執行事務的定時和/或順序。
3.根據權利要求
1或權利要求
2所述的控制器,其中,在所述控制器的控制邏輯內包括的預定分配參數的範圍包括多個系統管理規則,所述多個系統管理規則用於控制所述處理器單元執行可執行事務的方式。
4.根據權利要求
2或權利要求
3所述的控制器,所述控制器還被設置成生成向處理單元傳送的指令。
5.根據權利要求
4所述的控制器,所述控制器被設置成向一處理器單元發送處理器單元配置指令,該處理器單元配置指令使所述處理器單元又適於允許隨後執行所述控制器分配給該處理單元的可執行事務。
6.根據權利要求
4或權利要求
5所述的控制器,所述控制器被設置成通過向所述處理器單元發送一個或更多個中斷來生成指令。
7.根據權利要求
4或權利要求
5所述的控制器,所述控制器被設置成通過向所述處理器單元發送一個或更多個輪詢來生成指令。
8.根據任一前述權利要求
所述的控制器,其中,所述控制邏輯還包括可執行事務管理器;和專用存儲器管理器;其中,所述專用存儲器管理器控制所述可執行事務管理器對所述專用存儲器的訪問。
9.根據權利要求
8所述的控制器,其中,所述可執行事務管理器還包括可執行事務輸入管理器,該可執行事務輸入管理器被設置成保持對所述專用存儲器內的可用存儲的指示。
10.根據權利要求
9所述的控制器,其中,所述可執行事務輸入管理器被設置成保持所述專用存儲器內的可用存儲器位置的列表。
11.根據權利要求
10所述的控制器,其中,所述可執行事務輸入管理器保持對可用存儲器的指示,作為來自所述專用存儲器管理器的更新指令的結果。
12.根據任一前述權利要求
所述的控制器,其中,要分配的所述可執行事務包括多個線程,各線程形成在所述多芯處理器上執行的應用的一部分,其中,所述多個線程中的至少一些是能夠獨立於其它事件執行的獨立線程,並且其中,所述多個線程中的至少一些是從屬線程,該從屬線程的執行取決於預定事件的存在。
13.根據權利要求
12所述的控制器,其中,所述控制邏輯還包括時間管理器,該時間管理器被設置成向所述可執行事務管理器提供定時器功能。
14.根據權利要求
13所述的控制器,其中,所述預定事件是定時事件。
15.根據權利要求
12所述的控制器,其中,所述預定事件是先前線程的執行完成,或者是另一更合適線程的搶先。
16.根據權利要求
12所述的控制器,其中,所述可執行事務管理器還包括可執行事務同步管理器,該可執行事務同步管理器被設置成,在所述專用存儲器內保持表示等待預定事件發生的從屬線程的至少一個等待隊列列表,並在所述專用存儲器內保持表示等待定時事件的線程的至少一個定時器隊列列表。
17.根據權利要求
12所述的控制器,其中,所述可執行事務管理器還包括可執行事務輸出管理器,該可執行事務輸出管理器被設置成,在所述專用存儲器內保持表示等待在所述多個處理器單元中的相關聯的一個上執行的線程的多個分派隊列結構,並在所述專用存儲器內保持表示等待向所述多個處理器單元中的一個分配以在此執行的線程的多個就緒隊列結構。
18.根據權利要求
17所述的控制器,其中,所述可執行事務管理器還包括可執行事務調度管理器,該可執行事務調度管理器被設置成,提供並保持調度判決,該調度判決用於針對各處理器單元按序排列從所述就緒隊列內到所述分派隊列對線程的分派。
19.根據任一前述權利要求
所述的控制器,其中,所述控制邏輯還包括系統接口管理器,該系統接口管理器與所述可執行事務管理器通信,並且被設置成管理所述控制器對所述多芯處理器的訪問。
20.根據權利要求
19所述的控制器,其中,所述系統接口管理器被設置成,提供對所述可執行事務管理器的互連連接和配置以及運行時訪問。
21.根據權利要求
6所述的控制器,其中,所述控制邏輯還包括系統中斷管理器,該系統中斷管理器用於將在所述多芯處理器內採用的第一格式的系統中斷轉換成不同的第二格式的控制器中斷,所述可執行事務管理器可以理解該第二格式。
22.一種多芯處理器,該多芯處理器包括根據任一前述權利要求
所述的控制器,所述多芯處理器具有多個互連處理器單元,各處理器單元都具有相關聯的控制器客戶端,其中,各控制器客戶端被設置成,根據來自所述控制器的控制信號,控制在所述多芯處理器中的所述處理器單元與其餘部分之間的通信。
23.一種多芯處理器,該多芯處理器包括根據任一前述權利要求
所述的控制器,所述多芯處理器具有多個互連處理器單元,和至少一個控制器客戶端,其中,所述控制器客戶端被設置成,根據來自所述控制器的控制信號,控制在所述多芯處理器中的所述處理器單元與其餘部分之間的通信。
24.根據權利要求
22所述的多芯處理器,所述多芯處理器還包括所述控制器和所述多個互連處理器單元可訪問的共享系統互連部。
25.根據權利要求
24所述的多芯處理器,所述多芯處理器還包括外部接口,該外部接口用於將所述多芯處理器連接至一個或更多個外部裝置。
26.根據權利要求
22到25中的任一項所述的多芯處理器,所述多芯處理器還包括與所述控制器通信的專用存儲器。
27.根據權利要求
26所述的多芯處理器,其中,所述專用存儲器可由所述控制器專有訪問。
28.根據權利要求
22所述的多芯處理器,其中,所述專用存儲器可由所述控制器和所述多芯處理器中的至少一個其它組件訪問。
29.根據權利要求
22到27中的任一項所述的多芯處理器,其中,所述存儲器包括多個單獨存儲器單元。
30.根據權利要求
29所述的多芯處理器,其中,所述多個單獨存儲器單元的數量是可由用戶限定的。
31.根據權利要求
30所述的多芯處理器,其中,各存儲器單元具有相似的大小,並且可由用戶限定存儲器單元的數量導致可變的存儲器大小。
32.根據權利要求
22所述的多芯處理器,其中,所述控制器客戶端是運行在相關聯的處理器單元上的軟體應用。
33.根據權利要求
22所述的多芯處理器,其中,所述控制器客戶端是依賴於相關聯的處理器單元的功能性的硬體控制器客戶端。
34.根據權利要求
33所述的多芯處理器,其中,所述控制器客戶端還包括客戶端控制邏輯,該客戶端控制邏輯用於在被來自所述控制器的控制信號激活時控制相關聯的處理器單元。
35.根據權利要求
34所述的多芯處理器,其中,所述控制器客戶端還包括多個緩衝器,所述多個緩衝器用於暫時存儲在所述多芯處理器中的所述處理器單元與其餘部分之間發送的通信消息。
36.根據權利要求
35所述的多芯處理器,其中,所述多個緩衝器是先進先出緩衝器。
37.根據權利要求
35所述的多芯處理器,其中,所述控制器客戶端還包括多個存儲器單元,各存儲器單元被設置成存儲地址。
38.根據權利要求
37所述的多芯處理器,其中,所述控制器客戶端還包括多個比較器,各比較器被設置成比較相關聯的處理器單元生成的地址和在所述多個存儲器單元中的一個存儲器單元中存儲的地址。
39.根據權利要求
37所述的多芯處理器,其中,所述控制器客戶端還包括減法器,該減法器被設置成,從相關聯的處理器單元生成的地址減去在所述多個存儲器單元中的一個存儲器單元中存儲的地址。
40.一種在多芯處理器內控制並分配資源的方法,該多芯處理器具有多個處理器單元,所述多個處理器單元中的至少一個是主處理器單元,所述方法包括以下步驟在與所述主處理器單元分離的資源管理和任務分配控制器處接收可執行事務;和與中央處理單元控制無關地將所述可執行事務分配給所述多個處理器單元中的一個處理器單元。
41.根據權利要求
40所述的方法,所述方法還包括以下步驟將所述可執行事務經由事務管理客戶端定向到所述多個處理器單元中的一個處理器單元。
42.根據權利要求
41所述的方法,其中,所述事務管理客戶端是硬體客戶端。
43.根據權利要求
41所述的方法,其中,所述事務管理客戶端是軟體客戶端。
44.根據權利要求
42所述的方法,所述方法還包括以下步驟在所述事務管理客戶端內存儲預定地址。
45.根據權利要求
44所述的方法,所述方法還包括以下步驟在所述事務管理客戶端處,從相關聯的處理器單元生成的地址減去所述預定地址以生成標準化的地址。
46.根據權利要求
44所述的方法,所述方法還包括以下步驟在所述事務管理客戶端處,比較相關聯的處理器單元生成的地址和存儲的所述預定地址;和根據比較結果配置所述處理器單元。
47.根據權利要求
42所述的方法,所述方法還包括以下步驟在所述事務管理客戶端處,存儲從所述多芯處理器的其餘部分到相關聯的處理器單元的整個通信消息;和隨後將所述整個消息傳遞到相關聯的處理器單元。
48.根據權利要求
42所述的方法,所述方法還包括以下步驟在所述事務管理客戶端處,從所述多芯處理器的其餘部分向相關聯的處理器單元流式傳輸通信消息。
49.根據權利要求
41所述的方法,所述方法還包括以下步驟利用第二事務管理客戶端生成、執行或刪除針對第一事務管理客戶端的可執行事務。
50.根據權利要求
40到49中的任一項所述的方法,所述方法還包括以下步驟基於預定的一組調度參數,將可執行事務分配給所述多個處理器單元中的一個處理器單元。
51.根據權利要求
50所述的方法,其中,所述一組調度參數是可由用戶限定的。
52.根據權利要求
50或權利要求
51所述的方法,所述方法還包括以下步驟監控所述控制器使用的所述調度參數的列表。
53.根據權利要求
50到52中的任一項所述的方法,所述方法還包括以下步驟隨時間改變所述一組調度參數。
54.根據權利要求
52所述的方法,其中,所述保持所述調度參數的列表的步驟還包括以下步驟保持可以由所述多個處理器單元中的一個或更多個處理器單元執行的就緒任務的列表。
55.根據權利要求
50到53中的任一項所述的方法,所述方法還包括以下步驟基於在所述多芯處理器內平衡處理器資源的要求,將可執行事務分配給所述多個處理器單元中的一個處理器單元。
56.根據權利要求
50到53中的任一項所述的方法,所述方法還包括以下步驟當確定希望由所述多個處理器單元中的一個處理器單元執行更高優先級的任務時,防止向該一個處理器單元分配可執行事務。
57.根據權利要求
40到56中的任一項所述的方法,所述方法還包括以下步驟保持超過預定時間長度尚未被分配的可執行事務的列表。
58.根據權利要求
52所述的方法,其中,所述監控所述調度參數的列表的步驟還包括以下步驟保持等待預定事件的等待任務的列表。
59.根據權利要求
58所述的方法,其中,所述預定事件是定時器事件、同步事件或者全部兩個。
60.根據權利要求
58所述的方法,所述方法還包括以下步驟根據相互排斥的預定事件保持等待任務的多個列表。
61.根據權利要求
52所述的方法,其中,所述監控所述調度參數的列表的步驟還包括以下步驟保持等待在特定處理資源上執行的分派任務的列表。
62.根據權利要求
61所述的方法,所述方法還包括以下步驟在超時期滿時將等待預定事件的可執行事務移向就緒隊列。
63.根據權利要求
40到62中的任一項所述的方法,其中,所述控制器專用於分配任務。
64.一種實質上上如在此參照附圖所述的用於多芯處理器的資源管理和任務分配控制器。
65.一種實質上如在此參照附圖所述的多芯處理器。
66.一種實質上如在此參照附圖所述的在多芯處理器中控制並分配資源的方法。
專利摘要
本發明提供了一種資源管理和任務分配控制器,該控制器用於安裝在具有多個互連處理器單元的多芯處理器中,所述處理器單元為處理可執行事務提供資源,所述多個處理器單元中的至少一個是主處理單元,所述控制器適於在安裝時與包括所述主處理單元在內的所述多個處理器單元中的每一個通信,並且包括控制邏輯,該控制邏輯用於根據預定分配參數將多芯處理器內的可執行事務分配給特定處理器單元。
文檔編號G06F15/80GK1993674SQ20058001080
公開日2007年7月4日 申請日期2005年3月30日
發明者馬克·大衛·李佩特 申請人:科威爾公司, 富士通株式會社導出引文BiBTeX, EndNote, RefMan

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀