CN104620234A - 减小外围部件快速互连链路中的延迟 - Google Patents
减小外围部件快速互连链路中的延迟 Download PDFInfo
- Publication number
- CN104620234A CN104620234A CN201380046940.8A CN201380046940A CN104620234A CN 104620234 A CN104620234 A CN 104620234A CN 201380046940 A CN201380046940 A CN 201380046940A CN 104620234 A CN104620234 A CN 104620234A
- Authority
- CN
- China
- Prior art keywords
- end points
- pcie link
- enter
- main frame
- link
- 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
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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明描述了一种用于减小主机和端点之间的外围部件快速互连(PCIe)链路中的延迟的方法与系统。在所描述的实施例中,使用PCIe链路从端点向主机发出中断。随后,当中断在主机处待处理时,PCIe链路被阻止进入其中退出延迟大于预先确定的时间周期的节电模式。
Description
背景技术
技术领域
本发明所描述的实施例涉及减小数据链路上的延迟。更具体地,本发明所描述的实施例涉及减小端点和主机之间的外围部件快速互连链路上的延迟。
相关领域
许多现代计算机系统使用外围部件快速互连(PCIe)链路来在主机和端点之间通信。当未使用PCIe链路一段时间时,端点可通过使PCIe链路进入节电模式来尝试节省电力。通常,通过节电模式所节省的电力越多,PCIe链路退出节电模式并再次变得可操作所花的时间量就越长。
当主机上的操作系统尝试通过处于节电模式的PCIe链路与端点通信时,操作系统将不得不等待PCIe链路退出节电模式以允许恢复主机和端点之间的通信。当等待PCIe链路恢复时,该延迟可能会超过某些操作系统的允许的延迟容限,从而导致意料不到的或不可接受的行为并有可能导致不期望的用户体验。
附图说明
图1呈现了示出根据所描述的实施例的主机和端点之间的PCIe链路的框图。
图2呈现了示出根据所描述的实施例的端点的框图。
图3呈现了示出根据所描述的实施例的具有通过PCIe链路在耦接到端点上的端点固件的主机上工作的驱动器的操作系统的框图。
图4呈现了示出根据所描述的实施例的减小PCIe链路中的延迟的过程的流程图。
在附图中,类似的附图标号是指相同的附图元件。
具体实施方式
呈现以下描述是为了使得本领域的任何技术人员能够实现并使用所描述的实施例,并且以下描述在特定应用的上下文及其要求中被提供。对所描述的实施例的各种修改对于本领域的技术人员而言将是显而易见的,并且本文中所限定的一般原理可应用于其他实施例和应用,而不脱离所描述的实施例的实质和范围。因此,所描述的实施例不限于所示实施例,而是要被赋予符合本文所公开的原理和特征的最宽泛的范围。
在该具体实施方式中所描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是能够存储供具有计算能力的端点和/或主机使用的代码和/或数据的任何设备或介质。例如,计算机可读存储介质可包括易失性存储器或非易失性存储器,包括闪存存储器、随机存取存储器(RAM、SRAM、DRAM、RDRAM、DDR/DDR2/DDR3SDRAM等)、磁存储介质或光学存储介质(例如磁盘驱动器、磁带、CD、DVD)、或能够存储数据结构或代码的其他介质。需注意,在所描述的实施例中,计算机可读存储介质不包括非法定的计算机可读存储介质诸如传输信号。
该具体实施方式中所描述的方法和过程可被包括在硬件模块中。例如,硬件模块可包括但不限于一个或多个专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、其他可编程逻辑器件、专用逻辑器件和微控制器。当硬件模块被激活时,硬件模块执行被包括在硬件模块内的方法和过程。在一些实施例中,硬件模块包括被执行指令(程序代码、固件等)配置为执行方法和过程的一个或多个通用电路。
在具体实施方式部分中所描述的方法和过程可被实施为代码和/或数据,该代码和/或数据可被存储在如上所述的计算机可读存储介质中。当具有计算能力的端点和/或主机读取和执行存储在计算机可读存储介质上的代码和/或数据时,端点和/或主机执行被实施为数据结构和代码并且被存储在计算机可读存储介质内的方法和过程。例如,在一些实施例中,处理子系统可从包括计算机可读存储介质的存储器子系统读取代码和/或数据,并且可执行代码和/或使用数据以执行该方法和过程。
在以下描述中,我们涉及“一些实施例”。需注意,“一些实施例”描述了所有可能实施例的子集,但并未始终规定实施例的相同子集。
综述
所描述的实施例执行用于减小主机和端点之间的外围部件快速互连(PCIe)链路中的延迟的操作。在所描述的实施例中,主机可包括可通过PCIe链路与端点通信的任何主机设备。一般来讲,主机包括将主机上的处理器和存储器耦接到PCIe链路的根复合体。端点通常为通过PCIe链路与主机通信的设备。PCIe链路可为符合PCI特别兴趣小组(PIC-SIG)PCIe规范(例如,PCI Express 3.0基本规范修订版3.0)的PCIe链路。
端点可通过PCIe链路与主机交换数据和/或其他信息。然而,当PCIe链路保持空闲一段时间时,端点可实现可用节电模式中的一种节电模式,以便在不使用PCIe链路时减少其所消耗的电力。端点通过从L状态L0(最高电力状态)过渡到由PCIe规范所定义的较低电力L状态(例如,L1子状态L1.0、L1.1和L1.2)来减少PCIe链路的电力消耗。
L1子状态允许PCIe链路通过使该链路的一个或多个子系统进入一种或多种较低电力消耗状态来实现节能。然而,在从L1子状态退出并进入L0状态的过程中存在延迟。这种退出延迟是指PCIe链路重新上电使得主机和端点能够再次通过该链路进行通信所花的时间量。一般来讲,L状态(例如,L1子状态)下减少的用电量越大,在过渡到L0状态以使PCIe链路重新上电的过程中的延迟就越长。
端点可用于实现电源管理的另一种方法是延迟容限报告(LTR)机制。端点可向根复合体发送LTR值,从而通知该根复合体在使PCIe链路从节电模式上电时端点能够承受的延迟。根复合体随后使用LTR值来对PCIe链路的一种或多种节电模式进行管理。
在操作期间,除了与主机交换数据以外,端点还可向主机发送消息,针对该主机,该端点期望一个响应。例如,端点可向主机发出中断,并期望主机上的操作系统将最终基于中断对端点作出响应。然而,如果主机上的操作系统直到PCIe链路变为空闲并且进入节电模式之后才对中断作出响应,则操作系统不得不等待PCIe链路退出节电模式(例如,退出延迟)。在该一段时间期间,可能会阻止主机上的操作系统执行其他操作,从而导致主机上的意想不到或不想要的行为。
在所描述的实施例中,当主机和端点首次通过PCIe链路进行通信时,主机会通知端点该主机操作系统的延迟容限(例如,操作系统可等待来自端点的响应的最大延迟)。主机操作系统的最大延迟可基于多种因素,包括但不限于主机上的操作系统可等待来自端点的响应的最大时间周期,或者可基于一种或多种样本使用配置下的主机的所计算的、所测量的或所模拟的性能的统计最大延迟。
在端点被通知该主机操作系统的延迟容限之后,当端点期望来自主机操作系统的响应时,该端点基于主机操作系统的延迟要求来操作。例如,如果主机操作系统的延迟容限为30微秒,并且L子状态L1.0到L状态L0的退出延迟小于30微秒,而L子状态L1.1和L1.2到L状态L0的退出延迟大于30微秒,则当端点期望来自主机上的操作系统的响应时,端点可能会阻止PCIe链路进入子状态L1.1和L1.2,仅允许PCIe链路进入L0或L1.0。在一些实施例中,端点可能不允许PCIe链路进入L1状态。另外,在一些实施例中,端点可能会请求PCIe链路进入L1状态,并且当主机确认该请求后,端点将通过不释放CLKREQ#并抑制其自身进入L1.1或L1.2子状态来允许PCIe链路进入L1.0子状态。最后,端点可向根复合体发送消息,从而将LTR值更改为基于主机操作系统的延迟容限的值。
当端点不再期望来自主机上的操作系统的响应时(例如,因为已接收到期望的响应并且不期望进一步的响应),端点可恢复到其先前的延迟要求(例如,基于其自身的延迟容限)。端点可能允许PCIe链路进入适合端点自身的电力节省或延迟要求的任何L状态或子状态。另外,如果当端点期望来自主机上的操作系统的响应时,端点向根复合体发送消息,从而将LTR值更改为基于主机操作系统的延迟容限的值,则端点可能会向根复合体发送消息,从而将LTR值改回到基于端点自身要求的值。
需注意,端点可跟踪何时期望来自主机上的操作系统的响应,因此针对PCIe链路将其延迟要求更改为服从主机上的操作系统的延迟容限。端点可使用任何方法来跟踪何时期望来自主机上的操作系统的响应,包括但不限于将此信息作为状态信息存储在端点上的存储器中,或者使用存储在端点上的任何其他信息来跟踪何时期望来自主机OS的响应,诸如确定是否存在来自端点的并且主机尚未对其作出响应的未完成中断。
链路环境
图1呈现了示出根据所描述的实施例的主机和端点之间的PCIe链路的框图。主机102使用PCIe链路106来连接到端点104。主机102包括耦接到存储器110的片上系统(SOC)108,并且SOC 108包括耦接到处理器114和存储器110的PCIe根复合体112。
主机102可以是使用PCIe链路与端点通信的任何设备(或可被包括在该任何设备中)。例如,主机102可以是膝上型计算机、台式计算机、服务器、电器、小型笔记本计算机/上网本、平板电脑、蜂窝电话、个人数字助理(PDA)、智能电话或其他设备(或可包括这些设备中)。需注意,主机102可包括其他子系统(未示出),包括但不限于通信子系统、显示子系统、数据收集子系统、音频和/或视频子系统、报警子系统、媒体处理子系统、输入/输出(I/O)子系统,和/或一个或多个其他处理子系统(例如,CPU),或者电源子系统(例如电池、电池管理单元,和/或其他电源管理子系统)。
端点104是可通过PCIe链路与主机通信的任何端点。端点104可以是或可包括执行多种功能的一个或多个设备或系统(例如,外围设备),这些功能包括例如无线通信、存储和/或图形处理。需注意,在一些实施例中,端点104可能位于主机102内部,而在一些实施例中,端点104可能位于主机102外部。我们将在下面相对于图2对端点104进行更加详细的论述。
PCIe链路106是允许使用PCIe规范(诸如PCI-SIG的PCIe基本规范3.0)在端点104和主机102之间进行通信的链路。
SOC 108是包括处理器和PCIe根复合体的片上系统,并且可包括其他子系统(未示出),诸如存储器、计数器、时钟、接口调节器、电源管理电路,和/或模拟和/或数字接口。PCIe根复合体112将处理器114和存储器110连接到PCIe链路106。需注意,在一些实施例中,PCIe根复合体112可在单独的SOC或微控制器上实现,或在一些实施例中,PCIe根复合体112可能会被忽略,并且PCIe根复合体112的功能可在处理器114上实现(例如,在处理器114上工作的软件)。另外,需注意,在一些实施例中,可将多于一个PCIe链路连接到PCIe根复合体112。
处理器114包括被配置为执行计算操作的一个或多个设备。例如,处理器114可包括一个或多个微处理器(每个微处理器具有一个或多个核心)、专用集成电路(ASIC)、微控制器和/或可编程逻辑器件。在一些实施例中,SOC 108的一些或全部功能可被一种或多种电路替代,这些电路可包括一个或多个微处理器和/或多核心处理系统。
存储器110包括用于存储针对主机102中的子系统(包括SOC 108上的那些子系统,诸如处理器114和/或PCIe根复合体112)的数据和/或指令的一个或多个设备。存储器110可包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM),和/或其他类型的存储器,还可包括用于控制对存储器的访问的机构。在一些实施例中,存储器110包括存储器分级结构,该存储器分级结构包括耦接到SOC 108中的存储器(未示出)的一个或多个高速缓存。在一些实施例中,存储器110耦接到一个或多个高容量海量存储设备(未示出)。例如,存储器110可耦接到磁驱动器或光盘驱动器、固态驱动器,或其他类型的海量存储设备。在这些实施例中,存储器110可被主机102用作用于经常使用的数据的快速存取存储装置,而海量存储设备被用于存储使用频率较低的数据。
需注意,虽然图1中仅描绘了一个端点,但在另选的实施例中,可通过PCIe链路来将多于一个端点耦接到主机102和PCIe根复合体112。
端点
图2呈现了示出根据所描述的实施例的端点的框图。端点104包括耦接到总线206的处理子系统202和存储器子系统204。除了用于耦接到PCIe链路106并通过PCIe链路106进行通信的子系统(未示出)外,端点104还可包括其他子系统(未示出),诸如用于无线通信、海量存储和/或图形处理的子系统。
处理子系统202是被配置为执行计算和/或逻辑操作的任何处理子系统,该计算和/或逻辑操作可在端点中使用,并且能够以任何技术来实现,包括但不限于任何类型的硬件模块、软件、固件,和/或任何其他通用或专用逻辑部件。处理子系统202可包括但不限于一个或多个中央处理单元(CPU)、微处理器、专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、其他可编程逻辑器件、专用逻辑器件和微控制器。
存储器子系统204包括用于为端点104中的处理子系统202和其他子系统(未示出)存储数据和/或指令的一个或多个设备。例如,存储器子系统204可包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存存储器,和/或其他类型的存储器。此外,存储器子系统204可包括用于控制对端点104中的存储器或其他子系统(未示出)的访问的固件和机构。
处理子系统202和存储器子系统204使用总线206耦接在一起。总线206是一种电连接件、光连接件或电光连接件,在一些实施例中,端点104中的这些子系统和其他子系统(未示出)可使用该总线来在彼此之间传送命令和数据。尽管为了清楚起见仅示出一根总线206,但是不同的实施例可包括子系统之间的不同数量或配置的电连接件或其他连接件。
尽管处理子系统202和存储器子系统204在图2中被示出为独立的子系统,但在一些实施例中,这两个子系统中的一者或两者均可被集成到端点104中的一个或多个其他子系统中。此外,在一些实施例中,端点104可包括一个或多个附加处理子系统202和/或存储器子系统204,并且尽管我们使用特定子系统来描述端点104,但在另选的实施例中,端点104中可存在不同的子系统。另外,尽管处理子系统202和存储器子系统204在图2中被示出为独立的子系统,但在一些实施例中,端点104中的这些子系统和其他子系统(未示出)可在一个集成电路上被实现。
操作系统/固件
图3呈现了示出根据所描述的实施例的具有通过PCIe链路在耦接到在端点上工作的端点固件的主机上工作的驱动器的操作系统的框图。
在一些实施例中,操作系统302被存储(作为程序代码)在存储器110中并由处理器114执行。一般来讲,操作系统302充当主机102中的系统硬件(例如,包括PCIe根复合体112的子系统)和由处理器114执行的应用程序(这些应用程序可以是例如邮件应用程序、Web浏览器和游戏应用程序)之间的媒介。操作系统302还包括使得操作系统302和在处理器114上工作的其他应用程序能够与端点104通信的驱动器304。操作系统302可以是但不限于以下操作系统:OS X操作系统或iOS,两者均来自Apple Inc.of Cupertino,CA;FreeBSD操作系统,来自The FreeBSDFoundation of Boulder,CO;或者另一操作系统。操作系统及其一般功能在本领域是已知的,因此不再详述。
端点104包括可在端点104上预加载和/或由驱动器304动态加载的固件306,并且通常包括用于操作和控制端点104的数据和/或编程。固件306可被存储在只读存储器(ROM)、可编程只读存储器(PROM)和/或可擦除可编程只读存储器(EPROM)中的存储器子系统204中,并且可在处理子系统202上执行。在一些实施例中,固件306可由存储在存储器子系统204中的软件部分或完全地替代,并且可在端点104中的处理子系统202和/或一个或多个硬件模块(未示出)上工作。
减小PCIe链路中的延迟
图4呈现了示出根据所描述的实施例的用于减小PCIe链路中的延迟的过程的流程图。图4中示出的操作由主机(诸如主机102)和端点(诸如端点104)来执行。当主机102通知端点104该操作系统302的中断延迟要求时,图4中示出的过程在步骤400处开始。端点104可将此信息存储在存储器子系统204中。随后,在步骤402中,端点104通过PCIe链路106向主机102发出中断。
需注意,当操作系统302接收到中断(诸如由端点104向主机102发出的中断)时,操作系统302可被配置为在对中断作出响应之前完成其当前正在处理的任务。因此,可能会记录中断(例如,在SOC 108上的中断控制器中),直到操作系统302能够处理中断(例如,操作系统300将中断分派给驱动器304),并且在处理器114上工作的驱动器304使用PCIe链路106与端点104通信以对中断作出响应。
在步骤404处,端点104使用操作系统302的中断延迟容限为PCIe链路106设置延迟容限。在一些实施例中,端点104通过向PCIe根复合体112发送消息并将LTR值更改为基于操作系统302的中断延迟要求的值来完成此任务。例如,驱动器304可向固件306发送消息以将PCIe链路106的LTR值设置为基于操作系统302的中断延迟要求的值。在一些实施例中,代替更改LTR值,端点104将阻止PCIe链路106进入L1子状态,该子状态所具有的到L0状态的退出延迟大于操作系统302的中断延迟容限。例如,如果操作系统302的中断延迟容限为30微秒,并且L1子状态L1.0所具有的到L0状态的退出延迟为16微秒,并且子状态L1.1和L1.2各自所具有的到L0状态的退出延迟均大于30微秒,则在步骤404处,端点104将进入一种允许PCIe链路106进入L0状态或L1.0子状态但不允许进入子状态L1.1或L1.2的状态。
在步骤406处,操作系统302获得由端点104所发出的中断。需注意,在操作系统302开始对中断进行操作之前的延迟可能取决于多种因素,包括在接收到中断时正在执行哪些应用程序和/或一个或多个指令,以及操作系统302如何被配置为处理中断。在步骤408处,操作系统302将中断分散到驱动器304,然后在步骤410处,驱动器304基于该中断来对端点104作出响应。例如,如果端点104是联网设备诸如WiFi子系统,驱动器304可采取动作,其可包括但不限于以下中的一种或多种:向端点104发送分组或从端点104接收分组、处理由端点104新接收的分组、对新分组进行排队以用于由端点104进行传输、处理链路维护问题,或者更新DMA描述符。
需注意,在步骤410处,如果自端点104向主机102发送中断以来,PCIe链路106已处于非活动状态足够长的时间周期,则PCIe链路106可能已进入节电模式。如果PCIe链路106处于节电模式,则在驱动器304可与端点104通信之前,驱动器304将不得不等待PCIe链路106变为活动状态(即,退出延迟)。
在步骤412处,当端点104不再期望来自操作系统302的响应时,端点104将恢复服从其自身的延迟容限。例如,如果端点104已将其LTR值更改为基于操作系统302的中断延迟容限的值,则端点104可能会将LTR值改回到基于其自身延迟容限的值。在端点104基于操作系统302的中断延迟容限来阻止PCIe链路106进入更激进的电力节省L状态或子状态的情况下,然后端点104可能会基于其自身的延迟容限来恢复允许PCIe链路106进入这些状态或子状态。
对实施例的前述描述仅仅是为了例证和说明的目的而被呈现。它们并非旨在是穷举性的或将实施例限制为所公开的形式。因此,对于本领域熟练的从业者而言许多修改和变型将是显而易见的。另外,上面的公开内容并非旨在限制该实施例。该实施例的范围由所附权利要求来限定。
Claims (20)
1.一种用于减小主机和端点之间的外围部件快速互连(PCIe)链路中的延迟的方法,包括:
使用所述PCIe链路从所述端点向所述主机发出中断;以及
当所述中断在所述主机处待处理时,阻止所述PCIe链路进入其中退出延迟大于预先确定的时间周期的节电模式。
2.根据权利要求1所述的方法,其中:
所述预先确定的时间周期基于包括针对所述主机的可接受响应延迟的信息来确定。
3.根据权利要求1所述的方法,其中:
阻止所述PCIe链路进入所述节电模式包括阻止所述PCIe链路进入L1链路状态模式。
4.根据权利要求1所述的方法,其中:
阻止所述PCIe链路进入所述节电模式包括阻止所述PCIe链路进入L1链路子状态模式L1.1和L1.2。
5.根据权利要求1所述的方法,其中:
阻止所述PCIe链路进入所述节电模式包括基于所述预先确定的时间周期来设置延迟容限报告(LTR)值。
6.根据权利要求1所述的方法,其中:
当所述中断在所述主机处不再待处理时,停止阻止所述PCIe链路进入其中所述退出延迟大于所述预先确定的时间周期的所述节电模式。
7.根据权利要求1所述的方法,其中:
当所述端点在所述主机处不具有需要来自所述端点的响应的待处理请求时,停止阻止所述PCIe链路进入其中所述退出延迟大于所述预先确定的时间周期的所述节电模式。
8.一种减小主机和端点之间的外围部件快速互连(PCIe)链路中的延迟的端点,包括:
所述端点;以及
所述端点中的处理子系统,其中所述处理子系统被配置为通过所述PCIe链路与所述主机通信,并被配置为使得在由所述端点使用所述PCIe链路来向所述主机发出中断之后并且当所述中断在所述主机处待处理时,所述处理子系统阻止所述PCIe链路进入其中退出延迟大于预先确定的时间周期的节电模式。
9.根据权利要求8所述的端点,其中:
所述处理子系统被配置为基于包括针对所述主机的可接受响应延迟的信息来确定所述预先确定的时间周期。
10.根据权利要求8所述的端点,其中:
所述处理子系统被配置为通过阻止所述PCIe链路进入L1链路状态模式来阻止所述PCIe链路进入所述节电模式。
11.根据权利要求8所述的端点,其中:
所述处理子系统被配置为通过阻止所述PCIe链路进入L1链路子状态模式L1.1和L1.2来阻止所述PCIe链路进入所述节电模式。
12.根据权利要求8所述的端点,其中:
所述处理子系统被配置为通过基于所述预先确定的时间周期设置延迟容限报告(LTR)值来阻止所述PCIe链路进入所述节电模式。
13.根据权利要求8所述的端点,其中:
所述处理子系统被配置为当所述中断在所述主机处不再待处理时,停止阻止所述PCIe链路进入所述节电模式。
14.一种包含指令的非暂态计算机可读存储介质,所述指令当由端点中的处理子系统执行时,使得所述端点执行用于减小主机和所述端点之间的外围部件快速互连(PCIe)链路中的延迟的方法,所述方法包括:
使用所述PCIe链路从所述端点向所述主机发出中断;以及
当所述中断在所述主机处待处理时,阻止所述PCIe链路进入其中退出延迟大于预先确定的时间周期的节电模式。
15.根据权利要求14所述的计算机可读存储介质,其中:
所述预先确定的时间周期基于包括针对所述主机的可接受响应延迟的信息来确定。
16.根据权利要求14所述的计算机可读存储介质,其中:
阻止所述PCIe链路进入所述节电模式包括阻止所述PCIe链路进入L1链路状态模式。
17.根据权利要求14所述的计算机可读存储介质,其中:
阻止所述PCIe链路进入所述节电模式包括阻止所述PCIe链路进入L1链路子状态模式L1.1和L1.2。
18.根据权利要求14所述的计算机可读存储介质,其中:
阻止所述PCIe链路进入所述节电模式包括基于所述预先确定的时间周期来设置延迟容限报告(LTR)值。
19.根据权利要求14所述的计算机可读存储介质,其中:
当所述中断在所述主机处不再待处理时,停止阻止所述PCIe链路进入其中所述退出延迟大于所述预先确定的时间周期的所述节电模式。
20.根据权利要求14所述的计算机可读存储介质,其中:
当所述端点在所述主机处不具有需要来自所述端点的响应的待处理请求时,停止阻止所述PCIe链路进入其中所述退出延迟大于所述预先确定的时间周期的所述节电模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/622,266 US9015396B2 (en) | 2012-09-18 | 2012-09-18 | Reducing latency in a peripheral component interconnect express link |
US13/622,266 | 2012-09-18 | ||
PCT/US2013/056668 WO2014046847A1 (en) | 2012-09-18 | 2013-08-26 | Reducing latency in a peripheral component interconnect express link |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104620234A true CN104620234A (zh) | 2015-05-13 |
CN104620234B CN104620234B (zh) | 2017-05-10 |
Family
ID=49261731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380046940.8A Active CN104620234B (zh) | 2012-09-18 | 2013-08-26 | 减小外围部件快速互连链路中的延迟 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9015396B2 (zh) |
CN (1) | CN104620234B (zh) |
WO (1) | WO2014046847A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595522B2 (en) | 2010-09-30 | 2013-11-26 | Intel Corporation | Monitoring transaction requests using a policy engine within a storage drive driver to change power capability and latency settings for a storage drive |
US9015396B2 (en) * | 2012-09-18 | 2015-04-21 | Apple Inc. | Reducing latency in a peripheral component interconnect express link |
US20140173306A1 (en) * | 2012-12-19 | 2014-06-19 | Barnes Cooper | System and method for providing for power savings in a processor environment |
US20140181334A1 (en) * | 2012-12-24 | 2014-06-26 | Jaya L. Jeyaseelan | System and method for determination of latency tolerance |
US20140181563A1 (en) * | 2012-12-24 | 2014-06-26 | Neil Songer | System and method for determination of latency tolerance |
US9563256B2 (en) * | 2013-01-04 | 2017-02-07 | Intel Corporation | Processor hiding its power-up latency with activation of a root port and quickly sending a downstream cycle |
US20140281622A1 (en) | 2013-03-15 | 2014-09-18 | Mahesh Wagh | Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints |
US9229525B2 (en) | 2013-06-17 | 2016-01-05 | Apple Inc. | Adaptive latency tolerance for power management of memory bus interfaces |
US9971397B2 (en) | 2014-10-08 | 2018-05-15 | Apple Inc. | Methods and apparatus for managing power with an inter-processor communication link between independently operable processors |
US10082538B2 (en) | 2014-11-14 | 2018-09-25 | Cavium, Inc. | Testbench builder, system, device and method |
US9880601B2 (en) * | 2014-12-24 | 2018-01-30 | Intel Corporation | Method and apparatus to control a link power state |
US10282315B2 (en) * | 2015-03-27 | 2019-05-07 | Cavium, Llc | Software assisted hardware configuration for software defined network system-on-chip |
US10078614B2 (en) | 2015-08-10 | 2018-09-18 | Sandisk Technologies Llc | Systems and methods of data transfer |
US10085214B2 (en) | 2016-01-27 | 2018-09-25 | Apple Inc. | Apparatus and methods for wake-limiting with an inter-device communication link |
US10572390B2 (en) | 2016-02-29 | 2020-02-25 | Apple Inc. | Methods and apparatus for loading firmware on demand |
US11029748B2 (en) | 2016-03-15 | 2021-06-08 | Qualcomm Incorporated | Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings |
US10198364B2 (en) | 2016-03-31 | 2019-02-05 | Apple Inc. | Memory access protection apparatus and methods for memory mapped access between independently operable processors |
US10140221B2 (en) * | 2016-05-25 | 2018-11-27 | Dell Products L.P. | Method to handle host, device, and link's latency tolerant requirements over USB Type-C power delivery using vendor defined messaging for all alternate modes |
US10678199B2 (en) * | 2016-06-23 | 2020-06-09 | Intel Corporation | Systems, methods and devices for standby power entry without latency tolerance information |
KR20180049340A (ko) | 2016-10-31 | 2018-05-11 | 삼성전자주식회사 | 스토리지 장치 및 그것의 링크 상태 제어 방법 |
US10591976B2 (en) * | 2016-11-10 | 2020-03-17 | Apple Inc. | Methods and apparatus for providing peripheral sub-system stability |
US10346226B2 (en) | 2017-08-07 | 2019-07-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for transmitting time sensitive data over a tunneled bus interface |
US10331612B1 (en) | 2018-01-09 | 2019-06-25 | Apple Inc. | Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors |
US10430352B1 (en) | 2018-05-18 | 2019-10-01 | Apple Inc. | Methods and apparatus for reduced overhead data transfer with a shared ring buffer |
CN109445680B (zh) * | 2018-08-20 | 2020-03-31 | 华为技术有限公司 | 一种对硬盘进行管理的方法及装置 |
US10977197B2 (en) * | 2019-03-28 | 2021-04-13 | Intel Corporation | Providing multiple low power link state wake-up options |
US11552892B2 (en) * | 2019-08-30 | 2023-01-10 | Ati Technologies Ulc | Dynamic control of latency tolerance reporting values |
US11086384B2 (en) * | 2019-11-19 | 2021-08-10 | Intel Corporation | System, apparatus and method for latency monitoring and response |
US11803459B2 (en) * | 2021-10-19 | 2023-10-31 | Hewlett-Packard Development Company, L.P. | Latency tolerance reporting value determinations |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080288798A1 (en) * | 2007-05-14 | 2008-11-20 | Barnes Cooper | Power management of low power link states |
CN101420308A (zh) * | 2007-10-11 | 2009-04-29 | 美国博通公司 | 在活动状态功率管理过程中改善延时的方法和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8201004B2 (en) * | 2006-09-14 | 2012-06-12 | Texas Instruments Incorporated | Entry/exit control to/from a low power state in a complex multi level memory system |
US8135923B2 (en) * | 2007-04-26 | 2012-03-13 | International Business Machines Corporation | Method for protocol enhancement of PCI express using a continue bit |
US8479028B2 (en) * | 2007-09-17 | 2013-07-02 | Intel Corporation | Techniques for communications based power management |
US20090172434A1 (en) * | 2007-12-31 | 2009-07-02 | Kwa Seh W | Latency based platform coordination |
US8839268B2 (en) * | 2008-02-07 | 2014-09-16 | Oracle America, Inc. | Method and system of preventing silent data corruption |
US8560749B2 (en) | 2011-02-11 | 2013-10-15 | Intel Corporation | Techniques for managing power consumption state of a processor involving use of latency tolerance report value |
US8862920B2 (en) * | 2011-06-16 | 2014-10-14 | Advanced Micro Devices, Inc. | Power state management of an input/output servicing component of a processor system |
US20140006826A1 (en) * | 2012-06-30 | 2014-01-02 | Mahesh Wagh | Low power low frequency squelch break protocol |
US9015396B2 (en) * | 2012-09-18 | 2015-04-21 | Apple Inc. | Reducing latency in a peripheral component interconnect express link |
-
2012
- 2012-09-18 US US13/622,266 patent/US9015396B2/en active Active
-
2013
- 2013-08-26 WO PCT/US2013/056668 patent/WO2014046847A1/en active Application Filing
- 2013-08-26 CN CN201380046940.8A patent/CN104620234B/zh active Active
-
2015
- 2015-04-20 US US14/691,244 patent/US9740645B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080288798A1 (en) * | 2007-05-14 | 2008-11-20 | Barnes Cooper | Power management of low power link states |
CN101420308A (zh) * | 2007-10-11 | 2009-04-29 | 美国博通公司 | 在活动状态功率管理过程中改善延时的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US9740645B2 (en) | 2017-08-22 |
US20150227476A1 (en) | 2015-08-13 |
CN104620234B (zh) | 2017-05-10 |
WO2014046847A1 (en) | 2014-03-27 |
US9015396B2 (en) | 2015-04-21 |
US20140082242A1 (en) | 2014-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104620234A (zh) | 减小外围部件快速互连链路中的延迟 | |
US8560749B2 (en) | Techniques for managing power consumption state of a processor involving use of latency tolerance report value | |
CN110399034B (zh) | 一种SoC系统的功耗优化方法及终端 | |
US9818458B1 (en) | Techniques for entry to a lower power state for a memory device | |
US9128703B1 (en) | Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter | |
CN101436098A (zh) | 降低多核对称多处理系统的功耗的方法及装置 | |
CN101925160A (zh) | 无线数据收发方法及其系统 | |
KR101707096B1 (ko) | 일반 호스트 기반 제어기 레이턴시 방법 및 장치 | |
CN103176943A (zh) | 用于功率优化的多处理器同步的方法 | |
CN108008917B (zh) | 存储设备及控制其链接状态的方法 | |
CN111142644A (zh) | 一种硬盘运行控制方法、装置及相关组件 | |
CN101943941A (zh) | 信息处理装置及其功率控制方法以及计算机可执行程序 | |
CN103076868B (zh) | 电源管理方法及应用该方法的电子系统 | |
CN104321716A (zh) | 使用装置空闲持续时间信息来优化能量效率 | |
CN105446916A (zh) | Usb总线状态切换方法及装置 | |
CN101241391B (zh) | 降低计算机系统耗能的方法、控制装置、及计算机系统 | |
US10198060B2 (en) | Controlling power management in micro-server cores and peripherals | |
CN101573698B (zh) | 用于计算机系统的高效功率管理的产品和方法 | |
JP6093036B2 (ja) | 周期的アクティビティアライメント | |
CN206331414U (zh) | 一种固态硬盘 | |
CN112214095A (zh) | 一种控制硬盘功耗的方法和设备 | |
US10452574B2 (en) | Read performance on a SATA storage device behind a host bus adapter | |
CN107918522B (zh) | 固态存储设备及其功率控制方法 | |
CN114153303B (zh) | 一种功耗控制系统和功耗控制方法、装置、介质 | |
TWI708250B (zh) | 控制閃存卡存取的電腦程式產品及方法及裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |