执行长字传输到 CPU 需要多少个周期和大小

2024-02-01

该任务针对架构 ColdFire 处理器 MCF5271:

我不明白执行到 CPU 的长字传输或字传输需要多少个周期以及什么大小的周期。我正在阅读图表,但不明白其中有何联系?非常感谢任何评论。我附上了两个例子和答案。

数据总线大小 https://i.stack.imgur.com/lUmjK.png


The MCF5271说明书 https://www.nxp.com/docs/en/reference-manual/MCF5271RM.pdf第 17 章讨论了处理器的外部接口。处理器通过 32 位外部数据总线实现了字节可寻址地址空间。 D[31:0]信号代表数据总线,A[23:0]信号代表地址总线,BS[3:0](低电平有效)信号代表字节使能信号。尽管数据总线是32位宽,但与其连接的存储器模块可以是32位、16位或8位宽。这称为内存端口大小。该章的图 17-2 显示了所有这些信号如何相互关联。

同一章的表 17-2 显示了支持的传输大小(由称为 TSIZ[1:0] 的信号指定)。

A[0] 和 A1 https://www.nxp.com/docs/en/reference-manual/MCF5271RM.pdf地址信号指定传输的对齐方式。内存对齐在同一章的 17.7 节中定义。

因为操作数可以驻留在任何字节边界,这与 操作码,它们允许不对齐。字节操作数是 在任何地址正确对齐,字操作数在某个地址未对齐 奇地址,并且长字在非奇地址处未对齐 四的倍数。尽管MCF5271强制不对齐 数据操作数的限制(包括程序计数器(PC) 相对数据寻址),需要额外的总线周期 未对齐的操作数。

将所有这些信息放在一起,我们可以轻松确定通过大小为 1 字节的内存端口将 1 字节、2 字节、4 字节数据传输到任何内存位置(对齐或未对齐)需要多少个周期, 2 字节或 4 字节。

让我们考虑一下您所附图像中的示例。如何通过32位内存端口在地址0x0000003处存储长字?重点关注端口大小为 32 位的行。我们有 A[1:0] = 11。因此,首先必须使用 BS[3:0] = 1110 执行单字节传输。其他三个字节需要传输到位置 0x0000004 (A[1:0] = 00)、0x0000005 (A[1:0] = 01) 和 0x0000006 (A[1:0] = 10)。这可以使用三个单字节传输(这将需要三个周期)或使用单个两字节传输后跟单个一字节传输(这将需要两个周期)来完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

执行长字传输到 CPU 需要多少个周期和大小 的相关文章

  • CPU利用率和能耗之间有什么关系?

    描述 CPU 利用率和能源消耗 电 热方面 之间关系的函数是什么 我想知道它是否是线性 次线性 exp 等 我正在编写一个程序 可以降低其他程序的 CPU 利用率 负载 我主要关心的是我能在能源方面受益多少 此外 我的服务器主要用作数据中心
  • 现代 x86 CPU 使用什么缓存一致性解决方案?

    我对缓存一致性系统在现代多核 CPU 中的功能有些困惑 我已经看到基于侦听的协议 例如基于 MESIF MOESI 侦听的协议 已在 Intel 和 AMD 处理器中使用 另一方面 基于目录的协议对于多核来说似乎更加高效 因为它们不广播而是
  • 为什么64位cpu不存在高端内存?

    当我试图了解 32 位 cpu 和 Linux 的高内存问题时 为什么没有高内存问题 https en wikipedia org wiki High memory对于64位CPU 特别是 虚拟内存分为内核空间和用户空间的划分是如何改变的
  • C# 程序占用太多CPU?

    我有一个程序 它在启动时不断地在 3 个独立的计时器之间切换 我的应用程序的主线程有一个 while 循环 它不断检查全局变量是否已设置为 true 如果设置为 true 它将停止一个计时器并启动另外两个计时器 一个连续 另一个自动停止 如
  • (n - 乘法) 与 (n/2 - 乘法 + 2 加法) 哪个更好?

    我有一个具有 n 次乘法 n 次乘法的单次乘法 的 C 程序 并且我发现了另一个具有 n 2 次迭代 1 次乘法 2 次加法 的逻辑 我知道两者的复杂度都是 O n 但就CPU周期而言 哪个更快 在您的计算机上测试 或者 查看您的处理器的规
  • 查看x86架构中的cpu缓存内容

    如何查看或转储基于 x86 的架构的 cpu 缓存内容 每次进行缓存刷新时 我如何才能看到刷新了什么 在哪里 你不能 真的 CPU 缓存被设计为对于 CPU 上运行的代码是透明的 它具有加快代码执行速度的效果 但 CPU 管理有关缓存的所有
  • C 易失性变量和高速缓存

    缓存是由缓存硬件对处理器透明地控制的 因此如果我们在C程序中使用易失性变量 如何保证我的程序每次都从指定的实际内存地址读取数据而不是缓存 我的理解是 Volatile 关键字告诉编译器不应优化变量引用 而应按照代码中的编程方式读取变量引用
  • 手臂“版本”之间的差异? (仅限 ARMv7)

    基本上我想知道ARMv7l和ARMv7之间的区别hl 我有一个带有armv7l的arm处理器 并且有很多armv7的rpmhl 我完全不知道我必须搜索什么才能获得相关信息 这个 后缀 叫什么 还有其他类型吗 他们的做法有何不同 我假设它指示
  • 为什么无法一步读取未对齐的单词?

    鉴于 CPU 的字大小允许它寻址内存中的每个字节 鉴于通过PAE http en wikipedia org wiki Physical address extensionCPU 甚至可以使用比字大小更多的位来进行寻址 CPU 无法一步读取
  • 阿迪和苏比之间到底是什么“关系”?

    我应该回答这个问题 经过一番研究后发现 add 和 sub 具有相同的操作码 仅在功能领域有所不同 这是答案还是其他什么 Update Nios II CPU 手册中提供了它 subi subtract immediate Operatio
  • 如何确定 Windows 10 上可执行二进制文件的体系结构

    给定一些Random exe在 Windows 上 我如何确定 它的CPU架构 例如Intel ARM 以及 它的位数 例如 32 或 64 我可以使用文件资源管理器 其他工具或编程方法中的属性吗 Cygwin https www cygw
  • 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我知道现代计算机已经修改了哈佛架构 它们可以从保存数据的地方以外的地方读取指令 这一事实是否允许它们直接从 ROM 芯片获取指令 他们是先
  • CPU是如何做减法的?

    我有一些基本的疑问 但每次我坐下来尝试面试问题时 这些问题和我的疑问就会出现 假设 A 5 B 2 假设A和B都是4字节 那么CPU是怎么做的呢 A B添加 我知道 A 的符号位 MSB 为 0 表示正值 B 的符号位为 1 表示负整数 现
  • 为什么在强度降低乘法和循环进位加法之后,这段代码的执行速度会变慢?

    我正在读书阿格纳 雾 https en wikipedia org wiki Agner Fog s 优化手册 https en wikipedia org wiki Agner Fog Optimization 我遇到了这个例子 doub
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne
  • 我们可以拥有一台只用寄存器作为内存的计算机吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 寄存器是计算机中最快的存储器 那么如果我们想构建一台只有寄存器甚至没有缓存的计算机 可能吗 我什至考虑用寄存器代替磁盘 尽管它们本质上是易
  • 如何检查设备是否“快”足够

    我找不到更好的措辞来回答我的问题 在我的应用程序中的某个时刻 我设置了一些非常密集的动画 事实是 在高端设备上 动画运行流畅且赏心悦目 另一方面 我测试的一款低端设备在制作动画时的性能非常糟糕 为了将用户体验放在第一位 我想在计算能力足够的
  • PHP 脚本不断执行 mmap/munmap

    我的 PHP 脚本包含一个循环 它只不过是回显和取消引用指针 如 tab othertab i gt 中的内容 直到昨天 这个脚本开始变得非常慢 比以前慢了 50 倍 之前 它一直运行良好 使用 strace 后 我发现 90 的情况下 脚
  • 超标量和 VLIW

    我想问一些关于ILP的问题 超标量处理器是标量处理器和矢量处理器的混合体 那么我可以说矢量处理器的架构遵循超标量吗 同时处理多个指令不会使体系结构超标量 因为流水线 多处理器或多核体系结构也可以实现这一点 这意味着什么 我读过 超标量 CP
  • 如何在 Java 中将帧速率限制为 60 fps?

    我正在编写一个简单的游戏 我希望将帧速率限制在 60 fps 而不会让循环占用我的 CPU 我该怎么做 您可以阅读游戏循环文章 https dewitters com dewitters gameloop 在尝试实现任何内容之前 首先了解游

