TWI417792B - 在處理器系統之指令階使資源分配識別之方法及裝置 - Google Patents

在處理器系統之指令階使資源分配識別之方法及裝置 Download PDF

Info

Publication number
TWI417792B
TWI417792B TW097104614A TW97104614A TWI417792B TW I417792 B TWI417792 B TW I417792B TW 097104614 A TW097104614 A TW 097104614A TW 97104614 A TW97104614 A TW 97104614A TW I417792 B TWI417792 B TW I417792B
Authority
TW
Taiwan
Prior art keywords
instruction
resource allocation
raid
core
information
Prior art date
Application number
TW097104614A
Other languages
English (en)
Other versions
TW200901040A (en
Inventor
Gavin Balfour Meil
Steven Leonard Roberts
Christopher John Spandikow
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200901040A publication Critical patent/TW200901040A/zh
Application granted granted Critical
Publication of TWI417792B publication Critical patent/TWI417792B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Storage Device Security (AREA)

Description

在處理器系統之指令階使資源分配識別之方法及裝置
本發明係關於一種資訊管理系統,特別是指一種在資訊管理系統中有效分配共享資源。
資訊管理系統(IHS)可包含一處理器系統,具有多個處理器以處理、管理、通訊或控制資訊。多核心處理器一詞係描述一個具有多重處理器或核心整合於一共通積體電路的處理器系統。IHS或處理器系統可同時支援多重作業系統。再者,可同時在處理器系統中執行多重軟體應用程式。舉例而言,處理器系統可在執行掃毒應用程式的同時,亦執行計算並傳送圖像資料到顯示器的程式。多重處理環境係多個程式同時執行或進行的環境。在傳統處理器架構中,多重處理環境是常見的。
在程式執行期間的標準程序,處理器系統中一典型軟體應用程式會消耗記憶體位址及輸入/輸出(I/O)資源。處理器系統執行載入與儲存作業時會使用記憶體及/或I/O匯流排。處理器系統仰賴匯流排資源的配置,作為其有效資源管理的特色。記憶體載入/儲存請求,亦稱為讀取/寫入請求,需使用記憶體匯流排作資料移轉。一個在執行中的的軟體應用可向常駐於IHS中的系統記憶體,初始化記憶體資料移轉請求。習知處理器系統可包含多個請求器進行記 憶體存取。再者,與其他程式同時執行的不只一個程式,可能會提出記憶體載入/儲存請求而初始化記憶體載入/儲存或資訊移轉作業。處理器系統內的多個處理器亦可要求共有的I/O匯流排。因此,處理器系統的多種功能元件需要彼此競爭,並最終共享處理器系統的資源。
處理器系統典型地包含資源管理器,以管理記憶體匯流排的多重請求,並且分配每個資源頻寬的部分給每個資源請求器。處理器或處理器系統內的處理器元件即資源請求器。資源請求與資源可用間的平衡,係設計有效資源管理器的主要挑戰。處理器系統亦包含競爭請求器間必須分享的共通I/O介面匯流排。具體而言,處理器系統在作業系統、軟體應用、以及處理器元件間,分享共通I/O介面匯流排。資源管理器將頻寬分配給I/O介面資源請求器。I/O介面匯流排與外部裝置溝通,例如但不限於鄰近處理器系統、顯示器、鍵盤、滑鼠、光碟機、及其他裝置等。
習知的處理器系統軟體架構階層可包含超管理器,即一層軟體以控制作業系統存取處理器資源、記憶體資源、及I/O資源。超管理器使得多重的軟體應用及作業系統,在處理器系統或IHS中執行而不至於衝突。超管理器控制資源管理器,並限制資源管理器對每個應用程式所允許的記憶體量與I/O匯流排頻寬,因而在處理器系統內提供多重應用程式有效共存合作的環境。資源管理器利用限制或 禁止記憶體與I/O匯流排的使用,來控制記憶體頻寬與I/O匯流排頻寬。沒有此等資源管理器的話,應用程式可能會無限制的消耗I/O資源,以致其他應用無法得到足夠的匯流排頻寬,而在合理的時間內完成應用程式的工作。不良的記憶體匯流排或I/O匯流排資源管理,可能會產生許多不理想的情況,例如持續重試或程式終止。具體而言,不良的匯流排資源管理可能導致處理器系統無效率地消耗有限的匯流排頻寬資源。
處理器系統中,處理器或單一積體電路包含多核心或處理器元件,以及記憶體與I/O控制器是常見的。此等處理器系統有時稱為多核心處理器或系統單晶片(SoC)。此等處理器系統可包含一或多個可請求存取記憶體及I/O資源之硬體單元。硬體單元可包含一般處理器核心或核心、特定處理器核心或核心,以及代表I/O裝置可初始化請求的I/O控制器。在此多核心處理器中的資源管理器,可將記憶體的部分與I/O頻寬分配給處理器系統中硬體單元的資源分配群組。可惜的是,此等分配通常相對粗糙。舉例而言,此等分配無法解決執行於單一硬體單元中多重作業系統或應用程式間資源需求的差異。此等粗糙的資源分配可能導致處理器系統或IHS作業上的問題。舉例而言,利用此等粗糙的資源分配,高頻寬的應用程式,例如掃毒程式,可能會有效迫使例如圖像使用介面之類的使用者互動應用程式無法執行。這會引起使用經驗的不良影響。
因此,需要一種方法及裝置,以解決上述處理器系統中資源管理器所面臨之問題。
在一實施例中,揭露一種藉由包含複數個硬體單元之處理器以存取共享資源的方法。本方法包含由處理器中的硬體單元接收指令,而此指令用於執行對共享資源之存取請求。本方法亦包含當此指令經過硬體單元中的複數個管線階段時,提供資源分配識別資訊給此指令,資源分配識別資訊在硬體單元中之一管線階段到另一管線階段間伴隨著此指令。在一實施例中,其中之一管線階段係位址轉譯管線階段,以實施用於指令之有效對真實位址轉譯,在位址轉譯管線階段,資源分配識別資訊係關聯著指令。在一實施例中,其中之一管線階段係儲存佇列,在位址轉譯管線階段之位址轉譯後,儲存佇列接收指令與相關資源分配識別資訊。
在另一實施例中,揭露一種處理器,包含位於半導體晶粒上的複數個硬體單元。此複數個硬體單元用以存取此複數個硬體單元外部的共享資源。此複數個硬體單元包含第一硬體單元。第一硬體單元包含複數個管線階段,其中第一硬體單元係接收指令,而此指令用於執行對共享資源之存取請求。組態第一硬體單元以當指令經過第一硬體單 元中的複數個管線階段時,提供資源分配識別資訊給此指令。在一實施例中,第一硬體單元的其中之一管線階段係位址轉譯管線階段,以實施用於指令之有效對真實位址轉譯,在位址轉譯管線階段,資源分配識別資訊係關聯著指令。在一實施例中,其中之一管線階段係儲存佇列,在位址轉譯管線階段之位址轉譯後,儲存佇列接收指令與相關資源分配識別資訊。在一實施例中,除了第一硬體單元之外的每個其它複數個硬體單元皆包含複數個管線階段,其中其它硬體單元接收對共享資源執行存取請求之指令,當此指令經過其它硬體單元中之複數個管線階段時,其它硬體單元提供資源分配識別資訊給此指令。
在一個包含複數個處理器單元的處理器系統中,資源分配管理器(RAM)可將記憶體與I/O頻寬分配率分配到每個可能請求記憶體或I/O存取的處理器單元,進而管理多個應用程式間的資源頻寬率。硬體單元(HU)一詞,係指處理器系統中每個可能發佈記憶體或I/O存取請求的處理器單元。系統軟體應用程式中的載入或儲存指令,係執行於硬體單元中,可產生一特定記憶體或I/O請求。憑證管理器係處理器系統可使用之RAM類型的一例。憑證管理器可包含一或多個資源控制暫存器,負責管理每個HU的資源頻寬分配率。RAM將HU群組化為資源分配群組(RAG)。資源控制暫存器利用憑證管理器內所分配的各個 識別符,來辨識處理器系統中的每個特定RAG。憑證管理器透過憑證授予程序提供一請求HU記憶體與I/O介面匯流排的使用。各憑證分別控制對HU的匯流排頻寬請求,以控制記憶體與I/O匯流排頻寬的使用量。憑證管理器將每個RAG相關聯的匯流排頻寬量,稱作憑證率,即在既定RAG中憑證管理器授予請求HU憑證的比率。憑證管理器可將RAG的識別符與憑證管理器之資源控制暫存器中的特定憑證率相關聯,進而得分配一特定頻寬分配率給一特定RAG。
超管理器可重新程式化憑證管理器中的資源控制暫存器,藉以修改處理器系統中HU的每個RAG分配憑證率或頻寬分配率。在程式執行期間改變RAG分配的主要缺失,係修改現有RAG的憑證率所需的時間或系統匯流排週期。執行程序應首先用完或”沖刷”所有目前仍存在的資源請求,即那些使用現有資源分配設定的資源請求或指令。處理器系統以”SYNC”指令完成此指令沖刷。再者,應用程式應在新頻寬分配率影響現有指令前,先插入SYNC指令。SYNC指令導致程式指令的現有管線佇列持續進行處理,直到管線佇列完成,或在SYNC指令後下一個指令前清空。所有的匯流排I/O作業應在新頻寬率可發生影響前完成。此SYNC指令為主的程序可能會消耗大量的時間。
一旦完成SYNC指令程序,管線佇列中的下一個指令可修改RAM控制暫存器,進而修改RAG頻寬分配率。修改RAM控制暫存器的程序亦可能因為RAM與請求新RAG分配之HU間的距離相對較大,而消耗大量的時間。一旦完成新的RAG分配,HU中的指令管線佇列,可持續以新的頻寬分配率對後繼指令進行處理。不幸的是此緩慢的RAG分配改變程序,可能導致有關頻寬分配率替換期間所執行之複雜系統時鐘週期的系統延遲。基於此因素,此RAG分配改變程序不適合改變頻寬分配率。
在另一個RAG分配改變的方法中,每個HU會利用各HU中的資源分配識別符(RAID)暫存器,以辨識HU指配的特定RAG。修改RAID指配以及特定HU的資源頻寬分配率,係比改變各指令間之資源頻寬率為更實用的方法。因為HU係將RAID資訊維持在本區,所以處理器系統使用較少的系統匯流排週期時間來改變RAID,因此將HU與具有潛在不同頻寬分配率的不同RAG相關聯。此本區RAID儲存方法較非本區RAID儲存的方法來的快。然而,在本區RAID儲存方法中,處理器系統仍然必須沖刷指令管線佇列,以允許新頻寬分配率與要求新比率的下一個指令同步化。因此,本區RAID儲存方法仍花費甚大的系統資源時間。
RAM位於處理器系統內HU的中心,係管理HU之 記憶體存取與I/O介面存取的請求。雖然系統軟體可將系統記憶體儲存分配給處理器系統中的一特定工作,但是記憶體匯流排係代表多個應用程式必須共享的資源。再者,RAM必須有效地管理記憶體匯流排頻寬,以提供記憶體資源的有效使用。
圖1係描述處理器系統100中集中化資源管理的方塊圖。處理器系統100包含一多核心處理器105,於內整合一集中化資源分配管理器RAM 110。多核心處理器的一範例,係一細胞寬頻引擎(CBE)處理器,如IBM公司、Sony以及Toshiba於2005年8月8日所發表,標題為”細胞寬頻引擎架構、第1.0版”的文獻所示,其揭露包含於此供參考。RAM 110耦接主處理器元件PPE 115,其提供一般目的的運算功能。在一方法中,RAM 110係一憑證管理器,負責將記憶體或I/O匯流排認可的憑證授予一請求HU。每個憑證可代表匯流排頻寬的一特定分配率,例如128位元組,或者,根據特定應用程式可為其他數值。
主處理器元件PPE 115可累積或堆積RAM 110的憑證。具體而言,PPE 115可向RAM 110請求憑證,並堆積或留置RAM 110的憑證。PPE 115可使用此憑證作為RAM110對未來記憶體或I/O請求的授權。此特定處理器系統100包含8個協同處理器元件,如圖1所示之SPE-1、SPE-2、SPE-3、SPE-4、SPE-5、SPE-6、SPE-7、以及SPE-8, 係耦接RAM 100。如同PPE 115,此8個SPE中的每個SPE都可單獨向RAM 110請求憑證。因此每個SPE與PPE係在此所定義的HU。在此特定處理器系統100中,SPE與PPE可代表四個RAG。RAM 110內的控制暫存器儲存每個RAG的頻寬分配率。
記憶體控制器160耦接RAM 110,並管理記憶體匯流排165的介面。記憶體匯流排165與隨後描述之資訊管理系統(IHS)的系統記憶體(未圖示)作溝通。系統記憶體可包含8個相同記憶體大小的區塊。請求記憶體載入或儲存之HU(例如PPE或SPE)分別存取每個記憶體區塊。RAM 110對每個區塊發佈個別的憑證。在存取載入與儲存期間,一個獨立的記憶體區塊需要設定及安頓時間。RAM 110不會因為任何記憶體匯流排作業的長期遲延,而對相同的記憶體區塊發佈連續的重複憑證。
一I/O介面控制器170耦接RAM 110,並管理高速與低速介面匯流排的I/O介面。具體而言,高速介面輸入匯流排IOIF-IN 175與高速介面輸出匯流排ICIF0-OUT 180耦接處理器105與高速裝置,例如另一個CBE或圖像顯示器。低速介面輸入匯流排IOIF1-IN 185與低速介面輸出匯流排IOIF1-OUT 190耦接處理器105與較低速介面裝置,例如鍵盤與光碟讀/寫裝置。I/O匯流排係輸入/輸出介面匯流排175-190的簡稱。
HU係處理器系統100中的硬體元件、處理器元件、或功能單元,其藉由產生載入或儲存請求給處理器系統100中的記憶體位址或I/O,而直接請求記憶體或I/O資源頻寬的使用。RAM 110控制其分配給處理器系統100中各HU之任何RAG的記憶體與I/O介面頻寬量。如圖1所示,處理器系統100包含好比PPE 115與SPE1-8的HU。I/O介面控制器170可視為此特定處理器系統100架構中的第十個HU,因為介面控制器170可以I/O裝置的名義,請求直接記憶體存取(DMA)。記憶體控制器160與記憶體匯流排165不可視為HU,因為記憶體控制器160與記憶體匯流排165都無法直接請求記憶體或I/O匯流排的使用。此十個HU皆係透過RAM 110的作業與互動,來使用CBE的記憶體與I/O頻寬。
RAM 110將HU分配成相同頻寬分配率的群組,即RAG。RAM 110分配總I/O匯流排頻率的一既定百分比給每個RAG。RAM 110產生憑證,在憑證中授予一既定RAG。再者,RAM 110係透過發佈或授予憑證比率來管理資源分配。每個憑證提供一個記憶體匯流排與I/O介面匯流排資源分配的機制。在此範例中,每個憑證支援128個位元組的記憶體或I/O頻寬。當RAM 110發佈一個憑證授予給一個HU時,接著,此HU將已認可的I/O或記憶體匯流排程序,初始化到128位元組的I/O匯流排使用量的 憑證大小,並管理此I/O或記憶體匯流排程序,直到完成為止。
圖2係圖1處理器系統100之RAM 110可使用的資源分配圖。此圖包含一欄210代表RAG號(RAG#)。RAM 110係根據圖2所描述的資源分配圖運作。包含超管理器的系統軟體可決定處理器系統100的頻寬分配率。再者,系統軟體於RAM 110的資源控制暫存器195載入RAG分配之頻寬率。RAM 110管理此四個RAG(即如欄210所示之RAG#0-3)中每個群組的特定記憶體匯流排與I/O介面‘頻寬分配率。RAM 110根據系統軟體指定給一特定RAG的RAG號,以管理此特定HU的I/O頻寬分配率。請求記憶體存取或介面I/O移轉的軟體指令,係使用在圖2中欄215的HU與欄210的RAG號間有相關聯的RAG號的資源分配率指配。
如上述,HU係具有請求記憶體存取或I/O介面移轉能力的處理器系統的硬體處理元件。在圖1以及圖2欄215的範例中,HU為PPE、SPE-1、SPE-2、SPE-3、SPE-4、SPE-5、SPE-6、SPE-7、SPE-8、以及I/O介面控制器170。系統軟體係藉由將特定RAID位元分配給每個HU中的個別RAID暫存器,而將特定RAG數值指配給每個HU,如圖210所示。再者,欄210的RAG數值指配可以動態改變,進而允許處理器系統100根據系統軟體的需要,隨機 改變I/O匯流排頻寬的分配率指配。如圖2,RAM 110分配RAG號等於0或RAG0給硬體單元PPE 115與SPE-1。RAG0指配代表RAG0中硬體單元HU的一特定頻寬分配率。用於記憶體存取或I/O介面請求,PPE 115與SPE-1之未來請求的頻寬分配率指配,將會對應到RAG0指配,直到系統軟體或更具體為超管理器修改此指配為止。在圖2的範例中,RAM110更指配SPE-2、SPE-3、SPE-4、及SPE-5給RAG號1或RAG1。RAM 110指配SPE-6與SPE-7給RAG號2或RAG2。RAM 110指配SPE-8給RAG號3或RAG3。I/O控制器170包含4個虛擬I/O通道(未圖示),每個通道對應到一個特定RAG號,即RAG0-RAG3,就如同鄰近I/O控制器170之欄210所示之RAG號。再者,RAM 110將來自一I/O裝置的每個I/O請求指配給一既定虛擬通道,藉此將此I/O請求分配給一對應的RAG。
在一範例中,處理器系統100更可將一記憶體區塊220分為8個獨立的區塊。每個獨立的記憶體區塊代表一個特殊的記憶體載入或儲存作業。記憶體區塊存取或記憶體資料移轉需要一個對RAM 110的憑證請求以及RAM110所授予之對應憑證。RAM 110管理記憶體區塊載入與儲存作業的移轉頻寬。RAM 110將每個記憶體區塊載入或儲存請求與一單一頻寬率相關聯。記憶體控制器160管理處理器系統100中每個獨立記憶體區塊I/O的載入與儲存作業。
RAM 110憑證請求與憑證授予程序,係一個代表總匯流排頻寬可用性的百分比。再者,頻寬分配率為一個整體匯流排可用性(即100%)的百分比。在圖2的範例中,頻寬百分比係顯示於記憶體區塊220的每行中。RAG0繪示總記憶體匯流排頻寬的20%。RAG1代表總記憶體匯流排頻寬的30%。RAG2代表記憶體匯流排頻寬的15%。如圖2所示,RAG3代表總記憶體匯流排頻寬的10%。最後,對應I/O控制器170的4個虛擬通道,即RAG0-RAG3代表總記憶體匯流排頻寬的10%。雖然記憶體匯流排的總匯流排頻寬為100%,但是所有RAG指配的總匯流排頻寬百分比不需要等於100%。具體而言,由於匯流排的全使用率永遠不會為處理器系統100的正常狀態,因此記憶體頻寬的總百分比可能加總後小於100%。在圖2的範例中,記憶體頻寬的總百分比(即85%)描述欄220所示之所有百分比的總合。
圖2中的I/O介面,欄230描述RAM 110所管理的第二到第五個資源。此等鏈結資源包含I/O匯流排IOIF0-In175、IOIF0-Out 180、IOIF1-In 185、以及IOIF1-Out 190。此四個I/O介面匯流排的每個匯流排,皆代表RAM 110的一個特定頻寬分配資源與I/O頻寬匯流排分配百分率。具體而言,如圖2所示,RAM 110指定一特定RAG號給一特定HU,RAG號接著以百分比的形式,指定頻寬分 配率給五個相關資源(即記憶體區塊220)之各個資源,以及四個I/O 230匯流排之各個匯流排。圖2中所示的IOIF0-In 175代表RAG0為10%的I/O介面匯流排頻寬分配率,RAG1為20%、RAG2為15%、RAG3為15%、以及最後RAG0-RAG3為20%。在記憶體匯流排的情況中,總匯流排頻寬分配百分比無須結合成總I/O介面匯流排頻寬分配的100%。IOIF0-Out在欄230代表RAG0為15%的I/O介面匯流排頻寬分配率、RAG1為10%、RAG2為20%、RAG3為25%、以及最後RAG0-RAG3為15%。IOIF1-In 185代表RAG0為15%的I/O介面匯流排頻寬分配率、RAG1為20%、RAG2為10%、RAG3為10%、以及最後RAG0-RAG3為10%。圖2中所示的IOIF1-Out 190代表RAG0為10%的I/O介面匯流排頻寬分配率、RAG1為10%、RAG2為30%、RAG3為15%、以及最後RAG0-RAG3為15%。在某些情況下,RAM 110可使用附加RAG號指配,以管理目前不具有頻寬分配或憑證授予的HU之記憶體或I/O請求。
圖3繪示包含一資源分配識別符(RAID)暫存器335之硬體單元(HU)300的方塊圖。好比處理器系統100的多核心處理器系統,可利用HU 300作為其任一與所有的硬體單元。具體而言,處理器系統100可使用HU 300作為PPE115、SPE-1-SPE-8以及I/O控制器170。然而,具有此等HU 300組態的處理器系統100可能經歷下述匯流排頻寬 指配問題。
HU300包含一指令管理器305與其他硬體306。指令管理器305包含一多階指令管線,負責管理下述之指令執行。其他硬體306可包含好比本區快取記憶體、算數邏輯單元(ALU)、或適合特定類型HU的其他硬體。舉例而言,PPE或SPE類型的‘HU可包含一ALU,而I/O控制器類型的HU可能不包含一ALU。
每個特定組態的HU,如處理器系統100內的代表HU 300,可初始化一系列的程式軟體指令,以作為較大軟體應用程式的一部分、或執行於處理器系統內之一應用程式。一特定硬體單元HU 300接收執行於處理器系統內,來自應用程式的一序列指令。應用程式之輸出提供指令佇列307的輸入。HU 300將此指令放置於HU 300內之指令管理器305的指令佇列307。指令佇列307耦接一指令暫存器310,其包含下一個在HU 300內執行的指令。HU 300解碼此下一個在HU內執行的指令,例如一記憶體儲存或I/O介面儲存指令。此儲存指令需要一記憶體或介面I/O請求。在此儲存指令後,下一個HU 300初始化的指令從指令佇列307移到指令暫存器310。
在一指令儲存序列中,當HU完成儲存指令的執行時,HU 300首先鑑定寫入資料的有效位址(EA)。指令管 理器305包含一組一般目的暫存器(GPR)315,其包含促進算出寫入指令之有效位址(EA)的運算元。GPR 315耦接運算元暫存器320與運算元暫存器325。此指令暫存器310、運算元暫存器320、以及運算元暫存器325皆耦接一EA產生器330的各個輸入。EA產生器330計算指令暫存器310中儲存指令的有效位址(EA)。EA產生器330的輸出耦接一EA暫存器335的輸入,並提供其儲存指令的有效位址。EA暫存器335的輸出耦接一有效對真實位址解譯器(ERAT)340的輸入。ERAT 340接收EA暫存器335的有效位址資料做為輸入。
在一記憶體或I/O儲存請求期間,HU300使用軟體應用運作架構內之有效位址解譯器以產生真實位址。真實位址與記憶體位址位置直接相關。具體而言,真實位址對應到HU外的一記憶體位置,例如IHS的系統記憶體(未圖示)。ERAT 340可利用相關陣列中之頁表解譯資料的頁表快取,作為一查詢表。再者,ERAT 340中的每個項目係一個頁表項目(PTE)。ERAT 340的每個項目將記憶體的一頁之有效位址(EA)映射至真實位址(RA)。此有效位址(EA)或虛擬位址代表進入ERAT 340頁表快取或記憶體映射陣列的輸入。ERAT 340資料表儲存此真實位址(RA)以及與EA輸入相關聯的WIMG位元。HU 300透過記憶體頁來組織ERAT快取。ERAT 340的記憶體頁可為固定大小或多個不同大小之其一。此等記憶體頁代表解譯之位址的最 高階位元組合。在一範例中,ERAT 340可解譯一個4千位元組的有效位址。在此特定範例中,ERAΥ 340沒有使用有效位址之最低階的12個位元作解譯。具體而言,ERAT340將此有效位址的較低階的12個位元解譯為頁偏值,其中4千位元組的有效位址的較低階的12個位元在解譯後維持不變。因此,此頁代表有效與真實位址(RA)之上層剩餘位址位元。
ERAT 340將WIMG位元儲存為記憶體位址移轉屬性。具體而言,在圖3的範例中,ERAT 340將WIMG位元儲存為位址儲存屬性。WIMG位元決定處理器系統中的軟體與硬體存取記憶體的方法。WIMG位元包含一W位元,其對應到位址請求之寫回或寫過狀態,以及一I位元,其代表儲存請求的快取致能或快取禁止狀態。M位元代表儲存請求的本區或全區存取權。G位元對應到位址儲存請求的受保護或未保護狀態。ERAT 340的輸出耦接一RA、WIMG暫存器345的輸入。ERAT 340產生實體或真實位址RA,以及儲存屬性WIMG位元組以作為輸出。RA,WIMG暫存器345將有效對真實位址解譯模組ERAT 340的輸出做為輸入。RA,WIMG暫存器345的輸出耦接一先進先出(FIFO)管線儲存佇列350的輸入。儲存佇列350接收來自RA、WIMG暫存器345的指令序列。再者,HU 300將此等指令序列收集並儲存於(FIFO)管線儲存佇列350。指令管線儲存佇列350保留RA、WIMG暫存器345 的後繼指令。當HU 300執行目前的指令時,填滿儲存佇列350允許新位址透過ERAT 340作解譯。目前的指令常駐於管線(FIFO)儲存佇列350的最低位置。HU 300執行全滿或部分滿的儲存佇列350中的目前指令,並等待此目前指令的記憶體或I/O匯流排存取。
HU 300包含超管理器軟體層352,如圖3所示。再者,執行於HU 300內的超管理器352在RAID暫存器355中,填入一個代表一RAG識別符的二位元二維碼。RAID暫存器355的輸出耦接一憑證請求器360的輸入。當HU 300需要一記憶體或I/O匯流排作業時,憑證請求器360會向資源分配管理器RAM 110請求憑證。RAID暫存器355包含二個二維位元的資料,其辨識四個RAG之一,即RAG0、RAG1、RAG2、或RAG3。具體而言,RAG0到RAG3直接對應到RAM 110中的各個頻寬分配率。HU 300讀取儲存佇列350的最低項目,並傳送RAID暫存器355中的RAID位元到憑證請求器360,藉以初始化一I/O請求。隨後,憑證請求器360在一個耦接RAM 110的輸出信號憑證請求線365上,產生一個輸出信號憑證請求。在此方法下,憑證請求器360傳送一個記憶體匯流排存取的請求給資源分配管理器RAM 110。輸出信號憑證請求包含RAID暫存器355的二個HU 300 RAID位元。RAID暫存器355的此二個RAID位元分別代表HU 300的RAG識別符RAG0到RAG3。RAM 110收到此憑證請求,並鑑定 HU 300所需頻寬分配率。RAM 110利用目前的頻寬使用量來鑑定HU 300的RAID識別符位元,並透過在憑證授予線370上產生一個憑證授予信號,此憑證授予線370將此憑證授予傳給憑證請求器360,因而發佈憑證授予。
特別的是,RAM 110係在RAM 110內適當的時間與頻寬分析完成時,在線370輸入產生憑證授予信號。儲存佇列350的輸出耦接開關375的個輸入。開關375代表在授予憑證後,允許繼續進行資源請求的硬體。若儲存佇列350的輸出係一記憶體儲存指令,則此儲存請求需要使用記憶體匯流排165。若儲存佇列350的輸出係一I/O儲存指令,則此儲存請求需要使用I/O匯流排175-190。HU 300鑑定儲存佇列350的輸出,以決定儲存請求需要記憶體匯流排165或I/O匯流排175-190間的哪一個匯流排。開關375將儲存佇列350的輸出,以及圖1處理器系統100的記憶體控制器160/系統記憶體165、或I/O控制器170/I/O匯流排175-190,做有效的連接或切斷。此開關係受憑證請求器360的控制,其耦接HU 300的開關375。當憑證請求器360在憑證授予線370上收到來自RAM 110的憑證授予信號時,HU 300有效地關閉開關375,並初始化儲存作業的最後階段。再者,HU 300允許儲存佇列350的最低項目透過開關375作移轉,並存取記憶體匯流排165或I/O匯流排175-190,因而根據儲存作業的類型,將真實位址與WIMG位元放置於記憶體或I/O匯流排中。儲存 資料以及資料大小亦會跟著此真實位址與WIMG位元資料。
上述方法描述圖1處理器系統內的儲存作業。或者,處理器系統100可管理載入作業,而不產生寫入資料,而是請求讀取資料。具體而言,在載入作業期間,處理器系統100不會在I/O介面匯流排170-190上,或透過記憶體匯流排165而在系統記憶體中寫入資料。載入作業包含二個階段。在第一階段,HU初始化載入請求,並最終將真實位址放置於記憶體匯流排165或I/O介面匯流排170-190。在第二階段,在處理器系統擷取載入資料後,處理器系統將載入資料呈現給請求HU,載入作業因此完成。真實位址、WIMG位元、以及RAID位元在載入作業與儲存作業中係扮演相同的角色。然而,為了簡化之便,以下描述著重在儲存作業。
參照圖1與圖2,RAM 110在RAM 110的控制暫存器195中,指配特定RAG號給處理器系統100的每個HU。再者,RAG號指配在區分處理器系統的每個硬體單元HU的特定頻寬分配率上,提供了彈性。然而,在每個HU內的應用程式或特定指令間區分頻寬分配率需要額外的作業。
再次參照圖1與圖2,在每個指令上改變匯流排頻寬 分配率指配的一種方法,係修改RAM 110之控制暫存器195的資料。具體而言,超管理器352可透過以新的匯流排頻寬值,重新程式化RAM 110內的資源控制暫存器195,而修改頻寬分配率。一旦完成對資源控制暫存器195的儲存作業,請求儲存的特定HU會以適用新匯流排頻寬率的新RAG數值指配來初始化所有新的匯流排作業。處理器系統100的系統軟體執行一指令,此指令將依次與一個或多個具有新頻寬分配率RAG的相關。可惜的是,此方法可能需要多個匯流排週期才能完成,並因此可能導致處理器系統100作無效率的處理。
重新程式化RAID暫存器355中的RAID位元指配,係提供另一種在每個指令上改變頻寬分配率指配的方法。對特定HU而言,圖3 RAID暫存器355之修改仍維持在內部,而無需長週期時間的外部儲存作業。可惜的是,RAM 110將新的RAID暫存器355指配限制在已存在於RAM 110的控制暫存器的現有RAG號及頻寬分配率指配。系統程式器或處理器系統編輯器必須認識RAID重新指配,並產生指令的適當順序,以允許改變的發生,而不會在特定HU內發生衝突。再者,HU 300必須在任二個鄰近的儲存指令間,插入一個SYNC聲明,以在最後的RAID修改前,先沖刷所有儲存指令的指令佇列307,並保留請求新頻寬分配率的下一個儲存作業的佇列。具體而言,此佇列必須進入一保留狀態,將需要新頻寬分配率的 儲存作業前的所有指令先行清空。接著,超管理器352以新資源分配識別符產生一個載入給RAID暫存器355。一旦HU 300以SYNC指令沖刷此佇列,先前的儲存作業必須在將匯流排交給下一個作業前,先完成其匯流排週期。特定HU接著執行受惠於新RAID位元指配的儲存指令。可惜的是,以上述方法發佈SYNC指令,可能會對處理器系統效能產生重大的負面影響,因為SYNC聲明會導致多重指令佇列管線延遲。基於此等因素,在圖1的處理器系統100中的HU使用圖3的HU300的HU組態可能不盡理想。
圖4繪示一代表性HU400的方塊圖,揭露一種方法以在特定HU內,在每個指令或每個存取請求上允許不同的頻寬分配率。在所揭露的方法及裝置的一實施例中,每個指令可對應一特定I/O匯流排頻寬分配率,而無須引入不理想的長期延遲SYNC指令、或修改RAM 110 RAID暫存器資料的其他附加儲存指令。
圖5係包含一半導體晶粒505的處理器系統500之方塊圖。處理器系統500的每個硬體單元皆使用一個個別的硬體單元,好比HU 400。具體而言,處理器系統500可使用HU 400作為SPE-511-SPE-518、PPE519、以及I/O控制器520。處理器系統500可利用上述細胞寬頻引擎(CBE)的架構,來組態多重核心以形成多核心處理器系 統。處理器系統500包含耦接至記憶體匯流排530之記憶體控制器525。記憶體匯流排530耦接系統記憶體(未圖示)。處理器系統500的I/O控制器520,亦稱為I/O介面(IOIF)控制器520,係耦接I/O匯流排535。I/O匯流排535包含IOIF0-IN匯流排540以及IOIF0-OUT匯流排545、IOIF1-IN匯流排550以及IOIF1-OUT匯流排555,如圖5所示。
處理器系統500包含一資源分配管理器(RAM)560,其管理存取記憶體匯流排530與I/O匯流排535的請求。RAM 560包含資源控制暫存器565,係負責控制對請求者的資源分配。在一實施例中,圖5的RAM 560可與圖1之RAM 110具有相同的組態與功能。
參照圖4,硬體單元(HU)400包含指令管理器405以及其他硬體406。指令管理器405包含多階指令管線,其以下述方式管理指令執行。硬體406可包含好比本區快取記憶體、算數邏輯單元(ALU)、或適合HU的特定類型的其他硬體等硬體。舉例而言,PPE或SPE類型的硬體單元可包含算數邏輯單元,而I/O控制器類型的HU可能不包含ALU。
處理器系統500內的每個特定組態HU(例如代表性HU 400)可初始化一系列的軟體程式指令,以作為一個較 大型的軟體應用、或執行於處理器系統內的應用程式的一部分。特定硬體單元HU 400接收執行於處理器系統500內之應用程式的指令序列。此應用程式輸出會送到指令佇列407的輸入。HU 400將此等指令放置於指令管理者405的指令佇列407。指令佇列407耦接指令暫存器410,其包含下一個在HU 400內執行的指令。HU 400利用解碼器(未圖示)來解碼下一個在HU 400內執行的指令,例如需要系統記憶體請求、或I/O介面請求的儲存指令。在此儲存指令之後,HU 400所初始化的下一個指令,會從指令佇列407移到指令暫存器410。在一指令儲存序列期間,HU 400首先鑑定HU完成此儲存指令的執行時,其寫入資料的有效位址。
指令管理器405包含一組一般目的暫存器(GPR)415,其包含促進寫入指令之有效位址(EA)的解碼的運算元。一般目的暫存器415耦接第一運算元暫存器420以及第二運算元暫存器425。指令暫存器410、第一運算元暫存器420、以及第二運算元暫存器425各耦一EA產生器430的個別輸出。EA產生器430計算指令暫存器410中儲存指令的有效位址(EA)。EA暫存器435耦接EA產生器430的輸出,並且將EA產生器430之有效位址的運算接收為輸入。EA產生器435的輸出耦接有效對真實位址解譯器(ERAT)440之輸入。指令管理器405的各元件形成一管線結構,供資訊從一個階段經過另一個階段、或從一元 件到另一元件。舉例而言,指令佇列407、ERAT 440、暫存器445、以及FIFO儲存佇列700皆為此管線中某階段的範例。
圖6顯示頁數項目的代表性ERAT 440。典型地ERAT可包含32個項目,然而ERAT可更大或更小。再者,ERAT440中的每個項目係一頁表項目(PTE)。ERAT 440包含許多項目的快取解譯資料,並使用寫入指令或儲存指令的有效位址EA或有效頁數(EPN)做為輸入。如圖6所示,顯示快取解譯資料的多個項目的前三個項目之細節。ERAT 440查詢表(LUT)包含有效位址(EA)對真實位址(RA)或真實頁數(PRN)資料。ERAT表的每列係將一有效頁數(EPN)映射到一真實頁數(RPN)。ERAT 440亦包含WIMG位元,以及與RA資料相關聯的RAID位元。具體而言,RAID位元係ERAT 440之頁表項目(PTE)的屬性。ERAT 440可包含其他屬性(未圖示)。ERAT 440無須解譯頁偏值、或EA輸入的低階位元。再者,ERAT 440無須儲存EA的低階位元及RA頁表資料。在此範例中,在ERAT 440的首要項目中,HU 400使用有效位址EA3作為ERAT 440的輸入。ERAT 440輸出真實位址RA3資料。以0101顯示的WIMG位元分別代表W、I、M、和G位元。對應真實位址RA3的寫回或寫過狀態的W位元係0,因此指定一寫回狀態。對應RA3的快取致能或快取禁止狀態的I位元係1,因此指定一快取禁止狀態。對應真實位址RA3的本區 存取或全區存取的M位元係0,因此指定本區存取。對應真實位址RA3的未保護或受保護狀態的G位元係1,因此指定受保護狀態。00的RAID指配(即0)將RA3資料與EA3輸入與ERAT 440相關聯。
在解譯資料的ERAT 440快取的下一個項目,係顯示EA2的有效位址。HU 400利用有效位址EA2作為ERAT 440的輸入。ERAT 440輸出真實位址RA2資料。以0101顯示的WIMG位元分別代表W、I、M、和G位元。對應真實位址RA2的寫回或寫過狀態的W‘位元係0,因此指定一寫回狀態。對應RA2的快取致能或快取禁止狀態的I位元係1,因此指定一快取禁止狀態。對應真實位址RA2的本區存取或全區存取的M位元係0,因此指定本區存取。對應真實位址RA2的未保護或受保護狀態的G位元係1,因此指定受保護狀態。11的RAID指配(即3)將RA2資料與EA2輸入與ERAT 440相關聯。
在解譯資料的ERAT 440快取的下一個項目,係顯示EA1的有效位址。HU 400利用有效位址EA1作為ERAT 440的輸入。ERAT 440輸出真實位址RA1資料。以0101顯示的WIMG位元分別代表W、I、M、和G位元。對應真實位址RA1的寫回或寫過狀態的W位元係0,因此指定一寫回狀態。對應RA1的快取致能或快取禁止狀態的I位元係1,因此指定一快取禁止狀態。對應真實位址RA1 的本區存取或全區存取的M位元係0,因此指定本區存取。對應真實位址RA1的未保護或受保護狀態的G位元係1,因此指定受保護狀態。01的RAID指配(即1)將RA2資料與EA2輸入與ERAT 440相關聯。在圖6中,多個項目(未圖示)代表有效對真實位址解譯器EA 440的解譯資料的整個快取。
EART 440接收EA暫存器435的有效位址資料做為輸入。在一儲存請求期間,HU 400在軟體應用作業架構內使用有效位址解譯,以產生真實位址。真實位址直接與記憶體位址位置相關。具體而言,真實位址對應到HU外部的實體記憶體位置,好比IHS的系統記憶體。ERAT 440典型地利用圖6中所示之關聯性陣列中解譯資料的頁表快取,以查詢表(LUT)的方式運作。有效位址(EA)或虛擬位址代表ERAT 440頁表快取陣列的輸入。ERAT 440頁表保留真實位址(RA)、欲寫入之資料的大小、欲寫入之資料、WIMG位元、以及與EA輸入相關的資源分配識別符(RAID)位元。代表RAG識別幅的二個RAID位元係常駐於ERAT 440。因為RAID位元係常.駐於ERAT 440,因此HU 400不像圖3的HU 300需要一RAID暫存器。再者,在此特定實施例中,HU 400包含一超管理器442,即HU 400中的軟體或韌體層,其將此二個RAID位元指配給ERAT 440中的頁,因而在ERAT 440運作的位址解譯程序期間,得以提供每個指令一個獨特的RAID。超管理器442代表一 個有優先地位的系統軟體層,具有比處理器系統100的其他系統軟體更高的處理器系統優先權,好比讀取存取以及修改權。超管理器442包含可執行於一HU上的指令。超管理器指令可對系統控制功能作存取,好比RAID暫存器、RAM 110、以及ERAT 440快取的位址解譯表。作業系統、或超管理器代碼、以及應用程式通常沒有這樣的存取優先權。處理器系統100的超管理器442一般不會直接執行於SPE,即SPE-1到SPE-8。然而,超管理器442會直接執行於PPE 115,並具有利用各種機制(未圖示),在SPE內修改系統控制功能的能力。在一實施例中,超管理器442維持位址解譯表,而ERAT係作為此表的快取。RAID資訊與超管理器所維持的位址解譯表相關聯。RAID資訊係ERAT 440中頁表項目(PTE)的屬性。在執行期間,I/O介面作業與記憶體作業係透過ERAT 440運作,使得I/O介面作業與記憶體作業皆具有一個獨特的資源分配識別符RAID。超管理器442將獨特的RAID位元指配分給解譯資料的ERAT 440快取的每個項目。再者,超管理器442指配獨特的RAID位元指配,使每個項目以及ERAT 440快取內的指令,得以利用不同的頻寬分配率。執行於處理器系統500之HU內的應用軟體可詮釋特定頻寬分配率的需求,並進一步使超管理器442在每個指令上改變ERAT 440的RAID位元指配。
ERAT 440之頁表快取中的每個項目都會對應到一頁 表項目PTE。ERAT 440頁代表解譯中的位址或有效位址(EA)的最高階的位元組合。在所揭露之裝置與方法的一實施例中,ERAT 440將一個4千位元組的有效位址(EA)解譯為一真實位址(RA)。在此解譯程序中,ERAT 440不解譯此有效位址EA的較低階的12位元。具體而言,ERAT 440將此有效位址EA的此較低階的12位元解譯為頁偏值,其中此4千位元組的有效位址EA的此較低階的12位元在解譯後維持不變。解譯中EA的頁或較高的位元,代表有效位址EA對真實位址RA解譯所剩餘的較高位址位元。
ERAT 440將WIMG位元儲存為記憶體位址移轉屬性。具體而言,在圖4的實施例中,ERAT 440將WIMG位元儲存為位址儲存屬性。WIMG位元決定處理器系統中軟體與硬體存取系統記憶體的方法。WIMG位元包含用於位址請求,對應寫回或寫過狀態的W位元。對應儲存請求的快取致能或快取禁止狀態的I位元。對應儲存請求的本區存取或全區存取權的M位元。對應位址儲存請求的未保護或受保護狀態的G位元。ERAT 440的輸出耦接一RA、WIMG、RAID暫存器445的輸入。ERAT 440產生實體或真實位址RA、儲存屬性WIMG位元組合、以及RAID位元作為輸出。RA、WIMG、RAID暫存器445接收有效對真實位址解譯器ERAT 440之輸出做為輸入。RA、WIMG、RAID暫存器445提供RA、WIMG、以及 HU 400所執行之指令的對應RAID位元的暫時儲存。RA、WIMG、RAID暫存器445的輸出耦接圖7之一管線先進先出(FIFO)儲存佇列700的輸入。(FIFO)儲存佇列700接收RA、WIMG、RAID暫存器445的指令序列。HU 400將此等指令序列收集並儲存於管線(FIFO)儲存佇列700。再者,此管線指令(FIFO)儲存佇列700保留RA、WIMG、RAID暫存器445的後繼指令。當HU 400等目前指令上的記憶體匯流排存取時,填滿(FIFO)儲存佇列700允許新位址透過ERAT 400作解譯。目前指令常.駐於(FIFO)儲存佇列700的最低位置。HU 400執行一全滿或部分滿(FIFO)儲存佇列700的目前指令,並等待目前指令的記憶體或I/O匯流排存取。
FIFO儲存佇列700的RAID位元,係識別四個RAG(即RAG0、RAG1、RAG2、或RAG3)之一的二個二維位元資料。更具體而言,RAG0到RAG3直接對應RAM 560中的頻寬分配率。FIFO儲存佇列700的輸出耦接憑證請求器460的輸入,以提供RAID位元資料給其請求器。HU 400讀取FIFO儲存佇列700的最低項目,並藉由傳送FIFO儲存佇列700中的RAID位元給憑證請求器460,而初始化一記憶體匯流排存取或I/O匯流排存取的請求。爾後,憑證請求器460在憑證請求線465上產生一憑證請求。此憑證請求以一記憶體匯流排存取或I/O匯流排存取的請求方式,經過憑證請求線465而到資源分配管理器(RAM) 560。線465上的憑證請求包含RA、WIMG、RAID暫存器445的HU 400 RAID位元。 RAM 560接收此憑證請求,並鑑定對應HU400的頻寬分配率。RAM560利用目前的頻寬使用量來鑑定HU 400的RAID識別符位元,並在將憑證授予傳回憑證請求器460之憑證授予線470上產生憑證授予信號,藉此發佈憑證授予。當RAM 560內的適當時間與頻寬分析結束後,RAM 560即產生此憑證授予。
FIFO儲存佇列700的輸出耦接開關475的一個輸入。若FIFO儲存佇列700的輸出發佈記憶體儲存指令,即儲存資料的一記憶體存取請求,則此儲存請求需要使用記憶體匯流排530。若FIFO儲存佇列700的輸出發佈I/O儲存指令,則此儲存請求需要使用I/O匯流排535。HU 400鑑定FIFO儲存佇列700的輸出,來決定儲存請求需要記憶體匯流排530或I/O匯流排535。開關475在FIFO儲存佇列700的輸出,以及圖5處理器系統500的記憶體控制器525/系統記憶體匯流排530、或I/O控制器520/I/O匯流排535之間做有效地連接或分離。此開關係受憑證請求器460的控制,此請求器耦接至HU 400的開關475。當憑證請求器460在憑證授予線470上收到RAM 560的一憑證授予信號時,HU 400有效地關閉開關475,並初始化儲存作業的最終階段。再者,HU 400允許FIFO儲存佇列700的最低項目,透過開關475作移轉,並存取記憶體匯流排530或I/O匯流排535,進而將真實位址與WIMG位元放置在 記憶體或I/O匯流排。儲存資料與資料大小伴隨著此真實位址與WIMG位元資料。
上述揭露的方法描述一個代表性的儲存作業,其中圖5的處理器系統500使用圖4中特殊組態的硬體單元(HU)400。雖然該範例涉及儲存作業,但處理器500中的HU亦可利用所揭露的方法執行載入作業。載入作業不會產生寫入資料,但會請求讀取資料。在載入作業期間,處理器系統500不會將資料寫入I/O介面匯流排535、或透過記憶體匯流排530寫入系統記憶體。此載入作業包含二階段。在載入作業的第一階段,HU 400初始化一載入請求,並在ERAT 440作有效對真實位址解譯後,最終將真實位址放置在記憶體匯流排530。在載入作業的第二階段,處理器系統500在特定目標位址擷取此記憶體資料,並將此記憶體資料呈現給在記憶體匯流排530上的HU。接著,完成此載入作業。比較HU 400的儲存作業與HU 400的載入作業,真實位址、WIMG位元、與RAID位元在這些作業中皆扮演實質相同的角色。因此,上述有關HU 400的儲存作業的執行,亦適用於HU 400所執行的載入作業。
在處理系統500之代表性HU 400中的指令等級頻寬分配,提供了管理多重應用程式的能力,其中每個應用程式皆需要不同的I/O匯流排使用率及/或記憶體匯流排存取率。所揭露的方法特別適用於在相同的HU上運作多重作 業系統,其中每個作業系統在I/O匯流排使用量與記憶體匯流排使用量,皆需要特定的不同頻寬分配率。
圖7繪示圖4 HU 400所使用之FIFO儲存佇列700的代表性組態。具體而言,圖7描述ERAT 440解譯後暫時常駐於RA、WIMG、RAID暫存器445的最低的3個儲存指令。ERAT 440解譯此等儲存指令,並接著透過暫存器445,將解譯過的指令放置於FIFO儲存佇列700中的各個儲存位置。圖7以每個指令之真實位址RA、WIMG位元、指令資料大小、儲存資料、以及RAID位元的形式,來顯示FIFO儲存佇列700的元件。儲存指令,即儲存-1指令,代表下一個離開FIFO儲存佇列700供HU完成執行的指令。FIFO儲存佇列700包含儲存-1指令的一個RA1的真實位址RA。RA1可代表一個64位元位址,其中最低的12位元與ERAT 440的有效位址輸入相同。在一實施例中,FIFO儲存佇列700不一定儲存此較低的12位元。EA與RA的較低12位元代表一個4位元組的位址頁偏值。在此範例中,64位元真實位址RA剩餘的較高52位元,代表真實位址RA1項目。顯示為0101的一個WIMG位元範例,分別代表W、I、M、和G位元。此等WIMG位元係可影響硬體單元(HU)存取記憶體或I/O匯流排的方法的記憶體位址移轉屬性。對應真實位址RA1的寫回或寫過狀態的W位元係0,因此指定一寫回狀態。對應RA1的快取致能或快取禁止狀態的I位元係1,因此指定一快取 禁止狀態。對應真實位址RA1的本區存取或全區存取的M位元係0,因此指定本區存取。對應真實位址RA1的未保護或受保護狀態的G位元係1,因此指定受保護狀態。圖7中,FIFO儲存佇列700以4位元組繪示指令儲存-1的一個代表性資料大小。儲存-1的儲存作業之資料大小因此為4位元組的資料。FIFO儲存佇列700包含圖7中標示為D1並為4位元組大小的儲存作業儲存-1的資料。儲存-1指令具有01(即1)的相關性RAID位元指配。在此範例中,RAID指配為1係表示儲存-1指令的RAG號指配會為1,並具有RAM 560指配給RAG1的相關匯流排頻寬率。
如圖7所示FIFO儲存佇列700的代表,FIFO儲存佇列700中儲存-1指令的下一個指令係儲存-2指令。FIFO儲存佇列700儲存-2指令儲存RA2的真實位址RA。RA2可代表一個64位元的位址,其中較低的12位元與ERAT440的有效位址輸入相同。在一實施例中,FIFO儲存佇列700不一定儲存此較低的12位元。EA與RA的較低12位元代表一個4位元組的位址頁偏值。在此範例中,真實位址RA的較高52位元代表真實位址RA2項目。繪示為1101的WIMG位元範例,分別代表W、I、M、與G位元。對應真實位址RA2的寫回或寫過狀態的W位元係1,因此指定一寫過狀態。對應RA2的快取致能或快取禁止狀態的I位元係1,因此指定一快取禁止狀態。對應真實位址 RA2的本區存取或全區存取的M位元係0,因此指定本區存取。對應真實位址RA2的未保護或受保護狀態的G位元係1,因此指定受保護狀態。圖7中,FIFO儲存佇列700以8位元組顯示指令儲存-2的一個代表性大小。儲存-2的儲存作業之資料大小因此為8位元組的資料。FIFO儲存佇列700包含圖7中標示為D2並為8位元組大小的儲存作業儲存-2的資料。儲存-2指令相關11(即3)的RAID位元指配。因此,RAM 560指配RAG3的匯流排頻寬率給儲存-2指令。
FIFO儲存佇列700中儲存-2指令的下一個指令係儲存-3指令。FIFO儲存佇列700替圖7中的儲存-3指令儲存RA3的真實位址RA。RA3可代表一個64位元的位址,其中較低的12位元與ERAT 440的有效位址輸入相同。在一實施例中,FIFO儲存佇列700不一定儲存此較低的12位元。EA與RA的較低12位元代表一個4位元組的位址頁偏值。在此範例中,真實位址RA的較高52位元代表真實位址RA2項目。繪示為0110的WIMG位元範例分別代表W、I、M、與G位元。對應真實位址RA3的寫回或寫過狀態的W位元係0,因此指定一寫回狀態。對應RA3的快取致能或快取禁止狀態的I位元係1,因此指定一快取禁止狀態。對應真實位址RA3的本區存取或全區存取的M位元係1,因此指定全區存取。對應真實位址RA3的未保護或受保護狀態的G位元係0,因此指定未保護狀 態。圖7中,FIFO儲存佇列700以2位元組繪示指令儲存-3的一個代表性資料大小。儲存-3的儲存作業之資料大小因此為2位元組的資料。FIFO儲存佇列700包含標示為D3並為2位元組大小的儲存作業儲存-3的資料。儲存-3指令相關00(即0)的RAID位元指配。RAM 560指配RAG0的匯流排頻寬率給儲存-3指令,因而完成儲存指令資料填滿FIFO儲存佇列700。RAID位元指配包含0、1、2、和3,其中一對不同的2位元會對應到每個RAID位元指配。RAID位元指配直接關聯於RAG號指配RAG0、RAG1、RAG2、和RAG3。在某些應用中,若特定應用需要較小的RAG,則處理器系統500和HU 400可使用比2小的位元。舉例而言,0或1的單一位元欄可代表二個RAG。在某些應用中,若特定應用需要比4大的RAG號,則處理器系統500和HU 400可使用比2大的位元數。
圖8係描述圖4的代表性硬體單元(HU)400執行儲存指令或寫入指令的流程圖。處理器系統500內的硬體單元(HU)可執行儲存請求。儲存指令的執行開始於開始方塊805。執行於任何一個HU的應用軟體可初始化儲存指令,亦稱為寫入指令或寫入作業。超管理器442可透過解譯表(未圖示)間接載入ERAT 440,每個指令皆有解譯資料與真實位址RA、WIMG位元,並包含資源分配識別(RAID)位元,如方塊810。ERAT 440中的每個項目包含對應查詢位址或有效位址EA的指令。在特定HU中的指令解碼器(未 圖示)會將一指令作解碼,如方塊815。HU 400中的指令解碼器或相關硬體接著運作一測驗,以判斷被解碼的指令是否為儲存指令,即寫入請求,如判斷方塊820。若被解碼的指令之測驗回覆的結果為否,即被解碼的指令不是一個儲存指令,則執行非儲存指令,如非儲存指令方塊822之程序。流程回到方塊815,指令解碼器解碼下一個指令。然而,若儲存指令測驗於判斷方塊820回覆的結果為是,則HU決定儲存指令的有效目的位址,如決定有效位址(EA)方塊825。接著,HU將儲存指令資料與其有效位址移到ERAT 440作鑑定。若EA項目已存在於有效對真實位址解譯器ERAT,則ERAT 440將有效位址(EA)轉換為一對應的真實位址(RA)。具體而言,ERAT 440利用有效位址(EA)作為查詢表LUT中的查詢資料,並搜尋ERAT 440中的EA資料,如方塊830。若ERAT 440目前將EA儲存於其LUT記憶體,則ERAT 440將對應RA輸出到LUT記憶體。這在判斷方塊840中代表一個”擊中”、或是成功解譯。然而,若測驗中的特定EA,在ERAT LUT記憶體中不包含一個數值,則判斷方塊840的擊中測試回復一個否定結果。在判斷方塊840沒有EA擊中狀態的情況下,HU初始化一個服務解譯請求,如方塊845所示。服務解譯請求會導致適當ERAT解譯資料的產生,並將ERAT解譯資料載入ERAT LUT記憶體,如方塊850所示。在成功載入ERAT LUT記憶體後,HU再次試圖在ERAT 440中尋找EA,如方塊830所示。若方塊840的有效位址擊中測驗對 標的儲存指令或作業回覆一個是的結果,其中ERAT快取包含EA的匹配,則HU移轉該指令的對應RA、WIMG位元、與資源分配識別(RAID)位元至FIFO儲存佇列700中,如方塊870。在此範例中,方塊870意指WIMG位元。然而,在所揭露之方法的其他實作中,硬體單元(HU)可使用比WIMG更多的控制位元或更少的控制位元。依據特定應用,這些控制位元係對應至其他位址移轉屬性。
在一實施例中,HU 400將指令載入FIFO儲存佇列700,並以載入指令的順序執行每個指令。舉例而言,圖7中,最低的指令儲存-1是下一個執行的佇列指令。執行儲存-1指令後,儲存-2指令移到FIFO儲存佇列700的最低位置,並成為下一個執行的指令。儲存-3指令移到儲存佇列的較低位置,而新指令會進級到儲存佇列的較高位置。回到圖8的流程圖,佇列指令中的下一個指令係FIFO儲存佇列700的最低項目。HU400進級到FIFO儲存佇列700的前端,如方塊875所示。HU 400接著初始化一憑證請求、或請求一憑證,如方塊880所示。具體而言,HU 400的憑證請求器460向資源分配管理器(RAM)560請求一憑證,即要求使用記憶體匯流排530或I/O介面匯流排535,以進行儲存作業。HU 400會等到RAM 560授予一憑證請求後,再繼續儲存指令作業。憑證請求器460會測試以決定RAM 560是否透過授予一憑證而有回應,如授予憑證判斷方塊885所示。若憑證授予測試回覆一個否的結果, 則HU 400維持一個保留並觀察狀態,如判斷方塊885所示。然而,若憑證授予測試回覆一個是的結果,則HU 400將儲存請求資料放到記憶體匯流排530或I/O介面匯流排535,如方塊890所示。在記憶體儲存作業的範例中,記憶體匯流排530接著將儲存請求資料移到系統記憶體,並儲存於該處。HU亦可如以上相同方式請求一I/O介面匯流排535移轉。在該情況下,HU會透過I/O介面控制器520,將結果I/O資料放到I/O介面匯流排535。因此,將”請求放到匯流排”的方塊890可同時應用於將儲存指令的資料放到記憶體匯流排165,以及將I/O請求指令的資料放到I/O匯流排535。最後,成功完成儲存指令作業後,HU 400解碼下一個指令,且繼續作業流程,如方塊815所示。圖8的範例描述處理器系統100的一代表性儲存或寫入作業。另一個證明實施例之有效率性的作業,係載入或讀取作業。雖然匯流排儲存與載入資料(即讀、寫資料)間的差別代表此二種作業類型間有相異之處,圖8所示的機制與方法代表該架構下相同的基本元件。再者,RAID位元的特殊使用係為載入與儲存作業中共通的元件。
圖9繪示使用一處理器905之代表性資料管理系統(IHS)900的簡化方塊圖。在一實施例中,處理器905係包含HU 400的處理器系統500。IHS 900更包含一匯流排910,其將處理器905耦接記憶體控制器525與影像控制器920。具體而言,系統記憶體匯流排530耦接系統記憶 體915,如圖示。在實際操作上,匯流排910可包含多個匯流排,例如一記憶體匯流排與一I/O匯流排。顯示器925耦接影像控制器920。好比硬碟機、光碟機、DVD碟機、或其他非揮發儲存的非揮發儲存930,係耦接匯流排910,以提供IHS 900資訊之永久儲存。作業系統935會載入記憶體915,以管理IHS 900的作業。其他系統軟體,即應用軟體940與超管理器945,係常駐於記憶體915以進一步管理IHS 900的作業。例如鍵盤與滑鼠指標裝置的I/O裝置950,係透過I/O匯流排535與I/O控制器520,耦接匯流排910。好比USB、IEEE 1394匯流排、ATA、SATA、PIC、PICE與其他匯流排的一或多個擴充匯流排955,係耦接匯流排910,以促進IHS 900與週邊元件及裝置的連接。網路介面配接器960耦接匯流排910,以致能IHS 900,以有線或無線方式,連接網路及其他資訊管理系統。雖然圖9繪示的IHS係使用處理器系統500作為處理器905,但IHS亦可為許多型態。舉例而言,IHS 900可為一桌上型電腦、伺服器、攜帶型電腦、手提電腦、或其他型態的電腦或資料處理系統。IHS 900可為其他型態,例如遊戲裝置、個人數位助理(PDA)、攜帶型電話裝置、通訊裝置或其他包含處理器及記憶體的裝置。
以上揭露一種處理器系統及方法,係可提供記憶體匯流排與I/O介面匯流排頻寬的改良。在一實施例中,此處理器系統可根據每個指令或請求,分配記憶體匯流排及/ 或I/O匯流排頻寬。
有鑑於本發明之描述,熟此技藝者當可對本發明潤飾上述實施例,或者思及其他實施例。藉此,本描述教導熟此技藝者如何實施本發明,其僅供範例之用。所示發明之型態代表各實施例。熟此技藝者當可改變其部分之形狀、大小及排列。舉例而言,熟此技藝者可以均等元件替換在此所示及所述元件。再者,熟此技藝者在了解本發明之描述後,當可知獨立使用本發明之特定功能並不偏離本發明之範疇。
100‧‧‧處理器系統
105‧‧‧多核心處理器
110‧‧‧資源分配管理器
115‧‧‧主處理器元件
160‧‧‧記憶體控制器
165‧‧‧記憶體匯流排
170‧‧‧I/O介面控制器
175‧‧‧高速介面輸入匯流排
180‧‧‧高速介面輸出匯流排
185‧‧‧低速介面輸入匯流排
190‧‧‧低速介面輸出匯流排
195‧‧‧資源控制暫存器
210‧‧‧資源分配群組號欄
215‧‧‧硬體單元欄
220‧‧‧記憶體區塊欄
230‧‧‧I/O介面欄
300‧‧‧硬體單元
305‧‧‧指令管理器
306‧‧‧其他硬體
307‧‧‧指令佇列
310‧‧‧指令暫存器
315‧‧‧一般目的暫存器
320‧‧‧運算元暫存器
325‧‧‧運算元暫存器
330‧‧‧EA產生器
335‧‧‧EA暫存器
340‧‧‧有效對真實位址轉譯器
345‧‧‧RA、WIMG暫存器
350‧‧‧先進先出管線儲存佇列
352‧‧‧超管理器軟體層
355‧‧‧RAID暫存器
360‧‧‧憑證請求器
365‧‧‧輸出信號憑證請求線
370‧‧‧憑證授予線
375‧‧‧開關
400‧‧‧硬體單元
405‧‧‧指令管理器
406‧‧‧其他硬體
407‧‧‧指令佇列
410‧‧‧指令暫存器
415‧‧‧一般目的暫存器
420‧‧‧第一運算元暫存器
425‧‧‧第二運算元暫存器
430‧‧‧EA產生器
435‧‧‧EA暫存器
436440‧‧‧有效對真實位址轉譯器
442‧‧‧超管理器
445‧‧‧RA、WIMG、RAID暫存器
460‧‧‧憑證請求器
465‧‧‧憑證請求線
470‧‧‧憑證授予線
475‧‧‧開關
500‧‧‧處理器系統
505‧‧‧半導體晶粒
511-518‧‧‧協同處理器元件
519‧‧‧主處理器元件
520‧‧‧I/O控制器
530‧‧‧記憶體匯流排
540‧‧‧IOIF0-IN匯流排
545‧‧‧IOIF0-OUT匯流排
550‧‧‧IOIF1-IN匯流排
555‧‧‧IOIF1-OUT匯流排
560‧‧‧資源分配管理器
565‧‧‧資源控制暫存器
700‧‧‧FIFO儲存佇列
900‧‧‧資料管理系統
905‧‧‧處理器
910‧‧‧匯流排
915‧‧‧系統記憶體
920‧‧‧影像控制器
925‧‧‧顯示器
930‧‧‧非揮發儲存
935‧‧‧作業系統
940‧‧‧應用軟體
945‧‧‧超管理器
950‧‧‧I/O裝置
955‧‧‧擴充匯流排
960‧‧‧網路介面配接器
伴隨圖式僅繪示本發明之範例實施例,因本發明之概念可被思及其他等同有效實施例,所以圖式並不限制本發明之範疇。
圖1係一處理器系統之資源管理器的方塊圖;圖2係圖1處理器系統的資源分配圖;圖3係適用於圖1處理器系統的硬體單元的方塊圖;圖4係適用於處理系統之所揭露硬體單元的方塊圖;圖5係包含圖4硬體單元之所揭露處理器系統的方塊圖;圖6係圖4所揭露硬體單元的範例ERAT查詢表;圖7係圖4所揭露硬體單元的範例FIFO儲存佇列; 圖8係在處理器系統中以所揭露方法處理儲存請求的流程圖;以及圖9係利用所揭露資源分配方法的資源管理系統的方塊圖。
100‧‧‧處理器系統
105‧‧‧多核心處理器
110‧‧‧資源分配管理器
115‧‧‧主處理器元件
160‧‧‧記憶體控制器
165‧‧‧記憶體匯流排
170‧‧‧I/O介面控制器
175‧‧‧高速介面輸入匯流排
180‧‧‧高速介面輸出匯流排
185‧‧‧低速介面輸入匯流排
190‧‧‧低速介面輸出匯流排
195‧‧‧資源控制暫存器

Claims (13)

  1. 一種由一多核心處理器存取一共享資源之方法,該處理器包括複數個硬體單元(HU)核心,該方法包含:由該處理器中複數個硬體單元(HU)核心之一特定硬體單元(HU)核心接收一指令,以執行對該共享資源之一存取請求之呼叫;由該處理器群組化該複數個HU核心成為複數個資源分配群組(RAGs),每一RAG包括至少一HU核心,每一RAG係被動態分配一與存取該共享資源相關之個別頻寬分配率;以及當該指令通過該特定硬體單元(HU)核心中一指令管理器之複數個管線階段時,關聯資源分配識別(RAID)資訊與該指令,該RAID資訊係表示該特定HU核心所屬的特定資源分配群組(RAG),在該特定硬體單元(HU)核心中之管線階段到管線階段間,該資源分配識別(RAID)資訊伴隨著該指令,按照逐一指令之準則在該特定HU核心中該RAID資訊可改變以指定該RAG以及關聯該指令的個別頻寬分配率;其中該管線階段之一係一位址轉譯管線階段,以實施用於該指令之有效對真實位址轉譯,該資源分配識別(RAID)資訊係常駐於該位址轉譯管線階段;其中在該指令管理器中該管線階段之一係一儲存佇列,在該位址轉譯管線階段之位址轉譯後,該儲存佇列接收該指令與相關資源分配識別(RAID)資訊;以及其中該指令管理器之管線階段之一係一直接由該儲存佇列接收該資源分配識別符(RAID)資訊之憑證請求器,以使該 憑證請求器可由一資源分配管理器(resource allocation manager)按照逐一指令之準則請求一不同之資源分配,該資源分配識別符(RAID)資訊與指令相關。
  2. 如請求項1所述之方法,其中該提供步驟包含由在該特定硬體單元(HU)核心中執行的一超管理器提供該資源分配識別(RAID)資訊。
  3. 如請求項3所述之方法,其中該特定硬體單元(HU)核心中之一存取請求器將用於存取該共享資源之一存取請求傳送至一資源分配管理器,該資源分配管理器係位於該特定硬體單元(HU)核心外部,並與該處理器之該複數個硬體單元(HU)核心連接,該存取請求器按照逐一指令之準則,替該儲存佇列中之指令與相關資源分配識別(RAID)資訊傳送該存取請求,因而提供包含該儲存佇列中各指令之資源分配識別(RAID)資訊的該存取請求。
  4. 如請求項3所述之方法,更包含由該資源分配管理器根據該存取請求中之該資源分配識別(RAID)資訊,分配該共享資源頻寬給該存取請求。
  5. 如請求項1所述之方法,其中該存取請求係一記憶體存取請求與一I/O存取請求其中之一。
  6. 如請求項1所述之方法,其中該共享資源係一記憶體與一I/O裝置其中之一。
  7. 一種多核心處理器,包含:複數個硬體單元(HU)核心,位於一半導體晶粒,該複數個硬體單元(HU)核心用以存取一共享資源,該複數個硬體單元(HU)核心包括一特定硬體單元(HU)核心,其中該處理器群組化該複數個HU核心成為複數個資源分配群組(RAGs),每一RAG包括至少一HU核心,每一RAG係被動態分配一與存取該共享資源相關之個別頻寬分配率;該特定硬體單元(HU)核心包含複數個管線階段,其中該特定硬體單元(HU)核心接收一指令,以執行對該共享資源之一存取請求之呼叫;其中當該指令通過該特定硬體單元(HU)核心中一指令管理器之複數個管線階段時,該處理器關聯資源分配識別(RAID)資訊與該指令,該RAID資訊係表示該特定HU核心所屬的特定資源分配群組(RAG),在該特定硬體單元(HU)核心中之管線階段到管線階段間,該資源分配識別(RAID)資訊伴隨著該指令,按照逐一指令之準則在該特定HU核心中該RAID資訊可改變以指定該RAG以及關聯該指令的個別頻寬分配率;其中該管線階段之一係一位址轉譯管線階段,以實施用於該指令之有效對真實位址轉譯,該資源分配識別(RAID)資訊係常駐於該位址轉譯管線階段且係關聯該位址轉譯管線階段的該指令;其中在該特定HU核心的該指令管理器中該管線階段之 一係一儲存佇列,在該位址轉譯管線階段之位址轉譯後,該儲存佇列接收該指令與相關資源分配識別(RAID)資訊;其中該指令管理器之管線階段之一係一直接由該儲存佇列接收該資源分配識別符(RAID)資訊之憑證請求器,以使該憑證請求器可由一資源分配管理器(resource allocation manager)按照逐一指令之準則請求一不同之資源分配,該資源分配識別符(RAID)資訊與指令相關。
  8. 如請求項7所述之處理器,其中該特定硬體單元(HU)核心實施一超管理器以提供該資源分配識別(RAID)資訊給該指令。
  9. 如請求項7所述之處理器,其中該特定硬體單元(HU)核心包含一存取請求器將用於存取該共享資源之一存取請求傳送至一資源分配管理器,該資源分配管理器係位於該特定硬體單元(HU)核心外部,且耦合至該處理器之該複數個硬體單元(HU)核心,該存取請求器按照逐一指令之準則,替該儲存佇列中之指令與相關資源分配識別(RAID)資訊傳送該存取請求,因而提供包含該儲存佇列中各指令之資源分配識別(RAID)資訊的該存取請求。
  10. 如請求項9所述之處理器,其中該資源分配管理器根據該存取請求中之該資源分配識別(RFID)資訊,分配該共享資源頻寬給該存取請求。
  11. 如請求項7所述之處理器,其中該存取請求係一記憶體存取請求與一I/O存取請求其中之一。
  12. 如請求項7所述之處理器,其中該共享資源係一記憶體與一I/O裝置其中之一。
  13. 一種資訊管理系統,該系統包含:一共享資源;以及耦合至該共享資源之一處理器,該處理器包含複數個硬體單元(HU)核心以存取該共享資源,該複數個硬體單元(HU)核心包含一特定硬體單元(HU)核心,其中該處理器群組化該複數個HU核心成為複數個資源分配群組(RAGs),每一RAG包括至少一HU核心,每一RAG係被動態分配一與存取該共享資源相關之個別頻寬分配率;該特定硬體單元(HU)核心包含複數個管線階段,其中該特定硬體單元(HU)核心接收一指令,以執行對該共享資源之一存取請求之呼叫;其中當該指令通過該特定硬體單元(HU)核心中一指令管理器之複數個管線階段時,該處理器關聯資源分配識別(RAID)資訊與該指令,該RAID資訊係表示該特定HU核心所屬的特定資源分配群組(RAG),在該特定硬體單元(HU)核心中之管線階段到管線階段間,該資源分配識別(RAID)資訊伴隨著該指令,按照逐一指令之準則在該特定HU核心中該RAID資訊可改變以指定該RAG以及關聯該指令的個別頻寬分配率; 其中該管線階段之一係一位址轉譯管線階段,以實施用於該指令之有效對真實位址轉譯,該資源分配識別(RAID)資訊係常駐於該位址轉譯管線階段且係關聯該位址轉譯管線階段的該指令;其中在該特定HU核心的該指令管理器中該管線階段之一係一儲存佇列,在該位址轉譯管線階段之位址轉譯後,該儲存佇列接收該指令與相關資源分配識別(RAID)資訊;其中該指令管理器之管線階段之一係一直接由該儲存佇列接收該資源分配識別符(RAID)資訊之憑證請求器,以使該憑證請求器可由一資源分配管理器(resource allocation manager)按照逐一指令之準則請求一不同之資源分配,該資源分配識別符(RAID)資訊與指令相關。
TW097104614A 2007-02-06 2008-02-05 在處理器系統之指令階使資源分配識別之方法及裝置 TWI417792B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/671,508 US8407451B2 (en) 2007-02-06 2007-02-06 Method and apparatus for enabling resource allocation identification at the instruction level in a processor system

Publications (2)

Publication Number Publication Date
TW200901040A TW200901040A (en) 2009-01-01
TWI417792B true TWI417792B (zh) 2013-12-01

Family

ID=39471983

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097104614A TWI417792B (zh) 2007-02-06 2008-02-05 在處理器系統之指令階使資源分配識別之方法及裝置

Country Status (7)

Country Link
US (1) US8407451B2 (zh)
EP (1) EP2115584B1 (zh)
JP (1) JP5241737B2 (zh)
KR (1) KR101123443B1 (zh)
CN (1) CN101606130B (zh)
TW (1) TWI417792B (zh)
WO (1) WO2008095844A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099632B2 (en) * 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
US8102865B2 (en) * 2008-05-16 2012-01-24 Microsoft Corporation Group based allocation of network bandwidth
US10802990B2 (en) * 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control
US8838796B2 (en) * 2008-12-19 2014-09-16 Adobe Systems Incorporated System and method for allocating online storage to computer users
WO2011130406A1 (en) * 2010-04-13 2011-10-20 Et International, Inc. Runspace method, system and apparatus
GB2481232A (en) * 2010-06-16 2011-12-21 Advanced Risc Mach Ltd Cache for a multiprocessor system which can treat a local access operation as a shared access operation
US9134771B2 (en) * 2010-08-06 2015-09-15 Dhk Storage, Llc Raid devices, systems, and methods
CN103262064A (zh) 2010-12-16 2013-08-21 Et国际有限公司 分布式计算体系结构
US8918791B1 (en) 2011-03-10 2014-12-23 Applied Micro Circuits Corporation Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID
TWI550408B (zh) * 2011-04-22 2016-09-21 晨星半導體股份有限公司 多核心電子系統及其速率調節裝置
KR101867960B1 (ko) 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
EP2852887A1 (en) * 2012-06-27 2015-04-01 Qatar Foundation An arrangement configured to allocate resources of a plurality of data storage media to a plurality virtual machines and associated method
KR20160004365A (ko) * 2013-06-29 2016-01-12 인텔 코포레이션 크레딧 기반의 중재를 위한 서비스 레이트 재분배
US9026681B2 (en) 2013-08-08 2015-05-05 Qualcomm Incorporated Flexible hardware module assignment for enhanced performance
US10523585B2 (en) 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US10394731B2 (en) 2014-12-19 2019-08-27 Amazon Technologies, Inc. System on a chip comprising reconfigurable resources for multiple compute sub-systems
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
US10853077B2 (en) * 2015-08-26 2020-12-01 Huawei Technologies Co., Ltd. Handling Instruction Data and Shared resources in a Processor Having an Architecture Including a Pre-Execution Pipeline and a Resource and a Resource Tracker Circuit Based on Credit Availability
US11221853B2 (en) 2015-08-26 2022-01-11 Huawei Technologies Co., Ltd. Method of dispatching instruction data when a number of available resource credits meets a resource requirement
CN105183565B (zh) 2015-09-30 2018-12-07 华为技术有限公司 计算机、服务质量控制方法及装置
US10628373B2 (en) * 2015-12-01 2020-04-21 Marvell International Ltd. Systems and methods for transmitting an access request via a flexible register access bus
CN107067240B (zh) 2016-12-12 2020-09-08 创新先进技术有限公司 资源调配方法和装置以及电子支付方法
US10394454B2 (en) * 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
US10268379B2 (en) * 2017-01-13 2019-04-23 Arm Limited Partitioning of memory system resources or performance monitoring
US10649678B2 (en) * 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring
CN107800644A (zh) * 2017-11-08 2018-03-13 中国人民解放军国防科技大学 一种可动态配置的流水化令牌桶限速方法与装置
TWI681362B (zh) * 2018-03-01 2020-01-01 瑞昱半導體股份有限公司 有限記憶體頻寬系統及其動態限制圖形處理器的記憶體頻寬的方法
CN111708622B (zh) * 2020-05-28 2022-06-10 山东云海国创云计算装备产业创新中心有限公司 一种指令组调度方法、架构、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083244A1 (en) * 2000-12-27 2002-06-27 Hammarlund Per H. Processing requests to efficiently access a limited bandwidth storage area
US20040044878A1 (en) * 2002-09-04 2004-03-04 Evans Martin Robert Synchronisation between pipelines in a data processing apparatus
TWI222011B (en) * 2000-01-05 2004-10-11 Intel Corp Memory shared between processing threads

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685484B2 (ja) * 1988-04-13 1997-12-03 株式会社日立製作所 記憶制御方式
US5600805A (en) * 1992-06-15 1997-02-04 International Business Machines Corporation Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems
JPH06332701A (ja) * 1993-05-26 1994-12-02 Hitachi Ltd 情報処理装置
US6801995B1 (en) * 1998-08-04 2004-10-05 Agere Systems, Inc. Method for optimally encoding a set of instruction codes for a digital processor having a plurality of instruction selectable resource types and an associated optimized set of instruction codes
US6820142B2 (en) * 2000-12-14 2004-11-16 International Business Machines Corporation Token based DMA
US6567897B2 (en) * 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US6996647B2 (en) * 2003-12-17 2006-02-07 International Business Machines Corporation Token swapping for hot spot management
US7530068B2 (en) * 2003-12-17 2009-05-05 International Business Machines Corporation Method of resource allocation using an access control mechanism
US20060015772A1 (en) * 2004-07-16 2006-01-19 Ang Boon S Reconfigurable memory system
US7386687B2 (en) * 2005-01-07 2008-06-10 Sony Computer Entertainment Inc. Methods and apparatus for managing a shared memory in a multi-processor system
US20060259733A1 (en) * 2005-05-13 2006-11-16 Sony Computer Entertainment Inc. Methods and apparatus for resource management in a logically partitioned processing environment
US7412353B2 (en) * 2005-09-28 2008-08-12 Intel Corporation Reliable computing with a many-core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI222011B (en) * 2000-01-05 2004-10-11 Intel Corp Memory shared between processing threads
US20020083244A1 (en) * 2000-12-27 2002-06-27 Hammarlund Per H. Processing requests to efficiently access a limited bandwidth storage area
US20040044878A1 (en) * 2002-09-04 2004-03-04 Evans Martin Robert Synchronisation between pipelines in a data processing apparatus

Also Published As

Publication number Publication date
JP2010518472A (ja) 2010-05-27
KR101123443B1 (ko) 2012-06-12
KR20090115115A (ko) 2009-11-04
EP2115584A1 (en) 2009-11-11
WO2008095844A1 (en) 2008-08-14
US20080189522A1 (en) 2008-08-07
TW200901040A (en) 2009-01-01
CN101606130A (zh) 2009-12-16
US8407451B2 (en) 2013-03-26
EP2115584B1 (en) 2016-01-27
JP5241737B2 (ja) 2013-07-17
CN101606130B (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
TWI417792B (zh) 在處理器系統之指令階使資源分配識別之方法及裝置
JP6381541B2 (ja) データ処理システム中で命令を処理する方法、回路構成、集積回路デバイス、プログラム製品(リモート処理ノード中のアドレス変換データ構造を更新するための変換管理命令)
US7165164B2 (en) Method and apparatus including heuristic for sharing TLB entries
US8943584B2 (en) Centralized device virtualization layer for heterogeneous processing units
US9329988B2 (en) Parallel dynamic memory allocation using a nested hierarchical heap
US7194597B2 (en) Method and apparatus for sharing TLB entries
CN102906716B (zh) 促进计算环境的系统存储器的管理的方法
US8639882B2 (en) Methods and apparatus for source operand collector caching
US7490214B2 (en) Relocating data from a source page to a target page by marking transaction table entries valid or invalid based on mappings to virtual pages in kernel virtual memory address space
US20120079241A1 (en) Instruction execution based on outstanding load operations
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
TW201227301A (en) Real address accessing in a coprocessor executing on behalf of an unprivileged process
JP2015135696A (ja) ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
CN108268385B (zh) 具有集成目录高速缓存的优化的高速缓存代理
TWI752031B (zh) 孔徑存取處理器、方法、系統及指令
US9069664B2 (en) Unified streaming multiprocessor memory
CN103870397A (zh) 数据处理系统中访问数据的方法以及电路安排
CN109983443B (zh) 实现分叉非易失性存储器快速驱动器的技术
CN102566970A (zh) 用于处理具有高速缓存旁路的修饰指令的数据处理器
US20220164303A1 (en) Optimizations of buffer invalidations to reduce memory management performance overhead
CN111095203A (zh) 实时寄存器值的集群间通信
US20090063881A1 (en) Low-overhead/power-saving processor synchronization mechanism, and applications thereof
US20230315328A1 (en) High bandwidth extended memory in a parallel processing system

Legal Events

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