计算机基本理论与程序运行原理概述

ops/2024/9/22 13:46:20/

目录

计算机的基本表示方法

计算机的组成

程序运行的原理

指令执行的流水线

编译原理

个人理解

面试题总结


计算机的基本表示方法

  • 计算机系统使用高、低电平来表示逻辑1和0。
  • 数据在计算机中的存储、传输和处理均以二进制形式进行。
  • 数据通过总线作为电信号进行传输,内存仅存储高低电平。
计算机的组成
  • 输入设备: 将外部信号转换为计算机可识别的电信号。
  • 输出设备: 将计算机产生的电信号转换为人类或其他设备可理解的形式。
  • 存储器: 用于存放程序和数据,是实现“存储程序控制”的基础。
    • ROM (Read-Only Memory): 例如 Flash (EMMC) 或磁盘空间,特点是掉电后数据不丢失。
    • RAM (Random Access Memory): 即内存,特点是易失性,掉电后数据丢失。

  • 运算器: CPU 中处理信息和执行算术及逻辑运算的核心部件。

  • 控制器: 整个计算机系统的指挥中心,负责协调各个部件的工作。
程序运行的原理
  • 指令集: 运算器的不同决定了处理指令的不同,进而导致指令集的不同。
  • 指令的解析:
    1. 取指: 控制器将 PC 寄存器中的值发送给内存,内存将对应地址中的指令(机器码)传回 CPU 的指令寄存器 IR 中。
    2. 译码: 指令译码器对 IR 中的指令进行识别,将指令翻译成具体的运算操作。
    3. 执行: 运算器执行对应的指令并将结果写入寄存器。
指令执行的流水线
  • 指令的执行遵循流水线的方式,分为取指、译码和执行三个阶段。
  • 每个阶段由独立的硬件组件负责,使得多个指令可以同时处于不同的处理阶段。
  • PC 寄存器始终指向当前正在取指的指令地址,一旦取到指令,PC 自动后移以指向内存中的下一条指令。

编译原理
  • CPU 识别的语言: CPU 仅能识别机器码,而能够识别哪些机器码取决于处理器的硬件结构。
  • 汇编语言: 汇编语言使用标识符来表示机器码,不同的 CPU 结构有不同的汇编语言。
  • C 语言编译: C 语言可以通过不同的编译器编译成不同的汇编语言和机器码,从而适应不同的处理器架构。
个人理解
  • C 语言可以借助不同的编译器生成针对不同平台的代码,以适应不同的处理器架构。
面试题总结
  1. 指令解析的过程:
    • 分为三个阶段:取指、译码和执行。
  2. 为什么不同处理器需要不同的编译器编译程序代码?
    • CPU 仅能识别特定的机器码,这些机器码由处理器的硬件结构决定,因此不同的处理器架构需要使用相应的编译器来生成对应的机器码。

http://www.ppmy.cn/ops/89695.html

相关文章

视觉SLAM第三讲

本讲将介绍视觉 SLAM 的基本问题之一:三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角。 点、向量和坐标系 点:空间当中的基本元素,没有长度,没有体积。 向量:可以将向量看作从一个点指向…

minio文件上传

minio文件上传 1、controller PostMapping("/upload2minio")public Response<List<Map<String,String>>> upload2minio(RequestPart("req") FileUploadReq req, RequestPart("fileList") List<MultipartFile> fileList…

力扣-46.全排列

刷力扣热题–第二十六天:46.全排列 新手第二十六天 奋战敲代码&#xff0c;持之以恒&#xff0c;见证成长 1.题目简介 2.题目解答 这道题目想了会,思路比较好想,但一直没调试成功,所以就参考了力扣官网的代码,积累一下回溯算法的实现和基本实现思路,即先试探后回溯,结果在下面…

Spring循环依赖解决方法及原理

在Spring框架中&#xff0c;循环依赖&#xff08;circular dependency&#xff09;是指两个或多个Bean相互依赖&#xff0c;形成一个环。Spring采用了多种方法来解决循环依赖问题&#xff0c;主要方法包括三级缓存和提前暴露Bean引用。以下是Spring解决循环依赖的原理和方法&am…

【微服务】Spring Cloud 服务网关之Zuul

文章目录 强烈推荐引言用途使用情况使用场景基本使用示例总结强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站:人工智能 引言 服务网关&#xff08;AP…

MYSQL 事务 与 索引

文章目录 MySQL事务MySQL的自动提交模式使用事务1 隔离级别1 脏读2 幻读3 不可重复读 3 MySQL索引1 创建索引2 删除索引 参考 MySQL事务 事务是一组SQL语句的执行&#xff0c;被视为一个单独的工作单元 事务必须满足以下4个条件&#xff1a;ACID 原子性&#xff08;Atomicit…

山东大学考研机试题——整数序列

题目描述 传送门——AcWing 3717. 整数序列 - AcWing 很多整数可以由一段连续的正整数序列&#xff08;至少两个数&#xff09;相加而成&#xff0c;比如 2534567121325345671213。 输入一个整数 N&#xff0c;输出 N 的全部正整数序列&#xff0c;如果没有则输出 NONE。 输…

VS Code 和 Visual Studio 哪个更好

文章目录 VS Code 和 Visual Studio 哪个更好Visual Studio Code简介Visual Studio简介相同点差异点总结 VS Code 和 Visual Studio 哪个更好 Visual Studio Code简介 Visual Studio Code&#xff08;简称 VS Code&#xff09;是一款开源的、免费的、跨平台的、轻量级的代码编…