TWI781201B - 使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質控制 - Google Patents
使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質控制 Download PDFInfo
- Publication number
- TWI781201B TWI781201B TW107126114A TW107126114A TWI781201B TW I781201 B TWI781201 B TW I781201B TW 107126114 A TW107126114 A TW 107126114A TW 107126114 A TW107126114 A TW 107126114A TW I781201 B TWI781201 B TW I781201B
- Authority
- TW
- Taiwan
- Prior art keywords
- resource
- memory
- partition
- allocation
- partitions
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/70—Details relating to dynamic memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本發明揭示使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質(QoS)控制。就此而言,在一個態樣中,一以處理器為基礎之系統提供一分區資源(諸如一系統快取記憶體或至一共用系統記憶體之記憶體存取頻寬),該分區資源再分為複數個分區並經組態以為複數個資源用戶端服務。該以處理器為基礎之系統的一資源分配代理提供複數個分配指示符,其對應於資源用戶端與分區之每一組合並指示針對每一資源用戶端之每一分區的一分配。該資源分配代理基於該複數個分配指示符之一內插而在該等資源用戶端之間分配該分區資源。因為每一分配指示符對於資源用戶端與分區之每一組合可係不同的,所以該等分配指示符之內插為每一資源用戶端提供一較高解析度聚合資源分配。
Description
本發明之技術大體上係關於以處理器為基礎之系統中的分區資源,且詳言之係關於用於分區資源的服務品質(QoS)機構。
習知以處理器為基礎之系統提供資源(諸如系統快取記憶體及/或記憶體存取頻寬),其可在多個資源用戶端之間共用。為增加並行度,資源可再分為可大部分彼此獨立地操作及/或存取的多個分區。舉例而言,系統快取記憶體(例如,作為非限制性實例,末階快取)可分區成多個「圖塊」或「例項」,每一者提供相同數目個快取通路。藉由不同資源用戶端進行的快取存取操作可使用習知位址至分區映射技術基於例如快取存取操作之記憶體位址的雜湊而指派給快取記憶體分區中之一者。
為促進共用,服務品質(QoS)機構可在不同資源用戶端之間選擇性地分配資源之部分,不同資源用戶端可根據不同優先權、相對重要性及/或效能目標操作。舉例而言,在上文所描述之快取實例中,對應於資源用戶端之「通路遮罩」(亦即,包括每一快取通路之位元的位元遮罩)可用於分配用於每一快取記憶體分區之快取通道之子集以供彼資源用戶端使用。作為非限制性實例,20通路組聯快取可再分為八個(8)分區,其中每一資源用戶端之通路遮罩具有20個位元以指示20個通路中之哪一者經分配至彼資源用戶端。因為每一資源用戶端之通路遮罩應用於所有分區,所以可分配至每一資源用戶端的最小快取空間為5%,或在八(8)個分區內的20個通路中之一個(1)。
同樣地,亦可使用在概念上類似之控制分配記憶體存取頻寬。作為實例,以處理器為基礎的系統可提供四個(4)記憶體控制器作為記憶體存取頻寬提供者。每一資源用戶端可經指派四個(4)位元之「記憶體步幅值」以指示對於記憶體頻寬之請求如何經加權用於彼資源用戶端,其中較低記憶體步幅值指示較高權重。因為記憶體步幅值可具有16個不同值(亦即0至15),所以可經分配至每一資源用戶端的最小記憶體存取頻寬為總記憶體存取頻寬之6.25% (或1/16)。
然而,精細度之QoS控制可係分配共用資源所需要。上文所描述的QoS機構允許僅僅相對粗糙控制,其限制分配解析度並抑制可存取給定共用資源之資源用戶端的數目。此外,用於實施精細度之QoS控制的許多機構可導致較高硬體實施成本。
根據本發明之態樣包括使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質(QoS)控制。就此而言,在一個態樣中,以處理器為基礎的系統提供一分區資源(亦即,作為非限制性實例,系統快取記憶體或至共用系統記憶體的記憶體存取頻寬),該分區資源再分為複數個分區且經組態以為複數個資源用戶端服務。對於資源用戶端與分區之每一組合,分配指示符經提供以指示針對資源用戶端的分區之分配。作為非限制性實例,其中分區資源為具有複數個通路之分區快取的態樣可提供分配指示符以指示分區之多少通路可分配至資源用戶端。類似地,其中分區資源為複數個記憶體存取頻寬提供者之態樣可規定分配指示符指示當執行資源用戶端之記憶體存取操作時待藉由記憶體控制器應用的步幅。
因為每一分配指示符對於資源用戶端與分區之每一組合可係不同的,所以該等分配指示符之內插為每一資源用戶端提供一較高解析度聚合資源分配。舉例而言,若分區資源為分成四個(4)分區之10通路組聯快取,則習知QoS機構將僅僅允許快取以10%之最小解析度(亦即,最小分配為10個中之1個通路)來分配。然而,根據本文所揭示之態樣,給定資源用戶端之分配指示符對於每一分區可變化。作為非限制性實例,資源用戶端可經分配第一及第二分區之50%,及第三及第四分區之60%。此導致用於資源用戶端的55%的快取之總聚合分配。
在另一態樣中,揭示一種用於提供分區資源的精細度之QoS控制的以處理器為基礎之系統。該以處理器為基礎之系統包含經再分為複數個分區且經組態以為複數個資源用戶端服務的一分區資源。該以處理器為基礎之系統進一步包含資源分配代理及複數個分配指示符,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,且表示針對資源用戶端的分區之分配。資源分配代理經組態以基於用於該複數個資源用戶端中之每一資源用戶端的該複數個分配指示符之內插在該複數個資源用戶端之間分配分區資源。
在另一態樣中,揭示一種用於提供分區資源的精細度之QoS控制的以處理器為基礎之系統。該以處理器為基礎之系統包含用於基於複數個分配指示符之內插在複數個資源用戶端之間分配一分區資源的構件,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,且表示針對資源用戶端的分區之分配。
在另一態樣中,揭示一種用於提供分區資源之精細度之QoS控制的方法。該方法包含藉由以處理器為基礎的系統之資源分配代理基於複數個分配指示符之一內插在複數個資源用戶端之間分配一分區資源,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,且表示針對資源用戶端的分區之分配。
在另一態樣中,提供一種非暫時性電腦可讀媒體。該非暫時性電腦可讀媒體在上面儲存電腦可執行指令,該等電腦可執行指令在由一處理器執行時促使該處理器基於複數個分配指示符之一內插在複數個資源用戶端之間分配一分區資源,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,且表示針對資源用戶端的分區之分配。
現參考附圖,描述本發明之若干例示性態樣。詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。本文中被描述為「例示性」之任何態樣未必被認作比其他態樣更佳或更有利。
揭示於實施方式中之態樣包括使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質(QoS)控制。就此而言,圖1繪示包括中央處理單元(CPU)102及在多個資源用戶端106(0)至106(C)之間共用的分區資源104之例示性以處理器為基礎之系統100。根據一些態樣之分區資源104可包含系統快取記憶體(諸如末階快取),及/或可經由複數個記憶體控制器(圖中未繪示)存取的共用系統記憶體之記憶體存取頻寬。作為非限制性實例,資源用戶端106(0)至106(C)可包含並行執行之軟體程序、虛擬機、硬體裝置,或經組態以存取分區資源104之其他實體。應理解圖1之以處理器為基礎之系統100可涵蓋已知數位邏輯元件、半導體電路及處理核心中之任一者,及/或記憶體結構、以及其他元件或其組合。本文中所描述之態樣並不限於任何特定的元件之配置,且所揭示之技術可容易地延伸至半導體晶粒或封裝上之各種結構及佈局。應理解以處理器為基礎之系統100的一些態樣可包括除圖1中所繪示之彼等元件以外的元件。
為促進藉由分區資源104之資源用戶端106(0)至106(C)並行使用,以處理器為基礎之系統100規定分區資源104再分為複數個分區108(0)至108(P),其中之每一者可進一步分成可在資源用戶端106(0)至106(C)之間選擇性分配的子單元。舉例而言,在其中分區資源104包含系統快取記憶體(例如,末階快取,作為非限制性實例)之以處理器為基礎之系統100的態樣中,分區108(0)至108(P)可包含快取「圖塊」或「例項」,其中之每一者提供相同數目個快取通路。類似地,分區資源104包含用於共用系統記憶體之記憶體存取頻寬提供者的以處理器為基礎之系統100之態樣可規定:分區108(0)至108(P)中之每一者包含記憶體存取頻寬提供者,諸如一記憶體控制器。在兩個態樣中,來自資源用戶端106(0)至106(C)諸如資源用戶端106(0)之存取請求110基於例如與存取請求110相關聯的記憶體位址之雜湊而指派給分區108(0)至108(P)中之一者。
然而,如上文所提及,用於在資源用戶端106(0)至106(C)之間分配分區資源104的習知QoS機構不可能提供足夠分配解析度(亦即,可藉由QoS機構分配的分區資源104之最小可分配部分對於精確分配而言仍可能過大)。此外,此等粗糙之QoS機構可對可存取給定共用資源之資源用戶端的數目強加固有限制。因此,需要實施精細度之QoS機構以提供較高分配解析度而不招致過度較高硬體實施成本。
就此而言,圖1之以處理器為基礎之系統100提供一資源分配代理112。雖然資源分配代理112在圖1中繪示為獨立元件,但在一些態樣中,資源分配代理112可整合至CPU 102中、整合至快取控制器(圖中未繪示)或記憶體管理單元(MMU) (圖中未繪示)中、整合至以處理器為基礎之系統100的其他元件中或跨越以處理器為基礎之系統100之其他元件分佈,及/或部分藉由軟體實體(圖中未繪示)諸如由以處理器為基礎之系統100之CPU 102執行的作業系統或超管理器來實施。資源分配代理112採用與分區108(0)至108(P)相關聯的複數個分配指示符114(0)至114(C)、114'(0)至114'(C)。分配指示符114(0)至114(C)、114'(0)至114'(C)中之每一者對應於資源用戶端106(0)至106(C)中之一者與分區108(0)至108(P)中之一者的獨特組合,且表示針對對應資源用戶端106(0)至106(C)之分區108(0)至108(P)的分配。舉例而言,在圖1中,假定分配指示符114(0)對應於用於資源用戶端106(0)之分區108(0),而分配指示符114'(0)對應於用於資源用戶端106(0)之分區108(P)。取決於存取請求110是指派給分區108(0)抑或分區108(P),分配指示符114(0)或分配指示符114'(0)將由資源分配代理112使用以判定對應分區108(0)、108(P)中的多少可被分配至資源用戶端106(0)以滿足存取請求110。
不同於習知QoS機構,用於資源用戶端106(0)至106(C)中之給定者的分配指示符114(0)至114(C)、114'(0)至114'(C)中之每一者可跨越不同分區108(0)至108(P)而變化。結果,諸如資源用戶端106(0)之資源用戶端可經分配分區108(0)至108(P)中之每一者的不同部分。藉由內插不同分配指示符114(0)至114(C)、114'(0)至114'(C),可達到較高分配解析度,因此使得分區資源104之較小部分能夠在必要時被分配至資源用戶端106(0)至106(C)中之每一者。
為繪示以處理器為基礎之系統100之例示性態樣,提供圖2至圖5。圖2繪示圖1之以處理器為基礎之系統100的例示性實施,其中分區資源104包含系統快取記憶體且資源分配代理112包含快取控制器,而圖4繪示圖1之以處理器為基礎之系統100的例示性實施,其中分區資源104包含用於共用系統記憶體之記憶體存取頻寬提供者且資源分配代理112包含MMU。圖3及圖5經提供以繪示分配指示符114(0)至114(C)、114'(0)至114'(C)之內插如何在前述態樣中之每一者中提供精細度之QoS控制。
如圖2中所見,以處理器為基礎之系統100之一個態樣可提供對應於圖1之資源分配代理112的快取控制器200。圖2進一步提供對應於圖1之分區資源104的系統快取記憶體202,及對應於圖1之分區108(0)至108(P)的複數個快取記憶體分區204(0)至204(H)。因此,本文中關於圖1之資源分配代理112、分區資源104及分區108(0)至108(P)的揭示內容分別應用於圖2之快取控制器200、系統快取記憶體202及快取記憶體分區204(0)至204(H)。作為非限制性實例,系統快取記憶體202可包含1階(L1)快取、2階(L2)快取、3階(L3)快取及/或末階快取。在接收包含記憶體位址208之快取存取請求206後,快取控制器200指派快取存取請求206給快取記憶體分區204 (0)至204(H)中之一者(例如基於記憶體位址208之雜湊)。
在圖2的實例中之分配指示符114(0)至114(C)、114'(0)至114'(C)各自包含提供複數個位元指示符(圖中未繪示)之通路遮罩(圖中未繪示)。分配指示符114(0)至114(C)、114'(0)至114'(C)之每一位元指示符對應於系統快取記憶體202之快取記憶體分區204(0)至204(H)中之一者的一個通路,且指示對應通路是否已分配至相關聯資源用戶端106(0)至106(C)。使用藉由分配指示符114(0)至114(C)、114'(0)至114'(C)提供的通路遮罩,快取控制器200分配經指派快取記憶體分區204(0)至204(H)之一部分以代表資源用戶端106(0)至106(C)進行快取存取請求206。
圖3提供在圖2之實例中的分配指示符114(0)至114(C)、114'(0)至114'(C)可如何經內插以提供圖2之系統快取記憶體202的精細度之QoS控制的更詳細說明。在此實例中,假定快取記憶體分區204(0)至204(H)的數目為四(亦即,H=3),且進一步假定系統快取記憶體202之快取記憶體分區204(0)至204(3)由10個通路組成。因此,分配指示符114(0)至114(3)、114'(0)至114'(3)提供通路遮罩300(0)至300(3)、300'(0)至300'(3),其中之每一者係由對應於10個通路之10個位元組成。分配指示符114(0)至114(3)分別表示針對資源用戶端106(0)的系統快取記憶體202之快取記憶體分區204(0)至204(3)的分配。分配指示符114'(0)至114'(3)分別表示針對資源用戶端106(C)的系統快取記憶體202之快取記憶體分區204(0)至204(3)的分配。
因為在此實例中之系統快取記憶體202由10個通路組成,所以習知QoS機構將能夠僅僅以10%之增量分配系統快取記憶體202。然而,藉由內插分配指示符114(0)至114(3)、114'(0)至114'(3)以判定針對資源用戶端106(0)、106(C)之系統快取記憶體202的聚合分配,可達到較高分配解析度。在圖3的實例中,替代10%之解析度,系統快取記憶體202可藉由在快取記憶體分區204(0)至204(3)中之一者(1)中分配一個(1)通路,及在剩餘的快取記憶體分區204(0)至204(3)中分配零個(0)通路而以小如2.5% (亦即,在此實例中,通路之數目(10)除以快取記憶體分區204(0)至204(3)的數目)的增量分配。應理解上文所論述之百分比特定針對於圖3之實例,且可在一些態樣中根據通路之數目及快取記憶體分區204(0)至204(H)之數目而變化。
在圖3的實例中,分配指示符114(0)及114(1)具有設定為一(1)值之前五個(5)位元指示符,其指示快取記憶體分區204(0)及204(1)之前五個(5)通路(亦即,50%)分別分配至資源用戶端106(0)。分配指示符114(2)及114(3)具有設定為一(1)值之前六個(6)位元指示符,其指示快取記憶體分區204(2)及204(3)之前六個(6)通路(亦即,60%)分別分配至資源用戶端106(0)。因此,針對資源用戶端106(0)的系統快取記憶體202之總聚合分配為55%(亦即,(50+50+60+60)/4)。同樣地,分配指示符114'(0)及114'(1)具有設定為一(1)值之後五個(5)位元指示符,其指示快取記憶體分區204(0)及204(1)之後五個(5)通路(亦即50%)分別分配至資源用戶端106(C)。分配指示符114'(2)及114'(3)具有設定為一(1)值之後四個(4)位元指示符,其指示快取記憶體分區204(2)及204(3)之後四個(4)通路(亦即,40%)分別分配至資源用戶端106(C)。針對資源用戶端106(C)的系統快取記憶體202之總聚合分配因此為45% (亦即,(50+50+40+40)/4),使用具有較粗糙解析度的習知QoS機構將係不可能的分配。
現參看圖4,在另一態樣中,圖1之以處理器為基礎之系統100可提供對應於圖1之資源分配代理112的MMU 400、對應於圖1之分區資源104的記憶體存取頻寬提供者402,及對應於圖1之分區108(0)至108(P)的複數個記憶體控制器404(0)至404(M)。本文中關於圖1之資源分配代理112、分區資源104及分區108(0)至108(P)的揭示內容因此可分別應用於圖4之MMU 400、記憶體存取頻寬提供者402及記憶體控制器404(0)至404(M)。以處理器為基礎之系統100亦包括可藉由資源用戶端106(0)至106(C)經由記憶體控制器404(0)至404(M)存取的共用系統記憶體406。在一些態樣中,作為非限制性實例,共用系統記憶體406可包含動態隨機存取記憶體(DRAM)。
在圖4的實例中,分配指示符114(0)至114(C)、114'(0)至114'(C)各自包含指示與對於對應資源用戶端106(0)至106(C)的記憶體存取頻寬之請求相關聯之權重的記憶體步幅值(圖中未繪示)。在一些態樣中,記憶體步幅值與指派給對於記憶體存取頻寬之請求的權重成反比,使得較低記憶體步幅值指示較高權重。當MMU 400接收包含記憶體位址410之記憶體存取請求408時,MMU 400指派待由記憶體控制器404(0)至404(M)中之一者處置的記憶體存取請求408。作為非限制性實例,記憶體存取請求408可基於記憶體位址410之雜湊而指派給記憶體控制器404(0)至404(M)中之一者。
圖5更詳細地繪示圖4之記憶體存取頻寬提供者402的精細度之QoS控制可如何藉由內插分配指示符114(0)至114(C)、114'(0)至114'(C)而提供。在圖5中,假定記憶體控制器404(0)至404(M)的數目為四(亦即,M=3)。分配指示符114(0)至114(3)、114'(0)至114'(3)提供記憶體步幅值500(0)至500(3)、500'(0)至500'(3),其具有四個(4)位元之大小且指示指派給對於對應資源用戶端106(0)至106(C)及記憶體控制器404(0)至404(3)的記憶體存取頻寬之請求的相對權重。詳言之,分配指示符114(0)至114(3)分別表示針對資源用戶端106(0)之記憶體存取頻寬提供者402的記憶體控制器404(0)至404(3)之分配,而分配指示符114'(0)至114'(3)分別表示針對資源用戶端106(C)之記憶體存取頻寬提供者402的記憶體控制器404(4)至404(3)之分配。
因為對於四位元記憶體步幅值500(0)至500(3)、500'(0)至500'(3)中之每一者存在16個可能值,所以習知QoS機構將能夠僅僅以6.25% (亦即1/16)之增量分配記憶體存取頻寬提供者402。然而,在圖5的實例中,較高分配解析度可藉由內插分配指示符114(0)至114(3)、114'(0)至114'(3)以提供分數記憶體步幅值用於資源用戶端106(0)、106(C)來達成。在圖5的實例中,替代6.25%之解析度,記憶體存取頻寬提供者402可藉由選擇記憶體控制器404(0)至404(M)中之一者(1)的為一(1)之記憶體步幅值500(0)至500(3)、500'(0)至500'(3),及選擇剩餘記憶體控制器404(0)至404(3)中之為零(0)的記憶體步幅值500(0)至500(3)、500'(0)至500'(3)而以小如1.5625% (亦即,在此實例中,1/16除以記憶體控制器404(0)至404(3)的數目)的增量分配。應理解上文所論述百分比特定針對於圖5之實例,且可在一些態樣中根據記憶體步幅值500(0)至500(3)、500'(0)至500'(3)之大小及記憶體控制器404(0)至404(3)的數目而變化。
如圖5中所見,分配指示符114(0)及114(1)已分別經指派記憶體步幅值500(0)及500(1),各自具有二(2)之值。分配指示符114(2)及114(3)已分別經指派記憶體步幅值500(2)及500(3),其中之每一者具有一(1)之值。因此,用於資源用戶端106(0)的記憶體存取頻寬提供者402之總聚合記憶體步幅值為1.5。類似地,分配指示符114'(0)及114'(1)已分別經指派記憶體步幅值500'(0)及500'(1),各自具有四(4)之值,而分配指示符114'(2)及114'(3)已分別經指派記憶體步幅值500'(2)及500'(3),各自具有三(3)之值。用於資源用戶端106(C)的記憶體存取頻寬提供者402之總聚合記憶體步幅值因此為3.5。
圖6繪示用於使用用於分區資源104之內插而提供精細度之QoS控制的圖1之以處理器為基礎之系統100及資源分配代理112的例示性操作。為清楚起見,在描述圖6時參考圖1之元件。在圖6中,操作以以處理器為基礎之系統100提供分區資源104開始(區塊600),該分區資源再分為複數個分區108(0)至108(P)且經組態以為複數個資源用戶端106(0)至106(C)服務。就此而言,以處理器為基礎之系統100在本文中可被稱作「用於提供再分為複數個分區且經組態以為複數個資源用戶端服務之分區資源的構件」。
資源分配代理112 (例如,作為非限制性實例,圖2之快取控制器200及/或圖4之MMU 400)接著基於複數個分配指示符114(0)至114(C)、114'(0)至114'(C)的內插在該複數個資源用戶端106(0)至106(C)之間分配分區資源104,每一分配指示符對應於該複數個分區108(0)至108(P)中之一分區108(0)至108(P)及該複數個資源用戶端106(0)至106(C)中之一資源用戶端106(0)至106(C),並表示針對資源用戶端106(0)至106(C)之分區108(0)至108(P)的分配(區塊602)。因此,資源分配代理112在本文中可被稱作「用於基於複數個分配指示符之內插在複數個資源用戶端之間分配分區資源的構件,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,且表示針對資源用戶端的分區之分配」。
為繪示用於接收存取請求(諸如圖1之存取請求110)並指派該存取請求給分區資源104之分區108(0)至108(P)的圖1之資源分配代理112之其他例示性操作,提供圖7。為清楚起見,在描述圖7時參考圖1至圖5之元件。圖7中之操作開始於資源分配代理112自該複數個資源用戶端106(0)至106(C)中之一資源用戶端106(0)至106(C)接收對於分區資源104之存取請求110(區塊700)。在提供圖2之系統快取記憶體202的以處理器為基礎之系統100的態樣中,用於接收存取請求110的區塊700之操作可藉由快取控制器200實施,且可包含接收包含記憶體位址208之快取存取請求206(區塊702)。同樣地,包括圖4之共用系統記憶體406的以處理器為基礎之系統100的態樣可規定用於接收存取請求110之區塊700的操作可藉由MMU 400實施,且可包含接收包含記憶體位址410之記憶體存取請求408(區塊704)。
接下來,存取請求110經指派給分區資源104之分區108(0)至108(P)(區塊706)。根據圖2及圖3中所繪示之態樣用於指派存取請求110的區塊706之操作可包含基於記憶體位址208之雜湊選擇系統快取記憶體202之複數個快取記憶體分區204(0)至204(H)中的一快取記憶體分區204(0)至204(H) (區塊708)。在圖4及圖5中所繪示之態樣中,用於指派存取請求110之區塊706的操作可包含基於記憶體位址410之雜湊選擇該複數個記憶體控制器404(0)至404(M)中之一記憶體控制器404(0)至404(M)來存取記憶體存取頻寬(區塊710)。資源分配代理112 (例如,作為非限制性實例,圖2之快取控制器200及/或圖4之MMU 400)基於複數個分配指示符114(0)至114(C)、114'(0)至114'(C)中之一分配指示符114(0)至114(C)、114'(0)至114'(C)分配分區資源104之分區108(0)至108(P)的一部分至資源用戶端106(0)至106(C),每一分配指示符對應於複數個分區108(0)至108(P)中之一分區108(0)至108(P)及複數個資源用戶端106(0)至106(C)中之一資源用戶端106(0)至106(C) (區塊712)。
根據本文所揭示之態樣使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之QoS控制可在任何以處理器為基礎之裝置中提供或整合至以處理器為基礎之裝置中。實例(非限制性地)包括機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)裝置、行動電話、蜂巢式電話、智慧型電話、會話起始協定(SIP)電話、平板電腦、平板手機、伺服器、電腦、攜帶型電腦、行動計算裝置、可穿戴式計算裝置(例如,智慧型手錶、保健或健康跟蹤器、護目鏡等)、桌上型電腦、個人數位助理(PDA)、監視器、電腦監視器、電視、調諧器、收音機、衛星收音機、音樂播放器、數位音樂播放器、攜帶型音樂播放器、數位視訊播放器、視訊播放器、數位視訊光碟(DVD)播放器、攜帶型數位視訊播放器、汽車、車輛組件、航電系統、無人飛機及多旋翼飛行器。
就此而言,圖8繪示對應於圖1、圖2及圖4之以處理器為基礎之系統100並可採用圖1中所繪示之資源分配代理112的以處理器為基礎的系統800之實例。以處理器為基礎之系統800包括一或多個CPU 802,各自包括一或多個處理器804。一或多個CPU 802可具有耦接至一或多個處理器804以用於快速存取暫時儲存之資料且在一些態樣中可包含圖1之資源分配代理112的快取記憶體806。一或多個CPU 802耦接至系統匯流排808且可將包括於以處理器為基礎之系統800中之主控裝置與從屬裝置相互耦接。如所熟知,一或多個CPU 802藉由經由系統匯流排808交換位址、控制及資料資訊而與此等其他裝置通信。舉例而言,一或多個CPU 802可將匯流排異動請求傳達至作為從屬裝置之實例的記憶體控制器810。根據一些態樣,記憶體控制器810可對應於圖4之記憶體控制器404(0)至404(M)。
其他主控裝置及從屬裝置可連接至系統匯流排808。如圖8中所繪示,作為實例,此等裝置可包括記憶體系統812、一或多個輸入裝置814、一或多個輸出裝置816、一或多個網路介面裝置818及一或多個顯示控制器820。在一些態樣中,記憶體系統812可包含圖1之資源分配代理112。一或多個輸入裝置814可包括任何類型之輸入裝置,包括(但不限於)輸入鍵、交換器、語音處理器等。一或多個輸出裝置816可包括任何類型之輸出裝置,包括(但不限於)音訊、視訊、其他視覺指示器等。一或多個網路介面裝置818可為經組態以允許至及自網路822之資料交換的任何裝置。網路822可為任何類型之網路,包括(但不限於)有線或無線網路、私用或公用網路、區域網路(LAN)、無線區域網路(WLAN)、廣域網路(WAN)、BLUETOOTHTM
網路及網際網路。一或多個網路介面裝置818可經組態以支援任何類型之所要通信協定。記憶體系統812可包括一或多個記憶體單元824(0)至824(N)。
一或多個CPU 802亦可經組態以經由系統匯流排808存取一或多個顯示控制器820以控制發送至一或多個顯示器826之資訊。一或多個顯示控制器820發送資訊至一或多個顯示器826以待經由一或多個視訊處理器828顯示,該等視訊處理器處理該資訊而以適合於一或多個顯示器826之格式來顯示。一或多個顯示器826可包括任何類型之顯示器,包括(但不限於)陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器等。
熟習此項技術者應進一步瞭解,結合本文中所揭示之態樣描述的各種說明性邏輯區塊、模組、電路及演算法可實施為電子硬體、儲存於記憶體或另一電腦可讀媒體中且由處理器或其他處理裝置執行之指令,或此兩者之組合。作為實例,本文中所描述之主控裝置及從屬裝置可用於任何電路、硬體組件、積體電路(IC)或IC晶片中。本文中揭示之記憶體可為任何類型及大小之記憶體,且可經組態以儲存所需之任何類型的資訊。為清楚地說明此互換性,上文已大體上就其功能性而言描述各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性取決於特定應用、設計選項及/或強加於整個系統之設計約束。對於每一特定應用而言,熟習此項技術者可針對每一特定應用而以變化之方式實施所描述之功能性,但不應將此等實施決策解譯為致使脫離本發明之範疇。
可藉由處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或經設計以執行本文中所描述之功能的其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其任何組合來實施或執行結合本文中所揭示之態樣而描述的各種說明性邏輯區塊、模組及電路。處理器可為微處理器,但在替代例中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可實施為計算裝置之組合(例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任何其他此類組態)。
本文中所揭示之態樣可體現於硬體及儲存於硬體中之指令中,且可駐留於(例如)隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式化ROM (EPROM)、電可抹除可程式化ROM (EEPROM)、暫存器、硬碟、可移除式磁碟、CD-ROM或此項技術中已知的任何其他形式之電腦可讀媒體中。例示性儲存媒體經耦合至處理器,使得處理器可自儲存媒體讀取資訊並將資訊寫入至儲存媒體。在替代例中,儲存媒體可與處理器成一體式。處理器及儲存媒體可駐留於ASIC中。ASIC可駐留在遠端台中。在替代例中,處理器及儲存媒體可作為離散組件駐留在遠端台、基地台或伺服器中。
亦應注意,描述在本文中例示性態樣中之任一者中所描述的操作步驟以提供實例及論述。可以不同於所說明之序列的眾多不同序列進行所描述之操作。此外,實際上可以數個不同步驟來執行單一操作步驟中描述之操作。此外,可組合例示性態樣中所論述之一或多個操作步驟。應理解,流程圖中所說明之操作步驟可經受熟習此項技術者將容易明白的許多不同修改。熟習此項技術者亦將理解,可使用多種不同技術及技法中之任一者來表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子,或其任何組合來表示在貫穿以上描述中可能引用之資料、指令、命令、資訊、信號、位元、符號及碼片。
提供本發明之先前描述以使得任何熟習此項技術者能夠製造或使用本發明。熟習此項技術者將容易地顯而易見對本發明之各種修改,且本文中定義之一般原理可在不背離本發明之精神或範疇的情況下應用於其他變體。因此,本發明並不意欲限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
100‧‧‧以處理器為基礎之系統102‧‧‧中央處理單元(CPU)104‧‧‧分區資源106(0)‧‧‧資源用戶端106(C)‧‧‧資源用戶端108(0)‧‧‧分區108(P)‧‧‧分區110‧‧‧存取請求112‧‧‧資源分配代理114(0)‧‧‧分配指示符114(C)‧‧‧分配指示符114'(0)‧‧‧分配指示符114'(C)‧‧‧分配指示符200‧‧‧快取控制器202‧‧‧系統快取記憶體204(0)‧‧‧快取記憶體分區204(1)‧‧‧快取記憶體分區204(2)‧‧‧快取記憶體分區204(3)‧‧‧快取記憶體分區204(H)‧‧‧快取記憶體分區206‧‧‧快取存取請求208‧‧‧記憶體位址300(0)‧‧‧通路遮罩300(1)‧‧‧通路遮罩300(2)‧‧‧通路遮罩300(3)‧‧‧通路遮罩300'(0)‧‧‧通路遮罩300'(1)‧‧‧通路遮罩300'(2)‧‧‧通路遮罩300'(3)‧‧‧通路遮罩400‧‧‧記憶體管理單元(MMU)402‧‧‧記憶體存取頻寬提供者404(0)‧‧‧記憶體控制器404(1)‧‧‧記憶體控制器404(2)‧‧‧記憶體控制器404(3)‧‧‧記憶體控制器404(M)‧‧‧記憶體控制器406‧‧‧共用系統記憶體408‧‧‧記憶體存取請求410‧‧‧記憶體位址500(0)‧‧‧記憶體步幅值500(1)‧‧‧記憶體步幅值500(2)‧‧‧記憶體步幅值500(3)‧‧‧記憶體步幅值500'(0)‧‧‧記憶體步幅值500'(1)‧‧‧記憶體步幅值500'(2)‧‧‧記憶體步幅值500'(3)‧‧‧記憶體步幅值600‧‧‧區塊602‧‧‧區塊700‧‧‧區塊702‧‧‧區塊704‧‧‧區塊706‧‧‧區塊708‧‧‧區塊710‧‧‧區塊712‧‧‧區塊800‧‧‧以處理器為基礎之系統802‧‧‧中央處理單元(CPU)804‧‧‧處理器806‧‧‧快取記憶體808‧‧‧系統匯流排810‧‧‧記憶體控制器812‧‧‧記憶體系統814‧‧‧輸入裝置816‧‧‧輸出裝置818‧‧‧網路介面裝置820‧‧‧顯示控制器822‧‧‧網路824(0)‧‧‧記憶體單元824(N)‧‧‧記憶體單元826‧‧‧顯示器828‧‧‧視訊處理器
圖1為用於藉由採用資源分配代理及分配指示符使用分區資源之內插而提供精細度之服務品質(QoS)控制的例示性以處理器為基礎的系統之方塊圖;
圖2為包括系統快取記憶體及快取控制器的圖1之以處理器為基礎的系統之例示性實施之方塊圖;
圖3為繪示藉由圖2之快取控制器進行以提供圖2之系統快取記憶體的精細度之QoS控制的分配指示符之例示性內插的方塊圖;
圖4為包括共用系統記憶體及記憶體管理單元(MMU)的圖1之基於處理器之系統的例示性實施之方塊圖;
圖5為繪示藉由圖4之MMU進行以提供用於圖4的共用系統記憶體之記憶體存取頻寬的精細度之QoS控制的分配指示符之例示性內插的方塊圖;
圖6為繪示用於藉由圖1之資源分配代理使用用於分區資源之內插而提供精細度之QoS控制的例示性程序的流程圖;
圖7為繪示用於接收存取請求並指派存取請求給分區資源之分區的圖1之資源分配代理之其他例示性操作的流程圖;且
圖8為可包括圖1之資源分配代理的例示性以處理器為基礎的系統之方塊圖。
100‧‧‧以處理器為基礎之系統
102‧‧‧中央處理單元(CPU)
104‧‧‧分區資源
106(0)‧‧‧資源用戶端
106(C)‧‧‧資源用戶端
108(0)‧‧‧分區
108(P)‧‧‧分區
110‧‧‧存取請求
112‧‧‧資源分配代理
114(0)‧‧‧分配指示符
114(C)‧‧‧分配指示符
114'(0)‧‧‧分配指示符
114'(C)‧‧‧分配指示符
Claims (21)
- 一種用於提供分區資源之精細度之服務品質(QoS)控制的以處理器為基礎之系統,其包含:一分區資源,其再分為複數個分區且經組態以為複數個資源用戶端服務;複數個分配指示符,每一分配指示符對應於該複數個分區中之一分區及複數個資源用戶端中之一資源用戶端,其中所述複數個分配指示符中的每一分配指示符對應資源用戶與分區的獨特組合;及一資源分配代理,其經組態以基於用於該複數個資源用戶端中之每一資源用戶端的該複數個分配指示符之一內插在該複數個資源用戶端之間分配該分區資源,使得每一資源用戶被分配等於由用於所述資源用戶的所述複數個分配指示符所指示的所述複數個分區的分配平均的所述分區資源的百分比。
- 如請求項1之以處理器為基礎之系統,其經組態以藉由經組態而執行以下操作來基於用於該複數個資源用戶端中之每一資源用戶端的該複數個分配指示符的該內插在該複數個資源用戶端之間分配該分區資源:自該複數個資源用戶端中之一資源用戶端接收對該分區資源之一存取請求;指派該存取請求至該分區資源之一分區;及基於該複數個分配指示符中之對應於該分區及該資源用戶端的一分 配指示符而分配該分區資源之該分區的一部分至該資源用戶端。
- 如請求項2之以處理器為基礎之系統,其中:該分區資源包含一系統快取記憶體;該資源分配代理包含一快取控制器;該複數個分區包含該系統快取記憶體之複數個快取記憶體分區;且該複數個分配指示符包含複數個通路遮罩,每一通路遮罩指示分配至該複數個資源用戶端中之一對應資源用戶端的該複數個快取記憶體分區中之一對應快取記憶體分區的一或多個快取通路。
- 如請求項3之以處理器為基礎之系統,其中該資源分配代理經組態以:藉由經組態以接收包含一記憶體位址之一快取存取請求而自該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求;及藉由經組態以基於該記憶體位址之一雜湊而選擇該系統快取記憶體的該複數個快取記憶體分區中之一快取記憶體分區而指派該存取請求至該分區資源之該分區。
- 如請求項2之以處理器為基礎之系統,其中:該分區資源包含至一共用系統記憶體之複數個記憶體存取頻寬提供者;該資源分配代理包含一記憶體管理單元(MMU);該複數個分區包含經組態以存取該共用系統記憶體的複數個記憶體 控制器;且該複數個分配指示符包含複數個記憶體步幅值,每一記憶體步幅值指示針對該複數個資源用戶端中之一對應資源用戶端的每一記憶體存取操作待藉由該複數個記憶體控制器中之一對應記憶體控制器應用的一相對權重。
- 如請求項5之以處理器為基礎之系統,其中該資源分配代理經組態以:藉由經組態以接收包含一記憶體位址的一記憶體存取請求而自該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求;及藉由經組態以基於該記憶體位址之一雜湊而選擇該複數個記憶體控制器中之一記憶體控制器來存取該共用系統記憶體而指派該存取請求至該分區資源之該分區。
- 如請求項1之以處理器為基礎之系統,其整合至一積體電路(IC)中。
- 如請求項1之以處理器為基礎之系統,其整合至自由下列各者組成之群組中選出的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一全球定位系統(GPS)裝置;一行動電話;一蜂巢式電話;一智慧型電話;一會話起始協定(SIP)電話;一平板電腦;一平板手機;一伺服器;一電腦;一攜帶型電腦;一行動計算裝置;一可穿戴計算裝置;一桌上型電腦;一個人數位助理(PDA);一監視器;一電腦監視器;一電視;一調諧器;一收音機;一 衛星收音機;一音樂播放器;一數位音樂播放器;一攜帶型音樂播放器;一數位視訊播放器;一視訊播放器;一數位視訊光碟(DVD)播放器;一攜帶型數位視訊播放器;一汽車;一載具組件;航電系統;一無人機;及一多旋翼飛行器。
- 一種用於提供分區資源之精細度之服務品質(QoS)控制的以處理器為基礎的系統,其包含用於基於複數個分配指示符之一內插在複數個資源用戶端之間分配一分區資源的一構件,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及該複數個資源用戶端中之一資源用戶端,其中所述複數個分配指示符中的每一分配指示符對應資源用戶與分區的獨特組合,使得每一資源用戶被分配等於由用於所述資源用戶的所述複數個分配指示符所指示的所述複數個分區的分配平均的所述分區資源的百分比。
- 一種用於提供分區資源之精細度之服務品質(QoS)控制的方法,該方法包含藉由一以處理器為基礎之系統的一資源分配代理基於複數個分配指示符之一內插而在複數個資源用戶端之間分配一分區資源,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及該複數個資源用戶端中之一資源用戶端,其中所述複數個分配指示符中的每一分配指示符對應資源用戶與分區的獨特組合,使得每一資源用戶被分配等於由用於所述資源用戶的所述複數個分配指示符所指示的所述複數個分區的分配平均的所述分區資源的百分比。
- 如請求項10之方法,其中基於該複數個分配指示符之該內插在該複數個資源用戶端之間分配該分區資源包含:自該複數個資源用戶端中之一資源用戶端接收對該分區資源之一存取請求;指派該存取請求至該分區資源之一分區;及基於該複數個分配指示符中之對應於該分區及該資源用戶端的一分配指示符而分配該分區資源之該分區的一部分至該資源用戶端。
- 如請求項11之方法,其中:該分區資源包含一系統快取記憶體;該資源分配代理包含一快取控制器;該複數個分區包含該系統快取記憶體之複數個快取記憶體分區;且該複數個分配指示符包含複數個通路遮罩,每一通路遮罩指示分配至該複數個資源用戶端中之一對應資源用戶端的該複數個快取記憶體分區中之一對應快取記憶體分區的一或多個快取通路。
- 如請求項12之方法,其中:自該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求包含接收一快取存取請求,該快取存取請求包含一記憶體位址;且指派該存取請求至該分區資源之該分區包含基於該記憶體位址之一雜湊而選擇該系統快取記憶體的該複數個快取記憶體分區中之一快取記憶體分區。
- 如請求項11之方法,其中:該分區資源包含至一共用系統記憶體之複數個記憶體存取頻寬提供者;該資源分配代理包含一記憶體管理單元(MMU);該複數個分區包含經組態以存取該共用系統記憶體的複數個記憶體控制器;且該複數個分配指示符包含複數個記憶體步幅值,每一記憶體步幅值指示針對該複數個資源用戶端中之一對應資源用戶端的每一記憶體存取操作待藉由該複數個記憶體控制器中之一對應記憶體控制器應用的一相對權重。
- 如請求項14之方法,其中:自該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求包含接收一記憶體存取請求,該記憶體存取請求包含一記憶體位址;及指派該存取請求至該分區資源之該分區包含基於該記憶體位址之一雜湊而選擇該複數個記憶體控制器中之一記憶體控制器。
- 一種上面儲存有電腦可執行指令之非暫時性電腦可讀媒體,該等電腦可執行指令在由一處理器執行時促使該處理器基於複數個分配指示符之一內插而在複數個資源用戶端之間分配一分區資源,該分區資源再分為複數個分區,每一分配指示符對應於該複數個分區中之一分區及該複數個資源用戶端中之一資源用戶端,其中所述複數個分配指示符中的每一分配指 示符對應資源用戶與分區的獨特組合,使得每一資源用戶被分配等於由用於所述資源用戶的所述複數個分配指示符所指示的所述複數個分區的分配平均的所述分區資源的百分比。
- 如請求項16之上面儲存有電腦可執行指令之非暫時性電腦可讀媒體,該等電腦可執行指令在由一處理器執行時進一步促使該處理器藉由促使該處理器執行以下操作而基於該複數個分配指示符之該內插在該複數個資源用戶端之間分配該分區資源:自該複數個資源用戶端中之一資源用戶端接收對該分區資源之一存取請求;指派該存取請求至該分區資源之一分區;及基於該複數個分配指示符中之對應於該分區及該資源用戶端的一分配指示符而分配該分區資源之該分區的一部分至該資源用戶端。
- 如請求項17之非暫時性電腦可讀媒體,其中:該分區資源包含一系統快取記憶體;該資源分配代理包含一快取控制器;該複數個分區包含該系統快取記憶體之複數個快取記憶體分區;且該複數個分配指示符包含複數個通路遮罩,每一通路遮罩指示分配至該複數個資源用戶端中之一對應資源用戶端的該複數個快取記憶體分區中之一對應快取記憶體分區的一或多個快取通路。
- 如請求項18之上面儲存有電腦可執行指令之非暫時性電腦可讀媒 體,該等電腦可執行指令在由一處理器執行時進一步促使該處理器執行以下操作:藉由促使該處理器接收包含一記憶體位址的一快取存取請求而自該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求;及藉由促使該處理器基於該記憶體位址之一雜湊而選擇該系統快取記憶體的該複數個快取記憶體分區中之一快取記憶體分區而指派該存取請求至該分區資源之該分區。
- 如請求項17之非暫時性電腦可讀媒體,其中:該分區資源包含至一共用系統記憶體之複數個記憶體存取頻寬提供者;該資源分配代理包含一記憶體管理單元(MMU);該複數個分區包含經組態以存取該共用系統記憶體的複數個記憶體控制器;且該複數個分配指示符包含複數個記憶體步幅值,每一記憶體步幅值指示針對該複數個資源用戶端中之一對應資源用戶端的每一記憶體存取操作待藉由該複數個記憶體控制器中之一對應記憶體控制器應用的一相對權重。
- 如請求項20之上面儲存有電腦可執行指令之非暫時性電腦可讀媒體,該等電腦可執行指令在由一處理器執行時進一步促使該處理器執行以下操作:藉由促使該處理器接收包含一記憶體位址的一記憶體存取請求而自 該複數個資源用戶端中之該資源用戶端接收對該分區資源之該存取請求;及藉由促使該處理器基於該記憶體位址之一雜湊而選擇該複數個記憶體控制器中之一記憶體控制器指派該存取請求至該分區資源之該分區。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/689,543 US10678690B2 (en) | 2017-08-29 | 2017-08-29 | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
US15/689,543 | 2017-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201913394A TW201913394A (zh) | 2019-04-01 |
TWI781201B true TWI781201B (zh) | 2022-10-21 |
Family
ID=63442777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107126114A TWI781201B (zh) | 2017-08-29 | 2018-07-27 | 使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質控制 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10678690B2 (zh) |
EP (1) | EP3676711A1 (zh) |
CN (1) | CN111033480B (zh) |
SG (1) | SG11202000382RA (zh) |
TW (1) | TWI781201B (zh) |
WO (1) | WO2019045954A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061728B2 (en) * | 2019-02-12 | 2021-07-13 | Western Digital Technologies, Inc. | Systems and methods for heterogeneous address space allocation |
US10983919B2 (en) * | 2019-09-25 | 2021-04-20 | Nvidia Corp. | Addressing cache slices in a last level cache |
KR20210076652A (ko) * | 2019-12-16 | 2021-06-24 | 현대자동차주식회사 | 차량용 멀티미디어 시스템 및 그를 위한 메모리 관리 방법 |
CN111294247B (zh) * | 2020-05-13 | 2020-09-18 | 广东睿江云计算股份有限公司 | 一种存储区域的QoS分配方法及系统 |
US11709711B2 (en) * | 2020-09-27 | 2023-07-25 | Advanced Micro Devices, Inc. | Allocation of memory access bandwidth to clients in an electronic device |
US11947454B2 (en) * | 2021-06-09 | 2024-04-02 | Ampere Computing Llc | Apparatuses, systems, and methods for controlling cache allocations in a configurable combined private and shared cache in a processor-based system |
US11880306B2 (en) | 2021-06-09 | 2024-01-23 | Ampere Computing Llc | Apparatus, system, and method for configuring a configurable combined private and shared cache |
US12007896B2 (en) | 2021-06-09 | 2024-06-11 | Ampere Computing Llc | Apparatuses, systems, and methods for configuring combined private and shared cache levels in a processor-based system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW439031B (en) * | 1997-09-04 | 2001-06-07 | Equator Technologies Inc | Processor resource distributor and method |
US20030172234A1 (en) * | 2002-03-06 | 2003-09-11 | Soltis Donald C. | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
TW200707228A (en) * | 2005-02-25 | 2007-02-16 | Ibm | System and method for modification of virtual adapter resources in a logically partitioned data processing system |
US20140173211A1 (en) * | 2012-12-13 | 2014-06-19 | Advanced Micro Devices | Partitioning Caches for Sub-Entities in Computing Devices |
US20160147656A1 (en) * | 2014-11-25 | 2016-05-26 | Qualcomm Incorporated | Providing shared cache memory allocation control in shared cache memory systems |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493800B1 (en) * | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US20020108021A1 (en) * | 2001-02-08 | 2002-08-08 | Syed Moinul I. | High performance cache and method for operating same |
US8464009B2 (en) * | 2008-06-04 | 2013-06-11 | Oracle America, Inc. | Method for memory interleave support with a ceiling mask |
US8250332B2 (en) * | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US8756608B2 (en) * | 2009-07-01 | 2014-06-17 | International Business Machines Corporation | Method and system for performance isolation in virtualized environments |
US8543769B2 (en) * | 2009-07-27 | 2013-09-24 | International Business Machines Corporation | Fine grained cache allocation |
US8745618B2 (en) * | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
US8200902B2 (en) * | 2010-06-10 | 2012-06-12 | Arm Limited | Cache device for coupling to a memory device and a method of operation of such a cache device |
KR101867286B1 (ko) | 2012-02-27 | 2018-06-15 | 삼성전자주식회사 | 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법 |
US9824013B2 (en) | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US10049048B1 (en) * | 2013-10-01 | 2018-08-14 | Facebook, Inc. | Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor |
US9563369B2 (en) | 2014-04-14 | 2017-02-07 | Microsoft Technology Licensing, Llc | Fine-grained bandwidth provisioning in a memory controller |
US9612970B2 (en) * | 2014-07-17 | 2017-04-04 | Qualcomm Incorporated | Method and apparatus for flexible cache partitioning by sets and ways into component caches |
US9697126B2 (en) * | 2014-11-25 | 2017-07-04 | Qualcomm Incorporated | Generating approximate usage measurements for shared cache memory systems |
US9824015B2 (en) * | 2015-05-29 | 2017-11-21 | Qualcomm Incorporated | Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media |
US9734070B2 (en) * | 2015-10-23 | 2017-08-15 | Qualcomm Incorporated | System and method for a shared cache with adaptive partitioning |
-
2017
- 2017-08-29 US US15/689,543 patent/US10678690B2/en active Active
-
2018
- 2018-07-27 TW TW107126114A patent/TWI781201B/zh active
- 2018-08-06 EP EP18762422.6A patent/EP3676711A1/en active Pending
- 2018-08-06 SG SG11202000382RA patent/SG11202000382RA/en unknown
- 2018-08-06 CN CN201880053700.3A patent/CN111033480B/zh active Active
- 2018-08-06 WO PCT/US2018/045370 patent/WO2019045954A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW439031B (en) * | 1997-09-04 | 2001-06-07 | Equator Technologies Inc | Processor resource distributor and method |
US20030172234A1 (en) * | 2002-03-06 | 2003-09-11 | Soltis Donald C. | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
TW200707228A (en) * | 2005-02-25 | 2007-02-16 | Ibm | System and method for modification of virtual adapter resources in a logically partitioned data processing system |
US20140173211A1 (en) * | 2012-12-13 | 2014-06-19 | Advanced Micro Devices | Partitioning Caches for Sub-Entities in Computing Devices |
US20160147656A1 (en) * | 2014-11-25 | 2016-05-26 | Qualcomm Incorporated | Providing shared cache memory allocation control in shared cache memory systems |
Also Published As
Publication number | Publication date |
---|---|
US10678690B2 (en) | 2020-06-09 |
WO2019045954A1 (en) | 2019-03-07 |
EP3676711A1 (en) | 2020-07-08 |
US20190065374A1 (en) | 2019-02-28 |
SG11202000382RA (en) | 2020-03-30 |
TW201913394A (zh) | 2019-04-01 |
CN111033480B (zh) | 2024-06-18 |
CN111033480A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI781201B (zh) | 使用以處理器為基礎之系統中用於分區資源之內插而提供精細度之服務品質控制 | |
JP7116047B2 (ja) | プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラおよび方法 | |
TWI619016B (zh) | 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法 | |
TWI627533B (zh) | 提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體 | |
JP6262408B1 (ja) | 共有キャッシュメモリシステムに関する概算使用測定値の生成 | |
EP3248095B1 (en) | Storage resource management in virtualized environments | |
US11947454B2 (en) | Apparatuses, systems, and methods for controlling cache allocations in a configurable combined private and shared cache in a processor-based system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |