TWI763158B - 記憶體共享 - Google Patents
記憶體共享 Download PDFInfo
- Publication number
- TWI763158B TWI763158B TW109142172A TW109142172A TWI763158B TW I763158 B TWI763158 B TW I763158B TW 109142172 A TW109142172 A TW 109142172A TW 109142172 A TW109142172 A TW 109142172A TW I763158 B TWI763158 B TW I763158B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- partition
- component
- cache controller
- circuitry
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1016—Performance 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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/60—Details of cache memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一IC晶片上之組件可在允許存取足夠記憶體資源時相對於功耗操作更快或提供更高效能。然而,若每一組件自身被提供記憶體,則晶片變得很昂貴。在所描述之實施方案中,在兩個或更多個組件(110、114、116)之間共享記憶體。例如,一處理組件(116)可包含運算電路系統(206)及耦合至運算電路系統(206)之一記憶體(106)。一多組件快取控制器(114)耦合至記憶體(106)。邏輯電路系統(202)耦合至快取控制器(114)及記憶體(106)。邏輯電路系統(202)將記憶體(106)選擇性分離成多個記憶體分區(108)。一第一記憶體分區(108-1)可經分配給運算電路系統(206)且為運算電路系統(206)提供儲存。一第二記憶體分區(108-2)可經分配給快取控制器(114)且為多個組件(110)提供儲存。記憶體分區之相對容量可調整以適應波動需求,而無需將個別記憶體專用於組件。
Description
電子裝置在製造、通信、運輸、健康照護、商業、社會互動及娛樂中起不可或缺作用。例如,電子裝置供電給為商業及通信提供雲端分佈式運算功能之伺服器場。電子裝置亦嵌入於自醫療裝置至家用電器及自車輛至工業工具之諸多不同類型之現代設備中。個人電子裝置實現可攜式視訊觀看及存取智慧型數位助理。另外,一多功能電子裝置(智慧型電話)實際上已成為觸手可及之一必需品。
為提供各種特徵及服務,各電子裝置包含一積體電路(IC),諸如一處理器或無線收發器。IC為電子裝置提供智慧以實現不同功能。一方面,一裝置具有之積體電路系統越多,裝置可具有之能力越大。另一方面,增加積體電路系統增加一電子裝置之成本及大小。平衡能力與成本及大小之一方法係採用一單晶片系統(SoC)。SoC將不同類型之電路系統組合至一單一IC晶片上以管理成本及大小。然而,歸因於含於一單一IC晶片上,一SoC具有一有限大小。一SoC亦帶來極大複雜性,因為在一受限區域中提供多種能力。對SoC及包含此等晶片之電子裝置之設計者及製造商而言,管理此等大小及複雜性問題面臨挑戰。
一般而言,使一處理器與適當記憶體資源匹配改良處理器之操作。隨著一給定處理器(如一人工智慧(AI)加速器)之一本端記憶體之容量增加,處理器可以更佳效能執行程式碼。例如,對於「常開」自動語音辨識(ASR),一足夠大本端隨機存取記憶體(RAM)可使一AI加速器能夠以較低延時及較低功耗執行ASR。一AI加速器之一較大本端記憶體亦可提高某些用例之每瓦特效能,如高解析度視訊圖框之機器學習(ML)處理。
一系統級快取(SLC)可為多個其他組件提供快取服務,不管另一組件自身是否具有本端記憶體。對於特定用例,一較大SLC亦可促進較快處理及一較佳功率分佈。例如,若SLC具有足夠容量,則可在超高清(UHD)視訊擷取期間更高效地執行時間雜訊減少(TNR),因為可減少存取主記憶體之次數。因此,自個別處理組件及快取組件之角度看,期望增加記憶體容量以提高效能及能量效率。
然而,若跨所有此等組件增大用於此等處理及快取組件之此等單獨本端記憶體之大小,則由所有個別記憶體佔據之面積大大增加。因此,增加各組件之記憶體容量與一積體電路(IC)晶片之面積限制衝突,尤其與可含有大量組件之一單晶片系統(SoC)之面積限制衝突。換言之,為一晶片上之各組件提供一大本端記憶體將增大晶片之大小且因此明顯增加晶片之成本。因此,處理能力一方面與效率效能之間且另一方面與依一具成本效益方式在一IC晶片上提供記憶體之一能力之間存在矛盾。
為緩解此矛盾,所描述之實施方案在兩個或更多個組件之間共享一記憶體。例如,可在一處理組件與一快取組件(諸如一多組件快取控制器)之間共享一記憶體。多組件快取控制器為一系統中之其他組件(如一不同處理組件)提供快取服務。可實現為靜態RAM (SRAM)之共享記憶體可作為一本端記憶體由處理組件存取及作為可由其他系統組件使用之一快取記憶體由多組件快取控制器存取。為提供快取服務,多組件快取控制器可保存標籤資訊以監測快取什麼資料及執行快取命中/未中判定。依此方式,一共享記憶體可服務多個組件以減小專用於提供記憶體之一IC晶片之一總面積。此提供成本節省,同時實質上維持多個組件之速度及節能效能。
在實例實施方案中,一處理組件包含用於本端記憶體儲存之一SRAM。此SRAM記憶體區塊收容於處理組件內。例如,若將處理組件實現為一AI加速器,則AI加速器可在執行一ML模型時將SRAM用作一高速暫存記憶體。處理組件使至少一讀取/寫入埠暴露於SRAM用於由一多組件快取控制器存取。多組件快取控制器使用SRAM來快取其快取客戶端之資料。為應對波動處理需求,可將SRAM選擇性分離成不同大小之記憶體分區。例如,當處理組件執行一相對較高要求操作時,分配給處理組件之一第一記憶體分區可具有SRAM之百分之75 (75%)之一第一容量。回應於操作需求減少,處理組件可釋放SRAM之至少一部分(例如SRAM之50%)。因此,若轉移放棄記憶體之全部50%,則分配給多組件快取控制器之第二記憶體分區之一第二容量可自25%增加至75%。因此,當處理組件使用較少SRAM時,多組件快取控制器可為其快取客戶端提供更多記憶體。
以下將描述之態樣包含一種用於記憶體共享之設備。該設備包含一處理組件、一多組件快取控制器、邏輯電路系統及多個組件。該處理組件包含運算電路系統及耦合至該運算電路系統之一記憶體。該多組件快取控制器耦合至該記憶體。該邏輯電路系統耦合至該多組件快取控制器及該記憶體。該邏輯電路系統經組態以將該記憶體選擇性分離成包含一第一記憶體分區及一第二記憶體分區之多個記憶體分區。該第一記憶體分區經分配給該運算電路系統且經組態以為該運算電路系統提供儲存。該第二記憶體分區經分配給該多組件快取控制器且經組態以為該多個組件提供儲存。該設備可(例如)經實現為一積體電路,或該設備可為包含此一積體電路之另一設備。
以下將描述之態樣包含一種用於共享一記憶體之方法,其由一設備執行。該方法包含由一處理組件之運算電路系統執行一操作。該方法亦包含由該運算電路系統存取該處理組件之一記憶體之一第一記憶體分區以支援該操作之執行。另外,該方法包含由一多組件快取控制器接收來自一組件之快取資料之一請求。該方法進一步包含由該多組件快取控制器基於該請求將該資料儲存於該記憶體之一第二記憶體分區中。該方法亦包含調整該第一記憶體分區之一第一容量及該第二記憶體分區之一第二容量。
以下將描述之態樣包含一種用於記憶體共享之系統,其可經實現為一設備之至少一部分或一設備之一IC。該系統包含用於由一處理組件之運算電路系統執行一操作之構件。該系統亦包含用於由該運算電路系統存取該處理組件之一記憶體之一第一記憶體分區以支援該操作之執行之構件。另外,該系統包含用於由一多組件快取控制器接收來自一組件之快取資料之一請求之構件。該系統進一步包含用於由該多組件快取控制器基於該請求將該資料儲存於該記憶體之一第二記憶體分區中之構件。該系統亦包含用於調整該第一記憶體分區之一第一容量及該第二記憶體分區之一第二容量之構件。
概述
電子裝置為現代社會作出重要貢獻,諸如為通信、安全及製造作出重要貢獻。各電子裝置依賴具有處理能力以提供一些功能之一積體電路(IC)。可藉由減小常用於一電子裝置內之多個IC之總大小或成本來減小電子裝置之大小及成本。減小一電子裝置內之多個IC之總大小及成本之一方式係減少裝置內IC之總數量。為此,可增加包含於裝置之各IC上之電路系統之量以藉此減少用於裝置內之IC之數量。在一極端實例中,一電子裝置之大多數電路系統或電路系統之至少一可觀部分經併入至一單一IC上以節省空間及降低成本。此指稱一單晶片系統(SoC)。諸多較小電子裝置(包含智慧助理及一些智慧型電話)包含一SoC。
一SoC可包含多種類型之處理器、不同記憶體、用於各種目的之控制器、類比及數位部分兩者、時序及功率管理電路系統及用於使各種組件互連之至少一交換結構。處理器之實例包含通用處理器(例如一中央處理單元(CPU))、圖形處理器(例如一圖形處理單元(GPU))、通信處理器(例如一數據機)、人工智慧(AI)處理器(例如一神經網路加速器)、數位信號處理器(DSP)等等。各處理器執行使用一記憶體來儲存資料(諸如輸入、中間及輸出資料)之運算。因此,一SoC可包含用於不同組件(包含各種處理組件)之不同記憶體。
在一些架構中,一SoC包含用於每一各自處理組件之一各自專用記憶體。例如,一GPU可包含用於圖形資料之一記憶體,且一AI處理器可包含用於AI資料之另一記憶體。有時,諸如當執行一密集圖形相關程序時,用於GPU之記憶體之一儲存容量可能不足以儲存所有當前圖形資料。類似地,用於AI處理器之記憶體有時可能不足以儲存用於由AI處理器加速之一當前任務(諸如語音辨識)之所有資料。在此等情形中,一個別處理器在其專用記憶體中可能無容量留給資料來儲存資料,其可稱為溢出資料。為應對此等情形,SoC可包含一系統級快取。系統級快取經設計以儲存源自系統中之多個組件(包含不同處理組件,諸如GPU處理器或AI處理器)之溢出資料。
即使具有個別專用記憶體及一聯合系統級快取,但SoC仍可能無法包含足夠記憶體來處置複雜或資料密集型任務。SoC或其處理部分上之此記憶體不足導致存取一主記憶體。此等存取降低處理效能,因為存取主記憶體比存取專用記憶體或系統級快取記憶體慢。僅可藉由在SoC上(諸如在個別組件或系統級快取處)添加更多記憶體來解決記憶體不足。在一實例方法中,一IC晶片之一設計者可在用於各個別處理組件之每一各自專用記憶體處包含更多容量。不幸地,一IC晶片上之面積如同一城市中之土地——領土有限且獲得更多領土係很昂貴的。製造一更大IC晶片來為SoC提供更大面積顯著增加IC晶片之成本且因此增加電子裝置之成本。此增加面積及成本隨SoC上可能需要更多記憶體之個別處理組件之數目進一步倍增。
作為一替代方法,一IC晶片設計者可在系統級快取之記憶體中包含更多容量。此使添加記憶體容量能夠由具有溢出資料之諸多不同組件使用而無需在各個別組件之各自專用記憶體處提供額外容量。然而,此基於快取之方法仍涉及增大系統級快取記憶體之一大小且因此增加IC晶片之一成本。此外,添加容量位於系統級快取處,其可能相對遠離包含效能關鍵處理組件之諸多個別組件。此距離增加儲存於系統級快取中之溢出資料之存取時間。進一步言之,用於存取系統級快取之專用電路系統(諸如用於使一請求記憶體位址與標籤資訊匹配之電路系統)亦增加溢出資料之存取時間。因此,儘管增大一系統級快取記憶體之一大小可為一SoC提供額外記憶體容量,但增大記憶體大小亦增加SoC之成本。而且,儲存於系統級快取記憶體中之資料之記憶體存取時間比儲存於一個別組件之一專用記憶體中之資料之記憶體存取時間慢。
為解決此等問題,本發明描述在一積體電路(諸如一SoC)之兩個或更多個組件之間共享一記憶體之實施方案。共享可基於當前任務或當前記憶體利用率。各個別組件可存取共享記憶體之一部分。為實現此共享,將記憶體分離成多個記憶體分區。多個記憶體分區之每一各自記憶體分區經分配給多個組件之一各自組件。在一些情況中,各記憶體分區之一大小或容量可基於當前操作參數調整。例如,在一第一時間,一給定組件可與具有共享記憶體之25%之一記憶體分區相關聯,且在一第二時間,組件可與具有共享記憶體之50%之一記憶體分區相關聯。依此方式,分配給一個別組件之一記憶體量可適應當前處理需求。所描述之實施方案之適應性可根據當前使用為個別組件提供增加記憶體容量,而無需不斷擴充各個別組件之專用記憶體。此靈活性可針對一給定效能位準減小一SoC之大小及/或成本。此適應性亦可提高相對於功耗之效能。
在一些實施方案中,一系統級快取係與至少一其他組件共享一記憶體之一組件之一實例。在此等實施方案中,系統級快取被分配記憶體之一記憶體分區。接著,系統級快取可將分配之記憶體分區作為快取記憶體提供給其他組件,諸如一數據機或一CPU。為提供快取記憶體服務,系統級快取可包含用於儲存標籤位元及用於檢查標籤以判定一快取命中或未中之電路系統。因此,系統可提供一可變大小之快取記憶體以滿足多個組件之波動需求,而無需一大專用記憶體可全時用於快取服務。因此,將一共享記憶體用於一系統級快取可減少記憶體支出且節省總IC晶片資源。
在其他實施方案中,一組件包含與其他組件選擇性共享之一記憶體。組件可經實施為一處理組件,諸如一AI加速器引擎。一個別組件可判定個別組件當前將利用多少記憶體容量及多少可用於共享。基於此判定,一記憶體分區可經分配給個別組件之運算電路系統。此記憶體分區可實體上接近運算電路系統。另外或替代地,記憶體分區可經最佳化以與由該處理組件執行之特定類型之處理操作(諸如與圖形或神經網路操作有關之處理操作)一起使用。記憶體之另一記憶體分區經分配給另一組件。在一些情況中,其他組件可經實現為一系統級快取。因此,執行高頻寬記憶體存取之一處理組件可利用接近其運算電路系統之一記憶體,同時系統可為多個組件適應性提供快取服務,而不求助於一單獨唯快取記憶體。
本文描述各種替代實施方案。例如,可共享記憶體可經分成若干記憶體部分,其中各記憶體部分對應於記憶體與一多組件快取控制器之間的一通道。此提供可經組合以提供更大頻寬之獨立邏輯通道。多個記憶體部分之每一各自記憶體部分亦可與一處理組件之多個運算單元之一各自運算單元相關聯。在此等情形中,處理組件可包含多個片區,其中每一各自片區具有一各自記憶體部分及一各自運算單元。此實現更高記憶體存取頻寬及更大處理並行度。
各記憶體可經組織成多個記憶體庫,且各記憶體部分可將多個記憶體庫實現為用於快取記憶體操作之多種連續方式。可使用一或多個多工器將記憶體庫選擇性分配至不同記憶體分區中。記憶體共享邏輯電路系統可使用多工器來控制對一分配記憶體分區之存取以增強安全性及為已被分配記憶體分區之組件建立排他性存取。作為另一安全預防,各組件可在放棄記憶體分區用於隨後分配給另一組件之前將一預定值(例如全零)程式化至一分配記憶體分區中。另外,單獨功率域可經架構化使得可獨立於應用於一共享記憶體之一功率模式而為一組件之至少一部分制定一睡眠模式。本文描述其他實施方案。
依此等方式,可建立一共享記憶體以減少包含於諸如一SoC之一系統中之記憶體容量之總量,而不明顯降低效能。此減小支援系統之一IC晶片之一大小及成本。替代地,IC晶片之大小及成本可實質上不變,同時藉由實施本文中所描述之記憶體共享來提高系統之效能。進一步言之,可藉由將一更大記憶體分區選擇性分配給可在一當前處理任務下以一更大記憶體容量更高功效地操作之一組件來提高相對於功耗之效能。
下文將參考相關聯圖來討論各種詳細程度之實例實施方案。下文討論首先闡述一實例操作環境且接著描述實例硬體、方案及技術。其後參考流程圖或圖式描述實例方法。
記憶體共享之實例操作環境
圖1大體上以100繪示具有一積體電路104 (IC 104)之一實例設備102,IC 104包含可共享一記憶體106之多個組件110-1及110-2。在此實例中,設備102經描繪為一智慧型電話。然而,設備102可經實施為任何適合運算或電子裝置。設備102之實例包含一行動電子裝置、行動通信裝置、數據機、蜂巢式或行動電話、行動站、遊戲裝置、導航裝置、媒體或娛樂裝置(例如一媒體串流器或遊戲控制器)、膝上型電腦、桌上型電腦、平板電腦、智慧型電器、車載電子系統、可穿戴運算裝置(例如衣服或手錶)、物聯網(IoT)裝置、感測器、庫存管理裝置、一機器或一件設備之電子部分、伺服器電腦或其部分(例如一伺服器刀鋒或機架)及其類似者。設備102之繪示實例包含一平板裝置102-1、一智慧型電視102-2、一桌上型電腦102-3、一伺服器電腦102-4、一智慧型手錶102-5、一智慧型電話(或文件閱讀器) 102-6及智慧型眼鏡102-7。
在實例實施方案中,設備102包含至少一積體電路104。積體電路104可安裝於一印刷電路板(PCB)(未展示)上。一PCB之實例包含一撓性PCB、一剛性PCB、一單層或多層PCB、一表面安裝或通孔PCB、其等之組合等等。各積體電路104可經實現為一通用處理器、一單晶片系統(SoC)、一安全導向IC、一記憶體晶片、一通信IC (例如一數據機或射頻IC)、一圖形處理器、一人工智慧(AI)處理器、其等之組合等等。如所展示,積體電路104包含至少一記憶體106及多個組件(包含一第一組件110-1及一第二組件110-2)。記憶體106、第一組件110-1及第二組件110-2可一起整合於一單一IC上,如所展示;替代地,組件及記憶體可跨兩個或更多個IC分佈。
在實例操作中,多個組件110-1及110-2共享記憶體106。如所展示,記憶體106經分離成多個記憶體分區108-1及108-2。第一記憶體分區108-1經分配給第一組件110-1,且第二記憶體分區108-2經分配給第二組件110-2。因此,第一記憶體分區108-1為第一組件110-1提供儲存,且第二記憶體分區108-2為第二組件110-2提供儲存。如由一箭頭112所指示,可增大或減小各記憶體分區108之大小或容量。例如,可增加第一記憶體分區108-1之一容量,同時減少第二記憶體分區108-2之一容量。
儘管圖1中明確描繪且上文描述一個記憶體106、兩個組件110及兩個記憶體分區108,但可代以實施各者之一不同數量。例如,一積體電路104可包含五個組件110及兩個記憶體106,兩個記憶體106之一者可經分離成由高達三個組件110共享之兩個或三個記憶體分區108。一般而言,記憶體106可經分離成「X」個記憶體分區108,其中「X」表示2或更大之一整數。接下來參考圖1-1描述積體電路104之實例架構。
圖1-1繪示包含至少一記憶體106、至少一多組件快取控制器114及多個其他組件之一實例積體電路104。積體電路104進一步包含至少一處理組件116、至少一多組件記憶體控制器118及至少一交換結構122。如所展示,積體電路104包含「P」個處理組件116-1、116-2、…、116-P,其中「P」表示一正整數。積體電路104亦包含「C」個多組件快取控制器114-1、114-2、...、114-C及「C」個多組件記憶體控制器118-1、118-2、...、118-C,其中「C」表示一正整數。積體電路104進一步包含三個交換結構122-1、122-2及122-3及至少一系統記憶體120。儘管圖1-1中描繪且本文中描述各組件之特定實例數量(例如一個記憶體106及三個交換結構122),但可用此等組件之替代數量(例如三個或七個記憶體106及一個或四個交換結構122)來實施一積體電路104。
在實例實施方案中,多個多組件快取控制器114-1…114-C之每一各自多組件快取控制器114耦合至且相關聯於多個多組件記憶體控制器118-1…118-C之一各自多組件記憶體控制器118。多組件實體亦可指稱系統級實體。例如,多組件快取控制器114可指稱一系統級快取控制器114。各多組件記憶體控制器118藉由產生及組織記憶體請求來提供對系統記憶體120之存取。系統記憶體120可(例如)用動態隨機存取記憶體(DRAM)實現。替代地或另外,系統記憶體120可用靜態隨機存取記憶體(SRAM)、快閃記憶體、一磁碟機等等實現。
多組件快取控制器114使用至少一記憶體為具有溢出資料之一或多個組件提供快取服務。多組件快取控制器114可使用一本端及/或專用記憶體作為快取記憶體或可透過本文中所描述之記憶體共享來使用另一記憶體,諸如記憶體106。多個多組件快取控制器114-1…114-C之各多組件快取控制器114耦合至一第一交換結構122-1。一第二交換結構122-2及一第三交換結構122-3各耦合至第一交換結構122-1。因此,第二交換結構122-2經由第一交換結構122-1耦合至第三交換結構122-3。各交換結構122可經實施為一匯流排、一互連件、用於位址或資料資訊之一串列或並行導管、具有緩衝器之多個平行導線等等。
如所展示,一第一處理組件116-1及一第二處理組件116-2兩者耦合至第二交換結構122-2。一「第P」處理組件116-P及記憶體106兩者耦合至第三交換結構122-3。各處理組件116可經實現為(例如)一通用處理器(例如一中央處理單元(CPU))、一圖形處理器(例如一圖形處理單元(GPU))、一通信處理器(例如一數據機)、一人工智慧(AI)處理器(例如一神經網路加速器)、一數位信號處理器(DSP)或一控制器。控制器可包含匯流排控制器、輸入/輸出控制器、微控制器等等。
在實例操作中,至少兩個組件共享記憶體106。記憶體106可(例如)用SRAM實現。替代地或另外,記憶體106可用DRAM實現。例如,第一處理組件116-1及第二處理組件116-2可分別使用第一記憶體分區108-1及第二記憶體分區108-2來共享記憶體106。類似地,「第P」處理組件116-P及一第二多組件快取控制器114-2可共享記憶體106。為此,第一記憶體分區108-1可經分配給「第P」處理組件116-P且第二記憶體分區108-2可經分配給第二多組件快取控制器114-2。在此情況中,「第P」處理組件116-P可直接使用第一記憶體分區108-1來儲存資訊。第二多組件快取控制器114-2可將第二記憶體分區108-2用作一快取記憶體。因此,第二多組件快取控制器114-2可藉由將此等組件之資料或溢出資料儲存於記憶體106之第二記憶體分區108-2中來為諸如第一處理組件116-1及第二處理組件116-2之一或多個其他組件提供快取服務。
在圖1-1中,系統記憶體120經繪示為積體電路104之部分,積體電路104可安置於一單一IC晶片上。替代地,系統記憶體120可安置於一單獨IC晶片上,諸如在安裝於一相同PCB上之一不同IC晶片上。進一步言之,繪示組件之一或多個其他者同樣可安置於單獨IC晶片上。記憶體106在圖1-1中描繪為經由兩個交換結構耦合至第二多組件快取控制器114-2之一單獨記憶體組件。然而,記憶體106可安置於積體電路104之其他位置中。下文將參考圖2描述此等其他位置之實例。
記憶體共享之實例方案、技術及硬體
圖2繪示其中一記憶體106由一處理組件116及一多組件快取控制器114使用多個記憶體分區108-1及108-2共享之一實例電路配置200。如所繪示,電路配置200亦包含一交換結構122、一多組件記憶體控制器118、邏輯電路系統202及多個組件110-1…110-N,其中「N」表示一正整數。處理組件116包含記憶體106及運算電路系統206。記憶體106可經分離成一第一記憶體分區108-1 (MP 108-1)及一第二記憶體分區108-2 (MP 108-2)。所描繪之其他實例記憶體包含一記憶體204、一記憶體208及一記憶體210。可根據本文中所描述之原理來共享記憶體204、208或210之任何一或多者。
一般而言,除所描繪之「N」個組件110-1…110-N之外,術語「組件」可包含處理組件116、邏輯電路系統202、多組件快取控制器114、多組件記憶體控制器118、一記憶體等等。因此,儘管圖2中未明確如此繪示,但多個組件110-1…110-N可包含至少一處理組件116、一或多個其他組件及其類似者。在一些實施方案中,一處理組件116包含一記憶體106及運算電路系統206。此處,處理組件116可屬於具有運算及相關聯儲存能力之一核心或離散資源。歸因於一或多個因數(包含此等因數之一組合),處理組件116可包含記憶體106及運算電路系統206。第一,在一些操作情境中,記憶體106及運算電路系統206可作為處理組件116之部分被一起通電或斷電,而另一處理組件保持通電,即使記憶體106及運算電路系統206處於單獨功率域中且亦可被單獨通電及斷電。
第二,記憶體106及運算電路系統206可安置於一IC晶片之一相同面積或區域中,IC晶片經指定用於或對應於處理組件116。第三,記憶體106可實體上更靠近給定處理組件116之運算電路系統206而非多組件快取控制器114或其他處理組件之運算電路系統。較小實體距離可允許較短交換結構路徑或具有較少緩衝器之交換結構路徑以實現較快記憶體存取。第四,基於記憶體106具有專用於實現由處理組件116之運算電路系統206存取之一埠或通道(例如,且埠或通道亦不容許由其他運算組件之其他運算電路系統存取),記憶體106可經包含為處理組件116之部分。因此,依此等實例方式之一或多者,處理組件116可包含記憶體106及運算電路系統206。
在實例實施方案中,運算電路系統206耦合至記憶體106。多組件快取控制器114亦耦合至記憶體106,該耦合可透過交換結構122。邏輯電路系統202耦合至多組件快取控制器114及記憶體106。在圖2中,使用以一點或實心圓端接於兩端上之一線描繪選定實例直接或間接電耦合。邏輯電路系統202可與處理組件116、多組件快取控制器114一起定位,或與任一者分開定位(如所展示)。進一步言之,邏輯電路系統202可跨兩個或更多個位置分佈,其包含部分在處理組件116處、部分在多組件快取控制器114處或部分在其他位置,諸如在另一控制器、交換結構122或另一組件處。
邏輯電路系統202可將記憶體106選擇性分離成多個記憶體分區108,諸如兩個記憶體分區108-1及108-2。如本文中所使用,術語「選擇性分離」一般係指變動分配給各記憶體分區108之記憶體106之量或比例之能力。換言之,分配給不同組件之記憶體分區108之相對容量可調整以適應不同組件之波動需求,而非使個別記憶體專用於各組件。在圖2及圖2-1中,使用以正方形端接於兩端上之雙線表示記憶體分配。第一記憶體分區108-1經分配給運算電路系統206且為運算電路系統206提供儲存。第二記憶體分區108-2經分配給多組件快取控制器114且為多個組件110-1…110-N或多組件快取控制器114之其他快取服務客戶端提供儲存。例如,多組件快取控制器114可使用第二記憶體分區108-2為多個組件110-1…110-N之至少一部分提供快取服務。因此,多個組件110-1…110-N可使用由多組件快取控制器114提供之快取服務將諸如溢出資料之資訊儲存於記憶體106之第二記憶體分區108-2中。
同時,處理組件116亦可將記憶體106之一部分用於儲存。例如,運算電路系統206可將資訊儲存於記憶體106之第一記憶體分區108-1中。運算電路系統206根據至少一處理方案來執行運算。實例處理方案包含通用碼處理、圖形處理(例如再現三維影像)、AI處理(例如加速AI演算法)、數位信號處理(例如信號調變或使一信號預失真)等等。關於AI處理,一實例係實施一神經網路模型。一神經網路加速器可使用第一記憶體分區108-1作為(例如)一高速暫存器來儲存中間節點值、權重、偏差、啟動值等等。
在圖2之實例配置中,在兩個或更多個組件之間共享之一記憶體係記憶體106。此處,記憶體106實體上接近且可相關聯於處理組件116 (包含處理組件116之運算電路系統206)。此接近減少信令傳輸時間且可減少緩衝或交換電路系統之量(其亦減慢信號傳輸)。因此,運算電路系統206可藉由使用實體上接近記憶體106來更快速操作。而且,記憶體106可經調適或調諧以促進運算電路系統206之特定處理方案之執行,諸如神經網路加速。依此等方式,處理組件116之效能實質上不會受與用於快取或其他目的之其他組件共享記憶體106影響。
儘管圖2中未明確指示,但多組件快取控制器114或處理組件116 (或兩者)係如多個組件110-1…110-N之其他組件之實例。多組件快取控制器114可快取包含多個組件110-1…110-N之任何者之另一組件之資料,不管一給定組件110自身是否包含記憶體204之區塊。在操作中,多組件快取控制器114接收來自組件110之快取資料之一或多個請求。為此,多組件快取控制器114將指示資料儲存於記憶體106之第二記憶體分區108-2中。
如圖2中所展示,實例電路配置200包含安置於其他位置處之其他記憶體(除記憶體106之外)。此等記憶體之各者(例如一記憶體區塊204、208或210)可共享於兩個或更多個組件之間。例如,記憶體204與多個組件110-1…110-N之一組件110相關聯。例如,記憶體204可由多個組件110-1…110-N之另一組件110、處理組件116或多組件快取控制器114共享,其包含由處理組件116及多組件快取控制器114兩者共享。記憶體208係一獨立組件且不與任何特定其他組件相關聯。儘管如此,記憶體208可共享於兩個或更多個其他組件之間。記憶體210與多組件快取控制器114相關聯且可由至少一其他組件共享,諸如由處理組件116或處理組件116及多個組件110-1…110-N之一特定組件110兩者共享。
儘管實例電路配置200經描繪為具有一個處理組件116,但一給定架構可包含多個處理組件。因此,處理組件116可實現(圖1-1之)一第一處理組件116-1,運算電路系統206可實現第一運算電路系統,且記憶體106可實現一第一記憶體。多個組件110-1…110-N可包含(圖1-1之)一第二處理組件116-2。第二處理組件116-2可包含第二運算電路系統(未明確展示)及耦合至第二運算電路系統之一第二記憶體(未明確展示)。使用第二處理組件116-2,邏輯電路系統202亦耦合至第二記憶體。進一步言之,邏輯電路系統202可將第二記憶體選擇性分離成額外記憶體分區。額外記憶體分區包含一第一額外記憶體分區及一第二額外記憶體分區。第一額外記憶體分區經分配給第二運算電路系統且為第二運算電路系統提供儲存。第二額外記憶體分區經分配給多組件快取控制器114且為多個組件之至少部分提供額外儲存。因此,多組件快取控制器114可使用由兩個或更多個處理組件共享之記憶體為多個組件提供快取服務。替代地,一第二多組件快取控制器可使用由第二處理組件共享之記憶體為多個組件提供快取服務。亦可實施其他架構。
邏輯電路系統202可產生及協調記憶體106分離成多個記憶體分區108-1及108-2。進一步言之,邏輯電路系統202可強制對各自記憶體分區之單獨存取。例如,可容許運算電路系統206存取第一記憶體分區108-1且拒絕其存取第二記憶體分區108-2。相反地,可容諸多組件快取控制器114存取第二記憶體分區108-2,但拒絕其存取第一記憶體分區108-1。記憶體共享之此安全態樣將在下文進一步描述。邏輯電路系統202亦可建立多個記憶體分區108-1及108-2之相對大小或容量。接下來參考圖2-1描述實例容量比例。
圖2-1大體上以200-1繪示使用不同大小之記憶體分區108靈活共享記憶體106之實例容量比例。在五個不同時間t=1至t=5描繪不同容量比例,如由一時間軸212所指示。在各時間「t」,運算電路系統206、多組件快取控制器114或運算電路系統206及多組件快取控制器114兩者被分配記憶體106之一記憶體分區108。運算電路系統206被分配以一垂直線圖案描繪之第一記憶體分區108-1。多組件快取控制器114被分配以一點圖案描繪之第二記憶體分區108-2。(例如圖2之)邏輯電路系統202可仲裁對記憶體106之存取。仲裁可牽涉為相關聯組件提供對一各自記憶體分區108之排他性存取。例如,邏輯電路系統202可仲裁對記憶體106之存取以提供由處理組件116之運算電路系統206對第一記憶體分區108-1之排他性存取。邏輯電路系統202可進一步提供由代表多個組件110-1…110-N之一或多個組件之多組件快取控制器114對第二記憶體分區108-2之排他性存取。
在實例實施方案中,在時間t=1,第二記憶體分區108-2佔據記憶體106之整個容量。例如,此可發生於運算電路系統206處於一睡眠狀態(例如,被電源閘控)或否則不操作時。因此,可釋放記憶體106之所有記憶體庫用於由多組件快取控制器114使用。在時間t=2,第一記憶體分區108-1佔據記憶體106之25%,且第二記憶體分區108-2佔據記憶體106之75%。下文將描述用於喚醒運算電路系統206及用於在兩個組件之間轉移記憶體106之一部分之存取權限之實例程序。在時間t=3,運算電路系統206執行更密集運算且請求額外儲存空間。因此,第一記憶體分區108-1佔據記憶體106之50%,且第二記憶體分區108-2亦佔據記憶體106之50%。此50-50劃分亦可指定為一預設或啟動記憶體分配方案。
在時間t=4,運算電路系統206已請求更多容量。自時間t=3至時間t=4,運算電路系統206被更多分配記憶體106之容量之25%,且多組件快取控制器114被減少分配該25%。接著,第一記憶體分區108-1對應於記憶體106之75%,且第二記憶體分區108-2減小至記憶體106之25%。因此,在時間t=4,多組件快取控制器114可利用記憶體106之1/4來提供快取服務。在時間t=5,運算電路系統206被指派記憶體106之全部100%容量,因此第一記憶體分區108-1可佔據記憶體106之所有記憶體庫。此可有益於密集用例,諸如使用一AI加速器之自動語音辨識(ASR)。在一些情況中,整個機器學習模型或其至少一層可消耗整個記憶體106。因此,在時間t=5,多組件快取控制器114無法使用記憶體106為其他組件提供快取服務。因此,多組件快取控制器114可在相對於多組件記憶體控制器118之一傳遞模式中操作以存取(例如圖1-1及圖2之)系統記憶體120。替代地,多組件快取控制器114能夠使用諸如圖2之記憶體204、208或210之另一記憶體來提供快取服務。
僅舉例而言,圖2-1中依一特定方式繪示五個可調整記憶體分配比例。明確言之,分配比例以第一記憶體分區108-1缺乏任何容量開始,但接著以一恆定步長單調增大。然而,在操作中,記憶體分配比例可依不同方式啟始或改變。例如,可首先為運算電路系統206分配記憶體106之所有容量,或可為運算電路系統206及多組件快取控制器114之各者分配記憶體106之50%。而且,第一記憶體分區108-1可自25%「跳躍」至100%,而不逐步通過其他百分比。進一步言之,第二記憶體分區108-2可在時間t=3之後增大至75%或100%,而非繼續減小(例如,因為第一記憶體分區108-1已開始減小)。不同分配比例之間的百分比步進亦可變動。例如,第一記憶體分區108-1可自25%跨過兩個百分比增大,自記憶體106之25%爬升至45%爬升至60%。
可為各可用記憶體分配分區指派一對應分區識別符(PID),諸如1至5,若存在五個可能分區比例。因此,所繪示之時間指示t=1至t=5可替代地表示1、2、3、4及5之分區ID。記憶體106可具有任何大小。然而,在一些實例中,記憶體106可保存16百萬位元組(16MB)之資料。在此等情況中,各步長可對應於4MB或總容量之25%。當PID=1時,運算電路系統206被分配0MB用於本端運算,且多組件快取控制器114被分配16MB用於快取服務。當PID=2時,運算電路系統206被分配4MB用於本端運算,且多組件快取控制器114被分配12MB用於快取服務。當PID=3時,運算電路系統206被分配8MB用於本端運算,且多組件快取控制器114亦被分配8MB用於快取服務。當PID=4時,運算電路系統206被分配12MB用於本端運算,且多組件快取控制器114被分配4MB用於快取服務。且當PID=5時,運算電路系統206被分配全部16MB用於本端運算,且多組件快取控制器114沒有被分配來自記憶體106之記憶體庫用於快取服務。在一些實施方案中,運算電路系統206或多組件快取控制器114可將一PID值提供至邏輯電路系統202以請求一特定記憶體分配劃分。
圖3繪示用於記憶體共享之一實例分割架構300,其中一處理組件116包含多個片區302。如所展示,記憶體106經分割成多個記憶體部分306-1…306-M,且運算電路系統206經分割成多個運算單元304-1…304-M,其中「M」表示一正整數。在實例實施方案中,架構經分割以促進並行處理及並行記憶體存取以增大頻寬。一運算任務可經分成各自任務部分且使用(例如)各自片區302並行執行。因此,處理組件116包含以下多個片區:一第一片區302-1、一第二片區302-2、一第三片區302-3及一第四片區302-M,其中M=4。儘管本文中描繪及描述四個片區,但一處理組件116可包含更多或更少片區,如由變數「M」所指示。處理組件116亦包含至少一控制單元312。控制單元312可自諸如一神經網路模型之執行之一處理操作產生任務部分。控制單元312亦可將任務部分指派給多個片區302-1…302-M且協調由多個片區302-1…302-M執行任務部分。
一般而言,記憶體106及運算電路系統206各跨多個片區302-1…302-M分佈。記憶體106包含一第一記憶體部分306-1、一第二記憶體部分306-2、一第三記憶體部分306-3及一第四記憶體部分306-M,其中M=4。因此,記憶體106具有跨多個記憶體部分306-1…306-M分佈之一儲存容量。運算電路系統206包含一第一運算單元304-1、一第二運算單元304-2、一第三運算單元304-3及一第四運算單元304-M。因此,運算電路系統206具有跨多個運算單元304-1…304-M分佈之一處理能力。
關於片區302,多個片區302-1...302-M之每一各自片區302包含多個運算單元304-1...304-M之一各自運算單元304。多個片區302-1…302-M之每一各自片區302亦包含多個記憶體部分306-1…306-M之一各自記憶體部分306。例如,第一片區302-1包含第一運算單元304-1及第一記憶體部分306-1,且第二片區302-2包含第二運算單元304-2及第二記憶體部分306-2。每一各自記憶體部分306耦合至一給定各自片區302之一各自運算單元304。例如,第一記憶體部分306-1耦合至第一運算單元304-1,且第二記憶體部分306-2耦合至第二運算單元304-2。
如所展示,多組件快取控制器114包含通道邏輯308之多個例項及至少一控制單元310。如所繪示,多組件快取控制器114包含通道邏輯之以下「L」個例項:第一通道邏輯308-1、第二通道邏輯308-2、第三通道邏輯308-3及第四通道邏輯308-L,其中L=4。在一些情況中,通道邏輯308之例項之一數量「L」相同於處理組件116之片區302之一數量「M」。換言之,通道邏輯308與片區302 (包含各片區302之各記憶體部分306)之間可存在一對一對應性。
多組件快取控制器114可包含標籤以使用記憶體106來實施快取記憶體功能。每一各自記憶體部分306之標籤資料可儲存於(例如)各自通道邏輯308處。下文將參考圖3-1描述具有標籤資料之通道邏輯308之一實例。控制單元310負責執行快取管理操作。快取管理操作之實例包含檢查快取命中及未中、實施一替換策略、將被驅逐之髒資料寫回至(例如圖1-1之)系統記憶體120、與其他組件(例如快取客戶端)通信、與(例如圖1-1及圖2之)一各自多組件記憶體控制器118通信等等。
在一些實施方案中,多組件快取控制器114經由至少一交換結構(如一交叉開關314)耦合至處理組件116。交叉開關314包含多個緩衝器,其包含所繪示之第一緩衝器B1、第二緩衝器B2、第三緩衝器B3及第四緩衝器BM,其中M=4。交叉開關314亦可包含多個開關以促進記憶體106與多組件快取控制器114之間的資料交換。在操作中,交叉開關314在一對一對應方案中使用一各自緩衝器B實現一各自通道邏輯308與一各自記憶體部分306之間的通信。
然而,交叉開關314可在除具有一對一對應性之方案之外的一般方案中實現通道邏輯308與記憶體106之間的通信。例如,記憶體106可包含「M」個記憶體部分306-1…306-M,且多組件快取控制器114可包含具有「L」個通道之通道邏輯308,其中「M」不等於「L」。在此等情況中,交叉開關314將通道邏輯308耦合至記憶體106。因此,交叉開關314在記憶體106之多個記憶體部分306-1…306-M與通道邏輯308-1…308-L之多個通道之間提供「MxL」切換。
邏輯電路系統202促進及實現運算電路系統206與多組件快取控制器114之間的記憶體106之共享之控制。此將參考圖3-1、圖3-2、圖4、圖4-1及圖4-2進一步描述。在實例操作中,邏輯電路系統202將記憶體106分離成多個記憶體分區108。(例如圖2及圖2-1之)一第一記憶體分區108-1可跨多個記憶體部分306-1…306-M分佈,且一第二記憶體分區108-2亦可跨多個記憶體部分306-1…306-M分佈。下文將參考圖3-2描述跨多個記憶體部分306-1…306-M之記憶體分區108之實例分佈且參考圖4-1描述跨一個記憶體部分306之記憶體分區108之實例分佈。
圖3-1繪示圖3之分割架構之一實例部分300-1,其包含一片區302及相關聯通道邏輯308。一般而言,處理組件116收容記憶體106,如圖3中所展示。在圖3-1中,片區302收容記憶體106之記憶體部分306。記憶體部分306可經實現為隨機存取記憶體(RAM)。RAM實例包含相對較快之靜態RAM (SRAM)及相對較小且較便宜之動態RAM (DRAM)。例如,在快取記憶體環境中,SRAM可用於實現較高記憶體存取速率。記憶體部分306暴露用於通道邏輯308之一埠318。因此,記憶體106可暴露存取RAM之多組件快取控制器114之通道邏輯308之各通道之一埠318。
歸因於記憶體劃分,記憶體部分306邏輯上經分離成支援運算單元304之一本端RAM 320及與通道邏輯308耦合以支援控制單元310之一客戶端之一快取RAM 322。多組件快取控制器114之通道邏輯308經由(圖3之)交叉開關314之緩衝器B使用埠318存取快取RAM 322用於讀取及寫入。控制單元310使用快取標籤316為其他組件提供系統級快取服務。快取標籤316可指示當前依快取RAM 322之一方式儲存為一快取線之資料之一位址之高位元。邏輯電路系統202可基於記憶體分區之一容量(例如快取RAM 322之一當前大小)分別被增加或減少來啟動或撤銷啟動多個快取標籤316之一部分。接下來,自圖3-2開始描述記憶體庫及對應快取方式。
圖3-2繪示用於記憶體共享之另一實例分割架構300-2,其中一處理組件116包含多個片區302-1…302-M。同時描繪分配給處理組件116之第一記憶體分區108-1及分配給多組件快取控制器114之第二記憶體分區108-2。各記憶體分區108經展示為跨多個片區302-1…302-M且因此跨多個記憶體部分306-1…306-M分佈(如圖3中所展示)。參考圖3-2,一些組件之特定值僅供例示。此處,記憶體106包含跨(例如圖3及圖3-1之)四個記憶體部分306分佈之16MB,每個具有4 MB。每一各自記憶體部分306包含一各自64個記憶體庫。若本端RAM 320未被分配任何記憶體庫,則(圖3-1之)快取RAM 322可依高達64種快取方式操作64個記憶體庫。
在實例實施方案中,處理組件116收容記憶體106,且處理組件116可將記憶體106用作統一記憶體(例如,用作用於神經網路環境之權重及啟動儲存之一高速暫存器)。各片區302暴露可由多組件快取控制器114之一單一通道用於存取記憶體106之(圖3-1之)一64位元組(64B)埠318。在一些情況中,儘管處理組件116收容記憶體106,但多組件快取控制器114擁有記憶體資源。因此,邏輯電路系統202可為多組件快取控制器114之部分。然而,在其他情況中,處理組件116可擁有記憶體資源。可共享記憶體106經組織使得由處理組件116請求之記憶體分區108映射至對應於由多組件快取控制器114實施之一快取之連續方式之記憶體庫之一集合。例如,若記憶體106之一總容量係16MB,則用於處理組件116之記憶體106之8MB分配映射至64種方式之32者。
在一些實施方案中,多組件快取控制器114之邏輯電路系統202建立一快取分區表,使得各記憶體分配請求映射至具有一組連續快取方式之一快取分區ID (PID)。處理組件116可使用一分區ID來針對多組件快取控制器114之邏輯電路系統202進行記憶體分區請求/釋放。可透過一軟體驅動器啟用/停用一給定分區ID之可用性。多組件快取控制器114之邏輯電路系統202以硬體執行一分區演算法以將請求方式指派給處理組件116之PID以用作記憶體庫。多組件快取控制器114亦在指示PID準備好維持資料安全性之前將資料清空至一主記憶體且使方式歸零。可透過一中斷、透過一狀態暫存器更新等等將就緒指示提供至處理組件116。
在處理組件116停止使用記憶體分區之後,若要保存任何資料,則處理組件116經由直接記憶體存取(DMA)將資料轉移至一主記憶體。在清除儲存位置以提高安全性之後,處理組件116亦藉由停用PID來釋放分區。邏輯電路系統202藉由控制記憶體106之記憶體庫選擇信號來充當共享記憶體存取之一看守,如下文將參考圖4至圖4-2描述。邏輯電路系統202可定位於一常開功率域中。例如,邏輯電路系統202可為一中央功率管理器(CPM)之部分或與一中央功率管理器(CPM)共同定位。邏輯電路系統202回應於處理組件116之記憶體分區(例如所繪示之第一記憶體分區108-1)之大小改變而重新運算記憶體庫選擇信號。此等記憶體庫選擇信號可遮蔽多組件快取控制器114及處理組件116對在一當前記憶體劃分下各自組件不存取之RAM記憶體庫之請求。
在一些實施方案中,多組件快取控制器114透過一可組態分區表(其在本文中指稱一RAM分區表(RPT))來支援一記憶體劃分方案。RPT可依一優先級順序組織。換言之,一「條目1」對應於最高優先級分區,且一「條目64」對應於一最低優先級分區,其中64係以硬體支援之分區數。可在分區演算法處理中為RPT提供第一優先級。任何未指派記憶體庫被視為快取方式且透過方式劃分演算法處理。
RPT可包含指示將一特定記憶體庫分配給處理組件116或多組件快取控制器114之一Ram方式向量(RWV)。各PID可對應於RWV之一不同值。在具有64種方式之16MB實例中,各位元可使用一16位元值共同建立四種方式之分配。然而,替代地,可使用一不同位元至方式粒度映射或分配。進一步言之,可使用不同於一RWV之一方案來分配記憶體庫/方式。
各記憶體分區可由一軟體驅動器啟用或停用。一般而言,若所請求之容量可用或可變得可用,則多組件快取控制器114之邏輯電路系統202肯定地提供一完全分配請求。否則,可完全或部分拒絕一分配請求。在一些情況中,多組件快取控制器114避免為一記憶體分區僅分配一記憶體庫或方式之一部分。相反地,分配給一給定組件之最小粒度係可共享記憶體之記憶體庫或方式以簡化記憶體共享架構及加速效能。對於上文所描述且不同記憶體分區分配之間具有25%步長之記憶體容量實例,一最小分配粒度可為64個記憶體庫/方式之16者。
在一實例操作中,多組件快取控制器114將指派給運算電路系統PID之記憶體庫視為處於一本端RAM模式中且將任何剩餘記憶體庫視為用作一快取RAM模式中之方式。當自快取RAM模式轉變至本端RAM模式時,多組件快取控制器114之硬體首先清除、無效及歸零(CIZ)方式。多組件快取控制器114亦實施一障壁讀取(BR)以確保緩衝寫入提交給RAM。相反地,當停用本端RAM分區時,多組件快取控制器114將記憶體庫自本端RAM模式轉變成快取RAM模式。在完成CIZ及BR操作之後,多組件快取控制器114可引發PID中斷准許本端RAM分區。
圖4繪示用於包含多個記憶體庫402及多個多工器404之一記憶體部分306之一實例架構。為清楚起見,用一元件符號明確識別僅一些記憶體庫及多工器。全部繪示多工器之一子集之每一各自多工器404耦合至一各自群組之記憶體庫402。各描繪群組之記憶體庫包含四個記憶體庫402;然而,一群組可包含不同數量之記憶體庫402。此處,多工器之子集包含16個多工器。全部繪示多工器之其他多工器耦合至多工器之子集。此等其他多工器展示於圖4之中心,數目為4,且耦合至一緩衝器406。
在實例實施方案中,架構包含64個記憶體庫402及20個多工器404。一第一記憶體庫402-1、一第二記憶體庫402-2、一第三記憶體庫402-3及一第四記憶體庫402-4分別耦合至多工器404之四個端子。16個多工器404之各者耦合至一各自群組之四個記憶體庫402。20個繪示多工器之四個剩餘多工器404耦合於該等16個多工器404與緩衝器406之間。各記憶體庫402及資料路徑可為「x」個位元組(xB)寬。因此,耦合至四個資料路徑之緩衝器406可為4xB寬。繼續上文所提供之數值實例(其中(例如圖3之)各片區302具有一4MB記憶體部分306),64KB之一記憶體庫大小之各記憶體庫402係16B寬及4KB深。因此,緩衝器406係64B寬(4x16B)。然而,記憶體部分306、記憶體庫寬度、記憶體庫深度及資料路徑或緩衝器406之寬度全部可大於或小於此等實例值。
為清楚起見,用表示自一或多個記憶體庫402擷取資料之一讀取操作之單向箭頭描繪資料路徑。然而,所描繪之架構可經雙向實施使得資料被寫入至記憶體庫402中。因此,各多工器404可為雙向的或可用至少兩個單向多工器實現。類似地,緩衝器406可為雙向的或可用至少兩個單向緩衝器實現。
在實例操作中,各記憶體部分306可經選擇性分離成兩個或更多個記憶體分區108,使得一給定記憶體分區108跨多個記憶體部分306分佈或交錯以增大頻寬(例如圖3-2中所展示)。在一些情況中,記憶體劃分之最小粒度係記憶體庫402。藉由避免以一較小粒度位準(諸如一記憶體庫之一行或16B寬)劃分來簡化硬體,且效能因更快記憶體存取而提高。進一步言之,為了安全,邏輯電路系統202 (圖4中未展示)可強制記憶體劃分。例如,邏輯電路系統202可基於分配記憶體分區來控制經由多工器404存取記憶體庫402。接下來參考圖4-1描述用於一記憶體部分306之實例記憶體分區,且下文將參考圖4-2描述使用多工器404之實例控制方案。
圖4-1繪示具有一實例記憶體劃分方案420之一覆蓋之一記憶體部分306之圖4之實例架構。因此,圖4-1之架構至少類似於圖4之架構。參考圖2-1中所描繪之記憶體共享實例來描述實例記憶體劃分方案420,其跨越五個不同時間且涉及25%步長。箭頭212表示隨點t=1至5處之五個不同事件逝去之時間。如由右下角之圖例所指示,各粗虛線表示一實例分配線422。分配線422指示(圖4之)記憶體部分306之哪個部分(例如哪些一或多個記憶體庫)分配給處理組件116之運算電路系統206及哪些部分分配給多組件快取控制器114。如圖4-1中所描繪,將一給定分配線422「上方」之記憶體庫分配給運算電路系統206,且將給定分配線422「下方」之記憶體庫分配給多組件快取控制器114。
在此實例中,且如圖2-1中所展示,運算電路系統206被分配一第一記憶體分區108-1,且多組件快取控制器114被分配一第二記憶體分區108-2。在時間t=1,第一記憶體分區108-1係空的,且第二記憶體分區108-2包含所有記憶體庫。因此,時間t=1處之一第一分配線422-1經描繪為在64個記憶體庫上方。在時間t=2,第一記憶體分區108-1具有記憶體庫之25%,且第二記憶體分區108-2包含記憶體庫之其他75%。因此,時間t=2處之一第二分配線422-2經描繪為在16個記憶體庫之一「頂列」下方且在其他48個記憶體庫上方。在時間t=3,第一記憶體分區108-1及第二記憶體分區108-2兩者包含記憶體庫之50%。因此,時間t=3處之一第三分配線422-3經描繪為在上32個記憶體庫與下32個記憶體庫之間。
在時間t=4,第一記憶體分區108-1具有記憶體庫之75%,且第二記憶體分區108-2包含記憶體庫之其他25%。因此,時間t=4處之一第四分配線422-4經描繪為在每16個記憶體庫之三列或48個記憶體庫下方且在剩餘16個記憶體庫上方。換言之,運算電路系統206可存取第一記憶體分區108-1之48個記憶體庫,且多組件快取控制器114可將第二記憶體分區108-2之16個記憶體庫用於快取儲存。在時間t=5,第一記憶體分區108-1包含繪示記憶體部分306之所有記憶體庫,且第二記憶體分區108-2係空的。因此,時間t=5處之一第五分配線422-5經描繪為在64個記憶體庫下方。
在此實例中,記憶體庫以16記憶體庫塊之一粒度分組成若干記憶體分區。然而,可使用其他粒度,諸如1記憶體庫塊、2記憶體庫塊、7記憶體庫塊、8記憶體庫塊、32記憶體庫塊等等。可在硬體級使用各多工器404之控制輸入產生及強制劃分。換言之,控制輸入可基於當前記憶體分區分配及一記憶體請求之來源之一組合來判定當前可存取哪個記憶體庫用於讀取或寫入。此將接下來參考圖4-2描述。
圖4-2繪示用於控制圖4之架構之多個記憶體庫402及多個多工器404將記憶體部分306選擇性分離成(例如圖3、圖3-2及圖4-1之)多個記憶體分區108之一實例方法440。多個記憶體庫402-1…402-4耦合至一多工器404之端子。此處,多工器404經實施為一4x1雙向多工器。然而,多工器404可經不同實施,諸如使用多個單向多工器(例如用於讀取及寫入資料之單獨單向多工器)、用於耦合至八個記憶體庫之一雙向8x1多工器、兩個2x1多工器、其等之組合等等。各多工器404包含至少一控制輸入450。圖4-2亦包含一或多個暫存器442、一或多個記憶體庫選擇信號444、至少一記憶體分配設定446、至少一記憶體存取請求448及邏輯電路系統202。
在實例實施方案中,如關於第四記憶體庫402-4所指示,各記憶體庫402可包含多個暫存器442-1及442-2。各暫存器442對應於記憶體106之一客戶端。例如,一第一暫存器442-1可對應於一處理組件116,且一第二暫存器442-2可對應於一多組件快取控制器114。使一給定客戶端存取各記憶體庫402可透過對應於給定客戶端之一暫存器442提供。因此,為實現每客戶端之管線存取,各客戶端可寫入至一單獨暫存器442中。
邏輯電路系統202控制對多個記憶體庫402之存取以強制一當前記憶體劃分。因此,邏輯電路系統202可仲裁對(例如圖3-2之)記憶體106之多個記憶體庫402之存取。此使處理組件116之運算電路系統206 (圖2之兩者)或多組件快取控制器114 (包含兩者)能夠鎖定記憶體106之一各自部分用於排他性用途。記憶體鎖定可由邏輯電路系統202使用(例如)至少一多工器404或一或多個記憶體庫選擇信號444強制。為此,邏輯電路系統202產生一或多個記憶體庫選擇信號444以能夠存取耦合至多工器404之至少一記憶體庫402。邏輯電路系統202可回應於由運算電路系統206提供之一分配指令而產生一或多個記憶體庫選擇信號444,分配指令建立至少一記憶體分配設定446。邏輯電路系統202經由一或多個控制輸入450將一或多個記憶體庫選擇信號444提供至多工器404。例如,若一客戶端被指派包含第三記憶體庫402-3及第四記憶體庫402-4但排除第一記憶體庫402-1及第二記憶體庫402-2之一記憶體分區,則邏輯電路系統202驅動控制輸入450以容許與第三記憶體庫402-3及第四記憶體庫402-4通信且阻止與第一記憶體庫402-1及第二記憶體庫402-2通信。
為產生記憶體庫選擇信號444,邏輯電路系統202分析記憶體分配設定446及記憶體存取請求448。記憶體存取請求448可用於一讀取/擷取資料操作或一寫入/儲存資料操作。記憶體分配設定446指示哪個客戶端被分配記憶體之哪一或多個記憶體分區。可使用(例如)一RAM分區表(RPT)、一Ram方式向量(RWV)、一分區ID (PID)、其等之一些組合等等來實現記憶體分配設定446。另外或替代地,記憶體分配設定446可使用至少一暫存器、使用一或多個位址範圍、使用一雜湊函數及其類似者來實施。記憶體庫選擇信號444及對應控制輸入450之一數量可取決於耦合至多工器404之端子之記憶體庫之一數目、一分區粒度、其等之組合等等。
在實例操作中,邏輯電路系統202比較記憶體存取請求448與記憶體分配設定446。記憶體存取請求448可包含或相關聯於一記憶體位址或一請求客戶端(包含兩者)。若請求客戶端或記憶體地址與記憶體分配設定446一致(例如匹配),則邏輯電路系統202產生記憶體庫選擇信號444以能夠經由多工器404存取目標記憶體庫402。若未判定一匹配,則邏輯電路系統202阻止存取以防止一客戶端存取另一客戶端之資料。例如,邏輯電路系統202可檢測一記憶體位址之最高有效位元(MSB)(例如2個位元)以在各具有總共64個記憶體庫之16者之4個「超級記憶體庫」之間作出仲裁。
因此,可使用至少一多工器404之至少一控制輸入450來控制由運算電路系統206存取(例如圖3-2之)第一記憶體分區108-1及由多組件快取控制器114存取第二記憶體分區108-2。此方法減少用於實現記憶體共享之硬體量。依此等方式,邏輯電路系統202可回應於來自運算電路系統206之記憶體存取請求448及來自多組件快取控制器114之其他記憶體存取請求448而使用多工器404仲裁對多個記憶體庫402-1…402-4之存取。
圖5係繪示在一處理組件116與一多組件快取控制器114之間共享之一記憶體106之一實例功率域架構500的一方塊圖。如所繪示,功率域架構500包含以下至少四個功率域502:一第一功率域502-1、一第二功率域502-2、一第三功率域502-3及一常開功率域502-4。然而,功率域架構500可包含更多或更少功率域502。例如,記憶體106之一位元陣列可為與其位址及資料多工邏輯之功率域分離之一功率域之部分以使前者能夠處於一保持模式中,而後者經歷一功率崩潰。
在一些實施方案中,各功率域502可單獨或個別處於不同功率狀態中,諸如崩潰、睡眠、接通/喚醒、保持、待機等等。第一功率域502-1包含處理組件116之運算電路系統206。第二功率域502-2包含處理組件116之記憶體106。使用此配置,第一功率域502-1可崩潰,而第二功率域502-2保持通電。依此方式,運算電路系統206可在未被使用時被提供一降低(包含零)功率位準,但記憶體106仍可由多組件快取控制器114用於為一或多個其他組件提供快取服務。
在其他實施方案中,第三功率域502-3包含多組件快取控制器114。常開功率域502-4包含邏輯電路系統202之至少一部分。第三功率域502-3可崩潰,而第二功率域502-2保持通電。依此方式,多組件快取控制器114可停止通電,而運算電路系統206仍可使用通電記憶體106用於儲存(諸如一高速暫存記憶體)。常開功率域502-4亦可包含一功率管理控制器504 (PMC 504),其可控制各種功率域502之功率狀態。此處,常開功率域502-4係常開的,而第一功率域502-1、第二功率域502-2或第三功率域502-3之任何者係接通的或可被快速喚醒。然而,在其他情境中,諸如,若一晶片之一較大部分被斷電(例如使晶片進入一低功率待機狀態),則可切斷常開功率域502-4。
圖6係繪示涉及一處理組件116、一多組件快取控制器114及邏輯電路系統202之一實例程序600的一序列圖。程序600調整一記憶體分區容量作為記憶體共享之部分。程序600亦可涉及(例如圖2之)多個組件110-1…110-N之一或多者。處理組件116可包含或收容(例如亦圖2之)運算電路系統206及至少一記憶體106。程序600包含多個操作及訊息。在實例程序600開始時,處理組件116之運算電路系統206處於睡眠或另一低功率狀態中,且多組件快取控制器114被分配記憶體106之100%。
在操作602,命令給處理組件116之運算電路系統206通電以執行諸如自動語音辨識(ASR)之一些任務。在此情況中,運算電路系統206判定記憶體106之一半將用於執行ASR。因此,處理組件116將含有記憶體106之記憶體庫402之50%之一記憶體分區108之一請求604發送至邏輯電路系統202。回應於請求604,邏輯電路系統202將一啟用指令606發送至多組件快取控制器114以指示記憶體106之「所有者」將一半記憶體容量分配給處理組件116。
在操作608,多組件快取控制器114執行一分區分配演算法以調整至少處理組件116與多組件快取控制器114之間的記憶體劃分。在轉移請求記憶體庫之分配之前,多組件快取控制器114在操作610清除RAM之50%以準備記憶體庫。為清除記憶體庫,多組件快取控制器114根據一快取管理協定將資料自記憶體106清空至一主記憶體,如系統記憶體120。在清空快取資料之後,多組件快取控制器114亦可將被再分配之記憶體庫程式化為一預定值以使其準備放棄而供處理組件116使用。例如,多組件快取控制器114可在各記憶體位置中儲存零以清除記憶體且保護其內所快取之資料之隱私及對應快取客戶端之安全性。
在操作610清除RAM之50%之後,多組件快取控制器114將所請求之記憶體分區已準備好之一指示符612發送至邏輯電路系統202。在操作614,邏輯電路系統202建立一或多個記憶體庫選擇信號以重組態對記憶體106之存取權限。例如,邏輯電路系統202可建立使處理組件116能夠存取現分配給其之記憶體106之50%之至少一記憶體分配設定446。邏輯電路系統202將所請求之記憶體分區已準備好供使用之一指示符616發送至處理組件116。
在操作618,在運算電路系統206喚醒之後,運算電路系統206使用形成分配給處理組件116之記憶體分區之記憶體106之50%。所分配之記憶體分區可用於(例如)支援ASR處理。在此實例中,在逝去一些時間量之後,處理組件116判定其可用記憶體106之25%執行進行中之任務。因此,在操作620,處理組件116清除RAM之25%。為此,處理組件116可將要保存之任何資料轉移至主記憶體且可將被放棄之RAM之25%程式化為一預定值。處理組件116將指示對應於RAM之25%之記憶體庫402釋放之一訊息622發送至邏輯電路系統202。回應於訊息622,邏輯電路系統202將停止記憶體106之指示25%分配給處理組件116之一訊息624發送至多組件快取控制器114。
基於訊息622,釋放記憶體106之25%之記憶體庫用於進一步分配,例如還給多組件快取控制器114用於提供快取服務。替代地,可將RAM之25%分配給(例如圖2之)另一組件110。程序600亦可依替代方式實施。可傳輸訊息,且可依不同順序(包含重疊順序)執行操作。例如,邏輯電路系統202可偵測到處理組件116在被喚醒且引起在處理組件116之喚醒程序期間引發一初始或預設記憶體分配以重疊操作及加速處理。亦可傳輸或執行其他(例如更多、更少或不同)訊息及操作。例如,多組件快取控制器114可與一客戶端組件通信且指示客戶端組件處置RAM清除(在操作610)以能夠藉由清空來自記憶體106之其自身快取資料來釋放分區。
在大體上描述用於記憶體共享之方案、技術及硬體之後,此討論現轉至實例方法。
用於 記憶體共享之實例方法
下文將參考圖7之流程圖描述實例方法。此等方法之態樣可以(例如)硬體(例如結合一記憶體之固定邏輯電路系統或一處理器)、韌體、軟體或其等之一些組合實施。可使用圖1至圖6及圖8中所展示之設備或組件之一或多者實現程序,該等組件可經進一步劃分、組合等等。此等圖之裝置及組件一般表示硬體(諸如電子裝置、PCB、封裝模組、IC晶片或電路)、韌體、軟體或其等之一組合。因此,此等圖繪示能夠實施所描述之方法之諸多可行系統或設備之若干者。
對於此等流程圖,展示及/或描述操作之順序不意欲被解釋為一限制。可依任何順序組合所描述之方法操作之任何數目或組合以實施一給定方法或一替代方法。亦可省略操作或將操作添加至所描述之方法。進一步言之,可依完全或部分重疊方式實施所描述之操作。
圖7用一流程圖700繪示一設備實施記憶體共享之實例方法。流程圖700包含五個區塊702至710。在區塊702,由一處理組件之運算電路系統執行一操作。例如,一處理組件116之運算電路系統206可執行一操作。取決於處理組件116之能力,操作可為任何類型之處理操作。例如,運算電路系統206可實施一ML模型以處理來自一視訊之一影像。
在區塊704,由運算電路系統存取處理組件之一記憶體之一第一記憶體分區以支援操作之執行。例如,運算電路系統206可存取處理組件116之一記憶體106之一第一記憶體分區108-1以支援操作之執行(例如,藉由自第一記憶體分區108-1讀取及/或寫入至第一記憶體分區108-1)。在一些情況中,運算電路系統206可藉由在運算ML模型之一圖形時將權重及偏差儲存於對應於第一記憶體分區108-1之記憶體庫402中來實施至少部分位於第一記憶體分區108-1中之ML模型。可跨第一記憶體分區108-1分佈於其上之多個記憶體部分306寫入儲存資料。
在區塊706,由一多組件快取控制器接收來自一組件之快取資料之一請求。例如,一多組件快取控制器114可接收來自一組件110之快取資料之一請求。例如,一CPU之一處理核心可將其一專用快取溢出之資料發送至多組件快取控制器114以依一系統級快取(SLC)快取。
在區塊708,由多組件快取控制器基於請求將資料儲存於記憶體之一第二記憶體分區中。例如,多組件快取控制器114可基於來自組件之請求將資料儲存於記憶體106之一第二記憶體分區108-2中。因此,多組件快取控制器114可將可快取資料載入至對應於記憶體106之第二記憶體分區108-2之一方式中。多組件快取控制器114亦可使用快取資料之適當位址位元來程式化相關聯快取標籤。
在區塊710,調整第一記憶體分區之一第一容量及第二記憶體分區之一第二容量。例如,邏輯電路系統202可調整第一記憶體分區108-1之一第一容量及第二記憶體分區108-2之一第二容量。為此,邏輯電路系統202可促進多組件快取控制器114與處理組件116之間的協作,使得當一組件放棄記憶體106之一或多個記憶體庫且因此具有一較低容量記憶體分區時,另一組件可獲得一或多個記憶體庫以因此具有一較高容量記憶體分區。
實例電子裝置
圖8繪示根據一或多個描述態樣之可實施記憶體共享之一實例電子裝置800之各種組件。電子裝置800可經實施為一固定、行動、獨立或嵌入式裝置之任何一者或組合,呈一消費型、電腦、可攜式、使用者、伺服器、通信、電話、導航、遊戲、音訊、攝影機、訊息傳遞、媒體播放及/或其他類型之電子裝置800 (諸如圖1中描繪為設備102之智慧型電話)之任何形式。繪示組件之一或多者可經實現為離散組件或電子裝置800之至少一積體電路上之整合組件。
電子裝置800可包含能夠有線及/或無線傳送裝置資料804 (諸如接收資料、傳輸資料或上文所識別之其他資訊)之一或多個通信收發器802。實例通信收發器802包含近場通信(NFC)收發器、符合各種IEEE 802.15(Bluetooth
TM)標準之無線個人區域網路(PAN)(WPAN)無線電、符合各種IEEE 802.11 (Wi-Fi
TM)標準之任何者之無線區域網路(LAN)(WLAN)無線電、用於蜂巢式電話之無線廣域網路(WAN)(WWAN)無線電(例如符合3GPP之WWAN無線電)、符合各種IEEE 802.16 (WiMAX
TM)標準之無線都會區域網路(MAN)(WMAN)無線電、符合一紅外線資料協會(IrDA)協定之紅外線(IR)收發器及有線區域網路(LAN)(WLAN)乙太網路收發器。
電子裝置800亦可包含一或多個資料輸入埠806,可經由其接收任何類型之資料、媒體內容及/或其他輸入,諸如使用者可選輸入、訊息、應用程式、音樂、電視內容、記錄視訊內容及自任何內容及/或資料源(包含一感測器,如一麥克風或攝影機)接收之任何其他類型之音訊、視訊及/或影像資料。資料輸入埠806可包含USB埠、同軸電纜埠、用於光纖互連或佈纜之光纖埠及用於快閃記憶體、DVD、CD及其類似者之其他串列或並行連接器(包含內部連接器)。此等資料輸入埠806可用於將電子裝置耦合至組件、周邊裝置或附件,諸如鍵盤、麥克風、攝影機或其他感測器。
此實例之電子裝置800包含處理(例如執行)電腦可執行指令以控制裝置之操作之至少一處理器808 (例如應用處理器、微處理器、數位信號處理器(DSP)、控制器及其類似者之任何一或多者),其可包含一經組合處理器及記憶體系統(例如,經實施為一SoC之部分)。處理器808可經實施為一應用處理器、嵌入式控制器、微控制器、安全處理器、人工智慧(AI)加速器及其類似者。一般而言,一處理器或處理系統可至少部分以硬體實施,硬體可包含一積體電路或單晶片系統之組件、一數位信號處理器(DSP)、一專用積體電路(ASIC)、一場可程式化閘陣列(FPGA)、一複雜可程式化邏輯裝置(CPLD)及矽及/或其他材料中之其他實施方案。
替代地或另外,電子裝置800可用電子電路系統之任何一者或組合實施,電子電路系統可包含結合處理及控制電路實施之軟體、硬體、韌體或固定邏輯電路系統,其大體上以810指示(作為電子電路系統810)。此電子電路系統810可(諸如)透過儲存於電腦可讀媒體上之處理/電腦可執行指令、透過邏輯電路系統及/或硬體(例如,諸如一FPGA)等等來實施可執行或基於硬體之模組(圖8中未展示)。
儘管未展示,但電子裝置800可包含一系統匯流排、互連件、交叉開關、資料轉移系統或耦合裝置內之各種組件之其他交換結構。一系統匯流排或互連件可包含不同匯流排結構之任何一者或組合,諸如一記憶體匯流排或記憶體控制器、一周邊匯流排、一通用串列匯流排及/或利用各種匯流排架構之任何者之一處理器或本端匯流排。
電子裝置800亦包含能夠儲存資料之一或多個記憶體裝置812,其實例包含隨機存取記憶體(RAM)、非揮發性記憶體(例如唯讀記憶體(ROM)、快閃記憶體、EPROM及EEPROM)及一磁碟儲存裝置。因此,記憶體裝置812可跨一系統之不同邏輯儲存級及在不同實體組件處分佈。記憶體裝置812提供資料儲存機構來儲存裝置資料804、其他類型之程式碼及/或資料及各種裝置應用程式820 (例如軟體應用程式或程式)。例如,一作業系統814可作為軟體指令保存於記憶體裝置812內且由處理器808執行。
在一些實施方案中,電子裝置800亦包含處理音訊資料及/或將音訊及視訊資料傳遞至一音訊系統818及/或一顯示系統822 (例如一視訊緩衝器或一智慧型電話或攝影機之一螢幕)之一音訊及/或視訊處理系統816。音訊系統818及/或顯示系統822可包含處理、顯示及/或依其他方式再現音訊、視訊、顯示及/或影像資料之任何裝置。顯示資料及音訊信號可經由一RF (射頻)鏈路、S視訊鏈路、HDMI (高清多媒體介面)、複合視訊鏈路、分量視訊鏈路、DVI (數位視訊介面)、類比音訊連接、視訊匯流排或其他類似通信鏈路(諸如一媒體資料埠824)傳送至一音訊組件及/或一顯示組件。在一些實施方案中,音訊系統818及/或顯示系統822係電子裝置800之外部或單獨組件。替代地,顯示系統822可為(例如)實例電子裝置800之一整合組件,諸如一整合觸控介面之部分。
圖8之電子裝置800係圖1之設備102之一實例實施方案。因此,電子裝置800可包含邏輯電路系統202、一多組件快取控制器114、一處理組件116、運算電路系統206或一記憶體106。進一步言之,繪示組件之一或多者可整合於一相同IC晶片(如一SoC)或至少一單一PCB上。如所展示,處理器808可為(例如圖2之)一組件110或一處理組件116之一實例。邏輯電路系統202或多組件快取控制器114可經實施為電子電路系統810之部分。記憶體106及圖2中所描繪之其他記憶體可為記憶體裝置812之部分。因此,本文中所描述之記憶體共享之原理可由或結合圖8之電子裝置800實施。
額外實例
在下文中,描述一些實例。
實例1:一種積體電路,其包括:多個組件;一處理組件,其包含運算電路系統及耦合至該運算電路系統之一記憶體;一多組件快取控制器,其耦合至該記憶體;及邏輯電路系統,其耦合至該多組件快取控制器及該記憶體,該邏輯電路系統經組態以將該記憶體選擇性分離成多個記憶體分區,該多個記憶體分區包含:一第一記憶體分區,其經分配給該運算電路系統且經組態以為該運算電路系統提供儲存;及一第二記憶體分區,其經分配給該多組件快取控制器且經組態以為該多個組件提供儲存。
實例2:如實例1之積體電路,其中該邏輯電路系統經組態以回應於來自該處理組件之一或多個請求而將該記憶體選擇性分離成該多個記憶體分區,使得:在一第一時間,該記憶體之一半經分離成該第一記憶體分區且該記憶體之一半經分離成該第二記憶體分區;在一第二時間,該記憶體之多於一半經分離成該第一記憶體分區且該記憶體之少於一半經分離成該第二記憶體分區;及在一第三時間,該記憶體之少於一半經分離成該第一記憶體分區且該記憶體之多於一半經分離成該第二記憶體分區。
實例3:如實例1或實例2之積體電路,其中:該記憶體包括經分成多個記憶體庫之靜態隨機存取記憶體(SRAM);該多組件快取控制器包含與該多個記憶體庫之各記憶體庫相關聯之多個快取標籤;作為該第二記憶體分區之部分之該多個記憶體庫之各記憶體庫對應於與該多組件快取控制器相關聯之一快取之多種方式之一方式;且該邏輯電路系統經組態以分別基於該第二記憶體分區之一容量增加或減少來啟動或撤銷啟動該多個快取標籤之一部分。
實例4:如前述實例中任一者之積體電路,其中:該處理組件包括一第一處理組件,該運算電路系統包括第一運算電路系統,且該記憶體包括一第一記憶體;該多個組件包括一第二處理組件,其包含第二運算電路系統及耦合至該第二運算電路系統之一第二記憶體;且該邏輯電路系統耦合至該第二記憶體,該邏輯電路系統經組態以將該第二記憶體選擇性分離成額外記憶體分區,該等額外記憶體分區包含:一第一額外記憶體分區,其經分配給該第二運算電路系統且經組態以為該第二運算電路系統提供儲存;及一第二額外記憶體分區,其經分配給該多組件快取控制器且經組態以為至少一些該多個組件提供額外儲存。
實例5:如實例4之積體電路,其中該多組件快取控制器經組態以使用該第一記憶體之該第二記憶體分區及該第二記憶體之該第二額外記憶體分區來為至少一些該多個組件提供快取服務。
實例6:如前述實例中任一者之積體電路,其中:該多個組件包括一記憶體區塊;該多組件快取控制器耦合至該記憶體區塊;且該多組件快取控制器經組態以使用該記憶體之該第二記憶體分區及該記憶體區塊之至少一部分來為至少一些該多個組件提供快取服務。
實例7:如前述實例中任一者之積體電路,其進一步包括:一第一功率域,其包含該處理組件之該運算電路系統;及一第二功率域,其包含該處理組件之該記憶體,其中該第一功率域可崩潰,而該第二功率域保持通電。
實例8:如實例7之積體電路,其進一步包括:一常開功率域,其包含一功率管理控制器及該邏輯電路系統之至少一部分;及一第三功率域,其包含該多組件快取控制器,其中該第三功率域可崩潰,而該第二功率域保持通電。
實例9:如前述實例中任一者之積體電路,其中該處理組件經組態以在放棄該第一記憶體分區用於由該多組件快取控制器使用之前將該第一記憶體分區程式化為一預定值。
實例10:如實例9之積體電路,其中該多組件快取控制器經組態以在放棄該第二記憶體分區用於由該處理組件使用之前將該第二記憶體分區程式化為另一預定值。
實例11:如前述實例中任一者之積體電路,其中:該處理組件之該運算電路系統包含多個運算單元;且該處理組件之該記憶體包含多個記憶體部分,該多個記憶體部分之每一各自記憶體部分耦合至該多個運算單元之一各自運算單元。
實例12:如實例11之積體電路,其中:該第一記憶體分區跨該多個記憶體部分分佈;且該第二記憶體分區跨該多個記憶體部分分佈。
實例13:如實例11或實例12之積體電路,其中:該多個記憶體部分包括「M」個記憶體部分;該多組件快取控制器包含具有包括「L」個通道之多個通道之通道邏輯;且該積體電路進一步包括將該通道邏輯耦合至該記憶體之一交叉開關,該交叉開關經組態以在該記憶體之該多個記憶體部分與該通道邏輯之該多個通道之間提供「MxL」切換。
實例14:如前述實例中任一者之積體電路,其中該記憶體包含:多個記憶體庫,其等經組態以儲存資料;及至少一多工器,其耦合至該多個記憶體庫之至少一部分,該至少一多工器包含至少一控制輸入,其中可使用該至少一多工器之該至少一控制輸入來控制由該運算電路系統存取該第一記憶體分區及由該多組件快取控制器存取該第二記憶體分區。
實例15:如前述實例中任一者之積體電路,其中:該記憶體包含:多個記憶體庫,其等基於將該第一記憶體分區分配給該運算電路系統且將該第二記憶體分區分配給該多組件快取控制器來分佈於該第一記憶體分區與該第二記憶體分區之間;及多個多工器,其等耦合該多個記憶體庫,該多個多工器經組態以控制對該多個記憶體庫之存取;且該邏輯電路系統經組態以回應於來自該運算電路系統之記憶體存取請求及來自該多組件快取控制器之其他記憶體存取請求而使用該多個多工器仲裁對該多個記憶體庫之存取。
實例16:一種用於共享一記憶體之方法,該方法包括:由一處理組件之運算電路系統執行一操作;由該運算電路系統存取該處理組件之一記憶體之一第一記憶體分區以支援該操作之執行;由一多組件快取控制器接收來自一組件之快取資料之一請求;由該多組件快取控制器基於該請求將該資料儲存於該記憶體之一第二記憶體分區中;及調整該第一記憶體分區之一第一容量及該第二記憶體分區之一第二容量。
實例17:如實例16之方法,其進一步包括:判定該運算電路系統通電以執行該操作;及回應於該判定而喚醒該運算電路系統用於該操作;在該喚醒之至少一部分期間,自對應於該第一記憶體分區之一或多個記憶體庫清空快取資料;及在清空該快取資料之後,由該多組件快取控制器放棄對應於該第一記憶體分區之該一或多個記憶體庫。
實例18:如實例17之方法,其進一步包括:在該放棄之前,由該多組件快取控制器將對應於該第一記憶體分區之該一或多個記憶體庫程式化為具有一預定值。
實例19:如實例16至18中任一者之方法,其中該調整包括:藉由對該處理組件減少分配該記憶體之多個記憶體庫來減少該第一記憶體分區之該第一容量;藉由將該記憶體之該多個記憶體庫分配給該多組件快取控制器來增加該第二記憶體分區之該第二容量;及啟動用於該記憶體之該多個記憶體庫之多個快取標籤,使得該多個記憶體庫之每一各自記憶體庫包括一快取使用該第二記憶體分區來儲存可快取資料之多種方式之一各自方式。
實例20:如實例16至19中任一者之方法,其進一步包括:回應於由該運算電路系統或該多組件快取控制器提供之一記憶體存取請求而產生一或多個記憶體庫選擇信號;及將該一或多個記憶體庫選擇信號耦合至至少一多工器以能夠存取該記憶體之多個記憶體庫之一或多個記憶體庫。
實例21:一種電腦程式產品,其包括指令,該等指令在由一或多個處理器執行時引起該一或多個處理器執行如實例16至20中任一者之方法。
實例22:如實例1至15中任一者之積體電路,其中該邏輯電路系統經組態以仲裁對該記憶體之存取以:提供由該處理組件之該運算電路系統對該第一記憶體分區之排他性存取;及提供由該多組件快取控制器對該第二記憶體分區之排他性存取。
實例23:一種行動電子裝置,其包括如實例1至15或22中任一者之積體電路。
除非內文另有指示,否則本文中所使用之用語「或」可被視為使用一「包含性或」或容許包含或應用由用語「或」連接之一或多個項之一術語(例如,一片語「A或B」可被解譯為僅容許「A」、僅容許「B」或容許「A」及「B」兩者)。而且,如本文中所使用,涉及一列項之「至少一者」之一片語係指該等項之任何組合,其包含單一成員。例如,「a、b或c之至少一者」可涵蓋a、b、c、a-b、a-c、b-c及a-b-c及與多個相同元素之任何組合(例如a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c及c-c-c或a、b及c之任何其他排序)。進一步言之,本文中所討論之附圖及術語中所表示之項可指示一或多個項或術語,因此,可在本發明中可互換地指代項及術語之單數或複數形式。儘管已以專用於某些特徵及/或方法之語言描述用於記憶體共享之實施方案,但隨附申請專利範圍之標的不必受限於所描述之特定特徵或方法。確切而言,揭示特定特徵及方法作為用於記憶體共享之實例實施方案。
100:設備
102:設備
102-1:平板裝置
102-2:智慧型電視
102-3:桌上型電腦
102-4:伺服器電腦
102-5:智慧型手錶
102-6:智慧型電話
102-7:智慧型眼鏡
104:積體電路(IC)
106:記憶體
108:記憶體分區
108-1:第一記憶體分區
108-2:第二記憶體分區
110:組件
110-1…110-N:組件
112:增加或減少各記憶體分區之大小或容量
114:多組件快取控制器
114-1…114-C:多組件快取控制器
116:處理組件
116-1…116-P:處理組件
118:多組件記憶體控制器
118-1…118-C:多組件記憶體控制器
120:系統記憶體
122:交換結構
122-1:第一交換結構
122-2:第二交換結構
122-3:第三交換結構
200:電路配置
200-1:容量比例
202:邏輯電路系統
204:記憶體
206:運算電路系統
208:記憶體
210:記憶體
212:時間軸
300:分割架構
300-1:部分
300-2:分割架構
302:片區
302-1…302-M:片區
304:運算單元
304-1…304-M:運算單元
306:記憶體部分
306-1…306-M:記憶體部分
308:通道邏輯
308-1…308-L:通道邏輯
310:控制單元
312:控制單元
314:交叉開關
316:快取標籤
318:埠
320:本端RAM
322:快取RAM
402:記憶體庫
402-1…402-4:記憶體庫
404:多工器
406:緩衝器
420:記憶體劃分方案
422:分配線
422-1:第一分配線
422-2:第二分配線
422-3:第三分配線
422-4:第四分配線
422-5:第五分配線
440:方法
442:暫存器
442-1:第一暫存器
442-2:第二暫存器
444:記憶體庫選擇信號
446:記憶體分配設定
448:記憶體存取請求
450:控制輸入
500:功率域架構
502:功率域
502-1:第一功率域
502-2:第二功率域
502-3:第三功率域
502-4:常開功率域
504:功率管理控制器(PMC)
600:程序
602:操作
604:請求
606:啟用指令
608:操作
610:操作
612:指示符
614:操作
616:指示符
618:操作
620:操作
622:訊息
624:訊息
700:流程圖
702:區塊
704:區塊
706:區塊
708:區塊
710:區塊
800:電子裝置
802:通信收發器
804:裝置資料
806:資料輸入埠
808:處理器
810:電子電路系統
812:記憶體裝置
814:作業系統
816:音訊及/或視訊處理系統
818:音訊系統
820:裝置應用程式
822:顯示系統
824:媒體資料埠
參考以下圖式描述用於記憶體共享之設備及技術。所有圖式中使用相同元件符號指代相同特徵及組件:
圖1繪示具有一積體電路(IC)之一實例設備,該IC包含可共享一記憶體以實施本文中所描述之記憶體共享之多個組件。
圖1-1繪示包含一記憶體、一多組件快取控制器及多個其他組件之一實例積體電路。
圖2繪示其中一記憶體由一處理組件及一多組件快取控制器使用多個記憶體分區共享之一實例電路配置。
圖2-1繪示使用不同容量之記憶體分區來靈活共享記憶體之實例方法。
圖3繪示用於記憶體共享之一實例分割架構,其中一處理組件包含多個片區且記憶體經分割成多個記憶體部分。
圖3-1繪示圖3之分割架構之一實例部分,其包含一片區及相關聯通道邏輯。
圖3-2繪示用於記憶體共享之另一實例分割架構,其中一處理組件包含多個片區。
圖4繪示包含多個記憶體庫及多個多工器之一記憶體部分之一實例架構。
圖4-1繪示具有一實例記憶體劃分方案之一覆蓋之圖4之架構。
圖4-2繪示用於控制圖4之架構之多個記憶體庫及多個多工器以將記憶體部分選擇性分離成多個記憶體分區之一實例方法。
圖5係繪示用於在一處理組件與一多組件快取控制器之間共享之一記憶體之一實例功率域架構的一方塊圖。
圖6係繪示涉及一處理組件、一多組件快取控制器及邏輯電路系統使用記憶體共享來調整一記憶體分區容量之一實例程序的一序列圖。
圖7繪示一設備實施記憶體共享之實例方法。
圖8繪示根據一或多個描述態樣之可實施記憶體共享之一實例電子裝置之各種組件。
100:設備
102:設備
102-1:平板裝置
102-2:智慧型電視
102-3:桌上型電腦
102-4:伺服器電腦
102-5:智慧型手錶
102-6:智慧型電話
102-7:智慧型眼鏡
104:積體電路(IC)
106:記憶體
108-1:第一記憶體分區
108-2:第二記憶體分區
110-1:第一組件
110-2:第二組件
112:增加或減少各記憶體分區之大小或容量
Claims (19)
- 一種積體電路,其包括:複數個組件,其等包括一或多個組件及一處理組件,該處理組件包含:運算電路系統;及一記憶體,其耦合至該運算電路系統;一多組件(multi-component)快取控制器,其耦合至該記憶體;及邏輯電路系統,其耦合至該多組件快取控制器及該記憶體,該邏輯電路系統經組態以將該記憶體選擇性分離成多個記憶體分區,該多個記憶體分區包含:一第一記憶體分區,其經分配給該運算電路系統且經組態以為該運算電路系統提供儲存;及一第二記憶體分區,其經分配給該多組件快取控制器且經組態以為該一或多個組件提供儲存。
- 如請求項1之積體電路,其中該邏輯電路系統經組態以回應於來自該處理組件之一或多個請求而將該記憶體選擇性分離成該多個記憶體分區,使得:在一第一時間,該記憶體之一半經分離成該第一記憶體分區且該記憶體之一半經分離成該第二記憶體分區;在一第二時間,該記憶體之多於一半經分離成該第一記憶體分區且該記憶體之少於一半經分離成該第二記憶體分區;及 在一第三時間,該記憶體之少於一半經分離成該第一記憶體分區且該記憶體之多於一半經分離成該第二記憶體分區。
- 如請求項1或請求項2之積體電路,其中:該記憶體包括分成多個記憶體庫之靜態隨機存取記憶體(SRAM);該多組件快取控制器包含與該多個記憶體庫之各記憶體庫相關聯之多個快取標籤;作為該第二記憶體分區之部分之該多個記憶體庫之各記憶體庫對應於與該多組件快取控制器相關聯之一快取之多種方式之一方式;且該邏輯電路系統經組態以分別基於該第二記憶體分區之一容量增加或減少來啟動或撤銷啟動該多個快取標籤之一部分。
- 如請求項1或請求項2之積體電路,其中:該處理組件包括一第一處理組件,該運算電路系統包括第一運算電路系統,且該記憶體包括一第一記憶體;該複數個組件包括一第二處理組件,該第二處理組件包含:第二運算電路系統;及一第二記憶體,其耦合至該第二運算電路系統;且該邏輯電路系統耦合至該第二記憶體,該邏輯電路系統經組態以將該第二記憶體選擇性分離成額外記憶體分區,該等額外記憶體分區包含:一第一額外記憶體分區,其經分配給該第二運算電路系統且經組態以為該第二運算電路系統提供儲存;及一第二額外記憶體分區,其經分配給該多組件快取控制器且經組 態以為至少一些該一或多個組件提供額外儲存。
- 如請求項4之積體電路,其中該多組件快取控制器經組態以使用該第一記憶體之該第二記憶體分區及該第二記憶體之該第二額外記憶體分區來為至少一些該一或多個組件提供快取服務。
- 如請求項1或請求項2之積體電路,其中:該複數個組件包括一記憶體區塊;該多組件快取控制器耦合至該記憶體區塊;且該多組件快取控制器經組態以使用該記憶體之該第二記憶體分區及該記憶體區塊之至少一部分來為至少一些該一或多個組件提供快取服務。
- 如請求項1或請求項2之積體電路,其進一步包括:一第一功率域,其包含該處理組件之該運算電路系統;及一第二功率域,其包含該處理組件之該記憶體,其中該第一功率域可崩潰,而該第二功率域保持通電。
- 如請求項7之積體電路,其進一步包括:一常開功率域,其包含一功率管理控制器及該邏輯電路系統之至少一部分;及一第三功率域,其包含該多組件快取控制器,其中該第三功率域可崩潰,而該第二功率域保持通電。
- 如請求項1或請求項2之積體電路,其中該處理組件經組態以在放棄該第一記憶體分區用於由該多組件快取控制器使用之前將該第一記憶體分區程式化為一預定值。
- 如請求項9之積體電路,其中該多組件快取控制器經組態以在放棄該第二記憶體分區用於由該處理組件使用之前將該第二記憶體分區程式化為一預定值。
- 如請求項1或請求項2之積體電路,其中:該處理組件之該運算電路系統包含多個運算單元;且該處理組件之該記憶體包含多個記憶體部分,該多個記憶體部分之每一各自記憶體部分耦合至該多個運算單元之一各自運算單元。
- 如請求項11之積體電路,其中:該第一記憶體分區跨該多個記憶體部分分佈;且該第二記憶體分區跨該多個記憶體部分分佈。
- 如請求項11之積體電路,其中:該多個記憶體部分包括「M」個記憶體部分;該多組件快取控制器包含具有包括「L」個通道之多個通道之通道邏輯;且該積體電路進一步包括將該通道邏輯耦合至該記憶體之一交叉開關,該交叉開關經組態以在該記憶體之該多個記憶體部分與該通道邏輯之 該多個通道之間提供「MxL」切換。
- 如請求項1或請求項2之積體電路,其中該記憶體包含:多個記憶體庫,其等經組態以儲存資料;及至少一多工器,其耦合至該多個記憶體庫之至少一部分,該至少一多工器包含至少一控制輸入,其中可使用該至少一多工器之該至少一控制輸入來控制由該運算電路系統存取該第一記憶體分區及由該多組件快取控制器存取該第二記憶體分區。
- 如請求項1或請求項2之積體電路,其中:該記憶體包含:多個記憶體庫,其等基於將該第一記憶體分區分配給該運算電路系統且將該第二記憶體分區分配給該多組件快取控制器來分佈於該第一記憶體分區與該第二記憶體分區之間;及多個多工器,其等耦合該多個記憶體庫,該多個多工器經組態以控制對該多個記憶體庫之存取;且該邏輯電路系統經組態以回應於來自該運算電路系統之記憶體存取請求及來自該多組件快取控制器之其他記憶體存取請求而使用該多個多工器仲裁對該多個記憶體庫之存取。
- 如請求項15之積體電路,其中該邏輯電路系統經組態以仲裁對該記憶體之存取以: 提供由該運算電路系統對該第一記憶體分區之排他性存取;及提供由該多組件快取控制器對該第二記憶體分區之排他性存取。
- 一種行動電子裝置,其包括如請求項1至16中任一項之積體電路。
- 一種用於共享一記憶體之方法,該方法包括:由一處理組件之運算電路系統執行一操作;由該運算電路系統,存取該處理組件之一記憶體之一第一記憶體分區以支援該操作之執行;由一多組件快取控制器,接收來自一組件之快取資料之一請求;由該多組件快取控制器,基於該請求將該資料儲存於該記憶體之一第二記憶體分區中;及調整該第一記憶體分區之一第一容量及該第二記憶體分區之一第二容量。
- 如請求項18之方法,其中該調整包括:藉由,自該處理組件,減少分配(deallocating)該記憶體之多個記憶體庫(banks)來減少該第一記憶體分區之該第一容量;藉由將該記憶體之該多個記憶體庫分配至該多組件快取控制器來增加該第二記憶體分區之該第二容量;及啟動(activating)用於該記憶體之該多個記憶體庫之多個快取標籤,使得該多個記憶體庫之每一各自記憶體庫包括多種方式之一各自方式以一快取使用該第二記憶體分區來儲存可快取資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/047025 WO2022039736A1 (en) | 2020-08-19 | 2020-08-19 | Memory sharing |
WOPCT/US20/47025 | 2020-08-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202209122A TW202209122A (zh) | 2022-03-01 |
TWI763158B true TWI763158B (zh) | 2022-05-01 |
Family
ID=72340420
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109142172A TWI763158B (zh) | 2020-08-19 | 2020-12-01 | 記憶體共享 |
TW111111691A TW202227978A (zh) | 2020-08-19 | 2020-12-01 | 記憶體共享 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111111691A TW202227978A (zh) | 2020-08-19 | 2020-12-01 | 記憶體共享 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12013780B2 (zh) |
EP (1) | EP4022446B1 (zh) |
CN (1) | CN114402304A (zh) |
TW (2) | TWI763158B (zh) |
WO (1) | WO2022039736A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114188B (zh) * | 2022-06-23 | 2023-04-07 | 云南大学 | 一种嵌入式处理器高速缓存器结构及控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
US20100011171A1 (en) * | 2005-06-29 | 2010-01-14 | Stmicroelectronics S.A. | Cache consistency in a multiprocessor system with shared memory |
TW201007465A (en) * | 2008-08-13 | 2010-02-16 | Ene Technology Inc | A sharable memory architecture of cache in a embedded controller and a method of sharing memory |
TWI403898B (zh) * | 2006-11-22 | 2013-08-01 | Ibm | 在多處理器計算系統中之記憶體一致性保護方法 |
US9734065B2 (en) * | 2013-09-06 | 2017-08-15 | Sagem Defense Securite | Method of managing consistency of caches |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725336B2 (en) * | 2001-04-20 | 2004-04-20 | Sun Microsystems, Inc. | Dynamically allocated cache memory for a multi-processor unit |
US6662272B2 (en) * | 2001-09-29 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Dynamic cache partitioning |
US8230176B2 (en) | 2009-06-26 | 2012-07-24 | International Business Machines Corporation | Reconfigurable cache |
US10031888B2 (en) * | 2011-02-17 | 2018-07-24 | Hyperion Core, Inc. | Parallel memory systems |
US20150324132A1 (en) * | 2014-05-07 | 2015-11-12 | Sandisk Technologies Inc. | Method and Computing Device for Fast Erase of Swap Memory |
KR102366808B1 (ko) * | 2014-10-22 | 2022-02-23 | 삼성전자주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
KR102347657B1 (ko) * | 2014-12-02 | 2022-01-06 | 삼성전자 주식회사 | 전자 장치 및 이의 공유 캐시 메모리 제어 방법 |
US10430302B2 (en) * | 2017-04-12 | 2019-10-01 | Qualcomm Incorporated | Data retention with data migration |
US11567555B2 (en) * | 2019-08-30 | 2023-01-31 | Intel Corporation | Software assisted power management |
GB2588984B (en) * | 2020-05-12 | 2022-02-02 | Imagination Tech Ltd | Methods and allocators for allocating portions of a storage unit using virtual partitioning |
-
2020
- 2020-08-19 WO PCT/US2020/047025 patent/WO2022039736A1/en unknown
- 2020-08-19 CN CN202080064456.8A patent/CN114402304A/zh active Pending
- 2020-08-19 EP EP20765412.0A patent/EP4022446B1/en active Active
- 2020-08-19 US US17/425,918 patent/US12013780B2/en active Active
- 2020-12-01 TW TW109142172A patent/TWI763158B/zh active
- 2020-12-01 TW TW111111691A patent/TW202227978A/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537640A (en) * | 1988-12-30 | 1996-07-16 | Intel Corporation | Asynchronous modular bus architecture with cache consistency |
US20100011171A1 (en) * | 2005-06-29 | 2010-01-14 | Stmicroelectronics S.A. | Cache consistency in a multiprocessor system with shared memory |
TWI403898B (zh) * | 2006-11-22 | 2013-08-01 | Ibm | 在多處理器計算系統中之記憶體一致性保護方法 |
TW201007465A (en) * | 2008-08-13 | 2010-02-16 | Ene Technology Inc | A sharable memory architecture of cache in a embedded controller and a method of sharing memory |
US9734065B2 (en) * | 2013-09-06 | 2017-08-15 | Sagem Defense Securite | Method of managing consistency of caches |
Also Published As
Publication number | Publication date |
---|---|
WO2022039736A1 (en) | 2022-02-24 |
US12013780B2 (en) | 2024-06-18 |
US20220300421A1 (en) | 2022-09-22 |
TW202227978A (zh) | 2022-07-16 |
EP4022446A1 (en) | 2022-07-06 |
TW202209122A (zh) | 2022-03-01 |
CN114402304A (zh) | 2022-04-26 |
EP4022446B1 (en) | 2024-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9418013B2 (en) | Selective prefetching for a sectored cache | |
EP3155521B1 (en) | Systems and methods of managing processor device power consumption | |
US8671293B2 (en) | Multi-core system energy consumption optimization | |
US20140181415A1 (en) | Prefetching functionality on a logic die stacked with memory | |
US9201490B2 (en) | Power management for a computer system | |
JP2016510930A (ja) | メモリシステムの温度情報に基づくメモリシステム管理のためのシステム及び方法 | |
JP7546669B2 (ja) | マルチコア・プロセッサ複合体の中の1コア当たりのスレッドの最適数の決定 | |
US20210248006A1 (en) | Hardware Resource Allocation System for Allocating Resources to Threads | |
CN107562645B (zh) | 一种内存页管理方法及计算设备 | |
TWI731487B (zh) | 系統級快取 | |
US20140075118A1 (en) | System cache with quota-based control | |
JP2014503103A (ja) | 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置 | |
US9396122B2 (en) | Cache allocation scheme optimized for browsing applications | |
TWI763158B (zh) | 記憶體共享 | |
TW201423403A (zh) | 共用資源的存取請求之有效率處理 | |
US11526767B2 (en) | Processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process | |
US8656114B2 (en) | Multi-core active memory processor system | |
WO2013079988A1 (en) | Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor | |
CN110888749A (zh) | 电子设备中执行任务级高速缓存管理的方法和装置 | |
TWI847044B (zh) | 用於記憶體操作之系統及非暫時性電腦儲存媒體 | |
EP4160423B1 (en) | Memory device, memory device operating method, and electronic device including memory device | |
KR100953968B1 (ko) | 멀티 프로세서 및 이를 이용한 전원 절감 방법 | |
CN115878553A (zh) | 用于片上系统的方法及其相关产品 | |
US20180173560A1 (en) | Processing circuit hardware resource allocation system | |
CN118210598A (zh) | 用于执行任务的方法及其相关产品 |