📜  影响缓存内存性能的因素

📅  最后修改于: 2021-06-28 18:56:47             🧑  作者: Mango

计算机由三个主要集团组成。 CPU,内存和I / O系统。计算机系统的性能在很大程度上取决于CPU从内存中提取指令并写入同一内存的速度。计算机正在使用高速缓存存储器来弥合处理器执行指令的能力与从主存储器提取操作所花费的时间之间的差距。

程序执行缓存所需的时间取决于

  • 执行任务所需的指令数。
  • 执行所需任务所需的平均CPU周期数。
  • CPU的循环时间。

在对任何产品或功能进行工程设计时,设备的通用结构保持不变,这改变了设备的特定部分,由于客户的需求,该部分需要进行优化。工程师如何改进设计?简单地说,我们首先建立一个将输入连接到输出的数学模型。

Execution Time = Instruction Count x Cycles per Instruction x Cycle Time
=Instruction Count x (CPU Cycles per Instr. + Memory Cycles per Instr.) x Cycle Time
=Instruction Count x [CPU Cycles per Instr. +(References per Instr. x Cycles per References)] x Cycle Time

这四个方框代表了四个主要的痛点,可以解决这些痛点,从而对机器的性能产生积极的或负面的影响。等式的第一个元素执行函数所需的指令数量取决于指令集体系结构,并且在所有实现中都是相同的。它也依赖于编译器的设计来生成有效的代码。需要优化编译器以使用更少的执行指令来执行功能。

每条指令的CPU周期也取决于编译器的优化,因为可以使编译器选择CPU密集度较低且路径长度较短的指令。有效地流水线指令还可以改善此参数,从而使指令最大程度地优化硬件资源。

每条指令的平均内存引用数和每条内存参考的平均周期数相结合,形成每条指令的平均周期数。前者是编译器的体系结构和指令选择算法的函数。在体系结构的各个实现中,这是恒定的。

指令集架构:

  • 精简指令集计算机(RISC)–
    精简指令集计算机(RISC)是最流行的指令集之一。 ARM处理器使用该芯片,它们是产品中使用最广泛的芯片之一。
  • 复杂指令集计算机(CISC)–
    复杂指令集计算机(CISC)是针对非常专业的操作的指令集体系结构,已经对其进行了充分的研究和研究,以至于处理器微体系结构也仅为该特定目的而构建。
  • 最小指令集计算机(MISC)–
    与现代处理器相比,可以将8085的最小指令集计算机(MISC)视为此类。
  • 显式并行指令计算(EPIC)–
    显式并行指令计算(EPIC)是在超级计算机中广泛使用的指令集。
  • 一台指令集计算机(OISC)–
    一台指令集计算机(OISC)仅使用汇编语言。
  • 零指令集计算机(ZISC)–
    这是计算机上的神经网络。

编译技术:

  • 单遍编译器–
    此源代码直接转换为机器代码。
  • 两遍编译器–
    源代码被转换为中间表示,该中间表示被转换为机器代码。
  • 多通道编译器–
    在此源代码中,从前端将其转换为中间代码,然后在中端之后将其转换为中间代码,然后传递给后端,该后端将转换为机器代码。

CPU实现:

微体系结构取决于过程中涉及的工程师的设计理念和方法。举一个简单的例子,制作一个电路,从共用插孔接收输入信号,使它通过放大器,然后将数据存储在缓冲器中。

可以采用两种方法来解决该问题:要么在开头放置一个缓冲区,然后放置两个放大器,然后绕过其中的一个电流,这对于假设应该放大两种不同类型的信号还是存在微小差异是有意义的。在放大器的饱和区域。或者,我们可以建立一条通用的电流路径,并引入对存储数据的缓冲区的时间依赖性,从而完全不需要缓冲区。

处理器的VLSI微体系结构中的微小差异会在两家不同公司的同一指令集实现中产生巨大的时序差异。

缓存和内存层次结构:

这又取决于构建系统的用例。使用通用计算机(也称为“个人计算机”)可以执行多种数学计算并产生广泛的结果,但是对于硬实时系统中的非实时系统而言却相当准确,这将是非常不明智的。

很大的不同将是访问缓存中的数据所花费的时间。

可以在您的计算机上运行一个简单的实验,借此您可以找到特定型号处理器的缓存大小,并尝试访问该数组周围的数组元素,而尝试访问大于缓存的数组时,将会观察到速度大大降低尺寸。