用于填充存儲器的方法及裝置制造方法
【專利摘要】本發(fā)明涉及一種用于填充存儲器的方法及裝置。用于填充存儲器的裝置包括:地址生成模塊,用于生成地址并將地址發(fā)送給存儲器的地址總線;數(shù)據(jù)生成模塊,用于接收第一數(shù)據(jù),對第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將第二數(shù)據(jù)發(fā)送給存儲器的數(shù)據(jù)總線;控制信號生成模塊,用于生成寫控制信號,以便存儲器根據(jù)寫控制信號將第二數(shù)據(jù)寫入地址生成模塊生成的地址;控制模塊,用于控制地址生成模塊、數(shù)據(jù)生成模塊和控制信號生成模塊的工作;其中,裝置的工作狀態(tài)包括第一工作狀態(tài)和第二工作狀態(tài),在第一工作狀態(tài)中,第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在第二工作狀態(tài)中,第一數(shù)據(jù)為反饋回來的第二數(shù)據(jù)。本發(fā)明可以保護存儲器中曾經(jīng)保存過的數(shù)據(jù)。
【專利說明】用于填充存儲器的方法及裝置
【技術領域】
[0001] 本發(fā)明涉及存儲器領域,尤其涉及一種用于填充存儲器的方法及裝置。
【背景技術】
[0002] 在有關安全領域的集成電路芯片工作過程中,存儲器中存有重要的安全數(shù)據(jù),例 如加解密過程的密鑰,因此存儲器便成為了安全芯片攻擊者的重要攻擊目標。
[0003] 攻擊者在攻擊存儲器時可能利用的一個威脅是存儲器的數(shù)據(jù)保持能力,即易失性 存儲器在掉電后保存信息的能力,例如:保存在靜態(tài)隨機存儲器(Static Random Access Memory,簡稱:SRAM)里的密鑰可以在較長時間后的下次上電時恢復。另外一種可能攻擊存 儲器的技術是使用低溫來"冰凍"存儲器的內(nèi)容,例如:在低溫條件下,掉電后的SRAM中的 信息可以保存足夠長的時間,攻擊者可以訪問存儲器芯片并讀出其內(nèi)容。因此,如何保護存 儲器中曾經(jīng)保存過的數(shù)據(jù)成為亟待解決的技術問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種用于填充存儲器的方法及裝置,用以實現(xiàn)保護存儲器中曾經(jīng)保存 過的數(shù)據(jù)。
[0005] 本發(fā)明提供一種用于填充存儲器的裝置,包括:
[0006] 地址生成模塊,用于生成地址并將所述地址發(fā)送給所述存儲器的地址總線;
[0007] 數(shù)據(jù)生成模塊,用于接收第一數(shù)據(jù),對所述第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將 所述第二數(shù)據(jù)發(fā)送給所述存儲器的數(shù)據(jù)總線;
[0008] 控制信號生成模塊,用于生成寫控制信號,以便所述存儲器根據(jù)所述寫控制信號 將所述第二數(shù)據(jù)寫入所述地址;
[0009] 控制模塊,用于控制所述地址生成模塊、所述數(shù)據(jù)生成模塊和所述控制信號生成 模塊的工作;
[0010] 其中,所述裝置的工作狀態(tài)包括第一工作狀態(tài)和第二工作狀態(tài),在所述第一工作 狀態(tài)中,所述第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在所述第二工作狀態(tài)中,所述第一數(shù)據(jù)為反 饋回來的第二數(shù)據(jù)。
[0011] 本發(fā)明還提供一種用于填充存儲器的方法,包括:
[0012] 生成地址并將所述地址發(fā)送給所述存儲器的地址總線;
[0013] 接收第一數(shù)據(jù),對所述第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將所述第二數(shù)據(jù)發(fā)送給 所述存儲器的數(shù)據(jù)總線;
[0014] 生成寫控制信號,以便所述存儲器根據(jù)所述寫控制信號將所述第二數(shù)據(jù)寫入所述 地址;
[0015] 其中,所述方法的工作過程包括第一工作過程和第二工作過程,在所述第一工作 過程中,所述第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在所述第二工作過程中,所述第一數(shù)據(jù)為反 饋回來的第二數(shù)據(jù)。
[0016] 本發(fā)明在首次執(zhí)行填充存儲器的填充操作時,數(shù)據(jù)生成模塊接收外部的初始數(shù)據(jù) 得到第二數(shù)據(jù)并發(fā)送給數(shù)據(jù)總線,以便采用該第二數(shù)據(jù)填充存儲器,在后續(xù)的執(zhí)行對存儲 器填充操作時,數(shù)據(jù)生成模塊根據(jù)反饋回來的第二數(shù)據(jù)生成新的第二數(shù)據(jù)并發(fā)送給數(shù)據(jù)總 線,以便采用該新的第二數(shù)據(jù)填充存儲器,這樣每次填充存儲器采用的數(shù)據(jù)均與上次不同, 可以實現(xiàn)掩蓋存儲器中曾經(jīng)保存過的數(shù)據(jù)的痕跡,同時可以避免在工作過程中一直從外部 獲取初始數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0017] 圖1為本發(fā)明的用于填充存儲器的裝置第一實施例的結(jié)構示意圖;
[0018] 圖2為本發(fā)明的用于填充存儲器的裝置第一實施例的一個具體實例的結(jié)構示意 圖;
[0019] 圖3為本發(fā)明的用于填充存儲器的裝置第二實施例的結(jié)構示意圖;
[0020] 圖4為本發(fā)明的用于填充存儲器的裝置第二實施例的一個具體實例的結(jié)構示意 圖。
【具體實施方式】
[0021] 下面結(jié)合說明書附圖和【具體實施方式】對本發(fā)明作進一步的描述。
[0022] 如圖1所示,為本發(fā)明的用于填充存儲器的裝置第一實施例的結(jié)構示意圖,該裝 置可以包括:地址生成模塊11、數(shù)據(jù)生成模塊12、存儲器控制信號生成模塊13和控制模塊 14,控制模塊14分別與地址生成模塊11、數(shù)據(jù)生成模塊12、存儲器控制信號生成模塊13相 連。
[0023] 在本實施例中,地址生成模塊11用于生成地址并將地址發(fā)送給存儲器的地址總 線,可選地,所產(chǎn)生的地址可以覆蓋存儲器的全部或部分地址空間。數(shù)據(jù)生成模塊12用于 接收第一數(shù)據(jù),對第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將第二數(shù)據(jù)發(fā)送給所述存儲器的數(shù)據(jù) 總線。控制信號生成模塊13用于生成寫控制信號,以便存儲器根據(jù)寫控制信號將第二數(shù)據(jù) 寫入地址生成模塊11生成的地址??刂颇K14用于控制地址生成模塊11、數(shù)據(jù)生成模塊 12和控制信號生成模塊13的工作,例如,告知地址生成模塊11需要產(chǎn)生的地址的范圍,告 知控制信號生成模塊13需要產(chǎn)生的控制信號的時序。
[0024] 在本實施例中,裝置的工作狀態(tài)包括第一工作狀態(tài)和第二工作狀態(tài),在第一工作 狀態(tài)中,第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在第二工作狀態(tài)中,第一數(shù)據(jù)為反饋回來的第二 數(shù)據(jù)。
[0025] 該實施例的具體工作過程如下:在控制模塊14的控制下,地址生成模塊11生成地 址并將該地址發(fā)送給存儲器的地址總線;數(shù)據(jù)生成模塊12接收第一數(shù)據(jù),對第一數(shù)據(jù)進行 處理,生成第二數(shù)據(jù),將第二數(shù)據(jù)發(fā)送給存儲器的數(shù)據(jù)總線;控制信號生成模塊13生成寫 控制信號,以便存儲器根據(jù)寫控制信號將第二數(shù)據(jù)寫入地址生成模塊11生成的地址。該裝 置的工作過程可以包括第一工作過程和第二工作過程,在第一工作過程中,第一數(shù)據(jù)為外 部輸入的初始數(shù)據(jù),在第二工作過程中,第一數(shù)據(jù)為反饋回來的第二數(shù)據(jù)。當進入第一工作 過程時,該裝置處于第一工作狀態(tài),當進入第二工作過程時,該裝置處于第二工作狀態(tài)。
[0026] 在本實施例中,該裝置開始填充存儲器時,在控制模塊14的控制下,該裝置進入 第一工作狀態(tài),在后續(xù)填充存儲器的過程中,該裝置進入第二工作狀態(tài)。
[0027] 本實施例在首次執(zhí)行填充存儲器的填充操作時,數(shù)據(jù)生成模塊12接收外部的初 始數(shù)據(jù)得到第二數(shù)據(jù)并發(fā)送給數(shù)據(jù)總線,以便采用該第二數(shù)據(jù)填充存儲器,在后續(xù)的執(zhí)行 對存儲器填充操作時,數(shù)據(jù)生成模塊12根據(jù)反饋回來的第二數(shù)據(jù)生成新的第二數(shù)據(jù)并發(fā) 送給數(shù)據(jù)總線,以便采用該新的第二數(shù)據(jù)填充存儲器,這樣每次填充存儲器采用的數(shù)據(jù)均 與上次不同,可以實現(xiàn)掩蓋存儲器中曾經(jīng)保存過的數(shù)據(jù)的痕跡,同時可以避免在工作過程 中一直從外部獲取初始數(shù)據(jù)。
[0028] 可選地,在本實施例中,在該裝置填充存儲器的過程中,在控制模塊14控制下,該 裝置隨機地進入第一工作狀態(tài),相應地,該裝置的工作過程隨機地進入第一工作過程,從而 隨機地獲取幾次初始數(shù)據(jù),然后再進入內(nèi)部循環(huán)狀態(tài),可以增加第二數(shù)據(jù)的復雜多樣性,更 好的保護存儲器中曾存儲的數(shù)據(jù)。
[0029] 可選地,數(shù)據(jù)生成模塊12的外部輸入的初始數(shù)據(jù)可以是隨機數(shù),優(yōu)選地,該隨機 數(shù)為由真隨機數(shù)發(fā)生器產(chǎn)生的真隨機數(shù),從而實現(xiàn)更好地掩蓋存儲器中曾經(jīng)保存過的數(shù)據(jù) 的痕跡。由于真隨機數(shù)發(fā)生器的復雜度較高、產(chǎn)生隨機數(shù)的速度較慢,難以滿足數(shù)據(jù)生成模 塊12在工作過程中一直從外部獲取初始值,因此數(shù)據(jù)生成模塊12在開始工作時獲取一次 初始值,然后進入內(nèi)部循環(huán)狀態(tài),從而可以降低對真隨機數(shù)發(fā)生器產(chǎn)生隨機數(shù)的速度的要 求,實現(xiàn)快速有效地覆蓋存儲器中的原有數(shù)據(jù)。
[0030] 可選地,在本實施例中,數(shù)據(jù)生成模塊12可以用于對第一數(shù)據(jù)進行循環(huán)冗余校驗 (Cyclic Redundancy Check,簡稱:CRC)計算,生成第二數(shù)據(jù)。
[0031] 可選地,CRC計算電路可以使用串行方式的CRC計算電路,也可以使用并行方式的 CRC計算電路。并行方式的對硬件的要求比較高,處理速度較快;串行方式的對硬件系統(tǒng)的 要求比較低,但是處理速度較慢。
[0032] 可選地,CRC計算電路在一個周期內(nèi)產(chǎn)生的CRC計算結(jié)果的數(shù)據(jù)寬度可以小于存 儲器數(shù)據(jù)總線的寬度。此時,可以使用多個周期的CRC計算結(jié)果來填充一個存儲器地址空 間的數(shù)據(jù)。
[0033] 可選地,數(shù)據(jù)生成模塊12中的CRC計算電路在一個周期內(nèi)產(chǎn)生的CRC計算結(jié)果的 數(shù)據(jù)寬度可以等于存儲器數(shù)據(jù)總線的寬度。此時,可以直接用CRC計算結(jié)果來填充一個存 儲器地址空間的數(shù)據(jù)。
[0034] 可選地,數(shù)據(jù)生成模塊12中的CRC計算電路在一個周期內(nèi)產(chǎn)生的CRC計算結(jié)果的 數(shù)據(jù)寬度可以大于存儲器數(shù)據(jù)總線的寬度。此時,可以截取部分CRC計算結(jié)果來填充一個 存儲器地址空間的數(shù)據(jù)。
[0035] 下面通過具體實例對本實施例進行說明。
[0036] 如圖2所示,為本發(fā)明的用于填充存儲器的裝置第一實施例的一個具體實例的結(jié) 構示意圖,假設數(shù)據(jù)生成模塊12具體為8位并行CRC計算電路模塊22,其在初始狀態(tài)接收 外部的初始隨機值,8位并行CRC計算電路模塊22接收控制模塊14的控制信號,產(chǎn)生發(fā)送 給存儲器數(shù)據(jù)總線的寬度為8位的第二數(shù)據(jù)D [7:0],同時將第二數(shù)據(jù)D [7:0]反饋給8位并 行CRC計算電路22,作為新的輸入數(shù)據(jù)。地址生成模塊11接收控制模塊14的控制信號, 順序地產(chǎn)生發(fā)送給存儲器地址總線的地址A[10:0],該地址寬度為11位。控制信號生成模 塊13接收控制模塊14的控制信號,產(chǎn)生發(fā)送給存儲器的控制接口的符合存儲器寫時序的 寫控制信號wr和存儲器片選信號cs。
[0037] 如圖3所示,為本發(fā)明用于填充存儲器的裝置第二實施例的結(jié)構示意圖,與上一 實施例的不同之處在于,在圖2所示的結(jié)構示意圖的基礎上,增加了邏輯運算模塊35,邏輯 運算模塊35的兩個輸入分別與地址生成模塊11和數(shù)據(jù)生成模塊12相連,邏輯運算模塊35 的輸出端與數(shù)據(jù)生成模塊12相連。
[0038] 在本實施例中,邏輯運算模塊35用于當該裝置處于第二工作狀態(tài)時,對地址和反 饋回來的第二數(shù)據(jù)進行邏輯運算,將邏輯運算結(jié)果作為第一數(shù)據(jù)發(fā)送給數(shù)據(jù)生成模塊12, 從而將地址生成模塊11產(chǎn)生的地址以邏輯運算的方式引入到數(shù)據(jù)生成模塊12的反饋回路 中
[0039] 該實施例的具體工作過程如下:在控制模塊14的控制下,地址生成模塊11生成地 址并發(fā)送給存儲器的地址總線,同時將地址發(fā)送給邏輯運算模塊35作為邏輯運算模塊35 的一路輸入數(shù)據(jù)。數(shù)據(jù)生成模塊12接收第一數(shù)據(jù),對第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將 第二數(shù)據(jù)發(fā)送給存儲器的數(shù)據(jù)總線,同時將第二數(shù)據(jù)反饋給邏輯運算模塊35作為邏輯運 算模塊35的另一路輸入數(shù)據(jù)。在該裝置進入第二工作狀態(tài)時,邏輯運算模塊35對兩路輸 入數(shù)據(jù)進行邏輯運算,將邏輯運算結(jié)果作為第一數(shù)據(jù)送入數(shù)據(jù)生成模塊12。控制信號生成 模塊13產(chǎn)生寫控制信號,以便存儲器根據(jù)該寫控制信號將第二數(shù)據(jù)寫入想要寫入的地址, 這樣,采用第二數(shù)據(jù)填充存儲器,就可以覆蓋存儲器中曾經(jīng)保存過的數(shù)據(jù),從而保護存儲器 中曾經(jīng)保存過的數(shù)據(jù)。
[0040] 可選地,當工作過程進入第二工作過程中時,邏輯運算模塊35對地址和反饋回來 的第二數(shù)據(jù)進行邏輯運算,將邏輯運算結(jié)果作為第一數(shù)據(jù)。
[0041] 本實施例中增加邏輯運算模塊35,將地址生成模塊11生成的地址與數(shù)據(jù)生成模 塊12生成的數(shù)據(jù)進行邏輯運算,得到的邏輯運算結(jié)果作為第一數(shù)據(jù)送入數(shù)據(jù)生成模塊12, 增加了數(shù)據(jù)生成模塊12生成的第二數(shù)據(jù)的復雜性,更好地掩蓋了存儲器中原有的數(shù)據(jù),從 而使得存儲器中的數(shù)據(jù)得到更好地保護。
[0042] 下面通過具體實例對本發(fā)明中第二實施例進行說明。如圖4所示,為本發(fā)明的用 于填充存儲器的裝置第二實施例的一個具體實例的結(jié)構示意圖,假設數(shù)據(jù)生成模塊12具 體為10位并行CRC計算電路模塊42,邏輯運算模塊35具體為異或(exclusive 0R,簡稱: X0R)模塊45,在初始狀態(tài)接收外部的初始數(shù)據(jù),10位并行CRC計算電路模塊42接收控制 模塊14的控制信號,使用10位并行CRC計算電路產(chǎn)生CRC結(jié)果C [9:0],其數(shù)據(jù)寬度為10 位,其中低8位C[7:0]作為第二數(shù)據(jù)D[7:0]發(fā)送給存儲器的數(shù)據(jù)總線,同時將C[9:0]反 饋給X0R模塊45作為X0R模塊45操作的一路輸入數(shù)據(jù)。地址生成模塊11接收控制模塊 14的控制信號,順序地產(chǎn)生發(fā)送給存儲器地址總線的地址A[10:0],該地址寬度為11位,并 且,地址生成模塊11產(chǎn)生的11位地址A[10:0]中的低10位,即A[9:0]作為X0R模塊45 的另一路輸入數(shù)據(jù)。A[9:0]與C[9:0]在X0R模塊45中進行X0R操作,X0R操作的結(jié)果送 給CRC計算電路模塊42,作為新的第一數(shù)據(jù)。控制信號生成模塊13接收控制模塊14的控 制信號,產(chǎn)生發(fā)送給存儲器的控制接口的符合存儲器寫時序的寫控制信號wr和存儲器片 選信號cs,以便根據(jù)該寫控制信號將第二數(shù)據(jù)填充到存儲器中。
[0043] 可選地,再參見圖4所示示意圖,異或操作X0R可以替換成其他兩輸入的邏輯運算 操作,例如加法操作、減法操作等等。
[0044] 最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照 較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的 技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
【權利要求】
1. 一種用于填充存儲器的裝置,其特征在于,包括: 地址生成模塊,用于生成地址并將所述地址發(fā)送給所述存儲器的地址總線; 數(shù)據(jù)生成模塊,用于接收第一數(shù)據(jù),對所述第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將所述 第二數(shù)據(jù)發(fā)送給所述存儲器的數(shù)據(jù)總線; 控制信號生成模塊,用于生成寫控制信號,以便所述存儲器根據(jù)所述寫控制信號將所 述第二數(shù)據(jù)寫入所述地址; 控制模塊,用于控制所述地址生成模塊、所述數(shù)據(jù)生成模塊和所述控制信號生成模塊 的工作; 其中,所述裝置的工作狀態(tài)包括第一工作狀態(tài)和第二工作狀態(tài),在所述第一工作狀態(tài) 中,所述第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在所述第二工作狀態(tài)中,所述第一數(shù)據(jù)為反饋回 來的第二數(shù)據(jù)。
2. 根據(jù)權利要求1所述的裝置,其特征在于,還包括: 邏輯運算模塊,用于當所述裝置處于第二工作狀態(tài)時,對所述地址和所述反饋回來的 第二數(shù)據(jù)進行邏輯運算,將邏輯運算結(jié)果作為所述第一數(shù)據(jù)發(fā)送給所述數(shù)據(jù)生成模塊。
3. 根據(jù)權利要求1或2所述的裝置,其特征在于,所述數(shù)據(jù)生成模塊用于對所述第一數(shù) 據(jù)進行循環(huán)冗余校驗CRC計算,生成所述第二數(shù)據(jù)。
4. 根據(jù)權利要求1或2所述的裝置,其特征在于,在所述裝置開始工作時,在所述控制 模塊的控制下,所述裝置進入所述第一工作狀態(tài)。
5. 根據(jù)權利要求4所述的裝置,其特征在于,在所述裝置的工作過程中,在所述控制模 塊的控制下,所述裝置隨機地進入所述第一工作狀態(tài)。
6. -種用于填充存儲器的方法,其特征在于,包括: 生成地址并將所述地址發(fā)送給所述存儲器的地址總線; 接收第一數(shù)據(jù),對所述第一數(shù)據(jù)進行處理,生成第二數(shù)據(jù),將所述第二數(shù)據(jù)發(fā)送給所述 存儲器的數(shù)據(jù)總線; 生成寫控制信號,以便所述存儲器根據(jù)所述寫控制信號將所述第二數(shù)據(jù)寫入所述地 址; 其中,所述方法的工作過程包括第一工作過程和第二工作過程,在所述第一工作過程 中,所述第一數(shù)據(jù)為外部輸入的初始數(shù)據(jù),在所述第二工作過程中,所述第一數(shù)據(jù)為反饋回 來的第二數(shù)據(jù)。
7. 根據(jù)權利要求6所述的方法,其特征在于,還包括: 當所述方法進入第二工作過程時,對所述地址和所述反饋回來的第二數(shù)據(jù)進行邏輯運 算,將邏輯運算結(jié)果作為所述第一數(shù)據(jù)。
8. 根據(jù)權利要求6或7所述的方法,其特征在于,所述對所述第一數(shù)據(jù)進行處理生成第 二數(shù)據(jù)具體為: 對所述第一數(shù)據(jù)進行循環(huán)冗余校驗CRC計算,生成所述第二數(shù)據(jù)。
9. 根據(jù)權利要求6或7所述的方法,其特征在于,在開始填充所述存儲器時,所述方法 進入所述第一工作過程。
10. 根據(jù)權利要求9所述的方法,其特征在于,在填充所述存儲器的過程中,所述方法 隨機地進入所述第一工作過程。
【文檔編號】G06F3/06GK104111901SQ201410385236
【公開日】2014年10月22日 申請日期:2014年8月7日 優(yōu)先權日:2014年8月7日
【發(fā)明者】譚洪賀, 劉忠志, 姜勇, 王曉軒 申請人:昆騰微電子股份有限公司