欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于存储器跟寻址的疑问

更新时间: 2014-01-05 03:08:55 责任编辑: Author_N1

 

关于存储器和寻址的疑问?
32位机的存储字长是32位,也就是一次读写32位。那么怎么实现读写一个字节呢?主存的编址方式是怎样的?若按字节编址,好像可以读写一个字节,但存储字长是32位的啊?还有数据总线的宽度是多少呢?如果也是32位,那怎么传送一个字节呢?
--参考方法--
建议楼主去看下 内存对齐,32bit的cpu一次不可能只取到一个字节,只不过是取到四个字节只用一个字节罢了。
--参考方法--
引用:
32位机的存储字长是32位,也就是一次读写32位。那么怎么实现读写一个字节呢?主存的编址方式是怎样的?若按字节编址,好像可以读写一个字节,但存储字长是32位的啊?还有数据总线的宽度是多少呢?如果也是32位,那怎么传送一个字节呢?

32位机的存储字长是32位:存储字长是不是说一次存储的数据长度?应该是说总线宽度是32位?
也就是一次读写32位:不一定哦,x86还有MMX指令,SSE指令,每次读写不一定是32位。
那么怎么实现读写一个字节呢:对于读,直接将数据送到总线上,然后数据载入模块根据读取的地址最低2位(假设总线宽度32bits)选择一个数据然后进行0扩展或者符号扩展送入寄存器。对于写,要看具体处理器写模式,不展开了,你可以研究一下cache和写缓冲等相关计算机体系结构
主存的编址方式是怎样的?若按字节编址,好像可以读写一个字节,但存储字长是32位的啊:存储永远都是8bits的(事实上有些处理器的指令并非8bits对齐,这个也不展开了)。
还有数据总线的宽度是多少呢?如果也是32位,那怎么传送一个字节呢:大多数都是传送多个字节,然后选择出想要的字节或半字或字。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:08:55
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18882/
本文WWW.DOC100.NET DOC100.NET版权所有。