会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 一种协处理器

一种协处理器

阅读:490发布:2020-05-13

IPRDB可以提供一种协处理器专利检索,专利查询,专利分析的服务。并且本发明公开了一种协处理器,属于集成电路设计领域。所述协处理器包括:存储模块、地址产生模块、寄存器组模块、控制电路模块和计算模块。本发明提供的协处理器可以进行基于HMM语音识别算法的马氏距离计算和乘累加运算,能够提高嵌入式语音识别系统的性能,同时可完成通用DSP中的矢量乘累加运算,扩展了其通用性,具有提高性能,降低成本,降低功耗的优点。,下面是一种协处理器专利的具体信息内容。

1.一种协处理器,其特征在于,所述协处理器包括:存储模块、地址产生模块、寄存器 组模块、控制电路模块和计算模块;

所述存储模块通过内部地址总线与所述地址产生模块相连,通过外部地址总线、外部数 据总线和外部控制总线与外部处理器相连,通过内部控制总线与所述控制电路模块相连,通 过内部数据总线与所述计算模块相连,用于存储计算过程中的特征矢量、模型状态矢量和计 算结果;

所述地址产生模块通过内部数据总线与所述寄存器组模块相连,通过内部控制总线与所 述控制电路模块相连,用于在所述控制电路的作用下产生所述存储模块中存储的特征矢量和 计算结果的地址;

所述寄存器组模块与所述存储模块统一编址,通过内部数据总线与所述计算模块相连, 用于存储各个特征矢量和计算结果的起始地址;

所述控制电路模块的输入端通过内部数据总线与所述寄存器组模块的输出端相连,用于 通过读所述寄存器组模块中的各个寄存器的内容进行计数器初始化控制、矢量乘累加控制和 矢量乘乘累加控制;

所述计算模块与内部数据总线和内部控制总线相连,用于对所述存储模块中的特征矢量 进行绝对值运算和乘乘加运算,并将计算的结果通过内部数据总线输出给所述存储模块。

2.如权利要求1所述的协处理器,其特征在于,所述存储模块包括:第一选择器、输入 数据端口、第二选择器、地址端口、第三选择器、控制端口、输出数据端口和存储单元;

所述第一选择器与外部数据总线相连和内部数据总线相连;

所述输入数据端口通过所述第一选择器与外部数据总线或内部数据总线相连,用于将收 到的数据写入所述存储单元;

所述第二选择器与外部地址总线或内部地址总线相连;

所述地址端口通过所述第二选择器与外部地址总线或内部地址总线相连,为所述存储单 元中的数据提供对应的地址;

所述第三选择器与外部控制总线或内部控制总线相连;

所述控制端口通过所述第三选择器与外部控制总线或内部控制总线相连,控制所述存储 单元的工作状态;

所述输出数据端口的输入端与所述存储单元相连,输出端分别与外部数据总线和内部数 据总线相连,用于通过外部数据总线向外部处理器输入数据或通过内部数据总线向所述计算 模块输入数据;

所述存储单元与所述输入数据端口、所述地址端口、所述控制端口和所述输出数据端口 相连,用于存储特征矢量及计算结果。

3.如权利要求1所述的协处理器,其特征在于,所述地址产生模块包括:多个计数器和 一个选择器;

所述多个计数器的输入端与内部数据总线相连,输出端与所述选择器相连,分别用于产 生所述控制电路模块中的特征矢量的当前数据地址和产生所述计算模块的计算结果的地址;

所述选择器的输出端与内部地址总线相连,用于将所述多个计数器产生的地址输出给内 部地址总线。

4.如权利要求1所述的协处理器,其特征在于,所述寄存器组模块包括:多个寄存器和 译码器;

所述多个寄存器的输出端与内部数据总线相连,输入端与外部数据总线相连,分别用于 存放不同待计算矢量的起始地址、保护溢出设置和计算方式设置;

所述译码器的输出端与所述多个寄存器的使能端相连,用于控制所述多个寄存器值的写 入。

5.如权利要求1所述的协处理器,其特征在于,所述控制电路模块包括:计数器、电路 开关、计数器初始化控制单元、矢量乘累积运算控制单元和马氏距离运算控制单元;

所述计数器为一向下计数器,与内部数据总线相连,用于根据所述寄存器组模块通过内 部数据总线输出的设置状态控制循环计算的次数;

所述电路开关有两个输入端,所述两个输入端分别与所述计数器和内部数据总线相连, 用于根据所述计数器的输出值或内部数据总线输入的所述寄存器组模块的状态值控制电路模 块开通或关闭;

所述计数器初始化控制单元的输入端与所述电路开关的输出端和内部数据总线相连,用 于当所述电路开关开通时,对所述计数器进行初始化控制,以及选通所述矢量乘累积运算控 制单元或所述马氏距离运算控制单元;

所述矢量乘累积运算控制单元的输入端与所述计数器初始化控制单元的输出端相连,用 于控制所述计算模块进行乘累加运算,并将最终计算结果输出;

所述马氏距离运算控制单元的输入端与所述计数器初始化控制单元的输出端相连,用于 控制所述计算模块进行马氏距离运算,并将最终计算结果输出。

6.如权利要求1所述的协处理器,其特征在于,所述计算模块包括:绝对值运算单元、 乘乘加运算单元和输出端口;

所述绝对值运算单元与内部数据总线相连,用于对输入的两个特征矢量进行绝对值运算, 并将计算的结果输出到所述乘乘加运算单元;

所述乘乘加运算单元具体包括:两个选择器、移位器、乘法器和累加器,所述两个选择 器分别与所述绝对值运算单元和内部数据总线相连,用于接收所述绝对值运算单元的计算结 果和另一特征矢量;

所述移位器的输入端与内部数据总线相连,输出端与所述两个选择器相连,用于对所述 乘法器的运算结果进行移位;

所述乘法器的输入端与所述两个选择器相连,用于对所述两个选择器中输出的特征矢量 进行乘法运算;

所述累加器与所述移位器和所述乘法器相连,用于对移位后的结果进行平方累加运算, 将累加运算结果传输给所述输出端口;

所述输出端口与所述乘乘加运算单元的输出端相连,用于将所述乘乘加运算单元的计算 结果输出给内部数据总线,通过内部数据总线将计算结果传输给所述存储模块。

7.如权利要求1所述的协处理器,其特征在于,所述存储模块为标准静态随机存取存储 器SRAM。

说明书全文

技术领域

本发明属于信息技术领域中超大规模集成电路SOC(System On Chip,片上系统)设计 领域,特别涉及新一代嵌入式语音识别应用领域,尤其是一种基于HMM(Hidden Markov Models, 隐含马尔可夫模型)的马氏距离计算和矢量乘累加运算的协处理器。

背景技术

嵌入式语音识别系统的研究一直是语音识别技术应用的重要的发展方向。它为移动式、 小型化产品提供了良好的人机语音交互,如第三代智能化语言学习机、电话的语音拨号、mp3 等娱乐产品的语音检索、车载的语音控制系统、智能玩具和家电语音遥控等。近几年来由于 嵌入式MCU(Micro Controller Unit,微控制器)和DSP(Digital Signal Processor,数 字信号处理器)处理性能的提高以及语音识别算法的改进;国内外已有嵌入式语音处理SOC 实现,而且开始批量应用。但是高性能的语音识别算法是比较复杂的,现有芯片的识别性能, 识别算法运算时间,功耗以及成本都不能很好地满足应用的需求。例如实现基于字词连续隐 含马尔可夫模型(Hidden Markov Model,HMM)的中等词表识别任务,对16bit定点DSP(如 TI的计数器2054系列)约需100MHz的时钟频率,对32bit的MCU芯片(如ARM9)约需200MHz 的时钟频率,这些芯片的功耗大、成本高,难于在便携设备上普遍使用。
而硬件实现语音识别算法的速度很快,参见图1,将语音识别中的关键算法通过大规模 集成电路作成语音识别关键运算模块来实现,将该语音识别关键运算模块作为协处理器,配 合主控CPU工作或嵌入主控CPU中,这样可以使主控CPU在较低的时钟频率下完成语音识别 处理的功能,进而降低功耗和成本。
参见图2,基于HMM的嵌入式语音识别算法包括三个基本步骤:
步骤11:对原始数字语音进行特征提取,得到语音特征矢量。如MFCC(Mel-Frequency Ceptral Coefficients,Mel频率倒谱系数)特征矢量;
步骤12:根据语音特征矢量与声学HMM模型计算输出概率;
步骤13:利用得到的输出概率矩阵对识别网络进行网络搜索得到最终的识别结果。
其中,计算输出概率的运算量将占到整个系统运算量的70%以上,而计算输出概率的运 算又以马氏距离计算为主,即使对算法进行优化后,仍然占整个运算量的55%。
为达到实时处理语音识别系统,现有技术只能用DSP进行马氏距离的计算。由于DSP是 针对通用计算的目标优化的,其针对马氏距离中的乘乘加基本运算不能高效处理,因此,应 用大规模集成电路实现马氏距离计算芯片对提高嵌入式语音识别系统的性能至关重要。

发明内容

为了提高运算效率及降低运算成本,本发明提供了一种协处理器。所述技术方案如下:
一种协处理器,所述协处理器包括:存储模块、地址产生模块、寄存器组模块、控制电 路模块和计算模块;
所述存储模块通过内部地址总线与所述地址产生模块相连,通过外部地址总线、外部数 据总线和外部控制总线与外部处理器相连,通过内部控制总线与所述控制电路模块相连,通 过内部数据总线与所述计算模块相连,用于存储计算过程中的特征矢量、模型状态矢量和计 算结果;
所述地址产生模块通过内部数据总线与所述寄存器组模块相连,通过内部控制总线与所 述控制电路模块相连,用于在所述控制电路的作用下产生所述存储模块中存储的特征矢量和 计算结果的地址;
所述寄存器组模块与所述存储模块统一编址,通过内部数据总线与所述计算模块相连, 用于存储各个特征矢量和计算结果的起始地址;
所述控制电路模块的输入端通过内部数据总线与所述寄存器组模块的输出端相连,用于 通过读所述寄存器组模块中的各个寄存器的内容进行计数器初始化控制、矢量乘累加控制和 矢量乘乘累加控制;
所述计算模块与内部数据总线和内部控制总线相连,用于对所述存储模块中的特征矢量 进行绝对值运算和乘乘加运算,并将计算的结果通过内部数据总线输出给所述存储模块。
所述存储模块包括:第一选择器、输入数据端口、第二选择器、地址端口、第三选择器、 控制端口、输出数据端口和存储单元;
所述第一选择器与外部数据总线相连和内部数据总线相连;
所述输入数据端口通过所述第一选择器与外部数据总线或内部数据总线相连,用于将收 到的数据写入所述存储单元;
所述第二选择器与外部地址总线或内部地址总线相连;
所述地址端口通过所述第二选择器与外部地址总线或内部地址总线相连,为所述存储单 元中的数据提供对应的地址;
所述第三选择器与外部控制总线或内部控制总线相连;
所述控制端口通过所述第三选择器与外部控制总线或内部控制总线相连,控制所述存储 单元的工作状态;
所述输出数据端口的输入端与所述存储单元相连,输出端分别与外部数据总线和内部数 据总线相连,用于通过外部数据总线向外部处理器输入数据或通过内部数据总线向所述计算 模块输入数据;
所述存储单元与所述输入数据端口、所述地址端口、所述控制端口和所述输出数据端口 相连,用于存储特征矢量及计算结果。
所述地址产生模块包括:多个计数器和一个选择器;
所述多个计数器的输入端与内部数据总线相连,输出端与所述选择器相连,分别用于产 生所述控制电路模块中的特征矢量的当前数据地址和产生所述计算模块的计算结果的地址;
所述选择器的输出端与内部地址总线相连,用于将所述多个计数器产生的地址输出给内 部地址总线。
所述寄存器组模块包括:多个寄存器和译码器;
所述多个寄存器的输出端与内部数据总线相连,输入端与外部数据总线相连,分别用于 存放不同待计算矢量的起始地址、保护溢出设置和计算方式设置;
所述译码器的输出端与所述多个寄存器的使能端相连,用于控制所述多个寄存器值的写 入。
所述控制电路模块包括:计数器、电路开关、计数器初始化控制单元、矢量乘累积运算 控制单元和马氏距离运算控制单元;
所述计数器为一向下计数器,与内部数据总线相连,用于根据所述寄存器组模块通过内 部数据总线输出的设置状态控制循环计算的次数;
所述电路开关有两个输入端,所述两个输入端分别与所述计数器和内部数据总线相连, 用于根据所述计数器的输出值或内部数据总线输入的所述寄存器组模块的状态值控制电路模 块开通或关闭;
所述计数器初始化控制单元的输入端与所述电路开关的输出端和内部数据总线相连,用 于当所述电路开关开通时,对所述计数器进行初始化控制,以及选通所述矢量乘累积运算控 制单元或所述马氏距离运算控制单元;
所述矢量乘累积运算控制单元的输入端与所述计数器初始化控制单元的输出端相连,用 于控制所述计算模块进行乘累加运算,并将最终计算结果输出;
所述马氏距离运算控制单元的输入端与所述计数器初始化控制单元的输出端相连,用于 控制所述计算模块进行马氏距离运算,并将最终计算结果输出。
所述计算模块包括:绝对值运算单元、乘乘加运算单元和输出端口;
所述绝对值运算单元与内部数据总线相连,用于对输入的两个特征矢量进行绝对值运算, 并将计算的结果输出到所述乘乘加运算单元;
所述乘乘加运算单元具体包括:两个选择器、移位器、乘法器和累加器,所述两个选择 器分别与所述绝对值运算单元和内部数据总线相连,用于接收所述绝对值运算单元的计算结 果和另一特征矢量;
所述移位器的输入端与内部数据总线相连,输出端与所述两个选择器相连,用于对所述 乘法器的运算结果进行移位;
所述乘法器的输入端与所述两个选择器相连,用于对所述两个选择器中输出的特征矢量 进行乘法运算;
所述累加器与所述移位器和所述乘法器相连,用于对移位后的结果进行平方累加运算, 将累加运算结果传输给所述输出端口;
所述输出端口与所述乘乘加运算单元的输出端相连,用于将所述乘乘加运算单元的计算 结果输出给内部数据总线,通过内部数据总线将计算结果传输给所述存储模块。
所述存储模块为标准静态随机存取存储器SRAM。
本发明提供的技术方案的有益效果是:
本发明提供的协处理器可以进行基于HMM语音识别算法的马氏距离计算和乘累加运算, 能够提高嵌入式语音识别系统的性能,同时可完成通用DSP中的矢量乘累加运算,扩展了其 通用性,具有提高性能,降低成本,降低功耗的优点。

附图说明

图1是现有技术中的硬件实现语音识别算法的简单结构示意图;
图2是现有技术中的基于HMM的嵌入式语音识别算法的流程图;
图3是本发明实施例提供的协处理器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。
本实施例提供了一种协处理器,该协处理器采用标准SRAM(Static Random Access Memory,静态随机存取存储器)接口,可与多种微控制器MCU配合使用。该协处理器通过寄 存器编程控制,能够完成马氏距离运算和矢量乘累加运算。
参见图3,该协处理器由以下几部分组成:存储模块100、地址产生模块200、寄存器组 模块300、控制电路模块400和计算模块500,图中还包括内部地址总线:A1,外部地址总线: A2,内部数据总线:B1,外部数据总线:B2,内部控制总线:C1,外部控制总线:C2。
其中,存储模块100通过内部地址总线A1与地址产生模块200相连,通过外部地址总线 A2、外部数据总线B2和外部控制总线C2与外部处理器相连,通过内部控制总线C1与控制电 路模块400相连,通过内部数据总线B1与计算模块500相连,用于存储计算过程中的特征矢 量、模型状态矢量和计算结果;
地址产生模块200通过内部数据总线B1与寄存器组模块300相连,通过内部控制总线 C1与控制电路模块400相连,用于在控制电路的作用下产生存储模块100中存储的特征矢量 和计算结果的地址;
寄存器组模块300与存储模块100统一编址,通过内部数据总线B1与计算模块500相连, 用于存储各个特征矢量和计算结果的起始地址;
控制电路模块400的输入端通过内部数据总线B1与寄存器组模块300的输出端相连,用 于通过读寄存器组模块300中的各个寄存器的内容进行计数器初始化控制、矢量乘累加控制 和矢量乘乘累加控制;
计算模块500与内部数据总线B1和内部控制总线C1相连,用于对存储模块100中的特 征矢量进行绝对值运算和乘乘加运算,并将计算的结果通过内部数据总线B1输出给存储模块 100。
进一步地,存储模块100由1片可读写的单口SRAM组成,具体包括:第一选择器101、 输入数据端口102、第二选择器103、地址端口104、第三选择器105、控制端口106、输出 数据端口107和存储单元108;其中,
第一选择器101与外部数据总线B2或内部数据总线B1相连;
输入数据端口102通过第一选择器101与外部数据总线B2或内部数据总线B1相连,当 模块开始工作之前,第一选择器101一直选通外部数据总线B2通道,可保证外部数据的写入; 当模块开始工作之后,在控制电路模块400的控制下,第一选择器101选通内部数据总线B1, 可保证计算模块500的计算结果写入存储模块100的存储单元108中。
第二选择器103与外部地址总线A2或内部地址总线A1相连;
地址端口104通过第二选择器103与外部地址总线A2或内部地址总线A1相连,当模块 开始工作之前,第二选择器103一直选通外部地址总线A2通道;当模块开始工作之后,在控 制电路模块400的控制下,第二选择器103选通内部地址总线A1通道。
第三选择器105与外部控制总线C2或内部控制总线C1相连;
控制端口106通过第三选择器105分别与外部控制总线C2或内部控制总线C1相连,当 模块开始工作之前,控制端口106受控于外部处理器;当模块开始工作之后,控制端口106 受控于内部电路。
输出数据端口107的输入端与存储单元108相连,输出端分别与外部数据总线B2和内部 数据总线B1相连,用于通过外部数据总线B2向外部处理器输入数据和通过内部数据总线B1 向计算模块500输入数据;
存储单元108与输入数据端口102、地址端口104、控制端口106和输出数据端口107相 连,用于存储特征矢量及计算结果。
地址产生模块200在本实施例中具体包括:第一计数器201、第二计数器202、第三计数 器203、第四计数器204和第五计数器205共5个计数器,它们均为向上计数器。第一计数 器201、第二计数器202和第三计数器203分别用于产生控制电路模块400中的特征矢量的 当前数据地址,并且每组矢量存储的地址是连续的一段地址空间,第五计数器205用于产生 计算结果的地址,第四计数器204用于备选。5个计数器的输出端接在第四选择器206的输 入端上。根据实际需要,该模块中计数器的个数和功能可以进行变动。
第四选择器206,用于将上述计数器产生的地址输出给内部地址总线A1,第四选择器206 的输出端与内部地址总线A1相连。
寄存器组模块300在本实施例中包括8个寄存器,8个寄存器的数据输入端与外部数据 总线B2相连,本实施例分别为第一寄存器301、第二寄存器302、第三寄存器303、第四寄 存器304、第五寄存器305、第六寄存器306、第七寄存器307和第八寄存器308,其功能和 地址参见表1。
第一寄存器301、第二寄存器302、第三寄存器303、第四寄存器304、第五寄存器305 和第六寄存器306的输出分别接入第六计数器401、第一计数器201、第二计数器202、第三 计数器203、第四计数器204和第五计数器205的输入。
第七寄存器307为移位寄存器,输出接入计算模块500的移位器505。
第八寄存器308为状态寄存器,输出接入控制电路模块400。
表1
    寄存器 地址     功能 第一寄存器301  0xff0 第六计数器401初始化寄存器,用于控制循环计算的次数 第二寄存器302  0xff1 第一计数器201初始化寄存器,用于存放待计算矢量的起始地址 第三寄存器303  0xff2 第二计数器202初始化寄存器,用于存放待计算矢量的起始地址 第四寄存器304  0xff3 第三计数器203初始化寄存器,用于存放待计算矢量的起始地址 第五寄存器305  0xff4 第四计数器204初始化寄存器,用于存放待计算矢量的起始地址 第六寄存器306  0xff5 第五计数器205初始化寄存器,用于存放保存计算结果的起始地址 第七寄存器307  0xff6 移位数寄存器,用于硬件保护溢出设置 第八寄存器308  0xff7 状态寄存器,其功能见表2。
根据实际需要,该模块中寄存器的个数和功能可以进行变动。其中,第八寄存器308为 状态寄存器,其功能参见表2。
表2
    位数     值为0     值为1   第0位 不对第六计数器401初始化,第六 计数器401以当前内部值进行计数; 对第六计数器401初始化,读入第一 寄存器301的值;   第1位 不对第一计数器201初始化,第一 计数器201以当前内部值进行计数; 对第一计数器201初始化,读入第二 寄存器302的值;   第2位 不对第二计数器202初始化,第二 计数器202以当前内部值进行计数; 对第二计数器202初始化,读入第三 寄存器303的值;   第3位 不对第三计数器203初始化,第三 计数器203以当前内部值进行计数; 对第三计数器203初始化,读入第四 寄存器304的值;   第4位 不对第四计数器204初始化,第四 计数器204以当前内部值进行计数; 对第四计数器204初始化,读入第五 寄存器305的值;   第5位 不对第五计数器205初始化,第五 计数器205以当前内部值进行计数; 对第五计数器205初始化,读入第六 寄存器306的值;   第6位 进行马氏距离计算; 进行矢量乘累加运算;   第7位 停止工作,当内部计算结束后自动 将此位清0; 工作使能。
寄存器组模块300还包括译码器309,该译码器309与外部地址总线A2相连,译码器309 的输出接入上述8个寄存器的使能端。
控制电路模块400具体包括:第六计数器401、电路开关402、计数器初始化控制单元 403、矢量乘累积运算控制单元404和马氏距离运算控制单元405;其中,
第六计数器401为一向下计数器,与内部数据总线B1相连,用于根据寄存器组模块300 通过内部数据总线B1输出的设置状态控制循环计算的次数;
电路开关402有两个输入端,两个输入端分别与第六计数器401和内部数据总线B1相连, 用于根据第六计数器的输出值或内部数据总线B1输入的寄存器组模块300的状态值开通或关 闭控制电路模块400;
计数器初始化控制单元403的输入端与电路开关402的输出端和内部数据总线B1相连, 用于当电路开关402开通时,读取第八寄存器308中低8位的信息,根据低6位的值对第六 计数器401进行初始化控制,具体控制参见表2。根据第6位的值决定是进行乘累加运算还 是进行马氏距离运算,以及选通矢量乘累积运算控制单元404或马氏距离运算控制单元405;
矢量乘累积运算控制单元404的输入端与计数器初始化控制单元403的输出端相连,用 于控制计算模块500进行乘累加运算,并将最终计算结果输出;
马氏距离运算控制单元405的输入端与计数器初始化控制单元403的输出端相连,用于 控制计算模块500进行马氏距离运算,并将最终计算结果输出。
计算模块500具体包括:绝对值运算单元501、乘乘加运算单元502和输出端口508;
其中,
绝对值运算单元501与内部数据总线B1相连,用于完成绝对值运算,输入为矢量a、矢 量b,这两组矢量数据在存储模块100的起始地址保存在第二寄存器302和第三寄存器303 中。绝对值运算单元501将计算的结果输出到乘乘加运算单元502。
乘乘加运算单元502与所述绝对值运算单元和内部数据总线B1相连,具体包括:第五选 择器503、第六选择器504、移位器505、乘法器506和累加器507。该乘乘加运算单元502 通过设置第八状态寄存器308完成马氏距离运算或乘累加运算。
当进行马氏距离运算时,该乘乘加运算单元502在2个时钟周期完成一次马氏距离运算。 具体过程为:
在第一个时钟周期内,第五选择器503和第六选择器504分别接入绝对值运算单元501 的输出和矢量c,矢量c在存储模块100中的起始地址保存在第四寄存器304内。
在第二个时钟周期内,第五选择器503和第六选择器504接入移位器505的输出,移位 器505的输入是第一个时钟周期内乘法器506计算结果的输出,同时,通过流水线设计,累 加器507可在第二个时钟周期内完成对上一维平方结果的累加运算。
当进行乘累加运算时,该部件可在1个时钟周期内完成一次乘累加运算,此时第五选择 器503和第六选择器504分别接入矢量a和矢量b,在该时钟周期内,通过流水线设计,乘 法器506完成矢量a和矢量b当前元素的乘法运算,累加器507完成上一时钟周期乘法结果 的累加运算。结果产生单元主要是对计算结果进行防溢出控制。
输出端口508,用于将乘乘加运算单元502的计算结果输出给存储模块100的选择器101。
以应用上述协处理器进行马氏距离运算的过程如下:
如式(1)所示,ai,bi,ci为三个矢量,D为矢量维数。
Σ i = 1 D ( | a i - b i | · c i ) 2 - - - ( 1 )
在进行马氏距离运算之前,需将矢量ai,bi,ci的值事先写入存储模块100中,同一组 . 矢量必须存放在连续的一段地址空间内。将维数D写入寄存器301中,将ai的首地址写入寄 存器302,将bi的首地址写入第三寄存器303,将ci的首地址写入第四寄存器304,将存储 模块100中存储单元108内存放的计算结果的地址写入第五寄存器305。通常在进行公式(1) 的平方运算之前,需先将|ai-bi|·ci的值进行移位处理,可在第七寄存器307中提前预 设移位数,若不对第七寄存器307进行设置,则默认为对其进行16位移位操作。最后对状态 第八寄存器308进行设置,使电路按照预期目的工作。如将第八寄存器308设为0x00BF时, 表示电路将开始进行马氏距离运算,将对第六计数器401、第一计数器201、第二计数器202、 第三计数器203、第四计数器204和第五计数器205重新进行赋值,分别写入第一寄存器301、 第二寄存器302、第三寄存器303、第四寄存器304和第五寄存器305中的值。
电路开始工作之后,地址产生模块200首先选通第一计数器201的输出,向内部地址总 线A1输出矢量a首个元素的地址后使第一计数器201自增1,并通过内部数据总线B1向计 算模块500输出矢量a首个元素的值。
在第二个时钟周期,地址产生模块200选通第一计数器201的输出,向内部地址总线A1 输出矢量b首个元素的地址后使第二计数器202自增1,并通过内部数据总线B1向计算模块 500输出矢量b首个元素的值,绝对值计算单元501随即开始进行运算。
在第三个时钟周期,地址产生模块200选通第三计数器203的输出,向内部地址总线A1 输出矢量c首个元素的地址后使第三计数器203自增1,并通过内部数据总线B1向计算模块 500输出矢量c首个元素的值,此时绝对值计算已经完成,计算模块中的第五选择器503和 第六选择器504将分别选通绝对值计算单元501的输出和矢量c,电路开始进行乘法运算。
在第四个时钟周期,地址产生模块200将选通第一计数器201的输出,向内部地址总线 A1输出矢量a第二个元素的地址后使第一计数器201自增1,并通过内部数据总线B1向计算 模块500输出矢量a第二个元素的值,此时上一时钟周期内的乘法运算已经完成,其结果输 入到移位器505,计算模块500中的第五选择器503和第六选择器504将选通移位器的输出, 准备进行平方运算。
在第五个时钟周期,地址产生模块200选通第二计数器202的输出,向内部地址总线A1 输出矢量b第二个元素的地址后使第二计数器202自增1,并通过内部数据总线B1向计算模 块500输出矢量b第二个元素的值,绝对值计算随即开始进行,与此同时,上一周期的平方 运算也已经完成,其计算结果输入累加器507准备进行累加运算。
在第六个时钟周期,地址产生模块200选通第三计数器203的输出,向内部地址总线A1 输出矢量c第二个元素的地址后使第三计数器203自增1,并通过内部数据总线B1向计算模 块500输出矢量c第二个元素的值,此时上一周期的绝对值计算和累加计算都已经完成,电 路将对第六计数器401自减1,并针对绝对值计算结果进行乘法运算。
在随后的时钟周期里,电路将重复上述第四个时钟周期到第六个时钟周期的工作。当第 六计数器401输出为0时,计算结束,计算模块500停止工作。输出端口508先将计算结果 高16位写入内部数据总线B1,同时,地址产生模块200选通第五计数器205的输出,向内 部地址总线A1输出计算结果高16位存放的地址后使第五计数器205自增1,控制电路模块 400通过内部控制信号控制存储模块100将值写入相应位置;在下一个时钟周期,进行低16 位的操作,不在复述。计算结果写入结束后,控制电路模块400将寄存器r7的第7位清0, 等待下次调用。
以应用上述协处理器进行乘累加运算的过程如下:
如公式(2)所示,ai,bi为三个矢量,D为矢量维数。
Σ i = 1 D ( a i · b i ) - - - ( 2 )
在进行乘累加运算之前,需将矢量ai,bi的值事先写入存储模块100中,同一组矢量必 须存放在连续的一段地址空间内。将维数D写入第一寄存器301,将ai的首地址写入第二寄 存器302,将bi的首地址写入第三寄存器303,将片内存放计算结果的地址写入第六寄存器 306。最后对第八寄存器308进行设置,使电路按照预期目的工作。如将第八寄存器308设为 0x00E7时,表示电路将开始进行乘累加运算,并对第六计数器401、第一计数器201、第二 计数器202、第五计数器205重新进行赋值,分别写入第一寄存器301、第二寄存器302、第 三寄存器303、第六寄存器306中的值。
电路开始工作之后,地址产生模块200首先选通第一计数器201的输出,向内部地址总 线A1输出矢量a首个元素的地址后使第一计数器201自增1,并通过内部数据总线B1向计 算模块500输出矢量a首个元素的值;
在第二个时钟周期,地址产生模块选通第二计数器202的输出,向内部地址总线A1输出 矢量b首个元素的地址后使第二计数器202自增1,并通过内部数据总线B1向计算模块500 输出矢量b首个元素的值,计算模块500中的第五选择器503和第六选择器504将分别选通 矢量a和矢量b,电路开始进行乘法运算;
在第三个时钟周期,地址产生模块200选通第一计数器201的输出,向内部地址总线A1 输出矢量a第二个元素的地址后使第一计数器201自增1,并通过内部数据总线B1向计算模 块500输出矢量a第二个元素的值,此时上一周期的乘法运算已经完成,其计算结果输入到 累加器507中准备进行累加运算;
在第四个时钟周期,地址产生模块将选通第二计数器202的输出,向内部地址总线A1输 出矢量b第二个元素的地址后使第二计数器202自增1,并通过内部数据总线B1向计算模块 500输出矢量b第二个元素的值,计算模块500中乘法器的第五选择器503和第六选择器504 将分别选通矢量a和矢量b,电路开始进行乘法运算,此时上一时钟周期内的累加运算已经 完成,将计数器401自减1;
在随后的时钟周期里,电路将上述重复第三个时钟周期和第四个时钟周期的工作。当第 六计数器401输出为0时,计算结束,计算模块500停止工作。计算结果在存储模块100中 的写入方式与马氏距离运算模式下的写入方式相同,不在复述。计算结果写入结束后,控制 电路模块400将第八寄存器308的第7位清0,等待下次调用。
本发明实施例提供的协处理器可将嵌入式语音识别中计算量约占50%的马氏距离计算用 硬件逻辑实现。该协处理器大大提高嵌入式语音识别系统的性能,并进一步推动语音识别在 便携设备上的广泛使用。此外,该协处理器有很强的可扩展性,可以作为单独运用在许多实 时语音识别应用领域,如语言学习机、车载免提系统、声控MP3等。本协处理器的技术指标 如表3所示。
表3
  目标库 和舰0.18微米CMOS工艺库   规模 管芯面积0.9mm×0.8mm 逻辑部分规模:12000等效门(标准2输入与非门) SRAM规模:64K比特   功能 完成基于“马氏距离”矢量乘乘加运算和矢量乘累加运算   最高工作频率 150MHz   识别规模 处理语音帧数可调,最大处理容量为8K采样下128帧语音数据   性能 在50MHz的工作频率下,当模型状态数为358时,识别一句128 帧的8K采样语音数据时,需要0.27秒
本发明提供的协处理器完成了基于HMM语音识别算法的马氏距离计算和乘累加运算。进 行同样维数的马氏距离计算,本发明需要的时间仅为用DSP计算需要的时间的20%,因此应 用该协处理器可以大大提高嵌入式语音识别系统的性能,也省去了价格昂贵的DSP器件,同 时可完成通用DSP中的矢量乘累加运算,扩展了其通用性,从而达到提高性能,降低成本, 降低功耗的目标。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用