作者:瀚高PG实验室 (Highgo PG Lab)
OS:本身就是一层虚拟机。
OS将操作系统底层硬件抽象成了(virtual machine)
- 计算机基本体系结构
核心五大部件:
CPU :运算器,控制器,寄存器 三大核心部件。
运算器:运算功能,逻辑运算
控制器:控制指令与数据的存取过程 PS:程序=指令+数据
寄存器:比如存放中间运算结果,会经常被刷新。
RAM :一个字节是一个存储单元,叫cell。
CPU必须有寻址的能力,内存里这些cell会被按照16进制进行排序。
那么CPU是如何寻址呢?通过一个芯片: North Bridge :北桥,通过该芯片,进行电路关联。
32bit 64bit 32条电路 64条电路。
32位和64位的区别:
32位最多能代表2^32种组合,即4个G,即最多找到4G个存储单元。
64位 存储 海量内存了。
这就是寻址。
除了寻址,还需要读取内存数据。
CPU的线路是复用的,加一些控制位。
PAE:物理地址扩展, physical address extension :32bit,+4bit =-=
Redhat OS 内核也得支持PAE技术。(如rhel5就算使用了PAE=,也不支持64G内存。rhel6已经不使用pae了)
内核也需要内存。
这就意味着,对于某些单进程服务,再大内存也没有意义。
比如mysql,它就是单进程,多线程模型,而mysql本身在实现数据处理的时候,本身依赖于更大内存。
单线程服务的话,只能依赖一个cpu,这就意味着可使用的内存大大减少。32位较明显,64位除外。
比起CPU本身的时钟频率,1666内存慢得多。更加上CPU是多核的。
两者速度不匹配,提供缓存可以有效提高速度。
提供这种机制的前提是什么?
将热区的数据缓存起来,用的最多的数据保存在缓存中。
如果缓存中数据已经满了,可以通过采取某种置换策略,将这些数据置换出去,如LRU 最近最少使算法,还有如 mrru-
程序局部性:空间局部性,时间局部性。
空间局部性:
所以所有的缓存在加载数据的时候,会一并将其附近的数据加载进缓存。
时间局部性:
一段数据被访问一次,很快时间又会被访问。
如果你在编程的时候, 利用这种原理,可以使得应用运行的更加快。
CPU正是引用了缓存机制,使得这种差异得到了弥补。
本文介绍了计算机的基本体系结构,包括CPU、RAM等核心部件的功能,并深入探讨了内存寻址机制,从32位到64位的发展以及内存管理技术如PAE的作用。此外,还讨论了缓存机制如何缓解CPU与内存之间的速度差异。
1417

被折叠的 条评论
为什么被折叠?



