專利名稱:具有將存儲(chǔ)器地址映射到存儲(chǔ)器模塊的表的存儲(chǔ)器控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及存儲(chǔ)器控制器,尤其涉及包括具有條目的表的存儲(chǔ)器控制器,所述表將存儲(chǔ)器地址映射到存儲(chǔ)器模塊。
背景技術(shù):
典型的計(jì)算機(jī)系統(tǒng)包括處理器、如硬盤驅(qū)動(dòng)器的非易失性存儲(chǔ)設(shè)備、以及通常稱為存儲(chǔ)器的易失性存儲(chǔ)設(shè)備。存儲(chǔ)器可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。存儲(chǔ)器通常包括一組存儲(chǔ)器模塊,如單邊接觸內(nèi)存模組(SIMM)和雙邊接觸內(nèi)存模組(DIMM),以及其它類型的存儲(chǔ)器模組。
為了訪問計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器,計(jì)算機(jī)系統(tǒng)可以包括存儲(chǔ)器控制器。存儲(chǔ)器控制器是組件,比如一個(gè)或多個(gè)集成電路(IC),其直接與系統(tǒng)的存儲(chǔ)器模塊進(jìn)行交互。所有對(duì)存儲(chǔ)器模塊的訪問都是通過存儲(chǔ)器控制器這樣實(shí)現(xiàn)的。
存儲(chǔ)器控制器通常具有多個(gè)端口。將每個(gè)存儲(chǔ)器模塊連接到其中一個(gè)端口,其中每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊。端口是單獨(dú)的通信實(shí)體,其使得可以獨(dú)立于耦合到其它端口的存儲(chǔ)器模塊而訪問耦合到其上的存儲(chǔ)器模塊。
通過多個(gè)存儲(chǔ)器地址使得計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器成為可尋址的。存儲(chǔ)器控制器的一項(xiàng)工作是接收給定的存儲(chǔ)器地址,并確定給定的存儲(chǔ)器地址對(duì)應(yīng)哪個(gè)端口的哪個(gè)存儲(chǔ)器模塊的哪個(gè)位置。一旦確定,則可以按需要讀取或?qū)懭氪鎯?chǔ)器位置的內(nèi)容。
現(xiàn)有技術(shù)的存儲(chǔ)器控制器局限于不同的對(duì)相對(duì)著與其連接的端口的存儲(chǔ)器模塊的允許物理配置。例如,至少一些存儲(chǔ)器控制器要求存儲(chǔ)器模塊在端口中對(duì)稱分布,使得每個(gè)端口具有與其連接的相等數(shù)目的存儲(chǔ)器模塊。其它存儲(chǔ)器控制器要求相同類型和/或大小的存儲(chǔ)器模塊分布在其端口。這樣的約束限制了計(jì)算機(jī)系統(tǒng)制造者的設(shè)計(jì)選擇。
此外,現(xiàn)有技術(shù)的存儲(chǔ)器控制器通常不允許對(duì)插入其端口的存儲(chǔ)器模塊動(dòng)態(tài)地重新配置。增加存儲(chǔ)器模塊、去除已有的存儲(chǔ)器模塊或者從一個(gè)端口把存儲(chǔ)器模塊移動(dòng)到另一個(gè)端口通常要求,最好情況下將整個(gè)計(jì)算機(jī)系統(tǒng)臨時(shí)停止,最壞情況下將其關(guān)閉。對(duì)于可能需要額外存儲(chǔ)器的任務(wù)關(guān)鍵的計(jì)算機(jī)系統(tǒng),對(duì)系統(tǒng)的臨時(shí)停止或關(guān)閉以增加存儲(chǔ)器在最好的情況下是不方便的,而在最壞的情況下則是不允許的。
現(xiàn)有技術(shù)對(duì)存儲(chǔ)器模塊的物理配置的限制、以及現(xiàn)有技術(shù)不允許對(duì)存儲(chǔ)器模塊的動(dòng)態(tài)重新配置在具有多于一個(gè)分區(qū)的系統(tǒng)環(huán)境中尤其存在問題。分區(qū)是計(jì)算機(jī)系統(tǒng)中的獨(dú)立邏輯實(shí)體,盡管如此其仍然與系統(tǒng)的其它分區(qū)共享資源。每個(gè)分區(qū)可以獨(dú)立于其它分區(qū)地具有其自身的已經(jīng)被映射到計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器模塊上的存儲(chǔ)器地址空間。上述對(duì)現(xiàn)有存儲(chǔ)器控制器的限制使得在不同分區(qū)中分配系統(tǒng)的存儲(chǔ)器成為復(fù)雜的過程。此外,現(xiàn)有存儲(chǔ)器控制器不允許對(duì)存儲(chǔ)器模塊的動(dòng)態(tài)重新配置,使得在系統(tǒng)分區(qū)中重新分配存儲(chǔ)器變得困難,降低了它們的靈活性。
現(xiàn)有存儲(chǔ)器控制器還可能需要復(fù)雜的數(shù)學(xué)計(jì)算,以確定給定存儲(chǔ)器地址對(duì)應(yīng)哪個(gè)端口的哪個(gè)存儲(chǔ)器模塊的哪個(gè)位置。通過存儲(chǔ)器控制器進(jìn)行這些計(jì)算會(huì)增加存儲(chǔ)器控制器的等待時(shí)間,從而降低包括其的整個(gè)計(jì)算機(jī)系統(tǒng)的性能。這種對(duì)性能的降低是計(jì)算機(jī)系統(tǒng)制造者所不希望的。
最后,在任務(wù)關(guān)鍵和其它類型的計(jì)算機(jī)系統(tǒng)中,通常希望存儲(chǔ)器具有冗余,這樣如果給定存儲(chǔ)器模塊出故障,系統(tǒng)能夠繼續(xù)工作。通常,實(shí)現(xiàn)所述冗余的唯一方法是對(duì)系統(tǒng)中的所有存儲(chǔ)器模塊提供冗余存儲(chǔ)器模塊。即,每個(gè)主存儲(chǔ)器模塊具有備份存儲(chǔ)器模塊,如果現(xiàn)有的主模塊出故障,備份存儲(chǔ)器模塊能夠用作新的主模塊。但是,這種冗余可能不被系統(tǒng)中的所有存儲(chǔ)器模塊需要,從而浪費(fèi)了資源。
由于所有所述原因以及其它原因,因此存在對(duì)本發(fā)明的需要。
發(fā)明內(nèi)容
本發(fā)明的存儲(chǔ)器控制器包括多個(gè)端口和對(duì)應(yīng)于多個(gè)端口的多個(gè)表。每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊。每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目。每個(gè)表的每個(gè)條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊。所述表可以支持所述存儲(chǔ)器模塊在所述端口中的不對(duì)稱分布,其中每個(gè)端口相比于其它端口可以具有不同數(shù)目的存儲(chǔ)器模塊。
所述表當(dāng)所述存儲(chǔ)器模塊將被插入所述端口中時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制。即,本發(fā)明并不限制每個(gè)端口內(nèi)的存儲(chǔ)器模塊數(shù),也不限制將這些存儲(chǔ)器模塊放置在端口中的位置和槽。所述表可以被獨(dú)立配置,使得每個(gè)表的配置可以獨(dú)立于其它表的配置被修改。每個(gè)表可以被動(dòng)態(tài)配置。也就是說,所述表的條目可以被修改,以反映連接在所述表對(duì)應(yīng)的所述端口上的所述存儲(chǔ)器模塊的數(shù)目和類型的改變,而不需要重啟或臨時(shí)停止包括所述存儲(chǔ)器控制器的系統(tǒng)。
此外,表的條目可以包括讀寫條目和只寫條目,以提供存儲(chǔ)器模塊的鏡像或冗余。例如,可以通過讀寫條目將一組存儲(chǔ)器地址映射到第一存儲(chǔ)器模塊,而可以通過只寫條目將同一組的存儲(chǔ)器地址映射到第二存儲(chǔ)器模塊。對(duì)這些存儲(chǔ)器地址的與寫相關(guān)的請(qǐng)求使得兩個(gè)存儲(chǔ)器模塊中的存儲(chǔ)器位置被寫入,而與讀相關(guān)的請(qǐng)求只會(huì)使第一存儲(chǔ)器模塊被讀取。第二存儲(chǔ)器模塊用作第一存儲(chǔ)器模塊的冗余或備份存儲(chǔ)器模塊。如果第一存儲(chǔ)器模塊出現(xiàn)故障,則第二存儲(chǔ)器模塊可以替換它。
本發(fā)明的計(jì)算機(jī)系統(tǒng)包括多個(gè)端口、多個(gè)存儲(chǔ)器模塊、以及存儲(chǔ)器控制器。在每個(gè)端口中插入一個(gè)或多個(gè)存儲(chǔ)器模塊。存儲(chǔ)器控制器具有對(duì)應(yīng)于這些端口的多個(gè)表。每個(gè)表包括用于將存儲(chǔ)器地址映射到存儲(chǔ)器模塊的多個(gè)條目。每個(gè)表的每個(gè)條目對(duì)應(yīng)不多于一個(gè)的存儲(chǔ)器模塊。如上述,所述表當(dāng)所述存儲(chǔ)器模塊被相對(duì)于所述端口插入時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制。
本發(fā)明的一種方法為,確定插入端口的存儲(chǔ)器模塊的配置,包括插入每個(gè)端口的存儲(chǔ)器模塊的數(shù)目和每個(gè)存儲(chǔ)器模塊的類型。該方法根據(jù)確定的配置設(shè)置對(duì)應(yīng)端口的表的條目。每個(gè)表的每個(gè)條目對(duì)應(yīng)不多于一個(gè)的存儲(chǔ)器模塊,并將存儲(chǔ)器地址的子集映射到一個(gè)存儲(chǔ)器模塊。
產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì)以及介質(zhì)中的方法。計(jì)算機(jī)可讀介質(zhì)可以是可記錄數(shù)據(jù)存儲(chǔ)介質(zhì)、調(diào)制載波信號(hào)或者其它類型的介質(zhì)。所述方法用于維護(hù)對(duì)應(yīng)于端口的表,每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊。如上述,每個(gè)表包括用于將存儲(chǔ)器地址映射到存儲(chǔ)器模塊的條目,所述每個(gè)條目對(duì)應(yīng)不多于一個(gè)的存儲(chǔ)器模塊。
本發(fā)明的實(shí)施例提供優(yōu)于現(xiàn)有技術(shù)的優(yōu)點(diǎn)。首先,通過利用存儲(chǔ)器控制器提供了有效的資源共享,所述存儲(chǔ)器控制器具有已經(jīng)描述的對(duì)應(yīng)于端口的表。當(dāng)將計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器分為分區(qū)或例如高速緩存的不同的結(jié)構(gòu)時(shí),對(duì)存儲(chǔ)器的訪問和組織會(huì)變得復(fù)雜。利用具有表的存儲(chǔ)器允許有效的資源共享,因?yàn)槊總€(gè)端口被配置為利用其自己的表,從而獨(dú)立于其它端口的配置。
第二,根據(jù)本發(fā)明的具有表的存儲(chǔ)器控制器改善了存儲(chǔ)器的可用性和靈活性??梢詫?shí)現(xiàn)對(duì)插入端口的存儲(chǔ)器模塊的配置的改變,而不必重啟或臨時(shí)停止包括所述模塊的計(jì)算機(jī)系統(tǒng)。這是由于只需簡(jiǎn)單地修改表,以反映對(duì)端口的改變。此外,對(duì)于連接在其上的存儲(chǔ)器模塊的數(shù)目和類型沒有改變的端口,與其相應(yīng)的表可以根本不用修改。因?yàn)檫@些表彼此獨(dú)立,可以將冗余存儲(chǔ)器模塊增加到某些端口而不是所有端口,實(shí)際上可以將其增加到給定端口的其它主存儲(chǔ)器模塊中的一些而不是全部,并且只需要對(duì)討論的表進(jìn)行很小的修改以反映增加的冗余模塊。
第三,根據(jù)本發(fā)明的具有表的存儲(chǔ)器控制器提供了更簡(jiǎn)單的存儲(chǔ)器控制器邏輯電路。通過進(jìn)行簡(jiǎn)單的表查找來確定哪個(gè)端口的哪個(gè)存儲(chǔ)器模塊包括存儲(chǔ)器地址對(duì)應(yīng)的存儲(chǔ)器位置。從而,進(jìn)行該確定不需要復(fù)雜的數(shù)學(xué)計(jì)算。本發(fā)明的實(shí)施例還允許將存儲(chǔ)器資源更健壯地分配在計(jì)算機(jī)系統(tǒng)的不同分區(qū)中,因?yàn)椴恍枰O(shè)計(jì)復(fù)雜的計(jì)算方案來將分區(qū)的地址空間映射到存儲(chǔ)器模塊。
第四,本發(fā)明的實(shí)施例提供了對(duì)存儲(chǔ)器的動(dòng)態(tài)地?cái)U(kuò)展、分配和遷移。如果計(jì)算機(jī)系統(tǒng)需要增加存儲(chǔ)器,所增加的存儲(chǔ)器模塊可以被馬上使用??梢詫⒋鎯?chǔ)器模塊加到單獨(dú)的端口,而不影響其它端口的配置,附接到每個(gè)端口的存儲(chǔ)器數(shù)目不必相同。這樣,在不必停止系統(tǒng)的情況下,就可以實(shí)現(xiàn)將存儲(chǔ)器從一個(gè)端口遷移到另一個(gè)端口、以及改變連接到每個(gè)端口的存儲(chǔ)器數(shù)目。
最后,本發(fā)明的實(shí)施例允許將大小不同的存儲(chǔ)器模塊插入存儲(chǔ)器控制器的相同或不同端口中,而不限制模塊必須插入的位置。不同大小和類型的存儲(chǔ)器模塊都以這種方式支持,因?yàn)樗行枰闹皇窍鄳?yīng)地配置對(duì)應(yīng)于端口的表。從而為計(jì)算機(jī)系統(tǒng)制造者在實(shí)現(xiàn)不同計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器要求方面提供了更多的靈活性。
通過閱讀下面的詳細(xì)描述并參考附圖,本發(fā)明的其它優(yōu)點(diǎn)、方案和實(shí)施例將變得顯而易見。
本文參照的附圖形成本說明書的一部分。附圖中所示的特征只是對(duì)本發(fā)明的一些實(shí)施例而不是本發(fā)明的所有實(shí)施例的說明,除非另有明確指出,本發(fā)明沒有其它相反的含意。
圖1是根據(jù)本發(fā)明實(shí)施例的具有對(duì)應(yīng)于其端口的表的存儲(chǔ)器控制器的示意圖,建議將其打印在專利的第一頁(yè);圖2是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器控制器的表的更詳細(xì)的示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)器控制器的表的更詳細(xì)的示意圖,其中所述表提供了存儲(chǔ)器模塊冗余;圖4是根據(jù)本發(fā)明實(shí)施例的用于維護(hù)和使用對(duì)應(yīng)于端口的存儲(chǔ)器控制器的表的方法的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的包括具有對(duì)應(yīng)于其端口的表的存儲(chǔ)器控制器的基本計(jì)算機(jī)系統(tǒng)的示意圖。
具體實(shí)施例方式
下面參照作為本文一部分的附圖來對(duì)本發(fā)明的示例性實(shí)施例進(jìn)行詳細(xì)描述,其中,通過示出其中可實(shí)施本發(fā)明的具體示例性實(shí)施例來示出這些附圖。對(duì)這些實(shí)施例都進(jìn)行了足夠詳細(xì)的描述,以便使得本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)本發(fā)明。其它的實(shí)施例也可以應(yīng)用,而且在不脫離本發(fā)明的精神和范圍的情況下,可以對(duì)本發(fā)明進(jìn)行邏輯的、機(jī)械的和其它改變。因此,下文的詳細(xì)描述并不具有限制性,并且本發(fā)明的范圍由所附權(quán)利要求書所限定。
圖1示出了根據(jù)本發(fā)明的實(shí)施例的存儲(chǔ)器控制器100。存儲(chǔ)器控制器100包括統(tǒng)稱為端口102的端口102A和102B、統(tǒng)稱為表104的表104A和104B、以及統(tǒng)稱為邏輯電路106的邏輯電路106A和106B。將統(tǒng)稱為存儲(chǔ)器模塊108的存儲(chǔ)器模塊108A、108B、108C和108D連接或耦合到端口102A,而將存儲(chǔ)器模塊110連接或耦合到端口102B。
端口102是獨(dú)立通信實(shí)體,能夠獨(dú)立于耦合到其它端口的存儲(chǔ)器模塊地訪問耦合到其上的存儲(chǔ)器模塊。為了示例的簡(jiǎn)單性,在圖1中示出了兩個(gè)端口102。在本發(fā)明的其它實(shí)施例中,在存儲(chǔ)器控制器100中可以包括多于兩個(gè)的端口102。例如,在一個(gè)實(shí)施例中,可以包括三個(gè)、四個(gè)或更多個(gè)端口102。存儲(chǔ)器模塊108和110每個(gè)都可以是單邊接觸內(nèi)存模組(S1MM)、雙邊接觸內(nèi)存模組(DIMM)或另一種存儲(chǔ)器模塊。此外,盡管存在四個(gè)插入或附接到端口102A的存儲(chǔ)器模塊108,存在一個(gè)插入或附接到端口102B的存儲(chǔ)器模塊110,但是這樣的配置只是一個(gè)實(shí)例。在其它實(shí)施例中,可以存在不同數(shù)目的插入或附接到兩個(gè)端口102上的存儲(chǔ)器模塊。
表104對(duì)應(yīng)于端口102,使得表104A對(duì)應(yīng)于端口102A,表104B對(duì)應(yīng)于端口102B。表104將邏輯存儲(chǔ)器地址轉(zhuǎn)換成存儲(chǔ)器模塊108和110中的存儲(chǔ)器的物理位置。尤其是,表104A將存儲(chǔ)器地址映射到存儲(chǔ)器模塊108,表104B將存儲(chǔ)器地址映射到存儲(chǔ)器模塊110。表104將存儲(chǔ)器地址轉(zhuǎn)換或映射到存儲(chǔ)器模塊108和110的方式將在下文中詳細(xì)描述。
邏輯電路106使用表104來確定接收的存儲(chǔ)器訪問請(qǐng)求關(guān)于存儲(chǔ)器模塊108和110中的哪一個(gè),然后進(jìn)行該訪問。將給定的存儲(chǔ)器訪問請(qǐng)求一致地向邏輯電路106A和106B提出,邏輯電路106A參考與附接到端口102A的存儲(chǔ)器模塊108相關(guān)的表104A,邏輯電路106B參考與附接到端口102B的存儲(chǔ)器模塊110相關(guān)的表104B。即,在任意給定時(shí)刻,可以有高達(dá)N個(gè)的對(duì)存儲(chǔ)器控制器100的同步訪問,其中N是端口102的數(shù)目。也就是說,可以對(duì)所有的表104進(jìn)行多個(gè)同步查找,從而表104是多端口的。
對(duì)于給定的相對(duì)于具體存儲(chǔ)器地址的存儲(chǔ)器訪問請(qǐng)求,表104中只有一個(gè)表映射存儲(chǔ)器模塊108和110的其中之一中的存儲(chǔ)器位置。因此,存儲(chǔ)器控制器100對(duì)所有邏輯電路106一致提出存儲(chǔ)器訪問請(qǐng)求,根據(jù)在表104中的映射而成功地找到存儲(chǔ)器模塊108和110之一中的對(duì)應(yīng)存儲(chǔ)器位置的特定邏輯電路106A和106B進(jìn)行對(duì)請(qǐng)求的處理。邏輯電路106可以被進(jìn)一步認(rèn)為是維護(hù)表104的實(shí)體或組件。
作為實(shí)例,表104A可以映射存儲(chǔ)器地址組A、B和C中的存儲(chǔ)器地址,表104B可以映射存儲(chǔ)器地址組D和E中的存儲(chǔ)器地址。存儲(chǔ)器請(qǐng)求可以是涉及存儲(chǔ)器地址組B中的存儲(chǔ)器地址的讀或?qū)懻?qǐng)求。存儲(chǔ)器請(qǐng)求分別對(duì)邏輯電路106A和106B提出。邏輯電路106A成功地發(fā)現(xiàn)它所對(duì)應(yīng)的表104A將該存儲(chǔ)器請(qǐng)求的存儲(chǔ)器地址映射到存儲(chǔ)器模塊108的其中之一中的存儲(chǔ)器位置。與之相比,邏輯電路106B發(fā)現(xiàn)它所對(duì)應(yīng)的表104A沒有將存儲(chǔ)器請(qǐng)求的存儲(chǔ)器地址映射到存儲(chǔ)器模塊110中的存儲(chǔ)器位置。因此,邏輯電路106A進(jìn)行對(duì)該存儲(chǔ)器請(qǐng)求的處理,而邏輯電路106B不進(jìn)行處理。
在圖1中,相對(duì)于端口102的存儲(chǔ)器模塊108和110的配置顯示了相對(duì)于端口102的存儲(chǔ)器模塊108和110的類型、數(shù)目、大小、順序和位置。例如,對(duì)于插入端口102A的存儲(chǔ)器模塊108,每個(gè)存儲(chǔ)器模塊108可以是相同或不同類型,其中每個(gè)都可以具有相同或不同的性能特征等。每個(gè)模塊108還可以具有相同或不同的大小,其中每個(gè)都可以具有相同或不同數(shù)目的存儲(chǔ)器位置。端口102A可以具有四個(gè)槽或位置,使得存儲(chǔ)器模塊108以圖1所示順序插入這些槽,其中存儲(chǔ)器模塊108A位于距離端口102A最近的槽,而存儲(chǔ)器模塊108D位于距離端口102A最遠(yuǎn)的槽。與之相比,端口102B也可以具有四個(gè)槽。盡管圖1中沒有具體示出,作為實(shí)例,可以將存儲(chǔ)器模塊110插入第三個(gè)槽。
圖2詳細(xì)示出根據(jù)本發(fā)明實(shí)施例的表104A。表104A在圖2中詳細(xì)示出為代表表104A和表104B。表104A具有多個(gè)條目206A、206B、206C、206D和206E,其被統(tǒng)稱為條目206。條目206具有存儲(chǔ)器地址部分202和存儲(chǔ)器模塊部分204。這樣,每個(gè)條目206將在其存儲(chǔ)器地址部分202中顯示的存儲(chǔ)器地址映射到在存儲(chǔ)器模塊部分204中顯示的存儲(chǔ)器模塊。每個(gè)條目206只是映射到一個(gè)存儲(chǔ)器模塊上。存儲(chǔ)器模塊可以被分到兩個(gè)或更多個(gè)條目206中,這在圖2中沒有具體示出,但是單個(gè)條目不能映射多于一個(gè)的模塊。
每個(gè)條目206的存儲(chǔ)器地址部分202示例地包括多個(gè)高位的存儲(chǔ)器地址空間。所述存儲(chǔ)器地址空間是這樣的位數(shù),所述位數(shù)至少為用于對(duì)包括存儲(chǔ)器控制器100的計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器模塊108和110的每個(gè)存儲(chǔ)器位置唯一選址所需的位數(shù)。存儲(chǔ)器地址空間中的特定存儲(chǔ)器地址是所述位的特定形式。例如,存儲(chǔ)器地址空間可以是26位長(zhǎng)。所述空間中的存儲(chǔ)器地址可以是這26位的任何特定形式,例如10100000011111110010101000。
如果條目的高位匹配接收的存儲(chǔ)器請(qǐng)求的存儲(chǔ)器地址的對(duì)應(yīng)高位,則認(rèn)為所述條目匹配請(qǐng)求的存儲(chǔ)器地址。然后,使用存儲(chǔ)器地址的低位來確定匹配條目的存儲(chǔ)器模塊的哪個(gè)存儲(chǔ)器位置對(duì)應(yīng)該存儲(chǔ)器地址。例如,接收的存儲(chǔ)器請(qǐng)求可以具有存儲(chǔ)器地址10100000011111110010101000。該地址的最高三個(gè)位(101)匹配條目206C的高位。因此,具體到條目206C的存儲(chǔ)器模塊部分204中的存儲(chǔ)器模塊包含對(duì)應(yīng)于該存儲(chǔ)器地址的存儲(chǔ)器位置。此外,剩下的低位存儲(chǔ)器地址(00000011111110010101000)用于指定該存儲(chǔ)器模塊中的特定位置。
每個(gè)條目206的存儲(chǔ)器地址部分202的粒度依賴于存儲(chǔ)器模塊108的大小、包括存儲(chǔ)器控制器100的系統(tǒng)中的存儲(chǔ)器總量等。該情況中的存儲(chǔ)器地址部分202的粒度表示用來將存儲(chǔ)器地址映射到給定存儲(chǔ)器模塊的存儲(chǔ)器地址的高位數(shù)目。使用的高位數(shù)目越大,對(duì)應(yīng)的粒度越大,使用的高位數(shù)目越小,對(duì)應(yīng)的粒度越小。
表104A具有若干特征。首先,表104A的條目206不必按順序填充。例如,如圖2所示,條目206B是空的,而條目206A、206C、206D和206E包含從存儲(chǔ)器地址到存儲(chǔ)器模塊的映射。因此,可以從端口102A除去存儲(chǔ)器模塊108中的一個(gè),可以在表104A中將對(duì)應(yīng)于該存儲(chǔ)器模塊的一個(gè)或多個(gè)條目206表示為空的,而不必重新排列已有條目以便除去空的條目。
第二,表104A的條目206不必以存儲(chǔ)器模塊108連接到端口102A的順序指定存儲(chǔ)器模塊108。例如,如圖1所示,存儲(chǔ)器模塊108A、108B、108C和108D順序連接到端口102A。但是,條目206A、206C、206D和206E分別對(duì)應(yīng)存儲(chǔ)器模塊108A、108C、108D和108B。即,條目206A、206C、206D和206E并沒有分別對(duì)應(yīng)存儲(chǔ)器模塊108A、108B、108C和108D,即其連接到端口102A的順序。
第三,表104A的配置獨(dú)立于表104B。因此,表104支持對(duì)端口102中的存儲(chǔ)器模塊的不對(duì)稱分布。也就是說,連接到端口102A的存儲(chǔ)器模塊108的數(shù)目、類型和大小不受表104A或表104B的限制。表104能夠支持連接到其相應(yīng)端口102上的存儲(chǔ)器模塊的任意配置類型。每個(gè)表104對(duì)于下述不施加約束存儲(chǔ)器模塊將被插入它們的端口102中的位置、被插入任意端口102中的存儲(chǔ)器模塊的數(shù)目、以及這些存儲(chǔ)器模塊在端口102中的位置。例如,可以指定表104的任意條目206對(duì)應(yīng)于任意存儲(chǔ)器模塊108。
第四,可以獨(dú)立于表104B地配置表104A。這意味著,可以獨(dú)立于表104B的配置修改表104A的配置。表104A的配置包括表104A中的條目206的數(shù)目和位置,以及每個(gè)條目206的內(nèi)容。只要對(duì)表104A的配置的改變不影響對(duì)表104B的映射,則可以獨(dú)立于表104B地而改變表104A的配置。
例如,條目206C指定具有高位101的存儲(chǔ)器地址映射到存儲(chǔ)器模塊108C。如果用第一替換模塊和第二替換模塊代替該模塊,則作為一個(gè)實(shí)例,可以改變條目206C,使得具有高位1010的存儲(chǔ)器地址映射到第一替換模塊。然后作為一個(gè)實(shí)例,可以改變條目206B,使得具有高位1011的存儲(chǔ)器地址映射到第二替換模塊。該對(duì)表104A的改變不會(huì)影響通過表104B映射的任何存儲(chǔ)器地址,從而表104A可以獨(dú)立于表104B進(jìn)行配置和重新配置。
對(duì)表104的重新配置可以通過與在包括存儲(chǔ)器控制器100的計(jì)算機(jī)系統(tǒng)上運(yùn)行的軟件交互作用來實(shí)現(xiàn)。例如,這樣的軟件可以是在計(jì)算機(jī)系統(tǒng)上運(yùn)行的操作系統(tǒng)的部分,或者是執(zhí)行管理員程序,其中多于一個(gè)的操作系統(tǒng)在計(jì)算機(jī)系統(tǒng)上運(yùn)行。存儲(chǔ)器控制器100可以指示該軟件何時(shí)發(fā)生對(duì)連接到存儲(chǔ)器控制器100上的存儲(chǔ)器模塊的配置的改變。然后響應(yīng)的軟件可以確定怎樣重新配置表104,并為存儲(chǔ)器控制器100提供表104的新條目。
第五,表104為動(dòng)態(tài)可配置。這意味著,每個(gè)表104的條目都是可修改的,以反應(yīng)在它們的端口102中的存儲(chǔ)器模塊的數(shù)目和/或類型的變化,而不需要重啟或臨時(shí)停止包括存儲(chǔ)器控制器100的計(jì)算機(jī)系統(tǒng)。例如,在上文的實(shí)例中,不必關(guān)閉或臨時(shí)中止計(jì)算機(jī)系統(tǒng),而可以除去存儲(chǔ)器模塊108C,并可以用兩個(gè)替換模塊替換存儲(chǔ)器模塊108C。在該實(shí)例中,不必重啟或臨時(shí)停止計(jì)算機(jī)系統(tǒng),還可以同樣修改表104A。因此,表104支持增加、去除和替換存儲(chǔ)器模塊,而不必首先重啟或臨時(shí)停止計(jì)算機(jī)系統(tǒng)。
在圖2的實(shí)施例的表104A中,表104A的條目206包括存儲(chǔ)器模塊部分204。這表示條目206都是讀-寫條目,每個(gè)條目206由存儲(chǔ)器地址部分202和存儲(chǔ)器模塊部分204構(gòu)成,其中存儲(chǔ)器模塊部分204具體是讀-寫存儲(chǔ)器模塊部分。讀-寫條目是這樣的條目,其為給定存儲(chǔ)器地址指定哪個(gè)存儲(chǔ)器模塊具有對(duì)應(yīng)于用于讀和寫目標(biāo)的地址的存儲(chǔ)器位置。這樣,指定從給定存儲(chǔ)器地址讀取或向給定存儲(chǔ)器地址寫入的存儲(chǔ)器訪問請(qǐng)求相對(duì)于相同的存儲(chǔ)器位置進(jìn)行它的讀或?qū)憽?br>
圖3示出根據(jù)本發(fā)明的另一實(shí)施例的表104A,其中條目206包括讀-寫條目和用于冗余或鏡像的只寫條目。除讀-寫存儲(chǔ)器模塊部分204外,對(duì)條目206加入了額外的只寫存儲(chǔ)器模塊部分302。但是,對(duì)于條目206A、206B和206C,只寫存儲(chǔ)器模塊部分302是空的,從而圖3的實(shí)施例的表104A中的條目206A、206B和206C與它們?cè)趫D2的實(shí)施例中的對(duì)應(yīng)條目相同。即,條目206A和206C只是讀-寫條目,其中只有在這些條目的部分204中指定的存儲(chǔ)器模塊。從而,對(duì)應(yīng)于這些條目的地址部分202所包含的存儲(chǔ)器地址的存儲(chǔ)器請(qǐng)求映射到在這些條目的部分204中指定的用于讀和寫目的的模塊中的存儲(chǔ)器位置。
相比之下,條目206D和206E在圖2的實(shí)施例中與在圖3的實(shí)施例中相比是不同的。條目206E與206B一樣變成了空條目,在部分202、204和302中都沒有信息。圖3的條目206D的存儲(chǔ)器地址部分202在其存儲(chǔ)器地址部分具有兩位高位11,其包含圖2的條目206D的三位高位110和圖2的條目206E的三位高位111。在條目206D的讀-寫存儲(chǔ)器模塊部分204中指定存儲(chǔ)器模塊108D,并在只寫存儲(chǔ)器模塊部分302中指定存儲(chǔ)器模塊108B。
如下文處理存儲(chǔ)器地址具有三位高位111的存儲(chǔ)器訪問請(qǐng)求。如果存儲(chǔ)器訪問請(qǐng)求是讀請(qǐng)求,由于在條目206D的讀-寫存儲(chǔ)器模塊部分204中指定模塊108D,從而讀取存儲(chǔ)器模塊108D中的對(duì)應(yīng)存儲(chǔ)器位置。但是,由于模塊108D被指定在讀-寫存儲(chǔ)器模塊部分204中,而模塊108B被指定在條目206D的只寫存儲(chǔ)器模塊部分302中,如果存儲(chǔ)器訪問請(qǐng)求是寫請(qǐng)求,則對(duì)存儲(chǔ)器模塊108D和存儲(chǔ)器模塊108B中的對(duì)應(yīng)存儲(chǔ)器位置都寫入。
也就是說,對(duì)應(yīng)于由條目206D的存儲(chǔ)器地址部分202指定的存儲(chǔ)器地址的讀請(qǐng)求被處理為只相對(duì)于在條目206D的讀-寫存儲(chǔ)器模塊部分204中指定的存儲(chǔ)器模塊108D。與之相比,對(duì)應(yīng)于由條目206D的存儲(chǔ)器地址部分202指定的存儲(chǔ)器地址的寫請(qǐng)求被處理為相對(duì)于在部分204中指定的模塊108D和在只寫存儲(chǔ)器模塊部分302中指定的存儲(chǔ)器模塊108B。即,從模塊108D進(jìn)行存儲(chǔ)器地址讀取,而在模塊108D和108B上都進(jìn)行存儲(chǔ)器地址寫入。
這樣,存儲(chǔ)器模塊108B作為存儲(chǔ)器模塊108D的冗余或鏡像存儲(chǔ)器模塊。對(duì)條目206D中的只寫存儲(chǔ)器部分302的利用使條目206D成為既是表104A的讀-寫條目,又是表104A的只寫條目。將條目206D認(rèn)為是讀-寫條目,因?yàn)槠湓谧x-寫存儲(chǔ)器模塊部分204中指定模塊,還將條目206D認(rèn)為是只寫條目,因?yàn)闂l目206D還在只寫存儲(chǔ)器模塊部分302中指定模塊。在一個(gè)實(shí)施例中,可以將條目206D的部分202與部分204的結(jié)合認(rèn)為是單獨(dú)的讀-寫條目,而可以將條目206D的部分202與部分302的結(jié)合認(rèn)為是單獨(dú)的只寫條目。
可以將在條目206D的讀-寫存儲(chǔ)器模塊部分204中指定的存儲(chǔ)器模塊108D認(rèn)為是由條目206D的存儲(chǔ)器地址部分202指定的存儲(chǔ)器地址的主要存儲(chǔ)器模塊。這是由于讀和寫請(qǐng)求都相關(guān)于存儲(chǔ)器模塊108D得到處理。與之相比,可以將在條目206D的只寫存儲(chǔ)器模塊部分302中指定的存儲(chǔ)器模塊108B認(rèn)為是由條目206D的存儲(chǔ)器地址部分202指定的存儲(chǔ)器地址的輔助、備份、鏡像或冗余存儲(chǔ)器模塊。這是由于只有寫請(qǐng)求而沒有讀請(qǐng)求被處理為相對(duì)于存儲(chǔ)器模塊108B。
但是,如果存儲(chǔ)器模塊108D失敗并被去除,則可以修改條目206D以指定讀-寫存儲(chǔ)器模塊部分204中的存儲(chǔ)器模塊108B,而在只寫存儲(chǔ)器模塊部分302中沒有指定條目。在該情況下,存儲(chǔ)器模塊108B有效地成為由條目206D的存儲(chǔ)器地址部分202指定的存儲(chǔ)器地址的新的主存儲(chǔ)器模塊??梢詫⑿碌奶鎿Q存儲(chǔ)器模塊加到表104A對(duì)應(yīng)的端口102A上,使得然后可以指示該新模塊進(jìn)入條目206D的只寫存儲(chǔ)器模塊部分302中,以便再次為由條目206D的部分202指定的存儲(chǔ)器地址提供冗余和鏡像能力。
圖4示出了根據(jù)本發(fā)明實(shí)施例的一種用于維護(hù)并使用上述表104的方法400。方法400分成三個(gè)部分402、404和406。當(dāng)包括存儲(chǔ)器控制器100的計(jì)算機(jī)系統(tǒng)首先開啟或啟動(dòng)時(shí),執(zhí)行第一部分402。每次存儲(chǔ)器控制器100例如從包括存儲(chǔ)器控制器100的計(jì)算機(jī)系統(tǒng)收到存儲(chǔ)器請(qǐng)求時(shí),執(zhí)行第二部分404。每次附接到存儲(chǔ)器控制器100的端口102的存儲(chǔ)器模塊108和110的配置改變,從而要求表104的配置作相應(yīng)改變時(shí),執(zhí)行第三部分406。可以通過控制器100的邏輯電路106來實(shí)現(xiàn)一個(gè)實(shí)施例中的方法400。
在第一部分402中,確定插入到存儲(chǔ)器控制器100的端口102的存儲(chǔ)器模塊108和110的配置(408)。該配置包括插入每個(gè)端口的存儲(chǔ)器模塊數(shù)目、插入每個(gè)端口的存儲(chǔ)器模塊的類型、以及將哪個(gè)存儲(chǔ)器模塊插入到每個(gè)端口的哪個(gè)槽中,即附接到每個(gè)端口的模塊的順序。例如,如前所述,存儲(chǔ)器模塊的配置可以是不對(duì)稱的。然后,基于已經(jīng)確定的配置設(shè)置表104的條目(410)。即,基于配置和用戶輸入或說明設(shè)置存儲(chǔ)器地址到存儲(chǔ)器模塊的映射,所述用戶輸入或說明指示如何在配置的限制下將存儲(chǔ)器地址映射到模塊。例如,一些存儲(chǔ)器模塊可以是主讀-寫模塊,而其它模塊可以是輔助只寫模塊。
在第二部分404中,存儲(chǔ)器控制器100接收存儲(chǔ)器地址,所述存儲(chǔ)器地址可以是存儲(chǔ)器請(qǐng)求中相關(guān)于該地址的部分(412)。作為響應(yīng),控制器100通過邏輯電路106一致地參考表104,以確定存儲(chǔ)器地址映射到并從而對(duì)應(yīng)于哪個(gè)端口102中的存儲(chǔ)器模塊108和110中的哪一個(gè)(414)。然后,控制器100提供到該存儲(chǔ)器地址映射和對(duì)應(yīng)的存儲(chǔ)器模塊的存儲(chǔ)器位置的訪問(416),從而可以相對(duì)于該存儲(chǔ)器位置進(jìn)行讀和寫。其中多于一個(gè)的存儲(chǔ)器模塊對(duì)應(yīng)于所述存儲(chǔ)器地址,然后,在適當(dāng)?shù)臅r(shí)候?qū)γ總€(gè)這樣的模塊中的存儲(chǔ)器位置進(jìn)行訪問。例如,可以將作為寫請(qǐng)求的部分的存儲(chǔ)器地址分別映射到讀-寫存儲(chǔ)器模塊和只寫存儲(chǔ)器模塊,從而根據(jù)所述請(qǐng)求,對(duì)這兩個(gè)模塊中的存儲(chǔ)器位置都進(jìn)行寫入。
在第三部分406中,在改變相對(duì)于端口102的存儲(chǔ)器模塊108和110的配置后,重新確定配置(418)。例如,可以對(duì)任一個(gè)或兩個(gè)端口102添加、去除一個(gè)或多個(gè)存儲(chǔ)器模塊等。這樣可以改變相對(duì)于端口102的存儲(chǔ)器模塊108和110的配置。從而基于相對(duì)于端口102的存儲(chǔ)器模塊108和110的新配置修改一個(gè)或多個(gè)表104的條目(420)。第三部分406從而相應(yīng)于第一部分402,使得首先執(zhí)行第一部分402,以設(shè)置表104的條目,而隨后執(zhí)行第三部分406,以在需要時(shí)修改表104的條目。
最后,圖5示出了根據(jù)本發(fā)明實(shí)施例的基本系統(tǒng)500。本領(lǐng)域的普通技術(shù)人員能夠理解,系統(tǒng)500可以包括添加于或替換圖5中所示組件的組件。如圖5所示,系統(tǒng)500包括一個(gè)或多個(gè)處理器502、非易失性存儲(chǔ)設(shè)備504、已經(jīng)描述的存儲(chǔ)器控制器100、以及存儲(chǔ)器模塊108和110。處理器502執(zhí)行或運(yùn)行關(guān)于數(shù)據(jù)的計(jì)算機(jī)程序,如本領(lǐng)域中普通技術(shù)人員所理解的,可以將上二者臨時(shí)存儲(chǔ)在存儲(chǔ)器模塊108和110中、并永久存儲(chǔ)在非易失性存儲(chǔ)設(shè)備504中。非易失性存儲(chǔ)設(shè)備504可以是硬盤驅(qū)動(dòng)器或者其它類型的非易失性存儲(chǔ)設(shè)備。如上所述,通過向存儲(chǔ)器控制器100發(fā)出讀和寫請(qǐng)求,處理器502通過存儲(chǔ)器控制器100訪問存儲(chǔ)器模塊108和110。
應(yīng)當(dāng)注意,盡管本文示出和描述了特定實(shí)施例,本領(lǐng)域普通技術(shù)人員可以理解,任何用于實(shí)現(xiàn)相同目的的計(jì)算方案都可以替換所示的特定實(shí)施例。本申請(qǐng)旨在包括對(duì)本發(fā)明實(shí)施例的任何修改和變化。顯然,本發(fā)明只由所附權(quán)利要求書及其等同物限定。
權(quán)利要求
1.一種存儲(chǔ)器控制器,包括多個(gè)端口,每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊;以及對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊。
2.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中每個(gè)所述端口的所述存儲(chǔ)器模塊可以相對(duì)于其它所述端口的所述存儲(chǔ)器模塊被獨(dú)立地訪問。
3.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中所述表被一致地參考,以確定給定存儲(chǔ)器地址被映射到哪個(gè)端口的哪個(gè)存儲(chǔ)器模塊。
4.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中所述表支持所述存儲(chǔ)器模塊在所述端口中的不對(duì)稱分布,使得每個(gè)所述端口相比于其它所述端口可以具有不同數(shù)目的所述存儲(chǔ)器模塊。
5.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中所述表當(dāng)所述存儲(chǔ)器模塊將被插入所述端口中時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制。
6.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中每個(gè)所述表的所述多個(gè)條目包括多個(gè)讀-寫條目,每個(gè)所述讀-寫條目將所述存儲(chǔ)器地址的子集映射到所述讀-寫條目所對(duì)應(yīng)的存儲(chǔ)器模塊,其中所述存儲(chǔ)器模塊的位置是當(dāng)訪問所述存儲(chǔ)器地址的所述子集時(shí)被從其讀取和向其寫入的位置,其中至少一個(gè)所述表中的每個(gè)表中的所述多個(gè)條目包含多個(gè)只寫條目,每個(gè)所述只寫條目對(duì)應(yīng)所述表的一個(gè)所述讀-寫條目,并將所述存儲(chǔ)器地址的所述子集映射到所述只寫條目所對(duì)應(yīng)的第二存儲(chǔ)器模塊,以及其中當(dāng)所述存儲(chǔ)器地址的所述子集被向其寫入時(shí),所述第二存儲(chǔ)器模塊的位置被向其寫入,但是當(dāng)所述存儲(chǔ)器地址的所述子集被從其讀取時(shí),所述第二存儲(chǔ)器模塊的位置不被從其讀取,從而所述第二存儲(chǔ)器模塊是所述相應(yīng)的讀-寫條目所對(duì)應(yīng)的所述存儲(chǔ)器模塊的鏡像,以用作冗余。
7.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中所述表可以被獨(dú)立地配置,使得每個(gè)表的配置可以獨(dú)立于其它所述表的配置被修改。
8.根據(jù)權(quán)利要求1所述的存儲(chǔ)器控制器,其中每個(gè)所述表可以被動(dòng)態(tài)配置,使得所述表的所述條目可以被修改,以反映所述表對(duì)應(yīng)的所述端口上的所述存儲(chǔ)器模塊的數(shù)目和類型的改變,而不需要重啟包括所述存儲(chǔ)器控制器的系統(tǒng)。
9.一種存儲(chǔ)器控制器,包括多個(gè)端口,每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊;以及對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊,其中所述表支持所述存儲(chǔ)器模塊在所述端口中的不對(duì)稱分布,使得每個(gè)所述端口相比于其它所述端口可以具有不同數(shù)目的所述存儲(chǔ)器模塊。
10.一種存儲(chǔ)器控制器,包括多個(gè)端口,每個(gè)端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊;以及對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊,其中每個(gè)所述表可以被動(dòng)態(tài)配置,使得所述表的所述條目可以被修改,以反映所述表對(duì)應(yīng)的所述端口上的所述存儲(chǔ)器模塊的數(shù)目和類型的改變,而不需要重啟包括所述存儲(chǔ)器控制器的系統(tǒng)。
11.一種系統(tǒng),包括多個(gè)端口;多個(gè)存儲(chǔ)器模塊,一個(gè)或多個(gè)所述存儲(chǔ)器模塊被插入每個(gè)所述端口;以及存儲(chǔ)器控制器,其具有對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)條目對(duì)應(yīng)不多于一個(gè)的所述存儲(chǔ)器模塊,其中所述表當(dāng)所述存儲(chǔ)器模塊被相對(duì)于所述端口插入時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中每個(gè)所述表的所述多個(gè)條目包括多個(gè)讀-寫條目,每個(gè)所述讀-寫條目將所述存儲(chǔ)器地址的子集映射到所述讀-寫條目所對(duì)應(yīng)的存儲(chǔ)器模塊,其中所述存儲(chǔ)器模塊的位置是當(dāng)訪問所述存儲(chǔ)器地址的所述子集時(shí)被從其讀取和向其寫入的位置,其中至少一個(gè)所述表中的每個(gè)表中的所述多個(gè)條目包含多個(gè)只寫條目,每個(gè)所述只寫條目對(duì)應(yīng)所述表的一個(gè)所述讀-寫條目,并將所述存儲(chǔ)器地址的所述子集映射到所述只寫條目所對(duì)應(yīng)的第二存儲(chǔ)器模塊,以及其中當(dāng)所述存儲(chǔ)器地址的所述子集被向其寫入時(shí),所述第二存儲(chǔ)器模塊的位置被向其寫入,但是當(dāng)所述存儲(chǔ)器地址的所述子集被從其讀取時(shí),所述第二存儲(chǔ)器模塊的位置不被從其讀取,從而所述第二存儲(chǔ)器模塊是所述相應(yīng)的讀-寫條目所對(duì)應(yīng)的所述存儲(chǔ)器模塊的鏡像,以用作冗余。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中每個(gè)所述表可以被動(dòng)態(tài)地和獨(dú)立地配置,使得每個(gè)表的配置可以獨(dú)立于其它所述表的配置被修改,并使得每個(gè)所述表的所述條目可以被修改,以反映所述表對(duì)應(yīng)的所述端口上的所述存儲(chǔ)器模塊的數(shù)目和類型的改變,而不需要重啟系統(tǒng)。
14.一種系統(tǒng),包括多個(gè)端口;多個(gè)存儲(chǔ)器模塊,一個(gè)或多個(gè)所述存儲(chǔ)器模塊被插入每個(gè)所述端口;以及存儲(chǔ)器控制器,其具有對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)條目對(duì)應(yīng)不多于一個(gè)的所述存儲(chǔ)器模塊,其中所述表當(dāng)所述存儲(chǔ)器模塊被相對(duì)于所述端口插入時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制,以及其中每個(gè)所述表可以被動(dòng)態(tài)地和獨(dú)立地配置,使得每個(gè)表的配置可以獨(dú)立于其它所述表的配置被修改,并使得每個(gè)所述表的所述條目可以被修改,以反映所述表對(duì)應(yīng)的所述端口上的所述存儲(chǔ)器模塊的數(shù)目和類型的改變,而不需要重啟系統(tǒng)。
15.一種方法,包括確定被插入多個(gè)端口的多個(gè)存儲(chǔ)器模塊的配置,包括所述存儲(chǔ)器模塊的數(shù)目和被插入每個(gè)所述端口的每個(gè)所述存儲(chǔ)器模塊的類型;基于至少所述確定的配置,設(shè)置對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表的多個(gè)條目,每個(gè)所述表的每個(gè)所述條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊,并將所述表的存儲(chǔ)器地址的子集映射到所述表的一個(gè)所述存儲(chǔ)器模塊。
16.根據(jù)權(quán)利要求15所述的方法,還包括接收存儲(chǔ)器地址;一致地參考所述表,以確定將所述存儲(chǔ)器地址映射到哪個(gè)端口的哪個(gè)存儲(chǔ)器模塊;以及訪問所述存儲(chǔ)器地址所映射的、并對(duì)應(yīng)所述存儲(chǔ)器地址的所述存儲(chǔ)器模塊的位置。
17.根據(jù)權(quán)利要求15所述的方法,還包括重新確定被插入所述端口的所述存儲(chǔ)器模塊的配置,以評(píng)估對(duì)所述配置進(jìn)行的改變;以及基于在所述配置中進(jìn)行的所述改變來修改所述表的所述條目,從而不需要重啟包括所述存儲(chǔ)器控制器的系統(tǒng),使得可以獨(dú)立于其它所述表的所述條目修改每個(gè)所述表的所述條目。
18.根據(jù)權(quán)利要求15所述的方法,其中被插入所述端口中的所述存儲(chǔ)器模塊的所述配置為,使得每個(gè)所述端口的多個(gè)位置沒有被所述存儲(chǔ)器模塊順序分布。
19.根據(jù)權(quán)利要求15所述的方法,其中被插入所述端口的所述存儲(chǔ)器模塊的所述配置是不對(duì)稱的,使得至少一個(gè)所述端口相比于其它所述端口具有不同數(shù)目的被插入其中的存儲(chǔ)器模塊。
20.一種方法,包括確定被插入多個(gè)端口的多個(gè)存儲(chǔ)器模塊的配置,包括所述存儲(chǔ)器模塊的數(shù)目和被插入每個(gè)所述端口的每個(gè)所述存儲(chǔ)器模塊的類型;基于至少所述確定的配置,設(shè)置對(duì)應(yīng)于所述多個(gè)端口的多個(gè)表的多個(gè)條目,每個(gè)所述表的每個(gè)所述條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊,并將所述表的存儲(chǔ)器地址的子集映射到所述表的一個(gè)所述存儲(chǔ)器模塊,其中被插入所述端口的所述存儲(chǔ)器模塊的所述配置是不對(duì)稱的,使得至少一個(gè)所述端口相比于其它所述端口具有不同數(shù)目的被插入其中的存儲(chǔ)器模塊。
21.一種產(chǎn)品,包括計(jì)算機(jī)可讀介質(zhì);以及所述介質(zhì)中的方法,其用于維護(hù)對(duì)應(yīng)于多個(gè)端口的多個(gè)表,每個(gè)所述端口可以接受一個(gè)或多個(gè)存儲(chǔ)器模塊,每個(gè)所述表包括多個(gè)用于將存儲(chǔ)器地址映射到所述存儲(chǔ)器模塊的條目,所述表的每個(gè)所述條目對(duì)應(yīng)所述表的不多于一個(gè)的所述存儲(chǔ)器模塊。
22.根據(jù)權(quán)利要求21所述的產(chǎn)品,其中所述表當(dāng)所述存儲(chǔ)器模塊將被插入所述端口中時(shí)對(duì)于數(shù)目方面和位置方面都沒有限制,其中每個(gè)所述表的所述多個(gè)條目包括多個(gè)讀-寫條目,每個(gè)所述讀-寫條目將所述存儲(chǔ)器地址的子集映射到所述讀-寫條目所對(duì)應(yīng)的存儲(chǔ)器模塊,以及其中所述存儲(chǔ)器模塊的位置是當(dāng)訪問所述存儲(chǔ)器地址的所述子集時(shí)被從其讀取和向其寫入的位置。
全文摘要
一種包括端口和相應(yīng)的表的存儲(chǔ)器控制器。每個(gè)端口可接受一個(gè)或多個(gè)存儲(chǔ)器模塊。每個(gè)表包括將存儲(chǔ)器地址映射到存儲(chǔ)器模塊的條目。每個(gè)條目對(duì)應(yīng)不多于一個(gè)的存儲(chǔ)器模塊。表支持存儲(chǔ)器模塊在端口內(nèi)的不對(duì)稱分布;每個(gè)端口相對(duì)于其它端口可以具有不同數(shù)目的存儲(chǔ)器模塊。所述表在存儲(chǔ)器模塊將被插入端口時(shí)對(duì)于數(shù)目和位置方面都沒有限制。表可以被獨(dú)立地配置;可以獨(dú)立于其它表的配置修改每個(gè)表的配置。每個(gè)表可以被動(dòng)態(tài)地配置。表的條目可以被修改,從而反映所連接的存儲(chǔ)器模塊的數(shù)目和類型的改變,而不必重啟或臨時(shí)停止包括存儲(chǔ)器控制器的計(jì)算機(jī)系統(tǒng)。
文檔編號(hào)G06F12/00GK1786894SQ20051012420
公開日2006年6月14日 申請(qǐng)日期2005年11月21日 優(yōu)先權(quán)日2004年12月11日
發(fā)明者D·德索塔, M·格拉斯, B·吉爾伯特, E·萊斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司