一种基于图描述语言的将二进制工具生成方法

文档序号:6402295阅读:107来源:国知局
专利名称:一种基于图描述语言的将二进制工具生成方法
技术领域
本发明属于处理器设计技术领域,具体涉及一种基于图描述语言的将二进制工具生成方法。
背景技术
现代处理器设计流程中,处理器体系结构描述语言(ADL,ArchitectureDescription Language)用于对处理器进行指令的行为级以及周期精确等抽象层次的建模。基于ADL的处理器模型同时还用于处理器编程工具的自动生成。这些编程工具包括可重定向的高级语言(C/C++, Fortran等)编译器,以及各种二进制工具(binary utility)如汇编器、反汇编器、链接器等。采用ADL对处理器体系结构建模以及在ADL模型的基础上自动产生各种编程工具的做法可以极大地简化处理器原型的前期设计,特别是由于处理器的各项特性被统一、集中地描述避免了繁琐的源代码管理、更新和同步,以及降低了后续文档维护的难度。基于ADL的处理器建模方法学保证了处理器模型与其编程工具的一致性。用于处理器体系结构建模的ADL从两大方面对处理器进行描述:1.处理器的计算资源。这些资源一般只需包含程序员可见的、与其指令集直接有关的计算资源,如寄存器、存储器、流水线、计算部件等。2.处理器的指令集体系结构。指令集体系结构规定了处理器支持的运算类型(表现为若干条具体的指令)、指令之间的各种约束关系、以及运算与计算部件之间的映射等。在对指令集体系结构进行描述时,ADL从如下几个方面对指令进行定义:1.指令的文法。如“add rl,r2r3”。指令文法便于人阅读理解。它规定了对处理器进行编程的文本格式,是汇编器的输入内容,同时是反汇编器的输出内容。2.指令的二进制编码。二进制编码是指令文法描述的等价形式。它不利于人直接阅读理解,仅供机器读入翻译。它是汇编器的输出内容、反汇编器的输入内容。3.指令的语义。指令的语义规定了执行指令时处理器的行为。指令语义描述根据抽象层次的不同分为行为级描述和周期精确描述,它是处理器仿真器的行为基准。根据不同抽象层次的指令语义描述分别生成行为级的处理器仿真器和周期精确的处理器仿真器。现代处理器的指令集体系结构已经表现出一定的层次结构。这样的指令集可以看成是一般化的编程语言,并且使用形式语言描述指令集中的部分特征。基于BNF (Backus-Naur Form)的形式语言虽然可以描述指令集体系结构的文法特征,并且在原则上能够实现指令编码(即汇编功能),但是它无法将指令的二进制描述翻译为文本指令。解码过程本质上是对指令集编码树的广度优先搜索。同时,基于BNF的形式语言也可以用图刻画其逻辑结构。所以说,在将文法描述和编码描述整合至一种统一的领域专用语言时,图描述语言是一种非常便利的选择。

发明内容
(一)要解决的技术问题
当前基于ADL的处理器设计平台中提供了描述指令集的语言以及相应的编译手段生成处理器的二进制工具。但是如前所述,这类指令集描述语言采用简单枚举的方式对指令集中的指令逐条定义,所以从最终的指令集描述文件中无法推知指令集结构,或者指令集描述中存在大量的冗余。而且随着现代处理器指令集内容的日渐丰富,指令集中的同质内容也随之积累,传统的指令集描述方式已经不适合用于这样的指令集建模。本发明所要解决的技术问题是提出一种基于图描述语言的二进制工具生成方法,以解决上述的问题。(二)技术方案本发明提出一种基于图描述语言的将二进制工具生成方法,包括如下步骤:步骤S1:使用图描述语言对目标处理器的指令集进行描述,获得指令集模型;步骤S2:使用指令集模型编译器对指令集模型进行编译,得到处理器的二进制工具。根据本发明的一种具体实施方式
,所述步骤S2包括:步骤S2.1:模型编译器对指令集模型进行词法及语 法分析,构建指令集内部结构图,刻画指令及指令片段之间的关联结构;步骤S2.2:模型编译器在指令集内部结构图的基础上收集指令语法定义,然后合并为统一的指令集语法定义。根据本发明的一种具体实施方式
,所述步骤S2还包括步骤S2.3:在步骤S2.2的同时,模型编译器在指令集内部结构图的基础上收集指令编码信息,然后合并为统一的指令集编码方式。根据本发明的一种具体实施方式
,所述步骤S2还包括步骤S2.5:根据步骤S2.3获得的指令集编码信息生成指令集编码器和解码器。根据本发明的一种具体实施方式
,所述步骤S2还包括步骤S2.4:根据步骤S2.2获得的指令集语法定义生成指令集语法分析器和打印器。根据本发明的一种具体实施方式
,所述步骤S2还包括步骤S2.6:指令集语法分析器与编码器合并构成指令集汇编器;指令集解码器与打印器合并构成指令集反汇编器。(三)有益效果本发明的二进制工具生成方法,通过使用图描述语言对现代处理器指令集进行建模,一方面能够直观地表达指令集内部结构,避免冗余的指令描述;另一方面能够自动地生成汇编器/反汇编器等底层编程工具。


图1是目标处理器指令集的二进制工具生成方法的流程示意图;图2示例地示出了指令集体系结构的内在逻辑结构。
具体实施例方式图描述语言是一类领域专用语言的泛称,适用于描述内部元素具有关联嵌套结构的对象,在本发明中用于描述处理器指令集。在图描述语言中,两个语言元素之间的关系用“边(edge)”刻画。有关联的语言元素可以构成新的语言元素从而形成语言的逻辑结构。这种图描述语言以集中定义和分布定义混合的方式规定了指令集的文法和编码。本发明的图描述语言包含了节点(node)和边(edge)两种基本语言元素。节点描述指令集体系结构的部分属性,一个节点可以拥有若干个子节点。子节点更细致地刻画了指令集体系结构的属性。节点与其子节点之间用边关联,边的定义中刻画了节点与其关联子节点的关系。本发明的基于图描述语言的二进制工具生成方法包括如下步骤:步骤S1:使用图描述语言对目标处理器的指令集进行描述,获得指令集模型。在下述的例子中,使用图描述语言对目标指令集进行建模。步骤S2:使用指令集模型编译器(如示例中的MADL编译器)对指令集模型进行编译,得到处理器的二进制工具。包括如下子步骤:步骤S2.1:模型编译器对指令集模型进行词法及语法分析,构建指令集内部结构图,刻画指令及指令片段之间的关联结构。步骤S2.2:模型编译器在指令集内部结构图的基础上收集指令语法定义,然后合并为统一的指令集语法定义。步骤S2.3:与S2.2同时,模型编译器在指令集内部结构图的基础上收集指令编码信息,然后合并为统一的指令集编码方式。步骤S2.4:根据S2.2获得的指令集语法定义生成指令集语法分析器和打印器。步骤S2.5:根据S2.3获得的指令集编码信息生成指令集编码器和解码器。步骤S2.6:指令集语法分析器与编码器合并构成指令集汇编器;指令集解码器与打印器合并构成指令集反汇编器。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。图1是目标处理器指令集的二进制工具生成方法的流程示意图。如图1所示:集中定义和分布定义混合的方式对处理器的指令集进行描述。它包含节点(node)和边(edge)两种基本要素。节点对应着指令若干特性的描述。节点内部可以包含若干个域(field),是指令特性的描述载体。节点的域与其子节点之间的关系用边表示。子节点通过域与其父节点关联,各个子节点整合起来完整地描述父节点。一个节点除了包含若干个域外,还包含两个内置属性:asm和code, asm用于指定指令的文法,code用于指定指令的编码。节点内还可以包含自定义属性。节点中可以包含断言(predicate)以对节点在运行时所处的状态做出约束。断言用于对指令集中的特殊情况进行模拟。图描述语言中包含了 class和group为处理器指令集建模提供便利。class用于为node的定义提供模板。group是一组具有一定相似性的节点的集合,它在使用上与节点
完全一样。图描述的部分文法:1.Node:node_n DefField:field—n Def2.Edge nl_ > —n2Def3.Group: group—g Gdef4.Def: ; | {Statement}5.Gdef: ; | {MemberList [Statement]}
6.Statement:...
7.MemberList:member_nl [, _n2];8.Predicate:predicate[_name]{[C/C++source codes]}包含常用算术逻辑运算的指令集体系架构建模示例:表1计算资源
权利要求
1.一种基于图描述语言的将二进制工具生成方法,其特征在于,包括如下步骤: 步骤S1:使用图描述语言对目标处理器的指令集进行描述,获得指令集模型; 步骤S2:使用指令集模型编译器对指令集模型进行编译,得到处理器的二进制工具。
2.如权利要求1所述的基于图描述语言的将二进制工具生成方法,其特征在于,所述步骤S2包括: 步骤S2.1:模型编译器对指令集模型进行词法及语法分析,构建指令集内部结构图,刻画指令及指令片段之间的关联结构; 步骤S2.2:模型编译器在指令集内部结构图的基础上收集指令语法定义,然后合并为统一的指令集语法定义。
3.如权利要求2所述的基于图描述语言的将二进制工具生成方法,其特征在于,所述步骤S2还包括步骤S2.3:在步骤S2.2的同时,模型编译器在指令集内部结构图的基础上收集指令编码信息,然后合并为统一的指令集编码方式。
4.如权利要求3所述的基于图描述语言的将二进制工具生成方法,其特征在于,所述步骤S2还包括步骤S2.5:根据步骤S2.3获得的指令集编码信息生成指令集编码器和解码器。
5.如权利要求2所述的基于图描述语言的将二进制工具生成方法,其特征在于,所述步骤S2还包括步骤S2.4:根据步骤S2.2获得的指令集语法定义生成指令集语法分析器和打印器。
6.如权利要求2所述的基于图描述语言的将二进制工具生成方法,其特征在于,所述步骤S2还包括步骤S2.6:指令集语法分析器与编码器合并构成指令集汇编器;指令集解码器与打印器合并构成指令集反汇编器。
全文摘要
本发明提出了一种基于图描述语言的二进制工具生成方法。这种图描述语言以集中定义和分布定义混合的方式规定了指令集的文法和编码。图描述语言包含了节点(node)和边(edge)两种基本语言元素。节点描述指令集体系结构的部分属性,一个节点可以拥有若干个子节点。子节点更细致地刻画了指令集体系结构的属性。本发明在获得处理器指令集体系结构的图描述模型后,二进制工具生成器根据模型中的相关描述生成汇编器、反汇编器和链接器等二进制工具。
文档编号G06F9/45GK103218246SQ20131013956
公开日2013年7月24日 申请日期2013年4月19日 优先权日2013年4月19日
发明者杨勇勇, 王东琳, 谢少林, 王磊 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1