CN110221780A - 存储器控制器、存储器控制方法、以及电脑系统 - Google Patents

存储器控制器、存储器控制方法、以及电脑系统 Download PDF

Info

Publication number
CN110221780A
CN110221780A CN201910464541.2A CN201910464541A CN110221780A CN 110221780 A CN110221780 A CN 110221780A CN 201910464541 A CN201910464541 A CN 201910464541A CN 110221780 A CN110221780 A CN 110221780A
Authority
CN
China
Prior art keywords
memory controller
main control
control end
processor
order
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
CN201910464541.2A
Other languages
English (en)
Other versions
CN110221780B (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.)
Hefei Peirui Microelectronics Co Ltd
Original Assignee
Hefei Peirui Microelectronics Co Ltd
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 Hefei Peirui Microelectronics Co Ltd filed Critical Hefei Peirui Microelectronics Co Ltd
Priority to CN201910464541.2A priority Critical patent/CN110221780B/zh
Priority to US16/548,934 priority patent/US10852991B1/en
Publication of CN110221780A publication Critical patent/CN110221780A/zh
Application granted granted Critical
Publication of CN110221780B publication Critical patent/CN110221780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • 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
    • 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/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本文给出了一种存储器控制器,其包含介面电路与处理器。介面电路用于和主控端进行通信。当处理器执行完来自主控端的N笔命令时,存储器控制器通知主控端释放对应于前述N笔命令的存储器地址,且N为正整数。处理器将介面电路的资料传输速率与预设值进行比较,处理器依据比较结果来调整N的数值。存储器控制器调整N的数值来匹配不同组态(Configuration)的主控端,可使整体传输速度的提升可以达到最佳化。

Description

存储器控制器、存储器控制方法、以及电脑系统
技术领域
本申请涉及一种存储器控制器,尤指一种可提升资料传输效率的存储器控制器、其控制方法、以及电脑系统。
背景技术
市售的电子装置可使用各种不同的介面电路(例如:ATA、PCI-e、USB)与储存装置(例如,固态硬碟)存取资料。部分介面电路(例如:序列先进技术附接(Serial AdvancedTechnology Attachment,SATA)介面可支援原生命令排序(Native Command Queuing,NCQ)技术以提升介面的传输效率。NCQ技术允许多笔命令存入队列(Queue)以接续或同时执行,有别于旧的排序技术需要等待前一笔命令执行完毕后才能接收下一笔命令的运作方式。
市面上的电子设备厂商推出了众多型号的产品,例如个人电脑、伺服器、笔记型电脑等等,这些产品在资料读写运作中扮演着主控端的脚色。然而,市面上存在许多不同组态(Configuration)的主控端,例如不同的作业系统或是不同硬体架构。若装置端仅能以相同的运作模式回应不同组态的主控端,不但可能无法提升整体的传输速度,还可能会降低双方的工作效率。
发明内容
本申请提供一种存储器控制器,其包含介面电路与处理器。介面电路用于和主控端进行资料通信。当处理器执行完来自主控端的N笔命令,存储器控制器通知主控端释放对应于N笔命令的存储器地址,且N为正整数。处理器将介面电路的资料传输速率与预设值进行比较以产生一比较结果,并依据该比较结果来调整N的数值。
本申请另提供一种存储器控制方法,应用于包含接口电路以及处理器的内存控制器。前述控制方法包含以下流程:利用接口电路接收来自主控端的N笔命令;当处理器执行完N笔命令,利用处理器通知主控端释放对应于N笔命令的存储器地址,且N为正整数;利用处理器将介面电路的资料传输速率与预设值进行比较以产生一比较结果,并依据该比较结果来调整N的数值。
本申请另提供一种电脑系统,其包含主控端、存储器控制器、以及存储器模组。存储器控制器包含介面电路与处理器。介面电路用于和主控端进行资料通信。当处理器执行完来自主控端的N笔命令,存储器控制器通知主控端释放对应于N笔命令的存储器地址,且N为正整数。存储器模组耦接于存储器控制器。处理器将介面电路的资料传输速率与预设值进行比较以产生一比较结果,并依据该比较结果来调整N的数值。
上述的存储器控制器、其控制方法、以及电脑系统可以提升资料传输效率。
附图说明
图1为根据本申请一实施例的电脑系统简化后的功能方块图;
图2为依据本申请一实施例的存储器控制方法的流程图;
图3为依据本申请一实施例的传送设置装置位元FIS简化后的示意图;
图4A和图4B为电脑系统执行图2的存储器控制方法时调整设置装置位元FIS传送模式的简化后运作示意图;
图5为依据本申请另一实施例的存储器控制方法的流程图;
图6A和图6B为电脑系统执行图5的控制方法时调整多笔读取命令完成顺序的简化后运作示意图。
具体实施方式
以下将配合相关图式来说明本申请的实施例。在图式中,相同的标号表示相同或类似的元件或方法流程。
图1为根据本申请一实施例的电脑系统100简化后的功能方块图。电脑系统100包含主控端110、存储器控制器120、储存装置130、以及存储器模组140。主控端110和储存装置130可以是某一装置中的局部电路。例如,主控端110和储存装置130可以分别是个人电脑中的主机板和硬碟。存储器控制器120和存储器模组140可以是另一装置中的局部电路。例如,存储器控制器120和存储器模组140可以分别是固态硬碟中的固态硬碟控制器和NAND快闪存储器。为使图面简洁而易于说明,电脑系统100中的其他元件与连接关系并未绘示于图1中。
主控端110包含第一处理器112、第一直接存储器存取(Direct Memory Access,DMA)电路114、第一存储器模组116、第一介面电路118a、以及第一介面电路118b。第一介面电路118a用于和存储器控制器120进行资料通信。第一处理器112用于控制储存装置130和第一存储器模组116之间的双向资料传输。而第一DMA电路114用于执行第一存储器模组116和存储器控制器120之间的双向资料传输。
存储器控制器120包含第二处理器122、第二直接存储器存取(DMA)电路124、第二存储器模组126、第二介面电路128、以及控制电路Fc。第二介面电路128用于和第一介面电路118a进行资料通信。第二处理器122用于依据主控端110的命令控制第二DMA电路124和控制电路Fc。第二DMA电路124用于执行第二存储器模组126和主控端110之间的双向资料传输。控制电路Fc用于执行第二存储器模组126和存储器模组140之间的双向资料传输。
操作上,第一介面电路118a以及第二介面电路128可以是SATA介面,但本申请不以此为限。在某一实施例中,第一介面电路118b可以是SATA介面、或快速周边组件互联(PCIExpress)介面。
主控端110与存储器控制器120之间的传输资讯包装为讯框资讯架构(FrameInformation Structure,简称FIS)。例如,主控端110可将传输给存储器控制器120的命令为主机至装置(Host to Device)FIS,而存储器控制器120回传至主控端110的确认接收的讯息为装置至主机(Device to Host)FIS。当存储器控制器120执行完N(一或多个)个命令,存储器控制器120会传送设置装置位元(Set Device Bits)FIS至主控端110,以通知主控端110释放分配给该N个命令的存储器地址。
在主控端110的第一存储器模组116的容量较少或第一处理器112的处理速度较慢的情况下,若存储器控制器120发送设置装置位元FIS的次数过低(例如,在执行过多笔命令后才传送一个设置装置位元FIS),则主控端110会因存储器空间不足(因第一存储器模组116尚未被释放)而持续(多次)发送暂停基元(Hold Primitive)给存储器控制器120。另一方面,在主控端110存储器空间较多或处理器的处理速度较快的情况下,则存储器控制器120发送设置装置位元FIS的次数愈少,愈能提升主控端110与存储器控制器120间的传输效率。
图2为依据本申请一实施例的存储器控制方法的流程图。图3为依据本申请一实施例的设置装置位元FIS简化后的示意图。图2的控制方法能令存储器控制器120依据主控端110的行为来适应性地调整设置装置位元FIS的传输模式(pattern)。请参考图1~3,存储器控制器120可执行来自主控端110的命令CMD1,命令CMD1的内容为自存储器模组140读取资料,且命令CMD1的执行过程包含传输阶段TSa~TSb。
在传输阶段TSa,主控端110会使用主机至装置FIS传送命令CMD1至存储器控制器120(流程2102)。接着,存储器控制器120会使用装置至主机FIS向主控端110回复命令CMD1已被接收(流程2104)。
存储器控制器120的控制电路Fc会将对应的资料自存储器模组140搬移至第二存储器模组126以准备传输(流程2106)。
在传输阶段TSb,存储器控制器120传送直接存储器存取设置(DMA Setup)FIS至主控端110,以通知主控端110准备开始接收资料(流程2108)。接着,存储器控制器120将欲传输的资料填入资料FIS之中,并将资料FIS传送至主控端110(流程2110)。
存储器控制器120还可执行来自主控端110的命令CMD2,命令CMD2的内容为将资料写入存储器模组140,且命令CMD2的执行过程包含传输阶段TSc~TSd。
在传输阶段TSc,主控端110会使用主机至装置FIS传送命令CMD2至存储器控制器120(流程2202)。第二处理器122会使用装置至主机FIS向主控端110回复命令CMD2已被接收(流程2204)。
在传输阶段TSd,存储器控制器120传送直接存储器存取设置FIS至主控端110,以通知主控端110准备开始传输资料(流程S2206)。接着,主控端110将欲传输的资料填入资料FIS之中,并将资料FIS传送至存储器控制器120(流程S2208)。
接着,存储器控制器120会将接收到的资料写入存储器模组140(流程2210)。
在流程S230中,存储器控制器120传送设置装置位元FIS至主控端110,以使主控端110释放第一存储器模组116中对应于命令CMD1和CMD2的存储器地址。请参照图3,传送设置装置位元FIS包含档头310和栏位320,其中栏位320的大小为32位元。档头310可包含错误项目(Error Entry)、FIS类型项目(FIS Type Entry)、以及中断项目(Interrupt Entry)等等。栏位320的每个位元对应于一笔主控端110发出的命令。若位元的数值被设定为1,则代表主控端110需释放对应的存储器地址,而若位元的数值被设定为0,则代表主控端110无需释放对应的存储器地址。
在本实施例中,存储器控制器120会将传送设置装置位元FIS中分别对应于命令CMD1和CMD2的二个位元(例如,第一位元和第二位元)设置为1,并将其他位元(例如,第三位元至第三十二位元)设置为0。
在一实施例中,FIS的种类与内容是由图1的第一处理器116和第二处理器122决定,而FIS的传输则是由第一DMA电路114和第二DMA电路124来执行。当第一DMA电路114和第二DMA电路124互相传输资料FIS时,第一处理器112和第二处理器122无需介入。如此一来,第一处理器112和第二处理器122的运算效率可以获得提升。
例如,当主控端110于流程2108中接收到直接存储器存取设置FIS时,第一处理器112可将包含第一存储器模组116的地址的物理区域描述表格(Physical RegionDescription Table)载入第一DMA电路114之中,以指定准备接收的资料大小与欲储存的地址。接着,第一DMA电路114于流程2110中会自第二DMA电路124接收资料FIS。
又例如,当主控端110于流程2206中接收到直接存储器存取设置FIS时,第一处理器112会将欲写入的资料于第一存储器模组116中的地址载入至第一DMA电路114。接着,第一DMA电路114会于流程2208中利用资料FIS将欲写入的资料传送至第二DMA电路124。
一实施例,当电脑系统100支援原生命令排序技术,第二处理器122尚将来自主控端110的多笔命令存入队列(Queue)并调整执行顺序。换言之,图2的传输阶段是执行顺序仅为示例性绘示,并可依据实际状况进行调整。例如,在主控端110一次传输多笔命令的情况下,传输阶段TSb和TSc可以互相调换顺序。
由上述可知,在执行流程230之前,存储器控制器120共完成了来自主控端110的两笔命令CMD1和CMD2,且每笔命令至少包含两个传输阶段。然而,图2中完成的命令数量仅为示范性的实施例。在每次执行图2的存储器控制方法时,存储器控制器120实际上可先完成总共N笔来自主控端110的命令(亦即,完成至少2N个传输阶段),然后再进行流程230,且N为小于或等于32的正整数。在此情况下,在流程230中,存储器控制器120会将栏位320中对应的N个位元设置为1,并将其他位元设置为0,以通知主控端110释放第一存储器模组116中分别对应于该N笔命令的存储器地址。在后续继续说明图2的存储器控制方法的段落中,将假设存储器控制器120在执行流程230之前,已完成了来自主控端110的N笔命令。
在流程240中,存储器控制器120会计算第二介面电路128的传输速率。具体而言,第二DMA电路124会在每笔资料的传输起始与结束时通知第二处理器122,例如在流程2110和流程2208的起始与结束时通知第二处理器122。因此,存储器控制器120可计算执行该N笔命令时第二DMA电路124处于忙碌(busy)状态的一时间总和。存储器控制器120会进一步依据该时间总和与执行该N笔命令时传输的资料FIS大小总和,来计算第二介面电路128的传输速率。
接着,在流程250中,存储器控制器120会将第二介面电路128的传输速率与预设值进行比较。若比较结果为第二介面电路128的传输速率低于预设值,则存储器控制器120会调整传送设置装置位元FIS之前(亦即,流程230之前)完成的命令数量。具体的调整方法将搭配图4A和图4B来进一步说明。当然,若比较结果为第二介面电路128的传输速率高于预设值,则存储器控制器120亦可调高传送设置装置位元FIS之前完成的命令数量,直到完成传输速度的最佳化。
如图4A所示,存储器控制器120预设为每完成N笔命令(例如,命令CMD[1]~CMD[N]或是CMD[N+1]~CMD[2N])后传送一次设置装置位元FIS。亦即,存储器控制器120会每完成至少2N个传输阶段(例如,传输阶段TS[1]~TS[2N]或是TS[2N+1]~TS[4N])后传送一次设置装置位元FIS。
若第二介面电路128的传输速率在图2的流程250中被判断为低于预设值,如图4B所示,存储器控制器120会切换为每完成M笔命令(例如,命令CMD[N+1]~CMD[N+M])后传送一次设置装置位元FIS,其中M为不等于N之正整数且M小于或等于32。亦即,存储器控制器120会切换为每完成至少2M个传输阶段(例如,传输阶段TS[2N+1]~TS[2N+2M])后传送一次设置装置位元FIS。此时,当再度执行的图2的流程230时,存储器控制器120会将设置装置位元FIS中被设置为1的位元数量由N个调整为M个,以通知装置端110释放对应于该M笔命令(例如,命令CMD[N+1]~CMD[N+M])的存储器地址。
电脑系统100可以多次执行图2的存储器控制方法,以使存储器控制器120适应性地依据主控端110的组态优化资料传输效率。前述的组态指的是主控端110的第一处理器112的处理器架构、南北桥晶片架构、第一存储器116的存储器大小、进阶主机控制器介面(Advanced Host Controller Interface)架构、作业系统、驱动软体、或有无启动NCQ技术)等等要素的组合。在主控端110的随机存取存储器较小或运算速度较慢的一实施例中,电脑系统100可以减少N之数值(例如,将N由16调整至7)以增加主控端110释放存储器地址的次数(频率),进而减少主控端110因来不及释放存储器而导致成存储器空间不足而要求暂停资料传输的次数。在主控端110的随机存取存储器较大或运算速度较快的另一实施例中,电脑系统100可以增加N之数值(例如,将N由16调整至30),以可减少存储器控制器120为了传送设置装置位元FIS而耗费的传输时间以及提升主控端110和存储器控制器120之间的资料传输效率,并提升存储器控制器120的运算效能。
此外,在存储器控制器120对N的数值进行优化后,且当N的数值大于或等于2时,存储器控制器120会判定主控端为有支援原生命令排序技术。然而,在支援原生命令排序技术的众多主控端中,有些主控端对于乱序回传的资料具有较高的处理效率,而另外一些主控端则对于顺序回传的资料具有较高的处理效率。
图5为依据本揭示文件另一实施例的存储器控制方法的流程图。图5的存储器控制方法能令存储器控制器120依据主控端110的行为而适应性地调整回传资料的顺序。在图5的实施例中,存储器控制器120会执行命令CMD1和CMD2,且命令CMD1和CMD2的内容皆为自存储器模组140中读取资料。命令CMD1的执行过程包含传输阶段TSa和TSc,而命令CMD2的执行过程则包含传输阶段TSb和TSd。
在传输阶段TSa中,主控端110会使用主机至装置FIS传送命令CMD1至存储器控制器120(流程5102)。存储器控制器120会使用装置至主机FIS向主控端110回复命令CMD1已被接收(流程5104)。接着,于传输阶段TSb中,主控端110会使用主机至装置FIS传送命令CMD2至存储器控制器120(流程5202)。存储器控制器120会使用装置至主机FIS向主控端110回复命令CMD2已被接收(流程5204)。
在本实施例中,由于资料大小或储存地址等等因素,存储器控制器120较快自存储器模组140中存取到对应于命令CMD2的资料,且较慢存取到对应于命令CMD1的资料。亦即,控制电路Fc会较快将对应于命令CMD2的资料自存储器模组140搬移至第二存储器模组126以等待传输(流程530)。
如前所述,存储器控制器120能决定来自主控端110的多个命令的执行顺序,而不一定会按照接收到该些命令的顺序来执行。因此,存储器控制器120接着会执行传输阶段TSc,以将对应于命令CMD2的资料传送至主控端110。在传输阶段TSc中,流程5206和流程5208分别相似于图2的流程2108和流程2110,差异在于:流程5208中被传输的是对应于命令CMD2的资料FIS。为简洁起见,流程5206和流程5208的其余内容在此不重复赘述。
接着,控制电路Fc会将对应于命令CMD1的资料自存储器模组140搬移至第二存储器模组126以等待传输(流程540)。存储器控制器120接着会执行传输阶段TSd,以将对应于命令CMD1的资料传送至主控端110。在传输阶段TSd中,流程5106和流程5108分别相似于图2的流程2108和流程2110,差异在于:流程5108中被传输的是对应于命令CMD1的资料FIS。为简洁起见,流程5106和流程5108的其余内容在此不重复赘述。
另外,图5的流程550相似于图2的流程230,为简洁起见,在此亦不重复赘述。
由上述可知,存储器控制器120可以不依据命令CMD1和CMD2的接收顺序来传送对应的资料。存储器控制器120可以借由优先传输先存取到的资料来提升工作效率。
图5的两个命令CMD1和CMD2仅是为了方便说明的示例性实施例。实作上,在每次执行图5的存储器控制方法时,电脑系统100可先完成总共N笔命令,然后再进行流程550,且N为小于或等于32的正整数。在后续继续说明图5的存储器控制方法的段落中,将假设存储器控制器120在执行流程550之前,已完成了来自主控端110的N笔命令。
在流程560中,存储器控制器120以相似于图2的流程240的方法计算第二介面电路128的传输速率。在流程570中,存储器控制器120会将第二介面电路128的传输速率和预设值进行比较。若第二介面电路128的传输速率小于预设值,且前述的N笔命令中包含了i笔读取命令,则存储器控制器120会调整对应于该i笔读取命令的i笔资料的传送顺序。
具体而言,存储器控制器120会将该i笔资料的传送顺序,由对应于该i笔资料的存取顺序(亦即,被搬移入第二存储器模组126的顺序),调整为对应于该i笔读取命令的接收顺序,其中i为小于或等于N的正整数。例如,存储器控制器120会将图5的传输阶段TSc和TSd的执行顺序互相调换。详细的调整方法将搭配图6A和图6B来进一步说明。
为方面说明,图6A和图6B仅绘示了读取命令CMD[1]~CMD[N]以及对应的传输阶段TS[1]~TS[2N],并省略了写入命令。如图6A所示,存储器控制器120预设优先传送先存取到的资料。亦即,存储器控制器120传送资料FIS的顺序是对应于对应的资料被搬移入第二存储器模组126的顺序(例如,3,1,2,...,N)。
若第二介面电路128的传输速率于流程560中被判断为小于预设值时,存储器控制器120会将传送资料FIS的顺序切换为对应于对应的读取命令的接收顺序(亦即,1,2,3,...,N)。
在一实施例中,由于直接存储器存取设置FIS与资料FIS是于同一传输阶段中传输,所以存储器控制器120在切换资料FIS的传送顺序时,亦会对应切换直接存储器存取设置FIS的传送顺序。亦即,存储器控制器120会将直接存储器存取设置FIS的传送顺序,由对应于对应的资料的存取顺序,切换为对应于对应的读取命令的接收顺序。
在一些实施例中,存储器控制器120预设为依据读取命令的接收顺序来传送对应的资料FIS及/或直接存储器存取设置FIS。当第二介面电路128的传输速率小于预设值时,非挥发存储器控制器120会将资料FIS及/或直接存储器存取设置FIS的传输顺序切换为对应于对应的资料的存取顺序。
在另外一些实施例中,当第二接口电路128的传输速率高于预设值时,该存储器控制器120也可以不切换资料FIS及/或直接存储器存取设置FIS的传输顺序。
请注意,图2和图5的存储器控制方法可以互相结合。图2的流程250可以包含图5的流程570中的运作,而图5的流程570也可以包含图2的流程250中的运作。亦即,在一些实施例中,存储器控制方法可以一并调整存储器控制器120传送设置装置位元FIS的模式以及资料FIS的传输顺序。
在说明书及权利要求书中使用了某些词汇来指称特定的元件。然而,所属技术领域中具有通常知识者应可理解,同样的元件可能会用不同的名词来称呼。说明书及权利要求书并不以名称的差异做为区分元件的方式,而是以元件在功能上的差异来做为区分的基准。在说明书及权利要求书所提及的「包含」为开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」在此包含任何直接及间接的连接手段。因此,若文中描述第一元件耦接于第二元件,则代表第一元件可通过电性连接或无线传输、光学传输等信号连接方式而直接地连接于第二元件,或者通过其他元件或连接手段间接地电性或信号连接至该第二元件。
在此所使用的「及/或」的描述方式,包含所列举的其中之一或多个项目的任意组合。另外,除非说明书中特别指明,否则任何单数格的用语都同时包含复数格的涵义。
以上仅为本揭示文件的较佳实施例,凡依本揭示文件请求项所做的均等变化与修饰,皆应属本揭示文件的涵盖范围。

