CN110780803A - 改进主机总线适配器后面的sata存储装置上的读取性能 - Google Patents
改进主机总线适配器后面的sata存储装置上的读取性能 Download PDFInfo
- Publication number
- CN110780803A CN110780803A CN201910559455.XA CN201910559455A CN110780803A CN 110780803 A CN110780803 A CN 110780803A CN 201910559455 A CN201910559455 A CN 201910559455A CN 110780803 A CN110780803 A CN 110780803A
- Authority
- CN
- China
- Prior art keywords
- storage device
- sata interface
- detected
- sata
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0032—Serial ATA [SATA]
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)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明的主题是“改进主机总线适配器后面的SATA存储装置上的读取性能”。示例可包括通过SATA接口耦合到主机总线适配器和SATA控制器的存储装置。存储装置包括存储器和存储装置控制器。存储装置控制器包括用来在一段时间内检测SATA接口上的冲突并且对SATA接口上的冲突进行计数的冲突检测器和计数器组件;以及用来检测SATA接口上的工作负载的类型并且当在所述一段时间期间检测的工作负载是只读命令且检测的冲突的数量小于检测的冲突阈值时用来设置对由主机总线适配器通过SATA接口发送到存储装置控制器的命令的最大数量的限制的总线限制器组件。
Description
技术领域
本文中描述的示例通常涉及计算系统的存储装置的输入/输出(I/O)性能。
背景技术
在一些情形下,当串行AT附件(SATA)大容量存储装置被连接到与SATA板载控制器相对的某个主机总线适配器(HBA)时,在高队列深度、4K随机读取QD32性能中可存在有高达25%退化。这个发生是因为HBA独占总线直到它将全部32个命令发送到存储装置为止并且然后放弃总线以等待存储装置响应全部32个命令。这导致效率低地使用总线并且引起随机读取密集型工作负载中的性能退化。
附图说明
图1说明了示例计算平台。
图2说明了通过接口连接到存储装置的HBA和SATA控制器的示例。
图3说明了自适应地控制SATA接口的命令节流(command throttling)的示例流程图。
具体实施方式
如在本公开中所预期的,示出了一种用来在SATA存储装置被耦合到HBA时改进读取性能的方法而不会在存储装置被耦合到SATA板载控制器时降低读取性能。当主机和存储装置想要SATA接口同时进行传送时,传输就绪(XRDY)冲突发生。当存储装置被耦合到HBA时,在SATA接口上很少甚至没有XRDY冲突。在没有XRDY冲突的情况下发送响应之前减少存储装置固件处理的命令的数量减少了主机或存储装置独占SATA接口的时间量,并且因此更高效地使用SATA接口。
图1说明了示例简化计算平台100。如图1中所示出的,计算系统100包括耦合到网络170的计算平台101。在一些示例中,如图1中所示出的,计算平台101经由网络通信信道175并且通过具有连接或者耦合到网络通信信道175的一个或多个端口的网络I/O装置110(例如网络接口控制器(NIC))耦合到网络170。
根据一些示例,如图1中所示出的,计算平台101包括电路系统120、主存储器130(其可以是易失性的)、非易失性存储器(NVM)165、存储器控制器125、网络(NW)I/O装置驱动器140、操作系统(OS)150、一个或多个应用160。在一些示例中,如图1中所示出的,电路系统120经由存储器控制器125通信耦合到主存储器130和NVM 165。在其他示例中,存储器控制器125与处理器电路系统120集成在一起。尽管在图1中没有示出,但在一些示例中,至少部分借助于包括在主存储器130中的一个或多个存储器装置(例如易失性或NVM装置)、NVM165以及诸如处理核122-1到122-m的电路系统120的元件之间的协作来实现操作系统150、NW I/O装置驱动器140或者(一个或多个)应用160,其中“m”是大于2的任何正整数。
在一些示例中,计算平台101可包括但不限于服务器、服务器阵列或服务器群、web服务器、网络服务器、因特网服务器、工作站,小型计算机、大型计算机、个人计算机、智能电话、平板计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统或者其组合。而且,具有处理核122-1至122-m的电路系统120可包括各种市场上可买到的处理器,没有限制地包括Intel®Atom®、Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Itanium®、Pentium®、Xeon®或Xeon Phi®处理器;以及类似的处理器。电路系统120可包括至少一个高速缓冲存储器135以存储数据。在实施例中,电路系统120包括计算平台的主印刷电路板(PCB)或“母板”。
根据一些示例,主存储器130和/或NVM 165由可包括各种类型的易失性和/或非易失性存储器的一个或多个存储器装置或管芯组成。易失性类型的存储器包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(TRAM)或零电容器RAM(ZRAM)。非易失性类型的存储器包括具有包括硫族化物相变材料(例如硫族化物玻璃)的3维(3-D)交叉点存储器结构的字节或块可寻址类型的非易失性存储器,在下文被称为“3-D交叉点存储器”(诸如来自Intel Corporation的市场上可以买到的3D XPointTM)。非易失性类型的存储器还包括其他类型的字节或块可寻址非易失性存储器,诸如但不限于多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻性存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、结合了忆阻器技术的磁阻随机存取存储器(MRAM)、自旋转移力矩MRAM(STT-MRAM)或者上面的任何的组合。在一个示例中,主存储器130是易失性存储器。
计算平台101还包括耦合到至少一个存储装置192的主机总线适配器190。HBA 190是提供计算平台和存储装置之间的输入/输出(I/O)处理和物理连接性的电路系统。因为HBA通常会减轻主机处理器的数据存储和检索任务两者,所以HBA可以改进计算机平台的性能时间。在一个实施例中耦合到外围组件接口快速(PCIe)互连的HBA 190具有多个SATA端口,使得多个SATA兼容存储装置可被连接。计算平台101还包括计算平台101的母板上的SATA控制器191,所述SATA控制器191还可被耦合到(一个或多个)SATA存储装置192。HBA190和SATA控制器191通过SATA接口可以共享访问(一个或多个)存储装置但是无法同时连接到给定的存储装置。
图2说明了通过接口连接到存储装置的HBA 190和SATA控制器191的示例图200。尽管图2中示出了仅一个存储装置,但是HBA 190和SATA控制器191可被耦合到多个存储装置(例如,诸如多个SSD)。在实施例中,包括图1的计算平台101的组件中的至少一些组件的主机201包括HBA 190和SATA控制器191。HBA 190通过SATA接口202与存储装置192耦合。SATA控制器191也通过SATA接口202与存储装置192耦合。在实施例中,存储装置192是固态驱动器(SSD)。在另一实施例中,存储装置192是硬盘驱动器。在其他实施例中,还可使用其他类型的存储装置。存储装置192包括存储装置控制器电路系统212,所述存储装置控制器电路系统212包括用来控制存储装置的操作(例如数据的读和写)的逻辑。存储装置192还包括至少一个存储器204。在实施例中,存储器204由可包括各种类型的易失性和/或非易失性存储器的一个或多个存储器装置或者管芯组成。易失性类型的存储器包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(TRAM)或零电容器RAM(ZRAM)。非易失性类型的存储器包括具有包括硫族化物相变材料(例如硫族化物玻璃)的3维(3-D)交叉点存储器结构的字节或块可寻址类型的非易失性存储器,在下文被称为“3-D交叉点存储器”(诸如来自Intel Corporation的市场上可以买到的3D XPointTM)。非易失性类型的存储器还包括其他类型的字节或块可寻址非易失性存储器,诸如但不限于多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻性存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、结合了忆阻器技术的磁阻随机存取存储器(MRAM)、自旋转移力矩MRAM(STT-MRAM)或者上面的任何的组合。
存储装置控制器212包括用来执行电路系统、固件和/或软件代码以控制SATA接口上的设置限制的总线限制器组件206。正如本领域中已知的,存储装置控制器212包括用来控制从存储器204读取数据和将数据写入存储器204的存储器管理电路系统210。在实施例中,存储装置控制器212还包括冲突检测器和计数器电路系统208。这个组件在规定的一段时间内检测SATA接口202上的冲突并且维护冲突的计数。存储装置控制器212还包括用来维护由存储装置控制器使用来控制如下面图3中示出的操作的计时器的时间计数器207。在图2中示出的示例中,组件206、207、208和210被描绘为存储装置控制器212内的单独的逻辑组件。在其他实施例中,可根据设计要求组合这些组件中的一个或多个组件。
当在板载SATA控制器191后面被使用并且运行随机读取工作负载时可以分析存储装置的读取性能。当存储装置被放置在HBA 190后面时,存储装置的读取性能下降。
在实施例中,在预定的一段时间内检测SATA接口202上传输就绪(XRDY)冲突的数量。如果在预定的时间量中冲突的数量小于预定阈值,则可确定SATA接口(即总线)没有正在被高效地使用。在这种情况下,可由总线限制器206限制要由存储装置控制器接收的、总线上允许的读取命令的数量以提高总线传输效率。这使得计算平台能够在与存储装置通信时在独占总线的HBA上实现改进的读取性能,而不会损害也与存储装置通信的板载SATA控制器的读取性能。本方法不会影响写入工作负载性能。
通过分析当存储装置被连接到SATA板载控制器190时的总线流通量,可以观察到从SATA板载控制器190发送的I/O命令被来自存储装置控制器192的响应交织。这表明主机/存储装置通信正在尽可能高效地使用总线202。在这种情况下,由于主机和存储装置正在几乎同时尝试发送命令,总线上存在有许多冲突。这应当促使主机或存储装置等待,因此影响了性能。通常由存储装置控制器通过在将数据发送出去到主机之前添加轻微的延迟来解决这个问题。这允许主机和存储装置命令的交织并且因此总线被高效地使用。
通过分析当存储装置被连接到HBA 190时的总线流通量,可观察到主机独占总线直到它发送了工作负载的(例如)全部32个命令为止。针对当前的SATA接口202,队列深度是32。这是可以一次在接口上发送的命令的最大数量(SATA接口的未来版本或者其他接口可具有不同的命令最大数量)。存储装置接着独占总线以发送回针对全部32个命令的数据。在这种情况下,由于主机和存储装置没有正在同时尝试使用总线,所以不存在XRDY冲突。由于不存在命令的交织,所以这种情况导致总线正在被效率低地使用。
为了减少其中主机或存储装置正在霸占总线的时间,在实施例中,总线上的命令的数量被限于小于最大数量,(在一个示例中)诸如八个,使得可将来自主机的八个命令与来自存储装置的八个命令交织。这有助于提高总线效率。在一个实施例中,已经将八个命令选为适当的限制,因为使用更低数量将意味着存储装置的队列深度没有正在被适当地使用并且因此性能可被降低。然而,这种“受限的总线模式”无法被连续操作,因为当将存储装置放置在板载SATA控制器上时这降低了性能。因此,需要方法来在正常的操作模式和其中总线上的命令的数量被限制的操作模式之间转换。
以周期性间隔检查总线上的XRDY冲突的数量。这样做以检测存储装置是在HBA190后面还是在板载SATA控制器191后面。这背后的逻辑是当驱动器被连接到HBA时存在有更少的冲突,而当存储装置被连接到SATA板载控制器时,由于存储装置和主机正在同时尝试使用总线,所以存在有更多的冲突。在实施例中,从存储装置控制器212中的、每当在总线上检测到冲突时就计数的冲突检测器和计数器电路系统208中的电路系统(诸如寄存器)获得总线上的冲突的数量。如果冲突的数量小于某个预定的冲突阈值,则要由存储装置控制器接收的、总线上的命令的数量被限制(因为当前正在使用HBA)。在一个实施例中,将阈值设置为八。通过不允许存储装置一次发送针对多于八个主机命令的数据/响应来实施限制。这允许主机发送接下来的八个命令并且因此有助于提高总线效率。如果在给定的时间量中检测到的冲突的数量大于预定的冲突阈值,则存储装置控制器移除总线限制。
图3说明了自适应地控制SATA接口202的命令节流的示例流程图300。默认情况下,在框302处没有总线限制(即,在总线上没有命令的节流)。在框304处,总线限制器206检测总线上的工作负载的类型。工作负载的类型是正在通过总线发送的I/O命令的类型。类型包括在预定的一段时间期间的只读命令、只写命令、或者至少一个读取命令和至少一个写入命令的组合。在框306处,如果检测到的工作负载包括写入命令、或者读和写的组合,则不需要改变总线限制并且处理回到框302。如果当前存在有对总线上的命令的数量的限制,则移除总线限制。如果检测到的工作负载是只读命令,则在框308处由总线限制器206检查时间计数器207。在实施例中,由存储装置控制器使用时间计数器来仅周期性地检查工作负载。例如,在一个实施例中,将时间阈值设置为100毫秒。也可以使用其他时间阈值。如果没有达到时间阈值,则处理等待一段时间并且返回到框304以检测工作负载。如果达到了时间阈值,则处理继续框312,其中由总线限制器206检查由冲突检测器和计数器208存储的当前时间段的总线上的XRDY冲突的数量。如果XRDY冲突的数量不小于检测到的XRDY冲突的预定的冲突阈值,则不需要改变总线限制(正在使用SATA控制器),在框310处重置冲突计数器并且处理回到框302。然而,如果XRDY冲突的数量小于检测到的XRDY冲突的检测的冲突阈值,则在框311处重置冲突计数器并且在框314处限制要由存储装置控制器接收的、总线上允许的命令的数量。处理在框308处继续另一时间检查。
可通过各种类型的通信介质来将存储装置192和/或计算平台101的各种组件通信耦合到彼此以协调操作。协调可涉及信息的单向或双向交换。例如,组件可以以通过通信介质传递的信号的形式来传递信息。可将信息实现为分配给各种信号线的信号。在这样的分配中,每个消息是信号。然而,进一步的实施例可备选地采用数据消息。可跨各种连接发送这样的数据消息。示例连接包括并行接口、串行接口和总线接口。
应当意识到,图中示出的示范计算平台和存储装置可表示许多潜在实现的一个功能描述性示例。因此,附图中描绘的块功能的划分、省略或包含并不会推断出在实施例中将必定划分、省略或包括用于实现这些功能的硬件组件、电路、软件和/或元件。
可通过存储在至少一个机器可读介质上的代表性指令来实现至少一个示例的一个或多个方面,所述代表性指令代表处理器内的各种逻辑,所述代表性指令在被机器、计算装置或系统读取时促使机器、计算装置或系统制造用来执行本文中描述的技术的逻辑。被称为“IP核”的这样的表示可被存储在有形的机器可读介质上并且被提供给各种客户或制造设施以加载进实际制作逻辑或处理器的制造机器。
可使用硬件元件、软件元件或者两者的组合来实现各种示例。在一些示例中,硬件元件可包括装置、组件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路,ASIC,可编程逻辑器件(PLD)、数字信号处理器(DSP)、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片,微芯片,芯片组等等。在一些示例中,软件元件可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集,计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。正如对于给定的实现所期望的,确定是否使用硬件元件和/或软件元件来实现示例可根据诸如期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束的任何数量的因子而变化。
一些示例可包括制品或至少一个计算机可读介质。计算机可读介质可包括用来存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。在一些示例中,逻辑可包括各种软件元件,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
可使用表达“在一个示例中”或“示例”连同它们的派生词来描述一些示例。这些术语意味着与示例有关地描述的特定特征、结构或特性被包括在至少一个示例中。在说明书中的各个位置中出现短语“在一个示例中”不一定全都指相同的示例。
本文中包括了表示用于执行公开的体系结构的新颖方面的多套示例方法的逻辑流或方案。虽然为了简化解释的目的,本文中示出的一套或多套方法被示出并且被描述为一系列动作,但是本领域技术人员将会理解并且意识到,多套方法不会被动作的顺序限制。据此,一些动作可以以不同的顺序发生和/或与来自本文中示出和描述的其他动作同时发生。例如,本领域技术人员将会理解并且意识到,一套方法可备选地被表示为诸如状态图中的一系列相互关联的状态或事件。此外,并非一套方法中说明的所有动作对于新颖实现来说都可能是必需的。
可在软件、固件和/或硬件中实现逻辑流或方案。在软件和固件实施例中,可通过存储在诸如光、磁或半导体存储设备的至少一个非暂时性计算机可读介质或机器可读介质上的计算机可执行指令来实现逻辑流或方案。实施例并不限于这个上下文。
可使用表达“被耦合”和“被连接”连同它们的派生词来描述一些示例。这些术语不一定打算作为彼此的同义词。例如,使用术语“被连接”和/或“被耦合”的描述可指示两个或多于两个元件彼此直接物理或电接触。然而,术语“被耦合”还可指两个或多于两个元件不是彼此直接接触,但是仍然还是彼此协作或者交互。
要强调的是,提供了公开的摘要以符合要求将允许读者快速确定技术公开的性质的摘要的37 C.F.R.第1.72(b)节。提交它时的理解是,它将不被用于解释或者限制权利要求的范围或含义。另外,在前面的具体实施方式中,可以看到为了精简公开的目的,在单个示例中将各种特征组合在一起。公开的这个方法不应被解释为反映请求保护的示例要求比在每个权利要求中明确记载的更多特征的意图。相反,正如下面的权利要求所反映的,发明主题在于少于单个公开的示例的全部特征。因此,下面的权利要求据此被并入具体实施方式中,其中每个权利要求独立自主地作为单独的示例。在所附的权利要求中,术语“包含”和“在其中”分别被用作相应术语“包括”和“其中”的通俗英语等同物。此外,术语“第一”、“第二”、“第三”等仅被用作标记并且并不是用来对它们的对象施加数字要求。
尽管已经用特定于结构特征和/或方法动作的语言描述了本主题,但是要理解,在所附的权利要求中限定的主题不一定限于上面描述的具体特征或动作。相反,上面描述的具体特征和动作作为实现权利要求的示例形式而被公开。
示例1提供了一种设备,所述设备包括:
存储装置控制器,所述存储装置控制器通过SATA接口被耦合到主机总线适配器和SATA控制器,所述存储装置控制器包括:
冲突检测器和计数器组件,所述冲突检测器和计数器组件用来在一段时间内检测所述SATA接口上的冲突并且对所述SATA接口上的冲突进行计数;以及
总线限制器组件,所述总线限制器组件用来检测所述SATA接口上的工作负载的类型并且当在所述一段时间期间检测的工作负载是只读命令且检测的冲突的数量小于检测的冲突阈值时用来设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
示例2包括示例1所述的设备,所述总线限制器用来在所述检测的工作负载不是只读命令时移除所述限制。
示例3包括示例1所述的设备,所述总线限制器用来在所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
示例4包括示例1所述的设备,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
示例5包括示例1所述的设备,所述总线限制器用来在预定的一段时间已经过去时重置所述冲突检测器和计数器。
示例6包括示例1所述的设备,其中对所述命令的最大数量的所述限制小于所述SATA接口的队列深度。
示例7提供了一种存储装置,所述存储装置包括:
存储器;以及
存储装置控制器,所述存储装置控制器被耦合到所述存储器并且通过SATA接口被耦合到主机总线适配器和SATA控制器,所述存储装置控制器包括:
冲突检测器和计数器组件,所述冲突检测器和计数器组件用来在一段时间内检测所述SATA接口上的冲突并且对所述SATA接口上的冲突进行计数;以及
总线限制器组件,所述总线限制器组件用来检测所述SATA接口上的工作负载的类型并且当在所述一段时间期间检测的工作负载是只读命令且检测的冲突的数量小于检测的冲突阈值时用来设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
示例8包括示例7所述的存储装置,所述总线限制器用来在所述检测的工作负载不是只读命令时移除所述限制。
示例9包括示例7所述的存储装置,所述总线限制器用来在所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
示例10包括示例7所述的存储装置,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
示例11包括示例7所述的存储装置,所述总线限制器用来在预定的一段时间已经过去时重置所述冲突检测器和计数器。
示例12包括示例7所述的存储装置,其中对所述命令的最大数量的所述限制小于所述SATA接口的队列深度。
示例13包括示例7所述的存储装置,所述存储器包括NAND存储器。
示例14提供了一种方法,所述方法包括:
在一段时间内检测SATA接口上的冲突并且对SATA接口上的冲突进行计数,所述SATA接口将主机总线适配器和SATA控制器耦合到存储装置的存储装置控制器;
检测所述SATA接口上的工作负载的类型;以及
当在所述一段时间期间检测的工作负载是只读命令并且检测的冲突的数量小于检测的冲突阈值时,设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
示例15包括示例14所述的方法,包括在所述检测的工作负载不是只读命令时移除所述限制。
示例16包括示例14所述的方法,包括在所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
示例17包括示例14所述的方法,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
示例18包括示例14所述的方法,包括在预定的一段时间已经过去时重置所述冲突检测器计数。
Claims (20)
1.一种设备,所述设备包括:
存储装置控制器,所述存储装置控制器通过SATA接口被耦合到主机总线适配器和SATA控制器,所述存储装置控制器包括:
冲突检测器和计数器组件,所述冲突检测器和计数器组件用来在一段时间内检测所述SATA接口上的冲突并且对所述SATA接口上的冲突进行计数;以及
总线限制器组件,所述总线限制器组件用来检测所述SATA接口上的工作负载的类型并且当在所述一段时间期间检测的工作负载是只读命令且检测的冲突的数量小于检测的冲突阈值时用来设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
2.如权利要求1所述的设备,所述总线限制器用来在所述检测的工作负载不是只读命令时移除所述限制。
3.如权利要求1所述的设备,所述总线限制器用来在所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
4.如权利要求1所述的设备,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
5.如权利要求1所述的设备,所述总线限制器用来在预定的一段时间已经过去时重置所述冲突检测器和计数器。
6.如权利要求1所述的设备,其中对所述命令的最大数量的所述限制小于所述SATA接口的队列深度。
7.一种存储装置,所述存储装置包括:
存储器;以及
存储装置控制器,所述存储装置控制器被耦合到所述存储器并且通过SATA接口被耦合到主机总线适配器和SATA控制器,所述存储装置控制器包括:
冲突检测器和计数器组件,所述冲突检测器和计数器组件用来在一段时间内检测所述SATA接口上的冲突并且对所述SATA接口上的冲突进行计数;以及
总线限制器组件,所述总线限制器组件用来检测所述SATA接口上的工作负载的类型并且当在所述一段时间期间检测的工作负载是只读命令且检测的冲突的数量小于检测的冲突阈值时用来设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
8.如权利要求7所述的存储装置,所述总线限制器用来在所述检测的工作负载不是只读命令时移除所述限制。
9.如权利要求7所述的存储装置,所述总线限制器用来在所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
10.如权利要求7所述的存储装置,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
11.如权利要求7所述的存储装置,所述总线限制器用来在预定的一段时间已经过去时重置所述冲突检测器和计数器。
12.如权利要求7所述的存储装置,其中对所述命令的最大数量的所述限制小于所述SATA接口的队列深度。
13.如权利要求7所述的存储装置,所述存储器包括NAND存储器。
14.一种方法,所述方法包括:
在一段时间内检测SATA接口上的冲突并且对SATA接口上的冲突进行计数,所述SATA接口将主机总线适配器和SATA控制器耦合到存储装置的存储装置控制器;
检测所述SATA接口上的工作负载的类型;以及
当在所述一段时间期间检测的工作负载是只读命令并且检测的冲突的数量小于检测的冲突阈值时,设置对由所述存储装置控制器通过所述SATA接口接收的命令的最大数量的限制。
15.如权利要求14所述的方法,包括当所述检测的工作负载不是只读命令时移除所述限制。
16.如权利要求14所述的方法,包括当所述检测的冲突的数量不小于所述检测的冲突阈值时移除所述限制。
17.如权利要求14所述的方法,所述冲突包括所述SATA接口上的一个或多个传输就绪(XRDY)冲突。
18.如权利要求14所述的方法,包括当预定的一段时间已经过去时重置所述冲突检测器计数。
19.至少一种机器可读介质,所述至少一种机器可读介质包括响应于被系统执行而促使所述系统执行根据权利要求14至18中的任一项所述的方法的多个指令。
20.一种设备,所述设备包括用于执行如权利要求14至18中的任一项所述的方法的部件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/046,850 US10452574B2 (en) | 2018-07-26 | 2018-07-26 | Read performance on a SATA storage device behind a host bus adapter |
US16/046850 | 2018-07-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110780803A true CN110780803A (zh) | 2020-02-11 |
Family
ID=65229633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910559455.XA Pending CN110780803A (zh) | 2018-07-26 | 2019-06-26 | 改进主机总线适配器后面的sata存储装置上的读取性能 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10452574B2 (zh) |
EP (1) | EP3599554B1 (zh) |
CN (1) | CN110780803A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11822793B2 (en) * | 2022-04-04 | 2023-11-21 | Western Digital Technologies, Inc. | Complete and fast protection against CID conflict |
US20230362084A1 (en) * | 2022-05-09 | 2023-11-09 | Mellanox Technologies, Ltd. | Rational value rate limiter |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094436A (en) * | 1997-02-14 | 2000-07-25 | Advanced Micro Devices, Inc. | Integrated multiport switch having shared media access control circuitry |
US7110419B1 (en) * | 2001-04-11 | 2006-09-19 | Cisco Technology, Inc. | Technique for using address filter parameters to facilitate sign-on procedures in access networks |
TWI290303B (en) * | 2003-06-20 | 2007-11-21 | Sunplus Technology Co Ltd | RFID communication system and search method thereof |
US7827320B1 (en) * | 2008-03-28 | 2010-11-02 | Western Digital Technologies, Inc. | Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state |
US8838691B2 (en) * | 2012-06-29 | 2014-09-16 | International Business Machines Corporation | Data de-duplication in service oriented architecture and web services environment |
US10031859B2 (en) * | 2016-06-22 | 2018-07-24 | Arista Networks, Inc. | Pulse counters |
-
2018
- 2018-07-26 US US16/046,850 patent/US10452574B2/en active Active
-
2019
- 2019-06-19 EP EP19181401.1A patent/EP3599554B1/en active Active
- 2019-06-26 CN CN201910559455.XA patent/CN110780803A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3599554B1 (en) | 2021-05-12 |
EP3599554A1 (en) | 2020-01-29 |
US10452574B2 (en) | 2019-10-22 |
US20190042493A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10156994B2 (en) | Methods and systems to reduce SSD IO latency | |
US20170249191A1 (en) | Adjustable priority ratios for multiple task queues | |
US20150212738A1 (en) | Methods and apparatuses for executing a plurality of queued tasks in a memory | |
US10444722B2 (en) | Techniques to direct access requests to storage devices | |
CN105340017A (zh) | 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制 | |
US11449443B2 (en) | Identification and classification of write stream priority | |
JP2016514320A (ja) | メモリシステム | |
US11681553B2 (en) | Storage devices including heterogeneous processors which share memory and methods of operating the same | |
KR20170092536A (ko) | 다수의 순차적 기입 스트림을 관리하는 기술 | |
US20140068125A1 (en) | Memory throughput improvement using address interleaving | |
US10372338B2 (en) | Memory controller and data processing circuit with improved system efficiency | |
US20190042089A1 (en) | Method of improved data distribution among storage devices | |
CN115359821A (zh) | 用于存储器芯片行锤威胁背压信号和主机侧响应的方法和装置 | |
DE112020005044T5 (de) | Zonenanhang-befehlsplanung basierend auf zonenzustand | |
US20190354483A1 (en) | Controller and memory system including the same | |
CN110780803A (zh) | 改进主机总线适配器后面的sata存储装置上的读取性能 | |
EP3462327A2 (en) | Systems, methods and apparatus for memory access and scheduling | |
US20170371785A1 (en) | Techniques for Write Commands to a Storage Device | |
US11431565B2 (en) | Dynamic traffic-aware interface queue switching among processor cores | |
US20190042443A1 (en) | Data acquisition with zero copy persistent buffering | |
CN110720126B (zh) | 传输数据掩码的方法、内存控制器、内存芯片和计算机系统 | |
KR20210011010A (ko) | 가상화를 위한 프로세서 피쳐 id 응답 | |
CN112513824A (zh) | 一种内存交织方法及装置 | |
KR20210108487A (ko) | 저장 디바이스 동작 오케스트레이션 | |
CN110618877A (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 |