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

我不明白执行长字传输到CPU或字传输需要多少次和多少次周期。我在看图表,却不知道是什么关系?任何评论都是非常感谢的。我附上了两个例子和答案。
发布于 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)。这可以使用三次单字节传输(需要三个周期),或者使用一次两字节传输,然后是一次单字节传输(需要两个周期)。
https://stackoverflow.com/questions/49882244
复制相似问题