基于控制流图推导地址的方法、装置及可读存储介质制造方法及图纸

技术编号:31454474 阅读:26 留言:0更新日期:2021-12-18 11:20
本公开涉及控制流图中推导地址的方法、装置及可读存储介质,其中本公开的计算装置包括在集成电路装置中,该集成电路装置包括通用互联接口和其他处理装置。计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。集成电路装置还可以包括存储装置,存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据存储。和其他处理装置的数据存储。和其他处理装置的数据存储。

【技术实现步骤摘要】
基于控制流图推导地址的方法、装置及可读存储介质


[0001]本公开一般地涉及计算机领域。更具体地,本公开涉及基于控制流图推导地址的方法、装置及可读存储介质。

技术介绍

[0002]传统通用处理器具有自动管理存储的机制,对于访问数据,只需要简单利用取出(load)或保存(store)指令,便可将数据从寄存器加载到片内寄存器中进行处理,处理完成后的结果再经过寄存器存回到内存中,以达到加快对片外内存进行数据处理的执行速度。
[0003]但对于人工智能等专用芯片而言,由于顾虑到性能、面积、功耗等因素,并不采用自动存储管理的机制,而是以指令显式地管理片上空间,在访问数据时,往往需要额外域或参数设置访存指令所操作的地址空间,从而增加了编程难度,因此,一种更有效的地址推导方案是迫切需要的。

技术实现思路

[0004]为了至少部分地解决
技术介绍
中提到的技术问题,本公开的方案提供了一种基于控制流图推导指针地址的方法、装置及可读存储介质。
[0005]在一个方面中,本公开揭露一种基于控制流图推导地址的方法,所述控制流图包括多个基本块,所述多个基本块包括至少一条指令,所述指令包含的指针载有地址。所述方法包括:遍历所述多个基本块,获得所述指针的所有可能的地址空间;判断所述所有可能的地址空间是否推演至单一地址空间;如是,设定所述指针访问所述地址空间。
[0006]在另一个方面,本公开揭露一种计算机可读存储介质,其上存储有在系统中利用通用地址进行访问的计算机程序代码,当所述计算机程序代码由处理器运行时,执行前述的方法。
[0007]在另一个方面,本公开揭露一种计算装置,包括处理器核,所述处理器核执行前述的方法。
[0008]本公开的方案技术针对人工智能等专用处理器,简化其硬件复杂度,方便编程,并借助指针推导进一步保证了程序的性能。
附图说明
[0009]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
[0010]图1是示出本公开实施例的流程图;
[0011]图2是示出本公开实施例的一种范例的控制流图;
[0012]图3是示出本公开实施例的另一种范例的控制流图;
[0013]图4是示出本公开另一实施例的流程图;
[0014]图5是示出本公开实施例的另一种范例的控制流图;
[0015]图6是示出本公开另一实施例的流程图;
[0016]图7是示出本公开另一实施例的流程图;
[0017]图8是示出本公开另一实施例的流程图;
[0018]图9是示出本公开另一实施例的计算装置的示意图;
[0019]图10是示出本公开另一实施例的集成电路装置的结构图;以及
[0020]图11是示出本公开另一实施例的板卡的结构图。
具体实施方式
[0021]下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0022]应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0023]还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0024]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
[0025]下面结合附图来详细描述本公开的具体实施方式。
[0026]为了使计算机能够实现特定操作,程序员必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式输入至计算机,使得计算机能够根据指令依序执行。这种人和计算机之间沟通的渠道称为编程。编程语言分为三大类:机器语言、高级语言及汇编语言。
[0027]机器语言是机器能直接识别的操作码,每一操作码在计算机内部都有相应的电路来完成它,一般是通过一系列的0和1的指令去直接控制计算机各组件的电位,来完成预期的任务。使用机器语言编写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高,但缺点是编程工作量大、易出错、难以解读、依赖具体的计算机结构,因而程序的通用性、移植性不佳。
[0028]高级语言与计算机的硬件结构及指令系统无关,是以人类的逻辑及语法为基础,因此具有更强的表达能力,也方便表示数据的运算和程序的控制结构,能直观的描述各种算法,而且容易学习掌握,目前流行的编程语言像是java、c++、python等都是高级语言。由于高级语言是以人类的角度出发编程,对计算机来说相对不直接,所以编译后生成的操作码往往比机器语言的程序代码要长,执行的速度也慢。不仅如此,高级语言“看不见”计算机
的硬件结构,因此不能直接控制访问硬件资源的系统软件。为此,一些高级语言会利用汇编语言来作为高级语言的一个外部过程或函数。
[0029]汇编语言介于机器语言和高级语言间,相较于机器语言,其更易于程序员理解与编程,相较于高级语言,其具有更直接的机器相关性,达到了高速和高效的特点。在高级语言高度发展的今天,汇编语言通常被用在底层,进行程序优化或硬件操作。
[0030]利用高级语言和汇编语言编写的代码需要经过编译程序才能转换成机器码,以驱动计算机。
[0031]人工智能芯片在运行时,需要大量访问内存,将数据在内存间搬动,以进行计算任务。例如,图像或语音信息转换成矩阵后,矩阵的数据会从片外内存复制到片上内存在进行计算。
[0032]本公开是针对专用集成电路(ASIC),特别是人工智能芯片,在编写代码阶段,不需要额外域或参数来定义访问地址空间的前提下,在编译时进行内存地址的推导,并且实现通用地址的访问,以达到精简计算资源、缩短计算时间的目的。
[0033]本公开的一个实施例是一种基于控制流图推导地址的方法,更详细来说是通过不动点算法实现基于控制流图指针推导方法。控制流图(Control Flow Graph,CFG)是用在编译器中的一种抽象数据结构,代表了一个程序可能本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于控制流图推导地址的方法,所述控制流图包括多个基本块,所述多个基本块包括至少一条指令,所述指令包含的指针载有地址,所述方法包括:遍历所述多个基本块,获得所述指针的所有可能的地址空间;判断所述所有可能的地址空间是否推演至单一地址空间;以及如是,设定所述指针访问所述地址空间。2.根据权利要求1中所述的方法,所述方法还包括:如否,设定指针为通用地址访问。3.根据权利要求2所述的方法,还包括:判断所述指针是否涉及函数调用;以及如涉及函数调用,设定指针为通用地址访问。4.根据权利要求2或3所述的方法,所述多个基本块访问第一内存及第二内存,所述第一内存的存储空间是由第一地址至第二地址所定义,所述第二内存的存储空间是由第三地址至第四地址所定义,所述方法还包括:判断所述通用地址是否落在所述第一地址与所述第二地址间;如落在所述第一地址与所述第二地址间,则设定第一变量为真;如未落在所述第一地址与所述第二地址间,则设定所述第一变量为假;判断所述第一变量是否为真;以及如所述第一变量为真,则设定所述指针访问所述第一内存。5.根据权利要求4所述的方法,其中所述第三地址为所述第二地址加一。6.根据权利要求5所述的方法,其中如所述第一变量为假,则设定所述指针访问所述第二内存。7.根据权利要求5所述的方法,其中所述判断所述通用地址的步骤包括:判断所述通用地址是否小于所述第三地址。8.根据权利要求4所述的方法,其中所述多个基本块还访问第三内存,所述第三内存的存储空间是由第五地址至第六地址所定义,所述方法还包括:判断所述通用地址是否落在所述第五地址与所述第六地址间;如所述通用地址落在所述第五地址与所述第六地址间,则设定第二...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:中科寒武纪科技股份有限公司
类型:发明
国别省市:

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

1