CN117707619A - 指令的编码方式、运算单元、运算模块及运算方法 - Google Patents
指令的编码方式、运算单元、运算模块及运算方法 Download PDFInfo
- Publication number
- CN117707619A CN117707619A CN202311451040.3A CN202311451040A CN117707619A CN 117707619 A CN117707619 A CN 117707619A CN 202311451040 A CN202311451040 A CN 202311451040A CN 117707619 A CN117707619 A CN 117707619A
- Authority
- CN
- China
- Prior art keywords
- instruction
- bit
- unit
- module
- arithmetic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 56
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007614 genetic variation Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000036403 neuro physiology Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种指令的编码方式、运算单元、运算模块及运算方法,该指令包括指令块头和指令块体;指令块体包括至少一组操作码,操作码用于表示具体的运算操作;指令块头能够指示运算操作的运算类型和执行方式,执行方式包括重复执行和非重复执行;指令块头的编码方式为:依次排列的1比特的运算类型标识位、1比特的重复执行标识位、N比特的执行方式位,其中N为正整数;运算类型标识位用于指示运算操作是否为指定的运算类型;重复执行标识位用于指示对运算操作是否重复执行;当执行方式为重复执行时,操作码为一组,N比特的执行方式位用于指示对运算操作的重复执行次数;当执行方式为非重复执行时,N比特的执行方式位用于指示操作码的组数。
Description
技术领域
本发明涉及电子数字数据处理领域,具体涉及一种指令的编码方式、运算单元、运算模块及运算方法。
背景技术
自动机是对信号序列进行处理的数学模型,是给定符号输入,依据(可表达为一个表格的)转移条件“跳转”过一系列状态的一种机器。在自动控制领域内,是指离散数字系统的动态数学模型,一种逻辑结构,一种算法或一种符号串变换。在计算机科学中自动机用作计算机和计算过程的动态数学模型,用来研究计算机的体系结构、逻辑操作、程序设计乃至计算复杂性理论。在语言学中则把自动机作为语言识别器,用来研究各种形式语言。在神经生理学中把自动机定义为神经网络的动态模型,用来研究神经生理活动和思维规律,探索人脑的机制。在生物学中有人把自动机作为生命体的生长发育模型,研究新陈代谢和遗传变异。在数学中则用自动机定义可计算函数,研究各种算法。自动机逐个读取输入中的符号,直到被完全耗尽。一旦输入被耗尽,自动机被称为“停止”了。自动机主要由“状态”和状态之间的“状态迁移”组成。自动机“状态”的执行,还是从一个“状态”迁移到另一个“状态”,通常是由通用处理器(CPU)为基础的计算机系统(软件程序)实现的。自动机运行所能达成的性能就取决于处理器的运算部件,算术逻辑运算单元(ALU)的处理能力。
传统的处理器计算单元采用简单的标量或者向(矢)量计算架构,基本按照运算指令的要求从系统内存单元(多为DRAM)中读取待处理的操作数加载到寄存器,由运算电路(如算术逻辑单元ALU)进行运算得到结果,再将结果写回系统内存单元。而在人工智能等大数据计算的过程中,很多时候需要对大量数据进行类似多项式运算的累计运算,例如从一定数量的数据中选出最大值操作。在传统处理单元中,需要不断地访问单元外的存储器,读写数据进行比较运算,直到最后产生最大值。此过程中产生了大量的中间数据的存储系统存取操作。另一方面,对于要处理的数据以及所做操作是以指令的形式记录和表达的,也需要通过存储系统进行存取。所以由于巨量的系统内存访问,计算单元会受限于存储系统的性能,不能很好的满足像人工智能等这些日益复杂的算法需求,造成资源浪费,功耗损失以及性能的下降。这就是所谓“内存墙”导致的性能瓶颈。
因此,如何优化对存储系统的使用,从而减弱相应的性能瓶颈的影响,是目前需要解决的问题。
发明内容
本发明的目的是提出一种指令的编码方式、运算单元、运算模块及运算方法,可以优化对存储系统的使用,从而减弱相应的性能瓶颈的影响。
为了实现上述目的,本发明提供了一种指令的编码方式,所述指令应用于数字自动机状态实现的运算单元,所述指令包括指令块头和位于所述指令块头后的指令块体;所述指令块体包括至少一组操作码,所述操作码用于表示具体的运算操作;所述指令块头能够指示所述运算操作的运算类型和执行方式,所述执行方式包括重复执行和非重复执行;
所述指令块头的编码方式为:依次排列的1比特的运算类型标识位、1比特的重复执行标识位、N比特的执行方式位,其中N为正整数;
所述运算类型标识位用于指示所述运算操作是否为指定的运算类型;
所述重复执行标识位用于指示对所述运算操作是否重复执行;
当所述执行方式为重复执行时,所述操作码为一组,所述N比特的执行方式位用于指示对所述运算操作的重复执行次数;
当所述执行方式为非重复执行时,所述N比特的执行方式位用于指示所述操作码的组数。
可选方案中,所述运算类型包括算术运算、关系运算和逻辑运算;所述算术运算包括加操作、符号取反操作、乘操作、取倒数操作;所述关系运算包括:大于操作、小于操作、等于操作、不等操作;所述逻辑运算包括:与操作、或操作、非操作;每种所述运算类型下的所述操作具有唯一的操作码。
可选方案中,所述算术运算、所述关系运算和所述逻辑运算其中之一的运算操作的操作码为2位二进制编码,另外两者的运算操作的操作码为3位二进制编码或者4位二进制编码。
可选方案中,所述指定的运算类型为所述算术运算;所述算术运算的运算操作的操作码为2位二进制编码,所述关系运算和所述逻辑运算的运算操作的操作码为4位二进制编码。
可选方案中,所述N介于2-4之间。
本发明还提供了一种数字自动机状态实现的运算单元,包括:
存储模块,用于存储需要操作的指令及数据,所述指令采用上述的编码方式;
处理模块,用于对所述指令进行解析,基于解析的结果,在每个工作节拍对输入的数据进行运算处理;
暂存模块,用于暂存所述处理模块当前工作节拍的运算结果,并在下一个工作节拍将所述运算结果输入至所述处理模块参与新的运算,以及在所述指令全部执行完成后,将最终计算结果输出至所述存储模块。
可选方案中,所述处理模块包括解码与控制单元、不同运算类型的处理单元、第一多选一模块;
所述第一多选一模块的多个输入端连接于所述不同运算类型的处理单元的输出端,所述第一多选一模块的输出端连接于所述暂存模块的输入端;
所述解码与控制单元用于对所述指令进行解析,判断该指令所包含的的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,判断需要将暂存模块的数据参与下一工作节拍的运算时,将所述暂存模块的输出输入至所述处理单元。
可选方案中,所述不同运算类型的处理单元包括:算术处理单元、关系处理单元和逻辑处理单元;
对应的所述运算类型为算术运算、关系运算和逻辑运算。
可选方案中,所述处理模块包括指令输入端、两个数据输入端和数据输出端;
所述指令输入端用于输入所述指令;
所述数据输入端用于输入待参与运算的数据;
所述数据输出端用于输出运算结果;
所述处理模块的两个数据输入端分别通过一个第二多选一模块输入数据;
所述第二多选一模块的两个输入端分别连接于所述存储模块和所述暂存模块的输出端;
所述解码与控制单元用于控制所述第二多选一模块的有效输入端;
所述处理模块的输出与所述存储模块的一个输入端连接。
可选方案中,所述运算单元还包括传送模块,所述传送模块与所述存储模块通信连接,能够进行信息的双向传输,以及所述运算单元与外部的双向信息传输。
本发明还提供了一种运算方法,所需指令采用上述的指令的编码方式,所述方法包括:
对所述指令进行解析,判断该指令所包含的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,以及该指令是否为贯续运算;
基于解析结果进行运算,并在判定所述指令为贯续运算时,将当前工作节拍的运算结果直接作为下一工作节拍的输入,参与下一工作节拍的运算,直至该条指令的指令块体中指示的运算操作被全部执行完毕。
本发明还提供了一种运算模块,包括派发结构、派发结构输入单元、派发结构输出单元和多个上述的运算单元;
所述派发结构输入单元具有多个输入端口,每个所述输入端口连接于一个所述运算单元的输出,所述派发结构输入单元用于向所述派发结构输入处理后的数据;所述派发结构输出单元具有多个输出端口,每个所述输出端口连接于一个所述运算单元的输入,所述派发结构输出单元用于向所述运算单元提供所需的待处理的数据;多个所述运算单元并行工作。
本发明还提供了一种处理器,包括上述的数字自动机状态实现的运算单元或者上述的运算模块。
本发明的有益效果在于:
本发明针对贯续类的运算操作提出了一种新的指令编码格式以及相应的实现结构,采用指令块头+指令块体的方式,实现多次连续运算操作(即贯续运算,可以是一个重复操作或者多条不重复操作)。现有技术中,每次运算操作需要一个指令编码,这些指令编码中通常包含共同的重复信息,比如运算类型等。本发明将重复的共有信息放在指令块头,将原来多条指令的重复信息整合到一条指令编码中,省去了原来每条指令编码中的重复信息,节省了整个指令编码所占的比特数。这样就节省了存储和传输指令所需要的容量要求,从而减弱了计算系统中诸如“内存墙”等性能瓶颈因素的影响。另一方面,这种对指定操作贯续执行的指令编码和实现结构默认通过缓存模块传递数据,缩短了操作和操作之间的处理间隔,从而提升操作执行速度。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1为本发明一实施例中数字自动机状态实现的运算单元的结构示意图。
图2为本发明一实施例中运算模块的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面的说明和附图,本发明的优点和特征将更清楚,然而,需说明的是,本发明技术方案的构思可按照多种不同的形式实施,并不局限于在此阐述的特定实施例。附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
应当明白,当元件或层被称为“在...上”、“与...相邻”、“连接到”或“耦合到”其它元件或层时,其可以直接地在其它元件或层上、与之相邻、连接或耦合到其它元件或层,或者可以存在居间的元件或层。相反,当元件被称为“直接在...上”、“与...直接相邻”、“直接连接到”或“直接耦合到”其它元件或层时,则不存在居间的元件或层。应当明白,尽管可使用术语第一、第二、第三等描述各种元件、部件、区、层和/或部分,这些元件、部件、区、层和/或部分不应当被这些术语限制。这些术语仅仅用来区分一个元件、部件、区、层或部分与另一个元件、部件、区、层或部分。因此,在不脱离本发明教导之下,下面讨论的第一元件、部件、区、层或部分可表示为第二元件、部件、区、层或部分。
空间关系术语例如“在...下”、“在...下面”、“下面的”、“在...之下”、“在...之上”、“上面的”等,在这里可为了方便描述而被使用从而描述图中所示的一个元件或特征与其它元件或特征的关系。应当明白,除了图中所示的取向以外,空间关系术语意图还包括使用和操作中的器件的不同取向。例如,如果附图中的器件翻转,然后,描述为“在其它元件下面”或“在其之下”或“在其下”元件或特征将取向为在其它元件或特征“上”。因此,示例性术语“在...下面”和“在...下”可包括上和下两个取向。器件可以另外地取向(旋转90度或其它取向)并且在此使用的空间描述语相应地被解释。
在此使用的术语的目的仅在于描述具体实施例并且不作为本发明的限制。在此使用时,单数形式的“一”、“一个”和“所述/该”也意图包括复数形式,除非上下文清楚指出另外的方式。还应明白术语“组成”和/或“包括”,当在该说明书中使用时,确定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或更多其它的特征、整数、步骤、操作、元件、部件和/或组的存在或添加。在此使用时,术语“和/或”包括相关所列项目的任何及所有组合。
实施例1
本实施例提供了一种指令的编码方式,所述指令应用于数字自动机状态实现的运算单元,所述指令包括指令块头和位于所述指令块头后的指令块体;所述指令块体包括至少一组操作码,所述操作码用于表示具体的运算操作;所述指令块头能够指示所述运算操作的运算类型和执行方式,所述执行方式包括重复执行和非重复执行;
所述指令块头的编码方式为:依次排列的1比特的运算类型标识位、1比特的重复执行标识位、N比特的执行方式位,其中N为正整数;
所述运算类型标识位用于指示所述运算操作是否为指定的运算类型;
所述重复执行标识位用于指示对所述运算操作是否重复执行;
当所述执行方式为重复执行时,所述操作码为一组,所述N比特的执行方式位用于指示对所述运算操作的重复执行次数;
当所述执行方式为非重复执行时,所述N比特的执行方式位用于指示所述操作码的组数。
具体地,所述运算类型包括算术运算、关系运算和逻辑运算;所述算术运算包括加操作、符号取反操作、乘操作、取倒数操作;所述关系运算包括:大于操作、小于操作、等于操作、不等操作;所述逻辑运算包括:与操作、或操作、非操作;每种所述运算类型下的所述操作具有唯一的操作码。参照表1、表2和表3,本实施例中,所述算术运算的运算操作的操作码为2位二进制编码、所述关系运算和所述逻辑运算的运算操作的操作码为4位二进制编码,每种所述运算类型下的所述运算操作具有唯一的操作码。
表1
算术运算 | 操作码 |
加操作 | 00 |
符号取反操作 | 01 |
乘操作 | 10 |
取倒数操作 | 11 |
表2
关系运算 | 操作码 |
小于操作 | 0000 |
大于操作 | 0001 |
等于操作 | 0010 |
不等于操作 | 0011 |
表3
关系运算 | 操作码 |
非操作 | 0100 |
与操作 | 0101 |
或操作 | 0110 |
本实施例中,指定的运算类型为算术运算,所述运算类型标识位为1时,表示所述运算类型为算术运算,所述运算类型标识位为0时,表示所述运算类型为关系运算或逻辑运算或者表示该指令为控制类指令。在其他实施例中,算术运算的运算操作的操作码也可以为3位二进制编码或者4位二进制编码等,关系运算或逻辑运算的运算操作的操作码可以为3位二进制编码或者2位二进制编码等。
本实施例中,算术运算的运算操作的操作码为2位二进制编码更适用于算术运算比较多的情况。关系运算和逻辑运算的运算操作的操作码为4位二进制编码,目的是为了留出扩展的余地,增加指令集的完备性。扩展包括输入输出、控制类指令如:读、写内存、跳转等其他控制指令。本实施例的算术运算、关系运算和逻辑运算均属于运算类指令。解码与控制单元控制是否从暂存模块获取数据输入至处理模块,在执行贯续操作指令块体的时候,默认是从暂存模块获取数据输入至处理模块,否则不从暂存模块获取数据,而是从存储模块获取数据。
本实施例的N取值为4,也就意味着,当运算操作需要重复执行时,最多的重复次数为15次。当运算操作不需要重复执行时,操作码的组数最多为15个。在其他实施例中,N也可以取2或3。本实施例中N取值为4,综合考虑了指令块头所占的总比特位数、后续操作码的组数、运算操作的重复执行次数在整个计算过程中进行综合考量的结果,可以知晓,如果需要重复执行次数较多,可以增大N的取值。因此N的合适取值依赖于整个运算需要实现的功能。
如果要完成(a5+bc)|d这样的一系列运算,参照表4,所需要的指令如下,其中前六位为指令块头,后面为指令块体。
表4
对于指令11010110,比特数为8,该指令完成a5运算,即完成5次乘法,操作次数为5。而传统运算单元一条指令只能执行一次操作,如果实现5次乘法,需要5条指令,假设一条指令的长度为8比特,则实现5次乘法操作需要5*8=40比特。
对于指令1000101000,比特数为10,该指令先完成b乘c,再完成加a5,操作次数为2次(1次乘,1次加),也就是说完成2次操作需要10比特,传统运算完成两次操作需要2*8=16比特。
可见,本实施例可以大幅度节省贯续运算所需要的指令的比特数,尤其适用于需要对运算操作重复执行的情况。
如果把指令密度定义为每比特可以表示的操作次数,即操作次数/比特数。可以看到,本实施例上述两条指令的密度在贯续操作的时候是0.625(5/8)和0.2(2/10)。而传统运算单元指令编码长度为8比特以上,指令密度是0.125(1/8)以下。所以本发明提出的指令的编码方式相比传统编码方式,具有指令密度的优势,降低了为获得给定操作指令所需要读取的比特数,进而提高了访问存储系统的效率。
实施例2
参照图1,本实施例提供了一种数字自动机状态实现的运算单元,包括:
存储模块M,用于存储需要操作的指令及数据,所述指令采用实施例1所述的编码方式;
处理模块,用于对所述指令进行解析,基于解析的结果,在每个工作(时钟)节拍对输入的数据进行运算处理;
暂存模块,用于暂存所述处理模块当前工作节拍的运算结果,并在下一个工作节拍将所述运算结果输入至所述处理模块参与新的运算,以及在所述指令全部执行完成后,将最终计算结果输出至所述存储模块。
具体地,本实施例中,所述处理模块包括解码与控制单元、不同运算类型的处理单元、第一多选一模块;所述第一多选一模块的多个输入端连接于所述不同运算类型的处理单元的输出端,所述第一多选一模块的输出端连接于所述暂存模块的输入端;所述解码与控制单元用于对所述指令进行解析,判断该指令所包含的的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,判断需要将暂存模块的数据参与下一工作节拍的运算时,将所述暂存模块的输出输入至所述处理单元。
本实施例中,所述处理模块包括指令输入端、两个数据输入端和数据输出端;所述指令输入端用于输入所述指令;所述数据输入端用于输入待参与运算的数据;所述数据输出端用于输出运算结果;所述处理模块的两个数据输入端分别通过一个第二多选一模块(该第二多选一模块可以是二选一模块)输入数据;所述第二多选一模块的两个输入端分别连接于所述存储模块和所述暂存模块的输出端;所述解码与控制单元用于控制所述第二多选一模块的有效输入端以及控制处理单元进行相应的运算操作;所述处理模块的输出与所述存储模块的一个输入端连接。
本实施例中,所述不同运算类型的处理单元包括:算术处理单元、关系处理单元和逻辑处理单元;对应的所述运算类型为算术运算、关系运算和逻辑运算。
本实施例中,所述运算单元还包括传送模块T,所述传送模块T与所述存储模块M通信连接,能够进行信息的双向传输,以及所述运算单元与外部的双向信息传输。存储模块M中的指令通过传送模块T传入存储模块M中,计算所需的数据通过传送模块T输入至存储模块M,最终的计算结果通过传送模块T传给外部。
本实施例中,暂存模块和处理模块共同构成“状态”执行者P(Performer),是规定行为的实施和执行者,“状态”执行者P通过执行存储在“状态”存储模块M中的相应操作指令来达成相应“状态”行为的实施。当一个“状态”完成后迁移到新的“状态”时,传送模块T为“状态”迁移提供信息传送功能,即“状态”下所执行的指令编码和处理数据由传送模块T分别采用不同方式传送到达“状态”执行者P。
实施例3
参照图2,本实施例提供了一种运算模块,包括派发结构、派发结构输入单元、派发结构输出单元和多个实施例2所述的运算单元;
所述派发结构输入单元具有多个输入端口,每个所述输入端口连接于一个所述运算单元的输出,所述派发结构输入单元用于向所述派发结构输入处理后的数据;所述派发结构输出单元具有多个输出端口,每个所述输出端口连接于一个所述运算单元的输入,所述派发结构输出单元用于向所述运算单元提供所需的待处理的数据;多个所述运算单元并行工作。
实施例4
本实施例提供了一种运算方法,所需指令采用实施例1所述的指令的编码方式,所述方法包括:
对所述指令进行解析,判断该指令所包含的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,以及该指令是否为贯续运算;
基于解析结果进行运算,并在判定所述指令为贯续运算时,将当前工作节拍的运算结果直接作为下一工作节拍的输入,参与下一工作节拍的运算,直至该条指令的指令块体中指示的运算操作被全部执行完毕。
本实施例中“将当前工作节拍的运算结果直接作为下一工作节拍的输入”意思是当前工作节拍的运算结果不需要输出至运算单元的外部,不需要访问运算单元外部的存储器。因此可以节省中间数据的存取操作,以及使运算不受限于存储系统的性能。
如何判断该指令所包含的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数参照实施例1。
该指令为贯续运算的判断方法为:当重复执行标识位为1时,表示运算操作为重复执行,则意味着该指令为贯续运算。当重复执行标识位为0,后续操作码的组数为2个及以上时,则意味着该指令为贯续运算,当重复执行标识位为0,后续操作码的组数为1个,则意味着该指令不是贯续运算。
本实施例的运算方法可以采用实施例2所述的运算单元进行运算。当前工作节拍的运算结果存储在暂存模块中。
实施例5
本实施例提供了一种处理器,包括实施例2所述数字自动机状态实现的运算单元或者包括实施例3所述的运算模块。本实施例的处理器可以为计算机的处理器,也可以是其他低端控制系统的处理器。
自动机的“状态”可以由一个或多个运算单元以及系统内存(如DRAM)单元实现。自动机待要执行的各个“状态”由操作指令编码和相应的操作数块联合描述,并且由系统派发结构根据操作数所在系统内存地址的,按照就近原则通过传送模块T把操作指令编码和操作数块提前加载存入与该系统绑定的运算单元的存储模块M。然后启动这个运算单元的“状态”执行者P执行这些预先存入存储模块M的“状态”操作来实现这个“状态”执行。
本发明针对贯续类的运算操作提出了一种新的指令编码格式以及相应的实现结构,采用指令块头+指令块体的方式,实现多次连续运算操作(即贯续运算,可以是一个重复操作或者多条不重复操作)。现有技术中,每次运算操作需要一个指令编码,这些指令编码中通常包含共同的重复信息,比如运算类型等。本发明将重复的共有信息放在指令块头,将原来多条指令的重复信息整合到一条指令编码中,省去了原来每条指令编码中的重复信息,节省了整个指令编码所占的比特数。这样就节省了存储和传输指令所需要的容量要求,从而减弱了计算系统中诸如“内存墙”等性能瓶颈因素的影响。另一方面,这种对指定操作贯续执行的指令编码和实现结构,默认通过缓存模块传递数据,缩短了操作和操作之间的处理间隔,从而提升操作执行速度。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (13)
1.一种指令的编码方式,所述指令应用于数字自动机状态实现的运算单元,其特征在于,所述指令包括指令块头和位于所述指令块头后的指令块体;所述指令块体包括至少一组操作码,所述操作码用于表示具体的运算操作;所述指令块头能够指示所述运算操作的运算类型和执行方式,所述执行方式包括重复执行和非重复执行;
所述指令块头的编码方式为:依次排列的1比特的运算类型标识位、1比特的重复执行标识位、N比特的执行方式位,其中N为正整数;
所述运算类型标识位用于指示所述运算操作是否为指定的运算类型;
所述重复执行标识位用于指示对所述运算操作是否重复执行;
当所述执行方式为重复执行时,所述操作码为一组,所述N比特的执行方式位用于指示对所述运算操作的重复执行次数;
当所述执行方式为非重复执行时,所述N比特的执行方式位用于指示所述操作码的组数。
2.如权利要求1所述的指令的编码方式,其特征在于,所述运算类型包括算术运算、关系运算和逻辑运算;所述算术运算包括加操作、符号取反操作、乘操作、取倒数操作;所述关系运算包括:大于操作、小于操作、等于操作、不等操作;所述逻辑运算包括:与操作、或操作、非操作;每种所述运算类型下的所述运算操作具有唯一的操作码。
3.如权利要求2所述的指令的编码方式,其特征在于,所述算术运算、所述关系运算和所述逻辑运算其中之一的运算操作的操作码为2位二进制编码,另外两者的运算操作的操作码为3位二进制编码或者4位二进制编码。
4.如权利要求2所述的指令的编码方式,其特征在于,所述指定的运算类型为所述算术运算;所述算术运算的运算操作的操作码为2位二进制编码,所述关系运算和所述逻辑运算的运算操作的操作码为4位二进制编码。
5.如权利要求1所述的指令的编码方式,其特征在于,所述N介于2-4之间。
6.一种数字自动机状态实现的运算单元,其特征在于,包括:
存储模块,用于存储需要操作的指令及数据,所述指令采用权利要求1-5任一项所述的编码方式;
处理模块,用于对所述指令进行解析,基于解析的结果,在每个工作节拍对输入的数据进行运算处理;
暂存模块,用于暂存所述处理模块当前工作节拍的运算结果,并在下一个工作节拍将所述运算结果输入至所述处理模块参与新的运算,以及在所述指令全部执行完成后,将最终计算结果输出至所述存储模块。
7.如权利要求6所述的数字自动机状态实现的运算单元,其特征在于,
所述处理模块包括解码与控制单元、不同运算类型的处理单元、第一多选一模块;
所述第一多选一模块的多个输入端连接于所述不同运算类型的处理单元的输出端,所述第一多选一模块的输出端连接于所述暂存模块的输入端;
所述解码与控制单元用于对所述指令进行解析,判断该指令所包含的的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,判断需要将暂存模块的数据参与下一工作节拍的运算时,将所述暂存模块的输出输入至所述处理单元。
8.如权利要求7所述的数字自动机状态实现的运算单元,其特征在于,所述不同运算类型的处理单元包括:算术处理单元、关系处理单元和逻辑处理单元;
对应的所述运算类型为算术运算、关系运算和逻辑运算。
9.如权利要求7所述的数字自动机状态实现的运算单元,其特征在于,所述处理模块包括指令输入端、两个数据输入端和数据输出端;
所述指令输入端用于输入所述指令;
所述数据输入端用于输入待参与运算的数据;
所述数据输出端用于输出运算结果;
所述处理模块的两个数据输入端分别通过一个第二多选一模块输入数据;
所述第二多选一模块的两个输入端分别连接于所述存储模块和所述暂存模块的输出端;
所述解码与控制单元用于控制所述第二多选一模块的有效输入端;
所述处理模块的输出与所述存储模块的一个输入端连接。
10.如权利要求6所述的数字自动机状态实现的运算单元,其特征在于,所述运算单元还包括传送模块,所述传送模块与所述存储模块通信连接,能够进行信息的双向传输,以及所述运算单元与外部的双向信息传输。
11.一种运算方法,其特征在于,所需指令采用权利要求1-5任一项所述的指令的编码方式,所述方法包括:
对所述指令进行解析,判断该指令所包含的运算类型、执行方式、操作码的组数或者运算操作的重复执行次数,以及该指令是否为贯续运算;
基于解析结果进行运算,并在判定所述指令为贯续运算时,将当前工作节拍的运算结果直接作为下一工作节拍的输入,参与下一工作节拍的运算,直至该条指令的指令块体中指示的运算操作被全部执行完毕。
12.一种运算模块,其特征在于,包括派发结构、派发结构输入单元、派发结构输出单元和多个权利要求6-10所述的运算单元;
所述派发结构输入单元具有多个输入端口,每个所述输入端口连接于一个所述运算单元的输出,所述派发结构输入单元用于向所述派发结构输入处理后的数据;所述派发结构输出单元具有多个输出端口,每个所述输出端口连接于一个所述运算单元的输入,所述派发结构输出单元用于向所述运算单元提供所需的待处理的数据;多个所述运算单元并行工作。
13.一种处理器,其特征在于,包括权利要求6-10任一项所述数字自动机状态实现的运算单元或者权利要求12所述的运算模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451040.3A CN117707619A (zh) | 2023-11-02 | 2023-11-02 | 指令的编码方式、运算单元、运算模块及运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451040.3A CN117707619A (zh) | 2023-11-02 | 2023-11-02 | 指令的编码方式、运算单元、运算模块及运算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117707619A true CN117707619A (zh) | 2024-03-15 |
Family
ID=90154086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311451040.3A Pending CN117707619A (zh) | 2023-11-02 | 2023-11-02 | 指令的编码方式、运算单元、运算模块及运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117707619A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107810478A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 具有连续块的并行执行的基于块的架构 |
CN108027770A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 用于数据流isa的密集读取编码 |
WO2023142502A1 (zh) * | 2022-01-29 | 2023-08-03 | 上海商汤智能科技有限公司 | 循环指令处理方法、装置、芯片、电子设备及存储介质 |
-
2023
- 2023-11-02 CN CN202311451040.3A patent/CN117707619A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107810478A (zh) * | 2015-06-26 | 2018-03-16 | 微软技术许可有限责任公司 | 具有连续块的并行执行的基于块的架构 |
CN108027770A (zh) * | 2015-09-19 | 2018-05-11 | 微软技术许可有限责任公司 | 用于数据流isa的密集读取编码 |
WO2023142502A1 (zh) * | 2022-01-29 | 2023-08-03 | 上海商汤智能科技有限公司 | 循环指令处理方法、装置、芯片、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608715B (zh) | 用于执行人工神经网络正向运算的装置及方法 | |
KR101202445B1 (ko) | 프로세서 | |
US20220012598A1 (en) | Methods and apparatus for matrix and vector storage and operations | |
US9280329B2 (en) | Methods and systems for detection in a state machine | |
US10997116B2 (en) | Tensor-based hardware accelerator including a scalar-processing unit | |
US10254976B2 (en) | Methods and systems for using state vector data in a state machine engine | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN111630502A (zh) | 用于神经网络处理器的统一存储器组织 | |
JPH05508952A (ja) | 算術処理、論理処理及び関連する処理を実行する方法及び数値演算装置 | |
TW201805835A (zh) | 一種能支援不同位元寬運算資料的運算單元、方法及裝置 | |
CN113010213B (zh) | 基于阻变忆阻器的精简指令集存算一体神经网络协处理器 | |
US4792894A (en) | Arithmetic computation modifier based upon data dependent operations for SIMD architectures | |
CN111045728A (zh) | 一种计算装置及相关产品 | |
CN112348182B (zh) | 一种神经网络maxout层计算装置 | |
CN117707619A (zh) | 指令的编码方式、运算单元、运算模块及运算方法 | |
CN113222160A (zh) | 一种量子态的转换方法及装置 | |
CN113705794B (zh) | 一种基于动态激活位稀疏的神经网络加速器设计方法 | |
Kawanami et al. | Gpu accelerated computation of the longest common subsequence | |
CN114117896A (zh) | 面向超长simd管线的二值规约优化实现方法及系统 | |
CN112232499A (zh) | 卷积神经网络加速器 | |
CN112257843B (zh) | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 | |
Lescrenier et al. | Large-scale unconstrained optimization on the FPS 164 and Cray X-MP vector processors | |
US20220051095A1 (en) | Machine Learning Computer | |
US20230222315A1 (en) | Systems and methods for energy-efficient data processing | |
CN116843006A (zh) | 点积计算硬件装置、方法、芯片及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |