TWI822783B - 包括具有改善記憶體使用效率的安全處理器的系統晶片與記憶體系統以及操作系統晶片的方法 - Google Patents
包括具有改善記憶體使用效率的安全處理器的系統晶片與記憶體系統以及操作系統晶片的方法 Download PDFInfo
- Publication number
- TWI822783B TWI822783B TW108117378A TW108117378A TWI822783B TW I822783 B TWI822783 B TW I822783B TW 108117378 A TW108117378 A TW 108117378A TW 108117378 A TW108117378 A TW 108117378A TW I822783 B TWI822783 B TW I822783B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- address
- memory
- metadata
- error correction
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims description 52
- 230000004044 response Effects 0.000 claims description 10
- 239000000463 material Substances 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 29
- 238000004422 calculation algorithm Methods 0.000 description 28
- 102100034033 Alpha-adducin Human genes 0.000 description 20
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 20
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 20
- 102100024348 Beta-adducin Human genes 0.000 description 14
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 14
- 230000010365 information processing Effects 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000013478 data encryption standard Methods 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Images
Classifications
-
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Library & Information Science (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種系統晶片包括安全處理器。安全處理器包括:加密/
錯誤糾正碼編碼處理器,被配置以使用元資料對資料執行加密操作以及藉由對經加密的資料及元資料執行錯誤糾正碼編碼處理來產生錯誤糾正碼資料;解密/錯誤糾正碼解碼處理器,被配置以藉由使用錯誤糾正碼資料執行錯誤糾正碼解碼處理來提取經加密的資料及元資料以及藉由使用元資料對經加密的資料執行解密操作來恢復資料;以及位址控制器,被配置以接收與資料的儲存有關的第一位址,基於第一位址而產生第二位址以及基於第二位址而執行位址產生操作來辨識記憶體中用於儲存元資料及錯誤糾正碼資料的同一區。
Description
本申請案主張於2018年10月2日在韓國智慧財產局提出申請的韓國專利申請案第10-2018-0117870號的權利,所述韓國專利申請案的揭露內容全文併入本案供參考。
本發明概念是有關於一種系統晶片(SOC),且更具體而言,是有關於一種包括具有改善使用效率的安全處理器的系統晶片與記憶體系統以及一種操作系統晶片的方法。
隨著儲存於電子系統中的資訊量增加,用於處理資料的系統晶片(system on chip,SOC)及記憶體的數目可增加。舉例而言,可對需要耐受高的溫度且需要高的安全性的汽車SOC及記憶體應用錯誤糾正碼(error correction code,ECC)功能及資訊加密/解密功能,且因此,可保護汽車SOC及記憶體不會受到對在其
中處理及/或儲存的資訊的安全攻擊。
為應用上述ECC功能及加密/解密功能,可能需要產生除真實資料(原始資料)之外的附加資料(例如,元資料及ECC資料)並將附加資料儲存於記憶體中。然而,由於ECC功能與加密/解密功能是分開執行的,因此元資料與ECC資料是分開管理的,且因此,記憶體使用效率可能劣化,且由於與處理附加資料相關聯的寫入/讀取時間增加,系統的效能可能劣化。
本發明概念可提供一種包括安全處理器的系統晶片(SOC)及記憶體系統以及一種操作SOC的方法,所述安全處理器能夠減少在資料加密處理上花費的時間及電力且高效地使用記憶體。
根據本發明概念的態樣,提供一種包括安全處理器的SOC,所述安全處理器被配置以對資料執行加密/解密操作以及對所述資料執行錯誤糾正碼(ECC)操作。所述安全處理器包括:加密/ECC編碼處理器,被配置以使用元資料對資料執行加密操作以及藉由對經加密的資料及所述元資料執行ECC編碼處理來產生ECC資料;解密/ECC解碼處理器,被配置以藉由使用所述ECC資料執行ECC解碼處理來提取所述經加密的資料及所述元資料以及藉由使用所述元資料對所述經加密的資料執行解密操作來恢復所述資料;以及位址控制器,被配置以接收與所述資料的儲存有關的第一位址,基於所述第一位址而產生第二位址以及基於所述
第二位址而執行位址產生操作來辨識記憶體中用於儲存所述元資料及所述ECC資料的同一區。
在根據本發明概念的包括安全處理器的SOC及記憶體系統中以及在操作SOC的方法中,在儲存於記憶體中的資訊具有安全功能的系統中,可減少在處理資訊(例如資料加密/解密)上花費的時間及電力。
另外,在根據本發明概念的包括安全處理器的SOC及記憶體系統中以及在操作SOC的方法中,由於可整體地管理各種資訊項且可將各種資訊項儲存於記憶體中或自記憶體讀取各種資訊項,因而可改善記憶體使用效率並增加儲存於記憶體中的資訊量。
10:資訊處理系統
11:裝置
12、1500:記憶體
100:資料處理裝置/系統晶片(SOC)
110、300、500、600、711、842、940、1320:安全處理器
111:加密/ECC編碼處理器
112:解密/ECC解碼處理器
113:位址控制器
113_1:位址計算器
113_2:位址儲存電路
120、840、950:記憶體控制器
310、510、610:主控制器
320、530、630:加密及ECC編碼模組
321、531:加密引擎
322、332、532:訊息認證碼(MAC)產生器
323、533:ECC編碼器
330、640:解密及ECC解碼模組
331:解密引擎
333:MAC比較器
334:ECC解碼器
340、520、620:位址產生器
350、400、540:位址-資料排程器
700:資料處理系統
710、800、900:系統晶片(SOC)
721、722:第一DRAM晶片
731、732:第二DRAM晶片
810、910、1400:CPU
820、930:顯示控制器
830:唯讀記憶體(ROM)
841:介面電路
850:隨機存取記憶體(RAM)
860:圖形處理單元
870:數據機
920:圖形處理單元(GPU)
1000:自主駕駛系統
1100:感測器資訊收集器
1200:導航資訊收集器
1300:自主駕駛模組
1310:神經網路裝置
ADD1、ADD1_1、ADD1_2:第一位址
ADD2、ADD2_1、ADD2_2:第二位址
Algo_DE:解密演算法資訊
Algo_ECC_D:ECC解碼演算法資訊
Algo_ECC_E:ECC編碼演算法資訊
Algo_EN:加密演算法資訊
C_ADD2_1、C_ADD2_2:行位址
DATA:資料
DATA_EN:經加密的資料
DATA_EN_1:第一經加密的資料/第一經加密的資料項
DATA_EN_2:第二經加密的資料/第二經加密的資料項
DATA1:第一資料
DATA2:第二資料
ECC data:ECC資料
ECC data_1:第一ECC資料/ECC資料
ECC data_2:第二ECC資料
Info_EN、Info_size:資訊
Meta data:元資料
Meta data_1:元資料/第一元資料
Meta data_2:第二元資料
R_ADD2_1、R_ADD2_2:列位址
S11、S12、S13、S14、S15、S16、S21、S22、S23、S24、S25、S26、S27、S28、S29、S30、S31、S32、S33、S34、S35、S41、S42、S43、S44、S45、S46、S47、S48、S49、S50、S51、S52、S53:操作
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的實施例,在附圖中:圖1是示出根據本發明概念一些實施例的系統晶片(SOC)以及包括所述系統晶片的資訊處理系統的方塊圖。
圖2是示出將資訊儲存於圖1所示資訊處理系統的記憶體中的實例的方塊圖。
圖3及圖4分別是示出其中在分開管理元資料與錯誤糾正碼(ECC)資料的情形中以及一同管理元資料與ECC資料的情形中將元資料與ECC資料儲存於記憶體中的實例的方塊圖。
圖5是示出根據本發明概念一些實施例的SOC的操作
方法的流程圖。
圖6及圖7分別是示出根據本發明概念一些實施例的加密操作及ECC編碼操作的實例的概念圖及流程圖。
圖8是示出根據本發明概念一些實施例的解密操作及ECC解碼操作的實例的流程圖。
圖9及圖10是示出根據本發明概念一些實施例的安全處理器的實例的方塊圖。
圖11是示出根據本發明概念一些實施例的安全處理器的操作的方塊圖。
圖12A及圖12B是示出根據本發明概念一些實施例的其中將元資料及ECC資料儲存於記憶體中的實例的方塊圖。
圖13是示出根據本發明概念一些實施例的安全處理器的方塊圖。
圖14是示出根據本發明概念另一些實施例的安全處理器的方塊圖。
圖15是示出其中對側頻帶ECC方法應用根據本發明概念一些實施例的安全處理器的實例的方塊圖。
圖16是示出根據本發明概念一些實施例的SOC的實例的方塊圖。
圖17是示出根據本發明概念另一些實施例的SOC的實例的方塊圖。
圖18是示出其中在車輛中使用的自主駕駛系統中實施
根據本發明概念一些實施例的安全處理器的實例的方塊圖。
現將參照附圖更充分地闡述本發明概念,在附圖中示出本發明概念的示例性實施例。在本申請案通篇中相同的參考編號可指代相同的元件。本文中所用用語「及/或」包括相關列出項中的一或多個項的任意及所有組合。應注意,相對於一個實施例闡述的態樣可併入不同的實施例中,儘管未相對於所述不同的實施例具體闡述。亦即,可以任何方式及/或組合來對所有實施例及/或任何實施例的特徵進行組合。
由於例如聯網汽車、車人及服務連結(vehicle to everything,V2X)及高階駕駛員輔助系統(advanced driver assistance system,ADAS)等技術,安裝於車輛上的系統晶片(SOC)及記憶體的數目一般而言正在增加。以動態隨機存取記憶體(dynamic random access memory,DRAM)為例,汽車DRAM必須耐受嚴酷的溫度條件(此不同於其他產品中的DRAM使用),且可在汽車DRAM中提供安全性。因此,可對汽車DRAM應用錯誤糾正碼(ECC)功能。另外,為保護由ADAS中使用的SOC(舉例而言,ADAS SOC)處理的資訊(例如自主駕駛資訊及支付資訊),可使用加密及解密功能來保護資訊免受安全攻擊。
當在SOC及記憶體中使用ECC功能及加密功能時,可能會與真實資料(舉例而言,原始資料)一同請求附加資料,且可將附加資料與藉由對原始資料進行加密獲得的加密資料一同儲
存於記憶體中。舉例而言,當應用ECC功能時,根據ECC演算法及錯誤糾正範圍而定,可每32位元資料產生自1位元至10位元的附加同位校驗(parity)或校驗子(syndrome)。另外,當使用加密功能時,使用版本資訊來進行加密操作以執行更安全的加密,或者可使用訊息認證碼(message authentication code,MAC)來進行完整性檢查,且可將用於加密操作的元資料項與經加密的資料一同儲存於記憶體中。
圖1是示出根據本發明概念一些實施例的SOC以及包括所述SOC的資訊處理系統10的方塊圖。舉例而言,資訊處理系統10可包括由半導體晶片實施為資料處理裝置100的SOC以及向資料處理裝置100傳送資料DATA(例如影像)的裝置11及記憶體12。裝置11可提供各種資料DATA。舉例而言,當資訊處理系統10對應於自主駕駛系統(或自主駕駛模組)時,裝置11可為藉由使用相機鏡頭執行拍攝操作的相機裝置。另外,當資訊處理系統10對應於自主駕駛系統時,資料處理裝置100可被稱為ADAS SOC。
根據本發明概念的實施例,可提供一種整體地執行及管理錯誤糾正碼(ECC)功能與加密及解密功能的方法。舉例而言,可提供一種如下方法:所述方法藉由利用整體地執行ECC功能與加密及解密功能的裝置整體地管理ECC資料與元資料來高效地利用記憶體12的儲存空間及頻寬,所述ECC資料及元資料是由各種功能使用的附加資料項。ECC資料及元資料的用途及對象通常
彼此不同。然而,自記憶體12讀取的ECC資料及元資料的時序及存取模式(access pattern)可彼此相似。因此,相較於其中分開執行ECC功能與加密及解密功能的實例而言,藉由一同管理ECC資料與元資料,可改善效能且可降低功耗。
記憶體12可由各種揮發性記憶體及/或非揮發性記憶體中的一或多者來實施。舉例而言,記憶體12可由例如以下各種動態隨機存取記憶體(DRAM)中的一或多者來實施:雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory,DDR SDRAM)、低功率雙倍資料速率(low power double data rate,LPDDR)SDRAM、圖形雙倍資料速率(graphics double data rate,GDDR)SDRAM及藍巴斯動態隨機存取記憶體(rambus dynamic random access memory,RDRAM)。
資料處理裝置100可包括安全處理器110。安全處理器110可包括加密/ECC編碼處理器111、解密/ECC解碼處理器112及位址控制器113。加密/ECC編碼處理器111可對由資料處理裝置100產生的資料或來自裝置11的資料DATA執行加密操作。可在資料處理裝置100的控制下將經加密的資料DATA_EN儲存於記憶體12中。
加密/ECC編碼處理器111可根據各種方法執行加密操作。舉例而言,可執行基於對稱密鑰演算法(例如高階加密標準(advanced encryption standard,AES)演算法或資料加密標準(data encryption standard,DES)演算法)的加密操作,或者可執行基
於非對稱密鑰演算法(例如李維斯特、薩莫爾及阿德曼(Rivest Shamir Adleman,RSA)演算法及橢圓曲線密碼學(elliptic curve cryptography,ECC)演算法)的各種加密操作。本發明概念的實施例並非僅限於特定種類的加密操作。另外,可使用元資料來進行加密操作。亦可將元資料儲存於記憶體12中。解密/ECC解碼處理器112對自記憶體12讀取的經加密的資料DATA_EN執行解密操作,且可藉由解密操作產生原始資料。舉例而言,可藉由使用經加密的資料DATA_EN的操作來執行解密處理,且可基於應用於加密操作的演算法及原始資料來產生元資料。
在本發明概念的其他實施例中,在對資料DATA執行安全功能時,亦可執行ECC操作(包括ECC編碼及解碼)。舉例而言,加密/ECC編碼處理器111可在於記憶體12中進行的寫入操作中執行ECC編碼處理。另外,解密/ECC解碼處理器112可在自記憶體12進行的讀取操作中執行ECC解碼處理。根據一些實施例,在將資料DATA寫入於記憶體12中的過程中,加密/ECC編碼處理器111執行加密操作,且可藉由對經加密的資料DATA_EN及元資料進行ECC編碼處理來產生ECC資料。ECC資料可包括與經加密的資料DATA_EN有關的第一ECC資料及與元資料有關的第二ECC資料。
資料處理裝置100可執行控制操作以將如上所述產生的經加密的資料DATA_EN、元資料及ECC資料儲存於記憶體12中。舉例而言,位址控制器113可產生指示記憶體12中儲存元資料及
ECC資料的位置的位址。另外,位址控制器113可產生指示記憶體12中儲存經加密的資料DATA_EN的位置的位址。
舉例而言,安全處理器110可接收表示記憶體12中儲存資料DATA的位置的第一位址以及用於寫入資料DATA的請求,且位址控制器113可基於第一位址而產生第二位址,所述第二位址表示儲存元資料及ECC資料的位置。根據一些實施例,安全處理器110可執行控制操作以使經加密的資料DATA_EN根據外部請求而儲存於記憶體12中由第一位址指示的位置中。在其他實施例中,位址控制器113可更基於第一位址而產生第三位址,所述第三位址表示儲存經加密的資料DATA_EN的位置,且經加密的資料DATA_EN可儲存於記憶體12中由第三位址表示的位置中。
根據上述實施例,由於整體地管理元資料與ECC資料,因此可將元資料及ECC資料儲存於由第二位址指示的位置中。在整體管理中,不為元資料與ECC資料分開產生位址,而是產生與包括元資料及ECC資料的資料單元對應的位址。可根據記憶體12的由第二位址指示的儲存空間的大小而產生一或多個第二位址。可藉由第二位址將元資料及ECC資料中的至少一些儲存於記憶體12中。
根據示例性實施例,可將元資料及ECC資料中的至少一些儲存於位於記憶體12的同一列中或同一行中的儲存空間中。因此,在儲存元資料及ECC資料上花費的時間(例如,寫入循環)可減少,且在讀取用於對經加密的資料DATA_EN進行解碼的元資
料及ECC資料上花費的時間(例如,讀取循環)可減少。
另外,當接收到對資料DATA的寫入或讀取請求時,可由位址控制器113獨立於加密/ECC編碼處理器111及解密/ECC解碼處理器112來執行產生用於儲存元資料及ECC資料的位址的操作。舉例而言,在寫入資料DATA的操作期間,用於產生經加密的資料DATA_EN的元資料的大小及由ECC操作產生的ECC資料的大小可具有預先設定的值。可基於ECC資料的大小而產生用於整體地儲存元資料與ECC資料的第二位址。根據一些實施例,記憶體12的儲存空間可包括第一區及第二區(未示出)。響應於第一位址將經加密的資料DATA_EN儲存於第一區中,且可響應於第二位址將ECC資料儲存於第二區中。
根據本發明概念的上述實施例,由於可整體地管理元資料及ECC資料,因此可更高效地使用記憶體12且可改善存取效率。
如圖1所示,加密/ECC編碼處理器111及解密/ECC解碼處理器112被示為單獨的功能區塊。然而,本發明概念的實施例並非僅限於此。舉例而言,加密處理器、解密處理器、ECC編碼處理器及ECC解碼處理器可被示為單獨的功能區塊。在其他實施例中,加密處理器與解密處理器可被示為同一的功能區塊,且ECC編碼處理器與ECC解碼處理器可被示為同一的功能區塊。換言之,由安全處理器提供的功能可被劃分成一或多個功能區塊來實施,其中所述各種功能能力以任意組合被分配給所述一或多個
區塊中的每一者。
在本發明概念的另一些實施例中,安全處理器110可包括硬體組件,且因此,安全處理器110的一或多個功能態樣可作為硬體藉由訊號處理來實施。在其他實施例中,安全處理器110的一或多個功能態樣可作為軟體由執行電腦程式的處理器實施。在另一些實施例中,安全處理器110的一或多個功能態樣可由硬體與軟體的組合來實施。
圖2是示出將資訊儲存於圖1所示資訊處理系統的記憶體中的實例的方塊圖。
參照圖1及2,位址控制器113可提供用於儲存經加密的資料DATA_EN的第一位址ADD1及用於儲存元資料及ECC資料的第二位址ADD2,且可由DRAM實施的記憶體12可包括第一區及第二區。用於儲存經加密的資料DATA_EN的第一位址ADD1可由位址控制器113產生。在其他實施例中,第一位址ADD1是自外部(例如,資料處理裝置100外部、安全處理器110外部及/或位址控制器113外部,但仍在安全處理器110內)提供至位址控制器113,且位址控制器113可將所接收到的第一位址ADD1提供至記憶體12。在圖2中,示出其中藉由記憶體控制器120將來自位址控制器113的第一位址ADD1及第二位址ADD2提供至記憶體12的實例。在本發明概念的一些實施例中,可在資料處理裝置100中提供記憶體控制器120。
位址控制器113可例如自外部(例如,自資料處理裝置
100外部、安全處理器110外部及/或位址控制器113外部,但仍在安全處理器110內)接收第一位址ADD1,且可使用第一位址ADD1來產生用於儲存元資料及ECC資料的第二位址ADD2。當以資料寫入操作為例時,位址控制器113可接收在SOC 100中的預定功能區塊(例如,CPU)的控制下產生的第一位址ADD1。
第一位址ADD1可表示記憶體12中儲存經加密的資料DATA_EN的位置。由加密操作及ECC操作產生的元資料及ECC資料的大小可與相對於經加密的資料DATA_EN的大小的預定比率對應。位址控制器113可計算第二區的位置及儲存元資料及ECC資料的儲存空間的大小,根據計算結果產生第二位址ADD2,且可將所產生的第二位址ADD2提供至記憶體控制器120。舉例而言,第二位址ADD2可包括關於儲存元資料及ECC資料的開始位置以及元資料及ECC資料的大小的資訊。
作為實施方式實例,位址控制器113可包括位址計算器113_1及位址儲存電路113_2。位址計算器113_1可參照上述第一位址ADD1及附加資料的大小(或附加資料對資料的大小的比率)來計算第二位址ADD2。另外,位址儲存電路113_2可儲存與第一位址ADD1對應的第二位址ADD2。當接收到對第一位址ADD1的資料讀取請求時,可將先前計算及所儲存的第二位址ADD2提供至記憶體12。
記憶體控制器120可與記憶體12進行通訊,向記憶體12提供命令及位址,根據預定頻寬將經加密的資料DATA_EN、元
資料及ECC資料傳送至記憶體12,且可自記憶體12讀取經加密的資料DATA_EN,元資料及ECC資料。根據預定的所定義的大小單位,可對資料DATA執行加密操作。當以第一資料為例時,將藉由對第一資料進行加密獲得的第一經加密的資料DATA_EN_1儲存於記憶體12的第一區中,且可將與第一經加密的資料DATA_EN_1對應的元資料Meta data_1及ECC資料ECC data_1儲存於記憶體12的第二區中。當元資料與ECC資料之和小於記憶體12與記憶體控制器120之間的資料頻寬時,可藉由執行單個寫入操作將元資料與ECC資料一同寫入於記憶體12的第二區中。
圖3及圖4是示出其中在分開管理元資料與ECC資料的情形中以及在一同管理元資料與ECC資料的情形中將元資料與ECC資料儲存於記憶體中的實例的方塊圖。
參照圖3,當分開執行加密/解密操作與ECC操作時,由於加密器/解密器及ECC處理器彼此分離,因此加密器/解密器與ECC處理器可獨立地執行功能。由於用於儲存來自加密器/解密器的元資料的位址與用於儲存來自ECC處理器的ECC資料的位址彼此分離,因此元資料與ECC資料可儲存於記憶體中的不同位置中。
舉例而言,資料的加密操作可由快取行執行。當使用AES作為加密演算法時,可將一個快取行的資料加密及解密為四組128位元經加密的資料,AES是區塊碼標準,在AES中快取行
被配置以64位元組且被處理成128位元。另外,可根據各種操作模式執行加密操作。舉例而言,當使用計數器(CounTeR,CTR)模式時,與加密操作相關地使用的密鑰流(key stream)可包括69位元隨機數(nonce)、32位元位址及27位元版本計數器。由於每當在對應的快取行中寫入新資料時,27位元版本計數器便會遞增,因此對於加密操作而言,可將27位元版本計數器作為元資料儲存於記憶體中。
記憶體包括多個區,例如,第一區(經加密的資料區)、第二區(元資料區)及第三區(ECC資料區)。可將以128位元(b)為單位的經加密的資料Ciphertext儲存於第一區中。另外,由於分開執行加密操作與ECC操作,因此元資料與ECC資料可儲存於單獨的區中。舉例而言,將元資料儲存於第二區中,且可將ECC資料儲存於第三區中。另外,為進行完整性檢查,可為64位元組經加密的資料Ciphertext產生56位元MAC,且可將版本計數器及MAC作為元資料儲存於第二區中。MAC可藉由各種演算法(例如安全散列演算法(Secure Hash Algorithm,SHA)、SHA256及SHA384或第五代訊息摘要演算法(Algorithm Message-Digest 5,MD5))產生。當讀取經加密的資料Ciphertext時,可一同讀取MAC。將由經加密的資料Ciphertext計算的MAC與自記憶體讀取的MAC彼此進行比較,且因此,可對偽造行為(forgery)進行偵測。根據一些實施例,可將版本計數器及MAC儲存於記憶體中而不進行加密及解密。
在一些實施例中,可藉由各種演算法或方法來執行ECC處理。舉例而言,在一些實施例中,可使用單位元錯誤糾正及雙位元錯誤偵測(single-bit error correction and double-bit error detection,SEC-DED),其中可分別針對128位元單元糾正一個錯誤且可偵測兩個錯誤。在SEC-DED方法的實例中,可每128位元產生9位元ECC資料,且可針對64位元組經加密的資料Ciphertext 產生36位元ECC資料。另外,可對元資料執行ECC處理,且可為所有83位元元資料產生9位元ECC資料。因此,產生45位元ECC資料,且可將ECC資料儲存於記憶體的第三區中。根據圖3所示實例,可將元資料與ECC資料分別儲存於單獨的區中。另外,由於ECC處理器可確定經加密的資料Ciphertext及欲被執行ECC編碼的元資料分別是單獨的資料項,因此可將經加密的資料Ciphertext的ECC資料(例如,第一ECC資料)及元資料的ECC資料(例如,第二ECC資料)儲存於第三區中的不同位置中。
參照圖4,根據本發明概念的一些實施例,可整體地管理元資料與ECC資料。舉例而言,可產生用於對元資料及ECC資料進行整體存取的位址。舉例而言,可將元資料、第一ECC資料及第二ECC資料整體地儲存於記憶體中的同一連續區中。因此,可藉由相對少量的存取將元資料、第一ECC資料及第二ECC資料儲存於記憶體中或自記憶體讀取元資料、第一ECC資料及第二ECC資料。舉例而言,可控制位址產生操作,且因此,記憶體包括用於儲存經加密的資料Ciphertext的第一區,且元資料、第一
ECC資料及第二ECC資料被映射於記憶體的同一區(例如,第二區)中。在圖4中,示出以下實例:由於在記憶體的列中提供的記憶體的大小大於MAC的56位元的大小、版本計數器的27位元的大小以及ECC資料的45位元的大小之和,因此將元資料及ECC資料儲存於記憶體的列中。
根據不同的實施例,用於在記憶體與記憶體控制器之間傳送及接收資料的頻寬(例如,資料頻寬)可為各種大小。可根據頻寬來定義記憶體與記憶體控制器之間的輸入及輸出單位。由於元資料的大小與ECC資料的大小之和可小於頻寬,因此可在一個輸入及輸出單位中管理元資料與ECC資料。因此,相較於圖3所示實施例,用於資料的加密及解密的對記憶體的存取次數可減少。
在圖3及圖4中,示出CTR模式作為加密操作的實例。然而,本發明概念的實施例並非僅限於此。可根據本發明概念的各種實施例來使用各種模式,例如電碼簿(electric codebook,ECB)模式、密碼區塊鏈接(cipher block chaining,CBC)模式、密碼回饋(cipher-feedback,CFB)模式及輸出回饋(output-feedback,OFB)模式。
圖5是示出根據本發明概念一些實施例的SOC的操作方法的流程圖。在圖5中,示出資料寫入操作。然而,位址產生操作及資料存取操作可在資料讀取操作中相同或相似地執行。
參照圖5,SOC包括根據上述實施例的安全處理器,且
安全處理器可對資料執行加密/解密操作及ECC操作。另外,可藉由對資料執行加密/解密操作及ECC操作來產生各種附加資料。舉例而言,可產生與加密/解密操作有關的元資料及與ECC處理操作有關的ECC資料。
當在操作S11中自外部(例如,自資料處理裝置100外部、安全處理器110外部及/或位址控制器113外部、但仍在安全處理器110內)向SOC提供資料存取請求時,SOC中的組件(例如,中央處理單元(central processing unit,CPU))可提供欲被執行寫入的資料(例如,原始資料)及位址(例如,第一位址),所述位址表示將資料儲存至安全處理器的位置。另外,在操作S12中,安全處理器可基於用於儲存經加密的資料的第一位址而產生第二位址。舉例而言,可基於與原始資料對應的附加資料(例如,元資料及ECC資料)的大小來產生第二位址。舉例而言,由於第二位址包括關於開始儲存元資料及ECC資料的位置以及元資料及ECC資料的大小的資訊,因此記憶體控制器120可將元資料及ECC資料儲存於由來自安全處理器的第二個位址指示的位置中。
在其他實施例中,安全處理器可藉由在操作S13中對所接收到的原始資料執行加密操作來產生經加密的資料及元資料。另外,可藉由在操作S14中對經加密的資料及元資料執行ECC編碼處理來產生ECC資料。如在上述實施例中,ECC資料可包括藉由對經加密的資料執行ECC編碼處理而獲得的第一ECC資料及藉由對元資料執行ECC編碼處理而獲得的第二ECC資料。
安全處理器可在兩個區中管理記憶體。舉例而言,可執行位址產生操作,且因此,儲存經加密的資料的區(例如,第一區)與儲存元資料及ECC資料的區(例如,第二區)被區分開。基於安全處理器的控制,在操作S15中根據第一位址將經加密的資料儲存於記憶體的第一區中,且在操作S16中可根據第二位址將元資料及ECC資料儲存於記憶體的第二區中。
根據上述實施例,與一個經加密的資料項對應的元資料及ECC資料可儲存於記憶體中的同一列中或同一行中。另外,在記憶體控制器與記憶體之間的通訊中,由於元資料及ECC資料的大小小於資料頻寬,因此可藉由執行單個存取操作來將與一個經加密的資料項對應的元資料及ECC資料儲存於記憶體中。
圖6及圖7分別是示出根據本發明概念一些實施例的加密操作及ECC編碼操作的實例的概念圖及流程圖。在以下實施例中,例示了CTR模式作為加密操作的實例。然而,如上所述,本發明概念的實施例並非僅限於特定種類的加密操作。
如圖6所示,在對資料進行加密並將經加密的資料儲存於記憶體中時,可讀取先前儲存於記憶體中的版本計數器。為此,可針對先前儲存的經加密的資料而對元資料及ECC資料執行讀取操作。另外,可使用69位元隨機數、32位元位址及27位元版本計數器產生用於對資料進行加密操作(例如,使用AES演算法的加密操作)的128位元密鑰流。可藉由使用所述128位元原始資料Plaintext及128位元密鑰流進行的操作(例如,互斥或(XOR))
來產生經加密的資料Ciphertext。另外,與用於27位元版本計數器的9位元ECC資料一同,可產生用於128位元經加密的資料Ciphertext的36位元ECC資料。另外,可藉由使用128位元經加密的資料Ciphertext及MAC密鑰進行的操作來產生56位元MAC。
圖7中示出根據上述加密操作及ECC編碼操作的整個流程的實施例。舉例而言,當以與128位元*4對應的資料(例如,第一資料項至第四資料項)的加密操作為例時,在操作S21中,自記憶體讀取元資料及ECC資料,在操作S22中藉由ECC解碼操作提取元資料,且可在操作S23中執行包括版本計數器的密鑰流產生操作。另外,在操作S24中執行使用密鑰流進行的加密操作,在操作S25中執行對第一經加密的資料的ECC編碼操作,且在操作S26中可將第一經加密的資料寫入於記憶體中。
可分別在操作S27及S28中執行第二經加密的資料的ECC編碼操作及寫入第二經加密的資料的操作。可分別在操作S29及S30中執行第三經加密的資料的ECC編碼操作及寫入第三經加密的資料的操作。另外,可在操作S31及操作S32中執行第四經加密的資料的ECC編碼操作及寫入第四經加密的資料的操作。另外,根據上述實施例,在操作S33中藉由使用經加密的資料進行的MAC操作來產生MAC,在操作S34中執行對包括版本計數器及MAC的元資料的ECC編碼操作,且可將所產生的元資料及ECC資料儲存於記憶體S35中。
在處理資料時,在圖7所示流程中可通常在寫入及讀取
資料上花費相對大量的時間及電力。然而,根據本發明概念的一些實施例,由於元資料及ECC資料可自記憶體整體讀取且元資料及ECC資料可整體儲存於記憶體中,因此在處理資料上花費的時間及電力可減少。
圖8是示出根據本發明概念一些實施例的解密操作及ECC解碼操作的實例的流程圖。由於在本發明概念的實施例中可使用的解碼操作及ECC解碼操作的概念可按與圖6所示加密操作及ECC編碼操作相反的順序執行,因此將不再對其予以贅述。
如圖8所示,當以與128位元*4對應的經加密的資料的解碼操作為例時,在操作S41中可自記憶體讀取包括版本計數器及MAC的元資料以及ECC資料,且可由安全處理器臨時保持所讀取資訊。另外,在操作S42中藉由ECC解碼操作提取元資料,且可在操作S43中執行包括版本計數器的密鑰流產生操作。另外,在操作S44中可自記憶體讀取經ECC編碼的第一經加密的資料,且在操作S45中可藉由執行ECC解碼操作來提取第一經加密的資料。在操作S46中,可藉由讀取操作提取第二經加密的資料,且在操作S47中,可執行對第二經加密的資料的ECC解碼操作,在操作S48中,可藉由讀取操作提取第三經加密的資料,且在操作S49中,可執行對第三經加密的資料的ECC解碼操作。另外,在操作S50中,可藉由讀取操作提取第四經加密的資料,且在操作S51中,可執行對第四經加密的資料的ECC解碼操作。另外,根據上述實施例,藉由使用經加密的資料進行的MAC操作來產生
MAC,在操作S52中可在所產生的MAC與自記憶體讀取的MAC之間執行比較操作且在操作S53中可執行使用密鑰流進行的解碼操作。
根據上述實施例,可藉由讀取操作來執行讀取元資料及經加密的資料的ECC資料以及元資料的ECC資料的過程。因此,可減少對記憶體的存取次數,且因此,可減少在對經加密的資料進行解碼的過程上花費的時間及電力。
圖9及圖10是示出根據本發明概念一些實施例的安全處理器300的實施方式實例的方塊圖。
參照圖9,安全處理器300可包括主控制器310、加密及ECC編碼模組320、解密及ECC解碼模組330、位址產生器340及位址-資料排程器350。加密及ECC編碼模組320可對應於圖1所示加密/ECC編碼處理器111,且解密及ECC解碼模組330可對應於圖1所示解密/ECC解碼處理器112。另外,位址產生器340可包括於圖1所示位址控制器113中。
根據一些實施例,安全處理器300可包括於SOC(或高階駕駛員輔助系統(ADAS)SOC)中。安全處理器300的操作可受設置於SOC中的CPU(未示出)控制。作為另一選擇,根據其他實施例,可在用於控制記憶體的記憶體控制器中設置安全處理器300。作為另一選擇,根據另一些實施例,SOC可包括安全處理器300及記憶體控制模組。圖9所示組件中的一些組件可設置於安全處理器300中,且其他組件可設置於記憶體控制模組中。
外部裝置可向SOC發出讀取及儲存資料的請求。根據本發明概念的實施例,安全處理器300可藉由對請求儲存的原始資料執行加密操作及ECC編碼處理來將經加密的資料儲存於記憶體(未示出)中,自記憶體讀取經加密的資料,藉由對所讀取的經加密的資料執行解密操作及ECC解碼處理來產生原始資料,且可使用SOC中的原始資料或者可將原始資料提供至外部裝置。主控制器310可控制安全處理器300的操作,且因此,安全處理器300可執行根據本發明概念的實施例的操作。
當向SOC提供資料存取請求時,安全處理器300自SOC的內部組件(例如,CPU)接收第一位址ADD1及寫入資料,且可提供讀取資料。根據上述實施例,位址產生器340可根據第一位址ADD1計算第二位址ADD2,第二位址ADD2表示欲儲存元資料及ECC資料的位置。來自外部的第一位址ADD1及來自位址產生器340的第二位址ADD2可被提供至位址-資料排程器350。根據一些實施例,位址產生器340可基於來自外部的第一位址ADD1而新產生位址,所述位址表示欲儲存經加密的資料的位置。可將新產生的位址提供至位址-資料排程器350。
根據上述實施例,在資料的讀取及寫入操作中,對記憶體的存取次數可變化。舉例而言,在資料的寫入操作的情形中,可增加以下過程:讀取為對來自記憶體的原始資料執行加密操作而請求的元資料。由於記憶體存取操作可根據對資料執行的讀取或寫入操作而變化,因此主控制器310可基於對位址產生器340
的讀取或寫入操作來提供控制資訊。亦即,位址產生器340可基於第一位址ADD1及控制資訊計算至少一個位址,且可儲存所計算的位址。另外,當接收到根據來自外部的讀取請求的第一位址ADDl時,位址產生器340可參照儲存於位址產生器340中的位址資訊產生與第一位址ADD1對應的至少一個位址,且可將所產生的位址提供至位址-資料排程器350。
根據上述實施例,加密及ECC編碼模組320可對資料執行加密操作及ECC編碼處理,且可將經加密的資料、元資料及ECC資料提供至位址-資料排程器350。另外,解密及ECC解碼模組330可使用自記憶體讀取的經加密的資料、元資料及ECC資料來執行解密操作及ECC解碼處理,且可執行用於完整性檢查的MAC產生及比較操作。
主控制器310可與對位址產生器340進行控制操作一同來控制與加密/解密操作及ECC操作有關的過程。舉例而言,主控制器310可管理加密/解密操作的資訊,可根據安全處理結果管理警報操作,或者可對由ECC操作找到的錯誤執行管理操作。
位址-資料排程器350可對與記憶體操作有關的匯流排事務(bus transaction)進行排程。舉例而言,可自外部裝置提供對多個資料項的存取請求。位址-資料排程器350可對資料及位址的輸出操作進行排程,且因此,可將多個經加密的資料項及與經加密的資料項對應的元資料及ECC資料儲存於記憶體中,或者可自記憶體中讀取多個經加密的資料項及與經加密的資料項對應的
元資料及ECC資料。來自位址-資料排程器350的資料及位址可藉由記憶體控制器(未示出)提供至外部記憶體。
圖9所示安全處理器300的功能可作為硬體、軟體或硬體與軟體的組合由電路執行。舉例而言,當安全處理器300的功能作為軟體執行時,主控制器310可包括被配置以執行程式的處理器。可藉由執行加載於安全處理器300內部或外部的記憶體上的程式來執行上述實施例中的一或多個功能。
在圖10中,示出根據本發明概念一些實施例的加密及ECC編碼模組320以及解密及ECC解碼模組330的實施方式實例。參照圖10,加密及ECC編碼模組320可包括加密引擎321、MAC產生器322及ECC編碼器323。另外,解密及ECC解碼模組330可包括解密引擎331、MAC產生器332、MAC比較器333及ECC解碼器334。ECC編碼器323可執行將元資料與ECC資料整體地提供至位址-資料排程器350的功能(例如,包裝(wrapping))。舉例而言,當在ECC編碼器323中設置緩衝器時,可將依序接收的元資料及ECC資料儲存於緩衝器中,且可將儲存於緩衝器中的元資料及ECC資料整體地提供至位址-資料排程器350。解密及ECC解碼模組330可包括用於臨時儲存被整體地讀取的元資料與ECC資料的緩衝器,且可執行將元資料及ECC資料在不同時間處提供至對應的處理區塊的功能(例如,展開(unwrapping))。
圖11是示出根據本發明概念一些實施例的安全處理器
的示例性操作的方塊圖。
參照圖11,安全處理器包括位址-資料排程器400,且可在資料寫入操作期間根據上述實施例接收經加密的資料、元資料、ECC資料及位址。舉例而言,作為不同的經加密的資料項,可將第一經加密的資料DATA_EN_1以及與第一經加密的資料DATA_EN_1對應的第一元資料Meta data_1及第一ECC資料ECC data_1提供至位址-資料排程器400。接著,可將第二經加密的資料DATA_EN_2及與第二經加密的資料DATA_EN_2對應的第二元資料Meta data_2及第二ECC資料ECC data_2提供至位址-資料排程器400。可將位址自位址產生器(未示出)進一步提供至位址-資料排程器400。
位址-資料排程器400可對與將資料項儲存於記憶體中的操作有關的對資料項及位址進行輸出的操作進行排程。舉例而言,當第一元資料Meta data_1及第一ECC資料ECC data_1的大小與第二元資料Meta data_2及第二ECC資料ECC data_2的大小之和小於記憶體控制器與記憶體(未示出)之間的頻寬時,可執行排程以使元資料項及ECC資料項一同儲存於記憶體中。舉例而言,在位址-資料排程器400輸出第一經加密的資料DATA_EN_1及與第一經加密的資料DATA_EN_1對應的第一位址ADD1_1以及第二經加密的資料DATA_EN_2以及與第二經加密的資料DATA_EN_2對應的第一位址ADD1_2之後,位址-資料排程器400可輸出與第一經加密的資料項DATA_EN_1及第二經加密的資料
項DATA_EN_2有關的元資料項及ECC資料項以及與元資料項及ECC資料項對應的第二位址ADD2。亦即,基於位址-資料排程器400的排程,可將與至少兩個經加密的資料項有關的元資料項及ECC資料項整體地儲存於記憶體中及/或可自記憶體讀取與至少兩個經加密的資料項有關的元資料項及ECC資料項。
圖12A及圖12B是示出根據本發明概念一些實施例的其中將元資料及ECC資料儲存於記憶體中的實例的方塊圖。
參照圖12A,根據資料加密操作產生經加密的資料DATA_EN,且可將經加密的資料DATA_EN儲存於作為記憶體的DRAM的第一區中。另外,可基於位址產生操作將與經加密的資料DATA_EN對應的元資料及ECC資料儲存於記憶體的第二區中。
當執行位址產生操作且因此將元資料及ECC資料儲存於小數目的列中時,可將元資料及ECC資料中的至少一些儲存於同一列中。舉例而言,當ECC資料包括經加密的資料DATA_EN的第一ECC資料ECC data_1及元資料的第二ECC資料ECC data_2時,響應於來自位址產生器的列位址R_ADD2_1而將元資料及第一ECC資料ECC data_1儲存於同一列中且可響應於來自位址產生器的列位址R_ADD2_2而將第二ECC資料ECC data_2儲存於相鄰的列中。
圖12B示出將元資料及ECC資料儲存於相對小數目的行中的位址產生操作的效能。元資料及ECC資料中的至少一些可儲存於同一行中。舉例而言,元資料及第一ECC資料ECC data_1
可響應於來自位址產生器的行位址C_ADD2_1而儲存於同一行中,且第二ECC資料ECC data_2可響應於來自位址產生器的行位址C_ADD2_2而儲存於相鄰的行中。
本發明概念的實施例並非僅限於圖12A及圖12B所示儲存方法。元資料及ECC資料可基於元資料及ECC資料的大小而儲存於更大數目的列或行中。另外,儲存於同一列中或同一行中的資料項的種類可變化。
圖13是示出根據本發明概念一些實施例的安全處理器500的方塊圖。在圖13中,示出選擇性地執行資料的加密操作的實例。
參照圖13,安全處理器500可包括主控制器510、位址產生器520、加密及ECC編碼模組530以及位址-資料排程器540。另外,主控制器510可控制安全處理器500的操作且加密及ECC編碼模組530可包括加密引擎531、MAC產生器532及ECC編碼器533。
在將資料儲存於記憶體中時,安全處理器500或包括安全處理器500的SOC(未示出)可判斷資料是否被加密。當假設SOC判斷資料是否被加密時,在寫入資料的操作中,可將表示資料是否被加密的資訊Info_EN提供至主控制器510,且主控制器510可基於資訊Info_EN而控制加密及ECC編碼模組530。
舉例而言,假設對第一資料DATA1執行加密操作而不對第二資料DATA2執行加密操作,則可執行以下操作:加密引擎
531對第一資料DATA1執行加密操作,將經加密的資料提供至MAC產生器532,且可將經加密的資料及元資料(例如,如版本計數器等資訊)提供至ECC編碼器533。另外,來自MAC產生器532的MAC可作為元資料被提供至ECC編碼器533,且ECC編碼器533可產生經加密的資料的第一ECC資料及元資料的第二ECC資料。ECC編碼器533可產生第二資料DATA2的ECC資料,而不對第二資料DATA2執行加密操作。
主控制器510可基於資訊Info_EN而控制位址產生器520的操作。根據上述實施例,位址產生器520可使用與第一資料項DATA1及第二資料項DATA2的儲存有關的位址(例如,第一位址)來計算第二位址,可計算用於儲存與第一資料DATA1有關的元資料及ECC資料的第二位址ADD2_1,且可計算用於儲存與第二資料DATA2有關的ECC資料的第二位址ADD2_2。可將如上所述產生的資料及位址提供至位址-資料排程器540。
位址產生器520可執行位址產生操作以具有用於在產生與第一資料DATA1有關的第二位址ADD2_1時儲存更多資料的資訊。當產生與第二資料DATA2有關的第二位址ADD2_2時,可執行位址產生操作以具有用於儲存相對少量資料的資訊。因此,當不執行加密操作時,可將與更多資料項有關的ECC資料儲存於記憶體的同一列中或同一行中。另外,根據上述實施例,位址-資料排程器540可控制對位址及/或資料項進行輸出的順序,當不執行加密操作時輸出更大數目的資料項及與資料項對應的位址,且可
執行排程,且因此,可將與更大數目的資料項有關的ECC資料項整體地提供至記憶體。
圖14是示出根據本發明概念另一些實施例的安全處理器600的方塊圖。
參照圖14,安全處理器600可包括主控制器610、位址產生器620、加密及ECC編碼模組630以及解密及ECC解碼模組640。另外,主控制器610可控制安全處理器600的操作。基於安全處理器600或包括安全處理器600的SOC的控制,可選擇用於加密/解密操作的演算法及用於ECC操作的演算法。另外,元資料的大小及ECC資料的大小可根據用於加密/解密操作的演算法及用於ECC操作的演算法而改變。
當基於主控制器610的控制而選擇演算法的種類時,主控制器610可將加密演算法資訊Algo_EN及ECC編碼演算法資訊Algo_ECC_E提供至加密及ECC編碼模組630。另外,主控制器610可將解密演算法資訊Algo_DE及ECC解碼演算法資訊Algo_ECC_D提供至解密及ECC編碼模組640。另外,主控制器610可根據所選擇的演算法將關於由加密操作及ECC操作產生的附加資料的大小的資訊Info_size提供至位址產生器620且位址產生器620可在產生第二位址時進一步參照資訊Info_size。
假設產生具有較第一資料的大小大的第一大小的附加資料且產生具有較第二資料的大小小的第二大小的附加資料,則位址產生器620可產生用於產生具有不同大小的附加資料項的第
二位址ADD2_1及ADD2_2。舉例而言,當附加資料的大小相對小時,元資料及ECC資料可儲存於小數目的列或行中,且可將與更多資料項有關的附加資料(元資料及ECC資料)儲存於記憶體的同一列中或同一行中。另外,根據上述實施例,位址-資料排程器(未示出)的排程操作可基於附加資料的大小而改變。
圖15是示出其中在側頻帶ECC方法中使用根據本發明概念一些實施例的安全處理器的實例的方塊圖。
在上述實施例中,示出將經加密的資料與附加資料儲存於同一記憶體(例如,同一DRAM晶片)中的不同的區中,此可對應於在線ECC方法(in-line ECC method),在所述在線ECC方法中,對記憶體的空間進行邏輯劃分以為ECC資料分配儲存空間。在本發明概念的一些實施例中,可對儲存經加密的資料及附加資料的操作進行管理,以對應於另一ECC方法。舉例而言,可採用與側頻帶ECC方法(sideband ECC method)相同的方法或相似的方法來管理儲存操作,其中ECC資料儲存於與儲存共用資料(例如,使用者資料)的DRAM晶片不同的DRAM晶片中。DRAM晶片可根據各種規格中的一種(例如LPDDR(例如LPDDR4、LPDDR4X或LPDDR5))來執行資料存取操作。
舉例而言,參照圖15,資料處理系統700包括SOC 710及多個記憶體,且SOC 710可包括根據上述實施例的安全處理器711。另外,所述多個記憶體可包括用於儲存經加密的資料的一或多個第一DRAM晶片721及722以及用於儲存包括元資料及ECC
資料的附加資料的一或多個第二DRAM晶片731及732。在圖15中,示出所述兩個第一DRAM晶片721及722以及所述兩個第二DRAM晶片731及732。然而,本發明概念的實施例並非僅限於此。可在資料處理系統700中設置各種數目的第一DRAM晶片及第二DRAM晶片。
可將預定單位的經加密的資料DATA_EN儲存於第一DRAM晶片721及722中的至少一者中。另外,根據由安全處理器711中的位址產生器(未示出)產生的位址,可將元資料及ECC資料儲存於第二DRAM晶片731及732中的至少一者中。根據一些實施例,由於可將元資料及ECC資料儲存於與儲存經加密的資料DATA_EN的DRAM晶片不同的DRAM晶片中,因此安全處理器711中的位址產生器可更產生表示DRAM晶片的位置的晶片位址。因此,可為元資料與ECC資料整體地產生晶片位址。
當藉由如上所述側頻帶ECC方法管理資料時,由於可提供專用於元資料及ECC資料的通訊的附加頻寬,因此可減少對資料的存取次數且可提高存取速度。另外,可使用根據第二DRAM晶片的生產規格而被放棄不被使用的儲存空間來儲存元資料。因此,可改善記憶體的使用效率。
圖16是示出根據本發明概念一些實施例的SOC 800的實施方式實例的方塊圖。在以下實施例中闡述的SOC可包括應用處理器。
參照圖16,SOC 800可包括CPU 810、顯示控制器820、
唯讀記憶體(read only memory,ROM)830、記憶體控制器840及隨機存取記憶體(random access memory,RAM)850。另外,SOC 800可更包括圖形處理單元(graphics processing unit,GPU)860。另外,當SOC 800更包括數據機870時,SOC 800可被稱為數據機應用處理器(modem application processor,ModAP)。SOC 800可更包括各種功能區塊,例如電源管理單元及時脈單元。
CPU 810可處理或執行儲存於ROM 830及/或RAM 850中的程式或資料。舉例而言,CPU 810可根據操作時脈來處理或執行程式及資料。CPU 810可由多核處理器實施。多核處理器是具有二或更多個獨立處理器(例如,核)的計算組件。處理器中的每一者可讀取及執行程式指令。
ROM 830可採用非揮發性方法儲存程式及/或資料。ROM 830可由可抹除可程式化唯讀記憶體(erasable programmable read-only memory,EPROM)或電可抹除可程式化唯讀記憶體實施。另外,RAM 850可臨時儲存程式、資料及指令。舉例而言,儲存於ROM 830中的程式及/或資料可根據CPU 810的控制而臨時儲存於RAM 850中。RAM 850可由記憶體類型(例如動態隨機存取記憶體(DRAM)或靜態隨機存取記憶體(static random access memory,SRAM))實施。
記憶體控制器840包括用於與外部記憶體裝置介接的介面電路(interface circuit,I/F)841,根據資料存取請求控制外部記憶體裝置,以及寫入或讀取資料。另外,顯示控制器820可藉
由驅動顯示裝置來控制螢幕的顯示操作。
根據本發明概念的一些實施例,可在SOC 800中的各種位置中的一者中設置安全處理器842。在圖16中,示出在記憶體控制器840中實施安全處理器842。亦即,上述實施例中的安全處理器842的功能可由記憶體控制器840執行。記憶體控制器840可執行用於儲存經加密的資料及元資料/ECC資料的控制操作。舉例而言,經加密的資料及元資料/ECC資料可儲存於SOC 800的RAM 850中或儲存於外部記憶體裝置中。另外,可整體地管理元資料/ECC資料。舉例而言,外部儲存裝置的儲存空間可在邏輯上被劃分成第一區與第二區,且可相應地進行管理。元資料/ECC資料可儲存於第二區中。在其他實施例中,外部記憶體裝置可包括多個記憶體晶片,且可將元資料/ECC資料管理成儲存於同一記憶體晶片中。
在圖16所示實施例中,示出記憶體控制器840設置於SOC 800中。然而,本發明概念的實施例並非僅限於此。舉例而言,記憶體控制器840可由附加半導體晶片實施,且根據本發明概念一些實施例的安全處理器842可設置於由附加半導體晶片實施的記憶體控制器840中。另外,由附加半導體晶片及記憶體(例如,外部記憶體裝置)實施的記憶體控制器840可根據本發明概念一些實施例來配置記憶體系統MEM SYS。
圖17是示出根據本發明概念一些實施例的SOC 900的實施方式實例的方塊圖。儘管為便於說明起見在圖17中未示出圖
16中所示組件中的一些組件,然而根據本發明概念實施例的SOC可更包括其他各種組件。另外,在闡述圖17所示SOC的配置及操作實例時,將不再對先前針對上述實施例提供的說明予以贅述。
參照圖17,SOC 900可包括CPU 910、GPU 920、顯示控制器930、安全處理器940及記憶體控制器950。DRAM控制器可為記憶體控制器950的實例。另外,記憶體控制器950可控制外部記憶體裝置,且外部記憶體裝置可根據所儲存的資料的種類而被劃分成多個區。
CPU 910可控制SOC 900的操作。舉例而言,CPU 910向安全處理器940或記憶體控制器950提供被請求存取的資料及位址。舉例而言,在外部記憶體裝置中可儲存有各種資料項。不需要加密的資料可藉由CPU 910及記憶體控制器950經由明文資料路徑(plain data path)提供至外部記憶體裝置。相反,需要加密的資料可藉由CPU 910及安全處理器940經由經加密的資料路徑提供至外部記憶體裝置。
圖17所示SOC 900可藉由各種方法中的一種來處理資料。當對不需要加密的資料執行ECC操作時,記憶體控制器950可藉由對資料DATA進行ECC操作來產生ECC資料。根據上述實施例,安全處理器940處理需要加密的資料,且因此,可產生經加密的資料DATA_EN以及與經加密的資料DATA_EN對應的元資料/ECC資料Meta data/ECC data。另外,可執行位址產生操作,且因此,元資料/ECC資料Meta data/ECC data被儲存於外部記憶
體裝置的同一區中。
圖18是示出其中在車輛中使用的自主駕駛系統1000中實施根據本發明概念一些實施例的安全處理器的實例的方塊圖。圖18所示系統可對應於自主駕駛系統1000,且自主駕駛系統1000可包括感測器資訊收集器1100、導航資訊收集器1200、自主駕駛模組1300、CPU 1400及記憶體(memory,MEM)1500。另外,自主駕駛模組1300可包括神經網路裝置1310及安全處理器1320。
神經網路裝置1310使用各種影像及語音資訊項來執行神經網路操作,且可基於執行結果而產生資訊訊號(例如影像辨識結果及語音辨識結果)。舉例而言,感測器資訊收集器1100包括可收集各種影像及語音資訊項的裝置(例如相機及麥克風),且可將所收集的各種影像及語音資訊項提供至自主駕駛模組1300。另外,導航資訊收集器1200可向自主駕駛模組1300提供與車輛駕駛有關的各種資訊項(例如,位置資訊)。神經網路裝置1310使用來自感測器資訊收集器1100及/或導航資訊收集器1200的資訊作為輸入來執行各種神經網路模型,且可產生資訊訊號。當感測器資訊收集器1100包括相機或麥克風時,自主駕駛模組1300的安全處理器1320可執行加密/解密操作及ECC操作作為對來自感測器資訊收集器1100的語音資料或影像資料的安全處理。根據上述實施例,經加密的資料及元資料/ECC資料可儲存於記憶體1500中。
在圖18中,示出在自主駕駛系統中使用本發明概念的
實施例。然而,本發明概念的實施例可用於其中相機感測器請求使用安全功能的產品(例如物聯網(Internet of things,IoT)及監測相機)中。
儘管已參照本發明概念的實施例具體示出及闡述了本發明概念,然而應理解,在不背離以下申請專利範圍的精神及範圍的條件下,可在本文中作出形狀及細節上的各種改變。
10:資訊處理系統
11:裝置
12:記憶體
100:資料處理裝置/系統晶片(SOC)
110:安全處理器
111:加密/ECC編碼處理器
112:解密/ECC解碼處理器
113:位址控制器
DATA:資料
DATA_EN:經加密的資料
ECC data:ECC資料
Meta data:元資料
Claims (23)
- 一種系統晶片(SOC),包括:安全處理器,被配置以對資料執行加密/解密操作以及對所述資料執行錯誤糾正碼(ECC)操作,其中所述安全處理器包括:加密/錯誤糾正碼編碼處理器,被配置以使用元資料對所述資料執行所述加密操作以及藉由對經加密的資料及所述元資料執行錯誤糾正碼編碼處理來產生錯誤糾正碼資料;解密/錯誤糾正碼解碼處理器,被配置以藉由使用所述錯誤糾正碼資料執行錯誤糾正碼解碼處理來提取所述經加密的資料及所述元資料以及藉由使用所述元資料對所述經加密的資料執行解密操作來恢復所述資料;以及位址控制器,被配置以接收與所述經加密的資料的儲存有關的第一位址,基於所述第一位址以及所述元資料與所述錯誤糾正碼資料的大小而產生第二位址,以及基於所產生的所述第二位址指示記憶體中用於儲存所述元資料及所述錯誤糾正碼資料的同一區。
- 申請專利範圍第1項所述的系統晶片,更包括主控制器,所述主控制器被配置以接收所述資料的外部寫入請求或外部讀取請求以及輸出控制資訊;其中所述位址控制器更被配置以根據外部請求的種類來執行所述位址產生操作。
- 如申請專利範圍第1項所述的系統晶片,更包括位址排程器,所述位址排程器被配置以自所述加密/錯誤糾正碼編碼處理器接收多個所述經加密的資料及多個所述錯誤糾正碼資料,以自所述位址控制器接收分別與多個所述錯誤糾正碼資料對應的多個第二位址,且對所述經加密的資料及所述錯誤糾正碼資料以及所述多個第二位址的輸出操作進行排程。
- 如申請專利範圍第3項所述的系統晶片,其中所述加密/錯誤糾正碼編碼處理器包括緩衝器,所述緩衝器被配置以儲存在不同時間處產生的所述元資料及所述錯誤糾正碼資料,且其中所述緩衝器被配置以將所述元資料及所述錯誤糾正碼資料並列地提供至所述位址排程器。
- 如申請專利範圍第3項所述的系統晶片,其中所述位址排程器被配置以輸出多個所述經加密的資料及分別與所述經加密的資料對應的第一位址,以及執行與多個所述經加密的資料對應的元資料及錯誤糾正碼資料以及與所述元資料及所述錯誤糾正碼資料對應的第二位址的輸出排程。
- 如申請專利範圍第1項所述的系統晶片,其中所述錯誤糾正碼資料包括使用所述經加密的資料產生的第一錯誤糾正碼資料及使用所述元資料產生的第二錯誤糾正碼資料,且其中所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料響 應於所述第二位址而儲存於所述記憶體中。
- 如申請專利範圍第6項所述的系統晶片,其中所述元資料、所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料中的至少一些基於所述第二位址而儲存於所述記憶體的同一列中。
- 如申請專利範圍第6項所述的系統晶片,其中所述元資料、所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料中的至少一些基於所述第二位址而儲存於所述記憶體的同一行中。
- 如申請專利範圍第1項所述的系統晶片,其中與所述系統晶片進行通訊的所述記憶體包括在邏輯上劃分開的第一區與第二區,且其中所述記憶體被配置以基於所述第二位址而將所述元資料及所述錯誤糾正碼資料同時儲存於所述第二區中。
- 如申請專利範圍第1項所述的系統晶片,其中所述位址控制器包括位址儲存電路,所述位址儲存電路被配置以儲存所產生的所述第二位址,且其中,在對所述資料執行的讀取操作中,所述位址控制器被配置以接收與所述資料的讀取有關的所述第一位址以及自所述位址儲存電路讀取與所接收的所述第一位址對應的所述第二位址。
- 如申請專利範圍第1項所述的系統晶片,更包括記憶體控制器,所述記憶體控制器被配置以與外部記憶體進行通訊,其中所述記憶體控制器更被配置以當不對所述資料執行所述加密操作時向所述外部記憶體提供所述資料而不經由所述安全處 理器傳遞所述資料,且其中所述記憶體控制器更被配置以當對所述資料執行所述加密操作時藉由經由所述安全處理器傳遞所述資料來向所述記憶體提供所述資料。
- 如申請專利範圍第1項所述的系統晶片,其中所述位址控制器更被配置以產生所述第二位址以對分別由單獨的晶片實施的第一記憶體晶片及第二記憶體晶片進行存取,且其中所述位址控制器更被配置以執行所述位址產生操作以將所述元資料及所述錯誤糾正碼資料儲存於同一記憶體晶片中。
- 一種操作系統晶片的方法,所述方法包括:接收資料以及與所述資料對應的第一位址;藉由使用元資料對所述資料執行加密操作來產生經加密的資料;藉由對所述經加密的資料及所述元資料執行錯誤糾正碼編碼處理來產生錯誤糾正碼(ECC)資料;且基於所述第一位址以及所述元資料與所述錯誤糾正碼資料的大小產生第二位址,所述第二位址表示記憶體中儲存所述元資料及所述錯誤糾正碼資料的位置,且其中所述第二位址包括使所述元資料及所述錯誤糾正碼資料中的至少一些在所述記憶體中儲存於同一列中或同一行中的資訊。
- 如申請專利範圍第13項所述的方法,其中所述錯誤糾正碼資料包括使用所述經加密的資料產生的第一錯誤糾正碼資料以及使用所述元資料產生的第二錯誤糾正碼資料,且其中所述元資料、所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料基於所述第二位址而在所述記憶體中儲存於所述同一列中或所述同一行中。
- 如申請專利範圍第13項所述的方法,其中所述第二位址是響應於資料單元而產生的,所述資料單元包括響應於加密單元的資料而產生的所述元資料及所述錯誤糾正碼資料。
- 如申請專利範圍第13項所述的方法,更包括:儲存所產生的所述第二位址;接收欲讀取與所述第一位址對應的資料的請求;以及使用所儲存的位址中的與所述第一位址對應的所述第二位址自所述記憶體讀取所述元資料及所述錯誤糾正碼資料中的至少一些。
- 如申請專利範圍第13項所述的方法,其中所述系統晶片被配置以存取分別由單獨的晶片實施的第一記憶體晶片及第二記憶體晶片,且其中所述元資料及所述錯誤糾正碼資料響應於產生所述第二位址而儲存於同一記憶體晶片中。
- 如申請專利範圍第13項所述的方法, 其中所述系統晶片被配置以根據預定頻寬而與所述記憶體進行通訊,其中所述元資料的大小與所述錯誤糾正碼資料的大小之和不大於所述預定頻寬,且其中所述元資料及所述錯誤糾正碼資料藉由執行單個寫入操作而儲存於所述記憶體中。
- 一種記憶體系統,包括:記憶體控制器,與記憶體進行通訊,其中所述記憶體控制器包括:加密/錯誤糾正碼(ECC)編碼處理器,被配置以使用元資料對資料執行加密操作以及藉由對經加密的資料及所述元資料執行錯誤糾正碼編碼處理來產生錯誤糾正碼資料;解密/錯誤糾正碼解碼處理器,被配置以藉由使用所述錯誤糾正碼資料執行錯誤糾正碼解碼處理來提取所述經加密的資料及所述元資料以及藉由使用所述元資料對所述經加密的資料執行解密操作來恢復所述資料;位址控制器,被配置以接收與所述經加密的資料的儲存有關的第一位址,基於所述第一位址以及所述元資料與所述錯誤糾正碼資料的大小而產生第二位址,以及基於所產生的所述第二位址指示儲存所述元資料及所述錯誤糾正碼資料的所述記憶體的同一區;以及介面電路,被配置以與所述記憶體介接以基於所述第一位址 及所述第二位址而進行資料存取。
- 如申請專利範圍第19項所述的記憶體系統,其中所述錯誤糾正碼資料包括使用所述經加密的資料產生的第一錯誤糾正碼資料及使用所述元資料產生的第二錯誤糾正碼資料,且其中所述位址控制器更被配置以執行所述位址產生操作以基於所述第二位址將所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料儲存於所述記憶體中。
- 如申請專利範圍第20項所述的記憶體系統,其中所述第二位址包括使所述元資料、所述第一錯誤糾正碼資料及所述第二錯誤糾正碼資料中的至少一些儲存於所述記憶體的同一列中或同一行中的資訊。
- 如申請專利範圍第19項所述的記憶體系統,其中所述記憶體包括一或多個動態隨機存取記憶體(DRAM),其中所述一或多個動態隨機存取記憶體包括在邏輯上劃分開的第一區與第二區,且其中所述第二位址包括使所述元資料及所述錯誤糾正碼資料儲存於所述第二區中的資訊。
- 如申請專利範圍第19項所述的記憶體系統,其中所述記憶體包括分別由單獨的晶片實施的第一動態隨機存取記憶體晶片及第二動態隨機存取記憶體晶片,其中所述元資料及所述錯誤糾正碼資料選擇性地儲存於所述 第一動態隨機存取記憶體晶片及所述第二動態隨機存取記憶體晶片中的一者中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180117870A KR102557993B1 (ko) | 2018-10-02 | 2018-10-02 | 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법 |
KR10-2018-0117870 | 2018-10-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202015064A TW202015064A (zh) | 2020-04-16 |
TWI822783B true TWI822783B (zh) | 2023-11-21 |
Family
ID=69781131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108117378A TWI822783B (zh) | 2018-10-02 | 2019-05-20 | 包括具有改善記憶體使用效率的安全處理器的系統晶片與記憶體系統以及操作系統晶片的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11231991B2 (zh) |
KR (1) | KR102557993B1 (zh) |
CN (1) | CN110990186A (zh) |
DE (1) | DE102019107503A1 (zh) |
TW (1) | TWI822783B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11514174B2 (en) * | 2019-01-23 | 2022-11-29 | Micron Technology, Inc. | Memory devices with cryptographic components |
KR20200092036A (ko) * | 2019-01-24 | 2020-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11036636B2 (en) * | 2019-06-28 | 2021-06-15 | Intel Corporation | Providing improved efficiency for metadata usages |
KR102263044B1 (ko) * | 2019-08-23 | 2021-06-09 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
US11372720B2 (en) * | 2020-09-24 | 2022-06-28 | Advanced Micro Devices, Inc. | Systems and methods for encoding metadata |
US11664999B2 (en) | 2020-10-16 | 2023-05-30 | Microsoft Technology Licensing, Llc | Ensuring the integrity of data stored in a memory by using a watermark |
US20220147453A1 (en) * | 2020-11-12 | 2022-05-12 | Intel Corporation | Sequestered memory for selective storage of metadata corresponding to cached data |
US20220207190A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Low overhead memory integrity with error correction capabilities |
CN116897343A (zh) * | 2021-02-16 | 2023-10-17 | 美光科技公司 | 用于管理多种类型的存储器的控制器 |
US20230352064A1 (en) * | 2022-04-27 | 2023-11-02 | Micron Technology, Inc. | Apparatuses, systems, and methods for managing metadata storage at a memory |
WO2024076103A1 (ko) * | 2022-10-07 | 2024-04-11 | 삼성전자 주식회사 | 데이터 수집 시스템 및 그 동작 방법 |
CN116226891B (zh) * | 2023-05-08 | 2023-09-01 | 宁波财经学院 | 一种人脸图像数据加密方法 |
KR102664239B1 (ko) * | 2023-10-06 | 2024-05-08 | 위더맥스(주) | Ecc 가변 적용 장치 및 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079217A1 (en) * | 2005-09-30 | 2007-04-05 | Haugan Rodger D | Method and apparatus for implementing error correction coding in a random access memory |
US7454592B1 (en) * | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
US20160314042A1 (en) * | 2015-04-27 | 2016-10-27 | Invensas Corporation | Preferred state encoding in non-volatile memories |
US20210314354A1 (en) * | 2016-08-15 | 2021-10-07 | RiskIQ, Inc. | Techniques for determining threat intelligence for network infrastructure analysis |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233646B1 (en) * | 1998-08-28 | 2001-05-15 | Electronics And Telecommunications Research Institute | Memory interface controller |
US6785860B1 (en) * | 2000-05-31 | 2004-08-31 | Robert Patti | Error-correcting code adapted for memories that store multiple bits per storage cell |
US8006166B2 (en) * | 2007-06-12 | 2011-08-23 | Micron Technology, Inc. | Programming error correction code into a solid state memory device with varying bits per cell |
US20090125726A1 (en) * | 2007-11-14 | 2009-05-14 | Mcm Portfolio Llc | Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices |
FI126228B (fi) * | 2009-09-16 | 2016-08-31 | Varaani Works Oy | Menetelmä ja tallennuspalvelin tiedon varmentamiseen |
JP5139465B2 (ja) | 2010-03-31 | 2013-02-06 | 株式会社東芝 | メモリチップ、情報記憶システム、読み出し装置 |
WO2011159806A2 (en) * | 2010-06-15 | 2011-12-22 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
JP5605146B2 (ja) * | 2010-10-08 | 2014-10-15 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
US8762805B2 (en) * | 2010-12-01 | 2014-06-24 | International Business Machines Corporation | Decoding encoded data containing integrated data and header protection |
US10050645B2 (en) | 2014-01-30 | 2018-08-14 | Hewlett Packard Enterprise Development Lp | Joint encryption and error correction encoding |
US9697140B2 (en) | 2014-09-23 | 2017-07-04 | Intel Corporation | Encryption integrity check with CRC encryption in memory using a word count- and address-derived nonce |
US9558066B2 (en) * | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
KR20160075070A (ko) * | 2014-12-19 | 2016-06-29 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
US9524249B2 (en) | 2014-12-23 | 2016-12-20 | Intel Corporation | Memory encryption engine integration |
US10031861B2 (en) | 2015-09-25 | 2018-07-24 | Intel Corporation | Protect non-memory encryption engine (non-mee) metadata in trusted execution environment |
US20170286311A1 (en) * | 2016-04-01 | 2017-10-05 | Dale J. Juenemann | Repetitive address indirection in a memory |
US10270598B2 (en) | 2016-08-26 | 2019-04-23 | Intel Corporation | Secure elliptic curve cryptography instructions |
US10069597B2 (en) * | 2016-09-07 | 2018-09-04 | Western Digital Technologies, Inc. | Aggregated metadata transfer at a data storage device |
US10528485B2 (en) | 2016-09-30 | 2020-01-07 | Intel Corporation | Method and apparatus for sharing security metadata memory space |
US10684933B2 (en) * | 2016-11-28 | 2020-06-16 | Sap Se | Smart self-healing service for data analytics systems |
US10372625B2 (en) | 2016-12-27 | 2019-08-06 | Intel Corporation | Secure memory |
KR20180091296A (ko) * | 2017-02-06 | 2018-08-16 | 삼성전자주식회사 | 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10540297B2 (en) * | 2017-08-03 | 2020-01-21 | Arm Limited | Memory organization for security and reliability |
-
2018
- 2018-10-02 KR KR1020180117870A patent/KR102557993B1/ko active IP Right Grant
-
2019
- 2019-03-25 DE DE102019107503.3A patent/DE102019107503A1/de active Pending
- 2019-04-18 US US16/388,192 patent/US11231991B2/en active Active
- 2019-05-20 TW TW108117378A patent/TWI822783B/zh active
- 2019-06-10 CN CN201910495344.7A patent/CN110990186A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079217A1 (en) * | 2005-09-30 | 2007-04-05 | Haugan Rodger D | Method and apparatus for implementing error correction coding in a random access memory |
US7454592B1 (en) * | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
US20160314042A1 (en) * | 2015-04-27 | 2016-10-27 | Invensas Corporation | Preferred state encoding in non-volatile memories |
US20210314354A1 (en) * | 2016-08-15 | 2021-10-07 | RiskIQ, Inc. | Techniques for determining threat intelligence for network infrastructure analysis |
Also Published As
Publication number | Publication date |
---|---|
CN110990186A (zh) | 2020-04-10 |
KR20200038145A (ko) | 2020-04-10 |
DE102019107503A1 (de) | 2020-04-02 |
US11231991B2 (en) | 2022-01-25 |
US20200104208A1 (en) | 2020-04-02 |
KR102557993B1 (ko) | 2023-07-20 |
TW202015064A (zh) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI822783B (zh) | 包括具有改善記憶體使用效率的安全處理器的系統晶片與記憶體系統以及操作系統晶片的方法 | |
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
US7472285B2 (en) | Apparatus and method for memory encryption with reduced decryption latency | |
US9483664B2 (en) | Address dependent data encryption | |
US10896267B2 (en) | Input/output data encryption | |
US20190384939A1 (en) | Data Protection Device and Method and Storage Controller | |
US20190384938A1 (en) | Storage apparatus and method for address scrambling | |
CN112699383B (zh) | 数据密码设备、存储器系统及其操作方法 | |
KR102488636B1 (ko) | 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치 | |
US8908859B2 (en) | Cryptographic apparatus and memory system | |
US11481337B2 (en) | Securing data direct I/O for a secure accelerator interface | |
US20150301957A1 (en) | Secured memory system and method therefor | |
CN112887077B (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
WO2017112243A1 (en) | End-to-end protection scheme involving encrypted memory and storage | |
CN102289625A (zh) | 具有加密功能的存储芯片和防盗版方法 | |
CN102495980A (zh) | 一种可动态重构的可信密码模块 | |
US20210006391A1 (en) | Data processing method, circuit, terminal device and storage medium | |
US11886624B2 (en) | Crypto device, integrated circuit and computing device having the same, and writing method thereof | |
JP2007336446A (ja) | データ暗号化装置 | |
CN116011041A (zh) | 密钥管理方法、数据保护方法、系统、芯片及计算机设备 | |
US20230418478A1 (en) | Tweakable block cipher encryption using buffer identifier and memory address | |
US20160378997A1 (en) | Image forming apparatus, method for writing data thereof, and non-transitory computer readable recording medium | |
US20150215129A1 (en) | Data encryption of a storage area | |
JP2010021637A (ja) | データ処理装置 | |
TW202403773A (zh) | 半導體裝置及用以管理其之安全操作的系統與方法 |