Crash Course Computer Science—笔记1
这些认知源自B站‘Crash Course Computer Science’这一趣味科普课程(由YouTube上的CrashCourse频道制作)。该频道已运营两年,其创始人希望通过创作实用且易懂的知识内容来帮助观众理解复杂的计算机概念。此前曾关注王垠正在撰写一本科普计算机基础知识书籍。相比文字形式难以激发兴趣和理解力而言,视频不仅更具吸引力还能通过多感官刺激加深印象。这套视频制作精良,在视觉效果和配色选择上颇具心思,在观看过程中几乎每一分每一秒都让人如痴如醉。主讲人饱满的情绪让我全程无分心地聆听下去,在轻松愉快的学习氛围中收获颇丰!最后也要感谢 CrashCourse 字幕组为理解专业术语提供了极大的便利(我才不会说我完全依赖字幕呢)。
视频地址:
https://www.bilibili.com/video/av21376839/?p=7
一**.**计算机的起源与发展简介
公元前2500年
从计算的起源来看,在早期社会中就存在了对计算的需求。在那个时期人们就已经认识到计数的重要性。那么为何会有人发明出算盘?这是因为当时的社会规模超过了人们仅凭心算的能力。于是工具的概念应运而生:工具的发明往往是为了释放人类的体力或智力。随之又出现了测量各种可测量事物所需的计算工具。例如星盘被用来测量天体的位置;时钟则用于标记太阳升起的时间;用于测算潮汐的变化的各种装置同样应运而生。
1822年
charles babbage开发出了一种差分机制造方案,受限于硬件技术未能实现这一目标,但后人根据其草稿设计成功制造出一台且更加实用.在研发过程中萌发了制造通用计算机的想法,该通用计算机能够执行多种不同的运算任务,不仅仅局限于单一运算功能.因此成为世界上第一款通用电子计算机(此前仅有的设备均为专用用途).能够接收数据并执行一系列复杂的计算过程,这些计算过程即被视为程序设计的基础.程序的概念堪称革命性的突破.Ada因编写首台解析机器的第一份程式代码被广泛尊称为第一位程序员她的预言激发了后续出现了一门全新的编程语言专门用于数据分析.
1890年
随着人口数量不断增加, 进行人口普查不仅耗时耗力且成本高昂, 通常情况下调查周期过长, 导致调查数据与实际情况存在较大偏差, 显示出毫无价值。然而, 这样的状况却推动了自动化技术的发展, 出现了如打孔卡片制表机等创新工具, 该装置通过在纸上制作打孔标记来辅助记录信息, 并在特定介质上完成数据处理和输出工作: 首先将统计数据分类汇总, 比如男性和女性的数量; 最后通过相应的设备将整理好的信息传递给操作人员使用。这种方法逐渐成为现代计算机早期发展的重要模式之一。(后来制表机器公司与其他机械公司合并成立了IBM=国际商业机器公司)
1900
人口爆炸以及全球贸易(社会规模大幅度增长)导致数据大量增长,
1904-1906
发明了可用作继电器的替代品——真空管、二极管和三极管。它们操作更为快捷地开关,并具有易碎特性。然而该技术的价格较为昂贵。
1940
随着真空管成本逐步下降,政府逐渐承担得起相关费用;这一变化导致计算机向电子领域转型。
1941
阿兰·图灵研发了一种名为Bombo的设备用于破译纳粹德国的英格玛通讯加密设备(这种机器主要用于解密而非计算功能)
1943
巨人一号第一次用真空管制造的计算机,用于破解纳粹通信
1944
哈佛Mark I作为最大计算设备出现于20世纪初,在IBM为二战期间的盟国国家设计制造后投入运营,并得到了曼哈顿计划的支持。该机采用了电动开关装置进行运算(其作用相当于机械继电器),虽然操作速度较慢可能导致组件磨损但运行稳定且可靠性高;然而频繁出现的小型故障仍可能严重破坏系统稳定性。
1946
宾夕法尼亚大学成功地制造出了世界上第一台完全通用型电子计算机,并具备程序控制能力;该设备面临高昂的成本和易损性极强的问题。
1947
贝尔实验室在研发过程中成功研发出了晶体管这一重要的固体电子元件,并将其 miniaturized 到微型状态并使其运行速度极快。在加利福尼亚州的旧金山与圣何塞之间设有研发中心时区后移至硅谷地区,并于1947年正式由该实验室的创始人创建了肖克利半导体公司。与此同时,在该公司内部又衍生出了仙童半导体公司,并在其员工群体中催生出了英特尔(全球最大的芯片制造商)。
二**.**为啥采用二进制
二进制的核心在于电路开关的两种状态(即真与假、通路与断路)。最初存在的并非只有二进制,在那个时期还存在三进制、五进制等其他形式(它们各自拥有多种状态表示)。随着所选进制数量增加,在实际应用中信号辨别难度也随之上升。整个数学体系中有一个分支被称为布尔代数( George Boole ,19世纪著名的英国数学家 ,也是布尔 Boolean 的命名起源 ),其专门针对真值进行操作 ,其规则系统能够有效地完成相关运算 。拿过来直接就能用。
布尔代数中常用的运算:逻辑与的本质相当于物理上的串联;而逻辑或则相当于物理上的并联;这些运算在计算机中由最低层的电路(如组合晶体管)完成;从宏观角度来看;这些运算构成了电路功能的基础;这种高层次性源于对复杂系统的简化处理;它使得我们在高层思考时无需深入细节;从而将复杂的系统包装成简洁明了的一个接口。
ASCLL读/asgi/
三**.**算术逻辑单元
该算术逻辑单元(ALU)作为计算机的核心运算中枢,在整个信息处理体系中发挥着关键作用。它由多个功能模块组成:首先是一个算术运算模块(支持加减法及移位操作),以及一个逻辑控制模块(包含与、或、非等基本逻辑操作),这两个模块协同工作以实现数据处理的基本运算需求。
ALU的表示法

1970 第一个被封装在单个芯片内的完整ALU,Intel 74181
四**.**寄存器和内存
- 存储机制的重要性在于它能够暂时保存计算结果以供后续使用,在进行连续操作时尤其关键。
- 寄存器的本质在于它能够方便地存储和访问临时数据,在现代计算机系统中发挥着基础作用。
- 锁机制的设计遵循一定的规则与架构,在这种机制中多个锁可以共享一个共同的寄存器资源。

在允许写入的情况下(即write enable处于高电平),数据可以通过该通道进入系统;在不允许写入的情况下(即write enable处于低电平),系统将所有当前的数据保留在data out端口中并对该端口进行锁定;每个存储单元仅能容纳一个数值字段;其数值大小由n决定;例如,在使用8位寄存器时(如8-bit register),其内部结构由8个独立的二进制存储单元组成。
- 内存结构(太喜欢他们做的图了,又好看又明了)




内存地址取决于位的数量。当位的数量增加时,则可存储更多的门牌号(即地址),相应的内存容量也随之增大。The term refers to memory size.
内存的重要特性是可以随时访问任何位置,RAM
五**.CPU****(第七集)**
- CPU的主要工作是处理程序;程序则由一系列单独的操作组成;而每个操作实际上都是一条指令(这些指令告知计算机应当执行何种操作)。
- 详细阐述了如何构建一个CPU的过程

寄存器:临时存储和操作数据
指令地址寄存器:追踪程序运行到哪条指令了(存下指令的地址)
指令寄存器:存当前是什么指令(指令的内容)
时钟通过准确的时间间隔发出电信号,并由控制单元利用此信号驱动CPU内部的操作
该系统主要由三个核心环节构成:指令获取、指令解析以及指令执行三个连续的操作流程。每个完整操作周期所需的时间即被称为时钟周期。
ALU:用来计算
CLU:用来控制
3.运行程序
第一阶段:取址阶段(fetch phase)
第二任务:解码环节(Decode Process):通过对二进制序列进行功能解析,并识别出相应的操作目标,“这个阶段由控制单元负责处理”,其中的控制层也构成了一层电子线路结构。

第三阶段:执行阶段:通过内存地址获取操作数并将其存储到指定的寄存器中(根据操作指令 Load_A 的定义,在本系统中该指令将把数值加载至寄存器a)
在完成该条指令后(完成该条指令之后),我们将指令地址寄存器递增1个单位;随后准备切换至下一条指令进行处理。
