專利名稱:快速執(zhí)行加載存儲(chǔ)指令模塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式處理器領(lǐng)域,尤其是嵌入式處理器的快速執(zhí)行加載存儲(chǔ)指令模塊。
背景技術(shù):
近年來(lái)隨著高性能嵌入式處理器的發(fā)展,大量原來(lái)需要在硬件加速器協(xié)助下才能完成的任務(wù),現(xiàn)在已經(jīng)完全可以由嵌入式處理器獨(dú)立完成了 。這大大推動(dòng)了嵌入式處理器的廣發(fā)應(yīng)用,同時(shí)也極大的縮短了電子產(chǎn)品的設(shè)計(jì)周期和也降低了電子產(chǎn)品的維護(hù)成本。
各大處理器廠商通常都會(huì)通過(guò)提高處理器內(nèi)部各個(gè)執(zhí)行單元的效率和利用率(如多指令發(fā)射、亂序執(zhí)行等方式),來(lái)提升嵌入式處理器的整體性能。同時(shí)也會(huì)通過(guò)引入大量浮點(diǎn)指令,數(shù)字信號(hào)處理指令(DSP指令)來(lái)實(shí)現(xiàn)原來(lái)需要額外的硬件加速器才能完成的任務(wù)。 參照?qǐng)D1所示,典型的嵌入式處理器架構(gòu)包括指令取值單元,指令發(fā)射單元,指令
執(zhí)行單元(包括邏輯指令處理單元,協(xié)處理器指令處理單元,數(shù)字信號(hào)指令處理單元,加載
存儲(chǔ)指令處理單元等)。通過(guò)指令取值單元從片外內(nèi)存(或從片內(nèi)高速緩存)取指令后,通
過(guò)指令發(fā)射單元的合理調(diào)度,將指令發(fā)射到各個(gè)執(zhí)行單元中執(zhí)行。嵌入式處理器的設(shè)計(jì)者
針對(duì)特定的應(yīng)用,增加協(xié)處理器的加速指令,使得原來(lái)需要額外硬件加速器才能完成的任
務(wù),直接通過(guò)軟件就可以實(shí)現(xiàn)了。但是無(wú)論指令執(zhí)行單元設(shè)計(jì)的如何巧妙,處理器和片外內(nèi)
存的交互都是無(wú)法避免的,而在類似于多媒體應(yīng)用的環(huán)境中,大量的內(nèi)存搬移是不可避免
的。通常加載存儲(chǔ)指令出現(xiàn)數(shù)據(jù)相關(guān)性時(shí),加載儲(chǔ)存指令處理單元就會(huì)發(fā)生堵塞,進(jìn)而影響
指令發(fā)射單元,此時(shí)無(wú)論指令處理單元的性能如何強(qiáng)大,都將無(wú)法發(fā)揮優(yōu)勢(shì); 所述的"數(shù)據(jù)相關(guān)性"是指當(dāng)同時(shí)滿足當(dāng)前指令為存儲(chǔ)指令和當(dāng)前指令所需存儲(chǔ)
的數(shù)據(jù)來(lái)源于前續(xù)未執(zhí)行完成的加載指令時(shí),認(rèn)為存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性。 圖2在傳統(tǒng)的嵌入式處理器架構(gòu)上進(jìn)行了改進(jìn)。對(duì)各個(gè)執(zhí)行單元增加了保留棧,鑒于邏輯指令單元、協(xié)處理器指令處理單元和數(shù)字信號(hào)處理指令執(zhí)行周期短,在保留棧未被填滿前,相關(guān)性基本都能解除,所以保留棧技術(shù)對(duì)于邏輯指令單元、協(xié)處理器指令處理單元和數(shù)字信號(hào)處理指令來(lái)說(shuō)已經(jīng)足夠了 ;而由于加載存儲(chǔ)指令需要和片外內(nèi)存進(jìn)行交互,當(dāng)加載存儲(chǔ)指令出現(xiàn)數(shù)據(jù)相關(guān)性時(shí),加載儲(chǔ)存指令處理單元會(huì)發(fā)生堵塞,雖然加載存儲(chǔ)指令處理單元的保留棧仍然可以接收幾條后續(xù)的加載存儲(chǔ)指令,但是在需要大量?jī)?nèi)存搬移的指令流中,加載存儲(chǔ)指令處理單元會(huì)在保留棧被迅速填滿后發(fā)生停頓,進(jìn)而堵塞發(fā)射單元,最終造成整個(gè)處理器流水線的停頓。
發(fā)明內(nèi)容
為了克服已有的嵌入式處理器的加載存儲(chǔ)指令處理單元的當(dāng)出現(xiàn)數(shù)據(jù)相關(guān)性時(shí)造成流水線阻塞、限制嵌入式處理器的性能的不足,本發(fā)明提供一種當(dāng)出現(xiàn)數(shù)據(jù)相關(guān)性時(shí)
3能夠避免流水線阻塞、提升嵌入式處理器的性能的快速執(zhí)行加載存儲(chǔ)指令模塊。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是 —種快速執(zhí)行加載存儲(chǔ)指令模塊,該模塊執(zhí)行加載指令和存儲(chǔ)指令,所述快速執(zhí) 行加載存儲(chǔ)指令模塊包括 相關(guān)性識(shí)別單元,用以當(dāng)同時(shí)滿足當(dāng)前指令為存儲(chǔ)指令和當(dāng)前指令所需存儲(chǔ)的數(shù) 據(jù)來(lái)源于前續(xù)未執(zhí)行完成的加載指令時(shí),判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性;
指令地址生成單元,用以根據(jù)輸入的加載/存儲(chǔ)指令流,計(jì)算當(dāng)前加載/存儲(chǔ)指令 所需要訪問(wèn)片上高速緩存和片外內(nèi)存的地址; 指令緩沖單元,由指令緩沖單元表項(xiàng)組成,用以臨時(shí)緩來(lái)源于相關(guān)性識(shí)別單元和 指令地址生成單元輸出的與執(zhí)行存儲(chǔ)指令相關(guān)的所有信息,同時(shí)旁路來(lái)自于前序加載指令 完成時(shí)返回的數(shù)據(jù)。 作為優(yōu)選的一種方案所述快速執(zhí)行加載存儲(chǔ)指令模塊采用兩級(jí)流水線布置,所 述相關(guān)性識(shí)別單元和指令地址生成單元位于第一級(jí)流水線,所述指令緩沖單元位于第二級(jí) 流水線。當(dāng)然,也可以將相關(guān)性識(shí)別單元、指令地址生成單元和指令緩沖單元設(shè)置在同一級(jí) 別的流水線上,只是處理的速度相對(duì)會(huì)變慢。 進(jìn)一步,所述相關(guān)性識(shí)別單元,無(wú)論判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)
性結(jié)果如何,后續(xù)加載存儲(chǔ)指令均可以繼續(xù)正常執(zhí)行,不會(huì)發(fā)生停頓。 所述指令緩沖單元由至少兩個(gè)指令緩沖單元表項(xiàng)組成。 再進(jìn)一步,所述指令緩沖單元表項(xiàng)包括指令標(biāo)簽比較器,用以當(dāng)存儲(chǔ)指令所需要 存儲(chǔ)的數(shù)據(jù)相關(guān)與前序加載指令時(shí),監(jiān)視與存儲(chǔ)指令有相關(guān)性的前續(xù)加載指令是否完成;
當(dāng)指令標(biāo)簽比較器檢測(cè)到前續(xù)加載指令完成時(shí),存儲(chǔ)指令緩沖器表項(xiàng)立即旁路數(shù) 據(jù)通路上前續(xù)加載指令返回的數(shù)據(jù)。 更進(jìn)一步,所述指令緩沖單元表項(xiàng)包括至少兩個(gè)指令標(biāo)簽比較器。指令標(biāo)簽比較 器的個(gè)數(shù),與執(zhí)行加載存儲(chǔ)指令模塊一個(gè)時(shí)鐘周期內(nèi)最多可以完成裝載指令的條數(shù)相等。 對(duì)于一個(gè)時(shí)鐘周期只能完成一條裝載指令的執(zhí)行加載存儲(chǔ)指令模塊,指令緩沖單元表項(xiàng)只 包含一個(gè)指令標(biāo)簽比較器。 所述的所有信息包括存儲(chǔ)指令的地址、存儲(chǔ)的數(shù)據(jù)以及存儲(chǔ)指令的數(shù)據(jù)相關(guān)性。 本發(fā)明的技術(shù)構(gòu)思為當(dāng)加載存儲(chǔ)指令流進(jìn)入執(zhí)行加載存儲(chǔ)指令模塊后,相關(guān)性
識(shí)別單元完成對(duì)存儲(chǔ)指令與前續(xù)加載指令相關(guān)性的識(shí)別;指令地址生成單元完成對(duì)加載存
儲(chǔ)指令所需訪問(wèn)的片上高速緩存和片外內(nèi)存地址的計(jì)算。指令緩沖單元同時(shí)連接相關(guān)性識(shí)
別單元和指令地址生成單元,由多個(gè)表項(xiàng)組成;每個(gè)表項(xiàng)用于臨時(shí)緩存來(lái)自于相關(guān)性識(shí)別
單元和指令地址生成單元的輸出信息,同時(shí)旁路來(lái)自于前續(xù)加載指令完成時(shí)返回的數(shù)據(jù)。 本發(fā)明提供一種在加載存儲(chǔ)指令出現(xiàn)相關(guān)性時(shí),不阻礙后續(xù)加載存儲(chǔ)指令的執(zhí)
行,并且在相關(guān)性解除時(shí),快速旁路有相關(guān)性數(shù)據(jù)的快速執(zhí)行加載存儲(chǔ)指令模塊。 本發(fā)明的有益效果主要表現(xiàn)在當(dāng)出現(xiàn)數(shù)據(jù)相關(guān)性時(shí)能夠避免流水線阻塞、提升
嵌入式處理器的性能。
圖1為現(xiàn)有的典型的嵌入式處理器架構(gòu)示意圖。
圖2為現(xiàn)有的改進(jìn)型的嵌入式處理器架構(gòu)的局部示意圖。
圖3為本發(fā)明的快速執(zhí)行加載存儲(chǔ)指令模塊結(jié)構(gòu)圖。
圖4為相關(guān)性識(shí)別單元結(jié)構(gòu)圖。
圖5為指令緩沖單元表項(xiàng)結(jié)構(gòu)圖。 圖6為指令緩沖單元表項(xiàng)旁路前續(xù)裝載指令返回?cái)?shù)據(jù)的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。 參照?qǐng)D3 圖6, 一種快速執(zhí)行加載存儲(chǔ)指令模塊,該模塊執(zhí)行加載指令和存儲(chǔ)指 令,所述快速執(zhí)行加載存儲(chǔ)指令模塊包括 相關(guān)性識(shí)別單元,用以當(dāng)同時(shí)滿足當(dāng)前指令為存儲(chǔ)指令和當(dāng)前指令所需存儲(chǔ)的數(shù) 據(jù)來(lái)源于前續(xù)未執(zhí)行完成的加載指令時(shí),判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性;
指令地址生成單元,用以根據(jù)輸入的加載/存儲(chǔ)指令流,計(jì)算當(dāng)前加載/存儲(chǔ)指令 所需要訪問(wèn)片上高速緩存和片外內(nèi)存的地址; 指令緩沖單元,由指令緩沖單元表項(xiàng)組成,用以臨時(shí)緩來(lái)源于相關(guān)性識(shí)別單元和 指令地址生成單元輸出的與執(zhí)行存儲(chǔ)指令相關(guān)的所有信息,同時(shí)旁路來(lái)自于前序加載指令 完成時(shí)返回的數(shù)據(jù)。 所述快速執(zhí)行加載存儲(chǔ)指令模塊采用兩級(jí)流水線布置,所述相關(guān)性識(shí)別單元和指 令地址生成單元位于第一級(jí)流水線,所述指令緩沖單元位于第二級(jí)流水線。當(dāng)然,也可以將 相關(guān)性識(shí)別單元、指令地址生成單元和指令緩沖單元設(shè)置在同一級(jí)別的流水線上,只是處 理的速度相對(duì)會(huì)變慢。 本實(shí)施例以兩級(jí)流水線為例進(jìn)行說(shuō)明,參考圖3,執(zhí)行加載存儲(chǔ)指令模塊采用兩級(jí) 流水線的形式實(shí)現(xiàn)。相關(guān)性識(shí)別單元和指令地址生成單元處于流水線的第一級(jí),而指令緩 沖單元處于流水線的第二級(jí)。在流水線的第一級(jí),相關(guān)性識(shí)別單元完成對(duì)存儲(chǔ)指令與前續(xù) 加載指令相關(guān)性的識(shí)別,無(wú)論識(shí)別結(jié)果如何,都不停頓流水線;指令地址生成單元完成對(duì)加 載存儲(chǔ)指令所需要訪問(wèn)的片上高速緩存和片外內(nèi)存地址的計(jì)算。指令緩沖單元位于流水線 的第二級(jí),由多個(gè)表項(xiàng)組成;每個(gè)表項(xiàng)用于臨時(shí)緩存來(lái)自于流水線第一級(jí)的一條存儲(chǔ)指令 的輸出信息,同時(shí)旁路來(lái)自于前續(xù)加載指令完成時(shí)返回的數(shù)據(jù)。 參考圖4,相關(guān)性識(shí)別單元,在流水線的第一級(jí)實(shí)現(xiàn)識(shí)別存儲(chǔ)指令與前續(xù)加載指令
是否存在數(shù)據(jù)相關(guān)性。整個(gè)識(shí)別過(guò)程分為兩個(gè)檢測(cè)條件并行執(zhí)行。 一個(gè)檢測(cè)條件是檢測(cè)
當(dāng)前指令是否為存儲(chǔ)指令;另一個(gè)檢測(cè)條件是檢測(cè)所要存儲(chǔ)的數(shù)據(jù)是否相關(guān)于前續(xù)加載指
令。無(wú)論當(dāng)前存儲(chǔ)指令是否與前續(xù)加載指令有相關(guān)性,都不會(huì)停頓流水線。 指令地址生成單元,處于流水線的第一級(jí),計(jì)算當(dāng)前加載存儲(chǔ)指令所需要訪問(wèn)片
上高速緩存的地址和訪問(wèn)片外內(nèi)存的地址,并將計(jì)算結(jié)果輸出。 指令緩沖單元處于流水線的第二級(jí),由多個(gè)指令緩沖單元表項(xiàng)組成,用以臨時(shí)緩 存來(lái)源于流水線第一級(jí)由相關(guān)性識(shí)別單元和指令地址生成單元輸出的與執(zhí)行存儲(chǔ)指令相 關(guān)的所有信息,包括存儲(chǔ)指令的地址,存儲(chǔ)的數(shù)據(jù),以及存儲(chǔ)指令數(shù)據(jù)相關(guān)性等信息。
參考圖5,每一個(gè)存儲(chǔ)指令緩沖器表項(xiàng)緩存一條存儲(chǔ)指令的執(zhí)行信息。存儲(chǔ)指令的 執(zhí)行信息包括三個(gè)部分,第一部分是存儲(chǔ)指令執(zhí)行時(shí),需要存儲(chǔ)的數(shù)據(jù);第二部分是由數(shù)據(jù)
5相關(guān)性識(shí)別器輸出的信息,包括存儲(chǔ)指令所需要存儲(chǔ)的數(shù)據(jù)是否相關(guān)于前續(xù)加載指令的標(biāo)
識(shí)位,以及與存儲(chǔ)的數(shù)據(jù)有相關(guān)性的前續(xù)加載指令的標(biāo)簽;第三部分是加載存儲(chǔ)指令地址
生成器生成的存儲(chǔ)指令所需要訪問(wèn)片上高速緩存的地址和訪問(wèn)片外內(nèi)存的地址。 指令緩沖單元表項(xiàng)采用流水線的形式,臨時(shí)緩存來(lái)自于流水線前級(jí)的信息,當(dāng)相
關(guān)性標(biāo)識(shí)位為假時(shí),將來(lái)源于前級(jí)流水線的存儲(chǔ)數(shù)據(jù)緩存到對(duì)應(yīng)的指令緩沖單元表項(xiàng)中,
并標(biāo)識(shí)此表項(xiàng)為存儲(chǔ)指令準(zhǔn)備就緒的表項(xiàng)。 參考圖6,指令緩沖器表項(xiàng)包括一個(gè)指令標(biāo)簽比較器。當(dāng)存儲(chǔ)指令所需要存儲(chǔ)的數(shù) 據(jù)相關(guān)于前續(xù)加載指令,通過(guò)指令標(biāo)簽比較器,監(jiān)視與存儲(chǔ)指令有相關(guān)性的前續(xù)加載指令 是否完成,當(dāng)前續(xù)加載指令完成時(shí),存儲(chǔ)指令緩沖器表項(xiàng)立即旁路數(shù)據(jù)通路上前續(xù)加載指 令返回的數(shù)據(jù),將此數(shù)據(jù)寫入到存儲(chǔ)指令緩沖器表項(xiàng)中,并標(biāo)識(shí)此表項(xiàng)為存儲(chǔ)指令準(zhǔn)備就 緒的表項(xiàng)。
權(quán)利要求
一種快速執(zhí)行加載存儲(chǔ)指令模塊,該模塊執(zhí)行加載指令和存儲(chǔ)指令,其特征在于所述快速執(zhí)行加載存儲(chǔ)指令模塊包括相關(guān)性識(shí)別單元,用以當(dāng)同時(shí)滿足當(dāng)前指令為存儲(chǔ)指令和當(dāng)前指令所需存儲(chǔ)的數(shù)據(jù)來(lái)源于前續(xù)未執(zhí)行完成的加載指令時(shí),判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性;指令地址生成單元,用以根據(jù)輸入的加載/存儲(chǔ)指令流,計(jì)算當(dāng)前加載/存儲(chǔ)指令所需要訪問(wèn)片上高速緩存和片外內(nèi)存的地址;指令緩沖單元,由指令緩沖單元表項(xiàng)組成,用以臨時(shí)緩來(lái)源于相關(guān)性識(shí)別單元和指令地址生成單元輸出的與執(zhí)行存儲(chǔ)指令相關(guān)的所有信息,同時(shí)旁路來(lái)自于前序加載指令完成時(shí)返回的數(shù)據(jù)。
2. 如權(quán)利要求1所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述快速執(zhí)行加載 存儲(chǔ)指令模塊采用兩級(jí)流水線布置,所述相關(guān)性識(shí)別單元和指令地址生成單元位于第一級(jí) 流水線,所述指令緩沖單元位于第二級(jí)流水線。
3. 如權(quán)利要求1所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述相關(guān)性識(shí)別單 元中,無(wú)論判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性結(jié)果如何,后續(xù)加載存儲(chǔ)指令均 繼續(xù)正常執(zhí)行。
4. 如權(quán)利要求2所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述相關(guān)性識(shí)別單 元中,無(wú)論判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性結(jié)果如何,后續(xù)加載存儲(chǔ)指令均 繼續(xù)正常執(zhí)行。
5. 如權(quán)利要求l-4之一所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述指令緩 沖單元由至少兩個(gè)指令緩沖單元表項(xiàng)組成。
6. 如權(quán)利要求l-4之一所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述指令緩 沖單元表項(xiàng)包括指令標(biāo)簽比較器,用以當(dāng)存儲(chǔ)指令所需要存儲(chǔ)的數(shù)據(jù)相關(guān)與前序加載指令 時(shí),監(jiān)視與存儲(chǔ)指令有相關(guān)性的前續(xù)加載指令是否完成;當(dāng)指令標(biāo)簽比較器檢測(cè)到前續(xù)加載指令完成時(shí),存儲(chǔ)指令緩沖器表項(xiàng)立即旁路數(shù)據(jù)通 路上前續(xù)加載指令返回的數(shù)據(jù)。
7. 如權(quán)利要求5所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述指令緩沖單元 表項(xiàng)包括指令標(biāo)簽比較器,用以當(dāng)存儲(chǔ)指令所需要存儲(chǔ)的數(shù)據(jù)相關(guān)與前序加載指令時(shí),監(jiān) 視與存儲(chǔ)指令有相關(guān)性的前續(xù)加載指令是否完成;當(dāng)指令標(biāo)簽比較器檢測(cè)到前續(xù)加載指令完成時(shí),存儲(chǔ)指令緩沖器表項(xiàng)立即旁路數(shù)據(jù)通 路上前續(xù)加載指令返回的數(shù)據(jù)。
8. 如權(quán)利要求7所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述指令緩沖單元 表項(xiàng)包括至少兩個(gè)指令標(biāo)簽比較器。
9. 如權(quán)利要求l-4之一所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述的所有 信息包括存儲(chǔ)指令的地址、存儲(chǔ)的數(shù)據(jù)以及存儲(chǔ)指令的數(shù)據(jù)相關(guān)性。
10. 如權(quán)利要求8所述的快速執(zhí)行加載存儲(chǔ)指令模塊,其特征在于所述的所有信息包 括存儲(chǔ)指令的地址、存儲(chǔ)的數(shù)據(jù)以及存儲(chǔ)指令的數(shù)據(jù)相關(guān)性。
全文摘要
一種快速執(zhí)行加載存儲(chǔ)指令模塊,該模塊包括相關(guān)性識(shí)別單元,用以當(dāng)同時(shí)滿足當(dāng)前指令為存儲(chǔ)指令和當(dāng)前指令所需存儲(chǔ)的數(shù)據(jù)來(lái)源于前續(xù)未執(zhí)行完成的加載指令時(shí),判定存儲(chǔ)指令與前續(xù)加載指令存在數(shù)據(jù)相關(guān)性;指令地址生成單元,用以根據(jù)輸入的加載/存儲(chǔ)指令流,計(jì)算當(dāng)前加載/存儲(chǔ)指令所需要訪問(wèn)片上高速緩存和片外內(nèi)存的地址;指令緩沖單元,由指令緩沖單元表項(xiàng)組成,用以臨時(shí)緩來(lái)源于相關(guān)性識(shí)別單元和指令地址生成單元輸出的與執(zhí)行存儲(chǔ)指令相關(guān)的所有信息,同時(shí)旁路來(lái)自于前序加載指令完成時(shí)返回的數(shù)據(jù)。本發(fā)明當(dāng)出現(xiàn)數(shù)據(jù)相關(guān)性時(shí)能夠避免流水線阻塞、提升嵌入式處理器的性能。
文檔編號(hào)G06F9/312GK101719055SQ20091015514
公開日2010年6月2日 申請(qǐng)日期2009年12月3日 優(yōu)先權(quán)日2009年12月3日
發(fā)明者丁永林, 孟建熠, 楊軍, 葛海通 申請(qǐng)人:杭州中天微系統(tǒng)有限公司