程序员需要了解的硬核知识之CPU
大家都是程序员 , 大家都是和计算机打交道的程序员 , 大家都是和计算机中软件硬件打交道的程序员 , 大家都是和CPU打交道的程序员 , 所以 , 不管你是玩儿硬件的还是做软件的 , 你的世界都少不了计算机最核心的 - CPU
CPU是什么CPU 的全称是 Central Processing Unit , 它是你的电脑中最硬核的组件 , 这种说法一点不为过 。 CPU 是能够让你的计算机叫计算机的核心组件 , 但是它却不能代表你的电脑 , CPU 与计算机的关系就相当于大脑和人的关系 。 它是一种小型的计算机芯片 , 它嵌入在台式机、笔记本电脑或者平板电脑的主板上 。 通过在单个计算机芯片上放置数十亿个微型晶体管来构建 CPU 。这些晶体管使它能够执行运行存储在系统内存中的程序所需的计算 , 也就是说 CPU 决定了你电脑的计算能力 。
文章插图
CPU 实际做什么CPU 的核心是从程序或应用程序获取指令并执行计算 。 此过程可以分为三个关键阶段:提取 , 解码和执行 。 CPU从系统的 RAM 中提取指令 , 然后解码该指令的实际内容 , 然后再由 CPU 的相关部分执行该指令 。
RAM : 随机存取存储器(英语:Random Access Memory , 缩写:RAM) , 也叫主存 , 是与 CPU 直接交换数据的内部存储器 。 它可以随时读写(刷新时除外) , 而且速度很快 , 通常作为操作系统或其他正在运行中的程序的临时数据存储介质
CPU 的内部结构说了这么多 CPU 的重要性 , 那么 CPU 的内部结构是什么呢?又是由什么组成的呢?下图展示了一般程序的运行流程(以 C 语言为例) , 可以说了解程序的运行流程是掌握程序运行机制的基础和前提 。
文章插图
在这个流程中 , CPU 负责的就是解释和运行最终转换成机器语言的内容 。
CPU 主要由两部分构成:控制单元 和 算术逻辑单元(ALU)
- 控制单元:从内存中提取指令并解码执行
- 算数逻辑单元(ALU):处理算数和逻辑运算
从功能来看 , CPU 的内部由寄存器、控制器、运算器和时钟四部分组成 , 各部分之间通过电信号连通 。
文章插图
- 寄存器是中央处理器内的组成部分 。 它们可以用来暂存指令、数据和地址 。 可以将其看作是内存的一种 。 根据种类的不同 , 一个 CPU 内部会有 20 - 100个寄存器 。
- 控制器负责把内存上的指令、数据读入寄存器 , 并根据指令的结果控制计算机
- 运算器负责运算从内存中读入寄存器的数据
- 时钟 负责发出 CPU 开始计时的时钟信号
主存通过控制芯片与 CPU 进行相连 , 由可读写的元素构成 , 每个字节(1 byte = 8 bits)都带有一个地址编号 , 注意是一个字节 , 而不是一个位 。 CPU 通过地址从主存中读取数据和指令 , 也可以根据地址写入数据 。 注意一点:当计算机关机时 , 内存中的指令和数据也会被清除 。
CPU 是寄存器的集合体在 CPU 的四个结构中 , 我们程序员只需要了解寄存器就可以了 , 其余三个不用过多关注 , 为什么这么说?因为程序是把寄存器作为对象来描述的 。
说到寄存器 , 就不得不说到汇编语言 , 我大学是学信息管理与信息系统的 , 我就没有学过汇编这门课(就算有这门课也不会好好学hhhh) , 出来混总是要还的 , 要想作为一个硬核程序员 , 不能不了解这些概念 。 说到汇编语言 , 就不得不说到高级语言 , 说到高级语言就不得不牵扯出语言这个概念 。
计算机语言我们生而为人最明显的一个特征是我们能通过讲话来实现彼此的交流 , 但是计算机听不懂你说的话 , 你要想和他交流必须按照计算机指令来交换 , 这就涉及到语言的问题 , 计算机是由二进制构成的 , 它只能听的懂二进制也就是机器语言 , 但是普通人是无法看懂机器语言的 , 这个时候就需要一种电脑既能识别 , 人又能理解的语言 , 最先出现的就是汇编语言 。 但是汇编语言晦涩难懂 , 所以又出现了像是 C , C++ , Java 的这种高级语言 。
- 现状|程序员现状揭秘:平均年薪20.36万,Java人才需求量最大
- 联网时代|34岁转行做程序员是否还有成功的机会
- 人类|距离人类“玩坏”自己的电脑桌面,还需要多久?
- 加急|古代8百里加急究竟有多快?需要骑马20个小时,速度媲美顺丰快递!
- 双行合一|关于Word我们要了解的知识(12)
- 模式|刚了解到无货源电商模式,淘宝好还是抖音小店好?
- 移植|开发者将移植ARM Mac的Linux系统 但需要得到资金支持
- 微信|微信转账点收款就能收到钱了?这个“秘密”要了解,很多人上当了
- 5D封装|EDA365:先进IC封装,你需要知道的几大技术
- 靴子|美团需要新靴子