执行比较运算的方法和模块技术

技术编号:4321089 阅读:179 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种执行比较运算的方法和模块,用于对多个源操作数进行比较运算,包括:执行单元,用于执行比较指令,从指令中获取源操作数初始地址和源操作数长度信息,从初始地址开始逐个读出源操作数,直到指令中所限定的长度;比较模块,用于对逐个输入的源操作数进行比较,将比较结果根据指令要求进行存储和/或输出。本发明专利技术可以简单快速地对地址连续的多个数据进行比较运算。

【技术实现步骤摘要】
执行比较运算的方法和模块
本专利技术涉及一种数字信号处理器,尤其涉及一种用于执行比较运算的 方法和模块。
技术介绍
近些年,处理器技术得到快速发展,各种处理器层出不穷。特别是, 由于人们对提供通信、媒体服务的电子产品的旺盛需求,数字信号处理器 更是无处不在,默默为我们提供着高质量的服务。数字信号处理器能够非常高效地处理一些特殊运算,如乘加、比较、 加比选,非常适合在通信、媒体、科学研究等领域的数字信号处理。并且由于开发周期短、适应性强、易于升级、价格适中,因此在IC产品中具有很大的优势。而随着微电子技术的快速发展, 一些制约数字信号处理器发 展的因素,如处理速度、成本压力,都在不断消失。这将促使数字信号处 理器更好的发展。常用数字信号处理器中的比较指令或运算, 一般只能完成两个数据的 对比,每执行一条指令,可以比较出一个结果,可以求得两个数据谁为大 者、大者为谁,或者谁为小者、小者为谁。对于大数据量的比较运算,非 常吃力,不但需要执行大量指令代码,而且运算效率低。另外,在传统数 字信号处理器中,大量数据的排序是一个很大的问题,应用比较指令需要 大量的迭代运算。
技术实现思路
本专利技术的主要目的就是解决现有技术中的问题,提供一种执行比较运 算的方法和模块,可以实现多个数据的比较运算。为实现上述目的,本专利技术提供一种执行比较运算的方法,用于对多个源操作数进行比较运算,包括以下步骤Al、执行比较指令,从指令中获取源操作数初始地址和源操作数长度 信息;Bl、从初始地址开始逐个读出源操作数,直到指令中所限定的长度; Cl、将源操作数逐个输入比较模块进行比较;4Dl、将比较结果根据指令要求进行存储和/或输出。在一种实施例中,所述步骤C1中进行比较的步骤包括以下步骤 Cll、将当前输入的源操作数与数据寄存器组中的每个有效数据进行比较,所述数据寄存器组中按序存储有已经过比较运算的源操作数; C12、根据步骤Cll比较后的结果判定当前源操作数的位次; C13、根据当前源操作数的位次对数据寄存器组中数据进行移位操作,并将当前源操作数按其位次存入数据寄存器组中;C14、重复执行步骤C11-C13,直到比较完最后一位源操作数。本专利技术还提供一种执行比较运算的模块,用于对多个源操作数进行比较运算,包括执行单元,用于执行比较指令,从指令中获取源操作数初始地址和源 操作数长度信息,从初始地址开始逐个读出源操作数,直到指令中所限定 的长度;比较模块,用于对逐个输入的源操作数进行比较,将比较结果根据指 令要求进行存储和/或输出。在一种实施例中,所述比较模块包括数据寄存器组,用于按序存储已经过比较运算的源操作数; 比较器组,用于将当前输入的源操作数与数据寄存器组中的每个有效 数据进行比较;控制判断逻辑单元,用于根据比较器输出的比较结果判定当前源操作 数的位次,根据当前源操作数的位次对数据寄存器组中数据进行移位操 作,并将当前源操作数按其位次存入数据寄存器组中;输出管理逻辑单元,用于按照指令要求进行存储和/或输出。 本专利技术还提供一种执行比较运算的模块,用于对多个源操作数进行比 较运算,包括数据寄存器组,用于按序存储己经过比较运算的源操作数; 比较器组,用于将当前输入的源操作数与数据寄存器组中的每个有效 数据进行比较;控制判断逻辑单元,用于根据比较器输出的比较结果判定当前源操作 数的位次,根据当前源操作数的位次对数据寄存器组中数据进行移位操 作,并将当前源操作数按其位次存入数据寄存器组中;输出管理逻辑单元,用于按照指令要求进行存储和/或输出。本专利技术还提供一种执行比较运算的模块,用于对逐个输入的多个源操作数进行比较运算,所述比较运算为求最大值、最小值、最大值位置、最 小值位置中的至少一种,包括数据寄存器组,用于按序存储已经过比较运算的源操作数;比较器组,用于将当前输入的源操作数与数据寄存器组中的每个有效 数据进行比较;位次寄存器组,用于记录每个输入源操作数的位次;输出管理逻辑单元,用于按照指令要求进行存储和/或输出。本专利技术的有益效果是本专利技术与传统比较指令在一次执行过程完成两 个源操作数的比较不同,本专利技术指令在一次执行过程中,可以对地址连续 的多个数据(这里简称为源操作数组)进行比较,可以输出最大值、最小 值、按增序/减序对源操作数组重新排序的数组、最大值所在的位置、最小 值所在的位置,或记录按增序/减序重新排列的数组的顺序等多种结果,所 以本专利技术可简单快速地完成地址连续的多个数据的比较,并根据指令的要 求输出结果。附图说明图1是连续多数据比较器结构示意图。图2是连续多数据比较操作处理过程的示意图。图3是由单一一条指令代码构成的指令格式。图4是由三条指令代码构成的指令格式。图5是一种实施例的结构。图6是一种实施例的流程图。图7是当指令只具有求最大值、最小值、最大值位置、最小值位置、 两个源操作数的简单比较时比较逻辑可采用的结构。具体实施方式本申请的特征及优点将通过实施例结合附图进行详细说明。 实施例一请参考图1,图1是用于执行连续多数据比较运算的模块结构示意图, 包括执行单元(图中未示出)和比较模块l,执行单元用于执行比较指令, 从指令中获取源操作数初始地址和源操作数长度信息,从初始地址开始逐 个读出源操作数,直到指令中所限定的长度。比较模块l接收源操作数存 储单元2送过来的源操作数,处理后将目的操作数写入目的操作数存储单 元3, 3a、 3b表示存在两个不同的目的操作数。本实施例的主要特点是源操作数很多,存储在源操作数存储单元2中,在地址1存放着第一个源操作数,在地址2存放着第二个源操作 数,……,在地址n存放着第n个源操作数,这些源操作数构成了一个源 操作数组,地址1是其初始地址,n是源操作数长度;源操作数按时钟节 拍从地址1开始依次被送给比较逻辑1;比较逻辑1产生的目的操作数不 止1种,3a、 3b分别表示两种不同的目的操作数;每种目的操作数可以有 多个,构成目的操作数组,按地址顺序依次存入目的操作数存储单元3。为了进一步说明本专利技术的处理特征,图2给出了该比较运算的流水处 理过程。比较逻辑l在接收到第二个源操作数时便开始比较处理,在比较 完第n个源操作数后输出目的操作数。n个源操作数构成源操作数组4, nl 个目的操作数1构成了目的操作数组5a, n2个目的操作数2构成了目的操 作数组5b。与上述模块配合的还有用于执行比较运算的指令,适用于进行连续大 数据量的比较操作。该比较运算涉及的操作数分为2类,其中一类为源操作数组,另一类 为目的操作数(组),即最大值、最小值、按增序/减序对源操作数组重新 排序的数组、最大值所在的位置、最小值所在的位置,或记录按增序/减序 重新排列的数组的顺序等多种结果。由于源操作数组至少包含两个数据,因此指令需要指出源操作数的初 始地址和数组长度。同理,目的操作数组包含的数据,即比较运算的输出 数据也可能多于1个,因此指令需要指出目的操作数地址和输出数据长度。 该指令支持多种寻址方式。该指令格式可以是单一一条指令代码,包括操作码,能够指出源操作 数初始地址的信息、能够指出源操作数长度的信息、能够指出目的操作数 初始地址的信息、能够指出目的操作数长度的信息。如图3所示为由单一 一条指令代码构成的指令格式,它包括操作本文档来自技高网...

【技术保护点】
一种执行比较运算的方法,用于对多个源操作数进行比较运算,其特征在于包括以下步骤:    A1、执行比较指令,从指令中获取源操作数初始地址和源操作数长度信息;    B1、从初始地址开始逐个读出源操作数,直到指令中所限定的长度;    C1、将源操作数逐个输入比较模块进行比较;    D1、将比较结果根据指令要求进行存储和/或输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:焦玉中王新安刘雪娇胡子一陈鑫森肖高发陈红英
申请(专利权)人:北京大学深圳研究生院
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1