亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

處理器及其數(shù)據(jù)操作方法

文檔序號(hào):6555819閱讀:232來(lái)源:國(guó)知局
專利名稱:處理器及其數(shù)據(jù)操作方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式處理器,更具體地說(shuō),涉及一種處理器及其數(shù)據(jù)操作方法。
背景技術(shù)
ARM7TDMI是ARM公司應(yīng)用較為廣泛的嵌入式處理器內(nèi)核,主要應(yīng)用于低端的嵌入式系統(tǒng)。ARM公司通常以硬核結(jié)構(gòu)將ARM7TDMI提供給用戶,ARM7TDMI不包括任何儲(chǔ)存單元,也不包括PU及MMU邏輯,該處理器核使用獨(dú)立的CPU總線接口。A7TWrap是ARM公司隨ARM7TDMI一起提供的處理器外包邏輯,該邏輯的主要功能是將CPU總線傳輸時(shí)序轉(zhuǎn)換為AHB總線傳輸時(shí)序。
ARM7TDMI+A7TWrap結(jié)構(gòu)是目前使用得較廣的ARM7芯片的一種處理器結(jié)構(gòu),如圖1a所示。ARM7TDMI通過(guò)A7TWrap和AHB總線進(jìn)行交互。在ARM7TDMI和A7Wrap之間嵌入一個(gè)馮·諾依曼結(jié)構(gòu)的高速緩存(Cache),是ARM7TDMI處理器性能擴(kuò)展的一個(gè)較好的方法,其結(jié)構(gòu)如圖1b所示(圖中ARM7TDMI和A7TWrap的交互信號(hào)是部分非傳輸管腳的配置信號(hào))。這種結(jié)構(gòu)可以提高ARM7TDMI的處理能力,減少ARM7TDMI對(duì)主存訪問(wèn)的等待時(shí)間,減少外設(shè)功耗,使ARM7芯片能夠以單周期完成大多數(shù)數(shù)據(jù)和指令的讀寫。
高速緩存的存在可以提高系統(tǒng)性能,對(duì)于可高速緩存的數(shù)據(jù)或指令,如果高速緩存命中,該操作單周期內(nèi)即可完成。但是對(duì)于系統(tǒng)中很多不可高速緩存的地址區(qū)域,例如DMA搬運(yùn)區(qū)、外設(shè)接口等等,在ARM7TDMI直接訪問(wèn)這些區(qū)域時(shí),高速緩存的存在通常會(huì)使訪問(wèn)操作增加額外的損耗周期(PenaltyCycle),即高速緩存缺失的訪問(wèn)開(kāi)銷。
日本的IC廠商針對(duì)ARM7TDMI+A7TWrap結(jié)構(gòu)設(shè)計(jì)了馮·諾依曼結(jié)構(gòu)的高速緩存,4路級(jí)聯(lián),塊長(zhǎng)度為8,使用LRU替換算法,并包括有PU模塊。該高速緩存在ARM7TDMI發(fā)出指令操作時(shí)首先對(duì)該操作進(jìn)行寄存,然后在后一周期完成命中、可高速緩存、PU的判定后,如果該操作地址不可高速緩存才對(duì)A7TWrap發(fā)出操作請(qǐng)求。因?yàn)楦咚倬彺鎸?shí)際發(fā)出的操作請(qǐng)求較ARM7TDMI原來(lái)的操作請(qǐng)求晚了一個(gè)周期,該高速緩存對(duì)ARM7TDMI的每次操作請(qǐng)求都增加了一個(gè)空閑(IDLE)操作周期的開(kāi)銷,即一個(gè)IDLE Penalty。因此,ARM7TDMI的每一個(gè)不可高速緩存的操作在傳輸給A7TWrap時(shí)都被分成了一個(gè)IDLE操作加一個(gè)NONSEQ(非連續(xù))操作。而且,由于該高速緩存對(duì)ARM7TDMI的每一個(gè)不可高速緩存的操作都增加了一個(gè)IDLE操作,因此該高速緩存無(wú)法支持ARM7TDMI發(fā)出的不可高速緩存的連續(xù)操作,即所有不可高速緩存的連續(xù)操作都被拆分為獨(dú)立操作,每一個(gè)獨(dú)立操作再由一個(gè)IDLE操作加一個(gè)NONSEQ操作來(lái)實(shí)現(xiàn)。
未采用高速緩存時(shí)(如圖1a所示),ARM7TDMI對(duì)A7TWrap的操作時(shí)序如圖2a所示。采用了高速緩存時(shí)(如圖1b所示),ARM7TDMI對(duì)A7TWrap的操作時(shí)序如圖2b所示。這里的時(shí)序圖沒(méi)有考慮A7TWrap將CPU總線時(shí)序轉(zhuǎn)換為AHB總線時(shí)序時(shí)的延遲,其中nMREQ信號(hào)為操作請(qǐng)求信號(hào),n表示低有效,SEQ信號(hào)為連續(xù)操作請(qǐng)求信號(hào)。由該時(shí)序圖可以看到,在IDLE周期的時(shí)候CPU剛發(fā)出請(qǐng)求,這個(gè)時(shí)候無(wú)法完成命中判定,在下一個(gè)時(shí)鐘上升沿高速緩存打了一拍,沒(méi)命中的操作就被輸出。
RM7TDMI通過(guò)nMREQ信號(hào)及SEQ信號(hào)實(shí)現(xiàn)其不同的操作模式,這兩個(gè)信號(hào)的不同值對(duì)應(yīng)的操作模式如下表1所示。

表1
ARM7TDMI的操作模式和AHB總線操作模式類似。非連續(xù)操作是指ARM7TDMI的單次操作或者指連續(xù)操作的第一個(gè)操作位,非連續(xù)操作的上一個(gè)操作可以是其他任何一種操作模式。連續(xù)操作是指ARM7TDMI發(fā)起的一次連續(xù)的數(shù)據(jù)或指令操作,連續(xù)操作過(guò)程中,總線信號(hào)都不可改變。通常而言,連續(xù)操作是由非連續(xù)操作發(fā)起的,也就是說(shuō),連續(xù)操作的第一個(gè)操作位必須是非連續(xù)操作,即NONSEQ+SEQ+SEQ+SEQ……??臻e操作為ARM7TDMI內(nèi)部操作,此時(shí)總線處于空閑狀態(tài)。本發(fā)明不涉及協(xié)處理器,所以后續(xù)描述中不考慮協(xié)處理器操作。
對(duì)于ARM7TDMI,其連續(xù)操作還存在一個(gè)特殊的操作模式,即I-S操作模式,其包括第一周期的IDLE操作和第二周期的SEQ操作。此時(shí),連續(xù)操作不是以非連續(xù)操作開(kāi)始的,而是以空閑操作開(kāi)始,即IDLE+SEQ+SEQ+SEQ……。如圖5所示是I-S操作模式的時(shí)序圖,I-S操作過(guò)程中,ARM7TDMI在IDLE操作周期就已經(jīng)給出了連續(xù)操作的地址信息,在連續(xù)操作時(shí)再給出操作請(qǐng)求。I-S操作模式是ARM公司在ARM7TDMI設(shè)計(jì)時(shí)進(jìn)行的一個(gè)特殊優(yōu)化,該操作模式下地址信號(hào)較普通操作模式要提前一個(gè)周期,即地址信號(hào)可以和控制信號(hào)同時(shí)有效,這可以使地址譯碼的時(shí)間較之普通模式提前。由于I-S操作模式下,操作地址在IDLE周期就已經(jīng)給出,因此A7Twrap不再對(duì)該操作的時(shí)序進(jìn)行延時(shí)。
A7TWrap針對(duì)ARM7TDMI的各種不同操作時(shí)序產(chǎn)生不同的邏輯變化,將處理器總線時(shí)序轉(zhuǎn)換為AHB總線時(shí)序。其中,為保證AHB總線的譯碼正確,地址有效必須在HCLK時(shí)鐘一個(gè)周期以前,即在每次操作開(kāi)始時(shí)都必須增加一個(gè)周期的等待。A7TWrap對(duì)ARM7TDMI的操作時(shí)序的轉(zhuǎn)換延時(shí)如下表2所示。

表2
由前面的介紹可知,在處理器內(nèi)增加高速緩存后,ARM7TDMI的操作請(qǐng)求不能直接反映到A7Twrap上,這主要是因?yàn)锳RM7TDMI的地址信號(hào)只比HCLK上升沿早半周期出現(xiàn),而在該信號(hào)被HCLK上升沿獲取之前無(wú)法進(jìn)行地址命中判定。如果在命中判定前就將ARM7TDMI操作請(qǐng)求發(fā)送給A7TWrap,則可能會(huì)使A7TWrap和高速緩存都對(duì)該操作請(qǐng)求產(chǎn)生反應(yīng)。但是實(shí)際上,如果地址判定高速緩存命中,該操作請(qǐng)求是不應(yīng)該在A7TWrap上產(chǎn)生反應(yīng)的。如圖6的時(shí)序圖所示,第3周期的上升沿之前ARM7TDMI的數(shù)據(jù)信號(hào)不可以發(fā)送到A7TWrap,這時(shí)便會(huì)產(chǎn)生一個(gè)周期的延時(shí)。
這個(gè)延時(shí)產(chǎn)生的損耗周期影響了系統(tǒng)的處理速度,并且該技術(shù)將不可高速緩存的地址的連續(xù)操作都拆分為獨(dú)立操作,大大降低了AHB總線連續(xù)傳輸?shù)男阅馨l(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種處理器及其數(shù)據(jù)操作方法,使用空閑-連續(xù)(I-S)操作模式減少損耗周期。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是提供一種處理器的數(shù)據(jù)操作方法,包括(a)接收處理器內(nèi)核發(fā)出的操作,當(dāng)所述操作為不可高速緩存非連續(xù)操作時(shí),在所述不可高速緩存非連續(xù)操作的第一周期,在高速緩存控制器與封裝器之間的處理器總線上發(fā)出空閑操作;(b)在所述不可高速緩存非連續(xù)操作的第二周期,在所述處理器總線上發(fā)出連續(xù)操作。
在本發(fā)明所述處理器的數(shù)據(jù)操作方法中,所述方法還包括(c)轉(zhuǎn)換所述處理器總線上的第一周期的空閑操作和第二周期的連續(xù)操作為系統(tǒng)總線上的空閑操作和非連續(xù)操作。
在本發(fā)明所述處理器的數(shù)據(jù)操作方法中,所述方法進(jìn)一步包括(d)當(dāng)所述處理器內(nèi)核發(fā)出的操作為不可高速緩存連續(xù)操作時(shí),在所述高速緩存控制器與封裝器之間的處理器總線上發(fā)出的連續(xù)操作的下一個(gè)周期開(kāi)始時(shí),對(duì)所述連續(xù)操作的下一次操作地址進(jìn)行預(yù)測(cè)。
在本發(fā)明所述處理器的數(shù)據(jù)操作方法中,所述步驟(d)中對(duì)連續(xù)操作的操作地址提前進(jìn)行預(yù)測(cè)包括在當(dāng)前操作地址的基礎(chǔ)上根據(jù)當(dāng)前操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
在本發(fā)明所述處理器的數(shù)據(jù)操作方法中,所述步驟(d)中對(duì)連續(xù)操作的操作地址提前進(jìn)行預(yù)測(cè)包括在當(dāng)前操作地址的基礎(chǔ)上根據(jù)所述連續(xù)操作的第一次操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
本發(fā)明還提供一種處理器,包括處理器內(nèi)核、處理處理器內(nèi)核的操作請(qǐng)求的高速緩存控制器以及橋接處理器總線與系統(tǒng)總線的封裝器,所述處理器內(nèi)核和封裝器通過(guò)處理器總線連接,其特征在于,還包括空閑-連續(xù)操作轉(zhuǎn)換模塊,接收所述高速緩存控制器的操作地址判定信息,并在確定所述操作為不可高速緩存非連續(xù)操作時(shí),在所述處理器總線上發(fā)出第一周期的空閑操作和第二周期的連續(xù)操作。
在本發(fā)明所述的處理器中,還包括地址預(yù)測(cè)模塊,接收所述高速緩存控制器發(fā)出的當(dāng)前操作地址信號(hào)和位寬信號(hào),并在確定所述操作為不可高速緩存連續(xù)操作時(shí),根據(jù)所述當(dāng)前操作地址信號(hào)和位寬信號(hào)對(duì)所述連續(xù)操作的下一次操作地址提前進(jìn)行預(yù)測(cè),然后將預(yù)測(cè)到的下一次操作地址提供給所述高速緩存控制器進(jìn)行判定。
在本發(fā)明所述的處理器中,所述地址預(yù)測(cè)模塊通過(guò)在當(dāng)前操作地址的基礎(chǔ)上根據(jù)位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
在本發(fā)明所述的處理器中,所述地址預(yù)測(cè)模塊通過(guò)在當(dāng)前操作地址的基礎(chǔ)上根據(jù)所述連續(xù)操作的第一次操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
在本發(fā)明所述的處理器中,所述封裝器接收所述處理器總線上的第一周期的空閑操作和第二周期的連續(xù)操作,轉(zhuǎn)換為系統(tǒng)總線上的空閑操作和非連續(xù)操作。
實(shí)施本發(fā)明的處理器及其數(shù)據(jù)操作方法,具有以下有益效果本發(fā)明通過(guò)將不可高速緩存非連續(xù)操作的第一周期發(fā)出空閑操作,相應(yīng)的第二周期發(fā)出連續(xù)操作,減少了高速緩存產(chǎn)生的損耗周期,這顯著提高了處理器性能,減少了CPU的等待時(shí)間。此外,使用地址預(yù)測(cè)后,ARM7TDMI的連續(xù)操作能夠繼續(xù)以連續(xù)操作模式在AHB總線上進(jìn)行,因此也極大地提高了AHB總線的性能。


下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中圖1a是現(xiàn)有的一種處理器結(jié)構(gòu)的示意圖;圖1b是現(xiàn)有的一種采用高速緩存后的處理器結(jié)構(gòu)的示意圖;圖2a是圖1a所示的處理器的操作時(shí)序圖;圖2b是圖1b所示的處理器的操作時(shí)序圖;圖3是本發(fā)明一個(gè)實(shí)施例的處理器結(jié)構(gòu)的示意圖;圖4是本發(fā)明一個(gè)實(shí)施例中處理器總線的操作時(shí)序圖;圖5是本發(fā)明一個(gè)實(shí)施例中處理器內(nèi)核的I-S操作模式的時(shí)序圖;圖6是本發(fā)明一個(gè)實(shí)施例中高速緩存的操作時(shí)序圖;圖7是本發(fā)明一個(gè)實(shí)施例中處理器的數(shù)據(jù)操作方法的流程圖;圖8是本發(fā)明一個(gè)實(shí)施例中將處理器不可高速緩存的非連續(xù)操作轉(zhuǎn)換成I-S操作的時(shí)序圖;圖9是本發(fā)明一個(gè)實(shí)施例中將處理器不可高速緩存的非連續(xù)操作轉(zhuǎn)換成I-S操作的狀態(tài)轉(zhuǎn)移圖;圖10是本發(fā)明一個(gè)實(shí)施例中采用了地址預(yù)測(cè)的處理器不可高速緩存的連續(xù)操作的時(shí)序圖;圖11是本發(fā)明一個(gè)實(shí)施例中采用I-S操作模式和地址預(yù)測(cè)后的處理器操作時(shí)序圖;圖12是本發(fā)明另一個(gè)實(shí)施例中采用I-S操作模式和地址預(yù)測(cè)后的處理器操作時(shí)序圖;圖13是本發(fā)明一個(gè)實(shí)施例中采用I-S操作模式和地址預(yù)測(cè)后處理器的狀態(tài)轉(zhuǎn)移圖。
具體實(shí)施例方式
本發(fā)明在采用指令和數(shù)據(jù)統(tǒng)一的馮·諾依曼結(jié)構(gòu)高速緩存結(jié)構(gòu)的處理器中,采用I-S(空閑-連續(xù))操作模式及地址預(yù)測(cè)技術(shù)使該高速緩存對(duì)不可高速緩存的地址段的操作的額外開(kāi)銷為零,其中I-S操作模式主要針對(duì)非連續(xù)(NONSEQ)操作,地址預(yù)測(cè)主要針對(duì)連續(xù)(SEQ)操作。
根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理器結(jié)構(gòu)如圖3所示,包括處理器內(nèi)核302、高速緩存控制器304、高速緩存310、寫緩存312。高速緩存310位于處理器內(nèi)核302與外部主存儲(chǔ)器之間,與主存儲(chǔ)器以塊為單位進(jìn)行數(shù)據(jù)交換。當(dāng)處理器內(nèi)核302讀取數(shù)據(jù)或者指令時(shí),同時(shí)將讀取到的數(shù)據(jù)或指令保存到一個(gè)高速緩存塊中。根據(jù)程序的空間局部性和時(shí)間局部性,當(dāng)?shù)诙涡枰x取相同或相近的數(shù)據(jù)時(shí),可以從相應(yīng)的高速緩存塊獲得數(shù)據(jù)。因?yàn)楦咚倬彺娴乃俣冗h(yuǎn)大于主存儲(chǔ)器的速度,系統(tǒng)整體性能就得到了很大的提高。ARM7TDMI等處理器內(nèi)核只有一個(gè)儲(chǔ)存器接口,即只支持指令和數(shù)據(jù)統(tǒng)一的高速緩存,因而該處理器采用馮·諾依曼結(jié)構(gòu)的高速緩存。高速緩存控制器304用來(lái)處理處理器內(nèi)核302的操作請(qǐng)求,執(zhí)行操作地址命中判定。寫緩存312連接在處理器內(nèi)核302與外部主存儲(chǔ)器之間,存儲(chǔ)處理器內(nèi)核302的可緩存寫數(shù)據(jù)。此外,本發(fā)明的處理器還設(shè)有I-S(空閑-連續(xù))操作轉(zhuǎn)換模塊316,接收高速緩存控制器304對(duì)處理器內(nèi)核302發(fā)出的操作請(qǐng)求的地址判定結(jié)果,將處理器內(nèi)核302發(fā)出的不可高速緩存的NONSEQ(非連續(xù))操作轉(zhuǎn)換成第一周期的IDLE(空閑)操作和第二周期的SEQ(連續(xù))操作,然后經(jīng)復(fù)用器306和封裝器308提供給AHB系統(tǒng)總線。該處理器還設(shè)有地址預(yù)測(cè)模塊314,接收高速緩存控制器304發(fā)出的SEQ操作地址信號(hào)和位寬信號(hào),對(duì)處理器內(nèi)核302發(fā)出的不可高速緩存SEQ操作中的下一次操作地址進(jìn)行提前預(yù)測(cè),然后將預(yù)測(cè)出的操作地址發(fā)送給高速緩存控制器304進(jìn)行地址判定。本申請(qǐng)后續(xù)部分將對(duì)I-S操作轉(zhuǎn)換模塊316和地址預(yù)測(cè)模塊314進(jìn)行詳細(xì)的介紹。如圖所示,高速緩存控制器304、寫緩存312和I-S操作轉(zhuǎn)換模塊316三者都可能對(duì)AHB總線產(chǎn)生操作請(qǐng)求,而處理器總線到AHB總線的通路只有一條,因而通過(guò)復(fù)用器(MUX)306對(duì)高速緩存控制器304、寫緩存312和I-S操作轉(zhuǎn)換模塊316的總線操作請(qǐng)求進(jìn)行優(yōu)先級(jí)判定,在操作請(qǐng)求沖突時(shí)寄存優(yōu)先級(jí)比較低的操作。封裝器312為處理器內(nèi)核外嵌模塊,用以橋接處理器總線和AHB系統(tǒng)總線,將處理器總線時(shí)序轉(zhuǎn)換成AHB總線時(shí)序。
本發(fā)明的一個(gè)實(shí)施例中,處理器內(nèi)核302采用ARM7TDMI,相應(yīng)地封裝器312為A7Twrap,該處理器的處理器總線時(shí)序圖如圖4所示。ARM7TDMI處理器總線類似于AHB總線,為一級(jí)流水線結(jié)構(gòu),數(shù)據(jù)滯后于地址及控制信號(hào),但該總線信號(hào)同時(shí)使用了時(shí)鐘的上升沿和下降沿。如圖所示,控制信號(hào)提前HCLK上升沿一個(gè)時(shí)鐘周期,但地址信號(hào)只提前HCLK上升沿半個(gè)周期,因此地址信號(hào)的同步邏輯建立時(shí)間冗余較少,由于A7Twrap在進(jìn)行時(shí)序轉(zhuǎn)換時(shí)可能存在延遲,該信號(hào)不能直接發(fā)送到AHB總線的地址線上。
為了消除執(zhí)行處理器不可高速緩存的非連續(xù)操作時(shí)存在的延時(shí),本發(fā)明提出一個(gè)交換性的解決方案,即將ARM7TDMI與高速緩存控制器之間的處理器總線上的非連續(xù)操作轉(zhuǎn)換為高速緩存控制器與A7TWrap之間的處理器總線上第一周期的IDLE操作和第二周期的SEQ操作。由前面表2中的A7TWrap轉(zhuǎn)換延時(shí)可知,A7TWrap對(duì)每一個(gè)NONSEQ操作都增加了一個(gè)等待周期,如前所述,這是因?yàn)锳RM7TDMI發(fā)出的地址信號(hào)和控制信號(hào)沒(méi)有對(duì)齊,延時(shí)一個(gè)周期可以將地址信號(hào)和控制信號(hào)對(duì)齊發(fā)送給AHB總線。再加上高速緩存對(duì)ARM7TDMI發(fā)出的NONSEQ操作增加的一個(gè)IDLE周期,實(shí)際上AHB總線上的NONSEQ操作出現(xiàn)了兩個(gè)周期的延時(shí)。再參看圖6中的時(shí)序,ARM7TDMI發(fā)出操作請(qǐng)求的第一個(gè)周期(圖6中周期2所示),操作地址還沒(méi)有經(jīng)過(guò)高速緩存判定,不能發(fā)送給A7TWrap,但是這個(gè)周期中地址信號(hào)實(shí)際已經(jīng)有效,如圖所示,下一個(gè)周期內(nèi)(即圖6中周期3)地址信號(hào)和控制信號(hào)實(shí)際上是對(duì)齊的。所以,這種情況下完全可以將該NONSEQ操作轉(zhuǎn)換成I-S操作發(fā)送給A7TWrap,即I-S操作轉(zhuǎn)換模塊在ARM7TDMI操作發(fā)起的第一個(gè)周期發(fā)出IDLE操作,在第二個(gè)周期(即圖6中周期3),即ARM7TDMI的等待周期發(fā)出SEQ操作,其中地址信號(hào)在SEQ操作周期和控制信號(hào)對(duì)齊。
具體實(shí)現(xiàn)如圖7所示首先,步驟702中,ARM7TDMA發(fā)出操作請(qǐng)求。然后,步驟704中,高速緩存控制器對(duì)ARM7TDMI發(fā)出的操作進(jìn)行地址判定,并將相關(guān)的信息提供給I-S操作轉(zhuǎn)換模塊,這些信息包括高速緩存的狀態(tài)(cache_state)、命中判定(hit)、是否地址保護(hù)(protection)、是否可寫緩存(bufferable)、是否可高速緩存(cacheable)以及寄存的處理器操作的讀寫控制信號(hào)(nRW_cpu_reg)。I-S操作轉(zhuǎn)換模塊根據(jù)從高速緩存控制器接收的上述信息,確定ARM7TDMI發(fā)出的操作是否為不可高速緩存的NONSEQ操作(步驟706)。如果ARM7TDMI發(fā)出的操作是可高速緩存的操作,則在步驟708中執(zhí)行正常的高速緩存操作。步驟710中,當(dāng)ARM7TDMI發(fā)出的操作是不可高速緩存的NONSEQ操作時(shí),I-S操作轉(zhuǎn)換模塊在該NONSEQ操作的第一周期發(fā)出IDLE操作,在該NONSEQ操作的第二周期發(fā)出SEQ操作,即在該NONSEQ操作的第一周期輸出對(duì)應(yīng)nMREQ=1 && SEQ=0(即IDLE操作周期)的nMREQ信號(hào)和SEQ信號(hào)給復(fù)用器,然后在該NONSEQ操作的第二周期輸出對(duì)應(yīng)nMREQ=0 && SEQ=1(即SEQ操作周期)的nMREQ信號(hào)和SEQ信號(hào)給復(fù)用器。這樣的話,ARM7TDMI發(fā)出的NONSEQ操作經(jīng)過(guò)I-S操作轉(zhuǎn)換模塊的處理后,便轉(zhuǎn)換成第一周期的IDLE和第二周期的SEQ操作提供給封裝器A7TWrap。
然后,根據(jù)表2可知,A7TWrap將處理器總線上的該IDLE+SEQ操作轉(zhuǎn)換成AHB總線上的IDLE+NONSEQ操作(步驟712),而不會(huì)產(chǎn)生額外的延時(shí)。如圖8所示,圖中是四個(gè)連續(xù)的非連續(xù)操作。從該時(shí)序圖可以看出,ARM7TDMI產(chǎn)生請(qǐng)求且ARM7TDMI和A7TWrap的READY信號(hào)都為高時(shí),對(duì)應(yīng)該非連續(xù)操作向A7TWrap發(fā)出的實(shí)際是IDLE操作,而其后在ARM7TDMI的READY為低但A7TWrap的READY信號(hào)為高時(shí)發(fā)出NONSEQ操作。經(jīng)過(guò)A7Twrap的時(shí)序轉(zhuǎn)換后,可以看到,AHB總線上出現(xiàn)的操作是一個(gè)IDLE操作加一個(gè)NONSEQ操作。圖中的MCLK為Ready信號(hào)的門控時(shí)鐘,Ready信號(hào)實(shí)際也就是CLKEN信號(hào),兩個(gè)信號(hào)的時(shí)序是一樣的。
現(xiàn)有處理器中,高速緩存對(duì)一次NONSEQ操作會(huì)產(chǎn)生一個(gè)Penalty周期,然后A7Twrap對(duì)該NONSEQ操作會(huì)產(chǎn)生一個(gè)延時(shí)等待周期。通過(guò)上述方法,本發(fā)明將高速緩存對(duì)NONSEQ操作的Penalty周期與A7Twrap的等待周期進(jìn)行合并,將高速緩存的Penalty周期轉(zhuǎn)換為IDLE周期,將高速緩存的NONSEQ周期轉(zhuǎn)換為SEQ周期,這樣的話,ARM7TDMI發(fā)出的每一個(gè)NONSEQ操作轉(zhuǎn)換到AHB總線上只需要一個(gè)等待周期。圖9所示為將處理器不可高速緩存的非連續(xù)操作轉(zhuǎn)換成I-S操作的狀態(tài)轉(zhuǎn)移圖。如圖所示,如果收到ARM7TDMI發(fā)出的nMREQ請(qǐng)求,且READY信號(hào)為高(即nMREQ=0 &&A7TWrap_READY=1),則進(jìn)入地址判定狀態(tài),該狀態(tài)不占用時(shí)鐘周期。根據(jù)判定結(jié)果,如果判定為可高速緩存的操作,則進(jìn)入高速緩存狀態(tài);如果判定為不可高速緩存,則進(jìn)入I-S模式,將該不可高速緩存操作轉(zhuǎn)換成I-S操作。如果后續(xù)再有NONSEQ操作,即nMERQ信號(hào)和SEQ信號(hào)為低且READY信號(hào)為高(nMREQ=0 && SEQ=0 && A7TWrap_READY=1)時(shí),則再次執(zhí)行地址判定;如果沒(méi)有(即nMREQ=1 && A7TWrap_READY=1),則執(zhí)行IDLE操作。
現(xiàn)在再來(lái)分析ARM7TDMI的連續(xù)操作。ARM7TDMI的連續(xù)操作和AHB總線連續(xù)操作相似,在連續(xù)操作開(kāi)始之后,其操作的位寬、讀寫信號(hào)都是不可改變的,即在獲取到連續(xù)操作開(kāi)始的信號(hào)之后,其下一次操作的地址是可以預(yù)測(cè)出來(lái)的。預(yù)測(cè)的方法是地址預(yù)測(cè)模塊在當(dāng)前操作地址的基礎(chǔ)上根據(jù)位寬信號(hào)增加相應(yīng)的字節(jié)數(shù)增量,例如位寬為32位時(shí),增量為4,從而獲得該連續(xù)操作的下一次操作地址;或者,在當(dāng)前操作地址的基礎(chǔ)上根據(jù)所述連續(xù)操作的第一次操作的位寬信號(hào)增加相應(yīng)的字節(jié)數(shù)增量,從而獲得該連續(xù)操作的下一次操作地址。通過(guò)該地址預(yù)測(cè)方法,就可以在ARM7TDMI實(shí)際操作地址尚未發(fā)出的時(shí)候,對(duì)操作地址進(jìn)行地址判定,并通過(guò)判定結(jié)果判斷該操作是否需要通過(guò)A7TWrap進(jìn)行總線傳輸。這可以通過(guò)一個(gè)與邏輯來(lái)實(shí)現(xiàn),即當(dāng)?shù)刂放卸樾枰ㄟ^(guò)A7TWrap傳輸且該周期ARM7TDMI_nMREQ為0、ARM7TDMI_SEQ為1時(shí),才判定將該操作傳輸給A7TWrap模塊。代碼邏輯如A7TWrap_nMREQ=~ARM7TDMI_nMREQ && ARM7TDMI_SEQ && PREDICT_RESULT。
ARM7TDMI發(fā)出連續(xù)操作請(qǐng)求時(shí),通過(guò)上述地址預(yù)測(cè)實(shí)現(xiàn)地址的提前判定后,高速緩存控制器可以和ARM7TDMI同步完成連續(xù)操作控制信號(hào),即高速緩存控制器對(duì)ARM7TDMI的連續(xù)操作的地址判定不會(huì)增加額外的等待周期,ARM7TDMI的連續(xù)操作將繼續(xù)以連續(xù)操作的形式發(fā)送給A7TWrap模塊,并再以連續(xù)操作模式傳輸?shù)紸HB總線。
具體來(lái)說(shuō),本發(fā)明對(duì)連續(xù)操作的地址預(yù)測(cè)是在I-S操作模式的基礎(chǔ)之上實(shí)現(xiàn)的。圖10是采用了地址預(yù)測(cè)的處理器的不可高速緩存的連續(xù)操作的時(shí)序圖。由圖10可以看出,由于連續(xù)操作開(kāi)始的第一個(gè)操作必定是NONSEQ操作,首先使用前述的I-S操作模式轉(zhuǎn)換模塊將該NONSEQ操作轉(zhuǎn)換為IDLE操作+SEQ操作。因?yàn)镮DLE操作產(chǎn)生一個(gè)周期的空閑,在這個(gè)空閑周期,高速緩存控制器將高速緩存狀態(tài)(cache_state)、SEQ操作地址信號(hào)和位寬信號(hào)、復(fù)用器對(duì)高速緩存控制器的READY信號(hào)提供給地址預(yù)測(cè)模塊。然后,當(dāng)轉(zhuǎn)換后的I-S操作模式中的SEQ操作周期開(kāi)始時(shí),ARM7TDMI對(duì)下一次操作的操作模式已經(jīng)發(fā)出,因而在該SEQ操作周期末,可以確認(rèn)連續(xù)操作開(kāi)始(圖中標(biāo)號(hào)91所示位置)。然后在下一個(gè)時(shí)鐘開(kāi)始時(shí)(例如圖中標(biāo)號(hào)92所示位置),地址預(yù)測(cè)模塊就可以在每一個(gè)時(shí)鐘的上升沿后根據(jù)收到的SEQ操作地址信號(hào)和位寬信號(hào)計(jì)算該SEQ操作的下一次操作地址,并將預(yù)測(cè)出的下一次操作地址信息提供給高速緩存控制器,由高速緩存控制器對(duì)該下一次操作地址進(jìn)行判定,直至某次預(yù)測(cè)結(jié)果為高速緩存命中,或者ARM7TDMI的連續(xù)操作完成。
需要注意的是,處理器內(nèi)核發(fā)出的連續(xù)操作并不一定從操作一開(kāi)始就是不可高速緩存的操作,在這種情況,對(duì)于第一個(gè)不可高速緩存的操作,無(wú)論其是連續(xù)的或是非連續(xù)的,該操作將轉(zhuǎn)換成I-S操作模式,而對(duì)其后的連續(xù)操作進(jìn)行地址預(yù)測(cè)。
圖11是本發(fā)明一個(gè)實(shí)施例中采用I-S操作模式和地址預(yù)測(cè)后的處理器操作時(shí)序圖。圖11中所示的處理器操作為連續(xù)操作,其中由NONSEQ操作開(kāi)始均為不可高速緩存的操作,地址預(yù)測(cè)在由該NONSEQ操作轉(zhuǎn)換成的I-S操作之后開(kāi)始。
圖12是本發(fā)明另一個(gè)實(shí)施例中采用I-S操作模式和地址預(yù)測(cè)后的處理器操作時(shí)序圖。圖12中所示的處理器操作也是連續(xù)操作,其中由SEQ操作開(kāi)始均為不可高速緩存的操作,傳輸過(guò)程中又產(chǎn)生了可高速緩存的操作。該圖中A操作為可高速緩存的操作,B、C、D操作為不可高速緩存的操作。由該圖可以看出,B操作判定為I-S操作,增加了一個(gè)等待周期,利用這個(gè)等待周期對(duì)ARM7TDMI的延遲,下一個(gè)周期開(kāi)始時(shí)可以對(duì)連續(xù)操作(即C、D、E)進(jìn)行地址預(yù)測(cè)。E地址判定為可高速緩存,則下一周期退出地址預(yù)測(cè),進(jìn)入正常判定周期。采用I-S操作模式和地址預(yù)測(cè)后,處理器的狀態(tài)轉(zhuǎn)移圖如圖13所示。如果收到ARM7TDMI發(fā)出的nMREQ請(qǐng)求,且READY信號(hào)為高(即nMREQ=0&& A7TWrap_READY=1),則進(jìn)入非連續(xù)地址判定狀態(tài),該狀態(tài)不占用時(shí)鐘周期。根據(jù)判定結(jié)果,如果判定為可高速緩存的操作,則進(jìn)入高速緩存狀態(tài);如果判定為不可高速緩存,則進(jìn)入I-S模式,將該不可高速緩存操作轉(zhuǎn)換成I-S操作。如果該I-S操作后續(xù)再有NONSEQ操作,即nMERQ信號(hào)和SEQ信號(hào)為低且READY信號(hào)為高(nMREQ=0 && SEQ=0 && A7TWrap_READY=1)時(shí),則再次執(zhí)行非連續(xù)地址判定。如果該I-S操作后續(xù)有SEQ操作,即nMERQ信號(hào)為低且SEQ信號(hào)和READY信號(hào)為高(nMREQ=0 && SEQ=1 &&A7TWrap_READY=1)時(shí),則開(kāi)始進(jìn)行地址預(yù)測(cè)及判定,地址的預(yù)測(cè)與判定不占用時(shí)鐘周期。如果預(yù)測(cè)的后續(xù)操作是連續(xù)操作,則在nMERQ信號(hào)為低且SEQ信號(hào)和READY信號(hào)均為高(即nMREQ=0 && SEQ=1 &&A7TWrap_READY=1)時(shí)進(jìn)入SEQ操作狀態(tài),并在該SEQ操作周期后繼續(xù)進(jìn)行地址預(yù)測(cè)和判定;如果預(yù)測(cè)到后續(xù)無(wú)操作,則在nMERQ信號(hào)為高、SEQ信號(hào)為低且READY信號(hào)為高(即nMREQ=1 && SEQ=0 &&A7TWrap_READY=1)時(shí)進(jìn)入IDEL狀態(tài);如果預(yù)測(cè)到的后續(xù)操作不是連續(xù)操作而是非連續(xù)操作(SEQ信號(hào)為低,即SEQ=0),則進(jìn)入非連續(xù)地址判定狀態(tài)重新進(jìn)行地址判定;如果預(yù)測(cè)到的后續(xù)操作是可高速緩存的操作,則進(jìn)入高速緩存狀態(tài),執(zhí)行高速緩存命中或替換操作。
比較在不增加高速緩存的ARM7TDMI+ATWrap結(jié)構(gòu)內(nèi)的操作周期、增加普通高速緩存后的不可高速緩存的操作周期以及增加使用本發(fā)明的高速緩存后的不可高速緩存的操作周期,如下表3所示


表3從上表3中可以看出,普通高速緩存對(duì)不可高速緩存的操作存在Penalty周期,該P(yáng)enalty周期不僅僅使得ARM7TDMI的每一個(gè)不可高速緩存的操作多增加了等待時(shí)間,還將操作中的連續(xù)操作拆分為非連續(xù)操作,這大大影響了AHB總線性能。
使用I-S操作模式及地址預(yù)測(cè)后,高速緩存的Penalty周期基本消除,這顯著提高了系統(tǒng)性能,減少了處理器的等待時(shí)間。此外,使用地址預(yù)測(cè)后,ARM7TDMI的連續(xù)操作能夠繼續(xù)以連續(xù)操作模式在AHB總線上進(jìn)行,因而能夠極大地提高AHB總線的性能,而且保證連續(xù)操作模式不被拆分,對(duì)保證系統(tǒng)性能是非常有利的。
權(quán)利要求
1.一種處理器的數(shù)據(jù)操作方法,其特征在于,包括(a)接收處理器內(nèi)核發(fā)出的操作,當(dāng)所述操作為不可高速緩存非連續(xù)操作時(shí),在所述不可高速緩存非連續(xù)操作的第一周期,在高速緩存控制器與封裝器之間的處理器總線上發(fā)出空閑操作;(b)在所述不可高速緩存非連續(xù)操作的第二周期,在所述處理器總線上發(fā)出連續(xù)操作。
2.根據(jù)權(quán)利要求1所述的處理器的數(shù)據(jù)操作方法,其特征在于,還包括(c)轉(zhuǎn)換所述處理器總線上的第一周期的空閑操作和第二周期的連續(xù)操作為系統(tǒng)總線上的空閑操作和非連續(xù)操作。
3.根據(jù)權(quán)利要求1所述的處理器的數(shù)據(jù)操作方法,其特征在于,所述方法進(jìn)一步包括(d)當(dāng)所述處理器內(nèi)核發(fā)出的操作為不可高速緩存連續(xù)操作時(shí),在所述高速緩存控制器與封裝器之間的處理器總線上發(fā)出的連續(xù)操作的下一個(gè)周期開(kāi)始時(shí),對(duì)所述連續(xù)操作的下一次操作地址進(jìn)行預(yù)測(cè)。
4.根據(jù)權(quán)利要求3所述的處理器的數(shù)據(jù)操作方法,其特征在于,所述步驟(d)中對(duì)連續(xù)操作的操作地址提前進(jìn)行預(yù)測(cè)包括在當(dāng)前操作地址的基礎(chǔ)上根據(jù)當(dāng)前操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
5.根據(jù)權(quán)利要求3所述的處理器的數(shù)據(jù)操作方法,其特征在于,所述步驟(d)中對(duì)連續(xù)操作的操作地址提前進(jìn)行預(yù)測(cè)包括在當(dāng)前操作地址的基礎(chǔ)上根據(jù)所述連續(xù)操作的第一次操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
6.一種處理器,包括處理器內(nèi)核、處理處理器內(nèi)核的操作請(qǐng)求的高速緩存控制器以及橋接處理器總線與系統(tǒng)總線的封裝器,所述處理器內(nèi)核和封裝器通過(guò)處理器總線連接,其特征在于,還包括空閑-連續(xù)操作轉(zhuǎn)換模塊,接收所述高速緩存控制器的操作地址判定信息,并在確定所述操作為不可高速緩存非連續(xù)操作時(shí),在所述處理器總線上發(fā)出第一周期的空閑操作和第二周期的連續(xù)操作。
7.根據(jù)權(quán)利要求6所述的處理器,其特征在于,還包括地址預(yù)測(cè)模塊,接收所述高速緩存控制器發(fā)出的當(dāng)前操作地址信號(hào)和位寬信號(hào),并在確定所述操作為不可高速緩存連續(xù)操作時(shí),根據(jù)所述當(dāng)前操作地址信號(hào)和位寬信號(hào)對(duì)所述連續(xù)操作的下一次操作地址提前進(jìn)行預(yù)測(cè),然后將預(yù)測(cè)到的下一次操作地址提供給所述高速緩存控制器進(jìn)行判定。
8.根據(jù)權(quán)利要求7所述的處理器,其特征在于,所述地址預(yù)測(cè)模塊通過(guò)在當(dāng)前操作地址的基礎(chǔ)上根據(jù)當(dāng)前操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
9.根據(jù)權(quán)利要求7所述的處理器,其特征在于,所述地址預(yù)測(cè)模塊通過(guò)在當(dāng)前操作地址的基礎(chǔ)上根據(jù)所述連續(xù)操作的第一次操作的位寬信號(hào)增加相應(yīng)的增量來(lái)預(yù)測(cè)所述連續(xù)操作的下一次操作地址。
10.根據(jù)權(quán)利要求6所述的處理器,其特征在于,所述封裝器接收所述處理器總線上的第一周期的空閑操作和第二周期的連續(xù)操作,轉(zhuǎn)換為系統(tǒng)總線上的空閑操作和非連續(xù)操作。
全文摘要
本發(fā)明公開(kāi)了一種數(shù)據(jù)處理器及其數(shù)據(jù)操作方法。所述處理器的數(shù)據(jù)操作方法包括接收處理器內(nèi)核發(fā)出的操作,當(dāng)所述操作為不可高速緩存非連續(xù)操作時(shí),在所述不可高速緩存非連續(xù)操作的第一周期,在高速緩存控制器與封裝器之間的處理器總線上發(fā)出空閑操作;在所述不可高速緩存非連續(xù)操作的第二周期,在所述處理器總線上發(fā)出連續(xù)操作。所述方法進(jìn)一步包括當(dāng)所述處理器內(nèi)核發(fā)出的操作為不可高速緩存連續(xù)操作時(shí),在所述高速緩存控制器與封裝器之間的處理器總線上發(fā)出的連續(xù)操作的下一個(gè)周期開(kāi)始時(shí),對(duì)所述連續(xù)操作的下一次操作地址進(jìn)行預(yù)測(cè)。本發(fā)明在處理器中使用I-S操作模式和地址預(yù)測(cè)技術(shù)后,能顯著提高處理器性能,減少CPU的等待時(shí)間。
文檔編號(hào)G06F12/08GK1851674SQ20061003391
公開(kāi)日2006年10月25日 申請(qǐng)日期2006年2月23日 優(yōu)先權(quán)日2006年2月23日
發(fā)明者董杰明, 夏晶 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1