1,CPU的两大巨头
Intel,使用CISC(复杂指令集,只是用20%),主要占领服务器,PC端市场。
ARM,使用RISC(精简指令集),主要占领嵌入式市场。
2,冯.洛伊曼架构和哈佛架构。
冯.洛伊曼架构:
- 以运算单元为中心
- 采用存储程序原理
- 存储器是按地址访问、线性编址的空间
- 控制流由指令流产生
- 指令由操作码和地址码组成
- 数据以二进制编码
哈佛架构:
存储与指令分开,也就存储使用8bit,指令为14bit,分别为两块存储空间,所以在取指令与取数据时不会在总线上发生冲突。
现代PC都是伪.冯.洛伊曼结构,在CPU外部为冯洛伊曼结构,但是在CPU内部增加了指令缓存和数据缓存而将指令与数据分开。
3,linux查看cpu核数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
4,CPU的使用
Intel的超线程技术,增加片上20%的面积为开销,来充分利用片上资源,使得单核上可以运行多个线程,但是并不能完全并行。
CPU的cpupower调频,可设置CPU的频率。
注意在使用多线程编写程序时,要将线程与核进行绑定(设置线程亲缘性),不让在给线程分配核时是不确定的,可参考http://blog.csdn.net/wuhui_gdnt/article/details/51280906。