Claims (10)

1.一种存储器控制器,其特征在于,包含:
介面电路,用于和主控端进行通信;以及
处理器,其中当所述处理器执行完来自所述主控端的N笔命令时,所述存储器控制器通知所述主控端释放对应于所述N笔命令的存储器地址,且N为正整数;
其中所述处理器将所述介面电路的资料传输速率与预设值进行比较以产生比较结果,
其中所述处理器依据所述比较结果来调整N的数值。
2.如权利要求1所述的存储器控制器,其特征在于,所述存储器控制器传送设置装置位元讯框资讯架构(Frame Information Structure,FIS)至所述主控端,以通知所述主控端释放对应于所述N笔命令的存储器地址,
其中所述设置装置位元FIS包含第一栏位,所述第一栏位包含多个位元,且所述多个位元分别代表来自所述主控端的所述N笔命令中的一笔命令。
3.如权利要求2所述的存储器控制器,其特征在于,所述存储器控制器依据所述比较结果在第一规则及第二规则之间切换以决定如何传送对应于所述N笔命令中的多笔读取命令的多个资料FIS,
其中所述第一规则包含:所述多个资料FIS的传送顺序对应于所述存储器控制器自存储器模组存取对应于所述多笔读取命令的多笔资料的顺序;
其中所述第二规则包含:所述多个资料FIS的传送顺序对应于所述存储器控制器自所述主控端接收所述多笔读取命令的顺序。
4.如权利要求3所述的存储器控制器,其特征在于,所述存储器控制器传送对应于所述多笔读取命令的多个直接存储器存取设置FIS至所述主控端,且所述第一规则另包含:所述多个直接存储器存取设置FIS的传送顺序对应于以下顺序的其一:所述存储器控制器存取所述多笔资料的顺序,以及所述存储器控制器自所述主控端接收所述多笔读取命令的顺序;
其中所述第二规则另包含:所述多个直接存储器存取设置FIS的传送顺序对应于以下顺序的另一:所述存储器控制器存取所述多笔资料的顺序,以及所述存储器控制器自所述主控端接收所述多笔读取命令的顺序。
5.如权利要求1所述的存储器控制器,其特征在于,所述处理器计算对应于所述N笔命令的多个资料FIS所使用的时间长度,
其中所述处理器依据所述时间长度与所述多个资料FIS的大小来计算出所述资料传输速率。
6.如权利要求1所述的存储器控制器,其特征在于,所述处理器依据所述比较结果来调整N的数值,且当N的数值大于1时,所述处理器判定为所述主控端的组态为支援原生命令排序(Native Command Queuing,NCQ)技术。
7.一种控制方法,其特征在于,应用于存储器控制器,所述存储器控制器包含介面电路以及处理器,所述方法包含:
利用所述介面电路接收来自主控端的N笔命令;
当所述处理器执行完所述N笔命令,利用所述处理器通知所述主控端释放对应于所述N笔命令的存储器地址,且N为正整数;
利用所述处理器将所述介面电路的资料传输速率与预设值进行比较以产生比较结果;以及
利用所述处理器依据所述比较结果来调整N的数值。
8.如权利要求7所述的方法,其特征在于,通知所述主控端释放对应于所述N笔命令的存储器地址的流程包含:
利用所述处理器传送设置装置位元FIS至所述主控端,其中所述设置装置位元FIS包含第一栏位,所述第一栏位包含多个位元,且所述多个位元分别用于代表来自所述主控端的所述N笔命令中的一笔命令。
9.如权利要求8所述的方法,其特征在于,还包含:
依据所述比较结果在第一规则或第二规则之间切换以决定如何传送对应于所述N笔命令中的多笔读取命令的多个资料FIS。
10.一种电脑系统,其特征在于,包含:
主控端;
存储器控制器,包含:
介面电路,用于和所述主控端进行通信;
处理器,其中当所述处理器执行完来自所述主控端的N笔命令,所述存储器控制器通知所述主控端释放对应于所述N笔命令的存储器地址,且N为正整数;以及
存储器模组,耦接于所述存储器控制器;
其中,所述处理器将所述介面电路的资料传输速率与预设值进行比较以产生比较结果,所述处理器依据所述比较结果调整N的数值。
CN201910464541.2A 2019-05-30 2019-05-30 存储器控制器、存储器控制方法、以及电脑系统 Active CN110221780B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910464541.2A CN110221780B (zh) 2019-05-30 2019-05-30 存储器控制器、存储器控制方法、以及电脑系统
US16/548,934 US10852991B1 (en) 2019-05-30 2019-08-23 Memory controller and memory controlling method where number of commands (executed by the memory controller prior to releasing host memory) is adjusted based on transmission speed of interface to host

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910464541.2A CN110221780B (zh) 2019-05-30 2019-05-30 存储器控制器、存储器控制方法、以及电脑系统

