基于請(qǐng)求類型的選擇性后置數(shù)據(jù)錯(cuò)誤檢測(cè)的制作方法
【專利摘要】在一種數(shù)據(jù)處理系統(tǒng)中,至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型在相對(duì)于對(duì)存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間進(jìn)行選擇。響應(yīng)于接收存儲(chǔ)器訪問請(qǐng)求并且選擇第一定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。響應(yīng)于接收存儲(chǔ)器訪問請(qǐng)求并且選擇第二定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
【專利說明】基于請(qǐng)求類型的選擇性后置數(shù)據(jù)錯(cuò)誤檢測(cè)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體涉及數(shù)據(jù)處理。在一些方面中,本發(fā)明涉及通過變化數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤檢測(cè)處理的定時(shí)來減少有效數(shù)據(jù)訪問延時(shí)。在其它一些方面中,本發(fā)明涉及通過投機(jī)地(speculatively)完成與高延時(shí)操作關(guān)聯(lián)的指令來改進(jìn)處理資源的利用。
【背景技術(shù)】
[0002]在處理器芯片設(shè)計(jì)中,趨勢(shì)已經(jīng)是每個(gè)處理器芯片包括數(shù)目不斷增加的處理器芯。增加處理器芯數(shù)目增加處理器芯的執(zhí)行所消耗的數(shù)據(jù)量并且相應(yīng)地施加對(duì)芯片到芯片互連和外部存儲(chǔ)器(例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM))的比特率的壓力以供應(yīng)所需數(shù)據(jù)量。然而這些更高比特率造成互連上的更高固有誤碼率、因此需要更健壯的錯(cuò)誤糾正代碼(ECC)和/或循環(huán)冗余校驗(yàn)(CRC)代碼以保證合理水平的數(shù)據(jù)完整。另外,復(fù)雜錯(cuò)誤代碼(諸如ECC和CRC)往往由于需要用于錯(cuò)誤檢測(cè)和糾正的更深錯(cuò)誤糾正邏輯流水線而增加訪問延時(shí)。
[0003]影響處理器芯片設(shè)計(jì)的另一趨勢(shì)是DRAM訪問延時(shí)盡管近年來繼續(xù)緩慢改進(jìn),但是仍未跟上處理器芯時(shí)鐘速率增加。因此,外部存儲(chǔ)器訪問延時(shí)如相對(duì)于處理器時(shí)鐘速率測(cè)量的那樣實(shí)際上已經(jīng)降級(jí)。用于補(bǔ)償外部存儲(chǔ)器訪問延時(shí)的常規(guī)技術(shù)已經(jīng)是實(shí)施更大和更深芯片上高速緩存分級(jí)以與消耗處理器芯更近地緩沖頻繁使用的數(shù)據(jù)。然而總芯片尺寸限制迫使在處理器芯數(shù)目與芯片上的高速緩存數(shù)量之間的折衷。因而限制用于簡單地通過增加芯片上高速緩存容量來提高有效存儲(chǔ)器訪問延時(shí)的機(jī)會(huì)。
【發(fā)明內(nèi)容】
[0004]在一些實(shí)施例中,通過選擇性應(yīng)用后置(posted)錯(cuò)誤檢測(cè)處理掩蔽訪問延時(shí)來改進(jìn)有效存儲(chǔ)器訪問延時(shí)。
[0005]在一些實(shí)施例中,通過投機(jī)地完成與高延時(shí)操作關(guān)聯(lián)的指令來改進(jìn)處理資源的利用。
[0006]在至少一個(gè)實(shí)施例中,至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型在相對(duì)于對(duì)存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間進(jìn)行選擇。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第一定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第二定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
[0007]在至少一個(gè)實(shí)施例中,至少基于存儲(chǔ)器子系統(tǒng)中的先前檢測(cè)到的錯(cuò)誤的地址相對(duì)于對(duì)存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間進(jìn)行選擇。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第一定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第二定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
[0008]在至少一個(gè)實(shí)施例中,在與處理器芯的執(zhí)行單元關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的條目中跟蹤高延時(shí)操作。在執(zhí)行單元中,在完成高延時(shí)操作之前投機(jī)地完成執(zhí)行依賴于由數(shù)據(jù)結(jié)構(gòu)的條目跟蹤的高延時(shí)操作的指令。投機(jī)地完成指令包括向處理器芯的完成邏輯報(bào)告條目的標(biāo)識(shí)符并且從執(zhí)行單元的執(zhí)行流水線去除指令。完成邏輯記錄指令對(duì)高延時(shí)操作的依賴并且僅在成功完成高延時(shí)操作之后向處理器的有架構(gòu)狀態(tài)交付指令的執(zhí)行結(jié)果。
【專利附圖】
【附圖說明】
[0009]圖1是根據(jù)一個(gè)實(shí)施例的示例數(shù)據(jù)處理系統(tǒng)的高級(jí)框圖;
[0010]圖2是根據(jù)一個(gè)實(shí)施例的圖1的存儲(chǔ)器控制器(MC)的更具體視圖;
[0011]圖3是根據(jù)一個(gè)實(shí)施例的圖1的存儲(chǔ)器緩沖器(MB)的更具體視圖;
[0012]圖4是根據(jù)一個(gè)實(shí)施例的用于確定是否將對(duì)于讀取存儲(chǔ)器訪問操作而啟用后置錯(cuò)誤檢測(cè)處理的示例過程的高級(jí)邏輯流程圖;
[0013]圖5是根據(jù)一個(gè)實(shí)施例的存儲(chǔ)器控制器的控制邏輯中的可選后置錯(cuò)誤處理預(yù)測(cè)器(PEPP)的更具體視圖;
[0014]圖6是根據(jù)一個(gè)實(shí)施例的示例方法的高級(jí)邏輯流程圖,PEPP通過該方法基于歷史信息確定是否將對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求而禁止后置錯(cuò)誤檢測(cè)處理;
[0015]圖7是根據(jù)一個(gè)實(shí)施例的對(duì)存儲(chǔ)器塊的讀取訪問的時(shí)序圖;
[0016]圖8是根據(jù)一個(gè)實(shí)施例的處理器芯的一部分的更具視圖;
[0017]圖9是根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,圖8的加載未命中隊(duì)列(LMQ)通過該過程處置加載數(shù)據(jù)的返回;
[0018]圖10是根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,圖8的加載-存儲(chǔ)單元的完成級(jí)通過該過程向全局完成表(GCT)報(bào)告完成加載型指令;
[0019]圖11是根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT通過該過程跟蹤投機(jī)地完成的指令;
[0020]圖12是根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT通過該過程處置LMQ取消分配報(bào)告;
[0021]圖13是根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT通過該過程完成指令組;以及
[0022]圖14是示例設(shè)計(jì)過程的數(shù)據(jù)流程圖。
【具體實(shí)施方式】
[0023]現(xiàn)在參照附圖并且具體參照?qǐng)D1,圖示示例數(shù)據(jù)處理系統(tǒng)100的高級(jí)框圖,該數(shù)據(jù)處理系統(tǒng)是根據(jù)本文公開的原理和技術(shù)的數(shù)據(jù)處理系統(tǒng)的許多可能實(shí)施例之一。可以例如使用IBM Power服務(wù)器之一實(shí)施數(shù)據(jù)處理系統(tǒng)100,這些服務(wù)器是紐約阿芒克的國際商業(yè)機(jī)器公司的產(chǎn)品線。
[0024]在描繪的實(shí)施例中,數(shù)據(jù)處理系統(tǒng)100包括至少一個(gè)芯片上系統(tǒng)(SOC) 102并且如省略號(hào)所示可能多個(gè)S0C102,這些SOC由S0C102內(nèi)集成的系統(tǒng)織構(gòu)(fabric) 130耦合。優(yōu)選地,將每個(gè)S0C102實(shí)現(xiàn)為具有襯底的單個(gè)集成電路芯片,在該襯底中如本領(lǐng)域已知的那樣制作半導(dǎo)體電路裝置。每個(gè)S0C102包括獨(dú)立處理指令和數(shù)據(jù)的多個(gè)處理器芯104。在一些實(shí)施例中,處理器芯104還支持其中并行執(zhí)行多個(gè)獨(dú)立線程的同時(shí)多線程化。每個(gè)處理器芯104包括用于取讀指令、對(duì)指令排序以用于執(zhí)行、并且通過向處理器芯104的架構(gòu)狀態(tài)交付執(zhí)行結(jié)果來完成指令的指令定序單元(ISU) 106。如以下進(jìn)一步討論的那樣,ISU106通過參考全局完成表(GCT) 105來完成指令。
[0025]每個(gè)處理器芯104還包括用于執(zhí)行指令(諸如定點(diǎn)和浮點(diǎn)算術(shù)指令、邏輯指令以及加載型和存儲(chǔ)型指令)的一個(gè)或者多個(gè)執(zhí)行單元,這些加載型和存儲(chǔ)型指令分別請(qǐng)求對(duì)數(shù)據(jù)處理系統(tǒng)100的相干地址空間中的目標(biāo)存儲(chǔ)器塊的讀取和寫入訪問。具體而言,執(zhí)行單元包括加載-存儲(chǔ)單元(LSU) 108,該LSU執(zhí)行加載型和存儲(chǔ)型指令以計(jì)算讀取和寫入存儲(chǔ)器訪問操作的目標(biāo)地址。LSU108包括可以從其滿足讀取存儲(chǔ)器訪問操作的存儲(chǔ)直通(store-through) 一級(jí)(LI)高速緩存110以及跟蹤在LI高速緩存110中未命中的讀取存儲(chǔ)器訪問操作的加載未命中隊(duì)列(LMQ) 112。
[0026]每個(gè)處理器芯104的操作由多級(jí)分級(jí)存儲(chǔ)器子系統(tǒng)支持,該多級(jí)分級(jí)存儲(chǔ)器子系統(tǒng)在它的最低級(jí)具有一般可由數(shù)據(jù)處理系統(tǒng)100中的S0C102中的任何SOC中的處理器芯104中的任何處理器芯訪問的一個(gè)或者多個(gè)共享系統(tǒng)存儲(chǔ)器140 (例如體DRAM)而在它的更高級(jí)具有一個(gè)或者多個(gè)高速緩存存儲(chǔ)器級(jí)。如圖所示,S0C102包括一個(gè)或者多個(gè)(并且優(yōu)選多個(gè))存儲(chǔ)器信道接口(MCI )132,這些MCI中的每個(gè)MCI支持響應(yīng)于經(jīng)由系統(tǒng)織構(gòu)130從相同S0C102或者其它S0C102中的處理器芯104接收的存儲(chǔ)器訪問操作的對(duì)系統(tǒng)存儲(chǔ)器140的關(guān)聯(lián)匯集的讀取和寫入訪問。在描繪的實(shí)施例中,每個(gè)MCI132經(jīng)由外部存儲(chǔ)器緩沖器(MB) 134耦合到它的系統(tǒng)存儲(chǔ)器140的關(guān)聯(lián)匯集。
[0027]在示例實(shí)施例中,支持S0C102的每個(gè)處理器芯104的高速緩存存儲(chǔ)器分級(jí)包括上述存儲(chǔ)直通一級(jí)(LI)高速緩存110并且包括專有存儲(chǔ)內(nèi)部(store-1n)二級(jí)(L2)高速緩存120。如圖所示,L2高速緩存120包括L2陣列122和L2控制器124,該L2控制器包括控制邏輯和L2陣列122的內(nèi)容的目錄126。L2控制器124響應(yīng)于從關(guān)聯(lián)存儲(chǔ)器芯104接收的存儲(chǔ)器訪問(和其它)請(qǐng)求在系統(tǒng)織構(gòu)130上發(fā)起操作和/或訪問L2陣列122。在(如下文將假設(shè)的那樣)實(shí)施基于窺探(snoop-based)的相干協(xié)議的一個(gè)實(shí)施例中,L2控制器124還檢測(cè)系統(tǒng)織構(gòu)130上的操作、提供適當(dāng)相干響應(yīng)并且執(zhí)行窺探的操作所需要的對(duì)L2陣列122的任何訪問。雖然所示高速緩存分級(jí)包括僅兩個(gè)高速緩存級(jí),但是本領(lǐng)域技術(shù)人員將理解備選實(shí)施例可以包括專有或者共享、芯片上或者芯片外、內(nèi)嵌或者后備高速緩存的附加級(jí)(L3、L4等),該高速緩存可以完全包括、部分包括或者未包括更高高速緩存級(jí)的內(nèi)容。
[0028]S0C102還包括一個(gè)或者多個(gè)集成1/0 (輸入/輸出)接口 150,該一個(gè)或者多個(gè)集成I/o接口支持經(jīng)由一個(gè)或者多個(gè)外部通信鏈路152與一個(gè)或者多個(gè)1/0控制器(諸如PIC主機(jī)橋接器(PHB)、InfiniBand控制器、FibreChannel控制器等)的1/0通信。本領(lǐng)域技術(shù)人員將理解數(shù)據(jù)處理系統(tǒng)100可以包括對(duì)于理解這里闡述的本發(fā)明而言非必需的、因而在圖1中未圖示或者這里未進(jìn)一步討論的許多附加或者備選部件。
[0029]如將理解的那樣,利用當(dāng)前技術(shù),處理器芯104對(duì)于由系統(tǒng)存儲(chǔ)器140服務(wù)的請(qǐng)求而經(jīng)歷的存儲(chǔ)器訪問延時(shí)可以顯著大于對(duì)于由L2高速緩存120服務(wù)的存儲(chǔ)器訪問請(qǐng)求的存儲(chǔ)器訪問延時(shí)。例如在一個(gè)實(shí)施例中,可以在單個(gè)處理器芯時(shí)鐘周期中訪問LI高速緩存110,可以在近似3-5個(gè)處理器芯時(shí)鐘周期中訪問本地L2高速緩存120,并且可以在300-400個(gè)處理器芯時(shí)鐘周期中訪問芯片外系統(tǒng)存儲(chǔ)器140。為了減少由系統(tǒng)存儲(chǔ)器140服務(wù)的讀取存儲(chǔ)器訪問操作的有效存儲(chǔ)器訪問延時(shí),S0C102可以對(duì)于在系統(tǒng)織構(gòu)130上發(fā)起的選擇的讀取存儲(chǔ)器訪問操作而選擇性啟用數(shù)據(jù)錯(cuò)誤投機(jī)。響應(yīng)于數(shù)據(jù)錯(cuò)誤投機(jī)被啟用的讀取存儲(chǔ)器訪問操作,讀取存儲(chǔ)器訪問操作所請(qǐng)求的數(shù)據(jù)中的至少一些數(shù)據(jù)可以由存儲(chǔ)器子系統(tǒng)向請(qǐng)求處理器芯104返回并且在指示請(qǐng)求的數(shù)據(jù)是否包含錯(cuò)誤之前由處理器芯104處理。因此,可以“后置”(即推遲)存儲(chǔ)器分級(jí)內(nèi)的錯(cuò)誤檢測(cè)處理以使數(shù)據(jù)傳輸能夠先于錯(cuò)誤確定。以下描述處理器芯104的數(shù)據(jù)錯(cuò)誤投機(jī)和在存儲(chǔ)器子系統(tǒng)中的關(guān)聯(lián)后置錯(cuò)誤檢測(cè)處理的一個(gè)實(shí)現(xiàn)方式。
[0030]現(xiàn)在參照?qǐng)D2,描繪根據(jù)一個(gè)實(shí)施例的圖1的存儲(chǔ)器信道接口(MCI) 132之一的更具體視圖。在描繪的實(shí)施例中,MCI132經(jīng)由下游(即朝著存儲(chǔ)器140)請(qǐng)求和數(shù)據(jù)接口 202和204以及上游(即朝著系統(tǒng)織構(gòu)130)控制和數(shù)據(jù)接口 206和208耦合到系統(tǒng)織構(gòu)130。請(qǐng)求接口 202從系統(tǒng)織構(gòu)130接收各種操作的讀取和寫入存儲(chǔ)器訪問請(qǐng)求,其中每個(gè)存儲(chǔ)器訪問請(qǐng)求例如包括指示操作的存儲(chǔ)器訪問請(qǐng)求是否有效的有效字段201、指示存儲(chǔ)器訪問請(qǐng)求的類型(例如讀取或者寫入)的事務(wù)類型(TType)字段203和指定存儲(chǔ)器訪問請(qǐng)求的目標(biāo)地址的請(qǐng)求地址字段205。在一個(gè)實(shí)施例中,用于讀取存儲(chǔ)器訪問請(qǐng)求的TType字段203包括后置錯(cuò)誤檢測(cè)處理啟用(PEDPE)位207,該P(yáng)EDPE位由發(fā)起讀取存儲(chǔ)器訪問請(qǐng)求的S0C102設(shè)置(例如設(shè)置成‘I’)以指示對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求而啟用后置錯(cuò)誤檢測(cè)處理而由S0C102重置(例如重置成‘0’)以指示禁止后置錯(cuò)誤檢測(cè)處理。數(shù)據(jù)接口 204從系統(tǒng)織構(gòu)130接收寫入存儲(chǔ)器訪問請(qǐng)求將向系統(tǒng)存儲(chǔ)器140的關(guān)聯(lián)匯集寫入的數(shù)據(jù)。
[0031]MCI132包括控制邏輯200,該控制邏輯控制響應(yīng)于系統(tǒng)織構(gòu)130接收的存儲(chǔ)器訪問操作控制對(duì)系統(tǒng)存儲(chǔ)器140的關(guān)聯(lián)匯集的訪問。響應(yīng)于接收到系統(tǒng)織構(gòu)130上的存儲(chǔ)器訪問操作的請(qǐng)求,控制邏輯200通過參考存儲(chǔ)器訪問請(qǐng)求的有效字段201和請(qǐng)求地址字段205來確定存儲(chǔ)器訪問請(qǐng)求是否有效并且指定在該MCI132控制的系統(tǒng)存儲(chǔ)器140的匯集內(nèi)的目標(biāo)地址。如果不是,則丟棄存儲(chǔ)器訪問請(qǐng)求。然而如果控制邏輯200使存儲(chǔ)器訪問請(qǐng)求生效并且限定存儲(chǔ)器訪問請(qǐng)求為被引向它的關(guān)聯(lián)系統(tǒng)存儲(chǔ)器104之一,則控制邏輯200向幀格式化器210傳輸存儲(chǔ)器訪問請(qǐng)求(對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求包括PEDPE位207)和關(guān)聯(lián)(如果存在)寫入數(shù)據(jù)。
[0032]在至少一些實(shí)施例中,控制邏輯200包括可選后置錯(cuò)誤處理預(yù)測(cè)器(PEPP)202,該P(yáng)EPP基于用于以系統(tǒng)存儲(chǔ)器140的關(guān)聯(lián)匯集為目標(biāo)的存儲(chǔ)器訪問請(qǐng)求的歷史數(shù)據(jù)預(yù)測(cè)后置錯(cuò)誤檢測(cè)處理可能成功而未檢測(cè)目標(biāo)存儲(chǔ)器塊中的錯(cuò)誤。響應(yīng)于PEPP202確定后置錯(cuò)誤檢測(cè)處理對(duì)于特定讀取存儲(chǔ)器訪問請(qǐng)求不可能成功而未檢測(cè)目標(biāo)存儲(chǔ)器塊中的錯(cuò)誤,控制邏輯200對(duì)于該特定讀取存儲(chǔ)器訪問請(qǐng)求而重置PEPDE位207。以下參照?qǐng)D5_6提供關(guān)于PEPP202及其操作的一個(gè)實(shí)施例的進(jìn)一步細(xì)節(jié)。
[0033]幀格式化器210響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求和寫入數(shù)據(jù)(如果有)將存儲(chǔ)器訪問請(qǐng)求和寫入數(shù)據(jù)(如果有)格式化成一個(gè)或者多個(gè)幀并且經(jīng)由下游存儲(chǔ)器緩沖器接口 212向耦合到S0C102的存儲(chǔ)器緩沖器134傳輸那些幀。如將理解的那樣,幀格式可以基于多種因素在實(shí)現(xiàn)方式之間廣泛變化,這些因素包括可用于實(shí)施下游存儲(chǔ)器緩沖器接口 212和對(duì)應(yīng)上游存儲(chǔ)器緩沖器接口 214的管腳計(jì)數(shù)。[0034]如圖2中進(jìn)一步所示,MCI132還包括經(jīng)由上游存儲(chǔ)器緩沖器接口 214從耦合到S0C102的存儲(chǔ)器緩沖器134接收幀的幀解碼器220。幀解碼器220對(duì)這樣的幀解碼以提取上游傳輸?shù)臄?shù)據(jù)和關(guān)聯(lián)控制信息。循環(huán)冗余校驗(yàn)(CRC)檢測(cè)器222還與幀行解碼器220執(zhí)行的處理并行地對(duì)幀執(zhí)行CRC (例如奇偶校驗(yàn)或者其它CRC處理)以驗(yàn)證在從存儲(chǔ)器緩沖器134的傳輸中尚未破壞該巾貞。響應(yīng)于CRC檢測(cè)器222通知尚未破壞巾貞的信號(hào),巾貞解碼器220轉(zhuǎn)發(fā)從幀提取的控制信息(諸如標(biāo)識(shí)數(shù)據(jù)屬于的操作的數(shù)據(jù)標(biāo)簽、指示數(shù)據(jù)是否包含錯(cuò)誤的數(shù)據(jù)錯(cuò)誤指示符和(如以下進(jìn)一步描述的)后置狀態(tài)指示符),該后置狀態(tài)指示符提供關(guān)于數(shù)據(jù)是否為受到后置錯(cuò)誤檢測(cè)處理的數(shù)據(jù)傳送的一部分的指示??刂七壿?00接收幀解碼器220提取的控制信息并且經(jīng)由上游控制接口 206向系統(tǒng)織構(gòu)130轉(zhuǎn)發(fā)該控制信息。MCI132還包括用于由幀解碼器220提取的上游數(shù)據(jù)的兩個(gè)數(shù)據(jù)路徑:(I)對(duì)于目標(biāo)存儲(chǔ)器塊的關(guān)鍵字、受到后置錯(cuò)誤檢測(cè)處理的數(shù)據(jù)傳送和其它高優(yōu)先級(jí)數(shù)據(jù)傳送而選擇的快速路徑226以及(2)包括用于緩沖低優(yōu)先級(jí)數(shù)據(jù)的數(shù)據(jù)緩沖器224的緩沖數(shù)據(jù)路徑。復(fù)用器228應(yīng)用選擇的仲裁策略以從兩個(gè)數(shù)據(jù)路徑之一選擇數(shù)據(jù)用于在系統(tǒng)織構(gòu)130上傳輸、但是最小化訪問延時(shí)、優(yōu)先從快速路徑226選擇數(shù)據(jù)而未讓緩沖數(shù)據(jù)路徑空閑(starve out)。
[0035]現(xiàn)在參照?qǐng)D3,圖示根據(jù)一個(gè)實(shí)施例的圖1的存儲(chǔ)器緩沖器134的更具體視圖。在所示實(shí)施例中,存儲(chǔ)器緩沖器134包括經(jīng)由下游存儲(chǔ)器緩沖器接口 212從MCI131接收幀的幀解碼器300。幀解碼器300對(duì)幀解碼并且確定每個(gè)存儲(chǔ)器訪問請(qǐng)求被引向多個(gè)附著的系統(tǒng)存儲(chǔ)器140中的哪個(gè)系統(tǒng)存儲(chǔ)器。因此,在附著的系統(tǒng)存儲(chǔ)器140包括至少系統(tǒng)存儲(chǔ)器140a和140b的描繪的示例中,幀解碼器300確定存儲(chǔ)器訪問請(qǐng)求是否指定向系統(tǒng)存儲(chǔ)器140a或者向系統(tǒng)存儲(chǔ)器140b指派的目標(biāo)地址并且相應(yīng)地向控制器302a或者控制器302b轉(zhuǎn)發(fā)存儲(chǔ)器訪問請(qǐng)求用于服務(wù)??刂破?02a和302b通過將適當(dāng)讀取或者寫入訪問引向系統(tǒng)存儲(chǔ)器140a和140b中的關(guān)聯(lián)系統(tǒng)存儲(chǔ)器來服務(wù)于從控制器302a、302b接收的存儲(chǔ)器訪問請(qǐng)求。
[0036]存儲(chǔ)器緩沖器134還包括用于每個(gè)附著的系統(tǒng)存儲(chǔ)器140a和140b的相應(yīng)讀取信道310a、310b。讀取信道310a、310b中的每個(gè)讀取信道包括優(yōu)選地對(duì)從系統(tǒng)存儲(chǔ)器140a和140b中的關(guān)聯(lián)系統(tǒng)存儲(chǔ)器讀取的所有數(shù)據(jù)執(zhí)行錯(cuò)誤檢測(cè)和錯(cuò)誤糾正處理的ECC校驗(yàn)電路312a、312b。讀取信道310a、3IOb中的每個(gè)讀取信道還包括快速路徑316a、316b,通過該快速路徑也允許從系統(tǒng)存儲(chǔ)器140a和140b中的關(guān)聯(lián)系統(tǒng)存儲(chǔ)器讀取的選擇的數(shù)據(jù)顆粒(granule)繞過ECC校驗(yàn)電路312a、312b以便減少存儲(chǔ)器訪問延時(shí)。例如在四個(gè)顆粒中從系統(tǒng)存儲(chǔ)器140向處理器芯104傳達(dá)存儲(chǔ)器塊,僅允許四個(gè)數(shù)據(jù)顆粒中的前三個(gè)數(shù)據(jù)顆粒繞過ECC校驗(yàn)電路312,而也總是通過ECC校驗(yàn)電路312路由所有四個(gè)顆粒,從而可以隨著最后顆粒方便地上游轉(zhuǎn)發(fā)指示存儲(chǔ)器塊是否包含錯(cuò)誤的數(shù)據(jù)錯(cuò)誤指示符。然后丟棄也通過ECC校驗(yàn)電路312路由的四個(gè)數(shù)據(jù)顆粒中的前三個(gè)數(shù)據(jù)顆粒,因?yàn)橐呀?jīng)經(jīng)由快速路徑316a、316b轉(zhuǎn)發(fā)它們。為了允許用最小延時(shí)轉(zhuǎn)發(fā)經(jīng)由快速路徑316a、316b傳輸?shù)臄?shù)據(jù),讀取信道310a、310b中的每個(gè)讀取信道還包括用于隨需緩沖ECC校驗(yàn)電路312a、312b輸出的更低優(yōu)先級(jí)數(shù)據(jù)的數(shù)據(jù)緩沖器314a、314b。在每個(gè)讀取信道310a、310b內(nèi)的復(fù)用器318a、318b應(yīng)用選擇的仲裁策略以從數(shù)據(jù)緩沖器314a、314b和快速路徑316a、316b選擇數(shù)據(jù)用于轉(zhuǎn)發(fā)。仲裁策略優(yōu)先從快速路徑316a、316b選擇數(shù)據(jù)而未使緩沖數(shù)據(jù)路徑空閑。
[0037]在一個(gè)優(yōu)選實(shí)施例中,讀取信道310a、3IOb中的每個(gè)讀取信道僅通過包括ECC校驗(yàn)電路312和數(shù)據(jù)緩沖器314的緩沖數(shù)據(jù)路徑路由與后置錯(cuò)誤檢測(cè)處理被禁止的讀取存儲(chǔ)器訪問請(qǐng)求關(guān)聯(lián)的數(shù)據(jù)并且如果調(diào)度允許則經(jīng)由緩沖數(shù)據(jù)路徑和快速路徑316路由與后置錯(cuò)誤檢測(cè)處理被啟用的讀取存儲(chǔ)器訪問請(qǐng)求關(guān)聯(lián)的數(shù)據(jù)。因此,與現(xiàn)有技術(shù)系統(tǒng)對(duì)照,讀取信道310a、310b對(duì)目標(biāo)存儲(chǔ)器塊的轉(zhuǎn)發(fā)未依賴于確定整個(gè)目標(biāo)存儲(chǔ)器塊無錯(cuò)誤。取而代之,對(duì)于后置錯(cuò)誤檢測(cè)處理被PEDPE位207啟用的讀取存儲(chǔ)器訪問請(qǐng)求,讀取信道310 —旦從系統(tǒng)存儲(chǔ)器140接收的目標(biāo)存儲(chǔ)器塊的至少一個(gè)數(shù)據(jù)顆粒(例如包含關(guān)鍵字的數(shù)據(jù)顆粒)可用就經(jīng)由快速路徑316轉(zhuǎn)發(fā)數(shù)據(jù)顆粒。在已經(jīng)從系統(tǒng)存儲(chǔ)器140接收目標(biāo)存儲(chǔ)器塊的所有數(shù)據(jù)顆粒之后,讀取信道130利用它的ECC校驗(yàn)電路312對(duì)所有數(shù)據(jù)顆粒執(zhí)行后置錯(cuò)誤檢測(cè)處理以確定目標(biāo)存儲(chǔ)器塊是否包含錯(cuò)誤并且如果可能(例如如果錯(cuò)誤是單個(gè)符號(hào)錯(cuò)誤并且未對(duì)目標(biāo)存儲(chǔ)器塊執(zhí)行后置數(shù)據(jù)錯(cuò)誤糾正)則糾正錯(cuò)誤。
[0038]如以下參照?qǐng)D7進(jìn)一步討論的那樣,除了目標(biāo)存儲(chǔ)器塊的顆粒之外,讀取信道310還優(yōu)選地隨著目標(biāo)存儲(chǔ)器塊的每個(gè)數(shù)據(jù)顆粒轉(zhuǎn)發(fā)指示關(guān)聯(lián)數(shù)據(jù)顆粒是否受到后置錯(cuò)誤檢測(cè)處理的后置狀態(tài)指示符。讀取信道310也優(yōu)選地例如隨著目標(biāo)存儲(chǔ)器塊的至少最后顆粒(并且可能隨著每個(gè)數(shù)據(jù)顆粒)轉(zhuǎn)發(fā)指示對(duì)于目標(biāo)存儲(chǔ)器塊是否已經(jīng)檢測(cè)到錯(cuò)誤的數(shù)據(jù)錯(cuò)誤指示符。還可以響應(yīng)于檢測(cè)到隨著數(shù)據(jù)上游流動(dòng)而出現(xiàn)的錯(cuò)誤(例如CRC錯(cuò)誤)來設(shè)置數(shù)據(jù)錯(cuò)誤指不符。
[0039]存儲(chǔ)器緩沖器134的讀取信道310a、310b都耦合到由信道仲裁器322控制的復(fù)用器320的輸入。信道仲裁器322應(yīng)用希望的仲裁策略(例如修改的輪循)以一般提高在讀取信道310a、310b之間的公平,而向具有后置錯(cuò)誤檢測(cè)處理的數(shù)據(jù)傳送給予優(yōu)先。信道仲裁器322選擇的每個(gè)數(shù)據(jù)傳送由幀格式化器330接收,該幀格式化器將數(shù)據(jù)傳送格式化成一個(gè)或者多個(gè)幀并且在CRC生成器332追加校驗(yàn)值之后經(jīng)由上游存儲(chǔ)器緩沖器接口 214向耦合到存儲(chǔ)器緩沖器134的MCI132傳輸那些幀。
[0040]現(xiàn)在參照?qǐng)D4,描繪根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,S0C102通過該過程確定是否將對(duì)于讀取存儲(chǔ)器訪問操作而啟用后置錯(cuò)誤檢測(cè)處理;該過程始于塊400,然后繼續(xù)至塊402,該塊圖示L2控制器124等待從關(guān)聯(lián)處理器芯104接收存儲(chǔ)器訪問請(qǐng)求。如塊404和406所示,如果存儲(chǔ)器訪問請(qǐng)求是寫入存儲(chǔ)器訪問請(qǐng)求,則L2控制器124執(zhí)行其它可能常規(guī)處理。隨后,該過程終止于塊430。
[0041 ] 回到塊404,響應(yīng)于L2控制器124從關(guān)聯(lián)處理器芯104接收讀取存儲(chǔ)器訪問請(qǐng)求,該過程從塊404繼續(xù)塊408,該塊圖示L2控制器124例如通過讀取目錄126以確定與讀取存儲(chǔ)器訪問請(qǐng)求的目標(biāo)地址關(guān)聯(lián)的相干狀態(tài)來確定L2高速緩存120是否可以服務(wù)于讀取存儲(chǔ)器訪問請(qǐng)求而未在系統(tǒng)織構(gòu)130上發(fā)起操作。響應(yīng)于確定L2高速緩存120可以服務(wù)于讀取存儲(chǔ)器訪問請(qǐng)求而未在系統(tǒng)織構(gòu)130上發(fā)起對(duì)應(yīng)操作,L2控制器124指引L2高速緩存120從L2陣列122向處理器芯104供應(yīng)讀取存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊(塊410)。隨后,圖4中描繪的過程結(jié)束于塊430。
[0042]再次參照塊408,如果L2控制器124確定L2高速緩存120不能服務(wù)于讀取存儲(chǔ)器訪問請(qǐng)求而未在系統(tǒng)織構(gòu)130上發(fā)起操作,則L2控制器124在塊420進(jìn)一步確定請(qǐng)求處理器芯104是否指示例如對(duì)于這一特定讀取存儲(chǔ)器訪問請(qǐng)求、對(duì)于處理器芯104的這一線程或者對(duì)于處理器芯104的所有執(zhí)行線程而禁用了數(shù)據(jù)錯(cuò)誤投機(jī)。在一個(gè)實(shí)施例中,可以通過參考讀取存儲(chǔ)器訪問請(qǐng)求內(nèi)的數(shù)據(jù)錯(cuò)誤投機(jī)字段來進(jìn)行在塊420所示的確定。響應(yīng)于在塊420確定禁用數(shù)據(jù)錯(cuò)誤投機(jī),L2控制器124在系統(tǒng)織構(gòu)130上發(fā)起讀取存儲(chǔ)器訪問操作而PEDPE位207被重置用于對(duì)于目標(biāo)存儲(chǔ)器塊禁止后置數(shù)據(jù)錯(cuò)誤處理(塊422)。隨后,圖4中所示過程結(jié)束于塊430。
[0043]回到塊420,如果L2控制器124確定未禁用數(shù)據(jù)錯(cuò)誤投機(jī),則L2控制器124也在塊424處基于讀取存儲(chǔ)器訪問請(qǐng)求的事務(wù)類型(TType)確定是否對(duì)于這一讀取存儲(chǔ)器訪問請(qǐng)求而允許后置數(shù)據(jù)錯(cuò)誤檢測(cè)。因此,L2控制器124實(shí)施如下策略,通過該策略,對(duì)于某些類型的讀取存儲(chǔ)器訪問請(qǐng)求(例如數(shù)據(jù)加載、原子性加載和保留以及數(shù)據(jù)預(yù)取請(qǐng)求)而允許、但是對(duì)于其它讀取存儲(chǔ)器訪問請(qǐng)求(例如指令加載、地址翻譯加載和有修改意圖的讀取請(qǐng)求)未允許后置數(shù)據(jù)錯(cuò)誤檢測(cè)。換而言之,盡管事實(shí)為對(duì)于請(qǐng)求處理器芯104的讀取存儲(chǔ)器訪問請(qǐng)求未禁用數(shù)據(jù)錯(cuò)誤投機(jī),但是L2控制器124卻可以如圖4中所示通過該過程響應(yīng)于在塊424的否定確定從塊424繼續(xù)先前描述的塊422來對(duì)于選擇的讀取器存儲(chǔ)器訪問請(qǐng)求而禁止后置錯(cuò)誤檢測(cè)處理。然而響應(yīng)于在塊424的肯定確定,L2控制器在系統(tǒng)織構(gòu)130上發(fā)起讀取存儲(chǔ)器訪問操作而PEDPE位207被設(shè)置用于對(duì)于目標(biāo)存儲(chǔ)器塊啟用后置錯(cuò)誤檢測(cè)處理。應(yīng)當(dāng)注意,盡管L2控制器124設(shè)置PEDPE位207,但是可以用或者可以未用后置錯(cuò)誤檢測(cè)處理服務(wù)于在塊426發(fā)起的讀取存儲(chǔ)器訪問操作。在多數(shù)情況下,讀取存儲(chǔ)器訪問操作將簡單地由窺探讀取存儲(chǔ)器訪問操作并且供應(yīng)目標(biāo)存儲(chǔ)器塊的另一 L2高速緩存120服務(wù)。另外,在讀取存儲(chǔ)器訪問操作由存儲(chǔ)器控制器132服務(wù)的其它情況下,存儲(chǔ)器控制器132或者存儲(chǔ)器緩沖器134可以鑒于調(diào)度考慮或者PEPP202指示可能在目標(biāo)存儲(chǔ)器塊中檢測(cè)到數(shù)據(jù)錯(cuò)誤來選擇不執(zhí)行后置錯(cuò)誤檢測(cè)處理、但是代之以在供應(yīng)目標(biāo)存儲(chǔ)器塊的任何顆粒之前執(zhí)行錯(cuò)誤檢測(cè)處理。在塊426之后,圖4中所示過程結(jié)束于塊430。
[0044]在響應(yīng)于系統(tǒng)織構(gòu)130上的讀取存儲(chǔ)器訪問操作從存儲(chǔ)器子系統(tǒng)返回目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)顆粒時(shí),L2控制器124優(yōu)選地在L2陣列122中放置目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)顆粒。然而L2控制器124在目錄126中標(biāo)記數(shù)據(jù)顆粒為無效,除非并且直至L2控制器124從存儲(chǔ)器子系統(tǒng)接收整個(gè)存儲(chǔ)器塊無數(shù)據(jù)錯(cuò)誤的確認(rèn)。
[0045]現(xiàn)在參照?qǐng)D5,圖示根據(jù)一個(gè)實(shí)施例的MCI132的控制邏輯200中的可選PEPP202的更具體視圖。
[0046]在運(yùn)用當(dāng)前存儲(chǔ)器技術(shù)的數(shù)據(jù)處理系統(tǒng)100的大規(guī)模商用實(shí)施例中,至少大部分由于DRAM相對(duì)于競爭存儲(chǔ)器技術(shù)的低成本而通常在體DRAM中實(shí)施系統(tǒng)存儲(chǔ)器140。在這樣的實(shí)施例中,系統(tǒng)存儲(chǔ)器140中的每個(gè)系統(tǒng)存儲(chǔ)器優(yōu)選地包括多個(gè)DRAM組而每組包括多個(gè)DRAM芯片。向DRAM芯片指派實(shí)際地址,從而存儲(chǔ)器塊各自跨越組被“分條”而在給定的組中的每個(gè)DRAM芯片供應(yīng)訪問的存儲(chǔ)器塊的部分。
[0047]假設(shè)系統(tǒng)存儲(chǔ)器140的這一構(gòu)造,PEPP202包括多個(gè)條目500a_500n,每個(gè)條目對(duì)應(yīng)于MCI132控制的系統(tǒng)存儲(chǔ)器組140。每個(gè)條目500包括如果對(duì)應(yīng)組中的DRAM芯片中的任何DRAM芯片出故障(例如經(jīng)歷閾值數(shù)目以上的不可糾正錯(cuò)誤(UE))則(例如由系統(tǒng)固件)設(shè)置的芯片禁用字段502。條目500a-500n中的每個(gè)條目還包括可糾正錯(cuò)誤(CE)計(jì)數(shù)器504a-504n中的相應(yīng)CE計(jì)數(shù)器。在至少一個(gè)實(shí)施例中,PEPP202每當(dāng)幀解碼器220向控制邏輯200報(bào)告數(shù)據(jù)錯(cuò)誤時(shí)遞增相關(guān)CE計(jì)數(shù)器504并且在規(guī)律間隔定期地重置所有CE計(jì)數(shù)器504a-504n。如以下參照?qǐng)D6所示,PEPP202優(yōu)選地使控制邏輯200對(duì)于芯片禁用字段502a-502n中的關(guān)聯(lián)芯片禁用字段被設(shè)置的或者CE計(jì)數(shù)器504a_504n中的關(guān)聯(lián)CE計(jì)數(shù)器具有滿足(例如超過)CE閾值的值的任何系統(tǒng)存儲(chǔ)器組140禁止數(shù)據(jù)錯(cuò)誤檢測(cè)投機(jī)。
[0048]現(xiàn)在參照?qǐng)D6,描繪根據(jù)一個(gè)實(shí)施例的示例方法的高級(jí)邏輯流程圖,PEPP202通過該方法確定是否將對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求而禁止后置錯(cuò)誤檢測(cè)處理。所示過程始于塊600、然后繼續(xù)至塊602,該塊圖示PEPP202等待控制邏輯200從系統(tǒng)織構(gòu)130接收讀取存儲(chǔ)器訪問請(qǐng)求。響應(yīng)于控制邏輯200從系統(tǒng)織構(gòu)130接收到讀取存儲(chǔ)器訪問請(qǐng)求,PEPP202確定PEDPE位207是否指示對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求而啟用后置數(shù)據(jù)錯(cuò)誤檢測(cè)。如果不是,則圖6中所示過程結(jié)束于塊614。然而如果PEPP202在塊604確定讀取存儲(chǔ)器訪問請(qǐng)求的PEDPE位207指示對(duì)于讀取存儲(chǔ)器訪問請(qǐng)求而啟用了后置錯(cuò)誤檢測(cè)處理,則該過程繼續(xù)塊606。
[0049]塊606描繪PEPP202將請(qǐng)求地址字段205指定的目標(biāo)地址映射到在MCI132控制的系統(tǒng)存儲(chǔ)器140的匯集中的存儲(chǔ)器組之中的特定存儲(chǔ)器組??梢岳缋玫刂纷儞Q函數(shù)(例如模函數(shù))或者基地址寄存器設(shè)施來執(zhí)行在塊606描繪的映射?;诖_定的系統(tǒng)存儲(chǔ)器組140,PEPP202在塊608和610確定芯片禁用字段502a_502n中的關(guān)聯(lián)芯片禁用字段是否被設(shè)置或者CE計(jì)數(shù)器504a-504n中的關(guān)聯(lián)CE計(jì)數(shù)器是否具有滿足(例如超過)CE閾值的值。響應(yīng)于在塊608和610的否定確定,PEPP202執(zhí)行的處理結(jié)束于塊614。然而響應(yīng)于PEPP202確定芯片禁用字段502a-502n中的關(guān)聯(lián)芯片禁用字段被設(shè)置或者CE計(jì)數(shù)器504a-504n中的關(guān)聯(lián)CE計(jì)數(shù)器具有滿足CE閾值的值,PEPP202修改讀取存儲(chǔ)器訪問請(qǐng)求(例如通過重置PEDPE位207)以對(duì)于存儲(chǔ)器訪問請(qǐng)求而禁止后置錯(cuò)誤檢測(cè)處理。隨后,圖6中描繪的過程結(jié)束于塊614。
[0050]現(xiàn)在參照?qǐng)D7,給出圖示響應(yīng)于讀取存儲(chǔ)器訪問請(qǐng)求從存儲(chǔ)器緩沖器134向處理器芯104傳達(dá)存儲(chǔ)器塊和關(guān)聯(lián)控制信號(hào)的時(shí)序圖。在描繪的實(shí)施例中,存儲(chǔ)器緩沖器134在例如各自32字節(jié)的四個(gè)顆粒(或者節(jié)拍(beat)) 700、702、704和706中傳達(dá)可以具有例如128字節(jié)的大小的存儲(chǔ)器塊。存儲(chǔ)器緩沖器134在ECC校驗(yàn)電路312執(zhí)行的后置錯(cuò)誤檢測(cè)處理之前傳輸?shù)谝活w粒700,第一顆粒700優(yōu)選地包括處理器芯104的加載型指令原先請(qǐng)求的關(guān)鍵字(例如8字節(jié))。根據(jù)在存儲(chǔ)器子系統(tǒng)內(nèi)和在系統(tǒng)織構(gòu)130運(yùn)用的接口和存儲(chǔ)器技術(shù)以及調(diào)度考慮,請(qǐng)求處理器芯104可以比最后顆粒706顯著更早接收第一顆粒700而居間間隔總計(jì)為目標(biāo)存儲(chǔ)器塊的總存儲(chǔ)器訪問延時(shí)的10%或者更多(例如在300個(gè)處理器芯時(shí)鐘周期的總存儲(chǔ)器訪問延時(shí)之中的40個(gè)處理器芯時(shí)鐘周期)。作為結(jié)果,允許請(qǐng)求處理器芯104在處理器芯104接收到最后數(shù)據(jù)顆粒706之前投機(jī)地執(zhí)行依賴于存儲(chǔ)器塊的一個(gè)或者多個(gè)指令,并且如以下討論的那樣,甚至在處理器芯104接收到最后數(shù)據(jù)顆粒706之前投機(jī)地完成請(qǐng)求存儲(chǔ)器塊的加載型指令和依賴于目標(biāo)存儲(chǔ)器塊的指令中的零個(gè)或者多個(gè)指令。(注意圖7圖示如下具體實(shí)施例,在該具體實(shí)施例中,在顆粒704與706之間的時(shí)間間隔比在顆粒702-704之間的時(shí)間間隔顯著更長,因?yàn)镋CC和CRC校驗(yàn)僅延遲最后顆粒706。)
[0051]在描繪的實(shí)施例中,顆粒700-706中的每個(gè)顆粒的數(shù)據(jù)傳送包括控制信息,該控制信息包括后置狀態(tài)指示符710和數(shù)據(jù)錯(cuò)誤指示符712。確立可以在數(shù)據(jù)傳送內(nèi)實(shí)施為單個(gè)位的后置狀態(tài)指示符710,以指示顆粒700-706中的關(guān)聯(lián)顆粒屬于受到后置數(shù)據(jù)錯(cuò)誤處理的存儲(chǔ)器塊。確立也可以在數(shù)據(jù)傳送內(nèi)實(shí)施為單個(gè)位的數(shù)據(jù)錯(cuò)誤指示符712,以指示在存儲(chǔ)器塊中檢測(cè)到錯(cuò)誤。在一個(gè)實(shí)施例中,解確立用于除了最后數(shù)據(jù)可能706之外的數(shù)據(jù)可能700、702和704中的每個(gè)數(shù)據(jù)顆粒的數(shù)據(jù)錯(cuò)誤指示符712,并且最后數(shù)據(jù)顆粒706的數(shù)據(jù)錯(cuò)誤指示符712用來指示相關(guān)ECC校驗(yàn)電路312或者CRC檢測(cè)器222是否在目標(biāo)存儲(chǔ)器塊內(nèi)檢測(cè)到數(shù)據(jù)錯(cuò)誤。響應(yīng)于數(shù)據(jù)錯(cuò)誤指示符712被重置用于指示不存在數(shù)據(jù)錯(cuò)誤,處理器芯104向處理器芯104的有架構(gòu)狀態(tài)交付加載型指令和投機(jī)地執(zhí)行的依賴指令的執(zhí)行結(jié)果。然而如果數(shù)據(jù)錯(cuò)誤指示符712被設(shè)置用于指示在存儲(chǔ)器塊中檢測(cè)到數(shù)據(jù)錯(cuò)誤,則處理器芯104刷新(flush)加載型指令和投機(jī)地執(zhí)行的依賴指令以及任何關(guān)聯(lián)執(zhí)行結(jié)果并且重新執(zhí)行指令。處理器芯104優(yōu)選地隨著指示禁用數(shù)據(jù)錯(cuò)誤投機(jī)向L2高速緩存120發(fā)送通過重新執(zhí)行加載型指令而生成的讀取存儲(chǔ)器訪問請(qǐng)求(例如見圖4的塊420)。
[0052]在前文討論中,已經(jīng)描述用于通過應(yīng)用后置錯(cuò)誤檢測(cè)處理來減少處理器芯104讀取從系統(tǒng)存儲(chǔ)器140供應(yīng)的數(shù)據(jù)的有效存儲(chǔ)器訪問延時(shí)的技術(shù)。如現(xiàn)在參照?qǐng)D8-13描述的那樣,可以通過允許處理器芯140中的數(shù)據(jù)錯(cuò)誤投機(jī)并且進(jìn)一步通過允許處理器芯140投機(jī)地完成指令執(zhí)行來擴(kuò)展后置錯(cuò)誤檢測(cè)處理的益處。然而應(yīng)當(dāng)理解,可以與這里描述的后置錯(cuò)誤檢測(cè)處理獨(dú)立地運(yùn)用用于投機(jī)地完成指令執(zhí)行的技術(shù)。
[0053]現(xiàn)在參照?qǐng)D8,描繪根據(jù)一個(gè)實(shí)施例的來自圖1的處理器芯104的一部分的更具體視圖。如圖1中先前所示,ISU106包括GCT105,并且LSU108除了多級(jí)執(zhí)行流水線800之外還包括LI高速緩存110和LMQ112。在描繪的實(shí)施例中,ISU106的GCT105包括完成邏輯和多個(gè)表?xiàng)l目802,每個(gè)表?xiàng)l目跟蹤處理器芯104執(zhí)行的多個(gè)指令組中的相應(yīng)指令組,直至通過向處理器芯104的有架構(gòu)狀態(tài)(例如有架構(gòu)寄存器和狀態(tài)機(jī))交付執(zhí)行結(jié)果來完成(也稱為“引退”)該指令組內(nèi)的指令。
[0054]在描繪的實(shí)施例中,每個(gè)表?xiàng)l目802包括用于對(duì)于每個(gè)指令組內(nèi)的指令跟蹤數(shù)據(jù)錯(cuò)誤投機(jī)的LMQ矢量804以及用于跟蹤指令組的指令I(lǐng)D和指令組的完成依賴于的其它條件(例如分支投機(jī))的狀態(tài)的附加狀態(tài)節(jié)段808。每個(gè)LMQ矢量804包括各自與LMQ112中的N (例如32)個(gè)條目中的相應(yīng)條目對(duì)應(yīng)的多個(gè)LMQ位806。因此,LMQ矢量804中的第一位對(duì)應(yīng)于被指派LMQ標(biāo)簽“ I ”的LMQ條目820,LMQ矢量804中的第二位對(duì)應(yīng)于被指派LMQ標(biāo)簽“2”的LMQ條目820,等等。響應(yīng)于加載型指令指示的加載操作在LI高速緩存110中未命中,向加載型指令分配LMQ條目820,并且響應(yīng)于向LMQl 12返回目標(biāo)存儲(chǔ)器塊來取消分配LMQ條目820。
[0055]GCT105由取消分配總線822耦合到LMQl 12,GCT105通過該消分配總線從LMQl 12接收取消分配報(bào)告。此外,GCT105由完成總線824耦合到LSU108的執(zhí)行流水線800 (并且由其它未圖示的完成總線耦合到處理器芯104的其它執(zhí)行單元的執(zhí)行流水線),GCT105通過該完成總線接收標(biāo)識(shí)執(zhí)行已經(jīng)完成的指令的完成報(bào)告。如以下討論的那樣,LSU108執(zhí)行的至少加載型指令的完成報(bào)告可以是投機(jī)的,因?yàn)榭梢栽谙騆SU108返回加載型指令的完成目標(biāo)存儲(chǔ)器塊之前發(fā)送完成報(bào)告。
[0056]仍然參照?qǐng)D8,LSU108由派發(fā)總線826耦合到ISU106,LSU108的執(zhí)行流水線800通過該派發(fā)總線接收存儲(chǔ)器訪問指令以用于執(zhí)行。在描繪的實(shí)施例中,執(zhí)行流水線800包括指令處理電路裝置的多級(jí),這些級(jí)例如包括解碼級(jí)830、地址計(jì)算級(jí)832和完成級(jí)834。在這一示例中,完成級(jí)834是在LSU108內(nèi)執(zhí)行加載型和存儲(chǔ)型指令的最后級(jí)。如以下描述的那樣,不同于常規(guī)設(shè)計(jì)(在這些常規(guī)設(shè)計(jì)中,加載型指令響應(yīng)于LI高速緩存110中的未命中而止步于完成級(jí)834直至向LSU108返回加載型指令的目標(biāo)存儲(chǔ)器塊),GCT105使LSU108能夠投機(jī)地完成加載型指令并且在從返回完成目標(biāo)存儲(chǔ)器塊之前從完成級(jí)834去除它們,從而釋放完成級(jí)834的資源用于由相同和/或其它線程中的其它指令使用。
[0057]現(xiàn)在參照?qǐng)D9,圖示根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,LMQ112通過該過程處置讀取存儲(chǔ)器訪問操作的目標(biāo)存儲(chǔ)器塊的返回。該過程始于塊900,然后繼續(xù)至塊902,該塊描繪LMQl 12在LI高速緩存110中未命中時(shí)等待返回響應(yīng)于被分配LMQ條目820的加載型指令在系統(tǒng)織構(gòu)130上發(fā)起的讀取存儲(chǔ)器訪問操作的目標(biāo)存儲(chǔ)器塊的第一節(jié)拍(例如圖7的第一顆粒700)。響應(yīng)于從L2高速緩存120接收到讀取存儲(chǔ)器訪問操作的目標(biāo)存儲(chǔ)器塊的第一顆粒,LMQl 12在塊904確定是否系統(tǒng)存儲(chǔ)器140或者從L2高速緩存120供應(yīng)目標(biāo)存儲(chǔ)器塊??梢岳缤ㄟ^參考本地L2高速緩存120基于從系統(tǒng)織構(gòu)130上的讀取存儲(chǔ)器訪問操作收集的信息向數(shù)據(jù)顆粒追加的存儲(chǔ)器源位來進(jìn)行在塊904處所示的確定。響應(yīng)于在塊904處的從系統(tǒng)存儲(chǔ)器140供應(yīng)存儲(chǔ)器塊的確定,該過程傳向以下描述的塊908。然而如果LMQl 12在塊904確定從系統(tǒng)存儲(chǔ)器140供應(yīng)存儲(chǔ)器塊,則該過程從塊904繼續(xù)塊906。
[0058]塊906圖示LMQ112確定向請(qǐng)求目標(biāo)存儲(chǔ)器塊的加載型指令分配哪個(gè)LMQ條目820,并且設(shè)置該LMQ條目820內(nèi)的存儲(chǔ)器源位以指示從系統(tǒng)存儲(chǔ)器140供應(yīng)目標(biāo)存儲(chǔ)器塊。該過程從塊906繼續(xù)至塊908,該塊描繪LMQl 12向LSU108的執(zhí)行流水線800的完成級(jí)834轉(zhuǎn)發(fā)存儲(chǔ)器塊的第一數(shù)據(jù)顆粒的關(guān)鍵數(shù)據(jù)字(例如8字節(jié))。此外,如在塊910所示,LMQ112在LI高速緩存110內(nèi)安裝第一數(shù)據(jù)顆粒和目標(biāo)存儲(chǔ)器塊的每個(gè)后繼數(shù)據(jù)顆粒,從而實(shí)現(xiàn)依賴于目標(biāo)存儲(chǔ)器塊的指令調(diào)用的對(duì)LI高速緩存110的訪問,以開始執(zhí)行并且在LI高速緩存110中命中。關(guān)于塊908和910,應(yīng)當(dāng)注意,在用后置錯(cuò)誤檢測(cè)處理從系統(tǒng)存儲(chǔ)器140供應(yīng)存儲(chǔ)器塊的情況下,向完成級(jí)834供應(yīng)的關(guān)鍵數(shù)據(jù)字和在LI高速緩存110中安裝的目標(biāo)存儲(chǔ)器塊的顆粒是投機(jī)的。
[0059]如在塊920所示,一旦接收到目標(biāo)存儲(chǔ)器塊的所有節(jié)拍,LMQl 12然后在塊922-950確定是否可以取消分配向請(qǐng)求目標(biāo)存儲(chǔ)器塊的加載型指令分配的LMQ條目820以及向GCT105發(fā)送什么類型的取消分配報(bào)告。具體而言,LMQl 12在塊922確定目標(biāo)存儲(chǔ)器塊是否源自系統(tǒng)存儲(chǔ)器140。如果不是,則接收的目標(biāo)存儲(chǔ)器塊為非投機(jī),并且LMQ112相應(yīng)地經(jīng)由取消分配總線822向GCT105傳輸取消分配報(bào)告,該取消分配報(bào)告包括相關(guān)LMQ條目820的LMQ標(biāo)簽和確立的“數(shù)據(jù)良好”指示。LMQ122還取消分配LMQ條目820,從而釋放它用于向另一加載型指令分配(塊942)。隨后,圖9中所示過程終止于塊950。
[0060]回到塊922,如果LMQl 12確定目標(biāo)存儲(chǔ)器塊源自系統(tǒng)存儲(chǔ)器140之一,則LMQl 12還在塊924例如通過參考隨著目標(biāo)存儲(chǔ)器塊的最后數(shù)據(jù)顆粒(例如圖7的數(shù)據(jù)顆粒706)傳輸?shù)臄?shù)據(jù)錯(cuò)誤指示符712來確定目標(biāo)存儲(chǔ)器塊是否包含數(shù)據(jù)錯(cuò)誤。如果不是,則該過程傳向如以上描述的塊940、942和950。然而響應(yīng)于在塊924確定目標(biāo)存儲(chǔ)器塊是否包含數(shù)據(jù)錯(cuò)誤,LMQl 12使LI高速緩存110中的目標(biāo)存儲(chǔ)器塊的所有顆粒無效(塊930)。此外,在塊932,LMQl 12經(jīng)由取消分配總線822向GCT105傳輸報(bào)告,該報(bào)告包括相關(guān)LMQ條目820的LMQ標(biāo)簽和取消確立的“數(shù)據(jù)良好”指示(即數(shù)據(jù)錯(cuò)誤指示)(塊932)。然而在一個(gè)實(shí)施例中,LMQl 12未取消分配LMQ條目820、但是代之以保持LMQ條目820的分配以有助于重新發(fā)出讀取存儲(chǔ)器訪問操作。在塊932之后,圖9中所示過程終止于塊950。
[0061]現(xiàn)在參照?qǐng)D10,描繪根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,LSU108的完成級(jí)834通過該過程向GCT105報(bào)告完成加載型指令。該過程始于塊1000、然后繼續(xù)至塊1002,該塊圖示LSU108的完成級(jí)834等待接收加載型指令請(qǐng)求的目標(biāo)存儲(chǔ)器塊的關(guān)鍵數(shù)據(jù)字。響應(yīng)于在完成級(jí)834接收加載型指令請(qǐng)求的關(guān)鍵數(shù)據(jù)字,完成級(jí)834在塊1004例如通過用關(guān)鍵數(shù)據(jù)字參考LMQl 12提供的存取器源位來確定關(guān)鍵數(shù)據(jù)字是否由系統(tǒng)存儲(chǔ)器140之一供應(yīng)。如果不是,則該過程以下描述的繼續(xù)塊1010。響應(yīng)于確定關(guān)鍵數(shù)據(jù)字是由系統(tǒng)存儲(chǔ)器140之一供應(yīng)的(并且因此可能包含數(shù)據(jù)錯(cuò)誤),完成級(jí)834向GCT發(fā)送用于加載型指令的完成報(bào)告,該完成報(bào)告通過加載型指令的指令I(lǐng)D標(biāo)識(shí)加載型指令并且通過向加載型指令分配的LMQ條目820的LMQ標(biāo)簽標(biāo)識(shí)LMQ條目。如以下進(jìn)一步描述的那樣,LMQ標(biāo)簽用來發(fā)起GCT105跟蹤加載型指令和所有依賴指令用于檢測(cè)數(shù)據(jù)錯(cuò)誤。隨后,LSU108從指令流水線800去除加載型指令,從而指令流水線800未保持關(guān)于加載型指令的信息(塊1008)。在塊1008之后,圖10中所示過程結(jié)束于塊1020。
[0062]現(xiàn)在參照塊1010,對(duì)于關(guān)鍵數(shù)據(jù)字不是源自系統(tǒng)存儲(chǔ)器140之一的加載型指令,完成級(jí)834例如通過確定加載型指令從LI高速緩存110接收它的關(guān)鍵數(shù)據(jù)字并向加載型指令分配的LMQ條目820讓它的存儲(chǔ)器源位被設(shè)置用于指示目標(biāo)存儲(chǔ)區(qū)塊是由系統(tǒng)存儲(chǔ)器140之一向LI高速緩存110供應(yīng)來確定加載型指令是否依賴于仍然投機(jī)的(即用后置錯(cuò)誤檢測(cè)處理供應(yīng)的)目標(biāo)存儲(chǔ)器塊。響應(yīng)于在塊1010的肯定確定,該過程繼續(xù)已經(jīng)描述的塊1006和1008。然而如果完成級(jí)834在塊1010進(jìn)行否定確定,則加載型指令未受到數(shù)據(jù)錯(cuò)誤投機(jī),并且完成級(jí)834相應(yīng)地向GCT105發(fā)送完成報(bào)告而未指定LMQ標(biāo)簽。在塊1012之后,圖10中所不過程結(jié)束于塊1020。
[0063]應(yīng)當(dāng)理解,圖10中給出的指令完成過程允許可以依賴于由數(shù)據(jù)結(jié)構(gòu)(例如LMQl 12)跟蹤的一個(gè)或者多個(gè)高延時(shí)條件(例如在這一示例中為從系統(tǒng)存儲(chǔ)器140之一返回?cái)?shù)據(jù))的指令(在這一情況下為加載型指令)在解決指令依賴于的條件之前被投機(jī)地完成。通過向GCT105傳遞進(jìn)入數(shù)據(jù)結(jié)構(gòu)的索引(例如LMQ標(biāo)簽)以允許GCT105跟蹤高延時(shí)條件的解決來實(shí)現(xiàn)這一投機(jī)完成。
[0064]現(xiàn)在參照?qǐng)D11,圖示根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT105通過該過程跟蹤完成的加載型指令(包括投機(jī)完成的加載型指令)。該過程始于塊1100、然后繼續(xù)至塊1102,該塊描繪GCT105等待經(jīng)由完成總線824從LSU108的完成級(jí)834接收完成報(bào)告。完成報(bào)告包括加載型指令的指令I(lǐng)D并且如參照?qǐng)D10描述的那樣如果被投機(jī)地完成則將包括有效LMQ標(biāo)簽。響應(yīng)于接收到完成報(bào)告,GCT105在適當(dāng)GCT條目802的狀態(tài)節(jié)段808中標(biāo)記指令為完成(塊1104)。此外,GCT105在塊1106確定完成報(bào)告是否為投機(jī),這在描述的實(shí)施例中包括確定從完成級(jí)834接收的完成報(bào)告是否包括標(biāo)識(shí)LMQ條目820的LMQ標(biāo)簽,該LMQ條目跟蹤尚未完成完全滿足的讀取存儲(chǔ)器訪問操作。響應(yīng)于在塊1106的否定確定,該過程結(jié)束于塊1110。然而如果GCT105在塊1106確定完成報(bào)告為投機(jī),則GCT105在跟蹤投機(jī)地完成的加載型指令的GCT表?xiàng)l目802的LMQ矢量804中設(shè)置LMQ標(biāo)簽標(biāo)識(shí)的LMQ位806。因此,GCT105假設(shè)跟蹤加載型指令的投機(jī)狀態(tài)以使LSU108能夠釋放指令流水線800的向加載型指令分配的資源。在塊1108之后,圖11中所示過程結(jié)束于塊1110。
[0065]現(xiàn)在參照?qǐng)D12,描繪根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT105通過該過程處置LMQ取消分配報(bào)告。該過程始于塊1200、然后繼續(xù)至塊1202,該塊圖示GCT105等待經(jīng)由取消分配總線822從LMQ112接收取消分配報(bào)告。如以上所言,取消分配報(bào)告優(yōu)選地包括相關(guān)LMQ條目820的LMQ標(biāo)簽和指示目標(biāo)存儲(chǔ)器塊是否包含數(shù)據(jù)錯(cuò)誤的“數(shù)據(jù)良好”指示。響應(yīng)于接收到取消分配報(bào)告,GCT105在塊1204確定取消分配報(bào)告是否指示加載型指令的目標(biāo)存儲(chǔ)器塊是否包含數(shù)據(jù)錯(cuò)誤。如果不是,則GCT105清除與在取消分配報(bào)告中指定的LMQ標(biāo)簽對(duì)應(yīng)的LMQ位列806、因此去除依賴于返回非投機(jī)數(shù)據(jù)的任何加載型指令的完成條件。圖12的過程然后結(jié)束于塊1210。然而響應(yīng)于在塊1204確定取消分配報(bào)告的“數(shù)據(jù)良好”指示是指示目標(biāo)存儲(chǔ)器塊包含數(shù)據(jù)錯(cuò)誤(即被取消確立),GCT105標(biāo)記每個(gè)如下表?xiàng)l目802用于在完成時(shí)刷新,對(duì)于該表?xiàng)l目設(shè)置與在取消分配報(bào)告中包含的LMQ標(biāo)簽對(duì)應(yīng)的LMQ位806。因此,GCT105保證如果檢測(cè)到數(shù)據(jù)錯(cuò)誤則刷新被執(zhí)行后置數(shù)據(jù)錯(cuò)誤處理的加載型指令而不是向處理器芯104的有架構(gòu)狀態(tài)交付。在塊1208之后,圖12的過程結(jié)束于塊1210。
[0066]現(xiàn)在參照?qǐng)D13,描繪根據(jù)一個(gè)實(shí)施例的示例過程的高級(jí)邏輯流程圖,GCT105通過該過程完成指令組。該過程始于塊1300,然后繼續(xù)至塊1302,該塊圖示GCT105選擇最舊表?xiàng)l目820用于處理。在塊1304,GCT105確定選擇的表?xiàng)l目802是否具有防止由選擇的表?xiàng)l目802跟蹤的指令組被處理完成的任何剩余條件(包括LMQ矢量804中的任何設(shè)置的LMQ位806)。如果是這樣,則該過程結(jié)束于塊1320。
[0067]回到塊1304,響應(yīng)于確定選擇的表?xiàng)l目802沒有防止由選擇的表?xiàng)l目802跟蹤的指令組被處理完成的任何剩余條件,GCT105在塊1306確定選擇的表?xiàng)l目802是否被標(biāo)記刷新。如果不是,則GCT105通過向處理器芯104的有架構(gòu)狀態(tài)交付在選擇的表?xiàng)l目802跟蹤的指令組內(nèi)的所有指令的執(zhí)行結(jié)果來完成那些指令。隨后,圖13中所示過程結(jié)束于塊1320。然而如果在選擇的表?xiàng)l目802跟蹤的指令組內(nèi)的一個(gè)或者多個(gè)指令被標(biāo)記刷新,則GCT105刷新與選擇的表?xiàng)l目802對(duì)應(yīng)的指令并且丟棄所有有關(guān)執(zhí)行結(jié)果。隨后,ISU106重新發(fā)出刷新的指令用于執(zhí)行而數(shù)據(jù)錯(cuò)誤投機(jī)被禁用(塊1314)。圖13的過程然后結(jié)束于塊1320。
[0068]應(yīng)當(dāng)注意,參照?qǐng)D9-13公開的技術(shù)不限于應(yīng)用于后置錯(cuò)誤檢測(cè)處理由存儲(chǔ)器子系統(tǒng)執(zhí)行的加載型指令的投機(jī)完成。取而代之,公開的技術(shù)一般適用于并且支持與數(shù)據(jù)結(jié)構(gòu)跟蹤的長延時(shí)操作關(guān)聯(lián)的任何指令的投機(jī)完成。
[0069]圖14是在半導(dǎo)體設(shè)計(jì)、制造和/或測(cè)試中使用的設(shè)計(jì)過程的流程圖。圖14示出了例如在半導(dǎo)體IC邏輯設(shè)計(jì)、仿真、測(cè)試、布圖和制造中使用的示例性設(shè)計(jì)流程1400的方塊圖。設(shè)計(jì)流程1400包括用于處理設(shè)計(jì)結(jié)構(gòu)或器件以產(chǎn)生上述的設(shè)計(jì)結(jié)構(gòu)和/或器件的邏輯上或其他功能上等效表示的過程、機(jī)器和/或機(jī)制。由設(shè)計(jì)流程1400處理和/或產(chǎn)生的設(shè)計(jì)結(jié)構(gòu)可以在機(jī)器可讀傳輸或存儲(chǔ)介質(zhì)上被編碼以包括數(shù)據(jù)和/或指令,所述數(shù)據(jù)和/或指令在數(shù)據(jù)處理系統(tǒng)上執(zhí)行或以其他方式處理時(shí),產(chǎn)生硬件組件、電路、器件或系統(tǒng)的邏輯上、結(jié)構(gòu)上、機(jī)械上或其他功能上的等效表示。機(jī)器包括但不限于用于IC設(shè)計(jì)過程(例如設(shè)計(jì)、制造或仿真電路、組件、器件或系統(tǒng))的任何機(jī)器。例如,機(jī)器可以包括:用于產(chǎn)生掩模的光刻機(jī)、機(jī)器和/或設(shè)備(例如電子束直寫儀)、用于仿真設(shè)計(jì)結(jié)構(gòu)的計(jì)算機(jī)或設(shè)備、用于制造或測(cè)試過程的任何裝置,或用于將所述設(shè)計(jì)結(jié)構(gòu)的功能上的等效表示編程到任何介質(zhì)中的任何機(jī)器(例如,用于對(duì)可編程門陣列進(jìn)行編程的機(jī)器)。
[0070]設(shè)計(jì)流程1400可隨被設(shè)計(jì)的表示類型而不同。例如,用于構(gòu)建專用IC (ASIC)的設(shè)計(jì)流程1400可能不同于用于設(shè)計(jì)標(biāo)準(zhǔn)組件的設(shè)計(jì)流程1400,或不同于用于將設(shè)計(jì)實(shí)例化到可編程陣列(例如,由Altera? inc.或Xilinx? inc.提供的可編程門陣列(PGA)或現(xiàn)場(chǎng)可編程門陣列(FPGA))中的設(shè)計(jì)流程1400。
[0071]圖14示出了多個(gè)此類設(shè)計(jì)結(jié)構(gòu),其中包括優(yōu)選地由設(shè)計(jì)過程1410處理的輸入設(shè)計(jì)結(jié)構(gòu)1420。設(shè)計(jì)結(jié)構(gòu)1420可以是由設(shè)計(jì)過程1410生成和處理以產(chǎn)生硬件器件的邏輯上等效的功能表示的邏輯仿真設(shè)計(jì)結(jié)構(gòu)。設(shè)計(jì)結(jié)構(gòu)1420還可以或備選地包括數(shù)據(jù)和/或程序指令,所述數(shù)據(jù)和/或程序指令由設(shè)計(jì)過程1410處理時(shí),生成硬件器件的物理結(jié)構(gòu)的功能表示。無論表示功能和/或結(jié)構(gòu)設(shè)計(jì)特性,均可以使用例如由核心開發(fā)人員/設(shè)計(jì)人員實(shí)施的電子計(jì)算機(jī)輔助設(shè)計(jì)(ECAD)生成設(shè)計(jì)結(jié)構(gòu)1420。當(dāng)編碼在機(jī)器可讀數(shù)據(jù)傳輸、門陣列或存儲(chǔ)介質(zhì)上時(shí),設(shè)計(jì)結(jié)構(gòu)1420可以由設(shè)計(jì)過程1410內(nèi)的一個(gè)或多個(gè)硬件和/或軟件模塊訪問和處理以仿真或以其他方式在功能上表示上面描述的那些電子組件、電路、電子或邏輯模塊、裝置、器件或系統(tǒng)。因此,設(shè)計(jì)結(jié)構(gòu)1420可以包括文件或其他數(shù)據(jù)結(jié)構(gòu),其中包括人類和/或機(jī)器可讀源代碼、編譯結(jié)構(gòu)和計(jì)算機(jī)可執(zhí)行代碼結(jié)構(gòu),當(dāng)所述文件或其他數(shù)據(jù)結(jié)構(gòu)由設(shè)計(jì)或仿真數(shù)據(jù)處理系統(tǒng)處理時(shí),在功能上仿真或以其他方式表示電路或其他級(jí)別的硬件邏輯設(shè)計(jì)。此類數(shù)據(jù)結(jié)構(gòu)可以包括硬件描述語言(HDL)設(shè)計(jì)實(shí)體或遵循和/或兼容低級(jí)HDL設(shè)計(jì)語言(例如Verilog和VHDL)和/或高級(jí)設(shè)計(jì)語言(例如C或C++)的其他數(shù)據(jù)結(jié)構(gòu)。
[0072]設(shè)計(jì)過程1410優(yōu)選地采用和結(jié)合硬件和/或軟件模塊,所述模塊用于合成、轉(zhuǎn)換或以其他方式處理上面描述的組件、電路、器件或邏輯結(jié)構(gòu)的設(shè)計(jì)/仿真功能等價(jià)物以生成可以包含設(shè)計(jì)結(jié)構(gòu)(例如設(shè)計(jì)結(jié)構(gòu)1420)的網(wǎng)表1480。網(wǎng)表1480例如可以包括編譯或以其他方式處理的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)表示描述與集成電路設(shè)計(jì)中的其他元件和電路的連接的線纜、分離組件、邏輯門、控制電路、I/O設(shè)備、模型等的列表。網(wǎng)表1480可以使用迭代過程合成,其中網(wǎng)表1480被重新合成一次或多次,具體取決于器件的設(shè)計(jì)規(guī)范和參數(shù)。對(duì)于在此所述的其他設(shè)計(jì)結(jié)構(gòu)類型,網(wǎng)表1480可以記錄在機(jī)器可讀數(shù)據(jù)存儲(chǔ)介質(zhì)上或編程到可編程門陣列中。所述介質(zhì)可以是非易失性存儲(chǔ)介質(zhì),例如磁或光盤驅(qū)動(dòng)器、可編程門陣列、壓縮閃存或其他閃存。此外或備選地,所述介質(zhì)可以是可在其上經(jīng)由因特網(wǎng)或其他適合聯(lián)網(wǎng)手段傳輸和中間存儲(chǔ)數(shù)據(jù)分組的系統(tǒng)或高速緩沖存儲(chǔ)器、緩沖器空間或?qū)щ娀蚬鈱?dǎo)器件和材料。
[0073]設(shè)計(jì)過程1410可以包括用于處理包括網(wǎng)表1480在內(nèi)的各種輸入數(shù)據(jù)結(jié)構(gòu)類型的硬件和軟件模塊。此類數(shù)據(jù)結(jié)構(gòu)類型例如可以駐留在庫元件1430內(nèi)并包括一組常用元件、電路和器件,其中包括給定制造技術(shù)(例如,不同的技術(shù)節(jié)點(diǎn),32納米、45納米、90納米等)的模型、布圖和符號(hào)表示。所述數(shù)據(jù)結(jié)構(gòu)類型還可包括設(shè)計(jì)規(guī)范1440、特征數(shù)據(jù)1450、檢驗(yàn)數(shù)據(jù)1460、設(shè)計(jì)規(guī)則1470和測(cè)試數(shù)據(jù)文件1485,它們可以包括輸入測(cè)試模式、輸出測(cè)試結(jié)果和其他測(cè)試信息。設(shè)計(jì)過程1410還可例如包括標(biāo)準(zhǔn)機(jī)械設(shè)計(jì)過程,例如用于諸如鑄造、成型和模壓成形等操作的應(yīng)力分析、熱分析、機(jī)械事件仿真、過程仿真。機(jī)械設(shè)計(jì)領(lǐng)域的技術(shù)人員可以在不偏離本發(fā)明的范圍和精神的情況下理解在設(shè)計(jì)過程1410中使用的可能機(jī)械設(shè)計(jì)工具和應(yīng)用的范圍。設(shè)計(jì)過程1410還可包括用于執(zhí)行諸如定時(shí)分析、檢驗(yàn)、設(shè)計(jì)規(guī)則檢查、放置和路由操作之類的標(biāo)準(zhǔn)電路設(shè)計(jì)過程的模塊。
[0074]設(shè)計(jì)過程1410采用和結(jié)合邏輯和物理設(shè)計(jì)工具(例如HDL編譯器)以及仿真建模工具以便與任何其他機(jī)械設(shè)計(jì)或數(shù)據(jù)(如果適用)一起處理設(shè)計(jì)結(jié)構(gòu)1420連同示出的部分或全部支持?jǐn)?shù)據(jù)結(jié)構(gòu),從而生成第二設(shè)計(jì)結(jié)構(gòu)1490。設(shè)計(jì)結(jié)構(gòu)1490以用于機(jī)械設(shè)備和結(jié)構(gòu)的數(shù)據(jù)交換的數(shù)據(jù)格式(例如以IGES、DXF、Parasolid XT、JT、DRC或任何其他用于存儲(chǔ)或呈現(xiàn)此類機(jī)械設(shè)計(jì)結(jié)構(gòu)的適合格式)駐留在存儲(chǔ)介質(zhì)或可編程門陣列上。類似于設(shè)計(jì)結(jié)構(gòu)1420,設(shè)計(jì)結(jié)構(gòu)1490優(yōu)選地包括一個(gè)或多個(gè)文件、數(shù)據(jù)結(jié)構(gòu)或其他計(jì)算機(jī)編碼的數(shù)據(jù)或指令,它們駐留在傳輸或數(shù)據(jù)存儲(chǔ)介質(zhì)上,并且由ECAD系統(tǒng)處理時(shí)生成上面描述的本發(fā)明的一個(gè)或多個(gè)實(shí)施例的邏輯上或以其他方式在功能上等效的形式。在一個(gè)實(shí)施例中,設(shè)計(jì)結(jié)構(gòu)1490可以包括在功能上仿真上面描述的器件的編譯后的可執(zhí)行HDL仿真模型。
[0075]設(shè)計(jì)結(jié)構(gòu)1490還可以采用用于集成電路的布圖數(shù)據(jù)交換的數(shù)據(jù)格式和/或符號(hào)數(shù)據(jù)格式(例如以⑶SII (⑶S2)、GLU OASIS、圖文件或任何其他用于存儲(chǔ)此類設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的適合格式存儲(chǔ)的信息)。設(shè)計(jì)結(jié)構(gòu)1490可以包括信息,例如符號(hào)數(shù)據(jù)、圖文件、測(cè)試數(shù)據(jù)文件、設(shè)計(jì)內(nèi)容文件、制造數(shù)據(jù)、布圖參數(shù)、線纜、金屬級(jí)別、通孔、形狀、用于在整個(gè)生產(chǎn)線中路由的數(shù)據(jù),以及制造商或其他設(shè)計(jì)人員/開發(fā)人員制造上述的器件或結(jié)構(gòu)所需的任何其他數(shù)據(jù)。設(shè)計(jì)結(jié)構(gòu)1490然后可以繼續(xù)到階段1495,例如,在階段1495,設(shè)計(jì)結(jié)構(gòu)1490:繼續(xù)到流片(tape-out),被發(fā)布到制造公司、被發(fā)布到掩模室(mask house)、被發(fā)送到其他設(shè)計(jì)室,被發(fā)回給客戶等。
[0076]如已經(jīng)描述的那樣,在一種數(shù)據(jù)處理系統(tǒng)的至少一個(gè)實(shí)施例中,至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型,在相對(duì)于對(duì)存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間進(jìn)行選擇。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第一定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第二定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理,向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
[0077]在一種數(shù)據(jù)處理系統(tǒng)的至少一個(gè)實(shí)施例中,至少基于存儲(chǔ)器子系統(tǒng)中的先前檢測(cè)到的錯(cuò)誤的地址,在相對(duì)于對(duì)存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間進(jìn)行選擇。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第一定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前,向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。響應(yīng)于接收到存儲(chǔ)器訪問請(qǐng)求并且選擇第二定時(shí),在對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理,向請(qǐng)求器傳輸來自目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
[0078]在處理器芯中,在與處理器芯的執(zhí)行單元關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的條目中跟蹤高延時(shí)操作。在執(zhí)行單元中,在完成高延時(shí)操作之前,投機(jī)地完成執(zhí)行依賴于由數(shù)據(jù)結(jié)構(gòu)的條目跟蹤的高延時(shí)操作的指令。投機(jī)地完成指令包括向處理器芯的完成邏輯報(bào)告條目的標(biāo)識(shí)符并且從執(zhí)行單元的執(zhí)行流水線去除指令。完成邏輯記錄指令對(duì)高延時(shí)操作的依賴并且僅在成功完成高延時(shí)操作之后向處理器的有架構(gòu)狀態(tài)交付指令的執(zhí)行結(jié)果。
[0079]盡管已經(jīng)如參照優(yōu)選實(shí)施例描述的那樣具體示出各種實(shí)施例,但是本領(lǐng)域技術(shù)人員將理解可以在其中進(jìn)行形式和細(xì)節(jié)上的各種改變而未脫離權(quán)利要求的精神實(shí)質(zhì)和范圍。例如雖然已經(jīng)關(guān)于對(duì)本發(fā)明的功能進(jìn)行指引的計(jì)算機(jī)系統(tǒng)描述方面,但是應(yīng)當(dāng)理解,可以備選地實(shí)施本發(fā)明為包括計(jì)算機(jī)可讀存儲(chǔ)設(shè)備(例如易失性或者非易失性存儲(chǔ)器、光盤或者磁盤或者其它法定制造)的程序產(chǎn)品,該計(jì)算機(jī)可讀存儲(chǔ)設(shè)備存儲(chǔ)可以由數(shù)據(jù)處理系統(tǒng)執(zhí)行的程序代碼。另外定義如這里所用術(shù)語“耦合”涵蓋運(yùn)用在耦合的單元或者塊之間的直接電連接的實(shí)施例以及運(yùn)用在耦合的單元或者塊之間的使用一個(gè)或者多個(gè)居間單元或者塊而實(shí)現(xiàn)的間接電連接的實(shí)施例。此外,這里定義術(shù)語“示例”為意味著特征的一個(gè)示例而未必是最佳或者優(yōu)選示例。
【權(quán)利要求】
1.一種數(shù)據(jù)處理方法,包括: 至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型,在相對(duì)于對(duì)所述存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間選擇; 響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第一定時(shí),在對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù);以及 響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第二定時(shí),在對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理,向所述請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中所述選擇包括對(duì)于如下存儲(chǔ)器訪問請(qǐng)求選擇所述第一定時(shí),該存儲(chǔ)器訪問請(qǐng)求是包括通過執(zhí)行加載型指令而生成的需求數(shù)據(jù)加載請(qǐng)求和數(shù)據(jù)預(yù)取請(qǐng)求的集合中的請(qǐng)求。
3.根據(jù)權(quán)利要求1所述的方法,其中所述選擇包括存儲(chǔ)器子系統(tǒng)在至少所述第一定時(shí)與所述第二定時(shí)之間選擇。
4.根據(jù)權(quán)利要求1所述的方法,其中所述選擇還包括至少基于存儲(chǔ)器子系統(tǒng)中的先前檢測(cè)到的錯(cuò)誤的地址在所述第一定時(shí)與所述第二定時(shí)之間選擇。
5.根據(jù)權(quán)利要求1所述的方法,還包括: 存儲(chǔ)器子系統(tǒng)與所述目標(biāo)存儲(chǔ)器塊關(guān)聯(lián)地發(fā)送相對(duì)于對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)亩〞r(shí)的后置狀態(tài)指示符。
6.根據(jù)權(quán)利要求4所述的方法,還包括基于由所述后置狀態(tài)指示符指示的定時(shí)在處理器芯中處置所述目標(biāo)存儲(chǔ)器·塊。
7.根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第一定時(shí),傳輸指示所述目標(biāo)存儲(chǔ)器塊是否具有數(shù)據(jù)錯(cuò)誤的數(shù)據(jù)錯(cuò)誤指示符。
8.根據(jù)權(quán)利要求7所述的方法,其中: 所述請(qǐng)求器包括處理器芯; 所述方法還包括: 在所述處理器芯中,在接收所述數(shù)據(jù)錯(cuò)誤指示符之前,投機(jī)地完成執(zhí)行依賴于所述目標(biāo)存儲(chǔ)器塊的一個(gè)或者多個(gè)指令; 以及 響應(yīng)于所述數(shù)據(jù)錯(cuò)誤指示符,完成所述一個(gè)或者多個(gè)指令。
9.根據(jù)權(quán)利要求7所述的方法,其中: 傳輸數(shù)據(jù)包括按照間隔傳輸所述目標(biāo)存儲(chǔ)器塊的顆粒;以及 傳輸所述數(shù)據(jù)錯(cuò)誤指示符包括隨著除了第一顆粒之外的所述顆粒之一傳輸所述數(shù)據(jù)錯(cuò)誤指示符。
10.根據(jù)權(quán)利要求1所述的方法,還包括: 響應(yīng)于在所述目標(biāo)存儲(chǔ)器塊中檢測(cè)到錯(cuò)誤,所述請(qǐng)求器重發(fā)所述存儲(chǔ)器訪問請(qǐng)求而所述第一定時(shí)被禁用。
11.一種數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器子系統(tǒng),包括: 錯(cuò)誤檢測(cè)電路;以及耦合到系統(tǒng)存儲(chǔ)器的控制邏輯,其中所述控制邏輯至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型在相對(duì)于由所述錯(cuò)誤檢測(cè)電路對(duì)所述存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間選擇,其中所述控制邏輯響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第一定時(shí)使所述存儲(chǔ)器子系統(tǒng)在由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù),并且其中所述控制邏輯響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第二定時(shí)使所述存儲(chǔ)器子系統(tǒng)在由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理向所述請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
12.根據(jù)權(quán)利要求11所述的存儲(chǔ)器子系統(tǒng),其中所述控制邏輯對(duì)于如下存儲(chǔ)器訪問請(qǐng)求選擇所述第一定時(shí),該存儲(chǔ)器訪問請(qǐng)求是包括通過執(zhí)行加載型指令而生成的需求數(shù)據(jù)加載請(qǐng)求和數(shù)據(jù)預(yù)取請(qǐng)求的集合中的請(qǐng)求。
13.根據(jù)權(quán)利要求11所述的存儲(chǔ)器子系統(tǒng),其中所述存儲(chǔ)器子系統(tǒng)進(jìn)一步至少基于存儲(chǔ)器子系統(tǒng)中的先前檢測(cè)到的錯(cuò)誤的地址在所述第一定時(shí)與所述第二定時(shí)之間選擇。
14.根據(jù)權(quán)利要求11所述的存儲(chǔ)器子系統(tǒng),還包括: 存儲(chǔ)器子系統(tǒng)與所述目標(biāo)存儲(chǔ)器塊關(guān)聯(lián)地發(fā)送相對(duì)于對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)亩〞r(shí)的后置狀態(tài)指示符。
15.根據(jù)權(quán)利要求11所述的存儲(chǔ)器子系統(tǒng),其中所述存儲(chǔ)器子系統(tǒng)響應(yīng)于接收所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第一定時(shí)來傳輸指示所述目標(biāo)存儲(chǔ)器塊是否具有數(shù)據(jù)錯(cuò)誤的數(shù)據(jù)錯(cuò)誤指示符。
16.根據(jù)權(quán)利要求15所述的存儲(chǔ)器子系統(tǒng),其中: 所述存儲(chǔ)器子系統(tǒng) 按照間隔傳輸所述目標(biāo)存儲(chǔ)器塊的顆粒并且隨著除了第一顆粒之外的所述顆粒之一傳輸所述數(shù)據(jù)錯(cuò)誤指示符。
17.一種數(shù)據(jù)處理系統(tǒng),包括: 根據(jù)權(quán)利要求15所述的存儲(chǔ)器子系統(tǒng);以及 耦合到所述存儲(chǔ)器子系統(tǒng)的處理器芯,其中所述處理器芯包括所述請(qǐng)求器。
18.根據(jù)權(quán)利要求17所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器芯基于由所述后置狀態(tài)指示符指示的定時(shí)處置所述目標(biāo)存儲(chǔ)器塊。
19.根據(jù)權(quán)利要求17所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器芯包括: 執(zhí)行單元,在接收到所述數(shù)據(jù)錯(cuò)誤指示符之前投機(jī)地完成執(zhí)行依賴于所述目標(biāo)存儲(chǔ)器塊的一個(gè)或者多個(gè)指令;以及 完成邏輯,響應(yīng)于所述數(shù)據(jù)錯(cuò)誤指示符完成所述一個(gè)或者多個(gè)指令。
20.根據(jù)權(quán)利要求17所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器芯響應(yīng)于所述數(shù)據(jù)錯(cuò)誤指示符指示所述目標(biāo)存儲(chǔ)器塊中的錯(cuò)誤來重發(fā)所述存儲(chǔ)器訪問請(qǐng)求而所述第一定時(shí)被禁用。
21.一種在機(jī)器可讀存儲(chǔ)介質(zhì)中有形地體現(xiàn)的設(shè)計(jì)結(jié)構(gòu),用于設(shè)計(jì)、制造或者測(cè)試集成電路,所述設(shè)計(jì)結(jié)構(gòu)包括: 數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器子系統(tǒng),包括: 錯(cuò)誤檢測(cè)電路;以及 耦合到系統(tǒng)存儲(chǔ)器的控制邏輯,其中所述控制邏輯至少基于存儲(chǔ)器訪問請(qǐng)求的訪問類型在相對(duì)于由所述錯(cuò)誤檢測(cè)電路對(duì)所述存儲(chǔ)器訪問請(qǐng)求的目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理而言的數(shù)據(jù)傳輸?shù)闹辽俚谝欢〞r(shí)與第二定時(shí)之間選擇,其中所述控制邏輯響應(yīng)于接收所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第一定時(shí)使所述存儲(chǔ)器子系統(tǒng)在由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之前向請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù),并且其中所述控制邏輯響應(yīng)于接收到所述存儲(chǔ)器訪問請(qǐng)求并且選擇所述第二定時(shí)使所述存儲(chǔ)器子系統(tǒng)在由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理之后并且響應(yīng)于由所述錯(cuò)誤檢測(cè)電路對(duì)所述目標(biāo)存儲(chǔ)器塊完成錯(cuò)誤檢測(cè)處理向所述請(qǐng)求器傳輸來自所述目標(biāo)存儲(chǔ)器塊的數(shù)據(jù)。
22.根據(jù)權(quán)利要求21所述的設(shè)計(jì)結(jié)構(gòu),其中所述設(shè)計(jì)結(jié)構(gòu)包括:硬件描述語言(HDL)設(shè)計(jì)結(jié)構(gòu) 。
【文檔編號(hào)】G06F11/00GK103823722SQ201310567563
【公開日】2014年5月28日 申請(qǐng)日期:2013年11月14日 優(yōu)先權(quán)日:2012年11月16日
【發(fā)明者】R·A·格諾尼, J·S·多德森, G·L·格思里, W·J·斯塔克, J·A·施蒂切利 申請(qǐng)人:國際商業(yè)機(jī)器公司