博主大学专业课是没有数字电路的,缺少这门课的学习,也导致后续其他专业课的概念理解的不那么准确,最近结合网上多节公开课,对数字电路基础进行了粗略学习,下面是一些浅薄认知,可能有误,欢迎指正,特别是电子系专业或者通信专业的童鞋。

1.前言

数字电路其实是计算机体系结构的基础,甚至可以说没有数字电路,就没有现代计算机。

2.信息

首先就是香农的信息理论,香农创造性使用工程工具编码和度量信息,这个工具就是位(bit),至于香农是怎么想到bit,只能说,这就是天才吧。这个位的数学含义:

在离散的随机变量x,有N个取值:X1,X2,X3…,Xn 取这里每个值的概率是:P1,P2,P3…,Pn 概率越小,不确定性越大:所以 不确定性与概率成反比I(Xi)=log2(1/pi) 位。 我们也可以说一个信息的不确定性越多,所包含的信息量越大。

用位来编码信息时,如何衡量编码的效果?答案落在了平均信息量的计算,在数学上,平均值就是期望:H(X)=E(I(X))=p1.log2(1/p1)+p2.log2(1/p2)+pi.log2(1/pi),这就是我们经常听到的

这个熵确定了传输或者编码表达信息需要的位数的下限,因为少了,编码无法全量覆盖信息,多了又浪费空间。

数据编码成位,也就是0和1,可以通过二叉树进行固定长度编码可变长度编码,更重要的,通过二叉树还可以保证编码的唯一性 ,避免歧义,一般情况下,固定长度编码是针对信息中的各概率相同,而可变长编码是针对概率不同,记住一点,二叉树叶子节点才表示编码。实际上对于信息的编码,还有更多知识,而且编码的本身也是一门学科,我们就浅尝辄止吧,更深入的学习交给个人兴趣吧。

3.电气现象

有了信息用位编码的前提,前人决定使用“电气现象”来代表位(bit),这里主要是利用电气现象以及百年来积累的电气现象相关知识:

电粒子在势能的差异:电压,广泛用于数字电路中

电磁场的相位与频率:广泛用于无线通信;没有孰优孰劣,取决于具体应用

其中电压表示位(bit)的优点,就是廉价;以及在处理电压方面丰富的知识:可以说积累了一个世纪的电压与电流的知识可以供电子系专业的童鞋使用;最后就是功耗,有些低电耗的电路,耗电量甚至接近0。但是它依然拥有缺点:例如容易受电磁场、电阻、导线、RC时间常数等的影响,且无法避免,无法克服 。但是依然可以通过工程方法去解决,那就是: 数字电压

通过电压的传输特性,制定了数字电压的规范,以尽可能抗击不能避免的干扰,让整个数字电路系统中只跑0或1,且一根电线就跑1位

4.设计电路

有了数字电压的规范,让电路中充满0或1,通过逻辑运算的数学方法——逻辑代数设计数字电路,其中逻辑代数一种描述逻辑关系的数学方法,有一套完整的运算规则,包括公理、定理和定律,数字逻辑电路的变换、分析、化简和设计都得依靠逻辑代数,这里也不展开详述。

5.电路进化

使用半导体器件实现逻辑代数中的简单逻辑式的电路就是 门电路,根据实现的逻辑式不同,可以有 与门、或门、非门、异或门、同或门等等,从门电路的基础上,继续实现其他更复杂的逻辑式就形成了 组合逻辑电路,常见的组合逻辑电路:

编码器:普通编码器,优先编码器,译码器数据选择器加法器数值比较器

这里如何简单理解组合逻辑电路?一堆0、1的输入通过不同的电路出入另外一堆0、1,输入→输出,理论基础是逻辑代数,实际实现是电路。

无论是哪种组合逻辑电路,电路是没有记忆的,而触发器正好弥补了这个缺点,而通过触发器引入了存储部分,建立在组合电路之上,这就是时序逻辑电路,此时电路的输出不仅取决于输入,还取决于此时触发器的状态;一个公共的信号,电路中的各个触发器受这个信号统一控制,这个信号到来时,触发器才能发生变化,时序逻辑电路的输出才发生变化,这个信号来一次,触发器和电路的输出状态才能改变一次。这样信号被称为 时钟,这样的电路称为 同步时序电路,很容易想到,还有 异步时序电路,此时触发器的状态变化是有先有后的,而在时序电路中有N个触发器,这便是我们程序员熟知了的另外一个概念,寄存器,有N个触发器,就叫N位寄存器,在计算机系统结构中,它存在于CPU中,在CPU缓存之上,且密度低,耗电量大。

5.芯片

通过门电路组合的中小规模电路的通用型器件(固定功能芯片),生产厂商可以批量生产,这些芯片功能固定,用户根据需要进行选购,如掩模ROM;也可以用户自主设计,为特定功能设计并验证的芯片,然后要求定制化生产的 专用型器件(特定芯片),这种专用型生产周期长,而且也不能随时响应变化,至此,有了可编程的逻辑器件,工厂可以批量生产,用户能够定制化编程,集齐了通用型和专用型的优点,早期的PROM: 一次性编程,不能改写,因为编程时,把不用的熔丝熔断,不能修复EPROM(紫外线可擦除的PROM),E2PROM(电可擦除的PROM),还有不太熟悉的GAL,GPLD,EPLD,FPLA,FPGA等等。

6.ROM与RAM

时序逻辑电路 使电路具有了存储记忆的功能,所以诞生了 ROM只读存储器RAM随机存储器,其实所有的半导体存储器都属于随取存储器,通过编排好的地址,输入地址,通过地址译码器直接存取各个存储单元,与其访问时间与位置无关,这个RAM属于术语误用。其中ROM用MOS管中间的一个绝缘体来储备电子,在掉电后,电路结构没有发生变化,上电后,就能从其中读出不变的数据。

7.扩展:ROM与RAM的应用

CPU Cache:SRAM

Memory:DRAM

BIOS:基本输入输出系统。它是一组固化到计算机内主板上一个ROM芯片上的程序 ,保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。现在主板上常用的Flash ROM的容量一般多为1M或2M一直到8M。在486时代,只用512KBits的BIOS ROM,从Pentium级以后就主要采用1M Bits的BIOS ROM了。随着BIOS的功能越来越多,支持的硬件越来越多,因此程序码也越来越长,1M Bits的容量已不使用,主板上大多采用2M甚至8M Bits的BIOS ROM。现在Flash ROM,相对固定,一定条件下可以反复擦写,方便升级。开机后,根据不同的主板按下某个特定的按键,就可以打开BIOS设置程序,对主板的一些参数进行设置,这些参数信息最后保存在cmos芯片中,这种存储芯片是可以任意修改的,而且要电来维持的,因为它是RAM芯片,一旦没电,保存在这里的信息就会丢失,主板都有一个纽扣大小的电池,关机后用纽扣电池来给cmos供电的。

ps:技嘉的某些板子,要是纽扣电池没电,会影响固态硬盘上的操作系统启动,博主亲测。