当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于存储器访问指令向量化的方法和设备技术

技术编号:2846451 阅读:174 留言:0更新日期:2012-04-11 18:40
一种方法,包括:    将源代码中的存储器访问指令转换为标准格式;    产生包含已格式化的存储器访问指令的分片;    产生匹配集,所述匹配集包括指令模式对所述分片中的所述已格式化的存储器访问指令的匹配;以及    将所述匹配转化为向量存储器访问指令。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本说明书涉及存储器访问指令向量化。背景当程序源代码被编译成目标代码或汇编代码时,常常使用存储器访问指令向量化。向量化还可以在汇编器的优化器(optimizer)中被使用。在编译期间,存储器访问指令向量化将两个或更多个存储器访问指令组合成单存储器访问指令以增加存储器带宽。因此,在程序执行期间需要较少的存储器访问,这提高了具有长存储器访问延时(latency)的计算设备的性能。附图说明图1是框图。图2是流程图。图3是存储器图。图4是源代码列表。图5是框图。图6是指令模式。详细说明如图1所示,示例性系统10包括处理器12和存储器14。存储器14包括操作系统16、编译器18、源代码20和目标代码22。在一些实施方案中,编译和执行没有被组合在单个系统中。在这样的实施方案中,源代码在第一系统中被编译成目标文件(多个目标文件),而已链接目标文件的执行在第二系统中发生。在一个实施例中,编译器18读取储存设备(例如硬盘)上的源代码文件中的源代码。系统10可以包括输入/输出设备24和储存设备26。处理器12执行包含在目标代码22中的指令。所述指令可以包括存储器访问指令,例如从存储器14读的指令和写到存储器14的指令。在一些计算机体系结构中,存储器访问指令具有访问可选数目的字节的能力。存储器14典型地以这样一种逻辑方式来组织,其中储存数据的存储器中的位置由称为地址的数字来表示。存储器14可以被想象为储存箱阵列(array),其中的每一个箱为1字节长。每个箱子具有指派给它的一个地址(唯一的数字)。通过指定存储器地址,程序设计者可以访问数据的特定字节。存储器14可以具有不同的类型或区块(bank)。例如,存储器14可以包括静态随机访问存储器(SRAM)区块、动态随机访问存储器(DRAM)区块和便笺式存储器存储区块。存储器14还可以包括电可编程只读存储器(EEPROM)区块、非易失性随机访问(NVRAM)区块和闪存区块。因为对不同存储器存储区块的存储器访问彼此独立,可以独立地执行针对指向特定的存储区块(memory bank)的存储器访问指令的存储器访问向量化。每个存储器访问指令遵循一指令格式。所述指令格式包括存储器访问的类型(例如读或写)、要读和写信息的存储区块、所述访问要开始的起始地址以及要处理的字节数。被处理的字节数可以随着存储器的类型(例如SRAM、DRAM、便笺式存储器等等)和要被执行的操作(例如读、写)而变化。存储器访问指令用来读和写的最小字节数被称为最小数据访问单元(MDAU)。一旦存储器访问已经开始,处理器12等待访问完成。编译器18通过将包含在源代码20中的两个或更多个存储器访问指令组合成单个等效的向量化的存储器访问指令来减少处理器12的等待时间。如图2所示,编译器18对源代码20进行多趟遍历,并且使用指令模式匹配来向量化存储器访问。在格式化趟(102)中,编译器18将提供来读取少于MDAU个字节的每个存储器访问读指令格式化为访问MDAU个字节的读指令。例如,如果MDAU是4个字节并且遇到的存储器读指令读取2个字节,那么所述遇到的存储器读指令被格式化为读取4个字节。类似地,写少于MDAU个字节的存储器访问写指令被编译器18格式化以形成MDAU个字节的部分写指令。在随后的趟中,编译器18将尽可能多的已格式化的存储器访问指令转化(104)为存储器地址引用(reference)是基地址加偏移形式的标准格式,其中基地址是作为其他地址的参考点的地址。例如,基地址可以指示程序的开始。程序中每条指令的地址可以随后通过把偏移加到基地址来指定。将存储器访问指令转化为基地址加偏移的形式有助于存储器访问的向量化,这一点是通过使得更容易将几个存储器访问组合在一起来实现的。在转化存储器访问指令的趟之后,编译器18基于数据流图为对特定存储区块的存储器读或存储器写的每个集合产生(106)存储器访问分片(partition)。存储器访问分片包含一个基本块内的多组存储器访问指令。在一个组(也被称为存储器访问分片的子节点)中的所有存储器访问指令执行对同一存储区块的相同的存储器访问(写或读)。编译器18基于为每个存储器访问分片的每个组(每个子节点)执行的指令模式匹配来向量化(108)多条存储器访问指令。如图3所示,使用一组规则来产生(106)存储器访问分片(例如存储器访问分片200、202、204)。数据流图206被产生。在该实施例中,数据流图206包括三个基本块208、210、212。基本块208、210、212中的每一个包括存储器访问指令。对于数据流图206中的每个基本块208、210、212,应用以下准则以分别产生对应的存储器访问分片200、202、204。分片的每个子节点仅包含针对具体存储区块的存储器访问操作。例如,子节点214包括对SRAM存储区块的读。子节点216包括到DRAM存储区块的写。如果分片不包含任何存储器访问操作,那么所述分片是可以在以下的指令模式匹配中被忽略的空分片。每个子节点仅包含存储器读或存储器写,而不能包含存储器读和存储器写两者。例如,分片200的子节点214仅包含存储器读。分片202的子节点218仅包含存储器写。如果在两个存储器访问指令间存在着依赖性(dependence),那么它们不被放置在同一子节点中。数据流图206中的一个基本块对应一个存储器访问分片,而每个存储器访问分片可以包括一个或更多个子结点。例如,基本块208对应于包含子结点214、216的存储器访问分片200。我们使用MDAU为4来描述编译器18,尽管可以使用其他的MDAU值。如图4所示,使用存储器图150来描述将两个SRAM读组合成一个SRAM读的向量化。存储器图150包括由Addr+0到Addr+13表示的14个SRAM存储器位置。在该实施例中,Addr+0被看作是基地址152。第一SRAM读指令154被解析成读取在字节Addr+0开始的4个字节,即包含在字节Addr+0、Addr+1、Addr+2和Addr+3中的数据。第二SRAM读指令156被解析成读取在字节Addr+4开始的4个字节,即包含在字节Addr+4、Addr+5、Addr+6和Addr+7中的数据。向量化这两个SRAM读产生单个被向量化的SRAM读指令158,所述读指令158被解析成读取在字节Addr+0开始的8个字节,即包含在字节Addr+0、Addr+1、Addr+2、Addr+3、Addr+4、Addr+5、Addr+6和Addr+7中的数据。向量化两个或更多个存储器读(或两个或更多个存储器写)不要求读(或写)地址是连续的。例如,读取在字节Addr+0开始的4个字节的第一SRAM读指令154和读取在字节Addr+8开始的4个字节的第二SRAM读指令160可以被向量化为读取在字节Addr+0开始并且包括字节Addr+11的12个字节的单个被向量化的SRAM读指令162。虽然没有使用Addr+4、Addr+5、Addr+6和Addr+7这4个字节,执行取12个字节的一个存储器读还是比每次取4个字节的两个存储器读节省时间。对4个未使用的字节Addr+4、Addr+5、Addr+6、Addr+7的存储器读被称为可实例化(instantiable)存储器读。对于本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括将源代码中的存储器访问指令转换为标准格式;产生包含已格式化的存储器访问指令的分片;产生匹配集,所述匹配集包括指令模式对所述分片中的所述已格式化的存储器访问指令的匹配;以及将所述匹配转化为向量存储器访问指令。2.如权利要求1所述的方法,其中转换操作包括将读或写少于最小数据访问单元(MDAU)的存储器访问指令转换为读或写多个所述最小数据访问单元的存储器访问指令。3.如权利要求2所述的方法,其中转换步骤还包括将读或写所述多个所述最小数据访问单元的所述存储器访问指令转化为包括基地址加偏移的格式。4.如权利要求1所述的方法,其中产生分片步骤包括产生包含基本块的数据流图,所述基本块包括所述存储器访问指令;以及针对每个基本块,应用一组规则。5.如权利要求4所述的方法,其中应用步骤包括将分片的子节点限定为指向具体存储区块的存储器访问指令。6.如权利要求5所述的方法,其中应用步骤还包括将所述分片的子节点限定为存储器读或存储器写。7.如权利要求5所述的方法,其中所述存储区块是静态随机访问存储器(SRAM)。8.如权利要求5所述的方法,其中所述存储区块是动态随机访问存储器(DRAM)。9.如权利要求5所述的方法,其中所述存储区块是便笺式存储器。10.如权利要求5所述的方法,其中所述存储区块是EEPROM。11.如权利要求5所述的方法,其中所述存储区块是闪存。12.如权利要求5所述的方法,其中所述存储区块是NVRAM。13.如权利要求1所述的方法,其中所述指令模式包括描述指令语义的模式。14.如权利要求1所述的方法,其中所述向量存储器访问指令包括表示对一类存储器的多个存储器访问的单存储器访问指令。15.一种编译方法,包括将读或写少于最小数据访问单元(MDAU)的存储器访问指令转换为读或写多个所述最小数据访问单元的存储器访问指令;将所述存储器访问指令转换为包括基地址加偏移的格式;将已转换的存储器访问指令的子集分组成分片;以及向量化在与指令模式匹配的所述子集中的所述已转换的存储...

【专利技术属性】
技术研发人员:B·黄L·李保罗J·戴贾森勒迪·哈里森威廉姆斯
申请(专利权)人:英特尔公司英特尔中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1