TWI503662B - 記憶體控制裝置及方法 - Google Patents

記憶體控制裝置及方法 Download PDF

Info

Publication number
TWI503662B
TWI503662B TW101150622A TW101150622A TWI503662B TW I503662 B TWI503662 B TW I503662B TW 101150622 A TW101150622 A TW 101150622A TW 101150622 A TW101150622 A TW 101150622A TW I503662 B TWI503662 B TW I503662B
Authority
TW
Taiwan
Prior art keywords
memory
address
group
address group
mapping
Prior art date
Application number
TW101150622A
Other languages
English (en)
Other versions
TW201426304A (zh
Inventor
Mao Yin Wang
Juin Ming Lu
Original Assignee
Ind Tech Res Inst
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 Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW101150622A priority Critical patent/TWI503662B/zh
Priority to CN201310039110.4A priority patent/CN103902013B/zh
Priority to US13/889,773 priority patent/US9165635B2/en
Publication of TW201426304A publication Critical patent/TW201426304A/zh
Application granted granted Critical
Publication of TWI503662B publication Critical patent/TWI503662B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40622Partial refresh of memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4067Refresh in standby or low power modes
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Description

記憶體控制裝置及方法
本提案係關於一種記憶體控制裝置,用以控制具有部分陣列自我更新(Partial Array Self Refresh,PASR)功能的記憶體的記憶體控制裝置。
可攜式裝置功能持續增加,效能與電池續航力也必須對應地提升。設計這些裝置中面臨如何降低功耗使其延長電池壽命及待機時間的問題。從另一趨勢來看,智慧手機市場同時也帶動記憶體出貨量的成長。在未來可攜式裝置的記憶體容量需求將愈來愈大,因此如何降低記憶體功耗課題更加受到重視。
對於可攜式裝置的記憶體功耗,目前尚未存在有效地利用部分陣列自我更新(Partial Array Self Refresh,PASR)功能降低記憶體功耗的技術。
本提案提供配置於一計算機的一種記憶體控制裝置,其用以控制計算機中具有部分陣列自我更新(Partial Array Self Refresh,PASR)功能且具有多個記憶段(segment)的記憶體。計算機可操作於一正常模式以及一休眠或待命模式(sleep or standby mode)。
根據一實施範例,記憶體控制裝置包括一PASR組態暫存器(PASR configuration register)、一位址映射器(address remapper)、一位址解碼器以及一位址選擇器(address selector)。
PASR組態暫存器用以儲存一PASR組態,PASR組態包括多個PASR組態位元,且PASR組態位元與記憶段個別對應。位址映射器用以接收一輸入位址組,將輸入位址組轉換成一映射位址組(mapped address set),並輸出映射位址組。其中映射位址組包括連續或落於一限定範圍內的至少一映射位址。
根據一實施範例,位址映射器於正常模式時接收輸入位址組以及一位址偏移(address offset)。而位址映射器可依據位址偏移將輸入位址組轉換成映射位址組。
位址解碼器耦接於PASR組態暫存器以及位址映射器。位址解碼器用以於正常模式時接收映射位址組以及PASR組態,依據映射位址組去更新PASR組態,且將更新完的PASR組態回存於PASR組態暫存器。位址選擇器耦接記憶體、PASR組態暫存器以及位址映射器。位址選擇器用以於正常模式時,接收映射位址組並據以產生用以存取記憶體的一更新位址組。位址選擇器用以於休眠或待命模式時,接收更新完的PASR組態並據以產生更新位址組。位址選擇器並依據更新位址組設定記憶體的至少一模式暫存器,以讓記憶體自我更新PASR組態對應的至少一個記憶段。
根據另一實施範例,位址映射器用以於正常模式時接收輸入位址組、多個預設位址以及多個查找位址,依據輸入位址組、預設位址以及這些查找位址將輸入位址組轉換成映射位址組,並輸出映射位址組。其中映射位址組包括連續或落於限定範圍內的至少一個映射位址。
位址解碼器耦接於PASR組態暫存器以及位址映射器。位址解碼器用以於正常模式時接收輸入位址組以及PASR組態,並依據輸入位址組以及PASR組態更新PASR組態,且將更新完的PASR組態回存於PASR組態暫存器。
位址選擇器耦接記憶體、PASR組態暫存器以及位址映射器。位址選擇器用以於正常模式時,接收映射位址組並據以產生用以存取記憶體的更新位址組。且位址選擇器用以於休眠或待命模式時,接收更新完的PASR組態並據以產生更新位址組,並依據更新位址組設定記憶體的至少一個模式暫存器,以讓記憶體自我更新對應的至少一個記憶段。
根據又一實施範例,記憶體控制裝置包括一備份記憶單元、一休眠旗標、PASR組態暫存器、一控制器、位址解碼器以及位址選擇器。休眠旗標用以記錄包含記憶體的計算機是否處於休眠或待命模式或是正常模式。PASR組態暫存器用以儲存PASR組態,PASR組態包括多個PASR組態位元,PASR組態位元與記憶段個別對應。控制器耦接記憶體、休眠旗標、位址選擇器、位址解碼器以及備份記憶單元。控制器用以於休眠或待命模式時,產生用來存取記憶體的控制器輸出位址組,並將控制器輸出位址組對應的至少一個記憶段的內容複製到備份記憶單元。
位址解碼器耦接於休眠旗標、控制器以及PASR組態暫存器。位址解碼器用以於休眠或待命模式時更新PASR組態中與控制器輸出位址組對應的至少一個PASR組態位元,並將更新完的PASR 組態回存於PASR組態暫存器。位址選擇器耦接記憶體、PASR組態暫存器以及控制器。
位址選擇器耦接記憶體、PASR組態暫存器以及控制器。位址選擇器用以於休眠或待命模式時,接收控制器輸出位址組或更新完的PASR組態並據以產生更新位址組,以讓記憶體依據更新位址組自我更新PASR組態對應的至少一個記憶段。
此外,本提案並提供一記憶體控制方法,用以控制計算機中具有PASR功能的記憶體。其中計算機可操作於正常模式以及休眠或待命模式,記憶體包括多個記憶段。記憶體控制方法包括以下步驟。接收輸入位址組。將輸入位址組轉換成映射位址組,其中映射位址組包括連續或落於限定範圍內的至少一個映射位址。
當於正常模式時,記憶體控制方法執行以下步驟。依據映射位址組更新PASR組態,其中PASR組態包括多個PASR組態位元,這些PASR組態位元與記憶段個別對應。將更新完的PASR組態回存。依據映射位址組產生用以存取記憶體的更新位址組。
而當於休眠或待命模式時,記憶體控制方法執行以下步驟。依據更新完的PASR組態產生更新位址組。依據更新位址組設定記憶體的至少一個模式暫存器。依據模式暫存器讓記憶體自我更新PASR組態對應的至少一個記憶段。
綜上所述,可以透過將寫入資料集中存放於連續或限定範圍的記憶段,或是透過備份資料的方式,減少休眠或待命模式時需要進行自我更新的記憶段或記憶組的數量,進而降低記憶體在計 算機休眠或待命模式所耗費的功耗。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。
本提案提供一種記憶體控制裝置,其用以控制具有部分陣列自我更新(Partial Array Self Refresh,PASR)功能且具有多個記憶段(segment)的記憶體。
首先請參照「第1圖」,其係為一實施範例之記憶體控制裝置之方塊示意圖。根據一實施範例,記憶體控制裝置30包括一PASR組態暫存器(PASR configuration register)31、一位址映射器(address remapper)32、一位址解碼器33以及一位址選擇器(address selector)34。記憶體40可以例如是具有PASR功能的動態隨機存取記憶(Dynamic Random Access Memory,DRAM)、同步動態隨機存取記憶體(Synchronous Dynamic Random Access Memory,SDRAM)或是混合動態隨機存取記憶體及靜態隨機存取記憶體(Static Random Access Memory,SRAM)。
記憶體控制裝置30以及記憶體40可配置於一計算機(computer),計算機可以是可攜式(portable)或是不可攜式;且計算機可操作於一正常模式以及一休眠或待命模式(sleep or stand-by mode,或sleep or idle mode)。
PASR組態暫存器31用以儲存一PASR組態p_config。PASR組態p_config包括多個PASR組態位元,且這些PASR組態位元與記憶體40的記憶段42個別對應。更詳細地說,記憶段42可以是記憶體40所使用的最小存取單位,而這些PASR組態位元個別與這些記憶體40的最小存取單位對應。
PASR組態位元的值可以是0或1,一般而言,PASR組態位元的值為0代表對應的記憶段42在有包含記憶體40及記憶體控制裝置30的計算機進入休眠或待命模式時需要進行自我更新,PASR組態位元的值為1代表對應的記憶段42在進入休眠或待命模式時不需要進行自我更新。此外,PASR組態暫存器31也可以以有限狀態機(Finite State Machine,FSM)實作。
位址映射器32耦接於位址解碼器33及位址選擇器34。位址映射器32於正常模式時接收一輸入位址組(input address set)in_addr,且輸入位址組in_addr可包括至少一輸入位址,表示原先預定將資料寫入哪一個記憶段42。位址映射器32將輸入位址組in_addr轉換成一映射位址組(mapped address set)re_addr,並輸出映射位址組re_addr。其中映射位址組re_addr包括連續或落於一限定範圍內的至少一映射位址。
根據一實施範例,位址映射器32可以是利用一算術邏輯(Arithmetic Logic)電路實作。位址映射器32於正常模式時接收輸入位址組in_addr以及一位址偏移(address offset)addr_offset。而位址映射器32可依據位址偏移address_offset將輸入位址組 in_addr轉換成映射位址組re_addr。於本實施範例中,所有PASR組態位元的初始值可以是1;代表記憶體40剛啟動時所有的記憶段42中都還沒有儲存資料,因此都不需執行自我更新。
位址解碼器33耦接於PASR組態暫存器31以及位址映射器32。位址解碼器33用以於寫入資料時接收映射位址組re_addr以及PASR組態p_config,依據映射位址組re_addr輸出PASR組態更新信號p_config1去更新PASR組態暫存器31目前內存的PASR組態p_config。在位址映射器32產生映射位址組re_addr之後,位址解碼器33也可依據輸入位址組in_addr被映射的情況輸出PASR組態更新信號p_config1去更新PASR組態暫存器31目前內存的PASR組態p_config,進而控制哪些記憶段42需要在計算機進入休眠或待命模式時進行自我更新。
位址選擇器34耦接記憶體40、位址映射器32以及PASR組態暫存器31。位址選擇器34在計算機處於正常模式時,接收映射位址組re_addr並據以產生用以存取記憶體40的一更新位址組u_addr。位址選擇器34於休眠或待命模式時,接收更新完的PASR組態p_config並據以產生更新位址組u_addr。位址選擇器34並設定記憶體40的至少一模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。
簡而言之,位址映射器32可以被用來產生用以存取記憶體40的位址。且藉由產生連續或是落於限定範圍內的映射位址組re_addr,使得資料能被寫入連續的記憶段42或是特定的記憶段 42。因此就記憶體40整體觀之,資料會被集中在特定的一個或多個記憶段42。故其餘未寫入任何資料的記憶段42不需在休眠或待命模式中進行自我更新,而可予以斷電以節省記憶體40在系統休眠或待命模式中的功率消耗。
根據一實施範例,記憶體控制裝置30另可包括一控制器35,如「第2圖」所示。控制器35可耦接記憶體40、位址映射器32以及位址選擇器34。記憶體40可包括m個記憶組(bank)41_1到41_m(以下簡稱記憶組41),一個記憶組41可包括n個記憶段42_1到42_n,其中m與n都是大於1的正整數。
控制器35可用以從位址映射器32接收映射位址組re_addr,並輸出轉送的映射位址組re_addr1,以將接收的映射位址組re_addr轉送給位址選擇器34。位址選擇器34於正常模式時,接收轉送的映射位址組re_addr1並據以產生用以存取記憶體40的更新位址組u_addr。而於休眠或待命模式時,位址選擇器34可接收更新完的PASR組態p_config並據以產生更新位址組u_addr,以設定記憶體40的模式暫存器43以讓記憶體40自我更新對應的至少一個記憶段42。
且控制器35可在計算機於正常模式時對記憶體40進行資料的讀寫。換言之,記憶體40在進行一般性的資料寫入或讀取時都是屬於正常模式。控制器35可具有一般的一位址佇列(queue)、一命令佇列、一寫入資料佇列、一讀取資料佇列、一記憶體有限狀態機控制單元、一位址產生器、一命令產生器、一寫入資料先 進先出(First In First Out,FIFO)緩衝器以及一讀取資料FIFO緩衝器。
記憶體控制裝置30可透過一外部匯流排(bus)52與一處理器50耦接,並從處理器50接收輸入位址組in_addr以及一讀寫信號WR。依據讀寫信號WR,可將記憶體40設定成正常模式下的一寫入模式或是一讀取模式。須注意的是,正常模式以及休眠或待命模式係為計算機的工作模式;而寫入模式以及讀取模式係為記憶體40的工作模式。
記憶體控制裝置30並可透過外部匯流排52從處理器50接收一寫入資料w_data的信號、一控制信號ctrl以及一重置信號reset;也可透過外部匯流排52將一讀取資料r_data的信號以及一狀態信號status傳送給處理器50。而處理器50可以是一中央處理器(Central Processing Unit,CPU)。
請參照「第3A圖」,其係為一實施範例之位址映射器之示意圖。於本實施範例中,位址映射器32可包括一第一運算單元321。第一運算單元321可以用以將輸入位址組in_addr以及位址偏移addr_offset相加成為映射位址組re_addr,並將映射位址組re_addr輸出給控制器35。如此一來,輸入位址組in_addr會經由平移(shift)或旋轉(rotation)運算被轉換成映射位址組re_addr。
其中第一運算單元321可以以組合電路(combinational circuit)的方式實作;更進一步地說,第一運算單元321可以是一個加法器(adder)。若以實作為加法器,可不管進位或溢位,只留下與輸 入位址組in_addr和位址偏移addr_offset相同的位元數目。且輸入位址組in_addr可以是處理器50用以存取記憶體40用的一控制位址組,或是只是控制位址組的一部分。
例如控制位址組中的每一控制位址的長度可能是16位元,但可以只取其中用以指定記憶段42的最後10位元或6位元進行運算。且第一運算單元321也可以從運算得到映射位址組re_addr中只取部分的位元提供控制器35。假設記憶體40中一共有64個記憶段42,則只需要6位元的位址就可以特定任何一個記憶段42,因此位址映射器32最終可以只輸出6位元的映射位址組re_addr。
第一運算單元321並可將輸入位址組in_addr的部分訊號作為其餘給控制器35的控制位址。假設控制位址的長度是16位元,而依據上述方式得到6位元的映射位址組re_addr。第一運算單元321可從輸入位址組in_addr中取出位置不與映射位址組re_addr對應的10位元,並將取出的10位元補入映射位址組re_addr作為輸出給控制器35的控制位址。
而位址偏移addr_offset可以依據記憶體40的系統配置,或是依據計算機使用的作業系統開機及執行的應用程式而定(例如,Android作業系統及An3DBenchXL應用程式)。舉例而言,如「第4A圖」上方所示,Android作業系統開機(booting)時將存取記憶體40的記憶組B0、B5、B6以及B7內的資料。而記憶組B0、B5、B6以及B7可對應「第2圖」中的記憶組41_1、41_6、41_7以及41_8(圖中未標記記憶組41_6到41_8,但可理解為記憶組 41_1到41_n之間的3個記憶組41)。
而如「第4B圖」上方所示,在執行開機及執行An3DBenchXL之後,記憶體40的記憶組B0、B4、B5、B6以及B7則會被存取。而記憶組B0、B4、B5、B6以及B7可對應「第2圖」中的記憶組41_1、41_5、41_6、41_7以及41_8(圖中未標記記憶組41_5到41_8,但可理解為記憶組41_1到41_n之間的4個記憶組41)。從「第4A圖」以及「第4B圖」可知,我們可以將用以存取記憶體40位址做位址偏移運算使其資料能集中在連續的記憶組41或記憶段42。當計算機進入休眠或待命模式時,記憶體40能夠有機會自我更新較少數目的記憶段42。
舉例而言,如「第4A圖」下方所示,若記憶體40位址0x0~0x3及0x8~0xF位址範圍內有儲存資料而記憶體40位址0x4~0x7位址範圍內沒有儲存資料;位址偏移運算所使用的位址偏移addr_offset能被設定為0xF-0x3=0xC。則映射位址組re_addr的各映射位址等於輸入位址組in_addr的各輸入位址加上0xC。如此一來,記憶體40中0x0~0x3位址範圍所占的記憶體區域就會被空出來(如「第4B圖」下方所示),而記憶體40中0xC~0xF及0x4~0xB則會拿來儲存資料。因此,記憶體40中0x0~0x3位址範圍所占的記憶體區域則不需要在計算機進入休眠或待命模式時進行自我更新。
雖然實作第一運算單元321時可能會需要較多的邏輯閘(logic gate),但由於第一運算單元321可以以算術邏輯運算的方式直接 產生映射位址組re_addr,因此可以快速地得到映射位址組re_addr而較不會有運算延遲(delay)。
請參照「第3B圖」,其係為一實施範例之位址映射器之示意圖。於本實施範例中,位址映射器32除了第一運算單元321之外,另包括一第一及閘(AND gate)322。第一及閘322可用以將第一運算單元321的運算輸出信號op_out與一第一預設信號1st_default進行及運算(AND operation),並將及運算的結果作為映射位址組re_addr,再將映射位址組re_addr輸出給控制器35。其中第一預設信號1st_default是用以設定映射位址組re_addr的位元數。例如若要取4位元的映射位址組re_addr時,可將第一預設信號1st_default設為0xF;若要取8位元的映射位址組re_addr時,可將第一預設信號1st_default設為0xFF。
且如上所述,記憶體控制裝置30可依據讀寫信號WR得知記憶體40是否要被寫入資料。以下皆假設若讀寫信號WR的值為1時表示寫入模式,若讀寫信號WR的值為0時表示讀取模式。於記憶體40寫入時,位址映射器32可根據輸入位址組in_addr及位址偏移產生連續或是落於限定範圍內的映射位址組。控制器35並將寫入資料w_data寫入映射位址組re_addr對應的至少一個記憶段42,使得資料被集中寫入於特定的記憶段42。而於記憶體40讀取時,亦可先由位址映射器32產生對應於輸入位址組in_addr的映射位址組re_addr,再由控制器35從映射位址組re_addr對應的至少一個記憶段42讀取所需的讀取資料r_data。
接著請配合參照「第5A圖」,其係為一實施範例之位址解碼器之示意圖。位址解碼器33可包括一第一多工器331,用以於寫入時依據映射位址組re_addr輸出PASR組態更新信號p_config1去更新PASR組態暫存器31目前內存的PASR組態p_config。另外,第一多工器331依據映射位址組re_addr、PASR組態p_config以及讀寫信號WR去更新PASR組態,其中讀寫信號WR用以表示現在是正常模式下的寫入模式或是讀取模式。而以下所述之「於寫入時」以及「於讀取時」均是表示「當記憶體40處於寫入模式時」以及「當記憶體40處於讀取模式時」。
更新完的每一個PASR組態位元可以是一第二預設信號2nd_default,或是對應之更新前的PASR組態位元。若PASR組態位元的值為0代表對應的記憶段42在計算機進入休眠或待命模式時需要進行自我更新,可將第二預設信號2nd_default設為0。由於在寫入模式時控制器35接著會將寫入資料w_data寫入映射位址組re_addr所對應的記憶體40的記憶段42,因此與映射位址組re_addr對應的所有PASR組態位元都須改為0。故於寫入模式時,對應映射位址組re_addr的更新完的PASR組態位元的值被設為0,不對應映射位址組re_addr的更新完的PASR組態位元的值則仍為更新前的PASR組態位元的值。
舉例而言,假設輸入位址組in_addr具有一個輸入位址0x00,經映射後得到映射位址為0x0C。若於寫入時,則將映射位址0x0C所特定的記憶段42所對應的PASR組態位元的值更新為0。
而於讀取模式時,由於不會改變任何記憶段42儲存的內容,因此當讀寫信號WR為0時可以不更新PASR組態p_config。
請參照「第3C圖」以及「第5B圖」,其係為一實施範例之位址映射器以及位址解碼器之示意圖。於本實施範例中,位址映射器32除了第一運算單元321以及第一及閘322之外,另可包括一遮罩暫存器(mask register)323以及(m×n)個第二及閘324_1~324_m×n。遮罩暫存器323可用以儲存一遮罩組態m_config,遮罩組態可包括多個遮罩組態位元,如「第3C圖」中的位元b_1~b_m×n。遮罩組態位元與PASR組態位元個別對應,並用以表示對應的PASR組態位元或記憶段42是否允許映射。於下述說明中,值為0的遮罩組態位元表示對應的PASR組態位元或記憶段42允許映射,而值為1的遮罩組態位元表示不允許映射。
由於記憶體40中可能有特定區域用以儲存作業系統的開機程序或是修復程序等存放位置不該被更動的特殊資料,因此可對應儲存這種資料的記憶段42設定遮罩組態m_config。根據一實施範例,記憶體40可以包括m個記憶組41,且每一個記憶組41可包括n個記憶段42,其中m與n是正整數。而PASR組態位元、遮罩組態位元以及所有的記憶段42可以互相個別對應。因此單一個PASR組態位元或遮罩組態位元可以指定其中一個記憶組41的其中一個記憶段42。
而(m×n)個第二及閘324_1~324_m×n可用以將所有對應的PASR組態位元以及反向(NOT)的遮罩組態位元進行及運算;且 (m×n)個第二及閘324_1~324_m×n的輸出可用以控制第一運算單元321。換言之,在寫入時,第一運算單元321可依據這(m×n)個第二及閘324_1~324_m×n的及運算結果將輸入位址組in_addr以及位址偏移addr_offset相加成為映射位址組re_addr。
類似地,位址解碼器33的第一多工器331也可依據映射位址組re_addr、讀寫信號WR以及(m×n)個第二及閘324_1~324_m×n的及運算結果輸出PASR組態更新信號p_config1去更新PASR組態暫存器31目前內存的PASR組態p_config。
因此於寫入時,位址映射器32可先判斷每個輸入位址對應的遮罩組態位元的值是否為1。若對應的遮罩組態位元的值為1,表示對應的記憶段42不允許映射,故輸出的映射位址會與輸入位址相同。對於同時與映射位址以及值為1之遮罩組態位元所對應的PASR組態位元,由於其對應的記憶段42接著會寫入資料w_data,故此PASR組態位元會被設為0。
而若對應的遮罩組態位元的值為0,表示對應的記憶段42允許映射;位址映射器32可進行映射並可能輸出與輸入位址不同的映射位址。對於同時與映射位址以及值為0之遮罩組態位元所對應的PASR組態位元,由於其對應的記憶段42接著會寫入資料w_data,故此PASR組態位元也會被設為0。另外,遮罩暫存器323可由記憶體40外部的其他單元去設定其儲存的遮罩組態。
請參照「第3D圖」以及「第5C圖」,其係為一實施範例之位址映射器以及位址解碼器之示意圖。
於本實施範例中,位址映射器32另可包括一第一解碼器325、m個第一或閘(OR gate)326_1~326_m、m個第三及閘327_1~327_m、一第二或閘328以及一第一加法器329。而這些另外包括的元件可組成一判斷電路,用以判斷目前已被寫入有資料的記憶組41的個數是否已大於一門檻值。
第一解碼器325可用以依據輸入位址組in_addr產生一解碼位址組,其中第一解碼器325的輸入位元個數以及輸出位元個數可依據m進行設定。於本實施範例中,第一解碼器325可以是3位元轉8位元的解碼器。
m個第一或閘326_1~326_m可用以將反向的屬於相同的記憶組41的n個記憶段42所對應的n個PASR組態位元進行或運算(OR operation)。例如第一或閘326_1可對應第一個記憶組41;而若第一個記憶組41中的任一記憶段42對應的PASR組態位元是0就表示第一個記憶組41中已被寫入,而須在計算機進入休眠或待命模式時進行自我更新。第一加法器329可用以將這m個第一或閘326_1~326_m的或運算結果相加成為一更新記憶組個數add_out,以表示目前有幾個記憶組41中存有資料而須在計算機進入休眠或待命模式時進行自我更新。
m個第三及閘327_1~327_m可用以個別將這m個第一或閘326_1~326_m的或運算結果與解碼位址組進行及運算。第二或閘328則可用以將這m個第三及閘327_1~327_m的及運算結果進行或運算成為一匹配信號match。若匹配信號match的值為0,以表 示輸入位址組in_addr對應到的記憶組41尚未儲存任何資料;若匹配信號match的值為1,則表示輸入位址組in_addr對應到已存有資料的記憶組41。
第一運算單元321可依據匹配信號match以及更新記憶組個數add_out,將輸入位址組in_addr以及位址偏移addr_offset相加成為映射位址組re_addr。類似地,位址解碼器33的第一多工器331可依據映射位址組re_addr、讀寫信號WR、匹配信號match、更新記憶組個數add_out以及遮罩組態m_config去輸出PASR組態更新信號p_config1去更新PASR組態暫存器31目前內存的PASR組態p_config。
更詳細地說,位址映射器32可先依據匹配信號match判斷個別輸入位址是否對應到已存有資料的記憶組41。若是,則不須進行映射,可直接將輸入位址作為映射位址,並將對應的PASR組態位元設為0。反之若匹配信號match的值是0,則進一步判斷更新記憶組個數add_out是否大於門檻值。位址解碼器33可先依據匹配信號match判斷個別輸入位址是否對應到已存有資料的記憶組41。若是,可直接將輸入位址作為映射位址。若更新記憶組個數add_out小於門檻值,也可直接將輸入位址作為映射位址,位址解碼器33並將對應的PASR組態位元設為0。
但若更新記憶組個數add_out大於或等於門檻值,表示目前已有相當程度的記憶組41已被使用。為了減少使用的記憶組41個數,可將輸入位址映射到對應於已使用之記憶組41的映射位址, 位址解碼器33再將對應於此映射位址的PASR組態位元設為0。換句話說,映射位址可以都落在已使用之記憶組41所對應之限定範圍。
根據一實施範例,可將這m個第一或閘326_1~326_m的或運算結果直接提供給位址映射器32。位址映射器32可依據這m個第一或閘326_1~326_m的或運算結果得知各記憶組41的使用情形,再據以決定是否要進行映射。例如假設想要將未使用的記憶段42集中在低位址區域,則可將限定範圍設定成相反的高位址區域。若有輸入位址對應到低位址區域,就將輸入位址映射成對應高位址區域的映射位址,再將寫入資料w_data寫入高位址區域。
請參照「第6圖」,其係為一實施範例之位址選擇器之示意圖。位址選擇器34可在計算機處於正常模式(記憶體40處於讀取模式或寫入模式)時接收映射位址組re_addr,並輸出更新位址組u_addr以對記憶體40進行記憶體存取。而於計算機處於休眠或待命模式時,位址選擇器34可依據RASR組態產生更新位址組u_addr。且根據更新位址組u_addr,位址選擇器34可設定記憶體40的至少一個模式暫存器43以讓記憶體40自我更新對應的至少一個記憶段42。
位址選擇器34可包括m個第四及閘341_1~341_m(亦統稱第四及閘341)、n個第五及閘342_1~342_n(亦統稱第五及閘342)、一第二多工器343以及一第三多工器344。
m個第四及閘341_1~341_m可用以將屬於相同的記憶組41 的n個記憶段42所對應的n個更新完的PASR組態位元進行及運算。當一個記憶組41中有任何記憶段42對應的更新完的PASR組態位元的值為0時(表示需要自我更新),此記憶組41對應的第四及閘341的輸出就會是0。
n個第五及閘342_1~342_n可用以將m個記憶組41中屬於相同的記憶段42的一索引(index)的m個記憶組41所對應的m個更新完的PASR組態位元進行及運算。換句話說,第i個第五及閘342可將每個記憶組41中的第i個記憶段42(共m個)所對應的m個更新完的PASR組態位元進行及運算(其中i為整數且1≦i≦n)。例如當所有記憶組41的第i個記憶段42之中有任何一個其對應的更新完的PASR組態位元的值為0時,第i個記憶段42對應的第五及閘342的輸出就會是0。
第二多工器343可用以依據這m個第四及閘341_1~341_m以及這n個第五及閘342_1~342_n的及運算結果,輸出一第一信號。而第三多工器344可用以依據第一信號以及映射位址組re_addr產生更新位址組u_addr。其中更新位址組u_addr可包括至少一更新位址。位址選擇器34用以於正常模式時,接收映射位址組re_addr並據以產生用以存取記憶體40的控制位址組。而於休眠或待命模式時,位址選擇器34接收第二多工器343的輸出信號並據以產生更新位址組u_addr,以設定記憶體40的至少一個模式暫存器43以讓記憶體40自我更新對應的至少一個記憶段42。
藉由這些元件,記憶體控制裝置30可根據PASR組態p_config 得知各個記憶組41以及記憶段42的設定資訊,並可透過位址選擇器34與控制器35設定執行PASR功能的命令。控制器35並可發送執行PASR功能的命令給記憶體40,以使記憶體40進入一PASR模式並依據更新位址組u_addr去設定記憶體40的至少一個模式暫存器43以執行自我更新。
綜上所述,於讀取時,不會更改PASR組態p_config。於讀取時,位址映射器32依據輸入位址產生映射位址,位址選擇器34以及控制器35依據映射位址從記憶體40中讀取出讀取資料r_data並回傳給外部匯流排52。
於寫入時,位址映射器32依據輸入位址產生映射位址,位址解碼器33依據映射位址輸出PASR組態更新信號p_config1以更新PASR組態暫存器31目前儲存的PASR組態p_config。控制器35從外部匯流排52接收寫入資料w_data,位址選擇器34以及控制器35再依據映射位址將寫入資料w_data寫入記憶體40中。
於休眠或待命模式時,位址選擇器34依據PASR組態p_config以設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。控制器35並能發出命令給記憶體40,以讓記憶體40進入PASR模式而自動更新PASR組態p_config所對應的記憶段42。
接下來請參照「第7圖」,其係為一實施範例之記憶體控制裝置之方塊示意圖。根據一實施範例,記憶體控制裝置60包括PASR組態暫存器61、位址映射器62、位址解碼器63以及位址選擇器 64,且位址映射器62可以是利用查表的方式實作。
PASR組態暫存器61可儲存PASR組態p_config。PASR組態p_config包括多個PASR組態位元,PASR組態位元與記憶段42個別對應。
位址映射器62耦接於位址解碼器63以及位址選擇器64。位址映射器62於正常模式時接收輸入位址組in_addr以及多個預設位址,依據輸入位址組in_addr將輸入位址組in_addr、多個預設位址以及多個查找位址轉換成映射位址組re_addr,並輸出映射位址組re_addr。其中映射位址組re_addr包括連續或落於限定範圍內的至少一個映射位址。
位址解碼器63耦接於PASR組態暫存器61以及位址映射器62。位址解碼器63用以於寫入時接收輸入位址組in_addr、PASR組態p_config以及映射狀態,並依據輸入位址組in_addr、PASR組態p_config以及映射狀態輸出PASR組態更新信號p_config1以更新PASR組態暫存器61目前儲存的PASR組態p_config。
位址選擇器64耦接記憶體40、PASR組態暫存器61以及位址映射器62。計算機於正常模式時(記憶體40處於讀取模式或寫入模式),位址選擇器64接收位址組re_addr並據以產生用以存取記憶體40的更新位址組u_addr。位址選擇器64於計算機處於休眠或待命模式時,接收更新完的PASR組態p_config並據以產生更新位址組u_addr。位址選擇器64並可依據更新位址組u_addr設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更 新對應的至少一個記憶段42。
記憶體控制裝置60與記憶體控制裝置30最大的差異在於位址映射器62係以查表的方式進行位址映射。而PASR組態暫存器61、位址解碼器63以及位址選擇器64的運作與PASR組態暫存器31、位址解碼器33以及位址選擇器34類似,故於此不再贅述。
請參照「第8圖」,其係為一實施範例之記憶體控制裝置之方塊示意圖。
記憶體控制裝置60另可包括控制器65,且控制器65的運作與前述控制器35類似。控制器65可耦接位址映射器62與位址選擇器64之間,並耦接記憶體40。控制器65可用以從位址映射器62接收映射位址組re_addr,並將轉送的映射位址組re_addr1給位址選擇器64。計算機處於正常模式時(記憶體40處於讀取模式或寫入模式),位址選擇器64接收轉送的映射位址組re_addr1並據以產生用以存取記憶體40的更新位址組u_addr。於休眠或待命模式時,位址選擇器64接收更新完的PASR組態p_config並據以產生更新位址組u_addr。位址選擇器64並可依據更新位址組u_addr設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。
而記憶體40可以包括m個記憶組41,且每一個記憶組41可包括n個記憶段42,其中m與n是正整數。且記憶段42可以是記憶體40所使用的最小存取單位。
請參照「第9A圖」,其係為一實施範例之位址映射器之示意 圖。位址映射器62可包括一查找暫存器621、一映射暫存器622以及一第四多工器623。
查找暫存器621可用以儲存一查找位址組,查找位址組包括至少一查找位址。查找位址可以是之前已經由位址映射器62映射得到的映射位址,被儲存在查找暫存器621中以供後續讀取或寫入時使用。於本實施範例中,查找暫存器621可視為一個查找表(Look-Up Table,LUT);記憶體控制裝置60可以以輸入位址作為索引查詢得到對應的映射位址。
映射暫存器622可用以儲存一映射組態s_config,映射組態s_config可包括多個映射組態位元。映射組態位元與查找位址的一索引個別對應,表示對應查找位址是否已經過映射的處理。例如當一個映射組態位元為1時,表示此一映射組態位元對應的查找位址是已經被映射過的,因此對應的查找位址可能不同於當初產生此查找位址的輸入位址。而每個查找位址可具有一個唯一個索引,例如查找位址0x00到0x3f分別對應的索引可以1到64。
根據一實施範例,查找位址組的所有查找位址的初始值可以是與索引值相同。若位址映射器62將一個輸入位址映射到映射位址,就可以將映射位址作為此輸入位址對應的查找位址,並將此輸入位址對應的映射組態位元設為1。
第四多工器623可用以依據映射組態位元以及輸入位址組in_addr將輸入位址組in_addr、預設位址以及查找位址轉換成映射位址組re_addr,並將映射位址組re_addr輸出給控制器65。第四 多工器623另可依據映射位址組re_addr更新查找位址組,且將更新完的查找位址組回存於查找暫存器621。
其中這些預設位址可以與記憶體40中的所有記憶段42個別對應。例如假設m與n都是8,則一共有64個記憶段42,且預設位址可以是0x00~0x3f。根據一實施範例,第四多工器623可從預設位址中從低位址到高位址依序選擇連續的位址作為新的映射位址。假設第四多工器623收到具有0x00、0x10以及0x30三個輸入位址的輸入位址組in_addr,可選擇0x00、0x01以及0x02作為對應的映射位址。
位址映射器62收到輸入位址組in_addr時,可先依據每個輸入位址對應的映射組態位元判斷輸入位址是否之前已被映射過。若一個輸入位址對應的映射組態位元為1表示之前已被映射過,因此第四多工器623可以從查找暫存器621中取出與此輸入位址對應的查找位址,並將此查找位址作為映射位址輸出。
若一個輸入位址對應的映射組態位元為0表示之前尚未被映射過,第四多工器623可依據映射組態s_config判斷目前已有哪些預設位址被使用過,並從尚未被使用過的預設位址中選擇最低位址的預設位址作為映射位址輸出。類似地,若多個輸入位址對應的映射組態位元都為0,則可從尚未被使用過的預設位址中選擇連續多個最低位址的預設位址作為映射位址輸出。
接著請參照「第9B圖」,其係為一實施範例之位址映射器之示意圖。位址映射器62另可包括一第五多工器624。第五多工器 624可用以依據映射組態s_config、讀寫信號WR以及輸入位址組in_addr去輸出映射組態更新信號s_config1,以更新映射暫存器622儲存的映射組態s_config。當位址映射器62接收尚未映射過的輸入位址時,可產生對應的映射位址,並將此輸入位址對應的映射組態位元設為1作為更新。
請配合參照「第10A圖」,其係為一實施範例之位址解碼器之示意圖。位址解碼器63可包括第一多工器631,並可用以依據輸入位址組in_addr、映射組態s_config以及讀寫信號WR,去將目前儲存的PASR組態p_config轉換成PASR組態更新信號p_config1以更新PASR組態暫存器61目前儲存的PASR組態p_config。其中更新完的每一個PASR組態位元可以是第二預設信號2nd_default或是對應之更新前的PASR組態位元。
於本實施範例中,所有PASR組態位元的初始值可以是1;代表記憶體40剛啟動時所有的記憶段42都不需執行自我更新,而第二預設信號2nd_default可被設為0。於寫入模式時,對應映射位址組re_addr的更新完的PASR組態位元的值被設為0。於讀取模式時,可以不更新PASR組態p_config。
以下為位址映射的處理結果的一數值例。
假設輸入位址組in_addr對應的記憶組41以及記憶段42如下表一:
其中b1~b8表示第一個到第八個記憶組41,s1~s8表示第一個到第八個記憶段42,表中的1~15表示被存取的順序。也就是說,第一個輸入位址對應b1s1,第二個輸入位址對應b4s1,第十五個輸入位址對應b3s8,依此類推。由表一可見,若按照輸入位址組in_addr將寫入資料w_data寫入記憶體40中,每個記憶組41都會被用到;從記憶段42來看,也只有各記憶組41的第六個記憶段42都沒有被用到。因此在休眠或待命模式時,各記憶組41的第六個記憶段42以外都需維持供電以執行PASR的功能。
但經位址映射器62產生映射位址組re_addr,並按照映射位址組re_addr將寫入資料w_data寫入記憶體40後的結果如下表二:
其中第二到五筆以及第七到十五筆的輸入位址與其對應的映射位址不同。由表二可見,若從記憶段42來看,只有第一至第七個記憶組41的第一個以及第二個記憶段42有被用到以及第八個記憶組41的第一個記憶段42有被用到。因此在休眠或待命模式時,可以以對應各記憶組41的記憶段42為單位,停止供電給所有的第三個到第八個記憶段42以減少休眠或待命狀態時的耗電量。
請參照「第9C圖」以及「第10B圖」,其係為一實施範例之位址映射器以及位址解碼器之示意圖。位址映射器62另可包括遮罩暫存器625,以保護特定的系統資料。遮罩暫存器625可用以儲存遮罩組態m_config,而各遮罩組態位元可表示對應的PASR組態位元是否允許映射。另外,遮罩暫存器625可由外部去設定其儲存的遮罩組態。第四多工器623可依據映射組態s_config、讀寫信號WR、輸入位址組in_addr以及遮罩組態m_config,將輸入位 址組in_addr、預設位址以及查找暫存器621轉換成映射位址組re_addr。而第五多工器624可以依據映射組態s_config、讀寫信號WR、輸入位址組in_addr以及遮罩組態rn_config去輸出映射組態更新信號s_config1,以更新映射暫存器622目前儲存的映射組態s_config。
而位址解碼器63可包括第一多工器631,以依據輸入位址組in_addr、讀寫信號WR以及遮罩組態m_config去輸出PASR組態更新信號p_config1以更新PASR組態暫存器61目前儲存的PASR組態p_config。
請參照「第9D圖」以及「第10C圖」,其係為一實施範例之位址映射器以及位址解碼器之示意圖。其中m與n都是8。位址映射器62另可包括第一解碼器626、8個第一或閘627_1~627_8、8個第三及閘628_1~628_8、第二或閘629以及第一加法器620。利用此判斷電路,記憶體控制裝置60可只在目前已被寫入有資料的記憶組41的個數大於或等於門檻值時,才依據預設位址產生映射位址。
第一解碼器626、8個第一或閘627_1~627_8、8個第三及閘628_1~628_8、第二或閘629以及第一加法器620的運作類似於前述第一解碼器325、m個第一或閘326_1~326_m、m個第三及閘327_1~327_m、第二或閘328以及第一加法器329,故於此不再贅述。而位址解碼器63的第一多工器631可依據輸入位址組in_addr、讀寫信號WR、映射組態s_config、匹配信號match以及 更新記憶組個數add_out去輸出PASR組態更新信號p_config1,以更新PASR組態暫存器61目前儲存的PASR組態p_config。
以下為位址映射的處理結果的另一數值例。
假設輸入位址組in_addr對應的記憶組41以及記憶段42如上表一。假設更新記憶組個數add_out的門檻值設為4,而經位址映射器62產生映射位址組re_addr,並按照映射位址組re_addr將寫入資料w_data寫入記憶體40後的結果如下表三:
其中第六筆、第八筆、第十一筆以及第十五筆的輸入位址與其對應的映射位址不同。由表三可見,由於可藉由設定門檻值限定記憶組41的使用數目,因此被使用到的記憶組41集中於b1、b2、b4以及b7。因此在休眠或待命模式時,可以直接停止供電給b3、b5、b6以及b8的記憶組41以減少休眠或待命狀態時的耗電 量。
請參照「第11圖」,其係為一實施範例之位址選擇器之示意圖。
位址選擇器64可包括m個第四及閘641_1~641_m、n個第五及閘642_1~642_n、第二多工器643以及第三多工器644,其運作類似於位址選擇器34的m個第四及閘341_1~341_m、n個第五及閘342_1~342_n、一第二多工器343以及一第三多工器344。位址選擇器64於正常模式時,接收映射位址組re_addr並據以產生用以存取記憶體40的更新位址組u_addr。位址選擇器64於休眠或待命模式時,接收更新完的PASR組態p_config並據以產生更新位址組u_addr。且位址選擇器64可依據更新位址組u_addr設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。
綜上所述,於記憶體40讀取時,不會更改PASR組態p_config,且控制器65可依據映射位址從記憶體40中讀取出一存取資料access_data並作為讀取資料r_data回傳給外部匯流排52。於記憶體40寫入時,位址映射器62依據輸入位址產生連續或落於限定範圍中的映射位址,且位址解碼器63依據輸入位址更新PASR組態p_config。控制器35則可從外部匯流排52接收寫入資料w_data並將其依據映射位址寫入記憶體40中。
於休眠或待命模式時,位址選擇器64依據PASR組態p_config並據以產生更新位址組u_addr,以設定記憶體40的至少一個模式 暫存器43以讓記憶體40自我更新對應的至少一個記憶段42。控制器65並能發出命令給記憶體40,以讓記憶體40進入PASR模式而自動更新PASR組態p_config所對應的記憶段42。
此外,位址映射器62以及位址解碼器63的邏輯電路可以合併。「第12圖」中的位址映射器72可同時具有「第9D圖」中的位址映射器62以及「第10C圖」中的位址解碼器63的功能。於「第12圖」的實施範例中,m與n都是8。
位址映射器72可耦接於PASR組態暫存器71,並可包括查找暫存器721、映射暫存器722、一第六多工器723_1、一第七多工器723_2、一第八多工器723_3、遮罩暫存器724、(8×8)個第六及閘725_1~725_8×8、第一解碼器726、8個第一或閘727_1~727_8、8個第三及閘728_1~728_8、第二或閘729以及第一加法器720。
依據映射組態s_config、查找暫存器721、讀寫信號WR、輸入位址組in_addr、預設位址、匹配信號match以及更新記憶組個數add_out以及這(m×n)個第六及閘725_1~725_8×8的輸出,第六多工器723_1可產生映射位址組re_addr並更新查找暫存器721。
依據映射組態s_config、輸入位址組in_addr、讀寫信號WR、匹配信號match、更新記憶組個數add_out以及這(8×8=64)個第六及閘725_1~725_m×n的輸出,第七多工器723_2輸出PASR組態更新信號p_config1以更新PASR組態暫存器71目前儲存的 PASR組態p_config。而依據映射組態s_config、讀寫信號WR、輸入位址組in_addr、匹配信號match、更新記憶組個數add_out以及這(8×8=64)個第六及閘725_1~725_64的輸出,第八多工器723_3輸出映射組態更新信號s_config1以更新映射暫存器722目前儲存的映射組態s_config。
本提案並提供一記憶體控制方法,以產生映射位址組re_addr的方式減少於休眠或待命模式時需要進行自我更新的記憶組41或記憶段42的個數。請先參照「第13圖」,其係為一實施範例之記憶體控制方法之流程示意圖。
記憶體控制裝置30或60接收輸入位址組in_addr(步驟S110),位址映射器32或62並將輸入位址組in_addr轉換成映射位址組re_addr(步驟S120)。其中映射位址組re_addr包括連續或落於限定範圍內的至少一個映射位址。記憶體控制裝置30或60可藉由旗標(flag)或有限狀態機的目前狀態等資訊判斷計算機目前處於正常模式或是休眠或待命模式(步驟S130)。
當計算機處於正常模式時,可執行以下步驟S140到步驟S160。位址解碼器33或63依據映射位址組re_addr更新PASR組態p_config(步驟S140),並將更新完的PASR組態p_config回存(步驟S150)。其中PASR組態p_config包括多個PASR組態位元,這些PASR組態位元與記憶段42個別對應。且更新完的每一個PASR組態位元可以是一個第二預設信號或是對應之更新前的PASR組態位元。而位址選擇器34或64依據映射位址組re_addr 產生用以存取記憶體40的更新位址組u_addr(步驟S160)。
當計算機處於休眠或待命模式時,可執行以下步驟S170到步驟S190。位址選擇器34或64依據更新完的PASR組態p_config產生更新位址組u_addr(步驟S170),並依據更新位址組u_addr設定記憶體40的模式暫存器43(步驟S180)。接著記憶體控制裝置30或60可依據模式暫存器43讓記憶體40自我更新PASR組態p_config對應的記憶段42(步驟S190)。
根據不同實施範例,本提案對於步驟S120提供多種產生連續或落於限定範圍內的映射位址的方式。以下「第14圖」至「第20圖」分別為不同實施範例之步驟S120的流程示意圖。
根據一實施範例,位址映射器32可依據位址偏移addr_offset將輸入位址組in_addr轉換成映射位址組re_addr。例如可將輸入位址組in_addr以及位址偏移addr_offset直接相加成為映射位址組re_addr。
根據「第3B圖」以及「第14圖」的實施範例,位址映射器32可先將輸入位址組in_addr以及位址偏移addr_offset相加並產生一相加結果(即運算輸出信號op_out)(步驟S201),再將相加結果與第一預設信號1st_default進行及運算以產生第一及運算結果,並將第一及運算結果作為映射位址組re_addr(步驟S202)。如此一來,可利用第一預設信號1st_default控制映射位址組re_addr的映射位址的位元個數。
根據「第3C圖」以及「第15圖」的實施範例,記憶體40包 括m個記憶組41,每一個記憶組41包括n個記憶段42,m與n是正整數,且PASR組態位元的個數是(m×n)個。位址映射器32可接收遮罩組態m_config(步驟S301),其中遮罩組態m_config包括多個遮罩組態位元,遮罩組態位元與PASR組態位元個別對應。
位址映射器32可先將對應的PASR組態位元以及反向的遮罩組態位元進行及運算並產生(m×n)個第二及運算結果(步驟S302),再依據此(m×n)個第二及運算結果將輸入位址組in_addr以及位址偏移addr_offset相加成為映射位址組re_addr(步驟S303)。此外,位址映射器32也可將步驟S303產生的結果再與第一預設信號1st_default進行及運算,才將此及運算的結果作為最後輸出的映射位址組re_addr。
根據「第3D圖」以及「第16圖」的實施範例,位址映射器32的第一解碼器325可依據輸入位址組產生解碼位址組(步驟S401)。第一或閘326_1~326_m分別將反向的屬於相同的記憶組41的n個記憶段42所對應的n個PASR組態位元進行或運算並產生m個第一或運算結果(步驟S402)。
接著第三及閘327_1~327_m分別將此m個第一或運算結果與解碼位址組進行及運算並產生m個第三及運算結果(步驟S403),第二或閘328再將此m個第三及運算結果進行或運算成為匹配信號match(步驟S404)。第一加法器329可將此m個第一或運算結果相加成為更新記憶組個數add_out(步驟S405)。而第一 運算單元321以及第一及閘322可依據匹配信號match以及更新記憶組個數add_out,將輸入位址組in_addr以及位址偏移addr_offset相加成為映射位址組re_addr(步驟S406)。
此外,位址解碼器33的第一多工器331可依據映射位址組re_addr以及遮罩組態m_config更新PASR組態p_config,其中更新完的每一個PASR組態位元可以是第二預設信號或是對應之更新前的PASR組態位元。
根據一實施範例,位址映射器62可依據輸入位址組in_addr、多個預設位址以及多個查找位址將輸入位址組in_addr轉換成映射位址組re_addr。
根據「第9A圖」以及「第17圖」的實施範例,位址映射器62的第四多工器623可接收包括多個查找位址的查找位址組(步驟S501),並接收具有多個映射組態位元的映射組態s_config(步驟S502)。接著第四多工器623可依據映射組態s_config的映射組態位元以及輸入位址組in_addr將輸入位址組in_addr、預設位址以及查找位址轉換成映射位址組re_addr(步驟S503),並依據映射位址組re_addr更新查找位址組(步驟S504)。
根據「第9B圖」以及「第18圖」的實施範例,在步驟S120之中除了執行上述步驟S501至步驟S504之外,位址映射器62的第五多工器624可依據映射組態s_config的映射組態位元以及輸入位址組in_addr更新映射組態位元(步驟S505)。
根據「第9C圖」以及「第19圖」的實施範例,位址映射器 62的第四多工器623另可接收遮罩組態m_config(步驟S506)。第四多工器623並可依據映射組態s_config的映射組態位元、輸入位址組in_addr、預設位址、查找位址以及遮罩組態m_config,將輸入位址組in_addr轉換成映射位址組re_addr(步驟S503’),再依據映射位址組re_addr更新查找位址組(步驟S504)。
於「第9D圖」以及「第20圖」的實施範例,m與n等於8。位址映射器62的第一解碼器626可依據輸入位址組in_addr產生解碼位址組(步驟S507)。第一或閘627_1~627_8可分別將反向的屬於相同的記憶組41的n個(8個)記憶段42所對應的n個PASR組態位元進行或運算並產生m個(8個)第一或運算結果(步驟S508)。第三及閘628_1~628_8可分別將此m個第一或運算結果與解碼位址組進行及運算並產生m個第三及運算結果(步驟S509),接著第二或閘629可將此m個第三及運算結果進行或運算成為匹配信號match(步驟S510)。第一加法器620則可將此m個第一或運算結果相加成為更新記憶組個數add_out(步驟S511)。
而除了查找位址組以及映射組態s_config之外,位址映射器62的第四多工器623另可接收匹配信號match以及更新記憶組個數add_out,並依據映射組態位元、輸入位址組in_addr、匹配信號match以及更新記憶組個數add_out將輸入位址組in_addr、預設位址以及查找位址轉換成映射位址組re_addr(步驟S503”),再依據映射位址組re_addr更新查找位址組(步驟S504)。
此外,位址解碼器63的第一多工器631可依據輸入位址組 in_addr、匹配信號match以及更新記憶組個數add_out更新PASR組態p_config;其中更新完的每一個PASR組態位元可以是第二預設信號或是對應之更新前的PASR組態位元。
接著請參照「第21圖」,其係為一實施範例之步驟S170之流程示意圖,位址選擇器34或64可據以產生更新位址組u_addr。
首先m個第四及閘341_1~341_m或641_1~641_m可分別將屬於相同的記憶組41的n個記憶段42所對應的n個更新完的PASR組態位元進行及運算,並產生m個第四及運算結果(步驟S601)。接著第五及閘342_1~342_n或642_1~642_n可分別將m個記憶組41中屬於相同的記憶段42的索引的m個記憶段42所對應的m個更新完的PASR組態位元進行及運算,並產生n個第五及運算結果(步驟S602)。第二多工器343或643可依據此m個第四及運算結果以及此n個第五及運算結果產生第一信號(步驟S603),而第三多工器344或644可再依據第一信號以及映射位址組re_addr產生更新位址組u_addr(步驟S604)。
接下來請參照「第22圖」,其係為一實施範例之記憶體控制裝置之示意圖。記憶體控制裝置80包括PASR組態暫存器81、位址解碼器83、位址選擇器84、控制器85、一備份記憶單元86及一休眠旗標87。
PASR組態暫存器81可用以儲存PASR組態p_config。PASR組態p_config包括多個PASR組態位元,且PASR組態位元與記憶體40的記憶段42個別對應。於本實施範例中,所有PASR組 態位元的初始值可以是0;代表記憶體40剛啟動時所有的記憶段42都被預設為需執行自我更新。
備份記憶單元86可以是非揮發性記憶體,例如快閃記憶體(flash memory)或是電子可抹除可規劃唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)。因此即使於計算機在休眠或待命模式中停止供電給備份記憶單元86,備份記憶單元86中儲存的資料也不會被消除。
休眠旗標87可用以記錄包含記憶體40及記憶體控制裝置80的計算機是否處於正常模式或處於休眠或待命模式,而休眠旗標87的值可以由處理器50所設定。例如當休眠旗標87的值為0時表示計算機目前不是休眠或待命模式(可視為處於正常模式),當休眠旗標87的值為1時表示計算機目前是在休眠或待命模式。
控制器85耦接記憶體40、位址選擇器84、位址解碼器83以及備份記憶單元86,亦可耦接到休眠旗標87。於休眠或待命模式時,控制器85可用以將一備份位址組對應的至少一個記憶段42的內容複製到備份記憶單元86。於休眠或待命模式時,控制器85可產生用來存取記憶體40的一控制器輸出位址組c_addr,並將控制器輸出位址組對應的至少一個記憶段42的內容複製到備份記憶單元86。而於正常模式時,控制器85可接收輸入位址組並據以產生用此存取記憶體40的控制器輸出位址組。
位址解碼器83耦接於休眠旗標87、控制器85以及PASR組態暫存器81。於休眠或待命模式,且需要資料從記憶體40複製到 備份記憶單元86時,位址解碼器83可輸出PASR組態更新信號p_config1以更新PASR組態暫存器81目前儲存的PASR組態p_config。在此情況,至少一個PASR組態位元與備份位址組作對應。
位址選擇器84耦接記憶體40、PASR組態暫存器81以及控制器85。計算機處於正常模式時(記憶體40處於讀取模式或寫入模式),位址選擇器84接收來自控制器85的控制器輸出位址組c_addr並據以產生用以存取記憶體40的更新位址組u_addr。於休眠或待命模式時,位址選擇器84接收控制器輸出位址組或更新完的PASR組態p_config並據以產生更新位址組u_addr,以讓記憶體40依據更新位址組自我更新PASR組態p_config對應的至少一個記憶段42。
更進一步地說,於休眠或待命模式並且需要作備份時,位址選擇器84可接收控制器輸出位址組c_addr並據以產生更新位址組u_addr,以依據更新位址組u_addr將至少一個記憶段42的內容複製到備份記憶單元86。
而於休眠或待命模式並且需要設定記憶體40的至少一個模式暫存器43時,位址選擇器84可接收更新完的PASR組態p_config並據以產生更新位址組u_addr。接著位址選擇器84可依據更新位址組u_addr設定至少一個模式暫存器43。位址選擇器84並依據更新位址組u_addr設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。
根據一實施範例,控制器85可以定時確認休眠旗標87的值,以決定是否要將進行備份。當偵測到休眠旗標87的值從0變成1時,控制器85可依據備份記憶單元86的容量以及記憶體40中儲存的資料量對記憶體40進行備份。例如當前記憶體40中儲存的資料量小於或等於備份記憶單元86的容量時,就可將所有資料備份到備份記憶單元86中,並停止供電給整個記憶體40以及備份記憶單元86。
若當前記憶體40中儲存的資料量大於備份記憶單元86的容量時,控制器85可優先備份系統相關的關鍵資料,也可直接按照記憶段42的順序進行備份。控制器85可將已將資料備份去備份記憶單元86的記憶段42的位址作為備份位址組。由於存在備份記憶單元86中的資料不會遺失,因此位址解碼器83可將備份位址組對應的PASR組態位元的值設為1,表示已完成備份的記憶段42可不執行自我更新,也可以不用供電。
當偵測到休眠旗標87的值再從1變成0時,表示結束休眠或待命模式。控制器85可利用備份記憶單元86中的資料恢復記憶段42原先儲存的內容,位址解碼器83也可將恢復內容的記憶段42所對應的PASR組態位元再度設為0。
請參照「第23圖」,其係為一實施範例之記憶體控制裝置之示意圖。
記憶體控制裝置80另可包括遮罩暫存器88。遮罩暫存器88可用以儲存遮罩組態m_config,且遮罩組態m_config可包括多個 遮罩組態位元。遮罩組態位元可以與PASR組態位元個別對應,表示對應的PASR組態位元是否允許備份。另外,遮罩暫存器88可由外部去設定其儲存的遮罩組態m_config。若遮罩組態位元的值為1,表示對應的記憶段42不允許備份,因此在計算機處於進入休眠或待命模式下得要執行自我更新。控制器85可依據遮罩組態m_config產生備份位址組;換句話說,控制器85可依據遮罩組態m_config決定要備份哪些記憶段42。
請參照「第24圖」,其係為一實施範例之位址解碼器之示意圖。
位址解碼器83可包括第一多工器831,且第一多工器831可用以依據備份位址組更新PASR組態p_config。其中更新完的每一個PASR組態位元可以是一第三預設信號3rd_default或是對應之更新前的PASR組態位元。若更新完的PASR組態位元是第三預設信號3rd_default,表示對應的記憶段42已備份因此不需要進行自我更新。於本實施範例中,第三預設信號3rd_default為1。
接著請參照「第25圖」,其係為一實施範例之位址選擇器之示意圖。
位址選擇器84可包括m個第四及閘841_1~841_m、n個第五及閘842_1~842_n、第二多工器843以及第三多工器844,其運作類似於位址選擇器34的m個第四及閘341_1~341_m、n個第五及閘342_1~342_n、一第二多工器343以及一第三多工器344,故於此不再贅述。
計算機處於正常模式時(記憶體40處於讀取模式或寫入模式),位址選擇器84接收來自控制器85的控制器輸出位址組c_addr並據以產生用以存取記憶體40的更新位址組u_addr。位址選擇器84於休眠或待命模式時,接收更新完的PASR組態p_config並據以產生更新位址組u_addr。位址選擇器84,並可依據更新位址組u_addr設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。更進一步地說,記憶體40自我更新沒有被備份的記憶段42。
綜上所述,計算機處於正常模式,而記憶體40進行一般的讀取或寫入時都不會更改PASR組態p_config,控制器85可依據處理器50所發出的控制信號ctrl去存取記憶體40。而計算機進入休眠或待命模式時,控制器85可將至少一個記憶段42的內容備份到備份記憶單元86,位址選擇器84依據PASR組態p_config以設定記憶體40的至少一個模式暫存器43,以讓記憶體40自我更新對應的至少一個記憶段42。控制器85並能發出命令給記憶體40,以讓記憶體40進入PASR模式而自動更新PASR組態p_config所對應的記憶段42。
上述各種實施方式乃藉由將寫入資料集中存放或是備份的方式,減少計算機在休眠或待命模式時需要進行自我更新的記憶段42或記憶組41的數量。如此一來可以降低記憶體在休眠或待命模式所耗費的電力(功耗),延長配置有記憶體以及記憶體控制裝置的計算機的待命期間。
以上較佳具體實施範例之詳述,是希望藉此更加清楚描述本發明之特徵與精神,並非以上述揭露的較佳具體實施範例對本發明之範疇加以限制。相反地,其目的是希望將各種改變及具相等性的安排涵蓋於本發明所欲申請之專利範圍的範疇內。
30‧‧‧記憶體控制裝置
31‧‧‧PASR組態暫存器
32‧‧‧位址映射器
321‧‧‧第一運算單元
322‧‧‧第一及閘
323‧‧‧遮罩暫存器
324_1~324_m×n‧‧‧第二及閘
325‧‧‧第一解碼器
326_1~326_m‧‧‧第一或閘
327_1~327_m‧‧‧第三及閘
328‧‧‧第二或閘
329‧‧‧第一加法器
33‧‧‧位址解碼器
331‧‧‧第一多工器
34‧‧‧位址選擇器
341_1~341_m‧‧‧第四及閘
342_1~342_n‧‧‧第五及閘
343‧‧‧第二多工器
344‧‧‧第三多工器
35‧‧‧控制器
40‧‧‧記憶體
41、41_1~41_m‧‧‧記憶組
42、42_1~42_n‧‧‧記憶段
43‧‧‧模式暫存器
50‧‧‧處理器
52‧‧‧外部匯流排
60‧‧‧記憶體控制裝置
61‧‧‧PASR組態暫存器
62‧‧‧位址映射器
621‧‧‧查找暫存器
622‧‧‧映射暫存器
623‧‧‧第四多工器
624‧‧‧第五多工器
625‧‧‧遮罩暫存器
626‧‧‧第一解碼器
627_1~627_8‧‧‧第一或閘
628_1~628_8‧‧‧第三及閘
629‧‧‧第二或閘
620‧‧‧第一加法器
63‧‧‧位址解碼器
631‧‧‧第一多工器
64‧‧‧位址選擇器
641_1~641_m‧‧‧第四及閘
642_1~642_n‧‧‧第五及閘
643‧‧‧第二多工器
644‧‧‧第三多工器
65‧‧‧控制器
71‧‧‧PASR組態暫存器
72‧‧‧位址映射器
721‧‧‧查找暫存器
722‧‧‧映射暫存器
723_1‧‧‧第六多工器
723_2‧‧‧第七多工器
723_3‧‧‧第八多工器
724‧‧‧遮罩暫存器
725_1~725_64‧‧‧第六及閘
726‧‧‧第一解碼器
727_1~727_8‧‧‧第一或閘
728_1~728_8‧‧‧第三及閘
729‧‧‧第二或閘
720‧‧‧第一加法器
80‧‧‧記憶體控制裝置
81‧‧‧PASR組態暫存器
83‧‧‧位址解碼器
831‧‧‧第一多工器
84‧‧‧位址選擇器
841_1~841_m‧‧‧第四及閘
842_1~842_n‧‧‧第五及閘
843‧‧‧第二多工器
844‧‧‧第三多工器
85‧‧‧控制器
86‧‧‧備份記憶單元
87‧‧‧休眠旗標
88‧‧‧遮罩暫存器
c_addr‧‧‧控制器輸出位址組
in_addr‧‧‧輸入位址組
re_addr‧‧‧映射位址組
re_addr1‧‧‧轉送的映射位址組
u_addr‧‧‧更新位址組
op_out‧‧‧運算輸出信號
addr_offset‧‧‧位址偏移
p_config‧‧‧PASR組態
p_config1‧‧‧PASR組態更新信號
m_config‧‧‧遮罩組態
s_config‧‧‧映射組態
s_config1‧‧‧映射組態更新信號
1st_default‧‧‧第一預設信號
2nd_default‧‧‧第二預設信號
3rd_default‧‧‧第三預設信號
WR‧‧‧讀寫信號
match‧‧‧匹配信號
add_out‧‧‧更新記憶組個數
reset‧‧‧重置信號
w_data‧‧‧寫入資料
r_data‧‧‧讀取資料
ctrl‧‧‧控制信號
status‧‧‧狀態信號
access_data‧‧‧存取資料
第1圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第2圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第3A圖係為一實施範例之位址映射器之示意圖。
第3B圖係為一實施範例之位址映射器之示意圖。
第3C圖係為一實施範例之位址映射器之示意圖。
第3D圖係為一實施範例之位址映射器之示意圖。
第4A圖係為一實施範例之記憶體位址存取及輸入位址組之示意圖。
第4B圖係為一實施範例之記憶體位址存取及映射位址組之示意圖。
第5A圖係為一實施範例之位址解碼器之示意圖。
第5B圖係為一實施範例之位址解碼器之示意圖。
第5C圖係為一實施範例之位址解碼器之示意圖。
第6圖係為一實施範例之位址選擇器之示意圖。
第7圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第8圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第9A圖係為一實施範例之位址映射器之示意圖。
第9B圖係為一實施範例之位址映射器之示意圖。
第9C圖係為一實施範例之位址映射器之示意圖。
第9D圖係為一實施範例之位址映射器之示意圖。
第10A圖係為一實施範例之位址解碼器之示意圖。
第10B圖係為一實施範例之位址解碼器之示意圖。
第10C圖係為一實施範例之位址解碼器之示意圖。
第11圖係為一實施範例之位址選擇器之示意圖。
第12圖係為一實施範例之位址映射器之示意圖。
第13圖係為一實施範例之記憶體控制方法之流程示意圖。
第14圖係為一實施範例之步驟S120之流程示意圖。
第15圖係為一實施範例之步驟S120之流程示意圖。
第16圖係為一實施範例之步驟S120之流程示意圖。
第17圖係為一實施範例之步驟S120之流程示意圖。
第18圖係為一實施範例之步驟S120之流程示意圖。
第19圖係為一實施範例之步驟S120之流程示意圖。
第20圖係為一實施範例之步驟S120之流程示意圖。
第21圖係為一實施範例之步驟S170之流程示意圖。
第22圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第23圖係為一實施範例之記憶體控制裝置之方塊示意圖。
第24圖係為一實施範例之位址解碼器之示意圖。
第25圖係為一實施範例之位址選擇器之示意圖。
30‧‧‧記憶體控制裝置
31‧‧‧PASR組態暫存器
32‧‧‧位址映射器
33‧‧‧位址解碼器
34‧‧‧位址選擇器
40‧‧‧記憶體
42‧‧‧記憶段
43‧‧‧模式暫存器
in_addr‧‧‧輸入位址組
re_addr‧‧‧映射位址組
u_addr‧‧‧更新位址組
p_config‧‧‧PASR組態
p_config1‧‧‧PASR組態更新信號

