静态地址边界是由主端口数据宽度决定的字地址。

(1)对具有8位数据宽度的主端口,静态地址边界落在地址0x00,0x01,0x02,0x03…

(2)对于具有32位数据宽度的主端口,静态地址边界落在地址0x00,0x04,0x08,0x0C…

每个地址就8个字节,即一个字,一次操作就一个字节(byteenable)

(1)当主端口和从端口数据宽度一样的时候------静态地址边界对齐

(2)当主端口和从端口数据宽度不一样时--------动态地址边界对齐

比如,SDRAM就是动态地址对齐。。。

静态地址对齐:当从端口位数较小的时候。从端口映射到主端口较低位,高位填充为0;

动态地址对齐:当主端口有动态总线特性的从端寻址时,所有从端口数据在主端口地址空间按连续的字节对齐;

<1>如果主端口比从端口宽,则主端口高位对应从端口下一个位置对应。(32主端口,16位从端口,Avalon Switch Fabric进行两次读传输)

<2>如果主端口比从端口窄,则Avalon Switch Fabric自动设置byteenable信号有效,仅将数据写到相应的从端口字节段

静态地址对齐地址宽度: 1~128

动态地址对齐地址宽度:8,16,32,64,128

。。。。发现自己不懂的越来越多

下面转载http://www.cnblogs.com/nick123/archive/2009/05/09/1453422.html

首先要明确的一点是地址对齐的方式是对Avalon slave 来说的,Avalon master无所谓地址对齐的方式,也没有这个选项。不管Avalon master的端口宽度是多少,其地址线的最低位都代表字节地址,即Avalon master的地址只有一种就是字节地址。另外,Avalon 三态桥出来的地址也是字节地址,所以连接Avalon三态桥的16位宽度的器件,最低地址位必须和三态桥的A1相连,而不是A0。同理,连接Avalon三态桥的32位宽度的器件,其最低地址位必须和三态桥的A2相连。

对Avalon slave来说,有两种地址对齐方式:动态地址对齐和静态地址对齐

动态地址对齐:动态地址对齐可以自动适应和Avalon master端口宽度不同的器件,而同时保持地址增长的方式是以字节为单位增长的方式。匹配不同端口宽度的master和slave时使用动态地址对齐方式可以得到一个连续的存贮器空间。但动态地址对齐在读操作的时候有副作用当一个32位Nios II core读一个8位宽的slave时,物理会产生4次8位的读操作,而读一个16位宽的slave时,则要产生2次的读操作。大部分寄存器类型的外设不能容忍这种附作用,所以动态地址对齐一般不适合用于寄存器外设,主要用于存贮器。如果外部存贮器的宽度大于8位时,比如16位或32位,则必然有字节使能信号,以便进行字节粒度的写操作。所以在为这些存贮器做接口的时候,如果采用动态地址对齐的方式,则一定要连接字节使能信号。

静态地址对齐:静态地址对齐的地址增长单位是Avalon master的端口宽度,每次读写都只对应一次操作没有什么附作用。但在匹配不同端口宽度的master和slave时,地址不能自动调整,某些地址没有相应的物理实体和它对应。当一个32位的Nios II core读一个8位宽的slave时,其获得的32位数据低8位从slave获取,而高24位则没有定义。同样,当它读16宽的slave时,其获得的32位数据低16位从slave获取,而高16位则没有定义。当Nios II core想继续读下一个8位(或16位)时,则需要增长字节地址4除非你一定需要一个连续的地址空间,否则使用静态地址对齐方式是比较保险的方式

IORD和IOWR通常用于读写静态地址对齐的slave,而IORD_XXDIRECT和IOWR_XXDIRECT通常用于读写动态地址对齐的slave。但其实也可以交叉使用,即用IORD和IOWR读写动态地址对齐的slave,用IORD_XXDIRECT和IOWR_XXDIRECT读写静态地址对齐的slave,条件是你要正确的计算地址。IORD_XXDIRECT和IOWR_XXDIRECT以字节为单位,而IORD和IOWR以word(32位)单位。

转载于:https://www.cnblogs.com/crazybingo/archive/2011/02/26/1966061.html

