CN110858128A - 数据存储装置及其共享控制器中存储器的方法 - Google Patents

数据存储装置及其共享控制器中存储器的方法 Download PDF

Info

Publication number
CN110858128A
CN110858128A CN201910370082.1A CN201910370082A CN110858128A CN 110858128 A CN110858128 A CN 110858128A CN 201910370082 A CN201910370082 A CN 201910370082A CN 110858128 A CN110858128 A CN 110858128A
Authority
CN
China
Prior art keywords
memory
cpu
data
coupled
controller
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201910370082.1A
Other languages
English (en)
Other versions
CN110858128B (zh
Inventor
李安邦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
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
Publication of CN110858128A publication Critical patent/CN110858128A/zh
Application granted granted Critical
Publication of CN110858128B publication Critical patent/CN110858128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种数据存储装置及其共享控制器中存储器的方法。所述数据存储装置包括非易失性存储器,以及电性耦接于非易失性存储器的控制器。控制器包括存取界面、独立磁盘冗余阵列纠错码引擎以及中央处理器。中央处理器具有第一存储器以用来存储暂时数据,独立磁盘冗余阵列纠错码引擎具有第二存储器,并当第二存储器有未被完全使用到时,控制器是将第二存储器的未使用的存储器空间映射到第一存储器下,以虚拟成为第一存储器的一部分,使得中央处理器也就能够利用第二存储器的未使用的存储器空间来存储暂时数据。

Description

数据存储装置及其共享控制器中存储器的方法
技术领域
本发明涉及一种数据存储装置,尤其涉及一种数据存储装置及其共享控制器中存储器的方法。
背景技术
一般来说,数据存储装置是由控制器(Controller)与非易失性存储器,例如闪速存储器(Flash Memory)所构成,控制器又主要包括中央处理器(Central ProcessingUnit,CPU),且中央处理器具有自己的存储器,例如CPU存储器以用来存储数据或程序。然而,由于CPU存储器通常为固定大小,所以只要中央处理器所欲存储的数据或程序大于CPU存储器的可用空间时,中央处理器就会将所述数据或程序改存在控制器外的动态随机存取存储器(Dynamic Random Access Memory,DRAM)中,但中央处理器存取外部DRAM上的速度远比于存取内部CPU存储器上的速度慢许多,以致于造成整体系统效能下降。
发明内容
有鉴于此,本发明的目的在于提出一种数据存储装置及其共享控制器中存储器的方法。为达上述目的,本发明实施例提供一种数据存储装置,所述数据存储装置包括非易失性存储器,以及电性耦接于非易失性存储器的控制器。控制器包括存取界面(AccessInterface)、独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)纠错码(Error Correcting Code,ECC)引擎以及中央处理器。存取界面耦接于主机(Host)与非易失性存储器,RAID ECC引擎主要用来进行纠错程序,中央处理器则用来解读由主机所下达的写入/读取命令,并且控制存取界面去对非易失性存储器作用户数据的存取。中央处理器具有第一存储器以用来存储暂时数据,RAID ECC引擎具有第二存储器,并当第二存储器有未被完全使用到时,控制器是将第二存储器的未使用的存储器空间映射到第一存储器下,以虚拟成为第一存储器的一部分,使得中央处理器也就能够利用第二存储器的未使用的存储器空间来存储暂时数据。
此外,本发明实施例另提供一种共享控制器中存储器的方法,所述方法适用于前述数据存储装置中,且其包括如下步骤。首先,由中央处理器发出至少一控制信号给RAIDECC引擎。接着,根据控制信号,RAID ECC引擎来把第二存储器的未使用的存储器空间映射到中央处理器的第一存储器下,以虚拟成为第一存储器的一部分,使得中央处理器也就能够利用第二存储器的未使用的存储器空间来存储暂时数据。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与所附图式仅是用来说明本发明,而非对本发明的权利范围作任何的限制。
附图说明
图1是本发明实施例所提供的数据存储装置的功能方块示意图。
图2是图1的数据存储装置中的RAID ECC引擎的功能方块示意图。
图3A是图2的RAID ECC引擎所进行编码运算时的示意图。
图3B是图2的RAID ECC引擎所进行解码运算时的示意图。
图3C是图2的RAID ECC引擎所进行共享存储器时的示意图。
图4是本发明实施例所提供共享控制器中存储器的方法的流程示意图。
具体实施方式
在下文中,将借由图式说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在图式中相同参考数字可用以表示类似的元件。
首先,请参阅图1,图1是本发明实施例所提供的数据存储装置的功能方块示意图。数据存储装置1包括非易失性存储器110与控制器120。在本实施例中,非易失性存储器110包括多个区块(未绘示),每一区块又包含多个页面(Pages),且页面即为编程(Program)的最小单元。也就是说,页面为写入或读取数据时的最小单元,且一条字线(Word Line)可控制一个以上的页面。另外,区块为数据抹除的最小单元。因此,区块依据其功能又可区分为闲置(Spare)区块、主动(Active)区块与数据区块,其中闲置区块为可被选取并写入数据的区块,主动区块为已被选取并正在写入数据的区块,数据区块则为完成数据写入且不能再写入数据的区块。需说明的是,本发明并不限制区块及页面的具体实现方式,本领域技术人员应可依据实际需求或应用来进行相关设计。此外,在本实施例中,非易失性存储器110较佳是以闪速存储器来实现,但本发明亦不以此为限制。
控制器120电性耦接于非易失性存储器110,并且用来控制非易失性存储器110内的数据存取。必须了解的是,数据存储装置1通常是会与主机2一起使用,并且根据主机2所下达的写入/读取命令,来将用户数据写入到非易失性存储器110中,或者从非易失性存储器110中读取用户数据。因此,在本实施例中,控制器120较佳相应为闪速存储器控制器,且其主要包括中央处理器124、存取界面121以及RAID ECC引擎123。如同前面内容所述,中央处理器124较佳可具有自己的存储器,例如CPU存储器1241以用来存储数据或程序,在本实施例中将CPU存储器1241所存储的数据或程序简称为暂时数据,而且为了方便以下说明,本实施例是将中央处理器124与CPU存储器1241作分开绘制,但本技术领域中具有通常知识者应可理解的是,CPU存储器1241则实际涵盖在中央处理器124内。
存取界面121耦接于主机2与非易失性存储器110,中央处理器124则用来解读由主机2所下达的写入/读取命令以产生操作命令,并且依据操作命令来控制存取界面121去对非易失性存储器110作用户数据的存取。另外,在本实施例中,控制器120更可包括数据缓冲器(Data Buffer)122,耦接于存取界面121、RAID ECC引擎123与非易失性存储器110,并且用来暂存自于主机2或非易失性存储器110的用户数据。然而,除了用户数据外,数据缓冲器122较佳也可用来暂存中央处理器124运作所需的在系统编程(In-System Programming,ISP)或逻辑至物理地址(Logical-to-Physical Address)映射表等,但本发明皆不以此为限制。此外,在本实施例中,数据缓冲器122即可例如为静态随机存取存储器(StaticRandom Access Memory,SRAM)或可快速存取的RAM。
RAID ECC引擎123耦接于中央处理器124、数据缓冲器122与非易失性存储器110,并且主要用来对用户数据进行纠错程序。在本实施例中,RAID ECC引擎123所进行的纠错程序也就是指异或(Exclusive OR,XOR)逻辑运算,且其依据功能又可区分为作编码运算或解码运算。因此,在图1中,不同的运算路径(Path)将会用以不同链线作表示,并且应当理解的是,解码运算也就是提供错误侦测与更正,或者数据回复(Recovery)等功能。另外,在本实施例中,数据存储装置1更可包括动态随机存取存储器(DRAM)130,被配置在控制器120外,并且同样可用来让中央处理器124作存储暂时数据。然而,除了DRAM 130外,中央处理器124亦可通过主机存储器缓冲器(HostMemory Buffer,HMB)功能来利用主机2内的DRAM(未绘示),以存储数据存储装置1运作所需的数据或程序。总而言之,由于中央处理器124所存储暂时数据到外部DRAM的源由已如同前述内容所陈,故于此就不再多加赘述。
在本实施例中,RAID ECC引擎123较佳也具有自己的存储器,例如随机存取存储器(RAM)1231,并且当主机2要写用户数据到非易失性存储器110时,控制器120同时也将所述用户数据送入RAID ECC引擎123中作编码运算,直到一页面群组(Page Group)的用户数据,例如页面0到页面N-1的用户数据完成送入后,RAID ECC引擎123就会产生与页面0到页面N-1的用户数据相应的校验码(Parity Code),然后也将所述校验码写到非易失性存储器110中,亦即所述校验码将可作为页面N的数据,其中N为大于1的任意正整数。另外,如果用户数据的管理单位为区段(Sector)而非页面的话,例如一个页面可包括多个区段,控制器120则将一区段群组的用户数据,例如区段0到区段S-1的用户数据,以及RAID ECC引擎123所产生与区段0到区段S-1的用户数据相应的校验码,依序写入到页面0到页面N的区段0到区段S中,其中S亦为大于1的任意正整数。然而,由于区段和页面的数据管理方式类似,因此于下文内都将仅以页面的例子作说明,但本发明并不以此为限制。
相对地,当控制器120要从非易失性存储器110中读取用户数据时,控制器120会根据预设的读取参数来读取页面的用户数据,并且利用其他纠错码,例如低密度奇偶校验(Low Density Parity Check,LDPC)码来对所读取到的页面的用户数据进行更正错误操作。如果当控制器120读取所述页面群组的某一页面的用户数据,例如页面1的用户数据,而发生LDPC码无法更正错误时,控制器120就可将页面群组中的页面0、页面2到页面N-1的用户数据以及页面N的校验码从非易失性存储器110中读出,再送入RAID ECC引擎123中作解码运算,且解码运算后所得到的数据便为已更正错误后的页面1的用户数据。然而,由于RAID ECC引擎123的运作原理将会在下文中经由各种实施例来作详尽说明,因此有关上述细节于此就先不再多加赘述。
总而言之,RAID ECC引擎123要作编码运算或解码运算时,都会用到其内部RAM1231来作运算值的暂存,且其内部RAM 1231的大小可例如为64KB,但是RAID ECC引擎123依据实际需求,例如页面大小、校验码大小或使用的路径数目等,来运作时所需的存储器空间可能只要16KB或32KB,所以当RAM 1231的存储器空间有未被完全使用到时,未使用(闲置)的存储器空间就会形成系统资源的浪费。因此,如图1的斜线框所示,本实施例将RAM 1231的未使用的存储器空间映射到CPU存储器1241下,也就是说将所述未使用的存储器空间作分享,并且将所述未使用的存储器空间地址映射到CPU存储器1241的存储器空间地址下,以虚拟成为CPU存储器1241的一部分,即等同延伸(扩充)了CPU存储器1241的存储器空间。如此一来,中央处理器124也就能够利用RAM 1231的未使用的存储器空间来存储暂时数据。换句话说,中央处理器124可利用的内部存储器空间变大了,暂时数据除了可存储在CPU存储器1241外,也可存储在RAID ECC引擎123的RAM 1231中,而不需存储在控制器120外的DRAM130中,这样也就能够减少中央处理器124所存取DRAM 130的频率,并使整体系统效能提升。
接着,以下将再针对本实施例的RAID ECC引擎123的实现方式作进一步地介绍。请一并参阅图2,图2是图1的数据存储装置中的RAID ECC引擎的功能方块示意图,其中图2部分与图1相同的元件以相同的图号标示,故于此不再多加详述其细节。在本实施例中,RAIDECC引擎123主要包括状态机(State Machine)220、选择器(Selector)230、控制寄存器(Control Register)240与M+1个运算电路210_0~210_M,其中M为大于1的任意正整数,且每一运算电路210_0~210_M包括一XOR逻辑运算单元、一页面缓冲器(Page Buffer)及一第一选择器。例如,运算电路210_0包括XOR逻辑运算单元211_0、页面缓冲器212_0及第一选择器213_0,以此类推,运算电路210_M包括XOR逻辑运算单元211_M、页面缓冲器212_M及第一选择器213_M。可以理解的是,上述状态机220、选择器230、控制寄存器240、XOR逻辑运算单元211_0~211_M与第一选择器213_0~213_M可以是通过纯硬件电路来实现,或者是通过硬件电路搭配固件或软件来实现,但本发明皆不以此为限制。
在本实施例中,控制寄存器240耦接于中央处理器124,并且用来接收自于中央处理器124的至少一控制信号及所述暂时数据。另外,为了方便以下说明,本实施例将仅先以其中一个运算电路,例如运算电路210_0的例子来作介绍,但本技术领域中具有通常知识者应可了解到其他运算电路210_1~210_M的运作原理。如图2所示,第一选择器213_0具有两输入端0、1分别耦接于XOR逻辑运算单元211_0的输出端与控制寄存器240,以及一输出端耦接于页面缓冲器212_0。在本实施中,中央处理器124可借由控制寄存器240控制(设定)第一选择器213_0的选择端(Sel)而选取输入端0作为页面缓冲器212_0的输入源以输入数据,所以此时的输入数据为XOR逻辑运算单元211_0的运算结果,且所述运算结果可存储至页面缓冲器212_0中。相对地,中央处理器124也可借由控制寄存器240控制(设定)第一选择器213_0的选择端而选取输入端1作为页面缓冲器212_0的输入源以输入数据,所以此时的输入数据则改由控制寄存器240所提供自于中央处理器124的暂时数据,且所述暂时数据同样可存储至页面缓冲器212_0中。也就是说,图1中的RAM 1231即可例如是由图2的这些页面缓冲器212_0~212_M所组成,并且当运算电路210_0不进行编码运算或解码运算时,亦即运算电路210_0的页面缓冲器212_0未被使用到,中央处理器124就可控制第一选择器213_0以使得第一选择器213_0的输入端1作为页面缓冲器212_0的输入源,如此一来,未被使用到的页面缓冲器212_0就可用来存储自于中央处理器124的暂时数据,以藉此达到本发明的目的。
仔细地说,状态机220耦接于控制寄存器240,并且用来控制RAID ECC引擎123是进行编码运算或解码运算,又或者是进入到闲置(Idle)或完成(Done)状态。除此之外,状态机220更可协助控制寄存器240控制(设定)第一选择器213_0~213_M的选择端以决定页面缓冲器212_0~212_M的输入源,以及协助控制寄存器240控制选择器230的选择端以决定其输出接口。在本实施例中,选择器230则具有M+1个输出端分别耦接于运算电路210_0~210_M的输入端,以及一输入端耦接于数据缓冲器122或非易失性存储器110。因此,在本实施例中,中央处理器124也可借由控制寄存器240控制(设定)选择器230的选择端,使得选择器230的输入端所接收到的用户数据输出至指定的运算电路210_0~210_M中,以执行后续的编码运算或解码运算。总而言之,控制寄存器240则不只用来控制(设定)第一选择器213_0~213_M的选择端外,也用来控制(设定)选择器230的选择端,并且更可用来控制状态机220的运作。实作上,这些运算电路210_0~210_M的第一选择器213_0~213_M即可分别较佳是以复用器(Multiplexer,MUX)来实现,且选择器230则较佳是以分用器(Demultiplexer,DeMUX)来实现,但本发明均不以此为限制。
接着,再请一并参阅图3A至图3C,图3A至图3C将用来详尽解释本实施例的RAIDECC引擎123的运作原理,其中图3A与图3B分别是图2的RAID ECC引擎123所进行编码及解码运算时的示意图,而图3C是图2的RAID ECC引擎123所进行共享存储器时的示意图。如图3A所示,当主机2要写用户数据到非易失性存储器110时,中央处理器124会先将用户数据暂存在数据缓冲器122中,并将用户数据输出至RAID ECC引擎123。然后,中央处理器124借由设定控制寄存器240以触发状态机220而指示RAID ECC引擎123来对用户数据进行编码运算。接着,控制寄存器240控制选择器230,使得选择器230的输入端所接收到自于数据缓冲器122的用户数据,例如页面0到页面N-1的用户数据,经由选择器230的输出端0而输出至运算电路210_0。同时,控制寄存器240将运算电路210_0的第一选择器213_0的选择端设定为“0”,使得运算电路210_0的XOR逻辑运算单元211_0可对选择器230所输出的用户数据与页面缓冲器212_0所暂存的编码数据进行编码运算(XOR逻辑运算),并且再将运算结果(新编码数据)输出至页面缓冲器212_0中以替代掉原本所暂存的编码数据(旧编码数据)。依照上述程序,运算电路210_0可依序收到由数据缓冲器122所传来的页面0到页面N-1的用户数据,并且再由XOR逻辑运算单元211_0对页面0到页面N-1的用户数据进行编码运算,最后得到同为一个页面大小的校验码,以完成整个编码运算。最终,RAID ECC引擎123再将所述校验码经由页面缓冲器212_0来写到非易失性存储器110的页面N中,或者是RAID ECC引擎123则输出所述校验码至数据缓冲器122中,之后数据缓冲器122再将页面0到页面N-1的用户数据以及所述校验码依序写到非易失性存储器110的页面0-N中。总而言之,本发明并不限制写入用户数据及所述校验码到非易失性存储器110中的具体实现方式,而且上述所决定采用运算电路210_0来进行编码运算也仅只是举例,其并非用以限制本发明,中央处理器124应可依据实际需求或应用来决定是要由哪几个运算电路来进行编码运算。
相对地,如图3B所示,假如当控制器120读取页面1的用户数据而发生无法更正错误时,中央处理器124将会借由设定控制寄存器240以触发状态机220而指示RAID ECC引擎123是进行解码运算。然后,控制寄存器240控制选择器230,使得选择器230的输入端所接收到自于非易失性存储器110的用户数据,例如页面0、页面2到页面N-1的用户数据,以及页面N的校验码,经由选择器230的输出端1而输出至运算电路210_1。同时,控制寄存器240将运算电路210_1的第一选择器213_1的选择端设定为“0”,使得运算电路210_1的XOR逻辑运算单元211_1对选择器230所输出的数据与页面缓冲器212_1所暂存的解码数据进行解码运算(XOR逻辑运算),并且再将运算结果(新解码数据)输出至页面缓冲器212_1中以替代掉原本暂存的解码数据(旧解码数据)。依照上述程序,运算电路210_1可依序收到由非易失性存储器110所传来的页面0的用户数据、页面N的校验码,以及页面2到页面N-1的用户数据,并且再由XOR逻辑运算单元211_0对上述数据进行解码运算,最后得到同为一个页面大小的解码数据,而此解码数据便为已更正错误后的页面1的用户数据,以完成整个解码运算。最终,RAID ECC引擎123再将已更正错误后的页面1的用户数据输出至数据缓冲器122,并替代掉数据缓冲器122所暂存的(错误的)页面1的用户数据。另外,在其它实施例中,页面0、页面2到页面N-1的用户数据以及页面N的校验码亦可先传送至数据缓冲器122中,然后再由数据缓冲器122送到RAID ECC引擎123作解码运算,但本发明皆不以此为限制。总而言之,由于RAID ECC引擎123所进行编码运算或解码运算的运作原理已为本领域技术人员所习知,因此有关上述细节于此就不再多加赘述。当然,如果控制器120读取页面1的用户数据而未发生无法更正错误的话,中央处理器124也就无需设定控制寄存器240,或是可设定控制寄存器240使得RAID ECC引擎123进入到省电模式。
再者,如图3C所示,当运算电路210_2未被使用到时,中央处理器124则通过设定控制寄存器240以控制第一选择器213_2,使得第一选择器213_2的输入端1作为页面缓冲器212_2的输入源,亦即图3C的第一选择器213_2的选择端设定为“1”,这样中央处理器124所要存储的暂时数据就可经由控制寄存器240而传送到第一选择器213_2的输入端1,以写入到页面缓冲器212_2中。类似地,中央处理器124也只需经由控制寄存器240就可读到页面缓冲器212_2中的所述暂时数据。也就是说,只要是本实施例所没有使用到的页面缓冲器都可通过设定控制寄存器240来转换成中央处理器124所能存取的路径,亦即把那些没有用到的页面缓冲器作分享并映射到中央处理器124的CPU存储器1241下,以达到扩充CPU存储器1241的效果,并进而提升整体系统效能。当然,如果这时RAID ECC引擎123不需进行编码运算或解码运算的话,本实施例也就不用控制(设定)选择器230。另外,本实施例所有的路径,即编码运算的路径、解码运算的路径,以及中央处理器124所能存取暂时数据的路径都可通过控制寄存器240来作设定,因此,只要不是选择到同一页面缓冲器的话,所有路径就都可同时运行。
最后,为了更进一步说明关于数据存储装置1所共享RAID ECC引擎123中存储器的运作流程,本发明进一步提供其方法的一种实施方式。因此,请一并参阅图4,图4是本发明实施例所提供共享控制器中存储器的方法的流程示意图。需说明的是,图4的方法是可以适用于图1的数据存储装置1中,但本发明亦不限制图4的方法仅能够适用于图1的数据存储装置1中。如图4所示,在步骤S410中,由中央处理器124发出至少一控制信号给RAID ECC引擎123。接着,在步骤S420中,根据控制信号,RAID ECC引擎123来把RAM 1231的未使用的存储器空间映射到中央处理器124的CPU存储器1241下,以虚拟成为CPU存储器1241的一部分,使得中央处理器124也就能够利用RAM 1231的未使用的存储器空间来存储暂时数据。由于详尽细节亦如同前述内容所述,故于此就不再多加赘述。
综上所述,本发明实施例所提供的数据存储装置及其共享控制器中存储器的方法,可以是把RAID ECC引擎的存储器作分享,并且映射到中央处理器的存储器下,以达到扩充中央处理器的存储器的效果,而且中央处理器所欲存储的暂时数据就无需放在控制器外的DRAM中,这样也就能够减少中央处理器所存取外部DRAM的频率,并进而提升整体系统效能。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容作出些许的更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (7)

1.一种数据存储装置,其特征在于,包括:
一非易失性存储器;以及
一控制器,电性耦接于所述非易失性存储器,并且包括一存取界面、一独立磁盘冗余阵列纠错码引擎以及一中央处理器,其中:
所述存取界面,耦接于一主机与所述非易失性存储器;
所述独立磁盘冗余阵列纠错码引擎,主要用来进行一纠错程序;以及
所述中央处理器,用来解读由所述主机所下达的写入/读取命令,并且控制所述存取界面去对所述非易失性存储器作用户数据的存取,其中所述中央处理器具有一第一存储器以用来存储暂时数据,所述独立磁盘冗余阵列纠错码引擎则具有一第二存储器,并当所述第二存储器有未被完全使用到时,所述控制器是将所述第二存储器的未使用的存储器空间映射到所述第一存储器下,以虚拟成为所述第一存储器的一部分,使得所述中央处理器也就能够利用所述第二存储器的所述未使用的存储器空间来存储所述暂时数据。
2.如权利要求1所述的数据存储装置,其特征在于,所述控制器更包括:
一数据缓冲器,耦接于所述存取界面、所述独立磁盘冗余阵列纠错码引擎与所述非易失性存储器,用来暂存自于所述主机或所述非易失性存储器的所述用户数据。
3.如权利要求2所述的数据存储装置,其特征在于,所述独立磁盘冗余阵列纠错码引擎包括:
一控制寄存器,耦接于所述中央处理器,并且用来接收自于所述中央处理器的至少一控制信号及所述暂时数据;以及
多个运算电路,且所述多个运算电路的每一个包括:
一异或逻辑运算单元;
一页面缓冲器;以及
一第一选择器,具有两输入端分别耦接于所述异或逻辑运算单元的输出端与所述控制寄存器,以及一输出端耦接于所述页面缓冲器,其中所述中央处理器是借由所述控制寄存器控制所述第一选择器以决定所述页面缓冲器的输入源,使得所述页面缓冲器用来存储自于所述异或逻辑运算单元的运算结果,或者用来存储自于所述中央处理器的所述暂时数据。
4.如权利要求3所述的数据存储装置,其特征在于,所述纠错程序区分为作一编码运算或一解码运算,且所述独立磁盘冗余阵列纠错码引擎更包括:
一状态机,耦接于所述控制寄存器,并且用来控制所述独立磁盘冗余阵列纠错码引擎是进行所述编码运算或所述解码运算;以及
一第二选择器,具有多个输出端分别耦接于所述多个运算电路的输入端,以及一输入端耦接于所述数据缓冲器或所述非易失性存储器,其中所述中央处理器是借由所述控制寄存器控制所述第二选择器,使得所述第二选择器的所述输入端所接收到自于所述数据缓冲器或所述非易失性存储器的所述用户数据,输出至指定的所述多个运算电路的至少其中之一。
5.一种共享控制器中存储器的方法,适用于一数据存储装置中,其特征在于,所述数据存储装置包括一非易失性存储器,以及电性耦接于所述非易失性存储器的所述控制器,所述控制器包括一存取界面、一独立磁盘冗余阵列纠错码引擎以及一中央处理器,所述存取界面耦接于一主机与所述非易失性存储器,所述独立磁盘冗余阵列纠错码引擎主要用来进行一纠错程序,所述中央处理器则用来解读由所述主机所下达的写入/读取命令,并且控制所述存取界面去对所述非易失性存储器作用户数据的存取,其中所述中央处理器具有一第一存储器以用来存储暂时数据,所述独立磁盘冗余阵列纠错码引擎具有一第二存储器,且所述方法包括:
由所述中央处理器发出至少一控制信号给所述独立磁盘冗余阵列纠错码引擎;以及
根据所述控制信号,所述独立磁盘冗余阵列纠错码引擎来把所述第二存储器的的未使用的存储器空间映射到所述第一存储器下,以虚拟成为所述第一存储器的一部分,使得所述中央处理器也就能够利用所述第二存储器的所述未使用的存储器空间来存储所述暂时数据。
6.如权利要求5所述的方法,其特征在于,所述控制器更包括:
一数据缓冲器,耦接于所述存取界面、所述独立磁盘冗余阵列纠错码引擎与所述非易失性存储器,用来暂存自于所述主机或所述非易失性存储器的所述用户数据。
7.如权利要求6所述的方法,其特征在于,所述独立磁盘冗余阵列纠错码引擎包括:
一控制寄存器,耦接于所述中央处理器,并且用来接收自于所述中央处理器的至少一控制信号及所述暂时数据;以及
多个运算电路,且所述多个运算电路的每一个包括:
一异或逻辑运算单元;
一页面缓冲器;以及
一第一选择器,具有两输入端分别耦接于所述异或逻辑运算单元的输出端与所述控制寄存器,以及一输出端耦接于所述页面缓冲器,其中所述中央处理器是借由所述控制寄存器控制所述第一选择器以决定所述页面缓冲器的输入源,使得所述页面缓冲器用来存储自于所述异或逻辑运算单元的运算结果,或者用来存储自于所述中央处理器的所述暂时数据。
CN201910370082.1A 2018-08-23 2019-05-06 数据存储装置及其共享控制器中存储器的方法 Active CN110858128B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862721767P 2018-08-23 2018-08-23
US62/721767 2018-08-23

Publications (2)

Publication Number Publication Date
CN110858128A true CN110858128A (zh) 2020-03-03
CN110858128B CN110858128B (zh) 2023-04-18

Family

ID=69582259

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201910114012.XA Active CN110858187B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器系统及其处理器错误检查方法
CN201910114084.4A Active CN110858188B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器系统及其沟通方法
CN201910370082.1A Active CN110858128B (zh) 2018-08-23 2019-05-06 数据存储装置及其共享控制器中存储器的方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201910114012.XA Active CN110858187B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器系统及其处理器错误检查方法
CN201910114084.4A Active CN110858188B (zh) 2018-08-23 2019-02-14 具有分布式信箱结构的多处理器系统及其沟通方法

Country Status (3)

Country Link
US (3) US11314571B2 (zh)
CN (3) CN110858187B (zh)
TW (3) TWI680375B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191777B (zh) * 2019-12-27 2022-07-26 深圳云天励飞技术股份有限公司 一种神经网络处理器及其控制方法
CN112506847B (zh) * 2021-02-04 2021-04-30 上海励驰半导体有限公司 多处理器通信方法及系统
TWI798680B (zh) * 2021-04-14 2023-04-11 群聯電子股份有限公司 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
CN112965670B (zh) * 2021-04-22 2023-08-01 群联电子股份有限公司 主机存储器缓冲区管理方法、存储装置与控制电路单元
US11972150B2 (en) 2021-09-29 2024-04-30 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware
TWI821965B (zh) 2021-09-29 2023-11-11 慧榮科技股份有限公司 編碼歷程資訊的存取方法及電腦程式產品及裝置
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
TW200417918A (en) * 2003-03-14 2004-09-16 Mediatek Inc Method for accessing external memory of a microprocessor
US20050229089A1 (en) * 2004-04-01 2005-10-13 Oza Alpesh B Error correction for memory
US20080201625A1 (en) * 2007-02-21 2008-08-21 Sigmatel, Inc. Error correction system and method
TWI309773B (en) * 2006-03-14 2009-05-11 Fulhua Microelectronics Corp Memory accessing system and method
US20090138673A1 (en) * 2007-11-28 2009-05-28 Apple Inc. Internal memory mapped external memory interface
TW201111991A (en) * 2009-09-23 2011-04-01 Tatung Co Memory access system and method for virtualizing off-chip memory of a processor
CN102812519A (zh) * 2010-03-22 2012-12-05 莫塞德技术公司 具有错误校正的复合半导体存储设备
TW201303586A (zh) * 2011-05-31 2013-01-16 Micron Technology Inc 包含記憶體系統控制器之裝置及相關方法
US20150033065A1 (en) * 2013-07-24 2015-01-29 Lsi Corporation Solid state drive emergency pre-boot application providing expanded data recovery function
US9823968B1 (en) * 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
US20180067800A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
US20180067799A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
IT1184553B (it) * 1985-05-07 1987-10-28 Honeywell Inf Systems Architettura di sistema a piu' processori
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
CA2009780C (en) * 1989-05-17 1999-07-27 Ernest D. Baker Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems
US5423008A (en) * 1992-08-03 1995-06-06 Silicon Graphics, Inc. Apparatus and method for detecting the activities of a plurality of processors on a shared bus
JPH0778766B2 (ja) * 1992-09-25 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ランダム・アクセス可能かつ書換え可能メモリを用いる外部記憶装置におけるプログラム直接実行の制御方法および装置
EP0640929A3 (en) * 1993-08-30 1995-11-29 Advanced Micro Devices Inc Interprocessor communication via a post MEV.
US5737240A (en) * 1996-01-25 1998-04-07 International Business Machines Corporation Programmable hardware mailbox message technique and system
JP3230485B2 (ja) * 1998-04-09 2001-11-19 日本電気株式会社 1チップマイクロコンピュータ
US6070255A (en) * 1998-05-28 2000-05-30 International Business Machines Corporation Error protection power-on-self-test for memory cards having ECC on board
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
US6912716B1 (en) * 1999-11-05 2005-06-28 Agere Systems Inc. Maximized data space in shared memory between processors
US6735173B1 (en) * 2000-03-07 2004-05-11 Cisco Technology, Inc. Method and apparatus for accumulating and distributing data items within a packet switching system
US6938253B2 (en) * 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
JP3841810B2 (ja) * 2002-09-30 2006-11-08 株式会社ルネサステクノロジ データプロセッサ
CN1232918C (zh) * 2003-04-11 2005-12-21 大唐移动通信设备有限公司 一种基于共享存储器的多处理器间数据交互方法及装置
GB0308991D0 (en) * 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application
KR100506366B1 (ko) * 2003-11-20 2005-08-10 현대모비스 주식회사 복합마이컴형 제품 및 슬레이브 리셋 방법
US7467247B2 (en) * 2005-10-31 2008-12-16 Hewlett-Packard Development Company, L.P. Timeouts on accessing a shared resource
KR100822468B1 (ko) * 2006-09-11 2008-04-16 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 코드 데이터 전송 방법
GB2442984B (en) * 2006-10-17 2011-04-06 Advanced Risc Mach Ltd Handling of write access requests to shared memory in a data processing apparatus
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
TWI346873B (en) * 2007-03-27 2011-08-11 Ind Tech Res Inst A direct memory access controller with dynamic data width adjustment, method thereof, and computer accessible storage media to store program thereof
US8230180B2 (en) * 2008-06-11 2012-07-24 Samsung Electronics Co., Ltd. Shared memory burst communications
KR20100041309A (ko) * 2008-10-14 2010-04-22 삼성전자주식회사 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템
KR20110013868A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
US8356130B2 (en) * 2009-08-14 2013-01-15 Advanced Micro Devices, Inc. Mechanism for recording undeliverable user-level interrupts
TWI465916B (zh) * 2010-09-01 2014-12-21 Tatung Co 異質雙核心之非對稱傳輸系統與方法
CN102654858B (zh) * 2011-03-04 2015-02-04 国基电子(上海)有限公司 双处理器系统及双处理器系统的通信方法
CN102137310A (zh) * 2011-03-15 2011-07-27 崔莉莉 分布式实时控制的楼宇对讲系统
CN102891762B (zh) * 2011-07-20 2016-05-04 赛恩倍吉科技顾问(深圳)有限公司 连续处理网络数据的系统及方法
TWI452471B (zh) * 2011-11-16 2014-09-11 Sk Hynix Inc 用於通用序列匯流排裝置的全雙工控制器與其方法
US9009566B2 (en) * 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
CN103324599A (zh) * 2013-06-04 2013-09-25 北京创毅讯联科技股份有限公司 处理器间通信方法与系统级芯片
US9720830B2 (en) * 2015-07-10 2017-08-01 Macom Connectivity Solutions, Llc Systems and methods facilitating reduced latency via stashing in system on chips
KR102407917B1 (ko) * 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
CN105487989A (zh) * 2015-11-27 2016-04-13 杭州朔天科技有限公司 一种降低响应延时提高系统效率的中断控制器及控制方法
TWI585676B (zh) * 2016-03-18 2017-06-01 慧榮科技股份有限公司 資料儲存裝置、記憶體控制器及其操作方法
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
TW200417918A (en) * 2003-03-14 2004-09-16 Mediatek Inc Method for accessing external memory of a microprocessor
US20050229089A1 (en) * 2004-04-01 2005-10-13 Oza Alpesh B Error correction for memory
TWI309773B (en) * 2006-03-14 2009-05-11 Fulhua Microelectronics Corp Memory accessing system and method
US20080201625A1 (en) * 2007-02-21 2008-08-21 Sigmatel, Inc. Error correction system and method
US20090138673A1 (en) * 2007-11-28 2009-05-28 Apple Inc. Internal memory mapped external memory interface
TW201111991A (en) * 2009-09-23 2011-04-01 Tatung Co Memory access system and method for virtualizing off-chip memory of a processor
CN102812519A (zh) * 2010-03-22 2012-12-05 莫塞德技术公司 具有错误校正的复合半导体存储设备
TW201303586A (zh) * 2011-05-31 2013-01-16 Micron Technology Inc 包含記憶體系統控制器之裝置及相關方法
TWI463314B (zh) * 2011-05-31 2014-12-01 Micron Technology Inc 包含記憶體系統控制器之裝置及相關方法
US20150033065A1 (en) * 2013-07-24 2015-01-29 Lsi Corporation Solid state drive emergency pre-boot application providing expanded data recovery function
US9823968B1 (en) * 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
US20180067800A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
US20180067799A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system

Also Published As

Publication number Publication date
US11314571B2 (en) 2022-04-26
TW202009695A (zh) 2020-03-01
US20200065177A1 (en) 2020-02-27
US11334415B2 (en) 2022-05-17
TWI680375B (zh) 2019-12-21
TWI703501B (zh) 2020-09-01
CN110858187B (zh) 2023-07-04
CN110858187A (zh) 2020-03-03
TWI703499B (zh) 2020-09-01
TW202009731A (zh) 2020-03-01
CN110858188B (zh) 2023-08-01
US20200065167A1 (en) 2020-02-27
CN110858188A (zh) 2020-03-03
TW202009699A (zh) 2020-03-01
CN110858128B (zh) 2023-04-18
US20200065190A1 (en) 2020-02-27

Similar Documents

Publication Publication Date Title
TWI773890B (zh) 資料儲存裝置及其校驗碼處理方法
CN110858128B (zh) 数据存储装置及其共享控制器中存储器的方法
CN111081308A (zh) 用于混合非易失性存储系统的系统和方法
US9424126B2 (en) Memory controller
US20160070507A1 (en) Memory system and method of controlling memory device
US10318379B2 (en) Decoding method, memory storage device and memory control circuit unit
CN109426441B (zh) 数据储存装置以及其操作方法
CN109491828B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US20240070062A1 (en) Nonvolatile memory, memory system, and control method of nonvolatile memory
CN111538687B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN107305510B (zh) 数据处理方法、存储器存储装置及存储器控制电路单元
TWI575533B (zh) 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
EP3841474A1 (en) Data recovery within a memory sub-system
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN106897023B (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI684856B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
US11409596B1 (en) Encoding control method, memory storage device and memory control circuit unit
US11430538B1 (en) Memory control method, memory storage device, and memory control circuit unit
US12039171B2 (en) Method for accessing flash memory module, flash memory controller, and memory device
US12079483B2 (en) Method for accessing flash memory module, flash memory controller, and memory device
US12038811B2 (en) Memory controller and data processing method
TWI759672B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
CN114708898A (zh) 表格管理方法、存储器存储装置及存储器控制电路单元
CN112799973A (zh) 编码控制方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant