在芯片和电路的世界里只能识别0和1。
代码、软件、UI界面、图片、视频、文件、数据等。都是为了方便人而存在,但本质还是0和1。
芯片和电路如何表示0和1?
芯片和电路通过高低电平代表0和1。比如电压为5V时代表0,电压为0V时代表1。
0和1如何成为我们经常看到的文字、图片和声音?苹果在英文里叫Apple,但是不管我们叫它苹果还是苹果,它在我们的生活里还是一种真正的“苹果”,中文的意思是苹果,英文的意思却是苹果。也就是不同的语言有不同的表达形式。每种语言都有自己的规则,在0和1的世界里也有自己的一套规则。这套规则就是编码表,比如ASCII字符表。比如出现了一串数字“01001011”,那么CPU就会在编码表中找到对应的“K”,然后在屏幕上显示这个“K”。
当我们放大一张黑白图片时,会发现图片是由无数个小方块组成的。这些小方块就是像素,所以我们要用二进制来保存这些像素,不是“1”就是“0”。因此,图片中像素的二进制位数越多,图片可以显示的颜色就越丰富。当一个像素有8个二进制位时,这个图像中的每个像素有256种颜色要显示。和视频图片一样,只是每一秒的视频都是由几帧图片组成的。
用0和1表示声音的第一步是对声音进行模拟采样,然后通过量化的过程将原始波形转换成二进制数。量化就像100个人参加一场考试。有多少人优秀,有多少人优秀,有多少人失败,并不能体现每个人的具体分数。所以二进制的数字声音和我们的原声还是会有很大的差别。这种差异被称为失真。
软件是如何控制硬件的?众所周知,CPU主要由运算器和控制器组成。细看的话会发现,CPU相当于一条庞大的流水线,内存相当于一个临时仓库。
当程序打开时,与该程序相关的数据将从硬盘中读取并转移到内存中。当硬盘的磁头读取数据时,旁边的读取器可以识别磁性材料的不同极性,然后还原为高电平和低电平。刚才我们提到0和1在芯片和电路中是用高电平和低电平来表示的。
这些临时存储的程序数据在存储器中等待CPU提取,该存储器是易失性存储设备。断电时,所有数据将被清除空,通电时数据可以保存。比如,当电子数高于一个中间值时,表示0,低于中间值时,表示1。
存储器中准备的数据主要是程序的指令和数据。数据相当于马上要加工的原材料,而指令相当于客户的订单。订单是对产品的要求,告诉CPU如何去做。刚才提到内存是临时仓库,所以CPU里有专人负责提货。第一个接的是编程计数器,主要是告诉CPU要用的原材料和仓库的具体位置;第二个拾音器是地址寄存器,主要负责记录被提取的原料在内存中的具体位置,因为CPU的读取速度比内存快很多;第三个拾音器是数据寄存器,主要负责整个CPU厂的数据分发。从外部进来的数据和已经产生的数据都由数据寄存器负责。
CPU准备好后,CPU中的指令寄存器会从内存中取出指令,取出指令后会对指令进行解码,看订单有什么要求,规划作业、设备等。用于以下生产过程。然后,运行管理员将根据计划订单准备所有参与本次生产的设备进行施工。在构造的过程中,数据寄存器会去内存提取处理后的数据,传递给算术逻辑单元。算术逻辑单元包含累加寄存器和程序状态寄存器。累加寄存器相当于草稿纸,运算过程中的一些数据和结果会暂存在这个地方,而程序状态寄存器负责记录运算是否有进位或溢出信息。访问号码后,检索结果,最后通过内存保存到硬盘。当然,这个过程中定时发生器是不可或缺的。计时可以准确地安排什么时候谁应该做什么。
CPU中的晶体管如何区分工作类型?我们都知道三极管具有开关的特性,只要控制端的电压满足一定条件,就可以控制电路的通断。
鉴于半导体的特性,有一种门电路,可以使输出信号和输入信号之间有一定的逻辑关系。通过门电路的逻辑关系,对信号进行转换。比如下图的与门电路,只有当开关A和B都打开时,灯泡才会亮。
与门的真值表如下。此外,还有或门、非门等。感兴趣的朋友可以找相关资料。
通过这些基本门电路的组合,可以形成各种算法,让芯片知道什么是加减乘除。
芯片处理后的数据最终会通过芯片的引脚输出,这些数据通过高低电平最终代表0和1。通过一些半导体开关元件很容易打开和关闭硬件。比如常用的继电器,只要控制端子满足相应的条件,就可以控制电路的通断。同样,芯片引脚输出的高电平和低电平可以控制电路的通断。
以上个人拙见,欢迎批评指正。
我同意你的观点。走之前请给我一个赞。谢谢大家!
喜欢,请关注我,再次感谢!