CN101470691A - 共享公共高速缓存的异构处理器 - Google Patents

共享公共高速缓存的异构处理器 Download PDF

Info

Publication number
CN101470691A
CN101470691A CNA2008101863671A CN200810186367A CN101470691A CN 101470691 A CN101470691 A CN 101470691A CN A2008101863671 A CNA2008101863671 A CN A2008101863671A CN 200810186367 A CN200810186367 A CN 200810186367A CN 101470691 A CN101470691 A CN 101470691A
Authority
CN
China
Prior art keywords
processor
kernel
processor cores
cache
cores
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101863671A
Other languages
English (en)
Other versions
CN101470691B (zh
Inventor
F·哈迪
M·卡波特
J·贝克
M·罗森布卢特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101470691A publication Critical patent/CN101470691A/zh
Application granted granted Critical
Publication of CN101470691B publication Critical patent/CN101470691B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Abstract

公开了一种提供异构处理器内核和共享高速缓存的多内核处理器,所述处理器包括包含异构处理器内核的处理器内核;以及连接到所述处理器内核并由所述处理器内核共享的高速缓存;其中处理器内核以及高速缓存集成在单个集成片上。

Description

共享公共高速缓存的异构处理器
本申请是下列申请的分案申请,原申请的申请日为2005年11月18日、发明名称为“共享公共高速缓存的异构处理器”,申请号为200510023015.0。
技术领域
本发明涉及一种处理器,特别是涉及一种共享公共高速缓存的异构处理器。
背景技术
现代的通用处理器通常通过一个或多个高速缓存(例如,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可以基于通用处理器的任何类型的结构,例如,Intel
Figure A200810186330D0004110736QIETU
Architecture处理器(“IA处理器”),比如Intel
Figure A200810186330D0004110736QIETU
XeonTM处理器,或IntelPentium
Figure A200810186330D0004110736QIETU
4处理器或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中或者从主存储器14中读出。因此,两种类型的处理器内核可以用这种方式以共享高速缓存的数据速率传送数据,该速率通常比主存储器允许的速率高,并且不加载主存储器以避免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 (18)

1、一种处理器,包括:
包含异构处理器内核的处理器内核;以及
连接到所述处理器内核并由所述处理器内核共享的高速缓存;
其中处理器内核以及高速缓存集成在单个集成片上。
2、权利要求1的处理器,其中异构处理器内核包括专用处理器内核。
3、权利要求2的处理器,其中专用处理器内核包括具有指令集的网络处理器单元内核,该指令集不包括用于浮点运算的指令。
4、权利要求2的处理器,其中专用处理器内核包括图形引擎内核。
5、权利要求1的处理器,其中异构处理器内核包括中央处理单元内核。
6、权利要求1的处理器,其中异构处理器内核包括网络处理器单元内核和中央处理单元内核。
7、权利要求1的处理器,其中异构处理器内核包括中央处理单元内核和图形引擎内核。
8、权利要求1的处理器,其中高速缓存包括多端口高速缓存。
9、权利要求8的处理器,其中处理器内核包括一个或多个第一类型的处理器内核以及一个或多个第二类型的处理器内核,而多端口高速缓存包括至少一个支持由一个或多个第一类型的处理器内核生成的事务的端口,以及至少一个支持由一个或多个第二类型的处理器内核生成的事务的端口。
10、权利要求9的处理器,其中所述端口被配置为根据端口所支持的各个处理器内核类型而操作。
11、权利要求10的处理器,其中所述端口包括根据各个处理器内核类型的命令类型、大小和对准中的一个或多个来配置的端口。
12、权利要求10的处理器,其中异构处理器内核包括不同类型的处理器内核,并且多端口高速缓存为每个不同类型的处理器内核提供不同的端口类型。
13、权利要求1的处理器,进一步包括将处理器内核耦合到高速缓存的互连,所述互连包括互连总线。
14、权利要求1的处理器,其中处理器内核包括翻译逻辑,用于将每个处理器内核的专用事务翻译为与内核无关的事务。
15、权利要求1的处理器,其中异构处理器内核包括不同类型的处理器内核,并且高速缓存包括处理由不同类型的处理器内核所生成的事务的逻辑。
16、权利要求1的处理器,其中异构处理器内核使用允许不同最大传送容量的命令,其中不同最大传送容量的其中之一允许跨越多个高速缓存线的传送。
17、权利要求1的处理器,其中至少一个异构处理器内核是可操作的,以便为扩展的专用修改锁定一部分高速缓存。
18、权利要求1的处理器,其中每个处理器内核能够使用共享高速缓存,以便将数据传递到另一个处理器内核。
CN2008101863671A 2004-11-19 2005-11-18 共享公共高速缓存的异构处理器 Expired - Fee Related CN101470691B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/993757 2004-11-19
US10/993,757 US20060112226A1 (en) 2004-11-19 2004-11-19 Heterogeneous processors sharing a common cache

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2005100230150A Division CN1783033B (zh) 2004-11-19 2005-11-18 共享公共高速缓存的异构处理器

Publications (2)

Publication Number Publication Date
CN101470691A true CN101470691A (zh) 2009-07-01
CN101470691B CN101470691B (zh) 2012-02-22

Family

ID=35744810

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008101863671A Expired - Fee Related CN101470691B (zh) 2004-11-19 2005-11-18 共享公共高速缓存的异构处理器
CN2005100230150A Expired - Fee Related CN1783033B (zh) 2004-11-19 2005-11-18 共享公共高速缓存的异构处理器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2005100230150A Expired - Fee Related CN1783033B (zh) 2004-11-19 2005-11-18 共享公共高速缓存的异构处理器

Country Status (4)

Country Link
US (10) US20060112226A1 (zh)
CN (2) CN101470691B (zh)
DE (1) DE112005002364T5 (zh)
WO (1) WO2006055477A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576299A (zh) * 2009-09-10 2012-07-11 先进微装置公司 处理内存请求的系统与方法
CN103959261A (zh) * 2011-10-31 2014-07-30 凯为公司 网络处理器中的多内核互联
WO2017148218A1 (zh) * 2016-03-01 2017-09-08 中兴通讯股份有限公司 一种数据流处理芯片的表项访问方法及装置
CN107544926A (zh) * 2017-09-06 2018-01-05 上海兆芯集成电路有限公司 处理系统及其访存方法
CN108763129A (zh) * 2011-12-22 2018-11-06 英特尔公司 具有相同的指令集架构(isa)的非对称性能多核架构
CN109643232A (zh) * 2016-08-19 2019-04-16 威斯康星校友研究基金会 具有协同异构处理器的计算机架构
WO2023134360A1 (zh) * 2022-01-14 2023-07-20 哲库科技(上海)有限公司 一种数据处理方法及装置、存储介质

Families Citing this family (76)

* Cited by examiner, † Cited by third party
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
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
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
US7840759B2 (en) * 2007-03-21 2010-11-23 International Business Machines Corporation Shared cache eviction
US8065487B2 (en) * 2007-03-21 2011-11-22 International Business Machines Corporation Structure for 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
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
US8868848B2 (en) * 2009-12-21 2014-10-21 Intel Corporation Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform
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
WO2013088283A2 (en) * 2011-12-16 2013-06-20 International Business Machines Corporation Memory sharing by processors
US9990287B2 (en) * 2011-12-21 2018-06-05 Intel Corporation Apparatus and method for memory-hierarchy aware producer-consumer instruction
CN104011694A (zh) * 2011-12-21 2014-08-27 英特尔公司 用于存储器层次知晓的生产者-消费者指令的装置和方法
WO2013141871A1 (en) * 2012-03-22 2013-09-26 Intel Corporation Application-reserved cache for direct i/o
CN102782661B (zh) * 2012-05-18 2015-06-17 华为技术有限公司 数据存储的系统和方法
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共享片上高速缓存的方法及装置
CN105793833B (zh) * 2014-09-18 2019-08-06 上海兆芯集成电路有限公司 处理器及其操作方法、计算机可读存储介质
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
GB2537420B (en) * 2015-04-17 2018-11-28 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 中国电子科技集团公司第三十二研究所 基于异构处理器平台的管理架构及其管理方法
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
US10152243B2 (en) * 2016-09-15 2018-12-11 Qualcomm Incorporated Managing data flow in heterogeneous computing
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
CN110710172A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络
US10686729B2 (en) 2017-03-29 2020-06-16 Fungible, Inc. Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths
CN110741356B (zh) 2017-04-10 2024-03-15 微软技术许可有限责任公司 多处理器系统中的中继一致存储器管理
US10725825B2 (en) 2017-07-10 2020-07-28 Fungible, Inc. Data processing unit for stream processing
US10659254B2 (en) 2017-07-10 2020-05-19 Fungible, Inc. Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric
CN107729281B (zh) * 2017-08-31 2019-11-15 北京计算机技术及应用研究所 一种基于RapidIO的高速传输实现方法
US10885212B2 (en) 2017-09-12 2021-01-05 Sophos Limited Secure management of process properties
WO2019068017A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH
US11178262B2 (en) 2017-09-29 2021-11-16 Fungible, Inc. 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 삼성전자주식회사 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템
US10540288B2 (en) 2018-02-02 2020-01-21 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
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
US11321146B2 (en) 2019-05-09 2022-05-03 International Business Machines Corporation Executing an atomic primitive in a multi-core processor system
CN111966610B (zh) * 2020-09-04 2023-12-01 Oppo广东移动通信有限公司 数据传输方法、处理芯片和计算机设备
WO2024058615A1 (ko) * 2022-09-16 2024-03-21 삼성전자 주식회사 신경 처리부를 포함하는 전자 장치 및 그 동작 방법
CN115811536B (zh) * 2023-02-07 2023-05-05 南京芯驰半导体科技有限公司 一种基于多核异构的汽车中央网关系统及实现方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
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
JP2002542155A (ja) * 1999-03-03 2002-12-10 メルク エンド カムパニー インコーポレーテッド プレニル蛋白トランスフェラーゼの阻害剤
US6527456B1 (en) * 1999-10-13 2003-03-04 Teraconnect, Inc. Cluster integration approach to optical transceiver arrays and fiber bundles
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
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

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576299B (zh) * 2009-09-10 2015-11-25 先进微装置公司 在多处理器系统使用探针引擎处理内存请求的系统与方法
CN102576299A (zh) * 2009-09-10 2012-07-11 先进微装置公司 处理内存请求的系统与方法
CN103959261B (zh) * 2011-10-31 2019-06-21 凯为有限责任公司 网络处理器中的多内核互联
CN103959261A (zh) * 2011-10-31 2014-07-30 凯为公司 网络处理器中的多内核互联
CN108763129B (zh) * 2011-12-22 2021-12-07 英特尔公司 具有相同的指令集架构(isa)的非对称性能多核架构
CN108763129A (zh) * 2011-12-22 2018-11-06 英特尔公司 具有相同的指令集架构(isa)的非对称性能多核架构
WO2017148218A1 (zh) * 2016-03-01 2017-09-08 中兴通讯股份有限公司 一种数据流处理芯片的表项访问方法及装置
CN109643232A (zh) * 2016-08-19 2019-04-16 威斯康星校友研究基金会 具有协同异构处理器的计算机架构
CN109643232B (zh) * 2016-08-19 2024-01-02 威斯康星校友研究基金会 执行程序的计算机系统和在计算机系统上执行程序的方法
CN107544926B (zh) * 2017-09-06 2020-04-07 上海兆芯集成电路有限公司 处理系统及其访存方法
CN107544926A (zh) * 2017-09-06 2018-01-05 上海兆芯集成电路有限公司 处理系统及其访存方法
US11263139B2 (en) 2017-09-06 2022-03-01 Shanghai Zhaoxin Semiconductor Co., Ltd. Hardware accelerators and access methods thereof
WO2023134360A1 (zh) * 2022-01-14 2023-07-20 哲库科技(上海)有限公司 一种数据处理方法及装置、存储介质

Also Published As

Publication number Publication date
US8156285B2 (en) 2012-04-10
US7577792B2 (en) 2009-08-18
US20060112226A1 (en) 2006-05-25
US11016895B2 (en) 2021-05-25
US20060112227A1 (en) 2006-05-25
US20120215984A1 (en) 2012-08-23
US20100011167A1 (en) 2010-01-14
US20170097889A1 (en) 2017-04-06
CN1783033A (zh) 2006-06-07
US20130275681A1 (en) 2013-10-17
US20150081976A1 (en) 2015-03-19
US20170097888A1 (en) 2017-04-06
US8402222B2 (en) 2013-03-19
US9235550B2 (en) 2016-01-12
CN1783033B (zh) 2011-07-27
US10339061B2 (en) 2019-07-02
US20190114261A1 (en) 2019-04-18
DE112005002364T5 (de) 2007-09-06
US20160188466A1 (en) 2016-06-30
WO2006055477A1 (en) 2006-05-26
CN101470691B (zh) 2012-02-22
US9965393B2 (en) 2018-05-08
US8799579B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
CN1783033B (zh) 共享公共高速缓存的异构处理器
US7613882B1 (en) Fast invalidation for cache coherency in distributed shared memory system
Kim et al. Multi-GPU system design with memory networks
EP0817062B1 (en) Multi-processor computing system and method of controlling traffic flow
US8352656B2 (en) Handling atomic operations for a non-coherent device
US7624236B2 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
US20070143546A1 (en) Partitioned shared cache
US9244840B2 (en) Cache swizzle with inline transposition
US8151059B2 (en) Conflict detection and resolution in a multi core-cache domain for a chip multi-processor employing scalability agent architecture
CN114461548A (zh) 加速器结构
US20090182944A1 (en) Processing Unit Incorporating L1 Cache Bypass
US9009446B2 (en) Using broadcast-based TLB sharing to reduce address-translation latency in a shared-memory system with electrical interconnect
JP2000112910A (ja) 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
US10528519B2 (en) Computing in parallel processing environments
US20090006668A1 (en) Performing direct data transactions with a cache memory
US20070011408A1 (en) Adaptive snoop-and-forward mechanisms for multiprocessor systems
JP2018045700A (ja) ネットワークプロセッサにおけるマルチコア相互接続
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
US10956329B2 (en) Cache coherent node controller for scale-up shared memory systems having interconnect switch between a group of CPUS and FPGA node controller
US8370508B2 (en) Method, system and apparatus for main memory access subsystem usage to different partitions in a socket with sub-socket partitioning
US20090006777A1 (en) Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US11874783B2 (en) Coherent block read fulfillment
US7194585B2 (en) Coherency controller management of transactions
Suh et al. DRACO: optimized CC-NUMA system with novel dual-link interconnections to reduce the memory latency
KR20020097268A (ko) 제 1 주소 리피터와 제 2 주소 리피터간 효율적 거래송출을 위한 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120222

CF01 Termination of patent right due to non-payment of annual fee