CN115248795A - 高速外围组件互连(pcie)接口系统及其操作方法 - Google Patents
高速外围组件互连(pcie)接口系统及其操作方法 Download PDFInfo
- Publication number
- CN115248795A CN115248795A CN202210005338.0A CN202210005338A CN115248795A CN 115248795 A CN115248795 A CN 115248795A CN 202210005338 A CN202210005338 A CN 202210005338A CN 115248795 A CN115248795 A CN 115248795A
- Authority
- CN
- China
- Prior art keywords
- command
- nvme
- nvme device
- host memory
- host
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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
- 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
- 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/0026—PCI express
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)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请涉及一种高速外围组件互连(PCIe)接口系统,包括PCIe接口装置、主机以及通过PCIe接口装置连接到主机的高速非易失性存储器(NVMe)装置。主机包括:主机存储器,被配置为存储关于待在NVMe装置上运行的命令以及已经在NVMe装置上运行的命令的信息;以及NVMe驱动器,被配置为将待在NVMe装置上运行的命令发送到主机存储器,并将门铃信号输出到NVMe装置,该门铃信号指示待在NVMe装置上运行的命令已经存储在主机存储器中。NVMe装置请求主机存储器寄存轻量级通知(LN),该LN指示待在NVMe装置上运行的命令所存储的位置。
Description
相关申请的交叉引用
本专利文件要求于2021年4月13日提交的申请号为10-2021-0048080的韩国专利申请以及2021年6月1日提交的申请号为10-2021-0070686的韩国专利申请的优先权和权益,这两件韩国专利申请通过引用整体并入本文。
技术领域
本专利文件中公开的技术和实施方案涉及一种电子装置,并且更具体地,涉及一种PCIe接口系统及其操作方法。
背景技术
高速外围组件互连(PCIe)是用于数据通信的接口串行结构。基于PCIe的存储装置支持多端口和多功能。基于PCIe的存储装置可以是虚拟化的和非虚拟化的,并且可以通过一种或多种PCIe功能来实现主机I/O命令的服务质量(QoS)。
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括存储数据的存储器装置以及控制存储器装置的存储器控制器。存储器装置划分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供电时才存储数据并且在供电切断时会丢失所存储的数据的装置。易失性存储器装置包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使电力被切断也不会丢失数据的装置。非易失性存储器装置包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器等。
发明内容
所公开技术的各个实施例提供了一种PCIe接口系统及其操作方法,其通过寄存PCIe轻量级通知(Lightweight Notification,LN)并预获取命令来减少获取命令的时间。
根据本公开的实施例,一种高速外围组件互连(PCIe)接口系统可以包括PCIe接口装置、主机以及通过PCIe接口装置连接到主机的高速非易失性存储器(NVMe)装置。主机可以包括:主机存储器,被配置为存储关于待在NVMe装置上运行的命令以及已经在NVMe装置上运行的命令的信息;以及NVMe驱动器,被配置为将待在NVMe装置上运行的命令发送到主机存储器,并将门铃信号输出到NVMe装置,该门铃信号指示待在NVMe装置上运行的命令已经存储在主机存储器中。NVMe装置被配置为请求主机存储器寄存轻量级通知(LN)寄存,该LN寄存指示待在NVMe装置上运行的命令所存储的位置。
根据本公开的实施例,一种操作系统的方法可以包括:由系统请求高速外围组件互连(PCIe)轻量级通知(LN)寄存,该系统包括具有主机存储器的主机以及通过PCIe接口装置连接到主机的高速非易失性存储器(NVMe)装置,该LN寄存指示待在NVMe装置上运行的命令存储在系统中包括的主机存储器内的位置;寄存LN;以及将待在NVMe装置上运行的命令存储在主机存储器中。
根据本技术,提供了一种PCIe接口系统及其操作方法,其通过寄存PCIe轻量级通知(LN)并预获取命令来减少获取命令的时间。
附图说明
图1是示出基于所公开技术的一些实施方案的高速外围组件互连(PCIe)接口系统的框图的示例。
图2是示出基于所公开技术的一些实施方案的PCIe接口装置中包括的配置之间的数据包传输的示图的示例。
图3是示出基于所公开技术的一些实施方案的NVMe中的命令处理的示例的示图。
图4是示出图3的命令处理的示例的示图。
图5是示出基于所公开技术的一些实施方案的通过LN执行的命令处理的示例的示图。
图6是示出基于所公开技术的一些实施方案的LN的示例的示图。
图7是示出基于所公开技术的一些实施方案的LN寄存的示例的示图。
图8是示出基于所公开技术的一些实施方案的LN寄存之后的命令预获取和命令获取的示例。
图9是示出基于所公开技术的一些实施方案的低功率状态结束时的延迟的示图。
图10是示出基于所公开技术的一些实施方案的通过LN寄存结束低功率状态的示图。
图11是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
图12是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
图13是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
具体实施方式
图1是示出高速外围组件互连(PCIe)接口系统的框图。
参照图1,图1的PCIe接口装置100可以包括中央处理单元110、根联合体120、存储器130、交换机140、PCIe端点150_1和150_2以及传统端点160_1和160_2。另外,图1的主机300可以包括主机内部结构310、主机处理器320、主机存储器330和NVMe驱动器340。
在图1中,根联合体120可以通过链路LINK连接到交换机140。另外,交换机140可以通过链路LINK连接到PCIe端点150_1和150_2以及传统端点160_1和160_2中的每一个。链路LINK可以配置有至少一个通道。
在实施例中,根联合体120可以将中央处理单元110和存储器130连接到I/O层级。根联合体120可以支持PCIe端口。因此,根联合体120可以支持根端口,该根端口可以连接到输入/输出(I/O)装置。
另外,根联合体120可以支持PCIe接口装置100中包括的每个配置的层级之间的路由。路由可以包括在数据通信中选择从发送侧到接收侧的路径的操作。可以基于预先设置从发送侧到接收侧的路径或者根据系统或网络的状态选择最有效路径的方法中的任何一种来执行路由。
在一些实施方案中,根联合体120可以支持输入/输出请求。根联合体120需要支持生成配置请求。不允许根联合体120作为完成器支持锁定语义。根联合体120可以作为请求器请求生成锁定请求。
在实施例中,根联合体120可以在路由期间将在层级之间传输的数据包划分为更小的单元。另外,根联合体120可以生成输入/输出请求。
在实施例中,交换机140可以配置有两个或更多个逻辑PCI到PCI桥。两个或更多个逻辑PCI到PCI桥中的每一个可以连接到上游端口或下游端口。
交换机140可以使用PCI桥机制(基于地址的多播方法)来传输事务。此时,交换机140需要能够通过上游端口和下游端口传输所有类型的事务层数据包(TLP)。另外,交换机140需要支持锁定的请求。所启用的交换机140的每个端口必须能够支持流量控制。当在同一虚拟信道中发生竞争时,交换机140可以以轮询法或加权轮询法进行仲裁。
在实施例中,与根联合体120不同,交换机140可以不将在层级之间传输的数据包划分为更小的单元。
在实施例中,PCIe端点150_1和150_2以及传统端点160_1和160_2可以用作PCIe事务的请求器或完成器。由PCIe端点150_1和150_2以及传统端点160_1和160_2发送和接收的TLP必须提供配置空间报头。另外,PCIe端点150_1和150_2以及传统端点160_1和160_2必须作为完成器提供配置请求。
在实施例中,PCIe端点150_1和150_2以及传统端点160_1和160_2可以根据存储器事务的大小进行区分。例如,当存储器事务可能超过4GB时,端点可能是PCIe端点150_1和150_2,当存储器事务不可能超过4GB时,端点可能是传统端点160_1和160_2。PCIe端点150_1和150_2可不生成输入/输出请求,但传统端点160_1和160_2可以提供或生成输入/输出请求。
在实施例中,PCIe端点150_1和150_2或传统端点160_1和160_2可以向交换机140发送TLP以及从交换机140接收TLP。
在实施例中,交换机140可以将从PCIe端点150_1和150_2或传统端点160_1和160_2接收的TLP发送到根联合体120。
在实施例中,根联合体120可以通过交换机140向PCIe端点150_1和150_2或传统端点160_1和160_2发送TLP以及从PCIe端点150_1和150_2或传统端点160_1和160_2接收TLP。根联合体120可以将从PCIe端点150_1和150_2或传统端点160_1和160_2接收的TLP发送到中央处理单元110或存储器130。
在实施例中,主机300中包括的主机处理器320和主机存储器330可以通过主机内部结构310连接到根联合体120。
在实施例中,主机处理器320可以控制待对连接到PCIe端点150_1和150_2或传统端点160_1和160_2中的每一个的高速非易失性存储器(NVMe)装置执行的写入操作或读取操作。在一些实施方案中,NVMe装置可以是固态驱动器(SSD)或包括固态驱动器(SSD)。另外,主机处理器320可以将控制待对NVMe装置执行的写入操作或读取操作所需的信息存储在主机存储器330中。
在实施例中,NVMe驱动器340可以连接到中央处理单元110并允许主机300通过PCIe接口装置100控制NVMe装置。
图2是示出PCIe接口装置中包括的配置之间的数据包传输的示图。
参照图1和图2,图2的PCI组件PCI COMPONENT 1和2可以是图1的根联合体120、交换机140、PCIe端点150_1和150_2以及传统端点160_1和160_2中的任何一个。图2的PCI组件PCI COMPONENT 1和2可以是通过链路LINK连接的组件中的任何一个。链路LINK可以配置有至少一个通道。
在实施例中,PCI组件PCI COMPONENT 1和2可以通过链路LINK发送和接收数据包PACKET。PCI组件PCI COMPONENT 1和2中的每一个可以作为发送数据包PACKET的发送器(Transmitter,TX)或接收数据包PACKET的接收器(Receiver,RX)进行操作。
在实施例中,数据包PACKET可以是包括选择性TLP前缀、报头和数据有效载荷的信息传输单元。
在实施例中,不需要被高速缓存的数据包PACKET不被监听,从而减少延迟。当事务之间不存在依赖性时,可以通过改变排序来提高数据包PACKET的操作性能。另外,可以通过改变基于ID的排序来提高数据包PACKET的操作性能。
图3是示出NVMe中的命令处理的示图。
参照图1和图3,图3示出了通过图1的主机300中包括的NVMe驱动器340和主机存储器330在连接到PCIe端点150_1和150_2或传统端点160_1和160_2中的每一个的NVMe装置上运行命令的过程。NVMe装置可以包括NVMe控制器500。在图3中,主机存储器330可以包括提交队列(SUBMISSION QUEUE,SQ)和完成队列(COMPLETION QUEUE,CQ)。
在实施例中,NVMe驱动器340可以将待在NVMe装置上运行的命令COMMAND发送到提交队列。提交队列可以将从NVMe驱动器340接收的命令排队。例如,主机存储器330可以将接收到的命令从提交队列的队头(Head)到队尾(Tail)顺序地排队。
当命令COMMAND在提交队列中排队时,NVMe驱动器340可以向NVMe控制器500输出提交队列队尾门铃信号。NVMe控制器500可以接收提交队列队尾门铃信号并将提交队列队尾条目指针存储在寄存器中。此处,提交队列队尾条目指针可以是指示在提交队列中排队的命令之中的、在提交队列的队尾部分中排队的命令的指示符。NVMe控制器500可以将提交队列队尾条目指针存储在寄存器中以识别从主机存储器330输出的新命令。
此后,NVMe控制器500可以从主机存储器330获取命令。NVMe控制器500可以接收在提交队列中排队的命令。NVMe控制器500可以执行与接收到的命令相对应的操作。
在实施例中,在NVMe控制器500执行对应于命令的操作之后,完成队列条目可以被发送到主机存储器330。完成队列条目可以包括关于NVMe控制器500最近运行的命令的信息。主机存储器330可以将接收到的完成队列条目在完成队列中排队。例如,主机存储器330可以将接收到的完成队列条目从完成队列的队头到队尾顺序地排队。
此后,NVMe控制器500可以向NVMe驱动器340输出中断信号。中断信号可以是指示完成队列条目已经在完成队列中排队的信号。
当接收到中断信号时,NVMe驱动器340可以基于完成队列的完成队列条目来执行操作。当NVMe驱动器340完成操作时,NVMe驱动器340可以向NVMe控制器500输出完成队列队头门铃信号。NVMe控制器500可以接收完成队列队头门铃信号并将完成队列队头条目指针存储在寄存器中。此处,完成队列队头条目指针可以是指示在完成队列中排队的条目之中的、在完成队列的队头部分中排队的条目的指示符。NVMe控制器500可以将完成队列队头条目指针存储在寄存器中以识别相应操作已经完成的命令。
图4是示出图3的命令处理的示图。
图4示出了NVMe驱动器340、主机存储器330和SSD的操作。SSD对应于连接到图3的PCIe端点150_1和150_2或传统端点160_1和160_2的NVMe装置中的一个。
在图4中,非DMA(Non-Direct Access Memory,非直接存取存储器)操作可以指由图1的中央处理单元110执行的操作,DMA(Direct Access Memory,直接存取存储器)操作可以指在没有图1的中央处理单元110的干预的情况下独立执行的操作。
在实施例中,NVMe驱动器340将待在SSD上运行的命令COMMAND输出到主机存储器330,并且主机存储器330可以将接收到的命令从提交队列的队头到队尾顺序地排队。
此后,NVMe驱动器340可以向SSD输出SQ门铃信号。SQ门铃信号可以是与图3的提交队列队尾门铃信号相同的信号。也就是说,NVMe驱动器340可以向SSD输出SQ门铃信号,从而识别从主机存储器330输出的新命令。
在实施例中,SSD可以从主机存储器330获取命令。也就是说,SSD可以从主机存储器330接收在提交队列中排队的命令并执行与接收到的命令相对应的操作。当SSD完成与从主机存储器330接收到的命令相对应的操作时,SSD可以向主机存储器330输出完成信号。
此后,NVMe驱动器340和SSD可以在没有图1的中央处理单元110的干预的情况下独立地执行DMA操作。
在实施例中,在SSD执行与命令相对应的操作之后,可以更新主机存储器330的完成队列(完成队列更新,CQ UPDATE)。也就是说,在SSD执行与命令相对应的操作之后,可以将完成队列条目发送到主机存储器330,并且主机存储器330可以将接收到的完成队列条目从完成队列的队头到队尾顺序地排队。
此后,SSD可以向NVMe驱动器340输出中断信号。中断信号可以是指示完成队列条目在完成队列中排队的信号。
在实施例中,当NVMe驱动器340基于完成队列的完成队列条目执行的操作完成时,NVMe驱动器340可以向SSD输出CQ门铃信号。CQ门铃信号可以是与图3的完成队列队头门铃信号相同的信号。也就是说,NVMe驱动器340可以向SSD输出CQ门铃信号,从而识别操作完成的命令。
此后,NVMe驱动器340可以将待在SSD上运行的新命令COMMAND输出到主机存储器330,并将SQ门铃信号输出到SSD从而识别从主机存储器330输出的新命令。
在上述操作之中,除DMA操作之外的操作可以是非DMA操作。参照图4,应注意,非DMA操作执行得比DMA操作多。由于处理非DMA操作需要更多时间,因此需要一种可以减少处理非DMA操作的时间的实施方案。为了减少非DMA操作所消耗的时间,下面将讨论通过轻量级通知(LN)来执行非DMA操作的方法。
图5是示出通过LN执行的命令处理的示图。
图5示出了图4的NVMe驱动器340、主机存储器330和SSD基于PCIe轻量级通知(LN)的操作。LN可以指示主机存储器330的特定地址并且可以被包括在事务层数据包(TLP)的报头中。另外,LN可以寄存在图1的根联合体120的高速缓存行中。
在图5中,非DMA操作是指由图1的中央处理单元110执行的操作,DMA操作可以指在没有图1的中央处理单元110的干预的情况下独立执行的操作。
在实施例中,SSD可以将LN寄存在图1的根联合体120的高速缓存行和主机存储器330中。此时,LN可以指示命令在主机存储器330中排队的位置。
当LN被寄存在图1的根联合体120的高速缓存行和主机存储器330中时,NVMe驱动器340可以将待在SSD上运行的命令输出到主机存储器330,并且主机存储器330可以将接收到的命令从提交队列的队头到队尾顺序地排队。
在实施例中,当命令COMMAND在主机存储器330中排队时,主机存储器330可以向SSD输出LN消息。LN消息可以指示命令COMMAND在主机存储器330中排队的位置。当命令COMMAND排队的位置改变时,主机存储器330可以通过LN消息向SSD输出改变后的位置。
在实施例中,SSD可以预获取命令(命令预获取,COMMAND PRE-FETCH)。例如,SSD可以从主机存储器330接收在提交队列中排队的命令。在提交队列中排队的命令可以在NVMe驱动器340输出SQ门铃信号之前被更新,并且主机存储器330可以在SQ门铃信号被输出之前向SSD输出LN消息。因此,SSD可以通过预获取命令来预先准备命令的运行。此外,由于命令信息存储在图1的根联合体120的高速缓存行中,因此可以快速地获取命令以提高SSD的操作速度。
此后,NVMe驱动器340可以向SSD输出SQ门铃信号。SQ门铃信号可以是与图3的提交队列队尾门铃信号相同的信号。NVMe驱动器340可以向SSD输出SQ门铃信号,从而识别从主机存储器330输出的新命令。SSD可以基于SQ门铃信号执行与预获取的命令相对应的操作。
在接收到SQ门铃信号之后,SSD可以从主机存储器330获取命令(命令获取,COMMAND FETCH)。当SSD获取命令时,可以释放LN寄存。SSD可以基于预获取的命令和获取的命令的比较结果来执行操作。
例如,当预获取的命令和获取的命令相同时,SSD可以继续执行与预获取的命令相对应的操作。然而,当预获取的命令和获取的命令不同时,SSD可以停止与预获取的命令相对应的操作,并执行与获取的命令相对应的操作。
当SSD完成与从主机存储器330接收的命令相对应的操作时,SSD可以向主机存储器330输出完成信号。
在实施例中,SSD从主机存储器330获取命令的操作以及将完成信号输出到主机存储器330的操作可以是通过图1的中央处理单元110执行的非DMA操作。由于上述非DMA操作是在DMA操作之间执行的操作,因此可以提高数据输入/输出的随机性能。输入/输出随机性能可以意味着每个命令的特定大小的数据的随机性能。
此后,SSD可以寄存指示下一个命令在图1的根联合体120的高速缓存行和主机存储器330中排队的位置的LN。
在实施例中,在SSD执行与命令相对应的操作之后,可以更新主机存储器330的完成队列(CQ更新,CQ UPDATE)。在CQ UPDATE之后,SSD可以向NVMe驱动器340输出指示完成队列条目已经在完成队列中排队的中断信号。当NVMe驱动器340响应于中断信号基于完成队列的完成队列条目而执行的操作完成时,NVMe驱动器340可以向SSD输出CQ门铃信号。
在实施例中,NVMe驱动器340可以进一步执行将待在SSD上运行的命令COMMAND输出到主机存储器330的操作。
因此,通过将LN寄存在主机存储器330中并预获取命令,可以缩短取获取命令的时间并且可以提高SSD的输入/输出随机性能。
图6是示出LN的示图。
图6示出了TLP报头的一部分。
在实施例中,TLP报头可以包括0至3字节(BYTE),每个BYTE可以包括0至8位(BIT)。TLP报头的0至3BYTE中可以包括各种信息。
在实施例中,TLP报头的0BYTE可以包括指示TLP格式的格式(FMT)信息以及指示TLP类型的类型(TYPE)信息。例如,FMT信息可以包括在0BYTE的7至5BIT中,TYPE信息可以包括在0BYTE的4至0BIT中。
在实施例中,LN信息可以包括在TLP报头的1BYTE的1BIT中。LN可以是支持在高速缓存行更新时通过硬件机制通知端点的协议。当1BYTE的1BIT为“1”时,LN信息可以指示操作完成。
参照图5,在NVMe驱动器340向主机存储器330输出命令之前,LN可以被寄存在主机存储器330中。此时,TLP报头的1BYTE的1BIT可以被设置为“1”。也就是说,在NVMe驱动器340向SSD输出SQ门铃信号之前,命令排队的位置可以被进行LN寄存,当SSD接收到LN消息时,SSD可以预获取在主机存储器330中排队的命令。
此后,当NVMe驱动器340向SSD输出SQ门铃信号时,SSD再次获取命令时,TLP报头的1BYTE的1BIT可以被设置为“0”,并且LN寄存可以被释放。
图7是示出LN寄存的示图。
图7示出了图1的主机300、中央处理单元110、根联合体120、交换机140以及连接到PCIe端点150_1和150_2以及传统端点160_1和160_2中的任何一个的NVMe装置150。在一些实施方案中,NVMe装置150可以是SSD。
在实施例中,当主机300向NVMe装置150发送命令时,主机300可以将命令信息存储在图1的主机存储器330中,然后将SQ门铃信号发送到NVMe装置150。此时,命令信息存储在图1的主机存储器330中的地址可以固定。在所公开技术的一些实施方案中,该地址可以LN寄存在图1的主机300和根联合体120的高速缓存行CACHE LINE中(LN寄存,LN REGISTER)。
在实施例中,在主机300向NVMe装置150发送命令之前,LN可以被寄存。当LN被寄存时,主机300可以将命令信息存储在图1的主机存储器330中并且同时将LN消息输出到NVMe装置150。因此,主机300可以通过LN消息通知NVMe装置150命令信息在图1的主机存储器330中被更新。此后,主机300可以向NVMe装置150输出SQ门铃信号。
因此,通过在主机300向NVMe装置150输出SQ门铃信号之前输出LN消息,NVMe装置150可以预先检查新命令的出现。
图8是示出在LN寄存之后的命令预获取和命令获取的示图。
图8示出了在如图7讨论的主机300将LN消息输出到NVMe装置150之后的操作。
在实施例中,NVMe装置150可以在接收SQ门铃信号之前预获取存储在图1的主机存储器330中的命令。具体地,NVMe装置150可以通过图1的根联合体120的高速缓存行CACHELINE来预获取命令。NVMe装置150可以基于LN消息检查是否生成新命令,并且在接收SQ门铃信号之前预获取存储在图1的主机存储器330中的命令。
在实施例中,通过预获取存储在图1的主机存储器330中的命令,可以减少获取命令所消耗的时间。因此,可以提高输入/输出随机性能。输入/输出随机性能可以意味着每个命令的特定大小的数据的随机性能。
另外,在这种情况下,在接收SQ门铃信号之后,NVMe装置150可以再次获取存储在图1的主机存储器330中的命令(命令获取,COMMAND FETCH)。
在实施例中,当预获取的命令和获取的命令相同时,NVMe装置150可以执行预获取并继续执行与正在运行的命令相对应的操作。然而,当预获取的命令和获取的命令不同时,NVMe装置150可以停止与预获取的命令相对应的操作并执行与新获取的命令相对应的操作。
图9是示出低功率状态结束时的延迟的示图。
图9示出了图3所示的NVMe驱动器340、主机存储器330的操作以及SSD的操作。SSD对应于连接到图1的交换机140的下游端口DOWNSTREAM PORT以及PCIe端点150_1和150_2或传统端点160_1和160_2的NVMe装置中的一个。此处,下游端口DOWNSTREAM PORT可以是与交换机140的上游端口相比距根联合体120相对更远的端口。
在图9中,SSD可以处于L1.2状态。L1.2状态可以意味着低功率状态。为了防止功耗,SSD可以处于L1.2状态。
在图9中,L0状态可以是可以管理功率的状态,并且可以是可以正常发送和接收数据和控制数据包的状态。例如,在L0状态下,可以发送和接收事务层数据包(TLP)和数据链路层数据包(DLLP)。SSD可以在L1.2状态下停止操作并在L0状态下恢复操作。
在实施例中,NVMe驱动器340可以将待在SSD上运行的命令COMMAND输出到主机存储器330,并且主机存储器330可以将接收到的命令排队。此后,NVMe驱动器340可以通过下游端口DOWNSTREAM PORT输出指示新命令在SSD中排队的SQ门铃信号。
然而,由于SSD最初处于L1.2状态,因此可以从下游端口DOWNSTREAM PORT向SSD输出唤醒信号。根据唤醒信号,SSD可以从L1.2状态变为L0状态(低功率退出,LOW POWEREXIT),并且SSD可以处于可以再次执行操作的状态。此时,在SSD的状态从L1.2状态变为L0状态之前,可能会出现延迟LATENCY。
当SSD处于可以执行操作的状态时,从NVMe驱动器340接收的SQ门铃信号可以从下游端口DOWNSTREAM PORT输出到SSD。
此后,在L0状态下,SSD可以从主机存储器330获取命令。SSD可以从主机存储器330接收在提交队列中排队的命令并执行与接收到的命令相对应的操作。
为了使在SSD的状态从L1.2状态变为L0状态之前的延迟LATENCY发生最小化,所公开技术的一些实施方案提出了一种通过对命令存储的位置进行LN寄存来结束低功率状态的方法。
图10是示出通过LN寄存结束低功率状态的示图。
图10示出了图3所示的NVMe驱动器340和主机存储器330的操作以及SSD的操作。SSD对应于连接到图1的交换机140的下游端口DOWNSTREAM PORT以及PCIe端点150_1和150_2或传统端点160_1和160_2的NVMe装置中的一个。此处,下游端口可以是与交换机140的上游端口相比距根联合体120相对更远的端口。
在图10中,SSD可以处于L1.2状态。L1.2状态可以意味着低功率状态。为了防止功耗,SSD可以处于L1.2状态。
在图10中,L0状态可以是可以管理功率的状态,并且可以是可以正常发送和接收数据和控制数据包的状态。例如,在L0状态下,可以发送和接收事务层数据包(TLP)和数据链路层数据包(DLLP)。SSD可以在L1.2状态下停止操作并在L0状态下恢复操作。
然而,与图9不同,在图10中,通过将LN寄存在主机存储器330中,SSD的状态可以从L1.2状态变为L0状态。
在实施例中,在NVMe驱动器340向NVMe装置150发送命令之前,可以在L0状态下将LN寄存在主机存储器330中(LN寄存,LN REGISTER)。此时,LN可以指示命令信息存储在主机存储器330中的地址。
当LN被寄存时,在L1.2状态下,NVMe驱动器340可以将命令信息存储在主机存储器330中,并且同时可以从主机存储器330向下游端口DOWNSTREAM PORT输出LN消息。因此,可以输出用于通知下游端口DOWNSTREAM PORT新命令在主机存储器330中排队的LN消息。
在实施例中,可以基于LN消息从下游端口DOWNSTREAM PORT向SSD输出唤醒信号。根据唤醒信号,SSD可以从L1.2状态变为L0状态(低功率退出,LOW POWER EXIT),这允许SSD处于能够恢复操作的状态。
此时,由于在SQ门铃信号被输出之前基于LN消息输出唤醒信号,因此可以减少SSD将其状态从L1.2状态变为L0状态所花费的时间。
此后,当SSD处于能够恢复操作的状态时,从NVMe驱动器340接收的SQ门铃信号可以从下游端口DOWNSTREAM PORT输出到SSD。在L0状态下,SSD可以从主机存储器330获取命令。
图11是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
参照图11,在步骤S1101中,主机可以寄存LN。LN可以指示与命令信息存储在主机的主机存储器中的位置相对应的地址。
在步骤S1103中,主机可以存储待在SSD上运行的命令。例如,主机可以将该命令从提交队列的队头到队尾顺序地在主机存储器中排队。
在步骤S1105中,主机可以向SSD发送LN消息。也就是说,主机可以指示新命令在主机存储器中排队的位置。也就是说,当命令排队的位置改变时,主机可以通过LN消息将改变后的位置输出到SSD。
在步骤S1107中,SSD可以预获取在主机存储器中排队的命令。当SSD接收到LN消息时,SSD可以通过命令的预获取来预先准备运行命令。
在步骤S1109中,主机可以向SSD发送SQ门铃信号。因此,主机可以向SSD输出SQ门铃信号,从而识别从主机存储器输出的新命令。SSD可以基于SQ门铃信号执行与预获取的命令相对应的操作。
在步骤S1111中,SSD可以重新获取在主机存储器中排队的命令。例如,当SSD执行与预获取的命令相对应的操作时,可能会再次获取在主机存储器中排队的命令。SSD可以基于预获取的命令和获取的命令的比较结果来执行操作。
图12是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
图12示出了图11的步骤S1111之后的步骤。
在步骤S1201中,SSD可以确定预获取的命令和获取的命令是否相同。SSD在执行与预获取的命令相对应的操作时可以再次获取命令,并且可以将预获取的命令和获取的命令进行比较。
当预获取的命令和获取的命令相同(是)时,操作可以进行到步骤S1203,SSD可以随后执行与正在进行的命令相对应的操作。
然而,当预获取的命令和获取的命令不同(否)时,操作可以进行到步骤S1205,SSD可以停止与正在进行的命令相对应的操作并执行与新获取的命令相对应的操作。
图13是示出基于所公开技术的一些实施方案的PCIe接口系统的操作的示图。
参照图13,在步骤S1301中,主机可以寄存LN。LN可以指示命令信息存储在主机中包括的主机存储器中的地址。此时,SSD可以处于L0状态。L0状态可以是可以管理功率的状态,并且可以是正常发送和接收数据和控制数据包的状态。
在步骤S1303中,主机可以存储待在SSD上运行的命令。例如,主机可以将命令从提交队列的队头到队尾顺序地在主机存储器中排队。此时,SSD可以处于L1.2状态,即低功率状态。
在步骤S1305中,主机可以通过下游端口向SSD发送LN消息。可以输出用于通知下游端口新命令在主机存储器中排队的LN消息。此处,下游端口可以是PCIe接口装置包括的配置之中的、距根联合体相对更远的交换机的端口。
在步骤S1307中,可以将从下游端口输出的唤醒信号发送到SSD。为了将SSD的状态从L1.2状态变为L0状态,即,可以执行操作的状态,可以从下游端口输出唤醒信号。根据唤醒信号,SSD可以从L1.2状态变为L0状态(低功率退出,LOW POWER EXIT),并且SSD可处于能够再次执行操作的状态。
在步骤S1309中,主机可以通过下游端口向SSD发送SQ门铃信号。当SSD处于能够执行操作的状态时,主机可以向SSD输出SQ门铃信号,从而识别从主机存储器输出的新命令。
在步骤S1311中,SSD可以获取在主机存储器中排队的命令。SSD可以获取命令,并执行与获取的命令相对应的操作。
描述了所公开技术的针对具有主机与一个或多个存储器装置的系统以及主机和存储器装置之间的接口的实施例的示例。可以基于本文件中描述或说明的内容对所公开的实施例和其它实施例进行变化和改进。
Claims (20)
1.一种高速外围组件互连接口系统,即PCIe接口系统,所述PCIe接口系统包括PCIe接口装置、主机以及通过所述PCIe接口装置连接到所述主机的高速非易失性存储器装置即NVMe装置,
其中所述主机包括:
主机存储器,存储关于待在所述NVMe装置上运行的命令以及已经在所述NVMe装置上运行的命令的信息;以及
NVMe驱动器,将待在所述NVMe装置上运行的命令发送到所述主机存储器,并且将门铃信号输出到所述NVMe装置,所述门铃信号指示待在所述NVMe装置上运行的命令已经存储在所述主机存储器中,并且
其中所述NVMe装置请求所述主机存储器寄存轻量级通知即LN,所述LN指示待在所述NVMe装置上运行的命令存储的位置。
2.根据权利要求1所述的PCIe接口系统,其中所述主机存储器在所述LN被寄存在所述主机存储器中之后,将从所述NVMe驱动器接收的命令在提交队列中排队。
3.根据权利要求1所述的PCIe接口系统,其中所述主机存储器向所述NVMe装置输出LN消息,所述LN消息指示待在所述NVMe装置上运行的命令存储在所述主机存储器中。
4.根据权利要求3所述的PCIe接口系统,其中所述NVMe装置预获取待在所述NVMe装置上运行的命令,并执行与预获取的命令相对应的操作。
5.根据权利要求4所述的PCIe接口系统,其中所述NVMe装置进一步从所述NVMe驱动器接收所述门铃信号,并且在接收到所述门铃信号时,从所述主机存储器获取待在所述NVMe装置上运行的命令。
6.根据权利要求5所述的PCIe接口系统,其中所述NVMe装置进一步基于所述预获取的命令和获取的命令之间的比较来执行操作。
7.根据权利要求6所述的PCIe接口系统,其中所述NVMe装置进一步响应于指示所述预获取的命令和所述获取的命令相同的比较结果,执行与所述预获取的命令相对应的操作。
8.根据权利要求6所述的PCIe接口系统,其中所述NVMe装置进一步响应于指示所述预获取的命令和所述获取的命令不同的比较结果,停止与所述预获取的命令相对应的操作并执行与所述获取的命令相对应的操作。
9.根据权利要求1所述的PCIe接口系统,其中所述主机存储器进一步向所述PCIe接口装置中包括的交换机的下游端口发送LN消息,所述LN消息指示待在所述NVMe装置上运行的命令在所述NVMe装置处于低功率状态的情况下被存储。
10.根据权利要求9所述的PCIe接口系统,其中所述交换机进一步基于所述LN消息向所述NVMe装置发送结束所述低功率状态的唤醒信号,并且
所述NVMe装置进一步接收所述唤醒信号并将所述NVMe装置的状态从所述低功率状态改变。
11.根据权利要求10所述的PCIe接口系统,其中所述NVMe驱动器进一步通过所述下游端口向所述NVMe装置输出所述门铃信号,并且
所述NVMe装置进一步从所述主机存储器获取待在所述NVMe装置上运行的命令。
12.一种操作系统的方法,所述方法包括:
由所述系统请求高速外围组件互连轻量级通知寄存即PCIe LN寄存,所述系统包括具有主机存储器的主机以及通过PCIe接口装置连接到所述主机的高速非易失性存储器装置即NVMe装置,所述LN寄存指示待在所述NVMe装置上运行的命令存储在所述系统中包括的主机存储器内的位置;
寄存所述LN;以及
将待在所述NVMe装置上运行的命令存储在所述主机存储器中。
13.根据权利要求12所述的方法,其中命令的存储包括将待在所述NVMe装置上运行的命令在所述主机存储器中包括的提交队列中排队。
14.根据权利要求12所述的方法,进一步包括:
向所述NVMe装置输出LN消息,所述LN消息指示待在所述NVMe装置上运行的命令存储在所述主机存储器中。
15.根据权利要求14所述的方法,进一步包括:
预获取待在所述NVMe装置上运行的命令;以及
执行与预获取的命令相对应的操作。
16.根据权利要求15所述的方法,进一步包括:
在输出指示待在所述NVMe装置上运行的命令存储在所述主机存储器中的门铃信号时,从所述主机存储器获取待在所述NVMe装置上运行的命令,在所述操作期间输出的所述门铃信号对应于所述预获取的命令。
17.根据权利要求16所述的方法,其中执行与所述预获取的命令相对应的操作包括响应于所述预获取的命令和获取的命令之间的比较结果,执行与所述预获取的命令相对应的操作,所述结果指示所述预获取的命令和所述获取的命令相同。
18.根据权利要求16所述的方法,其中执行与所述预获取的命令相对应的操作包括响应于所述预获取的命令和所述获取的命令之间的比较结果,停止与所述预获取的命令相对应的操作并执行与所述获取的命令相对应的操作,所述结果指示所述预获取的命令和所述获取的命令不同。
19.根据权利要求12所述的方法,进一步包括响应于所述NVMe装置的低功率状态:
向所述PCIe接口装置中包括的交换机的下游端口发送LN消息,所述LN消息指示待在所述NVMe装置上运行的命令被存储;以及
基于所述LN消息向所述NVMe装置发送结束所述低功率状态的唤醒信号。
20.根据权利要求19所述的方法,进一步包括:
向所述NVMe装置输出门铃信号,所述门铃信号指示待在所述NVMe装置上运行的命令被存储;以及
基于所述门铃信号从所述主机存储器获取待在所述NVMe装置上运行的命令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210048080A KR102509491B1 (ko) | 2021-04-13 | 2021-04-13 | PCIe 인터페이스 시스템 및 그 동작 방법 |
KR10-2021-0048080 | 2021-04-13 | ||
KR10-2021-0070686 | 2021-06-01 | ||
KR1020210070686A KR102668564B1 (ko) | 2021-06-01 | PCIe 인터페이스 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115248795A true CN115248795A (zh) | 2022-10-28 |
Family
ID=83509289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210005338.0A Pending CN115248795A (zh) | 2021-04-13 | 2022-01-04 | 高速外围组件互连(pcie)接口系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11789658B2 (zh) |
CN (1) | CN115248795A (zh) |
TW (1) | TW202240416A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782497B2 (en) | 2021-06-01 | 2023-10-10 | SK Hynix Inc. | Peripheral component interconnect express (PCIE) interface device and method of operating the same |
KR102518317B1 (ko) | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000041B2 (en) | 2003-03-31 | 2006-02-14 | Intel Corporation | Method and an apparatus to efficiently handle read completions that satisfy a read request |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US8081706B2 (en) | 2005-08-24 | 2011-12-20 | Altera Corporation | Lane-to-lane skew reduction in multi-channel, high-speed, transceiver circuitry |
US7647515B2 (en) | 2005-08-29 | 2010-01-12 | Dell Products L.P. | System and method for information handling system adaptive variable bus idle timer |
US7984314B2 (en) | 2007-05-14 | 2011-07-19 | Intel Corporation | Power management of low power link states |
US9146892B2 (en) | 2007-10-11 | 2015-09-29 | Broadcom Corporation | Method and system for improving PCI-E L1 ASPM exit latency |
US8582448B2 (en) | 2007-10-22 | 2013-11-12 | Dell Products L.P. | Method and apparatus for power throttling of highspeed multi-lane serial links |
US20090187683A1 (en) | 2008-01-22 | 2009-07-23 | International Business Machines Corporation | Adaptive link width control |
US8503468B2 (en) | 2008-11-05 | 2013-08-06 | Fusion-Io, Inc. | PCI express load sharing network interface controller cluster |
JP2010238150A (ja) | 2009-03-31 | 2010-10-21 | Toshiba Corp | PCIExpress通信システム、及びその通信方法 |
US8131889B2 (en) | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
US20110173352A1 (en) | 2010-01-13 | 2011-07-14 | Mellanox Technologies Ltd | Power Reduction on Idle Communication Lanes |
US8832336B2 (en) | 2010-01-30 | 2014-09-09 | Mosys, Inc. | Reducing latency in serializer-deserializer links |
US9292465B2 (en) | 2011-12-21 | 2016-03-22 | Intel Corporation | Dynamic link width adjustment |
US20130173837A1 (en) * | 2011-12-30 | 2013-07-04 | Advanced Micro Devices, Inc. | Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex |
WO2013162512A1 (en) | 2012-04-24 | 2013-10-31 | Intel Corporation | Adaptive low-power link-state entry policy for active interconnect link power management |
US8938630B2 (en) | 2012-07-30 | 2015-01-20 | Micron Technology, Inc. | Apparatus power control |
US9183171B2 (en) | 2012-09-29 | 2015-11-10 | Intel Corporation | Fast deskew when exiting low-power partial-width high speed link state |
JP6192284B2 (ja) | 2012-10-15 | 2017-09-06 | キヤノン株式会社 | 通信装置及びその制御方法 |
KR101754890B1 (ko) | 2012-10-22 | 2017-07-06 | 인텔 코포레이션 | 고성능 인터커넥트 물리 계층 |
US9026698B2 (en) | 2013-03-15 | 2015-05-05 | Intel Corporation | Apparatus, system and method for providing access to a device function |
US9229525B2 (en) | 2013-06-17 | 2016-01-05 | Apple Inc. | Adaptive latency tolerance for power management of memory bus interfaces |
US9535870B2 (en) * | 2013-09-18 | 2017-01-03 | HGST Netherlands B.V. | Acknowledgement-less protocol for solid state drive interface |
US9467120B1 (en) | 2013-12-19 | 2016-10-11 | Altera Corporation | Power management for PCI express |
US9454213B2 (en) | 2013-12-26 | 2016-09-27 | Intel Corporation | Method, apparatus, system for lane staggering and determinism for serial high speed I/O lanes |
KR102218735B1 (ko) | 2014-01-21 | 2021-02-23 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법 |
US9304690B2 (en) | 2014-05-07 | 2016-04-05 | HGST Netherlands B.V. | System and method for peer-to-peer PCIe storage transfers |
US20160188510A1 (en) | 2014-12-26 | 2016-06-30 | Samsung Electronics Co., Ltd. | METHOD FETCHING/PROCESSING NVMe COMMANDS IN MULTI-PORT, SR-IOV OR MR-IOV SUPPORTED PCIe BASED STORAGE DEVICES |
US20160216758A1 (en) | 2015-01-27 | 2016-07-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | PCI Express Device With Early Low Power State |
KR102333391B1 (ko) | 2015-02-27 | 2021-12-01 | 삼성전자 주식회사 | 전자 장치 및 이의 전력 제어 방법 |
KR102403489B1 (ko) | 2015-07-10 | 2022-05-27 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
JP2017033501A (ja) | 2015-08-06 | 2017-02-09 | 株式会社東芝 | 記憶装置および制御方法 |
US11029748B2 (en) | 2016-03-15 | 2021-06-08 | Qualcomm Incorporated | Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings |
US10133504B2 (en) * | 2016-04-06 | 2018-11-20 | Futurewei Technologies, Inc. | Dynamic partitioning of processing hardware |
US10025522B2 (en) | 2016-04-15 | 2018-07-17 | Sandisk Technologies Llc | Memory interface command queue throttling |
KR20170124017A (ko) | 2016-04-29 | 2017-11-09 | 삼성전자주식회사 | 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법 |
US9760311B1 (en) | 2016-06-23 | 2017-09-12 | Sandisk Technologies Llc | Storage system and method for adaptive thermal throttling |
US10452278B2 (en) | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
US10963035B2 (en) | 2017-10-11 | 2021-03-30 | Qualcomm Incorporated | Low power PCIe |
US11132319B2 (en) | 2018-01-12 | 2021-09-28 | Intel Corporation | Timer control for peripheral component interconnect express components implemented with thunderbolt controllers |
US20190250930A1 (en) | 2018-02-12 | 2019-08-15 | Western Digital Technologies, Inc. | Method and apparatus for configuring a serial data link |
JP7292864B2 (ja) | 2018-04-23 | 2023-06-19 | キオクシア株式会社 | 半導体記憶装置 |
US11231764B2 (en) * | 2018-10-17 | 2022-01-25 | Samsung Electronics Co., Ltd. | System and method for supporting chassis level keep alive in NVME-of based system |
US11307638B2 (en) | 2018-12-12 | 2022-04-19 | Intel Corporation | Securely providing multiple wake-up time options for PCI Express |
WO2020155005A1 (en) | 2019-01-31 | 2020-08-06 | Intel Corporation | Shared memory mechanism to support fast transport of sq/cq pair communication between ssd device driver in virtualization environment and physical ssd |
US11815976B2 (en) | 2019-05-22 | 2023-11-14 | Qualcomm Incorporated | Bandwidth based power management for peripheral component interconnect express devices |
US11073894B2 (en) | 2019-05-24 | 2021-07-27 | Qualcomm Incorporated | System power management for peripheral component interconnect express (PCIE)-based devices |
US11593280B2 (en) | 2019-06-25 | 2023-02-28 | Intel Corporation | Predictive packet header compression |
US11775470B2 (en) | 2019-11-20 | 2023-10-03 | Intel Corporation | Transaction layer packet format |
CN111124975A (zh) | 2019-12-27 | 2020-05-08 | 江苏芯盛智能科技有限公司 | 一种PCIe设备动态功耗节省方法以及低功耗PCIe设备 |
US11543996B2 (en) | 2020-05-20 | 2023-01-03 | Western Digital Technologies, Inc. | Systems and methods for power management in a data storage device |
US20200310517A1 (en) | 2020-05-28 | 2020-10-01 | Intel Corporation | Adaptive lower power state entry and exit |
US20220197519A1 (en) | 2020-12-19 | 2022-06-23 | Intel Corporation | Multi-level memory system power management apparatus and method |
KR102518317B1 (ko) | 2021-04-13 | 2023-04-06 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
US20220327074A1 (en) | 2021-04-13 | 2022-10-13 | SK Hynix Inc. | PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME |
-
2021
- 2021-11-09 US US17/522,810 patent/US11789658B2/en active Active
-
2022
- 2022-01-04 CN CN202210005338.0A patent/CN115248795A/zh active Pending
- 2022-01-27 TW TW111103656A patent/TW202240416A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20220326885A1 (en) | 2022-10-13 |
US11789658B2 (en) | 2023-10-17 |
TW202240416A (zh) | 2022-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100555394B1 (ko) | Ngio/infiniband 어플리케이션용 리모트 키검증을 위한 방법 및 메커니즘 | |
USRE47756E1 (en) | High performance memory based communications interface | |
WO2018076793A1 (zh) | 一种NVMe数据读写方法及NVMe设备 | |
WO2015078219A1 (zh) | 一种信息缓存方法、装置和通信设备 | |
US9569366B2 (en) | System and method to provide non-coherent access to a coherent memory system | |
US8719456B2 (en) | Shared memory message switch and cache | |
EP1750202A1 (en) | Combining packets for a packetized bus | |
US9405725B2 (en) | Writing message to controller memory space | |
EP4220419B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
US10983920B2 (en) | Customizable multi queue DMA interface | |
US8595401B2 (en) | Input output bridging | |
CN115248795A (zh) | 高速外围组件互连(pcie)接口系统及其操作方法 | |
WO2018075182A1 (en) | Gpu remote communication with triggered operations | |
WO2019057005A1 (zh) | 数据校验的方法、装置以及网卡 | |
US11960945B2 (en) | Message passing circuitry and method | |
WO2005091762A2 (en) | Intelligent pci bridging consisting of prefetching all data prior to sending data to requesting device | |
US10169272B2 (en) | Data processing apparatus and method | |
WO2014206229A1 (zh) | 一种加速器以及数据处理方法 | |
WO2005036313A2 (en) | Queue register configuration structure | |
US9288163B2 (en) | Low-latency packet receive method for networking devices | |
US9817784B2 (en) | Multi-port transmitter device for transmitting at least partly redundant data, an associated control system, an associated method and an associated computer program product | |
CN116303195A (zh) | Pcie通信 | |
EP3188030B1 (en) | A network interface device | |
KR102509491B1 (ko) | PCIe 인터페이스 시스템 및 그 동작 방법 | |
EP3999972B1 (en) | An apparatus and method for processing flush requests within a packet network |
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 |