运算电路及其运算控制方法

文档序号:7508252阅读:520来源:国知局
专利名称:运算电路及其运算控制方法
技术领域
本发明涉及一种并行执行乘法运算和加法运算的积和运算电路及其运算控制方法。
背景技术
近年来计算机发生了飞跃的发展并且被应用在社会的各个方面。然而,由于其自身在处理方案中的特征,这些被称为诺尔曼类型的计算机在对于人类很容易的处理方面(例如,实时人脸识别)能力非常弱。
为了进行这种处理,已经对作为运算处理模型而模仿大脑的信息处理方案的神经网络进行了研究。
作为形成神经网络的神经元的模型,通常用突触权重对多个单元(神经元)的输出值进行加权,并且将该乘积输入到对应于神经元的单元。输入值的和进一步非线性被转换和输出。也就是,在通常的神经网络中,由在每个单元内以及单元之间的积和运算和非线性转换来实现期望的处理。
作为使用了神经模型的神经网络体系结构,传统上提出了将执行积和运算的单元彼此连接起来的相联存储器,或是将执行积和运算的单元分等级地连接起来的模式识别模型。
神经网络是一种超级并联的分布式信息处理模型。当其由基于顺序处理的诺尔曼计算机执行时,就会效率低下。因此,为了将神经网络运用在实际使用中,有效的是形成一种作为专用硬件的集成电路。
在形成集成电路中,由数字电路进行的数字处理适于输入入数据的存储和可控性。然而,当模拟运算电路被使用作运算电路以实现上述的积和运算或非线性转换时,相较于数字运算电路,元件的数量可以大大地减少。
也就是说,为了将神经网络运用到实际使用中,有效的是将数字电路和模拟电路应用到运算处理单元中,在其中它们的特征特性可以有效地工作并且最终形成其中数字电路和模拟电路混合的集成电路。
在这种情况下,将数字电路和模拟电路连接起来的接口单元必须以适合于相应电路的信号形式输入/输出数据。
例如,为了使数字存储器保持在其脉宽上具有信息的PWM(脉宽调制)信号,该PMW信号由脉宽/数字转换电路转换为数字值。接着,该PWM信号被输入并且保存在数字存储器中。
此外,为了输出作为PWM信号而在电容器上累积的模拟电压值,由比较器将该模拟电压值转换为具有与该模拟电压值成比例的时间宽度的脉冲并且将它输出。
当将上述的方法进行结合以临时将模拟电压转换为PWM信号并接着引发脉宽/数字转换电路以将生成的PWM信号转换为数字值时,可以实现A/D转换。
作为将数字值转换为模拟电压值的D/A转换电路,经常使用数字/脉宽转换电路、开关电流源以及电容器的组合。
更确切地,由数字/脉宽转换电路将数字值转换为宽度具有与数字值成比例的值的脉冲。该开关电流源由脉冲进行开/关以在电容器中累积与脉宽成比例的电荷。相应地,该数字值最终被转换为作为电容器电压值的模拟值。
D/A转换电路中的该数字/脉宽转换电路指的是这样一种电路,其具有将数字输入值转换为具有与该数字输入值成比例的时间宽度的脉冲的功能。已知的电路将从由时钟操作的计数器输出的计数值与数字输入值进行比较,并且使得当两个值重合时脉冲输出下降(例如,日本专利公开No.4-2222)。
图43是表示了传统的数字/脉宽转换电路的一个示例的框图(日本专利公开No.4-2222的图1)。图43所示的传统的数字/脉宽转换电路包括了选通检测电路101、锁存电路102、计数器103、数字比较器104以及JK触发器105。
在接收到选通信号NOT(STB)后,选通检测电路101在第一时钟CLK的前沿输出定时启用信号E1和E2。该定时启用信号E1在下一个时钟的前沿变为L电平。另一方面,该定时启用信号E2始终在H电平而清零信号NOT(复位)在H电平。
锁存电路102对从外部设备输出的16数字数据比特D0锁存到D16并且将其作为锁存数据Q0输出到Q15。16比特计数器103对时钟CLK进行计数并且输出计数值C0到C15。当计数值达到FFFF时,计数器103输出计数满信号C.O.。
数字比较器104将锁存数据Q0到Q15与计数值C0到C15进行比较。该数字比较器104输出H电平到JK触发器105直到计数值C0到C15超出锁存数据Q0到Q15。当计数值C0到C15超出锁存数据Q0到Q15时,数字比较器104将输出值反转到L电平。
在处理周期的开始,从数字比较器104输出的信号被输入到JK触发器105的输入端J。该JK触发器105的输出Q保持H电平。在从数字比较器104输出的信号被反转到L电平之后的第一个时钟CLK的前沿,该JK触发器105将输出Q反转到L电平。在接收到计数满信号C.O.之后,该JK触发器105将输出Q返回到H电平。
通过这种布置,时间宽度与数字数据D0到D16的值成比例的脉冲被输出到JK触发器105的输出Q。
接着描述脉宽/数字转换电路。传统上,脉宽/数字转换电路被广泛地使用在积分A/D转换器上。其技术内容被披露在例如YasojiSuzuki和Masahiro Yoshida所著的“Introduction to Pulse/DigitalCircuit”,Nikkan Kogyo Shimbun,出版日期为2001年7月26日,225-232页。
图44为使用在积分A/D转换器上的传统脉宽/数字转换电路的电路图。
传统的脉宽/数字转换电路111具有简单的布置,包括“与”门电路112以及计数器113。经过了数字/脉宽转换的输入脉冲PW以及时钟CLK被输入到该“与”门电路112。该“与”门电路112输出作为输入脉冲PW和时钟CLK的“与”信号的门信号g到计数器113。该计数器113对输入门信号g的前沿进行计数并且将计数值作为m比特数字输出D={D0,...,Dm-1}输出。
根据这种布置,当输入脉冲PW在H电平时,“与”门112为启用的。当输入脉冲PW在L电平时,“与”门112为禁用的。当“与”门112为启用的时,时钟CLK作为门信号g输出。计数器113对时钟输出作为门信号g进行计数。通过这种运算,就获得了作为数字输出D={D0,...,Dm-1}的与输入脉冲PW的宽度成比例的计数值。
在并行执行乘加的积和运算电路中,由于其结构的简单,故而使用数字/脉宽转换电路、使用了数字/脉宽转换电路的D/A转换电路以及使用了脉宽/数字转换电路的A/D转换电路是非常有效的。
然而,当在并行执行多个数字输入值的数字/脉宽转换并且输出调制脉冲的装置中使用该数字/脉宽转换电路时,该电路的面积以及功率消耗随着并行操作的数字/脉宽转换电路的数目而成比例地增加。
为了并行地执行多个数字输入值的数字/脉宽转换,平行布置有数个如图43所示的数字/脉宽转换电路,并且数字输入值被分别输入到数字/脉宽转换电路。当从数字/脉宽转换电路输出的脉冲被提取时,就可以并行执行数字/脉宽转换。
然而,在这种情况下,每个数字/脉宽转换电路的电路面积随着电路的数目成比例地增长。此外,时钟的切换操作频繁地执行。出于这个原因,当合计所有的数字/脉宽转换电路的驱动功率时,会消耗相当多的功率。这样,在要求缩小尺寸以及低的功率消耗的例如便携式设备的装置中,使用数字/脉宽转换电路来并行执行多个数字输入值的数字/脉宽转换是困难的。
同样地,当如图44所示的脉宽/数字转换电路被用于并行执行多个脉冲输入的脉宽/数字转换并且输出数字值的装置中时,该脉宽/数字转换电路111的总功率消耗相当地高。
更确切地,当如图44所示的脉宽/数字转换电路111用于每个脉冲输入时,多个计数器113并行执行切换操作。出于这个原因,即使当每一个计数器113都包括例如CMOS时,由计数器113进行的切换的负载电容的充电/放电中的充电/放电的功率消耗也是很高的。随着脉冲输入的数目的增加,充电/放电的功率消耗的增长是显著的。
此外,当多个计数器113并行操作时,计数器113的切换噪声增加。因此,就需要在整个电路中的抗噪方法。

发明内容
本发明的目的在于提供一种积和运算电路,其使用了数字/脉宽转换电路,将多个数字输入值并行转换为脉宽而同时节省了面积并且降低了功率消耗,还使用了脉宽/数字转换电路,在低的功率消耗下工作并且可以降低电路所生成的噪声。
为了实现上述目的,例如根据本发明的一个方面,提供一种积和运算电路,包括脉宽/数字转换电路,将具有代表操作数值的脉宽的脉冲信号转换为数字信号;排序电路,以大小递减或递增的顺序,输出多个由脉宽/数字转换电路转换为数字信号的操作数值;乘法电路,将从该排序电路输出的每一个操作数值乘以相应的操作数值;以及累积和电路,计算乘法电路的相乘结果的累积和,其中该脉宽/数字转换电路包括计数器,对时钟进行计数并且将计数值作为数字信号输出,以及多个后沿锁存电路,每一个后沿锁存电路在输入脉冲信号的后沿对从计数器输出的共用计数值进行锁存。
根据本发明的另一个方面,提供一种执行积和运算的方法,包括步骤将具有代表操作数值的脉宽的脉冲信号转换为数字信号;以大小递减或递增的顺序,输出多个转换为数字信号的操作数值;将每一个输出的操作数值乘以相应的操作数值;并且计算乘法结果的累积和,其中将脉冲信号转换为数字信号的步骤包括引发计数器对时钟进行计数并且输出计数值作为数字信号,以及引发多个后沿锁存电路在输入脉冲信号的后沿对从计数器输出的共用计数值进行锁存的步骤。
本发明的其它以及进一步的目的、特征以及优势将在以下结合附图的描述中变得明显,其中在全部附图中相同的参考标号指的是相同或相似的部分。


并入并且构成本说明书一部分的附图,说明了本发明的实施例,并且连同说明一起用于解释本发明的原理。
图1为表示根据第一实施例的积和运算电路的整体布置的示例的框图;图2为表示根据第一实施例的数字运算电路的布置示例的框图;图3为表示根据第一实施例的由输入值保持电路和排序电路形成的相联存储器电路的存储器单元结构的示例的视图;图4为表示根据第一实施例的存储器的存储器单元结构的示例的视图;图5为表示根据第一实施例的积和运算电路的整体布置的另一个示例的框图;图6为表示根据第二实施例的脉宽/数字转换电路的布置示例的电路图;图7为表示根据第一实施例的后沿锁存电路的内部布置的示例的电路图;图8为表示根据第一实施例的后沿锁存电路的内部布置的示例的电路图;图9为表示根据第一实施例的脉宽/数字转换电路的每一个信号电平变化的时序图;图10为表示根据第一实施例的另一个脉宽/数字转换电路的后沿锁存电路、前沿锁存电路以及减法电路的布置示例的电路图;图11为表示根据第一实施例的另一个脉宽/数字转换电路的每一个信号电平变化的时序图;图12为表示第二实施例的模拟运算电路的布置示例的框图;图13为表示根据第二实施例的输入值保持电路的布置示例的电路图;图14为表示根据第二实施例的排序电路的布置示例的电路图;图15为表示根据第二实施例的D/A转换电路的布置示例的电路图;图16为表示根据第二实施例的数字/脉宽转换电路的布置示例的电路图;图17为表示根据第二实施例的每一个脉冲产生电路的布置示例的框图;图18为表示根据第二实施例的数字/脉宽转换电路的运算的时序图;图19为表示根据第二实施例的权重值保持电路的布置示例的框图;图20为表示根据第二实施例的D/A转换电路的布置示例的框图;图21为表示根据第三实施例的积和运算电路的整体布置的示例的框图;图22为表示根据第三实施例的模拟运算电路的布置示例的框图;图23为表示根据第三实施例的锯齿波产生电路的布置示例的框图;图24为表示根据第四实施例的模拟运算电路的布置示例的框图;图25为表示根据第四实施例的积和运算电路的整体布置的示例的框图;图26为表示根据第四实施例的锯齿波产生电路的布置示例的框图;图27为表示根据第五实施例的积和运算电路的整体布置的示例的框图;图28为表示根据第六实施例的积和运算电路的整体布置的示例的框图;图29为表示根据第六实施例的锯齿波产生电路的布置示例的框图;
图30为表示根据第七实施例的积和运算电路的整体布置的示例的框图;图31为表示根据第七实施例的锯齿波产生电路的布置示例的框图;图32为表示神经网络模型的视图;图33A和图33B为表示根据第八实施例的积和运算电路的整体布置的示例的框图;图34为表示Sigmiod函数的视图;图35A和图35B为表示根据第八实施例的积和运算电路的整体布置的另一个示例的框图;图36A和图36B为表示根据第九实施例的积和运算电路的整体布置的示例的框图;图37为表示在根据第十实施例的积和运算电路中的排序电路和预定值保持存储器的框图;图38为表示在根据第十一实施例的积和运算电路中的排序电路、常数值保持存储器以及预定值保持存储器的框图;图39为表示在根据第十二实施例的积和运算电路中的排序电路和预定值(比)保持存储器的框图;图40为表示在根据第十三实施例的积和运算电路中的排序电路、预定值(比)保持存储器和常数值保持存储器的框图;图41A和图41B为表示根据第十四实施例的执行图像处理的积和运算电路的布置示例的框图;图42为表示在第十四实施例中的运算处理的流程图;图43为表示传统的数字/脉宽转换电路的示例的框图;图44为表示传统的脉宽/数字转换电路的示例的框图;图45为表示根据第二实施例的另一个数字/脉宽转换电路的框图;图46为表示根据第二实施例的脉冲产生电路的另一个布置示例的框图;图47为表示根据第二实施例的另一个数字/脉宽转换电路的运算的时序图;图48为表示根据第十五实施例的运算电路的整体布置的示例的框图;图49为表示根据第十五实施例的模拟运算电路以及包括在该运算电路中的电容器的框图;图50为表示包括在根据第十五实施例的运算电路中的模拟运算电路的视图;图51为表示根据第十五实施例的运算电路的运算处理的流程图;图52为表示根据第十七实施例的运算电路的整体布置的示例框图;图53为表示根据第十七实施例的D/A转换电路的布置示例的框图;图54为表示根据第十七实施例的运算处理的流程图;图55为表示根据第十八实施例的运算电路的整体布置示例的框图;图56为表示根据第十八实施例的A/D转换电路的布置的框图;图57为表示根据第十八实施例的运算处理的流程图;图58为表示根据第十九实施例的运算电路的整体布置示例的框图;图59为表示根据第十九实施例的运算处理的流程图;图60A和图60B为表示根据第二十实施例神经网络电路的布置的框图;图61为表示神经网络模型的布置的视图;图62A和图62B为表示根据第二十实施例的运算处理的流程图;图63A和图63B为表示根据第二十一实施例的具有神经网络电路的图像信号处理电路的布置示例的框图;图64A和图64B为表示根据第二十一实施例的运算处理的流程图。
具体实施例方式
以下参照附图对本发明的优选实施例进行详细描述。
(第一实施例)图1为表示根据本实施例的积和运算电路的框图;如图1所示,根据本实施例的积和运算电路包括具有多个运算电路(在图1所示的示例中的运算电路1到6)的运算电路100,输入值保持电路2保持操作数值Xi,权重值保持电路3保持操作数的值Wi,排序电路4以大小递减的顺序输出操作数值Xi,以及切换电路5将操作数值Xi和Wi输入到对应于操作数值Xi的标签的运算电路中。注意到操作数值Xi以及操作数值Wi中的i为后缀,表示了不同的X和W并且采用自然数,例如1,2,3,...(这也适用于下面的说明)。
图2表示其中运算电路1形成为数字电路的数字运算电路。运算电路2到6具有相同的布置。如图2所示,根据本实施例的数字运算电路包括包括三个寄存器6a到6c、乘法器7以及加减器8。
下面描述根据本实施例的积和运算电路的运算处理。
如图1所示,多个操作数值Xi保持在输入保持电路2中并且由排序电路4以大小递减的顺序进行排序并输出。在本实施例中,如果存在具有相同值的操作数值Xi,则其以任意的顺序输出。替代的是,可以提前设置适当的顺序。
接着,操作数值Xi具有的标签从排序电路4输入切换电路5。该切换电路5根据该标签执行切换以将从排序电路4输出的操作数值Xi输入到对应于该标签的运算电路。一个运算电路或多个运算电路可以对应于操作数值Xi的标签。在本实施例所描述的示例中,多个运算电路对应于一个标签。
在本实施例中,由输入保持电路2以及排序电路4执行的处理通过使用相联存储器电路完成。图3表示了该相联存储器电路的存储器单元结构的示例。如图3所示,该相联存储器电路保持操作数值Xi的值以及该操作数值Xi的标签。由输入保持电路2和排序电路4执行的处理可以通过使用相联存储器电路的一般功能以大小递减的顺序一个接一个地读出操作数Xi及其标签而完成。
也就是说,该相联存储器电路具有将输入搜索值与保持数据进行比较并且输出具有重合值的数据的功能。通过将从对应于最大操作数值Xi的值开始的搜索值以大小递减的顺序连续地输入到相联存储器电路,并且连续地读出具有重合值的数据而实现(可逆地,数据可以操作数值Xi的大小递增的顺序被读出)。在本实施例中,如上所述,输入保持电路2和排序电路4的功能由相联存储器电路完成。然而,详细的电路布置并不是本发明的关键。可以使用其它的电路布置只要其能够执行类似的处理。
从权重值保持电路3输出的多个操作数值Wi输入到预定的运算电路。在本实施例中,即使对于操作数值Wi,如同在操作数值Xi中,切换电路5根据每一个操作数值Xi执行切换,以输出操作数值Wi到由标签确定的预定运算电路。
不同于本实施例,操作数值Wi应当被输入的运算电路可以提前设置为独立于操作数值Xi。另外,输入到每个运算电路的操作数值Wi的值可以保持不变或是在运算之间改变。
在本实施例中,权重值保持电路3可以由通用SRAM电路形成。然而,如同相联存储器,可以使用任何其它的电路布置只要其能够执行类似的处理。通过执行上述的处理,该操作数值Xi和操作数值Wi被输入到预定的运算电路。在本实施例中,预定的运算电路(也即,其中运算处理有待执行的电路)为图1中的运算电路3到5。
下面描述在操作数值Xi和操作数值Wi都输入的预定运算电路中将执行的运算处理。该运算处理不在没有操作数值Xi输入的运算电路中执行。
在该运算电路中,操作数值Xi以及操作数值Wi分别临时地保持在寄存器6a和6b中。接着,由乘法器7进行Xi×Wi运算。Xi×Wi的相乘结果被输入到加减器8,被加至保持在寄存器6c中的结果或者从寄存器6c的结果中减去。该结果保存在寄存器6c中。
通过重复上述的处理,多个Xi×Wi的相乘结果的累积值被保持在寄存器6c中。当预定数量的累积结束时,该累积值就被输出。如上所述,通过排序电路4中的处理将保持在寄存器6a中的操作数值Xi以大小递减的顺序输入。具有相同值的操作数值Xi连续地输入。出于这些原因,相较于其中操作数值Xi随机输入的情况,在寄存器中的数据转移频率变得较低,从而可以降低数据转移的功率消耗。
在本实施例中,操作数Xi本身从排序电路4输入到运算电路中。在相联存储器电路中以大小递减的顺序搜索操作数值Xi时,保持在运算电路的寄存器6a中的值可以仅在值Xi改变时发生改变。在这种情况下,从排序电路4输入到运算电路的并不是操作数值Xi本身而是一个指示着适当地更新寄存器6a中的值的标示信号。
在本实施例中,排序电路4将操作数值Xi排序为大小递减的顺序。即使当操作数值Xi是以大小递增的顺序进行排序时,也可以获得如上所述的相同效果。
在本实施例中,相联存储器电路的输出被直接输入到运算单位100和切换电路5。从相联存储器电路输出的以大小递减的顺序的操作数值Xi的数据可以被临时输入并保持在例如SRAM的存储器中并接着从该SRAM输入运算单位100和切换电路5。在这种情况下,标签和每个操作数值的值可以被保持在存储器中。代替该值的是,可以保持代表着按照大小递减的顺序安排的操作数值Xi的值发生改变的位置的标示,如上所述。图4表示了当标示被保持在SRAM中时存储器单元结构的示例。
下面参照图5对本实施例中操作数值Xi作为PWM信号被输入到输入值保持电路2的情况进行描述。
图5中所示的布置与本实施例的上述布置(图1)类似,除了在输入保持电路2的前一级上布置有脉宽/数字转换电路9。更确切地,每一个作为PWM信号输入的操作数值Xi由该脉宽/数字转换电路9转换为数字信号并且接着被保持在输入值保持电路2中。在这里将对该脉宽/数字转换电路9进行描述。
这里对PWM信号的特性进行简要地描述。在PWM(脉宽调制)信号中,脉冲波形的宽度具有信息。PWM信号具有抗噪的数字特性(代表着高电平和低电平的二进制信息被保持在电压方向上的特性)以及能够通过一个脉冲表达持续信息的模拟特性(代表着该持续信息被保持在时间方向上的特性)。
图6为表示脉宽/数字转换电路9的布置的电路图。
本实施例的脉宽/数字转换电路9包括计数器10以及n(n>2)个后沿锁存电路11-0到11-(n-1)。时钟CLK、脉冲输出触发XRST以及PWM信号PW0到PWn-1从外部输入到脉宽/数字转换电路9。供电电压VDD以及基底电压VSS被施加到该脉宽/数字转换电路9上。
具有预定周期的脉冲串被输入到时钟CLK。脉冲输出触发XRST指示着输入脉冲PW0到PWn-1的输出的开始。具有周期为时钟CLK的周期的M倍(M≥2m)并且时间宽度对应于时钟周期的反转脉冲被输出到脉冲输出触发XRST。
计数器10对外部输入的时钟CLK进行计数并且将计数值CNT0到CNTm-1作为m个数字信号比特输出。每一个后沿锁存电路11-i(i∈{0,1,...,n-1})在外部输入的PWM信号PWi的后沿锁存从计数器10输出的计数值CNT0到CNTm-1。每一个后沿锁存电路11-i将锁存的计数值CNT0到CNTm-1作为m个数字输出比特Di,0到Di,m-1输出。
图7为表示了图6所示的后沿锁存电路11-i的内部布置的电路图。
该后沿锁存电路11-i(i∈{0,1,...,n-1})包括m个锁存器12-0到12-(m-1)以及反转器13。反转器13对输入到后沿锁存电路11-i的PWM信号Pwi的电平进行反转。接着,该PWM信号PWi被输入到锁存器12-0到12-(m-1)的时钟输入端clk。从计数器10输出的计数值CNT0到CNTm-1被分别输入到锁存器12-0到12-(m-1)的数据输入端D。脉冲输出触发XRST被输入到锁存器12-0到12-(m-1)的复位输入端NOT(R)。从锁存器12-0到12-(m-1)的输出端Q输出的数据被作为数字输出数据Di={Di,0到Di,m-1}输出到外部。
作为锁存器12-0到12-(m-1)的每一个,图8表示了具有异步复位输入的同步D触发器。
下面描述根据本实施例的具有上述布置的脉宽/数字转换电路9的运算。
图9为表示在根据本实施例的脉宽/数字转换电路9的每个信号电平上的变化的时序图。具有预定周期T和宽度T/2的脉冲被持续输入到时钟CLK。该脉冲输出触发XRST在时刻t1输出具有宽度为T的反转脉冲。相应地,从锁存器12-0到12-(m-1)的输出被复位,并且所有的数字输出数据Di被复位到0。
PWM信号PWi(i∈{0,1,...,n-1})的输出从脉冲输出触发XRST的前沿开始(时刻t2)。同时,计数器10开始对时钟CLK计数。在时钟CLK的前沿,计数器10将计数值增加1。该PWM信号PWi与计数器10的计数开始同步而被输入。
在时刻t3,该PWM信号PWi从H电平被反转到L电平。相应地,从反转器13的输出NOT(PWi)从L电平提升到H电平。每一个锁存器12-j(j∈{0,1,...,m-1})在反转器13的输出NOT(PWi)的前沿锁存输入到数据输入端D的计数值CNTj的电平并且从数据输出端Q输出该计数值CNTj。
每一个后沿锁存电路11-i(i∈{0,1,...,n-1})在PWM信号PWi的后沿锁存计数器10的计数值CNT(i)={CNT(i)0,CNT(i)1,...,CNT(i)m-1})。该计数值CNT(i)与PWM信号PWi的脉宽成比例。
当从计数器10的计数开始至少经过了2m-T的时间后,来自所有的后沿锁存电路11-0到11-(n-1)的数字输出值被确定(该值有时在之前确定)。当来自所有的后沿锁存电路11-0到11-(n-1)的数字输出值在确定时间后被提取时,就可以获得与PWM信号PW0到PWn-1的脉宽成比例的数字值。也就是说,脉宽/数字转换结束。
如上所述,每一个后沿锁存电路11-i(i∈{0,1,...,n-1})在PWM信号PWi的后沿锁存从共有计数器10输出的计数值CNT。该计数器10仅切换电线的寄生电容的输出值(计数值CNT)以输出计数值CNT到每一个后沿锁存电路11-i。切换时的功率消耗是低的。因此,相较于使用了传统的脉宽/数字转换的电路而言功率消耗可以大大地降低。
通过计算机仿真实际执行评估。当使用如图40所示的传统脉宽/数字转换电路作为每一个后沿锁存电路并行执行80个PWM信号PW0到PW79的脉宽/数字转换时,估计所消耗的功率为226mW。相反,如果使用根据本实施例的脉宽/数字转换电路9时,执行同样的输入脉冲的脉宽/数字转换的功率消耗为6.6mW。因此,功率消耗可以被缩减为约1/50。
另外,由于只使用了一个计数器,因此由计数器的切换产生的切换噪声可以被缩减。电路的S/N比增加了。因此,就可将在当抖动噪声被加至脉宽时脉宽/数字转换的时间上产生的抖动误差减到最小。相应地,该电路还可以被用于高速脉宽/数字转换。
由于后沿锁存电路11-0到11-(n-1)锁存了从共有计数器10输出的值CNT,因此计数值CNT到输入脉冲PW0到PWn-1的切换定时没有改变。出于这个原因,可以防止在计数器10的切换时由于抖动的在输入脉冲PW0到PWn-1之间的定时误差的变化。
对于脉宽/数字转换电路而言,在图6所示的脉宽/数字转换电路9中的每一个后沿锁存电路11-0到11-(n-1)可以用图10所示的电路代替。
下面详细描述其中的脉宽/数字转换电路9中的每一个后沿锁存电路11-0到11-(n-1)用图10所示的电路代替的电路。图10中的后沿锁存电路11-i(i∈{0,1,...,n-1}),锁存器12-0到12-(m-1)以及反转器13的布置与图7中的相同,因此在此省略对其的描述。作为一个特有的特征,根据本实施例的脉宽/数字转换电路进一步包括前沿锁存电路14-i(i∈{0,1,...,n-1})以及减法电路15-i。
该前沿锁存电路14-i在PWM信号PWi的前沿锁存从计数器10输出的计数值CNT。减法电路15-i通过从由后沿锁存电路11-i输出的数字输出值Ei={Ei,0到Ei,m-1}中减去由前沿锁存电路14-i输出的数字输出值以及Si={Si,0到Si,m-1}来计算差值并且输出数字输出值Di={Di,0到Di,m-1}。
该前沿锁存电路14-i包括对应于m个计数值比特CNT0到CNTm-1的锁存器16-0到16-(m-1),如同后沿锁存电路11-i。每个锁存器16-0到16-(m-1)包括了具有图8所示的异步复位输入的同步D触发器,如同锁存器12-0到12-(m-1)。
然而,PWM信号PWi是直接输入到前沿锁存电路14-i中的锁存器16-0到16-(m-1)的时钟输入端clk而无需通过反转器13。因此,锁存器16-0到16-(m-1)的每一个在PWM信号的前沿锁存计数器10的计数值CNT。
下面描述具有上述布置的脉宽/数字转换电路9的运算。
图11为表示在根据本实施例的脉宽/数字转换电路9的每一个信号电平中的变化的时序图。
具有预定周期T和宽度T/2的脉冲被持续输入到时钟CLK。该脉冲输出触发XRST在时刻t1输出具有宽度为T的反转脉冲。相应地,从锁存器12-0到12-(m-1)以及16-0到16-(m-1)的输出被复位,并且所有的数字输出数据Ei和Si被复位到0。
计数器10从脉冲输出触发XRST的前沿开始(时刻t2)对时钟CLK计数。在时钟CLK的前沿,计数器10将计数值增加1。
在时刻t2之后的适当的时刻t3,PWM信号PWi(i∈{0,1,...,n-1})的输出开始。该前沿锁存电路14-i的锁存器16-j(j∈{0,1,...,m-1})锁存来自计数器10的输出CNTj并且将CNTj值作为数字输出值Si={Si,0到Si,m-1}从其数据输出端Q输出。
在时刻t4,该PWM信号PWi从H电平被反转到L电平。相应地,从反转器13输出的NOT(PWi)从L电平提升到H电平。每一个锁存器12-j(j∈{0,1,...,m-1})在反转器13的输出NOT(PWi)的前沿锁存输入到其数据输入端D的计数值CNTj的电平,并且从其数据输出端Q输出作为数字输出值Ei={Ei,0到Ei,m-1}的该计数值CNTj。
减法电路15-i通过从由后沿锁存电路11-i输出的数字输出值Ei={Ei,0到Ei,m-1}中减去由前沿锁存电路14-i输出的数字输出值以及Si={Si,0到Si,m-1}来计算差值,并且输出该数字输出值Di={Di,0到Di,m-1}。于是,从时刻t3开始,数字输出值Di={Di,0到Di,m-1}直接与PWM信号PWi的脉宽成比例。
因此,当从计数器10的计数开始至少经过了2m-T的时间后,从所有的后沿锁存电路11-0到11-(n-1)以及减法电路15-0到15-(n-1)的数字输出值被确定(该值有时在之前确定)。当从减法电路15-0到15-(n-1)的数字输出值在确定时间后被提取时,就可以获得与PWM信号PW0到PWn-1的脉宽成比例的数字值Di={Di,0到Di,m-1}。也就是说,脉宽/数字转换结束。
如上所述,在本实施例中,计数器10的计数值在每一个PWM信号的前沿和后沿锁存。对值之间的差值进行计算并且将其作为数字输出值输出。出于这个原因,PWM信号PWi的前沿不需要被同步。另外,每一个PWM信号PWi的前沿以及计数器10的计数开始定时也不需要被同步。
因此,即使在PWM信号异步输入的电路中,根据本实施例的脉宽/数字转换电路也可以使用。
代替减法电路15-i的使用的是,数字输出值Si和Ei可以被输出到外部,而减法可以由在外部准备的减法器执行。
(第二实施例)对第二实施例将参考着详细的处理布置的视图进行描述。执行本实施例的积和运算方法的处理电路的布置如图1所示,如同第一实施例。
图12表示了作为模拟电路形成运算电路1的模拟运算电路。运算电路2到6具有同样的布置。如图12所示,本实施例的模拟运算电路包括模拟乘法器17、电容器18,以及输出缓冲器19。
图13表示包括模拟存储器的输入值保持电路2。在本实施例中,假设该模拟存储器包括电容器20和输出缓冲器21。然而,可以使用任何其它的电路,只要其具有相同的功能。
图14表示了包括WTA电路22的排序电路4。
以下将参考上述的附图对使用了根据本实施例的积和运算方法的处理进行描述。
基本的运算处理与第一实施例中的相同,因此省略对其的描述。下面将描述与第一实施例不同的输入保持电路2、权重保持电路3、排序电路4以及运算电路1到6的各自的处理运算。在本实施例中,排除第一实施例中描述的脉宽/数字转换电路的情况。
如图13所示,本实施例中的输入保持电路2包括电容器20和输出缓冲器21。操作数值Xi的值可以保持为在电容器20上累积的电压值。在输入保持电路2中保持的操作数值Xi由排序电路4以大小递减的顺序输入到切换电路5。
在本实施例中,由排序电路4执行的处理通过使用WTA电路22而完成,如图14所示。WTA电路是胜者全取(Winner-Take-All)电路的缩写并且具有输出具有最大值的输入值的功能(或者可以输出最小值)。当操作数值Xi输入到WTA电路22时,具有最大值的操作数值Xi被输出。
接着,当除了先前输出的操作数值Xi的操作数值Xi组被输入时,具有第二大值的操作数值Xi被输出。
通过重复这个运算,操作数值一直以大小递减的顺序输出,并且执行了排序操作。
在本实施例中,如果存在具有相同值的操作数Xi,其以任意的顺序输出。或者可以提前设置适当的顺序。此时,每个操作数值具有的标签同时被保持。作为保持电路,可以使用能够完成相同功能的数字存储器或模拟存储器。
在本实施例中,使用模拟电路作为排序电路4。然而,可以使用相联存储器,如同第一实施例。在这种情况下,从相联存储器的输出被D/A转换并接着输入到运算电路。作为执行D/A转换的D/A转换电路,以下将描述包括数字/脉宽转换电路23、开关电流源24、电容器25以及缓冲器26的如图15所示的D/A转换电路。
如图15所示,在该D/A转换电路中,对应于操作数值Xi的数字值从数字存储器(相联存储器电路)输入到数字/脉宽转换电路23。该数字/脉宽转换电路23将每一个输入的数字值转换为具有与该数字输入值成比例的时间宽度的脉冲信号并将其输出。
如图16所示,根据本实施例的数字/脉宽转换电路23包括多个并行布置的脉冲产生电路27-0到27-(n-1)以及计数器28。该脉冲产生电路27-0到27-(n-1)的数据输入端Din分别接收m比特数字输入值X0到Xn-1。与该数字输入值X0到Xn-1成比例的PWM信号PWM0到PWMn-1分别从该脉冲产生电路27-0到27-(n-1)的脉冲输出端Pout输出。
计数器28对外部输入的时钟clock进行计数并且输出m比特计数值。该时钟clock通常被输入到脉冲产生电路27-0到27-(n-1)的时钟输入端clk。从计数器28输出的计数值共有地输入到脉冲产生电路27-0到27-(n-1)的计数值输入端CNT。
另外,m比特的参考值xb共有地被输入到脉冲产生电路27-0到27-(n-1)的参考值输入端Db。该参考值xb指定了PWM信号PWM0到PWMn-1的前沿的定时。
图17为表示图16所示的每一个脉冲产生电路的布置的框图。脉冲产生电路27-i(i∈{0,1,...,n-1})包括参考值寄存器29、加减器30、脉宽寄存器31、切换电路32、定时触发产生电路33以及输出脉冲反转电路34。
该参考值寄存器29锁存参考值xb并且输出锁存的参考值xb。该加减器30输出参考值xb和为外部输入的数字值的输入值xi的和xi+xb。该脉宽寄存器31在更新的输入恢复(renew)的前沿锁存从加减器30输出的值(和xi+xb)。
当从输出脉冲反转电路34输出的输出PWM信号PWMi具有假脉冲(L电平)时,切换电路32输出由参考值寄存器29锁存的数字值xb。当从输出脉冲反转电路34输出的输出PWM信号PWMi具有真脉冲(H电平)时,切换电路32执行切换以输出由脉宽寄存器31锁存的数字值xi+xb。
定时触发产生电路33将从切换电路32输出的数字值的每个比特与从计数器28输出的计数值CNT的每个比特进行比较并且当两个比特完全重合时产生触发。该定时触发产生电路33包括m个EXOR门35-1到35-(m-1)以及NOR门36。切换电路32的输出比特被输入到EXOR门35-1到35-(m-1)的每一个的一个输入。从计数器28的输出比特被输入到EXOR门35-1到35-(m-1)的每一个的其它输入。从EXOR门35-1到35-(m-1)的输出P0到Pm-1被输入到NOR门36。该NOR门36将从EXOR门35-1到35-(m-1)的输出P0到Pm-1的OR的反转输出输出到输出脉冲反转电路34。
确切地,数字输入值Xi(i∈{0,1,...,n-1})、参考值xb以及来自计数器的输出值CNT分别由下式给出xi=(xi,0,xi,1,...,xi,m-1)(1)xb=(xb,0,xb,1,...,xb,m-1)(2)CNTi=(CNTi,0,CNTi,1,...,CNTi,m-1)(3)在这种情况下,当来自输出脉冲反转电路34的输出值Pout位于L电平时,定时触发产生电路33的输出Ti由下式给出Ti=Λj=0m-1xb,j⊗CNTi,j‾---(4)]]>当输出脉冲反转电路34的输出值Pout位于H电平时,输出Ti由下式给出Ti=Λj=0m-1(xb+xi)j⊗CNTi,j‾---(5)]]>当定时触发产生电路33产生触发时,该输出脉冲反转电路34反转输出PWM信号PWMi的真值。该输出脉冲反转电路34包括同步T触发器(以后将被称为“T-FF”)。NOR门36的输出值被输入到输出脉冲反转电路34的触发输入端T。共用时钟clock被输入到T-FF的时钟端clk。从该输出脉冲反转电路34的输出端Q输出输出PWM信号PWMi。
下面参考图18的时序图对根据本实施例的具有上述布置的数字/脉宽转换电路的运算进行描述。
在时刻t1,输入值Xi和参考值xb从外部电路输入到每一个脉冲产生电路27-i。在时刻t2,更新信号恢复(renew)被输入到计数器28的复位输入节点R以及每一个脉冲产生电路27-i中的参考值寄存器29和脉宽寄存器31的时钟输入节点CLK。在接收到该更新信号恢复后,参考值寄存器29和脉宽寄存器31在该更新信号恢复的前沿锁存参考值xb和输入值xi。
该参考值寄存器29输出锁存的参考值xb。该脉宽寄存器31输出锁存的和xi+xb。在时刻t1,从输出脉冲反转电路34的输出具有L电平。出于这个原因,切换电路32输出从参考值寄存器29输入的值xb。计数器28将计数值CNT复位到0并且在更新信号恢复的前沿开始计数。
计数器28开始递增。在时刻t3,从计数器28输出的计数值CNT与作为来自切换电路32的输出值的参考值xb重合。此时,从定时触发产生电路33的输出Ti被反转到H电平。相应地,从输出脉冲反转电路34的输出Pout被从L电平反转为H电平,并且输出PWM信号PWMi的输出开始。
在时刻t4,当从输出脉冲反转电路34的输出Pout被反转为H电平时,到切换电路32的输入被切换使得该切换电路32输出从脉宽寄存器31输入的值xb+xi。相应地,从EXOR门35-1到35-(m-1)的输出值也改变。当xi≠0时,从EXOR门35-1到35-(m-1)的输出值不会同时为0。这样,从定时触发产生电路33的输出Ti被反转到L电平。
计数器28开始计数。在时刻t5,从计数器28输出的计数值CNT与作为从切换电路32的输出值的和xb+xi重合。此时,从定时触发产生电路33的输出Ti被反转到H电平。相应地,从输出脉冲反转电路34的输出Pout被从H电平反转为L电平,并且输出PWM信号PWMi的输出停止。这样,就生成了具有与数字输入值xi成比例的时间宽度的输出PWM信号PWMi,并且执行了数字/脉宽转换。
在时刻t6,当从输出脉冲反转电路34的输出被反转为L电平时,到切换电路32的输入被切换使得该切换电路32输出从参考值寄存器29输入的值xb。相应地,从EXOR门35-1到35-(m-1)的输出值也改变。当xi≠0时,从EXOR门35-1到35-(m-1)的输出值不会同时为0。这样,从定时触发产生电路的输出Ti被反转到L电平。
计数器28继续计数直到计满。在此期间,计数值和从切换电路输出的值xb不会重合。因此,从输出脉冲反转电路34的输出保持在L电平。当计数器28计满时,就停止计数,因此一个周期结束了。在计数器28计满之后,在计满时刻的输出值(全部是H电平)就维持着,直到复位输入节点R被再次反转到H电平。
在上述的方式中,每一个脉冲产生电路27-i输出具有与输入值xi成比例的时间宽度的输出PWM信号PWMi。此时,每一个脉冲产生电路27-i将从共用计数器28输出的计数值与参考值xb或者和xb+xi进行比较。功率消耗比其中所有的脉冲产生电路27-i都有计数器的电路小得多。出于这个原因,该数字/脉宽转换电路的功率消耗可以降低。
在本实施例中,定时触发产生电路33通过使用参考值寄存器29、脉宽寄存器31以及切换电路32来产生输出PWM信号PWMi的前沿和后沿。通过这种布置,输出PWM信号PWMi的脉宽可以精确地与输入值xi成比例而不会受到电路延迟的影响。
在本实施例中,脉冲产生电路27-0到27-(n-1)的输出脉冲的前沿被参考值xb调整。在本发明中,输出脉冲的后沿可以被调整。在这种情况下,加减器30通过从参考值xb中减去作为从外部电路输入的数字值的输入值xi而输出差值xb-xi。当从输出脉冲反转电路34输出的输出PWM信号PWMi具有真值(H电平)时,切换电路32输出由参考值寄存器29锁存的数字值xb。当从输出脉冲反转电路34输出的输出PWM信号PWMi具有假值(L电平)时,切换电路32执行切换以输出由脉宽寄存器31锁存的数字值xi-xb。
代替在每一个脉冲产生电路27-i中准备加减器30的是,通过将原始输入值加至参考值xb或是从参考值xb中减去原始输入值而获得的结果可以作为数字输入信号xi而提供。根据本实施例的数字/脉宽转换电路可以与上述的不同并且可以具有下面所描述的另一种形式。
例如,如图45所示,根据本实施例的另一种数字/脉宽转换电路151包括多个并行布置的脉冲产生电路152-0到152-(n-1)以及计数器153。该脉冲产生电路152-0到152-(n-1)的数据输入端Din分别接收m比特数字输入值X0到Xn-1。具有与该数字输入值X0到Xn-1成比例的时间宽度的PWM信号PWM0到PWMn-1分别从该脉冲产生电路152-0到152-(n-1)的脉冲输出端Pout输出。
计数器153对外部输入的时钟clock进行计数并且输出m比特计数值。从计数器153输出的计数值共有地输入到脉冲产生电路152-0到152-(n-1)的计数值输入端CNT。
图46为表示了图45所示的每一个脉冲产生电路的布置的框图。脉冲产生电路152-i(i∈{0,1,...,n-1})包括脉宽寄存器162、定时触发产生电路164以及输出脉冲反转电路165。
该脉宽寄存器162在更新输入恢复的前沿锁存作为外部输入的m比特数字值的输入值xi并且将该值xi输出到输出节点。定时触发产生电路164将从脉宽寄存器162输出的m个比特的数字值的每一个与从计数器153输出的m个比特的计数值的每一个进行比较并且当两个比特完全重合时产生触发。
该定时触发产生电路164包括m个EXOR门166-0到166-(m-1)以及NOR门167。从脉宽寄存器162的输出比特被输入到EXOR门166-1到166-(m-1)的每一个的一个输入端。计数器153的输出比特被输入到EXOR门166-0到166-(m-1)的每一个的其它输入端。从EXOR门166-0到166-(m-1)的输出P0到Pm-1被输入到NOR门167。该NOR门167将从EXOR门166-0到166-(m-1)的输出P0到Pm-1的OR的反转输出输出到输出脉冲反转电路165。
确切地,数字输入值Xi(i∈{0,1,...,n-1})以及从计数器的输出值CNT分别由等式(1)和等式(3)给出。在这种情况下,从定时触发产生电路164输出的Ti由下式给出Ti=Λj=0m-1xi,j⊗CNTi,j‾---(6)]]>在这种情况下,假设xi≠0。
从等式(6)可以看出,当数字输入值xi和从计数器输出的输出值CNT的所有比特都重合时,从定时触发产生电路164的输出Ti变为1。该输出脉冲反转电路165在定时触发产生电路164产生触发时将输出脉冲PWMi的真值反转。该输出脉冲反转电路165包括T触发器(以后将被称为“T-FF”)。从NOR门167的输出值被输入到输出脉冲反转电路165的触发输入端T。从该输出脉冲反转电路165的输出端Q输出脉冲PWMi。
下面参考图47所示的时序图对根据本实施例的具有上述布置的数字/脉宽转换电路的运算进行描述。
在紧接着电源打开后的初始状态中,计数器153的所有计数值CNT假定位于H电平,并且输入值xi为0。在这种状态下,在时刻t0,启用一个输入到计数器153和脉宽寄存器162的复位输入复位(L电平)。相应地,计数器153的所有计数值CNT被复位到0。当复位信号复位被设置到L电平时,脉宽寄存器162将所有保持的存储值复位到0。接着,来自计数器153的计数值CNT与来自脉宽寄存器162的输出值重合。从定时触发产生电路164输出的Ti被从L电平反转为H电平。因此,从输出脉冲反转电路165的输出Pout被反转到H电平,并且到输出Pout的脉冲的输出开始。
在时刻t1,输入值Xi(Xi≠(0,0,...,0))从外部电路输入到每一个脉冲产生电路152-i。此时,由于输入到脉宽寄存器162的复位信号复位位于L电平,因此来自脉宽寄存器162的所有输出维持在0。
在时刻t2,禁用复位输入复位(H电平),并且更新信号恢复从L电平反转到H电平。该更新信号恢复被输入到每一个脉宽寄存器162的时钟输入节点CLK。当该更新信号恢复被反转到H电平时,脉宽寄存器162在此时锁存输入值xi。相应地,该脉宽寄存器162输出输入值xi。另一方面,计数器153的计数值CNT仍然维持在0。由于脉宽寄存器162的输出不再与来自计数器153的计数值CNT重合,因此从定时触发产生电路164的输出T从H电平反转到L电平。当复位信号复位从L电平反转到H电平时,计数器153开始对时钟clock进行计数。此时,脉宽寄存器162继续输出锁存的输入值xi。
随着时钟clock,计数器153开始递增。在时刻t3,从计数器153输出的计数值CNT与作为从切换电路163的输出值的xi重合。此时,从定时触发产生电路164的输出值T从L电平被反转到H电平。相应地,从输出脉冲反转电路165的输出Pout被从H电平反转为L电平。通过这个运算,从输出脉冲反转电路165的输出Pout的脉冲PWMi的宽度就可以确定了。该脉冲宽度与数字输入值xi成比例。也就是,执行了数字/脉宽转换。
在从时刻t3开始经过一个时钟后的时刻t4,计数器153计满。来自计数器153的计数值CNT不再与来自切换电路163的输出值xi重合。接着从定时触发产生电路164的输出Ti被从H电平反转为L电平。
计数器153继续计数直到计满。在此期间,来自计数器153的计数值和输入值xi不会重合。因此,定时触发产生电路164的输出Ti保持在L电平,并且从输出脉冲反转电路165的输出也保持在L电平。当计数器153计满时,计数器153的所有计数值变为0,并且一个周期就结束了。接着,重复如上所述的同样的周期。
在上述的方法中,每一个脉冲产生电路152-i(i=0,...,n-1)输出具有与输入值xi成比例的时间宽度的输出脉冲PWMi(严格地说,这个时间宽度包含了对应于在复位信号位于L的期间内的两个时钟的偏移。这可以通过例如事先从xi中减去2来解决)。此时,每一个脉冲产生电路152-i将从共用计数器153输出的计数值CNT与数字输入值xi进行比较。功率消耗远远小于其中所有的脉冲产生电路152-i都具有计数器的电路。
更确切地,当所有的脉冲产生电路152-i都具有计数器时,至少有一个切换设备为每一个计数器中的每一个时钟而进行切换。因此,当使用了例如CMOS作为切换设备时,到负载的直通电流或是充电/放电电流在切换时刻流动。出于这个原因,整个数字/脉宽转换电路的功率消耗会高。
另一方面,当一个计数器153被驱动时,并且每一个脉冲产生电路152-i参考共用计数器153的输出值来切换脉冲时,如本实施例,在切换时刻产生的到负载的直通电流或是充电/放电电流较小,并且功率消耗也较低。因此数字/脉宽转换电路151的功率消耗就可以降低。另外,由于使用了共用计数器153,电路布局面积降低,数字/脉宽转换电路151可以做得紧凑。
随后,如图15所示,PWM信号ON/OFF控制着开关电流源24的操作。
确切地,在本实施例中,当PWM信号为高时,开关为ON,并且预定的电流被提供给电容器25。当当PWM信号为低时,开关为OFF,并且停止提供电流给电容器25。结果是,电容器25累积与PWM信号的时间宽度成比例的电荷。
在电容器25中,通过缓冲器26累积的电荷量可以被称为电压值。这可以作为对应于操作数值Xi的模拟电压值输入到模拟运算电路,如图15所示。
上面详细描述的排序电路4的电路布置并不是本发明的关键。可以使用任何其它的电路只要其能够实现相同的功能。
接下来描述权重保持电路3。该权重保持电路3包括电容器37和输出缓冲器38,类似于输入值保持电路2,如图19所示。该权重保持电路3保持作为在电容器37种累积的电压值的操作数值Wi的值。对于该权重保持电路3,如图20所示,保持在数字存储器(例如,SRAM)中的操作数值Wi的值可以被D/A转换并且作为模拟值被保持在上述的权重保持电路中。在这种情况下,D/A转换电路进行的处理的步骤与当使用了相联存储器时的D/A转换电路的处理步骤相同,如上所述,因此对其的描述省略。
接下来描述操作数值Xi和操作数值Wi作为模拟电压值输入到的预定运算电路所执行的运算处理。
如图12所示,根据本实施例的运算电路形成为包括有模拟乘法器17、电容器18以及输出缓冲器19的模拟运算电路。操作数值Xi和操作数值Wi作为模拟电压输入到模拟乘法器17中并且进行Xi×Wi运算。输入到每一个运算电路中的操作数值Wi的值可以保持不变或是在运算之间改变。
Xi×Wi的相乘结果表达为电荷量并且在电容器18上增加和累积。在本实施例中,模拟乘法器17的相乘结果假设作为电荷量输出。然而,可以使用任何其它的输出作为例如电压值的相乘结果的方法,只要其可以实现上述的相同的功能。
通过重复上述的处理,Xi×Wi的多个相乘结果的累积值保持在电容器18中。当达到了累积的预定数量时,该累积值就通过输出缓冲器19输出。
正如在第一实施例中,虽然在数字值和模拟值之间存在差值,但是对应于操作数值Xi的模拟电压值通过切换对应于操作数值Xi的标签的切换电路而输入到预定的运算电路。另外,和在第一个实施例中一样,没有操作数Xi输入的运算电路中不执行运算处理。
在本实施例中,切换电路根据操作数值Xi的标签切换对应于操作数值Wi的模拟电压值并且将该模拟电压值输入到由标签确定的预定运算电路中,如同操作数值Xi,虽然在数字值和模拟值之间存在差值。作为与本实施例不同的一种方法,对应于操作数值Wi的模拟电压值所将要输入的预定运算电路可以独立于操作数值Xi的标签而被预先设置,如同第一实施例。
如上所述,排序电路将作为模拟电压输入到运算电路中的操作数值Xi以大小递减的顺序输入。具有相同值的操作数值Xi持续输入。出于这些原因,相较于其中操作数值Xi随机输入的情况,电压的变动变得较小,并且可以降低由于电压的变动而引起的时间延迟和功率消耗。
在本实施例中,排序电路以大小递减的顺序对操作数值Xi进行排序。即使当操作数值Xi以大小递增的顺序被排序时,可以获得与上述的相同的效果。
(第三实施例)以下参考详细处理布置的视图对第三实施例进行描述。图21表示了根据本实施例的执行积和运算方法的运算电路的布置。
图22表示了其中运算电路形成为模拟电路的模拟运算电路。运算电路2到6也具有相同的布置。如图22所示,根据本实施例的模拟运算电路包括模拟乘法器45、电容器46以及输出缓冲器47。图23表示了锯齿波产生电路44。
如同第一实施例,输入值保持电路2和排序电路4包括相联存储器电路。存储器电路43形成在排序电路4的下一级上。另外,锯齿波产生电路44形成在存储器电路43的下一级上。锯齿波产生电路44的输出被输入到切换电路5。本实施例中的存储器电路43包括例如SRAM。
以下将参考上述的附图对使用了根据本实施例的积和运算方法的处理进行描述。该相联存储器电路保持操作数值Xi的值以及该操作数值Xi具有的标签。
作为相联存储器电路的一般功能,其搜索以大小递减的顺序的操作数值Xi并且输出标签。同时,对于在对以大小递减的顺序的操作数值Xi的搜索中的搜索值而言,只有当搜索值减少一个单位时,脉冲信号的标示被输出(在本实施例中,标示=1被输出)。(作为与本实施例不同的方法,对于在对以大小递增的顺序的操作数值Xi的搜索中的搜索值而言,只有当搜索值增加一个单位时,脉冲信号的标示被输出)。
如图21所示,标签和标示彼此相应地以搜索顺序(也即,以大小递减的顺序)被输入到并保持在位于下一级的存储器电路43中。接着,该存储器电路43以保持的顺序(也即,以大小递减的顺序)输出标签和标示。标签被输入到切换电路5。标示被输入到锯齿波产生电路44。
接着描述锯齿波产生电路44。如图23所示,锯齿波产生电路44包括偏置到预定电压值vb的电压控制的电流源48、电容器50、开关49以及缓冲器51。当标示被输入到锯齿波产生电路44以打开开关49时,从该电压控制的电流源48提供一个预定的电流并且在电容器50上累积。
只有当在相联存储器中的搜索值减少一个单位时,该标示被设置为1。出于这个原因,开关49仅当搜索值减少一个单位时打开。因此,锯齿波产生电路44中的节点上的电压值如图23所示波形所指示地发生变化。更确切地,产生对应于以大小递减的顺序的操作数值Xi并且单调增加的电压值(“单调地”也意味着其中始终显示常数值的情况,这也适用于下面的描述)。
作为对应于以大小递减的顺序的操作数值Xi的电压值,设置单调增加的电压值。然而,可以根据后面将要描述的模拟乘法器设置单调减少的电压值。在锯齿波产生电路44中,这可以通过从在初始状态下由电压控制的电流源累积了预定电荷的电容器50上移除电荷而完成。
接着,由锯齿波产生电路44产生的单调增加的电压值被输入到切换电路5。该切换电路5对应于输入的标签执行切换并且将单调增加的电压输入到由标签确定的预定的运算电路1中。
下面将考虑运算电路1。只有当运算电路1与由标签确定的预定的运算电路重合时,单调增加的电压值被输入。当存储器电路43的输出标签改变并且运算电路1步与由标签确定的预定的运算电路重合时,就执行切换,并且单调增加的电压值不被输入。也就是说,在运算电路1中,单调增加的电压值根据标签的输出时刻而被采样。这意味着对应于操作数值Xi的合适的电压值在标签确定的切换定时被输入。
在没有操作数值Xi输入的运算电路1中不执行运算处理,如同第二实施例。在权重保持电路3中的运算处理与在第二实施例中的相同,因此省略对其的描述。
接着,在模拟运算电路中,如图22所示,输入到模拟乘法器45的操作数值Xi和操作数值Wi相乘。对应于运算结果的电荷在电容器46上累积。在模拟运算电路中的处理与在第二实施例中的处理相同,因此省略对其的描述。在本实施例中,操作数值Xi可以作为PWM信号被输入到输入值保持电路2中。在这种情况下,PWM信号输入处理步骤与在第一实施例中的步骤相同,因此省略对其的描述。
(第四实施例)在本实施例中,将描述一种电路,其中使用了另一种电路布置作为根据第二或第三实施例的模拟运算电路。除了模拟运算电路以外的布置都与第二和第三实施例中的相同。
图24表示了本实施例将要描述的模拟运算电路。如图24所示,模拟运算电路包括了电压控制的电流源52、电压控制的电阻设备53以及电容器55。作为操作数值Xi,始终单调增加的电压值被作为控制电压输入到电压控制的电流源52这里所输入的始终单调增加的电压值,其是由引发WTA电路56输出对应于以大小递减的顺序的操作数值Xi的电压值而作为持续的模拟电压值产生的,如图26所示。可以通过使用存储器电路和锯齿波产生电路来产生始终单调增加的电压值,如第三实施例。在这种情况下,输入值保持电路以及排序电路包括数字电路,如第三实施例。
在这种情况下,操作数值Xi可以作为PWM信号输入到输入值保持电路。在这种情况下的PWM信号输入处理步骤和第一实施例的步骤相同,不再对其进行描述。
接着,如图25所示,从WTA电路56(排序电路4)输出的始终单调增加的电压值通过切换电路5被输入到运算单元100。在该模拟运算电路中,该单调增加的电压值是指在某个定时上。相应地,如在第二或第三实施例中所描述过的,对应于操作数值Xi的电压值作为对应于标签的模拟运算电路的电压控制的电流源52的控制电压,被以大小递减的顺序输入。该电压控制的电流源52可以通过使用MOS晶体管的饱和特性来形成或是可以具有不同的结构。
对应于操作数值Wi的模拟电压值作为控制电压输入到模拟运算电路的电压控制的电阻设备53。该电压控制的电阻设备53根据输入的模拟电压值指示一个预定的电阻值R。该电压控制的电阻设备53可以通过使用MOS晶体管的线性特性来形成或是可以具有不同的结构。
接着,由对应于在预定的运算定时所参考的操作数值Xi的模拟电压值确定的电压控制的电流源52的电流I流到由对应于操作数值Wi的模拟电压值确定的电压控制的电阻设备53(此时的电阻值为R)。接着,观察到作为对应于在图13所示的节点上的I×R的电压值的Xi×Wi运算结果。该节点的电压作为控制电压被进一步输入到电压控制的电流源54。相应地,由I×R确定的电流i流向电容器。
该电压控制的电流源54可以通过使用MOS晶体管的饱和特性来形成或是可以具有不同的结构。当切换电路5的切换间隔被设置为预定的时间时,对应于I×R×(切换间隔)的电荷可以在电容器55上累积。
当上述的运算重复时,累积的结果作为电荷量被保持在电容器55上。
这样,可以通过图25所示的积和运算电路完成与第二和第三实施例相同的运算。在本实施例中,对应于操作数值Xi的模拟电压是一个始终单调增加的电压值。根据运算的目的,可以使用始终单调减少的电压值。
通过根据操作数值Xi的标签切换切换电路5,将对应于操作数值Xi的模拟电压值输入到预定的运算电路中,如同第二和第三实施例。另外,在没有操作数值Xi输入的运算电路1中不执行运算处理,如同第二和第三实施例。
在本实施例中,对应于操作数值Wi的模拟电压值由切换电路5根据操作数值Xi的标签进行切换,并且被输入到由标签确定的预定运算电路中,如同操作数值Xi。作为不同于本实施例的方法,对应于操作数值Wi的模拟电压值将要输入的预定运算电路可以独立于操作数值Xi的标签而预先地设置,如同第二和第三实施例。
(第五实施例)图27表示了本实施例的布置。本实施例不同于第三或第四实施例的地方在于第三或第四实施例中所描述的始终单调增加的模拟电压值被乘以一个系数Ki,从而可以执行由预定的系数Ki乘以操作数值Xi的运算。
在本实施例中,仅仅解释与第三或第四实施例不同的几点。其余的点与第三或第四实施例中的相同,因此省略对其的描述。
如图27所示,单调增加的模拟电压值被乘以系数Ki意味着在预定运算定时所参考的电压值(也即,操作数值Xi)被乘以预定的系数Ki。因此,当输入到运算电路1的单调增加的模拟电压值被乘以系数Ki时,就可以进行三项Ki×Xi×Wi的乘法运算。
如图27所示,当乘以具有不同值的系数Ki的模拟电压值被并行输入时,在各个运算电路1中可以并行进行三个不同项的乘法运算。为了改变对应于每一个单调增加的模拟电压值的系数Ki,在排序电路4(WTA电路或是锯齿波产生电路)的下一级上布置有对应于系数Ki的电压放大器57。在图27所示的例子中,电压放大器57布置在WTA电路的下一级上。
当电压放大器57布置在锯齿波产生电路的下一级上时,对应于系数Ki的电压放大器57为从图21所示的锯齿波产生电路44输出的单调增加的模拟电压值而布置。在本实施例中,使用了单调增加的模拟电压值。即使使用了单调减少的模拟电压值,也可以执行如上所述的相同的运算。
通过根据操作数值Xi的标签对切换电路5进行切换,将对应于操作数值Xi×系数Ki的单调增加的模拟电压值输入到预定的运算电路,如同第三和第四实施例。
在本实施例中,对应于操作数值Wi的模拟电压值由切换电路5根据操作数值Xi的标签进行切换,并且被输入到由标签确定的预定运算电路中,如同操作数值Xi。作为不同于本实施例的方法,对应于操作数值Wi的模拟电压值将要输入的预定运算电路可以独立于操作数值Xi的标签而预先地设置,如同第三和第四实施例。在本实施例中,其中操作数值Xi作为PWM信号输入到输入值保持电路2的情况和第三以及第四实施例中的情况相同。
(第六实施例)以下参考图28和图29对第六实施例进行描述。本实施例不同于第三或第四实施例的地方在于,在第三或第四实施例中所描述的始终单调增加的模拟电压值与一个系数Ki相乘,从而可以执行操作数值Xi与预定系数Ki相乘的乘法运算。
在本实施例中,仅仅解释与第三或第四实施例不同的几点。其余的部分与第三或第四实施例中的相同,因此省略对其的描述。
参考图28,如同第一个实施例,相联存储器被用作排序电路4,以将操作数值Xi按照大小递减的顺序进行排序。关于操作数值Xi的等值确定电路58连接到相联存储器的下一级上。该等值确定电路58并入了例如寄存器的存储器功能,存储之前从相联存储器输出的操作数值Xi的值。
当从相联存储器输出的下一个操作数值Xi’被输入到等值确定电路58时,该等值确定电路58将这次输入的操作数值Xi’与之前输入的操作数值Xi进行比较。如果这两个操作数值不同,就输出一个打开锯齿波产生电路60(稍后描述)的开关的检测信号。如果这两个操作数值相等,不输出检测信号。因此,锯齿波产生电路60的开关保持为OFF。
以与第三或第四实施例相同的方式来执行运算电路1中的运算处理。输入到运算电路1的始终单调增加的电压值由图29所示的锯齿波产生电路产生。在锯齿波产生电路60中,对应于系数Ki的电压值被作为控制电压提供到电压控制的电流源61。相应地,预定的电流流动,并且在电容器50上累积电荷。
如上所述,锯齿波产生电路60的开关49由来自等值确定电路58的检测信号打开。确切地,当相联存储器的输出值等于之前的输出值时,该锯齿波产生电路60关闭开关49以停止在电容器50上的电荷累计操作。只有当来自相联存储器的输出值不同于之前的输出值时,开关49才打开,并且节点的电压值作为图29所示的V而改变。
此时,当对应于系数Ki的电压值适当地设置时,单调增加的电压值可以乘以系数Ki,如第五实施例所述。当通过缓冲器51将电压值输入到模拟运算电路时,就可以进行三项Ki×Xi×Wi的乘法运算,如第五实施例所述。其余的运算处理类似于第三或第四实施例,在此省略对其的描述。
电压控制的电流源61可以通过使用MOS晶体管的饱和特性来形成或是可以具有不同的结构。锯齿波产生电路60可以使用任何其它的电路布置,只要其能够实现相同的功能。在本实施例中,使用了单调增加的模拟电压值。然而,即使使用了单调减少的模拟电压值,也可以执行如上所述的相同的运算。
如同在第三和第四实施例中,通过根据操作数值Xi的标签切换切换电路5,而将对应于操作数值Xi×系数Ki的单调增加的模拟电压值输入到预定运算电路中。在这个实施例中,对应于操作数值Wi的模拟电压值由切换电路5根据操作数值Xi的标签进行切换并被输入到由该标签确定的预定运算电路,如同操作数值Xi。作为不同于本实施例的方法,对应于操作数值Wi的模拟电压值将要输入的预定运算电路可以独立于操作数值Xi的标签而预先地设置,如同第三和第四实施例。
其中操作数值Xi作为PWM信号输入到输入值保持电路2的情况和第三以及第四实施例中的情况相同。
(第七实施例)以下参考图30和图31对第七实施例进行描述。除了从系数值保持电路59的输出被输入到锯齿波产生电路62之外,本实施例具有与第三实施例相同的布置。在本实施例中,仅仅解释与第三实施例不同的几点。其余的部分与第三实施例中的相同,因此省略对其的描述。
如图30所示,系数值保持电路59将对应于系数Ki的电压值输入到锯齿波产生电路62。在每一个锯齿波产生电路中,如图31所示,对应于系数Ki的电压值被提供到电压控制的电流源61的门,使得对应于系数Ki的预定电流流向电压控制的电流源61,不同于图23。也就是,本实施例不同于第三实施例的地方在于电压控制的电流源61的电流量可以由保持在系数值保持电路59中的系数Ki来控制。
电压控制的电流源61的电流值的变化对应于在电容器50上累积的每单位时间的电荷量的变化。这意味着关于时间的节点电压值的变化坡度发生改变。这就对应于用系数Ki来乘以单调增加的电压值,如在第五或第六实施例中所描述的。当通过缓冲器51将该电压输入到模拟运算电路中时,就可以进行三项Ki×Xi×Wi的乘法运算,如同第五或第六实施例。在本实施例中,其中操作数值Xi作为PWM信号输入到输入值保持电路2的情况和第三实施例中的情况相同。
(第八实施例)以下将参考图32到35B对第八实施例进行描述。
图32表示了根据本实施例的神经网络模型。图33A到图33B表示了当第一、第二、第三、以及第四实施例所描述的积和运算电路应用到本实施例中的神经网络中时,运算处理电路的布置示例(图33A和图33B表示了其中应用了第三实施例所描述的积和运算电路的情况)。如图33A和图33B所示,根据本实施例的神经网络的处理电路包括利用第一、第二、第三以及第四实施例中所描述的积和运算电路的处理电路。
如图32所示,作为神经网络中的神经元元素的模型,通常,一个神经元元素用突触权重64对前一级的多个神经元元素的输出值进行加权,并且计算输出值的和以确定神经元元素63的内部状态值。根据本实施例的神经元元素电路使用在第一、第二、第三或第四实施例中描述过的运算处理电路作为神经元元素的模型。
确切地,在第一、第二、第三或第四实施例中所描述过的操作数值Xi对应于前一级的神经元元素的输出值,并且操作数值Wi对应于突触权重值64以确定神经元元素63的内部状态值。
接着,如图33A和33B所示,由每一个运算电路计算的累积值被输入到函数处理电路65,该函数处理电路65执行处理函数的处理。该函数处理电路65可以根据该目的执行非线性函数处理或是线性函数处理。在本实施例中,作为示例,使用了如图34所示的Sigmoid转换的处理电路。
对于数字电路,函数处理电路65的实际电路布置可以由查看表实现,而对于模拟电路,则可以由比较器实现。
对于函数处理,当函数处理电路65执行对于运算电路1所计算的累积结果的处理时,其可以连接到另一个部分。对于函数处理电路65,提出了各种电路布置。然而,这并不是本发明的关键,因此省略对其的描述。接着,作为由函数处理电路65进行的Sigmoid转换的结果的值(对应于在下一层中的操作数值Xi)被保持在对应于下一层的输入保持电路中。在这种情况下,同时还保持该值的标签(对应于下一层的操作数值Xi)。
通过重复上述的运算处理,可以实现图32所示的神经网络中的运算处理。在本例中,在第一、第二、第三和第四实施例中所描述的方法被用作积和运算方法。因此,可以形成具有第一、第二、第三和第四实施例中所描述的效果的神经网络电路。
另外,对于在神经元元素之间(在积和运算电路之间)的输入/输出,操作数值Xi可以作为PWM信号输入到下一级的神经元元素电路(积和运算电路),如同第一、第二、第三和第四实施例。
当运算电路是模拟运算电路时,如图35A和图35B所示,则在电容器上累积的电荷量被比较器66作为PWM信号读出,并且被输入到下一级的脉宽/数字转换电路67。由比较器66产生PWM信号的方法是公知的,因此省略对其的描述。当锯齿电压波形作为参考电压输入时,对应于电荷量的PWM信号可以被读出。当非线性电压波形作为参考电压被输入时,可以读出非线性地对应于电荷量的PWM信号。也就是,比较器66可以用作函数处理电路。或者是,累积在电容器上的电荷量被作为与电荷量成比例的PWM信号由比较器66读出并且由下一级的脉宽/数字转换电路67转换为数字值后,可以通过使用查看表来执行函数处理。本实施例中的神经元元素的数目以及层的数目并不限制根据本发明的神经网络的布置。这些数目可以按照需要被设置为任意的数目。
(第九实施例)以下将参考附图36A和图36B对第九实施例进行描述。根据本实施例的神经网络模型与第八实施例所描述的神经网络模型基本相同,除了突触权重值由操作数值Wi和系数Ki的乘积Wi×Ki来表达。
图36A和图36B表示了当第五、第六或第七实施例所描述的积和运算电路应用到根据本实施例的神经网络中时,运算处理电路的布置(图36A和图36B表示了其中应用了第七实施例所描述的积和运算电路的电路)。如图33A和图33B所示,根据本实施例的神经网络的处理电路包括利用第一、第二、第三以及第四实施例中所描述的积和运算电路的处理电路。作为本实施例中的神经元元素的模型,一个神经元元素用由Wi×Ki表示的突触权重对从前一级上的多个神经元元素的输出值进行加权,并且计算输出值的和以确定神经元元素的内部状态值。
根据本实施例的神经元元素电路使用了作为神经元元素的模型的在第五、第六或第七实施例中描述过的运算处理电路。确切地,在第五、第六或第七实施例中所描述过的操作数值Xi对应于从前一级的神经元元素的输出值,并且操作数值Wi和系数Ki的乘积对应于突触权重值以确定神经元元素的内部状态值。
接着将执行的函数处理以及在函数处理之后的操作数值的输入/保持与第八实施例中的相同,因此省略对其的描述。对于在神经元元素之间(在层之间)的输入/输出,操作数值Xi可以作为PWM信号输入到下一级的神经元元素电路,如同第八实施例,因此省略对其的描述。
在本实施例中,在第五、第六或第七实施例中所描述的方法被用作积和运算方法。因此,可以形成具有第五、第六或第七实施例中所描述的效果的神经网络电路。本实施例中的神经元元素的数目以及层的数目并不限制根据本发明的神经网络的布置。这些数目可以按照需要被设置为任意的数目。
(第十实施例)神经网络的运算处理可以通常用图32所示的模型来解释。即使在从前一级的神经元输入到神经元元素的输出值的实际运算中,只有具有预定值或更多值的输出值会受到运算处理以确定内部状态,神经网络的最终运算能力在很多情况下却很少改变。在这种情况下,当对于小于预定值的值的运算处理被省略时,形成为电路的神经网络在功率消耗或运算速度方面具有优势。
在本实施例中,将描述一个运算电路,其中对于应用到第八和第九实施例的神经网络中的从第一到第七的实施例,操作数值Xi由排序电路以大小递减的顺序进行排序,并且对于小于预定值的操作数值Xi的运算被省略。图37仅表示了其中预定值保持存储器71被添加到排序电路4以实现图1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中的本实施例的功能的一个部分,这些图表示了在从第一到第九实施例中所描述的运算处理布置。因此,这些布置与图1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中所示的布置相同,除了图37所示的部分。更确切地,关于预定值的数据从预定值保持存储器71输入到排序电路4中。对于操作数值Xi的排序处理当到达预定值时结束。
当使用相联存储器作为排序电路时,通过使得在相联存储器中进行内容搜索的搜索值按序递减并且当搜索值到达预定值时结束处理,来实现对于小于预定值的操作数Xi的积和运算的省略。当使用WTA电路作为排序电路时,可以通过使得在WTA电路所进行的排序中当参考电压值到达预定值时结束处理来实现该省略。
在本实施例中,描述了省略对于具有小于预定值的操作数值Xi的积和运算的电路的两个示例。然而,可以使用其它任何的电路和方法只要其具有与上述效果相同的效果。
如上所述,当对于具有小于预定值的操作数值Xi的积和运算被省略时,在实际处理电路中,功率消耗可以降低,并且运算速度可以提高。
(第十一实施例)在某些情况下,当从上一级的神经元输出到神经元元素并且小于预定值的输出值被认为是常数值并且接受运算,而不是象第十实施例中所描述的省略对这些输出值的运算处理时,神经网络的运算处理能力会提高。在本实施例中,将描述一种运算电路,其中操作数值Xi由排序电路以大小递减的顺序排序并输出,并且小于预定值的操作数值Xi被认为是常数值。
图38中所示的布置不同于第十实施例之处在于图38中所示的上述排序电路4进一步添加了常数值保持存储器72。除了图38中所示的该部分之外的布置与在第十实施例中所描述的相同。更确切地,关于预定值的数据从预定值保持存储器71输入到排序电路4中。在到达预定值时对于操作数值的排序处理结束。
另外,关于常数值的数据从常数值保持存储器72输入到排序电路4中。该常数值作为操作数值Xi输出。当使用了相联存储器作为第十实施例中的排序电路时,运算作为常数值的小于预定值的操作数值Xi的电路可以通过使得当在相联存储器中进行内容搜索的搜索值为按序递减时,在操作数值Xi到达预定值之后输出作为预设置的常数值的操作数值Xi来实现。
为了这个目的,在另一个存储器中准备该预设置的常数值。在操作数值Xi到达预定值的同时,由相联存储器进行的处理停止,并且该预设置常数值从存储器中输出。可以使用其它任何的电路和方法只要其具有与上述功能相同的功能。当使用了WTA电路作为第十实施例中的排序电路时,该电路可以通过在WTA电路所进行的排序中,当参考电压到达预定值时输出对应于操作数值Xi的电压值被作为预设置的常数值来实现。
为了这个目的,在另一个模拟存储器中准备该预设置的常数值。在操作数值Xi到达预定值的同时,由WTA电路进行的处理停止,并且该预设置的常数值从该模拟存储器中输出。可以使用其它任何的电路和方法只要其具有与上述功能相同的功能。
(第十二实施例)神经网络的运算处理通常可以用图32所示的模型解释。即使在从前一级的神经元输入到神经元元素的输出值的实际运算中,只有对应于当从大值开始计数时的预定比率的输出值会受到运算处理以确定内部状态,神经网络的最终运算能力在很多情况下却很少改变。在这种情况下,当对于除了当从大值开始计数时的预定比率的值的值进行的运算处理被省略时,形成为电路的神经网络在功率消耗或运算速度方面具有优势。
在本实施例中,将描述一个运算电路,其中对于应用到第八和第九实施例的神经网络中的从第一到第七的实施例,操作数值Xi由排序电路以大小递减的顺序进行排序,并且对于除了对应于当从大值开始计数时的预定比率的值的操作数值Xi进行的运算处理被省略。
图39仅表示了其中预定数(比率)保持存储器73被添加到排序电路4以实现图1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中的本实施例的功能的一个部分,这些图表示了在从第一到第九实施例中所描述的运算处理布置。因此,这些布置与图1、5、21、25、27、28、30、33A、33B、35A、35B、36A以及36B中所示的布置相同,除了图39所示的部分。
更确切地,关于预定数(比率)的数据从预定数(比率)保持存储器73输入到排序电路4中。对于操作数值Xi的排序处理当到达预定数(比率)时结束。
当使用相联存储器作为排序电路时,通过使得在相联存储器中进行内容搜索并且按序递减搜索值时该处理在输出操作数Xi的数目到达从预定数(比率)保持存储器73输入的预定数(比率)时结束,来实现除了对应于当从大值开始计数时的预定比率的值的操作数值Xi的积和运算的省略。当使用WTA电路作为排序电路时,可以通过使得当参考电压值到达对应于操作数值Xi的预定数(比率)的电压值时结束处理来实现该省略。
在本实施例中,描述了省略除了对应于当从大值开始计数时的预定比率的值的操作数值Xi的积和运算的电路的两个示例。然而,可以使用其它任何的电路和方法只要其具有与上述效果相同的效果。
如上所述,当对于除了对应于当从大值开始计数时的预定数(比率)的值的操作数值Xi的积和运算被省略时,在实际处理电路中,功率消耗可以降低,并且运算速度可以提高。
(第十三实施例)在某些情况下,当从上一级的神经元输出到神经元元素并且除了对应于当从大值开始计数时的预定比率的值的输出值被认为是常数值并且接受运算,而不是象第十二实施例中所描述的省略对这些输出值的运算处理时,神经网络的运算处理能力会提高。在本实施例中,将描述一种运算电路,其中操作数值Xi由排序电路以大小递减的顺序排序,并且在第十二实施例中除了对应于当从大值开始计数时的预定比率的值的操作数值Xi被认为是常数值。
图40中所示的布置不同于第十二实施例之处在于图39中所示的上述排序电路4进一步添加了常数值保持存储器74。除了图40中所示该部分之外的布置与在第十二实施例中所描述的相同。更确切地,关于预定数(比率)的数据从预定数(比率)保持存储器73输入到排序电路4中。在到达预定数(比率)时对于操作数值Xi的排序处理结束。
另外,关于常数值的数据从常数值保持存储器74输入到排序电路4中。该常数值作为操作数值Xi输出。当使用了相联存储器作为排序电路时,运算作为常数值的除了对应于当从大值开始计数时的预定比率的值的操作数值Xi的方法可以通过使得当在相联存储器中进行内容搜索的搜索值为按序递减时,当输出的操作数值Xi的数目到达预定数(比率)后,输出作为预设置的常数值的操作数值Xi来实现。为了这个目的,在另一个存储器中准备该预设置的常数值。在输出的操作数值Xi的数目到达预定数(比率)的同时,由相联存储器进行的处理停止,并且该预设置常数值从存储器中输出。可以使用其它任何的电路和方法只要其可以实现与上述功能相同的功能。
当使用了WTA电路作为排序电路时,该电路可以通过在WTA电路所进行的排序中,在参考电压值到达对应于操作数值Xi的预定数(比率)的电压值后,输出作为预设置的常数值的对应于操作数值Xi的电压值来实现。为了这个目的,在另一个模拟存储器中准备该预设置的常数值。在参考电压值到达对应于操作数值Xi的预定数(比率)的电压值的同时,由WTA电路进行的处理停止,并且该预设置常数值从模拟存储器中输出。可以使用其它任何的电路和方法只要其可以实现与上述功能相同的功能。
(第十四实施例)图41A和图41B表示了执行第十四实施例的图像处理的积和运算电路的示例布置。如图41A和图41B所示,作为特性特征,该执行第十四实施例的图像处理的积和运算电路包括在第八到第十三实施例中所描述的神经网络。图41A和图41B仅表示了层级结构的第一级并且没有显示随后的层。
输入到积和运算电路的信号是图像信号。更确切地,根据本实施例的积和运算电路的目的在于通过引发神经网络电路对输入图像信号执行预定的预算而执行希望的图像处理(例如,图形检测和图形识别)。
将被实际实现的图像处理的内容可以通过适当地调整神经网络电路的操作数值Wi和系数Ki使得实现希望的处理内容(例如,图形检测和图形识别)而设置。详细的调整方法并不是本发明的关键,因此省略对其的描述。
在本实施例中,从图像传感设备(例如,CCD或CMOS图像传感器)输出的图像信号对应于第一到第七实施例中的操作数值Xi。因此,对于图像信号执行的运算处理与在第一到第十三实施例中对于操作数值Xi执行的运算处理相同。图像信号作为模拟信号、数字信号或是PWM信号输入。对应于每种信号类型的运算处理对应于在第一到第十三实施例中所描述的操作数值Xi的信号类型。运算处理与在实施例中的相同并且因此省略对其的描述。
参考图41A和图41B,图像信号作为模拟信号由比较器69转换为PWM信号,接着由脉宽/数字转换电路70转换为数字值,并接着被输入到神经网络电路中。
在本实施例中,图像传感设备假设为CCD或CMOS图像传感器。也可以使用任何其它的图像传感设备而不会产生任何问题。本实施例中的图像传感设备的数目、神经元元素的数目以及层的数目并不对根据本发明的图像信号处理电路的布置构成限制。这些数目可以根据需要被设置为任何数目。
图42表示了上述的运算处理流。
首先,执行步骤S1,从图像传感设备输入图像信号。接着,执行输入值保持步骤S2,保持输入信号。随后,执行排序步骤S3,将保持的输入值以大小递减的顺序输出。存储器保持步骤S4,将标签和标示保持在存储器中。在锯齿波产生步骤S6,根据在系数值输入步骤S5输入的系数值以及在存储器保持步骤S4输入的标示产生始终单调增加的电压波形(锯齿波形),并将其输入到切换步骤S7。
在切换步骤S7,根据在存储器保持步骤S4输入的标签将锯齿波形输入到适当的运算电路。在切换步骤S9,根据在存储器保持步骤S4输入的标签将在权重值输入步骤S8输入的权重值输入到适当的运算电路。
在锯齿波形和权重值所输入的运算电路中,执行相乘/累积步骤S10,并且累积值被输出到函数处理步骤S11。在函数处理步骤S11,执行预定的函数处理,并且执行步骤S12,将输出值输入到后一级层。在该后一级层侧,上述的运算处理步骤重复需要的次数(层的数目)。
如上所述,当由神经网络电路进行的运算处理被应用到图像信号时,就可以实现希望的运算处理(例如,图形检测和图形识别)。
(第十五实施例)根据上述的实施例,提供了一种积和运算电路,其使用了将多个数字输入值并行转换为脉宽而同时节省面积并且降低功率消耗的数字/脉宽转换电路,或是使用了在低功率消耗下工作并可以降低由电路产生的噪声的脉宽/数字转换电路。
在下面的实施例中,将描述使用了具有与上述效果相同的效果的脉宽/数字转换电路的模拟/数字混合运算电路。
图48表示了根据本实施例的模拟/数字混合运算电路的整体布置。
如图48所示,该模拟/数字混合运算电路包括数字存储器501、数字/脉宽转换电路502、模拟运算电路503以及电容器504。
该模拟/数字混合运算电路实现了计算多个乘法结果的累积值的功能。
图49详细解释了图48所示的模拟运算电路503和电容器504的布置。如图49所示,该模拟运算电路503和电容器504具有这样一种布置,其中多个模拟运算电路503并行连接到连接至电容器504的总线。
图50表示了模拟运算电路503的详细电路布置。如图50所示,模拟运算电路503包括PMOS晶体管M1,该晶体管M1用作恒定电流源。
数字/脉宽转换电路502的布置与图16和图17所示的第二实施例的数字/脉宽转换电路23的布置相同,因此省略对其的描述。根据图18所示的时序图来执行引发数字/脉宽转换电路502将保持在数字存储器501中的数字数据转换为脉冲信号的处理,如同第二实施例,因此省略对其的描述。
以下将参考图50对模拟运算电路503进行的运算处理进行描述。接着,参考附图49描述如何引发电容器504将模拟运算电路503的运算结果作为部分和而保持。另外,将参考图48描述如何从该部分和计算希望的累积值。
如图48所示,首先,保持在数字存储器501中的被乘数A的数字值被输入到数字/脉宽转换电路502。该数字/脉宽转换电路502将接收到的数字值转换为具有与数字输入值成比例的时间宽度的脉冲信号,并且根据图18所示的时序图输出该脉冲信号,如同第二实施例中所描述的。
在本实施例中,图50所示的模拟运算电路503实现了被乘数值A和乘数值B的相乘(A×B)(A和B满足A≥0以及B≥0)。为了实现由模拟运算电路503进行的相乘,被乘数值A和乘数值B作为从数字/脉宽转换电路502输出的PWM信号和模拟电压Vw分别输入(图49)。
该模拟运算电路503可以为另一种模拟运算电路,除了这样一种电路,即如果其执行了一种运算即实现了相乘(例如,非线性转换)。
参考图50,从数字/脉宽转换电路502输出的PWM信号Vin被输入到输入端J。另外,通过对乘数值B执行预定的转换而获得的模拟电压Vw被输入到输出端K。
对PWM信号的特性作简要的描述。在PWM(脉冲宽度调制)信号中,脉冲波形的宽度带有信息。PWM信号具有抗噪的数字特性(代表着高和低电平的二进制信息被保持在电压方向上的特性)以及可以通过一个脉冲表达连续信息的模拟特性(代表着该连续信息被保持在时间方向上的特性)。
输入到输入端J的对应于乘数值B的电压Vw被施加到PMOS晶体管M1的栅端上。该PWM信号Vin从该输入端J输入到该PMOS晶体管的源端。PWM信号的低电平被设置到0V。高电平被设置到供电电压Vdd(在本实施例中为3.3V)。
模拟电压Vw被设置到适当的电压范围使得当PWM信号位于高电平时,也就是,当供电电压Vdd被施加到PMOS晶体管M1的源端时,晶体管M1在饱和区域工作。相应地,当PWM信号位于高电平时,PMOS晶体管M1可以作为恒定电流源而工作。
此时流向PMOS晶体管M1的电流量由栅-源电压,也就是,(Vdd-Vw)确定。此时,PWM信号Vin的脉宽以被乘数值A的比例而被转换。模拟电压Vw被转换使得由(Vdd-Vw)确定的电流量与乘数值B成比例。
因此,由于只有当PWM信号在高电平时,PMOS晶体管M1中的电流由(Vdd-Vw)确定,所以当PWM信号在高电平时,由PMOS晶体管M1提供的总电荷量与A×B成比例。可以使用任何其它的模拟电路只要其能够实现通过使用PWM信号进行的相乘。
以下参考图49对如何引发电容器504保持模拟运算电路503的运算结果进行描述。参考图49,由PMOS晶体管M1提供的电荷量在电容器504上累积,该电容器504通过总线与模拟运算电路503连接。
该多个独立执行运算的模拟运算电路503被连接到总线。由模拟运算电路503并行进行的运算的结果,也就是,上述的电荷量通过总线被累积在电容器504上并且相加。
因此,在每一个周期的并行运算处理结束时累积在电容器504上的总电荷量指的是通过共用总线连接到电容器504的多个模拟运算电路503的运算结果的和。
接下来参考图51所示的流程图描述该运算处理流。执行每一个处理步骤的运算电路也会在描述中提及。
参考图51,首先,执行数字信号输入步骤S21。接着执行引发数字/脉宽转换电路502将该数字信号转换为PWM信号的步骤S25。执行Bi(电压Vw)输入步骤S22。执行引发每一个模拟运算电路503将作为从步骤S25的输出的PWM信号乘以电压值Vw的步骤S23。执行引发电容器504将模拟运算电路503并行计算的乘积作为电荷量累积并且保持部分和∑(Ai×Bi)的步骤S24。
当将上述的运算流重复必需的次数(在本实施例中为三次)以计算累积值时,就计算出了希望的累积值。
上述的运算流可以按照需要重复多次,并且运算结果可以作为电荷在电容器中附加地累积(虽然在图51的步骤S24中计算了部分和,但是如果运算结果作为电荷在电容器中附加地累积,则对应于最终计算的累积值的电荷量被累积在电容器上)。
还可以的是,作为电荷临时累积在电容器上的运算结果可以被存储在另一个存储电路中,并且可以重新执行该运算流。
如上所述,当使用了在低的功率消耗下将多个数字输入值并行转换为脉宽的数字/脉宽转换电路时,就可以实现具有低的功率消耗以及小的布局面积的模拟/数字混合运算电路。
(第十六实施例)在上述第十五实施例中的模拟/数字混合运算电路中,数字/脉宽转换电路可以具有另一种布置。例如,可以应用图45所示的作为对于第二实施例的修改的数字/脉宽转换电路151。如上参考图45到图47的所述,数字/脉宽转换电路151驱动一个计数器153。每一个脉冲产生电路152-i参考从共用计数器153的输出值来切换脉冲。出于这个原因,在切换设备的切换时刻所产生的到负载的直通电流或是充电/放电电流较小,并且功率消耗也较低。因此,当运用了数字/脉宽转换电路151时,功率消耗就可以降低。另外,由于使用了共用计数器153,电路布局面积降低。
(第十七实施例)图52表示了根据第十七实施例的模拟/数字混合运算电路的布置示例。在图48中的相同的参考标号指的是图52中的相同的构成块。
从参考图52对图48进行的比较中可以看出,在第十五实施例中所描述的模拟/数字混合运算电路中,在模拟运算电路503的上一级上添加数字存储器520和D/A转换电路300。
在本实施例中,仅描述与第十五实施例不同的D/A转换电路300所进行的处理。其余的处理运算与第十五实施例中的相同因此省略对其的描述。
如图53所示,D/A转换电路300包括数字/脉宽转换电路521、电流源522、电容器523和缓冲器524。对于由D/A转换电路300执行的处理,数字/脉宽转换电路521并行执行的处理与第十五实施例中相同,因此其描述省略。
如图53所示,首先,在D/A转换电路300中,对应于乘数值B的数字值从数字存储器输入到数字/脉宽转换电路521。在接收到数字值后,数字/脉宽转换电路521执行与在第十五实施例中相同的处理并且输出PWM信号。PWM信号ON/OFF控制着电流源522的操作。
也就是,在本实施例中,当PWM信号为高时,电流源522为ON,并且预定的电流被提供给电容器523。当PWM信号为低时,电流源522为OFF,并且到电容器523的电流提供停止。结果是,电容器523累积了与PWM信号的时间宽度成比例的电荷量。在电容器523中,所累积的电荷量可以被作为通过缓冲器524的电压值。该电压值作为对应于乘数值B的模拟电压值输入模拟运算电路中,如图52所示。
以下将参考图54所示的流程图对运算处理流进行描述。
参考图54,首先,执行数字信号Ai输入步骤S31。接着执行引发数字/脉宽转换电路502将该数字信号转换为PWM信号的步骤S35。执行数字信号Bi(电压Vw)的输入步骤S36。执行引发D/A转换电路300将数字信号转换为模拟信号的D/A转换步骤S37。
执行引发每一个模拟运算电路503将作为从步骤S35和步骤S37的输出的PWM信号乘以模拟电压值Vw的步骤S33。执行引发电容器504将模拟运算电路503并行计算的乘积作为电荷量累积并且保持部分和∑(Ai×Bi)的步骤S34。
当将上述的运算流重复必需的次数(在本实施例中为三次)以计算累积值时,就计算出了希望的累积值。
上述的运算流可以按照需要重复多次,并且运算结果可以作为电荷在电容器504中附加地累积(虽然在图54的步骤S34中计算了部分和,但是如果运算结果作为电荷在电容器504中附加地累积,则对应于最终计算的累积值的电荷量被累积在电容器504上)。还可以的是,作为电荷临时累积在电容器504上的运算结果可以被存储在另一个存储电路中,并且可以重新执行该运算流。
如上所述,当使用了D/A转换电路300中的在低的功率消耗下将多个数字输入值并行转换为脉宽的数字/脉宽转换电路502时,就可以实现具有低的功率消耗以及小的布局面积的模拟/数字混合运算电路。
(第十八实施例)以下参考附图对第十八实施例进行描述。图55表示了根据本实施例的模拟/数字混合电路的整体布置。
如图55所示,该模拟/数字混合电路包括多个模拟运算电路503、连接到该多个模拟运算电路503的电容器504、A/D转换电路550、数字加法电路525以及数字存储器526。该模拟/数字混合运算电路实现了计算多个相乘结果的累积值。
图55所示的模拟运算电路503和电容器504的具体布置与图49所示的相同。如图49所示,本实施例的模拟运算电路503和电容器504具有这样的布置,其中多个模拟运算电路503并行连接到连接至电容器504的总线。
本实施例中的模拟运算电路503的具体的电路布置与图50所示的相同。如图50所示,本实施例中的模拟运算电路503包括用作恒定电流源的PMOS晶体管M1。
以下参考图50首先对由模拟运算电路503进行的运算处理进行描述。接着,参考附图49描述如何引发电容器504将模拟运算电路503的运算结果作为部分和而保持。另外,将参考图55描述如何从该部分和计算希望的累积值在本实施例中,图50所示的模拟运算电路503实现了被乘数值A和乘数值B的相乘(A×B)。A和B满足A≥0以及B≥0。
为了由模拟运算电路503实现相乘,已经经过了预定转换的被乘数值A和乘数值B作为PWM信号Vin和模拟电压Vw分别输入,如稍候将描述的。
如果需要,输入到模拟运算电路503中的PWM信号和模拟电压也可以从一个外部功率提供设备输入。然而,它们也可以是通过转换例如PWM信号中的数字值以及在第十五实施例中所描述的模拟电压输入处理而输入。
在本实施例中,PWM信号模拟电压的输入如同在十五实施例中所描述的。输入的处理与第十五实施例的相同,因此省略对其的详细描述。模拟运算电路503可以为另一种模拟运算电路,除了这样一种电路,即如果其执行了一种运算即实现了相乘(例如,非线性转换)。
参考图50,通过对被乘数值A执行预定的转换而获得的PWM信号Vin被输入到输入端J。另外,通过对乘数值B执行预定的转换而获得的模拟电压Vw被输入到输入端K。
输入到输入端J的对应于乘数值B的电压Vw被施加到PMOS晶体管M1的栅端。PWM信号Vin从输入端J输入到PMOS晶体管M1的源端。PWM信号的低电平被设置到0V。高电平被设置到供电电压Vdd(在本实施例中为3.3V)。
模拟电压Vw被设置到适当的电压范围使得当PWM信号位于高电平时,也就是,当供电电压Vdd被施加到PMOS晶体管M1的源端时,晶体管M1在饱和区域工作。相应地,当PWM信号位于高电平时,PMOS晶体管M1可以作为恒定电流源而工作。
此时流向PMOS晶体管M1的电流量由栅-源电压,也就是,(Vdd-Vw)确定。此时,PWM信号Vin的脉宽以被乘数值A的比例而被转换。模拟电压Vw被转换使得由(Vdd-Vw)确定的电流量与乘数值B成比例。
因此,由于只有当PWM信号在高电平时,PMOS晶体管M1中的电流由(Vdd-Vw)确定,所以当PWM信号在高电平时,由PMOS晶体管M1提供的总电荷量与A×B成比例。
以下参考图49对如何引发电容器504将模拟运算电路503的运算结果作为部分和进行保持而进行描述。参考图49,由PMOS晶体管M1提供的电荷量在电容器504上累积,该电容器504通过总线与模拟运算电路503连接。
该多个独立执行运算的模拟运算电路503被连接到总线。由模拟运算电路503并行进行的运算的结果,也就是,上述的电荷量通过总线被累积在电容器504上并且相加。
因此,在每一个周期的并行运算处理结束时累积在电容器504上的总电荷量指的是通过共用总线连接到电容器504的多个模拟运算电路503的运算结果的和。该和对应于将被最终计算的累积值的部分和。
可以使用任何其它的模拟运算电路只要其能够实现通过使用PWM信号的乘法。
接下来参考图48描述从该部分和计算希望的累积值的处理。
在本实施例中,希望的累积值由下式给出∑i=112Ai×Bi---(7)]]>为了获得最终的累积值,使用了其中有如图49所示的四个模拟运算电路503连接到电容器504的布置。即使运算的总数(本实施例中为12)不是模拟运算电路数目(4)的倍数,运算的数目也可以通过输入对应于乘数值B=0的模拟电压Vw而得到调整。
如参考图49所述的,该四个模拟运算电路503并行执行的运算由下式给出∑i=14Ai×Bi---(8)]]>运算结果作为电荷量保持在电容器504中。
运算结果可以视为对于希望运算(运算表达式(7))的部分和。
接着,由A/D转换电路550将作为电荷量以模拟的方式保持在电容器504中的运算结果转换为数字值。数字加法电路525将该数字值加至存储在数字存储器526中的数字值上。运算结果被保持在数字存储器526中。
上述的运算是对于所希望运算(运算表达式(7))的第一运算。因此没有提前保持在数字存储器526中的部分和。数字存储器526保持着所有的0。因此,保持在数字存储器526中的数字值等于运算表达式(8)运算结果。
第二部分和由模拟运算电路503运算。更确切地,如参考图2的描述,该四个模拟运算电路503并行执行由下式给出的运算∑i=58Ai×Bi---(9)]]>运算结果作为电荷量保持在电容器504中。
运算结果可以视为对于希望运算(运算表达式(7))的部分和。
接着,由A/D转换电路550将作为电荷量以模拟的方式保持在电容器504中的运算结果转换为数字值。
数字加法电路525将该数字值加至存储在数字存储器526中的数字值上。运算结果被保持在数字存储器526中。
预先保持在数字存储器526中的数字值对应于运算表达式(8)的运算结果。因此,通过对运算表达式(9)的运算结果进行相加而获得并存储的结果由下式给出∑i=14Ai×Bi+∑i=58Ai×Bi=∑i=18Ai×Bi---(10)]]>第三部分和由模拟运算电路503运算。更确切地,如参考图49的描述,该四个模拟运算电路503并行执行由下式给出的运算∑i=912Ai×Bi---(11)]]>运算结果作为电荷量保持在电容器504中。
运算结果可以视为对于希望运算(运算表达式(7))的部分和。
接着,由A/D转换电路550将作为电荷量以模拟的方式保持在电容器504中的运算结果转换为数字值。
数字加法电路525将该数字值加至存储在数字存储器526中的数字值上。运算结果保持在数字存储器526中。
预先保持在数字存储器526中的数字值对应于运算表达式(10)的运算结果。因此,通过对运算表达式(11)的运算结果进行相加而获得并存储的结果由下式给出∑i=18Ai×Bi+∑i=912Ai×Bi=∑i=112Ai×Bi---(12)]]>如上所述,模拟运算电路503以模拟的方式执行该多个相乘运算,并且结果以模拟的方式被加至电容器504中以对于希望的累积值计算部分和。
另外,以上述方式计算的部分和由A/D转换器550转换为数字数据并且由数字加法电路525数字地加至保持在数字存储器526中的值上,以实现希望的预算。
下面对由上述A/D转换电路550执行的处理进行详细的描述。
图56为表示A/D转换电路550的布置的方框图。如图56所示,该A/D转换电路550包括多个比较器528以及脉宽/数字转换电路529。在电容器504上作为电荷累积的运算结果被称为电容器504上的电压值。该电压值被输入到比较器528并且由比较器528将其与单独输入的任意电压波形进行比较。
该任意电压波形可以是其中电压值线性地增加的锯齿电压波形527,或是另一个非线性电压波形。在本实施例所使用的锯齿电压波形527中,在电容器上累积的运算结果被线性地转换以设置PWM信号宽度。在另一个非线性电压波形中,在电容器上累积的运算结果被非线性地转换以设置PWM信号宽度。
更确切地,从比较器528的输出值在锯齿电压波形527的开始时提升到高电平并且在当锯齿电压值527等于电容器504的电压值时跌落到低电平,从而输出值被转换为PWM信号。
关于引发比较器528将模拟电压转换为PWM信号的技术是公知的。这并不是本发明的关键因此省略对其的描述。从比较器528输出的PWM信号被输入到脉宽/数字转换电路529中。
脉宽/数字转换电路529的布置和运算与第一实施例中的如图6到图9所示的脉宽/数字转换电路9的布置和运算相同。作为变化的是,可以应用参考图10和图11所描述的布置和运算。对其的详细描述在此省略。
以下将参考图57所示的流程图对运算处理流进行描述。在该描述中也提到了执行了每一个处理步骤的运算电路。
参考图57,首先,执行数字信号Ai输入步骤S41。接着执行引发数字/脉宽转换电路502将该数字信号转换为PWM信号的步骤S45。
执行数字信号Bi(电压Vw)输入步骤S46。执行引发D/A转换电路将数字信号转换为模拟信号的D/A转换步骤S47。执行引发每一个模拟运算电路503将作为从步骤S45和步骤S47的输出的PWM信号乘以模拟电压值Vw的步骤S43。
执行引发电容器504将模拟运算电路并行计算的乘积作为电荷量累积并且保持部分和∑(Ai×Bi)的步骤S44。
执行引发A/D转换电路进行从对应于部分和∑(Ai×Bi)的电荷量(电压值)到数字值的A/D转换的步骤S49。
执行引发数字加法电路525将对应于部分和的数字值加至在步骤S51输出并且已经保持在数字存储器526中的累积值(对应于运算进程的累积值)上并且计算新的累积值的步骤S50。
最后,执行重写这样计算得到的累积值并将其保持在数字存储器526中的步骤S51。在这种情况下,累积值在存储器中的相应部分(保持有运算进程中的累积值的部分)上被改写盖。
当将上述的运算流重复必需的次数(在本实施例中为三次)以计算累积值时,就计算出了希望的累积值。
在上面的描述中,当希望的累积值被保持在数字存储器中时处理就结束了。该累积值可以进一步接受希望的运算处理。例如,非线性转换电路可以连接到数字存储器的下一级,使得能够输出通过非线性转换累积值而获得的值。
在这种情况下,可以通过查看表电路或其类似来实现该非线性转换电路。在本实施例中所述的模拟/数字混合运算电路可以对计算的累积值执行任意的运算处理。该非线性转换电路可以被连接到数字加法电路的下一级。
在这种情况下,该非线性转换电路可以通过查看表电路或其类似来实现。
更确切地,由数字加法电路计算的累积值被输入到查看表电路。该累积值由查看表电路非线性地转换并且被保持在数字存储器中。
在这种情况下,可以只对数字加法电路计算的希望的运算值(最终计算的累积值,也就是,由运算表达式(7)或(12)给出的值)执行非线性转换。对在运算处理的进程中计算的累积值(运算表达式(8)或(10))可以不执行非线性转换。
可以使用其它任意的布置只要其能够非线性地转换累积值。
如上所述,当在A/D转换电路中使用了在较低功率消耗下将多个PWM信号并行转换为数字值的脉宽/数字转换电路时,就可以实现具有较低功率消耗和较小布局面积的模拟/数字混合运算电路。
(第十九实施例)图58为表示根据第十九实施例的模拟/数字混合运算电路的布置示例的框图。
与第十八实施例中所描述的图55不同的几点如下。图55中的数字加法电路525被数字加减器538取代。在图58中的模拟运算电路503对于根据其符号而具有正负号的乘数值B分别执行乘法运算。代表着乘数值B的符号的符号比特539被输入到该数字加减器538中。在对于存储在数字存储器526中的数字数据进行的运算中,数字加减器538将对于负乘数值B的运算结果的部分和从数字存储器526中的数字数据中减去。
也就是,作为在本实施例中的每一个模拟运算电路503中的相乘,对于正号和负号的相乘分别对于乘数值B的正号和负号而执行。
以下仅描述与第十八实施例不同的地方。其余部分与第十八实施例的相同,因此省略对其的描述。
由下式给出的运算由图58中的模拟/数字混合运算电路执行,其中(Ai≥0)∑i=1Ai×Bi---(13)]]>在这种情况下,根据乘数值B的符号,该四个模拟运算电路503分别执行正运算和负运算,如下所示A1·B1+A2·B2+A5·B5+A7·B7 (14)A9·B9+A10·B10+A14·B14+A16·B16 (15)A3·B3+A4·B4+A6·B6+A8·B8 (16)A11·B11+A12·B12+A13·B13+A15·B15 (17)其中B1、B2、B5、B7、B9、B10、B14、B16≥0,并且B3、B4、B6、B8、B11、B12、B13、B15<0。
在第十八实施例中,即使运算的总数(在上述的情况下为12)不是模拟运算电路数目(4)的倍数,运算的数目也可以通过输入对应于乘数值B=0的模拟电压Vw而得到调整。
如同第十八实施例中的,由运算表达式(14)到(17)给出的部分和由模拟运算电路503进行计算。此时,将每一个部分和作为绝对值而进行计算,无需考虑乘数值B的正/负号。
A/D转换电路550将运算表达式(14)到(17)给出的计算的部分和转换为数字数据。转换的数字数据被输入到数字加减器538中。代表乘数值B的符号的符号比特539也被输入到数字加减器538中。
当输入部分和的数字数据的符号比特为1时(乘数值B为正),数字加减器538将输入的部分和的数字数据加至保持在数字存储器526中的数字数据上,如同第十八实施例。
另一方面,当输入部分和的数字数据的符号比特为0时(乘数值B为负),从保持在数字存储器526中的数字数据中减去输入的部分和的数字数据。
如上所述,根据符号比特,部分和的数字数据被加至保持在数字存储器中的数字数据或是从该数字存储器中的数字数据中减去,从而计算希望的累积值。如同第十八实施例,该累积值可以进一步接受希望的运算处理。例如,非线性转换电路可以连接到数字存储器的下一级,使得可以输出通过非线性转换累积值而获得的值。在这种情况下,可以通过查看表电路或其类似来实现该非线性转换电路。
如上所述,在本实施例中所述的模拟/数字混合运算电路可以对计算的累积值执行任意的运算处理。该非线性转换电路可以被连接到数字加法电路的下一级。在这种情况下,该非线性转换电路可以通过查看表电路或其类似来实现。
更确切地,由数字加法电路计算的累积值被输入到查看表电路。该累积值由查看表电路非线性地转换并且被保持在数字存储器中。
在这种情况下,可以只对数字加法电路计算的希望的运算值(最终计算的累积值,也就是,由运算表达式(13)给出的值)执行非线性转换。对在运算处理的进程中计算的累积值可以不执行非线性转换。可以使用其它任意的布置只要其能够非线性地转换累积值。
以下参考图59所示的流程图对运算处理流进行描述。执行每一个处理步骤的运算电路也会在描述中提及。
参考图59,首先,执行数字信号Ai输入步骤S61。接着执行引发数字/脉宽转换电路502将该数字信号转换为PWM信号的步骤S65。执行数字信号Bi(电压Vw)的输入步骤S66。执行引发D/A转换电路将数字信号转换为模拟信号的D/A转换步骤S67。执行引发每一个模拟运算电路将作为从步骤S65和步骤S67的输出的PWM信号乘以模拟电压值Vw的步骤S63。
执行引发电容器将模拟运算电路503并行计算的乘积作为电荷量累积并且保持部分和∑(Ai×Bi)的步骤S64。执行引发A/D转换电路将对应于部分和∑(Ai×Bi)的电荷量(电压值)转换为数字值的步骤S69。执行将代表着Bi的正/负号的符号比特输入到数字加减器中的步骤S73。执行引发数字加减器根据输入符号比特的值执行对应于部分和的数字值的运算处理的步骤S72。
更确切地,当符号比特为1时(Bi为正),数字加减器将对应于部分和的数字值加至在步骤S71输出并且已经保持在数字存储器中的累积值(对应于运算进程中的累积值)并且计算新的累积值。
当符号比特为0时(Bi为负),数字加减器从在步骤S71输出并且已经保持在数字存储器中的累积值(对应于运算进程中的累积值)中减去对应于部分和的数字值并且计算新的累积值。
最后,执行重写这样计算得到的累积值并将其保持在数字存储器中的步骤S71。在这种情况下,累积值在存储器中的相应部分(保持有运算进程中的累积值的部分)上被改写覆盖。
当将上述的运算流重复必需的次数(在本实施例中为四次)以计算累积值时,就计算出了希望的累积值。
如上所述,模拟运算电路503根据乘数值B的正/负号分别计算部分和。在保持在数字存储器526中的数字数据上进行加减是相应于正/负号而执行的。通过该处理,包括正/负号的相乘结果的累积值可以如下所示地被计算
(A1·B1+A2·B2+A5·B5+A7·B7)]]>+(A9·B9+A10·B10+A14·B14+A16·B16)]]>-(A3·B3+A4·B4+A6·B6+A8·B8)]]>-(A11·B11+A12·B12+A13·B13+A15·B15)]]>=∑i=116Ai×Bi---(18)]]>在上述的运算中,假设对应于乘数值B的正号和负号的运算处理步骤如下所示交替地执行(A1·B1+A2·B2+A5·B5+A7·B7)]]>+(A3·B3+A4·B4+A6·B6+A8·B8)]]>-(A9·B9+A10·B10+A14·B14+A16·B16)]]>-(A11·B11+A12·B12+A13·B13+A15·B15)]]>=∑i=116Ai×Bi---(19)]]>在这种情况下,正部分和和负部分和彼此抵消。出于这个原因,在数字存储器526中的线性加法精确度的范围(累积值的范围)变窄,并且数字存储器526的比特长度可以降低。
例如,假设由表达式(14)到(17)给出的部分和为(85,53,60,71)。如果具有相同符号的值连续地加或减,则在运算的进程中存储在数字存储器526中的值如下第一次运算的存储值=85第二次运算的存储值=85+53=138第三次运算的存储值=138-60=78第四次运算的存储值=78-71=7在加/减部分和的运算进程中的最大值为138。因此,数字存储器526的比特长度必然为8比特。
相反地,当对应于正号和负号的运算交替地执行时,在运算的进程中存储在数字存储器526中的值如下第一次运算的存储值=85
第二次运算的存储值=85-60=25第三次运算的存储值=25+53=78第四次运算的存储值=78-71=7在这种情况下,在加/减部分和的运算进程中的最大值为85。因此,数字存储器526的比特长度必然为7比特。也就是,比特长度可以比上述的示例中的小。
(第二十实施例)图60A和图60B表示了根据第二十实施例的神经网络电路的布置的示例。如图60A和图60B所示,作为特性特征,根据本实施例的神经网络电路包括第十九实施例中所描述的模拟/数字混合运算电路以及数字/脉宽转换电路。
为了执行第十九实施例中所描述的非线性转换,查看表电路连接到数字加减器的下一级。
图61为表示了本实施例所实现的神经网络模型的布置的视图。
首先参考图61对本实施例的神经网络模型进行描述。接着,参考图60A和图60B对根据本实施例的神经网络电路进行描述。
如图61所示,在本实施例的神经网络中,多个神经元540形成了层级结构。不同层上的神经元通过突触541进行连接。
在本实施例之外,神经网络可以具有以阵列排列的神经元。由于神经元之间的连接,两个神经元可以彼此相连。根据本实施例的神经网络并不限于其布置或连接方法。除了本实施例中的层级结构可以使用任何其它的结构和连接方法。
下面描述在每一个神经元540中进行的运算处理。每一个神经元540用突触权重对从连接到上一级的多个神经元的输出值进行加权并且接收该值作为输入。在神经元中,计算输入值的和。该和接受预定的转换并且作为输出值而输出。在每一个神经元中进行的运算处理可以由下式表示y=f(∑ω·x) (20)其中y为输出值,f为转换函数,ω为突触权重,x为上一级的神经元的输出值。
对于转换函数,已经提出了各种模型。本实施例使用了由下式给出的普通Sigmoid函数f(u)={1+exp(-au)}-1(21)其中a为决定了Sigmoid函数的梯度的参数。图34表示了Sigmoid函数的特性。
根据本发明的神经网络并不限于这个神经元的转换方法。可以应用除了本实施例的Sigmoid函数的任何其它转换函数。
以下参考图60A和图60B描述对根据本实施例的神经网络电路进行描述。从图60A和图60B中可以看出,本实施例的神经网络电路包括在第十九实施例中所描述的模拟/数字混合运算电路的层级结构。
如上所述,在本实施例的运算电路中,查看表电路被连接到加减器的下一级。更确切地,由数字加减器计算的希望的累积结果经过查看表电路的Sigmoid函数转换并且被接着保持在数字存储器电路中。查看表仅对最后计算的希望的运算结果执行Sigmoid函数转换。不对累积进程中的数据执行Sigmoid函数转换。
因此,图60A和图60B显示了两种系统一种系统将数字加减器的输出输入到查看表电路,并且另一种系统将数字加减器的输出直接输入到数字存储器。
另外,在本实施例所将要描述的模拟/数字混合运算电路中,为了执行层级运算处理,由一层的模拟/数字混合运算电路计算的运算结果被输入到下一层的模拟/数字混合运算电路。此时,由数字/脉宽转换电路将保持在数字存储器中的运算结果作为PWM信号读出。该PWM信号的产生处理与在第十五实施例中所描述的相同。
由每一层的模拟/数字混合运算电路进行的运算处理与第十九实施例中的相同。对应于乘数值B的模拟电压Vw被输入到模拟运算电路,虽然没有在图60A和图60B中表示出来。输入模拟电压Vw的步骤与第十九实施例中的相同。
在由本实施例的模拟/数字混合运算电路进行的运算处理中,在电容器上保持的部分和指的是在每一个神经元中关于到上一级的神经元的连接的部分的输入值的和。最终保持在数字存储器上的累积值指的是在每一个神经元中所有上一级连接的神经元的输入值的累积值。使用了图34所示的Sigmoid函数的非线性转换(Sigmoid转换)通过非线性转换电路(查看表电路)实现,如上所述。
图62A和图62B表示的是上述的运算处理流。在图62A和图62B中的交替的长短虚线指的是运算处理中上一级层和后一级层之间的边界。
首先,上一级层的计算的希望的累积值由Sigmoid转换进行转换(S95)并且作为数字值被临时保持在数字存储器中(S91)。接着,执行引发数字/脉宽转换电路将数字值转换为PWM信号的步骤S85。在本实施例中,希望的累积值计算之后,由查看表电路仅仅执行一次Sigmoid转换(S95)。除了Sigmoid转换步骤S95之外,上一级层中的处理步骤与第十九实施例所描述的运算处理相同。
PWM信号作为输入信号Ai被输入到下一级层。与上一级层中的运算处理类似,在下一级层中执行的运算处理与第六实施例中所描述的相同,除了由Sigmoid转换步骤S95进行的处理步骤。与第十九实施例中相同的运算处理流的描述将省略。参照62A和62B,多个保留的Ai输入步骤由虚线箭头S94表示。
如上所述,在每一个神经元中的保持在数字存储器中的累积值由数字/脉宽转换电路作为PWM信号读出并且输出到下一层的神经元。相应地,就可以实现图61所示的神经网络模型。本实施例中的神经元元素的数目和层的数目并不限制根据本发明的神经网络的布置。这些数目可以根据需要设置为任意数目。
(第二十一实施例)图63A和图63B表示了根据第二十一实施例的图像信号处理电路的布置示例。如图63A和图63B所示,作为特性特征,本实施例的图像信号处理电路包括第二十实施例所描述的如60A和图60B所示的神经网络电路。图63A和图63B仅表示了第五实施例所描述的层级结构的第一级而没有显示出后面的层。
在神经网络电路中的模拟/数字混合运算电路的数目与在第二十实施例所描述的图60A和图60B所示的神经网络电路中的模拟/数字混合运算电路的数目不同。然而,每个模拟/数字混合运算电路中的运算本身与第二十实施例中的相同。
参考图63A和图63B,由于空间有限,因此查看表电路、数字存储器以及数字/脉宽转换电路以集成结构表示。实际的布置和运算处理与第二十实施例(图60A和图60B)中的相同。
作为PWM信号输入到神经网络电路中的模拟运算电路的信号为作为两维信号的图像信号。更确切地,根据本实施例的图像信号处理电路的一个目的是通过引发神经网络对于输入的图像信号执行预定的运算而执行希望的图像处理(例如,图形检测和图形识别)。
将被实际实现的图像处理的内容可以通过适当地调整神经网络电路的电路参数及其类似从而实现希望的处理内容(例如,图形检测和图形识别)而设置。详细的调整方法并不是本发明的关键,因此省略对其的描述。
在本实施例中,图像信号作为PWM信号输入,该PWM信号通过将对应于每个像素的从图像传感设备543(例如,CCD或CMOS图像传感器)输出的信号强度转换为脉冲的时间宽度而获得。
如果图像传感设备的输出信号为模拟信号,并且该信号将被转换为PWM信号,如图63A和图63所示,则由比较器542对输入到比较器542的锯齿电压波形与从图像传感设备读出的电压值进行比较。当在锯齿电压波形的开始时提升至高电平的输出在锯齿电压值等于电容器的电压值时跌落到低电平时,该信号被转换为PWM信号。
如果图像传感设备543的输出信号为数字信号,并且该信号将被转换为PWM信号,则该信号通过数字/脉宽转换电路被转换成PWM信号,如第十五实施例所描述的。该图像传感设备假设为CCD或CMOS图像传感器。可以使用任何其它的图像传感设备只要其能够接收作为两维信号的图像。
下面描述将图像信号输入到神经网络电路中的方法。
神经网络电路引发模拟/数字混合运算电路a和b执行对于多个预定输入信号的加权运算,计算它们的累积值以设置相应神经元的内部状态值,并且进一步执行非线性转换,如在第二十实施例中所述的。
此时,在本实施例的图像处理电路中,由交替的长短虚线围绕起来的模拟/数字混合运算电路a和b的每一个所处理的多个输入信号对应于具有两维阵列的图像传感设备543的某些区域。
更确切地,如图63A和图63所示,在模拟/数字混合运算电路a和b中,其中的图像信号有待进行非线性转换和加权运算以及累积值计算的区域由用虚线围绕的区域A和B来指示。来自图像传感设备543的图像信号被输出到每一列。
相反地,神经网络电路中的模拟运算电路可以并行执行对于一列中的图像信号输出的运算,如在第十五实施例到第二十实施例中所描述的。
因此,神经网络电路对于来自图像传感设备543的一列的输出信号的运算结果对应着对应于每一个神经元的内部状态值的部分和,如在第十五实施例到第二十实施例中所描述的。
当运算处理重复等于区域A和区域B的列的数目(在本实施例中为四次)时,就可以计算出对应于每一个神经元的内部状态值的累积值。
图64A和图64B表示了上述的运算处理流。
首先,执行对来自图像传感设备的粗化为一列的图像信号进行输入的步骤S115。执行引发例如比较器的电路将输入的图像信号转换为PWM信号的步骤S116。接着,PWM信号作为对应于Ai的PWM信号被输入到相乘步骤S103(位于图64A和图64B的上侧)。
接下来的运算处理流与第二十实施例中的相同,除了运算处理由神经网络电路对于预定数目的层执行外(图64A和图64B中用虚线框围起来的部分S100指示着与第二十实施例中相同的运算处理流)。因此省略对于与第二十实施例中相同的运算处理流的描述。在对于预定数目的层的运算处理中,该运算处理流重复预定数目次,因此省略对其的描述。
如上所述,当由神经网络电路进行的运算处理所重复的次数等于运算目标的列的数目时,可以实现希望的运算处理(例如,图形检测和图形识别)。
在上面的描述中,从图像传感器输出的图像信号对于每一列而执行。即使当从图像传感设备输出的信号对于每一行执行时,通过对于每一行的输出信号并行执行神经网络电路中的运算而执行如上所述的相同的处理。
如上所述,当由本实施例的神经网络进行的运算被应用到对于每一列或行输出的图像信号时,神经元的内部状态值被作为对于每一列或每一行的部分和而运算,最终的内部状态值被作为部分和的累积值而计算,并且结果被非线性地转换,就可以实现希望的运算处理。
由于可以完成本发明的很多明显地宽泛地不同的实施例而不与本发明的精神和范围相背离,应当理解的是本发明并不限于其特定的实施例,除了在所附权利要求中有所限定。
优先权请求本申请对于2003年10月16日提交的日本专利申请No.2003-356626以及于2003年10月16日提交的日本专利申请No.2003-356627要求优先权,该申请的全部内容通过参考在此并入。
权利要求
1.一种积和运算电路,包括脉宽/数字转换电路,将具有代表操作数值的脉宽的脉冲信号转换为数字信号;排序电路,以大小递减或递增的顺序,输出多个由所述脉宽/数字转换电路转换为数字信号的操作数值;乘法电路,将从所述排序电路输出的每一个操作数值乘以相应的操作数值;以及累积和电路,计算所述乘法电路的相乘结果的累积和,其中所述脉宽/数字转换电路包括计数器,对时钟进行计数并且将计数值作为数字信号输出,以及多个后沿锁存电路,每一个后沿锁存电路在输入脉冲信号的后沿对从所述计数器输出的共用计数值进行锁存。
2.根据权利要求1的积和运算电路,其中所述脉宽/数字转换电路相应于所述多个后沿锁存电路的每一个,包括前沿锁存电路,在脉冲信号的前沿锁存从所述计数器输出的计数值,以及减法电路,对从所述后沿锁存电路输出的数字输出值以及所述的前沿锁存电路输出的数字输出值之间的差值进行运算并且输出。
3.根据权利要求1的积和运算电路,其中所述排序电路输出多个操作数值中的不小于预定值的操作数值。
4.根据权利要求1的积和运算电路,其中所述排序电路输出常数值以代替多个操作数值中的小于预定值的操作数值。
5.根据权利要求1的积和运算电路,其中所述排序电路输出多个操作数值中的对应于预定比率的以大小递减或递增的顺序的操作数值。
6.根据权利要求1的积和运算电路,其中所述排序电路输出常数值以代替除了多个操作数值中的对应于预定比率的以大小递减或递增的顺序的操作数值的操作数值。
7.根据权利要求1到6中的任何一个的积和运算电路,进一步包括D/A转换电路,将从所述排序电路输出的每一个操作数值作为数字值而转换为模拟信号并且将该模拟信号提供给所述乘法电路,所述D/A转换电路包括数字/脉宽转换电路,将每一个数字操作数值转换为具有对应于操作数值的脉宽的脉冲信号,所述数字/脉宽转换电路包括第二计数器,对时钟进行计数并且将计数值作为数字信号输出,以及多个脉冲产生电路,其中的每一个将从所述排序电路输出的数字输入值与从所述第二计数器输出的共用计数值进行比较,并且产生一个以下输出脉冲信号中的一个,其中一个脉冲输出信号的时间宽度为从预定的时间到输入值与计数值重合的时间,还有一个脉冲输出信号的时间宽度为从当通过从预定最大计数值中减去输入值而获得的值与计数值重合的时间到计数值达到最大计数值的时间。
8.根据权利要求7的积和运算电路,其中每一个所述多个脉冲产生电路包括脉宽寄存器,锁存从所述排序电路的输入值;定时触发产生电路,对由所述脉宽寄存器锁存的输入值的每一个比特与从所述第二计数器输出的计数值的每一个比特进行比较并且当比特完全重合时产生触发,以及输出脉冲反转电路,在所述定时触发产生电路产生触发后,对输出脉冲信号的真值进行反转。
9.根据权利要求7的积和运算电路,其中所述多个脉冲产生电路的每一个包括参考值寄存器,锁存作为代表输出脉冲前沿的定时的数字值的参考值;加法电路,输出参考值和作为从所述排序电路输入的数字值的输入值之和;脉宽寄存器,锁存从所述加法电路的输出值;切换电路,有选择地输出由所述参考值寄存器锁存的数字值以及由所述脉宽寄存器锁存的数字值中的一个;定时触发产生电路,对从所述切换电路输出的数字值的每一个比特与从所述第二计数器输出的计数值的每一个比特进行比较,并且当比特完全重合时产生触发;以及输出脉冲反转电路,在所述定时触发产生电路产生触发后,对输出脉冲信号的真值进行反转;以及所述切换电路执行切换以在输出来自所述输出脉冲反转电路的具有假值的输出脉冲之后输出由所述参考值寄存器锁存的数字值,并且在输出来自所述输出脉冲反转电路的具有真值的输出脉冲之后输出由所述脉宽寄存器锁存的数字值。
10.根据权利要求1到9的任何一个的积和运算电路,进一步包括多个运算块,每一个都包括所述的乘法电路和所述的累积和电路。
11.根据权利要求10的积和运算电路,其中所述多个运算块并行执行运算。
12.根据权利要求10或11的积和运算电路,其中多个操作数值的每一个都包括标签,并且每一个操作数值在对应于该标签的运算块内进行相乘。
13.根据权利要求12的积和运算电路,进一步包括切换电路,切换将每一个操作数值输入到对应于标签的运算电路中的路径。
14.根据权利要求1到13的任何一个的积和运算电路,其中所述乘法电路执行给每一个操作数值分配一个权重值的加权运算。
15.根据权利要求1到14的任何一个的积和运算电路,其中多个操作数值为数字信号;并且所述排序电路通过使用相联存储器以大小递减或递增的顺序输出多个操作数值。
16.根据权利要求1到15的任何一个的积和运算电路,进一步包括信号输出电路,根据从所述排序电路的输出来输出始终单调增加或减少的电压信号到所述乘法电路。
17.根据权利要求16的积和运算电路,其中,所述信号输出电路包括用于用预定系数乘以电压信号的装置。
18.根据权利要求1到17的任何一个的积和运算电路,其中,所述乘法电路接收到作为电压控制的电流源以及电压控制的电阻设备的控制电压的对应于操作数值的电压值并且输出作为电压值的相乘结果。
19.一种具有多级神经元元素的神经网络,其中每一个神经元元素包括根据权利要求1到18的任何一个的积和运算电路;所述脉宽/数字转换电路接收作为操作数值的来自上一级的神经元元素的输出值;所述乘法电路用作为相应操作数值的突触权重乘以每一个操作数值;并且所述累积和电路计算作为累积和的内部状态值。
20.一种执行积和运算的方法,包括步骤(a)将具有代表操作数值的脉宽的脉冲信号转换为数字信号;(b)以大小递减或递增的顺序,输出多个转换为数字信号的操作数值;(c)用每一个输出的操作数值乘以相应的操作数值;并且(d)计算在步骤(c)的乘法结果的累积和其中步骤(a)包括步骤(a-1)引发计数器对时钟进行计数并且输出计数值作为数字信号;(a-2)引发多个后沿锁存电路在输入脉冲信号的后沿对从计数器输出的共用计数值进行锁存。
21.一种运算电路,计算通过并行运算处理得到的运算结果的累积值,包括多个模拟运算电路,其中每一个执行对于由模拟信号表示的信息的运算处理;电容器,累积作为电荷量的由所述多个模拟运算电路进行的运算结果的和;比较器,将累积在所述电容器上的电荷量转换为具有相应脉宽的脉冲信号;脉宽/数字转换电路,将脉冲信号转换为数字信号;以及数字运算电路,根据转换的数字信号计算累积值;其中所述的脉宽/数字转换电路包括计数器,对时钟进行计数并且将计数值作为数字信号输出,以及多个后沿锁存电路,每一个后沿锁存电路在输入脉冲信号的后沿对从所述计数器输出的共用计数值进行锁存。
22.根据权利要求21的运算电路,其中所述脉宽/数字转换电路相应于所述多个后沿锁存电路的每一个,包括前沿锁存电路,在脉冲信号的前沿锁存从所述计数器输出的计数值;以及减法电路,对从所述后沿锁存电路输出的数字输出值以及所述的前沿锁存电路输出的数字输出值之间的差值进行运算并且输出。
23.根据权利要求21的运算电路,其中所述数字运算电路根据关于由所述模拟运算电路进行的运算结果的正/负的信息有选择地对由所述脉宽/数字转换电路得到的数字信号执行加法处理和减法处理以计算数字信号的累积值。
24.根据权利要求21到23的任何一个的运算电路,其中所述电容器并行连接所述多个模拟运算电路。
25.根据权利要求21到24的任何一个的运算电路,其中所述电容器累积对应于根据输入模拟信号计算的累积值的部分和的电荷量。
26.根据权利要求21到25的任何一个的运算电路,其中所述数字运算电路每当由所述多个模拟运算电路进行的运算处理结束时执行处理。
27根据权利要求21到26的任何一个的运算电路,其中所述模拟运算电路用预定的权重值乘以该模拟信号。
28.根据权利要求21到26的任何一个的运算电路,其中所述模拟运算电路对于该模拟信号执行预定的非线性转换。
29.根据权利要求8的运算电路,其中所述模拟运算电路用预定的权重值乘以非线性转换的输出值。
30.根据权利要求21到29的任何一个的运算电路,其中根据模拟信号计算的累积值等于包括在将模拟信号作为输入值而接收的神经网络中的神经元的内部状态值。
31.根据权利要求21到30的任何一个的运算电路,其中在所述电容器中累积的电荷量等于包括在将模拟信号作为输入值而接收的神经网络中的神经元的内部状态值。
32.根据权利要求21到31的任何一个的运算电路,其中该模拟信号是图像信号,并且所述模拟运算电路对于每一行执行图像信号的运算处理。
33.根据权利要求21到32的任何一个的运算电路,进一步包括存储器,保持数字数据;其中所述数字运算电路将保持在所述存储器中的数字数据加至转换的数字信号,并且所述的存储器保持和,从而计算累积值。
34.根据权利要求21到33的任何一个的运算电路,进一步包括存储器,保持数字数据;其中在从所述模拟运算电路输出正运算结果后,所述数字运算电路将保持在所述存储器中的数字数据加至由所述脉宽/数字转换电路转换的数字信号中,并且所述存储器保持和;以及在从所述模拟运算电路输出负运算结果后,所述数字运算电路从保持在所述存储器中的数字数据中减去由所述脉宽/数字转换电路转换的数字信号,并且所述存储器保持差值以计算累积值。
35.根据权利要求23的运算电路,其中所述数字运算电路交替执行加法运算和减法运算。
36.根据权利要求21到35的任何一个的运算电路,进一步包括D/A转换电路,将输入数字信号转换为模拟信号并且将该模拟信号提供给所述多个模拟运算电路,所述D/A转换电路包括数字/脉宽转换电路,将数字信号转换为具有对应于数字信号值的脉宽的脉冲信号,所述数字/脉宽转换电路包括第二计数器,对时钟进行计数并且将计数值作为数字信号输出,以及多个脉冲产生电路,其中的每一个将数字输入值与从所述第二计数器输出的共用计数值进行比较,并且产生一个以下输出脉冲信号中的一个,其中一个输出脉冲信号的时间宽度为从预定的时间到输入值与计数值重合的时间,还有一个输出脉冲信号的时间宽度为从当通过从预定最大计数值中减去输入值而获得的值与计数值重合的时间到计数值达到最大计数值的时间。
37.根据权利要求36的运算电路,其中所述多个脉冲产生电路中的每个脉冲产生电路包括脉宽寄存器,锁存输入值;定时触发产生电路,对由所述脉宽寄存器锁存的输入值的每一个比特与从所述第二计数器输出的计数值的每一个比特进行比较,并且当比特完全重合时产生触发;以及输出脉冲反转电路,在所述定时触发产生电路产生触发后,对输出脉冲信号的真值进行反转。
38.根据权利要求36的运算电路,其中所述多个脉冲产生电路的每一个包括参考值寄存器,锁存作为代表输出脉冲前沿的定时的数字值的参考值;加法电路,输出参考值和作为输入数字值的输入值之和;脉宽寄存器,锁存所述加法电路的输出值;切换电路,有选择地输出由所述参考值寄存器锁存的数字值以及由所述脉宽寄存器锁存的数字值中的一个;定时触发产生电路,对从所述切换电路输出的数字值的每一个比特与从所述第二计数器输出的计数值的每一个比特进行比较,并且当比特完全重合时产生触发;以及输出脉冲反转电路,在所述定时触发产生电路产生触发后,对输出脉冲信号的真值进行反转;以及所述切换电路执行切换以在输出来自所述输出脉冲反转电路的具有假值的输出脉冲之后输出由所述参考值寄存器锁存的数字值,并且在输出来自所述输出脉冲反转电路的具有真值的输出脉冲之后输出由所述脉宽寄存器锁存的数字值。
39.根据权利要求36到38的运算电路,进一步包括电流源电路,由来自所述数字/脉宽转换电路的输出脉冲信号进行控制;以及第二电容器,累积来自所述电流源电路的电荷。
40.一种运算控制方法,该方法用于计算通过并行运算处理得到的运算结果的累积值的运算电路,包括步骤(a)引发多个模拟运算电路,执行对于由模拟信号表示的信息的运算处理;(b)引发电容器累积作为电荷量的运算处理的结果的和;(c)将累积在电容器上的电荷量转换为具有相应脉宽的脉冲信号;(d)将脉冲信号转换为数字信号;以及(e)根据转换的数字信号计算累积值;其中步骤(d)包括步骤(d-1)引发计数器对时钟进行计数并且将计数值作为数字信号输出,以及(d-2)引发多个后沿锁存电路,在输入脉冲信号的后沿对从所述计数器输出的共用计数值进行锁存。
全文摘要
一种积和运算电路包括脉宽/数字转换电路(9),将具有代表操作数值的脉宽的脉冲信号转换为数字信号;排序电路(4),将由该脉宽/数字转换电路(9)转换为数字信号的多个操作数值Xi以大小递减或递增的顺序输出;以及累积和电路(1),用相应的操作数值Wi乘以从排序电路(4)输出的每一个操作数值并且计算相乘结果的累积和。该脉宽/数字转换电路(9)包括计数器(10),对时钟进行计数并将计数值作为数字信号输出,以及n个后沿锁存电路(11-0-11-(n-1)),其中的每一个在输入脉冲信号的后沿锁存从计数器输出的共用计数值。
文档编号H03M5/00GK1867888SQ20048003026
公开日2006年11月22日 申请日期2004年10月14日 优先权日2003年10月16日
发明者野村修, 森江隆, 中野铁平 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1