打印
[boot]

C语言-字、半字、内存位宽

[复制链接]
735|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蒋博1026|  楼主 | 2019-8-22 11:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、32位系统:32位系统指的是32位数据线,但是一般地址线也是32位,这个地址线32位决定了内存地址只能有32位二进制,所以逻辑上的大小为2的32次方。内存限制就为4G.实际上32位系统中可用的内存是小于等于4G的(例如我32位CPU装32的windows,但是实际电脑只有512M内存)。
2、内存位宽
(1)、从硬件角度来讲,硬件内存的实现本身是有宽度的,也就是说有些内存条就是8位的,而有些就是16位的。那么需要强调的是内存芯片之间是可以并联的,通过并联之后即使8位的内存芯片也可以做出来16位的或者32位的硬件内存。
(2)、从逻辑角度讲:内存位宽在逻辑上是任意的,甚至逻辑上存在内存位宽是24位(但这种在硬件上是买不到的,没有实际意义)。从逻辑角度讲不管内存位宽多少,我直接操作即可,对我的操作不构成影响。但是因为你的操作最终是由硬件去执行的,所以内存位宽不是任意的,受限于硬件。譬如24位内存和32位内存在逻辑上没有任何区别,但实际硬件都是32位的,都是按照32位硬件的特性和限制来干活。
3、内存单元的大小单位有4个:位(1 bit)  字节(8 bit)  半字(一般是16bit)  字(一般是32bit)
     字、半字这些单位具体是多少位是依赖于平台的。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

323

主题

1820

帖子

18

粉丝