我需要针对某些处理器基于内存表优化一组算法。 我发现自己想知道为什么至少自2010年以来,每个英特尔处理器为何每个内核都使用64KB(32KB数据,32KB指令)的L1缓存。

即使引入了其他所有高速缓存以及几乎巨大的L3高速缓存,它们为何仍坚持64KB?

我有什么可以阅读的吗?

是否有一个有效的猜测,如果这个数字在未来5或10年内增加?

我检查了其他供应商,例如Opterons带有64KB + 64KB,但每个模块共享,而Interlagos(例如)每个核心只有16KB,每个模块共享64KB数据缓存。 苹果公司的A7和A8每个内核获得64KB + 64KB,但是其他供应商使用64KB Arm和16KB + 16KB。

目前,我使用8KB表进行设计,但是一旦我不得不将两个表混合在一起,这一点就变得越来越重要。

===============>>#1 票数:0

我不是专家,只是我的两分钱:

L1已集成到内核,这意味着:它共享相同的时钟,并且其大小会影响内核的大小。

第一个更是一个逻辑问题。 您希望L1的速度非常快,与寄存器相比却几乎慢。 您无法通过为L1计时来解决此问题,因为内核也被计时。 硬件高速缓存与软件高速缓存类似,并且搜索它们需要花费时间。 因此,当L1变大时,由于硬件高速缓存解决方案的复杂程度保持不变,因此搜索会变慢。 您可以提高溶液的复杂程度,但这会对空间,能量和热量产生负面影响。

继续保持大小,即如果使L1更大,则需要空间来存储那些位和字节,从而产生相同的空间,能量问题。

因此,您对L1和L2有不同的设计标准,并且通过将它们分开来划分问题,并在两个层次上加以解决。 如果使L1大而慢,则使L1模糊。

阅读:

  ask by Martin Kersten translate from so

未解决问题?本站智能推荐: