- 博客(7)
- 收藏
- 关注
原创 物理内存探测
在内核建立相应的内存管理区之前,先要进行物理内存的探测,获取相关的内存信息。对于X86架构,内核在void main()中调用detect_memory()来进行物理内存的探测。void main(void){ ... ... /* Detect memory layout */ detect_memory(); ... ...}
2012-04-26 14:09:04 6071 3
原创 Linux物理内存概述
Linux可以支持大量的架构,所以需要用一种与架构无关的方式去描述内存。在linux的内存管理中,我们首先要明确的一个概念就是NUMA(Non-Uniform Memory Access,关于NUMA的介绍可以参考我前面的文章)。很多大型机器都采用NUMA架构,将内存和CPU分为很多组,每一组称为一个节点(node)。节点与节点之间的互相访问,会因为“距离”的不同导致不同的开销。Linux通过st
2012-04-26 09:43:06 8460 4
原创 非一致性内存架构(NUMA)
一、基本概念 非一致性内存架构(Non-uniform Memory Architecture)是为了解决传统的对称多处理(Symmetric Multi-processor)系统中的可扩展性问题而诞生的。在对称多处理系统中,处理器共享北桥中的内存控制器来达到共同访问外部内存和IO的目的,也就是说所有的处理器对内存和I/O的访问方式和开销都是相同的。在这
2012-04-24 15:36:44 14260 1
原创 CPU cache(下)
四、cache的写策略 内存的数据被加载到了cache后,在某个时刻其要被写回内存,对于这个时刻的选取,有如下几个不同的策略。 write-through:所谓write-through,就是指在CPU改写一个cache line后,cache line也被CPU写回内存。这种策略保证了在任何时刻,内存的数据和cache中的数据都是同步的,因此write-thr
2012-04-20 16:32:44 7963 3
原创 CPU cache(中)
三、cache和内存的关联方式(associativity) 根据cache和内存之间的映射关系的不同,cache可以分为三类:一类是全关联cache(full associative cache),一种是直接关联cache(direct mapped cache),还有一种是N路关联cache(N-ways associative cache). 1.全相联型ca
2012-04-18 21:56:39 11567 2
原创 CPU cache(上)
一、CPU,内存和cache之间的关系 如今的CPU和二十几年前的相比,其精密程度和运作速度可谓天壤之别。在以前,CPU的工作频率和内存总线的频率是处于一个等级的,CPU对内存的访问速度也只是比对寄存器的访问速度要慢那么一点儿,所以CPU直接访问内存是再合理不过了。但是近十几年来,CPU发展迅猛,其工作频率大大增加,而内存的发展却无法跟上大哥的步伐。当然,并
2012-04-18 13:46:27 15011 4
原创 从硬件的系统结构开始
我们的电脑主机上都有两个标准化的部分:北桥和南桥。它们是CPU和内存以及其他外设沟通的渠道。下图给出了CPU,内存,南北桥以及其他总线之间的关系。 我们可以看到,所有的CPU都共用一条FSB总线(the Front Side Bus),与北桥相连。而北桥中有一个内存控制器(memory controller),它决定了RAM的类型,换句话说,不同的R
2012-04-16 13:13:41 4615 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人