掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输方法、芯片、设备和存储介质

文献发布时间:2023-06-19 11:08:20


一种数据传输方法、芯片、设备和存储介质

技术领域

本申请涉及计算机技术,具体涉及一种数据传输方法、芯片、设备和存储介质。

背景技术

芯片通常包括多个计算内核,各计算内核需要根据接收到的指令执行相应的运算。

例如,AI芯片通常包括二维位移寄存器阵列(以下简称寄存器阵列)。该阵列包括纵横排列的多个计算内核(以下简称PE)。上述多个PE可以根据接收到的指令,执行与该指令对应的运算。

各PE在根据指令进行运算时,通常需要依赖执行数据,可见需要一种数据传输方法。

发明内容

有鉴于此,本申请提出一种数据传输方法,应用于芯片,上述芯片包括指令处理器,以及与上述指令处理器连接的指令存储器;上述方法可以包括:

通过上述指令存储器获取指令,以及存储于外部存储器的执行数据;其中,上述执行数据包括执行上述指令所需的数据;

将上述指令以及上述执行数据输入上述指令处理器;

通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,以使各计算内核根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令包括超长指令字VLIW指令。

在示出的一些实施例中,通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,包括:

通过上述指令处理器将上述指令以及上述执行数据分别传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,包括:

将上述执行数据添加至上述指令,形成带有执行数据的指令;

通过上述指令处理器将上述带有执行数据的指令传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述指令处理器包括指令处理子单元;

上述将上述指令以及上述执行数据输入上述指令处理器,包括:

将上述指令以及上述执行数据输入上述指令处理器中的指令处理子单元;上述方法还包括:

通过指令处理子单元,将上述执行数据添加至上述指令,形成带有执行数据的指令;

上述通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,包括:

通过上述指令处理器,将上述带有执行数据的指令以单指令多数据流的方式传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述将上述执行数据添加至上述指令,包括:

将上述执行数据添加至上述指令包括的预留字段。

在示出的一些实施例中,上述各计算内核包括译码器;上述各计算内核根据上述执行数据执行上述指令,包括:

上述计算内核响应于接收到上述带有执行数据的指令,通过上述译码器,对上述带有执行数据的指令进行解析,得到的上述带有执行数据的指令中包括的执行数据;

上述计算内核将上述执行数据存储至对应寄存器中,以在执行上述指令时,从上述寄存器获取上述执行数据,并根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令存储器与上述芯片对应的指令编译器连接;上述通过上述指令存储器获取指令,包括:

通过上述指令存储器,获取上述编译器编译的指令。

在示出的一些实施例中,上述芯片包括数据传输控制器,以及与上述数据传输控制器连接的数据传输存储器;

上述通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,包括:

通过上述指令处理器将上述指令以及上述执行数据发送至上述数据传输存储器;

通过上述数据传输控制器,从上述数据传输存储器读取上述指令以及上述执行数据,并发送至上述寄存器阵列中。

在示出的一些实施例中,上述各计算内核根据上述执行数据执行上述指令,包括:

上述各计算内核响应于上述指令指示的获取上述执行数据的步骤,获取对应寄存器存储的上述执行数据;

根据获取的上述执行数据执行上述指令指示的后续步骤。

在示出的一些实施例中,上述指令处理器包括标量处理器;上述指令存储器包括标量存储器。

在示出的一些实施例中,上述VLIW指令包括卷积运算指令;上述执行数据包括权重数据。

本申请还提出一种芯片,上述芯片可以包括数据传输器,指令处理器,以及与上述指令处理器连接的指令存储器;

其中,上述指令存储器,用于获取指令,以及存储于外部存储器的执行数据;其中,上述执行数据包括执行上述指令所需的数据;

上述数据传输器,用于将上述指令以及上述执行数据输入上述指令处理器;

上述指令处理器,用于将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,以使各计算内核根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令处理器用于:

通过上述指令处理器将上述指令以及上述执行数据分别传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述指令处理器用于:

将上述执行数据添加至上述指令,形成带有执行数据的指令;

通过上述指令处理器将上述带有执行数据的指令传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述指令处理器包括指令处理子单元;上述数据输入器用于:

将上述指令以及上述执行数据输入上述指令处理器中的指令处理子单元;

上述处理子单元,用于将上述执行数据添加至上述指令,形成带有执行数据的指令;

上述指令处理器用于:

通过上述指令处理器,将上述带有执行数据的指令以单指令多数据流的方式传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述各计算内核包括译码器;

上述各计算内核,用于响应于接收到上述带有执行数据的指令,通过上述译码器,对上述带有执行数据的指令进行解析,得到的上述带有执行数据的指令中包括的执行数据;将上述执行数据存储至对应寄存器中,以在执行上述指令时,从上述寄存器获取上述执行数据,并根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令存储器与上述芯片对应的指令编译器连接;

上述指令存储器,用于获取上述编译器编译的指令。

在示出的一些实施例中,上述芯片包括数据传输控制器,以及与上述数据传输控制器连接的数据传输存储器;

上述指令处理器,用于将上述指令以及上述执行数据发送至上述数据传输存储器;

上述数据传输存储器,用于存储上述指令以及上述执行数据;

上述数据传输控制器,用于从上述数据传输存储器读取上述指令以及上述执行数据,并发送至上述寄存器阵列中。

在示出的一些实施例中,上述计算内核,用于响应于上述指令指示的获取上述执行数据的步骤,获取对应寄存器存储的上述执行数据;

根据获取的上述执行数据执行上述指令指示的后续步骤。

在示出的一些实施例中,上述指令处理器包括标量处理器;上述指令存储器包括标量存储器。

在示出的一些实施例中,上述指令包括超长指令字VLIW指令。

在示出的一些实施例中,上述VLIW指令包括卷积运算指令;上述执行数据包括权重数据。

本申请还提出一种电子设备,该设备包括前述任一实施例示出的芯片。

在上述方案中,通过利用指令处理器,实现将存储在芯片对应的外部存储器中的执行数和指令高效快速地传输至上述芯片包括的寄存器阵列中,以使各计算内核可以根据上述执行数据执行上述指令,从而避免在芯片中专门为执行数据分配存储空间,一方面简化芯片设计难度;另一方面,减少对芯片存储空间的占用。

本申请还提出一种计算机可读存储介质,其上存储有计算机程序,上述程序被控制器执行时实现上述任一数据传输方法。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请示出的一种AI芯片结构示意图;

图2为本申请示出的一种数据传输方法的方法流程示意图;

图3为本申请示出的一种AI芯片结构示意图;

图4为本申请示出的一种为VLIW指令添加执行数据的示意图;

图5为本申请示出的一种数据传输流程图。

具体实施方式

下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。

目前,为了简化芯片硬件结构,通常使用超长指令字(Very Long InstructionWord,VLIW)指令(以下简称VLIW指令)实现对芯片的调度。通常芯片需要执行有依赖关系的多个任务,采用VLIW指令可以通过软件形式代替硬件形式实现对上述有依赖关系的多个任务的控制,从而简化芯片的硬件结构。

在本申请中以AI芯片执行VLIW指令为例,AI芯片在执行VLIW指令时,通常需要获取一些执行该指令所需的执行数据,然后才能继续执行该指令。在相关技术中常采用的做法是在AI芯片中为上述执行数据预先划分一块硬件存储空间,用于存储该执行数据。上述AI芯片包括的各计算内核在需要上述执行数据时,从上述硬件存储空间中获取上述执行数据,并继续执行VLIW指令。

但是如此有一些弊端,一方面,由于执行数据的容量并不确定,因此,上述硬件存储空间的大小也不确定,这对芯片设计者来讲并不友好;另一方面,需要占用AI芯片的容量,造成存储空间的占用。

有鉴于此,本申请提出一种数据传输方法。该方法通过利用指令处理器,实现将存储在芯片对应的外部存储器中的执行数和指令高效快速地传输至上述芯片包括的寄存器阵列中,以使各计算内核可以根据上述执行数据执行上述指令,从而避免在芯片中专门为执行数据分配存储空间,一方面简化芯片设计难度;另一方面,减少对芯片存储空间的占用。

