CN116149731A - 基于低功耗协处理器的处理方法及系统 - Google Patents

基于低功耗协处理器的处理方法及系统 Download PDF

Info

Publication number
CN116149731A
CN116149731A CN202310070865.4A CN202310070865A CN116149731A CN 116149731 A CN116149731 A CN 116149731A CN 202310070865 A CN202310070865 A CN 202310070865A CN 116149731 A CN116149731 A CN 116149731A
Authority
CN
China
Prior art keywords
unit
coprocessor
instruction
execution
signal
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
Application number
CN202310070865.4A
Other languages
English (en)
Inventor
张超
夏鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202310070865.4A priority Critical patent/CN116149731A/zh
Publication of CN116149731A publication Critical patent/CN116149731A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Advance Control (AREA)

Abstract

本申请实施例公开了一种基于低功耗协处理器的处理方法及系统;所述方法包括:检测到调用协处理器时,主处理器请求与所述协处理器进行握手;协处理器DMA完成与所述主处理器的握手;协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;设置协处理器来对生理信号进行计算处理,提高算法的计算效率和准确性,提高信号的分析效率。

Description

基于低功耗协处理器的处理方法及系统
技术领域
本申请实施例涉及除颤仪技术领域,尤其涉及一种基于低功耗协处理器的处理方法及系统。
背景技术
电击除颤是心肺复苏(CPR)过程中一个重要的环节,它是指以一定量的电流冲击心脏从而使心室颤动终止。电击除颤的成功与否直接关系着心室颤动患者的存活,是治疗心室颤动最为有效的方法。研究表明,通过分析出现心室颤动患者的心电信号,可以实时的掌握患者心脏状态,并对此刻电击除颤是否能够成功做出有效的判断和预测。这种除颤效能的预测可以大大减少不必要的电击除颤,只有当心电信号的某些指标达到预期阈值时才进行除颤,降低了电流对患者心肌的损伤。
目前,预测电击除颤成功的算法层出不穷,其方法主要是基于幅度、频率以及幅频分析来实现除颤效能的预测。但大多数算法预测的准确率还不够高,分析所需要的信号长度较长,对信号的分析效率较低,这些都会影响对室颤患者的治疗。
发明内容
本申请实施例提供一种基于低功耗协处理器的处理方法及系统,来解决现有的除颤仪大多数算法预测的准确率还不够高,分析所需要的信号长度较长,对信号的分析效率较低,影响对室颤患者的治疗的问题。
在第一方面,本申请实施例提供了一种基于低功耗协处理器的处理方法,所述方法包括以下步骤:
检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;
协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;
协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;
状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;
所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;
当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;
所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
进一步的,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述协处理器DMA从所述指令预取单元预取一条指令,通过相等比较器比较该预取指令是否有效,将判断信号输入与门获得该预取指令对应的预取信号,将该预取信号存放于指令执行寄存单元;
所述状态机接收到当前执行单元工作执行的完成信号后,从所述指令执行寄存单元调取预取信号以调用相应的执行单元进行执行工作。
进一步的,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述熵计算加速单元执行计算工作;
所述熵计算加速单元包括对外接口、读写操作控制、数据寄存器、状态寄存器、控制寄存器、向量重构路由器、并行计算控制器和向量距离计算单元;
所述读写操作控制通过所述对外接口进行数据的读写;
所述数据寄存器存储待计算的原始数据序列;
检测到所述控制寄存器的最低位为1后,开始一次计算,并将控制寄存器的最低位写0,将状态寄存器的最低位写1;检测到计算完成后,将状态寄存器的最低位置0;
所述向量重构路由器将原始数据序列重构成2维或3维的向量组,并根据控制寄存器中的计算编号,提供相应的数据给所述向量距离计算单元;
所述并行计算控制器用于控制一次执行多个指令的算法。
进一步的,所述提供相应的数据给所述向量距离计算单元之后,还包括:
所述向量距离计算单元执行向量距离的计算;
近似熵算法中,向量距离的定义如下式:
Figure BDA0004073736920000031
其中X是重构后的m维向量组,x是原始序列,d是向量之间的距离,则距离为向量X[i]、X[j]中对应元素差值的绝对值最大的一个;
向量距离计算单元由两级流水线组成,流水线的第一级是数据选择器,其功能是选择数据输出给下一级,流水线的第二级是计算电路,其功能是寻找第一级流水线工作周期内所提供数据的差的最大绝对值,得到最大绝对值即为向量距离。
进一步的,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述CNN向量计算单元执行计算工作;
所述CNN向量计算单元包括对外接口、数据拆分器、数据选择器、并行多乘法器和累加器;
所述CNN向量计算单元控制所述对外接口提取一个数据,控制所述数据拆分器对该数据进行拆分,控制所述并行多乘法器进行乘法计算,控制所述数据选择器筛选出乘法计算后的数据送入到所述累加器。
进一步的,所述当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器,包括:
所述isolation单元分别检测每个所述执行单元的工作状态,当检测到所述执行单元处于通电工作状态时,所述isolation单元输出“clamp”信号到alwayson模块;
当检测到所述执行单元处于断电状态时,所述isolation单元输出“0”信号到所述alwayson模块,所述alwayson模块发动断电信号到所述主处理器。
进一步的,所述检测到调用协处理器之前,还包括:
通过主处理器控制协处理器的电源开关闭合,为所述协处理器供电;
通过所述主处理器控制PMU单元发送不同的上下电控制信号到协处理模块,以控制对应的执行单元进行通断电;
所述所述alwayson模块发动断电信号到所述主处理器之后,还包括:
所述主处理器接收所述alwayson模块发送的断电信号,控制所述电源开关断开。
在第二方面,本申请实施例还提供一种基于低功耗协处理器的处理系统,包括:主处理器和协处理器,所述主处理器和所述协处理器通过nice接口进行信号连接;所述协处理器包括协处理器DMA、指令预取单元、指令解码单元、状态机、执行单元、isolation单元和power switch单元;所述power switch单元用于对所述执行单元进行开闭;
检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;
协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;
协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;
状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;
所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;
当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;
所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
在第三方面,本申请实施例还提供一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种基于低功耗协处理器的处理方法。
在第四方面,本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述的一种基于低功耗协处理器的处理方法。
本申请实施例通过检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作;设置协处理器来对生理信号进行计算处理,提高算法的计算效率和准确性,提高信号的分析效率。
附图说明
图1是本申请实施例提供的一种基于低功耗协处理器的处理方法的流程图;
图2是本申请实施例提供的一种基于低功耗协处理器的处理方法的协处理器总体设计框图;
图3是本申请实施例提供的一种基于低功耗协处理器的处理方法的协处理器低功耗设计架构图;
图4是本申请实施例提供的一种基于低功耗协处理器的处理方法的指令解码单元的设计框图;
图5是本申请实施例提供的一种基于低功耗协处理器的处理方法的熵计算加速器的架构图;
图6是本申请实施例提供的一种基于低功耗协处理器的处理方法的向量距离计算单元流水线第一级时序图;
图7是本申请实施例提供的一种基于低功耗协处理器的处理方法的向量距离计算单元流水线第二级时序图;
图8是本申请实施例提供的一种基于低功耗协处理器的处理方法的CNN向量计算单元的架构;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
nice接口:在开发过程中,为了提高特定领域的性能,同时降低功耗,可以考虑利用定制的硬件协同单元,蜂鸟E203内核支持用户创建自定义指令,主处理器与协处理器通过NICE(Nuclei Instruction Co-unit Extension)接口通信。
req_valid信号线:逻辑请求信号线。
req_ready信号线:完成请求信号线。
DMA(DirectMemoryAccess)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。
PMU(PowerManagementUnit)电源管理单元是一种控制数字平台电源功能的微控制器。该微芯片具有许多与普通计算机相似的组件,包括固件和软件,存储器,CPU,输入/输出功能,测量时间间隔的定时器,以及用于测量主电池或电源的电压的模数转换器。
isolation单元:isolation意思是隔离(计算机),解决并发问题的方法之一,即划分数据,使得每一篇数据都只能被一个执行单元访问。本申请实施例的isolation单元是指隔离单元,在模块电压域关断后,此模块处于断电状态,通过加入isolation单元将断电模块的输出钳位至固定值,避免“X”态传播。
alwayson模块:alwayson是一种整库同步的技术,所有的成员服务器都维护一套相同的数据库副本。当主副本上的数据发生变化时,数据会实时同步到辅助副本上。本申请实施例的always on模块是指此模块不受power switch的影响,在芯片运行过程中一直处于通电状态。
CNN(Convolutional Neural Networks):卷积神经网络。
本申请实施例建立一套基于低功耗协处理器的处理方法,解决了现有的除颤仪大多数算法预测的准确率还不够高,分析所需要的信号长度较长,对信号的分析效率较低,影响对室颤患者的治疗的问题。
实施例中提供的基于低功耗协处理器的处理方法可以由基于低功耗协处理器的处理系统执行,该基于低功耗协处理器的处理系统可以通过软件和/或硬件的方式实现,并集成在基于低功耗协处理器的处理设备中。其中,基于低功耗协处理器的处理设备可以是计算机等设备。
图1为本申请实施例提供的一种基于低功耗协处理器的处理方法的流程图。参考图1,所述方法包括以下步骤:
步骤110、检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手。
其中,通过主处理器控制协处理器的电源开关闭合,为所述协处理器供电;通过所述主处理器控制PMU单元发送不同的上下电控制信号到协处理模块,以控制对应的执行单元进行通断电。
可选的,请参照图3,基于低功耗的需求,本申请实施例采用基于UPF的电源关断技术,PMU单元内部寄存器的参数通过软件进行配置,具体是通过主处理器CPU对ICB总线进行读写,从而实现对PMU单元的操作,随后PMU单元产生用于低功耗控制单元的控制信号且不同信号之间满足模块的上下电时序。由于协处理器在正常工作时,熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器这些模块处于独立工作状态且模块之间无信号交互,因此将这些模块做成可以独立关断的模块PD2(熵计算加速单元)、PD3(CNN向量计算单元)、PD4(定点乘法器)、PD5(浮点乘法器),断电后模块的输出通过isolation单元将输出clamp成“0”传递给正常工作状态下的alwayson模块;除颤仪在不使用的情况下,将会进行定时自检,协处理器不参与工作,此时将整个协处理器进行关断操作,能够有效节省除颤仪芯片整体的动态与静态功耗。
步骤120、协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手。
步骤130、协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码。
具体的,当程序调用协处理器时,主处理器会拉高nice接口的nice_req_valid信号线请求握手,协处理器在空闲的情况下会将nice_req_ready拉高完成握手,并从指令预取单元中获取指令,状态机会根据指令解码单元解码出的数据和指令进行调用相应的执行单元执行指令,指令执行完成后,状态机会把nice接口的nice_rsp_valid线拉高请求握手。
步骤140、状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器。
在一些实施例中,所述协处理器DMA从所述指令预取单元预取一条指令,通过相等比较器比较该预取指令是否有效,将判断信号输入与门获得该预取指令对应的预取信号,将该预取信号存放于指令执行寄存单元;所述状态机接收到当前执行单元工作执行的完成信号后,从所述指令执行寄存单元调取预取信号以调用相应的执行单元进行执行工作。
可选的,协处理器采用E203处理器,E203处理器的nice指令编码如表1所示:
表1nice指令编码
比特位 31-25 24-20 19-15 14 13 12 11-7 6-0
功能 func7 rs2 rs1 xd xs1 xs2 rd opcode
其中,func7为指令编码空间,最多支持额外译码出128条指令;rs2和rs1为寄存器索引;xd指示该指令是否需要将结果写回至rd索引的寄存器;xs1和xs2分别指示是否需要读取rs1和rs2索引的寄存器;opcode是操作码。
具体的,请参照图4,为指令解码单元的设计框图,指令解码单元由组合逻辑电路和一个D触发器组成,协处理器支持执行指令的同时预取一条指令,通过操作码相等比较器判断指令的各部分是否有效,具体的,通过func7相等比较器和func3相等比较器比较指令使能信号1、指令使能信号2和指令使能信号3,得到判断信号,将判断信号和req_valid请求信号送入四输入与门获得某指令的预取信号。在协处理器成功握手后,通过D触发器输出该指令的执行信号,并通过指令解码器进行解码。该逻辑可以保证协处理器可以在一条指令执行完成后立即切换到下一条指令。
协处理器一共设有7条指令,如下表2所示:
表2协处理器的指令集列表
Figure BDA0004073736920000081
Figure BDA0004073736920000091
其中,熵计算加速器具有三条操作指令,分别为custom_lbuf_apen、custom_lth_apen、custom_calu_apen。程序进行熵计算时,首先需要调用custom_lbuf_apen指令将待计算熵的序列的首地址写入熵计算加速器,然后调用custom_lth_apen指令设置熵计算中的阈值,随后不断调用custom_calu_apen指令获取计算结果。
CNN向量计算单元一共有两条指令,分别为custom_lker_cnn、custom_calcu_cnn。卷积神经网络推理程序在进行卷积乘法运算时,调用custom_lker_cnn将卷积核加载进单元,随后不断调用custom_calcu_cnn计算向量乘法以达到卷积计算的目的。
由于在绝大多数信号的处理算法中,需要大量的乘法运算,而本文使用的CPU内核属于低功耗CPU,没有单周期乘法器和浮点计算单元,为了防止乘法计算拖累算法整体计算速度,影响协处理器的加速效果,本文为协处理器添加了两条乘法指令用于定点和浮点计算:custom_multi、custom_multi_f。
在一些实施例中,请参照图5,所述熵计算加速单元执行计算工作;所述熵计算加速单元包括对外接口、读写操作控制、数据寄存器、状态寄存器、控制寄存器、向量重构路由器、并行计算控制器和向量距离计算单元;其中,多个向量距离计算单元组成向量距离计算单元阵列,所述读写操作控制通过所述对外接口进行数据的读写;所述数据寄存器存储待计算的原始数据序列;检测到所述控制寄存器的最低位为1后,开始一次计算,并将控制寄存器的最低位写0,将状态寄存器的最低位写1;检测到计算完成后,将状态寄存器的最低位置0;所述向量重构路由器将原始数据序列重构成2维或3维的向量组,并根据控制寄存器中的计算编号,提供相应的数据给所述向量距离计算单元;所述并行计算控制器用于控制一次执行多个指令的算法。
其中,所述向量距离计算单元执行向量距离的计算;近似熵算法中,向量距离的定义如下式:
Figure BDA0004073736920000101
其中X是重构后的m维向量组,x是原始序列,d是向量之间的距离,则距离为向量X[i]、X[j]中对应元素差值的绝对值最大的一个;
向量距离计算单元由两级流水线组成,流水线的第一级是数据选择器,其功能是选择数据输出给下一级,流水线的第二级是计算电路,其功能是寻找第一级流水线工作周期内所提供数据的差的最大绝对值,得到最大绝对值即为向量距离。
具体的,熵计算加速单元的对外接口如表3所示:
表3熵计算加速器的对外接口
接口名称 位宽 接口功能
clk 1 加速器模块的时钟端口
rst_n 1 加速器模块的复位端口
reg_cs 1 加速器模块寄存器读写使能端口
reg_wr 1 加速器模块寄存器的写有效端口
reg_rd 1 加速器模块寄存器的读有效端口
reg_wr_addr 10 加速器模块寄存器的写地址端口
reg_rd_addr 10 加速器模块寄存器的读地址端口
reg_data_in 32 加速器模块寄存器的数据输入端口
reg_data_out 32 加速器模块寄存器的数据输出端口
熵计算加速单元的控制完全通过读写寄存器完成,加速器内部寄存器组的寻址范围为0-(APEN_DATA_LEN+1),其中APEN_DATA_LEN是向量计算单元的个数,可以通过修改APEN_DATA_LEN这个参数裁剪熵计算加速器。数据寄存器组的地址范围为0-(APEN_DATA_LEN-1),这个寄存器组的作用是存储待计算的原始数据序列。由于这个寄存器组数量较多,为了保证运行效率,不可以采用CPU依次读写的方式,需要通过DMA写入。地址为APEN_DATA_LEN的寄存器是阈值寄存器。其寄存的是熵算法中的阈值。
控制寄存器和状态寄存器共用地址地址APEN_DATA_LEN+1,控制寄存器只写,状态寄存器只读。控制寄存器和状态寄存器的功能编码如表4和表5所示:
表4控制寄存器的功能编码
Figure BDA0004073736920000111
表5状态寄存器的功能编码
Figure BDA0004073736920000112
外部电路在调用熵计算加速单元计算前,需要向控制寄存器对应位置写入必须要的计算信息,并在最低位写1。熵计算加速单元检测到控制寄存器的最低位为1后,会立即开始一次计算,同时将控制寄存器的最低位写0,状态寄存器的最低位写1。完成计算后,加速单元会重新把状态寄存器的最低位置0。
向量重构路由器,其作用是将原始数据序列重构成2维或者3维的向量组。并根据控制寄存器中的计算编号,提供相应的数据给距离计算单元。
示例性的,向量距离计算单元由两级流水线组成。流水线的第一级是数据选择器,其功能是选择数据输出给下一级,以3维向量距离计算为例,其工作时序如图6所示,外部电路通过拉高in_valid激活流水线第一级工作。此时该流水线会把idle线拉低,指示外部电路本级流水线忙。若和下级流水线握手成功,则会根据计数器输出待计算的数据给流水线下一级。流水线的第二级是计算电路,其功能是找到第一级流水线工作周期内所提供数据的差的最大绝对值,这个最大绝对值就是向量的距离。时序图如图7所示,流水线的第二级电路在和第一级电路成功握手后,会依次根据第一级电路送入的数据算出元素差值的绝对值最大的一个。当其in_valid线被拉低后,计算结果将会被锁存1个时钟周期。
在其中一些实施例中,CNN向量计算单元的架构如图8所示,所述CNN向量计算单元执行计算工作;所述CNN向量计算单元包括对外接口、数据拆分器、数据选择器、并行多乘法器和累加器;所述并行多乘法器包括多个乘法器,所述累加器包括多个加法器;所述CNN向量计算单元控制所述对外接口提取一个数据,控制所述数据拆分器对该数据进行拆分,控制所述并行多乘法器进行乘法计算,控制所述数据选择器筛选出乘法计算后的数据送入到所述累加器。
示例性的,由于E203的ICB总线的带宽限制,采用并行计算的方法并不能有效提高计算效率,因此,本申请实施例在向量计算单元上放弃多单元并行计算而采用长流水线计算的方法。该单元由对外接口、数据拆分器、并行多乘法器、数据选择器、累加器流水线组成。
该单元的对外接口每次只提取一个数据,因此一个时钟周期只会产生一个乘法结果,因此需要流水线进行累加处理。并行多乘法器每执行完成一次后,数据选择器将会筛选出有用的数据送入累加流水线。
CNN向量计算单元的对外接口如表6所示:
表6CNN向量计算单元的对外接口表
Figure BDA0004073736920000121
其中DATA_WIDTH是乘法器的数据位宽,MAX_CONV_KERNEL_LEN是向量计算单元支持的最大卷积核长度,可以通过修改MAX_CONV_KERNEL_LEN达到裁剪向量计算单元的目的。
步骤150、所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA。
具体的,本申请实施例的协处理器包含多项功能,虽然其功能差别巨大,但是每个功能的执行状态总可以分解为表7中8个状态的一个,因此,协处理器的所有指令通过指令执行信号复用8个状态。
表7执行状态机的8个状态
Figure BDA0004073736920000131
可选的,状态机采用三段式编写,状态跳转采用组合逻辑电路实现,状态输出采用时序逻辑电路实现,状态机大致工作逻辑如下所述。
1、当状态机处于IDLE状态时,状态机会等待nice接口的nice_req_ready信号拉高,随后根据预取的指令类型跳转到下一个状态;
2、当状态机处于LOAD状态时,状态机会将地址预加载到DMA单元,同时拉高nice_mem_holdup,随后跳转到READ状态;
3、当状态机处于READ状态时,状态机会通过DMA从ICB读取指定长度的数据,随后根据指令寄存器的内容跳转到RSP或者WAIT状态。
4、当状态机处于WREG状态时,状态机会根据指令向子单元的寄存器写入数据,随后跳转到RSP状态。
5、当状态机处于CALU状态时,状态机会根据指令向子单元的寄存器写入数据,随后根据指令寄存器的内容跳转到WAIT或者WAIT状态。
6、WAIT状态用于等待子单元计算完成或者数据稳定。该状态使用移位寄存器进行计数,通过判定某一位是否为1判断是否需要继续等待,随后根据指令寄存器的内容跳转到WMEM或者RSP状态。
7、当状态机处于WMEM状态时,状态机会通过DMA单元向ICB总线写入计算结果数据,随后跳转到CALU状态。
8、当状态机处于RSP状态时,状态机会向nice_icb_rsp_rdata寄存器写入指令写回值。随后跳转到IDLE状态结束一条指令的执行。
步骤160、当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器。
具体的,所述isolation单元分别检测每个所述执行单元的工作状态,当检测到所述执行单元处于通电工作状态时,所述isolation单元输出“clamp”信号到alwayson模块;当检测到所述执行单元处于断电状态时,所述isolation单元输出“0”信号到所述alwayson模块,所述alwayson模块发动断电信号到所述主处理器;所述主处理器接收所述alwayson模块发送的断电信号,控制所述电源开关断开。
步骤170、所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
请参照图2,为协处理器的总体设计框图,其中,指令解码预取单元包括指令预取单元和指令解码单元;协处理器DMA通过ICB总线连接电源和PMU单元,协处理器DMA通过nice接口与主处理器进行信号传输,状态机执行工作后,均会反馈相应信号到指令执行寄存单元、协处理器DMA和nice接口,执行单元执行工作后均会反馈执行信号到状态机。
在上述实施例的基础上,请参照图2,本申请实施例提供的一种基于低功耗协处理器的处理系统,所述基于低功耗协处理器的处理系统具体包括:主处理器和协处理器,所述主处理器和所述协处理器通过nice接口进行信号连接;所述协处理器包括协处理器DMA、指令预取单元、指令解码单元、状态机、执行单元、isolation单元和power switch单元;所述power switch单元用于对所述执行单元进行开闭;其中,指令解码预取单元包括指令预取单元和指令解码单元。
检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
可选的,正常工作时,协处理器内部的power switch单元依次根据协处理器工作状态需求对PD2(熵计算加速单元)、PD3(CNN向量计算单元)、PD4(定点乘法器)、PD5(浮点乘法器)进行独立关断。自检模式下,协处理器外部的power switch单元对协处理器进行关断。
本申请实施例提供的基于低功耗协处理器的处理系统可以用于执行上述实施例提供的基于低功耗协处理器的处理方法,具备相应的功能和有益效果。
本申请实施例还提供了一种计算机设备,该计算机设备可集成本申请实施例提供的基于低功耗协处理器的处理系统。图9是本申请实施例提供的一种计算机设备的结构示意图。参考图9,该计算机设备包括:输入装置53、输出装置54、存储器52以及一个或多个处理器51;所述存储器52,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器51执行,使得所述一个或多个处理器51实现如上述实施例提供的基于低功耗协处理器的处理方法。其中输入装置53、输出装置54、存储器52和处理器51可以通过总线或者其他方式连接,图9中以通过总线连接为例。
处理器51通过运行存储在存储器52中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于低功耗协处理器的处理方法。
上述提供的计算机设备可用于执行上述实施例提供的基于低功耗协处理器的处理方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于低功耗协处理器的处理方法,该基于低功耗协处理器的处理方法包括:检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机装置存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机装置中,或者可以位于不同的第二计算机装置中,第二计算机装置通过网络(诸如因特网)连接到第一计算机装置。第二计算机装置可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机装置中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于低功耗协处理器的处理方法,还可以执行本申请任意实施例所提供的基于低功耗协处理器的处理方法中的相关操作。
上述实施例中提供的基于低功耗协处理器的处理系统、存储介质及计算机设备可执行本申请任意实施例所提供的基于低功耗协处理器的处理方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的基于低功耗协处理器的处理方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

Claims (10)

1.一种基于低功耗协处理器的处理方法,其特征在于,所述方法包括以下步骤:
检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;
协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;
协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;
状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;
所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;
当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;
所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
2.根据权利要求1所述的基于低功耗协处理器的处理方法,其特征在于,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述协处理器DMA从所述指令预取单元预取一条指令,通过相等比较器比较该预取指令是否有效,将判断信号输入与门获得该预取指令对应的预取信号,将该预取信号存放于指令执行寄存单元;
所述状态机接收到当前执行单元工作执行的完成信号后,从所述指令执行寄存单元调取预取信号以调用相应的执行单元进行执行工作。
3.根据权利要求1所述的基于低功耗协处理器的处理方法,其特征在于,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述熵计算加速单元执行计算工作;
所述熵计算加速单元包括对外接口、读写操作控制、数据寄存器、状态寄存器、控制寄存器、向量重构路由器、并行计算控制器和向量距离计算单元;
所述读写操作控制通过所述对外接口进行数据的读写;
所述数据寄存器存储待计算的原始数据序列;
检测到所述控制寄存器的最低位为1后,开始一次计算,并将控制寄存器的最低位写0,将状态寄存器的最低位写1;检测到计算完成后,将状态寄存器的最低位置0;
所述向量重构路由器将原始数据序列重构成2维或3维的向量组,并根据控制寄存器中的计算编号,提供相应的数据给所述向量距离计算单元;
所述并行计算控制器用于控制一次执行多个指令的算法。
4.根据权利要求3所述的基于低功耗协处理器的处理方法,其特征在于,所述提供相应的数据给所述向量距离计算单元之后,还包括:
所述向量距离计算单元执行向量距离的计算;
近似熵算法中,向量距离的定义如下式:
Figure FDA0004073736900000021
其中X是重构后的m维向量组,x是原始序列,d是向量之间的距离,则距离为向量X[i]、X[j]中对应元素差值的绝对值最大的一个;
向量距离计算单元由两级流水线组成,流水线的第一级是数据选择器,其功能是选择数据输出给下一级,流水线的第二级是计算电路,其功能是寻找第一级流水线工作周期内所提供数据的差的最大绝对值,得到最大绝对值即为向量距离。
5.根据权利要求1所述的基于低功耗协处理器的处理方法,其特征在于,所述状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作之后,还包括:
所述CNN向量计算单元执行计算工作;
所述CNN向量计算单元包括对外接口、数据拆分器、数据选择器、并行多乘法器和累加器;
所述CNN向量计算单元控制所述对外接口提取一个数据,控制所述数据拆分器对该数据进行拆分,控制所述并行多乘法器进行乘法计算,控制所述数据选择器筛选出乘法计算后的数据送入到所述累加器。
6.根据权利要求1所述的基于低功耗协处理器的处理方法,其特征在于,所述当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器,包括:
所述isolation单元分别检测每个所述执行单元的工作状态,当检测到所述执行单元处于通电工作状态时,所述isolation单元输出“clamp”信号到alwayson模块;
当检测到所述执行单元处于断电状态时,所述isolation单元输出“0”信号到所述alwayson模块,所述alwayson模块发动断电信号到所述主处理器。
7.根据权利要求6所述的基于低功耗协处理器的处理方法,其特征在于,所述检测到调用协处理器之前,还包括:
通过主处理器控制协处理器的电源开关闭合,为所述协处理器供电;
通过所述主处理器控制PMU单元发送不同的上下电控制信号到协处理模块,以控制对应的执行单元进行通断电;
所述所述alwayson模块发动断电信号到所述主处理器之后,还包括:
所述主处理器接收所述alwayson模块发送的断电信号,控制所述电源开关断开。
8.一种基于低功耗协处理器的处理系统,其特征在于,包括:主处理器和协处理器,所述主处理器和所述协处理器通过nice接口进行信号连接;所述协处理器包括协处理器DMA、指令预取单元、指令解码单元、状态机、执行单元、isolation单元和power switch单元;所述power switch单元用于对所述执行单元进行开闭;
检测到调用协处理器时,主处理器拉高nice接口的req_valid信号线,以请求与所述协处理器进行握手;
协处理器DMA拉高nice接口的req_ready信号线以完成与所述主处理器的握手;
协处理器DMA从指令预取单元获取指令,将指令发送到指令解码单元进行解码;
状态机从指令解码单元调取解码后的指令,根据该指令调用相应的执行单元进行执行工作;所述执行单元包括熵计算加速单元、CNN向量计算单元、定点乘法器和浮点乘法器;
所述状态机接收到所述执行单元反馈的执行信号后,发送请求信号到nice接口以实现与nice接口进行握手,反馈执行信号到所述主处理器和所述协处理器DMA;
当所述执行单元断电时,isolation单元发送钳位值到always on模块,以使所述always on模块发送断电信号到所述主处理器;
所述主处理器发送关闭信号到所述协处理器的电源开关,以控制该电源开关断开,以控制所述协处理器停止工作。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8任一所述的一种基于低功耗协处理器的处理方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-8任一所述的一种基于低功耗协处理器的处理方法。
CN202310070865.4A 2023-01-13 2023-01-13 基于低功耗协处理器的处理方法及系统 Pending CN116149731A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310070865.4A CN116149731A (zh) 2023-01-13 2023-01-13 基于低功耗协处理器的处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310070865.4A CN116149731A (zh) 2023-01-13 2023-01-13 基于低功耗协处理器的处理方法及系统

Publications (1)

Publication Number Publication Date
CN116149731A true CN116149731A (zh) 2023-05-23

Family

ID=86355683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310070865.4A Pending CN116149731A (zh) 2023-01-13 2023-01-13 基于低功耗协处理器的处理方法及系统

Country Status (1)

Country Link
CN (1) CN116149731A (zh)

Similar Documents

Publication Publication Date Title
US10216693B2 (en) Computer with hybrid Von-Neumann/dataflow execution architecture
US9164698B2 (en) Memory having internal processors and methods of controlling memory access
EP1550032B1 (en) Method and apparatus for thread-based memory access in a multithreaded processor
US10599428B2 (en) Relaxed execution of overlapping mixed-scalar-vector instructions
US8769509B2 (en) Methods and apparatus for preserving precise exceptions in code reordering by using control speculation
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
US9182992B2 (en) Method for improving performance of a pipelined microprocessor by utilizing pipeline virtual registers
US8572355B2 (en) Support for non-local returns in parallel thread SIMD engine
JP2002544618A (ja) 電力消費を低減するシステムおよび方法
JPH05100948A (ja) 2乗演算を実行する速度改良型データ処理システム及びその方法
JP2004511042A (ja) プログラム可能なプロセッサのリセット
US5732251A (en) DSP with register file and multi-function instruction sequencer for vector processing by MACU
CN112988238A (zh) 一种基于可扩展指令集cpu内核的扩展运算装置及方法
CN116149731A (zh) 基于低功耗协处理器的处理方法及系统
US20150012726A1 (en) Loop streaming detector for standard and complex instruction types
US11269649B2 (en) Resuming beats of processing of a suspended vector instruction based on beat status information indicating completed beats
CN104391563A (zh) 一种寄存器堆的循环缓冲电路及其方法,处理器装置
US9983932B2 (en) Pipeline processor and an equal model compensator method and apparatus to store the processing result
CN116775134A (zh) 一种除颤仪用协处理器
Fryza et al. Frequency Domain FIR filter optimization for multi-core C6678 DSP
JP2003536132A (ja) Vliwプロセッサでの部分的パイプライン式命令の同期
CN117667211A (zh) 指令同步控制方法、同步控制器、处理器、芯片和板卡
Ghosh et al. ASPEN: An asynchronous signal processor for energy efficient sensor nodes
GS et al. ReuseSense: With Great Reuse Comes Greater Efficiency; Effectively Employing Computation Reuse on General-Purpose CPUs
CN117785784A (zh) 一种适用于多核数据处理器的cpu实现装置和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication