一种深度学习芯片的全异步存储系统及其生产方法、设备与流程

文档序号:20511394发布日期:2020-04-24 18:34阅读:163来源:国知局
一种深度学习芯片的全异步存储系统及其生产方法、设备与流程

本发明涉及集成电路技术领域,尤其是一种深度学习芯片的全异步存储系统及其生产方法、设备。



背景技术:

人工智能是未来的战略性产业。属于人工智能范畴的深度学习框架因其在图像分类、目标检测、自然语言处理等等应用领域具有良好的性能而备受关注。然而,使用专用集成电路(asic)作为载体实现深度学习算法网络的功能时,通常会遇到以下两个问题:第一是每一次的网络推理都有可能执行上亿次操作,计算量十分庞大;第二是需要存储、利用海量的参数,存储访问非常密集。因此,该领域内的芯片要求系统具有快速访问存储以及降低访问功耗的能力。

正如上面所说,深度学习芯片追求高性能、低功耗,然而传统的深度学习芯片采用的是同步电路的设计方法,这并不能同时满足高性能和低功耗的需求。同步电路具有成熟的eda工具链支持,其设计相对于异步电路则简单得多,但随着制造工艺的发展,特别是特征尺寸到了亚微米时代,同步电路的设计和制造面临着很多棘手的问题:高速的同步电路面临着越来越多的问题,如时钟偏移、时钟抖动、时序难以收敛、鲁棒性差和设计复杂度提高等。此外,同步电路所有的事件触发均由时钟信号来控制,由于每次都要等待时钟沿的到来才触发,这样将浪费大量的时间,访问速度受到限制,很难实现高性能。时钟树的功耗和面积对芯片带来了额外的开销,同样也很难实现低功耗。而异步电路设计相对复杂,异步电路eda的开发需要资金、市场等等因素的驱动,目前仍然缺乏成熟的商用异步电路eda工具链,导致异步电路的制造非常缓慢,难以推广。现有技术中存在的这些问题亟待解决。



技术实现要素:

本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。为此,本发明实施例提供了一种深度学习芯片的全异步存储系统及其生产方法、设备,能够提高深度学习芯片存储工作的效率,降低功耗,实现深度学习芯片高性能、低功耗的目标。

本发明实施例所采取的技术方案是:

第一方面,本发明实施例提供了一种深度学习芯片的全异步存储系统,包括:

至少一个存储阵列,所述存储阵列包括至少一个存储单元,所述存储单元包括:

至少一个读使能传输模块,用于根据传输读信号输出数据;

至少一个空信号模块,用于产生空信号;

至少一个满信号模块,用于产生满信号;

至少一个计数模块,用于记录所述存储单元里面的数据个数;

至少一个写读模块,用于进行写存储或读存储操作。

进一步,所述读使能传输模块、空信号模块、满信号模块、计数模块和写读模块之间采用异步四相双轨的形式进行通信。

进一步,所述空信号模块用于传递四相双轨数据给计数模块和/或写读模块,并且接收所述计数模块和写读模块返回的应答信号;

所述空信号模块用于在初始化时产生空信号给计数模块和/或写读模块;

所述空信号模块还用于在进行写操作时产生非空信号,且在进行读操作至计数模块输出为0时产生空信号。

进一步,所述满信号模块用于传递四相双轨数据给计数模块和/或写读模块,并且接收所述计数模块和写读模块返回的应答信号;

所述满信号模块用于在初始化时产生非满信号给计数模块和/或写读模块;

所述满信号模块还用于在进行读操作时产生非满信号,且在进行写操作至计数模块输出为预定阈值时产生满信号。

进一步,所述存储单元可用于接收存储阵列传递的四相双轨数据和两相单轨数据,并返回对应的四相双轨数据和两相单轨数据给存储阵列。

第二方面,本发明实施例提供一种深度学习芯片的全异步存储系统生产方法,包括以下步骤:

使用chp语言对所述的一种深度学习芯片的全异步存储系统进行描述,得到chp语言描述结果;

对所述chp语言描述结果进行握手扩展,得到hse语言描述结果;

对所述hse语言描述结果进行pr重合,得到prs语言描述结果;

将所述prs语言描述结果进行综合,得到hdl门级网表;

使用c单元替换所述hdl门级网表中的部分单元,并将其导入传统后端eda进行布线。

进一步,所述使用chp语言对所述的一种深度学习芯片的全异步存储系统进行描述这一步骤,其具体包括:

使用串行的chp语言对所述的一种深度学习芯片的全异步存储系统进行描述,得到串行chp语言描述结果;

对所述串行描述结果进行chp分解,得到并行chp语言描述结果。

进一步,所述对所述hse语言描述结果进行pr重合这一步骤之前,还包括:对所述hse语言描述结果进行重新排序,得到重排后的hse语言描述结果。

进一步,所述将所述prs语言描述结果进行综合这一步骤之前,还包括以下步骤:

判断所述prs语言描述结果是否稳定,若不稳定则重新对所述hse语言描述结果进行pr重合。

第三方面,本发明实施例提供了一种设备,包括所述的深度学习芯片的全异步存储系统。

本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:

本发明实施例采用异步电路的通信模式来搭建所述存储系统,各个模块之间采用请求-应答信号进行通讯,摒弃了同步电路依赖全局时钟触发事件的形式,由于舍弃了全局时钟,其运行速度不受限于关键路径,处理性能得到了提升;有效规避了复杂的时钟树设计,将可以很大程度降低芯片的面积和功耗;还可以规避时钟偏移、抖动的问题,兼具高性能、低功耗、鲁棒性强、可移植性好、模块化程度高和电磁兼容性强等优点。

附图说明

为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。

图1为本发明一种深度学习芯片的全异步存储系统具体实施例的模块框图;

图2为本发明一种深度学习芯片的全异步存储系统生产方法的流程示意图;

图3为本发明一种深度学习芯片的全异步存储系统生产方法优选实施例的流程示意图;

图4为本发明一种深度学习芯片的全异步存储系统生产方法的底层原理图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

参照图1,本发明实施例提供了一种深度学习芯片的全异步存储系统,包括:

至少一个存储阵列10,所述存储阵列10包括至少一个存储单元100,所述存储单元100包括:

至少一个读使能传输模块1001,用于根据传输读信号输出数据;

至少一个空信号模块1002,用于产生空信号;

至少一个满信号模块1003,用于产生满信号;

至少一个计数模块1004,用于记录所述存储单元里面的数据个数;

至少一个写读模块1005,用于进行写存储或读存储操作。

进一步作为优选的实施方式,所述读使能传输模块1001、空信号模块1002、满信号模块1003、计数模块1004和写读模块1005之间采用异步四相双轨的形式进行通信。

本发明实施例中,存储单元100中各个模块间的数据基于四相双轨协议进行传输,该协议通过使用两条线表示一个信息位的方式将请求信号和数据信号放在一起编码,形成用于通信的信号。四相双轨协议的握手过程可简单概括为:1.发送方发出一个有效码字;2.接收方收到码字后把应答信号置为高电平;3.发送方响应应答信号同时发出空值码字;4.接收方把应答信号置为低电平。每完成以上四个步骤一次,发送方便可以开启新的通信周期,也就是说:四相双轨协议可以认为是通道内有效码字被空值码字所隔开,形成传输的数据流。这种数据传输方式具有很强的鲁棒性,通信双方可以很稳定地进行通信而不受到导线延迟的影响,因此能够有效提高数据的存储访问能力,从而增强深度学习芯片的反应性能。

进一步作为优选的实施方式,所述空信号模块用于传递四相双轨数据给计数模块和/或写读模块,并且接收所述计数模块和写读模块返回的应答信号;

所述空信号模块用于在初始化时产生空信号给计数模块和/或写读模块;

所述空信号模块还用于在进行写操作时产生非空信号,且在进行读操作至计数模块输出为0时产生空信号。

进一步作为优选的实施方式,所述满信号模块用于传递四相双轨数据给计数模块和/或写读模块,并且接收所述计数模块和写读模块返回的应答信号;

所述满信号模块用于在初始化时产生非满信号给计数模块和/或写读模块;

所述满信号模块还用于在进行读操作时产生非满信号,且在进行写操作至计数模块输出为预定阈值时产生满信号。

进一步作为优选的实施方式,所述存储单元可用于接收存储阵列传递的四相双轨数据和两相单轨数据,并返回对应的四相双轨数据和两相单轨数据给存储阵列。

下面结合图1,对本发明实施例中的全异步存储系统工作原理和过程作以下说明:

本发明实施例中,所述存储单元100是二级结构,而且是三级结构读使能传输模块1001、空信号模块1002、满信号模块1003、计数模块1004和写读模块1005的顶层结构,能够控制其内各个子模块之间的信号传递。所述存储阵列10是一级结构,而且是存储单元100的顶层结构,能够控制存储单元100与其他阵列之间的数据传输和通信,例如处理元阵列pearray,在接收到处理元阵列发送的传输读信号时,所述存储阵列10控制存储单元100输出对应的数据到处理元阵列进行处理。所述存储单元100可以接收存储阵列10传递的四相双轨数据ctrl、data_in和两相单轨数据ack_in,并返回四相双轨数据data_out和两相单轨数据ack_out给存储阵列10。

其中,所述读使能传输模块1001、空信号模块1002、满信号模块1003、计数模块1004和写读模块1005进行通信的过程如下:

所述空信号模块1002传递四相双轨数据给计数模块1004和写读模块1005,并且接收计数模块1004和写读模块1005返回的应答信号。当存储系统初始化时,所述的空信号模块1002产生空信号给计数模块1004和写读模块1005;当存储系统进行写操作时,所述的空信号模块1002产生非空信号;当存储系统持续进行读操作直到计数模块1004的输出为0时,所述的空信号模块1002产生空信号。

所述满信号模块1003传递四相双轨数据给计数模块1004和写读模块1005,并且接收计数模块1004和写读模块1005返回的应答信号。当存储系统初始化时,所述满信号模块1003产生非满信号给计数模块1004和写读模块1005;当存储系统进行读操作时,所述满信号模块1003产生非满信号;当存储系统持续进行写操作直到计数模块1004输出为该存储系统的存储数据容量最大值时,所述满信号模块1003产生满信号。

所述计数模块1004传递四相双轨数据给空信号模块1002和满信号模块1003,并且接收空信号模块1002和满信号模块1003返回的应答信号。当存储系统初始化时,所述计数模块1004输出0给空信号模块1002和满信号模块1003;当存储系统进行写操作时,所述计数模块1004计数值自增;当存储系统进行读操作时,所述计数模块1004计数值自减。

所述读使能传输模块1001传递四相双轨数据给写读模块1005,并且接收写读模块1005返回的应答信号。当存储系统初始化时,所述读使能传输模块1001输出0;当存储系统进行读操作时,所述读使能传输模块1001可传递输入的传输读信号给下一个存储单元100。

所述写读模块1005用于执行写读操作。当存储系统初始化时,所述写读模块1005输出为0;当存储系统进行写操作时,所述写读模块1005保存写入的双轨数据;当存储系统进行读操作时,所述写读模块1005输出要读的双轨数据。

本发明实施例中,采用异步电路的通信模式来搭建所述存储系统,能够很好地解决同步电路设计和制造中遇到的问题。各个模块之间采用请求-应答信号进行通讯,摒弃了同步电路依赖全局时钟触发事件的形式,由于舍弃了全局时钟,本发明实施例中的存储系统没有了路径(path)的概念,其运行速度不像同步电路那样受限于关键路径,处理性能得到了提升。此外,在大规模同步集成电路中,时钟树所消耗的功耗约占整块芯片功耗的1/3,而异步电路有效规避了复杂的时钟树设计,将可以很大程度降低芯片的面积和功耗。综上,本发明实施例中的所述存储系统还可以规避时钟偏移、抖动的问题,兼具高性能、低功耗、鲁棒性强、可移植性好、模块化程度高和电磁兼容性强等优点。

参照图2,本发明实施例还提供了一种深度学习芯片的全异步存储系统生产方法,包括以下步骤:

s1:使用chp语言对所述的一种深度学习芯片的全异步存储系统进行描述,得到chp语言描述结果;

s2:对所述chp语言描述结果进行握手扩展,得到hse语言描述结果;

s3:对所述hse语言描述结果进行pr重合,得到prs语言描述结果;

s4:将所述prs语言描述结果进行综合,得到hdl门级网表;

s5:使用c单元替换所述hdl门级网表中的一部分单元,并将其导入传统后端eda进行布线。

进一步作为优选的实施方式,所述使用chp语言对所述的一种深度学习芯片的全异步存储系统进行描述这一步骤,其具体包括:

使用串行的chp语言对所述的一种深度学习芯片的全异步存储系统进行描述,得到串行chp语言描述结果;

对所述串行描述结果进行chp分解,得到并行chp语言描述结果。

进一步作为优选的实施方式,所述对所述hse语言描述结果进行pr重合这一步骤之前,还包括:对所述hse语言描述结果进行重新排序,得到重排后的hse语言描述结果。

进一步作为优选的实施方式,所述将所述prs语言描述结果进行综合这一步骤之前,还包括以下步骤:

判断所述prs语言描述结果是否稳定,若不稳定则重新对所述hse语言描述结果进行pr重合。

结合图2、3和4,下面对本发明实施例中一种深度学习芯片的全异步存储系统生产方法流程作以下说明:

步骤1,串行chp语言描述,将所述的一种深度学习芯片的全异步存储系统用串行的chp语言进行描述,串行的chp语言是高层语言,用来实现循环、多路选择器等描述;

步骤2,并行chp语言描述,将步骤1所述的串行的chp语言描述结果进行chp分解,得到并行的chp语言描述结果,并行的chp语言描述结果是一个更小的、并行进程的通信系统;

步骤3,hse语言描述,将步骤2所述的并行的chp语言描述结果进行握手扩展,得到hse语言描述结果;在hse语言描述中,所有的变量都是布尔类型,本发明实施例中可采用4相握手扩展;

步骤4,hse语言描述结果重排,将步骤3所述的hse语言描述结果进行重新排序,得到重排后的hse语言描述。经过重新排序,可以提高运行速度,减少芯片的面积;

步骤5,prs描述描述,将步骤4所述的重排后的hse语言描述结果进行pr重合,得到prs语言描述结果;prs描述没有显式的顺序,属于并发规则集;

步骤6,判断是否稳定或者存在干扰,判断步骤5所述的prs语言描述结果是否稳定,若稳定且不存在干扰,则可以进行步骤7;若存在不稳定或者干扰,则重新进行步骤5;

步骤7,hdl门级网表,将步骤6所述的稳定且无干扰的prs语言描述结果进行综合,得到hdl门级网表;

步骤8,有c单元的门级网表,将步骤7所述的hdl门级网表用c单元替换部分单元,得到有c单元的门级网表;

步骤9,后端传统eda,将步骤8所述的有c单元的门级网表送到后端传统eda,即可利用传统商用的eda进行后端布局布线等操作,即可得到所述存储系统的产品。

本发明实施例针对同步深度学习芯片难以同时达到高性能和低功耗的目标,提供了一种深度学习芯片的全异步存储系统生产方法。本发明实施例中的所述系统提高了深度学习芯片存储工作的效率,降低了功耗,能够实现深度学习芯片高性能、低功耗的目标。本发明实施例中提出的生产方法结合了传统商用eda,有利于芯片的工程化和量产。

本发明实施例另提供了一种设备,包括所述的深度学习芯片的全异步存储系统。

可见,上述系统实施例中的内容均适用于本方法、设备实施例中,本方法、设备实施例所具体实现的功能与上述系统实施例相同,并且达到的有益效果与上述系统实施例所达到的有益效果也相同。

在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。

此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。

在本说明书的描述中,参考术语“一个实施方式”、“另一实施方式”或“某些实施方式”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1