天天看点

计算机原理

 计算机之父:冯·诺依曼。

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的。

操作系统:也就是内核,负责管理硬件资源。完成一个程序的启动结束。说白了就是一个通用软件,不负责完成具体工作只是负责协调

多进程:cpu进行分片,内存进行分段来实现多进程多任务。

库:library也是应用程序,但是没有执行入口,只能被其他程序调用。API Application program interface

上一篇: TensorFlow小记
下一篇: 计算机原理

继续阅读