CN100394407C - 低等待时间存储器系统访问 - Google Patents
低等待时间存储器系统访问 Download PDFInfo
- Publication number
- CN100394407C CN100394407C CNB2005100876492A CN200510087649A CN100394407C CN 100394407 C CN100394407 C CN 100394407C CN B2005100876492 A CNB2005100876492 A CN B2005100876492A CN 200510087649 A CN200510087649 A CN 200510087649A CN 100394407 C CN100394407 C CN 100394407C
- Authority
- CN
- China
- Prior art keywords
- pointer
- memory
- memory lines
- father
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 14
- 230000008878 coupling Effects 0.000 claims description 5
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000007599 discharging Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K7/00—Constructional details common to different types of electric apparatus
- H05K7/20—Modifications to facilitate cooling, ventilating, or heating
- H05K7/20709—Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
- H05K7/20836—Thermal management, e.g. server temperature control
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D25/00—Pumping installations or systems
- F04D25/16—Combinations of two or more pumps ; Producing two or more separate gas flows
- F04D25/166—Combinations of two or more pumps ; Producing two or more separate gas flows using fans
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F04—POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
- F04D—NON-POSITIVE-DISPLACEMENT PUMPS
- F04D27/00—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
- F04D27/004—Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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
- 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/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
- G09G5/008—Clock recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
- H04L7/033—Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
- H04L7/0337—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
- H04L7/0338—Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F11/00—Control or safety arrangements
- F24F11/70—Control systems characterised by their outputs; Constructional details thereof
- F24F11/72—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
- F24F11/74—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
- F24F11/77—Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B30/00—Energy efficient heating, ventilation or air conditioning [HVAC]
- Y02B30/70—Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mechanical Engineering (AREA)
- Computational Mathematics (AREA)
- Thermal Sciences (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
一种低等待时间存储器系统访问与弱排序的多处理器系统关联地被提供(图1)。多处理器中的每个处理器(12-1、12-2)共享资源,并且每个共享的资源都在锁定装置(10)中具有关联的锁,其提供对多处理器中多个处理器(12-1、12-2)之间的同步以及资源的有序共享的支持。处理器(12-1、12-2)仅当其拥有与资源关联的锁时才具有访问该资源的许可,并且处理器(12-1、12-2)尝试拥有锁仅需要单个加载操作,而不是传统的原子的加载然后存储,因此该处理器(12-1、12-2)仅执行读操作,并且硬件锁定装置(10)而不是该处理器(12-1、12-2)执行随后的写操作。
Description
交叉参考
本发明要求名为MASSIVELY PAPRLLEL SUPERCOMPUTER的提交于2001年2月24日的共同拥有、共同未决的美国临时专利申请序列号60/271,124的优先权,其整个内容和公开内容在此明确引入作为参考,就象在此全部提出的一样。该专利申请另外涉及提交于与之相同的日期的以下共同拥有、共同未决的美国专利申请,其每个的整个内容和公开内容在此明确引入作为参考,就象在此全部提出的一样。对“Class Networking Routing”的美国专利申请序列号(YOR 920020027US1,YOR920020044US1(15270));对“A Global TreeNetwork for Computing Structure”的美国专利申请序列号(YOR920020028US1(15271));对“Global Interrupt and BarrierNetwork”的美国专利申请序列号(YOR920020029US1(15272));对“Optimized Scalable Network Switch”的美国专利申请序列号(YOR920020030US1(15273));对“Arithmetic Functions in Torusand Tree Networks”的美国专利申请序列号(YOR920020031US1,YOR920020032US1(15258));对“Data Capture Technique for HighSpeed Signaling”的美国专利申请序列号(YOR920020033US1,YOR920020034US1(15259));对“Managing Coherence Via Put/GetWindows”的美国专利申请序列号(YOR920020035US1(15260));对“Low Latency Memory Access And Synchronization”的美国专利申请序列号(YOR920020036US1,YOR920020037US1(15261));对“Twin-Tailed Fail-Over for Fileservers Maintaining FullPerformance in the Presence of Failure”的美国专利申请序列号(YOR920020038US1(15276));对“Fault Isolation ThroughNo-Overhead Link Level Checksums”的美国专利申请序列号(YOR920020039US1(15277));对“Ethernet Addressing ViaPhysical Location for Massively Parallel Systems”的美国专利申请序列号(YOR920020040US1(15278));对“Fault Tolerance ina Supercomputer Through Dynamic Repartitioning”的美国专利申请序列号(YOR920020041US1(15274));对“CheckpointingFilesystem”的美国专利申请序列号(YOR920020042US1(15279));对“Efficient Implementation of Multidimensional Fast FourierTransform on a Distributed-Memory Parallel Multi-NodeComputer”的美国专利申请序列号(YOR920020043US1(15262));对“A Novel Massively Parallel Supercomputer”的美国专利申请序列号(YOR9-20010211US2(15275));和对“Smart Fan Modules andSystem”的美国专利申请序列号(YOR920020045US1(15263))。
发明背景
发明领域
本发明通常涉及一种特别与弱排序(weakly-ordered)(松散同步)的多处理器系统关联的低等待时间存储器系统,并提供对多个处理器的活动的有效同步。
本发明亦提供一种用于预取非相连数据结构的有效而简单的方法。
本发明通常涉及例如被应用于生命科学领域中的计算的分布式存储器、消息传递、并行计算机设计的领域。
现有技术讨论
大级别(large class)的重要计算可由整体并行的计算机系统来执行。这种系统由许多相同的计算节点组成,每个节点典型地由一个或多个CPU、存储器、以及将其与其它节点连接的一个或多个网络接口组成。
对A Massively Parallel Supercomputer的提交于2001年2月24日的有关的美国临时申请序列号60/271,124中所述的计算机用杠杆作用影响了芯片上系统(SOC)技术从而创建了有高处理能力的可升级的成本有效的计算系统。SOC技术已使其便于使用嵌入式部件的库在单个芯片上构件整个微处理器节点,所述部件包括有集成的、第一级高速缓冲存储器的CPU芯。这样的封装大大减小了节点的部件数目,允许创建可靠、大规模的机器。第一级高速缓冲存储器是通常距处理器很近并当与第二级高速缓冲存储器比较时通常较小且较快的高速缓冲存储器,所述第二级高速缓冲存储器距处理器较远并通常较大且较慢,对于较高级高速缓冲存储器依此类推。
多处理器所面对的共同问题是资源的有序共享。这通常是通过使用锁来实现的,其中处理器通过获取被指定给资源的锁来获得使用许可从而使用该资源。只要它持有(拥有)所述锁,所述处理器就保留对所述资源的许可,并且通过释放该锁而放弃其许可。很常见类型的锁是测试和置位锁,其实施是简单的并且对于广泛应用是足够通用的。
对于其实施,测试和置位锁通常依赖于硬件读修改写(RMW)操作。该操作允许一个值被写到存储器的位置并返回先前处于该位置(在写之前)的值。就是说,所述操作由读和紧接其后且没有中断的写组成。
测试和置位锁的语义学如下。比方说,未锁定的状况是0而锁定的状况是1。处理器尝试通过执行对锁的RMW操作来获取锁,其中所写的值是1。如果所返回的值是0,则在RMW之前锁是未锁定的,并且由于写了1,它已被锁定。如果锁返回的值是1,则锁已被锁定并且写不起作用。为释放该锁,0被简单地写入。
本发明的另一方面包含预取,其是一种众所周知的技术,用于提高包含高速缓冲存储器的存储器系统的性能,特别是当应用显示出可预测的访问型式时。一般来说,预取是通过软件指令的使用或通过专门硬件来实现的。一些硬件方案是直截了当的,如顺序预取,而一些是较复杂的,如步测流缓冲器(strided stream buffer)。然而,所有硬件技术依赖于地址序列的可预测性。常规预取技术的全面调查见Vanderwiel和Lilja。
现代虚拟存储器系统可影响硬件预取的效力,这是因为在虚拟存储器中相连的大数据结构在物理存储器中不需要相连,并且硬件预取通常处理物理存储器地址。即使如通常情况,大数据结构被相连地横跨(trasverse),实际存储器基准仍将不相连并因此难以预测。然而,许多应用具有高度重复性的行为,因此可学习重复访问型式的机理可有效地预取。
一个这样的机理被描述于对Prefetching System for a CacheHaving a Second Directory for Sequentially Accessed Blocks的Pomerene等的美国专利No.4,807,110中。其思想是提供一个大的二级表,其存储被连续访问的高速缓冲存储器线之间的关系并允许那些关系被采用以便预取到高速缓冲存储器中。用于建立并维持所述关系的各种方法被描述。这种途径的明显缺点是,所述表是固定尺寸的,并且最终填满。此时,已知的关系必须被驱逐(evict)从而为新的关系腾出空间。只要表大到足以捕获工作集合,这并不是问题,但是许多科学应用的工作集合,如将在可升级的计算机上运行的那些,可以与主存储器一样大,该计算机被描述于对A Massively ParallelSupercomputer的提交于2001年2月24日的有关的美国临时申请序列号60/271,124中。在此情况下,由于高速缓冲存储器线之间的继续(follow-on)关系将在它们可被用于预取的很久之前由于有限的容量而被驱逐,因此所述的表将提供很少的好处。
发明概述
因此,本发明的主要目的是提供具体与弱排序的多处理器系统关联的低等待时间存储器系统访问。存储器等待时间通常已知为数字计算机从其存储器传递信息所需的时间,或中央处理单元(CPU)开始对存储器数据的请求的时间和存储器系统将数据返回给CPU的时间之间的间隔。
一种预取非相连数据结构的方法,包括:
在每个数据结构中嵌入指针,用于指向并指示非相连数据结构的访问顺序;
基于由指针指示的访问顺序来预取目标数据结构,其中所述预取基于存储器线,每个存储器线都包括两个位以表示指针的状态,并且所述预取进一步基于指针的状态。
多处理器中的每个处理器共享资源,并且每个被共享的资源在锁定装置中具有关联的锁。该锁提供对多处理器中多个处理器之间的同步以及资源的有序共享的支持。处理器仅当其拥有与资源关联的锁时才具有访问该资源的许可,并且处理器尝试拥有(也叫做获取)锁仅需要单个加载操作,而不是传统的原子(atomic)加载然后存储,因此该处理器仅执行读操作,并且硬件锁定装置而不是该处理器执行随后的写操作。
本发明进一步的目的是提供一种简单的机理,用于预取非相连数据结构,如被非相连存储但以相同顺序被重复访问的很大的数据结构。其基本思想是在数据结构中嵌入指针以指示访问顺序,并预取指针的目标。
预取通常基于高速缓冲存储器线,其中线是相连的物理存储器单元的排列的组块(ailgned chunk)。系统的整个存储器可被认为分成了线,其中这些线的一些部分在任何给定时间被存储于高速缓冲存储器(并且可能被修改)。本发明重新定义存储器线以使除了正常的物理存储器数据以外,每个线亦都包括大到足以指向存储器中任何其它线的指针。除了数据和指针,还可以有一些附加的位以实施置位并使用指针的算法。例如,在此所述的优选实施例包括两个位以指示指针的状态。其基本思想是使用指针而不是一些其它预测算法来确定哪个存储器线要预取。这使硬件能有效预取非相连但重复性的存储器访问型式。本发明的优选实施例包括自动检测访问型式并且置位存储器线指针的机理。此外,一种机理允许指针由软件静态置位。
附图简述
通过参照结合附图进行的本发明几个实施例的以下详述,本领域的技术人员可较容易地理解用于低等待时间的存储器和同步的本发明的上述目的和优点,其中在所有几个视图中,相同的元件用相同的参考数字来表示,并且在其中:
图1示出锁定装置如何被连接于两个处理器并被其访问;以及
图2说明锁的地址映射的实例,并示出多个锁如何被映射到处理器的地址空间中。
图3说明本发明进一步的概念,其中存储器线被重新定义以使除了正常的物理存储器数据以外,每个线亦都包括大到足以指向存储器中任何其它线的指针。
发明详述
通过包括定制的硬件以实施锁,芯片上的多处理器提供了提高锁定性能的机会。该硬件可位于处理器附近,如在各个处理器之间,这导致极低等待时间的访问。此外,锁可被实施以使不需要原子(不中断地执行)的读修改写(RMW)操作,而是用普通的加载和存储来工作。
本发明结合多处理器的芯片上系统(SOC)高速缓冲存储器结构而被开发。多处理器系统包括两个CPU芯,每个都具有内部第一级高速缓冲存储器,其中每个处理器都具有相对独立操作的单独的写和读总线。应理解,本发明将用多于两个的CPU芯来工作。本发明提供一种硬件锁定装置,其提供对多处理器如多处理器SOC中多个处理器之间的同步的支持。硬件锁定装置可位于各个处理器之间以将等待时间减小到最小。硬件锁定装置允许每个处理器简单地执行读操作以获取锁,这是由于关联的写操作是隐式的并且由硬件锁定装置来执行。硬件锁定装置可在芯片上很有效地实施,或亦可被实施为独立的装置。
图1示出共享的锁定装置如何通过两个处理器12-1、12-2的存储器总线14、15连接于这两个处理器并被其访问。象任何其它可寻址的装置一样,锁定装置10被连接于处理器1的存储器总线14。类似地,象任何其它和寻址的装置一样,锁定装置10被连接于处理器2的存储器总线15。地址范围被保留用于每个处理器内的锁装置访问。锁定装置包含一些数量的独立锁,其可通过普通的存储器加载和存储来访问。这通常被称为“存储器映射的输入/输出”。每个锁都可通过两个截然不同的地址来访问:主动地址和被动地址。该主动地址允许处理器首先获取然后释放一个锁,而被动地址仅提供该锁的当前状态。
图2示出两个锁定装置锁1、2到处理器20的地址空间中的典型映射。每个锁可通过两个物理地址来访问,一个主动一个被动。所有主动地址在物理地址空间中被分组到一起以允许锁定装置10容易地解码主动访问。类似地,所有被动地址在物理地址空间中被分组到一起。在图2中,物理地址i和j是主动地址,而物理地址k和l是被动的。
如图2中所示,一个应用可能想要在其虚拟地址空间中将用于锁的主动和被动地址成对在一起。在此,用于锁1的主动地址是虚拟地址p,而其被动地址是虚拟地址q。类似地,用于锁2的主动和被动地址分别是虚拟地址r和虚拟地址s。
由于锁定装置可通过虚拟存储器来访问,操作系统通过虚拟存储器映射来控制对锁的访问。注意,在图2中从虚拟到物理地址的映射是由被发现于典型存储器管理单元中的正常机构来提供的。从物理地址到锁定装置的映射是由锁定装置的地址解码器来确定的。一个这种典型的映射是每个操作系统页提供单个锁访问地址。这允许操作系统在以受保护的方式将锁指定给应用的过程中使灵活性最大化。注意,许多其它映射是可能的,并且多个处理器可使用经历锁定装置解码约束的不同映射。
为了尝试获取特定的锁,处理器读取该锁的主动地址。该读取执行1的隐式读修改写(RMW),并且返回该锁的先前状态。一旦成功,0被返回;一旦失败,1被返回。为释放该锁,0被写给锁的主动地址。对对应于一个锁的被动地址的读取简单地返回该锁的当前状态而不修改它。
处理器不需要使用相同的地址来查询(refer to)锁定装置中的锁,但必须在哪个可用的锁用于任何特定目的上达成一致以使它们可共享特定锁。该锁定装置是很有效的,这是因为锁获取尝试仅需要单个加载(读取)操作,而不是传统的原子加载(读取)然后存储(写入),因此处理器仅执行读操作而不需要执行随后的写操作,该写操作由硬件锁代替执行。当处理器具有单独的写和读总线时,这是特别有利的,该总线的操作将必须被协调以提供原子的RMW,其将导致增加的等待时间。
本发明亦涉及并提供一种用于有效预取很大数据结构的机理,该数据结构被非相连地存储并以相同顺序被重复访问。其基本思想是在数据结构中嵌入指针以指示访问顺序,并预取指针的目标。
预取通常基于高速缓冲存储器线,其中线是相连的物理存储器单元的排列的组块。系统的整个存储器可被认为分成了线,其中这些线的一些部分在任何给定时间被存储于高速缓冲存储器(并且可能被修改)。
图3说明本发明的一个概念,其中存储器线被重新定义以使除了正常物理存储器数据31以外,每个线亦都包括大到足以指向存储器中任何其它线的指针32。图3的线包含数据的M位并且是组成整个存储器的2^N(二的N次幂)个这样的存储器线之一。除了数据和指针,位可被提供以实施置位和使用指针的算法。例如,在此所述的优选实施例包括两个位33、34来指示指针的状态。
其基本思想是使用指针而不是预测算法来确定哪个存储器线要预取。这使硬件能有效预取非相连但重复性的存储器访问型式。本发明的优选实施例包括一种自动检测访问型式并置位存储器线指针的机理。此外,一种机理允许指针由软件来静态置位。
存储器线及其关联的指针在该线在存储器分层结构中向上移动时保持在一起。例如,预取可被用于提高CPU附近的第二级高速缓冲存储器的命中率,因此该高速缓冲存储器以下的任何其它高速缓冲存储器,如第三级,将简单地将指针与存储器线数据一起贮存(cache)。如以下所述,第二级高速缓冲存储器亦将存储指针以实施状态改变。
自动置位指针的简单机理从所有指针被认为“无效”开始。无效指针从不被用于预取。这可通过用附加的位或通过将特定的指针值专用于该状况来表示。当一个线被访问并且该线没有有效指针时,该线被提升至“父”状态。要求被提取的接下来的线被认为是其“子”。一旦该子已知,则父的指针被修改以指向该子并使得有效。此外,“试用”位被置位以表示该指针是一个推测并且可能没有用。注意,由于该子亦是另一个随后的线的父,该算法是递归的。
当有所置位的试用指针的线被定位(reference)并可能被提取时,该线被再次被认为是父,但其子不被提取。一旦接下来的线被请求,其地址被比较于试用的子指针。如果它们匹配,则父的指针被提升为“已知”状态。如果它们不匹配,则父的指针被标记为无效,这是因为假定了预取将是无用的。
当有已知指针的线被定位并可能被提取时,所指向的子被立即预取。如果待定位的接下来的线不是那个子,则父的指针状态被降级以再次成为试用的状态。
这种简单的方案允许没有用于访问型式变化的空间并且不支持多于一个的预取深度(即,未完成的预取的数量,典型地为3或4)。该简单方案可被增强以包括小的内容可寻址的预取表,其将父子关系的路线(track)保持一些时间段。该表具有三个字段:父、子和状态。
当一个线被提取并且它具有无效指针时,则它与在简单方案中一样处理。就是说,待提取的接下来的线被认为是其子,父的指针被置位到子,并且指针状态被设置为试用的。当用已知指针来提取或预取一个线时,则所指向的子被立即预取,除非预取深度已被超出。当有试用或已知指针的线被提取并且它在预取表中不被发现为父时,则它与其子指针和指针状态一起被输入到表中。
不论何时当一个线被定位并可能提取时,该线的地址被比较于预取表中的所有子指针。如果发现匹配,则关联的父的状态如在简单方案中被更新。就是说,试用的指针被升级为已知状态。此外,预取表中的匹配条目被去除。如果多于一个的子条目匹配,则每个都以相同的方式被处理。
当由于容量而从预取表中驱逐条目时,当接下来的基准不匹配所期望的子时,父的指针状态如在简单方案中被更新。就是说,使有效指针为试用的,并且使试用指针无效。当一个线从高速缓冲存储器中被驱逐并且那个线在预取表中被发现为父时,则该表条目亦被使得无效并且被当做预取表驱逐(eviction)。
预取硬件包括预设预取指针并遵守(respect)预设的预取指针但不改变其状态的操作的模式。就是说,自动指针置位机构被禁止,但基于指针的预取机构不被禁止。当数据结构的虚拟到物理的映射被固定并且数据结构的遍历顺序已知时,这是有用的。在此情况下,物理存储器中的指针可被置位以对应于访问顺序,从而使数据结构被有效预取。
尽管在此详述了用于低等待时间存储器访问和非相连数据结构的简单预取的本发明的几个实施例的变化,显然本发明的公开内容和教导对本领域的技术人员将意味着许多可替换的设计。
Claims (10)
1.一种预取非相连数据结构的方法,包括:
在每个数据结构中嵌入指针,用于指向并指示非相连数据结构的访问顺序;
基于由指针指示的访问顺序来预取目标数据结构;
其中所述预取基于存储器线,每个存储器线都包括两个位以表示指针的状态,并且所述预取进一步基于指针的状态。
2.权利要求1的方法,进一步包括预取被非相连地存储但以相同顺序被重复访问的数据结构。
3.权利要求1的方法,其中存储器线是相连的物理存储器单元的排列的部分,因此存储器被分成线,其中所述线的一些部分可在任何给定时间被存储于至少一个高速缓冲存储器,并且其中每个存储器线被重新定义以使除了正常的物理存储器数据以外,每个存储器线亦都包括大到足以指向存储器中任何其它存储器线的指针。
4.权利要求3的方法,其中除了数据和指针,每个存储器线还包括附加的位以实施自动置位并使用指针的算法。
5.权利要求3的方法,其中指针由以下机理来置位,当存储器线被访问并且该存储器线没有有效指针时,该存储器线被提升到父状态,并且要求被提取的接下来的存储器线被认为是其子,一旦子存储器线为已知,则父存储器线的指针被修改以指向子存储器线,此外,试用位被置位以指示指针可能没有用,并且因为子存储器线亦是另一个随后存储器线的父存储器线,该机理是递归的。
6.权利要求5的方法,其中当有所置位的试用指针的存储器线被定位时,该存储器线被认为是父存储器线,但其子存储器线不被提取,一旦接下来的存储器线被请求,其地址被比较于试用的子存储器线的指针,如果它们匹配,则父的指针被提升为已知状态,而如果它们不匹配,则父的指针被标记为无效,并且当有已知指针的存储器线被定位时,所指向的子存储器线被立即预取,而如果待定位的接下来的存储器线不是那个子存储器线,则父的指针状态被降级到试用的状态。
7.权利要求3的方法,其中存储器包括多个不同级的高速缓冲存储器,并且存储器线及其关联的指针在该存储器线在不同级高速缓冲存储器之间的存储器分层结构中向上移动时保持在一起,因此在实施预取的高速缓冲存储器以下的高速缓冲存储器级中的任何其它高速缓冲存储器将简单地把指针与存储器线数据一起贮存。
8.权利要求5的方法,进一步包括内容可寻址的预取表,其保持父子关系的路线,并且该表具有三个字段:父、子和状态。
9.权利要求8的方法,其中
当存储器线被提取并且它具有无效指针时,待提取的接下来的线被认为是其子,父的指针被置位到子存储器线,并且指针状态被设置为试用的,并且当用已知指针来提取或预取一个线时,则所指向的子存储器线被立即预取,并且
当有试用或已知指针的存储器线被提取并且它在预取表中不被发现为父存储器线时,则它与其子指针和指针状态一起被输入到表中;
当存储器线被定位时,该存储器的地址被比较于预取表中的所有子指针,并且如果发现匹配,则关联的父的状态被更新,并且试用的指针被升级为已知状态,此外,预取表中的匹配条目被去除,而如果多于一个的子条目匹配,则每个子条目都以相同的方式被处理。
10.权利要求8的方法,其中当预取表缺少容量而从预取表中驱逐条目时,父的指针状态被更新,其中如果指针状态是有效的,则使有效指针为试用的,并且如果指针状态是试用的,则使试用指针无效;而当存储器线从高速缓冲存储器中被驱逐并且那个存储器线在预取表中被发现为父时,则该表条目亦被使得无效并且被从预取表驱逐。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27112401P | 2001-02-24 | 2001-02-24 | |
US60/271124 | 2001-02-24 | ||
CNA028054415A CN1537275A (zh) | 2001-02-24 | 2002-02-25 | 低等待时间存储器系统访问 |
PCT/US2002/005575 WO2002069098A2 (en) | 2001-02-24 | 2002-02-25 | Low latency memoray system access |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028054415A Division CN1537275A (zh) | 2001-02-24 | 2002-02-25 | 低等待时间存储器系统访问 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1722110A CN1722110A (zh) | 2006-01-18 |
CN100394407C true CN100394407C (zh) | 2008-06-11 |
Family
ID=68463259
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100876492A Expired - Fee Related CN100394407C (zh) | 2001-02-24 | 2002-02-25 | 低等待时间存储器系统访问 |
CNA028054415A Pending CN1537275A (zh) | 2001-02-24 | 2002-02-25 | 低等待时间存储器系统访问 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA028054415A Pending CN1537275A (zh) | 2001-02-24 | 2002-02-25 | 低等待时间存储器系统访问 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7174434B2 (zh) |
EP (1) | EP1379933A4 (zh) |
JP (2) | JP3963372B2 (zh) |
KR (2) | KR100714766B1 (zh) |
CN (2) | CN100394407C (zh) |
AU (1) | AU2002247206A1 (zh) |
CA (1) | CA2436474A1 (zh) |
IL (1) | IL157509A0 (zh) |
WO (1) | WO2002069098A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459547A (zh) * | 2020-04-01 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 一种函数调用链路的展示方法和装置 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100592752B1 (ko) * | 2001-02-24 | 2006-06-26 | 인터내셔널 비지네스 머신즈 코포레이션 | 토러스 및 트리 네트워크에서의 산술 기능 |
US6928526B1 (en) * | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
US7216218B2 (en) * | 2004-06-02 | 2007-05-08 | Broadcom Corporation | Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations |
US7747843B2 (en) * | 2004-06-02 | 2010-06-29 | Broadcom Corporation | Microprocessor with integrated high speed memory |
US7296120B2 (en) * | 2004-11-18 | 2007-11-13 | International Business Machines Corporation | Mechanism that provides efficient multi-word load atomicity |
JP4852427B2 (ja) * | 2004-11-26 | 2012-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサシステム及びそれにおける排他制御方法 |
CN100388209C (zh) * | 2005-01-05 | 2008-05-14 | 英业达股份有限公司 | 防止数据处理混乱的方法 |
US9026744B2 (en) * | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
US7356653B2 (en) * | 2005-06-03 | 2008-04-08 | International Business Machines Corporation | Reader-initiated shared memory synchronization |
US7267555B2 (en) * | 2005-10-18 | 2007-09-11 | Au Optronics Corporation | Electrical connectors between electronic devices |
US7752367B2 (en) * | 2005-12-22 | 2010-07-06 | International Business Machines Corporation | File-based access control for shared hardware devices |
US8104039B2 (en) * | 2006-08-07 | 2012-01-24 | International Business Machines Corporation | Method for balancing resource sharing and application latency within a data processing system |
CN100451972C (zh) * | 2006-09-26 | 2009-01-14 | 杭州华三通信技术有限公司 | 提高多核系统访问临界资源速度的方法和装置 |
US7750923B2 (en) * | 2007-04-05 | 2010-07-06 | Microsoft Corporation | Implementing limited function mode in a display device |
JP2009104300A (ja) * | 2007-10-22 | 2009-05-14 | Denso Corp | データ処理装置及びプログラム |
CN101216781B (zh) * | 2007-12-28 | 2011-03-23 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
JP2010044578A (ja) * | 2008-08-12 | 2010-02-25 | Toshiba Corp | マルチコアプロセッサ |
CN101673244B (zh) * | 2008-09-09 | 2011-03-23 | 上海华虹Nec电子有限公司 | 多核或集群系统的存储器控制方法 |
US8719829B2 (en) * | 2009-03-09 | 2014-05-06 | International Business Machines Corporation | Synchronizing processes in a computing resource by locking a resource for a process at a predicted time slot |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
US10706051B1 (en) * | 2012-06-15 | 2020-07-07 | Open Text Corporation | Methods for updating reference count and shared objects in a concurrent system |
US10515141B2 (en) * | 2012-07-18 | 2019-12-24 | Software Ag Usa, Inc. | Systems and/or methods for delayed encoding of XML information sets |
US9922089B2 (en) | 2012-07-18 | 2018-03-20 | Software Ag Usa, Inc. | Systems and/or methods for caching XML information sets with delayed node instantiation |
US9760549B2 (en) * | 2012-07-18 | 2017-09-12 | Software Ag Usa, Inc. | Systems and/or methods for performing atomic updates on large XML information sets |
US9377954B2 (en) * | 2014-05-09 | 2016-06-28 | Advanced Micro Devices, Inc. | System and method for memory allocation in a multiclass memory system |
JP6252348B2 (ja) * | 2014-05-14 | 2017-12-27 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
CN104102547B (zh) * | 2014-07-25 | 2017-12-26 | 珠海全志科技股份有限公司 | 多处理器系统的同步方法及其同步装置 |
GB2554442B (en) | 2016-09-28 | 2020-11-11 | Advanced Risc Mach Ltd | Apparatus and method for providing an atomic set of data accesses |
TWI650648B (zh) * | 2018-02-09 | 2019-02-11 | 慧榮科技股份有限公司 | 系統晶片及存取系統晶片中記憶體的方法 |
CN114329261A (zh) * | 2021-12-10 | 2022-04-12 | 北京达佳互联信息技术有限公司 | 标签页处理方法、装置、电子设备、存储介质及产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537573A (en) * | 1993-05-28 | 1996-07-16 | Rambus, Inc. | Cache system and method for prefetching of data |
US5819079A (en) * | 1995-09-11 | 1998-10-06 | Intel Corporation | Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch |
US5822788A (en) * | 1996-12-20 | 1998-10-13 | Intel Corporation | Mechanism for prefetching targets of memory de-reference operations in a high-performance processor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807110A (en) | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
GB2216306A (en) * | 1988-02-29 | 1989-10-04 | Ardent Computer Corp | Load and synchronize computer architecture and process |
JPH02121053A (ja) | 1988-10-31 | 1990-05-08 | Toshiba Corp | テスト・アンド・セット方式 |
JPH0391055A (ja) | 1989-09-04 | 1991-04-16 | Hitachi Ltd | ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置 |
US5287503A (en) | 1991-09-27 | 1994-02-15 | Sun Microsystems, Inc. | System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register |
JP3548616B2 (ja) * | 1995-01-20 | 2004-07-28 | 株式会社日立製作所 | 情報処理装置 |
US5860126A (en) | 1996-12-17 | 1999-01-12 | Intel Corporation | Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model |
US5983259A (en) | 1997-02-19 | 1999-11-09 | International Business Machines Corp. | Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system |
US6247025B1 (en) * | 1997-07-17 | 2001-06-12 | International Business Machines Corporation | Locking and unlocking mechanism for controlling concurrent access to objects |
US6134579A (en) | 1997-08-15 | 2000-10-17 | Compaq Computer Corporation | Semaphore in system I/O space |
US6151655A (en) | 1998-04-30 | 2000-11-21 | International Business Machines Corporation | Computer system deadlock request resolution using timed pulses |
US6148300A (en) * | 1998-06-19 | 2000-11-14 | Sun Microsystems, Inc. | Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states |
US6715059B2 (en) * | 2000-07-26 | 2004-03-30 | Tas Holdings, Inc. | Methods and systems for a shared memory unit with extendable functions |
US6782440B2 (en) * | 2000-07-26 | 2004-08-24 | T.N.S. Holdings, Inc. | Resource locking and thread synchronization in a multiprocessor environment |
US6513100B1 (en) * | 2000-10-30 | 2003-01-28 | Microsoft Corporation | System and method for fast referencing a reference counted item |
-
2002
- 2002-02-25 CA CA002436474A patent/CA2436474A1/en not_active Abandoned
- 2002-02-25 CN CNB2005100876492A patent/CN100394407C/zh not_active Expired - Fee Related
- 2002-02-25 WO PCT/US2002/005575 patent/WO2002069098A2/en active IP Right Grant
- 2002-02-25 EP EP02714980A patent/EP1379933A4/en not_active Withdrawn
- 2002-02-25 AU AU2002247206A patent/AU2002247206A1/en not_active Abandoned
- 2002-02-25 IL IL15750902A patent/IL157509A0/xx unknown
- 2002-02-25 KR KR1020067002970A patent/KR100714766B1/ko not_active IP Right Cessation
- 2002-02-25 CN CNA028054415A patent/CN1537275A/zh active Pending
- 2002-02-25 KR KR1020037011091A patent/KR100598668B1/ko not_active IP Right Cessation
- 2002-02-25 JP JP2002568154A patent/JP3963372B2/ja not_active Expired - Fee Related
- 2002-02-25 US US10/468,994 patent/US7174434B2/en not_active Expired - Fee Related
-
2005
- 2005-11-29 JP JP2005343161A patent/JP4301520B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537573A (en) * | 1993-05-28 | 1996-07-16 | Rambus, Inc. | Cache system and method for prefetching of data |
US5819079A (en) * | 1995-09-11 | 1998-10-06 | Intel Corporation | Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch |
US5822788A (en) * | 1996-12-20 | 1998-10-13 | Intel Corporation | Mechanism for prefetching targets of memory de-reference operations in a high-performance processor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111459547A (zh) * | 2020-04-01 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 一种函数调用链路的展示方法和装置 |
CN111459547B (zh) * | 2020-04-01 | 2021-10-08 | 腾讯科技(深圳)有限公司 | 一种函数调用链路的展示方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4301520B2 (ja) | 2009-07-22 |
KR100598668B1 (ko) | 2006-07-13 |
KR20040004537A (ko) | 2004-01-13 |
US20040073758A1 (en) | 2004-04-15 |
AU2002247206A1 (en) | 2002-09-12 |
CA2436474A1 (en) | 2002-09-06 |
JP2004529415A (ja) | 2004-09-24 |
CN1722110A (zh) | 2006-01-18 |
JP3963372B2 (ja) | 2007-08-22 |
WO2002069098A2 (en) | 2002-09-06 |
EP1379933A2 (en) | 2004-01-14 |
WO2002069098A3 (en) | 2002-10-17 |
KR100714766B1 (ko) | 2007-05-08 |
CN1537275A (zh) | 2004-10-13 |
JP2006107528A (ja) | 2006-04-20 |
KR20060024027A (ko) | 2006-03-15 |
EP1379933A4 (en) | 2007-10-17 |
IL157509A0 (en) | 2004-03-28 |
US7174434B2 (en) | 2007-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100394407C (zh) | 低等待时间存储器系统访问 | |
US7818514B2 (en) | Low latency memory access and synchronization | |
Jevdjic et al. | Unison cache: A scalable and effective die-stacked DRAM cache | |
US8832415B2 (en) | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests | |
US9507647B2 (en) | Cache as point of coherence in multiprocessor system | |
US7711902B2 (en) | Area effective cache with pseudo associative memory | |
US8561043B2 (en) | Data transfer optimized software cache for irregular memory references | |
US20040088487A1 (en) | Scalable architecture based on single-chip multiprocessing | |
US9075730B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
US8904154B2 (en) | Execution migration | |
US8527974B2 (en) | Data transfer optimized software cache for regular memory references | |
CN108984428A (zh) | 多核片上系统中的缓存策略 | |
US10042762B2 (en) | Light-weight cache coherence for data processors with limited data sharing | |
US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
CN101071398A (zh) | 多处理器系统上的分散-收集智能存储器体系结构 | |
CN109815165A (zh) | 用于存储和处理高效压缩高速缓存行的系统和方法 | |
US20100318741A1 (en) | Multiprocessor computer cache coherence protocol | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
CN103140834A (zh) | 用于填充存储器区域的处理器支持 | |
Menezo et al. | Mosaic: A Scalable Coherence Protocol | |
Arora et al. | Directory based cache coherence modeller in multiprocessors: Medium insight | |
Coldewey | Hiding memory latency via temporal restructuring | |
Parashar et al. | Distributed Shared Memory Tools |
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: 20080611 Termination date: 20190225 |
|
CF01 | Termination of patent right due to non-payment of annual fee |