2024-2025-1 20241415 《计算机基础与程序设计》第三周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(2024-2025-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业) |
这个作业的目标 | <温习巩固本周所学> |
作业正文 | https://www.cnblogs.com/zhaoshaoning/p/18462751 |
教材学习内容总结
一、冯诺依曼体系
冯诺依曼体系(Von Neumann Architecture)是计算机体系结构的一种基本模型,由约翰·冯·诺依曼在20世纪中期提出。它对现代计算机设计产生了深远的影响。以下是冯诺依曼体系的主要组成部分及其特征:
主要组成部分
中央处理单元(CPU)
算术逻辑单元(ALU):进行算术运算(如加减乘除)和逻辑运算(如与、或、非)。
控制单元(CU):负责从内存中读取指令,并控制指令的执行过程,协调CPU内各个部件的活动。
内存
主存(RAM):用于存储正在执行的程序和数据,是可读写的临时存储。
辅助存储:用于长期存储数据和程序(如硬盘、SSD),相较于主存速度慢但容量大。
输入设备:用于接收外部信息,例如键盘、鼠标、扫描仪等。
输出设备:用于将计算结果输出到外部,例如显示器、打印机、音响等。
总线系统:用于连接各个组件,负责数据、地址和控制信号的传输,包括数据总线、地址总线和控制总线。
体系结构特征
存储程序的概念:冯诺依曼体系允许程序和数据共享同一内存空间,程序指令和数据以数字形式存储,计算机可以灵活执行不同的程序。
线性指令执行:大多数指令是按顺序执行的,程序计数器(PC)跟踪下一条待执行的指令,但可以通过跳转、分支等指令改变执行顺序。
数据和指令的相同表示:在冯诺依曼体系中,程序指令和数据的表示是相同的,即都以二进制形式存储在内存中。
二、门与电路
逻辑门
逻辑门是数字电路中的基本元件,用于实现逻辑运算。常见的逻辑门包括:
与门(AND Gate):
输出只有在所有输入均为1时才为1。
逻辑表达式:A · B(当A和B都为1时,输出为1)。
或门(OR Gate):
输出只要有一个输入为1时就为1。
逻辑表达式:A + B(当A或B至少有一个为1时,输出为1)。
非门(NOT Gate):
输出为输入的反相。
逻辑表达式:¬A(输入为1时输出为0,输入为0时输出为1)。
与非门(NAND Gate):
输出为与门的反相。
逻辑表达式:¬(A · B)(只有在A和B都为1时输出为0,否则输出为1)。
或非门(NOR Gate):
输出为或门的反相。
逻辑表达式:¬(A + B)(只有在A和B都为0时输出为1,否则输出为0)。
异或门(XOR Gate):
输出当且仅当输入有一个为1时为1。
逻辑表达式:A ⊕ B(A和B不相等时,输出为1)。
组合逻辑电路
组合逻辑电路是由多个逻辑门组合而成的电路,其输出仅依赖于当前输入信号的状态。常见的组合逻辑电路有:
加法器:用于执行二进制加法的电路,如全加器和半加器。
比较器:用于比较两个数字的大小。
编码器:将多个输入信号编码成较少的输出信号。
解码器:将较少的输入信号解码成多个输出信号。
时序逻辑电路
时序逻辑电路不仅依赖于当前输入信号的状态,还依赖于电路的过去状态(即历史)。时序逻辑电路通常使用触发器(如D触发器、JK触发器)实现状态存储。常见的时序逻辑电路有:
计数器:用于计数事件的电路,可以是向上计数或向下计数。
有限状态机:一种根据输入和当前状态转换到下一状态的模型。
三、数据类型
- 基本数据类型
整数(Integer):
表示没有小数部分的数字。可以分为有符号(如 -5, 0, 10)和无符号(如 0, 1, 2)的整数。
浮点数(Float/Double):
表示带有小数部分的数字。浮点数用于表示较大或较小的数值,例如 3.14 或 -0.001。Float 一般为单精度,Double 为双精度。
字符(Character):
表示单个字符,如 'A', 'b', '1'。字符通常在计算机中以 ASCII 或 Unicode 编码存储。
布尔(Boolean):
表示真(True)或假(False),通常用于控制逻辑流和条件判断。
2. 复合数据类型
字符串(String):
表示字符的序列,如 "Hello, World!"。字符串通常用于表示文本。
数组(Array):
一组相同类型的元素,按索引进行访问。例如,整数数组可以定义为 [1, 2, 3, 4]。
结构体(Struct):
用户定义的数据结构,允许组合不同类型的数据。例如,可以定义一个结构体来表示一个点,包含 x 和 y 坐标。
元组(Tuple):
有序的元素集合,可以包含不同类型的元素。例如,(1, "Hello", 3.14) 是一个包含整数、字符串和浮点数的元组。
3. 抽象数据类型
列表(List):
一种可以动态增长、存储任意类型元素的集合,通常支持插入、删除操作。
堆栈(Stack):
一种先进后出(LIFO)的数据结构,支持在一端插入和删除元素。
队列(Queue):
一种先进先出(FIFO)的数据结构,支持在一端插入元素,并在另一端删除元素。
字典(Dictionary/Map):
存储键值对的集合,可以通过键快速访问对应的值。例如,{"name": "Alice", "age": 30}。
4. 特殊数据类型
指针(Pointer):
存储变量地址的特殊数据类型,通常用于动态内存管理和数据结构的实现。
集合(Set):
一种不允许重复元素的集合数据类型,通常用于数学运算和去重操作。
教材学习中的问题和解决过程
问题1:冯诺依曼体系是否有其局限性?
问题1解决:有,具体表现如下:
- 冯诺依曼瓶颈
冯诺依曼架构中,程序和数据共享同一条总线(总线是连接计算机各个部件的通信通道)。这导致了数据传输速度的瓶颈。随着程序复杂性和数据量的增加,CPU需要频繁地在内存和处理器之间传输数据,从而影响整体性能。
- 串行处理
冯诺依曼体系结构通常是串行处理的,这意味着它一次只能处理一个指令。虽然通过多核处理器可以在一定程度上缓解这个问题,但根本结构的串行特性仍然是其局限之一。
- 存储器层次结构
虽然现代计算机通过高速缓存等机制来提升性能,但冯诺依曼体系仍然面临着存储器速度与处理器速度不匹配的问题。内存访问延迟可能导致处理器在等待数据时闲置,降低了效率。
- 程序的灵活性
冯诺依曼体系结构对程序的存储和执行方式具有严格的限制,所有的指令和数据都必须放在内存中,并且以顺序方式执行。这使得实现某些高级功能(如并行处理和动态链接)变得更加复杂。
- 安全性问题
由于程序和数据存储在同一空间,恶意软件可以通过修改程序来访问或破坏数据,从而导致安全性问题。
- 不适应某些计算模型
例如,某些并行计算模型、量子计算和神经网络计算等,不易直接通过冯诺依曼架构实现。这些模型需要新的架构设计来有效利用其计算能力。
问题2:为什么说只用或非门就能表示所有计算机所有的逻辑运算?
问题2解决:1. 逻辑运算的基本操作
通常,基本的逻辑运算包括与(AND)、或(OR)、非(NOT)。这些运算可以通过或非门组合实现。通过非门和或门,可以构造出与门:
- 构造与门
与门(AND)的输出在所有输入为真时为真。可以通过或非门构造与门,具体方法是:
使用两个输入的非门,分别判断输入的真值。
将这两个非门的输出连接到一个或门。
如果输入是 A 和 B,则与门可以表示如下:
这意味着,我们首先取 A 和 B 的非,然后将它们作为或门的输入,再取其非,这样就得到了与操作的结果。
- 逻辑运算的完备性
通过各种组合,或者与门的构造,能够获得所有可能的逻辑运算:
非(NOT):直接使用一个非门。
或(OR):直接使用一个或门。
与(AND):如上所示用非门和或门构造。
异或(XOR)和同或(XNOR):可通过组合实现
通过组合,构造出其他复杂的逻辑运算(如与非、或非等),可以达到表示任何的逻辑形式。
- 实现逻辑电路
只用或门和非门来构建逻辑电路意味着可以采用较为简单和高效的电路设计。现代数字电路中的基本门电路设计中,使用“或非”门(NOR)或“与非”门(NAND)作为基本构件也能实现同样的目的,因为它们也是完备的。
基于AI的学习