Claims (42)

  1. 一種記憶體控制裝置,配置於一計算機,用以控制該計算機中具有部分陣列自我更新(Partial Array Self Refresh,PASR)功能的一記憶體,該計算機可操作於一正常模式以及一休眠或待命模式,該記憶體包括多個記憶段,該記憶體控制裝置包括:一PASR組態暫存器,用以儲存一PASR組態,該PASR組態包括多個PASR組態位元,該些PASR組態位元與該些記憶段個別對應;一位址映射器,用以接收一輸入位址組以及一位址偏移,並依據該位址偏移將該輸入位址組轉換成一映射位址組,輸出該映射位址組,其中該映射位址組包括連續或落於一限定範圍內的至少一映射位址;一位址解碼器,耦接於該PASR組態暫存器以及該位址映射器,用以於該正常模式時接收該映射位址組以及該PASR組態,並依據該映射位址組更新該PASR組態,且將更新完的該PASR組態回存於該PASR組態暫存器;以及一位址選擇器,耦接該記憶體、該位址映射器以及該PASR組態暫存器,用以於該正常模式時,接收該映射位址組並據以產生用以存取該記憶體的一更新位址組,且用以於該休眠或待命模式時,接收更新完的該PASR組態並據以產生該更新位址組,依據該更新位址組設定該記憶體的至少一模式暫存器,並依據該至少一模式暫存器以讓該記憶體自我更新該PASR組 態對應的該至少一記憶段。
  2. 如請求項1所述之記憶體控制裝置,另包括:一控制器,耦接該記憶體、該位址映射器以及該位址選擇器,用以從該位址映射器接收該映射位址組,將該映射位址組傳送給該位址選擇器,並用以控制及存取該記憶體。
  3. 如請求項1所述之記憶體控制裝置,其中該位址映射器包括:一第一運算單元,用以將該輸入位址組以及該位址偏移相加成為該映射位址組,並將該映射位址組輸出給該控制器。
  4. 如請求項1所述之記憶體控制裝置,其中該位址映射器包括:一第一運算單元,用以將該輸入位址組以及該位址偏移相加;以及一第一及閘,用以將該第一運算單元的輸出信號與一第一預設信號進行及運算,將及運算的結果作為該映射位址組,並將該映射位址組輸出給該控制器。
  5. 如請求項4所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,且該位址映射器另包括:一遮罩暫存器,用以儲存一遮罩組態,該遮罩組態包括多個遮罩組態位元,該些遮罩組態位元與該些PASR組態位元個別對應;以及(m×n)個第二及閘,用以將對應的該些PASR組態位元 以及反向的該些遮罩組態位元進行及運算;其中該第一運算單元依據該(m×n)個第二及閘的及運算結果將該輸入位址組以及該位址偏移相加成為該映射位址組。
  6. 如請求項5所述之記憶體控制裝置,其中該位址解碼器包括:一第一多工器,用以依據該映射位址組以及該(m×n)個第二及閘的及運算結果更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  7. 如請求項4所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該位址映射器另包括:一第一解碼器,用以依據該輸入位址組產生一解碼位址組;m個第一或閘,用以將反向的屬於相同的該記憶組的該n個記憶段所對應的n個該PASR組態位元進行或運算;m個第三及閘,用以個別將該m個第一或閘的或運算結果與該解碼位址組進行及運算;一第二或閘,用以將該m個第三及閘的及運算結果進行或運算成為一匹配信號;以及一第一加法器,用以將該m個第一或閘的或運算結果相加成為一更新記憶組個數;其中該第一運算單元依據該匹配信號以及該更新記憶組個數,將該輸入位址組以及該位址偏移相加成為該映射位址 組。
  8. 如請求項7所述之記憶體控制裝置,其中該位址解碼器包括:一第一多工器,用以依據該映射位址組、該匹配信號以及該更新記憶組個數更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  9. 如請求項1所述之記憶體控制裝置,其中該位址映射器於該正常模式時接收該輸入位址組、多個預設位址以及多個查找位址,並依據該輸入位址組、該些預設位址以及該些查找位址將該輸入位址組轉換成該映射位址組。
  10. 如請求項9所述之記憶體控制裝置,另包括:一控制器,耦接該記憶體、該位址映射器以及該位址選擇器,用以從該位址映射器接收該映射位址組,將該映射位址組傳送給該位址選擇器,並用以控制及存取該記憶體。
  11. 如請求項10所述之記憶體控制裝置,其中該位址映射器包括:一查找暫存器,用以儲存一查找位址組,該查找位址組包括該些查找位址;一映射暫存器,用以儲存具有多個映射組態位元的一映射組態,該些映射組態位元與該些查找位址的一索引個別對應,表示該些查找位址是否已被拿來作映射使用;以及一第四多工器,用以依據該些映射組態位元以及該輸入位址組將該輸入位址組、該些預設位址以及該些查找位址轉換成 該映射位址組,將該映射位址組輸出給該控制器,依據該映射位址組更新該查找位址組,且將更新完的該查找位址組回存於該查找暫存器。
  12. 如請求項11所述之記憶體控制裝置,其中該位址映射器另包括:一第五多工器,用以依據該些映射組態位元以及該輸入位址組更新該些映射組態位元,且將更新完的該些映射組態位元回存於該映射暫存器。
  13. 如請求項11所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,且該位址映射器另包括:一遮罩暫存器,用以儲存一遮罩組態,該遮罩組態包括多個遮罩組態位元,該些遮罩組態位元與該些PASR組態位元個別對應;其中該第四多工器依據該些映射組態位元、該輸入位址組、該些預設位址、該些查找位址以及該遮罩組態將該輸入位址組轉換成該映射位址組。
  14. 如請求項11所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該位址映射器另包括:一第一解碼器,用以依據該輸入位址組產生一解碼位址組; m個第一或閘,用以將反向的屬於相同的該記憶組的該n個記憶段所對應的n個該PASR組態位元進行或運算;m個第三及閘,用以個別將該m個第一或閘的或運算結果與該解碼位址組進行及運算;一第二或閘,用以將該m個第三及閘的及運算結果進行或運算成為一匹配信號;以及一第一加法器,用以將該m個第一或閘的或運算結果相加成為一更新記憶組個數;其中該第四多工器依據該些映射組態位元、該輸入位址組、該匹配信號以及該更新記憶組個數將該輸入位址組、該些預設位址以及該些查找位址轉換成該映射位址組。
  15. 如請求項14所述之記憶體控制裝置,其中該位址解碼器包括:一第一多工器,用以依據該輸入位址組、該匹配信號以及該更新記憶組個數更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  16. 如請求項1所述之記憶體控制裝置,其中該位址解碼器包括:一第一多工器,用以依據該映射位址組更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  17. 如請求項1所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數, 該位址選擇器包括:m個第四及閘,用以將屬於相同的該記憶組的該n個記憶段所對應的n個更新完的該PASR組態位元進行及運算;n個第五及閘,用以將該m個記憶組中屬於相同的該記憶段的一索引的該m個記憶段所對應的m個更新完的該PASR組態位元進行及運算;一第二多工器,用以依據該m個第四及閘以及該n個第五及閘的及運算結果,輸出一第一信號;以及一第三多工器,用以依據該第一信號以及該映射位址組產生該更新位址組。
  18. 一種記憶體控制方法,用以控制一計算機中具有部分陣列自我更新(Partial Array Self Refresh,PASR)功能的一記憶體,該計算機可操作於一正常模式以及一休眠或待命模式,該記憶體包括多個記憶段,該記憶體控制方法包括:接收一輸入位址組;依據一位址偏移將該輸入位址組轉換成一映射位址組,其中該映射位址組包括連續或落於一限定範圍內的至少一映射位址;當於該正常模式時,執行以下步驟:依據該映射位址組更新一PASR組態,其中該PASR組態包括多個PASR組態位元,該些PASR組態位元與該些記憶段個別對應; 將更新完的該PASR組態回存;以及依據請映射位址組產生用以存取該記憶體的一更新位址組;以及當於該休眠或待命模式時,執行以下步驟:依據更新完的該PASR組態產生該更新位址組;依據該更新位址組設定該記憶體的至少一模式暫存器;以及依據該至少一模式暫存器讓該記憶體自我更新該PASR組態對應的該至少一記憶段。
  19. 如請求項18所述之記憶體控制方法,其中於該將該輸入位址組轉換成該映射位址組的步驟中,係將該輸入位址組以及該位址偏移相加成為該映射位址組。
  20. 如請求項19所述之記憶體控制方法,其中該將該輸入位址組轉換成該映射位址組的步驟包括:將該輸入位址組以及該位址偏移相加並產生一相加結果;以及將該相加結果與一第一預設信號進行及運算以產生一第一及運算結果,並將第一及運算結果作為該映射位址組。
  21. 如請求項19所述之記憶體控制方法,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該些PASR組態位元的個數是(m×n)個,且該將該輸入位址 組轉換成該映射位址組的步驟包括:接收一遮罩組態,該遮罩組態包括多個遮罩組態位元,該些遮罩組態位元與該些PASR組態位元個別對應;將對應的該些PASR組態位元以及反向的該些遮罩組態位元進行及運算並產生(m×n)個第二及運算結果;以及依據該(m×n)個第二及運算結果將該輸入位址組以及該位址偏移相加成為該映射位址組。
  22. 如請求項21所述之記憶體控制方法,其中於該依據該映射位址組更新該PASR組態的步驟中,係依據該映射位址組以及該遮罩組態更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  23. 如請求項19所述之記憶體控制方法,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,且該將該輸入位址組轉換成該映射位址組的步驟包括:依據該輸入位址組產生一解碼位址組;將反向的屬於相同的該記憶組的該n個記憶段所對應的n個該PASR組態位元進行或運算並產生m個第一或運算結果;將該m個第一或運算結果與該解碼位址組進行及運算並產生m個第三及運算結果;將該m個第三及運算結果進行或運算成為一匹配信號;將該m個第一或運算結果相加成為一更新記憶組個數; 以及依據該匹配信號以及該更新記憶組個數,將該輸入位址組以及該位址偏移相加成為該映射位址組。
  24. 如請求項23所述之記憶體控制方法,其中於該依據該映射位址組更新該PASR組態的步驟中,係依據該映射位址組、該匹配信號以及該更新記憶組個數更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  25. 如請求項18所述之記憶體控制方法,其中於該將該輸入位址組轉換成該映射位址組的步驟中,係依據該輸入位址組、多個預設位址以及多個查找位址將該輸入位址組轉換成該映射位址組。
  26. 如請求項25所述之記憶體控制方法,其中該將該輸入位址組轉換成該映射位址組的步驟包括:接收一查找位址組,該查找位址組包括該些查找位址;接收具有多個映射組態位元的一映射組態,該些映射組態位元與該些查找位址的一索引個別對應,表示該些查找位址是否已被拿來作映射使用;依據該些映射組態位元以及該輸入位址組將該輸入位址組、該些預設位址以及該些查找位址轉換成該映射位址組;以及依據該映射位址組更新該查找位址組。
  27. 如請求項26所述之記憶體控制方法,其中該將該輸入位址組轉換成該映射位址組的步驟另包括:依據該些映射組態位元以及該輸入位址組更新該些映射組態位元。
  28. 如請求項26所述之記憶體控制方法,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該將該輸入位址組轉換成該映射位址組的步驟另包括:接收一遮罩組態,該遮罩組態包括多個遮罩組態位元,該些遮罩組態位元與該些PASR組態位元個別對應;且於該依據該些映射組態位元以及該輸入位址組將該輸入位址組、該些預設位址以及該些查找位址轉換成該映射位址組的步驟中,係依據該些映射組態位元、該輸入位址組、該些預設位址、該些查找位址以及該遮罩組態將該輸入位址組轉換成該映射位址組。
  29. 如請求項26所述之記憶體控制方法,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該將該輸入位址組轉換成該映射位址組的步驟另包括:依據該輸入位址組產生一解碼位址組;將反向的屬於相同的該記憶組的該n個記憶段所對應的n個該PASR組態位元進行或運算並產生m個第一或運算結果;將該m個第一或運算結果與該解碼位址組進行及運算並產生m個第三及運算結果; 將該m個第三及運算結果進行或運算成為一匹配信號;將該m個第一或運算結果相加成為一更新記憶組個數;以及且於該依據該些映射組態位元以及該輸入位址組將該輸入位址組、該些預設位址以及該些查找位址轉換成該映射位址組的步驟中,係依據該些映射組態位元、該輸入位址組、該匹配信號以及該更新記憶組個數將該輸入位址組、該些預設位址以及該些查找位址轉換成該映射位址組。
  30. 如請求項29所述之記憶體控制方法,其中於該依據該映射位址組更新該PASR組態的步驟中,係依據該輸入位址組、該匹配信號以及該更新記憶組個數更新該PASR組態,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  31. 如請求項18所述之記憶體控制方法,其中更新完的每一該PASR組態位元係為一第二預設信號或是對應之更新前的該PASR組態位元。
  32. 如請求項18所述之記憶體控制方法,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,且該依據更新完的該PASR組態產生該更新位址組的步驟包括:將屬於相同的該記憶組的該n個記憶段所對應的n個更新完的該PASR組態位元進行及運算並產生m個第四及運算 結果;將該m個記憶組中屬於相同的該記憶段的一索引的該m個記憶段所對應的m個更新完的該PASR組態位元進行及運算並產生n個第五及運算結果;用以依據該m個第四及運算結果以及該n個第五及運算結果產生一第一信號;以及依據該第一信號以及該映射位址組產生該更新位址組。
  33. 一種記憶體控制裝置,配置於一計算機,用以控制該計算機中具有PASR功能的一記憶體,該記憶體包括多個記憶段,該記憶體控制裝置包括:一備份記憶單元;一休眠旗標,用以記錄包含該記憶體的該計算機是否處於一正常模式或是一休眠或待命模式;一PASR組態暫存器,用以儲存一PASR組態,該PASR組態包括多個PASR組態位元,該些PASR組態位元與該些記憶段個別對應;一控制器,耦接該記憶體、該休眠旗標以及該備份記憶單元,用以於該休眠或待命模式時,產生用來存取該記憶體的一控制器輸出位址組,並將該控制器輸出位址組對應的至少一該記憶段的內容複製到該備份記憶單元;一位址解碼器,耦接該休眠旗標、該控制器以及該PASR組態暫存器,用以於該休眠或待命模式時更新該PASR組態中 與該控制器輸出位址組對應的該至少一PASR組態位元,並將更新完的該PASR組態回存於該PASR組態暫存器;以及一位址選擇器,耦接該記憶體、該PASR組態暫存器以及該控制器,用以於該休眠或待命模式,接收該控制器輸出位址組或更新完的該PASR組態並據以產生一更新位址組,以讓該記憶體依據該更新位址組自我更新該PASR組態對應的該至少一記憶段。
  34. 如請求項33所述之記憶體控制裝置,其中該控制器於該正常模式時,接收一輸入位址組並據以產生用此存取該記憶體的該控制器輸出位址組。
  35. 如請求項33所述之記憶體控制裝置,其中該位址選擇器於該正常模式時,接收該控制器輸出位址組並據以產生用以存取該記憶體的該更新位址組。
  36. 如請求項35所述之記憶體控制裝置,其中該位址選擇器於該休眠或待命模式時,接收該控制器輸出位址組並據以產生該更新位址組,以依據該更新位址組將至少一該記憶段的內容複製到該備份記憶單元。
  37. 如請求項36所述之記憶體控制裝置,其中該位址選擇器於該休眠或待命模式時,接收更新完的該PASR組態並據以產生該更新位址組,並依據該更新位址組以設定至少一模式暫存器。
  38. 如請求項33所述之記憶體控制裝置,其中該備份記憶單元係為非揮發性記憶體。
  39. 如請求項33所述之記憶體控制裝置,其中該PASR組態預設為所有該些記憶段都要執行自我更新。
  40. 如請求項33所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,且該記憶體控制裝置另包括:一遮罩暫存器,用以儲存一遮罩組態;其中該控制器依據該遮罩組態產生該備份位址組。
  41. 如請求項33所述之記憶體控制裝置,其中該位址解碼器包括:一第一多工器,用以依據該備份位址組以及該休眠旗標以更新該PASR組態,其中更新完的每一該PASR組態位元係為一第三預設信號或是對應之更新前的該PASR組態位元。
  42. 如請求項33所述之記憶體控制裝置,其中該記憶體包括m個記憶組,每一該記憶組包括n個該些記憶段,m與n是正整數,該位址選擇器包括:m個第四及閘,用以將屬於相同的該記憶組的該n個記憶段所對應的n個更新完的該PASR組態位元進行及運算;n個第五及閘,用以將該m個記憶組中屬於相同記憶段的一索引的該m個記憶段所對應的m個更新完的該PASR組態位元進行及運算;一第二多工器,用以依據該m個第四及閘以及該n個第五及閘的及運算結果,輸出一第一信號;以及一第三多工器,用以依據該第一信號以及該控制器輸出 位址組產生該更新位址組。
TW101150622A 2012-12-27 2012-12-27 記憶體控制裝置及方法 TWI503662B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW101150622A TWI503662B (zh) 2012-12-27 2012-12-27 記憶體控制裝置及方法
CN201310039110.4A CN103902013B (zh) 2012-12-27 2013-01-31 存储器控制装置及方法
US13/889,773 US9165635B2 (en) 2012-12-27 2013-05-08 Memory controlling device and method thereof for controlling memory with partial array self refresh (PASR) function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101150622A TWI503662B (zh) 2012-12-27 2012-12-27 記憶體控制裝置及方法

Publications (2)

Publication Number Publication Date
TW201426304A TW201426304A (zh) 2014-07-01
TWI503662B true TWI503662B (zh) 2015-10-11

Family

ID=50993385

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101150622A TWI503662B (zh) 2012-12-27 2012-12-27 記憶體控制裝置及方法

Country Status (3)

Country Link
US (1) US9165635B2 (zh)
CN (1) CN103902013B (zh)
TW (1) TWI503662B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9432214B2 (en) * 2013-05-15 2016-08-30 Eaton Corporation Load panel including an aggregator component and a number of electrical switching apparatus assigning unique addresses thereto
KR20160011015A (ko) 2014-07-21 2016-01-29 에스케이하이닉스 주식회사 어드레스 생성회로 및 이를 포함하는 메모리 장치
WO2017113247A1 (zh) * 2015-12-30 2017-07-06 华为技术有限公司 降低内存功耗的方法及计算机设备
US10268405B2 (en) * 2016-03-17 2019-04-23 Mediatek, Inc. Dynamic rank switching for low power volatile memory
US10152276B2 (en) * 2016-07-18 2018-12-11 Winbond Electronics Corporation Memory device including data processor and program method of same
US10332582B2 (en) 2017-08-02 2019-06-25 Qualcomm Incorporated Partial refresh technique to save memory refresh power
US20190074051A1 (en) * 2017-09-07 2019-03-07 Mediatek Inc. Memory system and refresh control method thereof
CN114902333A (zh) 2019-12-20 2022-08-12 拉姆伯斯公司 部分阵列刷新定时
KR20230025554A (ko) * 2021-08-12 2023-02-22 삼성전자주식회사 호스트 장치 및 스토리지 장치의 구동 방법 및 스토리지 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW564420B (en) * 2001-05-07 2003-12-01 Samsung Electronics Co Ltd System and method for performing partial array self-refresh operation in a semiconductor memory device
US7088635B2 (en) * 2004-06-03 2006-08-08 Hynix Semiconductor, Inc. Bank based self refresh control apparatus in semiconductor memory device and its method
US7149140B2 (en) * 2004-11-15 2006-12-12 Hynix Semiconductor Inc. Method of refreshing a memory device utilizing PASR and piled refresh schemes
TW200807418A (en) * 2006-04-28 2008-02-01 Mosaid Technologies Inc Dynamic random access memory with fully independent partial array refresh function

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738861B2 (en) 2001-09-20 2004-05-18 Intel Corporation System and method for managing data in memory for reducing power consumption
US6650587B2 (en) 2001-11-19 2003-11-18 Micron Technology, Inc. Partial array self-refresh
KR100474551B1 (ko) 2003-02-10 2005-03-10 주식회사 하이닉스반도체 셀프 리프레쉬 장치 및 방법
US7342841B2 (en) 2004-12-21 2008-03-11 Intel Corporation Method, apparatus, and system for active refresh management
CN101485147B (zh) 2006-07-05 2012-07-18 Nxp股份有限公司 片上系统以及监控数据流通量的方法
US20080100636A1 (en) * 2006-10-31 2008-05-01 Jiin Lai Systems and Methods for Low-Power Computer Operation
US7757039B2 (en) 2007-09-18 2010-07-13 Nikos Kaburlasos DRAM selective self refresh
US8095725B2 (en) 2007-12-31 2012-01-10 Intel Corporation Device, system, and method of memory allocation
JP5229326B2 (ja) 2008-09-24 2013-07-03 富士通株式会社 マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム
US20100274960A1 (en) 2009-04-24 2010-10-28 Lee Kun-Bin Memory control method of memory device and memory control system thereof
US8468295B2 (en) 2009-12-02 2013-06-18 Dell Products L.P. System and method for reducing power consumption of memory
KR20110100466A (ko) 2010-03-04 2011-09-14 삼성전자주식회사 휘발성 메모리 장치를 구비하는 시스템의 파워다운 방법
US20110296095A1 (en) 2010-05-25 2011-12-01 Mediatek Inc. Data movement engine and memory control methods thereof
US20110296098A1 (en) 2010-06-01 2011-12-01 Dell Products L.P. System and Method for Reducing Power Consumption of Memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW564420B (en) * 2001-05-07 2003-12-01 Samsung Electronics Co Ltd System and method for performing partial array self-refresh operation in a semiconductor memory device
US7088635B2 (en) * 2004-06-03 2006-08-08 Hynix Semiconductor, Inc. Bank based self refresh control apparatus in semiconductor memory device and its method
US7149140B2 (en) * 2004-11-15 2006-12-12 Hynix Semiconductor Inc. Method of refreshing a memory device utilizing PASR and piled refresh schemes
TW200807418A (en) * 2006-04-28 2008-02-01 Mosaid Technologies Inc Dynamic random access memory with fully independent partial array refresh function

Also Published As

Publication number Publication date
TW201426304A (zh) 2014-07-01
CN103902013A (zh) 2014-07-02
CN103902013B (zh) 2016-12-28
US20140189230A1 (en) 2014-07-03
US9165635B2 (en) 2015-10-20

Similar Documents

Publication Publication Date Title
TWI503662B (zh) 記憶體控制裝置及方法
US10761780B2 (en) Memory system
US10162554B2 (en) System and method for controlling a programmable deduplication ratio for a memory system
US9471130B2 (en) Configuring idle states for entities in a computing device based on predictions of durations of idle periods
TWI596541B (zh) 資料存取系統、資料存取裝置及資料存取方法
US7506099B2 (en) Semiconductor storage apparatus
TW201636845A (zh) 記憶體裝置與其操作方法
US20170068304A1 (en) Low-power memory-access method and associated apparatus
KR102568051B1 (ko) 메모리 관리
US10108250B2 (en) Memory module, system including the same
CN105786722B (zh) 基于异构混合内存的nvm内存擦写控制方法和系统
US10235049B2 (en) Device and method to manage access method for memory pages
US9323614B2 (en) Dynamic error handling for on-chip memory structures
US10331552B2 (en) Storage device and memory system
CN116149554B (zh) 一种基于risc-v及其扩展指令的数据存储处理系统及其方法
JP2007128603A (ja) メモリ回路
US20130132659A1 (en) Microcontroller and method of controlling microcontroller
US10467137B2 (en) Apparatus, system, integrated circuit die, and method to determine when to bypass a second level cache when evicting modified data from a first level cache
US10719436B2 (en) Management device, information processing device, and management method
US20170115879A1 (en) Non-volatile ram system
US10423540B2 (en) Apparatus, system, and method to determine a cache line in a first memory device to be evicted for an incoming cache line from a second memory device
JP2010108381A (ja) 集積回路、集積回路の制御方法および半導体デバイス
JP6130949B1 (ja) メモリシステムおよびプロセッサシステム
JP2017058960A (ja) メモリシステム
JP2013228988A (ja) 電子機器