CPU的运行原理解说
mouser 2021-09-23

一直以来,总以为CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达。

本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMD,ARM,MIPS甚至PowerPC你应该会触类旁通才对。

Intel公司的CPU发展历程

1968年7月18日,鲍勃·诺斯和戈登·摩尔的新公司在美国加利福尼亚州,美丽的圣弗朗西斯科湾畔芒延维尤城的梅多费大街365号开张了。并在成立不久斥资15000美元从一家叫INTELCO的公司手中买下了Intel名称的使用权。由此Intel这位半导体巨人开始了他在IT行业传奇般的历史。

1971年11月15日,这一天被当作全球IT界具有里程碑意义的日子而被写入许多计算机专业教科书。Intel公司的工程师特德·霍夫发明了世界上第一个微处理器 —— 4004。

这款4位微处理器虽然只有45条指令,而且每秒只能执行5万条指令。甚至比不上1946年由美国陆军宾夕法尼亚大学研制的世界第一台计算机ENIAC。但它的集成度却要高很多,一块4004的重量还不到一盅司。 他因发明了微处理器,被英国《经济学家》杂志称为“第二次世界大战以来最有影响的科学家之一”。

“”

以及后面的Pentium 1、2、3和4,再到酷睿、酷睿2,这里就不再一一列举。

Intel从8086开始,就进入了我们所谓的x86时代。而80386的诞生则标志着Intel正是进入了32位微处理器的时代。从80386到Pentium 4这个年代的CPU,就是传说中的IA-32时代。

CPU的三个模块

我们都知道CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。

CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。如下所示:

“”

1、控制单元:

控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。

它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

2、运算单元:

是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

3、存储单元:

包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。

采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。

寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。

CPU的工作原理

“”

总的来说,CPU从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。

上图中没有画总线,只是用逻辑方式对其进行呈现。原因早期Intel的微处理器,诸如8085、8086/8088CPU,普遍采用了地址总线和数据总线复用技术,即将部分(或全部)地址总线与数据总线共用CPU的一些引脚。

例如8086外部地址总线有20根,数据总线复用了地址总线的前16根引脚。复用的数据总线和地址总线虽然可以少CPU的引脚数,但却引入了控制逻辑及操作序列上的复杂性。所以,自80286开始,Intel的CPU才采用分开的地址总线和数据总线。

不管是复用还是分开,对我们理解CPU的运行原理没有影响,上图没画总线的目的就是怕有些人太过于追求细节,一头扎下去,浮不起来。

CPU的运行原理解说

控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。

对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去,天荒地老,海枯石烂,直到停电。

如果你对这段话还是觉得比较晕乎,那么就看我们老师是怎么讲的:

1、取指令:CPU的控制器从内存读取一条指令并放入指令寄存器。指令的格式一般是这个样子滴:

“”

操作码就是汇编语言里的mov,add,jmp等符号码;操作数地址说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。

2、指令译码:指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址)。
3、 执行指令,分两个阶段“取操作数”和“进行运算”。
4、 修改指令计数器,决定下一条指令的地址。

