博客
关于我
图解 | 你管这破玩意叫计算机?
阅读量:583 次
发布时间:2019-03-11

本文共 1737 字,大约阅读时间需要 5 分钟。

电脑是怎么工作的?

你可能已经用过电脑,但或许从未思考过它到底是怎么运作的。编程,内存,算术逻辑单元,这些都是令人生疏的词汇,那让我带你从最基础的原理开始,了解计算机背后的逻辑。

一、编码与电路——信号的转换

小时候,那些细若断丝的电线在你的工作台上ETHERNET啰嗒嗒地嗡嗡作响,这些线路中蕴藏着怎样的魔法?它们不仅仅是为了连接设备,更多时候,它们承载着信息的流动。

我和小宇曾经头脑转向过这个问题,我们发现问题的关键在于编码。就像人类用语言交流,电脑也需要用一种更简洁的方式处理信息。我们决定用灯泡的亮灭来表示二进制数字的0和1。

每个字母都被编译成特定的电流信号,开关的闭合与闭合对应着0与1,灯泡的亮灭则是接收方的显示。这种简单的转换让我们能够在不发出声音的情况下聊天,黑暗中的密语游戏一开启,我们从此不再害怕父母的“收残机”管uctions。

二、门电路——信号的关联

我们很快意识到,不只是单个信号的传输很重要,更多的信号如何协同工作才是关键。这类似于人类的“或”、“与”逻辑运算。我们用电阻的串联与并联来模拟这些逻辑门。

最前沿的发现是:“或”门和“与”门可以协同工作,形成一个基本的电路单元——门电路。这个电路让我们能够在简单的开关断开和闭合中,实现更复杂的信号关联逻辑。

门电路就是像一扇门一样,它们如何开启或关闭取决于多个信号的联合作用。这让计算机能够处理更复杂的逻辑任务。

三、加法器——信号的计算

要想让电脑计算能力提升,我们需要让加法变得自动化。二进制加法看起来简单,但它需要处理进位的传递。借助与门和异或门,我们设计出了一个“半加器”。

这个半加器只能处理一位的加法,但我们很快发现,通过复用一个半加器,可以处理多位的加法问题。经过一番巧妙的连接,我们终于成为了“全加器”的拥有者。

正是基于这个加法器,我们终于有了一个基本的算术逻辑单元。这个单元能够处理加法、减法,从而让电脑具备了进行数学运算的能力。

四、时钟——信号的震荡

我们很快意识到,数据的处理需要一个时间维度。时钟信号就像一个永不停息的心脏,它以规律的速率产生变化的信号。这个信号让整个电脑的数据处理有了时间依据。

我们设计了一个振荡器,它利用开关的周期变化产生交替的电信号。这个信号不仅驱动着计算机的时钟运行,还让所有的操作都有了明确的时间点。�acciones totales!

五、存储器——信号的保存

存储器就像是电脑的大容器,它能够保存大量的数据供后续处理。我们利用锁存器设计了一个基础的存储单元,这个单元可以暂时保存一位的数据。

通过将多个锁存器组合,我们设计出了一个随机访问存储器——RAM。它能够支持读写操作,让数据的存取变得更加高效。这个设计很快被扩展,支持更多的数据存储需求。

六、程序——自动化的实现

为了让电脑能够自动完成任务,我们需要引入控制单元。这一块特殊的芯片接收指令并控制各个部件的工作状态。它就像是电脑的大脑,负责协调各个部分共同完成任务。

我们设计了三个基本指令:ignore(忽略)、add(累加)、halt(停止)。这些指令被存储在另一个存储器中,通过解码器转换为具体的控制信号。整个系统就像一个自动化的咖啡机,它能够根据不同的指令执行不同的操作。

最终,我们成功地设计了一个可编程的控制单元。通过对指令的排列组合,我们可以让电脑完成越来越复杂的任务。这就是我们所说的“程序”。通过编写程序,我们能够赋予电脑各种智能,这就是编程的魅力所在。

七、程序指令

随着程序的不断扩展,我们发现了更高效的编程方式。程序不再只是简单的指令排列,而是通过复杂的逻辑和结构实现更强大的功能。有了多位存储器和更多的指令,我们的程序能够处理更复杂的计算任务。

每一个程序都像一本 svého指南,告诉电脑该怎么运行。通过编写程序,我们可以让电脑完成文字处理、数据分析,甚至图像处理。电脑的智能就在于它能执行我们编写的程序,就像人类能够完成我们制定的任务一样。

通过这番旅程,你已经看到了计算机背后的逻辑。这个世界就是如此神奇——无数个零和一组合在一起,编织出了整个数字世界。这不会是最后的心得吧?我们再等等,下一次聊天时,或许还能交换更多关于计算机奥秘的故事!

转载地址:http://ggvvz.baihongyu.com/

你可能感兴趣的文章
OA项目之我的审批(会议查询&会议签字)
查看>>
OA项目之项目简介&会议发布
查看>>
ObjC的复制操作
查看>>
Object c将一个double值转换为时间格式
查看>>
object detection之Win10配置
查看>>
object detection训练自己数据
查看>>
object detection错误Message type "object_detection.protos.SsdFeatureExtractor" has no field named "bat
查看>>
object detection错误之Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
查看>>
object detection错误之no module named nets
查看>>
Object of type 'ndarray' is not JSON serializable
查看>>
Object Oriented Programming in JavaScript
查看>>
object references an unsaved transient instance - save the transient instance before flushing
查看>>
Object 类的常见方法有哪些?
查看>>
Object-c动态特性
查看>>
Object.assign用法
查看>>
Object.create
查看>>
Object.defineProperty详解
查看>>
Object.keys()的详解和用法
查看>>
objectForKey与valueForKey在NSDictionary中的差异
查看>>
Objective - C 小谈:消息机制的原理与使用
查看>>