认识CPU底层原理(1)——MOSFET
本文为B站UP主硬件茶谈制作的系列科普《【硬件科普】带你认识CPU》系列的学习笔记,仅作个人学习记录使用,如有侵权,请联系博主删除
近年来,由于国内外各种因素影响,半导体行业逐渐被推向风口浪尖,这时人们才认识到,作为早已宣称进入信息化和数字化时代的中国,在计算机基础设施建设上是如此薄弱。
计算机基础设施包括硬件和软件两个部分。软件部分指的是操作系统及其生态。而硬件部分的核心就是半导体的相关产业链,可以说如果无法制造高集成度的半导体芯片,就始终无法在未来全球的科技竞争中取得主动权。而CPU作为半导体工业的集大成者,是计算机的心脏,更是数字化时代的“石油”。
本篇从就半导体的原理开始讲起,希望能深入浅出的让大家明白CPU是如何构成的。
MOSFET是什么
MOSFET:英文全称是Metal-Oxide-Semiconductor Field Effect Transistor,中文名为金属氧化物半导体场效应晶体管
MOSFET是CPU最基本的工作单元,要想了解MOSFET是如何构成的,以及它能做什么,我们需要从最基本的物理和化学知识开始讲起。
原子结构
宇宙中的物质都是由分子构成的,而分子又是由原子构成的。学过高中化学都知道,原子根据其原子核质子数量不同,被定义为100多种不同的元素,这些元素就是我们研究物质构成的基本单位。
原子的结构如下图所示
其中原子核由带正电的质子和不带电的中子构成,围绕质子的是带负电的电子,由于电场的作用,电子会围绕原子核运动。
在量子理论出现以前,科学家猜测电子围绕原子核运动的模型类似于太阳系中行星围绕太阳运动一样。然而随着量子理论的提出,科学家发现电子的运动轨迹其实是不确定的,我们只能大概估计电子出现在每个位置的概率,也就是原子出现的可能空间,我们把这个空间就叫做电子云。
通常为了书面表示方便,我们使用类似如下形式来描述每个元素的结构
其中圆圈中的数字代表质子数,外边的部分表示电子数以及电子分布的层级关系。中性的原子电子数量与质子数量是相等的,如果一个原子获得了一个电子,就会显负电性,如果失去了一个原子就会显正电性。
导体与半导体
介绍以上内容主要是为了引入什么是导体,什么是半导体。
铜是经典的导体,这是铜原子的结构示意图,其最外层只有一个电子,根据高中化学的理论,这一个电子倾向于脱离铜原子成为自由电子以使得其最外层变为稳定的18个电子的结构。如果没有外力,这个电子的运动就是随机的。
但如果我们用一根铜线连接电源的两端,由于电源正负极存在电压,电压会驱使铜线中的电子发生移动,这就产生了电流,灯泡就会亮起。由于电子带负电荷,电流的定义是正电荷的流动方向,因此电流的方向与电子运动方向相反。
除了铜是典型的导体之外,还有一种物质被称为半导体,它的导电性介于导体与绝缘体之间,当外界条件发生变化时,半导体可以实现在导通与不导通之间转换。
硅就是一种典型的半导体,其原子结构如下图所示。
其最外层有4个电子,通过高中化学知识我们可以知道,最外电子层其实最多可以容纳8个电子,如果我们把很多硅原子放在一起形成纯净的硅晶体,每个硅原子都拿出一个外层电子与相邻的硅原子结合,那么对于中心这个硅原子,其最外层电子数量就变成了8个的稳定结构,其中共享电子的部分被称为共价键。
由于硅晶体中每个硅原子最外层都达到了稳定的8个电子的结构,整个硅晶体的稳定性会很强,电子不容易脱离原子,因此这种情况下硅晶体的导电性是很弱的。
N型掺杂半导体
当我们向纯净的硅晶体中掺杂了磷元素(P),由于磷元素最外层有5个电子,除了与周围的硅原子形成共价键的4个电子,还会多出来一个电子无法形成稳定的化学键,其就可以自由移动,这样掺杂了少量磷元素的硅其导电性就会上升。由于多出来很多自由电子,这种半导体的载流子是电子,我们将这种掺杂方式称为N型(Negative)掺杂。
P型掺杂半导体
同样的,如果我们向纯净的硅晶体中掺杂了硼元素(B),由于硼元素最外层只有3个电子,只能与周围3个硅原子形成共价键,这样就会出现一个空穴,其他电子就可以移动到这个空穴中,由于别的电子移动到空穴时,相当于空穴进行了移动,这种情况下整体的导电性也会上升。这种半导体的载流子是空穴,呈正电性,我们把这种掺杂方式称为P型(Positive)掺杂。
二极管是如何构成的
扩散现象
根据热力学原理,物质分子有从高浓度向低浓度移动直到物质分子分布均与的现象,这是由熵驱动的一种热力学现象。
PN结
当我们把上述两种类型的半导体连接在一起时,就得到了一个PN结。
因为N型掺杂半导体中的电子较多,P型掺杂半导体中的电子较少,根据扩散原理,在两种半导体的交界处就会发生电子从N型向P型扩散的现象。
然而当扩散发生以后,由于N型半导体失去了电子,整体就会呈现正电性,P型半导体获得了电子,整体就会呈现负电性。这样就在两种半导体交接的地方形成了从N指向P的电场。这个电场又会吸引P型半导体的电子向N型移动。
显然,在一段时间后,电子从N向P扩散的力将与电子受电场作用从P向N运动的力达到平衡,这时,N型半导体与P型半导体中将形成一段稳定的没有自由电子的区域,这个区域被称为耗尽层。耗尽层在形成以后,就不会再有电子从N型半导体向P型半导体扩散了。
注意,这时候好玩的事来了。
当我们在这个PN结两端接上一个如下图所示(正极接P,负极接N)的电池时,电池提供的电场远大于上述现象形成的内建电场,并且方向相反时,内建电场被抵消,这时电子就会源源不断的从N型半导体流向P型半导体从而形成了电流,这样整个PN结就处于导通状态。
但是,当我们把上图所示的电池反向接(正极接N,负极接P)时,电池提供的电场方向与内建电场方向相同,内建电场增强,这时电子被吸引到电池正极,相当于中间无自由电子的区域增大,耗尽层变宽,整个PN结处于无法导通的状态。
这就是我们所说的二极管啦。只有一个方向可以导电,另一个方向则无法导电。
MOSFET的构成
好了,终于可以进入正题了,基于以上的知识,我们来看看MOSFET是如何构成的以及它能被用来做什么。
现在我们不再简单的将N型半导体和P型半导体按照PN结的形式进行连接,而是将它们制作成如下图这种结构,根据扩散原理,同样在两个N与P的交界处会形成耗尽层,如果我们将两个N型半导体外界到电源上,我们会发现无论电池方向如何,整个结构都无法导电,因为总有一个耗尽层会扩大而组织电子移动。
这时我们再接另一组电极到P型半导体两侧,如上图所示,上面接正极,下面接负极。这一结构被称为栅极。由于电场的作用,P型半导体的电子会向正极移动,当达到一定程度后,两个N型半导体中间的区域也会变成类似N型半导体的多自由电子的区域,这时相当于将两片N型半导体融合在一起,如下图,此时电路就被导通了,灯泡亮起。当我们取消外接电场时,整个电路又无法导通了,灯泡灭。这种高电压导通,低电压不导通的结构被称为NMOS。
由此可以想到,如果我们把这种结构的N型半导体和P型半导体互换,栅极的正负极也互换,我们就得到了一个当栅极电压高时不导通,当栅极电压低时导通的结构,被称为PMOS。
NMOS和PMOS用符号可以表示为如下形式,其中D表示漏极(也就是载流子流出的地方,S表示源极(也就是载流子流入的地方),G表示栅极(也就是控制MOS管导通的电极)。
MOSFET构成的最简单的门电路-非门电路
当我们把PMOS的漏极与NMOS的漏极相连,栅极也相连,PMOS的源极接入供电电压VDD,NMOS的源极接入接地电压VSS。这时如果我们在A端输入一个正向偏压,PMOS就会关闭,NMOS就会导通,这时B端电压等于接地电压;如果我们在A端输入反向偏压,PMOS就会导通,NMOS就会关闭,这时B端电压等于供电电压。
如果我们把供电电压定义为1,接地电压定义为0。外接高电平定义为1,外接低电平定义为0。这就是一个最简单的逻辑非门电路。其真值表如下
输入A | 输出B |
---|---|
1 | 0 |
0 | 1 |
MOSFET的作用
以上非门电路就是计算机中最小的一个计算单元啦。使用MOSFET我们还可以组合出更多的逻辑运算电路,如与门电路、或门电路、异或门电路等等。由于计算机中所有计算和存储的数据都是用0|1这样的二进制表示方式,因此在二进制数做计算的时候,相当于就是针对每一位二进制数做逻辑运算。
CPU就是无数个这样微小的逻辑运算单元组成的芯片,其当之无愧是人类历史上最精密的元器件之一。
下面一章,我们会重点讲这几种门电路是如何使用MOSFET构成的。
认识CPU底层原理(1)——MOSFET的更多相关文章
- 并发之volatile底层原理
15.深入分析Volatile的实现原理 14.java多线程编程底层原理剖析以及volatile原理 13.Java中Volatile底层原理与应用 12.Java多线程-java.util.con ...
- NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理
NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 之 ...
- volatile底层原理详解
今天我们聊聊volatile底层原理: Java语言规范对于volatile定义如下: Java编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致性地更新,线程应该确保通过排它锁单独获得这 ...
- JMM和Volatile底层原理分析
JMM和volatile分析 1.JMM:Java Memory Model,java线程内存模型 JMM:它是一个抽象的概念,描述的是线程和内存间的通信,java线程内存模型和CPU缓存模型类似,它 ...
- Docker底层原理介绍
1.docker介绍 1.1什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻 ...
- Java面试底层原理
面试发现经常有些重复的面试问题,自己也应该学会记录下来,最好自己能做成笔记,在下一次面的时候说得有条不紊,深入具体,面试官想必也很开心.以下是我个人总结,请参考: HashSet底层原理:(问了大几率 ...
- 2、docker安装:内核要求、docker三要素、安装、helloworld、底层原理
1.前提说明 1.CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 2.前提条件:内 ...
- (前篇:NIO系列 推荐阅读) Java NIO 底层原理
出处: Java NIO 底层原理 目录 1.1. Java IO读写原理 1.1.1. 内核缓冲与进程缓冲区 1.1.2. java IO读写的底层流程 1.2. 四种主要的IO模型 1.3. 同步 ...
- 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ ...
- CAS底层原理与ABA问题
CAS定义 CAS(Compare And Swap)是一种无锁算法.CAS算法是乐观锁的一种实现.CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B.当预期值A和内存值V相同时,将内存值V修 ...
随机推荐
- win10、win11安装子系统kali linux、图形化界面的安装
1.开启安装Linux子系统需要的扩展 Win+Q搜索功能 勾选需要的扩展,Hyper-V.Windows 虚拟机监控平台.适用于Linux的Windows子系统.虚拟机平台 反正这些有关于虚拟机的全 ...
- Leftpad事件 我们是不是早已忘记该如何好好地编程?
多年前的Leftpad 撤包事件使得React . Babel 和许多流行的npm模块都受到波及,无法正常运行. 这些受到影响的模块都引入了一个叫做 left-pad 的模块. 以下就是这十一行代码: ...
- SpringBoot笔记--文件配置加载顺序+整合其他框架
内部文件配置加载顺序 外部文件配置加载顺序 jar包配置 整合Junit 若是业务管理类和测试类在同一个包下面,那么这句话, 可以不加括号,只写注解名称 否则,就必须指定到包下面,不然会报错 整合Re ...
- Javaweb学习笔记第十弹
本章存在的意义,大概就是为了回顾一下被遗忘不久的html了 HTML:超文本标记语言(不区分大小写,语法较为松散,但建议书写时规范一些) HTML标签由浏览器来解析 标签展示图片 具体详情也可以去参考 ...
- 我们为什么要阅读webpack源码
相信很多人都有这个疑问,为什么要阅读源码,仅仅只是一个打包工具,会用不就行了,一些配置项在官网,或者谷歌查一查不就好了吗,诚然在大部分的时候是这样的,但这样在深入时也会遇到以下几种问题. webpac ...
- 来自jackson的灵魂一击:@ControllerAdvice就能保证万无一失吗?
前几天写了篇关于fastjson的文章,<fastjson很好,但不适合我>.里面探讨到关于对象循环引用的序列化问题.作为spring序列化的最大竞品,在讨论fastjson的时候肯定要对 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(13)-Charles如何进行Mock和接口测试
1.简介 Charles最大的优势在于抓包分析,而且我们大部分使用的功能也在抓包的功能上,但是不要忘记了,Charles也可以做接口测试.至于Mock,其实在修改请求和响应数据哪里就已经介绍了,宏哥就 ...
- 技术分享:Proxy-Pool代理池搭建IP代理
技术分享:Proxy-Pool代理池搭建IP代理 前言本章内容仅供参考,不涉及实际使用,主要使用Python环境和Redis数据库进行环境搭建,工具网盘存储如下,有问题可以私聊我.网址:https:/ ...
- PVE虚拟系统的安装
上期有说到,会出一些具体的安装过程以及掉进去的坑.这集我就说一说PVE系统的安装. As mentioned in the previous issue, there will be some ...
- kubernetes核心实战(四)--- Deployments
6.Deployments(重点) 一个 Deployment 控制器为 Pods和 ReplicaSets提供描述性的更新方式. 描述 Deployment 中的 desired state,并且 ...