TWI399645B - 管理記憶體讀出資料之方法以及記憶裝置 - Google Patents

管理記憶體讀出資料之方法以及記憶裝置 Download PDF

Info

Publication number
TWI399645B
TWI399645B TW099101021A TW99101021A TWI399645B TW I399645 B TWI399645 B TW I399645B TW 099101021 A TW099101021 A TW 099101021A TW 99101021 A TW99101021 A TW 99101021A TW I399645 B TWI399645 B TW I399645B
Authority
TW
Taiwan
Prior art keywords
buffer
memory
data
sector
read
Prior art date
Application number
TW099101021A
Other languages
English (en)
Other versions
TW201124843A (en
Inventor
Wei Yi Hsiao
Original Assignee
Silicon Motion 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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to TW099101021A priority Critical patent/TWI399645B/zh
Priority to US12/822,288 priority patent/US8412893B2/en
Publication of TW201124843A publication Critical patent/TW201124843A/zh
Application granted granted Critical
Publication of TWI399645B publication Critical patent/TWI399645B/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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

管理記憶體讀出資料之方法以及記憶裝置
本發明係有關於記憶體所對應之控制器,特別是有關於記憶體所對應之控制器的乒乓緩衝器(ping-pong buffer)。
記憶體係供一主機儲存資料之用。舉例來說,快閃記憶體包含多個區塊(block),每一區塊包含多個頁(page),每一頁可儲存多個資料扇區(sector)。主機通常並非直接存取記憶體之資料,而係透過記憶體所對應之控制器間接存取記憶體中的資料。當主機欲讀取記憶體之資料時,會向控制器發送讀取命令,由控制器依據讀取命令讀取記憶體儲存之資料。當主機欲將資料寫入至記憶體時,會向控制器發送寫入命令,由控制器依據寫入命令將資料寫入記憶體。
當控制器自記憶體讀取資料時,控制器會向記憶體傳送主機所欲讀取的位址範圍,然後由記憶體依據位址範圍讀出資料後傳送資料至控制器。控制器中通常包含一乒乓緩衝器(ping-pong buffer),該乒乓緩衝器包括兩個以上的緩衝器,分別用以儲存由記憶體輸出的資料。當控制器自記憶體接收資料並儲存於乒乓緩衝器的其中一緩衝器中後,主機再由該緩衝器中讀取記憶體輸出的資料。
當主機欲讀取之位址範圍包括多個頁時,記憶體係依次對該等頁進行讀取,再輸出各頁儲存之資料至控制器。記憶體之每一頁可儲存多個資料扇區,記憶體亦係逐次讀取一頁中儲存的多個資料扇區,再逐次輸出各資料扇區至控制器。然而,每當記憶體對一頁的資料讀取完畢時,記憶體電路必須切換目前所讀取的頁面至下一頁,而切換頁的動作需要額外的時間。第1圖為記憶體輸出所讀取的資料的時間示意圖。首先,記憶體耗費時間T1 以將所讀取的頁切換為第1頁。假設第1頁共儲存有K個資料扇區。接著,記憶體耗費K個時間T2 以分別讀取第1頁之第1扇區、第2扇區、...、第K扇區,並分別將第1頁之第1扇區、第2扇區、...、第K扇區輸出至控制器的乒乓緩衝器。接著,記憶體再耗費時間T1 以將所讀取的頁切換為第2頁。接著,記憶體再耗費K個時間T2 以分別讀取第2頁之第1扇區、第2扇區、...、第K扇區,並分別將第2頁之第1扇區、第2扇區、...、第K扇區輸出至控制器的乒乓緩衝器。
由於記憶體切換頁的動作需要額外的時間,因此,當記憶體切換所讀取之頁時,控制器的乒乓緩衝器就必須等待較長的時間才會達到一定的資料儲存量,而主機也必須等待較長的時間才能自乒乓緩衝器讀取資料。由於主機所欲讀取之位址範圍通常包括多個頁,因此記憶體讀取該位址範圍時會頻繁的切換所讀取之頁,造成讀取動作的延遲,而使系統的效能下降。因此,需要一種管理記憶體讀出資料之方法,以減少讀取動作之延遲,從而提升系統的效能。
有鑑於此,本發明之目的在於提供一種管理記憶體讀出資料之方法,以解決習知技術存在之問題。於一實施例中,一記憶體所對應之一控制器包括一乒乓緩衝器(ping-pong buffer),該乒乓緩衝器包括一第一緩衝器以及一第二緩衝器,該記憶體包括多個頁(page),每一頁均包括多個資料扇區(sector)。首先,計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間。接著,計算一主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間。接著,取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間。接著,依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目。最後,當該記憶體輸出資料至該乒乓緩衝器時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該第一緩衝器以及該第二緩衝器。
本發明更提供一種記憶裝置。於一實施例中,該記憶裝置耦接至一主機,包括一記憶體以及一控制器。該記憶體包括多個頁(page)以供儲存資料,每一頁均包括多個資料扇區(sector)。該控制器包括一乒乓緩衝器(ping-pong buffer)以儲存該記憶體讀出之資料,計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間,計算該主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間,取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間,依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目,以及當該記憶體輸出資料時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該乒乓緩衝器所包括的一第一緩衝器以及一第二緩衝器。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第2圖為依據本發明之資料讀取系統200的區塊圖。資料讀取系統200包括一主機202及一記憶裝置204。記憶裝置204係為主機202儲存資料。記憶裝置204包括一控制器212及一記憶體214。記憶體214包括多個區塊(block),每一區塊包括多個頁(page),每一頁可儲存多個資料扇區(sector)。控制器212包括一乒乓緩衝器(ping-pong buffer)220。控制器212自主機202接收讀取命令,並依據讀取命令指示記憶體214讀取資料。當記憶體214讀取資料後,記憶體214將讀出資料傳送回控制器212。控制器212便將自記憶體214接收之資料儲存於乒乓緩衝器220中。
乒乓緩衝器220包括兩個以上的緩衝器。於一實施例中,乒乓緩衝器220包括一第一緩衝器222以及一第二緩衝器224。控制器212依據一緩衝器容納扇區數目進行第一緩衝器222及第二緩衝器224之切換。當控制器212自記憶體214接收資料,控制器212首先將資料儲存至乒乓緩衝器220的第一緩衝器222。控制器212接著檢查是否第一緩衝器222中儲存的資料扇區數目已達到該緩衝器容納扇區數目。當第一緩衝器222中儲存的資料扇區數目已達到該緩衝器容納扇區數目時,控制器212便將後續自記憶體214所接收的資料轉儲存至乒乓緩衝器220的第二緩衝器224。
當第二緩衝器224自記憶體214接收資料的同時,控制器212將第一緩衝器222中儲存的資料向主機202輸出。控制器212接著檢查是否第二緩衝器224中儲存的資料扇區數目已達到該緩衝器容納扇區數目。當第二緩衝器224中儲存的資料扇區數目已達到該緩衝器容納扇區數目時,控制器212便將後續自記憶體214所接收的資料轉儲存至第一緩衝器222。當第一緩衝器222自記憶體214接收資料的同時,控制器212將第二緩衝器224中儲存的資料向主機202輸出。因此,乒乓緩衝器220的兩個緩衝器222及224其中之一由記憶體214接收資料,其中另一向主機202輸出資料。
控制器212係於第一緩衝器222或第二緩衝器224所儲存的資料量達到該緩衝器容納扇區數目時才進行緩衝器的切換。當記憶體214之讀取頁由讀取位址的前一頁切換至後一頁時,記憶體214會需要額外的切換頁時間進行頁切換動作。當記憶體214進行頁切換動作時,乒乓緩衝器220中用以自記憶體接收資料的緩衝器之儲存資料量尚未滿該緩衝器容納扇區數目。因此,必需等到記憶體214頁切換完畢並自後一頁傳送新資料後,乒乓緩衝器220中接收資料的緩衝器之儲存資料量才會達到該緩衝器容納扇區數目,主機202也才能自該緩衝器接收新的讀取資料,因此主機202需要等待較長的時間。為了於記憶體214進行頁切換動作時將主機202的等待時間減到最少,控制器212必須恰當地規劃控制器212用以切換第一緩衝器222及第二緩衝器224的緩衝器容納扇區數目,以提昇資料儲存系統200的效能。
第3圖為依據本發明之計算供切換乒乓緩衝器220的緩衝器容納扇區數目之方法300的流程圖。於一實施例中,控制器212包含一處理電路226,該處理電路226依據方法300計算該緩衝器容納扇區數目。首先,處理電路226計算記憶體214讀取一資料扇區至乒乓緩衝器220所需的一記憶體讀取扇區時間(步驟302),如第1圖中所示的時間T2 。於一實施例中,處理電路226取得記憶體214之工作頻率fm ,取得表示單一資料扇區所包含之位元組的數目的一扇區位元組數目NB ,並將該扇區位元組數目NB 除以記憶體214之工作頻率fm 以得到該記憶體讀取扇區時間T1 。舉例來說,假設記憶體214之工作頻率為33MHz,而一資料扇區所包含之位元組的數目為512Bytes,因此記憶體讀取扇區時間T1 為512/(33×10-6 )=16.7μs。
處理電路226接著計算主機202由乒乓緩衝器220讀取一資料扇區所需的一主機讀取扇區時間T3 (步驟304)。於一實施例中,處理電路226取得主機202之工作頻率fh ,取得表示單一資料扇區所包含之位元組的數目之一扇區位元組數目NB ,並將該扇區位元組數目NB 除以該主機工作頻率fh 以得到該主機讀取扇區時間T3 。舉例來說,假設主機202之工作頻率為25MHz,而一資料扇區所包含之位元組的數目為512Bytes,因此主機讀取扇區時間T3 為512/(25×10-6 )=20μs。
接著,處理電路226取得記憶體214切換所讀取之頁所需的一記憶體換頁忙碌時間(步驟306),如第1圖中所示的時間T1 。接著,處理電路226依據記憶體換頁忙碌時間T1 、記憶體讀取扇區時間T2 、以及主機讀取扇區時間T3 決定一緩衝器容納扇區數目Ns(步驟308)。於一實施例中,處理電路226首先自主機讀取扇區時間T3 減去記憶體讀取扇區時間T2 以得到一讀取扇區時間差Td ,接著將該記憶體換頁忙碌時間T1 除以該讀取扇區時間差Td 以得到一緩衝器容納扇區數目下限值(T1 /Td )。接著,處理電路226選取接近或大於該緩衝器容納扇區數目下限值(T1 /Td )之自然數作為該緩衝器容納扇區數目Ns。舉例來說,假設記憶體換頁忙碌時間T1 為20μs,記憶體讀取扇區時間T2 為16.7μs,而主機讀取扇區時間T3 為20μs,則讀取扇區時間差Td 為(T3 -T2 )=(20μs-16.7μs)=3.3μs,而緩衝器容納扇區數目下限值為(T1 /Td )=(20μs/3.3μs)=6.06。因此,處理電路226可能選取接近該緩衝器容納扇區數目下限值6.06之自然數6作為該緩衝器容納扇區數目Ns。
於一實施例中,處理電路226取得表示記憶體214之單一頁所包含之資料扇區的數目的一頁扇區數目Np作為該緩衝器容納扇區數目之選取的上限。因此,處理電路226係自介於該緩衝器容納扇區數目下限值(T1 /Td )以及該頁扇區數目Np之範圍中選取一自然數作為該緩衝器容納扇區數目Ns。舉例來說,假設記憶體214之每一頁包含8個資料扇區,因此處理電路226可自介於該緩衝器容納扇區數目下限值6.06以及該頁扇區數目8之範圍中選取自然數6,7,8其中之一作為該緩衝器容納扇區數目Ns。當處理電路226決定了緩衝器容納扇區數目後,控制器212便可依據緩衝器容納扇區數目以切換用以儲存記憶體214輸出的資料之乒乓緩衝器220的第一緩衝器222及第二緩衝器224(步驟310)。亦即,當第一緩衝器222自記憶體214接收的資料扇區數目達到該緩衝器容納扇區數目後,控制器212便可將記憶體214輸出的資料轉儲存至第二緩衝器224;而當第二緩衝器224自記憶體214接收的資料扇區數目達到該緩衝器容納扇區數目後,控制器212便可將記憶體214輸出的資料轉儲存至第一緩衝器222。
關於緩衝器容納扇區數目下限值Ns的上述公式可以表達如下: 其中T1 為記憶體換頁忙碌時間,T2 為記憶體讀取扇區時間,而T3 為主機讀取扇區時間。公式的來源係由於在乒乓緩衝器222的架構下,主機202自緩衝器220讀取資料的時間加上主機202的等待時間Tw 必須與記憶體214輸出資料的時間加上記憶體214切換頁的時間T1 相等。假設乒乓緩衝器220的一緩衝器包含NS 個資料扇區,因此上述等式可表達如下:T w +N S ×T 3 =T 1 +N S ×T 2 因此,如果要主機202的等待時間Tw 愈小或是為零,緩衝器包含的資料扇區數目NS 就必須接近或大於T1 /(T3 -T2 ),此即緩衝器容納扇區數目下限值Ns的上述公式。
第4圖為依據多個不同之緩衝器容納扇區數目進行切換乒乓緩衝器220之情況下主機202所需的等待時間的示意圖。假設記憶體換頁忙碌時間T1 為20μs,記憶體讀取扇區時間T2 為16.7μs,而主機讀取扇區時間T3 為20μs。於緩衝器容納扇區數目設定為2的情況(a)中,每當緩衝器中儲存的扇區數目達到2,控制器212便進行緩衝器之切換。因此,當記憶體214需要切換所讀取的頁時,記憶體214讀取2個資料扇區至緩衝器220需要時間(T1 +2×T2 )=53.4μs,而主機202自緩衝器220讀取2個資料扇區需要時間2×T3 =40μs,因此主機202需要等待時間Twa =53.4μs-40μs=13.4μs。
同樣的,於緩衝器容納扇區數目設定為4的情況(b)中,每當緩衝器中儲存的扇區數目達到4,控制器212便進行緩衝器之切換。因此,當記憶體214需要切換所讀取的頁時,記憶體214讀取4個資料扇區至緩衝器220需要時間(T1 +4×T2 )=86.8μs,而主機202自緩衝器220讀取4個資料扇區需要時間4×T3 =80μs,因此主機202只需要等待時間Twb =86.8μs-80μs=6.8μs。於緩衝器容納扇區數目設定為6的情況(c)中,每當緩衝器中儲存的扇區數目達到6,控制器212便進行緩衝器之切換。因此,當記憶體214需要切換所讀取的頁時,記憶體214讀取6個資料扇區至緩衝器220需要時間(T1 +6×T2 )=120.2μs,而主機202自緩衝器220讀取6個資料扇區需要時間6×T3 =120μs,因此主機202僅需要等待時間Twc =120.2μs-120μs=0.2μs。因此,可得知隨著緩衝器容納扇區數目的設定值增加,主機202於記憶體214切換頁時需要等待的時間愈減少。因此,將緩衝器容納扇區數目設定大於6之值可使主機202的等待時間減為0,而增進記憶裝置204之效能。
第5圖為依據本發明之依據緩衝器容納扇區數目切換乒乓記憶體220的第一緩衝器222與第二緩衝器224的方法500之流程圖。首先,控制器212命令記憶體214讀取資料(步驟502)。接著,控制器212接收記憶體214輸出之資料並將記憶體214輸出之資料儲存至乒乓緩衝器220的第一緩衝器222(步驟504)。接著,控制器212檢查是否第一緩衝器222所儲存之資料扇區的數目達到緩衝器容納扇區數目(步驟506)。若第一緩衝器222所儲存之資料量尚未達到緩衝器容納扇區數目,則控制器212繼續將記憶體214輸出之資料儲存至第一緩衝器222(步驟504)。反之,若第一緩衝器222所儲存之資料量已達到緩衝器容納扇區數目(步驟506),則控制器212轉而將記憶體214輸出之資料儲存至乒乓緩衝器220的第二緩衝器224(步驟510),並將第一緩衝器222中儲存之資料輸出至主機202(步驟508)。
當控制器212將記憶體214輸出之資料儲存至第二緩衝器224時,控制器212檢查是否第二緩衝器224所儲存之資料扇區的數目達到緩衝器容納扇區數目(步驟512)。若第二緩衝器224所儲存之資料量尚未達到緩衝器容納扇區數目,則控制器212繼續將記憶體214輸出之資料儲存至第二緩衝器224(步驟510)。反之,若第二緩衝器224所儲存之資料量已達到緩衝器容納扇區數目(步驟512),則控制器212轉而將記憶體214輸出之資料儲存至乒乓緩衝器220的第一緩衝器224(步驟504),並將第二緩衝器222中儲存之資料輸出至主機202(步驟514)。此一切換流程將持續進行直到記憶體214讀取資料完畢為止(步驟516)。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
(第2圖)
202...主機
204...記憶裝置
212...控制器
214...記憶體
220...乒乓緩衝器
222...第一緩衝器
224...第二緩衝器
226...處理電路
第1圖為記憶體輸出所讀取的資料的時間示意圖;
第2圖為依據本發明之資料讀取系統的區塊圖;
第3圖為依據本發明之計算供切換乒乓緩衝器的緩衝器容納扇區數目之方法的流程圖;
第4圖依據多個不同之緩衝器容納扇區數目進行切換乒乓緩衝器之情況下主機所需的等待時間的示意圖;以及
第5圖為依據本發明之依據緩衝器容納扇區數目切換乒乓記憶體的第一緩衝器與第二緩衝器的方法之流程圖。

Claims (16)

  1. 一種管理記憶體讀出資料之方法,其中一記憶體所對應之一控制器包括一乒乓緩衝器(ping-pong buffer),該乒乓緩衝器包括一第一緩衝器以及一第二緩衝器,該記憶體包括多個頁(page),每一頁均包括多個資料扇區(sector),該方法包括:計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間;計算一主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間;取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間;依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目;以及當該記憶體輸出資料至該乒乓緩衝器時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該第一緩衝器以及該第二緩衝器。
  2. 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該記憶體讀取扇區時間之計算包括:取得該記憶體之一記憶體工作頻率;取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目;以及將該扇區位元組數目除以該記憶體工作頻率,以得到該記憶體讀取扇區時間。
  3. 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該主機讀取扇區時間之計算包括:取得該主機之一主機工作頻率;取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目;以及將該扇區位元組數目除以該主機工作頻率,以得到該主機讀取扇區時間。
  4. 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該緩衝器容納扇區數目之決定包括:自該主機讀取扇區時間減去該記憶體讀取扇區時間,以得到一讀取扇區時間差;將該記憶體換頁忙碌時間除以該讀取扇區時間差,以得到一緩衝器容納扇區數目下限值;以及選取大於該緩衝器容納扇區數目下限值之自然數或者將該緩衝器容納扇區數目下限值所具有之小數四捨五入後所獲得之自然數作為該緩衝器容納扇區數目。
  5. 如申請專利範圍第4項所述之管理記憶體讀出資料之方法,其中該自然數之選取更包括:取得一頁扇區數目以表示該記憶體之單一頁所包含之資料扇區的數目;以及自介於該緩衝器容納扇區數目下限值以及該頁扇區數目之範圍中選取該自然數作為該緩衝器容納扇區數目;其中該頁扇區數目為該緩衝器容納扇區數目之選取的上限。
  6. 如申請專利範圍第1項所述之管理記憶體讀出資料 之方法,其中該第一緩衝器以及該第二緩衝器之切換包括:命令該記憶體讀取資料;接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第一緩衝器;檢查是否該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目;以及當該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第二緩衝器。
  7. 如申請專利範圍第6項所述之管理記憶體讀出資料之方法,其中該第一緩衝器以及該第二緩衝器之切換更包括:檢查是否該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目;以及當該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第一緩衝器。
  8. 如申請專利範圍第7項所述之管理記憶體讀出資料之方法,其中該第一緩衝器以及該第二緩衝器之切換更包括:當該記憶體輸出之資料被儲存至該第一緩衝器時,將該第二緩衝器中儲存之資料輸出至該主機;以及當該記憶體輸出之資料被儲存至該第二緩衝器時,將該第一緩衝器中儲存之資料輸出至該主機。
  9. 一種記憶裝置,耦接至一主機,包括: 一記憶體,包括多個頁(page)以供儲存資料,每一頁均包括多個資料扇區(sector);以及一控制器,包括一乒乓緩衝器(ping-pong buffer)以儲存該記憶體讀出之資料,計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間,計算該主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間,取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間,依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目,以及當該記憶體輸出資料時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該乒乓緩衝器所包括的一第一緩衝器以及一第二緩衝器。
  10. 如申請專利範圍第9項所述之記憶裝置,其中該控制器取得該記憶體之一記憶體工作頻率,取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目,以及將該扇區位元組數目除以該記憶體工作頻率以得到該記憶體讀取扇區時間。
  11. 如申請專利範圍第9項所述之記憶裝置,其中該控制器取得該主機之一主機工作頻率,取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目,以及將該扇區位元組數目除以該主機工作頻率以得到該主機讀取扇區時間。
  12. 如申請專利範圍第9項所述之記憶裝置,其中該控制器自該主機讀取扇區時間減去該記憶體讀取扇區時間以得到一讀取扇區時間差,將該記憶體換頁忙碌時間除以 該讀取扇區時間差以得到一緩衝器容納扇區數目下限值,以及選取大於該緩衝器容納扇區數目下限值之自然數或者將該緩衝器容納扇區數目下限值所具有之小數四捨五入後所獲得之自然數作為該緩衝器容納扇區數目。
  13. 如申請專利範圍第12項所述之記憶裝置,其中該控制器取得一頁扇區數目以表示該記憶體之單一頁所包含之資料扇區的數目,以及自介於該緩衝器容納扇區數目下限值以及該頁扇區數目之範圍中選取該自然數作為該緩衝器容納扇區數目,其中該頁扇區數目為該緩衝器容納扇區數目之選取的上限。
  14. 如申請專利範圍第9項所述之記憶裝置,其中該控制器命令該記憶體讀取資料,接收該記憶體輸出之資料,將該記憶體輸出之資料儲存至該第一緩衝器,檢查是否該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目,以及當該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,將該記憶體輸出之資料儲存至該第二緩衝器,以進行該第一緩衝器以及該第二緩衝器之切換。
  15. 如申請專利範圍第14項所述之記憶裝置,其中該控制器更檢查是否該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目,以及當該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,將該記憶體輸出之資料儲存至該第一緩衝器,以進行該第一緩衝器以及該第二緩衝器之切換。
  16. 如申請專利範圍第15項所述之記憶裝置,其中當 該記憶體輸出之資料被儲存至該第一緩衝器時,該控制器將該第二緩衝器中儲存之資料輸出至該主機,而當該記憶體輸出之資料被儲存至該第二緩衝器時,該控制器將該第一緩衝器中儲存之資料輸出至該主機。
TW099101021A 2010-01-15 2010-01-15 管理記憶體讀出資料之方法以及記憶裝置 TWI399645B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW099101021A TWI399645B (zh) 2010-01-15 2010-01-15 管理記憶體讀出資料之方法以及記憶裝置
US12/822,288 US8412893B2 (en) 2010-01-15 2010-06-24 Data storage device and method for handling data read out from memory using a ping-pong buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW099101021A TWI399645B (zh) 2010-01-15 2010-01-15 管理記憶體讀出資料之方法以及記憶裝置

Publications (2)

Publication Number Publication Date
TW201124843A TW201124843A (en) 2011-07-16
TWI399645B true TWI399645B (zh) 2013-06-21

Family

ID=44278405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099101021A TWI399645B (zh) 2010-01-15 2010-01-15 管理記憶體讀出資料之方法以及記憶裝置

Country Status (2)

Country Link
US (1) US8412893B2 (zh)
TW (1) TWI399645B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI739676B (zh) * 2020-11-25 2021-09-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8897072B2 (en) 2012-10-11 2014-11-25 Micron Technology, Inc. Sensing data stored in memory
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) * 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
CN105512054B (zh) * 2015-12-09 2018-11-09 上海兆芯集成电路有限公司 主机接口控制器以及储存装置控制方法
CN111459852B (zh) * 2019-01-22 2023-05-05 阿里巴巴集团控股有限公司 缓存控制方法和装置以及电子设备
TWI742565B (zh) * 2019-06-06 2021-10-11 旺宏電子股份有限公司 記憶體裝置、電子裝置以及與其相關的讀取方法
CN114090618A (zh) * 2022-01-18 2022-02-25 江西树格科技有限公司 数据读取方法、系统、计算机及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200519585A (en) * 2003-12-11 2005-06-16 Genesys Logic Inc Method and related devices for enhancing accessing performance of flash memory
US6964005B2 (en) * 2001-06-08 2005-11-08 Broadcom Corporation System and method for interleaving data in a communication device
US7111093B2 (en) * 2003-06-23 2006-09-19 Intel Corporation Ping-pong buffer system having a buffer to store a subset of data from a data source
TW200934167A (en) * 2007-12-05 2009-08-01 Qualcomm Inc Apparatus and methods using a linear memory model for encoder output buffers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6507877B1 (en) * 1999-09-03 2003-01-14 Whamtech, Inc. Asynchronous concurrent dual-stream FIFO
US6775722B2 (en) * 2001-07-05 2004-08-10 Zarlink Semiconductor V. N. Inc. Efficient data retrieval from input coupling queues
US7167114B2 (en) * 2004-10-05 2007-01-23 Sony Corporation Memory efficient interleaving

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6964005B2 (en) * 2001-06-08 2005-11-08 Broadcom Corporation System and method for interleaving data in a communication device
US7111093B2 (en) * 2003-06-23 2006-09-19 Intel Corporation Ping-pong buffer system having a buffer to store a subset of data from a data source
TW200519585A (en) * 2003-12-11 2005-06-16 Genesys Logic Inc Method and related devices for enhancing accessing performance of flash memory
TW200934167A (en) * 2007-12-05 2009-08-01 Qualcomm Inc Apparatus and methods using a linear memory model for encoder output buffers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI739676B (zh) * 2020-11-25 2021-09-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
TW201124843A (en) 2011-07-16
US8412893B2 (en) 2013-04-02
US20110179249A1 (en) 2011-07-21

