计算机之父:冯·诺依曼。
1、计算机体系结构:运算器 控制器 存储器 输入输出设备。
运算器和控制器组合可以称为cpu,cpu的核心组成还有寄存器。
运算器:负责运算,运算器从存储器上去拿数据并把运算结果还放到存储器里。但是他从存储器上那 个位置读取,运算后又放到存储器的那个位置?
控制器:负责运算器到存储器上去取数据
存储器:内存,易失性存储设备。每一个存储单位是8位。
2、程序:指令+数据组成。
加电自检过程:cpu要想执行指令,指令必须在内存当中,而指令必须是先放好在内存中才能执行的,但是计算机刚开机那一刻根本不 知道有键盘、显示器等。内存是易失性存储器,开机时里面没有任何数据和指令,如何实现的呢?ok,他是借助于外围 设备(如硬盘等)来实现的。在开机那一刻,芯片里的指令会映射给内存(这是有硬件逻辑结构来完成的),之后cpu 才能读取指令进行自检。
RAM:随机访问存储器。就是常说的内存。
ROM:只读存储器,就是一堆指令,可以映射给内存RAM。就是常说的硬盘和计算机里的芯片(芯片里数据开机前不会丢失)。
3、外围设备:硬盘、键盘、显示器、鼠标等。那么对于计算机而言,他是如何区分这些外围设备的呢?很简单,计算机内部有个控制 芯片,控制芯片通过针脚和cpu相连,而每一个针脚对应一个外围设备。外围设备都是通过中断机制来与计算机进行交互 信息的,外围设备越多,计算机性能越低。
如果是一台繁忙的服务器,网卡要不停地处理数据,试想一下,计算机与网卡交互,一秒钟要中断很多次,可想而知计算机 性能会受到多大影响。
3.1、轮询:就是计算机不停地对外围设备进行查看。效率低。
3.2、中断interrupt:键盘敲击后,上电通知cpu,然后cpu停下手头工作去查看键盘,这种机制叫中断机制。cpu不用时时对外 围设备进行查看是谁工作的,谁通知的自己,然后cpu在过来查看。这里有一个问题,中断时cpu如何知道是键盘还是鼠标 通知的信息呢?很简单,计算机内部有个控制芯片,控制芯片通过针脚和cpu相连,而每一个针脚对应一个外围设备。
4、前端总线FSB:
北桥设备:离cpu近,高速总线控制器。早期用来连接内存。硬件调优的时候,可以把外围设备从南桥直接接在北桥上。当今大多数都 是内存直接连接到cpu,这样速度更快,北桥只负责连接南桥。
南桥设备:离cpu远,低速总线控制器。早期用来连接外围设备。所有外围设备连接到南桥,南桥通过一根总线连接到北桥。
主频:赫兹就是频率,单位时间内发生的周期数。
假设cpu工作频率1g赫兹,而内存1m赫兹,这样就不协调。这时候就需要一个承上启下的东西缓存,有一级缓存二级缓存,缓存本身 造价比较高。缓存小于内存,一级缓存小于二级缓存。在一级缓存之上还有个寄存器,寄存器速度和cpu速度差不多。局部性原理: 时间上局部性和空间上局部性。
有些程序员开发的软件很快,原因就是他懂局部性原理,利用局部性原理进行开发,性能非常好。
5、程序运行是依赖芯片某根线来实现的。底层芯片不同,其上运行的程序也不能相互兼容。假如我在AMD上开发一个软件,这个软件一定 能在intel上运行吗?
机器语言:其实就是二进制语言,机器能识别的语言。
低级语言:也叫微码,也叫汇编语言。是人能够识别的语言,这边语言被集成到芯片当中,也就是芯片自带的语言,而这个语言是无法移植 的。同时还有个编译器,把汇编语言编译成二进制让计算机能够识别。
高级语言:本身需要先转换成汇编在翻译成机器语言。要结合一些额外的机制来磨合(承上启下的一个接口API库)底层芯片的不同。
硬件架构:cpu架构类型
ARM:移动硬件平台架构,只负责设计芯片。生产都是有三星高通负责的。安卓核心就是linux,苹果的核心是unix
X86:就是英特尔或AMD硬件平台硬件平台架构。英特尔还有一种cpu叫安腾,从惠普收购的。惠普也有叫alpha,从DEC公司收购的,芯片 特点省电。UltraSparc被orale收购了,Power是IBM的。
操作系统:
本文出自 “计算机原理解析” 博客,请务必保留此出处http://2556110.blog.51cto.com/2546110/1758721
原文地址:http://2556110.blog.51cto.com/2546110/1758721