TWI433163B - 記憶體控制器及其控制方法 - Google Patents

記憶體控制器及其控制方法 Download PDF

Info

Publication number
TWI433163B
TWI433163B TW098144508A TW98144508A TWI433163B TW I433163 B TWI433163 B TW I433163B TW 098144508 A TW098144508 A TW 098144508A TW 98144508 A TW98144508 A TW 98144508A TW I433163 B TWI433163 B TW I433163B
Authority
TW
Taiwan
Prior art keywords
read
count value
data
write
memory controller
Prior art date
Application number
TW098144508A
Other languages
English (en)
Other versions
TW201123202A (en
Inventor
Yu Lin Chen
Hsian Feng Liu
Ming Chieh Yeh
Original Assignee
Mstar Semiconductor Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mstar Semiconductor Inc filed Critical Mstar Semiconductor Inc
Priority to TW098144508A priority Critical patent/TWI433163B/zh
Priority to US12/976,815 priority patent/US8412883B2/en
Publication of TW201123202A publication Critical patent/TW201123202A/zh
Application granted granted Critical
Publication of TWI433163B publication Critical patent/TWI433163B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Description

記憶體控制器及其控制方法
本發明是有關於一種記憶體控制器及其控制方法,且特別是有關於一種記憶體控制器中先進先出緩衝器(first in first out,FIFO)的指標控制方法。
一般來說,記憶體控制器可連接至記憶體模組,可將資料寫入記憶體模組或者由記憶體模組中讀取資料。現今最普遍的記憶體模組即為雙倍資料速率(double data rate,以下簡稱DDR)記憶體模組。
一般來說,當記憶體控制器發出寫入指令時,資料可從記憶體控制器傳送至記憶體模組並儲存。而當記憶體控制器發出讀取指令時,資料可從記憶體模組傳送至記憶體控制器,並進行後續處理。
請參照第一圖,其所繪示為記憶體控制器與記憶體模組之間的連線示意圖。記憶體控制器100與DDR記憶體模組200之間的信號至少包括:外部時脈CLKext、位址信號、指令信號、資料串列信號DQ0~DQ7與資料觸發(data strobe)信號DQS。其中,指令信號包括寫入致能信號WE;位址信號包括:記憶體位址信號A0~A13、列位址觸發信號(row address strobe)RAS、行位址觸發信號(column address strobe)CAS。
再者,一個DDR交易(transaction)包括以下的步驟:首先,記憶體控制器100發出指令信號以及位址信號,而DDR記憶體模組200即可根據指令信號以及位址信號來獲得一指令,該指令可為一寫入指令或者一讀取指令。接著,DDR記憶體模組200即根據指令來準備儲存或輸出資料。
當該指令為寫入指令時,資料串列信號DQ0~DQ7與資料觸發信號DQS係由記憶體控制器100所產生。因此,DDR記憶體模組200根據記憶體控制器100所產生的資料觸發信號DQS來拴鎖(latch)資料串列信號DQ0~DQ7上的資料並且寫入DDR記憶體模組200內對應的記憶體位址內。
從DDR記憶體模組200接收到讀取指令到資料準備好可以輸出的時間稱為行位址觸發延遲時間(CAS latency)CL。而記憶體控制器100於起始測試時(startup test)即可得知DDR記憶體模組200的行位址觸發延遲時間CL,一般約為2個外部時脈CLKext週期(CL=2)。也就是說,當指令為讀取指令時,DDR記憶體模組200會在行位址觸發延遲時間CL後,才會驅動資料串列信號DQ0~DQ7。此時,記憶體控制器100即可根據資料觸發信號DQS來拴鎖資料串列信號DQ0~DQ7並獲得相對應記憶體位址內的資料。
請參照第二圖,其所繪示為讀取指令時的信號時序圖。一般來說,DDR記憶體模組200於輸出資料時,會產生資料觸發信號DQS以及資料串列信號DQ0~DQ7,此時資料觸發信號DQS的頻率與外部時脈CLKext相同;反之,DDR記憶體模組200未輸出資料之前,資料觸發信號DQS係位於高阻抗(high impedance)的第三狀態(tri-state)。
由第二圖可知,於時間T0時,由位址信號(Address signal)與指令信號(Command signal)可獲得記憶體位址A0~A13與讀取指令(Read),而其他時間則是無運作(no operation,NOP)。由於行位址觸發延遲時間CL為2個外部時脈CLKext週期(CL=2),因此,資料觸發信號DQS於時間T1由第三狀態轉變為低準位,並於時間T2至時間T4之間產生高低準位變換,而於時間T4之後再次轉變為第三狀態。再者,經過了2個外部時脈CLKext週期的行位址觸發延遲時間(CL=2)後,於時間T2至T4的時間內,資料串列信號DQ0~DQ7上依序產生D0、D1、D2、D3的資料。因此,記憶體控制器100即可根據資料觸發信號DQS的上升緣與下降緣來拴鎖資料串列信號DQ0~DQ7的D0、D1、D2、D3資料。一般來說,記憶體控制器100係將資料觸發信號DQS延遲相位90度之後即可以拴鎖資料串列信號DQ0~DQ7。
請參照第三圖,其所繪示為習知記憶體控制器的示意圖。記憶體控制器100包括一時脈產生器102、指令產生器104、寫入指標(write pointer)106、讀取指標(read pointer)108、先進先出(first-in-first-out,FIFO)緩衝器110、以及處理電路112。
一般來說,記憶體控制器100中的內部時脈CLKin與外部時脈CLKext的頻率相同但是相位不同。因此,DDR記憶體模組200輸出的資料串列信號DQ0~DQ7的相位與內部時脈CLKin的相位並不相同。也就是說,資料串列信號DQ0~DQ7與內部時脈CLKin不同步(non-synchronous)。
為了要解決記憶體控制器100內外資料不同步的問題,於記憶體控制器100內會設置一先進先出緩衝器110。並且,資料串列信號DQ0~DQ7上的資料係根據資料觸發信號DQS寫入先進先出緩衝器110,而記憶體控制器100內的處理電路112則根據內部時脈CLKin來讀取先進先出緩衝器110內的資料。
如第三圖所示,指令產生器104可根據外部時脈CLKext產生位址信號與指令信號。而先進先出緩衝器110可根據資料串列信號DQ0~DQ7以及資料觸發信號DQS將資料寫入先進先出緩衝器110。之後,處理電路112會根據內部時脈CLKin來產生讀取信號Fetch至先進先出緩衝器110,並將先進先出緩衝器110內的資料Data依序讀出。
為了能夠有效地管理先進先出緩衝器110,記憶體控制器100更包括一寫入指標106以及一讀取指標108。寫入指標106與讀取指標108可視為一計數器,當DDR記憶體模組200寫入一筆資料時,寫入指標106會加1;同理,當處理電路112讀取一筆資料時,讀取指標108也會加1。也就是說,寫入指標106可根據資料觸發信號DQS來進行計數;而讀取指標108可根據讀取信號Fetch來計數。
請參照第四圖A~F,其所繪示為先進先出緩衝器的動作示意圖。以下範例係以第二圖所示信號圖為例舉例來說,並且,先進先出緩衝器110有四層(layer),#00、#01、#10、#11,每一層可儲存一筆資料。再者,寫入指標106與讀取指標108皆為二位元計數器,並且寫入指標106內的寫入計數值與讀取指標108內的讀取計數值皆為“11”。
請參照第四圖A,於時間T2(資料觸發信號DQS上升緣)時,D0資料寫入先進先出緩衝器110的00層,此時寫入指標Wptr加1使得寫入計數值成為“00”,代表已有有效資料(valid data)暫存於00層;再者,讀取指標Rptr的讀取計數值維持“11”,代表尚未有資料被讀取。請參照第四圖B,於時間T2’(資料觸發信號DQS下降緣)時,D1資料寫入先進先出緩衝器110的01層,此時寫入指標Wptr加1使得寫入計數值成為“01”,代表已有有效資料暫存於01層;再者,讀取指標Rptr的讀取計數值維持“11”,代表尚未有資料被讀取。
當寫入指標Wptr的寫入計數值與讀取指標Rptr的讀取計數值差異超過一設定值,例如“2”時,處理電路112會開始讀取先進先出緩衝器110內的資料。因此,如第四圖C所示,於時間T3(資料觸發信號DQS上升緣)時,D2資料寫入先進先出緩衝器110的10層,此時寫入指標Wptr加1使得寫入計數值成為“10”,代表已有有效資料暫存於10層;再者,當D0資料被讀取之後讀取指標Rptr加1使得讀取計數值成為“00”,代表D0資料已經成為無效資料(invalid data)。如第四圖D所示,於時間T3’(資料觸發信號DQS下降緣)時,D3資料輸入先進先出緩衝器110的11層,此時寫入指標Wptr加1使得寫入計數值成為“11”,代表已有有效資料暫存於11層;再者,當D1資料被讀取之後讀取指標Rptr加1使得讀取計數值成為“01”,代表D1資料為無效資料。
於時間T4之後,已沒有任何資料輸入先進先出緩衝器110,並且資料觸發信號DQS也不再動作,因此,寫入指標Wptr的寫入計數值會維持在“11”。再者,處理電路112必須持續讀取先進先出緩衝器110內的資料。如第四圖E所示,當D2資料被讀取之後讀取指標Rptr加1使得讀取計數值成為“10”,代表D2資料可視為無效資料。如第四圖F所示,當D3資料被讀取之後讀取指標Rptr加1使得讀取計數值成為“11”,代表D3資料可視為無效資料。
同理,當記憶體控制器100再次產生讀取指令時,讀取指標Rptr與寫入指標Wptr會再次以相同的動作原理來操作,因此不再贅述。由上述可知,先進先出緩衝器110可視為一環緩衝器(ring buffer),而寫入指標Wptr的寫入計數值代表有效資料位置,而讀取指標Rptr的讀取計數值代表無效資料的位置。
由於記憶體控制器100與DDR記憶體模組200係焊接於電路板(未繪示)上,並且利用電路板上的佈線(layout trace)來達成信號連接。不可避免地,電路板上可能會產生雜訊。
換句話說,當記憶體控制器100未讀取資料且資料觸發信號DQS在第三狀態時,如果資料觸發信號DQS受到雜訊干擾而產生閃爍(glitch)時,將造成寫入指標Wptr加1。然而,並沒有任何的有效資料輸入先進先出緩衝器110。如此,將使得處理電路112接收到錯誤的資料,嚴重的話將造成整個系統的當機。
本發明提出一種記憶體控制器及其控制方法,於有效資料即將寫入先進先出緩衝器之前,利用一指標校正單元將正確的數值更新於寫入指標內。
本發明更提出一種記憶體控制器,連接至一記憶體模組,包括:一時脈產生器,用以產生一內部時脈以及產生一外部時脈至該記憶體模組;一指令產生器,用以根據該外部時脈產生一讀取指令至該記憶體模組;一先進先出緩衝器,用以於該指令產生器產生該讀取指令後的一行位址觸發延遲時間,根據該記憶體模組產生的一資料觸發信號將該記憶體模組產生的一資料串列信號中的資料寫入該先進先出緩衝器;一處理電路,用以根據該內部時脈進行運作並讀取該先進先出緩衝器內的資料;一寫入指標,用以根據該資料觸發信號來進行計數,並且該寫入指標的計數值係代表該先進先出緩衝器內有效資料的位置;一讀取指標,用以根據處理電路讀取該先進先出緩衝器內資料的次數來進行計數,並且該讀取指標的計數值係代表該先進先出緩衝器內無效資料的位置;以及,一指標校正單元,連接至該指令產生器,用以於該讀取指令產生後該記憶體模組輸出資料之前,控制該寫入指標內的數值相同於該讀取指標內的數值。
本發明更提出一種記憶體控制器的控制方法,該記憶體控制器連接至一記憶體模組,並可利用一先進先出緩衝器接收該記憶體模組輸出的資料,一寫入指標來代表該先進先出緩衝器內有效資料的位置,及一讀取指標來代表該先進先出緩衝器內無效資料的位置,根據該記憶體控制器的控制方法,於該記憶體控制器產生一讀取指令產生之後的一行位址觸發延遲時間之內,該寫入指標內的數值係控制相同於該讀取指標內的數值。
為了使 貴審查委員能更進一步瞭解本發明特徵及技術內容,請參閱以下有關本發明之詳細說明與附圖,然而所附圖式僅提供參考與說明,並非用來對本發明加以限制。
根據本發明的實施例,於記憶體控制器內增加一指標校正單元,並於DDR記憶體模組即將輸出有效資料至先進先出緩衝器之前,利用該指標校正單元將正確的數值更新於寫入指標。
請參照第五圖,其所繪示為本發明記憶體控制器的示意圖。記憶體控制器300包括一時脈產生器302、指令產生器304、寫入指標306、讀取指標308、先進先出緩衝器310、以及處理電路312、以及指標校正單元320。
其中,時脈產生器302可產生一外部時脈CLKext至DDR記憶體模組400,以及產生一內部時脈CLKin至處理電路312使得處理電路312根據內部時脈CLKin來運作。指令產生器304可根據外部時脈CLKext產生一讀取指令至DDR記憶體模組400。先進先出緩衝器310係根據DDR記憶體模組400產生的資料觸發信號DQS將資料串列信號DQ0~DQ7中的資料寫入先進先出緩衝器310,以及,先進先出緩衝器310係根據處理電路312所產生的讀取信號Fetch來輸出資料Data。寫入指標306根據資料觸發信號DQS來進行計數,並且其計數值可代表先進先出緩衝器310內有效資料的位置。讀取指標308根據讀取信號Fetch來進行計數,並且其計數值可代表先進先出緩衝器310內無效資料的位置。
根據本發明的實施例,由於記憶體控制器300已先行得知DDR記憶體模組400的行位址觸發延遲時間CL。因此,指標校正單元320連接至指令產生器304,當指令產生器304產生讀取指令時,可輸出一校正信號CHK至指標校正單元320,而指標校正單元320即可根據行位址觸發延遲時間CL並在有效資料輸入之前適時的將讀取指標308內的讀取計數值更新於寫入指標306的寫入計數值。
由先前技術的說明可知,當處理電路312讀取先前最後一筆資料後,寫入指標306與讀取指標308內的寫入計數值與讀取計數值會相同。因此,當下一個讀取指令產生到有效資料寫入先進先出緩衝器310之前,寫入指標306與讀取指標308內的寫入計數值與讀取計數值也必須維持相同的數值。因此,本發明的指標校正單元320即利用上述特性來更新寫入指標306的寫入計數值,亦即利用讀取指標308內的讀取計數值來更新寫入指標306的寫入計數值。因此可以確定DDR記憶體模組400產生有效資料並寫入先進先出緩衝器310之前,寫入指標306與讀取指標308內的寫入計數值與讀取計數值相同。
以行位址觸發延遲時間CL等於2為例(CL=2),當指令產生器304產生讀取指令後的2個外部時脈CLKext週期時間之內,就算資料觸發信號DQS受到雜訊干擾而產生閃爍造成寫入指標306改變寫入計數值,然而此時讀取指標308的讀取計數值並不會受到影響。因此,於有效資料輸入先進先出緩衝器310之前,指標校正單元320會先行將正確的讀取計數值更新於寫入指標306內的寫入計數值。
之後,當DDR記憶體模組400開始產生資料觸發信號DQS與資料串列信號DQ0~DQ7並將有效資料輸入先進先出緩衝器310時,寫入指標306內的寫入計數值已經確認為正確的數值。因此,寫入指標306根據資料觸發信號DQS來繼續計數也可以進一步確定處理電路312將不會接收到錯誤的資料而產生誤動作。
上述的實施例中指標校正單元304係利用行位址觸發延遲時間CL,於讀取指令產生後且有效資料輸入先進先出緩衝器310之前,將讀取指標308內的讀取計數值更新於寫入指標306內。
請參照第六圖,其所繪示為根據本發明一實施例之記憶體控制器的控制方法流程圖。於記憶體控制器開始運作時,獲得一行位址觸發延遲時間CL(步驟S10)。接著,當指令產生器304發出一讀取指令時(步驟S12),則於行位址觸發延遲時間CL之內將讀取指標308內的讀取計數值更新於寫入指標306的寫入計數值(步驟S14)。反之,當指令產生器304未發出讀取指令時(步驟S12),則繼續等待指令產生器304發出讀取指令。當然,於寫入指標306的寫入計數值被更新之後,即可再次等待下一次的讀取指令產生。
因此,於行位址觸發延遲時間CL之後,DDR記憶體模組400開始產生資料觸發信號DQS與資料串列信號DQ0~DQ7並將有效資料輸入先進先出緩衝器310時,寫入指標306內的寫入計數值已經確認為正確的數值。據此,寫入指標306根據資料觸發信號DQS來繼續計數並可進一步確定處理電路312將不會接收到錯誤的資料而產生誤動作。
然而,在此技術領域的技術人員也可以利用其他方式來達成相同的功效。請參照第七圖,其所繪示為根據本發明另一實施例之記憶體控制器的控制方法流程圖。於記憶體控制器開始運作時,獲得一行位址觸發延遲時間CL(步驟S20)。接著,當指令產生器304發出一讀取指令時(步驟S22),則判斷讀取指標308內的讀取計數值是否等於寫入指標306的寫入計數值(步驟S24)。反之,當指令產生器304未發出讀取指令時(步驟S22),則繼續等待指令產生器304發出讀取指令。
接著,當讀取指標308內的讀取計數值不等於寫入指標306的寫入計數值時(步驟S24),於行位址觸發延遲時間CL之內將讀取指標308內的讀取計數值更新於寫入指標306的寫入計數值(步驟S26),並且於寫入指標306的寫入計數值被更新之後,即可再次等待下一次的讀取指令產生。
反之,當讀取指標308內的讀取計數值等於寫入指標306的寫入計數值時(步驟S24),則不需進行寫入指標306的更新,直接等待下一次的讀取指令產生。
也就是說,於讀取指令產生後且有效資料輸入先進先出緩衝器310之前,指標校正單元320可比較讀取指標308與寫入指標306內的讀取計數值與寫入計數值。當寫入計數值與讀取計數值相同時,指標校正單元320不更新寫入指標306;反之,當寫入計數值與讀取計數值不相同時,指標校正單元320利用正確的讀取計數值來更新寫入指標306的寫入計數值。
因此,本發明提出一種記憶體控制器及其控制方法,於有效資料即將寫入先進先出緩衝器之前,利用一指標校正單元將正確的讀取計數值更新於寫入指標內的寫入計數值,確保後續的處理電路不會讀取到無效資料而造成系統的當機。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
本案圖式中所包含之各元件列示如下:
100、300...記憶體控制器
102、302...時脈產生器
104、304...指令產生器
106、306...寫入指標
108、308...讀取指標
110、310...先進先出緩衝器
112、312...處理電路
200、400...DDR記憶體模組
320...指標校正單元
本案得藉由下列圖式及說明,俾得更深入之了解:
第一圖所繪示為記憶體控制器與記憶體模組之間的連線示意圖。
第二圖所繪示為讀取指令時信號示意圖。
第三圖所繪示為習知記憶體控制器的示意圖。
第四圖A~F所繪示為先進先出緩衝器的動作示意圖。
第五圖所繪示為本發明記憶體控制器的示意圖。
第六圖所繪示為根據本發明之一實施例之記憶體控制器的控制方法流程圖。
第七圖所繪示為根據本發明之另一實施例之記憶體控制器的控制方法流程圖。
300...記憶體控制器
302...時脈產生器
304...指令產生器
306...寫入指標
308...讀取指標
310...先進先出緩衝器
312...處理電路
320...指標校正單元
400...DDR記憶體模組

Claims (15)

  1. 一種記憶體控制器,連接至一記憶體模組,包括:一時脈產生器,用以產生一內部時脈,以及產生一外部時脈至該記憶體模組;一指令產生器,用以根據該外部時脈產生一讀取指令至該記憶體模組;一先進先出緩衝器,用以於該指令產生器產生該讀取指令後的一行位址觸發延遲時間,根據該記憶體模組產生的一資料觸發信號將該記憶體模組產生的一資料串列信號中的資料寫入該先進先出緩衝器;一處理電路,用以根據該內部時脈運作並讀取該先進先出緩衝器內的資料;一寫入指標,用以根據該資料觸發信號進行計數以產生一寫入計數值,並且該寫入計數值係代表該先進先出緩衝器內有效資料的位置;一讀取指標,用以根據該處理電路讀取該先進先出緩衝器內資料的次數進行計數以產生一讀取計數值,並且該讀取計數值係代表該先進先出緩衝器內無效資料的位置;以及一指標校正單元,連接至該指令產生器,用以於該讀取指令產生後且該記憶體模組輸出資料之前,控制該寫入計數值相同於該讀取計數值。
  2. 如申請專利範圍1所述的記憶體控制器,其中該記憶體模組為一雙倍資料速率記憶體模組。
  3. 如申請專利範圍1所述的記憶體控制器,其中當該處理電路讀取一次該先進先出緩衝器內的資料時,該讀取指標加1。
  4. 如申請專利範圍1所述的記憶體控制器,其中該先進先出緩衝器係為一環緩衝器,且該讀取指標與該寫入指標係為計數器。
  5. 如申請專利範圍1所述的記憶體控制器,其中該指標校正單元係比較該讀取計數值與該寫入計數值,且於該讀取計數值與該寫入計數值不相同時,將該讀取指標內的該讀取計數值更新於該寫入指標內的該寫入計數值。
  6. 一種記憶體控制器的控制方法,該記憶體控制器連接至一記憶體模組,該控制方法包括下列步驟:獲得該記憶體模組的一行位址觸發延遲時間;判斷該記憶體控制器中的一指令產生器是否產生一讀取指令;以及當該指令產生器產生該讀取指令時,於該行位址觸發延遲時間內,將該記憶體控制器中一讀取指標的一讀取計數值更新於一寫入指標的一寫入計數值;其中,該記憶體模組的一資料被寫入該記憶體控制器中之一先進先出緩衝器,該讀取計數值係代表從該先進先出緩衝器讀取該資料的位置,該寫入計數值係代表寫入該資料至該先進先出緩衝器內的位置。
  7. 如申請專利範圍6所述的記憶體控制器的控制方法,其中該記憶體模組為一雙倍資料速率記憶體模組。
  8. 如申請專利範圍7所述的記憶體控制器的控制方法,其 中更包括下列步驟:於產生該讀取指令之後的該行位址觸發延遲時間,根據該雙倍資料速率記憶體模組的一資料觸發信號來更改該寫入指標的該寫入計數值,並且該寫入計數值係代表該記憶體控制器中該先進先出緩衝器內有效資料的位置。
  9. 如申請專利範圍8所述的記憶體控制器的控制方法,其中更包括下列步驟:於該記憶體控制器中的一處理電路讀取該先進先出緩衝器內資料的次數來改變該讀取計數值,並且該讀取計數值係代表該先進先出緩衝器內無效資料的位置。
  10. 如申請專利範圍8所述的記憶體控制器的控制方法,其中該先進先出緩衝器係為一環緩衝器,且該讀取指標與該寫入指標係為計數器。
  11. 一種記憶體控制器的控制方法,該記憶體控制器連接至一記憶體模組,該控制方法包括下列步驟:獲得該記憶體模組的一行位址觸發延遲時間;判斷該記憶體控制器中的一指令產生器是否產生一讀取指令;當該指令產生器產生該讀取指令時,比較該記憶體控制器中一讀取指標的一讀取計數值與一寫入指標的一寫入計數值;以及於該讀取計數值與該寫入計數值不相同時,於該行位址觸發延遲時間內,將該記憶體控制器中該讀取指標的該讀取計數值更新於該寫入指標的該寫入計數值;其中,該記憶體模組的一資料被寫入該記憶體控制器 中之一先進先出緩衝器,該讀取計數值係代表從該先進先出緩衝器讀取該資料的位置,該寫入計數值係代表寫入該資料至該先進先出緩衝器內的位置。
  12. 如申請專利範圍11所述的記憶體控制器的控制方法,其中該記憶體模組為一雙倍資料速率記憶體模組。
  13. 如申請專利範圍12所述的記憶體控制器的控制方法,其中更包括下列步驟:於產生該讀取指令之後的該行位址觸發延遲時間,根據雙倍資料速率記憶體模組的一資料觸發信號來更改該寫入指標的該寫入計數值,並且該寫入計數值係代表該記憶體控制器中該先進先出緩衝器內有效資料的位置。
  14. 如申請專利範圍13所述的記憶體控制器的控制方法,其中更包括下列步驟:於該記憶體控制器中的一處理電路讀取該先進先出緩衝器內資料的次數來改變該讀取計數值,並且該讀取計數值係代表該先進先出緩衝器內無效資料的位置。
  15. 如申請專利範圍13所述的記憶體控制器的控制方法,其中該先進先出緩衝器係為一環緩衝器,且該讀取指標與該寫入指標係為計數器。
TW098144508A 2009-12-23 2009-12-23 記憶體控制器及其控制方法 TWI433163B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098144508A TWI433163B (zh) 2009-12-23 2009-12-23 記憶體控制器及其控制方法
US12/976,815 US8412883B2 (en) 2009-12-23 2010-12-22 Memory controller and associated control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098144508A TWI433163B (zh) 2009-12-23 2009-12-23 記憶體控制器及其控制方法

Publications (2)

Publication Number Publication Date
TW201123202A TW201123202A (en) 2011-07-01
TWI433163B true TWI433163B (zh) 2014-04-01

Family

ID=44152769

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098144508A TWI433163B (zh) 2009-12-23 2009-12-23 記憶體控制器及其控制方法

Country Status (2)

Country Link
US (1) US8412883B2 (zh)
TW (1) TWI433163B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612676B2 (en) 2010-12-22 2013-12-17 Intel Corporation Two-level system main memory
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
US9250859B2 (en) * 2014-01-17 2016-02-02 Altera Corporation Deterministic FIFO buffer
JP6632876B2 (ja) * 2015-12-04 2020-01-22 シナプティクス・ジャパン合同会社 バッファメモリ装置及び表示駆動デバイス
CN109446125B (zh) * 2018-10-09 2024-04-02 武汉正维电子技术有限公司 Ddr读写仲裁器及方法
CN115934023A (zh) * 2021-08-31 2023-04-07 华为技术有限公司 数据处理方法、数据处理装置以及相关设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078980A (en) * 1998-12-29 2000-06-20 Intel Corporation Regulating a data transfer time
US6381659B2 (en) * 1999-01-19 2002-04-30 Maxtor Corporation Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6288575B1 (en) * 1999-08-24 2001-09-11 Micron Technology, Inc. Pseudo-differential current sense amplifier with hysteresis
US6696854B2 (en) * 2001-09-17 2004-02-24 Broadcom Corporation Methods and circuitry for implementing first-in first-out structure

Also Published As

Publication number Publication date
US8412883B2 (en) 2013-04-02
TW201123202A (en) 2011-07-01
US20110153963A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
TWI433163B (zh) 記憶體控制器及其控制方法
JP5579979B2 (ja) 半導体装置、内部信号タイミング回路、及び遅延時間測定方法
US7724606B2 (en) Interface circuit
TWI474178B (zh) 動態資料選通偵測
US8843778B2 (en) Dynamically calibrated DDR memory controller
US7423465B2 (en) Duty cycle error calculation circuit for a clock generator having a delay locked loop and duty cycle correction circuit
US6646929B1 (en) Methods and structure for read data synchronization with minimal latency
EP2808801B1 (en) Multiple data rate memory with read timing information
JP2010272026A (ja) タイミング調整回路及びタイミング調整方法
JP5577776B2 (ja) メモリ制御装置及びマスクタイミング制御方法
US20120008437A1 (en) Counter circuit, latency counter, semiconductor memory device including the same, and data processing system
TWI508087B (zh) 記憶體信號的動態相位追蹤方法及其相關控制電路
CN102110461B (zh) 存储器控制器及其控制方法
JPWO2011077574A1 (ja) 信号復元回路、レイテンシ調整回路、メモリコントローラ、プロセッサ、コンピュータ、信号復元方法及びレイテンシ調整方法
US7796465B2 (en) Write leveling of memory units designed to receive access requests in a sequential chained topology
EP2522017B1 (en) Memory device including a memory block having a fixed latency data output
JP4419074B2 (ja) 半導体記憶装置
JP2004062630A (ja) Fifoメモリ及び半導体装置
JP4266436B2 (ja) 半導体記憶装置
JP2010026896A (ja) メモリシステム、及び、メモリエラー要因特定方法
KR20130119170A (ko) 파이프 레지스터 회로 및 이를 포함하는 반도체 메모리 장치
JP5471437B2 (ja) 半導体集積回路装置およびキャッシュメモリ制御方法
TWI813379B (zh) 用於靜態隨機存取記憶體的輸出控制介面
JP2012079075A (ja) Cpuインターフェース回路
JP2009145960A (ja) マスタ・スレーブシステム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees