CN113348446A - 用于处理tcf感知处理器的存储器访问的方法和装置 - Google Patents
用于处理tcf感知处理器的存储器访问的方法和装置 Download PDFInfo
- Publication number
- CN113348446A CN113348446A CN201980089503.1A CN201980089503A CN113348446A CN 113348446 A CN113348446 A CN 113348446A CN 201980089503 A CN201980089503 A CN 201980089503A CN 113348446 A CN113348446 A CN 113348446A
- Authority
- CN
- China
- Prior art keywords
- shared data
- data memory
- instruction
- memory access
- memory
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 220
- 238000000034 method Methods 0.000 title claims description 32
- 239000000835 fiber Substances 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 26
- 239000000872 buffer Substances 0.000 description 26
- 230000003139 buffering effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003446 memory effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011064 split stream procedure Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/522—Barrier synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种用于处理TCF感知处理器的共享数据存储器访问的装置。所述装置至少包括灵活延迟处理单元(601),所述灵活延迟处理单元包括本地存储器(602)和相关控制逻辑,所述本地存储器被提供用于存储共享数据存储器访问相关数据。所述装置被配置成接收包括至少一个指令的至少一个TCF,所述至少一个指令与至少一个纤程相关联,其中所述灵活延迟处理单元被配置成:确定所述至少一个指令是否需要共享数据存储器访问;如果需要共享数据存储器访问,则发送共享数据存储器访问请求;通过所述灵活延迟处理单元,基本上连续地观察是否接收到对所述共享数据存储器访问请求的回复;暂停继续执行所述指令,直至接收到回复;以及在接收到所述回复后继续执行所述指令,使得与所述共享数据存储器访问相关联的延时通过实际所需的共享数据存储器访问延迟动态地确定。
Description
技术领域
本发明总体上涉及计算机技术。特别地,本发明涉及处理器的存储器访问。
背景技术
与涉及多线程计算的软件相关,由于当前模型的局限性,大量并行线程之间的高效协作的组织一直是一个根本问题。在V.Leppanen,M.Forsell,和J-M.Makela,《厚控制流:介绍与展望(Thick Control Flows:Introduction and Prospects)》,2011年国际并行和分布式处理技术与应用会议论文集(PDPTA’11),拉斯维加斯,美国,第540–546页,2011中介绍了并行厚控制流(TCF)的概念作为一种解决方案。当厚控制流(就纤程的数量而言,纤程类似于线程)执行程序的语句或表达式时,所有纤程都被认为是同步并行地执行同一程序元素。厚控制流的概念允许程序员专注于少数几个并行的厚控制流的协作,而不是大量的并行线程。
程序员可以有利地利用TCF的概念,此外,至少有一些TCF的实现选择表明替代传统线程概念的概念可能对处理器内核有用,因为它支持理论模型具有灵活性,消除了软件和硬件冗余,并且简化了指令存储系统。
先前已在M.Forsell,J.Roivainen和V.《厚控制流架构概述(Outlineof aThick Control Flow Architecture)》,2016年国际计算机架构与高性能计算研讨会专题论文集(SBAC-PADW),洛杉矶,加利福尼亚州,2016,第1-6页中提出了一种用于执行为TCF模型编写的程序的架构——厚控制流处理器架构(TPA)。
通常,大多数处理器架构利用了多指令流多数据流(MIMD)模型,其中来自不同指令流的P个指令在P个处理元件中执行。这可能会浪费包含自相似性的代码的资源。此类代码的更优化的解决方案是使用单指令流多数据流(SIMD),其中用于P个数据元素的同一指令在P个处理单元中执行。尽管SIMD更具成本效益、更易于编程并且其实现具有功耗更低的特征,但它不能高效地执行具有线程间受控的并行性和异构性的代码。以下事实引发了另一个维度的问题:在MIMD和SIMD架构的实现中,硬件线程的数量是固定的,并且当软件线程的数量超过支持的数量时会增加开销。
为了适应在同构性、异构性、线程数量方面具有不同特性的代码部分并能高效地执行它们,引入TCF模型——其中通过同一控制路径的同构线程(或“纤程”,因为它们可以被称为与TCF有关,以将它们与常规并行编程的更独立的“线程”区分开来)组合成被称为TCF的实体——从而有可能利用SIMD样式的优化并保留在必要时拥有MIMD模型的多个流的可能性。TCF模型不提供固定数量的线程,而是提供一些具有一定厚度的控制流,这些控制流可以根据应用程序的需要而变化。
影响并行计算的另一组问题与相互通信的装置有关。在共享存储器架构(SMA)中,数据和程序分区通常是通过将需要由多个线程处理的数据置入共享存储器中并将程序更独立地拆分给处理器来执行的,从而使得与消息传递(MPA)架构相比更容易编程,在消息传递架构中,处理总是在本地发生,并且程序员负责相应地四处移动数据。大多数SMA使用由多个互连的处理器-缓存对组成的分布式共享存储器架构,这使得缓存一致性(以及因此延迟容许度)和同步性维护非常昂贵。这甚至可能会破坏他们在通信密集型问题中的性能。
为了解决例如上述问题,引入了仿真共享存储器(ESM)或共享存储器仿真架构。它们合并有一组多线程处理器,这些处理器通过高吞吐量相互通信网络连接至公共的可统一且同步访问的共享存储器。通过叠加正在进行的存储器引用来隐藏存储系统延迟,并且建立了特殊的低成本同步机制,从而确保机器指令级别的同步性。ESM系统为用户提供了对理想的共享存储器的感知——即使实际的硬件架构包括物理分布式存储器。从理论的角度来看,这些架构试图仿真抽象的并行随机存取机(PRAM),并行随机存取机由于其简单性和表现性通常用作这样的模型,该模型用于对计算问题的内在并行性以及执行并行算法的性能和成本进行描述和分析。PRAM模型通常是指在同一时钟下工作的一组处理器以及与该组处理器连接的统一单步可访问共享存储器。
因此,ESM是解决芯片多处理器(CMP)的可编程性和性能可扩展性问题的可行技术,因为它可产生在机器指令的执行中隐含的同步性、高效的延迟隐藏以及足够的带宽来路由所有存储器引用——即使在具有大量随机和并发的访问工作负荷的情况下。同步执行被认为使编程更容易,因为程序员不需要在每次全局存储器访问后显式地同步执行线程,而是可以依靠硬件来自动处理,而例如在MPA中程序员负责显式地定义通信、同步子任务以及描述线程之间的数据和程序分区,这使得MPA难以编程。在共享存储器仿真中应用的延迟隐藏利用了高吞吐量计算方案,在该方案中,在一个线程引用全局共享存储器的同时执行其他线程。因为该吞吐量计算方案采用了从可用线程级并行性中提取的并行松弛度,所以与依靠侦听或基于目录的缓存一致性机制并因此存在有限的带宽或目录访问延时以及大量的一致性维护流量等问题的传统对称多处理器和非统一存储器访问(NUMA)系统相比,它被认为提供了增强的可扩展性。
TCF模型可以链接至ESM和实现处理器架构,即TCF感知处理器,例如TPA。为此所需的解决方案在现有技术中在高级别上进行了概述,但没有描述实现的低级别细节。
对于共享存储器延迟补偿,现有技术的特征是存储器回复等待流水线段。该解决方案具有适用于各种工作负荷的固定段长度。根据接近最差案例的情况在设计时选择段的长度。这种解决方案会减慢执行速度——尤其是在低存储器活动、分区或局部优化模式的情况下。
发明内容
本发明的一个目的是减轻与已知的现有技术有关的至少一些问题。本发明的目的可以通过独立权利要求的特征来实现。本发明的一个实施方式提供了一种用于处理TCF感知处理器的共享数据存储器访问的装置。所述装置至少包括灵活延迟处理单元,所述灵活延迟处理单元包括本地存储器和相关控制逻辑,所述本地存储器被提供用于存储共享数据存储器访问相关数据。所述装置被配置成接收包括至少一个指令的至少一个TCF,所述至少一个指令与至少一个纤程相关联,其中所述灵活延迟处理单元被配置成:确定所述至少一个指令是否需要共享数据存储器访问;如果需要共享数据存储器访问,则发送共享数据存储器访问请求;通过所述灵活延迟处理单元,基本上连续地观察是否接收到对所述共享数据存储器访问请求的回复;暂停继续执行所述指令,直至接收到回复;以及在接收到所述回复后继续执行所述指令,使得与所述共享数据存储器访问相关联的延时通过实际所需的共享数据存储器访问延迟动态地确定。
还提供了一种根据独立权利要求14所述的方法。
考虑到本发明的各种实施方式的效用,用于TCF感知处理器的共享存储器访问(诸如存储器读取操作)的装置和方法可以提供与当前的替代方案相比可提供更好的性能、更简单的可编程性以及更好的成本效益的TCF感知处理器的有用部分。
灵活延迟处理单元可以被认为是包括本地存储器和控制逻辑的功能实体。本地存储器和控制逻辑可以实现为可驻留在不同位置处的分开的物理实体,或者它们可以实现为公共物理实体。
灵活延迟处理单元的本地存储器可以包括可以至少在逻辑上由灵活延迟处理单元使用的数据存储器,其中本地存储器可以存储关于多个指令的数据。本地存储器可以是专用存储器,或者它可以集成到可用于执行控制逻辑的一些其他元件中,诸如硬件,例如芯片。
根据本发明的实施方式的装置可以接收至少一个指令,其中对是否需要共享数据存储器访问的确定可以通过经由一个或多个标识符、操作数、指令字和/或操作代码进行的识别或者本领域技术人员可能熟悉的其他一些合适的方式来执行。
灵活延迟处理单元在本文中还可被称为灵活延迟补偿单元(FLCU)。术语TCF感知处理器是指实现TCF模型及其特殊案例(包括但不限于ESM、可配置的ESM(CESM)和矢量/SIMD)(如出版物M.Forsell和V.《用于TCF编程的扩展PRAM-NUMA计算模型(AnExtended PRAM-NUMA Model of Computation for TCF Programming)》,国际网络与计算杂志3,1(2013),98-115中所述)以及使用类似的延迟补偿机制的所有处理器。因此,换句话说,本发明可以提供一种用于处理存储器访问的方法,其例如还用于ESM、可配置的ESM和向量/SIMD处理器,它们被术语TCF感知处理器所涵盖。
在一些实施方式中,FLCU可以实现为包括由流水线逻辑控制的先进先出(FIFO)样式的本地存储器。这里,可以使用FIFO样式的缓冲,这可能会带来一些优势(与其他缓冲技术相比),诸如易于实现和/或具有与硅表面积有关的较小要求,同时仍能实现高性能。在使用其他缓冲技术(诸如可以以任何顺序读取存储器引用结果的缓冲技术)的情况下,缓冲可能更加复杂,其中使用地址表(例如可能有两层),应该使用以便能够找到正确的缓冲数据。还应该利用其他缓冲类型来实现更复杂的逻辑,所述其他缓冲类型将在能够或不能根据所有未列出的规则以与发送对应的存储器引用请求不同的顺序执行接收到的存储器引用时考虑这些规则。在另一方面,FIFO缓冲的使用自然可以是有利的,因为它可以在流水线的剩余部分期间维持纤程的序列。
然而,在某些其他实施方式和使用案例场景中,可以使用除FIFO之外的其他一些缓冲技术。在替代性实施方式中,非FIFO样式的缓冲器可以提供一些优势,诸如实现甚至更高的性能——例如通过甚至更快的执行。
根据已完成的存储器引用的延迟,通过从FLCU本地存储器(这里的本地存储器也称为缓冲器)读取可以实现许多优点。如果指令不包含共享存储器读取子指令,则不需要等待已完成的共享存储器引用,并且可以通过基本上连续地读取FLCU本地存储器(优选地在每个时钟周期)由流水线的下一级继续执行。因此,可以提高整体性能。
在本发明的实施方式中,当指令到达存储器单元/FLCU时,指令可以将它们的可能的引用发送至共享数据存储器系统。在此之后,指令(定义指令的数据)和相关数据(诸如可能的已完成的共享数据存储器引用)可以写入FLCU本地存储器(在FIFO样式缓冲的情况下,也可以称为FLCU缓冲器或FLCU FIFO缓冲器)中。在FLCU本地存储器的另一侧,可以在以下两种情况下读取可从FLCU本地存储器中获得的最顶层指令和数据:
1.来自共享数据存储器系统的所需回复已到达。
2.不需要来自共享数据存储器系统的回复。
与现有的固定存储器回复等待流水线段相比,本发明可以允许在上述条件允许时立即连续执行而非特别需要等待预定义延时。
与上文相关,装置的实施方式可以包括灵活延迟处理单元(FLCU),该单元包括用于存储共享数据存储器访问相关数据的本地存储器。该装置还可以被配置成将与至少一个接收到的指令有关的数据存储在本地存储器中。存储的关于所述至少一个指令的数据可以包括定义指令的数据和/或由可能通过共享数据存储器访问获取的指令引用的数据。
在实施方式中,该装置可以被配置成将纤程存储在本地存储器中。如前所述,定义指令的数据可以在向共享数据存储器系统发送可能的引用后存储在本地存储器中(“写入FLCU本地存储器中”),同时该数据也可以同时地或在发送存储器引用之前存储到正在发送的存储器引用中。可以在存储定义指令的数据的同时或在不同的时间将已完成的存储器引用存储在本地存储器中。
通过本发明的实施方式,可以以动态变化的长度来执行步骤(与指令的执行有关,优选地与多个纤程有关)。
由于它能够为低活动和局部优化的访问模式保持低延迟,因此本发明潜在地提高了性能并简化了处理器到子机器的分区。
在分区可能受到影响的情况下,子机器可能会更小,从而增加了灵活性。
与现有的固定存储器回复等待流水线段相比,本发明允许在条件允许时立即继续执行而非特别需要等待预定义延时。
通过经由本发明实现的存储器访问方法和装置的实施方式,可以提供具有灵活的/变化的等待或延时的存储器单元,然而,其中,指令序列保持不变。
通过本发明的实施方式,执行指令的纤程基本上可以在接收到存储器引用时立即或至少在下一个时钟周期在流水线中进行。在无需来自共享存储器的引用的情况下,等待存储器引用到达的延迟或延时也可以基本上不存在。
本发明因此可以带来更快的执行并且可能减少能量使用。
在一个实施方式中,装置可以由灵活延迟处理单元组成,而在其他实施方式中,装置还可以包括其他实体。例如,装置可以包括一个或多个处理器、处理器核心、缓存、暂存器、流水线构造和/或ALU(算术逻辑单元),其可以在逻辑上位于灵活延迟处理单元之前或之后。
在一个实施方式中,该装置可以实现为可以被包含在处理器中的存储器单元或者可以实现为单独的单元。例如,在某些情况下,该装置可以被组织在与处理器相同的集成芯片上。
本文中呈现的示例性实施方式不应被解释为对所附权利要求的适用性造成限制。动词“包括”在本文中用作开放限制,不排除未提及的特征的存在。除非另有明确说明,否则从属权利要求中记载的特征可以相互自由组合。
特别地在所附权利要求中阐述被认为是本发明的特性的新颖特征。然而,当结合附图阅读时,从具体示例实施方式的以下描述中将最好地理解本发明本身——关于其构造和其操作方法,连同其另外的目的和优点。
如本领域技术人员所理解的,先前提出的与装置的各种实施方式有关的考虑可以灵活地应用于经过必要修正的方法的实施方式,反之亦然。
附图说明
接下来将参考根据附图的示例性实施方式更详细地描述本发明,其中:
图1例示了可行的可扩展架构,用于在硅平台上仿真共享存储器,
图2是可行的ESM架构的另一种表示,其本质上是CMP ESM架构,
图3例示了使用TCF执行功能的实施例,
图4示出了TPA的整体结构,
图5示出了用于从存储器中检索数据的方法,
图6示出了根据本发明的一个实施方式的从存储器中检索数据的优选方法,以及
图7给出了根据本发明的一个实施方式的用于从存储器中检索数据的方法的另一个示例性视图。
具体实施方式
首先,将述评ESM架构。在图1中,示出了在硅平台上仿真共享存储器的可扩展架构的高级别图示。它包括一组处理器(内核)P1,P2,P3,…,Pp 102,它们通过物理上可扩展的高带宽互连网络108连接至物理上分布的但逻辑上共享的(数据)存储器M1,M2,M3,…,Mp112。与数据存储器112相关的活动存储器单元110可以被认为是用于处理存储器引用的存储器控制逻辑单元。活动存储器单元110被布置成管理与以下情况有关的计算:其中,例如,在例如多(-前缀)操作期间,多个存储器引用针对同一存储器位置。指令存储器模块I1,I2,I3,…,Ip 104被配置成携带用于每个处理器102的程序代码。为了通过基于分布式存储器的实现来高效地仿真共享存储器,处理器102是多线程的,利用了Tp级循环、交错线程间流水线(Tp≥网络的平均延迟)。PRAM模型与架构相联系,使得流水线中的完整周期通常对应于单个PRAM步骤。在多线程执行的一个步骤中(就整个流水线而言,即所有包括实际执行级的流水线级),CMP的每个处理器的每个线程执行包括最多一个共享存储器引用子指令的指令。因此,一个步骤持续多个、至少Tp+1个时钟周期。
在所描绘的架构中,步骤缓存通常是关联性存储缓冲器,其中数据仅在多线程执行的正在进行的步骤结束时才保持有效。步骤缓存对并发访问的主要贡献是,它们逐步过滤掉除每个引用的存储器位置的第一个引用之外的所有内容。这将每个位置的请求数量从Tp减少到P,从而允许它们在假设Tp≥P的单个端口存储器模块上按顺序处理。暂存器是可寻址存储缓冲器,用于存储存储器访问数据,以在步骤缓存和最小核内和核外ALU(算术逻辑单元)(其处理用于多操作的实际处理器内和处理器间计算)的帮助下,在实现多操作时限制步骤缓存的关联性。暂存器可以与步骤缓存耦合以建立所谓的暂存器步骤缓存单元S1,S2,S3,…,Sp 106。
所述评的解决方案的一个基本思想实际上是对每个处理器内核102分配以交错方式高效执行并隐藏网络延迟的一组线程。当一个线程进行存储器引用时,所执行的线程会发生变化,并且下一个线程可以进行存储器请求,依此类推。如果线程的存储器引用的回复在线程重新执行之前到达处理器内核,则不会出现存储器延时。这要求网络的带宽足够高,并且可以避免流水线存储器访问流量中的热点。例如,可以通过在步骤之间使用弹性同步波来确保连续指令之间的同步性。
图2在200处示出了ESM CMP架构的一个图示,该架构合并有例如与数据存储器模块112和暂存器206B相关的前述活动存储器单元112B(具有ALU和收件器)。网络108可以是网状互连网络,用作具有交换机108B的高带宽流水线存储器系统。当线程通过网络108引用可统一访问的分布式共享存储器时,通过执行其他线程来隐藏存储器访问延迟。使用具有以高带宽(二等分BW≥P/4)和分布式存储器模块上存储器位置的随机散列为特征的高效无死锁相互通信架构,可以避免通信中引用和热点的拥塞。指令的执行发生在与单个PRAM步骤相对应的步骤中,在此期间每个线程执行单个指令。
接下来,转向TCF的概念,TCF模型可以将包含相似性的计算元素打包在一起以暴露并行执行的自然同步性,并提供一个简单的显式机制来动态地调整并行执行的元素的数量。
TCF模型是一种编程模型,它将具有相同控制流的同构计算组合到由单个控件控制的数据并行实体中,而不是对每个计算保持单独的控制。所得的实体称为TCF,并且其组成部分称为纤程。TCF中的纤程数量称为它的厚度。
当厚控制流(就纤程的数量而言)执行程序的语句或表达式时,所有纤程都被视为并行执行同一程序元素。更准确地说,我们认为某些程序变量可以按纤程复制——从概念上讲,这意味着存在变量的独特的纤程方式实例。基于使用复制的变量的表达式在概念上也是复制的——这意味着需要为每个纤程单独对其进行计算。类似地,语句也是可以复制的。然而,由厚控制流执行的所有表达式或语句不需要被复制——自然只需要通过厚控制流对此类非复制(普通)的程序元素评估/执行一次,而不是逐纤程地。因此,当厚流在程序片段上继续进行时,一些表达式/语句转换为单个指令,而复制的表达式/语句转换为指令集。
考虑方法调用,当厚度为t的控制流调用方法时,并非用每个纤程单独调用该方法,而是控制流用t个纤程只调用该方法一次。调用堆栈并非与每个纤程有关,而是与每个并行控制流有关。因此,在这里,作为线程的纤程的概念只是隐含的。厚纤程方式变量是具有纤程方式实际值的类数组构造。执行分支语句可以意味着将厚控制流临时拆分成若干个其他流。
TCF一次只执行一个指令。TCF的所有纤程执行指令的时间称为步骤。TCF执行类似于SIMD执行,但可以同时执行多个TCF,并且它们的厚度可以任意变化。TCF模型确保了连续指令之间的同步性和严格的存储器一致性,使得确保由先前复制的指令启动的所有共享存储器动作在当前指令的操作发生之前完成。这可以降低关于ESM的同步性的成本,因为在由软件而不是硬件定义的每个步骤发生一次同步。如果有多个TCF,则它们的相互执行顺序没有严格定义,但程序员可以通过显式的TCF间同步来指示它们遵循某种顺序。
由于TCF的厚度可以由程序员无限制地定义,因此很容易表达各种计算问题的内在并行性,而不必担心线程用完或必须将软件并行性与硬件并行性与循环或显式线程匹配。除了减少循环次数之外,该模型还可以通过消除与线程有关的索引计算来简化编程。
最初,程序被认为具有厚度为一(从概念上以并行隐式线程的数量来衡量)的流。可以认为方法具有与调用流的厚度有关的厚度。为了动态地改变流的厚度,我们设有为块设置新厚度的厚块语句或者有待执行的语句设置厚度的厚度语句。对于前者,支持嵌套的厚块语句和普通块语句。考虑这样一种情况,其中厚度为T外的厚块B外包含厚度为T内的内部厚块B内。嵌套块不是按纤程执行而是按流执行,因此考虑到流厚度,执行内部厚块的流具有厚度T内(而不是T外×T内)。在语句设置有待执行的语句的厚度的情况下,显式地指定每个代码段的厚度。
执行控制语句(如果、切换、...)可以暂时意味着将厚控制流拆分成若干个其他流,如图3所示。包括两个连续指令的厚度为一的第一块302可以继续拆分成厚度为23和8个连续指令的第二块304。然后可以将第二块304拆分成两个并行的第三块306和第四块308,第三块306具有厚度为15的内部块,在3个指令之后具有分支语句,此后拆分成其他两个内部块,得到厚度为12和3的并行分支。并行块可以在拆分后再次结合。
由厚控制流的拆分产生的潜在的非连续纤程子分组(隐式线程的非连续索引)可能被认为实施起来相当昂贵。因此,每个并行分支可以被认为是嵌套的厚块,其厚度由“选择”分支的隐式线程的数量决定。周围块的隐式线程不会在由分支语句决定的块中继续。由于上面等于具有给定厚度的多条路径的并行执行,因此可能需要整个流通过控制语句选择恰好一条路径。如果程序员想要并行执行多条路径,他应该给出并行语句,相应地创建多个控制流并为它们设置厚度。除了将当前的流拆分成多个并行流之外,并行语句还可以在语句结束时将流隐式结合回调用流。可以看到控制流的所有纤程都像在动态SIMD模型中那样同步地行经通用程序代码。当流被拆分成单独的流时,不能假设拆分流的前进速度——即,在这个意义上,并行流相对于彼此是异步的。然而,如果编程语言设计者愿意,他可以在机器指令级别上使执行同步。
TCF模型基本上可以像其他并行编程模型那样进行编程,但模型的性质为新的约定开辟了可能性,这些新的约定对计算的符号、行为和/或解释具有重大影响。这些可以包括同步并行编程、减少并行语句的循环、在执行期间轻松控制并行性以及更短的程序代码。
在现有技术出版物中更广泛地述评的ESM、CESM和向量/SIMD系统然后可以被认为是TCF系统的简单版本。在ESM和可配置的ESM的情况下,TCF的厚度将是一,并且它们也可以称为线程,而对于向量/SIMD的情况,TCF可以称为向量,并且纤程称为向量元素。
TCF的功能在真实TCF感知架构中可以以比SIMD架构中的相同功能更快的速度执行——假设前者支持TCF的叠加计算。
图4在400处示出了厚控制流处理器架构(TPA)的总体示例性结构,该架构是本地实现TCF编程模型的架构。图中所示为指令存储器(IM)402、处理器前端(FE)404、本地存储器(LM)406、TCF缓冲器(TB)408、处理器后端单元(BE)410、复制的寄存器块(RR)412以及共享存储器模块(SM)416。TPA芯片多处理器可以包括:F个(超)标量处理器前端404,其附接至被组织为用于多核处理器的常规存储器系统的指令存储器模块402、本地存储器406和TCF缓冲器408;以及B个并行处理器后端410,其附接至复制的寄存器块412,并且通过通信网络418附接至共享存储器模块416。
处理器前端404可以支持多个TCF之间的快速切换、对它们的管理、对控制和代码其他公共部分的执行。在架构上,它们可以类似于多线程超标量处理器而不是线程,具有其自己的寄存器集的TCF保存在TCF缓冲器中。仿照对多线程处理器所使用的术语,这可以称为多TCFing。前端404的存储器系统可以包括指令存储器402和本地数据存储器406,它们可选地通过这样的网络互连,该网络利用了对称多处理器(SMP)或非统一存储器访问(NUMA)约定以及可选的缓存一致性维护。这表明当前的多核处理器可以以相对较小的修改用作前端404。
处理器后端410可以支持具有纤程方式数据的流线型共享存储器系统并且执行代码的同构并行部分。它们的结构可以类似于具有动态纤程执行能力的仿真共享存储器(ESM)流水线的结构。像ESM处理器那样,它们可以通过多纤程化使用可扩展的延迟隐藏,通过波同步降低根本同步成本,并通过基本单元(FU)(诸如算术逻辑单元(ALU))的链接来改进低级别并行性开发,以在并行执行方面提供高性能。
从前端404向后端410发送信息(反之亦然)可以由工作传播网络和返回信道420来管理。工作传播网络420可以将TCF感知处理器的前端404附接至后端410。它的主要目的是传递后端功能单元的操作代码以及选定的数据/操作数。返回信道420可以负责将选定的后端数据发送到控制后端单元410的前端404。由于通常存在由单个前端406控制的多个后端单元410,因此返回信道420可以传递多个数据值或替代地进行减少以获得单个值。
多纤程化的思想是在纤程的引用在存储器系统中进行的同时执行其他纤程。如果纤程数量足够多且相互通信网络不拥塞,则回复可以在纤程需要之前到达。第一种同步方法利用了这样的事实,即纤程在执行步骤内是独立的,并且可以在每个步骤只执行一次同步动作。第二种同步方法可以允许与存储器引用叠加同步。这些共同定义了低成本同步波机制,其中同步引起的摊销开销下降至1/厚度。低级别并行开发的思想是将FU连接为链,使得单元可以使用其前驱的结果作为操作数,而不是并行连接需要独立操作的单元。这可以通过允许流水线执行相关子指令来提高FU的利用率。
前端404和后端410之间的相互作用可以通过以叠加方式将TCF分配给单个前端404和多个前端404而发生。这种单模两用操作可以避免ESM架构中存在的双模操作和它们之间的切换开销。可以通过在流水线上动态地生成纤程(或复制指令)并将纤程方式数据保存到特殊的复制的寄存器块中来实现对无限厚度的支持,如有需要,这些特殊的复制的寄存器块将其内容溢流到外部存储器系统。
TPA架构中的指令的执行与NUMA或ESM架构中的指令的执行有些不同。虽然Fn-FUNUMA内核并行执行最多Fn个独立(子)指令,并且Fe-FU ESM以交错方式为每个步骤固定数量的线程执行具有至多Fe个子指令的指令,但TPA可以以交错方式为具有非恒定厚度的可变数量的TCF执行前端指令和并行后端指令的序列。更具体地说,分配给前端的单个TCF和TPA中的多个后端单元的执行可以如下执行:
·负责管理TCF的前端404可以从其TCF缓冲器切换下一个TCF,并且如果前一指令请求则使其成为当前的。否则将继续使用当前的TCF。前端404然后可以执行由程序计数器和指令存储器定义的一系列标量指令。当它遇到包含后端操作的指令时,它可以尝试通过工作传播网络420将该操作及其操作数发送到相关的后端单元410。如果网络繁忙,则前端404可以等待直至有TCF的空间,然后继续直至有显式TCF切换请求。
·每个相关后端单元410中的执行可以通过检查该单元是否空闲来开始。在肯定的情况下,工作传播网络420的头部元素上的并行操作、它们的操作数和必要的TCF信息可以被提取到所有相关的后端单元410执行。在否定的情况下,工作传播网络420中的指令等待并行单元变为空闲。
·TCF然后可以在相关的后端单元410之间尽可能均匀地拆分,并且后端开始并行地生成和处理纤程直至它们用尽。
·在纤程生成期间,每个纤程可以从由前端发送的数据中获取其操作数、纤程标识符和用于FU的指令,同时从复制的寄存器块412中获取纤程方式中间结果。
·然后,纤程可以通过流水线传播并执行后端功能单元中的子指令。
更具体地说,可以指定TPA指令可以在三个前端阶段和三个后端阶段中执行:
对于每个活动前端404,阶段可以包括:
F1.如果前一指令请求,则从TCF缓冲器408中选择下一个TCF。
F2.从NUMA存储器系统中获取由当前TCF的PC指向的一个或多个(子)指令。
F3.在由一个或多个(子)指令指定的功能单元中执行子指令。存储器子指令通常针对SMP/NUMA存储器系统。如果指令包含后端部分,则选择操作数并将操作数与后端410的分配给前端404的该部分一起通过工作传播网络420发送。将当前TCF的数据存储至TCF缓冲器408,并在对应的子指令请求时切换到下一个TCF。
对于每个后端410,阶段可以包括:
B1.如果后端410不再执行前一个指令,则从工作传播网络420获取下一个指令并确定有待在后端执行的纤程。否则继续执行上一个指令。
B2.根据B1中确定的分配方案生成有待流水线化的TCF的纤程。
B3.对于每个纤程,可以执行以下操作:
B3.1从接收到的前端数据和复制的寄存器块412中选择操作数。
B3.2执行后端子指令。存储器子指令针对共享存储器系统。
B3.3写回复制的寄存器块,并通过工作传播网络420中内置的返回信道将可选的回复数据发送回前端404。
在前端404的所有活动TCF已经针对单个指令执行之后,TPA可以发布每个后端的厚度为一的特殊同步TCF,其向/从共享存储器系统发送和接收同步。
图5示出了用于从共享存储器中检索数据的方法,该方法可以在后端单元的TCF架构中实现,该方法基本上对应于已经在现有技术解决方案中实现的那些方法。例如,之前已经提出ESM存储器单元,其中采用了回复等待队列。垂直线可以表示可以在处理器流水线中执行的单独的纤程,其中流水线段1表示存储器访问处理之前的流水线部分,并且流水线段2表示至少在逻辑上位于存储器访问处理之后的流水线部分,其中存储器访问处理是指访问共享存储器单元的存储器访问级。如果需要来自共享存储器单元的回复,则发送逻辑502可以向共享存储器单元发送请求。存储器访问操作可以进入具有L个等待级LCR1…LCRL的延迟补偿寄存器传输线(LCRTL),在其操作中基本上对应于已知的ESM系统的回复等待队列。
LCRTL具有L级延迟补偿,使得L可以是固定的段长度。对应于例如ESM存储器单元的回复等待队列,各种工作负荷的段长度L是固定的。在MU的设计期间可以根据接近最差案例的场景来选择段的长度。例如,如果得出接收回复最多需要一定数量的时钟周期的结论,则可以选择使用略小于该数量的时钟周期数量作为固定的回复等待时间/段长度。因此,所有类型的存储器引用都等待同一预定时间,这也许是不必要的,因为一些存储器引用将在该时间之前完成。如果共享存储器繁忙,则整个后端流水线将被冻结,直至可以恢复存储器访问命令流水线。存储器引用在流水线中进行,并且最少L级是所有工作负荷所需的延时。接收逻辑504观察LCRL是否接收到可能的回复,如果没有,则冻结流水线。
图6给出了用于从共享存储器中检索数据的优选方法,该方法可以在根据本发明的一个实施方式的TCF架构中实现,其中可以采用灵活延迟补偿单元(FLCU)601。FLCU601可以包括:本地存储器602,这里称为L元素FLCU缓冲器602;以及控制逻辑。L在这里是指本地存储器缓冲器602的深度,即它可以容纳多少存储器引用请求。L可以任意选择,但实际上确定L以使其大于存储器读取请求的最大延迟可能是有益的,优选地用于不存在通信流量的情况。
控制逻辑可以包括功能上位于本地存储器602之前的发送逻辑604以及功能上位于本地存储器602之后的接收逻辑606。
如果正在执行至少一个纤程(厚度为TCF≥1),则TCF模型有利地允许步骤的同步操作,使得在当前步骤开始之前完成由前一步骤生成的共享存储器引用。在实施方式中,FLCU 601可以使共享存储器引用的结果在当前步骤期间可用于TCF中的所有纤程。
步骤的长度和/或指令的执行可以根据共享存储器引用的实际需要的延迟而动态地变化。
至少在纤程方面,共享存储器访问在一个实施方式中可以使用先进先出原则来实现。也就是说,可以以按照纤程中的指令的序列调用它们的顺序来使用已完成的共享存储器引用。
发送逻辑604可以观察共享存储器是否繁忙,如果是,则冻结流水线直至发送逻辑604。如果FCLU缓冲器602在它已满(已经保持L个请求)时正在被读取,那么在同一时钟周期,新数据可以被写入通过读取操作释放的空间中。如果发送逻辑观察到FCLU缓冲器602已满,并且如果FLCU读取单元没有被冻结,则流水线然后也可以被冻结直至发送逻辑。应当注意,在单个时钟周期期间不可能写入和读取数据的缓冲器也可以用作多缓冲器群集,其中一个缓冲器被写入并且另一个缓冲器被读取。
尤其是当使用FIFO样式缓冲时,可以在FLCU存储器单元602处访问存储器参考,并且接收逻辑606可以(有利地在每个时钟周期)观察存储器参考是否完成。如果没有接收到可能的回复,则FLCU缓冲器读取可能会被冻结/暂停,直至接收到回复。该暂停时间也可以称为延迟或延时,并且因此可以是灵活的,即取决于接收到所需的存储器引用所花费的时间是可变的。如果不需要存储器引用,则延迟也可以基本上为零。
通过本发明的实施方式,与共享数据存储器访问相关联的延时然后可以由实际需要的共享数据存储器访问延迟动态地确定,这可以提供优于例如存储器回复等待流水线段或预定延迟寄存器传输线的优点,例如图5的LCRTL。
图7给出了根据本发明的用于从存储器中检索数据的方法的另一个示例性视图,其具有FIFO缓冲(并且FLCU 601包括本地存储器,因此在此称为FLCU FIFO缓冲器602)和流水线段的示例性组成部分。当TCF开始执行时,操作数选择逻辑702可以从复制的寄存器块412中检索与每个纤程有关的所需操作数。一个或多个前存储器ALU 704可以在逻辑上位于存储器访问级之前,而位于存储器访问之后的ALU 706也可以另外被应用。写回逻辑708然后可以写入复制的寄存器块412中。
在图7的实施方式中,发送逻辑604可以观察共享存储器是否繁忙或FLCU FIFO缓冲器602是否已满,并且在任何一种情况下冻结流水线直至发送逻辑604。
然后可以在FLCU FIFO缓冲器602处访问存储器引用,并且接收逻辑606可以(有利地在每个时钟周期)观察存储器引用是否完成。如果没有接收到可能的回复,则FLCU FIFO缓冲器读取可以被冻结/暂停,直至接收到回复。
在本发明的实施方式中,至少在存储器的接收单元独立地处理至少一些功能并且不依赖于例如固定的预定延迟寄存器传输线/存储器回复等待流水线段的情况下,TCF——即使在其与例如ESM、CESM或向量/SIMD结合的更简单的实现中——能够提供灵活的(即动态延时的)存储器单元。
在一些实施方式中,本发明可以与非TCF处理器一起使用,其中等待存储器引用,而在没有本发明的情况下,将使用具有固定延时的寄存器传输线。
上面已经参考前述实施方式对本发明进行了解释,并且已经证明了本发明的若干优点。显然,本发明不仅限于这些实施方式,而是包括在本发明的思想和以下专利权利要求的精神和范围内的所有可能的实施方式。
除非另有明确说明,否则从属权利要求中记载的特征可以相互自由组合。
Claims (14)
1.一种用于处理TCF感知处理器的共享数据存储器访问的装置,所述装置至少包括灵活延迟处理单元(601),所述灵活延迟处理单元包括本地存储器(602)和相关控制逻辑,所述本地存储器被提供用于存储共享数据存储器访问相关数据,其中所述装置被配置成接收包括至少一个指令的至少一个TCF,所述至少一个指令与至少一个纤程相关联,其中所述灵活延迟处理单元被配置成:
-确定所述至少一个指令是否需要共享数据存储器访问,
-如果需要共享数据存储器访问,则发送共享数据存储器访问请求,
-通过所述灵活延迟处理单元,基本上连续地观察是否接收到对所述共享数据存储器访问请求的回复,
-暂停继续执行所述指令,直至接收到回复,以及
-在接收到所述回复后继续执行所述指令,使得与所述共享数据存储器访问相关联的延时通过实际所需的共享数据存储器访问延迟动态地确定。
2.如权利要求1所述的装置,其中利用先进先出原则实现所述共享数据存储器访问,可选地在纤程之间和/或在纤程内实现所述共享数据存储器访问。
3.如权利要求2所述的装置,所述装置被配置成将关于多个指令的数据存储在所述本地存储器中,并且在接收到所述回复(如有)后继续执行每个指令,所述指令是根据考虑到接收所述指令的顺序的所述先进先出原则执行的。
4.如任一前述权利要求所述的装置,其中所述装置还被配置成将关于所述至少一个指令的数据存储在所述本地存储器中,所述关于所述至少一个指令的数据包括定义所述指令的数据和/或由所述指令引用以通过共享数据存储器访问获取的数据。
5.如任一前述权利要求所述的装置,其中每个时钟周期执行一次所述观察。
6.如任一前述权利要求所述的装置,其中所述TCF包括多个纤程并且每个纤程包括多个指令,其中通过所述灵活延迟处理单元发送共享数据存储器访问请求,并且对于所有正在执行类似序列的纤程暂停执行指令序列,直至接收到与相应指令的所有纤程有关的所有共享数据存储器引用。
7.如任一前述权利要求所述的装置,其中所述控制逻辑包括功能上位于所述本地存储器之前的发送逻辑(604),其中所述发送逻辑被配置成如果所述共享数据存储器繁忙和/或如果所述本地存储器已满则暂停处理器流水线的至少一部分。
8.如权利要求7所述的装置,其中所述处理器流水线被暂停直至所述发送逻辑。
9.如任一前述权利要求所述的装置,其中所述控制逻辑包括功能上位于所述本地存储器之后的接收逻辑(606),其中所述接收逻辑被配置成暂停所述处理器流水线的至少一部分直至接收到所述回复。
10.如权利要求9所述的装置,其中,与所述灵活延迟处理单元和/或所述接收逻辑之后的所述处理器流水线相关联的读取单元被暂停。
11.如任一前述权利要求所述的装置,其中所述装置被配置成从逻辑上位于所述灵活延迟处理单元之前的一个或多个算术逻辑单元(ALU)接收数据。
12.如任一前述权利要求所述的装置,其中所述装置被配置成向逻辑上位于所述灵活延迟处理单元之后的一个或多个算术逻辑单元(ALU)发送数据。
13.如权利要求11或12所述的装置,其中两个或更多个ALU被链接以在它们之间传递数据,优选为在两个或更多个ALU中处理的数据。
14.一种用于在TFC感知处理器中处理共享数据存储器访问的方法,所述方法包括:
-接收至少一个指令,所述至少一个指令与至少一个纤程相关联,
-确定所述至少一个指令是否需要共享数据存储器访问,
-如果需要共享数据存储器访问,则发送共享数据存储器访问请求,
-通过灵活延迟处理单元(601),基本上连续地观察是否接收到对所述共享数据存储器访问请求的回复,
-暂停继续执行所述指令,直至接收到回复,以及
-在接收到所述回复后继续执行所述指令,使得与所述共享数据存储器访问相关联的延时通过实际所需的共享数据存储器访问延迟动态地确定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP18215559.8 | 2018-12-21 | ||
EP18215559.8A EP3671457A1 (en) | 2018-12-21 | 2018-12-21 | Method and arrangement for handling memory access for a tcf-aware processor |
PCT/EP2019/086516 WO2020127868A1 (en) | 2018-12-21 | 2019-12-20 | Method and arrangement for handling memory access for a tcf-aware processor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113348446A true CN113348446A (zh) | 2021-09-03 |
Family
ID=64901413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980089503.1A Pending CN113348446A (zh) | 2018-12-21 | 2019-12-20 | 用于处理tcf感知处理器的存储器访问的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220075625A1 (zh) |
EP (1) | EP3671457A1 (zh) |
JP (1) | JP2022515403A (zh) |
CN (1) | CN113348446A (zh) |
WO (1) | WO2020127868A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454666B1 (en) * | 2005-04-07 | 2008-11-18 | Sun Microsystems, Inc. | Real-time address trace generation |
US20130185523A1 (en) * | 2012-01-12 | 2013-07-18 | National Chiao Tung University | Decoupled method for tracking information flow and computer system thereof |
EP2866138A1 (en) * | 2013-10-23 | 2015-04-29 | Teknologian Tutkimuskeskus VTT | Processor core with multiple heterogenous pipelines for emulated shared memory architectures |
US20160124856A1 (en) * | 2013-05-22 | 2016-05-05 | Teknologian Tutkimuskeskus Vtt Oy | Memory unit for emulated shared memory architectures |
US20170004063A1 (en) * | 2015-06-30 | 2017-01-05 | Freescale Semiconductor, Inc. | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller |
-
2018
- 2018-12-21 EP EP18215559.8A patent/EP3671457A1/en active Pending
-
2019
- 2019-12-20 WO PCT/EP2019/086516 patent/WO2020127868A1/en active Application Filing
- 2019-12-20 CN CN201980089503.1A patent/CN113348446A/zh active Pending
- 2019-12-20 JP JP2021536026A patent/JP2022515403A/ja active Pending
- 2019-12-20 US US17/415,890 patent/US20220075625A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454666B1 (en) * | 2005-04-07 | 2008-11-18 | Sun Microsystems, Inc. | Real-time address trace generation |
US20130185523A1 (en) * | 2012-01-12 | 2013-07-18 | National Chiao Tung University | Decoupled method for tracking information flow and computer system thereof |
US20160124856A1 (en) * | 2013-05-22 | 2016-05-05 | Teknologian Tutkimuskeskus Vtt Oy | Memory unit for emulated shared memory architectures |
EP2866138A1 (en) * | 2013-10-23 | 2015-04-29 | Teknologian Tutkimuskeskus VTT | Processor core with multiple heterogenous pipelines for emulated shared memory architectures |
US20170004063A1 (en) * | 2015-06-30 | 2017-01-05 | Freescale Semiconductor, Inc. | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller |
Non-Patent Citations (1)
Title |
---|
MARTTI FORSELL 等: "Outline of a Thick Control Flow Architecture", 《2016 INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING WORKSHOPS (SBAC-PADW)》, pages 1 - 6 * |
Also Published As
Publication number | Publication date |
---|---|
EP3671457A1 (en) | 2020-06-24 |
US20220075625A1 (en) | 2022-03-10 |
WO2020127868A1 (en) | 2020-06-25 |
JP2022515403A (ja) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI628594B (zh) | 用戶等級分叉及會合處理器、方法、系統及指令 | |
US20240004666A1 (en) | Floating-point supportive pipeline for emulated shared memory architectures | |
US10073782B2 (en) | Memory unit for data memory references of multi-threaded processor with interleaved inter-thread pipeline in emulated shared memory architectures | |
Momose et al. | The brand-new vector supercomputer, SX-ACE | |
Vuduc et al. | A brief history and introduction to GPGPU | |
US11061817B2 (en) | Memory node with cache for emulated shared memory computers | |
Gottlieb et al. | Clustered programmable-reconfigurable processors | |
US10127048B2 (en) | Architecture for long latency operations in emulated shared memory architectures | |
Leback et al. | Tesla vs. xeon phi vs. radeon a compiler writer’s perspective | |
CN113348446A (zh) | 用于处理tcf感知处理器的存储器访问的方法和装置 | |
Boku et al. | The architecture of massively parallel processor CP-PACS | |
Bakshi et al. | Memory Latency: to tolerate or to reduce | |
Paakkulainen et al. | Outline of risc-based core for multiprocessor on chip architecture supporting moving threads | |
JP2024505440A (ja) | トリガ条件に依存する命令実行のための回路及び方法 | |
Forsell et al. | A moving threads processor architecture MTPA | |
Needham et al. | GPUs: Hardware to Software | |
Williams et al. | Parallel computer architecture | |
Govindarajan et al. | A large context multithreaded architecture | |
Li et al. | Heterogeneous multi-core parallel SGEMM performance testing and analysis on Cell/BE processor |
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 |