CN107340992B - 一种定点数据筛选电路 - Google Patents
一种定点数据筛选电路 Download PDFInfo
- Publication number
- CN107340992B CN107340992B CN201710452883.3A CN201710452883A CN107340992B CN 107340992 B CN107340992 B CN 107340992B CN 201710452883 A CN201710452883 A CN 201710452883A CN 107340992 B CN107340992 B CN 107340992B
- Authority
- CN
- China
- Prior art keywords
- multiplexer
- input
- output
- data
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/10—Selecting, i.e. obtaining data of one kind from those record carriers which are identifiable by data of a second kind from a mass of ordered or randomly- distributed record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Logic Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种定点数据筛选电路,包括上升沿检测电路、输入电路、减法器以及输出电路;待筛选数据DataA、待筛选数据在存储器中的地址DataB以及执行阈值比较指令时的阈值DR0为输入数据;减法器的被减数输入端输入DataA,减数端输入DR0或上一个DataA,减法器的输出端连接上升沿检测电路,上升沿检测电路的输出端以及输入电路的输出端均与输出电路相连。本发明能够以数据流方式实现对大量定点数据的筛选,能够给出满足指定条件的数据或者对应的地址。在ALU中设计这样的筛选装置,能够快速完成定点数据的筛选,简化软件程序的设计,降低处理器的执行能耗,弥补普通的数据比较指令只能对较少的几个数(一般两个数)进行比较的不足。
Description
【技术领域】
本发明属于数字电路技术领域,涉及一种定点数据筛选电路。
【背景技术】
在数字信号处理芯片中,经常需要从一组数量较多的数据中筛选出数满足一定大小关系的数据,给出满足条件的数据值以及数据所对应的地址。目前市场上的芯片较少直接提供对这种数据筛选功能的硬件支持。如果需要从大量数据中找出满足一定大小关系的数据,需要采用多条指令形成一个指令集合,采用若干次循环来完成数据的比较,这种方式在实现过程中,资源开销较大,指令执行时间较长。常见的处理器都包含数据比较指令,如果执行对定点数据的比较,在每次执行数据比较的过程中,一般都是将两个数据在内部作相减操作,然后去判断标志位,看相减的结果为正数还是负数,或者是零,从而得到两个数的大小关系。如果要找到一组数据中的最大值,可以利用一条数据比较指令,先将最前面两个数做个比较,得到一个较大的值,然后将这个较大值写回寄存器,然后用这个较大的值继续和后续数据比较,如果有更大的值出现,那么就将更大的值写回寄存器,更新以前的较大值,完成所有数据比较的时候,可以得到该组数据中的最大值。这种方式采用一个循环代码段的方式来实现一组数据的比较,利用前一次执行比较的结果与后续的数据进行比较,整个比较过程,需要程序人员来详细的设计。采用这种方式,为了完成一组数据的筛选,需要占用较多的寄存器资源,而且由多条指令形成的代码集合需要占用较大的程序存储器空间,需要不断的执行取值、译码、执行等操作,代码执行时间较长,而且会造成较多的能量消耗。实际上在数字芯片中,利用ALU中已有的减法单元,能够比较容易的实现大量数据的数据流式筛选。
【发明内容】
本发明的目的在于克服上述现有技术的缺点,提供一种定点数据筛选电路,利用ALU中已有的减法器,实现定点数据的流式筛选。
为达到上述目的,本发明采用以下技术方案予以实现:
一种定点数据筛选电路,包括上升沿检测电路、输入电路、减法器以及输出电路;待筛选数据DataA、待筛选数据在存储器中的地址DataB以及执行阈值比较指令时的阈值DR0为输入数据;减法器的被减数输入端输入DataA,减数端输入DR0或上一个DataA,减法器的输出端连接上升沿检测电路,上升沿检测电路的输出端以及输入电路的输出端均与输出电路相连。
本发明进一步的改进在于:
上升沿检测电路包括第一寄存器、与门以及第一反相器;第一寄存器的输入端和与门的输入端均输入控制信号C0,控制信号C0为‘1’时表示数据筛选功能有效,为‘0’时表示数据筛选功能无效;与门的另一个输入端输入控制信号C2,控制信号C2为‘1’时表示求最大/小值,为‘0’时表示作阈值比较;第一寄存器的输出端输出信号经第一反相器取反后输入到与门,与门的输出端与输出电路相连。
减法器的符号位输入第二或门的一个输入端上,减法器的符号位通过第二反相器取反后输入第一或门的一个输入端上,上升沿检测电路的输出信号分别输入第一或门和第二或门的另一个输入端上;第一或门的输出端与多路选择器MUX1的控制端相连,第二或门的输出端与多路选择器MUX2的控制端相连;多路选择器MUX1和多路选择器MUX2的两个输入端分别输入‘1’和‘0’;多路选择器MUX1和多路选择器MUX2的输出端分别接到多路选择器MUX3的两个输入端上,多路选择器MUX3的控制端输入控制信号C1,控制信号C1为‘1’时表示比大操作,为‘0’时表示比小操作;DataA、DataB和多路选择器MUX3的输出信号均通过输入电路与输出电路相连。
输入电路包括多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6,输出电路包括由多路选择器MUX8、多路选择器MUX9、多路选择器MUX10、多路选择器MUX11和多路选择器MUX12组成的用于控制输出数据和使能信号的电路;
多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6的控制端均输入信号C0,多路选择器MUX4的输入端输入DataA和‘0’,多路选择器MUX5的输入端输入DataB和‘0’,多路选择器MUX6的输入端输入多路选择器MUX3的输出信号和‘0’;多路选择器MUX4的输出端与第二寄存器的输入端D相连,多路选择器MUX5的输出端与第三寄存器的输入端D相连,多路选择器MUX6的输出端与第四寄存器的输入端D相连;第二寄存器的输出端Q分别输出信号至多路选择器MUX7的一个输入端上、多路选择器MUX8的一个输入端上以及多路选择器MUX13,多路选择器MUX7的另一个输入端输入DR0;多路选择器MUX7的输出端与减法器的减数端相连;第三寄存器的输出端Q分别输出信号至多路选择器MUX9和多路选择器MUX13的输入端上,第四寄存器的输出端Q分别输出信号至多路选择器MUX10和多路选择器MUX12的输入端上;多路选择器MUX13的输出端输出信号至多路选择器MUX11的输入端上。
多路选择器MUX8、多路选择器MUX9、多路选择器MUX10、多路选择器MUX11以及多路选择器MUX12的另一个输入端均输入‘0’,控制端均输入控制信号C2,控制信号C2为‘1’时表示求最大/小值,为‘0’时表示作阈值比较;多路选择器MUX13的控制端输入控制信号C3,控制信号C3为‘1’时表示阈值比较时选择数据输出,为‘0’时表示阈值比较时选择地址输出。
多路选择器MUX8的输出端输出数据信号MaxMinData,多路选择器MUX9的输出端输出地址信号MaxMinAddr,多路选择器MUX10的输出端输出使能信号MaxMinEn,用于控制对DR0的写操作;多路选择器MUX11的输出端输出数据或地址信号,端口名称为ThresholdDA,多路选择器MUX12的输出端输出使能信号,端口名称为ThresholdEn。
与现有技术相比,本发明具有以下有益效果:
本发明能够以数据流方式实现对大量定点数据的筛选,能够给出满足指定条件的数据或者对应的地址。在ALU中设计这样的筛选装置,能够快速完成定点数据的筛选,简化软件程序的设计,降低处理器的执行能耗,弥补普通的数据比较指令只能对较少的几个数(一般两个数)进行比较的不足。
【附图说明】
图1为定点流水数据筛选电路。
其中:1-第一寄存器;2-第二寄存器;3-第三寄存器;4-第四寄存器;5-第二反相器;6-与门;7-第二或门;8-第一或门;9-减法器;10-第一反相器。
【具体实施方式】
下面结合附图对本发明做进一步详细描述:
如图1所示,本发明定点数据筛选电路,包括上升沿检测电路、输入电路、减法器9以及输出电路;待筛选数据DataA、待筛选数据在存储器中的地址DataB以及执行阈值比较指令时的阈值DR0为输入数据;减法器9的被减数输入端输入DataA,减数端输入DR0或上一个DataA,减法器9的输出端连接上升沿检测电路,上升沿检测电路的输出端以及输入电路的输出端均与输出电路相连。
DataA为所要完成筛选的数据,为32位宽定点整数。该数据也可以设置为其它位宽。
DataB为所要DataA上的数据所在存储器中的地址,这里指定地址宽度为32位,也可以为其他位宽。
DR0为执行阈值比较指令时的阈值,为32位宽的定点整数。该数据也可以设置为其它位宽。
图1中控制信号包括:C0、C1、C2、C3。C0、C1、C2、C3均为控制信号,定义为1bit位宽。
C0控制信号为‘1’时表示数据筛选功能有效,为‘0’时表示数据筛选功能无效。
C1控制信号为‘1’时表示比大操作,为‘0’时表示比小操作。
C2控制信号为‘1’时表示求最大/小值,为‘0’时表示作阈值比较。
C3控制信号为‘1’时表示阈值比较时选择数据输出,为‘0’时表示阈值比较时选择地址输出。
图1中信号Clock和Reset分别表示时钟信号和复位信号。
本发明中涉及一个由与门6,第一反相器10,第一寄存器1组成的控制信号C0的上升沿检测电路,该部分电路输入信号为C0和C2,在执行求最大/小值指令时,当C0由‘0’变为‘1’时,在与门6的输出端产生一个周期的高脉冲,这个高脉冲通过第一或门8、第二或门7输出后,表示第一个数据到来。
上升沿检测电路包括第一寄存器1、与门6以及第一反相器10;第一寄存器1的输入端和与门6的输入端均输入控制信号C0,控制信号C0为‘1’时表示数据筛选功能有效,为‘0’时表示数据筛选功能无效;与门6的另一个输入端输入控制信号C2,控制信号C2为‘1’时表示求最大/小值,为‘0’时表示作阈值比较;第一寄存器1的输出端输出信号经第一反相器10取反后输入到与门6,与门6的输出端与输出电路相连。
减法器9的符号位输入第二或门7的一个输入端上,减法器9的符号位通过第二反相器5取反后输入第一或门8的一个输入端上,上升沿检测电路的输出信号分别输入第一或门8和第二或门7的另一个输入端上;第一或门8的输出端与多路选择器MUX1的控制端相连,第二或门7的输出端与多路选择器MUX2的控制端相连;多路选择器MUX1和多路选择器MUX2的两个输入端分别输入‘1’和‘0’;多路选择器MUX1和多路选择器MUX2的输出端分别接到多路选择器MUX3的两个输入端上,多路选择器MUX3的控制端输入控制信号C1,控制信号C1为‘1’时表示比大操作,为‘0’时表示比小操作;DataA、DataB和多路选择器MUX3的输出信号均通过输入电路与输出电路相连。
输入电路包括多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6,多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6的控制端均输入信号C0,多路选择器MUX4的输入端输入DataA和‘0’,多路选择器MUX5的输入端输入DataB和‘0’,多路选择器MUX6的输入端输入多路选择器MUX3的输出信号和‘0’;多路选择器MUX4的输出端与第二寄存器2的输入端D相连,多路选择器MUX5的输出端与第三寄存器3的输入端D相连,多路选择器MUX6的输出端与第四寄存器4的输入端D相连;第二寄存器2的输出端Q分别输出信号至多路选择器MUX7的一个输入端上、多路选择器MUX8的一个输入端上以及多路选择器MUX13,多路选择器MUX7的另一个输入端输入DR0;多路选择器MUX7的输出端与减法器9的减数端相连;第三寄存器3的输出端Q分别输出信号至多路选择器MUX9和多路选择器MUX13的输入端上,第四寄存器4的输出端Q分别输出信号至多路选择器MUX10和多路选择器MUX12的输入端上;多路选择器MUX13的输出端输出信号至多路选择器MUX11的输入端上。
图1中减法器9的被减数为当前输入的数据DataA,减数为来自第二寄存器2的输出或者为DR0中事先设置的阈值,由C2控制多路选择器MUX7进行选择。减法器输出差值的符号位,符号位直接送入第二或门7,同时将符号位取反后送入第一或门8。
本发明中涉及两个第一或门8和第二或门7。第二或门7的输出用于控制多路选择器MUX2触发比小使能信号,即当前数据(DataA)比减数(减数可能为之前已经获得的最小值,也可能为事先设置好的阈值,由当前执行的指令决定)更小,这时减法器输出的差值符号位为1,第二或门7输出高电平,触发比小使能信号,使得多路选择器MUX2输出高电平。第一或门8的输出用于触发比大使能信号,即当前数据(DataA)不比减数(减数可能为之前已经获得的最大值,也可能为事先已经设置好的阈值,由当前执行的指令决定)小,这时减法器输出的差值符号位为0,第一或门8输出高电平,触发比大使能信号,使得多路选择器MUX1输出高电平。
图1中多路选择器MUX3由C1控制选通输出比大使能信号还是比小使能信号。当执行比大时(C1为1)选择比大使能信号输出,如果当前数据不比之前获得的值小,或者当前数据不比阈值小,那么多路选择器MUX3输出来自多路选择器MUX1的高电平。当执行比小时(C1为0),选择比小使能信号输出,如果当前数据比以前获得的值更小,或者当前数据比阈值更小,那么多路选择器MUX3输出来自多路选择器MUX2的高电平。
图1中多路选择器MUX4、多路选择器MUX5、多路选择器MUX6均由C0控制。在执行任何数据筛选功能时,多路选择器MUX4输出为当前数据DataA,多路选择器MUX5输出当前数据对应的地址DataB,多路选择器MUX6输出比大/小使能信号。如果不执行任何数据筛选功能,那么三个多路选择器都输出0。
图1中第二寄存器2和第三寄存器3。第二寄存器2和第三寄存器3主要在比大/小使能信号的控制下,分别保存当前满足条件的数值及其对应的地址。当比大/小信号有效时,证明当前获得了一个满足比较条件的值,这时第二寄存器2的使能信号有效,将这个值筛选出来送入第二寄存器2保存,同时由第三寄存器3保存其地址。
图1中第四寄存器4。第四寄存器4主要用于缓存使能信号,该寄存器的输出指示当前筛选出的数据是否有效,当输出为1时,表示当前筛选的数据和地址(分别由第二寄存器2和第三寄存器3给出)有效,否则无效。
图1中多路选择器MUX8、多路选择器MUX9、多路选择器MUX10。多路选择器MUX8、多路选择器MUX9、多路选择器MUX10均由C2控制。当执行求最大/小值时,三个寄存器分别输出所筛选的最大/小值及其地址和使能信号,否则输出0。输出的信号名分别为MaxMinData、MaxMinAddr、MaxMinEn。使能信号(MaxMinEn)用于控制对DR0和DR1的写操作,将数据(MaxMinData)及对应的地址(MaxMinAddr)分别写入DR0和DR1。
图1中多路选择器MUX13。多路选择器MUX13的控制信号为C3,主要用于在阈值比较时选择地址还是数据输出。
图1中多路选择器MUX11、多路选择器MUX12。多路选择器MUX11、多路选择器MUX12均由C2控制。当执行阈值比较时,多路选择器MUX11输出数据或者地址(由多路选择器MUX13决定),端口名为ThresholdDA。多路选择器MUX12输出使能信号,端口名为ThresholdEn。当使能信号为1时,表示当前筛选所得数据有效,由该使能信号去控制存储器写操作,将当前筛选结果(ThresholdDA)按照目的操作数寻址寄存器所指定的访存方式存入存储器中,同时该使能信号还触发一次计数器的加1操作,用于统计满足阈值条件的数据的个数。
图1中多路选择器MUX7。多路选择器MUX7的控制信号为C2,用于控制输入减法器的减数的来源。当求最大/小值时,多路选择器MUX7输出为当前获得的最大/小值。当进行阈值比较时,多路选择器MUX7输出为事先设定的阈值(DR0中的值)。
为了支持本发明的正确运行,需要利用一定数量的寄存器,这些寄存器包括寻址寄存器和数据寄存器。
寻址寄存器包括源操作数寻址寄存器AR0、IR0、IMR0和目的操作数寻址寄存器AR1、IR1。源操作数寻址寄存器中AR0用于保存原操作数的起始地址。IR0用于保存源操作数的访存步长,也即前后两次取操作数的地址间隔。IMR0用于保存源操作数的个数。目的操作数寻址寄存器只用于阈值比较指令,其中AR1用于保存筛选出的目的操作数的起始地址,IR1用于保存筛选出的目的操作数的存储步长。目的操作数寻址寄存器AR1、IR1只用于阈值比较指令的目的操作数寻址,这是由于执行阈值比较指令之后所得的筛选结果可能不只一个数据和地址值,因此需要配置AR1、IR1便于将目的操作数存放到存储器中。
数据寄存器一共包括三个,这三个数据寄存器直接采用ALU中的本地寄存器DR0、DR1和DR2来实现。求最大/小值指令和阈值比较指令复用ALU中的两个数据寄存器DR0和DR1。当执行求最大/小值指令的时候,DR0和DR1分别保存筛选出的数据及其对应的地址,等到求最大/小值指令执行结束之后再去读取这两个寄存器以获取数据和地址值。当执行阈值比较指令时,DR0和DR1用来保存用户设置的阈值和操作执行后满足阈值条件的数据个数,而筛选出的结果的存储位置由配置的目的寻址寄存器决定。DR2用于阈值比较指令选择满足条件的数据还是数据地址作为输出,DR2中配置数据为0时选择数据输出,否则为地址输出。
本发明复用ALU中的减法单元完成数据的大小比较,由于需要给出最终结果所对应的地址,所以需要的操作数据流包括输入数据流,及其数据对应的地址流。当前执行的是求最大/小值,在比较的过程中一旦发现有满足条件的数据出现,就保存该数据及其对应的地址,如果后续还有更大/小的值出现,则更新该值。如果执行的是阈值比较,就根据当前是选择数据输出还是地址输出(由DR2配置确定)来给出相应的地址或者数据。
在完成有关寄存器的配置之后,就可以执行所需的数据筛选指令。执行筛选过程中,源操作数按源操作数寻址寄存器所指定的寻址方式,源源不断的被读入ALU中,当完成源操作数的输送之后,筛选过程也就执行完毕。
本发明在内部执行筛选的时候,采用一个减法单元,将相比较的两个数据作相减操作,根据差的符号位来判断两个数的大小关系。当执行求最大/小值指令时,先将最前面的两个数相减,获取一个较大/小值,同时产生一个写寄存器DR0和DR1的操作,将这个较大/小值及其对于对应的地址分别写入ALU的本地寄存器DR0和DR1中。下一个时钟周期用这个较大/小值与后续输入的数据相减,如果有更大/小的值出现,就用这个更大/小的值替代之前获得的较大/小的值然后作后续比较,同时产生一个写寄存器DR0和DR1的脉冲,将这个较大/小值及其对应的地址分别写入DR0和DR1中覆盖之前的获取值,执行完当前指令后,最终从DR0和DR1获得该组数据中最大/小值及其对应的地址。当执行阈值比较指令的时候,输入的数据流与DR0中的阈值作逐一相减,然后判断输入数据流中的数据与DR0中阈值的大小关系,将满足阈值条件的数据或者对应的地址输出到数据总线上,同时产生一个写存储器的有效信号,将输出值写入目的寻址寄存器所指定的存储器中。满足阈值条件的数据的个数根据写存储器的有效信号来统计,一旦写存储器有效,将当前统计的数据量加1,统计个数最后保存到ALU的本地寄存器DR1中。
本发明的原理:
本发明利用ALU中已有的减法器,实现定点数据的流式筛选;定点数据筛选类指令属于向量类指令,能够用单条指令实现大量定点数据的筛选操作。使用本发明,能够筛选出满足一定条件的数据,能够实现的定点数据筛选指令包括四条:求一组数据中的最大值指令,求一组数据中的最小值指令,阈值比大指令,阈值比小指令。阈值比大指令,即是给出一个阈值,从一组数据中筛选出大于等于该阈值的数的指令。阈值比小指令,即是给出一个阈值,从一组数据中筛选出小于该阈值的数值的指令。求最大/小值指令,即是求出一组数据中的最大/小值的指令。执行求最大/小值指令之后,本发明会同时给出所筛选出的最大/小数据值及其对应地址,如果该组数据中出现了几个相同的最大/小值,那么求得的最大/小值地址为最后一个值的地址,最大/小值指令执行时总是只有一个数据被筛选出来。执行阈值比较指令时,可以由用户通过配置寄存器来选择输出满足条件的数值或是输出满足条件的数值的地址。
下面对指令的执行作进一步的说明。
当执行求最大值指令时,指令会使能控制信号C0,数据信号DataA和DataB与控制信号C0、C1、C2均在同一个时钟沿到达,且C0、C1、C2的值都为1,由C0、C1、C2控制的多路选择器均选择第1路输出。与门6输出的信号表示C0的上升沿,即当C0由‘0’变为‘1’时,在与门6的输出端产生一个周期的高脉冲同时输入到第一或门8、第二或门7。这个高脉冲会触发第一或门8、第二或门7输出一个周期的高电平,使得多路选择器MUX1和多路选择器MUX2均选则第1路输出(输出值为1),多路选择器MUX3~多路选择器MUX6也选择第1路输出,且多路选择器MUX3的输出值1,这时由于第二寄存器2和第三寄存器3的使能信号En有效(高电平有效),所以输入的第一个数据(DataA)及其对应的地址(DataB)在下一个时钟沿分别进入第二寄存器2和第三寄存器3,并分别通过多路选择器MUX8和多路选择器MUX9输出到MaxMinData和MaxMinAddr端口上,与此同时第二寄存器2和第三寄存器3的En信号通过第四寄存器4和多路选择器MUX10输出到MaxMinEn端口上,由MaxMinEn控制寄存器DR0和DR1的写操作,将第一个数据和对应的地址分别写入DR0和DR1。由于多路选择器MUX11和多路选择器MUX12均选择第一路输出,所以ThresholdDA和ThresholdEn均为0(无效),不影响外部存储器的值。第一个数据进入第二寄存器2后还会通过多路选择器MUX7到达减法器9,这时在数据信号DataA上恰好出现第二个数据,而且也到达减法器9。减法器9实现DataA的数据与来自多路选择器MUX7的数据相减操作,并将差的符号位输入到第二或门7,同时将差的符号位取反后输入到第一或门8。如果DataA上的数据不小于来自多路选择器MUX7的数据,则符号为0,这时第一或门8会输出一个时钟周期的高电平,多路选择器MUX1选则第1路输出,输出值为1,多路选择器MUX3也选择第1路输出(输出值为1),第二寄存器2和第三寄存器3的使能信号有效,所以当前DataA和DataB的数据会分别通过第二寄存器2和第三寄存器3,并分别写入DR0和DR1,更新前面写入的值,这时减法器上的减数获得更新。如果DataA上的数据小于来自多路选择器MUX7的数据,则差的符号位为1,这时第二或门7会输出一个时钟周期的高电平,第一或门8维持低电平,多路选择器MUX1选则第0路输出(输出值为0),多路选择器MUX2选择第1路输出(输出值为1),由于多路选择器MUX3选择第1路输出(输出值为0),所以第二寄存器2和第三寄存器3的使能信号无效,第二寄存器2和第三寄存器3的输出值不会改变,MaxMinEn信号也维持无效。实际上当DataA的值小于来自多路选择器MUX7的值(也即是当前已经获得的最大值),第二寄存器2和第三寄存器3的使能信号始终为无效,第二寄存器2和第三寄存器3的值也就不会更新,最终筛选的结果为输入数据流的最大值及其对应的地址,当输入数据中同时存在多个最大值时,所得地址为最后一个最大值所在的地址。
当执行求最小值指令时,数据信号DataA和DataB与控制信号C0、C1、C2均在同一个时钟沿到达,且C0、C1、C2的值分别为‘1’、‘0’、‘1’。整个过程与执行求最大值筛选的区别在于多路选择器MUX3的选通路径不同,且当两个数相减差值的符号位为1时第二寄存器2和第三寄存器3的使能信号有效,最终筛选出的数据为数据流中的最小值及其对应的地址,当输入数据中同时存在多个最小值时,所得地址为最后一个最小值所在的地址。
当执行阈值比大指令时,先在DR0中设置好需要的阈值,数据信号DataA和DataB与控制信号C0、C1、C2均在同一个时钟沿到达,且C0、C1、C2的值分别为‘1’、‘1’、‘0’。这时多路选择器MUX7~多路选择器MUX12均选择第0路输出,多路选择器MUX3~多路选择器MUX6均选择第1路输出。减法器的减数固定为来自DR0的阈值,当DataA的数值不小于DR0的值时,差值的符号位为0。这时第一或门8会输出一个时钟周期的高脉冲,多路选择器MUX1选则第1路输出,输出值为1,多路选择器MUX3也选择第1路输出(输出值为1),从而使能第二寄存器2和第三寄存器3,使当前DataA和DataB的值进入第二寄存器2和第三寄存器3,然后由多路选择器MUX13选择DataA或者DataB作为输出(通过配置寄存器DR2来选择),最后通过多路选择器⑾输出到ThresholdDA端口。同时使能信号通过多路选择器MUX12的第0路输出到ThresholdEn端口,用于控制存储器的写操作,将ThresholdDA的值按照目的操作数寻址寄存器所指定的寻址方式写入到存储器中,同时ThresholdEn还触发一个计数器的加1操作,用于统计满足阈值条件的值的个数。当来自DataA的数值小于DR0的值时,差值的符号位为1,多路选择器MUX1选则第0路输出(输出数值为0),多路选择器MUX2选择第1路输出,由于多路选择器MUX3选择第1路输出(输出数值为0),所以第二寄存器2和第三寄存器3的使能信号无效,第二寄存器2和第三寄存器3的输出值不会改变。端口ThresholdEn也始终维持无效状态。实际上当DataA的值小于来自多路选择器MUX7的值(也就是事先设置的阈值),第二寄存器2和第三寄存器3的使能信号始终为无效,第二寄存器2和第三寄存器3的值也就不会更新,最终筛选的结果为输入数据流中比阈值大的数或者对应的地址。
当执行阈值比小指令时,先在DR0中设置好需要的阈值,数据信号DataA和DataB与控制信号C0、C1、C2均在同一个时钟沿到达,且C0、C1、C2的值分别为‘1’、‘0’、‘0’,这时多路选择器MUX4~多路选择器MUX6选择第1路输出,多路选择器MUX7~多路选择器MUX12选择第0路输出。整个过程与执行阈值比大指令时的区别在于多路选择器MUX3的选通路径不同,且当两个数相减差值的符号位为1时第二寄存器2和第三寄存器3的使能信号有效,最终筛选的结果为输入数据流中比阈值小的数或者对应的地址。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (5)
1.一种定点数据筛选电路,其特征在于,包括上升沿检测电路、输入电路、减法器(9)以及输出电路;待筛选数据DataA、待筛选数据在存储器中的地址DataB以及执行阈值比较指令时的阈值DR0为输入数据;减法器(9)的被减数输入端输入DataA,减数端输入DR0或上一个DataA,减法器(9)的输出端连接上升沿检测电路,上升沿检测电路的输出端以及输入电路的输出端均与输出电路相连;
上升沿检测电路包括第一寄存器(1)、与门(6)以及第一反相器(10);第一寄存器(1)的输入端和与门(6)的输入端均输入控制信号C0,控制信号C0为‘1’时表示数据筛选功能有效,为‘0’时表示数据筛选功能无效;与门(6)的另一个输入端输入控制信号C2,控制信号C2为‘1’时表示求最大/小值,为‘0’时表示作阈值比较;第一寄存器(1)的输出端输出信号经第一反相器(10)取反后输入到与门(6),与门(6)的输出端与输出电路相连。
2.根据权利要求1所述的定点数据筛选电路,其特征在于,减法器(9)的符号位输入第二或门(7)的一个输入端上,减法器(9)的符号位通过第二反相器(5)取反后输入第一或门(8)的一个输入端上,上升沿检测电路的输出信号分别输入第一或门(8)和第二或门(7)的另一个输入端上;第一或门(8)的输出端与多路选择器MUX1的控制端相连,第二或门(7)的输出端与多路选择器MUX2的控制端相连;多路选择器MUX1和多路选择器MUX2的两个输入端分别输入‘1’和‘0’;多路选择器MUX1和多路选择器MUX2的输出端分别接到多路选择器MUX3的两个输入端上,多路选择器MUX3的控制端输入控制信号C1,控制信号C1为‘1’时表示比大操作,为‘0’时表示比小操作;DataA、DataB和多路选择器MUX3的输出信号均通过输入电路与输出电路相连。
3.根据权利要求2所述的定点数据筛选电路,其特征在于,输入电路包括多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6,输出电路包括由多路选择器MUX8、多路选择器MUX9、多路选择器MUX10、多路选择器MUX11和多路选择器MUX12组成的用于控制输出数据和使能信号的电路;
多路选择器MUX4、多路选择器MUX5以及多路选择器MUX6的控制端均输入信号C0,多路选择器MUX4的输入端输入DataA和‘0’,多路选择器MUX5的输入端输入DataB和‘0’,多路选择器MUX6的输入端输入多路选择器MUX3的输出信号和‘0’;多路选择器MUX4的输出端与第二寄存器(2)的输入端D相连,多路选择器MUX5的输出端与第三寄存器(3)的输入端D相连,多路选择器MUX6的输出端与第四寄存器(4)的输入端D相连;第二寄存器(2)的输出端Q分别输出信号至多路选择器MUX7的一个输入端上、多路选择器MUX8的一个输入端上以及多路选择器MUX13,多路选择器MUX7的另一个输入端输入DR0;多路选择器MUX7的输出端与减法器(9)的减数端相连;第三寄存器(3)的输出端Q分别输出信号至多路选择器MUX9和多路选择器MUX13的输入端上,第四寄存器(4)的输出端Q分别输出信号至多路选择器MUX10和多路选择器MUX12的输入端上;多路选择器MUX13的输出端输出信号至多路选择器MUX11的输入端上。
4.根据权利要求3所述的定点数据筛选电路,其特征在于,多路选择器MUX8、多路选择器MUX9、多路选择器MUX10、多路选择器MUX11以及多路选择器MUX12的另一个输入端均输入‘0’,控制端均输入控制信号C2,控制信号C2为‘1’时表示求最大/小值,为‘0’时表示作阈值比较;多路选择器MUX13的控制端输入控制信号C3,控制信号C3为‘1’时表示阈值比较时选择数据输出,为‘0’时表示阈值比较时选择地址输出。
5.根据权利要求4所述的定点数据筛选电路,其特征在于,多路选择器MUX8的输出端输出数据信号MaxMinData,多路选择器MUX9的输出端输出地址信号MaxMinAddr,多路选择器MUX10的输出端输出使能信号MaxMinEn,用于控制对DR0的写操作;多路选择器MUX11的输出端输出数据或地址信号,端口名称为ThresholdDA,多路选择器MUX12的输出端输出使能信号,端口名称为ThresholdEn。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710452883.3A CN107340992B (zh) | 2017-06-15 | 2017-06-15 | 一种定点数据筛选电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710452883.3A CN107340992B (zh) | 2017-06-15 | 2017-06-15 | 一种定点数据筛选电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107340992A CN107340992A (zh) | 2017-11-10 |
CN107340992B true CN107340992B (zh) | 2020-07-28 |
Family
ID=60220639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710452883.3A Active CN107340992B (zh) | 2017-06-15 | 2017-06-15 | 一种定点数据筛选电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107340992B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109164982B (zh) * | 2018-08-23 | 2021-04-02 | 京东方科技集团股份有限公司 | 数据处理电路、方法及数据存储设备 |
CN113127273B (zh) * | 2019-12-31 | 2023-07-14 | 华润微集成电路(无锡)有限公司 | 单片机检测电路及相应的检测的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN88103316A (zh) * | 1987-05-01 | 1988-11-16 | Rca许可公司 | 多位数字式阈比较器 |
EP1608164A1 (en) * | 2003-03-24 | 2005-12-21 | Sony Corporation | Data encoding apparatus, data encoding method, data output apparatus, data output method, signal processing system, signal processing apparatus, signal processing method, data decoding apparatus, and data decoding method |
CN102520903A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的长度可配置的向量最大/最小值网络 |
CN103150141A (zh) * | 2011-11-30 | 2013-06-12 | 瑞萨电子株式会社 | Vliw处理器、指令结构和指令执行方法 |
CN104317549A (zh) * | 2014-10-15 | 2015-01-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种实现数据排序的级联结构电路和方法 |
-
2017
- 2017-06-15 CN CN201710452883.3A patent/CN107340992B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN88103316A (zh) * | 1987-05-01 | 1988-11-16 | Rca许可公司 | 多位数字式阈比较器 |
EP1608164A1 (en) * | 2003-03-24 | 2005-12-21 | Sony Corporation | Data encoding apparatus, data encoding method, data output apparatus, data output method, signal processing system, signal processing apparatus, signal processing method, data decoding apparatus, and data decoding method |
CN103150141A (zh) * | 2011-11-30 | 2013-06-12 | 瑞萨电子株式会社 | Vliw处理器、指令结构和指令执行方法 |
CN102520903A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的长度可配置的向量最大/最小值网络 |
CN104317549A (zh) * | 2014-10-15 | 2015-01-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种实现数据排序的级联结构电路和方法 |
Non-Patent Citations (1)
Title |
---|
一种定浮点合并的FALU设计与实现;王云贵等;《微处理机》;20110430(第2期);7-9、13 * |
Also Published As
Publication number | Publication date |
---|---|
CN107340992A (zh) | 2017-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4225851B2 (ja) | データ処理装置用トレース要素生成システム | |
TWI515668B (zh) | 用於一狀態機中偵測之方法及系統 | |
TWI489779B (zh) | 狀態機晶格中之布林邏輯 | |
US9733952B2 (en) | Microprocessor, and method of managing reset events therefor | |
US7853834B2 (en) | Instruction-based timer control during debug | |
WO2014035700A1 (en) | Instruction insertion in state machine engines | |
WO2014014712A1 (en) | Methods and devices for programming a state machine engine | |
EP0034180B1 (en) | Special address generation arrangement | |
JP3188467B2 (ja) | 最小値・最大値検索装置 | |
RU2643499C2 (ru) | Управление памятью | |
US20140149723A1 (en) | Dynamic evaluation and adaption of hardware hash functions | |
CN107340992B (zh) | 一种定点数据筛选电路 | |
US6646899B2 (en) | Content addressable memory with power reduction technique | |
US11132201B2 (en) | System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit | |
JP2002516425A (ja) | デジタルプロセッサ用制御装置 | |
JPH0218498B2 (zh) | ||
JP2014132485A (ja) | 正規化カウントを判定するプロセッサ及び方法 | |
CN107301031B (zh) | 一种规格化浮点数据筛选电路 | |
WO2002061582A2 (en) | Event handling | |
CN114721464A (zh) | 片上系统和计算装置 | |
EP3234768A1 (en) | System and method for fast modification of register content | |
US10366019B1 (en) | Multiprocessor system having efficient and shared atomic metering resource | |
CN205680085U (zh) | 调试启用处理设备和嵌入式处理系统 | |
US7606991B2 (en) | Dynamic clock switch mechanism for memories to improve performance | |
US20120089817A1 (en) | Conditional selection of data elements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |