按字寻址和按字节寻址以及内存编码、地址总线与数据总线的理解

简介: 按字寻址和按字节寻址以及内存编码、地址总线与数据总线的理解

内存编制和关于按字寻址和按字节寻址的理解:

在很多书上都看到32位地址线的寻址空间是4G,我的理解是32位不就是32bit吗,2^32Bit=4GB/8=0.5GB,为什么会是4G呢?这里其实设计到一个概念,就是内存编址的问题。

32位地址线的寻址范围为什么是4G?

2^30B = 1GB

2^32B = 4GB

这里的计算方法,默认计算机是【内存地址是以字节为单位的,一个内存单元的大小就是1B】

若计算机中内存地址是以字为单位的,4G内存,对应的寻址范围是多少?

4GB=2^32B

1字= 32bit = 4B

2^32/ 4B = 2^30

所以,若以字为寻址单位,则至少需要30跟地址线才能完成对4GB空间的编码。

综上,计算机中内存地址是以字节为单位的,一个内存单元大小就是1KB。


数据总线与地址总线:

地址总线的位数决定CPU的寻址范围;数据总线的位数决定CPU单次能交换的信息总量。总线的速度决定CPU和外设互换信息的速度。

CPU的位数指的是数据总线的位数,而决定最大支持内存的则是地址总线位数。

一般来说,数据总线与地址总线的位数是相同的(也有不同的,比喻51单片机)。

32位操作系统,其地址总线与数据总线位数均为32,若其内存为4G,2^32B=4G,则刚好4G内存都可以寻址得到,内存可以充分被利用。

相关文章
|
1月前
|
Java API 对象存储
JVM进阶调优系列(2)字节面试:JVM内存区域怎么划分,分别有什么用?
本文详细解析了JVM类加载过程的关键步骤,包括加载验证、准备、解析和初始化等阶段,并介绍了元数据区、程序计数器、虚拟机栈、堆内存及本地方法栈的作用。通过本文,读者可以深入了解JVM的工作原理,理解类加载器的类型及其机制,并掌握类加载过程中各阶段的具体操作。
|
4月前
|
存储 算法 Java
Object o = new Object()在内存中占几个字节
Object o = new Object()在内存中占几个字节
|
5月前
|
存储 机器学习/深度学习 Linux
程序员必知:关于Linux内存寻址与页表处理的一些细节
程序员必知:关于Linux内存寻址与页表处理的一些细节
49 0
|
5月前
|
程序员 索引
逆向学习汇编篇:内存管理与寻址方式
逆向学习汇编篇:内存管理与寻址方式
52 0
|
6月前
|
C语言 C++
C语言进阶⑭(内存函数_以字节操作)momcpy+mommove+memcmp+memset
C语言进阶⑭(内存函数_以字节操作)momcpy+mommove+memcmp+memset
60 0
|
6月前
|
程序员
内存操作数及寻址方式
内存操作数及寻址方式
91 0
|
6月前
|
存储
汉字和数字站几个字节,估算内存占用情况
该文内容讲述了字符和字节的关系:中文标点占3字节,英文字母或数字占1字节,英文标点也占1字节。1字节等于8字位,1字位是1个二进制数。此外,还介绍了存储单位的换算:1B=8b,1KB=1024B,1MB=1024KB,1GB=1024MB。其中,b代表字位,B代表字节,KB是千字节,MB是兆字节,GB是吉字节。
163 2
|
存储 编译器 C语言
初识C语言指针:内存,字节划分,地址存储,简单使用,指针大小
初识C语言指针:内存,字节划分,地址存储,简单使用,指针大小
|
6月前
|
存储 Linux 程序员
x86的内存寻址方式
在16位的8086时代,CPU为了能寻址超过16位地址能表示的最大空间(因为 8086 的地址线 20 位而数据线 16 位),引入了段寄存器。通过将内存空间划分为若干个段(段寄存器像 ds、cs、ss 这些寄存器用于存放段基址),然后采用段基地址+段内偏移的方式访问内存,这样能访问1MB的内存空间了。
|
存储 缓存 Linux
Linux内核分析与应用2-内存寻址
Linux内核分析与应用2-内存寻址
123 0