CN108885588B - 基于硬件的转译后备缓冲器(tlb)失效 - Google Patents
基于硬件的转译后备缓冲器(tlb)失效 Download PDFInfo
- Publication number
- CN108885588B CN108885588B CN201780016504.4A CN201780016504A CN108885588B CN 108885588 B CN108885588 B CN 108885588B CN 201780016504 A CN201780016504 A CN 201780016504A CN 108885588 B CN108885588 B CN 108885588B
- Authority
- CN
- China
- Prior art keywords
- tlb
- pcie
- host system
- invalidation command
- tlb invalidation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了基于硬件的转译后备缓冲器(TLB)失效技术。主机***被配置成与快速***组件互连(PCIe)端点(EP)交换数据。作为硬件元件的存储器管理单元(MMU)被包括在主机***中,以根据至少一个TLB提供地址转译。在一个方面,MMU被配置成响应于从PCIe EP接收到至少一个TLB失效命令而使至少一个TLB失效。在另一方面,PCIe EP被配置成确定需要使至少一个TLB失效,并且提供TLB失效命令以使至少一个TLB失效。通过在主机***中实现基于硬件的TLB失效,可以减少TLB失效延迟,从而导致增加的数据吞吐量、降低的功耗和改善的用户体验。
Description
优先权申请
本申请要求于2016年3月30日提交的题为“HARDWARE-BASED TRANSLATIONLOOKASIDE BUFFER(TLB)INVALIDATION(基于硬件的转译后备缓冲器(TLB)失效)”的美国专利申请S/N.15/084,886的优先权,该美国专利申请通过援引全部纳入于此。
技术领域
本公开的技术一般涉及存储器管理。
背景技术
移动通信设备在当前社会已变得越来越普遍。这些移动通信设备的盛行部分地是由目前在此类设备上实现的许多功能来推动的。此类设备中增强的处理能力意味着移动通信设备已经从纯粹的通信工具演变成复杂的移动多媒体中心,由此实现增强的用户体验。
移动通信设备中的数据处理元件(例如,应用处理器、图形处理器等) 通常将各种***和应用专用数据存储在***存储器中,诸如动态随机存取存储器(DRAM)。在移动通信设备中运行的应用依赖于应用处理器来访问***存储器。例如,当应用需要从***存储器读取数据以通过高速输入/ 输出(I/O)电路来进行传输时,一个或多个应用处理器可能在读取操作的整个历时内被完全占用。同样,当应用需要将从高速I/O电路接收的数据写入***存储器时,一个或多个应用处理器可能在写入操作的整个历时内被完全占用。结果,这一个或多个应用处理器可能变得不可用于执行移动通信设备中的其他任务,从而导致性能和用户体验受损。
直接存储器访问(DMA)技术允许硬件元件(例如,高速I/O电路) 独立于应用处理器来访问***存储器,且被广泛用在移动通信设备中以帮助缓解处理瓶颈。使用DMA,当应用需要从***存储器读取数据块以通过高速I/O电路进行传输时,应用处理器发起***存储器与高速I/O电路之间的块数据传输,然后切换成服务移动通信设备中的其他任务。然后,移动通信设备中的DMA管理元件(诸如存储器管理单元(MMU))代表应用处理器执行块数据传输,并且仅在块数据传输完成时生成中断以通知应用处理器。商业需求支配着性能的持续改进,且更高效的DMA管理单元可以帮助提高整体性能和用户体验。
发明内容
在详细描述中公开的方面包括基于硬件的转译后备缓冲器(TLB)失效技术。主机***被配置成基于例如直接存储器访问(DMA)来与快速***组件互连(PCIe)端点(EP)(例如,高速Wi-Fi芯片组)交换数据。作为硬件元件的存储器管理单元(MMU)被包括在主机***中,以根据至少一个TLB 提供地址转译。在一个方面,MMU被配置成响应于从PCIe EP接收到至少一个TLB失效命令而使TLB失效。在另一方面,PCIe EP被配置成确定需要使 TLB失效,并且提供TLB失效命令以使TLB失效。通过在主机***中实现基于硬件的TLB失效,可以减少TLB失效延迟,从而导致增加的数据吞吐量、降低的功耗和改善的用户体验。
就此而言,在一个方面,提供了一种主机***。该主机***包括耦合到***总线的至少一个处理器。该主机***还包括存储器控制器,该存储器控制器耦合到该***总线并且被配置成控制存储器。主机***还包括MMU,该MMU 包括至少一个TLB。MMU耦合到***总线并且被配置成响应于从PCIe EP 接收到至少一个TLB失效命令而使至少一个TLB失效。
在另一方面,提供了一种用于使主机***中的至少一个TLB失效的方法。该方法包括从PCIe EP接收至少一个TLB失效命令。该方法还包括响应于从PCIe EP接收到至少一个TLB失效命令而使至少一个TLB失效。
在另一方面,提供了一种PCIe EP。该PCIe EP包括通信地耦合到主机***的主机接口控制器(HIC)。该HIC被配置成确定需要使主机***中的至少一个TLB失效。该HIC还被配置成向主机***提供至少一个TLB 失效命令以使该至少一个TLB失效。
在另一方面,提供了一种用于使主机***中的至少一个TLB失效的方法。该方法包括确定需要使主机***中的至少一个TLB失效。该方法还包括向主机***提供至少一个TLB失效命令,以使该至少一个TLB失效。
附图说明
图1是实现基于软件的转译后备缓冲器(TLB)失效机制的示例性常规主机***的示意图;
图2是传送(TX)操作信号流图,其提供了在数据TX操作期间执行的图1中常规的基于软件的TLB失效机制的示例性解说;
图3是接收(RX)操作信号流图,其提供了在数据RX操作期间执行的图1中常规的基于软件的TLB失效机制的示例性解说;
图4是实现基于硬件的TLB失效机制的示例性主机***的示意图,该基于硬件的TLB失效机制用于减少与图1中基于软件的TLB失效机制相关联的 TLB失效等待时间;
图5是示例性快速***组件互连(PCIe)传输层分组(TLP)的示意图,其可以被配置成将至少一个TLB失效命令传递给图4的主机***;
图6是由图4的主机***执行以使至少一个TLB失效的示例性TLB 失效过程的流程图;
图7是由PCIe端点(EP)执行以向图4的主机***提供至少一个TLB 失效命令的示例性TLB失效通知过程的流程图;
图8是TX操作信号流图,其提供了在数据TX操作期间执行的图4中基于硬件的TLB失效机制的示例性解说;
图9是RX操作信号流图,其提供了在数据RX操作期间执行的图4中基于硬件的TLB失效机制的示例性解说;以及
图10是可包括图4的主机***的示例性的基于处理器的***的框图。
具体实施方式
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例、或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
在详细描述中公开的方面包括基于硬件的转译后备缓冲器(TLB)失效技术。主机***被配置成基于例如直接存储器访问(DMA)来与快速***组件互连(PCIe)端点(EP)(例如,高速Wi-Fi芯片组)交换数据。作为硬件元件的存储器管理单元(MMU)被包括在主机***中,以根据至少一个TLB提供地址转译。在一个方面,MMU被配置成响应于从PCIe EP 接收到至少一个TLB失效命令而使TLB失效。在另一方面,PCIe EP被配置成确定需要使TLB失效并且提供TLB失效命令以使TLB失效。通过在主机***中实现基于硬件的TLB失效,可以减少TLB失效延迟,从而导致增加的数据吞吐量、降低的功耗和改善的用户体验。
在讨论基于硬件的TLB失效的示例性方面(包括本公开的特定方面) 之前,首先在图1中提供实现基于软件的TLB失效的常规主机***的简要概览。然后分别参考图2和3讨论在常规主机***中传送和接收数据所涉及的信号流的简要概览。参考图4开始讨论基于硬件的TLB失效的特定示例性方面。
就此而言,图1是实现基于软件的TLB失效机制的示例性常规主机***100的示意图。常规的主机***100包括至少一个处理器102(下文称为处理器102)、存储器控制器104、和MMU 106。处理器102、存储器控制器104和MMU 106耦合到***总线108。存储器控制器104被配置成控制存储器110,诸如举例而言动态随机存取存储器(DRAM)或双倍数据率 (DDR)DRAM。常规主机***100还包括经由MMU 106通信地耦合到***总线108的PCIe根复合体(RC)112。PCIe RC 112被配置成控制至少一个PCIe EP 114(下文称为PCIe EP 114)。PCIeRC 112和PCIe EP 114 之间的通信基于传输层分组(TLP)(未示出)。每个TLP包括使得PCIeRC 112能够将TLP正确地路由到PCIe EP 114的地址信息。就此而言,PCIe RC 112类似于网际协议(IP)网络的路由器,而TLP类似于在IP网络中传达的IP分组。
常规的主机***100包括软件栈116,其可驻留在存储器110中并可经由存储器控制器104访问,软件栈116包括可以由处理器102执行的可执行软件。在非限制性示例中,软件栈116可以被划分为用户层118和内核层120。用户层118可以包括应用122,其可以经由图形用户界面(GUI) (未示出)与终端用户(未示出)交互。内核层120可以包括一个或多个协议栈124,诸如传输控制协议(TCP)/IP(TCP/IP)协议栈。内核层120 还可以包括PCIe EP驱动器126,以实现与PCIe EP 114的通信。PCIe EP 驱动器126可包括传送(TX)环128和接收(RX)环130,用于分别存储传送和接收的分组(未示出)。
继续参考图1,当在处理器102上执行的应用122需要将数据块(未示出)写入存储器110时,处理器102经由***总线108将数据块提供给存储器控制器104。存储器控制器104将物理地址和虚拟地址指派给该数据块。物理地址是存储器110中的实际存储单元(例如,存储器单元)的地址,而虚拟地址是将由处理器102和应用122引用的逻辑地址。当应用122需要从存储器110读取数据块时,处理器102将虚拟地址提供给存储器控制器104。存储器控制器104将虚拟地址转译为对应的物理地址,并从存储器110中检索数据块。就此而言,应用122和处理器102仅知道数据块的虚拟地址。
有时,应用122可能需要从存储器110读取一个或多个数据块并将其输出到PCIeEP 114(下文称为数据TX操作),或者将从PCIe EP 114接收的一个或多个数据块存储在存储器110中(下文称为数据RX操作)。就此而言,处理器102可以建立DMA管道132以实现MMU106与存储器 110之间的高速数据交换。然后,处理器102切换成处置与软件栈116相关联的其他处理任务。MMU 106进而代表处理器102控制DMA管道132。在数据TX操作期间,MMU 106使用指派给一个或多个数据块的虚拟地址经由存储器控制器104来检索这一个或多个数据块。MMU 106随后将这一个或多个数据块的虚拟地址转换成DMA地址,然后经由PCIe RC 112将该一个或多个数据块提供给PCIe EP 114。在数据RX操作期间,MMU 106 将一个或多个接收的数据块的DMA地址转换成相应的虚拟地址,然后将这一个或多个接收的数据块提供给存储器控制器104。
作为非限制性示例,MMU 106包括可以在MMU 106内部提供的至少一个TLB 134(下文称为TLB 134)。TLB 134可以包括一个或多个地址映射条目(未示出),以促成从虚拟地址到DMA地址的转译,反之亦然。就此而言,在数据TX操作期间,在将数据块输出到PCIe EP114之后,MMU 106需要使TLB 134中的相应地址映射条目失效,以便为下一个数据块腾出空间。同样,在数据RX操作期间,在将接收的数据块提供给存储器控制器104之后,MMU 106需要使TLB 134中另一个相应地址映射条目失效,以便为下一个接收的数据块腾出空间。
在常规的主机***100中,软件栈116中的存储器驱动器136被配置成响应于从PCIe EP驱动器126接收到DMA解映射指令138而使TLB 134 失效。在非限制性示例中,DMA解映射指令138可以指示TLB 134中的特定地址映射条目将失效。存储器驱动器136进而向MMU106提供TLB失效命令140,以按照DMA解映射指令138中所指示地使TLB 134失效。为了进一步解说数据TX操作和数据RX操作期间的TLB失效信号流,接下来提供图2和图3并进行讨论。
就此而言,图2是TX操作信号流图200,其提供了在数据TX操作期间执行的图1中基于软件的TLB失效机制的示例性解说。图1和图2之间的共同元件以共同元件标号示出,并且在本文中将不再重复描述。
参考图2,数据TX操作包括数据准备阶段202、数据传输阶段204和 TLB失效阶段206。在数据准备阶段202期间,应用122首先请求分配数据缓冲器(框208)。然后应用122以一个或多个数据块210的形式向PCIe EP驱动器126提供数据。PCIe EP驱动器126发送DMA映射指令212以请求存储器驱动器136为一个或多个数据块210分配DMA地址。存储器驱动器136进而执行DMA地址分配(框214)。然后存储器驱动器136发送页表更新216以更新存储器110中的页表。随后,存储器驱动器136向PCIe EP驱动器126提供PCIe驱动器通知218。作为响应,PCIe EP驱动器126 将一个或多个数据块210发布到驻留在存储器110中的TX环128(未示出)。数据准备阶段202以通知PCIe EP信号220结束,其指示到PCIe EP 114的数据传输的开始。数据准备阶段202花费数据准备历时DTI来完成。
在数据传输阶段204期间,一个或多个数据块210经由DMA管道132 (未示出)从TX环128发送到PCIe EP 114。在非限制性示例中,TX环 128可以并行地将一个或多个数据块210提供给PCIe EP 114(例如,通过 DMA管道132中的多条数据线),如图2所示。如前所述,MMU 106使用TLB 134(未示出)中的一个或多个地址映射条目来执行虚拟地址到DMA 地址转译。当PCIe EP 114接收到这一个或多个数据块210时,数据传输阶段204由完成中断222结束。数据传输阶段204花费数据传输历时DT2来完成。
当PCIe EP驱动器126从PCIe EP 114接收到完成中断222时,TLB 失效阶段206开始。响应于接收到完成中断222,PCIe EP驱动器126将 DMA解映射指令138提供给存储器驱动器136。然后存储器驱动器136可以执行处理器地址分配,以便将控制权返回给处理器102(未示出)(框 224)。然后存储器驱动器136将页表更新226发送到存储器110。随后,存储器驱动器136向MMU 106提供TLB失效命令140,以按照DMA解映射指令138中所指示地使TLB134失效。同时,存储器驱动器136通过发送一个或多个TLB SYNC(同步)轮询命令242(1)-242(N)来等待TLB失效完成。当TLB失效完成时,存储器驱动器136向PCIe EP驱动器126提供TLB失效和SYNC完成指示244。PCIe EP驱动器126进而释放在数据准备阶段202 开始时所分配的数据缓冲器(框246)。TLB失效阶段206花费TLB失效历时DT3来完成。
继续参考图2,数据准备阶段202、数据传输阶段204和TLB失效阶段206通常并行执行。在非限制性示例中,应用122在数据TX操作期间顺序地将三个数据块(数据块1、数据块2和数据块3)传送给PCIe EP 114。数据块1首先进入数据准备阶段202。当数据块1进入数据传输阶段204 时,数据块2进入数据准备阶段202。当数据块1的传输完成时,数据块2 进入数据传输阶段204,且数据块3进入数据准备阶段202。同时,TLB失效阶段206开始释放TLB134中与数据块1相关联的数据映射条目。
在非限制性示例中,PCIe RC 112(未示出)可以支持三千四百兆比特每秒(3400Mbps或3.4Gbps)的数据率。如果这三个数据块中每一者的大小是一千五百三十六个字节(1536B),则PCIe RC 112将花费约三点六微秒(3.6μs)来传送这三个数据块中的每一者。换句话说,数据传输历时 DT2是3.6μs。就此而言,为了在DMA管道132中维持不间断的数据流,数据准备历时DT1和TLB失效历时DT3必须小于或等于3.6μs(DT1≤DT2,且DT3≤DT2)。
图3是RX操作信号流图300,其提供了在数据RX操作期间执行的图1 中基于软件的TLB失效机制的示例性解说。图1和图3之间的共同元件以共同元件标号示出,并且在本文中将不再重复描述。
参考图3,数据RX操作包括数据接收阶段302、TLB失效阶段304和RX 准备阶段306。在数据接收阶段302中,PCIe EP 114经由DMA管道132向存储器110提供一个或多个数据块308(未示出)。在非限制性示例中,PCIe EP 114可以并行地将一个或多个数据块308提供给存储器110(例如,通过 DMA管道132中的多条数据线),如图3所示。当PCIe EP 114完成传送这一个或多个数据块308时,数据接收阶段302由完成中断310结束。数据接收阶段302花费数据接收历时DR1来完成。
当PCIe EP驱动器126从PCIe EP 114接收到完成中断310时,TLB失效阶段304开始。PCIe EP驱动器126将DMA解映射指令138提供给存储器驱动器136以使TLB 134失效(未示出)。然后存储器驱动器136执行处理器地址分配,以便将控制权返回给处理器102(未示出)(框312)。然后存储器驱动器136发送页表更新314。随后,存储器驱动器136向MMU 106提供TLB失效命令140,以按照DMA解映射指令138中所指示地使TLB 134失效。同时,存储器驱动器136通过发送一个或多个TLB SYNC轮询命令 316(1)-316(M)来等待TLB失效完成。当TLB失效完成时,存储器驱动器136 向PCIe EP驱动器126提供TLB失效和SYNC完成指示318。PCIe EP驱动器 126提供RX完成通知320以通知应用122。TLB失效阶段206花费TLB失效历时DR2来完成。
当PCIe EP驱动器126接收到TLB失效和SYNC完成指示318时,RX 准备阶段306开始。PCIe EP驱动器126为TLB 134分配新数据缓冲器(未示出),其在TLB失效阶段304期间失效(框322)。PCIe EP驱动器126 发送DMA映射指令324以请求存储器驱动器136为一个或多个数据块308分配DMA地址。存储器驱动器136进而执行DMA地址分配(框326)。然后存储器驱动器136发送页表更新328以更新存储器110中的页表。随后,存储器驱动器136向PCIe EP驱动器126提供PCIe驱动器通知330。作为响应,PCIe EP驱动器126将这一个或多个数据块308发布到驻留在存储器110中的RX 环130(未示出)。数据准备阶段202以通知PCIe EP信号332结束。RX 准备阶段306花费数据准备历时DR3来完成。
类似于图2中的TX操作信号流图200,数据RX操作的TLB失效历时DR2和数据准备历时DR3需要小于或等于数据接收历时DR1(DR2≤DR1且 DR3≤DR1),以在DMA管道132中维持不间断的数据流。然而,由于图2 的TX操作信号流图200和图3的RX操作信号流图300中的TLB失效由存储器驱动器136执行,因此TLB失效历时DT3或DR2实际上可能分别超过图2的数据传输历时DT2或图3的数据接收历时DR1,从而中断DMA管道132中的数据流。因此,期望最小化与存储器驱动器136相关联的TLB 失效等待时间,以在DMA管道132中提供不间断的数据流。
就此而言,图4是实现基于硬件的TLB失效机制的示例性主机***400 的示意图,该基于硬件的TLB失效机制用于减少与图1的基于软件的TLB 失效机制相关联的TLB失效等待时间。主机***400被配置成重用常规主机***100中的许多元件以提供后向兼容性。由此,图1-4之间的共同元件以共同元件标号示出,并且在本文中将不再重复描述。
参考图4,主机***400包括软件栈402,其可驻留在存储器110中并可经由存储器控制器104访问,软件栈402包括可以由处理器102执行的可执行软件。软件栈402包括PCIeEP驱动器404和存储器驱动器406。与图1中的PCIe EP驱动器126和存储器驱动器136不同,存储器驱动器406不被配置成响应于从PCIe EP驱动器404接收到DMA解映射指令138而生成TLB失效命令140。就此而言,与图1的常规主机***100中采用的基于软件的TLB失效机制相反,主机***400采用不涉及存储器驱动器406的基于硬件的TLB失效机制。结果,可以减少与常规主机***100中采用的基于软件的TLB失效机制相关联的TLB失效等待时间。
主机***400包括MMU 408,MMU 408被配置成经由PCIe RC 112 从PCIe EP 412接收至少一个TLB失效命令410(下文称为TLB失效命令 410)。MMU 408还被配置成响应于接收到TLB失效命令410而使TLB 134 失效。如稍后在图8和9中所讨论的,在MMU 408处执行的基于硬件的TLB失效机制有助于消除图2和图3中的TLB失效命令140。此外,在 MMU 408处执行的基于硬件的TLB失效机制还有助于消除图2的TX操作信号流图200中的一个或多个TLBSYNC轮询命令242(1)-242(N)、以及图 3的RX操作信号流图300中的一个或多个TLB SYNC轮询命令 316(1)-316(M)。通过在主机***400中采用基于硬件的TLB失效机制,可以减少与常规主机***100中采用的基于软件的TLB失效机制相关联的 TLB失效等待时间,从而确保DMA管道132中的不间断数据流。
继续参考图4,PCIe EP 412包括主机接口控制器(HIC)414和存储介质416。HIC414经由PCIe RC 112通信地耦合到主机***400。PCIe EP 412 从主机***400接收一个或多个数据块210,并将一个或多个数据块308 传送给主机***400。在非限制性示例中,PCIeEP 412可以是被配置成根据电气和电子工程师协会(IEEE)802.11ad或IEEE 802.11ac标准操作的 Wi-Fi通信集成电路(IC)。在另一个非限制性示例中,HIC 414可以基于一个或多个数据块210和/或一个或多个数据块308的检测到的数据模式来确定需要使TLB 134失效。例如,PCIe EP 412可以根据恒定比特率(CBR) 模式与主机***400交换数据,该CBR模式包括在预定义通信时段期间传送已知数据量。就此而言,在预定义通信时段期间交换已知数据量之后, HIC 414可以能够确定需要使TLB 134失效。
PCIe EP 412接收一个或多个数据块210,并使用PCIe传输层分组 (TLP)传送一个或多个数据块308。在非限制性示例中,HIC 414可以将 TLB失效命令410提供给TLP中的PCIe RC 112。就此而言,图5是示例性PCIe TLP 500的示意图,其可以被配置成将TLB失效命令410(未示出) 传递给图4的主机***400(未示出)。
参考图5,PCIe TLP 500(如在由PCI特殊兴趣小组(PCI-SIG)于2010 年11月10日发布的PCIe基础规范修订版3.0中定义的)包括TLP前缀502、 TLP报头504、数据有效载荷506和TLP摘要508。数据有效载荷506可以传递图4中的一个或多个数据块210(未示出)和/或一个或多个数据块308 (未示出)。TLP报头504可以包括标识PCIe TLP 500的信息(例如,地址、类型等)。TLP前缀502可以包括因供应方而异的信息。在非限制性示例中,可以在TLP前缀502或TLP报头504中传达TLB失效命令410。
图4的主机***400可以被配置成根据主机侧过程来执行基于硬件的 TLB失效。就此而言,图6是由图4的主机***400执行以使TLB 134失效的示例性TLB失效过程600的流程图。根据TLB失效过程600,主机***400从PCIe EP 412接收TLB失效命令410(框602)。在非限制性示例中,PCIe EP 412可以将TLB失效命令410包括在图5的PCIe TLP 500的 TLP前缀502或TLP报头504中。PCIe EP 412可以将包含TLB失效命令 410的PCIe TLP 500提供给主机***400中的PCIe RC 112。随后,主机***400响应于从PCIe EP 412接收到TLB失效命令410而使TLB 134失效 (框604)。
图4的PCIe EP 412可以被配置成基于PCIe EP侧过程来提供TLB失效命令410。就此而言,图7是由图4的PCIe EP 412执行以提供TLB失效命令410的示例性TLB失效通知过程700的流程图。根据TLB失效通知过程700,PCIe EP 412确定需要使主机***400中的TLB134失效(框702)。随后,PCIe EP 412将TLB失效命令410提供给主机***400以使TLB 134失效(框704)。在非限制性示例中,PCIe EP 412可以将TLB失效命令410 包括在图5的PCIeTLP 500的TLP前缀502或TLP报头504中。PCIe EP 412 可以将包含TLB失效命令410的PCIeTLP 500提供给主机***400中的PCIe RC 112。
如先前在图4中所讨论的,在MMU 408处执行的基于硬件的TLB失效机制有助于消除图2的TX操作信号流图200中的TLB失效命令140和一个或多个TLB SYNC轮询命令242(1)-242(N)。就此而言,图8是TX操作信号流图800,其提供了在数据TX操作期间执行的图4中基于硬件的TLB 失效机制的示例性解说。图2和图8之间的共同元件以共同元件标号示出,并且在本文中将不再重复描述。
参考图8,在TLB失效阶段802期间,MMU 408响应于从PCIe EP 412 接收到TLB失效命令410而使TLB 134失效。由此,可以消除图2的TLB 失效命令140和一个或多个TLB SYNC轮询命令242(1)-242(N)。结果,TLB 失效阶段802对应于TLB失效历时D'T3,其可以相对于图2的TLB失效历时DT3被减小,从而确保D'T3≤DT2。
进一步根据图4中的先前讨论,在MMU 408处执行的基于硬件的TLB 失效机制有助于消除图3的RX操作信号流图300中的TLB失效命令140和一个或多个TLB SYNC轮询命令316(1)-316(N)。就此而言,图9是RX操作信号流图900,其提供了在数据RX操作期间执行的图4中基于硬件的TLB失效机制的示例性解说。图3和图9之间的共同元件以共同元件标号示出,并且在本文中将不再重复描述。
参考图9,在TLB失效阶段902期间,MMU 408响应于从PCIe EP 412 接收到TLB失效命令410而使TLB 134失效。由此,可以消除图3的TLB失效命令140和一个或多个TLB SYNC轮询命令316(1)-316(M)。结果,TLB失效阶段902对应于TLB失效历时D'R2,其可以相对于图3的TLB失效历时DR2被减小,从而确保D'R2≤DR1。
根据本文中所公开的诸方面的图4的基于硬件的TLB失效机制可以设在或集成到任何基于处理器的设备中,诸如图4的主机***400。不构成限定的示例包括:机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、智能电话、平板设备、平板手机、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(DVD) 播放器、便携式数字视频播放器、以及汽车。
就此而言,图10解说了可以支持图4中的主机***400的基于处理器的***1000的示例。在该示例中,基于处理器的***1000包括一个或多个中央处理单元(CPU)1002,每个中央处理单元包括一个或多个处理器1004。(诸) CPU 1002可具有耦合至(诸)处理器1104以用于对临时存储的数据进行快速访问的高速缓存存储器1006。(诸)CPU 1002耦合到***总线1008。如众所周知的,(诸)CPU 1002通过在***总线1008上交换地址、控制、以及数据信息来与其他设备通信。尽管未在图10中解说,但可提供多个***总线1008,其中每个***总线1008构成不同的织构。
其他主设备和从设备可被连接到***总线1008。如图10中所解说的,作为示例,这些设备可包括存储器***1010、一个或多个输入设备1012、一个或多个输出设备1014、一个或多个网络接口设备1016、以及一个或多个显示器控制器1018。(诸)输入设备1012可以包括任何类型的输入设备,包括但不限于输入键、开关、语音处理器等。(诸)输出设备1014可以包括任何类型的输出设备,包括但不限于音频、视频、其他视觉指示器等。(诸)网络接口设备1016可以是配置成允许往来于网络1020的数据交换的任何设备。网络1020可以是任何类型的网络,包括但不限于有线或无线网络、私有或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、蓝牙TM网络或因特网。(诸)网络接口设备1016可以被配置成支持所期望的任何类型的通信协议。存储器***1010可以包括一个或多个存储器单元 1022(0-N)以及存储器控制器1024。
(诸)CPU 1002还可被配置成在***总线1008上访问(诸)显示器控制器1018以控制发送给一个或多个显示器1026的信息。(诸)显示器控制器1018 经由一个或多个视频处理器1028向(诸)显示器1026发送要显示的信息,该视频处理器1028将要显示的信息处理成适用于(诸)显示器1026的格式。(诸) 显示器1026可包括任何类型的显示器,包括但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器等。
本领域技术人员将进一步领会,结合本文所公开的各方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其他处理设备执行的指令、或这两者的组合。作为示例,本文描述的主设备和从设备可用在任何电路、硬件组件、集成电路 (IC)、或IC芯片中。本文中所公开的存储器可以是任何类型和大小的存储器,且可配置成存储所需的任何类型的信息。为了清楚地解说这种可互换性,各种解说性组件、框、模块、电路和步骤在上文已经以其功能性的形式一般性地作了描述。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体***上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文中所公开的各方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合(例如DSP与微处理器的组合、多个微处理器、与DSP核协作的一个或多个微处理器、或任何其他此类配置)。
本文所公开的各方面可被体现为硬件和存储在硬件中的指令,并且可驻留在例如随机存取存储器(RAM)、闪存、只读存储器(ROM)、电可编程ROM (EPROM)、电可擦可编程ROM(EEPROM)、寄存器、硬盘、可移动盘、 CD-ROM、或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取信息和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在数个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。应理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术和技艺中的任何一种来表示信息和信号。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。
Claims (20)
1.一种主机***,包括:
耦合到***总线的至少一个处理器;
存储器控制器,所述存储器控制器耦合到所述***总线并且被配置成控制存储器;以及
包括至少一个转译后备缓冲器TLB的存储器管理单元MMU,所述MMU耦合到所述***总线并且被配置成响应于从快速***组件互连PCIe端点接收到至少一个TLB失效命令而使所述至少一个TLB失效。
2.如权利要求1所述的主机***,其特征在于,还包括耦合到所述MMU和所述PCIe端点的PCIe根复合体,所述PCIe根复合体被配置成:
从所述PCIe端点接收所述至少一个TLB失效命令;以及
向所述MMU提供所接收的至少一个TLB失效命令。
3.如权利要求1所述的主机***,其特征在于,所述至少一个TLB失效命令是在至少一个PCIe传输层分组TLP前缀中接收的。
4.如权利要求1所述的主机***,其特征在于,所述至少一个TLB失效命令是在至少一个PCIe传输层分组TLP报头中接收的。
5.如权利要求1所述的主机***,其特征在于,所述主机***还包括PCIe端点。
6.如权利要求1所述的主机***,其特征在于,所述PCIe端点是Wi-Fi通信集成电路IC。
7.如权利要求1所述的主机***,其特征在于,所述主机***设在集成电路IC中。
8.如权利要求1所述的主机***,其特征在于,所述主机***设在选自包括以下各项的组的设备中:机顶盒;娱乐单元;导航设备;通信设备;固定位置数据单元;移动位置数据单元;移动电话;蜂窝电话;智能电话;平板设备;平板手机;计算机;便携式计算机;台式计算机;个人数字助理PDA;监视器;计算机监视器;电视机;调谐器;无线电;卫星无线电;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频碟DVD播放器;便携式数字视频播放器;以及汽车。
9.一种用于使主机***中的至少一个转译后备缓冲器TLB失效的方法,包括:
从快速***组件互连PCIe端点接收至少一个TLB失效命令;以及
响应于从所述PCIe端点接收到所述至少一个TLB失效命令而使所述至少一个TLB失效。
10.如权利要求9所述的方法,其特征在于,包括由耦合到所述PCIe端点的PCIe根复合体来接收所述至少一个TLB失效命令。
11.如权利要求9所述的方法,其特征在于,包括在至少一个PCIe传输层分组TLP前缀中接收所述至少一个TLB失效命令。
12.如权利要求9所述的方法,其特征在于,包括在至少一个PCIe传输层分组TLP报头中接收所述至少一个TLB失效命令。
13.一种快速***组件互连PCIe端点,包括:
主机接口控制器HIC,其通信地耦合到主机***,其中所述HIC被配置成:
确定需要使所述主机***中的至少一个转译后备缓冲器TLB失效;以及
向所述主机***提供至少一个TLB失效命令,以使所述至少一个TLB失效。
14.如权利要求13所述的PCIe端点,其特征在于,所述HIC通过所述主机***中的PCIe根复合体通信地耦合到所述主机***。
15.如权利要求13所述的PCIe端点,其特征在于,所述HIC被配置成在至少一个PCIe传输层分组TLP前缀中提供所述至少一个TLB失效命令。
16.如权利要求13所述的PCIe端点,其特征在于,所述HIC被配置成在至少一个PCIe传输层分组TLP报头中提供所述至少一个TLB失效命令。
17.如权利要求13所述的PCIe端点,其特征在于,包括Wi-Fi通信集成电路IC。
18.一种用于使主机***中的至少一个转译后备缓冲器TLB失效的方法,包括:
将快速***组件互连PCIe端点中的主机接口控制器HIC通信地耦合到主机***;
由所述HIC确定需要使所述主机***中的至少一个TLB失效;以及
向所述主机***提供来自所述HIC的至少一个TLB失效命令,以使所述至少一个TLB失效。
19.如权利要求18所述的方法,其特征在于,包括在至少一个PCIe传输层分组TLP前缀中提供所述至少一个TLB失效命令。
20.如权利要求18所述的方法,其特征在于,包括在至少一个PCIe传输层分组TLP报头中提供所述至少一个TLB失效命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/084,886 | 2016-03-30 | ||
US15/084,886 US10042777B2 (en) | 2016-03-30 | 2016-03-30 | Hardware-based translation lookaside buffer (TLB) invalidation |
PCT/US2017/019383 WO2017172144A1 (en) | 2016-03-30 | 2017-02-24 | Hardware-based translation lookaside buffer (tlb) invalidation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885588A CN108885588A (zh) | 2018-11-23 |
CN108885588B true CN108885588B (zh) | 2022-07-08 |
Family
ID=58264628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780016504.4A Active CN108885588B (zh) | 2016-03-30 | 2017-02-24 | 基于硬件的转译后备缓冲器(tlb)失效 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10042777B2 (zh) |
EP (1) | EP3414664B1 (zh) |
CN (1) | CN108885588B (zh) |
WO (1) | WO2017172144A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585734B2 (en) | 2018-01-04 | 2020-03-10 | Qualcomm Incorporated | Fast invalidation in peripheral component interconnect (PCI) express (PCIe) address translation services (ATS) |
US11210233B2 (en) | 2020-01-07 | 2021-12-28 | International Business Machines Corporation | System and method for handling address translation invalidations using an address translation invalidation probe |
CN111506519B (zh) * | 2020-04-22 | 2021-04-27 | 上海安路信息科技股份有限公司 | 为fpga码点分配sram单元的方法及*** |
US20230057698A1 (en) * | 2021-08-23 | 2023-02-23 | Nvidia Corporation | Physically distributed control plane firewalls with unified software view |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091855A1 (en) * | 2006-10-17 | 2008-04-17 | Moertl Daniel F | Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations |
US20090144508A1 (en) * | 2007-12-03 | 2009-06-04 | Freimuth Douglas M | PCI Express Address Translation Services Invalidation Synchronization with TCE Invalidation |
CN104040509A (zh) * | 2012-01-18 | 2014-09-10 | 高通股份有限公司 | 在有虚拟标识的高速缓冲存储器中确定别名地址的高速缓存命中/未中及相关***及方法 |
US20140281099A1 (en) * | 2013-03-14 | 2014-09-18 | Broadcom Corporation | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7340555B2 (en) | 2001-09-28 | 2008-03-04 | Dot Hill Systems Corporation | RAID system for performing efficient mirrored posted-write operations |
US7308557B2 (en) | 2005-02-09 | 2007-12-11 | International Business Machines Corporation | Method and apparatus for invalidating entries within a translation control entry (TCE) cache |
US8249089B2 (en) | 2006-09-29 | 2012-08-21 | Intel Corporation | Methods for pushing address translations mappings to PCI express endpoints |
US7617377B2 (en) | 2006-10-17 | 2009-11-10 | International Business Machines Corporation | Splitting endpoint address translation cache management responsibilities between a device driver and device driver services |
US9075926B2 (en) * | 2007-07-19 | 2015-07-07 | Qualcomm Incorporated | Distributed interconnect bus apparatus |
WO2013095519A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Method and apparatus for clock frequency ratio independent error logging |
US20130346655A1 (en) * | 2012-06-22 | 2013-12-26 | Advanced Micro Devices, Inc. | Bus agent capable of supporting extended atomic operations and method therefor |
US9152571B2 (en) | 2012-07-31 | 2015-10-06 | Ati Technologies Ulc | All invalidate approach for memory management units |
US9619387B2 (en) * | 2014-02-21 | 2017-04-11 | Arm Limited | Invalidating stored address translations |
US9507740B2 (en) * | 2014-06-10 | 2016-11-29 | Oracle International Corporation | Aggregation of interrupts using event queues |
US11288205B2 (en) * | 2015-06-23 | 2022-03-29 | Advanced Micro Devices, Inc. | Access log and address translation log for a processor |
-
2016
- 2016-03-30 US US15/084,886 patent/US10042777B2/en active Active
-
2017
- 2017-02-24 WO PCT/US2017/019383 patent/WO2017172144A1/en active Application Filing
- 2017-02-24 EP EP17709875.3A patent/EP3414664B1/en active Active
- 2017-02-24 CN CN201780016504.4A patent/CN108885588B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080091855A1 (en) * | 2006-10-17 | 2008-04-17 | Moertl Daniel F | Apparatus and Method for Communicating with an I/O Adapter Using Cached Address Translations |
US20090144508A1 (en) * | 2007-12-03 | 2009-06-04 | Freimuth Douglas M | PCI Express Address Translation Services Invalidation Synchronization with TCE Invalidation |
CN104040509A (zh) * | 2012-01-18 | 2014-09-10 | 高通股份有限公司 | 在有虚拟标识的高速缓冲存储器中确定别名地址的高速缓存命中/未中及相关***及方法 |
US20140281099A1 (en) * | 2013-03-14 | 2014-09-18 | Broadcom Corporation | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS |
Also Published As
Publication number | Publication date |
---|---|
EP3414664B1 (en) | 2019-12-18 |
CN108885588A (zh) | 2018-11-23 |
EP3414664A1 (en) | 2018-12-19 |
US10042777B2 (en) | 2018-08-07 |
US20170286314A1 (en) | 2017-10-05 |
WO2017172144A1 (en) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3311295B1 (en) | Communicating transaction-specific attributes in a peripheral component interconnect express (pcie) system | |
CN108885588B (zh) | 基于硬件的转译后备缓冲器(tlb)失效 | |
JP6165342B2 (ja) | エンベデッドメモリへのコマンドキューイングの提供 | |
US20160371222A1 (en) | COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER | |
US20200192838A1 (en) | Extended message signaled interrupts (msi) message data | |
CN107408092B (zh) | 用于多端口物理层(phy)的锁相环(pll)的共享控制 | |
US9880748B2 (en) | Bifurcated memory management for memory elements | |
US9424227B2 (en) | Providing byte enables for peer-to-peer data transfer within a computing environment | |
JP6396625B1 (ja) | 複数のマスタデバイス間の条件付き介入を使用したキャッシュコヒーレンシの維持 |
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 |