TWI671637B - 記憶體管理裝置及其操作方法 - Google Patents
記憶體管理裝置及其操作方法 Download PDFInfo
- Publication number
- TWI671637B TWI671637B TW107113940A TW107113940A TWI671637B TW I671637 B TWI671637 B TW I671637B TW 107113940 A TW107113940 A TW 107113940A TW 107113940 A TW107113940 A TW 107113940A TW I671637 B TWI671637 B TW I671637B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- bus
- buffer
- time interval
- memory
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一種記憶體管理裝置及其操作方法。記憶體管理裝置包括主機端、記憶體、第一匯流排、控制裝置、緩衝器、第二匯流排以及錯誤檢測校正器(ECC)。第一匯流排耦接在主機端以及記憶體之間。控制裝置耦接至第一匯流排。緩衝器耦接至第一匯流排,用以儲存多個資料。錯誤檢測校正器透過第二匯流排耦接至緩衝器,並經由第二匯流排從緩衝器中接收各資料並進行錯誤檢測,以對各資料進行錯誤校正。其中,第一匯流排與第二匯流排並不相同。
Description
本發明是有關於一種記憶體管理裝置及其操作方法,且特別是有關於一種可提升系統資料吞吐量的記憶體管理裝置及其操作方法。
隨著電子科技的進步,電子裝置也成為人們生活中不可或缺的工具。而為了提供大量的資料儲存能力,在電子裝置中設置一定量的非揮發性記憶體成為必然的趨勢。在今日,快閃記憶體為一種常用的非揮發性記憶體。
在習知技術領域中,常提供一系統匯流排,並透過系統匯流排來進行資料的傳輸動作。當要對資料進行錯誤檢測校正動作時,可透過系統匯流排將資料傳送至錯誤檢測校正器。然而,在對資料進行錯誤檢測校正動作時,時常會因為系統匯流排處於忙碌的狀態,而遭遇系統匯流排無法進行額外資料傳輸動作的情況。並且,若錯誤檢測校正器透過特定的錯誤更正碼,例如,迭代解碼器(Iterative Decoder)來執行錯誤校正時,會需要反覆的讀取位於緩衝器內之資料。此時,若直接透過系統匯流排讀取緩衝器,會因為系統匯流排之傳輸延遲,造成系統資料吞吐量下降的問題。
本發明提供一種記憶體管理裝置及其操作方法,其可改善系統傳輸延遲,並提升系統資料的吞吐量。
本發明的記憶體管理裝置包括主機端、記憶體、第一匯流排、控制裝置、緩衝器、第二匯流排以及錯誤檢測校正器。第一匯流排耦接在主機端以及記憶體之間。控制裝置耦接至第一匯流排。緩衝器耦接至第一匯流排,用以儲存多個資料。以及錯誤檢測校正器,透過第二匯流排耦接至緩衝器,並經由第二匯流排,從緩衝器中接收各資料並進行錯誤檢測,以對各資料進行錯誤校正。其中,第一匯流排與第二匯流排並不相同。
在本發明的一實施例中,上述的控制裝置經由第一匯流排,接收來自記憶體的多個資料,並將各資料儲存至緩衝器中,其中控制裝置經由第一匯流排,接收來自緩衝器的各資料,並將各資料傳輸至主機端。
在本發明的一實施例中,上述的控制裝置在第一時間區間,經由第一匯流排,接收來自記憶體的第一資料,並將第一資料儲存至緩衝器中。
在本發明的一實施例中,上述的錯誤檢測校正器在第二時間區間中,經由第二匯流排,接收來自緩衝器的第一資料並進行錯誤檢測,以對第一資料進行錯誤校正,其中第一時間區間早於第二時間區間。
在本發明的一實施例中,上述的控制裝置在第三時間區間,經由第一匯流排,接收來自記憶體的第二資料,並將第二資料儲存至緩衝器中,並且在第三時間區間中,控制裝置經由第一匯流排,接收來自緩衝器的第一資料,並將第一資料傳輸至主機端,其中第二時間區間早於第三時間區間。
在本發明的一實施例中,上述的記憶體管理裝置更包括位址轉換器,耦接第一匯流排,用以對各資料進行位址轉換,並儲存至緩衝器,其中錯誤檢測校正器透過第二匯流排,耦接至緩衝器,其中緩衝器連接至位址轉換器,並透過位址轉換器耦接至第一匯流排。
在本發明的一實施例中,上述的記憶體管理裝置,其中控制裝置經由第一匯流排,並透過位址轉換器,接收來自記憶體的多個資料,並將各資料儲存至緩衝器中。
在本發明的一實施例中,上述的控制裝置在第一時間區間,經由第一匯流排,並透過位址轉換器,接收來自記憶體的第一資料,並將第一資料儲存至緩衝器中。
在本發明的一實施例中,上述的控制裝置在第二時間區間,經由第一匯流排,並透過位址轉換器,接收來自記憶體的第二資料,並將第二資料儲存至緩衝器中,並且在第二時間區間中,錯誤檢測校正器經由第二匯流排,接收來自緩衝器的第一資料並進行錯誤檢測,以對第一資料進行錯誤校正,其中第一時間區間早於第二時間區間。
在本發明的一實施例中,上述的控制裝置在第三時間區間,經由第一匯流排,並透過位址轉換器,接收來自記憶體的第三資料,並將第三資料儲存至緩衝器中,並且在第三時間區間中,錯誤檢測校正器經由第二匯流排,接收來自緩衝器的第二資料並進行錯誤檢測,以對第二資料進行錯誤校正,以及在第三時間區間中,控制裝置經由第一匯流排,接收來自緩衝器的第一資料,並將第一資料傳輸至主機端,其中第二時間區間早於第三時間區間。
在本發明的一實施例中,上述的緩衝器被劃分為多個緩衝頁,用以分別儲存多個資料。
在本發明的一實施例中,上述的第一匯流排包括高級微控制器匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)。
本發明的記憶體管理裝置的操作方法,包括提供控制裝置,透過第一匯流排接收來自記憶體的多個資料,並將各資料儲存至緩衝器中;提供錯誤檢測校正器以經由第二匯流排接收來自緩衝器的各資料並對各資料進行錯誤檢測,以對各資料進行錯誤校正;以及提供控制裝置經由第一匯流排接收來自緩衝器的各資料,並將各資料傳輸至主機端,其中,第一匯流排與第二匯流排並不相同。
基於上述,本發明藉由增加額外的第二匯流排,使錯誤檢測校正器能經由第二匯流排耦接至緩衝器,並經由第二匯流排,從緩衝器中接收各資料以對各資料進行錯誤檢測校正操作,進而改善系統傳輸延遲,以及提升系統資料吞吐量。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
請參照圖1,圖1繪示本發明一實施例的記憶體管理裝置的示意圖。在本實施例中,記憶體管理裝置100包括主機端110、記憶體120、控制裝置130、第一匯流排140、緩衝器150、錯誤檢測校正器160以及第二匯流排170。第一匯流排140耦接於主機端110以及記憶體120之間,用於傳輸資料。控制裝置130耦接至第一匯流排140。緩衝器150耦接至第一匯流排140,並且用於儲存資料。第二匯流排170耦接於緩衝器150及錯誤檢測校正器160之間,用於傳輸緩衝器150及錯誤檢測校正器160的資料。錯誤檢測校正器160透過第二匯流排170耦接至緩衝器150,並且經由第二匯流排170從緩衝器150中接收資料,以進行錯誤檢測校正操作。
其中,第一匯流排140與第二匯流排170為不同的匯流排,亦可以是兩個具有物理性隔離的匯流排。詳細來說,在本實施例中,藉由將錯誤檢測校正器160耦接至與第一匯流排140不同的第二匯流排170,當錯誤檢測校正器160要對緩衝器150中的資料進行錯誤檢測校正操作時,便能經由第二匯流排170來進行操作,而不用透過第一匯流排140,進而減少第一匯流排140的額外資料傳輸動作,以提升系統資料的吞吐量。
值得一提的,在本實施例中,以NAND快閃記憶體作為記憶體120的一實施範例。當然,本發明實施例中的記憶體120不以NAND快閃記憶體為限,記憶體120也可由其他非揮發性記憶體來實施。舉例而言,記憶體120可由相變隨機存取記憶體(phase change random access memory,PRAM)、磁性隨機存取記憶體(magnetic RAM,MRAM)、電阻式隨機存取記憶體(resistive RAM,ReRAM)、鐵電式隨機存取記憶體(ferroelectric RAM,FRAM)、NOR快閃記憶體或其他本領域技術人員所熟知的記憶體。
控制裝置130例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
第一匯流排140以及第二匯流排170例如是先進微控制器匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)的匯流排,但本發明的可實施方式不限於此。
緩衝器150例如是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或靜態隨機存取記憶體(Static Random Access Memory,SRAM)等,本發明不限於此。緩衝器150也可以是其他適合的記憶體。詳細來說,請同時參照圖1及圖2A,圖2A繪示本發明圖1實施例的記憶體管理裝置的緩衝器配置示意圖。在本實施例中,緩衝器150可被劃分為多個緩衝頁,例如是緩衝頁BUF0、BUF1、BUF2、BUF3。
每個緩衝頁BUF0、BUF1、BUF2、BUF3具有起始位址與結束位址。在本實施例中,每個緩衝頁BUF0、BUF1、BUF2、BUF3中的位址add1~add5是利用16進位的表現方式(例如是0x00000、0x02000、0x04000、0x06000以及0x08000)來進行定址,舉例來說,排序為第一個的緩衝頁BUF0的起始位址可設定為0x00000,其結束位址可設定為0x02000。排序為第二個的緩衝頁BUF1的起始位址可設定為0x02000,其結束位址可設定為0x04000。BUF2、BUF3的起始位址與結束位址的設定方式,與前述緩衝頁BUF0、BUF1的設定方式相類似,在此不多贅述。
在本實施例中,每個緩衝頁BUF0、BUF1、BUF2、BUF3的大小為8192位元組(Bytes)(即,8KB)。緩衝器150用來進行資料儲存的緩衝頁BUF0、BUF1、BUF2、BUF3的總空間為32KB,即,共具有4個緩衝頁BUF0、BUF1、BUF2、BUF3。然而,本發明並不限於緩衝器150位址的定址方式。例如,在另一實施例中,緩衝器150可具有更多或是更少的空間,或是可劃分為更多或是更少的緩衝頁,並且可對應地使用適合的定址方式來進行位址定位。此外,在多個緩衝頁BUF0、BUF1、BUF2、BUF3中,每個錯誤檢測校正區段ECCS的大小為4096位元組(Bytes)(即,4KB)。在本實施例中,會由錯誤檢測校正器160經由第二匯流排170,從緩衝器150中的多個緩衝頁BUF0、BUF1、BUF2、BUF3接收資料,以對資料進行錯誤檢測校正操作。
請同時參照圖2A及圖2B,圖2B繪示本發明圖1實施例的記憶體管理裝置的緩衝器的資料處理程序示意圖。其中,圖2B的橫軸表示多個時間區間T1~T5,縱軸表示緩衝器(例如是圖1的緩衝器150)中被劃分的多個緩衝頁BUF0、BUF1,為簡化說明,本實施例僅繪示出緩衝頁BUF0、BUF1。此外,圖2B的每一步驟方塊代表一個資料處理程序,為簡化說明,本實施例僅繪示出資料處理程序S11a~S13a以及S11b~S13b。詳細來說,在第一時間區間T1,程序S11a執行以經由第一匯流排接收來自記憶體的第一資料,並透過第一匯流排將第一資料儲存至緩衝器中的緩衝頁BUF0中。
在第一時間區間T1後的第二時間區間T2,程序S12a使錯誤檢測校正器經第二匯流排,接收來自緩衝頁BUF0儲存的第一資料,並對第一資料進行錯誤檢測以及錯誤校正動作。
在第二時間區間T2後的第三時間區間T3,程序S13a執行以經由第一匯流排,接收來自緩衝頁BUF0中的第一資料,並將第一資料透過第一匯流排傳輸至主機端。與此同時,程序S11b執行以繼續經由第一匯流排接收來自記憶體的第二資料,並將第二資料儲存至緩衝器中的緩衝頁BUF0中。也就是說,在第三時間區間T3可同時執行將記憶體的資料傳輸至緩衝器的程序S11b,以及將緩衝器中的資料傳輸至主機端的程序S13a。
在第三時間區間T3後的第四時間區間T4及第五時間區間T5,可執行與前述資料處理程序S11a~S13a相類似的多個程序,在此不多贅述。
承接上述,在此請同時參照圖1、圖2A及圖3A~圖3C。圖3A~3C繪示本發明實施例的記憶體管理裝置的緩衝器的資料處理流程圖。在本實施例中,於步驟S310,控制裝置130會從緩衝器150所劃分的多個緩衝頁BUF0、BUF1、BUF2、BUF3中,第M個緩衝頁中的第N個區段開始進行資料處理,其中M及N皆為正整數。接著,同時進入圖3A中的步驟S320、圖3B中的步驟S330以及圖3C中的步驟S340,為簡化說明,在此以緩衝頁BUF0(即M為0)作為範例進行說明。
請先參照圖3A,於步驟S320中,控制裝置130針對忙碌旗標進行判斷,其中,每個緩衝頁(如緩衝頁BUF0、BUF1、BUF2、BUF3)皆有對應之忙碌旗標,忙碌旗標用以表示該緩衝頁是否正在被錯誤檢測校正器160使用校正中。當控制裝置130判斷第M個緩衝頁之忙碌旗標等於1時,表示表示錯誤檢測校正器160正在校正該緩衝頁,會重新回到步驟S320繼續進行判斷。相對的,當判斷第M個緩衝頁之忙碌旗標不等於1時,表示此時該緩衝頁可經由第一匯流排140,將來自記憶體120的資料儲存至該緩衝頁中(即步驟S321)。在此請注意,校正佇列可耦接至緩衝器150及錯誤檢測校正器160,用以儲存來自緩衝器150的各緩衝頁之指標,並由錯誤檢測校正器160讀取儲存在校正佇列中緩衝頁之指標,再由錯誤檢測校正器160針對指標對應之緩衝頁,進行錯誤檢測校正操作。值得一提的,校正佇列可以是一個先進先出(first in first out,FIFO)的佇列,並且可配置於錯誤檢測校正器160內部或可配置於緩衝器150內部,也可以由外部所提供,本發明並不限於此。
以緩衝頁0(即緩衝頁BUF0)為例,當緩衝頁BUF0之忙碌旗標不為1時,則進入步驟S321,由控制裝置130經由第一匯流排140,接收來自記憶體120的資料,並儲存至緩衝器150中的緩衝頁BUF0。接著,在步驟S322中,將緩衝頁BUF0之指標放置到校正佇列中。
此時,請參照圖3B,於圖3B的步驟S330中,當檢測到校正佇列不再是全空狀態時,則進入步驟S331(若校正佇列為全空狀態,則重新回到步驟S330繼續進行檢測)。於步驟S331中,錯誤檢測校正器160從校正佇列中取得待修正緩衝頁之指標(即緩衝頁BUF0之位置),並將緩衝頁BUF0之忙碌旗標設定為1,以表示此時要對緩衝頁BUF0中的資料進行錯誤檢測校正操作(即錯誤檢測校正器160忙碌中)。接著,在步驟S332,錯誤檢測校正器160對緩衝頁BUF0中的資料,進行錯誤檢測校正操作,並在操作完成後,進入步驟S333。步驟S333中,將已完成錯誤檢測校正操作之緩衝頁BUF0指標放置到轉移佇列中。在此請注意,轉移佇列耦接至緩衝器150,用以儲存要傳輸至主機端之緩衝頁指標。其中,轉移佇列可以是一個FIFO的佇列,並且可配置於緩衝器150內部,也可以由外部裝置所提供,本發明並不限於此。而在將已完成錯誤檢測校正操作之緩衝頁BUF0指標放置到轉移佇列,並將緩衝頁BUF0對應之忙碌旗標設定為0後,則重新回到步驟S330進行檢測。
此時,請參照圖3C,於圖3C的步驟S340中,控制裝置130檢測到轉移佇列不再是全空狀態,並進入步驟S341(若轉移佇列為全空狀態,則重新回到步驟S340繼續進行檢測)。於步驟S341中,控制裝置130從轉移佇列中取得待傳輸緩衝頁之指標(即緩衝頁BUF0之位置)。接著,在步驟S342中,控制裝置130對緩衝頁BUF0之忙碌旗標進行判斷,判斷錯誤檢測校正器160是否正在對緩衝頁BUF0的資料進行誤檢測校正操作,當錯誤檢測校正器160正在對緩衝頁BUF0進行錯誤檢測校正操作時(即忙碌旗標等於1)則重新回到步驟S342繼續進行判斷。相對的,當緩衝頁BUF0之忙碌旗標不等於1時,則進入步驟S343。由控制裝置130經由第一匯流排140,接收緩衝頁BUF0中已完成錯誤檢測校正操作的資料,並傳輸至主機端110。再重新回到步驟S340繼續進行判斷。
接著,請重新參照圖3A,在步驟S322之後的步驟S323中,由控制裝置130進行判斷,判斷是否已將所有資料從記憶體120轉移至緩衝器150,當控制裝置130判斷尚未將所有資料從記憶體120轉移至緩衝器150時,則進入步驟S324。在步驟S324中,將針對下一個緩衝頁(例如是緩衝頁BUF1)開始進行動作,並進入步驟S320,以繼續針對下一個緩衝頁所對應之忙碌旗標進行判斷,其中,當最後一個緩衝頁(例如是緩衝頁BUF3)儲存的資料被處理完成後,則可針對第一個緩衝頁(例如是緩衝頁BUF0)繼續進行資料處理動作。相對的,於步驟S323中,當控制裝置130判斷已將所有資料從記憶體120轉移至緩衝器150時,則結束資料處理流程。
請參照圖4,圖4繪示本發明另一實施例的記憶體管理裝置的示意圖。與圖1實施例不同的地方在於,本實施例的記憶體管理裝置400增加了位址轉換器480。詳細來說,在本實施例中,記憶體管理裝置400包括主機端410、記憶體420、控制裝置430、第一匯流排440、緩衝器450、錯誤檢測校正器460、第二匯流排470以及位址轉換器480。位址轉換器480耦接至第一匯流排440,當控制裝置430將來自記憶體420的多個資料,傳送至位址轉換器480時,位址轉換器480會對資料進行位址轉換,並將其儲存至緩衝器450。
其中,錯誤檢測校正器460會透過第二匯流排470,耦接至緩衝器450。以在錯誤檢測校正器460要進行錯誤檢測校正操作時,能經由第二匯流排470,接收來自緩衝器450的各資料以進行錯誤檢測,並對各資料進行錯誤校正。其中,緩衝器450連接至位址轉換器480,並且透過位址轉換器480耦接至第一匯流排440。此外,記憶體管理裝置400的資料處理流程與圖1實施例相類似,在此不重複贅述。
請同時參照圖4及圖5A,圖5A繪示本發明圖4實施例的記憶體管理裝置的緩衝器配置示意圖。在本實施例中,緩衝器450同樣被劃分為多個緩衝頁,例如是緩衝頁BUF0、BUF1、BUF2、BUF3,以供多個資料的儲存,並且每個緩衝頁BUF0、BUF1、BUF2、BUF3中的位址add1~add9同樣是利用16進位的表現方式(例如是0x00000、0x01000、0x02000、0x03000、0x04000、0x05000、0x06000、0x07000、0x08000)來進行定址。與圖2實施例的差別在於,本實施例的緩衝器450是經由位址轉換器480,對資料進行位址轉換後,將原先連續的位址散落於不同的緩衝頁BUF0、BUF1、BUF2、BUF3上,使系統能同時執行多個資料處理程序。
請同時參照圖5A及圖5B。圖5B繪示本發明圖4實施例的記憶體管理裝置的緩衝器的資料處理程序示意圖。其中,圖5B的橫軸表示多個時間區間T1~T6,縱軸表示緩衝器(例如是圖4的緩衝器450)中被劃分的多個緩衝頁BUF0、BUF1、BUF2、BUF3,為簡化說明,本實施例僅繪示出緩衝頁BUF0、BUF1、BUF2、BUF3。此外,圖5B的每一步驟方塊則代表一個資料處理程序,為簡化說明,本實施例僅繪示出資料處理程序S21a~S23a、S21b~S23b以及S21c~S23c。詳細來說,在第一時間區間T1,程序S21a執行以經由第一匯流排接收來自記憶體的第一資料,並透過位址轉換器將第一資料儲存至緩衝器中的緩衝頁BUF0之中。
在第一時間區間T1後的第二時間區間T2,程序S22a使錯誤檢測校正器經由第二匯流排,接收來自緩衝頁BUF0儲存的第一資料,並對第一資料進行錯誤檢測及錯誤校正動作。與此同時,程序S21b使控制裝置透過第一匯流排,接收來自記憶體的第二資料,並透過位址轉換器進行位址轉換,將原本應該儲存至緩衝頁BUF0之第二資料(例如圖2A所繪示),儲存至緩衝器中的緩衝頁BUF1中。也就是說,在第二時間區間T2可同時進行將記憶體的資料傳輸至緩衝器中的程序S21b,以及由錯誤檢測校正器對緩衝器中的資料進行錯誤檢測校正操作的程序S22a。
在第二時間區間T2後的第三時間區間T3,程序S23a執行以經由第一匯流排,接收來自緩衝頁BUF0的第一資料,並透過第一匯流排將第一資料傳輸至主機端。與此同時,程序S22b使錯誤檢測校正器繼續透過第二匯流排,接收來自緩衝頁BUF1中的第二資料,並對第二資料進行錯誤檢測以及錯誤校正動作。同時,程序S21c執行以繼續透過第一匯流排,接收來自記憶體的第三資料,並透過位址轉換器進行位址轉換,將第三資料儲存至緩衝器中的緩衝頁BUF2之中。也就是說,在第三時間區間T3,可同時執行將記憶體的資料傳輸至緩衝器的程序S21c,以及由錯誤檢測校正器對緩衝器儲存的資料進行錯誤檢測校正操作的程序S22b,以及進行將緩衝器中的資料傳輸至主機端的程序S23a,藉此改善系統傳輸延遲問題,並提升系統資料吞吐量。
而在第三時間區間T3後的第四時間區間T4、第五時間區間T5及第六時間區間T6,可執行與前述程序S21a~S23a相類似的多個程序,在此不多贅述。
請參照圖6,圖6繪示本發明實施例的記憶體管理裝置的操作方法的流程圖。在步驟S610中,提供控制裝置,並由控制裝置透過第一匯流排,接收來自記憶體的多個資料,並透過位址轉換器進行位址轉換,將各資料儲存至緩衝器中。在步驟S620中,提供錯誤檢測校正器,並由錯誤檢測校正器經由第二匯流排,接收來自緩衝器的各資料並對各資料進行錯誤檢測,以對各資料進行錯誤校正。在步驟S630中,提供控制裝置,並由控制裝置經由第一匯流排,接收來自緩衝器的各資料,並將各資料傳輸至主機端。
綜上所述,本發明藉由額外增加的第二匯流排,使錯誤檢測校正器透過第二匯流排耦接至緩衝器,並能經由第二匯流排,從緩衝器中接收資料,以對緩衝器中的資料進行錯誤檢測校正操作;再藉由位址轉換器進行位址轉換,將記憶體之資料平均分散至緩衝器中之各個緩衝頁,改善了系統傳輸延遲問題,並且提升了系統資料的吞吐量。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100、400‧‧‧記憶體管理裝置
110、410‧‧‧主機端
120、420‧‧‧記憶體
130、430‧‧‧控制裝置
140、440‧‧‧第一匯流排
150、450‧‧‧緩衝器
160、460‧‧‧錯誤檢測校正器
170、470;第二匯流排
480‧‧‧位址轉換器
add1、add2、add3、add4、add5、add6、add7、add8、add9‧‧‧緩衝頁的位址
BUF0、BUF1、BUF2、BUF3‧‧‧緩衝頁
ECCS‧‧‧錯誤檢測校正區段
S11a~S13a、S11b~S13b、S21a~S23a、S21b~S23b、S21c~S23c‧‧‧資料處理程序
S310、S320~S324、S330~S333、S340~S343‧‧‧資料處理的步驟
S610~S630‧‧‧記憶體管理裝置的操作方法的步驟
T1、T2、T3、T4、T5、T6‧‧‧時間區間
圖1繪示本發明一實施例的記憶體管理裝置的示意圖。 圖2A繪示本發明圖1實施例的記憶體管理裝置的緩衝器配置示意圖。 圖2B繪示本發明圖1實施例的記憶體管理裝置的緩衝器的資料處理程序示意圖。 圖3A~3C繪示本發明實施例的記憶體管理裝置的緩衝器的資料處理流程圖。 圖4繪示本發明另一實施例的記憶體管理裝置的示意圖。 圖5A繪示本發明圖4實施例的記憶體管理裝置的緩衝器配置示意圖。 圖5B繪示本發明圖4實施例的記憶體管理裝置的緩衝器的資料處理程序示意圖。 圖6繪示本發明實施例的記憶體管理裝置的操作方法的流程圖。
Claims (19)
- 一種記憶體管理裝置,包括: 一第一匯流排,耦接在一主機端以及一記憶體間; 一控制裝置,耦接至該第一匯流排; 一緩衝器,耦接至該第一匯流排,用以儲存多個資料;以及 一錯誤檢測校正器,透過一第二匯流排耦接至該緩衝器,並經由該第二匯流排,從該緩衝器中接收各該資料並進行錯誤檢測,以對各該資料進行錯誤校正, 其中,該第一匯流排與該第二匯流排並不相同。
- 如申請專利範圍第1項所述的記憶體管理裝置,其中該控制裝置經由該第一匯流排,接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中, 其中該控制裝置經由該第一匯流排,接收來自該緩衝器的各該資料,並將各該資料傳輸至該主機端。
- 如申請專利範圍第2項所述的記憶體管理裝置,其中該控制裝置在一第一時間區間,經由該第一匯流排,接收來自該記憶體的一第一資料,並將該第一資料儲存至該緩衝器中。
- 如申請專利範圍第3項所述的記憶體管理裝置,其中該錯誤檢測校正器在一第二時間區間中,經由該第二匯流排,接收來自該緩衝器的該第一資料並進行錯誤檢測,以對該第一資料進行錯誤校正, 其中該第一時間區間早於該第二時間區間。
- 如申請專利範圍第4項所述的記憶體管理裝置,其中該控制裝置在一第三時間區間,經由該第一匯流排,接收來自該記憶體的一第二資料,並將該第二資料儲存至該緩衝器中,並且在該第三時間區間中,該控制裝置經由該第一匯流排,接收來自該緩衝器的該第一資料,並將該第一資料傳輸至該主機端, 其中該第二時間區間早於該第三時間區間。
- 如申請專利範圍第1項所述的記憶體管理裝置,其中該記憶體管理裝置更包括一位址轉換器,耦接至該第一匯流排,用以對各該資料進行位址轉換,並儲存至該緩衝器, 其中,該錯誤檢測校正器透過該第二匯流排,耦接至該緩衝器, 其中,該緩衝器連接至該位址轉換器,並透過該位址轉換器耦接至該第一匯流排。
- 如申請專利範圍第6項所述的記憶體管理裝置,其中該控制裝置經由該第一匯流排,並透過該位址轉換器,接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中。
- 如申請專利範圍第7項所述的記憶體管理裝置,其中該控制裝置在一第一時間區間,經由該第一匯流排,並透過該位址轉換器,接收來自該記憶體的一第一資料,並將該第一資料儲存至該緩衝器中。
- 如申請專利範圍第8項所述的記憶體管理裝置,其中該控制裝置在一第二時間區間,經由該第一匯流排,並透過該位址轉換器,接收來自該記憶體的一第二資料,並將該第二資料儲存至該緩衝器中,並且在該第二時間區間中,該錯誤檢測校正器經由該第二匯流排,接收來自該緩衝器的該第一資料並進行錯誤檢測,以對該第一資料進行錯誤校正, 其中該第一時間區間早於該第二時間區間。
- 如申請專利範圍第9項所述的記憶體管理裝置,其中該控制裝置在一第三時間區間,經由該第一匯流排,並透過該位址轉換器,接收來自該記憶體的一第三資料,並將該第三資料儲存至該緩衝器中,並且在該第三時間區間中,該錯誤檢測校正器經由該第二匯流排,接收來自該緩衝器的該第二資料並進行錯誤檢測,以對該第二資料進行錯誤校正,以及在該第三時間區間中,該控制裝置經由該第一匯流排,接收來自該緩衝器的該第一資料,並將該第一資料傳輸至該主機端, 其中該第二時間區間早於該第三時間區間。
- 如申請專利範圍第1項所述的記憶體管理裝置,其中該緩衝器被劃分為多個緩衝頁,用以分別儲存該些資料。
- 如申請專利範圍第1項所述的記憶體管理裝置,其中該第一匯流排包括高級微控制器匯流排架構(Advanced Microcontroller Bus Architecture,AMBA)。
- 一種記憶體管理裝置的操作方法,包括: 提供一控制裝置,透過一第一匯流排接收來自一記憶體的多個資料,並將各該資料儲存至一緩衝器中; 提供一錯誤檢測校正器以經由一第二匯流排接收來自該緩衝器的各該資料並對各該資料進行錯誤檢測,以對各該資料進行錯誤校正;以及 提供該控制裝置經由該第一匯流排接收來自該緩衝器的各該資料,並將各該資料傳輸至一主機端, 其中,該第一匯流排與該第二匯流排並不相同。
- 如申請專利範圍第13項所述的記憶體管理裝置的操作方法,其中提供該控制裝置,透過該第一匯流排接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中的步驟包括: 提供該控制裝置,在一第一時間區間經由該第一匯流排,接收來自該記憶體的一第一資料,並將該第一資料儲存至該緩衝器中。
- 如申請專利範圍第14項所述的記憶體管理裝置的操作方法,其中提供該錯誤檢測校正器以經由該第二匯流排接收來自該緩衝器的各該資料並對各該資料進行錯誤檢測,以對各該資料進行錯誤校正的步驟包括: 提供該錯誤檢測校正器,在一第二時間區間經由該第二匯流排,接收來自該緩衝器的該第一資料,並對該第一資料進行錯誤檢測,以對該第一資料進行錯誤校正。 其中該第一時間區間早於該第二時間區間。
- 如申請專利範圍第15項所述的記憶體管理裝置的操作方法,其中提供該控制裝置經由該第一匯流排接收來自該緩衝器的各該資料,並將各該資料傳輸至該主機端的步驟包括: 提供該控制裝置,在一第三時間區間經由該第一匯流排,接收來自該緩衝器的該第一資料,並將該第一資料傳輸至該主機端, 其中提供該控制裝置,透過該第一匯流排接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中的步驟更包括提供該控制裝置,在該第三時間區間經由該第一匯流排,接收來自該記憶體的一第二資料,並將該第二資料儲存至該緩衝器中, 其中該第二時間區間早於該第三時間區間。
- 如申請專利範圍第13項所述的記憶體管理裝置的操作方法,其中提供該控制裝置,透過該第一匯流排接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中的步驟包括: 提供該控制裝置,在一第一時間區間經由該第一匯流排,並透過一位址轉換器,接收來自該記憶體的一第一資料,並將該第一資料儲存至該緩衝器中。
- 如申請專利範圍第17項所述的記憶體管理裝置的操作方法,其中提供該錯誤檢測校正器以經由該第二匯流排接收來自該緩衝器的各該資料並對各該資料進行錯誤檢測,以對各該資料進行錯誤校正的步驟更包括: 提供該錯誤檢測校正器,在一第二時間區間經由該第二匯流排,接收來自該緩衝器的該第一資料,並對該第一資料進行錯誤檢測,以對該第一資料進行錯誤校正, 其中提供該控制裝置,透過該第一匯流排接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中的步驟更包括提供該控制裝置,在該第二時間區間經由該第一匯流排,接收來自該記憶體的一第二資料,並將該第二資料儲存至該緩衝器中, 其中該第一時間區間早於該第二時間區間。
- 如申請專利範圍第18項所述的記憶體管理裝置的操作方法,其中提供該控制裝置經由該第一匯流排接收來自該緩衝器的各該資料,並將各該資料傳輸至該主機端的步驟包括: 提供該控制裝置,在一第三時間區間經由該第一匯流排,接收來自該緩衝器的該第一資料,並將該第一資料傳輸至該主機端, 其中提供該錯誤檢測校正器以經由該第二匯流排接收來自該緩衝器的各該資料並對各該資料進行錯誤檢測,以對各該資料進行錯誤校正的步驟更包括提供該錯誤檢測校正器,在該第三時間區間經由該第二匯流排,接收來自該緩衝器的該第二資料,並對該第二資料進行錯誤檢測,以對該第二資料進行錯誤校正, 其中提供該控制裝置,透過該第一匯流排接收來自該記憶體的該些資料,並將各該資料儲存至該緩衝器中的步驟更包括提供該控制裝置,在該第三時間區間經由該第一匯流排,並透過該位址轉換器,接收來自該記憶體的一第三資料,並將該第三資料儲存至該緩衝器中, 其中該第二時間區間早於該第三時間區間。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107113940A TWI671637B (zh) | 2018-04-25 | 2018-04-25 | 記憶體管理裝置及其操作方法 |
CN201810612069.8A CN110399090B (zh) | 2018-04-25 | 2018-06-14 | 存储器管理装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107113940A TWI671637B (zh) | 2018-04-25 | 2018-04-25 | 記憶體管理裝置及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI671637B true TWI671637B (zh) | 2019-09-11 |
TW201945945A TW201945945A (zh) | 2019-12-01 |
Family
ID=68322380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107113940A TWI671637B (zh) | 2018-04-25 | 2018-04-25 | 記憶體管理裝置及其操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110399090B (zh) |
TW (1) | TWI671637B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080098277A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7447980B2 (en) * | 2005-10-17 | 2008-11-04 | Newport Media, Inc. | Error detection and correction in data transmission packets |
US20140380116A1 (en) * | 2013-06-20 | 2014-12-25 | Samsung Electronics Co., Ltd. | Semiconductor memory device |
TWI467574B (zh) * | 2011-11-01 | 2015-01-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與其資料傳輸方法 |
TWI546815B (zh) * | 2012-12-26 | 2016-08-21 | 英特爾公司 | 錯誤檢測與校正之設備及方法 |
TWI605464B (zh) * | 2014-12-20 | 2017-11-11 | 英特爾公司 | 交易型緩衝記憶體中之錯誤處置技術 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US20060294295A1 (en) * | 2005-06-24 | 2006-12-28 | Yukio Fukuzo | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device |
US8402233B2 (en) * | 2005-09-07 | 2013-03-19 | Broadcom Corporation | Method and apparatus for high throughput mass storage device interface in a microprocessor for handheld systems |
US7861139B2 (en) * | 2007-01-26 | 2010-12-28 | Micron Technology, Inc. | Programming management data for NAND memories |
CN101246742B (zh) * | 2008-03-25 | 2010-06-16 | 威盛电子股份有限公司 | 电子装置与其数据传输方法 |
JP2010262700A (ja) * | 2009-05-07 | 2010-11-18 | Elpida Memory Inc | 半導体装置 |
US8447908B2 (en) * | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
JP2011197819A (ja) * | 2010-03-17 | 2011-10-06 | Toshiba Corp | 半導体装置 |
JP2012128778A (ja) * | 2010-12-17 | 2012-07-05 | Sony Corp | データ転送装置、メモリ制御装置、およびメモリシステム |
CN102890645B (zh) * | 2011-07-20 | 2015-11-25 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与数据写入方法 |
US9690650B2 (en) * | 2013-03-11 | 2017-06-27 | Macronix International Co., Ltd. | Storage scheme for built-in ECC operations |
CN104252600B (zh) * | 2013-06-27 | 2017-08-11 | 群联电子股份有限公司 | 数据保护方法、存储器控制器与存储器储存装置 |
CN105590648B (zh) * | 2014-10-22 | 2019-11-01 | 华邦电子股份有限公司 | 存储器读取方法以及数字存储器装置 |
-
2018
- 2018-04-25 TW TW107113940A patent/TWI671637B/zh active
- 2018-06-14 CN CN201810612069.8A patent/CN110399090B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447980B2 (en) * | 2005-10-17 | 2008-11-04 | Newport Media, Inc. | Error detection and correction in data transmission packets |
US20080098277A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
TWI467574B (zh) * | 2011-11-01 | 2015-01-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與其資料傳輸方法 |
TWI546815B (zh) * | 2012-12-26 | 2016-08-21 | 英特爾公司 | 錯誤檢測與校正之設備及方法 |
US20140380116A1 (en) * | 2013-06-20 | 2014-12-25 | Samsung Electronics Co., Ltd. | Semiconductor memory device |
TWI605464B (zh) * | 2014-12-20 | 2017-11-11 | 英特爾公司 | 交易型緩衝記憶體中之錯誤處置技術 |
Also Published As
Publication number | Publication date |
---|---|
CN110399090B (zh) | 2023-04-07 |
CN110399090A (zh) | 2019-11-01 |
TW201945945A (zh) | 2019-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11119838B2 (en) | Techniques for handling errors in persistent memory | |
CN106055267B (zh) | 包括主机命令队列的存储器控制器及操作其的方法 | |
JP6029923B2 (ja) | Nand型フラッシュメモリの読み込み方法及び装置 | |
KR101693137B1 (ko) | 가변적 레이턴시 메모리 동작들을 위한 장치들 및 방법들 | |
TWI703436B (zh) | 資料儲存裝置及其操作方法 | |
JP2008090876A (ja) | 不揮発性半導体記憶装置 | |
JP2019520639A5 (zh) | ||
WO2016048495A1 (en) | Recovery algorithm in non-volatile memory | |
AU2015371849A1 (en) | Data reading method and apparatus | |
TWI600010B (zh) | 用於進行連續寫入至動態隨機存取記憶體的排組之設備、方法及系統 | |
US10891185B2 (en) | Error counters on a memory device | |
US20150039968A1 (en) | Error code management in systems permitting partial writes | |
CN106463179A (zh) | 利用存储器控制器处理数据错误事件的方法、装置和系统 | |
JPWO2020243099A5 (zh) | ||
CN105373345B (zh) | 存储器设备和模块 | |
CN114051611B (zh) | 用于非连续存储器的dma分散和聚集操作 | |
US11755509B2 (en) | Deterministic operation of storage class memory | |
CN113196224A (zh) | 交错的主机复位和随后重新初始化操作 | |
TWI671637B (zh) | 記憶體管理裝置及其操作方法 | |
CN110720126A (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
TW201826286A (zh) | 半導體裝置 | |
WO2015165055A1 (zh) | 存储数据的方法、内存控制器和中央处理器 | |
CN106201336B (zh) | 具有回写缓存器的设备及其相关方法 | |
JP2017215732A (ja) | メモリおよび情報処理装置 | |
JP2012033222A (ja) | 半導体記憶装置およびその制御方法 |