Similar Documents

Publication Publication Date Title
TWI399645B (zh) 管理記憶體讀出資料之方法以及記憶裝置
US20110078393A1 (en) Memory device and data access method
US7925804B2 (en) FIFO device and method of storing data in FIFO buffer
US20130179632A1 (en) Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer
JP4966404B2 (ja) メモリ制御装置、記憶装置、及びメモリ制御方法
US7099231B2 (en) Interleaving memory blocks to relieve timing bottleneck in a multi-queue first-in first-out memory system
US20160239206A1 (en) Semiconductor system performing status read for semiconductor device and operating method thereof
US20100169550A1 (en) Semiconductor memory device, data transfer device, and method of controlling semiconductor memory device
JP2020144589A (ja) メモリシステム
KR102180975B1 (ko) 랩핑된 판독 대 연속적인 판독을 갖는 메모리 서브 시스템
US20090235026A1 (en) Data transfer control device and data transfer control method
US8065449B2 (en) DMA device having plural buffers storing transfer request information and DMA transfer method
US7380027B2 (en) DMA controller and DMA transfer method
CN110968538B (zh) 一种数据缓冲方法和装置
US20090119429A1 (en) Semiconductor integrated circuit
US20100262763A1 (en) Data access method employed in multi-channel flash memory system and data access apparatus thereof
US9544475B2 (en) Data transfer apparatus and data transfer method
US11099739B2 (en) System and method for accessing redundant array of independent disks
JP4502792B2 (ja) データバッファ回路
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
US20230028997A1 (en) Sgl processing acceleration method and storage device
CN111045961A (zh) 数据处理方法及使用所述方法的存储控制器
JP2015001986A (ja) データ転送装置、バッファリング回路及びバッファリング方法
JP5907558B2 (ja) マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム
KR102697447B1 (ko) 하프-매치(half match) 중복 제거를 수행하는 메모리 시스템 및 이의 동작 방법