正在加载图片...
第3章定点数和浮点数251 下载 桌面机的浮点运算硬件出现在1980年,当时 Intel发布了8087数字数据协处理器芯片 种集成电路芯片,今天通常称为数学协处理器或浮点运算单元( floating- point unit,FPU)。 8087之所以称为协处理器是因为它不能自己单独使用,它只能与8086或8088一起使用,8086 和8088是 Intell的第一个16位微处理器 8087有40个引脚,使用许多与8086和8088相同的信号。微处理器和数学协处理器通过这 些信号连接起来。当CPU收到一个特殊指令一称为ESC,代表 Escape—则协处理器接管系 统控制杈并执行下一条机器代码,即包括三角运算、指数、对数运算的68条指令中的一条。 数据类型以IEEE标准为基础。那时,8087被认为是所生产的最高级的集成电路。 可以认为协处理器是一个小的自包含的计算机。在响应某个浮点运算机器码指令时(例 如,计算平方根的 FSQRT指令),协处理器内部执行存放在ROM中的自己的指令序列,这些 内部指令称为微代码。这些指令通常是循环的,所以计算结果并不是马上可用。尽管如此, 般来说,数学协处理器至少比用软件来实现的同样例程要快10倍 初始的 IBM PC主板在8088芯片的右边有一个40管脚的插槽供8087用。遗憾的是,这个插 槽是空的,需要加速浮点运算的用户必须单独购买8087并自己把它安装上。即使在安装了数 学协处理器后,并不是所有的应用程序都可以运行得更快,一些应用程序一如,文字处理 程序——几乎不需要浮点运算。其他如电子报表程序则要用到很多浮点计算。这些程序能够 运行得更快,但并不是所有程序都是如此 可以看到,程序员必须用协处理器机器码指令来编写特定的代码供协处理器执行。因为 数学协处理器不是硬件的标准部分,因而许多程序员怕麻烦不愿意做。但是,他们还是不得 不编写自己的浮点运算子程序(因为许多人并没有安装数学协处理器),所以支持8087芯片就 成为一个额外的负担—一个不小的负担。最终,如果他们程序运行的机器上有数学协处理 程序员要学会编写利用数学协处理器的应用程序:如果没有,则要编写浮点运算仿真程 经过几年后, Intel还发布了用于286芯片的287数学协处理器,用于386的387数学协处理 器。但对于1989年发布的 Intel486DX,FPU已经做在了CPU里面,而不再是作为一个选件 遗憾的是,1991年Inte发布了一种低价格的486SX,它没有把FPU做在CPU里面,而是提供了 487SX数学协处理器作为一个选件。1993年发布的 Pentium芯片却再一次使做在CPU内部的 FPU成为标准,也许以后永远会这样。 Motorola在它的68040微处理器里集成了FPU,该微处 理器于1990年发布。以前, Motorola销售68881和68882数学协处理器用来支持早先68000家族 的微处理器。 PowerPC芯片也把浮点运算硬件集成在内部。 管浮点运算硬件对专门从事汇编语言程序设计的程序员来说是一个很好的礼物,但是, 与20世纪50年代早期开始的其他一些工作相比这只是微不足道的进步。我们的下一个主题是 计算机语言桌面机的浮点运算硬件出现在 1 9 8 0年,当时I n t e l发布了8 0 8 7数字数据协处理器芯片,一 种集成电路芯片,今天通常称为数学协处理器或浮点运算单元(floating-point unit,F P U)。 8 0 8 7之所以称为协处理器是因为它不能自己单独使用,它只能与 8 0 8 6或8 0 8 8一起使用,8 0 8 6 和8 0 8 8是I n t e l的第一个1 6位微处理器。 8 0 8 7有4 0个引脚,使用许多与 8 0 8 6和8 0 8 8相同的信号。微处理器和数学协处理器通过这 些信号连接起来。当 C P U收到一个特殊指令—称为E S C,代表E s c a p e—则协处理器接管系 统控制权并执行下一条机器代码,即包括三角运算、指数、对数运算的 6 8条指令中的一条。 数据类型以I E E E标准为基础。那时,8 0 8 7被认为是所生产的最高级的集成电路。 可以认为协处理器是一个小的自包含的计算机。在响应某个浮点运算机器码指令时(例 如,计算平方根的 F S Q RT指令),协处理器内部执行存放在 R O M中的自己的指令序列,这些 内部指令称为微代码。这些指令通常是循环的,所以计算结果并不是马上可用。尽管如此, 一般来说,数学协处理器至少比用软件来实现的同样例程要快 1 0倍。 初始的IBM PC主板在8 0 8 8芯片的右边有一个4 0管脚的插槽供8 0 8 7用。遗憾的是,这个插 槽是空的,需要加速浮点运算的用户必须单独购买 8 0 8 7并自己把它安装上。即使在安装了数 学协处理器后,并不是所有的应用程序都可以运行得更快,一些应用程序—如,文字处理 程序—几乎不需要浮点运算。其他如电子报表程序则要用到很多浮点计算。这些程序能够 运行得更快,但并不是所有程序都是如此。 可以看到,程序员必须用协处理器机器码指令来编写特定的代码供协处理器执行。因为 数学协处理器不是硬件的标准部分,因而许多程序员怕麻烦不愿意做。但是,他们还是不得 不编写自己的浮点运算子程序(因为许多人并没有安装数学协处理器),所以支持8 0 8 7芯片就 成为一个额外的负担—一个不小的负担。最终,如果他们程序运行的机器上有数学协处理 器,程序员要学会编写利用数学协处理器的应用程序;如果没有,则要编写浮点运算仿真程 序。 经过几年后,I n t e l还发布了用于 2 8 6芯片的2 8 7数学协处理器,用于 3 8 6的3 8 7数学协处理 器。但对于1 9 8 9年发布的Intel 486DX,F P U已经做在了C P U里面,而不再是作为一个选件! 遗憾的是,1 9 9 1年I n t e l发布了一种低价格的4 8 6 S X,它没有把F P U做在C P U里面,而是提供了 4 8 7 S X数学协处理器作为一个选件。 1 9 9 3年发布的P e n t i u m芯片却再一次使做在 C P U内部的 F P U成为标准,也许以后永远会这样。 M o t o r o l a在它的6 8 0 4 0微处理器里集成了 F P U,该微处 理器于1 9 9 0年发布。以前,M o t o r o l a销售6 8 8 8 1和6 8 8 8 2数学协处理器用来支持早先 6 8 0 0 0家族 的微处理器。P o w e r P C芯片也把浮点运算硬件集成在内部。 尽管浮点运算硬件对专门从事汇编语言程序设计的程序员来说是一个很好的礼物,但是, 与2 0世纪5 0年代早期开始的其他一些工作相比这只是微不足道的进步。我们的下一个主题是: 计算机语言。 第23章 定点数和浮点数 251 下载
<<向上翻页
©2008-现在 cucdc.com 高等教育资讯网 版权所有