计算机是怎么工作的?¶
什么是计算机?¶
计算机,又称电子计算机,是一种用于 能够按照程序自动处理信息的电子设备 。它具备对数据进行存储、检索、运算和处理的能力。在实际应用中,计算机可用于文档编辑、电子邮件通信、信息检索以及网络浏览等基本任务。同时,计算机还广泛应用于电子表格处理、演示文稿制作以及数字音视频的创建与编辑等领域。

不管外形多复杂,所有计算机本质只做三件事:

这三大原则共同构成了一个完整的处理循环。例如,当你用键盘(输入设备)敲击按键,CPU(运算器)会处理这个信号,最终在屏幕(输出设备)上显示出对应的字符。
两个关键概念¶
为了让“输入-运算-输出”这个过程能够自动、高效地进行。现代计算机架构还依赖于两个关键概念:

两个基础类型¶

硬件:计算机的身体¶
硬件是计算机系统中所有 看得见、摸得着 的物理设备的总称,是软件运行的物理基础。
-
核心定义:由电子元器件、机械部件等构成的物理实体。
-
主要组成:
-
运算器:负责算术和逻辑运算。
-
控制器:指挥协调各部件工作(运算器+控制器=CPU)。
-
存储器:存放数据和程序(内存速度快,外存容量大)。
-
输入/输出设备:实现人机交互(如键盘、鼠标、显示器)。
软件:计算机的灵魂¶
软件是一系列 程序、数据和文档 的集合,它告诉硬件“做什么”和“怎么做”。
- 核心定义:计算机中非物理形态的指令和数据集合。
- 主要分类:
- 系统软件:管理计算机资源,为应用软件提供支持(如操作系统、数据库管理系统)。
- 应用软件:解决特定应用问题,直接面向用户(如办公软件、游戏)。
软硬件的关系¶
硬件是基础:没有硬件,软件无法运行。
软件是灵魂:没有软件,硬件只是一堆无法工作的“废铁”。
逻辑等价性:同一功能既可以用硬件实现(速度快),也可以用软件实现(灵活性高),这是计算机系统设计的重要原则。

谁发明了计算机?¶
计算机的奠基者主要有四位核心人物:
艾伦·图灵¶

约翰·冯·诺依曼¶

克劳德·香农¶

查尔斯·巴贝奇¶

计算机的历史¶
“Computer”一词最初并非指机器,而是指 从事数据计算的人 。这些人通常借助各种机械计算工具或模拟计算装置来完成工作。
早期计算设备的祖先可以追溯到 算盘 ,以及公元前 87 年左右由古希腊人制造、用于计算行星运行的 安迪基西拉机械装置 。中世纪末期,随着欧洲数学与工程学的复兴,机械计算技术迎来了新的发展。
1623 年,德国博学家 威廉·席卡德(Wilhelm Schickard) 研制出欧洲第一台机械计算设备——“计算钟”。该装置能够完成六位数以内的加减运算,并通过铃声提示计算结果,其核心机制是齿轮传动。
1642 年,法国数学家 布莱士·帕斯卡 在英国数学家 威廉·奥特雷德 发明的计算尺基础上加以改进,研制出可进行八位运算的机械计算器。这种设备曾被大量制造和销售,一度成为当时的时髦商品。
1801 年,法国发明家 约瑟夫·玛丽·雅卡尔 改进了织布机的设计,首次使用一系列打孔纸卡来控制复杂织纹的生成。这种 “雅卡尔织布机” 虽然并非真正意义上的计算机,但其 可编程思想 被视为现代计算机发展的重要里程碑。
1820 年,英国数学家 查尔斯·巴贝奇 构想并设计了世界上第一台完全可程序化的计算机。然而,由于当时技术条件不足、资金匮乏以及设计反复修改,该机器在他有生之年始终未能完成。 19 世纪末,一系列对计算机科学影响深远的关键技术相继出现,包括 打孔卡片 和 真空管 。德裔美籍统计学家 赫尔曼·何乐礼 设计了使用打孔卡片进行大规模数据处理的制表机,为自动化信息处理奠定了基础。
20 世纪上半叶,为满足科学计算的需求,许多针对特定问题设计的 模拟计算机 被陆续研制出来。这些设备通常以所研究问题的物理或电子模型作为计算基础。 进入 1930—1940 年代,计算机的性能迅速提升,其通用性也不断增强,现代计算机的关键特征逐渐成形。
1936 年, 艾伦·图灵 提出了著名的 图灵机模型 ,为计算理论奠定了数学基础。
1937 年,年仅 21 岁的麻省理工学院研究生 克劳德·香农 发表论文《继电器和开关电路的符号分析》,首次系统地阐述了使用开关电路实现逻辑与数学运算的方法,标志着 数字电子技术与逻辑门思想的正式诞生 。 在此之前, 阿尔蒙·斯特罗格 、 尼古拉·特斯拉 以及 李·德富雷斯特 等人,已分别在逻辑电路和真空管应用方面做出重要探索。
沿着这条漫长的发展路径,要定义 “第一台电子计算机” 并不容易。
1941 年 5 月 12 日,德国工程师 康拉德·楚泽 完成了其机电一体化计算机 Z3 。该设备具备自动二进制运算和可行的程序控制能力,是第一台 图灵完备的可编程计算机 ,但仍不属于纯电子计算机。
1941 年夏,美国研制成功 阿塔纳索夫—贝瑞计算机(ABC) ,它使用真空管、二进制表示和可复用存储器,被普遍认为是世界上第一台电子计算机。
1943 年,英国展示了高度保密的 巨人(Colossus)计算机 ,虽然其程序能力有限,但证明了真空管计算的可行性。 此外,还有哈佛大学的 哈佛 Mark I ,以及宾夕法尼亚大学研制的 ENIAC(电子数值积分计算机) 。ENIAC 是第一台具有通用设计意图的电子计算机,但由于采用硬连线方式,每次重新编程都需要重新布线。
二战期间,美国海军希望开发一套能够实时驱动飞行模拟器的计算系统。麻省理工学院因此启动了 旋风工程(Whirlwind Project) ,成功研制出世界上第一台具备实时处理能力的计算机,并发明了 磁芯存储器 ,为后来的个人计算机发展奠定了关键技术基础。
随后,ENIAC 团队在总结经验的基础上提出了 冯·诺伊曼体系结构(存储程序结构) ,这一架构至今仍是现代计算机的核心基础。 20 世纪 40 年代末期,大量基于该结构的计算机开始研制,其中英国的 SSEM 是最早运行的实验机,而真正实用化的代表则是 EDSAC 。
1950 年代, 真空管计算机 占据主导地位。1958 年 9 月 12 日,在 罗伯特·诺伊斯 的领导下, 集成电路 被发明,计算机技术迎来革命性突破。不久之后,英特尔推出了 微处理器 ,1959—1964 年间的计算机通常被称为 第二代计算机 。
1960 年代, 晶体管计算机 逐渐取代真空管。晶体管体积更小、速度更快、成本更低、可靠性更高,使计算机得以商品化生产。 1964—1972 年被称为 第三代计算机时期 ,大量使用集成电路,典型代表是 IBM System/360 系列。
1970 年代,集成电路技术进一步成熟,计算机成本大幅下降,开始走入家庭。1972 年以后的计算机通常被称为 第四代计算机 ,基于大规模及超大规模集成电路。 1971 年,英特尔发布全球第一款微处理器 Intel 4004 ;随后推出 8008、8088 等型号。1976 年, 史蒂夫·乔布斯 与 史蒂夫·沃兹尼亚克 创立苹果公司,并相继推出 Apple I 与 Apple II ,掀起个人计算机浪潮。
1980 年代,微型计算机迅速普及,进入学校和家庭。此后,处理器性能飞速提升,多媒体计算机标准确立,奔腾系列处理器不断刷新性能纪录。
自 1965 年提出以来, 摩尔定律 在半个多世纪中屡次被验证,并被普遍认为在 2030 年代之前仍具参考意义。计算机技术,至今仍在以惊人的速度持续演进。

计算机发展代数¶

计算机的硬件¶
计算机硬件组成(核心)¶



辅助硬件组成¶

硬件的功能逻辑关系¶

计算机运行的总体逻辑¶
计算机的运行逻辑可以用一句话概括:
输入信息 → 存储/处理 → 输出结果
本质上,计算机就是一个 高速数据处理和控制系统 。在硬件层面,这个流程通常包括:
- 取指令(Fetch)
- 指令解码(Decode)
- 执行指令(Execute)
- 访问存储器(Memory Access)
- 写回结果(Write Back)
这就是所谓的 指令周期(Instruction Cycle)。
运行流程详解¶
-
输入阶段(Input)
-
外界通过 输入设备 (键盘、鼠标、摄像头、网络接口等)将数据和命令输入计算机。
- 输入设备将物理信号转换为 二进制信号 (0 和 1)。
- 数据被送入 内存 或直接进入 CPU 寄存器 等待处理。
-
指令获取(Fetch)
-
CPU 从 主存/内存(RAM) 中按程序计数器(PC)指定的地址获取下一条指令。
- 指令被加载到 CPU 的指令寄存器(IR)中。
-
指令解码(Decode)
-
CPU 控制器(CU)分析指令的操作码(Opcode)和操作数(Operand)。
- 确定:
- 需要执行的运算类型(加减乘除、逻辑运算、数据移动等)
- 数据来源(寄存器、内存或输入设备)
- 数据去向(寄存器、内存或输出设备)
4.执行阶段(Execute)
- ALU(算术逻辑单元)根据解码结果执行操作:
- 算术运算(加减乘除)
- 逻辑运算(与、或、非、异或)
- 数据搬运(寄存器或内存间移动)
- CPU 同时可能更新标志寄存器(零标志、溢出标志等)。
-
访问存储器(Memory Access)
-
如果操作数存储在内存中:
- CPU 会通过 地址总线 访问对应内存单元
- 读取或写入数据
- 如果操作数在寄存器中,则无需访问内存,提高执行速度
-
写回阶段(Write Back)
-
运算结果返回到:
- 寄存器(CPU 内部快速存储)
- 内存(长期存储)
- 或通过 输出设备 呈现给用户
- 指令计数器(PC)更新,指向下一条指令地址
-
输出阶段(Output)
-
处理结果通过输出设备显示或传输:
- 显示器、打印机、网络接口
- 形成用户可理解的信息或控制信号
运行逻辑的特点¶
顺序执行为主
- CPU 按指令顺序执行,但可通过跳转、条件分支改变流程
二进制逻辑运算
- 所有计算和判断都基于 0、1 的逻辑运算
存储程序原则
- 指令与数据都存储在内存中,允许程序自修改、自控制
输入—处理—输出闭环
- 保证计算机能从外界获取数据,处理后返回结果
