CN109690501A - 混合输入/输出相关写入 - Google Patents
混合输入/输出相关写入 Download PDFInfo
- Publication number
- CN109690501A CN109690501A CN201780056152.5A CN201780056152A CN109690501A CN 109690501 A CN109690501 A CN 109690501A CN 201780056152 A CN201780056152 A CN 201780056152A CN 109690501 A CN109690501 A CN 109690501A
- Authority
- CN
- China
- Prior art keywords
- correlation
- mixing
- write request
- correlation write
- processing unit
- 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
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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
方面包含计算装置、设备和由所述设备实施以用于在计算装置上实施混合输入/输出I/O相关写入请求的方法,所述方法包含:接收I/O相关写入请求;从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求;将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到共享存储器;和将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到相关性域。
Description
背景技术
加速器可用于帮助中央处理单元(CPU)处理工作负载。工作负载通常需要使用来自CPU高速缓冲存储器的数据。加速器可将来自工作负载的数据写入到随机存取存储器(RAM)。在输入/输出(I/O)相关模式中,发射用以将数据写入到RAM的请求和发射数据以写入到RAM是通过到RAM的互连件路由且通过相关域路由到RAM。用以请求将数据写入到RAM的路径和用于使数据写入到RAM的路径经复制以从到RAM的互连件、从到相关域的互连件传递,且接着传递到RAM。从互连件到RAM的复制路径增加具有I/O相关能力的装置的面积成本。贯穿相关域的复制路径的有效性也可低于从互连件到RAM的路径的有效性。较低有效路径可导致速度、等待时间和/或功率损失。
发明内容
各种所公开的方面可包含用于在计算装置上实施混合输入/输出(I/O)相关写入请求的设备和方法。各种方面可包含:接收I/O相关写入请求;从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求;将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到共享存储器;和将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到相关性域。
一些方面可进一步包含确定是否启用混合I/O相关写入模式,其中从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求可包含响应于确定启用所述混合I/O相关写入模式而从所述I/O相关写入请求产生所述第一混合I/O相关写入请求和所述第二混合I/O相关写入请求。
一些方面可进一步包含响应于确定启用所述混合I/O相关写入模式而将所述I/O相关写入请求标记为混合I/O相关写入请求。
一些方面可进一步包含从所述共享存储器接收对所述第一混合I/O相关写入请求的确认,和将对所述第一混合I/O相关写入请求的所述确认发送到发布所述I/O相关写入请求的处理装置。
一些方面可进一步包含:在所述相关性域处接收所述第二混合I/O相关写入请求;针对由所述第二混合I/O相关写入请求指定的I/O相关性写入数据的地址执行相关性检查;和从所述共享存储器接收对所述第一混合I/O相关写入请求的确认。
一些方面可进一步包含:在所述共享存储器处从相关互连件接收所述第一混合I/O相关写入请求和所述I/O相关写入数据;执行所述第一混合I/O相关写入请求;和将对所述第一混合I/O相关写入请求的确认发送到所述相关互连件。
一些方面可进一步包含:从所述相关互连件接收通过所述相关性域对所述第一混合I/O相关写入请求的所述确认;和从所述相关互连件接收通过发布所述I/O相关写入请求的处理装置对所述第一混合I/O相关写入请求的所述确认。
一些方面可进一步包含:使用I/O相关模式通过处理装置将工作负载分流到硬件加速器以用于执行;当所述工作负载由所述硬件加速器执行时通过所述处理装置检测用于将相关互连件从非混合I/O相关写入模式切换到混合I/O相关写入模式的动态触发;和响应于检测到所述动态触发将所述相关互连件从非混合I/O相关写入模式切换到所述混合I/O相关写入模式。
其它方面包含经配置以执行上文概述的方法的操作的计算装置,其具有共享存储器、处理装置、相关性域和相关互连件。其它方面包含一种计算装置,其具有用于执行上文概述的方法的功能的装置。其它方面包含一种上面存储有处理器可执行指令的非暂时性处理器可读存储媒体,所述处理器可执行指令经配置成致使计算装置的处理装置执行上文概述的方法的操作。
附图说明
并入本文中并且构成本说明书的部分的附图说明各种方面的实例方面,且与上文给出的一般描述和下文给出的详细描述一起用以解释权利要求书的特征。
图1是说明适于实施方面的计算装置的组件框图。
图2是说明适于实施方面的实例多核处理器的组件框图。
图3A是说明适于实施方面的具有相关互连件的实例异构计算装置的框图。
图3B是根据一方面的说明实施I/O相关写入的实例异构计算装置的框及信令图。
图3C是根据一方面的说明实施混合I/O相关写入的实例异构计算装置的框及信令图。
图4是说明用于实施方面的非I/O相关工作负载处理的实例的信号及过程图。
图5是说明用于实施方面的I/O相关工作负载处理的实例的信号及过程图。
图6是说明用于实施方面的动态I/O相关工作负载处理的实例的信号及过程图。
图7是说明用于实施方面的动态I/O相关工作负载处理的实例的信号及过程图。
图8是说明用于实施方面的用于实施I/O相关工作负载处理及混合I/O相关写入的方法的信号及过程图。
图9是说明用于实施方面的用于实施动态I/O相关工作负载处理及混合I/O相关写入的方法的信号及过程图。
图10是根据一方面的说明用于实施混合I/O相关写入的方法的过程流程图。
图11是根据一方面的说明用于实施混合I/O相关写入的方法的过程流程图。
图12是根据一方面的说明用于实施混合I/O相关写入的方法的过程流程图。
图13是根据一方面的说明用于实施动态I/O相关工作负载处理及混合I/O相关写入的方法的过程流程图。
图14是根据各方面的说明用于实施I/O相关和/或动态I/O相关工作负载处理及混合I/O相关写入的方法的过程流程图。
图15是说明适合与各种方面一起使用的实例移动计算装置的组件框图。
图16是说明适合与各种方面一起使用的实例移动计算装置的组件框图。
图17是说明适合与各种方面一起使用的实例服务器的组件框图。
具体实施方式
将参考附图详细描述各种方面。在可能的情况下,将在整个图式中使用相同附图标记来指代相同或相似部分。参考特定实例和实施方案是出于说明性目的,且并非意图限制权利要求书的范围。
各种方面可包含方法及实施此类方法的系统以及装置,其通过硬件加速器实施对具有非I/O相关性能及I/O相关益处的随机存取存储器(RAM)的用于分流工作负载的输入/输出(I/O)相关写入操作。多个处理器可以是多核处理器。各种方面的设备和方法可包含摒弃从互连件到相关性域的写入数据路径和在互连件处针对从互连件到相关性域和RAM的写入请求路径分割写入请求。
术语“计算装置”和“移动计算装置”在本文中可互换地使用以指以下各项中的任何一个或全部:蜂窝式电话、智能电话、个人或移动多媒体播放器、个人数据助理(PDA)、笔记本电脑、平板计算机、可变形笔记本电脑/平板计算机(二合一计算机)、智能笔记本电脑、超级本、上网本、掌上型计算机、无线电子邮件接收器、具多媒体因特网功能的蜂窝式电话、移动游戏控制台和包含存储器和可编程处理器的类似个人电子装置。术语“计算装置”可进一步是指静止计算装置,包含个人计算机、台式计算机、一体化计算机、工作站、超级计算机、大型计算机、嵌入型计算机、服务器、家庭影院计算机和游戏控制台。
用于非I/O相关系统的写入操作相比于I/O相关系统可需要较少硬件,这是由于不需要实施相关性域。用于非I/O相关系统的写入请求可更快速执行,这是因为在较少硬件组件之间发射写入数据时涉及较少步骤。并且,在硬件加速器与RAM之间的到相关性域的数据路径在I/O相关系统中相比于非I/O相关系统中在加速器与RAM之间的数据路径,有效性较低。然而,非I/O相关系统写入操作相比于I/O相关系统写入操作可导致较大的存储器维护操作额外负担损失。这是因为,I/O相关系统可持续管理存储器相关性而非如在非I/O相关系统中一样必须在写入操作前后执行存储器维护操作。
混合I/O相关写入可仅复制从互连件到RAM的写入请求路径以也从互连件发射到相关性域。混合I/O相关写入可摒弃从互连件到相关性域的数据路径,从而沿着从加速器贯穿互连件到RAM的数据路径发射数据。去除到相关性域的复制数据路径可节省面积、功率及带宽,且减少等待时间,同时保持到相关性域的复制请求路径可允许实施存储器相关性操作。
为了实施混合I/O相关写入,当启用混合I/O相关写入时,互连件可从加速器接收具有相关联写入数据的写入请求,且通过添加或使用写入请求中的现有字段而将写入请求标记为混合I/O相关写入请求。互连件可复制混合I/O相关写入请求且将混合I/O相关写入请求的第一副本发送到RAM且将混合I/O相关写入请求的第二副本发送到相关性域。互连件还可在不复制写入数据且将其发送到相关性域的情况下将写入数据发送到RAM。RAM可沿着两个路径发送用于混合I/O相关写入请求的重复确认。第一重复确认可经由往回贯穿互连件到加速器的第一确认路径发送,且第二重复确认可经由到相关性域的第二确认路径发送。
相关性域可基于混合I/O相关写入请求的第二副本和第二重复确认管理存储器的相关性。相关性域可基于混合I/O相关写入请求的第二副本实施相关性检查及使无效。相关性域可基于第二重复确认实施清除事务。存储器驱动器可摒弃使用存储器使无效维护操作,因为相关性域可管理存储器的相关性。
从互连件到相关性域的写入请求路径可能需要仅支持写入请求所必需的带宽,且可能不需要支持用于写入请求数据的带宽。在各种方面中,用于写入请求的带宽可以是互连件与相关性域之间的路径的全部带宽的一半或小于所述一半。
图1说明包含适合与各种方面一起使用的计算装置10的系统。计算装置10可包含具有处理器14、存储器16、通信接口18及存储装置存储器接口20的芯片上系统(SoC)12。计算装置10可进一步包含通信组件22(诸如有线或无线调制解调器)、存储装置存储器24以及用于建立无线通信链路的天线26。处理器14可包含各种处理装置中的任一个,例如数个处理器核心。
术语“芯片上系统”(SoC)在本文中用以指通常但非排他地包含处理装置、存储器和通信接口的一组互连电子电路。处理装置可包含各种不同类型的处理器14和处理器核心,例如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、辅助处理器、单核心处理器和多核处理器。处理装置可进一步体现其它硬件和硬件组合,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑装置、离散门逻辑、晶体管逻辑、性能监视硬件、看门狗硬件和时间基准。集成电路可经配置以使得集成电路的组件驻留在例如硅的单件半导体材料上。
SoC 12可包含一或多个处理器14。计算装置10可包含多于一个SoC 12,进而增加处理器14和处理器核心的数目。计算装置10还可包含与SoC 12不相关联的处理器14。个别处理器14可以是多核处理器,如下文参考图2所描述。处理器14可出于特定目的各自经配置与计算装置10的其它处理器14相同或不同。具有相同或不同配置的处理器14和处理器核心中的一或多个可分组在一起。处理器14或处理器核心的群组可被称为多处理器集群。
SoC 12的存储器16可以是易失性或非易失性存储器,所述易失性或非易失性存储器经配置成用于存储数据和处理器可执行代码,以供处理器14存取。计算装置10和/或SoC12可包含经配置成用于各个目的的一或多个存储器16。一或多个存储器16可包含易失性存储器,例如随机存取存储器(RAM)或主存储器,或者高速缓冲存储器。这些存储器16可经配置以暂时地保存从数据传感器或子系统接收的有限量的数据、从非易失性存储器请求的从非易失性存储器加载到存储器16以基于各种因素预测未来存取的数据和/或处理器可执行代码指令,和/或由处理器14产生且暂时地存储用于未来快速存取而不存储于非易失性存储器中的中间处理数据和/或处理器可执行代码指令。
存储器16可经配置以至少暂时地存储从例如另一存储器16或存储装置存储器24等另一存储器装置加载到存储器16以供处理器14中的一或多个存取的数据和处理器可执行代码。加载到存储器16的数据或处理器可执行代码可响应于由处理器14执行功能而加载。响应于功能的执行而将数据或处理器可执行代码加载到存储器16可由对存储器16的存储器存取请求不成功或「未命中」造成,这是因为所请求的数据或处理器可执行代码不位于存储器16中。响应于未命中,可对另一存储器16或存储装置存储器24进行存储器存取请求,以将所请求的数据或处理器可执行代码从另一存储器16或存储装置存储器24加载到存储器装置16。响应于功能的执行而将数据或处理器可执行代码加载到存储器16可由对另一存储器16或存储装置存储器24的存储器存取请求造成,且数据或处理器可执行代码可加载到存储器16,以供随后存取。
存储装置存储器接口20和存储装置存储器24可共同工作以允许计算装置10在非易失性存储装置媒体上存储数据和处理器可执行代码。存储装置存储器24可经配置以非常类似存储器16的方面,其中存储装置存储器24可存储数据或处理器可执行代码以供处理器14中的一或多个存取。存储装置存储器24是非易失性的,可在已切断计算装置10的电源之后存留信息。当重新接通电源且计算装置10重新启动时,存储在存储装置存储器24上的信息可供计算装置10使用。存储装置存储器接口20可控制对存储装置存储器24的存取且允许处理器14从存储装置存储器24读取数据和将数据写入到存储装置存储器24。
计算装置10的组件中的一些或全部可在仍服务各种方面的功能时以不同方式布置和/或组合。计算装置10可不限于组件中的每一个中的一个,且每一组件的多个例子可包含在计算装置10的各种配置中。
图2说明适于实施方面的多核处理器。多核处理器14可包含多个处理器类型,包含例如中央处理单元、图形处理单元和/或数字处理单元。多核处理器14还可包含定制硬件加速器,其可包含经配置以实施功能的专用集合的定制处理硬件和/或通用硬件。
多核处理器可具有多个同构或异构处理器核心200、201、202、203。同构多核处理器可包含多个同构处理器核心。处理器核心200、201、202、203可以是同构的,原因在于多核处理器14的处理器核心200、201、202、203可经配置成用于相同目的且具有相同或类似性能特性。举例来说,多核处理器14可以是通用处理器,且处理器核心200、201、202、203可以是同构通用处理器核心。多核处理器14可以是图形处理单元或数字信号处理器,且处理器核心200、201、202、203可以分别是同构图形处理器核心或数字信号处理器核心。多核处理器14可以是具有同构处理器核心200、201、202、203的定制硬件加速器。为了易于参考,术语“定制硬件加速器”、“处理器”和“处理器核心”可在本文中互换使用。
异构多核处理器可包含多个异构处理器核心。处理器核心200、201、202、203可以是异构的,原因在于多核处理器14的处理器核心200、201、202、203可经配置成用于不同目的和/或具有不同性能特性。此类异构处理器核心的异构性可包含不同指令集架构、管线、操作频率等。此类异构处理器核心的实例可包含所谓的“big.LITTLE”架构,其中较慢、低功率处理器核心可与较强大和高功耗处理器核心耦合。在类似方面中,SoC(例如,图1的SoC12)可包含任何数目的同构或异构多核处理器14。在各种方面中,并非所有处理器核心200、201、202、203需要为异构处理器核心,因为异构多核处理器可包含处理器核心200、201、202、203的任何组合,所述处理器核心包含至少一个异构处理器核心。
多核处理器14的处理器核心200、201、202、203中的每一个可以指定为私有高速缓冲存储器210、212、214、216,所述私有高速缓冲存储器可专用于通过经指定处理器核心200、201、202、203进行读取和/或写入存取。私有高速缓冲存储器210、212、214、216可存储数据和/或指令,且使所存储数据和/或指令可用于私有高速缓冲存储器210、212、214、216专用于的处理器核心200、201、202、203,以用于供处理器核心200、201、202、203执行。私有高速缓冲存储器210、212、214、216可包含如本文中参考图1的存储器16所描述的易失性存储器。
多核处理器14可进一步包含共享高速缓冲存储器230,其可经配置以用于通过处理器核心200、201、202、203进行读取和/或写入存取。私有高速缓冲存储器210、212、214、216可存储数据和/或指令,且使所存储数据和/或指令可用于处理器核心200、201、202、203,以用于通过处理器核心200、201、202、203执行。共享高速缓冲存储器230还可作为缓冲器起作用,以用于数据和/或指令输入到多核处理器14和/或从多核处理器14输出。共享高速缓冲存储器230可包含如本文中参考图1的存储器16所描述的易失性存储器。
在图2中说明的实例中,多核处理器14包含四个处理器核心200、201、202、203(即,处理器核心0、处理器核心1、处理器核心2及处理器核心3)。在实例中,每一处理器核心200、201、202、203经指定为相应私有高速缓冲存储器210、212、214、216(即,处理器核心0及私有高速缓冲存储器0、处理器核心1及私有高速缓冲存储器1、处理器核心2及私有高速缓冲存储器2以及处理器核心3及私有高速缓冲存储器3)。为了易于解释,本文中的实例可指图2中所说明的四个处理器核心200、201、202、203及四个私有高速缓冲存储器210、212、214、216。然而,图2中所说明且本文中所描述的四个处理器核心200、201、202、203及四个私有高速缓冲存储器210、212、214、216仅仅提供作为一实例且决不意味将各种方面限制为具有四个经指定私有高速缓冲存储器的四核处理器系统。计算装置10、SoC 12或多核处理器14可个别地或组合地包含多于或少于本文中所说明且描述的四个处理器核心200、201、202、203及私有高速缓冲存储器210、212、214、216。
图3A到3C说明具有相关互连件的异构计算装置的实例方面。经配置以实施混合I/O相关写入和/或动态I/O相关性系统300的异构计算装置(例如图1中的计算装置10)可包含至少两个但高达任何整数数目“N”的处理装置(例如图1和2中的处理器14);例如处理装置(例如CPU)302、硬件加速器(例如GPU)306a、硬件加速器(例如DSP)306b和/或定制硬件加速器306c。每一处理装置302、306a、306b、306c可与处理装置高速缓冲存储器(例如图2中的私有高速缓冲存储器210、212、214、216和/或共享高速缓冲存储器230)相关联。举例来说,处理装置302可包含处理装置高速缓冲存储器(例如CPU高速缓冲存储器)308,硬件加速器306a可包含硬件加速器高速缓冲存储器(例如GPU高速缓冲存储器)310a,硬件加速器306b可包含硬件加速器高速缓冲存储器(例如DSP高速缓冲存储器)310b,和/或定制硬件加速器306c可包含定制硬件加速器高速缓冲存储器310c。如本文中所论述,处理装置302、306a、306b、306c中的每一个相对于彼此和/或在其相应处理器核心(例如图2中的处理器核心200、201、202、203)当中可以是同构的和/或异构的。
相关互连件312可通信地连接到处理装置302、306a、306b、306c,和任何数目的主存储器或随机存取存储器组件,例如共享存储器304(例如图1中的存储器16、24)。相关互连件312可经配置以实现且控制数据在各种已连接组件之间的发射。对于处理装置高速缓冲存储器308、310a、310b、310c和/或在I/O相关模式中操作的共享存储器304,相关性机构可由相关互连件312持续实施以确保处理装置高速缓冲存储器308、310a、310b、310c和/或共享存储器304中的数据的正确性。相关互连件312可经配置以在处理装置302、306a、306b、306c之间发射数据,使得处理装置302、306a、306b、306c可共享工作负载的处理且输出工作负载处理的结果。对于正确结果,输入到处理装置302、306a、306b、306c且从所述处理装置输出的数据可受到相关性要求的影响,所述相关性要求可在I/O相关模式起作用时由相关互连件312的相关性机构实施。在各种方面中,相关性域314或相关互连件312的其它相关性机构,例如探听过滤器(未展示),可经配置以基于接收对处理装置高速缓冲存储器308、310a、310b、310c和/或共享存储器304的存储器存取请求而执行相关性检查及使无效。相关性域314还可经配置以基于接收对处理装置302、306a、306b、306c和/或共享存储器304之间的事务的确认而清除事务。
当I/O相关模式不起作用或处理装置高速缓冲存储器308、310a、310b、310c和/或共享存储器304处于非I/O相关模式中时,输入到处理装置302、306a、306b、306c且从所述处理装置输出的数据的正确性可由处理装置302、306a、306b、306c自身管理。在各种方面中,高速缓冲存储器维护操作可由处理装置302、306a、306b、306c针对处理装置高速缓冲存储器308、310a、310b、310c中所存储的数据来实施。在各种方面中,包含高速缓冲存储器管理装置(未展示)和/或处理器核心的处理装置302、306a、306b、306c的组件可经配置以实施高速缓冲存储器维护操作。相关互连件312仍可在处理装置302、306a、306b和/或共享存储器304之间在数据之间发射数据而不实行相关性操作。
图3B说明具有实施I/O相关写入请求的相关互连件的异构计算装置的实例方面。图3B中的实例说明定制硬件加速器306c,其可由硬件加速器306a、306b中的任一个替换,所述定制硬件加速器306c发出具有I/O相关写入请求数据的I/O相关写入请求。定制硬件加速器306c可将I/O相关写入请求发出到共享存储器304。I/O相关写入请求可按照I/O相关写入请求路径324a、324b、324c、324d,且I/O相关写入请求数据可按照I/O相关写入数据路径320a、320b、320c、320d。在发出I/O相关写入请求后,定制硬件加速器306c可沿着I/O相关写入请求路径324a将I/O相关写入请求发送到相关互连件312,且沿着I/O相关写入数据路径320a将I/O相关写入请求数据发送到相关互连件312。
相关互连件312可沿着I/O相关写入请求路径324b将I/O相关写入请求导向到相关性域314,且沿着I/O相关写入数据路径320b将I/O相关写入请求数据导向到相关性域314。如本文中所描述,相关性域314可执行各种相关性操作以确保I/O相关写入请求数据的正确性。相关性域314可沿着I/O相关写入请求路径324c将I/O相关写入请求发送回到相关互连件312,且沿着I/O相关写入数据路径320c将I/O相关写入请求数据发送回到相关互连件312。相关互连件312可沿着I/O相关写入请求路径324d将I/O相关写入请求发送到共享存储器304,且沿着I/O相关写入数据路径320d将I/O相关写入请求数据发送到共享存储器304。
响应于I/O相关写入请求,共享存储器304可沿着I/O相关确认路径326a、326b、326c、326d将确认返回到定制硬件加速器306c和相关性域314。I/O相关确认路径326a、326b、326c、326d可按照I/O相关写入请求路径324a、324b、324c、324d从共享存储器304反向到定制硬件加速器306c,且可被称作I/O相关确认路径326a、326b、326c、326d。共享存储器304可沿着I/O相关确认路径326a将确认发送到相关互连件312。相关互连件312可沿着I/O相关确认路径326b将确认发送到相关性域314。相关互连件312可沿着I/O相关确认路径326c将确认发送回到相关互连件312。相关互连件312可沿着I/O相关确认路径326d将确认发送到定制硬件加速器306c。
相较于具有非I/O相关写入数据的非I/O相关写入请求,图3B中所说明的此实例展示I/O相关写入请求路径324a、324b、324c、324d与I/O相关写入数据路径320a、320b、320c通过相关互连件312的分散。如所说明,I/O相关写入请求和I/O相关写入请求数据可被发送通过相关性域314。非I/O相关写入请求和非I/O相关写入数据可通过相关互连件312直接发送到共享存储器304且不发送到相关性域314。从定制硬件加速器306c到共享存储器304的路径中的每一个可具有其自身等待时间。图3B中所说明的实例展示I/O相关写入高等待时间路径322a、322b、322c、322d。用于发射I/O相关写入请求和/或I/O相关写入请求数据的等待时间可沿着从定制硬件加速器306c到相关互连件312的I/O相关写入高等待时间路径322a;沿着从相关互连件312到相关性域314的I/O相关写入高等待时间路径322b;沿着从相关性域314返回到相关互连件312的I/O相关写入高等待时间路径322c;及沿着从相关互连件312到共享存储器304的I/O相关写入高等待时间路径322d。
图3C说明具有实施混合I/O相关写入请求的相关互连件的异构计算装置的实例方面。图3C中的实例说明定制硬件加速器306c,其可由硬件加速器306a、306b中的任一个替换,所述定制硬件加速器306c运用启用的混合I/O相关写入模式发出具有I/O相关写入请求数据的I/O相关写入请求。定制硬件加速器306c可将I/O相关写入请求发出到共享存储器304。I/O相关写入请求可按照混合I/O相关写入请求路径334a、334b、334d,且I/O相关写入请求数据可按照混合I/O相关写入数据路径330a、330d。在发出I/O相关写入请求后,定制硬件加速器306c可沿着混合I/O相关写入请求路径334a将I/O相关写入请求发送到相关互连件312,且沿着混合I/O相关写入数据路径330a将I/O相关写入请求数据发送到相关互连件312。
相关互连件312可确定启用混合I/O相关写入模式、将I/O相关写入请求标记为混合I/O相关写入请求,且沿着混合I/O相关写入请求路径334b将混合I/O相关写入请求导向到相关性域314。相关互连件312可能不会将I/O相关写入请求数据导向到相关性域314。如本文中所描述,相关性域314可执行各种相关性操作以确保I/O相关写入请求数据的正确性。由于相关性域314可不接收I/O相关写入请求数据,所以相关性域314可不将混合I/O相关写入请求和/或I/O相关写入请求数据发送到共享存储器304。相关互连件312可沿着混合I/O相关写入请求路径334d将混合I/O相关写入请求发送到共享存储器304,且沿着I/O相关写入数据路径330d将I/O相关写入请求数据发送到共享存储器304。
响应于混合I/O相关写入请求,共享存储器304可沿着混合I/O相关确认路径336a、336b、336c将确认返回到定制硬件加速器306c和相关性域314。共享存储器304可沿着混合I/O相关确认路径336a将确认发送到相关互连件312。在各种方面中,相关互连件312可沿着混合I/O相关确认路径336b将确认发送到相关性域314。在各种方面中,共享存储器304可沿着混合I/O相关确认路径336a、336b将确认发送到相关性域314。相关互连件312可沿着混合I/O相关确认路径336c将确认发送到定制硬件加速器306c。
图3C中所说明的此实例展示混合I/O相关写入请求路径334a、334b、334d与混合I/O相关写入数据路径330a、330d通过相关互连件312的分散。如所说明,混合I/O相关写入请求可发送到相关性域314且通过相关互连件312直接发送到共享存储器304。然而,不同于图3B中的实例,I/O相关写入请求数据可通过相关互连件312直接发送到共享存储器304,且不发送到相关性域314。从定制硬件加速器306c到共享存储器304的路径中的每一个可具有其自身等待时间。图3B中所说明的实例展示I/O相关写入高等待时间路径322a、322b、322c、322d穿过相关互连件312和相关性域314。图3C中所说明的实例展示混合I/O相关写入高等待时间路径332a、332d。用于发射混合I/O相关写入请求和/或I/O相关写入请求数据的等待时间可沿着从定制硬件加速器306c到相关互连件312的混合I/O相关写入高等待时间路径332a,且沿着从相关互连件312到共享存储器304的混合I/O相关写入高等待时间路径332d。
图3B中说明的实例中的I/O相关写入高等待时间路径322a、322b、322c、322d可穿过相关性域314,因为I/O相关写入请求路径324a、324b、324c、324d和I/O相关写入数据路径320a、320b、320c可均穿过相关性域314。然而,在图3C中说明的实例中,混合I/O相关写入高等待时间路径332a、332d可穿过相关互连件312且不穿过相关性域314,因为混合I/O相关写入数据路径330a、330d可不穿过相关性域314。相较于I/O相关写入,就用于距离的等待时间、时钟域交叉的数目和混合I/O相关写入的相关联逻辑而言,等待时间差可由较短路径解释。,相较于I/O相关写入,混合IO相关写入可通过将相关性操作与写入请求穿程到共享存储器304和写入请求在共享存储器304处执行重叠来提供性能速度优点。因此,混合I/O相关写入高等待时间路径332a、332d相比于I/O相关写入高等待时间路径322a、322b、322c、322d可展现较低等待时间。类似地,I/O相关写入请求相对于混合I/O相关写入请求的较慢性能相比于贯穿相关互连件312且不穿过相关性域314的混合I/O相关写入数据路径330a、330d可沿着贯穿相关性域314的I/O相关写入数据路径320a、320b、320c、320d由较低带宽可用性解释。
图3A到3C说明经配置以实施混合I/O相关写入系统和/或动态I/O相关性系统的异构计算装置的非限制性实例。本文中尤其参考图3A到3C的实例且关于图3A到3C所说明且描述的实例为非限制性的。经配置以实施混合I/O相关写入系统和/或动态I/O相关性系统的异构计算装置可包含任何数目的处理装置、处理器核心、处理装置高速缓冲存储器(例如私有高速缓冲存储器和/或共享高速缓冲存储器)、相关互连件、共享存储器和此类组件之间的连接件,和/或其组合。
图4到9说明工作负载分流的实例方面。这些实例说明从处理装置(例如CPU)302到硬件加速器(例如GPU、DSP、定制硬件加速器等)306的工作负载分流。这些实例说明处理装置302与单个硬件加速器306之间的工作负载分流。在各种方面中,在处理装置302与硬件加速器306之间发射的数据可通过读取/写入发射到共享存储器(例如图3A到3C中的共享存储器304),且可经由高速缓冲存储器未命中机构触发。在各种方面中,数据发射,包含经由共享存储器,可贯穿执行经分流工作负载来进行。一对一工作负载分流的这些实例为非限制性的,且处理装置302可将工作负载的部分分流到任何数目的硬件加速器306和/或其它处理装置302,包含经由任何数目的共享存储器。
在图4到9中所说明的实例中的每一个中,处理装置302可负责执行工作负载。处理装置302可经配置以将工作负载的部分分流到硬件加速器306。用于经分流工作负载的数据可存储在处理装置高速缓冲存储器(例如图3A中的处理装置高速缓冲存储器308)中。所述数据可经由相关互连件(例如图3A到3C中的相关互连件312)发射到硬件加速器306。在各种方面中,数据可发射通过共享存储器,所述共享存储器以通信方式连接到相关互连件或与所述相关互连件成一体。硬件加速器306可使用经发射数据执行经分流工作负载,且将结果发射回到处理装置302以写入到处理装置高速缓冲存储器。
图4说明非I/O相关工作负载处理的实例方面。为了将用于经分流工作负载的数据发射到硬件加速器306,且为了输出从硬件加速器306接收的结果,处理装置302可实施高速缓冲存储器维护操作以经由相关互连件将数据写入到共享存储器且接着写入到硬件加速器306或直接写入到硬件加速器306。如在本文中所提及,在非I/O相关数据发射期间,相关互连件可在处理装置302与共享存储器和/或硬件加速器306之间在数据之间发射数据且不实行相关性操作。
为了将用于经分流工作负载的数据发射到硬件加速器306,处理装置302可实施高速缓冲存储器清空维护操作400以经由相关互连件将数据写入到共享存储器和/或写入到硬件加速器306。将数据写入到多个目的地的高速缓冲存储器清空维护操作400产生额外负荷404a,所述额外负荷可根据处理装置高速缓冲存储器中为经分流工作负载写出的数据量而变化。存储在处理装置高速缓冲存储器中的数据可存储在分区或缓冲器中,且高速缓冲存储器清空维护操作400可针对处理装置高速缓冲存储器的此类特定部分来实施。否则,高速缓冲存储器清空维护操作400可针对整个处理装置高速缓冲存储器来实施。额外负荷404a可延迟硬件加速器306开始执行经分流工作负载。
在关于高速缓冲存储器清空维护操作400的额外负荷404a的时间期间,处理装置302可完成将工作负载的一部分分流到硬件加速器306。在各种方面中,将工作负载的一部分分流到硬件加速器306可包含通过存取处理装置高速缓冲存储器和/或共享存储器的硬件加速器306进行数据读取和写入。对共享存储器的存取可经由用于处理装置高速缓冲存储器的高速缓冲存储器未命中的高速缓冲存储器未命中机构来实施。硬件加速器306可使用从处理装置高速缓冲存储器和/或共享存储器检索的数据来执行经分流工作负载而无需在本机高速缓存数据。在各种方面中,硬件加速器306可将用于经分流工作负载的任何经发射数据存储到其硬件加速器高速缓冲存储器(例如图3A到3C中的处理装置高速缓冲存储器310a、310b、310c)。硬件加速器306可起动执行经分流工作负载408,且执行经分流工作负载406a。执行经分流工作负载所花费的时间长度可取决于各种因素,包含经分流工作负载的大小和/或复杂性、用于硬件加速器306的资源使用和/或可用性(包含电功率、计算能力、存储器空间、通信带宽),和/或包含温度的环境因素。硬件加速器306可结束经分流工作负载执行410,经由相关互连件将经分流工作负载执行406a的结果返回到处理装置302。
为了使经分流工作负载执行的结果可用于处理装置302,处理装置302可实施高速缓冲存储器使无效维护操作402以在所述结果由硬件加速器306输出之后将处理装置高速缓冲存储器空间的未来读取导向到当前存储作为未命中的结果的共享存储器。高速缓冲存储器使无效维护操作402也可能产生额外负荷404b,所述额外负荷可根据存储的经分流工作负载结果的数据量或处理装置高速缓冲存储器中用于存储经分流工作负载结果的空间而变化。额外负荷404b可延迟用于处理装置302存取的经分流工作负载结果的可用性。在完成高速缓冲存储器使无效维护操作402后,经分流工作负载结果可变得412用于通过处理装置302存取、使用和/或输出经分流工作负载结果。处理装置302可接收经分流工作负载执行406a的结果且将所述结果存储在其处理装置高速缓冲存储器中。
图5说明I/O相关工作负载处理的实例方面。为了将用于经分流工作负载的数据发射到硬件加速器306,且为了输出从硬件加速器306接收的结果,相关性机构(例如图3A到3C中的相关性域314和/或探听过滤器)可由相关互连件持续实施以确保处理装置高速缓冲存储器和/或共享存储器中的数据的正确性。因此,当处理装置高速缓冲存储器和/或共享存储器在I/O相关模式中时,处理装置302可不实施其可针对非I/O相关模式实施的高速缓冲存储器维护操作。
处理装置302可将工作负载的一部分分流到硬件加速器306。在各种方面中,将工作负载的一部分分流到硬件加速器306可包含通过存取处理装置高速缓冲存储器和/或共享存储器的硬件加速器306进行数据读取和写入。对共享存储器的存取可经由用于处理装置高速缓冲存储器的高速缓冲存储器未命中的高速缓冲存储器未命中机构来实施。硬件加速器306可使用从处理装置高速缓冲存储器和/或共享存储器检索的数据来执行经分流工作负载而无需在本机高速缓存数据。在各种方面中,硬件加速器306可将用于经分流工作负载的任何经发射数据存储到其硬件加速器高速缓冲存储器(例如图3A到3C中的处理装置高速缓冲存储器310a、310b、310c)。硬件加速器306可起动执行经分流工作负载408,且执行经分流工作负载406b。在I/O相关模式中,可维持相关性,同时发射数据使得在起动执行经分流工作负载408之前不引发额外负荷,而非在非I/O相关模式中,为处理装置高速缓冲存储器和/或共享存储器引发用于发射经分流工作负载数据的额外负荷。
仍可在执行经分流工作负载406b期间引发额外负荷404c的增加。此额外负荷404c可由经分流工作负载结果的数据行进的相关路径的性能引起。相关互连件可能不能够实施其相关性机构且与硬件加速器306产生经分流工作负载结果一样快地转移经分流工作负载结果。相关互连件可在实施相关性机构时造成用于经分流工作负载结果的瓶颈,从而导致添加的额外负荷404c。在各种方面中,额外负荷404c可与用于执行经分流工作负载406b的硬件加速器306的运行时间成比例或大致成比例。
一旦相关互连件的相关性机构完成其操作以确保处理装置高速缓冲存储器和/或共享存储器中的经分流工作负载结果的正确性,那么经分流工作负载结果可变为可用于412通过处理装置302存取、使用和/或输出经分流工作负载结果。
图6和7说明动态I/O相关工作负载处理的实例方面。在图6和7中的每一个中所说明的实例中,通过处理装置302的工作负载分流可在I/O相关模式中以处理装置高速缓冲存储器和/或共享存储器开始。因此,为了将用于经分流工作负载的数据发射到硬件加速器306,且为了接收和/或输出由硬件加速器306产生的结果,相关性机构(例如图3A到3C中的相关性域314和/或探听过滤器)可由相关互连件持续实施以确保处理装置高速缓冲存储器和/或共享存储器中的数据的正确性。因此,当处理装置高速缓冲存储器和/或共享存储器在I/O相关模式中时,处理装置302可不实施其可针对非I/O相关模式实施的高速缓冲存储器维护操作。
处理装置302可将工作负载的一部分分流到硬件加速器306。在各种方面中,将工作负载的一部分分流到硬件加速器306可包含通过存取处理装置高速缓冲存储器和/或共享存储器的硬件加速器306进行数据读取和写入。对共享存储器的存取可经由用于处理装置高速缓冲存储器的高速缓冲存储器未命中的高速缓冲存储器未命中机构来实施。硬件加速器306可使用从处理装置高速缓冲存储器和/或共享存储器检索的数据来执行经分流工作负载而无需在本机高速缓存数据。在各种方面中,硬件加速器306可将用于经分流工作负载的任何经发射数据存储到其硬件加速器高速缓冲存储器(例如图3A到3C中的处理装置高速缓冲存储器310a、310b、310c)。硬件加速器306可起动执行经分流工作负载408,且执行经分流工作负载406c、406d。在I/O相关模式中,可维持相关性,同时发射数据使得在起动执行经分流工作负载408之前不引发额外负荷,而非在非I/O相关模式中,为处理装置高速缓冲存储器和/或共享存储器引发用于发射经分流工作负载数据的额外负荷。
图6中所说明的实例是动态I/O相关工作负载处理的实施以用于通过硬件加速器306执行短期经分流工作负载。如本文中所描述,仍可因执行经分流工作负载406c而引发额外负荷404d。在动态I/O相关工作负载处理中,只要额外负荷404d保持低于额外负荷阈值,那么经分流工作负载406c的执行可在I/O相关模式中运用处理装置高速缓冲存储器和/或共享存储器继续。因此,额外负荷404d限于由发射如本文中所描述的经分流工作负载结果的相关互连件的性能引起的额外负荷。一旦相关互连件的相关性机构完成其操作以确保处理装置高速缓冲存储器和/或共享存储器中的经分流工作负载结果的正确性,那么经分流工作负载结果可变为可用于412通过处理装置302存取、使用和/或输出经分流工作负载结果。
图7中所说明的实例是动态I/O相关工作负载处理的实施以用于通过硬件加速器306执行长期经分流工作负载。如本文中所描述,仍可因执行经分流工作负载406c而引发额外负荷404e。在动态I/O相关工作负载处理中,长期经分流工作负载可产生超过额外负荷阈值的额外负荷404e。各种方法可用于检测超过额外负荷阈值的长期工作负载,包含处理装置302进入闲置状态、流逝的时间,和/或遭受执行经分流工作负载,如在本文中进一步描述。
响应于检测到长期经分流工作负载,处理装置302可将处理装置高速缓冲存储器和/或共享存储器从I/O相关模式动态地转变为非I/O相关模式。为了从I/O相关模式转变为非I/O相关模式,处理装置302可开始实施高速缓冲存储器维护操作,同时处理装置高速缓冲存储器和/或共享存储器保持在I/O相关模式中。举例来说,处理装置302可实施高速缓冲存储器清空维护操作400,同时硬件加速器继续经分流工作负载执行404d。在高速缓冲存储器清空维护操作400期间,经分流工作负载执行404d可继续引发I/O相关模式额外负荷404e,但不会因高速缓冲存储器清空维护操作400引发额外负荷。因此,额外负荷404d可限于由发射如本文中所描述的经分流工作负载结果的相关互连件的性能引起的额外负荷。
在完成高速缓冲存储器清空维护操作400后,处理装置高速缓冲存储器和/或共享存储器可从I/O相关模式动态地切换到非I/O相关模式414。I/O相关模式与非I/O相关模式之间的切换414可不中断经分流工作负载执行404d。当继续经分流工作负载执行404d时,可不再引发更多的I/O相关模式额外负荷404e。硬件加速器306可结束经分流工作负载执行410,经由相关互连件和/或共享存储器将经分流工作负载执行406d的结果返回到处理装置302。
为了使经分流工作负载执行的结果可用于处理装置302,处理装置302可实施如本文中进一步所论述的高速缓冲存储器使无效维护操作402。高速缓冲存储器使无效维护操作402可能产生额外负荷404b,所述额外负荷可根据存储的经分流工作负载结果的数据量或处理装置高速缓冲存储器中用于存储经分流工作负载结果的空间而变化。额外负荷404b可延迟用于处理装置302存取的经分流工作负载结果的可用性。在完成高速缓冲存储器使无效维护操作402后,经分流工作负载结果可变得412用于通过处理装置302存取、使用和/或输出经分流工作负载结果。处理装置302可接收经分流工作负载执行406a的结果且将所述结果存储在其处理装置高速缓冲存储器中。
图8说明具有混合I/O相关写入的I/O相关工作负载处理的实例方面。为了将用于经分流工作负载的数据发射到硬件加速器306,且为了输出从硬件加速器306接收的结果,相关性机构(例如图3A到3C中的相关性域314)可由相关互连件持续实施以确保处理装置高速缓冲存储器中的数据的正确性。因此,当处理装置高速缓冲存储器处于I/O相关模式中时,处理装置302可不实施其可针对非I/O相关模式实施的高速缓冲存储器维护操作。
具有混合I/O相关写入的I/O相关工作负载处理可类似于如本文中参考图5所描述的I/O相关工作负载处理。然而,将混合I/O相关写入包含在I/O相关工作负载处理中可减少所引发的额外负荷的量,因为通过将I/O相关写入数据发射通过与不具有混合I/O相关写入的I/O相关工作负载处理相同的相关性机构可不阻碍发射I/O相关写入数据。
处理装置302可将工作负载的一部分分流到硬件加速器306。硬件加速器306可将用于经分流工作负载的任何经发射数据存储到其硬件加速器高速缓冲存储器(例如图3中的处理装置高速缓冲存储器310a、310b、310c),在启用混合I/O相关写入的情况下起动执行经分流工作负载800,且执经分流工作负载406b。在I/O相关模式中,可维持相关性,同时传递数据使得在起动执行经分流工作负载408之前不引发额外负荷,而非在非I/O相关模式中,为处理装置高速缓冲存储器引发用于发射经分流工作负载数据的额外负荷。
在执行经分流工作负载406b期间,可实现图5中的额外负荷404c的减少,如额外负荷404f所说明。额外负荷的减少可产生自通过执行混合I/O相关写入请求来执行I/O相关写入请求的减少的等待时间,所述混合I/O相关写入请求避开将I/O相关写入日期发送通过相关性机构。硬件加速器306可结束经分流工作负载执行410,且经分流工作负载结果可变为可用于412使处理装置302输出分流工作负载结果。
图9说明具有混合I/O相关写入的动态I/O相关工作负载处理的实例方面。在图9中所说明的实例中,在通过处理装置302进行工作负载分流的情况下,处理装置高速缓冲存储器可处于I/O相关模式中。因此,为了将用于经分流工作负载的数据发射到硬件加速器306,且为了输出从硬件加速器306接收的结果,相关性机构(例如图3A到3C中的相关性域314)可由相关互连件312持续实施以确保处理装置高速缓冲存储器中的数据的正确性。因此,当处理装置处于I/O相关模式中时,处理装置302可能不实施其可针对非I/O相关模式实施的高速缓冲存储器维护操作。
具有混合I/O相关写入的动态I/O相关工作负载处理可类似于动态I/O相关工作负载处理,如本文中参考图7所描述。然而,将混合I/O相关写入包含在I/O相关工作负载处理中可减少所引发的额外负荷的量,因为通过将I/O相关写入数据发射通过与不具有混合I/O相关写入的I/O相关工作负载处理相同的相关性机构可不阻碍发射I/O相关写入数据。将混合I/O相关写入包含在I/O相关工作负载处理中还可减少所引发的额外负荷的量,这是由于相较于响应于检测到动态触发而使用的非I/O相关处理,混合I/O相关写入可以是I/O相关的。因此,可跳过使无效高速缓冲存储器维护操作,这是由于在具有混合I/O相关写入的动态I/O相关工作负载处理期间执行的I/O相关性操作可排除使处理装置高速缓冲存储器的部分使无效的需要。
处理装置302可将工作负载的一部分分流到硬件加速器306。硬件加速器306可将用于经分流工作负载的任何经发射数据存储到其硬件加速器高速缓冲存储器(例如图3A到3C中的处理装置高速缓冲存储器310a、310b、310c)且起动执行经分流工作负载408且执行经分流工作负载406d。在I/O相关模式中,可维持相关性,同时传递数据使得在起动执行经分流工作负载408之前不引发额外负荷,而非在非I/O相关模式中,为处理装置高速缓冲存储器引发用于发射经分流工作负载数据的额外负荷。
图9中所说明的实例是动态I/O相关工作负载处理的实施以用于通过硬件加速器306执行长期经分流工作负载。如本文中所描述,仍可因执行经分流工作负载406c而引发额外负荷404e。在动态I/O相关工作负载处理中,长期经分流工作负载可产生超过额外负荷阈值的额外负荷404e。各种方法可用于检测超过额外负荷阈值的长期工作负载,包含处理装置302进入闲置状态、流逝的时间,和/或遭受执行经分流工作负载,如在本文中进一步描述。
响应于检测到长期经分流工作负载,相关互连件可动态地转变到混合I/O相关写入模式。为了从I/O相关模式转变到非I/O相关模式,处理装置302可开始实施高速缓冲存储器维护操作,同时相关互连件保持在非混合I/O相关写入模式中。举例来说,处理装置302可实施高速缓冲存储器清空维护操作400,同时硬件加速器继续经分流工作负载执行404d。在高速缓冲存储器清空维护操作400期间,经分流工作负载执行404d可继续引发I/O相关模式额外负荷404e,但不会因高速缓冲存储器清空维护操作400引发额外负荷。因此,额外负荷404d可限于由发射如本文中所描述的经分流工作负载结果的相关互连件的性能引起的额外负荷。
在完成高速缓冲存储器清空维护操作400后,相关互连件可动态地转变到混合I/O相关写入模式900。非混合I/O相关写入模式与混合I/O相关写入模式之间的切换414可不中断经分流工作负载执行404d。当继续经分流工作负载执行404d时,不会由于未将I/O相关写入发射通过相关性机构而引发I/O相关模式额外负荷404e或引发较少I/O相关模式额外负荷404e。硬件加速器306可结束经分流工作负载执行410,经由相关互连件将经分流工作负载执行406d的结果返回到处理装置302,且经分流工作负载结果可变为可用于412使处理装置302输出经分流工作负载结果。如在本文中所提及,相较于转变到非I/O相关模式,可通过保持在I/O相关模式中而避免在使经分流工作负载结果可用412之前执行高速缓冲存储器使无效维护操作,进而去除与高速缓冲存储器使无效维护操作相关的额外负荷(例如图7中的额外负荷404b)。
图10说明根据一方面的用于实施混合I/O相关写入的方法1000。方法1000可用软件实施于计算装置中,所述软件在处理器(例如图1和2中的处理器14及图3到9中的处理装置302)中、在通用硬件中、在专用硬件(例如图3A到3C中的相关互连件312)中,或在软件经配置处理器与专用硬件的组合(例如在包含其它个别组件的动态I/O相关性系统和/或混合I/O相关写入系统(例如图3A到3C)内执行软体的处理器)中执行。为了涵盖能够在各个方面中实现的替代配置,实施方法1000的硬件在本文中被称作“处理装置”。
在框1002中,处理装置可从硬件加速器(例如图3A到3C中的GPU 306a、DSP 306b及定制硬件加速器306c,以及图4到9中的硬件加速器306)接收I/O相关写入请求和I/O相关写入数据。
在确定框1004中,处理装置可确定是否启用混合I/O相关写入模式。响应于确定不启用混合I/O相关写入模式(即,确定框1004=“否”),处理装置可在框1016中确定写入请求是I/O相关写入请求还是非I/O相关写入请求,且将写入请求和写入数据发送到经指定组件。对于I/O相关写入请求,处理装置可在框1016中将I/O相关写入请求和I/O相关写入数据发送到共享存储器(例如图3A到3C中的共享存储器304)且发送到相关性域(例如图3A到3C中的相关性域314)。对于非I/O相关写入请求,处理装置可在框1016中将非I/O相关写入请求和非I/O相关写入数据发送到共享存储器。
响应于确定启用混合I/O相关写入模式(即,确定框1004=“是”),处理装置可在任选的框1006中将I/O相关写入请求标记为混合I/O相关写入请求处理装置可通过在I/O相关写入请求中添加字段和/或重复使用I/O相关写入请求中的字段运用例如指定的位或值的标记来标记I/O相关写入请求,以指示I/O相关写入请求是混合I/O相关写入请求。
在框1008中,处理装置可从经标记I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求。在各种方面中,第一混合I/O相关写入请求和第二混合I/O相关写入请求中的一个或两个可以是经标记I/O相关写入请求的副本。
响应于确定启用混合I/O相关写入模式(即,确定框1004=“是”),处理装置可将第一混合I/O相关写入请求和第二混合I/O相关写入请求标记为框1008中产生的混合I/O相关写入请求,而非在任选框1006中将I/O相关写入请求标记为混合I/O相关写入请求。
在框1010中,处理装置可将第一混合I/O相关写入请求和I/O相关写入数据发送到共享存储器且将第二混合I/O相关写入请求发送到相关性域。如在本文中所提及,对于混合I/O相关写入请求或当启用混合I/O相关写入模式时,处理装置可避开将I/O相关写入数据发送到相关性域。
在框1012中,处理装置可从共享存储器接收对第一混合I/O相关写入请求的确认。
在框1014中,处理装置可将对第一混合I/O相关写入请求的确认发送到硬件加速器和/或相关性域。如在本文中进一步描述,在各种方面中,确认可发送到相关互连件且接着由相关互连件发送到相关性域。在各种方面中,确认可发送到相关互连件和相关性域,且相关互连件可能不需要将确认发送到相关性域。
图11说明根据一方面的用于实施混合I/O相关写入的方法1100。方法1100可用软件实施于计算装置中,所述软件在处理器(例如图1和2中的处理器14及图3到9中的处理装置302)中、在通用硬件中、在专用硬件(例如图3A到3C中的共享存储器304,包含共享存储器控制器(未展示),其经配置以控制对共享存储器304的存取且实施对其的读取/写入存储器存取请求)中,或在软件经配置的处理器和专用硬件的组合(例如在包含其它个别组件的动态I/O相关性系统和/或混合I/O相关写入系统(例如图3A到3C)内执行软件的处理器)中执行。为了涵盖能够在各个方面中实现的替代配置,实施方法1000的硬件在本文中被称作“处理装置”。
在框1102中,处理装置可接收I/O相关写入请求。在各种方面中,I/O相关写入请求可从相关互连件(例如图3A到3C中的相关互连件312)或从相关性域(例如图3A到3C中的相关性域314)接收。在各种方面中,I/O相关写入请求可以是混合I/O相关写入请求,包含本文中所描述的第一混合I/O相关写入请求或第二混合I/O相关写入请求。
在任选的框1104中,处理装置可接收I/O相关写入数据。在各种方面中,I/O相关写入数据可从相关互连件或从相关性域接收。框1104是任选的,因为处理装置可不从相关性域接收用于混合I/O相关写入请求的I/O相关写入数据。
在确定框1106中,处理装置可确定经接收I/O相关写入请求是否是混合I/O相关写入请求。混合I/O相关写入请求可包含第一混合I/O相关写入请求或第二混合I/O相关写入请求。处理装置可经配置以检查经接收I/O相关写入请求是混合I/O相关写入请求(例如具有特定位或值的经接收I/O相关写入请求的特定字段)的经指定指示。
响应于确定经接收I/O相关写入请求并非混合I/O相关写入请求(即,确定框1106=“否”),处理装置可在框1118中执行非混合I/O相关写入请求。
响应于确定经接收I/O相关写入请求是混合I/O相关写入请求(即,确定框1106=“是”),处理装置可在确定框1108中确定混合I/O相关写入请求是否从相关互连件接收。在各种方面中,处理装置可替代地确定混合I/O相关写入请求是否从相关性域接收,或确定混合I/O相关写入请求是从相关互连件和相关性域中的哪个接收。在各种方面中,处理装置可在使用诸多标识符中的任一个时对混合I/O相关写入请求的源做出这些确定,所述标识符包含与混合I/O相关写入请求包含在一起的指示,所述指示识别混合I/O相关写入请求的源、在处理装置的经指定硬件位置处接收混合I/O相关写入请求和/或是否也接收I/O相关写入数据且I/O相关写入数据是否从同一源接收作为混合I/O相关写入请求。来自相关互连件的混合I/O相关写入请求可包含第一混合I/O相关写入请求,且来自相关性域的混合I/O相关写入请求可包含第二混合I/O相关写入请求。
响应于确定混合I/O相关写入请求是从相关互连件接收(即,确定框1108=“是”),处理装置可通过在框1110中将I/O相关写入数据存储到共享存储器来执行混合I/O相关写入请求,且在框1112中将对混合I/O相关写入请求的确认发送到相关互连件。在一些方面中,处理装置可经配置以当在框1110中将I/O相关写入数据存储到共享存储器时,在框1112中将对混合I/O相关写入请求的确认发送到相关互连件,且在框1116中将对混合I/O相关写入请求的确认发送到相关性域。在此些方面中,处理装置可将确认发送到相关性域,或相关互连件可将确认发送到相关性域。混合I/O相关写入请求可包含第一混合I/O相关写入请求或第二混合I/O相关写入请求。
响应于确定混合I/O相关写入请求并非从相关互连件接收(即,确定框1108=“否”)(即,混合I/O相关写入请求是从相关性域接收),处理装置可在框1114中等待在框1110中将I/O相关写入数据存储到共享存储器。在一些方面中,当在框1114中等待存储写入数据之后在框1110中将I/O相关写入数据存储到共享存储器时,处理装置可在框1112中将对混合I/O相关写入请求的确认发送到相关互连件。在一些方面中,当在框1114中等待存储写入数据之后在框1110中将I/O相关写入数据存储到共享存储器时,处理装置可在框1116中将对混合I/O相关写入请求的确认发送到相关性域。在各种方面中,混合I/O相关写入请求可包含第一混合I/O相关写入请求或第二混合I/O相关写入请求。
图12说明根据一方面的用于实施混合I/O相关写入的方法1200。方法1200可用软件实施于计算装置中,所述软件在处理器(例如图1和2中的处理器14及图3到9中的处理装置302)中、在通用硬件中、在专用硬件(例如图3A到3C中的相关性域314)中、或在软件经配置的处理器与专用硬件的组合(例如在包含其它个别组件的动态I/O相关性系统和/或混合I/O相关写入系统(例如图3A到3C)内执行软件的处理器)中执行。为了涵盖能够在各个方面中实现的替代配置,实施方法1000的硬件在本文中被称作“处理装置”。
在框1202中,处理装置可接收I/O相关写入请求。在各种方面中,I/O相关写入请求可从相关互连件(例如图3A到3C中的相关互连件312)接收。混合I/O相关写入请求可包含第二混合I/O相关写入请求。
在任选的框1204中,处理装置可接收I/O相关写入数据。在各种方面中,I/O相关写入数据可从相关互连件接收。框1204是任选的,因为处理装置可不从相关互连件接收用于混合I/O相关写入请求的I/O相关写入数据。
在确定框1206中,处理装置可确定经接收I/O相关写入请求是否是混合I/O相关写入请求。处理装置可经配置以检查经接收I/O相关写入请求是混合I/O相关写入请求(例如具有特定位或值的经接收I/O相关写入请求的特定字段)的经指定指示。混合I/O相关写入请求可包含第二混合I/O相关写入请求。
响应于确定经接收I/O相关写入请求并非混合I/O相关写入请求(即,确定框1206=“否”),处理装置可在框1218中执行用于经接收I/O相关写入数据的相关性检查和使无效操作。在框1220中,处理装置可将非混合I/O相关写入请求和I/O相关写入数据发送到共享存储器(例如图3A到3C中的共享存储器304)。在各种方面中,处理装置可经由相关互连件将非混合I/O相关写入请求和I/O相关写入数据发送到共享存储器。
响应于确定经接收I/O相关写入请求并非混合I/O相关写入请求(即,确定框1206=“是”),处理装置可在框1208中执行用于经接收I/O相关写入数据的相关性检查和使无效操作。在各种方面中,可针对由混合I/O相关写入请求(包含第二混合I/O相关写入请求)指定的I/O相关性写入数据的地址执行相关性检查和使无效操作。在框1210中,处理装置可从共享存储器接收对混合I/O相关写入请求的确认。所述确认可以是针对第一混合I/O相关写入请求和/或第二混合I/O相关写入请求。
在确定框1212中,处理装置可确定所述确认是否是针对已经接收的混合I/O相关写入请求。在各种方面中,对应于混合I/O相关写入请求的确认可在混合I/O相关写入请求之前在相关性域处接收。此可例如由关于相关性域的输入的拥塞造成。为了避免在处理对应的混合I/O相关写入请求之前处理确认,相关性域可经配置以缓冲确认直到处理了对应的混合I/O相关写入请求为止。所述确认可以是针对第一混合I/O相关写入请求和/或第二混合I/O相关写入请求。在各种实施例中,确认可以是针对第一混合I/O相关写入请求,且经接收混合I/O相关写入请求可包含第二混合I/O相关写入请求。第二混合I/O相关写入请求仍可对应于所述确认,因为其可与第一混合I/O相关写入请求相同。
响应于确定所述确认并非针对已经接收的混合I/O相关写入请求(即,确定框1212=“否”),处理装置可在框1214中缓冲所述确认。处理装置可在本机和/或私有存储器(例如图1中的存储器16、24)中缓冲所述确认。处理装置可通过将所述确认维持在缓冲器单元中、在框1202中接收对应的混合I/O相关写入请求及在确定框1212中确定所述确认是针对已经接收的混合I/O相关写入请求来阻止处理所述确认。混合I/O相关写入请求可包含第一混合I/O相关写入请求和/或第二混合I/O相关写入请求。
响应于确定所述确认是针对已经接收的混合I/O相关写入请求(即,确定框1212=“是”),处理装置可在框1216中清除混合I/O相关性写入请求事务。混合I/O相关写入请求可包含第二混合I/O相关写入请求。
图13说明根据一方面的用于实施具有混合I/O相关写入的动态I/O相关工作负载处理的方法1300。方法1300可用软件实施于计算装置中,所述软件在处理器(例如图1和2中的处理器14及图3到7中的处理装置302)中、在通用硬件中、在专用硬件中、或在软件经配置的处理器与专用硬件的组合(例如在包含其它个别组件的动态I/O相关性系统(例如图3A到3C)内执行软件的处理器)中执行。为了涵盖能够在各个方面中实现的替代配置,实施方法1300的硬件在本文中被称作“处理装置”。
在框1302中,处理装置可为处理装置高速缓冲存储器(例如图3A中的处理装置高速缓冲存储器308)和/或共享存储器(例如图3A到3C中的共享存储器304)将I/O相关模式设定为“开启”。或者,处理装置可为处理装置高速缓冲存储器和/或共享存储器将非I/O相关模式设定为“关闭”。在各种方面中,可为处理装置高速缓冲存储器和/或共享存储器将I/O相关模式设定为“开启”作为默认状态,因此将I/O相关模式设定为“开启”可以是不必要的。将I/O相关模式设定为“开启”可以是一种预防措施,即使“开启”是默认I/O相关模式状态。
在框1304中,处理装置可使用I/O相关模式在硬件加速器(例如图3A到3C中的GPU306a、DSP 306b、定制硬件加速器306c和图4到7中的硬件加速器306)上起动经分流工作负载执行。如本文中所论述,起动执行可立即将工作负载分流到硬件加速器,因为不会因使用I/O相关模式将数据从处理装置发射到硬件加速器以用于执行而引发额外负荷。用以在处理装置与硬件加速器之间发射数据的存储器存取请求可经路由通过相关互连件(例如图3A到3C中的相关性域314)的I/O相关路径。在处理装置与硬件加速器之间发射的数据可包含用于执行经分流工作负载的从处理装置到硬件加速器的数据和作为经执行的经分流工作负载的结果的从硬件加速器到处理装置的数据。在处理装置与硬件加速器之间发射的数据可经发射通过共享存储器。
在确定框1306中,处理装置可确定经分流工作负载是否已由硬件加速器完成。
响应于确定经分流工作负载由硬件加速器完成(即,确定框1306=“是”),处理装置可在框1318中从硬件加速器接收执行经分流工作负载的结果。执行经分流工作负载的结果可由硬件加速器输出到共享存储器且由处理装置从共享存储器检索。完全在I/O相关模式中完成执行经分流工作负载可表示由于管理数据的相关性的相关互连件的I/O相关机构,高速缓冲存储器维护操作为不必要的。
响应于确定经分流工作负载并非由硬件加速器完成(即,确定框1306=“否”),处理装置可在确定框1308中确定是否检测到用于在I/O相关模式与非I/O相关模式之间切换的动态触发。动态触发可用于确定经分流工作负载何时可增长到I/O相关模式额外负荷损失可以是不期望或不可接受的程度。确定是否检测到动态触发可以各种方式的任何组合完成。
在一些方面中,动态触发可包含预设或经计算时间流逝,且检测动态触发可涉及检测时间已经流逝。在各种方面中,所述时间可基于用于通过硬件加速器执行经分流工作负载的预期时间量来预设或计算。经分流工作负载的预期执行时间可基于各种因素,包含经分流工作负载的大小和/或复杂性、用于硬件加速器的资源使用和/或可用性(包含电功率、计算能力、存储器空间和/或通信带宽),和/或包含温度的环境因素。在各种方面中,时间可经预设或计算为平凡值,例如零(0),以触发I/O相关模式与非I/O相关模式之间的立即切换。
在一些方面中,动态触发可包含感测处理装置转变到闲置状态和/或处于闲置状态中。闲置状态可指示硬件加速器可比预期更慢地执行经分流工作负载,因为处理装置已停工且等待硬件加速器结束经分流工作负载。分流工作负载的目标在于有效地使用计算资源以执行工作负载。因此,处理装置转变到闲置状态和/或处于闲置状态中可指示计算资源的低效使用。
在一些方面中,动态触发可包含遭受使用I/O相关路径而执行经分流工作负载的指示。可基于多种度量检测到经分流工作负载遭受。经增强工作负载可告知驱动器性能。使用静态指派或基于工作负载分类的方法经由测试或随机测试可导致指示工作负载遭受的标准超时或信号。轮询硬件性能寄存器可提供指示工作负载遭受的数据。接近最大值的高互连操作级,例如带宽和/或未完成的事务可持续地指示节流。高加速器存储器等待时间可指示等待时间限制。高加速器存储器背压可指示带宽节流。归因于存储器的高加速器闲置结合高占用存储器请求队列可指示带宽受到限制。
响应于确定未检测到用于在I/O相关模式与非I/O相关模式之间切换的动态触发(即,确定框1308=“否”),处理装置可确定在确定框1306中经分流工作负载是否由硬件加速器完成。
响应于确定检测到用于在I/O相关模式与非I/O相关模式之间切换的动态触发(即,确定框1308=“是”),处理装置可在框1310中执行延迟处理装置高速缓冲存储器维护。如本文中所论述,为了准备从I/O相关模式切换到非I/O相关模式,处理装置可执行用于处理装置高速缓冲存储器的高速缓冲存储器清空维护操作。硬件加速器可继续执行经分流工作负载,同时处理装置在框1310中执行高速缓冲存储器清空维护操作。
在确定框1312中,处理装置可确定经分流工作负载是否由硬件加速器完成。
响应于确定经分流工作负载由硬件加速器完成(即,确定框1312=“是”),处理装置可在框1318中接收从硬件加速器接收的经分流工作负载的执行的结果。完全在I/O相关模式中完成执行经分流工作负载可表示由于管理数据的相关性的相关互连件的I/O相关机构,高速缓冲存储器维护操作为不必要的。当可能已经执行高速缓冲存储器清空维护操作时,由于高速缓冲存储器清空维护操作的执行与在I/O相关模式中时执行经分流工作负载并联,因此不会因执行高速缓冲存储器清空维护操作而引发额外额外负荷。
响应于确定经分流工作负载由硬件加速器完成(即,确定框1312=“否”),处理装置可在框1314中将相关互连件从非混合I/O相关写入模式切换到混合I/O相关写入模式。在框1314中从非混合I/O相关写入模式切换到混合I/O相关写入模式可包含将混合I/O相关写入模式的状态设定为“开启”或将非混合I/O相关写入模式的状态设定为“关闭”。从非混合I/O相关写入模式切换到混合I/O相关写入模式可通过如在本文中参考图3B、3C和8到12进一步描述的相关互连件和相关性域改变I/O相关写入数据和I/O相关写入请求的路由。
在框1316中,当相关互连件处于混合I/O相关写入模式中时,硬件加速器可继续执行经分流工作负载,如在本文中进一步描述。
图14说明根据一方面的用于实施具有混合I/O相关写入的I/O相关和/或动态I/O相关工作负载处理的方法1400。方法1400可用软件实施于计算装置中,所述软件在处理器(例如图1和2中的处理器14及图3到7中的处理装置302)中、在通用硬件中、在专用硬件中、或在软件经配置的处理器与专用硬件的组合(例如在包含其它个别组件的动态I/O相关性系统(例如图3A到3C)内执行软件的处理器)中执行。为了涵盖能够在各个方面中实现的替代配置,实施方法1400的硬件在本文中被称作“处理装置”。在各种方面中,方法1400可以是用于实施具有混合I/O相关写入的I/O相关工作负载处理的独立方法,且可进一步描述用于实施具有混合I/O相关写入的动态I/O相关工作负载处理的方法1300的框1314和1316。
在框1402中,处理装置可针对相关互连件(例如图3A到3C中的相关互连件312)将混合I/O相关写入模式设定为“开启”。或者,处理装置可针对相关互连件将非混合I/O相关写入模式设定为“关闭”。
在框1404中,为了实施具有混合I/O相关写入的I/O相关工作负载处理,处理装置可使用混合I/O相关写入模式在硬件加速器(例如图3A到3C中的GPU 306a、DSP 306b、定制硬件加速器306c和图4到7中的硬件加速器306)上起动经分流工作负载执行。如本文中所论述,起动执行可立即将工作负载分流到硬件加速器,因为不会因当使用I/O相关模式时将数据从处理装置发射到硬件加速器而引发额外负荷。在框1404中,为了实施具有混合I/O相关写入的动态I/O相关工作负载处理,硬件加速器可在针对相关互连件启用混合I/O相关写入模式时执行剩余的经分流工作负载。
在确定框1406中,处理装置可确定剩余的经分流工作负载是否由硬件加速器完成。
响应于确定经分流工作负载未由硬件加速器完成(即,确定框1406=“否”),处理装置可在确定框1406中持续确定剩余的经分流工作负载是否由硬件加速器完成。当经分流工作负载未由硬件加速器完成时,硬件加速器可在框1404中继续执行剩余的经分流工作负载。在通过硬件加速器执行剩余的经分流工作负载期间,因为相关互连件已经切换到混合I/O相关写入模式,所以剩余的工作负载可不再因而路由I/O相关性写入数据以避开相关互连件的相关性机构(例如图3A到3C中的相关性域314)而引发额外负荷或引发很多额外负荷。
响应于确定经分流工作负载由硬件加速器完成(即,确定框1406=“是”),处理装置可在框1408中接收经分流工作负载结果。处理装置可接收经分流工作负载的执行的结果且将所述结果存储在处理装置高速缓冲存储器中。如本文中所论述,针对混合I/O相关性写入请求执行的相关性操作可排除执行包含使无效高速缓冲存储器维护操作的其它存储器维护操作的需要,以使经分流工作负载结果可用于由处理装置输出。
各种方面(包含但不限于上文参考图1到14所描述的方面)可实施于包含移动计算装置的广泛多种计算系统中,图15中说明适合与各种方面一起使用的所述计算系统的实例。移动计算装置1500可包含耦合到触摸屏控制器1504和内部存储器1506的处理器1502。处理器1502可为指定用于一般或专有处理任务的一或多个多核集成电路。内部存储器1506可以是易失性或非易失性存储器,并且还可为安全和/或经加密的存储器,或不安全和/或未加密的存储器,或其任何组合。可利用的存储器类型的实例包含但不限于DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。触摸屏控制器1504和处理器1502也可耦合到触摸屏面板1512,例如电阻式感测触摸屏、电容式感测触摸屏、红外感测触摸屏等。另外,计算装置1500的显示器无需具有触摸屏能力。
移动计算装置1500可具有一或多个无线电信号收发器1508(例如Peanut、蓝牙、紫蜂、Wi-Fi、RF无线电)和天线1510,其用于发送和接收通信、彼此耦合和/或耦合到处理器1502。收发器1508和天线1510可与上文所提到的电路一起使用以实施各种无线发射协议栈及接口。移动计算装置1500可包含蜂窝式网络无线调制解调器芯片1516,其使得能够经由蜂窝网络通信,并耦合到处理器。
移动计算装置1500可包含耦合到处理器1502的外围装置连接接口1518。外围装置连接接口1518可单一地经配置以接受一种类型的连接,或可经配置以共同或专有地接受各种类型的物理和通信连接,例如通用串行总线(USB)、FireWire、Thunderbolt或PCIe。外围装置连接接口1518还可耦合到类似经配置的外围装置连接端口(未图示)。
移动计算装置1500还可包含用于提供音频输出的扬声器1514。移动计算装置1500还可包含外壳1520,所述外壳1520由塑料、金属或材料的组合构成,用于含有本文中所描述的组件中的所有或一些。移动计算装置1500可包含耦合到处理器1502的电源1522,例如一次性或可再充电电池。可再充电电池还可耦合到外围装置连接端口,以接收来自移动计算装置1500外部的来源的充电电流。移动计算装置1500还可包含用于接收用户输入的物理按钮1524。移动计算装置1500还可包含用于接通和断开移动计算装置1500的电源按钮1526。
各种方面(包含但不限于上文参考图1到14所描述的方面)可实施于包含笔记本电脑1600的广泛多种计算系统中,图16中说明所述计算系统的实例。许多笔记本电脑包含充当计算机的指向装置的触摸板触摸表面1617,并且因此可以接收拖动、滚动和滑动手势,类似于配备有触摸屏显示器并且如上文所描述的计算装置上实施的那些手势。笔记本电脑1600通常将包含耦合到易失性存储器1612和大容量非易失性存储器(例如快闪存储器的磁盘驱动器1613)的处理器1611。另外,计算机1600可具有用于发送和接收电磁辐射的一或多个天线1608,所述天线可连接到耦合到处理器1611的无线数据链路和/或蜂窝电话收发器1616。计算机1600还可包含耦合到处理器1611的软盘驱动器1614和压缩光盘(CD)驱动器1615。在笔记本配置中,计算机外壳包含触摸板1617、键盘1618和显示器1619,其均耦合到处理器1611。众所周知,计算装置的其它配置可包含耦合到处理器(例如经由USB输入)的计算机鼠标或跟踪球,其还可结合各种方面使用。
各种方面(包含但不限于上文参考图1到14所描述的方面)还可实施于固定计算系统中,例如多种可商购的服务器中的任一个。图17中说明实例服务器1700。此服务器1700通常包含耦合到易失性存储器1702和大容量非易失性存储器的一或多个多核处理器组合件1701,例如磁盘驱动器1704。如图17中所说明,多核组合件1701可通过将其插入到组合件架中而添加到服务器1700。服务器1700还可包含耦合到处理器1701的软盘驱动器、压缩光盘(CD)或数字多功能光盘(DVD)磁盘驱动器1706。服务器1700还可包含耦合到多核处理器组合件1701以用于与网络1705建立网络接口连接的网络接入端口1703,所述网络例如耦合到其它广播系统计算机和服务器的局域网、互联网、公共电话交换网和/或蜂窝数据网络(例如CDMA、TDMA、GSM、PCS、3G、4G、LTE或任何其它类型的蜂窝数据网络)。
用于在可编程处理器上执行以用于执行各种方面的操作的计算机程序代码或“程序代码”可以例如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、结构化查询语言(例如,Transact-SQL)、Perl或各种其它编程语言等高级编程语言编写。存储在计算机可读存储媒体上的程序代码或程序如在本申请案中所使用可以指机器语言代码(例如,目标代码),所述机器语言代码的格式可由处理器理解。
前文方法描述和过程流程图仅作为说明性实例而提供且并不既定要求或暗示必须以所呈现的次序执行各种方面的操作。如所属领域的技术人员将了解,可以任何次序执行前述方面中的操作的次序。例如“其后”、“接着”、“接下来”等词语并不希望限制操作的次序;这些词语仅用以引导读者浏览方法的描述。此外,举例来说,使用冠词“一”或“所述”对单数形式的权利要求要素的任何参考不应被解释为将所述要素限制为单数。
结合各种方面描述的各种说明性逻辑块、模块、电路和算法操作可实施为电子硬件、计算机软件,或两者的组合。为清晰地说明硬件与软件的此可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和操作。此类功能性被实施为硬件还是软件取决于特定应用和施加于整个系统上的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为造成对权利要求书的范围的脱离。
用以实施结合本文中所公开的方面而描述的各种说明性逻辑、逻辑块、模块和电路的硬件可用以下各项来实施或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或经设计以执行本文中所描述的功能的其任何组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心结合,或任何其它此类配置。或者,可通过具体针对给定功能的电路来执行一些操作或方法。
在一或多个方面中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么所述功能可作为一或多个指令或代码存储在非暂时性计算机可读媒体或非暂时性处理器可读媒体上。本文中所公开的方法或算法的操作可体现于可驻留在非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块中。非暂时性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。作为实例而非作为限制,此类非暂时性计算机可读或处理器可读媒体可包含RAM、ROM、EEPROM、闪存存储器、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式存储所需程序代码且可由计算机存取的任何其它媒体。如本文中所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘和蓝光光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。上文各项的组合也包含在非暂时性计算机可读和处理器可读媒体的范围内。另外,方法或算法的操作可作为代码和/或指令中的一个或任何组合或集合而驻留在可并入到计算机程序产品中的非暂时性处理器可读媒体和/或计算机可读媒体上。
提供对所公开方面的先前描述以使得所属领域的任何技术人员能够制造或使用权利要求书。所属领域的技术人员将容易明了对这些方面的各种修改,且本文中界定的一般原理可应用于其它方面和实施方案而不脱离权利要求书的范围。因此,本公开并不意图限于本文中所描述的方面和实施方案,而是应符合与所附权利要求书以及本文中所公开的原理和新颖特征相一致的最广范围。
Claims (30)
1.一种在计算装置上实施混合输入/输出I/O相关写入请求的方法,其包括:
接收I/O相关写入请求;
从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求;
将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到共享存储器;和
将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到相关性域。
2.根据权利要求1所述的方法,其进一步包括确定是否启用混合I/O相关写入模式,
其中从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求包括响应于确定启用所述混合I/O相关写入模式而从所述I/O相关写入请求产生所述第一混合I/O相关写入请求和所述第二混合I/O相关写入请求。
3.根据权利要求2所述的方法,其进一步包括响应于确定启用所述混合I/O相关写入模式而将所述I/O相关写入请求标记为混合I/O相关写入请求。
4.根据权利要求1所述的方法,其进一步包括:
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认;和
将对所述第一混合I/O相关写入请求的所述确认发送到发布所述I/O相关写入请求的处理装置。
5.根据权利要求1所述的方法,其进一步包括:
在所述相关性域处接收所述第二混合I/O相关写入请求;
针对由所述第二混合I/O相关写入请求指定的I/O相关性写入数据的地址执行相关性检查;和
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认。
6.根据权利要求1所述的方法,其进一步包括:
在所述共享存储器处从相关互连件接收所述第一混合I/O相关写入请求和所述I/O相关写入数据;
执行所述第一混合I/O相关写入请求;和
将对所述第一混合I/O相关写入请求的确认发送到所述相关互连件。
7.根据权利要求6所述的方法,其进一步包括:
通过所述相关性域从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认;和
通过发布所述I/O相关写入请求的处理装置从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认。
8.根据权利要求1所述的方法,其进一步包括:
使用I/O相关模式通过处理装置将工作负载分流到硬件加速器以用于执行;
当所述工作负载由所述硬件加速器执行时,通过所述处理装置检测用于将相关互连件从非混合I/O相关写入模式切换到混合I/O相关写入模式的动态触发;和
响应于检测到所述动态触发而将所述相关互连件从非混合I/O相关写入模式切换到所述混合I/O相关写入模式。
9.一种计算装置,其包括:
共享存储器;
处理装置;
相关性域;和
相关互连件,其耦合到所述共享存储器、所述处理装置和所述相关性域,其中所述相关互连件经配置以执行包括以下操作的操作:
接收I/O相关写入请求;
从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求;
将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到所述共享存储器;和
将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到所述相关性域。
10.根据权利要求9所述的计算装置,其中所述相关互连件经配置以执行进一步包括确定是否启用混合I/O相关写入模式的操作,
其中所述相关互连件经配置以执行操作使得从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求包括响应于确定启用所述混合I/O相关写入模式而从所述I/O相关写入请求产生所述第一混合I/O相关写入请求和所述第二混合I/O相关写入请求。
11.根据权利要求10所述的计算装置,其中所述相关互连件经配置以执行进一步包括响应于确定启用所述混合I/O相关写入模式而将所述I/O相关写入请求标记为混合I/O相关写入请求的操作。
12.根据权利要求9所述的计算装置,其中所述相关互连件经配置以执行进一步包括以下操作的操作:
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认;和
将对所述第一混合I/O相关写入请求的所述确认发送到发布所述I/O相关写入请求的所述处理装置。
13.根据权利要求9所述的计算装置,其中所述相关性域经配置以执行包括以下操作的操作:
接收所述第二混合I/O相关写入请求;
针对由所述第二混合I/O相关写入请求指定的I/O相关性写入数据的地址执行相关性检查;和
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认。
14.根据权利要求9所述的计算装置,其中所述共享存储器经配置以执行包括以下操作的操作:
从所述相关互连件接收所述第一混合I/O相关写入请求和所述I/O相关写入数据;
执行所述第一混合I/O相关写入请求;和
将对所述第一混合I/O相关写入请求的确认发送到所述相关互连件。
15.根据权利要求14所述的计算装置,其中:
所述相关性域经配置以执行包括以下操作的操作:
从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认;和
所述处理装置经配置以执行包括以下操作的操作:
从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认,其中所述处理装置发布所述I/O相关写入请求。
16.根据权利要求9所述的计算装置,其中所述处理装置是硬件加速器,且所述计算装置进一步包括第二处理装置,所述第二处理装置耦合到所述相关互连件且经配置以执行包括以下操作的操作:
使用I/O相关模式将工作负载分流到所述硬件加速器以用于执行;
当所述工作负载由所述硬件加速器时,检测用于将相关互连件从非混合I/O相关写入模式切换到混合I/O相关写入模式的动态触发;和
响应于检测到所述动态触发而将所述相关互连件从非混合I/O相关写入模式切换到所述混合I/O相关写入模式。
17.一种计算装置,其包括:
共享存储器;
相关性域;
用于接收I/O相关写入请求的装置;
用于从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求的装置;
用于将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到所述共享存储器的装置;和
用于将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到所述相关性域的装置。
18.根据权利要求17所述的计算装置,其进一步包括用于确定是否启用混合I/O相关写入模式的装置,
其中用于从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求的装置包括用于响应于确定启用所述混合I/O相关写入模式而从所述I/O相关写入请求产生所述第一混合I/O相关写入请求和所述第二混合I/O相关写入请求的装置。
19.根据权利要求18所述的计算装置,其进一步包括用于响应于确定启用所述混合I/O相关写入模式而将所述I/O相关写入请求标记为混合I/O相关写入请求的装置。
20.根据权利要求17所述的计算装置,其进一步包括:
用于从所述共享存储器接收对所述第一混合I/O相关写入请求的确认的装置;和
用于将对所述第一混合I/O相关写入请求的所述确认发送到发布所述I/O相关写入请求的处理装置的装置。
21.根据权利要求17所述的计算装置,其进一步包括:
用于在所述相关性域处接收所述第二混合I/O相关写入请求的装置;
用于针对由所述第二混合I/O相关写入请求指定的I/O相关性写入数据的地址执行相关性检查的装置;和
用于从所述共享存储器接收对所述第一混合I/O相关写入请求的确认的装置。
22.根据权利要求17所述的计算装置,其进一步包括:
用于在所述共享存储器处从相关互连件接收所述第一混合I/O相关写入请求和所述I/O相关写入数据的装置;
用于执行所述第一混合I/O相关写入请求的装置;和
用于将对所述第一混合I/O相关写入请求的确认发送到所述相关互连件的装置。
23.根据权利要求22所述的计算装置,其进一步包括:
用于通过所述相关性域从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认的装置;和
用于通过发布所述I/O相关写入请求的处理装置从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认的装置。
24.一种上面存储有处理器可执行指令的非暂时性处理器可读媒体,所述处理器可执行指令经配置以使计算装置的处理装置执行包括以下操作的操作:
接收I/O相关写入请求;
从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求;
将所述I/O相关写入请求的所述第一混合I/O相关写入请求和I/O相关写入数据发送到共享存储器;和
将所述I/O相关写入请求的不具有所述I/O相关写入数据的所述第二混合I/O相关写入请求发送到相关性域。
25.根据权利要求24所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置执行进一步包括确定是否启用混合I/O相关写入模式的操作,
其中从所述I/O相关写入请求产生第一混合I/O相关写入请求和第二混合I/O相关写入请求包括响应于确定启用所述混合I/O相关写入模式而从所述I/O相关写入请求产生所述第一混合I/O相关写入请求和所述第二混合I/O相关写入请求。
26.根据权利要求25所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置来执行进一步包括响应于确定启用所述混合I/O相关写入模式而将所述I/O相关写入请求标记为混合I/O相关写入请求的操作。
27.根据权利要求24所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置来执行进一步包括以下操作的操作:
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认;和
将对所述第一混合I/O相关写入请求的所述确认发送到发布所述I/O相关写入请求的第二处理装置。
28.根据权利要求24所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置来执行进一步包括以下操作的操作:
接收所述第二混合I/O相关写入请求;
针对由所述第二混合I/O相关写入请求指定的I/O相关性写入数据的地址执行相关性检查;和
从所述共享存储器接收对所述第一混合I/O相关写入请求的确认。
29.根据权利要求24所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置来执行进一步包括以下操作的操作:
从相关互连件接收所述第一混合I/O相关写入请求和所述I/O相关写入数据;
执行所述第一混合I/O相关写入请求;和
将对所述第一混合I/O相关写入请求的确认发送到所述相关互连件。
30.根据权利要求29所述的非暂时性处理器可读媒体,其中所存储可执行指令经配置以使所述计算装置的所述处理装置来执行进一步包括以下操作的操作:
从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认;和
从所述相关互连件接收对所述第一混合I/O相关写入请求的所述确认,其中所述处理装置发布所述I/O相关写入请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/268,791 US10248565B2 (en) | 2016-09-19 | 2016-09-19 | Hybrid input/output coherent write |
US15/268,791 | 2016-09-19 | ||
PCT/US2017/047982 WO2018052671A1 (en) | 2016-09-19 | 2017-08-22 | Hybrid input/output coherent write |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109690501A true CN109690501A (zh) | 2019-04-26 |
Family
ID=59762089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056152.5A Pending CN109690501A (zh) | 2016-09-19 | 2017-08-22 | 混合输入/输出相关写入 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10248565B2 (zh) |
EP (1) | EP3516524A1 (zh) |
JP (1) | JP6665346B2 (zh) |
KR (1) | KR102008131B1 (zh) |
CN (1) | CN109690501A (zh) |
BR (1) | BR112019004930A2 (zh) |
WO (1) | WO2018052671A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113767375A (zh) * | 2019-04-26 | 2021-12-07 | 赛灵思公司 | 对ml加速器的机器学习模型更新 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200133649A1 (en) * | 2019-12-23 | 2020-04-30 | Intel Corporation | Processor controlled programmable logic device modification |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5842038A (en) * | 1996-10-10 | 1998-11-24 | Unisys Corporation | Optimized input/output memory access request system and method |
WO1999023565A1 (en) * | 1997-11-05 | 1999-05-14 | Unisys Corporation | A directory-based cache coherency system |
US20040117561A1 (en) * | 2002-12-17 | 2004-06-17 | Quach Tuan M. | Snoop filter bypass |
US20040193809A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Reducing latency of a snoop tenure |
US20080229325A1 (en) * | 2007-03-15 | 2008-09-18 | Supalov Alexander V | Method and apparatus to use unmapped cache for interprocess communication |
US20100161923A1 (en) * | 2008-12-19 | 2010-06-24 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
US20120069035A1 (en) * | 2010-09-20 | 2012-03-22 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
US20150046661A1 (en) * | 2013-08-07 | 2015-02-12 | Qualcomm Incorporated | Dynamic Address Negotiation for Shared Memory Regions in Heterogeneous Muliprocessor Systems |
US20150378898A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Transactional execution processor having a co-processor accelerator, both sharing a higher level cache |
US20160055093A1 (en) * | 2014-08-19 | 2016-02-25 | Qualcomm Incorporated | Supplemental Write Cache Command For Bandwidth Compression |
US20160055094A1 (en) * | 2014-08-19 | 2016-02-25 | Qualcomm Incorporated | Power Aware Padding |
US20160232091A1 (en) * | 2015-02-11 | 2016-08-11 | Qualcomm Incorporated | Methods of Selecting Available Cache in Multiple Cluster System |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711632B1 (en) | 1998-08-11 | 2004-03-23 | Ncr Corporation | Method and apparatus for write-back caching with minimal interrupts |
US6925537B2 (en) | 2001-06-11 | 2005-08-02 | Hewlett-Packard Development Company, L.P. | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants |
US7627721B2 (en) | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US7113578B2 (en) * | 2002-11-12 | 2006-09-26 | Electronic Locking Specialties, Inc. | Vandal proof intercom system for apartment buildings |
US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
WO2008016967A2 (en) * | 2006-08-03 | 2008-02-07 | The Lubrizol Corporation | Mannich post-treatment of pibsa dispersants for improved dispersion of egr soot |
US7657710B2 (en) | 2006-11-17 | 2010-02-02 | Sun Microsystems, Inc. | Cache coherence protocol with write-only permission |
US8255673B2 (en) * | 2008-04-25 | 2012-08-28 | Arm Limited | Monitoring transactions in a data processing apparatus |
US8287347B2 (en) * | 2008-11-06 | 2012-10-16 | Shuffle Master, Inc. | Method, apparatus and system for egregious error mitigation |
GB2484088B (en) * | 2010-09-28 | 2019-08-07 | Advanced Risc Mach Ltd | Coherency control with writeback ordering |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
US9317102B2 (en) * | 2013-01-03 | 2016-04-19 | Apple Inc. | Power control for cache structures |
US9606925B2 (en) | 2015-03-26 | 2017-03-28 | Intel Corporation | Method, apparatus and system for optimizing cache memory transaction handling in a processor |
US9823730B2 (en) * | 2015-07-08 | 2017-11-21 | Apple Inc. | Power management of cache duplicate tags |
KR102428563B1 (ko) * | 2015-09-30 | 2022-08-03 | 삼성전자주식회사 | 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들 |
US10474526B2 (en) * | 2016-09-30 | 2019-11-12 | Intel Corporation | System and method for granular in-field cache repair |
-
2016
- 2016-09-19 US US15/268,791 patent/US10248565B2/en active Active
-
2017
- 2017-08-22 WO PCT/US2017/047982 patent/WO2018052671A1/en active Search and Examination
- 2017-08-22 JP JP2019514716A patent/JP6665346B2/ja active Active
- 2017-08-22 BR BR112019004930A patent/BR112019004930A2/pt not_active IP Right Cessation
- 2017-08-22 CN CN201780056152.5A patent/CN109690501A/zh active Pending
- 2017-08-22 EP EP17761407.0A patent/EP3516524A1/en not_active Withdrawn
- 2017-08-22 KR KR1020197007701A patent/KR102008131B1/ko active IP Right Grant
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5842038A (en) * | 1996-10-10 | 1998-11-24 | Unisys Corporation | Optimized input/output memory access request system and method |
WO1999023565A1 (en) * | 1997-11-05 | 1999-05-14 | Unisys Corporation | A directory-based cache coherency system |
US20040117561A1 (en) * | 2002-12-17 | 2004-06-17 | Quach Tuan M. | Snoop filter bypass |
US20040193809A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Reducing latency of a snoop tenure |
US20080229325A1 (en) * | 2007-03-15 | 2008-09-18 | Supalov Alexander V | Method and apparatus to use unmapped cache for interprocess communication |
US20100161923A1 (en) * | 2008-12-19 | 2010-06-24 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
US20120069035A1 (en) * | 2010-09-20 | 2012-03-22 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
US20150046661A1 (en) * | 2013-08-07 | 2015-02-12 | Qualcomm Incorporated | Dynamic Address Negotiation for Shared Memory Regions in Heterogeneous Muliprocessor Systems |
US20150378898A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Transactional execution processor having a co-processor accelerator, both sharing a higher level cache |
US20160055093A1 (en) * | 2014-08-19 | 2016-02-25 | Qualcomm Incorporated | Supplemental Write Cache Command For Bandwidth Compression |
US20160055094A1 (en) * | 2014-08-19 | 2016-02-25 | Qualcomm Incorporated | Power Aware Padding |
US20160232091A1 (en) * | 2015-02-11 | 2016-08-11 | Qualcomm Incorporated | Methods of Selecting Available Cache in Multiple Cluster System |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113767375A (zh) * | 2019-04-26 | 2021-12-07 | 赛灵思公司 | 对ml加速器的机器学习模型更新 |
Also Published As
Publication number | Publication date |
---|---|
WO2018052671A1 (en) | 2018-03-22 |
EP3516524A1 (en) | 2019-07-31 |
US20180081809A1 (en) | 2018-03-22 |
KR102008131B1 (ko) | 2019-10-21 |
US10248565B2 (en) | 2019-04-02 |
JP2019533855A (ja) | 2019-11-21 |
JP6665346B2 (ja) | 2020-03-13 |
BR112019004930A2 (pt) | 2019-06-04 |
KR20190049735A (ko) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027804B (zh) | 片上原子事务引擎 | |
KR101700545B1 (ko) | 고성능 인터커넥트 코히어런스 프로토콜 | |
US6871219B2 (en) | Dynamic memory placement policies for NUMA architecture | |
US10339058B2 (en) | Automatic cache coherency for page table data | |
KR20150021952A (ko) | 네트워크 온 어 칩에 대한 스케일러블 캐시 코히어런스 | |
US11675326B2 (en) | Method and apparatus for remote field programmable gate array processing | |
US20190087344A1 (en) | Reducing Clean Evictions In An Exclusive Cache Memory Hierarchy | |
CN109716306A (zh) | 动态输入/输出相干性 | |
CN108463803A (zh) | 对异构缓冲区的随机访问不相交并发稀疏写入 | |
CN109791510B (zh) | 在异构计算中管理数据流 | |
WO2016014237A1 (en) | Dynamic multi-processing in multi-core processors | |
US20180336136A1 (en) | Input/output-coherent Look-ahead Cache Access | |
Zhang et al. | Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads | |
CN109690501A (zh) | 混合输入/输出相关写入 | |
CN109196486A (zh) | 用于虚拟存储器的存储器预取 | |
JP6293910B2 (ja) | 動的言語でのインラインキャッシュのためのハードウェアアクセラレーション | |
CN108885569A (zh) | 识别增强型同步操作结果以改善运行时操作 | |
Rajasekaran et al. | Multicore Computing: Algorithms, Architectures, and Applications | |
Cicotti et al. | Data Movement in Data-Intensive High Performance Computing | |
Patil et al. | MOESIF: a MC/MP cache coherence protocol with improved bandwidth utilisation | |
US20220317855A1 (en) | Methods and apparatus to process touch data | |
Reinhardt | Mechanisms for distributed shared memory | |
Mao et al. | Designing New Memory Systems for Next-Generation Data Centers | |
Alsop | Specialization without complexity in heterogeneous memory systems | |
Tian | Novel affinity-based data placement mechanism for Processing-in-Memory architectures |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190426 |