软考知识点总结之计算机组成原理与体系结构

  1. 在程序的执行过程中,Cache与主存的地址映射是由硬件自动完成的
  2. 四级指令流水线完成取指、取数、运算、保存结果四步操作,考察该流水线的操作周期。
  3. 内存编址,相应的运算,包括所需芯片的数量计算。使用地指数除以单个芯片的空间大小。
  4. 计算机的主存主要是由DRAM构成的。DRAM:动态随机存取存储器; SRAM: 静态随机存取存储器; Cache: 高速缓存; EEPROM: 电可擦可编程只读存储器。
  5. 海明码,既可检错又可纠错。
  6. 累加寄存器,用来暂时存放算术逻辑运算部件ALU运算的结果信息。
  7. 程序计数器(PC)是存放执行指令的地方,计算之前就要用到。
  8. 指令寄存器(IR)保存当前正在执行的一条指令。
  9. 地址寄存器(AR)用来保存当前CPU所要访问的内存单元地址。
  10. 逻辑与、或、异或运算
  11. 计算机系统中常用的输入/输出方式有无条件传送、中断、程序查询和DMA方式。当采用DMA方式时,不需要CPU执行程序指令来传送数据。 在计算机中,实现计算机与外部设备之间数据交换经常使用的方式有无条件传送、程序查询、中断和直接存储器存取(DMA)。其中前三种都是通过CPU执行某一段程序,实现计算机内存与外设间的数据交换。只有DMA方式下,CPU交出计算机系统总线的控制权,不参与内存与外设间的数据交换。而DMA方式工作时,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,并不需要CPU参与工作。由于DMA方式是在DMA控制器硬件的控制下实现数据的传送,不需要CPU执行程序,故这种方式传送的速度最快。11. 计算机系统中常用的输入/输出方式有无条件传送、中断、程序查询和DMA方式。当采用DMA方式时,不需要CPU执行程序指令来传送数据。 在计算机中,实现计算机与外部设备之间数据交换经常使用的方式有无条件传送、程序查询、中断和直接存储器存取(DMA)。其中前三种都是通过CPU执行某一段程序,实现计算机内存与外设间的数据交换。只有DMA方式下,CPU交出计算机系统总线的控制权,不参与内存与外设间的数据交换。而DMA方式工作时,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传
### 计算机组成原理背诵知识点总结 #### 1. 算机系统的层次结构 算机系统由硬件层、操作系统层和应用件层构成。每一层都依赖于下一层提供的服务来实现更高级别的功能[^1]。 #### 2. 中央处理器(CPU) CPU 是算机的核心部件,负责执行令集中的各种操作。主要组成部分包括运算器(ALU)、控制器(Controller),以及寄存器组(Register Set)。 - **运算器**:用于完成加减乘除等基本算术逻辑运算。 - **控制器**:协调各部分工作流程,译码控制信号发出。 - **寄存器**:存储临时数据或地址信息,提高访问速度。 #### 3. 存储体系结构 现代算机采用多级缓存机制优化性能表现: - L1 Cache (一级高速缓冲): 容量最小但速度最快; - L2/L3 Caches (二/三级高速缓冲); - 主存(Main Memory, RAM): 动态随机存内存(DRAM), 静态随机存内存(SRAM)两种形式; - 辅助存储(Auxiliary Storage): 如硬盘驱动器(HDD)/固态盘(SSD). 不同级别的存储设备之间存在显著的速度差异,在设时需虑如何平衡成本效率之间的关系。 #### 4. 输入输出(I/O)子系统 I/O 设备通过特定接口连接到主机上,常见的有USB、PCIe等总线标准;DMA(Direct Memory Access)技术允许外设直接读写内存而不必经过 CPU 的干预,从而提高了传输速率并减轻了处理器负担。 #### 5. 总线架构 内部总线用来连接各个组件间的数据通路,外部则用于其他机器通信。按照带宽可分为位宽度(bit-width) 和频率(clock rate),两者共同决定了实际可达到的最大吞吐能力。 #### 6. 海明校验码 作为一种错误检测方法,海明码能够在单一位错的情况下准确定位并纠正该位置上的误码情况。其算方式基于奇偶性的原则构建冗余比特位,使得任意两个合法编码间的汉明距离至少为三以上。 ```python def calculate_hamming_code(data_bits): r = 0 while 2**r < len(data_bits) + r + 1: r += 1 hamming_code = [] j = 0 k = 1 m = len(data_bits) for i in range(1, m + r + 1): if i == 2**(j): hamming_code.append('P' + str(k)) k += 1 j += 1 else: hamming_code.append(data_bits[m - i]) parity_positions = [i for i in range(len(hamming_code)) if 'P' in hamming_code[i]] for pos in parity_positions[::-1]: sub_data = ''.join([hamming_code[j] for j in range(len(hamming_code)) if bin(j+1).count('1') & (pos+1)]) count_ones = sum(int(x != 'P') for x in sub_data) if count_ones % 2 != 0: hamming_code[pos] = '1' else: hamming_code[pos] = '0' return ''.join(reversed(hamming_code)) print(calculate_hamming_code(['d', 'a', 't', 'a'])) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值