MM的静态寻址和动态寻址相关推荐

  1. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★

    文章目录 前言 一.上一篇博客中获取到的静态地址 二.第一层静态地址 cstrike.exe+1100ABC 三.第二层地址 四.第三层地址 五.第四层地址 六.静态地址 到 动态地址 的寻址 + 偏 ...

  2. C 语言编程 — 静态库、动态库和共享库

    目录 文章目录 目录 文章目录 程序函数库 静态链接 创建静态库文件 动态链接 创建共享库文件 共享库文件的名字 共享库文件的存储路径 LD_LIBRARY_PATH 环境变量 ldconfig 指令 ...

  3. 静态数组和动态数组 内存分布

    数组是程序设计中是一个非常重要的概念.数组是一个用于收集大量类似数据的容器, 以及其每一个元素能被相同处理过程迭代来处理的一个抽象体. 创建数组一般有三种方式:全局/静态范围的数组,局部变量数组,申请 ...

  4. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解

    静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...

  5. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

  6. 网络加速原理与方法:静态CDN、动态CDN、全站加速、GAAP、AIA、CLB跨地域部署

    一.概念辨析:网络延迟与网络波动 (1) 网络延迟 网络延迟是指各式各样的数据在网络介质中通过网络协议(如TCP/IP)进行传输,如果信息量过大不加以限制,超额的网络流量就会导致设备反应缓慢,造成网络 ...

  7. Linux下用gcc生成静态库和动态库及练习使用OpenCV

    我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为 静态库和动态库两种.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...

  8. 基址寻址和变址寻址区别(白话版)

      在寻址方式里面,基址寻址和变址寻址是比较常用的两种寻址方式.但因为两种太像了,总是搞不清楚.上网查到的描述太过专业看起来特别吃力.写这篇,希望能用一种通俗易懂的方式对二者做个区分.   为什么总容 ...

  9. 【单片机仿真】(六)寻址方式 — 变址寻址与相对寻址

    目录 1.变址寻址 2.相对寻址 1.变址寻址 基址寄存器:DPTR , PC :变址寄存器:A:二者相加形成新的16位地址,为操作数的存储地址. A中内容可动态变化,可动态寻址.

最新文章

  1. ansible企业级自动化运维工具
  2. 公务员要过英语六级吗计算机,报考2020年国家公务员考试,必须要过英语四六级吗?...
  3. iphone 软键盘
  4. QCwindows server 2003部署
  5. Tomcat、JDK 历史版本下载地址
  6. PST转换软件 v6.3
  7. Mr.J-- jQuery学习笔记(二十九)--属性操作方法(获取属性判断)
  8. apollo @value没生效_不问不要紧,一文要人命,绝对的面试加分项配置中心Apollo深度解读...
  9. LNMP源码安装教程
  10. win10自带功能 进行磁盘分区
  11. ubuntu下amd超频工具_AMD CPU怎么超频?AMD锐龙平台内存与CPU超频图文教程
  12. 统计学分析公式 MA移动平均线
  13. Longest Commen Prefix
  14. 假设某专业有若干个班,每个班有若干学生,每个学生包含姓名和分数,这样构成一棵树,如图1所示。假设树中每个结点的name域均不相同,该树采用孩子兄弟链存储结构,其结点类型定义如下:
  15. 3.html常用标签
  16. 微信小程序-获得当前时和当前时间截
  17. 烽火fr2600怎么web登录_烽火R2600(R2640)路由器配置
  18. C++字符函数库 cctype
  19. 【C/C++ Windows编程】Windows系统消息、Qt消息事件、linux下kill信号
  20. 如何使用TwinCAT 3配置EtherCAT网络

热门文章

  1. jacobi迭代法matlab_解线性方程组的经典迭代法(1)-理论
  2. eclipse新建项目有红叉_selenum+java+eclipse环境搭建和浏览器驱动配置
  3. 笔记-项目范围管理-工作说明书与项目范围说明书的区别
  4. 笔记-中项案例题-2018年下-整体管理
  5. 《系统集成项目管理工程师》必背100个知识点-22实施整体变更ITTO
  6. 《系统集成项目管理工程师》必背100个知识点-21监控项目工作ITTO
  7. python 如何调用远程接口
  8. MyBatis中传递数组参数和List参数时if-test判空和判断长度的写法
  9. Winforn中使用FastReport实现点击导出按钮PDF预览并弹出另存为对话框
  10. SpringBoot+Swagger2实现可视化API文档流程