htg解释道:cpu实际上是如何工作的?

计算机中的大多数东西都相对简单易懂:RAM、存储器、外围设备和软件一起工作使计算机发挥作用。但是你的系统的核心,CPU,甚至对许多技术人员来说都是魔法。在这里,我们会尽最大努力来打破它。...

计算机中的大多数东西都相对简单易懂:RAM、存储器、外围设备和软件一起工作使计算机发挥作用。但是你的系统的核心,CPU,甚至对许多技术人员来说都是魔法。在这里,我们会尽最大努力来打破它。

本文的大部分研究来源于“但是它是怎么知道的呢?“作者J.克拉克·斯科特。这是一本非常棒的书,比这篇文章要深入得多,而且非常值得在亚马逊上花上几美元。

在我们开始之前,请注意:现代CPU比我们在这里概述的要复杂几个数量级。一个人几乎不可能理解一个拥有超过十亿个晶体管的芯片的每一个细微差别。然而,关于如何将所有系统结合在一起的基本原则仍然是一样的,理解基本原理将使您更好地理解现代系统。

从小处着手

htg解释道:cpu实际上是如何工作的?

计算机以二进制操作。他们只了解两种状态:开和关。为了进行二进制计算,他们使用所谓的晶体管。如果栅极上有电流,晶体管只允许源电流通过它流向漏极。本质上,这形成了一个二进制开关,它根据第二个输入信号切断电线。

相关:什么是二进制,为什么计算机使用它?

现代计算机使用数十亿个晶体管来进行计算,但在最低水平上,你只需要一小部分就可以形成最基本的元件,即所谓的门。

逻辑门

htg解释道:cpu实际上是如何工作的?

适当地堆叠几个晶体管,就有了所谓的逻辑门。逻辑门接收两个二进制输入,对它们执行操作,并返回输出。例如,如果任一输入为真,则或门返回真。与门检查两个输入是否为真,异或检查是否只有一个输入为真,N个变量(NOR、NAND和XNOR)是它们的基门的反转版本。

和盖茨一起做数学

htg解释道:cpu实际上是如何工作的?

只需两个门,就可以进行基本的二进制加法。上图显示了一个使用logicaly创建的半加法器,它是逻辑门的免费在线游乐场。如果只有一个输入开启,而不是两个都开启,这里的异或门就会开启。如果两个输入都打开,与门将打开,但如果没有输入,与门将关闭。因此,如果两个都打开,XOR保持关闭,and门打开,得到正确答案2:

htg解释道:cpu实际上是如何工作的?

这给了我们一个简单的设置,有三个不同的输出:0、1和2。但是一个比特不能存储任何高于1的东西,而且这台机器也没有太大用处,因为它只解决一个最简单的数学问题。但这只是一个半加法器,如果你把其中两个和另一个输入连接起来,你就得到了一个全加法器:

htg解释道:cpu实际上是如何工作的?

全加器有三个输入,两个数字相加,还有一个“进位”。当最后的数字超过一个位所能存储的数字时,就使用进位。全加器将链接在一个链中,进位从一个加法器传递到下一个加法器。进位被加到前半加法器中的XOR门的结果中,当需要打开so时,有一个额外的OR门来处理这两种情况。

当两个输入都打开时,进位打开,并将其发送到链中的下一个全加器:

htg解释道:cpu实际上是如何工作的?

这和加法一样复杂。向上移动到更多的位本质上只意味着在更长的链中有更多的全加器。

大多数其他数学运算都可以用加法来完成;乘法只是重复加法,减法可以用一些奇特的位反转来完成,除法只是重复减法。虽然所有现代计算机都有基于硬件的解决方案来加速更复杂的运算,但从技术上讲,你可以用全加器来完成这一切。

巴士,还有记忆

htg解释道:cpu实际上是如何工作的?

现在,我们的电脑只不过是一个糟糕的计算器。这是因为它什么都记不住,对输出也不做。上面显示的是一个存储单元,它可以完成所有这些。在引擎盖下,它使用了大量的与非门,在现实生活中根据存储技术可能会有很大的不同,但其功能是相同的。你给它一些输入,打开“写”位,它将把输入存储在单元中。这不仅仅是一个存储单元,因为我们还需要一种从中读取信息的方法。这是通过启用码来实现的,启用码是内存中每个位的与门的集合,所有与门都与另一个输入“read”位相关联。写入位和读取位通常也称为“设置”和“启用”。

整个包裹被包装在所谓的寄存器中。这些寄存器连接到总线,总线是一束绕着整个系统运行的电线,连接到每个组件。即使是现代计算机也有一条总线,尽管它们可能有多条总线来提高多任务处理性能。

htg解释道:cpu实际上是如何工作的?

每个寄存器仍然有一个写和读位,但在这个设置中,输入和输出是相同的。这其实很好。例如。如果您想将R1的内容复制到R2中,您将打开R1的读取位,这将把R1的内容推送到总线上。当read位打开时,您将打开R2的write位,这将把总线内容复制到R2中。

寄存器也用来生成RAM。闸板通常布置在网格中,电线有两个方向:

htg解释道:cpu实际上是如何工作的?

解码器接收二进制输入并打开相应的编号导线。例如,“11”在二进制中是3,是最高的2位数字,因此解码器将打开最高的线。在每个十字路口,都有一个登记簿。所有这些都连接到中央总线和中央读写输入。只有当穿过寄存器的两条导线同时接通时,读和写输入才会接通,有效地允许您选择要从中写入和读取的寄存器。同样,现代RAM要复杂得多,但这种设置仍然有效。

时钟、步进器和解码器

寄存器无处不在,是移动数据和在CPU中存储信息的基本工具。那么是什么让他们移动东西呢?

时钟是CPU核心中的第一个组件,它将以设定的间隔(以赫兹或每秒周期为单位)关闭和打开。这就是你在CPU旁边看到的速度;一个5GHz的芯片每秒可以执行50亿个周期。时钟速度通常是衡量CPU速度的一个很好的指标。

htg解释道:cpu实际上是如何工作的?

时钟有三种不同的状态:基准时钟、启用时钟和设置时钟。基准时钟将开启半个周期,关闭另一半。启用时钟用于打开寄存器,需要打开更长时间才能确保数据已启用。设置时钟总是需要与启用时钟同时开启,否则可能会写入不正确的数据。

时钟与步进器相连,步进器将从1数到最大步进,完成后将自身重置为1。时钟还连接到CPU可以写入的每个寄存器的与门:

htg解释道:cpu实际上是如何工作的?

这些与门还连接到另一个组件的输出,即指令解码器。指令解码器接收一条类似“将R2设置为R1”的指令,并将其解码为CPU可以理解的内容。它有自己的内部寄存器,称为“指令寄存器”,即存储当前操作的位置。它究竟是如何做到这一点的,取决于你正在运行的系统,但一旦它被解码,它将打开正确的设置,并为正确的寄存器启用位,它将根据时钟触发。

程序指令存储在RAM中(在现代系统上是一级缓存,离CPU更近)。因为程序数据存储在寄存器中,就像其他变量一样,它可以在运行时**纵,在程序中跳跃。这就是程序通过循环和if语句获得结构的方式。跳转指令将指令解码器从存储器中读取的当前位置设置到不同的位置。

这一切是如何结合在一起的

htg解释道:cpu实际上是如何工作的?

现在,我们对CPU工作原理的过度简化已经完成了。主总线横跨整个系统并连接到所有寄存器。全加器,连同一堆其他的运算,被封装到算术逻辑单元,或ALU中。这个ALU将连接到总线,并且还将有自己的寄存器来存储它所操作的第二个数字。

为了执行计算,程序数据从系统RAM加载到控制部分。控制部分从RAM中读取两个数字,将第一个数字加载到ALU的指令寄存器中,然后将第二个数字加载到总线上。同时,它向ALU发送一个指令代码,告诉它该做什么。然后ALU执行所有的计算,并将结果存储在不同的寄存器中,CPU可以从中读取,然后继续处理。

图片来源:罗斯特9/Shutterstock

  • 发表于 2021-04-04 08:36
  • 阅读 ( 138 )
  • 分类:互联网

你可能感兴趣的文章

xfce解释道:看看linux最快的桌面之一

因此,您之所以选择Linux是因为您听说这是一种恢复旧PC的好方法,但是在检查了各种Linux操作系统(也称为发行版或“发行版”)之后,您发现您的硬件仍然太慢。除非,也就是说,您安装了类似Xfce的东西。 ...

  • 发布于 2021-03-14 08:40
  • 阅读 ( 417 )

什么是cuda核心,它们如何改进pc游戏?

...”,它并不能解释CUDA内核的具体功能。这些高科技内核实际上专门用于并行处理。换句话说,他们有能力一起完成一项任务。 ...

  • 发布于 2021-03-20 21:38
  • 阅读 ( 496 )

如何在启动时用systemd运行linux程序

...会自动启动。您可以轻松地通过自己的程序和脚本,或者实际上计算机上的任何其他程序来实现相同的行为。 启动时启动的程序由系统和****器systemd控制。systemd是启动时运行的第一个进程。它始终具有进程ID(PID)1。计算机中...

  • 发布于 2021-04-01 17:43
  • 阅读 ( 279 )

linux下如何使用which命令

...他命令、程序和外部独立二进制文件呢?Bash使用路径,实际上是一组路径,每个路径指向一个目录。然后,它在每个目录中搜索与您试图运行的命令或程序匹配的可执行文件。当它找到一个时,Bash启动它并放弃搜索。 可以使用...

  • 发布于 2021-04-02 20:07
  • 阅读 ( 166 )

CPU实际上是如何制造的?

虽然CPU的工作方式看起来很神奇,但这是数十年来巧妙工程的结果。当任何芯片的组成部分晶体管缩小到微观尺度时,它们的生产方式变得越来越复杂。 光刻 晶体管现在是如此的小以至于**商不能用普通的方法**它们。虽然...

  • 发布于 2021-04-03 19:42
  • 阅读 ( 189 )

htg解释道:windows中的高级电源设置是什么?

...to Enter Away Mode”(允许计算机进入离开模式)。微软已经解释了客场模式的作用。 多媒体设置>视频播放质量偏差:您可以选择您的计算机是喜欢视频质量(以牺牲电源和电池寿命为代价)还是喜欢省电(以牺牲视频质量为代...

  • 发布于 2021-04-04 06:34
  • 阅读 ( 202 )

英特尔新推出的x系列狂热CPU,解释道

...基于2017年初首次发布的Kaby Lake设计。该系列的其余部分实际上是Skylake架构的一个改进版本,它使用了稍旧的14纳米**工艺(约2015年)。这两个升级的平台使用新的更复杂的LGA2066 CPU插槽而不是LGA1151,分别标记为“Kaby Lake-X”和“...

  • 发布于 2021-04-07 14:52
  • 阅读 ( 153 )

microsoft如何(以及为什么)阻止新PC上的windows 7更新

...得安全更新。 “不支持的硬件”将无法获得安全更新 这实际上意味着:如果您在装有这些现代CPU的PC上安装Windows7或8.1,Microsoft将不会通过WindowsUpdate向您提供安全更新。相反,您将看到一条“Unsupported hardware”(不支持硬件)...

  • 发布于 2021-04-07 16:03
  • 阅读 ( 206 )

鼠标dpi和轮询率解释:它们对游戏有影响吗?

游戏鼠标的广告具有高dpi和投票率。但这些规范实际上意味着什么,更高的值真的有用吗? 相关:如何选择正确的游戏鼠标 这些规范通常对游戏玩家来说最重要,这就是为什么你倾向于看到广告和游戏鼠标包装中突出显示的价...

  • 发布于 2021-04-07 17:44
  • 阅读 ( 309 )

为什么chrome(和firefox)中的youtube会耗尽笔记本电脑的电池,以及如何修复

...器的视频通常具有.mp4文件扩展名,通常称为mp4视频。这实际上是一个行业范围的标准,不仅仅是web浏览器。 Safari、internetexplorer、microsoftedge、Chrome和Firefox都支持播放H.264编码的视频,不过Firefox一直在努力,尽量避免将其包含在...

  • 发布于 2021-04-10 06:31
  • 阅读 ( 233 )
bvz14525
bvz14525

0 篇文章

相关推荐