文章预览
引言 — 这篇文章来自Litrin,原文发表于其知乎及个人开源小站 。 对目前主流的x86平台,CPU的缓存(cache)分为L1,L2,L3总共3级。也有部分的文章中有FLC(first-level cache), MLC(mid-level cache), LLC (last-level cache)的方式区分目前的3级缓存。CPU cache通过比内存(Dram)有更低的时延达到了加速数据读取的效果。 作为Linux的用户,可以使用系统默认安装的lscpu命令简单的列出CPU各级缓存的大小,如我用的一台AMD 7742 CPU具有32K的L1i L1d;512K的L2以及可见的16M的L3(这里埋个伏笔)。 欢迎加入自动驾驶实战群 I. 各级缓存的用途 首先说说L1i和L1d的区别,i指的是instruction指令缓存,d是数据data缓存。作为冯·诺依曼体系的计算机,x86价格的指令和数据在内存中是统一管理的。但由于两者内容访问特性的不同(指令刷新率更低且不会被复写),L1的缓存是做了区分的。当
………………………………