專利名稱:嵌入式處理器高速協(xié)處理器接口的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式處理器的協(xié)處理器接口。
背景技術(shù):
協(xié)處理器為與CPU協(xié)同工作而設(shè)計(jì),該處理單元與CPU —起使
用來(lái)承擔(dān)通常由后者執(zhí)行的運(yùn)算。通常,協(xié)處理器功能在硬件中實(shí)現(xiàn)以替代幾種軟件指令。通過(guò)減少多種代碼指令為單一指令,以及在硬
件中直接實(shí)現(xiàn)指令的方式,從而實(shí)現(xiàn)代碼加速。協(xié)處理器與CPU之間
的數(shù)據(jù)通信成為影響嵌入式系統(tǒng)性能的一個(gè)重要因素。協(xié)處理器與
CPU的連接有三種基本的形式與CPU總線連接的、與I/O連接的和指令流水線連接(Instruction Pipeline Connection)。此外,還存在一些這些形式的混合形式。訪問(wèn)協(xié)處理器通常需要專門的協(xié)處理器指令,用以控制協(xié)處理器的讀寫和運(yùn)算操作。由于協(xié)處理器通常運(yùn)算速度較CPU慢,則協(xié)處理器指令的執(zhí)行會(huì)影響到CPU流水線的連續(xù)性,造成流水線停頓;協(xié)處理器與CPU時(shí)鐘不同步也會(huì)影響協(xié)處理器指令執(zhí)行的速度;當(dāng)掛載多個(gè)協(xié)處理器時(shí),多個(gè)設(shè)備間的協(xié)調(diào)策略和切換方式也影響著CPU指令執(zhí)行的連續(xù)性。這些都成為設(shè)計(jì)協(xié)處理器接口需要仔細(xì)考慮的重要因素。
發(fā)明內(nèi)容
為了克服已有的嵌入式處理器的協(xié)處理器接口的數(shù)據(jù)傳輸速度較慢、削弱了處理器的性能的不足,本發(fā)明提供一種提高CPU和協(xié)處理器之間的數(shù)據(jù)傳輸速度、提升了處理器的性能的嵌入式處理器高速協(xié)處理器接口。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是
一種嵌入式處理器高速協(xié)處理器接口 ,包括依次連接的第一級(jí)流水線、第二級(jí)流水線和第三級(jí)流水線,第一級(jí)流水線包括協(xié)處理器保留棧和指令緩沖器,協(xié)處理器接口與外部協(xié)處理器數(shù)據(jù)交互狀態(tài)時(shí)緩存至多兩條協(xié)處理器指令,從保留棧和指令緩沖器中選取當(dāng)前可執(zhí)行的協(xié)處理器指令發(fā)送至下一級(jí)流水線;第二級(jí)流水線包括控制邏輯,產(chǎn)生相應(yīng)的協(xié)處理器選擇與讀寫信號(hào),并進(jìn)行數(shù)據(jù)通信,當(dāng)協(xié)處理器的數(shù)據(jù)讀寫操作完成之后,將得到的結(jié)果發(fā)送至下一級(jí)流水線;第三級(jí)流水線向嵌入式處理器發(fā)起數(shù)據(jù)回寫請(qǐng)求,并通過(guò)通用數(shù)據(jù)總線將結(jié)果返回給嵌入式處理器。
作為優(yōu)選的一種方案所述高速協(xié)處理器接口還包括協(xié)處理器指令定義單元,用于定義協(xié)處理器選擇指令、協(xié)處理器讀數(shù)據(jù)指令和協(xié)處理器寫數(shù)據(jù)指令;其中,協(xié)處理器選擇指令從多個(gè)協(xié)處理器中選中其中一個(gè),協(xié)處理器讀數(shù)據(jù)指令從指定的協(xié)處理器寄存器中讀取數(shù)據(jù)并寫入到指定的CPU通用寄存器中,協(xié)處理器寫數(shù)據(jù)指令向選中的協(xié)處理器寫入既定數(shù)據(jù),等待協(xié)處理器對(duì)這些數(shù)據(jù)進(jìn)行處理。
進(jìn)一步,所述高速協(xié)處理器接口還包括時(shí)鐘邏輯模塊,用于在所述協(xié)處理器接口與外部協(xié)處理器具有相同的高速時(shí)鐘時(shí)進(jìn)行同步工作模式工作;在所述協(xié)處理器接口與外部協(xié)處理器時(shí)鐘頻率不同步時(shí)進(jìn)行異步工作模式工作,時(shí)鐘同步模塊控制協(xié)處理器和CPU之間的數(shù)據(jù)同步傳輸。再進(jìn)一步,設(shè)定協(xié)處理器寄存器相應(yīng)的控制位來(lái)選擇阻塞和非阻塞兩種指令執(zhí)行方式,其中,指令阻塞模式通過(guò)順序執(zhí)行協(xié)處理器指令,對(duì)提交的協(xié)處理器指令發(fā)送至協(xié)處理器接口的后級(jí)流水線進(jìn)行指令執(zhí)行,沒(méi)有提交的指令會(huì)阻塞在協(xié)處理器接口的第一級(jí)流水線上;指令非阻塞模式允許協(xié)處理器指令亂序執(zhí)行,所有的協(xié)處理器指令發(fā)送至協(xié)處理器接口的后級(jí)流水線執(zhí)行。
更進(jìn)一步,當(dāng)選中的協(xié)處理器在執(zhí)行過(guò)程中出現(xiàn)異常時(shí),通過(guò)協(xié)處理器接口返回給嵌入式微處理器,嵌入式微處理器根據(jù)返回的異常向量進(jìn)入對(duì)應(yīng)的異常服務(wù)程序。
所述高速協(xié)處理器接口支持至多16個(gè)不同的協(xié)處理器,通過(guò)譯碼
所述協(xié)處理器選擇指令選中相應(yīng)的協(xié)處理器,后面的協(xié)處理器數(shù)據(jù)讀寫指令的操作是與當(dāng)前所選的協(xié)處理器進(jìn)行交互。
所述的高速協(xié)處理器接口還包括動(dòng)態(tài)低功耗控制邏輯模塊,用于在沒(méi)有新的協(xié)處理器指令并且協(xié)處理器接口處于空閑狀態(tài)時(shí)關(guān)閉模塊時(shí)鐘。
本發(fā)明的技術(shù)構(gòu)思為采用流水線設(shè)計(jì)和專用指令,結(jié)合時(shí)鐘同步技術(shù)、動(dòng)態(tài)切換技術(shù)和低功耗技術(shù),實(shí)現(xiàn)了協(xié)處理器和嵌入式微處理器之間的高速數(shù)據(jù)通信。
本發(fā)明的有益效果主要表現(xiàn)在1)三級(jí)流水線設(shè)計(jì)的協(xié)處理器接口,將執(zhí)行時(shí)延分布在三級(jí)流水線中,實(shí)現(xiàn)了 CPU與協(xié)處理器之間的數(shù)據(jù)高速傳輸;
2) 三種協(xié)處理器專用指令,簡(jiǎn)單有效的實(shí)現(xiàn)了對(duì)協(xié)處理器的控制;
3) 對(duì)同步接口和異步接口兩種工作模式的兼容,擴(kuò)大了處理器的適用范圍;
4)流水線執(zhí)行方式和動(dòng)態(tài)切換技術(shù),實(shí)現(xiàn)了各協(xié)處理器之間的并
行執(zhí)行,有效提高了處理器的性能。
圖1是高速協(xié)處理器接口三級(jí)流水線結(jié)構(gòu)示意圖。
圖2是高速協(xié)處理器接口與各協(xié)處理器間的連接方式的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照?qǐng)D1和圖2, 一種嵌入式處理器高速協(xié)處理器接口,包括依次連接的第一級(jí)流水線、第二級(jí)流水線和第三級(jí)流水線,第一級(jí)流水線包括協(xié)處理器保留棧和指令緩沖器,協(xié)處理器接口與外部協(xié)處理器數(shù)據(jù)交互狀態(tài)時(shí)緩存至多兩條協(xié)處理器指令,從保留棧和指令緩沖器中選取當(dāng)前可執(zhí)行的協(xié)處理器指令發(fā)送至下一級(jí)流水線;第二級(jí)流水線包括控制邏輯,產(chǎn)生相應(yīng)的協(xié)處理器選擇與讀寫信號(hào),并進(jìn)行數(shù)據(jù)通信,當(dāng)協(xié)處理器的數(shù)據(jù)讀寫操作完成之后,將得到的結(jié)果發(fā)送至下一級(jí)流水線;
第三級(jí)流水線向嵌入式處理器發(fā)起數(shù)據(jù)回寫請(qǐng)求,并通過(guò)通用數(shù)據(jù)總線將結(jié)果返回給嵌入式處理器。
所述高速協(xié)處理器接口還包括協(xié)處理器指令定義單元,用于定義協(xié)處理器選擇指令、協(xié)處理器讀數(shù)據(jù)指令和協(xié)處理器寫數(shù)據(jù)指令;其中,協(xié)處理器選擇指令從多個(gè)協(xié)處理器中選中其中一個(gè),協(xié)處理器讀數(shù)據(jù)指令從指定的協(xié)處理器寄存器中讀取數(shù)據(jù)并寫入到指定的CPU通用寄存器中,協(xié)處理器寫數(shù)據(jù)指令向選中的協(xié)處理器寫入既定數(shù)據(jù),等待協(xié)處理器對(duì)這些數(shù)據(jù)進(jìn)行處理。
所述高速協(xié)處理器接口還包括時(shí)鐘邏輯模塊,用于在所述協(xié)處理器接口與外部協(xié)處理器具有相同的高速時(shí)鐘時(shí)進(jìn)行同步工作模式工作;在所述協(xié)處理器接口與外部協(xié)處理器時(shí)鐘頻率不同步時(shí)進(jìn)行異步工作模式工作,時(shí)鐘同步模塊控制協(xié)處理器和CPU之間的數(shù)據(jù)同步傳輸。
所述的高速協(xié)處理器接口還包括動(dòng)態(tài)低功耗控制邏輯模塊,用于在沒(méi)有新的協(xié)處理器指令并且協(xié)處理器接口處于空閑狀態(tài)時(shí)關(guān)閉模塊時(shí)鐘。
本實(shí)施例的嵌入式處理器高速協(xié)處理器接口 ,設(shè)計(jì)分為三級(jí)流水線,如圖1所示。高速協(xié)處理器接口在CPU流水線中處于寄存器級(jí)
(RF)的下級(jí),即與CPU執(zhí)行級(jí)(EX)同級(jí)。高速協(xié)處理器接口流水線分為EX1、 EX2、 EX3三級(jí),EX1級(jí)復(fù)用了處理器RF-EX級(jí)流水線寄存器作為協(xié)處理器接口的保留棧,并設(shè)有指令緩沖器(instructionbuffer),用于緩存協(xié)處理器指令,該緩沖器和保留棧使協(xié)處理器接口處于與外部協(xié)處理器數(shù)據(jù)交互狀態(tài)時(shí)可以緩存至多兩條協(xié)處理器指令,減少了CPU前級(jí)流水線的停頓,提升了CPU的性能。EX1流水線級(jí)的控制邏輯從保留棧和指令緩沖器中選取當(dāng)前可執(zhí)行的協(xié)處理器指令發(fā)送至下一級(jí)流水線。EX2流水線產(chǎn)生相應(yīng)的協(xié)處理器選擇與讀寫信號(hào),并進(jìn)行數(shù)據(jù)通信, 一旦協(xié)處理器的數(shù)據(jù)讀寫操作完成之后,EX2級(jí)流水線將得到的結(jié)果發(fā)送至下一級(jí)流水線;EX3級(jí)向CPU發(fā)起數(shù)據(jù)回寫請(qǐng)求,并通過(guò)通用數(shù)據(jù)總線(common data bus)將結(jié)果返回給CPU,實(shí)現(xiàn)兩者之間的協(xié)同工作。動(dòng)態(tài)低功耗控制邏輯,用于在沒(méi)有新的協(xié)處理器指令并且協(xié)處理器接口處于空閑狀態(tài)時(shí)關(guān)閉模塊時(shí)鐘,降低非工作狀態(tài)下的無(wú)效功耗。嵌入式處理器高速協(xié)處理器接口至多可以掛載16個(gè)不同的協(xié)處理器,如圖2所示,通過(guò)協(xié)處理器選擇指令選擇當(dāng)前與CPU進(jìn)行數(shù)據(jù)交互的協(xié)處理器。具體執(zhí)行方式如下協(xié)處理器選擇指令發(fā)送至EX2
級(jí),通過(guò)EX2級(jí)的控制邏輯對(duì)指令進(jìn)行譯碼,根據(jù)譯碼結(jié)果從至多16個(gè)協(xié)處理器中選中一個(gè),與其進(jìn)行數(shù)據(jù)交互。通過(guò)不同的協(xié)處理器選擇指令可以實(shí)現(xiàn)協(xié)處理器間的動(dòng)態(tài)切換。
在原有CPU指令架構(gòu)的基礎(chǔ)上,在閑置的指令空間中擴(kuò)展了三條專用的協(xié)處理器指令,分別為協(xié)處理器選擇指令、協(xié)處理器讀數(shù)據(jù)指令和協(xié)處理器寫數(shù)據(jù)指令。高速協(xié)處理器接口可擴(kuò)展連接16個(gè)協(xié)處理器,而協(xié)處理器選擇指令用于從至多16個(gè)協(xié)處理器中選中其中一個(gè)。協(xié)處理器讀數(shù)據(jù)指令負(fù)責(zé)從指定的協(xié)處理器寄存器中讀取數(shù)據(jù)并寫入到指定的CPU通用寄存器中,而協(xié)處理器寫數(shù)據(jù)指令則負(fù)責(zé)向選中的協(xié)處理器寫入既定數(shù)據(jù),等待協(xié)處理器對(duì)這些數(shù)據(jù)進(jìn)行處理。這三種指令既有效滿足了 CPU與協(xié)處理器之間的數(shù)據(jù)通信需求,也充分利用了閑置的指令空間,提升了 CPU的擴(kuò)展性能。
協(xié)處理器接口既可使用與外部協(xié)處理器相同的高速時(shí)鐘進(jìn)行工作(同步工作模式),也可在與外部協(xié)處理器時(shí)鐘頻率不同步的模式下工作,即異步工作模式,在該模式下,高速協(xié)處理器接口通過(guò)時(shí)鐘同步邏輯模塊實(shí)現(xiàn)協(xié)處理器和CPU之間的數(shù)據(jù)同步傳輸。
應(yīng)用程序可以設(shè)定協(xié)處理器寄存器相應(yīng)的控制位來(lái)選擇阻塞和非阻塞兩種指令執(zhí)行方式,其中指令阻塞模式通過(guò)順序執(zhí)行協(xié)處理器指令,實(shí)現(xiàn)了異常精確,在該模式下,只有提交的協(xié)處理器指令才能發(fā) 送至協(xié)處理器接口的后級(jí)流水線進(jìn)行指令執(zhí)行,沒(méi)有提交的指令會(huì)阻 塞在協(xié)處理器接口的EX1級(jí)流水線上,導(dǎo)致流水線停頓;而指令非阻
塞模式允許協(xié)處理器指令亂序執(zhí)行,即異常非精確模式,在該模式下, 所有的協(xié)處理器指令都可以發(fā)送至協(xié)處理器接口的后級(jí)流水線執(zhí)行, 而不論它們是否已被提交,因此該模式不會(huì)造成協(xié)處理器接口流水線 的停頓,實(shí)現(xiàn)了數(shù)據(jù)的高速傳輸。
當(dāng)選中的協(xié)處理器在執(zhí)行過(guò)程中出現(xiàn)異常時(shí),該異常會(huì)通過(guò)協(xié)處 理器接口及時(shí)返回給CPU, CPU則根據(jù)返回的異常向量進(jìn)入對(duì)應(yīng)的異 常服務(wù)程序。
權(quán)利要求
1、一種嵌入式處理器高速協(xié)處理器接口,其特征在于所述高速協(xié)處理器接口包括依次連接的第一級(jí)流水線、第二級(jí)流水線和第三級(jí)流水線,第一級(jí)流水線包括協(xié)處理器保留棧和指令緩沖器,協(xié)處理器接口與外部協(xié)處理器數(shù)據(jù)交互狀態(tài)時(shí)緩存至多兩條協(xié)處理器指令,從保留棧和指令緩沖器中選取當(dāng)前可執(zhí)行的協(xié)處理器指令發(fā)送至下一級(jí)流水線;第二級(jí)流水線包括控制邏輯,產(chǎn)生相應(yīng)的協(xié)處理器選擇與讀寫信號(hào),并進(jìn)行數(shù)據(jù)通信,當(dāng)協(xié)處理器的數(shù)據(jù)讀寫操作完成之后,將得到的結(jié)果發(fā)送至下一級(jí)流水線;第三級(jí)流水線向嵌入式處理器發(fā)起數(shù)據(jù)回寫請(qǐng)求,并通過(guò)通用數(shù)據(jù)總線將結(jié)果返回給嵌入式處理器。
2、 如權(quán)利要求1所述的嵌入式處理器高速協(xié)處理器接口,其特征在于-所述高速協(xié)處理器接口還包括協(xié)處理器指令定義單元,用于定義協(xié)處 理器選擇指令、協(xié)處理器讀數(shù)據(jù)指令和協(xié)處理器寫數(shù)據(jù)指令;其中, 協(xié)處理器選擇指令從多個(gè)協(xié)處理器中選中其中 一個(gè),協(xié)處理器讀數(shù)據(jù) 指令從指定的協(xié)處理器寄存器中讀取數(shù)據(jù)并寫入到指定的CPU通用 寄存器中,協(xié)處理器寫數(shù)據(jù)指令向選中的協(xié)處理器寫入既定數(shù)據(jù),等 待協(xié)處理器對(duì)這些數(shù)據(jù)進(jìn)行處理。
3、 如權(quán)利要求1或2所述的嵌入式處理器高速協(xié)處理器接口,其特征 在于所述高速協(xié)處理器接口還包括時(shí)鐘邏輯模塊,用于在所述協(xié)處理器接口與外部協(xié)處理器具有相同的 高速時(shí)鐘時(shí)進(jìn)行同步工作模式工作;在所述協(xié)處理器接口與外部協(xié)處理器時(shí)鐘頻率不同步時(shí)進(jìn)行異步工作模式工作,時(shí)鐘同步模塊控制協(xié) 處理器和CPU之間的數(shù)據(jù)同步傳輸。
4、 如權(quán)利要求1或2所述的嵌入式處理器高速協(xié)處理器接口,其特征 在于設(shè)定協(xié)處理器寄存器相應(yīng)的控制位來(lái)選擇阻塞和非阻塞兩種指 令執(zhí)行方式,其中,指令阻塞模式通過(guò)順序執(zhí)行協(xié)處理器指令,對(duì)提 交的協(xié)處理器指令發(fā)送至協(xié)處理器接口的后級(jí)流水線進(jìn)行指令執(zhí)行, 沒(méi)有提交的指令會(huì)阻塞在協(xié)處理器接口的第一級(jí)流水線上;指令非阻 塞模式允許協(xié)處理器指令亂序執(zhí)行,所有的協(xié)處理器指令發(fā)送至協(xié)處 理器接口的后級(jí)流水線執(zhí)行。
5、 如權(quán)利要求3所述的嵌入式處理器高速協(xié)處理器接口,其特征在于 設(shè)定協(xié)處理器寄存器相應(yīng)的控制位來(lái)選擇阻塞和非阻塞兩種指令執(zhí)行 方式,其中,指令阻塞模式通過(guò)順序執(zhí)行協(xié)處理器指令,對(duì)提交的協(xié) 處理器指令發(fā)送至協(xié)處理器接口的后級(jí)流水線進(jìn)行指令執(zhí)行,沒(méi)有提 交的指令會(huì)阻塞在協(xié)處理器接口的第一級(jí)流水線上;指令非阻塞模式允許協(xié)處理器指令亂序執(zhí)行,所有的協(xié)處理器指令發(fā)送至協(xié)處理器接 口的后級(jí)流水線執(zhí)行。
6、 如權(quán)利要求5所述的嵌入式處理器高速協(xié)處理器接口,其特征在于當(dāng)選中的協(xié)處理器在執(zhí)行過(guò)程中出現(xiàn)異常時(shí),通過(guò)協(xié)處理器接口返回 給嵌入式微處理器,嵌入式微處理器根據(jù)返回的異常向量進(jìn)入對(duì)應(yīng)的 異常服務(wù)程序。
7、 如權(quán)利要求2所述的嵌入式處理器高速協(xié)處理器接口 ,其特征在于所述高速協(xié)處理器接口支持至多16個(gè)不同的協(xié)處理器,通過(guò)譯碼所述協(xié)處理器選擇指令選中相應(yīng)的協(xié)處理器,后面的協(xié)處理器數(shù)據(jù)讀寫指令的操作是與當(dāng)前所選的協(xié)處理器進(jìn)行交互。
8、如權(quán)利要求2所述的嵌入式處理器高速協(xié)處理器接口 ,其特征在于 所述的高速協(xié)處理器接口還包括動(dòng)態(tài)低功耗控制邏輯模塊,用于在沒(méi)有新的協(xié)處理器指令并且協(xié)處理 器接口處于空閑狀態(tài)時(shí)關(guān)閉模塊時(shí)鐘。
全文摘要
一種嵌入式處理器高速協(xié)處理器接口,包括依次連接的第一級(jí)流水線、第二級(jí)流水線和第三級(jí)流水線,第一級(jí)流水線包括協(xié)處理器保留棧和指令緩沖器,協(xié)處理器接口與外部協(xié)處理器數(shù)據(jù)交互狀態(tài)時(shí)緩存至多兩條協(xié)處理器指令,從保留棧和指令緩沖器中選取當(dāng)前可執(zhí)行的協(xié)處理器指令發(fā)送至下一級(jí)流水線;第二級(jí)流水線包括控制邏輯,產(chǎn)生相應(yīng)的協(xié)處理器選擇與讀寫信號(hào),并進(jìn)行數(shù)據(jù)通信,當(dāng)協(xié)處理器的數(shù)據(jù)讀寫操作完成之后,將得到的結(jié)果發(fā)送至下一級(jí)流水線;第三級(jí)流水線向嵌入式處理器發(fā)起數(shù)據(jù)回寫請(qǐng)求,并通過(guò)通用數(shù)據(jù)總線將結(jié)果返回給嵌入式處理器。本發(fā)明提高了CPU和協(xié)處理器之間的數(shù)據(jù)傳輸速度、提升了處理器的性能。
文檔編號(hào)G06F9/38GK101526897SQ20091009578
公開(kāi)日2009年9月9日 申請(qǐng)日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者嚴(yán)曉浪, 磊 劉, 孟建熠, 葛海通 申請(qǐng)人:杭州中天微系統(tǒng)有限公司