新闻中心

EEPW首页 > 测试测量 > 设计应用 > Cortex-M3内核浮点型运算的研究与实现

Cortex-M3内核浮点型运算的研究与实现

作者:时间:2011-03-11来源:网络收藏

摘要:通过分析3的结构与型格式,充分利用3中的分支预测、单周期乘法、硬件除法等众多功能强大的特性,使用Thumb-2指令集实现了单精度型的加、减、乘、除与比较,并给出了加减法的流程图和除法的源程序。
关键词:3型;速度

本文引用地址:http://www.eepw.com.cn/article/195058.htm

引言
在一些较为复杂的运算中,经常需要处理取值范围大、精度高的浮点型数据。但一般的低端嵌入式内核中没有浮点型硬件运算器,因此处理语音信号等数据比较困难。本文提出了一种基于Cortex-M3内核的浮点型运算的处理方法。

1 Thumb-2指令集与COrtex-M3内核结构
Thumb-2指令集具有以下优点:许多指令(包括乘法相关指令、突破性的32位硬件除法指令等)都是单周期的,并且位段处理指令取指都按32位处理。
Cortex-M3是一个32位处理器内核,采用哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖。它具有如下特点:功耗低,有睡眠、停机和待机3种模式;实时性好;响应中断快,而且响应中断所需的周期数是确定的;采用Thumb-2指令集,使得代码
密度和执行效率更高。

2 浮点数的格式
IEEE的浮点型数据标准规定,浮点数具有单精度(4字节)、双精度(8字节)和扩展精度(10字节)三种浮点型格式。在实际的应用中,使用最多的是单精度浮点数,格式如下:

a.JPG
浮点数表示为:X=MsEsEm-1…E1E0 M-1M-2…M-n。IEEE标准规定:阶码用移码;尾数的符号位用1表示负数,0表示正数;尾数的数据位用原码表示,并且隐藏了第24位(即M-1),M-1为1,所以尾数是大于等于0.5小于1的小数。
阶码用移码表示、尾数用原码表示浮点数的好处:
①浮点数据零的所有位均为零。
②2个浮点数比较大小时,可不必区分阶码位和数据位,视为有符号32位整型数据比较。

3 浮点型运算的具体实现
3.1 加减运算
Cortex-M3是32位的内核,可以把单精度浮点数存储为32位的有符号整数,这样便于比较运算。加减运算的流程如图1所示。

b.JPG


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