專利名稱::一種spi接口存儲(chǔ)器執(zhí)行程序方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及SOC集成電路設(shè)計(jì)領(lǐng)域,尤其是一種SPI接口存儲(chǔ)器執(zhí)行程序方法和直O(jiān)
背景技術(shù):
:一個(gè)典型的嵌入式應(yīng)用架構(gòu),通常由一個(gè)主控芯片和一個(gè)以上的存儲(chǔ)器組成。并行存儲(chǔ)器的地址總線和數(shù)據(jù)總線是分開(kāi)設(shè)計(jì)的,總的管腳達(dá)到幾十根,這種設(shè)計(jì)雖然具有較高的數(shù)據(jù)傳輸速度,但是由于其引腳多,互聯(lián)成本較高等因素,應(yīng)用的方便性和適用性都受到限制,制約了并行存儲(chǔ)器在SOC單芯片系統(tǒng)等嵌入式領(lǐng)域廣泛應(yīng)用。隨著采用串行SPI接口的存儲(chǔ)器的技術(shù)逐漸發(fā)展,主流的串行存儲(chǔ)器的傳輸速度已經(jīng)達(dá)到80Mbps的水平。這個(gè)傳輸速度在低級(jí)別的數(shù)據(jù)傳輸應(yīng)用是足夠的,但是如果需要在串行存儲(chǔ)器上直接運(yùn)行程序或者高速傳輸數(shù)據(jù),這個(gè)速度還是不夠的。市面上出現(xiàn)了一些多通道的SPI接口的存儲(chǔ)器,例如華邦公司的4通道的SPIFLASH存儲(chǔ)器,該存儲(chǔ)器兼容原來(lái)的單通道SPI接口,管腳與原設(shè)計(jì)采用相同的6條信號(hào),但其支持的傳輸速度卻是原來(lái)的4倍,達(dá)到320Mbps。多通道的串行存儲(chǔ)器具有更高的傳輸速度,可以滿足直接在存儲(chǔ)器上運(yùn)行程序及算法的需求。串行SPI接口存儲(chǔ)器的信號(hào)管腳數(shù)目為6根,低管腳開(kāi)銷使得串行存儲(chǔ)器在嵌入式系統(tǒng)中的應(yīng)用極其方便,降低了板級(jí)設(shè)計(jì)成本,為串行存儲(chǔ)器在嵌入式系統(tǒng)和SOC單芯片系統(tǒng)領(lǐng)域中的推廣應(yīng)用,創(chuàng)造了有利的條件。但是,現(xiàn)有的SPI接口存儲(chǔ)器不能支持在其上直接執(zhí)行程序。當(dāng)一個(gè)嵌入式系統(tǒng)或者SOC單芯片系統(tǒng)需要運(yùn)行存放在串行存儲(chǔ)器上的程序時(shí),必須首先將存儲(chǔ)器中的這些程序拷貝到SDRAM或SRAM等可直接運(yùn)行程序的存儲(chǔ)器空間,才可以執(zhí)行。這種方式不僅擠占了嵌入式系統(tǒng)或芯片內(nèi)寶貴的存儲(chǔ)器資源,而且把串行存儲(chǔ)器功能限制在保存數(shù)據(jù)上。無(wú)法直接用于運(yùn)行程序,是當(dāng)前串行存儲(chǔ)器接口技術(shù)的重大缺憾。
發(fā)明內(nèi)容針對(duì)現(xiàn)有多通道SPI接口存儲(chǔ)器技術(shù)不能用作程序執(zhí)行載體的不足,本發(fā)明的目的是,提供一種多通道SPI接口存儲(chǔ)器執(zhí)行程序方法和裝置,并在主處理器CPU與多通道SPI接口存儲(chǔ)器之間,構(gòu)建一套完整的指令、數(shù)據(jù)交互機(jī)制,以及執(zhí)行這種交互的總線通道和控制邏輯,使CPU不僅能快速對(duì)多通道SPI接口存儲(chǔ)器進(jìn)行數(shù)據(jù)存取操作,還能在多通道SPI接口存儲(chǔ)器上執(zhí)行程序,和對(duì)多通道SPI接口存儲(chǔ)器進(jìn)行其他必要的操作和控制。此外,根據(jù)實(shí)際使用中對(duì)處理效率的要求、和對(duì)單通道器件的兼容性,本發(fā)明在采用多通道SPI接口存儲(chǔ)器解決方案的基礎(chǔ)上,還應(yīng)當(dāng)提供與單通道SPI接口存儲(chǔ)器兼容的技術(shù)措施,以及提高實(shí)際使用效率的解決辦法。為了達(dá)到上述目的,本發(fā)明所采用的第一方面的技術(shù)手段是,提供一種多通道SPI接口存儲(chǔ)器執(zhí)行程序的控制方法,包括如下步驟1)根據(jù)處理器CPU對(duì)多通道SPI接口存儲(chǔ)器進(jìn)行操作的特點(diǎn),將這些操作概括為“空閑”、“指令”、“地址”、“空操作”、“等待”、“數(shù)據(jù)”6個(gè)工作狀態(tài)。并結(jié)合多通道SPI接口存儲(chǔ)器控制機(jī)制,規(guī)劃出這些工作狀態(tài)之間相互轉(zhuǎn)換的各種操作,作為設(shè)計(jì)狀態(tài)機(jī)(控制邏輯)的依據(jù);2)對(duì)步驟1所述6個(gè)工作狀態(tài)所處的工作條件進(jìn)行量化,這些工作條件包括1采用的通道模式;2_各種工作狀態(tài)所需的工作節(jié)拍。3)分別設(shè)立控制通路和數(shù)據(jù)通路,當(dāng)CPU與多通道SPI接口存儲(chǔ)器信息交互時(shí),令數(shù)據(jù)存儲(chǔ)空間操作與寄存器空間操作彼此分離;4)配置一個(gè)讀/寫(xiě)操作寄存器,用以控制從多通道SPI接口存儲(chǔ)器讀出或者寫(xiě)入數(shù)據(jù)。讀/寫(xiě)操作寄存器內(nèi)應(yīng)當(dāng)含有步驟2所規(guī)定的工作條件;5)逐一配置指令操控寄存器、寫(xiě)入?yún)?shù)寄存器、讀出參數(shù)寄存器,以便對(duì)多通道SPI接口存儲(chǔ)器內(nèi)部寄存器進(jìn)行操作,包括向存儲(chǔ)器內(nèi)部寄存器寫(xiě)入或者讀出內(nèi)部參數(shù)。寫(xiě)入?yún)?shù)寄存器、讀出參數(shù)寄存器的開(kāi)啟和關(guān)閉,由指令操作寄存器管理;6)配置一個(gè)時(shí)鐘配置寄存器,用來(lái)存放使CPU與多通道SPI接口存儲(chǔ)器時(shí)鐘匹配的參數(shù);7)按照步驟1給出的工作狀態(tài)轉(zhuǎn)換流程圖、以及步驟3確定的在不同通路交互不同信息的規(guī)則,確定狀態(tài)機(jī)(控制邏輯)。使得推動(dòng)CPU與多通道SPI接口存儲(chǔ)器信息交互的各項(xiàng)操作,在規(guī)定的通路、按規(guī)定的工作節(jié)拍進(jìn)行;8)配置一個(gè)指令寄存器,對(duì)CPU指令進(jìn)行解析1_如果CPU指令訪問(wèn)多通道SPI接口存儲(chǔ)器內(nèi)部存儲(chǔ)空間,1/開(kāi)通數(shù)據(jù)通路,進(jìn)行數(shù)據(jù)讀/寫(xiě)操作;2_如果CPU指令訪問(wèn)多通道SPI接口存儲(chǔ)控制器的寄存器空間1/打開(kāi)控制通路,進(jìn)行內(nèi)部參數(shù)的讀/寫(xiě)操作。為了提高大數(shù)據(jù)量多通道SPI接口存儲(chǔ)器讀寫(xiě)操作的效率,可以對(duì)本發(fā)明所提供的方法中步驟1進(jìn)一步改進(jìn)。具體做法是在所述6個(gè)工作狀態(tài)中,再增加1個(gè)輔助“數(shù)據(jù)”工作狀態(tài),形成總共7個(gè)工作狀態(tài)。在大數(shù)據(jù)量讀寫(xiě)操作時(shí),新增的輔助“數(shù)據(jù)”狀態(tài)(記作“數(shù)據(jù)_1”)與步驟1所述的“數(shù)據(jù)”工作狀態(tài)(記作“數(shù)據(jù)_0)形成切換操作,并規(guī)劃出改進(jìn)后的工作狀態(tài)轉(zhuǎn)換的21種操作流程。使來(lái)自數(shù)據(jù)通路的大量讀/寫(xiě)數(shù)據(jù)在該21種操作狀態(tài)轉(zhuǎn)換控制下,同時(shí)與CPU和存儲(chǔ)器進(jìn)行數(shù)據(jù)交互,以提高大數(shù)據(jù)量處理的傳輸效率??梢詫?duì)步驟46中所述的各種寄存器具體加以規(guī)定讀/寫(xiě)操作寄存器與指令寄存器具有相同的數(shù)據(jù)位結(jié)構(gòu),這些數(shù)據(jù)位存放的信息包括1)工作狀態(tài)的通道模式、2)各種工作狀態(tài)所需要的工作節(jié)拍、3)多通道SPI接口存儲(chǔ)器指令等數(shù)據(jù)位信息;指令操作寄存器的數(shù)據(jù)位具有1)控制寫(xiě)入?yún)?shù)寄存器啟閉的數(shù)據(jù)位、2)控制讀出參數(shù)寄存器啟閉的數(shù)據(jù)位、2)啟動(dòng)加/解密模塊的數(shù)據(jù)位等其他與指令操作有關(guān)的控制標(biāo)志位;寫(xiě)入?yún)?shù)寄存器的數(shù)據(jù)位具有1)對(duì)存儲(chǔ)器內(nèi)部寄存器進(jìn)行參數(shù)寫(xiě)入的數(shù)據(jù)位、2)擦除存儲(chǔ)器內(nèi)部數(shù)據(jù)的地址數(shù)據(jù)位;讀出參數(shù)寄存器應(yīng)有存放存儲(chǔ)器內(nèi)部參數(shù)讀出信息的數(shù)據(jù)位;時(shí)鐘配置寄存器含有存放分頻數(shù)、旁路等信息的數(shù)據(jù)位。為了使上述多通道SPI接口存儲(chǔ)器執(zhí)行程序的控制方法得到實(shí)施,本發(fā)明所采用的第二方面的技術(shù)手段是,在主處理器CPU與多通道SPI接口存儲(chǔ)器之間,構(gòu)建基于硬件的、能夠?qū)崿F(xiàn)上述方法所述行為機(jī)制的多通道SPI接口存儲(chǔ)控制器。所述多通道SPI接口存儲(chǔ)控制器包括9)數(shù)據(jù)通路接口、控制通路接口、主控制器、以及寄存器組、波特率控制邏輯。寄存器組內(nèi)含本發(fā)明所述方法步驟46中所規(guī)定的各種寄存器;10)CPU總線分別與數(shù)據(jù)通路接口21、控制通路接口22相連;數(shù)據(jù)通路接口通過(guò)數(shù)據(jù)通路及數(shù)據(jù)控制線與主控制器相連;控制通路接口一路通過(guò)控制通路與寄存器組相連,另一路通過(guò)指令控制線2與主控制器相連;寄存器組一路通過(guò)寄存器總線與主控制器連接,另一路通過(guò)數(shù)據(jù)總線與波特率控制邏輯連接;主控制器與時(shí)鐘線相連,另外引出多通道SPI接口存儲(chǔ)器總線,與多通道SPI接口存儲(chǔ)器相連。較佳地,CPU總線采用32位BVCI總線;數(shù)據(jù)通路包含24位地址線和64位數(shù)據(jù)線;控制通路包含3位地址線和32位數(shù)據(jù)線;數(shù)據(jù)控制線與指令控制線均為2位的同步信號(hào)控制線;寄存器總線包含5組32位的總線。其中3組為單向傳輸?shù)目刂瓶偩€,2組為雙向傳輸?shù)臄?shù)據(jù)總線;數(shù)據(jù)總線由8位數(shù)據(jù)線構(gòu)成;多通道SPI接口存儲(chǔ)器總線是6位的SPI接口協(xié)議總線。為了保證多通道SPI接口存儲(chǔ)器內(nèi)所存內(nèi)容的信息安全,可以在數(shù)據(jù)通路上接入加/解密模塊,用于將數(shù)據(jù)通路上準(zhǔn)備寫(xiě)入多通道SPI接口存儲(chǔ)器的數(shù)據(jù)先經(jīng)加/解密模塊加密,從多通道SPI接口存儲(chǔ)器讀出的加密數(shù)據(jù)在送往數(shù)據(jù)通路接口之前進(jìn)行解密;寄存器組通過(guò)加/解密控制線與加/解密模塊相連接,用于控制加/解密模塊的開(kāi)啟或關(guān)閉。主控制器內(nèi)部包括同步邏輯、譯碼邏輯、指令啟動(dòng)控制模塊、主狀態(tài)機(jī)、數(shù)據(jù)接受模塊、指令/數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)/地址緩沖區(qū)。它與外部的連接是同步邏輯與數(shù)據(jù)控制線、指令控制線相連;譯碼邏輯與寄存器總線中的控制總線相連;數(shù)據(jù)/地址緩沖區(qū)與數(shù)據(jù)通路、以及寄存器總線中的數(shù)據(jù)總線相連。內(nèi)部工作方式及連接關(guān)系是1_來(lái)自寄存器總線的指令信息,被譯碼邏輯譯碼后,經(jīng)由控制總線進(jìn)入由控制邏輯組成的主狀態(tài)機(jī);同步邏輯使來(lái)自數(shù)據(jù)通路接口、或控制通路接口的控制信號(hào)同步,經(jīng)過(guò)同步控制總線送入指令啟動(dòng)控制模塊,致使指令啟動(dòng)控制模塊在適當(dāng)?shù)臅r(shí)刻,通過(guò)啟動(dòng)信號(hào)線向主狀態(tài)機(jī)發(fā)送指令啟動(dòng)信號(hào);2_數(shù)據(jù)接收模塊分別與主狀態(tài)機(jī)和數(shù)據(jù)/地址緩沖區(qū)相連,經(jīng)由數(shù)據(jù)接收控制總線與主狀態(tài)機(jī)進(jìn)行控制反饋。數(shù)據(jù)接收模塊通過(guò)多通道SPI接口存儲(chǔ)器總線讀出SPI存儲(chǔ)器中的數(shù)據(jù)或者存儲(chǔ)器操作參數(shù),經(jīng)由數(shù)據(jù)接收總線將讀出的數(shù)據(jù)或者存儲(chǔ)器操作參數(shù)放入數(shù)據(jù)/地址緩沖區(qū)后,經(jīng)由數(shù)據(jù)通路、或者寄存器總線中的數(shù)據(jù)總線、控制通路,發(fā)送給CPU總線;3_指令/數(shù)據(jù)發(fā)送模塊分別與主狀態(tài)機(jī)和數(shù)據(jù)/地址緩沖區(qū)相連,經(jīng)由指令/數(shù)據(jù)發(fā)送控制總線與主狀態(tài)機(jī)進(jìn)行控制反饋。來(lái)自數(shù)據(jù)通路的寫(xiě)入數(shù)據(jù)、或者來(lái)自寄存器總線的存儲(chǔ)器操作參數(shù),經(jīng)過(guò)數(shù)據(jù)/地址緩沖區(qū)在指令/數(shù)據(jù)發(fā)送模塊的操作下,通過(guò)多通道SPI接口存儲(chǔ)器總線向存儲(chǔ)器寫(xiě)入數(shù)據(jù)或者存儲(chǔ)器操作參數(shù);為了提高多通道SPI接口存儲(chǔ)器大數(shù)據(jù)量讀出和寫(xiě)入效率,可以對(duì)主控制器24進(jìn)一步改善。具體做法是增加地址預(yù)判邏輯,監(jiān)控?cái)?shù)據(jù)通路上地址信息的變化情況,并做出預(yù)判斷。當(dāng)下一次訪問(wèn)地址為本次地址的4Byte累加時(shí),判斷為連續(xù)地址。此時(shí),地址預(yù)判斷邏輯通過(guò)預(yù)判控制線將預(yù)判斷信息發(fā)送給主狀態(tài)機(jī),使主狀態(tài)機(jī)中止指令和地址發(fā)送,控制數(shù)據(jù)接收模塊或指令/數(shù)據(jù)發(fā)送模塊直接從多通道SPI接口存儲(chǔ)器讀出、或者寫(xiě)入數(shù)據(jù)。本發(fā)明有益的效果1、具有與并口存儲(chǔ)器相同的直接執(zhí)行程序的功能,卻大幅度減少外部引腳資源。使多通道SPI接口存儲(chǔ)器集成到整個(gè)嵌入式架構(gòu)時(shí),在縮小硅片面積、提高系統(tǒng)可靠性等方面具有明顯優(yōu)勢(shì)。2、兼容各類單、雙、四通道多通道SPI接口存儲(chǔ)器的所有指令,使多通道SPI接口存儲(chǔ)器從數(shù)據(jù)存儲(chǔ)載體拓展到程序運(yùn)行載體。嵌入式系統(tǒng)無(wú)需借助其他存儲(chǔ)介質(zhì)進(jìn)行引導(dǎo),可直接在存儲(chǔ)器執(zhí)行應(yīng)用程序。3、降低了嵌入式系統(tǒng)對(duì)SDRAM和片內(nèi)RAM的依賴,提高了SOC系統(tǒng)的靈活度,有助于嵌入式芯片的二次開(kāi)發(fā)應(yīng)用。4、對(duì)存儲(chǔ)器中的程序或數(shù)據(jù)加密,起到數(shù)據(jù)保護(hù)的作用,提高了嵌入式產(chǎn)品的安全性。圖1是多通道SPI接口存儲(chǔ)器操作過(guò)程中工作狀態(tài)相互轉(zhuǎn)換的流程示意圖。圖2表示在一個(gè)較佳實(shí)施例中,新增輔助數(shù)據(jù)狀態(tài)后工作狀態(tài)相互轉(zhuǎn)換的流程示意圖。圖3是多通道SPI接口存儲(chǔ)控制器內(nèi)部模塊構(gòu)成和連接關(guān)系示意圖。圖4是本發(fā)明在一個(gè)較佳實(shí)施例中,在多通道SPI接口存儲(chǔ)控制器的數(shù)據(jù)通路接口與主控制器之間,接入了加/解密模塊后的連接關(guān)系示意圖。圖5是主控制器的內(nèi)部結(jié)構(gòu)和連接關(guān)系示意圖。圖6是將本發(fā)明所提供的技術(shù)方案集成到一款SOC芯片內(nèi)的示意圖。具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例再對(duì)本發(fā)明的具體實(shí)施加以說(shuō)明。1、圖1是本發(fā)明對(duì)于多通道SPI接口存儲(chǔ)器操作過(guò)程中工作狀態(tài)的解析,以及這些工作狀態(tài)相互轉(zhuǎn)換的流程。經(jīng)實(shí)際操作分析,只要應(yīng)用圖中所示的6種工作狀態(tài)、17種轉(zhuǎn)換方式(單向箭頭為1種,雙向箭頭為2種),就能覆蓋所有操作。2、附圖2是為了提高多通道SPI接口存儲(chǔ)器大數(shù)據(jù)量讀寫(xiě)操作的效率,在一個(gè)較佳實(shí)施例中對(duì)本發(fā)明提供的方法進(jìn)一步改進(jìn)。增加一個(gè)輔助“數(shù)據(jù)”工作狀態(tài),在圖中表示為“數(shù)據(jù)_0”、“數(shù)據(jù)_1”。同時(shí)規(guī)劃出這些工作狀態(tài)之間相互轉(zhuǎn)換的21種操作。來(lái)自數(shù)據(jù)通路的大量讀/寫(xiě)數(shù)據(jù)在圖中所規(guī)劃的主狀態(tài)機(jī)的控制下,可以同時(shí)與CPU和SPI接口存儲(chǔ)器進(jìn)行數(shù)據(jù)交互,以此提高處理效率。3、附圖3是為了使多通道SPI接口存儲(chǔ)器控制方法得到實(shí)施,而提供的多通道SPI接口存儲(chǔ)控制器20。采用硬件邏輯完成CPU同多通道SPI接口存儲(chǔ)器的命令交互,具有較強(qiáng)兼容性,支持現(xiàn)有各種主流存儲(chǔ)器。該控制器連接在主處理器CPU與多通道SPI接口存儲(chǔ)器之間,其中包括數(shù)據(jù)通路接口21、控制通路接口22、主控制器24、以及寄存器組26、波特率控制邏輯28,CPU總線201分別與數(shù)據(jù)通路接口21、控制通路接口22相連,數(shù)據(jù)通路接口21通過(guò)數(shù)據(jù)通路202及數(shù)據(jù)控制線204d與主控制器24相連;控制通路接口22—路通過(guò)控制通路203與寄存器組26相連,另一路通過(guò)指令控制線204c與主控制器24相連;寄存器組26—路通過(guò)寄存器總線205與主控制器24連接,另一路通過(guò)數(shù)據(jù)總線206與波特率控制邏輯28連接;主控制器24與時(shí)鐘線207相連,主控制器24引出多通道spi接口存儲(chǔ)器總線208,多通道spi接口存儲(chǔ)器總線208用于與多通道spi接口存儲(chǔ)器相連。下面分別從控制通路、數(shù)據(jù)通路、連接總線、加解密控制、寄存器設(shè)置等幾個(gè)方面,詳細(xì)加以說(shuō)明1)控制通路203的作用是,設(shè)置多通道spi接口存儲(chǔ)控制器中的寄存器組26,以及其它對(duì)多通道spi接口存儲(chǔ)器控制操作的實(shí)現(xiàn)通路。程序可以配置多通道spi接口存儲(chǔ)控制器的寄存器來(lái)發(fā)送各種spi命令,比如擦除、讀寫(xiě)存儲(chǔ)器內(nèi)部寄存器、讀id等。除了對(duì)存儲(chǔ)器存儲(chǔ)空間的正常讀寫(xiě)訪問(wèn)之外的任何指令都通過(guò)控制通路發(fā)送。2)數(shù)據(jù)通路202的作用是,使多通道spi接口存儲(chǔ)器達(dá)到訪問(wèn)并口設(shè)備的效果,總線上給出訪問(wèn)地址,可以對(duì)該地址進(jìn)行讀寫(xiě)操作。除了速度沒(méi)有并口設(shè)備快,別的沒(méi)有什么區(qū)別,因?yàn)椴⒖谠O(shè)備地址總線和數(shù)據(jù)總線分開(kāi)并且并行傳輸,而多通道spi接口存儲(chǔ)控制器和多通道spi接口存儲(chǔ)器之間最多4個(gè)管腳來(lái)傳輸?shù)刂泛蛿?shù)據(jù)。3)在本發(fā)明采用的一個(gè)較佳實(shí)施例中,cpu總線201采用32位bvci總線;數(shù)據(jù)通路202包含24位地址線和64位數(shù)據(jù)線;控制通路203包含3位地址線和32位數(shù)據(jù)線;數(shù)據(jù)控制線204d與指令控制線204c均為2位的同步信號(hào)控制線;寄存器總線205包含5組32位的總線。其中3組為單向傳輸?shù)目刂瓶偩€,2組為雙向傳輸?shù)臄?shù)據(jù)總線;數(shù)據(jù)總線206由8位數(shù)據(jù)線構(gòu)成;多通道spi接口存儲(chǔ)器總線208是6位的spi接口協(xié)議總線。4)加密算法由硬件加/解密模塊23實(shí)現(xiàn),可以對(duì)存儲(chǔ)器中的數(shù)據(jù)或程序進(jìn)行加解密。下載數(shù)據(jù)到存儲(chǔ)器里面可以控制對(duì)其加密保護(hù),可以全部加密,也可以只加密其中部分?jǐn)?shù)據(jù),可以有效保護(hù)用戶的數(shù)據(jù)。如果需要讀取經(jīng)過(guò)加密的數(shù)據(jù),需要使用我們的芯片并且知道加密的具體位置才能夠正確解密。用加密控制寄存器來(lái)控制開(kāi)啟加密算法對(duì)存儲(chǔ)器數(shù)據(jù)進(jìn)行加密,在對(duì)存儲(chǔ)器寫(xiě)入數(shù)據(jù)的同時(shí)進(jìn)行加密,在從存儲(chǔ)器讀出數(shù)據(jù)的同時(shí)進(jìn)行解密。5)在默認(rèn)狀態(tài)下,不對(duì)寄存器組26進(jìn)行任何配置,可以直接將spi接口存儲(chǔ)器當(dāng)作ram讀取數(shù)據(jù),因?yàn)榇蠖鄶?shù)spi接口存儲(chǔ)器的基本讀操作命令都是“03”,本實(shí)施例的初始化命令就是“03”。cpu可以直接通過(guò)32位總線讀取spi接口存儲(chǔ)器的數(shù)據(jù)意味著可以直接運(yùn)行存儲(chǔ)器上的程序。以下是串行寄存器組的寄存器定義^ι地址偏移ι訪問(wèn)方式Wm.spi_inst0x00wtr0x00000000spi指令寄存器spi_inst_setoxo4wtr0x00000000spi指令操作控制寄存器spfspec0x08wtr0x00000000spi寫(xiě)入?yún)?shù)寄存器spi_clkgenoxocff7r0x00000000spi時(shí)鐘配置寄存器<table>tableseeoriginaldocumentpage10</column></row><table>以下是每個(gè)寄存器的具體內(nèi)容·SPI指令寄存器(SPIINST),SPI讀/寫(xiě)操作寄存器(SPIINSTREAD)<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>·SPI指令操作控制寄存器(SPI_INST_SET)<table>tableseeoriginaldocumentpage11</column></row><table>·SPI寫(xiě)入?yún)?shù)寄存器(SPI_SPEC)<table>tableseeoriginaldocumentpage11</column></row><table>·SPI時(shí)鐘配置寄存器(SPI_CLKGEN)<table>tableseeoriginaldocumentpage12</column></row><table>·SPI讀出參數(shù)據(jù)寄存器(SPI_DATA_ADDR)<table>tableseeoriginaldocumentpage12</column></row><table>“6)通過(guò)這些寄存器,可以配置出任何現(xiàn)有SPI接口存儲(chǔ)器協(xié)議的命令。譬如要發(fā)送一條存儲(chǔ)器塊擦除命令時(shí),首先配置SPI_INST寄存器描述該命令的內(nèi)容和格式,再配置SPI_SPEC的值為擦除的塊地址,最后配置SPI_1NST_SET來(lái)啟動(dòng)該命令。當(dāng)主控制器接收到啟動(dòng)命令時(shí),會(huì)發(fā)送出一條支持SPl協(xié)議的塊擦除命令。7)除了讀寫(xiě)SPI接口存儲(chǔ)器數(shù)據(jù)的命令可以自動(dòng)完成外,其他命令都需要上面的步驟來(lái)完成,這是SPI接口存儲(chǔ)器特性所決定。本發(fā)明最大的特點(diǎn)是SPI協(xié)議命令可配性和數(shù)據(jù)讀寫(xiě)操作自動(dòng)完成。只要BVCI總線發(fā)起一個(gè)對(duì)SPI接口存儲(chǔ)器空間的讀寫(xiě)請(qǐng)求,主控制器會(huì)自動(dòng)檢測(cè)到并且發(fā)送SPI協(xié)議的命令給存儲(chǔ)器,然后完成同存儲(chǔ)器的交互并且返回?cái)?shù)據(jù)到BVCI總線由CPU取回。這極大方便了對(duì)存儲(chǔ)器的數(shù)據(jù)操作,用戶可以不關(guān)心具體底層的SPI協(xié)議從而達(dá)到對(duì)SPI接口存儲(chǔ)器空間的訪問(wèn)。8)寄存器配置不同的SPI傳輸波特率,通過(guò)波特率控制邏輯28可以滿足不同的應(yīng)用。使用最快的SPI時(shí)鐘可以配到和系統(tǒng)時(shí)鐘一樣快??梢宰龅皆赟PI接口存儲(chǔ)器運(yùn)行程序過(guò)程中配置時(shí)鐘。4、附圖4是本發(fā)明在一個(gè)較佳實(shí)施例中,為了提高多通道SPI接口存儲(chǔ)器中數(shù)據(jù)內(nèi)容的安全性,在數(shù)據(jù)通路202上接入加/解密模塊23。其作用是使數(shù)據(jù)通路202上準(zhǔn)備寫(xiě)入存儲(chǔ)器的數(shù)據(jù)先經(jīng)加/解密模塊23加密;所有從存儲(chǔ)器讀出的加密數(shù)據(jù)在送往數(shù)據(jù)通路接口21之前,先進(jìn)行解密。加/解密模塊23的開(kāi)啟或關(guān)閉,由寄存器組26加以控制。對(duì)寄存器組26進(jìn)行配置后,通過(guò)加/解密控制線209可以隨時(shí)開(kāi)啟或者關(guān)閉加/解密模塊23。5、圖5是主控制器的內(nèi)部結(jié)構(gòu)和連接關(guān)系。主控制器24內(nèi)部包括同步邏輯31、譯碼邏輯32、指令啟動(dòng)控制模塊33、主狀態(tài)機(jī)34、數(shù)據(jù)接受模塊35、指令/數(shù)據(jù)發(fā)送模塊36和數(shù)據(jù)/地址緩沖區(qū)37,它與外部的連接是同步邏輯31與數(shù)據(jù)控制線204D、指令控制線204C相連;譯碼邏輯32與寄存器總線205中的控制總線相連;數(shù)據(jù),地址緩沖區(qū)37與數(shù)據(jù)通路202、以及寄存器總線205中的數(shù)據(jù)總線相連,內(nèi)部工作方式及連接關(guān)系是1、來(lái)自寄存器總線205的指令信息,被譯碼邏輯32譯碼后,經(jīng)由控制總線303進(jìn)入由控制邏輯組成的主狀態(tài)機(jī)34;同步邏輯31用于將來(lái)自數(shù)據(jù)通路接口、或控制通路接口的控制信號(hào)同步,經(jīng)過(guò)同步控制總線301送入指令啟動(dòng)控制模塊33,致使指令啟動(dòng)控制模塊33在適當(dāng)?shù)臅r(shí)刻,通過(guò)啟動(dòng)信號(hào)線302向主狀態(tài)機(jī)34發(fā)送指令啟動(dòng)信號(hào);2、數(shù)據(jù)接收模塊35分別與主狀態(tài)機(jī)34和數(shù)據(jù)/地址緩沖區(qū)37相連,經(jīng)由數(shù)據(jù)接收控制總線304與主狀態(tài)機(jī)進(jìn)行控制反饋;數(shù)掘接收模塊35通過(guò)多通道SPI接口存儲(chǔ)器總線208讀出SPI存儲(chǔ)器中的數(shù)據(jù)或者存儲(chǔ)器作參數(shù),經(jīng)由數(shù)據(jù)接收總線306將讀出的數(shù)據(jù)或者存儲(chǔ)器操作參數(shù)放入數(shù)據(jù)/地址緩沖區(qū)37后,經(jīng)由數(shù)據(jù)通路202或者寄存器總線205中的數(shù)據(jù)總線、控制通路203,發(fā)送給CPu總線201;3、指令/數(shù)據(jù)發(fā)送模塊36分別與主狀態(tài)機(jī)34和數(shù)據(jù)/地址緩沖區(qū)37相連,經(jīng)由指令/數(shù)據(jù)發(fā)送控制總線305與主狀態(tài)機(jī)進(jìn)行控制反饋,來(lái)自數(shù)據(jù)通路202的寫(xiě)入數(shù)據(jù)、或者來(lái)寄存器總線205中數(shù)據(jù)總線上的存儲(chǔ)器操作參數(shù),經(jīng)過(guò)數(shù)據(jù)/地址緩沖區(qū)37在指令/數(shù)據(jù)發(fā)送模塊36的操作下,通過(guò)多通道SPI接口存儲(chǔ)器總線208向多通道SPI接口存儲(chǔ)器寫(xiě)入數(shù)據(jù)或者存儲(chǔ)器操作參數(shù)。主狀態(tài)機(jī)34負(fù)責(zé)控制串行傳輸SPI協(xié)議指令的工作狀態(tài),將SPI命令分成指令階段(inst),地址階段(address),空操作階段(dummy),等待階段(wait),數(shù)據(jù)階段(data)。主狀態(tài)機(jī)控制指令及數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊通過(guò)SPI六根管腳同存儲(chǔ)器交互。指令啟動(dòng)控制模塊33根據(jù)CPU的要求來(lái)啟動(dòng)同SPI接口存儲(chǔ)器的交互。譯碼模塊32將SPI_INST或者SPI_INST_READ中的值解碼告訴主狀態(tài)機(jī)以相應(yīng)的狀態(tài)來(lái)發(fā)送相應(yīng)的命令。同步邏輯31將BVCI接口的控制信號(hào)跨時(shí)鐘域工作在比系統(tǒng)時(shí)鐘慢的SPI時(shí)鐘下。指令及數(shù)據(jù)發(fā)送模塊36負(fù)責(zé)按照SPI協(xié)議發(fā)送指令、地址和數(shù)據(jù)。數(shù)據(jù)接收模塊35負(fù)責(zé)接收來(lái)自SPI接口存儲(chǔ)器的數(shù)據(jù)。數(shù)據(jù)/地址緩沖區(qū)37暫時(shí)保存接收或者待發(fā)送的數(shù)據(jù)和地址。主狀態(tài)機(jī)34是主控制器24的控制調(diào)度中心,其工作機(jī)制敘述如下1)主狀態(tài)機(jī)34的狀態(tài)切換參見(jiàn)附圖2。本發(fā)明根據(jù)常用SPI協(xié)議指令的特點(diǎn),將主狀態(tài)機(jī)設(shè)計(jì)為七個(gè)狀態(tài),分別是空閑(statejdle)、指令(StatejriSt)Jii^i(state_addr)、空操作(satae_dummy)、等待(state_wait)、數(shù)據(jù)_0(state_dataO)、數(shù)據(jù)_1(state_datal),可以分別控制指令/數(shù)據(jù)發(fā)送模塊36和數(shù)據(jù)接收模塊35的工作。當(dāng)主狀態(tài)機(jī)34檢測(cè)到由指令啟動(dòng)控制模塊33發(fā)來(lái)的指令啟動(dòng)信號(hào)時(shí),主狀態(tài)機(jī)34從idle進(jìn)入到inst狀態(tài)開(kāi)始一次指令的發(fā)送。但是如果是數(shù)據(jù)讀寫(xiě)傳輸,而且地址連續(xù)的話,idle狀態(tài)可以直接跳轉(zhuǎn)到dataO或者datal傳送數(shù)據(jù)任何一個(gè)狀態(tài),結(jié)束傳輸后根據(jù)寄存器的配置可以跳往下一個(gè)狀態(tài)或者跳回到idle等待CPU發(fā)起下一個(gè)SPI指令傳輸。根據(jù)需要發(fā)送的不同SPI指令,對(duì)寄存器有不同的配置,當(dāng)指令沒(méi)有地址部分,狀態(tài)機(jī)會(huì)直接從idle跳轉(zhuǎn)到dummy,如果指令不包括dummy,直接跳轉(zhuǎn)到wait甚至dataO。引入state_dataO禾口state_datal的目的是為了提高SPI傳輸效率,數(shù)據(jù)bufferO和數(shù)據(jù)bufferl都具有32位,兩個(gè)buffer的數(shù)據(jù)輪換發(fā)送或者接收作為緩沖,有效地避免了中間的等待時(shí)間,可以完全做到不間斷數(shù)據(jù)傳輸。2)主狀態(tài)機(jī)34負(fù)責(zé)各個(gè)時(shí)刻控制器的工作,控制指令/數(shù)據(jù)發(fā)送模塊36發(fā)送SPI協(xié)議的指令同SPI接口存儲(chǔ)器交互,同時(shí)控制數(shù)據(jù)接收模塊35接收來(lái)自SPI接口存儲(chǔ)器的數(shù)據(jù),接收或者待發(fā)送的數(shù)據(jù)/地址保存在緩沖區(qū)37中。由于總線接口方面時(shí)鐘一般高于串行接口的波特率時(shí)鐘,因此需要經(jīng)過(guò)同步邏輯31使BVCI接口的控制信號(hào)能夠被主控制器采到。指令啟動(dòng)控制模塊33主要負(fù)責(zé)發(fā)起一次SPI協(xié)議的指令傳輸,當(dāng)指令操作控制寄存器SPI_INST_SET發(fā)出啟動(dòng)命令或者BVCI數(shù)據(jù)通路總線上發(fā)出讀寫(xiě)請(qǐng)求時(shí),指令啟動(dòng)控制模塊33會(huì)做出響應(yīng)啟動(dòng)主狀態(tài)機(jī)進(jìn)入指令發(fā)送狀態(tài)。譯碼邏輯32主要負(fù)責(zé)將SPI_INST或者SPI_INST_READ中的值解碼告訴主狀態(tài)機(jī)34以相應(yīng)的狀態(tài)來(lái)發(fā)送相應(yīng)的命令。3)當(dāng)總線上對(duì)SPI接口存儲(chǔ)器空間有訪問(wèn)請(qǐng)求時(shí),能夠自動(dòng)啟動(dòng)SPI指令發(fā)送模塊將總線上的地址加載到SPI規(guī)格的命令中發(fā)送,當(dāng)前32位數(shù)據(jù)傳輸結(jié)束后會(huì)有反饋信號(hào)通知總線。總線上就像對(duì)RAM進(jìn)行訪問(wèn)一樣方便,軟件不需要任何開(kāi)銷,全部由硬件完成。只有數(shù)據(jù)通路完全達(dá)到像RAM—樣操作時(shí),才能進(jìn)行真正的程序在SPI接口存儲(chǔ)器上運(yùn)行,因?yàn)槌绦蜻\(yùn)行只會(huì)不斷地訪問(wèn)新的地址空間來(lái)獲取指令,程序不可能一邊運(yùn)行一邊配置滿足SPI協(xié)議的指令,用戶甚至不知道在訪問(wèn)SPI接口存儲(chǔ)器,因?yàn)樗税l(fā)出訪問(wèn)地址之外只要等數(shù)據(jù)回來(lái)即可,根本不用理會(huì)對(duì)存儲(chǔ)器的各種復(fù)雜的SPI協(xié)議命令。4)由于BVCI總線有一個(gè)特點(diǎn),就是它的請(qǐng)求和響應(yīng)分開(kāi)操作,在一個(gè)地址訪問(wèn)的時(shí)候,控制器收到讀請(qǐng)求后去和存儲(chǔ)器交互準(zhǔn)備數(shù)據(jù),總線在等待數(shù)據(jù)的同時(shí)總線已經(jīng)將下一個(gè)讀請(qǐng)求發(fā)送過(guò)來(lái)了,當(dāng)控制器準(zhǔn)備好數(shù)據(jù)后會(huì)對(duì)總線發(fā)出一個(gè)響應(yīng),此時(shí),控制器才會(huì)接收下一個(gè)請(qǐng)求。在控制器準(zhǔn)備數(shù)據(jù)的時(shí)候地址預(yù)判斷模塊就會(huì)對(duì)當(dāng)前地址和下一個(gè)請(qǐng)求地址比較,如果兩個(gè)地址相差4(比如地址是000004和000008),則認(rèn)為是連續(xù)的burst訪問(wèn),主狀態(tài)機(jī)就會(huì)在dataO和datal之間切換,而不是回到idle重新發(fā)送命令地址等,這樣充分利用了SPI能夠連續(xù)傳輸遞增地址的數(shù)據(jù)的特點(diǎn),可以只發(fā)送一次指令和地址。為了做到不間斷的數(shù)據(jù)傳輸,本發(fā)明還引入了一個(gè)數(shù)據(jù)地址預(yù)判斷模塊。在一個(gè)較佳實(shí)施例中增加了地址預(yù)判斷邏輯38。因?yàn)镾PI協(xié)議特點(diǎn)是便于連續(xù)地址的訪問(wèn),只發(fā)送一次初始地址,之后全部是數(shù)據(jù),這樣傳輸效率可以保持比較高。當(dāng)通過(guò)串行控制器傳輸數(shù)據(jù)時(shí),如果我們對(duì)總線上的下一個(gè)訪問(wèn)地址進(jìn)行預(yù)判斷,當(dāng)?shù)刂肥巧弦淮蔚刂返?Byte累加時(shí),就認(rèn)為是連續(xù)地址,控制器會(huì)做出相應(yīng)處理使指令發(fā)送模塊不重新發(fā)送指令和地址,而直接發(fā)送或者接受數(shù)據(jù)。這樣做的根本目的是使SPI接口存儲(chǔ)器傳輸數(shù)據(jù)發(fā)揮最大效率,不暫停傳輸,盡量采用burst傳輸。6、圖6是將本發(fā)明所提供的技術(shù)方案集成到一款指紋識(shí)別SOC芯片的掛接示意圖。TPS375是一款指紋識(shí)別SOC芯片,里面集成了多通道SPI接口控制邏輯,外掛一款4通道的SPI接口FLASH,型號(hào)為W25Q80,是華邦公司新推的一款多通道SPI接口存儲(chǔ)器。具體實(shí)施步驟如下1)首先下載FLASH程序。在ROM中有程序負(fù)責(zé)從USB口通過(guò)多通道SPI接口控制器將指紋采集拼接以及比對(duì)算法和USB設(shè)備驅(qū)動(dòng)程序等下載到FLASH中。由于FLASH是頁(yè)操作模式,一次只能寫(xiě)入一頁(yè)(256Byte),而且每次寫(xiě)操作前需要發(fā)送寫(xiě)使能命令,寫(xiě)之前需要將該空間擦除為1,寫(xiě)之后需要發(fā)送檢測(cè)FLASH寄存器是否寫(xiě)完,這些FLASH的固有特性使FLASH下載需要特殊的程序來(lái)完成。2)當(dāng)FLASH下載完畢,斷電,重新啟動(dòng)芯片,然后跳轉(zhuǎn)到串行FLASH空間執(zhí)行之前下載到里面的程序。首先運(yùn)行程序按照默認(rèn)的單通道來(lái)“03”指令來(lái)取指運(yùn)行,而且速度保持在20M,因?yàn)榭紤]到需要兼容各個(gè)廠家的SPI單、雙、四通道FLASH支持情況,當(dāng)串行FLASH程序執(zhí)行到配置快速模式時(shí),CPU將控制器配置成320Mbps的4通道模式后,可以由示波器觀察到SPI引腳上的時(shí)鐘和數(shù)據(jù)明顯變快,接下來(lái)全部按照4通道320bps的速度運(yùn)行串行FLASH中的程序。3)由于FLASH里面有USB設(shè)備驅(qū)動(dòng)和指紋處理相關(guān)的程序,將USB插上電腦,通過(guò)USB接口,就可以執(zhí)行PC機(jī)中的上位機(jī)軟件,找到指紋識(shí)別設(shè)備。當(dāng)PC檢測(cè)到USB設(shè)備后,在FLASH中程序運(yùn)行采集指紋的程序,該程序負(fù)責(zé)從一款光學(xué)指紋傳感器采集圖像,并且通過(guò)USB口在PC上顯示。同時(shí),可以將指紋圖像保存到串行FLASH中的數(shù)據(jù)空間,當(dāng)指紋儀采集到新的指紋時(shí),可以同F(xiàn)LASH中的指紋數(shù)據(jù)比對(duì)計(jì)算。指紋處理需要的特征提取、比對(duì)、搜索等算法都在FLASH空間中執(zhí)行。4)整個(gè)指紋識(shí)別程序在串行FLASH上運(yùn)行效果良好,程序大約IOOKbyte左右。此外,TPS375芯片含有SKcache空間,許多重復(fù)循環(huán)的程序只需要讀取一次,運(yùn)行效率大大提高,因此在開(kāi)啟cache的情況下在多通道SPI接口FLASH上執(zhí)行程序的效果接近并行存儲(chǔ)器的效果。權(quán)利要求一種SPI接口存儲(chǔ)器執(zhí)行程序的裝置,其特征是主要包括數(shù)據(jù)通路接口(21)、控制通路接口(22)、主控制器(24)、寄存器組(26)和波特率控制邏輯(28),CPU總線(201)分別與數(shù)據(jù)通路接口(21)、控制通路接口(22)相連,數(shù)據(jù)通路接口(21)通過(guò)數(shù)據(jù)通路(202)及數(shù)據(jù)控制線(204D)與主控制器(24)相連;控制通路接口(22)一路通過(guò)控制通路(203)與寄存器組(26)相連,另一路通過(guò)指令控制線(204C)與主控制器(24)相連;寄存器組(26)一路通過(guò)寄存器總線(205)與主控制器(24)連接,另一路通過(guò)數(shù)據(jù)總線(206)與波特率控制邏輯(28)連接;主控制器(24)與時(shí)鐘線(207)相連,主控制器(24)引出多通道SPI接口存儲(chǔ)器總線(208),多通道SPI接口存儲(chǔ)器總線(208)用于與多通道SPI接口存儲(chǔ)器相連。2.根據(jù)權(quán)利要求1所述的SPI接口存儲(chǔ)器執(zhí)行程序的裝置,其特征是在數(shù)據(jù)通路(202)上連接有加/解密模塊(23),用于將數(shù)據(jù)通路(202)上準(zhǔn)備寫(xiě)入多通道SPI接口存儲(chǔ)器的數(shù)據(jù)先經(jīng)加/解密模塊(23)加密,從多通道SPI接口存儲(chǔ)器讀出的加密數(shù)據(jù)在送往數(shù)據(jù)通路接口(21)之前進(jìn)行解密;寄存器組(26)通過(guò)加/解密控制線(209)與加/解密模塊(23)相連接,用于控制加/解密模塊(23)的開(kāi)啟或關(guān)閉。3.根據(jù)權(quán)利要求1或2所述的SPI接口存儲(chǔ)器執(zhí)行程序的裝置,其特征是CPU總線(201)采用32位BVCI總線;數(shù)據(jù)通路(202)包含24位地址線和64位數(shù)據(jù)線;控制通路(203)包含3位地址線和32位數(shù)據(jù)線;數(shù)據(jù)控制線204D與指令控制線204C均為2位的同步信號(hào)控制線;寄存器總線(205)包含5組32位的總線,其中3組為單向傳輸?shù)目刂瓶偩€,2組為雙向傳輸?shù)臄?shù)據(jù)總線;數(shù)據(jù)總線(206)由8位數(shù)據(jù)線構(gòu)成;多通道SPI接口存儲(chǔ)器總線(208)是6位的SPI接口協(xié)議總線。4.根據(jù)權(quán)利要求1或2所述的SPI接口存儲(chǔ)器執(zhí)行程序的裝置,其特征是主控制器(24)內(nèi)部包括同步邏輯(31)、譯碼邏輯(32)、指令啟動(dòng)控制模塊(33)、主狀態(tài)機(jī)(34)、數(shù)據(jù)接受模塊(35)、指令/數(shù)據(jù)發(fā)送模塊(36)和數(shù)據(jù)/地址緩沖區(qū)(37),它與外部的連接是同步邏輯(31)與數(shù)據(jù)控制線(204D)、指令控制線(204C)相連;譯碼邏輯(32)與寄存器總線(205)中的控制總線相連;數(shù)據(jù)/地址緩沖區(qū)(37)與數(shù)據(jù)通路(202)、以及寄存器總線(205)中的數(shù)據(jù)總線相連,內(nèi)部工作方式及連接關(guān)系是1_來(lái)自寄存器總線(205)的指令信息,被譯碼邏輯(32)譯碼后,經(jīng)由控制總線(303)進(jìn)入由控制邏輯組成的主狀態(tài)機(jī)(34);同步邏輯(31)用于將來(lái)自數(shù)據(jù)通路接口、或控制通路接口的控制信號(hào)同步,經(jīng)過(guò)同步控制總線(301)送入指令啟動(dòng)控制模塊(33),致使指令啟動(dòng)控制模塊(33)在適當(dāng)?shù)臅r(shí)刻,通過(guò)啟動(dòng)信號(hào)線(302)向主狀態(tài)機(jī)(34)發(fā)送指令啟動(dòng)信號(hào);2_數(shù)據(jù)接收模塊(35)分別與主狀態(tài)機(jī)(34)和數(shù)據(jù)/地址緩沖區(qū)(37)相連,經(jīng)由數(shù)據(jù)接收控制總線(304)與主狀態(tài)機(jī)進(jìn)行控制反饋;數(shù)據(jù)接收模塊(35)通過(guò)多通道SPI接口存儲(chǔ)器總線(208)讀出SPI存儲(chǔ)器中的數(shù)據(jù)或者存儲(chǔ)器作參數(shù),經(jīng)由數(shù)據(jù)接收總線(306)將讀出的數(shù)據(jù)或者存儲(chǔ)器操作參數(shù)放入數(shù)據(jù)/地址緩沖區(qū)(37)后,經(jīng)由數(shù)據(jù)通路(202)或者寄存器總線(205)中的數(shù)據(jù)總線、控制通路(203),發(fā)送給CPU總線(201);3_指令/數(shù)據(jù)發(fā)送模塊(36)分別與主狀態(tài)機(jī)(34)和數(shù)據(jù)/地址緩沖區(qū)(37)相連,經(jīng)由指令/數(shù)據(jù)發(fā)送控制總線(305)與主狀態(tài)機(jī)進(jìn)行控制反饋,來(lái)自數(shù)據(jù)通路(202)的寫(xiě)入數(shù)據(jù)、或者來(lái)自寄存器總線(205)中數(shù)據(jù)總線上的存儲(chǔ)器操作參數(shù),經(jīng)過(guò)數(shù)據(jù)/地址緩沖區(qū)(37)在指令/數(shù)據(jù)發(fā)送模塊(36)的操作下,通過(guò)多通道SPI接口存儲(chǔ)器總線(208)向多通道SPI接口存儲(chǔ)器寫(xiě)入數(shù)據(jù)或者存儲(chǔ)器操作參數(shù)。5.根據(jù)權(quán)利要求1或2所述的SPI接口存儲(chǔ)器執(zhí)行程序的裝置,其特征是在主控制器(24)中增加地址預(yù)判邏輯(38),用于監(jiān)控?cái)?shù)據(jù)通路(202)上地址信息的變化情況并作出預(yù)判,必要時(shí)令主狀態(tài)機(jī)(34)中止指令和地址發(fā)送,令數(shù)據(jù)接收模塊(35)或指令/數(shù)據(jù)發(fā)送模塊(36)直接從多通道SPI接口存儲(chǔ)器讀出、或者寫(xiě)入數(shù)據(jù)。6.一種SPI接口存儲(chǔ)器執(zhí)行程序方法,其特征在于,包括如下步驟1)根據(jù)處理器CPU對(duì)多通道SPI接口存儲(chǔ)器進(jìn)行操作的特點(diǎn),將這些操作概括為“空閑”、“指令”、“地址”、“空操作”、“等待”、“數(shù)據(jù)”6個(gè)工作狀態(tài),并結(jié)合多通道SPI接口存儲(chǔ)器控制機(jī)制,規(guī)劃出這些工作狀態(tài)之間相互轉(zhuǎn)換的各種操作,作為設(shè)計(jì)狀態(tài)機(jī)(控制邏輯)的依據(jù);2)對(duì)步驟1所述6個(gè)工作狀態(tài)所處的工作條件進(jìn)行量化,這些工作條件包括1_采用的通道模式;2_各種工作狀態(tài)所需的工作節(jié)拍;3)分別設(shè)立控制通路和數(shù)據(jù)通路,當(dāng)CPU與多通道SPI接口存儲(chǔ)器信息交互時(shí),令數(shù)據(jù)存儲(chǔ)空間操作與寄存器空間操作彼此分離;4)配置一個(gè)讀/寫(xiě)操作寄存器,用以控制從多通道SPI接口存儲(chǔ)器讀出或者寫(xiě)入數(shù)據(jù),讀/寫(xiě)操作寄存器內(nèi)應(yīng)當(dāng)含有步驟2所規(guī)定的工作條件;5)逐一配置指令操控寄存器、寫(xiě)入?yún)?shù)寄存器、讀出參數(shù)寄存器,以便對(duì)多通道SPI接口存儲(chǔ)器內(nèi)部寄存器進(jìn)行操作,包括向存儲(chǔ)器內(nèi)部寄存器寫(xiě)入或者讀出內(nèi)部參數(shù);寫(xiě)入?yún)?shù)寄存器、讀出參數(shù)寄存器的開(kāi)啟和關(guān)閉,由指令操作寄存器管理;6)配置一個(gè)時(shí)鐘配置寄存器,用來(lái)存放使CPU與多通道SPI接口存儲(chǔ)器時(shí)鐘匹配的參數(shù);7)按照步驟1給出的工作狀態(tài)轉(zhuǎn)換流程圖、以及步驟3確定的在不同通路交互不同信息的規(guī)則,確定狀態(tài)機(jī)(控制邏輯);使得推動(dòng)CPU與多通道SPI接口存儲(chǔ)器信息交互的各項(xiàng)操作,在規(guī)定的通路、按規(guī)定的工作節(jié)拍進(jìn)行;8)配置一個(gè)指令寄存器,對(duì)CPU指令進(jìn)行解析1_如果CPU指令訪問(wèn)多通道SPI接口存儲(chǔ)控制器內(nèi)部存儲(chǔ)空間,1/開(kāi)通數(shù)據(jù)通路,進(jìn)行數(shù)據(jù)讀/寫(xiě)操作;2_如果CPU指令訪問(wèn)多通道SPI接口存儲(chǔ)控制器的寄存器空間,1/打開(kāi)控制通路,進(jìn)行內(nèi)部參數(shù)的讀/寫(xiě)操作。7.權(quán)利要求6所述的SPI接口存儲(chǔ)器執(zhí)行程序方法,其特征在于,所述工作狀態(tài)中新增的輔助“數(shù)據(jù)”狀態(tài),與步驟1所述的“數(shù)據(jù)”工作狀態(tài)形成切換操作,并規(guī)劃出改進(jìn)后的工作狀態(tài)轉(zhuǎn)換的各種操作流程,使來(lái)自數(shù)據(jù)通路的大量讀/寫(xiě)數(shù)據(jù)在操作狀態(tài)轉(zhuǎn)換控制下,同時(shí)與CPU和多通道SPI接口存儲(chǔ)控制器進(jìn)行數(shù)據(jù)交互。8.權(quán)利要求6所述的SPI接口存儲(chǔ)器執(zhí)行程序方法,其特征在于,所述讀/寫(xiě)操作寄存器與指令寄存器具有相同的數(shù)據(jù)位結(jié)構(gòu),這些數(shù)據(jù)位存放的信息包括1)工作狀態(tài)的通道模式、2)各種工作狀態(tài)所需要的工作節(jié)拍、3)多通道SPI接口存儲(chǔ)器指令數(shù)據(jù)位信息;指令操作寄存器的數(shù)據(jù)位具有1)控制寫(xiě)入?yún)?shù)寄存器啟閉的數(shù)據(jù)位、2)控制讀出參數(shù)寄存器啟閉的數(shù)據(jù)位、2)啟動(dòng)加/解密模塊的數(shù)據(jù)位等其他與指令操作有關(guān)的控制標(biāo)志位;寫(xiě)入?yún)?shù)寄存器的數(shù)據(jù)位具有1)對(duì)多通道SPI接口存儲(chǔ)器內(nèi)部寄存器進(jìn)行參數(shù)寫(xiě)入的數(shù)據(jù)位、2)擦除多通道SPI接口存儲(chǔ)器內(nèi)部數(shù)據(jù)的地址數(shù)據(jù)位;讀出參數(shù)寄存器應(yīng)有存放多通道SPI接口存儲(chǔ)器內(nèi)部參數(shù)讀出信息的數(shù)據(jù)位;時(shí)鐘配置寄存器含有存放分頻數(shù)、旁路信息的數(shù)據(jù)位。全文摘要本發(fā)明涉及SOC集成電路設(shè)計(jì)領(lǐng)域,尤其是一種SPI接口存儲(chǔ)器執(zhí)行程序方法和裝置。本發(fā)明所采取的主要技術(shù)手段是規(guī)劃多通道SPI接口存儲(chǔ)器的操作狀態(tài)及其轉(zhuǎn)換機(jī)制、量化各操作狀態(tài)工作條件、設(shè)計(jì)不同寄存器和控制邏輯在數(shù)據(jù)和控制兩個(gè)通路中獨(dú)立有序地進(jìn)行指令和數(shù)據(jù)的雙向流動(dòng);硬件設(shè)備主要包括數(shù)據(jù)通路接口、控制通路接口、主控制器、寄存器組、波特率控制邏輯,以及各種不同的連接總線。本發(fā)明有益的效果本發(fā)明兼容各類單、雙、四通道等多通道SPI接口存儲(chǔ)器指令,使多通道SPI接口存儲(chǔ)器從數(shù)據(jù)存儲(chǔ)載體拓展到程序運(yùn)行載體,并大幅度減少存儲(chǔ)器外部引腳資源,使該類存儲(chǔ)器集成到SOC單芯片系統(tǒng)時(shí),在縮小硅片面積、提高系統(tǒng)可靠性、便于二次開(kāi)發(fā)等方面具有明顯優(yōu)勢(shì)。文檔編號(hào)G06F13/12GK101819560SQ20091009623公開(kāi)日2010年9月1日申請(qǐng)日期2009年2月27日優(yōu)先權(quán)日2009年2月27日發(fā)明者張飛飛,李兆亮,邱柏云申請(qǐng)人:杭州晟元芯片技術(shù)有限公司