EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
众所周知CPU是中央处理器,它是控制处理中心,我们的电脑、手机等电子产品都离不开CPU。 2 ?6 _1 F8 p0 z$ j
那么,CPU内部到底是如何工作的呢?我们一起来看看。
0 @) [% J+ j1 l4 a/ v: [1 t' V1 . L0 K$ ] c# W' k9 K- |
当我们用电脑拼命工作的时候,殊不知电脑也在拼命的工作。
9 k: f i) `9 q% T+ h8 W* ]! d m! F( z
8 U* R0 n. ]0 Z7 V. a$ m$ o
: G* L- f' f# A8 ~6 ?我们打开机箱,就会看见电脑的主板,也可以看到风扇在不停地转动,风扇下面就是CPU,它不停地在和内存进行数据的通讯,就像我们的大脑。
: R+ e& L! I$ N( sCPU是由很多很多晶体管构成的,主要有控制器,运算器,寄存器几个部分。而寄存器又分为数字寄存器,指令寄存器,指令地址寄存器。假设有四个数字寄存器,它们可以存放临时的数据。右边的是内存,还有16个存储位置,每个位置有8位bit。
" c8 g( L! V6 \* R% @! J$ X8 i% @8 p9 E2 |! N6 s& ^/ `- H
& p! a3 e5 V) P* Z4 w& `
3 f( ]9 o. x9 w; \$ n0 Q/ W2 % ]1 i7 W+ l' I5 B
CPU和内存之间究竟是如何工作的呢? & W; I: `/ d* v, L4 s4 q8 \" \
当我们启动电脑时,所有的寄存器都从零开始。假设内存存放了一个简单的计算机程序,CPU操作的第一阶段为“取指令”,也就是我们获得第一个指令的过程。 2 V* Y& ]( W2 R; _1 M, @, a- Z) m2 a
首先,指定地址寄存器连到内存,寄存器的值为零。内存返回地址0中的值00101110。该值复制到指定寄存器中,然后由CPU开始解析该指令,以便执行什么样的操作。这个步骤称它为“解码”。
" U) I$ M' a6 j5 B该指定前四位为操作代码,后四位为操作代码来自哪里?由于前四位为操作代码0010,对应我们的指令集,0010是读内存放入寄存器A中,后四位是内存的地址1110。即十进制的数字14。
: j6 ^% C1 |' x" [: A3 ]+ \) a! N5 t2 n* Z1 S. j
接着,用一些逻辑门电路来检查该操作码是否与0010匹配,输出为1,表示匹配成功。接下来执行该指令,也就是执行过程。
' |5 f% j5 M/ F2 P$ a" O通过逻辑门电路检查电路输出,打开内存的读取线,找到内存1110的地址14,读取该地址的值00000011,下一步把该值存储到寄存器A中,我们通过数据线连接到4个数字寄存器,CPU通过指令开启数据寄存器A允许写入。该数据被写入到寄存器A中,我们已完成了该指令。 ( j" N- t6 }( [% ^
- q# Z1 W9 n* ^1 P# ?1 e4 d9 q# I+ P. V& j! f! k
现在关掉所有的线,准备从内存中读取下一条指令。指令地址增加1,内存返回地址1的值00011111,复制到指令寄存器。再到解码的过程,通过指定集,指定前四位0001,它表示读内存存储到寄存器B中,这次内存地址是1111,对应十进制尾数为15,到执行的过程,开启内存读取线,找到内存15地址,读取该地址的值。并通过数据线把该值00001110存储到寄存器B中,最后将指定地址寄存器增加1,关闭所有的线。
3 d0 K" B. F/ x [8 L& p+ Q! L现在内存返回地址2的值10000100放入指令寄存器CPU从指定集开始解码,操作码1000是加法指令。添加两个寄存器存储到第二个存储器中,该指定有两种,前两位01对应的寄存器B,后两位00对应寄存器A,因此10000100是指寄存器B中的值添加到寄存器A中。
" E1 d( }' p4 u9 f* R! w1 o! B7 k8 F
8 L8 y( e$ |3 H' e
将寄存器A、B连接到运算器的输入端,运算器执行加法运算,关闭运算器输出的结果保存在寄存器A中。00010001就是输入的值是3和14两个值的和等于17,接下来指定地址增加1,完成这个过程,找到内存地址3的值。 : U8 ^' c7 _5 l* y. c' R9 B: j. e
我们打开指令集开始解码,0100表示读A寄存器到内存,1101对应内存地址是13,然后将寄存器A的值,通过数据线送到内存13的地址上。 . l) Z& _+ a! ?, m4 r( p7 A
1 a) S/ F! f! x0 ~5 ?; d/ @
8 }3 l7 C7 s% A$ }/ A, _2 W3 v9 } b3 r& V, f/ y7 ?0 r6 e7 r
3 [& x' {, w2 \4 w, m
9 Z! q: j5 |9 Z7 k% z5 G" g* ^3
s' S- A4 J# _1 }' O5 U% p5 \我们刚刚运行的计算机的程序,它从内存中加载两个值相加,然后把结果放入内存,也就是CPU的取指令、解码、执行过程。我们电脑的系统是要很多很多的小程序组成,CPU也就不断的在循环这个过程。
4 N4 b4 [! b8 b) ]5 g: c每个CPU执行这个过程的速度不一样,这个速度是由CPU主频即CPU工作频率决定,它决定着CPU的快慢。
. Y+ E0 `# Z/ O. L' W, _- U- f$ X今天的分享就先到这里啦,还有什么疑问可以留言区留言给我们哦~ 5 |$ s6 u+ V7 u1 i# ^6 K. v
文章由巢影字幕组译制
- _# R0 C0 ?1 X8 y* p1 z7 |$ {. W: g$ G. ^5 S! T! d3 V: U& e
|