“” 
声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 处理器
  • DSP
  • CPU
  • GPU
  • 看看一块DSP原理图和PCB有多复杂

    DSP原理图 DSP PCB 以上是DSP原理图和PCB,感兴趣的朋友可以在主页回复“DSP原理图和PCB ”,即可获得下载链接,或者在群里下载。

    04-19
  • CPU、GPU有什么区别,下一代处理器会有哪些?

    01 先了解什么是异构并行计算 同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。 而异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式,常见的计算单元类别包括CPU、GPU、DSP、ASIC、FPGA等。 异构计算用简单

    06-01
  • CPU为什么能解析代码

    首先要开始这个话题要先说一下半导体。啥叫半导体??? ~Show Time~ 半导体其实就是介于导体和绝缘体中间的一种东西,比如二极管。 电流可以从A端流向C端,但反过来则不行。你可以把它理解成一种防止电流逆流的东西。 当C端10V,A端0V,二极管可以视为断开。

    03-24
  • 芯片是如何设计出来的

    来源:华为麒麟 看看芯片到底是如何设计的 END 关注微信公众号『面包板社区』,后台回复"技术关键词",领取300 G学习资料包(已有170个技术关键词,如:电源、电机、嵌入式、信号系统、模电、华为、电子学、电路、c语言...) 扫码关注@面包板社区 每天学点电

    07-02
  • 5G NR频点修改操作方法

    1、去激活小区(待验证,目前版本是否不去激活也可以修改) (1)去激活LTE锚点小区 //脚本示例 DSP CELL:; DEA CELL:LOCALCELLID=17; DEA CELL:LOCALCELLID=18; DEA CELL:LOCALCELLID=19; DSP CELL:; (2)去激活NR小区 //脚本示例 DSP NRCELL:; DEA NRCELL:

    2020-09-08
  • 单片机基础及应用|80C51单片机的结构及信号引脚

    点击蓝字关注我们 一、 80C51单片机的结构及信号引脚 图1 80C51单片机系统结构框图 1、80C51单片机基本组成 中央处理器CPU:8位,运算和控制功能 内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。 内部ROM

    2020-09-03
  • 中断轮询方式?其中区别

    关注、星标公众号 ,直达精彩内容 ID:技术让梦想更伟大 作者:李肖遥 摸水了一周,准备在家里好好敲敲代码,赶赶稿子,正当我专心输出的时候,被老婆打断了。 娃拉臭了,赶紧过来!语气中带着一丝丝我害怕的味道。 怎么办?没办法只有过去换尿布咯,三两下,

    2020-07-29
  • 简谈Intel Lakefield处理器,反攻Arm之策

    谈下这两天 Intel 发布的 Lakefield 处理器。AnandTech 前两天发了一篇长文来解释这颗处理器,这篇文章我扫了一眼,绝对是当今尖端半导体工艺的绝佳科普文,所以我决定做全篇翻译:但因为最近事情太多了,我挖的坑也实在有点多,得往后排。这里我概括一下这篇

    2020-07-14
  • TWS 耳机十九大蓝牙主芯片公司!

    蓝牙主芯片是核心,存储芯片容量升级 TWS 产品的核心零部件是主芯片,其承担了无线连接的算力、算法、辅助功能等。 蓝牙芯片解决方案从面向市场定位来看,主要可以分为三个梯队: (1)  中高端市场 : 苹果、高通、华为海思等; (2)  中端市场 : 络达、恒玄、

    2020-07-13
  • 处理器功耗太大,CMOS输入的锅?

    记得有一次,客户拿着处理器板走进我的办公室,说它的功耗太大,耗尽了电池电量。由于我们曾骄傲地宣称该处理器属于超低功耗器件,因此举证责任在我们这边。我准备按照惯例,一个一个地切断电路板上不同器件的电源,直至找到真正肇事者,这时我想起不久之前的

    2020-06-29
  • Snapchat AR更新:增加了语音命令,可共享AR内容,狗和植物扫描仪

    上周SnapChat举行了年度开发者活动,在AR方面展示了一个新相机以及对Lens Studio和Snapchat应用程序进行大量更新,进一步扩展了平台上现有的突破性AR内容,目前每天有超过1.7亿用户在该平台上访问这些AR内容。 关于AR方面的更新包括语音激活的UI导航,可跨越

    2020-06-16
  • Disruptor之性能分析

    Disruptor之性能分析 推荐阅读原文博客:https://www.copydays.org (点击阅读原文即可跳转) 前言 本文属于Disruptor这个java领域中高性能队列的第三篇文章,希望回看前面两篇: Disruptor之高速缓存行设计,Disruptor之无锁实现。 本文会主要聚焦于全局梳理Di

    2020-06-16
下载排行榜
更多
EE直播间
更多
广告
X
广告