Cache and Memory Subsystem

Skylake Client微架构的缓存层级结构具有如下的增强:

  • 较前代具有更高的带宽
  • 更大的缓冲区,可以同时处理更大的读存与写存操作
  • 处理器可以同时并行地做两个页面走查(page walk),前几代只能做单页面走查。

注:据wikipedia https://en.wikipedia.org/wiki/Page_table

if there is a TLB miss, the memory management unit, or the operating system TLB miss handler, will typically look up the address mapping in the page table to see whether a mapping exists. This is called a page walk.

当发生TLB未中是,内存管理单元,或操作系统的TLB未中处理程序,会在页表中查询要访问的地址是否存在。这个过程叫做页面走查。

 

  • 跨页面读存储器数据产生的性能损失从前代微架构的100个周期下降为5个周期。
  • 支持CLFLUSHOPT指令刷空(flush)缓存行;对于被刷空(即回写到内存)的数据,使用SFENCE指令管理访存操作的排序。
  • 降低软件预取指令指定空指针(NULL pointer)时产生的性能损失
  • 二级缓存从8路组相联切换为4路组相联。

表:Skylake Client微架构高速缓存参数

Level

Capacity/

Associativity

Line Size

(bytes)

Fastest Latency[1]

(cycles)

Peak Bandwidth (bytes/cyc)

Sustained Bandwidth (bytes/cyc)

Update Policy

L1D

32KB/8

64

4

96 (2*32B load + 1*32B store)

~81

Writeback

LII

32KB/8

64

N/A

N/A

N/A

N/A

L2

256KB/4

64

12

64

~29

Writeback

L3 (shared)

Up to 2MB per Core /

Up to 16 ways

64

44

32

~18

Writeback

注1:软件可见的延迟根据访问模式以及其他因素会产生变化。

TLB的层级结构由专用的指令TLB,数据TLB,以及混和式的二级TLB。下表中的partition列指明当超线程启用时,TLB资源的分配/共享策略。

表:Skylake Client微架构的TLB参数

Level

Page Size

Entries

Associativity

Partition

指令ITLB

4KB

128

8

Dynamic

指令ITLB

2MB/4MB

8 per thread

 

fixed

数据DTLB

4KB

64

4

Fixed

数据DTLB

2MB/4MB

32

4

Fixed

数据DTLB

1GB

4

4

Fixed

二级TLB

4KB/2MB/4MB

1536

12

Fixed

二级TLB

1GB

16

4

Fixed