0
点赞
收藏
分享

微信扫一扫

(第17章)LinuxC本质中计算机体系结构基础


文章目录

  • ​​一、冯诺伊曼体系结构的特点​​
  • ​​二、内存与地址​​
  • ​​三、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.对各种存储器总结如下​​

一、冯诺伊曼体系结构的特点

(第17章)LinuxC本质中计算机体系结构基础_物理地址

二、内存与地址

(第17章)LinuxC本质中计算机体系结构基础_物理地址_02

  • 内存与此类似,每个内存单元有一个地址(Address),内存地址是从0开始编号的整数,CPU通过地址找到相应的内存单元,取其中的指令或者读写其中的数据。
  • 以前讲过的 int 、 float 等多字节的数据类型保存在内存中要占用连续的多个地址,这种情
    况下数据的地址是它所占内存单元的起始地址

三、CPU

(1)CPU做的事情是
CPU总是周而复始地做同一件事:从内存取指令,然后解释执行它,然后再取下一条指令,再解释执行。

(2)CPU最核心的功能单元包括

(第17章)LinuxC本质中计算机体系结构基础_物理地址_03


从内存中读一个数到寄存器,即从内存中往CPU读数据的过程如下:

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_04


解释说明如下:

  • 上图中画了32条地址线和32条数据线,CPU寄存器也是32位,可以说这种体系结构是32位的;
  • 地址线、数据线和CPU寄存器的位数通常是一致的,从上图可以看出数据线和CPU寄存器的位数应该一致;
  • 32位计算机有32条地址线,地址空间(Address Space) 从0x00000000到0xffffffff,共4GB;(寻址范围是由地址线个数确定的,而不是CPU位数确定的。CPU的地址总线根数决定了能找到多少个字节(Byte),数据总线的宽度决定了能够一次传送多少个二进制位(bit) )

(3)内总线和外总线的区别

  • 上面的例子所说的**本节所说的地址线、数据线是指CPU的内总线;**是直接和CPU的执行单元相连的;
  • 内总线经过MMU和总线接口的转换之后引出到芯片引脚才是外总线。外地址线和外数据线的位数都有可能和内总线不同,例如32位处理器的外地址总线可寻址的空间可以大
    于4GB。

四、设备

(第17章)LinuxC本质中计算机体系结构基础_寄存器_05

(1)总线和设备寄存器的含义

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_06

(2)内存映射I/O,端口I/O

(第17章)LinuxC本质中计算机体系结构基础_寄存器_07

(3)各种各样的总线怎么来的?

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_08


(第17章)LinuxC本质中计算机体系结构基础_寄存器_09

(4)保存在硬盘上的程序是不能被CPU直接取指令执行的!!

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_10

(5)操作系统和其它用户程序的不同点

(第17章)LinuxC本质中计算机体系结构基础_寄存器_11

(6)访问设备和访问内存的不同

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_12

(7)事实上Linux内核源代码中绝大部分是设备驱动程序

(第17章)LinuxC本质中计算机体系结构基础_物理地址_13

五、现代操作系统普遍采用虚拟内存管理VMM中内存管理单元MMU

  • 虚拟内存管理(Virtual Memory Management) 机制;
  • MMU(Memory Management Unit,内存管理单元);

1.虚拟地址和物理地址

(第17章)LinuxC本质中计算机体系结构基础_物理地址_14


(第17章)LinuxC本质中计算机体系结构基础_寄存器_15


(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_16

2.虚拟地址通过页表映射成物理地址

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_17

3.启用MMU后,程序中使用的地址都是虚拟地址

(第17章)LinuxC本质中计算机体系结构基础_寄存器_18

4.内存保护机制:CPU用户模式和CPU特权模式

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_19

5.操作系统把虚拟地址空间划分为用户空间和内核空间

(第17章)LinuxC本质中计算机体系结构基础_寄存器_20

so,段错误是如何产生的?

(第17章)LinuxC本质中计算机体系结构基础_物理地址_21

六、存储器

1.现代计算机都把存储器分成若干级

按照离CPU由近到远的顺序依次是CPU寄存器、Cache、内存、硬盘,越靠近CPU的存储器容量越小但访问速度越快。

下图给出了各种存储器的容量和访问速度的典型值。

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_22

2.对各种存储器总结如下

(第17章)LinuxC本质中计算机体系结构基础_虚拟地址_23


举报

相关推荐

0 条评论