首页 >

CPU是如何识别代码的?他的工作原理是怎样的? – 网络|

手机宽带电脑怎么连接,移动网络安全问题如何解决,安卓开发怎么切图CPU是如何识别代码的?他的工作原理是怎样的? - 网络|CPU是如何识别代码的,他的工作原理是怎样的

一、CPU的组成:

每片CPU中都会有最基础的两个部分,控制单元CU和算术和逻辑单元ALU。

1、控制单元CU

CU指控制单元(ControlUnit),控制单元是CPU第一个必备的组件,因为它是整个CPU的指挥控制中心。

它根据大家预先编好的机器语言,按照顺序从存储器中取出各条指令,放在指令寄存器IR中,再通过指令译码确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出控制信号。

它分为硬连线控制单元和微型可编程控制单元两种类型。区别是,硬连线控制单元速度更快,而微型可编程控制单元则是可以自己调节。

2、算术和逻辑单元ALU

ALU非常容易理解,算术逻辑单元(arithmeticandlogicunit),简称ALU.

它的任务是完成所有算术和逻辑计算。它是由执行逻辑电路或逻辑门组成。

3、寄存器和内存

大家知道,CPU的工作就是执行提供的指令,而处理这些指令时需要大量的数据。

这些数据包括了中间数据,或是输入数据,或是输出数据。

那么这些数据放在哪里了?

于是有了寄存器。你理解成CPU内小容量的存储数据的地方就可以了,寄存器可以存储指令,输出数据,存储地址或任何类型的数据。

而寄存器的基础就是触发器(锁存器),它是由电路构成的逻辑门的组合。

一个基础锁存器有一个逻辑门单元和3根线构成,大家可以启通过写入线来更改存储的数据。而禁用写入线时,输出始终保持不变。

当然,集成在CPU内的寄存器的速度很快,但很昂贵。

所以,人们想出了一个好办法,于是速度很慢的RAM出现了,人们叫它随机存取存储器,通俗叫法内存。没错就是你电脑插的内存条。

其实RAM就是一片集成了大量寄存器的集合,它可以存储更多数据。而当RAM没有电源供给时,数据会丢失。


4、高速公路是总线

以上的CPU,寄存器,存储器和输入输出设备中,所有数据都必须通过总线进行传输。下图很容易看到电脑的三种总线的对应关系,篇幅原因,不多说,理解就行了。

二、CPU机器语言

CPU执行的大家叫它机器语言程序,就是用硬件实现的机器指令。

它是由一条一条指令组成的。机器语言使用绝对地址和绝对操作码,每一条指令都对应一个CPU的一个基本操作,而这些操作看透了实际上非常简单。

一条机器指令绝对操作码必须包括操作码和地址码。

操作码就是该指令所要完成的操作(加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。

地址码用来指上面加、减、乘、除的操作对象是谁?或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址,它是确定的一个地址,所以叫绝对地址。

简单理解一条机器语言指令,请CPU同学将寄存器中第三排第二行数据加上第三排第三行数据相加,结果输出告诉偶答案后,你就可以休息了。

基本内容:

  • 算术,例如加法、减法
  • 逻辑指令,例如和,或,而不是
  • 数据指令,例如移动、输入、输出、加载、存储
  • 控制流指令,例如goto,如果…goto,则调用并返回
  • 通知程序已经结束,CPU暂停

三、汇编语言

看上去简单,但要实现用机器语言编写的程序的兼容,对计算机体系结构有非常苛刻的要求,且不说每家计算机其指令的数量与功能、指令格式、寻址方式、数据格式是差别的。

光是开发者的计算机的体系结构和普通用户程序接口必须完全相同,就很难达成。

并且机器语言灵活性较差,可阅读性也很差,编写程序员要求太高了,于是直接拿机器语言来编写成为不可能完成的任务。

怎么办?

于是汇编语言出现了,而与机器语言对应的语言大家叫统称汇编语言,它可以完美的改写成机器语言,这样就达到直接指挥CPU工作。

汇编语言使用了助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。

由于汇编更接近机器语言,能够直接对硬件进行操作,生成的程序与其他的语言相比具有更高的运行速度,占用更小的内存。

因此在一些对于时效性要求很高的程序、许多大型程序的核心模块以及工业控制方面大量应用。


以上从CPU的组成、工作流程、机器语言、汇编语言简单阐述了CPU为什么能够执行指令。

希望对您有所启发!


CPU是如何识别代码的?他的工作原理是怎样的? - 网络|
  • C语言程序设计总结(从入门到精通,这些方法你必须掌握) - 网络|
  • C语言程序设计总结(从入门到精通,这些方法你必须掌握) - 网络| | C语言程序设计总结(从入门到精通,这些方法你必须掌握) - 网络| ...

    CPU是如何识别代码的?他的工作原理是怎样的? - 网络|
  • 既然有http请求,为什么还要用rpc调用? - 网络|
  • 既然有http请求,为什么还要用rpc调用? - 网络| | 既然有http请求,为什么还要用rpc调用? - 网络| ...

    CPU是如何识别代码的?他的工作原理是怎样的? - 网络|
  • c语言程序设计课程设计实战指南 - 网络|
  • c语言程序设计课程设计实战指南 - 网络| | c语言程序设计课程设计实战指南 - 网络| ...