Skip to content

Commit 9251e42

Browse files
authored
Merge pull request onlyliuxin#15 from ronanhardiman/master
CPU related
2 parents adb014d + 9073ff3 commit 9251e42

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

group08/406166841/2-26/CPU.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
CPU:中央处理单元(Cntral Pocessing Uit)的缩写,也叫处理器,是计算机的运算核心和控制核心。人靠大脑思考,电脑靠CPU来运算、控制。让电脑的各个部件顺利工作,起到协调和控制作用。
2+
3+
内存:1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;2. 缓存系统中的临时数据。3. 断电后数据丢失。
4+
硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”。
5+
6+
现在我们来说一下CPU、硬盘、内存三者之间的关系。
7+
8+
首先 ,我们先回想一下三者的作用:
9+
10+
CPU:是计算机的运算核心和控制核心,让电脑的各个部件顺利工作,起到协调和控制作用。
11+
硬盘:存储资料和软件等数据的设备,有容量大,断电数据不丢失的特点。也被人们称之为“数据仓库”。
12+
内存:1. 负责硬盘等硬件上的数据与CPU之间数据交换处理;2. 缓存系统中的临时数据。3. 断电后数据丢失。
13+
14+
然后, 我们再来看一下程序是如何执行起来的。
15+
16+
当我们在电脑上打开QQ时(右键-打开 或者双击QQ图标),其实是通过鼠标(输入设备)向CPU发送了一条命令,CPU接收到这条命令后,QQ程序就从硬盘里被加载到内存(加载时不通过处理器,直接从硬盘加载程序到内存里),加载完成后,CPU就开始执行QQ程序。程序执行起来后,CPU可以让QQ程序显示在我们的在显示器上。也就是你看到了QQ 程序运行起来了。如果这个时候,你用QQ截取了一张屏幕的图片,那么这张图片会首先保存到内存,在没有退出截屏状态时,你可以在这张图片上写字、画线条,等你右键保存这张图片的时候,这张图片就会保存到硬盘里。
17+
18+
通过了解一个程序是如何运行起来的,我们就可以了解三者是如何工作的 。
19+
20+
可能有些人会不明白,如果程序是这样执行起来的话,那么为什么CPU不直接在硬盘里执行程序,而非要把程序放到内存后在执行呢?
21+
22+
因为速度差别太大:
23+
内存存取数据的速度比硬盘的存取速度快了10倍, 在某些环境里,硬盘和内存之间的速度差距可能会更大。
24+
25+
而CPU的速度比内存不知还要快多少倍。当我们把程序从硬盘放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序就要快很多。
26+
27+
内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。
28+
29+
内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理!
30+
31+
但内存是带电存储的(一旦断电数据就会消失),而且容量有限,所以要长时间储存程序或数据就需要使用硬盘。
32+
33+
其实内存在这里起了两个作用:
34+
35+
1. 保存从硬盘读取的数据,提供给CPU使用
36+
37+
2. 保存CPU的一些临时执行结果,以便CPU下次使用或保存到硬盘
38+
39+
40+
41+
数字电子中有各种逻辑功能,最简单的是与或非,数字电子中用01表示数据比如你表示 12(10进制)
42+
43+
12 = 8*1+4*1+2*0+1*0表示为 1100你可以试试所有数字都可以这么表示出来,而1和0在数电中用"高电平","低电平"表示,说白了就是通电表示1断电表示0.
44+
45+
硅片上的集成电路可以把这些门电路作到非常小,这样人们用各种逻辑电路就能实现复杂的计算器功能,
46+
47+
我们姑且认为只能算加减乘除吧.你想算什么算式都可以用逻辑电路来实现.但是人们往往想算的东西都比较复杂比如这个
48+
49+
1*1+2*2+3*3+4*4...10000000*10000000
50+
51+
如果一次运算需要一个逻辑电路,那么这就需要2*10000000个逻辑电路,
52+
53+
额,恕我直言,这个成本有点高,
54+
55+
于是人们想到了一个好办法,就是做一个逻辑器件,有2个输入,分别是数据输入,指令输入,数据输入就是输入要运算的两个数据,指令输入输入让这个器件干什么,比如00就是做加法,01就是做减法,10是乘法,11是除法,然后给他配个储存设备用来保存数据,这样我们让这一个设备不断的运行,按照一定规则把输出的数据送回输入就能完成上面提到的运算了.
56+
57+
后来这个设备被称为CPU,
58+
59+
CPU除了运算逻辑以外,还能执行: 1 移动数据 2 逻辑运算 3 跳转指令 还有些杂七杂八的指令
60+
61+
移动数据就是把输出的数据送回输入的指令,通常数据存储在寄存器或者RAM中,储存器就像游泳馆的柜子,上面有个编号,里面存了个数字.后来编号被程序猿称为地址.
62+
63+
有了这些我们还有一件事没做,想想是什么?
64+
65+
就是告诉CPU,今天要做的指令,最开始指令是存储在穿孔纸带上的,现在是储存在硬盘里的
66+
67+
CPU一个一个地读进来,读一个执行一个操作.因此执行上面的操作要在纸带上打 2*10000000个以上的孔,这也有点麻烦
68+
69+
幸好我们的运算是有规律的,因此我们可以让纸带走一走倒带再走一走,直到某个条件满足了为止.这样的指令就是转移指令。
70+
71+
from:
72+
73+
http://www.guokr.com/question/482025/
74+
75+
76+

0 commit comments

Comments
 (0)