欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

帶指令緩沖的總線(xiàn)接口裝置及其訪問(wèn)外部存儲(chǔ)器的方法

文檔序號(hào):6654288閱讀:257來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):帶指令緩沖的總線(xiàn)接口裝置及其訪問(wèn)外部存儲(chǔ)器的方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器接口訪問(wèn)控制技術(shù),具體涉及一種帶指令緩沖功能的總線(xiàn)接口裝置及其外部訪問(wèn)方法,尤其涉及通訊領(lǐng)域的基于ARM 7 TDMI核與AHB總線(xiàn)接口裝置以及通過(guò)該接口裝置訪問(wèn)外部存儲(chǔ)器的方法。
ARM公司(Advanced RISC Machines Ltd)設(shè)計(jì)的ARM 7 TDMI核(以下簡(jiǎn)稱(chēng)“核”)以及由其提出的AHB(Advanced High-performanceBus的縮寫(xiě),指先進(jìn)的高性能總線(xiàn))高速片內(nèi)總線(xiàn)規(guī)范已經(jīng)在當(dāng)前眾多嵌入式微處理器系統(tǒng)中使用。在此類(lèi)系統(tǒng)中,核將通過(guò)AHB總線(xiàn)訪問(wèn)存儲(chǔ)器系統(tǒng)以及各種外圍設(shè)備。由于核的外部存儲(chǔ)器訪問(wèn)信號(hào)和時(shí)序與AHB總線(xiàn)規(guī)范有所不同,所以需要設(shè)計(jì)特殊的ARM 7 TDMI(指由ARM公司提供的32位嵌入式RISC微處理器)核的AHB總線(xiàn)接口。核的外部存儲(chǔ)器接口具有32位地址線(xiàn)、32位數(shù)據(jù)線(xiàn)和若干控制信號(hào)。核提出的訪問(wèn)指令和訪問(wèn)數(shù)據(jù)操作都通過(guò)該接口完成。在指令序列不發(fā)生轉(zhuǎn)移的情況下,連續(xù)的取指操作往往會(huì)被長(zhǎng)時(shí)間內(nèi)部操作指令(例如乘法指令)和數(shù)據(jù)訪問(wèn)指令所打斷。另外,由于微處理器上運(yùn)行程序均具有的局部性原理,訪問(wèn)指令和訪問(wèn)數(shù)據(jù)具有不同的特點(diǎn)訪問(wèn)指令的存儲(chǔ)器訪問(wèn)地址具有很好的連續(xù)性,但是訪問(wèn)數(shù)據(jù)存儲(chǔ)器訪問(wèn)地址則表現(xiàn)出很強(qiáng)的隨機(jī)性。
在一般的微處理器系統(tǒng)中,大多采用動(dòng)態(tài)存儲(chǔ)器器件作為外部存儲(chǔ)器。這類(lèi)存儲(chǔ)器的一個(gè)重要特點(diǎn)就是啟動(dòng)一次存儲(chǔ)器訪問(wèn)需要很長(zhǎng)的時(shí)間(典型的時(shí)間是60~80ns),但是一旦啟動(dòng)后對(duì)連續(xù)后續(xù)地址訪問(wèn)的存儲(chǔ)器請(qǐng)求(即突發(fā)方式)卻能很快地完成(典型的時(shí)間是10ns)。所以,盡量采用突發(fā)方式訪問(wèn)動(dòng)態(tài)存儲(chǔ)器器件成為提高外部存儲(chǔ)器系統(tǒng)帶寬的重要技術(shù)。
在已有的ARM 7 TDMI的AHB總線(xiàn)接口設(shè)計(jì)中(例如ARM公司在EASY AHB系統(tǒng)中所設(shè)計(jì)的Wrapper部件),都是直接將ARM 7 TDMI提出的存儲(chǔ)器訪問(wèn)請(qǐng)求信號(hào)轉(zhuǎn)化為AHB總線(xiàn)上的傳輸命令,而沒(méi)有充分考慮指令訪問(wèn)和數(shù)據(jù)訪問(wèn)的不同特點(diǎn)。雖然程序的運(yùn)行中指令序列并沒(méi)有發(fā)生轉(zhuǎn)移,但是由于插入了訪問(wèn)數(shù)據(jù)操作或長(zhǎng)時(shí)間的指令執(zhí)行操作,使得連續(xù)的訪問(wèn)指令操作變得不再連續(xù)。被打斷后訪問(wèn)指令操作的地址雖然和前次指令訪問(wèn)的地址保持連續(xù),但是仍然需要花費(fèi)大量的時(shí)間以重新啟動(dòng)外部的動(dòng)態(tài)存儲(chǔ)器器件,這樣無(wú)疑會(huì)延長(zhǎng)核等待訪問(wèn)指令操作的時(shí)間。由于高速微處理器系統(tǒng)的主頻可能會(huì)超過(guò)100MHZ,這個(gè)問(wèn)題就顯得尤其嚴(yán)重。
本發(fā)明的目的是提供一種帶指令緩沖的總線(xiàn)接口裝置以及通過(guò)該裝置進(jìn)行外部存儲(chǔ)器訪問(wèn)的方法,可以應(yīng)用于ARM 7 TDMI核與AHB總線(xiàn)的訪問(wèn)接口,通過(guò)充分考慮訪問(wèn)指令操作和訪問(wèn)數(shù)據(jù)操作的不同特點(diǎn),可以克服了現(xiàn)有技術(shù)中連續(xù)訪問(wèn)指令被打斷的缺點(diǎn),解決現(xiàn)有技術(shù)中存在的ARM 7 TDMI核取指訪問(wèn)外部存儲(chǔ)器效率不高問(wèn)題。
本發(fā)明的目的是這樣實(shí)現(xiàn)的,構(gòu)造一種帶緩沖功能的總線(xiàn)接口裝置,包括設(shè)有空閑、取指和數(shù)據(jù)訪問(wèn)三種狀態(tài)的AHB總線(xiàn)接口,與所述AHB總線(xiàn)接口連接的多路控制器,分別與所述多路控制器連接的指令緩沖單元、數(shù)據(jù)緩沖單元以及整合單元,所述整合單元包括一個(gè)有限狀態(tài)自動(dòng)機(jī),用于和所述多路控制器配合,控制所述AHB總線(xiàn)在所述指令緩沖單元和所述數(shù)據(jù)緩沖單元之間進(jìn)行切換以確保在任何時(shí)候只有其中一個(gè)緩沖單元在工作。
在按照本發(fā)明提供的裝置中,所述整合單元中的有限狀態(tài)自動(dòng)機(jī)與所述多路控制器配合實(shí)現(xiàn)以下?tīng)顟B(tài)遷移在空閑狀態(tài)收到取指請(qǐng)求后,進(jìn)入指令緩沖請(qǐng)求狀態(tài);在指令緩沖請(qǐng)求狀態(tài)下,指令緩沖進(jìn)行取指操作,同時(shí)禁止數(shù)據(jù)緩沖的運(yùn)作,在進(jìn)行取指操作的同時(shí),如果檢測(cè)到數(shù)據(jù)緩沖有操作請(qǐng)求,則進(jìn)入指令緩沖請(qǐng)求保持狀態(tài);在指令緩沖請(qǐng)求保持狀態(tài),數(shù)據(jù)緩沖的請(qǐng)求將保持直到指令緩沖操作結(jié)束為止,一旦指令緩沖操作結(jié)束,立即進(jìn)入數(shù)據(jù)緩沖請(qǐng)求狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求狀態(tài),進(jìn)行數(shù)據(jù)緩沖的讀數(shù)或?qū)憯?shù)操作,同時(shí)禁止指令緩沖運(yùn)作,在進(jìn)行數(shù)據(jù)讀寫(xiě)操作的同時(shí),如果檢測(cè)到指令緩沖有操作請(qǐng)求,狀態(tài)機(jī)將進(jìn)入數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài)下,指令緩沖的請(qǐng)求將保持直到數(shù)據(jù)緩沖操作結(jié)束為止,一旦數(shù)據(jù)緩沖操作結(jié)束,立即進(jìn)入指令緩沖請(qǐng)求狀態(tài);如此循環(huán),在沒(méi)有請(qǐng)求后,系統(tǒng)自動(dòng)返回初始狀態(tài)。
在按照本發(fā)明提供的裝置中,所述指令緩沖單元包括用于存放指令的指令緩沖寄存器組211;可判斷ARM 7 TDMI核發(fā)出的取指地址是否在所述緩沖寄存器組中的地址命中判斷部件212;還包括核讀指令控制部件213,用于接收ARM 7 TDMT核發(fā)出的訪存請(qǐng)求,并根據(jù)所述地址命中判斷部件212的判斷結(jié)果,控制所述指令緩沖寄存器組211輸出相應(yīng)的指令字到所述ARM 7 TDMT核數(shù)據(jù)總線(xiàn)上,并產(chǎn)生滿(mǎn)足ARM 7 TDMI核規(guī)范的時(shí)序信號(hào);以及產(chǎn)生AHB總線(xiàn)訪存的時(shí)序信號(hào),并根據(jù)其響應(yīng)向指令緩沖寄存器組211的相應(yīng)地址寫(xiě)入從AHB總線(xiàn)讀入數(shù)據(jù)的AHB讀指令控制部件214。
在按照本發(fā)明提供的裝置中,其特征在于,所述指令緩沖單元21中的核讀指令控制部件213根據(jù)ARM 7 TDMI核輸出的取指地址,并基于所述地址命中判斷部件212判斷該地址是否命中,如果取指地址命中所述緩沖寄存器組211,則所述核讀指令控制部件213將按照ARM 7 TDMT核的規(guī)范回應(yīng)系統(tǒng)等待信號(hào),并將緩沖中的指令字回送到ARM 7 TDMI核的數(shù)據(jù)線(xiàn)上。
本發(fā)明的另一目的是這樣實(shí)現(xiàn)的,一種基于帶指令緩沖功能的總線(xiàn)接口訪問(wèn)外部存儲(chǔ)器的方法,在總線(xiàn)接口中設(shè)置有指令緩沖單元和數(shù)據(jù)緩沖單元,還設(shè)置有控制單元,用于將可能會(huì)用到的指令事先利用突發(fā)方式通過(guò)AHB總線(xiàn)從外部存儲(chǔ)器系統(tǒng)中取到指令緩沖單元,在隨后的訪問(wèn)指令操作中,只要指令已經(jīng)存在于緩沖單元中,即使是被訪問(wèn)數(shù)據(jù)或長(zhǎng)時(shí)間操作指令所打斷的訪問(wèn)指令操作也可以直接從緩沖單元中獲得指令而無(wú)需訪問(wèn)外部存儲(chǔ)器。
在按照本發(fā)明提供的裝置中,當(dāng)數(shù)據(jù)緩沖單元請(qǐng)求進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),如果所述指令緩沖單元正在利用突發(fā)方式進(jìn)行指令預(yù)取操作,則所述數(shù)據(jù)緩沖單元將等待指令預(yù)取操作結(jié)束,其中,使數(shù)據(jù)緩沖單元等待的方法是設(shè)置該緩沖的AHB總線(xiàn)從設(shè)備準(zhǔn)備好信號(hào)為低。
在按照本發(fā)明提供的方法中,所述指令緩沖是這樣進(jìn)行的根據(jù)ARM 7 TDMI核產(chǎn)生的第一次取指地址,自動(dòng)按照遞增方式產(chǎn)生后續(xù)存儲(chǔ)器地址,并利用8字回卷突發(fā)方式(指令緩沖容量設(shè)定為8個(gè)字)在AHB總線(xiàn)上獲得存儲(chǔ)器中的指令,并將其存放到緩沖中;當(dāng)ARM 7TDMI核發(fā)生后續(xù)取指地址,指令緩沖將首先檢測(cè)它是否處于當(dāng)前緩沖中有效地址范圍之內(nèi),如果要訪問(wèn)的指令不在緩沖之內(nèi),則將中斷可能正在進(jìn)行的先前指令預(yù)取操作,并刷新緩沖;隨后將進(jìn)行新的指令預(yù)取操作;如果取指地址在當(dāng)前緩沖中的有效地址范圍內(nèi),則ARM7 TDMI核將從指令緩沖器中得到相應(yīng)的指令。
在上述按照本發(fā)明提供的方法中,所述數(shù)據(jù)緩沖的讀數(shù)和寫(xiě)數(shù)操作是這樣進(jìn)行的當(dāng)ARM 7 TDMI核進(jìn)行讀操作時(shí),數(shù)據(jù)緩沖將首先啟動(dòng)一次AHB單獨(dú)讀操作,如果不是單獨(dú)讀而是連續(xù)讀,則隨后在AHB上采用連續(xù)預(yù)讀方式,在連續(xù)讀結(jié)束前拋棄前2次讀回的數(shù)據(jù);當(dāng)ARM 7 TDMI核進(jìn)行寫(xiě)操作時(shí),數(shù)據(jù)緩沖將首先接收頭兩次寫(xiě)入的地址和數(shù)據(jù),才決定采取何種方式寫(xiě)入如果第二次為連續(xù)方式就采用連續(xù)突發(fā)方式寫(xiě)入;如果第二次為非連續(xù)方式就采用單個(gè)突發(fā)方式寫(xiě)入。
在上述按照本發(fā)明提供的裝置和方法中,所述ARM 7 TDMI核接口的請(qǐng)求和所述AHB接口的操作是并行進(jìn)行的。
實(shí)施本發(fā)明提供的帶指令緩沖的總線(xiàn)接口裝置及其訪問(wèn)外部存儲(chǔ)器的方法,可以應(yīng)用到ARM 7 TDMI核的AHB總線(xiàn)接口上,與現(xiàn)有技術(shù)相比,保持了ARM 7 TDMI核的訪問(wèn)指令操作的連續(xù)性,大大提高了外部DRAM存儲(chǔ)器系統(tǒng)的訪問(wèn)效率。
結(jié)合附圖和實(shí)施例,進(jìn)一步說(shuō)明本發(fā)明裝置和方法的特點(diǎn),附圖中

圖1是說(shuō)明本發(fā)明方法過(guò)程的邏輯流程圖;圖2是按照本發(fā)明的總線(xiàn)接口裝置的總體結(jié)構(gòu)示意圖;圖3是指令緩沖的結(jié)構(gòu)圖;圖4是數(shù)據(jù)緩沖的結(jié)構(gòu)圖;圖5是指令緩沖數(shù)據(jù)輸出控制的結(jié)構(gòu)圖;圖6是指令緩沖AHB總線(xiàn)地址和內(nèi)部緩沖地址產(chǎn)生結(jié)構(gòu)圖;圖7是數(shù)據(jù)緩沖有限狀態(tài)機(jī)。
如圖1所示,在說(shuō)明本發(fā)明方法原理的流程圖中,在本發(fā)明裝置及方法中,通過(guò)整合單元設(shè)置有多個(gè)狀態(tài),在機(jī)器開(kāi)始11通過(guò)系統(tǒng)復(fù)位,整合單元中的狀態(tài)機(jī)進(jìn)入空閑狀態(tài)12,在接收到ARM 7 TDMI核發(fā)出的取指請(qǐng)求后,進(jìn)入指令緩沖請(qǐng)求狀態(tài)13。在該狀態(tài)下,系統(tǒng)進(jìn)行取指操作,同時(shí)禁止數(shù)據(jù)緩沖的運(yùn)作。在指令緩沖進(jìn)行取指操作的同時(shí),整合單元如果檢測(cè)到數(shù)據(jù)緩沖有操作請(qǐng)求,狀態(tài)機(jī)將進(jìn)入指令緩沖請(qǐng)求保持狀態(tài)14。在該狀態(tài)下,數(shù)據(jù)緩沖的請(qǐng)求將保持直到指令緩沖操作結(jié)束為止,一旦指令緩沖操作結(jié)束,立即進(jìn)入數(shù)據(jù)緩沖請(qǐng)求狀態(tài)16。在該狀態(tài)下,數(shù)據(jù)緩沖進(jìn)行讀數(shù)或?qū)憯?shù)操作,同時(shí)禁止指令緩沖的運(yùn)作。在數(shù)據(jù)緩沖進(jìn)行讀寫(xiě)操作的同時(shí),整合單元如果檢測(cè)到指令緩沖有操作請(qǐng)求,狀態(tài)機(jī)將進(jìn)入數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài)15。在該狀態(tài)下,指令緩沖的請(qǐng)求將保持直到數(shù)據(jù)緩沖操作結(jié)束為止,一旦數(shù)據(jù)緩沖操作結(jié)束,立即進(jìn)入指令緩沖請(qǐng)求狀態(tài)。在該狀態(tài)下,指令緩沖進(jìn)行取指操作,同時(shí)禁止數(shù)據(jù)緩沖的運(yùn)作。如此循環(huán),在沒(méi)有請(qǐng)求后,系統(tǒng)自動(dòng)返回初始狀態(tài)。圖1中狀態(tài)翻轉(zhuǎn)條件說(shuō)明如下IREQ=1,表示指令緩沖有請(qǐng)求;IREQ=0,表示指令緩沖沒(méi)有請(qǐng)求;IEND=1,表示指令緩沖請(qǐng)求結(jié)束;IEND=0,表示指令緩沖請(qǐng)求未結(jié)束;DREQ=1,表示數(shù)據(jù)緩沖有請(qǐng)求;DREQ=0,表示數(shù)據(jù)緩沖沒(méi)有請(qǐng)求;DEND=1,表示數(shù)據(jù)緩沖請(qǐng)求結(jié)束;DEND=0,表示數(shù)據(jù)緩沖請(qǐng)求未結(jié)束。
在圖2示出的本發(fā)明提供的總線(xiàn)接口整體結(jié)構(gòu)圖中,可以將帶指令緩沖功能的ARM 7 TDMI核的AHB總線(xiàn)接口裝置可以分成ARM 7 TDMI核接口和AHB接口兩部分。其中,ARM 7 TDMI核接口部分可以接收取指和數(shù)據(jù)訪問(wèn)請(qǐng)求,AHB接口部分的狀態(tài)也可以分成空閑、取指和數(shù)據(jù)訪問(wèn)三種。如圖2所示,本發(fā)明的接口裝置由三個(gè)主要單元組成,分別為系統(tǒng)整合單元22、指令緩沖單元21和數(shù)據(jù)緩沖單元23。指令緩沖21和數(shù)據(jù)緩沖23在AHB總線(xiàn)上的切換是由整合單元22中的有限狀態(tài)自動(dòng)機(jī)和多路控制器24實(shí)現(xiàn)的。其中,系統(tǒng)整合單元22協(xié)調(diào)指令緩沖和數(shù)據(jù)緩沖的工作,確保在任何時(shí)候只有一個(gè)緩沖在運(yùn)作。當(dāng)數(shù)據(jù)緩沖請(qǐng)求進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),指令緩沖可能正在利用突發(fā)方式進(jìn)行指令預(yù)取操作。在這種情況下,數(shù)據(jù)緩沖23將等待指令預(yù)取操作結(jié)束。另外,考慮到數(shù)據(jù)緩沖操作在AHB總線(xiàn)部分的延遲,取指操作也可能會(huì)因?yàn)閿?shù)據(jù)訪問(wèn)操作而產(chǎn)生延遲。所以AHB接口部分充分考慮到指令緩沖和數(shù)據(jù)緩沖之間的切換,以及迫使相應(yīng)的緩沖等待。指令緩沖和數(shù)據(jù)緩沖在AHB總線(xiàn)上的切換是由整合單元中的有限狀態(tài)自動(dòng)機(jī)和相應(yīng)的多路開(kāi)關(guān)完成,使緩沖進(jìn)行等待的方法是設(shè)置該緩沖的AHB總線(xiàn)從設(shè)備準(zhǔn)備好信號(hào)為低。
指令緩沖的工作原理是根據(jù)ARM 7 TDMI核產(chǎn)生的第一次取指地址,自動(dòng)按照遞增方式產(chǎn)生后續(xù)存儲(chǔ)器地址,并利用8字回卷突發(fā)方式(指令緩沖容量設(shè)定為8個(gè)字)在AHB總線(xiàn)上獲得存儲(chǔ)器中的指令,并將其存放到緩沖中。當(dāng)ARM 7 TDMI核發(fā)生后續(xù)取指地址,指令緩沖將首先檢測(cè)它是否處于當(dāng)前緩沖中有效地址范圍之內(nèi),如果要訪問(wèn)的指令不在緩沖之內(nèi),則將中斷可能正在進(jìn)行的先前指令預(yù)取操作,并刷新緩沖。隨后將進(jìn)行新的指令預(yù)取操作。如果取指地址在當(dāng)前緩沖中的有效地址范圍內(nèi),則ARM 7 TDMI核將從指令緩沖器中得到相應(yīng)的指令。
指令預(yù)取緩沖利用了ARM 7 TDMI核取指操作中地址順序化的特點(diǎn)和AHB的流水特性,可以在下述三個(gè)方面提高性能- 當(dāng)ARM 7 TDMI核執(zhí)行較長(zhǎng)時(shí)間指令(例如乘法指令)時(shí),
雖然仍然按照時(shí)序順序方式執(zhí)行指令,但是它的連續(xù)取指操作將被中斷,直至上述指令結(jié)束。指令預(yù)取緩沖可以利用這段時(shí)間訪問(wèn)存儲(chǔ)器,并預(yù)取到下面的指令;- 當(dāng)ARM 7 TDMI核執(zhí)行訪存指令時(shí),雖然程序執(zhí)行流程中的指令地址還是遞增變化,但是它發(fā)出的連續(xù)取指操作地址被訪存指令的發(fā)出地址打斷而不再連續(xù),使得突發(fā)連續(xù)讀操作方式的效率下降(突發(fā)操作的效率和其突發(fā)傳輸長(zhǎng)度成正比),而指令預(yù)取緩沖將能彌補(bǔ)這個(gè)地址變化過(guò)程帶來(lái)的問(wèn)題,能充分利用AHB的突發(fā)方式。
- 對(duì)于循環(huán)體都在指令緩沖中的小循環(huán),轉(zhuǎn)移指令的目標(biāo)指令將在指令預(yù)取緩沖中多次使用,這將減少轉(zhuǎn)移指令帶來(lái)的開(kāi)銷(xiāo),并減少所需的存儲(chǔ)器帶寬。
數(shù)據(jù)緩沖的工作原理是在讀訪問(wèn)模式下時(shí),由于ARM 7 TDMI核給出的地址不能明確后續(xù)訪問(wèn)序列是否連續(xù),所以采用非連續(xù)讀和連續(xù)預(yù)讀相結(jié)合的方法,將ARM 7 TDMI核的訪存請(qǐng)求轉(zhuǎn)換為AHB的總線(xiàn)請(qǐng)求。具體說(shuō)來(lái),當(dāng)數(shù)據(jù)緩沖接收到ARM 7 TDMI核的第一次訪存請(qǐng)求后將采用非連續(xù)方式在AHB上訪問(wèn)存儲(chǔ)器,如果后續(xù)訪問(wèn)的地址是連續(xù)地址,數(shù)據(jù)緩沖將啟動(dòng)AHB上的INCR突發(fā)方式進(jìn)行預(yù)讀,并同時(shí)處理ARM 7 TDMI核的讀請(qǐng)求。當(dāng)然,突發(fā)方式結(jié)束后數(shù)據(jù)緩沖器中將會(huì)有兩個(gè)多余的數(shù)據(jù),應(yīng)由數(shù)據(jù)緩沖過(guò)濾掉。
在寫(xiě)訪問(wèn)模式下,由于不能事先確定ARM 7 TDMI核要寫(xiě)入的數(shù)據(jù)的個(gè)數(shù),所以采用首先寫(xiě)入緩沖,在明確了要寫(xiě)入的數(shù)據(jù)和地址后,再根據(jù)緩沖中要寫(xiě)入數(shù)據(jù)的數(shù)目確定寫(xiě)入的方式。例如,在只有一個(gè)字的方式下將采用非連續(xù)方式寫(xiě)入,如果有多個(gè)字將采用首字非連續(xù)寫(xiě),后續(xù)連續(xù)方式寫(xiě)入(后續(xù)只有一個(gè)字的情況下,則啟動(dòng)另外一個(gè)非連續(xù)寫(xiě)入)。由于在AHB總線(xiàn)上的寫(xiě)入過(guò)程將滯后于ARM 7 TDMI核的寫(xiě)入過(guò)程,所以數(shù)據(jù)緩沖在前條指令寫(xiě)入過(guò)程未完成的情況下將禁止后條指令的執(zhí)行。
將ARM 7 TDMI核發(fā)出的連續(xù)寫(xiě)過(guò)程拆成非連續(xù)加連續(xù)過(guò)程,其主要原因有三個(gè)- 在接收到ARM 7 TDMI核的首次存儲(chǔ)器訪問(wèn)請(qǐng)求時(shí),不能確定是否是連續(xù)讀寫(xiě)以及連續(xù)讀寫(xiě)的次數(shù)。
- 非連續(xù)讀寫(xiě)的頻度應(yīng)遠(yuǎn)高于連續(xù)讀寫(xiě),所以在大部分情況下這種讀寫(xiě)方式應(yīng)該是有效的。
- 采用這樣的連續(xù)訪問(wèn)過(guò)程,其時(shí)間損失也是有限的。對(duì)于n字連續(xù)讀請(qǐng)求,對(duì)ARM 7 TDMI核來(lái)說(shuō),其完成時(shí)間為n+4個(gè)周期,其總線(xiàn)占用時(shí)間為n+5個(gè)周期,對(duì)于n字連續(xù)寫(xiě)請(qǐng)求,對(duì)于ARM 7 TDMI核來(lái)說(shuō)其完成時(shí)間為n個(gè)周期,其總線(xiàn)占用周期為n+3個(gè)周期,其性能損耗并不顯著。
AHB總線(xiàn)規(guī)范中還要求突發(fā)方式的傳輸過(guò)程中,地址不能跨越1KB邊界,但是ARM 7 TDMI核的連續(xù)讀寫(xiě)地址序列卻不能滿(mǎn)足這個(gè)條件。我們解決這個(gè)問(wèn)題的思路是這樣的對(duì)于連續(xù)讀操作,其后續(xù)地址的底10位將由緩沖中的遞增器產(chǎn)生,當(dāng)遞增器的結(jié)果位全0時(shí),則中斷當(dāng)前的AHB連續(xù)讀過(guò)程,就象當(dāng)前地址不再連續(xù)一樣。對(duì)于寫(xiě)過(guò)程,處理的方式與之類(lèi)似,只是需要針對(duì)ARM 7 TDMI核發(fā)出的地址進(jìn)行判斷。
在圖3示出的本發(fā)明裝置的指令緩沖單元的結(jié)構(gòu)圖中,指令緩沖采用類(lèi)似高速緩存行的方式組織緩沖,圖中各部分功能如下- 核讀指令控制部件213的主要功能是接收ARM 7 TDMI核提出的訪存請(qǐng)求,并根據(jù)地址命中的判斷結(jié)果,控制指令緩沖寄存器中合適的指令字輸出,并產(chǎn)生滿(mǎn)足ARM 7 TDMI核規(guī)范的時(shí)序信號(hào);- AHB讀指令控制部件214的主要功能是產(chǎn)生AHB總線(xiàn)訪存的時(shí)序信號(hào),并根據(jù)其響應(yīng)向指令緩沖中的合適位置寫(xiě)入從AHB上讀出的數(shù)據(jù);- 地址判斷部件212的主要功能是判斷ARM 7 TDMI核發(fā)出的取指地址是否在緩沖中;- 指令緩沖寄存器組211的主要功能是存放從存儲(chǔ)器獲得的指令。
在圖4示出的本發(fā)明裝置中的數(shù)據(jù)緩沖單元的結(jié)構(gòu)示意圖中,數(shù)據(jù)緩沖的總體結(jié)構(gòu)包括有限狀態(tài)自動(dòng)機(jī)232;由核地址總線(xiàn)和AHB地址產(chǎn)生邏輯組成的數(shù)據(jù)緩沖地址產(chǎn)生部件231;由核數(shù)據(jù)總線(xiàn)、AHB數(shù)據(jù)總線(xiàn)和兩條總線(xiàn)的時(shí)序轉(zhuǎn)換邏輯組成的數(shù)據(jù)緩沖數(shù)據(jù)產(chǎn)生部件233,其中,數(shù)據(jù)緩沖地址產(chǎn)生部件231和數(shù)據(jù)緩沖數(shù)據(jù)產(chǎn)生部件233的控制信號(hào)由有限狀態(tài)自動(dòng)機(jī)232和外部輸入信號(hào)共同決定。
在圖5示出的本發(fā)明的指令緩沖數(shù)據(jù)輸出控制結(jié)構(gòu)示意圖中,指令緩沖輸出部分將根據(jù)ARM 7 TDMI核輸出的取指地址,并基于地址命中判斷單元34判斷地址是否命中。如果取指地址命中緩沖,則輸出部分將按照ARM 7 TDMI核的規(guī)范回應(yīng)系統(tǒng)等待信號(hào),并將緩沖32中的指令字回送到ARM 7 TDMI核的數(shù)據(jù)線(xiàn)上。
圖中的緩沖使能信號(hào)為高電平有效的控制信號(hào);地址寄存器35是帶輸入使能的寄存器,只有在取指操作時(shí)新的地址才打入該寄存器;基址寄存器36也是帶輸入使能的寄存器,只有在允許指令緩沖運(yùn)作、地址寄存器35高27位與基址寄存器的值比較的結(jié)果不等并且AHB總線(xiàn)上從設(shè)備準(zhǔn)備好的情況下才允許新的值打入。
圖6為本發(fā)明的指令緩沖AHB總線(xiàn)地址和內(nèi)部緩沖地址產(chǎn)生結(jié)構(gòu)圖。指令緩沖在進(jìn)行存儲(chǔ)器訪問(wèn)時(shí),ARM 7 TDMI核發(fā)出的地址的高27位和低2位經(jīng)過(guò)鎖存后直接輸出作為AHB地址總線(xiàn)的高27位和低2位,但是其第4到第2位地址按照循環(huán)增加的方式改變。圖中的組合邏輯C0用來(lái)控制多路開(kāi)關(guān)的輸出,產(chǎn)生所需的AHB地址總線(xiàn)的第4到第2位地址。C0的邏輯參考表1。
由于AHB總線(xiàn)的流水特性,從AHB總線(xiàn)上讀取數(shù)據(jù)的地址和正在發(fā)出的地址是不相同的,所以此處專(zhuān)門(mén)使用圖6中的內(nèi)部緩沖地址產(chǎn)生結(jié)構(gòu)單元產(chǎn)生和保持寫(xiě)入地址。
值得注意的是,該單元將產(chǎn)生兩個(gè)寫(xiě)入地址分別控制數(shù)據(jù)緩沖的輸入使能、緩沖數(shù)據(jù)有效標(biāo)志信號(hào)和系統(tǒng)等待信號(hào)的產(chǎn)生。其中輸入使能信號(hào)由內(nèi)部緩沖地址信號(hào)控制,緩沖數(shù)據(jù)有效標(biāo)志信號(hào)和系統(tǒng)等待信號(hào)由內(nèi)部緩沖地址鎖存信號(hào)控制。這兩者的區(qū)別在于后者比前者要慢一個(gè)周期。圖中的組合邏輯C1用來(lái)控制多路開(kāi)關(guān)的輸出,產(chǎn)生所需的內(nèi)部緩沖地址。C1的邏輯參考如下的表1。
表1組合邏輯C0和C1邏輯真值表
注上表中各欄的說(shuō)明如下1. AHB總線(xiàn)傳輸類(lèi)型欄-00空閑狀態(tài)-10非連續(xù)傳輸方式-11連續(xù)傳輸方式2. AHB總線(xiàn)從設(shè)備準(zhǔn)備好欄-1AHB總線(xiàn)從設(shè)備準(zhǔn)備好-0AHB總線(xiàn)從設(shè)備沒(méi)有準(zhǔn)備好-X忽略AHB總線(xiàn)從設(shè)備的狀態(tài)3. 高位地址比較結(jié)果欄-1結(jié)果不相等-0結(jié)果相等-X忽略比較的結(jié)果在圖7示出的本發(fā)明的數(shù)據(jù)緩沖有限狀態(tài)機(jī)中,當(dāng)ARM 7 TDMI核進(jìn)行讀操作時(shí),數(shù)據(jù)緩沖將首先啟動(dòng)一次AHB單獨(dú)讀操作,如果是單獨(dú)讀,則此次讀操作就可以完成;如果是連續(xù)讀,隨后在AHB上采用連續(xù)預(yù)讀的方式以提高性能,由于AHB的流水特性以及ARM 7 TDMI核到AHB總線(xiàn)上的一個(gè)周期延時(shí),每次預(yù)讀操作都將有兩個(gè)字的浪費(fèi),所以在連續(xù)讀操作結(jié)束前將拋棄2次讀回的數(shù)據(jù)。當(dāng)ARM 7 TDMI核進(jìn)行寫(xiě)操作時(shí),數(shù)據(jù)緩沖將首先接收頭兩次寫(xiě)入的地址和數(shù)據(jù),才決定采取何種方式寫(xiě)入如果第二次為連續(xù)方式就采用連續(xù)突發(fā)方式寫(xiě)入;如果第二次為非連續(xù)方式就采用單個(gè)突發(fā)方式寫(xiě)入。另外,在ARM 7 TDMI核到AHB的數(shù)據(jù)總線(xiàn)之間構(gòu)成了一個(gè)2級(jí)的流水線(xiàn),也就是說(shuō)ARM 7 TDMI核的數(shù)據(jù)需要兩個(gè)周期才能寫(xiě)到AHB上,剛好與寫(xiě)命令發(fā)出的時(shí)間匹配。當(dāng)ARM 7 TDMI核連續(xù)寫(xiě)結(jié)束時(shí),緩沖中將還有兩個(gè)數(shù)據(jù)等待寫(xiě)入,此時(shí)數(shù)據(jù)緩沖應(yīng)有特殊的狀態(tài)控制它們寫(xiě)入存儲(chǔ)器中。
對(duì)圖7中的狀態(tài)說(shuō)明如下-ST0空閑狀態(tài)-ST1單個(gè)數(shù)據(jù)讀狀態(tài)。在該狀態(tài)下,在AHB總線(xiàn)上發(fā)出單個(gè)數(shù)據(jù)讀請(qǐng)求操作,該數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上-ST2單個(gè)數(shù)據(jù)讀等待狀態(tài)。在該狀態(tài),緩沖等待AHB總線(xiàn)返回的數(shù)據(jù)-ST3不定長(zhǎng)突發(fā)方式數(shù)據(jù)讀開(kāi)始狀態(tài)。在該狀態(tài)下,在AHB
總線(xiàn)上以不定長(zhǎng)突發(fā)方式發(fā)出讀請(qǐng)求操作,第一個(gè)數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上-ST4不定長(zhǎng)突發(fā)方式數(shù)據(jù)讀狀態(tài)。在該狀態(tài)下,不定長(zhǎng)突發(fā)方式中后續(xù)數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上,同時(shí)接收總線(xiàn)返回的數(shù)據(jù)-ST5拋棄第一次預(yù)讀入的數(shù)據(jù)狀態(tài)。
-ST6拋棄第二次預(yù)讀入的數(shù)據(jù)狀態(tài)。
-ST7接收Core寫(xiě)入的第一次數(shù)據(jù)狀態(tài)。
-ST8單個(gè)數(shù)據(jù)寫(xiě)狀態(tài)。在該狀態(tài)下,在AHB總線(xiàn)上發(fā)出單個(gè)數(shù)據(jù)寫(xiě)請(qǐng)求操作,該數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上-ST9單個(gè)數(shù)據(jù)寫(xiě)等待狀態(tài)。在該狀態(tài),緩沖等待將數(shù)據(jù)寫(xiě)入AHB總線(xiàn)-ST10不定長(zhǎng)突發(fā)方式數(shù)據(jù)寫(xiě)開(kāi)始狀態(tài)。在該狀態(tài)下,在AHB總線(xiàn)上以不定長(zhǎng)突發(fā)方式發(fā)出寫(xiě)請(qǐng)求操作,第一個(gè)數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上-ST11不定長(zhǎng)突發(fā)方式數(shù)據(jù)寫(xiě)狀態(tài)。在該狀態(tài)下,不定長(zhǎng)突發(fā)方式中后續(xù)數(shù)據(jù)的地址和地址總線(xiàn)控制信號(hào)被放在AHB總線(xiàn)上,同時(shí)將數(shù)據(jù)寫(xiě)入AHB總線(xiàn)-ST12最后第二個(gè)數(shù)據(jù)寫(xiě)入狀態(tài)-ST13最后一個(gè)數(shù)據(jù)寫(xiě)入狀態(tài)-ST14讀等待狀態(tài)。在該狀態(tài)下,由于指令緩沖占用AHB總線(xiàn),所以數(shù)據(jù)緩沖讀請(qǐng)求被保持-ST15寫(xiě)等待狀態(tài)。在該狀態(tài)下,由于指令緩沖占用AHB總線(xiàn),所以數(shù)據(jù)緩沖寫(xiě)請(qǐng)求被保持圖7中狀態(tài)翻轉(zhuǎn)條件說(shuō)明-C01表示數(shù)據(jù)緩沖有單個(gè)讀請(qǐng)求且AHB總線(xiàn)未被指令緩沖占用-C1表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C12表示AHB從設(shè)備準(zhǔn)備好-C20表示AHB從設(shè)備準(zhǔn)備好-C014表示數(shù)據(jù)緩沖有讀請(qǐng)求但AHB總線(xiàn)被指令緩沖占用-C14表示AHB總線(xiàn)仍被指令緩沖占用-C141表示指令緩沖釋放對(duì)AHB總線(xiàn)的占用-C03表示數(shù)據(jù)緩沖有連續(xù)讀請(qǐng)求且AHB總線(xiàn)未被指令緩沖占用-C3表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C31表示地址跨越1K邊界且AHB從設(shè)備準(zhǔn)備好-C34表示地址沒(méi)有跨越1K邊界且AHB從設(shè)備準(zhǔn)備好-C4表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C45表示數(shù)據(jù)緩沖撤銷(xiāo)連續(xù)讀請(qǐng)求且AHB從設(shè)備沒(méi)有準(zhǔn)備好-C5表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C56表示AHB從設(shè)備準(zhǔn)備好
-C6表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C60表示AHB從設(shè)備準(zhǔn)備好-C07表示數(shù)據(jù)緩沖有寫(xiě)請(qǐng)求且AHB總線(xiàn)未被指令緩沖占用-C015表示數(shù)據(jù)緩沖有寫(xiě)請(qǐng)求但AHB總線(xiàn)被指令緩沖占用-C15表示AHB總線(xiàn)仍被指令緩沖占用-C157表示指令緩沖釋放對(duì)AHB總線(xiàn)的占用-C78表示上一個(gè)寫(xiě)請(qǐng)求為單個(gè)突發(fā)方式或地址跨越1K邊界-C710表示上一個(gè)寫(xiě)請(qǐng)求為連續(xù)突發(fā)方式且地址沒(méi)有跨越1K邊界-C8表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C89表示AHB從設(shè)備準(zhǔn)備好-C9表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C90表示AHB從設(shè)備準(zhǔn)備好-C10表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C1011繼續(xù)保持INCR突發(fā)方式且地址沒(méi)有跨越1K邊界,AHB從設(shè)備準(zhǔn)備好-C1012連續(xù)突發(fā)方式結(jié)束-C11繼續(xù)保持連續(xù)突發(fā)方式且地址沒(méi)有跨越1K邊界-C1112INCR突發(fā)方式結(jié)束且AHB從設(shè)備沒(méi)有準(zhǔn)備好-C1113INCR突發(fā)方式結(jié)束且AHB從設(shè)備準(zhǔn)備好-C12表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C1213表示AHB從設(shè)備準(zhǔn)備好
-C13表示AHB從設(shè)備沒(méi)有準(zhǔn)備好-C130表示AHB從設(shè)備準(zhǔn)備好利用本發(fā)明提供的方法和裝置,也可以作為其它類(lèi)型的ARM處理器和AHB總線(xiàn)的接口裝置;或ARM處理器與ARM公司的ASB總線(xiàn)、APB總線(xiàn)的接口裝置。還可以運(yùn)用在非SOC設(shè)計(jì)中,作為微處理器與片外高速存儲(chǔ)器的接口裝置。
權(quán)利要求
1.一種帶指令緩沖功能的總線(xiàn)接口裝置,包括設(shè)有空閑、取指和數(shù)據(jù)訪問(wèn)三種狀態(tài)的AHB總線(xiàn)接口,與所述AHB總線(xiàn)接口連接的多路控制器,分別與所述多路控制器連接的指令緩沖單元、數(shù)據(jù)緩沖單元以及整合單元,所述整合單元包括一個(gè)有限狀態(tài)自動(dòng)機(jī),用于和所述多路控制器配合,控制所述AHB總線(xiàn)在所述指令緩沖單元和所述數(shù)據(jù)緩沖單元之間進(jìn)行切換以確保在任何時(shí)候只有其中一個(gè)緩沖單元在工作。
2.根據(jù)權(quán)利要求1所述裝置,其特征在于,所述整合單元中的有限狀態(tài)自動(dòng)機(jī)與所述多路控制器配合實(shí)現(xiàn)以下?tīng)顟B(tài)遷移在空閑狀態(tài)收到取指請(qǐng)求后,進(jìn)入指令緩沖請(qǐng)求狀態(tài);在指令緩沖請(qǐng)求狀態(tài)下,指令緩沖進(jìn)行取指操作,同時(shí)禁止數(shù)據(jù)緩沖的運(yùn)作,在進(jìn)行取指操作的同時(shí),如果檢測(cè)到數(shù)據(jù)緩沖有操作請(qǐng)求,則進(jìn)入指令緩沖請(qǐng)求保持狀態(tài);在指令緩沖請(qǐng)求保持狀態(tài),數(shù)據(jù)緩沖的請(qǐng)求將保持直到指令緩沖操作結(jié)束為止,一旦指令緩沖操作結(jié)束,立即進(jìn)入數(shù)據(jù)緩沖請(qǐng)求狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求狀態(tài),進(jìn)行數(shù)據(jù)緩沖的讀數(shù)或?qū)憯?shù)操作,同時(shí)禁止指令緩沖運(yùn)作,在進(jìn)行數(shù)據(jù)讀寫(xiě)操作的同時(shí),如果檢測(cè)到指令緩沖有操作請(qǐng)求,狀態(tài)機(jī)將進(jìn)入數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài)下,指令緩沖的請(qǐng)求將保持直到數(shù)據(jù)緩沖操作結(jié)束為止,一旦數(shù)據(jù)緩沖操作結(jié)束,立即進(jìn)入指令緩沖請(qǐng)求狀態(tài);如此循環(huán),在沒(méi)有請(qǐng)求后,系統(tǒng)自動(dòng)返回初始狀態(tài)。
3.根據(jù)權(quán)利要求1所述裝置,其特征在于,所述指令緩沖單元包括用于存放指令的指令緩沖寄存器組(211);可判斷ARM 7 TDMI核發(fā)出的取指地址是否在所述緩沖寄存器組中的地址命中判斷單元(212);還包括核讀指令控制單元(213),用于接收ARM 7 TDMI核發(fā)出的訪存請(qǐng)求,并根據(jù)所述地址命中判斷單元(212)的判斷結(jié)果,控制所述指令緩沖寄存器組(211)輸出相應(yīng)的指令字到所述ARM 7 TDMI核數(shù)據(jù)總線(xiàn)上,并產(chǎn)生滿(mǎn)足ARM 7 TDMI核規(guī)范的時(shí)序信號(hào);以及產(chǎn)生AHB總線(xiàn)訪存的時(shí)序信號(hào),并根據(jù)其響應(yīng)向指令緩沖寄存器組(211)的相應(yīng)地址寫(xiě)入從AHB總線(xiàn)讀入數(shù)據(jù)的AHB讀指令控制單元(214)。
4.根據(jù)權(quán)利要求1所述裝置,其特征在于,所述指令緩沖單元(21)中的核讀指令控制單元(213)根據(jù)ARM 7 TDMI核輸出的取指地址,并基于所述地址命中判斷單元判斷該地址是否命中,如果取指地址命中所述緩沖寄存器組,則所述核讀指令控制單元將按照ARM 7 TDMI核的規(guī)范回應(yīng)系統(tǒng)等待信號(hào),并將緩沖中的指令字回送到ARM 7 TDMI核的數(shù)據(jù)線(xiàn)上。
5.一種基于帶指令緩沖功能的總線(xiàn)接口訪問(wèn)外部存儲(chǔ)器的方法,在總線(xiàn)接口中設(shè)置有指令緩沖單元和數(shù)據(jù)緩沖單元,還設(shè)置有控制單元,用于將可能會(huì)用到的指令事先利用突發(fā)方式通過(guò)AHB總線(xiàn)從外部存儲(chǔ)器系統(tǒng)中取到指令緩沖單元,在隨后的訪問(wèn)指令操作中,只要指令已經(jīng)存在于緩沖單元中,即使是被訪問(wèn)數(shù)據(jù)或長(zhǎng)時(shí)間操作指令所打斷的訪問(wèn)指令操作也可以直接從緩沖單元中獲得指令而無(wú)需訪問(wèn)外部存儲(chǔ)器。
6.根據(jù)權(quán)利要求5所述方法,其特征在于,所述控制單元執(zhí)行以下步驟在空閑狀態(tài)收到取指請(qǐng)求后,進(jìn)入指令緩沖請(qǐng)求狀態(tài);在指令緩沖請(qǐng)求狀態(tài)下,指令緩沖進(jìn)行取指操作,同時(shí)禁止數(shù)據(jù)緩沖的運(yùn)作,在進(jìn)行取指操作的同時(shí),如果檢測(cè)到數(shù)據(jù)緩沖有操作請(qǐng)求,則進(jìn)入指令緩沖請(qǐng)求保持狀態(tài);在指令緩沖請(qǐng)求保持狀態(tài),數(shù)據(jù)緩沖的請(qǐng)求將保持直到指令緩沖操作結(jié)束為止,一旦指令緩沖操作結(jié)束,立即進(jìn)入數(shù)據(jù)緩沖請(qǐng)求狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求狀態(tài),進(jìn)行數(shù)據(jù)緩沖的讀數(shù)或?qū)憯?shù)操作,同時(shí)禁止指令緩沖運(yùn)作,在進(jìn)行數(shù)據(jù)讀寫(xiě)操作的同時(shí),如果檢測(cè)到指令緩沖有操作請(qǐng)求,狀態(tài)機(jī)將進(jìn)入數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài);在數(shù)據(jù)緩沖請(qǐng)求保持狀態(tài)下,指令緩沖的請(qǐng)求將保持直到數(shù)據(jù)緩沖操作結(jié)束為止,一旦數(shù)據(jù)緩沖操作結(jié)束,立即進(jìn)入指令緩沖請(qǐng)求狀態(tài);如此循環(huán),在沒(méi)有請(qǐng)求后,系統(tǒng)自動(dòng)返回初始狀態(tài)。
7.根據(jù)權(quán)利要求5所述方法,其特征于,當(dāng)數(shù)據(jù)緩沖單元請(qǐng)求進(jìn)行數(shù)據(jù)訪問(wèn)時(shí),如果所述指令緩沖單元正在利用突發(fā)方式進(jìn)行指令預(yù)取操作,則所述數(shù)據(jù)緩沖單元將等待指令預(yù)取操作結(jié)束,其中,使數(shù)據(jù)緩沖單元等待的方法是設(shè)置該緩沖的AHB總線(xiàn)從設(shè)備準(zhǔn)備好信號(hào)為低。
8.根據(jù)權(quán)利要求5所述方法,其特征在于,所述指令緩沖是這樣進(jìn)行的根據(jù)ARM 7 TDMI核產(chǎn)生的第一次取指地址,自動(dòng)按照遞增方式產(chǎn)生后續(xù)存儲(chǔ)器地址,并利用8字回卷突發(fā)方式(指令緩沖容量設(shè)定為8個(gè)字)在AHB總線(xiàn)上獲得存儲(chǔ)器中的指令,并將其存放到緩沖中;當(dāng)ARM 7 TDMI核發(fā)生后續(xù)取指地址,指令緩沖將首先檢測(cè)它是否處于當(dāng)前緩沖中有效地址范圍之內(nèi),如果要訪問(wèn)的指令不在緩沖之內(nèi),則將中斷可能正在進(jìn)行的先前指令預(yù)取操作,并刷新緩沖;隨后將進(jìn)行新的指令預(yù)取操作;如果取指地址在當(dāng)前緩沖中的有效地址范圍內(nèi),則ARM 7 TDMI核將從指令緩沖器中得到相應(yīng)的指令。
9.根據(jù)權(quán)利要求5所述方法,其特征在于,所述數(shù)據(jù)緩沖的讀數(shù)和寫(xiě)數(shù)操作是這樣進(jìn)行的當(dāng)ARM 7 TDMI核進(jìn)行讀操作時(shí),數(shù)據(jù)緩沖將首先啟動(dòng)一次AHB單獨(dú)讀操作,如果不是單獨(dú)讀而是連續(xù)讀,則隨后在AHB上采用連續(xù)預(yù)讀方式,在連續(xù)讀結(jié)束前拋棄前2次讀回的數(shù)據(jù);當(dāng)ARM 7TDMI核進(jìn)行寫(xiě)操作時(shí),數(shù)據(jù)緩沖將首先接收頭兩次寫(xiě)入的地址和數(shù)據(jù),才決定采取何種方式寫(xiě)入如果第二次為連續(xù)方式就采用連續(xù)突發(fā)方式寫(xiě)入;如果第二次為非連續(xù)方式就采用單個(gè)突發(fā)方式寫(xiě)入。
全文摘要
一種帶指令緩沖的總線(xiàn)接口裝置及其訪問(wèn)外部存儲(chǔ)器的方法,包括設(shè)有空閑、取指和數(shù)據(jù)訪問(wèn)三種狀態(tài)的AHB總線(xiàn)接口,與所述AHB總線(xiàn)接口連接的多路控制器,分別與所述多路控制器連接的指令緩沖單元、數(shù)據(jù)緩沖單元以及整合單元,所述整合單元包括一個(gè)有限狀態(tài)自動(dòng)機(jī),用于和所述多路控制器配合,控制所述AHB總線(xiàn)在所述指令緩沖單元和所述數(shù)據(jù)緩沖單元之間進(jìn)行切換以確保在任何時(shí)候只有其中一個(gè)緩沖單元在工作。
文檔編號(hào)G06F11/00GK1368685SQ0110751
公開(kāi)日2002年9月11日 申請(qǐng)日期2001年2月10日 優(yōu)先權(quán)日2001年2月10日
發(fā)明者陳虎, 朱子宇, 黃海, 梁松海 申請(qǐng)人:深圳市中興集成電路設(shè)計(jì)有限責(zé)任公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
翼城县| 会同县| 霸州市| 垦利县| 大荔县| 奇台县| 汝阳县| 静乐县| 龙岩市| 平谷区| 调兵山市| 江北区| 务川| 教育| 屯昌县| 美姑县| 拜泉县| 安岳县| 莱西市| 湘西| 呼和浩特市| 南投县| 南阳市| 拉孜县| 抚宁县| 宁化县| 乌审旗| 遵化市| 囊谦县| 类乌齐县| 星座| 健康| 长武县| 兰州市| 古丈县| 张家口市| 太白县| 泰安市| 永安市| 望都县| 玛曲县|