机器字长为8位和cpu字长是一回事吗

【讨论】存储单元和字长,机器字长到底什么关系?
K币20495 元
在线时间1756 小时
主题帖子积分
K币20495 元
首先纠正一下我自己,上面我的沙发贴有问题,现在纠正过来了(一个典型的处理器8088,值得好好研究)。
然后你引用的博客是一般情况下,下面给个特例:
例如Intel 8088处理器
机器字长16位,数据线8根,MDR16位
需要两个存储周期才能读取16位数据,所以x86系列寄存器中存在半字的寄存器(例如AX分为AL和AH,也有兼容8位处理器的原因)
号不是随便可以封的
K币20495 元
在线时间1756 小时
主题帖子积分
K币20495 元
不对请指正
号不是随便可以封的
新手上路, 积分 75, 距离下一级还需 25 积分
在线时间13 小时
主题帖子积分
新手上路, 积分 75, 距离下一级还需 25 积分
新手上路, 积分 75, 距离下一级还需 25 积分
原帖由 lonelyskytaut 于
13:13 发表
首先纠正一下我自己,上面我的沙发贴有问题,现在纠正过来了(一个典型的处理器8088,值得好好研究)。
然后你引用的博客是一般情况下,下面给个特例:
例如Intel 8088处理器
机器字长16位,数据线8根,MDR16位
需要两个存储 ...
是两个存取周期还是两个存储周期?
我对于什么型号的的CPU有什么样的功能,完全不了解,只知道按书上写明的定义理解,至于为什么CPU要按这种定义来制作我完全不清楚。
机器字长是16位,说明他一次可以处理16个二进制位,这是肯定的
数据线是8位,说明他连接的芯片位宽只能是8位,无论是单个位宽就8位,还是按位扩展后有8位。
CPU种的MDR到底其个什么作用我不晓得,书中也没有提到,如果CPU中的MDR和早期内存中的MDR是一样,你又说是两个存取周期才能读满16位,我想这个CPU就是浪费时间的CPU,但MDR=16可以连接单个16位或按位扩展后的16位宽芯片,读两次而已,读两次才是一个机器字长;而数据线8位又可以连接单个8位宽的芯片或按位扩展后的8位宽芯片,一次读8位,但是仍然要读两次才是一个机器字长。&&
还有,机器字长肯定就是存储单元位长的整数倍。
K币20495 元
在线时间1756 小时
主题帖子积分
K币20495 元
原帖由 jackwolfskin 于
14:49 发表
是两个存取周期还是两个存储周期?
我对于什么型号的的CPU有什么样的功能,完全不了解,只知道按书上写明的定义理解,至于为什么CPU要按这种定义来制作我完全不清楚。
机器字长是16位,说明他一次可以处理16个二进制位, ...
是存取周期,错了,呵呵。
不过浪费不浪费不是你说的算的,第一台PC机就是8088(也有节省成本的因素)。也有可能8088周期和内存周期不一样抵消了这种副作用呢。
如果我记得没错的话还有一个CPU也不符合你的要求,只是记不得是DEC的,还是motorola的了。以前为了这个问题查过很多资料,唐朔飞书上是有CPU原理图的,仔细看上面的图就会知道这些指标那些是相互有关系,那些没有的
机器字长和存储器字长没有必然的联系,但是大部门CPU在设计的时候考虑成本会设置成整数倍
号不是随便可以封的
K币20495 元
在线时间1756 小时
主题帖子积分
K币20495 元
这个板块也挺奇怪的,怎么只有三个人在讨论实质的问题呢?
我觉得版主应该把这个帖子加精,版面上讨论计算机题目的人太少了,都是讨论学校的[em:18]
※ 编辑:lonelyskytaut 于 15:07 编辑本文
号不是随便可以封的
高级战友, 积分 4880, 距离下一级还需 3120 积分
K币2492 元
在线时间1131 小时
主题帖子积分
高级战友, 积分 4880, 距离下一级还需 3120 积分
高级战友, 积分 4880, 距离下一级还需 3120 积分
K币2492 元
机器字长是CPU的MDR寄存器长度
存储字长是数据线的位数,是存储单元的最大长度,存储器可以按位编址,按字节编址,按存储字长编址
绝大多数情况下,一个地址标明的是一个字节而不是一个存储单元,所以课本上在说按存储字长编址的时候才有高位做低地址和低位做低地址2种地址组织方法的
※ 编辑:1982yang 于 17:32 编辑本文
http://bbs.8080.net/upload/490.jpg
我が道を逸れれば、天が笑う!
新手上路, 积分 50, 距离下一级还需 50 积分
在线时间36 小时
主题帖子积分
新手上路, 积分 50, 距离下一级还需 50 积分
新手上路, 积分 50, 距离下一级还需 50 积分
很多计算机上都是字节编址的,你的题目只与地址线有关,在字节访问时,需要8个数据线,按一次访问一个字节来说,一次有2^20个选择,共1M,字访问时,用16个数据线,但是按字节编址的话,字访问有2^20/2个选择。
你把地址线和数据线搞错了,数据线传输位数,本题中数据线可以一次读写内存两个或一个字节的内容,这才是字节访问和字访问的区别。
好像是这样,玩多了也记不清……
新手上路, 积分 54, 距离下一级还需 46 积分
在线时间111 小时
主题帖子积分
新手上路, 积分 54, 距离下一级还需 46 积分
新手上路, 积分 54, 距离下一级还需 46 积分
回复 7楼 jackwolfskin 的帖子
我还是不明白为什么是这么多?我跟你最开始的理解是一样的,可是,也不知道为什么就是错的,但是做其他题目我的理解就没错啊~郁闷中,还望更详细的讲解一下。我也是看了唐硕飞的那个例题!!
在线时间19 小时
头像被屏蔽
主题帖子积分
提示: 作者被禁止或删除 内容自动屏蔽
新手上路, 积分 6, 距离下一级还需 94 积分
在线时间1 小时
主题帖子积分
新手上路, 积分 6, 距离下一级还需 94 积分
新手上路, 积分 6, 距离下一级还需 94 积分
字节只能是8比特,这是规定的;字长多少,一般题目会说的,或根据题目可以知道的。书我没看多少,所以发表不了高深的意见。
考研论坛2010年上半年优秀版主
考研论坛2010年上半年优秀版主
Powered by Discuz!CPU在访问内存数据时,是不是必须将存储字长扩充为机器字长?
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
CPU在访问内存数据时,是不是必须将存储字长扩充为机器字长?
也就是说,CPU和存储器相连时的“位扩展”?还是说我对位扩展的理解有偏差?
求解,谢谢
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID123260&帖子1167&积分1503&王道威望110 &王道贡献47 &考研年份2012&报考学校中科院&本科学校山东师大&注册时间&最后登录&
& & 不一定要扩展的,例如机器字长16位,存储字长8位,然后可以分两次访问存储器凑够16位,所以不必非得扩展成与机器字长一样的。
PS:按题目要求来就可以了。
人的一生中,最光辉的一天并非是功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志那天!
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
& &谢谢师兄解答。我基本想明白了,以前一直对这点很纠结,还以为有了位扩展这个功能就一定要用。。。不过这样的话又多了几个疑问
& &貌似除了专门考位扩展的题目,一般都不会特别提到位扩展,那么是不是默认情况下不需要考虑位扩展呢?
& &按字节编址是不是意味着存储字长=字节?按字编址是不是意味着存储字长=机器字长?
& &就拿CPU从内存取一个机器字的访存次数来说,默认情况下是不是这样?访存次数=机器字长/存储字长,如果不按边界对齐的话,访存次数=(机器字长/存储字长)+1?
& &CPU从内存取一条指令,默认情况下是不是这样?访存次数=指令字长/存储字长,如果不按边界对齐的话,访存次数=(指令字长/存储字长)+1?而PC在取完一条指令后的增量是不是对应的访存次数?
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID162574&帖子655&积分1160&王道威望10 &王道贡献82 &考研年份&报考学校&本科学校&注册时间&最后登录&
本帖最后由 黑洞逃逸者 于
23:38 编辑
存储字长与CPU字长不一定要匹配,历史上从1位到60位几乎都出现过,不过现在几乎都标准化为以8位为单位——32位字包含4个字节,64位字包含8个字节。例如Pentium4是32位处理器,但是是以64位与主存交换数据,而主存并不一定要扩展为64位(不知道是不是就是因为这一点唐奶奶把它列为64位处理器)。总之,位数可以是任意的,不同的选择来源于效率与成本的考虑。个人认为这种“按字”的说法很不严谨(参考上面的Pentium4),应该尽量用位做单位。
关于对齐,如果CPU工作在正常模式下那么通常一定是对齐的,不对齐的情况发生在CPU以兼容模式运行的情况(Pentium4以8088模式运行)。这时会发生不对齐的情况,而此时直接将CPU看作16位的8088。
如果有错误请高人指正
UID123260&帖子1167&积分1503&王道威望110 &王道贡献47 &考研年份2012&报考学校中科院&本科学校山东师大&注册时间&最后登录&
& & 关于位扩展题目没要求不用考虑。
& & 按字节寻址和存储字长是否与字节相等没关系,按字寻址与存储字长和机器字长是否相等也没关系。
& &给你举个例子吧,看你在这方面挺乱的。
&&存储器1MB,存储字长为16位,机器字长可以为32位,然后按字节寻址则每个地址指向8位的数。每个字的地址(对齐方式)是2的倍数,若不对齐则另考虑。
若按字寻址则每个地址指向十六位的数。
建议你看看唐朔飞305页的内容。
人的一生中,最光辉的一天并非是功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志那天!
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
& &师兄,你如果不能一次性全部回答我的问题,我的疑问就越来越多了能不能给个有空的时间,我想问多几个问题,不然一个疑问解决了,又马上冒出一个新问题(都是存储器相关的),或者每次只问一两个问题? 万分感谢。
& &比如按x字节编址,是指最小寻址编址(寻址)单位是x字节么?x必须小于或等于存储字长?比如按字节编址,支持字节寻址和存储字寻址??
& &按字编址就是只支持按存储字寻址(或以上),而不支持字节寻址?
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID165070&帖子78&积分95&王道威望10 &王道贡献6 &考研年份2013&报考学校浙江大学&本科学校武汉大学&注册时间&最后登录&
回复: CPU在访问内存数据时,是不是必须将存储字长扩充为机器字长?
CpU的访存时间首先与指令类型有关!RIsc中只有l0ad和st0re指令可以访存!(工sc中要看具体指令需要数据个数!M0v Ax,BUF!还取决于是否采用页面机制
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
zhouyelihua
& &谢谢回复。不过我暂时只考虑通用的模型,而且关注CPU的访存次数而不是访存时间
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID162574&帖子655&积分1160&王道威望10 &王道贡献82 &考研年份&报考学校&本科学校&注册时间&最后登录&
& & 其实就是
& & CPU单次取址位数/内存存储单元位数 如果不对齐就要+1
& & 然后就没了 其它的都是换个说法而已
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
黑洞逃逸者
& &CPU单次取址位数好说啊, 取一个机器字就是机器字长,取一条指令就是一个指令字长。问题就是“内存存储单元位数”怎么确定,题目肯定不会说的那么直白,要自己判断啊
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID162574&帖子655&积分1160&王道威望10 &王道贡献82 &考研年份&报考学校&本科学校&注册时间&最后登录&
& & 看数据线位数啊!
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
黑洞逃逸者
& &这个就是第一个问题了,必须位扩展么?看起来答案是否定的。。。
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
UID165070&帖子78&积分95&王道威望10 &王道贡献6 &考研年份2013&报考学校浙江大学&本科学校武汉大学&注册时间&最后登录&
回复: CPU在访问内存数据时,是不是必须将存储字长扩充为机器字长?
居然.看成取数据了!哎审题不认真
UID162574&帖子655&积分1160&王道威望10 &王道贡献82 &考研年份&报考学校&本科学校&注册时间&最后登录&
是不是扩展不是要由题目决定吗?
那个麻烦把所有问题重说一遍吧,貌似都有些跑题了……
UID159540&帖子820&积分1453&王道威望50 &王道贡献94 &考研年份2013&报考学校华南理工大学&本科学校西藏大学&注册时间&最后登录&
黑洞逃逸者
一个个来吧,太多回答不了,比如说1L那些都还有几个没人回答
比如按x字节编址,是指最小寻址编址(寻址)单位是x字节么?x必须小于或等于存储字长?比如按字节编址可以支持字节寻址和存储字寻址??
按字编址就是只支持按存储字寻址(或以上),而不支持字节寻址,半字寻址等??
ダンガンロンパ 希望の学园と绝望の高校生 アニメ化决定
進撃の巨人 アニメ化决定
2013世界末日~
[通过 QQ、MSN 分享给朋友]
王道第14期C/C++班正在报名, 学费仅8Kcpu字长、操作系统字长和jvm中各数据类型占用的字节数关系 - 田麦 - ITeye技术网站
博客分类:
cpu字长是指cpu同时参与运算的二进制位数,现在主流的pc的机器字长都是64位的。机器字长直接决定着机器可寻址的虚拟空间地址大小。
The word size of a computer generally indicates the largest integer it can process in a single instruction, and the size of a memory address, which is usually, but not necessarily the same as the integer size.
操作系统字长要看操作系统的位数,跟机器字长并不一定一致,比如64位机器可以安装32位操作系统。虽然64位cpu的可寻址理论达2^64 bytes,但是由于系统限制,32为系统只能访问最大2^32 bytes的虚拟地址空间。另外,64位os上可以安装32位软件,如64位windows。
jvm的字长,我找了下jvm specification e7,并没有找到jvm定义字长,但是在《》这本老经典里头,看到作者写到:
The basic unit of size for data values in the Java virtual machine is the word--a fixed size chosen by the designer of each Java virtual machine implementation. The word size must be large enough to hold a value of type byte, short, int, char, float, returnAddress, or reference. Two words must be large enough to hold a value of type long or double. An implementation designer must therefore choose a word size that is at least 32 bits, but otherwise can pick whatever word size will yield the most efficient implementation. The word size is often chosen to be the size of a native pointer on the host platform.
The specification of many of the Java virtual machine's runtime data areas are based upon this abstract concept of a word. For example, two sections of a Java stack frame--the local variables and operand stack-- are defined in terms of words. These areas can contain values of any of the virtual machine's data types. When placed into the local variables or operand stack, a value occupies either one or two words.
As they run, Java programs cannot determine the word size of their host virtual machine implementation. The word size does not affect the behavior of a program. It is only an internal attribute of a virtual machine implementation.
也就是说,jvm基本的数据单位是字,这个字的字长,spec中是没有规定的,但是必须足够持有byte、short、int、char、float、returnAddress和reference,而两个字的字长足以持有long和double。spec里边规定这些类型最大32位,如int的(2.3 Primitive Types and Values):
int, whose values are 32-bit signed two's-complement integers, and whose default value is zero
一般字长选择都根据底层主机平台的指针长度来选择,而,所以64位的机器上,运行64位OS,安装64位jvm的话,对象地址可能是64bit的,当然这根和。
而,基于零基压缩,分配给jvm的内存必须控制在4g到32g之间,因为对象头是最小8个字节,普通寻址是地址指向字节,如果我们知道jvm里对象大小都是,那么一个地址可以指向8字节的首地址,也就是寻址能力扩大八倍,当然这里是指hotspot vm。而为啥最小4g呢?因为小于4g就不需要压缩了。
yueyemaitian
浏览: 137865 次
来自: 杭州
谢楼主,构建成功了
?????
walle1027 写道学习了,正式想要的
学习了,正式想要的

我要回帖

更多关于 机器字长 存储字长 的文章

 

随机推荐