cache和内存
Posted pure
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cache和内存相关的知识,希望对你有一定的参考价值。
CPU与内存
北桥:主桥,主要用来处理高速信号,负责与处理器的联系;CPU通过FSB前端总线来访问内存控制器。
南桥:IO桥,负责IO总线之间的通信,比如PCI总线、SATA、USB等,可以连接光驱、硬盘、键盘等设备交换数据。
架构一:内存控制器集成在北桥中,缺陷:瓶颈有二,北桥和内存,当处理器和外设争相访问内存时,增大了对北桥带宽的竞争;
架构二:将内存控制器单独隔离出来,以协调北桥与某个相应内存之间的交互,北桥可以与多个内存相连;--优点,增加了内存的访问带宽,但没有解决单一北桥芯片的瓶颈;
架构三:NUMA架构,Non-Uniform Memory Archetecture,非一致性内存架构,每个处理器都有本地内存,每个处理器也可以访问其他处理器的内存,不过需要额外的总线;
Cache
Cache存在的意义,匹配处理器和内存之间巨大的速度鸿沟(一般,处理器从内存中直接读取数据要花大概几百个时钟周期),cache一般采用SRAM。
cache的分级,是从成本和生产工艺的角度考虑的,随着nm工艺的推出,三级cache也逐渐集成到处理器内部了。
处理器对一级cache(分为数据cache和指令cache)的访问速度:3~5个时钟周期,对二级cache大约是十几个时钟周期,每个处理器都拥有仅属于自己的一级、二级cache。
处理器对三级cache需要几十个指令周期,在多核处理器内部,多核共有一个三级cache---当某个处理器极大占用三级cache时,会导致其他处理器只能占用极小的容量,从而导致Cache不命中,性能下降,为此,Intel推出CAT技术,采用软件可配置的算法来控制每个核心可以用到的cache大小。
以上是关于cache和内存的主要内容,如果未能解决你的问题,请参考以下文章
Linux [buff/cache]内存缓存占用过高分析和优化
Linux内存机制以及手动释放swap和buffer和cache