大学计算机基础学习参考书
发表于:2025-01-26 | 分类: Coding
字数统计: 3.9k | 阅读时长: 13分钟 | 阅读量:

编者:Kohaku Kirisame, Midsummra

前言

在2022年春季的课程中,我作为大学计算机基础课程的亲历者,在上课、上机练习和考试的过程中发现了本课程的一些问题。

课程体系本身侧重于Python基本使用的教学,而教材前面关于计算原理、计算机组成等内容由于不进入考试范围而没能得到重视,教学效果很差;此外课程内容中计算机的基本介绍和常用的基本技能几乎为0,进入程序设计章节时则难免产生疑惑。例如有些同学在一学期课程后Python能够写得很顺手,却不知道BIOS是什么,也不会给电脑装系统。

大学计算机基础是一门难度较低的课程,这是由于其课程内容与考试本身集中于Python基础操作决定的。然而在进行程序设计的过程中,如果对计算机本身的知识累积不够充分,就会遇到很多看起来莫名其妙的问题。

因此,本参考书即致力于补足有关计算机的基础知识。计算机软硬件部分会对计算机的组成与结构,计算机操作系统等内容进行简要介绍;编程与Python简介部分会对程序语言、编程思维和Python编程环境进行简要介绍;程序开发进阶会介绍一些更加复杂的编程思维和技术,这些技术对完成大作业会有帮助。本书适用于计算机基础知识较少但是希望在课程基础上更熟练使用计算机或希望实际学习程序开发(而非仅拿到学分)的同学使用,既可以作为一份简单的教程进行通读,也可以作为工具书在遇到问题时进行查询。

需要注意的是,本书内容不在教学要求和考试范围内,也基本不会包含课程教学内容和教材内容,因此请不要使用本书代替正规学习资料进行学习,本书的使命是为课程体系进行补充。此外,本书也不是“计算机组成原理”或“程序设计基础”课程的简化版,如果对更深入的学习感兴趣,可以去选择计算机组成原理、数据结构、操作系统等课程学习。

免责声明:本参考书内容更新至2025年2月,所有内容的时效性可能随着硬件技术发展在1普朗克时间内死亡。作者不保证本参考书的中立性,作者是Apple\Intel\NVIDIA多年的粉丝。

提问的智慧

计算机硬件

计算机系统由计算机硬件(Hardware)和计算机软件(Software)组成,这一部分主要介绍计算机硬件。由于本参考书定位基础,所以不会详细讲述硬件的工作原理,只会对计算机各部分硬件的功能和特性进行简要介绍。需要明确的是,本参考书所说的“计算机”均指微型计算机(Micro Computer),即我们平常使用的个人计算机(Personal Computer, PC)和小型的工作站(Workstation)。

冯·诺依曼体系

1945年,约翰·冯·诺依曼等人提出的计算机体系结构,基本为现代计算机的结构奠定了基础,其主要内容为:计算机采用二进制(Binary)计算;计算机按事先编写的程序(Program)运行;计算机由控制器、运算器、存储器、输入和输出5部分组成。

主板与总线

主板一般结构示意图

主板(Mainboard)又称母板(Motherboard),是计算机硬件系统的核心。在大部分计算机中,主板是一块矩形(或按照设备要求切割成其它形状)的印刷电路板,上有主板芯片组(Chipset)、BIOS芯片/UEFI芯片(也有部分人认为BIOS芯片应当被划分为芯片组的一部分,不过这个争议对我们接下来要讨论的内容没有影响)、各类插槽(Socket)和接口等。主板的主要功能是连接和操控安装在主板上各类设备,如CPU、内存、显示卡等,因此主板的质量直接影响着计算机硬件工作的稳定性。

芯片组

芯片组的主要功能是连接CPU和其它设备,在早期分为控制CPU频率(Frequency/Rate)、系统总线(System Bus)和高速缓存(Cache)等的北桥芯片(North Bridge Chipset)和控制磁盘(Disk)、键盘鼠标等输入输出(Input/Output, IO)设备的南桥芯片(South Bridge Chipset),然而随着计算机技术的发展,北桥芯片的功能部分被整合进入CPU,如今的芯片组大多为单芯片,只是还按习惯保留了“芯片组”这一名称。通常特定芯片组只能与特定CPU搭配使用,因此选择主板时需要根据CPU选择合适的芯片组。

BIOS

基本输入输出系统(Basic Input/Output System, BIOS)是一套被写入BIOS芯片的固件,为电脑提供最低级最直接的硬件控制的程序。BIOS的基本功能是在通电时对计算机的各设备进行开机自检,将设备初始化并引导读取储存在磁盘中的操作系统,进行程序服务处理和硬件中断处理。除此之外,通电开机时可以通过特定操作(不同品牌的主板可能不同)进入主板BIOS设置,对CPU、内存的频率,系统引导等进行设置。

总线

总线(Bus)是连接部件与部件的信号线。CPU芯片内部的总线称为片总线,主板上连接各个器件的称为内总线,连接计算机与外围设备的线路称为外总线。按照信息传输的形式,总线分为串行总线(Serial Bus)和并行总线(Parallel Bus):串行总线是多位二进制信息用一条线路按顺序传输,其结构简单但是速率较慢,一般用于计算机与外部设备连接;并行总线是多位二进制数据用多条线路一起传输,其结构复杂但是速率高,一般用于片总线和内总线。

中央处理器

中央处理器(Central Processing Unit, CPU)对应着冯·诺依曼体系中的控制器、运算器并包含一部分存储器(缓存),作为计算机的控制与运算核心,是对数据进行处理和控制数据存取的器件。

核心与线程

核心(Core)是CPU内部的单元,核心的数量关系到CPU能够同时执行的指令数量,从而核心数越多的CPU其理论上并行计算(同时进行多个计算)能力越强。线程(Thread)是系统进行运算调度的最小单位,即程序进程中的一个单一顺序控制流。通常一个核心只能处理一个线程,而有些具有超线程技术(Hyper-Threading)的CPU可以将一个物理核心模拟为两个逻辑核心,从而一个核心能够同时处理两个线程,提高并行计算效率。

在第12代Intel Core处理器机器更高版本之后,Intel开始使用性能混合架构。这些处理器的每个核心并不完全相同,被分为了性能核(Performance-core)和能效核(Efficient-core)。其中,性能核的物理尺寸更大,时钟频率更高,能耗更高,并且支持超线程技术。而能效核的物理尺寸相对更小,时钟频率低,能耗低,不支持超线程技术。但是在Intel Ultra 200系列,Intel放弃了CPU的超线程技术,即使Ultra 200系列依旧拥有性能核和能效核之分,每个CPU核心都只支持一个线程。

主频

主频即CPU的时钟频率(Clock Rate)。计算机的操作在时钟信号的控制下分步执行,每个时钟信号周期处理一次运算,时钟频率的高低在一定程度上反映CPU的运算速度。

位数

CPU的位数实际上是一个广泛的概念,一般指机器字长(Machine Word Length)即CPU一次运算能处理的二进制位数,有时也指CPU总线宽度和最大内存寻址空间(Addressing Space),因为它们的数字通常是相同的。例如,32位CPU一次运算最大能处理32位的二进制数,其CPU总线宽度为$ 2^{32} $比特(Bit, b)即$ 2^{29} $字节(Byte, B)(512 MB)\footnote{理论计算值,实际CPU的性能会比理论计算的情况复杂很多},内存寻址空间为$ 8\times2^{32}=2^{35} $比特即$ 2^{32} $字节(4 GB),这表示32位处理器最大支持4 GB运行内存。(事实上在2009年之后,Intel就全面转向了64位处理器。也就是说,你现在几乎不可能买到还在使用32位处理器的电脑:)

架构与指令集

CPU的架构(Architecture)是厂商为CPU设计的一种结构,指令集(Instruction Set)是CPU中用来计算和控制计算机系统的一套指令的集合,二者一般需要相互匹配。市面上CPU一般分为由英特尔(Intel)提出的x86(包括x86-64)架构和ARM公司的ARM(Advanced RISC Machines)架构,二者分别使用x86指令集和ARM指令集。x86指令集是一种复杂指令集(Complex Instruction Set Computing, CISC),通常被桌面平台和服务器采用,如英特尔和AMD的CPU;ARM指令集是一种精简指令集(Reduced Instruction Set Computer, RISC),通常在移动设备等要求低功耗的场景使用,如苹果的A系列、高通、联发科等的移动处理器,以及高通在2023年发布的晓龙X Elite桌面处理器。两种架构和指令集各有优劣,在软硬件优化较好的情况下不对性能起决定性作用,例如ARM架构的苹果M系列桌面CPU能效比已经超过x86架构的英特尔同代桌面产品。

神经网络处理器

神经网络处理器,即NPU(Neural Processing Unit),主要用于对神经网络的计算和加速,一般被集成在一些特定型号的处理器芯片中,和CPU封装在一起。

内存储器

内存储器(Memory)简称内存,是用于暂时存储CPU的运算数据和计算机与硬盘等外存储器交换的数据,是CPU与外部存储器的桥梁。计算机的程序都需要加载到内存中运行,因此内存的性能对计算机运行速度有至关重要的影响。计算机中内存主要分为随机存储器(Random Access Memory, RAM)和只读存储器(Read Only Memory, ROM)。

现代计算机的内存管理系统非常复杂。计算机的内存又被分为虚拟内存和物理内存,其中虚拟内存的最小单位被称为“页(page)”,而物理内存的最小单位被称为“帧(frame)”。由于内容过多,在此不做展开,有兴趣可以参考深入理解计算机系统

RAM与运行内存

RAM是一种可以进行读和写操作的存储器,其主要特性是断电后就会失去存储在内存芯片上的数据。在一般语境下,计算机的RAM即指运行内存,通常以内存条作为其物理实现,有时也直接把内存芯片焊接在主板上(也被称作板载内存,比如一些轻薄笔记本)。当前的内存主要为双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic RAM, DDR SDRAM),截至2024年底,主流为第4代(DDR4),第5代(DDR5)已经实现商品化量产并逐渐在市场上铺开。

值得一提的是内存的物理实现除了内存条和板载内存外,还有一种由苹果公司推出并推广的统一内存架构(UMA,Unified Memory Architecture)。在这种架构下,系统的内存和显存不再是分开的,而是共享的。UMA极大的缩小了系统内存地延迟,降低了能耗。但是也存在成本高,不易更换等问题。在Intel发布的Ultra 200移动端处理器(架构代号lunar lake)上同样使用了UMA架构,和苹果的M系列芯片类似,这类使用了UMA架构的内存都具有一个共同的特点,即内存颗粒和CPU封装共用一块基板。
Lunar Lake

ROM

ROM是一种只能读取的存储器,通常在出厂时就将程序一次性烧录进入ROM芯片,断电后数据不会消失。ROM通常被用于存储固件(Firmware),例如主板的BIOS。

速率与容量

不同类型存储器由于应用场景不同,其设计要求也不同,存储器的容量和速率大致成负相关,如下示意图所示:
示意图

计算机硬件进阶

本部分为进阶内容,可作为睡前读物品尝,以Q&A的方式组织。

超频

喜闻乐见,大快人心。这是硬件进阶的第一部分。超频有风险,搞机需谨慎。

CPU超频

CPU的频率被称作主频或时钟频率(Clock),对大部分CPU,有:

$$
主频 = BCLK \times 倍频
$$

BCLK即前端总线(Front Side Bus, FSB)频率,常见66 MHz/100 MHz/133 MHz等,CPU的时钟频率是总线频率的整数倍。例如对于主频4 GHz的CPU,为100 MHz总线频率与40x的倍频得到。

在Core时代之后,由于北桥即IO控制器与CPU核心的整合,FSB频率很难再进行超频。因为此时内存频率与DMI频率等都是总线频率的整数倍,改动FSB频率会影响系统的稳定性。现在所说的超频,一般指调整倍频。

只有不锁倍频的处理器可以调整倍频。

  • 桌面端
    • 英特尔:所有后缀含有K的处理器都是不锁倍频的,搭配Z系列主板可以调整倍频。
    • AMD:所有锐龙系列处理器都是不锁倍频的,搭配X/B系列主板可以调整倍频。
  • 移动端
    • 英特尔:所有后缀含有HX/HK的处理器都是不锁倍频的。
    • AMD:所有锐龙含有HX后缀的处理器不锁倍频。
  • 工作站平台
    • 英特尔:W开头X结尾的志强处理器不锁倍频。
    • AMD:所有线程撕裂者处理器都不锁倍频。

CPU超频的收益在当今已经很小,因为现在的CPU出厂就设置了很高的Boost频率(出厂即灰烬)。以i7 14700K为例,出厂时全核睿频最高5.6 GHz,对平均体制而言手动超频到全核5.8 GHz基本到达极限。在散热良好的情况下,i7 14700K的功率释放可以达到500 W以上,基本没有更多超频的空间。

具体教程可以查看:极客湾的视频

内存超频

下一篇:
MVC模式简介