文章目录
- 一、冯诺伊曼体系结构的特点
- 二、内存与地址
- 三、CPU
- (3)内总线和外总线的区别
- 四、设备
- (1)总线和设备寄存器的含义
- (2)内存映射I/O,端口I/O
- (3)各种各样的总线怎么来的?
- (4)保存在硬盘上的程序是不能被CPU直接取指令执行的!!
- (5)操作系统和其它用户程序的不同点
- (6)访问设备和访问内存的不同
- (7)事实上Linux内核源代码中绝大部分是设备驱动程序
- 五、现代操作系统普遍采用虚拟内存管理VMM中内存管理单元MMU
- 1.虚拟地址和物理地址
- 2.虚拟地址通过页表映射成物理地址
- 3.启用MMU后,程序中使用的地址都是虚拟地址
- 4.内存保护机制:CPU用户模式和CPU特权模式
- 5.操作系统把虚拟地址空间划分为用户空间和内核空间
- so,段错误是如何产生的?
- 六、存储器
- 1.现代计算机都把存储器分成若干级
- 2.对各种存储器总结如下
一、冯诺伊曼体系结构的特点
二、内存与地址
- 内存与此类似,每个内存单元有一个地址(Address),内存地址是从0开始编号的整数,CPU通过地址找到相应的内存单元,取其中的指令或者读写其中的数据。
- 以前讲过的 int 、 float 等多字节的数据类型保存在内存中要占用连续的多个地址,这种情
况下数据的地址是它所占内存单元的起始地址
三、CPU
(1)CPU做的事情是
CPU总是周而复始地做同一件事:从内存取指令,然后解释执行它,然后再取下一条指令,再解释执行。
(2)CPU最核心的功能单元包括
从内存中读一个数到寄存器,即从内存中往CPU读数据的过程如下:
解释说明如下:
- 上图中画了32条地址线和32条数据线,CPU寄存器也是32位,可以说这种体系结构是32位的;
- 地址线、数据线和CPU寄存器的位数通常是一致的,从上图可以看出数据线和CPU寄存器的位数应该一致;
- 32位计算机有32条地址线,地址空间(Address Space) 从0x00000000到0xffffffff,共4GB;(寻址范围是由地址线个数确定的,而不是CPU位数确定的。CPU的地址总线根数决定了能找到多少个字节(Byte),数据总线的宽度决定了能够一次传送多少个二进制位(bit) )
(3)内总线和外总线的区别
- 上面的例子所说的**本节所说的地址线、数据线是指CPU的内总线;**是直接和CPU的执行单元相连的;
- 内总线经过MMU和总线接口的转换之后引出到芯片引脚才是外总线。外地址线和外数据线的位数都有可能和内总线不同,例如32位处理器的外地址总线可寻址的空间可以大
于4GB。
四、设备
(1)总线和设备寄存器的含义
(2)内存映射I/O,端口I/O
(3)各种各样的总线怎么来的?
(4)保存在硬盘上的程序是不能被CPU直接取指令执行的!!
(5)操作系统和其它用户程序的不同点
(6)访问设备和访问内存的不同
(7)事实上Linux内核源代码中绝大部分是设备驱动程序
五、现代操作系统普遍采用虚拟内存管理VMM中内存管理单元MMU
- 虚拟内存管理(Virtual Memory Management) 机制;
- MMU(Memory Management Unit,内存管理单元);
1.虚拟地址和物理地址
2.虚拟地址通过页表映射成物理地址
3.启用MMU后,程序中使用的地址都是虚拟地址
4.内存保护机制:CPU用户模式和CPU特权模式
5.操作系统把虚拟地址空间划分为用户空间和内核空间
so,段错误是如何产生的?
六、存储器
1.现代计算机都把存储器分成若干级
按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快。
下图给出了各种存储器的容量和访问速度的典型值。
2.对各种存储器总结如下