该方法可以应用于任意类型的芯片,以AI芯片为例。请参见图1,图1为本申请示出的一种AI芯片结构示意图。需要说明的是,图1示出的结构仅为示意性的,图中并未示出芯片包括的所有器件。

如图1所示,上述AI芯片可以包括指令处理器11,以及与上述指令处理器连接的指令存储器12。其中,上述指令存储器12与上述AI芯片对应的外部存储器13连接。

上述指令处理器11,是指可以对AI芯片接收的VLIW指令进行处理(例如,指令重分配),将上述VLIW指令分为若干VLIW子指令并分别发送至AI芯片包括的各模块单元(例如,二维寄存器阵列中的计算内核,数据整形单元控制器,行缓冲单元控制器等),以使各模块单元依据接收到的VLIW子指令执行相应步骤。

在一些例子中,上述芯片中可以采用单指令多数据流(Single InstructionMultiple Data,SIMD)的方式进行数据传输。此时,上述指令处理器11可以是标量处理器。采用标量处理器以SIMD方式进行数据传输可以便于AI芯片执行上述VLIW指令。

上述指令存储器12,用于暂存上述指令处理器所需的数据。在一些例子中,上述指令存储器与外部存储器连接,可以从上述外部存储器中获取该外部存储器中存储的数据。需要说明的是,本申请不对指令存储器与外部存储器之间的连接方式进行特别限定。可以理解的是,当上述指令处理器11为标量处理器时,上述指令存储器12可以是为上述标量处理器分配标量存储器。

上述指令存储器12可以是静态随机存取存储器(Static Random-Access Memory,SRAM),随机存取存储器(Random Access Memory,RAM),动态随机存取存储器(DynamicRandom Access Memory,DRAM)等。本申请不限定存储器的类型。

上述外部存储器,可以是上述AI芯片可以访问到的存储器。该外部存储器可以存储各类型的数据。在本申请中,该外部存储器可以存储VLIW指令和/或执行该指令所需的执行数据。上述外部存储器可以响应与AI芯片的访问请求,向上述AI芯片传输数据。

上述外部存储器可以是诸如双倍速率同步动态随机存储器(Double Data Rate,Synchronous Dynamic Random Access Memory,DDR),同步动态随机存取存储器,(Synchronous Dynamic Random Access Memory,SDRAM)等存储器,在本申请中不限定上述外部存储器的类型。

请参见图2,图2为本申请示出的一种数据传输方法的方法流程示意图。

如图2所示,上述方法可以包括:

S202,通过上述指令存储器获取指令,以及存储于外部存储器的执行数据;其中,上述执行数据包括执行上述指令所需的数据。

本公开实施例中的指令可以包括VLIW指令。后面继续以VLIW指令为例进行说明,其他指令同理,不再赘述。

上述VLIW指令,可以是根据实际业务需求进行开发的指令。例如,当上述AI芯片执行卷积运算时,上述VLIW指令可以包括卷积运算指令。可以理解的是,上述VLIW指令可以包括输入特征图,输入权重数据,移位乘加运算,输出卷积运算结果等执行步骤。再例如,当上述AI芯片执行池化运算时,上述 VLIW指令可以包括池化运算指令。

在一些例子中,上述VLIW指令可以是由开发人员开发编译完毕,预先存储在上述外部存储器中的。此时,上述指令存储器可以响应于AI芯片中的主控制器(主控制器,相当于计算机的中央处理器,执行开发人员开发的指令,以控制AI芯片包括的各模块单元)发出的数据传输指令,从上述外部存储器中获取上述VLIW指令。

在一些例子中,上述指令存储器与上述AI芯片对应的指令编译器连接。上述VLIW指令需要经过上述编译器编译后才能供AI芯片执行。此时,可以通过上述指令存储器,接收上述编译器编译的超长指令字VLIW指令。

上述执行数据,可以是执行上述VLIW指令所需的数据。例如,当上述AI 芯片执行卷积运算时,上述执行数据可以是执行卷积运算所需的权重数据(卷积核数据)。

上述执行数据可以存储在上述外部存储器中。当上述AI芯片需要利用该执行数据进行相关处理时,可以从上述外部存储器中获取该执行数据,并采用本申请公开的数据传输方法将该数据传输至计算内核中进行计算。如此可以无需在AI芯片中为该执行数据专门分配存储空间,进而一方面简化AI芯片设计难度;另一方面,减少对AI芯片存储空间的占用。

在获取上述指令与上述执行数据后,可以执行S204,将上述指令以及上述执行数据输入上述指令处理器。

在一些例子中,上述指令处理器可以是标量处理器,上述指令存储器可以是标量存储器。AI芯片可以响应于开发人员开发的指令,将VLIW指令以及上述执行数据从上述标量存储器传输至上述标量处理器。

之后可以执行S206,通过上述指令处理器将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列,以使各计算内核根据上述执行数据执行上述指令。

在一些例子中,上述指令处理器可以是标量处理器。该标量处理器可以对接收到的VLIW指令进行处理,以SIMD的方式将VLIW指令发送至寄存器阵列中的各计算内核。

在一些例子中,上述AI芯片包括数据传输控制器,以及与上述数据传输控制器连接的数据传输存储器。

其中,上述数据传输存储器用于暂存需要发送至寄存器阵列的数据。

上述数据传输控制器用于将数据传入寄存器阵列中。

在执行S206时,可以通过上述指令处理器将上述指令以及上述执行数据发送至上述数据传输存储器。然后,通过上述数据传输控制器,从上述数据传输存储器读取上述指令以及上述执行数据,并传输至上述寄存器阵列。

在一些例子中,可以采用SIMD方式传输上述VLIW指令以及上述执行数据。此时可以分配多个数据传输存储器来暂存多个数据流,由此可以保证上述数据顺利写入上述寄存器阵列。

如此通过专门的硬件模块进行数据传输,可以保证数据传输的稳定性。

上述计算内核在接收到上述VLIW指令以及上述执行数据后,可以开始执行VLIM指令。

当上述VLIW指令指示需要获取上述执行数据时,上述计算内核可以响应于上述VLIW指令指示的获取上述执行数据的步骤,获取对应寄存器存储的上述执行数据。然后再根据获取的上述执行数据执行上述VLIW指令指示的后续步骤。

在一些例子中,上述VLIW指令以及上述执行数据可以写入各计算内核的寄存器中。上述计算内核可以包括与前述VLIW指令编码器对应的译码器。

上述计算内核可以从上述寄存器中读取VLIW指令,并通过译码器解析 VLIW指令执行相应步骤。当执行至需要获取上述执行数据的步骤时,上述计算内核可以从上述寄存器中获取上述执行数据,并根据上述执行数据执行上述VLIW指令指示的后续步骤。

由此即可在高效地完成VLIW指令和执行数据在上述芯片内部的传输。

在上述方案中,可以通过AI芯片搭载的指令存储器与指令处理器,将获取的VLIW指令,以及存储于上述外部存储器的执行数据传输至上述AI芯片包括的寄存器阵列中的各计算内核,以使上述各计算内核可以根据上述执行数据执行上述VLIW指令。因此,可以避免在AI芯片中专门为执行数据分配存储空间,一方面简化AI芯片设计难度;另一方面,减少对AI芯片存储空间的占用。

在一些例子中,在执行S206时,可以通过上述指令处理器将上述指令以及上述执行数据分别传输至上述芯片包括的寄存器阵列中。

在一些例子中,上述指令处理器可以将上述指令和上述执行数据分别发送至数据传输存储器,以由数据传输控制器根据业务需求从该存储器中读取上述指令和/或上述执行数据,并传输至上述寄存器阵列。由此,可以灵活的向寄存器阵列传输数据。

在一些例子中,在执行S206时,可以将上述执行数据添加至上述指令,形成带有执行数据的指令;然后通过上述指令处理器将上述带有执行数据的指令传输至上述芯片包括的寄存器阵列中。

在一些例子中,上述指令处理器包括指令处理子单元。上述指令处理子单元,可以对指令进行修改处理,例如,可以将上述执行数据添加至上述VLIW 指令。

请参见图3,图3为本申请示出的一种AI芯片结构示意图。需要说明的是,图3示出的结构仅为示意性的,图中并未示出芯片包括的所有器件。

如图3所示,上述指令处理器11可以包括指令处理子单元。

上述指令存储器可以将上述指令以及上述执行数据输入上述指令处理器中的指令处理子单元。

然后上述指令处理子单元可以将上述执行数据添加至上述指令,形成带有执行数据的指令。

在一些例子中,可以将上述执行数据添加至上述VLIW指令的开头或末尾,由此可以保证执行数据不对VLIW指令造成干扰。

在一些例子中,在设计指令格式时,可以包括预留字段。该预留字段用于为上述指令添加立即数(可以从指令中直接获取的数据)。需要说明的是,本申请不限定上述预留字段的位置。

请参见图4,图4为本申请示出的一种为VLIW指令添加执行数据的示意图。

如图4所示,在将上述执行数据添加至上述VLIW指令时,可以将上述执行数据添加至上述VLIW指令包括的预留字段。

由此,可以在保证执行数据不对VLIW指令造成干扰的情形下,便于计算内核获取上述执行数据,进而提高计算内核计算效率。

在形成上述带有执行数据的指令后,可以通过上述指令处理器,将上述带有执行数据的指令以单指令多数据流的方式传输至上述芯片包括的寄存器阵列中。

上述寄存器阵列中的计算内核可以响应于接收到上述带有执行数据的指令,通过译码器对上述带有执行数据的指令进行解析,得到的上述带有执行数据的指令中包括的执行数据。然后可以将上述执行数据存储至对应寄存器中,以在执行上述指令时,可以从上述寄存器中获取上述执行数据,并根据上述执行数据执行指令。

以下结合AI芯片进行卷积运算为例进行实施例说明。

请参见图5,图5为本申请示出的一种数据传输流程图。

如图5所示,AI芯片包括标量存储器,标量处理器,若干数据传输存储器,数据传输控制器,阵列控制,以及寄存器阵列。

其中,上述各器件之间具有图示的连接关系。上述标量处理器可以包括 VLIW指令处理子单元。上述寄存器阵列可以包括用于对寄存器阵列包括的各计算内核以及存储器RAM进行控制的阵列控制器。上述计算内核内可以包括寄存器(图5未示出)。

上述AI芯片与编译器和外部存储器连接。

其中,上述编译器用于对输入的VLIW指令进行编译。在本例中,上述VLIW 指令可以包括输入特征图,输入权重数据,移位乘加运算,输出卷积运算结果等执行步骤。上述VLIW指令包括预留字段。

上述外部存储器中存储了卷积运算所需的权重数据。

在图5中,上述编译器在完成VLIW指令编译后,可以将编译好的VLIW 指令发送至标量存储器。上述标量存储器可以响应于主控制器的控制从上述外部存储器中获取上述权重数据。

上述标量存储器可以将获取的权重数据和VLIW指令发送至上述VLIW指令处理子单元。

上述VLIW指令处理子单元可以将上述权重数据添加至上述VLIW指令预留的预留字段内。然后通过上述标量处理器可以通过SIMD方式,对添加权重数据后的VLIW指令进行指令重分配,将上述VLIW指令分为若干VLIW子指令并分别发送至各AI芯片包括的各模块单元(例如,寄存器阵列中的计算内核,数据整形单元控制器,行缓冲单元控制器等),以使各模块单元依据接收到的 VLIW子指令执行相应步骤。

其中,在向寄存器阵列发送VLIW子指令时,可以先将该VLIW子指令对应的多数据流分别存储至数据传输存储器中。然后再通过数据传输控制器,从上述数据传输存储器读取上述多数据流,并将上述多数据流发送至阵列控制器。

上述阵列控制器可以通过寄存器阵列中各计算内核对应的存储器RAM,完成将上述多数据流传输至各计算内核的寄存器中。

之后各计算内核可以从寄存器中获取VLIW子指令,并通过译码器对上述 VLIW子指令进行译码的译码结果执行:

输入待卷积的特征图数据;

从VLIW指令中获取上述权重数据;

对寄存器阵列进行移位、相加,相乘等操作完成卷积运算;

最后输出卷积运算结果。

可见,权重数据并没有一直存储在AI芯片中,而是在进行卷积运算时,才从外部存储器中读取,并通过本申请示出的数据传输方法输入寄存器阵列中的,因此,避免在AI芯片中专门为执行数据分配存储空间,一方面简化AI芯片设计难度;另一方面,减少对AI芯片存储空间的占用。

本申请还提出一种芯片。上述芯片包括数据传输器,指令处理器,以及与上述指令处理器连接的指令存储器。

其中,上述指令存储器,用于获取指令,以及存储于外部存储器的执行数据;其中,上述执行数据包括执行上述指令所需的数据;

上述数据传输器,用于将上述指令以及上述执行数据输入上述指令处理器;

上述指令处理器,用于将上述指令以及上述执行数据传输至上述芯片包括的寄存器阵列中,以使各计算内核根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令处理器用于:

通过上述指令处理器将上述指令以及上述执行数据分别传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述指令处理器用于:

将上述执行数据添加至上述指令,形成带有执行数据的指令;

通过上述指令处理器将上述带有执行数据的指令传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述指令处理器包括指令处理子单元;上述数据输入器用于:

将上述指令以及上述执行数据输入上述指令处理器中的指令处理子单元;

上述处理子单元,用于将上述执行数据添加至上述指令,形成带有执行数据的指令;

上述指令处理器用于:

通过上述指令处理器,将上述带有执行数据的指令以单指令多数据流的方式传输至上述芯片包括的寄存器阵列中。

在示出的一些实施例中,上述各计算内核包括译码器;

上述各计算内核,用于响应于接收到上述带有执行数据的指令,通过上述译码器,对上述带有执行数据的指令进行解析,得到的上述带有执行数据的指令中包括的执行数据;将上述执行数据存储至对应寄存器中,以在执行上述指令时,从上述寄存器获取上述执行数据,并根据上述执行数据执行上述指令。

在示出的一些实施例中,上述指令存储器与上述芯片对应的指令编译器连接;

上述指令存储器,用于获取上述编译器编译的指令。

在示出的一些实施例中,上述芯片包括数据传输控制器,以及与上述数据传输控制器连接的数据传输存储器;

上述指令处理器,用于将上述指令以及上述执行数据发送至上述数据传输存储器;

上述数据传输存储器,用于存储上述指令以及上述执行数据;

上述数据传输控制器,用于从上述数据传输存储器读取上述指令以及上述执行数据,并发送至上述寄存器阵列中。

在示出的一些实施例中,上述计算内核,用于响应于上述指令指示的获取上述执行数据的步骤,获取对应寄存器存储的上述执行数据;

根据获取的上述执行数据执行上述指令指示的后续步骤。

在示出的一些实施例中,上述指令处理器包括标量处理器;上述指令存储器包括标量存储器。

在示出的一些实施例中,上述指令包括超长指令字VLIW指令。

在示出的一些实施例中,上述VLIW指令包括卷积运算指令;上述执行数据包括权重数据。

本申请还提出一种电子设备,该设备包括前述任一实施例示出的芯片。

例如,该电子设备可以是手机等智能终端,或者也可以是具有摄像头并可以进行图像处理的其他设备。示例性的,当该电子设备对采集到的图像进行卷积处理时,可以采用本申请实施例的芯片来传输卷积任务所需的权重数据。

由于上述芯片可以高效地将权重数据输入计算内核进行卷积运算,具有更高的性能,因此,使用该芯片可以辅助提高卷积任务的处理效率,从而提升电子设备性能。

本申请还提出一种计算机可读存储介质,其上存储有计算机程序,上述程序被控制器执行时实现上述任一数据传输方法。

本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、0xCD_00-ROM、光学存储器等) 上实施的计算机程序产品的形式。

本申请中记载的“和/或”表示至少具有两者中的其中一个,例如,“A和/ 或B”包括三种方案:A、B、以及“A和B”。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。

本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。上述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。

适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、 EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及0xCD_00 ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本申请包含许多实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上上述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上上述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。

相关技术
  • 一种芯片内模块间数据传输方法、装置、设备及存储介质
  • 一种数据传输方法、芯片、设备和存储介质
技术分类

06120112811320