TW201807588A - 動態地判定在以處理器為基礎的系統中之記憶體屬性 - Google Patents

動態地判定在以處理器為基礎的系統中之記憶體屬性 Download PDF

Info

Publication number
TW201807588A
TW201807588A TW106125248A TW106125248A TW201807588A TW 201807588 A TW201807588 A TW 201807588A TW 106125248 A TW106125248 A TW 106125248A TW 106125248 A TW106125248 A TW 106125248A TW 201807588 A TW201807588 A TW 201807588A
Authority
TW
Taiwan
Prior art keywords
memory
processor
attribute
request
indication
Prior art date
Application number
TW106125248A
Other languages
English (en)
Inventor
湯瑪仕 菲利浦 史派爾
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW201807588A publication Critical patent/TW201807588A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • G06F9/5016Allocation 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 the resource being the memory
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本發明揭示提供在以處理器為基礎的系統中之記憶體屬性之動態判定。就此而言,在一些態樣中,一種以處理器為基礎的系統包含一處理器裝置及一或多個記憶體裝置,該一或多個記憶體裝置中之每一者與複數個記憶體屬性中之一者相關聯。該處理器裝置將一請求傳輸至該等記憶體裝置中之一者以判定與該記憶體裝置相關聯之該記憶體屬性。回應於該請求,該記憶體裝置提供向該處理器裝置通知與該記憶體裝置相關聯之該記憶體屬性之一記憶體屬性指示。在一些態樣中,該處理器裝置接著基於該記憶體屬性指示而對該記憶體裝置執行後續記憶體存取操作。一些態樣可規定:該處理器裝置亦儲存該記憶體屬性指示,且基於該經儲存記憶體屬性指示來執行後續記憶體存取操作。

Description

動態地判定在以處理器為基礎的系統中之記憶體屬性
本發明之科技大體上係關於用於以處理器為基礎的系統之記憶體控制器,且尤其係關於具有不同記憶體屬性之記憶體之管理。
習知的電腦處理器架構所使用之記憶體裝置可根據數種記憶體屬性而分類。舉例而言,系統記憶體可基於指示該記憶體可被視為「正常」記憶體抑或「裝置」記憶體之架構記憶體類型而分類。如本文中所使用,「正常」記憶體會保證自給定記憶體位置讀取之資料值始終為最近寫入至彼記憶體位置之資料值,而沒有意外的副作用。與此對比,「裝置」記憶體不會保證自記憶體讀取之資料值為最近寫入之資料值。應理解,在談及正常架構記憶體類型及裝置架構記憶體類型時,其他電腦處理器架構可使用不同但類似的術語。除了架構記憶體類型之外,作為非限制性實例,其他記憶體屬性亦可包括記憶體持續、記憶體附接(例如,直接附接或經由外部匯流排鏈路而附接)及/或記憶體潛時。 構成給定記憶體區域之記憶體裝置之記憶體屬性可判定電腦硬體對該記憶體區域可或不能執行何種操作。舉例而言,關於架構記憶體類型,正常記憶體之內容可被快取、可被推測地讀取及/或可被讀取及緩衝,其中預期到隨後可再次讀取相同資料,而裝置記憶體之內容則不能進行以上操作。因此,電腦硬體必須與任何執行軟體協調以確保不會由於記憶體操作而發生意外的副作用。此協調可包括使軟體能夠藉由程式化一或多個頁表來標明記憶體區域(例如,記憶體頁)之記憶體屬性。電腦硬體接著可藉由自一或多個頁表讀取記憶體屬性來判定使用彼記憶體區域可執行何種操作。 然而,在許多情況下,應用於給定記憶體區域之記憶體屬性可能不會準確地反映該記憶體區域之實際特性及行為。舉例而言,實際上為正常的記憶體仍然可被標記為裝置記憶體(例如,在ARM架構中,在開機程序開始時,全部記憶體被當作裝置記憶體,而不管實際架構記憶體類型)。相似地,記憶體可能會被無意地誤分類,此可能會在最初針對一種電腦架構所寫入之裝置驅動程式被移植至使用不同記憶體模型之不同電腦架構時發生。記憶體甚至可能會被軟體有意地誤特性化,此取決於存取該記憶體之代理程式(例如,該記憶體可能會在由CPU存取時被指示為正常,但在由輸入/輸出(I/O)裝置存取時被指示為裝置)。 因此,為了維持記憶體相干性,需要一種用於獲得記憶體屬性之一致視圖的機構。一種途徑係使用諸如可程式化暫存器之機構以指示記憶體屬性而在設計時間識別及分類記憶體區域。然而,此途徑之一個缺點為缺乏可擴充性。能夠考量非連續的記憶體或可被動態地添加及移除的記憶體之記憶體屬性的解決方案可能需要數目大得驚人的暫存器或數量大得驚人的設計時間編碼。
詳細描述中所揭示之態樣包括提供在以處理器為基礎的系統中之記憶體屬性之動態判定。就此而言,在一些態樣中,提供一種用於提供記憶體屬性之動態判定之以處理器為基礎的系統。該以處理器為基礎的系統包含一處理器裝置及一或多個記憶體裝置,該一或多個記憶體裝置中之每一者與複數個記憶體屬性中之一者相關聯。作為非限制性實例,該複數個記憶體屬性可包括一架構記憶體類型、一記憶體持續類型、一記憶體附接類型及/或一記憶體潛時。該處理器裝置經組態以將一請求傳輸至該等記憶體裝置中之一者以判定與該記憶體裝置相關聯之該記憶體屬性。在一些態樣中,該請求可包括明確地請求該等記憶體屬性之一記憶體屬性查詢,而一些態樣可規定:該請求包含由該處理器裝置發送至該記憶體裝置之一第一記憶體存取請求。回應於該請求,該記憶體裝置經組態以提供向該處理器裝置通知與該記憶體裝置相關聯之該記憶體屬性之一記憶體屬性指示。該記憶體屬性指示可由其自身回應於一記憶體屬性查詢而提供,或可作為一記憶體存取回應之部分而提供。在一些態樣中,該處理器裝置接著基於該記憶體屬性指示而對該記憶體裝置執行後續記憶體存取操作。一些態樣可規定:該處理器裝置亦儲存該記憶體屬性指示,且基於該經儲存記憶體屬性指示來執行後續記憶體存取操作。 在另一態樣中,提供一種用於提供記憶體屬性之動態判定之以處理器為基礎的系統。該以處理器為基礎的系統包含一處理器裝置及一或多個記憶體裝置,該一或多個記憶體裝置各自與複數個記憶體屬性中之一記憶體屬性相關聯。該處理器裝置經組態以將一請求傳輸至該一或多個記憶體裝置中之一記憶體裝置以判定該記憶體裝置之一記憶體屬性。該處理器裝置經進一步組態以自該記憶體裝置接收指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示。 在另一態樣中,提供一種與一指定記憶體屬性相關聯之記憶體裝置。該記憶體裝置經組態以自一以處理器為基礎的系統之一處理器裝置接收一請求以提供該記憶體裝置之一記憶體屬性。該記憶體裝置經進一步組態以回應於接收到該請求而將指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示提供至該處理器裝置。 在另一態樣中,提供一種用於提供記憶體屬性之動態判定之方法。該方法包含由一以處理器為基礎的系統之一處理器裝置將一請求傳輸至該以處理器為基礎的系統之一或多個記憶體裝置中之一記憶體裝置以判定該記憶體裝置之一架構記憶體屬性。該方法進一步包括由該記憶體裝置將指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示提供至該處理器裝置。
優先權主張 本申請案主張2016年8月26日申請且名為「動態地判定在以處理器為基礎的系統中之架構記憶體類型(DYNAMICALLY DETERMINING ARCHITECTURAL MEMORY TYPES IN PROCESSOR-BASED SYSTEMS)」之美國臨時專利申請案第62/379,952號的優先權,該美國臨時專利申請案之內容的全文係以引用的方式併入本文中。 現在參考圖式來描述本發明之若干例示性態樣。詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。在本文中被描述為「例示性」之任何態樣未必被認作比其他態樣較佳或有利。 詳細描述中所揭示之態樣包括提供在以處理器為基礎的系統中之記憶體屬性之動態判定。在更詳細地論述動態地判定記憶體屬性之操作之前,關於圖1來描述例示性以處理器為基礎的系統及其元件。就此而言,圖1為包括處理器裝置102之例示性以處理器為基礎的系統100,處理器裝置102經由系統互連件104而以通信方式耦接至記憶體裝置106及持續儲存裝置108。處理器裝置102提供記憶體管理單元(MMU) 110以用於管理對記憶體裝置106之存取。處理器裝置102亦包括一或多個暫存器112,軟體可以程式化方式自暫存器112進行讀取或向暫存器112進行寫入。持續儲存裝置108可包含任何非揮發性儲存裝置,諸如硬碟機(HDD)、固態磁碟機(SSD)或其類似者。 MMU 110提供用於快取最近使用之虛擬至實體記憶體位址轉譯的轉譯後備緩衝器(TLB) 114,及用於儲存虛擬記憶體位址與實體記憶體位址之間的映射的一或多個頁表116。如在圖1中所見,MMU 110亦經由系統互連件104而以通信方式耦接至持續儲存裝置108。以此方式,MMU 110可使用持續儲存裝置108作為備份儲存區,可將記憶體頁自實體記憶體移動至該備份儲存區。在一些態樣中,MMU 110亦可提供用於快取預計算值以供稍後使用之記憶體查找表118。共同地,TLB 114及記憶體查找表118在本文中被稱為「內部資料結構120」。 作為非限制性實例,圖1所說明之記憶體裝置106可包括系統記憶體122、系統快取記憶體124及周邊裝置記憶體126。在一些態樣中,作為一非限制性實例,系統記憶體122可包含雙資料速率(DDR)同步動態隨機存取記憶體(SDRAM)。作為非限制性實例,根據一些態樣之系統快取記憶體124可包含層級1 (L1)快取記憶體、層級2 (L2)快取記憶體或層級3 (L3)快取記憶體。作為一非限制性實例,周邊裝置記憶體126可作為諸如快速周邊組件介面(PCI-e)裝置之周邊裝置(未圖示)之部分而提供。如本文中所使用,系統記憶體122、系統快取記憶體124及周邊裝置記憶體126可各自分別通常被稱為「記憶體裝置122」、「記憶體裝置124」及「記憶體裝置126」。根據一些態樣之記憶體裝置106可包括除了圖1所展示之元件之外的其他元件。 圖1之以處理器為基礎的系統100可涵蓋已知數位邏輯元件、半導體電路、處理核心及/或記憶體結構以及其他元件或其組合中之任一者。本文中所描述之態樣並不限於任何特定配置之元件,且所揭示之技術可容易延伸至半導體晶粒或封裝上之各種結構及佈局。應理解,以處理器為基礎的系統100之一些態樣可包括除了圖1所說明之元件之外的元件。 如上文所提及,作為非限制性實例,圖1之實例中的記憶體裝置106中之每一者可根據記憶體裝置106之記憶體屬性而特性化,諸如具有架構記憶體類型之正常記憶體或裝置記憶體。為了以可擴充方式維持記憶體裝置106中之每一者之記憶體屬性的相干且一致的視圖,處理器裝置102、MMU 110及/或記憶體裝置106經組態以使能夠動態地判定記憶體屬性。在一個態樣中,在諸如處理器裝置102之代理程式需要存取記憶體裝置106中之一者之特定記憶體位置時,處理器裝置102 (例如,使用MMU 110)將發送請求以查詢記憶體裝置106中之彼特定記憶體裝置以獲取其記憶體屬性中之一或多者。記憶體裝置106中之每一者經組態以感知其自己的記憶體屬性,且相應地對處理器裝置102作出回應。處理器裝置102接著將會將記憶體之經存取區域標明為具有指定記憶體屬性,且將會基於該記憶體屬性來相應地執行記憶體存取操作。舉例而言,處理器裝置102可基於由記憶體裝置106中之特定記憶體裝置提供之指定記憶體屬性來判定針對記憶體之彼區域應允許或不允許諸如推測讀取操作或快取操作之操作。 根據一些態樣,處理器裝置102可經組態以使用專用指示或命令(在本文中被稱為「記憶體屬性查詢」)以請求記憶體裝置106中之一者之記憶體屬性。就此而言,圖2A說明處理器裝置102之MMU 110與周邊裝置記憶體126之間的交換。應理解,MMU 110與周邊裝置記憶體126之間的通信係僅出於說明性目的而展示,且相似交換可在MMU 110 (或處理器裝置102之其他元件)與系統記憶體122及/或MMU 110 (或處理器裝置102之其他元件)與系統快取記憶體124之間發生。 如在圖2A之實例中所見,MMU 110將包含記憶體屬性查詢202之請求200傳輸至周邊裝置記憶體126。記憶體屬性查詢202表示由以處理器為基礎的系統100之基礎架構定義以便查詢記憶體裝置106以獲取其關聯記憶體屬性的指示或命令。回應於自MMU 110接收到記憶體屬性查詢202以作為請求200之部分,周邊裝置記憶體126以記憶體屬性指示204作出回應。記憶體屬性指示204包含表示與周邊裝置記憶體126相關聯之一或多個記憶體屬性的預定義碼或指示符。在接收到記憶體屬性指示204後,MMU 110就可針對周邊裝置記憶體126儲存記憶體屬性指示204以供稍後參考。在一些態樣中,作為非限制性實例,記憶體屬性指示204可儲存於內部資料結構120中之一者中,諸如處理器裝置102之TLB 114、一或多個頁表116、一或多個暫存器112及/或記憶體查找表118。 一些態樣可規定:處理器裝置102經組態以最初將記憶體裝置106當作具有一或多個預設記憶體屬性(例如,作為一非限制性實例,將記憶體裝置106當作裝置記憶體)。隨後,回應於來自處理器裝置102之第一記憶體存取請求,記憶體裝置106向處理器裝置102通知對應記憶體屬性。就此而言,圖2B說明處理器裝置102之MMU 110與周邊裝置記憶體126之間的通信,其中MMU 110經組態以將包含記憶體存取請求208 (例如,記憶體讀取請求或記憶體寫入請求)之請求206傳輸至周邊裝置記憶體126。周邊裝置記憶體126接著向MMU 110提供記憶體存取回應210,記憶體存取回應210含有對應於回應於記憶體存取請求208之記憶體存取類型(未圖示)的資料或另一類型之結果,且亦包括記憶體屬性指示212。記憶體屬性指示212指示與周邊裝置記憶體126相關聯之一或多個記憶體屬性。如上文關於圖2A所提及,圖2B中之處理器裝置102可針對周邊裝置記憶體126儲存記憶體屬性指示212以供稍後參考。參考圖2C,處理器裝置102可基於經儲存記憶體屬性指示(諸如記憶體屬性指示204或記憶體屬性指示212)來執行後續記憶體存取操作214。 在一些態樣中,由記憶體裝置106提供的圖2A中之記憶體屬性指示204及圖2B中之記憶體屬性指示212亦可包括與一或多個記憶體屬性相關聯之記憶體區域之大小(未圖示)。替代地或另外,一些態樣可規定:記憶體屬性指示204、212包括與一或多個記憶體屬性相關聯之記憶體區域之開始位址(未圖示)及結束位址(未圖示)。以此方式,記憶體屬性指示204、212中之每一者可用以定義良性記憶體之範圍。一些態樣可規定:記憶體屬性指示204、212包含指示指定記憶體區域內與記憶體屬性相關聯之交錯式記憶體位址之遮罩(未圖示)。 為了說明如圖2A所展示的用於使用記憶體屬性查詢202來動態地判定記憶體裝置126之記憶體屬性之例示性程序,提供圖3。在描述圖3時,出於清楚起見而參考圖1及圖2A至圖2C之元件。圖3中之操作始於處理器裝置102將請求200、206傳輸至以處理器為基礎的系統100之一或多個記憶體裝置106中之記憶體裝置126以判定記憶體裝置126之記憶體屬性(區塊300)。在一些態樣中,請求200、206包含指示記憶體裝置126之記憶體屬性應被提供之請求之記憶體屬性查詢202 (區塊302)。一些態樣可規定:請求200、206包含對記憶體裝置126之第一記憶體存取請求208 (區塊304)。 記憶體裝置126接下來將指示記憶體裝置126之記憶體屬性之記憶體屬性指示204、212提供至處理器裝置102 (區塊306)。在一些態樣中,用於提供記憶體屬性指示204、指示212之區塊306之操作包含提供包含記憶體屬性指示212之記憶體存取回應210 (區塊308)。根據一些態樣之處理器裝置102接著基於由記憶體裝置126提供之記憶體屬性指示204、212而對記憶體裝置126執行後續記憶體存取操作214 (區塊310)。一些態樣可規定:處理器裝置102將記憶體屬性指示204、212儲存於內部資料結構120中(區塊312)。處理器裝置102接著可基於儲存於內部資料結構120中之記憶體屬性指示204、212來執行後續記憶體存取操作214 (區塊314)。 根據本文中所揭示之態樣的動態地判定在以處理器為基礎的系統中之記憶體屬性可提供於或整合至任何以處理器為基礎的裝置中。在無限制的情況下,實例包括機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)裝置、行動電話、蜂巢式電話、智慧型電話、會話起始協定(SIP)電話、平板電腦、平板手機、伺服器、電腦、攜帶型電腦、行動計算裝置、可穿戴式計算裝置(例如,智慧型手錶、健康或保健追蹤器、眼用佩戴品等等)、桌上型電腦、個人數位助理(PDA)、監控器、電腦監控器、電視、調諧器、無線電、衛星無線電、音樂播放器、數位音樂播放器、攜帶型音樂播放器、數位視訊播放器、視訊播放器、數位視訊光碟(DVD)播放器、攜帶型數位視訊播放器、汽車、車輛組件、航電系統、無人機,及多旋翼直升機(multicopter)。 就此而言,圖4說明可使用圖1及圖2A至圖2C所說明之處理器裝置102之以處理器為基礎的系統400的實例。以處理器為基礎的系統400包括一或多個CPU 402,CPU 402各自包括一或多個處理器404。CPU 402可具有耦接至處理器404以用於快速存取臨時儲存之資料之快取記憶體406,且在一些態樣中可對應於圖1及圖2A至圖2C之處理器裝置102且包含圖1及圖2A至圖2C之MMU 110。CPU 402耦接至系統匯流排408,且可將包括於以處理器為基礎的系統400中之主控裝置與從屬裝置相互耦接。如所熟知,CPU 402藉由在系統匯流排408上交換位址、控制及資料資訊而與此等其他裝置通信。舉例而言,CPU 402可將匯流排異動請求傳達至作為從屬裝置之實例的記憶體控制器410。 其他主控裝置及從屬裝置可連接至系統匯流排408。如圖4所說明,作為實例,此等裝置可包括記憶體系統412、一或多個輸入裝置414、一或多個輸出裝置416、一或多個網路介面裝置418及一或多個顯示控制器420。輸入裝置414可包括任何類型之輸入裝置,包括但不限於輸入按鍵、開關、語音處理器等等。輸出裝置416可包括任何類型之輸出裝置,包括但不限於音訊、視訊、其他視覺指示器等等。網路介面裝置418可為經組態以允許至及自網路422之資料交換的任何裝置。網路422可為任何類型之網路,包括但不限於有線或無線網路、私用或公用網路、區域網路(LAN)、無線區域網路(WLAN)、廣域網路(WAN)、BLUETOOTHTM 網路及網際網路。網路介面裝置418可經組態以支援任何類型之所要通信協定。記憶體系統412可包括一或多個記憶體單元424(0)至424(N)。 CPU 402亦可經組態以在系統匯流排408上存取顯示控制器420以控制發送至一或多個顯示器426之資訊。顯示控制器420經由一或多個視訊處理器428而將資訊發送至顯示器426以供顯示,視訊處理器428將待顯示之資訊處理成適合於顯示器426之格式。顯示器426可包括任何類型之顯示器,包括但不限於陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器等等。 熟習此項技術者應進一步瞭解,結合本文中所揭示之態樣所描述之各種說明性邏輯區塊、模組、電路及演算法可被實施為電子硬體、儲存於記憶體或另一電腦可讀媒體中且由處理器或其他處理裝置執行之指令,或此兩者之組合。作為實例,本文中所描述之主控裝置及從屬裝置可用於任何電路、硬體組件、積體電路(IC)或IC晶片中。本文中所揭示之記憶體可為任何類型及大小之記憶體,且可經組態以儲存任何類型之所要資訊。為了清楚地說明此互換性,上文已大體上在功能性方面描述各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性取決於特定應用、設計選擇,及/或強加於整個系統之設計約束。熟習此項技術者可針對每一特定應用而以變化之方式實施所描述之功能性,但不應將此等實施決策解譯為造成脫離本發明之範疇。 可運用經設計以執行本文中所描述之功能的處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其任何組合來實施或執行結合本文中所揭示之態樣所描述之各種說明性邏輯區塊、模組及電路。處理器可為微處理器,但在替代例中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可被實施為計算裝置之組合(例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任何其他此類組態)。 本文中所揭示之態樣可以硬體及以儲存於硬體中之指令予以體現,且可駐存於(例如)隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電可程式化ROM (EPROM)、電可抹除可程式化ROM (EEPROM)、暫存器、硬碟、可卸除式磁碟、CD-ROM或此項技術中所知的任何其他形式之電腦可讀媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊及將資訊寫入至儲存媒體。在替代例中,儲存媒體可與處理器成一體。處理器及儲存媒體可駐存於ASIC中。ASIC可駐存於遠端台中。在替代例中,處理器及儲存媒體可作為離散組件而駐存於遠端台、基地台或伺服器中。 亦應注意,描述本文中在例示性態樣中之任一者中所描述之操作步驟以提供實例及論述。可以除了所說明之序列之外的眾多不同序列來執行所描述之操作。此外,實際上可以數個不同步驟來執行單一操作步驟中所描述之操作。另外,可組合例示性態樣中所論述之一或多個操作步驟。應理解,流程圖中所說明之操作步驟可經受眾多不同修改,此對於熟習此項技術者而言將易於顯而易見。熟習此項技術者亦將理解,可使用多種不同科技及技術中之任一者來表示資訊及信號。舉例而言,可藉由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或其任何組合來表示可貫穿以上描述而參考之資料、指令、命令、資訊、信號、位元、符號及碼片。 提供本發明之先前描述以使任何熟習此項技術者皆能夠製造或使用本發明。在不脫離本發明之精神或範疇的情況下,對本發明之各種修改對於熟習此項技術者而言將易於顯而易見,且本文中所定義之一般原理可應用於其他變化。因此,本發明並不意欲限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
100‧‧‧以處理器為基礎的系統
102‧‧‧處理器裝置
104‧‧‧系統互連件
106‧‧‧記憶體裝置
108‧‧‧持續儲存裝置
110‧‧‧記憶體管理單元(MMU)
112‧‧‧暫存器
114‧‧‧轉譯後備緩衝器(TLB)
116‧‧‧頁表
118‧‧‧記憶體查找表
120‧‧‧內部資料結構
122‧‧‧系統記憶體
124‧‧‧系統快取記憶體
126‧‧‧周邊裝置記憶體
200‧‧‧請求
202‧‧‧記憶體屬性查詢
204‧‧‧記憶體屬性指示
206‧‧‧請求
208‧‧‧記憶體存取請求
210‧‧‧記憶體存取回應
212‧‧‧記憶體屬性指示
214‧‧‧後續記憶體存取操作
300‧‧‧區塊
302‧‧‧區塊
304‧‧‧區塊
306‧‧‧區塊
308‧‧‧區塊
310‧‧‧區塊
312‧‧‧區塊
314‧‧‧區塊
400‧‧‧以處理器為基礎的系統
402‧‧‧CPU
404‧‧‧處理器
406‧‧‧快取記憶體
408‧‧‧系統匯流排
410‧‧‧記憶體控制器
412‧‧‧記憶體系統
414‧‧‧輸入裝置
416‧‧‧輸出裝置
418‧‧‧網路介面裝置
420‧‧‧顯示控制器
422‧‧‧網路
424(0)‧‧‧記憶體單元
424(N)‧‧‧記憶體單元
426‧‧‧顯示器
428‧‧‧視訊處理器
圖1為提供具有不同記憶體屬性之記憶體裝置之例示性以處理器為基礎的系統的方塊圖; 圖2A至圖2C為包括記憶體控制器及記憶體裝置之例示性以處理器為基礎的系統的方塊圖,該等以處理器為基礎的系統經組態以動態地判定每一記憶體裝置之記憶體屬性; 圖3為說明用於使用記憶體屬性查詢來動態地判定記憶體裝置之記憶體屬性之例示性程序的流程圖;及 圖4為可包括圖2A至圖2C之記憶體控制器及記憶體裝置之例示性以處理器為基礎的系統的方塊圖。

