相關(guān)申請的交叉引用
本申請要求2016年3月8日提交的第62/305,476號美國臨時申請和2016年9月14日提交的第15/265,759號美國非臨時申請的優(yōu)先權(quán),所述申請的全部內(nèi)容在此引入作為參考。
在此描述的實施例一般地涉及半導(dǎo)體存儲裝置。
背景技術(shù):
利用磁阻效應(yīng)的半導(dǎo)體存儲裝置在本領(lǐng)域中是已知的。
技術(shù)實現(xiàn)要素:
根據(jù)一個實施例,一種半導(dǎo)體存儲裝置包括存儲單元和第一電路。所述第一電路被配置為基于寫入命令產(chǎn)生寫入脈沖并且根據(jù)所述寫入脈沖向所述存儲單元供應(yīng)寫入電流。當(dāng)所述第一電路接收到第一寫入命令時,所述第一電路產(chǎn)生第一寫入脈沖。當(dāng)所述第一電路在接收所述第一寫入命令之后的第一時間內(nèi)接收到第二寫入命令時,所述第一電路延長所述第一寫入脈沖。
本實施例的半導(dǎo)體存儲裝置是有益的,因為能夠延長寫入脈沖的脈沖寬度。
附圖說明
圖1是示出根據(jù)第一實施例的半導(dǎo)體存儲裝置和存儲控制器的框圖;
圖2示出單元陣列的元件以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖3示出命令電路的元件的一部分以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖4示出第一實施例的半導(dǎo)體存儲裝置中的讀寫電路的功能塊,這些功能塊連同半導(dǎo)體存儲裝置的相關(guān)元件一起被示出;
圖5示出第一實施例的半導(dǎo)體存儲裝置中的讀寫電路的功能塊的其它元件,并且還示出元件的連接方式;
圖6示出fin產(chǎn)生器的元件以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖7示出fout產(chǎn)生器的元件以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖8示出fifo電路的元件以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖9示出脈沖產(chǎn)生器的元件以及它們在第一實施例的半導(dǎo)體存儲裝置中的連接方式;
圖10是示出第一實施例的半導(dǎo)體存儲裝置中的寫入中的信號的時間圖;
圖11是示出第一實施例的半導(dǎo)體存儲裝置中的寫入中的命令和信號的時間圖;
圖12是示出第一實施例的半導(dǎo)體存儲裝置中的寫入的變形例中的命令和信號的時間圖;
圖13示出用于第二實施例的半導(dǎo)體存儲裝置中的寫入的命令;
圖14示出用于第二實施例的半導(dǎo)體存儲裝置中的寫入的命令vnop;
圖15示出第二實施例的半導(dǎo)體存儲裝置中的寫入中產(chǎn)生的寫入脈沖。
具體實施方式
將參考附圖描述各實施例。在以下描述中,具有相同功能和配置的結(jié)構(gòu)元件將由相同參考符號表示。以下描述的每個實施例僅示出實現(xiàn)實施例的技術(shù)理念的示例性設(shè)備和方法。所述技術(shù)理念并不限于以下描述的元件材料、形狀、結(jié)構(gòu)、布置等。
每個功能塊可以以硬件、計算機軟件或它們的組合的形式實現(xiàn)。功能塊不需要是將如以下描述的塊。例如,一個示例性功能塊的部分功能可以由另一個功能塊實現(xiàn)。此外,示例性功能塊可以被分成更多的特定功能塊。
一般而言,根據(jù)一個實施例,一種半導(dǎo)體存儲裝置包括存儲單元和第一電路。所述第一電路被配置為基于寫入命令產(chǎn)生寫入脈沖并且根據(jù)所述寫入脈沖向所述存儲單元供應(yīng)寫入電流。當(dāng)所述第一電路接收到第一寫入命令時,所述第一電路產(chǎn)生第一寫入脈沖。當(dāng)所述第一電路在接收所述第一寫入命令之后的第一時間內(nèi)接收到第二寫入命令時,所述第一電路延長所述第一寫入脈沖。
[1]第一實施例
將描述根據(jù)第一實施例的半導(dǎo)體存儲裝置。
[1-1]半導(dǎo)體存儲裝置的整體配置
圖1示出根據(jù)第一實施例的半導(dǎo)體存儲裝置1和存儲控制器(或主機裝置)2的功能塊。半導(dǎo)體存儲裝置1和存儲控制器2構(gòu)成存儲系統(tǒng)。例如,半導(dǎo)體存儲裝置1能夠是動態(tài)ram(dram)、磁阻ram(mram)、電阻ram(reram)或相變ram(pcram)。在以下描述中,將參考其中半導(dǎo)體存儲裝置是mram的情況。
半導(dǎo)體存儲裝置1通過連接線5連接到存儲控制器2。通過連接線5,半導(dǎo)體存儲裝置1接收電源電壓、命令/地址信號ca、數(shù)據(jù)dq、數(shù)據(jù)選通信號dqs和時鐘clk/clkb。具有后綴“b”的信號是沒有后綴“b”的信號的反信號。地址信號包括地址。半導(dǎo)體存儲裝置1借助連接線5將數(shù)據(jù)dq傳輸?shù)酱鎯刂破?。
存儲控制器2包括諸如中央處理單元(cpu)、ram和只讀存儲器(rom)之類的元件,并且通過發(fā)出命令控制半導(dǎo)體存儲裝置1。
半導(dǎo)體存儲裝置1包括存儲體(bank)10(10<0>到10<3>)、ecc電路14、輸入和輸出電路15、控制器16和命令電路17。半導(dǎo)體存儲裝置1例如包括八個存儲體10,并且在圖1中示出其中的四個。
存儲體10<bk>包括單元陣列11<bk>和讀寫電路12<bk>。bk的值是存儲體的標(biāo)識符。在其中設(shè)置八個存儲體10的實例中,bk的值是0或者不大于7的任何自然數(shù)。每個單元陣列11包括多個存儲單元mc。存儲單元mc以非易失性的方式保留數(shù)據(jù)。在存儲單元陣列11的區(qū)域中設(shè)置各種信號線(未示出)。信號線包括后面描述的位線bl、源線sl和字線wl。
每個讀寫電路12控制針對對應(yīng)單元陣列11執(zhí)行的寫入和讀取操作。每個讀寫電路12包括驅(qū)動器、解碼器、頁緩沖器、讀出放大器等。解碼器選擇由從存儲控制器2供應(yīng)的地址信號指定的存儲單元mc。解碼器包括行解碼器和列解碼器。頁緩沖器臨時存儲要向?qū)?yīng)存儲體10供應(yīng)的寫入數(shù)據(jù)或者從該存儲體10供應(yīng)的讀取數(shù)據(jù)。讀寫電路12通過向信號線施加各種電壓或者向信號線供應(yīng)各種電流,標(biāo)識從選定存儲單元mc供應(yīng)的數(shù)據(jù)或者在選定存儲單元中寫入指定數(shù)據(jù)。
輸入和輸出電路15控制半導(dǎo)體存儲裝置1與存儲控制器2之間的信號傳輸。輸入和輸出電路15連接到命令電路17、讀寫電路12、ecc電路14和控制器16。
輸入和輸出電路15從存儲控制器2接收命令和地址信號,并且將它們供應(yīng)給命令電路17。命令電路17接收時鐘clk和clkb,并且可以按照基于時鐘clk和clkb的計時輸出各種信號。命令電路17向讀寫電路12供應(yīng)基于命令和地址信號的信號。
輸入和輸出電路15向讀寫電路12供應(yīng)地址信號?;诘刂沸盘?,讀寫電路12控制自存儲單元mc的數(shù)據(jù)讀取和到存儲單元mc的數(shù)據(jù)寫入。
ecc電路14將錯誤糾正代碼(ecc)添加到要在存儲單元mc中寫入的數(shù)據(jù)。ecc電路對包括在從存儲單元mc接收的數(shù)據(jù)中的ecc解碼,糾正所接收數(shù)據(jù)中的錯誤,并且產(chǎn)生要讀取的數(shù)據(jù)。
此外,輸入和輸出電路15向控制器16供應(yīng)各種控制信號。控制器16包括諸如電壓產(chǎn)生器之類的元件,并且基于所接收的控制信號控制半導(dǎo)體存儲裝置1的結(jié)構(gòu)元件。
將參考圖2詳細(xì)描述單元陣列11。圖2示出單元陣列的元件以及它們的連接方式。存儲單元mc例如以矩陣模式布置。單元陣列11包括i個字線wl(wl0到wli-1)、j個位線bl(bl0到blj-1)和j個源線sl(sl0到slj-1)。i和j是不小于0的自然數(shù)。一行的存儲單元mc連接到一個字線wl,并且一列的存儲單元mc連接到由一個位線bl和一個源線sl形成的一個對。
每個存儲單元mc包括磁性隧道結(jié)(mtj)元件30和選擇晶體管31。mtj元件30包括mtj,并且mtj包括兩個磁性層(第一和第二磁性層)和布置在兩個磁性層之間的非磁性層。第一磁性層具有固定的磁化方向或磁各向異性。第二磁性層具有可變的磁化方向。具有固定磁化方向的第一磁性層意味著磁化方向不會被流經(jīng)mtj元件30的寫入電流反轉(zhuǎn)。
當(dāng)兩個磁性層的磁化方向彼此平行時,mtj元件具有最小電阻,并且當(dāng)它們的磁化方向彼此反平行時具有最大電阻。示出這些不同電阻的轉(zhuǎn)變狀態(tài)被分配給二進(jìn)制數(shù)據(jù)。當(dāng)寫入電流從第一磁性層流向第二磁性層時,兩個層的磁化方向變得彼此平行。相反,當(dāng)寫入電流從第二磁性層流向第一磁性層時,兩個層的磁化方向變得彼此反平行。
選擇晶體管31例如是n型金屬氧化物半導(dǎo)體場效應(yīng)晶體管(mosfet)。
每個mtj元件30的一端連接到位線bl,并且另一端連接到一個選擇晶體管31的漏極(或源極)。每個選擇晶體管31的柵極連接到一個字線wl,并且其源極(或漏極)連接到一個源線sl。
當(dāng)通過讀寫電路12激活一個字線wl時,連接到該字線wl的選擇晶體管31被接通。當(dāng)選擇晶體管31被接通時,連接到選擇晶體管31的mtj元件30被連接到一對位線bl和源線sl。連接到一個字線wl的一組存儲單元mc將被稱為“頁”。
多對位線bl和源線sl屬于一列。每個存儲體10<kb>包括(m+1)個列(即,列0到列m)。針對其執(zhí)行讀取或?qū)懭氩僮鞯拇鎯卧ㄟ^指定頁地址(即,指定字線wl和列)來被指定。在讀取操作的情況下,連接到由讀取操作選擇的字線wl的所有存儲單元mc中的數(shù)據(jù)被讀取和存儲在頁緩沖器(未示出)中。對應(yīng)于一頁的數(shù)據(jù)的一部分進(jìn)一步由列地址指定。因此,屬于一頁數(shù)據(jù)的一部分并且由列地址指定的數(shù)據(jù)被讀取。同樣,通過指定目標(biāo)頁和列開始寫入。連同讀取命令或?qū)懭朊钜黄鹬付械刂贰?/p>
圖3示出命令電路17的元件的一部分。命令電路17接收時鐘clk和clkb,并且基于時鐘clk和clkb而操作。命令電路17包括移位寄存器shr1、多路復(fù)用器mux1、“與”門ad1和ad2、“或”門or1、以及fifo寄存器組frs1和frs2。
移位寄存器shr1接收向命令電路17供應(yīng)的讀取命令或?qū)懭朊?。基于外部時鐘clk和clkb,移位寄存器shr1在從接收讀取或?qū)懭朊钇鸾?jīng)過多個時鐘周期(其數(shù)量基于在半導(dǎo)體存儲裝置1中設(shè)定的突發(fā)長度)之后輸出信號bb<1>到bb<4>(bb<4:1>)之一。突發(fā)長度表示響應(yīng)于一個讀取或?qū)懭朊?,輸出或輸入要被讀取或?qū)懭氲臄?shù)據(jù)的次數(shù)。信號bb<1>到bb<4>對應(yīng)于突發(fā)長度的周期。例如,當(dāng)突發(fā)長度為4時,輸出高電平信號bb<1>。例如,當(dāng)突發(fā)長度為8和16時,分別輸出高電平信號bb<2>和bb<4>。
通過多輸入“或”門or1接收信號bb<1>到bb<4>?!盎颉遍Tor1的輸出用作信號bl4_bend。當(dāng)由半導(dǎo)體存儲裝置1接收長度等于突發(fā)長度4的數(shù)據(jù)時,斷言信號bl4_bend(設(shè)定為高電平)。以下給出的描述基于其中突發(fā)長度為4的實例。
通過“與”門ad1接收信號bl4_bend。也向“與”門ad1供應(yīng)電源電位(即,高電平信號)。由fifo寄存器組frs1接收“與”門ad1的輸出。可以直接向fifo寄存器組frs1供應(yīng)信號bl4_bend。
fifo寄存器組frs1包括n個fifo寄存器。數(shù)量n基于半導(dǎo)體存儲裝置1的規(guī)范確定并且例如為ru(twr/tck/2),其中twr是寫入恢復(fù)時間。為了開始寫入,半導(dǎo)體存儲裝置1從完成寫入數(shù)據(jù)的接收起需要寫入恢復(fù)時間。寫入恢復(fù)時間是在存儲單元陣列11中寫入讀寫電路12的頁緩沖器(未示出)中的數(shù)據(jù)需要的時間。根據(jù)半導(dǎo)體存儲裝置1的寫入特性預(yù)先確定寫入恢復(fù)時間。符號tck代表時鐘clk和clkb的1個周期時間(周期)。ru表示舍入小數(shù)點之后的數(shù)字。
使用n個fifo寄存器,當(dāng)從轉(zhuǎn)變?yōu)楦唠娖叫盘朾l4_bend起經(jīng)過基于值n并且是寫入恢復(fù)所需的時鐘周期時,fifo寄存器組frs1輸出高電平信號bnwr<bk>,并且在特定時間長度內(nèi)保持輸出該高電平信號bnwr<bk>。
用于產(chǎn)生信號bnwr<bk>的電路在配置方面類似于用于產(chǎn)生信號apcg<bk>的電路。用于產(chǎn)生信號apcg<bk>的電路包括多路復(fù)用器mux1、“與”門ad2和fifo寄存器組frs2。多路復(fù)用器mux1接收信號bb<1>、bb<2>和bb<4>。多路復(fù)用器mux1還從控制器16接收信號bl4、bl8或bl16。信號bl4、bl8和bl16基于針對半導(dǎo)體存儲裝置1設(shè)定的突發(fā)長度。如果突發(fā)長度為4,則多路復(fù)用器mux1接收信號bb<1>并且輸出它作為信號bend。當(dāng)由半導(dǎo)體存儲裝置1接收長度等于突發(fā)長度的數(shù)據(jù)時,斷言信號bend(設(shè)定為高電平)。
通過“與”門ad2接收信號bend?!芭c”門ad2還接收信號apen。當(dāng)由讀取命令或?qū)懭朊钪付ㄗ詣宇A(yù)充電時,斷言信號apen(設(shè)定為高電平)。通過fifo寄存器組frs2接收“與”門ad2的輸出。當(dāng)信號apen處于高電平時,fifo寄存器組frs2開始接收高電平信號bend,當(dāng)經(jīng)過基于值k并且是寫入恢復(fù)所需的時鐘周期時,開始輸出信號apcg<bk>。值k表示設(shè)置的存儲體數(shù)量,并且例如為8。
每個讀寫電路12具有如圖4中所示的元件和連接。圖4示出一個讀寫電路12<bk>的功能塊和半導(dǎo)體存儲裝置1的相關(guān)元件。半導(dǎo)體存儲裝置1包括寫入使能電路18。寫入使能電路18從命令電路17接收信號cbank<bk>。當(dāng)由寫入命令或讀取命令指定存儲體10<bk>作為要被訪問的存儲體時,信號cbank<bk>上升到高電平。每次由半導(dǎo)體存儲裝置1(具體地說由命令電路17)接收指定存儲體10<bk>的寫入命令或讀取命令時,信號cbank<bk>上升到高電平。
寫入使能電路18還從命令電路17接收信號each_bl4。信號each_bl4與時鐘信號clk同步,并且每次經(jīng)過對應(yīng)于突發(fā)長度4的時鐘周期時,斷言信號each_bl4(設(shè)定為高電平)。寫入使能電路18基于信號cbank<bk>和each_bl4產(chǎn)生信號bwens<bk>,并且輸出信號bwens<bk>。
讀寫電路12包括解碼器121<bk>、重設(shè)控制電路122、fin產(chǎn)生器124<bk>、fout產(chǎn)生器125<bk>、(m+1)個fifo電路127(127<0>到127<m>)、以及(m+1)個脈沖產(chǎn)生器128(128<0>到128<m>)。換言之,脈沖產(chǎn)生器128的數(shù)量與設(shè)置的列的數(shù)量相同。
例如,解碼器121<bk>從命令電路17接收信號ca<m:0>,并且還接收信號bwen2<bk>。一組信號ca<0>到ca<m>(ca<m:0>)共同指定一列。更具體地說,信號ca<0>到ca<m>(ca<m:0>)中的每一個具有用于指定要被訪問的列的值(“0”或“1”)。
解碼器121<bk>基于信號ca<m:0>和信號bwen2<bk>產(chǎn)生信號column<ca>和bwen2_sum<ca>,并且輸出信號column<ca>和bwen2_sum<ca>。值“ca”是一個列的標(biāo)識符(地址),并且是0或不大于m的自然數(shù)。當(dāng)指定相應(yīng)列0到m時,在特定時間內(nèi)信號column<0>到column<m>保持被斷言(保持在高電平)。在讀寫電路12<bk>中,當(dāng)斷言信號column<ca>和信號bwen2<bk>兩者時,信號bwen2_sum<ca>保持被斷言。
通過重設(shè)控制電路122接收信號bwen2_sum<ca>。重設(shè)控制電路122還從命令電路17接收信號reset。在預(yù)定時間內(nèi)信號reset保持被斷言(保持在高電平),以便操作的重設(shè)。當(dāng)接收到所斷言的信號reset時,重設(shè)控制電路122在特定時間內(nèi)保持?jǐn)嘌孕盘杛st<ca>(其用于由信號bwen2_sum<ca>指定的列ca)。
fin產(chǎn)生器124<bk>從寫入使能電路18接收信號bwens<bk>,并且從命令電路17接收信號reset。信號bwens<bk>是信號bwen2<bk>的延遲信號。fin產(chǎn)生器124<bk>從信號bwens<bk>產(chǎn)生信號bwen<0>到bwen<n>,并且輸出信號bwen<0>到bwen<n>(bwen<n:0>)。通過上面描述的ru(twr/tck/2)計算n的值。
每次將信號bwens<bk>設(shè)定為高電平時,fin產(chǎn)生器124<bk>將信號bwen<0>到bwen<n>之一設(shè)定為高電平。更具體地說,每次接收到高電平信號bwens<bk>時,fin產(chǎn)生器124<bk>按照<>內(nèi)的數(shù)字的升序,將信號bwen<0>到bwen<n>設(shè)定為高電平。
fout產(chǎn)生器125<bk>從命令電路17接收信號bnwr<bk>和信號reset。fout產(chǎn)生器125<bk>從信號nwr<bk>產(chǎn)生信號nwr<0>到nwr<n>(nwr<n:0>),并且輸出信號nwr<n:0>。每次將信號bnwr<bk>設(shè)定為高電平時,fout產(chǎn)生器125<bk>將信號nwr<0>到nwr<n>之一設(shè)定為高電平。更具體地說,每次接收到高電平信號bnwr<bk>時,fout產(chǎn)生器125<bk>按照<>內(nèi)的數(shù)字的升序,將信號nwr<0>到nwr<n>設(shè)定為高電平。
fifo電路127<ca>包括多個fifo寄存器,并且接收信號bwen<n:0>、信號nwr<n:0>和信號column<ca>。fifo電路127<ca>基于信號bwen<n:0>、信號nwr<n:0>和信號column<ca>產(chǎn)生信號wayts<ca>和wayte<ca>,并且輸出信號wayts<ca>和wayte<ca>。具體地說,如果當(dāng)正在接收已斷言(高電平)信號column<ca>時接收到已斷言信號bwen<n>(n是0或不大于n的自然數(shù)),則fifo電路127<ca>鎖存高電平信號并且輸出已斷言(高電平)信號wayts<ca>。此外,當(dāng)接收到已斷言(高電平)信號nwr<n>時,fifo電路127<ca>輸出已斷言(高電平)信號wayte<ca>。
脈沖產(chǎn)生器128<ca>接收信號wayts<ca>和信號wayte<ca>?;谛盘杦ayts<ca>和信號wayte<ca>,脈沖產(chǎn)生器128<ca>產(chǎn)生信號write_pulse<ca>并且輸出該信號?;谛盘杦ayts<ca>和信號wayte<ca>,在預(yù)定時間內(nèi)信號write_pulse<ca>保持被斷言(保持在高電平)。脈沖產(chǎn)生器128<ca>例如是設(shè)定/重設(shè)鎖存器(rs鎖存器)。rs鎖存器接收信號wayts<ca>作為設(shè)定輸入,并且接收信號wayte<ca>作為重設(shè)輸入。
每個讀寫電路12<bk>具有如圖5中所示的元件??刂破鱟c基于高電平信號write_pulse<ca>,激活信號gbl<ca>和信號gsl<ca>(未示出)。信號gbl<ca>選擇屬于列ca的位線bl,并且信號gsl<ca>選擇屬于列ca的源線sl。電流源電路csr<bk>和電流匯電路csk<bk>用作供電電路,并且共同允許寫入電流流向存儲單元mc,該存儲單元mc連接到與選定字線wl相連的列ca中的字線bl和源線sl,并且然后該存儲單元mc被選擇。寫入電流沿著基于要在存儲單元mc中寫入的數(shù)據(jù)的方向,流經(jīng)存儲單元mc。當(dāng)信號write_pulse<ca>被斷言期間,電流源電路csr<bk>和電流匯電路csk<bk>保持供應(yīng)寫入電流。
圖6示出fin產(chǎn)生器124<bk>的元件以及它們的連接方式。fin產(chǎn)生器124<bk>包括移位寄存器。移位寄存器包括(n+1)個觸發(fā)器1241<0>到1241<n>。觸發(fā)器1241<0>到1241<n>分別提供輸出b0到bn。觸發(fā)器1241<0>到1241<n>分別接收輸出bn到bn-1。觸發(fā)器1241在其時鐘輸入端處接收信號iclk1,并且在其反轉(zhuǎn)后的時鐘輸入端處接收信號iclk1b。信號iclk1與信號bwens<bk>具有相同的邏輯。
分別通過“與”門ad11<0>到ad11<n>接收輸出b0到bn。“與”門ad11<0>到ad11<n>接收延遲信號bwens<bk>。“與”門ad11<0>到ad11<n>分別輸出信號bwen<0>到bwen<n>。
圖7示出fout產(chǎn)生器125<bk>的元件以及它們的連接方式。fout產(chǎn)生器125<bk>包括以與fin產(chǎn)生器124<bk>相同的方式連接的元件。但是,應(yīng)該注意,每個節(jié)點處的信號不同于fin產(chǎn)生器124<bk>的對應(yīng)節(jié)點處的信號。fin產(chǎn)生器124<bk>中的信號bwens<bk>對應(yīng)于fout產(chǎn)生器125<bk>中的信號bnwr<bk>。信號iclk2和iclk2b分別對應(yīng)于信號iclk1和iclk1b。信號nwr<0>到nwr<n>分別對應(yīng)于信號bwen<0>到bwen<n>。輸出c0到cn分別對應(yīng)于輸出b0到bn。
圖8示出讀寫電路12<bk>的fifo電路127<ca>的元件以及它們的連接方式。如圖8中所示,每個fifo電路127<ca>包括(n+1)個fifo寄存器fr<0>到fr<n>。每個fifo寄存器fr按照基于在端子pin處接收的高電平信號的計時,鎖存在端子pi處接收的信號的邏輯。每個fifo寄存器fr按照基于在端子pout處接收的高電平信號的計時,從端子po輸出鎖存的邏輯(數(shù)據(jù))。
fifo寄存器fr<0>到fr<n>在端子pi處接收信號column<ca>,并且在端子rst處接收信號rst<ca>。fifo寄存器fr<0>到fr<n>在其各個端子pin處接收信號bwen<0>到bwen<n>。fifo寄存器fr<0>到fr<n>在其各個端子pout處接收信號nwr<0>到nwr<n>。
每個fifo寄存器fr的端子po連接到鎖存電路l的輸入端,并且還通過晶體管qn1被接地。晶體管qn1例如是n型mosfet,并且在其柵極處接收從控制器16供應(yīng)的信號porb。晶體管qn1被接通以便重設(shè)鎖存電路l中的數(shù)據(jù)。鎖存電路l的輸出被反相器iv1反相并且用作信號an。
fifo電路127進(jìn)一步包括“與非”門nd1和nd2、反相器iv5和iv6、多輸入“或”門or11、以及延遲電路d1和d2。“與非”門nd1接收信號bwens<bk>和column<ca>。向串聯(lián)的延遲電路d1和反相器iv5供應(yīng)“與非”門nd1的輸出。反相器iv5的輸出用作信號wayts<ca>。
“或”門or11接收信號nwr<0>到nwr<n>,并且借助延遲電路d2向“與非”門nd2供應(yīng)其輸出?!芭c非”門nd2還接收信號an,并且向反相器電路iv6供應(yīng)其輸出。反相器iv6的輸出用作信號wayte<ca>。
圖9示出讀寫電路12<bk>的脈沖產(chǎn)生器128<ca>的配置。脈沖產(chǎn)生器128<ca>包括“與非”門nd11、nd12和nd13、“或非”門nr11、以及反相器iv11和iv12。“與非”門nd11接收信號wayts<ca>和“或非”門nr11的輸出?!盎蚍恰遍Tnr11接收信號wayte<ca>和信號reset,并且被施加基準(zhǔn)電壓vss(低電平)。向“與非”門nd12供應(yīng)“與非”門nd11的輸出。向“與非”門nd11和nd13供應(yīng)“或非”門nr11的輸出。“與非”門nd12接收“與非”門nd11的輸出和“與非”門nd13的輸出?!芭c非”門nd13接收“或非”門nr11的輸出和“與非”門nd12的輸出。向反相器iv11供應(yīng)“與非”門nd12的輸出,并且向反相器iv12供應(yīng)反相器iv11的輸出。反相器iv12輸出信號write_pulse<ca>。
當(dāng)供應(yīng)高電平信號wayts<ca>時(此時,信號wayte<ca>和信號reset處于低電平),在脈沖產(chǎn)生器128<ca>中信號write_pulse上升到高電平。當(dāng)供應(yīng)高電平信號wayte<ca>時,信號write_pulse<ca>下降到低電平。即,當(dāng)供應(yīng)高電平wayts<ca>時,信號write_pulse<ca>上升到高電平,從而允許寫入電流流向存儲單元mc。當(dāng)供應(yīng)高電平wayte<ca>時,信號write_pulse<ca>下降到低電平,從而停止向存儲單元mc供應(yīng)寫入電流。
例如,當(dāng)向命令電路17供應(yīng)一個寫入命令時,脈沖產(chǎn)生器128接收高電平信號wayts<ca>并且導(dǎo)致信號write_pulse<ca>上升到高電平。信號write_pulse<ca>一直保持在高電平,直到接收到高電平wayte<ca>。當(dāng)接收到高電平wayte<ca>時,信號write_pulse<ca>下降到低電平。因此,脈沖產(chǎn)生器128輸出具有預(yù)定脈沖寬度的信號write_pulse<ca>。
基于信號bwen2<bk>,將寫入數(shù)據(jù)傳輸?shù)巾摼彌_器并且重設(shè)fifo電路127<ca>。隨后,產(chǎn)生信號write_pulse<ca>。
[1-2]寫入操作
圖10是示出針對第一實施例的半導(dǎo)體存儲裝置1執(zhí)行的寫入的時間圖,并且其中示出信號在寫入周期中的狀態(tài)。具體地說,圖10與針對存儲體10<bk>的列0(ca=0)執(zhí)行的寫入相關(guān)。所述信號以與針對寫入相同的方式而改變,與針對其執(zhí)行寫入的存儲體無關(guān)。
在圖10中所示的操作的開始時間,所有指示的信號都處于低電平(無效)。當(dāng)向半導(dǎo)體存儲裝置1供應(yīng)寫入命令(在下文中被稱為第一寫入命令)時,將第一寫入命令從輸入和輸出電路15傳輸?shù)矫铍娐?7。將第一寫入命令從命令電路17傳輸?shù)浇獯a器121<bk>。
在接收到第一寫入命令時,解碼器121<bk>基于第一寫入命令,在時間t1處將信號bwen2_sum<0>(w1)設(shè)定為高電平。信號bwen2_sum<0>在預(yù)定時間長度內(nèi)被保持在高電平,并且在時間t2處下降到低電平。信號bwen2_sum<0>(w1)是響應(yīng)于第一寫入命令的輸入而產(chǎn)生的信號的延遲信號。在輸入第一寫入命令之后必須一直待機,直到寫入數(shù)據(jù)被輸入并且后續(xù)被重寫在頁緩沖器中。由于此原因,產(chǎn)生信號bwen2_sum<0>(w1),其被延遲從輸入第一寫入命令起到完成在頁緩沖器中記錄寫入數(shù)據(jù)的時間長度。
在時間t2處信號bwen2_sum<0>(w1)到低電平的轉(zhuǎn)變導(dǎo)致fifo電路127<0>將信號wayts<0>轉(zhuǎn)變?yōu)楦唠娖?。信號wayts<0>是響應(yīng)于輸入第一寫入命令(或信號bwen2_sum<0>(w1))而產(chǎn)生的信號的延遲信號。在以下描述中,假設(shè)信號wayts<0>到高電平的轉(zhuǎn)變與信號bwen2_sum<0>轉(zhuǎn)變到低電平的時間t2同步,然而實際上信號wayts<0>到高電平的轉(zhuǎn)變可能稍微遲于時間t2。
在時間t2處信號wayts<0>到高電平的轉(zhuǎn)變導(dǎo)致脈沖產(chǎn)生器128<0>輸出高電平信號write_pulse<0>。由于信號write_pulse<0>到高電平的轉(zhuǎn)變,讀寫電路12<bk>在時間t2處開始向列0的存儲單元mc供應(yīng)寫入電流。在時間t3處信號wayts<0>返回到低電平。
在輸入第一寫入命令之后的預(yù)定時間處,輸入下一個寫入命令(在下文中被稱為第二寫入命令)。當(dāng)向半導(dǎo)體存儲裝置1供應(yīng)第二寫入命令時,將第二寫入命令從輸入和輸出電路15傳輸?shù)矫铍娐?7。將第二寫入命令從命令電路17傳輸?shù)浇獯a器121<bk>。
在接收到第二寫入命令時,在時間t4處解碼器121<bk>將信號bwen2_sum<0>(w2)設(shè)定為高電平。在時間t5處信號bwen2_sum<0>下降到低電平。上述預(yù)定時間是比響應(yīng)于輸入一個寫入命令而產(chǎn)生的信號write_pulse<0>的脈沖寬度的時間短的時間。
在時間t5處信號bwen2_sum<0>到低電平的轉(zhuǎn)變導(dǎo)致fifo電路127<0>將信號wayts<0>轉(zhuǎn)變?yōu)楦唠娖?。在時間t5處信號wayts<0>到高電平的轉(zhuǎn)變導(dǎo)致脈沖產(chǎn)生器128<0>開始在時間t5處輸出高電平信號write_pulse<0>。因為由于輸入第一寫入命令而已經(jīng)將信號write_pulse<0>設(shè)定為高電平,信號write_pulse<0>維持高電平。因為信號write_pulse<0>維持高電平,讀寫電路12<bk>保持向列0的存儲單元mc供應(yīng)寫入電流。在時間t6處信號wayts<0>返回到低電平。
在時間t7,即,在信號wayts<0>轉(zhuǎn)變?yōu)楦唠娖街蟮念A(yù)定時間處,信號wayte<0>上升到高電平。信號wayte<0>是響應(yīng)于輸入第二寫入命令(或信號bwen2_sum<0>(w2))而產(chǎn)生的信號的延遲信號。更具體地說,信號wayte<ca>是借助采用移位寄存器、計時器、計數(shù)器等的延遲電路,通過使響應(yīng)于輸入第二寫入命令(或信號bwen2_sum<0>(w2))產(chǎn)生的信號延遲而獲得的信號。在輸入信號bwen2_sum<0>(w2)之后的預(yù)定時間處,信號wayte<ca>從低電平轉(zhuǎn)變?yōu)楦唠娖健?/p>
在時間t7處信號wayte<ca>到高電平的轉(zhuǎn)變導(dǎo)致脈沖產(chǎn)生器128<0>輸出低電平信號write_pulse<0>。由于信號write_pulse<0>到低電平的轉(zhuǎn)變,在時間t7處讀寫電路12<bk>停止向列0的存儲單元mc供應(yīng)寫入電流。
如果不輸入第二寫入命令,則響應(yīng)于輸入第一寫入命令(或信號bwen2_sum<0>(w1))而產(chǎn)生高電平信號wayte<0>。但是,在該實例中,在產(chǎn)生對應(yīng)于第一寫入命令的高電平信號wayte<0>之前輸入第二寫入命令。因此,不產(chǎn)生對應(yīng)于第一寫入命令的高電平信號wayte<0>。響應(yīng)于輸入第二寫入命令而產(chǎn)生高電平信號wayts<0>,并且此后產(chǎn)生高電平信號wayte<0>。
針對列1到m執(zhí)行的寫入類似于針對列0執(zhí)行的寫入。
圖11是示出第一實施例的寫入中的某些信號的時間圖。當(dāng)半導(dǎo)體存儲裝置1在其接收活動命令之后首次接收到寫入命令(第一寫入命令)時,開始圖11中所示的操作。
從存儲控制器2向輸入和輸出電路15供應(yīng)時鐘clk和clkb、信號ca0到ca9、數(shù)據(jù)選通信號dqs和數(shù)據(jù)dq。信號ca0到ca9包括存儲體地址、列地址和命令。
首先,在時間t0處,輸入活動命令?;顒用钪付ㄔL問(寫入)目標(biāo)存儲體10<bk>(在該實例中為存儲體a)。在輸入活動命令之后,在時間t1處輸入第一寫入命令。在接收第一寫入命令之后,半導(dǎo)體存儲裝置1在寫入延遲wl(對應(yīng)于三個時鐘)內(nèi)保持待機,并且在時間t4處接收數(shù)據(jù)選通信號dqs和寫入數(shù)據(jù)dq。在數(shù)據(jù)選通信號dqs上升或下降的計時處接收寫入數(shù)據(jù)dq。向讀寫電路12<bk>的頁緩沖器(未示出)供應(yīng)所接收的寫入數(shù)據(jù)dq。
在接收第一寫入數(shù)據(jù)之后的預(yù)定時間,在時間t3處接收下一個寫入命令(第二寫入命令)。在接收第二寫入命令之后,半導(dǎo)體存儲裝置1在寫入延遲wl(對應(yīng)于三個時鐘)內(nèi)保持待機,并且開始接收數(shù)據(jù)選通信號dqs和寫入數(shù)據(jù)dq。在該實例中,輸入與針對第一寫入命令輸入的寫入數(shù)據(jù)相同的寫入數(shù)據(jù)作為虛擬數(shù)據(jù)(dummydata)。因此,能夠針對同一列的存儲單元延長寫入脈沖而不改變寫入數(shù)據(jù)。
圖12是示出根據(jù)第一實施例的變形例的寫入中的某些信號的時間圖。根據(jù)該變形例,不輸入與第一寫入命令的寫入數(shù)據(jù)相同的數(shù)據(jù)作為第二寫入命令的寫入數(shù)據(jù)。相反,使用伴隨第二寫入命令的輸入寫入數(shù)據(jù)作為數(shù)據(jù)屏蔽(datamask)。
如圖12中所示,從時間t6a到時間t8a輸入伴隨第二寫入命令的寫入數(shù)據(jù)dq。在該實例中,從時間t6a到t8a將數(shù)據(jù)屏蔽信號dm保持在高電平。因此,忽略從時間t6a到時間t8a輸入的寫入數(shù)據(jù),并且在時間t4a到時間t6a處輸入的寫入數(shù)據(jù)dq保持在頁緩沖器中。如在圖11中所示的實例中,能夠針對同一列的存儲單元mc延長寫入脈沖而不改變寫入數(shù)據(jù)。圖12中所示的其它信號和操作類似于圖11中所示的信號和操作。
[1-3]第一實施例的優(yōu)點
第一實施例的半導(dǎo)體存儲裝置是有益的,因為能夠延長寫入脈沖的脈沖寬度而不受電路布局的限制,即,不需要采用諸如移位寄存器、計時器和計數(shù)器之類的用于延長寫入脈沖的電路。
例如,如果使用電路延長寫入脈沖的脈沖寬度,則額外使用此類電路導(dǎo)致電路面積的增大。本實施例的半導(dǎo)體存儲裝置首先接收第一寫入命令,并且然后在接收第一寫入命令的預(yù)定時間內(nèi)接收第二寫入命令。與其中僅接收一個寫入命令的情況相比,能夠更多地延長寫入脈沖的脈沖寬度。在接收第一寫入命令之后的預(yù)定時間短于與其中僅接收一個寫入命令的情況的寫入脈沖的脈沖寬度對應(yīng)的時間。
在第一實施例中,由信號wayts<ca>確定寫入脈沖的脈沖寬度的增加,如圖10中所示。信號wayts<ca>基于信號bwens<bk>,并且信號bwens<bk>基于信號cbank<bk>和信號each_bl4。此外,信號cbank<bk>和信號each_bl4基于包括寫入命令的信號ca。因此,信號wayts<ca>是基于寫入命令產(chǎn)生的信號。
此外,由信號wayte<ca>確定寫入脈沖的脈沖寬度的下降。信號wayte<ca>基于信號nwr<n:0>和信號an,并且信號nwr<n:0>基于信號bnwr<bk>。信號bnwr<bk>基于信號bl4_bend,并且信號bl4_bend基于信號bb<4:1>。此外,信號bb<4:1>基于包括寫入命令的信號ca。因此,信號wayte<ca>是基于寫入命令產(chǎn)生的信號。
因為在產(chǎn)生基于第一寫入命令的信號wayte<ca>之前輸入第二寫入命令,基于第一寫入命令的信號wayte<ca>的產(chǎn)生被取消,并且開始基于第二寫入命令的信號wayts<ca>和信號wayte<ca>的產(chǎn)生。相應(yīng)地,基于第一寫入命令產(chǎn)生信號wayts<ca>,并且基于第二寫入命令產(chǎn)生wayte<ca>。因此,能夠延長信號write_pulse<ca>的寫入脈沖的脈沖寬度。
將寫入脈沖的脈沖寬度的下降描述為基于信號wayte<ca>而被執(zhí)行。替代地,可以使用用于導(dǎo)致寫入脈沖的脈沖寬度下降的電路。具體地說,在輸入wayts<ca>之后通過信號wayts<ca>增加寫入脈沖的脈沖寬度,并且在預(yù)定時間之后該電路降低寫入脈沖的脈沖寬度而不產(chǎn)生信號wayte<ca>。
[2]第二實施例
根據(jù)第二實施例,通過從存儲控制器2向半導(dǎo)體存儲裝置1供應(yīng)命令而延長程序脈沖。第二實施例的總體配置和電路類似于第一實施例的總體配置和電路。在下面,將主要給出區(qū)分第二實施例與第一實施例的特性的描述。
[2-1]寫入操作
圖13示出用于根據(jù)第二實施例的寫入的命令輸入。如圖13中所示,將活動命令(active)、第一寫入命令(write)、命令(vnop:變量無操作)和第二寫入命令(writew/dm)(具有數(shù)據(jù)屏蔽)按順序從存儲控制器2輸入到半導(dǎo)體存儲裝置1。在下面,將采取存儲體地址ba[2:0]和列c[5:2](頁地址)作為實例。
響應(yīng)于第一寫入命令和第二寫入命令,針對同一存儲體地址0和同一列0執(zhí)行寫入操作。因為伴隨第二寫入命令的寫入數(shù)據(jù)是數(shù)據(jù)屏蔽的,所以不會將該寫入數(shù)據(jù)輸入到頁緩沖器,并且在頁緩沖器中按原樣保留伴隨第一寫入命令的寫入數(shù)據(jù)。
命令vnop確定第一寫入命令的輸入與第二寫入命令的輸入之間的時間長度。根據(jù)寫入脈沖的脈沖寬度被延長的時間長度改變命令vnop的值。
假設(shè)寫入脈沖的脈沖寬度被延長的時間長度為x[ns(納秒)],則根據(jù)時鐘clk和clkb的時鐘頻率[mhz(兆赫)](或時鐘的周期tck[ns])改變命令vnop的值。
圖14示出當(dāng)寫入脈沖的脈沖寬度被延長的時間長度x為10或20[ns]時,時鐘的周期數(shù)是多少。例如,如果當(dāng)時鐘頻率為533并且時鐘周期為1.875時,寫入脈沖的脈沖寬度應(yīng)被延長10ns,則將命令vnop設(shè)定為“5個周期”。如果當(dāng)時鐘頻率為400并且時鐘周期為2.5時,寫入脈沖的脈沖寬度應(yīng)被延長20ns,則將命令vnop設(shè)定為“7個周期”。命令vnop的值由“vnop=ru(x/tck)-1”給出,其中ru表示舍入小數(shù)點之后的數(shù)字,如上所述。
圖15示出應(yīng)用了圖14中所示實例的寫入脈沖。當(dāng)時鐘頻率為400mhz,時鐘周期為2.5ns并且命令vnop為“3個周期”時,使用寫入脈沖。如圖15的(b)處所示,寫入脈沖的脈沖寬度為(30+x)ns。如圖15的(a)處所示,寫入脈沖的未延長脈沖寬度(即,其中輸入一個寫入命令的情況的脈沖寬度)為30ns。
如果將寫入目標(biāo)列更改為另一列,則在輸入第二寫入命令之后輸入命令nop(無操作),如圖13中所示。然后,按順序輸入寫入命令(write)、命令vnop和寫入命令(writew/dm)。以這種方式,將寫入目標(biāo)列從“0”更改為“1”,并且能夠延長寫入脈沖的脈沖寬度。命令nop表示在相關(guān)的一個周期內(nèi)不執(zhí)行操作。
注意,根據(jù)第二實施例輸入命令vnop,代替命令vnop,可以輸入命令nop。
[2-2]第二實施例的優(yōu)點
如上所述,通過在輸入第一寫入命令之后輸入命令vnop,能夠改變執(zhí)行第二寫入命令的計時。因此,能夠控制寫入脈沖的脈沖寬度被延長的時間長度。例如,如果通過編程按順序輸入活動命令(active)、第一寫入命令(write)、命令(vnop)、以及第二寫入命令(writew/dm),則能夠容易地延長寫入脈沖的脈沖寬度。
例如,各實施例能夠應(yīng)用于類似mram的電阻變化型存儲器,例如reram(電阻隨機存取存儲器)和pcram(相變隨機存取存儲器),所述電阻變化型存儲器包括用于使用元件的電阻變化來存儲數(shù)據(jù)的元件。
各實施例能夠應(yīng)用于包括這樣的元件的半導(dǎo)體存儲裝置:該元件用于通過施加必要的電流或電壓,使用該元件的電阻變化來存儲數(shù)據(jù),或者用于通過將取決于該元件的電阻變化的電阻差轉(zhuǎn)換成電流差或電壓差,讀取存儲到該元件的數(shù)據(jù)。
盡管描述了特定實施例,但這些實施例僅通過實例的方式提供,并且它們并非旨在限制實施例的范圍。實際上,可以以各種其它形式體現(xiàn)在此描述的新穎方法和系統(tǒng);此外,可以對在此描述的方法和系統(tǒng)的形式進(jìn)行各種省略、替換和更改而不偏離實施例的精神。所附權(quán)利要求及其等效物旨在覆蓋落入實施例的精神和范圍內(nèi)的這些形式或修改。