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

说明:B.4版的Wishbone手册本节内容写的比较繁琐,因此没有像前文一样继续翻译。数据组织是指数据的传送顺序。目前常见的32为处理器的数据总线粒度为1字节,在传送时,一个32位数据的最高字节可以放在数据总线的最低8位传送,也可以放在数据总线的最高8位传送,因此出现了大端和小端两种数据组织方法。大端是指一个数据的最高位放在数据总线的最低位传送或者放在地址较小的存储器位置存储;小端是指一个数据的最高位放在数据总线的最高位传送或者放在地址较高的存储器位置存储。Wishbone同时支持大端和小端两者数据组织方式。当数据总线的粒度和宽度相同时,大端和小端是一样的。大端模式所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;例子:0000430: e684 6c4e 0100 1800 53ef 0100 0100 00000000440: b484 6c4e 004e ed00 0000 0000 0100 0000在大端模式下,前32位应该这样读: e6 84 6c 4e ( 假设int占4个字节)记忆方法: 地址的增长顺序与值的增长顺序相反

图20 一个大端的例子小端模式所谓的小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。例子:0000430: e684 6c4e 0100 1800 53ef 0100 0100 00000000440: b484 6c4e 004e ed00 0000 0000 0100 0000在小端模式下,前32位应该这样读: 4e 6c 84 e6( 假设int占4个字节)记忆方法: 地址的增长顺序与值的增长顺序相同

图21 一个小端的例子现状目前Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端。[这两者数据组织方式在一般文献中都可以找到。总线标准只定义接口的通信协议,而数据的组织本质上取决于主设备和从设备的设计。有时需要将大端和小端的接口互联起来,图22给出了将数据组织为大端的IP A和数据组织为大端的IP B相连的情形。IP A和IP B的数据总线宽度都是32为,粒度为8位。

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

(0)

相关推荐

  • 大小端存储

    0. 问题引入 若定义 : int a = 1; 我们知道 a 在内存存储时 应该为 0x 00 00 00 01,可是看内存里存的是 0x 01 00 00 00,这就是大小端存储的问题. 1.什么 ...

  • (C语言中的“物种”)乐创DIY C语言讲义​——3.2节

    3.3 初识变量 C语言中的变量,其实都只不过是用户访问存储器的一种手段而已.C语言中变量的定义包含了两个层面的信息,其一是根据定义变量时的数据类型,分配给这个变量多少容量的内存单元(以一个字节为最小 ...

  • 【博文连载】Wishbone总线周期之RMW操作

    在操作系统中,有一种重要的进程间的同步机制称作信号量机制.信号量即当前可用资源的计数.信号量是一个用来实现同步的整型或记录型(Record)变量,除了初始化外,对它只能执行等待和释放这两种原子操作.一 ...

  • 【博文连载】Wishbone总线周期之块写操作

    标准块写操作 图17显示的是一个标准的块写周期时序图.块写周期可以在每一个时钟周期完成一次数据传输.但是,本例中显示了主机和从机插入等待状态以控制数据传输速率的情况.图中一共显示了5个传输.第二次传输 ...

  • 【博文连载】Wishbone总线周期之单次写操作

    标准单次写周期 图12显示的是标准单次写周期的时序图. 图12 标准单次写周期 总线协议的执行流程如下: 时钟上升沿0: ·主机将有效地址置于ADR_O()和TGA_O()上: ·主机将有效数据置于D ...

  • 【博文连载】Wishbone总线周期之单次读操作

    单次读/写操作每次操作只完成一次读或者写,是最基本的Wishbone总线操作方式. 规则3.75:所有支持单次读或者单次写周期的,主机和从机接口都应满足下文给出的相关时序要求. 允许3.50:Wish ...

  • 【博文连载】Wishbone总线周期之握手协议

    握手发生在主设备和从设备之间.握手协议是主设备和从设备在握手时所遵守的共同规则.除了,B3版中的标准模式之外,B4版的Wishbone官方手册中还新增了流水线模式.下面将依次进行介绍. 标准Wishb ...

  • 【博文连载】Wishbone总线周期之复位操作

    一个总线周期由多个不可分的时钟周期构成,完成单次读/写操作.块读/写操作或者读改写操作.总线周期也分为单次读/写周期.块读/写周期和读改写周期.一次块读/写总线周期完成多次数据读/写操作.一般情况下, ...

  • 【博文连载】Wishbone总线寄存反馈周期结束方式

    在Wishbone寄存反馈周期结束方式中,主设备需要事先通知从设备操作下一时钟周期是否将发起新的总线操作,这是通过周期类型识别地址标签CTI_O()/CTI_I()和突发类型扩展地址标签BTE_O() ...

  • ​【博文连载】Wishbone总线介绍

    图29 Wishbone总线结构图 ● 所有应用使用一个总线体系结构: ● 简单.紧凑的体系结构: ● 支持多控制器: ● 64位地址空间: ● 8-64 位数据总线(可扩展): ● 单周期读和写: ...

  • 【博文连载】Wishbone总线地址译码

    很多总线标准中,从设备必须译码所有的地址,这称为全地址译码.比如在PCI总线中,每一个从设备都必须具有32位的地址输入,并对这32位的地址进行译码以确定如何响应主设备的请求. 片上总线规范比如Wish ...