1 / 50
文档名称:

最新第11章-数学协处理器.doc

格式:doc   大小:5,115KB   页数:50页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

最新第11章-数学协处理器.doc

上传人:sunny 2021/12/4 文件大小:5 MB

下载得到文件列表

最新第11章-数学协处理器.doc

相关文档

文档介绍

文档介绍:第11章-数学协处理器
546
Linux内核完全剖析—
580
第11章 数学协处理器
第11章 数学协处理器
内核目录kernel/math目录中包含数学协处理器仿真处理代码文件,共包含9个C语言程序,见表11-1。本章内容与具体硬件结构关系非常密切,因此需要读者具备较深的有关Intel CPU和协处理器指令代码结构的知识。但好在这些内容与内核实现关系不大,因此跳过本章内容并不会妨碍读者对内核实现方法的完整理解。不过若能理解本章内容,那么对于实现系统级应用程序(例如汇编和反汇编等程序)和编制协处理器浮点处理程序将有很大帮助。
表11-1 linux/kernel/math目录
名称
大小/B
最后修改时间
名称
大小/B
最后修改时间
Makefile
3377
1991-12-31 12:26:48

1807
1991-12-31 11:57:05

1999
1992-01-01 16:42:02

234
1991-12-28 12:42:09

904
1992-01-01 17:15:34

5145
1992-01-01 01:38:13

4348
1992-01-01 19:07:43

11540
1992-01-07 21:12:05

2099
1992-01-01 01:41:43

1517
1992-01-01 01:42:33
546
Linux内核完全剖析—
580
第11章 数学协处理器
理器指令的方式。在处理一条协处理器指令之前,该程序会首先使用数据结构等类型在内存中建立起一个“软”80387环境,包括模仿所有80387内部栈式累加器组ST[]、控制字寄存器CWD、状态字寄存器SWD和特征字TWD(TAG word)寄存器,然后分析引起异常的当前协处理器指令操作码,并根据具体操作码执行相应的数学模拟运算。,有必要先介绍一下80387的内部结构和基本工作原理。
浮点数据类型
本节主要介绍协处理器使用的浮点数据类型。首先简单回顾一下整型数的几种表示方式,然后说明浮点数的几种标准表示方式以及在80387中运算时使用的临时实数表示方法。
1.整型数据类型
对于Intel 32位CPU来讲,有三种基本无符号数据类型:字节(byte)、字(word)和双字(double word),分别有8、16和32位。无符号数的表示方式很简单,字节中的每个位都代表一个二进制数,并且根据其所处位置具有不同的权值。例如一个无符号二进制数
546
Linux内核完全剖析—
546
第11章 数学协处理器
0b10001011可表示为:
U = 0b10001011 = 1×27 + 0×26 + 0×25 + 0×24 + 1×23 + 0×22 + 1×21 + 1×20 = 139
它对应十进制数139。其中权值最小的一位(20)通常被称为最低有效位(LSB,Least Significant Bit),而权值最大的位(27)被称为最高有效位(MSB,Most Significant Bit)。
而计算机中具有负数值的整型数据表示方法通常也有三种:2的补码(Two’s complement)、符号数(Sign magnitude)和偏置数(biased number)表示方式。表11-2给出了这三种形式表示的一些数值。
表11-2 整型数的几种表示形式
十进制数
2的补码表示法
偏置表示法(127)
符号数表示法
128
无法表示
0b11111111
无法表示
127
0b01111111
0b11111110
0b01111111
126
0b01111110
0b11111101
0b01111110
2
0b00000010
0b10000001
0b00000010
1
0b00000001
0b10000000
0b00000001
0
0b00000000
0b01111111
0b00000000
-0
无法表示
无法表示
0b10000000
-1
0b11111111
0b01111110