專利名稱:多端口內(nèi)高速緩存的動態(tài)隨機存取存儲器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及公知為DRAM結(jié)構(gòu)的動態(tài)隨機存取存儲器,更具體地,涉及如本發(fā)明的共同發(fā)明人之一穆凱什·查特于1995年12月29日提交的未決US專利申請No.581467“高性能通用多端口內(nèi)部高速緩存動態(tài)隨機存取存儲器系統(tǒng)、體系結(jié)構(gòu)和方法”中所描述的通過內(nèi)部移動大數(shù)據(jù)塊來提供存儲器到大量系統(tǒng)輸入/輸出(I/O)資源的非常高的系統(tǒng)帶寬的多端口內(nèi)部高速緩存型式,并涉及其增強的體系結(jié)構(gòu)及運行中的完善。
本發(fā)明背景所述未決申請中取名為AMPIC DRAM的、稍后結(jié)合圖1加以說明的多端口內(nèi)部高速緩存的DRAM被設(shè)計來在設(shè)置有例如中央處理單元(CPU)的主控制器的系統(tǒng)中作高系統(tǒng)帶寬應(yīng)用,所述中央處理單元帶有各自被連接至公用系統(tǒng)總線接口并爭奪對其的訪問的并行數(shù)據(jù)端口和動態(tài)隨機存取存儲器。它提供改善的DRAM體系結(jié)構(gòu),包括本身也擁有各自通過對應(yīng)緩存器連接在獨立的外部I/O資源與內(nèi)部DRAM存儲器之間的多個獨立的串行數(shù)據(jù)接口的多端口內(nèi)部高速緩存的DRAM;介于串行接口與緩存器之間的轉(zhuǎn)接組件;和在總線主控制器、例如所述CPU所作動態(tài)組構(gòu)下將串行接口連接到緩存器的轉(zhuǎn)接組件邏輯控制器。這種技術(shù)以快于傳統(tǒng)途徑多個數(shù)量級的速度將數(shù)據(jù)塊內(nèi)部傳送到存儲器芯片,并消除當前系統(tǒng)的帶寬限制及相關(guān)問題,從而能以降低的成本提供顯著增強的系統(tǒng)運行性能,并由于提供統(tǒng)一的存儲器體系結(jié)構(gòu)而能基本上供許多應(yīng)用程序通用。
在所述共有未決申請中,可以支持很大數(shù)量的系統(tǒng)I/O資源,如在稍后結(jié)合下面說明的圖2所解釋的通過疊置數(shù)個這樣的裝置,各系統(tǒng)I/O資源帶有很寬的數(shù)據(jù)總線而仍然在AMPIC DRAM中保持很小的管腳數(shù),此時所支持的系統(tǒng)I/O資源數(shù)和各系統(tǒng)I/O資源總線的寬度僅受技術(shù)工藝的局限性的制約。
雖然這樣的體系結(jié)構(gòu),如先前介紹和所述未決申請中說明的令人滿意地為每一系統(tǒng)I/O資源訪問DRAM提供非常大數(shù)量的帶寬,但此系統(tǒng)未提供一系統(tǒng)I/O資源可借之發(fā)送數(shù)據(jù)到另一系統(tǒng)I/O資源的機制,即現(xiàn)在由本發(fā)明所提供的改進。作為示例,如果系統(tǒng)I/O資源m具有要發(fā)送到系統(tǒng)I/O資源n的多比特消息,則一旦系統(tǒng)I/O資源m將此多比特消息寫進AMPIC DRAM疊置結(jié)構(gòu)或陣列后,現(xiàn)在本發(fā)明即提供用于通知系統(tǒng)I/O資源n存在有這樣的消息和消息在AMPIC DRAM陣列內(nèi)的存儲單元兩者的機制。另外,在系統(tǒng)I/O資源n被通知此消息的存在及其在陣列中的存儲單元之后,按照本發(fā)明還提供使系統(tǒng)I/O資源n能從陣列提取此消息的技術(shù)。雖然消息數(shù)據(jù)被這樣分配到整個AMPICDRAM陣列中、陣列的每一元素僅保持數(shù)據(jù)的一部分,必須將完整的信令信息發(fā)送到AMPIC DRAM陣列的各個別元素。
另外本發(fā)明還提供劃分技術(shù)的進一步改善,以使得能同時進行數(shù)個小型傳送或單個的非常寬的傳送,更有效地利用寬系統(tǒng)內(nèi)部數(shù)據(jù)總線來適應(yīng)小型的和大型的數(shù)據(jù)傳送。
因此本發(fā)明的基本目的是提供一種新的改進的設(shè)備和方法,用來結(jié)構(gòu)性增強多端口內(nèi)部高速緩存的DRAM等的運行性能,其中提供一新穎機制和技術(shù)以允許系統(tǒng)I/O資源發(fā)送消息數(shù)據(jù)給一個另外的I/O資源,通知這樣的消息的存在和消息存儲單元,然后使能提取該消息。
另一目的是提供這樣一種改進的系統(tǒng),其中,通過新穎劃分技術(shù),寬系統(tǒng)內(nèi)部數(shù)據(jù)總線被更有效地用來適應(yīng)小型和大型內(nèi)部數(shù)據(jù)傳送兩者,還能進行數(shù)個同時的小型消息傳送或單一的非常寬的傳送。
后面將闡述其他的目的并在所附的權(quán)利要求中作更細致的敘述。
本發(fā)明概述概括地由其較廣的一個方面來說,本發(fā)明包含在一多端口內(nèi)部高速緩存的AMPIC DRAM單元陣列中改善運行性能的方法,該陣列中多個系統(tǒng)I/O資源沿著連接到陣列各單元中的對應(yīng)DRAM核的公用內(nèi)部數(shù)據(jù)總線接口,且其中來自CPU或類似源的數(shù)據(jù)在數(shù)據(jù)傳送期間也用各單元沿著此總線傳送,該方法包括與數(shù)據(jù)傳送同時地通過在所述數(shù)據(jù)傳送周期內(nèi)從一系統(tǒng)I/O資源向陣列的所有AMPIC DRAM單元發(fā)送消息并同時發(fā)送關(guān)于DRAM中消息地址單元(address location)的比特信息使系統(tǒng)I/O資源相互發(fā)送多比特消息。
后面詳細描述優(yōu)選的最好模式設(shè)計、設(shè)備、技術(shù)和可替換結(jié)構(gòu)。
現(xiàn)結(jié)合所列
本發(fā)明,其中圖1為所述未決申請的AMPIC DRAM的內(nèi)部體系結(jié)構(gòu)的說明性方框圖,其操作為本發(fā)明所增強;圖2為基于圖1的AMPIC DRAM的說明性系統(tǒng)體系結(jié)構(gòu)的方框圖;圖3描述按照本發(fā)明的由系統(tǒng)I/O資源將地址和數(shù)據(jù)分布到AMPICDRAM裝置的新穎設(shè)備和方法;圖3a描述按照本發(fā)明的將數(shù)據(jù)從AMPIC DRAM裝置分布到系統(tǒng)I/O資源的新穎設(shè)備和方法;圖4描述AMPIC DRAM可借之以有效地分布多址傳送消息到每一個消息目標端口的新穎設(shè)備和方法;圖5為描述穿過數(shù)個DRAM區(qū)域?qū)?shù)據(jù)“鏈接”在一起的圖形;圖6描述以幾種區(qū)域大小將DRAM陣列分成為數(shù)個同等大小的區(qū)域;
圖7描述將DRAM陣列分成為許多各自有不同大小的區(qū)域;圖8為描述AMPIC DRAM用來在AMPIC DRAM內(nèi)部完成所有從源系統(tǒng)I/O資源到目標系統(tǒng)I/O資源的消息傳遞的設(shè)備和方法;圖9為AMPIC DRAM內(nèi)部系統(tǒng)總線的優(yōu)選體系結(jié)構(gòu)的方框圖,描述本發(fā)明的新穎的劃分技術(shù),以使得能進行數(shù)個同時的小型傳送或單一的非常寬的傳送;和圖10表示AMPIC DRAM內(nèi)部系統(tǒng)總線的可替換實施方案,帶有為達到類似于以圖9的系統(tǒng)所取得的結(jié)果而設(shè)置在各AMPIC DRAM端口緩存器與DRAM陣列之間的交叉開關(guān)。
本發(fā)明的優(yōu)選實施例如先前指出的,圖1中示出由所述共有未決申請的AMPIC DRAM裝置所提供的基本結(jié)構(gòu),它通過設(shè)置在AMPIC DRAM裝置內(nèi)的DRAM存儲器陣列經(jīng)由對應(yīng)數(shù)據(jù)端口在系統(tǒng)I/O資源#1…#n之間提供非常高帶寬的連接。這樣的AMPIC DRAM裝置的靈活性也如早先指出的依靠圖2示例中所描述的“疊置”多個AMPIC DRAM裝置的能力而得到進一步增強。圖2中,描述一由四個AMPIC DRAM裝置AMPIC#0~#3組成的系統(tǒng),一系統(tǒng)中的AMPIC DRAM裝置的實際數(shù)量僅受工藝的限制。當做成這樣的AMPIC DRAM裝置的疊置結(jié)構(gòu)或陣列時,可用于系統(tǒng)I/O資源的總的DRAM陣列大小即等于各AMPIC DRAM裝置的DRAM陣列大小乘以疊置結(jié)構(gòu)中的裝置數(shù)。例如說,如果假定圖2中描述的各AMPIC DRAM包含64M比特的DRAM,則所示的AMPICDRAM疊置結(jié)構(gòu)#0~#3將給系統(tǒng)I/O資源#1~#4提供一256M比特的DRAM陣列。
雖然這樣的體系結(jié)構(gòu)的確為各系統(tǒng)I/O資源訪問DRAM提供非常大數(shù)量的帶寬,但此系統(tǒng)不能使一個系統(tǒng)I/O資源發(fā)送數(shù)據(jù)到另一系統(tǒng)I/O資源,如早先指出的。例如,如果系統(tǒng)I/O資源m有一條32K比特的消息要發(fā)送給系統(tǒng)I/O資源n,則一旦系統(tǒng)I/O資源m將此消息寫進AMPIC DRAM陣列#0~#3后,就必須有如本發(fā)明所提供的新的機制來向系統(tǒng)I/O資源n通知消息的存在和該消息在AMPIC DRAM陣列中的存儲單元(location)。系統(tǒng)I/O資源n一旦被通知消息的存在和在AMPIC DRAM陣列中的消息存儲單元,進而必須再按照本發(fā)明提供另外的新穎機制來使系統(tǒng)I/O資源n能從AMPIC DRAM陣列提取此消息。重要的是應(yīng)指出,如早先說明的,雖然消息數(shù)據(jù)被分布在整個AMPICDRAM陣列中,此時各陣列元素僅保持一部分的數(shù)據(jù),但必須將完整的信令信息發(fā)送給AMPIC DRAM陣列的每一個別元素。
假定存在一如本發(fā)明所提供的如以上和后面說明的所述型式的、系統(tǒng)I/O資源可借之通過AMPIC DRAM陣列相互發(fā)送消息的新穎機制,在系統(tǒng)I/O資源m傳送一32K比特信息到系統(tǒng)I/O資源n的說明性舉例中,1K字節(jié)的內(nèi)部數(shù)據(jù)總線允許在僅僅2個AMPIC DRAM傳送周期內(nèi)使消息在這兩個系統(tǒng)I/O資源間被傳送。為說明目的,如假定一AMPICDRAM傳送周期延續(xù)時間為50毫微秒(ns),則看到AMPIC DRAM內(nèi)可用的總帶寬將為每50ns 32k比特或每秒655×109比特。但這一非常寬的總線不太適宜于在系統(tǒng)I/O資源間傳送小型消息。例如在ATM網(wǎng)絡(luò)通訊中即需要在系統(tǒng)I/O資源間傳送小型消息。ATM中,數(shù)據(jù)僅以424比特為單位傳送。如果系統(tǒng)I/O資源m和n兩者均為ATM網(wǎng)絡(luò)裝置,系統(tǒng)I/O資源m就可能有一424比特的消息發(fā)送給系統(tǒng)I/O資源n。在這種情況下,32K比特寬的內(nèi)部總線將被用來在僅僅2個AMPICDRAM傳送周期中完成此傳送,而非常大數(shù)量的內(nèi)部總線在此傳送中被浪費掉。即使此消息僅占用此32k比特寬總線的424比特,而在系統(tǒng)I/O資源m和n完成它們的傳送期間所有其他系統(tǒng)I/O資源均將不能利用此數(shù)據(jù)總線。如果為此例的目的再假定AMPIC DRAM傳送周期為50ns,這一示例中所用的總帶寬僅為424比特/50ns或約8.5×109比特/s。應(yīng)注意到在此例中實際被應(yīng)用的帶寬僅約為能在AMPIC DRAM中利用的帶寬的1.3%。
本發(fā)明揭示一方法,從而在這類情況中將會更有效地利用非常寬的內(nèi)部數(shù)據(jù)總線,并通過使其能同樣適宜于小型和大型數(shù)據(jù)傳送而進一步增強AMPIC DRAM體系結(jié)構(gòu)的有用性。
現(xiàn)在討論本發(fā)明賴以實現(xiàn)這些改善的體系結(jié)構(gòu)。具體說,當系統(tǒng)I/O資源m有一條消息要寫進AMPIC DRAM時,此系統(tǒng)I/O資源必須能通知系統(tǒng)中的所有AMPIC DRAM關(guān)于放置此消息的DRAM地址。本發(fā)明提供為達到這種結(jié)果的圖3中所示體系結(jié)構(gòu)和機制。在圖3描述的系統(tǒng)中,圖2的四個AMPIC DRAM被表示為芯片0~3,各自帶有對系統(tǒng)I/O資源的1比特寬的串行接口。圖2的示例中,如所述共有未決申請中所揭示的,在數(shù)據(jù)傳送的第一周期,芯片0得到數(shù)據(jù)比特0,芯片1得到數(shù)據(jù)比特8,芯片2得到數(shù)據(jù)比特16,芯片3得到數(shù)據(jù)比特24。在下一時鐘周期,所有的數(shù)據(jù)比特被增量。這種過程繼續(xù)直至整個消息被發(fā)送到AMPIC DRAM為止。
按照本發(fā)明,如圖3中所描述的,與這一數(shù)據(jù)傳送同時還要求此系統(tǒng)I/O資源傳送在DRAM中存放數(shù)據(jù)的地址。系統(tǒng)I/O資源中地址寄存器的寬度將由AMPIC DRAM中DRAM陣列的大小和系統(tǒng)中的AMPICDRAM裝置的數(shù)量確定。
由前述示例可知,一具有四個各自含有64M比特的DRAM的AMPICDRAM裝置的系統(tǒng)將提供要求25地址比特的256M比特的AMPICDRAM陣列。但由于大存儲器陣列要求的大數(shù)量的地址比特,可能需要規(guī)定系統(tǒng)I/O資源與AMPIC DRAM間的地址總線比整個地址的大小窄而利用數(shù)次傳送來將完整的地址發(fā)送進AMPIC DRAM。例如,如果地址總線被規(guī)定為4比特寬,則可用7個周期來將完整的25比特地址傳送進AMPIC DRAM。這種地址傳送將與從系統(tǒng)I/O資源作的數(shù)據(jù)傳送同時發(fā)生,如圖3中描述的。在傳送的第一周期,“地址”的比特0至3被傳送。在第二周期,“地址”的比特4至7被傳送,等等,直至完整的地址被傳送到所有的AMPIC DRAM。重要的是應(yīng)指出,與數(shù)據(jù)傳送中系統(tǒng)中的各AMPIC DRAM接收數(shù)據(jù)的不同部分不一樣,圖3的系統(tǒng)中的各AMPIC DRAM將接收完整的DRAM地址的相同拷貝,這樣使得各AMPIC DRAM將由系統(tǒng)I/O資源發(fā)送的消息寫進內(nèi)部DRAM陣列中同樣的存儲單元。
為使消息到達其目標系統(tǒng)I/O資源,必須在目標側(cè)發(fā)生類似的尋址過程,如圖3a中所示。一旦系統(tǒng)I/O資源m將消息寫進AMPIC DRAM陣列后,消息被寫入的地址和消息的總的大小必須被轉(zhuǎn)送到目標系統(tǒng)I/O資源。目標系統(tǒng)I/O資源在接收消息的地址后將把該地址驅(qū)送進每一AMPIC DRAM裝置。各AMPIC DRAM裝置將進而由給定地址從其DRAM陣列讀取其消息數(shù)據(jù)部分并傳送此消息到目標系統(tǒng)I/O資源。在本發(fā)明的優(yōu)選實施例中,消息的大小在當此消息被寫進DRAM陣列時也被存儲在DRAM中。在AMPIC DRAM裝置接收此消息時,它對消息中的比特數(shù)加以計數(shù)如圖3中所示出的,一“數(shù)據(jù)有效”(DataValid)信號被加在所有的AMPIC DRAM數(shù)據(jù)接收端口上。源系統(tǒng)I/O資源在消息數(shù)據(jù)被發(fā)送到AMPIC DRAM期間一直保持“數(shù)據(jù)有效”信號為被認定的(asserted),AMPIC DRAM利用“數(shù)據(jù)有效”信號的這種認定來確定消息的長度。當數(shù)據(jù)被寫到DRAM陣列時,這一比特計數(shù)與消息本身一起被存儲。當消息被從DRAM陣列讀出時,對應(yīng)的比特計數(shù)連同數(shù)據(jù)一起讀出。AMPIC DRAM然后利用這一比特計數(shù)來確定欲發(fā)送的消息的長度。AMPIC DRAM通過按消息比特計數(shù)所指明的那樣的長度來認定“數(shù)據(jù)有效”信號來對目標系統(tǒng)I/O資源指示消息的大小。
每一AMPIC DRAM裝置內(nèi)存在有各消息的DRAM地址也對一個具有必須被發(fā)送到數(shù)個其他系統(tǒng)I/O資源的單個消息的系統(tǒng)I/O資源的情況提供有效解決辦法,這在圖4中被加以描述。這一類型的消息被定義作為多址傳送(multicast)消息。在一多址傳送消息的情況下,源系統(tǒng)I/O資源以與寫標準的即單址傳送(unicast)的消息同樣的方法將消息寫進AMPIC DRAM。DRAM陣列內(nèi)這一多址傳送消息的地址然后被傳送到所有被要求接收消息的系統(tǒng)I/O資源。然后每一目標系統(tǒng)I/O資源#1~#m進而將此多址傳送消息的地址驅(qū)送進AMPIC DRAM裝置。如果AMPIC DRAM設(shè)置有圖4中所描述的能比較從不同系統(tǒng)I/O資源所接收的DRAM地址的地址比較邏輯,則AMPIC DRAM的多址傳送控制部分識別出從每一多址傳送消息系統(tǒng)I/O資源接收到相同的DRAM地址,并僅需執(zhí)行單個DRAM讀周期。從該讀周期得到的DRAM數(shù)據(jù)將被圖4中所示的多址傳送控制邏輯同時轉(zhuǎn)送到所有目標系統(tǒng)I/O資源#1~#m,從而免除了對多址傳送消息的數(shù)個DRAM讀取需求。
在本發(fā)明的優(yōu)選實施例中,為指明將消息寫入的DRAM存儲單元所需地址比特的總數(shù)通過將DRAM邏輯劃分成許多同等大小的區(qū)域而進一步減少。例如說,在一分布于四個AMPIC DRAM裝置的256M比特AMPIC DRAM陣列的情況中,此陣列可被分成為例如2048比特的區(qū)域。在這一情況下,現(xiàn)在DRAM陣列將由128K個區(qū)域組成,每一AMPIC DRAM裝置存儲128K個區(qū)域的每一個的512比特。結(jié)果,為向AMPIC DRAM指明地址,總共僅需17地址比特?;氐揭?比特寬地址總線的例子中,現(xiàn)在只需5個周期來從系統(tǒng)I/O資源傳送地址進所有的AMPIC DRAM裝置。在作如此劃分的存儲器中,可能希望將區(qū)域的尺寸保持為很小以便能使得被浪費的存儲器空間最少。在上述2048比特區(qū)域的示例中,如果例如說系統(tǒng)I/O資源m具有一512比特的消息要寫進AMPIC DRAM,則此消息僅部分地填充一DRAM區(qū)域,造成被浪費的存儲器空間。
但盡管維持小的區(qū)域大小,本發(fā)明還提供一機制來處理系統(tǒng)I/O資源m有可能具有大于一區(qū)域的消息要寫進AMPIC DRAM的情況。在本發(fā)明的優(yōu)選實施例中對這一問題的解決辦法在圖5中說明。各DRAM區(qū)域#A~#C均保留一定數(shù)量的比特來保存所謂的鏈接地址。當系統(tǒng)I/O資源m有大于當前定義的區(qū)域大小的消息要寫進AMPIC DRAM時,此系統(tǒng)I/O資源將首先必須將此消息分成為數(shù)個片段,每一個的大小小于或等于當前所定義的區(qū)域的大小。消息的第一片段將被置入第一DRAM區(qū)域,而此區(qū)域的鏈接地址將被設(shè)定來指向消息的第二片段將被置入的下一DRAM區(qū)域,如此等等,直至整個的消息被寫進AMPICDRAM陣列。圖5中描述一其中消息占有3 DRAM區(qū)域的示例的結(jié)果。為了說明的目的,假定消息的大小為5120比特,并如上面所說假定區(qū)域的大小為2048比特。在此情況下,消息的比特1~2048將留在DRAM區(qū)域#A中,比特2049~4096將留在DRAM區(qū)域#B中,而比特4097~5120將留在DRAM區(qū)域#C中,結(jié)果就造成局部填充的DRAM區(qū)域,如圖5中所示。因為鏈接地址隨同消息數(shù)據(jù)一起被存放在AMPICDRAM陣列中,所以在發(fā)送消息到目標系統(tǒng)I/O資源時AMPIC DRAM即重新組裝完整的消息。在從AMPIC DRAM陣列讀取一區(qū)域時,AMPICDRAM中的邏輯檢查此區(qū)域的鏈接地址部分來確定這一DRAM區(qū)域是否是一條較大消息的一部分。如果此鏈接地址指向DRAM的另一區(qū)域,則從DRAM陣列中讀取該區(qū)域供轉(zhuǎn)送到目標端口。這一過程繼續(xù)進行直至AMPIC DRAM發(fā)現(xiàn)一個其鏈接地址不指向另一區(qū)域的DRAM區(qū)域,這時整個消息已被重新組裝。這種消息重新組裝的發(fā)生不會對目標系統(tǒng)I/O資源的部分產(chǎn)生任何妨礙,它完全由AMPIC DRAM內(nèi)的邏輯處理。
在本發(fā)明的一可替代實施例中,區(qū)域的大小在AMPIC中不是固定的,而是代之以如圖6中所描述的可編程為一定范圍的不同值。例如,在一個系統(tǒng)I/O資源間傳送的主要是小型消息的系統(tǒng)中,可將區(qū)域的大小設(shè)置為例如256比特。在一個系統(tǒng)I/O資源間傳送的主要是大型消息的系統(tǒng)中,可將區(qū)域的大小設(shè)置為例如2048比特。由AMPIC DRAM裝置提供這樣大小的范圍以便能最大限度地利用DRAM陣列和使得因小于區(qū)域大小的消息所造成浪費的存儲器空間最小。圖6中呈現(xiàn)三種不同區(qū)域大小A、B和C以及所得的DRAM陣列的結(jié)構(gòu)。在一另外的替代實施例中,通過根本不將DRAM陣列分成為多個區(qū)域來完全消除浪費的DRAM空間,如圖7中所示。在此實施例中,消息不管其大小均總是背對背地被放置進DRAM陣列。雖然增加了為跟隨DRAM地址所需的地址比特數(shù),但這一實施例具有最有效利用存儲器的優(yōu)點。圖7說明如何能在整個DRAM陣列作不同大小消息的分布。
在本發(fā)明的此優(yōu)選形式中,源系統(tǒng)I/O資源與目標I/O資源間所有的地址傳送均在AMPIC DRAM的外部邏輯中發(fā)生。在一可替代實施例中,這種功能由AMPIC DRAM本身處理,如圖8中所示。這里,所有的尋址和從源系統(tǒng)I/O資源到目標系統(tǒng)I/O資源的地址傳送均發(fā)生在AMPIC DRAM本身內(nèi)部。在這一實施例中,系統(tǒng)I/O資源無需知道消息在AMPIC DRAM陣列之內(nèi)被放置的DRAM地址。例如,如果源系統(tǒng)I/O資源有消息要發(fā)送到目標系統(tǒng)I/O資源,則此源系統(tǒng)I/O資源將發(fā)送消息數(shù)據(jù)進AMPIC DRAM,而無需作地址的驅(qū)送。應(yīng)指出的是,圖8僅描述一單個的AMPIC DRAM裝置,但此討論也同樣適用于由多個AMPIC DRAM組成的系統(tǒng),如前面已討論過的。在接收到此消息數(shù)據(jù)后,AMPIC DRAM從自由地址表選擇其DRAM陣列中的一自由地址并將消息寫到該存儲單元。然后將該地址轉(zhuǎn)送到目標系統(tǒng)I/O資源被連接的AMPIC DRAM端口。AMPIC DRAM則利用圖8中所描述的消息就緒信號向目標系統(tǒng)I/O資源通知AMPIC DRAM中存在有對于它的消息。在稍后某一時刻,目標系統(tǒng)I/O資源通過圖8的I/O資源就緒信號發(fā)出它已準備好接收此消息的信號,在該時刻各AMPIC DRAM裝置從其DRAM陣列檢索其消息數(shù)據(jù)部分并將數(shù)據(jù)轉(zhuǎn)送到目標系統(tǒng)I/O資源。就這樣,使得系統(tǒng)I/O資源完全獨立于AMPIC DRAM裝置的內(nèi)部結(jié)構(gòu);AMPIC DRAM陣列起作為一存儲和轉(zhuǎn)發(fā)的m×n交叉連接陣列的功能。在此實施例中,除保持跟隨消息在DRAM陣列中的存儲單元外,AMPICDRAM還必須保持跟蹤DRAM陣列中剩余的自由空間量。在DRAM陣列開始填滿時,AMPIC DRAM必須能向系統(tǒng)I/O資源通知在某一時間期間內(nèi)不發(fā)送任何消息,直至DRAM陣列已開始騰空。如圖8中所描述的自由地址表即被用于這一目的。
現(xiàn)在依次說明如圖9中所示AMPIC DRAM裝置內(nèi)傳送數(shù)據(jù)的優(yōu)選機制。AMPIC DRAM裝置的DRAM陣列被表明作實際劃分即分區(qū)成數(shù)個受獨立控制的存儲體;所實現(xiàn)的DRAM存儲體(DRAM存儲體1~m)的實際數(shù)量將僅取決于用來實現(xiàn)AMPIC DRAM的技術(shù)工藝。為簡化討論,這里將討論僅由單一AMPIC DRAM裝置組成的系統(tǒng),此討論能等同地應(yīng)用于由多個AMPIC DRAM裝置組成的系統(tǒng)。在后面的情況中,各AMPIC DRAM裝置中的DRAM陣列被作同樣分區(qū)。
更可取的是,DRAM存儲體的數(shù)量將大于或等于可被連接到AMPICDRAM的系統(tǒng)I/O資源的數(shù)量。圖9中表示非常寬的內(nèi)部數(shù)據(jù)總線被在每一DRAM存儲體間作均勻劃分。例如,在一帶有64個DRAM存儲體和32k比特寬數(shù)據(jù)總線的AMPIC DRAM實現(xiàn)方案中,用于各DRAM存儲體的數(shù)據(jù)總線將為512比特寬,64個512比特寬的總線組合來構(gòu)成完整的32k比特寬數(shù)據(jù)總線。如所述共有未決申請中和圖1中所揭示的,各系統(tǒng)I/O資源被連接到AMPIC DRAM內(nèi)一數(shù)據(jù)端口,后者再連接到內(nèi)部的非常寬的數(shù)據(jù)總線。在圖9所述實施例中,這些數(shù)據(jù)端口的每一個均被劃分為多個槽(0~m),各數(shù)據(jù)端口中的槽數(shù)等于DRAM存儲體數(shù)。在前述示例中,各數(shù)據(jù)端口將為32k比特寬,并將被劃分成為每一個區(qū)域512比特的64個區(qū)域。每一槽對應(yīng)于DRAM陣列的一單個存儲體。在數(shù)據(jù)從系統(tǒng)I/O資源抵達時,使此數(shù)據(jù)成為進入該系統(tǒng)I/O資源數(shù)據(jù)端口的適當槽的數(shù)據(jù)流,此適當?shù)牟塾蓴?shù)據(jù)要被入到的DRAM地址確定,它將進而確定數(shù)據(jù)被寫進哪一DRAM存儲體。應(yīng)當記得在本發(fā)明的優(yōu)選實施例中,這一地址由系統(tǒng)I/O資源與消息數(shù)據(jù)同時提供。如果進入的消息是例如32k比特寬,則整個消息可被分流進數(shù)據(jù)端口的全部64個槽,而后在單個AMPIC DRAM寫周期中被寫進DRAM陣列。如果再假定AMPIC DRAM傳送周期的延續(xù)時間為舉例值50ns,可看到最終內(nèi)部AMPIC DRAM帶寬將為32k比特/50ns或655×109比特/s。
另一方面,再回到先前提到的ATM網(wǎng)絡(luò)的示例,如果進入消息非常短,例如說424比特,則僅需應(yīng)用系統(tǒng)I/O資源數(shù)據(jù)端口的一個槽。在這種情況下,如果數(shù)個其他系統(tǒng)I/O資源以類似大小的消息填滿它們的數(shù)據(jù)端口的不同槽,則全部這些消息可同時傳送到DRAM,而使得能更有效地利用非常寬的數(shù)據(jù)總線。另一方面,也可使單個系統(tǒng)I/O資源能聚集多個短消息,在將此消息數(shù)據(jù)寫進DRAM陣列前填充其數(shù)據(jù)端口的數(shù)個槽。應(yīng)指出的是,如果每一個消息被預(yù)定用于一如消息地址所指明的不同的DRAM存儲體,則單個系統(tǒng)I/O資源僅能在其數(shù)據(jù)端口中聚集數(shù)個短消息。在任一種情況下,在當前的64 DRAM存儲體的示例中,AMPIC DRAM內(nèi)可同時傳送達64個消息,或者來自同一系統(tǒng)I/O資源,或者來自許多不同的系統(tǒng)I/O資源。利用AMPIC DRAM傳送周期持續(xù)時間為50ns的示例指標,因此計算得的為ATM網(wǎng)絡(luò)所應(yīng)用的帶寬將為(64*424)比特/50ns或542×109比特/s,即差不多為全部可用帶寬的83%。這一總體帶寬利用在AMPIC DRAM裝置中設(shè)置的DRAM存儲體數(shù)增加時將增大。因此這里所揭示的DRAM和緩存結(jié)構(gòu)通過使來自不同系統(tǒng)I/O資源的數(shù)個小型數(shù)據(jù)傳送能同時發(fā)生而提供支持小數(shù)量的非常寬的數(shù)據(jù)傳送與較大數(shù)量的小數(shù)據(jù)傳送之間的平衡。
但這一發(fā)明的先前所述實施例在系統(tǒng)I/O資源發(fā)送兩個均被預(yù)定為同一DRAM存儲體的連續(xù)的消息進AMPIC DRAM時具有局限性。在這一特殊情況中,因為兩個消息必須利用數(shù)據(jù)端口的同一槽,第二個消息在被寫進此數(shù)據(jù)端口前必須等待直到第一消息被寫進DRAM陣列。圖10中描述本發(fā)明的為緩解這一問題的一可替換實施例。在此實施例中,在各系統(tǒng)I/O資源數(shù)據(jù)端口(1~n)與DRAM陣列(存儲體1~m)之間設(shè)置一m×n交叉開關(guān)。在這一情況中,DRAM陣列由m個存儲體組成而緩存器由s個槽組成。此交叉開關(guān)使得緩存器的任何區(qū)域被驅(qū)送到任一DRAM存儲體,因而使緩存器獨立于所用的DRAM地址,而不是控制數(shù)據(jù)必須被寫進哪一緩存器區(qū)域,此DRAM地址將控制開關(guān)的功能作用。在此例中,如果系統(tǒng)I/O資源1已將424比特寫進預(yù)定用于DRAM存儲體1的數(shù)據(jù)端口槽0而系統(tǒng)I/O資源n也已將424比特寫進預(yù)定用于DRAM存儲體m的其數(shù)據(jù)端口的槽1,則二消息可同時被寫進DRAM。AMPIC DRAM中的邏輯將必須恰當?shù)乜刂聘鞫丝陂_關(guān)以便為各次傳送將正確的數(shù)據(jù)端口槽轉(zhuǎn)接到正確的DRAM存儲體。重要的是應(yīng)指出,這一開關(guān)還將必須作雙向操作,亦即,對于數(shù)據(jù)要被從AMPIC DRAM發(fā)送到系統(tǒng)I/O資源的DRAM讀取,開關(guān)必須能從正確的DRAM存儲體移動數(shù)據(jù)進合適的數(shù)據(jù)端口槽。雖然不改變由本發(fā)明優(yōu)選實施例所提供的總體帶寬應(yīng)用,而借助提供緩存器區(qū)域應(yīng)用中的地址獨立性,本替換實施例中的交叉開關(guān)使得能更靈活地應(yīng)用完整的數(shù)據(jù)端口。例如,在前述驅(qū)送兩個均預(yù)定用于同一DRAM存儲體的連續(xù)消息進AMPIC DRAM的系統(tǒng)I/O資源示例中,第二消息現(xiàn)在被寫進數(shù)據(jù)端口的下一可用的槽而不管其最終目標DRAM存儲體如何。當?shù)竭_寫消息進DRAM的時刻時,此m×n交叉開關(guān)被用來轉(zhuǎn)送消息到適當?shù)腄RAM存儲體。
對于本技術(shù)領(lǐng)域內(nèi)的熟悉人員來說還可存在更多的修改,而這些均被認為是落在所列權(quán)利要求中所定義的發(fā)明精神和范疇之內(nèi)。
權(quán)利要求
1.在多端口內(nèi)部高速緩存的AMPIC DRAM單元的陣列中改善運行性能的方法,所述陣列中多個系統(tǒng)I/O資源沿著被連接到陣列各單元中的對應(yīng)DRAM核的公用內(nèi)部數(shù)據(jù)總線接口,并且其中來自CPU或類似源的數(shù)據(jù)在數(shù)據(jù)傳送周期內(nèi)也用各單元沿著總線傳送,所述方法包括在數(shù)據(jù)傳送的同時,通過在所述數(shù)據(jù)傳送周期內(nèi)從一系統(tǒng)I/O資源向陣列中的所有AMPIC DRAM單元發(fā)送消息并同時發(fā)送關(guān)于DRAM中的消息地址單元的比特信息而使得系統(tǒng)I/O資源能發(fā)送比特消息給其他系統(tǒng)I/O資源。
2.權(quán)利要求1中所述方法,其特征是,在所述數(shù)據(jù)傳送期間各AMPICDRAM單元接收數(shù)據(jù)的不同部分,但各AMPIC DRAM單元接收同一DRAM消息地址單元,以使各AMPIC DRAM能將系統(tǒng)I/O資源所發(fā)送的消息寫進內(nèi)部DRAM陣列的同一存儲單元。
3.權(quán)利要求2中所述方法,其特征是在消息目標系統(tǒng)I/O資源處此消息被讀出。
4.權(quán)利要求1中所述方法,其特征是,在將一系統(tǒng)I/O資源所發(fā)送的消息寫進AMPIC DRAM陣列后,向該消息所預(yù)定用于的目標系統(tǒng)I/O資源通知存在一消息和在AMPIC DRAM陣列內(nèi)此消息的地址單元。
5.權(quán)利要求4中所述方法,其特征是,此消息所預(yù)定用于的目標I/O資源在被這樣通知后從AMPIC DRAM陣列提取此消息。
6.權(quán)利要求5中所述方法,其特征是消息數(shù)據(jù)被在整個AMPICDRAM陣列中分布,陣列的各元素保持此數(shù)據(jù)的一部分,而消息的完整信令信息被送到AMPIC DRAM陣列的每一個別元素。
7.權(quán)利要求3中所述方法,其特征是消息比特地址單元信息在DRAM陣列中被邏輯劃分成多個區(qū)域。
8.權(quán)利要求7中所述方法,其特征是區(qū)域的大小相等。
9.權(quán)利要求7中所述方法,其特征是鏈接地址比特被包括在消息存儲單元信息中用于鏈接大于所述區(qū)域的消息的各部分。
10.權(quán)利要求1中所述方法,其特征是AMPIC DRAM陣列被劃分成大于或等于連接到AMPIC DRAM的系統(tǒng)I/O資源數(shù)的數(shù)個被獨立控制的存儲體,各內(nèi)部數(shù)據(jù)總線被在每一DRAM存儲體之間均分。
11.權(quán)利要求10中所述方法,其特征是在各系統(tǒng)I/O資源數(shù)據(jù)端口與DRAM陣列之間插入有交叉開關(guān),用于為各次傳送雙向轉(zhuǎn)接正確的數(shù)據(jù)端口到正確的DRAM存儲體。
12.權(quán)利要求4中所述方法,其特征是消息的大小也隨消息地址單元被轉(zhuǎn)送到目標系統(tǒng)I/O資源。
13.權(quán)利要求12中所述方法,其特征是當消息被寫入DRAM陣列時消息的大小被存儲在其中,并且通過在消息比特計數(shù)所指明的長度內(nèi)認定“數(shù)據(jù)有效”信號來向目標資源I/O指出消息的大小。
14.權(quán)利要求4中所述方法,其特征是目標系統(tǒng)I/O資源在接收到消息的地址單元后將此地址單元驅(qū)送進每一AMPIC DRAM。
15.權(quán)利要求5中所述方法,其特征是一旦消息的地址單元已被驅(qū)送進每一AMPID DRAM,即通過從陣列的各AMPIC DRAM讀出其消息數(shù)據(jù)部分并將此消息轉(zhuǎn)送到目標I/O資源來實現(xiàn)消息的提取。
16.權(quán)利要求14中所述方法,其特征是此消息被作為一多址傳送消息被發(fā)送到數(shù)個目標系統(tǒng)I/O資源,并且在判斷出已從每一個多址傳送消息系統(tǒng)I/O資源接收到同一DRAM地址后執(zhí)行單一的DRAM讀周期。
17.權(quán)利要求9中所述方法,其特征是在從AMPIC DRAM陣列的連續(xù)區(qū)域讀取消息時,當一區(qū)域中的鏈接地址不指向另一區(qū)域時,整個消息即已被讀出。
18.權(quán)利要求7中所述方法,其特征是區(qū)域大小被編程為一定范圍的可變大小值以分別適應(yīng)相對很小和很大的消息。
19.權(quán)利要求3中所述方法,其特征是將消息背靠背地存儲在DRAM陣列中而不管消息大小如何,相應(yīng)地不同大小的消息即被分布在整個陣列中。
20.權(quán)利要求3中所述方法,其特征是系統(tǒng)I/O資源間的地址傳送在AMPIC DRAM的外部邏輯中執(zhí)行。
21.在一多端口內(nèi)部高速緩存的AMPIC DRAM單元陣列中改善運行性能的方法,所述陣列中多個系統(tǒng)I/O資源沿連接到陣列的各單元的對應(yīng)DRAM核的公用內(nèi)部數(shù)據(jù)總線接口,并且其中在數(shù)據(jù)傳送周期內(nèi)來自CPU或類似源的數(shù)據(jù)也用各單元沿總線傳送,所述方法包括在數(shù)據(jù)傳送的同時,使得系統(tǒng)I/O資源能互相發(fā)送多比特消息,這是通過下述步驟實現(xiàn)的從一系統(tǒng)I/O資源發(fā)送欲供一系統(tǒng)目標I/O資源用的消息到AMPIC DRAM單元,后者在接收到該消息數(shù)據(jù)時選擇DRAM陣列中一自由地址單元并將消息寫到該單元,從而用一消息就緒信號通知系統(tǒng)目標I/O資源,而且當系統(tǒng)目標I/O資源準備好接收消息時,從陣列的各DRAM檢索其消息數(shù)據(jù)部分并轉(zhuǎn)送該數(shù)據(jù)到目標I/O資源,所有這些都與AMPIC DRAM單元的內(nèi)部結(jié)構(gòu)無關(guān),而該陣列則起存儲和轉(zhuǎn)發(fā)交叉連接矩陣的功能作用。
22.權(quán)利要求10中所述方法,其特征是各系統(tǒng)I/O資源均被連接到AMPIC DRAM內(nèi)的數(shù)據(jù)端口,并執(zhí)行下述步驟,即,將各端口劃分成等于DRAM存儲體數(shù)的槽,并使從系統(tǒng)I/O資源抵達的數(shù)據(jù)流入由數(shù)據(jù)要被寫入的DRAM地址確定的系統(tǒng)I/O資源數(shù)據(jù)端口的適當?shù)牟?,并進而確定數(shù)據(jù)被寫入哪一DRAM存儲體。
23.權(quán)利要求22中所述方法,其特征是相對短的消息被應(yīng)用于ATM網(wǎng)絡(luò),從一系統(tǒng)I/O資源輸入的消息數(shù)據(jù)被作成數(shù)據(jù)流進入系統(tǒng)I/O資源數(shù)據(jù)端口的一個槽,并且其中如果其他的系統(tǒng)I/O資源已以同樣短的消息填充它們的相應(yīng)數(shù)據(jù)端口的不同槽時,即同時將所有消息傳送到DRAM陣列,由此而使得能有效地利用所述數(shù)據(jù)總線。
24.用于增強多端口內(nèi)部高速緩存(AMPIC)的DRAM單元陣列的運行性能的設(shè)備,所述陣列中多個系統(tǒng)I/O資源沿著連接到此陣列各單元中的相應(yīng)DRAM核的共用內(nèi)部數(shù)據(jù)總線接口,其中在數(shù)據(jù)傳送周期內(nèi)來自CPU或類似源的數(shù)據(jù)也用各單元沿總線傳送,所述設(shè)備具有相組合的邏輯電路,用于通過在所述數(shù)據(jù)傳送周期內(nèi)從一系統(tǒng)I/O資源向陣列中的所有AMPIC DRAM單元發(fā)送消息并同時發(fā)送關(guān)于在DRAM中的消息地址單元的信息使系統(tǒng)I/O資源能互相發(fā)送多比特消息;各個AMPIC DRAM單元在所述傳送期間內(nèi)接收數(shù)據(jù)的不同部分,各AMPICDRAM單元連接來接收同一DRAM消息地址單元并將由一系統(tǒng)I/O資源所發(fā)送的消息寫進內(nèi)部DRAM陣列中的同一存儲單元。
25.權(quán)利要求24中所述設(shè)備,其特征是消息目標系統(tǒng)I/O資源設(shè)置有使消息能被讀出的裝置。
26.權(quán)利要求25中所述設(shè)備,其特征是設(shè)置有可運行來在將系統(tǒng)I/O資源所發(fā)送的消息寫進AMPIC DRAM陣列后向此消息所預(yù)定用于的目標系統(tǒng)I/O資源通知存在一消息和在AMPIC DRAM陣列內(nèi)的此消息地址單元的裝置。
27.權(quán)利要求26中所述設(shè)備,其特征是設(shè)置有使得消息所預(yù)定用于的目標系統(tǒng)I/O資源能在被這樣通知后從AMPIC DRAM陣列提取此消息的裝置。
28.權(quán)利要求27中所述設(shè)備,其特征是消息數(shù)據(jù)在整個AMPICDRAM陣列中分布,陣列的各元素保持數(shù)據(jù)的一部分,消息的完整信令信息被發(fā)送到AMPIC DRAM陣列的各個別元素。
29.權(quán)利要求26中所述設(shè)備,其特征是所述邏輯電路使得消息的大小也隨同消息地址單元被轉(zhuǎn)送到目標系統(tǒng)I/O資源。
30.權(quán)利要求29中所述設(shè)備,其特征是所述邏輯電路使得當消息被寫進DRAM陣列時消息的大小也被寫在其中,并通過在消息比特計數(shù)所指明的長度內(nèi)認定“數(shù)據(jù)有效”信號來對目標系統(tǒng)I/O資源指明消息的大小。
31.權(quán)利要求26中所述設(shè)備,其特征是設(shè)置有用于使目標系統(tǒng)I/O資源在接收到消息的地址單元時將此地址單元驅(qū)送進每個AMPICDRAM的裝置。
32.權(quán)利要求27中所述設(shè)備,其特征是一旦消息的地址單元被驅(qū)送進每一AMPIC DRAM后則借助用于從陣列的各AMPIC DRAM讀出其消息數(shù)據(jù)部分并將此消息轉(zhuǎn)發(fā)到目標I/O資源的裝置來執(zhí)行消息提取。
33.權(quán)利要求31中所述設(shè)備,其特征是此消息被作為多址傳送消息發(fā)送到數(shù)個目標系統(tǒng)I/O資源,在判斷出從每個多址傳送消息系統(tǒng)I/O資源接收到同一DRAM地址后,執(zhí)行單個DRAM讀周期。
34.權(quán)利要求25中所述設(shè)備,其特征是消息比特地址單元信息在DRAM陣列中被邏輯劃分成為多個相同的區(qū)域。
35.權(quán)利要求34中所述設(shè)備,其特征是鏈接地址比特被包括在消息地址單元信息中用于鏈接大于區(qū)域的消息的各部分。
36.權(quán)利要求35中所述設(shè)備,其特征是在從連續(xù)的陣列區(qū)域讀出消息期間,當一區(qū)域中的鏈接地址不指向另一區(qū)域時,則已讀出整個消息。
37.權(quán)利要求34中所述設(shè)備,其特征是區(qū)域大小被編程為一可變大小值的范圍來適應(yīng)相對小和大的消息。
38.權(quán)利要求25中所述設(shè)備,其特征是消息被背靠背地存儲在DRAM陣列中而不管消息的大小,相應(yīng)地不同大小的消息被分布在整個陣列中。
39.權(quán)利要求25中所述設(shè)備,其特征是系統(tǒng)I/O資源間地址的傳送由AMPIC DRAM外部的邏輯電路執(zhí)行。
40.權(quán)利要求25中所述設(shè)備,其特征是陣列被劃分成數(shù)個被獨立地控制的DRAM存儲體,其中各系統(tǒng)I/O資源被連接到AMPIC DRAM內(nèi)的數(shù)據(jù)端口,各端口被劃分成等于DRAM存儲體數(shù)的槽,從系統(tǒng)I/O資源到達的數(shù)據(jù)即流入由數(shù)據(jù)要被寫入的DRAM地址所確定的系統(tǒng)I/O資源數(shù)據(jù)端口的適當?shù)牟?,并進而確定數(shù)據(jù)被寫入哪一個DRAM存儲體。
41.權(quán)利要求40中所述設(shè)備,其特征是相對短的消息如ATM網(wǎng)絡(luò)中那樣被加以利用,從一系統(tǒng)I/O資源進入的消息數(shù)據(jù)流進系統(tǒng)I/O資源數(shù)據(jù)端口的一個槽,而且其中,如果其他系統(tǒng)I/O資源已以同樣短的消息填充它們的對應(yīng)數(shù)據(jù)端口的不同槽,則設(shè)置有同時傳送所有消息到DRAM的裝置,使得能有效利用所述數(shù)據(jù)總線。
全文摘要
用于增強多端口內(nèi)部高速緩存的DRAM等的運行性能的設(shè)備和方法,其中向系統(tǒng)I/O資源傳送由其他的這類資源發(fā)送的消息和DRAM陣列內(nèi)的消息存儲單元,并進一步為適應(yīng)小型和大型數(shù)據(jù)傳輸提供有效的內(nèi)部總線利用。
文檔編號G06F13/16GK1266517SQ98807724
公開日2000年9月13日 申請日期1998年7月23日 優(yōu)先權(quán)日1997年7月28日
發(fā)明者理查德·康林, 蒂姆·賴特, 彼利·馬爾科尼, 穆凱什·查特 申請人:奈克瑟比特網(wǎng)有限責任公司