專利名稱:可編程片上存儲器接口的nor閃存讀取加速控制的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種電子工程技術(shù)領(lǐng)域存儲器接口的控制方法,具體是一種 可編程片上存儲器接口的NOR閃存讀取加速控制的方法。
技術(shù)背景NOR (或非)閃存存儲器在系統(tǒng)級芯片及手持移動設(shè)備中得到了廣泛的應(yīng)用。 但是NOR閃存所需的讀取時間相對于系統(tǒng)級芯片及手持移動設(shè)備的時鐘頻率仍 過于緩慢。以前對于NOR閃存讀取加速的研究很多,諸如歷史緩沖區(qū)、預(yù)讀取、 多塊閃存并行讀取機(jī)制等,從硬件角度來分析,不斷地提高其讀取速度,但是對 于NOR閃存讀取加速的研究多數(shù)對速度的提升有限或代價過大,而從軟硬件協(xié)同 設(shè)計的角度研究提高NOR閃存的不多,而隨著多媒體技術(shù)及圖像處理的應(yīng)用,這 部分的研究越來越重要,它直接決定了指令的執(zhí)行速度。經(jīng)對現(xiàn)有技術(shù)文獻(xiàn)的檢索發(fā)現(xiàn),Oren Avissar等在《ACM Transactions on Embedded Computing Systems》(美國計算機(jī)協(xié)會嵌入式計算系統(tǒng)匯刊)2002年, 第1期第6_26頁發(fā)表的"An Optimal Memory Allocation Scheme for Scratch-Pad-Based Embedded Systems"(—種基于嵌入式片上存儲器的優(yōu)化 存儲分配機(jī)制)中針對片上存儲器提出了一種選擇元素放入片上存儲器的分配策 略,使用固定大小的片上存儲器,通過分配策略選取數(shù)據(jù)放入高速片上存儲器, 從而達(dá)到提高讀取速度的目的。但是,該方法的不足之處在于片上存儲器需要相 對復(fù)雜分配策略來選取合適數(shù)據(jù),這一定程度上增加了軟硬件協(xié)同設(shè)計中軟件部 分的任務(wù)量,對于不同的應(yīng)用程序,需要不同的分配策略,降低了設(shè)計的易用性, 這在實際應(yīng)用中是不能接受的。發(fā)明內(nèi)容本發(fā)明針對現(xiàn)有技術(shù)中的不足,提供一種可編程片上存儲器接口的NOR閃存 讀取加速控制的方法,使其在執(zhí)行存儲在NOR閃存中的嵌入式應(yīng)用程序時,為了 消除因讀取NOR閃存而增加的時鐘周期,利用可編程片上存儲器,通過分析需加速執(zhí)行的目標(biāo)程序及特定的加速要求,進(jìn)而通過硬件編程選擇合適片上存儲器與 NOR閃存的接口,將與接口對應(yīng)的NOR閃存的數(shù)據(jù)放入片上存儲器,減少讀取NOR 閃存的次數(shù),明顯提高了執(zhí)行效率。本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,本發(fā)明具體如下首先,在NOR閃存所需執(zhí)行的目標(biāo)程序指令中,根據(jù)目標(biāo)程序在NOR閃存中 的地址空間情況對NOR閃存與片上存儲器的接口進(jìn)行配置;如果目標(biāo)程序的指令集中位于NOR閃存的地址空間時,通過硬件接口編程將 待加速地址空間與片上存儲器相對應(yīng);如果目標(biāo)程序的指令分散于NOR閃存中的地址空間時,則將這些分散的待加 速地址空間通過硬件接口編程與片上存儲器上不同的地址空間相對應(yīng)。然后,在第一次執(zhí)行目標(biāo)程序時,讀取NOR閃存中的目標(biāo)程序指令,同時把 讀取的指令通過接口傳入片上存儲器;在隨后執(zhí)行目標(biāo)程序的過程中,系統(tǒng)直接 讀取片上存儲器中的目標(biāo)程序指令執(zhí)行,而不需要讀取NOR閃存中的目標(biāo)程序指 令,而系統(tǒng)在執(zhí)行其他指令時,依然讀取NOR閃存中的指令執(zhí)行。所述目標(biāo)程序,是指嵌入式系統(tǒng)所執(zhí)行的應(yīng)用程序,該應(yīng)用程序在系統(tǒng)運 行的過程中需要多次重復(fù)使用,因此需要加速該程序的執(zhí)行過程,以提高系統(tǒng)執(zhí) 行效率。所述NOR閃存,是指用于存儲指令的非易失性存儲器,負(fù)責(zé)存儲嵌入式系 統(tǒng)執(zhí)行的所有指令,包括目標(biāo)程序的指令,NOR閃存的數(shù)據(jù)讀取速度一般較慢, 讀取一條指令一般需要4個系統(tǒng)時鐘周期。所述片上存儲器,是指用于加速目標(biāo)程序的高速片上存儲器,其讀取一條指 令只需要1個系統(tǒng)時鐘周期,片上存儲器的存儲空間小于NOR閃存。所述地址空間,是指目標(biāo)程序指令在NOR閃存中所有地址范圍的集合。所述待加速地址空間,是指目標(biāo)程序在NOR閃存中的地址空間。地址空間 可以是集中位于NOR閃存的某部分地址空間,也可以是一組分散在NOR閃存的地 址空間中。所述硬件接口編程,對于集中位于NOR閃存中的待加速地址空間,具體為 把待加速地址空間的起始地址Al對應(yīng)于片上存儲器的起始地址0地址,待加速 地址空間的其他地址通過其與起始地址的偏差對應(yīng)到片上存儲器,在編程時,將待加速地址空間的起始地址Al及待加速地址空間的長度Ll存儲,通過這2個數(shù) 據(jù)進(jìn)行接口對應(yīng),在讀取NOR閃存中的指令時,如果這個指令的地址AS在待加 速地址空間之中,即A1《AS《A1+L-1,即表明該指令的地址通過硬件接口編程 對應(yīng)于片上存儲器的地址BS, BS=0+AS-A1;所述硬件接口編程,對于一組分散在NOR閃存中的待加速地址空間,具體為 把每個待加速地址空間的起始地址對應(yīng)于當(dāng)前未被對應(yīng)的片上存儲器的起始地 址,待加速地址空間的其他地址通過其與起始地址的偏差對應(yīng)到片上存儲器,在 編程時,首先將待加速地址空間從1到N編號,N為分散在NOR閃存中的待加速 地址空間數(shù)量,再將每個待加速地址空間的起始地址Ai及待加速地址空間的長 度Li存儲,1《i《N,通過這2N個數(shù)據(jù)進(jìn)行接口對應(yīng),在讀取N0R閃存中的指 令時,如果這個指令的地址AS在某個待加速地址空間之中,即Ax《AS《Ax+Lx-l, 1《x《N,表明該指令的地址通過硬件接口編程對應(yīng)于片上存儲器的地址BS, BS=0+Ll+L2+...+bcx+AS-Ax, xx=x-l 。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明不但引入了片上存儲器 加速的機(jī)制,提高了讀取速度,而且通過硬件接口編程,避免了復(fù)雜的軟件分配 策略的使用,同時可靈活支持不同大小的片上存儲器。本發(fā)明沒有兼容性問題, 應(yīng)用程序無需針對本發(fā)明做任何修改即可使用。本發(fā)明的應(yīng)用程序執(zhí)行中可以最 多減少75%的指令讀取時間。
圖1為可編程片上存儲器接口 N0R閃存讀取加速數(shù)據(jù)流向圖;圖2為硬件接口編程示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的實施例作詳細(xì)說明本實施例在以本發(fā)明技術(shù)方案 為前提下進(jìn)行實施,給出了詳細(xì)的實施方式和具體的操作過程,但本發(fā)明的保護(hù) 范圍不限于下述的實施例。本實施例中以基于NOR閃存執(zhí)行的高級加密標(biāo)準(zhǔn)(AES)加密解密加速執(zhí)行 中的應(yīng)用為例。AES加密包含一個常用的S變換操作,該操作需要1024個字節(jié)的地址空間 用于存放常量數(shù)據(jù);AES解密包含一個常用的S反變換操作,該操作同樣需要1024個字節(jié)的地址空間用于存放常量數(shù)據(jù)。每個S變換操作根據(jù)加密數(shù)據(jù)的不同需要 在1024個字節(jié)的S變換常量空間中讀取16個常量數(shù)據(jù),每次AES加密至少需要 48個S變換操作;每個S反變換操作根據(jù)解密數(shù)據(jù)的不同需要在1024個字節(jié)的 S反變換常量空間中讀取16個常量數(shù)據(jù),每次AES解密至少需要48個S反變換 操作。本實施例中對S變換及S反變換進(jìn)行加速,即將1024+1024= 2048個字節(jié)的數(shù)據(jù)存入片上存儲器進(jìn)行讀取加速,處理過程如下如圖1,首先通過數(shù)據(jù)輸入將外部接口傳輸過來的AES加密解密代碼全部寫 入NOR閃存中。其次分析AES指令,確定待加速地址空間,其中S變換操作的 地址空間位于N0R閃存上地址0xl720-0xlB19,S反變換操作的地址空間位于N0R 閃存上地址0xlD20-0x2119。然后,如圖2,待加速地址空間已經(jīng)確定,待加速地址空間1的起始地址A1 為0x1720,長度Ll為0x400;待加速地址空間2的起始地址A2為0xlD20,長 度L2為0x400。再通過硬件接口編程將待加速地址空間與片上存儲器對應(yīng),對 應(yīng)待加速地址空間1的對應(yīng)地址空間1位于片上存儲器上地址0x000-0x399 (L1-1);對應(yīng)待加速地址空間2的對應(yīng)地址空間2位于片上存儲器上地址0x400 (Ll) -0x799 (Ll+L2-1)。在執(zhí)行AES加密解密指令A(yù)S (AS為該指令在NOR閃存中的地址)時,首先 根據(jù)己經(jīng)存儲的加速地址空間的起始地址Al, A2及待加速地址空間的長度Ll, L2判斷該指令是否為可加速的指令。如果A1《AS《A1+L1-1,則AS為可加速指 令,其對應(yīng)的片上存儲器地址為AS-Al;如果A2《AS《A2+L1-1,則AS為可加速 指令,器對應(yīng)的片上存儲器地址為L1+AS-A2;如果為其他情況,則AS為不可加 速指令,由圖1中的低速數(shù)據(jù)輸出給出指令。如果AS為可加速指令,則由圖1中的高速輸出控制判斷是否為第一次指令 讀取。如果為第一次指令讀取,則由低速數(shù)據(jù)輸出給出指令并將指令存儲到指令 AS對應(yīng)的片上存儲器地址中;如果不是第一次指令讀取,則直接從片上存儲器 將指令A(yù)S對應(yīng)的片上存儲器中讀出指令。本實施例在不考慮第一次加速指令讀取的低速數(shù)據(jù)輸出時,可以將多個時鐘 周期的單條指令讀取減少至一個時鐘周期,對于讀取一條指令一般需要4個系統(tǒng) 時鐘周期的NOR閃存,可以達(dá)到4倍讀取的加速效果。
權(quán)利要求
1、一種可編程片上存儲器接口的NOR閃存讀取加速控制的方法,其特征在于,首先,在NOR閃存所需執(zhí)行的目標(biāo)程序指令中,根據(jù)目標(biāo)程序在NOR閃存中的地址空間情況對NOR閃存與片上存儲器的接口進(jìn)行配置,具體如下如果目標(biāo)程序的指令集中位于NOR閃存的地址空間時,通過硬件接口編程將待加速地址空間與片上存儲器相對應(yīng);如果目標(biāo)程序的指令分散于NOR閃存中的地址空間時,則將這些分散的待加速地址空間通過硬件接口編程與片上存儲器上不同的地址空間相對應(yīng);然后,在第一次執(zhí)行目標(biāo)程序時,讀取NOR閃存中的目標(biāo)程序指令,同時把讀取的指令通過接口傳入片上存儲器;在隨后執(zhí)行目標(biāo)程序的過程中,系統(tǒng)直接讀取片上存儲器中的目標(biāo)程序指令執(zhí)行,不需要讀取NOR閃存中的目標(biāo)程序指令,而系統(tǒng)在執(zhí)行其他指令時,依然讀取NOR閃存中的指令執(zhí)行。
2、 根據(jù)權(quán)利要求1所述的可編程片上存儲器接口的NOR閃存讀取加速控制 的方法,其特征是,所述N0R閃存,是指用于存儲指令的非易失性存儲器,負(fù) 責(zé)存儲嵌入式系統(tǒng)執(zhí)行的所有指令,包括目標(biāo)程序的指令。
3、 根據(jù)權(quán)利要求1或2所述的可編程片上存儲器接口的NOR閃存讀取加速 控制的方法,其特征是,所述NOR閃存,其讀取一條指令需要4個系統(tǒng)時鐘周期。
4、 根據(jù)權(quán)利要求1所述的可編程片上存儲器接口的NOR閃存讀取加速控制 的方法,其特征是,所述片上存儲器,其存儲空間小于N0R閃存。
5、 根據(jù)權(quán)利要求1或4所述的可編程片上存儲器接口的N0R閃存讀取加速 控制的方法,其特征是,所述片上存儲器,其讀取一條指令需要1個系統(tǒng)時鐘周 期。
6、 根據(jù)權(quán)利要求1所述的可編程片上存儲器接口的N0R閃存讀取加速控制 的方法,其特征是,所述硬件接口編程,對于集中位于NOR閃存中的待加速地址 空間,具體為把待加速地址空間的起始地址A1對應(yīng)于片上存儲器的起始地址 0地址,待加速地址空間的其他地址通過其與起始地址的偏差對應(yīng)到片上存儲 器,在編程時,將待加速地址空間的起始地址Al及待加速地址空間的長度Ll 存儲,通過這2個數(shù)據(jù)進(jìn)行接口對應(yīng),在讀取N0R閃存中的指令時,如果這個指令的地址AS在待加速地址空間之中,即A1《AS《A1+L-1,表明該指令的地址通 過硬件接口編程對應(yīng)于片上存儲器的地址BS, BS=0+AS-A1。
7、根據(jù)權(quán)利要求1所述的可編程片上存儲器接口的NOR閃存讀取加速控制 的方法,其特征是,所述硬件接口編程,對于一組分散在NOR閃存中的待加速地 址空間,具體為把每個待加速地址空間的起始地址對應(yīng)于當(dāng)前未被對應(yīng)的片上 存儲器的起始地址,待加速地址空間的其他地址通過其與起始地址的偏差對應(yīng)到 片上存儲器,在編程時,首先將待加速地址空間從1到N編號,N為分散在NOR 閃存中的待加速地址空間數(shù)量,再將每個待加速地址空間的起始地址Ai及待加 速地址空間的長度Li存儲,1《i《N,通過這2N個數(shù)據(jù)進(jìn)行接口對應(yīng),在讀取 N0R閃存中的指令時,如果這個指令的地址AS在某個待加速地址空間之中,即 Ax《AS《Ax+Lx-l, 1《x《N,表明該指令的地址通過硬件接口編程對應(yīng)于片上存 儲器的地址BS, BS:0+Ll+L2+…+Lxx+AS-Ax, xx=x—1。
全文摘要
一種嵌入式存儲技術(shù)領(lǐng)域的可編程片上存儲器接口的NOR閃存讀取加速控制的方法,首先,在NOR閃存所需執(zhí)行的目標(biāo)程序指令中,根據(jù)目標(biāo)程序在NOR閃存中的地址空間情況對NOR閃存與片上存儲器的接口進(jìn)行配置;然后,在第一次執(zhí)行目標(biāo)程序時,讀取NOR閃存中的目標(biāo)程序指令,同時把讀取的指令通過接口傳入片上存儲器;在隨后執(zhí)行目標(biāo)程序的過程中,系統(tǒng)直接讀取片上存儲器中的目標(biāo)程序指令執(zhí)行,而不需要讀取NOR閃存中的目標(biāo)程序指令,而系統(tǒng)在執(zhí)行其他指令時,依然讀取NOR閃存中的指令執(zhí)行。本發(fā)明提高了讀取速度,而且通過硬件接口編程,可靈活支持不同大小的片上存儲器,避免了兼容性問題。
文檔編號G06F12/08GK101266577SQ200810035210
公開日2008年9月17日 申請日期2008年3月27日 優(yōu)先權(quán)日2008年3月27日
發(fā)明者劉文江, 戎蒙恬, 王子維, 王永棟, 強(qiáng) 韓 申請人:上海交通大學(xué)