Publications (2)

Publication Number Publication Date
CN110221780A true CN110221780A (zh) 2019-09-10
CN110221780B CN110221780B (zh) 2022-09-27

Family

ID=67818673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910464541.2A Active CN110221780B (zh) 2019-05-30 2019-05-30 存储器控制器、存储器控制方法、以及电脑系统

Country Status (2)

Country Link
US (1) US10852991B1 (zh)
CN (1) CN110221780B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687523B2 (en) * 2020-11-25 2023-06-27 Salesforce, Inc. System and method for efficiently transferring data for offline use
US11526306B1 (en) * 2021-05-18 2022-12-13 Micron Technology, Inc. Command scheduling in a memory subsystem according to a selected scheduling ordering

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010871A (ja) * 1998-06-25 2000-01-14 Nec Kofu Ltd メモリパトロールの方法と方式
TW201401053A (zh) * 2012-06-19 2014-01-01 Acer Inc 主控端電子裝置以及主控端操作方法
CN107609499A (zh) * 2017-09-04 2018-01-19 南京航空航天大学 一种复杂环境下非接触式掌纹感兴趣区提取方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260756A1 (en) * 2006-01-05 2007-11-08 Pao-Ching Tseng Method for Processing Command via SATA Interface
JP4901310B2 (ja) * 2006-05-31 2012-03-21 株式会社日立製作所 記憶制御装置及び記憶制御装置のコマンド実行数制御方法
US8984182B2 (en) * 2011-10-06 2015-03-17 Marvell International Ltd. SCSI I/O command aggregation
KR20190032809A (ko) 2017-09-20 2019-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010871A (ja) * 1998-06-25 2000-01-14 Nec Kofu Ltd メモリパトロールの方法と方式
TW201401053A (zh) * 2012-06-19 2014-01-01 Acer Inc 主控端電子裝置以及主控端操作方法
CN107609499A (zh) * 2017-09-04 2018-01-19 南京航空航天大学 一种复杂环境下非接触式掌纹感兴趣区提取方法