Claims (23)

  1. 一種用於提供記憶體屬性之動態判定之以處理器為基礎的系統,其包含: 一處理器裝置;及 一或多個記憶體裝置,其各自與複數個記憶體屬性中之一記憶體屬性相關聯; 該處理器裝置經組態以進行以下操作: 將一請求傳輸至該一或多個記憶體裝置中之一記憶體裝置以判定該記憶體裝置之一記憶體屬性;及 自該記憶體裝置接收指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示。
  2. 如請求項1之以處理器為基礎的系統,其中該處理器裝置經組態以藉由經組態以傳輸指示該記憶體裝置之該記憶體屬性應被提供之一請求之一記憶體屬性查詢來傳輸該請求。
  3. 如請求項1之以處理器為基礎的系統,其中該處理器裝置經組態以進行以下操作: 藉由經組態以將一第一記憶體存取請求傳輸至該記憶體裝置來傳輸該請求;及 藉由經組態以接收包含該記憶體屬性指示之一記憶體存取回應來接收該記憶體屬性指示。
  4. 如請求項1之以處理器為基礎的系統,其中該記憶體屬性包含一架構記憶體類型、一記憶體持續類型、一記憶體附接類型及一記憶體潛時中之一者。
  5. 如請求項1之以處理器為基礎的系統,其中該記憶體屬性指示包含以下各者中之一或多者:與該記憶體屬性相關聯之一記憶體區域之一大小、與該記憶體屬性相關聯之一記憶體區域之一開始位址及一結束位址,及指示與該記憶體屬性相關聯之記憶體位址之一遮罩。
  6. 如請求項1之以處理器為基礎的系統,其中該處理器裝置經進一步組態以基於自該記憶體裝置接收之該記憶體屬性指示而對該記憶體裝置執行一後續記憶體存取操作。
  7. 如請求項1之以處理器為基礎的系統,其中該處理器裝置經進一步組態以進行以下操作: 將該記憶體屬性指示儲存於一內部資料結構中;及 基於儲存於該內部資料結構中之該記憶體屬性指示來執行一後續記憶體存取操作。
  8. 如請求項7之以處理器為基礎的系統,其中該處理器裝置經組態以藉由經組態以將該記憶體屬性指示儲存於一轉譯後備緩衝器(TLB)、一頁表、一暫存器及一記憶體查找表中之一者中而將該記憶體屬性指示儲存於該內部資料結構中。
  9. 如請求項1之以處理器為基礎的系統,其整合至一積體電路(IC)中。
  10. 如請求項1之以處理器為基礎的系統,其整合至選自由以下各者組成之群組的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一全球定位系統(GPS)裝置;一行動電話;一蜂巢式電話;一智慧型電話;一會話起始協定(SIP)電話;一平板電腦;一平板手機;一伺服器;一電腦;一攜帶型電腦;一行動計算裝置;一可穿戴式計算裝置;一桌上型電腦;一個人數位助理(PDA);一監控器;一電腦監控器;一電視;一調諧器;一無線電;一衛星無線電;一音樂播放器;一數位音樂播放器;一攜帶型音樂播放器;一數位視訊播放器;一視訊播放器;一數位視訊光碟(DVD)播放器;一攜帶型數位視訊播放器;一汽車;一車輛組件;航電系統;一無人機;及一多旋翼直升機。
  11. 一種與一指定記憶體屬性相關聯之記憶體裝置,其經組態以進行以下操作: 自一以處理器為基礎的系統之一處理器裝置接收一請求以提供該記憶體裝置之一記憶體屬性;及 回應於接收到該請求而將指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示提供至該處理器裝置。
  12. 如請求項11之記憶體裝置,其經組態以藉由經組態以自該處理器裝置接收一記憶體屬性查詢來接收該請求。
  13. 如請求項11之記憶體裝置,其經組態以進行以下操作: 藉由經組態以自該處理器裝置接收一第一記憶體存取請求來接收該請求;及 藉由經組態以提供包含該記憶體屬性指示之一記憶體存取回應來提供該記憶體屬性指示。
  14. 如請求項11之記憶體裝置,其中該記憶體屬性包含一架構記憶體類型、一記憶體持續類型、一記憶體附接類型及一記憶體潛時中之一者。
  15. 如請求項11之記憶體裝置,其中該記憶體屬性指示包含以下各者中之一或多者:與該記憶體屬性相關聯之一記憶體區域之一大小、與該記憶體屬性相關聯之一記憶體區域之一開始位址及一結束位址,及指示與該記憶體屬性相關聯之交錯式記憶體位址之一遮罩。
  16. 一種用於提供記憶體屬性之動態判定之方法,其包含: 由一以處理器為基礎的系統之一處理器裝置將一請求傳輸至該以處理器為基礎的系統之一或多個記憶體裝置中之一記憶體裝置以判定該記憶體裝置之一記憶體屬性;及 由該記憶體裝置將指示該記憶體裝置之該記憶體屬性之一記憶體屬性指示提供至該處理器裝置。
  17. 如請求項16之方法,其中該請求包含指示該記憶體裝置之該記憶體屬性應被提供之一請求之一記憶體屬性查詢。
  18. 如請求項16之方法,其中: 該請求包含對該記憶體裝置之一第一記憶體存取請求;且 提供該記憶體屬性指示包含提供包含該記憶體屬性指示之一記憶體存取回應。
  19. 如請求項16之方法,其中該記憶體屬性包含一架構記憶體類型、一記憶體持續類型、一記憶體附接類型及一記憶體潛時中之一者。
  20. 如請求項16之方法,其中該記憶體屬性指示包含以下各者中之一或多者:與該架構記憶體屬性相關聯之一記憶體區域之一大小、與該記憶體屬性相關聯之一記憶體區域之一開始位址及一結束位址,及指示與該記憶體屬性相關聯之交錯式記憶體位址之一遮罩。
  21. 如請求項16之方法,其進一步包含由該處理器裝置基於由該記憶體裝置提供之該記憶體屬性指示而對該記憶體裝置執行一後續記憶體存取操作。
  22. 如請求項16之方法,其進一步包含: 由該處理器裝置將該記憶體屬性指示儲存於一內部資料結構中;及 由該處理器裝置基於儲存於該內部資料結構中之該記憶體屬性指示來執行一後續記憶體存取操作。
  23. 如請求項22之方法,其中該內部資料結構包含一轉譯後備緩衝器(TLB)、一頁表、一暫存器及一記憶體查找表中之一者。
TW106125248A 2016-08-26 2017-07-27 動態地判定在以處理器為基礎的系統中之記憶體屬性 TW201807588A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662379952P 2016-08-26 2016-08-26
US62/379,952 2016-08-26
US15/637,290 US10372635B2 (en) 2016-08-26 2017-06-29 Dynamically determining memory attributes in processor-based systems
US15/637,290 2017-06-29

Publications (1)

Publication Number Publication Date
TW201807588A true TW201807588A (zh) 2018-03-01

Family

ID=61242562

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106125248A TW201807588A (zh) 2016-08-26 2017-07-27 動態地判定在以處理器為基礎的系統中之記憶體屬性

Country Status (3)

Country Link
US (1) US10372635B2 (zh)
TW (1) TW201807588A (zh)
WO (1) WO2018038856A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152428B1 (en) * 2017-07-13 2018-12-11 EMC IP Holding Company LLC Virtual memory service levels
US20190286327A1 (en) * 2018-03-15 2019-09-19 Apple Inc. Memory Objects
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11494311B2 (en) * 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804760B2 (en) 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US7159076B2 (en) 2003-06-24 2007-01-02 Research In Motion Limited Cache operation with non-cache memory
US9002795B2 (en) 2006-01-26 2015-04-07 Seagate Technology Llc Object-based data storage device
TWI310564B (en) 2006-11-09 2009-06-01 Prolific Technology Inc Electronic device and related method for determining memory type
US8595463B2 (en) 2010-09-15 2013-11-26 International Business Machines Corporation Memory architecture with policy based data storage
US9110795B2 (en) 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US9110592B2 (en) * 2013-02-04 2015-08-18 Microsoft Technology Licensing, Llc Dynamic allocation of heterogenous memory in a computing system
US9342443B2 (en) 2013-03-15 2016-05-17 Micron Technology, Inc. Systems and methods for memory system management based on thermal information of a memory system

Also Published As

Publication number Publication date
US20180060255A1 (en) 2018-03-01
US10372635B2 (en) 2019-08-06
WO2018038856A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
TW201807588A (zh) 動態地判定在以處理器為基礎的系統中之記憶體屬性
US10055158B2 (en) Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
US10236917B2 (en) Providing memory bandwidth compression in chipkill-correct memory architectures
US10169246B2 (en) Reducing metadata size in compressed memory systems of processor-based systems
KR101895852B1 (ko) Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공
US20180173623A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
US20160371222A1 (en) COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER
US10061698B2 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10228991B2 (en) Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems
US10754795B2 (en) MMU assisted address sanitizer
US10482016B2 (en) Providing private cache allocation for power-collapsed processor cores in processor-based systems
US20180285269A1 (en) Aggregating cache maintenance instructions in processor-based devices
US9880748B2 (en) Bifurcated memory management for memory elements
JP6396625B1 (ja) 複数のマスタデバイス間の条件付き介入を使用したキャッシュコヒーレンシの維持
US20190012265A1 (en) Providing multi-socket memory coherency using cross-socket snoop filtering in processor-based systems