專利名稱:使用多端口存儲器的體系結(jié)構(gòu)、裝置、系統(tǒng)及其使用方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及多端口存儲器領(lǐng)域,更具體地說,本發(fā)明的實施例涉及使用多端口存儲器在網(wǎng)絡(luò)中進行數(shù)據(jù)通信的體系結(jié)構(gòu)、系統(tǒng)和方法。
背景技術(shù):
為了能夠迅速地從一個或多個數(shù)據(jù)源將數(shù)據(jù)傳送到多個目的地中的任何一個,在網(wǎng)絡(luò)中、通常是在交換裝置中使用存儲器。圖1示出一種傳統(tǒng)的多端口存儲器體系結(jié)構(gòu)10,包括存儲陣列20、端口30-37、先進先出存儲(FIFO)緩沖器40-47和多路復(fù)用器54。各個端口30-37從網(wǎng)絡(luò)(例如一以太網(wǎng)設(shè)備)接收串行數(shù)據(jù),并且將其轉(zhuǎn)換為m位寬的并行數(shù)據(jù)。在一個例子中,m是8。在其被存儲到存儲陣列20之前,這一m位寬的并行數(shù)據(jù)被臨時放置在一個相應(yīng)的FIFO緩沖器40-47中,該相應(yīng)的FIFO緩沖器40-47也起到時間域變更緩沖器的作用。存儲陣列20具有一個寫端口22和一個讀端口24,數(shù)據(jù)經(jīng)由這些端口而分別在該陣列20的各存儲單元中往返傳送。由于寫總線50和讀總線52環(huán)繞存儲陣列20,每個FIFO緩沖器40-47可以獨立地與存儲陣列20交互作用。每一個FIFO緩沖器40-47也被配置用于將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),在一個例子中,其將字節(jié)串行數(shù)據(jù)轉(zhuǎn)換為字節(jié)并行數(shù)據(jù)。由于每個FIFO緩沖器40-47有其自身對存儲陣列20的專用寫總線,而寫總線50為(m*n)至(8m*n)位寬,故每個總線為m*n位寬,使得緩沖器40-47的其中之一能夠與存儲陣列20通信。由于存儲器輸入端口22也是m*n位寬,多路復(fù)用器50選擇其中一個專用的FIFO到存儲器寫總線,以將數(shù)據(jù)從該FIFO寫入存儲器20中。讀總線52從存儲器20將m*n位寬的數(shù)據(jù)輸出到所有的FIFO緩沖器40-47。傳遞給所有的FIFO緩沖器40-47的一個多位控制信號確定FIFO緩沖器40-47中的哪一個緩沖器將數(shù)據(jù)寫入其存儲單元中,以便隨后經(jīng)由相應(yīng)的端口30-37對外傳送。
端口30-37典型地以例如大約1GHz的網(wǎng)絡(luò)速度工作。但是,存儲陣列20典型地以例如100-200MHz的顯著更慢的速度工作。因此,體系結(jié)構(gòu)10需要用FIFO緩沖器臨時存儲要進入或者退出存儲陣列20的數(shù)據(jù)。但是,F(xiàn)IFO緩沖器40-47典型地被設(shè)置在端口30-37附近,由于總線50和52的負載技術(shù)要求(例如必須克服或者控制總線50和52的固有電容、電阻和/或阻抗的電流和/或電壓),使得FIFO緩沖器40-47和存儲陣列20的有效運行速度受到了限制。因此,為了改善使用圖1所示體系結(jié)構(gòu)時的處理量,人們必須提高存儲器速度,或者是提高帶寬(即攜帶數(shù)據(jù)往返于存儲陣列20的總線寬度)。
但是,對于體系結(jié)構(gòu)10的最大處理量存在物理限制。在任何一種給定的處理技術(shù)中,存儲器只能運行得這么快,而由于存儲器控制信號的內(nèi)負荷,提高存儲器的寬度限制了其速度。增加存儲器的外部寬度導(dǎo)致增加電路小片面積和電路小片成本。在圖1的例子中,當(dāng)所有的端口30-37以1Gbit/秒工作而m為8的時候,該8位字節(jié)的數(shù)據(jù)由FIFO40-47以125MHz的速度接收。該數(shù)據(jù)是全雙向的,因此對于每個端口來說,需要在每個方向上以125MHz的速度處理8位數(shù)據(jù)。因此,存儲器20必須能夠每個周期以125MHz的速度處理(8個端口*8位*2個方向=)128位數(shù)據(jù)。在一個24端口的體系結(jié)構(gòu)中,存儲器20必須能夠以125MHz的速度處理384位的數(shù)據(jù)。由于在存儲器速度和/或存儲器總線尺寸(寬度和/或長度)上有限制,制約了該標(biāo)準(zhǔn)存儲陣列20的處理量,故希望有其他方案。
因此,需要提高多端口存儲器的運行速度,以便滿足對于提高網(wǎng)絡(luò)速度和高度網(wǎng)絡(luò)交換靈活性的不斷增長的需求。
發(fā)明內(nèi)容
本發(fā)明的實施例涉及多端口存儲器體系結(jié)構(gòu)、系統(tǒng)及其使用方法。該多端口存儲器體系結(jié)構(gòu)一般包括(a)一個存儲陣列;(b)多個端口,其被配置用于接收和/或傳送數(shù)據(jù);和(c)多個端口緩沖器,其各自被配置用于對一個或多個端口傳送數(shù)據(jù)和/或從上述端口接收數(shù)據(jù)。而且上述各組件均被配置用于(i)在第一公共總線上將數(shù)據(jù)傳送到所述存儲陣列,和(ii)在第二公共總線上從所述存儲陣列接收數(shù)據(jù)。一般來說,所述系統(tǒng)和網(wǎng)絡(luò)轉(zhuǎn)換開關(guān)所包括的組件實際運用了此處公開的一個或多個本發(fā)明的概念。
所述寫方法通常包括以下步驟(1)將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù),n位數(shù)據(jù)構(gòu)成一個字;(2)緩沖該n位寬并行數(shù)據(jù)的k個字長的數(shù)據(jù)塊;和(3)大體上同時將該k*n位的數(shù)據(jù)寫入存儲器中。本發(fā)明還涉及從存儲器讀取數(shù)據(jù)的方法,包括步驟(1′)大體上同時將k*n位的數(shù)據(jù)從存儲器輸出到k*n位寬的總線上;(2′)將該k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù);和(3′)將該n位寬的并行數(shù)據(jù)轉(zhuǎn)換為要從存儲器外部讀取的串行數(shù)據(jù)。本發(fā)明還涉及一種在網(wǎng)絡(luò)中傳送數(shù)據(jù)的方法,其包括對存儲器進行讀取和寫入的各種本發(fā)明的方法的一個或多個步驟的組合。
有利的是,本發(fā)明通過使端口緩沖器與主存儲器緊密相連,降低了在數(shù)據(jù)通信時、尤其是在分組網(wǎng)交換時的等待時間,從而能夠方便地(1)經(jīng)由相對長的存儲器讀和寫路徑段來使用點對點通信,和(2)在存儲器讀和寫路徑中排除FIFO(先入先出)存儲器。因此,本發(fā)明總的來說還減少了路由擁塞并減小了電路小片尺寸,當(dāng)使用標(biāo)準(zhǔn)的基于小區(qū)的設(shè)計技術(shù)時尤其如此。芯片內(nèi)從結(jié)合區(qū)(bond pad)到端口緩沖器的點對點通信,更進一步減少了附加的相應(yīng)線路,并且反之亦然。通過使端口緩沖器與主存儲陣列緊密相連,本發(fā)明有利地降低了存儲器讀總線和寫總線中的阻容(RC)成分,更進一步提高了數(shù)據(jù)傳輸速度和吞吐量。與此相反的是,圖1所示的路由結(jié)構(gòu)相對較為復(fù)雜,并且耗用了更大的芯片面積。
通過下面對優(yōu)選實施例的詳細描述,本發(fā)明的上述優(yōu)點和其他優(yōu)點將變得顯而易見。
圖1是一個示意圖,其展示出常規(guī)的多端口存儲器體系結(jié)構(gòu)。
圖2是一個示意圖,展示出本發(fā)明的多端口存儲器體系結(jié)構(gòu)的一個實施例。
圖3是一個示意圖,展示出本發(fā)明的多端口存儲陣列的一個優(yōu)選實施例。
圖4是一個示范性的雙重緩沖端口緩沖器的方框圖。
圖5是一個示范性的單重緩沖端口緩沖器的方框圖。
圖6是一個根據(jù)本發(fā)明的示范性端口緩沖器寫操作的時序圖。
圖7是根據(jù)本發(fā)明的第二個示范性端口緩沖器寫操作的時序圖。
圖8是一個根據(jù)本發(fā)明的示范性端口緩沖器讀操作的時序圖。
圖9是本發(fā)明的示范性存儲塊寫操作的時序圖。
圖10是根據(jù)本發(fā)明的示范性存儲塊讀操作的時序圖。
圖11是根據(jù)本發(fā)明的第二個示范性存儲塊讀操作的時序圖。
圖12是根據(jù)本發(fā)明的示范性并行寫和讀寄存器操作的時序圖。
具體實施例方式
現(xiàn)在將詳細介紹本發(fā)明的優(yōu)選實施例,其中例子以
。雖然本發(fā)明將結(jié)合優(yōu)選實施例描述,但應(yīng)明白,這些實施例并非意在限制本發(fā)明。相反地,本發(fā)明意欲覆蓋那些包括在由所附權(quán)利要求限定的處于本發(fā)明的精神和范圍之內(nèi)的替換、修改和等效方案。此外,在以下對本發(fā)明的詳細描述中,會說明許多特定的細節(jié),其目的是為了便于徹底理解本發(fā)明。但是,對于一個本領(lǐng)域技術(shù)人員來說顯而易見的是,無需這些特定的細節(jié)即可以實施本發(fā)明。此外,本說明書未詳細描述公知的方法、步驟、組成部分和電路,其目的是避免使本發(fā)明的各方面變得難以與之區(qū)分。
下面依據(jù)在計算機、處理器、控制器和/或存儲器內(nèi)的操作、步驟、邏輯塊、功能塊、處理,以及其他有關(guān)數(shù)據(jù)位、數(shù)據(jù)流或者波形操作的符號表示來給出某些部分的詳細說明。這些描述和表示通常是由那些數(shù)據(jù)處理領(lǐng)域的技術(shù)人員使用的,借以有效地將他們的工作實質(zhì)表達給其他本領(lǐng)域技術(shù)人員。在此處(并且也是在通常意義上)認為操作、步驟、邏輯塊、功能、處理等等是一種步驟或者命令的自相一致的序列,產(chǎn)生想要的和/或預(yù)期的結(jié)果。這些步驟通常包括對物理參數(shù)的實際操作。盡管并非一定如此,但通常這些參數(shù)采用電、磁、光或者量子信號的形式,它們能夠被存儲、傳送、組合、比較,及在計算機或者數(shù)據(jù)處理系統(tǒng)中受到其他操作。主要由于公共用途的原因,已經(jīng)證明有時用位、波、波形、數(shù)據(jù)流、值、成分、碼元、字符、項、數(shù)字等等表示這些信號是方便的。
但是應(yīng)考慮到,所有上述術(shù)語和類似術(shù)語均與相應(yīng)的物理參數(shù)有關(guān),并且僅僅是施加于這些參數(shù)上的適宜標(biāo)記。除非具體地指明和/或根據(jù)下面論述顯而易見,否則應(yīng)理解,在通篇本發(fā)明申請文件的討論中,均利用諸如“處理”、“操作”、“估計”、“計算”、“確定”、“操作”、“變換”、“顯示”等等術(shù)語指計算機或者數(shù)據(jù)處理系統(tǒng)、或者類似的處理設(shè)備(例如電子、光學(xué)、或量子計算或者處理設(shè)備)的動作和處理過程,其操縱和變換表現(xiàn)為物理(例如電子)量的數(shù)據(jù)。以上術(shù)語指的是處理設(shè)備的動作和過程,其將在一系統(tǒng)或者體系結(jié)構(gòu)的組成部分內(nèi)的物理參數(shù)操作或者說變換為其他數(shù)據(jù),該其他數(shù)據(jù)類似地表示在相同或者不同的系統(tǒng)或者體系結(jié)構(gòu)的其他組成部分內(nèi)的物理參數(shù)。
此外,為方便和簡明起見,術(shù)語“時鐘”、“時間”、“速度”、“周期”和“頻率”在本說明書中可在某種程度上互換使用,但是通常給出其本領(lǐng)域內(nèi)公認的含義。此外,為方便和簡明起見,術(shù)語“數(shù)據(jù)”、“數(shù)據(jù)流”、“信號”、“波形”和“信息”可以互換使用,同樣,術(shù)語“連接到”、“耦合”、“與...相連”、“與...通信”(其可能涉及一個直接或者間接鏈路或者信號通路)可互換使用,但是這些術(shù)語通常也給出其本領(lǐng)域內(nèi)公認的含義。
本發(fā)明涉及一種多端口存儲器體系結(jié)構(gòu),和包括該體系結(jié)構(gòu)的系統(tǒng)及其使用方法。所述多端口存儲器體系結(jié)構(gòu)通常包括(a)一個存儲陣列;(b)被配置用以接收和/或傳送數(shù)據(jù)的多個端口;和(c)多個端口緩沖器,每個端口緩沖器被配置用以對一個或多個所述端口傳送數(shù)據(jù)和/或從一個或多個所述端口接收數(shù)據(jù),并且全部端口緩沖器被配置用于(i)在第一公共總線上將數(shù)據(jù)到傳送存儲陣列,和(ii)在第二公共總線上從存儲陣列接收數(shù)據(jù)。本發(fā)明的另一方面涉及網(wǎng)絡(luò)交換機、系統(tǒng)和網(wǎng)絡(luò),它們通常包括本發(fā)明的體系結(jié)構(gòu)和/或?qū)嵤┝嗽诖颂幟枋龅囊粋€或多個本發(fā)明的概念。
本發(fā)明的再進一步的方面涉及從存儲器讀取和/或?qū)Υ鎯ζ鲗懭氲姆椒?。所述寫入方法通常包括以下步驟(1)將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù),n位數(shù)據(jù)構(gòu)成一個字;(2)緩沖由該n位寬的并行數(shù)據(jù)構(gòu)成的k個字長的數(shù)據(jù)塊;和(3)大體上同時將該k*n位的數(shù)據(jù)寫入存儲器之內(nèi)。本發(fā)明還涉及從存儲器讀取數(shù)據(jù)的方法,其包括以下步驟(1′)大體上同時將k*n位的數(shù)據(jù)從存儲器輸出到一個k*n位寬的總線上;(2′)將該k*n位的數(shù)據(jù)轉(zhuǎn)換成n位寬的并行數(shù)據(jù);和(3′)將該n位寬的并行數(shù)據(jù)轉(zhuǎn)換成要從存儲器外部讀取的串行數(shù)據(jù)。本發(fā)明還涉及一種在網(wǎng)絡(luò)中傳送數(shù)據(jù)的方法,包括出自本發(fā)明的對存儲器寫入和從存儲器讀取的各方法的一個或多個步驟的組合。
以下將就示范性的實施例,從其各個不同的方面更詳細地解釋本發(fā)明。
一種示范性的存儲器體系結(jié)構(gòu)在一個方面看,本發(fā)明涉及一種多端口存儲器體系結(jié)構(gòu),其通常包括(a)一個存儲陣列;(b)多個端口,該多個端口被配置用于接收和/或傳送數(shù)據(jù);和(c)多個端口緩沖器,每個端口緩沖器均被配置用于對實施一個或多個端口傳送數(shù)據(jù)和/或從該一個或多個端口緩沖器接收數(shù)據(jù),并且全部端口緩沖器均被配置用于(i)在第一公共總線上將數(shù)據(jù)塊傳送到所述存儲陣列,和(ii)在第二公共總線上從該存儲陣列接收該數(shù)據(jù)塊。
圖2展示了本發(fā)明的多端口存儲器體系結(jié)構(gòu)的第一個示范性的實施例100,其包括存儲陣列110、端口緩沖器120-127、端口130-144、并行讀和寫寄存器141-142以及“窺探”寄存器140。其中明顯的是沒有圖1中的FIFO存儲器。端口緩沖器120-127通常包括一個或多個寄存器,或者成組的觸發(fā)器、鎖存器或者寄存器,它們被配置用于從端口和存儲陣列110接收并行數(shù)據(jù),以及將并行數(shù)據(jù)提供給端口和存儲陣列110。數(shù)據(jù)是在公用存儲器寫總線150a和150b,以及在公用存儲器讀總線155a和155b上,在端口緩沖器120-127和存儲陣列110之間交換的。
在本發(fā)明的體系結(jié)構(gòu)中,存儲陣列是常規(guī)的,并且可以包括多個存儲器子陣列。這些子陣列可以包括存儲器的一個或多個行、列、塊或者頁,頁是一種優(yōu)選的實施方案(即所謂“多端口頁模式存儲器”或稱為MPPM)。每一個存儲器行、列、塊和/或頁均可借助于唯一的對應(yīng)于該行、列、塊和/或頁的存儲器地址來識別和/或訪問。在一個優(yōu)選實施例中,傳送于存儲陣列110和端口緩沖器120-127之間的每個數(shù)據(jù)塊包括一個數(shù)據(jù)頁。典型地,存儲陣列110的最小密度是256kb或者1Mb。而存儲陣列110的最大密度沒有限制,實際上,一般的最大密度大約是32Mb或者128Mb。
在存儲陣列110中的存儲單元的特性也沒有特別的限制,并且可以包括鎖存器、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、磁性隨機存取存儲器(MRAM)、電可擦可編程只讀存儲器(EEPROM)和閃速存儲器,不過出于簡單、速度和低功耗方面的考慮,鎖存器是優(yōu)選的。存儲陣列110也可以是同步或者異步的,但是出于速度和定時方面的考慮,同步存儲器是優(yōu)選的。
在本發(fā)明的體系結(jié)構(gòu)中,端口緩沖器120-127可以被認為與存儲陣列110“緊密相連”。實質(zhì)上,“緊密相連”的意思是端口緩沖器120-127對存儲陣列110與它們對端口130-145相比更為接近,而且存儲器總線150a、150b、155a和155b被設(shè)計成可降低RC成分或者將之減到最小,該RC成分諸如有總線長度(對應(yīng)于電阻)和/或總線中相鄰金屬線之間的寄生電容。雖然端口緩沖器120-127被顯示處于存儲陣列110的不同側(cè),且端口130-144被顯示處于端口緩沖器120-127的不同側(cè),但可將端口緩沖器120-127設(shè)置在陣列110的一側(cè)(例如參見圖3),并且可將端口130-144設(shè)置在端口緩沖器120-127的一側(cè)。此外,在端口緩沖器120-127和存儲陣列110之間的通信最好不要受到與存儲陣列“緊密相連”的端口緩沖器內(nèi)的時鐘電路單元(除了例如在端口緩沖器本身或者存儲陣列本身內(nèi)的鎖存器和/或寄存器之外)延遲。
在本發(fā)明的多端口存儲器體系結(jié)構(gòu)中,端口緩沖器的數(shù)目可以是2或2以上、3或3以上、或者4或4以上的任何整數(shù)。在某些實施例中,在體系結(jié)構(gòu)中可能有(2x-d)個端口緩沖器,x為至少是3的整數(shù),并且在x為從4至8(例如5或者6)的整數(shù)的各種實施例中,d為0或者是(2x-1-1)或者更小的整數(shù)。d的值可以通過與端口緩沖器配合的并行寄存器(例如其具有端口緩沖器的地址)的數(shù)目而確定,但是這些寄存器提供不同的功能,諸如“窺探”寄存器140和/或并行讀和寫寄存器141-142。獨立地,相應(yīng)端口的數(shù)目通常是2或3以上、3或3以上、或者4或4以上,并且在某些實施例中,可以是(2x-d),其中x和d均如上所述。在一個實施例中,有10個端口。端口和端口緩沖器最好是有1∶1的關(guān)系,雖然其不一定是這種情況每個端口僅與單個端口緩沖器通信(或者反之亦然,即所謂的“專用”端口或者端口緩沖器)。
現(xiàn)在參考圖4,端口緩沖器可以包括讀取部分250i和寫入部分240i。讀取部分250i和寫入部分240i各自可以包括多個輸入242a-242o、244a-244o、252a-252o,以及254a-254o,它們可各自依次包括一個或多個數(shù)據(jù)存儲單元。數(shù)據(jù)存儲單元是一種常規(guī)的存儲單元,其被配置用于存儲一位數(shù)據(jù),并且可以包括SRAM單元、DRAM單元、MRAM單元、EEPROM單元和/或閃速存儲器單元,不過出于速度和低功耗方面的考慮,SRAM是優(yōu)選的。
在優(yōu)選的實施例中,讀取部分250i和寫入部分240i各自獨立地包括a*(2y+b)個輸入,這里a是線路的數(shù)目或者輸入的行的數(shù)目(例如寫入線242和/或244),2y是在一個線路或者一行中輸入的數(shù)目,y是至少為3的整數(shù),而b是0或者是(2y-1)或更小的整數(shù)。在某些實施例中,b是0而y是從4至8的整數(shù),在特定的實施例中,y是5或者6。
返回參考圖2,在本發(fā)明的體系結(jié)構(gòu)中,存儲器讀和寫總線150a、150b、155a和155b可以各自具有k*n位的寬度,這里k是在一個端口緩沖器線路或者行中的輸入的數(shù)目,而n是在一個輸入中數(shù)據(jù)位的數(shù)目。如上所述,k可以是(2y+b),其中y和b也是如上所述。因此,公用存儲器總線可以具有n*(2y+b)位的寬度。在某些實施例中,n是(2p+c),這里p是從2至7的整數(shù)(例如從3至6),并且c是0或者(2p-1)或更小的整數(shù)。在一個實施例中,c是0。這實際上使整個數(shù)據(jù)塊(這里數(shù)據(jù)塊是在如圖4所示的端口緩沖器線路222、224、226或者228中的數(shù)據(jù))能夠大體上同時被寫入存儲陣列110或者從存儲陣列110讀取。在優(yōu)選實施例中,n也是總線的寬度,被配置用于在端口及其相應(yīng)的端口緩沖器之間交換數(shù)據(jù)。上述的總線可以包括二個獨立的單向總線(例如在圖1中的m位寬的總線)。
返回再次參考圖2,存儲器讀和寫總線150a、150b、155a和155b可以被認為是“共用的”總線,因為它們是為多個端口緩沖器所共用的,并且在其整個長度上具有恒定的位寬。例如端口緩沖器120-123各自有相同數(shù)量的輸出到存儲器寫入總線150a上,并有來自存儲器讀總線155a的相同數(shù)量的輸入。因此,從存儲陣列110讀取到存儲器讀總線155a上的數(shù)據(jù)可以被鎖存進任何一個端口緩沖器120-123中(或者甚至是全部端口緩沖器中)。
在本發(fā)明的體系結(jié)構(gòu)中,端口緩沖器可以是單重緩沖的(例如參見圖5),在此情況下,讀取部分包括第一讀出線而寫入部分包括第一寫入線;或者是多重緩沖的(例如參見圖4的雙重緩沖實施例),在此情況下,讀取部分包括多個讀出線而寫入部分包括多個寫入線。例如一個雙重緩沖的體系結(jié)構(gòu)包括第一和第二讀出線以及第一和第二寫入線;一個三重緩沖的體系結(jié)構(gòu)包括第一、第二和第三讀出線以及第一、第二和第三寫入線;一個四重緩沖的體系結(jié)構(gòu)包括第一、第二、第三和第四讀出線以及第一、第二、第三和第四寫入線,等等。在任何一種結(jié)構(gòu)中,寫入部分可以進一步包括(i)一個多路分解器258,其被配置用于從相應(yīng)的端口選擇其中一個輸入以便儲存數(shù)據(jù)(例如244a-244o),和/或(ii)一個或多個控制信號,用以選擇其中一個寫入線以便從端口緩沖器將數(shù)據(jù)傳送到存儲陣列?,F(xiàn)在僅參考圖4,在多緩沖結(jié)構(gòu)中(例如雙重緩沖端口緩沖器220i),讀取部分可以進一步包括一個多路復(fù)用器256和/或一個或多個控制信號,它們被配置用于選擇一個讀出線以將數(shù)據(jù)輸出到相應(yīng)的端口。
本發(fā)明的體系結(jié)構(gòu)能夠以各種各樣的速度和/或在時間域上處理和/或傳送數(shù)據(jù)。例如,所述存儲陣列可以工作于第一頻率,而每個端口可以獨立地工作于第二頻率,第二頻率大于或者小于第一頻率。例如返回參考圖2,在端口130-144中的接收機或者發(fā)射機可以以大約10MHz、100MHz、1GHz、大約2GHz、或者大約3.125GHz的速度接收或者傳送數(shù)據(jù)。此外,每個端口可以工作在一個與其他端口的工作頻率無關(guān)的頻率上。但是,雖然端口緩沖器120-127不一定工作在與存儲陣列110相同的頻率上,但存儲陣列110和端口緩沖器120-127通常工作在從100MHz至400MHz的頻率上。此外,雖然存儲陣列110和端口緩沖器120-127可以彼此相對同步地工作,但端口130-144中每一個相對于以下裝置異步工作(i)存儲陣列110和端口緩沖器120-127,和(ii)其他端口。因此,端口緩沖器120-127在每個端口區(qū)(port domain)和存儲區(qū)(memory domain)之間獨立地起時間域緩沖器(或開關(guān))的作用。
繼續(xù)參考圖2,在更進一步的實施例中,本發(fā)明的存儲器體系結(jié)構(gòu)更進一步包括(i)并行讀寄存器140和并行寫寄存器141;和/或(ii)只讀型“窺探”寄存器142。并行讀寄存器140是一個冗余寄存器,其用作端口緩沖器的讀取寄存器(例如在圖4中的端口緩沖器讀取部分250i)。如本領(lǐng)域技術(shù)人員所公知的,當(dāng)原來的讀取寄存器有硬件故障時,通常通過以冗余讀取寄存器地址代替原來的讀取寄存器地址,或者通過重新布設(shè)往返于原來的讀取寄存器的總線(典型地通過切斷保險絲),而使得冗余讀取寄存器代替原來的讀取寄存器。冗余讀取寄存器可以在原來的讀取寄存器中臨時存儲一份數(shù)據(jù),以便在原來的讀取寄存器的下游出現(xiàn)一個處理錯誤時,迅速地替換該數(shù)據(jù)。因此,并行讀寄存器140(圖2)具有一種通常與端口緩沖器讀取部分250i(圖4)類似或者相同的體系結(jié)構(gòu)。同樣,并行寫寄存器141(圖2)是一個冗余寫寄存器,其用作端口緩沖器的寫寄存器(例如在圖4中的端口緩沖器讀取部分240i),并且通常具有與之類似的體系結(jié)構(gòu)和功能。由于并行的讀和寫寄存器140-141的數(shù)據(jù)寬度可以是存儲陣列110的總寬度,該并行的讀和寫寄存器140-141可以起端口或者數(shù)據(jù)處理單元作用,從而可以得益于比使用標(biāo)準(zhǔn)端口(即由一個標(biāo)準(zhǔn)端口緩沖器120-127緩沖的)所能獲得的更大帶寬。在存儲器的BIST(內(nèi)置自檢)期間,并行讀和寫寄存器140-141還可以被用于對存儲器進行快速訪問。
只讀“窺探”寄存器142(圖2)被配置用于存儲一份要寫入主存儲器(例如存儲器110)中的數(shù)據(jù)。為便于某些處理操作,窺探寄存器142可以更進一步包括處理邏輯,或者被連接到外部處理邏輯,諸如分組或者幀標(biāo)題處理邏輯(例如目標(biāo)地址,源地址,幀類型等等),從而可以對該數(shù)據(jù)進行后續(xù)修改和/或在包括該存儲器的網(wǎng)絡(luò)中交換判決。用于執(zhí)行上述的修改和/或轉(zhuǎn)換的附加邏輯可以被設(shè)置在一個包括本發(fā)明的多端口存儲器的IC中的其他地方,或者可以被設(shè)置在一個緊鄰該存儲器的協(xié)處理器IC中(例如在一個共用的基底或者印制電路板上)。因此,窺探寄存器142有效地使多端口存儲器100免于擁有多組各自對應(yīng)于一個端口緩沖器的處理邏輯,在沒有專用和/或冗余的寄存器用于上述操作的情況下,在涉及分組或者幀處理的應(yīng)用中,這將是必要的。
一個示范性的分組網(wǎng)交換、系統(tǒng)和網(wǎng)絡(luò)就本發(fā)明的另一方面來看,網(wǎng)絡(luò)交換機、系統(tǒng)和網(wǎng)絡(luò)通常包括那些包含在此處公開的一個或多個本發(fā)明概念的體系結(jié)構(gòu)。例如網(wǎng)絡(luò)交換機即可以包括本發(fā)明的多端口存儲器體系結(jié)構(gòu)。在優(yōu)選實施例中,所述網(wǎng)絡(luò)交換機實現(xiàn)于單個集成電路上。
如上所述,本發(fā)明的一個優(yōu)點是在端口和主存儲器之間的緩沖數(shù)據(jù)的FIFO緩沖器成為不必要的,從而減少了專用于FIFO主存儲器路由的IC面積,且(理想地)提高了通過IC的數(shù)據(jù)傳輸速度。因此,本發(fā)明的網(wǎng)絡(luò)交換機可以包括多個端口緩沖器,其各自(i)沿著第一數(shù)據(jù)通路將數(shù)據(jù)傳送到相應(yīng)的端口,和(ii)沿著第二數(shù)據(jù)通路從該相應(yīng)的端口接收該數(shù)據(jù),其中所有這些數(shù)據(jù)通路均不包含先進先出(FIFO)存儲器。
在進一步的實施例中,所述系統(tǒng)可以包括一種端口,其被配置用于將來自網(wǎng)絡(luò)的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)以便在網(wǎng)絡(luò)交換機中處理,和/或?qū)碜跃W(wǎng)絡(luò)交換機的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)以用于網(wǎng)絡(luò)。在大多數(shù)實施例中,該系統(tǒng)端口是如上所述的存儲器體系結(jié)構(gòu)端口,但是在某些實施例中,該系統(tǒng)端口可以是一個獨立的端口,其被配置用于將數(shù)據(jù)向外傳送到一個集成電路(IC),該集成電路(IC)包括所述存儲器體系結(jié)構(gòu)和發(fā)射機。因此,所述系統(tǒng)可以進一步包括(i)至少一個端口(并且最好是多個端口),包括一個發(fā)射機,該發(fā)射機被配置用于將串行數(shù)據(jù)傳送到外部接收機;和(ii)至少一個端口(并且最好是多個端口),包括一個接收機,該接收機被配置用于接收外部產(chǎn)生的串行數(shù)據(jù)(例如來自一個外部發(fā)射機的串行數(shù)據(jù))。
本發(fā)明進一步涉及一種網(wǎng)絡(luò),其包括至少一個本發(fā)明的系統(tǒng),以及多個存儲器或者數(shù)據(jù)通信裝置,每個該裝置均可通信地連接到所述系統(tǒng)。在其他實施例中,所述網(wǎng)絡(luò)可以包括(a)多個本發(fā)明的系統(tǒng),其可以是可通信地彼此耦合和/或彼此級聯(lián);和(b)多個存儲器或者通信裝置,其中每個存儲器或者通信裝置可通信地耦合到至少一個所述系統(tǒng)。在一個實施例中,每個裝置可通信地耦合到一個唯一的系統(tǒng)。所述網(wǎng)絡(luò)可以是任何種類已知的網(wǎng)絡(luò),如一個分組交換網(wǎng)絡(luò)。
示范性的方法本發(fā)明進一步涉及將數(shù)據(jù)寫到存儲器的方法,包括以下步驟(a)將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù),n位數(shù)據(jù)構(gòu)成一個字;(b)緩沖該n位寬的并行數(shù)據(jù)構(gòu)成的k個字長的塊;和(c)大體上同時將該k*n位的數(shù)據(jù)寫入存儲器內(nèi)。本發(fā)明還涉及從存儲器讀取數(shù)據(jù)的方法,包括以下步驟(1)大體上同時從該存儲器將k*n位的數(shù)據(jù)輸出到k*n位寬的總線上;(2)將該k*n位的數(shù)據(jù)轉(zhuǎn)換成n位寬的并行數(shù)據(jù);和(3)將該n位寬的并行數(shù)據(jù)轉(zhuǎn)換為要從該存儲器外部讀取的串行數(shù)據(jù)。本發(fā)明還涉及一種在網(wǎng)絡(luò)中傳送數(shù)據(jù)的方法,包括在上述寫和讀方法中的各步驟的組合。
在所述寫方法的一個實施例中,緩沖可以包括將具有n位寬的并行數(shù)據(jù)的k個字順序地寫入k數(shù)據(jù)存儲單元內(nèi)。在所述讀和/或?qū)懛椒ǖ倪M一步的實施例中,將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的步驟可以在第一頻率上實施,而緩沖步驟在第二頻率上、且大體上同時寫k*n位數(shù)據(jù)的步驟在第三頻率上實施,第一頻率與第二和第三頻率兩者相同或者不同。正如以上討論的,第一頻率可以大于或者小于第二和第三頻率。但是,第三頻率通常大體上等同于或者高于第二頻率。
所述寫數(shù)據(jù)的方法可以進一步包括步驟(i)識別多個緩沖器地址中的一個緩沖器地址,其中該多個緩沖器地址用于緩沖n位寬的并行數(shù)據(jù)的k個字長的數(shù)據(jù)塊;(ii)識別多個存儲器地址中的一個存儲器地址,該多個存儲器地址用于大體上同時將所有k*n位的數(shù)據(jù)寫入存儲器內(nèi);(iii)接收串行數(shù)據(jù)。
本發(fā)明進一步包括一種在網(wǎng)絡(luò)中傳送數(shù)據(jù)的方法,包括本發(fā)明的將數(shù)據(jù)寫到存儲器的方法,以及大體上同時從該存儲器中讀取k*n位數(shù)據(jù)的方法。如人們可能期望的,在一個優(yōu)選實施例中,大體上同時讀取k*n位數(shù)據(jù)的步驟包括將該k*n位的數(shù)據(jù)緩沖為具有n位寬數(shù)據(jù)的k個字,并且可以進一步包括將該n位寬的數(shù)據(jù)轉(zhuǎn)換為要從該存儲器外部讀取的串行數(shù)據(jù)。
從存儲器讀取數(shù)據(jù)的所述方法通常包括以下步驟(1)大體上同時從該存儲器將k*n位的數(shù)據(jù)輸出到一個k*n位寬的總線上;(2)將該k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù);和(3)將該n位寬的并行數(shù)據(jù)轉(zhuǎn)換為要從存儲器外部讀取的串行數(shù)據(jù)。在優(yōu)選實施例中,將k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬并行數(shù)據(jù)的步驟包括緩沖具有n位寬數(shù)據(jù)的k個字,并且該緩沖步驟可以包括在k個寄存器中存儲該具有n位寬數(shù)據(jù)的k個字,其中每個寄存器具有n個數(shù)據(jù)存儲單元(其中k和n如上所述)。換句話說,在所述讀取方法中,將k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)包括將數(shù)據(jù)作為k個字加以緩沖,該k個字具有n位寬的數(shù)據(jù)。在一個優(yōu)選實施例中,將k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的步驟進一步包括順序地將具有n位寬數(shù)據(jù)的這k個字移動到一個n位寬的總線上。如上所述,將n位寬的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)的步驟可以在第一頻率上實施,將k*n位的數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的步驟可以在第二頻率上實施,而大體上同時輸出k*n位數(shù)據(jù)的步驟可以在第三頻率上實施,第一、第二和第三頻率均如上所述。
所述從存儲器讀取數(shù)據(jù)的方法可以進一步包括(a)識別多個緩沖器地址中的一個緩沖器地址,該多個緩沖器地址用于緩沖具有n位寬的數(shù)據(jù)的k個字;和/或(b)識別多個存儲器地址中的一個存儲器地址,該多個存儲器地址用于同時從存儲器輸出k*n位的數(shù)據(jù)。
一個示范性的實施例現(xiàn)在參考圖3,本發(fā)明的一個實施例涉及一種多端口頁模式的存儲器200。在下述實施例中,多端口頁模式存儲器200包括一個可擴展的多個端口存儲塊210,依據(jù)所需用途,每個存儲塊可以支持多個寫端口(在一個特定的實施例中為16個)。所有端口可以同時工作,但是未必支持隨機字存取。在頁單元220a-220k中可實現(xiàn)對存儲器210的訪問。每個端口經(jīng)由一個專用讀頁(read page)和一個專用寫頁(write page)訪問存儲器。每個頁借助于二個存儲線路得到雙重緩沖,其中每個線路包括2y(在一個特定的實施例中為32)個8位輸入。讀和寫端口數(shù)據(jù)寬度每個是8位。雖然在這個例子中每個線路實施為2y個8位輸入,但在端口緩沖線路中可有任何數(shù)目的輸入,并且輸入可以包括任何數(shù)目的位。此外,讀和寫端口數(shù)據(jù)寬度可以是任何數(shù)目位寬。取決于配置,以頁的形式對存儲器進行的訪問最多可達32字節(jié)。該存儲器允許多達其總數(shù)的端口共享在公用存儲器模塊210中多達2y個頁(在一個特定的實施例中為4096頁)。存儲塊210可具有的密度從64kb至64Mb以上(例如從128kb至32Mb,或者從256kb至大約16Mb,而在一個實施例中大約為1Mb位)。雖然在這個例子中實施的是最大32字節(jié)的頁尺寸和2z頁的存儲容量,但最大頁尺寸可以是任何數(shù)目的字節(jié),且存儲器可以為任何容量(不過最好是存儲器具有如上所述的最小密度)。此外,讀和寫端口數(shù)據(jù)寬度可以是任何數(shù)目的位寬。按照帶寬和同時進行訪問的需求也可以使用更多或更少的端口。
上述存儲器包括二個主要的功能單元端口頁220a-k和存儲塊210。從一個端口通過端口頁220i訪問存儲器(標(biāo)識“i”意思是指在結(jié)構(gòu)和/或功能上基本相同的多個單元中的任何一個單元),其起到在內(nèi)部存儲器模塊接口(例如緩沖器230)和端口接口之間的橋接器的作用,使得在存儲塊帶寬和獨立端口的帶寬之間的差值得到協(xié)調(diào),同時允許有效地利用存儲塊的帶寬。由于內(nèi)部存儲器塊數(shù)據(jù)接口230相對較寬,而端口數(shù)據(jù)接口相對較窄,端口頁起到臨時存儲器的作用,這與并-串行轉(zhuǎn)換器和串-并行變換器相似。
對讀和寫訪問兩者均使用端口頁的雙重緩沖,就可以利用多個端口存儲器200而使得在存儲器210和所有的端口之間同時進行的無阻塞訪問能夠被無限地保持。對于端口寫訪問,經(jīng)由一個專用8位端口寫數(shù)據(jù)總線,以寫數(shù)據(jù)順序地填入相應(yīng)的頁輸入。隨后,在一個存儲器寫信號的提示下,頁220i的整個內(nèi)容被寫入存儲器210中的一個選定頁中。
經(jīng)由存儲器控制接口和頁控制接口(未示出),用戶可以控制何時將頁內(nèi)容寫入存儲器210。現(xiàn)在參考圖4,雙重緩沖的端口頁220i表明,端口寫訪問可以被引導(dǎo)至頁220i的寫緩沖部分240i的第二線路222,同時從第一線路224傳送至存儲器210(圖4中未示)的數(shù)據(jù)等待存儲器可用的指示。
端口讀訪問是通過首先從存儲器210(高達32字節(jié))中想要的頁加載內(nèi)容至端口頁220i的讀緩沖部分250i而實現(xiàn)的。接著,端口頁220i的內(nèi)容被順序經(jīng)由專用8位端口讀總線RD[7:0]定時地輸出。通過選擇一個使用控制信號NRSEi的適當(dāng)狀態(tài)和多路復(fù)用器256的線路,則一旦第二讀頁線路226可以利用,就可將其用于來自存儲器的下一頁數(shù)據(jù),同時端口從第一線路228傳送數(shù)據(jù)。一旦數(shù)據(jù)被從第一線路228取盡,就可以從第二線路226傳送數(shù)據(jù),而第一線路228可用于來自存儲器210的下一頁數(shù)據(jù)。
通過存儲器控制信號、接至端口頁的專用讀總線212和專用寫總線214訪問存儲塊210。數(shù)據(jù)總線的寬度是在一個頁中的輸入242a至242o、244a至244o、252a至252o或者254a至254o的數(shù)目乘以8。存儲器讀總線212和寫總線214分別連接至端口讀頁250i和寫頁240i。每個存儲器請求必須伴隨有一個源地址和一個目標(biāo)地址。對于寫訪問,源地址是端口頁220i地址,而目的地地址是在存儲器210中的頁地址。對于讀訪問,源地址是在存儲器210中的頁地址,而目的地地址是端口頁220i地址。用戶按照數(shù)據(jù)在端口頁220i和存儲塊210中的臨時有效性,控制調(diào)度對于端口頁220i和存儲塊210的寫和讀操作。
在大多數(shù)情況下,在被保持的同時無阻塞模式下進行的操作將要求每頁220i的輸入242i、244i、252i和254i的數(shù)目大于端口數(shù)目除以2,而且存儲器帶寬大于端口頁220a-220k的所需要的總計帶寬。
通過使用如上所述的多端口存儲器系統(tǒng)的多個模塊,可以提高端口數(shù)、存儲容量和存儲帶寬。通過以本領(lǐng)域公知的方法級聯(lián)兩個多端口頁模式(MPPM)的存儲器體系結(jié)構(gòu)200,可以用高達2*2x(在一個特定的實施例中為32)個讀和/或?qū)?R/W)端口而實現(xiàn)對最多達2*2z個頁(在一個特定的實施例中為8192)保持同時存取,其中的頁包括每個線路高達2y(在一個特定的實施例中為32)字節(jié)的數(shù)據(jù)??梢约壜?lián)高達m個MPPM存儲器200,從而通過高達m*2x(這里x例如為2至7)個R/W端口,能夠支持最多m*2z(這里z例如為8至15)頁的同時存取,其中的頁包括每個線路2y(這里y例如為3至8)個字節(jié)的數(shù)據(jù)。端口的精確數(shù)目取決于想要的總計端口帶寬和存儲器工作頻率。
多端口頁模式的存儲器200的應(yīng)用包括那些可以使用高端口數(shù)目、高帶寬的交換結(jié)構(gòu)。存儲器200的特點包括支持任意數(shù)目(例如在一個實施例中為10而在另一實施例中為16)的端口、用于每個端口的專用的讀和寫頁模塊、專用的雙重緩沖讀端口頁、專用的雙重緩沖寫端口頁、具有每個頁的每個線路中任意數(shù)目的位(例如高達(2p+c)而在一個實施例中為8)的任意數(shù)目(例如高達2y和在一個實施例中為32)的輸入、和任意數(shù)目(例如高達2z而在一個實施例中為4096)的頁或者存儲塊、高達200 MHz(或者取決于所使用的技術(shù)更快的)的端口頁操作頻率、高達200 MHz(或者更快)的存儲塊操作頻率、2周期存儲器讀取等待時間、2周期存儲器寫入等待時間、簡單的接口、寫窺探寄存器260、并行的讀端口寄存器270、和并行的寫端口寄存器280。無需以0.13或者0.15μmCMOS技術(shù)進行不相稱的實驗,就存在或者說可以提供存儲器200的硬件描述。一個1Mb的9端口雙重緩沖器結(jié)構(gòu)的概略尺寸大約是1880μm×2870μm;一個2Mb的26端口單重緩沖器結(jié)構(gòu)的概略尺寸大約是3800μm×3120μm(兩者都是按照0.15μm技術(shù)估算的)。預(yù)測的功率損耗@_200MHz(頁時鐘和存儲器時鐘頻率)小于1W。
在圖3-14中使用了以下名稱及其使用規(guī)定。信號名稱從一個大寫字母(例如CLK)開始。信號名稱繼之以一個包含在括弧內(nèi)的范圍表示一個邏輯上相關(guān)的信號、即一個總線的范圍。在該范圍中的第一個數(shù)字表示最高有效位(MSb),而最后的數(shù)字則表示最低有效位(LSb)。例如RD[15:0]是一個總線,其中RD[15]是RD總線的最高有效位(“MSb”)。在一個信號名稱開始處的“N”表示當(dāng)電壓低時產(chǎn)生的信號的工作狀態(tài)。例如NWR(輸出啟動高)是一個低電平有效信號。在RST上的下劃線(“_”)表示當(dāng)電壓是低時產(chǎn)生的信號的工作狀態(tài)。在圖3至14中示出的端口接口信號的說明提供于下面表1中。
表1.端口接口信號說明
在圖3至14中示出的存儲器接口信號的說明提供于下面表2中。
表2.存儲器接口信號說明
功能說明參考圖3,每個端口220i包括一個專用讀總線212和一個專用寫總線214。因此,可以經(jīng)每個端口220i同時發(fā)生讀操作和寫操作。端口接口包括8位讀總線(RD)、8位寫總線(WD)、寫端口時鐘(WPCK)、讀端口時鐘(RPCK)、寫輸入指示器復(fù)位(WEPR)、寫雙重緩沖器線路選擇器(NWSE)、和用于每個線路的讀雙重緩沖器線路選擇器(NRSE)。上述端口時鐘中的任何一種或者兩種可以與一個專用的或常規(guī)/通用的端口基準(zhǔn)時鐘(例如在圖6至9中所示的信號ref pck)同步。在圖4中展示了一個雙重緩沖的讀和寫端口頁220i的詳細的方框圖。對于一個使用兩排或更多排MPPM的系統(tǒng)來說,端口頁不必是雙重緩沖的。由多排中的單重緩沖器所導(dǎo)致的雙重緩沖可以被結(jié)合以實現(xiàn)一種或多種多重緩沖的功能。圖5示出一個單重緩沖端口頁220′的方框圖,其類似于雙重緩沖頁,但是其中每個讀和寫緩沖器部分250和240分別包括一個單線的輸入252i和242i,并且其中所示讀部分不包括多路復(fù)用器256。
返回參考圖4,在頁220中的每個線路包括n個8位輸入。在一個線路中對寫輸入的訪問是使用一個訪問指示器順序進行的。這個訪問指示器用相應(yīng)的寫入線選擇信號NWSE激活。現(xiàn)在參考圖6,在端口時鐘(即用于寫入線的WPCK,它可以與基準(zhǔn)時鐘ref pck相同、是其補充、或是其整數(shù)倍和/或一分數(shù)部分)的上升沿認定選定的輸入指示器復(fù)位信號WEPR使得輸入指示器復(fù)位而選擇輸入0,將WD
上的8位數(shù)據(jù)鎖存到線路0中(NWSE0處于低電平有效狀態(tài))。其次的(n-1)時鐘順序地使選定指示器前進到輸入N,在每個后繼的時鐘脈沖將WD
上的數(shù)據(jù)鎖存到每個順序的線路輸入中。同樣,在(n-1)個時鐘周期之后,NWSE1可以轉(zhuǎn)換到一個低電平有效狀態(tài),同時NWSE0轉(zhuǎn)換到一個高電平無效狀態(tài)。任意附加的端口時鐘WPCK周期均使得輸入指示器不在線路0中選擇輸入(空值指示字),并且線路0輸入指示器將保持為空值狀態(tài),直到復(fù)位信號WEPR被再次認定、從而將其設(shè)置成選擇輸入0為止。WEPR可以被定時(例如使用計數(shù)器電路),使其每n個時鐘周期就有1個時鐘周期是激活的。在認定WEPR和NWSE1之后,數(shù)據(jù)被用與線路0相同的方式寫入順序的線路1輸入內(nèi)。為了節(jié)省電源,應(yīng)在端口不工作時認定NWSE。
雖然圖6示出在一個補充方案中的寫入線選擇信號NWSE0和NWSE1,這些信號不需要同時改變狀態(tài)。例如在NWSE0的解除認定和NWSE1的認定之間可能有一定時間間隔,特別是在兩個線路不需要連續(xù)寫入的情況下。圖7示出又一種情況,這里NWSE0和NWSE1以補充方式改變狀態(tài),但是在(n-1)個WPCK周期之后持續(xù)一段時間。例如可以通過一個或多個時鐘周期使WEPR和NWSE的激活轉(zhuǎn)換偏移,以確保定時和/或避免可能的數(shù)據(jù)損失。在這種情況下,在NWSE改變狀態(tài)之前,可以通過WPCK的上升和下降轉(zhuǎn)換來認定WEPR。
現(xiàn)在參考圖8,對讀線輸入的訪問是順序地使用級聯(lián)的觸發(fā)器執(zhí)行的。經(jīng)由讀線的數(shù)據(jù)移動是用相應(yīng)的讀線選擇信號NRSE激活的。圖8示出在一個雙重緩沖的端口緩沖器(參見例如圖4中的讀頁配置250i)中從兩個頁線路讀取輸入數(shù)據(jù)的RPCK、NRSE0和NRSE1信號的序列。
如圖8中部分加以展示的,在端口讀時鐘RPCK(周期0)的下一個上升沿上,簡單認定NRSE0而將在存儲器讀總線上的n*8位數(shù)據(jù)鎖存進線路0、端口220i的n個輸入。下面的(n-1)個讀時鐘順序地從線路228(參見圖4)將該n個輸入移出到RD
上。不需要將輸入指示器復(fù)位到輸入0,當(dāng)指示器復(fù)位信號WEPR被認定時,輸入0是選定的輸入,這是因為讀緩沖器線路226和228(其例如為一種傳統(tǒng)的移位寄存器)的體系結(jié)構(gòu)在相繼的上升時鐘轉(zhuǎn)換中自動地輸出來自連續(xù)輸入的數(shù)據(jù)。此外,在(n-1)個時鐘周期之后,NWSE1可以轉(zhuǎn)換為低電平有效狀態(tài),同時NWSE0轉(zhuǎn)換為高電平無效狀態(tài)。如果NRSE1不轉(zhuǎn)換到有效狀態(tài),則附加的RPCK周期從線路0讀到高阻抗或者空值狀態(tài),直到諸如其中一個NRSE信號的(最好是NRSE1)復(fù)位信號被認定、從而開始從端口220i進行另一個讀操作為止。NRSE信號可以被定時(例如使用一個計數(shù)電路),從而每當(dāng)其被一個適當(dāng)?shù)?并且通常是從外部產(chǎn)生的)讀指令激活時,對于32個連續(xù)的時鐘周期成為被激活的。在認定NRSE1之后(這也可以是在NRSE0轉(zhuǎn)換為高以前、在周期N-1上前面最接近的上升RPCK邊沿之后的任何時間),n*8位數(shù)據(jù)被以與線路0相同的方式寫入n個線路1的輸入中。為了節(jié)省電源,應(yīng)在端口不工作的時候使NWSE解除認定。類似地,為了在寫情況下節(jié)省電源,NWSE應(yīng)在端口不工作的時候被解除認定。
存儲器接口返回去參考圖3,存儲器接口經(jīng)過配置,用以控制在內(nèi)部存儲器模塊210和端口頁220a-k之間的數(shù)據(jù)傳送。該接口包括專用的讀總線和專用的寫總線。存儲器讀和存儲器寫命令是在存儲器時鐘MCK的上升沿上被采樣的,并且通常帶有源地址和目標(biāo)地址以及頁線路編號(當(dāng)被尋址的端口頁是以雙重緩沖器配置的時候)。有效的存儲器接口命令包括讀、寫和空操作(當(dāng)讀和寫兩者都沒有被認定的時候)。對于從一個端口頁220i寫到一個在存儲器210中的頁而言,在PA總線上被驅(qū)動的源地址是端口地址,而在MA總線上被驅(qū)動的目的地地址是存儲頁地址。對于從一個在存儲器210中的頁讀到一個端口頁220i而言,在MA總線上被驅(qū)動的源地址是存儲頁地址,而在PA總線上被驅(qū)動的目的地地址是端口頁地址。每個MCK周期可以接受一個存儲器命令。
寫到存儲器在一個寫頁中裝入的所有輸入必須受到跟蹤。這可以使用傳統(tǒng)的邏輯(例如一個n位計數(shù)器,其響應(yīng)一個適當(dāng)?shù)霓D(zhuǎn)換或者WEPR和/或NWSE的組合而復(fù)位)自動地進行。一旦在端口頁中所有的輸入被裝入,即通過認定NWR、解除認定NRD和指定適當(dāng)?shù)脑吹刂泛湍繕?biāo)地址,將該頁的全部內(nèi)容寫入存儲器210中。參考圖4,為確保在寫頁線路224或者222的最后的輸入242o或者244o中的數(shù)據(jù)被隨著一個相關(guān)的記錄寫到存儲器,在頁時鐘(PCK)的上升沿與MCK的上升沿之間的最小時間必須至少為0ns,最好大于0ns,其中在頁時鐘(PCK)的上升沿裝入最后的輸入242o/244o,而在MCK的上升沿則采樣寫指令。在寫指令和數(shù)據(jù)被實際寫入存儲器之間通常有兩個MCK周期的等待時間。
返回去參考圖3,窺探緩沖器260被配置成在一個MCK周期中捕獲要寫入存儲器210之內(nèi)的數(shù)據(jù)。通過在一個存儲寫命令期間認定SLD而激活窺探緩沖器260。來自所有要寫給存儲器210的N個輸入的數(shù)據(jù)也將寫入窺探緩沖器中,并且驅(qū)動到N*8位寬的窺探總線上。
圖9是一個示出從端口頁240j以相關(guān)的定時限制將數(shù)據(jù)寫到一個在存儲塊210中的頁的時序圖。觸發(fā)特定寫事件的存儲器接口信號的各種各樣的狀態(tài)展示于從圖9的上部開始的第二個信號波形。在MCK邊沿301,來自端口240j、線路0的數(shù)據(jù)被寫到存儲器210,頁地址X。將數(shù)據(jù)寫入寫頁224j中最后一個輸入244o內(nèi)的端口時鐘WPCK[j]的上升沿302在MCK邊沿301之前必須存在一段時間,該時間至少為TLEMW。TLEMW是在上一次寫輸入的時鐘脈沖和一個相關(guān)的寫給存儲塊210的存儲命令時鐘脈沖之間的時間。TLEMW至少為0ns,優(yōu)選大于0ns,最為優(yōu)選則至少為1ns。
在MCK邊沿303上,來自端口240k、線路1的數(shù)據(jù)被寫給存儲器210,頁地址Z。就端口時鐘WPCK[j]而論,將數(shù)據(jù)寫入寫頁224k中上一次的輸入之內(nèi)的端口時鐘WPCK[k]的上升沿,在MCK邊沿303之前必須存在一段時間,該時間至少為TLEMW。來自端口240j,線路0的數(shù)據(jù)在MCK邊沿303上被鎖存到窺探寄存器260中。
在MCK邊沿305上,來自端口240q、線路0的數(shù)據(jù)被寫給存儲器210,頁地址X。因此,一旦到達兩個時鐘周期之后,第一模塊或者數(shù)據(jù)頁即被寫入,本發(fā)明的體系結(jié)構(gòu)允許在存儲器210中的數(shù)據(jù)被覆蓋。來自端口240k,線路1的數(shù)據(jù)在MCK邊沿305上被鎖存到窺探寄存器260中。
MPPM模塊200也可以包括具有N*8個并行輸入亦即PWD[N*8-1:0]的頁280,以及對存儲器寫總線214的N*8個并行輸出。當(dāng)出現(xiàn)時,并行寫端口頁寄存器280可以具有一個端口地址31。這個寄存器的內(nèi)容可以以并行寫端口280作為源地址,而以在存儲器210中的一個頁作為目的地地址,用存儲寫入命令將其寫給存儲器210。
從存儲器讀取現(xiàn)在參考圖10,為從一個在存儲器210中的頁讀出到端口頁220i,一個讀命令(NRD=0,NWR=1)連同存儲頁地址(MA)、端口頁地址(PA)和線路編號(如果端口頁220i是雙重緩沖的話)一起被傳送給MPPM200。如圖10所示,在來自存儲器210的數(shù)據(jù)被加載進端口頁220i之前,有兩個MCK周期(TMRL2)加上TMCO(從2周期等待時間的末尾到MCK的下一個上升轉(zhuǎn)換的時間)等待時間。在存儲器讀命令之后,可以有兩個或者三個MCK周期從端口頁讀數(shù)據(jù)。同時圖10示出一種情況,其中有2或者3周期等待時間,等待時間取決于多個要素,如存儲器工作頻率、寄存器工作頻率、端口工作頻率、處理技術(shù)(例如線路電阻率)、電路布局(例如數(shù)據(jù)傳送線的長度)等等。因此,這完全是可行的在適當(dāng)?shù)脑O(shè)計和處理技術(shù)條件下一個周期的等待時間即足夠,而在其他條件下三個以上的周期即可滿足需要。
圖10-12示出存儲器讀命令和端口線(地址)選擇的交織,用以從雙重緩沖的端口頁220j的讀部分250j獲得連續(xù)數(shù)據(jù)流。為了確保適當(dāng)?shù)淖x取定時,在兩個MCK周期之后存儲器讀命令NRSE得到認定,并且在該存儲器讀命令之后,讀出數(shù)據(jù)開始移出三個MCK周期。例如當(dāng)從一個讀出線移出數(shù)據(jù)而距相應(yīng)的存儲器讀命令僅有兩個MCK周期的時候,可能有某種TPCO定時惡化(即從RPCK的上升沿到有效的RD)。
圖10示出了從存儲器210讀到端口220j的等待時間為2個周期的情況。在MCK邊沿311上,來自存儲器210的數(shù)據(jù)即頁X被讀進端口220j,線路1,這是由于在地址/命令接口波形上的命令和信號312具有數(shù)值MA[X]、PA[j]、NRD=0、NWR=1和RPL=1。如在圖10底部的RD波形所示,在MCK邊沿311之后,在2個周期加上TMCO時,來自端口220j、線路1的數(shù)據(jù)被從體系結(jié)構(gòu)/設(shè)備200讀出。在MCK邊沿313處,來自存儲器210的數(shù)據(jù)即頁Z被讀進端口220q、線路1,這是由于在地址/命令接口波形上的命令和信號314具有值MA[Z]、PA[q]、NRD=0、NWR=1和RPL=1。在這個實施例中,當(dāng)RPCK與MCK相同時,從存儲器讀命令NRD的認定到在RD[7:0]上的端口頁線路輸出的讀等待時間可以低至2MCK周期加上TMCO。在適當(dāng)?shù)腘RD邊沿之后,來自端口讀出線226/228的數(shù)據(jù)可以被驅(qū)動2個周期。在NRSE認定之后計時或者鎖存輸入讀取的上升RPCK[x]邊沿應(yīng)不少于TMPCR(從TMRL2的末尾到RPCK[x]的下一個上升沿的時間,該時間必須至少為0ns,最好大于0ns)加上來自相關(guān)NRD邊沿的TMRL2。
圖11示出了從存儲器210讀到端口220i的等待時間是3個MCK周期的情況。在MCK邊沿321上,來自存儲器210的數(shù)據(jù)即頁X被讀進端口220j、線路1,這是由于在地址/命令接口波形上的命令和信號322具有值MA[X]、PA[j]、NRD=0、NWR=1和RPL=1。如在圖11底部的RD波形所示,在MCK邊沿321之后,來自端口220j和線路1的數(shù)據(jù)323,在3個MCK周期加上TMCO上被從體系結(jié)構(gòu)/設(shè)備200中讀出。在NRSE認定之后,計時或者鎖存一個輸入讀取的上升RPCK[x]邊沿可以是TMPCR(如上面所定義的)加上來自相關(guān)NRD邊沿的TMRL3(3個MCK周期)或更長。在這個示范性實施例的制造處理技術(shù)和定時限制下,當(dāng)RPCK與MCK不相同的時候,“3周期等待時間”的條件是優(yōu)選的。在不同的處理和/或定時條件之下,可應(yīng)用不同的等待時間周期數(shù)。
返回參考圖3,MPPM模塊200也可以包括頁270,其具有由N*8位存儲器讀總線214驅(qū)動的(N*8)位并行輸入和驅(qū)動PRD[N*8-1:0]的N*8并行輸出總線。當(dāng)出現(xiàn)時,并行讀端口頁寄存器270可以采取一個端口地址30。通過在一個存儲器讀命令中將并行讀端口270地址用作目的地址,PRD總線內(nèi)容可以用存儲頁的內(nèi)容加以更新。
現(xiàn)在參考圖12,在MCK邊沿331上,數(shù)據(jù)可以從并聯(lián)寫端口280寫到存儲器210,即頁X,這是因為在地址/命令接口波形上的命令和信號332具有值MA[X]、PA[31]、NRD=1和NWR=0。如圖12中的PWD波形所示,來自并聯(lián)寫端口280的數(shù)據(jù)在一段時間是有效的,該段時間是(TLPWDS+TLPWDH)或者并聯(lián)寫寄存器(PWD)建立和保持的時間。典型地,在PWCK的上升沿之前,TLPWDS(PWD建立時間)為0ns至2ns(例如在0ns和大約1ns之間,而在一個實施例中大約為0.3ns),在PWCK的上升沿之后,TLPWDH(PWD持續(xù)時間)為從0.5ns至4ns(例如從0.5ns至2ns,而在一個實施例中大約為1.2ns)。在MCK邊沿333,數(shù)據(jù)可以從存儲器210即頁Z讀進并行讀端口270,這是因為在地址/命令接口波形上的命令和信號334具有值MA[Z]、PA[30]、NRD=0和NWR=1。就上述的存儲器讀操作而論,在相應(yīng)的讀命令邊沿333之后,在兩個MCK周期加上一段時間TPRDO(即MCK邊沿到并行讀端口PRD有效)期間來自MA[Z]的數(shù)據(jù)337被讀到并行讀端口總線PRD上。
在MCK邊沿335處,以如上所述的存儲器讀操作將數(shù)據(jù)從存儲器210即頁X讀進端口緩沖器220q、線路0中,這是因為在地址/命令接口波形上的命令和信號336具有值MA[X]、PA[q]、NRD=0、NWR=1和RPL=0。在相應(yīng)的讀命令邊沿333之后,在兩個MCK周期加上一段時間TPRDO期間來自MA[Z]的數(shù)據(jù)337被讀到并行讀端口總線PRD上。在地址/命令接口波形上的命令和信號338具有值MA[Y]、PA[30]、NRD=0和NWR=1。因此,在MCK邊沿339處,數(shù)據(jù)被從存儲器210即頁Y讀進并行讀端口270中。在相應(yīng)的讀命令邊沿339之后,在兩個MCK周期加上一段時間TPRDO期間數(shù)據(jù)338被讀到并行讀端口總線PRD上。
結(jié)論/總結(jié)因此,本發(fā)明提供了一種多端口存儲器體系結(jié)構(gòu),以及一種在這樣的存儲器中和/或在包括這樣的存儲器的網(wǎng)絡(luò)或者網(wǎng)絡(luò)裝置中對數(shù)據(jù)進行操作的系統(tǒng)和方法。本發(fā)明通過使端口緩沖器與主存儲器緊密相連,有利地降低了在數(shù)據(jù)通信設(shè)備中,尤其是在超高速網(wǎng)絡(luò)交換機中的電路小片的尺寸,而且有利的是,使用從端口到端口緩沖器的窄帶寬點對點通信,由此降低了在芯片有效面積上的路由阻塞,且得以在存儲器讀和寫路徑中去掉FIFO。通過排除FIFO,本發(fā)明提供了提高的數(shù)據(jù)傳輸速度和吞吐量。在使用點對點通信的某些實施例中,由于降低了存儲器讀和寫總線的RC成分,本發(fā)明有利地提高了存儲器頻率,更進一步提高了數(shù)據(jù)傳輸速度和吞吐量。
為說明和描述起見,以上描述已經(jīng)介紹了本發(fā)明特定的實施例。但它們并非是要窮舉本發(fā)明被公開的特定形式或?qū)⒈景l(fā)明限制于此,顯然,根據(jù)以上指導(dǎo)可能會有很多修改和變化。選擇和說明這些實施例,是為了最好地解釋本發(fā)明的原理及其實際用途,以便由此能使其他本領(lǐng)域技術(shù)人員借助于各種各樣的修改以適用于所構(gòu)想的特定應(yīng)用,而最好地運用本發(fā)明和各個實施例。本發(fā)明的范圍應(yīng)由所附權(quán)利要求及其等效方案來限定。
權(quán)利要求
1.一種多端口存儲器體系結(jié)構(gòu),其包括a)一個存儲陣列;b)多個端口,被配置用于接收和/或傳輸數(shù)據(jù);和c)多個端口緩沖器,每個端口緩沖器被配置用于傳送所述數(shù)據(jù)至一個或多個所述端口和/或由其接收所述數(shù)據(jù),并且全部端口緩沖器被配置用于(i)在第一公共總線上傳送所述數(shù)據(jù)的第一塊到所述存儲陣列,和(ii)在第二公共總線上從所述存儲陣列接收所述數(shù)據(jù)的第二塊。
2.根據(jù)權(quán)利要求1的體系結(jié)構(gòu),其中所述存儲陣列包括多個存儲頁,每個存儲頁可通過唯一的存儲頁地址識別和/或訪問,并且所述數(shù)據(jù)的第一和第二塊每個均包括一個頁的所述數(shù)據(jù)。
3.根據(jù)權(quán)利要求1的體系結(jié)構(gòu),其中所述多個端口緩沖器中的每一個均包括讀取部分和寫入部分。
4.根據(jù)權(quán)利要求4的體系結(jié)構(gòu),其中所述讀取部分包括第一讀取線和第二讀取線,并且所述寫入部分包括第一寫入線和第二寫入線。
5.根據(jù)權(quán)利要求1的體系結(jié)構(gòu),其中所述存儲陣列具有單個數(shù)據(jù)寫入端口和單個數(shù)據(jù)讀取端口。
6.一種網(wǎng)絡(luò)交換機,其包括權(quán)利要求1的體系結(jié)構(gòu)。
7.根據(jù)權(quán)利要求8的網(wǎng)絡(luò)交換機,其中所述第一和第二數(shù)據(jù)路徑均不包括先進先出(FIFO)存儲器。
8.一種將數(shù)據(jù)寫到存儲器的方法,包括以下步驟a)將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù),n位數(shù)據(jù)形成一個字;b)緩沖一個所述n位寬的并行數(shù)據(jù)的k個字長的塊;和c)大體上同時將所述k*n位的數(shù)據(jù)寫入所述存儲器中。
9.根據(jù)權(quán)利要求8的方法,進一步包括識別多個存儲器地址的其中一個存儲器地址,該多個存儲器地址用于大體上同時將所有的k*n位數(shù)據(jù)寫入所述存儲器中。
10.根據(jù)權(quán)利要求9的方法,其中將串行數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的步驟是在第一頻率上實施的,該緩沖步驟是在第二頻率上實施的,而大體上同時將所述k*n位數(shù)據(jù)寫入的步驟是在第三頻率上實施的,所述第一頻率不同于所述第三頻率。
11.一種從存儲器讀取數(shù)據(jù)的方法,包括步驟a)大體上同時從所述存儲器將k*n位數(shù)據(jù)輸出到一個k*n位寬總線上;b)將所述k*n位數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù);和c)將所述n位寬的并行數(shù)據(jù)轉(zhuǎn)換為要從所述存儲器外部讀取的串行數(shù)據(jù)。
12.根據(jù)權(quán)利要求11的方法,其中所述大體上同時讀取所述k*n位數(shù)據(jù)的步驟包括將所述k*n位數(shù)據(jù)緩沖為具有n位寬的數(shù)據(jù)的k個字,n位數(shù)據(jù)形成一個所述字。
13.根據(jù)權(quán)利要求11的方法,其中將所述k*n位數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的所述步驟進一步包括順序地將具有n位寬的數(shù)據(jù)的k個字移動到一個n位總線上,n位數(shù)據(jù)形成一個所述字。
14.根據(jù)權(quán)利要求11的方法,其中將n位寬的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)的步驟是在第一頻率上實施的,將所述k*n位數(shù)據(jù)轉(zhuǎn)換為n位寬的并行數(shù)據(jù)的步驟是在第二頻率上實施的,而同時輸出所述k*n位數(shù)據(jù)的步驟是在第三頻率上實施的,所述第一頻率不同于所述第三頻率。
全文摘要
本發(fā)明提供了一種多端口存儲器體系結(jié)構(gòu)、包括該體系結(jié)構(gòu)的系統(tǒng)及其使用方法。該體系結(jié)構(gòu)通常包括(a)一個存儲陣列;(b)用于接收和/或傳送數(shù)據(jù)的多個端口;和(c)用于對端口傳送和/或接收數(shù)據(jù)的多個端口緩沖器,且其全部用于(i)經(jīng)第一公共總線將數(shù)據(jù)傳送到存儲陣列,和(ii)經(jīng)第二公共總線從存儲陣列接收數(shù)據(jù)。本發(fā)明通過使端口緩沖器與主存儲器緊密相連,有利地降低了數(shù)據(jù)通信中尤其是網(wǎng)絡(luò)交換機中的等待時間,且在長線段存儲器讀和寫路徑上使用點對點通信,有利地降低了路由阻塞并可去掉FIFO。本發(fā)明有利地縮小集成電路的尺寸,并提高了數(shù)據(jù)傳輸速度和吞吐量,在優(yōu)選實施例中降低了存儲器讀和寫總線中的電阻和/或電容。
文檔編號G11C11/41GK1531275SQ20041000849
公開日2004年9月22日 申請日期2004年3月12日 優(yōu)先權(quán)日2003年3月13日
發(fā)明者W·李, S·蘇塔迪加, D·潘奈爾, W 李, 味, 霞 申請人:馬維爾國際貿(mào)易有限公司