0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于大端模式与小端模式的介绍

SwM2_ChinaAET 来源:未知 作者:工程师郭婷 2018-07-22 10:16 次阅读

数据组织是指数据的传送顺序。目前常见的32为处理器的数据总线粒度为1字节,在传送时,一个32位数据的最高字节可以放在数据总线的最低8位传送,也可以放在数据总线的最高8位传送,因此出现了大端和小端两种数据组织方法。大端是指一个数据的最高位放在数据总线的最低位传送或者放在地址较小的存储器位置存储;小端是指一个数据的最高位放在数据总线的最高位传送或者放在地址较高的存储器位置存储。Wishbone同时支持大端和小端两者数据组织方式。当数据总线的粒度和宽度相同时,大端和小端是一样的。

大端模式

所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;

在大端模式下,前32位应该这样读: e6 84 6c 4e ( 假设int占4个字节)

记忆方法: 地址的增长顺序与值的增长顺序相反

关于大端模式与小端模式的介绍

图2一个大端的例子

小端模式

所谓的小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

例子:

关于大端模式与小端模式的介绍

在小端模式下,前32位应该这样读: 4e 6c 84 e6( 假设int占4个字节)

记忆方法: 地址的增长顺序与值的增长顺序相同

关于大端模式与小端模式的介绍

图3一个小端的例子

现状

目前Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端。[

这两者数据组织方式在一般文献中都可以找到。总线标准只定义接口通信协议,而数据的组织本质上取决于主设备和从设备的设计。有时需要将大端和小端的接口互联起来,图22给出了将数据组织为大端的IP A和数据组织为大端的IP B相连的情形。IP A和IP B的数据总线宽度都是32为,粒度为8位。

关于大端模式与小端模式的介绍

图4 22大端和小端的接口互联

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据总线
    +关注

    关注

    2

    文章

    57

    浏览量

    17547
  • 小端模式
    +关注

    关注

    0

    文章

    3

    浏览量

    6346

原文标题:【博文连载】Wishbone总线周期之数据组织

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    cpu的大端模式模式优劣对比

    关于大端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较
    的头像 发表于 11-08 11:10 1.2w次阅读
    cpu的<b class='flag-5'>大端</b><b class='flag-5'>模式</b>小<b class='flag-5'>端</b><b class='flag-5'>模式</b>优劣对比

    大端序与小

    嵌入式之什么是大端序与小序朱有鹏1.大小模式11.1、什么是大小模式
    发表于 12-13 17:06

    如何知道你的MCU是大端模式还是小模式

    1、在编程开发过程中必须要知道你的MCU是大端模式还是小模式。2、通过以下代码就能轻松知道是大端模式
    发表于 12-08 06:02

    大端模式与小模式分析

    Bit-endian 大端模式数据的高位字节存放在地址的低端 低位字节存放在地址高端Little-endian 小模式数据的高位字节存放在地址的高端 低位字节存放在地址低端例:假设从
    发表于 12-16 07:16

    keil怎么设置大端和小模式

    keil怎么设置大端和小模式,用于stm32
    发表于 09-21 07:46

    iar编译器是大端模式还是小模式的?

    iar编译器是大端模式还是小模式
    发表于 09-25 08:00

    STM32中的FLASH数据是大端模式还是小模式

    怎么判断STM32的FLASH数据是大端模式还是小模式
    发表于 10-13 07:21

    请问如何配置STM32的FSMC的大端模式模式

    请问如何配置STM32的FSMC的大端模式模式?还是硬件确定好了的不能修改?
    发表于 11-07 15:15

    tms320c6713的大小模式介绍

     在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小模式
    发表于 09-02 11:55 2333次阅读

    存储器的大端模式和小模式

    大端模式:数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
    发表于 10-27 09:34 5675次阅读
    存储器的<b class='flag-5'>大端</b><b class='flag-5'>模式</b>和小<b class='flag-5'>端</b><b class='flag-5'>模式</b>

    你真的懂CPU的大端和小模式吗?

    但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的int型。另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。因此就导致了大端存储模式和小
    的头像 发表于 01-28 15:56 6887次阅读
    你真的懂CPU的<b class='flag-5'>大端</b>和小<b class='flag-5'>端</b><b class='flag-5'>模式</b>吗?

    测试MCU是大端模式还是小模式

    1、在编程开发过程中必须要知道你的MCU是大端模式还是小模式。2、通过以下代码就能轻松知道是大端模式
    发表于 11-25 19:21 16次下载
    测试MCU是<b class='flag-5'>大端</b><b class='flag-5'>模式</b>还是小<b class='flag-5'>端</b><b class='flag-5'>模式</b>

    大小模式

    大小模式大端模式是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小模式
    发表于 12-29 18:47 2次下载
    大小<b class='flag-5'>端</b><b class='flag-5'>模式</b>

    大小数据介绍

    关于大小 大小也可以理解为字节顺序,或者序、尾序,也就是你们看到的大端序(Big-Endian)、小
    的头像 发表于 09-29 18:35 1781次阅读
    大小<b class='flag-5'>端</b>数据<b class='flag-5'>介绍</b>

    ARM大小模式

    ARM处理器 默认是小模式,但它是支持大端模式。 我们在Cortex-M3手册中有这么一些描述: 在Cortex-M3中, 存储器系统支持 both 小
    的头像 发表于 09-29 18:37 5748次阅读
    ARM大小<b class='flag-5'>端</b><b class='flag-5'>模式</b>