Also Published As

Publication number Publication date
US10852991B1 (en) 2020-12-01
CN110221780B (zh) 2022-09-27
US20200379677A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
CN104520932B (zh) 闪存存储器控制器
KR101371815B1 (ko) 다수의 명령들을 처리하기 위한 메모리 제어기들, 메모리 시스템들, 고체상태 드라이버들 및 방법들
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
CN105359120B (zh) 使用双phy来支持多个pcie链路宽度的存储器和控制器
CN108228492B (zh) 一种多通道ddr交织控制方法及装置
CN105549916B (zh) PCIe固态硬盘控制器、基于PCIe的存储系统及其数据读写方法
CN104991737B (zh) 一种基于存储卡阵列架构的硬盘实现方法
WO2010059007A2 (en) Storage device of serial attached small computer system interface/serial advanced technology attachment type
CN101599004B (zh) 基于fpga的sata控制器
EP2936325A1 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN102073461B (zh) 输入输出请求调度方法、相关装置和存储阵列
CN104202197A (zh) 设备管理的方法和装置
WO2013164869A1 (en) Storage system and control method therefor
KR20090080568A (ko) 비휘발성 메모리용 고속 인터페이스
WO2007037757A1 (en) Portable data storage using slc and mlc flash memory
CN101876925A (zh) 内存镜像处理方法、装置和系统
CN102387184B (zh) 切换装置和可在切换装置中操作的方法
CN110221780A (zh) 存储器控制器、存储器控制方法、以及电脑系统
CN101308450A (zh) Fifo控制电路及控制方法
US11455186B2 (en) Controller and memory system having the same
CN201174115Y (zh) 一种多主机接口存储控制器
WO2017087544A1 (en) Method and system for shared direct access storage
CN103809920A (zh) 一种超大容量固态硬盘的实现方法
CN103092725B (zh) 一种实现存储器中数据备份的方法及装置
CN107861901A (zh) 一种基于nvdimm‑f的存储方法及系统

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