TWI515563B - 用於階層式記憶體系統之記憶體管理 - Google Patents

用於階層式記憶體系統之記憶體管理 Download PDF

Info

Publication number
TWI515563B
TWI515563B TW102125808A TW102125808A TWI515563B TW I515563 B TWI515563 B TW I515563B TW 102125808 A TW102125808 A TW 102125808A TW 102125808 A TW102125808 A TW 102125808A TW I515563 B TWI515563 B TW I515563B
Authority
TW
Taiwan
Prior art keywords
memory
management system
address
physical
translation
Prior art date
Application number
TW102125808A
Other languages
English (en)
Other versions
TW201411345A (zh
Inventor
狄恩A 克藍
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 TW201411345A publication Critical patent/TW201411345A/zh
Application granted granted Critical
Publication of TWI515563B publication Critical patent/TWI515563B/zh

Links

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • 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

Description

用於階層式記憶體系統之記憶體管理
本發明之實施例大體上係關於記憶體管理。更具體言之,本發明之實施例可提供用於一階層式記憶體系統中之記憶體管理之一或多種技術。
電腦系統通常用於數種組態中以提供多種計算功能。被分派開發電腦系統及系統組件之任務之設計工程師通常考慮處理速度、系統靈活性、電力消耗及大小約束。電腦系統大體上包含複數個記憶體裝置(例如,一雙列直插記憶體模組(DIMM)可含有8個、16個或更多個記憶體裝置,一堆疊NAND快閃封裝可含有2個、4個或8個NAND晶粒)及可用以儲存資料(例如,程式及使用者資料)且可存取諸如處理器或周邊裝置之其他系統組件之複數個記憶體類型(即,可具有不同效能及/或電力特性之記憶體裝置)。此等記憶體裝置可包含揮發性及非揮發性記憶體裝置。
通常,藉由一記憶體管理系統管理一計算系統之記憶體位址空間。在某些計算系統中,記憶體管理系統可將記憶體位址空間之部分動態地分配至藉由處理器執行之程式且可將記憶體位址空間之一分離部分分配至由此一程式使用之資料。相反地,當處理器不再執行程式時,記憶體管理系統可自程式解除分配記憶體位址空間之部分。記憶 體管理系統可包含用以將由處理器使用之虛擬記憶體位址映射至實體記憶體位址空間之表。此等表可包含一主記憶體轉譯表(MMXT)及一轉譯後備緩衝器(TLB)。通常TLB含有用於使用頻率大於MMXT中之記憶體位址之記憶體位址之記憶體映射。在MMXT及/或TLB中搜尋一記憶體映射可耗費時間,從而導致延遲資料擷取。
記憶體系統通常配置有一記憶體階層。例如,可在暫存器、快取區(例如,層級1、層級2、層級3)、主記憶體(例如,RAM)、磁碟儲存器等等中發現特定記憶體。如可了解,一些記憶體系統包含具有不同操作特性(例如,以不同速度操作)之記憶體類型。然而,記憶體管理系統大體上不區分記憶體系統中之記憶體類型(例如,主記憶體)。 因此,此等記憶體管理系統可以相同方式處置所有類型的記憶體。進一步言之,記憶體系統中之一些記憶體裝置可存取(例如,自一些記憶體裝置讀取及/或寫入至一些記憶體裝置)的次數大於記憶體系統中之其他記憶體裝置。因而,一記憶體管理系統可能難以識別(例如,判定)記憶體系統內以一特定速度操作之記憶體裝置。同樣地,一記憶體管理系統可能難以識別存取次數大於其他記憶體裝置之記憶體裝置。
因此,本發明之實施例可針對上文陳述之問題之一或多者。
10‧‧‧基於處理器之系統
12‧‧‧處理器
13‧‧‧快取區
14‧‧‧階層式記憶體系統
16‧‧‧系統匯流排
18‧‧‧記憶體管理系統
20‧‧‧記憶體裝置/記憶體_0
22‧‧‧記憶體裝置/記憶體_1
24‧‧‧記憶體裝置/記憶體_N
26‧‧‧資料匯流排PA_0
28‧‧‧資料匯流排PA_1
30‧‧‧資料匯流排PA_N
32‧‧‧虛擬記憶體位址
34‧‧‧實體記憶體位址
36‧‧‧頁錯誤
38‧‧‧轉譯(XLAT)轉譯裝置
40‧‧‧轉譯後備緩衝器(TLB)
42‧‧‧表
44‧‧‧列
46‧‧‧虛擬記憶體位址欄
48‧‧‧實體記憶體位址欄
50‧‧‧最近最少使用(LRU)欄
52‧‧‧裝置識別(TYPE)欄
54‧‧‧轉譯表(XT)
56‧‧‧控制單元
58‧‧‧列
60‧‧‧虛擬記憶體位址欄
62‧‧‧實體記憶體位址欄
64‧‧‧最近最少使用(LRU)欄
66‧‧‧裝置識別(TYPE)欄
68‧‧‧方法
70‧‧‧步驟
72‧‧‧步驟
74‧‧‧步驟
76‧‧‧步驟
78‧‧‧步驟
80‧‧‧步驟
82‧‧‧步驟
84‧‧‧步驟
86‧‧‧步驟
88‧‧‧步驟
90‧‧‧流程圖
92‧‧‧步驟
94‧‧‧步驟
96‧‧‧步驟
98‧‧‧步驟
100‧‧‧步驟
102‧‧‧步驟
104‧‧‧步驟
106‧‧‧步驟
108‧‧‧步驟
圖1圖解說明根據本發明之實施例之一基於處理器之系統之一方塊圖;圖2圖解說明根據本發明之實施例之一記憶體管理系統之一方塊圖;圖3圖解說明根據本發明之實施例之一轉譯後備緩衝器之一方塊圖;圖4圖解說明根據本發明之實施例之一轉譯裝置之一方塊圖; 圖5圖解說明根據本發明之實施例之用於在一記憶體管理系統接收一虛擬記憶體位址時存取一實體記憶體位址之一方法之一流程圖;及圖6圖解說明根據本發明之實施例之用於管理一計算系統之實體記憶體位址空間之一方法之一流程圖。
一些隨後論述之實施例可促進更多功能性之記憶體系統,諸如使用多個不同類型的記憶體裝置之記憶體系統及動態地重新配置儲存於該等不同類型的記憶體裝置上之資料之記憶體系統。如下文詳細地描述,一記憶體管理系統可包含使一實體記憶體位址與一記憶體裝置類型相關之一表。例如,一記憶體管理系統可包含具有多個虛擬記憶體位址之一表。各虛擬記憶體位址可對應於一實體記憶體位址且對應於識別一對應記憶體裝置類型之資料。實體記憶體位址可用以在發生表命中時存取記憶體裝置。因而,下列論述描述根據本技術之實施例之裝置及方法。
現在參考該等圖式且最初參考圖1,圖解說明描繪一基於處理器之系統(整體由參考數字10標示)之一方塊圖。系統10可為多種類型之任一者,諸如電腦、傳呼機、蜂巢式電話、個人記事簿、控制電路等等。在一典型基於處理器之裝置中,諸如微處理器之一或多個處理器12控制系統10中之系統功能及請求之處理。如應了解,處理器12可包含用於將組件耦合至處理器12之一嵌入式北橋或南橋(未展示)。或者,系統10可包含耦合在處理器12與系統10之各種組件之間之分離橋。如圖解說明,處理器12可包含快取區13(例如,CPU快取區)以減小處理器12存取記憶體所花費的平均時間。
各種裝置可取決於系統10執行之功能而耦合至處理器12。例如,一使用者介面可耦合至處理器12。使用者介面可包含(例如)按 鈕、開關、一鍵盤、一光筆、一滑鼠、一顯示器及/或一語音辨識系統。顯示器可包含(例如)一觸控顯示器、一LCD顯示器、一CRT、LED及/或一音訊顯示器。一或多個通信埠亦可耦合至處理器12。通信埠可經調適以耦合至一或多個周邊裝置(諸如一數據機、一印表機、一電腦)或耦合至一網路(諸如(例如)一區域網路、遠端區域網路、內部網路或網際網路)。
因為處理器12通常藉由實施軟體程式控制系統10之運行,所以記憶體可操作地耦合至處理器12以儲存並促進各種程式之執行。因此,一階層式記憶體系統14係經由一系統匯流排16可操作地耦合至處理器12。階層式記憶體系統14包含一記憶體管理系統18及任何數目個記憶體裝置。例如,階層式記憶體系統14可包含(例如,一第一類型之)一記憶體_0 20、(例如,一第二類型之)一記憶體_1 22及由(例如,一第n類型之)記憶體_N 24表示之任何額外的記憶體裝置。
記憶體管理系統18可執行多種記憶體管理功能。例如,記憶體管理系統18可管理虛擬記憶體位址至實體記憶體位址轉譯、記憶體重新分配、記憶體組織、記憶體使用等等。如圖解說明,記憶體管理系統18係藉由各自資料匯流排PA_0 26、PA_1 28及PA_N 30可操作地耦合至記憶體裝置20、22及24。如應了解,PA_N 30可表示對應於記憶體裝置記憶體_N 24之數個資料匯流排。
記憶體裝置20、22及24之一或多者可為揮發性記憶體,其可包含動態隨機存取記憶體(DRAM)及/或靜態隨機存取記憶體(SRAM)。揮發性記憶體可包含數個記憶體模組,諸如單列直插記憶體模組(SIMM)、雙列直插記憶體模組(DIMM)及/或混合記憶體立方體(HMC)。如應了解,揮發性記憶體可簡稱為「系統記憶體」。揮發性記憶體通常相當大使得其可儲存經動態載入之應用程式及資料。
進一步言之,記憶體裝置20、22及24之一或多者可為非揮發性 記憶體,其可包含諸如EPROM之唯讀記憶體(ROM)、快閃記憶體(例如,NOR及/或NAND)及/或結合揮發性記憶體使用之相變記憶體(PCM)。ROM之大小通常經選擇足夠大以儲存任何必要的作業系統、應用程式及固定資料。此外,非揮發性記憶體可包含一高容量記憶體,諸如一磁帶機或磁碟機記憶體。因此,記憶體裝置20、22及24無須為區塊儲存裝置。
因而,階層式記憶體系統14通用於容許許多類型的記憶體裝置20、22及24可操作地耦合至處理器12。因此,記憶體管理系統18可適於階層式記憶體系統14以最佳化記憶體裝置20、22及24之效能。圖2至圖4中圖解說明經調適用於階層式記憶體系統14之記憶體管理系統18之一些實例。具體言之,圖2圖解說明具有一轉譯(XLAT)轉譯裝置及一轉譯後備緩衝器之一記憶體管理系統18,且圖3及圖4分別進一步圖解說明轉譯後備緩衝器及XLAT轉譯裝置。圖5及圖6圖解說明記憶體管理系統18可用來管理記憶體裝置20、22及24之方法。
現在參考圖2,圖解說明記憶體管理系統18之一方塊圖。在操作期間,記憶體管理系統18(例如,自處理器12)接收一虛擬記憶體位址32。記憶體管理系統18識別映射至虛擬記憶體位址32且用以存取記憶體裝置20、22及24之一者之一實體記憶體位址34。若記憶體管理系統18不能識別映射至虛擬記憶體位址32之實體記憶體位址34,則記憶體管理系統18產出(例如,產生)可傳輸至處理器12之一頁錯誤36。
為識別映射至虛擬記憶體位址32之實體記憶體位址34,記憶體管理系統18使用一XLAT轉譯裝置38及一轉譯後備緩衝器(TLB)40。XLAT轉譯裝置38及TLB 40可各自儲存將虛擬記憶體位址映射至實體記憶體位址之一各自表。雖然單獨圖解說明XLAT轉譯裝置38及TLB 40,但是在某些實施例中,XLAT轉譯裝置38及TLB 40可併入單個裝置內。如應了解,XLAT轉譯裝置38及TLB 40可含有非重疊資料。例 如,XLAT轉譯裝置38可含有用於虛擬記憶體位址之一第一部分之表項目,而TLB 40含有用於虛擬記憶體位址之一第二部分之表項目。
通常,TLB 40含有用於存取頻率大於儲存於XLAT轉譯裝置38中之虛擬記憶體位址之虛擬記憶體位址之表項目。在某些實施例中,對虛擬記憶體位址32之一搜尋可同時發生在XLAT轉譯裝置38及TLB 40中。在其他實施例中,在XLAT轉譯裝置38中發生對虛擬記憶體位址32之一搜尋之前可於TLB 40中發生該搜尋。然而,在識別(例如,定位)包含虛擬記憶體位址32之一表項目之後,XLAT轉譯裝置38及TLB 40二者皆停止搜尋虛擬記憶體位址32。
在本實施例中,XLAT轉譯裝置38及TLB 40可各自儲存與存取一特定虛擬記憶體位址及/或實體記憶體位址之頻率有關的資料。進一步言之,XLAT轉譯裝置38及TLB 40可各自儲存識別對應於實體記憶體位址之一記憶體裝置類型之資料。如下文詳細地解釋,使用此額外資料,記憶體管理系統18可最佳化記憶體使用及/或最佳化儲存於XLAT轉譯裝置38及TLB 40中之表映射資料。
因此,圖3圖解說明可儲存與存取一特定虛擬記憶體位址及/或實體記憶體位址之頻率有關的資料且可儲存識別對應於該特定實體記憶體位址之一記憶體裝置類型之資料之TLB 40之一方塊圖。在某些實施例中,TLB 40可為一內容可定址記憶體(CAM)裝置或n路關聯記憶體裝置。具體言之,TLB 40儲存具有列44及欄(46至52)之一表42。在本實施例中,各列44與一分離表項目有關。因而,各列44包含一虛擬記憶體位址欄46、一實體記憶體位址欄48、一最近最少使用(LRU)欄50及一裝置識別(TYPE)欄52。
虛擬記憶體位址欄46包含TLB 40中含有之所有虛擬記憶體位址之一清單。進一步言之,實體記憶體位址欄48包含各列44中對應於各自列44之虛擬記憶體位址欄46中之虛擬記憶體位址之一實體記憶體位 址。LRU欄50包含與存取一各自實體記憶體位址之頻率有關的資料(例如,存取或使用資料)。例如,LRU欄50可包含表示已存取其對應虛擬記憶體位址及/或實體記憶體位址之總次數之一值。因而,LRU欄50可用以識別是否應自表42移除表項目。例如,可自表42移除存取頻率最小(例如,在LRU欄50中儲存有最低值)之列44。
TYPE欄52包含各列44中識別對應於各自列44之實體記憶體位址欄48中之實體記憶體位址之一裝置類型之裝置識別資料。(例如,當發生表命中時)使用實體記憶體位址存取裝置。例如,裝置識別資料可為對應於一裝置類型之一值。如應了解,記憶體管理系統18可包含對應於各裝置之資料。例如,記憶體管理系統18可包含諸如以下各者之資料:各裝置之一名稱、各裝置之一操作速度、指派至各裝置之一匯流排、各裝置相對於其他實體裝置之相對速度之一指示、各裝置之一耐久性等等。在操作期間,實體位址可用以直接存取記憶體裝置20、22及24,藉此快速地存取儲存於記憶體裝置20、22及24上之資料。
參考圖4,圖解說明XLAT轉譯裝置38之一方塊圖。XLAT轉譯裝置38包含一轉譯表(XT)54,該轉譯表(XT)54可儲存與存取一特定虛擬記憶體位址及/或實體記憶體位址之頻率有關之資料且可儲存識別對應於各實體記憶體位址之記憶體裝置之一類型之資料。進一步言之,XLAT轉譯裝置38包含用於控制XLAT轉譯裝置38之各種操作之一控制單元56(例如,一混合記憶體立方體之一邏輯晶粒)。具體言之,XT 54儲存具有列58及欄(60至66)之一表。在本實施例中,各列58與一分離表項目有關。因而,各列58包含一虛擬記憶體位址欄60、一實體記憶體位址欄62、一LRU欄64及一TYPE欄66。
虛擬記憶體位址欄60包含XT 54中含有之所有虛擬記憶體位址之一清單。進一步言之,實體記憶體位址欄62包含各列58中對應於各自 列58之虛擬記憶體位址欄60中之虛擬記憶體位址之一實體記憶體位址。LRU欄64包含與存取一各自實體記憶體位址之頻率有關之資料(例如,存取或使用資料)。例如,LRU欄64可包含表示已存取其各自虛擬記憶體位址及/或實體記憶體位址之總次數之一值。因而,LRU欄64可(藉由轉譯裝置38之控制單元56)用以識別是否應將表項目自XT 54移動至TLB 40。例如,至少在一些條件中,可將以最高頻率存取(例如,在LRU欄64中儲存有最高值)之列58自XT 54移動至TLB 40。
TYPE欄66包含各列58中識別對應於各自列58之實體記憶體位址欄62中之實體記憶體位址之一裝置類型之識別資料。該裝置係(例如,在發生表命中時)使用實體記憶體位址加以存取。例如,裝置識別資料可為對應於一裝置類型之一值。在操作期間,實體記憶體位址可用以直接存取記憶體裝置20、22及24,藉此快速地存取儲存於記憶體裝置20、22及24上之資料。
XLAT轉譯裝置38可為多種不同裝置之任一者,諸如一混合記憶體立方體(HMC)或諸如美國公開案第2010/0138575號中所揭示者之一型樣辨識裝置。此外,硬體(例如,處理器)及/或軟體可用以執行XT 54之一搜尋。如應了解,尤其在儲存於主記憶體中之情況下,延長對XT 54之存取可導致一顯著效能損失(例如,在轉譯裝置38本身用作主記憶體之情況下,若具體實施於一HMC裝置中,則情況可能如此)。因此,除記憶體單元之外,某些轉譯裝置38亦可包含硬體及/或軟體邏輯。例如,XT 54可儲存於一高效能記憶體陣列(HPMA)(例如,HMC)或一輔助式搜尋記憶體裝置(諸如先前提及之型樣辨識裝置)上。此等裝置可經組態以搜尋XT 54內之虛擬記憶體位址(例如,執行一表查詢(table walk))。應注意,TLB 40亦可儲存於一HPMA或一輔助式搜尋記憶體裝置上。在某些實施例中,TLB 40及XT 54可儲存於相同裝置上。藉由使用一HPMA或一輔助式搜尋記憶體裝置,可達成 改良之效能。在某些實施例中,控制單元56可用以執行多種功能。例如,控制單元56可控制頁表查詢、TLB更新、LRU計算、LRU更新、頁移動之直接記憶體存取、動態地重新配置指派至該等裝置之資料、動態地改變虛擬記憶體位址至實體記憶體位址之映射等等。
控制單元56可包含軟體及/或硬體以輔助記憶體管理系統18之功能。因而,圖5圖解說明用於在記憶體管理系統18接收到一虛擬記憶體位址時存取一實體記憶體位址之一方法68之一流程圖。在方塊70處,記憶體管理系統18接收一虛擬記憶體位址。接著,在方塊72處,記憶體管理系統18搜尋TLB 40中之虛擬記憶體位址(例如,執行查找)。接著,在方塊74處,判定記憶體管理系統18是否已識別(例如,發現)TLB 40中之虛擬記憶體位址。若存在一TLB「未命中」,則在方塊76處,記憶體管理系統18搜尋XT 54中之虛擬記憶體位址(例如,執行一查找或一表查詢)。接著,在方塊78處,判定管理記憶體系統18是否已識別XT 54中之虛擬記憶體位址。若存在一XT「未命中」,則在方塊80處,記憶體管理系統18產生發送至處理器12之一頁錯誤36。
若存在一XT「命中」,則在方塊82處,記憶體管理系統將XT表項目移動至TLB 40。進一步言之,在方塊82處,記憶體管理系統18將最少使用之TLB 40項目移動至XT 54。接著,在方塊84處,記憶體管理系統18將虛擬記憶體位址轉譯為一實體記憶體位址。這發生在方塊82之後,或回應於經由方塊74發生之一TLB「命中」而發生。如應了解,將虛擬記憶體位址轉譯為實體記憶體位址可包含存取與虛擬記憶體位址有關之項目中之所有資料。例如,記憶體管理系統18可自用於存取記憶體裝置之表項目擷取TYPE欄資料。在方塊86處,更新(例如,修改)所存取表項目之LRU資料。例如,可使儲存於LRU欄中之值增加1。接著,在方塊88處,存取實體記憶體位址。
現在參考圖6,圖解說明用於管理一計算系統之一記憶體位址空 間之一方法之一流程圖90。在方塊92處,記憶體管理系統18可使用LRU資料以對表項目進行排序,諸如基於存取一表項目之一虛擬記憶體位址及/或一實體記憶體位址之次數而對該表項目進行排序。接著,在方塊94處,記憶體管理系統18可識別使用量大於其他表項目之表項目及/或記憶體管理系統18可識別使用量小於其他表項目之表項目。接著,在方塊96處,記憶體管理系統18可比較被分配至所識別項目之記憶體裝置之類型與記憶體裝置之可用類型。例如,記憶體管理系統18可識別使用量較大(例如,較高存取速率)之表項目是否被分配至優於使用量較小之表項目之記憶體類型(例如,較快記憶體、改良之耐久性)。在方塊98處,記憶體管理系統18可識別是否存在存取實體記憶體位址之次數與對應於實體記憶體位址之記憶體裝置之一類型之間之一失配。
若不存在一失配,則方法可返回至方塊92。然而,若存在存取實體記憶體位址之次數與對應於實體記憶體位址之記憶體裝置之類型之間之一失配,則記憶體管理系統18可經由方塊100識別是否可執行一記憶體交換。在某些實施例中,一記憶體交換可包含使儲存於一第一類型之記憶體中之一第一資料集合與儲存於一第二類型之記憶體中之一第二資料集合互換。例如,記憶體管理系統18可將儲存於一第一類型之記憶體中之一第一資料集合移動至一第二類型之記憶體,且將儲存於該第二類型之記憶體中之一第二資料集合移動至該第一類型之記憶體。此外,可同時發生移動第一資料集合及第二資料集合。例如,某些類型的記憶體可支援同時發生於兩個方向上之資料移動,諸如DRAM DIMM及HMC以及DRAM DIMM及PCM。若無法執行一記憶體交換,則記憶體管理系統18可經由方塊102識別是否存在可用於移動失配資料之任何記憶體。若不存在任何可用的記憶體,則方法可返回至方塊100。
若存在可用記憶體,則記憶體管理系統18可經由方塊104將資料自所識別項目之記憶體移動至可用記憶體。例如,記憶體管理系統18可使對應於所識別表項目之資料移動至一不同類型的記憶體裝置以移除存取實體記憶體位址之次數與對應於實體記憶體位址之記憶體類型之間的失配。返回至方塊100,若記憶體管理系統18能夠執行一記憶體交換,則記憶體管理系統18可經由方塊106在記憶體裝置之間交換資料。在方塊104或方塊106之後,記憶體管理系統18更新TLB 40及/或XT 54表項目。例如,記憶體管理系統18可使用一虛擬記憶體位址與一實體記憶體位址之間之一經修訂映射、經修訂裝置資料及/或經更新LRU資料來更新TLB 40及/或XT 54。
雖然方塊92至108被描述為藉由記憶體管理系統18執行,但是應注意,記憶體管理系統18之任何部分(例如,硬體及/或軟體)可執行所描述之項。例如,可藉由控制單元56執行方塊92至108之任一者。在某些實施例中,記憶體管理系統18及/或控制單元56可經組態以基於一記憶體類型之持久性或速度動態地改變虛擬記憶體位址至實體記憶體位址之映射。使用本文中描述之技術,記憶體管理系統18可最大化系統10之效能及/或最小化軟體額外耗用。
雖然本發明可具有各種修改及替代形式,但是已在圖式中藉由實例展示且在本文中詳細描述特定實施例。然而,應瞭解,本發明並不旨在限於所揭示之特定形式。實情係,本發明涵蓋落於如藉由下列隨附申請專利範圍定義之本發明之精神及範疇內之所有修改、等效物及替代。
18‧‧‧記憶體管理系統
32‧‧‧虛擬記憶體位址
34‧‧‧實體記憶體位址
36‧‧‧頁錯誤
38‧‧‧轉譯(XLAT)轉譯裝置
40‧‧‧轉譯後備緩衝器(TLB)

Claims (28)

  1. 一種記憶體管理系統,其包括:一表,其經組態以將一虛擬記憶體位址相關於一實體記憶體位址、相關於存取該實體記憶體位址之頻率之有關的資料且相關於識別包括該實體記憶體位址之一記憶體裝置之一類型之資料;及一控制單元,其經組態以至少部分基於該表而控制該記憶體裝置之操作。
  2. 如請求項1之記憶體管理系統,其中該表儲存於一轉譯後備緩衝器中。
  3. 如請求項1之記憶體管理系統,其中該表經組態以將該虛擬記憶體位址相關於與存取該虛擬記憶體位址之頻率有關的資料。
  4. 如請求項1之記憶體管理系統,其中該表包括儲存於一轉譯裝置中之一記憶體轉譯表。
  5. 如請求項1之記憶體管理系統,其中該記憶體管理系統經組態以至少基於與存取該實體記憶體位址之頻率有關的該資料而在一記憶體轉譯表與一轉譯後備緩衝器之間移動該虛擬記憶體位址、該實體記憶體位址、存取該實體記憶體位址之頻率之有關的該資料及識別一記憶體裝置之一類型之該資料。
  6. 一種記憶體管理系統,其包括:一轉譯裝置,其經組態以儲存一第一記憶體轉譯表,其中該第一記憶體轉譯表經組態以映射第一複數個虛擬記憶體位址至第一複數個實體記憶體位址;一轉譯後備緩衝器(TLB),其經組態以儲存一第二記憶體轉譯表,其中該第二記憶體轉譯表經組態以映射第二複數個虛擬記 憶體位址至第二複數個實體記憶體位址,其中該第一記憶體轉譯表及該第二記憶體轉譯表並未重疊;及一控制單元,其經組態以至少部分基於該第一記憶體轉譯表及該第二記憶體轉譯表而控制一記憶體系統之操作,該記憶體系統包括該第一複數個實體記憶體位址或該第二複數個實體記憶體位址中之至少一實體記憶體位址。
  7. 如請求項6之記憶體管理系統,其中該控制單元經組態以搜尋該第一記憶體轉譯表以識別一第一虛擬記憶體位址。
  8. 如請求項7之記憶體管理系統,其中該控制單元經組態以獨立於該記憶體管理系統外部之一處理裝置而搜尋該第一記憶體轉譯表。
  9. 如請求項6之記憶體管理系統,其中該轉譯裝置包括一高效能記憶體陣列。
  10. 如請求項9之記憶體管理系統,其中該高效能記憶體陣列包括一混合記憶體立方體。
  11. 如請求項10之記憶體管理系統,其中該混合記憶體立方體經組態以執行該第一記憶體轉譯表之一表查詢。
  12. 如請求項6之記憶體管理系統,其中該轉譯裝置經組態以將主記憶體提供至一電腦系統。
  13. 如請求項6之記憶體管理系統,其中該轉譯裝置包括一輔助式搜尋記憶體裝置。
  14. 如請求項6之記憶體管理系統,其中該TLB包括一內容可定址記憶體。
  15. 如請求項6之記憶體管理系統,其中該TLB包括一n路關聯記憶體裝置。
  16. 如請求項6之記憶體管理系統,其中該TLB及該轉譯裝置係併入 一單個裝置內。
  17. 如請求項6之記憶體管理系統,其中該TLB係併入一第一裝置內且該轉譯裝置係併入一第二裝置內。
  18. 如請求項6之記憶體管理系統,其中該控制單元經組態以至少部分基於存取該虛擬記憶體位址之頻率之有關的資料而自該第一記憶體轉譯表移動將一虛擬記憶體位址相關於一實體記憶體位址之一表項目自該第一記憶體轉譯表移至該第二記憶體轉譯表。
  19. 如請求項6之記憶體管理系統,其中該控制單元經組態以同時搜尋該第一記憶體轉譯表及該第二記憶體轉譯表。
  20. 如請求項6之記憶體管理系統,其中該控制單元經組態以在該第一記憶體轉譯表之前搜尋該第二記憶體轉譯表。
  21. 如請求項6之記憶體管理系統,其中該控制單元經組態以在該第一記憶體轉譯表或該第二記憶體轉譯表中發現包含一虛擬記憶體位址之一表項目之後停止該第一記憶體轉譯表或該第二記憶體轉譯表中之一搜尋。
  22. 如請求項6之記憶體管理系統,其中該控制單元經組態以更新該TLB。
  23. 如請求項6之記憶體管理系統,其中該控制單元經組態以更新該第一記憶體轉譯表或該第二記憶體轉譯表中之最近最少使用(LRU)資料。
  24. 如請求項8之記憶體管理系統,其中該控制單元經組態以至少部分基於存取該第一實體記憶體位址之頻率之有關的資料、該第一記憶體類型及該第二記憶體類型之有關的資料而將一第一類型之一第一實體記憶體位址中之一第一資料集合移至一第二類型之一第二實體記憶體位址。
  25. 如請求項6之記憶體管理系統,其中該控制單元經組態以至少部 分基於一第一實體記憶體位址之一記憶體類型、一第二實體記憶體位址之一記憶體類型及存取該第一實體記憶體位址之頻率之有關的資料而動態地改變一第一虛擬記憶體位址之該第一記憶體轉譯表及該第二記憶體轉譯表中自該第一實體記憶體位址至該第二實體記憶體位址之映射。
  26. 一種電腦系統,其包括:一處理器;及一記憶體管理系統,其包括一轉譯裝置,其中該轉譯裝置包括一控制單元,該控制單元經組態以至少部分基於對應於一第一實體記憶體位址之一第一記憶體類型、對應於一第二實體記憶體位址之一第二記憶體類型及存取一虛擬記憶體位址之頻率之有關的資料而動態地改變該虛擬記憶體位址自該第一實體記憶體位址至該第二實體記憶體位址之映射。
  27. 如請求項26之系統,其中該記憶體管理系統經組態以基於該第二記憶體類型之一耐久性動態地改變該虛擬記憶體位址至該第二實體記憶體位址之該映射。
  28. 如請求項26之系統,其中該記憶體管理系統經組態以基於該記憶體類型之一速度動態地改變該虛擬記憶體位址至該第二實體記憶體位址之該映射。
TW102125808A 2012-07-18 2013-07-18 用於階層式記憶體系統之記憶體管理 TWI515563B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/552,491 US9524248B2 (en) 2012-07-18 2012-07-18 Memory management for a hierarchical memory system

Publications (2)

Publication Number Publication Date
TW201411345A TW201411345A (zh) 2014-03-16
TWI515563B true TWI515563B (zh) 2016-01-01

Family

ID=49947568

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102125808A TWI515563B (zh) 2012-07-18 2013-07-18 用於階層式記憶體系統之記憶體管理

Country Status (7)

Country Link
US (4) US9524248B2 (zh)
EP (1) EP2875432B1 (zh)
JP (1) JP6367797B2 (zh)
KR (1) KR102144491B1 (zh)
CN (1) CN104487953B (zh)
TW (1) TWI515563B (zh)
WO (1) WO2014014711A1 (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US9563399B2 (en) 2013-08-30 2017-02-07 Cavium, Inc. Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features
US9904630B2 (en) 2014-01-31 2018-02-27 Cavium, Inc. Finite automata processing based on a top of stack (TOS) memory
US10110558B2 (en) * 2014-04-14 2018-10-23 Cavium, Inc. Processing of finite automata based on memory hierarchy
US10002326B2 (en) * 2014-04-14 2018-06-19 Cavium, Inc. Compilation of finite automata based on memory hierarchy
US9501222B2 (en) 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
JP6394062B2 (ja) * 2014-05-20 2018-09-26 富士通株式会社 情報処理装置およびバス制御方法
US9792227B2 (en) * 2014-08-19 2017-10-17 Samsung Electronics Co., Ltd. Heterogeneous unified memory
US9760488B2 (en) * 2014-12-01 2017-09-12 Macronix International Co., Ltd. Cache controlling method for memory system and cache system thereof
US10083131B2 (en) * 2014-12-11 2018-09-25 Ampere Computing Llc Generating and/or employing a descriptor associated with a memory translation table
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
WO2016109571A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Devices for time division multiplexing of state machine engine signals
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
CN105808455B (zh) 2014-12-31 2020-04-28 华为技术有限公司 访问内存的方法、存储级内存及计算机系统
US10162762B2 (en) * 2015-04-22 2018-12-25 Arm Limited Managing memory based on hint data generated from mapping data entries
JP6429197B2 (ja) * 2015-05-12 2018-11-28 東芝情報システム株式会社 論理物理アドレス変換テーブルの制御方法及びメモリ装置
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
JP6485320B2 (ja) * 2015-10-23 2019-03-20 富士通株式会社 キャッシュメモリおよびキャッシュメモリの制御方法
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
CN107807839B (zh) * 2016-09-09 2022-01-28 阿里巴巴集团控股有限公司 一种修改虚拟机内存数据的方法、装置及电子设备
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US11487568B2 (en) * 2017-03-31 2022-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Data migration based on performance characteristics of memory blocks
US10503892B2 (en) * 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US11102127B2 (en) 2018-04-22 2021-08-24 Mellanox Technologies Tlv Ltd. Load balancing among network links using an efficient forwarding scheme
US10649909B2 (en) * 2018-06-14 2020-05-12 Western Digital Technologies, Inc. Logical block addressing range collision crawler
TWI693516B (zh) * 2018-11-13 2020-05-11 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
US10848458B2 (en) * 2018-11-18 2020-11-24 Mellanox Technologies Tlv Ltd. Switching device with migrated connection table
US11183266B2 (en) * 2019-06-26 2021-11-23 Micron Technology, Inc. Apparatuses and methods for repairing defective memory cells based on a specified error rate for certain memory cells
US10996975B2 (en) 2019-08-22 2021-05-04 Micron Technology, Inc. Hierarchical memory systems
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11650742B2 (en) * 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US11494311B2 (en) * 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
KR102355374B1 (ko) 2019-09-27 2022-01-25 에스케이하이닉스 주식회사 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
JP2021179672A (ja) * 2020-05-11 2021-11-18 ソニーセミコンダクタソリューションズ株式会社 メモリモジュール
US11422944B2 (en) * 2020-08-10 2022-08-23 Intel Corporation Address translation technologies

Family Cites Families (189)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL38603A (en) 1972-01-21 1975-10-15 Bar Lev H Automatic pattern recognition method and apparatus particularly for optically recognizing alphanumeric characters
JPS4891935A (zh) 1972-03-08 1973-11-29
US4011547A (en) 1972-07-17 1977-03-08 International Business Machines Corporation Data processor for pattern recognition and the like
GB1518093A (en) 1974-10-04 1978-07-19 Mullard Ltd Mark detection apparatus
JPS51112236A (en) 1975-03-28 1976-10-04 Hitachi Ltd Shape position recognizer unit
JPS5313840A (en) 1976-07-23 1978-02-07 Hitachi Ltd Analogy calculator
US4204193A (en) 1978-11-03 1980-05-20 International Business Machines Corporation Adaptive alignment for pattern recognition system
US4414685A (en) 1979-09-10 1983-11-08 Sternberg Stanley R Method and apparatus for pattern recognition and detection
US4748674A (en) 1986-10-07 1988-05-31 The Regents Of The University Of Calif. Pattern learning and recognition device
JPS63244152A (ja) * 1987-03-30 1988-10-11 Fujitsu Ltd 拡張記憶装置アクセス制御装置
US5014327A (en) 1987-06-15 1991-05-07 Digital Equipment Corporation Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns
US5216748A (en) 1988-11-30 1993-06-01 Bull, S.A. Integrated dynamic programming circuit
US6253307B1 (en) 1989-05-04 2001-06-26 Texas Instruments Incorporated Data processing device with mask and status bits for selecting a set of status conditions
JP2833062B2 (ja) 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5028821A (en) 1990-03-01 1991-07-02 Plus Logic, Inc. Programmable logic device with programmable inverters at input/output pads
US5377129A (en) 1990-07-12 1994-12-27 Massachusetts Institute Of Technology Particle interaction processing system
DE69029390T2 (de) 1990-09-15 1997-06-12 Ibm Programmierbare Schaltung für eine neurale Logik
US5287523A (en) 1990-10-09 1994-02-15 Motorola, Inc. Method for servicing a peripheral interrupt request in a microcontroller
AU8966391A (en) 1990-12-24 1992-06-25 Ball Corporation System for analysis of embedded computer systems
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
JP3219826B2 (ja) * 1992-02-21 2001-10-15 日本電気株式会社 情報処理装置
US5300830A (en) 1992-05-15 1994-04-05 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback and exclusive external input lines for registered and combinatorial modes using a dedicated product term for control
US5331227A (en) 1992-05-15 1994-07-19 Micron Semiconductor, Inc. Programmable logic device macrocell with an exclusive feedback line and an exclusive external input line
US5291482A (en) 1992-07-24 1994-03-01 At&T Bell Laboratories High bandwidth packet switch
US5357512A (en) 1992-12-30 1994-10-18 Intel Corporation Conditional carry scheduler for round robin scheduling
US5825921A (en) 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
US5459798A (en) 1993-03-19 1995-10-17 Intel Corporation System and method of pattern recognition employing a multiprocessing pipelined apparatus with private pattern memory
CA2145361C (en) 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
US20050251638A1 (en) 1994-08-19 2005-11-10 Frederic Boutaud Devices, systems and methods for conditional instructions
JP3345515B2 (ja) 1994-08-31 2002-11-18 アイワ株式会社 ピークシフト補正回路およびそれを使用した磁気記録媒体再生装置
US5615237A (en) 1994-09-16 1997-03-25 Transwitch Corp. Telecommunications framer utilizing state machine
JPH0887462A (ja) 1994-09-20 1996-04-02 Fujitsu Ltd ステートマシン及び通信制御方式
US5790531A (en) 1994-12-23 1998-08-04 Applied Digital Access, Inc. Method and apparatus for determining the origin of a remote alarm indication signal
US6279128B1 (en) 1994-12-29 2001-08-21 International Business Machines Corporation Autonomous system for recognition of patterns formed by stored data during computer memory scrubbing
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5659551A (en) 1995-05-31 1997-08-19 International Business Machines Corporation Programmable computer system element with built-in self test method and apparatus for repair during power-on
US5723984A (en) 1996-06-07 1998-03-03 Advanced Micro Devices, Inc. Field programmable gate array (FPGA) with interconnect encoding
US5680640A (en) 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US5754878A (en) 1996-03-18 1998-05-19 Advanced Micro Devices, Inc. CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros
JPH10111862A (ja) 1996-08-13 1998-04-28 Fujitsu Ltd 再帰型ニューラルネットワークに基づく時系列解析装置および方法
JPH1069459A (ja) 1996-08-29 1998-03-10 Hitachi Ltd シリアルインタフェース制御装置およびその制御方法
US6034963A (en) 1996-10-31 2000-03-07 Iready Corporation Multiple network protocol encoder/decoder and data processor
JP2940496B2 (ja) 1996-11-05 1999-08-25 日本電気株式会社 パタンマッチング符号化装置及び方法
US6317427B1 (en) 1997-04-24 2001-11-13 Cabletron Systems, Inc. Method and apparatus for adaptive port buffering
US6011407A (en) 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US6362868B1 (en) 1997-07-15 2002-03-26 Silverbrook Research Pty Ltd. Print media roll and ink replaceable cartridge
US6097212A (en) 1997-10-09 2000-08-01 Lattice Semiconductor Corporation Variable grain architecture for FPGA integrated circuits
US6041405A (en) 1997-12-18 2000-03-21 Advanced Micro Devices, Inc. Instruction length prediction using an instruction length pattern detector
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6219776B1 (en) 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
EP0943995A3 (en) 1998-03-20 2000-12-06 Texas Instruments Incorporated Processor having real-time external instruction insertion for debug functions without a debug monitor
US6151644A (en) 1998-04-17 2000-11-21 I-Cube, Inc. Dynamically configurable buffer for a computer network
US6052766A (en) 1998-07-07 2000-04-18 Lucent Technologies Inc. Pointer register indirectly addressing a second register in the processor core of a digital processor
US9195784B2 (en) 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US7430171B2 (en) 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US7899052B1 (en) 1999-01-27 2011-03-01 Broadcom Corporation Memory structure for resolving addresses in a packet-based network switch
US6412057B1 (en) 1999-02-08 2002-06-25 Kabushiki Kaisha Toshiba Microprocessor with virtual-to-physical address translation using flags
US6636483B1 (en) 1999-02-25 2003-10-21 Fairchild Semiconductor Corporation Network switch with zero latency flow control
US6317849B1 (en) 1999-04-28 2001-11-13 Intel Corporation Method and apparatus for controlling available capabilities of a device
JP2000347708A (ja) 1999-06-02 2000-12-15 Nippon Telegr & Teleph Corp <Ntt> ニューラルネットよる動的システムの制御方法及び装置及びニューラルネットよる動的システムの制御プログラムを格納した記憶媒体
US6880087B1 (en) 1999-10-08 2005-04-12 Cisco Technology, Inc. Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system
WO2001038978A1 (en) 1999-11-24 2001-05-31 Z-Force Corporation Configurable state machine driver and methods of use
US6640262B1 (en) 1999-12-20 2003-10-28 3Com Corporation Method and apparatus for automatically configuring a configurable integrated circuit
US6614703B2 (en) 2000-01-13 2003-09-02 Texas Instruments Incorporated Method and system for configuring integrated systems on a chip
US6625740B1 (en) 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
US7080359B2 (en) 2002-01-16 2006-07-18 International Business Machines Corporation Stack unique signatures for program procedures and methods
US6240003B1 (en) 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
US6977897B1 (en) 2000-05-08 2005-12-20 Crossroads Systems, Inc. System and method for jitter compensation in data transfers
US6510508B1 (en) * 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6476636B1 (en) 2000-09-02 2002-11-05 Actel Corporation Tileable field-programmable gate array architecture
WO2003039001A1 (en) 2001-10-29 2003-05-08 Leopard Logic, Inc. Programmable interface for field programmable gate array cores
US7333580B2 (en) 2002-01-28 2008-02-19 Broadcom Corporation Pipelined parallel processing of feedback loops in a digital circuit
US6925510B2 (en) 2002-02-22 2005-08-02 Winbond Electronics, Corp. Peripheral or memory device having a combined ISA bus and LPC bus
US7146643B2 (en) 2002-10-29 2006-12-05 Lockheed Martin Corporation Intrusion detection accelerator
JP4199519B2 (ja) * 2002-11-05 2008-12-17 パナソニック株式会社 メモリ管理装置及びメモリ管理方法
US7349416B2 (en) 2002-11-26 2008-03-25 Cisco Technology, Inc. Apparatus and method for distributing buffer status information in a switching fabric
US7292572B2 (en) 2002-12-11 2007-11-06 Lsi Corporation Multi-level register bank based configurable ethernet frame parser
US7089352B2 (en) 2002-12-23 2006-08-08 Micron Technology, Inc. CAM modified to be used for statistic calculation in network switches and routers
US6944710B2 (en) 2002-12-30 2005-09-13 Micron Technology, Inc. Multiple category CAM
US6880146B2 (en) 2003-01-31 2005-04-12 Hewlett-Packard Development Company, L.P. Molecular-wire-based restorative multiplexer, and method for constructing a multiplexer based on a configurable, molecular-junction-nanowire crossbar
US7305047B1 (en) 2003-03-12 2007-12-04 Lattice Semiconductor Corporation Automatic lane assignment for a receiver
US7366352B2 (en) 2003-03-20 2008-04-29 International Business Machines Corporation Method and apparatus for performing fast closest match in pattern recognition
CA2526467C (en) 2003-05-20 2015-03-03 Kagutech Ltd. Digital backplane recursive feedback control
JP3806131B2 (ja) 2003-05-21 2006-08-09 富士通株式会社 アドレス変換バッファの電力制御方法及びその装置
US7010639B2 (en) 2003-06-12 2006-03-07 Hewlett-Packard Development Company, L.P. Inter integrated circuit bus router for preventing communication to an unauthorized port
US6906938B2 (en) 2003-08-15 2005-06-14 Micron Technology, Inc. CAM memory architecture and a method of forming and operating a device according to a CAM memory architecture
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
DE102004045527B4 (de) 2003-10-08 2009-12-03 Siemens Ag Konfigurierbare Logikschaltungsanordnung
US7860915B2 (en) 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7849119B2 (en) 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US7487542B2 (en) 2004-01-14 2009-02-03 International Business Machines Corporation Intrusion detection using a network processor and a parallel pattern detection engine
US7243165B2 (en) 2004-01-14 2007-07-10 International Business Machines Corporation Parallel pattern detection engine
GB0415850D0 (en) 2004-07-15 2004-08-18 Imagination Tech Ltd Memory management system
US7716455B2 (en) 2004-12-03 2010-05-11 Stmicroelectronics, Inc. Processor with automatic scheduling of operations
US7176717B2 (en) 2005-01-14 2007-02-13 Velogix, Inc. Programmable logic and routing blocks with dedicated lines
US7358761B1 (en) 2005-01-21 2008-04-15 Csitch Corporation Versatile multiplexer-structures in programmable logic using serial chaining and novel selection schemes
US7392229B2 (en) 2005-02-12 2008-06-24 Curtis L. Harris General purpose set theoretic processor
US7499464B2 (en) 2005-04-06 2009-03-03 Robert Ayrapetian Buffered crossbar switch with a linear buffer to port relationship that supports cells and packets of variable size
US7672529B2 (en) 2005-05-10 2010-03-02 Intel Corporation Techniques to detect Gaussian noise
US7276934B1 (en) 2005-06-14 2007-10-02 Xilinx, Inc. Integrated circuit with programmable routing structure including diagonal interconnect lines
US7804719B1 (en) 2005-06-14 2010-09-28 Xilinx, Inc. Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode
US20080126690A1 (en) 2006-02-09 2008-05-29 Rajan Suresh N Memory module with memory stack
US7376782B2 (en) 2005-06-29 2008-05-20 Intel Corporation Index/data register pair for indirect register access
FR2891075B1 (fr) 2005-09-21 2008-04-04 St Microelectronics Sa Circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et procede de memorisation de donnees dans un tel circuit
US7913255B2 (en) * 2005-10-20 2011-03-22 Qualcomm Incorporated Background thread processing in a multithread digital signal processor
US7360063B2 (en) 2006-03-02 2008-04-15 International Business Machines Corporation Method for SIMD-oriented management of register maps for map-based indirect register-file access
JP2007304747A (ja) * 2006-05-10 2007-11-22 Nec Corp 計算機システム及びメモリアクセス方法
US7512634B2 (en) 2006-06-05 2009-03-31 Tarari, Inc. Systems and methods for processing regular expressions
US7725510B2 (en) 2006-08-01 2010-05-25 Alcatel-Lucent Usa Inc. Method and system for multi-character multi-pattern pattern matching
JP2008090554A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 情報処理装置、制御装置およびメモリ管理方法
US8065249B1 (en) 2006-10-13 2011-11-22 Harris Curtis L GPSTP with enhanced aggregation functionality
US7774286B1 (en) 2006-10-24 2010-08-10 Harris Curtis L GPSTP with multiple thread functionality
US7774556B2 (en) * 2006-11-04 2010-08-10 Virident Systems Inc. Asymmetric memory migration in hybrid main memory
US7890923B2 (en) 2006-12-01 2011-02-15 International Business Machines Corporation Configurable pattern detection method and apparatus
US7899976B2 (en) 2006-12-08 2011-03-01 Pandya Ashish A FSA extension architecture for programmable intelligent search memory
KR100866604B1 (ko) 2007-01-23 2008-11-03 삼성전자주식회사 전원제어 장치 및 전원제어 방법
US7797521B2 (en) 2007-04-12 2010-09-14 International Business Machines Corporation Method, system, and computer program product for path-correlated indirect address predictions
KR20080097573A (ko) 2007-05-02 2008-11-06 삼성전자주식회사 가상 메모리 접근 방법
US20080320053A1 (en) 2007-06-21 2008-12-25 Michio Iijima Data management method for accessing data storage area based on characteristic of stored data
WO2009048707A1 (en) * 2007-10-12 2009-04-16 Rambus Inc. Managing flash memory in computer systems
US20090198952A1 (en) 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
US7886089B2 (en) 2008-02-13 2011-02-08 International Business Machines Corporation Method, system and computer program product for enhanced shared store buffer management scheme for differing buffer sizes with limited resources for optimized performance
US20110004578A1 (en) 2008-02-22 2011-01-06 Michinari Momma Active metric learning device, active metric learning method, and program
US7735045B1 (en) 2008-03-12 2010-06-08 Xilinx, Inc. Method and apparatus for mapping flip-flop logic onto shift register logic
US8787060B2 (en) * 2010-11-03 2014-07-22 Netlist, Inc. Method and apparatus for optimizing driver load in a memory package
US8051271B2 (en) 2008-07-01 2011-11-01 Arm Limited Translation of virtual to physical addresses
US8015530B1 (en) 2008-08-05 2011-09-06 Xilinx, Inc. Method of enabling the generation of reset signals in an integrated circuit
US8209521B2 (en) 2008-10-18 2012-06-26 Micron Technology, Inc. Methods of indirect register access including automatic modification of a directly accessible address register
US8938590B2 (en) 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US9639493B2 (en) 2008-11-05 2017-05-02 Micron Technology, Inc. Pattern-recognition processor with results buffer
US7970964B2 (en) 2008-11-05 2011-06-28 Micron Technology, Inc. Methods and systems to accomplish variable width data input
US7917684B2 (en) 2008-11-05 2011-03-29 Micron Technology, Inc. Bus translator
US8402188B2 (en) 2008-11-10 2013-03-19 Micron Technology, Inc. Methods and systems for devices with a self-selecting bus decoder
US20100118425A1 (en) 2008-11-11 2010-05-13 Menachem Rafaelof Disturbance rejection in a servo control loop using pressure-based disc mode sensor
US9348784B2 (en) 2008-12-01 2016-05-24 Micron Technology, Inc. Systems and methods for managing endian mode of a device
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US10007486B2 (en) 2008-12-01 2018-06-26 Micron Technology, Inc. Systems and methods to enable identification of different data sets
US9164945B2 (en) 2008-12-01 2015-10-20 Micron Technology, Inc. Devices, systems, and methods to synchronize parallel processing of a single data stream
DE102008060719B4 (de) 2008-12-05 2018-09-20 Siemens Healthcare Gmbh Verfahren zur Steuerung des Aufnahmebetriebs einer Magnetresonanzeinrichtung bei der Aufnahme von Magnetresonanzdaten eines Patienten sowie zugehörige Magnetresonanzeinrichtung
US8966181B2 (en) * 2008-12-11 2015-02-24 Seagate Technology Llc Memory hierarchy with non-volatile filter and victim caches
US20100169602A1 (en) * 2008-12-29 2010-07-01 Jared E Hulbert Method and Apparatus for Efficient Memory Placement
US8140780B2 (en) 2008-12-31 2012-03-20 Micron Technology, Inc. Systems, methods, and devices for configuring a device
US8214672B2 (en) 2009-01-07 2012-07-03 Micron Technology, Inc. Method and systems for power consumption management of a pattern-recognition processor
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US8281395B2 (en) 2009-01-07 2012-10-02 Micron Technology, Inc. Pattern-recognition processor with matching-data reporting module
US8843523B2 (en) 2009-01-12 2014-09-23 Micron Technology, Inc. Devices, systems, and methods for communicating pattern matching results of a parallel pattern search engine
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8146040B1 (en) 2009-06-11 2012-03-27 Xilinx, Inc. Method of evaluating an architecture for an integrated circuit device
US20100325352A1 (en) 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
US9836555B2 (en) 2009-06-26 2017-12-05 Micron Technology, Inc. Methods and devices for saving and/or restoring a state of a pattern-recognition processor
US9208084B2 (en) * 2009-06-29 2015-12-08 Oracle America, Inc. Extended main memory hierarchy having flash memory for page fault handling
EP2455865B1 (en) * 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
US8159900B2 (en) 2009-08-06 2012-04-17 Unisyn Medical Technologies, Inc. Acoustic system quality assurance and testing
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
US8489534B2 (en) 2009-12-15 2013-07-16 Paul D. Dlugosch Adaptive content inspection
US9501705B2 (en) 2009-12-15 2016-11-22 Micron Technology, Inc. Methods and apparatuses for reducing power consumption in a pattern recognition processor
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US20110161620A1 (en) 2009-12-29 2011-06-30 Advanced Micro Devices, Inc. Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US20110208900A1 (en) 2010-02-23 2011-08-25 Ocz Technology Group, Inc. Methods and systems utilizing nonvolatile memory in a computer system main memory
GB2478727B (en) 2010-03-15 2013-07-17 Advanced Risc Mach Ltd Translation table control
US8914581B2 (en) * 2010-05-20 2014-12-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accessing cache memory
US8601013B2 (en) 2010-06-10 2013-12-03 Micron Technology, Inc. Analyzing data using a hierarchical structure
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8379350B2 (en) 2010-06-30 2013-02-19 Tdk Corporation CPP-type magnetoresistive element including spacer layer
US8335908B2 (en) 2010-07-01 2012-12-18 Arm Limited Data processing apparatus for storing address translations
US8495318B2 (en) * 2010-07-26 2013-07-23 International Business Machines Corporation Memory page management in a tiered memory system
US8294490B1 (en) 2010-10-01 2012-10-23 Xilinx, Inc. Integrated circuit and method of asynchronously routing data in an integrated circuit
US8843911B2 (en) 2011-01-25 2014-09-23 Micron Technology, Inc. Utilizing special purpose elements to implement a FSM
JP5763783B2 (ja) 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
KR101607736B1 (ko) 2011-01-25 2016-03-30 마이크론 테크놀로지, 인크. 오토마톤의 진입 차수 및/또는 진출 차수를 제어하기 위한 양화 언롤링
US8788991B2 (en) 2011-01-25 2014-07-22 Micron Technology, Inc. State grouping for element utilization
US8680888B2 (en) 2011-12-15 2014-03-25 Micron Technologies, Inc. Methods and systems for routing in a state machine
US9443156B2 (en) 2011-12-15 2016-09-13 Micron Technology, Inc. Methods and systems for data analysis in a state machine
US8593175B2 (en) 2011-12-15 2013-11-26 Micron Technology, Inc. Boolean logic in a state machine lattice
US8648621B2 (en) 2011-12-15 2014-02-11 Micron Technology, Inc. Counter operation in a state machine lattice
US8782624B2 (en) 2011-12-15 2014-07-15 Micron Technology, Inc. Methods and systems for detection in a state machine
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US8536896B1 (en) 2012-05-31 2013-09-17 Xilinx, Inc. Programmable interconnect element and method of implementing a programmable interconnect element
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9304968B2 (en) 2012-07-18 2016-04-05 Micron Technology, Inc. Methods and devices for programming a state machine engine
US9389841B2 (en) 2012-07-18 2016-07-12 Micron Technology, Inc. Methods and systems for using state vector data in a state machine engine
US9235798B2 (en) 2012-07-18 2016-01-12 Micron Technology, Inc. Methods and systems for handling data received by a state machine engine
US9063532B2 (en) 2012-08-31 2015-06-23 Micron Technology, Inc. Instruction insertion in state machine engines
US9075428B2 (en) 2012-08-31 2015-07-07 Micron Technology, Inc. Results generation for state machine engines
US9501131B2 (en) 2012-08-31 2016-11-22 Micron Technology, Inc. Methods and systems for power management in a pattern recognition processing system
KR102029055B1 (ko) 2013-02-08 2019-10-07 삼성전자주식회사 고차원 데이터의 시각화 방법 및 장치
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US10007435B2 (en) * 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory

Also Published As

Publication number Publication date
US10831672B2 (en) 2020-11-10
US20170083452A1 (en) 2017-03-23
JP6367797B2 (ja) 2018-08-01
EP2875432A4 (en) 2016-03-23
US20140025923A1 (en) 2014-01-23
WO2014014711A1 (en) 2014-01-23
US10089242B2 (en) 2018-10-02
EP2875432B1 (en) 2021-03-24
KR20150036165A (ko) 2015-04-07
EP2875432A1 (en) 2015-05-27
TW201411345A (zh) 2014-03-16
CN104487953A (zh) 2015-04-01
US20180357177A1 (en) 2018-12-13
CN104487953B (zh) 2018-04-17
US20210042238A1 (en) 2021-02-11
JP2015522886A (ja) 2015-08-06
US9524248B2 (en) 2016-12-20
KR102144491B1 (ko) 2020-08-18

Similar Documents

Publication Publication Date Title
TWI515563B (zh) 用於階層式記憶體系統之記憶體管理
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US9384134B2 (en) Persistent memory for processor main memory
US20120017039A1 (en) Caching using virtual memory
US8266407B2 (en) Writing to asymmetric memory
US8095736B2 (en) Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures
US20150278091A1 (en) Method and apparatus for implementing a heterogeneous memory subsystem
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
US6782453B2 (en) Storing data in memory
US20160140042A1 (en) Instruction cache translation management
US9720773B2 (en) Managing reuse information in caches
US20160259732A1 (en) Managing reuse information for memory pages
US20160196210A1 (en) Cache memory system and processor system
US10013360B2 (en) Managing reuse information with multiple translation stages
US20110055482A1 (en) Shared cache reservation
US9251093B2 (en) Managing the translation look-aside buffer (TLB) of an emulated machine
US20160103766A1 (en) Lookup of a data structure containing a mapping between a virtual address space and a physical address space
Mittal et al. Cache performance improvement using software-based approach
Picorel Obando Near-Memory Address Translation
Plattner et al. Changes in hardware