專利名稱:通過控制器編程在硬件中映射數(shù)據(jù)掩碼的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及計算機存儲器領(lǐng)域。更具體地,本發(fā)明涉及存儲器數(shù)據(jù)掩碼領(lǐng)域。
背景技術(shù):
典型的計算機系統(tǒng)包括存儲器。存儲器用來保存程序代碼和程序代碼所需的數(shù)據(jù)。存儲器可以包含在一個或多個集成電路板上。典型地,存儲器與存儲控制器連接。存儲控制器和存儲器通過插腳連接在數(shù)據(jù)總線上進行通信。
數(shù)據(jù)掩碼用來防止所選數(shù)據(jù)在存儲器內(nèi)被重寫。因此,存儲控制器可以使用數(shù)據(jù)掩碼來掩蓋特定數(shù)據(jù)以允許局部寫入存儲器。數(shù)據(jù)掩碼位可以與一個或多個數(shù)據(jù)位相關(guān)聯(lián)。關(guān)聯(lián)的數(shù)據(jù)掩碼塊阻止寫入某些特定存儲器位置,允許寫入其它特定存儲器位置。當(dāng)執(zhí)行寫入存儲器時,被掩蓋的存儲器內(nèi)的所選數(shù)據(jù)保持在存儲器內(nèi),而未掩蓋的所選數(shù)據(jù)被新數(shù)據(jù)替換。如果存儲控制器不使用數(shù)據(jù)掩碼,局部存儲器寫入可能花費更長時間。例如,通過讀取整個存儲區(qū)域,把新數(shù)據(jù)并入它,然后回寫整個存儲區(qū)域,存儲控制器可以接近局部寫入。
目前,存儲芯片通過使用單獨的數(shù)據(jù)掩碼位和數(shù)據(jù)插腳實施存儲器數(shù)據(jù)掩碼。這可能大大增加插腳量。增加的插腳量增加成本、包裝尺寸以及某些情況下的芯片尺寸。使用單獨的數(shù)據(jù)掩碼位和數(shù)據(jù)插腳不能用這些映射對寄存器進行編程。
通過參考下面描述和圖解實施方案的附圖,可以最好地理解本發(fā)明的上述實施方案。為了更完整地理解本發(fā)明的實施方案及其優(yōu)點,現(xiàn)在參考下面結(jié)合附圖的描述,其中圖1圖解根據(jù)本發(fā)明一個實施方案的一個典型系統(tǒng),所述系統(tǒng)包括控制器;圖2圖解根據(jù)本發(fā)明一個實施方案的一個轉(zhuǎn)換邏輯實施方案的方框示意圖。
圖3圖解根據(jù)本發(fā)明一個實施方案的寫入轉(zhuǎn)換波形,其中數(shù)據(jù)掩碼組合在數(shù)據(jù)行上。
圖4圖解根據(jù)本發(fā)明一個實施方案的一種方法的流程圖,所述方法在處理器和存儲器之間提供接口的。
圖5圖解根據(jù)本發(fā)明一個實施方案,把數(shù)據(jù)掩碼行組合在數(shù)據(jù)塊行上的轉(zhuǎn)換邏輯的方框示意圖。
圖6圖解根據(jù)本發(fā)明一個實施方案,改變數(shù)據(jù)掩碼對數(shù)據(jù)塊的映射的轉(zhuǎn)換邏輯的方框示意圖。
圖7圖解根據(jù)本發(fā)明一個實施方案,用于存儲控制器本身編程的一種方法的流程圖。
圖8圖解根據(jù)本發(fā)明一個實施方案,數(shù)據(jù)掩碼位具體值實例掩蓋數(shù)據(jù)塊具體實例的表格和方框圖。
圖9圖解根據(jù)本發(fā)明一個實施方案,選擇元件給設(shè)備傳遞多個位的多路復(fù)用器的兩個示例性電路。
圖10圖解根據(jù)本發(fā)明一個實施方案,包括多路復(fù)用器以選擇數(shù)據(jù)掩碼位和數(shù)據(jù)塊之間映射的陣列。
圖11圖解根據(jù)本發(fā)明一個實施方案,從存儲器模塊內(nèi)的串行存在檢測(SPD)線路中獲得數(shù)據(jù)掩碼映射信息的一種方法的流程圖。
圖12圖解根據(jù)本發(fā)明一個實施方案,用于確定存儲器模塊每個存儲級的數(shù)據(jù)掩碼映射方案的一種方法的流程圖。
具體實施例方式
在下面描述中,闡述許多具體細節(jié)以便徹底理解本發(fā)明的實施方案。然而,應(yīng)該理解,沒有這些具體細節(jié)也可以實施這些實施方案。在其它實例中,為了不使本發(fā)明實施方案模糊,沒有詳細說明公知的電路、結(jié)構(gòu)和技術(shù)。
在不同的實施方案中,本發(fā)明可以包括可編程存儲設(shè)備,比如寄存器,以將數(shù)據(jù)掩碼位和數(shù)據(jù)塊之間的映射包含在存儲控制器中,其中數(shù)據(jù)塊可以是任何規(guī)定的數(shù)據(jù)量。
圖1圖解根據(jù)本發(fā)明一個實施方案的典型系統(tǒng)100,該系統(tǒng)包括控制器102、處理器104、存儲器108和存儲總線110,存儲總線110可以包括一個或多個數(shù)據(jù)行,數(shù)據(jù)掩碼組合在數(shù)據(jù)行上。雖然在系統(tǒng)100的情況下進行描述,但在包括任何一個或多個集成電路的任何系統(tǒng)中可以實施本發(fā)明的實施方案。
控制器102可以是芯片組174的一部分,例如也包含I/O控制器中心(hub)(ICH)140和固件中心(hub)(FWH)170??刂破?02、ICH140和FWH170可以各自包括任何適當(dāng)電路,并且對于一個實施方案而言,它們以單獨集成電路芯片的方式實施。對于另一實施方案而言,芯片組174可以包括任何適當(dāng)?shù)囊粋€或多個集成電路器件。
控制器102可以包括任何適當(dāng)?shù)目刂破鹘Y(jié)構(gòu)。在不同實施方案中,根據(jù)本發(fā)明實施方案的系統(tǒng)100可以包括一個或多個控制器,其中任一控制器可以提供接口??刂破?02可以包括任何適當(dāng)接口控制器,給存儲總線110和/或與控制器102通信的任何適當(dāng)設(shè)備或部件提供任何適當(dāng)鏈接。就一個實施方案而言,控制器102可以給每個接口提供適當(dāng)?shù)闹俨谩⒕彌_、以及相關(guān)性管理。
控制器102可以與處理器總線122連接以通過處理器總線122給處理器104提供接口。處理器104可以包括任何適當(dāng)?shù)奶幚砥鹘Y(jié)構(gòu)。在不同實施方案中,計算機系統(tǒng)100可以包括一個或多個處理器104,其中任一處理器可以執(zhí)行根據(jù)本發(fā)明實施方案的一組指令。一個或多個處理器104可以與控制器102一起組合在單獨芯片中。
在一個實施方案中,控制器102可以與ICH140連接以通過中心接口(hub interface)給ICH140提供入口。ICH140可以給計算機系統(tǒng)100的一個或多個I/O設(shè)備或外圍部件提供接口。ICH140可以包括任何適當(dāng)?shù)慕涌诳刂破?,給存儲控制器102和/或與ICH140通信的任何適當(dāng)設(shè)備或部件提供任何適當(dāng)?shù)逆溄?。就一個實施方案而言,ICH140可以給每個接口提供適當(dāng)?shù)闹俨煤途彌_。
對于一個實施方案而言,ICH140可以通過超級I/O控制器150給鍵盤151、鼠標(biāo)152、麥克風(fēng)156、輸入筆(stylus)157、連通一個或多個并行端口153的一個多個適當(dāng)設(shè)備例如打印機、連通一個或多個串行端口154的一個多個適當(dāng)設(shè)備、以及軟盤驅(qū)動器155提供接口。與圖示相比,其它實施方案可以提供更多、更少或不同的設(shè)備和接口。
ICH140可以與FWH170連接以給FWH170提供接口。FWH170可以包括任何適當(dāng)?shù)慕涌诳刂破饕蕴峁┑絀CH140的任何適當(dāng)?shù)耐ㄐ沛溌贰τ谝粋€實施方案而言,F(xiàn)WH170可以至少分享ICH140和超級I/O控制器150之間的部分接口。FWH170可以包括基本輸入/輸出系統(tǒng)(BIOS)存儲器172以保存適當(dāng)?shù)南到y(tǒng)和/或視頻BIOS軟件。BIOS存儲器172可以包括任何適當(dāng)?shù)姆且资Т鎯ζ?,例如閃存。與圖示相比,其它實施方案可以提供更多、更少或不同設(shè)備和接口。
控制器102也可以與存儲器108連接,并且給存儲器108提供接口。存儲器108可以保存例如與計算機系統(tǒng)100一起使用的數(shù)據(jù)和/或代碼。存儲器108可以包括任何適當(dāng)存儲器,例如隨機存取存儲器(“RAM”)或其衍生物、或時序存儲器??刂破?02可以經(jīng)由存儲總線110與存儲器連接。存儲總線110可以包括總線,總線可以包括數(shù)據(jù)線、地址線、控制線或上述線的多重組合。組合在數(shù)據(jù)總線上的數(shù)據(jù)掩碼可以排除對專用數(shù)據(jù)掩碼總線的需要,但可以不必排除對耦合設(shè)備上數(shù)據(jù)掩碼插腳的需要。插腳上的數(shù)據(jù)掩碼位和數(shù)據(jù)塊組合可以減少所需總線數(shù)量。同樣,為了把傳輸?shù)臄?shù)據(jù)掩碼位映射到傳輸?shù)臄?shù)據(jù)塊,可以實施數(shù)據(jù)掩碼映射,它可以是或可以不是完全關(guān)聯(lián)的。
在一個實施方案中,約定可以允許更簡短的數(shù)據(jù)掩碼映射組。例如,它可以是公知的系統(tǒng)規(guī)則,即某一掩碼位將從不映射到另一規(guī)定數(shù)據(jù)位。因此,通過排除那種可能性可以減少系統(tǒng)的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組。作為另一實施例,數(shù)據(jù)掩碼映射可以結(jié)合一個約定,即在數(shù)據(jù)掩碼和數(shù)據(jù)塊之間存在一一對應(yīng)以保持數(shù)據(jù)完整性??梢越M合在數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組中的另一約定是,通過控制器和目標(biāo)(存儲器)可以知道使用的任何數(shù)據(jù)掩碼映射。如圖所示,通過對存儲器廠商的限制或由存儲器廠商加上的限制可以簡化數(shù)據(jù)掩碼映射,沒有上述對存儲器廠商的限制也可以實施本發(fā)明的另一實施方案。
在一個實施方案中,控制器102包括公用區(qū)112。公用區(qū)112可以是線路,其中來自多個信號源的數(shù)據(jù)連接例如緩沖器。傳輸設(shè)備例如處理器104、ICH140等可能需要根據(jù)數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組重新格式化的數(shù)據(jù)。從處理器104發(fā)送到公用區(qū)112的信息可能需要可編程映射邏輯,比如轉(zhuǎn)換邏輯114和處理器接口116。轉(zhuǎn)換邏輯118和I/O接口120可以為信息的轉(zhuǎn)換和連接做出貢獻,所述信息從公用區(qū)112發(fā)送到ICH140或穿過ICH140。
在圖1的圖解實施方案中,系統(tǒng)100內(nèi)的轉(zhuǎn)換邏輯114和轉(zhuǎn)換邏輯118圖示為單獨單元。轉(zhuǎn)換邏輯114和轉(zhuǎn)換邏輯118的單獨單元可以是相同單元或不同單元。在另一實施方案中,轉(zhuǎn)換邏輯114和轉(zhuǎn)換邏輯118可以是與處理器104和ICH140都連接的單個轉(zhuǎn)換單元。在又一實施方案中,轉(zhuǎn)換邏輯114和轉(zhuǎn)換邏輯118也可以被多路轉(zhuǎn)換(multiplexed)到公用區(qū)112內(nèi)并重新進行映射。轉(zhuǎn)換邏輯118內(nèi)的I/O格式可以與轉(zhuǎn)換邏輯114內(nèi)的CPU格式不同。從轉(zhuǎn)換邏輯114或轉(zhuǎn)換邏輯118到公用區(qū)112的輸出可以是相同的存儲格式,例如DRAM(動態(tài)隨機存取存儲器)格式或類似格式。
轉(zhuǎn)換邏輯114和/或轉(zhuǎn)換邏輯118可以包括數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組,如圖2和圖4中的進一步說明。數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組可以與存儲器108內(nèi)的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組相匹配。在圖1的圖解實施方案中,存儲器108可以包括數(shù)據(jù)映射124,例如它可以保存在存儲器的SPD區(qū)內(nèi),比如SPD106。在另外的實施方案中,映射可以保存在BIOS或目標(biāo)代碼內(nèi)。控制器102也可以包括更少或更多部件和/或上述部件的不同排列。
本發(fā)明的實施方案可以用硬件、固件和軟件之一或其組合來實施。本發(fā)明的實施方案還可以用保存在機器可讀介質(zhì)上的指令來實施,至少一個處理器可以讀取和執(zhí)行所述指令以執(zhí)行本文中所述的操作。機器可讀介質(zhì)可以包括以機器(例如計算機)可讀形式保存或傳輸信息的任何機制。例如,機器可讀介質(zhì)可以包括只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);閃存設(shè)備;電、光、聲或其它形式的傳播信號(例如載波、紅外信號、數(shù)字信號等),以及其它介質(zhì)。與圖1中的圖示相比,在某些實施方案中,系統(tǒng)100可以包括更多部件,而在其它實施方案中它可以包括更少部件。
圖2圖解依據(jù)本發(fā)明一個實施方案的轉(zhuǎn)換邏輯201實施例的方框示意圖。轉(zhuǎn)換邏輯201可以是轉(zhuǎn)換邏輯114、或轉(zhuǎn)換邏輯118、或者兩個轉(zhuǎn)換單元114和118的一個實施方案。轉(zhuǎn)換邏輯201的輸出可以發(fā)送給公用區(qū)112或存儲總線110,取決于該實施方案中是否已經(jīng)包含公用區(qū)112。
轉(zhuǎn)換邏輯201可以包括數(shù)據(jù)對數(shù)據(jù)掩碼的映射或數(shù)據(jù)掩碼對數(shù)據(jù)的映射中的一個或兩個。這個信息可以保存在能與可編程選擇設(shè)備204連接的映射寄存器203或其它設(shè)備中,例如,其中可編程選擇設(shè)備204可以包括一個或多個多路復(fù)用器。如果數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組作為一個或多個輸入硬連接到選擇設(shè)備204,則可能不需要映射寄存器203。映射寄存器203可以用于可變或可編程的映射,并且可以以位于存儲控制器102內(nèi)的一個或多個寄存器的方式來實施。數(shù)據(jù)對數(shù)據(jù)掩碼或數(shù)據(jù)掩碼對數(shù)據(jù)的原始映射來源可以是一個存儲器模塊的SPD106或其它存儲區(qū)、BIOS、目標(biāo)代碼或其它存儲區(qū)。在另一實施方案中,映射寄存器203可以位于存儲器108內(nèi),例如在可擦可編程只讀存儲器(eprom)或類似存儲器內(nèi),以容納寄存器映射方程式。在本實施方案中,可以對存儲器108進行編程以調(diào)節(jié)存儲控制器102。
選擇設(shè)備204也可以用來重新排序數(shù)據(jù)掩碼位或數(shù)據(jù)位。例如,選擇設(shè)備204可以使用映射寄存器203內(nèi)的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組。在一個實施方案中,映射寄存器203的輸出端可以與選擇設(shè)備204連接。這樣,在設(shè)計時不需要知道數(shù)據(jù)掩碼映射。
圖3圖解根據(jù)本發(fā)明一個實施方案的寫入轉(zhuǎn)換波形,其中數(shù)據(jù)掩碼組合在數(shù)據(jù)行上。這可以用作同一插腳上發(fā)送的數(shù)據(jù)塊和數(shù)據(jù)掩碼實施例。在圖解同一插腳上發(fā)送的數(shù)據(jù)塊和數(shù)據(jù)掩碼中,圖3也圖解數(shù)據(jù)掩碼映射和分成n塊的數(shù)據(jù)分割。在圖3的實施例中,可以傳遞數(shù)據(jù)掩碼字的時間用s0-sx表示,可以傳遞數(shù)據(jù)字的時間用S0-Sy表示。字的意思是在單次操作中可以從存儲器移到處理器寄存器的數(shù)據(jù)單位。數(shù)據(jù)掩碼用DM0-DMx表示,且數(shù)據(jù)用D0-DY表示。從而,圖3中的數(shù)據(jù)塊用C0-Cn表示。數(shù)據(jù)可以分割成任何大小的塊,例如與單個位一樣小或與要發(fā)送的全部數(shù)據(jù)轉(zhuǎn)換一樣大。數(shù)據(jù)塊的大小,例如一個字,可能取決于系統(tǒng);例如,在帶有64位總線的系統(tǒng)中,可以把數(shù)據(jù)掩碼字和數(shù)據(jù)字選擇成以64位來傳遞。塊大小定義為實施數(shù)據(jù)掩蓋的間隔尺寸;例如,一個數(shù)據(jù)掩碼位可以掩蓋一字節(jié)(8位)數(shù)據(jù);在這種情況下,塊是一字節(jié)數(shù)據(jù)。在本實施方案中,64位數(shù)據(jù)字可以由8個塊組成,因為每個塊是一字節(jié)數(shù)據(jù)。在某些實施方案中,多個數(shù)據(jù)掩碼位可以掩蓋多個數(shù)據(jù)塊。在一個實施方案中,數(shù)據(jù)塊可以與不同設(shè)備并聯(lián),而數(shù)據(jù)掩碼可以掩蓋接收數(shù)據(jù)塊的設(shè)備。
此外,圖3圖解一個數(shù)據(jù)掩碼映射實施例。數(shù)據(jù)掩碼位和數(shù)據(jù)之間的映射可以在任何方位上,只要存儲控制器和目標(biāo)(例如存儲設(shè)備)對所述映射達成協(xié)議;圖3的數(shù)據(jù)掩碼映射方案可以用作數(shù)據(jù)掩碼位對數(shù)據(jù)的某些映射實施例。
在寫入轉(zhuǎn)換期間,數(shù)據(jù)掩碼可以按照任何順序和數(shù)據(jù)一起傳遞。在數(shù)據(jù)掩碼和數(shù)據(jù)塊之間不必要有特定定時關(guān)系,因為數(shù)據(jù)掩碼嵌在傳遞數(shù)據(jù)的相同數(shù)據(jù)行上。例如,可以在數(shù)據(jù)之前、之中或之后傳遞數(shù)據(jù)掩碼。如圖3中所示,在數(shù)據(jù)之前傳遞數(shù)據(jù)掩碼允許存儲設(shè)備在映射邏輯作用在接收的數(shù)據(jù)上之前配置映射邏輯。如果在數(shù)據(jù)之后傳遞數(shù)據(jù)掩碼,則在寫入收回(retirement)中可能存在延遲,因為數(shù)據(jù)可能必須保存在緩沖器內(nèi)以等待數(shù)據(jù)掩碼信息。
可能需要的數(shù)據(jù)掩碼轉(zhuǎn)換量可以固定在系統(tǒng)內(nèi),并且取決于實施技術(shù)。在一個實施方案中,最大數(shù)據(jù)掩碼轉(zhuǎn)換量可以等于由每個轉(zhuǎn)換內(nèi)數(shù)據(jù)塊量分割的數(shù)據(jù)轉(zhuǎn)換量。這個關(guān)系假定每個數(shù)據(jù)轉(zhuǎn)換將具有相同塊量;然而,在某些實施方案中,這個假定可能不是必需的,也不是對本發(fā)明的限定。
一個寫入轉(zhuǎn)換內(nèi)的數(shù)據(jù)掩碼字數(shù)量可能取決于該寫入轉(zhuǎn)換內(nèi)的數(shù)據(jù)字數(shù)量和塊大小。例如,如果塊大小是一字節(jié)數(shù)據(jù)并且在一個寫入轉(zhuǎn)換內(nèi)需要8個數(shù)據(jù)字,如果字是64位,則在該寫入轉(zhuǎn)換內(nèi)將存在總共64個塊。如果一個數(shù)據(jù)掩碼位掩蓋一個塊,該寫入轉(zhuǎn)換將需要64個數(shù)據(jù)掩碼位。由于在某些系統(tǒng)內(nèi)64個數(shù)據(jù)掩碼位可以組成一個數(shù)據(jù)掩碼字,在這些系統(tǒng)內(nèi)所述寫入轉(zhuǎn)換將需要一個數(shù)據(jù)掩碼字。在上述實例中,所述寫入轉(zhuǎn)換將具有8個數(shù)據(jù)字(D0-D8)和1個數(shù)據(jù)掩碼字(DM0)。
在某些情況下,在一個寫入轉(zhuǎn)換中可能需要一個以上數(shù)據(jù)掩碼字。例如,如果塊大小是兩位并且在一個寫入轉(zhuǎn)換中需要8個數(shù)據(jù)字,如果字是64位,則在該寫入轉(zhuǎn)換內(nèi)將存在總共256個塊。如果一個數(shù)據(jù)掩碼掩蓋一個塊,則該寫入轉(zhuǎn)換將需要256個數(shù)據(jù)掩碼位。如果在本實施方案中64個數(shù)據(jù)掩碼位組成一個數(shù)據(jù)掩碼字,則所述寫入轉(zhuǎn)換將需要4個數(shù)據(jù)掩碼字。在上述實例中,所述寫入轉(zhuǎn)換將具有8個數(shù)據(jù)字和4個數(shù)據(jù)掩碼字。
在前一段實例中,塊大小是兩位的,一個字內(nèi)的數(shù)據(jù)塊數(shù)量將是32;因此在圖3中,數(shù)據(jù)塊可以編號為C0-C31。寫入轉(zhuǎn)換內(nèi)的4個數(shù)據(jù)掩碼字可以編號為DM0-DM3,寫入轉(zhuǎn)換內(nèi)的8個數(shù)據(jù)字可以編號為D0-D7。在圖3中,使用一個示例性的數(shù)據(jù)掩碼映射方案,DM0的劃斜線的(checkered)數(shù)據(jù)掩碼位掩蓋D0的數(shù)據(jù)塊Cn。DM0的劃成小塊的(dotted)數(shù)據(jù)掩碼位掩蓋D1的C0,DM1的沿對角線劃成方塊(diagonally squared)的數(shù)據(jù)掩碼位掩蓋D2的C2。
映射方案具有一對一關(guān)系來指示一個數(shù)據(jù)掩碼位可以與一個塊相關(guān)聯(lián)。由于可能存在可以映射到n個數(shù)據(jù)塊的n個數(shù)據(jù)掩碼位,可以產(chǎn)生總共n2個可能的映射方案。例如,如果帶有64個數(shù)據(jù)塊的8個數(shù)據(jù)字轉(zhuǎn)換需要64個數(shù)據(jù)掩碼位,則可能存在4096個可能的映射方案。與同一芯片選擇連接的一個或多個存儲塊之一的存儲級(rank)可以具有它自己的映射方案,存儲器模塊可以具有一個或多個存儲級。因此,可能需要一個或多個映射方案以執(zhí)行每個存儲器模塊內(nèi)的正確數(shù)據(jù)掩碼映射。
圖4圖解根據(jù)本發(fā)明一個實施方案的流程圖400,它舉例說明控制器在處理器和存儲器之間提供接口的一種方法,其中數(shù)據(jù)和數(shù)據(jù)掩碼使用同一插腳與存儲器通信。功能塊402開始所述方法。接著在功能塊404中,控制器可從處理器或I/O接收數(shù)據(jù)和數(shù)據(jù)掩碼。處理器或I/O可以按照為存儲而需要進行格式化的格式給控制器提供信息??刂破骺梢跃哂袛?shù)據(jù)掩碼對數(shù)據(jù)的內(nèi)部映射;從而在功能塊406中,控制器能夠根據(jù)它的數(shù)據(jù)對數(shù)據(jù)掩碼映射轉(zhuǎn)換數(shù)據(jù)格式。在一個實施方案中,控制器可以把數(shù)據(jù)格式轉(zhuǎn)換成組合有數(shù)據(jù)掩碼的數(shù)據(jù)行。接著在功能塊408中,控制器可以把組合有數(shù)據(jù)掩碼的數(shù)據(jù)行寫入存儲器。最后在功能塊410中,控制器可以結(jié)束該方法。為了把數(shù)據(jù)和/或數(shù)據(jù)掩碼從存儲器傳遞給處理器或I/O,該反向過程包含從一個組合行中轉(zhuǎn)換成兩行數(shù)據(jù)掩碼位和數(shù)據(jù)塊,而不是從兩行轉(zhuǎn)換成一行數(shù)據(jù)和數(shù)據(jù)掩碼。
圖5圖解結(jié)合本發(fā)明實施方案的一個和多個方面,使用轉(zhuǎn)換邏輯201把一個或多個數(shù)據(jù)掩碼位的數(shù)據(jù)掩碼流504與一個或多個數(shù)據(jù)塊的數(shù)據(jù)塊流506組合在一起的方框示意圖。在圖5左側(cè),數(shù)據(jù)掩碼流504和數(shù)據(jù)塊流506可以在相同間隔時間內(nèi)被發(fā)送,例如,通過處理器。轉(zhuǎn)換邏輯201能夠把數(shù)據(jù)掩碼流504和數(shù)據(jù)塊流506格式化成存儲器可識別的格式。S0-Sy可以表示系統(tǒng)時鐘。按照圖3,數(shù)據(jù)塊流506可以包括分割成一個或多個塊D0-Dy的數(shù)據(jù)。數(shù)據(jù)掩碼流504可以包括與一個或多個數(shù)據(jù)塊D0-Dy相關(guān)聯(lián)的一個或多個數(shù)據(jù)掩碼位M0-My。數(shù)據(jù)塊流506和數(shù)據(jù)掩碼流504可以經(jīng)由不同行輸入到轉(zhuǎn)換邏輯201,例如數(shù)據(jù)掩碼行510和數(shù)據(jù)塊行512。
圖5的轉(zhuǎn)換邏輯201的輸出可以是數(shù)據(jù)和數(shù)據(jù)掩碼流508、具有組合了相關(guān)數(shù)據(jù)掩碼的數(shù)據(jù)塊流。在輸出數(shù)據(jù)行524上發(fā)送數(shù)據(jù)塊和數(shù)據(jù)掩碼的順序在不同實施方案中可以不同。在某些實施方案中,首先發(fā)送數(shù)據(jù)掩碼降低存儲成本,因為當(dāng)數(shù)據(jù)到達時可以根據(jù)數(shù)據(jù)掩碼對數(shù)據(jù)塊進行處理。在本實施方案中,首先在時鐘s0-sx期間發(fā)送數(shù)據(jù)掩碼;然后在時鐘S0-Sy期間發(fā)送數(shù)據(jù)塊。在一個實施方案中,數(shù)據(jù)可以按照例如數(shù)據(jù)和數(shù)據(jù)掩碼流508所示的格式在控制器102和存儲器108之間傳播,因為本發(fā)明的實施方案可以排除在控制器102和存儲器108之間需要一個或多個數(shù)據(jù)掩碼行。然而,在控制器102和處理器104之間或控制器102和ICH140之間,數(shù)據(jù)可以按照數(shù)據(jù)塊行506和數(shù)據(jù)掩碼行504的組合進行傳播。
圖6圖解結(jié)合本發(fā)明實施方案的一個或多個方面,改變數(shù)據(jù)掩碼對數(shù)據(jù)塊映射的轉(zhuǎn)換邏輯201的一個實施例的方框示意圖。如圖所示,作為轉(zhuǎn)換邏輯201的輸入,在時間s0=S0期間數(shù)據(jù)掩碼DM0Cn-DM0C0與數(shù)據(jù)塊D0Cn-D0C0相關(guān)聯(lián),在時間s1=S1期間數(shù)據(jù)掩碼DM1Cn-DM1C0與數(shù)據(jù)塊D1Cn-D1C0相關(guān)聯(lián),在時間sx=Sy期間數(shù)據(jù)掩碼DMxCn-DMxC0與數(shù)據(jù)塊DyCn-DyC0相關(guān)聯(lián)。轉(zhuǎn)換邏輯201能夠改變數(shù)據(jù)掩碼和數(shù)據(jù)塊之間的關(guān)聯(lián)。在所圖解的實施方案中,轉(zhuǎn)換邏輯201在時鐘s0期間能夠顛倒與數(shù)據(jù)掩碼DM0Cn-DM0C0相關(guān)聯(lián)的數(shù)據(jù)塊的順序。如圖所示,作為轉(zhuǎn)換邏輯201的輸出,在時間s0=S0期間數(shù)據(jù)掩碼DM0Cn-DM0C0與數(shù)據(jù)塊D0C0-D0Cn相關(guān)聯(lián),在時間s1=S1期間數(shù)據(jù)掩碼DM1Cn-DM1C0與數(shù)據(jù)塊D1Cn-D1C0相關(guān)聯(lián),在時間sx=Sy期間數(shù)據(jù)掩碼DMxCn-DMxC0與數(shù)據(jù)塊DyCn-DyC0相關(guān)聯(lián)。數(shù)據(jù)掩碼位和數(shù)據(jù)塊的關(guān)聯(lián)存在許多可能性。
轉(zhuǎn)換邏輯可以包括多路復(fù)用器或者其它重新排序信息以匹配映射的方法。這樣,數(shù)據(jù)掩碼能夠防止正確對應(yīng)的數(shù)據(jù)塊重寫在存儲器內(nèi),一旦確定數(shù)據(jù)掩碼對數(shù)據(jù)的映射,可以對存儲控制器內(nèi)的硬件進行編程。把映射編程在存儲控制器硬件內(nèi)的一個實施方案可以是使用寄存器對硬件進行編程,如圖2所示,使用映射寄存器203和選擇設(shè)備204。
圖7圖解根據(jù)本發(fā)明一個實施方案用于存儲控制器本身編程的一種方法的流程圖。在功能塊702中,已知的數(shù)據(jù)掩碼和數(shù)據(jù)塊映射可以插入映射寄存器203。一個和多個映射寄存器可以組合成該方法。這些值可以通過借助軟件或固件的硬件,例如BIOS,來插入。在一個實施方案中,在功能塊704中,映射寄存器203可以具有與選擇設(shè)備204的連接,以根據(jù)數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組來處理數(shù)據(jù)塊或數(shù)據(jù)掩碼的順序。在功能塊702中,也可以用映射值把已知的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組編程在電路或類似物內(nèi),以保持與存儲器108進行通信,存儲器108按照這樣的方式把數(shù)據(jù)掩碼映射到數(shù)據(jù)塊,以防止正確對應(yīng)的數(shù)據(jù)塊重寫在存儲器內(nèi)。
圖8圖解依據(jù)本發(fā)明的一個實施方案,掩蓋數(shù)據(jù)塊具體實施例的數(shù)據(jù)掩碼位具體值實施例(specific value examples)的表格和方框圖,其數(shù)據(jù)塊的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組可以編程在存儲控制器內(nèi)。列802包含可以用在計算機系統(tǒng)內(nèi)的數(shù)據(jù),而列804包含數(shù)據(jù)掩碼以防止所選數(shù)據(jù)重寫存儲器。在該實施例中,每個數(shù)據(jù)掩碼位掩蓋數(shù)據(jù)的兩個字母數(shù)字或一個字節(jié)。數(shù)據(jù)掩碼位相對數(shù)據(jù)的其它分配也可以使用。在行808、列804中,數(shù)據(jù)掩碼位的最低四位可以是“A”,二進制形式為“1010”,這意味著數(shù)據(jù)掩碼位聲明(asserted)用于數(shù)據(jù)塊“DE”和“BE”。在行810、列804中,數(shù)據(jù)掩碼位是“1”或“0001”,它們掩蓋數(shù)據(jù)塊“CE”。在行812、列804中,數(shù)據(jù)掩碼位是“3”或“0011”,它們掩蓋數(shù)據(jù)塊“45”和“67”。在行814、列804中,數(shù)據(jù)掩碼位是“2”或“0010”,它們掩蓋數(shù)據(jù)塊“CD”。在行816、列804中,數(shù)據(jù)掩碼位是“6”或“0110”,它們掩蓋數(shù)據(jù)塊“46”和“8A”。在行818、列804中,數(shù)據(jù)掩碼位是“F”或“1111”,它們掩蓋數(shù)據(jù)塊“13”、“57”、“9B”和“DF”。在行820、列804中,數(shù)據(jù)掩碼位是“0”,它們沒有掩蓋數(shù)據(jù)塊。在行820、列804中,數(shù)據(jù)掩碼位是“4”或“0100”,它們掩蓋數(shù)據(jù)塊“AA”。
在該實例中數(shù)據(jù)轉(zhuǎn)換是4個字節(jié)長,數(shù)據(jù)塊是1個字節(jié)長。數(shù)據(jù)塊的大小和所選數(shù)據(jù)元素及行的順序可以變化,并且仍然能實現(xiàn)不但傳遞數(shù)據(jù)塊而且傳遞它們在相同單行或多行上組合的相應(yīng)數(shù)據(jù)掩碼的目的。這些行傳遞可能即將要從存儲控制器傳遞到存儲器的值。在行824上,數(shù)據(jù)元素和數(shù)據(jù)掩碼在同一行上發(fā)送。在本實例中,所發(fā)出的數(shù)據(jù)元素是行806-822、列802中每個數(shù)據(jù)塊的第一個字節(jié)。雖然在行824上首先發(fā)送的是數(shù)據(jù)掩碼位832。所選數(shù)據(jù)掩碼位相對數(shù)據(jù)塊的順序也可以變化,并且仍然能實現(xiàn)本發(fā)明實施方案的目的,但為了方便,已經(jīng)選了一種選擇顯示在該圖中。在行824上發(fā)送的掩碼位用十六進制表示是“21”,或用二進制表示是“00100001”。在對應(yīng)設(shè)備(Devices)D2、D1和D0的其它三個數(shù)據(jù)行826,828和830上分別發(fā)送列802中數(shù)據(jù)的第二、第三和第四字節(jié)。在本實施方案中,它們各自的數(shù)據(jù)掩碼位834、836和838等于“B0”、“3D”和“26”,或“10110000”、“00111101”和“00100110”。如行808-822、列802和804所示,被傳遞的上述掩碼位可以相應(yīng)掩蓋字節(jié)值“13”、“DE”、“AA”、“57”、“46”、“9B”、“8A”、“CD”、“45”、“BE”、“DF”、“67”和“CE”。
數(shù)據(jù)行824、826、828、830可以用在存儲器連接的實施方案中,例如圖1的存儲總線110。存儲總線110可能的實施可以包含具有一個或多個多路復(fù)用器的電路,其輸出端可以與每個輸出設(shè)備的一個位連接。圖9圖解根據(jù)本發(fā)明一個實施方案,選擇元件給設(shè)備傳遞多個位的多路復(fù)用器的兩個示例性電路。電路900是經(jīng)由線D0.0把位0輸出給設(shè)備(device)0的電路,線(line)D0.0對應(yīng)于圖8設(shè)備D0的位0。在這個實施方案中,存在總共32位要轉(zhuǎn)換的數(shù)據(jù)掩碼位,但在其它實施方案中,這個數(shù)量可以變化。數(shù)據(jù)掩碼位0-31連接到多路復(fù)用器902。多路復(fù)用器選擇904可以根據(jù)數(shù)據(jù)掩碼位對數(shù)據(jù)塊的映射指示哪個數(shù)據(jù)掩碼位適于發(fā)送。本實施方案中的多路復(fù)用器選擇904與用于設(shè)備D0、位0的數(shù)據(jù)掩碼位和數(shù)據(jù)塊之間的映射對應(yīng),并且等于十六進制的“00”或二進制的“00000000”??梢杂策B接多路復(fù)用器選擇904以指示該值。在一個實施方案中,二進制的0可以接地,而二進制的1可以連接到電源以硬連接映射。在另一個實施方案中,多路復(fù)用器選擇904可以連接到寄存器,例如圖2中的映射寄存器203。
級多路復(fù)用器906可以選擇數(shù)據(jù)被寫入的存儲級。如果任何存儲級中的映射相等,則存儲級也可以減少電路中可能需要的選擇量。多路復(fù)用器908可以控制是數(shù)據(jù)塊還是數(shù)據(jù)掩碼位可以在線D0.0上傳遞。多路復(fù)用器908的一個數(shù)據(jù)輸入可以是數(shù)據(jù)輸入910。存在許多其它用來選擇要傳遞的數(shù)據(jù)塊、數(shù)據(jù)掩碼、級以及類似物的實施方案。除了目標(biāo)數(shù)據(jù)輸出端可以連接到線D0.1上的設(shè)備D0位1之外,電路901可以類似于電路900,其中多路復(fù)用器912、916、918和線914、920分別對應(yīng)多路復(fù)用器902、906、908和線904、910。如圖10中的進一步描述,包括電路900,910以及附加設(shè)備位(additionaldevice bits)的可選附加電路的電路可以使一串多路復(fù)用器能夠在同一行上加載至少一個數(shù)據(jù)掩碼位和至少一個數(shù)據(jù)塊以輸送給存儲器。
圖10圖解依據(jù)本發(fā)明的實施方案,包含多路復(fù)用器以選擇數(shù)據(jù)掩碼位和數(shù)據(jù)塊之間映射的陣列1000。在一個實施方案中,這些多路復(fù)用器位于控制器102內(nèi)。輸入可以是數(shù)據(jù)掩碼位;輸出可以是根據(jù)可適用的數(shù)據(jù)掩碼映射從輸入數(shù)據(jù)掩碼位中選擇的數(shù)據(jù)掩碼位。符號dmr[N]表示選擇的輸出數(shù)據(jù)掩碼位;r可以表示級,N可以表示數(shù)據(jù)掩碼內(nèi)的哪個位。圖10表示多個多路復(fù)用器陣列,因為每個存儲級可以具有不同映射和由不同陣列控制。如果每級具有相同映射,則在一個實施方案中,N:1多路復(fù)用器的數(shù)量可以小于存儲級的總量。代替具有N:1多路復(fù)用器的每個位,帶有N:1輸出和附加r:1多路復(fù)用器的一個多路復(fù)用器可以滿足需要,其中附加r:1多路復(fù)用器選擇要進入的級。雖然圖10中未圖示,數(shù)據(jù)掩碼位對數(shù)據(jù)塊的映射可以表示或不表示所想要的存儲位置。在一個實施方案中,映射不能表示存儲位置,而另一芯片可以接收用于該設(shè)備的數(shù)據(jù)塊和映射位置。如果使用另一芯片,則使用簡明規(guī)則(tailored rules)或其它所實施的基于知識的輸入可以使映射、存儲、和/或產(chǎn)生邏輯最小化,以容納(accommodate)存儲位置方案。
在上述實施方案中,圖9和圖10的電路已經(jīng)表明,通過多路復(fù)用器選擇連接可以使用數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組對存儲控制器進行編程。對存儲控制器排序進行編程的一個實施方案可以是把多路復(fù)用器選擇硬連接到接地和/或電源,例如多路復(fù)用器選擇904或多路復(fù)用器選擇914。用數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組對存儲控制器進行編程的另一實施方案可以是從存儲器內(nèi)某一位置中取回(retrieve)數(shù)據(jù)掩碼映射數(shù)據(jù),并且使用軟件算法來產(chǎn)生數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組。
圖11圖解根據(jù)本發(fā)明實施方案從存儲器模塊內(nèi)的SPD106中獲得數(shù)據(jù)掩碼映射信息的方法的一個流程圖。SPD106可以包括信息,所述信息保存在用于BIOS的同步動態(tài)隨機存取存儲器模塊上的電可擦除可編程只讀存儲器芯片內(nèi),以取回(retrieve)如模塊大小、數(shù)據(jù)寬度、速度和電壓這樣的信息。因為BIOS可以使用該信息適當(dāng)配置存儲器使其具有最大可靠性和性能,所以BIOS也可以從保存在SPD106內(nèi)對存儲控制器進行編程的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組中受益。對于本實施方案而言,SPD106可以包括存儲區(qū)以把數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組保持在存儲器的某一區(qū)域內(nèi),例如圖1的數(shù)據(jù)映射124。
圖11的方法1100可以是通過在過程功能塊1102從一個或多個存儲器模塊內(nèi)的SPD106中獲得數(shù)據(jù)掩碼映射信息而開始的。系統(tǒng)內(nèi)每個存儲器模塊可以包含一個或多個存儲級,每個存儲級可以具有不同的數(shù)據(jù)掩碼映射方案。
在過程功能塊1104,從數(shù)據(jù)掩碼映射信息可以確定模塊存儲級的數(shù)據(jù)掩碼映射方案。在一個實施方案中,數(shù)據(jù)掩碼映射信息可以是每個存儲級的數(shù)據(jù)掩碼映射方案。在另一實施方案中,從存儲器模塊中獲取的數(shù)據(jù)掩碼映射信息可以包含每個存儲器模塊的映射方案指示器(indicator)。映射方案指示器可以是字,例如“Vendor A(廠商A)”,或數(shù)字,例如“4865”。字或數(shù)字可以與存儲器模塊的映射方案相關(guān);因此,當(dāng)接收到每個指示器時,它可以指示存儲器模塊每個存儲級的數(shù)據(jù)掩碼映射方案。例如,接收到“Vendor A(廠商A)”可以指示存儲器模塊的一個存儲級具有映射方案X,同一存儲器模塊的另一存儲級具有映射方案Y,同一存儲器模塊的另一存儲級具有映射方案Z。
獲得數(shù)據(jù)掩碼映射方案之后,可以用映射方案對存儲控制器進行編程。從SPD106中獲得數(shù)據(jù)掩碼映射信息可以給存儲器廠商提供定義它們自己映射的靈活性,這可以減輕它們的測試方法或設(shè)計的約束。存儲器制造商可以在SPD106內(nèi)拒絕明顯的存儲器映射信息,而是依賴于與廠商的SPD信息對應(yīng)的公布映射。
除了硬連接和存儲位置取回之外,用數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組對存儲控制器進行編程的另一實施方案,可以是通過使用軟件算法推導(dǎo)數(shù)據(jù)掩碼映射或組來調(diào)查存儲器廠商的存儲特性。圖12圖解根據(jù)本發(fā)明一個實施方案用于確定存儲器模塊每個存儲級的數(shù)據(jù)掩碼映射的方法的一個流程圖。各種方法存在不同的實施方案以確定數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組;因此,下面的實施方案是用來作為一種方法的一個實施例。存儲器模塊中的每一個可以包含一個或多個存儲級,每個存儲級可以具有不同的數(shù)據(jù)掩碼映射或數(shù)據(jù)掩碼映射組;因此,可能需要檢查每個存儲器模塊的每個存儲級來確定數(shù)據(jù)掩碼映射或組。
圖12的方法1200是通過在過程功能塊1202選擇存儲器模塊的第一存儲級而開始的。在過程功能塊1204聲明所有數(shù)據(jù)掩碼位,且在過程功能塊1206可以執(zhí)行第一寫入轉(zhuǎn)換,以用第一已知數(shù)據(jù)模型來填寫所選存儲級內(nèi)的存儲器范圍。例如,可以用全部為1的數(shù)據(jù)模型執(zhí)行一個寫入轉(zhuǎn)換,該寫入轉(zhuǎn)換可以是最大數(shù)據(jù)轉(zhuǎn)換大小的寬度,且因為聲明的數(shù)據(jù)掩碼位可以指示它的相關(guān)數(shù)據(jù)塊可以不被掩蓋,可以用1的模型填充存儲器范圍。根據(jù)慣例,有時未聲明的數(shù)據(jù)掩碼位可以指示它的相關(guān)數(shù)據(jù)塊可以被掩蓋。算法可以采用任一慣例,在本實施方案中,聲明的數(shù)據(jù)掩碼位可以指示它的相關(guān)數(shù)據(jù)塊可以不被掩蓋,而未聲明的數(shù)據(jù)掩碼位可以指示它的相關(guān)數(shù)據(jù)塊可以被掩蓋。
在過程功能塊1208中可以寫入測試數(shù)據(jù)掩碼模型,該模型包括一個可以被聲明的數(shù)據(jù)掩碼位。在過程功能塊1210可以執(zhí)行第二寫入轉(zhuǎn)換,以用已知的第二數(shù)據(jù)模型來填寫所選存儲級內(nèi)的存儲器范圍。例如,可以用全部為0的數(shù)據(jù)模型執(zhí)行最大數(shù)據(jù)轉(zhuǎn)換大小寬度的寫入轉(zhuǎn)換,由于可以聲明一個數(shù)據(jù)掩碼位,存儲器范圍的一個數(shù)據(jù)塊可以用0的模型來填充,其余的塊將被掩蓋,因此將保持1。在上述實施例中,已知的0模型用作“標(biāo)簽”來識別存儲器范圍內(nèi)的修改塊。在一個實施方案中,在過程功能塊1210可以寫入第二測試數(shù)據(jù)模型。
“標(biāo)簽”可以用來識別數(shù)據(jù)塊,聲明的數(shù)據(jù)掩碼位可以與所述數(shù)據(jù)塊相關(guān)。可以按照幾個方式識別修改的數(shù)據(jù)塊;下面是一個實施方案的一個實施例。在功能塊1211中可以執(zhí)行存儲器范圍內(nèi)的數(shù)據(jù)讀取請求。通過比較讀取的數(shù)據(jù)塊和已知的第一數(shù)據(jù)模型可以確定數(shù)據(jù)模型內(nèi)的修改塊位置,所述第一數(shù)據(jù)模型在功能塊1206中被寫入;在前一實施例中,寫入的是全為1的模型。當(dāng)失配出現(xiàn)時,可以識別修改塊的位置。
為了比較讀取的數(shù)據(jù)塊和已知的第一數(shù)據(jù)模型而選擇的方法依賴于使用的數(shù)據(jù)模型,所述第一數(shù)據(jù)模型在功能塊1206中被寫入。一種方法可以是將讀取的數(shù)據(jù)和在過程功能塊1206中寫入的已知第一數(shù)據(jù)模型進行XOR(異或)操作。通過塊大小邏輯轉(zhuǎn)換XOR操作的結(jié)果,直到所述塊匹配與功能塊1208中使用的“標(biāo)簽”相匹配,在前一實施例中,“標(biāo)簽”全部為0。所執(zhí)行的邏輯轉(zhuǎn)換數(shù)量指示修改塊的位置。
當(dāng)修改塊的位置已經(jīng)確定時,在過程功能塊1208中選擇的數(shù)據(jù)掩碼位映射可以是已知的。例如,如果所選數(shù)據(jù)掩碼位是在過程功能塊1208中使用的數(shù)據(jù)掩碼位模型內(nèi)的第一數(shù)據(jù)掩碼位,并且如果修改塊是讀取數(shù)據(jù)的第五塊,則第一數(shù)據(jù)掩碼位掩蓋第五數(shù)據(jù)塊。在過程功能塊1210,可以記錄在功能塊1208中選擇的數(shù)據(jù)掩碼位映射。如在功能塊1214中確定的那樣,按照類似方式通過循環(huán)整個功能塊1204-1216直到已經(jīng)使用最后的數(shù)據(jù)塊,可以確定其它數(shù)據(jù)掩碼位映射。然后,對于剩下的級,可以使用功能塊1218和1220來重復(fù)所述過程(process)。如在功能塊1218中確定的那樣,當(dāng)最后的級已經(jīng)被處理,在功能塊1222可以結(jié)束所述過程。如上所述,由此確定的映射方案可以保存在控制器102內(nèi)。
應(yīng)當(dāng)認為,前面的描述在各個方面只是示例性的,而不是要限定本發(fā)明實施方案的范圍。對于本領(lǐng)域技術(shù)人員來說,可以出現(xiàn)各種變化。在不脫離它的本質(zhì)或主要特征的情況下,可以按照其它特定形式來實施本發(fā)明。在與權(quán)利要求書等同的含義和范圍內(nèi)的所有變化都包含在本發(fā)明的范圍內(nèi)。各種變化旨在要被包含在本發(fā)明的實施方案中,它們僅受到所附權(quán)利要求書的本質(zhì)和范圍的限定。
權(quán)利要求
1.一種裝置,包括可編程映射邏輯,所述可編程映射邏輯包含數(shù)據(jù)掩碼映射方案且能夠與存儲器相連接;以及與所述可編程映射邏輯相連接的存儲設(shè)備,所述存儲設(shè)備指示數(shù)據(jù)塊和數(shù)據(jù)掩碼位之間的數(shù)據(jù)掩碼映射。
2.如權(quán)利要求1所述的裝置,其中所述可編程映射邏輯包括與所述存儲設(shè)備相連的轉(zhuǎn)換單元。
3.如權(quán)利要求1所述的裝置,其中所述數(shù)據(jù)掩碼映射方案包括與所述存儲設(shè)備相連的可編程選擇設(shè)備,所述可編程選擇設(shè)備用所述數(shù)據(jù)掩碼映射來編程。
4.如權(quán)利要求3所述的裝置,其中所述可編程選擇設(shè)備包括一個或多個多路復(fù)用器。
5.如權(quán)利要求1所述的裝置,其中所述數(shù)據(jù)掩碼映射方案包括在數(shù)據(jù)塊和數(shù)據(jù)掩碼位之間的一對一關(guān)聯(lián)。
6.如權(quán)利要求5所述的裝置,其中所述數(shù)據(jù)塊被映射到所述數(shù)據(jù)掩碼位。
7.如權(quán)利要求5所述的方法,其中所述數(shù)據(jù)掩碼位被映射到所述數(shù)據(jù)塊。
8.一種方法,包括讀取值;以及對存儲控制器進行編程以響應(yīng)所述值,從而將數(shù)據(jù)掩碼位被映射到數(shù)據(jù)塊。
9.如權(quán)利要求8所述的方法,其中所述對存儲控制器進行編程包括在所述存儲控制器內(nèi)對轉(zhuǎn)換單元進行編程。
10.如權(quán)利要求8所述的方法,其中所述對存儲控制器進行編程包括在所述存儲控制器內(nèi)對存儲設(shè)備進行加載。
11.如權(quán)利要求8所述的方法,其中所述對存儲控制器進行編程包括用在所述數(shù)據(jù)塊和所述數(shù)據(jù)掩碼位之間的一對一關(guān)聯(lián)對所述存儲控制器進行加載。
12.一種提供指令的機器可讀介質(zhì),當(dāng)機器執(zhí)行所述指令時,使機器能執(zhí)行的操作包括讀取值;以及對存儲控制器進行編程以響應(yīng)所述值,從而將數(shù)據(jù)掩碼位被映射到數(shù)據(jù)塊。
13.如權(quán)利要求12所述的介質(zhì),其中所述對存儲控制器進行編程包括在所述存儲控制器內(nèi)對轉(zhuǎn)換單元進行編程。
14.如權(quán)利要求12所述的介質(zhì),其中所述對存儲控制器進行編程包括在所述存儲控制器內(nèi)對存儲設(shè)備進行加載。
15.如權(quán)利要求12所述的介質(zhì),其中所述對存儲控制器進行編程包括用在所述數(shù)據(jù)塊和所述數(shù)據(jù)掩碼位之間的一對一關(guān)聯(lián)對所述存儲控制器進行加載。
16.一種系統(tǒng),包括處理器;與所述處理器連接的存儲控制器,所述存儲控制器是用至少一個存儲數(shù)據(jù)掩碼映射方案來進行編程的,所述存儲控制器能夠和存儲模塊相連接。
17.如權(quán)利要求16所述的系統(tǒng),其中所述存儲控制器包括一個或多個多路復(fù)用器來選擇所述至少一個存儲數(shù)據(jù)掩碼映射方案中的一個方案。
18.如權(quán)利要求17所述的系統(tǒng),其中所述一個或多個多路復(fù)用器中的一個或多個是完全關(guān)聯(lián)的。
19.如權(quán)利要求16所述的系統(tǒng),其中所述存儲器模塊包括第一和第二存儲級,所述第一和第二存儲級使用所述至少一個數(shù)據(jù)掩碼映射方案中的至少一個方案。
20.如權(quán)利要求19所述的系統(tǒng),其中所述第一存儲級使用與所述第二存儲級不同的數(shù)據(jù)掩碼映射方案。
21.如權(quán)利要求19所述的系統(tǒng),其中所述第一存儲級使用與所述第二存儲級相同的數(shù)據(jù)掩碼映射方案。
22.如權(quán)利要求17所述的系統(tǒng),其中所述存儲單元包括一個或多個存儲級,所述計算機系統(tǒng)進一步包括級多路復(fù)用器,以從所述一個或多個多路復(fù)用器分別選擇級多路復(fù)用器的輸入。
全文摘要
存儲控制器或其它設(shè)備可以用數(shù)據(jù)掩碼映射方案來編程。在所述存儲控制器內(nèi)的選擇設(shè)備可以用數(shù)據(jù)和數(shù)據(jù)掩碼間的所述數(shù)據(jù)掩碼映射方案來設(shè)置。在一個實施方案中,可以包括存儲設(shè)備,并用所述數(shù)據(jù)掩碼映射方案對該存儲設(shè)備進行編程。
文檔編號G06F13/16GK1653435SQ03810638
公開日2005年8月10日 申請日期2003年3月13日 優(yōu)先權(quán)日2002年3月22日
發(fā)明者羅伯特·里森曼, 詹姆斯·多德, 邁克爾·威廉斯 申請人:英特爾公司