CN109426443A - 存储器控制装置和方法 - Google Patents
存储器控制装置和方法 Download PDFInfo
- Publication number
- CN109426443A CN109426443A CN201810058732.4A CN201810058732A CN109426443A CN 109426443 A CN109426443 A CN 109426443A CN 201810058732 A CN201810058732 A CN 201810058732A CN 109426443 A CN109426443 A CN 109426443A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- data
- controller
- write
- host command
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000003068 static effect Effects 0.000 claims description 56
- 241000208340 Araliaceae Species 0.000 claims description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 2
- 230000006399 behavior Effects 0.000 claims description 2
- 235000008434 ginseng Nutrition 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000005621 ferroelectricity Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003694 hair properties Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
Classifications
-
- 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
-
- 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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/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/0658—Controller construction 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种存储器控制装置和方法。控制器接收来自主机的主机指令,判断主机指令所指示的操作类型,以及取得静态随机存取存储器储存的数据的数据参数。静态随机存取存储器具有一第一暂存空间。动态随机存取存储器耦接控制器,且具有一第二暂存空间。控制器根据数据参数判断第一暂存空间是否足够容纳对应主机指令的数据,当第一暂存空间无足够容纳对应主机指令的数据时,控制器将第一暂存空间中不同于上述操作类型的数据备份至第二暂存空间,暂存对应主机指令的数据,以及更新数据参数。
Description
技术领域
本发明主要有关于一存储器控制技术,特别有关于藉由判断静态随机存取存储器的储存空间判断是否将数据从静态随机存取存储器移动到动态随机存取存储器的存储器控制技术。
背景技术
半导体存储器是一种以硅(Si)晶片为材料所制成的集成电路(IntegratedCircuit,IC)。半导体存储器装置主要分类为两类,挥发性存储器装置(volatile memorydevices)与非挥发性存储器装置(nonvolatile memory devices)。挥发性存储器装置是一种当电源中断时将遗失所储存的数据的存储器装置。挥发性存储器装置包括例如静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)以及同步动态随机存取存储器(Synchronous DRAM,SDRAM)。非挥发性存储器装置是一种即使在电源中断时仍然保有所储存的数据的存储器装置。非挥发性存储器装置包括例如只读存储器(Read Only Memory,ROM)、可程式只读存储器(Programmable ROM,PROM)、可抹除可编程只读存储器(Erasable PROM,EPROM)、电性可抹除可编程只读存储器(Electrically EPROM,EEPROM)、快闪存储器装置(flash memorydevice)、参数随机存取存储器(Parameter RAM,PRAM)、磁阻式随机存取存储器(Magnetoresistive RAM,MRAM)、电阻式随机存取存储器(Resistive RAM,RRAM)以及铁电随机存取存储器(Ferroelectric RAM,FRAM)。
传统上的存储器控制技术,会藉由DRAM来快取(暂存)主机所要写入或读取的快闪存储器装置的数据。然而,受限于DRAM的频宽,因而导致读取和写入时的效能不佳。
因此,在一些存储器控制技术中,会改采用控制器内部的SRAM来快取(暂存)主机所要写入或读取的快闪存储器装置的数据,以增加数据读取和写入的效能。然而,因为数据读取和写入共用同一SRAM,因此,当写入操作和读取操作交错执行时,会发生主机指令延迟(Command latency)的问题。举例来说,于写入操作后执行读取操作时,控制器需要先将已暂存在SRAM上的数据先备份到DRAM上,以清出SRAM的空间让主机可以利用SRAM空间来快取数据,直到读取操作做完时再将DRAM上的数据备份回SRAM,而备份到DRAM以及备份回SRAM将造成显著的延迟。
发明内容
有鉴于上述先前技术的问题,本发明提供了藉由判断静态随机存取存储器的储存空间判断是否将数据从静态随机存取存储器移动到动态随机存取存储器的存储器控制装置和方法。
根据本发明的一实施例提供了一种存储器控制装置。上述存储器控制装置包括一控制器、一静态随机存取存储器以及一动态随机存取存储器。控制器包括上述静态随机存取存储器,且上述静态随机存取存储器具有一第一暂存空间。此外,控制器接收来自一主机的一主机指令,判断上述主机指令所指示的一操作类型,以及取得上述静态随机存取存储器所储存的数据的数据参数。动态随机存取存储器耦接上述控制器,且具有一第二暂存空间。上述控制器根据上述数据参数判断上述第一暂存空间是否足够容纳对应上述主机指令的数据,当上述第一暂存空间无足够容纳对应上述主机指令的数据时,上述控制器将上述第一暂存空间中对应不同于上述操作类型的数据备份至上述第二暂存空间、暂存对应上述主机指令的数据,以及更新上述数据参数。
在一些实施例中,上述控制器还记录对应不同操作类型的数据所对应的一起始指标、一结束指标以及数据量。
在一些实施例中,上述操作类型是一写入操作或一读取操作。
在一些实施例中,当根据上述主机指令得知上述写入操作完成后将执行上述读取操作时,上述控制器根据对应上述写入操作的写入数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述读取操作的读取数据。当上述读取数据有可能涵盖到上述写入数据时,上述控制器将上述写入数据备份至上述第二暂存空间。
在一些实施例中,当根据上述主机指令得知上述读取操作完成后将执行上述写入操作时,上述控制器根据对应上述读取操作的读取数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述写入操作的写入数据。当上述写入数据有可能涵盖到上述读取数据时,上述控制器将上述读取数据备份至上述第二暂存空间。
根据本发明的一实施例提供了一种存储器控制装置方法。上述存储器控制装置方法的步骤包括,接收来自一主机的一主机指令;判断上述主机指令所指示的一操作类型;取得数据参数;根据上述数据参数判断一第一暂存空间是否足够容纳对应上述主机指令的数据;当上述第一暂存空间无足够容纳对应上述主机指令的数据时,将上述第一暂存空间中对应不同于上述操作类型的数据备份至一第二暂存空间;暂存对应上述主机指令的数据;以及更新上述数据参数。
关于本发明其他附加的特征与优点,熟悉本此领域的技术人员,在不脱离本发明的精神和范围内,当可根据本案实施方法中所揭示的存储器控制装置和方法,做些许的更动与润饰而得到。
附图说明
图1是显示根据本发明的一实施例所述的存储器控制装置100的方块图。
图2是显示根据本发明的一实施例所述的暂存在静态随机存取存储器120的数据的示意图。
图3是显示根据本发明的另一实施例所述的暂存在静态随机存取存储器120的数据的示意图。
图4是显示根据本发明的另一实施例所述的暂存在静态随机存取存储器120的数据的示意图。
图5是根据本发明一实施例所述的存储器控制方法的流程图500。
符号说明
100 存储器控制装置;
110 控制器;
120 静态随机存取存储器;
130 动态随机存取存储器;
140 快闪存储器;
150 主机;
IH 读取数据的起始指标;
IT 读取数据的结束指标;
PH 写入数据的起始指标;
PT 写入数据的结束指标。
具体实施方式
本章节所叙述的是实施本发明的最佳方式,目的在于说明本发明的精神而非用以限定本发明的保护范围,本发明的保护范围当由权利要求书界定为准。
图1显示了根据本发明的一实施例所述的存储器控制装置100的方块图。如图1所示,存储器控制装置100可包括一控制器110、一静态随机存取存储器120、一动态随机存取存储器130,以及一快闪存储器140。特别注意地是,在图1中的方块图,仅为了方便说明本发明的实施例,但本发明并不以此为限。存储器控制装置100亦可包括其他元件。
根据本发明的实施例,静态随机存取存储器120包含于控制器110中,以作为一快取(cache)存储器。控制器110会根据主机150的主机指令进行操作。控制器110可用以控制静态随机存取存储器120和动态随机存取存储器130中数据的快取和存取。此外,控制器110可用以控制快闪存储器140的数据的读取和写入。
根据本发明的实施例,快闪存储器140是一非挥发性储存装置(Non-VolatileMemory),例如:非与门快闪存储器(NAND Flash),但本发明不以此为限。
根据本发明一实施例,控制器110会从主机150接收一主机指令,并依据此主机指令对快闪存储器140执行一读取操作或一写入操作。当控制器110依据主机指令执行读取操作时,控制器110会将从快闪存储器140取得的读取数据暂存在静态随机存取存储器120中,再输出至主机150,控制器110可依据主机指令重复执行读取操作。当控制器110依据主机指令而不再执行读取操作,反而是执行写入操作时,控制器110会将从主机150取得的写入数据暂存在静态随机存取存储器120中,再将写入数据写入快闪存储器140中,控制器110可依据主机指令重复执行写入操作。
根据本发明一实施例,当执行读取操作时,控制器110会记录对应读取操作的读取数据D1在静态随机存取存储器120中的地址。如果静态随机存取存储器120中储存数笔读取数据D1,则控制器110会记录这些读取数据D1在静态随机存取存储器120中的起始地址(数笔读取数据D1的头)及结束地址(数笔读取数据D1的尾)。控制器110较佳采用起始指标IH及结束指标IT来分别指向读取数据D1的起始地址以及结束地址。至于读取数据D1的起始地址至结束地址以外的地址皆可以用以储存写入数据D2。
另外,控制器110也可以记录对应写入操作的写入数据D2在静态随机存取存储器120中的地址。如果静态随机存取存储器120中储存数笔写入数据D2,则控制器110会记录这些写入数据D2在静态随机存取存储器120中的起始地址(数笔写入数据D2的头)以及结束地址(数笔写入数据D2的尾)。控制器110较佳采用起始指标PH及结束指标PT来分别指向写入数据D2的起始地址以及结束地址。至于写入数据D2的起始地址至结束地址以外的地址皆可以用以储存读取数据D1。根据本发明一实施例,控制器110亦会记录读取数据D1和写入数据D2的数据量。
根据本发明一实施例,当控制器110根据来自主机150的主机指令得知写入操作完成后将执行读取操作,此时,控制器110可由起始指标PH及结束指标PT得知静态随机存取存储器120是否有空间可以暂存读取数据D1。如果有,则控制器110不将写入数据D2备份至动态随机存取存储器130,控制器110直接进行主机指令的读取操作,且将读取数据D1暂存在静态随机存取存储器120,并以起始指标IH及结束指标IT记录,如图2所示。也就是说,当写入操作完成后执行读取操作时,控制器110会直接先将对应读取操作的读取数据D1暂存(或备份)在静态随机存取存储器120中,即将读取数据D1暂存在静态随机存取存储器120中未使用的空间中。
在控制器110不断地将读取数据D1暂存至静态随机存取存储器120的过程中,结束指标IT也不断地指向不同的地址。另外,在读取数据D1上传或输出至主机150后,将变成无效(可删除)数据,使得起始指标IH也会不断地指向不同的地址。如图3所示,当结束指标IT即将指向起始指标PH所指向的地址时,这表示静态随机存取存储器120已无多余空间可以储存更多的读取数据D1,此时,控制器110就会将暂存在静态随机存取存储器120的写入数据D2全部移动到动态随机存取存储器130中暂存,以将静态随机存取存储器120的储存空间空出来暂存更多的读取数据D1,如图4所示。换句话说,如果静态随机存取存储器120有多余的空间可以暂存读取数据D1,则控制器110不需要将静态随机存取存储器120的写入数据D2备份到动态随机存取存储器130中暂存,如此一来,就不会产生现有的指令延迟。
须说明的是,若写入数据D2已暂存在静态随机存取存储器120中,当一个写入操作完成后,有部份写入数据D2已无效(可删除),但仍有部份写入数据D2仍有效,因此,起始指标PH所指向的地址会改变。当写入操作完成后将执行读取操作时,控制器110较佳会从结束指标PT所指向的地址的下一个地址作为起始指标IH所指向的地址,并开始暂存读取数据D1,最后,以结束指标IT记录读取数据D1的结尾。由于读取数据D1或写入数据D2何时从有效变成无效,与主机指令的执行顺序及结果有关,故不多作叙述。
相反地,当控制器110根据来自主机150的主机指令得知读取操作完成后将执行写入操作时,控制器110不会先将读取数据D1备份至动态随机存取存储器130,而是将写入数据D2暂存在静态随机存取存储器120,直接准备进行写入操作。由于仅使用一组起始指标PH及结束指标PT,因此,结束指标PT指向结束指标IT所指向的地址的下一个地址并开始暂存写入数据D2。由上述可知,起始指标PH及结束指标PT有可能会涵盖到读取数据D1,因此,在执行写入操作时,除了依据起始指标PH及结束指标PT以取得写入数据D2之外,更要排除起始指标IH及结束指标IT所涵盖的读取数据D1。如果静态随机存取存储器120已无空间可以暂存剩余的写入数据D2时,控制器110会将读取数据D1备份到动态随机存取存储器130中暂存,让静态随机存取存储器120有更多的空间以暂存写入数据D2。
图5是根据本发明一实施例所述的存储器控制方法的流程图。此存储器控制方法适用存储器控制装置100。在步骤S502,存储器控制装置100接收来自一主机的一主机指令。
在步骤S504,判断主机指令的操作类型。也就是说,控制器110会判断主机指令是指示要执行读取操作或写入操作。在步骤S506,取得第一暂存空间所储存的数据的数据参数(即起始指标和结束指标之值)。控制器110会取得对应读取数据D1的起始指标IH及结束指标IT,以及对应写入数据D2的起始指标PH及结束指标PT。
在步骤S508,根据数据参数判断第一暂存空间(例如:静态随机存取存储器120)是否足够容纳对应主机指令的数据。假设控制器110依主机指令执行读取操作,则控制器110会根据对应写入数据D2的起始指标PH及结束指标PT判断静态随机存取存储器120是否有足够空间可容纳读取数据D1;假设控制器110依主机指令执行写入操作,则控制器110会根据对应读取数据D1的起始指标IH及结束指标IT判断静态随机存取存储器120是否有足够空间可容纳写入数据D2。
回到步骤S508,如果判断为否,则执行步骤S510,将上述第一暂存空间中对应不同于主机指令所指示的操作类型的数据备份至一第二暂存空间(例如:动态随机存取存储器130)。假设对应主机指令的操作类型的数据为读取数据D1,若控制器110根据起始指标PH及结束指标PT判断静态随机存取存储器120无足够空间可容纳读取数据D1,控制器110会将写入数据D2备份至动态随机存取存储器130,使静态随机存取存储器120产生足够空间以容纳读取数据D1,反之亦然。
在步骤S512,暂存对应主机指令的数据至静态随机存取存储器120。在步骤S514,根据暂存的数据更新数据的参数。当静态随机存取存储器120有足够的空间容纳读取数据D1时,控制器110将读取数据D1暂存至静态随机存取存储器120,并且随着读取数据D1的增加或减少而改变结束指标IT或起始指标IH的值。或者,当静态随机存取存储器120有足够的空间容纳写入数据D2时,控制器110将写入数据D2暂存至静态随机存取存储器120,并且随着写入数据D2的增加或减少而改变结束指标PT或起始指标PH的值。
根据本发明的实施例所提出的存储器控制方法,当控制器110对快闪存储器140执行不同类型操作时,控制器110不需要将暂存于静态随机存取存储器的数据备份到动态随机存取存储器中,而是直接将目前操作的数据暂存至静态随机存取存储器中,直到静态随机存取存储器的储存空间不足时,才会将不同类型操作的数据从静态随机存取存储器120备份至动态随机存取存储器130。本发明的实施例所提出的存储器控制方法,可避免因为不同类型操作而不断地进行数据备份所导致的指令延迟,以及提升读取和写入的效能。
本说明书中所提到的"一实施例"或"实施例",表示与实施例有关的所述特定的特征、结构、或特性是包含根据本发明的至少一实施例中,但并不表示它们存在于每一个实施例中。因此,在本说明书中不同地方出现的"在一实施例中"或"在实施例中"词组并不必然表示本发明的相同实施例。
以上段落使用多种层面描述。显然的,本文的教示可以多种方式实现,而在范例中揭示的任何特定架构或功能仅为一代表性的状况。根据本文的教示,任何熟知本技术领域者应理解在本文揭示的各层面可独立实作或两种以上的层面可以合并实作。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当由权利要求书界定准。
Claims (10)
1.一种存储器控制装置:包括:
一控制器,包括一静态随机存取存储器,且接收来自一主机的一主机指令,判断上述主机指令所指示的一操作类型,以及取得上述静态随机存取存储器所储存的数据的数据参数,其中上述静态随机存取存储器具有一第一暂存空间;以及
一动态随机存取存储器,耦接上述控制器,且具有一第二暂存空间;
其中上述控制器根据上述数据参数判断上述第一暂存空间是否足够容纳对应上述主机指令的数据,当上述第一暂存空间无足够容纳对应上述主机指令的数据时,上述控制器将上述第一暂存空间中对应不同于上述操作类型的数据备份至上述第二暂存空间,暂存对应上述主机指令的数据,以及更新上述数据参数。
2.如权利要求1所述的存储器控制装置,其特征在于,上述控制器还记录对应不同操作类型的数据所对应的一起始指标、一结束指标以及数据量。
3.如权利要求2所述的存储器控制装置,其特征在于,上述操作类型是一写入操作或一读取操作。
4.如权利要求3所述的存储器控制装置,其特征在于,中当根据上述主机指令得知上述写入操作完成后将执行上述读取操作时,上述控制器根据对应上述写入操作的写入数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述读取操作的读取数据。
5.如权利要求3所述的存储器控制装置,其特征在于,当根据上述主机指令得知上述读取操作完成后将执行上述写入操作时,上述控制器根据对应上述读取操作的读取数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述写入操作的写入数据。
6.一种存储器控制方法:包括:
接收来自一主机的一主机指令;
判断上述主机指令所指示的一操作类型;
取得数据参数;
根据上述数据参数判断一第一暂存空间是否足够容纳对应上述主机指令的数据;
当上述第一暂存空间无足够容纳对应上述主机指令的数据时,将上述第一暂存空间中对应不同于上述操作类型的数据备份至一第二暂存空间;
暂存对应上述主机指令的数据;以及
更新上述数据参数。
7.如权利要求6所述的之存储器控制方法,其特征在于,还包括:
记录对应不同操作类型的数据所对应的一起始指标、一结束指标以及数据量。
8.如权利要求7所述的存储器控制方法,其特征在于,上述操作类型是一写入操作或一读取操作。
9.如权利要求8所述的存储器控制方法,其特征在于,还包括:
当根据上述主机指令得知上述写入操作完成后将执行上述读取操作时,根据对应上述写入操作的写入数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述读取操作的读取数据。
10.如权利要求8所述的存储器控制方法,其特征在于,还包括:
当根据上述主机指令得知上述读取操作完成后将执行上述写入操作时,根据对应上述读取操作的读取数据的上述起始指标及上述结束指标,判断上述第一暂存空间是否有空间可以暂存对应上述写入操作的写入数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106129770 | 2017-08-31 | ||
TW106129770A TWI645286B (zh) | 2017-08-31 | 2017-08-31 | 記憶體控制裝置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426443A true CN109426443A (zh) | 2019-03-05 |
CN109426443B CN109426443B (zh) | 2022-12-02 |
Family
ID=65431800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810058732.4A Active CN109426443B (zh) | 2017-08-31 | 2018-01-22 | 存储器控制装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10474364B2 (zh) |
CN (1) | CN109426443B (zh) |
TW (1) | TWI645286B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748861B (zh) * | 2019-10-31 | 2024-06-07 | 伊姆西Ip控股有限责任公司 | 用于提供信息的方法、电子设备和计算机程序产品 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0875902A2 (en) * | 1997-05-02 | 1998-11-04 | Enhanced Memory Systems, Inc. | Enhanced signal processing random access memory device utilizing a DRAM memory array integrated with an associated SRAM cache and internal refresh control |
US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
CN101174245A (zh) * | 2006-11-02 | 2008-05-07 | 国际商业机器公司 | 混合数据存储的方法和装置 |
US20080147968A1 (en) * | 2000-01-06 | 2008-06-19 | Super Talent Electronics, Inc. | High Performance Flash Memory Devices (FMD) |
US20100174853A1 (en) * | 2009-01-08 | 2010-07-08 | Samsung Electronics Co., Ltd. | User device including flash and random write cache and method writing data |
JP2012203767A (ja) * | 2011-03-28 | 2012-10-22 | Nec Commun Syst Ltd | Dram型メモリシステムおよびメモリ管理制御方法 |
CN103186470A (zh) * | 2011-12-30 | 2013-07-03 | 群联电子股份有限公司 | 存储器储存装置及其存储器控制器与数据写入方法 |
CN103984643A (zh) * | 2013-02-11 | 2014-08-13 | 想象力科技有限公司 | 推测性加载分发 |
US20150012690A1 (en) * | 2013-03-15 | 2015-01-08 | Rolando H. Bruce | Multi-Leveled Cache Management in a Hybrid Storage System |
CN104485130A (zh) * | 2014-12-19 | 2015-04-01 | 上海新储集成电路有限公司 | 一种固态硬盘结构 |
CN104811495A (zh) * | 2015-04-27 | 2015-07-29 | 北京交通大学 | 一种用于智慧协同网络的网络组件内容存储方法及模块 |
CN106681695A (zh) * | 2015-11-09 | 2017-05-17 | 想象技术有限公司 | 提前取出分支目标缓冲器 |
TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7606993B2 (en) * | 2003-06-10 | 2009-10-20 | Tdk Corporation | Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory |
US8370562B2 (en) * | 2007-02-25 | 2013-02-05 | Sandisk Il Ltd. | Interruptible cache flushing in flash memory systems |
US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
US8635407B2 (en) * | 2011-09-30 | 2014-01-21 | International Business Machines Corporation | Direct memory address for solid-state drives |
JP2013097416A (ja) * | 2011-10-28 | 2013-05-20 | Hitachi Ltd | 記憶装置および計算機 |
KR20140067400A (ko) * | 2012-11-26 | 2014-06-05 | 삼성전자주식회사 | 플래시 메모리, 제 1 버퍼 메모리, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR102032892B1 (ko) * | 2015-05-06 | 2019-10-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US9792191B2 (en) * | 2015-08-19 | 2017-10-17 | Nxp Usa, Inc. | Fast write mechanism for emulated electrically erasable (EEE) system |
KR20180069960A (ko) * | 2016-12-15 | 2018-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
-
2017
- 2017-08-31 TW TW106129770A patent/TWI645286B/zh active
-
2018
- 2018-01-22 CN CN201810058732.4A patent/CN109426443B/zh active Active
- 2018-06-22 US US16/016,134 patent/US10474364B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0875902A2 (en) * | 1997-05-02 | 1998-11-04 | Enhanced Memory Systems, Inc. | Enhanced signal processing random access memory device utilizing a DRAM memory array integrated with an associated SRAM cache and internal refresh control |
US20080147968A1 (en) * | 2000-01-06 | 2008-06-19 | Super Talent Electronics, Inc. | High Performance Flash Memory Devices (FMD) |
US7320013B2 (en) * | 2002-12-12 | 2008-01-15 | Adaptec, Inc. | Method and apparatus for aligning operands for a processor |
CN101174245A (zh) * | 2006-11-02 | 2008-05-07 | 国际商业机器公司 | 混合数据存储的方法和装置 |
US20100174853A1 (en) * | 2009-01-08 | 2010-07-08 | Samsung Electronics Co., Ltd. | User device including flash and random write cache and method writing data |
JP2012203767A (ja) * | 2011-03-28 | 2012-10-22 | Nec Commun Syst Ltd | Dram型メモリシステムおよびメモリ管理制御方法 |
CN103186470A (zh) * | 2011-12-30 | 2013-07-03 | 群联电子股份有限公司 | 存储器储存装置及其存储器控制器与数据写入方法 |
CN103984643A (zh) * | 2013-02-11 | 2014-08-13 | 想象力科技有限公司 | 推测性加载分发 |
US20150012690A1 (en) * | 2013-03-15 | 2015-01-08 | Rolando H. Bruce | Multi-Leveled Cache Management in a Hybrid Storage System |
CN104485130A (zh) * | 2014-12-19 | 2015-04-01 | 上海新储集成电路有限公司 | 一种固态硬盘结构 |
CN104811495A (zh) * | 2015-04-27 | 2015-07-29 | 北京交通大学 | 一种用于智慧协同网络的网络组件内容存储方法及模块 |
TW201729105A (zh) * | 2015-10-16 | 2017-08-16 | 希耐克斯實驗室公司 | 混合模式存取固態硬碟驅動器之方法及裝置 |
CN106681695A (zh) * | 2015-11-09 | 2017-05-17 | 想象技术有限公司 | 提前取出分支目标缓冲器 |
Also Published As
Publication number | Publication date |
---|---|
TW201913377A (zh) | 2019-04-01 |
US10474364B2 (en) | 2019-11-12 |
US20190065071A1 (en) | 2019-02-28 |
CN109426443B (zh) | 2022-12-02 |
TWI645286B (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4406339B2 (ja) | コントローラ、メモリカード及びその制御方法 | |
DE102014101267B4 (de) | Speichersystem mit nichtflüchtiger Speichervorrichtung und Programmierverfahren davon | |
CN110083304A (zh) | 存储器控制器及其操作方法 | |
CN105825892B (zh) | 单胞多位式的存储器及其操作方法 | |
CN108986852A (zh) | 存储装置及其操作方法 | |
CN107578793A (zh) | 非易失性存储器系统和非易失性存储器装置的操作方法 | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN110400588A (zh) | 存储器装置以及该存储器装置的操作方法 | |
CN107111456A (zh) | 用于生成与主机命令相关联的提示信息的系统和方法 | |
TW200845007A (en) | Flash memory with improved programming precision | |
CN109977034A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
TWI613662B (zh) | 記憶體裝置及操作記憶體的方法 | |
CN110390970A (zh) | 存储器装置及其操作方法 | |
CN106504790A (zh) | 半导体存储装置及存储器系统 | |
CN109388578A (zh) | 存储装置及其操作方法 | |
CN110389720A (zh) | 存储装置及其操作方法 | |
CN110032333A (zh) | 存储器系统及其操作方法 | |
CN109815160A (zh) | 最后写入页搜索 | |
CN110502449A (zh) | 存储装置及其操作方法 | |
CN113035254A (zh) | 存储装置及其操作方法 | |
CN108335714A (zh) | 非易失性存储器装置、包括其的存储器系统和固态驱动器 | |
CN110175132A (zh) | 存储装置及其操作方法 | |
CN110287130A (zh) | 存储装置及其操作方法 | |
CN109933540A (zh) | 存储装置及其操作方法 | |
CN110176261A (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 |