TWI747660B - 多閃存晶片的資料讀取方法及裝置以及電腦程式產品 - Google Patents

多閃存晶片的資料讀取方法及裝置以及電腦程式產品 Download PDF

Info

Publication number
TWI747660B
TWI747660B TW109143988A TW109143988A TWI747660B TW I747660 B TWI747660 B TW I747660B TW 109143988 A TW109143988 A TW 109143988A TW 109143988 A TW109143988 A TW 109143988A TW I747660 B TWI747660 B TW I747660B
Authority
TW
Taiwan
Prior art keywords
flash memory
read
data
page
chip
Prior art date
Application number
TW109143988A
Other languages
English (en)
Other versions
TW202223662A (zh
Inventor
徐美玉
Original Assignee
慧榮科技股份有限公司
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 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW109143988A priority Critical patent/TWI747660B/zh
Application granted granted Critical
Publication of TWI747660B publication Critical patent/TWI747660B/zh
Publication of TW202223662A publication Critical patent/TW202223662A/zh

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

本發明涉及一種多閃存晶片的資料讀取方法、裝置以及電腦程式產品,該方法由處理單元載入並執行程式碼時實施,該方法包含:發出讀取指令給閃存介面,驅動閃存介面啟動資料讀取操作,用於從晶片的位置讀取資料;計算相應於讀取指令的輸出時間點;以及當目前時間到達或晚於輸出時間點時,發出相應於讀取指令的隨機輸出指令給閃存介面,驅動閃存介面將資料儲存到隨機存取記憶體。根據以上所述的輸出時間點來決定隨機輸出指令的發出時機,可避免NAND匯流排因為不必要的等待讀取忙碌指令和詢問NAND狀態指令而被佔用。

Description

多閃存晶片的資料讀取方法及裝置以及電腦程式產品
本發明涉及儲存裝置,尤指一種多閃存晶片的資料讀取方法、裝置以及電腦程式產品。
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。
有效率地從多個晶片中的閃存單元讀取資料,一直在閃存控制器中是個重要的議題。因此,本發明提出一種多閃存晶片的資料讀取方法及裝置以及電腦程式產品,用於縮短執行讀取操作的時間。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種多閃存晶片的資料讀取方法,由處理單元載入並執行程式碼時實施,包含:發出讀取指令給閃存介面,驅動閃存介面啟動資料讀取操作,用於從晶片的位置讀取資料;計算相應於讀取指令的輸出時間點;以及當目前時間到達或晚於輸出時間點時,發出相應於讀取指令的隨機輸出指令給閃存介面,驅動閃存介面將資料儲存到隨機存取記憶體。
本說明書另涉及一種電腦程式產品,用於多閃存晶片的資料讀取,包含能夠由處理單元載入並執行程式碼。當程式碼被處理單元載入並執行程式碼時,實施如上所述的多閃存晶片的資料讀取方法。
本說明書更另涉及一種多閃存晶片的資料讀取裝置,包含閃存介面和處理單元。閃存介面以相同通道耦接第一晶片和第二晶片。處理單元耦接閃存介面,發出第一讀取指令給閃存介面,驅動閃存介面啟動第一資料讀取操作,用於從第一晶片的第一位置讀取第一資料;計算相應於第一讀取指令的第一輸出時間點;發出第二讀取指令給上述閃存介面,驅動閃存介面啟動第二資料讀取操作,用於從第二晶片的第二位置讀取第二資料;計算相應於第二讀取指令的第二輸出時間點;以及當目前時間沒有到達或晚於第一輸出時間點但已經到達或晚於第二輸出時間點時,發出相應於第二讀取指令的隨機輸出指令給閃存介面,驅動閃存介面將第二資料儲存到隨機存取記憶體。
上述實施例的優點之一,通過根據以上所述的輸出時間點來決定隨機輸出指令的發出時機,可避免NAND匯流排因為不必要的等待讀取忙碌指令和詢問NAND狀態指令而被佔用。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的「包含」、「包括」等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如「第一」、「第二」、「第三」等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為「連接」或「耦接」至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為「直接連接」或「直接耦接」至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如「介於」相對於「直接介於」,或者是「鄰接」相對於「直接鄰接」等等。
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)137可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage UFS)、嵌入式多媒體卡(Embedded Multi-Media Card eMMC)等通訊協定彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150可以雙倍資料率(Double Data Rate DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory, RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的主機資料,以及從閃存模組150讀取並即將輸出給主機端110的主機資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機-閃存對照表(Host-to-Flash H2F Table)、閃存-主機對照表(Flash-to-Host F2H Table)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check LDPC)等。閃存控制器130中可配置匯流排架構(Bus Architecture)132,用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、閃存介面139等。
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的主機資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可在抹除後組態為單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134通過閃存介面139寫入主機資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取主機資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的晶片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取主機資料,或者寫入主機資料至致能的NAND閃存單元。
閃存介面139還包含指令佇列、緩存(Cache)和控制器。指令佇列可依據到達時間依序儲存處理單元134發出的用於完成資料讀取操作的一系列指令,例如,讀取(Read)、等待讀取忙碌(Wait RB)、詢問NAND狀態(Polling NAND Status)、隨機輸出(Random Out)等指令。控制器以先進先出(First-In First-Out,FIFO)的方式從命令佇列提取指令並執行。緩存提供從閃存模組150讀出的資料的暫時儲存空間。
為了執行主機端110發出的主機讀取命令(Host Read Command),或者執行用於改善閃存模組150的儲存效能的背景操作,處理單元134可發出讀取指令給閃存介面139,用於驅動閃存介面139啟動資料讀取操作。背景操作包含垃圾回收(Garbage Collection,GC)、損耗平均(Wear Leveling)、讀取刷新(Read Refresh)、讀取再生(Read Reclaim)等處理。讀取指令包含晶片編號(Die Number)、行地址(Row Address)、列地址(Column Address)等資訊,使得控制器可通過這些資訊使用閃存介面139和閃存模組150之間的資料線與控制訊號從指定NAND閃存單元(例如,NAND閃存單元153#0到153#15中的一個)中讀取特定行上的特定列的資料。NAND閃存單元需要一段時間來準備資料,並且在完成資料準備後使用讀取就緒訊號(Read Ready Signal)通知閃存介面139,接著,閃存介面139可開始通過資料線從NAND閃存單元獲取指定的資料並儲存到其中的緩存。從處理單元134發出讀取指令給閃存介面139到閃存介面139開始從閃存模組150獲取指定資料的這段時間,可稱為實際的讀取前置時間(Read Lead Time)。接著,處理單元134可發出隨機輸出指令給閃存介面139,用於指示閃存介面139將緩存中的相應資料通過匯流排架構132儲存到RAM 136中的指定位置。隨機輸出指令相應於之前發出過的一個讀取指令,包含晶片編號、行地址、列地址等資訊,使得控制器可依據這些資訊將緩存中的特指定資料儲存到RAM 136中的指定位置。例如,處理單元134可發出包含晶片編號“Die#0”、行地址“R#100”、列地址“C#0~4095”的讀取指令給閃存介面139,並且在經過讀取前置時間後發出包含晶片編號“Die#0”、行地址“R#100”、列地址“C#0~4095”的隨機輸出指令給閃存介面139,用於獲取閃存模組150中的指定位置的資料。
在一些實施方式中,處理單元134可在發出讀取指令給閃存介面139後,發出相應的等待讀取忙碌指令或詢問NAND狀態指令給閃存介面139,並且根據閃存介面139的回覆判斷閃存介面139是否能夠開始從閃存模組150獲取指定資料。當發現讀取指令所請求的資料準備完成時,處理單元134發出相應的隨機輸出指令給閃存介面139。然而,當閃存介面139接收到讀取忙碌指令或詢問NAND狀態指令時,將佔住閃存介面139和閃存模組150之間的匯流排(又可稱為NAND匯流排),直到讀取指令指定的資料已經被閃存介面139獲取完才釋放開,造成頻寬使用率下降。參考如圖3所示在同一個通道上具有兩個NAND閃存單元(又可稱為晶片)的範例。處理單元134依序在時間點t31和t33發出讀取指令“RE#0”和“RE#1”給閃存介面139,其中,讀取指令“RE#0”請求讀取閃存模組150中晶片“Die#0”的指定位置的資料,並且讀取指令“RE#1” 請求讀取閃存模組150中晶片“Die#1”的指定位置的資料。接著,處理單元134在時間點t35發出相應於讀取指令“RE#0”的等待讀取忙碌指令或詢問NAND狀態指令給閃存介面139,使得閃存介面139為讀取指令“RE#0”佔住NAND匯流排。假設讀取指令“RE#0”所需的讀取前置時間顯示於圖3中的虛線方框“tLead#0”,並且讀取指令“RE#1”所需的讀取前置時間顯示於圖3中的虛線方框“tLead#1”,短於讀取指令“RE#0”所需的讀取前置時間:在時間點t35之後,NAND匯流排因為讀取指令“RE#0”被佔住但其中的資料線上卻沒有任何的資料傳輸。
本發明之實施例提出一種多閃存晶片的資料讀取方法,由處理單元134載入並且執行特定程式碼時執行。從本發明的一個方面來說,此方法發出一個讀取指令給閃存介面139,計算相應於此讀取指令指令的輸出時間點,並且將輸出時間點儲存在處理單元134中的緩存。當目前時間到達或超過此讀取指令的輸出時間點時,發出相應的隨機輸出指令給閃存介面139。此方法反覆執行一個迴圈,並且應用在關聯於一個特定通道的所有晶片的資料讀取操作,詳細說明如下:
步驟S410:發出一個或多個讀取指令給閃存介面139並且為每個讀取指令計算輸出時間點。需要注意的是,如果沒有任何讀取操作需要執行,則此步驟可以跳過。輸出時間點的計算公式範例如下: t out=T now+t prep其中,t out代表此讀取指令的輸出時間點,T now代表目前時間的時間戳記,t prep代表關聯於此讀取指令的估計讀取前置時間。
在一些實施例中,t prep可隨著此讀取指令所關聯的晶片不同而有不同,如表1所示: 表1
晶片編號 讀取前置時間
Die#0 t prep=t0
Die#1 t prep=t1
處理單元134可根據此讀取指令所關聯的晶片編號設定此讀取指令的讀取前置時間。例如,如果此讀取指令欲讀取的資料儲存於晶片Die#0,則此讀取指令的讀取前置時間設為t prep=t0。
在另一些實施例中,t prep可隨著此讀取指令所關聯的晶片和記憶單元類型不同而有不同,如表2所示: 表2
晶片編號 SLC TLC
Die#0 t prep=t0 t prep=t1
Die#1 t prep=t2 t prep=t3
處理單元134可根據此讀取指令所關聯的晶片編號和記憶單元類型設定此讀取指令的讀取前置時間。例如,如果此讀取指令所欲讀取的資料儲存在晶片Die#0中的SLC頁面上,則此讀取指令的讀取前置時間設為t prep=t0。如果此讀取指令所欲讀取的資料儲存在晶片Die#1中的TLC頁面上,則此讀取指令的讀取前置時間設為t prep=t3。
在另一些實施例中,t prep可隨著此讀取指令所關聯的晶片和頁面類型不同而有不同,如表3所示: 表3
晶片編號 SLC頁面 TLC/L頁面 TLC/X頁面 TLC/U頁面
Die#0 t prep=t0 t prep=t1 t prep=t2 t prep=t3
Die#1 t prep=t4 t prep=t5 t prep=t6 t prep=t7
每個晶片包含多個實體塊,每個實體塊可被組態為SLC塊或TLC塊。 SLC塊中的每個記憶體單元可儲存兩個狀態中的一個,表示為“0b0”或“0b1”。 SLC塊中的每個字元線(Word Line)可儲存一個頁面的資料,稱為SLC頁面。TLC塊中的每個記憶體單元可儲存八個狀態中的一個,表示為“0b000”、“0b001”、“0b010”、“0b011”、“0b100” 、“0b101” 、“0b110” 或“0b111”。TLC塊中的每個字元線可儲存三個頁面的資料,包含低頁面(TLC/L Page)、中間頁面(TLC/X Page)及高頁面(TLC/U Page)。處理單元134可根據此讀取指令所關聯的晶片編號和頁面類型設定此讀取指令的讀取前置時間。例如,如果此讀取指令所欲讀取的資料儲存在晶片Die#0中的SLC頁面上,則此讀取指令的讀取前置時間設為t prep=t0。如果此讀取指令所欲讀取的資料儲存在晶片Die#1中的TLC/U頁面上,則此讀取指令的讀取前置時間設為t prep=t7。
在另一些實施例中,t prep的設定可依據如表4所示的內容: 表4
晶片編號 SLC頁面 QLC/L 頁面 QLC/X 頁面 QLC/U 頁面 QLC/T 頁面
Die#0 t prep=t0 t prep=t1 t prep=t2 t prep=t3 t prep=t4
Die#1 t prep=t5 t prep=t6 t prep=t7 t prep=t8 t prep=t9
每個晶片包含多個實體塊,每個實體塊可被組態為SLC塊或QLC塊。QLC塊中的每個記憶體單元可儲存十六個狀態中的一個,表示為“0b0000”至“0b1111”中的一個。QLC塊中的每個字元線可儲存四個頁面的資料,包含低頁面(QLC/L Page)、中間頁面(QLC/X Page)、高頁面(QLC/U Page)及頂頁面(QLC/T Page)。例如,如果此讀取指令所欲讀取的資料儲存在晶片Die#0中的SLC頁面上,則此讀取指令的讀取前置時間設為t prep=t0。如果此讀取指令所欲讀取的資料儲存在晶片Die#1中的QLC/T頁面上,則此讀取指令的讀取前置時間設為t prep=t9。
步驟S420:準備相應於每個讀取指令的隨機輸出指令並儲存在處理單元134中的緩存。需要注意的是,如果沒有任何讀取操作需要執行,則此步驟可以跳過。
步驟S430:將變數i設為i=0。
步驟S440:判斷目前時間是否相同於或晚於關聯於第i個晶片的讀取指令的輸出時間點。如果是,代表關聯於第i個晶片的讀取指令所需要的資料即將或已經準備完成,則流程繼續步驟S450的處理;否則,代表關聯於第i個晶片的讀取指令所需要的資料還沒有準備完成,流程進行步驟S460的處理。舉例來說,參考圖5,上方(A)部分顯示目前時間T now晚於關聯於第i個晶片的讀取指令的輸出時間點t out,而下方(A)部分顯示目前時間T now早於關聯於第i個晶片的讀取指令的輸出時間點t out
步驟S450:發出關聯於第i個晶片的隨機輸出指令給閃存介面139,此隨機輸出指令相應於第i個晶片的讀取指令。
步驟S460:將變數i設為i=i+1。
步驟S470:判斷變數i的值是否等於此通道連接的晶片總數。如果是,則流程繼續步驟S410的處理;否則,流程進行步驟S440的處理。
在這裡需要注意的是,所屬技術領域人員可將步驟S420的操作合併到步驟S450中,本發明並不因此局限。
參考如圖6所示在同一個通道上具有兩個NAND閃存單元(又可稱為晶片)的範例。處理單元134依序在時間點t61和t63發出讀取指令“RE#0”和“RE#1”給閃存介面139,並且,為讀取指令“RE#0”和“RE#1”分別計算出輸出時間“t out#0”和“t out#1”,其中,讀取指令“RE#0”請求讀取閃存模組150中晶片“Die#0”的指定位置的資料,並且讀取指令“RE#1” 請求讀取閃存模組150中晶片“Die#1”的指定位置的資料(步驟S410)。假設讀取指令“RE#0”所需的讀取前置時間顯示於圖3中的虛線方框“tLead#0”,並且讀取指令“RE#1”所需的讀取前置時間顯示於圖3中的虛線方框“tLead#1”,短於讀取指令“RE#0”所需的讀取前置時間:接著,當處理單元134在時間點T now判斷目前時間沒有到達或晚於關聯於晶片“Die#0”的讀取指令“RE#0”的輸出時間點“t out#0”時(步驟S440中“否”的路徑),不針對讀取指令“RE#0”進行任何操作。當處理單元134在時間點T now判斷目前時間晚於關聯於晶片“Die#1”的讀取指令“RE#1”的輸出時間點“t out#1”時(步驟S440中“是”的路徑),發出相應的隨機輸出指令“RO#1”給閃存介面139,使得讀取指令“RE#1”所請求的資料在資料輸出時間“tMove#1”能夠經由閃存介面139儲存到RAM 136中的指定位置。所屬技術領域人員可理解,如上所述的方法並不發出等待讀取忙碌指令和詢問NAND狀態給閃存介面139,可避免NAND匯流排因為不必要的等待讀取忙碌指令和詢問NAND狀態指令而被佔用。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1、圖2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖4的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
10:電子裝置 110:主機端 130:閃存控制器 131:主機介面 132:匯流排架構 134:處理單元 136:隨機存取記憶體 139:閃存介面 150:閃存模組 151:介面 153#0~153#15:NAND閃存單元 CH#0~CH#3:通道 CE#0~CE#3:致能訊號 t31,t33,t35:時間點 RE#0,RE#1:讀取指令 tLead#0,tLead#1:讀取前置時間 RO#0,RO#1:隨機輸出指令 tMove#0,tMove#1:資料輸出時間 S410~S470:方法步驟 T now:時間點 t out,t out#0,t out#1:輸出時間點
圖1為依據本發明實施例的電子裝置的系統架構圖。
圖2為依據本發明實施例的閃存模組的示意圖。
圖3為一些實施方式的發出讀取指令和隨機輸出指令的時間順序圖。
圖4為依據本發明實施例的多閃存晶片的資料讀取方法的流程圖。
圖5為依據本發明實施例的判斷目前時間和輸出時間點的先後關係的示意圖。
圖6為依據本發明實施例的發出讀取指令和隨機輸出指令的時間順序圖。
S410~S470:方法步驟

Claims (15)

  1. 一種多閃存晶片的資料讀取方法,由一處理單元載入並執行程式碼時實施,上述方法包含: 發出一讀取指令給一閃存介面,驅動上述閃存介面啟動一資料讀取操作,用於從一晶片的一位置讀取一資料; 計算相應於上述讀取指令的一輸出時間點;以及 當目前時間到達或晚於上述輸出時間點時,發出相應於上述讀取指令的一隨機輸出指令給上述閃存介面,驅動上述閃存介面將上述資料儲存到一隨機存取記憶體。
  2. 如請求項1所述的多閃存晶片的資料讀取方法,其中,上述晶片需要一段時間以準備上述資料。
  3. 如請求項1所述的多閃存晶片的資料讀取方法,其中,上述輸出時間點使用以下公式計算: t out=T now+t prept out代表上述輸出時間點,T now代表目前時間的時間戳記,t prep代表關聯於上述讀取指令的一估計讀取前置時間。
  4. 如請求項3所述的多閃存晶片的資料讀取方法,其中,上述估計讀取前置時間相應於上述讀取指令所關聯的上述晶片。
  5. 如請求項3所述的多閃存晶片的資料讀取方法,其中,上述估計讀取前置時間相應於上述讀取指令所關聯的上述晶片和一記憶單元類型,並且上述記憶單元類型為一單層式單元、一多層式單元、一三層式單元或一四層式單元。
  6. 如請求項3所述的多閃存晶片的資料讀取方法,其中,上述估計讀取前置時間相應於上述讀取指令所關聯的上述晶片和一頁面類型,並且上述頁面類型為一單層式單元頁面、一三層式單元塊中的一低頁面、上述三層式單元塊中的一中間頁面或上述三層式單元塊中的一高頁面。
  7. 如請求項3所述的多閃存晶片的資料讀取方法,其中,上述估計讀取前置時間相應於上述讀取指令所關聯的上述晶片和一頁面類型,並且上述頁面類型為一單層式單元頁面、一四層式單元塊中的一低頁面、上述四層式單元塊中的一中間頁面、上述四層式單元塊中的一高頁面或上述四層式單元塊中的一頂頁面。
  8. 一種電腦程式產品,包含用於讀取多閃存晶片的資料的一程式碼,其中,當一處理單元執行上述程式碼時,實施如請求項1至7中任一項所述的多閃存晶片的資料讀取的方法。
  9. 一種多閃存晶片的資料讀取裝置,包含: 一閃存介面,以相同通道耦接一第一晶片和一第二晶片;以及 一處理單元,耦接上述閃存介面,發出一第一讀取指令給上述閃存介面,驅動上述閃存介面啟動一第一資料讀取操作,用於從上述第一晶片的一第一位置讀取一第一資料;計算相應於上述第一讀取指令的一第一輸出時間點;發出一第二讀取指令給上述閃存介面,驅動上述閃存介面啟動一第二資料讀取操作,用於從上述第二晶片的一第二位置讀取一第二資料;計算相應於上述第二讀取指令的一第二輸出時間點;以及當目前時間沒有到達或晚於上述第一輸出時間點但已經到達或晚於上述第二輸出時間點時,發出相應於上述第二讀取指令的一隨機輸出指令給上述閃存介面,驅動上述閃存介面將上述第二資料儲存到一隨機存取記憶體。
  10. 如請求項9所述的多閃存晶片的資料讀取裝置,其中,上述第二晶片需要一段時間以準備上述第二資料。
  11. 如請求項9所述的多閃存晶片的資料讀取裝置,其中,上述第二輸出時間點使用以下公式計算: t out=T now+t prept out代表上述第二輸出時間點,T now代表目前時間的時間戳記,t prep代表關聯於上述第二讀取指令的一估計讀取前置時間。
  12. 如請求項11所述的多閃存晶片的資料讀取裝置,其中,上述估計讀取前置時間相應於上述第二讀取指令所關聯的上述第二晶片。
  13. 如請求項11所述的多閃存晶片的資料讀取裝置,其中,上述估計讀取前置時間相應於上述第二讀取指令所關聯的上述第二晶片和一記憶單元類型,並且上述記憶單元類型為一單層式單元、一多層式單元、一三層式單元或一四層式單元。
  14. 如請求項11所述的多閃存晶片的資料讀取裝置,其中,上述估計讀取前置時間相應於上述第二讀取指令所關聯的上述第二晶片和一頁面類型,並且上述頁面類型為一單層式單元頁面、一三層式單元塊中的一低頁面、上述三層式單元塊中的一中間頁面或上述三層式單元塊中的一高頁面。
  15. 如請求項11所述的多閃存晶片的資料讀取裝置,其中,上述估計讀取前置時間相應於上述第二讀取指令所關聯的上述第二晶片和一頁面類型,並且上述頁面類型為一單層式單元頁面、一四層式單元塊中的一低頁面、上述四層式單元塊中的一中間頁面、上述四層式單元塊中的一高頁面或上述四層式單元塊中的一頂頁面。
TW109143988A 2020-12-14 2020-12-14 多閃存晶片的資料讀取方法及裝置以及電腦程式產品 TWI747660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109143988A TWI747660B (zh) 2020-12-14 2020-12-14 多閃存晶片的資料讀取方法及裝置以及電腦程式產品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109143988A TWI747660B (zh) 2020-12-14 2020-12-14 多閃存晶片的資料讀取方法及裝置以及電腦程式產品

Publications (2)

Publication Number Publication Date
TWI747660B true TWI747660B (zh) 2021-11-21
TW202223662A TW202223662A (zh) 2022-06-16

Family

ID=79907731

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109143988A TWI747660B (zh) 2020-12-14 2020-12-14 多閃存晶片的資料讀取方法及裝置以及電腦程式產品

Country Status (1)

Country Link
TW (1) TWI747660B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661684A (zh) * 2023-05-10 2023-08-29 珠海妙存科技有限公司 一种闪存数据的读取方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008138249A1 (en) * 2007-05-10 2008-11-20 Memoright Memoritech (Shenzhen) Co., Ltd Parallel flash memory controller, chip and control method thereof
CN1677565B (zh) * 2004-03-30 2010-06-16 三星电子株式会社 进行高速缓存读取的方法和器件
US20110173462A1 (en) * 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
TW201445312A (zh) * 2009-09-24 2014-12-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
US9720770B2 (en) * 2013-09-16 2017-08-01 Shannon Systems Ltd. Method for calculating raids parity code on interleaving and out of order data streams, and a system using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1677565B (zh) * 2004-03-30 2010-06-16 三星电子株式会社 进行高速缓存读取的方法和器件
WO2008138249A1 (en) * 2007-05-10 2008-11-20 Memoright Memoritech (Shenzhen) Co., Ltd Parallel flash memory controller, chip and control method thereof
TW201445312A (zh) * 2009-09-24 2014-12-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
US20110173462A1 (en) * 2010-01-11 2011-07-14 Apple Inc. Controlling and staggering operations to limit current spikes
US9720770B2 (en) * 2013-09-16 2017-08-01 Shannon Systems Ltd. Method for calculating raids parity code on interleaving and out of order data streams, and a system using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661684A (zh) * 2023-05-10 2023-08-29 珠海妙存科技有限公司 一种闪存数据的读取方法、系统、设备及介质
CN116661684B (zh) * 2023-05-10 2024-02-23 珠海妙存科技有限公司 一种闪存数据的读取方法、系统、设备及介质

Also Published As

Publication number Publication date
TW202223662A (zh) 2022-06-16

Similar Documents

Publication Publication Date Title
US20210263645A1 (en) NVMe Controller Memory Manager
US11669272B2 (en) Predictive data transfer based on availability of media units in memory sub-systems
CN112035381B (zh) 一种存储系统及存储数据处理方法
US20200409601A1 (en) Hold of Write Commands in Zoned Namespaces
US10635343B2 (en) Streamed program commands with periodic garbage collection
TWI467574B (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
US11354041B2 (en) Read latency reduction through command and polling overhead avoidance
US11086554B2 (en) Writing same data on a storage system
US20160124639A1 (en) Dynamic storage channel
US20190026220A1 (en) Storage device that stores latency information, processor and computing system
US11281405B2 (en) Controlled die asymmetry during MLC operations for optimal system pipeline
US20190310795A1 (en) Suspending and resuming a read operation for a non-volatile memory
JP2021043975A (ja) インターフェース回路並びにメモリ装置及びその動作方法
TWI747660B (zh) 多閃存晶片的資料讀取方法及裝置以及電腦程式產品
TWI564809B (zh) 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置
US11651803B2 (en) Method and apparatus and computer program product for reading data from multiple flash dies
CN108536475B (zh) 完整编程命令处理方法与装置
TWI714116B (zh) 記憶體控制器、記憶體控制方法、以及電腦系統
CN113495850A (zh) 管理垃圾回收程序的方法、装置及计算机可读取存储介质
TWI835027B (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
TWI758745B (zh) 排程主機命令執行的電腦程式產品及方法及裝置
TWI818762B (zh) 排程和執行主機資料更新命令的方法及電腦程式產品及裝置
TWI822517B (zh) 執行主機寫入命令的方法及電腦程式產品及裝置
TWI810876B (zh) 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置
TWI805505B (zh) 排程和執行主機資料更新命令的方法及電腦程式產品及裝置