欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于動態(tài)隨機(jī)存取存儲器核心的多端口存儲器的制作方法

文檔序號:6783427閱讀:178來源:國知局
專利名稱:基于動態(tài)隨機(jī)存取存儲器核心的多端口存儲器的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及半導(dǎo)體存儲器件,特別是涉及裝備有多個端口的 半導(dǎo)體存儲器。
背景技術(shù)
多端口存儲器,它們是裝備有多個端口的半導(dǎo)體存儲器,可以分 成不同的類型。當(dāng)下文中使用術(shù)語"多端口存儲器"時,它指的是具有 多個端口的存儲器,該多端口存儲器允許從任何一個端口獨立地存取 到一個公共存儲器陣列。這樣一個存儲器可以有一個A端口和一個B 端口 ,并允許對于公共存儲器陣列從與A端口鏈接的CPU和從與B 端口鏈接的CPU獨立地進(jìn)行讀/寫操作。
一個多端口存儲器裝備有一個稱為判優(yōu)器的判優(yōu)電路。判優(yōu)器確 定從多個端口接收的各存取要求的優(yōu)先權(quán),存儲器陣列的控制電路根 據(jù)確定的優(yōu)先權(quán)一個接一個的進(jìn)行存取操作。例如, 一個存取要求越 早到達(dá)一個端口,就會給予該存取越高的優(yōu)先權(quán)。
在這種情形中,因為隨機(jī)地從多個接口存取存儲器陣列,所以在 執(zhí)行了讀或?qū)懙拇嫒〔僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位,從而保證存 儲器陣列已經(jīng)為下一次存取作好了準(zhǔn)備。即,如果響應(yīng)一個來自一個 給定端口的存取使一條字線保持在一個選出的狀態(tài),和如一般在
4DRAM中使用的列存取操作中那樣連續(xù)地動移各列地址以便讀出連續(xù)的數(shù)據(jù),則在該操作期間來自另一個端口的存取將一直等待著。因此,在每次讀或?qū)懖僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位。
常規(guī)地,已經(jīng)典型地將一個SRAM用作一個多端口存儲器的一個存儲器陣列。這是因為一個SRAM允許高速隨機(jī)存取,而且可以進(jìn)行非破壞性讀操作。
在一個具有兩個端口的多端口存儲器中,例如, 一個SRAM存儲單元具有兩組字線和各位線對。 一個端口用一組字線和一個位線對實施讀/寫操作,另 一個端口用另 一組字線和一個位線對實施讀/寫操作。
在這種方式中,能夠從兩個不同的端口獨立地實施讀/寫操作。然而,因為當(dāng)兩個端口企圖在同一時間將數(shù)據(jù)寫入同一存儲單元時不可能同時進(jìn)行兩個寫操作,所以給予一個端口進(jìn)行寫操作的優(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)的概率。進(jìn)一步, 一旦處在BUSY狀態(tài)中,DRAM型多端口存儲器就會受到不能進(jìn)行希望的操作或由于等待時間處理變得很慢這種問題的困擾。
然而,與SRAM型多端口存儲器不同,DRAM型多端口存儲器需要一個周期地進(jìn)行的刷新操作以便保持存儲的信息,從而必須采取某種措施保證適當(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)部電路。
進(jìn)一步,提供一個判優(yōu)電路,該判優(yōu)電路確定一個內(nèi)部電路執(zhí)行輸入到N個外部端口的多個指令時的指令執(zhí)行次序。
在上面描述的本發(fā)明中,當(dāng)指令進(jìn)入N個端口時,所有的與N個端口對應(yīng)的N個指令在任何給定的端口的最小指令周期內(nèi)被一個接著
6一個地執(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)配置以 一種靈活的方式管理刷新操作成為可能。


圖l是用于解釋本發(fā)明原理(第l方面)的圖2是表示當(dāng)只有一個端口正在被使用時實施的一個刷新操作的圖。
圖3A到3C是在2個端口, 3個端口和N個端口的情形中用于解
釋本發(fā)明原理的圖4是表示根據(jù)本發(fā)明(第l方面)的多端口存儲器的第1實施例的方框圖5是與到一個判優(yōu)器的指令輸入有關(guān)的電路方框圖;圖6A和6B是表示判優(yōu)器的一個配置的電路圖;圖7是表示判優(yōu)器操作的定時7圖8是與到一個DRAM芯的地址輸入有關(guān)的電路方框圖;圖9是與數(shù)據(jù)輸出有關(guān)的電路方框圖;圖IO是表示一個傳輸信號發(fā)生電路的配置的電路圖。圖ll是與數(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ā)明(第l方面)的第2實施例的圖24是表示根據(jù)本發(fā)明(第l方面)的多端口存儲器的第2實施例的方框圖25A和25B是用于解釋連續(xù)模式的定時圖26是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時圖27是表示當(dāng)對于A端口的Read指令和B端口的Write指令產(chǎn)生BUSY信號時實施的操作的定時8圖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 1/0系統(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端口兩者都操作在最大時鐘頻率上進(jìn)行 Read操作時實施的操作;
圖55表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進(jìn)行 Read操作時實施的操作;
圖56是表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進(jìn) 行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)器的電路配置的10圖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方面)的一個實施例的多端口存儲
ii器的配置的圖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是表示根椐第1實施例與數(shù)據(jù)輸出有關(guān)的部分的配置的圖89是表示圖88的傳輸信號發(fā)生電路的圖卯是表示根據(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端口兩者都操作在最大時鐘頻率上進(jìn)行
Read操作時實施的操作;
圖96表示當(dāng)A端口和B端口兩者都操作在最大時鐘頻率上進(jìn)行
Read操作時實施的操作;
圖97是表示當(dāng)A端口和B端口兩者操作在最大時鐘頻率上進(jìn)行
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是存儲塊的方框圖IIOA和IIOB是表示存儲塊操作的定時圖lll表示根據(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具有不同周期的條件下
13匹配時比較器的操作;
圖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接收有效指令 ACT和相同的行地址信號RA時實施讀操作的方法;
圖128表示當(dāng)將有效指令A(yù)CT和相互不同的行地址信號RA加到 輸入/輸出端口 PORT-A和PORT-B時實施讀操作的方法;
圖129表示當(dāng)輸入/輸出端口 PORT-A和PORT-B接收有效指令 ACT和相同行地址信號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接收有效指令 ACT和相同的行地址信號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ā)明的各實施例。
1本發(fā)明第1方面
我們首先描述本發(fā)明(第l方面)的原理。
圖l是用于解釋本發(fā)明(第l方面)的原理的圖。雖然圖l表示
用于解釋2個端口情形中的原理的圖,但是即便提供了兩個以上的端 口 (N個端口 )也可以得到相同的操作。
等效于內(nèi)部電路(DRAM芯)操作的兩個周期的時間跨度定義為 外部指令周期的一個周期。即,芯操作周期是外部指令周期的速率的
兩倍。由內(nèi)部存儲器在兩倍速率以指令越早到達(dá)就越早處理指令的這 種次序?qū)M(jìn)入A端口和B端口的指令進(jìn)行處理。然后將輸出數(shù)據(jù)傳送 到每個端口。即,在一個芯操作周期中實施包括選擇一條字線,放大 數(shù)據(jù),選擇一條列線,讀和寫操作,預(yù)沖電操作的一系列操作,從而
對相關(guān)的存儲塊完成一個存取操作。
例如,在與圖1的A端口有關(guān)的外部指令周期的定時Cl,在A 端口進(jìn)入一個Read指令。進(jìn)一步,在一個與B端口有關(guān)的外部指令 周期的定時C1',在B端口進(jìn)入一個Read指令。因為A端口的Read 指令的定時稍微早一些,所以這個Read指令在進(jìn)入B端口的讀指令 之前被執(zhí)行。這里, 一個外部指令周期對應(yīng)于4個時鐘脈沖周期。如 圖1所示,在與1個芯操作周期對應(yīng)的2個時鐘脈沖周期中執(zhí)行和完 成每個Read指令。因此,響應(yīng)在等效于一個外部指令周期的4個時 鐘脈沖周期的時間間隔中進(jìn)入A端口和B端口的Read指令,能夠?qū)?施讀操作,而不會產(chǎn)生一個BUSY狀態(tài)即便來自A端口的讀存取和來 自B端口的讀存取都指向同一個存儲塊。這通過在2個時鐘脈沖周期 中執(zhí)行和完成每個存取來實現(xiàn)。
在這種方式中,即便多個端口同時存取同一個存儲塊,因為內(nèi)部 存儲器能夠以兩倍的速度進(jìn)行相繼的和連續(xù)的處理,所以也不會產(chǎn)生 一個BUSY狀態(tài)。
而且,當(dāng)如圖l所示從器件外部(例如在A端口)給出一個刷新 指令時,在該器件內(nèi)部能夠?qū)嵤┧⑿虏僮鞫粫绊憗碜粤硪粋€端口
16(即本例中的B端口 )的存取。在這種情形中,可以選擇多個端口中 的一個(即圖l例中的A端口 )作為進(jìn)行刷新管理的端口,總是從這 個端口進(jìn)入刷新指令。
而且,數(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)進(jìn)行刷新管理時,控制器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表示在如圖l和圖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,指令寄存器A 17,指令寄存器B 18,刷新地址寄存器19,地址寄存器A 20,地址寄存 器B21,寫數(shù)據(jù)寄存器A22,寫數(shù)據(jù)寄存器B23,傳輸門A 24,和 傳輸門B25。
A端口 11包括模寄存器31, CLK緩沖器32,數(shù)據(jù)I/0電路33, 地址緩沖器34,和指令譯碼器35。進(jìn)一步,B端口 12包括模寄存器 41, CLK緩沖器42,數(shù)據(jù)I/0電路43,地址緩沖器44,和指令譯碼 器45。在A端口 ll和B端口 12,分別與時鐘信號CLKA和CLKB 同步地獨立地建立到外部總線的存取和來自外部總線的存取。模寄存 器31和41能夠在其中存儲對于各端口的模式設(shè)定如數(shù)據(jù)等待時間和 脈沖串長度。在這個實施例中,A端口 11和B端口 12兩者都具有各 自的模寄存器,使每個端口都能進(jìn)行模式設(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進(jìn)行緩沖得到的。用外部 信號CKEA和CKEB暫停各端口的時鐘緩沖器并使各端口去基活。 如果使A端口 11和B端口 12中的一個進(jìn)入去激活狀態(tài),則自刷新 電路13開始它的操作。在模寄存器31和41中進(jìn)行了設(shè)置,使得一個 端口負(fù)責(zé)刷新管理的情形中,當(dāng)負(fù)責(zé)刷新管理的的端口變得不操作時 可以激活自刷新電路13。
進(jìn)一步,DRAM芯包括存儲器陣列51,譯碼器52,控制電路53, WriteAmp(寫放大器)54和讀出緩沖器55。存儲器陣列51在其中存 儲被寫和被讀的數(shù)據(jù),并包括DRAM存儲單元,單元門晶體管,字線, 位線,讀出放大器,列線,列門等。譯碼器52對被存取的地址進(jìn)行譯 碼??刂齐娐?3控制DRAM芯14的操作。WriteAmp 54放大寫入 存儲器陣列51的數(shù)據(jù)。讀出緩沖器55放大從存儲器陣列51讀出的數(shù) 據(jù)。
18將到A端口 11的輸入傳輸給地址寄存器A 20,刷新指令寄存器 16,指令寄存器A17和寫數(shù)據(jù)寄存器A22。進(jìn)一步,將到B端口12 的輸入加到地址寄存器B 21,刷新指令寄存器16,指令寄存器B 18 和寫數(shù)據(jù)寄存器B23。
判優(yōu)器(判優(yōu)電路)15確定指令進(jìn)入的次序,以便確定將用于在 A端口 11和B端口 12之間進(jìn)行處理的優(yōu)先權(quán)給予哪個指令。以確定 的次序,判優(yōu)器15將指令,地址和數(shù)據(jù)(在寫操作的情形中)從各寄 存器傳輸給DRAM芯14。 DRAM芯14根據(jù)接收的數(shù)據(jù)進(jìn)行操作。在 Read指令的情形中,將從DRAM芯14讀出的數(shù)據(jù)傳輸給輸入相應(yīng)指 令的端口,然后將該數(shù)據(jù)從并行數(shù)據(jù)變換成串行數(shù)據(jù),接著與這個端 口的時鐘同步地輸出。
圖5是與輸入到判優(yōu)器15的指令有關(guān)的電路的方框指令譯碼器35包括輸入緩沖器61,指令譯碼器62和(n-l)時 鐘延遲電路63。而且,指令譯碼器45包括輸入緩沖器71,指令譯碼 器72和(n-l)時鐘延遲電路73。指令寄存器A 17包括讀指令寄存器
17- 1和寫指令寄存器17-2。而且,指令寄存器B 18包括讀指令寄存器
18- 1和寫指令寄存器18-2。
在Read指令的情形中,分別通過指令譯碼器62或72將輸入到 輸入緩沖器61或71的指令傳輸給讀指令寄存器17-1或18-1,而沒有 任何定時操作。在Write指令的情形中,由(n-l)時鐘延遲電路63 或73使進(jìn)入的指令延遲(n-l)時鐘,然后在當(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)刷新指令,所以不需要提供多個刷新指令寄存器。進(jì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中的一個加到指令寄存器A 17,指 令寄存器B 18和刷新指令寄存器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-l到80-10每個都具有相同的電路配置, 如圖6B所示,包括NAND電路91和92和倒相器93和94。
將來自指令寄存器A 17的讀指令信號RA2和寫指令信號WA2, 來自指令寄存器B 18的讀指令信號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的 RESETl信號。由倒相器85到87, NAND電路88和倒相器89將這 個RESETl信號變換成脈沖信號,并加到AND電路83-1到83-5。當(dāng) Read指令信號RA31是HIGH時,例如,通過延遲電路84-1產(chǎn)生4吏 其中具有接收到的指令的指令寄存器復(fù)位的信號。
圖7是表示判優(yōu)器15的操作的定時圖。
具有圖7中列舉的名字的信號表示在圖6A的各位置中。圖7是 表示當(dāng)將Read指令加到A端口 ll和B端口 12上時判優(yōu)器15的操作。 如圖7所示,選擇與A端口 ll對應(yīng)的Read指令RA2作為具有優(yōu)先 權(quán)的指令,從而產(chǎn)生RA31,使得芯電路實施讀操作READ-A。響應(yīng) 由此產(chǎn)生的復(fù)位信號RESETl,使讀指令信號RA2復(fù)位。對應(yīng)地,選 擇與B端口 12對應(yīng)的Read指令RB2,從而產(chǎn)生RB31。當(dāng)復(fù)位信號 RESETl變成LOW時,將讀指令信號RB3加到芯電路,從而執(zhí)行讀 操作READ-B。
圖8是與輸入到一個DRAM芯14的地址有關(guān)的電路方框圖。 A端口 11的地址緩沖器34包括輸入緩沖器34-l,傳輸門34-2和 OR ("或")電路34-3。加入具有與從圖5所示的指令譯碼器62輸出 的讀指令信號RA1的前沿對應(yīng)的脈沖的脈沖信號作為加到OR電路 34-3的一個輸入端的RA1P。進(jìn)一步,加入具有與從圖5所示的指令 譯碼器62輸出的寫指令信號WA1的前沿對應(yīng)的脈沖的脈沖信號作為 加到OR電路34-3的另一個輸入端的WA1P。下文中,在它的信號名 稱的未端具有字母"P,,的信號代表具有從對應(yīng)的信號名稱的信號的前 沿產(chǎn)生的脈沖的信號。
B端口 12的地址緩沖器44包括輸入緩沖器44-1,傳輸門44-2和 OR電路44-3。
地址寄存器A 20包括地址鎖存器101,傳輸門102,地址鎖存器 103,傳輸門104,傳輸門105,地址鎖存器106,和傳輸門107。進(jìn)一 步,地址寄存器B 21包括地址鎖存器111,傳輸門112,地址鎖存器 113,傳輸門114,傳輸門115,地址鎖存器116,和傳輸門117。
21刷新地址寄存器19包括刷新地址計數(shù)器/寄存器19-1,倒相器 19-2,和傳輸門19-3。由刷新地址計數(shù)器/寄存器19-1產(chǎn)生和保持刷新 地址。
通過上述電路配置的操作,當(dāng)從器件外輸入Read指令或Write 指令時,將與指令一起進(jìn)入的地址傳輸?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,將地址信號從一個地址鎖存器傳輸 到DRAM芯14。
圖9是與數(shù)據(jù)輸出有關(guān)的電路方框圖。
與數(shù)據(jù)I/0電路33的數(shù)據(jù)輸出有關(guān)的部分包括數(shù)據(jù)鎖存器121, 傳輸門122,數(shù)據(jù)鎖存器123,并行串行變換器124,輸出緩沖器125 和傳輸信號發(fā)生電路126。而且,與數(shù)據(jù)I/0電路43的數(shù)據(jù)輸出有關(guān) 的部分包括數(shù)據(jù)鎖存器131,傳輸門132,數(shù)據(jù)鎖存器133,并行串行 變換器134,輸出緩沖器135和傳輸信號發(fā)生電路136。
從存儲器陣列51讀出的數(shù)據(jù)被讀出緩沖器55放大,分別通過傳 輸門A 24或傳輸門B 25加到數(shù)據(jù)I/O電路33或數(shù)據(jù)I/O電路43。如 果執(zhí)行的指令與從A端口 ll的數(shù)據(jù)讀出有關(guān),則傳輸門A24打開, 而如果執(zhí)行的的指令與從B端口 12的數(shù)據(jù)讀出有關(guān),則傳輸門B 25 打開。以這種方式提供的數(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的配置的電路圖。
22傳輸信號發(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ù)傳輸信號輸出。
圖ll是與數(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ù)寄存器A 22或?qū)憯?shù)據(jù)寄存器B 23。當(dāng)將Write 指令從判優(yōu)器15傳輸?shù)紻RAM芯14時,響應(yīng)表示與Write指令到 DRAM芯14的傳輸相應(yīng)的定時的信號WA3P或WB3P,將寫數(shù)據(jù)寄 存器A 22或?qū)憯?shù)據(jù)寄存器B 23的數(shù)據(jù)傳輸?shù)紻RAM芯14。
圖12是表示當(dāng)連續(xù)進(jìn)入Read指令時實施的操作的定時圖。
A端口 ll和B端口 12分別與具有不同頻率的時鐘信號CLKA和 CLKB同步地操作。在這個例子中,A端口 11用最大時鐘頻率操作, 而B端口 12用較低的時鐘頻率操作。
A端口 ll具有下列設(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ù)地"t妄收Write指令。
如圖15所示,在這些端口的時鐘信號之間可能存在相位差。兩個 端口具有下列設(shè)置寫指令周期=4,數(shù)據(jù)等待時間=4,和脈沖串長度 =4。如從圖可見的那樣,甚至當(dāng)兩個端口都操作在最大時鐘頻率和連 續(xù)輸入Write指令時也能夠進(jìn)行適當(dāng)?shù)牟僮鳌?br> 圖16是表示當(dāng)指令從Read指令改變到Write指令時的各操作的 定時如圖16所示,當(dāng)與"Write— Read"或"Read ■> Write"的指令間 隔比較時指令傳輸"Write — Read "需要一個額外的指令間隔。這是因 為我們傳輸Write指令以便在當(dāng)進(jìn)入脈沖串輸入的最后一個數(shù)據(jù)時的 定時對它進(jìn)行處理。相反地,為了對它進(jìn)行處理傳輸一個Read指令 的定時定義為進(jìn)入Read指令的定時,使得當(dāng)相繼的指令是"Write—
24Read,,時需要提供一個額外的指令間隔。這樣一個需要可以認(rèn)為是將 取脈沖串輸入形式的輸入數(shù)據(jù)變換成并行數(shù)據(jù)這個事實引起的。如果 只輸入一塊數(shù)據(jù)而不是如脈沖串輸入那樣輸入4塊數(shù)據(jù),則甚至當(dāng)兩 個相繼的指令都是"Write^ Read"時也不需要提供一個額外的指令間隔。
在這種如對于一個Write寫指令只輸入一塊數(shù)據(jù)那樣的配置中, 即便用與"Write^ Write"或"Read 4 Read"的情形中相同的指令間 隔,也能夠?qū)τ?Write^ Read"指令連續(xù)性適當(dāng)?shù)剡M(jìn)行操作。
圖17是表示當(dāng)指令從"Read"改變到"Write"時輸入刷新指令的定 時圖。
在圖的頂部,表示出應(yīng)該進(jìn)入刷新指令的定時。在如說明的期間 中在任何定時都能適當(dāng)?shù)剡M(jìn)入刷新指令。例如,即便在圖17所示的定 時輸入刷新指令,刷新指令只有當(dāng)完成前一個Write寫指令時才開始 刷新操作,直到將刷新指令保存在備用狀態(tài)時為止。因此,只要刷新 指令落在與這個備用狀態(tài)對應(yīng)的期間內(nèi)在任何定時都能適當(dāng)?shù)剡M(jìn)入刷
新指令。
圖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ā)出進(jìn)入的指令。
圖21是表示當(dāng)只使一個端口操作時實施的兩倍速率操作的定時
通過使兩個端口中的一個停止操作,可以將到操作端口的指令輸
25入間隔縮短一半。當(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ù)其用度擴(kuò)大存儲器。這同樣應(yīng)用于多端口存儲器的情 形,可能存在為了擴(kuò)大存儲空間提供多個多端口存儲器的情形。
多端口存儲器包括判優(yōu)器,并檢測哪一個指令較早進(jìn)入各端口 ,
接著以檢測出的次序執(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ù)保留在存儲器中, 而如果以相反的次序進(jìn)行操作則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端口 IIA和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ā)明中,進(jìn) 行ROW操作,COLUMM操作和預(yù)充電操作作為 一 系列的連續(xù)執(zhí)行 操作,這定義了單個內(nèi)部操作周期。
在第2實施例中的連續(xù)模式與通常的DRAM的列存取操作相同, 對于同一個存儲單元反復(fù)執(zhí)行一個指令。即,這個模式在ROW操作 后多次執(zhí)行COLUMM操作后進(jìn)行預(yù)充電。當(dāng)連續(xù)地加上對同 一個存 儲單元地址的Write指令時,執(zhí)行后面的指令而不執(zhí)行前面的指令。 這是因為即便相繼地執(zhí)行了這些Write指令,由前面的指令寫入的數(shù) 據(jù)將被后面的指令的數(shù)據(jù)覆蓋。
如圖25A所示,連續(xù)模式允許使操作縮短到比通常內(nèi)部操作的2 個周期短,從而提供額外的時間。將由這個額外時間得到的邊邊緣分 配給在ROW操作和COLUMM操作之間的一個點(下文中將這個邊
27緣稱為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信號。從器
28件接收這個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因為它較后進(jìn)入而被執(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信號,并安排主存儲器和從存儲器對它進(jìn)行檢測。
在圖30的例子中,當(dāng)對于A端口的Write指令和B端口的Write 指令發(fā)生BUSY信號時產(chǎn)生中斷。如將圖28和圖29結(jié)合起來進(jìn)行的 描述那樣,當(dāng)Write和Write的組合產(chǎn)生BUSY信號時只有A端口的 Write指令和B端口的Write指令中的一個被執(zhí)行。結(jié)果,將失去較 早進(jìn)入的數(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實施例的多端口存儲器的地址比較 器,BUSYI/O系統(tǒng),和中斷系統(tǒng)的配置的圖。
地址比較器26比較存儲在地址寄存器中的地址,并當(dāng)A端口 11 的地址和B端口 12的地址之間存在匹配時輸出匹配信號。而且,為 了指出哪兩個地址是匹配地址,產(chǎn)生信號ARA, AWA, ARB和AWB。
30例如,當(dāng)A端口的Write指令的地址和B端口的Write指令的地址 顯示匹配時,將AWA和AWB設(shè)置在"H"。 NAND電路208到210 每個都得到這些信號的一個邏輯NAND,使得Nl, 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輸出的信號Nil設(shè)置在"L"。當(dāng)信號NIO 和Nil處于去激活狀態(tài)時,它們是"H",當(dāng)檢測出BUSY信號或中斷 指令時它們變成"L"。
中斷檢測裝置220檢測從控制器提供的中斷指令,并輸出中斷信 號A或B。給予中斷信號對進(jìn)入的BUSY信號的優(yōu)先權(quán),并將它們作 為信號N10和Nil傳輸出去。
圖31底部所示的三個比較器80-3, 80-5和80-6是判優(yōu)器15A的 比較電路的一部分(請參見圖6A和圖24 )。這些比較器對于需要BUST 確定的指令組合進(jìn)行比較。
圖32是表示一個主器件的操作的定時圖。圖33是表示一個從器 件的操作的定時圖。
這三個定時圖說明A端口的Read指令的地址和B端口的Write
31指令的地址相互匹配的情形。圖32的主器件決定A端口較早,圖33 的從器件決定B端口較早。在這種情形中,主器件的比較器80-3輸 出是"L"的N21和是"H"的N22。進(jìn)一步,從器件的比較器80-3輸出 是"H,,的N21和是"L"的N22。主器件產(chǎn)生BUSY-A信號,從器件在 接收BUSY-A信號時將N10改變成"L"。因為在這個時間點Nl是"L,,, 所以通過NOR("或非")電路221和倒相器222將NIO的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信號時, 需要刪除一個已較早進(jìn)入的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 (延 遲)(tl),當(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), 然后進(jìn)一步由于中斷而反轉(zhuǎn)。這里,由于中斷而反轉(zhuǎn)狀態(tài)的操作與由 于BUSY信號而反轉(zhuǎn)狀態(tài)的操作相同,我們將省略它的詳細(xì)描述。
在上述第2實施例的操作中,設(shè)計從一個給定的指令到下一個接 著的指令擴(kuò)展的指令周期使它甚至在產(chǎn)生BUSY信號或中斷指令后也 不改變。
在圖26中,例如,雖然響應(yīng)ReadA2發(fā)生BUSY信號,ReadA2—ReadA3的指令間隔與ReadAl— ReadA2的指令間隔相同。要求在 Wait期間處理BUSY信號和中斷信號。因為這個原因,當(dāng)由于長的系 統(tǒng)總線,大量的從器件,控制器的慢響應(yīng)等BUSY信號或中斷信號的 交換需要長時間時,就需要較長的Wait期間。
為了消除這個問題,當(dāng)延遲跟隨BUSY信號和中斷信號的下一個 指令輸入時可以擴(kuò)展Wait期間。即,當(dāng)加長Wait期間時可以擴(kuò)展 ReadA2~> ReadA3的指令間隔4吏它比在圖26中的ReadAl—ReadA2 的指令間隔長。
為了延遲一個指令輸入,可以在設(shè)計書中說明指令輸入的延遲, 和可以設(shè)計控制器使它根據(jù)數(shù)據(jù)表進(jìn)行操作。如圖31所示通過加長延 遲電路250的延遲時間達(dá)到Wait期間的擴(kuò)展。如果根據(jù)用度需要調(diào)整 Wait期間,則在延遲電路250中可以提供兩條或多條延遲線,使通過
一個模寄存器的設(shè)置改變延遲長度的設(shè)置成為可能。
當(dāng)Wait期間以這種方式擴(kuò)展時,除了響應(yīng)Write-Write指令組合 產(chǎn)生BUSY信號的情形外在其它情形中也能夠提供長的Wait期間。 考慮到這一點,甚至當(dāng)響應(yīng)Read-Write或Write-Read指令組合出現(xiàn) BUSY信號時控制器也可以發(fā)出 一個中斷指令。
在上面描述的本發(fā)明中,當(dāng)指令進(jìn)入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)部刷新電路實施刷新操作。因為這個配置,允許一個外部端口作 為一個用于刷新管理的端口進(jìn)行操作,以便在恒定的間隔接收刷新指 令,或者如果這個用于刷新管理的端口處在去激活狀態(tài)則內(nèi)部刷新電 路實施刷新操作。這使根據(jù)系統(tǒng)配置以 一種靈活的方式管理刷新操作 成為可能。 下面我們描述本發(fā)明的第3方面。
存在若干種多端口存儲器。下文中,涉及具有多個端口的存儲器, 并允許從各端口相互獨立地存取一個公共存儲器陣列。例如,兩個端 口型的多端口存儲器裝備有A端口和B端口 ,并允許從與A端口鏈接 的CPU-A和從與B端口鏈接的CPU-B獨立地進(jìn)行到公共存儲器的讀 /寫存取。
作為這類多端口存儲器,具有SRAM存儲器陣列的存儲器是已知 的,其中在復(fù)制組中提供各字線和各位線對,每個存儲單元都與2組 字線和位線對連接。然而,這個多端口存儲器具有電路密度低的問題, 其中需要提供字線和位線對的復(fù)制組。
為了消除這個問題,可以用與具有多個處理器配置的計算機(jī)所用 的共用存儲器相同的機(jī)構(gòu)。 一個共用存儲器具有提供給公共存儲器的 多個端口。典型地,將SRAM用作存儲器,并用離散的IC制成多個端口。當(dāng)從多個端口同時進(jìn)行存取時,因為存儲器陣列是共用的,所 以不能同時進(jìn)行與多個端口對應(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信號的機(jī)構(gòu)。
隨機(jī)地從多個接口存取存儲器陣列。因此,不提供在同一個行地 址上連續(xù)地存取相繼的列地址的列存取操作,但是在DRAM中典型地 可以利用這種列存取操作。即,選擇一個存儲單元,為了讀/寫操作存 取該存儲單元,使該存儲單元復(fù)位,所有這些操作都是在響應(yīng)單個存 取時被執(zhí)行的。
當(dāng)完成一個共用存儲器時, 一般,常規(guī)地將SRAM用作存儲器陣 列。這是因為SRAM能夠進(jìn)行高速隨機(jī)存取操作,又,因為不需要刷 新操作,所以很容易使用SRAM。而且,單塊芯片的多端口存儲器通 常具有字線和位線對的復(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組成的存儲器陣 列的多端口存儲器需要由它自己來進(jìn)行刷新操作。
當(dāng)判優(yōu)器輸出忙碌信號時,存在著如上所述使用存儲器相當(dāng)麻煩 的問題。
本發(fā)明的目的是提供具有由DRAM芯組成的存儲器陣列,而且不 需要考慮刷新任何刷新操作就能使用的多端口存儲器,從而以低的成 本提供具有大存儲容量并且容易使用的多端口存儲器。
為了消除上述的問題,配置本發(fā)明的多端口半導(dǎo)體存儲器件使它 能夠在長度為每個外部端口的最小輸入周期m (m22)倍的時間周期 中執(zhí)行n個內(nèi)部操作,其中滿足mN〈n〈m(N+l)。
上述條件要求將N個端口的每一個的最小指令周期設(shè)置在允許N 個內(nèi)部操作周期的時間周期加比單個內(nèi)部操作周期短的時間周期a上。 例如當(dāng)N-2時,將每個端口的最小外部指令周期設(shè)置在允許2個內(nèi)部 操作周期的時間周期加時間周期a上。這里,時間周期a比一個內(nèi)部操 作周期短。
本發(fā)明利用允許2個內(nèi)部操作周期的時間周期以便消除由于判優(yōu) 器輸出忙碌信號引起的存儲器使用麻煩的問題,并利用時間周期a解決 刷新操作問題。
圖73是用于解釋本發(fā)明(第3方面)原理的圖,表示對于兩個端 口實施讀操作的情形。
使到兩個外部端口, A端口和B端口的指令在最小間隔進(jìn)入,在 該間隔中可以實施內(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á)的指令 進(jìn)行控制。
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和B對應(yīng)的兩個操作。因為在一個外
部指令周期中能夠執(zhí)行內(nèi)部操作2.2次,所以DRAM芯將具有在完成 兩個內(nèi)部操作后留下的一個額外時間toc。
當(dāng)內(nèi)部產(chǎn)生刷新指令時,器件的內(nèi)部電路快速操作。這里,快速 意味著執(zhí)行操作而不產(chǎn)生額外時間toc。當(dāng)產(chǎn)生刷新指令時,器件實施 刷新操作。因為同時將指令輸入A端口和B端口,所以要被處理的指 令將積累起來。器件快速地一個接一個地執(zhí)行指令而不提供額外時間 tot。雖然將指令一個接一個地輸入A端口和B端口,但是只有在比外 部指令周期長的間隔發(fā)生刷新指令,只有指令A(yù)和指令B必須被執(zhí)行 直到產(chǎn)生下一個刷新指令。因為內(nèi)部指令的處理速度較快,所以在結(jié) 束時將不會有積累的指令。換句話說,內(nèi)部處理將趕上外部指令的輸 入。此后,器件回到它的例行程序操作。通過考慮到外部端口的數(shù)目, 內(nèi)部操作周期的數(shù)目,刷新間隔等確定額外時間a。
因為當(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í)行刷新操作時,這對外部裝置是完全看不見 的,并且不影響從外部裝置看的器件操作的方式。因此,可以從每個 外部端口進(jìn)行到存儲器的存取而不用考慮其它端口 。
在這個方式中,本發(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)部操作周期的長度上。進(jìn)一步, 一個外部指 令周期對應(yīng)于4個時鐘脈沖周期。與時鐘脈沖同步地以提供數(shù)據(jù)等待 時間為6的方式在單個外部指令周期中從一個外部端口輸出數(shù)據(jù)4次。 所以,如果根據(jù)一個外部指令周期的時鐘脈沖周期的數(shù)目設(shè)置脈沖串 長度,則在兩個端口中都能夠達(dá)到無間隙的讀操作,從而非常大地促 進(jìn)了數(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ù) 時間a需要的持續(xù)時間,就能夠相互獨立地將各外部指令周期設(shè)置在任何定時。
圖75和圖76是表示在2, 3和N個端口的情形中在一個最小外 部指令周期和各內(nèi)部操作周期之間的關(guān)系的圖。如圖所示,如果端口 數(shù)為2,則最小外部指令周期是允許2個內(nèi)部操作的時間長度加上a, 如果端口數(shù)為3,則最小外部指令周期是允許3個內(nèi)部操作的時間長 度加上a。進(jìn)一步,如果端口數(shù)為N,則最小外部指令周期等于其間能 執(zhí)行N+1個內(nèi)部操作的時間長度加上時間長度a。
圖77和圖78A到圖78C是表示根據(jù)本發(fā)明的一個實施例的多端 口存儲器的配置的圖。圖77表示DRAM芯及其相關(guān)電路,圖78A表 示A端口,圖78B表示B端口。進(jìn)一步,圖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ù)從器件外部提供的 各分開的時鐘頻率進(jìn)行操作。將數(shù)據(jù)等待時間和脈沖串長度存儲在模 寄存器3031和3041中,使它們能被分別地設(shè)置。數(shù)據(jù)I/O電路3033 和3043裝備有根據(jù)脈沖串長度實施輸出/輸出數(shù)據(jù)的并行到串行變換 和串行到并行變換的機(jī)構(gòu)。
刷新電路3050包括刷新定時器3051和刷新指令發(fā)生器3052。刷 新定時器3051在預(yù)定間隔上產(chǎn)生刷新開始信號,和刷新指令發(fā)生器 3052對應(yīng)地產(chǎn)生刷新指令。
分別將加到A端口和B端口的指令存儲在指令寄存器A 28A和指 令寄存器B 28B中。分別將地址存儲在地址寄存器A 19A和地址寄存器B 19B中,分別將寫入的數(shù)據(jù)存儲在Write數(shù)據(jù)寄存器A 22A和 Write數(shù)據(jù)寄存器B 22B中。進(jìn)一步,將刷新指令存儲在刷新指令寄 存器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中。進(jìn)一步,指令寄存器3025除了將指令傳輸給DRAM芯3011 的控制電路3014外也將傳輸信號傳輸給對應(yīng)的地址寄存器和對應(yīng)的 數(shù)據(jù)寄存器(在寫操作情形)。在DRAM芯3011中,控制電路3014 響應(yīng)提供的指令,控制譯碼器3013,寫放大器(WriteAmp) 3015, 和讀出緩沖器3016,從而對于存儲器陣列3012實施存取操作。在寫 操作的情形中,譯碼器3013為了進(jìn)行寫操作對存取的地址進(jìn)行譯碼, 以便激活在存儲器陣列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-l)時鐘延遲電路3038, B端口的指令輸入裝 置3045包括輸入緩沖器3046,指令譯碼器3047和(m-l)時鐘延遲 電路3048。這里,n和m是脈沖串長度。而且,如圖80所示,指令 寄存器A包括Read指令寄存器AR和Write指令寄存器AW,指令 寄存器B包括Read指令寄存器BR和Write指令寄存器BW。
輸入緩沖器3036和3046要求以與各時鐘脈沖CLKA1和CLKB1 同步地加上Read指令,指令譯碼器3037和3047進(jìn)行譯碼處理。指 令譯碼器3037和3047在Read指令情形分別產(chǎn)生RA1和RB1,而在 Write指令情形分別產(chǎn)生WA1和WB1。分別將信號RA1和RBI傳輸 給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é)點Nl產(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"脈沖未端Nl變成"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將第l指令(指令l)加到寄存器3085時, 如果DRAM芯3011正在執(zhí)行前一個指令則將指令存儲在寄存器3085 中。FL1變成"H",它斷開SW1,并進(jìn)一步在一個預(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ù) 定延遲時間后進(jìn)一步斷開SW3。當(dāng)DRAM芯處在能接收指令的狀態(tài) 時,產(chǎn)生準(zhǔn)備接收指令信號,打開門3097,使得將寄存器3085的指 令1傳輸給鎖存器3098,然后傳輸給DRAM芯3011。 DRAM芯3011 當(dāng)根據(jù)指令l開始操作時取消準(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", FL2和FL3為"L",所以接上SW2 而斷開SW1和SW3。
復(fù)位數(shù)據(jù)裝置3091與在它左邊的移位寄存器3092的寄存器連接。 提供這個配置的目的是當(dāng)在直到寄存器3087的整條路徑上指令都被 存儲時,用接著的移位信號將寄存器3087的指令移到寄存器3086。 在這個方式中,指令寄存器3025暫時積累從判優(yōu)器3026發(fā)送的指令,
56檢測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后才實施移位操作。因此,進(jìn)行比較以便確定準(zhǔn)備接收指令信號的后沿和指令產(chǎn)生檢測信號的前沿中哪 一 個較早。如果前者較早,則響應(yīng)前者的后沿產(chǎn)生移位信號和禁止傳輸信號,如果后者較早,則響應(yīng)后者的后沿產(chǎn)生移位信號和禁止傳輸信號。圖85和圖86是表示指令寄存器3025操作的圖。這里對關(guān)于在表示輸入指令最擁擠的定時條件的Write—Read指令傳輸?shù)臅r間產(chǎn)生刷新指令的情形進(jìn)行說明。圖中所示的SW1到SW3的數(shù)目指出連接的SW,并說明了連接SW的持續(xù)時間。進(jìn)一步,電阻1到3分別對應(yīng)于寄存器3085到3087。
圖87是表示根據(jù)第1實施例與地址處理有關(guān)的部分的配置的圖。下文中,在它的信號名稱的未端具有字母"P"的信號代表具有從對應(yīng)的信號名稱的信號的前沿產(chǎn)生的脈沖的信號。如圖所示,地址輸入電路3034和3044分別包括輸入緩沖器3057A和3057B,傳輸門3058A和3058B。進(jìn)一步,地址寄存器3019A和地址寄存器3019B分別包括地址鎖存器Al到A4和Bl到B4,傳輸門3059A到3063A和3059B到3063B。通過地址總線3017將從傳輸門3062A, 3062B, 3063A, 3063B提供的地址傳輸?shù)紻RAM芯3011。進(jìn)一步,通過傳輸門3064和地址總線3017將從刷新地址計數(shù)器/寄存器3018提供的刷新地址傳輸?shù)紻RAM芯3011。
當(dāng)從器件外部輸入Read指令或Write指令時,分別通過傳輸門3058A或3058B將加到輸入緩沖器3057A或3057B的地址和輸入指令同時傳輸給地址鎖存器Al或Bl。在Read指令的情形中,通過傳輸門3061A和3063A或3061B和3063B和地址鎖存器A4或B4與到DRAM芯的指令傳輸同步地將地址傳送給DRAM芯3011。在Write指令的情形中,進(jìn)一步在上次數(shù)據(jù)采集的定時將地址傳輸給地址鎖存器A2或B2,然后,與到DRAM芯的指令傳輸同步地通過傳輸門3062A或3062B傳輸給DRAM芯3011。進(jìn)一步,刷新地址計數(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ù)總線
或3065B。
為了輸出數(shù)據(jù)的電路3065A和3065B分別包括數(shù)據(jù)鎖存器Al或Bl,傳輸信號發(fā)生電路3067A和3067B,傳輸門3068A或3068B,數(shù)據(jù)鎖存器A2或B2,并行到串行變換器3070A和3070B,以及輸出緩沖器3071A和3071B。
傳輸門3024A和3024B由DRAM芯3011的控制電路3014根據(jù)內(nèi)部操作進(jìn)行控制。如果執(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ù)進(jìn)行變換,接著分別傳輸給輸出緩沖器3071A和3071B,并從那里輸出。
如圖89所示,傳輸信號發(fā)生電路3067 (即3067A或2067B )采用一系列的觸發(fā)器3072使各Read指令RAl或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傳送給 WriteAmp3015,然后一皮寫入存儲器陣列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-Bl和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ù)鎖 存器Al或Bl)。數(shù)據(jù)鎖存器Al或Bl為數(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端口兩者都操作在最大時鐘頻率 上進(jìn)行Read操作時實施的操作。圖97是表示當(dāng)A端口和B端口兩者 都操作在最大時鐘頻率上進(jìn)行Write操作時實施的操作的圖。在這個 情形中,在這兩個端口的時鐘脈沖信號中可能存在相位差。對于兩個 端口, Read指令周期-4, Write指令周期=4,數(shù)據(jù)等待時間=6,和脈 沖串長度=4。如從圖可見的那樣,在這個情形中也可以適當(dāng)?shù)貙嵤┎?作。
圖98和圖99是表示當(dāng)兩個端口都操作在最高頻率,并用內(nèi)部產(chǎn) 生的刷新指令經(jīng)受從Write寫指令到Read讀指令的改變時實施的操 作的時間圖。這是指令最擁擠的情形。
如所說明的那樣,DRAM芯3011 以 Ref~>Write-Al— Write-Bl4Read-A2—Read-B2的次序進(jìn)行操作,在它們之間沒有任 何間隙。在這個例子中,在輸入Write指令后6個時鐘脈沖輸入 Read-A2和Read-B2。即^f更這些定時超前2個時鐘脈沖,也不可能超 前DRAM芯的內(nèi)部操作。由從輸入Read指令的數(shù)據(jù)等待時間對讀數(shù) 據(jù)的輸出定時進(jìn)行控制。如果Read-A2和Read-B2的輸入定時是超前 的,則也需要使數(shù)據(jù)輸出定時是超前的。例如,如果在Write-Bl后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 4 Write的指令間隔,因為除非完成了 Read數(shù)據(jù)的輸 出,不能將Write數(shù)據(jù)輸入DQ端子中,所以指令間隔不可避免地變 得很長。
圖IOOA和100B是表示DRAM芯3011操作的定時圖。圖100A表示Read操作,圖100B表示W(wǎng)rite操作。如這些圖所示,響應(yīng)單個 指令以字線選擇4數(shù)據(jù)放大—寫回4預(yù)充電的次序?qū)嵤┮幌盗胁僮鳎?從而完成整個操作。當(dāng)接到指令時DRAM芯3011使準(zhǔn)備接收指令信 號去激活,并當(dāng)完成或接近結(jié)束指令的執(zhí)行時產(chǎn)生準(zhǔn)備接收指令信號。 如上所述,本發(fā)明允許當(dāng)以DRAM芯為基礎(chǔ)制成存儲器陣列時使 用多端口存儲器而不需要考慮任何刷新操作,從而以低成本提供有大 容量和容易使用的多端口存儲器。
[本發(fā)明的第4方面
下面我們描述本發(fā)明的第4方面。
多端口存儲器,它們是裝備有多個端口的半導(dǎo)體存儲器,可以分 成不同的類型。當(dāng)下文中使用術(shù)語"多端口存儲器"時,它指的是具有 多端口的存儲器,該存儲器允許從任何一個端口獨立地存取公共存儲 器陣列。這樣一個存儲器可以具有A端口和B端口,并允許對于公共 存儲器陣列從與A端口鏈接的CPU和從與B端口鏈接的CPU獨立地 進(jìn)行讀/寫操作。
一個多端口存儲器裝備有稱為判優(yōu)器的判優(yōu)電路。判優(yōu)器確定從 多個端口接收的存取要求的優(yōu)先權(quán),存儲器陣列的控制電路根據(jù)確定
的優(yōu)先權(quán)一個接一個的進(jìn)行存取操作。例如,存取要求越早到達(dá)端口, 就會給予該存取要求越高的優(yōu)先權(quán)。
在這種情形中,因為隨機(jī)地從多個接口存取存儲器陣列,所以在 執(zhí)行了讀或?qū)懙拇嫒〔僮骱笮枰⒓词勾鎯ζ麝嚵袕?fù)位,從而保證存 儲器陣列為下一次存取作好了準(zhǔn)備。即,如果響應(yīng)來自給定端口的存 取要求使一條字線保持在選擇狀態(tài),和如一般在DRAM中使用的列存 取操作中那樣連續(xù)地動移各列地址以便讀出連續(xù)的數(shù)據(jù),則當(dāng)該操作 期間來自另一個端口的存取要求將一直等待著。因此,在每次讀或?qū)?操作后需要立即使存儲器陣列復(fù)位。
常規(guī)地,已經(jīng)典型地將SRAM用作多端口存儲器的存儲器陣列。 這是因為SRAM允許高速隨機(jī)存取,而且可以進(jìn)行非破壞性讀操作。在具有兩個端口的多端口存儲器中,例如, 一個SRAM存儲單元 具有兩組字線和位線對。 一個端口用一組字線和位線對實施讀/寫操 作,另一個端口用另一組字線和位線對實施讀/寫操作。在這種方式中, 能夠從兩個不同的端口獨立地實施讀/寫操作。然而,因為當(dāng)兩個端口 企圖在同一時間將數(shù)據(jù)寫入同一存儲單元時不可能同時進(jìn)行兩個寫操 作,所以給予一個端口進(jìn)行寫操作的優(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)控制功能。
進(jìn)一步,與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ù)定外部端口指定作為一個用于在恒定的間隔接收刷新指令進(jìn)行刷新管理的端口中用多端口存儲器成為可能,或者使在這樣一種方式,即當(dāng)所有的外部環(huán)部端口都處于去激活狀態(tài)時內(nèi)部刷新電路開始刷新操作中用多端口存儲器成為可能。因此,本發(fā)明為遵從系統(tǒng)要求的靈活的刷新管理提供了基礎(chǔ)。
下面我們將參照所附各圖描述本發(fā)明(第4方面)的實施例。圖101是表示根據(jù)本發(fā)明的多端口存儲器的實施例的方框圖。在這個例子中,配置是這樣的,即提供兩個端口, A端口和B端口。
64圖101的多端口存儲器4010包括A端口 4011, B端口4012,自刷新電路4013,存儲塊4014-1到4014-n,判優(yōu)器4015,刷新地址計數(shù)器4016,地址改變電路4017,地址改變電路4018,地址比較器4019,總線A 4020-1和總線B 4020-2。
A端口4011包括模寄存器4031, CLK緩沖器4032,數(shù)據(jù)I/O電路4033,指令譯碼寄存器4034,地址緩沖器/寄存器4035和BUSY信號1/0裝置4036。進(jìn)一步,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兩者都具有各自的模寄存器,使每個端口都能進(jìn)行模式設(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進(jìn)行緩沖得到的。用外部信號CKEA和CKEB暫停各端口的時鐘緩沖器并使各端口去激活。如果使A端口 4011和B端口 4012兩者都進(jìn)入去激活狀態(tài),則自刷新電路4013開始它的操作。
存儲塊4014-1到4014-n每個都與內(nèi)部總線A 4020-1和內(nèi)部總線B 4020-2連接。存在多個外部端口 (即,A端口和B端口 ),其中A端口 4011通過總線A 4020-1與存儲塊4014-1到4014-n中每一個接口 ,和B端口 4012通過總線A 4020-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確定進(jìn)入兩個端口的存取要求中是否指向同一個存儲塊。詳細(xì)的說,地址比較器4019比較包含在進(jìn)入兩個端口的地址中的塊選擇地址。如果它們是相同的,則將匹配信號加到判優(yōu)器4015。
當(dāng)A端口 4011或B端口 4012處于激活狀態(tài)時,從A端口 4011和B端口 4012輸入刷新指令。
如果進(jìn)入兩個端口中的一個端口的刷新指令存取同一個存儲塊如輸入到兩個端口中的另 一個端口的讀指令或?qū)懼噶钏龅哪菢?,則判優(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ù)信號對地址進(jìn)行計數(shù),從而產(chǎn)生刷新地址。需要從判優(yōu)器4015提供計數(shù)信號的理由是因為如上所述刷新指令能夠被取消,所以計數(shù)操作應(yīng)該只響應(yīng)從判優(yōu)器4015實際發(fā)出的刷新指令進(jìn)行。這里,在實施刷新操作后實施計數(shù)操作。
如果輸入到A端口 4011的指令是Read指令(讀出指令)或Write指令(寫入指令),則地址改變電路4017將從外部輸入到A端口 4011的地址傳輸給總線A 4020-1。如果輸入到A端口 4011的指令是刷新指令,則將由刷新地址計數(shù)器4016產(chǎn)生的地址傳輸給總線A 4020-1。如果輸入到B端口 4012的指令是Read指令(讀出指令)或Write指令(寫入指令),則地址改變電路4018將從外部輸入到B端口 4012的地址傳輸給總線B 4020-2。另一方面,如果輸入到B端口 4012的指令是刷新指令,則將由刷新地址計數(shù)器4016產(chǎn)生的地址傳輸給總線B 4020-2。
如上所述,如果A端口 4011和B端口 4012兩者都處于去基活狀態(tài),則自刷新電路4013根據(jù)作為內(nèi)部電路提供的刷新定時器4046的定時信號產(chǎn)生刷新指令。在這個實施例中,通過總線A 4020-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+l)的Read指令。首先將Read-0輸入到A端口 4011,然后將Read-3輸入到B端口 4012。在這個情形中,存取的存儲塊是不同的,使得存儲塊4014-1和存儲塊4014-4并行地操作。
此后,將Read-l輸入到A端口 4011,接著將Read-l輸入到B端口4012。因為在這個情形中存取的存儲塊是相同的,所以產(chǎn)生匹配信號,取消輸入到B端口 4012的指令。而且,從B端口 4012的BUSY信號I/O裝置4046輸出BUSY-B (負(fù)邏輯值)。
B端口 4012的外部控制器檢測BUSY-B,在切斷這個信號后再次向多端口存儲器4010提供Read-l 。
圖103是表示根據(jù)本發(fā)明的多端口存儲器4010操作的另 一個例子的定時圖。
圖103所示的操作直到將第2個指令Read-l輸入A端口 4011和B端口 4012,產(chǎn)生BUSY-B為止都與圖102的相同。在這個例子中,在響應(yīng)輸入到B端口 4012的Read-l發(fā)生BUSY-B后,為了在BUSY-B結(jié)束前存取另 一個存儲塊進(jìn)入讀指令Read-2。在這個方式中,只要下一個指令是指向另 一個存儲塊的甚至在認(rèn)定BUSY的周期中也能夠輸入下一個指令。
圖104是表示根據(jù)本發(fā)明的多端口存儲器4010操作的又一個例子的定時圖。
圖104的例子表示輸入Write指令的情形。將Read指令輸入A端口40U,接著將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ù)最后一項進(jìn)入前給出了 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-l)時鐘延遲電路4063。指令譯碼器寄存器4044包括輸入緩沖器4(T71,指令譯碼器4(T72和(n-l)時鐘延遲電路40"。
如果輸入到輸入緩沖器4061或4071的指令是Read指令(RA1,RB1)或刷新指令(REFA, REFB),通過指令譯碼器4062或4072將輸入指令傳輸給判優(yōu)器4015而不需要任何定時操作。在Write指令(WA1, WB1)的情形,輸入指令被(n-l)時鐘延遲電路4063或4073延遲(n-l)個時鐘周期,在給出一系列脈沖串寫輸入的最后的第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é)點Nl產(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信號,傳輸門A 4083和傳輸門B 4087兩者都打開,無例外地將寄存器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。進(jìn)一步,N6的LOW狀態(tài)關(guān)閉傳輸門B 4087,不將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指令RBI早的情形。在與上述相同的方式中,節(jié)點N5和N6的信號電平受到節(jié)點N3和N4的信號電平的控制,節(jié)點N3和N4的信號電平反應(yīng)出節(jié)點Nl和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ā)出進(jìn)行數(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ù)。控制 電路4112控制存儲塊4014-1的操作。寫放大器4116放大寫入存儲器 陣列4111的數(shù)據(jù)。讀出緩沖器4115放大從存儲器陣列4111讀出的數(shù) 據(jù)??刂齐娐?112與總線A 4020-1和總線B 4020-2連接,并響應(yīng)與它自己的存儲塊對應(yīng)的相關(guān)的存儲塊選擇地址被選出來。當(dāng)選出時,控制電路4112從已經(jīng)發(fā)出相關(guān)的存儲塊選擇地址的一條總線取得指令。如果取得了總線A 4020-1指令,則控制總線選擇器4113使它向存儲器陣列4111發(fā)送總線A 4020-1的地址信號。進(jìn)一步,控制總線選擇器4114使它將讀出緩沖器4115或?qū)懛糯笃?116與總線A 4020-1的數(shù)據(jù)線連接起來。如果取得了總線B 4020-2指令,則控制總線選擇器4113使它向存儲器陣列4111發(fā)送總線B 4020-2的地址信號。進(jìn)一步,控制總線選擇器4114使它將讀出緩沖器4115或?qū)懛糯笃?116與總線B 4020-2的數(shù)據(jù)線連接起來。如果控制電路4112取得的指令是刷新指令,則總線選擇器4114不需要操作。
如上所述選擇一條總線,然后,作為一系列的連續(xù)操作,連續(xù)地實施字線選擇,存儲單元數(shù)據(jù)放大,或者Read, Write或者Refresh(刷新),和預(yù)充電操作。
圖IIOA和IIOB是表示存儲塊操作的定時圖。
圖110A表示讀操作的情形,圖110B表示寫操作的情形。在圖IIOA和IIOB所示操作定時,響應(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控制。
進(jìn)一步,本發(fā)明具有用于響應(yīng)來自器件外部的指令實施刷新操作的操作模式,和用于響應(yīng)來自內(nèi)部刷新電路的指令實施刷新操作的操作模式。這使得在這樣一種方式,即將預(yù)定外部端口指定作為用于在
72恒定的間隔接收刷新指令進(jìn)行刷新管理的端口中用多端口存儲器成為 可能,或者使得在這樣一種方式,即當(dāng)所有的外部環(huán)部端口都處于去 激活狀態(tài)時內(nèi)部刷新電路開始刷新操作中用多端口存儲器成為可能。 因此,本發(fā)明為遵從系統(tǒng)要求的靈活的刷新管理提供了基礎(chǔ)。
[本發(fā)明的第5方面
下面我們描述本發(fā)明的第5方面。
多端口存儲器具有兩組或多組輸入/輸出端子(即,多個輸入/輸出 端口 ),并實施與接到的信號相應(yīng)的存儲操作。與普通的存儲器不同, 可以同時執(zhí)行讀操作和寫操作。例如,如果系統(tǒng)中存在多條總線,如 果多個控制器(CPU等)需要用各條總線,則通過將多端口存儲器的 輸入/輸出端口與各條總線連接起來能夠制成該系統(tǒng)。這就消除了用特 殊設(shè)計的控制邏輯電路(FIFO邏輯電路等)的需要。
而且,我們也將多個端口存儲器開發(fā)成圖象存儲器(一般為雙端 口報告存儲器)。圖象存儲器具有隨機(jī)存取端口,通過這些端口能夠 實現(xiàn)到任何存儲單元的存取,和與顯示裝置交換數(shù)據(jù)的串行存取端口 。
這類多個端口存儲器在存儲單元區(qū)域中采用SRAM存儲芯或 DRAM存儲芯。
然而,我們還必須開發(fā)這樣的多端口存儲器,它們接收在各輸入/ 輸出端口的不同時鐘信號并與時鐘信號同步地隨機(jī)地存取一個存儲單 元區(qū)域。即,我們還不知道如何制成電路的詳細(xì)情況和如何控制這種 時鐘同步的多端口存儲器。
而且,常規(guī)的多端口存儲器(具體地雙端口存儲器)具有分別對 于各組輸入/輸出端口的位線和讀出放大器。因為這個原因,存在存儲 器芯的布局尺寸變大,從而不希望地增大多端口存儲器的芯片尺寸的 問題。
因此,本發(fā)明的目的是提供允許能夠進(jìn)行隨機(jī)存取的時鐘同步的 多端口存儲器。
本發(fā)明的目的是進(jìn)一步提供在各組輸入/輸出端口接收相互不同的時鐘信號,并以可靠的方式進(jìn)行操作的多端口存儲器。
而且本發(fā)明的目的是提供能夠通過與其它的輸入/輸出端口的狀
態(tài)無關(guān)地接收在任何時間的指令信號驅(qū)動存儲芯的多端口存儲器。
而且本發(fā)明的目的是提供具有減少的芯片尺寸的小的多端口存儲器。
根據(jù)本發(fā)明(第5方面),多個存儲芯中的一些在加到多個輸入/ 輸出端口的時鐘信號和地址信號的基礎(chǔ)上進(jìn)行操作。每個輸入/輸出端 口包括用于接收時鐘信號的時鐘端子,用于接收與時鐘信號同步地提 供的地址信號的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出 端口端子。為各存儲芯提供控制電路。
如果地址信號指示將同一個存儲芯加到兩個或多個輸入/輸出端 口,則控制電路使存儲芯響應(yīng)首先接到的地址信號進(jìn)行操作。即,對 于首先接收地址信號的輸入/輸出端口實施存儲操作??梢匀绱硕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)高速
74存儲操作。因為在預(yù)定定時(即時鐘信號的邊沿)比較地址信號,所 以能夠防止與存儲操作無關(guān)的地址信號的錯誤比較。
根據(jù)本發(fā)明,多個存儲芯中的一些在加到多個輸入/輸出端口的時 鐘信號和地址信號的基礎(chǔ)上進(jìn)行操作。每個輸入/輸出端口包括用于接 收時鐘信號的時鐘端子,用于接收與時鐘信號同步地提供的地址信號 的地址端子,和用于輸入/輸出數(shù)據(jù)信號的數(shù)據(jù)輸入/輸出端口端子。為 各存儲芯提供控制電路。
如果將指示同一個存儲芯的地址信號加到兩個或多個輸入/輸出 端口,則控制電路使存儲芯響應(yīng)首先接到的地址信號進(jìn)行操作。此后, 控制電路使存儲芯響應(yīng)地址信號以接收地址信號的次序進(jìn)行操作。由 地址信號的上部分選擇存儲芯。由地址信號的下部分選擇存儲芯的存 儲單元。通過與各地址信號對應(yīng)的輸入/輸出端口,連續(xù)地從器件外部 輸入由地址信號下部分選擇的存儲單元的數(shù)據(jù)信號或?qū)⒂傻刂沸盘栂?部分選擇的存儲單元的數(shù)據(jù)信號輸出到器件外部。因此,對于所有的 接收存儲操作要求的輸入/輸出端口沒有例外地實施存儲操作。
即,在所有時間中多端口存儲器都處于備用狀態(tài)。與多端口存儲 器連接的控制器不一定要檢測多端口存儲器的忙碌狀態(tài)。這通過硬件 和軟件簡化了控制器的操作。因為所要做的全部事情就是比較地址信 號,所以能夠?qū)⒖刂齐娐分瞥珊唵蔚碾娐?。這使芯片尺寸減少。
因為每個輸入/輸出端口都具有時鐘端子,所以對于每個輸入/輸出 端口能夠分別地控制時鐘信號的頻率。即,能夠使具有不同操作頻率 的多個控制器與多端口存儲器連接起來。
在本發(fā)明的多端口存儲器中,每個輸入/輸出端口都具有指令端 子,用于與控制存儲芯操作的時鐘信號同步地接收指令信號。在每個 輸入/輸出端口中,在至少是讀操作和寫操作需要的存儲芯的操作周期 兩倍長的間隔上,提供用于激活存儲芯的指令信號。如果多端口存儲
器具有2個輸入/輸出端口或4個輸入/輸出端口 ,則可以分別將指令信 號的間隔設(shè)置在操作周期的2倍或操作周期的4倍上。有了這些設(shè)置, 多端口存儲器處于響應(yīng)外部控制器的備用狀態(tài)。如果在比預(yù)定間隔短的間隔上提供指令信號,則指令信號在防止 故障方面是無效的。如果將指令信號提供給不同的輸入/輸出端口,則 即便間隔不比預(yù)定間隔短也接收這些指令信號。
根據(jù)本發(fā)明,進(jìn)一步,從存儲單元讀出或?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方面)的實施例。 圖lll表示根據(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等),并進(jìn) 一步包括圖中未畫出的控制電路,譯碼器等。每個存儲單元包括存儲 與數(shù)據(jù)信號值相應(yīng)的電荷的電容器。根據(jù)通過端口 PPRT-A和 PORT-B提供的行地址信號選擇一個存儲芯。響應(yīng)給定的存儲芯的選 擇同時激活在給定的存儲芯中的讀出放大器線SA的所有讀出放大器。即,響應(yīng)激活指令A(yù)CT激活存儲芯,我們將在后面對此進(jìn)行描述,并 選擇在這個存儲芯中的所有的存儲單元區(qū)域。根據(jù)讀出放大器激活后 提供的列地址信號在存儲芯上讀出讀數(shù)據(jù)或?qū)懭雽憯?shù)據(jù)。
圖112表示多端口存儲器M的I/O電路5010和存儲塊MB的詳 細(xì)情況。在圖中,每條由粗線表示的信號線都由多條線組成。
I/O電路5010包括模寄存器5012a和5012b,時鐘緩沖器5014a 和5014b,
數(shù)椐輸入/輸出緩沖器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ù)輸入/輸出端子和忙碌端子進(jìn) 行傳輸。提供激活指令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同步地進(jìn)行操作。
存儲塊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 進(jìn)行操作。當(dāng)激活從判優(yōu)電路5034提供的啟動信號/ENB時,與輸入/ 輸出端口 PPRT-B對應(yīng)的模寄存器5012b,時鐘緩沖器5024b,指令 鎖存器5026b,數(shù)據(jù)鎖存器5028b,行地址鎖存器5031b,和列地址鎖 存器5032b進(jìn)行操作。
即,在激活啟動信號/ENA時,時鐘緩沖器5024a向存儲芯5040 的時鐘端子CLK提供時鐘信號CLKA。進(jìn)一步,指令鎖存器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。進(jìn)一步,指令鎖存器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é)果進(jìn)行操作。
圖113表示地址比較電路5042的詳細(xì)情況。
地址比較電路5042包括兩個地址匹配電路5042a和一個地址比較器5042b ,地址比較器5042b檢測地址到達(dá)的次序。地址匹配電路5042a包括多個EOR電路5042c,每個EOR電路5042c比較在地址信號ADDA和地址信號ADDB之間的行地址信號RA的對應(yīng)位,并進(jìn)一步包括多個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輸出的匹配信號/COINl和/COIN2當(dāng)行地址信號RA的所有的位在對應(yīng)的位之間匹配時變成浮動的,并當(dāng)行地址信號的至少 一個位在對應(yīng)的位之間不同時變成低電平信號。將兩個地址匹配電路5042a分別安排在存儲塊MB的上端和下端如圖lll所示(即,安排得接近輸入/輸出電路5010)。地址匹配電路5042a接近輸入/輸出電路5010的安排可以縮短地址信號ADDA和ADDB到地址匹配電路5042a的整個路經(jīng)上的傳播延遲。因此,可以在較早的定時比較地址信號ADDA和ADDB,從而得到高速操作。
比較器5042b接收匹配信號/COINl和/COIN2和時鐘信號CLKA和CLKB,并輸出首先到達(dá)信號/FSTA和/FSTB。
圖114表示比較器5042b的詳細(xì)情況。
比較器5042b包括脈沖發(fā)生器5042e,它們分別與時鐘信號CLKA和CLKB的前沿同步地產(chǎn)生正脈沖PLSA和PLSB,并進(jìn)一步包括觸發(fā)器5042f,它在它的輸入端子接收脈沖PLSA和PLSB。比較器5042b接收匹配信號/COINl和/COIN2并輸入到分別輸出脈沖PLSA和PLSB的各倒相器。將在比較器5042b中產(chǎn)生各脈沖信號的NAND門制成小尺寸的電路元件,使得當(dāng)從NAND門輸出的信號具有與匹配信號/COINl和/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匹配時^f吏匹配信號/COINl和/COIN2處于浮動狀態(tài)(Hi-z)。對應(yīng)地,分別與時
80鐘信號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甚至一個位都不匹配時l吏 每個匹配信號/COINl和/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)匹配信號/COINl和 /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ù)位信
81號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ū)懖僮?時,在各預(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同步地提供有效指令 ACT。
控制電路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)于其操作進(jì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的激活進(jìn)行操 作(圖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ù)Ql的時鐘信號CLKA同步地,將下一個有效指 令A(yù)CT加到輸入/輸出端口 PORT-A (圖120- (k))。因為在這個特 定的瞬間不將指令信號CMDB加到輸入/輸出端口 PORT-B,所以用 圖113所示的地址比較電路5042比較行地址信號RA,產(chǎn)生指示不匹 配的結(jié)果。因此,不激活忙碌信號/BSYA和/BSYB,只激活啟動信號 ENA(圖120-(1))。將首先到達(dá)信號/FSTA和/FSTB保存在高電平, 如圖116所示。
存儲芯5040根據(jù)加到輸入/輸出端口 PORT-A的行地址信號RA 進(jìn)行操作,如前面描述的那樣(圖120- (m))。存儲塊MB根據(jù)與 下面的時鐘信號CLKA同步地提供的讀指令RD和列地址信號CA — 個接著一個地輸出數(shù)據(jù)信號DQA ( Q0-Q3 )(圖120- ( n ))。
84在與輸入/輸出端口 PORT-A對應(yīng)的存儲芯5040的操作完成后, 將有效指令A(yù)CT和讀指令RD連續(xù)地加到輸入/輸出端口 PORT-B(圖 120- (o))。因為在這個特定的瞬間不將指令信號CMDA加到輸入/ 輸出端口 PORT-A,所以存儲芯5040對于輸入/輸出端口 PORT-B進(jìn) 行操作,從而輸出數(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進(jìn) 行操作(圖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進(jìn)行操作。于是圖 114所示的比較器5042b使首先到達(dá)信號/FSTA和/FSTB兩者去激活。 即,不進(jìn)行地址判優(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進(jìn)行操作(圖121- (c)),另一個存儲芯5040響應(yīng)加到輸 入/輸出端口 PORT-B的有效指令A(yù)CT和行地址信號RA進(jìn)行操作(圖 121- (d))。即,輸入/輸出端口 PORT畫BA和PORT畫B相互獨立地 進(jìn)行操作。因為行地址信號RA相互不同,既不激活忙碌信號/BSYA 也不激活忙碌信號/BS YB 。
在上述的實施例中,當(dāng)輸入/輸出端口 PORT-A和PORT-B接收 兩個指示同一個存儲芯5040分別與時鐘信號CLKA和CLKB同步的 行地址信號RA時,存儲芯5040對于在兩個行地址信號RA中首先到 達(dá)的一個進(jìn)行操作。即,這樣我們就能夠制成時鐘同步型的多端口存 儲器M。
判優(yōu)電路5034通過比較行地址信號RA滿足對它預(yù)期的所有要 求,于是能夠通過簡單的配置制成。因此,能夠使多端口存儲器M的 芯片尺寸減小。
因為輸入/輸出端口 PORT-A和PORT-B具有各自的時鐘端子 CLKA和CLKB,所以能夠分別地對輸入/輸出端口 PORT-A和 PORT-B中的每一個設(shè)置時鐘信號CLKA和CLKB的頻率。即,操 作在不同操作頻率上的多個控制器能夠與多端口存儲器M連接。
進(jìn)一步,用設(shè)置在時鐘信號CLKA和CLKB的相關(guān)前沿前的行 地址信號RA決定兩個地址中首先到達(dá)的一個。即,利用地址信號的 設(shè)置時間識別首先到達(dá)的一個。因此,在存儲芯5040開始它的操作前
86能夠識別將給予優(yōu)先權(quán)的輸入/輸出端口,從而實現(xiàn)高速存儲操作。進(jìn)
一步,因為根據(jù)具有較前相位的時鐘信號CLKA (或CLKB)的前沿 確定首先到達(dá)的一個,所以能夠進(jìn)一步提高存儲操作速度。
在判優(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é)合起來進(jìn)行操作。而且,判 優(yōu)電路5034的判優(yōu)控制電路5048不同于第1實施例的判優(yōu)控制電路 5044。判優(yōu)控制電路5048不輸出忙碌信號/BSYA和/BSYB,在I/O電 路5010中不提供忙碌緩沖器。其它配置幾乎與第1實施例相同。即, 在輸入/輸出端口 PORT-A和PORT-B中,分別通過時鐘端子,地址200810184950.9
端子,指令端子,和數(shù)據(jù)輸入/輸出端子,傳輸時鐘信號CLKA和 CLKB,地址信號ADDA和ADDB,指令信號CMDA和CMDB,與 數(shù)據(jù)信號DQA和DQB。存儲塊MB包括DRAM存儲芯5040,并進(jìn) 一步包括圖中未畫出的控制電路,譯碼器等。存儲單元包括根據(jù)數(shù)據(jù) 信號值存儲電荷的電容器。
甚至當(dāng)輸入/輸出端口 PORT-A和PORT-B同時4妄收對于同一個 地址信號RA進(jìn)行存儲操作的要求時,這個多端口存儲器M也能夠?qū)?輸入/輸出端口 PORT-A和PORT-B兩者實施存儲操作,我們將在后 面對此進(jìn)行描述。因此,如第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以及啟動信號/ENAO和忙碌信號/BSYB,并輸出啟動信號 /ENA。與輸入/輸出端口 PORT-B對應(yīng)的控制電路5048b從控制電路 5044b接收復(fù)位信號RESETB和反向信號RVS以及啟動信號/ENBO
88和忙碌信號/BSYA,并輸出啟動信號/ENB。在與第l實施例的啟動信 號/ENA和/ENB相同的定時產(chǎn)生啟動信號/ENAO和/ENBO。
圖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) 相同。控制電路5044a與延遲時鐘信號DCLKA前沿同步地取得低電 平的首先到達(dá)信號/FSTA,并激活忙碌信號/BSYB (圖126- U))。 因為控制電路5044b與延遲時鐘信號DCLKB前沿同步地取得高電平 的首先到達(dá)信號/FSTB,不激活忙碌信號/BSYA (圖126- (b))。控 制電路5048a響應(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))。 控制電路5048a和5048b響應(yīng)反向信號RVS的去激活,〗吏啟動信號 /ENA和/ENB的電平回復(fù)到它們各自原來的電平(圖126-(j))。然 后,響應(yīng)啟動信號/ENA的激活實施對于輸入/輸出端口 PORT-A的讀
89操作(圖126- (k))。
在完成讀操作后,激活復(fù)位信號RESETA (圖126- (1)),并使
忙碌信號/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) 寫操作和讀相互竟?fàn)帟r首先執(zhí)行讀操作,從而縮短全部操作周期和改
善傳輸數(shù)據(jù)信號的數(shù)據(jù)總線的使用效率。
下面,我們描述根據(jù)笫3實施例的多端口存儲器M的操作。 圖127表示當(dāng)輸入/輸出端口 PORT-A和PORT-B接收有效指令 ACT和相同的行地址信號RA時實施讀操作的方法。時鐘信號CLKA 的相位稍微超前時鐘信號CLKB的相位。即,有效指令A(yù)CT到輸入/ 輸出端口 PORT-A的輸入稍微早于有效指令A(yù)CT進(jìn)入輸入/輸出端口 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ù)Ql-Q3 (圖127- (f))。
輸入/輸出端口 PORT-A和PORT-B兩者在第1有效指令A(yù)CT后 的4時鐘脈沖,接收下一個有效指令A(yù)CT ,進(jìn)一步分別實施讀操作 READA和READB (圖127- (g)和(h))。當(dāng)在每4個時鐘周期中 加上有效指令A(yù)CT—次時,能夠連續(xù)地輸出檢索的數(shù)據(jù)而沒有任何間 隙(即,無間隙讀)。而且通過在每4個時鐘周期中接收有效指令A(yù)CT 一次得到隨機(jī)存取操作。
圖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))。
91輸入/輸出端口 PORT-A和PORT-B兩者在第1有效指令A(yù)CT后 的4個時鐘脈沖,接收下一個有效指令A(yù)CT,進(jìn)一步分別實施讀操作 READA和READB (圖128- ( g)和(h ))。
圖129表示當(dāng)輸入/輸出端口 PORT-A和PORT-B接收有效指令 ACT和相同的行地址信號RA時實施寫操作的方法。
在輸入/輸出端口 PORT-A和PORT-B中,與跟隨用于接收有效 指令A(yù)CT的前沿的下面的各時鐘信號CLKA和CLKB的前沿同步地 提供寫指令WR,列地址信號CA和第1寫數(shù)據(jù)Q0和QO(圖129-( a ) 和(b))。此后,與各時鐘信號CLKA和CLKB同步地提供寫數(shù)據(jù) Ql-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ù)椐Q0-Q3和Q0-Q3寫入與列地址信號CA對應(yīng)的存儲 單元,從而完成寫操作。
在寫操作中,在每4個時鐘周期中提供一組寫數(shù)據(jù)一次,使得寫 數(shù)據(jù)能夠連續(xù)地進(jìn)入而沒有任何間隙(即,無間隙寫)。
圖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的第l寫 操作的定時和對于輸入/輸出端口 PORT-B的第l讀操作的定時分別與 圖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的行地址信號相互
93匹配時實施的操作。在這個例子中,時鐘信號CLKB的周期長度等于 時鐘信號CLKA的周期長度的兩倍。
在輸入/輸出端口 PORT-A,當(dāng)在每4個時鐘周期中加上一組有效 指令A(yù)CT和讀指令RD—次,以與圖127相同的方式實施讀操作。在 輸入/輸出端口 PORT-B,也當(dāng)在每4個時鐘周期中加上一組有效指令 ACT和讀指令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é)合起來進(jìn)行操作。 其它配置幾乎與第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接收有效指令 ACT和相同的行地址信號RA時實施讀操作的方法。時鐘信號CLKA 的相位稍微超前時鐘信號CLKB的相位。即,輸入到輸入/輸出 PORT-A的有效指令A(yù)CT比輸入到輸入/輸出PORT-B的有效指令 ACT稍微早一些。
在輸入/輸出端口 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,并實施寫操作,接著加上有效指令 ACT和不同的行地址信號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)中(圖I36- (b))。另 一方面,在輸入/輸出端口 PORT-B,因為行地址信號RA與加到輸入 /輸出端口 PORT-A的相同,所以響應(yīng)有效指令A(yù)CT不實施讀操作。
此后,在輸入/輸出端口 PORT-A,與如圖所示的第l和第5時鐘
96信號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)和(1))。
從由讀操作READA選出的存儲芯5040的所有存儲單元讀出數(shù) 據(jù),并存儲在頁面緩沖器5050a (或5050b)中(圖136- (m))。進(jìn) 一步,從由讀操作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實施寫操作的情形。第l寫操作的定時與 圖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的信號相同,所以不實施與有效指令 ACT對應(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 ,并實施讀操作READ A (圖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))。進(jìn)一步,從由讀操作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)點。進(jìn)一步,在 本實施例中,用作對于存儲芯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ù)實施讀操作RE AD A 和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存儲芯的多端口存儲器的例子進(jìn)行了描述。但是本發(fā)明不限于這種形式的實施例。
例如,也可以將本發(fā)明用于具有同步SRAM存儲芯的多端口存儲器。 進(jìn)一步,在上述的多端口存儲器中,可以將對于存儲芯操作的要 求作為指令信號輸入。將這樣的指令信號與時鐘信號同步地加到一個 輸入/輸出端口的指令端子??梢詫⒃撝噶钚盘柗殖梢粋€用于激活存儲 塊的一個特定存儲區(qū)域的有效指令和一個指示在這個存儲區(qū)域中或者 實施讀操作或者實施寫操作的動作指令,并且可以連續(xù)地加上這些指 令。由于同樣的原因,也可以在時分基礎(chǔ)上一個接著一個地加上地址 信號。通過在加上有效指令后的預(yù)定時鐘周期上加上動作指令將讀操 作周期和寫操作周期固定在恒定的周期上。
如果存儲塊的存儲單元由DRAM單元構(gòu)成則需要刷新操作。對于 由加在任何一個輸入/輸出端口上的地址信號指示的刷新地址實施刷 新操作。這個配置能夠使在多端口存儲器中的控制電路的尺寸減到最 小,從而能夠減小芯片尺寸。
在讀操作和寫操作后自動地實施將與存儲單元連接的位線復(fù)位到 預(yù)定電位的預(yù)充電操作。這使從開始各操作的預(yù)定時間周期內(nèi)完成讀 操作和寫操作成為可能。即,能夠?qū)⒆x周期時間和寫周期時間固定為
恒定的。
而且,可以為每個輸入/輸出端口提供忙碌端子以便輸出忙碌信 號。當(dāng)加到 一個輸入/輸出端口的地址信號與加到另 一個輸入/輸出端口 的地址信號相同時和當(dāng)對于后一個輸入/輸出端口執(zhí)行存儲操作時,輸 出忙碌信號。用這種配置,與多端口存儲器連接的控制器很容易知道
還沒有實施所要求的操作。
進(jìn)一步,本發(fā)明不限于這些實施例,而且可以作出不同的變化和 修改而沒有偏離本發(fā)明的范圍。
例如,我們已經(jīng)參考為了同步只用 一個前沿或一個后沿的配置描 述了本發(fā)明的第l到第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)體存儲器件,包括數(shù)量為N的多個外部端口,每個外部端口都接收指令;數(shù)量為N的多條總線,它們與各個外部端口對應(yīng);多個存儲塊,它們與N條總線連接;一個地址比較電路,它比較由輸入到N個各外部端口中的指令存取的地址;和一個判優(yōu)電路,它確定當(dāng)所述地址比較電路根據(jù)地址比較結(jié)果檢測到同一個存儲塊的存取時,執(zhí)行存取同一個存儲塊的指令中的哪一個或哪幾個和不執(zhí)行存取同一個存儲塊的指令中的哪一個或哪幾個。
2. 權(quán)利要求1所述的半導(dǎo)體存儲器件,其中所述判優(yōu)電路響應(yīng)不 執(zhí)行給定指令的確定結(jié)果,輸出指示不執(zhí)行給定指令的信號。
3. 權(quán)利要求2所述的半導(dǎo)體存儲器件,其中從與給定指令對應(yīng)的 一個端口輸出指示不執(zhí)行給定指令的信號。
4. 權(quán)利要求1所述的半導(dǎo)體存儲器件,其中所述存儲塊包括基于 動態(tài)型存儲單元而實現(xiàn)的單元陣列,所述半導(dǎo)體存儲器件包括一個刷 新電路,它確定刷新存儲單元的定時,其中在第一模式中,響應(yīng)輸入 到N個外部端口中的至少一個端口的刷新指令刷新存儲單元,在第二 模式中,在所述刷新電路指示的定時刷新存儲單元。
5. 權(quán)利要求4所述的半導(dǎo)體存儲器件,其中當(dāng)所有N個外部端口 都處于去激活狀態(tài)中時進(jìn)行第二模式。
6. 權(quán)利要求4所述的半導(dǎo)體存儲器件,進(jìn)一步包括一個產(chǎn)生要被 刷新的地址的刷新地址計數(shù)器,其中所述刷新地址計數(shù)器響應(yīng)從所述 判優(yōu)電路發(fā)出的刷新指令對地址進(jìn)行計數(shù)。
7. 權(quán)利要求1所述的半導(dǎo)體存儲器件,其中所述存儲塊中的每一 個都包括一個控制電路,所述控制電路響應(yīng)與所述控制電路的存儲塊 對應(yīng)的在一條所述總線中的地址檢測結(jié)果,從該條總線取得指令信號。
8. 權(quán)利要求7所述的半導(dǎo)體存儲器件,其中所述存儲塊中的每一個都進(jìn)一步包括一個總線選擇裝置和一個存儲單元陣列,所述總線選 擇裝置使所述該條總線與存儲單元陣列連接。
9. 權(quán)利要求1所述的半導(dǎo)體存儲器件,其中N個外部端口中的每 一個都包括一個電路,它將串行接收的數(shù)據(jù)作為并行數(shù)據(jù)提供給N條總線中 的一條對應(yīng)總線;和一個電路,它將從N條總線中的一條對應(yīng)總線提供的并行數(shù)據(jù)作 為串行數(shù)據(jù)輸出到器件外部。
10. 權(quán)利要求9所述的半導(dǎo)體存儲器件,其中輸入到N個各外部端 口的指令包括讀指令和寫指令,所述判優(yōu)電路,響應(yīng)將所述讀指令輸 入外部端口的定時和將對于所述寫指令的串行輸入數(shù)據(jù)的最后一個數(shù) 據(jù)項輸入外部端口的定時,確定指令中的哪一個或哪幾個要被執(zhí)行和 指令中的哪一個或哪幾個不被執(zhí)行。
全文摘要
本發(fā)明提供一種基于動態(tài)隨機(jī)存取存儲器核心的多端口存儲器。半導(dǎo)體存儲器件包括數(shù)量為N的多個外部端口,每個外部端口都接收指令,和一個內(nèi)部電路,它在輸入到一個外部端口的指令的最小時間間隔中至少實施N次存取操作。
文檔編號G11C11/403GK101477829SQ200810184950
公開日2009年7月8日 申請日期2001年11月26日 優(yōu)先權(quán)日2000年12月20日
發(fā)明者山崎雅文, 川崎健一, 松崎康郎, 鎌田心之介, 鈴木孝章 申請人:富士通微電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
万源市| 台前县| 麻江县| 曲靖市| 康马县| 台南市| 年辖:市辖区| 石门县| 灯塔市| 乐清市| 芮城县| 新民市| 西峡县| 北川| 伽师县| 开江县| 大连市| 保山市| 沂水县| 五台县| 阳谷县| 唐山市| 鄂州市| 栾城县| 博湖县| 洛浦县| 徐州市| 利辛县| 保靖县| 淄博市| 上饶市| 宁化县| 沁源县| 西丰县| 合阳县| 葫芦岛市| 长岛县| 黑河市| 宁晋县| 贵阳市| 慈利县|