CN103034593A - 面向众核处理器的片上锁变量全局编址存储方法及装置 - Google Patents
面向众核处理器的片上锁变量全局编址存储方法及装置 Download PDFInfo
- Publication number
- CN103034593A CN103034593A CN2012105308541A CN201210530854A CN103034593A CN 103034593 A CN103034593 A CN 103034593A CN 2012105308541 A CN2012105308541 A CN 2012105308541A CN 201210530854 A CN201210530854 A CN 201210530854A CN 103034593 A CN103034593 A CN 103034593A
- Authority
- CN
- China
- Prior art keywords
- memory
- lock
- variable
- access
- sheet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种面向众核处理器的片上锁变量全局编址存储方法及装置,方法步骤如下:1)预先建立全局编址片上锁存储器;构造应用程序时对锁变量进行标注,在编译和链接时将锁变量分配到独占的地址空间;2)加载应用程序时,将锁变量所在页面用DMA方式传入全局编址片上锁存储器;在应用程序访问锁变量时将访问请求仲裁并加入访问队列,根据先来先服务的策略执行访问请求;在应用程序结束时结束锁变量的映射;装置包括设于众核处理器芯片上的用于存储应用程序的锁变量的存储体和用于在应用程序运行时控制对锁变量的读取和修改的访问控制器。本发明具有锁变量并发访问性能高、锁变量访问延迟低、锁变量并发访问开销小、使用简单方便的优点。
Description
技术领域
本发明涉及共享存储众核处理器体系结构设计领域,具体涉及一种面向众核处理器的片上锁变量全局编址存储方法及装置。
背景技术
一)共享存储片上众核处理器
近30多年来,随着集成电路实现工艺的进步,高性能通用微处理器芯片上晶体管的数目一直遵从摩尔定律接近每18个月左右翻一番。当前主流高端处理器芯片上的晶体管数目已经达到10亿量级。如何利用如此大量的晶体管资源设计实现高性能通用微处理器是当前学术界和产业界普遍关注的问题。共享多级存储层次的片上众核处理器体系结构,是当前及未来相当长时期内通用高性能微处理器的主流体系结构。这种高性能微处理器体系结构的抽象模型如图1所示。图1中将L3级高速缓存用虚框表示的原因是具体实现的时候,该级高速缓存不一定实现或者不一定实现在芯片内。
在这种处理器体系结构中,对于应用程序中的锁变量,作为一般的数据对待。对高并发应用的性能降低主要来自两个方面:
1)处理器对于锁变量的访问需要进入处理器的各级高速缓存(Cache),那么对于多个处理器核上的多个线程并发访问锁变量的时候,要频繁作废掉处理器核中的L1级高速缓存中的锁变量,对高并发的应用而言会引起较大的性能降低。例如,处理器核0上运行的线程对一个64位的锁变量加一(这在栅栏同步中非常常见),那么如果处理器核1上的线程也要接下来对锁变量加一,就必须等到处理器核0将最新的锁变量的值写入L2级高速缓存后再从L2级高速缓存读入处理器核1的L1级高速缓存,然后再读入寄存器完成写操作,同时作废掉其他处理器核的L1级高速缓存中的该变量。这在众多线程并发读写锁变量的时候会引起大量的L1级高速缓存作废操作,使高并发应用的性能降低。
2)将锁变量作为一般的数据变量对待,需要按照统一的虚存管理机制管理锁变量所处的虚存页面,那么,锁变量所处的虚存页面很可能会被换出处理器的主存储器,影响高并发应用并发访问锁变量的性能。而且,由于和普通数据采用同样的存储管理方式,对锁变量的访问也要经过和数据变量一样的虚实地址转换过程,在众多线程并发访问锁变量的时候会极大地降低性能。
二)锁变量访问是高并发环境下制约性能提升的重要因素
对于图1这种共享存储片上众核处理器,多线程并行是最直接最高效的并行执行模式,甚至其中的处理器核本身就可能在硬件层面上支持多线程。因此,该类处理器是一种高并发度的片上并行系统。基于锁的同步机制是共享存储片上众核处理器中最广泛使用的同步机制,有大量的遗留软件使用这种同步方式。锁是多线程并行程序在用户数据空间中定义的数据元素,各个并发的线程利用处理器提供的比较并交换指令完成加锁/解锁原子操作。因此在海量线程高度并发的条件下,大量线程对锁变量的并发访问开销是高并发并行程序同步开销的主体。在如图1所示的结构中,通常锁变量在所有处理器核共享的存储层次中维持一致性,目前的多核和众核处理器通常在所有处理器核共享的L2级高速缓存中维持锁变量的一致性。以最简单的锁变量为例,处理器核上执行的线程必须访问L2级高速缓存中的锁变量(如果该变量不在L2中则必须从主存储器中取)。那么,每个线程的加锁解锁过程几乎都会引发对L2级高速缓存甚至是主存储器的访问。
目前,在通用的高并发度程序中,锁变量和用户程序空间的数据变量采用同样的处理方式,这对于提高锁变量访问的性能有以下两点制约:1)锁变量不能总是在访问速度最快的共享存储层次中存在;2)锁变量和一般的数据变量访问频度不同,但是采用同样的存储管理机制,严重影响高并发应用的性能;例如按照L2级高速缓存替换策略,锁变量可能会经常替换出高速缓存进入主存储器,并且虚存管理策略也可能将锁变量所在的存储器页面替换到外存储器,因此会严重影响性能。
三)相关的研究和实现工作
提高锁变量并发访问的性能是硬件实现的分布共享存储系统和共享存储片上众核系统中共同关注的关键问题之一。例如美国2010年公示的专利申请《硬件存储器锁(Hardware Memory Locks)》(US 2010/0115195 A1)记载了用一个SOC(片上系统,System-On-Chip)协助管理对存储器中锁变量的访问、实现硬件支持的锁变量快速访问的技术方案,该技术方案适用于多处理器构成的分布共享存储器并行计算系统中。但是,该技术方案并不适用于片上众核的处理器体系结构,同时该专利并没有将锁变量存储器映射到全局地址空间中,因此在访问锁变量时还需要进行复杂的虚实地址转换,锁变量访问性能较低。
发明内容
本发明要解决的技术问题是提供一种锁变量并发访问性能高、锁变量访问延迟低、锁变量并发访问开销小、使用简单方便的面向众核处理器的片上锁变量全局编址存储方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向众核处理器的片上锁变量全局编址存储方法,其实施步骤如下:
1)预先在众核处理器芯片上建立用于存储锁变量的全局编址片上锁存储器,将所述全局编址片上锁存储器分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;
2)加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中,通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与所述全局编址片上锁存储器的虚实地址转换关系;在应用程序访问锁变量时,旁路各个处理器核内部的高速缓存,将各个处理器核对所述全局编址片上锁存储器的访问请求进行仲裁,将仲裁后得到的唯一的访问请求加入所述全局编址片上锁存储器的访问队列,并根据先来先服务的策略执行所述访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到所述全局编址片上锁存储器的映射。
作为本发明面向众核处理器的片上锁变量全局编址存储方法的进一步改进:
所述步骤2)中将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中具体是指以直接存储器访问的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中。
所述全局编址片上锁存储器通过控制通路和地址/数据通路分别与众核处理器上各个处理器核的取存单元直接相连;所述控制通路为16位,其中6位用于表示处理器核的编号,1位用于读写表示,9位用于锁变量寻址;所述地址/数据通路为64位。
所述片上锁存储器的存储容量是众核处理器的存储器页面大小的整数倍。
本发明还提供一种面向众核处理器的片上锁变量全局编址存储装置,包括:
存储体,用于存储应用程序的锁变量;
访问控制器,用于在应用程序运行时控制对锁变量的读取和修改;
所述存储体和访问控制器设于众核处理器芯片上,所述存储体通过访问控制器分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从主存储器传输到存储体中,通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与存储体的虚实地址转换关系;在应用程序访问锁变量时,所述访问控制器旁路各个处理器核内部的高速缓存,将各个处理器核的锁变量访问请求进行仲裁将仲裁后得到的唯一的访问请求加入访问队列,并根据先来先服务的策略执行所述访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,所述访问控制器删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到存储体的映射。
作为本发明面向众核处理器的片上锁变量全局编址存储装置的进一步改进:
所述存储体通过直接存储器访问控制器与片外主存储器相连,所述操作系统在加载应用程序时以直接存储器访问的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到存储体中。
所述访问控制器通过地址/数据通路和控制通路分别与众核处理器上各个处理器核的取存单元直接相连,所述地址/数据通路为64位;所述控制通路为16位,其中6位用于表示处理器核的编号,1位用于读写表示,9位用于锁变量寻址。
所述存储体的存储容量是众核处理器的存储器页面大小的整数倍。
本发明面向众核处理器的片上锁变量全局编址存储方法具有下述优点:
1、本发明通过预先在众核处理器芯片上建立用于存储锁变量的全局编址片上锁存储器,通过独立的全局编址片上锁存储器来实现锁变量的存储,因此对于锁变量的读写操作不涉及对L1/L2级高级缓存的操作,能够降低锁变量并发访问的开销,提高共享存储众核处理器的并行性能。
2、本发明通过预先在众核处理器芯片上建立用于存储锁变量的全局编址片上锁存储器,本发明为锁变量提供上述独特的存储处理方式,不会由于高速缓存(Cache)的一致性维护和替换而降低锁变量访问的性能,通过独立的全局编址片上锁存储器来实现锁变量的存储,锁变量始终存储在全局编址片上锁存储器中而不会被替换出众核处理器芯片的高速缓存,简化了锁变量的操作,也能够提高众核处理器芯片的各级高速缓存的利用率,因此能够有效提高众核处理器芯片的锁变量并发访问性能以及提高高速缓存的利用率。
3、本发明通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与存储体的虚实地址转换关系,因此锁变量的访问直接访问转换后援缓冲表项即可,不需要经过虚实地址转换过程,在众多线程并发访问锁变量时能够极大地提高锁变量的访问性能。
4、本发明在编译和链接应用程序时通过少量修改将锁变量分配到锁变量独占的地址空间即可,对应用程序的编译、链接和加载机制进行少量的修改即可实现基于锁变量的高性能并发执行,能够使高并发度的应用程序使用片上锁存存储并发访问的锁变量,而对应用程序开发而言,仅仅需要在构造应用程序时在应用程序中对锁变量进行标注即可,对于现有的应用程序也仅仅需要简单增加锁变量标注并重新编译、链接即可,具有使用简单方便、应用程序开发难度较低、应用程序兼容性好的优点。
本发明面向众核处理器的片上锁变量全局编址存储装置具有上述面向众核处理器的片上锁变量全局编址存储方法相同的技术效果,在此不再赘述。
附图说明
图1为现有技术的共享存储多核处理器的体系结构示意图。
图2为本发明实施例的方法流程示意图。
图3为本发明实施例的框架结构示意图。
图4为应用本发明实施例锁变量全局编址存储装置的共享存储多核处理器的体系结构示意图。
具体实施方式
如图2所示,本实施例面向众核处理器的片上锁变量全局编址存储方法的实施步骤如下:
1)预先在众核处理器芯片上建立用于存储锁变量的全局编址片上锁存储器,将全局编址片上锁存储器分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;
2)加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到全局编址片上锁存储器中,通过构建应用程序专用的转换后援缓冲(TLB)表项指定锁变量所在存储器页面虚地址与全局编址片上锁存储器的虚实地址转换关系;在应用程序访问锁变量时,旁路各个处理器核内部的高速缓存,将各个处理器核对全局编址片上锁存储器的访问请求进行仲裁,将仲裁后得到的唯一的访问请求加入全局编址片上锁存储器的访问队列,并根据先来先服务的策略执行访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,删除应用程序专用的转换后援缓冲(TLB)表项,结束锁变量所在页面虚地址到全局编址片上锁存储器的映射。
本实施例中,步骤2)中将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到全局编址片上锁存储器中具体是指以直接存储器访问(DMA)的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到全局编址片上锁存储器中。
本实施例中,全局编址片上锁存储器通过控制通路和地址/数据通路分别与众核处理器上各个处理器核的取存单元直接相连;控制通路为16位,其中8位用于表示处理器核的编号,1位用于读写表示,1位用于保留,6位用于锁变量寻址;地址/数据通路为64位。
本实施例中,全局编址片上锁存储器的存储容量是众核处理器的存储器页面大小的整数倍。
如图3所示,本实施例面向众核处理器的片上锁变量全局编址存储装置包括:
存储体1,用于存储应用程序的锁变量;
访问控制器2,用于在应用程序运行时控制对锁变量的读取和修改;
存储体1和访问控制器2设于众核处理器芯片上,存储体1通过访问控制器2分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从主存储器传输到存储体1中,通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与存储体1的虚实地址转换关系;在应用程序访问锁变量时,访问控制器2旁路各个处理器核内部的高速缓存,将各个处理器核的锁变量访问请求进行仲裁将仲裁后得到的唯一的访问请求加入访问队列,并根据先来先服务的策略执行访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,访问控制器2删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到存储体1的映射。
本实施例中,存储体1为集中式的快速存储逻辑电路,具体采用目前常用的SRAM(静态随机访问存储器)实现。存储体1的存储容量可根据需要选择为众核处理器的存储器页面大小的整数倍,本实施例中众核处理器的存储器页面大小为8KB,存储体1的存储容量为32KB(即存储体1的存储容量为众核处理器的存储器页面大小的4倍)。为了使应用程序中的锁变量在整个应用程序的运行期间一直在存储体1中,本实施例中对转换后援缓冲表项(TLB)采用存储器页面锁定机制,即对存在于存储体1的页面进行虚实地址转换进行特殊处理,构建专用页表项专门完成虚地址到存储体1的映射将锁变量所在页面虚地址映射到存储体1,并保持这种映射直到应用程序结束,通过构建应用程序专用的转换后援缓冲表项,将锁变量所在页面虚地址映射到存储体1,因此锁变量的访问不需要经过虚实地址转换过程,在众多线程并发访问锁变量时能够极大地提高锁变量的访问性能。
本实施例中,访问控制器2通过地址/数据通路和控制通路分别与众核处理器上各个处理器核的取存单元直接相连,地址/数据通路为64位;控制通路为16位,其中6位用于表示处理器核的编号,1位用于读写表示,9位用于锁变量寻址。访问控制器2对控制通路中传来的6位进行锁变量寻址的地址进行扩展,后面增加6个0,因为锁变量按64位整数处理。访问控制器2主要包括两个方面的访问控制:2A)片上处理器核对存储体1的读取控制。2B)存储体1和片外主存储器数据传输控制。访问控制器2针对各个处理器核的取存单元(LSU)对存储体1的并发访问需求,访问控制器2实现了如下控制机制:1)访问请求仲裁,保证同一时刻只能接收到来自一个来自取存单元(LSU)的访问请求;2)将取存单元(LSU)的读写请求在访问控制器2中的访问队列中排队;3)按照先来先服务的策略执行访问队列中的访问请求。存储体1的作用是在高并发强同步应用程序运行时存储应用程序空间中的锁变量;因此,在程序加载时需要将程序中锁变量所在的存储器页面的内容加载到存储体1中;本实施例存储体1通过直接存储器访问控制器(DMA控制器)与片外主存储器相连,操作系统在加载应用程序时以直接存储器访问的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到存储体1中。本实施例借助直接存储器访问控制器(DMA控制器)实现了存储体1和片外主存储器之间的存储器直接传输(DMA)机制,将片外主存储器中的页面按照直接存储器访问机制直接拷贝到存储体1中,因此存储体1和片外主存储器数据传输控制不需要依赖众核处理器芯片上处理器核,传输效率更高。
如图4所示,本实施例在共享存储众核处理器中设计了基于全局编址的锁变量全局编址存储装置,即图4中的全局编址片上锁存器(Global Addressing On-Chip Memory fOr Lock,为了描述方便,下文中简称为GAOCMOL)。本实施例GAOCMOL(GAOCMOL的存储体1)通过该直接存储器访问控制器(即图4中的DMA)与片外主存储器相连。GAOCMOL包括在众核处理器芯片上设计的独立于各级高速缓存的专门用来存储锁变量的存储体1和用于在应用程序运行时控制对锁变量的读取和修改的访问控制器2。存储体1专门用于存储高并发应用中的锁变量,存储体1的地址空间处于用户程序空间并全局编址,占用全局虚地址空间中的一部分,并用独立的转换后援缓冲(TLB)表项进行虚实地址转换,在程序运行期间不进行虚存页面替换操作,其中存储的锁变量一直存在于处理器芯片上,对其中锁变量的访问也旁路各个处理器核内部的高速缓存。本实施例在传统的共享存储众核处理器基础上,在众核处理器芯片上实现全局编址的用于存储频繁访问的锁变量的GAOCMOL,并实现众核处理器对存储体1的并发访问机制、片上锁存空间内存储器页面的转换后援缓冲(TLB)表项控制机制、存储器页面装载入片上的控制机制。
GAOCMOL和处理器上各个处理器核的取存单元(LSU)间实现共享的数据通路,访问控制器2则主要实现LSU对GAOCMOL访问的控制机制、GAOCMOL访问片外存储器的控制机制。针对LSU对GAOCMOL的并发访问需求,访问控制器2实现了如下控制机制:1)GAOCMOL访问控制器中实现访问请求仲裁,保证同一时刻只能接收到来自一个LSU的访问请求;2)LSU的读写请求在GAOCMOL的访问控制器中排队;3)按照先来先服务的策略执行LSU发来的访问请求。GAOCMOL的作用是在高并发强同步应用程序运行时,存储应用程序空间中的锁变量;因此,在程序加载时需要将程序中锁变量所在的存储器页面的内容加载到GAOCMOL中;本实施例在GAOCMOL的访问控制器中设计了存储器直接传输机制,将主存储器中的页面按照直接存储器访问机制直接拷贝到GAOCMOL的存储体1中。本实施例中,应用程序构造和加载的过程具体包括:4.1、应用程序构造过程中,需要特殊标识锁变量,实现方式是在程序语言中对锁变量采用独特的说明方式,与传统的将锁变量声明为一般的整数变量相区别;4.2、编译器识别锁变量的特殊说明,在地址空间分配中,将锁变量单独分配到虚存空间中;4.3、链接器将整个程序的锁变量所在的存储空间管理为独立的程序数据段;4.4、应用程序加载时,加载器将锁变量所在的虚存储器页面传输到存储体1中,并设置相应的页表项;4.5、应用程序运行过程中,对锁变量的访问直接映射到对存储体1的访问。程序加载时,多线程共享的锁变量所在的存储器页面由操作系统通过片上锁存控制机制加载到众核处理器芯片上的锁存空间中,并设置转换后援缓冲(TLB)表项强制指定锁变量所在地址的虚实转换时直接映射到片上锁存空间(存储体1)中;程序运行时,LSU通过访问控制器2实现对存储器1的读取和修改,多个线程(运行于相同或不同处理器核上)对共享的锁变量的读/写操作直接映射为对片上锁存空间(存储体1)相应位置的读写;锁变量不缓存在任何一级高速缓存中。在应用程序结束时,删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到存储体1的映射。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种面向众核处理器的片上锁变量全局编址存储方法,其特征在于实施步骤如下:
1)预先在众核处理器芯片上建立用于存储锁变量的全局编址片上锁存储器,将所述全局编址片上锁存储器分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;
2)加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中,通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与所述全局编址片上锁存储器的虚实地址转换关系;在应用程序访问锁变量时,旁路各个处理器核内部的高速缓存,将各个处理器核对所述全局编址片上锁存储器的访问请求进行仲裁,将仲裁后得到的唯一的访问请求加入所述全局编址片上锁存储器的访问队列,并根据先来先服务的策略执行所述访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到所述全局编址片上锁存储器的映射。
2.根据权利要求1所述的面向众核处理器的片上锁变量全局编址存储方法,其特征在于:所述步骤2)中将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中具体是指以直接存储器访问的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到所述全局编址片上锁存储器中。
3.根据权利要求1或2所述的面向众核处理器的片上锁变量全局编址存储方法,其特征在于:所述全局编址片上锁存储器通过控制通路和地址/数据通路分别与众核处理器上各个处理器核的取存单元直接相连;所述控制通路为16位,其中6位用于表示处理器核的编号,1位用于读写表示,9位用于锁变量寻址;所述地址/数据通路为64位。
4.根据权利要求3所述的面向众核处理器的片上锁变量全局编址存储方法,其特征在于:所述全局编址片上锁存储器的存储容量是众核处理器的存储器页面大小的整数倍。
5.一种面向众核处理器的片上锁变量全局编址存储装置,其特征在于包括:
存储体(1),用于存储应用程序的锁变量;
访问控制器(2),用于在应用程序运行时控制对锁变量的读取和修改;
所述存储体(1)和访问控制器(2)设于众核处理器芯片上,所述存储体(1)通过访问控制器(2)分别与众核处理器上各个处理器核的取存单元直接相连;构造应用程序时在应用程序中对锁变量进行标注,在编译和链接应用程序时将锁变量分配到锁变量独占的地址空间;加载应用程序时,操作系统将应用程序的锁变量所在的虚拟存储器页面从主存储器传输到存储体(1)中,通过构建应用程序专用的转换后援缓冲表项指定锁变量所在存储器页面虚地址与存储体(1)的虚实地址转换关系;在应用程序访问锁变量时,所述访问控制器(2)旁路各个处理器核内部的高速缓存,将各个处理器核的锁变量访问请求进行仲裁将仲裁后得到的唯一的访问请求加入访问队列,并根据先来先服务的策略执行所述访问队列中的访问请求对锁变量进行读取或者修改;在应用程序结束时,所述访问控制器(2)删除应用程序专用的转换后援缓冲表项,结束锁变量所在页面虚地址到存储体(1)的映射。
6.根据权利要求5所述的面向众核处理器的片上锁变量全局编址存储装置,其特征在于:所述存储体(1)通过直接存储器访问控制器与片外主存储器相连,所述操作系统在加载应用程序时以直接存储器访问的方式将应用程序的锁变量所在的虚拟存储器页面从片外主存储器传输到存储体(1)中。
7.根据权利要求5或6所述的面向众核处理器的片上锁变量全局编址存储装置,其特征在于:所述访问控制器(2)通过地址/数据通路和控制通路分别与众核处理器上各个处理器核的取存单元直接相连,所述地址/数据通路为64位;所述控制通路为16位,其中6位用于表示处理器核的编号,1位用于读写表示,9位用于锁变量寻址。
8.根据权利要求7所述的面向众核处理器的片上锁变量全局编址存储装置,其特征在于:所述存储体(1)的存储容量是众核处理器的存储器页面大小的整数倍。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210530854.1A CN103034593B (zh) | 2012-12-11 | 2012-12-11 | 面向众核处理器的片上锁变量全局编址存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210530854.1A CN103034593B (zh) | 2012-12-11 | 2012-12-11 | 面向众核处理器的片上锁变量全局编址存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034593A true CN103034593A (zh) | 2013-04-10 |
CN103034593B CN103034593B (zh) | 2015-07-22 |
Family
ID=48021504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210530854.1A Active CN103034593B (zh) | 2012-12-11 | 2012-12-11 | 面向众核处理器的片上锁变量全局编址存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034593B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095144A (zh) * | 2015-07-24 | 2015-11-25 | 中国人民解放军国防科学技术大学 | 基于栅栏和锁的多核Cache一致性维护的方法和装置 |
CN105354153A (zh) * | 2015-11-23 | 2016-02-24 | 浙江大学城市学院 | 一种紧耦合异构多处理器数据交换缓存的实现方法 |
WO2017148218A1 (zh) * | 2016-03-01 | 2017-09-08 | 中兴通讯股份有限公司 | 一种数据流处理芯片的表项访问方法及装置 |
WO2017202155A1 (zh) * | 2016-05-27 | 2017-11-30 | 深圳市中兴微电子技术有限公司 | 共享硬件资源的方法、控制器、存储器及系统 |
CN107771322A (zh) * | 2015-05-14 | 2018-03-06 | 赛灵思公司 | 可编程集成电路中存储器资源的管理 |
CN109471673A (zh) * | 2017-09-07 | 2019-03-15 | 智微科技股份有限公司 | 用来于电子装置中进行硬件资源管理的方法及电子装置 |
CN112084013A (zh) * | 2019-06-13 | 2020-12-15 | 合肥杰发科技有限公司 | 一种程序调用方法、芯片及计算机存储介质 |
CN114218153A (zh) * | 2021-12-06 | 2022-03-22 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
CN102103568A (zh) * | 2011-01-30 | 2011-06-22 | 中国科学院计算技术研究所 | 片上多核处理器系统的高速缓存一致性协议的实现方法 |
-
2012
- 2012-12-11 CN CN201210530854.1A patent/CN103034593B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908034A (zh) * | 2010-06-28 | 2010-12-08 | 中国科学院计算技术研究所 | 众核处理器片上同步方法和其系统 |
CN102103568A (zh) * | 2011-01-30 | 2011-06-22 | 中国科学院计算技术研究所 | 片上多核处理器系统的高速缓存一致性协议的实现方法 |
Non-Patent Citations (1)
Title |
---|
陈书明;汪东: "一种面向多核DSP的小容量紧耦合快速共享数据池", 《计算机学报》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107771322A (zh) * | 2015-05-14 | 2018-03-06 | 赛灵思公司 | 可编程集成电路中存储器资源的管理 |
CN107771322B (zh) * | 2015-05-14 | 2021-06-29 | 赛灵思公司 | 可编程集成电路中存储器资源的管理 |
CN105095144B (zh) * | 2015-07-24 | 2018-08-24 | 中国人民解放军国防科学技术大学 | 基于栅栏和锁的多核Cache一致性维护的方法和装置 |
CN105095144A (zh) * | 2015-07-24 | 2015-11-25 | 中国人民解放军国防科学技术大学 | 基于栅栏和锁的多核Cache一致性维护的方法和装置 |
CN105354153B (zh) * | 2015-11-23 | 2018-04-06 | 浙江大学城市学院 | 一种紧耦合异构多处理器数据交换缓存的实现方法 |
CN105354153A (zh) * | 2015-11-23 | 2016-02-24 | 浙江大学城市学院 | 一种紧耦合异构多处理器数据交换缓存的实现方法 |
WO2017148218A1 (zh) * | 2016-03-01 | 2017-09-08 | 中兴通讯股份有限公司 | 一种数据流处理芯片的表项访问方法及装置 |
WO2017202155A1 (zh) * | 2016-05-27 | 2017-11-30 | 深圳市中兴微电子技术有限公司 | 共享硬件资源的方法、控制器、存储器及系统 |
CN109471673A (zh) * | 2017-09-07 | 2019-03-15 | 智微科技股份有限公司 | 用来于电子装置中进行硬件资源管理的方法及电子装置 |
CN109471673B (zh) * | 2017-09-07 | 2022-02-01 | 智微科技股份有限公司 | 用来于电子装置中进行硬件资源管理的方法及电子装置 |
CN112084013A (zh) * | 2019-06-13 | 2020-12-15 | 合肥杰发科技有限公司 | 一种程序调用方法、芯片及计算机存储介质 |
CN112084013B (zh) * | 2019-06-13 | 2024-04-05 | 武汉杰开科技有限公司 | 一种程序调用方法、芯片及计算机存储介质 |
CN114218153A (zh) * | 2021-12-06 | 2022-03-22 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
CN114218153B (zh) * | 2021-12-06 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103034593B (zh) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034593B (zh) | 面向众核处理器的片上锁变量全局编址存储方法及装置 | |
CN104375958B (zh) | 高速缓存存储器管理事务性存储器访问请求 | |
Boroumand et al. | CoNDA: Efficient cache coherence support for near-data accelerators | |
CN101950259B (zh) | 用于执行事务的装置、系统及方法 | |
TWI526829B (zh) | 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體 | |
US9507647B2 (en) | Cache as point of coherence in multiprocessor system | |
CN101814018B (zh) | 事务存储器(tm)系统中的读和写监控属性 | |
US8561044B2 (en) | Optimized code generation targeting a high locality software cache | |
KR100598668B1 (ko) | 지연 시간이 적은 메모리 시스템 액세스 | |
US8166255B2 (en) | Reservation required transactions | |
CN105051695B (zh) | 不可变可共享零复制数据和流传输 | |
CN105765525A (zh) | 加载和存储单元以及数据高速缓存的排序和带宽改进 | |
US8880745B2 (en) | Efficient scheduling of transactions from multiple masters | |
WO2012123061A9 (en) | Parallel memory systems | |
CN104583943A (zh) | 拥有具有分布式结构的动态分派窗口的虚拟加载存储队列 | |
KR20150104591A (ko) | 공유 및 관리 메모리 통합 액세스 | |
CN102681890B (zh) | 一种应用于线程级推测并行的限制性值传递方法和装置 | |
CN104823168A (zh) | 用于实现从由加载存储重新排序和优化所引发的推测性转发缺失预测/错误中恢复的方法和系统 | |
CN109952567A (zh) | 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置 | |
CN102073596A (zh) | 针对指令的可重构片上统一存储器管理方法 | |
CN1605066A (zh) | 数据处理系统 | |
CN104583956A (zh) | 用于实现加载存储重新排序和优化的指令定义 | |
CN102110019B (zh) | 一种基于众核处理器和分区结构的事务存储方法 | |
BR112015015933B1 (pt) | Sistema e método para colocar dados em cache a partir de um armazenamento temporário imutável | |
CN102129396B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |