从32位平台移植到64位平台的解决方案

上传人:大米 文档编号:507344902 上传时间:2023-12-12 格式:DOC 页数:30 大小:88KB
返回 下载 相关 举报
从32位平台移植到64位平台的解决方案_第1页
第1页 / 共30页
从32位平台移植到64位平台的解决方案_第2页
第2页 / 共30页
从32位平台移植到64位平台的解决方案_第3页
第3页 / 共30页
从32位平台移植到64位平台的解决方案_第4页
第4页 / 共30页
从32位平台移植到64位平台的解决方案_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《从32位平台移植到64位平台的解决方案》由会员分享,可在线阅读,更多相关《从32位平台移植到64位平台的解决方案(30页珍藏版)》请在金锄头文库上搜索。

1、-从32位平台移植到64位平台的解决方案一、 概述1. 移植的原因由于高性能效劳器、数据库管理系统、电脑辅助设计工具,以及数字内容创作工具等应用方案均需要处理大量数据及占用存储器大量地址,因此为了满足这类应用方案的需要,64位技术便应运而生。大约从九十年代后期起,就已经有64位机器问世,从去年到今年,Intel体系构造的芯片也开场出64位了.在UNIX环境下,已有几种操作系统支持64位环境了,据说微软也准备将Windows升级为64位操作系统。可以预料,将来32位平台将不再是主流,唱主角的将是64位平台。到时,客户环境也将全是64位平台。因此,由于下面这样一些原因,使得某些应用程序从32位移植

2、到64位:(1).工程、科学、商业-需要地址空间大于32位.大数据集:需处理的数据大于32位所能处理的极限;(大文件或数据库的内存映射是一种常用技术-通过把文件或数据库保存在内存,以防止经常的磁盘I/O操作.).计算需要1. 程序复杂性;假设是32位系统,32位程序,那么虽然也能处理需大地址空间的应用,但程序将变得复杂;2. 应用程序的吞吐量;SMP系统与并行编程不断用来处理科学计算与其他问题;这意味着,在32位系统上,多至12个高速处理器共享不超过4GB的内存;64位系统那么能为每个进程提供必要的内存与I/O资源,使得SMP能很好地进展扩展,并能提供科学,工程,商业领域所需的批量计算;3.

3、典型的64位应用-决策支持、数据仓库、数据挖掘、基于因特网的应用、电子商务应用、Web效劳器、多媒体效劳器、数字密集的应用、一般数据库、大阵列操作应用.(2). 现存32位系统-资源短缺限制了总体性能与吞吐量的提高现存32位多用户系统性能不是受限于CPU,而是受限于I/O带宽;而由分页引起的I/O又主要是由于内存缺乏于存储整个文件;如果有足够的内存可用,那么将显著减少分页,从而显著地改善系统性能.高压力环境下的32位应用程序:基于因特网的应用、电子商务应用、Web效劳器、多媒体效劳器、一般效劳器、实时系统.(这些应用可从OS提供的大内存获得性能提高,因为OS会自动地为每个32位应用提供更多的内

4、存与I/O资源.因此,64位系统能运行更多的并发的,大的32位应用程序.2. 移植原那么i. 移植后的程序既可作为64位机器上的32位程序运行,又可作为64位机器上的64位程序运行;只要觉得有需要,就可将32位程序重编译为64位程序;ii. 在64位平台上,不管是作为32位程序还是作为64位程序运行,其性能至少不应比32位程序在32位平台上运行的性能差;iii. 32位进程与64位进程可同时在64位平台上运行.3. 移植步骤将现有32位程序移植到64位时,由于AIX V4.3本身对32位程序与64位程序的支持,所以绝大局部的系统调用与C语言程序构造都不用改变,只要在源程序中遵守系统调用接口与相

5、应的数据类型;但是,还是有一些由于数据类型长度的改变而引起的兼容性问题.因此从32位程序移植为64位程序一般必须经过以下步骤:(1).源程序的兼容性检查;这一步主要检查由于数据类型长度改变而引起的兼容性问题;(2).将从第(1)步检查出的兼容性源程序进展修改;(3).修改makefile文件;二、 32位平台与64位平台1. 平台的定义计算机系统是由硬件与软件两局部组成的。所谓平台也就是指硬件与相应的系统软件(包括操作系统、编译器和与开发环境有关的应用程序(如数据库)。64位硬件体系构造是指:(1).能处理64位数据.-即CPU可以将64位数据作为根本单元进展处理(只需一次操作就可处理),字长

6、是64位的,即存储单元是64位的.(说明:32位平台的存储单元是32位的)这导致构造成员的一种以8字节为边界的填充,即第一个成员即使缺乏一个8字节的根本存储单元,那么仍占用一个根本存储单元,而整个构造占用的存储空间也是8字节的倍数.(2).能产生64位地址.-包括有效地址和物理地址.注意:虚地址概念并不是由处理器体系构造说明的,它是由AIX的VMM(虚地址存储管理器)说明的.它规定了应用程序可访问的内存空间的大小.一般来说,虚地址可以与有效地址或物理地址不同.相应地,32位硬件体系构造是指(1).能将32位数据作为根本数据单元进展处理;(2).最多只能产生32位地址(包括有效地址和物理地址).

7、以下操作可从64位存放器中得到好处:(1).64位长的串;(2).64位存放器上的移位操作;(3).64位的整数和指针运算;(4).串或大数据的拷贝.硬件局部主要是指其字长-CPU能作为根本数据单元处理的二进制数据的位数。如32位机器其CPU能在一条指令内处理32位数据,它不能在一条指令内处理64位数据,它必须将64位数据分为两个32位数据进展处理;而64位机器其CPU那么能在一条指令内处理64位数据,它不需象32位机器一样,将64位数据拆分为两个32位数据进展处理。32位平台是指其硬件体系构造是32位的,而且其操作系统、编译器等系统软件也只能支持32位程序.64位平台是指其硬件体系构造是64

8、位的,而且其操作系统、编译器等也能支持64位程序.因而,64位平台能充分利用其64位硬件的性能,使得一些应用程序能从中得到性能的改善.2. 现有AIX64位平台的特点i. RS/6000 64位机器 AIX V4.3 和RS/6000 S70模型)RS/6000(RS64A)是64位体系构造,CPU的通用存放器是64位的,一些控制存放器也是64位的,它可以一次移动或操作64位数据,而不需要象在32位处理器那样,必须由程序员或编译器分两次完成. PowerPC是64位体系构造.64位环境是32位环境的超集;-即64位指令集是32位指令集的超集,换句话说,32位指令集是64位指令集的子集;.32位

9、环境与64位环境是局部的;-即一个32位进程其环境只对这个进程有效,一个64位进程的环境只对这个64位进程有效;同时运行的32位进程与64位进程可有不同的运行环境;.不管哪种方式,都无任何模拟或仿真.-即32位进程执行32位指令集,64位进程执行64位指令集;而不是说,64位指令集是通过32位指令集来模拟或仿真;AIX V4.3 64位体系构造的好处(1) 64位数据类型 某些应用程序可从64位整型硬件的性能和更高的精度获益;不过主要的可能还是由非64位应用程序用64位整型运算操纵64位指针.(2) 存取大文件-数据仓库、科学和多媒体应用经常需要非常大的文件和文件系统,它们很容易由64位数据类

10、型处理;巨大的地址空间-有些应用程序既需要用大内存(234=16GB),也需要访问海量虚拟存储(280),许多科学应用就可以简单地编程,并能比较高效地执行.数据段和堆栈都是巨大的,存储映射也会得到显著改善.ii.AIX V4.3支持64位程序的操作系统提升了4GB的系统内存限制.4GB(232)是对32位PowerPC平台的限制;.AIX V4.3支持4GB的内存;.AIX V4.3在RS/6000 S70效劳器上支持16GB内存;.当内存足够时,AIX 会自动扩展至大内存;.32位程序仍受限于4GB的内存;.64位程序可存取260B的内存.应用程序地址空间可大于4GB.在S70且安装AIX

11、V4.3的系统上被编译为64位的程序;.对超出32位寻址X围的应用程序.不必为担忧性能而重新编译.在64位平台上,将32位程序重新编译为32位时,其性能会无任何差异,因为这会任何编译器的改进;.32位重新编译为64位时,会看到些微的性能差异;.默认编译模式是产生32位可执行程序.AIX V4.3核心是32位,在64位平台上有附加的64位扩展;.为支持完全64位功能,核心不一定要求是64位的;.32位核心维持对32位的兼容性和强健性;.核心扩展提供了64位程序所要求的功能;.新的应用程序二进制接口(ABI);.提供了对设备驱动程序的二进制兼容性;.VMM支持64位进程地址空间;.只要有必要,某些

12、系统调用可修改为64位参数(如文件和内存操作);.对某些设备驱动程序有一些前提或限制.32位与64位进程的完全互操作性1. 进程-进程.可共享文件.内存,IPC资源(但要注意某些共享内存的分配方式-字节边界问题),也可相互发信号;.可相互exec()调用;.32位与64位进程可设置非本类进程的限制;2. 32位与64位系统构造.编译器仍是32位的;.编译器既可在32位平台,也可在64位平台上运行;.既可产生32位,也可产生64位可执行文件.头文件已被修改正,以支持两种环境;.增强了功能的共享库的体系构造.两种环境下都用同样的路径;.只维护单一的源程序,makefile文件,.管理共享库的工具默

13、认为32位的.32位与64位核心支持.AIX V4.3既支持32位的虚地址空间又支持64位的虚地址空间;.包含VMM与进程调度和其他功能;.32位进程与64位进程对系统设备都有同等访问权利;.默认行为都是32位兼容的;.进程调用设备驱动程序一般被核心分隔.能在32位机器上运行64位程序吗?.显然不能;.不过,在32位机器上编译与64位程序是可能的(假设相关的库等等已安装).AIX 命令与工具.绝大多数AIX命令与工具仍是32位的;.需支持64位的绝大多数工具也仍是32位的;.所有命令与工具将继续支持32位;.编译器与连接程序支持64位的(注意:这并不意味着二者是64位的).ii. 原有32程序

14、与新的64位程序的二进制兼容性原有32位程序可不用重编译,即可在AIX V4.3中继续作为32位程序运行.(1).在AIX V4.3中,32位程序完全的二进制兼容性;.现存32位程序毋须修改或重新编译,就可在64位平台上运行;.32位模式下,百分之百的兼容性;即在64平台上编译的32位程序与32位平台上编译的32位程序都可在64位平台上共存运行;.32位程序无任何性能下降,即32位程序不管是在32位平台上运行,还是在64位平台上运行,其性能无可分辨的差异.(2). 64位与32位的共存.AIX V4.3在64位平台中提供两种应用环境;这两种应用环境是互补而非竟争的环境;64位环境是向上兼容的A

15、IX的附加,比AIX V4.3低的版本不支持64位程序;并不强迫所有应用都是64位的.仅仅只有一种AIX产品既适应于32位平台,又适应于64位平台;32位与64位进程的完全共存,在64位平台上既可运行32位进程,又可运行64位进程,两种进程各有自己的运行环境;3. 64位编程i. 标准有关64位编程有两个标准,UNIX98标准与LP64协议.前者说明UNIX系统调用与C标准库函数的标准接口,各库函数接口并不隐含数据类型是32位的,而是依协议IPL32确定其类型;后者说明64位编程C语言类型.1. 数据类型标准LP64类型从上表可看出:LP64模式中,char,short,int这三种数据类型与32位程序相应的数据类型完全一样;而long型与指针那么变成64位,相应地在32位程序

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号