專利名稱:嵌入式處理器的加載/存儲(chǔ)單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式處理器的加載/存儲(chǔ)單元。
背景技術(shù):
近年來(lái)隨著高性能嵌入式處理器的發(fā)展,為了提高內(nèi)部邏輯元件 的利用率以提高整個(gè)處理器的性能,通常會(huì)采用多指令發(fā)射、亂序執(zhí) 行等各種方法?,F(xiàn)在普遍使用的一些超標(biāo)量處理器通常能夠在一個(gè)指 令周期內(nèi)并發(fā)執(zhí)行多條指令。處理器從指令高速緩存中預(yù)取了一批指 令后,就會(huì)分析出那些沒(méi)有關(guān)聯(lián)性可以并行執(zhí)行的指令,然后發(fā)射到 幾個(gè)獨(dú)立的執(zhí)行單元進(jìn)行并行執(zhí)行。
通常來(lái)說(shuō)加載/存儲(chǔ)指令(由加載/存儲(chǔ)單元執(zhí)行)需要多個(gè)指令 周期,而一般的算術(shù)指令通常在一個(gè)指令周期執(zhí)行完成,所以數(shù)據(jù)的 加載/存儲(chǔ)指令成為了限制嵌入式處理器性能提升的瓶頸。為了解決這 個(gè)矛盾,處理器設(shè)計(jì)的先驅(qū)們提出了采用存儲(chǔ)器層次結(jié)構(gòu)的想法,其 依據(jù)是程序訪問(wèn)的局部性原理和內(nèi)存技術(shù)的性能價(jià)格比原則。通過(guò)在 嵌入式處理器和存儲(chǔ)器之間設(shè)置高速緩存的層次結(jié)構(gòu)來(lái)提升嵌入式處 理器的整體性能。
在過(guò)去的十幾年中,無(wú)數(shù)科學(xué)家和工程師為此做了大量的工作, 目標(biāo)就是為了減少訪問(wèn)高速緩存的時(shí)間。在他們的不懈努力下,高速 緩存的訪問(wèn)時(shí)間已經(jīng)減少到了接近一個(gè)時(shí)鐘周期。也就是說(shuō),只要不 發(fā)生高速緩存的訪問(wèn)缺失,執(zhí)行加載/存儲(chǔ)指令也可以在一個(gè)指令內(nèi)完成。但是由于高速緩存訪問(wèn)缺失的存在, 一旦發(fā)生訪問(wèn)缺失,數(shù)
據(jù)的加載/存儲(chǔ)需要通過(guò)外部總線從片外存儲(chǔ)器中去加載/存儲(chǔ)數(shù)據(jù),
這個(gè)過(guò)程需要幾個(gè)甚至幾十個(gè)指令周期。而由于當(dāng)前主流的嵌入式高
性能處理器普遍采用流水線結(jié)構(gòu),前續(xù)指令的停頓會(huì)阻塞整條流水線
的正常執(zhí)行。
發(fā)明內(nèi)容
為了克服已有的嵌入式處理器的加載/存儲(chǔ)單元由于高速緩存的 缺失,在長(zhǎng)延時(shí)的存儲(chǔ)器訪問(wèn)時(shí)阻塞流水線,削弱了處理器性能的不 足,本發(fā)明提供一種在發(fā)生高速緩存訪問(wèn)缺失時(shí),不會(huì)阻塞流水線, 提升處理器性能的嵌入式處理器的加載/存儲(chǔ)單元。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是
一種嵌入式處理器的加載/存儲(chǔ)單元,在所述加載/存儲(chǔ)單元中, 采用全流水線方式讀寫指令對(duì)片上高速緩存進(jìn)行訪問(wèn),如果前序指令 發(fā)生訪問(wèn)缺失時(shí),將引起訪問(wèn)缺失的指令保存到專用訪問(wèn)缺失緩沖器 中,并釋放流水線資源,后續(xù)指令繼續(xù)訪問(wèn)高速緩存。
作為優(yōu)選的一種方案設(shè)置獨(dú)立的片外更新緩沖器緩存片外存儲(chǔ) 器的寫操作,將片外存儲(chǔ)器寫操作的快速退休。
作為優(yōu)選的另一種方案設(shè)置獨(dú)立的片上更新緩沖器緩存片上高 速緩存更新操作,將高速緩存寫操作的快速退休。
作為優(yōu)選的再一種技術(shù)方案:所述的片上更新緩沖器的更新請(qǐng)求, 在高速緩存空閑的間隙進(jìn)行更新片上高速緩存操作。
進(jìn)一步,將片上更新緩沖器的更新請(qǐng)求設(shè)置為優(yōu)先級(jí)最低的請(qǐng)求, 當(dāng)其他訪問(wèn)片上高速緩存的模塊出現(xiàn)訪問(wèn)間隙時(shí),片上更新緩沖器獲得更新片上高速緩存的權(quán)限。
作為優(yōu)選的再另一種方案所述的專用訪問(wèn)缺失緩沖器支持存儲(chǔ) 多條高速緩存訪問(wèn)指令的缺失請(qǐng)求,同時(shí)將造成高速緩存訪問(wèn)缺失的 指令從流水線上剔除。
再進(jìn)一歩,全流水方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存的訪問(wèn)的過(guò) 程為通過(guò)將讀寫指令訪問(wèn)片上高速緩存劃分為若干個(gè)步驟,當(dāng)前序 指令在執(zhí)行的時(shí)候,立刻啟動(dòng)后序指令的操作步驟。
更進(jìn)一步,執(zhí)行讀取高速緩存數(shù)據(jù)的指令,需要經(jīng)過(guò)數(shù)據(jù)存儲(chǔ)地 址計(jì)算階段、高速緩存訪問(wèn)階段和讀取數(shù)據(jù)處理階段,每一條讀指令 經(jīng)過(guò)流水線的三拍完成數(shù)據(jù)的讀取工作并返回所讀取到底正確數(shù)據(jù); 執(zhí)行高速緩存寫入操作的指令,經(jīng)過(guò)數(shù)據(jù)存儲(chǔ)地址計(jì)算階段和高速緩 存訪問(wèn)階段。
本發(fā)明的技術(shù)構(gòu)思為 一種嵌入式處理器的加載/存儲(chǔ)單元的非阻 塞流水線技術(shù),使得前續(xù)加載/存儲(chǔ)指令在發(fā)生高速緩存訪問(wèn)缺失,造 成長(zhǎng)延時(shí)的存儲(chǔ)器訪問(wèn)時(shí),后面的加載/存儲(chǔ)指令仍然可以正常執(zhí)行, 更新高速緩存。
本發(fā)明的有益效果主要表現(xiàn)在在發(fā)生高速緩存訪問(wèn)缺失時(shí),不 會(huì)阻塞流水線,可提升處理器性能達(dá)5%。
圖1是一種非阻塞的片上高速緩存訪問(wèn)機(jī)制的流水線劃分圖。 圖2是一種非阻塞的片上高速緩存訪問(wèn)機(jī)制的硬件結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。參照?qǐng)D1和圖2, 一種嵌入式處理器的加載/存儲(chǔ)單元,在所述加 載/存儲(chǔ)單元中,采用全流水線方式讀寫指令對(duì)片上高速緩存進(jìn)行訪
問(wèn),如果前序指令發(fā)生訪問(wèn)缺失時(shí),將引起訪問(wèn)缺失的指令保存到專 用訪問(wèn)缺失緩沖器中,并釋放流水線資源,后續(xù)指令繼續(xù)訪問(wèn)高速緩 存。
設(shè)置獨(dú)立的片外更新緩沖器緩存片外存儲(chǔ)器的寫操作,將片外存
儲(chǔ)器寫操作的快速退休;設(shè)置獨(dú)立的片上更新緩沖器緩存片上高速緩
存更新操作,將高速緩存寫操作的快速退休。
本實(shí)施例采用全流水方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存的訪問(wèn) 全流水方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存的訪問(wèn)指的是,每次對(duì)片上 高速緩存的訪問(wèn)操作,需要經(jīng)過(guò)多個(gè)操作步驟(多個(gè)時(shí)鐘周期),才能 實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存所進(jìn)行的訪問(wèn)操作。具體來(lái)說(shuō),執(zhí)行讀 取高速緩存數(shù)據(jù)的指令,需要經(jīng)過(guò)三個(gè)操作步驟(數(shù)據(jù)存儲(chǔ)地址計(jì)算 階段,高速緩存訪問(wèn)階段,讀取數(shù)據(jù)處理階段),如圖一所示。每一條 讀指令,經(jīng)過(guò)流水線的三拍,完成數(shù)據(jù)的讀取工作并返回所讀取到底 正確數(shù)據(jù)。而執(zhí)行高速緩存寫入操作的指令,只需要經(jīng)過(guò)兩個(gè)操作步 驟(數(shù)據(jù)存儲(chǔ)地址計(jì)算階段,高速緩存訪問(wèn)階段),提前完成對(duì)高速緩 存的數(shù)據(jù)的寫入指令的操作。
所述的當(dāng)前序指令發(fā)生訪問(wèn)缺失時(shí),不阻塞流水線,后序指令繼 續(xù)訪問(wèn)高速緩存,實(shí)現(xiàn)在前序指令訪問(wèn)缺失下的后序指令不停頓地對(duì) 高速緩存的訪問(wèn)當(dāng)程序指令中的前續(xù)指令發(fā)生高速緩存訪問(wèn)缺失時(shí), 前續(xù)指令會(huì)被保存到專門的緩沖器中,并會(huì)被從流水線上剔除。這樣 流水線不會(huì)出現(xiàn)阻塞,后續(xù)訪問(wèn)高速緩存的指令自然就不會(huì)發(fā)生停頓,按照正常的指令執(zhí)行步驟執(zhí)行,對(duì)高速緩存進(jìn)行讀寫訪問(wèn)。
所述的當(dāng)出現(xiàn)高速緩存訪問(wèn)缺失時(shí),將引起訪問(wèn)缺失的指令保存 到專用訪問(wèn)缺失緩沖器中,并釋放流水線資源當(dāng)發(fā)生高速緩存訪問(wèn) 缺失時(shí),為了保持流水線運(yùn)行的通暢,采用專門的訪問(wèn)缺失緩沖器來(lái) 緩存造成高速緩存訪問(wèn)缺失的指令(如圖2所示),并把這條指令從流 水線上剔除。而訪問(wèn)缺失緩沖器則負(fù)責(zé)在高速緩存訪問(wèn)缺失情況下, 從片外內(nèi)存裝載數(shù)據(jù)回填高速緩存,并完成讀取數(shù)據(jù)的指令。
所述的訪問(wèn)缺失緩沖器支持多次連續(xù)高速緩存訪問(wèn)缺失請(qǐng)求訪 問(wèn)缺失緩沖器由多個(gè)表項(xiàng)組成,用來(lái)存儲(chǔ)當(dāng)發(fā)生高速緩存訪問(wèn)缺失時(shí) 的數(shù)據(jù)讀取指令。當(dāng)多條數(shù)據(jù)讀取指令發(fā)生連續(xù)高速緩存訪問(wèn)缺失時(shí), 這些指令會(huì)以先進(jìn)先出的形式,被保存到訪問(wèn)缺失緩沖器中,同時(shí)這 些高速緩存訪問(wèn)缺失指令都將被從流水線上剔除,以保證流水線的通 暢。
所述的采用獨(dú)立的片外更新緩沖器緩存片外存儲(chǔ)器的寫操作,實(shí) 現(xiàn)片外存儲(chǔ)器寫操作的快速退休,消除因總線延時(shí)產(chǎn)生的流水線阻塞 如圖2所示,片外更新緩沖器由多個(gè)表項(xiàng)組成,專門用于緩存對(duì)片外 存儲(chǔ)器的寫操作指令。由于片外更新緩沖器將流水線和數(shù)據(jù)總線隔離, 避免了因數(shù)據(jù)總線的延時(shí)而造成的流水線阻塞。當(dāng)對(duì)片外存儲(chǔ)器的寫 操作指令存儲(chǔ)到片外更新緩沖器后,該指令會(huì)快速退休。而片外更新 緩沖器則負(fù)責(zé)通過(guò)數(shù)據(jù)總線將數(shù)據(jù)寫出到片外內(nèi)存中。
所述的采用獨(dú)立的片上更新緩沖器緩存片上高速緩存更新操作, 實(shí)現(xiàn)高速緩存寫操作的快速退休如圖2所示,獨(dú)立的片上更新緩沖 器,是由多個(gè)表項(xiàng)組成,專門用于緩存對(duì)片上高速緩存的寫操作指令。將片上高速緩存的寫操作指令存儲(chǔ)到片上更新緩沖器后,該指令會(huì)快 速退休。同時(shí)片上高速緩存更新緩沖器負(fù)責(zé)將需要更新的數(shù)據(jù)寫入到 片上高速緩存中。
所述的片上更新緩沖器的更新請(qǐng)求,僅在數(shù)據(jù)讀寫指令訪問(wèn)片上 高速緩存的間隙更新片上高速緩存,解決由于訪問(wèn)片上高速緩存的資 源沖突所造成的流水線阻塞片上更新緩沖器是負(fù)責(zé)更新片上高速緩 存數(shù)據(jù)的模塊,它的更新請(qǐng)求被設(shè)計(jì)成各種訪問(wèn)片上高速緩存的請(qǐng)求 中優(yōu)先級(jí)最低的請(qǐng)求。只有在其他訪問(wèn)片上高速緩存的請(qǐng)求出現(xiàn)訪問(wèn) 間隙時(shí),片上更新緩沖器才能獲得更新片上高速緩存的機(jī)會(huì),這樣就 解除了由于多個(gè)模塊競(jìng)爭(zhēng)訪問(wèn)片上高速緩存,出現(xiàn)的資源沖突所造成 的流水線阻塞。
權(quán)利要求
1、一種嵌入式處理器的加載/存儲(chǔ)單元,在所述加載/存儲(chǔ)單元中,采用全流水線方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存進(jìn)行訪問(wèn),其特征在于如果前序指令發(fā)生訪問(wèn)缺失時(shí),將引起訪問(wèn)缺失的指令保存到專用訪問(wèn)缺失緩沖器中,并釋放流水線資源,后續(xù)指令繼續(xù)訪問(wèn)高速緩存。
2、 如權(quán)利要求l所述的嵌入式處理器的加載/存儲(chǔ)單元,其特征在于 設(shè)置獨(dú)立的片外更新緩沖器緩存片外存儲(chǔ)器的寫操作,將片外存儲(chǔ)器 寫操作的快速退休。
3、 如權(quán)利要求1所述的嵌入式處理器的加載/存儲(chǔ)單元,其特征在于 設(shè)置獨(dú)立的片上更新緩沖器緩存片上高速緩存更新操作,將高速緩存 寫操作的快速退休。
4、 如權(quán)利要求2所述的嵌入式處理器的加載/存儲(chǔ)單元,其特征在于 設(shè)置獨(dú)立的片上更新緩沖器緩存片上高速緩存更新操作,將高速緩存 寫操作的快速退休。
5、 如權(quán)利要求l一4之一所述的嵌入式處理器的加載/存儲(chǔ)單元,其特 征在于所述的片上更新緩沖器的更新請(qǐng)求,在高速緩存空閑的間隙 進(jìn)行更新片上高速緩存操作。
6、 如權(quán)利要求l一4之一所述的嵌入式處理器的加載/存儲(chǔ)單元,其特 征在于將片上更新緩沖器的更新請(qǐng)求設(shè)置為優(yōu)先級(jí)最低的請(qǐng)求,當(dāng) 其他訪問(wèn)片上高速緩存的模塊出現(xiàn)訪問(wèn)間隙時(shí),片上更新緩沖器獲得 更新片上高速緩存的權(quán)限。
7、 如權(quán)利要求l一4之一所述的嵌入式處理器的加載/存儲(chǔ)單元,其特 征在于所述的專用訪問(wèn)缺失緩沖器支持存儲(chǔ)多條高速緩存訪問(wèn)指令的缺失請(qǐng)求,同時(shí)將造成高速緩存訪問(wèn)缺失的指令從流水線上剔除。
8、 如權(quán)利要求l一4之一所述的嵌入式處理器的加載/存儲(chǔ)單元,其特 征在于全流水方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存的訪問(wèn)的過(guò)程為 通過(guò)將讀寫指令訪問(wèn)片上高速緩存劃分為若干個(gè)步驟,當(dāng)前序指令在 執(zhí)行的時(shí)候,立刻啟動(dòng)后序指令的操作步驟。
9、 如權(quán)利要求7所述的嵌入式處理器的加載/存儲(chǔ)單元,其特征在于 執(zhí)行讀取高速緩存數(shù)據(jù)的指令,需要經(jīng)過(guò)數(shù)據(jù)存儲(chǔ)地址計(jì)算階段、高 速緩存訪問(wèn)階段和讀取數(shù)據(jù)處理階段,每一條讀指令經(jīng)過(guò)流水線的三 拍完成數(shù)據(jù)的讀取工作并返回所讀取到的正確數(shù)據(jù);執(zhí)行高速緩存寫 入操作的指令,經(jīng)過(guò)數(shù)據(jù)存儲(chǔ)地址計(jì)算階段和高速緩存訪問(wèn)階段。
10、 如權(quán)利要求7所述的嵌入式處理器的加載/存儲(chǔ)單元,其特征在于 全流水方式實(shí)現(xiàn)讀寫指令對(duì)片上高速緩存的訪問(wèn)的過(guò)程為通過(guò)將讀 寫指令訪問(wèn)片上高速緩存劃分為若干個(gè)步驟,當(dāng)前序指令在執(zhí)行的時(shí) 候,立刻啟動(dòng)后序指令的操作步驟。
全文摘要
一種嵌入式處理器的加載/存儲(chǔ)單元,在所述加載/存儲(chǔ)單元中,采用全流水線方式讀寫指令對(duì)片上高速緩存進(jìn)行訪問(wèn),如果前序指令發(fā)生訪問(wèn)缺失時(shí),將引起訪問(wèn)缺失的指令保存到專用訪問(wèn)缺失緩沖器中,并釋放流水線資源,后續(xù)指令繼續(xù)訪問(wèn)高速緩存;設(shè)置獨(dú)立的片外更新緩沖器緩存片外存儲(chǔ)器的寫操作,將片外存儲(chǔ)器寫操作的快速退休;設(shè)置獨(dú)立的片上更新緩沖器緩存片上高速緩存更新操作,將高速緩存寫操作的快速退休。本發(fā)明在發(fā)生高速緩存訪問(wèn)缺失時(shí),不會(huì)阻塞流水線,提升了處理器性能。
文檔編號(hào)G06F9/38GK101526896SQ20091009578
公開(kāi)日2009年9月9日 申請(qǐng)日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者丁永林, 嚴(yán)曉浪, 孟建熠, 葛海通 申請(qǐng)人:杭州中天微系統(tǒng)有限公司