Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 什么时候有记忆;“关闭”;到处理器?_Multithreading_Performance_Caching_Memory_Cpu - Fatal编程技术网

Multithreading 什么时候有记忆;“关闭”;到处理器?

Multithreading 什么时候有记忆;“关闭”;到处理器?,multithreading,performance,caching,memory,cpu,Multithreading,Performance,Caching,Memory,Cpu,由于普通计算机的RAM(与CPU相比)相对较慢,因此优化内存使用非常重要。我大致了解缓存是如何用来掩盖糟糕的内存性能的 我一直在读到,为了获得良好的性能,内存必须靠近处理器,这一点很重要。让内存“靠近”处理器到底意味着什么?这是否指缓存内存(缓存离处理器更近)?或者,主内存的不同部分之间的访问速度是否存在差异?它指的是缓存。尝试搜索L1、L2、L3缓存。L1是最近的,即当CPU想要在内存中查找某些数据时,它将访问最近的数据(L1)并进行检查。如果在这里找不到,它将随后进入较低级别,最后进入主内存

由于普通计算机的RAM(与CPU相比)相对较慢,因此优化内存使用非常重要。我大致了解缓存是如何用来掩盖糟糕的内存性能的


我一直在读到,为了获得良好的性能,内存必须靠近处理器,这一点很重要。让内存“靠近”处理器到底意味着什么?这是否指缓存内存(缓存离处理器更近)?或者,主内存的不同部分之间的访问速度是否存在差异?

它指的是缓存。尝试搜索L1、L2、L3缓存。L1是最近的,即当CPU想要在内存中查找某些数据时,它将访问最近的数据(L1)并进行检查。如果在这里找不到,它将随后进入较低级别,最后进入主内存(RAM),然后进入辅助内存(硬盘)。
通常,靠近CPU的内存会更小更快,而距离更远的内存会更大更慢,这是指缓存。尝试搜索L1、L2、L3缓存。L1是最近的,即当CPU想要在内存中查找某些数据时,它将访问最近的数据(L1)并进行检查。如果在这里找不到,它将随后进入较低级别,最后进入主内存(RAM),然后进入辅助内存(硬盘)。
通常,靠近CPU的内存会更小更快,而距离更远的内存会更大更慢。典型的内存体系结构包括以下级别:

  • CPU寄存器
  • 一级缓存
  • 二级缓存
  • 三级缓存
  • 连接到同一CPU插槽的RAM
  • 连接到其他CPU插槽的RAM
内存访问时间按此顺序减少。形容词“close”指的是这个顺序,例如一级缓存比二级缓存更近


如果性能很重要,您应该让内存尽可能靠近处理器核心。然而,形容词“close”本身令人困惑。

一个典型的内存体系结构由以下级别组成:

  • CPU寄存器
  • 一级缓存
  • 二级缓存
  • 三级缓存
  • 连接到同一CPU插槽的RAM
  • 连接到其他CPU插槽的RAM
内存访问时间按此顺序减少。形容词“close”指的是这个顺序,例如一级缓存比二级缓存更近


如果性能很重要,您应该让内存尽可能靠近处理器核心。然而,形容词“close”本身令人困惑。

可能它的意思是物理上更接近。;)无论如何
优化内存使用非常重要
是的,如果您是硬件/os开发人员。除此之外,没人在乎。现在是二十一世纪,我们不必再去想这些事情了。也许这意味着身体上更接近了无论如何
优化内存使用非常重要
是的,如果您是硬件/os开发人员。除此之外,没人在乎。现在是21世纪,我们不必再考虑这些事情了。对于最新的Intel高性能x86芯片,L3被分片,这样每个“节点”都有一个本地部分,而其他片则根据环形互连上需要的跳数有额外的延迟。以类似的方式,对于多个内存控制器,距离更远但仍然是片上内存控制器的延迟可能稍高。这些因素并不特别重要,但为了更完整,它们似乎值得一提。对于最新的英特尔高性能x86芯片,L3被分片,因此每个“节点”都有一个本地部分,而其他分片具有额外的延迟,这取决于环互连上需要多少跳。以类似的方式,对于多个内存控制器,距离更远但仍然是片上内存控制器的延迟可能稍高。这些因素并不特别重要,但为了更完整,它们似乎值得一提。