首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行传送到CPU的长字需要多少个大小周期?

执行传送到CPU的长字需要多少个大小周期?
EN

Stack Overflow用户
提问于 2018-04-17 15:38:10
回答 1查看 475关注 0票数 0

该任务用于体系结构ColdFire处理器MCF5271:

我不明白执行长字传输到CPU或字传输需要多少次和多少次周期。我在看图表,却不知道是什么关系?任何评论都是非常感谢的。我附上了两个例子和答案。

数据总线大小

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 19:15:12

MCF5271手册在第17章中讨论了处理器的外部接口。处理器用32位外部数据总线实现了一个字节可寻址地址空间。D31:0信号表示数据总线,A23:0信号表示地址总线,BS3:0信号表示字节启用信号。即使数据总线32位宽,连接到它的内存模块也可以是32位、16位或8位宽.这称为内存端口大小。图17-2显示了所有这些信号是如何相互关联的.

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

A和A1地址信号指定传输的对齐。内存对齐在同一章的第17.7节中定义。

因为操作数可以驻留在任何字节边界,不像操作码,所以允许它们不对齐。字节操作数在任何地址正确对齐,单词操作数在奇数地址上错对,长字在地址(而不是4的倍数)上错对。尽管MCF5271对数据操作数(包括程序计数器(PC)相对数据寻址)不执行对齐限制,但对错对齐操作数需要额外的总线周期。

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

让我们考虑一下您所附加的图像中的示例。如何通过32位内存端口存储地址0x0000003的长字?关注端口大小为32位的行。我们有A1:0 = 11,所以首先必须用BS3 3:0= 1110执行单字节传输。其他三个字节需要传输到位置0x0000004 (A1:0 = 00)、0x0000005 (A1:0 = 01)和0x0000006 (A1:0 = 10)。这可以使用三次单字节传输(需要三个周期),或者使用一次两字节传输,然后是一次单字节传输(需要两个周期)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49882244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档