Computer science 处理器是否可以直接使用RAM?

Computer science 处理器是否可以直接使用RAM?,computer-science,ram,cpu-architecture,processor,motherboard,Computer Science,Ram,Cpu Architecture,Processor,Motherboard,是否有一段时间处理器直接使用ram进行操作,而不涉及高速缓存? 或者它的类似处理器总是从缓存中获取数据,而缓存从Ram中获取数据?CPU的处理速度远高于Ram的速度,这就是为什么我们使用缓存,它可以在一个周期内获取数据。如果缓存未命中,数据将从ram中取出并移动到缓存中,然后执行该过程。假设处理器直接与ram一起工作。例如,RAM需要10个周期来获取一块数据,而CPU在剩余的9个周期中暂停。如果将其移动到缓存,则数据可以作为一个整体使用,而不会暂停。这就是为什么它不使用RAM RAM也更快,唯一

是否有一段时间处理器直接使用ram进行操作,而不涉及高速缓存?
或者它的类似处理器总是从缓存中获取数据,而缓存从Ram中获取数据?

CPU的处理速度远高于Ram的速度,这就是为什么我们使用缓存,它可以在一个周期内获取数据。如果缓存未命中,数据将从ram中取出并移动到缓存中,然后执行该过程。假设处理器直接与ram一起工作。例如,RAM需要10个周期来获取一块数据,而CPU在剩余的9个周期中暂停。如果将其移动到缓存,则数据可以作为一个整体使用,而不会暂停。这就是为什么它不使用RAM


RAM也更快,唯一的一点是查找数据需要更多的时间。如果它发现剩余的数据稍微快一点

CPU的处理速度远远高于RAM的速度,这就是为什么我们使用缓存,它可以在一个周期内获取数据。如果缓存未命中,数据将从ram中取出并移动到缓存中,然后执行该过程。假设处理器直接与ram一起工作。例如,RAM需要10个周期来获取一块数据,而CPU在剩余的9个周期中暂停。如果将其移动到缓存,则数据可以作为一个整体使用,而不会暂停。这就是为什么它不使用RAM


RAM也更快,唯一的一点是查找数据需要更多的时间。如果它发现剩余的数据稍微快一点

不正常,不,除非软件有意绕过或禁用现代CPU上的缓存

DRAM的延迟可能为70 ns,在4GHz CPU上为280个周期。这足够Skylake CPU以每周期4条指令的速度执行约1100条指令。但它对内存并行性的限制是大约12次未命中的缓存。因此,缓存对于性能非常重要,即使在无序执行的情况下也是如此

有趣的事实是:是的,在TLB未命中后访问页表时,P5奔腾CPU和更早版本中的MMU绕过了缓存。来源:前英特尔CPU架构师Andy Glew在P6上的回答:

包括现代x86在内的现代CPU确实通过其数据缓存访问页表,不过:


x86具有缓存绕过存储的
movnt
指令,以避免大内存集的缓存污染。在带宽方面存在权衡。有关具有ERMSB功能的CPU上的
rep movsb
的NT存储和无RFO存储的更多信息,请参阅。可能其他一些体系结构也有类似的特性


您还可以将物理地址空间的范围设置为不可缓存。(或在x86上,每4k虚拟页面的页面表条目中有页面属性表设置。)

通常情况下,这是针对MMIO区域(内存映射I/O)执行的,“内存”实际上是网卡等设备上的I/O寄存器,而不是DRAM。因此,每次加载/存储都会产生明显的副作用,必须禁止推测性预取。(并且每个存储必须产生单独的核心外写入事务,例如PCIe消息。)



此外,x86 CPU具有控制寄存器,可用于禁用缓存,使其速度极慢。同样,我假设其他ISA也有类似的功能。

不正常,不,除非软件有意绕过或禁用现代CPU上的缓存

DRAM的延迟可能为70 ns,在4GHz CPU上为280个周期。这足够Skylake CPU以每周期4条指令的速度执行约1100条指令。但它对内存并行性的限制是大约12次未命中的缓存。因此,缓存对于性能非常重要,即使在无序执行的情况下也是如此

有趣的事实是:是的,在TLB未命中后访问页表时,P5奔腾CPU和更早版本中的MMU绕过了缓存。来源:前英特尔CPU架构师Andy Glew在P6上的回答:

包括现代x86在内的现代CPU确实通过其数据缓存访问页表,不过:


x86具有缓存绕过存储的
movnt
指令,以避免大内存集的缓存污染。在带宽方面存在权衡。有关具有ERMSB功能的CPU上的
rep movsb
的NT存储和无RFO存储的更多信息,请参阅。可能其他一些体系结构也有类似的特性


您还可以将物理地址空间的范围设置为不可缓存。(或在x86上,每4k虚拟页面的页面表条目中有页面属性表设置。)

通常情况下,这是针对MMIO区域(内存映射I/O)执行的,“内存”实际上是网卡等设备上的I/O寄存器,而不是DRAM。因此,每次加载/存储都会产生明显的副作用,必须禁止推测性预取。(并且每个存储必须产生单独的核心外写入事务,例如PCIe消息。)



此外,x86 CPU具有控制寄存器,可用于禁用缓存,使其速度极慢。同样,我假设其他ISA也有类似的功能。

RAM比什么更快??单核中的L1d缓存速度比DRAM快,在现代x86上为32、64或128字节/周期(以CPU核心时钟速度),因此在Skylake-X上高达512GB/s。DDR4 DRAM即使在突发传输期间,每DIMM的运行速度也高达3200 MT/s(每秒8字节块的兆次传输)。这就是3200*8=25.6Gb/s。即使有多个DRAM通道,这仍然比L1d缓存带宽慢得多,而且现代CPU有多个内核,每个内核都有自己的L1d缓存。或者你是说延迟?缓存SRAM固有的延迟比DRAM低,这就是为什么SRAM用于快速缓存的原因。即使DRAM和缓存一样直接连接到CPU,它也会变慢。RAM比什么快??单核中的L1d缓存比DRAM快,在现代x86上每周期32、64或128字节(以CPU核心时钟速度),因此在Skylake-X上最高可达512GB/s。即使在突发传输期间,DDR4 DRAM的运行速度也高达3