多個(gè)塊一致性操作的并行處理的制作方法
【專(zhuān)利摘要】本發(fā)明涉及一種通過(guò)使多CPU環(huán)境中的多個(gè)重疊塊無(wú)效操作與正常CPU存取重疊因此使所述塊無(wú)效操作的延遲透明來(lái)消除所述延遲的方法。執(zhí)行所述塊無(wú)效操作的高速緩存控制器將多個(gè)重疊請(qǐng)求合并到并行流中以消除執(zhí)行延遲。還可將除塊無(wú)效之外的例如塊回寫(xiě)或塊回寫(xiě)無(wú)效的高速緩存操作合并到執(zhí)行流中。
【專(zhuān)利說(shuō)明】多個(gè)塊一致性操作的并行處理
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的【技術(shù)領(lǐng)域】為用于數(shù)字?jǐn)?shù)據(jù)處理器的高速緩沖存儲(chǔ)器。
【背景技術(shù)】
[0002]在層次型高速緩存系統(tǒng)中,可能需要塊無(wú)效操作以使高速緩存在存儲(chǔ)器系統(tǒng)中的行塊無(wú)效。在塊一致性操作中,用戶編程基址以及需要從高速緩沖存儲(chǔ)器移除的字的數(shù)目。高速緩存控制器接著迭代通過(guò)整個(gè)高速緩沖存儲(chǔ)器,且如果控制器發(fā)現(xiàn)在既定地址范圍內(nèi)的地址,那么所述控制器將把那個(gè)特定集合及方式標(biāo)記為無(wú)效。通常需要塊無(wú)效操作來(lái)保持多處理器系統(tǒng)內(nèi)的數(shù)據(jù)一致性。
[0003]圖6中圖解說(shuō)明一實(shí)例。在多核心環(huán)境中,CPU1601正更新在地址范圍A內(nèi)的數(shù)據(jù)。在CPUl完成后,另一 CPU可開(kāi)始進(jìn)程603且更新相同地址范圍內(nèi)的數(shù)據(jù)。如果在此時(shí)間期間CPUl需要存取此地址范圍內(nèi)的數(shù)據(jù),那么其將需要從另一 CPU獲得數(shù)據(jù)的經(jīng)更新副本,然而,所需數(shù)據(jù)中的一些數(shù)據(jù)仍可高速緩存在CPUl中-因此CPUl將獲得舊數(shù)據(jù),除非將在相同地址范圍A內(nèi)對(duì)CPUl的高速緩沖存儲(chǔ)器執(zhí)行塊無(wú)效602操作。接著,此將確保CPUl請(qǐng)求將導(dǎo)致高速緩存未命中,且將從主存儲(chǔ)器供應(yīng)正確數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明中所描述的方法通過(guò)在塊無(wú)效操作在進(jìn)行中時(shí)對(duì)每一嘗試的CPU存取進(jìn)行范圍檢查來(lái)消除圖6中所展示的塊無(wú)效操作中固有的延遲。如果CPU存取導(dǎo)致高速緩存命中,但高速緩存地址屬于所述塊無(wú)效操作范圍內(nèi),那么將把所述存取視為高速緩存未命中,從而確保將從主存儲(chǔ)器存取正確數(shù)據(jù)而無(wú)需等待直到塊無(wú)效操作完成。
[0005]如果請(qǐng)求多個(gè)重疊塊無(wú)效操作,那么還可并行地執(zhí)行所述操作以便消除串行執(zhí)行中固有的等待時(shí)間。還可將同時(shí)塊無(wú)效(BI)、塊回寫(xiě)(BW)及塊回寫(xiě)與無(wú)效(BWI)請(qǐng)求合并到并行執(zhí)行流中。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0006]圖式中圖解說(shuō)明本發(fā)明的這些及其它方面,其中:
[0007]圖1圖解說(shuō)明本發(fā)明可適用的典型數(shù)字信號(hào)處理器的組織(現(xiàn)有技術(shù));
[0008]圖2圖解說(shuō)明適合于在圖1中使用的極長(zhǎng)指令字?jǐn)?shù)字信號(hào)處理器核心的細(xì)節(jié)(現(xiàn)有技術(shù));
[0009]圖3圖解說(shuō)明圖2中所圖解說(shuō)明的極長(zhǎng)指令字?jǐn)?shù)字信號(hào)處理器核心的管線級(jí)(現(xiàn)有技術(shù));
[0010]圖4圖解說(shuō)明圖2中所圖解說(shuō)明的極長(zhǎng)指令字?jǐn)?shù)字信號(hào)處理器核心的指令語(yǔ)法(現(xiàn)有技術(shù));
[0011]圖5圖解說(shuō)明一組典型現(xiàn)有技術(shù)高速緩存行的細(xì)節(jié)(現(xiàn)有技術(shù));
[0012]圖6圖解說(shuō)明以串行方式進(jìn)行的塊一致性操作;[0013]圖7圖解說(shuō)明以并行方式進(jìn)行的塊一致性操作;
[0014]圖8圖解說(shuō)明進(jìn)行中的高速緩存無(wú)效操作。
【具體實(shí)施方式】
[0015]圖1圖解說(shuō)明本發(fā)明可適用的典型數(shù)字信號(hào)處理器系統(tǒng)100的組織(現(xiàn)有技術(shù))。數(shù)字信號(hào)處理器系統(tǒng)100包含中央處理單元核心110。中央處理單元核心110包含數(shù)字信號(hào)處理器系統(tǒng)100的數(shù)字處理部分。中央處理單元核心110可如此項(xiàng)技術(shù)中已知的那樣構(gòu)造且通常將包含寄存器堆、整數(shù)算術(shù)邏輯單元、整數(shù)乘法器及程序流控制單元。下文結(jié)合圖2到4描述適當(dāng)中央處理單元核心的實(shí)例。
[0016]數(shù)字信號(hào)處理器系統(tǒng)100包含若干個(gè)高速緩沖存儲(chǔ)器。圖1圖解說(shuō)明一對(duì)第一層級(jí)高速緩沖存儲(chǔ)器。層級(jí)I指令高速緩沖存儲(chǔ)器(LlI) 121存儲(chǔ)由中央處理單元核心110使用的指令。中央處理單元核心110首先嘗試從層級(jí)I指令高速緩沖存儲(chǔ)器121存取任何指令。層級(jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器(LlD) 123存儲(chǔ)由中央處理單元核心110使用的數(shù)據(jù)。中央處理單元核心110首先嘗試從層級(jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器123存取任何所需數(shù)據(jù)。兩個(gè)層級(jí)I高速緩沖存儲(chǔ)器由層級(jí)2統(tǒng)一高速緩沖存儲(chǔ)器(L2) 130支持。在對(duì)層級(jí)I指令高速緩沖存儲(chǔ)器121或?qū)蛹?jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器123的高速緩存未命中的情況中,可從層級(jí)2統(tǒng)一高速緩沖存儲(chǔ)器130尋找所請(qǐng)求的指令或數(shù)據(jù)。如果所請(qǐng)求的指令或數(shù)據(jù)存儲(chǔ)于層級(jí)2統(tǒng)一高速緩沖存儲(chǔ)器130中,那么將其供應(yīng)到發(fā)請(qǐng)求的層級(jí)I高速緩沖存儲(chǔ)器用于供應(yīng)到中央處理單元核心110。如此項(xiàng)技術(shù)中已知,可同時(shí)將所請(qǐng)求的指令或數(shù)據(jù)供應(yīng)到發(fā)請(qǐng)求的高速緩沖存儲(chǔ)器及中央處理單元核心110兩者以加快使用速度。
[0017]層級(jí)2統(tǒng)一高速緩沖存儲(chǔ)器130進(jìn)一步耦合到更高級(jí)存儲(chǔ)器系統(tǒng)。數(shù)字信號(hào)處理器系統(tǒng)100可為多處理器系統(tǒng)的一部分。多處理器系統(tǒng)的其它處理器經(jīng)由傳送請(qǐng)求總線141及數(shù)據(jù)傳送總線143耦合到層級(jí)2統(tǒng)一高速緩沖存儲(chǔ)器130。直接存儲(chǔ)器存取單元150提供數(shù)字信號(hào)處理器系統(tǒng)100到外部存儲(chǔ)器161及外部外圍設(shè)備169的連接。
[0018]圖1圖解說(shuō)明數(shù)字信號(hào)處理器系統(tǒng)100內(nèi)的數(shù)個(gè)數(shù)據(jù)/指令移動(dòng)。這些移動(dòng)包含:(I)響應(yīng)于LlI高速緩存未命中,指令從L2高速緩沖存儲(chǔ)器130移動(dòng)到LlI高速緩沖存儲(chǔ)器121以進(jìn)行填充;(2)響應(yīng)于LlD高速緩存未命中,數(shù)據(jù)從L2高速緩沖存儲(chǔ)器130移動(dòng)到LlD高速緩沖存儲(chǔ)器123以進(jìn)行填充;(3)響應(yīng)于LlD高速緩沖存儲(chǔ)器123中的寫(xiě)入未命中、響應(yīng)于LlD高速緩沖存儲(chǔ)器123受害逐出(victim eviction)且響應(yīng)于來(lái)自L2高速緩沖存儲(chǔ)器130的窺探,數(shù)據(jù)從LlD高速緩沖存儲(chǔ)器123移動(dòng)到L2高速緩沖存儲(chǔ)器130 ;(4)響應(yīng)于L2高速緩存未命中或直接存儲(chǔ)器存取(DMA)數(shù)據(jù)傳送到L2高速緩沖存儲(chǔ)器130中,數(shù)據(jù)從外部存儲(chǔ)器161移動(dòng)到L2高速緩沖存儲(chǔ)器130以進(jìn)行填充;(5)響應(yīng)于L2高速緩沖存儲(chǔ)器受害逐出或回寫(xiě)且響應(yīng)于DMA傳送出L2高速緩沖存儲(chǔ)器130,數(shù)據(jù)從L2高速緩沖存儲(chǔ)器130移動(dòng)到外部存儲(chǔ)器161 ; (6)響應(yīng)于DMA傳送到L2高速緩沖存儲(chǔ)器130中,數(shù)據(jù)從外圍設(shè)備169移動(dòng)到L2高速緩沖存儲(chǔ)器130 ;及(7)響應(yīng)于DMA傳送出L2高速緩沖存儲(chǔ)器130,數(shù)據(jù)從L2高速緩沖存儲(chǔ)器130移動(dòng)到外圍設(shè)備169。
[0019]圖2為圖解說(shuō)明適合但非必需用于本發(fā)明的數(shù)字信號(hào)處理器集成電路200的細(xì)節(jié)的框圖(現(xiàn)有技術(shù))。數(shù)字信號(hào)處理器集成電路200包含中央處理單元1,其為32位八路VLIW管線化處理器。中央處理單元I耦合到包含在數(shù)字信號(hào)處理器集成電路200中的層級(jí)I指令高速緩沖存儲(chǔ)器121。數(shù)字信號(hào)處理器集成電路200還包含層級(jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器123。數(shù)字信號(hào)處理器集成電路200還包含外圍設(shè)備4到9。這些外圍設(shè)備優(yōu)選地包含外部存儲(chǔ)器接口(EMIF)4及直接存儲(chǔ)器存取(DMA)控制器5。外部存儲(chǔ)器接口(EMIF)4優(yōu)選地支持對(duì)同步及異步SRAM以及同步DRAM的存取。直接存儲(chǔ)器存取(DMA)控制器5優(yōu)選提供2通道自啟動(dòng)加載直接存儲(chǔ)器存取。這些外圍設(shè)備包含斷電邏輯6。斷電邏輯6優(yōu)選地可停止中央處理單元活動(dòng)、外圍設(shè)備活動(dòng)及鎖相環(huán)路(PLL)時(shí)鐘同步活動(dòng)以減少功率消耗。這些外圍設(shè)備還包含主機(jī)端口 7、串行端口 8及可編程計(jì)時(shí)器9。
[0020]中央處理單元I具有32位字節(jié)可尋址地址空間。同一集成電路上的內(nèi)部存儲(chǔ)器優(yōu)選被組織在包含層級(jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器123的數(shù)據(jù)空間及包含層級(jí)I指令高速緩沖存儲(chǔ)器121的程序空間中。當(dāng)使用芯片外存儲(chǔ)器時(shí),優(yōu)選地經(jīng)由外部存儲(chǔ)器接口(EMIF)4來(lái)將這兩個(gè)空間統(tǒng)一為單個(gè)存儲(chǔ)器空間。
[0021]層級(jí)I數(shù)據(jù)高速緩沖存儲(chǔ)器123可由中央處理單元I經(jīng)由兩個(gè)內(nèi)部端口 3a及3b在內(nèi)部存取。每一內(nèi)部端口 3a及3b優(yōu)選地具有32位的數(shù)據(jù)及32位字節(jié)地址范圍(reach)。層級(jí)I指令高速緩沖存儲(chǔ)器121可由中央處理單元I經(jīng)由單個(gè)端口 2a在內(nèi)部存取。層級(jí)I指令高速緩沖存儲(chǔ)器121的端口 2a優(yōu)選地具有256位的指令提取寬度及等效于32位字節(jié)地址的30位字(四個(gè)字節(jié))地址。
[0022]中央處理單元I包含程序提取單元10、指令分派單元11、指令解碼單元12以及兩個(gè)數(shù)據(jù)路徑20及30。第一數(shù)據(jù)路徑20包含四個(gè)功能單元(標(biāo)示為L(zhǎng)I單元22、S1單元
23、Ml單元24及Dl單元25)及形成寄存器堆21的16個(gè)32位A寄存器。第二數(shù)據(jù)路徑30同樣地包含四個(gè)功能單元(標(biāo)示為L(zhǎng)2單元32、S2單元33、M2單元34及D2單元35)及形成寄存器堆31的16個(gè)32位B寄存器。每一數(shù)據(jù)路徑的功能單元針對(duì)其操作數(shù)而存取對(duì)應(yīng)的寄存器堆。每一管線級(jí)存在準(zhǔn)許存取相反寄存器堆中的一個(gè)寄存器的兩個(gè)交叉路徑27及37。中央處理單元I包含控制寄存器13、控制邏輯14以及測(cè)試邏輯15、仿真邏輯16及中斷邏輯17。
[0023]程序提取單元10、指令分派單元11及指令解碼單元12在每個(gè)指令循環(huán)從層級(jí)I指令高速緩沖存儲(chǔ)器121再調(diào)用指令,且將最多八個(gè)32位指令向上遞送到功能單元。處理在兩個(gè)數(shù)據(jù)路徑20及30中的每一者中同時(shí)發(fā)生。如先前所描述,每一數(shù)據(jù)路徑具有四個(gè)對(duì)應(yīng)功能單元(L、S、M及D)及含有16個(gè)32位寄存器的對(duì)應(yīng)寄存器堆。每一功能單元由32位指令控制。下文進(jìn)一步描述所述數(shù)據(jù)路徑。控制寄存器堆13提供用以配置且控制各種處理器操作的手段。
[0024]圖3說(shuō)明數(shù)字信號(hào)處理器核心110的管線級(jí)300 (現(xiàn)有技術(shù))。這些管線級(jí)劃分為三個(gè)群組:提取群組310 ;解碼群組320 ;及執(zhí)行群組330。指令集中的所有指令流經(jīng)管線的提取、解碼及執(zhí)行級(jí)。提取群組310具有用于所有指令的四個(gè)階段,且解碼群組320具有用于所有指令的兩個(gè)階段。執(zhí)行群組330取決于指令的類(lèi)型而需要變化數(shù)目個(gè)階段。
[0025]提取群組310的提取階段為:程序地址產(chǎn)生階段311 (PG);程序地址發(fā)送階段312 (PS);程序存取準(zhǔn)備等待級(jí)313 (PW);及程序提取包接收級(jí)314 (PR)。數(shù)字信號(hào)處理器核心110使用八個(gè)指令的提取包(FP)。所有八個(gè)指令一起前進(jìn)經(jīng)過(guò)提取群組310。在PG階段311期間,在程序提取單元10中產(chǎn)生程序地址。在PS階段312期間,將此程序地址發(fā)送到存儲(chǔ)器。在PW階段313期間,發(fā)生存儲(chǔ)器讀取。最后在PR階段314期間,在CPUl處接收提取包。
[0026]解碼群組320的解碼階段為:指令分派(DP) 321 ;及指令解碼(DC) 322。在DP階段321期間,將提取包分裂為若干執(zhí)行包。執(zhí)行包由經(jīng)譯碼以并行執(zhí)行的一個(gè)或一個(gè)以上指令組成。在DP階段322期間,將執(zhí)行包中的指令指派給適當(dāng)功能單元。同樣在DC階段322期間,對(duì)源寄存器、目的地寄存器及相關(guān)聯(lián)的路徑解碼以在相應(yīng)功能單元中執(zhí)行所述指令。
[0027]執(zhí)行群組330的執(zhí)行階段為:執(zhí)行I (El) 331 ;執(zhí)行2 (E2) 332 ;執(zhí)行3 (E3) 333 ;執(zhí)行4伍4)334;及執(zhí)行5伍5)335。不同類(lèi)型的指令需要不同數(shù)目個(gè)這些階段來(lái)完成。管線的這些階段在理解CPU循環(huán)邊界處的裝置狀態(tài)方面起到重要作用。
[0028]在El階段331期間,評(píng)估指令的條件且讀取所有指令類(lèi)型的操作數(shù)。對(duì)于加載及存儲(chǔ)指令,執(zhí)行地址產(chǎn)生且將地址修改寫(xiě)入到寄存器堆。對(duì)于分支指令,PG階段311中的分支提取包受到影響。對(duì)于所有單循環(huán)指令,將結(jié)果寫(xiě)入到寄存器堆。所有單循環(huán)指令在El階段331期間完成。
[0029]在E2階段332期間,對(duì)于加載指令,將地址發(fā)送到存儲(chǔ)器。對(duì)于存儲(chǔ)指令,將地址及數(shù)據(jù)發(fā)送到存儲(chǔ)器。使結(jié)果飽和的單循環(huán)指令在發(fā)生飽和的情況下設(shè)定控制狀態(tài)寄存器(CSR)中的SAT位。對(duì)于單循環(huán)16乘16乘法指令,將結(jié)果寫(xiě)入到寄存器堆。對(duì)于M單位非乘法指令,將結(jié)果寫(xiě)入到寄存器堆。所有普通乘法單元指令在E2階段322期間完成。
[0030]在E3階段333期間,執(zhí)行數(shù)據(jù)存儲(chǔ)器存取。使結(jié)果飽和的任何乘法指令在發(fā)生飽和的情況下設(shè)定控制狀態(tài)寄存器(CSR)中的SAT位。存儲(chǔ)指令在E3階段333期間完成。
[0031]在E4階段334期間,對(duì)于加載指令,將數(shù)據(jù)帶到CPU邊界。對(duì)于乘法擴(kuò)展指令,將結(jié)果寫(xiě)入到寄存器堆。乘法擴(kuò)展指令在E4階段334期間完成。
[0032]在E5階段335期間,加載指令將數(shù)據(jù)寫(xiě)入到寄存器中。加載指令在E5階段335期間完成。
[0033]圖4圖解說(shuō)明由數(shù)字信號(hào)處理器核心110使用的指令的指令譯碼的實(shí)例(現(xiàn)有技術(shù))。每一指令由32個(gè)位組成,且控制八個(gè)功能單元中的一者的操作。如下定義位字段。creg字段(位29到31)是條件寄存器字段。這些位識(shí)別指令是否為有條件的,且識(shí)別預(yù)測(cè)寄存器。z位(位28)指示在預(yù)測(cè)寄存器中預(yù)測(cè)是基于零還是非零。如果z=l,那么測(cè)試是針對(duì)具有零的等式。如果z=0,那么測(cè)試是針對(duì)非零。將Creg=O及Z=O的情況視為總是成立的,以允許無(wú)條件指令執(zhí)行。如表I中所示,在指令操作碼中編碼creg字段。
【權(quán)利要求】
1.一種并行執(zhí)行多個(gè)塊無(wú)效操作的方法,其包括以下步驟: 接收規(guī)定開(kāi)始地址及將無(wú)效的范圍的塊無(wú)效操作請(qǐng)求; 確定隨后接收的塊無(wú)效操作請(qǐng)求是否屬于先前接收的塊無(wú)效操作請(qǐng)求的地址范圍內(nèi)或與其重疊; 針對(duì)所有重疊地址,并行執(zhí)行所述塊無(wú)效操作。
2.根據(jù)權(quán)利要求1所述的方法,其中: 與正執(zhí)行的塊操作并行地執(zhí)行屬于所述操作的所述地址范圍內(nèi)或與其重疊的塊回寫(xiě)操作請(qǐng)求。
3.根據(jù)權(quán)利要求1所述的方法,其中: 與正執(zhí)行的塊操作并行地執(zhí)行屬于所述操作的所述地址范圍內(nèi)或與其重疊的塊回寫(xiě)與無(wú)效操作請(qǐng)求。
【文檔編號(hào)】G06F12/08GK103778070SQ201310512856
【公開(kāi)日】2014年5月7日 申請(qǐng)日期:2013年10月25日 優(yōu)先權(quán)日:2012年10月25日
【發(fā)明者】納韋恩·布霍里亞, 拉古拉姆·達(dá)莫達(dá)蘭 申請(qǐng)人:德州儀器公司