CN105393210B - 用于处理数据存储器引用的存储器单元和方法 - Google Patents
用于处理数据存储器引用的存储器单元和方法 Download PDFInfo
- Publication number
- CN105393210B CN105393210B CN201480041469.8A CN201480041469A CN105393210B CN 105393210 B CN105393210 B CN 105393210B CN 201480041469 A CN201480041469 A CN 201480041469A CN 105393210 B CN105393210 B CN 105393210B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- buffer
- cache
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 172
- 238000013500 data storage Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 title claims abstract description 25
- 239000000872 buffer Substances 0.000 claims abstract description 87
- 238000003860 storage Methods 0.000 claims abstract description 55
- 239000012536 storage buffer Substances 0.000 claims abstract description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 5
- 238000003491 array Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000001934 delay Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000003292 glue Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种用于处理在模拟共享存储器(ESM)体系结构中设置有交叉存取的线程间管线的多线程处理器的数据存储引用的存储器单元(500),包括:步骤高速缓存(504),定义关联高速缓冲存储器阵列,其中数据保持有效直到多线程执行正在进行的步骤结束,存储器阵列包括多个具有数据字段的缓存线,每一条线优选地排他地包含用于存储地址标记的数据字段和引用由地址标记指定的数据存储位置的第一线程的数据字段线程识别码;暂存器(506),定义存储缓冲器,该存储缓冲器用于存储多操作的内部数据,诸如中间结果,所述缓冲器优选地排他地包括用于存储处理器的每一个线程的单个数据字段,其中,该存储器单元被配置为访问步骤高速缓存以进行高速缓存搜索和暂存器以在涉及通过处理器的数据存储器(508)引用的多操作执行期间在数据管线不同的时钟周期和不同的级检索和/或存储内部数据。还提出了用于处理存储器引用的对应方法。
Description
技术领域
本发明总体上涉及计算机科学和计算机体系结构。具体而言,本发明涉及结合模拟共享存储器体系结构的存储器访问和多(前缀)操作的优化。
背景技术
在多个SMA中(共享存储器体系结构),数据和程序分离通常通过将要求多线程处理的数据放置到共享存储器中来进行,并且将分离的程序更独立地放置在处理器中,因而使程序比起消息传递体系结构(MPA)更加容易,在MPA中,处理总是发生在本地,并且程序员负责相应地将数据四处移动。不幸的是,大多数SMA使用分布式共享存储器体系结构,该结构由多个相互连接的处理器缓存对构成,这使得缓存一致性(以及由此的延迟容忍性)和同步维护非常昂贵。这甚至可能摧毁它们在通信强度问题上的性能。
为解决例如上述问题,介绍了模拟共享存储器(ESM)或共享存储器模拟体系结构。它们包括一组多线程处理器,该处理器经由高吞吐量互相通信网络连接至一般的一致并且同步的可访问共享存储器。存储器系统延迟被重叠的正在运行的存储器引用隐藏并且建立了特别低成本的同步机制,以保证机器指令层面上的共时性。所述ESM系统为用户提供理想共享存储器的感知,即使实际硬件体系结构包括物理分布式存储器。从理论观点来说,这些体系结构试图模拟抽象平行随机存取机(PRAM),由于其简易性和表达性,该机通常用作描述和分析计算问题的本质并行性以及执行平行计算的性能和成本的模型。PRAM模型大致指一组处理器,该组处理器在同一个时钟和连接到该组处理器的统一单个步骤可访问的共享存储器下工作。
因此,ESM是一种灵活的技术,用于处理关于片上多处理器(CMP)的可编程性和性能可扩展性,这是由于它在机器指令执行时能产生隐含同步,并产生高效延迟隐藏技术和足够的带宽,以便,即使在重的随机并发访问工作负载的情况下,按规定路径发送所有的存储器引用。同步执行被认为使编程更加容易,因为在每一个全局存储器访问后,程序员不需要明显地与执行的线程同步,但可以依赖硬件来自动负责它,然而例如在消息传递体系结构(MPA)中,程序员负责明确定义通信,使子任务同步并描述在线程间分开的数据和程序,使MPA难以编程。用于共享存储器模拟的延迟隐藏使用高吞吐量计算方案,在该方案中,执行其他线程,而线程是引用全局共享存储器。由于所述吞吐量计算方案使用从可获得的线程级并行性获取的并行宽松度,与传统的对称多处理器和非一致性存储访问(NUMA)系统相比,所述计算方案被认为提供加强的可扩展性,所述NUMA依赖窥探或基于目录的缓存一致性机制,因而遭受限制的带宽或目录访问延迟和重的一致性流量维修。
最近,已建议可扩展ESM体系结构包括步骤高速缓存,以便实施PRAM的并发读写(CRCW)存储器访问变体,在特定的情况中,这进一步简化了编程,并且通过对数因素增强性能。此外,支持持续执行时间多(前缀)操作的机制-用于实施更强的PRAM模型的多操作并发读写(MCRCW)变体-已实施,借助为接合步骤高速缓存的关联性而连接在步骤高速缓存的暂存器。例如,发布机制1:M.Forsell,步骤高速缓存-一种在共享存储器MP-SOC上进行并发存储访问的新方法,于2005年11月21-22日在芬兰74-77奥卢召开的23届IEEE NORCHIP会议上的议程中提出,2:M.Forsell,减少在CRCW操作中的步骤高速缓存的关联性和尺寸,于2006年4月25日在雅典罗兹岛召开的第8届并行和分布式计算模式进步研讨会(结合第20届IEEE国际并行和分布式处理研讨会,IPDPS’06)的议程中提出,3:M.Forsell,为步骤高速缓存MP-SOC实现多操作,于2006年11月14-16日在芬兰77-82坦佩雷召开的片上系统2006(SOC’06)国际研讨会的议程中提出,4:M.Forsell,TOTAL ECLIPSE-并行随机访问机的有效结构实现,在并行和分布式计算中提出,2010年,39-64由维也纳IN-TECH的Alberto Ros编辑,以及5:M.Forsell和J.Roivainen,支持在模拟共享存储器CMP中的有序多前缀操作,于2011年7月18-21日在美国,506-512,拉斯维加斯召开的2011并行和分布式处理技术和应用(PDPTA’11)国际会议的议程中提出,考虑解决方案的不同方面,从而通过引用将其全部内容并入于本文中。由于表达并行算法的能力,多(前缀)操作可为许多基本操作(例如ADD、SUB、MAX等)定义并且被认为是并行原语。它们可用于同步性和由数个处理器同时访问的并行数据结构,而没有竞态条件或异步执行线程的结构的其他异常条件。
在图1中,示出了用于在硅平台上模拟共享存储器的可扩展体系结构100高级示例。它包括一组处理器(核心)P1、P2、P3……Pp 102,经由物理可扩展高带宽互连网络108连接至物理分布式但逻辑共享的(数据)存储器M1、M2、M3……Mp 112。结合数据存储器112的主动式存储器单元110可被认为是存储器控制逻辑单元,用于处理存储器引用。主动式存储器单元110被布置为管理与这些情况有关的计算,所述情况为:在例如多(前缀)操作中,多个存储器引用可指向同一个存储位置。指令存储器模块I1、I2、I3……Ip 104被配置为为每一个处理器102携带程序代码。为通过基于分布式存储器的实施方式有效模拟共享存储器,利用Tp级周期的,交叉存取线程间管线(Tp≧网络的平均延迟)使处理器102多线程化。PRAM模型连接至所述体系结构,这样管线内完整的周期通常对应单个PRAM步骤。在多线程执行的步骤中(将管线视为整体,也就是所有管线级包括实际执行级),CMP的每一个处理器的每一个线程执行包括至多一个共享存储器引用子指令的指令。因此一个步骤持续多个,至少Tp+1个时钟周期。
在绘示出的体系结构中,步骤高速缓存大致是关联存储缓冲器,在其中,数据保持有效,仅仅直到多线程执行正在进行的步骤结束。步骤高速缓存对并发访问的主要贡献是除第一引用外为每一个已引用存储位置逐步过滤掉一切。这减少了从P Tp到P的每一个位置的请求的数量,允许它们在假定Tp≧P的单端口存储器模块上被连续地处理。暂存器是可处理的存储缓冲器,用于储存存储访问数据,以便在步骤高速缓存和最小核上与核外ALU(运算逻辑单元)的帮助下保持限于实施多操作的步骤高速缓存的关联性,所述最小核上与核外ALU(运算逻辑单元)为多操作负责实际处理器内和处理器间计算。暂存器可与步骤高速缓存耦接,以便建立所谓的暂存器步骤高速缓存单元S1、S2、S3……Sp 106。
所阐述的解决方案中一个根本的思想实际上在于具有一组线程的每一个处理器核心102的分配,所述线程以交叉存取的方式被有效执行并且隐藏网络延迟。随着一个线程制造存储器引用,已执行的线程改变并且下一个线程可制造存储器请求,依此类推。只要在线程被送回执行之前,所述线程的存储器引用的回复能到达处理器核心,就没有处理器会发生延迟。这要求网络的带宽足够高并且在管线存储器访问流量中可避免热点。例如通过使用步骤间的弹性同步波,连续指令之间的同步性可以得到保证。
图2在200中示出了ESM CMP体系结构的一个实例,包括例如前文提到的与数据存储模块112和暂存器206B结合的主动式存储器单元112B(具有ALU和收件器)。网络108可以是网状互联网络,充当高带宽管线存储器系统,具有开关108B。通过执行其他线程,所述存储访问延迟可被隐藏,而线程经由网络108引用可一致可访问的分布式共享存储器。通过具有高带宽(平分BW≧P/4)特点的有效死锁自由互相通信体系结构和位于分布式存储模块的随机存储位置散列,通信中的引用阻塞和热点可避免。指令的执行发生在对应单个PRAM步骤的步骤中,在该步骤期间每一个线程执行单个指令。
尽管具有前文提到的优点,ESM系统似乎很难以以真正最优的方式实现。使用步骤高速缓存和暂存器技术来支持强大的并发存储访问和多(前缀)操作的物理灵活存储器单元(MU)很容易理解为强大的模拟共享存储器体系结构,如REPLICE(芯片多处理器体系结构的移除性能和编程能力限制),即大体上可配置ESM,的关键组件。这样的MU发送传出存储器引用到共享存储器系统以及等待和接收来自该系统的可能的回复。不幸的是,在下文具体描述的现有技术MU解决方案中,低级实施具体细节是不存在的并且提出的布置要求相对复杂的多端口步骤高速缓存和暂存器或复杂的排序阵列和大的逐点缓冲器。另外,在单个时钟周期期间,现有解决方案的接收逻辑访问步骤高速缓存和暂存器,并且为所有的存储器操作,后者的性能被两个步骤最小延迟毁坏。所有这些使得现在可获得的MU解决方案不实际。
图3在300中表示使用步骤高速缓存的典型MCRCW ESM处理器的管线和高级方框图。在基于步骤高速缓存的MCRCW(C)ESM CMP中的处理器包括A ALU、M存储器单元(MU)、分布式或统一的寄存器组、定序器和一些胶合逻辑(glue logic)。在图中,Ax 302指ALU x,IF308指指令提取逻辑,MEM 304指存储器单元级,OS 306指操作数选择逻辑以及SEQ 310指定序器。如图中所暗示的,ALU 302逻辑地放置在存储器等待区段之前或之后。
参照图4,现有的存储器单元(MU)体系结构400在后文会更具体地阐述。在直观的体系结构中,(基线)MU包括散列和组成单元(HCU)402、发送逻辑410、二元阵列步骤高速缓存404、暂存器406、回复接收逻辑412和接收ALU 414。
HCU 402负责为存储器引用计算散列地址并且构成传出存储器引用消息,该消息来自在MDR(存储数据寄存器)寄存器给定的存储数据、在MAR(存储地址寄存器)寄存器中给定的存储地址、线程识别码、来自操作寄存器的存储器操作和由步骤计数器提供的当前步骤的LSB。
基于存储器(子)指令,发送逻辑410访问步骤高速缓存404和暂存器406,并且在去往分布式共享数据存储器系统408的途中发送引用(存储器请求)或者计算相对于暂存器数据的内部存储器操作结果并给出结果,作为直接对回复接收逻辑412的快速回答。
回复接收逻辑412被配置为接收从共享存储器系统和发送逻辑410(快速回复)进来的存储请器求回复消息。它比较这两者的地址区域并且努力在接收逻辑中设定线程的已接收数据寄存器。每个管线级需要两个比较器,因为回复和逻辑数据互相反向移动。
通过过滤处理器和为前面提到的每一个引用存储位置逐步过滤掉除第一引用的一切,步骤高速缓存404(在其中数据保持有效,仅仅直到多线程执行的正在进行的步骤结束)用于执行CRCW向分布式共享数据存储器系统408的访问而没有缓存一致性问题。每一个缓存线优选地包含数据、启动程序(引用由地址指定的位置的第一线程的线程识别码)和地址标记。由于MU需要从可携带属于不同步骤的线程的管线的发送和接收级访问步骤高速缓存,需要两个高速缓存阵列和两个端口。
每次处理器引用分布式共享数据存储器系统408时,执行步骤高速缓存搜索。如果缓存线在使用中,所述地址与所述线的地址标记匹配并且所述引用的当前步骤的最低有效位与所述线的步骤的两个LSB匹配,在缓存线上检测到命中。在命中的情况下,写入仅被忽略,而读取仅通过访问来自缓存的数据完成。在未命中的情况下,使用取代策略将所述引用储存至缓存中并且标记为待定(以便读取)。同时随着将引用信息存储至缓存线,引用本身被发送至分布式共享数据存储器系统408。当所读取的回复从分布式共享数据存储器系统408到达时,数据被放进存储引用信息的步骤高速缓存线的数据字段并且待定字段被清除。在它们的步骤区再次与当前步骤的最低有效位匹配之前,预定的缓存衰变逻辑用于负责使该线路无效。
为了实施具有限制关联性的步骤高速缓存的多(前缀)操作,使用分离的二元端口处理器级多操作存储器和暂存器406。这是因为需要将每一个多操作队列的启动程序线程的识别码存储至步骤高速缓存,并且将内部启动程序线程识别码寄存器和引用信息存储至保存所述信息的存储器,不论可能将引用上的信息从步骤高速缓存上移除的可能的冲突。暂存器406具有储存数据、地址和为处理器的每个线程待定的区域。可使用两个指令的队列实施多操作,这样将要写入步骤高速缓存404的数据也写入暂存器406中,引用特定位置的第一线程的识别码储存在步骤高速缓存406和启动程序寄存器(用于剩下的引用)中,用于多操作的待定位保存在暂存器406中,回复数据储存至暂存器406中,并且用于结束操作的回复数据从暂存器406中检索(见下文的表1中的算法1)。
表1算法1:在基线MU中的两步骤MP ADD多操作的实施
启动操作(用于任意有序多前缀操作的BMPxxx)执行相对于步骤高速缓存位置的处理器式多操作,而不参照任何外部存储器系统。结束操作(用于任意有序多前缀操作的EMPxxx)执行剩下的多操作,这样引用之前初始化的存储位置的第一引用使用处理器式多操作结果作为操作数引发外部存储器引用。根据多操作的类型,可在对应存储模块的主动式存储器单元处理目标是同一位置的外部存储器引用,并且回复数据被发回参与的处理器的暂存器。
并发访问ESM系统的可替代的实现使用罗纳德算法的无缓存变体或真正多端口存储器:罗纳德算法依赖在顶部物理分布式存储器系统排列和传递存储器引用来实施共享存储器提取。虽然这种解决方案提供一些优点,比如实施快速多前缀操作(MCRCW PRAM模型)的能力,也留下了一些改善的空间,这是由于每个访问包括连续的分类和访问级,要求复杂的硬件分类机和缓冲器,以便在网络的节点上存储结合的引用。另外,现有体系结构依赖非扩展性互连拓扑。通过根据并发存储器端口的数目复制每一个存储器单元阵列的访问电路,真正多端口存储器提供并发访问给单元级存储器。这增加了被访问电路占据的区域,所述电路是相对于端口的数目(单元尺寸仅线性增加)二次方,如果端口的数目超过例如4,它们则是不实际的。普通的基于缓存的体系结构(在其中,缓存位于处理器附近)不可用于高级的共享存储器计算,这是由于缓存一致性保持有效共享存储器算法至少与多端口存储器一样贵。
发明内容
本目标是至少减轻上文描述的一个或多个问题,所述问题还没有被已知的ESM布置完全满意地解决,并且本目标为加强其中的存储器访问提供灵活的解决方案。
本目标根据本发明通过存储器单元的实施方式实现。
因此,在本发明的一个方面,一种用于处理在模拟共享存储器(ESM)体系结构中设置有交叉存取的线程间管线的多线程处理器的数据存储器引用的存储器单元,包括:
步骤高速缓存(step cache),定义关联高速缓冲的存储器阵列,其中,数据保持有效直到多线程执行正在进行的步骤结束,所述存储器阵列将数据字段与多个高速缓存线相结合,每一条线优选地排他地包含用于地址标记的数据字段和引用由所述地址标记指定的数据存储位置的第一线程的数据字段线程识别码,
暂存器(scratchpad),定义存储缓冲器,该存储缓冲器用于存储多操作的内部数据,诸如中间结果,所述缓冲器优选地排他地包括用于存储所述处理器中的各个线程的单个数据字段,
其中,存储器单元被配置为访问步骤高速缓存以进行高速缓存搜索和暂存器以在涉及通过处理器的数据存储器的多操作执行期间以所述存储器管线的不同的时钟周期和在不同的级(stage,阶段)进行检索和/或存储所述内部数据。
在一个实施方式中,所述存储器单元被配置为响应于通过所述处理器线程的数据存储器引用来访问所述步骤高速缓存,以确定是否基于存储其中的地址标记发现与所引用的存储地址相匹配的地址,并且如果是这种情况,则从所匹配的地址的所述步骤高速缓存线的所述线程识别码数据字段检索所述线程识别码,并且相反地,在高速缓存未命中的情况下使用预定数据替换策略将当前线程的线程识别码和对应于所引用的存储地址的地址标记存储在步骤高速缓存中。
在另一个、优选地是补充的实施方式中,所述存储器单元进一步包括用于存储接收到的针对线程的存储器引用数据的回复接收缓冲器。该缓冲器被配置为从所述共享存储器系统接收进来的(回复)消息。
该回复接收缓冲器可以是多端口缓冲器并且包含例如两个数据阵列和两个端口,以便容纳数据和例如“待定(pending)”区,该区与两个连续步骤有关,于是该缓冲器明确地有步骤意识或在步骤上是可处理的。进一步地,线程识别码优选地用于访问数据。
在各种实施方式中,可使用例如线程专用的数据字段或寄存器。此外存储器引用消息优选地包括存储步骤数据的区域。
在进一步的实施方式中,所述存储器单元被配置为在结合存储写入或读取操作的步骤高速缓存未命中的情况下发送存储器引用到共享存储器系统,以经由回复接收缓冲器分别在其中存储所述引用数据或检索所述引用数据;而在结合写入操作的步骤高速缓存命中的情况下忽视所述写入操作,并且在结合读取操作的步骤高速缓存命中的情况下,使用检索到的或储存的线程识别码从所述回复接收缓冲器获取结果。
在一个进一步的实施方式中,该存储器单元被配置为,为了计算处理器内多操作结果并将其发送到共享存储器系统,使用已获取的或存储的线程识别码,结合多操作访问暂存器,也就是向其中储存数据和从其中检索数据。
其中,所述存储器单元可进一步被配置为在回复接收缓冲器中利用从共享存储器系统接收的数据和所述处理器内结果,以便确定最终多操作结果(多前缀)。
还在进一步的实施方式中,向所述存储器单元提供散列和组成单元(HCU),如在本文所描述的,该单元被配置为访问所述步骤高速缓存。所述散列和组成单元优选地经由访问端口耦接至步骤高速缓存,该端口优选地是单访问端口,该端口潜在地被配置为由所述散列和组成单元专用。所述散列和组成单元可被配置为基于至少一个从所述组中选择的元件建立存储器引用消息,所述组包括:由所述处理器指示的存储器操作(例如在操作寄存器中)、给定存储地址(例如在MAR寄存器中)、给定存储数据(例如在MDR寄存器中)、线程识别码、步骤计数器的最低有效位(LSBs)和步骤高速缓存访问的结果(也就是缓存搜索的结果的特性,取决于缓存有没有命中)。
在一些实施方式中,该步骤高速缓存可被实施为是多路集关联步骤高速缓存。
在一些补充或可替代的实施方式中,例如,可使用随机选择的散列函数有选择地散列在所述步骤高速缓存中的地址。HCU之后用于为存储器引用计算散列地址。
仍在进一步的实施方式中,向该存储器单元提供存储器请求发送逻辑实体,该实体被配置为访问暂存器。所述暂存器优选地经由访问端口被访问,优选地是单个访问端口,潜在被配置为由发送逻辑实体专门使用。
该发送逻辑实体可被配置为根据由散列和组成单元提供的存储器消息,发送存储器引用到共享存储器系统。基于所述存储器操作,所述发送逻辑可被配置为确定多操作的中间结果或处理器内结果,并且提供内部数据,诸如内部存储器(多)操作的结果,作为优选地经由存储器回复等待队列面向回复接收缓冲器的(快速)回复。
实际上,在相关的实施方式中,所述存储器单元进一步包括与多个管线级相关联的回复等待队列,该回复等待队列将所述存储器请求发送逻辑实体与所述回复接收缓冲器连接,使得例如来自发送逻辑的本地回复能够以合适的顺序汇集到所述回复接收缓冲器中以及时地检索从所述共享存储器接收的相关存储器引用并且接着使用接收ALU得到最终操作结果。
根据另一个方面,提供了一种用于处理在模拟共享存储器(ESM)体系结构中具有交叉存取的线程间管线的多线程处理器的数据存储器引用的方法,包括:
获得步骤高速缓存(504),该步骤高速缓存定义关联高速缓冲存储器阵列,其中,数据保持有效直到多线程执行正在进行的步骤结束,所述存储器阵列包括多个具有数据字段的高速缓存线,每一条线优选地排他地包含用于存储地址标记的数据字段和用于储存引用由所述地址标记指定的数据存储位置的第一线程的线程识别码的数据字段;
获得暂存器(506),该暂存器定义用于存储多操作的诸如中间结果的内部数据的存储缓冲器,所述缓冲器优选地排他地包括用于存储所述处理器中的每一个线程的单个数据字段;以及
访问所述步骤高速缓存以进行高速缓存搜索和所述暂存器以在涉及通过所述处理器的数据存储器引用的多操作执行期间以所述处理器管线不同的时钟周期和在不同的级检索和/或存储所述内部数据。
正如本领域的技术人员所理解的,本文中所提出的关于所述存储器单元的各种实施方式的各种考虑可灵活地应用于作必要修正的方法的实施方式,反之亦然。
本发明的使用由所述多个问题引起,取决于其中每一个特定的实施方式。通常,通过步骤高速缓存的方式实施引用单个存储地址的同步存储器引用,这样,在多线程执行的单个步骤中,有利地将每一个处理器的引用减少为1。独创地利用暂存存储器来储存多(前缀)操作的中间数据。
通过针对对应的访问(管线)级、访问元件和储存在其中的数据的如本文所描述的原来的存储器单元结构的修改和例如步骤高速缓存和暂存特性的修改,获得了非常简化的硬件实施方式,其中,步骤高速缓存的面积可减小到之前发布的版本的25%,暂存器的面积也相应地减少,步骤高速缓存和暂存器中的第二端口被移除并且具有很多比较器的复杂的接收回复逻辑换成较简单的接收缓冲器,不过仍然通过在不同的时钟周期访问修改的步骤高速缓存和暂存器,减短时钟周期。
短语“许多”在本文中指任何从一(1)开始的正整数,例如一、二或三。
短语“多个”在文中指任何从二(2)开始的正整数,例如二、三或四。
术语“多操作(multioperation)”在本文中可大致指关联的累积操作,诸如实际多前缀或其他另外的与多前缀相对的但没有返回值发送回处理器的对应操作,也就是只有目标存储器位置的内容因此而改变。
在从属权利要求中公开了本发明的不同实施方式。
附图说明
接下来,将参照附图详细地描述本发明,在附图中:
图1为硅平台上的对模拟共享存储器的灵活的可扩展的体系结构的方框图。
图2为灵活ESM体系结构的另一个代表,本质上是CMP ESM体系结构。
图3为MCRCW ESM处理器的实施方式的高级方框图和管线表示。
图4示出了用于在MCRCW ESM CMP的处理器的存储器单元的现有技术版本。
图5示出了根据本发明的用于ESM体系结构的存储器单元的实施方式。
图6示出了根据本发明的方法的实施方式。
具体实施方式
根据本发明的实施方式的存储器单元(MU)可大致结合ESM计算机体系结构使用,以便实施例如CMP(芯片多处理器)或MP-SOC(多处理器片上系统)系统,该系统包括多个具有专用指令存储器,关联步骤高速缓存(保存嵌入其中的数据知道多线程执行正在进行的步骤结束,正如有步骤意识额替代策略所完成的)和连接在所述处理器上的非关联性(线程处理的)暂存缓冲器,以及经由高带宽网络,诸如多网眼互连网络,耦接至处理器(核心)的物理分布式但逻辑共享的数据存储器的处理器核心。所述网络将处理器连接至分布式存储模块,这样可为具有高的足够可能性的随机通信模式获得足够的吞吐量和可容忍的延迟。
为了将吞吐量最大化,以便读取大部分代码,可利用用于从处理器到存储器的引用和用于从存储器到处理器的回复的单独的线。通过随机或伪随机选择的多项式,存储位置可在数据模块上分布。所述体系结构优选地在持续的时间里有选择地为高级并行算法实施并发存储访问,为计算前缀实施多操作和实施减少。
多操作可实施为一系列的多个、可选择的两个连续的指令。在诸如多前缀的多操作的执行中,可确定第一处理器内多前缀,在该前缀上,处理器式结果可传输至分布式共享存储元件的主动式存储模块,以便确定在那里的处理器内多前缀(每个处理器一个结果),基于该前缀,可在处理器本身之内再次确定最终多前缀。
参照图5,在500中示出了根据本发明的实施方式的改善的MU,在该MU中,在左边具有处理器管线,以便在管线级便于对包含在内的实体的作用的理解。所述MU500包括散列和组成单元(HCU)502、存储器引用发送逻辑实体510、单个阵列步骤高速缓存504、暂存器506、回复等待队列512b、回复接收缓冲器512和接收ALU 512c。HCU 502可为存储器引用计算散列地址、基于在MDR寄存器中给定的存储数据、在MAR寄存器中给定的存储地址、线程识别符、来自操作寄存器的存储器操作和步骤计数器预定数目的LSB,组成传出存储器引用消息,以及访问步骤高速缓存,以便确定存储器引用的状态(已经引用或在多线程执行的当前步骤中还没有被任何线程引用)。
基于该操作,存储器引用发送逻辑510访问暂存器506,并且在去往共享存储器系统的途中发送引用或者利用暂存器中的数据计算内部存储器操作结果并产生结果,作为对回复等待队列512b的(快速)回答。回复接收缓冲器512接收从分布式共享数据存储器系统508进来的回复消息,并且也被多级回复等待队列512b的最后级访问,以便确定具有同样启动程序(线程识别码)的回复是否已经到达。在否定的情况下,管线可暂停,直到回复到达。否则,根据所述操作,所述回复在接收ALU 512c中经受进一步的处理。回复接收缓冲器512有利地专门包含或至少两个数据阵列和两个端口,这是由于它储存来自多线程执行的两个连续步骤的待定位和数据。
与处理器相关联的步骤高速缓存504中的每一条线可仅仅包含启动程序和地址标记。由于MU500仅仅需要从单个级访问步骤高速缓存504,单个的缓存阵列和一个访问端口足够了。每次处理器引用存储器,步骤高速缓存搜索被执行。如果缓存线在使用中并且所述地址符合所述线的标记,在缓存线上检测到命中。在命中的情况下,写入仅被忽略,而读取通过访问来自缓存的启动程序数据和检索来自接收缓冲器的结果完成(由于这已经被启动程序线程完成,没有理由向共享存储器发送引用)。
在未命中的情况下,使用已应用的取代策略将线程识别码储存至缓存中的启动程序区域。同时随着将引用信息存储至缓存线,引用本身被发送至分布式共享数据存储器系统508。数据被放进回复接收缓冲器512的数据字段域并且对应的待定字段被清除。预定的缓存衰变逻辑用于使多线程执行的步骤之间的线无效。
与处理器关联的暂存器506已被重新设计,这样第二端口被移除,每一个暂存线可为处理器的每一个线程具有仅用于存储数据的区域。
优选地可使用两个指令的队列实施多操作,内部数据写入暂存器506中,启动程序储存至步骤高速缓存504和所谓的启动程序寄存器中(用于连接其剩下的引用,没有示出),不过,用于多操作的待定位保存在回复接收缓冲器512中而不是暂存器506中,所述回复数据储存至回复接收缓冲器512中而不是步骤高速缓存504或暂存器506中,并且用于多操作的结束操作的回复数据从回复接收缓冲器512中提取而不是从步骤高速缓存504或暂存器506中提取(例如见表2中的算法2)。
表2算法2:根据本发明的MU的实施方式中的两步骤MP ADD多操作的实施方式。
图6仅以示例的方式公开了根据本发明的实施方式的方法的流程图。在方法开始步骤602,执行了准备行动,也就是获得执行所述方法的MU,诸如主机(处理器)芯片,该芯片使用剩余的ESM和支撑体系结构(电源等)制造、获得和配置,以便执行利用并行处理期望种类的程序代码,所述代码加载至关联处理器的指令存储器上。
具体而言,在604中获得定义关联高速缓冲存储器阵列的步骤高速缓存,在该阵列中,数据一直有效直到多线程执行正在进行的步骤结束,所述存储器阵列包括多个具有数据字段的缓存线,每一条线优选排他地包含用于地址标记的数据字段和引用由所述地址标记指定的数据存储位置的第一线程的数据字段线程识别码。
在606,获得用于定义存储缓冲器的暂存器,该缓冲器用于存储多操作的内部数据,诸如中间结果,所述缓冲器优选地排他地包括用于处理器的每一个线程的单个数据字段。
一旦代码执行(布置在所绘示出的垂直虚线下方的方法项),如之前所描述的,在608中提取并解码呈现在代码中的指令,于是,在610访问步骤高速缓存以便进行缓存搜索,并且在612访问暂存器以便在涉及通过处理器的数据存储器引用的多操作执行期间,在存储器管线不同的时钟周期和不同的级检索和/或存储所述内部数据。共享存储器访问、对引用的操作和结果旁路可发生在614。如图中的虚线回环箭头所示,针对可处理不同的线程和新的指令而示出的项可重复执行。SEQ 618指示指令/程序排序。
在616中,结束所述方法的执行,这通常在程序代码执行的终点发生。
本领域的技术人员可基于由每一个特定的使用场景设定的要求改变上文公开的所述方法图的方法零件的相互顺序和整体存在,例如由与执行下的指令关联的存储器操作设定的要求,
结果,为了实施由所附权利要求所界定的本发明的范围,本领域的技术人员可以基于本公开和常识结合必要的修改、删除和添加(如果有的话)在每一个具体使用的情况中,应用所提供的教导。通常,如本领域的技术人员所理解的,本文陈述的各种原则也可用于明显偏离所描述的处理器体系结构中。
Claims (14)
1.一种用于处理在包含共享数据存储器系统的模拟共享存储器体系结构中设置有交叉存取的线程间管线的多线程处理器的数据存储器引用的存储器单元,包括:
步骤高速缓存,定义关联高速缓冲的存储器阵列,其中,数据保持有效直到多线程执行的正在进行的步骤结束,所述存储器阵列将数据字段与多个高速缓存线相结合,多条所述高速缓存线中的每一条线包含用于地址标记的数据字段和引用由所述地址标记指定的数据存储位置的第一线程的线程识别码的数据字段,
暂存器,定义存储缓冲器,该存储缓冲器用于存储进行多个操作的内部数据,所述存储缓冲器包括用于存储所述处理器中的各个线程的单个数据字段,
其中,所述存储器单元进一步包括:散列和组成单元,用于组成存储器引用消息并且用于访问所述步骤高速缓存以确定存储器引用的状态;存储器请求发送逻辑实体,用于根据由所述散列和组成单元提供的所述存储器引用消息将所述存储器引用发送到数据存储器;回复接收缓冲器,用于存储所接收的针对线程的存储器引用数据并且从所述共享数据存储器系统接收进来的回复消息;以及回复等待队列,连接所述发送逻辑实体与所述回复接收缓冲器并且被提供用于访问所述回复接收缓冲器以确定进来的回复消息是否已到达。
2.根据权利要求1所述的存储器单元,其中,所述存储器单元被配置为响应于通过所述处理器线程的数据存储器引用来访问所述步骤高速缓存,以确定是否基于存储在所述步骤高速缓存的所述高速缓存线中的地址标记在所述步骤高速缓存中发现与所引用的存储地址相匹配的地址,并且如果是这种情况,则从所匹配的地址的高速缓存线的线程识别码的数据字段检索线程识别码,并且相反地,在高速缓存未命中的情况下使用预定数据替换策略将当前线程的线程识别码和对应于所引用的存储地址的地址标记存储在所述步骤高速缓存中。
3.根据权利要求1所述的存储器单元,其中,所述回复接收缓冲器是多端口缓冲器并且包括两个数据阵列和两个端口以容纳数据和表示关于两个连续步骤的针对线程的待定共享数据存储器引用的待定字段。
4.根据权利要求1所述的存储器单元,其中,所述存储器单元被配置为在结合存储器写入或读取操作的步骤高速缓存未命中的情况下发送存储器引用到所述共享数据存储器系统,以经由回复接收缓冲器分别在所述模拟共享存储器中存储所述引用数据或检索所述引用数据;而在结合写入操作的步骤高速缓存命中的情况下忽略所述写入操作,并且在结合读取操作的步骤高速缓存命中的情况下,使用检索到的或储存的线程识别码从所述回复接收缓冲器获取结果。
5.根据权利要求1所述的存储器单元,其中,所述存储器单元被配置为结合多操作访问所述暂存器,使用检索到的或存储的线程识别码将数据存储至所述暂存器和从所述暂存器读取数据,以计算处理器内的多操作结果并将所述结果发送到所述共享数据存储器系统。
6.根据权利要求1所述的存储器单元,其中,所述存储器单元被配置为利用在所述回复接收缓冲器中从所述共享数据存储器系统接收的数据和所述处理器内的结果来确定最终多操作的结果。
7.根据权利要求1所述的存储器单元,其中,所述散列和组成单元被配置为访问所述步骤高速缓存并且经由访问端口耦接至所述步骤高速缓存,所述端口能够选择性地被配置为由所述散列和组成单元专用的单访问端口。
8.根据权利要求1所述的存储器单元,其中,所述散列和组成单元被配置为基于至少一个从由以下各项构成的组中选择的元素来建立存储器引用消息:由所述处理器指示的存储操作、存储地址、存储数据、步骤计数器的预定数目的最低有效位和所述步骤高速缓存访问的结果。
9.根据权利要求1所述的存储器单元,其中,所述步骤高速缓存是多路集合相关联的步骤高速缓存。
10.根据权利要求1所述的存储器单元,其中,使用随机选择的散列函数使在所述步骤高速缓存中的地址散列化。
11.根据权利要求中1所述的存储器单元,其中,所述存储器请求发送逻辑实体被配置为访问所述暂存器并且能够经由访问端口继续访问,该访问端口是潜在配置为由所述发送逻辑实体专用的单个访问端口。
12.根据权利要求1所述的存储器单元,其中,所述存储器请求发送逻辑实体被配置为发送存储器引用到所述共享数据存储器系统并且确定预定的多操作的中间结果或处理器内的结果,并且提供内部数据作为经由所述回复等待队列而面向所述回复接收缓冲器的本地回复。
13.根据权利要求1所述的存储器单元,其中,所述回复等待队列是与多个管线级相关联的,该回复等待队列将所述存储器请求发送逻辑实体与所述回复接收缓冲器连接,使得来自所述存储器请求发送逻辑实体的本地回复能够以合适的顺序汇集到所述回复接收缓冲器中以及时地检索从所述共享数据存储器系统接收的相关存储器引用并且接着使用接收ALU得到最终操作结果。
14.提供了一种用于处理在模拟共享存储器体系结构中具有交叉存取的线程间管线的多线程处理器的数据存储器引用的方法,包括:
获得步骤高速缓存,所述步骤高速缓存定义关联高速缓冲存储器阵列,其中,数据保持有效直到多线程执行正在进行的步骤结束,所述存储器阵列包括多个具有数据字段的高速缓存线,多条所述高速缓存线中的每一条线包含用于存储地址标记的数据字段和用于储存引用由所述地址标记指定的数据存储位置的第一线程的线程识别码的数据字段;
获得暂存器,所述暂存器定义用于存储进行多个操作的内部数据的存储缓冲器,所述存储缓冲器包括用于存储所述处理器中的每一个线程的单个数据字段;
通过包括散列和组成单元的存储器单元组成存储器引用消息并且访问所述步骤高速缓存以确定存储器引用的状态;
通过发送逻辑实体根据由所述散列和组成单元提供的所述存储器引用消息将所述存储器引用发送到数据存储器;
将所接收的针对线程的存储器引用数据存储到回复接收缓冲器并且从所述数据存储器接收进来的回复消息;
通过回复等待队列连接所述发送逻辑实体与所述回复接收缓冲器并且被提供用于访问所述回复接收缓冲器以确定进来的回复消息是否已到达。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13168732.9 | 2013-05-22 | ||
EP13168732.9A EP2806361B1 (en) | 2013-05-22 | 2013-05-22 | Memory unit for emulated shared memory architectures |
PCT/FI2014/050391 WO2014188073A1 (en) | 2013-05-22 | 2014-05-21 | Memory unit for emulated shared memory architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393210A CN105393210A (zh) | 2016-03-09 |
CN105393210B true CN105393210B (zh) | 2018-11-13 |
Family
ID=48520716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480041469.8A Active CN105393210B (zh) | 2013-05-22 | 2014-05-21 | 用于处理数据存储器引用的存储器单元和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10073782B2 (zh) |
EP (1) | EP2806361B1 (zh) |
KR (1) | KR102254585B1 (zh) |
CN (1) | CN105393210B (zh) |
WO (1) | WO2014188073A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3188025A1 (en) | 2015-12-29 | 2017-07-05 | Teknologian Tutkimuskeskus VTT Oy | Memory node with cache for emulated shared memory computers |
CN109478139B (zh) * | 2016-08-13 | 2024-01-23 | 英特尔公司 | 用于共享存储器中的访问同步的装置、方法和系统 |
CN114003547B (zh) * | 2017-03-14 | 2023-12-19 | 珠海市芯动力科技有限公司 | 可重构并行处理 |
EP3671457A1 (en) * | 2018-12-21 | 2020-06-24 | Teknologian tutkimuskeskus VTT Oy | Method and arrangement for handling memory access for a tcf-aware processor |
US11030115B2 (en) * | 2019-06-27 | 2021-06-08 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Dataless cache entry |
CN112100121B (zh) * | 2020-11-17 | 2021-02-12 | 北京壁仞科技开发有限公司 | 计算装置、计算设备以及可编程调度方法 |
CN112948287B (zh) * | 2021-03-29 | 2023-06-20 | 成都新易盛通信技术股份有限公司 | 一种基于Hashmap缓存机制的SD卡读写方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US506512A (en) | 1893-10-10 | Territory | ||
US6279100B1 (en) * | 1998-12-03 | 2001-08-21 | Sun Microsystems, Inc. | Local stall control method and structure in a microprocessor |
US6574725B1 (en) * | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
US6651163B1 (en) * | 2000-03-08 | 2003-11-18 | Advanced Micro Devices, Inc. | Exception handling with reduced overhead in a multithreaded multiprocessing system |
US6912621B2 (en) | 2002-04-17 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for updating data in mass storage subsystem using emulated shared memory |
US8756404B2 (en) | 2006-12-11 | 2014-06-17 | International Business Machines Corporation | Cascaded delayed float/vector execution pipeline |
US9183145B2 (en) * | 2009-04-27 | 2015-11-10 | Intel Corporation | Data caching in a network communications processor architecture |
US9218290B2 (en) * | 2009-04-27 | 2015-12-22 | Intel Corporation | Data caching in a network communications processor architecture |
KR101565172B1 (ko) * | 2010-01-15 | 2015-11-02 | 삼성전자주식회사 | 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법 |
-
2013
- 2013-05-22 EP EP13168732.9A patent/EP2806361B1/en active Active
-
2014
- 2014-05-21 US US14/892,446 patent/US10073782B2/en active Active
- 2014-05-21 WO PCT/FI2014/050391 patent/WO2014188073A1/en active Application Filing
- 2014-05-21 CN CN201480041469.8A patent/CN105393210B/zh active Active
- 2014-05-21 KR KR1020157035775A patent/KR102254585B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20160010580A (ko) | 2016-01-27 |
CN105393210A (zh) | 2016-03-09 |
KR102254585B1 (ko) | 2021-05-24 |
EP2806361B1 (en) | 2020-03-04 |
EP2806361A1 (en) | 2014-11-26 |
US10073782B2 (en) | 2018-09-11 |
WO2014188073A1 (en) | 2014-11-27 |
US20160124856A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393210B (zh) | 用于处理数据存储器引用的存储器单元和方法 | |
CN103777926B (zh) | 多线程处理单元中的高效存储器虚拟化 | |
US8645638B2 (en) | Shared single-access memory with management of multiple parallel requests | |
CN105095116B (zh) | 缓存替换的方法、缓存控制器和处理器 | |
US8108625B1 (en) | Shared memory with parallel access and access conflict resolution mechanism | |
CN100421088C (zh) | 用于管理高速缓存数据的数字数据处理设备和方法 | |
CN107038123A (zh) | 用于数据处理系统中的缓存一致性的探听过滤器 | |
CN101071398A (zh) | 多处理器系统上的分散-收集智能存储器体系结构 | |
JP2010123130A (ja) | 複数クラスデータキャッシュポリシー | |
US20110078367A1 (en) | Configurable cache for multiple clients | |
CN104750460B (zh) | 超线程微处理器中经线程优先级提供服务质量 | |
CN108984428A (zh) | 多核片上系统中的缓存策略 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
US5860101A (en) | Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory | |
DE102013205886A1 (de) | Dynamische Bankmodus-Adressierung für Speicherzugriff | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
EP2808783A1 (en) | Smart cache and smart terminal | |
CN109791510A (zh) | 在异构计算中管理数据流 | |
US10366008B2 (en) | Tag and data organization in large memory caches | |
Li et al. | NDRec: A Near-Data Processing System for Training Large-Scale Recommendation Models | |
Abumwais et al. | Shared Cache Based on Content Addressable Memory in a Multi-Core Architecture. | |
Kim et al. | Brain: A low-power deep search engine for autonomous robots | |
US11061817B2 (en) | Memory node with cache for emulated shared memory computers | |
US8756362B1 (en) | Methods and systems for determining a cache address | |
CN107851006A (zh) | 多线程寄存器映射 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |