CN1783033B - 共享公共高速缓存的异构处理器 - Google Patents
共享公共高速缓存的异构处理器 Download PDFInfo
- Publication number
- CN1783033B CN1783033B CN2005100230150A CN200510023015A CN1783033B CN 1783033 B CN1783033 B CN 1783033B CN 2005100230150 A CN2005100230150 A CN 2005100230150A CN 200510023015 A CN200510023015 A CN 200510023015A CN 1783033 B CN1783033 B CN 1783033B
- Authority
- CN
- China
- Prior art keywords
- processor
- cores
- cache
- heterogeneous
- core
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/302—In image processor or graphics adapter
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/314—In storage network, e.g. network attached cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
公开了一种提供异构处理器内核和共享高速缓存的多内核处理器。
Description
技术领域
本发明涉及一种处理器,特别是涉及一种共享公共高速缓存的异构处理器。
背景技术
现代的通用处理器通常通过一个或多个高速缓存(例如,L1和L2高速缓存)的分层结构来访问主存储器(典型地作为动态随机存取存储器,或“DRAM”执行)。相对于主存储器,高速缓存(典型地基于静态随机存取存储器,或“SRAM”)可以更快地返回数据,但是使用更多的区域和功率。通过通用处理器访问的存储器通常显示较高的时间和空间局部性。高速缓存以比所需要的更大的块从主存储器中获取数据(空间局部性),并且即使在处理器已经使用了该数据之后还保持该数据一段时间(时间局部性),如此来利用该局部性。这种行为通常允许要求高速缓存快速地服务,而不是DRAM较慢的服务。高速缓存通常比主存储器能够满足更高的读/写负载(用于较高的吞吐量),以至于上述的访问不太可能排队以及减缓当前的访问。
像网络和图形那样的计算工作量通常能更好地在专门为给定工作量而设计的专用处理器上执行。专用处理器的例子包括网络处理器和图形加速器。通常这些专用处理器位于通用处理器的高速缓存层次结构的外面,通常在外围部件互连(PCI)或加速图形端口(AGP)上。
由专用处理器访问的存储器因此只包括主存储器,而不包括通用处理器的高速缓存。在通用处理器和专用处理器之间移动数据通常需要主存储器写入以及主存储器读取,因此该传送可以仅仅以DRAM的速度进行。
发明内容
按照本发明实施例的第一方面,提供一种处理器,包括:包含异构处理器内核的处理器内核;以及连接到所述处理器内核并由所述处理器内核共享的高速缓存;其中处理器内核以及高速缓存集成在单个集成片上。
其中异构处理器内核包括专用处理器内核。
其中专用处理器内核包括具有指令集的网络处理器单元内核,该指令集不包括用于浮点运算的指令。
其中专用处理器内核包括图形引擎内核。
其中异构处理器内核包括中央处理单元内核。
其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
其中异构处理器内核包括中央处理单元内核和图形引擎内核。
其中高速缓存包括多端口高速缓存。
其中处理器内核包括一个或多个第一类型的处理器内核以及一个或多个第二类型的处理器内核,而多端口高速缓存包括至少一个支持由一个或多个第一类型的处理器内核生成的事务的端口,以及至少一个支持由一个或多个第二类型的处理器内核生成的事务的端口。
其中所述端口被配置为根据端口所支持的各个处理器内核类型而操作。
其中所述端口包括根据各个处理器内核类型的命令类型、大小和对准中的一个或多个来配置的端口。
其中异构处理器内核包括不同类型的处理器内核,并且多端口高速缓存为每个不同类型的处理器内核提供不同的端口类型。
按照本发明实施例第一方面的处理器,进一步包括将处理器内核耦合到高速缓存的互连,所述互连包括互连总线。
其中处理器内核包括翻译逻辑,用于将每个处理器内核的专用事务翻译为与内核无关的事务。
其中异构处理器内核包括不同类型的处理器内核,并且高速缓存包括处理由不同类型的处理器内核所生成的事务的逻辑。
其中异构处理器内核使用允许不同最大传送容量的命令,其中不同最大传送容量的其中之一允许跨越多个高速缓存线的传送。
其中至少一个异构处理器内核是可操作的,以便为扩展的专用修改锁定一部分高速缓存。
其中每个处理器内核能够使用共享高速缓存,以便将数据传递到另一个处理器内核。
按照本发明实施例的第二方面,提供一种系统,包括:桥;耦合到桥的第一多内核处理器,包括排列在共享高速缓存之后并且连接到共享高速缓存的异构处理器;耦合到桥的第二处理器,包括至少一个处理器内核和连接到该至少一个处理器内核的局部高速缓存;以及耦合到桥的主存储器。
其中异构处理器内核包括专用处理器内核,其中专用处理器内核包括网络处理器单元内核。
其中异构处理器内核包括中央处理单元内核。
其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
其中第二处理器的至少一个处理器内核是可操作的,以便生成通过桥访问第一多内核处理器的共享高速缓存的事务。
其中桥被操作用来根据至少一个处理器内核的本地协议访问共享高速缓存。
其中异构处理器内核使用各自的本地协议来访问共享高速缓存,并且其中各自的本地协议不同于至少一个处理器内核的本地协议。
其中与桥连接的共享高速缓存以及局部高速缓存是可操作的,以便保持与主存储器的相干性。
其中第二处理器包括共享局部高速缓存的多个异构处理器内核。
按照本发明实施例的第三方面,还是提供一种系统,包括:开关结构;以及通过开关结构互连的线路接口卡,至少一个线卡包括:接收和发送网络通信量的媒体接口;与开关结构进行接口的开关结构接口;以及连接到媒体接口和开关结构接口的系统,该系统包括连接到存储器的处理器,其中处理器包括:包含异构处理器内核的处理器内核;以及连接到处理器内核并由处理器内核共享的高速缓存。
其中异构处理器内核包括专用处理器内核,其中专用处理器内核包括网络处理器单元内核。
其中异构处理器内核包括中央处理单元内核。
其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
按照本发明实施例的第四方面,提供一种方法,包括:使用连接到异构处理器内核并由异构处理器内核共享的高速缓存,以便在异构内核之间传递信息。
其中异构处理器内核包括专用处理器内核,其中专用处理器内核包括网络处理器单元内核。
其中专用处理器内核包括图形引擎内核。
其中异构处理器内核包括中央处理单元内核。
其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
其中异构处理器内核包括中央处理单元内核和图形引擎内核。
其中高速缓存包括多端口高速缓存。其中处理器内核包括一个或多个第一类型的处理器内核以及一个或多个第二类型的处理器内核,而多端口高速缓存包括至少一个支持由一个或多个第一类型的处理器内核生成的事务的端口,以及至少一个支持由一个或多个第二类型的处理器内核生成的事务的端口。其中所述端口被配置为根据端口所支持的各个处理器内核类型而操作。
其中异构处理器内核包括不同类型的处理器内核,以及多端口高速缓存为每个不同类型的处理器内核提供不同的端口类型。
其中一个互连将异构处理器内核耦合到高速缓存,并且该互连包括互连总线。
其中异构处理器内核包括翻译逻辑,用于将该处理器内核的专用事务翻译为与内核无关的事务。
其中异构处理器内核包括不同类型的处理器内核,并且高速缓存包括处理由不同类型的处理器内核所生成的事务的逻辑。
其中至少一个异构处理器内核是可操作的,以便为扩展的专用修改锁定一部分高速缓存。
附图说明
图1A-1C示出了具有基于总线的共享高速缓存结构的示例异构多内核处理器。
图2示出了具有多个端口的共享高速缓存结构的示例异构多内核处理器。
图3示出了具有基于开关的共享高速缓存结构的示例异构多内核处理器。
图4示出了通过桥连接到多内核通用处理器的主存储器上的示例异构多内核处理器(具有一个共享高速缓存)。
图5示出了应用了诸如图1-4中所说明的那些异构多内核处理系统的示例网络应用。
具体实施方式
图1A-1C示出了多处理器系统10,其包括通过存储器总线16耦合到主存储器14的多处理器12。该多处理器12包括高速缓存(“共享高速缓存”)18和多个处理器“内核”(统称为处理器内核20),这些处理器内核连接到高速缓存18并且共享该高速缓存18。该图中的共享高速缓存18旨在表示包括高速缓存存储器和相关的控制逻辑的单元。高速缓存控制逻辑包括用于映射存储器地址(“高速缓存标记”)的逻辑,所述存储器地址当前是用与它们相关的高速缓存线来缓存的。
处理器内核20包括异构内核,也就是说,结构不同的处理器内核(或者处理器内核的类型)。例如,处理器内核20可以包括一个或多个专用处理器内核和/或至少一个中央处理单元(CPU)内核。
专用处理器内核可以包括,例如,至少一个网络处理器单元(NPU)内核和/或图形引擎内核。在图解的实施例中,处理器内核20包括多个NPU内核,如所示的NPU内核22a、22b、...、22k,以及CPU内核24。NPU内核22可以是被可编程为精简指令集计算(RISC)内核,该内核的特征是硬件支持多线程操作。NPU内核22可能没有通常能在其它处理器中发现的指令,诸如整数乘法或除法,或浮点运算,由于这些操作在处理网络分组中发生相对较少。CPU内核24可以基于通用处理器的任何类型的结构,例如,Architecture处理器(“IA处理器”),比如XeonTM处理器,或Intel4处理器或XscaleTM处理器。
虽然没有示出,可以理解的是,CPU内核24也可以使用专用高速缓存(例如,该专用高速缓存可以是L1高速缓存,而共享高速缓存可以是L2高速缓存)。
如图所示,处理器内核20通过某类型的互连机制,例如,共享总线26,连接到共享高速缓存18。高速缓存18(如果数据在那里)可以极快速地为CPU内核24和NPU内核22二者进行访问而提供服务。该访问被称为高速缓存命中,意味着数据返回快很多。高速缓存命中也减少对主存储器14访问的次数,提高了其它访问(高速缓存未命中或从I/O代理程序访问)被服务的速率。由两种类型处理器内核22、24使用的数据可以从共享高速缓存18快速地访问,而不需要DRAM或甚至高速缓存到高速缓存的传递。数据可以通过高速缓存的读取和写入从一个处理器内核(上述的NPU内核22)传送到另一个处理器内核(上述的CPU内核24),使该处理器内核能够以更快的速率进行而不需要加载主存储器14。
在两种类型处理器内核之间的数据传送可以以下述的方式用共享高速缓存完成。具有数据的处理器内核将数据写入到高速缓存。同一个处理器内核通知另一个处理器内核数据已经准备好(例如,通过中断或标志更新)。然后第二个处理器内核读取数据,直接从共享高速缓存18中取得数据。在处理器内核之间传送的数据不需要写入到主存储器14中或者从主存储器1 4中读出。因此,两种类型的处理器内核可以用这种方式以共享高速缓存的数据速率传送数据,该速率通常比主存储器允许的速率高,并且不加载主存储器以避免DRAM的读取和写入。
NPU内核22与CPU内核24的紧密耦合允许这些内核以粒度更细的方式对具体的网络算法(例如,入侵检测、防火墙、安全插口层(SSL)加速度)进行合作。共享高速缓存允许相关的工作(和状态)从一个内核迁移到另一个而不使用DRAM。
虽然没有示出,将被理解的是,一个或多个NPU内核22可以耦合到其它资源,特别是,到外部网络设备的接口(或多个接口)。该外部媒体设备可以是能够发送和/或接收网络通信量数据的任何媒体接口,诸如组帧/媒体访问控制(MAC)设备,例如,用于连接到10/100BaseT以太网、千兆位以太网、异步传输模式(ATM)或其它类型的网络,或者用于连接到开关结构的接口。例如,在一种方案中,一个网络设备可以是将数据发送到处理器12或者从处理器12接收数据的以太网MAC设备(连接到以太网),而第二个网络设备可以是支持与开关结构通信的开关结构接口。其它NPU资源可以包括,例如,控制状态寄存器(CSR),到其它外部存储器的接口,诸如分组缓冲器和控制存储器,以及暂时存储器。
与传统的系统相反,其中专用处理器在单独的硅片上,并且位于通用处理器(例如,主机)系统的I/O连接器上,多处理器12的内核集成在与CPU内核24相同的片上,以及可能与高速缓存18相同的片上。这样的集成允许异构内核能够更有机会有效地共享数据,正如它们位于公共高速缓存之后一样。因此,在一个实施例中,如图中所说明的,处理器内核、高速缓存以及互连位于单个芯片上。可替换地,处理器内核20、高速缓存18以及互连26可以被实现为多芯片包装中分离的芯片。在另一个可选的实施例中,处理器内核20、高速缓存18以及互连26可以被实现为芯片与板子设计的组合。
根据示例实施例,图1B-1C示出了更加详细的基于总线的高速缓存结构。图1B中,每个NPU内核22包括NPU内核翻译逻辑(NPU-TL),而CPU内核24包括CPU内核翻译逻辑(CPU-TL)32。翻译逻辑30、32将专用内核存储器事务(诸如读和写)翻译成与内核无关的存储器事务,与内核无关的存储器事务将在总线26上出现并且由共享高速缓存18所理解,而不用考虑它们开始时的内核类型。图1C中,将大量或全部处理专用内核事务的特征的负担转移给共享高速缓存18。因此,共享高速缓存18包括共享高速缓存翻译逻辑(SC-TL)40,用于以适当的方式支持对来自不同处理器内核类型的请求(并且,更特别地,命令集特征)的处理。共享高速缓存翻译逻辑40是支持每个处理器内核类型所需的逻辑超集。共享高速缓存翻译逻辑40可以进一步包括总线仲裁逻辑,用于优先化处理器内核类型的总线访问。即使在后面的例子中(图1C中所示),可能存在一些问题需要与内核本身更紧密得一致。例如,在CPU应用中,高速缓存典型地使用地址来确定存储器类型,但是在NPU应用中,高速缓存可以通过NPU命令来指示有关存储器的类型。同样,处理器内核可以请求用内核识别器支持编码事务。
如上所述,也可能是其它的内核到高速缓存的互连机制。例如,如图2中所示,高速缓存18可以是多端口高速缓存,每个内核具有一个端口,或者每种处理器内核类型具有单个端口。因此,在NPU22和CPU24内核的情况下,如图所示,NPU内核22a、22b、...、22k连接到第一端口类型的端口50(如所示的“类型A”),而CPU内核24使用第二端口类型的端口52(如所示的“类型B”)。虽然端口50示为共享端口,应当理解的是,每个NPU内核能够通过单独的信道连接到各自的端口50。以这种方法,生成访问请求的内核类型可以通过接收请求的端口而得知。在诸如这种多端口结构中,每种类型的端口(也就是说,支持不同处理器内核类型的端口)可以针对通信量模式和那些不同处理器内核类型的其它特性或特征(诸如命令、大小、对准等等)来进行“调整”。例如,NPU内核是带宽敏感的,而CPU内核是等待时间敏感的。对NPU请求由高速缓存返回的数据在返回时被批处理,以便对于固定的开销优化吞吐量。该调整可以考虑由专用内核类型执行的事务类型。某些类型的内核可以主要执行读取(例如,图形引擎),而其它内核类型执行更加均衡混合的读取和写入。
图3示出了另一种互连方法。用这种方法,每个内核通过开关60(例如,所示的纵横开关)连接到共享高速缓存18。可以用上述的与基于总线的方法相关的任何一种方法执行翻译逻辑。
虽然没有示出,各个内核可以包括用于支持中断或标志的逻辑,用于内核到内核的发信号。当一个内核(诸如NPU内核22)已经将工作(例如,以分组数据、指针、状态等等的形式)传送到共享高速缓存18并且需要向第二内核发信号(诸如CPU内核24)时,可以使用内核间的发信号,其中所述工作可以由第二内核操作。
如图4中所示,处理器12可以作为一个单元与一个或多个其它处理器/高速缓存组合一起参与对主存储器的高速缓存一致访问。转向图4,系统70包括现在通过桥74连接到主存储器72的处理器12。主存储器72由通用处理器(GPP)76共享,该主存储器72也连接到桥74。GPP76包括位于公共(或共享)高速缓存80之后的一个或多个CPU内核78。高速缓存和桥结构以一种方式操作,该方式确保所有的高速缓存保持相干。
桥74可以被实施为允许处理器12的内核以及GPP76的内核通过用它们自己本地的存取协议,来引用主存储器以及其它处理器的共享高速缓存。共享高速缓存机构使处理器12的异构处理器内核能够以它们本地的操作模式访问共享高速缓存18,但不存在利用不同的协议访问共享高速缓存18的其它处理器类型(诸如GPP76的CPU内核78)所产生的影响。在根据基于IXA的NPU内核22和基于IA的CPU内核78的一个实施例中,NPU内核22可以通过IXA协议(诸如命令推/拉总线协议)访问共享高速缓存18,并且将该共享高速缓存视为另一个存储器资源,而一个CPU内核78通过桥74对共享高速缓存18从外部的访问可以利用IA高速缓存访问以及相干机制而进行。如上所述,处理器12的异构内核能够使用它们本地的(并且不同的)访问协议来完全访问共享高速缓存18。可以采用高速缓存到高速缓存的传递将数据从一个处理器的内核传送到另一个处理器的内核。这可以用比可选方案更少的等待时间和更高的带宽来完成,并且不加载主存储器,在可选方案中由一个处理器写主存储器而由其它处理器读主存储器。
传输的例子如下所述。CPU内核78将读取请求发送到共享高速缓存80,该CPU内核78检测高速缓存未命中,并且将读取请求传送到桥74。桥74将读取请求发送到共享高速缓存18,其包含所请求数据的副本。共享高速缓存18通过桥74将所请求的数据返回到共享高速缓存80。在一个替代方案中,桥74可以将读取请求发送到共享高速缓存18和主存储器72,并且根据来自共享高速缓存18的应答来确定使用哪个数据副本。
共享高速缓存机制可以支持不同的高速缓存策略和特征,诸如高速缓存线对准、可缓存性以及高速缓存线锁定。高速缓存线对准将对多于一个高速缓存线有影响的存储器事务转换成多存储器访问,其每一个都适合单个高速缓存线。可以根据指令类型(例如,指定非高速缓存事务的指令)和/或根据存储器的类型,例如,存储器类型范围寄存器(MTTR)中规定的类型,来确定存储器传输中所涉及的数据可缓存性。以这种特征,至少一个异构处理器内核(例如NPU内核)能够生成对主存储器14的读取和写入,以便在高速缓存未命中时旁路共享高速缓存16。高速缓存线锁定是指由内核锁定个别高速缓存线。利用高速缓存线锁定的特征,至少一个异构处理器内核可以锁定作为专用存储器的一部分共享高速缓存线(例如,单个高速缓存线、多个高速缓存线,或者所有高速缓存线),以便可能扩展已经对内核可用的局部资源(诸如暂时存储器),或者用于扩展的专用修改。通过锁定一个、一些或所有高速缓存线,内核可以利用锁定的存储器空间作为扩展的局部存储器,而内核继续对共享高速缓存的任意剩余部分进行相干操作。当只有一个异构处理器内核主动使用共享高速缓存时,该处理器内核通过有效地使用芯片区域而收到整个共享高速缓存的所有权益,从而最大化性能。可以使用与原子操作锁定相同的方式,例如使用高速缓存线锁定状态域,来实施该高速缓存的锁定。
一个或多个这些(或者其它的)技术的应用至少部分由内核类型的选择来驱动。例如,一些专用处理器,诸如网络处理器,包括从存储器读取和向存储器写入,程序员知道该存储器具有较差的时间和空间局部性。对于由通用处理器访问的那些也同样如此。所以,为了提高这些访问的效率,希望提供不会导致高速缓存活动的存储器读和写命令。换句话说,数据没有位于高速缓存中,并且不清除高速缓存中已有的其它数据。程序员知道不会命中高速缓存的访问可以绕过该高速缓存,从而增加其它访问的高速缓存命中率。并且,不同的内核类型可以支持不同的数据取出/传送容量,其中一些可能不是高速缓存线对准的。CPU内核(诸如IA内核)典型地生成适合单个高速缓存线的请求,而NPU(诸如IXA网络处理器)有能力生成任意大小的请求,该请求可能跨越多个高速缓存线。
这里描述的共享高速缓存结构允许在同一个高速缓存之后设置两种不同类型的处理器。因为设计趋向于多内核处理器,该结构可供性能要求较高的负载使用,比如图形、流媒体和网络的工作。在网络应用中,例如,可以使分组处理和通用处理相互靠近,用于最佳化网络处理器的分组处理元件与通用处理器的控制和/或内容处理之间的高吞吐量通信。例如,如图5中所示,分布式处理平台100包括通过底板106而互连的刀片(blade)102a-102m和线卡104a-104n的集合,底板例如是开关结构(如图所示)。开关结构例如可以遵守公共开关接口(CSIX)或其它结构的技术,诸如超级传送(HyperTranport),无限波段(Infiniband),外围部件互连(PCI),Packet-Over-SONET,RapidIO,和/或用于ATM的通用测试和操作PHY接口(UTOPIA)。
线卡是线路结束和I/O处理出现的地方。它可以包括数据层面中的处理(分组处理),以及控制层面处理,用于为数据层面中的执行对策略管理进行操作。刀片102a-102m可以包括:用于操作不分布到线卡的控制层面功能的控制刀片;用于执行系统管理功能的控制刀片,所述系统管理功能诸如驱动器计数、路由表管理、全局表管理、网络地址翻译以及向控制刀片发送消息;应用和服务刀片;以及内容处理。在网络基础结构中,内容处理可以用于处理标准线卡应用能力之外密集的基于内容的处理,包括声音处理、要求高性能的加密卸载和入侵检测。
至少一个线卡是专用线卡,例如线卡104a,该线卡基于异构多内核系统10(或系统70)的结构而实施,以便将CPU内核的处理信息更加紧密地耦合到NPU内核更专用的性能。线卡104a包括处理网络连接上通信的媒体接口(MI)108。每个媒体接口108连接到系统10(或70)。在该实施例中,一个系统用作入口处理器而另一个系统用作出口处理器,虽然也可以使用单个系统。每个系统10(或70)通过开关结构接口(SFI)110耦合到开关结构106。可替换地或附加地,基于多处理器系统10、70的其它应用程序可以通过分布式处理平台100而工作。根据刀片和线卡的配置,分布式处理平台100可以实现开关设备(例如,开关或路由器)、服务器、数据中心或其它类型的装备。
其它的实施例在下述权利要求的范围中。
Claims (30)
1.一种异构处理器系统,包括:
桥;
耦合到桥的第一多内核处理器,包括排列在共享高速缓存之后并且连接到共享高速缓存的异构处理器内核;
耦合到桥的第二处理器,包括至少一个处理器内核和连接到该至少一个处理器内核的局部高速缓存;以及
耦合到桥的主存储器;
其中数据通过高速缓存的读取和写入从一个处理器内核传送到另一个处理器内核,而不需要加载主存储器。
2.权利要求1的系统,其中异构处理器内核包括专用处理器内核。
3.权利要求2的系统,其中专用处理器内核包括网络处理器单元内核。
4.权利要求1的系统,其中异构处理器内核包括中央处理单元内核。
5.权利要求1的系统,其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
6.权利要求1的系统,其中第二处理器的至少一个处理器内核是可操作生成通过桥访问第一多内核处理器的共享高速缓存的事务。
7.权利要求6的系统,其中桥被操作用来根据至少一个处理器内核的本地协议访问共享高速缓存。
8.权利要求6的系统,其中异构处理器内核使用各自的本地协议来访问共享高速缓存,并且其中各自的本地协议不同于至少一个处理器内核的本地协议。
9.权利要求1的系统,其中与桥连接的共享高速缓存以及局部高速缓存是可操作的,以便保持与主存储器的相干性。
10.权利要求1的系统,其中第二处理器包括共享局部高速缓存的多个异构处理器内核。
11.一种异构处理器系统,包括:
开关结构;以及
通过开关结构互连的线路接口卡,至少一个线路接口卡包括:
接收和发送网络通信量的媒体接口;
与开关结构进行接口的开关结构接口;以及
连接到媒体接口和开关结构接口的系统,该系统包括连接到存储器的处理器,其中处理器包括:
包含异构处理器内核的处理器内核;以及
连接到处理器内核并由处理器内核共享的高速缓存;
其中数据通过高速缓存的读取和写入从一个处理器内核传送到另一个处理器内核,而不需要加载主存储器。
12.权利要求11的系统,其中异构处理器内核包括专用处理器内核。
13.权利要求12的系统,其中专用处理器内核包括网络处理器单元内核。
14.权利要求12的系统,其中异构处理器内核包括中央处理单元内核。
15.权利要求12的系统,其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
16.一种用于异构处理器系统的方法,包括:
使用连接到异构处理器内核并由异构处理器内核共享的高速缓存,以便在异构内核之间传递信息;
其中数据通过高速缓存的读取和写入从一个处理器内核传送到另一个处理器内核,而不需要加载主存储器。
17.权利要求16的方法,其中异构处理器内核包括专用处理器内核。
18.权利要求17的方法,其中专用处理器内核包括网络处理器单元内核。
19.权利要求17的方法,其中专用处理器内核包括图形引擎内核。
20.权利要求16的方法,其中异构处理器内核包括中央处理单元内核。
21.权利要求16的方法,其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
22.权利要求16的方法,其中异构处理器内核包括中央处理单元内核和图形引擎内核。
23.权利要求16的方法,其中高速缓存包括多端口高速缓存。
24.权利要求23的方法,其中处理器内核包括一个或多个第一类型的处理器内核以及一个或多个第二类型的处理器内核,而多端口高速缓存包括至少一个支持由一个或多个第一类型的处理器内核生成的事务的端口,以及至少一个支持由一个或多个第二类型的处理器内核生成的事务的端口。
25.权利要求24的方法,其中所述端口被配置为根据端口所支持的各个处理器内核类型而操作。
26.权利要求23的方法,其中异构处理器内核包括不同类型的处理器内核,以及多端口高速缓存为每个不同类型的处理器内核提供不同的端口类型。
27.权利要求16的方法,其中一个互连将异构处理器内核耦合到高速缓存,并且该互连包括互连总线。
28.权利要求16的方法,其中异构处理器内核包括翻译逻辑,用于将该处理器内核的专用事务翻译为与内核无关的事务。
29.权利要求16的方法,其中异构处理器内核包括不同类型的处理器内核,并且高速缓存包括处理由不同类型的处理器内核所生成的事务的逻辑。
30.权利要求16的方法,其中至少一个异构处理器内核是可操作的,以便为扩展的专用修改锁定一部分高速缓存。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/993,757 US20060112226A1 (en) | 2004-11-19 | 2004-11-19 | Heterogeneous processors sharing a common cache |
| US10/993757 | 2004-11-19 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2008101863671A Division CN101470691B (zh) | 2004-11-19 | 2005-11-18 | 共享公共高速缓存的异构处理器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1783033A CN1783033A (zh) | 2006-06-07 |
| CN1783033B true CN1783033B (zh) | 2011-07-27 |
Family
ID=35744810
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2005100230150A Expired - Fee Related CN1783033B (zh) | 2004-11-19 | 2005-11-18 | 共享公共高速缓存的异构处理器 |
| CN2008101863671A Expired - Fee Related CN101470691B (zh) | 2004-11-19 | 2005-11-18 | 共享公共高速缓存的异构处理器 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2008101863671A Expired - Fee Related CN101470691B (zh) | 2004-11-19 | 2005-11-18 | 共享公共高速缓存的异构处理器 |
Country Status (4)
| Country | Link |
|---|---|
| US (10) | US20060112226A1 (zh) |
| CN (2) | CN1783033B (zh) |
| DE (1) | DE112005002364T5 (zh) |
| WO (1) | WO2006055477A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9710396B2 (en) | 2009-12-21 | 2017-07-18 | Intel Corporation | Sharing virtual memory-based multi-version data between the heterogeneous processors of a computer platform |
Families Citing this family (90)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
| US20070011433A1 (en) * | 2003-04-04 | 2007-01-11 | Martin Vorbach | Method and device for data processing |
| US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
| US7568123B2 (en) * | 2004-12-15 | 2009-07-28 | International Business Machines Corporation | Apparatus, system, and method for backing up vital product data |
| US7376798B1 (en) * | 2005-04-07 | 2008-05-20 | Transmeta Corporation | Memory management methods and systems that support cache consistency |
| US8032711B2 (en) | 2006-12-22 | 2011-10-04 | Intel Corporation | Prefetching from dynamic random access memory to a static random access memory |
| US8065487B2 (en) * | 2007-03-21 | 2011-11-22 | International Business Machines Corporation | Structure for shared cache eviction |
| US7840759B2 (en) * | 2007-03-21 | 2010-11-23 | International Business Machines Corporation | Shared cache eviction |
| US8041854B2 (en) * | 2007-09-28 | 2011-10-18 | Intel Corporation | Steering data units to a consumer |
| US8296743B2 (en) * | 2007-12-17 | 2012-10-23 | Intel Corporation | Compiler and runtime for heterogeneous multiprocessor systems |
| US9035959B2 (en) * | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
| US20100017569A1 (en) * | 2008-07-16 | 2010-01-21 | Agere Systems Inc. | Pcb including multiple chips sharing an off-chip memory, a method of accessing off-chip memory and a mcm utilizing fewer off-chip memories than chips |
| TW201017421A (en) * | 2008-09-24 | 2010-05-01 | Panasonic Corp | Cache memory, memory system and control method therefor |
| DE102009004810A1 (de) * | 2009-01-13 | 2010-07-15 | Universität Augsburg | Verfahren zum Ausführen eines oder mehrerer Programme auf einem Mehrkernprozessor und Mehrkernprozessor |
| US9195464B2 (en) * | 2009-04-27 | 2015-11-24 | Intel Corporation | Tracking written addresses of a shared memory of a multi-core processor |
| US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
| US9069672B2 (en) * | 2009-06-12 | 2015-06-30 | Intel Corporation | Extended fast memory access in a multiprocessor computer system |
| US20100332763A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Apparatus, system, and method for cache coherency elimination |
| US9142057B2 (en) * | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
| US8615637B2 (en) | 2009-09-10 | 2013-12-24 | Advanced Micro Devices, Inc. | Systems and methods for processing memory requests in a multi-processor system using a probe engine |
| US8259582B2 (en) | 2009-11-13 | 2012-09-04 | Intel Corporation | Method and apparatus to manage per flow state |
| US8904114B2 (en) * | 2009-11-24 | 2014-12-02 | Empire Technology Development Llc | Shared upper level cache architecture |
| US9128849B2 (en) | 2010-04-13 | 2015-09-08 | Apple Inc. | Coherent memory scheme for heterogeneous processors |
| US8914581B2 (en) * | 2010-05-20 | 2014-12-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for accessing cache memory |
| WO2011155046A1 (ja) * | 2010-06-10 | 2011-12-15 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
| CN107608755A (zh) * | 2010-07-01 | 2018-01-19 | 纽戴纳公司 | 为了优化群集特定配置的使用而按进程类型在群集之间分割进程 |
| US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
| US8656137B2 (en) | 2011-09-01 | 2014-02-18 | Qualcomm Incorporated | Computer system with processor local coherency for virtualized input/output |
| US9330002B2 (en) * | 2011-10-31 | 2016-05-03 | Cavium, Inc. | Multi-core interconnect in a network processor |
| CN103999063B (zh) * | 2011-12-16 | 2016-10-05 | 国际商业机器公司 | 处理器的存储器共享 |
| CN104011694A (zh) * | 2011-12-21 | 2014-08-27 | 英特尔公司 | 用于存储器层次知晓的生产者-消费者指令的装置和方法 |
| WO2013095475A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | Apparatus and method for memory-hierarchy aware producer-consumer instruction |
| US9569278B2 (en) * | 2011-12-22 | 2017-02-14 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
| WO2013141871A1 (en) * | 2012-03-22 | 2013-09-26 | Intel Corporation | Application-reserved cache for direct i/o |
| WO2012126425A2 (zh) * | 2012-05-18 | 2012-09-27 | 华为技术有限公司 | 数据存储的系统和方法 |
| US9135172B2 (en) * | 2012-08-02 | 2015-09-15 | Qualcomm Incorporated | Cache data migration in a multicore processing system |
| US9378572B2 (en) | 2012-08-17 | 2016-06-28 | Intel Corporation | Shared virtual memory |
| KR102082859B1 (ko) | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
| WO2014130037A1 (en) * | 2013-02-21 | 2014-08-28 | Empire Technology Development, Llc | One-cacheable multi-core architecture |
| CN103902498B (zh) * | 2013-12-18 | 2016-12-07 | 曲阜师范大学 | 一种面向异构计算的软件定义服务器系统及方法 |
| US20150355946A1 (en) * | 2014-06-10 | 2015-12-10 | Dan-Chyi Kang | “Systems of System” and method for Virtualization and Cloud Computing System |
| US10114752B2 (en) * | 2014-06-27 | 2018-10-30 | International Business Machines Corporation | Detecting cache conflicts by utilizing logical address comparisons in a transactional memory |
| US9411652B2 (en) * | 2014-08-22 | 2016-08-09 | Advanced Micro Devices, Inc. | Runtime for automatically load-balancing and synchronizing heterogeneous computer systems with scoped synchronization |
| CN104461957A (zh) * | 2014-08-28 | 2015-03-25 | 浪潮(北京)电子信息产业有限公司 | 一种异构多核cpu共享片上高速缓存的方法及装置 |
| US9892803B2 (en) * | 2014-09-18 | 2018-02-13 | Via Alliance Semiconductor Co., Ltd | Cache management request fusing |
| CN105550140B (zh) * | 2014-11-03 | 2018-11-09 | 联想(北京)有限公司 | 一种电子设备及数据处理方法 |
| US9582413B2 (en) | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
| CN105740164B (zh) | 2014-12-10 | 2020-03-17 | 阿里巴巴集团控股有限公司 | 支持缓存一致性的多核处理器、读写方法、装置及设备 |
| US9697124B2 (en) * | 2015-01-13 | 2017-07-04 | Qualcomm Incorporated | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture |
| GB2536658B (en) * | 2015-03-24 | 2017-03-22 | Imagination Tech Ltd | Controlling data flow between processors in a processing system |
| DE102016106939B4 (de) | 2015-04-17 | 2024-05-02 | Suunto Oy | Eingebettetes Rechengerät |
| GB2542988B (en) * | 2015-04-17 | 2019-11-13 | Suunto Oy | Embedded computing device comprising processing units interfaced with a shared information space |
| US11204871B2 (en) | 2015-06-30 | 2021-12-21 | Advanced Micro Devices, Inc. | System performance management using prioritized compute units |
| CN105007398A (zh) * | 2015-08-07 | 2015-10-28 | 广州极飞电子科技有限公司 | 一种图像增稳方法及装置 |
| CN105630723A (zh) * | 2015-12-22 | 2016-06-01 | 中国电子科技集团公司第三十二研究所 | 基于异构处理器平台的管理架构及其管理方法 |
| CN107145337B (zh) * | 2016-03-01 | 2021-06-29 | 中兴通讯股份有限公司 | 一种数据流处理芯片的表项访问方法及装置 |
| US20180011792A1 (en) | 2016-07-06 | 2018-01-11 | Intel Corporation | Method and Apparatus for Shared Virtual Memory to Manage Data Coherency in a Heterogeneous Processing System |
| US11513805B2 (en) * | 2016-08-19 | 2022-11-29 | Wisconsin Alumni Research Foundation | Computer architecture with synergistic heterogeneous processors |
| US10152243B2 (en) * | 2016-09-15 | 2018-12-11 | Qualcomm Incorporated | Managing data flow in heterogeneous computing |
| CN110710172A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络 |
| WO2018183526A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
| WO2018183542A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
| US10565112B2 (en) * | 2017-04-10 | 2020-02-18 | Fungible, Inc. | Relay consistent memory management in a multiple processor system |
| WO2019014265A1 (en) | 2017-07-10 | 2019-01-17 | Fungible, Inc. | DATA PROCESSING UNIT FOR CALCULATION NODES AND STORAGE NODES |
| US10725825B2 (en) | 2017-07-10 | 2020-07-28 | Fungible, Inc. | Data processing unit for stream processing |
| CN107729281B (zh) * | 2017-08-31 | 2019-11-15 | 北京计算机技术及应用研究所 | 一种基于RapidIO的高速传输实现方法 |
| CN107544926B (zh) | 2017-09-06 | 2020-04-07 | 上海兆芯集成电路有限公司 | 处理系统及其访存方法 |
| US11093624B2 (en) | 2017-09-12 | 2021-08-17 | Sophos Limited | Providing process data to a data recorder |
| US12212495B2 (en) | 2017-09-29 | 2025-01-28 | Microsoft Technology Licensing, Llc | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths |
| US12278763B2 (en) | 2017-09-29 | 2025-04-15 | Microsoft Technology Licensing, Llc | Fabric control protocol with congestion control for data center networks |
| US12294470B2 (en) | 2017-09-29 | 2025-05-06 | Microsoft Technology Licensing, Llc | Fabric control protocol for large-scale multi-stage data center networks |
| WO2019068010A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | VIRTUAL MATRIX OF NETWORK ACCESS NODES CONFIGURED DYNAMICALLY ON AN UNDERLYING NETWORK |
| US12341687B2 (en) | 2017-09-29 | 2025-06-24 | Microsoft Technology Licensing, Llc | Reliable fabric control protocol extensions for data center networks with failure resilience |
| US10965586B2 (en) | 2017-09-29 | 2021-03-30 | Fungible, Inc. | Resilient network communication using selective multipath packet flow spraying |
| US12231353B2 (en) | 2017-09-29 | 2025-02-18 | Microsoft Technology Licensing, Llc | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths |
| US10698472B2 (en) * | 2017-10-27 | 2020-06-30 | Advanced Micro Devices, Inc. | Instruction subset implementation for low power operation |
| US10841245B2 (en) | 2017-11-21 | 2020-11-17 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
| CN108416433B (zh) * | 2018-01-22 | 2020-11-24 | 上海熠知电子科技有限公司 | 一种基于异步事件的神经网络异构加速方法和系统 |
| KR102533241B1 (ko) * | 2018-01-25 | 2023-05-16 | 삼성전자주식회사 | 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템 |
| WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
| US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
| US11321146B2 (en) | 2019-05-09 | 2022-05-03 | International Business Machines Corporation | Executing an atomic primitive in a multi-core processor system |
| US11681567B2 (en) | 2019-05-09 | 2023-06-20 | International Business Machines Corporation | Method and processor system for executing a TELT instruction to access a data item during execution of an atomic primitive |
| CN111966610B (zh) * | 2020-09-04 | 2023-12-01 | Oppo广东移动通信有限公司 | 数据传输方法、处理芯片和计算机设备 |
| CN112527729B (zh) * | 2020-12-15 | 2024-11-12 | 杭州慧芯达科技有限公司 | 一种紧耦合异构多核处理器架构及其处理方法 |
| US12192214B2 (en) | 2021-05-05 | 2025-01-07 | Sophos Limited | Mitigating threats associated with tampering attempts |
| CN114492776B (zh) * | 2022-01-14 | 2025-08-29 | 伟光有限公司 | 一种数据处理方法及装置、存储介质 |
| CN115098431A (zh) * | 2022-05-27 | 2022-09-23 | 北京奕斯伟计算技术股份有限公司 | 处理器、共享高速缓存的分配方法及其装置 |
| CN119895386A (zh) * | 2022-09-16 | 2025-04-25 | 三星电子株式会社 | 包括神经处理单元的电子设备及其操作方法 |
| CN115811536B (zh) * | 2023-02-07 | 2023-05-05 | 南京芯驰半导体科技有限公司 | 一种基于多核异构的汽车中央网关系统及实现方法 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010042189A1 (en) * | 2000-02-17 | 2001-11-15 | Babaian Boris A. | Single-chip multiprocessor with cycle-precise program scheduling of parallel execution |
Family Cites Families (44)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
| US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
| US5155772A (en) * | 1990-12-11 | 1992-10-13 | Octel Communications Corporations | Data compression system for voice data |
| US5617547A (en) * | 1991-03-29 | 1997-04-01 | International Business Machines Corporation | Switch network extension of bus architecture |
| US5335343A (en) * | 1992-07-06 | 1994-08-02 | Digital Equipment Corporation | Distributed transaction processing using two-phase commit protocol with presumed-commit without log force |
| US5418786A (en) * | 1994-06-17 | 1995-05-23 | Motorola, Inc. | Asynchronous transfer mode (ATM) method and apparatus for communicating status bytes in a manner compatible with the utopia protocol |
| US5860096A (en) * | 1994-10-17 | 1999-01-12 | Hewlett-Packard Company | Multi-level instruction cache for a computer |
| US5875470A (en) * | 1995-09-28 | 1999-02-23 | International Business Machines Corporation | Multi-port multiple-simultaneous-access DRAM chip |
| JP3623840B2 (ja) * | 1996-01-31 | 2005-02-23 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロプロセッサ |
| US5987590A (en) * | 1996-04-02 | 1999-11-16 | Texas Instruments Incorporated | PC circuits, systems and methods |
| US5761516A (en) * | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
| US5898892A (en) * | 1996-05-17 | 1999-04-27 | Advanced Micro Devices, Inc. | Computer system with a data cache for providing real-time multimedia data to a multimedia engine |
| US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
| US6247091B1 (en) * | 1997-04-28 | 2001-06-12 | International Business Machines Corporation | Method and system for communicating interrupts between nodes of a multinode computer system |
| US5987587A (en) * | 1997-06-06 | 1999-11-16 | International Business Machines Corporation | Single chip multiprocessor with shared execution units |
| US6055605A (en) * | 1997-10-24 | 2000-04-25 | Compaq Computer Corporation | Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches |
| US6587931B1 (en) * | 1997-12-31 | 2003-07-01 | Unisys Corporation | Directory-based cache coherency system supporting multiple instruction processor and input/output caches |
| US6801207B1 (en) * | 1998-10-09 | 2004-10-05 | Advanced Micro Devices, Inc. | Multimedia processor employing a shared CPU-graphics cache |
| CA2362778A1 (en) * | 1999-03-03 | 2000-09-08 | Merck & Co., Inc. | Inhibitors of prenyl-protein transferase |
| US6527456B1 (en) * | 1999-10-13 | 2003-03-04 | Teraconnect, Inc. | Cluster integration approach to optical transceiver arrays and fiber bundles |
| US6671280B1 (en) * | 2000-03-29 | 2003-12-30 | International Business Machines Corporation | Network processor for multiprotocol data flows |
| US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
| US6665775B1 (en) | 2000-09-22 | 2003-12-16 | Intel Corporation | Cache dynamically configured for simultaneous accesses by multiple computing engines |
| US6801208B2 (en) * | 2000-12-27 | 2004-10-05 | Intel Corporation | System and method for cache sharing |
| US6419502B1 (en) * | 2001-03-14 | 2002-07-16 | Hon Hai Precision Ind. Co., Ltd. | Electrical connector assembly with improved contact arrangement |
| US7284050B1 (en) * | 2001-03-26 | 2007-10-16 | Cisco Technology, Inc. | Method and system for a voice multicast hardware accelerator |
| US6775750B2 (en) * | 2001-06-29 | 2004-08-10 | Texas Instruments Incorporated | System protection map |
| US6920485B2 (en) * | 2001-10-04 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Packet processing in shared memory multi-computer systems |
| US6944719B2 (en) * | 2002-05-15 | 2005-09-13 | Broadcom Corp. | Scalable cache coherent distributed shared memory processing system |
| US7086058B2 (en) * | 2002-06-06 | 2006-08-01 | International Business Machines Corporation | Method and apparatus to eliminate processor core hot spots |
| US7451182B2 (en) * | 2002-06-28 | 2008-11-11 | Intel Corporation | Coordinating operations of network and host processors |
| US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
| US7237068B2 (en) * | 2003-01-28 | 2007-06-26 | Sun Microsystems, Inc. | Computer system employing bundled prefetching and null-data packet transmission |
| US7519800B2 (en) * | 2003-03-27 | 2009-04-14 | Hewlett-Packard Development Company, L.P. | Apparatus and method for enforcing homogeneity within partitions of heterogeneous computer systems |
| US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
| US7093080B2 (en) * | 2003-10-09 | 2006-08-15 | International Business Machines Corporation | Method and apparatus for coherent memory structure of heterogeneous processor systems |
| US7136967B2 (en) * | 2003-12-09 | 2006-11-14 | International Business Machinces Corporation | Multi-level cache having overlapping congruence groups of associativity sets in different cache levels |
| US7023445B1 (en) * | 2004-04-12 | 2006-04-04 | Advanced Micro Devices, Inc. | CPU and graphics unit with shared cache |
| US7219185B2 (en) * | 2004-04-22 | 2007-05-15 | International Business Machines Corporation | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache |
| US20060041715A1 (en) * | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
| US20060053258A1 (en) * | 2004-09-08 | 2006-03-09 | Yen-Cheng Liu | Cache filtering using core indicators |
| US7669009B2 (en) * | 2004-09-23 | 2010-02-23 | Intel Corporation | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches |
| US20060112226A1 (en) * | 2004-11-19 | 2006-05-25 | Hady Frank T | Heterogeneous processors sharing a common cache |
| US8769495B1 (en) * | 2005-09-30 | 2014-07-01 | Sony Computer Entertainment Inc. | Systems and methods for debugging in a multiprocessor environment |
-
2004
- 2004-11-19 US US10/993,757 patent/US20060112226A1/en not_active Abandoned
-
2005
- 2005-11-10 WO PCT/US2005/041166 patent/WO2006055477A1/en not_active Ceased
- 2005-11-10 US US11/270,932 patent/US7577792B2/en not_active Expired - Lifetime
- 2005-11-10 DE DE112005002364T patent/DE112005002364T5/de not_active Ceased
- 2005-11-18 CN CN2005100230150A patent/CN1783033B/zh not_active Expired - Fee Related
- 2005-11-18 CN CN2008101863671A patent/CN101470691B/zh not_active Expired - Fee Related
-
2009
- 2009-07-06 US US12/459,683 patent/US8156285B2/en not_active Expired - Lifetime
-
2012
- 2012-02-27 US US13/405,798 patent/US8402222B2/en not_active Expired - Fee Related
-
2013
- 2013-02-13 US US13/766,074 patent/US8799579B2/en not_active Expired - Lifetime
-
2014
- 2014-06-30 US US14/319,616 patent/US9235550B2/en not_active Expired - Lifetime
-
2015
- 2015-12-22 US US14/977,929 patent/US9965393B2/en not_active Expired - Lifetime
-
2016
- 2016-12-15 US US15/380,328 patent/US20170097889A1/en not_active Abandoned
- 2016-12-15 US US15/380,289 patent/US10339061B2/en not_active Expired - Fee Related
-
2018
- 2018-04-06 US US15/947,020 patent/US11016895B2/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010042189A1 (en) * | 2000-02-17 | 2001-11-15 | Babaian Boris A. | Single-chip multiprocessor with cycle-precise program scheduling of parallel execution |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9710396B2 (en) | 2009-12-21 | 2017-07-18 | Intel Corporation | Sharing virtual memory-based multi-version data between the heterogeneous processors of a computer platform |
Also Published As
| Publication number | Publication date |
|---|---|
| US8156285B2 (en) | 2012-04-10 |
| WO2006055477A1 (en) | 2006-05-26 |
| US7577792B2 (en) | 2009-08-18 |
| US9235550B2 (en) | 2016-01-12 |
| US20150081976A1 (en) | 2015-03-19 |
| US8799579B2 (en) | 2014-08-05 |
| US20170097888A1 (en) | 2017-04-06 |
| CN101470691B (zh) | 2012-02-22 |
| US20130275681A1 (en) | 2013-10-17 |
| US20060112227A1 (en) | 2006-05-25 |
| US20120215984A1 (en) | 2012-08-23 |
| US20160188466A1 (en) | 2016-06-30 |
| US20170097889A1 (en) | 2017-04-06 |
| US20190114261A1 (en) | 2019-04-18 |
| US10339061B2 (en) | 2019-07-02 |
| US20100011167A1 (en) | 2010-01-14 |
| US11016895B2 (en) | 2021-05-25 |
| US20060112226A1 (en) | 2006-05-25 |
| CN101470691A (zh) | 2009-07-01 |
| DE112005002364T5 (de) | 2007-09-06 |
| US8402222B2 (en) | 2013-03-19 |
| CN1783033A (zh) | 2006-06-07 |
| US9965393B2 (en) | 2018-05-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN1783033B (zh) | 共享公共高速缓存的异构处理器 | |
| US11908546B2 (en) | In-memory lightweight memory coherence protocol | |
| CN114461548B (zh) | 加速器结构 | |
| US6141692A (en) | Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol | |
| US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
| US7624236B2 (en) | Predictive early write-back of owned cache blocks in a shared memory computer system | |
| US5878268A (en) | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node | |
| Kim et al. | Multi-GPU system design with memory networks | |
| US20070143546A1 (en) | Partitioned shared cache | |
| US6826653B2 (en) | Block data mover adapted to contain faults in a partitioned multiprocessor system | |
| JP3470951B2 (ja) | 非一様メモリ・アクセス・コンピュータ・システム及びその操作方法 | |
| CN102214120B (zh) | 处理非相干设备的原子操作 | |
| US20090037658A1 (en) | Providing an inclusive shared cache among multiple core-cache clusters | |
| US20170177484A1 (en) | Region probe filter for distributed memory system | |
| US9361230B2 (en) | Three channel cache-coherency socket protocol | |
| US8151059B2 (en) | Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture | |
| US6269428B1 (en) | Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system | |
| US10956329B2 (en) | Cache coherent node controller for scale-up shared memory systems having interconnect switch between a group of CPUS and FPGA node controller | |
| US7568073B2 (en) | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection | |
| US7752281B2 (en) | Bridges performing remote reads and writes as uncacheable coherent operations | |
| US20070011408A1 (en) | Adaptive snoop-and-forward mechanisms for multiprocessor systems | |
| KR102839435B1 (ko) | 코히어런트 블록 판독 이행 | |
| US20070073977A1 (en) | Early global observation point for a uniprocessor system | |
| JP4306811B2 (ja) | 分散共有メモリマルチプロセッサシステムのための統合されたメッセージ・パッシング及びメモリ保護を有するキャッシュ・コヒーレンス・ユニット |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C12 | Rejection of a patent application after its publication | ||
| RJ01 | Rejection of invention patent application after publication |
Open date: 20060607 |
|
| CI01 | Publication of corrected invention patent application |
Correction item: Rejection of patent application Correct: Dismiss False: Reject Number: 32 Volume: 26 |
|
| ERR | Gazette correction |
Free format text: CORRECT: PATENT APPLICATION REJECTION AFTER THE ANNOUNCEMENT; FROM: REJECTION TO: CANCEL REJECTION |
|
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110727 |