CN116185499B - 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 - Google Patents
寄存器数据传输方法、寄存器缓存模块、智能设备和介质 Download PDFInfo
- Publication number
- CN116185499B CN116185499B CN202310471711.6A CN202310471711A CN116185499B CN 116185499 B CN116185499 B CN 116185499B CN 202310471711 A CN202310471711 A CN 202310471711A CN 116185499 B CN116185499 B CN 116185499B
- Authority
- CN
- China
- Prior art keywords
- register
- module
- control information
- chip
- instruction
- 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.)
- Active
Links
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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了寄存器数据传输方法、寄存器缓存模块、智能设备和介质。该方法应用于芯片,芯片包括寄存器缓存模块和寄存器模块,寄存器缓存模块一端连接片上总线,另一端与寄存器模块一对一直连,寄存器模块包括多个寄存器,该方法包括:通过片上总线获取控制器发送的至少一条寄存器控制指令,提取每条寄存器控制指令中的控制信息,并将缓存控制信息;获取控制器发送的发送指令,获取控制信息中与发送指令对应的至少一条目标控制信息,根据发送指令将至少一条目标控制信息均发送至寄存器模块中对应的寄存器,从而使得寄存器模块中与目标控制信息对应的寄存器根据目标控制信息完成对应的操作。本发明能够有效提升数据传输效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及寄存器数据传输方法、寄存器缓存模块、智能设备和介质。
背景技术
芯片内部会有多个寄存器,这些寄存器一般集中在一个寄存器模块中,在寄存器模块中每个寄存器有自己的地址,所有寄存器以寄存器模块的一个统一接口作为读出或写入口。
通常一次寄存器接入操作只会读或写一个寄存器,如果寄存器数量多,对应就要发起多次接入操作,而每次接入操作都会消耗一定时间,且每次接入操作都要经过片上总线,如果存在需要对多个寄存器进行接入操作,所需要的时间较长,且接入操作的信息传输可能被片上总线上的其它功能模块的信息传输中止或打断,导致所需的时间进一步延长。
发明内容
基于此,有必要针对上述问题,提出了寄存器数据传输方法、寄存器缓存模块、智能设备和介质。
一种寄存器数据传输方法,应用于寄存器缓存模块,所述寄存器缓存模块中包括预设缓存器,所述寄存器缓存模块一端连接片上总线,另一端与寄存器模块一对一直连,所述寄存器模块包括多个寄存器和接口模块,所述寄存器缓存模块的另一端连接所述接口模块;
所述寄存器数据传输方法包括如下步骤:
通过所述片上总线获取控制器发送的寄存器控制指令,提取所述寄存器控制指令中的控制信息,将所述控制信息缓存于预设缓存器中;
获取发送指令,获取所述控制信息中与所述发送指令对应的目标控制信息,将所述目标控制信息逐条发送至所述寄存器模块,从而使得所述寄存器模块根据所述目标控制信息完成对应的操作。
一种寄存器缓存模块,用于实现如上所述的方法,包括:预设缓存器,连接所述预设缓存器的第一接口模块和第二接口模块,所述寄存器缓存模块设置于芯片中,所述芯片还包括片上总线和寄存器模块,所述寄存器模块中包括多个寄存器;
所述第一接口模块用于接收控制器通过所述片上总线发送的至少一条寄存器控制指令,并提取每条所述寄存器控制指令中的控制信息,根据所述控制信息生成控制数据,将所述控制数据缓存于预设缓存器中;
所述第一接口模块还用于接收所述控制器发送的发送指令,所述第二接口模块用于根据所述发送指令将至少一条所述控制信息均发送至所述寄存器模块对应的寄存器,从而使得所述寄存器模块中对应的寄存器根据所述控制信息完成对应的操作。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上所述的步骤。
一种智能设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述的步骤。
采用本发明实施例,具有如下有益效果:
提前将寄存器控制指令发送至寄存器缓存模块,利用预设缓存器的既能存储数据又能输出数据的特性,先对寄存器控制指令中的控制信息进行缓存。再根据发送指令输出控制信息至寄存器模块,由于寄存器缓存模块和寄存器模块之间是一对一直连,不存在其他模块传输数据的干扰,因此传输会很快完成,传输效率得到了有效提升,此外,由于寄存器缓存模块与寄存器模块直连,不需要发起多次接入操作,在存在多条控制信息需要发送时,能够将这些控制信息均发送至寄存器模块对应的寄存器,进一步节约了传输时间,提升了传输效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是本发明提供的寄存器数据传输方法的一实施例的流程示意图;
图2是本发明提供的寄存器数据传输方法的应用场景示意图;
图3是本发明提供的人工智能计算中配置寄存器时的时序示意图;
图4是本发明提供的人工智能计算中读取寄存器信息时的时序示意图;
图5是本发明提供的智能设备的一实施例的结构示意图;
图6是本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明提供的寄存器数据传输方法的一实施例的流程示意图。请结合参阅图2,图2是本发明提供的寄存器数据传输方法的应用场景示意图。在芯片的片上总线10和寄存器模块20之间设置有寄存器缓存模块30,数据可以随时存入寄存器缓存模块30中并随时可以从寄存器缓存模块30中输出。寄存器缓存模块30一端连接片上总线10,另一端与寄存器模块20一对一直连。寄存器模块20内设置有多个寄存器21,多个寄存器21通过一个接口模块22与寄存器模块20外部进行通信,寄存器缓存模块30的另一端连接接口模块22。芯片内还包括业务处理模块40,多个寄存器21连接业务处理模块40,控制业务处理模块40的功能。片上总线10连接控制器(HOST IP)。控制器可以是芯片内部的CPU(CentralProcessing Unit,中央处理器),也可以是芯片外部的控制器,用于控制芯片。控制器下发配置或者读取寄存器21操作的指令,该指令通过片上总线10传输至寄存器缓存模块30,由寄存器缓存模块30缓存后发送或者直接发送至寄存器模块20,寄存器模块20的接口模块22进行接口逻辑转换,从而将接收的控制信息发送至对应的寄存器21,从而寄存器21能够根据该指令执行具体的读操作或者写操作,从而完成对寄存器21的配置或者是对寄存器21的状态信息的读取。
本发明提供的寄存器数据传输方法应用于图2所示的应用场景,由寄存器缓存模块20实现,包括以下步骤:
S101:通过片上总线获取控制器发送的寄存器控制指令,提取寄存器控制指令中的控制信息,并缓存控制信息。
在一个具体的实施场景中,当控制器需要对寄存器模块中的至少一个寄存器进行配置和/或读取至少一个寄存器的状态信息时,则生成并发出对应的寄存器控制指令。当控制器需要对寄存器进行配置时,发出写操作的控制指令,当控制器需要对获取寄存器的状态信息时,发出读操作的控制指令。每条控制指令对应控制器对一个寄存器发起的一个操作。当控制器需要对至少一个寄存器进行至少一个操作时,将至少一条控制指令逐条发出。寄存器缓存模块通过片上总线获取至少一条寄存器控制指令,对每条寄存器控制指令进行分析,提取每条寄存器控制指令中的控制信息,再将控制信息缓存在预设缓存器中。
在一个实施场景中,寄存器控制指令包括控制器需要对寄存器进行的操作类型以及要被执行操作的寄存器的标识(例如,寄存器的地址),操作类型包括读操作(对应读取寄存器信息)和写操作(对应配置寄存器)。寄存器控制指令还包括操作数据,如果是要执行写操作,则操作数据为对应的写数据,如果是要执行读操作,则操作数据为对应的读数据。
获取寄存器控制指令后,将寄存器控制指令中的操作类型、操作对象和操作数据提取出来,拼接获取控制信息。假设寄存器地址为12bit,写数据为32bit,读数据为32bit,读写状态位为1bit,此bit为0表示写,此bit为1表示读,则控制信息为45bit,寄存器地址(12bit)+写数据/读数据(32bit)+读写状态(1bit)。
在一个实施场景中,针对每一个控制信息都具有对应的目标时间,不同的控制信息的目标时间可以相同或者不同。例如在神经网络运算中,提前发送下一层神经网络运算所需的寄存器控制指令,将这些寄存器控制指令对应的控制信息存储于预设缓存器中,当下一层的神经网络运算开始时,就需要将这些控制信息发送至寄存器模块中,则下一层的神经网络运算开始的时间作为这些控制信息的目标时间。
为了确保能够及时对寄存器进行寄存器控制指令指示的操作,需要在发送寄存器控制指令的之前或当时获取寄存器控制指令的目标时间。在目标时间之前或当时,控制器通过片上总线发送至少一条寄存器控制指令,从而寄存器缓存模块能够一次性获取该至少一条寄存器控制指令,并提取每条寄存器控制指令中的控制信息,从而能够在目标时间的当时或之前,将至少一条目标控制信息均发送至寄存器模块,再通过接口模块传输至对应的寄存器。
寄存器缓存模块可以提前目标时间预设时长执行通过片上总线获取控制器发送的寄存器控制指令的步骤,也可以在目标时间当时执行通过片上总线获取控制器发送的寄存器控制指令的步骤。具体的说,可以根据寄存器缓存模块接收寄存器控制指令的速率和发送控制信息的速率来定,若这两个速率相同或相近,则可以提前目标时间点预设时长获取控制器发送的至少一条寄存器控制指令,若接收寄存器控制指令的速率远大于发送控制信息的速率,则可以提前目标时间或者在目标时间当时获取控制器发送的至一条寄存器控制指令。
例如,可以在目标时间之前的时间内监控片上总线的工作状态,当监控到片上总线处于空闲状态时,控制器通过片上总线发送至少一条寄存器控制指令,寄存器缓存模块通过片上总线一次性接收该至少一条寄存器控制指令,并提取每条寄存器控制指令中的控制信息。从而在发送寄存器控制指令时不会出现堵塞的情况,不仅确保数据传输的效率,也提升了片上总线的资源利用率。对应的至少一条控制信息存储于寄存器缓存模块中,在目标时间到达的时候,由寄存器缓存模块输出,发送至寄存器模块。
S102:获取控制器发送的发送指令,获取控制信息中与发送指令对应的至少一条目标控制信息,根据发送指令将至少一条目标控制信息均发送至寄存器模块中对应的寄存器,从而使得寄存器模块中对应的寄存器根据目标控制信息完成对应的操作。
在一个具体的实施场景中,由控制器通过片上总线向寄存器缓存模块发送一个或多个发送指令,发送指令用于指示寄存器缓存模块将至少一条控制信息发送至寄存器模块对应的寄存器,每个发送指令可以对应一条或多条控制信息。发送指令还可以包括发送控制信息的目标时间。寄存器缓存模块获取到发送指令后,获取当前存储的所有控制信息中与该发送指令对应的目标控制信息,根据发送指令在目标时间的之前或当时将目标控制信息根据发送指令发送出去。
在一个实施场景中,每个控制信息都有对应的目标时间,在控制信息对应的目标时间之前或当时,控制器发送出发送指令,从而寄存器缓存模块才能够在目标时间之前或当时将目标控制信息逐条发送至寄存器模块。
获取目标控制信息,若目标控制信息为一条,则直接该将目标控制信息发送至寄存器模块,若该目标控制信息有多条,则将目标控制信息逐条发送至寄存器模块,从而使得寄存器模块根据目标控制信息完成对应的操作。
具体地说,若目标控制信息的操作类型为写操作,则寄存器模块接收到控制信息后,依据目标控制信息中的寄存器地址和写数据对对应的寄存器进行配置。例如,控制器发起一个读操作,生成寄存器控制指令,寄存器缓存模块接收该寄存器控制指令,根据寄存器控制指令生成的控制信息为{0x200,0x3,0},并将控制信息缓存。当寄存器缓存模块接收到控制器发送的发送指令后,根据该发送指令将控制信息发送至寄存器模块0x200地址的寄存器,以实现对0x200地址的寄存器进行0x3的配置。
若目标控制信息的操作类型为读操作,则寄存器模块接收到目标控制信息后,依据目标控制信息中的寄存器地址和读数据对对应的寄存器的状态信息进行读取,获取寄存器的反馈数据,将反馈数据缓存于寄存器缓存模块中目标控制信息对应的位置。读取反馈数据,将反馈数据通过片上总线发送至控制器,从而控制器能够获取寄存器的状态信息。进一步地,可以获取反馈数据需要发送至控制器的发送时间,在该发送时间到达后读取该反馈数据,将反馈数据通过片上总线发送至控制器。该发送时间可以由控制器预先通知寄存器缓存模块。该发送时间也可以由控制器通知寄存器缓存模块。
例如,控制器发起一个读操作,生成寄存器控制指令,将该寄存器控制指令发送至寄存器缓存模块,寄存器缓存模块接收到寄存器控制指令后,根据寄存器控制指令生成的控制信息为{0x200,xxxxx,1},控制信息在寄存器缓存模块中的存储的地址为0x11。寄存器缓存模块将控制信息发送至寄存器模块中地址为0x200的寄存器,以实现根据控制信息对地址为0x200的寄存器进行读取操作,读取该寄存器对应的状态信息为0x3,将0x3作为反馈数据写入xxxxx中,此后不会再操作寄存器缓存模块中的地址0x11。当需要将反馈数据反馈给控制器时,读取控制信息{0x200,0x3,1},将0x3通过片上总线反馈给控制器,这样控制器就获取了地址为0x200的寄存器的状态信息为0x3。
通过实施上述步骤,可以灵活选择适当的实际传输寄存器控制指令,例如在片上总线空闲时进行传输,能够避开总线拥堵,合理利用总线的传输资源,提升资源利用率。
在本实施例中,提前将寄存器控制指令发送至寄存器缓存模块,先对寄存器控制指令中的控制信息进行缓存,再根据发送指令输出控制信息至寄存器模块中对应的寄存器,由于寄存器缓存模块和寄存器模块之间是一对一直连,不存在其他模块传输数据的干扰,因此传输会很快完成,传输效率得到了有效提升,且由于寄存器缓存模块与寄存器模块直连,不需要发起多次接入操作,就能在需要传输多条控制信息时,将这些控制信息均发送至寄存器模块中对应的寄存器,进一步节约了传输时间,提升了传输效率。此外,传输控制信息时也没有用到片上总线,不影响片上总线此时传输其他模块的传输数据,也能确保芯片的其他功能能够顺利实现。
请继续参阅图2,寄存器缓存模块30包括预设缓存器31,预设缓存器31为RAM(Random Access Memory,随机存取存储器),数据可以随时存入预设缓存器31中并随时可以从预设缓存器31中输出。寄存器缓存模块30与片上总线10通过第一总线接口32连接,寄存器缓存模块30与寄存器模块20通过第二总线接口33连接。第一总线接口32可以是高速总线,例如AXI(Advanced eXtensible Interface,高级可扩展接口),也可以是低速总线,例如APB(Advanced Peripheral Bus,高级外围总线)/AHB(Advanced High performanceBus,先进高性能总线)。第二总线接口33可以是低速总线,例如APB(Advanced PeripheralBus,高级外围总线)/AHB(Advanced High performance Bus,先进高性能总线)。
在一个实施场景中,第一总线接口32采用的是AXI,可以很短时间内将大量寄存器控制指令一次性发送至寄存器缓存模块30,那么只需要在寄存器控制指令需要被执行的目标时间点之前或者当时,控制器发送寄存器控制指令,寄存器缓存模块30通过片上总线10接收寄存器控制指令,就能够及时将根据寄存器控制指令获取的控制信息均发送至寄存器模块20中对应的寄存器21。
在一个实施场景中,第一总线接口32采用的是APB/AHB,传输速率较低,因此,控制器提前目标时间预设时长发送寄存器控制指令,寄存器缓存模块30能够在目标时间之前获取全部的寄存器控制指令,并缓存这些寄存器控制指令对应的控制信息,就可以在目标时间之前或当时将控制信息发送至寄存器模块20。
在一个实施场景中,当第一总线接口32和第二总线接口33类型相同时,两者之间可以设置旁路通路36,第一总线接口32接收到寄存器控制信息后,可以不经过第一接口模块34、预设缓存器31和第二接口模块35,直接传输至第二总线接口33,由第二总线接口直接传输至寄存器模块20。用户可以在控制器发送寄存器控制指令之前或同时对是否通过旁路通路36传输进行限定。
请继续参阅图2,寄存器缓存模块30还包括第一接口模块34和第二接口模块35,第一接口模块34和第二接口模块35用于相互配合以实现图1所示的方法。具体地说,第一接口模块34用于获取控制器发送的寄存器控制指令,提取寄存器控制指令中的控制信息,将控制信息缓存于预设缓存器31中。
第二接口模块35用于将至少一条控制信息均发送至寄存器模块20对应的寄存器21,从而使得寄存器模块20中对应的寄存器21能够根据控制信息完成对应的操作。
为了确保信息传输操作的顺利进行,控制信息在发送至第二总线接口33之前,第二接口模块35需要将控制信息转换成第二总线接口33所支持的传输数据格式。同样的,控制信息在需要发送至第一总线接口32之前,第一接口模块34需要将其转换成第一总线接口32支持的反馈数据格式。
具体地说,当控制器需要对寄存器21进行配置时,发出写操作的寄存器控制信息,片上总线10将该寄存器控制信息传输至第一总线接口32,第一接口模块34对该寄存器控制指令进行分析,获取寄存器地址、写数据,以及识别出是写操作,将寄存器地址、写数据和写操作标识(例如,0)进行组合或拼接,得到控制信息,将控制信息缓存于预设缓存器31中。
控制器在发送了寄存器控制指令之后或同时,会再向寄存器缓存模块30发送用于指示何时发送控制信息的发送指令。第一接口模块34接收该发送指令,寄存器缓存模块30获取控制信息中与发送指令对应的至少一条目标控制信息,将至少一条目标控制信息均发送至寄存器模块20对应的寄存器21。
在接收到发送指令后,预设缓存器31将控制信息输出,第二接口模块35提取出控制信息中的寄存器地址、写数据,并识别出是写操作,则将控制信息转换成符合第二总线接口33传输要求的传输数据格式,将转换格式后的配置信息传输至第二总线接口33,由第二总线接口33传输至寄存器模块20,以使得寄存器21能够完成配置。
当控制器需要获取寄存器21的状态信息时,发出读操作的寄存器控制信息,片上总线10将该寄存器控制信息传输至第一总线接口32,第一接口模块34对该寄存器控制指令进行分析,获取寄存器地址,以及识别出是读操作,将寄存器地址、读数据和读操作标识(例如,1)进行组合或拼接,得到控制信息,此时读数据的位置闲置,留待后续填充。将控制信息缓存于预设缓存器31中。
在接收到发送指令后,预设缓存器31将控制信息输出,第二接口模块35提取出控制信息中的寄存器地址,并识别出是读操作,则将控制信息转换成符合第二总线接口33传输要求的传输数据格式,将转换格式后的配置信息传输至第二总线接口33,由第二总线接口33传输至寄存器模块20对应的寄存器211,以使得寄存器21能够将用于反馈状态信息的反馈数据发送至第二总线接口33。反馈数据被传输至第二接口模块35,由第二接口模块35传输至预设缓存器31中读数据对应的位置。
预设缓存器31将填充后的控制信息发送至第一接口模块34,第一接口模块34将反馈数据转换为适合第一总线接口32传输的反馈数据格式后,发送至片上总线10,从而控制器能够获取反馈数据对应的寄存器21的状态信息。
可以理解的是,第一接口模块34通过第一总线接口32连接片上总线10,第二接口模块35通过第二总线接口33连接寄存器模块20。当第一总线接口32与第二总线接口33是类型相同的接口时,寄存器缓存模块30还设置有旁路通路36,第一总线接口32接收到寄存器控制信息后,可以不经过第一接口模块34、预设缓存器31和第二接口模块35,直接传输至第二总线接口33,由第二总线接口直接传输至寄存器模块20。用户可以在控制器发送寄存器控制指令之前或同时对是否通过旁路通路36传输进行限定。当通过片上总线获取控制器发送的寄存器控制指令后,判断寄存器控制指令是否通过旁路通路36传输,如果通过旁路通路36进行传输,则寄存器控制指令直接由旁路通路36传输至第二总线接口33,再由第二总线接口33传输至寄存器模块20。如果不通过旁路通路36进行传输,则执行图1所示的方法。
通过上述描述可知,寄存器缓存模块对寄存器控制指令中的控制信息进行缓存,再发送出发送指令使得寄存器缓存模块发送控制信息至寄存器模块,由于寄存器缓存模块和寄存器模块之间是一对一直连,不存在其他模块传输数据的干扰,因此传输会很快完成,传输效率得到了有效提升。此外,传输控制信息时也没有用到片上总线,不影响片上总线此时传输其他模块的传输数据,也能确保芯片的其他功能能够顺利实现,此外,寄存器缓存模块与寄存器模块是一对一直连,就能在需要传输多条控制信息时,将这些控制信息均发送至寄存器模块中对应的寄存器,进一步节约了传输时间,提升了传输效率。
请参阅图3,图3是本发明提供的人工智能计算中配置寄存器时的时序示意图。如图3所示,人工智能芯片将完整功能切分成顺序的多层结构。在进行上一层的人工智能计算时,可以将下一层需要进行的寄存器配置的相关信息作为寄存器控制指令发送至寄存器缓存模块,将与寄存器控制指令对应的控制信息缓存至预设缓存器中。当上一层的计算结束时,能够立马将下一层运算所需的寄存器配置相关的控制信息发送至寄存器模块,完成寄存器的配置。相较于直接由控制器逐条发送寄存器控制指令至寄存器模块进行寄存器配置,能够明显缩短每一层传输寄存器配置的相关性的时间,提升了人工智能芯片的性能。
以第一层和第二层为例进行说明,当第一层传输完第一层计算所需的业务数据和寄存器配置之后,就可以进行第一层的计算,在进行第一层计算的同时开始传输第二层所需的寄存器配置对应的寄存器控制指令至寄存器缓存模块中。当开始第二层计算时,可以将第二层所需的寄存器配置对应的控制信息发送至寄存器模块中,以完成对应的寄存器配置,这样只需要传输第二层的业务数据就可以开始进行第二层的计算,这样能够有效缩短第二层计算所需要传输数据的时间,也就节约了第二层计算的总时间。同样的,在进行第二层计算的同时,传输第三层所需的寄存器配置对应的寄存器控制指令至寄存器缓存模块中,以此类推直至传输至最后一层所需的寄存器配置对应的寄存器控制指令。
请参阅图4,图4是本发明提供的工智能计算中读取寄存器信息时的时序示意图。如图4所示,人工智能芯片将完整功能切分成顺序的多层结构。寄存器的状态信息并不会很快被控制器用到。例如第一层中的寄存器状态信息在很久之后的计算时会被用到,则在进行第一层计算时,发送读取寄存器状态信息的寄存器控制指令至寄存器缓存模块中,由寄存器缓存模块将对应的控制信息转发至寄存器模块以获取寄存器状态信息,将寄存器状态信息缓存于寄存器缓存模块中,当到达需要使用状态信息的计算时,或者是在片上总线较为空闲的时段,将状态信息发送至控制器。
通过上述描述可知,在进行层级顺序分明的人工智能运算时,在下一层运算开始前,提前将所需传输的信息缓存于寄存器缓存模块中,在片上总线空闲时间或者下一层的运算开始时将信息传输出去,能够有效缩短该层传输数据所需的时间,也缩短了该层运算所需的总时间,进而整个人工智能运算的时间被缩短,运算效率得到明显提升。
请参阅图5,图5是本发明提供的智能设备的一实施例的结构示意图。智能设备40包括处理器41、存储器42。处理器41耦接存储器42。存储器42中存储有计算机程序,处理器41在工作时执行该计算机程序以实现如上的方法。详细的步骤可参见上述,在此不再赘述。
请参阅图6,图6是本发明提供的计算机可读存储介质的一实施例的结构示意图。计算机可读存储介质50中存储有至少一个计算机程序51,计算机程序51用于被处理器执行以实现如上方法,详细的步骤可参见上述,在此不再赘述。在一个实施例中,计算机可读存储介质50可以是终端中的存储芯片、硬盘或者是移动硬盘或者优盘、光盘等其他可读写存储的工具,还可以是服务器等等。
本发明实施例描述的存储介质旨在包括但不限于任意适合类型的存储器。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台智能设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本发明所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本发明所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。
Claims (10)
1.一种寄存器数据传输方法,其特征在于,应用于芯片,所述芯片包括寄存器缓存模块、片上总线和寄存器模块,所述寄存器缓存模块一端连接所述片上总线,另一端与所述寄存器模块一对一直连,所述寄存器模块包括多个寄存器;
所述寄存器数据传输方法包括如下步骤:
通过所述片上总线获取控制器发送的至少一条寄存器控制指令,提取每条所述寄存器控制指令中的控制信息,并缓存所述控制信息;
获取控制器发送的发送指令,获取所述控制信息中与所述发送指令对应的至少一条目标控制信息,根据所述发送指令将所述至少一条目标控制信息均发送至所述寄存器模块中对应的寄存器,从而使得所述寄存器模块中与所述目标控制信息对应的所述寄存器能够及时根据所述目标控制信息完成对应的操作。
2.根据权利要求1所述的寄存器数据传输方法,其特征在于,所述通过所述片上总线获取控制器发送的寄存器控制指令的步骤,包括:
获取每条所述寄存器控制指令的目标时间,在所述目标时间为所述寄存器控制指令对应的控制信息需要发送至所述寄存器模块中对应的寄存器的时间;
在所述目标时间之前或当时,通过所述片上总线一次性获取所述至少一条寄存器控制指令;
所述获取控制器发送的发送指令,获取所述控制信息中与所述发送指令对应的至少一条目标控制信息,根据所述控制指令将所述至少一条目标控制信息均发送至所述寄存器模块中对应的寄存器的步骤,包括:
在所述目标时间之前或当时,获取所述发送指令,根据所述发送指令在所述目标时间将所述至少一条目标控制信息均发送至所述寄存器模块中对应的寄存器。
3.根据权利要求2所述的寄存器数据传输方法,其特征在于,所述在所述目标时间之前或当时,通过所述片上总线获一次性取所述至少一条寄存器控制指令的步骤,包括:
监控所述片上总线的工作状态,在所述目标时间之前或当时,监控到所述片上总线处于空闲状态时,通过所述片上总线一次性获取所述至少一条寄存器控制指令。
4.根据权利要求2所述的寄存器数据传输方法,其特征在于,所述寄存器缓存模块与所述片上总线通过第一总线接口连接,所述寄存器缓存模块与所述寄存器模块通过第二总线接口连接;
若所述第一总线接口的传输速率不高于所述第二总线接口的传输速率,则在所述目标时间之前通过所述片上总线获取所述寄存器控制指令的步骤,包括:
提前所述目标时间点预设时长执行所述通过所述片上总线获取控制器发送的寄存器控制指令的步骤;
若所述第一总线接口的传输速率高于所述第二总线接口的传输速率,则所述在所述目标时间之前通过所述片上总线获取所述寄存器控制指令的步骤,包括:
在所述目标时间点之前或当时执行所述通过所述片上总线获取控制器发送的寄存器控制指令的步骤。
5.根据权利要求2所述的寄存器数据传输方法,其特征在于,当所述芯片为用于人工智能运算的芯片时,所述目标时间为所述寄存器控制指令对应的人工智能运算层级运算的时间点。
6.根据权利要求1所述的寄存器数据传输方法,其特征在于,
所述控制信息包括操作类型、操作对象和操作数据,所述操作类型包括读操作和写操作中的任意一种,所述操作对象包括需要执行操作的寄存器的地址,所述操作数据包括读数据和写数据中的任意一种,所述读数据的内容为空。
7.根据权利要求6所述的寄存器数据传输方法,其特征在于,当所述操作类型为写操作时,所述寄存器模块中对应的寄存器根据所述目标控制信息完成对应的操作的步骤,包括:
将所述写数据写入所述地址对应的寄存器,完成对所述地址对应的寄存器的配置;
当所述操作类型为读操作时,所述寄存器模块中对应的寄存器根据所述目标控制信息完成对应的操作的步骤,包括:
读取所述地址对应的寄存器的反馈数据,将所述反馈数据缓存于所述目标控制信息中所述读数据对应的位置;
所述根据所述发送指令将所述至少一条目标控制信息均发送至所述寄存器模块中对应的寄存器的步骤之后,所述寄存器数据传输方法还包括:
读取加入所述反馈数据后的目标控制信息,将所述反馈数据通过所述片上总线发送至所述控制器。
8.一种寄存器缓存模块,其特征在于,用于实现权利要求1-7任一项所述的方法,包括:预设缓存器,连接所述预设缓存器的第一接口模块和第二接口模块,所述寄存器缓存模块设置于芯片中,所述芯片还包括片上总线和寄存器模块,所述寄存器模块中包括多个寄存器;
所述第一接口模块用于接收控制器通过所述片上总线发送的至少一条寄存器控制指令,并提取每条所述寄存器控制指令中的控制信息,根据所述控制信息生成控制数据,将所述控制数据缓存于预设缓存器中;
所述第一接口模块还用于接收所述控制器发送的发送指令,所述第二接口模块用于根据所述发送指令将至少一条所述控制信息均发送至所述寄存器模块对应的寄存器,从而使得所述寄存器模块中对应的寄存器能够及时根据所述控制信息完成对应的操作。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种智能设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310471711.6A CN116185499B (zh) | 2023-04-27 | 2023-04-27 | 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310471711.6A CN116185499B (zh) | 2023-04-27 | 2023-04-27 | 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116185499A CN116185499A (zh) | 2023-05-30 |
CN116185499B true CN116185499B (zh) | 2023-07-25 |
Family
ID=86434890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310471711.6A Active CN116185499B (zh) | 2023-04-27 | 2023-04-27 | 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185499B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116680088B (zh) * | 2023-08-03 | 2023-10-13 | 青岛本原微电子有限公司 | 一种针对多寄存器存储的多模块同时访问系统及访问方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858431A (zh) * | 2023-02-21 | 2023-03-28 | 北京国科环宇科技股份有限公司 | 数据传输控制方法、控制器及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524225A (en) * | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
US6553483B1 (en) * | 1999-11-29 | 2003-04-22 | Intel Corporation | Enhanced virtual renaming scheme and deadlock prevention therefor |
CN100555216C (zh) * | 2007-09-12 | 2009-10-28 | 华为技术有限公司 | 一种数据处理方法及处理器 |
US9015423B2 (en) * | 2012-06-14 | 2015-04-21 | International Business Machines Corporation | Reducing store operation busy times |
CN104750561B (zh) * | 2015-04-15 | 2019-09-10 | 苏州中晟宏芯信息科技有限公司 | 寄存器堆缓存资源的动态释放方法、系统及一种处理器 |
CN105468335B (zh) * | 2015-11-24 | 2017-04-12 | 中国科学院计算技术研究所 | 流水级运算装置、数据处理方法及片上网络芯片 |
CN110018847B (zh) * | 2018-01-10 | 2021-01-12 | 北京思朗科技有限责任公司 | 可配置寄存器及基于可配置寄存器的数据存取方法 |
CN111104166B (zh) * | 2019-12-13 | 2022-09-06 | 北京新忆科技有限公司 | 寄存器的写入方法和写入装置 |
-
2023
- 2023-04-27 CN CN202310471711.6A patent/CN116185499B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858431A (zh) * | 2023-02-21 | 2023-03-28 | 北京国科环宇科技股份有限公司 | 数据传输控制方法、控制器及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116185499A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116185499B (zh) | 寄存器数据传输方法、寄存器缓存模块、智能设备和介质 | |
CN108345555B (zh) | 基于高速串行通信的接口桥接电路及其方法 | |
US20240281400A1 (en) | Communication method and system for distributed heterogeneous acceleration platform, device and medium | |
CN116243995B (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN113032293A (zh) | 缓存管理器及控制部件 | |
CN109086168A (zh) | 一种利用硬件备份固态硬盘写速度的方法及其系统 | |
CN104239252A (zh) | 数据存储系统的数据传输方法、装置及系统 | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
CN113485643B (zh) | 用于数据存取的方法及数据写入的控制器 | |
CN109889456B (zh) | 一种数据传输方法、装置、设备、系统和存储介质 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN115904259B (zh) | 非易失性存储器标准NVMe指令的处理方法及相关装置 | |
CN115878351B (zh) | 消息的传输方法及装置、存储介质及电子装置 | |
CN115543755B (zh) | 一种性能监管方法、装置、系统、设备和介质 | |
CN101251831B (zh) | 支持主从设备互换的移动存储器和主从设备互换方法 | |
CN116450563A (zh) | 一种消息接收装置和处理器通信系统 | |
CN113268358B (zh) | 数据通信方法、装置和系统及多设备级联系统 | |
CN116684506B (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
CN107249008B (zh) | 一种远端数据直接存取的通道互联装置及方法 | |
CN113031849A (zh) | 直接内存存取单元及控制部件 | |
CN102279828A (zh) | 一种PCI接口转Flash接口的控制装置及方法 | |
CN111078619A (zh) | 一种转换装置、网络设备及数据传输方法 | |
CN204256731U (zh) | 一种fpga高速读取usb设备数据装置 | |
CN114124850B (zh) | 一种网络通信方法及装置、存储介质 | |
CN114840447B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |