文章目录

  • 前言
  • 一 CPU的基本组成
  • 二 CPU的基石
  • 三 ALU(运算器)
  • 1.二进制
  • (1)二进制在计算机中
  • (2)为什么是二进制
  • 2.布尔代数 & 逻辑门
  • (1)什么是布尔代数
  • (2)基本逻辑门
  • 四 寄存器
  • 1.锁存器
  • 2.矩阵
  • 五 时钟
  • 最后


前言

这篇文章的目的是以最简单的方法讲解CPU的结构,
带你感受关于CPU的智慧和魅力。
大部分图片来自Crash老师的计算机科学速成课。

一 CPU的基本组成

CPU即中央处理器(central processing unit)是计算机系统的运算和控制核心
让我们来看看它的主要组成结构吧。

ALU(算术逻辑单元): 是能够进行算术运算逻辑运算的组合逻辑电路。
寄存器(随机存取存储器):也叫主存,是与CPU直接交换数据的内部存储器。
控制器:把内存上的指令、数据等读入寄存器。
时钟:负责管理CPU的节奏(频率)。

二 CPU的基石

大家应该都知道晶体管是CPU的基石,但你知道么?其实晶体管还有两位“老前辈”,继电器热电子管曾经发挥着它的作用。

1.继电器

让我们把继电器简化一下。

如何设计cpu架构 cpu架构很难设计吗_寄存器

控制电路上有一个线圈,当我们给它通电时线圈会产生吸力,将机械继电器关上。从而实现了 关/开 这两种状态。这两种状态就可以和二进制联系起来从而表示数据了。(关于为什么能表示数据后面二进制会讲)

但是继电器不断的动就一定会产生磨损,需要经常更换。
于是科学家们发明了不需要动的热电子管。

2.热电子管:它是一个真空管。

我们把它也简化一下

如何设计cpu架构 cpu架构很难设计吗_布尔代数_02


真空管中含有两个电极,一个电极会发热射出电子,另一个带正电的电极会吸引电子从而形成电流。中间设置了一个控制电路来开关。

热电子管是不需要动了,但是它就像灯泡一样,一直发热肯定会烧坏。
而且非常容易碎,于是晶体管就出场了。

3.晶体管

简化一下它的结构。

如何设计cpu架构 cpu架构很难设计吗_c语言_03

半导体指常温下导电性能介于导体与绝缘体之间的材料,通过门电路我们就可以控制它的导电性,而且半导体的能耗低,导电性转换的很,因此一直使用到现在。

下面我们会讲计算机的算数大脑(ALU),关于为什么 关/开 能代表数据,也会在下面的部分讲解。

三 ALU(运算器)

1.二进制

(1)二进制在计算机中

上面的部分我们已经提到了,晶体管可以有开关两种状态,这时我们就可以将开对应1,关对应0 。正好可以利用我们学过的二进制。

电路合上电流,代表‘
电路打开电流,代表‘

(2)为什么是二进制

第一点:只有两种状态,便于区分信号,不容易受外界干扰。
第二点:当时数学上二进制已经能够完成所以的计算。

2.布尔代数 & 逻辑门

(1)什么是布尔代数

常规代数中,变量是数字,利用数字进行‘+’ ‘-’
布尔代数中,变量是true和false,利用这两个进行逻辑操作

(2)基本逻辑门

AND门

NOT门

OR门

XOR

两个true才是true

输出相反

一个true即为true

一真一假才能输出true

以NOT门为例,我们看一下大致的情况是怎样的

如何设计cpu架构 cpu架构很难设计吗_c语言_04

当输入为ON ,接地,输出为OFF

当输入为OFF,不接地,输出为ON

ALU也可以进行逻辑运算,如两个数相减,通过逻辑门的组成可以判断结果的正负从而判断两个数的大小,这里就不再叙述。

四 寄存器

1.锁存器

数据是可以就行计算了,但是计算之后的数怎样进行存储呢?

让我们看一个简化的电路。

如何设计cpu架构 cpu架构很难设计吗_c语言_05

通过分析我们可以看出来,当下面的数变成1之后,不管输入什么值,都输出1

这是能存储1的单元

这种方式就好像是把1锁在里面一样,因此叫做“锁存器

但是通过这种方法,只能存储1位数,那么将八个锁存器并排连起来,不就可以存储8位数了么。这就是8位寄存器

2.矩阵

但是8位也还是太少了,怎样排列可以更省线,更方便呢?
科学家们开始利用矩阵构成网络。
16 * 16的寄存器就变成了256位寄存器

五 时钟

时钟以准确的间隔,触发电信号,CPU用这个信号,推进CPU的内部操作。

CPU取指令->解码->执行的速度叫“时钟速度”

很多现代处理器可以按需求 加快或减慢时钟速度
这叫“动态调整频率

超频可以提高CPU的速度.
降频可以减少能耗.