随机推荐

  • svn 无法打开 ra_local 会话

    我已经在 Linux 服务器上设置了 svn 我使用以下命令创建了一个存储库 svnadmin create var svn REPOSITORY NAME 然后我在此文件中设置用户访问权限 vi var svn REPOSITORY NA
  • 使用 jQuery 将鼠标悬停在一个元素上并将效果应用于另一个元素

    div class views row div h5 class product name a href Dots a h5 div div class views field div class field content a href
  • mysql (5.1) 插入语法 > col_name=value?

    mysql 有没有办法插入一个newrow 的方式更直接地将值与其列关联起来 而不是table col name values value 当一次插入大量值时 将它们内联列出会变得相当混乱并导致错误 错误 我正在寻找更像的东西UPDATE的
  • 构建阶段创建 Plist 并将其复制到资源包中

    我制作了一个 ruby 脚本 可以从其他格式的数据生成 Plist 该脚本位于 xcode 的项目文件夹内 我已经创建了一个调用我的脚本的自定义运行脚本构建阶段 echo Running xls Plister cd PROJECT DIR
  • google.appengine.ext Python 模块导入错误 没有名为 google.appengine.ext 的模块

    Python 2 7 6 用于 Google App Engine 的 Python 的 Google API 客户端库 谷歌开发者指南 https developers google com api client library pyth
  • dart lang 中的自定义注释/元数据

    谁能给我解释一下 Dart 中注释的使用吗 在文档中 我找到了这个例子 library todo class todo final String who final String what const todo this who this
  • 在 android API29+ 中检测来电和去电

    关于在 android 中检测传入和传出呼叫有很多问题 但它们都很旧 而且 android 不推荐使用有用的功能 并且 google play 拒绝我的应用程序 因为我正在使用它们 为了检测拨出电话 我使用了
  • 在聚合管道、MapReduce 或 runCommand 中使用存储的 JavaScript 函数

    有没有办法使用保存为的用户定义函数db system js save 在管道或mapreduce中 您保存到的任何函数system js可供 JavaScript 处理语句使用 例如 where http docs mongodb org
  • 在android自动完成文本视图中覆盖过滤器结果?

    这几天我一直在纠结这个问题 我试图在android中设置一个自动完成文本视图 其中用户输入一个键 自动完成建议是值 但是我现在已经尝试了大约10种不同的方法 扩展BaseAdapter SimpleAdapter 和现在的 ArrayAda
  • 仅从工作副本中删除文件,但不从存储库中删除文件

    由于我在网上找不到上述问题的答案 所以我自己提出了解决方案 这是一个手动过程 但我找不到任何其他标准解决方案 所以这里是 假设你想删除该文件test txt从目录work 现在 如果您通过以下方式强制删除 test txt rm rf 测试
  • 并非所有代码路径都返回“值”

    您好 我正在尝试制作一个主脑游戏 让用户猜测 4 10 之间的数字序列而不是颜色 但由于某种原因 我的 GetRandomNumberCount 和生成随机数给我错误 并非所有代码路径都返回值 任何指导将不胜感激 public static
  • 构建器模式和大量强制参数

    迄今为止我使用的是下列的 http rwhansen blogspot com 2007 07 theres builder pattern that joshua html构建器模式的实现 与描述的实现相反 here http en wi
  • 如何知道哪个应用程序正在读取或写入文件

    Android 或 Android NDK 中是否有任何方法可以知道哪个应用程序正在磁盘或设备内存上读取或写入数据 您可以在输出中查找您的文件 ls l proc fd 为此 您不需要任何特殊工具或根 解释 每个正在运行的进程都有一个条目
  • Lotus Notes 使用 Java api 按日期搜索

    我试图从 Lotus Notes 数据库中按日期选择记录 但在正确设置日期格式方面遇到了麻烦 这是相关代码 public void runNotes Session s try s NotesFactory createSession St
  • 为什么我会得到负值位移的奇怪结果?

    这个问题不是重复的这个问题 https stackoverflow com questions 1857928 right shifting negative numbers in c 我遇到过一种情况 我可能必须将 正 数字左移负值 即
  • 根据查找表替换数据框中的值

    我在替换数据框中的值时遇到一些问题 我想根据单独的表替换值 下面是我正在尝试做的事情的一个例子 我有一张表 其中每一行都是客户 每一列都是他们购买的动物 我们称这个数据框为table gt table P1 P2 P3 1 cat liza
  • 无法将“cv::VideoCapture”转换为“CvCapture*”

    我有一个简单的程序 可以拍摄视频并播放它 尽管它对视频进行了一些图像处理 可以从对话框结果中检索视频 也可以直接通过给出文件路径来检索视频 当我使用CV CvCapture 捕获1 我得到像 capture1 isOpen 这样的属性 ca
  • RequireJS:如何将变量从一个文件传递到另一个文件?

    我将 require 与骨干 骨干形式一起使用 我目前正在使用 RequireJS 将代码分成多个文件 我将模型存储在单独的文件中 并希望单独保留表单验证器 但是 我无法访问一个文件以及依赖于该文件的另一个文件中定义的变量 我得到的是Unc
  • 如何国际化delphi应用程序[重复]

    这个问题在这里已经有答案了 可能的重复 翻译申请 https stackoverflow com questions 12311926 translate application 国际化用 delphi xe2 编写的应用程序的最佳方法是什
  • 执行长字传输到 CPU 需要多少个周期和大小

    该任务针对架构 ColdFire 处理器 MCF5271 我不明白执行到 CPU 的长字传输或字传输需要多少个周期以及什么大小的周期 我正在阅读图表 但不明白其中有何联系 非常感谢任何评论 我附上了两个例子和答案 数据总线大小 https