采用可配置的片上存储装置实现访存操作的系统及方法

文档序号:6607860阅读:147来源:国知局
专利名称:采用可配置的片上存储装置实现访存操作的系统及方法
技术领域
本发明涉及处理器设计领域,特别是涉及采用可配置的片上存储装置实现访存操 作的系统及方法。
背景技术
制造工艺的进步、应用软件的驱动以及单核处理器的功耗、散热问题,都促使了 多核处理器的出现,然而,它并没有解决影响传统处理器性能的关键问题之一——存储墙 (Memory Wall)问题。即,处理器的速度每年增长60%,而存储器存取延迟每年仅改善7%, 导致处理器的计算速度和存储器的访问速度差距越来越大。因此,一种更加有效的存储结 构组织,对于处理器的设计至关重要。Cache结构的引入正是为了缓解访存的压力,包括多核结构中的私有Cache和共 享Cache。如SUN SPARC T1/T2处理器采用的私有一级Cache和共享二级Cache ;而为了更好 的利用程序访存的局部性,减少片外访存,也可以设置程序员可控的片上存储(Scratchpad Memory,SPM),如IBM Cell处理器中的SPE Local Stores。但是,单一采用Cache的方式, 虽然可以缓存内存中的所有内容,却不可避免会发生替换,依然带来了片外访存的延迟。而 只有程序员可控的片上存储,无法将更多的内容映射到片上,更多的时候还是需要片外访 存。所以,如果一个存储装置对于Cache和SPM的优点兼而有之,就是一种比较好的实 现方式。

发明内容
本发明的目的在于提供一种采用可配置的片上存储装置实现访存操作的系统及 方法,其能够更好的发挥片上存储的功能,减少片外访存,降低小核计算部件等待数据的时 间,进而更好的体现出多核处理器计算能力强的优势,提高程序运行的性能。为实现本发明的目的而提供的一种可配置的片上存储装置,其特征在于,所述片 上存储能够根据应用程序的计算特点作为Cache或者SPM使用,所述片上存储,包括配置模块,用于根据不同应用程序的计算特点和对SPM或Cache的空间大小的要 求,多模式地配置所述片上存储。所述配置模块,包括配置判断模块,用于根据应用程序的计算特点,判断是否需要对片上存储装置进 行配置,若是,则触发模式判断模块;否则,不对所述片上存储装置进行配置,而将其作为 Cache使用;模式判断模块,用于判断对SPM或Cache的空间大小的要求是否严格,若是,则触 发细粒度配置模块;否则,触发粗粒度配置模块;粗粒度配置模块,用于以路为单位对所述片上存储进行配置,每一路对应一位标 志位,标志位为1表示是SPM,标志位为0表示是Cache ;
细粒度配置模块,用于以缓冲行为单位对所述片上存储进行配置。所述粗粒度配置模块,将一片4路组相联的SRAM中1路,2路或3路配置成SPM使 用,并至少要留一路作为Cache使用。所述粗粒度配置模块,将MIPS指令集体系结构中保留的21号CPO寄存器作为配 置寄存器,低四位代表标志位。所述细粒度配置模块,是将一片4路组相联的SRAM,每路设置一个标志寄存器,用 低七位来代表本路有多少缓冲行为单位被配置成SPM,同时,也遵循配置空间连续、从第0 路开始配置的原则。为实现本发明的目的还提供一种可配置的片上存储装置的配置方法,所述配置方 法,包括下列步骤步骤010.根据应用程序的计算特点,判断是否需要对片上存储进行配置,若是, 则执行步骤020 ;否则,不对所述片上存储进行配置,而将其作为Cache使用;步骤020.判断对SPM或Cache的空间大小的要求是否严格,若是,则执行步骤 030 ;否则,执行步骤340 ;步骤030.细粒度配置以缓冲行为单位对所述片上存储进行配置;步骤040.粗粒度配置以路为单位对所述片上存储进行配置,每一路对应一位标 志位,标志位为1表示是SPM,标志位为0表示是Cache。 所述步骤040中,将一片4路组相联的SRAM中1路,2路或3路配置成SPM使用, 并至少要留一路作为Cache使用。所述步骤040中,将MIPS指令集体系结构中保留的21号CPO寄存器作为配置寄 存器,低四位代表标志位。所述步骤030中,将一片4路组相联的SRAM,每路设置一个标志寄存器,用低七位 来代表本路有多少缓冲行为单位被配置成SPM,同时,也遵循配置空间连续、从第0路开始 配置的原则。所述标志位默认状态下为0000,需要进行配置的时候,使用专门写CPO寄存器的 MTCO指令,将标志位置成0001,0011,0111 ;当作为SPM使用完后,还需要将标志寄存器清 零,再次执行MTCO指令,写入的数据为0。为实现本发明的目的还提供一种采用所述的可配置的片上存储装置实现访存操 作的系统,所述系统,包括访存地址生成模块,接收一个访存操作,生成相应的访存地址,并判断地址所属的 空间,以区分是本地访问,还是远程访问,并将所述访存操作发送到访存队列模块;访存队列模块,接收所述访存操作并送入访存操作队列,根据该操作是本地访问 还是远程访问,将其按序发出,如果是本地访问,则发送到所述片上存储;如果是远程访问, 则发送给接口模块;所述片上存储,是根据应用程序本身的特点和计算需求进行配置,作为Cache或 者SPM使用;选择模块,用于将从所述片上存储中读出的数据进行比对、选择。接口模块,作为每个处理器核的对外接口,收发消息,并负责对SPM的远程读写操作。
为实现本发明的目的还提供一种采用所述可配置的片上存储装置实现访存操作 的方法,所述方法,包括下列步骤步骤100.接收一个访存操作,生成相应的访存地址,并判断地址所属的空间,以 区分是本地访问,还是远程访问;步骤200.接收所述访存操作并送入访存操作队列,判断该操作是本地访问还是 远程访问,如果是本地访问,则执行步骤300 ;如果是远程访问,则执行步骤500 ;步骤300.判断当前片上存储SRAM是否作为Cache使用,若是,则执行步骤400 ; 否则,作为SPM使用,则直接选择正确的数据写回;步骤400.判断将从片上存储SRAM中读出的数据进行比对,然后选择正确的数据 写回;步骤500.封装要发出的消息发送给远程处理器核,实现对SPM的远程读写操作。本发明的有益效果是解决多核访存的效率问题,更好的发挥片上存储的功能,减 少片外访存,降低小核计算部件等待数据的时间,进而更好的体现出多核处理器计算能力 强的优势,提高程序运行的性能。


图1是本发明的可配置的片上存储装置的结构示意图;图2是本发明的可配置的片上存储装置的配置方法的步骤流程图;图3是本发明中对一片4路(way)组相联的片上存储以路(way)为粒度进行配置 的示意图;图4是本发明中对一片4路(way)组相联的片上存储以缓冲行(cacheline)为粒 度进行配置的示意图;图5是本发明中采用可配置的片上存储装置实现访存操作的系统的结构示意图;图6是本发明的采用所述可配置的片上存储装置实现访存操作的方法的步骤流 程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明的采用可配置的片上存储装置实现访存操作的系统及方法进行进一步详细说明。应 当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明的采用可配置的片上存储装置实现访存操作的系统及方法,针对应用程序 的计算特点,提供了对片上存储的多种模式的配置方法,在默认情况下,存储器作为Cache 使用,对程序员是透明的;如果应用程序会产生大量中间计算结果,而这些结果会作为后续 计算的源数据,则为了提高程序执行的性能,可以通过配置,使其成为一块可控的空间,显 示存放这些中间生成的数据,以能更好的发挥片上存储的功能,减少片外访存,降低小核计 算部件等待数据的时间,进而更好的体现出多核处理器计算能力强的优势,提高程序运行 的性能。下面结合上述目标详细介绍本发明的可配置的片上存储装置,所述片上存储既可 以作为Cache使用,此时对程序员是透明的;也可以作为SPM使用,此时对程序员是可控的。图1是本发明的可配置的片上存储装置的结构示意图,如图1所示,所述装置,包括所述片上存储装置中包括一配置模块31,用于根据不同应用程序的计算特点和对 SPM或Cache的空间大小的要求,多模式地配置所述片上存储;所述配置模块31,包括配置判断模块311,用于根据应用程序的计算特点,判断是否需要对片上存储进 行配置,若是,则触发模式判断模块312 ;否则,不对所述片上存储进行配置,而将其作为 Cache使用;模式判断模块312,用于判断对SPM或Cache的空间大小的要求是否严格,若是,则 触发细粒度配置模块314 ;否则,触发粗粒度配置模块313 ;粗粒度配置模块313,用于以路(way)为单位进行配置,对于一片4路组相联的 SRAM,可以将1路,2路或3路配置成SPM使用,但不能将4路完全配置,因为至少要留一路 作为Cache使用。在这种配置方式中,每一路对应一位标志位,标志位为1表示是SPM,标志 位为0表示是Cache,将MIPS指令集体系结构中保留的21号CPO寄存器作为配置寄存器, 低四位代表标志位;细粒度配置模块314,用于以缓冲行(cacheline)为单位进行配置,对于一片4路 (way)组相联的SRAM,一路的大小为128x32x8bits,为每路设置一个标志寄存器,用低七位 来代表本路有多少缓冲行(cacheline)被配置成SPM。同时,也遵循配置空间连续、从第0 路开始配置的原则。因为第3路要保留作为Cache使用,所以,这种情况下,最大可用的SPM 空间仍然为前三路。相应于本发明的可配置的片上存储装置,还提供可配置的片上存储装置的配置方 法,所述配置方法,是根据不同应用程序的不同计算特点,提供了对片上存储的多种模式的 配置方法,在默认情况下,存储器作为Cache使用,对程序员是透明的;如果应用程序会产 生大量中间计算结果,而这些结果会作为后续计算的源数据,则为了提高程序执行的性能, 可以通过配置,使其成为一块可控的空间,显示存放这些中间生成的数据,以能更好的发挥 片上存储的功能,减少片外访存,降低小核计算部件等待数据的时间,进而更好的体现出多 核处理器计算能力强的特点,提高程序运行的性能。因为每路Cache大小为4KB,如果按照路来配置的话,只能得到4K,8K或12K的SPM 空间。而按缓冲行(cacheline)来配置的话,则可以得到从0K-12K任意大小的SPM空间。 所以,当对SPM或Cache的空间大小的需求比较随意的情况下,可以采用粗粒度配置;当根 据数据量的需求,需要对SPM或Cache的空间作更为细致的划分时,则采用细粒度配置。举 例来说,我们的SRAM的大小为16Kbytes,4路(way)组相联,每路4Kbytes。通过粗粒度配 置,我们只能得到4K,8K,或12K的SPM存储空间。根据计算需求,如果数据存储需要6K,9K, IlK等大小空间时,虽然我们可以近似后用粗粒度的配置方法,但为了充分利用片上存储资 源,这时建议程序员通过细粒度配置。比如矩阵乘运算,根据计算数据量的大小,可以选择 不同的配置模式。图2是本发明的可配置的片上存储装置的配置方法的步骤流程图,图3是本发明 中对一片4路(way)组相联的片上存储以路(way)为粒度进行配置的示意图,(其中,阴影 部分表示SPM存储空间,空白部分表示Cache存储空间)图4是本发明中对一片4路(way) 组相联的片上存储以缓冲行(cacheline)为粒度进行配置的示意图(其中,阴影部分表示SPM存储空间,空白部分表示Cache存储空间),如图2、图3和图4所示,根据不同应用程序 的计算特点和对SPM或Cache的空间大小的要求,多模式地配置所述片上存储,所述配置方 法,包括下列步骤步骤010.根据应用程序的计算特点,判断是否需要对片上存储进行配置,若是, 则执行步骤020 ;否则,不对所述片上存储进行配置,而将其作为Cache使用;根据应用程序的计算需求判断是否对片上SRAM进行配置,配置成程序员可控的 SPM存储空间。SPM空间除了程序员可见外,不同的核之间也可以互相访问,这样,当有数据 交换的时候,一个核直接去另一个核的SPM空间读取,从而避免了片外访存,降低了访存延 迟,提高了效率。正因为有这样的好处,建议程序员,当应用程序不同的线程产生中间数据, 并需要交换的时候,就可以把片上存储配置成SPM使用。比如LU分解,每个线程算完一部 分数据后,将跟其它线程交换数据,这时,为了提交效率,就可以采用SPM存储中间结果。步骤020.判断对SPM或Cache的空间大小的要求是否严格,若是,则执行步骤 030 ;否则,执行步骤340 ;步骤030.细粒度配置以缓冲行(cacheline)为单位进行配置,对于一片4路 (way)组相联的SRAM,一路的大小为128x32x8bits,为每路设置一个标志寄存器,用低七位 来代表本路有多少缓冲行(cacheline)被配置成SPM。同时,也遵循配置空间连续、从第0 路开始配置的原则。因为第3路要保留作为Cache使用,所以,这种情况下,最大可用的SPM 空间仍然为前三路。步骤040.粗粒度配置以路(way)为单位进行配置,对于一片4路组相联的SRAM, 可以将1路,2路或3路配置成SPM使用,但不能将4路完全配置,因为至少要留一路作为 Cache使用。在这种配置方式中,每一路对应一位标志位,标志位为1表示是SPM,标志位为 0表示是Cache,将MIPS指令集体系结构中保留的21号CPO寄存器作为配置寄存器,低四 位代表标志位。默认情况下,标志位为0000,需要进行配置的时候,使用专门写CPO寄存器的MTCO 指令,可以将标志位置成0001,0011,0111。当作为SPM使用完后,还需要将标志寄存器清 零,再次执行MTCO指令,写入的数据为0即可。SPM存储空间主要是用来存放程序运行的中间结果,用以共享、交换数据等,可以 减少片外访存。如果应用程序在执行过程中只对数据作一次计算,则可以一开始就把数据 读入SPM存储中,然后直接进行计算,这种情况适用于静态配置;如果应用程序在执行过程 中,会对数据进行多次计算,且计算中会产生中间结果,中间结果需要先汇总,再计算的,则 建议在程序的执行过程中根据计算过程进行动态配置。静态配置程序运行前进行配置。这种配置方法适用于在整个过程中,SPM都要被 用到的情况。动态配置程序运行过程中进行配置。这种配置,在配置前要先写回Cache的内 容。即,一开始,片上存储是作为Cache使用的,运行到某个时刻,程序需要读写SPM空间, 此时,先执行刷Cache操作,将Cache中dirty的数据写回到共享Cache,然后写配置寄存器 进行配置。相应于本发明的可配置的片上存储装置,还提供采用所述可配置的片上存储装置 实现访存操作的系统,图5是本发明中采用可配置的片上存储装置实现访存操作的系统的结构示意图,本发明的后续说明均基于图5给出的系统基本结构。对图5中各部分简要描述如下访存地址生成模块(Memaddr)I,接收一个访存操作,生成相应的访存地址,并判断 地址所属的空间,以区分是本地访问,还是远程访问,并将所述访存操作发送到访存队列模 块2;访存队列模块(LSQ) 2,接收所述访存操作并送入访存操作队列,根据该操作是本 地访问还是远程访问,将其按序发出。如果是本地访问,则发送到片上存储SRAM(Cache/SPM)3 ;如果是远程访问,则发 送给接口模块(Adapter) 5 ;片上存储SRAM(Cache/SPM)3,既可以作为Cache使用,此时对程序员是透明的;也 可以作为SPM使用,此时对程序员是可控的。在使用前,要根据应用程序本身的特点和计算需求采用本发明的多模式的配置方 法对其进行配置。当对SPM或Cache的空间大小的要求不严格时,往往采用粗粒度配置;当对SPM或 Cache的空间大小的要求严格时,要采用细粒度配置。举例来说,假设我们的SRAM的大小为 16Kbytes,4路组相联,每路4Kbytes。通过粗粒度配置,我们只能得到4K,8K,或12K的SPM 存储空间。根据计算需求,如果数据存储需要6K,9K,IlK等大小空间时,虽然我们可以近似 后用粗粒度的配置方法,但为了充分利用片上存储资源,这时建议程序员通过细粒度配置。 比如矩阵乘运算,根据计算数据量的大小,可以选择不同的配置模式。SPM存储空间主要是用来存放程序运行的中间结果,用以共享、交换数据等,可以 减少片外访存。如果应用程序在执行过程中只对数据作一次计算,则可以一开始就把数据 读入SPM存储中,然后直接进行计算,这种情况适用于静态配置;如果应用程序在执行过程 中,会对数据进行多次计算,且计算中会产生中间结果,中间结果需要先汇总,再计算的,则 建议在程序的执行过程中根据计算过程进行动态配置。选择模块(Dtagcmp)4 将从片上存储SRAM103中读出的数据进行比对、选择。如果是作为Cache使用,则首先看是否命中,然后选择正确的数据写回。如果作为 SPM使用,则直接选择正确的数据写回即可,因为SPM中的数据作为系统中的唯一备份,如 果访问,一定是命中的。接口模块(Adapter) 5,作为每个处理器核的对外接口,收发消息。封装要发出的消 息,解析收到的消息。并负责对SPM的远程读写操作。相应于本发明的采用所述可配置的片上存储装置实现访存操作的系统,还提供一 种采用所述可配置的片上存储装置实现访存操作的方法,图6是本发明的采用所述可配置 的片上存储装置实现访存操作的方法的步骤流程图,如图6所示,所述方法包括下列步骤步骤100.接收一个访存操作,生成相应的访存地址,并判断地址所属的空间,以 区分是本地访问,还是远程访问;步骤200.接收所述访存操作并送入访存操作队列,判断该操作是本地访问还是 远程访问,如果是本地访问,则执行步骤300 ;如果是远程访问,则执行步骤500 ;步骤300.判断当前片上存储SRAM是否作为Cache使用,若是,则执行步骤400 ; 否则,作为SPM使用,则直接选择正确的数据写回即可。(因为SPM中的数据作为系统中的唯一备份,如果访问,一定是命中的。)步骤400.判断将从片上存储SRAM中读出的数据进行比对,然后选择正确的数据 写回;如果是作为Cache使用,则首先看是否命中,然后选择正确的数据写回。步骤500.封装要发出的消息发送给远程处理器核(也有可能是发往L2Cache或 同步管理器SyncManager的操作),实现对SPM的远程读写操作。本发明的有益效果是解决多核访存的效率问题,更好的发挥片上存储的功能,减 少片外访存,降低小核计算部件等待数据的时间,进而更好的体现出多核处理器计算能力 强的优势,提高程序运行的性能。通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的 技术人员而言是显而易见的。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例 性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
权利要求
一种可配置的片上存储装置,其特征在于,所述片上存储能够根据应用程序的计算特点作为Cache或者SPM使用,所述片上存储,包括配置模块,用于根据不同应用程序的计算特点和对SPM或Cache的空间大小的要求,多模式地配置所述片上存储。
2.根据权利要求1所述的可配置的片上存储装置,其特征在于,所述配置模块,包括 配置判断模块,用于根据应用程序的计算特点,判断是否需要对片上存储装置进行配置,若是,则触发模式判断模块;否则,不对所述片上存储装置进行配置,而将其作为Cache 使用;模式判断模块,用于判断对SPM或Cache的空间大小的要求是否严格,若是,则触发细 粒度配置模块;否则,触发粗粒度配置模块;粗粒度配置模块,用于以路为单位对所述片上存储进行配置,每一路对应一位标志位, 标志位为1表示是SPM,标志位为0表示是Cache ;细粒度配置模块,用于以缓冲行为单位对所述片上存储进行配置。
3.根据权利要求2所述的可配置的片上存储装置,其特征在于,所述粗粒度配置模块, 将一片4路组相联的SRAM中1路,2路或3路配置成SPM使用,并至少要留一路作为Cache 使用。
4.根据权利要求2所述的可配置的片上存储装置,其特征在于,所述粗粒度配置模块, 将MIPS指令集体系结构中保留的21号CPO寄存器作为配置寄存器,低四位代表标志位。
5.根据权利要求2所述的可配置的片上存储装置,其特征在于,所述细粒度配置模块, 是将一片4路组相联的SRAM,每路设置一个标志寄存器,用低七位来代表本路有多少缓冲 行为单位被配置成SPM,同时,也遵循配置空间连续、从第0路开始配置的原则。
6.一种可配置的片上存储装置的配置方法,其特征在于,所述配置方法,包括下列步骤步骤010.根据应用程序的计算特点,判断是否需要对片上存储进行配置,若是,则执 行步骤020 ;否则,不对所述片上存储进行配置,而将其作为Cache使用;步骤020.判断对SPM或Cache的空间大小的要求是否严格,若是,则执行步骤030 ;否 则,执行步骤340;步骤030.细粒度配置以缓冲行为单位对所述片上存储进行配置; 步骤040.粗粒度配置以路为单位对所述片上存储进行配置,每一路对应一位标志 位,标志位为1表示是SPM,标志位为0表示是Cache。
7.根据权利要求6所述的可配置的片上存储装置的配置方法,其特征在于,所述步骤 040中,将一片4路组相联的SRAM中1路,2路或3路配置成SPM使用,并至少要留一路作 为Cache使用。
8.根据权利要求6所述的可配置的可配置的片上存储装置的配置方法,其特征在于, 所述步骤040中,将MIPS指令集体系结构中保留的21号CPO寄存器作为配置寄存器,低四 位代表标志位。
9.根据权利要求6所述的可配置的可配置的片上存储装置的配置方法,其特征在于, 所述步骤030中,将一片4路组相联的SRAM,每路设置一个标志寄存器,用低七位来代表本 路有多少缓冲行为单位被配置成SPM,同时,也遵循配置空间连续、从第0路开始配置的原则。
10.根据权利要求8所述的可配置的可配置的片上存储装置的配置方法,其特征在于, 所述标志位默认状态下为0000,需要进行配置的时候,使用专门写CPO寄存器的MTCO指令, 将标志位置成0001,0011,0111 ;当作为SPM使用完后,还需要将标志寄存器清零,再次执行 MTCO指令,写入的数据为0。
11.采用权利要求1所述的可配置的片上存储装置实现访存操作的系统,其特征在于, 所述系统,包括访存地址生成模块,接收一个访存操作,生成相应的访存地址,并判断地址所属的空 间,以区分是本地访问,还是远程访问,并将所述访存操作发送到访存队列模块;访存队列模块,接收所述访存操作并送入访存操作队列,根据该操作是本地访问还是 远程访问,将其按序发出,如果是本地访问,则发送到所述片上存储;如果是远程访问,则发 送给接口模块;所述片上存储,是根据应用程序本身的特点和计算需求进行配置,作为Cache或者SPM 使用;选择模块,用于将从所述片上存储中读出的数据进行比对、选择;接口模块,作为每个处理器核的对外接口,收发消息,并负责对SPM的远程读写操作。
12.—种采用所述可配置的片上存储装置实现访存操作的方法,其特征在于,所述方 法,包括下列步骤步骤100.接收一个访存操作,生成相应的访存地址,并判断地址所属的空间,以区分 是本地访问,还是远程访问;步骤200.接收所述访存操作并送入访存操作队列,判断该操作是本地访问还是远程 访问,如果是本地访问,则执行步骤300 ;如果是远程访问,则执行步骤500 ;步骤300.判断当前片上存储SRAM是否作为Cache使用,若是,则执行步骤400 ;否则, 作为SPM使用,则直接选择正确的数据写回;步骤400.将从片上存储SRAM中读出的数据进行比对,然后选择正确的数据写回;步骤500.封装要发出的消息发送给远程处理器核,实现对SPM的远程读写操作。
全文摘要
本发明公开了一种采用可配置的片上存储装置实现访存操作的系统及方法。所述可配置的片上存储装置的配置方法,包括下列步骤根据应用程序的计算特点,判断是否需要对片上存储进行配置,若是,则执行步骤020;否则,不对所述片上存储进行配置,而将其作为Cache使用;判断对SPM或Cache的空间大小的要求是否严格,若是,则细粒度配置以缓冲行为单位对所述片上存储进行配置;否则,粗粒度配置以路为单位对所述片上存储进行配置,每一路对应一位标志位,标志位为1表示是SPM,标志位为0表示是Cache。
文档编号G06F9/34GK101930357SQ201010256400
公开日2010年12月29日 申请日期2010年8月17日 优先权日2010年8月17日
发明者张 浩, 林伟, 范东睿, 范灵俊 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1