成都数据恢复维修 服务数据恢复价格表 成都恢复公司
24小时在线服务热线:
18679550629
18615792829
宇陽科技
数据恢复案例
硬盘数据恢复成功案例
服务器数据恢复成功案例
笔记本数据恢复成功案例
软件故排除成功案例
Linux/Uinx成功案例
优盘/闪存/固态硬盘 案例
为什么选择宇陽
·具有专业技术的亚洲领先的数据恢复公司; ·拥有钻研能力强的研发工程师; ·设备先进,引进俄罗斯先进的数据恢复设备、百级开盘洁净间; ·代理多种备份软件为客户提供全面数据保护服务; ·为加盟合作伙伴提供全程技术培训、经营管理、市场推广等服务
成功案例
新闻中心

 数据存储的字节序与位序
 2015年8月3日 09:23:52
 

    在各种计算机体系结构中,对于字节、字等的存储机制有所不同。对于同一个数

值,在不同的计算机体系中会以相反的顺序记录。例如,十六进制数值12345678H.在一

种计算机架构下存储为12345678H,而在另一种计算机架构下会被存储为78563412H。这

就是按照不同的字节序进行存储的。所以所谓的字节序指的就是长度跨越多个字节的数

据的存放形式。

1.  Endian的含义

    目前的存储器-多以字节为访问的最小单元,当一个逻辑上的单元必须分割为物理

上的若干单元时就存在了先放谁后放谁的问题,于是Endian的问题应运而生了。对于不

同的存储方法,就有Big-endianLittle-endian两个描述。

    Big-endianLittle-endian这两个术语来自于Jonathan Swift的《格利佛游记》。其中

交战的两个派别无法就应该从哪一端——小端(Little-end)还是大端(Big-end)打开一

个半熟的鸡蛋达成一致。支持从小端打开鸡蛋的一派被称为Little-endian,支持从大端打

开鸡蛋的一派则被称为Big-endian

  在那个时代,Swift是在讽剌英国和法国之间的持续冲突。后来,一位网络协议的早

期开创者Danny Cohen,第一次使用这两个术语来指代字节顺序,后来这个术语被广泛接

纳了。

  Little-endian是一种小值的一端(或序列中较不典型的值)存储在前的顺序,也就是

说,最低字节存放在最低位,最高字节存放在最高位,反序排列。

    依照人们的习惯来说,我们的文字及数字都是以从左到右的方式排列的,这似乎也

被认为是自然的存储字符和数字方式。然而,Little-endian却恰恰与我们的习惯相反。例

如,按照我们的习惯写一个十六进制数值56AB78EFH,把这个数值以Little-endian的方

式表达出来,则是EF78AB56H

2. Big-endian的含义

  Big-endian是一种大值的一端(或序列中更典型值)存在前面(在晟小的存储地址)

的顺序,也就是最高字节在地址最低位,最低字节在地址最高位,依次排列。

  Big-endian的方式与人们的书写习惯一致。例如,按照我们的习惯写一个十六进制数

56AB78EFH,把这个数值以Big-endian的方式表达出来,也是56AB78EFH

3.字节序与CPU架构的关系

    谈到字节序的问题,必然涉及CPU的架构。CPU从架构上区分,有x86x86-64

  IA-64等;从指令集上区分,有CISCRISC等。

    1CPU的架构

    (l) x86架构

    x86又称IA32,即Intel Architecture 32Intel 32位架构)。它是Intel为其第一块16

  CPU (i8086)专门开发的。IBM 1981年推出的世界第一台微机中的CPU-i8088

  i8086简化版)使用的也是x86架构。同时计算机中为提高浮点数据处理能力而增加了

  x87芯片,以后就将x86指令集和x87指令集统称为x86架构。

    虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386i80486Pentium

  系列及至强系列CPU,但为了保证计算机能继续运行以往开发的各类应用程序以保护和

  继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用x86架构,所以它

  CPU仍属于x86系列。由于Intel x86系列及其兼容CPU(如AMDVIA/Cyrix等)

  都使用x86架构,所以就形成了今天庞大的x86系列及兼容CPU阵容。

    目前基本上所有x86架构的CPU对数据的处理,都采用Little-endian字节序。

    (2)  x86-64架构

    x86-64架构是由AMD公司设计的,也称为AMD 64。它可以在同一时间内处理64

  位的整数运算,并兼容于x86-32架构。其中支持64位逻辑定址,同时提供转换为32

  定址选项:但数据操作指令默认为32位和8位,提供转换成64位和16位的选项:支持

  常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指

  令中有“直接执行”和“转换执行”的区别,其指令字段是8位或32位,可以避免

  字段过长。

    x86-64架构的CPU对数据的处理,也采用Little-endian字节序。

    (3)  IA-64架构

    IA-64架构是Intel为了全面提高以前IA-32处理器的运算性能,和HP公司共同开发

  6年的64CPU架构,是专为服务器市场开发的一种全新的处理器。它放弃了以前

  x86架构,认为它严重阻碍了处理器的性能提高。

    IA-64架构的最初应用是英特尔的Itanium(安腾)系列服务器处理器,后来的

Itaruum 2系列处理器也采用这一架构。由于它不能很好地解决与以前32位应用程序的兼

容.所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来弥补这一不足,

但随着AMD x86-64架构处理器的全面投入,IntelIA-64架构的这两款处理器前景不

容乐观。

    IA-64架构的CPU对数据的处理,字节序是可配置的,既可以采用Little-endian,也

可以采用Big-endian

    2CPU的指令集

    (1) CISC指令集

    CISC指令集。也称为复杂指令集,是“Complex Instruction Set Computer”的缩写。

    CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作

也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,

执行速度慢。

    Intel生产的x86架构(也就是IA-32架构)CPU及其兼容如AMDVIACPU

都属于CISC指令集的范畴。

    CISC指令集的CPU对数据的处理,基本上都采用Little-endian字节序。

    (2) RISC指令集

    RISC是英文“Reduced Instruction Set Computer”的缩写,中文意思是.“精简指

令集”。

    RISC是在CISC指令集基础上发展起来的。有人对CISC机进行测试表明,各种指

令的使用频度相当悬殊,最常使用的是一些比较简单的指令,它们仅占指令总数的

20%,但在程序中出现的频度却占80%。复杂的指令系统必然增加微处理器的复杂性,

使处理器的研制时间长,成本高。并且复杂指令需要复杂的操作,必然会降低计算机的

速度。基于上述原因t 20世纪80年代RISC指令集CPU诞生了。相对于CISC指令集

CPURISCCPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结

构”,大大增加了并行处理能力。

    RISC指令集是高性能CPU的发展方向,相比而言.RISC的指令格式统一,种类比

较少,寻址方式也比复杂指令集少,当然处理速度就提高很多了。目前在中高档服务器

中普遍采用这一指令系统的CPU.特别是高档服务器几乎全都采用RISC指令集的CPU

RISC指令集CPUIntelAMDCISC指令集CPU在软件和硬件上都不兼容。

    目前,在中高档服务器中采用RISC指令的CPU主要有PowerPC处理器、SPARC

理器、PA-RISC处理器、MIPS处理器、AIpha处理器等。

    RISC指令集的CPU对数据的处理,大部分都采用Big-endian字节序。

的,CPU存储一个字节的数据时其字节内的8个位之间的顺序是否也有Little-endian

Big-endian之分呢?

    例如,一个十六进制数值8AH,换算成二进制为10001010B,按照Little-endian的位

序书写应该是OlOIOOOIB,按照Big-endian的位序书写则是IOOOI010B

    实际上,现在的CPU和程序几乎都是设计成Big-endian位序的,也就是说无论在Big-

endian还是在Little-endian字节顺序中,每一个字节中的8位里面都是使用Big-endian
本站域名:www.ices9.com | 站长QQ:958754010 | QQ交流群:378664983宇陽科技| 备案:蜀ICP备14015947号-1
冰久网网络科技有限公司,专业电脑维修,网站建设,维护,数据恢复网
Copyright 2009-2018 Powered By宇陽科技 管理 查询进度 成都数据恢复公司 flash计算器