TWI399645B - 管理記憶體讀出資料之方法以及記憶裝置 - Google Patents
管理記憶體讀出資料之方法以及記憶裝置 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details 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)。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
202...主機
204...記憶裝置
212...控制器
214...記憶體
220...乒乓緩衝器
222...第一緩衝器
224...第二緩衝器
226...處理電路
第1圖為記憶體輸出所讀取的資料的時間示意圖;
第2圖為依據本發明之資料讀取系統的區塊圖;
第3圖為依據本發明之計算供切換乒乓緩衝器的緩衝器容納扇區數目之方法的流程圖;
第4圖依據多個不同之緩衝器容納扇區數目進行切換乒乓緩衝器之情況下主機所需的等待時間的示意圖;以及
第5圖為依據本發明之依據緩衝器容納扇區數目切換乒乓記憶體的第一緩衝器與第二緩衝器的方法之流程圖。
Claims (16)
- 一種管理記憶體讀出資料之方法,其中一記憶體所對應之一控制器包括一乒乓緩衝器(ping-pong buffer),該乒乓緩衝器包括一第一緩衝器以及一第二緩衝器,該記憶體包括多個頁(page),每一頁均包括多個資料扇區(sector),該方法包括:計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間;計算一主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間;取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間;依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目;以及當該記憶體輸出資料至該乒乓緩衝器時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該第一緩衝器以及該第二緩衝器。
- 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該記憶體讀取扇區時間之計算包括:取得該記憶體之一記憶體工作頻率;取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目;以及將該扇區位元組數目除以該記憶體工作頻率,以得到該記憶體讀取扇區時間。
- 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該主機讀取扇區時間之計算包括:取得該主機之一主機工作頻率;取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目;以及將該扇區位元組數目除以該主機工作頻率,以得到該主機讀取扇區時間。
- 如申請專利範圍第1項所述之管理記憶體讀出資料之方法,其中該緩衝器容納扇區數目之決定包括:自該主機讀取扇區時間減去該記憶體讀取扇區時間,以得到一讀取扇區時間差;將該記憶體換頁忙碌時間除以該讀取扇區時間差,以得到一緩衝器容納扇區數目下限值;以及選取大於該緩衝器容納扇區數目下限值之自然數或者將該緩衝器容納扇區數目下限值所具有之小數四捨五入後所獲得之自然數作為該緩衝器容納扇區數目。
- 如申請專利範圍第4項所述之管理記憶體讀出資料之方法,其中該自然數之選取更包括:取得一頁扇區數目以表示該記憶體之單一頁所包含之資料扇區的數目;以及自介於該緩衝器容納扇區數目下限值以及該頁扇區數目之範圍中選取該自然數作為該緩衝器容納扇區數目;其中該頁扇區數目為該緩衝器容納扇區數目之選取的上限。
- 如申請專利範圍第1項所述之管理記憶體讀出資料 之方法,其中該第一緩衝器以及該第二緩衝器之切換包括:命令該記憶體讀取資料;接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第一緩衝器;檢查是否該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目;以及當該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第二緩衝器。
- 如申請專利範圍第6項所述之管理記憶體讀出資料之方法,其中該第一緩衝器以及該第二緩衝器之切換更包括:檢查是否該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目;以及當該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,接收該記憶體輸出之資料,並將該記憶體輸出之資料儲存至該第一緩衝器。
- 如申請專利範圍第7項所述之管理記憶體讀出資料之方法,其中該第一緩衝器以及該第二緩衝器之切換更包括:當該記憶體輸出之資料被儲存至該第一緩衝器時,將該第二緩衝器中儲存之資料輸出至該主機;以及當該記憶體輸出之資料被儲存至該第二緩衝器時,將該第一緩衝器中儲存之資料輸出至該主機。
- 一種記憶裝置,耦接至一主機,包括: 一記憶體,包括多個頁(page)以供儲存資料,每一頁均包括多個資料扇區(sector);以及一控制器,包括一乒乓緩衝器(ping-pong buffer)以儲存該記憶體讀出之資料,計算該記憶體讀取單一資料扇區至該乒乓緩衝器所需的一記憶體讀取扇區時間,計算該主機由該乒乓緩衝器讀取單一資料扇區所需的一主機讀取扇區時間,取得該記憶體切換所讀取之頁所需的一記憶體換頁忙碌時間,依據該記憶體換頁忙碌時間、該記憶體讀取扇區時間、以及該主機讀取扇區時間決定一緩衝器容納扇區數目,以及當該記憶體輸出資料時,依據該緩衝器容納扇區數目切換用以儲存該記憶體輸出的資料之該乒乓緩衝器所包括的一第一緩衝器以及一第二緩衝器。
- 如申請專利範圍第9項所述之記憶裝置,其中該控制器取得該記憶體之一記憶體工作頻率,取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目,以及將該扇區位元組數目除以該記憶體工作頻率以得到該記憶體讀取扇區時間。
- 如申請專利範圍第9項所述之記憶裝置,其中該控制器取得該主機之一主機工作頻率,取得一扇區位元組數目以表示單一資料扇區所包含之位元組的數目,以及將該扇區位元組數目除以該主機工作頻率以得到該主機讀取扇區時間。
- 如申請專利範圍第9項所述之記憶裝置,其中該控制器自該主機讀取扇區時間減去該記憶體讀取扇區時間以得到一讀取扇區時間差,將該記憶體換頁忙碌時間除以 該讀取扇區時間差以得到一緩衝器容納扇區數目下限值,以及選取大於該緩衝器容納扇區數目下限值之自然數或者將該緩衝器容納扇區數目下限值所具有之小數四捨五入後所獲得之自然數作為該緩衝器容納扇區數目。
- 如申請專利範圍第12項所述之記憶裝置,其中該控制器取得一頁扇區數目以表示該記憶體之單一頁所包含之資料扇區的數目,以及自介於該緩衝器容納扇區數目下限值以及該頁扇區數目之範圍中選取該自然數作為該緩衝器容納扇區數目,其中該頁扇區數目為該緩衝器容納扇區數目之選取的上限。
- 如申請專利範圍第9項所述之記憶裝置,其中該控制器命令該記憶體讀取資料,接收該記憶體輸出之資料,將該記憶體輸出之資料儲存至該第一緩衝器,檢查是否該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目,以及當該第一緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,將該記憶體輸出之資料儲存至該第二緩衝器,以進行該第一緩衝器以及該第二緩衝器之切換。
- 如申請專利範圍第14項所述之記憶裝置,其中該控制器更檢查是否該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目,以及當該第二緩衝器所儲存之資料扇區的數目達到該緩衝器容納扇區數目後,將該記憶體輸出之資料儲存至該第一緩衝器,以進行該第一緩衝器以及該第二緩衝器之切換。
- 如申請專利範圍第15項所述之記憶裝置,其中當 該記憶體輸出之資料被儲存至該第一緩衝器時,該控制器將該第二緩衝器中儲存之資料輸出至該主機,而當該記憶體輸出之資料被儲存至該第二緩衝器時,該控制器將該第一緩衝器中儲存之資料輸出至該主機。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI739676B (zh) * | 2020-11-25 | 2021-09-11 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (49)
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)
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)
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 |
-
2010
- 2010-01-15 TW TW099101021A patent/TWI399645B/zh active
- 2010-06-24 US US12/822,288 patent/US8412893B2/en active Active
Patent Citations (4)
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)
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) 중복 제거를 수행하는 메모리 시스템 및 이의 동작 방법 |