Crash Course(四)

由于7、8、9集实在太难,分为三个板块,且慢慢整理
7.中央处理器
我们已经做了一个算术逻辑单元ALU,输入二进制它会执行计算。
寄存器:小内存,能存一个值
RAM:大内存,能在不同地址存大量数字
CPU负责则执行程序。程序由一个个操作组成,这些操作叫指令(instruction),他们指示计算机要做什么。
如果是数学指令(如±),CPU交给ALU来进行数学运算
也可能是内存指令,CPU会和内存通信,然后读/写值
建造过程中我们把重点放在功能上。当我们用一条线连接两个组件时,这条线只是所必须线路的一个抽象,这种高层次视角叫“微体系架构”
首先需要一些内存(上节课造的RAM)

寄存器用来临时存数据和操作数据
程序可以像数据一样被存在内存里

在这个假设的例子里,我们用前四位存“操作代码”(operation code)简称“操作码”(opcode)
后四位表示数据来自哪里,(可以是寄存器或者内存地址)
我们还需要两个寄存器来完成CPU
第一个寄存器追踪程序运行到哪里了,我们叫它“指令地址寄存器”(instruction address register)存当前指令的内存地址
另一个寄存器存当前指令,叫”指令寄存器”(instruction register)
当我们启动计算机时,所有寄存器从0开始
CPU第一阶段:取指令阶段(fetch phase)负责拿到指令。首先,将指令地址寄存器连接到RAM。
因为寄存器的值为0,所以RAM返回地址0的值。
然后上图中0 address地址对应的数据0010 1110会复制到指令寄存器中
第二阶段:解码阶段(decode phase)
拿到了指令,我们要知道指令是什么才能执行(execute)

前四位是0010 LOAD_A指令,意思是”把RAM的值放入寄存器A”
而后四位1110是RAM的地址。
接下来,指令由“控制单元”进行解码
(控制单元也是有逻辑门组成的。比如为了检查输入是不是0010的电路如下图 )
执行阶段(execute phase)
用刚刚的“检查是不是LOAD_A指令”的电路,我们可以打开RAM的允许读取线,把地址14传过去

最后一步是把指令地址+1
指令完成了!我们可以关掉所有线路去拿下一条指令了。
LOAD_A只是CPU可以执行的各种指令之一。不同的指令由不同的逻辑电路解码,这些逻辑电路会配置CPU内的组件来执行对应操作。

简化
(后四位是指针,指向内存位置)

控制单元负责选择正确的寄存器作为输入,并配置ALU执行正确的操作。
对于“ADD”指令,“控制单元”会启用寄存器B,作为ALU的第一个输入;A作为ALU的第二个输入
因为ALU可以执行不同的操作,所以控制单元必须传递ADD操作码告诉ALU它要做什么
最后,结果应该存到寄存器A(但是不能直接写入寄存器A,这样新值会进入ALU,不断和自己相加)
因此,控制单元用一个自己的寄存器暂时保存结果,关闭ALU,然后把值写入正确的寄存器

和之前一样,最后一件事是指令地址+1

刚刚我们是一步步讲的,我们人工切换CPU的状态“取指令-解码-执行”其实是“时钟”来负责CPU的节奏。
时钟以精确的间隔触发电信号;控制单元会用这个信号推进CPU的内部操作,确保一切按步骤进行。(就像拔河时喊号子一起一样)
因为就算是电也需要一定的时间传输,CPU“取指令-解码-执行”的速度叫“时钟速度”(clock speed)单位是赫兹,是表示频率的单位。(1HZ代表一秒一个周期)人最快也只能1赫兹
第一个单芯片CPU是“英特尔4004”1971年发布的四位CPU,结构虽然简单,时钟速度达到了740千赫兹。
如今的处理器:电脑手机有几千兆赫兹(1兆=100万)
把计算机超频:加快时钟速度。芯片制造商通常给CPU留一些超频的余地。但是会过热或产生乱码,因为信号跟不上时钟。
降频:当不需要CPU火力全开的时候使用,可以省电
很多现代处理器都可以按照需求超频/降频,这叫“动态调整频率”

左边:CPU
右边:RAM
中间用“地址线”“数据线”“允许读/写线”进行通信
尽管我们现在学到的CPU是简化的,但是很多机制仍然存在于现代处理器中。

基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰海宽松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值