TW201719489A - 計算記憶體中可執行指令之加密 - Google Patents
計算記憶體中可執行指令之加密 Download PDFInfo
- Publication number
- TW201719489A TW201719489A TW105125524A TW105125524A TW201719489A TW 201719489 A TW201719489 A TW 201719489A TW 105125524 A TW105125524 A TW 105125524A TW 105125524 A TW105125524 A TW 105125524A TW 201719489 A TW201719489 A TW 201719489A
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- memory
- encrypted
- executable
- key
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 6
- 241000700605 Viruses Species 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101100424896 Caenorhabditis elegans ttb-1 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Abstract
本發明係關於計算記憶體中之可執行指令之加密。計算記憶體可周遊該計算記憶體體中之一作業系統頁面表以尋找標記為可執行指令之一頁面。回應於尋找到標記為可執行指令之一頁面,該計算記憶體可判定標記為可執行指令之該頁面是否已加密。回應於判定標記為可執行指令之該頁面未加密,該計算記憶體可針對標記為可執行指令之該頁面產生一密鑰。該計算記憶體可使用該密鑰加密標記為可執行指令之該頁面。
Description
本發明大體上係關於半導體記憶體及方法,且更特定言之,本發明係關於計算記憶體中之可執行指令之加密。
記憶體裝置通常提供為計算裝置或其它電子裝置中之內部、半導體、積體電路。存在諸多不同類型的記憶體,包含揮發性記憶體及非揮發性記憶體。揮發性記憶體可需要電力來維持其資料(例如,使用者資料、錯誤資料等)且包含隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)及同步動態隨機存取記憶體(SDRAM)以及其它。非揮發性記憶體可藉由在未被供電時保持所儲存之資料而提供持久性資料且可包含NAND快閃記憶體、NOR快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM (EEPROM)、可擦除可程式化ROM (EPROM)及電阻可變記憶體(諸如,相變隨機存取記憶體(PCRAM)、電阻性隨機存取記憶體(RRAM)及磁阻性隨機存取記憶體(MRAM),諸如自旋力矩轉移隨機存取記憶體(STT RAM))以及其它。 運算系統通常包含若干處理資源(例如,一或多個處理器),其等可擷取並執行指令且將所執行指令之結果儲存至一適合位置。一處理器可包括若干功能單元(例如,在本文中稱為功能單元電路(FUC)),諸如算術邏輯單元(ALU)電路、浮點單元(FPU)電路及/或一組合邏輯區塊,例如,其等可執行指令以對資料(例如,一或多個運算元)執行邏輯運算(諸如「及」、「或」、「非」、「反及」、「反或」及「互斥或」邏輯運算)。 在提供指令至功能單元電路以供執行時可涉及一運算系統中之若干組件。指令可由(例如)諸如一控制器及/或主機處理器之一處理資源產生。可將資料(例如,將對其執行指令以執行邏輯運算之運算元)儲存於可由FUC存取之一記憶體陣列中。指令及/或資料可自記憶體陣列擷取且可在FUC開始對資料執行指令之前序列化及/或緩衝。此外,因為可透過FUC而在一或多個時脈週期中執行不同類型的運算,所以亦可序列化及/或緩衝運算及/或資料之中間結果。在諸多例項中,處理資源(例如,處理器及/或相關聯的FUC)可位於記憶體陣列之外部,且可(例如經由處理資源與記憶體陣列之間的一匯流排)存取資料以執行指令。資料可經由一匯流排從記憶體陣列移動到該記憶體陣列外部的暫存器。
多數現代電腦架構使用一暫存器-記憶體技術,其中在兩個個別域中執行運算。通常對若干暫存器檔案執行邏輯運算(例如,算術、流程控制及組合運算)。通常對記憶體裝置執行記憶體操作(例如,加載、儲存等)。暫存器-記憶體架構中之指令利用暫存器索引或記憶體位址來指示如何/在何處執行一運算。 計算記憶體,諸如記憶體中處理(PIM)或記憶體裝置附近處理可分類為計算架構分類法中之記憶體間裝置。在計算記憶體中,對記憶體裝置就地執行邏輯運算及記憶體操作兩者。記憶體間架構中之指令使用實體位址指示如何/在何處執行一運算。 試圖攻擊或將惡意軟體插入至一運算系統中通常包含改變由主機處理器執行之指令流程或指令之一病毒或惡意軟體。本發明之一些實施例使用計算記憶體來加密可執行指令(可執行指令,諸如主機處理器指令)。加密可多態隨機化可執行指令,使得一攻擊者將必須暸解加密狀態以注入將對此一系統有一負面影響之惡意軟體。可執行指令之隨機化可混淆及/或改變可執行指令以產生二進位分集之一生態系統,此可減少及/或消除惡意軟體及/或系統洩露之一來源。試圖注入程式碼之任何惡意軟體(例如,二進位注入、緩衝區溢位攻擊、莫里斯(Morris)蠕蟲、紅色警戒(Code Red)、疾風(Blaster)病毒、統一資源定位器(URL)堆積漏洞利用等)將必須理解底層指令集架構以便運行程式碼。 本發明係關於計算記憶體中之可執行指令之加密。計算記憶體可周遊計算記憶體中之一作業系統頁面表以尋找針對標記為可執行指令之一頁面。回應於尋找到標記為可執行指令之一頁面,計算記憶體可判定標記為可執行指令之該頁面是否已加密。回應於判定標記為可執行指令之該頁面未加密,計算記憶體可針對標記為可執行指令之該頁面產生一密鑰。計算記憶體可使用該密鑰加密標記為可執行指令之該頁面。本發明之一些實施例為可執行指令而非資料提供加密,此有利地允許在無一加密及/或解密程序之情況下改變、讀取、寫入資料等,同時為可作為特定攻擊者之目標之可執行指令提供保護。可執行指令(executable instructions)在本文中通常稱為可執行指令(executables)。 在本發明之下文詳細描述中,參考隨附圖式(其等形成本發明之一部分,且其中以圖解之方式展示可如何實踐本發明之若干實施例)。此等實施例被足夠詳細地描述以使一般技術者能夠實踐本發明之該等實施例,且應瞭解可利用其它實施例,且可在不脫離本發明之範疇之情況下作出程序、電及/或結構變化。如本文中所用,標示符「M」及「N」(尤其針對圖式中之元件符號)指示:可包含如此標示之若干特定特徵。如本文中所用,「若干」特定事物可指代一或多個此等事物(例如,若干記憶體裝置可指代一或多個記憶體裝置)。如本文中所用,術語「第一」及「第二」用於區分一特徵與另一特徵,且未必暗指如此標示之特徵之間之一順序。 本文中之圖遵循一編號慣例,其中第一數字對應於圖式圖號且其餘數字識別圖式中之一元件或組件。可藉由使用類似數字而識別不同圖之間之類似元件或組件。例如,110可指涉圖1中之元件「10」,且一類似元件可在圖2中指涉為210。可用其後有一連字符及另一數字或字母之一元件符號指涉一圖內之多個類似元件。例如,240-1可指涉圖2中之元件20-1且240-N可指涉可類似於元件240-1之元件40-N。通常可在無連字符及額外數字或字母之情況下指涉此等類似元件。例如,元件240-1、…、240-N可統稱為240。如應瞭解,可添加、交換及/或剔除本文中在各種實施例中所展示之元件以便提供本發明之若干額外實施例。另外,如應瞭解,圖中所提供元件之比例及相對尺度意欲繪示本發明之某些實施例,且不應被理解為限制意義。 圖1為根據本發明之若干實施例之呈包含至少一個計算記憶體系統104之一運算系統100之形式之一設備之一方塊圖。如本文中所用,一主機102、一計算記憶體系統104、一計算記憶體裝置110、一記憶體陣列111及/或感測電路124 (包含感測放大器及計算電路)可各自亦被單獨視為一「設備」。 運算系統100可包含耦合至計算記憶體系統104之一主機102,該計算記憶體系統104包含一計算記憶體裝置110 (例如,包含一記憶體陣列111及/或感測電路124)。計算記憶體系統104可充當一習知記憶體及/或一計算記憶體。主機102可為一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位相機、一行動電話或一記憶體卡讀取器,以及各種其它類型的主機。主機102可包含一系統主機板及/或背板且可包含若干處理資源(例如一或多個處理器、微處理器或一些其它類型的控制電路),諸如中央處理單元(CPU) 106。CPU 106可耦合至大容量儲存器114。大容量儲存器114可為不可由CPU 106直接存取之一儲存裝置或其它媒體,諸如硬碟機、固態磁碟、光碟機且可為非揮發性記憶體。在一些實施例中,大容量儲存器114可位於主機102之外部。主機102可組態有一作業系統。作業系統為管理硬體資源且為在作業系統上運行之其它可執行指令(應用程式)提供服務之可執行指令(軟體)。作業系統可實施一虛擬記憶體系統。 CPU 106可包含耦合至一轉譯後備緩衝器(TLB) 120及CPU快取區122之一邏輯單元118。一邏輯單元118之一實例為一算術邏輯單元(ALU),其為可對整數型二進位數執行算術及按位元邏輯運算之一電路。若干ALU可用於充當一浮點單元(FPU)及/或圖形處理單元(GPU),該浮點單元為運算浮點數目之一電路,該圖形處理單元為加速旨在用於輸出至一顯示器之一圖框緩衝器中之影像之產生之一電路。TLB 120為記憶體管理硬體可使用其來改良虛擬位址轉譯速度之一快取區。TLB 120可為一內容可定址記憶體,其中搜尋索引鍵為一虛擬位址且搜尋結果為一實體位址。如關於圖3至圖5更詳細地描述,TLB 120可包含作業系統頁面表項目,該等作業系統頁面表項目將虛擬位址映射至實體位址且作業系統頁面表可儲存於記憶體(例如,記憶體陣列111)中。CPU快取區122可為相對較快速暫存器與相對較緩慢主記憶體之間之一中間階段(未具體繪示)。待由CPU 106運算之該資料可在被放置於一暫存器中之前複製至CPU快取區122,其中運算可受邏輯單元118影響。儘管未具體繪示,但CPU快取區122可為一多層級階層式快取區。 運算系統100可包含個別積體電路,或主機102及計算記憶體系統104兩者可在相同積體電路上。運算系統100可為(例如)一伺服器系統及/或一高效能運算系統及/或該高效能運算系統之一部分。儘管圖1中展示之實例繪示具有一范紐曼(Von Neumann)架構之一系統,但本發明之實施例可在非范紐曼架構(例如,一杜林機(Turing machine))中實施,該等非范紐曼架構可不包含通常與一范紐曼架構相關聯之一或多個組件(例如,CPU、ALU等)。 為清楚起見,運算系統100已經簡化以集中在與本發明特定相關之特徵。記憶體陣列111可為一混合記憶體立方體(HMC)、計算記憶體,諸如一記憶體處理隨機存取記憶體體(processing in memory random access memory (PIMRAM))陣列,其可包含例如一DRAM陣列、SRAM陣列、STT RAM陣列、PCRAM陣列、TRAM陣列、RRAM陣列、NAND快閃陣列及/或NOR快閃陣列之一或多者。記憶體陣列111可包括配置成由存取線(其在本文中可稱為字線或選擇線)耦合之列及由感測線(其在本文中可稱為數位線或資料線)耦合之行的記憶體胞。儘管圖1中展示一單一計算記憶體裝置110,但實施例不受限於此。例如,計算記憶體系統104可包含若干計算記憶體裝置110 (例如,DRAM胞之若干記憶體庫)。 計算記憶體系統104可包含位址電路126,用以鎖存經由一輸入/輸出「I/O」匯流排138 (例如,資料匯流排及/或位址匯流排)透過I/O電路130提供之位址信號(例如,經由局域I/O線及全域I/O線提供至外部ALU電路及DRAM DQ)。可由一列解碼器128及一行解碼器134接收並解碼位址信號以存取計算記憶體裝置110。可藉由使用感測電路124感測感測線上之電壓及/或電流變化而自記憶體陣列111讀取資料。感測電路124可自記憶體陣列111讀取一頁(例如一列)資料且鎖存該頁資料。I/O電路130可用於經由I/O匯流排138與主機102雙向資料通信。寫入電路132可用於將資料寫入至計算記憶體裝置110。 控制器108可解碼由控制匯流排136自主機102提供之信號。此等信號可包含用於控制對計算記憶體裝置110執行之記憶體操作(包含資料讀取、資料寫入及資料抹除操作)之晶片啟用信號、寫入啟用信號及位址鎖存信號。信號亦可用於控制對計算記憶體裝置110執行之邏輯運算,包含算術、流程控制及組合運算以及其它。在各種實施例中,控制器108負責執行來自主機102之指令。控制器108可為一狀態機、一定序器、一處理器及/或其它控制電路。 在一些先前方法中,與(例如)一邏輯運算相關聯之資料將經由感測電路而自記憶體讀取且經由I/O線(例如,經由局域I/O線及/或全域I/O線)而提供至外部ALU電路。外部ALU電路可包含若干暫存器且將使用該資料(其可稱為運算元或輸入)執行邏輯運算,且結果將經由I/O線傳送回至陣列。相比之下,在本發明之若干實施例中,感測電路124經組態以對儲存於記憶體陣列111中之資料執行邏輯運算且將結果儲存回至記憶體陣列111,而不啟用耦合至感測電路124之一I/O線(例如,一局域I/O線)。啟用一I/O線可包含:啟用(例如,接通)具有耦合至一解碼信號(例如,一行解碼信號)之一閘極及耦合至該I/O線之一源極/汲極的一電晶體。然而,實施例不限於不啟用一I/O線。例如,在若干實施例中,感測電路124可用於執行邏輯運算而不啟用陣列之行解碼線;然而,除傳送回至陣列111之外,可啟用(若干)局域I/O線以將一結果傳送至一適合位置(例如,至一外部暫存器)。 因而,在若干實施例中,無需陣列111及感測電路124外部之電路來執行邏輯運算,此係因為感測電路124可操作以使用記憶體陣列111之位址空間來執行邏輯運算,而不使用一外部處理資源。因此,感測電路124可用於至少在某種程度上補充及/或取代此一外部處理資源(或至少此一外部處理資源之頻寬消耗)。 感測電路124可形成於與陣列之記憶體胞之間距上。儘管未具體繪示,但在一些實施例中額外周邊感測放大器及/或邏輯(例如,各自儲存用於一邏輯功能之執行之指令之功能組件)可耦合至感測電路124。感測電路124及周邊感測放大器及邏輯可根據本文中所述之實施例協作執行邏輯運算。 然而,在若干實施例中,感測電路124除可用於執行由一外部處理資源(例如,主機102)執行之邏輯運算之外,亦可用於執行其它邏輯運算(例如,執行指令)。例如,主機102及/或感測電路124可受限於僅執行特定邏輯運算及/或特定數目個邏輯運算。 下文結合圖2進一步描述感測電路124之一實例。例如,在若干實施例中,感測電路124可包括若干感測放大器及若干計算組件,其等可包括用作一累加器之一鎖存器且可用於(例如,對與互補感測線相關聯之資料)執行邏輯運算。邏輯運算可包含布林運算(Boolean operation) (例如,「AND」、「OR」、「NOR」、「XOR」等)、用以執行其它數學運算之布林運算之組合以及非布林運算。在若干實施例中,感測電路124可用於使用儲存於記憶體陣列111中之資料作為輸入而執行邏輯運算,且將邏輯運算之結果儲存回至記憶體陣列111而不經由一感測線位址存取傳送(例如,不觸發一行解碼信號)。因而,取代藉由感測電路124外部之處理資源(例如,藉由主機CPU 106及/或位於計算記憶體系統104上(諸如控制器108上)或別處之其它處理電路(諸如,ALU電路)而執行一邏輯運算及/或除其之外,可使用感測電路124來執行一邏輯運算。 圖2為根據本發明之若干實施例之一計算記憶體裝置210之一部分之一示意圖。計算記憶體裝置210類似於圖1中繪示之計算記憶體裝置110。計算記憶體裝置210可包含一記憶體陣列211,該記憶體陣列211包含耦合至諸列存取線242-1、242-2、242-3、242-4、242-5、242-6、242-7、…、242-M及諸行感測線244-1、244-2、244-3、244-4、244-5、244-6、244-7、244-8、…、244-N之記憶體胞240-1、240-2、240-3、240-4、240-5、240-6、240-7、240-8、…、240-N。記憶體陣列211不受限於特定數目個存取線及/或感測線,且術語「列」及「行」之使用不意指存取線及/或感測線之一特定實體結構及/或定向。雖未圖示,但記憶體胞之各行可與一對對應的互補感測線相關聯。 記憶體胞之各行可耦合至可類似於圖1中繪示之感測電路124之感測電路224。在此實例中,感測電路包含耦合至各自感測線244之若干感測放大器246-1、246-2、246-3、246-4、246-5、246-6、246-7、246-8、…、246-N。感測放大器246經由存取裝置(例如,電晶體)250-1、250-2、250-3、250-4、250-5、250-6、250-7、250-8、…、250-N耦合至輸入/輸出(I/O)線254 (例如,一局域I/O線)。在此實例中,感測電路亦包含耦合至各自感測線244之若干計算組件248-1、248-2、248-3、248-4、248-5、248-6、248-7、248-8、…、248-N。行解碼線252-1、252-2、252-3、252-4、252-5、252-6、252-7、252-8、…、252-N分別耦合至存取裝置250之閘極,且可經選擇性地啟動以將由各自感測放大器246感測及/或儲存於各自計算組件248中之資料傳送至一次級感測放大器256。在若干實施例中,計算組件248可形成於與其等對應行之記憶體胞及/或與對應感測放大器246之間距上。 在若干實施例中,感測電路(例如,計算組件248及感測放大器246)經組態以對儲存於陣列211中之元素執行若干邏輯運算。作為一實例,可將第一複數個元素儲存於耦合至一特定存取線(例如,存取線242-1)及若干感測線244之一第一群組之記憶體胞中,且可將第二複數個元素儲存於耦合至一不同存取線(例如,存取線242-2)及各自若干感測線244之一第二群組之記憶體胞中。可用該第二複數個元素之一各自者對該第一複數個元素之各元素執行一邏輯運算,且可將邏輯運算之結果(例如,作為一位元向量)儲存於耦合至一特定存取線(例如,存取線242-3)及若干感測線244之一第三群組之記憶體胞中。 圖3為繪示根據本發明之若干實施例之一讀取或寫入存取之一方塊流程圖。圖3至圖6繪示表示類似架構之操作之不同流程圖。圖3包含類似於關於圖1描述之大容量儲存器114之一大容量儲存裝置314之一圖解。關於圖4更詳細地描述大容量儲存裝置314之功能。圖3包含類似於圖1中繪示之CPU 106之一CPU 306。將CPU 306繪示為包含一邏輯單元318、TLB 320及CPU快取區322。圖3包含一計算記憶體系統304,該計算記憶體系統304包含I/O電路330、記憶體陣列311及計算記憶體系統快取區312。關於圖5至圖6更詳細地描述計算記憶體系統快取區312。記憶體系統304類似於圖1中繪示之記憶體系統104。將記憶體系統304繪示為包含一作業系統頁面表316。儘管作業系統頁面表316可儲存於記憶體陣列311中,但為了易於圖解及解釋而單獨繪示作業系統頁面表316。同樣地,計算記憶體程式342可儲存於記憶體陣列311中,但單獨繪示以突顯關於圖3至圖6描述之功能流程。記憶體系統304可包含如在下文更詳細地描述之一熵源340。 本發明之一些實施例可使CPU 306及底層架構保持與CPU之習知情況不變。然而,計算記憶體系統304可不同地操作,及/或一主機之一作業系統可與習知情況不同地操作。習知地,作業系統可維持一作業系統頁面表,然而根據本發明,計算記憶體系統304可維持一作業系統頁面表316,此係因為計算記憶體系統304可加密及/或解密儲存於記憶體中之頁面,且在作業系統頁面表中指示該頁面且可針對已加密頁面產生密鑰並將密鑰儲存於作業系統頁面表中。計算記憶體系統304可針對一已加密頁面產生一新密鑰且即時重新加密該頁面。主機CPU 306可包含其記憶體階層中之一TLB 320,但作業系統頁面表316儲存於記憶體陣列311中。一旦一頁面缺失(例如,當將可執行指令加載至記憶體陣列311時),可需要將頁面自大容量儲存器314加載且加載並放置於實體及虛擬記憶體之保留區域中。保留可由作業系統管理且維持於作業系統頁面表316中。作業系統頁面表316可定位於記憶體陣列311之一保留區域中。例如,在一ARM架構中,ARM記憶體管理單元(MMU)可使用暫存器TTB0及TTB1指向作業系統頁面表以允許一頁面錯失情況下之表之硬體查詢(walking)。 由於作業系統頁面表316定位於記憶體陣列311中,故計算記憶體系統304具有對作業系統頁面表316結構之程式化存取,意指計算記憶體系統304可對作業系統頁面表316作出改變。作業系統頁面表316可包含指示關於由作業系統頁面表316指涉之頁面之資訊之若干欄位。此等欄位可包含一加密指示欄位346,一密鑰欄位348、一虛擬位址欄位350、一實體位址欄位352、一頁面類型欄位354及/或一大小欄位356。加密指示欄位346可指示對應頁面是否已加密(例如,藉由針對是之一位元值1,或針對否之一位元值0)。若對應頁面已加密,則密鑰欄位348可儲存對應頁面之一密鑰。若對應頁面未加密,則可能不針對對應頁面,將一密鑰儲存於密鑰欄位348中,此係因為其將為不必要的。虛擬位址欄位350可儲存對應於頁面之一虛擬位址。實體位址欄位352可儲存對應於頁面之一實體位址。頁面類型欄位354可標記對應頁面之類型(例如,讀取「R」、寫入「W」、讀取/寫入「R/W」或可執行「X」)。頁面之類型指示頁面是否儲存資料或可執行指令以及其它。大小欄位356可指示對應頁面之一大小(例如,4k)。表1中展示一表之一實例。表 1 :
在一些實施例中,可不快取作業系統頁面表316以便保存作業系統頁面表316、CPU 306及記憶體陣列311中之資訊之間之相干性。計算記憶體系統304可經組態(例如,經程式化)以周遊記憶體陣列311中之作業系統頁面表316例如以尋找標記為可執行指令之一頁面。例如,計算記憶體系統304可包含可處置周遊作業系統頁面表316之一計算記憶體程式342。作業系統頁面表316中指涉之頁面可儲存資料或可執行指令。因此,可藉由頁面類型欄位354中之一標記而將作業系統頁面表316中指涉之一頁面標記為可執行指令。頁面類型讀取、寫入及讀取/寫入可標記資料頁面(儲存資料之一頁面)且頁面類型可執行指令可標記可執行指令之一頁面(儲存可執行指令之一頁面)。 計算記憶體系統304可經組態以加密及/或解密可執行指令。例如,計算記憶體系統304可包含可處置可執行指令之加密及/或解密之一計算記憶體程式342。在一些實施例中,計算記憶體程式342可於可執行指令在一頁面錯失期間填充於計算記憶體系統304中時,及/或(例如,在自CPU 306進行一快取線再填充期間)自計算記憶體系統304讀取可執行指令時處置可執行指令之加密及/或解密。一頁面是否加密之一指示可儲存於加密指示欄位346中。在一些實施例中,主機作業系統可如I/O電路330與計算記憶體程式342之間之線所指示而(例如,在起動時)啟動計算記憶體系統304中之計算記憶體程式342。在計算記憶體程式342運行之後,主機作業系統之責任可關於加密而結束。 計算記憶體系統304可包含一熵源340,該熵源340可產生一密鑰及/或用於針對標記為可執行指令之一頁面產生一密鑰以用該密鑰加密該頁面。可基於由熵源340產生之一隨機數字或接近隨機數字產生密鑰。熵源340之一實例為一鎖相迴路(PLL)頻率(例如,一PLL時脈),其可經取樣以產生將用作一密鑰之數字。熵源340之一實例為與計算記憶體系統304相關聯之一序號,該序號可經取樣以產生將用作一密鑰及/或用作至產生另一值之一演算法之輸入之一數字,該另一值可經取樣(或使用)以產生將用作一密鑰之一數字。熵源340之一實例為一計時器,其可經取樣以產生將用作一密鑰之一數字。在一些實施例中,一密鑰可由一經取樣PLL頻率,互斥或(XOR)由一經取樣序號,XOR由一經取樣計時器產生。計算記憶體系統304可經組態以使用由熵源340產生之唯一密鑰加密或重新加密記憶體陣列311中之頁面。其它熵源及/或熵源之組合可用於產生一隨機或接近隨機數字。 如上文所述,根據本發明,針對資料讀取或寫入操作,加密並非必要的。計算記憶體程式442可授予存取作業系統頁面表316中之一資料頁面(標記為讀取、寫入及/或讀取/寫入之一頁面),而無關於加密。因此,一資料頁面358可透過記憶體陣列311與CPU 306之間之I/O電路330傳送(例如,經由CPU快取區322)且儲存於記憶體陣列311中或自記憶體陣列311讀取。例如,在一讀取/寫入操作中,來自TLB 320之一虛擬記憶體位址(例如,「A」)可來往於計算記憶體系統304傳輸且擷取自及/或儲存於對應於寫入之資料頁面358之第一表項目344之虛擬位址欄位350。對應於虛擬位址之一實體位址(例如,「B」)可擷取自及/或儲存於第一表項目344之實體位址欄位352中。此由延伸於第一表項目344與TLB 320之間之線指示。因為傳送的係一資料頁面358,而非可執行指令,故計算記憶體程式342可如計算記憶體程式342與第一表項目344之間之線所指示而在第一表項目344之加密指示欄位346中將頁面標記為未加密(例如,「0」)。計算記憶體程式可不將一密鑰儲存於第一表項目344之密鑰欄位348中(例如,「N/A」),此係因為其對應於未加密之一資料頁面358。計算記憶體程式342可將資料頁面358係讀取/寫入之一指示(例如,「R/W」)儲存於頁面類型欄位354中且將頁面大小之一指示(例如,「4k」)儲存於大小欄位356中。在圖4至6中,第一表項目分別標示為444、544及644。 圖4為繪示根據本發明之若干實施例之一新頁面分配之一方塊流程圖。圖4包含一大容量儲存裝置414之一圖解,該大容量儲存裝置414包含可執行指令461。圖4包含一CPU 406,該CPU 406包含一邏輯單元418、TLB 420及CPU快取區422。圖4包含一計算記憶體系統404,該計算記憶體系統404包含I/O電路430、記憶體陣列411、計算記憶體系統快取區412、作業系統頁面表416、計算記憶體程式442及熵源440。 大容量儲存器414可儲存用於CPU 406之可執行指令461。可如從大容量儲存裝置414穿過I/O電路430至記憶體陣列411之箭頭所指示,藉由自大容量儲存裝置414之直接記憶體存取(DMA)而將可執行指令461加載至記憶體陣列411中。最初,將來自大容量儲存裝置414之可執行指令461作為一純文字可執行指令頁面462儲存於記憶體陣列411中,此係因為其等未在大容量儲存裝置414中加密。計算記憶體程式442可在作業系統頁面表416中產生一第二表項目460以對應於記憶體陣列411中之純文字可執行指令頁面462。 因為純文字可執行指令頁面462尚未加密,故計算記憶體程式442可在第二表項目460之加密指示欄位446中將純文字可執行指令頁面462標記為未加密(例如,「0」)。同樣地,不在第二表項目460之密鑰欄位448中儲存一密鑰(例如,「—」)。可將來自TLB 420之一虛擬記憶體位址(例如,「C」)傳輸至計算記憶體系統404且儲存於第二表項目460之虛擬位址欄位450中。可將對應於虛擬位址之一實體位址(例如,「D」)儲存於第二表項目460之實體位址欄位452中。此由延伸於第二表項目460與TLB 420之間之線指示。如計算記憶體程式442與第二表項目460之間之線所指示,計算記憶體程式可在第二表項目460之類型欄位454中將純文字可執行指令頁面462標記為可執行指令(例如,「X」)。未加密之純文字可執行指令頁面462與此指示之間之對應性由記憶體陣列411與第二表項目460之間之線繪示。計算記憶體程式442可將頁面大小之一指示(例如,「4k」)儲存於大小欄位456中。 圖5為繪示根據本發明之若干實施例之可執行指令之加密之一方塊流程圖。圖5包含一大容量儲存裝置514之一圖解。圖5包含一CPU 506,該CPU 506包含一邏輯單元518、TLB 520及CPU快取區522。圖5包含一計算記憶體系統504,該計算記憶體系統504包含I/O電路530、記憶體陣列511、計算記憶體系統快取區512、作業系統頁面表516、計算記憶體程式542及熵源540。 在圖4中,最初將來自大容量儲存裝置414之可執行指令461作為一純文字可執行指令462儲存於記憶體陣列411中。然而在圖5中,計算記憶體程式542可使用熵源540產生純文字可執行指令462之一密鑰且將純文字可執行指令462加密成一密文可執行指令564,且將密文可執行指令564儲存回至記憶體陣列511。加密之一些實例包含高級加密標準(AES)(諸如AES 128位元加密、AES 256位元加密等)及資料加密標準(DES)以及其它。計算記憶體程式542可刪除純文字可執行指令462之第二表項目460且產生密文可執行指令564之一第三表項目563。 計算記憶體程式542可在第三表項目563之加密指示欄位546中將密文可執行指令頁面564標記為已加密(例如,「1」)。此由計算記憶體程式542與第三表項目563之間之線指示。產生用以加密頁面之密鑰可儲存於第三表項目563之密鑰欄位548中(例如,「XYZ」)。此由從熵源540穿過計算記憶體程式542至第三表項目563中之密鑰欄位548之線指示。第三表項目563之虛擬位址欄位550中之虛擬記憶體位址(例如,「C」)、實體位址欄位552中之實體位址(例如,「D」)、類型欄位554中之類型(例如,「X」)及大小欄位556中之大小(例如,「4k」)可保持與第二表項目460的相同,然而,實施例不受限於此,此係因為例如,實體位址可改變。 計算記憶體程式542可在將純文字可執行指令462加密成密文可執行指令564之前複製純文字可執行指令462 (如圖4中繪示)且將其儲存為記憶體系統快取區512中之純文字可執行指令566。此由計算記憶體程式542、密文可執行指令564與純文字可執行指令566之間之線指示。計算記憶體系統快取區512可為(例如,計算記憶體系統504及/或記憶體陣列511之)計算記憶體之一非可定址(例如,安全)區域。非可(例如,由一主機或DMA裝置等)定址之計算記憶體系統快取區512可使純文字可執行指令566安全,此係因為一外部裝置(諸如一主機或DMA裝置)無法注入惡意軟體。計算記憶體系統快取區512中之純文字可執行指令566可用於滿足來自主機之額外指令請求且隱藏可由計算記憶體程式542之操作導致之一些延時。此由從純文字可執行指令566至CPU 506之線繪示。 計算記憶體程式542可周遊作業系統頁面表516 (例如,任何主機操作以外及/或在計算記憶體系統504及/或作業系統頁面表516之閒置時間期間)來查找標記為可執行指令之頁面。在一些實施例中,計算記憶體程式542可回應於自與(例如,針對一經請求頁面之)一頁面存取相關聯之一主機接收一指令而周遊作業系統頁面表516。回應於尋找到標記為可執行指令之一頁面,計算記憶體程式542可判定標記為可執行指令之頁面是否已加密。可藉由參考指示頁面是否已加密(例如,藉由加密指示欄位546)且頁面是否可執行(例如,藉由類型欄位554)之作業系統頁面表516而判定經請求頁面是否已加密。回應於判定標記為可執行指令之頁面未加密,計算記憶體程式542可針對標記為可執行指令之頁面產生一密鑰且使用該密鑰加密該頁面。可取代未加密頁面(取代其中加密操作係回應於來自一主機之一請求之經請求頁面)儲存已加密頁面。尋找到未加密之標記為可執行指令之一頁面可暗指在某一時刻計算記憶體系統504遭遇一頁面錯失及需要將一頁面加載至記憶體陣列511中。有利地,計算記憶體程式542可藉由用一唯一產生的密鑰加密頁面而補救此,使得對注入攻擊更有彈性。 回應於判定標記為可執行指令之頁面已加密,計算記憶體程式542可繼續周遊作業系統頁面表516以尋找標記為可執行指令之一額外頁面。回應於尋找到標記為可執行指令之一額外頁面,計算記憶體程式542可判定標記為可執行指令之額外頁面是否已加密。若標記為可執行指令之額外頁面尚未加密,則計算記憶體程式542可產生一不同的密鑰且使用該不同的密鑰加密標記為可執行指令之該額外頁面。計算記憶體程式542可繼續周遊作業系統頁面表516以尋找標記為可執行指令之任何頁面且加密未加密之該等可執行指令。可用一唯一的密鑰加密已加密之作業系統記憶體表516中指涉之各加密頁面,使得作業系統頁面表516之密鑰欄位548中之各密鑰係唯一的(沒有兩個密鑰係相同的)。 在一些實施例中,回應於判定標記為可執行指令之頁面已加密,計算記憶體程式542可產生一新密鑰,使用新密鑰重新加密經請求頁面,且取代經請求頁面,將重新加密之頁面儲存於記憶體陣列511中。可用新密鑰更新經請求頁面之密鑰欄位548。重新加密之頁面可經解密(使用密鑰)且作為純文字儲存於記憶體系統快取區512中。 圖6為繪示根據本發明之若干實施例之對一已加密可執行指令之一隨後存取之一方塊流程圖。圖6包含一大容量儲存裝置614之一圖解。圖6包含一CPU 606,該CPU 606包含一邏輯單元618、TLB 620及CPU快取區622。圖6包含一計算記憶體系統604,該計算記憶體系統604包含I/O電路630、記憶體陣列611、計算記憶體系統快取區612、作業系統頁面表616、計算記憶體程式642及熵源640。 記憶體陣列611被繪示為具有對應於圖5中繪示之密文可執行指令564之密文可執行指令664。回應於對標記為可執行指令之頁面(例如,密文頁面664)之一請求,計算記憶體程式642可(用熵源640)產生一新密鑰、使用新密鑰重新加密標記為可執行指令之頁面且儲存經重新加密之可執行指令之頁面而取代標記為可執行指令之頁面。此由計算記憶體程式642與密文可執行指令664及密文可執行指令668之間之線繪示,密文可執行指令668表示標記為可執行指令之重新加密頁面。密文可執行指令664之x-out表示取代它而儲存之密文可執行指令668。計算記憶體程式642可刪除密文可執行指令564之第三表項目563且產生密文可執行指令668之一第四表項目665。 計算記憶體程式642可在第四表項目665之加密指示欄位646中將密文可執行指令頁面668標記為已加密(例如,「1」)。產生用以加密頁面之新密鑰可儲存於第四表項目665之密鑰欄位648中(例如,「PQR」)。此由從熵源640穿過計算記憶體程式642至第四表項目665中之密鑰欄位648之線指示。第四表項目665之虛擬位址欄位650中之虛擬記憶體位址(例如,「C」)、實體位址欄位652中之實體位址(例如,「D」)、類型欄位654中之類型(例如,「X」)及大小欄位656中之大小(例如,「4k」)可保持與第三表項目563的相同,然而,實施例不受限於此,此係因為例如實體位址可改變。 儘管未在圖6中具體繪示,但可(例如,自一主機或DMA裝置)接收可執行指令之一新頁面且計算記憶體程式642可針對新頁面(用熵源640)產生一新密鑰。新頁面可由新密鑰加密且儲存於記憶體陣列611中。計算記憶體程式642可針對新頁面而在作業系統頁面表616中產生一新項目,包含將新頁面標記為可執行指令及已加密。 在一些實施例中,計算記憶體程式642可解密已重新加密之頁面(例如,密文可執行指令668)且將已解密之頁面(例如,作為純文字可執行指令670)儲存於計算記憶體系統快取區612中以供傳送(例如,至一主機或DMA裝置)以滿足(對一請求來源之)一請求。此由計算記憶體程式642、純文字可執行指令670及密文可執行指令668之間之線,以及純文字可執行指令670與CPU 606之間之線繪示。在一些實施例中,已解密可執行指令或未加密可執行指令透過I/O電路630自計算記憶體系統快取區612而非自記憶體陣列611傳送至一請求裝置以防止將任何已注入的程式碼隨可執行指令一起發送,此係因為無用於將程式碼注入至計算記憶體系統快取區612之機構。即使記憶體陣列611中之密文可執行指令注入有惡意程式碼,可執行指令之解密將使注入之程式碼無意義,此係因為其將非以使用用於加密可執行指令之相同密鑰之一加密形式注入。因此,解密程序將洩露惡意程式碼。具有洩露的惡意程式碼之可執行指令無法用於其預期目的(其可產生一錯誤),而惡意程式碼將不執行(例如,其可導致一停止、預取中止或使管線急劇斷路),而病毒不會擴散。 儘管未具體繪示成此,但用於儲存可執行指令之一非暫態計算裝置可讀媒體可包含全部形式的揮發性及非揮發性記憶體,包含(藉由實例方式)半導體記憶體裝置、DRAM、PIM、HMC、EPROM、EEPROM、快閃記憶體裝置、磁碟(諸如,固定磁碟、軟碟及可抽換式磁碟)、其它磁性媒體(包含磁帶)、光學媒體(諸如,光碟(CD)、數位多功能光碟(DVD)及藍光光碟(BD))。指令可由ASIC補充或併入至ASIC中。例如,圖1中繪示之次級儲存器114、CPU快取區122及/或記憶體陣列111之任何一或多者可為一非暫態計算裝置可讀媒體。 儘管已在本文中圖解及描述特定實施例,但一般技術者將暸解,經計算以達成相同結果之一配置可取代展示之特定實施例。本發明意欲涵蓋本發明之一或多個實施例之調適或變動。應瞭解,已依一繪示性方式且非一限制性方式進行以上描述。熟習此項技術者在檢視上述描述時將明白上述實施例與未在本文中具體描述之其它實施例之組合。本發明之一或多個實施例之範疇包含其中使用上文結構及方法之其它應用。因此,應參考隨附申請專利範圍連同此等申請專利範圍所授權之等效物之全部範圍而判定本發明之一或多個實施例之範疇。 在前述實施方式中,為簡化本發明之目的將一些特徵一起集合於一單一實施例中。本發明之此方法不應解釋為反映以下意圖:本發明之所揭示實施例必須使用多於各請求項中所明確陳述之特徵。實情係,如以下申請專利範圍反映,發明標的物可能少於一單一所揭示實施例之全部特徵。因此,以下申請專利範圍以此方式併入實施方式中,其中各請求項單獨作為一獨立實施例。
100‧‧‧運算系統 102‧‧‧主機 104‧‧‧計算記憶體系統 106‧‧‧中央處理單元(CPU) 108‧‧‧控制器 110‧‧‧計算記憶體裝置 111‧‧‧記憶體陣列 114‧‧‧大容量儲存器 118‧‧‧邏輯單元 120‧‧‧轉譯後備緩衝器(TLB) 122‧‧‧CPU快取區 124‧‧‧感測電路 126‧‧‧位址電路 128‧‧‧列解碼器 130‧‧‧I/O電路 132‧‧‧寫入電路 134‧‧‧行解碼器 136‧‧‧控制匯流排 138‧‧‧I/O匯流排 210‧‧‧計算記憶體裝置 211‧‧‧記憶體陣列 224‧‧‧感測電路 240-1至240-N‧‧‧記憶體胞 242-1至242-M‧‧‧存取線 244-1至244-N‧‧‧感測線 246-1至246-N‧‧‧感測放大器 248-1至248-N‧‧‧計算組件 250-1至250-N‧‧‧存取裝置 252-1至252-N‧‧‧行解碼線 254‧‧‧輸入/輸出線 256‧‧‧次級感測放大器 304‧‧‧計算記憶體系統 306‧‧‧中央處理單元(CPU) 311‧‧‧記憶體陣列 312‧‧‧計算記憶體系統快取區 314‧‧‧大容量儲存裝置 316‧‧‧作業系統頁面表 318‧‧‧邏輯單元 320‧‧‧轉譯後備緩衝器(TLB) 322‧‧‧CPU快取區 330‧‧‧I/O電路 340‧‧‧熵源 342‧‧‧計算記憶體程式 344‧‧‧第一表項目 346‧‧‧加密指示欄位 348‧‧‧密鑰欄位 350‧‧‧虛擬位址欄位 352‧‧‧實體位址欄位 354‧‧‧頁面類型欄位 356‧‧‧大小欄位 358‧‧‧資料頁面 404‧‧‧計算記憶體系統 406‧‧‧中央處理單元(CPU) 411‧‧‧記憶體陣列 412‧‧‧計算記憶體系統快取區 414‧‧‧大容量儲存裝置 416‧‧‧作業系統頁面表 418‧‧‧邏輯單元 420‧‧‧轉譯後備緩衝器(TLB) 422‧‧‧CPU快取區 430‧‧‧I/O電路 440‧‧‧熵源 442‧‧‧計算記憶體程式 444‧‧‧第一表項目 446‧‧‧加密指示欄位 448‧‧‧密鑰欄位 450‧‧‧虛擬位址欄位 452‧‧‧實體位址欄位 454‧‧‧類型欄位 456‧‧‧大小欄位 460‧‧‧第二表項目 461‧‧‧可執行指令 462‧‧‧純文字可執行指令 504‧‧‧計算記憶體系統 506‧‧‧中央處理單元(CPU) 511‧‧‧記憶體陣列 512‧‧‧計算記憶體系統快取區 514‧‧‧大容量儲存裝置 516‧‧‧作業系統頁面表 518‧‧‧邏輯單元 520‧‧‧轉譯後備緩衝器(TLB) 522‧‧‧CPU快取區 530‧‧‧I/O電路 540‧‧‧熵源 542‧‧‧計算記憶體程式 544‧‧‧第一表項目 546‧‧‧加密指示欄位 548‧‧‧密鑰欄位 550‧‧‧虛擬位址欄位 552‧‧‧實體位址欄位 554‧‧‧類型欄位 556‧‧‧大小欄位 563‧‧‧第三表項目 564‧‧‧密文可執行指令 566‧‧‧純文字可執行指令 604‧‧‧計算記憶體系統 606‧‧‧中央處理單元(CPU) 611‧‧‧記憶體陣列 612‧‧‧計算記憶體系統快取區 614‧‧‧大容量儲存裝置 616‧‧‧作業系統頁面表 618‧‧‧邏輯單元 620‧‧‧轉譯後備緩衝器(TLB) 622‧‧‧CPU快取區 630‧‧‧I/O電路 640‧‧‧熵源 642‧‧‧計算記憶體程式 644‧‧‧第一表項目 646‧‧‧加密指示欄位 648‧‧‧密鑰欄位 650‧‧‧虛擬位址欄位 652‧‧‧實體位址欄位 654‧‧‧類型欄位 656‧‧‧大小欄位 664‧‧‧密文可執行指令 665‧‧‧第四表項目 668‧‧‧密文可執行指令 670‧‧‧純文字可執行指令
圖1為根據本發明之若干實施例之呈包含至少一個計算記憶體系統之一運算系統之形式之一設備之一方塊圖。 圖2為根據本發明之若干實施例之一計算記憶體裝置之一部分之一示意圖。 圖3為繪示根據本發明之若干實施例之一讀取或寫入存取之一方塊流程圖。 圖4為繪示根據本發明之若干實施例之一新頁面分配之一方塊流程圖。 圖5為繪示根據本發明之若干實施例之可執行指令之加密之一方塊流程圖。 圖6為繪示根據本發明之若干實施例之對一已加密可執行指令之一隨後存取之一方塊流程圖。
504‧‧‧計算記憶體系統
506‧‧‧中央處理單元
511‧‧‧記憶體陣列
512‧‧‧計算記憶體系統快取區
514‧‧‧大容量儲存裝置
516‧‧‧作業系統頁面表
518‧‧‧邏輯單元
520‧‧‧轉譯後備緩衝器
522‧‧‧CPU快取區
530‧‧‧I/O電路
540‧‧‧熵源
542‧‧‧計算記憶體程式
546‧‧‧加密指示欄位
548‧‧‧密鑰欄位
550‧‧‧虛擬位址欄位
552‧‧‧實體位址欄位
554‧‧‧類型欄位
556‧‧‧大小欄位
563‧‧‧第三表項目
564‧‧‧密文可執行指令
566‧‧‧純文字可執行指令
Claims (25)
- 一種方法,其包括: 藉由計算記憶體周遊該計算記憶體中之一作業系統頁面表以尋找標記為可執行指令之一頁面; 回應於尋找到標記為可執行指令之一頁面,判定標記為可執行指令之該頁面是否已加密; 回應於判定標記為可執行指令之該頁面未加密,針對標記為可執行指令之該頁面產生一密鑰;及 使用該密鑰加密標記為可執行指令之該頁面。
- 如請求項1之方法,其中該方法包含,回應於判定標記為可執行指令之該頁面已加密,周遊該作業系統頁面表以尋找標記為可執行指令之一額外頁面。
- 如請求項2之方法,其中該方法包含,回應於尋找到標記為可執行指令之該額外頁面,判定標記為可執行指令之該額外頁面是否已加密; 回應於判定標記為可執行指令之該額外頁面未加密,針對標記為可執行指令之該額外頁面產生一不同的密鑰;及 使用該不同的密鑰加密標記為可執行指令之該額外頁面。
- 如請求項1之方法,其中周遊該作業系統頁面表包括:回應於自與一頁面存取相關聯之一主機接收一指令而周遊該作業系統頁面表。
- 如請求項1之方法,其中該方法包含,回應於對標記為可執行指令之該頁面之一請求而: 產生一新密鑰;及 使用該新密鑰重新加密標記為可執行指令之該頁面;及 取代標記為可執行指令之該頁面儲存該重新加密之頁面。
- 如請求項5之方法,其中該方法包含,回應於對標記為可執行指令之該頁面之該請求: 解密該重新加密之頁面;及 將該已解密頁面儲存於該計算記憶體之快取區中以供傳送以滿足該請求。
- 如請求項1之方法,其中該方法包含: 接收一新頁面,該新頁面包括可執行指令; 針對該新頁面產生一新密鑰; 使用該新密鑰加密該新頁面; 將該新頁面儲存於該計算記憶體中;及 針對該新頁面在該作業系統頁面表中產生一項目,包含將該新頁面標記為可執行指令及已加密。
- 一種方法,其包括: 藉由計算記憶體周遊該計算記憶體中之一作業系統頁面表以尋找標記為可執行指令之任何頁面; 回應於尋找到標記為可執行指令之一第一頁面,判定標記為可執行指令之該第一頁面是否已加密; 回應於判定標記為可執行指令之該第一頁面未加密,針對標記為可執行指令之該第一頁面產生一第一密鑰; 使用該第一密鑰加密標記為可執行指令之該第一頁面; 回應於尋找到標記為可執行指令之一第二頁面,判定標記為可執行指令之該第二頁面是否已加密; 回應於判定標記為可執行指令之該第二頁面未加密,針對標記為可執行指令之該第二頁面產生一第二密鑰;及 使用該第二密鑰加密標記為可執行指令之該第二頁面。
- 如請求項8之方法,其中該方法包含: 接收一第三頁面,該第三頁面包括可執行指令; 針對該第三頁面產生一第三密鑰; 使用該第三密鑰加密該第三頁面;及 將該第三頁面儲存於該計算記憶體中。
- 如請求項9之方法,其中該方法包含針對該第三頁面在該作業系統頁面表中產生一項目,包含: 將該第三頁面標記為可執行指令及已加密;及 將該第三密鑰儲存於該項目中。
- 一種非暫態電腦可讀媒體,其儲存可由計算記憶體執行之指令以: 判定該計算記憶體中之標記為可執行指令之一經請求頁面是否已加密; 回應於判定該經請求頁面未加密: 將該經請求頁面儲存於該計算記憶體之快取區中; 產生一密鑰; 使用該密鑰加密該經請求頁面;及 取代該經請求頁面,將該已加密頁面儲存於該計算記憶體中;及 回應於判定該經請求頁面已加密: 產生一新密鑰; 使用該新密鑰重新加密該經請求頁面; 取代該經請求頁面,將該重新加密之頁面儲存於該計算記憶體中;及 解密該經請求頁面且將該已解密之頁面儲存於該計算記憶體之該快取區中。
- 如請求項11之媒體,其中該等指令可執行以將該經請求頁面或該已解密頁面從該快取區傳送至該請求之一來源。
- 如請求項11之媒體,其中用以判定該經請求頁面是否已加密之該等指令包括用以參考指示頁面是否已加密及頁面是否可執行之該計算記憶體中之一作業系統頁面表之指令。
- 一種設備,其包括: 一計算記憶體;及 一作業系統頁面表,其儲存於該計算記憶體中,其中該作業系統頁面表包含: 一各自頁面是否已加密之一指示; 用於已加密之各頁面之一各自密鑰; 對應於該各自頁面之一虛擬位址; 對應於該各自頁面之一實體位址;及 該各自頁面之一類型之一標記;及 其中該計算記憶體經組態以維持該作業系統頁面表。
- 如請求項14之設備,其中該設備包含經組態以產生該等各自密鑰之一熵源。
- 如請求項14之設備,其中該計算記憶體經組態以: 周遊該作業系統頁面表以尋找標記為可執行指令且未指示為已加密之頁面;及 使用唯一產生的密鑰加密標記為可執行指令且未指示為已加密之該等頁面。
- 如請求項16之設備,其中該各自頁面之該類型之該標記包括包含可讀取、可寫入、可讀取/可寫入及可執行指令之類型群組之一者;及 其中該各自頁面之該類型指示該各自頁面是否儲存資料或可執行指令。
- 如請求項14之設備,其中該計算記憶體包含感測電路,該感測電路經組態以對儲存於該計算記憶體中之記憶體胞中之資料執行一邏輯運算且將該結果儲存回至該計算記憶體,而不啟用耦合至該感測電路之一局域輸入/輸出線。
- 一種設備,其包括: 一計算記憶體,其經組態以: 根據藉由該計算記憶體對該計算記憶體中之一作業系統頁面表之一周遊,回應於該第一頁面未加密且回應於該第一頁面標記為可執行指令,加密一第一頁面; 回應於該第二頁面未加密且回應於該第二頁面經請求而加密標記為可執行指令之一第二頁面;及 回應於該第三頁面已加密且回應於該第三頁面經請求而重新加密標記為可執行指令之一第三頁面。
- 如請求項19之設備,其中該計算記憶體經組態以使用由該計算記憶體中之一熵源產生之唯一的密鑰加密或重新加密該計算記憶體中之頁面。
- 如請求項20之設備,其中該熵源包括包含一鎖相迴路頻率、該設備之一序號及一計時器之熵源群組之至少一者。
- 如請求項19之設備,其中該計算記憶體經組態以在加密該第二頁面之前,將該第二頁面儲存於該計算記憶體中之一快取區中以供根據該請求而傳送。
- 如請求項22之設備,其中該計算記憶體經組態以回應於對該第二頁面之一隨後請求而自該快取區傳送該第二頁面。
- 如請求項19之設備,其中該計算記憶體經組態以解密該第三頁面且將該已解密之第三頁面儲存於快取區中以供根據該請求而傳送。
- 一種方法,其包括: 接收對儲存於一計算記憶體中之一頁面之一請求; 判定該經請求頁面是否已在該計算記憶體中之一作業系統頁面表中被標記為可執行指令; 判定該經請求頁面是否已在該計算記憶體中之該作業系統頁面表中被指示為已加密;及 回應於判定該經請求頁面可執行且已加密: 產生一新密鑰; 使用該新密鑰重新加密該經請求頁面; 取代該經請求頁面,將該重新加密之頁面儲存於該計算記憶體中; 解密該經請求頁面且將該已解密頁面儲存於該計算記憶體之該快取區中;及 自該快取區傳送該已解密經請求頁面以滿足該請求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/828,151 | 2015-08-17 | ||
US14/828,151 US9996479B2 (en) | 2015-08-17 | 2015-08-17 | Encryption of executables in computational memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201719489A true TW201719489A (zh) | 2017-06-01 |
TWI631482B TWI631482B (zh) | 2018-08-01 |
Family
ID=58051528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105125524A TWI631482B (zh) | 2015-08-17 | 2016-08-10 | 計算記憶體中可執行指令之加密之方法及設備 |
Country Status (6)
Country | Link |
---|---|
US (3) | US9996479B2 (zh) |
EP (3) | EP4102373A1 (zh) |
KR (1) | KR102059093B1 (zh) |
CN (1) | CN107924367B (zh) |
TW (1) | TWI631482B (zh) |
WO (1) | WO2017030745A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816456B (zh) * | 2022-06-30 | 2023-09-21 | 新唐科技股份有限公司 | 密碼裝置及其密碼方法 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9767318B1 (en) * | 2015-08-28 | 2017-09-19 | Frank Dropps | Secure controller systems and associated methods thereof |
US9747982B1 (en) * | 2016-02-22 | 2017-08-29 | Arm Ltd. | Device and method for generating random numbers |
GB2553102B (en) * | 2016-08-19 | 2020-05-20 | Advanced Risc Mach Ltd | A memory unit and method of operation of a memory unit to handle operation requests |
US10320563B2 (en) * | 2016-09-23 | 2019-06-11 | Apple Inc. | Cryptographic entropy tree |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10402340B2 (en) * | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10838899B2 (en) | 2017-03-21 | 2020-11-17 | Micron Technology, Inc. | Apparatuses and methods for in-memory data switching networks |
US11222260B2 (en) | 2017-03-22 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for operating neural networks |
US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
US10049721B1 (en) | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10147467B2 (en) | 2017-04-17 | 2018-12-04 | Micron Technology, Inc. | Element value comparison in memory |
US10043570B1 (en) | 2017-04-17 | 2018-08-07 | Micron Technology, Inc. | Signed element compare in memory |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10942843B2 (en) | 2017-04-25 | 2021-03-09 | Micron Technology, Inc. | Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10013197B1 (en) | 2017-06-01 | 2018-07-03 | Micron Technology, Inc. | Shift skip |
US10691837B1 (en) | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
US10262701B2 (en) | 2017-06-07 | 2019-04-16 | Micron Technology, Inc. | Data transfer between subarrays in memory |
US10152271B1 (en) | 2017-06-07 | 2018-12-11 | Micron Technology, Inc. | Data replication |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
CN107526974B (zh) * | 2017-08-03 | 2020-08-11 | 海光信息技术有限公司 | 一种信息密码保护装置和方法 |
CN107563228B (zh) * | 2017-08-03 | 2021-04-20 | 海光信息技术股份有限公司 | 一种内存数据加解密的方法 |
CN107563226B (zh) * | 2017-08-04 | 2020-05-12 | 海光信息技术有限公司 | 一种存储器控制器、处理器模块及密钥更新方法 |
US10162005B1 (en) | 2017-08-09 | 2018-12-25 | Micron Technology, Inc. | Scan chain operations |
US10534553B2 (en) | 2017-08-30 | 2020-01-14 | Micron Technology, Inc. | Memory array accessibility |
US10416927B2 (en) | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10346092B2 (en) | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
US10409739B2 (en) | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
US10522210B2 (en) | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US10614875B2 (en) | 2018-01-30 | 2020-04-07 | Micron Technology, Inc. | Logical operations using memory cells |
US10437557B2 (en) | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US11194477B2 (en) | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
US10725696B2 (en) | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
US10440341B1 (en) | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US10785786B2 (en) * | 2018-09-26 | 2020-09-22 | Micron Technology, Inc. | Remotely executable instructions |
US10769071B2 (en) | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10483978B1 (en) | 2018-10-16 | 2019-11-19 | Micron Technology, Inc. | Memory device processing |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
US11360768B2 (en) | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
US11620149B2 (en) | 2020-06-25 | 2023-04-04 | Red Hat, Inc. | Safe entropy source for encrypted virtual machines |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
CN115617274A (zh) * | 2022-10-27 | 2023-01-17 | 亿铸科技(杭州)有限责任公司 | 一种具备坏块管理功能的存内计算装置及操作方法 |
Family Cites Families (288)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380046A (en) | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
JPS6032911B2 (ja) | 1979-07-26 | 1985-07-31 | 株式会社東芝 | 半導体記憶装置 |
US4435792A (en) | 1982-06-30 | 1984-03-06 | Sun Microsystems, Inc. | Raster memory manipulation apparatus |
US4727474A (en) | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
EP0214718A3 (en) | 1985-07-22 | 1990-04-04 | Alliant Computer Systems Corporation | Digital computer |
US5201039A (en) | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US4843264A (en) | 1987-11-25 | 1989-06-27 | Visic, Inc. | Dynamic sense amplifier for CMOS static RAM |
US5276643A (en) | 1988-08-11 | 1994-01-04 | Siemens Aktiengesellschaft | Integrated semiconductor circuit |
JPH0713858B2 (ja) | 1988-08-30 | 1995-02-15 | 三菱電機株式会社 | 半導体記憶装置 |
US5023838A (en) | 1988-12-02 | 1991-06-11 | Ncr Corporation | Random access memory device with integral logic capability |
US4958378A (en) | 1989-04-26 | 1990-09-18 | Sun Microsystems, Inc. | Method and apparatus for detecting changes in raster data |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
DE69132495T2 (de) | 1990-03-16 | 2001-06-13 | Texas Instruments Inc | Verteilter Verarbeitungsspeicher |
US5034636A (en) | 1990-06-04 | 1991-07-23 | Motorola, Inc. | Sense amplifier with an integral logic function |
US5210850A (en) | 1990-06-15 | 1993-05-11 | Compaq Computer Corporation | Memory address space determination using programmable limit registers with single-ended comparators |
JP3361825B2 (ja) | 1990-08-22 | 2003-01-07 | テキサス インスツルメンツ インコーポレイテツド | メモリ・アレイ・アーキテクチャ |
JPH06103599B2 (ja) | 1990-11-16 | 1994-12-14 | 三菱電機株式会社 | 半導体集積回路装置 |
US5325519A (en) | 1991-10-18 | 1994-06-28 | Texas Microsystems, Inc. | Fault tolerant computer with archival rollback capabilities |
FR2685973B1 (fr) | 1992-01-03 | 1994-02-25 | France Telecom | Point memoire pour memoire associative. |
KR950005095Y1 (ko) | 1992-03-18 | 1995-06-22 | 문정환 | 양방향성 그로벌 비트 라인을 갖는 dram |
JPH06215160A (ja) | 1992-08-25 | 1994-08-05 | Texas Instr Inc <Ti> | データ処理方法および装置 |
KR950004854B1 (ko) | 1992-10-08 | 1995-05-15 | 삼성전자 주식회사 | 반도체 메모리 장치 |
US5485373A (en) | 1993-03-25 | 1996-01-16 | Taligent, Inc. | Language-sensitive text searching system with modified Boyer-Moore process |
US5440482A (en) | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
US5754478A (en) | 1993-04-20 | 1998-05-19 | Micron Technology, Inc. | Fast, low power, write scheme for memory circuits using pulsed off isolation device |
US5369622A (en) | 1993-04-20 | 1994-11-29 | Micron Semiconductor, Inc. | Memory with isolated digit lines |
JP2663838B2 (ja) | 1993-07-27 | 1997-10-15 | 日本電気株式会社 | 半導体集積回路装置 |
JP3252306B2 (ja) | 1993-08-10 | 2002-02-04 | 株式会社日立製作所 | 半導体不揮発性記憶装置 |
JP3904244B2 (ja) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
US5655113A (en) | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
JPH0831168A (ja) | 1994-07-13 | 1996-02-02 | Hitachi Ltd | 半導体記憶装置 |
US5481500A (en) | 1994-07-22 | 1996-01-02 | International Business Machines Corporation | Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories |
US5615404A (en) | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
US5638128A (en) | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
US5724366A (en) | 1995-05-16 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
KR0146530B1 (ko) | 1995-05-25 | 1998-09-15 | 김광호 | 단속제어회로를 구비한 반도체 메모리 장치와 제어방법 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JP2812262B2 (ja) | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
JP2817836B2 (ja) | 1995-11-30 | 1998-10-30 | 日本電気株式会社 | 半導体メモリ装置 |
JP3356612B2 (ja) | 1996-02-29 | 2002-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 高速な輪郭スムージング方法及び装置 |
US6092186A (en) | 1996-05-07 | 2000-07-18 | Lucent Technologies Inc. | Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device |
US5915084A (en) | 1996-09-30 | 1999-06-22 | Advanced Micro Devices, Inc. | Scannable sense amplifier circuit |
US5991209A (en) | 1997-04-11 | 1999-11-23 | Raytheon Company | Split sense amplifier and staging buffer for wide memory architecture |
JP3592887B2 (ja) | 1997-04-30 | 2004-11-24 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6510098B1 (en) | 1997-05-28 | 2003-01-21 | Cirrus Logic, Inc. | Method and apparatus for transferring data in a dual port memory |
JPH1115773A (ja) | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
US5935263A (en) | 1997-07-01 | 1999-08-10 | Micron Technology, Inc. | Method and apparatus for memory array compressed data testing |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
US6181698B1 (en) | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6025221A (en) | 1997-08-22 | 2000-02-15 | Micron Technology, Inc. | Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks |
US5991785A (en) | 1997-11-13 | 1999-11-23 | Lucent Technologies Inc. | Determining an extremum value and its index in an array using a dual-accumulation processor |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6163862A (en) | 1997-12-01 | 2000-12-19 | International Business Machines Corporation | On-chip test circuit for evaluating an on-chip signal using an external test signal |
JP3488612B2 (ja) | 1997-12-11 | 2004-01-19 | 株式会社東芝 | センス増幅回路 |
US5986942A (en) | 1998-01-20 | 1999-11-16 | Nec Corporation | Semiconductor memory device |
JPH11260057A (ja) | 1998-03-13 | 1999-09-24 | Nec Corp | 半導体記憶装置 |
JPH11265995A (ja) | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH11306751A (ja) | 1998-04-22 | 1999-11-05 | Toshiba Corp | 半導体記憶装置 |
US6005799A (en) | 1998-08-06 | 1999-12-21 | Silicon Aquarius | Methods and circuits for single-memory dynamic cell multivalue data storage |
US6141286A (en) | 1998-08-21 | 2000-10-31 | Micron Technology, Inc. | Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines |
US7409694B2 (en) | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
JP2000173269A (ja) | 1998-12-08 | 2000-06-23 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR100381968B1 (ko) | 1998-12-30 | 2004-03-24 | 주식회사 하이닉스반도체 | 고속동작용디램 |
US5999435A (en) | 1999-01-15 | 1999-12-07 | Fast-Chip, Inc. | Content addressable memory device |
US6389507B1 (en) | 1999-01-15 | 2002-05-14 | Gigabus, Inc. | Memory device search system and method |
US6134164A (en) | 1999-04-22 | 2000-10-17 | International Business Machines Corp. | Sensing circuit for a memory cell array |
US6741104B2 (en) | 1999-05-26 | 2004-05-25 | Micron Technology, Inc. | DRAM sense amplifier for low voltages |
US6157578A (en) | 1999-07-15 | 2000-12-05 | Stmicroelectronics, Inc. | Method and apparatus for accessing a memory device |
US6208544B1 (en) | 1999-09-09 | 2001-03-27 | Harris Corporation | Content addressable memory cell providing simultaneous read and compare capability |
US6578058B1 (en) | 1999-10-06 | 2003-06-10 | Agilent Technologies, Inc. | System and method for comparing values from target systems |
US7124221B1 (en) | 1999-10-19 | 2006-10-17 | Rambus Inc. | Low latency multi-level communication interface |
US6418498B1 (en) | 1999-12-30 | 2002-07-09 | Intel Corporation | Integrated system management memory for system management interrupt handler independent of BIOS and operating system |
JP4627103B2 (ja) | 2000-01-18 | 2011-02-09 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
WO2001057875A1 (fr) | 2000-02-04 | 2001-08-09 | Hitachi, Ltd. | Dispositif semi-conducteur |
AU2001239907A1 (en) | 2000-02-29 | 2001-09-12 | Stephen J. Guerreri | Method and apparatus for building a memory image |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
JP3983969B2 (ja) | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6678678B2 (en) | 2000-03-09 | 2004-01-13 | Braodcom Corporation | Method and apparatus for high speed table search |
JP3822412B2 (ja) | 2000-03-28 | 2006-09-20 | 株式会社東芝 | 半導体記憶装置 |
US6965648B1 (en) | 2000-05-04 | 2005-11-15 | Sun Microsystems, Inc. | Source synchronous link integrity validation |
CN1307647C (zh) | 2000-07-07 | 2007-03-28 | 睦塞德技术公司 | 动态随机存取存储器、存储器器件及其执行读命令的方法 |
US6466499B1 (en) | 2000-07-11 | 2002-10-15 | Micron Technology, Inc. | DRAM sense amplifier having pre-charged transistor body nodes |
WO2002017262A2 (en) | 2000-08-21 | 2002-02-28 | United States Postal Services | Delivery point validation system |
US6301164B1 (en) | 2000-08-25 | 2001-10-09 | Micron Technology, Inc. | Antifuse method to repair columns in a prefetched output memory architecture |
US6704828B1 (en) | 2000-08-31 | 2004-03-09 | Micron Technology, Inc. | System and method for implementing data pre-fetch having reduced data lines and/or higher data rates |
US6948056B1 (en) | 2000-09-28 | 2005-09-20 | Intel Corporation | Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages |
US6304477B1 (en) | 2001-01-31 | 2001-10-16 | Motorola, Inc. | Content addressable magnetic random access memory |
US6563754B1 (en) | 2001-02-08 | 2003-05-13 | Integrated Device Technology, Inc. | DRAM circuit with separate refresh memory |
US6650158B2 (en) | 2001-02-21 | 2003-11-18 | Ramtron International Corporation | Ferroelectric non-volatile logic elements |
US7073059B2 (en) * | 2001-06-08 | 2006-07-04 | Hewlett-Packard Development Company, L.P. | Secure machine platform that interfaces to operating systems and customized control programs |
US6807614B2 (en) | 2001-07-19 | 2004-10-19 | Shine C. Chung | Method and apparatus for using smart memories in computing |
US7546438B2 (en) | 2001-07-19 | 2009-06-09 | Chung Shine C | Algorithm mapping, specialized instructions and architecture features for smart memory computing |
ITRM20010531A1 (it) | 2001-08-31 | 2003-02-28 | Micron Technology Inc | Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash. |
US7260672B2 (en) | 2001-09-07 | 2007-08-21 | Intel Corporation | Using data stored in a destructive-read memory |
US7062689B2 (en) | 2001-12-20 | 2006-06-13 | Arm Limited | Method and apparatus for memory self testing |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US6707729B2 (en) | 2002-02-15 | 2004-03-16 | Micron Technology, Inc. | Physically alternating sense amplifier activation |
WO2003088033A1 (en) | 2002-04-09 | 2003-10-23 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
US6715085B2 (en) * | 2002-04-18 | 2004-03-30 | International Business Machines Corporation | Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function |
JP2003331598A (ja) | 2002-05-13 | 2003-11-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
US7406494B2 (en) | 2002-05-14 | 2008-07-29 | Texas Instruments Incorporated | Method of generating a cycle-efficient bit-reverse index array for a wireless communication system |
JP2003346484A (ja) | 2002-05-23 | 2003-12-05 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US6789099B2 (en) | 2002-06-10 | 2004-09-07 | International Business Machines Corporation | Sense-amp based adder with source follower evaluation tree |
US7054178B1 (en) | 2002-09-06 | 2006-05-30 | Etron Technology, Inc. | Datapath architecture for high area efficiency |
US6987693B2 (en) | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7079407B1 (en) | 2002-10-18 | 2006-07-18 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device including match line sensing |
US6765834B2 (en) | 2002-11-19 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | System and method for sensing memory cells of an array of memory cells |
KR100546307B1 (ko) | 2002-12-05 | 2006-01-26 | 삼성전자주식회사 | 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃 |
US6731542B1 (en) | 2002-12-05 | 2004-05-04 | Advanced Micro Devices, Inc. | Circuit for accurate memory read operations |
US6888372B1 (en) | 2002-12-20 | 2005-05-03 | Altera Corporation | Programmable logic device with soft multiplier |
WO2004059651A2 (en) | 2002-12-27 | 2004-07-15 | Solid State System Co., Ltd. | Nonvolatile memory unit with specific cache |
US7346903B2 (en) | 2003-02-04 | 2008-03-18 | Sun Microsystems, Inc. | Compiling and linking modules of a cycle-based logic design |
US6768679B1 (en) | 2003-02-10 | 2004-07-27 | Advanced Micro Devices, Inc. | Selection circuit for accurate memory read operations |
US6819612B1 (en) | 2003-03-13 | 2004-11-16 | Advanced Micro Devices, Inc. | Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage |
US6865122B2 (en) | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US7447720B2 (en) | 2003-04-23 | 2008-11-04 | Micron Technology, Inc. | Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements |
US7454451B2 (en) | 2003-04-23 | 2008-11-18 | Micron Technology, Inc. | Method for finding local extrema of a set of values for a parallel processing element |
US7574466B2 (en) | 2003-04-23 | 2009-08-11 | Micron Technology, Inc. | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements |
US9015390B2 (en) | 2003-04-25 | 2015-04-21 | Micron Technology, Inc. | Active memory data compression system and method |
DE10319271A1 (de) | 2003-04-29 | 2004-11-25 | Infineon Technologies Ag | Speicher-Schaltungsanordnung und Verfahren zur Herstellung |
JP3898152B2 (ja) | 2003-05-27 | 2007-03-28 | ローム株式会社 | 演算機能付き記憶装置および演算記憶方法 |
EP1665286B8 (en) | 2003-09-04 | 2007-09-12 | Nxp B.V. | Integrated circuit and a method of cache remapping |
US6956770B2 (en) | 2003-09-17 | 2005-10-18 | Sandisk Corporation | Non-volatile memory and method with bit line compensation dependent on neighboring operating modes |
US7177183B2 (en) | 2003-09-30 | 2007-02-13 | Sandisk 3D Llc | Multiple twin cell non-volatile memory array and logic block structure and method therefor |
US7913125B2 (en) | 2003-11-04 | 2011-03-22 | Lsi Corporation | BISR mode to test the redundant elements and regular functional memory to avoid test escapes |
US7734932B2 (en) * | 2003-11-10 | 2010-06-08 | Broadcom Corporation | System and method for securing executable code |
US6950771B1 (en) | 2003-12-09 | 2005-09-27 | Xilinx, Inc. | Correlation of electrical test data with physical defect data |
US8806187B1 (en) * | 2009-12-03 | 2014-08-12 | Google Inc. | Protecting browser-viewed content from piracy |
US7401281B2 (en) | 2004-01-29 | 2008-07-15 | International Business Machines Corporation | Remote BIST high speed test and redundancy calculation |
US7631236B2 (en) | 2004-01-29 | 2009-12-08 | International Business Machines Corporation | Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method |
JP4819316B2 (ja) | 2004-02-23 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7088606B2 (en) | 2004-03-10 | 2006-08-08 | Altera Corporation | Dynamic RAM storage techniques |
US7020017B2 (en) | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7120063B1 (en) | 2004-05-07 | 2006-10-10 | Spansion Llc | Flash memory cell and methods for programming and erasing |
US8522205B2 (en) | 2004-05-18 | 2013-08-27 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
JP2006127460A (ja) | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
US7061817B2 (en) | 2004-06-30 | 2006-06-13 | Micron Technology, Inc. | Data path having grounded precharge operation and test compression capability |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US7434024B2 (en) | 2004-08-30 | 2008-10-07 | Ati Technologies, Inc. | SIMD processor with register addressing, buffer stall and methods |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US20060069849A1 (en) | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
US20060149804A1 (en) | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US7230851B2 (en) | 2004-12-23 | 2007-06-12 | Sandisk Corporation | Reducing floating gate to floating gate coupling effect |
KR100673901B1 (ko) | 2005-01-28 | 2007-01-25 | 주식회사 하이닉스반도체 | 저전압용 반도체 메모리 장치 |
US7543119B2 (en) | 2005-02-10 | 2009-06-02 | Richard Edward Hessel | Vector processor |
US7624313B2 (en) | 2005-03-28 | 2009-11-24 | Hewlett-Packard Development Company, L.P. | TCAM BIST with redundancy |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7193898B2 (en) | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
CN100424611C (zh) * | 2005-07-28 | 2008-10-08 | 国际商业机器公司 | 用于处理加密软件的方法和中央处理单元 |
KR100720644B1 (ko) | 2005-11-17 | 2007-05-21 | 삼성전자주식회사 | 메모리 장치 및 메모리 그 동작 방법 |
JP4804479B2 (ja) | 2005-12-13 | 2011-11-02 | スパンション エルエルシー | 半導体装置およびその制御方法 |
JP5129450B2 (ja) | 2006-01-16 | 2013-01-30 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US8077533B2 (en) | 2006-01-23 | 2011-12-13 | Freescale Semiconductor, Inc. | Memory and method for sensing data in a memory using complementary sensing scheme |
JP4989900B2 (ja) | 2006-01-31 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US7400532B2 (en) | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
WO2008054456A2 (en) * | 2006-02-22 | 2008-05-08 | Luna Innovations Inc. | Hardware-facilitated secure software execution environment |
KR100755370B1 (ko) | 2006-04-17 | 2007-09-04 | 삼성전자주식회사 | 반도체 메모리 장치 |
TW200828333A (en) | 2006-04-28 | 2008-07-01 | Samsung Electronics Co Ltd | Sense amplifier circuit and sense amplifier-based flip-flop having the same |
US7752417B2 (en) | 2006-06-05 | 2010-07-06 | Oracle America, Inc. | Dynamic selection of memory virtualization techniques |
US7372715B2 (en) | 2006-06-14 | 2008-05-13 | Micron Technology, Inc. | Architecture and method for NAND flash memory |
US8069377B2 (en) | 2006-06-26 | 2011-11-29 | Micron Technology, Inc. | Integrated circuit having memory array including ECC and column redundancy and method of operating the same |
US7724559B2 (en) | 2006-07-14 | 2010-05-25 | International Business Machines Corporation | Self-referenced match-line sense amplifier for content addressable memories |
US7443729B2 (en) | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7885119B2 (en) | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
US7692466B2 (en) | 2006-08-18 | 2010-04-06 | Ati Technologies Ulc | Sense amplifier based flip-flop |
US7805587B1 (en) | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7471536B2 (en) | 2006-12-08 | 2008-12-30 | Texas Instruments Incorporated | Match mismatch emulation scheme for an addressed location in a CAM |
US20080162805A1 (en) * | 2007-01-03 | 2008-07-03 | Springfield Randall S | Method and Apparatus for Using Non-Addressable Memories of a Computer System |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7743303B2 (en) | 2007-01-22 | 2010-06-22 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
KR100969758B1 (ko) | 2007-01-22 | 2010-07-13 | 삼성전자주식회사 | 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치 |
US7937535B2 (en) | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US7804718B2 (en) | 2007-03-07 | 2010-09-28 | Mosaid Technologies Incorporated | Partial block erase architecture for flash memory |
US7492640B2 (en) | 2007-06-07 | 2009-02-17 | Sandisk Corporation | Sensing with bit-line lockout control in non-volatile memory |
JP2009009665A (ja) | 2007-06-29 | 2009-01-15 | Elpida Memory Inc | 半導体記憶装置 |
US7996749B2 (en) | 2007-07-03 | 2011-08-09 | Altera Corporation | Signal loss detector for high-speed serial interface of a programmable logic device |
US7489543B1 (en) | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
US7694195B2 (en) | 2007-08-14 | 2010-04-06 | Dell Products L.P. | System and method for using a memory mapping function to map memory defects |
US7869273B2 (en) | 2007-09-04 | 2011-01-11 | Sandisk Corporation | Reducing the impact of interference during programming |
US7787319B2 (en) | 2007-09-06 | 2010-08-31 | Innovative Silicon Isi Sa | Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same |
US8042082B2 (en) | 2007-09-12 | 2011-10-18 | Neal Solomon | Three dimensional memory in a system on a chip |
US7965564B2 (en) | 2007-09-18 | 2011-06-21 | Zikbit Ltd. | Processor arrays made of standard memory cells |
US7663928B2 (en) | 2007-10-09 | 2010-02-16 | Ememory Technology Inc. | Sense amplifier circuit having current mirror architecture |
US8156299B2 (en) | 2007-10-19 | 2012-04-10 | Virident Systems Inc. | Managing memory systems containing components with asymmetric characteristics |
US8375219B2 (en) * | 2007-10-24 | 2013-02-12 | Microsoft Corporation | Program and operation verification |
US7924628B2 (en) | 2007-11-14 | 2011-04-12 | Spansion Israel Ltd | Operation of a non-volatile memory array |
US7979667B2 (en) | 2007-12-10 | 2011-07-12 | Spansion Llc | Memory array search engine |
US7755960B2 (en) | 2007-12-17 | 2010-07-13 | Stmicroelectronics Sa | Memory including a performance test circuit |
US8495438B2 (en) | 2007-12-28 | 2013-07-23 | Texas Instruments Incorporated | Technique for memory imprint reliability improvement |
US7808854B2 (en) | 2008-02-19 | 2010-10-05 | Kabushiki Kaisha Toshiba | Systems and methods for data transfers between memory cells |
JP5194302B2 (ja) | 2008-02-20 | 2013-05-08 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
US20090254694A1 (en) * | 2008-04-02 | 2009-10-08 | Zikbit Ltd. | Memory device with integrated parallel processing |
US8332580B2 (en) | 2008-04-02 | 2012-12-11 | Zikbit Ltd. | System, method and apparatus for memory with embedded associative section for computations |
US7957206B2 (en) | 2008-04-04 | 2011-06-07 | Micron Technology, Inc. | Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same |
JP5183327B2 (ja) * | 2008-07-01 | 2013-04-17 | キヤノン株式会社 | シート処理装置及びその制御方法、並びにプログラム |
US8339824B2 (en) | 2008-07-02 | 2012-12-25 | Cooke Laurence H | Nearest neighbor serial content addressable memory |
US8417921B2 (en) | 2008-08-15 | 2013-04-09 | Apple Inc. | Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector |
US8555037B2 (en) | 2008-08-15 | 2013-10-08 | Apple Inc. | Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture |
US8259509B2 (en) | 2008-08-18 | 2012-09-04 | Elpida Memory, Inc. | Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality |
ITRM20080543A1 (it) | 2008-10-09 | 2010-04-10 | Micron Technology Inc | Architettura e metodo per la programmazione di memorie. |
KR101596283B1 (ko) | 2008-12-19 | 2016-02-23 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
KR101622922B1 (ko) | 2009-03-06 | 2016-05-20 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
US8484276B2 (en) | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
KR20100134235A (ko) | 2009-06-15 | 2010-12-23 | 삼성전자주식회사 | 반도체 메모리 장치 |
US20100325446A1 (en) * | 2009-06-19 | 2010-12-23 | Joseph Martin Mordetsky | Securing Executable Code Integrity Using Auto-Derivative Key |
US7898864B2 (en) | 2009-06-24 | 2011-03-01 | Sandisk Corporation | Read operation for memory with compensation for coupling based on write-erase cycles |
US8412985B1 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Hardwired remapped memory |
US8412987B2 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
US9076527B2 (en) | 2009-07-16 | 2015-07-07 | Mikamonu Group Ltd. | Charge sharing in a TCAM array |
JP4951041B2 (ja) | 2009-08-06 | 2012-06-13 | 株式会社東芝 | 半導体記憶装置 |
JP5568133B2 (ja) | 2009-08-18 | 2014-08-06 | ダウ コーニング コーポレーション | 多層経皮パッチ |
US8059438B2 (en) | 2009-08-28 | 2011-11-15 | International Business Machines Corporation | Content addressable memory array programmed to perform logic operations |
US8077532B2 (en) | 2009-09-02 | 2011-12-13 | Micron Technology, Inc. | Small unit internal verify read in a memory device |
US8482975B2 (en) | 2009-09-14 | 2013-07-09 | Micron Technology, Inc. | Memory kink checking |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
WO2011048522A2 (en) | 2009-10-21 | 2011-04-28 | Zikbit Ltd. | Neighborhood operations for parallel processing |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
US8650232B2 (en) | 2009-10-26 | 2014-02-11 | Via Technologies, Inc. | System and method for determination of a horizontal minimum of digital values |
KR101634340B1 (ko) | 2009-11-03 | 2016-06-28 | 삼성전자주식회사 | 반도체 메모리 장치의 프로그램 방법 |
US8583896B2 (en) | 2009-11-13 | 2013-11-12 | Nec Laboratories America, Inc. | Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain |
KR20110054773A (ko) | 2009-11-18 | 2011-05-25 | 삼성전자주식회사 | 비트라인 디스털번스를 개선하는 반도체 메모리 장치 |
US8089815B2 (en) | 2009-11-24 | 2012-01-03 | Sandisk Technologies Inc. | Programming memory with bit line floating to reduce channel-to-floating gate coupling |
BRPI0924512A2 (pt) * | 2009-12-22 | 2016-03-01 | Intel Corp | método e aparelho de fornecimento de execução de aplicativos seguros |
US8605015B2 (en) | 2009-12-23 | 2013-12-10 | Syndiant, Inc. | Spatial light modulator with masking-comparators |
JP2011146102A (ja) | 2010-01-15 | 2011-07-28 | Elpida Memory Inc | 半導体装置及びデータ処理システム |
CN102141905B (zh) | 2010-01-29 | 2015-02-25 | 上海芯豪微电子有限公司 | 一种处理器体系结构 |
US8164942B2 (en) | 2010-02-01 | 2012-04-24 | International Business Machines Corporation | High performance eDRAM sense amplifier |
US8533245B1 (en) | 2010-03-03 | 2013-09-10 | Altera Corporation | Multipliers with a reduced number of memory blocks |
EP2564306A4 (en) | 2010-04-27 | 2017-04-26 | Cornell University | System and methods for mapping and searching objects in multidimensional space |
KR101119371B1 (ko) | 2010-04-29 | 2012-03-06 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 이의 동작 방법 |
US8559232B2 (en) | 2010-05-03 | 2013-10-15 | Aplus Flash Technology, Inc. | DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation |
US8351278B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Jam latch for latching memory array output data |
US8789189B2 (en) | 2010-06-24 | 2014-07-22 | NeurallQ, Inc. | System and method for sampling forensic data of unauthorized activities using executability states |
KR101143471B1 (ko) | 2010-07-02 | 2012-05-11 | 에스케이하이닉스 주식회사 | 센스앰프 및 이를 포함하는 반도체 장치 |
US20120017039A1 (en) | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
US8462532B1 (en) | 2010-08-31 | 2013-06-11 | Netlogic Microsystems, Inc. | Fast quaternary content addressable memory cell |
US8347154B2 (en) | 2010-09-21 | 2013-01-01 | International Business Machines Corporation | Use of hashing function to distinguish random and repeat errors in a memory system |
US8904115B2 (en) | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8332367B2 (en) | 2010-10-20 | 2012-12-11 | International Business Machines Corporation | Parallel data redundancy removal |
US20120110348A1 (en) | 2010-11-01 | 2012-05-03 | International Business Machines Corporation | Secure Page Tables in Multiprocessor Environments |
KR101148352B1 (ko) | 2010-11-02 | 2012-05-21 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작 방법 |
JP5528987B2 (ja) | 2010-11-11 | 2014-06-25 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置 |
US8553482B2 (en) | 2010-11-29 | 2013-10-08 | Apple Inc. | Sense amplifier and sense amplifier latch having common control |
WO2012104674A1 (en) | 2011-01-31 | 2012-08-09 | Freescale Semiconductor, Inc. | Integrated circuit device and method for determining an index of an extreme value within an array of values |
KR20120088973A (ko) | 2011-02-01 | 2012-08-09 | 삼성전자주식회사 | 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치 |
JP2012174016A (ja) | 2011-02-22 | 2012-09-10 | Renesas Electronics Corp | データ処理装置およびそのデータ処理方法 |
JP5259765B2 (ja) | 2011-03-29 | 2013-08-07 | 株式会社東芝 | 不揮発性半導体メモリ |
US8725730B2 (en) | 2011-05-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Responding to a query in a data processing system |
US9250969B2 (en) * | 2011-08-30 | 2016-02-02 | At&T Intellectual Property I, L.P. | Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory |
US8706958B2 (en) | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
US20140247673A1 (en) | 2011-10-28 | 2014-09-04 | Naveen Muralimanohar | Row shifting shiftable memory |
US8891297B2 (en) | 2011-11-01 | 2014-11-18 | Micron Technology, Inc. | Memory cell sensing |
KR101321481B1 (ko) | 2011-11-04 | 2013-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 테스트 회로 |
US9830158B2 (en) | 2011-11-04 | 2017-11-28 | Nvidia Corporation | Speculative execution and rollback |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
WO2013078085A1 (en) | 2011-11-22 | 2013-05-30 | Mips Technologies, Inc. | Processor with kernel mode access to user space virtual addresses |
CN105955704B (zh) | 2011-11-30 | 2018-12-04 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
US20140108480A1 (en) | 2011-12-22 | 2014-04-17 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for vector compute and accumulate |
KR20130072869A (ko) | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 프리차지 회로 및 비휘발성 메모리 장치 |
US8954755B2 (en) * | 2012-01-23 | 2015-02-10 | International Business Machines Corporation | Memory address translation-based data encryption with integrated encryption engine |
US20130286705A1 (en) | 2012-04-26 | 2013-10-31 | David B. Grover | Low power content addressable memory hitline precharge and sensing circuit |
US8938603B2 (en) | 2012-05-31 | 2015-01-20 | Samsung Electronics Co., Ltd. | Cache system optimized for cache miss detection |
US20130332707A1 (en) | 2012-06-07 | 2013-12-12 | Intel Corporation | Speed up big-number multiplication using single instruction multiple data (simd) architectures |
US9367691B2 (en) | 2012-07-31 | 2016-06-14 | Hewlett-Packard Development Company, L.P. | Modify executable bits of system management memory page table |
US9262342B2 (en) | 2012-12-20 | 2016-02-16 | Rambus Inc. | Process authenticated memory page encryption |
KR102062301B1 (ko) | 2013-01-03 | 2020-01-03 | 삼성전자주식회사 | 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법 |
US20140215185A1 (en) | 2013-01-29 | 2014-07-31 | Atmel Norway | Fetching instructions of a loop routine |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9171153B2 (en) | 2013-05-17 | 2015-10-27 | Hewlett-Packard Development Company, L.P. | Bloom filter with memory element |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9153305B2 (en) | 2013-08-30 | 2015-10-06 | Micron Technology, Inc. | Independently addressable memory array address spaces |
US9292684B2 (en) * | 2013-09-06 | 2016-03-22 | Michael Guidry | Systems and methods for security in computer systems |
US9019785B2 (en) | 2013-09-19 | 2015-04-28 | Micron Technology, Inc. | Data shifting via a number of isolation devices |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
JP6289092B2 (ja) * | 2013-12-26 | 2018-03-07 | キヤノン株式会社 | 情報処理装置、その制御方法およびコンピュータプログラム |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
CN106415522B (zh) | 2014-05-08 | 2020-07-21 | 美光科技公司 | 存储器内轻量一致性 |
EP3140743B1 (en) | 2014-05-08 | 2021-11-24 | Micron Technology, INC. | Hybrid memory cube system interconnect directory-based cache coherence methodology |
US10496825B2 (en) * | 2014-11-26 | 2019-12-03 | Hewlett-Packard Development Company, L.P. | In-memory attack prevention |
CN104778383A (zh) * | 2015-04-17 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种基于国产处理器刀片服务器管理子卡的硬件加密方法 |
US9710401B2 (en) * | 2015-06-26 | 2017-07-18 | Intel Corporation | Processors, methods, systems, and instructions to support live migration of protected containers |
-
2015
- 2015-08-17 US US14/828,151 patent/US9996479B2/en active Active
-
2016
- 2016-07-25 EP EP22186668.4A patent/EP4102373A1/en not_active Withdrawn
- 2016-07-25 KR KR1020187006915A patent/KR102059093B1/ko active IP Right Grant
- 2016-07-25 WO PCT/US2016/043841 patent/WO2017030745A1/en active Application Filing
- 2016-07-25 CN CN201680048060.8A patent/CN107924367B/zh active Active
- 2016-07-25 EP EP20173040.5A patent/EP3726391B1/en active Active
- 2016-07-25 EP EP16837468.4A patent/EP3317770B1/en active Active
- 2016-08-10 TW TW105125524A patent/TWI631482B/zh active
-
2018
- 2018-06-11 US US16/004,663 patent/US10691620B2/en active Active
-
2020
- 2020-06-22 US US16/907,929 patent/US11625336B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI816456B (zh) * | 2022-06-30 | 2023-09-21 | 新唐科技股份有限公司 | 密碼裝置及其密碼方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107924367B (zh) | 2021-07-09 |
EP3317770A4 (en) | 2019-04-24 |
EP3317770B1 (en) | 2020-06-17 |
EP3726391B1 (en) | 2022-09-14 |
TWI631482B (zh) | 2018-08-01 |
US20200320020A1 (en) | 2020-10-08 |
EP3317770A1 (en) | 2018-05-09 |
US20180293179A1 (en) | 2018-10-11 |
KR102059093B1 (ko) | 2019-12-24 |
US9996479B2 (en) | 2018-06-12 |
US10691620B2 (en) | 2020-06-23 |
WO2017030745A1 (en) | 2017-02-23 |
US20170052906A1 (en) | 2017-02-23 |
CN107924367A (zh) | 2018-04-17 |
US11625336B2 (en) | 2023-04-11 |
EP4102373A1 (en) | 2022-12-14 |
KR20180030246A (ko) | 2018-03-21 |
EP3726391A1 (en) | 2020-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI631482B (zh) | 計算記憶體中可執行指令之加密之方法及設備 | |
EP3757856B1 (en) | Cryptographic isolation of memory compartments in a computing environment | |
US11782849B2 (en) | Processors, methods, systems, and instructions to support live migration of protected containers | |
EP3757849B1 (en) | Cryptographic computing engine for memory load and store units of a microarchitecture pipeline | |
US11023622B2 (en) | Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory | |
JP6046360B2 (ja) | 機密データの暗号化および記憶 | |
US20200257827A1 (en) | Memory write for ownership access in a core | |
JP2018524722A (ja) | 制御された暗号化鍵管理によってソフトウェアモジュールを隔離する方法のためのメモリキャッシュおよびキャッシュされたソフトウェアモジュール識別情報のセキュア処理 | |
WO2023121757A1 (en) | Hardening cpu predictors with cryptographic computing context information | |
US20220129566A1 (en) | Secure application execution in a data processing system | |
TWI722022B (zh) | 用於處理資料的設備、方法及電腦程式 | |
US20220100907A1 (en) | Cryptographic computing with context information for transient side channel security | |
US20210117341A1 (en) | Cache line slot level encryption based on context information | |
US20220121578A1 (en) | Transient side-channel aware architecture for cryptographic computing |