TWI791765B - 用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法 - Google Patents

用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法 Download PDF

Info

Publication number
TWI791765B
TWI791765B TW108104639A TW108104639A TWI791765B TW I791765 B TWI791765 B TW I791765B TW 108104639 A TW108104639 A TW 108104639A TW 108104639 A TW108104639 A TW 108104639A TW I791765 B TWI791765 B TW I791765B
Authority
TW
Taiwan
Prior art keywords
address translation
memory
address
resource utilization
memory controller
Prior art date
Application number
TW108104639A
Other languages
English (en)
Other versions
TW201937374A (zh
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 TW201937374A publication Critical patent/TW201937374A/zh
Application granted granted Critical
Publication of TWI791765B publication Critical patent/TWI791765B/zh

Links

Images

Classifications

    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明提供一種用於控制輸入/輸出(I/O)裝置的利用率與性能的記憶體控制器與應用處理器(AP)以及一種操作記憶體控制器的方法。記憶體控制器包括位址轉譯器以及評估模組,位址轉譯器被配置成基於位址轉譯方案來將自主機處理器接收的第一位址轉譯成表示記憶位址的第二位址,位址轉譯方案基於記憶資源利用率而選自多個位址轉譯方案,評估模組被配置成基於多個記憶位址來評估所述多個位址轉譯方案中的每一者的記憶資源利用率,所述多個記憶位址是基於所述多個位址轉譯方案中的每一者而產生的。

Description

用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法
本發明概念的示例性實施例是有關於一種記憶體控制器及/或應用處理器。舉例而言,至少一些示例性實施例是有關於一種用於控制輸入/輸出(I/O)裝置的利用率與性能的記憶體控制器、一種包括記憶體控制器的應用處理器(AP)及/或一種操作記憶體控制器的方法。
記憶體控制器或應用處理器(application processor,AP)可用於電子系統(例如資料處理系統)中且可與各種周邊裝置交換各種訊號。舉例而言,記憶體控制器可控制揮發性記憶裝置(例如動態隨機存取記憶體(dynamic random access memory,DRAM))或非揮發性記憶裝置(例如快閃記憶體或電阻式記憶體)且可將自請求對記憶裝置進行存取的主機處理器接收的系統位址轉譯成適用於記憶裝置的記憶位址。所述記憶體控制器可利用位址轉譯方案來將系統位址轉譯成記憶位址。
本發明概念的示例性實施例提供一種用於提高記憶裝置及其他輸入/輸出裝置的利用率與性能的記憶體控制器、包括所述記憶體控制器的應用處理器及/或操作所述記憶體控制器的方法。
根據本發明概念的一些示例性實施例,提供一種用於控制記憶裝置的記憶體控制器。所述記憶體控制器包括處理電路系統,所述處理電路系統被配置成:基於位址轉譯方案來將自主機處理器接收的第一位址轉譯成與所述記憶裝置相關聯的第二位址,所述位址轉譯方案基於記憶資源利用率而選自多個位址轉譯方案中;以及基於使用所述多個位址轉譯方案產生的多個記憶位址來評估所述多個位址轉譯方案中的每一者的所述記憶資源利用率。
根據本發明概念的其他示例性實施例,提供一種包括主機處理器及記憶體控制器的應用處理器,所述主機處理器被配置成提供存取請求及第一位址,所述記憶體控制器被配置成:基於選自多個位址轉譯方案的第一位址轉譯方案來實行位址轉譯以將所述第一位址轉譯成與記憶位址相關聯的第二位址;在第一時間週期期間在基於所述第一位址轉譯方案來實行所述位址轉譯的同時,計算表示所述多個位址轉譯方案中的每一者的記憶資源利用率的資源利用率得分;以及在第二時間週期期間基於第二位址轉譯方案來實行所述位址轉譯以將所述第一位址轉譯成所述第二位址,使得在所述第一時間週期期間所述第二位址轉譯方案的所述記憶資源利用率在所述多個位址轉譯方案中最高,所述第二時間週期在所述第一時間週期之後。
根據本發明概念的再一些示例性實施例,提供一種操作記憶體控制器以將系統位址轉譯成與記憶裝置相關聯的記憶位址的方法。在一些示例性實施例中,所述方法包括:基於選自多個轉譯方案候選項中的位址轉譯方案來將所述系統位址轉譯成所述記憶位址;計算所述多個轉譯方案候選項的資源利用率得分;基於所述資源利用率得分來自所述多個轉譯方案候選項選擇資源利用率最高的下一位址轉譯方案;將所述位址轉譯方案改變成所述下一位址轉譯方案;以及基於所述下一位址轉譯方案來將所述系統位址轉譯成所述記憶位址。
根據本發明概念的再一些示例性實施例,提供一種資料處理系統,所述資料處理系統包括:至少一個智慧財產(intellectual property,IP)區塊;輸入/輸出裝置,被配置成對所述至少一個IP區塊進行存取;以及控制器,被配置成藉由基於自所述至少一個IP區塊接收的系統位址實行機器學習來按照時間順序導出多個位址轉譯方案以及所述多個位址轉譯方案中的每一者的資源利用率得分,並基於位址轉譯方案來將自所述至少一個IP區塊接收的所述系統位址轉譯成所述輸入/輸出裝置的裝置位址,所述位址轉譯方案基於所述資源利用率得分而選自所述多個位址轉譯方案。
圖1是根據本發明概念示例性實施例的資料處理系統的方塊圖,所述資料處理系統包括記憶體控制器。
參照圖1,資料處理系統1000可安裝於例如以下各種類型的電子裝置上:膝上型電腦、智慧型電話、平板個人電腦(personal compuer,PC)、無人機(drone)、個人數位助理(personal digital assistant,PDA)、企業數位助理(enterprise digital assistant,EDA)、數位照相機(digital camera)、可攜式多媒體播放機(portable multimedia player,PMP)、手持式遊戲機、行動網際網路裝置(mobile internet device)、多媒體裝置、可穿戴式電腦、物聯網(internet of things,IoT)裝置、萬聯網(internet of everything,IoE)裝置、電子書(e-book)、智慧型家用電器(smart home appliance)、醫療裝置及車輛驅動裝置(vehicle driving device)。
資料處理系統1000可包括記憶體控制器100、記憶裝置200及處理器300。資料處理系統1000亦可包括各種類型的輸入/輸出(input/output,I/O)裝置及智慧財產(IP)(或IP區塊)。在一些示例性實施例中,記憶體控制器100及處理器300可整合到單個半導體晶片中。舉例而言,記憶體控制器100與處理器300可形成被構建為系統晶片(system on chip,SoC)的應用處理器(AP)。
處理器300是請求對記憶裝置200進行存取的IP。處理器300可包括例如中央處理單元(central processing unit,CPU)、圖形處理單元(graphics processing unit,GPU)及顯示控制器,且可被稱為主IP。處理器300可將存取請求RQ(例如,對資料DATA的寫入請求或讀取請求)及系統位址SA經由系統匯流排傳送至記憶體控制器100。
記憶裝置200可包括揮發性記憶體及/或非揮發性記憶體。當記憶裝置200包括揮發性記憶體時,記憶裝置200可包括記憶體,例如雙倍資料速率(double data rate,DDR)同步動態隨機存取記憶體(synchronous dynamic random access memory,SDRAM)、低功率DDR(low power DDR,LPDDR)SDRAM、圖形DDR(graphics DDR,GDDR)SDRAM及藍巴斯DRAM(Rambus DRAM,RDRAM)。然而,本發明概念的示例性實施例並非僅限於此。舉例而言,記憶裝置200可包括非揮發性記憶體,例如快閃記憶體、磁性隨機存取記憶體(magnetic RAM,MRAM)、鐵電隨機存取記憶體(ferroelectric RAM,FRAM)、相變隨機存取記憶體(phase-change RAM,PRAM)及電阻式隨機存取記憶體(resistive RAM,ReRAM)。
記憶裝置200可包括多個記憶體M1至Mm。記憶體M1至Mm中的每一者是指實體地及邏輯地分類的記憶資源。記憶體M1至Mm中的每一者可包括記憶晶粒組、記憶庫、記憶列(或頁面)及記憶行(其在下文中被稱為晶粒組、庫、列及行),或者可包括邏輯地分類的區。
記憶裝置200可為包括至少一個記憶體晶片或包括其中多個記憶體晶片安裝於模組板上的記憶模組的半導體封裝。記憶裝置200可嵌入於SoC中。
記憶體控制器100是根據記憶裝置200(例如,快閃記憶體或DRAM)的類型控制對記憶裝置200的存取的介面。記憶體控制器100可控制記憶裝置200以使資料DATA因應於自處理器300接收的寫入請求而寫入至記憶裝置200或者因應於自處理器300接收的讀取請求而自記憶裝置200讀取資料DATA。記憶體控制器100產生各種訊號(例如,命令CMD及記憶位址MA)來控制記憶裝置200,並根據處理器300的存取請求RQ及系統位址SA來將所述各種訊號提供至記憶裝置200。
記憶體控制器100可將自處理器300接收的系統位址SA轉譯成與記憶裝置200對應的記憶位址MA。系統位址SA是指由處理器300辨識的位址結構,且記憶位址MA是指由記憶裝置200辨識的位址結構,例如晶粒組、庫、列或行。記憶體控制器100可基於已設定的位址轉譯方案來將系統位址SA轉譯成記憶位址MA。將參照圖2來闡述位址轉譯方案。
圖2是用於闡釋位址轉譯方案的實例的圖。
參照圖2,系統位址SA及記憶位址MA可包括多個位元。此處,MSB表示最高有效位元且LSB表示最低有效位元。作為非限制性實例,系統位址SA可表達為具有八個代碼值的十六進制代碼(例如,0X80000000)且可包括32個位元。系統位址SA的32個位元可在記憶位址MA的晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C之間分配。可在記憶裝置200中根據記憶位址MA的晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C來選擇與記憶位址MA對應的晶粒組、庫、列及行。
位址轉譯方案可指將系統位址SA中所包括的位元分配給晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C的方法。舉例而言,如圖2所示,系統位址SA的位元中的一些位元或一個位元可被分配給晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C中的一個訊號或者可與其他位元進行運算(例如,互斥或(XOR)運算),且所述運算結果可被分配給晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C中的一個訊號。位址轉譯方案可利用被分配給晶粒組訊號RK、庫訊號BK、列訊號R及行訊號C中的一個訊號的位元的位置以及使用所述位元的散列函數(hashing function)來表示。位址轉譯方案可隨著對位元位置及散列函數的選擇而變化。
返回參照圖1,記憶體控制器100可包括處理電路系統及記憶體。
處理電路系統可為但不限於處理器、中央處理單元(CPU)、控制器、算術邏輯單元(arithmetic logic unit,ALU)、數位訊號處理器、微電腦、現場可程式化閘陣列(field programmable gate array,FPGA)、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、系統晶片(SoC)、可程式化邏輯單元、微處理器或者能夠以所定義的方式實行操作的任何其他裝置。
處理電路系統可藉由佈局設計或執行儲存於記憶體(未示出)中的電腦可讀取指令而被配置成專用電腦以構建位址轉譯器110及評估模組120的功能。
位址轉譯器110可包括根據不同的位址轉譯方案(或位址映射方案)構建的多個位址轉譯模組,例如,第一位址轉譯模組MD1、第二位址轉譯模組MD2及第三位址轉譯模組MD3。可設定(或作為另外一種選擇,預定)相應的第一位址轉譯模組MD1至第三位址轉譯模組MD3的位址轉譯方案,且第一位址轉譯模組MD1至第三位址轉譯模組MD3可由硬體來構建。然而,本發明概念的示例性實施例並非僅限於此。在一些示例性實施例中,第一位址轉譯模組MD1至第三位址轉譯模組MD3可由處理電路系統執行軟體來構建以將處理器變換成專用處理器,且在資料處理系統1000的操作期間可得出位址轉譯方案。儘管在圖1中位址轉譯器110包括第一位址轉譯模組MD1至第三位址轉譯模組MD3,然而本發明概念的示例性實施例並非僅限於此。位址轉譯器110可包括至少兩個位址轉譯模組。
第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者可對系統位址SA實行位址轉譯並產生記憶位址MA。然而,從第一位址轉譯模組MD1至第三位址轉譯模組MD3選出的一個位址轉譯模組輸出的記憶位址MA可被傳送至記憶裝置200。換言之,第一位址轉譯模組MD1至第三位址轉譯模組MD3可為對記憶裝置200應用的位址轉譯模組的轉譯模組候選項,且選自第一位址轉譯模組MD1至第三位址轉譯模組MD3的一個位址轉譯模組可實際上實行位址轉譯。舉例而言,當選擇第一位址轉譯模組MD1時,可僅將自第一位址轉譯模組MD1輸出的記憶位址MA傳送至記憶裝置200。換言之,第二位址轉譯模組MD2及第三位址轉譯模組MD3的位址轉譯操作可為後台操作。
評估模組120可即時地對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的記憶資源利用率進行評估。詳言之,評估模組120可對自第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者輸出的記憶位址MA進行分析並對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的記憶資源利用率進行評估。舉例而言,評估模組120可基於由自第一位址轉譯模組MD1輸出的記憶位址MA中選擇的晶粒組、庫及列的至少兩者來計算表示第一位址轉譯模組MD1的記憶資源利用率的資源利用率得分。在一些示例性實施例中,評估模組120可基於晶粒組、庫及列來計算資源利用率得分。評估模組120可採用與如上所述相同的方式來計算相應的第二位址轉譯模組MD2及第三位址轉譯模組MD3的資源利用率得分,且因此,評估模組120可對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的記憶資源利用率進行評估。可對資源利用率得分進行即時地計算及更新。計算資源利用率得分的方法將在以下參照圖8至圖10E來闡述。
在系統重新啟動或空閒週期期間,記憶體控制器100可基於針對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者對記憶資源利用率進行評估的最新結果來選擇第一位址轉譯模組MD1至第三位址轉譯模組MD3中記憶資源利用率最高的位址轉譯模組,且可使用所選擇的位址轉譯模組作為位址轉譯器110的位址轉譯模組。舉例而言,第一位址轉譯模組MD1可實行位址轉譯,且同時可對第一位址轉譯模組MD1至第三位址轉譯模組MD3的記憶資源利用率進行評估。當直到系統重新啟動之前評估結果均表示第二位址轉譯模組MD2的記憶資源利用率最高時,在位址轉譯器110中使用的位址轉譯模組在系統重新啟動期間可自第一位址轉譯模組MD1改變成第二位址轉譯模組MD2。自系統重新啟動完成之後,第二位址轉譯模組MD2可實行位址轉譯。此流程可重複進行。
由於記憶裝置200包括多個記憶體M1至Mm,因此記憶裝置200的頁面衝突率(或頁面命中率)以及記憶體利用率可隨著在記憶體控制器100中使用的位址轉譯方案(即,系統位址SA映射至記憶體M1至Mm中的哪一個記憶體)而變化。即使在記憶體控制器100的製造期間藉由諸多性能測試選擇出了在各種狀況下皆可使記憶體利用率最大化的位址轉譯方案,然而標準化的位址轉譯方案可能無法符合各種使用者的使用模式。根據使用者的使用模式(即,資料處理系統1000中可供使用的應用中使用者常常執行何種類型的應用)而定,可改變自處理器300接收的系統位址SA的模式(即,系統位址SA中所包括的所有位元中被頻繁翻轉的位元的位置)。
同時,在記憶體控制器100中相對於多個位址轉譯方案而對記憶資源利用率進行評估的結果可隨著系統位址SA的模式變化。因此,在一或多個示例性實施例中,記憶體控制器100可藉由相對於多個位址轉譯方案即時地對記憶資源利用率進行評估以及基於所述評估結果動態地改變位址轉譯方案來根據系統位址SA的模式自適應地運作位址轉譯方案。因此,記憶裝置200的利用率及性能可得到提高。
圖3A及圖3B是用於闡釋圖1所示記憶裝置的實例的圖。
參照圖3A,記憶裝置200a可包括第一記憶體M1至第十六記憶體M16。第一記憶體M1至第八記憶體M8可形成第一晶粒組RK0,且第九記憶體M9至第十六記憶體M16可形成第二晶粒組RK1。命令及位址訊號C/A可自記憶體控制器100傳送至記憶裝置200a。命令及位址訊號C/A中所包括的記憶位址MA可包括晶粒組訊號、庫訊號、列訊號及行訊號,如上所述。記憶體控制器100可經由資料匯流排(或資料通道)20來與記憶裝置200a交換包括多個位元的資料,例如包括64個位元的資料[63:0]。在下文中,假設自記憶體控制器100接收到寫入命令。
可藉由八個位元將資料[63:0]傳送至第一記憶體M1至第八記憶體M8以及傳送至第九記憶體M9至第十六記憶體M16。可根據記憶位址MA的晶粒組訊號來選擇第一晶粒組RK0及第二晶粒組RK1中的一者,且可將資料[63:0]傳送至所選擇晶粒組。
將參照圖3B來闡述圖3A所示第一記憶體M1。第一記憶體M1可包括第一庫BK0至第八庫BK7。可藉由選擇器MUX將資料[7:0]傳送至所選擇庫。選擇器MUX可基於記憶位址MA的庫來運作。可根據記憶位址MA的庫訊號來選擇第一庫BK0至第八庫BK7中的一者,且可將資料[7:0]傳送至所選擇庫。
第一庫BK0至第八庫BK7中的每一者可包括記憶單元陣列21、列解碼器22、讀取/寫入電路23及行解碼器24。記憶單元陣列21可包括第一列R0至第八列R7以及第一行C0至第八行C7。列解碼器22及行解碼器24可根據記憶位址MA的列及行來選擇記憶單元陣列21中欲被寫入資料[7:0]的區(例如,頁面)。讀取/寫入電路23可將資料[7:0]寫入至所選擇區。
在記憶體控制器100與記憶裝置200之間傳送及接收資料期間的時間以及將資料寫入至由記憶位址MA選擇的晶粒組、庫及列所花費的時間可能會影響記憶體延遲。當依序接收的記憶位址MA選擇不同的晶粒組或不同的庫時,可在所述晶粒組及所述庫中並列地實行寫入。另外,當依序接收的記憶位址MA選擇同一晶粒組、同一庫及同一列時,相較於依序接收的記憶位址MA選擇同一晶粒組及同一庫但選擇不同的列時而言,寫入時間可減少。如上所述,當記憶位址MA選擇不同的晶粒組或庫或者選擇同一晶粒組、庫及列時,記憶體利用率可提高且延遲可減小。
因此,記憶體控制器100可藉由以下來提高記憶體利用率:基於由根據位址轉譯方案輸出的記憶位址MA選擇的晶粒組、庫及列中的至少兩者來針對多個位址轉譯方案即時地對記憶資源利用率進行評估以及動態地使用記憶資源利用率最高的位址轉譯方案。
圖4是根據本發明概念示例性實施例的記憶體控制器的方塊圖。
參照圖4,記憶體控制器100a可包括位址轉譯器110、評估模組120及請求隊列130。
在請求隊列130中可設定有隊列索引QI。自處理器300(圖1所示)接收的存取請求可根據自處理器300接收存取請求的次序來排隊。存取請求的類型QC(例如,Q_1及Q_2)以及與自處理器300接收的存取請求中的每一者對應的系統位址SA(例如,SA_1及SA_2)可排隊。舉例而言,存取請求的類型QC可包括寫入請求及讀取請求中的一者。可根據所排隊的存取請求的隊列次序來依序地或非依序地處理所排隊的存取請求。如以上參照圖1所述,位址轉譯器110可包括多個位址轉譯模組,例如,第一位址轉譯模組MD1至第三位址轉譯模組MD3。第一位址轉譯模組MD1至第三位址轉譯模組MD3可基於一個系統位址SA分別產生彼此不同的第一記憶位址MA1、第二記憶位址MA2及第三記憶位址MA3。第一記憶位址MA1至第三記憶位址MA3可被提供至評估模組120及選擇器115。
選擇器115可根據選擇訊號SEL自第一記憶位址MA1至第三記憶位址MA3選擇記憶位址MA,且可將記憶位址MA輸出至記憶裝置200(圖1所示)。此時,選擇訊號SEL可表示第一位址轉譯模組MD1至第三位址轉譯模組MD3中的哪一者當前已被選擇為位址轉譯器110的位址轉譯模組。
評估模組120可將自處理器300接收的存取請求的數目(即,存取請求計數N(其中N為至少2的整數))設定為窗口大小,且每隔N個存取請求便可對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的記憶資源利用率進行評估。在一些示例性實施例中,評估模組120可分別計算由第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者選擇(或使用)的晶粒組的平均值、所選擇庫的數目以及同一晶粒組及庫中選擇的列的平均值作為第一評估值、第二評估值及第三評估值,且可基於第一評估值至第三評估值來計算資源利用率得分。
舉例而言,當窗口大小被設定成16時,評估模組120可每當請求隊列130中存取請求的數目達到16時便對晶粒組的數目、庫的數目及列的數目進行計數且可基於晶粒組的數目、庫的數目及列的數目來計算及更新資源利用率得分。此將在以下參照圖8至圖9B詳細闡述。
評估模組120可包括多個計數器區塊(例如,第一計數器區塊CB1、第二計數器區塊CB2及第三計數器區塊CB3)及邏輯電路LC。第一計數器區塊CB1至第三計數器區塊CB3可分別接收分別自第一位址轉譯模組MD1至第三位址轉譯模組MD3輸出的第一記憶位址MA1至第三記憶位址MA3。將參照圖5來闡述第一計數器區塊CB1作為實例。
圖5是圖4所示第一計數器區塊的方塊圖。
參照圖5,第一計數器區塊CB1可包括晶粒組計數器121、庫計數器122及列計數器123。晶粒組計數器121、庫計數器122及列計數器123每隔設定窗口大小便可分別對由第一記憶位址MA1選擇的晶粒組、庫及列進行計數。舉例而言,當窗口大小被設定成16時,每當請求隊列130中的項的數目達到16時便可對由16個第一記憶位址MA1表示的晶粒組、庫及列的數目進行計數。
晶粒組計數器121可對由多個第一記憶位址MA1的晶粒組訊號RK表示的晶粒組的數目進行計數並產生晶粒組計數值CV_RK。晶粒組計數值CV_RK可包括晶粒組中的每一者(例如,第一晶粒組及第二晶粒組)的計數值。
庫計數器122可對由多個第一記憶位址MA1的晶粒組訊號RK及庫訊號BK表示的庫的數目進行計數並產生庫計數值CV_BK。舉例而言,當記憶裝置包括兩個晶粒組且在每一晶粒組中包括八個庫時,庫計數值CV_BK可包括選自總共16個庫(即,第一晶粒組的第一庫至第八庫以及第二晶粒組的第一庫至第八庫)的每一個庫的計數值。
列計數器123可對由多個第一記憶位址MA1的晶粒組訊號RK、庫訊號BK及列訊號R表示的列的數目進行計數並產生列計數值CV_R。舉例而言,當在一晶粒組內的一庫中包括八個列時,列計數值CV_R可包括選自128個列(即,16個庫中的每一庫中的八個列)的每一列的計數值。
第二計數器區塊CB2及第三計數器區塊CB3的操作相似於第一計數器區塊CB1的操作。因此,將不再予以贅述。
返回參照圖4,邏輯電路LC可基於自第一計數器區塊CB1至第三計數器區塊CB3接收的計數值來計算第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的資源利用率得分。在一些示例性實施例中,邏輯電路LC可選擇第一位址轉譯模組MD1至第三位址轉譯模組MD3中資源利用率得分最高的位址轉譯模組。在示例性實施例中,處理器300(或配備有記憶體控制器的資料處理系統的CPU)可對第一位址轉譯模組MD1至第三位址轉譯模組MD3之間的資源利用率進行比較並根據比較結果來選擇資源利用率得分最高的位址轉譯模組。
圖6是根據本發明概念示例性實施例的操作記憶體控制器的方法的流程圖。詳言之,圖6示出使用記憶體控制器設定位址轉譯方案的方法。圖6所示方法可在圖1所示記憶體控制器100及圖4所示記憶體控制器100a中實行。因此,參照圖1及圖4作出的說明可適用於本文所述方法。
參照圖6,在操作S110中,記憶體控制器100、100a可基於多個位址轉譯方案中預設設定的位址轉譯方案來實行位址轉譯。可在記憶體控制器或外部儲存器中選擇(例如,預設地)及儲存所述多個位址轉譯方案。在一些示例性實施例中,所述多個位址轉譯方案可由硬體、軟體或其組合來構建。預設值可被設定成使位址轉譯方案中的一者在初始系統啟動時用於位址轉譯。因此,在初始系統啟動時,記憶體控制器100、100a可基於預設設定的位址轉譯方案來實行位址轉譯。
在操作S120中,記憶體控制器100、100a可計算位址轉譯方案中的每一者的資源利用率得分。每隔設定窗口大小便可計算並更新位址轉譯方案中的每一者的資源利用率得分。記憶體控制器100、100a可同時實行操作S110與操作S120。另外,在一些示例性實施例中,記憶體控制器100、100a可實行操作S120作為後台操作。
將參照圖7詳細闡述操作S120。
圖7是圖6所示計算資源利用率得分的方法的流程圖。
參照圖7,在操作S121中,記憶體控制器100、100a可對自使用位址轉譯方案的多個位址轉譯模組中的每一者輸出的晶粒組訊號、庫訊號及/或列訊號進行計數。
在操作S122中,記憶體控制器100、100a可基於計數值來計算第一評估值至第三評估值。第一評估值可與晶粒組選擇相關,第二評估值可與庫選擇相關,且第三評估值可與列選擇相關。舉例而言,第一評估值可表示窗口大小中的所選擇晶粒組的平均值,第二評估值表示所選擇庫的數目,且第三評估值表示相同的晶粒組及相同的庫中的所選擇列的平均值。
在操作S123中,記憶體控制器100、100a可對第一評估值至第三評估值中的每一者應用權重。在計算資源利用率得分的過程中,第一評估值至第三評估值的重要程度可不相同。因此,可對被確定成重要程度較高的評估值應用較高的權重。
在操作S124中,記憶體控制器100、100a可基於加權值來計算資源利用率得分。舉例而言,記憶體控制器可對加權值實行算術運算以計算資源利用率得分。所述方法將參照圖8來詳細闡述。
返回參照圖6,在操作S130中,記憶體控制器100、100a可選擇位址轉譯方案。舉例而言,記憶體控制器100、100a可選擇所述多個位址轉譯方案中資源利用率得分最高的位址轉譯方案。在一些示例性實施例中,除了記憶體控制器100、100a之外,配備有記憶體控制器100、100a的資料處理系統中的另一處理器(例如,主處理器)亦可選擇資源利用率得分最高的位址轉譯方案。可在記憶體控制器100、100a內部的儲存空間(例如,暫存器)或者記憶體控制器100、100a外部的非揮發性記憶體(或儲存器)中儲存及更新關於所選擇的位址轉譯方案的資訊。舉例而言,當資料處理系統進入空閒週期時,可在非揮發性記憶體或記憶體控制器100、100a內部的儲存空間中儲存及更新關於所選擇的位址轉譯方案的資訊。
之後,在操作S140中,記憶體控制器100、100a可基於所選擇的位址轉譯方案來實行位址轉譯。換言之,位址轉譯方案可改變。
當在系統運行時(system runtime)期間位址轉譯方案改變時,儲存於記憶裝置200中的資料可移動至根據發生改變的位址轉譯方案確定的位置。此種資料重新定位可能需要大量時間,且因此,當資料處理系統進入並保持處於空閒週期中所花費的估計時間較資料重新定位花費的時間長時,位址轉譯方案可改變。
作為另外一種選擇,在系統重新啟動時,位址轉譯方案可改變成所選擇的位址轉譯方案。在系統重新啟動時,當驅動系統時,啟動載入器應用非揮發性記憶體中更新的位址轉譯方案,且因此,記憶體控制器100、100a可基於與在系統重新啟動之前使用的位址轉譯方案不同的改變的位址轉譯方案來實行位址轉譯。
同時,記憶體控制器100、100a可重複地實行操作S120至操作S140。因此,記憶體控制器100、100a可基於位址轉譯方案來實行位址轉譯,所述位址轉譯方案是基於使用者的使用模式選擇的。
圖8是用於闡釋用於計算資源利用率得分的評估項以及計算規定實例中的評估項的值的方法的圖。
圖8示出用於基於自第一位址轉譯模組MD1輸出的第一記憶位址MA1來計算第一位址轉譯模組MD1的資源利用率得分的評估項的得分。假設窗口大小是16,記憶裝置中晶粒組的數目是2,每一晶粒組中的庫的數目是8,且每一庫中的列的數目是8。亦假設第一位址轉譯模組MD1(詳言之,自第一位址轉譯模組MD1輸出的第一記憶位址中的每一者)因應於與被指派給1到16的隊列索引QI的存取請求一起接收的系統位址中的每一者來選擇晶粒組、庫及列,如圖8所示。
參照圖8,評估項可包括與記憶位址的晶粒組選擇相關的第一評估值EV1、與記憶位址的庫選擇相關的第二評估值EV2以及與記憶位址的列選擇相關的第三評估值EV3。如上所述,第一評估值EV1表示由第一位址轉譯模組MD1選擇的(或使用的)晶粒組的平均值,第二評估值EV2表示由第一位址轉譯模組MD1選擇的庫的數目,且第三評估值EV3表示相同晶粒組及相同庫中由第一位址轉譯模組MD1選擇的列的平均值。
相對於第一評估值EV1而言,可分析晶粒組0及晶粒組1的分佈,且可計算在窗口大小內平均已選擇了多少個晶粒組。舉例而言,當僅選擇晶粒組0或晶粒組1時,可看出平均選擇一個晶粒組,且1可為第一評估值EV1的最小值。相反,當選擇晶粒組0及晶粒組1中的每一者各八次時,可看出平均選擇兩個晶粒組,且2可為第一評估值EV1的最大值。如圖8所示,當選擇晶粒組0十三次以及選擇晶粒組1三次或者選擇晶粒組0三次以及選擇晶粒組1十三次時,可計算出平均選擇1.38個晶粒組。隨著第一評估值EV1更接近最大值2,記憶體利用率可提高。
第一評估值EV1可被具體地定義為方程式1: EV1=2*(1-(Max(PR0,PR1)−0.5)), (1) 其中PR0是晶粒組0對選擇總數目(例如,16)的選擇比且PR1是晶粒組1對選擇總數目的選擇比。Max(PR0,PR1)意指PR0與PR1中的最大值。同時,方程式1僅為用於計算第一評估值EV1的示例性公式且可作出各種改變。
相對於第二評估值EV2而言,可基於對在晶粒組0及晶粒組1中的每一者中選擇的庫的進行分析的結果來計算在窗口大小內選擇的庫的數目。舉例而言,由於在每一晶粒組中包括八個庫且窗口大小是16,因此第二評估值EV2的最大值可為16且第二評估值的最小值可為1。隨著第二評估值EV2更接近最大值,記憶體利用率可提高。
如圖8所示,在晶粒組0中選擇庫1、庫3及庫7且在晶粒組1中選擇庫0,且因此,第二評估值EV2可為4。
相對於第三評估值EV3而言,可計算在相同晶粒組及相同庫中選擇的列的平均值。第三評估值EV3的最小值可為1(當在同一晶粒組及同一庫中選擇一個列16次時)。由於窗口大小是16,因此第三評估值EV3的最大值可為16。隨著第三評估值EV3更接近最小值,記憶體利用率可提高。
參照圖8,在晶粒組0及庫1中選擇的列的數目是2,在晶粒組0及庫3中選擇的列的數目是5,在晶粒組0及庫7中選擇的列的數目是6,且在晶粒組1及庫0中選擇的列的數目是3。因此,第三評估值EV3可為4。
第一評估值EV1、第二評估值EV2及第三評估值EV3可如上所述進行計算。同時,就提高記憶體利用率而言,第一評估值EV1的重要程度可最高且第三評估值EV3的重要程度可最低。因此,在基於第一評估值EV1至第三評估值EV3來計算資源利用率得分的過程中,可分別對第一評估值EV1至第三評估值EV3應用不同的權重。此時,可對第一評估值EV1應用最高權重且可對第三評估值EV3應用最低權重。
如上所述,隨著第一評估值EV1及第二評估值EV2更接近最大值且第三評估值EV3更接近最小值,記憶體利用率可提高。對應的最大值的近似值可相對於第一評估值EV1及第二評估值EV2中的每一者來計算,且最小值的近似值可相對於第三評估值EV3來計算。針對評估項中的每一者而不同地設定的權重可乘以所計算的近似值中的每一者,且可將乘法結果相加以計算資源利用率得分。
舉例而言,第一評估值EV1的最大值Max_EV1的近似值PXY1可被定義為方程式2: PXY1=1–(Max_EV1–EV1)/(Max_EV1−Min_EV1). (2) 其中Min_EV1是第一評估值EV1的最小值。
第二評估值EV2的最大值Max_EV2的近似值PXY2以與方程式2相似的方式定義且可由此自方程式2導出。
第三評估值EV3的最小值Min_EV3的近似值PXY3可被定義為方程式3: PXY3=(Max_EV3–EV3)/(Max_EV3−Min_EV3). (3) 其中Max_EV3是第三評估值EV3的最大值。
舉例而言,在圖8中,第一評估值EV1的近似值PXY1可被計算為0.38,第二評估值EV2的近似值PXY2可被計算為0.2,且第三評估值EV3的近似值PXY3可被計算為0.8。
當將第一評估值EV1的第一權重設定為0.50,將第二評估值EV2的第二權重設定為0.29,且將第三評估值EV3的第三權重設定為0.21時,第一位址轉譯模組MD1的資源利用率得分RUV可被計算為(0.38*0.5+0.2*0.29+0.8*0.21)*100=41.6。
已參照圖8闡述了計算第一評估值EV1至第三評估值EV3的方法以及基於第一評估值EV1至第三評估值EV3來計算資源利用率得分RUV的方法,但本發明概念的示例性實施例並非僅限於此。計算第一評估值EV1至第三評估值EV3的方法、計算資源利用率得分RUV的方法以及具體數字可作出各種改變。舉例而言,記憶資源利用率是基於至少兩個評估值來計算的。
圖9A及圖9B是根據示例性實施例的更新資源利用率得分的方法的圖。
參照圖9A及圖9B,在自時間點t1開始的時間週期T1期間,第一位址轉譯模組MD1可實行位址轉譯。在時間點t2處系統重新啟動或者可進入空閒週期。如上所述,每隔設定窗口大小便可計算資源利用率得分。當已將窗口大小設定成16時,每當接收到16個存取請求(例如,Q1_1至Q16_1、Q1_2至Q16_2、Q1_3至Q16_3或Q1_4至Q16_4)時,便可計算資源利用率得分。舉例而言,可計算四個資源利用率得分,即,第一資源利用率得分RUV1、第二資源利用率得分RUV2、第三資源利用率得分RUV3及第四資源利用率得分RUV4。
參照圖9A,在改變位址轉譯方案時慮及的最終資源利用率得分RUV可為第一資源利用率得分RUV1至第四資源利用率得分RUV4的平均值。換言之,每當產生資源利用率得分時,便可將新的資源利用率得分與舊的資源利用率得分的平均值儲存為資源利用率得分。因此,使用者的使用模式可累積並反映於資源利用率得分中。
參照圖9B,在一些其他示例性實施例中,記憶體控制器100、100a可利用移動平均值來確定資源利用率得分。舉例而言,可將在時間週期T1期間計算的多個資源利用率得分中期望的(或者,作為另外一種選擇,預定的)數目的最後資源利用率得分的平均數儲存為最終資源利用率得分RUV。在圖9中將最後的兩個資源利用率得分的平均值儲存為最終資源利用率得分RUV,但本發明概念的示例性實施例並非僅限於此。在最終資源利用率得分RUV中反映的資源利用率得分的數目可改變。因此,有限時間週期內的使用者的使用模式可反映於資源利用率得分中。
圖10A至圖10E是用於闡釋根據本發明概念示例性實施例的使用記憶體控制器動態地改變位址轉譯方案的方法的圖,所述位址轉譯方案反映使用模式。
參照圖10A,第一位址轉譯模組MD1至第三位址轉譯模組MD3之間分配給晶粒組的位元的位置及散列函數是不同的。換言之,對第一位址轉譯模組MD1至第三位址轉譯模組MD3分別應用不同的位址轉譯方案。舉例而言,針對第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者,可設定表示系統位址SA的位元中被分配給庫的位元的位置的晶粒組確定方案Rank intlv以及表示散列函數的庫確定方案Bank intlv。此處,BW表示系統位址SA的位元寬度。
可在非揮發性儲存器中選擇及儲存第一位址轉譯模組MD1至第三位址轉譯模組MD3的位址轉譯方案。舉例而言,圖1所示資料處理系統1000亦可包括非揮發性記憶體(或儲存器),且在系統啟動之前,第一位址轉譯模組MD1至第三位址轉譯模組MD3的位址轉譯方案可儲存於非揮發性記憶體中。
參照圖10B,在初始系統啟動時,可預設地選擇第一位址轉譯模組MD1,且第一位址轉譯模組MD1可實行位址轉譯。此時,可基於設定的窗口大小來即時地計算第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的資源利用率得分RUV。第二位址轉譯模組MD2的資源利用率得分RUV是67.13,其為最高的。因此,在空閒週期期間可在非揮發性記憶體中更新及儲存表示第二位址轉譯模組MD2的資源利用率得分RUV最高的符號。之後,當系統重新啟動時,第二位址轉譯模組MD2可實行位址轉譯。
參照圖10C,當第二次啟動系統時,第二位址轉譯模組MD2可實行位址轉譯。此時,可基於窗口大小來即時地計算第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的資源利用率得分RUV。第三位址轉譯模組MD3的資源利用率得分RUV是64.99,其為最高的。因此,在空閒週期期間可在非揮發性記憶體中更新及儲存表示第三位址轉譯模組MD3的資源利用率得分RUV最高的符號。之後,當系統重新啟動時,第三位址轉譯模組MD3可實行位址轉譯。
參照圖10D,當第三次啟動系統時,第三位址轉譯模組MD3可實行位址轉譯。此時,可計算第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者的資源利用率得分RUV。第三位址轉譯模組MD3的資源利用率得分RUV是81,其為最高的。因此,在空閒週期期間可在非揮發性記憶體中更新及儲存表示第三位址轉譯模組MD3的資源利用率得分RUV最高的符號。因此,如圖10E所示,當第四次啟動系統時,第三位址轉譯模組MD3可連續地實行位址轉譯。
圖11是示出記憶體延遲相對於記憶體頁面狀態的曲線圖。
參照圖11,隨著頁面命中率增大或頁面衝突率減小,記憶體延遲可改善。如圖11所示,所有的記憶體訊務皆為頁面命中時與所有的記憶體訊務皆為頁面衝突時之間的延遲差最大可為37.5奈秒(ns)。如上所述,根據本發明概念的示例性實施例,當使用記憶體控制器以及操作記憶體控制器的方法使位址轉譯方案得到改善(或作為另外一種選擇得到最佳化)時,在慮及使用者的使用模式的條件下,頁面命中率可提高(或作為另外一種選擇,得到最大化)而使得記憶體延遲可改善。
圖12是根據本發明概念一些示例性實施例的記憶體控制器的方塊圖。
參照圖12,記憶體控制器100b可包括位址轉譯器110b、唯讀記憶體(read-only memory,ROM)150、評估模組120及請求隊列130。評估模組120的操作及請求隊列130的操作與參照圖4闡述的操作相同。因此,將不再進行贅述,且將集中說明記憶體控制器100a與記憶體控制器100b之間的差異。
多個位址轉譯模組(即,第一位址轉譯模組MD1至第三位址轉譯模組MD3)可由處理電路系統執行軟體或韌體來構建並儲存於ROM 150(或非揮發性儲存器區)中。位址轉譯器110b可由用於執行第一位址轉譯模組MD1至第三位址轉譯模組MD3的專用硬體來構建。
當系統啟動時,第一位址轉譯模組MD1至第三位址轉譯模組MD3可由位址轉譯器110b來執行以使得可實行位址轉譯。如上所述,位址轉譯器110b可基於預設選擇的預設位址轉譯模組(例如,第一位址轉譯模組MD1)來實行位址轉譯,且亦可執行第二位址轉譯模組MD2及第三位址轉譯模組MD3作為後台操作。藉由執行第一位址轉譯模組MD1產生的第一記憶位址MA1可被作為記憶位址MA輸出至記憶裝置。當執行第二位址轉譯模組MD2時,可產生第二記憶位址MA2。當執行第三位址轉譯模組MD3時,可產生第三記憶位址MA3。在一些示例性實施例中,可按照時間順序產生第一記憶位址MA1至第三記憶位址MA3。第一記憶位址MA1至第三記憶位址MA3中的每一者可被提供至第一計數器區塊CB1至第三計數器區塊CB3中的對應一者。
評估模組120可相對於第一位址轉譯模組MD1至第三位址轉譯模組MD3中的每一者來計算資源利用率得分。可在非揮發性記憶體中或位址轉譯器110b內部的暫存器中儲存及更新關於資源利用率得分最高的位址轉譯模組的資訊。
圖13是根據本發明概念一些示例性實施例的記憶體控制器的方塊圖。圖14是基於機器學習設定位址轉譯方案的方法的實例的圖。
參照圖13,記憶體控制器100c可包括位址轉譯器110c、機器學習邏輯160、評估模組120c及請求隊列130。評估模組120c可包括計數器區塊CB及邏輯電路LC。位址轉譯器110c可由專用硬體來構建且可基於預設選擇的位址轉譯方案來實行位址轉譯。儘管圖中未示出,然而使用預設選擇的位址轉譯方案的位址轉譯模組可由執行儲存於ROM(未示出)中的軟體的處理電路系統來構建或者可由硬體來構建。
系統位址SA可被提供至機器學習邏輯160以及實行位址轉譯的位址轉譯器110c。機器學習邏輯160可實行機器學習以及對系統位址SA的模式改變進行分析。另外,機器學習邏輯160可按照時間順序導出多個其他位址轉譯方案。舉例而言,機器學習邏輯160可對大量的系統位址SA中所包括的位元中的每一者的改變模式(例如,位元中的每一者的資料翻轉的模式)進行分析,且可自分析結果導出多個位址轉譯方案。儘管在圖13中機器學習邏輯160包括在記憶體控制器100c中,然而本發明概念的示例性實施例並非僅限於此。機器學習邏輯160可被構建為與記憶體控制器100c分開的組件且可包括在資料處理系統(例如,圖1所示資料處理系統1000)中。
參照圖14,位址轉譯器110c可基於預設位址轉譯方案DTS來實行位址轉譯。評估模組120c可針對預設位址轉譯方案DTS來對記憶資源利用率進行評估。舉例而言,評估模組120c可如上所述計算資源利用率得分。
同時,機器學習邏輯160可對系統位址SA的模式進行分析並在後台操作中基於分析結果來導出位址轉譯方案,例如,第一位址轉譯方案TS1。在藉由基於預設位址轉譯方案DTS實行位址轉譯來產生記憶位址MA的同時,位址轉譯器110c亦可在後台操作中基於第一位址轉譯方案TS1來產生另一記憶位址。評估模組120c可基於根據第一位址轉譯方案TS1產生的記憶位址來針對第一位址轉譯方案TS1計算資源利用率得分。
機器學習邏輯160可基於用於訓練的累積資料(例如,系統位址SA)來按照時間順序導出多個位址轉譯方案。可針對位址轉譯方案中的每一者來計算資源利用率得分。此時,機器學習邏輯160可不僅基於系統位址SA而且亦可基於所計算的資源利用率得分來導出位址轉譯方案。換言之,機器學習邏輯160可基於輸入資料(例如,系統位址SA)以及輸出資料(例如,針對系統位址SA計算的資源利用率得分)來導出可提高記憶體利用率的新的位址轉譯方案。
當新導出的位址轉譯方案的資源利用率得分高於先前導出的位址轉譯方案或預設位址轉譯方案DTS的資源利用率得分時,可儲存關於新導出的位址轉譯方案及資源利用率得分的資訊。所述資訊可儲存於非揮發性記憶裝置中。舉例而言,當由機器學習邏輯160導出的多個位址轉譯方案中的第二位址轉譯方案TS2的資源利用率得分高於預設位址轉譯方案DTS及第一位址轉譯方案TS1的資源利用率得分時,可儲存關於第二位址轉譯方案TS2及第二位址轉譯方案TS2的資源利用率得分的資訊。之後,當由機器學習邏輯160導出的第四位址轉譯方案TS4的資源利用率得分高於預設位址轉譯方案DTS及先前導出的位址轉譯方案(例如,第一位址轉譯方案TS1至第三位址轉譯方案TS3)的資源利用率得分時,可儲存關於第四位址轉譯方案TS4以及第四位址轉譯方案TS4的資源利用率得分的資訊。之後,當在時間點t2處系統重新啟動或進入空閒週期時,位址轉譯方案可改變。在時間週期T1期間評估的關於第一位址轉譯方案TS1至第五位址轉譯方案TS5的資源利用率得分(即,記憶資源利用率)中,第四位址轉譯方案TS4的資源利用率得分最高。因此,在時間點t2之後(即,在時間週期T2期間),位址轉譯器110c可基於第四位址轉譯方案TS4來實行位址轉譯。在時間週期T2期間,機器學習邏輯160亦可藉由訓練導出新的位址轉譯方案。
儘管在示例性實施例中的一些示例性實施例中,對資源利用率得分的計算是由評估模組120c實行的,然而本發明概念的示例性實施例並非僅限於此,且機器學習邏輯160亦可計算資源利用率得分。舉例而言,機器學習邏輯160可包括評估模組120c。
圖15是根據本發明概念示例性實施例的AP的方塊圖。
參照圖15,AP 2000可包括至少一個IP。舉例而言,AP 2000可包括經由系統匯流排280彼此連接的處理器210、ROM 220、神經處理單元(neural processing unit,NPU)230、嵌入式記憶體240、記憶體控制器250、儲存介面(interface,I/F)260及顯示介面270。AP 2000亦可包括其他元件(例如,輸入/輸出裝置),且在AP 2000中可不包括圖15中示出的一些元件。
可使用高階精簡指令集電腦(Reduced Instruction-Set Computer,RISC)機器(Advanced RISC Machine,ARM)高階微控制器匯流排架構(advanced microcontroller bus architecture,AMBA)協定作為AP 2000的系統匯流排280的標準規範。AMBA協定的匯流排類型可包括高階高性能匯流排(advanced high-performance bus,AHB)、高階周邊匯流排(advanced peripheral bus,APB)、高階可擴展介面(advanced extensible interface,AXI)、AXI4及AXI一致性擴展(AXI coherency extension,ACE)。另外,可使用針對系統進行最佳化的另一類型的協定,例如u網路(uNetwork)、核心連接(CoreConnect)或開放式核心協定(Open Core Protocol)。
處理器210可控制AP 2000的所有操作。舉例而言,用於管理AP 2000中的各種IP的操作的軟體可被加載至設置於AP 2000外部的記憶裝置251及/或加載至嵌入式記憶體240,且處理器210可藉由執行所加載的軟體來實行各種管理操作。
在ROM 220中可儲存有啟動載入器。另外,在ROM 220中可儲存有與AP 2000相關的各種設定值。
NPU 230是實行深度學習的操作的操作單元(或神經網路)。當在AP 2000中執行基於深度學習的應用時,NPU 230可實行深度學習的操作,藉此確保性能。舉例而言,當記憶體控制器250藉由機器學習導出位址轉譯方案時,如上所述,NPU 230可實行操作。
儲存介面260可在AP 2000與AP 2000外部的儲存器261之間提供連接。儲存器261可包括非揮發性記憶體。儲存器261可包括當電力中斷時保持其資料的胞元(例如反及快閃記憶胞元或者反或快閃記憶胞元)或者各種類型的非揮發性記憶體,例如MRAM、ReRAM、FRAM或相變記憶體(phase change memory,PCM)。
顯示介面270可在處理器210或GPU(未示出)的控制下向顯示模組271提供影像資料或經更新的影像資料。
記憶裝置251可由揮發性記憶體來構建。在一些示例性實施例中,記憶裝置251可包括揮發性記憶體,例如DRAM及/或靜態RAM(static RAM,SRAM)。
如以上在各種示例性實施例中所述,記憶體控制器250可控制記憶裝置251並將與另一IP(例如,處理器210)的存取請求一起接收的位址(例如,系統位址)轉譯成與記憶裝置251對應的記憶位址。記憶體控制器250可就記憶資源利用率來分別對已根據多個位址轉譯方案經歷位址轉譯的記憶位址中的每一者進行即時地評估及評分並在系統操作期間連續地更新得分。當系統進入空閒週期或重新啟動時,記憶體控制器250可改變位址轉譯方案(例如,改變成得分最高的位址轉譯方案),以使得可使用適用於使用者模式的位址轉譯方案。
記憶體控制器250可包括機器學習邏輯並基於針對輸入系統位址以及位址轉譯方案對記憶體利用率進行評估的結果藉由機器學習來導出提高(或作為另外一種選擇最大化)記憶體利用率的位址轉譯方案。在一些示例性實施例中,機器學習邏輯可與記憶體控制器250分開構建。
同時,為對儲存器261及顯示模組271進行存取,儲存介面260及/或顯示介面270亦可將所接收的位址轉譯成適用於欲被存取的裝置的位址結構。如以上參照記憶體控制器250所述,儲存介面260及/或顯示介面270可就裝置利用率來對已預設選擇的多個位址轉譯方案(或裝置映射方案)進行即時地評估及評分且可基於得分來改變位址轉譯方案。因此,可使用對於各別使用者的使用模式而言得到改善(或作為另外一種選擇得到最佳化)的位址轉譯方案。亦可對其他輸入/輸出裝置應用如上所述選擇位址轉譯方案的方法。
根據本發明概念的示例性實施例,可對基於多個位址轉譯方案產生的多個裝置位址進行即時地評估及評分,可計算位址轉譯方案中的每一者的資源利用率,且可使用具有期望的資源利用率(或作為另外一種選擇,資源利用率最高)的位址轉譯方案來實行位址轉譯,以使得可使用對於使用者的使用模式而言得到改善(或作為另外一種選擇得到最佳化)的位址轉譯方案。因此,記憶裝置以及其他輸入/輸出裝置的利用率及性能可得到提高。
根據一或多個示例性實施例,包括記憶體控制器100的元件(例如位址轉譯器110、評估模組120)以及記憶體控制器100的子元件(例如位址轉譯模組MD1至MD3、計數器區塊CB1至CB3以及邏輯電路LC及選擇器115)的上述單元及/或裝置可使用硬體、硬體與軟體的組合或者儲存可執行以實行上述元件的功能的軟體的非暫態儲存媒體來構建。
硬體可使用例如但不限於以下的處理電路系統來構建:一或多個處理器、一或多個中央處理單元(CPU)、一或多個控制器、一或多個算術邏輯單元(ALU)、一或多個數位訊號處理器(digital signal processor,DSP)、一或多個微電腦、一或多個現場可程式化閘陣列(FPGA)、一或多個系統晶片(SoC)、一或多個可程式化邏輯單元(programmable logic unit,PLU)、一或多個微處理器、一或多個應用專用積體電路(ASIC)或者能夠以所定義的方式對指令作出反應並執行指令的任何另一裝置或其他裝置。
軟體可包括電腦程式、程式代碼、指令或它們的一些組合,以用於獨立地或共同地指示或配置硬體裝置來根據需要操作。電腦程式及/或程式代碼可包括能夠由一或多個硬體裝置(例如以上提及的硬體裝置中的一或多者)來構建的程式或電腦可讀取指令、軟體組件、軟體模組、資料檔案、資料結構等。程式代碼的實例包括由編譯器產生的機器代碼以及使用解釋器執行的更高層階程式代碼二者。
舉例而言,當硬體裝置是電腦處理裝置(例如,一或多個處理器、CPU、控制器、ALU、DSP、微電腦、微處理器等)時,電腦處理裝置可被配置成藉由根據程式代碼實行算術操作、邏輯操作以及輸入/輸出操作來施行所述程式代碼。一旦程式代碼加載至電腦處理裝置中,電腦處理裝置便可被編程為實行程式代碼,藉此將電腦處理裝置轉換成專用電腦處理裝置。在更具體的實例中,當程式代碼加載至處理器中時,處理器變成被編程為實行程式代碼以及與所述程式代碼對應的操作,藉此將處理器轉換成專用處理器。在另一實例中,硬體裝置可為被定制成專用處理電路系統(例如,ASIC)的積體電路。
硬體裝置(例如電腦處理裝置)可運行作業系統(operating system,OS)以及在OS上運行的一或多個軟體應用。電腦處理裝置亦可因應於軟體的執行來存取、儲存、操縱、處理及創建資料。為簡明起見,一或多個示例性實施例可被例示為一個電腦處理裝置;然而,熟習此項技術者將理解,硬體裝置可包括多個處理元件及多種類型的處理元件。舉例而言,硬體裝置可包括多個處理器或一個處理器、及控制器。另外,亦可存在其他處理配置,例如並列處理器。
軟體及/或資料可永久地或暫時地收錄於任何類型的儲存媒體中,所述儲存媒體包括但不限於能夠向硬體裝置提供指令或資料或由硬體裝置解釋的任何機器、組件、實體或虛擬設備或者電腦儲存媒體或裝置。所述軟體亦可經由網路耦合的電腦系統來分發,以使得以分佈式方式儲存及執行軟體。具體而言,例如,軟體及資料可由一或多個電腦可讀取記錄媒體(包括本文中所論述的有形的或非暫態電腦可讀取儲存媒體)儲存。
根據一或多個示例性實施例,儲存媒體亦可以單元及/或裝置的方式包括一或多個儲存裝置。所述一或多個儲存裝置可為有形的或非暫態電腦可讀取儲存媒體,例如隨機存取記憶體(RAM)、唯讀記憶體(ROM)、永久大容量儲存裝置(例如磁碟驅動機)及/或能夠儲存及記錄資料的任何其他類似的資料儲存機制。所述一或多個儲存裝置可被配置成儲存用於一或多個作業系統及/或用於構建本文所述示例性實施例的電腦程式、程式代碼、指令或上述的一些組合。所述電腦程式、程式代碼、指令或上述的一些組合亦可使用驅動機制自單獨的電腦可讀取儲存媒體加載至所述一或多個儲存裝置及/或一或多個電腦處理裝置中。此種單獨的電腦可讀取儲存媒體可包括通用串列匯流排(Universal Serial Bus,USB)快閃驅動機、記憶棒、藍光(Blu-ray)/數位多功能光碟(digital versatile disc,DVD)/光碟唯讀記憶體(compact disk ROM,CD-ROM)驅動機、記憶卡及/或其他類似的電腦可讀取儲存媒體。電腦程式、程式代碼、指令或上述的一些組合可經由網路介面而非經由電腦可讀取儲存媒體自遠端資料儲存裝置加載至所述一或多個儲存裝置及/或所述一或多個電腦處理裝置中。另外,電腦程式、程式代碼、指令或上述的一些組合可經由網路自被配置成傳輸及/或分發電腦程式、程式代碼、指令或上述的一些組合的遠端計算系統加載至所述一或多個儲存裝置及/或所述一或多個處理器中。遠端計算系統可經由有線介面、空氣介面及/或任何其他類似的媒體來傳輸及/或分發電腦程式、程式代碼、指令或上述的一些組合。
所述一或多個硬體裝置、儲存媒體、電腦程式、程式代碼、指令或上述的一些組合可出於示例性實施例的目的而專門設計及構建,或者上述可為出於示例性實施例的目的而更改及/或修改的習知裝置。
儘管已參照本發明概念的示例性實施例具體示出並闡述了本發明概念的示例性實施例,然而應理解,在不背離以下申請專利範圍的精神及範圍的條件下可對其作出形式及細節上的各種改變。
20‧‧‧資料匯流排 21‧‧‧記憶單元陣列 22‧‧‧列解碼器 23‧‧‧讀取/寫入電路 24‧‧‧行解碼器 100、100a、100b、100c‧‧‧記憶體控制器 110、110b、110c‧‧‧位址轉譯器 115、MUX‧‧‧選擇器 120、120c‧‧‧評估模組 121‧‧‧晶粒組計數器 122‧‧‧庫計數器 123‧‧‧列計數器 130‧‧‧請求隊列 150、220‧‧‧唯讀記憶體(ROM) 160‧‧‧機器學習邏輯 200、200a、251‧‧‧記憶裝置 210、300‧‧‧處理器 230‧‧‧神經處理單元(NPU) 240‧‧‧嵌入式記憶體 250‧‧‧記憶體控制器 260‧‧‧儲存介面 261‧‧‧儲存器 270‧‧‧顯示介面 271‧‧‧顯示模組 280‧‧‧系統匯流排 1000‧‧‧資料處理系統 2000‧‧‧應用處理器(AP) Bank intlv‧‧‧庫確定方案 BK‧‧‧庫訊號 BK0‧‧‧第一庫 BK1~BK7‧‧‧第二庫~第八庫 BW‧‧‧位元寬度 C‧‧‧行訊號 C0‧‧‧第一行 C1~C7‧‧‧第二行~第八行 CB‧‧‧計數器區塊 CB1‧‧‧第一計數器區塊/計數器區塊 CB2‧‧‧第二計數器區塊/計數器區塊 CB3‧‧‧第三計數器區塊/計數器區塊 CMD‧‧‧命令 CV_BK‧‧‧庫計數值 CV_R‧‧‧列計數值 CV_RK‧‧‧晶粒組計數值 C/A‧‧‧命令及位址訊號 DATA‧‧‧資料 DTS‧‧‧預設位址轉譯方案 EV1‧‧‧第一評估值 EV2‧‧‧第二評估值 EV3‧‧‧第三評估值 LC‧‧‧邏輯電路 LSB‧‧‧最低有效位元 M1‧‧‧記憶體/第一記憶體 M2‧‧‧記憶體/第二記憶體 M3~M8‧‧‧記憶體/第三記憶體~第八記憶體 M9‧‧‧記憶體/第九記憶體 M10‧‧‧記憶體/第十記憶體 M11~M16‧‧‧記憶體/第十一記憶體~第十六記憶體 Mm‧‧‧記憶體/第m記憶體 MA‧‧‧記憶位址 MA1‧‧‧第一記憶位址 MA2‧‧‧第二記憶位址 MA3‧‧‧第三記憶位址 MD1‧‧‧第一位址轉譯模組/位址轉譯模組 MD2‧‧‧第二位址轉譯模組/位址轉譯模組 MD3‧‧‧第三位址轉譯模組/位址轉譯模組 MSB‧‧‧最高有效位元 Q_1、Q_2、QC‧‧‧存取請求的類型 Q1_1~Q16_1、Q1_2~Q16_2、Q1_3~Q16_3、Q1_4~Q16_4‧‧‧存取請求 QI‧‧‧隊列索引 R‧‧‧列訊號 R0‧‧‧第一列 R1~R7‧‧‧第二列~第八列 Rank intlv‧‧‧晶粒組確定方案 RK‧‧‧晶粒組訊號 RK0‧‧‧第一晶粒組 RK1‧‧‧第二晶粒組 RQ‧‧‧存取請求 RUV‧‧‧資源利用率得分/最終資源利用率得分 RUV1‧‧‧第一資源利用率得分 RUV2‧‧‧第二資源利用率得分 RUV3‧‧‧第三資源利用率得分 RUV4‧‧‧第四資源利用率得分 S110、S120、S121、S122、S123、S124、S130、S140‧‧‧操作 SA、SA_1、SA_2‧‧‧系統位址 SEL‧‧‧選擇訊號 t1、t2‧‧‧時間點 T1、T2‧‧‧時間週期 TS1‧‧‧第一位址轉譯方案 TS2‧‧‧第二位址轉譯方案 TS3‧‧‧第三位址轉譯方案 TS4‧‧‧第四位址轉譯方案 TS5‧‧‧第五位址轉譯方案
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的示例性實施例,在附圖中: 圖1是根據本發明概念示例性實施例包括記憶體控制器的資料處理系統的方塊圖。 圖2是用於闡釋位址轉譯方案的實例的圖。 圖3A及圖3B是用於闡釋圖1所示記憶裝置的實例的圖。 圖4是根據本發明概念示例性實施例的記憶體控制器的方塊圖。 圖5是圖4所示第一計數器區塊的方塊圖。 圖6是根據本發明概念示例性實施例的操作記憶體控制器的方法的流程圖。 圖7是圖6所示計算資源利用率得分的方法的流程圖。 圖8是用於闡釋用於計算資源利用率得分的評估項以及計算規定實例中的評估項的值的方法的圖。 圖9A及圖9B是根據示例性實施例的更新資源利用率得分的方法的圖。 圖10A至圖10E是用於闡釋根據本發明概念示例性實施例的使用記憶體控制器動態地改變位址轉譯方案的方法的圖,所述位址轉譯方案反映使用模式。 圖11是示出記憶體延遲相對於記憶體頁面狀態的曲線圖。 圖12是根據本發明概念一些示例性實施例的記憶體控制器的方塊圖。 圖13是根據本發明概念一些示例性實施例的記憶體控制器的方塊圖。 圖14是基於機器學習設定位址轉譯方案的方法的實例的圖。 圖15是根據本發明概念示例性實施例的應用處理器的方塊圖。
100a‧‧‧記憶體控制器
110‧‧‧位址轉譯器
115‧‧‧選擇器
120‧‧‧評估模組
130‧‧‧請求隊列
CB1‧‧‧第一計數器區塊/計數器區塊
CB2‧‧‧第二計數器區塊/計數器區塊
CB3‧‧‧第三計數器區塊/計數器區塊
LC‧‧‧邏輯電路
MA‧‧‧記憶位址
MA1‧‧‧第一記憶位址
MA2‧‧‧第二記憶位址
MA3‧‧‧第三記憶位址
MD1‧‧‧第一位址轉譯模組/位址轉譯模組
MD2‧‧‧第二位址轉譯模組/位址轉譯模組
MD3‧‧‧第三位址轉譯模組/位址轉譯模組
Q_1、Q_2、QC‧‧‧存取請求的類型
QI‧‧‧隊列索引
SA、SA_1、SA_2‧‧‧系統位址
SEL‧‧‧選擇訊號

Claims (20)

  1. 一種記憶體控制器被配置成控制記憶裝置,所述記憶體控制器包括:處理電路系統,被配置成:基於第一位址轉譯方案來將自主機處理器接收的第一位址轉譯成與所述記憶裝置相關聯的第二位址,所述第一位址轉譯方案基於記憶資源利用率而選自多個位址轉譯方案中;以及基於使用所述多個位址轉譯方案產生的多個記憶位址來評估所述多個位址轉譯方案中的每一者的所述記憶資源利用率,使得所述處理電路系統在基於所述第一位址轉譯方案將所述第一位址轉譯成所述第二位址的同時,評估所述多個位址轉譯方案中的每一者的所述記憶資源利用率。
  2. 如申請專利範圍第1項所述的記憶體控制器,其中所述處理電路系統被配置成基於第一評估值、第二評估值及第三評估值中的至少兩者來計算所述記憶資源利用率,且其中:在所述多個位址轉譯方案中的每一者中,所述第一評估值、所述第二評估值及所述第三評估值分別是基於所述多個記憶位址的晶粒組選擇、庫選擇及列選擇而計算的。
  3. 如申請專利範圍第2項所述的記憶體控制器,其中所述處理電路系統被配置成基於第一值與第二值之和來計算所述記憶資源利用率,其中:所述第一值是藉由對所述第一評估值應用第一權重來獲 得的,且所述第二值是藉由對所述第二評估值應用第二權重來獲得的,所述第一權重大於所述第二權重。
  4. 如申請專利範圍第1項所述的記憶體控制器,其中所述處理電路系統被配置成:在與所述第一位址轉譯方案相關聯的第一週期的期間對所述多個位址轉譯方案中的每一者的所述記憶資源利用率進行評估;以及在第二週期期間基於第二位址轉譯方案來實行位址轉譯,所述第二位址轉譯方案是基於在所述第一週期的期間計算的所述多個位址轉譯方案中的每一者的所述記憶資源利用率來選擇的。
  5. 如申請專利範圍第4項所述的記憶體控制器,其中所述處理電路系統被配置成在所述第一週期之後因應於所述記憶體控制器的重新啟動而將位址轉譯方案自所述第一位址轉譯方案改變成所述第二位址轉譯方案。
  6. 如申請專利範圍第4項所述的記憶體控制器,其中所述處理電路系統被配置成因應於在所述第一週期之後進入空閒週期而將位址轉譯方案自所述第一位址轉譯方案改變成所述第二位址轉譯方案。
  7. 如申請專利範圍第1項所述的記憶體控制器,其中所述處理電路系統被配置成:使用不同的位址轉譯方案來實行位址轉譯以產生所述多個記憶位址; 藉由對與所述多個記憶位址相關聯的晶粒組、庫及列進行計數來產生計數值,所述晶粒組、所述庫及所述列是由所述多個記憶位址選擇的;以及基於所述計數值來計算表示所述記憶資源利用率的利用率得分。
  8. 如申請專利範圍第7項所述的記憶體控制器,其中所述處理電路系統被配置成針對N個記憶位址對所述晶粒組、所述庫及所述列進行計數,其中N為至少2的整數。
  9. 如申請專利範圍第1項所述的記憶體控制器,其中所述處理電路系統被配置成基於多個第一位址來實行機器學習以按時間順序導出所述多個位址轉譯方案,所述多個第一位址是自所述主機處理器接收的。
  10. 如申請專利範圍第9項所述的記憶體控制器,其中所述處理電路系統被配置成基於所述多個第一位址中所包括的位元的變化模式而導出所述多個位址轉譯方案。
  11. 一種應用處理器,包括:主機處理器,被配置成提供存取請求及第一位址;以及記憶體控制器,被配置成:基於選自多個位址轉譯方案的第一位址轉譯方案來實行位址轉譯以將所述第一位址轉譯成與記憶位址相關聯的第二位址;在第一時間週期的期間在基於所述第一位址轉譯方案來 實行所述位址轉譯的同時,基於使用所述多個位址轉譯方案產生的多個記憶位址來計算表示所述多個位址轉譯方案中的每一者的記憶資源利用率的資源利用率得分;以及在第二時間週期的期間基於第二位址轉譯方案來實行所述位址轉譯以將所述第一位址轉譯成所述第二位址以使得在所述第一時間週期的期間所述第二位址轉譯方案的所述記憶資源利用率在所述多個位址轉譯方案中最高,所述第二時間週期在所述第一時間週期之後。
  12. 如申請專利範圍第11項所述的應用處理器,其中所述記憶體控制器被配置成:在所述第二時間週期的期間重新計算所述多個位址轉譯方案中的每一者的所述資源利用率得分;以及在所述第二時間週期之後的第三時間週期的期間基於第三位址轉譯方案來實行所述位址轉譯,以使得在所述第二時間週期的期間所述第三位址轉譯方案的所述記憶資源利用率在所述多個位址轉譯方案中最高,所述第三時間週期在所述第二時間週期之後。
  13. 如申請專利範圍第11項所述的應用處理器,其中所述記憶體控制器被配置成基於根據所述多個位址轉譯方案中所選擇的一者而產生的所述多個記憶位址來計算所述多個位址轉譯方案的所述資源利用率得分。
  14. 如申請專利範圍第11項所述的應用處理器,其中所述記憶體控制器被配置成基於根據晶粒組選擇而計算的第一評估 值、根據庫選擇而計算的第二評估值以及根據列選擇而計算的第三評估值來計算所述資源利用率得分。
  15. 如申請專利範圍第11項所述的應用處理器,其中所述記憶體控制器被配置成:使用所述多個位址轉譯方案中不同的位址轉譯方案來實行所述位址轉譯以產生所述多個記憶位址;以及基於所述多個記憶位址來計算所述多個位址轉譯方案中的每一者的所述資源利用率得分。
  16. 如申請專利範圍第15項所述的應用處理器,其中所述記憶體控制器被配置成:藉由對基於所述多個記憶位址而選擇的晶粒組、庫及列進行計數來產生計數值;以及基於所述計數值來計算所述資源利用率得分。
  17. 如申請專利範圍第11項所述的應用處理器,其中所述記憶體控制器被配置成:對針對所述多個位址轉譯方案而計算的資源利用率得分進行比較;以及基於所述資源利用率得分來選擇所述第二位址轉譯方案以使得所述第二位址轉譯方案的所述記憶資源利用率在所述多個位址轉譯方案中最高。
  18. 如申請專利範圍第11項所述的應用處理器,其中表示所述第二位址轉譯方案的所述記憶資源利用率在所述多個位址轉 譯方案中最高的資訊儲存在儲存裝置中,且所述記憶體控制器被配置成在所述第一時間週期之後的重新啟動時基於自所述儲存裝置加載的所述資訊而自所述第一位址轉譯方案改變成所述第二位址轉譯方案。
  19. 一種操作記憶體控制器以將系統位址轉譯成與記憶裝置相關聯的記憶位址的方法,所述方法包括:基於選自多個轉譯方案候選項中的第一位址轉譯方案來將所述系統位址轉譯成所述記憶位址;在基於所述第一位址轉譯方案將所述系統位址轉譯成所述記憶位址的同時,基於使用所述多個轉譯方案候選項產生的多個記憶位址來計算所述多個轉譯方案候選項的每一者的資源利用率得分;基於在基於所述第一位址轉譯方案將所述系統位址轉譯成所述記憶位址的同時所計算的所述資源利用率得分來自所述多個轉譯方案候選項選擇最高資源利用率的下一位址轉譯方案;將位址轉譯方案改變成所述下一位址轉譯方案;以及基於所述下一位址轉譯方案來將所述系統位址轉譯成所述記憶位址。
  20. 如申請專利範圍第19項所述的方法,其中計算所述資源利用率得分包括:基於所述多個轉譯方案候選項中的每一者來產生與多個系統位址對應的多個記憶位址候選項; 藉由對與所述多個記憶位址候選項中不同的記憶位址候選項相關聯的記憶資源的改變進行監測來產生監測結果;以及基於所述監測結果來計算所述資源利用率得分。
TW108104639A 2018-02-12 2019-02-12 用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法 TWI791765B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180017059A KR102540964B1 (ko) 2018-02-12 2018-02-12 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작
KR10-2018-0017059 2018-02-12

Publications (2)

Publication Number Publication Date
TW201937374A TW201937374A (zh) 2019-09-16
TWI791765B true TWI791765B (zh) 2023-02-11

Family

ID=67399862

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108104639A TWI791765B (zh) 2018-02-12 2019-02-12 用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法

Country Status (6)

Country Link
US (1) US10846233B2 (zh)
KR (1) KR102540964B1 (zh)
CN (1) CN110162491B (zh)
DE (1) DE102019103114A1 (zh)
SG (1) SG10201901162PA (zh)
TW (1) TWI791765B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042490B2 (en) * 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11036434B2 (en) * 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory systems
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
US11442631B2 (en) * 2019-12-26 2022-09-13 Micron Technology, Inc. Memory operations with consideration for wear leveling
WO2022018466A1 (en) * 2020-07-22 2022-01-27 Citrix Systems, Inc. Determining server utilization using upper bound values
KR20220032808A (ko) 2020-09-08 2022-03-15 삼성전자주식회사 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치
TWI768731B (zh) * 2021-02-25 2022-06-21 威盛電子股份有限公司 電腦系統

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132704A1 (en) * 2010-09-10 2013-05-23 Rambus Inc. Memory controller and method for tuned address mapping
US20150220137A1 (en) * 2011-09-19 2015-08-06 Marvell World Trade Ltd. Systems and Methods for Monitoring and Managing Memory Blocks to Improve Power Savings
US20180137909A1 (en) * 2005-09-26 2018-05-17 Rambus Inc. Memory System Topologies Including A Buffer Device And An Integrated Circuit Memory Device

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710531B1 (ko) * 1998-11-16 2007-04-23 인피네온 테크놀로지스 아게 범용 리소스 접근 제어기
US6356988B1 (en) 1999-01-07 2002-03-12 Nec Corporation Memory access system, address converter, and address conversion method capable of reducing a memory access time
US6381669B1 (en) 1999-12-27 2002-04-30 Gregory V. Chudnovsky Multi-bank, fault-tolerant, high-performance memory addressing system and method
DE60238519D1 (de) 2001-01-12 2011-01-20 Nxp Bv Einheit und verfahren zur speicheradressenübersetzung und bildverarbeitungsvorrichtung mit einer solchen einheit
KR100437609B1 (ko) 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
US8135936B2 (en) 2009-12-23 2012-03-13 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
JP2008112292A (ja) 2006-10-30 2008-05-15 Hitachi Ltd ストレージシステム及びストレージシステムの電源供給制御方法
JP2008242999A (ja) 2007-03-28 2008-10-09 Hitachi Ltd 情報処理装置およびメモリダンプ方法
US7870363B2 (en) 2007-12-28 2011-01-11 Intel Corporation Methods and arrangements to remap non-volatile storage
US8386747B2 (en) 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation
US9026767B2 (en) * 2009-12-23 2015-05-05 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US8799553B2 (en) 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
KR101766833B1 (ko) 2010-08-16 2017-08-09 에스프린팅솔루션 주식회사 화상형성장치 및 가상 메모리 주소를 물리 메모리 주소로 변환하는 방법
US8464023B2 (en) * 2010-08-27 2013-06-11 International Business Machines Corporation Application run-time memory optimizer
KR101242195B1 (ko) 2011-02-25 2013-03-11 서울대학교산학협력단 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
US9405681B2 (en) 2011-12-28 2016-08-02 Intel Corporation Workload adaptive address mapping
US9256550B2 (en) 2012-03-28 2016-02-09 International Business Machines Corporation Hybrid address translation
KR101975029B1 (ko) * 2012-05-17 2019-08-23 삼성전자주식회사 리프레쉬 주기를 조절하는 반도체 메모리 장치, 메모리 시스템 및 그 동작방법
US9218285B2 (en) * 2012-11-26 2015-12-22 Arm Limited Variable mapping of memory accesses to regions within a memory
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
JP6102632B2 (ja) 2013-08-14 2017-03-29 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
US10210096B2 (en) 2013-10-01 2019-02-19 Ampere Computing Llc Multi-stage address translation for a computing device
CN104750614B (zh) * 2013-12-26 2018-04-10 伊姆西公司 用于管理存储器的方法和装置
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US20160062911A1 (en) 2014-08-27 2016-03-03 Advanced Micro Devices, Inc. Routing direct memory access requests in a virtualized computing environment
US20170322889A1 (en) * 2014-11-25 2017-11-09 Hewlett Packard Enterprise Development Lp Computing resource with memory resource memory management
KR102190125B1 (ko) 2014-12-05 2020-12-11 삼성전자주식회사 어드레스 리매핑을 위한 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 어드레스 리매핑 방법
TWI804466B (zh) * 2016-05-20 2023-06-11 南韓商三星電子股份有限公司 擷取記憶體中儲存的資料的方法與去重複模組
US10372618B2 (en) * 2016-10-14 2019-08-06 Arm Limited Apparatus and method for maintaining address translation data within an address translation cache
US10552338B2 (en) * 2017-02-21 2020-02-04 Arm Limited Technique for efficient utilisation of an address translation cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180137909A1 (en) * 2005-09-26 2018-05-17 Rambus Inc. Memory System Topologies Including A Buffer Device And An Integrated Circuit Memory Device
US20130132704A1 (en) * 2010-09-10 2013-05-23 Rambus Inc. Memory controller and method for tuned address mapping
US20150220137A1 (en) * 2011-09-19 2015-08-06 Marvell World Trade Ltd. Systems and Methods for Monitoring and Managing Memory Blocks to Improve Power Savings

Also Published As

Publication number Publication date
DE102019103114A1 (de) 2019-08-14
CN110162491B (zh) 2023-08-04
CN110162491A (zh) 2019-08-23
SG10201901162PA (en) 2019-09-27
US20190251038A1 (en) 2019-08-15
KR102540964B1 (ko) 2023-06-07
KR20190097528A (ko) 2019-08-21
TW201937374A (zh) 2019-09-16
US10846233B2 (en) 2020-11-24

Similar Documents

Publication Publication Date Title
TWI791765B (zh) 用於控制輸入/輸出裝置的利用率與性能的記憶體控制器與應用處理器以及操作記憶體控制器的方法
KR102147905B1 (ko) 어드레스 기반의 멀티-스트림 스토리지 장치 액세스
TWI752620B (zh) 與記憶體類型相關的頁表
KR101175906B1 (ko) 메모리 맵핑 방법과 컴퓨팅 장치 및 이의 제조물품
US11868268B2 (en) Mapping non-typed memory access to typed memory access
US10943183B2 (en) Electronics device performing software training on memory channel and memory channel training method thereof
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
TWI719654B (zh) 閃存實體資源集合管理裝置及方法以及電腦程式產品
JP7049476B2 (ja) ハイブリッドメモリシステム
US20180018095A1 (en) Method of operating storage device and method of operating data processing system including the device
US9202548B2 (en) Efficient PCMS refresh mechanism
EP3869343A1 (en) Storage device and operating method thereof
US10649925B2 (en) Indirect data return from memory controller logic
CN116483254A (zh) 空间证明区块链系统中的冷存储分区管理