專利名稱:基于動態(tài)隨機存取存儲器核心的多端口存儲器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及半導(dǎo)體存儲器件,特別是涉及裝備有多個端口的半導(dǎo)體存儲器。
背景技術(shù):
多端口存儲器,它們是裝備有多個端口的半導(dǎo)體存儲器,可以分成不同的類型。當(dāng)下文中使用術(shù)語“多端口存儲器”時,它指的是具有多個端口的存儲器,該多端口存儲器允許從任何一個端口獨立地存取到一個公共存儲器陣列。這樣一個存儲器可以有一個A端口和一個B端口,并允許對于公共存儲器陣列從與A端口鏈接的CPU和從與B端口鏈接的CPU獨立地進行讀/寫操作。
一個多端口存儲器裝備有一個稱為判優(yōu)器的判優(yōu)電路。判優(yōu)器確定從多個端口接收的各存取要求的優(yōu)先權(quán),存儲器陣列的控制電路根據(jù)確定的優(yōu)先權(quán)一個接一個的進行存取操作。例如,一個存取要求越早到達(dá)一個端口,就會給予該存取越高的優(yōu)先權(quán)。
在這種情形中,因為隨機地從多個接口存取存儲器陣列,所以在執(zhí)行了讀或?qū)懙拇嫒〔僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位,從而保證存儲器陣列已經(jīng)為下一次存取作好了準(zhǔn)備。即,如果響應(yīng)一個來自一個給定端口的存取使一條字線保持在一個選出的狀態(tài),和如一般在DRAM中使用的列存取操作中那樣連續(xù)地動移各列地址以便讀出連續(xù)的數(shù)據(jù),則在該操作期間來自另一個端口的存取將一直等待著。因此,在每次讀或?qū)懖僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位。
常規(guī)地,已經(jīng)典型地將一個SRAM用作一個多端口存儲器的一個存儲器陣列。這是因為一個SRAM允許高速隨機存取,而且可以進行非破壞性讀操作。
在一個具有兩個端口的多端口存儲器中,例如,一個SRAM存儲單元具有兩組字線和各位線對。一個端口用一組字線和一個位線對實施讀/寫操作,另一個端口用另一組字線和一個位線對實施讀/寫操作。在這種方式中,能夠從兩個不同的端口獨立地實施讀/寫操作。然而,因為當(dāng)兩個端口企圖在同一時間將數(shù)據(jù)寫入同一存儲單元時不可能同時進行兩個寫操作,所以給予一個端口進行寫操作的優(yōu)先權(quán),而給予另一個端口一個BUSY(忙碌)信號。這稱為一個BUSY狀態(tài)。
當(dāng)開發(fā)一個系統(tǒng)使它有改善的性能時,可以由該系統(tǒng)處理數(shù)據(jù)量也增加了。結(jié)果,一個多端口存儲器需要很大的容量。然而,SRAM型多端口存儲器有一個缺點,即存儲單元的尺寸大。
為了消除這個缺點,在一個多端口存儲器中采用一個DRAM陣列是可以理解的。為了得到比多端口SRAM高得非常多的電路密度,需要用于多端口存儲器的一個DRAM存儲單元以與一個典型的DRAM單元相同的方式只與一條字線和一條位線連接。如果以這樣一種方式用DRAM元件制成存儲塊,則如果一個端口正在對一個給定的存儲塊執(zhí)行讀或?qū)懖僮鳎硪粋€端口就不能存取該存儲塊。這是因為在一個DRAM存儲單元中只可以有一個非破壞性讀操作。即,當(dāng)讀信息時,不能選擇在同一個存儲塊中的另一條字線直到在存儲單元中這個信息被放大和恢復(fù)與一條字線和一條位線被預(yù)先充電為止。
因為這個原因,如果一個給定的端口存取一個正在被另一個端口存取的存儲塊,則將檢測出一個BUSY狀態(tài)。只有當(dāng)多個端口同時對同一個存儲單元發(fā)出寫要求時,在SRAM型多端口存儲器中才會出現(xiàn)BUSY狀態(tài)。另一方面,當(dāng)多個端口同時對同一個存儲單元發(fā)出任何類型的存取要求時,在DRAM型多端口存儲器中會出現(xiàn)BUSY狀態(tài)。所以在DRAM型存儲器中出現(xiàn)BUSY狀態(tài)的概率非常大于在SRAM型存儲器中出現(xiàn)BUSY狀態(tài)的概率。進一步,一旦處在BUSY狀態(tài)中,DRAM型多端口存儲器就會受到不能進行希望的操作或由于等待時間處理變得很慢這種問題的困擾。
然而,與SRAM型多端口存儲器不同,DRAM型多端口存儲器需要一個周期地進行的刷新操作以便保持存儲的信息,從而必須采取某種措施保證適當(dāng)?shù)乃⑿露〞r。
因此,本發(fā)明的目的是提供能夠消除特別與DRAM有關(guān)的各問題的DRAM型多端口存儲器。
發(fā)明內(nèi)容
本發(fā)明的一個一般的目的是提供能夠基本上消除由已有技術(shù)的限制和缺點引起的一個或多個問題的半導(dǎo)體存儲器件(多端口存儲器)。
我們將在下列描述中提出本發(fā)明的特點和優(yōu)點,并且一部分特點和優(yōu)點將從描述和所附各圖變得很清楚,或者可以根據(jù)描述中提供的指導(dǎo)通過實踐本發(fā)明來了解這些特點和優(yōu)點。我們將通過用使普通的熟練的技術(shù)人員能夠?qū)嵤┍景l(fā)明的那種完整,清楚,扼要和精確的術(shù)語在說明書中具體指出由一個多端口存儲器能夠?qū)崿F(xiàn)和得到的本發(fā)明的各目的以及各其它的特點和優(yōu)點。
為了實現(xiàn)這些和其它的優(yōu)點及根據(jù)本發(fā)明的目的,如在這里具體地和廣泛地描述的那樣,本發(fā)明提供這樣一個半導(dǎo)體存儲器件,該器件包括每個端口都接受指令的數(shù)量為N的多個外部端口和一個在輸入到一個外部端口的各指令的最小時間間隔期間至少執(zhí)行N次存取操作的內(nèi)部電路。
進一步,提供一個判優(yōu)電路,該判優(yōu)電路確定一個內(nèi)部電路執(zhí)行輸入到N個外部端口的多個指令時的指令執(zhí)行次序。
在上面描述的本發(fā)明中,當(dāng)指令進入N個端口時,所有的與N個端口對應(yīng)的N個指令在任何給定的端口的最小指令周期內(nèi)被一個接著一個地執(zhí)行。因此,一個與任何給定端口有關(guān)的存取指令出現(xiàn)在器件外部中并在最小指令周期內(nèi)被執(zhí)行。在這種情形中,只有當(dāng)從多個端口存取同一個地址時才會發(fā)生一個BUSY信號。這樣就可以得到和SRAM型多端口存儲器的BUSY狀態(tài)出現(xiàn)概率一樣低的BUSY狀態(tài)出現(xiàn)概率。
而且在本發(fā)明的半導(dǎo)體存儲器件中,內(nèi)部電路包括一個存儲單元陣列,該陣列是由許多動態(tài)型存儲單元和一個定義各存儲單元被刷新的定時的刷新電路組成的。在第一模式中,響應(yīng)一個輸入到N個外部端口中的至少一個端口的刷新指令刷新各存儲單元,在第二模式中,在刷新電路確定的定時刷新各存儲單元。
如上面描述的本發(fā)明具有第一個操作模式,其中響應(yīng)一個來自一個外部端口的指令執(zhí)行刷新操作,和第二個操作模式,其中響應(yīng)內(nèi)部刷新電路執(zhí)行刷新操作。因為這個配置,允許一個外部端口像一個用于刷新管理的端口那樣地操作,以便在各恒定的時間間隔接收刷新指令,或者如果這個用于刷新管理的端口處在一個去激活狀態(tài),則內(nèi)部刷新電路實施刷新操作。這使按照系統(tǒng)配置以一種靈活的方式管理刷新操作成為可能。
圖1是用于解釋本發(fā)明原理(第1方面)的圖;圖2是表示當(dāng)只有一個端口正在被使用時實施的一個刷新操作的圖。
圖3A到3C是在2個端口,3個端口和N個端口的情形中用于解釋本發(fā)明原理的圖;圖4是表示根據(jù)本發(fā)明(第1方面)的多端口存儲器的第1實施例的方框圖;圖5是與到一個判優(yōu)器的指令輸入有關(guān)的電路方框圖;圖6A和6B是表示判優(yōu)器的一個配置的電路圖;圖7是表示判優(yōu)器操作的定時圖;圖8是與到一個DRAM芯的地址輸入有關(guān)的電路方框圖;圖9是與數(shù)據(jù)輸出有關(guān)的電路方框圖;圖10是表示一個傳輸信號發(fā)生電路的配置的電路圖。
圖11是與數(shù)據(jù)輸入有關(guān)的電路方框圖;圖12是表示當(dāng)連續(xù)輸入Read(讀)指令時實施的操作的定時圖;
圖13是表示當(dāng)連續(xù)輸入Write(寫)指令時實施的操作的定時圖;圖14是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上時的定時圖;圖15是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上時的定時圖;圖16是表示當(dāng)指令從Read指令改變到Write指令時的操作的定時圖;圖17是表示當(dāng)指令從“Read”改變到“Write”時輸入一個刷新指令的定時的圖;圖18是表示當(dāng)使一個端口去激活時實施的操作的定時圖;圖19是表示當(dāng)使兩個端口去激活時實施的操作的定時圖;圖20A和20B是表示DRAM芯操作的定時圖;圖21是表示當(dāng)只使一個端口操作時實施的兩倍速率操作的定時圖;圖22是表示當(dāng)通過使時鐘頻率兩倍高使數(shù)據(jù)傳輸速率兩倍時兩倍速率操作的定時圖;圖23是用于解釋本發(fā)明(第1方面)的第2實施例的圖;圖24是表示根據(jù)本發(fā)明(第1方面)的多端口存儲器的第2實施例的方框圖;圖25A和25B是用于解釋連續(xù)模式的定時圖;圖26是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖;圖27是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖;圖28是表示當(dāng)對于A端口的Write指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖;圖29是表示當(dāng)對于A端口的Write指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖;圖30是表示在一個能夠處理由控制器發(fā)出的中斷指令的配置中操作的定時圖;圖31是表示根據(jù)本發(fā)明(第1方面)的第2實施例的多端口存儲器的一個地址比較器,一個BUSY I/O系統(tǒng),和一個中斷系統(tǒng)的配置的圖;圖32是表示主器件操作的定時圖;圖33是表示從器件操作的定時圖;圖34是表示當(dāng)兩個端口的寫地址相同時實施的主器件操作的定時圖;圖35是表示當(dāng)兩個端口的寫地址相同時實施的從器件操作的定時圖;圖36是表示當(dāng)兩個端口的寫地址相互匹配使控制器發(fā)出中斷指令時主器件操作的定時圖;圖37是表示當(dāng)兩個端口的寫地址相互匹配使控制器發(fā)出中斷指令時從器件操作的定時圖;圖38是用于解釋本發(fā)明(第2方面)的原理的圖,表示當(dāng)對于兩個端口實施讀操作時的情形;圖39是用于解釋本發(fā)明(第2方面)的原理的圖,表示脈沖串長度為4的例子;圖40是表示在2和3個端口的情景情形中在一個最小外部指令周期和各內(nèi)部操作周期之間的關(guān)系的圖;圖41是表示在n個端口的情形中在一個最小外部指令周期和各內(nèi)部操作周期之間的關(guān)系的圖;圖42是表示根據(jù)本發(fā)明(第2方面)的一個實施例的多端口存儲器的配置的圖;圖43A到43C是表示根據(jù)本發(fā)明(第2方面)的實施例的多端口存儲器的配置的圖;圖44是表示根據(jù)第1實施例與指令處理有關(guān)的各裝置的配置的圖;圖45是表示根據(jù)第1實施例與指令處理有關(guān)的各裝置的配置的圖;圖46是判優(yōu)器的實施例;圖47是表示根據(jù)第1實施例與地址處理有關(guān)的部分的配置的圖;圖48是表示根據(jù)第1實施例與數(shù)據(jù)輸出有關(guān)的部分的配置的圖;圖49是表示圖48的傳輸信號發(fā)生電路的圖。
圖50是表示根據(jù)第1實施例與數(shù)據(jù)輸入有關(guān)的部分的配置的圖;圖51是表示當(dāng)將Read指令接連地輸入兩個端口時實施的操作的圖;圖52是表示當(dāng)將Read指令接連地輸入兩個端口時實施的操作的圖;圖53表示當(dāng)接連地輸入Write指令時的例子;圖54表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作;圖55表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作;圖56是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Write操作時實施的操作的圖;圖57是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令使從Write指令改變到Read指令時實施的操作的時間圖;圖58是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令使從寫指令改變到讀指令時實施的操作的時間圖;圖59A和59B是DRAM芯操作的定時圖;圖60是表示刷新電路的配置的電路圖;圖61是表示第2判優(yōu)器的電路配置的圖;圖62表示兩個端口經(jīng)受Write→Read的指令改變,和在REF傳輸禁止期間發(fā)生一個刷新定時器事件的情形;圖63表示兩個端口經(jīng)受Write→Read的指令改變,和在REF傳輸禁止期間發(fā)生一個刷新定時器事件的情形;圖64表示兩個端口如上面情形一樣經(jīng)受Write→Read的指令改變,但是在REF傳輸禁止期間前發(fā)生一個刷新定時器的情形;圖65表示兩個端口如上面情形一樣經(jīng)受Write→Read的指令改變,但是在REF傳輸禁止期間前發(fā)生一個刷新定時器的情形;圖66表示只有A端口經(jīng)受Write→Read的指令變遷,和在REF傳輸禁止期間發(fā)生一個刷新定時器事件的情形;圖67表示只有A端口經(jīng)受Write→Read的指令變遷,和在REF傳輸禁止期間發(fā)生一個刷新定時器事件的情形;圖68表示在兩個端口連續(xù)寫的情形的定時圖;圖69表示在兩個端口連續(xù)寫的情形的定時圖;圖70表示與圖57和圖58所示的第1實施例操作對應(yīng)的第2實施例操作的定時圖;圖71表示與圖57和圖58所示的第1實施例操作對應(yīng)的第2實施例操作的定時圖;圖72表示與圖56所示的第1實施例操作對應(yīng)的第2實施例操作的定時圖;圖73是用于解釋本發(fā)明(第3方面)的原理的圖,表示對于兩個端口實施讀操作的情形;圖74是用于解釋本發(fā)明(第3方面)的原理的圖,表示脈沖串長度為4的例子;圖75是表示在2和3個端口情形中在一個最小外部指令周期和各內(nèi)部操作周期之間關(guān)系的圖;圖76是表示在N個端口情形中在一個最小外部指令周期和各內(nèi)部操作周期之間關(guān)系的圖;圖77是表示根據(jù)本發(fā)明(第3方面)的一個實施例的多端口存儲器的配置的圖;圖78A到78C是表示根據(jù)本發(fā)明(第3方面)的上述實施例的多端口存儲器的配置的圖;圖79是表示根據(jù)第1實施例與指令處理有關(guān)的各裝置的配置的圖;
圖80是表示根據(jù)第1實施例與指令處理有關(guān)的各裝置的配置的圖;圖81是判優(yōu)器的實施例;圖82是表示指令寄存器的配置的圖;圖83是表示指令寄存器的配置的圖;圖84A和圖84B表示寄存器控制電路的操作;圖85是表示指令寄存器操作的圖;圖86是表示指令寄存器操作的圖;圖87是表示根據(jù)第1實施例與地址處理有關(guān)的部分的配置的圖;圖88是表示根據(jù)第1實施例與數(shù)據(jù)輸出有關(guān)的部分的配置的圖;圖89是表示圖88的傳輸信號發(fā)生電路的圖;圖90是表示根據(jù)實施例與數(shù)據(jù)輸入有關(guān)的部分的配置的圖;圖91是表示根據(jù)實施例與數(shù)據(jù)輸入有關(guān)的部分的配置的圖;圖92表示當(dāng)將Read指令接連地輸入兩個端口時實施的操作;圖93表示當(dāng)將Read指令接連地輸入兩個端口時實施的操作;圖94表示當(dāng)將接連地輸入Write指令時的例子;圖95表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作;圖96表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作;圖97是表示當(dāng)A端口和B端口兩者操作在最大時鐘頻率上進行Write操作時實施的操作的圖;圖98是表示當(dāng)兩個端口操作都在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令使從Write指令改變到Read指令時實施的操作的時間圖;圖99是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令使從Write指令改變到Read指令時實施的操作的時間圖;圖100A和100B是DRAM芯操作的定時圖;圖101是表示根據(jù)本發(fā)明(第4方面)的多端口存儲器的實施例的方框圖;
圖102是表示根據(jù)本發(fā)明(第4方面)的多端口存儲器操作的一個例子的定時圖;圖103是表示根據(jù)本發(fā)明(第4方面)的多端口存儲器操作的一個例子的定時圖;圖104是表示根據(jù)本發(fā)明(第4方面)的多端口存儲器操作的另一個例子的定時圖;圖105是表示指令譯碼器寄存器的方框圖;圖106是根據(jù)本發(fā)明(第4方面)的實施例的判優(yōu)器的方框圖;圖107是表示判優(yōu)器操作的定時圖;圖108是地址緩沖器/寄存器和地址改變電路的方框圖;圖109是存儲塊的方框圖;圖110A和110B是表示存儲塊操作的定時圖;圖111表示根據(jù)本發(fā)明(第5方面)的多端口存儲器的第1實施例;圖112表示多端口存儲器的I/O電路5010和存儲塊MB的詳細(xì)情況;圖113表示地址比較電路的詳細(xì)情況;圖114表示比較器的詳細(xì)情況;圖115表示當(dāng)加到加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA相互匹配時實施的比較器操作;圖116表示當(dāng)行地址信號RA在輸入/輸出端口PORT-A和PORT-B之間不匹配時比較器的操作;圖117表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA在時鐘信號CLKA與時鐘信號CLKB具有不同周期的條件下匹配時比較器的操作;圖118表示提供給圖112所示的判優(yōu)電路的判優(yōu)控制電路;圖119表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號匹配時實施的判優(yōu)控制電路的操作;圖120表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA相互匹配時實施的操作;圖121表示當(dāng)時鐘信號CLKA和CLKB的周期相同,時鐘信號CLKA的相位超前時鐘信號CLKB的相位多于半個周期時實施的操作;圖122表示當(dāng)幾乎同時加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA相互不同時的操作;圖123表示多端口存儲器的第2實施例和根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法;圖124表示多端口存儲器的第3實施例和控制根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法;圖125表示判優(yōu)控制電路的詳細(xì)情況;圖126表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號相互匹配時實施的判優(yōu)控制電路的操作;圖127表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同的行地址信號RA時實施讀操作的方法;圖128表示當(dāng)將有效指令A(yù)CT和相互不同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時實施讀操作的方法;圖129表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同行地址信號RA時實施寫操作的方法;圖130表示對于輸入/輸出端口PORT-A連續(xù)地實施寫操作和讀操作,和對于輸入/輸出端口PORT-B相繼地實施指向與輸入/輸出端口PORT-A的寫操作的行地址信號RA相同的行地址信號RA的寫操作和指向與輸入/輸出端口PORT-A的讀操作的行地址信號RA相同的行地址信號RA的寫操作的情形;圖131表示對于輸入/輸出端口PORT-A連續(xù)地實施寫操作和讀操作,和對于輸入/輸出端口PORT-B相繼地實施指向與輸入/輸出端口PORT-A的寫操作的行地址信號RA相同的行地址信號RA的讀操作和指向與輸入/輸出端口PORT-A的讀操作的行地址信號RA相同的行地址信號RA的寫操作的情形;
圖132表示在時鐘信號CLKA和CLKB具有不同的時鐘周期的情形中當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號相互匹配時實施的操作;圖133表示多端口存儲器的第4實施例和根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法;圖134表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同的行地址信號RA時實施讀操作的方法;圖135表示當(dāng)將有效指令A(yù)CT和不同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時實施讀操作的方法;圖136表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,實施寫操作,接著加上有效指令A(yù)CT和不同的行地址信號RA,導(dǎo)致實施寫操作的情形;圖137表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,實施寫操作,接著加上有效指令A(yù)CT和相同的行地址信號RA,導(dǎo)致在輸入/輸出端口PORT-A實施讀操作和在輸入/輸出端口PORT-B實施寫操作的情形;圖138表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,實施寫操作和讀操作,接著加上有效指令A(yù)CT和不同的行地址信號RA,導(dǎo)致實施寫操作和讀操作的情形;圖139表示根據(jù)多端口存儲器的第5實施例的多端口存儲器的操作和控制本發(fā)明(第5方面)的多端口存儲器的方法。
具體實施例方式
下面,我們參照所附各圖描述本發(fā)明的各實施例。
我們首先描述本發(fā)明(第1方面)的原理。
圖1是用于解釋本發(fā)明(第1方面)的原理的圖。雖然圖1表示用于解釋2個端口情形中的原理的圖,但是即便提供了兩個以上的端口(N個端口)也可以得到相同的操作。
等效于內(nèi)部電路(DRAM芯)操作的兩個周期的時間跨度定義為外部指令周期的一個周期。即,芯操作周期是外部指令周期的速率的兩倍。由內(nèi)部存儲器在兩倍速率以指令越早到達(dá)就越早處理指令的這種次序?qū)M入A端口和B端口的指令進行處理。然后將輸出數(shù)據(jù)傳送到每個端口。即,在一個芯操作周期中實施包括選擇一條字線,放大數(shù)據(jù),選擇一條列線,讀和寫操作,預(yù)沖電操作的一系列操作,從而對相關(guān)的存儲塊完成一個存取操作。
例如,在與圖1的A端口有關(guān)的外部指令周期的定時C1,在A端口進入一個Read指令。進一步,在一個與B端口有關(guān)的外部指令周期的定時C1′,在B端口進入一個Read指令。因為A端口的Read指令的定時稍微早一些,所以這個Read指令在進入B端口的讀指令之前被執(zhí)行。這里,一個外部指令周期對應(yīng)于4個時鐘脈沖周期。如圖1所示,在與1個芯操作周期對應(yīng)的2個時鐘脈沖周期中執(zhí)行和完成每個Read指令。因此,響應(yīng)在等效于一個外部指令周期的4個時鐘脈沖周期的時間間隔中進入A端口和B端口的Read指令,能夠?qū)嵤┳x操作,而不會產(chǎn)生一個BUSY狀態(tài)即便來自A端口的讀存取和來自B端口的讀存取都指向同一個存儲塊。這通過在2個時鐘脈沖周期中執(zhí)行和完成每個存取來實現(xiàn)。
在這種方式中,即便多個端口同時存取同一個存儲塊,因為內(nèi)部存儲器能夠以兩倍的速度進行相繼的和連續(xù)的處理,所以也不會產(chǎn)生一個BUSY狀態(tài)。
而且,當(dāng)如圖1所示從器件外部(例如在A端口)給出一個刷新指令時,在該器件內(nèi)部能夠?qū)嵤┧⑿虏僮鞫粫绊憗碜粤硪粋€端口(即本例中的B端口)的存取。在這種情形中,可以選擇多個端口中的一個(即圖1例中的A端口)作為進行刷新管理的端口,總是從這個端口進入刷新指令。
而且,數(shù)據(jù)輸出可以取來從多個列地址并行地讀出數(shù)據(jù)和通過在輸出時將并行數(shù)據(jù)變換成串行數(shù)據(jù)輸出數(shù)據(jù)的脈沖串的形式。這增加了數(shù)據(jù)傳輸速率并使響應(yīng)連續(xù)的Read指令連續(xù)地輸出數(shù)據(jù)成為可能。
圖2是表示當(dāng)只有一個端口正在被使用時實施的刷新操作的圖。
如圖2所示,當(dāng)提供2個端口,例如,A端口和B端口時,不需要讓2個端口都操作。在器件內(nèi)提供一個刷新定時器使內(nèi)部產(chǎn)生刷新指令成為可能。
如圖2所示,例如,當(dāng)一個端口(例如,B端口)不在操作時能夠內(nèi)部產(chǎn)生刷新指令,從而執(zhí)行刷新指令而不會影響在A端口的存取。
現(xiàn)在我們考慮一個例子,其中當(dāng)進行刷新管理時,控制器A控制A端口,控制器B控制B端口。在這種情形中,如果存在一個如上述的內(nèi)部刷新功能,則當(dāng)只用A端口時B端口能夠完全停止。這就能夠減少由于下面的系統(tǒng)操作的改變引起的功率消耗。
圖3A到3C是當(dāng)2個端口,3個端口和N個端口時用于解釋本發(fā)明原理的圖。
如上面所描述的,本發(fā)明也可應(yīng)用于有3個或更多端口的多端口存儲器。圖3A表示在如圖1和圖2所示的提供2個端口的情形中1個端口的操作。圖3B表示在3個端口的情形中1個端口的操作,圖3C表示N個端口的情形。如圖3C所示,可以適當(dāng)?shù)貙?nèi)部操作周期的長度設(shè)定在1/N與N個端口存儲器的情形中的外部指令周期一樣長。
下面,我們描述根據(jù)本發(fā)明的一個實施例的半導(dǎo)體存儲器件。
圖4是表示根據(jù)本發(fā)明的多端口存儲器的第1實施例的方框圖。在這個例子中,提供了具有2個端口,即A端口和B端口的配置。
圖4的多端口存儲器10包括A端口11,B端口12,自刷新電路13,DRAM芯14,判優(yōu)器15,刷新指令寄存器16,指令寄存器A17,指令寄存器B18,刷新地址寄存器19,地址寄存器A20,地址寄存器B21,寫數(shù)據(jù)寄存器A22,寫數(shù)據(jù)寄存器B23,傳輸門A24,和傳輸門B25。
A端口11包括模寄存器31,CLK緩沖器32,數(shù)據(jù)I/O電路33,地址緩沖器34,和指令譯碼器35。進一步,B端口12包括模寄存器41,CLK緩沖器42,數(shù)據(jù)I/O電路43,地址緩沖器44,和指令譯碼器45。在A端口11和B端口12,分別與時鐘信號CLKA和CLKB同步地獨立地建立到外部總線的存取和來自外部總線的存取。模寄存器31和41能夠在其中存儲對于各端口的模式設(shè)定如數(shù)據(jù)等待時間和脈沖串長度。在這個實施例中,A端口11和B端口12兩者都具有各自的模寄存器,使每個端口都能進行模式設(shè)定。然而,可以將模寄存器只安排在一個端口中,例如,使得對于2個端口的設(shè)置可以由對這一個端口的設(shè)置來實現(xiàn)。
自刷新電路13包括刷新定時器46和刷新指令發(fā)生器47。自刷新電路13在器件中產(chǎn)生刷新指令,分別從A端口11和B端口12接收信號CKEA1和CKEB1。信號CKEA1和CKEB1是分別用CLK緩沖器32和42對外部信號CKEA和CKEB進行緩沖得到的。用外部信號CKEA和CKEB暫停各端口的時鐘緩沖器并使各端口去基活。如果使A端口11和B端口12中的一個進入去激活狀態(tài),則自刷新電路13開始它的操作。在模寄存器31和41中進行了設(shè)置,使得一個端口負(fù)責(zé)刷新管理的情形中,當(dāng)負(fù)責(zé)刷新管理的的端口變得不操作時可以激活自刷新電路13。
進一步,DRAM芯包括存儲器陣列51,譯碼器52,控制電路53,WriteAmp(寫放大器)54和讀出緩沖器55。存儲器陣列51在其中存儲被寫和被讀的數(shù)據(jù),并包括DRAM存儲單元,單元門晶體管,字線,位線,讀出放大器,列線,列門等。譯碼器52對被存取的地址進行譯碼??刂齐娐?3控制DRAM芯14的操作。WriteAmp 54放大寫入存儲器陣列51的數(shù)據(jù)。讀出緩沖器55放大從存儲器陣列51讀出的數(shù)據(jù)。
將到A端口11的輸入傳輸給地址寄存器A20,刷新指令寄存器16,指令寄存器A17和寫數(shù)據(jù)寄存器A22。進一步,將到B端口12的輸入加到地址寄存器B21,刷新指令寄存器16,指令寄存器B18和寫數(shù)據(jù)寄存器B23。
判優(yōu)器(判優(yōu)電路)15確定指令進入的次序,以便確定將用于在A端口11和B端口12之間進行處理的優(yōu)先權(quán)給予哪個指令。以確定的次序,判優(yōu)器15將指令,地址和數(shù)據(jù)(在寫操作的情形中)從各寄存器傳輸給DRAM芯14。DRAM芯14根據(jù)接收的數(shù)據(jù)進行操作。在Read指令的情形中,將從DRAM芯14讀出的數(shù)據(jù)傳輸給輸入相應(yīng)指令的端口,然后將該數(shù)據(jù)從并行數(shù)據(jù)變換成串行數(shù)據(jù),接著與這個端口的時鐘同步地輸出。
圖5是與輸入到判優(yōu)器15的指令有關(guān)的電路的方框圖;指令譯碼器35包括輸入緩沖器61,指令譯碼器62和(n-1)時鐘延遲電路63。而且,指令譯碼器45包括輸入緩沖器71,指令譯碼器72和(n-1)時鐘延遲電路73。指令寄存器A17包括讀指令寄存器17-1和寫指令寄存器17-2。而且,指令寄存器B18包括讀指令寄存器18-1和寫指令寄存器18-2。
在Read指令的情形中,分別通過指令譯碼器62或72將輸入到輸入緩沖器61或71的指令傳輸給讀指令寄存器17-1或18-1,而沒有任何定時操作。在Write指令的情形中,由(n-1)時鐘延遲電路63或73使進入的指令延遲(n-1)時鐘,然后在當(dāng)輸入一系列要被寫的脈沖串?dāng)?shù)據(jù)的第n個數(shù)據(jù)(即最后一個數(shù)據(jù))時的定時將它傳輸給寫指令寄存器17-2或18-2。
在刷新指令的情形中,將從A端口11,B端口12或刷新指令發(fā)生器47提供的刷新指令傳輸?shù)剿⑿轮噶罴拇嫫?6。因為并不如此經(jīng)常地出現(xiàn)刷新指令,所以不需要提供多個刷新指令寄存器。進一步,從模寄存器31和41提供輸入到刷新指令發(fā)生器47的自刷新設(shè)置信息,該信息指出各端口中的哪一個負(fù)責(zé)刷新管理。
判優(yōu)器15檢測將指令傳輸?shù)礁髦噶罴拇嫫鞯拇涡?,并以這個次序?qū)⒅噶钜粋€接著一個地傳輸?shù)紻RAM控制電路53。
當(dāng)接收指令時(或當(dāng)接近指令執(zhí)行的結(jié)束時),DRAM控制電路53產(chǎn)生RESET1信號,讓判優(yōu)器15為下一個指令作好準(zhǔn)備。在這個實施例的特定的配置中,當(dāng)RESET1信號結(jié)束時DRAM控制電路53接收下一個指令。
接收RESET1信號時,判優(yōu)器15將復(fù)位信號ResetRA,ResetWA,ResetRB,ResetWB和ResetREF中的一個加到指令寄存器A17,指令寄存器B18和刷新指令寄存器16中相應(yīng)的一個。通過這個操作,使在其中存儲了已經(jīng)傳輸給DRAM芯14的指令的指令寄存器復(fù)位,在這個指令寄存器中準(zhǔn)備接收下一個指令。
圖6A和6B是表示判優(yōu)器15的配置的電路圖。
如圖6A所示,判優(yōu)器15包括比較器80-1到80-10,AND(“與”)電路81-1到81-5,AND電路82-1到82-5,AND電路83-1到83-5,延遲電路84-1到84-5,倒相器85到87,NAND(“與非”)電路88和倒相器89和90。比較器80-1到80-10每個都具有相同的電路配置,如圖6B所示,包括NAND電路91和92和倒相器93和94。
將來自指令寄存器A17的讀指令信號RA2和寫指令信號WA2,來自指令寄存器B18的讀指令信號RB2和寫指令信號WB2,和來自刷新指令寄存器16的刷新指令REF2加到判優(yōu)器15。對于由選擇5個指令信號中的2個得到的全部10個組合,10個比較器80-1到80-10根據(jù)指令到達(dá)的定時確定哪一個指令比另一個早。
每個比較器比較2個指令的定時,將各輸出中的一個設(shè)置在HIGH(高),它與在其它輸入前已經(jīng)接收了HIGH的輸入相應(yīng)。例如,比較器80-1到80-4中的每一個確定來自A端口11的讀指令信號RA2或4個其它的指令中對應(yīng)的一個中哪一個是較早的。如果讀指令信號RA2比4個其它的指令中的任何一個早,則將從AND電路81-1輸出的讀指令信號RA31設(shè)置在HIGH。當(dāng)RESET1信號是LOW(低)時,從判優(yōu)器15將這個讀指令信號RA31加到DRAM芯14作為讀指令信號RA3。
當(dāng)DRAM芯14接收指令時,DRAM芯14產(chǎn)生是HIGH的RESET1信號。由倒相器85到87,NAND電路88和倒相器89將這個RESET1信號變換成脈沖信號,并加到AND電路83-1到83-5。當(dāng)Read指令信號RA31是HIGH時,例如,通過延遲電路84-1產(chǎn)生使其中具有接收到的指令的指令寄存器復(fù)位的信號。
圖7是表示判優(yōu)器15的操作的定時圖。
具有圖7中列舉的名字的信號表示在圖6A的各位置中。圖7是表示當(dāng)將Read指令加到A端口11和B端口12上時判優(yōu)器15的操作。如圖7所示,選擇與A端口11對應(yīng)的Read指令RA2作為具有優(yōu)先權(quán)的指令,從而產(chǎn)生RA31,使得芯電路實施讀操作READ-A。響應(yīng)由此產(chǎn)生的復(fù)位信號RESET1,使讀指令信號RA2復(fù)位。對應(yīng)地,選擇與B端口12對應(yīng)的Read指令RB2,從而產(chǎn)生RB31。當(dāng)復(fù)位信號RESET1變成LOW時,將讀指令信號RB3加到芯電路,從而執(zhí)行讀操作READ-B。
圖8是與輸入到一個DRAM芯14的地址有關(guān)的電路方框圖。
A端口11的地址緩沖器34包括輸入緩沖器34-1,傳輸門34-2和OR(“或”)電路34-3。加入具有與從圖5所示的指令譯碼器62輸出的讀指令信號RA1的前沿對應(yīng)的脈沖的脈沖信號作為加到OR電路34-3的一個輸入端的RA1P。進一步,加入具有與從圖5所示的指令譯碼器62輸出的寫指令信號WA1的前沿對應(yīng)的脈沖的脈沖信號作為加到OR電路34-3的另一個輸入端的WA1P。下文中,在它的信號名稱的未端具有字母“P”的信號代表具有從對應(yīng)的信號名稱的信號的前沿產(chǎn)生的脈沖的信號。
B端口12的地址緩沖器44包括輸入緩沖器44-1,傳輸門44-2和OR電路44-3。
地址寄存器A20包括地址鎖存器101,傳輸門102,地址鎖存器103,傳輸門104,傳輸門105,地址鎖存器106,和傳輸門107。進一步,地址寄存器B21包括地址鎖存器111,傳輸門112,地址鎖存器113,傳輸門114,傳輸門115,地址鎖存器116,和傳輸門117。
刷新地址寄存器19包括刷新地址計數(shù)器/寄存器19-1,倒相器19-2,和傳輸門19-3。由刷新地址計數(shù)器/寄存器19-1產(chǎn)生和保持刷新地址。
通過上述電路配置的操作,當(dāng)從器件外輸入Read指令或Write指令時,將與指令一起進入的地址傳輸?shù)降刂锋i存器101或111。在Read指令的情形中將地址傳輸?shù)降刂锋i存器105或116而不需任何時間操作。在Write指令的情形中在取得一系列寫數(shù)據(jù)的最后一個數(shù)據(jù)的定時將地址傳輸?shù)降刂锋i存器103或113。
如圖8的電路配置所示,響應(yīng)與各從判優(yōu)器15傳輸?shù)紻RAM芯14的指令信號RA3,WA3,RB3,WB3和REF3對應(yīng)的脈沖信號RA3P,WA3P,RB3P,WB3P和REF3P,將地址信號從一個地址鎖存器傳輸?shù)紻RAM芯14。
圖9是與數(shù)據(jù)輸出有關(guān)的電路方框圖。
與數(shù)據(jù)I/O電路33的數(shù)據(jù)輸出有關(guān)的部分包括數(shù)據(jù)鎖存器121,傳輸門122,數(shù)據(jù)鎖存器123,并行串行變換器124,輸出緩沖器125和傳輸信號發(fā)生電路126。而且,與數(shù)據(jù)I/O電路43的數(shù)據(jù)輸出有關(guān)的部分包括數(shù)據(jù)鎖存器131,傳輸門132,數(shù)據(jù)鎖存器133,并行串行變換器134,輸出緩沖器135和傳輸信號發(fā)生電路136。
從存儲器陣列51讀出的數(shù)據(jù)被讀出緩沖器55放大,分別通過傳輸門A24或傳輸門B25加到數(shù)據(jù)I/O電路33或數(shù)據(jù)I/O電路43。如果執(zhí)行的指令與從A端口11的數(shù)據(jù)讀出有關(guān),則傳輸門A24打開,而如果執(zhí)行的的指令與從B端口12的數(shù)據(jù)讀出有關(guān),則傳輸門B25打開。以這種方式提供的數(shù)據(jù)被數(shù)據(jù)鎖存器121或131鎖存和保持。
傳輸門122或132響應(yīng)從傳輸信號發(fā)生電路126或136提供的傳輸信號在一個相應(yīng)的端口接收讀指令后打開預(yù)定等待時間。于是分別將數(shù)據(jù)鎖存器121或131的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)鎖存器123或133。此后用并行串行變換器124或134將數(shù)據(jù)從并行數(shù)據(jù)變換到串行數(shù)據(jù)。然后將該數(shù)據(jù)傳輸給輸出緩沖器125或135,并從那里輸出。
圖10是表示傳輸信號發(fā)生電路126或136的配置的電路圖。
傳輸信號發(fā)生電路126或136包括觸發(fā)器141到144和多路復(fù)用器145。將讀指令信號RA1或RB1加到觸發(fā)器141,并連續(xù)地與時鐘信號CLKA1或CLKB1同步地從一個觸發(fā)器傳輸?shù)较乱粋€。將等待時間信息A和B加到多路復(fù)用器145。這個等待時間信息例如用時鐘周期的數(shù)目確定等待時間的長度。根據(jù)等待時間信息,多路復(fù)用器145選擇一個相應(yīng)的觸發(fā)器的Q輸出,并將它作為數(shù)據(jù)傳輸信號輸出。
圖11是與數(shù)據(jù)輸入有關(guān)的電路方框圖;與數(shù)據(jù)I/O電路33的數(shù)據(jù)輸入有關(guān)的部分包括數(shù)據(jù)輸入緩沖器151,串行并行變換器152和數(shù)據(jù)傳輸裝置153。與數(shù)據(jù)I/O電路43的數(shù)據(jù)輸入有關(guān)的部分包括數(shù)據(jù)輸入緩沖器154,串行并行變換器155和數(shù)據(jù)傳輸裝置156。
分別用串行并行變換器152或155將串行地輸入到數(shù)據(jù)輸入緩沖器151或154的數(shù)據(jù)變換成并行數(shù)據(jù)。當(dāng)輸入最后一個數(shù)據(jù)時,將并行數(shù)據(jù)傳輸?shù)綄憯?shù)據(jù)寄存器A22或?qū)憯?shù)據(jù)寄存器B23。當(dāng)將Write指令從判優(yōu)器15傳輸?shù)紻RAM芯14時,響應(yīng)表示與Write指令到DRAM芯14的傳輸相應(yīng)的定時的信號WA3P或WB3P,將寫數(shù)據(jù)寄存器A22或?qū)憯?shù)據(jù)寄存器B23的數(shù)據(jù)傳輸?shù)紻RAM芯14。
圖12是表示當(dāng)連續(xù)進入Read指令時實施的操作的定時圖。
A端口11和B端口12分別與具有不同頻率的時鐘信號CLKA和CLKB同步地操作。在這個例子中,A端口11用最大時鐘頻率操作,而B端口12用較低的時鐘頻率操作。
A端口11具有下列設(shè)置讀指令周期=4(CLKA),數(shù)據(jù)等待時間=4,和脈沖串長度=4。B端口12具有下列設(shè)置讀指令周期=2(CLKA),數(shù)據(jù)等待時間=2,和脈沖串長度=2。在每個端口的模寄存器中設(shè)置數(shù)據(jù)等待時間和脈沖串長度。
將由端口接收的指令存儲在各指令寄存器中。將刷新指令存儲在刷新指令寄存器中。判優(yōu)器監(jiān)視這些指令寄存器,并以接收指令的次序?qū)⒅噶顐鬏斀oDRAM芯。當(dāng)完成上一個指令的處理時傳輸下一個指令。
將從DRAM芯讀出的數(shù)據(jù)從讀出緩沖器傳輸?shù)礁鞫丝跀?shù)據(jù)鎖存器(請參見圖9)。以后將數(shù)據(jù)從并行變換成串行,作為脈沖串輸出與外部時鐘同步地輸出。
雖然曾經(jīng)從A端口輸入刷新指令,但是不影響B(tài)端口的操作,如圖12所示。
圖13是表示當(dāng)連續(xù)輸入Write指令時實施的操作的定時圖。
在寫操作時從器件外部輸入的數(shù)據(jù)取脈沖串輸入的形式。Write指令存儲在寫指令寄存器中的定時是輸入脈沖串輸入的最后一個數(shù)據(jù)的定時。
如圖13所示,從A端口提供的刷新指令不影響B(tài)端口的操作。
圖14是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上時的定時圖。
如圖14所示,在這些端口的時鐘信號之間可能存在相位差。兩個端口具有下列設(shè)置讀指令周期=4,數(shù)據(jù)等待時間=4,和脈沖串長度=4。如從圖可見的那樣,甚至當(dāng)兩個端口都操作在最大時鐘頻率和連續(xù)輸入Read指令時關(guān)于操作也沒有問題。
圖15是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上時的定時圖。在圖15中,兩個端口連續(xù)地接收Write指令。
如圖15所示,在這些端口的時鐘信號之間可能存在相位差。兩個端口具有下列設(shè)置寫指令周期=4,數(shù)據(jù)等待時間=4,和脈沖串長度=4。如從圖可見的那樣,甚至當(dāng)兩個端口都操作在最大時鐘頻率和連續(xù)輸入Write指令時也能夠進行適當(dāng)?shù)牟僮鳌?br>
圖16是表示當(dāng)指令從Read指令改變到Write指令時的各操作的定時圖;如圖16所示,當(dāng)與“Write→Read”或“Read→Write”的指令間隔比較時指令傳輸“Write→Read”需要一個額外的指令間隔。這是因為我們傳輸Write指令以便在當(dāng)進入脈沖串輸入的最后一個數(shù)據(jù)時的定時對它進行處理。相反地,為了對它進行處理傳輸一個Read指令的定時定義為進入Read指令的定時,使得當(dāng)相繼的指令是“Write→Read”時需要提供一個額外的指令間隔。這樣一個需要可以認(rèn)為是將取脈沖串輸入形式的輸入數(shù)據(jù)變換成并行數(shù)據(jù)這個事實引起的。如果只輸入一塊數(shù)據(jù)而不是如脈沖串輸入那樣輸入4塊數(shù)據(jù),則甚至當(dāng)兩個相繼的指令都是“Write→Read”時也不需要提供一個額外的指令間隔。
在這種如對于一個Write寫指令只輸入一塊數(shù)據(jù)那樣的配置中,即便用與“Write→Write”或“Read→Read”的情形中相同的指令間隔,也能夠?qū)τ凇癢rite→Read”指令連續(xù)性適當(dāng)?shù)剡M行操作。
圖17是表示當(dāng)指令從“Read”改變到“Write”時輸入刷新指令的定時圖。
在圖的頂部,表示出應(yīng)該進入刷新指令的定時。在如說明的期間中在任何定時都能適當(dāng)?shù)剡M入刷新指令。例如,即便在圖17所示的定時輸入刷新指令,刷新指令只有當(dāng)完成前一個Write寫指令時才開始刷新操作,直到將刷新指令保存在備用狀態(tài)時為止。因此,只要刷新指令落在與這個備用狀態(tài)對應(yīng)的期間內(nèi)在任何定時都能適當(dāng)?shù)剡M入刷新指令。
圖18是表示當(dāng)使一個端口去激活時實施的操作的定時圖;如圖18所示,當(dāng)使一個端口(即,圖18中的A端口)去激活時,根據(jù)刷新定時器內(nèi)部產(chǎn)生刷新指令,從而執(zhí)行刷新操作。
圖19是表示當(dāng)使兩個端口去激活時實施的操作的定時圖。
如圖19所示,當(dāng)使兩個端口去激活時,根據(jù)刷新定時器內(nèi)部產(chǎn)生刷新指令,從而執(zhí)行刷新操作。
圖20A和20B是表示DRAM芯操作的定時圖。
圖20A表示讀操作的情形,圖20B表示寫操作的情形。在如圖20A和20B所示的操作定時,在完成整個操作前通過字線選擇,數(shù)據(jù)放大,寫回,和預(yù)充電的相繼操作發(fā)出進入的指令。
圖21是表示當(dāng)只使一個端口操作時實施的兩倍速率操作的定時圖;通過使兩個端口中的一個停止操作,可以將到操作端口的指令輸入間隔縮短一半。當(dāng)這種情形發(fā)生時,外部指令的最快周期和內(nèi)部動作的最快周期彼此相同。在圖21的例子中,縮短了指令間隔而沒有改變時鐘頻率。在這個情形中,因為脈沖串長度也變得較短,所以數(shù)據(jù)傳輸速率與當(dāng)用兩個端口時的相同。
圖22是表示當(dāng)通過使時鐘頻率兩倍高使數(shù)據(jù)傳輸速率兩倍時兩倍速率操作的定時圖;在圖22中,當(dāng)使兩個端口中的一個停止操作時,將輸入到操作端口時鐘信號設(shè)置在高兩倍的頻率上。與此相關(guān),指令輸入的時間間隔縮短一半。在這個情形中,因為脈沖串長度與當(dāng)用兩個端口時的相同,所以數(shù)據(jù)傳輸速率為當(dāng)用兩個端口時的兩倍那樣快。
此外,因為只將外部時鐘信號輸入I/O電路裝置,所以如果將該電路裝置設(shè)計得能應(yīng)付高速操作則實際上容易完成兩倍速率操作。
圖23是用于解釋本發(fā)明的第2實施例的圖;一般,根據(jù)其用度擴大存儲器。這同樣應(yīng)用于多端口存儲器的情形,可能存在為了擴大存儲空間提供多個多端口存儲器的情形。
多端口存儲器包括判優(yōu)器,并檢測哪一個指令較早進入各端口,接著以檢測出的次序執(zhí)行指令。甚至當(dāng)在幾乎相同的定時將指令輸入各端口時,也為相繼地執(zhí)行指令確定一個次序。在圖23所示的例子中,提供多個多端口存儲器200-1到200-n,從A端口控制器201和B端口控制器202,將相同的指令加到多端口存儲器200-1到200-n。即便同時將指令加到A端口和B端口,由于信號線有不同的長度和/或電源噪聲的影響,指令到達(dá)每個多端口存儲器的相對定時也可能稍有不同。在這個情形中,每個多端口存儲器的判優(yōu)器能夠以從存儲器到存儲器不同的次序執(zhí)行指令。
如果到A端口的指令和到B端口的指令指向不同的地址,則存儲器件之間執(zhí)行指令的不同次序可能不會成為一個問題。然而,當(dāng)各指令是對于同一個地址時,就會發(fā)生問題。
例如,在當(dāng)寫存取同一個存儲單元后讀出數(shù)據(jù)時與當(dāng)寫存取同一個存儲單元前讀出數(shù)據(jù)時之間檢索的數(shù)據(jù)是不同的。而且,當(dāng)在寫入A端口的數(shù)據(jù)后寫入B端口的數(shù)據(jù)時B端口的數(shù)據(jù)保留在存儲器中,而如果以相反的次序進行操作則A端口的數(shù)據(jù)保留在存儲器中。
如果以上面描述的方式從存儲器到存儲器執(zhí)行指令的次序不同,則關(guān)于數(shù)據(jù)的可靠性就存在嚴(yán)重的問題。
因此,當(dāng)用多個多端口存儲器時,需要使判優(yōu)器作出的決定在存儲器之間保持一致。為此,本發(fā)明的第2實施例指定多端口存儲器中的一個為主器件200-1,并用其余的器件作為從器件200-2到200-n。從器件遵守由主器件的判優(yōu)器作出的決定。
圖24是表示根據(jù)本發(fā)明的多端口存儲器的第2實施例的方框圖。本例子的配置具有兩個端口即A端口和B端口。
與圖4所示的第1實施例的不同包括A端口11A和B端口12A分別具有BUSY信號I/O裝置36和46這個事實和提供地址比較器26比較A端口的地址和B端口的地址這個事實。如果地址比較器26檢測出地址匹配,因此產(chǎn)生匹配信號,則判優(yōu)器15A將轉(zhuǎn)變DRAM芯的操作模式以便開始連續(xù)模式。
圖25A和25B是用于解釋連續(xù)模式的定時圖。
如圖(圖20)表示的第1實施例的操作所示,將DRAM芯的操作分成ROW(行)操作和COLUMM(列)操作。在本發(fā)明中,進行ROW操作,COLUMM操作和預(yù)充電操作作為一系列的連續(xù)執(zhí)行操作,這定義了單個內(nèi)部操作周期。
在第2實施例中的連續(xù)模式與通常的DRAM的列存取操作相同,對于同一個存儲單元反復(fù)執(zhí)行一個指令。即,這個模式在ROW操作后多次執(zhí)行COLUMM操作后進行預(yù)充電。當(dāng)連續(xù)地加上對同一個存儲單元地址的Write指令時,執(zhí)行后面的指令而不執(zhí)行前面的指令。這是因為即便相繼地執(zhí)行了這些Write指令,由前面的指令寫入的數(shù)據(jù)將被后面的指令的數(shù)據(jù)覆蓋。
如圖25A所示,連續(xù)模式允許使操作縮短到比通常內(nèi)部操作的2個周期短,從而提供額外的時間。將由這個額外時間得到的邊邊緣分配給在ROW操作和COLUMM操作之間的一個點(下文中將這個邊緣稱為Wait(等待)期間)。在這個Wait期間中,實施用于使主器件和從器件之間的指令執(zhí)行次序一致的處理。
下面,我們說明用BUSY信號使主器件和從器件之間的操作一致的過程。
為了保證在主器件和從器件之間有相同的指令執(zhí)行次序用BUSY信號。BUSY信號I/O裝置36和46用作輸出主器件200-1中的BUSY信號的BUSY輸出電路,和用作在從器件200-2到200-n中接收BUSY信號的BUSY輸入電路。將指示主器件標(biāo)識或從器件標(biāo)識的信息存儲在模寄存器31或41中。
存儲器件接收來自一個端口的指令,開始如圖20A和20B所示的操作。
當(dāng)從其它的端口輸入指令,存取在ROW操作期間內(nèi)的同一個地址時,地址比較器26產(chǎn)生一個匹配信號。在重復(fù)這個匹配信號時,判優(yōu)器15A向DRAM芯14的控制電路53提供連續(xù)模式信號。響應(yīng)連續(xù)模式信號,DRAM芯14轉(zhuǎn)移到連續(xù)模式如圖25B所示。
在Wait期間中,主器件200-1根據(jù)判優(yōu)器15A作出的決定產(chǎn)生BUSY-A信號或BUSY-B信號。在這個例子中,對于一個被判優(yōu)器15A識別的較早已經(jīng)收到指令的端口產(chǎn)生BUSY信號。
類似地,在Wait期間中,從器件檢測由主器件產(chǎn)生BUSY信號,改變由它自己的判優(yōu)器15A作出的決定,以便如果它不同于BUSY信號的指示就遵從主器件。然后根據(jù)改變了的指令次序?qū)嵤〤OLUMM操作。
圖26是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖。
在這個實施例中,BUSY信號具有一個指示選擇的邏輯級“L”。而且,優(yōu)先地傳輸和非同步地接收BUSY信號。這是因為需要在有限的Wait期間內(nèi)迅速地交換BUSY信號。
在圖26的例子中,因為A端口的ReadA2比B端口的WriteB2早,所以主器件在Wait期間中產(chǎn)生指示A端口的BUSY信號。從器件接收這個BUSY信號,并依靠A端口的ReadA2比B端口的WriteB2早。然后,主器件和從器件以首先ReadA2然后WriteB2的次序執(zhí)行在連續(xù)模式中的列操作。
圖27是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖。而圖26說明A端口的Read指令較早的情形。圖27表示B端口的Write指令較早的情形。
圖28是表示當(dāng)對于A端口的Write指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時28所示的操作例子是關(guān)于A端口的Write指令比B端口的Write指令早的情形。即,因為A端口的WriteA2比B端口的WriteB2早,所以產(chǎn)生指示A端口的BUSY信號,并加到從器件上。在這種情形中,因為通過執(zhí)行A端口的Write指令被寫入的數(shù)據(jù)將立即被覆蓋,所以只有B端口的寫指令因為WriteB2因為它較后進入而被執(zhí)行。
圖29是表示當(dāng)對于A端口的Write指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖。
圖29所示的操作例子是關(guān)于B端口的Write指令比A端口的Write指令早的情形。在這種情形中,因為通過執(zhí)行B端口的Write指令被寫入的數(shù)據(jù)將立即被替代,所以只有A端口的寫指令WriteA2被執(zhí)行。在這個例子中,將A端口的時鐘頻率設(shè)置得稍低于B端口的時鐘頻率。雖然當(dāng)比較指令WriteA2和WriteB2時對于A端口指令輸入稍早,但是在接收最后一個數(shù)據(jù)輸入時是B端口較早。因此,確定B端口的Write指令比A端口的Write指令早。
上面提供的描述還沒有參考關(guān)于A端口的Read指令和B端口的Read指令的組合起來的情形。因為不管相對的定時如何,數(shù)據(jù)的可靠性不受影響,所以在這個情形中不需要產(chǎn)生BUSY信號。
圖30是表示在能夠處理由控制器發(fā)出的中斷指令的配置中的操作的定時圖。
“中斷指令”是當(dāng)開始BUSY信號時指令改變由主器件的判優(yōu)器作出的決定的指示。造成中斷的方法包括a)作為指令輸入;b)提供專用的端子銷;c)用特定的地址組合;和d)用BUSY信號。
方法d)用控制器對與為其產(chǎn)生BUSY信號的端口不同的端口提供BUSY信號,并安排主存儲器和從存儲器對它進行檢測。
在圖30的例子中,當(dāng)對于A端口的Write指令和B端口的Write指令發(fā)生BUSY信號時產(chǎn)生中斷。如將圖28和圖29結(jié)合起來進行的描述那樣,當(dāng)Write和Write的組合產(chǎn)生BUSY信號時只有A端口的Write指令和B端口的Write指令中的一個被執(zhí)行。結(jié)果,將失去較早進入的數(shù)據(jù)。
在圖30中,A端口的WriteA2比B端口的WriteB2早,使產(chǎn)生指向A端口的BUSY信號。接收到主器件產(chǎn)生的BUSY信號后,控制器產(chǎn)生中斷指令以便防止刪除A端口的Write數(shù)據(jù)。
主器件和從器件從控制器接收中斷指令,改變由判優(yōu)器作出的決定,接著根據(jù)中斷指令在等待期間結(jié)束后執(zhí)行Write操作。即,判優(yōu)器改變它們的決定指出A端口的指令WriteA2比B端口的指令WriteB2晚,實施與WriteA2有關(guān)的寫操作。這能夠防止A端口的寫數(shù)據(jù)被刪除。在Write→Write組合的情形中,全部需要只是執(zhí)行寫操作一次,使得可以分配比Read→Write組合或Write→Read組合的連續(xù)模式較長的等待期間。于是可以利用這個等待期間響應(yīng)BUSY信號執(zhí)行中斷指令。
下面,我們描述用于實現(xiàn)上述操作的地址比較器,BUSY I/O系統(tǒng)和中斷系統(tǒng)的配置。
圖31是表示根據(jù)本發(fā)明的第2實施例的多端口存儲器的地址比較器,BUSY I/O系統(tǒng),和中斷系統(tǒng)的配置的圖。
地址比較器26比較存儲在地址寄存器中的地址,并當(dāng)A端口11的地址和B端口12的地址之間存在匹配時輸出匹配信號。而且,為了指出哪兩個地址是匹配地址,產(chǎn)生信號ARA,AWA,ARB和AWB。例如,當(dāng)A端口的Write指令的地址和B端口的Write指令的地址顯示匹配時,將AWA和AWB設(shè)置在“H”。NAND電路208到210每個都得到這些信號的一個邏輯NAND,使得N1,N2和N3中的一個變成“L”。
在圖31左邊(在地址比較器26的下面)提供了BUSY信號I/O裝置36和46與中斷電路。根據(jù)模寄存器31或41的設(shè)置,BUSY和I/O硬件控制裝置211在主器件情形中響應(yīng)匹配信號的檢測產(chǎn)生激活信號(主),和在從器件情形中產(chǎn)生激活信號(從)。激活信號(主)激活BUSY輸出電路212和213,而激活信號(從)激活BUSY輸入電路214和215。
在判優(yōu)器中,將選出的指令作為指令次序中的第一個輸出到輸出端RA3,WA3,RB3和WB3中的一個(即輸出端中的一個是“H”)。在主器件情形中,RA3到WB3被鎖存器216和217響應(yīng)信號N4鎖存起來,信號N4是由與匹配信號的前沿對應(yīng)的脈沖組成的。根據(jù)鎖存的數(shù)據(jù)輸出BUSY-A信號和BUSY-B信號。
在從器件情形中,如果接收到是“L”的BUSY-A信號,則將從中斷電路218輸出的信號N10設(shè)置在“L”。如果接收到是“L”的BUSY-B信號,則將從中斷電路219輸出的信號N11設(shè)置在“L”。當(dāng)信號N10和N11處于去激活狀態(tài)時,它們是“H”,當(dāng)檢測出BUSY信號或中斷指令時它們變成“L”。
中斷檢測裝置220檢測從控制器提供的中斷指令,并輸出中斷信號A或B。給予中斷信號對進入的BUSY信號的優(yōu)先權(quán),并將它們作為信號N10和N11傳輸出去。
圖31底部所示的三個比較器80-3,80-5和80-6是判優(yōu)器15A的比較電路的一部分(請參見圖6A和圖24)。這些比較器對于需要BUST確定的指令組合進行比較。
圖32是表示一個主器件的操作的定時圖。圖33是表示一個從器件的操作的定時圖。
這三個定時圖說明A端口的Read指令的地址和B端口的Write指令的地址相互匹配的情形。圖32的主器件決定A端口較早,圖33的從器件決定B端口較早。在這種情形中,主器件的比較器80-3輸出是“L”的N21和是“H”的N22。進一步,從器件的比較器80-3輸出是“H”的N21和是“L”的N22。主器件產(chǎn)生BUSY-A信號,從器件在接收BUSY-A信號時將N10改變成“L”。因為在這個時間點N1是“L”,所以通過NOR(“或非”)電路221和倒相器222將N10的LOW信號加到從器件的比較器80-3上。對應(yīng)地,從器件的比較器80-3的輸出改變到是“L”的N21和是“H”的N22。在這種方式中,改變了由判優(yōu)器作出的決定。
現(xiàn)在我考慮與上述情形相反的A端口的Write指令的地址和B端口的Read指令的地址相互匹配的情形。在這種情形中,從器件的比較器80-5輸出被改變,從而改變在從器件中由判優(yōu)器作出的決定。
比較WA2和WB2的比較器80-6具有一個不同于比較器80-3和80-5的外圍電路配置。這是因為當(dāng)響應(yīng)Write和Write組合產(chǎn)生BUSY信號時,A端口的指令和B端口的指令中只有一個將被保留。
圖34是表示當(dāng)兩個端口的寫地址相同時實施的主器件的操作的定時圖。圖35是表示當(dāng)兩個端口的寫地址相同時實施的從器件的操作的定時圖。
現(xiàn)在我們考慮如圖34所示主器件決定A端口較早,和如圖35所示從器件決定B端口較早的情形。在地址比較器26剛剛產(chǎn)生一個匹配信號的瞬間,主器件的比較器80-6輸出是“L”的N25和是“H”的N26,和從器件的比較器80-6輸出是“H”的N25和是“L”的N26。主器件將RA3,WA3,RB3和WB3鎖存在這個狀態(tài),并輸出一個BUSY-A信號。
當(dāng)如在本情形中那樣在Write-Write組合中產(chǎn)生BUSY信號時,需要刪除一個已較早進入的Write指令。為了這個目的,提供倒相器231,NOR電路232,NAND電路233和234,倒相器235和236。響應(yīng)匹配信號,HIGH邊沿脈沖電路230產(chǎn)生信號N4的“H”脈沖。通過某個邏輯操作將信號N4和信號N3組合起來,產(chǎn)生信號N31中的“H”脈沖。在這個例子中,N26對于主器件是“H”,使N33產(chǎn)生“H”脈沖,導(dǎo)致N25改變成“H”和N26改變成“L”。這里,延遲電路237和238用于提供一個能夠用來在改變發(fā)生前產(chǎn)生BUSY信號的額外時間,并防止當(dāng)將已經(jīng)改變了的狀態(tài)反饋回到NAND電路233和234時再次被改變。在從器件中,將N25改變成“L”,將N26改變成“H”。
如以前描述的那樣,主器件產(chǎn)生BUSY-A信號,接收這個信號的從器件使它的N10改變成“L”。因為在這個特定瞬間N3是“L”,所以從器件的比較器80-6再次被反轉(zhuǎn),導(dǎo)致使N25改變成“H”,使N26改變成“L”。
延遲電路250接收信號N4,并使這個信號延遲一個預(yù)定時間長度,從而產(chǎn)生一個Wait期間。這里,當(dāng)選擇N1或N2時選擇Delay(延遲)(t1),當(dāng)選擇N3時選擇Delay(t2)。
提供NAND電路251和252與倒相器253和254用于當(dāng)Wait期間結(jié)束時從指令寄存器清除被跳過的Write指令。例如,如果在Wait期間結(jié)束時N25是“L”和N26是“H”,則將執(zhí)行A端口的Write指令。因此,為了從寄存器刪除B端口的Write指令產(chǎn)生RESTWB2。因為在Wait期間中需要通過BUSY接收或中斷改變決定,所以在這個期間指令寄存器中的指令被完整地保留下來。
圖36是表示當(dāng)兩個端口的寫地址相互匹配使控制器發(fā)出中斷指令時主器件操作的定時圖。圖37是表示當(dāng)兩個端口的寫地址相互匹配使控制器發(fā)出中斷指令時從器件操作的定時圖。
如圖36所示,在主器件中的指令選擇狀態(tài)由于中斷而反轉(zhuǎn),而且,如圖37所示,在從器件中的指令選擇狀態(tài)由于BUSY信號而反轉(zhuǎn),然后進一步由于中斷而反轉(zhuǎn)。這里,由于中斷而反轉(zhuǎn)狀態(tài)的操作與由于BUSY信號而反轉(zhuǎn)狀態(tài)的操作相同,我們將省略它的詳細(xì)描述。
在上述第2實施例的操作中,設(shè)計從一個給定的指令到下一個接著的指令擴展的指令周期使它甚至在產(chǎn)生BUSY信號或中斷指令后也不改變。
在圖26中,例如,雖然響應(yīng)ReadA2發(fā)生BUSY信號,ReadA2→ReadA3的指令間隔與ReadA1→ReadA2的指令間隔相同。要求在Wait期間處理BUSY信號和中斷信號。因為這個原因,當(dāng)由于長的系統(tǒng)總線,大量的從器件,控制器的慢響應(yīng)等BUSY信號或中斷信號的交換需要長時間時,就需要較長的Wait期間。
為了消除這個問題,當(dāng)延遲跟隨BUSY信號和中斷信號的下一個指令輸入時可以擴展Wait期間。即,當(dāng)加長Wait期間時可以擴展ReadA2→ReadA3的指令間隔使它比在圖26中的ReadA1→ReadA2的指令間隔長。
為了延遲一個指令輸入,可以在設(shè)計書中說明指令輸入的延遲,和可以設(shè)計控制器使它根據(jù)數(shù)據(jù)表進行操作。如圖31所示通過加長延遲電路250的延遲時間達(dá)到Wait期間的擴展。如果根據(jù)用度需要調(diào)整Wait期間,則在延遲電路250中可以提供兩條或多條延遲線,使通過一個模寄存器的設(shè)置改變延遲長度的設(shè)置成為可能。
當(dāng)Wait期間以這種方式擴展時,除了響應(yīng)Write-Write指令組合產(chǎn)生BUSY信號的情形外在其它情形中也能夠提供長的Wait期間。考慮到這一點,甚至當(dāng)響應(yīng)Read-Write或Write-Read指令組合出現(xiàn)BUSY信號時控制器也可以發(fā)出一個中斷指令。
在上面描述的本發(fā)明中,當(dāng)指令進入N個端口時,在任何給定的端口的一個最小指令周期內(nèi)一個接著一個地執(zhí)行與N個端口對應(yīng)的所有的N指令。因此,一個與任何給定端口有關(guān)的存取操作出現(xiàn)在器件外部中在最小指令周期內(nèi)被實施。在這個情形中,只有當(dāng)從多個端口存取同一個地址時才會發(fā)生BUSY信號。于是可以得到BUSY信號發(fā)生概率,該概率與SRAM型多端口存儲器的BUSY信號發(fā)生概率一樣低。
而且,在本發(fā)明的半導(dǎo)體存儲器件中,內(nèi)部電路包括一個存儲單元陣列,該陣列由各動態(tài)型存儲單元和一個定義存儲單元被刷新的定時的刷新電路組成。在第1模式中,響應(yīng)輸入到在N個端口中的至少一個的刷新指令刷新存儲單元,在第2模式中,在刷新電路確定的定時刷新存儲單元。
即,上面描述的本發(fā)明具有第1操作模式,在該模式中響應(yīng)來自一個外部端口的指令實施刷新操作,和第2操作模式,在該模式中響應(yīng)內(nèi)部刷新電路實施刷新操作。因為這個配置,允許一個外部端口作為一個用于刷新管理的端口進行操作,以便在恒定的間隔接收刷新指令,或者如果這個用于刷新管理的端口處在去激活狀態(tài)則內(nèi)部刷新電路實施刷新操作。這使根據(jù)系統(tǒng)配置以一種靈活的方式管理刷新操作成為可能。
下面我們描述本發(fā)明的第2方面。
存在若干種多端口存儲器。下文中,涉及具有多個端口的存儲器,并允許從各端口相互獨立地存取一個公共存儲器陣列。例如,兩個端口型的多端口存儲器裝備有一個A端口和一個B端口,并允許從與A端口鏈接的CPU-A和從與B端口鏈接的CPU-B獨立地進行到公共存儲器的讀/寫存取。
作為這類多端口存儲器,具有SRAM存儲器陣列的存儲器是已知的,其中在復(fù)制的設(shè)置中提供各字線和各位線對,每個存儲單元都與2組字線和位線對連接。然而,這種多端口存儲器具有電路密度低的問題,其中需要提供字線和位線對的復(fù)制組。
為了消除這個問題,可以用與具有多個處理器配置的計算機所用的共用存儲器相同的機構(gòu)。共用存儲器具有提供給公共存儲器的多個端口。典型地,將SRAM用作存儲器,并用離散的IC(集成電路)制成多個端口。當(dāng)從多個端口同時進行存取時,因為存儲器陣列是共用的,所以不能同時進行與多個端口相應(yīng)的操作。防止這種問題發(fā)生的最簡單的方法是對每個端口產(chǎn)生BUSY信號以便防止當(dāng)從一個端口進行存取時到另一個端口的存取。然而,這引起限制存儲器用度的問題??紤]到這一點,為公共存儲器提供稱為判優(yōu)器的判優(yōu)電路,判優(yōu)電路確定多個端口接收的存取要求的優(yōu)先權(quán)。構(gòu)造存儲器陣列的控制器,以優(yōu)先權(quán)的次序執(zhí)行與存取要求對應(yīng)的操作。例如,以到達(dá)的次序即以將存取要求加到各端口的次序處理存取要求。
在這個情形中,存儲器陣列最終隨機地從多個端口被存取。因此,不能提供在同一個行地址連續(xù)地存取相繼的列地址的列存取操作,而這樣的列存取操作典型地可以在DRAM中得到。即,選擇,為讀/寫操作存取和復(fù)位存儲單元,響應(yīng)單個存取實施所有這些操作。
當(dāng)制成一個共用存儲器時,一般地,按常規(guī)將SRAM用作存儲器陣列。這是因為SRAM能夠進行高速隨機存取操作,并且因為不需要刷新操作所以能夠容易地使用SRAM。然而,單塊芯片的多端口存儲器常規(guī)地具有以字線和位線對的復(fù)制組,在具有通常的SRAM配置的存儲器陣列的基礎(chǔ)上的單塊芯片的多端口存儲器還沒有在實踐中使用。
總結(jié)一下,多端口存儲器和共用存儲器是用SRAM制成的,而不用需要刷新操作的DRAM。
當(dāng)系統(tǒng)不斷地提供高性能時要被處理的數(shù)據(jù)量增加,并且多端口存儲器也需要具有大的容量??梢杂脛討B(tài)型存儲單元(DRAM)陣列制成多端口存儲器,DRAM陣列比SRAM具有較高的電路密度,從而以低的成本提供具有大存儲容量的多端口存儲器。然而,存儲單元的刷新操作成為一個問題。
在常規(guī)的DRAM中,需要從器件外部以恒定間隔在讀/寫指令之間提供刷新指令。為此,在以DRAM為基礎(chǔ)的系統(tǒng)中的控制器器件具有用于刷新管理的定時器和/或控制電路。然而,在用以SRAM為基礎(chǔ)的多端口存儲器的系統(tǒng)中不提供這樣的電路。甚至在以DRAM為基礎(chǔ)制成存儲器的情形中,在這些系統(tǒng)中需要能以與常規(guī)的多端口存儲器相同的方式使用這種存儲器。即,具有由DRAM組成的存儲器陣列的多端口存儲器需要由它自己來進行刷新操作。
本發(fā)明的目的是提供具有由DRAM芯組成的存儲器陣列,而且不需要考慮刷新操作就能使用的多端口存儲器,從而以低的成本提供具有大存儲容量并且容易使用的多端口存儲器。
圖38是用于解釋本發(fā)明原理的圖,表示當(dāng)對于兩個端口實施讀操作時的情形。
在能夠?qū)嵤?個內(nèi)部操作周期的最小間隔上提供加到兩個外部端口,A端口和B端口的指令。即,將一個外部指令周期設(shè)置在比3個內(nèi)部操作周期需要的持續(xù)時間長的長度上。分別將時鐘信號CLKA和CLKB輸入到A端口和B端口,與時鐘信號同步地進行在器件的一個外部裝置和各外部端口之間的地址和數(shù)據(jù)的交換。使地址(圖中未畫出)與指令同時進入。當(dāng)在最小外部指令周期上使讀指令進入A端口和B端口時,判優(yōu)電路通過將優(yōu)先權(quán)給予首先到達(dá)的輸入信號,控制芯的操作。如上所述在一個外部指令周期中能夠?qū)嵤?個內(nèi)部操作,在這個外部指令周期中在存儲器陣列上執(zhí)行2個讀操作,接著將讀數(shù)據(jù)輸出到A端口和B端口。A端口和B端口兩者都保持檢索的數(shù)據(jù),并在下一個跟隨的外部指令周期開始時,即與從輸入讀指令的第4個時鐘信號同步地輸出檢索的數(shù)據(jù)。即,在這個情形中數(shù)據(jù)的等待時間是4。
提供刷新定時器作為內(nèi)部電路,刷新定時器在它自己身上產(chǎn)生刷新指令。因為如上所述在一個外部指令周期中能夠?qū)嵤?個內(nèi)部操作,所以當(dāng)產(chǎn)生刷新指令時在單個外部指令周期中能夠執(zhí)行指令A(yù),指令B和刷新指令。在下一個跟隨的外部指令周期開始時輸出讀數(shù)據(jù)。在這個方式中,可以從器件外部存取多端口存儲器而與刷新操作沒有任何關(guān)系。
在圖38的例子中,響應(yīng)一個讀指令輸出一項讀數(shù)據(jù)。即,脈沖串長度為1。所以,在一個時鐘脈沖周期中完成讀數(shù)據(jù)的輸出后,在外部指令周期的3個余下的時鐘周期中外部端口不輸出任何數(shù)據(jù),這導(dǎo)致無效的數(shù)據(jù)傳輸。可以通過加長脈沖串長度來消除這個問題。
圖39是用于解釋本發(fā)明原理的圖,表示脈沖串長度為4的例子。在這個例子中,與上述情形相同,將2個外部端口的外部指令周期設(shè)置在能夠供應(yīng)3個內(nèi)部操作周期的長度上。進一步,一個外部指令周期對應(yīng)4個時鐘周期。與時鐘信號同步地在單個外部指令周期中從一個外部端口4次輸出數(shù)據(jù)。所以,如果根據(jù)一個外部指令周期的時鐘周期的數(shù)目設(shè)置脈沖串長度,則在兩個端口都能實現(xiàn)無間隙的讀操作,從而非常大地增加了數(shù)據(jù)傳輸速率。在這個情形中,要求與脈沖串長度一樣多的數(shù)據(jù)項響應(yīng)單個存取內(nèi)部地輸入存儲器陣列或內(nèi)部地從存儲器陣列輸出。例如,如果外部端口的數(shù)據(jù)輸入/輸出銷的數(shù)目為4,和脈沖串長度為4,則需要保證由單個存取操作從存儲器陣列輸出16位數(shù)據(jù)或?qū)?6位數(shù)據(jù)輸入存儲器陣列。
我們應(yīng)該注意到A端口和B端口不一定同步操作,并且只要將最小周期設(shè)置得等于3個內(nèi)部操作周期需要的持續(xù)時間,就可以將各外部指令周期相互獨立地設(shè)置在任何定時。
而且,外部端口的數(shù)目也可以是任何數(shù)目。如果將外部端口的數(shù)目設(shè)置為n,則將每個端口的外部指令周期設(shè)置在能夠進行n+1個內(nèi)部操作周期的最小周期上。如果滿足這個要求,則甚至當(dāng)刷新操作被執(zhí)行時在一個外部指令周期中也可以實施各端口要求的所有操作,從而允許使用多端口存儲器而與刷新操作沒有任何關(guān)系。
圖40和圖41是表示當(dāng)有2個,3個和n個端口時在一個最小外部指令周期和各內(nèi)部操作周期之間的關(guān)系的圖。
如這些圖所示,如果端口的數(shù)目為2,則最小外部指令周期具有能夠供應(yīng)3個內(nèi)部操作的長度,并且如果端口的數(shù)目為3,則最小外部指令周期是可以進行4個內(nèi)部操作的時間長度。進一步,如果端口的數(shù)目為n,則最小外部指令周期等于可以執(zhí)行n+1個內(nèi)部操作的時間長度。
圖42和圖43A到43C是表示根據(jù)本發(fā)明的實施例的多端口存儲器的配置的圖。圖42表示DRAM芯和它的相關(guān)電路,圖43A表示A端口,圖43B表示B端口。進一步,圖43C表示刷新電路。圖43A到43C所示的電路與圖42的各部分連接。
如這些圖所示,這個實施例的多端口存儲器包括DRAM芯2011,用于控制確定操作次序并保證以確定的次序?qū)嵤┎僮鞯呐袃?yōu)器2026,多組暫時存儲指令,地址和數(shù)據(jù)的寄存器,2個由A端口2030和B端口2040組成的外部端口,和刷新電路2050。
A端口2030和B端口2040分別包括模寄存器2031和2041,CLK緩沖器2032和2042,數(shù)據(jù)I/O電路2033和2043,地址輸入電路2034和2044,與指令輸入裝置2035和2045,它們根據(jù)從器件外部提供的各分開的時鐘頻率進行操作。將數(shù)據(jù)等待時間和脈沖串長度存儲在模寄存器2031和2041中,使它們能被分別地設(shè)置。數(shù)據(jù)I/O電路2033和2043裝備有根據(jù)脈沖串長度實施輸出/輸出數(shù)據(jù)的并行到串行變換和串行到并行變換的機構(gòu)。
刷新電路2050包括刷新定時器2051和刷新指令發(fā)生器2052。刷新定時器2051在預(yù)定間隔上產(chǎn)生刷新開始信號,刷新指令發(fā)生器2052對應(yīng)地產(chǎn)生刷新指令。
分別將加到A端口和B端口的指令,地址和寫數(shù)據(jù)存儲在寄存器中。也將刷新指令存儲在刷新指令寄存器2027中,并將刷新地址存儲在刷新地址計數(shù)器/寄存器2018中。
判優(yōu)器2026根據(jù)指令到達(dá)的次序確定執(zhí)行指令的次序,并以確定的次序?qū)⒅噶顐鬏斀oDRAM芯2011的控制電路2014。進一步,判優(yōu)器2026將傳輸信號傳輸給對應(yīng)的地址寄存器和對應(yīng)的數(shù)據(jù)寄存器(在寫操作情形)。在DRAM芯2011中,控制電路2014響應(yīng)提供的指令,控制譯碼器2013,寫放大器(WriteAmp)2015,和讀出緩沖器2016,從而實施對于存儲器陣列2012的存取操作。在寫操作的情形中,譯碼器2013為了進行寫操作對存取的地址進行譯碼,以便激活在存儲器陣列2012中的字線和列信號線,導(dǎo)致將存儲在寫數(shù)據(jù)寄存器A2022和B2023中的寫數(shù)據(jù)通過WriteAmp 2015寫入存儲器陣列2012。在讀操作的情形中,以類似的方式存取存儲器陣列2012,導(dǎo)致通過傳輸門A2024和B2025將讀數(shù)據(jù)從讀出緩沖器2016傳輸?shù)礁鞫丝诘臄?shù)據(jù)輸出電路。根據(jù)DRAM芯2011的操作周期控制傳輸門的傳輸定時,并由控制電路2014確定傳輸定時。與對應(yīng)的外部時鐘信號同步地從每個端口的數(shù)據(jù)輸出電路輸出輸出數(shù)據(jù)。
下面,我們描述與指令處理,地址處理和數(shù)據(jù)處理中的每一個有關(guān)的詳細(xì)情形。
圖44和圖45是表示根據(jù)第1實施例與指令處理有關(guān)的裝置配置的圖。在與圖42和圖43A-43C中相同的部件上加上相同的參照數(shù)字。這也同樣應(yīng)用于其它的圖。
如圖44所示,A端口的指令輸入裝置2035包括輸入緩沖器2036,指令譯碼器2037和(n-1)時鐘延遲電路2038,B端口的指令輸入裝置2045包括輸入緩沖器2046,指令譯碼器2047和(m-1)時鐘延遲電路2048。這里,n和m是脈沖串長度。而且,如圖45所示,指令寄存器A2028包括Read指令寄存器AR和Write指令寄存器AW,指令寄存器B2029包括Read指令寄存器BR和Write指令寄存器BW。
輸入緩沖器2036和2046要求以與各時鐘信號CLKA1和CLKB1同步地加上Read指令,指令譯碼器2037和2047進行譯碼處理。指令譯碼器2037和2047在讀指令情形中分別產(chǎn)生RA1和RB1,而在寫指令情形分別產(chǎn)生WA1和WB1。分別將信號RA1和RB1傳輸給Read指令寄存器AR和BR,不需要任何定時操作,而信號WA1和WB1分別被(n-1)時鐘延遲電路2038和(m-1)時鐘延遲電路2048延遲,直到輸入脈沖串?dāng)?shù)據(jù)的最后一個數(shù)據(jù)項為止,接著被傳輸給Write指令寄存器AW和BW。而且,將由刷新電路2050產(chǎn)生的刷新指令REF1傳輸給刷新指令寄存器2027。
判優(yōu)器2026檢測將指令傳輸給這5個指令寄存器AR,AW,BR,BW和2027的次序,并以檢測到的次序?qū)⑦@些指令一個接著一個地傳輸給DRAM控制電路2014。DRAM控制電路2014執(zhí)行接收的指令,產(chǎn)生信號RESET1,要求判優(yōu)器2026當(dāng)指令執(zhí)行結(jié)束或接近結(jié)束時發(fā)送下一個指令。響應(yīng)RESET1信號,判優(yōu)器使存儲被執(zhí)行指令的指令寄存器復(fù)位,并將下一個指令傳輸給DRAM控制電路2014。
圖46是判優(yōu)器2026的實施例。指令到達(dá)圖45的5個指令寄存器的次序由比較器2053檢測出來如該圖46所示。每個比較器2053比較兩個指令寄存器的定時,將它的輸出在首先輸入“H”的情形中改變成“H”。AND門2054通過檢查相關(guān)的比較器2053的所有相關(guān)輸出是否是“H”來確定給定的指令是否在所有4個其它指令前輸入。如果一個響應(yīng)的指令是最早的則響應(yīng)各指令的信號RA3,WA3,RB3,WB3和REF變成“H”,并且將響應(yīng)的指令的地址等被傳輸給DRAM芯2011,。當(dāng)DRAM芯2011執(zhí)行該指令時,從DRAM芯2011產(chǎn)生信號RESET1,并產(chǎn)生用于使被執(zhí)行指令的指令寄存器復(fù)位的信號(ReasetRA,ReasetWA等)。當(dāng)使被執(zhí)行指令的指令寄存器復(fù)位時,接收這個被執(zhí)行指令的比較器2053的輸出改變,將在次序中的下一個指令傳輸給DRAM芯2011。在這個方式中,以指令輸入的次序執(zhí)行指令。
圖47是表示根據(jù)第1實施例與地址處理有關(guān)的部分的配置的圖。下文中,在它的信號名稱的未端具有字母“P”的信號代表具有從對應(yīng)的信號名稱的信號的前沿產(chǎn)生的脈沖的信號。如圖所示,地址輸入電路2034和2044分別包括輸入緩沖器2057A和2057B與傳輸門2058A和2058B。進一步,地址寄存器A2019和地址寄存器B2020分別包括地址鎖存器A1和B1,傳輸門2060A和2060B,地址鎖存器A2和B2,傳輸門2062A和2062B,與傳輸門2063A和2063B。通過地址總線2017將從傳輸門2062A,2062B,2063A和2063B提供的地址傳輸給DRAM芯2011。進一步,通過傳輸門2064和地址總線17將從刷新地址計數(shù)器/寄存器2018提供的刷新地址傳輸給DRAM芯2011。
當(dāng)從器件外部輸入Read指令或Write指令時,分別通過傳輸門2058A或2058B將加到輸入緩沖器2057A或5027B的地址和輸入指令同時傳輸給地址鎖存器A1或B1。在Read指令的情形中,通過傳輸門2063A或2063B與到DRAM芯的指令傳輸同步地將地址傳送給DRAM芯2011。在Write指令的情形中,進一步在上次數(shù)據(jù)采集的定時將地址傳輸給地址鎖存器A2或B2,然后,與到DRAM芯的指令傳輸同步地通過傳輸門2062A或2062B傳輸給DRAM芯。進一步,刷新地址計數(shù)器/寄存器2018產(chǎn)生并在其中保存刷新地址,然后與到DRAM芯的刷新指令傳輸同步地通過傳輸門2064將該地址傳輸給DRAM芯2011。
圖48是表示根據(jù)第1實施例與數(shù)據(jù)輸出有關(guān)的部分的配置的圖。圖49是表示圖48的傳輸信號發(fā)生電路的圖。A端口2030和B端口2040的各數(shù)據(jù)I/O電路2033和2043分別包括為了輸出數(shù)據(jù)的電路2065A和2065B與為了輸入數(shù)據(jù)的電路2074A和2074B,我們將在后面描述它們。如圖所示,將通過讀出緩沖器2016從存儲器陣列2012讀出的數(shù)據(jù)通過數(shù)據(jù)總線2021和傳輸門2024或2025分別傳輸給為了輸出數(shù)據(jù)的電路2065A或2065B。
為了輸出數(shù)據(jù)的電路2065A和2065B分別包括數(shù)據(jù)鎖存器A1或B1,傳輸信號發(fā)生電路2067A和2067B,傳輸門2069A或2069B,數(shù)據(jù)鎖存器A2或B2,并行到串行變換器2070A和2070B,以及輸出緩沖器2071A和2071B。
由DRAM芯2011的控制電路2014根據(jù)內(nèi)部操作對傳輸門2024和2025進行控制。如果被執(zhí)行的指令是Read-A(即,對于A端口的讀操作),則傳輸門2024將打開。如果被執(zhí)行的指令是Read-B,則傳輸門2025將打開。數(shù)據(jù)鎖存器A1和B1在其中存儲數(shù)據(jù),然后在各端口中接收Read指令后的一個確定的等待時間,在這些端口通過傳輸門2068A或2068B引入這個等待時間,將數(shù)據(jù)傳輸給各數(shù)據(jù)鎖存器A2或B2。然后,由并行到串行變換器2070A和2070B對數(shù)據(jù)進行變換,接著分別傳輸給輸出緩沖器2071A和2071B,并從那里輸出。
如圖49所示,傳輸信號發(fā)生電路2067A和2067B采用一系列的觸發(fā)器2072使各Read指令RA1和RB1延遲由等待時間設(shè)定確定的許多時間周期,從而產(chǎn)生數(shù)據(jù)傳輸信號2002。因為來自傳輸門2068A或2068B的讀數(shù)據(jù)傳輸響應(yīng)數(shù)據(jù)傳輸信號2002,所以讀數(shù)據(jù)從讀操作的定時開始被延遲與等待時間相當(dāng)?shù)脑S多周期后結(jié)束。
圖50是表示根據(jù)第1實施例與數(shù)據(jù)輸入有關(guān)的部分的配置的圖。為了輸入數(shù)據(jù)的電路2074A和2074B分別包括數(shù)據(jù)輸入(Din)緩沖器2075A和2075B,串行到并行變換器2076A和2076B,以及數(shù)據(jù)傳輸裝置2077A和2077B。分別通過Write數(shù)據(jù)寄存器2022和2023,數(shù)據(jù)傳輸裝置2078A和2078B,以及數(shù)據(jù)總線21將來自數(shù)據(jù)傳輸裝置2077A和2077B的寫數(shù)據(jù)傳送給WriteAmp 2015,并被寫入存儲器陣列2012。
根據(jù)脈沖串長度將串行輸入數(shù)據(jù)從串行變換到并行,然后在輸入最后一個數(shù)據(jù)項的定時傳輸給Write寄存器2022和2023。當(dāng)從判優(yōu)器2026將Write指令傳輸給DRAM芯2011時,通過數(shù)據(jù)傳輸門2078A和2078B也將對應(yīng)的數(shù)據(jù)傳輸給DRAM芯2011。
圖51到圖58是表示第1實施例的多端口存儲器操作的時間圖。圖51和圖52,圖54和圖55與圖57和圖58是為了便于說明將單個時間圖分成兩部分的圖,一個表示時間圖的第一個一半,另一個表示時間圖的第二個一半,它們之間存在一些重疊。
圖51和圖52表示當(dāng)將Read指令相繼地輸入兩個端口時實施的操作。A端口和B端口,它們分別具有有相互不同頻率的時鐘信號CLKA和CLKB,與接收的時鐘信號同步地取得指令,地址和寫數(shù)據(jù),并與時鐘信號同步地輸出檢索的數(shù)據(jù)。在這個例子中,A端口操作在最大時鐘頻率,而B端口操作在稍低的時鐘頻率。對于A端口,Read指令周期=4(CLKA),數(shù)據(jù)等待時間=4,和脈沖串長度=4。對于B端口,Read指令周期=2(CLKB),數(shù)據(jù)等待時間=2,和脈沖串長度=2。在各端口的模寄存器2031和2041中分別設(shè)置數(shù)據(jù)等待時間和脈沖串長度。在這個例子中,響應(yīng)一個指令與時鐘信號同步地實施數(shù)據(jù)的輸入/輸出4次,在輸入讀指令后的4個時鐘信號中輸出檢索的數(shù)據(jù)。
分別將加到A端口和B端口的指令存儲在指令寄存器2028和2029中。當(dāng)刷新定時器2051產(chǎn)生信號時,刷新指令寄存器2027將刷新指令存儲在它的里面。判優(yōu)器2026監(jiān)視這些指令寄存器,并以發(fā)出指令的次序?qū)⑦@些指令傳輸給DRAM芯2011。當(dāng)完成上一個指令的處理后傳輸下一個指令。將從DRAM芯2011讀出的數(shù)據(jù)從讀出緩沖器2016傳輸?shù)礁鞫丝诘臄?shù)據(jù)鎖存器2069A和2069B,然后將數(shù)據(jù)從并行數(shù)據(jù)變換成串行數(shù)據(jù),接著作為脈沖串?dāng)?shù)據(jù)與各外部時鐘信號同步地輸出。
如圖所示,將指令Read-A2輸入Read指令寄存器AR和將指令Read-B2輸入Read指令寄存器BR。在此之前,發(fā)生一次刷新,并將刷新指令輸入刷新指令寄存器。根據(jù)發(fā)出指令的次序,判優(yōu)器2026以Read-A2→Ref→Read-B2的次序?qū)⑦@些指令傳輸給DRAM芯2011,然后由芯執(zhí)行這些指令。甚至當(dāng)在內(nèi)部實施刷新操作時,從外部看來數(shù)據(jù)是在一個預(yù)定數(shù)據(jù)等待時間后輸出的。這樣,就不需要考慮任何刷新操作。
圖53表示在與上述相同的條件下接連地輸入Write指令的一個例子。也以脈沖串輸入的形式給出在Write操作時間從器件外部輸入的數(shù)據(jù)。在輸入最后一塊數(shù)據(jù)的定時將Write指令存儲在Write指令寄存器AW中。在這個情形中,甚至當(dāng)在內(nèi)部產(chǎn)生和執(zhí)行刷新指令時也不需要考慮任何刷新操作。
圖54和圖55表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作。圖56是表示當(dāng)A端口和B端口兩者操作在最大時鐘頻率上進行Write寫操作時實施的操作的圖。在這個情形中,在兩個端口的時鐘信號中可能存在相位差。對于兩個端口,Read指令周期=4,Write指令周期=4,數(shù)據(jù)等待時間=4,和脈沖串長度=4。從圖可見,在這個情形中也能夠適當(dāng)?shù)貙嵤┎僮鳌?br>
圖57和圖58是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令從Write指令改變到Read指令時實施的操作的時間圖。這是指令最擁擠的情形。
如圖所示,DRAM芯2011以Ref→Write-A1→Write-B1→Read-A2→Read-B2的次序進行操作,在它們之間沒有任何間隙。在這個例子中,在輸入Write指令后的6個時鐘脈沖輸入Read-A2和Read-B2。即便這些定時超前2個時鐘信號,也不可能超前DRAM芯的內(nèi)部操作。由從輸入Read指令開始的數(shù)據(jù)等待時間對讀數(shù)據(jù)的輸出定時進行控制。如果Read-A2和Read-B2的輸入定時是超前的,則也需要將數(shù)據(jù)輸出定時向前移動。在這個情形中響應(yīng)Read-B2的數(shù)據(jù)輸出定時太接近DRAM芯操作的開始時間,使得不能適當(dāng)?shù)貓?zhí)行Read-B2。因為這個原因,需要將Write→Read變遷的公共間隔設(shè)置得相當(dāng)長如本例中的6個時鐘脈沖。
關(guān)于Read→Write的公共間隔,因為除非完成了Read數(shù)據(jù)的輸出,不能將Write數(shù)據(jù)輸入DQ端子中,所以公共間隔不可避免地變長。
圖59A和59B是表示DRAM芯2011操作的圖。圖59A表示Read操作,圖59B表示W(wǎng)rite操作。如這些圖所示,響應(yīng)單個指令以字線選擇→數(shù)據(jù)放大→寫回→預(yù)充電的次序?qū)嵤┮幌盗胁僮?,從而完成整個操作。
如上所述,在第1實施例中從Write指令到Read指令的指令變遷的時間中指令間隔被加長。在第2實施例中對此進行了改進。當(dāng)在第1實施例中一個相關(guān)的指令間隔是6個時鐘脈沖周期時,第2實施例能將它縮短為5個時鐘脈沖周期。
本發(fā)明的第2實施例的多端口存儲器具有與第1實施例的多端口存儲器類似的配置,不同之處只是刷新電路具有圖60所示的配置。圖61是表示第2刷新電路2083的配置的電路圖。
如圖60所示,第2實施例的刷新電路包括將圖43C的刷新定時器2051和刷新指令發(fā)生器2052組合起來的定時器/刷新指令發(fā)生器2081,第2刷新指令寄存器2082和第2判優(yōu)器2083,并將從第2判優(yōu)器2083輸出的刷新指令輸入到刷新指令寄存器2027。與第1實施例相同將刷新指令寄存器2027的刷新指令REF2輸入到判優(yōu)器2026。在這個配置中,也將在完成刷新操作后從判優(yōu)器2026輸出到刷新指令寄存器2027的復(fù)位信號ResetREF加到第2刷新指令寄存器2082。
在第2實施例的刷新電路中,沿著刷新指令的路徑提供第2判優(yōu)器2083。如果我們預(yù)期如在Write指令→Read指令的指令變遷的情形中一樣指令很擁擠,則第2判優(yōu)器2083延遲刷新指令到刷新指令寄存器2027的傳輸。第2判優(yōu)器2083檢查是否用圖61所示的電路配置發(fā)生從Write指令到Read指令的改變,并且如果檢查出這樣一個改變就延遲刷新指令從第2刷新指令寄存器2082到刷新指令寄存器2027的傳輸。
如圖61所示,當(dāng)各端口接到從器件外部轉(zhuǎn)裝置提供的Write指令時,使禁止REF傳輸?shù)男盘朅和B去激活,在一個時鐘脈沖周期后再被激活,接著在接到最后一個數(shù)據(jù)項后的若干個時鐘脈沖周期(即,在本例中3個時鐘脈沖)再被去激活。圖61的3個CLK延遲裝置2084A和2084B包括觸發(fā)器等,并分別被WA1和WB1復(fù)位,這導(dǎo)致當(dāng)通過延遲裝置時WA1D和WB1D被復(fù)位。得到禁止REF傳輸?shù)男盘朅和B的邏輯AND以便產(chǎn)生一個禁止REF傳輸?shù)男盘枴R驗橹挥挟?dāng)兩個端口都經(jīng)受從Write指令到Read指令的改變時在這個例子中才會出現(xiàn)問題,而當(dāng)只有一個端口經(jīng)受這種改變時不存在問題,所以得到這個邏輯AND。進一步,禁止REF傳輸?shù)男盘朅和B在接到Write指令后只對一個時鐘周期去激活的原因是這給出一個額外的時間以便完成在接收最后一個數(shù)據(jù)項前的刷新操作。進一步,提供延遲裝置2086為了相對于時鐘信號稍微延遲定時,以便增大在禁止REF指令傳輸?shù)男盘柡蛷钠骷獠刻峁┑闹噶钪g的相關(guān)定時中的差別。
圖62到圖69是表示第2判優(yōu)器的操作的定時圖。圖70到圖72是表示第2實施例的多端口存儲器操作的定時圖。圖62和圖63,圖64和圖65,圖66和圖67,圖68和圖69,圖70和圖71是為了便于說明起見將單個時間圖分成兩半的圖,一個表示時間圖的第1個一半,另一個表示時間圖的第2個一半,它們之間存在一些重疊。
圖62和圖63表示兩個端口經(jīng)受Write→Read指令改變,并當(dāng)REF傳輸禁止期間發(fā)生刷新定時器事件的情形。在這個情形中,在完成Read-A2和Read-B2后實施刷新操作Ref。
圖64和圖65表示與上述情形相同兩個端口經(jīng)受Write→Read指令改變,但是在REF傳輸禁止期間前發(fā)生刷新定時器的情形。在這個情形中,在實施刷新操作Ref后實施Read操作。
圖66和圖67說明只有A端口經(jīng)受Write→Read指令變遷,并在REF傳輸禁止期間中發(fā)生刷新定時器事件的情形。在這個情形中,在完成Write指令后實施刷新操作Ref,然后實施Read操作。
圖68和圖69顯示在兩個端口繼續(xù)Write的情形。在這個情形中,一當(dāng)在接著最后一個數(shù)據(jù)輸入,輸入Write指令后,就使3個CLK延遲裝置2084A和2084B去激活。
圖70和圖71是表示與圖57和圖58所示的第1實施例的操作對應(yīng)的第2實施例的操作的時間圖。與第1實施例比較使Write→Read指令變遷的指令間隔從6個時鐘脈沖縮短到5個時鐘脈沖。
圖72是表示與圖56所示的第1實施例的操作對應(yīng)的第2實施例的操作的時間圖。雖然與第1實施例比較改變了關(guān)于刷新操作的指令執(zhí)行次序,但是保持有次序的操作。
如上所述,第2實施例可以在任何條件下適當(dāng)?shù)貙嵤┎僮鳎⒛軌驅(qū)rite指令→Read指令變遷的指令間隔縮短到5個時鐘脈沖周期。
如上所述,本發(fā)明允許當(dāng)以DRAM芯為基礎(chǔ)制成存儲陣列時使用多端口存儲器而不需要考慮任何刷新操作,從而以低成本提供具有大容量和容易使用的多端口存儲器。
下面我們描述本發(fā)明的第3方面。
存在若干種多端口存儲器。下文中,涉及具有多個端口的存儲器,并允許從各端口相互獨立地存取一個公共存儲器陣列。例如,兩個端口型的多端口存儲器裝備有A端口和B端口,并允許從與A端口鏈接的CPU-A和從與B端口鏈接的CPU-B獨立地進行到公共存儲器的讀/寫存取。
作為這類多端口存儲器,具有SRAM存儲器陣列的存儲器是已知的,其中在復(fù)制組中提供各字線和各位線對,每個存儲單元都與2組字線和位線對連接。然而,這個多端口存儲器具有電路密度低的問題,其中需要提供字線和位線對的復(fù)制組。
為了消除這個問題,可以用與具有多個處理器配置的計算機所用的共用存儲器相同的機構(gòu)。一個共用存儲器具有提供給公共存儲器的多個端口。典型地,將SRAM用作存儲器,并用離散的IC制成多個端口。當(dāng)從多個端口同時進行存取時,因為存儲器陣列是共用的,所以不能同時進行與多個端口對應(yīng)的操作。防止這種問題發(fā)生的最簡單的方法是對每個端口產(chǎn)生一個BUSY信號以便防止當(dāng)從一個端口作出存取時到另一個端口的存取。然而,這引起限制存儲器用度的問題。考慮到這一點,為一個公共存儲器提供一個稱為判優(yōu)器的判優(yōu)電路,判優(yōu)電路確定多個端口接收的存取要求的優(yōu)先權(quán)。構(gòu)造存儲器陣列的控制器,以優(yōu)先權(quán)的次序執(zhí)行與存取要求相應(yīng)的操作。例如,以到達(dá)的次序即以將存取要求加到各端口的次序處理存取要求。然而,這并不改變當(dāng)另一個端口的指令正在被處理時不能執(zhí)行新指令的情況。在這種情形中需要傳輸BUSY信號,存取存儲器的器件需要具有處理BUSY信號的機構(gòu)。
隨機地從多個接口存取存儲器陣列。因此,不提供在同一個行地址上連續(xù)地存取相繼的列地址的列存取操作,但是在DRAM中典型地可以利用這種列存取操作。即,選擇一個存儲單元,為了讀/寫操作存取該存儲單元,使該存儲單元復(fù)位,所有這些操作都是在響應(yīng)單個存取時被執(zhí)行的。
當(dāng)完成一個共用存儲器時,一般,常規(guī)地將SRAM用作存儲器陣列。這是因為SRAM能夠進行高速隨機存取操作,又,因為不需要刷新操作,所以很容易使用SRAM。而且,單塊芯片的多端口存儲器通常具有字線和位線對的復(fù)制組,但是在具有通常的SRAM配置的存儲器陣列的基礎(chǔ)上的單塊芯片的多端口存儲器還沒有在實踐中使用。
總結(jié)一下,多端口存儲器和共用存儲器是用SRAM制成的,而不用需要刷新操作的DRAM。
當(dāng)系統(tǒng)不斷地提供高性能時要被處理的數(shù)據(jù)量增加,并且多端口存儲器也需要具有大的容量。可以用動態(tài)型存儲單元(DRAM)陣列制成多端口存儲器,DRAM比SRAM具有較高的電路密度,從而以低的成本提供具有大存儲容量的多端口存儲器。然而,存儲單元的刷新操作成為一個問題。
在常規(guī)的DRAM中,需要從器件外部以恒定間隔在讀/寫指令之間提供刷新指令。為此,在以DRAM為基礎(chǔ)的系統(tǒng)中的控制器器件具有用于刷新管理的定時器和/或控制電路。然而,在用以SRAM為基礎(chǔ)的多端口存儲器的系統(tǒng)中不提供這樣一個電路。甚至在以DRAM為基礎(chǔ)制成存儲器的情形中,在這些系統(tǒng)中需要能以與常規(guī)的多端口存儲器相同的方式使用這種存儲器。即,具有由DRAM組成的存儲器陣列的多端口存儲器需要由它自己來進行刷新操作。
當(dāng)判優(yōu)器輸出忙碌信號時,存在著如上所述使用存儲器相當(dāng)麻煩的問題。
本發(fā)明的目的是提供具有由DRAM芯組成的存儲器陣列,而且不需要考慮刷新任何刷新操作就能使用的多端口存儲器,從而以低的成本提供具有大存儲容量并且容易使用的多端口存儲器。
為了消除上述的問題,配置本發(fā)明的多端口半導(dǎo)體存儲器件使它能夠在長度為每個外部端口的最小輸入周期m(m≥2)倍的時間周期中執(zhí)行n個內(nèi)部操作,其中滿足mN<n<m(N+1)。
上述條件要求將N個端口的每一個的最小指令周期設(shè)置在允許N個內(nèi)部操作周期的時間周期加比單個內(nèi)部操作周期短的時間周期α上。例如當(dāng)N=2時,將每個端口的最小外部指令周期設(shè)置在允許2個內(nèi)部操作周期的時間周期加時間周期α上。這里,時間周期α比一個內(nèi)部操作周期短。
本發(fā)明利用允許2個內(nèi)部操作周期的時間周期以便消除由于判優(yōu)器輸出忙碌信號引起的存儲器使用麻煩的問題,并利用時間周期α解決刷新操作問題。
圖73是用于解釋本發(fā)明(第3方面)原理的圖,表示對于兩個端口實施讀操作的情形。
使到兩個外部端口,A端口和B端口的指令在最小間隔進入,在該間隔中可以實施內(nèi)部操作周期2.2次。即,內(nèi)部操作周期的2.2倍等于最小外部指令周期,并將外部指令周期設(shè)置得比允許實施內(nèi)部操作周期2.2次的時間周期長。分別將時鐘脈沖CLKA和CLKB輸入A端口和B端口,與對應(yīng)的時鐘脈沖同步地實施指令,地址和數(shù)據(jù)到外部端口的輸入和從外部端口的輸出。雖然未加說明,但是與指令同時輸入地址。當(dāng)在最小外部指令周期中將讀指令加到A端口和B端口時,如圖所示,判優(yōu)電路對當(dāng)實施芯操作時將優(yōu)先權(quán)給予首先到達(dá)的指令進行控制。
DRAM芯實施兩個讀操作,在一個外部指令周期中從存儲器陣列讀出數(shù)據(jù),并將數(shù)據(jù)輸出到A端口和B端口。A端口和B端口分別保存檢索的數(shù)據(jù),并與各時鐘脈沖信號的特定的時鐘定時同步地輸出檢索的數(shù)據(jù),這些時鐘脈沖信號是從輸入讀指令開始的第6個時鐘脈沖。即,在這個情形中數(shù)據(jù)等待時間是6。
提供刷新定時器作為內(nèi)部電路,并在它自身上產(chǎn)生刷新指令。當(dāng)不發(fā)生刷新操作時,器件的內(nèi)部電路以例行程序的方式操作以便在一個外部指令周期中實施與指令A(yù)和B對應(yīng)的兩個操作。因為在一個外部指令周期中能夠執(zhí)行內(nèi)部操作2.2次,所以DRAM芯將具有在完成兩個內(nèi)部操作后留下的一個額外時間tα。
當(dāng)內(nèi)部產(chǎn)生刷新指令時,器件的內(nèi)部電路快速操作。這里,快速意味著執(zhí)行操作而不產(chǎn)生額外時間tα。當(dāng)產(chǎn)生刷新指令時,器件實施刷新操作。因為同時將指令輸入A端口和B端口,所以要被處理的指令將積累起來。器件快速地一個接一個地執(zhí)行指令而不提供額外時間tα。雖然將指令一個接一個地輸入A端口和B端口,但是只有在比外部指令周期長的間隔發(fā)生刷新指令,只有指令A(yù)和指令B必須被執(zhí)行直到產(chǎn)生下一個刷新指令。因為內(nèi)部指令的處理速度較快,所以在結(jié)束時將不會有積累的指令。換句話說,內(nèi)部處理將趕上外部指令的輸入。此后,器件回到它的例行程序操作。通過考慮到外部端口的數(shù)目,內(nèi)部操作周期的數(shù)目,刷新間隔等確定額外時間α。
因為當(dāng)內(nèi)部刷新指令和輸入到另一個端口的指令立即在Read指令前發(fā)生時定時變得最壞,所以需要將與Read指令(RD)對應(yīng)的數(shù)據(jù)輸出的延遲時間(數(shù)據(jù)等待時間)設(shè)置在內(nèi)部操作的3個周期中(在兩個端口的情形中)。然而,因為稍長于兩個內(nèi)部操作周期的外部指令周期就是器件適當(dāng)操作所需要的一切,所以數(shù)據(jù)傳輸速率是相當(dāng)高的。
如上所述,本發(fā)明能夠取消來自器件外部的刷新操作,并將外部指令周期設(shè)置得稍長于兩個內(nèi)部操作周期。不需要刷新來自外部裝置的控制,甚至當(dāng)在內(nèi)部執(zhí)行刷新操作時,這對外部裝置是完全看不見的,并且不影響從外部裝置看的器件操作的方式。因此,可以從每個外部端口進行到存儲器的存取而不用考慮其它端口。
在這個方式中,本發(fā)明能夠提供用DRAM存儲單元的多端口存儲器,它有大容量和快的數(shù)據(jù)傳輸速率,同時允許使用存儲器而不用考慮任何刷新操作就像它在SRAM的基礎(chǔ)上完成一樣。
在圖73的例子中,響應(yīng)一個讀指令與外部時鐘脈沖同步地輸出一項讀數(shù)據(jù)。即,脈沖串長度為1。所以,在一個時鐘脈沖周期中完成讀數(shù)據(jù)的輸出后,在外部指令周期的3個留下的時鐘脈沖周期中外部端口不輸出任何數(shù)據(jù),這導(dǎo)致無效的數(shù)據(jù)傳輸。這個問題能夠通過加長脈沖串長度來消除。
圖74是用于解釋本發(fā)明原理的圖,表示脈沖串長度為4的例子。在這個例子中,如以前的情形那樣,將兩個外部端口的外部指令周期設(shè)置在能夠提供2.2個內(nèi)部操作周期的長度上。進一步,一個外部指令周期對應(yīng)于4個時鐘脈沖周期。與時鐘脈沖同步地以提供數(shù)據(jù)等待時間為6的方式在單個外部指令周期中從一個外部端口輸出數(shù)據(jù)4次。所以,如果根據(jù)一個外部指令周期的時鐘脈沖周期的數(shù)目設(shè)置脈沖串長度,則在兩個端口中都能夠達(dá)到無間隙的讀操作,從而非常大地促進了數(shù)據(jù)傳輸速率的提高。在這個情形中,需要響應(yīng)單個存取將與脈沖串長度一樣多的數(shù)據(jù)項內(nèi)部地輸入存儲器陣列或從存儲器陣列輸出。例如,如果一個外部端口的數(shù)據(jù)輸入/輸出銷數(shù)目為4和脈沖串長度為4,則需要保證通過單個存取操作將16位數(shù)據(jù)從存儲器陣列輸出或輸入存儲器陣列。
我們應(yīng)該注意到A端口和B端口不一定同步地操作,只要設(shè)置最小周期等于對于N個內(nèi)部操作周期加上比單個內(nèi)部操作周期短的持續(xù)時間α需要的持續(xù)時間,就能夠相互獨立地將各外部指令周期設(shè)置在任何定時。
圖75和圖76是表示在2,3和N個端口的情形中在一個最小外部指令周期和各內(nèi)部操作周期之間的關(guān)系的圖。如圖所示,如果端口數(shù)為2,則最小外部指令周期是允許2個內(nèi)部操作的時間長度加上α,如果端口數(shù)為3,則最小外部指令周期是允許3個內(nèi)部操作的時間長度加上α。進一步,如果端口數(shù)為N,則最小外部指令周期等于其間能執(zhí)行N+1個內(nèi)部操作的時間長度加上時間長度α。
圖77和圖78A到圖78C是表示根據(jù)本發(fā)明的一個實施例的多端口存儲器的配置的圖。圖77表示DRAM芯及其相關(guān)電路,圖78A表示A端口,圖78B表示B端口。進一步,圖78C表示刷新電路。圖78A到圖78C所示的電路與圖77的各部分連接。
如這些圖所示,本實施例的多端口存儲器包括DRAM芯3011,用于控制確定操作次序并保證以確定的次序?qū)嵤┎僮鞯呐袃?yōu)器3026,指令寄存器3025,它暫時存儲從判優(yōu)器3026提供的指令,并將這些指令以接到它們的次序傳輸給DRAM芯3011的控制電路3014,暫時存儲各端口的指令,地址和數(shù)據(jù)的多組寄存器,2個由A端口3030和B端口3040組成的外部端口,和刷新電路3050。
A端口3030和B端口3040分別包括模寄存器3031和3041,CLK緩沖器3032和3042,數(shù)據(jù)I/O電路3033和3043,地址輸入電路3034和3044,與指令輸入裝置3035和3045,它們根據(jù)從器件外部提供的各分開的時鐘頻率進行操作。將數(shù)據(jù)等待時間和脈沖串長度存儲在模寄存器3031和3041中,使它們能被分別地設(shè)置。數(shù)據(jù)I/O電路3033和3043裝備有根據(jù)脈沖串長度實施輸出/輸出數(shù)據(jù)的并行到串行變換和串行到并行變換的機構(gòu)。
刷新電路3050包括刷新定時器3051和刷新指令發(fā)生器3052。刷新定時器3051在預(yù)定間隔上產(chǎn)生刷新開始信號,和刷新指令發(fā)生器3052對應(yīng)地產(chǎn)生刷新指令。
分別將加到A端口和B端口的指令存儲在指令寄存器A28A和指令寄存器B28B中。分別將地址存儲在地址寄存器A19A和地址寄存器B19B中,分別將寫入的數(shù)據(jù)存儲在Write數(shù)據(jù)寄存器A22A和Write數(shù)據(jù)寄存器B22B中。進一步,將刷新指令存儲在刷新指令寄存器3027中,并將刷新地址存儲在刷新地址計數(shù)器/寄存器3018中。
判優(yōu)器3026根據(jù)指令到達(dá)的次序確定執(zhí)行指令的次序,并以確定的次序?qū)⒅噶顐鬏斀o指令寄存器3025。指令寄存器3025以從判優(yōu)器3026接到指令的次序?qū)⑦@些指令傳送給DRAM芯3011的控制電路3014。當(dāng)DRAM芯處理給定指令時,使控制電路3014處于能夠接收下一個指令的狀態(tài)。對應(yīng)地,指令寄存器3025下一個指令傳送給控制電路3014。同時將從判優(yōu)器3026提供的指令暫時存儲在指令寄存器3025中。進一步,指令寄存器3025除了將指令傳輸給DRAM芯3011的控制電路3014外也將傳輸信號傳輸給對應(yīng)的地址寄存器和對應(yīng)的數(shù)據(jù)寄存器(在寫操作情形)。在DRAM芯3011中,控制電路3014響應(yīng)提供的指令,控制譯碼器3013,寫放大器(WriteAmp)3015,和讀出緩沖器3016,從而對于存儲器陣列3012實施存取操作。在寫操作的情形中,譯碼器3013為了進行寫操作對存取的地址進行譯碼,以便激活在存儲器陣列3012中的字線和列信號線,導(dǎo)致將存儲在Write數(shù)據(jù)寄存器A和B中的寫數(shù)據(jù)通過WriteAmp 3015寫入存儲器陣列3012。在讀操作的情形中,以類似的方式存取存儲器陣列3012,導(dǎo)致分別通過標(biāo)記為3024A和3024B的傳輸門A和B,將讀數(shù)據(jù)從讀出緩沖器3016傳輸?shù)礁鞫丝诘臄?shù)據(jù)輸出電路。根據(jù)DRAM芯3011的操作周期,控制傳輸門的傳輸定時,并由控制電路3014確定傳輸定時。與對應(yīng)的外部時鐘同步地從每個端口的數(shù)據(jù)輸出電路輸出輸出數(shù)據(jù)。
下面,我們描述與每個指令處理,地址處理和數(shù)據(jù)處理有關(guān)的詳細(xì)情形。
圖79和圖80是表示根據(jù)第1實施例與指令處理有關(guān)的裝置的配置的圖。在與圖77和圖78A-78C相同的部件上加上相同的參照數(shù)字。這也同樣應(yīng)用于其它的圖。
如圖79所示,A端口的指令輸入裝置3035包括輸入緩沖器3036,指令譯碼器3037和(n-1)時鐘延遲電路3038,B端口的指令輸入裝置3045包括輸入緩沖器3046,指令譯碼器3047和(m-1)時鐘延遲電路3048。這里,n和m是脈沖串長度。而且,如圖80所示,指令寄存器A包括Read指令寄存器AR和Write指令寄存器AW,指令寄存器B包括Read指令寄存器BR和Write指令寄存器BW。
輸入緩沖器3036和3046要求以與各時鐘脈沖CLKA1和CLKB1同步地加上Read指令,指令譯碼器3037和3047進行譯碼處理。指令譯碼器3037和3047在Read指令情形分別產(chǎn)生RA1和RB1,而在Write指令情形分別產(chǎn)生WA1和WB1。分別將信號RA1和RB1傳輸給Read指令寄存器AR和BR,不需要任何定時操作,而信號WA1和WB1被(n-1)時鐘延遲電路3038和(m-1)時鐘延遲電路3048延遲,直到輸入脈沖串?dāng)?shù)據(jù)的最后一個數(shù)據(jù)項為止,接著分別被傳輸給Write指令寄存器AW和BW。而且,將由刷新電路3050產(chǎn)生的刷新指令REF1傳輸給刷新指令寄存器3027。
判優(yōu)器3026檢測將指令傳輸給這5個指令寄存器AR,AW,BR,BW和3027的次序,并以檢測到的次序一個接著一個地將這些指令傳輸給指令寄存器3025。在接到從判優(yōu)器2026發(fā)出的指令時,指令寄存器3025將指令接收確認(rèn)傳輸給判優(yōu)器3026。響應(yīng)指令接收確認(rèn),判優(yōu)器3026將下一個指令發(fā)送給指令寄存器。
指令寄存器3025以從判優(yōu)器3026接到指令的次序?qū)⒅噶钜粋€接著一個地傳輸給DRAM芯3011的控制電路3014。DRAM芯的控制電路3014執(zhí)行接到的指令,并當(dāng)指令執(zhí)行結(jié)束或接近結(jié)束時將準(zhǔn)備好接收指令的信號傳輸給指令寄存器3025。響應(yīng)準(zhǔn)備好接收指令的信號,指令寄存器3025將下一個指令傳輸給控制電路3014。同時,將從判優(yōu)器3026提供的指令暫時存儲在指令寄存器3025中。
圖81是判優(yōu)器3026的實施例。指令到達(dá)圖80的5個指令寄存器(Read指令寄存器AR,Write指令寄存器AW,Read指令寄存器BR,Write指令寄存器BW和刷新指令寄存器3027)的次序由比較器3053檢測出來如該圖所示。每個比較器3053比較兩個指令寄存器的定時,并首先輸入“H”時將它的輸出改變成“H”。AND門3054通過檢測相關(guān)比較器3053的所有相關(guān)輸出是否是“H”來確定一個給定的指令是否在所有4個其它的指令前輸入。如果一個對應(yīng)的指令是最早的并且被傳輸給指令寄存器3025,則響應(yīng)各指令,信號RA31,WA31,RB31,WB31和REF31變成“H”。如果RA2是RA2到REF2中最早的,則與RA2連接的比較器具有在與RA2連接的一邊上為“H”的輸出。在這個特定的瞬間,指令接收確認(rèn)還沒有產(chǎn)生(=“L”),使得N1=“H”,導(dǎo)致RA3為“H”。于是將指令發(fā)送給指令寄存器3025。
指令寄存器3025當(dāng)接收指令時產(chǎn)生指令接收確認(rèn)。當(dāng)發(fā)生這種情況時,在節(jié)點N1產(chǎn)生“L”脈沖,導(dǎo)致RA3到REF3都為“L”。同時,將產(chǎn)生ResetRA到ResetREF中的一個。如果RA31為“H”,則產(chǎn)生ResetRA,從而使Read指令寄存器AR復(fù)位。對應(yīng)地,RA2變成“L”,于是RA31到REF31中的一個變成“H”,指示中下一個在線的指令。當(dāng)在“L”脈沖未端N1變成“H”時,將下一個在線的指令傳輸給指令寄存器3025。此后重復(fù)上述的操作。
圖82和圖83是表示指令寄存器3025的配置的圖。將指令寄存器3025分成兩半并表示在兩個圖中。
指令寄存器3025主要包括移位寄存器3092,移位寄存器3092在其中存儲指令,將這些指令連續(xù)地輸出到DRAM芯3011,并包括將從判優(yōu)器3026接收的指令傳輸?shù)揭莆患拇嫫?092的開關(guān)(SW1-SW3)3082-3084。在這個例子中,移位寄存器3092具有三級配置,并包括用于存儲指令的寄存器3085-3087,指示寄存器3085-3087的存儲狀態(tài)的標(biāo)志3088-3090,和使寄存器3085-3087的狀態(tài)復(fù)位的復(fù)位數(shù)據(jù)裝置3091。在沒有指令存儲在寄存器3085-3087的狀態(tài)中,標(biāo)志3088-3090都處于低的狀態(tài)(FL1-FL3=“L”),使得開關(guān)3082(SW1)接上。通過SW1將第1指令存儲在寄存器3085中,使得FL1變成“H”。當(dāng)FL1變成“H”時,“H”邊沿脈沖電路3093產(chǎn)生脈沖,將指令接收確認(rèn)傳輸給判優(yōu)器3026。
如果在這個特定的瞬間DRAM芯3011認(rèn)定準(zhǔn)備好接收指令的信號,則門3097打開將寄存器3085的指令傳輸給鎖存器3098,然后將指令發(fā)送給DRAM芯3011的控制電路3014。同時,將對應(yīng)于該指令的地址等傳輸給DRAM芯3011。DRAM芯3011當(dāng)根據(jù)接到的指令開始操作時取消準(zhǔn)備好接收指令的信號。于是門3097關(guān)閉。寄存器控制電路3096產(chǎn)生促使寄存器3086的數(shù)據(jù)移到寄存器3085和寄存器3087的數(shù)據(jù)移到寄存器3086的移位信號。如果在移位信號產(chǎn)生前寄存器3086中沒有存儲指令,則移位操作導(dǎo)致使寄存器3085復(fù)位和使FL1變成“L”。寄存器控制電路3096在產(chǎn)生移位信號同時產(chǎn)生禁止傳輸信號以便斷開SW1-SW3,從而當(dāng)移位操作時禁止將數(shù)據(jù)傳送到移位寄存器3092。當(dāng)通過SW1將第1指令(指令1)加到寄存器3085時,如果DRAM芯3011正在執(zhí)行前一個指令則將指令存儲在寄存器3085中。FL1變成“H”,它斷開SW1,并進一步在一個預(yù)定延遲后斷開SW2。這里,預(yù)定延遲與從產(chǎn)生指令接收確認(rèn)到使判優(yōu)器輸出復(fù)位的時間周期對應(yīng)。如果在DRAM芯3011準(zhǔn)備好接收指令前加上來自判優(yōu)器3026的下一個指令(指令2),則通過SW2將指令存儲在寄存器3086中。FL2變成“H”,它產(chǎn)生指令接收確認(rèn)并斷開SW2,接著在一個預(yù)定延遲時間后進一步斷開SW3。當(dāng)DRAM芯處在能接收指令的狀態(tài)時,產(chǎn)生準(zhǔn)備接收指令信號,打開門3097,使得將寄存器3085的指令1傳輸給鎖存器3098,然后傳輸給DRAM芯3011。DRAM芯3011當(dāng)根據(jù)指令1開始操作時取消準(zhǔn)備接收指令信號。相應(yīng)地,門3097關(guān)閉。寄存器控制電路3096產(chǎn)生移位信號,該移位信號將寄存器3086的指令2移到寄存器3085,和將寄存器3087的內(nèi)容(復(fù)位狀態(tài))移到寄存器3086。寄存器3085結(jié)束指令2的存儲,寄存器3086和3087終止在復(fù)位狀態(tài)。因為FL1為“H”,F(xiàn)L2和FL3為“L”,所以接上SW2而斷開SW1和SW3。
復(fù)位數(shù)據(jù)裝置3091與在它左邊的移位寄存器3092的寄存器連接。提供這個配置的目的是當(dāng)在直到寄存器3087的整條路徑上指令都被存儲時,用接著的移位信號將寄存器3087的指令移到寄存器3086。在這個方式中,指令寄存器3025暫時積累從判優(yōu)器3026發(fā)送的指令,檢測DRAM芯3011的狀態(tài),接著一個又一個地傳輸指令。
將指令產(chǎn)生檢測信號輸入寄存器控制電路3096。當(dāng)從判優(yōu)器3026傳輸指令時產(chǎn)生指令產(chǎn)生檢測信號。圖84A和圖84B表示寄存器控制電路3096的操作。當(dāng)?shù)郊拇嫫骺刂齐娐?096的準(zhǔn)備接收指令信號去激活時產(chǎn)生移位信號和禁止傳輸信號。然而,當(dāng)就在準(zhǔn)備接收指令信號去激活前立即從判優(yōu)器3026傳輸指令時,優(yōu)先的是只在將較早接收的指令傳輸給移位寄存器3092后才實施移位操作。因此,進行比較以便確定準(zhǔn)備接收指令信號的后沿和指令產(chǎn)生檢測信號的前沿中哪一個較早。如果前者較早,則響應(yīng)前者的后沿產(chǎn)生移位信號和禁止傳輸信號,如果后者較早,則響應(yīng)后者的后沿產(chǎn)生移位信號和禁止傳輸信號。
圖85和圖86是表示指令寄存器3025操作的圖。這里對關(guān)于在表示輸入指令最擁擠的定時條件的Write→Read指令傳輸?shù)臅r間產(chǎn)生刷新指令的情形進行說明。圖中所示的SW1到SW3的數(shù)目指出連接的SW,并說明了連接SW的持續(xù)時間。進一步,電阻1到3分別對應(yīng)于寄存器3085到3087。
圖87是表示根據(jù)第1實施例與地址處理有關(guān)的部分的配置的圖。下文中,在它的信號名稱的未端具有字母“P”的信號代表具有從對應(yīng)的信號名稱的信號的前沿產(chǎn)生的脈沖的信號。如圖所示,地址輸入電路3034和3044分別包括輸入緩沖器3057A和3057B,傳輸門3058A和3058B。進一步,地址寄存器3019A和地址寄存器3019B分別包括地址鎖存器A1到A4和B1到B4,傳輸門3059A到3063A和3059B到3063B。通過地址總線3017將從傳輸門3062A,3062B,3063A,3063B提供的地址傳輸?shù)紻RAM芯3011。進一步,通過傳輸門3064和地址總線3017將從刷新地址計數(shù)器/寄存器3018提供的刷新地址傳輸?shù)紻RAM芯3011。
當(dāng)從器件外部輸入Read指令或Write指令時,分別通過傳輸門3058A或3058B將加到輸入緩沖器3057A或3057B的地址和輸入指令同時傳輸給地址鎖存器A1或B1。在Read指令的情形中,通過傳輸門3061A和3063A或3061B和3063B和地址鎖存器A4或B4與到DRAM芯的指令傳輸同步地將地址傳送給DRAM芯3011。在Write指令的情形中,進一步在上次數(shù)據(jù)采集的定時將地址傳輸給地址鎖存器A2或B2,然后,與到DRAM芯的指令傳輸同步地通過傳輸門3062A或3062B傳輸給DRAM芯3011。進一步,刷新地址計數(shù)器/寄存器3018產(chǎn)生并在其中保存刷新地址,然后與刷新指令到DRAM芯的傳輸同步地通過傳輸門3064將該地址傳輸給DRAM芯3011。
圖88是表示根據(jù)第1實施例與數(shù)據(jù)輸出有關(guān)的部分的配置的圖。圖89是表示圖88的傳輸信號發(fā)生電路的圖。A端口3030和B端口3040的各數(shù)據(jù)I/O電路3033和3043分別包括為了輸出數(shù)據(jù)的電路3065A和3065B及為了輸入數(shù)據(jù)的電路3074A和3074B。如圖所示,將通過讀出緩沖器3016從存儲器陣列3012讀出的數(shù)據(jù)通過數(shù)據(jù)總線3021和傳輸門3024A或3024B分別傳輸給為了輸出數(shù)據(jù)的電路3065A或3065B。
為了輸出數(shù)據(jù)的電路3065A和3065B分別包括數(shù)據(jù)鎖存器A1或B1,傳輸信號發(fā)生電路3067A和3067B,傳輸門3068A或3068B,數(shù)據(jù)鎖存器A2或B2,并行到串行變換器3070A和3070B,以及輸出緩沖器3071A和3071B。
傳輸門3024A和3024B由DRAM芯3011的控制電路3014根據(jù)內(nèi)部操作進行控制。如果執(zhí)行的指令是Read-A(即,對于A端口的讀操作),則傳輸門3024A將打開。如果執(zhí)行的指令是Read-B,則傳輸門3024B將打開。數(shù)據(jù)鎖存器A1或B1在其中存儲數(shù)據(jù),然后在通過傳輸門3068A和3068B引入等待時間的各端口中接收Read指令后的一個預(yù)定等待時間,將數(shù)據(jù)傳輸給各數(shù)據(jù)鎖存器A2或B2。然后,由并行到串行變換器3070A和3070B對數(shù)據(jù)進行變換,接著分別傳輸給輸出緩沖器3071A和3071B,并從那里輸出。
如圖89所示,傳輸信號發(fā)生電路3067(即3067A或2067B)采用一系列的觸發(fā)器3072使各Read指令RA1或RB1延遲由等待時間設(shè)定確定的許多時鐘脈沖周期,從而產(chǎn)生數(shù)據(jù)傳輸信號3002。因為響應(yīng)數(shù)據(jù)傳輸信號3002,通過傳輸門3068A和3068B傳輸讀數(shù)據(jù),所以讀數(shù)據(jù)從讀操作的定時開始被延遲與等待時間設(shè)置相同的許多時鐘脈沖周期后結(jié)束。
圖90和圖91是表示根據(jù)本實施例與數(shù)據(jù)輸入有關(guān)的部分的配置的圖。為了輸入數(shù)據(jù)的電路3074A和3074B分別包括數(shù)據(jù)輸入(Din)緩沖器3075A和3075B,串行到并行變換器3076A和3076B,以及數(shù)據(jù)傳輸裝置3077A和3077B。分別通過第1個Write數(shù)據(jù)寄存器3078A和3078B,數(shù)據(jù)傳輸門3079A和3079B,第2個Write數(shù)據(jù)寄存器3080A和3080B,數(shù)據(jù)傳輸門3081A和3081B,以及數(shù)據(jù)總線3021將來自數(shù)據(jù)傳輸裝置3077A和3077B的Write數(shù)據(jù)WDA和WDB傳送給WriteAmp 3015,然后被寫入存儲器陣列3012。
根據(jù)脈沖串長度將串行輸入數(shù)據(jù)從串行變換到并行,然后在輸入最后一個數(shù)據(jù)項的定時傳輸給第1個Write寄存器3078A和3078B。當(dāng)從指令寄存器3025將Write指令傳輸給DRAM芯3011時,也將對應(yīng)數(shù)據(jù)傳輸給DRAM芯3011。
圖92到圖99是表示第1實施例的多端口存儲器的操作的定時圖。圖92和圖93,圖95和圖96,圖98和圖99是為了便于說明起見將單個時間圖分成兩半的圖,一個表示時間圖的第1個一半,另一個表示時間圖的第2個一半,它們之間存在一些重疊。
圖92和圖93表示當(dāng)將Read指令相繼輸入兩個端口時實施的操作。A端口和B端口,它們分別具有有相互不同頻率的時鐘信號CLKA和CLKB,與接收的時鐘信號同步地取得指令,地址和寫數(shù)據(jù),并與時鐘信號同步地輸出檢索的數(shù)據(jù)。在這個例子中,A端口操作在最大時鐘頻率,而B端口操作在稍低的時鐘頻率。對于A端口,Read指令周期=4(CLKA),數(shù)據(jù)等待時間=6(CLKA),和脈沖串長度=4。對于B端口,Read指令周期=2(CLKB),數(shù)據(jù)等待時間=3(CLKB),和脈沖串長度=2。在各端口的模寄存器3031和3041中分別設(shè)置數(shù)據(jù)等待時間和脈沖串長度。對于A端口,響應(yīng)一個指令與時鐘信號同步地實施數(shù)據(jù)的輸入/輸出4次,在輸入讀指令后的6個時鐘脈沖周期輸出檢索的數(shù)據(jù)。對于B端口,響應(yīng)一個指令與時鐘信號同步地實施數(shù)據(jù)的輸入/輸出2次,在輸入讀指令后的3個時鐘脈沖周期輸出檢索的數(shù)據(jù)。
分別將加到A端口和B端口的指令存儲在指令寄存器3028A和3028B中。當(dāng)刷新定時器3051產(chǎn)生信號時,刷新指令寄存器3027在其中存儲刷新指令。判優(yōu)器3026監(jiān)視這些指令寄存器,并以發(fā)出指令的次序?qū)⑦@些指令傳輸給指令寄存器3025。指令寄存器3025暫時存儲接收的指令,并以接到它們的次序?qū)⑺鼈冞B續(xù)地傳輸給DRAM芯3011。即,在完成上一個傳輸指令的處理后傳輸下一個指令。
如圖所示,將指令Read-A2輸入Read指令寄存器AR和將指令Read-B2輸入Read指令寄存器BR。在此之前,發(fā)生一次刷新,并將刷新指令輸入刷新指令寄存器。根據(jù)發(fā)出指令的次序,判優(yōu)器3026以Read-A2→Ref→Read-B2的次序?qū)⑦@些指令傳輸給DRAM芯3011,然后由芯執(zhí)行這些指令。
由于芯的操作在Read-B1和Read-A2之間存在額外時間,并直到這個點都實施正常的和例行程序操作。當(dāng)發(fā)生刷新時,在Read-A2后立即實施刷新而在其間沒有任何時間間隙。此后,相繼實施Read-B2,Read-A3等而沒有任何時間間隙直到執(zhí)行Read-A5。與正常的和例行程序操作相反,直到這個點都執(zhí)行快速操作。
由于刷新指令的執(zhí)行,內(nèi)部操作相對于來自器件外部的指令輸入顯示出一些延遲??焖俨僮餮a償該延遲,在執(zhí)行指令Read-A5前趕上。在Read-A5和Read-B5之間再次存在額外時間,指出回到正常的和例行程序操作。將通過讀出緩沖器3016從DRAM芯3011讀出的數(shù)據(jù)通過傳輸門傳輸給接收對應(yīng)的Read指令的端口的數(shù)據(jù)鎖存器(數(shù)據(jù)鎖存器A1或B1)。數(shù)據(jù)鎖存器A1或B1為數(shù)據(jù)提供時間調(diào)整,然后將數(shù)據(jù)傳輸給數(shù)據(jù)鎖存器A2或B2,并與對應(yīng)端口的時鐘信號同步地輸出數(shù)據(jù)。
甚至當(dāng)在內(nèi)部實施刷新操作時,從外部看來數(shù)據(jù)是在一個預(yù)定數(shù)據(jù)等待時間后輸出的。這樣,就不需要考慮任何刷新操作。
圖94表示當(dāng)在與上述相同的條件下接連地輸入Write指令時的例子。也以脈沖串輸入的形式給出在Write操作時從器件外部輸入的數(shù)據(jù)。在輸入最后一個數(shù)據(jù)塊的定時將Write指令存儲在Write指令寄存器AW中。在這個情形中,甚至當(dāng)在內(nèi)部產(chǎn)生和執(zhí)行刷新操作時也不需要考慮任何刷新操作。
圖95和圖96表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Read操作時實施的操作。圖97是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進行Write操作時實施的操作的圖。在這個情形中,在這兩個端口的時鐘脈沖信號中可能存在相位差。對于兩個端口,Read指令周期=4,Write指令周期=4,數(shù)據(jù)等待時間=6,和脈沖串長度=4。如從圖可見的那樣,在這個情形中也可以適當(dāng)?shù)貙嵤┎僮鳌?br>
圖98和圖99是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn)生的刷新指令經(jīng)受從Write寫指令到Read讀指令的改變時實施的操作的時間圖。這是指令最擁擠的情形。
如所說明的那樣,DRAM芯3011以Ref→Write-A1→Write-B1→Read-A2→Read-B2的次序進行操作,在它們之間沒有任何間隙。在這個例子中,在輸入Write指令后6個時鐘脈沖輸入Read-A2和Read-B2。即便這些定時超前2個時鐘脈沖,也不可能超前DRAM芯的內(nèi)部操作。由從輸入Read指令的數(shù)據(jù)等待時間對讀數(shù)據(jù)的輸出定時進行控制。如果Read-A2和Read-B2的輸入定時是超前的,則也需要使數(shù)據(jù)輸出定時是超前的。例如,如果在Write-B1后4個時鐘脈沖輸入Read-B2,則響應(yīng)Read-B2的數(shù)據(jù)輸出定時太接近DRAM芯操作的開始時間,使得不能適當(dāng)?shù)貓?zhí)行Read-B2。因為這個原因,需要將Write→Read變遷的指令間隔設(shè)置得相當(dāng)長如本例中的6個時鐘脈沖。
關(guān)于Read→Write的指令間隔,因為除非完成了Read數(shù)據(jù)的輸出,不能將Write數(shù)據(jù)輸入DQ端子中,所以指令間隔不可避免地變得很長。
圖100A和100B是表示DRAM芯3011操作的定時圖。圖100A表示Read操作,圖100B表示W(wǎng)rite操作。如這些圖所示,響應(yīng)單個指令以字線選擇→數(shù)據(jù)放大→寫回→預(yù)充電的次序?qū)嵤┮幌盗胁僮?,從而完成整個操作。當(dāng)接到指令時DRAM芯3011使準(zhǔn)備接收指令信號去激活,并當(dāng)完成或接近結(jié)束指令的執(zhí)行時產(chǎn)生準(zhǔn)備接收指令信號。
如上所述,本發(fā)明允許當(dāng)以DRAM芯為基礎(chǔ)制成存儲器陣列時使用多端口存儲器而不需要考慮任何刷新操作,從而以低成本提供有大容量和容易使用的多端口存儲器。
下面我們描述本發(fā)明的第4方面。
多端口存儲器,它們是裝備有多個端口的半導(dǎo)體存儲器,可以分成不同的類型。當(dāng)下文中使用術(shù)語“多端口存儲器”時,它指的是具有多端口的存儲器,該存儲器允許從任何一個端口獨立地存取公共存儲器陣列。這樣一個存儲器可以具有A端口和B端口,并允許對于公共存儲器陣列從與A端口鏈接的CPU和從與B端口鏈接的CPU獨立地進行讀/寫操作。
一個多端口存儲器裝備有稱為判優(yōu)器的判優(yōu)電路。判優(yōu)器確定從多個端口接收的存取要求的優(yōu)先權(quán),存儲器陣列的控制電路根據(jù)確定的優(yōu)先權(quán)一個接一個的進行存取操作。例如,存取要求越早到達(dá)端口,就會給予該存取要求越高的優(yōu)先權(quán)。
在這種情形中,因為隨機地從多個接口存取存儲器陣列,所以在執(zhí)行了讀或?qū)懙拇嫒〔僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位,從而保證存儲器陣列為下一次存取作好了準(zhǔn)備。即,如果響應(yīng)來自給定端口的存取要求使一條字線保持在選擇狀態(tài),和如一般在DRAM中使用的列存取操作中那樣連續(xù)地動移各列地址以便讀出連續(xù)的數(shù)據(jù),則當(dāng)該操作期間來自另一個端口的存取要求將一直等待著。因此,在每次讀或?qū)懖僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位。
常規(guī)地,已經(jīng)典型地將SRAM用作多端口存儲器的存儲器陣列。這是因為SRAM允許高速隨機存取,而且可以進行非破壞性讀操作。
在具有兩個端口的多端口存儲器中,例如,一個SRAM存儲單元具有兩組字線和位線對。一個端口用一組字線和位線對實施讀/寫操作,另一個端口用另一組字線和位線對實施讀/寫操作。在這種方式中,能夠從兩個不同的端口獨立地實施讀/寫操作。然而,因為當(dāng)兩個端口企圖在同一時間將數(shù)據(jù)寫入同一存儲單元時不可能同時進行兩個寫操作,所以給予一個端口進行寫操作的優(yōu)先權(quán),而給予另一個端口BUSY(忙碌)信號。這稱為BUSY狀態(tài)。
當(dāng)開發(fā)系統(tǒng)使它有改善的性能時,由該系統(tǒng)處理的數(shù)據(jù)量也增加了。結(jié)果,多端口存儲器需要很大的容量。然而,SRAM型多端口存儲器具有存儲單元的尺寸大的缺點。
為了消除這個缺點,在多端口存儲器中采用DRAM陣列是可以理解的。為了得到比多端口SRAM高得非常多的電路密度,需要用于多端口存儲器中一個DRAM存儲單元以與典型的DRAM單元相同的方式只與一條字線和一條位線連接。如果以這樣一種方式用DRAM元件制成存儲塊,如果一個端口正在對給定存儲塊執(zhí)行讀或?qū)懖僮?,則另一個端口不能存取該存儲塊。這是因為在DRAM存儲單元中只可以有破壞性讀操作。即,當(dāng)讀取信息時,不能選擇在同一個存儲塊中的另一條字線直到這個信息被放大和存儲在存儲單元中,字線和位線被預(yù)先充電為止。
只有當(dāng)多個端口同時對同一個存儲單元提出寫要求時,在常規(guī)的SRAM型多端口存儲器中才會出現(xiàn)BUSY狀態(tài)。因此,DRAM型多端口存儲器需要具有一個獨特的與常規(guī)的SRAM型多端口存儲器不同的BUSY狀態(tài)控制功能。
進一步,與SRAM型多端口存儲器不同,DRAM型多端口存儲器需要周期地實施刷新操作以便保持存儲的信息,從而必須采取某種措施保證適當(dāng)?shù)乃⑿露〞r。
因此,本發(fā)明的目的是提供能夠消除特別與DRAM有關(guān)的問題的DRAM型多端口存儲器。
根據(jù)本發(fā)明,半導(dǎo)體存儲器件包括多個N個外部端口,它們中的每一個都接收指令,多個與各外部端口對應(yīng)的N條總線,多個與N條總線連接的存儲塊,比較由輸入到N個各外部端口的指令存取的地址的地址比較器,和判優(yōu)電路,它確定當(dāng)?shù)刂繁容^電路根據(jù)地址比較檢測出到同一個存儲塊的存取時,存取同一個存儲塊的各指令中的哪一個或哪幾個要被執(zhí)行,和存取同一個存儲塊的各指令中的哪一個或哪幾個不被執(zhí)行。
在上面描述的本發(fā)明中,如果從器件外部輸入端口的指令企圖存取同一個存儲塊時,判優(yōu)電路確定各指令中的哪一個要被執(zhí)行,和各指令中的哪一個不被執(zhí)行。例如,比較指令定時,執(zhí)行較早的指令,而不執(zhí)行其它的一個或多個指令。當(dāng)存在不被執(zhí)行的指令時,產(chǎn)生BUSY信號等并輸出到器件外部。這使得甚至當(dāng)在以DRAM芯為基礎(chǔ)的多端口存儲器中指令存取相互發(fā)生沖突時也可以實施適當(dāng)?shù)拇嫒〔僮鞑崿F(xiàn)適當(dāng)?shù)腂USY控制。
根據(jù)本發(fā)明的一個方面,存儲塊包括在動態(tài)型存儲單元的基礎(chǔ)上制成的存儲單元陣列,而半導(dǎo)體存儲器件包括定義刷新存儲單元的定時的刷新電路。在第一模式中,響應(yīng)輸入到N個外部端口中的至少一個端口的刷新指令刷新存儲單元,在第二模式中,在刷新電路指出的定時刷新存儲單元。
上面描述的本發(fā)明具有一個操作模式,其中響應(yīng)來自器件外部的指令執(zhí)行刷新操作的操作模式,和響應(yīng)來自內(nèi)部刷新電路的指令執(zhí)行刷新操作的操作模式。這使在這樣一種方式,即將預(yù)定外部端口指定作為一個用于在恒定的間隔接收刷新指令進行刷新管理的端口中用多端口存儲器成為可能,或者使在這樣一種方式,即當(dāng)所有的外部環(huán)部端口都處于去激活狀態(tài)時內(nèi)部刷新電路開始刷新操作中用多端口存儲器成為可能。因此,本發(fā)明為遵從系統(tǒng)要求的靈活的刷新管理提供了基礎(chǔ)。
下面我們將參照所附各圖描述本發(fā)明(第4方面)的實施例。
圖101是表示根據(jù)本發(fā)明的多端口存儲器的實施例的方框圖。在這個例子中,配置是這樣的,即提供兩個端口,A端口和B端口。
圖101的多端口存儲器4010包括A端口4011,B端口4012,自刷新電路4013,存儲塊4014-1到4014-n,判優(yōu)器4015,刷新地址計數(shù)器4016,地址改變電路4017,地址改變電路4018,地址比較器4019,總線A4020-1和總線B4020-2。
A端口4011包括模寄存器4031,CLK緩沖器4032,數(shù)據(jù)I/O電路4033,指令譯碼寄存器4034,地址緩沖器/寄存器4035和BUSY信號I/O裝置4036。進一步,B端口4012包括模寄存器4041,CLK緩沖器4042,數(shù)據(jù)I/O電路4043,指令譯碼寄存器4044,地址緩沖器/寄存器4045和BUSY信號I/O裝置4046。在A端口4011和B端口4012,與各時鐘信號CLKA和CLKB同步地獨立地建立到外部總線的存取和來自外部總線的存取。模寄存器4031和4041能夠在其中存儲對于各端口的模式設(shè)定如數(shù)據(jù)等待時間和脈沖串長度。在這個實施例中,A端口4011和B端口4012兩者都具有各自的模寄存器,使每個端口都能進行模式設(shè)定。然而,可以將模寄存器只安排在一個端口中,例如,使得對于2個端口的設(shè)置可以由對這一個端口的設(shè)置來實現(xiàn)。
自刷新電路4013包括刷新定時器4046和刷新指令發(fā)生器4047。自刷新電路4013在器件中產(chǎn)生刷新指令,分別從A端口4011和B端口4012接收信號CKEA1和CKEB1。信號CKEA1和CKEB1是分別用CLK緩沖器4032和4042對外部信號CKEA和CKEB進行緩沖得到的。用外部信號CKEA和CKEB暫停各端口的時鐘緩沖器并使各端口去激活。如果使A端口4011和B端口4012兩者都進入去激活狀態(tài),則自刷新電路4013開始它的操作。
存儲塊4014-1到4014-n每個都與內(nèi)部總線A4020-1和內(nèi)部總線B4020-2連接。存在多個外部端口(即,A端口和B端口),其中A端口4011通過總線A4020-1與存儲塊4014-1到4014-n中每一個接口,和B端口4012通過總線A4020-2與存儲塊4014-1到4014-n中每一個接口。
如果在同一個時間輸入來自A端口4011的存取要求和來自B端口4012的存取要求,則假定這些存取要求是指向不同的存儲塊的,存取存儲塊就對應(yīng)于這些存取要求獨立地實施它們的操作。
如果來自A端口4011的存取要求和來自B端口4012的存取要求是指向同一個存儲塊的,則判優(yōu)器(判優(yōu)電路)4015確定指令到達(dá)的次序,并執(zhí)行第1個到達(dá)的指令而刪除第2個到達(dá)的指令。當(dāng)刪除指令時,判優(yōu)器4015產(chǎn)生BUSY信號以便通知外部控制器已經(jīng)被刪除第2個到達(dá)的指令的存取要求。
地址比較器4019確定進入兩個端口的存取要求中是否指向同一個存儲塊。詳細(xì)的說,地址比較器4019比較包含在進入兩個端口的地址中的塊選擇地址。如果它們是相同的,則將匹配信號加到判優(yōu)器4015。
當(dāng)A端口4011或B端口4012處于激活狀態(tài)時,從A端口4011和B端口4012輸入刷新指令。
如果進入兩個端口中的一個端口的刷新指令存取同一個存儲塊如輸入到兩個端口中的另一個端口的讀指令或?qū)懼噶钏龅哪菢樱瑒t判優(yōu)器4015確定指令到達(dá)的次序。如果刷新指令比其它指令晚,則取消刷新指令。在這個情形中,判優(yōu)器4015產(chǎn)生BUSY信號,并將它加到器件外部。當(dāng)檢測出BUSY信號時,外部控制器在切斷BUSY信號后再次向多端口存儲器4010提供刷新指令。
如果刷新指令比其它指令早,或者從自刷新電路4013提供自刷新指令,則判優(yōu)器4015產(chǎn)生計數(shù)信號,并將它加到刷新地址計數(shù)器4016。
刷新地址計數(shù)器4016響應(yīng)計數(shù)信號對地址進行計數(shù),從而產(chǎn)生刷新地址。需要從判優(yōu)器4015提供計數(shù)信號的理由是因為如上所述刷新指令能夠被取消,所以計數(shù)操作應(yīng)該只響應(yīng)從判優(yōu)器4015實際發(fā)出的刷新指令進行。這里,在實施刷新操作后實施計數(shù)操作。
如果輸入到A端口4011的指令是Read指令(讀出指令)或Write指令(寫入指令),則地址改變電路4017將從外部輸入到A端口4011的地址傳輸給總線A4020-1。如果輸入到A端口4011的指令是刷新指令,則將由刷新地址計數(shù)器4016產(chǎn)生的地址傳輸給總線A4020-1。
如果輸入到B端口4012的指令是Read指令(讀出指令)或Write指令(寫入指令),則地址改變電路4018將從外部輸入到B端口4012的地址傳輸給總線B4020-2。另一方面,如果輸入到B端口4012的指令是刷新指令,則將由刷新地址計數(shù)器4016產(chǎn)生的地址傳輸給總線B4020-2。
如上所述,如果A端口4011和B端口4012兩者都處于去基活狀態(tài),則自刷新電路4013根據(jù)作為內(nèi)部電路提供的刷新定時器4046的定時信號產(chǎn)生刷新指令。在這個實施例中,通過總線A4020-1將自刷新指令和刷新地址傳輸給存儲塊4014-1到4014-n。因為自刷新不與A端口4011和B端口4012的指令沖突,所以不需要判優(yōu)器4015確定優(yōu)先權(quán)。然而,因為需要由判優(yōu)器4015產(chǎn)生計數(shù)信號,所以也將自刷新指令提供給判優(yōu)器4015。
圖102是表示根據(jù)本發(fā)明的多端口存儲器4010操作的一個例子的定時圖。
指令Read-x是指向存儲塊4014-(x+1)的Read指令。首先將Read-0輸入到A端口4011,然后將Read-3輸入到B端口4012。在這個情形中,存取的存儲塊是不同的,使得存儲塊4014-1和存儲塊4014-4并行地操作。
此后,將Read-1輸入到A端口4011,接著將Read-1輸入到B端口4012。因為在這個情形中存取的存儲塊是相同的,所以產(chǎn)生匹配信號,取消輸入到B端口4012的指令。而且,從B端口4012的BUSY信號I/O裝置4046輸出BUSY-B(負(fù)邏輯值)。
B端口4012的外部控制器檢測BUSY-B,在切斷這個信號后再次向多端口存儲器4010提供Read-1。
圖103是表示根據(jù)本發(fā)明的多端口存儲器4010操作的另一個例子的定時圖。
圖103所示的操作直到將第2個指令Read-1輸入A端口4011和B端口4012,產(chǎn)生BUSY-B為止都與圖102的相同。在這個例子中,在響應(yīng)輸入到B端口4012的Read-1發(fā)生BUSY-B后,為了在BUSY-B結(jié)束前存取另一個存儲塊進入讀指令Read-2。在這個方式中,只要下一個指令是指向另一個存儲塊的甚至在認(rèn)定BUSY的周期中也能夠輸入下一個指令。
圖104是表示根據(jù)本發(fā)明的多端口存儲器4010操作的又一個例子的定時圖。
圖104的例子表示輸入Write指令的情形。將Read指令輸入A端口4011,接著將Write指令輸入B端口4012。
在這個實施例中,輸入/輸出數(shù)據(jù)是脈沖串型的。即,通過從多個列地址讀出并行數(shù)據(jù),并當(dāng)數(shù)據(jù)輸出時在數(shù)據(jù)I/O電路4033和4043中將它變換成串行數(shù)據(jù)得到數(shù)據(jù)輸出。串行地輸入數(shù)據(jù)輸入,然后在數(shù)據(jù)I/O電路4033和4043中將它變換成并行數(shù)據(jù),接著將并行數(shù)據(jù)寫入相關(guān)存儲塊的多個列地址中。使用這種脈沖串操作能夠增加數(shù)據(jù)傳輸速率。在這個例子中,脈沖串長度為4,使連續(xù)地輸出/輸入4個數(shù)據(jù)項。
在Write操作的情形,除非輸入所有的4個數(shù)據(jù)項,否則不能開始Write操作。所以,判優(yōu)器4015能夠確定Write操作的優(yōu)先權(quán)的定時是給出一系列串行數(shù)據(jù)輸入的最后一項的定時。
在圖104中,A端口4011的第3個指令輸入Read-3和B端口4012的第2個指令輸入Write-3企圖存取同一個存儲塊。雖然B端口4012的Write-3依據(jù)指令到各端口的輸入定時在其它的指令輸入前面,但是在寫數(shù)據(jù)最后一項進入前給出了A端口4011的Read-3。因此,判優(yōu)器4015確定A端口4011的指令在其它指令的前面,并取消B端口4012的指令。
如圖101所示,A端口4011和B端口4012分別具有CLK緩沖器4032和4042,并從器件外部接收不同的時鐘信號。各時鐘信號可以具有相同或不同的相位和頻率。
圖105是表示指令譯碼器寄存器4034和4044的方框圖。
指令譯碼器寄存器4034包括輸入緩沖器4061,指令譯碼器4062和(n-1)時鐘延遲電路4063。指令譯碼器寄存器4044包括輸入緩沖器4071,指令譯碼器4072和(n-1)時鐘延遲電路4073。
如果輸入到輸入緩沖器4061或4071的指令是Read指令(RA1,RB1)或刷新指令(REFA,REFB),通過指令譯碼器4062或4072將輸入指令傳輸給判優(yōu)器4015而不需要任何定時操作。在Write指令(WA1,WB1)的情形,輸入指令被(n-1)時鐘延遲電路4063或4073延遲(n-1)個時鐘周期,在給出一系列脈沖串寫輸入的最后的第n個數(shù)據(jù)項的定時傳輸給判優(yōu)器4015。
圖106是根據(jù)本發(fā)明的實施例的判優(yōu)器4015的方框圖。
判優(yōu)器4015包括寄存器4081,延遲電路4082,傳輸門4083,寄存器4084,寄存器4085,延遲電路4086,傳輸門4087,寄存器4088,NOR電路4091和4092,NAND電路4093到4096,倒相器4097到4101,與NOR電路4102和4103。
將從指令譯碼寄存器4034或4044傳輸過來的指令分別存儲在寄存器4081或4085中。當(dāng)將指令輸入給予A端口4011時,在是倒相器4097的輸出端的節(jié)點N1產(chǎn)生HIGH信號。當(dāng)將指令輸入給予B端口4012時,在是倒相器4100的輸出端的節(jié)點N2產(chǎn)生HIGH信號。將N1的信號或N2的信號中較早的一個鎖存在節(jié)點N3或N4中。
如果在A端口4011和B端口4012之間塊選擇地址不匹配,則地址比較器4019產(chǎn)生為LOW的匹配信號。所以,在這個情形中,將N5和N6設(shè)置在HIGH。響應(yīng)這些HIGH信號,傳輸門A4083和傳輸門B4087兩者都打開,無例外地將寄存器4081和4085的指令傳輸給寄存器4084和4088。
如果在A端口4011和B端口4012之間塊選擇地址匹配,則地址比較器4019產(chǎn)生為HIGH的匹配信號。所以,在這個情形中,在節(jié)點N5和N6的信號電平受到在節(jié)點N3和N4的信號電平的控制。如果A端口4011較早,則將N5設(shè)置在HIGH,將N6設(shè)置在LOW。響應(yīng)N5的HIGH狀態(tài),傳輸門A4083打開,將A端口4011的指令傳輸給寄存器4084。進一步,N6的LOW狀態(tài)關(guān)閉傳輸門B4087,不將B端口4012的指令傳輸給寄存器4088。
而且,根據(jù)N5和N6的信號電平,產(chǎn)生復(fù)位信號BUSY1-A和BUSY1-B,使各寄存器4081和4085復(fù)位。例如,如果選擇A端口4011的指令,則產(chǎn)生BUSY1-B和使寄存器4085復(fù)位。
不需要確定自刷新指令的優(yōu)先權(quán),在寄存器4084的輸出級使自刷新指令與A端口4011的刷新指令REFA組合起來。在這個方式中對于A端口4011產(chǎn)生的刷新指令信號REFA2與B端口4012的刷新指令信號REFB2組合起來以便產(chǎn)生計數(shù)信號。響應(yīng)刷新指令的發(fā)生,從判優(yōu)器4015將計數(shù)信號提供給刷新地址計數(shù)器4016。
圖107是表示判優(yōu)器4015操作的定時圖。
圖107表示在A端口4011和B端口4012之間塊選擇地址匹配,和A端口4011的Read指令RA1比B端口4012的Read指令RB1早的情形。在與上述相同的方式中,節(jié)點N5和N6的信號電平受到節(jié)點N3和N4的信號電平的控制,節(jié)點N3和N4的信號電平反應(yīng)出節(jié)點N1和N2的信號電平,并從判優(yōu)器4015傳輸出Read指令RA2。取消B端口4012的Read指令而不輸出,并產(chǎn)生BUSY1-B信號。
圖108是地址緩沖器/寄存器和地址改變電路的方框圖。
在圖108中,具有在信號名稱(例如RA1)的未端加上字母“P”的信號名稱(例如RA1P)的信號是通過在具有后一個信號名稱(例如RA1)的信號的前沿定時產(chǎn)生脈沖而產(chǎn)生的。
A端口4011的地址緩沖器/寄存器4035包括輸入緩沖器4035-1,傳輸門4035-2和OR電路4035-3。對于從圖105所示的指令譯碼器4062輸出的讀指令信號RA1,將前沿轉(zhuǎn)變?yōu)槊}沖,產(chǎn)生脈沖信號RA1P,然后將它加到OR電路4035-3的一個輸入端。對于從圖105所示的指令譯碼器4062輸出的寫指令信號WA1,將前沿轉(zhuǎn)變?yōu)槊}沖,產(chǎn)生脈沖信號WA1P,然后將它加到OR電路4035-3的另一個輸入端。將OR電路4035-3的輸出加到傳輸門4035-2作為發(fā)出進行數(shù)據(jù)傳輸?shù)闹噶畹膫鬏敹ㄏ蛐盘枴?br>
B端口4012的地址緩沖器/寄存器4045包括輸入緩沖器4045-1,傳輸門4045-2和OR電路4045-3。對于B端口4012的地址緩沖器/寄存器4045的配置與對于A端口4011的地址緩沖器/寄存器4035的配置相同。
地址改變電路4017包括地址鎖存器4017-1,傳輸門4017-2和4017-3,地址鎖存器4017-4,與OR電路4017-5和4017-6。OR電路4017-5接收信號RA1P和WAD1P,并將它的輸出加到傳輸門4017-2作為傳輸指示信號。OR電路4017-6接收信號REFAP和SR-AP,并將它的輸出加到傳輸門4017-3作為傳輸指示信號。
地址改變電路4018包括地址鎖存器4018-1,傳輸門4018-2和4018-3,地址鎖存器4018-4,與OR電路4018-5。OR電路4018-5接收信號RB1P和WBD1P,并將它的輸出加到傳輸門4018-3作為傳輸指示信號。又將信號REFBP加到傳輸門4018-2作為傳輸指示信號。
當(dāng)從器件外部輸入Read指令或Write指令時,將與指令一起輸入的地址傳輸給地址改變電路4017或4018。在Read指令的情形中,將指令傳輸給地址鎖存器4017-4或4018-4而不需要任何定時操作。在Write指令的情形中,在取得一系列寫數(shù)據(jù)輸入的最后一項的定時將指令傳輸給地址鎖存器4017-4或4018-4。
在刷新指令的情形中,在信號REFA,REFB或ER-A的定時將由刷新地址計數(shù)器4016產(chǎn)生的刷新地址傳輸給地址鎖存器4017-4或4018-4。
圖109是存儲塊的方框圖。
圖109表示存儲塊4014-1作為存儲塊4014-1到4014-n的一個例子。存儲塊4014-1到4014-n具有相同的配置。
存儲塊4014-1包括存儲器陣列4111,控制電路4112,總線選擇器4113和4114,讀出放大器緩沖器4115和寫放大器4116。存儲器陣列4111包括DRAM存儲單元,存儲單元門晶體管,字線,位線,讀出放大器,列線,列門等,并存儲用于讀操作和寫操作的數(shù)據(jù)??刂齐娐?112控制存儲塊4014-1的操作。寫放大器4116放大寫入存儲器陣列4111的數(shù)據(jù)。讀出緩沖器4115放大從存儲器陣列4111讀出的數(shù)據(jù)。
控制電路4112與總線A4020-1和總線B4020-2連接,并響應(yīng)與它自己的存儲塊對應(yīng)的相關(guān)的存儲塊選擇地址被選出來。當(dāng)選出時,控制電路4112從已經(jīng)發(fā)出相關(guān)的存儲塊選擇地址的一條總線取得指令。如果取得了總線A4020-1指令,則控制總線選擇器4113使它向存儲器陣列4111發(fā)送總線A4020-1的地址信號。進一步,控制總線選擇器4114使它將讀出緩沖器4115或?qū)懛糯笃?116與總線A4020-1的數(shù)據(jù)線連接起來。如果取得了總線B4020-2指令,則控制總線選擇器4113使它向存儲器陣列4111發(fā)送總線B4020-2的地址信號。進一步,控制總線選擇器4114使它將讀出緩沖器4115或?qū)懛糯笃?116與總線B4020-2的數(shù)據(jù)線連接起來。如果控制電路4112取得的指令是刷新指令,則總線選擇器4114不需要操作。
如上所述選擇一條總線,然后,作為一系列的連續(xù)操作,連續(xù)地實施字線選擇,存儲單元數(shù)據(jù)放大,或者Read,Write或者Refresh(刷新),和預(yù)充電操作。
圖110A和110B是表示存儲塊操作的定時圖。
圖110A表示讀操作的情形,圖110B表示寫操作的情形。在圖110A和110B所示操作定時,響應(yīng)單個指令實施字線選擇,數(shù)據(jù)放大,或者讀操作或者寫操作,寫回(數(shù)據(jù)恢復(fù))操作和預(yù)充電操作,從而完成要求的操作。
在本發(fā)明(第4方面)中,如果從器件外部輸入端口的指令企圖存取同一個存儲塊,則判優(yōu)電路確定各指令中的哪一個要被執(zhí)行,和各指令中的哪一個不被執(zhí)行。例如,比較指令定時,執(zhí)行較早的指令,而不執(zhí)行(各)其它的指令。當(dāng)存在一個不被執(zhí)行的指令時,產(chǎn)生BUSY信號等并輸出到器件外部。這使得甚至當(dāng)在以DRAM芯為基礎(chǔ)的多端口存儲器中指令存取相互發(fā)生沖突時也可以實施適當(dāng)?shù)拇嫒〔僮鞑崿F(xiàn)適當(dāng)?shù)腂USY控制。
進一步,本發(fā)明具有用于響應(yīng)來自器件外部的指令實施刷新操作的操作模式,和用于響應(yīng)來自內(nèi)部刷新電路的指令實施刷新操作的操作模式。這使得在這樣一種方式,即將預(yù)定外部端口指定作為用于在恒定的間隔接收刷新指令進行刷新管理的端口中用多端口存儲器成為可能,或者使得在這樣一種方式,即當(dāng)所有的外部環(huán)部端口都處于去激活狀態(tài)時內(nèi)部刷新電路開始刷新操作中用多端口存儲器成為可能。因此,本發(fā)明為遵從系統(tǒng)要求的靈活的刷新管理提供了基礎(chǔ)。
下面我們描述本發(fā)明的第5方面。
多端口存儲器具有兩組或多組輸入/輸出端子(即,多個輸入/輸出端口),并實施與接到的信號相應(yīng)的存儲操作。與普通的存儲器不同,可以同時執(zhí)行讀操作和寫操作。例如,如果系統(tǒng)中存在多條總線,如果多個控制器(CPU等)需要用各條總線,則通過將多端口存儲器的輸入/輸出端口與各條總線連接起來能夠制成該系統(tǒng)。這就消除了用特殊設(shè)計的控制邏輯電路(FIFO邏輯電路等)的需要。
而且,我們也將多個端口存儲器開發(fā)成圖象存儲器(一般為雙端口報告存儲器)。圖象存儲器具有隨機存取端口,通過這些端口能夠?qū)崿F(xiàn)到任何存儲單元的存取,和與顯示裝置交換數(shù)據(jù)的串行存取端口。
這類多個端口存儲器在存儲單元區(qū)域中采用SRAM存儲芯或DRAM存儲芯。
然而,我們還必須開發(fā)這樣的多端口存儲器,它們接收在各輸入/輸出端口的不同時鐘信號并與時鐘信號同步地隨機地存取一個存儲單元區(qū)域。即,我們還不知道如何制成電路的詳細(xì)情況和如何控制這種時鐘同步的多端口存儲器。
而且,常規(guī)的多端口存儲器(具體地雙端口存儲器)具有分別對于各組輸入/輸出端口的位線和讀出放大器。因為這個原因,存在存儲器芯的布局尺寸變大,從而不希望地增大多端口存儲器的芯片尺寸的問題。
因此,本發(fā)明的目的是提供允許能夠進行隨機存取的時鐘同步的多端口存儲器。
本發(fā)明的目的是進一步提供在各組輸入/輸出端口接收相互不同的時鐘信號,并以可靠的方式進行操作的多端口存儲器。
而且本發(fā)明的目的是提供能夠通過與其它的輸入/輸出端口的狀態(tài)無關(guān)地接收在任何時間的指令信號驅(qū)動存儲芯的多端口存儲器。
而且本發(fā)明的目的是提供具有減少的芯片尺寸的小的多端口存儲器。
根據(jù)本發(fā)明(第5方面),多個存儲芯中的一些在加到多個輸入/輸出端口的時鐘信號和地址信號的基礎(chǔ)上進行操作。每個輸入/輸出端口包括用于接收時鐘信號的時鐘端子,用于接收與時鐘信號同步地提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端口端子。為各存儲芯提供控制電路。
如果地址信號指示將同一個存儲芯加到兩個或多個輸入/輸出端口,則控制電路使存儲芯響應(yīng)首先接到的地址信號進行操作。即,對于首先接收地址信號的輸入/輸出端口實施存儲操作??梢匀绱硕x存儲芯,使它與各讀出放大器區(qū)域相當(dāng),其中讀出放大器區(qū)域是各讀出放大器區(qū)域在其中一起操作的區(qū)域。由地址信號的上部分選擇存儲芯。由地址信號的下部分選擇存儲芯的存儲單元。通過與首先接到的地址信號上部分對應(yīng)的輸入/輸出端口輸入或輸出到與首先接到的地址信號上部分對應(yīng)的輸入/輸出端口,將由地址信號的下部分選擇的存儲單元的數(shù)據(jù)信號輸入到器件外部或從器件外部輸出。
因為所要做的全部事情就是比較地址信號,所以能夠?qū)⒖刂齐娐分瞥珊唵蔚碾娐贰_@使芯片尺寸減少。
因為每個輸入/輸出端口都具有時鐘端子,所以對于每個輸入/輸出端口能夠分別地控制時鐘信號的頻率。即,能夠使具有不同操作頻率的多個控制器與多端口存儲器連接起來。
在本發(fā)明的多端口存儲器中,在用于取得地址信號的時鐘信號的特定邊沿前的預(yù)定設(shè)置時間安排地址信號??刂齐娐酚迷跁r鐘信號的這個特定邊沿前安排的地址信號確定地址信號到達(dá)的次序。因此,能夠用首先接收的時鐘信號的邊沿確定地址信號到達(dá)的次序。這使在存儲芯開始操作前可以識別具有優(yōu)先權(quán)的輸入/輸出端口,從而實現(xiàn)高速存儲操作。因為在預(yù)定定時(即時鐘信號的邊沿)比較地址信號,所以能夠防止與存儲操作無關(guān)的地址信號的錯誤比較。
根據(jù)本發(fā)明,多個存儲芯中的一些在加到多個輸入/輸出端口的時鐘信號和地址信號的基礎(chǔ)上進行操作。每個輸入/輸出端口包括用于接收時鐘信號的時鐘端子,用于接收與時鐘信號同步地提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端口端子。為各存儲芯提供控制電路。
如果將指示同一個存儲芯的地址信號加到兩個或多個輸入/輸出端口,則控制電路使存儲芯響應(yīng)首先接到的地址信號進行操作。此后,控制電路使存儲芯響應(yīng)地址信號以接收地址信號的次序進行操作。由地址信號的上部分選擇存儲芯。由地址信號的下部分選擇存儲芯的存儲單元。通過與各地址信號對應(yīng)的輸入/輸出端口,連續(xù)地從器件外部輸入由地址信號下部分選擇的存儲單元的數(shù)據(jù)信號或?qū)⒂傻刂沸盘栂虏糠诌x擇的存儲單元的數(shù)據(jù)信號輸出到器件外部。因此,對于所有的接收存儲操作要求的輸入/輸出端口沒有例外地實施存儲操作。
即,在所有時間中多端口存儲器都處于備用狀態(tài)。與多端口存儲器連接的控制器不一定要檢測多端口存儲器的忙碌狀態(tài)。這通過硬件和軟件簡化了控制器的操作。因為所要做的全部事情就是比較地址信號,所以能夠?qū)⒖刂齐娐分瞥珊唵蔚碾娐贰_@使芯片尺寸減少。
因為每個輸入/輸出端口都具有時鐘端子,所以對于每個輸入/輸出端口能夠分別地控制時鐘信號的頻率。即,能夠使具有不同操作頻率的多個控制器與多端口存儲器連接起來。
在本發(fā)明的多端口存儲器中,每個輸入/輸出端口都具有指令端子,用于與控制存儲芯操作的時鐘信號同步地接收指令信號。在每個輸入/輸出端口中,在至少是讀操作和寫操作需要的存儲芯的操作周期兩倍長的間隔上,提供用于激活存儲芯的指令信號。如果多端口存儲器具有2個輸入/輸出端口或4個輸入/輸出端口,則可以分別將指令信號的間隔設(shè)置在操作周期的2倍或操作周期的4倍上。有了這些設(shè)置,多端口存儲器處于響應(yīng)外部控制器的備用狀態(tài)。
如果在比預(yù)定間隔短的間隔上提供指令信號,則指令信號在防止故障方面是無效的。如果將指令信號提供給不同的輸入/輸出端口,則即便間隔不比預(yù)定間隔短也接收這些指令信號。
根據(jù)本發(fā)明,進一步,從存儲單元讀出或?qū)懭氪鎯卧臄?shù)據(jù)通過緩沖器在數(shù)據(jù)輸入/輸出端口和存儲單元之間傳輸。緩沖器在其中存儲具有預(yù)定在數(shù)量上等于兩個或多個存儲單元的位數(shù)的數(shù)據(jù)。
在開始讀操作和寫操作時,例如,將具有預(yù)先確定數(shù)目的數(shù)據(jù)從存儲單元傳輸?shù)骄彌_器。在讀操作中,從緩沖器讀出與各地址信號對應(yīng)的數(shù)據(jù),并從數(shù)據(jù)輸入/輸出端口輸出到外部裝置。在寫操作中,將與各地址信號對應(yīng)的數(shù)據(jù)存儲在緩沖器中,并在寫操作結(jié)束時立即將緩沖器的數(shù)據(jù)寫入存儲單元。
在這種方式中,容易實施頁面操作。一般,當(dāng)頁面操作時存儲芯(讀出放大器等)必須保持在激活狀態(tài)。如果不提供本發(fā)明的緩沖器,則當(dāng)對于輸入/輸出端口實施的頁面操作時不可能對于另一個輸入/輸出端口實施存儲操作。在本發(fā)明中,在開始操作時將存儲單元的數(shù)據(jù)傳輸給緩沖器,使得在這以后能夠立即使存儲芯去激活。結(jié)果,甚至當(dāng)頁面操作時與多端口存儲器連接的控制器也不一定要檢測多端口存儲器的忙碌狀態(tài)。
下面我們參照所附各圖描述本發(fā)明(第5方面)的實施例。
圖111表示根據(jù)本發(fā)明(第5方面)的多端口存儲器的第1實施例。用CMOS工藝在硅基片上形成多端口存儲器M。
多端口存儲器M包括兩個輸入/輸出端口PPRT-A和PORT-B,I/O電路5010,它向端口PPRT-A和PORT-B輸出信號和從端口PPRT-A和PORT-B輸入信號,和多個存儲塊MB。每個存儲塊MB都包括DRAM存儲芯(包括存儲單元,讀出放大器線SA等),并進一步包括圖中未畫出的控制電路,譯碼器等。每個存儲單元包括存儲與數(shù)據(jù)信號值相應(yīng)的電荷的電容器。根據(jù)通過端口PPRT-A和PORT-B提供的行地址信號選擇一個存儲芯。響應(yīng)給定的存儲芯的選擇同時激活在給定的存儲芯中的讀出放大器線SA的所有讀出放大器。即,響應(yīng)激活指令A(yù)CT激活存儲芯,我們將在后面對此進行描述,并選擇在這個存儲芯中的所有的存儲單元區(qū)域。根據(jù)讀出放大器激活后提供的列地址信號在存儲芯上讀出讀數(shù)據(jù)或?qū)懭雽憯?shù)據(jù)。
圖112表示多端口存儲器M的I/O電路5010和存儲塊MB的詳細(xì)情況。在圖中,每條由粗線表示的信號線都由多條線組成。
I/O電路5010包括模寄存器5012a和5012b,時鐘緩沖器5014a和5014b,數(shù)據(jù)輸入/輸出緩沖器5016a和5016b,地址緩沖器/寄存器5018a和5018b,指令緩沖器5020a和5020b,與忙碌緩沖器5022a和5022b,分別與輸入/輸出端口PPRT-A和PORT-B對應(yīng)。模寄存器5012a和5012b是用于從器件外部設(shè)置多端口存儲器M的操作模式的寄存器。
時鐘緩沖器5014a,地址緩沖器/寄存器5018a,和指令緩沖器5020a分別將時鐘信號CLKA,地址信號ADDA和指令信號CMDA加到存儲塊MB上,就如從器件外部加上一樣。數(shù)據(jù)輸入/輸出緩沖器5016a用于從存儲塊MB輸出數(shù)據(jù)信號DQA和將數(shù)據(jù)信號DQA輸入存儲塊MB。忙碌緩沖器5022a向器件外部輸出忙碌信號/BSYA。時鐘緩沖器5014b,地址緩沖器/寄存器5018b,和指令緩沖器5020b分別將時鐘信號CLKB,地址信號ADDB和指令信號CMDB加到存儲塊MB上,就如從器件外部加上一樣。數(shù)據(jù)輸入/輸出緩沖器5016b用于從存儲塊MB輸出數(shù)據(jù)信號DQB和將數(shù)據(jù)信號DQB輸入存儲塊MB。忙碌緩沖器5022b向器件外部輸出忙碌信號/BSYB。時鐘信號CLKA和CLKB,地址信號ADDA和ADDB和指令信號CMDA和CMDB,數(shù)據(jù)信號DQA和DQB,與忙碌信號/BSYA和/BSYB分別通過時鐘端子,地址端子,指令端子,數(shù)據(jù)輸入/輸出端子和忙碌端子進行傳輸。提供激活指令A(yù)CT和操作指令(例如讀指令RD,寫指令WR)等作為用于控制存儲芯操作的指令信號CMDA和CMDB。
提供每個地址信號ADDA和ADDB作為相互分開的行地址信號RA和列地址信號CA。在輸入/輸出端口PPRT-A中,與時鐘信號CLKA的前沿同步地提供行地址信號RA,列地址信號CA和指令信號CMDA。在輸入/輸出端口PPRT-B中,與時鐘信號CLKB的前沿同步地提供行地址信號RB,列地址信號CB和指令信號CMDB。在這個方式中,多端口存儲器M分別接收專門在輸入/輸出端口PPRT-A和PORT-B使用的時鐘信號CLKA和CLKB,并與時鐘信號CLKA和CLKB同步地進行操作。
存儲塊MB包括時鐘緩沖器5024a和5024b,指令鎖存器5026a和5026b,數(shù)據(jù)鎖存器5028a和5028b,行地址鎖存器5030a和5030b,列地址鎖存器5031a和5031b,與列地址鎖存器5032a和5032b,分別與輸入/輸出端口PPRT-A和PORT-B對應(yīng)。存儲塊MB包括判優(yōu)電路5034,控制信號鎖存器5036,列地址計數(shù)器5038和存儲芯5040,它們對于輸入/輸出端口PPRT-A和PORT-B是公用的。存儲芯5040具有與時鐘信號同步地取得指令信號RAS,CAS和WE,行地址信號RA和列地址信號CA的形式。
當(dāng)激活從判優(yōu)電路5034提供的啟動信號/ENA時,與輸入/輸出端口PPRT-A對應(yīng)的模寄存器5012a,時鐘緩沖器5024a,指令鎖存器5026a,數(shù)據(jù)鎖存器5028a,行地址鎖存器5031a,和列地址鎖存器5032a進行操作。當(dāng)激活從判優(yōu)電路5034提供的啟動信號/ENB時,與輸入/輸出端口PPRT-B對應(yīng)的模寄存器5012b,時鐘緩沖器5024b,指令鎖存器5026b,數(shù)據(jù)鎖存器5028b,行地址鎖存器5031b,和列地址鎖存器5032b進行操作。
即,在激活啟動信號/ENA時,時鐘緩沖器5024a向存儲芯5040的時鐘端子CLK提供時鐘信號CLKA。進一步,指令鎖存器5026a向控制信號鎖存器5036提供鎖存的指令信號CMDA,和行地址鎖存器5031a向存儲芯5040的行地址端子RA提供鎖存的行地址信號RA(例如,與上地址位對應(yīng))。而且,列地址鎖存器5032a向列地址計數(shù)器5038提供鎖存的列地址信號CA(例如,與下地址位對應(yīng)),和數(shù)據(jù)鎖存器5028a與存儲芯5040的數(shù)據(jù)輸入/輸出端子DQ和輸入/輸出緩沖器5016a交換數(shù)據(jù)信號。
類似地,在激活啟動信號/ENB時,時鐘緩沖器5024ba向存儲芯5040的時鐘端子CLK提供時鐘信號CLKB。進一步,指令鎖存器5026b向控制信號鎖存器5036提供鎖存的指令信號CMDB,和行地址鎖存器5031b向存儲芯5040的行地址端子RA提供鎖存的列信號RA。而且,列地址鎖存器5032b向列地址計數(shù)器5038提供鎖存的列地址信號CA,和數(shù)據(jù)鎖存器5028b與存儲芯5040的數(shù)據(jù)輸入/輸出端子DQ和輸入/輸出緩沖器5016b交換數(shù)據(jù)信號。
控制信號鎖存器5036根據(jù)接收的指令信號CMDA和CMDB產(chǎn)生用于使存儲芯5040操作的行地址選通信號RAS,列地址選通信號CAS,和寫啟動信號WE,并將產(chǎn)生的信號加到存儲芯5040上。而且,控制信號鎖存器5036向判優(yōu)電路5034提供指示讀操作和寫操作中的一個的讀/寫指令信號RWCMD。
列地址計數(shù)器5038根據(jù)關(guān)于從模寄存器5012a和5012b提供的脈沖串長度的信息以及地址信號ADDA和ADDB產(chǎn)生列地址信號CA,并向存儲芯5040輸出列地址信號。
判優(yōu)電路5034包括地址比較電路5042和判優(yōu)控制電路5044。地址比較電路5042比較在從輸入/輸出端口PPRT-A和PORT-B提供的地址信號ADDA和ADDB之間的行地址信號RA,并決定它們中哪一個較早到達(dá)。判優(yōu)控制電路5044產(chǎn)生忙碌信號/BSYA和/BSYB與啟動信號/ENA和/ENB,用于使內(nèi)部電路根據(jù)地址比較電路5042的比較結(jié)果進行操作。
圖113表示地址比較電路5042的詳細(xì)情況。
地址比較電路5042包括兩個地址匹配電路5042a和一個地址比較器5042b,地址比較器5042b檢測地址到達(dá)的次序。地址匹配電路5042a包括多個EOR電路5042c,每個EOR電路5042c比較在地址信號ADDA和地址信號ADDB之間的行地址信號RA的對應(yīng)位,并進一步包括多個nMOS晶體管5042d,它們與各EOR電路5042c對應(yīng)。每個nMOS晶體管5042d的柵極都與對應(yīng)的EOR電路5042c的輸出端連接,它們的源極接地和它們的漏極相互連接。每個EOR電路5042c,當(dāng)行地址信號RA的位值在輸入/輸出端口PPRT-A和PORT-B之間相互匹配時輸出低電平信號,當(dāng)行地址信號RA的位值不匹配時輸出高電平信號。響應(yīng)來自EOR電路5042c的低電平信號切斷nMOS晶體管5042d,響應(yīng)來自EOR電路5042c的高電平信號接通nMOS晶體管5042d。即,從地址匹配電路5042a輸出的匹配信號/COIN1和/COIN2當(dāng)行地址信號RA的所有的位在對應(yīng)的位之間匹配時變成浮動的,并當(dāng)行地址信號的至少一個位在對應(yīng)的位之間不同時變成低電平信號。將兩個地址匹配電路5042a分別安排在存儲塊MB的上端和下端如圖111所示(即,安排得接近輸入/輸出電路5010)。地址匹配電路5042a接近輸入/輸出電路5010的安排可以縮短地址信號ADDA和ADDB到地址匹配電路5042a的整個路經(jīng)上的傳播延遲。因此,可以在較早的定時比較地址信號ADDA和ADDB,從而得到高速操作。
比較器5042b接收匹配信號/COIN1和/COIN2和時鐘信號CLKA和CLKB,并輸出首先到達(dá)信號/FSTA和/FSTB。
圖114表示比較器5042b的詳細(xì)情況。
比較器5042b包括脈沖發(fā)生器5042e,它們分別與時鐘信號CLKA和CLKB的前沿同步地產(chǎn)生正脈沖PLSA和PLSB,并進一步包括觸發(fā)器5042f,它在它的輸入端子接收脈沖PLSA和PLSB。比較器5042b接收匹配信號/COIN1和/COIN2并輸入到分別輸出脈沖PLSA和PLSB的各倒相器。將在比較器5042b中產(chǎn)生各脈沖信號的NAND門制成小尺寸的電路元件,使得當(dāng)從NAND門輸出的信號具有與匹配信號/COIN1和/COIN2沖突的信號電平時將優(yōu)先權(quán)給予匹配信號/COIN1和/COIN2。觸發(fā)器5042f當(dāng)接收脈沖PLSA時使首先到達(dá)信號/FSTA下降到低電平,當(dāng)接收脈沖PLSB時使首先到達(dá)信號/FSTB下降到低電平。
圖115表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號相互匹配時實施的比較器5042b的操作。在這個例子中,時鐘信號CLKA和CLKB具有相同的周期。
圖113所示的地址匹配電路5042a當(dāng)行地址信號RA匹配時使匹配信號/COIN1和/COIN2處于浮動狀態(tài)(Hi-z)。對應(yīng)地,分別與時鐘信號CLKA和CLKB的前沿同步地產(chǎn)生脈沖PLSA和PLSB(圖115-(a))。圖114所示的觸發(fā)器5042f響應(yīng)在其它信號之前接收的脈沖PLSA使首先到達(dá)信號/FSTA激活(圖115-(b))。在使首先到達(dá)信號/FSTA去激活后使與以后接收的脈沖PLSB對應(yīng)的首先到達(dá)信號/FSTB激活(圖115-(c))。
圖116表示當(dāng)行地址信號RA在輸入/輸出端口PORT-A和PORT-B之間不匹配時比較器5042b的操作。在這個例子中,時鐘信號CLKA和CLKB具有相同的周期。
地址匹配電路5042a當(dāng)行地址信號RA甚至一個位都不匹配時使每個匹配信號/COIN1和/COIN2降到低電平(圖116-(a))。對應(yīng)地,圖114所示的脈沖發(fā)生器5042e迫使脈沖信號PLSA和PLSB降到低電平而與時鐘信號CLKA和CLKB無關(guān)(圖116-(b))。因此,首先到達(dá)信號/FSTA和/FSTB保持在高電平(圖115-(c))。
圖117表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA在時鐘信號CLKA具有一個與時鐘信號CLKB的周期不同的周期的條件下匹配時比較器5042b的操作。在這個例子中,設(shè)置時鐘信號CLKB的周期等于時鐘信號CLKA的周期的兩倍。分別與時鐘信號CLKA和CLKB的前沿同步地取得行地址信號RA。在圖中,實線表示的行地址信號RA說明加到輸入/輸出端口PORT-A和PORT-B的信號,虛線表示的行地址信號RA說明由圖112所示的各行地址鎖存器5030a和5030b鎖存的信號。
當(dāng)行地址信號RA匹配時,以與圖115相同的方式使匹配信號/COIN1和/COIN2處于浮動狀態(tài)(Hi-z)。當(dāng)匹配信號/COIN1和/COIN2處于浮動狀態(tài)(Hi-z)時,圖114所示的脈沖發(fā)生器5042e發(fā)揮作用,使得分別與時鐘信號CLKA和CLKB的前沿同步地產(chǎn)生脈沖信號PLSA和PLSB和首先到達(dá)信號/FSTA和/FSTB。
圖118表示提供給圖112所示的判優(yōu)電路的判優(yōu)控制電路5044。
判優(yōu)控制電路5044包括控制電路5044a和5044b,它們分別與輸入/輸出端口PPRT-A和PORT-B對應(yīng)??刂齐娐?044a接收復(fù)位信號RESETA,延遲時鐘信號DCLKA,有效指令信號ACTA,首先到達(dá)信號/FSTA,忙碌信號/BSYA,并輸出啟動信號/ENA和忙碌信號/BSYB??刂齐娐?044b接收復(fù)位信號RESETB,延遲時鐘信號DCLKB,有效指令信號ACTB,首先到達(dá)信號/FSTB,忙碌信號/BSYB,并輸出啟動信號/ENB和忙碌信號/BSYA。
當(dāng)完成與輸入/輸出端口PPRT-A和PORT-B對應(yīng)的讀或?qū)懖僮鲿r,在各預(yù)定周期中使復(fù)位信號RESETA和RESETB激活。延遲時鐘信號DCLKA和DCLKB是分別通過使時鐘信號CLKA和CLKB延遲得到的。當(dāng)將有效指令A(yù)CT加到輸入/輸出端口PPRT-A和PORT-B時使有效指令信號ACTA和ACTB激活。
圖119表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號匹配時實施的判優(yōu)控制電路5044的操作。在這個例子中,時鐘信號CLKA和CLKB的周期是相同的。與時鐘信號CLKA同步地提供有效指令A(yù)CT,立即接著與時鐘信號CLKB同步地提供有效指令A(yù)CT。
控制電路5044a與延遲時鐘信號DCLKA的前沿同步地取得低電平的首先到達(dá)信號/FSTA,并使忙碌信號/BSYB激活(圖119-(a))。響應(yīng)有效指令信號ACTA的激活和忙碌信號/BSYA的去激活狀態(tài),控制電路5044a激活啟動信號ENA(圖119-(b))。因為控制電路5044b與延遲時鐘信號DCLKB的前沿同步地取得高電平的首先到達(dá)信號/FSTB,所以不激活忙碌信號/BSYA(圖119-(c))。雖然控制電路5044b接受激活狀態(tài)的有效指令信號ACTB,但是因為激活了忙碌信號/BSYB,所以控制電路5044b不激活啟動信號ENB(圖119-(d))。
響應(yīng)啟動信號ENA的激活,將加到輸入/輸出端口PPRT-A的信號傳輸給存儲芯5040。激活存儲芯5040,根據(jù)加到輸入/輸出端口PPRT-A的讀指令RD實施讀操作。在完成讀操作,控制電路5044a響應(yīng)復(fù)位信號RESETA的激活使啟動信號ENA和忙碌信號/BSYB去激活(圖119-(e))。
下面,關(guān)于其操作進一步描述上述多端口存儲器M。
圖120表示當(dāng)加到輸入/輸出PORT-A和PORT-B的行地址信號RA相互匹配時實施的操作。在這個例子中,時鐘信號CLKA和CLKB具有相同的周期,時鐘信號CLKA的相位稍微超前時鐘信號CLKB的相位。通過各模寄存器5012a和5012b將輸入/輸出端口PORT-A和PORT-B的脈沖串長度兩者都設(shè)置得等于4。這里,脈沖串長度是當(dāng)寫或讀操作時輸出和輸入的數(shù)據(jù)項的數(shù)目。
與時鐘信號CLKA的前沿同步地,輸入/輸出端口PORT-A接收有效指令A(yù)CT(指令信號CMDA)和行地址信號RA(地址信號ADDA)(圖120-(a))。在輸入/輸出端口PORT-A接收信號后立即與時鐘信號CLKB的前沿同步地,輸入/輸出端口PORT-B接收有效指令A(yù)CT(指令信號CMDB)和行地址信號RA(地址信號ADDB)(圖120-(b))。這里,指令信號CMDA和CDMB與地址信號ADDA和ADDB在時鐘信號CLKA和CLKB的各前沿前的一個預(yù)先設(shè)置時間ts(即按照定時說明)設(shè)置它們的信號電平。
因為加到端口PORT-B的行地址信號RA與加到端口PORT-A的行地址信號RA相同,所以一個接著一個地產(chǎn)生首先到達(dá)信號/FSTA和/FSTB如圖115所示。判優(yōu)控制電路5044如結(jié)合圖119所描述的響應(yīng)首先到達(dá)信號/FSTA和/FSTB激活啟動信號ENA和忙碌信號/BSYB(圖120-(c)和(d))。在這個方式中,通過用當(dāng)設(shè)置時間ts時提供的行地址信號RA和通過利用具有較早相位的時鐘信號(在本例中為CLKA)的前沿,確定兩個地址信號中首先到達(dá)的一個。此后,與行地址信號RA對應(yīng)的存儲芯5040響應(yīng)啟動信號ENA的激活進行操作(圖120-(e))。
響應(yīng)忙碌信號/BSYB,控制器如與輸入/輸出端口PORT-B連接的CPU認(rèn)定加到多端口存儲器M的有效指令A(yù)CT是無效的。
輸入/輸出端口PORT-A與時鐘信號CLKA的下一個前沿同步地,接收讀指令RD(即指令信號CMDA)和列地址信號CA(地址信號ADDA)(圖120-(f))。輸入/輸出端口PORT-B與時鐘信號CLKB的前沿同步地接收讀指令RD(指令信號CMDB)和列地址信號CA(地址信號ADDB)(圖120-(g))。與各時鐘信號CLKA和CLKB(根據(jù)定時說明)的下一個前沿同步地,在有效指令A(yù)CT后提供讀指令RD(或?qū)懼噶頦R)。與忙碌信號/BUSY有關(guān),輸入/輸出端口PORT-B連接的控制器可以不提供讀指令RD和列地址信號CA。
存儲塊MB連續(xù)地輸出數(shù)據(jù)作為數(shù)據(jù)信號DQA(Q0-Q3)(圖120-(h))如它們是從與加到輸入/輸出端口PORT-A的列地址信號CA對應(yīng)的存儲單元讀出的那樣。在接收讀指令RD后的2個時鐘脈沖,輸出數(shù)據(jù)信號DQA。在輸出與脈沖串長度(=4)一樣多的數(shù)據(jù)信號DQA后,存儲芯5040實施預(yù)充電操作(圖120-(i)),從而完成一個存儲周期。響應(yīng)讀操作的完成使啟動信號ENA去激活(圖120-(j))。這里,預(yù)充電操作使用于將數(shù)據(jù)傳輸?shù)酱鎯卧蛷拇鎯卧獋鬏敵鰜淼奈痪€充電到預(yù)定電位,使與行地址操作有關(guān)的電路去激活。在每個存儲操作中自動地實施預(yù)充電操作。根據(jù)存儲在對應(yīng)的模寄存器中的輸入/輸出端口PORT-A的脈沖串長度或輸入/輸出端口PORT-B的脈沖串長度中較長的一個確定預(yù)充電操作的定時。在這個實施例中,如果脈沖串長度為4,則存儲周期(即單個讀或?qū)懖僮餍枰臅r間周期)被固定在4個時鐘周期。即,總是在接收到有效指令后的預(yù)定時間完成讀操作和寫操作。
與用于輸出數(shù)據(jù)Q1的時鐘信號CLKA同步地,將下一個有效指令A(yù)CT加到輸入/輸出端口PORT-A(圖120-(k))。因為在這個特定的瞬間不將指令信號CMDB加到輸入/輸出端口PORT-B,所以用圖113所示的地址比較電路5042比較行地址信號RA,產(chǎn)生指示不匹配的結(jié)果。因此,不激活忙碌信號/BSYA和/BSYB,只激活啟動信號ENA(圖120-(l))。將首先到達(dá)信號/FSTA和/FSTB保存在高電平,如圖116所示。
存儲芯5040根據(jù)加到輸入/輸出端口PORT-A的行地址信號RA進行操作,如前面描述的那樣(圖120-(m))。存儲塊MB根據(jù)與下面的時鐘信號CLKA同步地提供的讀指令RD和列地址信號CA一個接著一個地輸出數(shù)據(jù)信號DQA(Q0-Q3)(圖120-(n))。
在與輸入/輸出端口PORT-A對應(yīng)的存儲芯5040的操作完成后,將有效指令A(yù)CT和讀指令RD連續(xù)地加到輸入/輸出端口PORT-B(圖120-(o))。因為在這個特定的瞬間不將指令信號CMDA加到輸入/輸出端口PORT-A,所以存儲芯5040對于輸入/輸出端口PORT-B進行操作,從而輸出數(shù)據(jù)信號DQB(圖120-(p))。
雖然在圖中未畫出,但是響應(yīng)與時鐘信號的前沿同步地提供的行地址信號RA和刷新指令實施恢復(fù)在存儲單元的電容器中電荷的刷新操作,其中行地址信號RA確定存儲芯5040要被刷新?;蛘咄ㄟ^輸入/輸出端口PORT-A或者通過輸入/輸出端口PORT-B能夠要求刷新操作。在這個方式中,由一個存儲芯5040的裝置根據(jù)從器件外部提供的地址信號實施刷新操作。
圖121表示當(dāng)時鐘信號CLKA和CLKB相同,時鐘信號CLKA的相位超前時鐘信號CLKB的相位多于半個周期時實施的操作。加到多端口存儲器M的指令信號CMDA和CMDB與地址信號ADDA和ADDB與圖120情形中的相同。
在這個例子中,當(dāng)將有效指令A(yù)CT和行地址信號RA加到輸入/輸出端口PORT-A時(圖121-(a)),還沒有將指令信號CMDB與地址信號ADDB加到輸入/輸出端口PORT-B。因此,激活啟動信號/ENA(圖121-(b)),存儲芯5040對于輸入/輸出端口PORT-A進行操作(圖121-(c))。此后,將有效指令A(yù)CT和與輸入/輸出端口PORT-A相同的行地址信號RA加到輸入/輸出端口PORT-B(圖121-(d))。
圖118所示的控制電路5044b根據(jù)首先到達(dá)信號/FSTA的激活和啟動信號/ENA的激活,激活忙碌信號/BSYB(圖121-(e))。響應(yīng)忙碌信號/BSYB,與輸入/輸出端口PORT-B連接的控制器如CPU認(rèn)定加到多端口存儲器M的有效指令A(yù)CT是無效的。以后的操作與上述圖120的相同。
圖122表示當(dāng)幾乎同時加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA相互不同時的操作。時鐘信號CKLA和CLKB具有相同的時鐘周期,時鐘信號CLKA的相位稍微超前時鐘信號CLKB的相位。通過模寄存器5012對于輸入/輸出端口PORT-A和端口PORT-B兩者都將脈沖串長度設(shè)置得等于4。
當(dāng)行地址信號RA不同時,不同的存儲芯5040進行操作。于是圖114所示的比較器5042b使首先到達(dá)信號/FSTA和/FSTB兩者去激活。即,不進行地址判優(yōu)。判優(yōu)控制電路5044對應(yīng)首先到達(dá)信號/FSTA和/FSTB的去激活狀態(tài)和有效指令信號ACTA和ACTB的激活,使啟動信號/ENA和/ENB激活(圖121-(a)和(b))。結(jié)果,相關(guān)的存儲芯5040響應(yīng)加到輸入/輸出端口PORT-A的有效指令A(yù)CT和行地址信號RA進行操作(圖121-(c)),另一個存儲芯5040響應(yīng)加到輸入/輸出端口PORT-B的有效指令A(yù)CT和行地址信號RA進行操作(圖121-(d))。即,輸入/輸出端口PORT-BA和PORT-B相互獨立地進行操作。因為行地址信號RA相互不同,既不激活忙碌信號/BSYA也不激活忙碌信號/BSYB。
在上述的實施例中,當(dāng)輸入/輸出端口PORT-A和PORT-B接收兩個指示同一個存儲芯5040分別與時鐘信號CLKA和CLKB同步的行地址信號RA時,存儲芯5040對于在兩個行地址信號RA中首先到達(dá)的一個進行操作。即,這樣我們就能夠制成時鐘同步型的多端口存儲器M。
判優(yōu)電路5034通過比較行地址信號RA滿足對它預(yù)期的所有要求,于是能夠通過簡單的配置制成。因此,能夠使多端口存儲器M的芯片尺寸減小。
因為輸入/輸出端口PORT-A和PORT-B具有各自的時鐘端子CLKA和CLKB,所以能夠分別地對輸入/輸出端口PORT-A和PORT-B中的每一個設(shè)置時鐘信號CLKA和CLKB的頻率。即,操作在不同操作頻率上的多個控制器能夠與多端口存儲器M連接。
進一步,用設(shè)置在時鐘信號CLKA和CLKB的相關(guān)前沿前的行地址信號RA決定兩個地址中首先到達(dá)的一個。即,利用地址信號的設(shè)置時間識別首先到達(dá)的一個。因此,在存儲芯5040開始它的操作前能夠識別將給予優(yōu)先權(quán)的輸入/輸出端口,從而實現(xiàn)高速存儲操作。進一步,因為根據(jù)具有較前相位的時鐘信號CLKA(或CLKB)的前沿確定首先到達(dá)的一個,所以能夠進一步提高存儲操作速度。
在判優(yōu)電路5034中,地址比較電路5042比較行地址信號RA,判優(yōu)控制電路5044與用于取得有效指令A(yù)CT的時鐘信號CLKA和CLKB同步地檢查地址匹配。因為總是在預(yù)定定時(即在定時信號的邊沿)相互比較行地址信號RA,所以可以防止由與存儲操作無關(guān)的地址信號引起的存儲芯5040的不正常操作。
圖123表示多端口存儲器的第2實施例和根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法。用相同的數(shù)字標(biāo)記與第1實施例相同的部件,并省略對它們的詳細(xì)描述。
在這個實施例中,以第1實施例的四分之一大小形成存儲塊MB(在圖中用粗線框表示)。即,同時被激活的讀出放大器的數(shù)目是第1實施例的四分之一。除了存儲塊MB的大小外,配置與第1實施例相同。因為圖123的多端口存儲器M具有較少的同時被驅(qū)動的讀出放大器,所以在存儲操作時的功率消耗減少了。
這個實施例能夠產(chǎn)生與上述第1實施例相同的優(yōu)點。此外,在本實施例中能夠降低功率消耗。
圖124表示多端口存儲器的第3實施例和根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法。用相同的數(shù)字標(biāo)記與第1實施例相同的部件,并省略對它們的詳細(xì)描述。
在這個實施例中,在每個存儲塊MB中提供數(shù)據(jù)寄存器(緩沖器)5046a和5046b,它們暫時存儲在數(shù)據(jù)鎖存器5028和存儲芯5040之間的各數(shù)據(jù)信號DQA和DQB。數(shù)據(jù)寄存器5046a和5046b與輸入/輸出端口PORT-A和PORT-B中的任何一個結(jié)合起來進行操作。而且,判優(yōu)電路5034的判優(yōu)控制電路5048不同于第1實施例的判優(yōu)控制電路5044。判優(yōu)控制電路5048不輸出忙碌信號/BSYA和/BSYB,在I/O電路5010中不提供忙碌緩沖器。其它配置幾乎與第1實施例相同。即,在輸入/輸出端口PORT-A和PORT-B中,分別通過時鐘端子,地址端子,指令端子,和數(shù)據(jù)輸入/輸出端子,傳輸時鐘信號CLKA和CLKB,地址信號ADDA和ADDB,指令信號CMDA和CMDB,與數(shù)據(jù)信號DQA和DQB。存儲塊MB包括DRAM存儲芯5040,并進一步包括圖中未畫出的控制電路,譯碼器等。存儲單元包括根據(jù)數(shù)據(jù)信號值存儲電荷的電容器。
甚至當(dāng)輸入/輸出端口PORT-A和PORT-B同時接收對于同一個地址信號RA進行存儲操作的要求時,這個多端口存儲器M也能夠?qū)斎?輸出端口PORT-A和PORT-B兩者實施存儲操作,我們將在后面對此進行描述。因此,如第1實施例那樣不需要向器件外部輸出忙碌信號/BSYA和/BSYB。
在每個輸入/輸出端口PORT-A和PORT-B中,設(shè)置加上有效指令A(yù)CT間隔等于存儲芯5040的操作周期的2倍以上(根據(jù)定時說明)。如果在同一個輸入/輸出端口PORT-A(或PORT-B)中有效指令A(yù)CT間隔小于上面確定的周期,則取消所加的有效指令A(yù)CT。加到不同的輸入/輸出端口的有效指令A(yù)CT的間隔不受限制。
如第1實施例那樣與跟隨用于接收有效指令A(yù)CT的定時的時鐘信號的特定的定時同步地提供讀指令RD和寫指令WR。存儲芯5040隨著它的操作被自動地充電。在這個實施例中,例如,將時鐘信號CLKA和CLKB的周期tCLK設(shè)置在10ns,將脈沖串長度BL設(shè)置在4,將數(shù)據(jù)等待時間DL設(shè)置在4。數(shù)據(jù)等待時間DL定義從輸入讀指令RD到輸出數(shù)據(jù)的時鐘周期的數(shù)目。在模寄存器5012a和5012b中設(shè)置脈沖串長度BL和數(shù)據(jù)等待時間DL。
圖125表示判優(yōu)控制電路5048的詳細(xì)情況。
通過將控制電路5048a和5048b分別加到第1實施例的控制電路5044a和5044b構(gòu)造判優(yōu)控制電路5048。與輸入/輸出端口PORT-A對應(yīng)的控制電路5048a從控制電路5044a接收復(fù)位信號RESETA和反向信號RVS以及啟動信號/ENA0和忙碌信號/BSYB,并輸出啟動信號/ENA。與輸入/輸出端口PORT-B對應(yīng)的控制電路5048b從控制電路5044b接收復(fù)位信號RESETB和反向信號RVS以及啟動信號/ENB0和忙碌信號/BSYA,并輸出啟動信號/ENB。在與第1實施例的啟動信號/ENA和/ENB相同的定時產(chǎn)生啟動信號/ENA0和/ENB0圖126表示當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號相互匹配時實施的判優(yōu)控制電路5048的操作。在這個例子中,時鐘信號CLKA和CLKB的周期是相同的。與時鐘信號CLKA同步地將有效指令A(yù)CT加到輸入/輸出端口PORT-A。此后立即與時鐘信號CLKB同步地將有效指令A(yù)CT加到輸入/輸出端口PORT-B。與輸入/輸出端口PORT-A連接的控制器要求寫操作,與輸入/輸出端口PORT-B連接的控制器要求讀操作。
控制電路5044a和5044b的操作幾乎與上述第1實施例的(圖119)相同??刂齐娐?044a與延遲時鐘信號DCLKA前沿同步地取得低電平的首先到達(dá)信號/FSTA,并激活忙碌信號/BSYB(圖126-(a))。因為控制電路5044b與延遲時鐘信號DCLKB前沿同步地取得高電平的首先到達(dá)信號/FSTB,不激活忙碌信號/BSYA(圖126-(b))??刂齐娐?048a響應(yīng)忙碌信號/BSYB的激活和反向信號RVS的低電平,激活啟動信號/ENA(圖126-(c))??刂齐娐?048b響應(yīng)忙碌信號/BSYA的激活和反向信號RVS的低電平,使啟動信號/ENB去激活(圖126-(d))。
與時鐘信號CLKA和CLKB的下一個定時同步地,分別提供寫指令WR和讀指令RD(圖126-(e))。響應(yīng)寫指令WR和讀指令RD,產(chǎn)生反向信號RVS的控制電路(圖中未畫出)激活反向信號RVS(圖126-(f))。
控制電路5048a和5048b分別響應(yīng)反向信號RVS的激活,切換啟動信號/ENA和/ENB的電平(圖126-(g))。然后,首先實施對于輸入/輸出端口PORT-B的讀操作(圖126-(h))。在完成讀操作后,激活復(fù)位信號RESETB,并使反向信號RVS去激活(圖126-(i))??刂齐娐?048a和5048b響應(yīng)反向信號RVS的去激活,使啟動信號/ENA和/ENB的電平回復(fù)到它們各自原來的電平(圖126-(j))。然后,響應(yīng)啟動信號/ENA的激活實施對于輸入/輸出端口PORT-A的讀操作(圖126-(k))。
在完成讀操作后,激活復(fù)位信號RESETA(圖126-(l)),并使忙碌信號/BSYB去激活(圖126-(m))。控制電路5048a響應(yīng)忙碌信號/BSYB的去激活,使啟動信號/ENA去激活(圖126-(n))。在本實施例的這個方式中,當(dāng)行地址信號RA相同時和當(dāng)?shù)?個到達(dá)的指令要求寫操作,接著第2個到達(dá)的指令要求讀操作時,如此控制存儲芯5040使它首先實施讀操作。在存儲器LSI,如具有多端口存儲器的DRAM中,通過在接收要寫的數(shù)據(jù)后驅(qū)動存儲芯執(zhí)行寫操作,和通過首先驅(qū)動存儲芯然后輸出數(shù)據(jù)實施讀操作。因此,當(dāng)在寫操作后實施讀操作時,全部操作周期通常變成等待時間。在這個實施例中,當(dāng)寫操作和讀相互競爭時首先執(zhí)行讀操作,從而縮短全部操作周期和改善傳輸數(shù)據(jù)信號的數(shù)據(jù)總線的使用效率。
下面,我們描述根據(jù)第3實施例的多端口存儲器M的操作。
圖127表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同的行地址信號RA時實施讀操作的方法。時鐘信號CLKA的相位稍微超前時鐘信號CLKB的相位。即,有效指令A(yù)CT到輸入/輸出端口PORT-A的輸入稍微早于有效指令A(yù)CT進入輸入/輸出端口PORT-B。
對于輸入/輸出端口PORT-A,響應(yīng)有效指令A(yù)CT實施讀操作READ(圖127-(a))。將從存儲單元讀出的數(shù)據(jù)存儲在數(shù)據(jù)寄存器5046a(或5046b)中。然后,對于輸入/輸出端口PORT-B,響應(yīng)有效指令A(yù)CT實施讀操作READ(圖127-(b))。在判優(yōu)電路5034的控制下完成讀操作READA后對于輸入/輸出端口PORT-B實施讀操作READB(圖127-(c))。將通過讀操作READB從存儲單元讀出的數(shù)據(jù)存儲在數(shù)據(jù)寄存器5046b(或5046a)中(圖127-(d))。在這個方式中,甚至當(dāng)將有效指令A(yù)CT和相同的行地址信號RA基本上同時加到輸入/輸出端口PORT-A和PORT-B時,也能夠?qū)τ谳斎?輸出端口PORT-A和PORT-B中的每一個連續(xù)地實施讀操作(或?qū)懖僮?。存儲芯4050在完成讀操作READA和READB中的每一個后自動地實施預(yù)充電操作,從而完成存儲周期。
與圖所示的第5到第8個時鐘信號CLKA同步地輸入讀指令RD后,連續(xù)地輸出存儲在與輸入/輸出端口PORT-A對應(yīng)的寄存器5046a中的檢索數(shù)據(jù)作為輸出數(shù)據(jù)Q1-Q3(圖127-(e))。與圖所示的第5到第8個時鐘信號CLKB同步地輸入讀指令RD后,連續(xù)地輸出存儲在與輸入/輸出端口PORT-B對應(yīng)的寄存器5046b中的檢索數(shù)據(jù)作為輸出數(shù)據(jù)Q1-Q3(圖127-(f))。
輸入/輸出端口PORT-A和PORT-B兩者在第1有效指令A(yù)CT后的4時鐘脈沖,接收下一個有效指令A(yù)CT,進一步分別實施讀操作READA和READB(圖127-(g)和(h))。當(dāng)在每4個時鐘周期中加上有效指令A(yù)CT一次時,能夠連續(xù)地輸出檢索的數(shù)據(jù)而沒有任何間隙(即,無間隙讀)。而且通過在每4個時鐘周期中接收有效指令A(yù)CT一次得到隨機存取操作。
圖128表示當(dāng)將有效指令A(yù)CT和相互不同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時實施讀操作的方法。
對于首先已經(jīng)接收有效指令A(yù)CT和行地址信號RA的輸入/輸出端口PORT-A,響應(yīng)有效指令A(yù)CT實施讀操作READA(圖128-(a))。將從存儲單元讀出的數(shù)據(jù)存儲在數(shù)據(jù)寄存器5046a中(圖128-(b))。然后,輸入/輸出端口PORT-B,響應(yīng)有效指令A(yù)CT實施指向另一個與用于讀操作READA的存儲芯不同的存儲芯5040的讀操作READB(圖128-(c))。即,相互獨立地實施讀操作READA和讀操作READB。將通過讀操作READB從存儲單元讀出的數(shù)據(jù)存儲在數(shù)據(jù)寄存器5046b中(圖128-(d))。
與圖所示的第5到第8個時鐘信號CLKA同步地輸入讀指令RD后,連續(xù)地輸出存儲在寄存器5046a中的檢索數(shù)據(jù)作為輸出數(shù)據(jù)Q0-Q3(圖128-(e))。與圖所示的第5到第8個時鐘信號CLKB同步地輸入讀指令RD后,連續(xù)地輸出存儲在與輸入/輸出端口PORT-B對應(yīng)的寄存器5046b中的檢索數(shù)據(jù)作為輸出數(shù)據(jù)Q0-Q3(圖128-(f))。
輸入/輸出端口PORT-A和PORT-B兩者在第1有效指令A(yù)CT后的4個時鐘脈沖,接收下一個有效指令A(yù)CT,進一步分別實施讀操作READA和READB(圖128-(g)和(h))。
圖129表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同的行地址信號RA時實施寫操作的方法。
在輸入/輸出端口PORT-A和PORT-B中,與跟隨用于接收有效指令A(yù)CT的前沿的下面的各時鐘信號CLKA和CLKB的前沿同步地提供寫指令WR,列地址信號CA和第1寫數(shù)據(jù)Q0和Q0(圖129-(a)和(b))。此后,與各時鐘信號CLKA和CLKB同步地提供寫數(shù)據(jù)Q1-Q3和Q0-Q3(圖129-(c)和(d))。將寫數(shù)據(jù)Q0-Q3和Q0-Q3分別存儲在各數(shù)據(jù)寄存器5046a和5046b中(圖129-(e)和(f))。對于首先接收有效指令A(yù)CT和行地址信號RA的輸入/輸出端口PORT-A,與取得寫數(shù)據(jù)Q3的時鐘信號CLKA的特定的定時同步地實施寫操作WRITEA(圖129-(g))。在完成寫操作WRITEA后實施與輸入/輸出端口PORT-B對應(yīng)的寫操作WRITEB(圖129-(h))。通過寫操作WRITEA和WRITEB,將存儲在各數(shù)據(jù)寄存器5046a和5046b中的寫數(shù)據(jù)Q0-Q3和Q0-Q3寫入與列地址信號CA對應(yīng)的存儲單元,從而完成寫操作。
在寫操作中,在每4個時鐘周期中提供一組寫數(shù)據(jù)一次,使得寫數(shù)據(jù)能夠連續(xù)地進入而沒有任何間隙(即,無間隙寫)。
圖130表示對于輸入/輸出端口PORT-A連續(xù)地實施寫操作和讀操作,和對于輸入/輸出端口PORT-B相繼地實施指向與輸入/輸出端口PORT-A的寫操作的行地址信號RA相同的行地址信號RA的寫操作,和指向與輸入/輸出端口PORT-A的讀操作的行地址信號RA相同的行地址信號RA的寫操作的情形。第1寫操作的定時與圖127相同,并省略對它的說明。
在輸入/輸出端口PORT-B,在與圖127相同的定時提供與第2寫操作對應(yīng)的有效指令A(yù)CT(圖130-(a))。因為不將指令信號加到輸入/輸出端口PORT-A,所以在取得寫數(shù)據(jù)Q0-Q3后立即實施寫操作WRITEB(圖130-(b))。
在輸入/輸出端口PORT-A,與圖所示的第7個時鐘信號CLKA同步地提供下一個有效指令A(yù)CT(圖130-(c))。雖然在圖中未畫出,但是在這個特定的瞬間激活對于輸入/輸出端口PORT-B的啟動信號/ENB。結(jié)果,在完成寫操作WRITEB后實施讀操作READA(圖130-(d))。因為多端口存儲器M以接收各指令的次序執(zhí)行寫操作WRITEB和讀操作READA,所以在完成寫操作前被讀的存儲單元的數(shù)據(jù)不變。
此外,因為輸入/輸出端口PORT-A能夠輸出存儲在與輸入/輸出端口PORT-B對應(yīng)的數(shù)據(jù)寄存器5046b中數(shù)據(jù)作為檢索數(shù)據(jù),所以可以在輸入/輸出端口PORT-B的寫操作WRITEB前實施輸入/輸出端口PORT-A的讀操作READA。
圖131表示對于輸入/輸出端口PORT-A連續(xù)地實施寫操作和讀操作,和對于輸入/輸出端口PORT-B相繼地實施指向與輸入/輸出端口PORT-A的寫操作的行地址信號RA相同的行地址信號RA的讀操作和指向與輸入/輸出端口PORT-A的讀操作的行地址信號RA相同的行地址信號RA的寫操作的情形。對于輸入/輸出端口PORT-A的第1寫操作的定時和對于輸入/輸出端口PORT-B的第1讀操作的定時分別與圖129的寫操作和圖128的讀操作相同。
在輸入/輸出端口PORT-A,與圖所示的第7和第8時鐘信號CLKA同步地提供有效指令A(yù)CT和讀指令(圖131-(a))。因為在這個特定的瞬間不將有效指令A(yù)CT加到輸入/輸出端口PORT-B,所以實施對于輸入/輸出端口PORT-A的讀操作READA(圖131-(b))。
下面,在輸入/輸出端口PORT-B,與圖所示的第8和第9時鐘信號CLKB同步地提供有效指令A(yù)CT和寫指令WR(圖131-(c))。在接收數(shù)據(jù)Q0-Q3后,實施對于輸入/輸出端口PORT-B的寫操作(圖中未畫出)。
圖132表示在時鐘信號CLKA和CLKB具有不同的時鐘周期的情形中當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號相互匹配時實施的操作。在這個例子中,時鐘信號CLKB的周期長度等于時鐘信號CLKA的周期長度的兩倍。
在輸入/輸出端口PORT-A,當(dāng)在每4個時鐘周期中加上一組有效指令A(yù)CT和讀指令RD一次,以與圖127相同的方式實施讀操作。在輸入/輸出端口PORT-B,也當(dāng)在每4個時鐘周期中加上一組有效指令A(yù)CT和讀指令RD一次。向輸入/輸出端口PORT-B輸入第1有效指令A(yù)CT的時間比向輸入/輸出端口PORT-A輸入第1有效指令A(yù)CT的時間晚一些(圖132-(a))。因此,與圖127的情形相同在讀操作READA后實施讀操作READB(圖132-(b))。在兩個讀操作READA之間執(zhí)行與輸入/輸出端口PORT-B的跟隨的有效指令A(yù)CT對應(yīng)的下一個讀操作READB(圖132-(c))。
本實施例能夠提供與上述的第1實施例相同的優(yōu)點。此外,在每個輸入/輸出端口PORT-A和PORT-B中,本實施例用等于存儲芯5040的操作周期的2倍以上的有效指令A(yù)CT的間隔(按照定時說明)。因此,甚至當(dāng)加到輸入/輸出端口PORT-A和PORT-B的行地址信號RA相同,也肯定能夠?qū)τ诿總€端口實施讀操作和寫操作。因此,控制多端口存儲器M的控制器不需要檢測多端口存儲器M的忙碌狀態(tài)。這樣就簡化了控制器的控制(藉助硬件和軟件)。
圖133表示多端口存儲器的第4實施例和根據(jù)本發(fā)明(第5方面)控制多端口存儲器的方法。用相同的數(shù)字標(biāo)記與第1和第3實施例相同的部件,并省略對它們的詳細(xì)描述。
在這個實施例中,提供頁面緩沖器5050a和5050b代替上述第3實施例的數(shù)據(jù)寄存器5046a和5046b。頁面緩沖器5050a和5050b與輸入/輸出端口PORT-A和PORT-B中的至少一個結(jié)合起來進行操作。其它配置幾乎與第3實施例完全相同。
每個頁面緩沖器5050a和5050b都包括鎖存器,其中存儲在存儲芯5040中的所有存儲單元的數(shù)據(jù)。在開始讀操作和寫操作時,將存儲在選出的存儲芯5040的存儲單元中的數(shù)據(jù)讀出到頁面緩沖器5050a(或5050b)。在讀操作中,響應(yīng)列地址信號CA輸出鎖存在頁面緩沖器5050a中的數(shù)據(jù)作為數(shù)據(jù)信號。在寫操作中,首先根據(jù)列地址信號CA將數(shù)據(jù)信號寫入頁面緩沖器5050a。此后,在完成寫操作時將頁面緩沖器5050a的數(shù)據(jù)寫入存儲單元。
下面,我們描述第4實施例多端口存儲器M的操作。
圖134表示當(dāng)輸入/輸出端口PORT-A和PORT-B接收有效指令A(yù)CT和相同的行地址信號RA時實施讀操作的方法。時鐘信號CLKA的相位稍微超前時鐘信號CLKB的相位。即,輸入到輸入/輸出PORT-A的有效指令A(yù)CT比輸入到輸入/輸出PORT-B的有效指令A(yù)CT稍微早一些。
在輸入/輸出端口PORT-A,響應(yīng)有效指令A(yù)CT實施讀操作READA(圖134-(a))。從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并將檢索數(shù)據(jù)存儲在頁面緩沖器5050a(或5050b)中的一個(圖134-(b))。另一方面,在輸入/輸出端口PORT-B,行地址信號RA與加到輸入/輸出端口PORT-A的相同,所以不實施與有效指令A(yù)CT相應(yīng)的讀操作。
在輸入/輸出端口PORT-A,與如圖所示的第1和第5時鐘信號CLKA同步地加上讀指令RD(圖134-(c)和(d))。在接收各讀指令RD后與第5到第12時鐘信號CLKA同步地連續(xù)輸出存儲在頁面緩沖器5050a中的數(shù)據(jù)作為輸出數(shù)據(jù)Q0-Q7(圖134-(e))。即,實施頁面讀操作。
由于同樣的原因,在輸入/輸出端口PORT-B,與如圖所示的第1和第5時鐘信號CLKB同步地加上讀指令RD(圖134-(f)和(g))。在接收各讀指令RD后與第5到第12時鐘信號CLKB同步地連續(xù)輸出存儲在頁面緩沖器5050a中的數(shù)據(jù)作為輸出數(shù)據(jù)Q0-Q7(圖134-(h))。在這個方式中,如果行地址信號RA是相同的,則輸入/輸出端口PORT-A和PORT-B共用一個頁面緩沖器5050a(或5050b)。
輸入/輸出端口PORT-A和PORT-B兩者都在第1有效指令A(yù)CT后的8個時鐘周期,接收下一個有效指令A(yù)CT(圖134-(i)和(j))。因為行地址信號RA是相同的,所以只實施讀操作READA(圖134-(k))。不實施對于輸入/輸出端口PORT-B的讀操作READB。通過在每4個時鐘周期中加上讀指令RD一次能夠連續(xù)地輸出讀數(shù)據(jù)而沒有任何間隙(即,無間隙讀)。
圖135表示當(dāng)將有效指令A(yù)CT和不同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時實施讀操作的方法。與輸入/輸出端口PORT-A對應(yīng)的讀操作的定時和圖134相同。
在首先接收有效指令A(yù)CT和行地址信號RA的輸入/輸出端口PORT-A,響應(yīng)有效指令A(yù)CT實施讀操作READA(圖135-(a))。將從存儲芯5040的所有存儲單元讀出的數(shù)據(jù)存儲在頁面緩沖器5050a中(圖135-(b))。在輸入/輸出端口PORT-B,響應(yīng)有效指令A(yù)CT對于與讀操作READA的不同的存儲芯5040實施讀操作READB(圖135-(c))。即,將由讀操作READB從存儲芯5040的所有存儲單元讀出的數(shù)據(jù)存儲在頁面緩沖器5050b中(圖135-(d))。此后,以與結(jié)合圖134描述的相同方式實施讀操作。在這個方式中,當(dāng)行地址信號RA相互不同時,獨立的實施讀操作READA和讀操作READB,分別將檢索數(shù)據(jù)存儲在各頁面緩沖器5050a和5050b中。
圖136表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,并實施寫操作,接著加上有效指令A(yù)CT和不同的行地址信號RA,導(dǎo)致實施寫操作的情形。
在輸入/輸出端口PORT-A和PORT-B,與時鐘信號CLKA和CLKB的各前沿同步地加上有效指令A(yù)CT和相同的行地址信號RA。圖133所示的判優(yōu)電路5034認(rèn)定輸入/輸出端口PORT-A首先接收有效指令A(yù)CT,并實施讀操作READA(圖136-(a)),以便將數(shù)據(jù)從存儲單元傳輸?shù)巾撁婢彌_器5050a(或5050b)。
從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并存儲在頁面緩沖器5050a(或5050b)中(圖136-(b))。另一方面,在輸入/輸出端口PORT-B,因為行地址信號RA與加到輸入/輸出端口PORT-A的相同,所以響應(yīng)有效指令A(yù)CT不實施讀操作。
此后,在輸入/輸出端口PORT-A,與如圖所示的第1和第5時鐘信號CLKA同步地加上寫指令WD和列地址信號CA(圖136-(c)和(d))。將與鐘信號CLKA同步地連續(xù)加上的寫數(shù)據(jù)Q0-Q7寫入頁面緩沖器5050a中(圖134-(e))。即,實施頁面寫操作。
在輸入/輸出端口PORT-B,與如圖所示的第1和第5時鐘信號CLKB同步地加上寫指令WR和列地址信號CA(圖136-(f)和(g))。將與時鐘信號CLKB同步地一個接一個地加上的寫數(shù)據(jù)Q0-Q7寫入共用的列頁面緩沖器5050a中(圖134-(h))。在這個方式中,如果行地址信號RA相同,則在寫操作中輸入/輸出端口PORT-A和PORT-B共用同一個頁面緩沖器5050a(或5050b)。
在首先接收有效指令A(yù)CT的輸入/輸出端口PORT-A,與取得寫數(shù)據(jù)Q7的時鐘信號CLKA的特定定時同步地實施寫操作WRITEA(圖136-(i))。在完成寫操作WRITEA后實施與輸入/輸出端口PORT-B對應(yīng)的寫操作WRITEB(圖136-(j))。
此后,在輸入/輸出端口PORT-A和PORT-B,與時鐘信號CLKA和CLKB的各前沿同步地加上有效指令A(yù)CT和相互不同的行地址信號RA。圖133所示的判優(yōu)電路5034認(rèn)定首先將有效指令A(yù)CT加到輸入/輸出端口PORT-A,并一個接著一個地實施讀操作READA和READB(圖136-(k)和(l))。
從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并存儲在頁面緩沖器5050a(或5050b)中(圖136-(m))。進一步,從由讀操作READB選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并存儲在另一個頁面緩沖器5050b(或5050a)中(圖136-(n))。
在輸入/輸出端口PORT-A,與如圖所示的第13和第17時鐘信號CLKA同步地加上讀指令RD和列地址信號CA(圖136-(o)和(p))。將與鐘信號CLKA同步地一個接著一個加上的寫數(shù)據(jù)Q0-Q7存儲在頁面緩沖器5050a中(圖136-(q))。
類似地,在輸入/輸出端口PORT-B,與如圖所示的第13和第17時鐘信號CLKB同步地加上寫指令WR和列地址信號CA(圖136-(r)和(s))。將與鐘信號CLKB同步地一個接著一個加上的寫數(shù)據(jù)Q0-Q7寫入頁面緩沖器5050b中(圖136-(t))。在這個方式中,當(dāng)行地址信號RA不同時用頁面緩沖器5050a和5050b。
在首先接收有效指令A(yù)CT和行地址信號RA的輸入/輸出端口PORT-A,與取得寫數(shù)據(jù)Q7的時鐘信號CLKA的特定定時同步地實施寫操作WRITEA(圖136-(u))。在完成寫操作WRITEA后實施與輸入/輸出端口PORT-B對應(yīng)的寫操作WRITEB(圖136-(v))。通過寫操作WRITEA和WRITEB,分別將存儲器在頁面緩沖器5050a和5050b中的寫數(shù)據(jù)Q0-Q7寫入與列地址信號CA對應(yīng)的存儲單元,從而完成寫操作。
圖137表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,實施寫操作,接著加上有效指令A(yù)CT和相同的行地址信號RA,導(dǎo)致在輸入/輸出端口PORT-A實施讀操作和在輸入/輸出端口PORT-B實施寫操作的情形。第1寫操作的定時與圖137相同,我們將省略對它的描述。
在輸入/輸出端口PORT-A和PORT-B,與圖所示的第12時鐘信號CLKA和CLKB的各前沿同步地提供有效指令A(yù)CT和相同的行地址信號RA(圖137-(a)和(b))。圖133所示的判優(yōu)電路5034認(rèn)定首先將有效指令A(yù)CT加到輸入/輸出端口PORT-A,并實施讀操作READA(圖137-(c))。從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并存儲在頁面緩沖器5050a(或5050b)中(圖137-(d))。在輸入/輸出端口PORT-B,因為行地址信號RA與加到輸入/輸出端口PORT-A的信號相同,所以不實施與有效指令A(yù)CT對應(yīng)的寫操作。
此后,在輸入/輸出端口PORT-A,與如圖所示的第13和第17時鐘信號CLKA同步地加上讀指令RD(圖137-(e)和(f))。在接收各讀指令RD后與如圖所示的第17到第24時鐘信號CLKA同步地連續(xù)輸出存儲在頁面緩沖器5050a中的數(shù)據(jù)(圖137-(g))。
在輸入/輸出端口PORT-B,與如圖所示的第13和第17時鐘信號CLKB同步地加上寫指令WR(圖137-(h)和(i))。將與鐘信號CLKB同步地連續(xù)加上的寫數(shù)據(jù)Q0-Q7存儲在共用的頁面緩沖器5050a中(圖137-(j))。
此后,在輸入/輸出端口PORT-B,與取得寫數(shù)據(jù)Q7的時鐘信號CLKB的特定定時同步地實施寫操作WRITEB(圖137-(k))。
圖138表示將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B,實施寫操作和讀操作,接著加上有效指令A(yù)CT和不同的行地址信號RA,導(dǎo)致實施寫操作和讀操作的情形。
在輸入/輸出端口PORT-A和PORT-B,與時鐘信號CLKA和CLKB的前沿同步地提供有效指令A(yù)CT和相同的行地址信號RA(圖138-(a)和(b))。判優(yōu)電路5034確定首先將有效指令A(yù)CT加到輸入/輸出端口PORT-A,并實施讀操作READA(圖138-(c))。從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并將讀出數(shù)據(jù)存儲在頁面緩沖器5050a(或5050b)中(圖137-(d))。另一方面,在輸入/輸出端口PORT-B,行地址信號RA與加到輸入/輸出端口PORT-A的那些相同,所以不實施與有效指令A(yù)CT對應(yīng)的讀操作。
此后,在輸入/輸出端口PORT-A,與第1和第5時鐘信號CLKA同步地加上寫指令WR(圖138-(e)和(f))。將與時鐘信號CLKA同步地連續(xù)加上的寫數(shù)據(jù)Q0-Q7存儲在頁面緩沖器5050a中(圖137-(g))。
在輸入/輸出端口PORT-B,與第1和第5時鐘信號CLKB同步地加上讀指令RD(圖138-(h)和(i))。在接收各讀指令RD后與第5到第12時鐘信號CLKB的定時同步地一個接著一個地輸出存儲在頁面緩沖器5050a中的數(shù)據(jù)作為輸出數(shù)據(jù)Q0-Q7(圖138-(j))。在輸入/輸出端口PORT-A,與取得寫數(shù)據(jù)Q7的時鐘信號CLKA的特定定時同步地實施寫操作WRITEA(圖138-(k))。
然后,在輸入/輸出端口PORT-A和PORT-B,與時鐘信號CLKA和CLKB的前沿同步地提供有效指令A(yù)CT和相互不同的行地址信號RA(圖138-(l)和(m))。判優(yōu)電路5034認(rèn)定首先將有效指令A(yù)CT加到輸入/輸出端口PORT-A,并連續(xù)實施讀操作READA和READB(圖138-(n)和(o))。從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并將讀出的數(shù)據(jù)存儲在頁面緩沖器5050a(或5050b)中的一個(圖138-(p))。進一步,從由讀操作READB選出的存儲芯5040的所有存儲單元讀出數(shù)據(jù),并將讀出的數(shù)據(jù)存儲在頁面緩沖器5050b(或5050a)中的另一個(圖138-(q))。
在輸入/輸出端口PORT-A,與時鐘信號CLKA的第13和第17定時同步地加上寫指令WR(圖138-(r)和(s))。將與時鐘信號CLKA同步地一個接著一個加上的寫數(shù)據(jù)Q0-Q7寫入頁面緩沖器5050a中(圖138-(t))。
類似地,在輸入/輸出端口PORT-B,與時鐘信號CLKA的第13和第17定時同步地加上寫指令WR(圖138-(u)和(v))。將與時鐘信號CLKB同步地一個接著一個加上的寫數(shù)據(jù)Q0-Q7寫入頁面緩沖器5050b中(圖138-(w))。
本實施例能夠提供與上述的第3實施例相同的優(yōu)點。進一步,在本實施例中,用作對于存儲芯5040的所有存儲單元的暫時數(shù)據(jù)存儲的頁面緩沖器5050a和5050b位于數(shù)據(jù)鎖存器5028和存儲芯5040之間。這使多端口存儲器M能夠?qū)嵤╉撁孀x操作和頁面寫操作。
當(dāng)將相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時,共用同一個頁面緩沖器5050a。這防止寫入存儲單元的數(shù)據(jù)通過覆蓋操作被破壞。
當(dāng)將相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B時,響應(yīng)一個端口只實施讀操作。因此,與對于兩個端口實施的各讀操作的情形比較能夠減少操作時的功率消耗。使用頁面緩沖器5050a和5050b甚至當(dāng)實施頁面操作時也消除了對于控制多端口存儲器M,檢測多端口存儲器M的忙碌狀態(tài)的控制器的需要。因此,控制器等的控制(藉助硬件和軟件)變得較容易了。
圖139表示根據(jù)多端口存儲器的第5實施例的多端口存儲器的操作和控制本發(fā)明的多端口存儲器的方法。用相同的數(shù)字標(biāo)記與第4實施例相同的部件,并省略對它們的詳細(xì)描述。
這個實施例具有用于通常的脈沖串操作的讀指令RD和寫指令WR兩者與用于頁面操作的讀指令PRD和寫指令PWR兩者。多端口存儲器M的電路配置基本上與第4實施例相同。
在圖139中,將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B(圖139-(a)和(b))。與時鐘信號CLKA和CLKB的下一個周期同步地,加上讀指令PRD(圖139-(c)和(d)),實施頁面讀操作(圖139-(e))。頁面讀操作的定時與圖134相同,并省略對它的詳細(xì)描述。
此后,將有效指令A(yù)CT和相同的行地址信號RA加到輸入/輸出端口PORT-A和PORT-B(圖139-(f)和(g))。與時鐘信號CLKA和CLKB的下一個周期同步地,加上讀指令RD(圖139-(h)和(i))。對于各輸入/輸出端口PORT-A和PORT-B連續(xù)實施讀操作READA和READB(圖139-(j)和(k))。即完成通常的讀操作(即脈沖串讀操作)。
這個本實施例能夠提供與上述的第4實施例相同的優(yōu)點。因為這個實施例準(zhǔn)備了用于頁面操作的讀指令PRD和PWR以及用于通常操作的讀指令RD和WR,所以多端口存儲器M響應(yīng)所加的指令信號不僅能夠?qū)嵤╉撁娌僮鞫夷軌驅(qū)嵤┩ǔ2僮鳌?br>
上述實施例已經(jīng)指向一個將本發(fā)明用于多路復(fù)用地址信號的地址多路復(fù)用型的多端口存儲器的例子。但是本發(fā)明不限于這些特定的實施例。例如,也可以將本發(fā)明用于同時接收地址信號的地址非多路復(fù)用型的多端口存儲器。
上述實施例已經(jīng)指向一個將本發(fā)明用于具有兩個輸入/輸出端口PORT-A和PORT-B的多端口存儲器M的例子。但是本發(fā)明不限于這些實施例。例如,也可以將本發(fā)明用于具有4個輸入/輸出端口的多端口存儲器。在這個情形中,將所加的有效指令A(yù)CT的間隔(按照定時說明)設(shè)置得等于或大于存儲芯的操作周期的4倍。
在上述實施例中,對將本發(fā)明用于具有同步DRAM存儲芯的多端口存儲器的例子進行了描述。但是本發(fā)明不限于這種形式的實施例。例如,也可以將本發(fā)明用于具有同步SRAM存儲芯的多端口存儲器。
進一步,在上述的多端口存儲器中,可以將對于存儲芯操作的要求作為指令信號輸入。將這樣的指令信號與時鐘信號同步地加到一個輸入/輸出端口的指令端子??梢詫⒃撝噶钚盘柗殖梢粋€用于激活存儲塊的一個特定存儲區(qū)域的有效指令和一個指示在這個存儲區(qū)域中或者實施讀操作或者實施寫操作的動作指令,并且可以連續(xù)地加上這些指令。由于同樣的原因,也可以在時分基礎(chǔ)上一個接著一個地加上地址信號。通過在加上有效指令后的預(yù)定時鐘周期上加上動作指令將讀操作周期和寫操作周期固定在恒定的周期上。
如果存儲塊的存儲單元由DRAM單元構(gòu)成則需要刷新操作。對于由加在任何一個輸入/輸出端口上的地址信號指示的刷新地址實施刷新操作。這個配置能夠使在多端口存儲器中的控制電路的尺寸減到最小,從而能夠減小芯片尺寸。
在讀操作和寫操作后自動地實施將與存儲單元連接的位線復(fù)位到預(yù)定電位的預(yù)充電操作。這使從開始各操作的預(yù)定時間周期內(nèi)完成讀操作和寫操作成為可能。即,能夠?qū)⒆x周期時間和寫周期時間固定為恒定的。
而且,可以為每個輸入/輸出端口提供忙碌端子以便輸出忙碌信號。當(dāng)加到一個輸入/輸出端口的地址信號與加到另一個輸入/輸出端口的地址信號相同時和當(dāng)對于后一個輸入/輸出端口執(zhí)行存儲操作時,輸出忙碌信號。用這種配置,與多端口存儲器連接的控制器很容易知道還沒有實施所要求的操作。
進一步,本發(fā)明不限于這些實施例,而且可以作出不同的變化和修改而沒有偏離本發(fā)明的范圍。
例如,我們已經(jīng)參考為了同步只用一個前沿或一個后沿的配置描述了本發(fā)明的第1到第5方面。然而對于那些熟練的技術(shù)人員來說顯然能夠容易地改變上述任何一個配置,使它與為了同步用前沿和后沿兩者的DDR(雙數(shù)據(jù)速率)操作匹配。我們有意使這樣一個明顯的改變處在本發(fā)明的范圍內(nèi)。
本申請基于向日本專利局提出的日本優(yōu)先權(quán)專利申請2000年12月20日遞交的No.2000-387891,2001年2月9日遞交的No.2001-034361,2001年2月14日遞交的No.2000-037547,2000年12月27日遞交的No.2000-398893和2000年12月27日遞交的No.2000-399052,這里我們將這些專利申請的全部內(nèi)容作為參考。
權(quán)利要求
1.半導(dǎo)體存儲器件,包括一個存儲器陣列;N(N是大于1的整數(shù))個外部端口,每個外部端口都接收第1指令;一個內(nèi)部指令發(fā)生電路,它在內(nèi)部獨立地產(chǎn)生第2指令;其中將由每個外部端口接收的第1指令的最小輸入周期設(shè)置得等于或大于所述半導(dǎo)體存儲器件實施N+1個內(nèi)部操作的周期。
2.權(quán)利要求1所述的半導(dǎo)體存儲器件,進一步包括一個判優(yōu)電路,它使輸入到N個外部端口中的第1指令和第2指令以預(yù)定次序被實施那樣地進行控制。
3.權(quán)利要求1所述的半導(dǎo)體存儲器件,其中所述存儲器陣列基于動態(tài)型存儲單元而實現(xiàn),且第2指令是刷新指令。
4.權(quán)利要求1所述的半導(dǎo)體存儲器件,其中所述N個外部端口中的每一個都包括一個用于接收來自器件外部的時鐘信號的時鐘端子,并與接收的時鐘信號同步地實施輸入/輸出操作。
5.權(quán)利要求4所述的半導(dǎo)體存儲器件,其中N個外部端口中的每一個都包括一個脈沖串型數(shù)據(jù)輸入/輸出裝置,并在第1指令的輸入周期內(nèi)多次實施數(shù)據(jù)的輸入/輸出。
6.權(quán)利要求4所述的半導(dǎo)體存儲器件,其中通過在所述存儲器陣列和一個外部端口之間的一個存取操作輸入/輸出總數(shù)等于一個脈沖串長度的數(shù)據(jù)。
7.權(quán)利要求5所述的半導(dǎo)體存儲器件,其中第1指令包括讀指令和寫指令,所述判優(yōu)電路確定響應(yīng)所述讀指令輸入外部端口的第1定時和用于所述寫指令的脈沖串輸入數(shù)據(jù)的最后一個數(shù)據(jù)項輸入外部端口的第2定時的次序。
8.權(quán)利要求7所述的半導(dǎo)體存儲器件,其中如果對于外部端口在預(yù)定周期中第1定時在第2定時后來到,則所述判優(yōu)電路降低在確定周期中產(chǎn)生的第2指令的優(yōu)先權(quán)。
9.權(quán)利要求8所述的半導(dǎo)體存儲器件,其中如此安置預(yù)定周期使在其中包括第2定時。
10.半導(dǎo)體存儲器件,包括一個存儲器陣列;N(N是大于1的整數(shù))個外部端口,每個外部端口都接收第1指令;一個內(nèi)部指令發(fā)生電路,它在內(nèi)部獨立地產(chǎn)生第2指令;其中如此設(shè)置由每個外部端口接收的第1指令的最小輸入周期使得所述半導(dǎo)體存儲器件在m(m≥2)倍最小輸入周期內(nèi)至少實施n次內(nèi)部操作,其中mN<n<m(N+1)。
11.權(quán)利要求10所述的半導(dǎo)體存儲器件,其中n次內(nèi)部操作包括與第1指令對應(yīng)的mN次操作和與第2指令對應(yīng)的至少一次操作。
12.權(quán)利要求11所述的半導(dǎo)體存儲器件,其中所述存儲器陣列基于動態(tài)型存儲單元而實現(xiàn),且第2指令是刷新指令。
13.權(quán)利要求10所述的半導(dǎo)體存儲器件,進一步包括一個控制電路,它控制所述存儲器陣列;一個指令寄存器,在將第1指令和第2指令傳輸給所述控制電路前暫時將它們存儲在指令寄存器中;和一個判優(yōu)電路,它確定第1指令和第2指令的指令到達(dá)次序,它使第1指令和第2指令以確定的次序傳輸給所述指令寄存器那樣地進行控制。
14.權(quán)利要求13所述的半導(dǎo)體存儲器件,其中所述指令寄存器將第1指令和第2指令傳輸給所述控制電路的定時由所述存儲器陣列的操作周期進行控制。
15.權(quán)利要求14所述的半導(dǎo)體存儲器件,其中所述指令寄存器是移位寄存器。
16.權(quán)利要求14所述的半導(dǎo)體存儲器件,其中所述指令寄存器在完成從所述判優(yōu)電路傳輸過來的指令的收集時產(chǎn)生一個收集完成信號,所述判優(yōu)電路在檢測出收集完成信號時傳輸下一個指令。
17.權(quán)利要求10所述的半導(dǎo)體存儲器件,其中N個外部端口中的每一個都包括一個時鐘輸入電路用于接收來自器件外部的時鐘信號,并與接收的時鐘信號同步地實施輸入/輸出操作。
18.權(quán)利要求17所述的半導(dǎo)體存儲器件,其中N個外部端口中的每一個都包括一個模寄存器,它在其中存儲從器件外部提供的數(shù)據(jù)等待時間的設(shè)置,并輸出帶有由數(shù)據(jù)等待時間設(shè)置指示的數(shù)據(jù)等待時間的數(shù)據(jù)。
19.權(quán)利要求18所述的半導(dǎo)體存儲器件,其中N個外部端口中的每一個都包括一個脈沖串型數(shù)據(jù)輸入/輸出裝置,所述模寄存器在其中存儲從器件外部提供的脈沖串長度設(shè)置,和其中每個外部端口實施許多次數(shù)據(jù)輸入/輸出,其次數(shù)由在第1指令輸入周期內(nèi)的脈沖串長度設(shè)置來指示。
20.權(quán)利要求13所述的半導(dǎo)體存儲器件,其中通過在所述存儲器陣列和一個外部端口之間的一個存取操作輸入/輸出總數(shù)等于一個脈沖串長度的數(shù)據(jù)。
21.權(quán)利要求13所述的半導(dǎo)體存儲器件,其中第1指令包括讀指令和寫指令,所述判優(yōu)電路確定響應(yīng)所述讀指令輸入外部端口的第1定時和用于所述寫指令的脈沖串輸入數(shù)據(jù)的最后一個數(shù)據(jù)項輸入外部端口的第2定時的次序。
22.半導(dǎo)體存儲器件,包括數(shù)量為N的多個外部端口,每個外部端口都接收指令;數(shù)量為N的多條總線,它們與各個外部端口對應(yīng);多個存儲塊,它們與N條總線連接;一個地址比較電路,它比較由輸入到N個各外部端口中的指令存取的地址;和一個判優(yōu)電路,它確定當(dāng)所述地址比較電路根據(jù)地址比較結(jié)果檢測到同一個存儲塊的存取時,執(zhí)行存取同一個存儲塊的指令中的哪一個或哪幾個和不執(zhí)行存取同一個存儲塊的指令中的哪一個或哪幾個。
23.權(quán)利要求22所述的半導(dǎo)體存儲器件,其中所述判優(yōu)電路響應(yīng)不執(zhí)行給定指令的確定結(jié)果,輸出指示不執(zhí)行給定指令的信號。
24.權(quán)利要求23所述的半導(dǎo)體存儲器件,其中從與給定指令對應(yīng)的一個端口輸出指示不執(zhí)行給定指令的信號。
25.權(quán)利要求22所述的半導(dǎo)體存儲器件,其中所述存儲塊包括基于動態(tài)型存儲單元而實現(xiàn)的單元陣列,所述半導(dǎo)體存儲器件包括一個刷新電路,它確定刷新存儲單元的定時,其中在第一模式中,響應(yīng)輸入到N個外部端口中的至少一個端口的刷新指令刷新存儲單元,在第二模式中,在所述刷新電路指示的定時刷新存儲單元。
26.權(quán)利要求25所述的半導(dǎo)體存儲器件,其中當(dāng)所有N個外部端口都處于去激活狀態(tài)中時進行第二模式。
27.權(quán)利要求25所述的半導(dǎo)體存儲器件,進一步包括一個產(chǎn)生要被刷新的地址的刷新地址計數(shù)器,其中所述刷新地址計數(shù)器響應(yīng)從所述判優(yōu)電路發(fā)出的刷新指令對地址進行計數(shù)。
28.權(quán)利要求22所述的半導(dǎo)體存儲器件,其中所述存儲塊中的每一個都包括一個控制電路,所述控制電路響應(yīng)與所述控制電路的存儲塊對應(yīng)的在一條所述總線中的地址檢測結(jié)果,從該條總線取得指令信號。
29.權(quán)利要求28所述的半導(dǎo)體存儲器件,其中所述存儲塊中的每一個都進一步包括一個總線選擇裝置和一個存儲單元陣列,所述總線選擇裝置使所述該條總線與存儲單元陣列連接。
30.權(quán)利要求22所述的半導(dǎo)體存儲器件,其中N個外部端口中的每一個都包括一個電路,它將串行接收的數(shù)據(jù)變換成并行數(shù)據(jù)提供給N條總線中的一條對應(yīng)總線;和一個電路,它將從N條總線中的一條對應(yīng)總線提供的并行數(shù)據(jù)變換成串行數(shù)據(jù)輸出到器件外部。
31.權(quán)利要求30所述的半導(dǎo)體存儲器件,其中輸入到N個各外部端口的指令包括讀指令和寫指令,所述判優(yōu)電路,響應(yīng)將所述讀指令輸入外部端口的定時和將對于所述寫指令的串行輸入數(shù)據(jù)的最后一個數(shù)據(jù)項輸入外部端口的定時,確定指令中的哪一個或哪幾個要被執(zhí)行和指令中的哪一個或哪幾個不被執(zhí)行。
32.多端口存儲器,它包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括用于接收時鐘信號的時鐘端子,用于接收與用于選擇存儲單元的時鐘信號同步提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;和多個控制電路,將每個控制電路提供給一個相應(yīng)的存儲芯,并選擇從一個輸入/輸出端口的數(shù)據(jù)輸入/輸出端子提供的地址信號,以便存取由選出的地址信號指示的存儲單元,其中如果將指示同一個存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則與所述同一個存儲芯對應(yīng)的控制電路使存儲芯根據(jù)首先接到的地址信號進行操作。
33.權(quán)利要求32所述的多端口存儲器,其中在時鐘信號的用于取得地址信號的這樣一個邊沿前將地址信號設(shè)置為預(yù)定設(shè)置時間,和所述控制電路響應(yīng)在所述時鐘信號的邊沿前設(shè)置的地址信號識別首先接收的地址信號。
34.權(quán)利要求33所述的多端口存儲器,其中所述控制電路與由各輸入/輸出端口接收的多于一個的所述時鐘信號中首先接收的時鐘信號的所述邊沿同步地識別首先接收的地址信號。
35.權(quán)利要求32所述的多端口存儲器,其中任何一個輸入/輸出端口都包括一個忙碌端子,用于輸出指示所述同一個存儲芯操作的忙碌信號,該存儲芯響應(yīng)于加到另一個輸入/輸出端口的首先接收的地址信號。
36.權(quán)利要求32所述的多端口存儲器,其中定義存儲芯與各讀出放大器級對應(yīng),其中一個讀出放大器級的各讀出放大器響應(yīng)地址信號同時進行操作。
37.權(quán)利要求32所述的多端口存儲器,其中每個輸入/輸出端口都包括一個指令端子,該指令端于與用于控制存儲芯操作的時鐘信號同步地接收指令信號。
38.權(quán)利要求37所述的多端口存儲器,其中對于讀指令和寫指令,所述指令端子接收用于激活存儲芯的一個特定存儲區(qū)域的有效指令和一個指示對于特定存儲區(qū)域或者實施讀操作或者實施寫操作的動作指令。
39.權(quán)利要求38所述的多端口存儲器,其中所述地址端子接收分別與有效指令和動作指令結(jié)合的用于選擇存儲芯中的特定存儲區(qū)域的地址信號和用于選擇在特定存儲區(qū)域中的存儲單元的地址信號。
40.權(quán)利要求38所述的多端口存儲器,其中在加上有效指令后的確定數(shù)目的時鐘周期中提供動作指令。
41.權(quán)利要求32所述的多端口存儲器,其中存儲單元包括在其中存儲與數(shù)據(jù)信號值對應(yīng)的電荷的電容器。
42.權(quán)利要求41所述的多端口存儲器,其中通過將加到一個輸入/輸出端口中的地址信號用作刷新地址信號,實施重寫電容器中的電荷的刷新操作。
43.權(quán)利要求41所述的多端口存儲器,其中存儲單元與位線連接用于輸入/輸出數(shù)據(jù)信號,在讀操作和寫操作后自動實施用于使位線復(fù)位到預(yù)定電壓的預(yù)充電操作。
44.權(quán)利要求43所述的多端口存儲器,其中在取得有效指令后的預(yù)定時間中完成讀操作和寫操作。
45.多端口存儲器,包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括一個用于接收時鐘信號時鐘端子,用于接收與用于選擇存儲單元的時鐘信號同步提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;和多個控制電路,將每個控制電路提供給一個相應(yīng)的存儲芯,并選擇從一個輸入/輸出端口中的數(shù)據(jù)輸入/輸出端子提供的地址信號,以便存取由選出的地址信號指示的存儲單元,其中如果將指示同一個存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則與所述同一個存儲芯對應(yīng)的控制電路使存儲芯以接收地址信號的次序進行操作。
46.權(quán)利要求45所述的多端口存儲器,其中每個輸入/輸出端口都包括一個用于與控制存儲芯操作的時鐘信號同步地接收指令信號的指令端子,其中以讀操作和寫操作需要的存儲芯的操作周期兩倍長或更長的間隔提供輸入到一個輸入/輸出端口的用于激活存儲芯的各所述指令信號。
47.權(quán)利要求46所述的多端口存儲器,其中如果不能保證間隔地將每個所述的指令信號輸入一個輸入/輸出端口,則使該指令信號無效。
48.權(quán)利要求46所述的多端口存儲器,其中如果將每個所述的指令信號輸入所述輸入/輸出端口中不同的一些端口,則接收在比兩倍操作周期短的間隔中輸入的每個所述的指令信號。
49.權(quán)利要求45所述的多端口存儲器,進一步包括一個用于在其中存儲所述存儲單元的數(shù)據(jù)的緩沖器,其中從所述存儲單元讀出或?qū)懭胨龃鎯卧臄?shù)據(jù)通過所述緩沖器在存儲單元和數(shù)據(jù)輸入/輸出端子之間傳輸。
50.權(quán)利要求45所述的多端口存儲器,其中每個輸入/輸出端口包括與用于控制存儲芯操作的時鐘信號同步地接收指令信號的指令端子。
51.權(quán)利要求50所述的多端口存儲器,其中對于讀操作和寫操作,所述指令端子接收用于激活存儲芯的一個特定存儲區(qū)域的有效指令和指示對于這個特定存儲區(qū)域或者實施讀操作或者實施寫操作的動作指令。
52.權(quán)利要求51所述的多端口存儲器,其中所述地址端子接收分別與有效指令和動作指令結(jié)合的用于選擇存儲芯中的特定存儲區(qū)域的地址信號和用于選擇在特定存儲區(qū)域中的存儲單元的地址信號。
53.權(quán)利要求45所述的多端口存儲器,其中存儲單元包括用于在其中存儲與數(shù)據(jù)信號值對應(yīng)的電荷的電容器。
54.權(quán)利要求53所述的多端口存儲器,其中存儲單元與用于輸入/輸出數(shù)據(jù)信號的位線連接,在讀操作和寫操作后自動實施用于使位線復(fù)位到預(yù)定電壓的預(yù)充電操作。
55.多端口存儲器,包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括用于接收時鐘信號的時鐘端子,用于接收與用于選擇存儲單元的時鐘信號同步提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;多個控制電路,將每個控制電路提供給各存儲芯中對應(yīng)的一個,并選擇從一個輸入/輸出端口的數(shù)據(jù)輸入/輸出端子提供的地址信號以便存取由選出的地址信號指示的存儲單元,一個緩沖器,在其中存儲總量等于兩個或多個存儲單元的數(shù)據(jù),其中從存儲單元讀出或?qū)懭氪鎯卧臄?shù)據(jù)通過所述緩沖器在存儲單元和數(shù)據(jù)輸入/輸出端子之間傳輸。
56.權(quán)利要求55所述的多端口存儲器,其中在開始讀操作時立即將具有預(yù)先確定位數(shù)的數(shù)據(jù)從存儲單元傳輸?shù)剿鼍彌_器,并從所述緩沖器讀出與所述地址信號對應(yīng)的數(shù)據(jù)。
57.權(quán)利要求55所述的多端口存儲器,其中在開始寫操作時立即將具有預(yù)先確定位數(shù)的數(shù)據(jù)從存儲單元傳輸?shù)剿鼍彌_器,并將與所述地址信號對應(yīng)的數(shù)據(jù)存儲在所述緩沖器中,接著在寫操作結(jié)束時立即將存儲在所述緩沖器中的數(shù)據(jù)寫入存儲單元。
58.權(quán)利要求55所述的多端口存儲器,其中如果將指示同一個存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則與所述同一個存儲芯對應(yīng)的控制電路使存儲芯只對首先接到的地址信號進行操作。
59.權(quán)利要求55所述的多端口存儲器,其中每個輸入/輸出端口都包括一個指令端子,用于與控制存儲芯操作的時鐘信號同步地接收指令信號,并且指令信號指示利用所述緩沖器執(zhí)行讀操作和寫操作的頁面操作指令,和不用所述緩沖器執(zhí)行讀操作和寫操作的正常操作指令。
60.權(quán)利要求59所述的多端口存儲器,其中每個存儲芯都包括當(dāng)讀操作和寫操作時被激活的多條字線,正常操作指令包括連續(xù)存取具有相鄰地址并與一條相同字線連接的存儲單元的數(shù)據(jù)的脈沖串操作。
61.控制多端口存儲器的方法,該多端口存儲器包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括用于接收時鐘信號的時鐘端子,用于接收與選擇存儲單元的時鐘信號同步提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;和多個控制電路,將每個控制電路提供給一個對應(yīng)的存儲芯,并選擇從一個輸入/輸出端口的數(shù)據(jù)輸入/輸出端子提供的地址信號以便存取由選出的地址信號指示的存儲單元,所述方法包括如果將共同指示所述存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則在與所述存儲芯對應(yīng)的控制電路的控制下根據(jù)首先接到的地址信號使存儲芯操作的步驟。
62.權(quán)利要求61所述的方法,其中在用于取得地址信號的這樣一個時鐘信號的邊沿前的預(yù)定設(shè)置時間設(shè)置地址信號,所述方法進一步包括響應(yīng)在時鐘信號的所述邊沿前設(shè)置的地址信號在控制電路的控制下識別首先接收的地址信號的步驟。
63.權(quán)利要求62所述的方法,包括與時鐘信號的所述邊沿同步地在控制電路的控制下識別首先接收的地址信號的步驟,該時鐘信號是在由各輸入/輸出端口接收的多于一個的所述時鐘信號中首先被接收的時鐘信號。
64.權(quán)利要求61所述的方法,進一步包括一個輸出忙碌信號的步驟,該忙碌信號指示與加到一個輸入/輸出端口的首先接收的地址信號對應(yīng)的所述存儲芯在操作。
65.控制多端口存儲器的方法,該多端口存儲器包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括用于接收時鐘信號的時鐘端子,用于接收與選擇存儲單元的時鐘信號同步提供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;和多個控制電路,將每個控制電路提供給一個對應(yīng)的存儲芯,并選擇從一個輸入/輸出端口的數(shù)據(jù)輸入/輸出端子提供的地址信號以便存取由選出的地址信號指示的存儲單元,所述方法包括如果將共同指示所述存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則在與所述存儲芯對應(yīng)的控制電路的控制下以接收地址信號的次序使存儲芯操作的步驟。
66.權(quán)利要求65所述的方法,進一步包括一個接收指令信號的步驟,該指令信號用于以讀操作和寫操作需要的存儲芯的操作周期兩倍或更長的間隔由每個輸入/輸出端口激活存儲芯。
67.權(quán)利要求66所述的方法,進一步包括如果不能保證間隔地將指令信號輸入一個輸入/輸出端口則使指令信號無效的步驟。
68.控制多端口存儲器的方法,該多端口存儲器包括具有存儲單元的多個存儲芯;多個輸入/輸出端口,每個都包括用于接收時鐘信號的時鐘端子,用于接收與選擇存儲單元的時鐘信號同步提供的地址信號的各地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端子;多個控制電路,將每個控制電路提供給一個對應(yīng)的存儲芯,并選擇從一個輸入/輸出端口的數(shù)據(jù)輸入/輸出端子提供的地址信號以便存取由選出的地址信號指示的存儲單元;和一個緩沖器,在其中存儲總量等于兩個或多個存儲單元的數(shù)據(jù),所述方法包括通過所述緩沖器在存儲單元和數(shù)據(jù)輸入/輸出端口之間傳輸從存儲單元讀出或?qū)懭氪鎯卧臄?shù)據(jù)的步驟。
69.權(quán)利要求68所述的方法,它包括下列步驟在開始讀操作時立即將預(yù)先確定位數(shù)的數(shù)據(jù)從存儲單元傳輸?shù)剿鼍彌_器;和從所述緩沖器讀出與所述地址信號對應(yīng)的數(shù)據(jù)。
70.權(quán)利要求68所述的方法,它包括下列步驟在開始寫操作時立即將預(yù)先確定位數(shù)的數(shù)據(jù)從存儲單元傳輸?shù)剿鼍彌_器;將與所述地址信號對應(yīng)的數(shù)據(jù)存儲在所述緩沖器中;和在寫操作結(jié)束時立即將存儲在所述緩沖器中的數(shù)據(jù)寫入存儲單元。
71.權(quán)利要求68所述的方法,它進一步包括如果將共同指示所述存儲芯的地址信號輸入兩個或多個輸入/輸出端口,則在與所述存儲芯對應(yīng)的控制電路的控制下只相對首先接到的地址信號使存儲芯操作的步驟。
全文摘要
半導(dǎo)體存儲器件包括數(shù)量為N的多個外部端口,每個外部端口都接收指令,和一個內(nèi)部電路,它在輸入到一個外部端口的指令的最小時間間隔中至少實施N次存取操作。
文檔編號G11C7/00GK1734668SQ200510083508
公開日2006年2月15日 申請日期2001年11月26日 優(yōu)先權(quán)日2000年12月20日
發(fā)明者松崎康郎, 鈴木孝章, 山崎雅文, 川崎健一, 鎌田心之介 申請人:富士通株式會社