【问题标题】:How does the CPU know its instruction set?CPU如何知道它的指令集?
【发布时间】:2011-05-24 20:54:54
【问题描述】:

基本的电脑操作问题,但我不知道怎么问。当我们说计算机具有指令集时,计算机如何知道该指令集是什么?它存储在ROM芯片中吗?它是否存储在CPU中的某个地方?制造商把它放在哪里以便它可以读取磁盘并开始处理机器代码?

【问题讨论】:

  • 也许有人可以解释与 RISC 和 CISC 计算机架构相关的指令集

标签: cpu cpu-architecture instruction-set machine-code


【解决方案1】:

简短回答:计算机处理器中的实际电路是“决定”指令集的因素。

相对简短的回答:在处理器上运行的软件在物理上只是电信号的模式。计算机中的晶体管每秒打开和关闭很多次,根据其他信号修改这些信号模式。例如,考虑一下几乎在每个处理器上都可以找到的mov 指令:

mov dest, src

这是由“存储”在内存中的某种电信号模式编码的。由于电路的接线方式,该信号模式以这样一种方式激活某些晶体管的开启和关闭,以使存储在 dest 的信号与 src 的信号匹配。

长答案:参加计算机体系结构课程。 :-)

【讨论】:

  • 很好的答案。 1)对此是否有任何动画或图形解释? 2)我想构建一个电路(手动使用逻辑门还​​是我远离感觉?)它可以根据我自己的一组指令“行动”(不想太琐碎,但足够复杂以理解电路如何“利用”/“作用于”用汇编代码编写的二进制指令)。 3)这个二进制指令(用汇编代码编写)在物理层面如何被电路“读取”/“执行”?我的意思是它们是如何组合在一起的,或者是什么其他因素/硬件(如果有的话)触发了要馈送到电路的指令。
  • 任何在线课程材料,教导如何构建像 8085 这样的微处理器(我不确定 8085 有多复杂,但可以将其视为可以作用于自定义汇编代码的微处理器)可用的最小硬件(逻辑门?)?我想对微处理器内的每个硬件部分的内部以及每一个物理运动进行可视化((抽象)物理)——从给设备加电到存储二进制指令当我在键盘上键入时,在 muP 的适当部分,“触发”这些指令的“执行”。
【解决方案2】:

指令集是硬连线到 CPU 中的……这实际上是电路构建方式的结果,没有保存指令的实际空间。

当计算机启动时,ROM 上有一个小程序,它知道如何初始化所有组件并启动操作系统。由于计算机的构建方式,这个程序是第一个运行的。

【讨论】:

    【解决方案3】:

    听起来您将两个不同的概念混为一谈:

    指令集

    指令集是 CPU 用来处理的机器代码指令集。 CPU 不必从任何地方加载它,它是 CPU 本身内置的。指令集的示例有:Intel x86、MIPS。

    引导加载程序

    引导加载程序是一个小程序,它告诉 CPU 如何启动计算机。显然它是使用 CPU 指令集编写的,通常驻留在 ROM 或 EEPROM 中。它告诉 CPU 如何与磁盘交互以加载引导扇区(然后加载更多的操作系统)。在 PC 上,引导加载程序是 BIOS 的一部分。

    【讨论】:

      【解决方案4】:

      当我们说计算机具有给定的指令集时,它指的是处理器可以理解的指令集(操作码)。机器经过数字化设计,可以理解它将能够接收的指令。当你设计一个CPU时,其中一个组件就是解码器,它是CPU中对电信号进行解码的部分;并执行那些信号(指令)指示它计算的计算。如果您对计算机的核心工作原理感兴趣,我建议您阅读CODE计算系统的元素

      【讨论】:

        【解决方案5】:

        CPU 有一个特定的指令集,它知道如何执行。当您打开计算机时,必须向 CPU 提供指令。如果到达的指令执行引导过程是有意义的。这些指令从何而来?通常是 ROM(例如 EPROM)。

        【讨论】:

          【解决方案6】:

          您编写代码,最终编译为汇编指令,汇编指令最终编译为“机器代码”。当 CPU 从内存中获取指令时,它会对其进行解码。解码过程最终会在处理器流水线中设置各种控制位,这些控制位决定 CPU 做什么(加载/存储数据,对操作数进行数学运算等)。指令集决定了硬件的实现方式。它实际上是处理器能够“在硬件中”执行的一组基本操作。

          【讨论】:

            【解决方案7】:

            当处理器被描述为具有例如6502 指令集,这意味着如果处理器输出信号以从某个地址获取指令并接收某些数据作为返回(例如字节值 $A9),则处理器的后续操作将如文档中所述。例如,6502 将从下一个地址获取一个字节,然后将该字节复制到累加器,同时为后续指令输出一条指令获取。

            在大多数情况下,处理器不会获得指令集,就像灯泡获得将电转化为光的能力一样。处理器被构建为在接收某些输入时执行某些操作;虽然今天的处理器非常复杂,以至于它们的设计需要非常复杂的工具(不像'古代'时代,它们通常使用钢笔、铅笔和纸设计,并使用手工切割的红宝石薄膜来实现),但基本上处理器会做他们想做的事为做事而生。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-09-25
              • 1970-01-01
              • 2011-02-01
              • 2013-06-27
              • 1970-01-01
              • 2020-02-01
              • 2011-09-01
              • 2016-05-25
              相关资源
              最近更新 更多