TWI699771B - 電子裝置、記憶體控制器及相關存取方法 - Google Patents
電子裝置、記憶體控制器及相關存取方法 Download PDFInfo
- Publication number
- TWI699771B TWI699771B TW109107150A TW109107150A TWI699771B TW I699771 B TWI699771 B TW I699771B TW 109107150 A TW109107150 A TW 109107150A TW 109107150 A TW109107150 A TW 109107150A TW I699771 B TWI699771 B TW I699771B
- Authority
- TW
- Taiwan
- Prior art keywords
- read command
- memory controller
- microprocessor
- read
- data
- Prior art date
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本發明揭露了一種記憶體控制器,其包含有一人工智慧模組以及一微處理器。在該記憶體控制器的操作中,人工智慧模組係接收一讀取命令,並依據讀取命令及一判斷邏輯以產生一輔助讀取命令;以及微處理器根據輔助讀取命令以自記憶體模組讀取一預測資料,以及在自一主裝置接收包含預測資料所對應到的邏輯位址的另一讀取命令之後,才會將預測資料回傳給主裝置;其中,微處理器根據輔助讀取命令以讀取預測資料的操作係早於微處理器接收到另一讀取命令之前。
Description
本發明係有關於快閃記憶體控制器。
在目前的快閃記憶體控制器中,其操作模式都是忠實地執行來自主裝置的存取命令,舉例來說,快閃記憶體控制器只有在接收到來自主裝置的讀取命令時才會去快閃記憶體模組中讀取資料,並將所讀取的資料回傳給主裝置。然而,由於快閃記憶體模組的存取速度較慢,因此若是快閃記憶體控制器每次都只在接收到讀取命令時才開始讀取快閃記憶體模組內的資料,則會使得快閃記憶體的讀取速度無法進一步提升,拖累了整體系統的效能。
因此,本發明的目的之一在於提供一種快閃記憶體控制器,其可以根據目前的讀取命令來預測接下來主裝置會需要讀取那些資料,並預先自快閃記憶體模組中讀取該些資料後儲存在存取速度較快的靜態隨機存取記憶體或是動態隨機存取記憶體中,以在後續接收到相關的讀取命令時能夠快速地回傳給主裝置,以改善整體系統的效能。
在本發明的一個實施例中,揭露了一種記憶體控制器,係耦接一記憶體模組,並包含有一人工智慧模組以及一微處理器。在記憶體控制器的操作中,人工智慧模組係接收一讀取命令,並依據讀取命令及一判斷邏輯以產生一輔助讀取命令;以及微處理器根據輔助讀取命令以自記憶體模組讀取一預測資料(等同於第二資料),以及在自一主裝置接收包含預測資料所對應到的邏輯位址的另一讀取命令之後,才會將預測資料回傳給主裝置;其中,微處理器根據輔助讀取命令以讀取預測資料的操作係早於微處理器接收到另一讀取命令之前。
在本發明的另一個實施例中,揭露了一種存取一記憶體模組的方法,其包含有以下步驟:接收一讀取命令;依據讀取命令及一判斷邏輯以產生一輔助讀取命令;以及一微處理器係根據輔助讀取命令以自記憶體模組讀取一預測資料(等同於第二資料),以及在自一主裝置接收包含預測資料所對應到的邏輯位址的另一讀取命令之後,才會將預測資料回傳給主裝置;其中,微處理器根據輔助讀取命令以讀取預測資料的操作係早於微處理器接收到該另一讀取命令之前。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一記憶體模組以及一記憶體控制器,且記憶體控制器包含有一人工智慧模組以及一微處理器。在記憶體控制器的操作中,人工智慧模組係接收一讀取命令,並依據讀取命令及一判斷邏輯以產生一輔助讀取命令;以及微處理器根據輔助讀取命令以自記憶體模組讀取一預測資料(等同於第二資料),以及在自一主裝置接收包含預測資料所對應到的邏輯位址的另一讀取命令之後,才會將預測資料回傳給主裝置;其中,微處理器根據輔助讀取命令以讀取預測資料的操作係早於微處理器接收到該另一讀取命令之前。
第1圖為根據本發明一實施例之電子裝置100的示意圖。如第1圖所示,電子裝置100包含了一主裝置110、一快閃記憶體控制器120、一快閃記憶體模組130以及一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)142,其中快閃記憶體控制器120包含了一介面電路121、一人工智慧模組122、一微處理器124、一緩衝記憶體126、一唯讀記憶體128以及一控制邏輯129。唯讀記憶體128係用來儲存多個程式碼,而微處理器124則用來執行該些程式碼以控制對快閃記憶體模組130之存取,且快閃記憶體控制器120內的元件可透過圖式的匯流排來進行資料的傳遞。在本實施例中,快閃記憶體控制器120以及快閃記憶體模組130可視為一固態硬碟(Solid-state drive,SSD),電子裝置100可以是任何具有固態硬碟的電腦或伺服器,而主裝置110可以是用來透過快閃記憶體控制器120來存取快閃記憶體模組130的一處理器。
快閃記憶體模組130包含了至少一個快閃記憶體晶片,而每一個快閃記憶體晶片包含了多個區塊(block),且每一個區塊包含了多個資料頁(page)。在快閃記憶體的相關設計中,每一個區塊是一個最小的抹除單位,亦即區塊內的所有資料係一併被抹除而無法僅抹除一部分,且每一個資料頁係為一最小的寫入單位。
人工智慧模組122具有獨立的電路架構,其可以透過不斷地接收連續的讀取命令並進行分析,以建立/更新出多個判斷邏輯來供後續使用。在本實施例中,人工智慧模組122中的該多個判斷邏輯係用來判斷或預測來自主裝置110之讀取命令之間的順序關係,以在接收到來自主裝置110的一個讀取命令之後能夠判斷/預測主裝置110將要發出哪一個讀取命令,以提前在快閃記憶體控制器120進行優先處理。具體來說,人工智慧模組122在電子裝置100進行運作時會不斷地接收來自主裝置110的讀取命令,並透過記錄以及學習訓練的方式來產生可以用來判斷讀取命令順序關係的多個判斷邏輯,舉例來說,假設人工智慧模組122多次在從主裝置110接收到要求讀取具有邏輯位址LBA_5之資料的讀取命令之後緊接著又收到要求讀取具有邏輯位址LBA_100之資料的讀取命令,則人工智慧模組122便可以判斷具有邏輯位址LBA_5以及LBA_100的資料有很高的機率會被主裝置110連續地要求讀取,因此人工智慧模組122可以建立出邏輯位址LBA_100係緊接著邏輯位址LBA_5之後的判斷邏輯。因此,當人工智慧模組122之後從主裝置110接收到要求讀取具有邏輯位址LBA_5的讀取命令之後,人工智慧模組122便可以判斷出主裝置110之後很有可能會立即發出具有邏輯位址LBA_100的讀取命令,因此可以先通知微處理器124作一些預先處理。需注意的是,在以上的說明中,邏輯位址LBA_5、LBA_100所表示的可以是對應到單一筆資料(例如,4千位元組)的邏輯位址,或是對應到多筆資料的一邏輯位址範圍。
需注意的是,由於人工智慧模組122是透過電子裝置100在實際操作中所接到的讀取命令來進行訓練,以產生多個判斷邏輯,因此人工智慧模組122可以準確地判斷主裝置110所依序要求讀取之資料的邏輯位址關係,特別是這些邏輯位址可以並非是連續的邏輯位址。亦即,上述之邏輯位址LBA_5、LBA_100是兩個不連續、或是不完全連續的邏輯位址或是邏輯位址範圍。
在本發明的一個實施例中,考慮到人工智慧模組122的能力及效率問題,人工智慧模組122可以被設定以在電子裝置100執行至少一特定操作時的至少一特定時段才會自該主裝置接收與多個特定讀取命令,以產生/更新該多個判斷邏輯。舉例來說,由於使用者最在意的通常是電子裝置100開機時間以及開啟某些特定軟體/應用程式的啟動時間,因此,使用者可以透過電子裝置100的使用者介面來設定人工智慧模組122只有在電子裝置100開機的時候或是執行某些特定軟體/應用程式時才會進行訓練以產生/更新該多個判斷邏輯,而其他的時間人工智慧模組122則不會進行訓練來產生/更新該多個判斷邏輯。具體來說,透過使用者設定,人工智慧模組122可以在電子裝置100每次開機後7秒內進行訓練以產生/更新該多個判斷邏輯,而由於電子裝置100在每次開機所需要讀取的檔案有很大的相似性,因此透過多次在電子裝置100開機時進行訓練,可以讓人工智慧模組122準確且有效率地完成該多個判斷邏輯的訓練;此外,由於在電子裝置100開機的7秒後人工智慧模組122內的該多個判斷邏輯便不再更新,因此可以避免後續電子裝置100操作時雜亂的讀取命令干擾到該多個判斷邏輯而影響到其正確性。在另一個範例中,透過使用者設定,人工智慧模組122可以在電子裝置100每次開始執行一特定應用程式時的4秒內進行訓練以產生/更新該多個判斷邏輯,以讓人工智慧模組122準確且有效率地完成該多個判斷邏輯的訓練;此外,由於在開始執行該特定應用程式時的4秒後人工智慧模組122內的該多個判斷邏輯便不再更新,因此可以避免後續電子裝置100操作時雜亂的讀取命令干擾到該多個判斷邏輯而影響到其正確性。
在本實施例中,使用者可以透過電子裝置100的使用者介面來隨時停止人工智慧模組122的訓練,亦即停止更新該多個判斷邏輯。舉例來說,假設人工智慧模組122已經經歷過電子裝置100的十次開機程序來更新該多個判斷邏輯,則由於該多個判斷邏輯應足以反映出電子裝置100開機時主裝置110的讀取命令的順序,因此人工智慧模組122可以停止繼續訓練以降低系統負擔。
在電子裝置100整體的操作中,當快閃記憶體控制器120自主裝置110接收到一讀取命令時,人工智慧模組122會分析該讀取命令中所包含的邏輯位址(亦即,該讀取命令所要求讀取之資料所對應到的邏輯位址),並透過內部的該多個判斷邏輯來決定出一輔助讀取命令,其中該輔助讀取命令所包含的邏輯位址係關聯於人工智慧模組122在先前訓練時接續在該讀取命令之後的另一讀取命令。舉例來說,假設先前人工智慧模組122建立出邏輯位址LBA_100係緊接著邏輯位址LBA_5之後的判斷邏輯,則當快閃記憶體控制器120所接收到之該讀取命令包含了邏輯位址LBA_5,該輔助讀取命令會包含了邏輯位址LBA_100。
接著,微處理器124根據該讀取命令所包含的邏輯位址,並參考緩衝記憶體126所儲存的一邏輯位址至實體位址映射表(logical address to physical address mapping table),以決定出快閃記憶體模組130的一實體位址,以及自該實體位址讀取一第一資料(等同於當前資料),並立即將該第一資料回傳給主裝置。此外,若是接下來快閃記憶體控制器120以及快閃記憶體模組有空閒的時間,則微處理器124會另外根據該輔助讀取命令所包含的邏輯位址,並參考緩衝記憶體126所儲存的該邏輯位址至實體位址映射表以決定出快閃記憶體模組130的另一實體位址,並自該實體位址讀取一第二資料(等同於預測資料)後暫存在緩衝記憶體126或是動態隨機存取記憶體142中。需注意的是,此時快閃記憶體控制器120尚未接收到該讀取命令的下一個命令,且快閃記憶體控制器120目前也不會將該第二資料傳送給主裝置110。
舉例來說,假設該讀取命令包含了邏輯位址LBA_5,且該輔助讀取命令包含了LBA_100,則快閃記憶體控制器120會立即自快閃記憶體模組130中讀取對應到邏輯位址LBA_5的該第一資料(等同於當前資料),並將該第一資料回傳給主裝置110;以及快閃記憶體控制器120會預先自快閃記憶體模組120中讀取對應到邏輯位址LBA_100的該第二資料(等同於預測資料),並暫存在緩衝記憶體126或是動態隨機存取記憶體142中,而不立即回傳給主裝置110。
接著,若是快閃記憶體控制器120後續收到包含邏輯位址LBA_100的另一讀取命令時,快閃記憶體控制器120便可以立即把儲存在緩衝記憶體126或是動態隨機存取記憶體142中的該第二資料回傳給主裝置110。由於緩衝記憶體126或是動態隨機存取記憶體142的存取速度遠快於快閃記憶體模組130,因此本實施例之預先讀取該第二資料的方法可以加速資料的讀取速度,提升電子裝置100的效能。
另一方面,若是快閃記憶體控制器120在一段時間內沒有收到包含邏輯位址LBA_100的另一讀取命令時,快閃記憶體控制器120便可以在適當的時機點將該第二資料自緩衝記憶體126或是動態隨機存取記憶體142中刪除,以釋放出記憶體空間。
需注意的是,以上實施例僅是以兩個讀取命令以及兩個邏輯位址來作為說明,但本發明並不以此為限。在本發明之其他實施例中,人工智慧模組122所包含的該多個判斷邏輯可以用來判斷主裝置110所依序要求讀取之兩筆以上之資料的多個邏輯位址關係,而人工智慧模組122可以在接收到第一個讀取命令時預測第二、三、四、…筆讀取命令所要求讀取之資料的邏輯位址,並據此發出多筆輔助讀取命令至微處理器124以預先讀取資料並暫存至緩衝記憶體126或是動態隨機存取記憶體142。
第2圖為根據本發明一實施例之存取快閃記憶體模組130的方法的流程圖。參考第1圖及其揭露內容,流程如下所述。
步驟200:流程開始。
步驟202:自一主裝置接收一讀取命令。
步驟204:根據該讀取命令以產生一輔助讀取命令。
步驟206:根據該讀取命令以自一快閃記憶體模組讀取一第一資料(等同於當前資料),並將該第一資料回傳給該主裝置。
步驟208:根據該輔助讀取命令以自該快閃記憶體模組讀取一第二資料(等同於預測資料),並將該第二資料暫存至一緩衝記憶體或是一動態隨機存取記憶體。
步驟210:當接收來自該主裝置之要求讀取該第二資料的另一讀取命令時,才將該第二資料回傳給該主裝置。
簡要歸納本發明,在本發明之快閃記憶體控制器中,係包含了人工智慧模組以預測目前讀取命令的下一筆讀取命令,並預先自快閃記憶體模組中讀取所預測之下一筆讀取命令的資料後儲存在存取速度較快的靜態隨機存取記憶體或是動態隨機存取記憶體中,以在後續接收到相關的讀取命令時能夠快速地回傳給主裝置。透過本發明,可以加速資料讀取速度並提升系統效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:電子裝置
110:主裝置
120:快閃記憶體控制器
121:介面電路
122:人工智慧模組
124:微處理器
126:緩衝記憶體
128:唯讀記憶體
129:控制邏輯
130:快閃記憶體模組
142:動態隨機存取記憶體
200~210:步驟
第1圖為根據本發明一實施例之電子裝置的示意圖。
第2圖為根據本發明一實施例之存取快閃記憶體模組的方法的流程圖。
100:電子裝置
110:主裝置
120:快閃記憶體控制器
121:介面電路
122:人工智慧模組
124:微處理器
126:緩衝記憶體
128:唯讀記憶體
129:控制邏輯
130:快閃記憶體模組
142:動態隨機存取記憶體
Claims (10)
- 一種記憶體控制器,係耦接一記憶體模組,該記憶體控制器包含: 一人工智慧模組,係接收一讀取命令,並依據該讀取命令及一判斷邏輯以產生一輔助讀取命令;以及 一微處理器,耦接於該人工智慧模組,係根據該輔助讀取命令以自該記憶體模組讀取一預測資料,以及在自一主裝置接收包含該預測資料所對應到的邏輯位址的另一讀取命令之後,才會將該預測資料回傳給該主裝置; 其中,該微處理器根據該輔助讀取命令以讀取該預測資料的操作係早於該微處理器接收到該另一讀取命令之前。
- 如請求項1所述之記憶體控制器,其中,在該記憶體控制器接收該另一讀取命令之前已接收該讀取命令;以及,該微處理器係根據該讀取命令以自該記憶體模組讀取一當前資料。
- 如請求項2所述之記憶體控制器,其中該當前資料所對應到的邏輯位址與該預測資料所對應到的邏輯位址不完全連續。
- 如請求項2所述之記憶體控制器,其中該微處理器立即將該當前資料回傳給該主裝置,並將該預測資料暫存至一記憶體中而不立即回傳給該主裝置。
- 如請求項1所述之記憶體控制器,其中在接收該讀取命令之前,該人工智慧模組係多次地自該主裝置接收與該讀取命令相關的多個特定讀取命令,以更新該判斷邏輯。
- 如請求項1所述之記憶體控制器,其中該另一讀取命令在接收的時間點上係分別緊接在該讀取命令之後。
- 如請求項2所述之記憶體控制器,其中該人工智慧模組係根據一使用者設定,以多次地自該主裝置接收與該讀取命令相關的多個特定讀取命令,以更新該判斷邏輯。
- 如請求項7所述之記憶體控制器,其中該記憶體控制器係應用在一電子裝置中,該使用者設定係為該電子裝置執行至少一特定操作時的至少一特定時段,且該人工智慧模組只有在該至少一特定時段才會自該主裝置接收與該讀取命令相關的多個特定讀取命令,以產生/更新該判斷邏輯。
- 一種存取一記憶體模組的方法,包含有: 接收一讀取命令; 依據該讀取命令及一判斷邏輯以產生一輔助讀取命令;以及 一微處理器係根據該輔助讀取命令以自該記憶體模組讀取一預測資料,以及在自一主裝置接收包含該預測資料所對應到的邏輯位址的另一讀取命令之後,才會將該預測資料回傳給該主裝置; 其中,該微處理器根據該輔助讀取命令以讀取該預測資料的操作係早於該微處理器接收到該另一讀取命令之前。
- 一種電子裝置,包含有: 一記憶體模組;以及 一記憶體控制器,用以存取該記憶體模組,且包含有: 一人工智慧模組,係接收一讀取命令,並依據該讀取命令及一判斷邏輯以產生一輔助讀取命令;以及 一微處理器,耦接於該人工智慧模組,根據該輔助讀取命令以自該記憶體模組讀取一預測資料,以及在自一主裝置接收包含該預測資料所對應到的邏輯位址的另一讀取命令之後,才會將該預測資料回傳給該主裝置; 其中,該微處理器根據該輔助讀取命令以讀取該預測資料的操作係早於該微處理器接收到該另一讀取命令之前。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109107150A TWI699771B (zh) | 2018-08-30 | 2018-08-30 | 電子裝置、記憶體控制器及相關存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109107150A TWI699771B (zh) | 2018-08-30 | 2018-08-30 | 電子裝置、記憶體控制器及相關存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202027082A TW202027082A (zh) | 2020-07-16 |
TWI699771B true TWI699771B (zh) | 2020-07-21 |
Family
ID=72602006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109107150A TWI699771B (zh) | 2018-08-30 | 2018-08-30 | 電子裝置、記憶體控制器及相關存取方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI699771B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120271991A1 (en) * | 2007-12-28 | 2012-10-25 | Spansion Llc | Relocating data in a memory device |
TW201445306A (zh) * | 2013-05-22 | 2014-12-01 | Asmedia Technology Inc | 磁碟陣列系統及資料處理方法 |
TW201445429A (zh) * | 2013-05-22 | 2014-12-01 | Asmedia Technology Inc | 磁碟陣列系統及資料處理方法 |
US20160180898A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Memory controller and memory system including the same |
TW201727653A (zh) * | 2016-01-29 | 2017-08-01 | 智原科技股份有限公司 | 非揮發性記憶體加速器及存取加速方法 |
US20180107591A1 (en) * | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
-
2018
- 2018-08-30 TW TW109107150A patent/TWI699771B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120271991A1 (en) * | 2007-12-28 | 2012-10-25 | Spansion Llc | Relocating data in a memory device |
US20180107591A1 (en) * | 2011-04-06 | 2018-04-19 | P4tents1, LLC | System, method and computer program product for fetching data between an execution of a plurality of threads |
TW201445306A (zh) * | 2013-05-22 | 2014-12-01 | Asmedia Technology Inc | 磁碟陣列系統及資料處理方法 |
TW201445429A (zh) * | 2013-05-22 | 2014-12-01 | Asmedia Technology Inc | 磁碟陣列系統及資料處理方法 |
US20160180898A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Memory controller and memory system including the same |
TW201727653A (zh) * | 2016-01-29 | 2017-08-01 | 智原科技股份有限公司 | 非揮發性記憶體加速器及存取加速方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202027082A (zh) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI703566B (zh) | 快閃記憶體控制器及相關的存取方法及電子裝置 | |
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
CN109426619B (zh) | 访问快闪存储器模块的方法及相关闪存控制器与电子装置 | |
TWI698874B (zh) | 快閃記憶體控制器及相關的存取方法及電子裝置 | |
CN107621959B (zh) | 电子装置及其软件训练方法、计算系统 | |
WO2019127212A1 (zh) | 一种数据写入的方法及固态硬盘阵列 | |
US20150378888A1 (en) | Controller, flash memory apparatus, and method for writing data into flash memory apparatus | |
US9141549B2 (en) | Memory system with read and write caches and method of controlling memory system with read and write caches | |
KR102655347B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
EP3608790A1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
TW202001573A (zh) | 記憶系統 | |
KR102517685B1 (ko) | 메모리 블록 복구 방법 및 디바이스 | |
CN112905111A (zh) | 数据缓存的方法和数据缓存的装置 | |
US20090049232A1 (en) | Execute-in-place implementation for a nand device | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
CN109144422A (zh) | 一种固态硬盘的写数据方法、装置、设备及存储介质 | |
CN111026325B (zh) | 闪存控制器、闪存控制器的控制方法及相关的电子装置 | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
US10402101B2 (en) | System and method for using persistent memory to accelerate write performance | |
US11366770B2 (en) | Storage controller managing completion timing, and operating method thereof | |
TWI699771B (zh) | 電子裝置、記憶體控制器及相關存取方法 | |
CN110941565B (zh) | 用于芯片存储访问的内存管理方法和装置 | |
CN110941571B (zh) | 闪存控制器及相关的存取方法及电子装置 | |
CN110888588B (zh) | 快闪记忆体控制器及相关的访问方法及电子装置 | |
US20210149588A1 (en) | Information processing method, apparatus, device, and system |