分享

CPU是怎么认识代码的?

 山峰云绕 2020-06-04

很高兴能够看到和回答这个问题,作为一个科技爱好者,我每天都在关注科技发展方面的消息,每天收获也蛮多的。

首先,我觉得这是一个非常好的问题,也是很多小白用户困惑之处,下面我将根据自己的经验认真回答这个问题。

CPU的工作原理简介:

冯·诺依曼体系结构是现代计算机的基础。

在该系统的结构中,程序和数据必须存储在同一房间内,并且指令和数据必须通过与重复执行的总线相同的总线进行传输。根据冯·诺依曼(von Neumann)系统,CPU分为五个阶段:选择命令的阶段,解码指令的阶段,指令的实施阶段,访问次数和结果记录。

接收命令(IF,指令提取):

即将命令从主存储器接收到指令寄存器的过程。程序计数器中的值,用于指示当前命令在主存储库中的位置。删除命令后,个人计算机上的值会根据命令的字长自动增加。

在解码指令的阶段(ID,指令解码):

在提取指令之后,根据指令的格式,对未连接指令的分离和解释,将识别区域划分为不同类别的指令以及各种获取操作数的方法,对指令进行解码。

执行命令阶段(EX,执行):

指定指令的功能。连接处理器的不同部分以执行必要的操作。

在访问内存(MEM,内存)的时间段内,根据该时间段需要访问主存储器,读取操作数,处理器接收主存储器中操作的地址,并从主存储器中读取操作地址。该命令的一部分不需要访问主存储器,但是可以跳过该阶段。

结果记录在完成阶段(WB,回写):

结果记录在最后阶段,在该阶段,有关命令执行阶段工作结果的数据被“写入”到某种形式的存储中。通常将结果写入处理器的内部寄存器,以便快速访问后续指令;许多指令还更改程序状态寄存器中标记的状态,这些状态指示不同的操作结果,并可用于影响程序动作。

执行命令后,在记录有关结果的数据后,如果没有意外事件发生(例如,结果溢出等),计算机将从程序计数器接收下一个命令地址,开始一个新的周期,在此周期中,将依次检索下一个命令。

CPU是怎么认识代码的?

关键是要就信号包达成一致。处理器仅在传输的二进制代码上执行指令,并且商业企业已同意将编译该指令系统,而不论其编程语言是什么,以便处理器可以根据处理器理解的二进制指令执行其功能。协议以及人与人之间都有自己的规则。例如,我们可以引用许多命令,如果它们以1开头,则说明要执行的操作,例如,加,然后给出两个数字,以便处理器将结果添加到特定的寄存器中,并且程序将具有顺序指令以获取结果在将要存储在指定存储器中的该寄存器上,处理器分析根据这种协议传输的许多二进制数据,然后执行。处理器可以执行根据该指令系统无法直接完成的操作,程序员负责准备一个完整的解决方案,该解决方案将允许处理器执行此操作,这称为编程,而整个命令序列称为程序。下图是CPU认识代码的逻辑图:

处理器不知道您说哪种语言,该代码不是为计算机而是为编译的二进制命令而为,而是为执行根据公司开发的指令系统而开发的一系列指令而读取的代码。编程语言没有什么高级的,它在编译器或解释器中可以很好地用于将这些人工代码转换为机器代码,在这方面,保守法仍然起着多大的作用,您编写的高级语言代码越少,可执行指令转换成机器的越多。 C是您好世界的入门程序,不用考虑拼写很短,也不是很成功,该程序使用5K编译二进制机器代码,并为源代码提供printf0函数,您可以自行查看,但实际上您不需要打印一行完整的printf0函数,实际上是效率低下的解释程序。

以上便是我的一些见解和回答,可能不能如您所愿,但我真心希望能够对您有所帮助!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多