TWI774183B - 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 - Google Patents
具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 Download PDFInfo
- Publication number
- TWI774183B TWI774183B TW110100872A TW110100872A TWI774183B TW I774183 B TWI774183 B TW I774183B TW 110100872 A TW110100872 A TW 110100872A TW 110100872 A TW110100872 A TW 110100872A TW I774183 B TWI774183 B TW I774183B
- Authority
- TW
- Taiwan
- Prior art keywords
- scrambled
- unit
- address
- memory
- level
- Prior art date
Links
Images
Classifications
-
- 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/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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
-
- 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
- Communication Control (AREA)
Abstract
一種具有位址打亂機制的記憶體存取裝置,包含位址打亂電路以及記憶體控制器。位址打亂電路配置以:接收原始存取位址,以依據記憶體中的複數區域單位層級轉譯為複數原始單位指標以及最小原始單位;以及根據亂數位址產生演算法對應產生複數打亂單位指標以及最小打亂單位,以根據打亂單位指標以及最小打亂單位產生打亂存取位址,其中當不同的原始存取位址,自最高的區塊單位層級起具有至少一相同的原始單位指標時,對應相同的原始單位指標所產生的打亂單位指標為相同。記憶體控制器配置以根據打亂存取位址存取記憶體。
Description
本發明是關於記憶體存取技術,尤其是關於一種具有位址打亂機制的記憶體存取裝置及其記憶體存取方法。
將記憶體的內容和定址進行打亂是保護記憶體內容以抵抗攻擊的常見方法。但是,由於序列傳輸介面(serial interface)的快閃記憶體的操作特性,無法直接採取應用於隨機存取記憶體(random access memory;RAM)與唯讀記憶體(read only memory;ROM)的打亂方式。如果直接套用一般記憶體打亂方式,會使得資料傳輸效能低落和資料維護困難。
鑑於先前技術的問題,本發明之一目的在於提供一種具有位址打亂(scrambling)機制的記憶體存取裝置及其記憶體存取方法,以改善先前技術。
本發明包含一種具有位址打亂機制的記憶體存取裝置,包含位址打亂電路以及記憶體控制器。位址打亂電路配置以:接收原始存取位址,以依據記憶體中的複數區域單位層級轉譯為複數原始單位指標(index)以及最小原始單位;以及根據亂數位址產生演算法對應產生複數打亂單位指標以及最小打亂單位,以根據打亂單位指標以及最小打亂單位產生打亂存取位址,其中當不同的原始存取位址,自最高的區塊單位層級起具有至少一相同的原始單位指標時,對應相同的原始單位指標所產生的打亂單位指標為相同。記憶體控制器配置以根據打亂存取位址存取記憶體。
本發明另包含一種具有位址打亂機制的記憶體存取方法,應用於記憶體存取裝置中,包含下列步驟。使位址打亂電路接收原始存取位址,以依據記憶體中的複數區域單位層級轉譯為複數原始單位指標以及最小原始單位;使位址打亂電路根據亂數位址產生演算法對應產生複數打亂單位指標以及最小打亂單位,以根據打亂單位指標以及最小打亂單位產生打亂存取位址,其中當不同的原始存取位址,自最高的區塊單位層級起具有至少一相同的原始單位指標時,對應相同的原始單位指標所產生的打亂單位指標為相同;以及使記憶體控制器根據打亂存取位址存取記憶體。
有關本案的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本發明之一目的在於提供一種具有位址打亂機制的記憶體存取裝置及其記憶體存取方法,使打亂的實體記憶體保有對應邏輯記憶體的位址連續性,同時達到位址打亂及連續記憶體的操作的目的。
請參照圖1。圖1顯示本發明之一實施例中,一種電腦系統100的方塊圖。電腦系統100包含處理器110、記憶體存取裝置120及記憶體130。
於一實施例中,處理器110、記憶體存取裝置120及記憶體130間具有匯流排(圖中未標示),以使此些元件間進行資料與指令的傳輸。在操作上,處理器110產生指令,並透過記憶體存取裝置120處理後,對記憶體130進行存取。於一實施例中,記憶體130為例如但不限於序列式(serial peripheral interface;SPI)快閃記憶體。
當所進行的存取操作為寫入操作時,處理器110將寫入資料WD及欲寫入的原始存取位址ADD傳送至記憶體存取裝置120進行處理。記憶體存取裝置120將對原始存取位址ADD進行打亂以產生打亂存取位址ADDS,並選擇性地對寫入資料WD進行打亂以產生打亂寫入資料WDS。進一步地,記憶體存取裝置120依據打亂存取位址ADDS,將打亂寫入資料WDS寫入記憶體130中儲存。
當所進行的存取為讀取操作時,處理器110將欲讀取的原始存取位址ADD傳送至記憶體存取裝置120進行處理。記憶體存取裝置120將對原始存取位址ADD進行打亂以產生打亂存取位址ADDS,並據以自記憶體130讀取打亂讀取資料RDS。進一步地,記憶體存取裝置120將打亂讀取資料RDS進行回復(unscrambling)以產生讀取資料RD,進而傳送至處理器110。
因此,在上述記憶體存取裝置120的處理過程中,原始存取位址ADD將做為邏輯存取位址供處理器110參考,而打亂存取位址ADDS則對應記憶體130的實體存取位址。原始存取位址ADD與打亂存取位址ADDS間是依據記憶體存取裝置120的位址打亂機制互相映射。
請參照圖2。圖2顯示本發明一實施例中,具有位址打亂機制的記憶體存取裝置120更詳細的方塊圖。記憶體存取裝置120包含位址打亂電路200、資料順序打亂電路210、資料順序回復電路220、資料內容打亂與回復電路230及記憶體控制器240。
位址打亂電路200自圖1的處理器110接收原始存取位址ADD,並進行打亂以產生打亂存取位址ADDS。
請同時參照圖3。圖3顯示本發明一實施例中,位址打亂電路200更詳細的方塊圖。於一實施例中,位址打亂電路200包含轉譯電路300、複數打亂電路310A~310E及組合電路320。
轉譯電路300接收原始存取位址ADD,並依據記憶體130中的複數區域單位層級,轉譯原始存取位址ADD為原始單位指標及最小原始單位。
於一實施例中,記憶體130中的區域單位層級自最高至最低包含區塊(block)層級、區段(sector)層級、分頁(page)層級、片段(section)層級及位移(offset)層級。原始單位指標將分別對應上述層級,包含原始區塊層級指標BLI、原始區段層級指標SRI、原始分頁層級指標PAI及原始片段層級指標SNI。而最小原始單位則對應於位移層級而為原始位移量OFF。
舉例而言,在一個數值範例中,記憶體130在區塊層級的單位大小為64千位元組(kbyte;KB),區段層級的單位大小為4千位元組,分頁層級的單位大小為256位元組,片段層級的單位大小為32位元組,位移層級的單位大小為1位元組。在這樣的狀況下,當一個16進制的原始存取位址ADD為0x28344時,轉譯電路300轉譯的原始區塊層級指標BLI為2,原始區段層級指標SRI為8,原始分頁層級指標PAI為3,原始片段層級指標SNI為4,原始位移量OFF為4。
須注意的是,實作上,記憶體130在各區塊層級的單位大小可視記憶體130的大小而有所不同,不為上述實施方式所限。
打亂電路310A~310E分別根據亂數位址產生演算法,依序對原始單位指標及最小原始單位進行打亂,以產生打亂單位指標及最小打亂單位。其中,打亂單位指標亦分別對應上述層級,包含打亂區塊層級指標BLIS、打亂區段層級指標SRIS、打亂分頁層級指標PAIS及打亂片段層級指標SNIS。而最小打亂單位則對應於位移層級而為打亂位移量OFFS。
亦即,打亂電路310A~310E依序分別接收原始區塊層級指標BLI、原始區段層級指標SRI、原始分頁層級指標PAI、原始片段層級指標SN及原始位移量OFF,以將各指標打亂產生對應的打亂區塊層級指標BLIS、打亂區段層級指標SRIS、打亂分頁層級指標PAIS、打亂片段層級指標SNIS及打亂位移量OFFS。
於一實施例中,打亂電路310A~310E的亂數位址產生演算法,是依據位址打亂金鑰AK。打亂電路310A~310E可在接收位址打亂金鑰AK後,依據內部的虛擬亂數產生器(圖中未繪示)產生打亂單位指標。於一實施例中,打亂單位指標不會超過原始單位指標中的最大值。
於另一實施例中,亂數位址產生演算法是依據已產生的其中之一打亂單位指標來產生亂數。打亂電路310A~310E可將所產生的打亂單位指標饋入下一個打亂電路,做為內部的虛擬亂數產生器產生打亂單位指標的依據。舉例而言,打亂電路310A可將產生的打亂區塊層級指標BLIS饋入打亂電路310B,打亂電路310B則將產生的打亂區段層級指標SRIS饋入打亂電路310C。以此類推,打亂電路310C~310E可進行相同的打亂單位指標產生與饋入,在此不再贅述。
須注意的是,上述的不同亂數位址產生演算法(例如:以金鑰打亂或依層級饋入)可擇一、同時採用或是再加入其他的機制,本發明並不為上述的實施方式所限。
組合電路320組合打亂單位指標及最小打亂單位,產生打亂存取位址ADDS。接著,圖2中的記憶體控制器240將根據打亂存取位址ADDS存取記憶體130。
於一實施例中,當不同的原始存取位址ADD,自最高的區塊單位層級起具有至少一相同的原始單位指標時,對應相同的原始單位指標所產生的打亂存取位址ADDS的打亂單位指標為相同。
請參照圖4。圖4顯示本發明一實施例中,以原始存取位址ADD進行參照的邏輯記憶體400及以打亂存取位址ADDS進行參照的實體記憶體410的示意圖。
邏輯記憶體400包含分別對應一個原始區塊層級指標BLI的多個區塊,各區塊包含分別對應一個原始區段層級指標SRI的多個區段,各區段包含分別對應一個原始分頁層級指標PAI的多個分頁,各分頁又包含分別對應一個原始片段層級指標SNI的多個片段。
在圖4中,範例性繪示出分別對應0及1的原始區塊層級指標BLI的區塊BLI
0及BLI
1,區塊BLI
0中分別對應0及1的原始區段層級指標SRI的區段SRI
0及SRI
1,區段SRI
0中分別對應0及1的原始分頁層級指標PAI的分頁PAI
0及PAI
1,以及分頁PAI
0中分別對應0及1的原始片段層級指標SNI的片段SNI
0及SNI
1。
實體記憶體410具有類似的架構。然而在經過打亂處理後,邏輯記憶體400的區塊BLI
0將對應至實體記憶體410中的區塊BLIS
x。亦即,只要原始存取位址ADD中的原始區塊層級指標BLI的值為0,在經過打亂處理後產生的打亂存取位址ADDS中對應的打亂區塊層級指標BLIS的值為x。
類似地,邏輯記憶體400的區塊BLI
0中的區段SRI
0對應至實體記憶體410中的區塊BLIS
x中的區段SRIS
y。亦即,只要原始存取位址ADD中的原始區塊層級指標BLI的值為0及原始區段層級指標SRI的值為0,在經過打亂處理後產生的打亂存取位址ADDS中的打亂區塊層級指標BLIS的值為x及打亂區段層級指標SRIS的值為y。
邏輯記憶體400的區塊BLI
0中的區段SRI
0中的分頁PAI
0對應至實體記憶體410中的區塊BLS
x中的區段SRIS
y中的分頁PAIS
z。亦即,只要原始存取位址ADD中的原始區塊層級指標BLI的值為0、原始區段層級指標SRI的值為0及原始分頁層級指標PAI的值為0,在經過打亂處理後產生的打亂存取位址ADDS中的打亂區塊層級指標BLIS的值為x、打亂區段層級指標SRIS的值為y及打亂分頁層級指標PAIS的值為z。
邏輯記憶體400的區塊BLI
0中的區段SRI
0中的分頁PAI
0中的片段SNI
0及片段SNI
1,亦可與實體記憶體410中的區塊BLS
x中的區段SRIS
y中的分頁PAIS
z中的片段SNIS
a及片段SNIS
b互為對應,在此不再贅述。
上述的位址打亂機制,可保有記憶體130中較大且連續的記憶體區域的連續性。更詳細地說,在圖4所示的實體記憶體410中的各記憶體區域,仍可與邏輯記憶體400中的各記憶體區域相對應。
在上述位址打亂電路200產生打亂存取位址ADDS後,圖2中的資料順序打亂電路210、資料順序回復電路220、資料內容打亂與回復電路230將進行資料順序的打亂及資料內容的打亂。以下將針對此些元件的運作進行更詳細的說明。
於一實施例中,處理器110可對記憶體130進行片段層級或是分頁層級的寫入操作。
當寫入操作對應於片段層級時,由於再低一層的位移層級的單位大小已對應於最小的記憶體區域單位,資料順序打亂電路210將被旁路以使寫入資料WD做為待寫入資料UWD。
進一步地,資料內容打亂與回復電路230將待寫入資料UWD根據亂數資料產生演算法產生打亂寫入資料WDS,並由記憶體控制器240依據打亂存取位址ADDS,將打亂寫入資料WDS寫入記憶體130中儲存。於一實施例中,資料內容打亂與回復電路230所進行的亂數資料產生演算法,是依據資料打亂金鑰DK及/或原始存取位址ADD來產生亂數。
為達到資料順序打亂的目的,當寫入操作所使用的原始存取位址ADD對應於分頁層級時,位址打亂電路200更根據原始存取位址ADD產生打亂順序表TAB1以及打亂順序表TAB2。更詳細地說,於一實施例中,打亂順序表TAB1對應於片段層級,並可由位址打亂金鑰AK以及打亂分頁層級指標PAIS產生。而打亂順序表TAB2對應於位移層級,並可由位址打亂金鑰AK以及打亂片段層級指標SNIS產生。
其中,打亂順序表TAB1紀錄一個分頁內的原始片段層級指標SNI被打亂後的位址排列順序。因此,原始片段層級指標SNI可根據打亂順序表TAB1轉換至打亂片段層級指標SNIS。另一方面,打亂順序表TAB2紀錄一個片段內的原始位移量OFF被打亂後的位址排列順序。因此,原始位移量OFF可根據打亂順序表TAB2轉換至打亂位移量OFFS。
相對的,其他層級如原始區塊層級指標BLI、原始區段層級指標SRI、原始分頁層級指標PAI,是由打亂電路310A、310B、310C直接轉換為打亂區塊層級指標BLIS、打亂區段層級指標SRIS、打亂分頁層級指標PAIS。
因此,資料順序打亂電路210根據打亂順序表TAB1以及打亂順序表TAB2對寫入資料WD進行資料順序打亂,以產生並傳送待寫入資料UWD至資料內容打亂與回復電路230進行後續的資料內容打亂。
於一實施例中,打亂順序表TAB1以及打亂順序表TAB2可儲存於記憶體存取裝置120中的暫存器(圖中未繪示),以由資料順序打亂電路210存取。並且,資料順序打亂電路210內亦可包含用以儲存寫入資料WD的快取記憶體(或暫存器)及用以對寫入資料WD進行處理的運算電路。
類似地,處理器110可對記憶體130進行片段層級或是分頁層級的讀取操作。
首先,資料內容打亂與回復電路230自記憶體130讀取打亂讀取資料RDS,並根據亂數資料產生演算法進行回復並產生待讀取資料URD。
當讀取操作對應於片段層級時,由於再低一層的位移層級的單位大小已對應於最小的記憶體區域單位,資料順序回復電路220將被旁路以使待讀取資料URD做為讀取資料RD。
為達到資料順序回復的目的,當讀取操作所使用的原始存取位址ADD對應於分頁層級時,位址打亂電路200更根據原始存取位址ADD產生打亂順序表TAB1以及打亂順序表TAB2。更詳細地說,於一實施例中,打亂順序表TAB1對應於片段層級,並可由位址打亂金鑰AK以及打亂分頁層級指標PAIS產生。而打亂順序表TAB2對應於位移層級,並可由位址打亂金鑰AK以及打亂片段層級指標SNIS產生。其中,打亂順序表TAB1以及打亂順序表TAB2所代表的意義已於先前段落描述過,在此不再贅述。
因此,資料順序回復電路220根據打亂順序表TAB1以及打亂順序表TAB2對待讀取資料URD進行資料順序回復,以產生並傳送讀取資料RD至處理器110。
類似地,於一實施例中,打亂順序表TAB1以及打亂順序表TAB2可儲存於記憶體存取裝置120中的暫存器,以由資料順序回復電路220存取。並且,資料順序回復電路220內亦可包含用以儲存待讀取資料URD的快取記憶體(或暫存器)及用以對待讀取資料URD進行處理的運算電路。
於一實施例中,對記憶體130所進行的存取除了寫入操作及讀取操作外,還包含清除(erase)操作。更詳細地說,記憶體控制器240更根據位址打亂電路200產生的打亂存取位址ADDS,對記憶體130中的記憶體區域進行清除操作。對於處理器110而言,透過打亂存取位址ADDS操作實體記憶體130,在邏輯上有較大且連續的記憶體區域,因此清除操作可對記憶體130中較大的區域,例如但不限於一個區段進行。
在部份技術中,位址打亂機制是完全隨機進行。然而由於被打亂的實體記憶體無法保有邏輯記憶體原有的連續性,將無法對記憶體130上較大且連續的記憶體區域進行操作。
藉由本發明的位址打亂機制,實體記憶體將可保有對應邏輯記憶體的位址連續性。因此,圖1中的處理器110可對記憶體130中較高區域單位層級(例如區塊、區段或分頁)的區域進行例如讀取、燒錄、清除或鎖定的處理,同時達到位址打亂及連續記憶體的操作的目的。
請參照圖5。圖5顯示本發明一實施例中,一種記憶體存取方法500的流程圖。
除前述裝置外,本發明另揭露一種記憶體存取方法500,應用於例如,但不限於圖1的記憶體存取裝置120中。記憶體存取方法500之一實施例如圖5所示,包含下列步驟。
於步驟S510:使位址打亂電路200接收原始存取位址ADD,以依據記憶體130中的複數區域單位層級轉譯為原始單位指標及最小原始單位,例如圖3所示的原始區塊層級指標BLI、原始區段層級指標SRI、原始分頁層級指標PAI、原始片段層級指標SNI及原始位移量OFF。
於步驟S520:使位址打亂電路200根據亂數位址產生演算法對應產生打亂單位指標及最小打亂單位,例如圖3所示的打亂區塊層級指標BLIS、打亂區段層級指標SRIS、打亂分頁層級指標PAIS、打亂片段層級指標SNIS及打亂位移量OFFS。位址打亂電路200根據打亂單位指標及最小打亂單位產生打亂存取位址ADDS,其中當不同的原始存取位址ADD,自最高的區塊單位層級起具有至少一相同的原始單位指標時,對應相同的原始單位指標所產生的打亂單位指標為相同。
於步驟S530:使記憶體控制器240根據打亂存取位址ADDS存取記憶體130。
需注意的是,上述的實施方式僅為一範例。於其他實施例中,本領域的通常知識者當可在不違背本發明的精神下進行更動。
綜合上述,本發明中具有位址打亂機制的記憶體存取裝置及其記憶體存取方法可使打亂的實體記憶體保有對應邏輯記憶體的位址連續性,同時達到位址打亂及連續記憶體的操作的目的。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100:電腦系統
110:處理器
120:記憶體存取裝置
130:記憶體
200:位址打亂電路
210:資料順序打亂電路
220:資料順序回復電路
230:資料內容打亂與回復電路
240:記憶體控制器
300:轉譯電路
310A~310E:打亂電路
320:組合電路
400:邏輯記憶體
410:實體記憶體
500:記憶體存取方法
S510~S530:步驟
ADD:原始存取位址
ADDS:打亂存取位址
AK:位址打亂金鑰
BLI:原始區塊層級指標
BLI
0、BLI
1、BLIS
x:區塊
BLIS:打亂區塊層級指標
DK:資料打亂金鑰
OFF:原始位移量
OFFS:打亂位移量
PAI:原始分頁層級指標
PAI
0、PAI
1、PAIS
z-1、PAIS
z、PAIS
z+1:分頁
PAIS:打亂分頁層級指標
RD:讀取資料
RDS:打亂讀取資料
SNI:原始片段層級指標
SNI
0、SNI
1、SNIS
a、SNIS
b:片段
SNIS打亂片段層級指標
SRI:原始區段層級指標
SRI
0、SRI
1、SRIS
y-1、SRIS
y、SRIS
y+1:區段
SRIS打亂區段層級指標
TAB1、TAB2:打亂順序表
URD:待讀取資料
UWD:待寫入資料
WD:寫入資料
WDS:打亂寫入資料
[圖1]顯示本發明之一實施例中,一種電腦系統的方塊圖;
[圖2]顯示本發明之一實施例中,具有位址打亂機制的記憶體存取裝置更詳細的方塊圖;
[圖3]顯示本發明之一實施例中,位址打亂電路更詳細的方塊圖;
[圖4]顯示本發明之一實施例中,以原始存取位址進行參照的邏輯記憶體以及以打亂存取位址進行參照的實體記憶體的示意圖;以及
[圖5]顯示本發明之一實施例中,一種記憶體存取方法的流程圖。
500:記憶體存取方法
S510~S530:步驟
Claims (10)
- 一種具有位址打亂(scrambling)機制的記憶體存取裝置,包含: 一位址打亂電路,配置以: 接收一原始存取位址,以依據一記憶體中的複數區域單位層級轉譯為複數原始單位指標(index)以及一最小原始單位;以及 根據一亂數位址產生演算法對應產生複數打亂單位指標以及一最小打亂單位,以根據該等打亂單位指標以及該最小打亂單位產生一打亂存取位址,其中當不同的該原始存取位址,自最高的該等區塊單位層級起具有至少一相同的該等原始單位指標時,對應相同的該等原始單位指標所產生的該等打亂單位指標為相同;以及 一記憶體控制器,配置以根據該打亂存取位址存取該記憶體。
- 如申請專利範圍第1項所述之記憶體存取裝置,其中該等區域單位層級自高至低包含一區塊(block)層級、一區段(sector)層級、一分頁(page)層級、一片段(section)層級以及一位移(offset)層級,其中該等原始單位指標以及該等打亂單位指標分別對應於該區塊層級、該區段層級、該分頁層級以及該片段層級,該最小原始單位以及該最小打亂單位對應於該位移層級。
- 如申請專利範圍第1項所述之記憶體存取裝置,其中該位址打亂電路包含: 一轉譯電路,配置以接收該原始存取位址並轉譯為該等原始單位指標以及該最小原始單位; 複數打亂電路,分別配置以根據該亂數位址產生演算法對該等原始單位指標以及該最小原始單位其中之一進行打亂,以產生該等打亂單位指標以及該最小打亂單位其中之一;以及 一組合電路,配置以組合該等打亂單位指標以及該最小打亂單位產生該打亂存取位址。
- 如申請專利範圍第3項所述之記憶體存取裝置,其中該亂數位址產生演算法是根據一位址打亂金鑰及/或已產生的其中之一該等打亂單位指標來產生亂數。
- 如申請專利範圍第1項所述之記憶體存取裝置,更包含: 一資料內容打亂與回復電路,配置以: 在進行一寫入操作時,將一待寫入資料根據一亂數資料產生演算法產生一打亂寫入資料後,由該記憶體控制器寫入該記憶體;以及 在進行一讀取操作時,由該記憶體控制器自該記憶體讀取一打亂讀取資料,以根據亂數資料產生演算法進行回復並產生一待讀取資料。
- 如申請專利範圍第5項所述之記憶體存取裝置,其中該位址打亂電路更配置以在該寫入操作及該讀取操作是對應該等區域單位層級中的一分頁層級進行時,根據該打亂存取位址產生二打亂順序表,其中該二打亂順序表分別配置以記錄該位址打亂電路對應於該等區域單位層級中的一片段層級以及一位移層級的一位址打亂排列順序,該記憶體存取裝置更包含: 一資料順序打亂電路,配置以根據該二打亂順序表對一寫入資料進行資料順序打亂,以產生並傳送該待寫入資料至該資料內容打亂與回復電路;以及 一資料順序回復電路,配置以根據該二打亂順序表對該待讀取資料進行資料順序回復,以產生一讀取資料。
- 如申請專利範圍第6項所述之記憶體存取裝置,其中當該寫入操作及該讀取操作對應該等區域單位層級中的該片段層級進行時,該資料順序打亂電路被旁路以使該寫入資料做為該待寫入資料,且該資料順序回復電路被旁路以使該待讀取資料做為該讀取資料。
- 如申請專利範圍第1項所述之記憶體存取裝置,其中該記憶體控制器更配置以根據該打亂存取位址清除(erase)該記憶體中的一記憶體區域。
- 如申請專利範圍第1項所述之記憶體存取裝置,其中該記憶體為一序列式快閃記憶體。
- 一種具有位址打亂機制的記憶體存取方法,應用於一記憶體存取裝置中,包含: 使一位址打亂電路接收一原始存取位址,以依據一記憶體中的複數區域單位層級轉譯為複數原始單位指標以及一最小原始單位; 使該位址打亂電路根據一亂數位址產生演算法對應產生複數打亂單位指標以及一最小打亂單位,以根據該等打亂單位指標以及該最小打亂單位產生一打亂存取位址,其中當不同的該原始存取位址,自最高的該等區塊單位層級起具有至少一相同的該等原始單位指標時,對應相同的該等原始單位指標所產生的該等打亂單位指標為相同;以及 使一記憶體控制器根據該打亂存取位址存取該記憶體。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110100872A TWI774183B (zh) | 2021-01-08 | 2021-01-08 | 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 |
US17/510,414 US11977747B2 (en) | 2021-01-08 | 2021-10-26 | Memory access apparatus and method having address scrambling mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110100872A TWI774183B (zh) | 2021-01-08 | 2021-01-08 | 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202227981A TW202227981A (zh) | 2022-07-16 |
TWI774183B true TWI774183B (zh) | 2022-08-11 |
Family
ID=82322801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100872A TWI774183B (zh) | 2021-01-08 | 2021-01-08 | 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11977747B2 (zh) |
TW (1) | TWI774183B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW515948B (en) * | 1999-12-20 | 2003-01-01 | Jian-Tsz Hou | Content securing method of non-volatile storage device and architecture thereof |
CN1131476C (zh) * | 1999-12-28 | 2003-12-17 | 后健慈 | 非挥发性储存装置内容保密方法与架构 |
CN101241758A (zh) * | 2007-01-04 | 2008-08-13 | 三星电子株式会社 | 使用搅乱地址数据的存储系统和方法 |
TW200901199A (en) * | 2007-02-28 | 2009-01-01 | Toshiba Kk | Memory controller and semiconductor device |
TW201530308A (zh) * | 2014-01-16 | 2015-08-01 | Storart Technology Co Ltd | 使用儲存裝置之嵌入式資料回寫法進行擾亂種預測的方法 |
TW201923592A (zh) * | 2017-11-20 | 2019-06-16 | 南韓商三星電子股份有限公司 | 資料管理方法、多處理器系統和非暫態計算機可讀儲存媒體 |
CN111221747A (zh) * | 2020-01-10 | 2020-06-02 | 深圳市德名利电子有限公司 | 一种随机种子保存的方法、装置、存储介质及计算机设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL187046A0 (en) | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Memory randomization for protection against side channel attacks |
US9959077B2 (en) | 2014-11-18 | 2018-05-01 | Tidal Systems, Inc. | Data randomization for flash memory |
FR3055734B1 (fr) * | 2016-09-05 | 2018-09-28 | STMicroelectronics (Grand Ouest) SAS | Procede et dispositif d'attenuation d'interferences electromagnetiques lors d'un transfert de donnees depuis ou vers une memoire. |
FR3058813A1 (fr) * | 2016-11-16 | 2018-05-18 | Stmicroelectronics (Rousset) Sas | Stockage dans une memoire non volatile |
US11487908B2 (en) * | 2019-08-16 | 2022-11-01 | Macronix International Co., Ltd. | Secure memory |
KR102496011B1 (ko) * | 2021-01-04 | 2023-02-06 | 서울시립대학교 산학협력단 | 코드 밀도를 조절하는 데이터 스크램블링 방법 |
-
2021
- 2021-01-08 TW TW110100872A patent/TWI774183B/zh active
- 2021-10-26 US US17/510,414 patent/US11977747B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW515948B (en) * | 1999-12-20 | 2003-01-01 | Jian-Tsz Hou | Content securing method of non-volatile storage device and architecture thereof |
CN1131476C (zh) * | 1999-12-28 | 2003-12-17 | 后健慈 | 非挥发性储存装置内容保密方法与架构 |
CN101241758A (zh) * | 2007-01-04 | 2008-08-13 | 三星电子株式会社 | 使用搅乱地址数据的存储系统和方法 |
TW200901199A (en) * | 2007-02-28 | 2009-01-01 | Toshiba Kk | Memory controller and semiconductor device |
TW201530308A (zh) * | 2014-01-16 | 2015-08-01 | Storart Technology Co Ltd | 使用儲存裝置之嵌入式資料回寫法進行擾亂種預測的方法 |
TW201923592A (zh) * | 2017-11-20 | 2019-06-16 | 南韓商三星電子股份有限公司 | 資料管理方法、多處理器系統和非暫態計算機可讀儲存媒體 |
CN111221747A (zh) * | 2020-01-10 | 2020-06-02 | 深圳市德名利电子有限公司 | 一种随机种子保存的方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US11977747B2 (en) | 2024-05-07 |
US20220221994A1 (en) | 2022-07-14 |
TW202227981A (zh) | 2022-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010310B2 (en) | Convolutional memory integrity | |
JP6292594B2 (ja) | 重複排除に基づくデータセキュリティ | |
KR101577886B1 (ko) | 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치 | |
US10642522B2 (en) | Method and system for in-line deduplication in a storage drive based on a non-collision hash | |
EP3716071B1 (en) | Combined secure message authentication codes (mac) and device correction using encrypted parity with multi-key domains | |
EP3745273A1 (en) | Probabilistic memory safety using cryptography | |
CN109144894B (zh) | 基于数据冗余的内存访问模式保护方法 | |
JP2006040091A (ja) | アドレス変換情報記憶装置およびアドレス変換情報記憶方法 | |
EP2619705A2 (en) | A tweakable encrypion mode for memory encryption with protection against replay attacks | |
US8464024B2 (en) | Virtual address hashing | |
TWI774183B (zh) | 具有位址打亂機制的記憶體存取裝置及其記憶體存取方法 | |
Lei et al. | SecNVM: An efficient and write-friendly metadata crash consistency scheme for secure NVM | |
CN109471809B (zh) | 一种芯片的flash加密保护方法、装置、flash控制器及芯片 | |
CN114764511A (zh) | 具有地址加扰机制的存储器存取装置及其存储器存取方法 | |
WO2011157160A2 (zh) | 一种数据地址编码的方法及装置 | |
CN112214805B (zh) | 基于混合dram-nvm内存的安全oram内存及其访问方法 | |
JP2008205753A (ja) | 信号処理装置 | |
CN113536331B (zh) | 存储器和计算系统的数据安全 | |
TWI776028B (zh) | 快閃記憶體管理方法及快閃記憶體 | |
CN115994848A (zh) | 信息处理方法、装置、设备及存储介质 |