1.什么是哈佛结构和冯诺依曼结构?

冯诺依曼结构釆用指令和数据统一编址,使用同条总线传输,CPU读取指令和数据的操作无法重叠。 哈佛结构釆用指令和数据独立编址,使用两条独立的总线传输,CPU读取指令和数据的操作可以重叠。

哈佛结构的优点:

  1. 可以同时进行指令和数据的访问,提高了处理器的效率
  2. 指令和数据使用不同的总线进行传输,避免了互相干扰

哈佛结构的缺点:

  1. 硬件成本较高,需要额外的存储器和总线;
  2. 存储器的分离可能会导致指令和数据的管理变得更加复杂;
  3. 需要一些额外的机制来解决指令和数据之间的同步问题。

冯诺依曼结构的优点:

  1. 硬件成本较低,只需要一个存储器和一个总线即可;
  2. 程序设计和管理相对简单,只需要一种地址寻址方式;
  3. 可以通过缓存等技术提高存储器的访问效率。

冯诺依曼结构的缺点:

  1. 指令和数据使用同一个总线进行传输,可能会影响数据的访问效率;
  2. 可能会发生指令和数据访问的竞争,影响处理器的效率;
  3. 存储器管理比较复杂,需要一些额外的机制来实现程序的运行。

哈佛结构适合需要高效访问指令和数据的应用场景,如嵌入式系统;而冯诺依曼结构适合通用计算机系统,由于硬件成本低和管理简单的优点,冯诺依曼结构在现代计算机中得到了广泛应用。

2.寄存器和内存的区别?

寄存器(Registers)和内存(Memory)是计算机系统中两个重要的存储组件,它们在功能和特性上有一些区别。

  1. 功能:寄存器是计算机处理器内部的一组高速存储单元,用于存储和操作指令、数据和地址。它们用于存储处理器的临时变量、计算结果和控制信息。寄存器的主要作用是提供高速访问和执行指令的能力。内存是计算机系统中用于存储数据和指令的主要存储区域。它是相对较慢的存储介质,但能够容纳更大量的数据。
  2. 容量:寄存器的容量通常比较有限,每个寄存器可以存储少量的数据。内存的容量相对较大,可以容纳更多的数据。内存的大小通常以字节为单位进行度量,而寄存器的大小可以是几个字节或更小。
  3. 访问速度:寄存器位于处理器内部,由于与处理器直接连接,因此可以以非常高的速度进行读取和写入操作。相比之下,内存位于处理器之外,因此访问速度较慢。
  4. 成本:由于寄存器是处理器内部的组件,其成本相对较高。内存作为独立的存储设备,成本较低。
  5. 层次结构:计算机系统中的存储通常以层次结构的方式组织。寄存器属于顶层,位于处理器内部,速度最快。内存属于中间层,位于处理器外部,速度较快。还可以有更大容量但速度较慢的辅助存储器,如硬盘驱动器。
3.Cache一致性?

缓存一致性是指在多个处理器或多个核心的计算机系统中,它们共享同一个内存区域时,保证每个处理器或核心的缓存中存储的数据是一致的。当一个处理器或核心修改共享内存中的数据时,它必须通知其他处理器或核心,以便它们更新自己的缓存

如果不进行缓存一致性处理,就可能导致不同处理器或核心看到不同的数据,这会引发程序错误,例如死锁、竞争条件等。缓存一致性可以通过硬件或软件实现。

常见的缓存一致性协议包括MESI、MOESI和MESIF等。这些协议都通过一些机制来保证缓存数据的一致性,例如当一个处理器修改共享内存时,它会发送一个信号给其他处理器或核心,通知它们将缓存中的数据置为无效状态,从而保证了数据的一致性。

在多核心和多处理器的计算机系统中,缓存一致性是一个非常重要的概念,它对于系统的性能和正确性都有着重要的影响。