存储器 分层的存储体系 虚拟存储器 寄存器与缓存 冯·诺依曼体系结构

时间:2022-05-02 09:00:22

1. 问:冯·诺依曼体系结构的基本原理(或者说设计思想)是什么?

计算机组成原理讨论的基础就是冯·诺依曼体系结构的计算机,其基本设计思想就是存储程序程序控制,具有以下特点:
(1) 采用二进制形式表示数据和指令
(2) 采用存储程序方式
(3) 由运算器、存储器、控制器、输入设备和输出设备五大部件组成计算机系统,并规定了这五部分的基本功能。
冯·诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实现通用图灵机的计算设备,以及一种相对于并行计算的序列式结构参考模型.

2. 由“寄存器与缓存的一部分存在与CPU中,I/O中也有寄存器”引发的联想

分为 体系结构寄存器和非体系结构寄存器

问:寄存器有哪些在CPU中?

CPU包含 运算器 和 控制器,运算器中有寄存器组。控制器中有指令寄存器(IR),状态寄存器。

问:指令寄存器(IR)与程序计数器(Program Counter (PC))的区别?

联系:*控制器简称控制器,包括程序计数器,指令寄存器,指令功能译码器,操作控制器,时序产生器.
区别:程序计数器(Program Counter (PC))用来指示电脑下一步要运行的指令序列。指令寄存器:用来保存当前正在执行的指令。
程序计数器依照特定机器的细节而不同,他可能是保存着正在被运行的指令,也可能是下一个要运行指令的地址。程序计数器在每个指令周期会自动地增加,所以指令会正常地从寄存器中连续地被取出。
还记得CS和IP吗?汇编语言中经常提到的。CS和IP岁8086CPU中两个最关键的寄存器。
8086CPU有四个段寄存器:CS DS SS ES.当CPU要访问内存时由这四个段寄存器提供内存单元的段地址
IP,即程序计数器,又叫指令指针寄存器,指令地址指示器,instruction address register (IAR),在x86微处理器中称为指令指针(Instruction Pointer (IP)),用来存储偏移地址(offset address)。
指令寄存器:用来保存当前正在执行的指令。

存储器的两个层次

  1. 主存–缓存 主要提高速度,采用硬件方式实现。
  2. 主存–辅存 主要提高容量,采用软硬件结合方式实现。

为什么使用分层的存储体系

因为任何一个存储器都达不到“高速度,大容量,低价格”的目的,只能采用分层结构,形成存储体系。
存储体系包含两个方面:

  1. 两个或两个以上的存储介质
  2. 用软件,硬件或者软硬件结合的方式把各存储介质连接到一起,成为一个整体。
    也就是说,对程序员来说,存储体系是透明的,使用者不需要考虑它内在的结构,不需要考虑它的分层结构,信息的调入调出都是体系自动完成的,不需要程序员介入。

关于虚拟存储器

为解决内存小而作业大、作业多的矛盾, 以及执行过程中只是把当前运行需要的那部分程序和数据装入内存。 所以,操作系统和CPU把各级存储器统一管理起来。就是说, 应该把一个程序当前正在使用的部分放在内存, 而其余部分放在磁盘上,就启动执行它。操作系统根据程序执行时的要求和内存的实际使用情况, 随机地对每个程序进行换入/换出。

这样, 就给用户提供一个比正式的内存空间大的多的地址空间, 这就是虚拟存储器。所谓虚拟存储器是用户能作为可编址内存对待的存储空间, 在这种计算机系统中虚地址被映射成实地址。简单地说,虚拟存储器:是由操作系统提供的一个假想的特大存储器。就是说, 虚拟存储器并不是实际的内存,它的大小比内存空间大的多; 用户感觉所能使用的“内存”非常大, 但这是操作系统对物理内存的扩充。

它的物质基础是:二级存储器结构、和动态地址转换(DAT)。

机构虚拟存储器的基本特征:

虚拟扩充。 虚拟存储器不是物理上扩充内存空间, 而是逻辑上扩充了内存容量。
部分装入。 每个作业不是全部一次的装入内存, 而是分成若*分。
离散分配。 一个作业分成多个部分,没有全部装入内存。 即使装入内存的那些部分也不必占用连续的内存空间, 而是“见缝插针”。
多次对换。 在一个进程运行期间, 它所需的全部程序和数就要分成多次调入内存。
注意: 虚拟存储器的容量虽然提供了特大的地址空间, 用户在编程时一般不应考虑可用空间有多大。 但是, 虚拟存储器的容量不是无限大的。 它主要受两方面的限制:(1)机器指令中表示地址的二进制数是有限的;(2)外存的容量也是有限的。

指令流水线

  1. 指令预取部件。它通过总线接口部件,将要执行的指令从主存中取出,送入指令排队机构中排队。
  2. 指令译码部件。从指令排队机构中读出指令并译码,再送入译码指令队列排队供执行部件使用。

差不多所有的冯·诺伊曼CPU的运作原理可分为四个阶段:提取、解码、执行和写回。

详情
执行部件 取出执行指令并执行后,若译码指令队列有空闲单元,指令译码部件就从指令预取部件读出指令并译码,指令预取部件也不断向总线接口部件发出取指令的请求,若其空闲则响应之,从主存取指令。