程序存儲器的控制裝置及其處理器系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本實用新型屬于計算機(jī)技術(shù),更具體地,涉及程序存儲器的控制裝置及其處理器系統(tǒng)。
【背景技術(shù)】
[0002]在處理器系統(tǒng)中,程序存儲器用于保存應(yīng)用程序代碼(指令),同時還可以用于保存程序執(zhí)行時用到的數(shù)據(jù)(例如操作數(shù)、查找表信息)。對于那些只有一個程序存儲器的處理器系統(tǒng),CPU往往會有指令緩存。當(dāng)所需指令不在緩存中時就要讀取程序存儲器上的指令。所以,當(dāng)處理器系統(tǒng)程序運行起來時,CPU和程序存儲器的接口不斷地進(jìn)行通信。此時程序存儲器接口的控制權(quán)是交給(PU的,因此無法對程序存儲器進(jìn)行可編程的讀寫操作。
[0003]圖1示出根據(jù)現(xiàn)有技術(shù)的處理器系統(tǒng)的示意性框圖。處理器系統(tǒng)包括片上系統(tǒng)(SoC) 100和程序存儲器200。片上系統(tǒng)100包括中央處理器(CPU) 101、高速緩沖存儲器(CACHE) 102和接口控制器103。盡管未在圖中示出,片上系統(tǒng)100還可以包括內(nèi)存(RAM)。接口控制器103負(fù)責(zé)控制程序存儲器200,將程序存儲器200的一部分?jǐn)?shù)據(jù)自動調(diào)入高速緩沖存儲器102中。CPU的指令和操作數(shù)或者通過高速緩沖存儲器102來獲得,或者經(jīng)由接口控制器103從程序存儲器200來獲得。
[0004]在工作狀態(tài)下,中央處理器101根據(jù)當(dāng)前指令和操作數(shù)內(nèi)容,從程序存儲器200的下一個目標(biāo)地址獲取新的指令和操作數(shù),反復(fù)執(zhí)行上述操作。因此,在工作狀態(tài)下CPU獨占程序存儲器200的接口。
[0005]由于該處理器架構(gòu)的限制,使得在實現(xiàn)某些應(yīng)用時顯不方便。例如,在程序升級時,就要使用外部調(diào)試設(shè)備先讓系統(tǒng)進(jìn)入調(diào)試模式,再進(jìn)行程序升級,或者需要將程序存儲器件從電路板上焊下,燒錄好新程序后,再將程序存儲器件焊上機(jī)器。
[0006]然而,期望能夠在工作狀態(tài)下,通過外設(shè)設(shè)備(比如內(nèi)置升級文件的U盤)與系統(tǒng)通信來完成程序的升級。
【實用新型內(nèi)容】
[0007]本實用新型的目的在于提供一種可以在工作狀態(tài)下對程序存儲器進(jìn)行外部操作的程序存儲器的控制裝置及其處理器系統(tǒng)。
[0008]根據(jù)本實用新型的一方面,提供一種程序存儲器控制裝置,包括:第一端口,用于與處理器相連;第二端口,用于與高速緩沖存儲器相連;以及第三端口,用于與接口控制器相連,其中,所述程序存儲器控制裝置提供控制信號的路由功能,使得第二端口與第三端口之間的第一控制信號路徑、或者第一端口與第三端口之間的第二控制信號路徑連通。
[0009]優(yōu)選地,所述第三端口包括第三控制端口和第三數(shù)據(jù)端口,所述程序存儲器控制裝置還包括:控制寄存器,分別經(jīng)由第一端口與處理器相連,以及經(jīng)由第三數(shù)據(jù)端口與接口控制器相連;以及選擇器,分別經(jīng)由第二端口與高速緩沖存儲器相連,經(jīng)由內(nèi)部的第四端口與控制寄存器相連,以及經(jīng)由第三控制端口與接口控制器相連,其中,所述選擇器還包括選擇端口,所述控制寄存器向所述選擇器的選擇端口提供選擇信號,使得第二端口和第四端口之一與第三控制端口連通,從而選擇第一控制信號路徑和第二控制信號路徑之一。
[0010]根據(jù)本實用新型的另一方面,提供一種處理器系統(tǒng),包括:程序存儲器,用于存儲程序數(shù)據(jù);接口控制器,與程序存儲器連接,并且管理針對程序存儲器的訪問;高速緩沖存儲器,與接口控制器連接,用于經(jīng)由接口控制器從程序存儲器獲取程序數(shù)據(jù),以提供處理器所需的指令和操作數(shù);處理器,與高速緩沖存儲器連接,用于從高速緩沖存儲器獲取指令和操作數(shù);以及程序存儲器控制裝置,包括第一端口,用于與處理器相連;第二端口,用于與高速緩沖存儲器相連;以及第三端口,用于與接口控制器相連,其中,所述程序存儲器控制裝置提供控制信號的路由功能,使得第二端口與第三端口之間的第一控制信號路徑、或者第一端口與第三端口之間的第二控制信號路徑連通,在第一控制信號路徑連通時,所述接口控制器工作于CHJ控制模式,其中,在高速緩沖存儲器與程序存儲器之間自動進(jìn)行數(shù)據(jù)緩存,在第二控制信號路徑連通時,所述接口控制器工作于寄存器控制模式,其中處理器對程序存儲器進(jìn)行讀、寫和擦除操作中的至少一種操作。
[0011 ]優(yōu)選地,所述第三端口包括第三控制端口和第三數(shù)據(jù)端口,所述程序存儲器控制裝置還包括:控制寄存器,分別經(jīng)由第一端口與處理器相連,以及經(jīng)由第三數(shù)據(jù)端口與接口控制器相連;以及選擇器,分別經(jīng)由第二端口與高速緩沖存儲器相連,經(jīng)由內(nèi)部的第四端口與控制寄存器相連,以及經(jīng)由第三控制端口與接口控制器相連,其中,所述選擇器還包括選擇端口,所述控制寄存器向所述選擇器的選擇端口提供選擇信號,使得第二端口和第四端口之一與第三控制端口連通,從而選擇第一控制信號路徑和第二控制信號路徑之一。優(yōu)選地,處理器為片上系統(tǒng)中的內(nèi)部處理器。
[0012]優(yōu)選地,在CPU控制模式中,處理器經(jīng)由高速緩沖存儲器和接口控制器,從程序存儲器中獲取指令和/或操作數(shù)。
[0013]優(yōu)選地,所述處理器系統(tǒng)還包括內(nèi)存,所述內(nèi)存連接在處理器和外設(shè)設(shè)備之間,用于存儲從外設(shè)設(shè)備讀取的數(shù)據(jù),其中,在寄存器控制模式中,處理器讀取內(nèi)存的數(shù)據(jù),并且經(jīng)由程序存儲器控制裝置和接口控制器寫入程序存儲器。
[0014]優(yōu)選地,內(nèi)存的數(shù)據(jù)是升級文件的至少一部分。
[0015]優(yōu)選地,高速緩沖存儲器具有地址鎖定功能,在預(yù)先將驅(qū)動程序復(fù)制到高速緩沖存儲器中并鎖定之后,才執(zhí)行高速緩沖存儲器中的驅(qū)動程序,切換接口控制器的工作模式。
[0016]優(yōu)選地,程序存儲器的接口為可編程復(fù)用的接口。
[0017]優(yōu)選地,所述程序存儲器為SPI FLASH,并且,所述處理器系統(tǒng)還包括SPI接口設(shè)備,所述SPI FLASH和所述SPI設(shè)備經(jīng)由公共的SPI總線連接至接口控制器。
[0018]優(yōu)選地,通過片選信號的分時控制,實現(xiàn)SPIFLASH和SPI接口設(shè)備的復(fù)用控制。
[0019]根據(jù)本實用新型的又一方面,提供一種程序存儲器的控制方法,包括:在接口控制器的第一模式,將驅(qū)動程序復(fù)制到高速緩沖存儲器中;將接口控制器從第一模式切換至第二模式;以及在接口控制器的第二模式,將數(shù)據(jù)從內(nèi)存寫入程序存儲器,其中,第一模式為接口控制器的CPU控制模式,其中在高速緩沖存儲器與程序存儲器之間自動進(jìn)行數(shù)據(jù)緩存,第二模式為接口控制器的寄存器控制模式,其中處理器對程序存儲器進(jìn)行讀、寫和擦除操作中的至少一種操作。
[0020]優(yōu)選地,所述程序存儲器包括程序區(qū)和保留區(qū),其中,程序區(qū)存儲第一復(fù)制程序、升級驅(qū)動程序以及第二復(fù)制程序。
[0021]優(yōu)選地,將驅(qū)動程序復(fù)制到高速緩沖存儲器中的步驟包括:執(zhí)行第一復(fù)制程序?qū)Ⅱ?qū)動程序復(fù)制到高速緩沖存儲器中,其中,在預(yù)先將驅(qū)動程序復(fù)制到高速緩沖存儲器中并鎖定之后,才執(zhí)行高速緩沖存儲器中的驅(qū)動程序,切換接口控制器的工作模式,所述高速緩沖存儲器具有地址鎖定功能。
[0022]優(yōu)選地,將數(shù)據(jù)從內(nèi)存寫入程序存儲器的步驟之前還包括:執(zhí)行第二復(fù)制程序?qū)⑼庠O(shè)設(shè)備內(nèi)的文件讀入內(nèi)存。
[0023]優(yōu)選地,通過程序存儲器控制裝置提供控制信號的路由功能,使得接口控制器工作于第一模式和第二模式之一。
[0024]優(yōu)選地,程序存儲器控制裝置包括分別與處理器、高速緩沖存儲器、接口控制器相連的第一至第三端口,并且程序存儲器控制裝置根據(jù)選擇信號