CN112631658A - 指令发送方法、芯片和电子设备 - Google Patents
指令发送方法、芯片和电子设备 Download PDFInfo
- Publication number
- CN112631658A CN112631658A CN202110044577.2A CN202110044577A CN112631658A CN 112631658 A CN112631658 A CN 112631658A CN 202110044577 A CN202110044577 A CN 202110044577A CN 112631658 A CN112631658 A CN 112631658A
- Authority
- CN
- China
- Prior art keywords
- instruction
- stored
- storage unit
- nth
- instructions
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
Abstract
本发明涉及通信领域,提供一种指令发送方法、芯片和电子设备。通过当得到待存储指令时,判断待存储指令与第一目标存储单元中的第N个已存储指令是否连续,N是第一目标存储单元当前存储的指令总数,若连续,则将待存储指令作为第N+1个已存储指令,存储到第一目标存储单元中,当第一目标存储单元中的全部已存储指令的指令长度值,等于预设指令长度值时,发送全部已存储指令,从而实现一次发送多个指令,提高了数据传输的效率。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种指令发送方法、芯片和电子设备。
背景技术
随着互联网时代的到来,数据的传输需求日益增加,如在视频播放、图像处理、AI技术中需要对大量的数据进行传输,总线上有很多长度很小的指令进行传输,多次发送指令会使各个通道中产生多次延迟,使得数据传输效率低。
发明内容
有鉴于此,本发明的目的在于提供一种指令发送方法、芯片和电子设备。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种指令发送方法,应用于芯片,所述芯片有多个存储单元,所述存储单元用于存储指令,所述指令用于读取或者写入数据,所述方法包括:
当获得待存储指令时,判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续;所述第一目标存储单元属于多个存储单元中的一个,所述N为所述第一目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第N+1个已存储指令存储至所述第一目标存储单元中;
当所述第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第一目标存储单元中的全部已存储指令。
在可选的实施方式中,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤,包括:
获取所述待存储指令的起始地址和所述第N个已存储指令的结束地址;
判断所述待存储指令的起始地址与所述第N个已存储指令的结束地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
在可选的实施方式中,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤,包括:
获取所述待存储指令的结束地址和所述第N个已存储指令的起始地址;
判断所述待存储指令的结束地址与所述第N个已存储指令的起始地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
在可选的实施方式中,所述发送所述第一目标存储单元中的全部已存储指令的步骤,包括:
根据发送顺序,发送所述第一目标存储单元中所述全部已存储指令;所述发送顺序表征多个存储单元之间的发送顺序。
在可选的实施方式中,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤之后,还包括:
若不连续,则判断所述待存储指令与第二目标存储单元中的第M个已存储指令是否连续;所述第二目标存储单元属于除所述第一目标存储单元以外多个存储单元中的一个;所述M为所述第二目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第M+1个已存储指令存储至所述第二目标存储单元中;
当所述第二目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第二目标存储单元中的全部已存储指令。
第二方面,本发明提供一种芯片,所述芯片有多个存储单元,所述存储单元用于存储指令,所述指令用于读取或者写入数据,所述芯片用于:
当获得待存储指令时,判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续;所述第一目标存储单元属于多个存储单元中的一个,所述N为所述第一目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第N+1个已存储指令存储至所述第一目标存储单元中;
当所述第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第一目标存储单元中的全部已存储指令。
在可选的实施方式中,所述芯片具体用于:
获取所述待存储指令的起始地址和所述第N个已存储指令的结束地址;
判断所述待存储指令的起始地址与所述第N个已存储指令的结束地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
在可选的实施方式中,所述芯片具体用于:
获取所述待存储指令的结束地址和所述第N个已存储指令的起始地址;
判断所述待存储指令的结束地址与所述第N个已存储指令的起始地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
在可选的实施方式中,所述芯片具体用于:
根据发送顺序,发送所述第一目标存储单元中所述全部已存储指令;所述发送顺序表征多个存储单元之间的发送顺序。
第三方面,本发明提供一种电子设备,包括如前述实施方式任意一种芯片。
本发明实施例提供的指令发送方法、芯片和电子设备。通过当得到待存储指令时,判断待存储指令与第一目标存储单元中的第N个已存储指令是否连续,N是第一目标存储单元当前存储的指令总数,若连续,则将待存储指令作为第N+1个已存储指令,存储到第一目标存储单元中,当第一目标存储单元中的全部已存储指令的指令长度值,等于预设指令长度值时,发送全部已存储指令,从而实现一次发送多个指令,提高了数据传输的效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的芯片示意图;
图2示出了本发明实施例提供的指令发送方法的一个示例图;
图3示出了本发明实施例提供的指令发送方法的一种流程示意图;
图4示出了本发明实施例提供的指令发送方法的又一种流程示意图;
图5示出了本发明实施例提供的指令发送方法的又一个示例图;
图6示出了本发明实施例提供的指令发送方法的又一种流程示意图;
图7示出了本发明实施例提供的指令发送方法的又一个示例图;
图8示出了本发明实施例提供的指令发送方法的又一种流程示意图;
图9示出了本发明实施例提供的指令发送方法的又一种流程示意图。
图标:100-芯片;110-总线;120-处理模块;130-存储模块;140-AI模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
请参照图1,是本发明实施例提供的芯片100的方框示意图。在本实施例中,芯片100包括:总线110、处理模块120、存储模块130、AI模块140。
其中,总线110,可以是将上述元件相互连接并在上述元件之间传递通信的电路,可以是AXI总线,AMBA总线等其他总线。
处理模块120可以是一种集成电路,具有信号处理能力。该处理模块120可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储模块130可以存储从处理模块120或其它元件(例如AI模块140)接收的命令或数据或者由处理模块120或其它元件产生的命令或数据。需要说明存储模块130包括本发明实施例中的用于存储指令的存储单元,如FIFO存储器;还包括其他用于存储数据等功能的存储单元,如DDR存储器。
AI模块140是应用于AI处理的集成电路,其包括控制单元、运算单元、存储单元等多种硬件组件。
对于图1所示的芯片,本实施例对于其中各个单元、模块的个数不予限定,可以是一个也可以是多个。
本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对芯片100的结构造成限定。例如,芯片100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
本发明实施例提供的方法基于上述芯片100,可以应用在AI技术进行图像处理的情况下。在对图像进行镜像、旋转和格式转换处理时,可将图像存储为RGB格式或者YUV格式,这些格式是将图像中的每个像素点分量为2~4个分量,如RGB格式可将图像分离为R分量、G分量、B分量,可以理解为是红绿蓝三个分量。YUV格式是将图像分离为Y分量即明亮度分量,UV分量即色度,也就是两个分量。图像存储在芯片中即为多个分量数据。
这些分量数据在芯片上的各个模块发生数据传输时,需要使用总线,本发明实施例中的使用的是AXI总线。AXI总线具有突发模式,即burst传输,这种传输方式是指在同一行中相邻的存储单元连续进行数据传输的方式。突发长度(Burst Lengths)是连续传输的周期数,可以简写为burst len。本发明实施例中的指令是基于这种burst传输方式的指令。本发明实施例中的指令包括写指令和读指令。写指令是指往总线中的地址写入数据。读指令是指总线中的地址读取数据。
需要说明的是,AXI总线上可以有5个通道:写地址通道,写数据通道,写响应通道,读地址通道,读数据通道。其中,数据通道用于传输数据,地址通道用于传输地址。
如图2所示,是本发明实施例提供的指令发送方法一种示例图。图像处理模块将写入或者读取分量数据的指令传输到存储模块,然后存储模块将指令发送到总线,总线将指令传输到AI模块,实现芯片中各个模块之间的数据传输。
其中,存储模块包括三个存储单元:第一存储单元,即存储单元A,第二存储单元,即存储单元B;第三存储单元,即存储单元C。存储单元A当前有三个已存储指令即指令A1、指令A2、指令A3;存储单元B当前有两个已存储指令,即指令B1、指令B2;存储单元C当前有一个已存储指令,即指令C1。
下面请参照图2和图3,对本发明实施例所提供的指令发送方法进行详细阐述,图3是本发明实施例所提供的指令发送方法的一种流程示意图。
步骤S202,当获得待存储指令,判断待存储指令与第一目标存储单元中的第N个已存储指令是否连续;
其中,待存储指令是指令X1;第一目标存储单元是第一存储单元,即存储单元A,当前有三个已存储指令,N为3;指令A3是存储单元A中的第N个已存储指令;也可以理解为指令A3是存储单元A中的最后一个已存储指令。
可选地,判断指令X1和指令A3是否连续,可以通过对指令进行标记,或者通过指令的地址等多种方式进行判断指令是否连续。如果连续,执行步骤S204;如果不连续,本发明实施例也提供了一种可能实现的方法,会在下面的步骤中进行说明。
步骤S204,若连续,则将待存储指令作为第N+1个已存储指令存储至第一目标存储单元中;
如果指令X1与指令A3连续,则将指令X1存储到存储单元A中,指令X1作为存储单元A的第4个已存储指令。
步骤S206,当第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送第一目标存储单元中的全部已存储指令;
需要说明的是,每个指令有指令长度值。
将指令X1存储到存储单元A之后,存储单元A中全部已存储指令的指令长度值,即指令A1、指令A2、指令A3和指令X1的指令长度值之和,当等于预设指令的长度值时,将存储单元A中的指令A1、指令A2、指令A3和指令X1发送到总线。
可选地,若不相等,则获取下一个待存储指令。直至相等时,发送存储单元A中的全部已存储指令。
通过上述步骤,当获得待存储指令时,判断待存储指令与第一目标存储单元中的第N个已存储指令是否连续,N是第一目标存储单元当前存储的指令总数,若连续,则将待存储指令作为第N+1个已存储指令,存储到第一目标存储单元中,当第一目标存储单元中的全部已存储指令的指令长度值,等于预设指令长度值时,发送全部已存储指令,从而实现一次发送多个指令,提高了数据传输的效率。
在实际应用中,图像处理模块传输的指令,不一定恰好与存储模块的第一个存储单元中,最后一个已存储指令连续,即会在上述步骤S202中出现指令不连续情况。进而,本发明实施例提供了一种可能实现的方法,请继续参照图2,并结合图4,在步骤S202之后,还可以进行以下步骤:
步骤S212,若不连续,判断待存储指令与第二目标存储单元中的第M个已存储指令是否连续;
其中,第二目标存储单元是存储模块的第二存储单元,即存储单元B,当前存储了两个指令,M为2;指令B2是存储单元B中的第M个指令;也可以理解为指令B2是存储单元B中的最后一个已存储指令。
如果指令X1与存储单元A中的指令A3不连续,则判断指令X1与存储单元B中的指令B2是否连续;如果连续,则执行步骤S214。
步骤S214,若连续,则将待存储指令作为第M+1个已存储指令存储至第二目标存储单元中;
如果指令X1与指令B2连续,则将指令X1存储到存储单元B中,作为存储单元B的第3个已存储指令。
步骤S216,当第二目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送第二目标存储单元中的全部已存储指令;
将指令X1存储到存储单元B之后,存储单元B中全部已存储指令的指令长度值,即指令B1、指令B2和指令X1的指令长度值之和,当等于预设指令的长度值时,将存储单元B中的指令B1、指令B2和指令X1发送到总线。
可选地,若不相等,则获取下一个待存储指令。直至相等时,发送存储单元B中的全部已存储指令。
需要说明的是,在步骤S212中,如果指令X1与指令B2不连续,则可以将指令X1与存储模块的第三个存储单元,即存储单元C中的指令C1进行判断是否连续。
可以理解为,上述步骤是将待存储指令与当前存储单元中最后一个已存储指令进行判断是否连续。若连续,则存储到该存储单元中;若不连续,则与存储模块的下一个存储单元中最后一个已存储指令进行判断,依次循环,将待存储指令存储到存储单元中。
在实际应用中,也可能会出现这种情况。此时待存储指令与某一个存储单元中的最后一个已存储指令连续,但是如果将待存储指令存储到该存储单元后,会使该存储单元中全部已存储指令的指令长度值超过,预设的指令长度值,这种情况,可以称为溢出。
本发明实施例提供了一种方法,即可以将这个待储存指令分为两个指令,然后将与该存储单元连续的指令存储到该存储单元中,将另一个指令与其他存储单元进行判断。
在实际应用中,还可能会出现这种情况。此时待存储指令与每个存储单元中最后一个已存储指令都不连续的情况。
本发明实施例提供了一种方法,即这个待存储指令可以等待,当有某个存储单元中的全部已存储指令都发送出去之后,再将这个待存储指令存储到这个空的存储单元中,可以理解的是,这时该存储单元中没有已存储指令,则可以将待存储指令直接存储到该存储单元中。
请结合图5,将对上述可能出现的情况,进行阐述。
在某一时刻,待储存指令是指令X52。存储单元A有两个已存储指令,即指令A13和指令A12;存储单元B有两个已存储指令,即指令B22和指令B23;存储单元C有两个已存储指令,即指令C7和指令C8。
其中,指令X52与存储单元A中的指令A13连续,但是指令A12、指令A13和指令X52的指令长度值之和大于预设指令长度值;则可以将指令X52分为指令X52-1和指令X52-2。
指令X52-1与指令A13连续,则将指令X52-1存储到存储单元A中,存储单元A中全部已存储指令的指令长度值等于预设指令长度值,发送指令A12、指令A13和指令X52-1。
指令X52-2与存储单元B中的指令B23不连续,与存储单元C中的指令C8也不连续。则需要等待,当存储单元A中的已存储指令都发送之后,存储单元A没有已存储指令了,则可以将指令X52-2存储到存储单元A中。
在实际应用中,由于有多个存储单元,有可能出现同一时刻,某几个存储单元都需要发送指令的情况,则需要对这几个存储单元进行发送顺序的排列,按照发送顺序进行发送。请参照图6,上述步骤S206还包括:
步骤S206A,当第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,根据发送顺序,发送第一目标存储单元中所述全部已存储指令;
下面将结合图7,对步骤S206A进行说明。
在某一时刻,存储单元A有两个已存储指令,即指令A25和指令A24;存储单元B有三个已存储指令,即指令B37、指令B38和指令B39;存储单元C有两个已存储指令,即指令C11和指令C12。
其中,存储单元A中的指令A24和指令A25的指令长度值之和等于预设长度值;存储单元B中的指令B37、指令B38和指令B39的指令长度值之和也等于预设长度值;存储单元C中的指令C11和指令C12的指令长度值之和不等于预设长度值。
此时,存储单元A和存储单元B都可以发送已存储指令,则需要对这两个存储单元的发送顺序进行排列。
可选地,可以通过比较这两个存储单元中第一个已存储指令,存储到各自存储单元的时间,得到发送顺序。存储单元A中的第一个已存储指令A24存储到存储单元A的时刻为t1;存储单元B中的第一个已存储指令B37存储到存储单元B的时刻为t2;t1早于t2,则先发送存储单元A中的指令A24和指令A25,然后再发送存储单元B中的指令B37、指令B38和指令B39。这样可以使先存储到存储单元的指令,先发送出去,避免指令等待很久之后才发送。
可选地,上述存储单元可以使用FIFO存储器(First Input First Output),这是一种具有先进先出机制的存储器,即先存入的指令先发送,后存入的指令后发送。
在实际应用中,图像处理的功能不同,传输指令的地址具有一定的特性,可以通过指令的地址判断指令是否连续。
在一段时间内传输的是同一种指令,即均是写指令或者均是读指令的情况下,可以将指令分为以下的四种类型。
需要说明的是,以下是以写指令为例,但不对其指令的类型构成限定,应当理解的是,写指令和读指令其基本原理是相同的。本发明实施例以每次传输128bit数据为1个指令长度,即burst len为1,所占空间是0x10。
(1)递增型:即第一个指令是起始地址为0x10、burst len为1的指令,第二个指令是起始地址为0x20、burst len为1的写指令,第三个指令是起始地址为0x30、burst len为1的写指令。
(2)递增交替型:即第一个指令是起始地址为0x20、burst len为1的写指令,第二个指令是起始地址为0x30、burst len为1的写指令,第三个指令是起始地址为0x10、burstlen为1的写指令,第四个指令是起始地址为0x40、burst len为1的写指令。
(3)递减型:即第一个指令是起始地址为0x30、burst len为1的写指令,第二个指令是起始地址为0x20、burst len为1的写指令,第三个指令是起始地址为0x10、burst len为1的写指令。
(4)递减交替型:即第一个指令是起始地址为0x40、burst len为1的写指令,第二个指令是起始地址为0x30、burst len为1的写指令,第三个指令是起始地址为0x50、burstlen为1的写指令,第四个指令是起始地址为0x20、burst len为1的写指令。
可选地,在对图像进行旋转处理时,指令可以为递增型和递增交替型。这两种类型的指令,多具有下一个指令的起始地址大于上一个指令的起始地址的特点。
可选地,在对图像进行镜像处理时,指令可以为递减型和递减交替型。这两种类型的指令,多具有下一个指令的起始地址小于上一个指令的起始地址的特点。
下面,请参照图8,将针对上述递增型和递增交替型这两种类型的指令发送的方法进行详细阐述。
步骤S202A-2,当获得待存储指令,获取待存储指令的起始地址和第N个已存储指令的结束地址;
步骤S202A-4,判断待存储指令的起始地址与第N个已存储指令的结束地址是否相同;
以上述的递增型为例,若待存储指令是上述递增型示例中的第三个指令,即起始地址为0x30、burst len为1的写指令;则待存储指令的起始地址是0x30;
第N个已存储指令是上述递增型示例中的第二个指令,即起始地址为0x20、burstlen为1的写指令;
第N个已存储指令的结束地址可以通过指令的起始地址和指令长度值计算得到,burst len为1,即指令长度值是1,传输128bit,所占空间是0x10,第N个已存储指令的结束地址是0x30,即0x20加0x10;
待存储指令的起始地址与第N个已存储指令的结束地址相同,均是0x30,则待存储指令与第N个已存储指令连续,执行步骤S204。
以上述的递增交替型为例,若待存储指令是上述递增交替型示例中的第三个指令,即起始地址为0x10、burst len为1的写指令;则待存储指令的起始地址是0x10;
第N个已存储指令是上述递增型示例中的第二个指令,即起始地址为0x30、burstlen为1的写指令;通过计算第N个已存储指令的结束地址0x40,即0x30加0x10;
待存储指令的起始地址与第N个已存储指令的结束地址不相同,则待存储指令与第N个已存储指令不连续,执行步骤S212。
可以理解的是,步骤S204~S206,以及步骤S212~S214,上述示例中已经对其基本原理及产生的技术效果进行过描述了,在此不再赘述,可参考上述的实施例中相应的内容。
下面,请参照图9,将针对上述递减型和递减交替型这两种类型的指令发送的方法进行详细阐述。
步骤S202B-2,当获得待存储指令,获取待存储指令的结束地址和第N个已存储指令的起始地址;
步骤S202B-4,判断待存储指令的结束地址与第N个已存储指令的起始地址是否相同;
以上述的递减型为例,若待存储指令是上述递减型示例中的第三个指令,即起始地址为0x10、burst len为1的写指令;则待存储指令的结束地址是0x20,即0x10加0x10;
第N个已存储指令是上述递增型示例中的第二个指令,即起始地址为0x20、burstlen为1的写指令;第N个已存储指令的起始地址是0x20;
待存储指令的结束地址与第N个已存储指令的起始地址相同,均是0x20,则待存储指令与第N个已存储指令连续,执行步骤S204。
以上述的递减交替型为例,若待存储指令是上述递增交替型示例中的第三个指令,起始地址为0x50、burst len为1的写指令;则待存储指令的结束地址是0x60,即0x50加0x10;
第N个已存储指令是上述递增型示例中的第二个指令,即起始地址为0x30、burstlen为1的写指令;通过计算第N个已存储指令的起始地址0x30;
待存储指令的起始地址与第N个已存储指令的结束地址不相同,则待存储指令与第N个已存储指令不连续,执行步骤S212。
可以理解的是,步骤S204~S206,以及步骤S212~S214,上述示例中已经对其基本原理及产生的技术效果进行过描述了,在此不再赘述,可参考上述的实施例中相应的内容。
本发明实施例还提供了一种芯片,该芯片可以执行上述步骤,以实现本发明实施例揭示的指令发送方法。
本发明还提供了一种电子设备,可以是智能手机、个人计算机、平板电脑、可穿戴设备、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)等,本发明实施例对此不作任何限制。电子设备包括上述芯片,可以实现上述实施例揭示的指令发送方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种指令发送方法,其特征在于,应用于芯片,所述芯片有多个存储单元,所述存储单元用于存储指令,所述指令用于读取或者写入数据,所述方法包括:
当获得待存储指令时,判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续;所述第一目标存储单元属于多个存储单元中的一个,所述N为所述第一目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第N+1个已存储指令存储至所述第一目标存储单元中;
当所述第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第一目标存储单元中的全部已存储指令。
2.根据权利要求1所述的方法,其特征在于,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤,包括:
获取所述待存储指令的起始地址和所述第N个已存储指令的结束地址;
判断所述待存储指令的起始地址与所述第N个已存储指令的结束地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
3.根据权利要求1所述的方法,其特征在于,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤,包括:
获取所述待存储指令的结束地址和所述第N个已存储指令的起始地址;
判断所述待存储指令的结束地址与所述第N个已存储指令的起始地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
4.根据权利要求1所述的方法,其特征在于,所述发送所述第一目标存储单元中的全部已存储指令的步骤,包括:
根据发送顺序,发送所述第一目标存储单元中所述全部已存储指令;所述发送顺序表征多个存储单元之间的发送顺序。
5.根据权利要求1所述的方法,其特征在于,所述判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续的步骤之后,还包括:
若不连续,则判断所述待存储指令与第二目标存储单元中的第M个已存储指令是否连续;所述第二目标存储单元属于除所述第一目标存储单元以外多个存储单元中的一个;所述M为所述第二目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第M+1个已存储指令存储至所述第二目标存储单元中;
当所述第二目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第二目标存储单元中的全部已存储指令。
6.一种芯片,其特征在于,所述芯片有多个存储单元,所述存储单元用于存储指令,所述指令用于读取或者写入数据,所述芯片用于:
当获得待存储指令时,判断所述待存储指令与第一目标存储单元中的第N个已存储指令是否连续;所述第一目标存储单元属于多个存储单元中的一个,所述N为所述第一目标存储单元当前存储的指令总数;
若连续,则将所述待存储指令作为第N+1个已存储指令存储至所述第一目标存储单元中;
当所述第一目标存储单元中的全部已存储指令的指令长度值等于预设指令长度值,则发送所述第一目标存储单元中的全部已存储指令。
7.根据权利要求6所述的芯片,其特征在于,所述芯片具体用于:
获取所述待存储指令的起始地址和所述第N个已存储指令的结束地址;
判断所述待存储指令的起始地址与所述第N个已存储指令的结束地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
8.根据权利要求6所述的芯片,其特征在于,所述芯片具体用于:
获取所述待存储指令的结束地址和所述第N个已存储指令的起始地址;
判断所述待存储指令的结束地址与所述第N个已存储指令的起始地址是否相同;
若相同,则所述待存储指令与所述第N个已存储指令连续;
若不相同,则所述待存储指令与所述第N个已存储指令不连续。
9.根据权利要求6所述的芯片,其特征在于,所述芯片具体用于:
根据发送顺序,发送所述第一目标存储单元中所述全部已存储指令;所述发送顺序表征多个存储单元之间的发送顺序。
10.一种电子设备,其特征在于,包括如权利要求6至9任意一种所述芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044577.2A CN112631658B (zh) | 2021-01-13 | 2021-01-13 | 指令发送方法、芯片和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044577.2A CN112631658B (zh) | 2021-01-13 | 2021-01-13 | 指令发送方法、芯片和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631658A true CN112631658A (zh) | 2021-04-09 |
CN112631658B CN112631658B (zh) | 2022-11-15 |
Family
ID=75294097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110044577.2A Active CN112631658B (zh) | 2021-01-13 | 2021-01-13 | 指令发送方法、芯片和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631658B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816566A (zh) * | 2022-04-08 | 2022-07-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令搬移方法、系统、设备以及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0457403A2 (en) * | 1990-05-18 | 1991-11-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache |
US20050125647A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Endianess compensation within a SIMD data processing system |
CN105527881A (zh) * | 2014-09-30 | 2016-04-27 | 上海安川电动机器有限公司 | 一种指令处理方法及装置 |
CN109086002A (zh) * | 2018-06-28 | 2018-12-25 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
WO2019228077A1 (zh) * | 2018-05-31 | 2019-12-05 | 腾讯科技(深圳)有限公司 | 实现数据传输的方法、装置、电子设备及计算机可读存储介质 |
CN110770699A (zh) * | 2018-08-22 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
WO2020034500A1 (zh) * | 2018-08-14 | 2020-02-20 | 珠海市一微半导体有限公司 | 一种基于二值化算法的加速控制系统、芯片及机器人 |
CN111930651A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令执行方法、装置、设备及可读存储介质 |
-
2021
- 2021-01-13 CN CN202110044577.2A patent/CN112631658B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0457403A2 (en) * | 1990-05-18 | 1991-11-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache, method for using said cache, method for compiling instructions for said cache and micro computer system using such a cache |
US20050125647A1 (en) * | 2003-12-09 | 2005-06-09 | Arm Limited | Endianess compensation within a SIMD data processing system |
CN105527881A (zh) * | 2014-09-30 | 2016-04-27 | 上海安川电动机器有限公司 | 一种指令处理方法及装置 |
WO2019228077A1 (zh) * | 2018-05-31 | 2019-12-05 | 腾讯科技(深圳)有限公司 | 实现数据传输的方法、装置、电子设备及计算机可读存储介质 |
CN109086002A (zh) * | 2018-06-28 | 2018-12-25 | 平安科技(深圳)有限公司 | 存储对象的空间管理方法、装置、计算机装置及存储介质 |
WO2020034500A1 (zh) * | 2018-08-14 | 2020-02-20 | 珠海市一微半导体有限公司 | 一种基于二值化算法的加速控制系统、芯片及机器人 |
CN110770699A (zh) * | 2018-08-22 | 2020-02-07 | 深圳市大疆创新科技有限公司 | 数据指令处理方法、存储芯片、存储系统和可移动平台 |
CN111930651A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令执行方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
KONSTANTINOS BABIONITAKIS: ""A real-time motion estimation FPGA architecture"", 《JOURNAL OF REAL-TIME IMAGE PROCESSING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816566A (zh) * | 2022-04-08 | 2022-07-29 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令搬移方法、系统、设备以及介质 |
CN114816566B (zh) * | 2022-04-08 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令搬移方法、系统、设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112631658B (zh) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4598363A (en) | Adaptive delayed polling of sensors | |
JP2005535956A (ja) | 色順次表示システムにおける共有メモリ・コントローラに関する色バースト待ち行列 | |
US20100325375A1 (en) | Data-access control device and data-access control method | |
CN112631658B (zh) | 指令发送方法、芯片和电子设备 | |
CN102110112A (zh) | 一种图像序列批处理的方法和装置 | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
US9030570B2 (en) | Parallel operation histogramming device and microcomputer | |
US7769965B2 (en) | Data processing with data transfer between memories | |
US5537624A (en) | Data repacking circuit having toggle buffer for transferring digital data from P1Q1 bus width to P2Q2 bus width | |
CN111258582B (zh) | 一种窗口渲染方法、装置、计算机设备及存储介质 | |
US6848042B1 (en) | Integrated circuit and method of outputting data from a FIFO | |
KR100542433B1 (ko) | 패킷 스케줄링 장치 및 패킷 스케줄링 방법 | |
CN113747063B (zh) | 一种视频传输的方法、装置、电子设备及可读存储介质 | |
WO2022027172A1 (zh) | 数据处理装置、方法和系统以及神经网络加速器 | |
US8194137B2 (en) | Image frame transmission method for data overrun control | |
US6215558B1 (en) | Data processing apparatus and method | |
CN111246215A (zh) | 一种视频格式转换的方法及终端 | |
CN112380154A (zh) | 数据传输方法和数据传输装置 | |
JP5546951B2 (ja) | 分散メディア処理装置及び方法及びプログラム | |
JP2005303787A (ja) | パケット生成装置 | |
CN117915476B (zh) | 一种信息集成系统处理方法及系统 | |
US11240178B2 (en) | Data transmission method and data transmission system | |
CN116665836B (zh) | 序列数据的编辑存储方法、读取播放方法和电子设备 | |
CN112506815B (zh) | 数据传输方法和数据传输装置 | |
EP4047472A1 (en) | Accumulation systems and methods |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |