当前位置: 首页 > news >正文

【408--复习笔记】计算机组成原理

【408--复习笔记】计算机组成原理

  • 1.计算机系统概述
    • 计算机系统基本概念
    • 计算机性能指标
    • 计算机中的信息表示
  • 2.数据的表示和运算
    • 数制与编码
    • 定点数与浮点数
    • 运算电路???
    • 数据的运算
    • 校验码
  • 3.存储系统
  • 4.指令系统
  • 5.中央处理器
  • 6. 总线
  • 7. 输入/输出 系统


1.计算机系统概述

计算机系统基本概念

简述计算机系统的组成。
计算机系统由硬件和软件两部分组成。
硬件包括运算器、控制器、存储器、输入设备和输出设备等;
软件分为系统软件和应用软件,系统软件如操作系统、编译程序等,应用软件如办公软件、游戏软件等。


解释冯·诺依曼体系结构的主要特点。

计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
采用存储程序方式,程序和数据以二进制形式存于存储器中,按地址访问,且指令和数据不加区别,顺序执行。


计算机性能指标

说明衡量计算机性能的主要指标有哪些。

计算机性能的重要指标包括以下几个方面:

硬件指标
CPU主频:指CPU的时钟频率,单位是赫兹(Hz),如2.4GHz。主频越高,理论上CPU运算速度越快。 • 字长:是CPU一次能处理的二进制数据位数。常见的字长有32位和64位。字长越长,数据处理能力和精度越高,能支持更大的内存空间和更复杂的指令集。
缓存:分为一级缓存(L1)、二级缓存(L2)等。缓存容量越大、级数越多,CPU访问数据的速度越快,可减少访问内存的时间,提高整体性能。
内存容量与速度:内存容量越大,能同时存储和处理的数据就越多。内存的读写速度也很关键,如DDR4内存的频率较高,读写速度比DDR3更快,能更快地与CPU进行数据交互。
硬盘读写速度:传统机械硬盘的读写速度相对较慢,而固态硬盘(SSD)的读写速度大幅提升。快速的硬盘读写速度能加快系统启动、软件加载和数据存储的速度。

软件指标
指令集:复杂指令集(CISC)包含大量复杂指令,能完成复杂操作,但执行效率可能较低;精简指令集(RISC)则指令简单,执行速度快,通过优化编译器提高性能。
操作系统:优秀的操作系统如Windows、Linux等,具有高效的资源管理、调度和多任务处理能力,能充分发挥硬件性能。

综合性能指标
运算速度:用每秒执行的指令数来衡量,如MIPS(每秒百万条指令)或FLOPS(每秒浮点运算次数),反映了计算机执行指令的快慢。
吞吐量:指计算机系统在单位时间内处理的任务量或数据量,体现了系统的整体处理能力。 • 响应时间:从用户发出请求到系统给出响应的时间,包括CPU处理时间、I/O等待时间等,是衡量用户体验的重要指标。


解释CPI、IPC的含义及其与计算机性能的关系。

CPI是指执行一条指令所需的平均时钟周期数。
IPC是指每个时钟周期执行的指令数,
IPC = 1/CPI。
CPI越低或IPC越高,计算机性能越好,因为这意味着在相同的时钟频率下,计算机能执行更多的指令,从而提高运算速度。


计算机中的信息表示

简述计算机中数据的表示形式,如原码、反码、补码等。

原码是符号位加上真值的绝对值,最高位为符号位,0表示正数,1表示负数。
反码是正数的反码与原码相同,负数的反码是在其原码的基础上,符号位不变,其余各位取反。
补码是正数的补码与原码相同,负数的补码是其反码加1。补码在计算机中常用于加减法运算,可将减法转化为加法,简化运算器的设计。


说明浮点数在计算机中的表示方法。

浮点数由阶码和尾数两部分组成。
阶码表示小数点的位置,是一个整数,有正负之分;
尾数表示数值的有效数字部分,通常用定点小数表示。
例如,在IEEE 754标准中,单精度浮点数用32位表示,其中1位为符号位,8位为阶码,23位为尾数。


2.数据的表示和运算

计算机组成原理第二章面试常见问题涵盖数制与编码、定点数与浮点数、数据的运算以及校验码等知识模块,旨在考查对数据表示和运算原理的理解与应用:

数制与编码

常见数制与表示:
常见的数制有十进制、二进制、八进制和十六进制,以下是它们的表示特点:
十进制:由0、1、2、3、4、5、6、7、8、9这10个数字组成,基数为10,逢十进一。例如,123.45表示百位是1、十位是2、个位是3,小数部分十分位是4、百分位是5。
二进制:由0和1两个数字组成,基数为2,逢二进一。例如,二进制数101.1表示1个4、0个2、1个1,小数部分是1个0.5,即(101.1)₂ = 5.5。
八进制:由0、1、2、3、4、5、6、7这8个数字组成,基数为8,逢八进一。例如,八进制数34.5表示3个8、4个1,小数部分是5个0.125,即(34.5)₈ = 28.625。
十六进制:由0 - 9这10个数字和A、B、C、D、E、F这6个字母组成,基数为16,逢十六进一,其中A - F分别表示10 - 15。例如,十六进制数2A.3表示2个16、10个1,小数部分是3个0.0625,即(2A.3)₁₆ = 42.1875。

不同数制之间可以相互转换,例如二进制转换为十进制可以通过按位加权求和的方法,十进制转换为其他进制可以采用除基取余等方法。

在计算机中,为了明确表示不同数制的数,通常会在数字后面加上相应的后缀。常见数制的后缀表示如下:
• 十进制:通常后缀为“D”或省略不写。例如,123D和123都表示十进制数123。
• 二进制:后缀为“B”。如1010B表示二进制数1010。
• 八进制:后缀为“O”或“Q”。例如,34O或34Q表示八进制数34。
• 十六进制:后缀为“H”。像2AH表示十六进制数2A。


进制转换
不同进制之间的转换方法如下:

十进制与其他进制转换

十进制转二进制:用除2取余法。
将十进制数除以2,取余数,然后将商继续除以2,直到商为0。将余数从下往上排列,即可得到二进制数。例如,将十进制数25转换为二进制数:25÷2 = 12余1,12÷2 = 6余0,6÷2 = 3余0,3÷2 = 1余1,1÷2 = 0余1,所以(25)₁₀=(11001)₂。
十进制转八进制:用除8取余法。
将十进制数除以8,取余数,然后将商继续除以8,直到商为0。将余数从下往上排列,就是八进制数。例如,(65)₁₀转换为八进制:65÷8 = 8余1,8÷8 = 1余0,1÷8 = 0余1,所以(65)₁₀=(101)₈。
十进制转十六进制:用除16取余法。
将十进制数除以16,取余数,然后将商继续除以16,直到商为0。余数用0 - 9和A - F表示,从下往上排列得到十六进制数。例如,(200)₁₀转换为十六进制:200÷16 = 12余8,12÷16 = 0余C,所以(200)₁₀=(C8)₁₆。
二进制、八进制、十六进制转十进制用按位加权求和法。将各进制数的每一位乘以基数的相应幂次,然后相加。例如,(1101)₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = (13)₁₀;(34)₈ = 3×8¹ + 4×8⁰ = (28)₁₀;(A5)₁₆ = 10×16¹ + 5×16⁰ = (165)₁₀。

二进制与八进制、十六进制转换

• 二进制转八进制:将二进制数从右往左每3位一组,不足3位的在左边补0,然后将每组二进制数转换为对应的八进制数。例如,(110101)₂,分组为011 010 1,转换后得到(321)₈。
• 二进制转十六进制:将二进制数从右往左每4位一组,不足4位的在左边补0,然后将每组二进制数转换为对应的十六进制数。例如,(11101010)₂,分组为1110 1010,转换后得到(EA)₁₆。
• 八进制转二进制:将八进制数的每一位转换为对应的3位二进制数。例如,(56)₈,5转换为101,6转换为110,结果为(101110)₂。
• 十六进制转二进制:将十六进制数的每一位转换为对应的4位二进制数。例如,(3C)₁₆,3转换为0011,C转换为1100,结果为(111100)₂。

八进制与十六进制转换

通常先将八进制或十六进制转换为二进制,再通过二进制进行相互转换。例如,将(72)₈转换为十六进制,先将(72)₈转换为二进制(111010)₂,再转换为十六进制(3A)₁₆。


定点数与浮点数
定点数和浮点数是计算机中用于表示数值的数据类型,以下是它们的相关介绍:

定点数
• 定义:小数点的位置固定不变的数。通常将数据的最高位作为符号位,0表示正数,1表示负数,其余位表示数值大小。
• 表示形式:根据小数点固定的位置不同,可分为定点整数和定点小数。定点整数的小数点固定在最低位之后,用于表示整数;定点小数的小数点固定在最高位之后,用于表示纯小数。

浮点数
• 定义:小数点位置不固定,可以浮动的数,能表示更大范围和更精确的数值。
• 表示形式:一般由符号位、指数位和尾数位三部分组成。符号位表示数的正负;指数位用于表示小数点的移动位置,决定了数的范围;尾数位表示数值的有效数字部分,决定了数的精度。例如,在IEEE 754标准的单精度浮点数中,32位分为1位符号位、8位指数位和23位尾数位。

两者比较
• 精度:浮点数能表示的精度通常比定点数高,特别是在表示很大或很小的数时。
• 范围:浮点数表示的数值范围比定点数大得多。
• 运算速度:定点数的运算相对简单,速度较快;浮点数运算较为复杂,速度较慢。
定点数和浮点数各有其适用场景。定点数适用于对精度要求不高、数值范围较小且对运算速度要求较高的场合;浮点数则适用于科学计算、图形处理等需要高精度和大数值范围的领域。


现代计算机数据表示
整数:补码
浮点数:尾数:原码定点小数
阶码:移码


原码、补码、反码的定义及转换:
在这里插入图片描述
原码形式简单、与真值一致,0的表示不唯一,加减法复杂。
在这里插入图片描述
补码0的表示唯一,用带符号位加法执行减法

原码最高位为符号位(正0负1),其余是数值绝对值;
正数反码、补码与原码相同,
负数反码是原码除符号位外按位取反,补码是反码加1 。
相互转换遵循相应规则,补码再求补得原码


计算机用补码表示有符号数的原因

补码把减法变加法,简化运算电路;
0表示唯一,利于处理符号位与0,
充分利用编码空间。


BCD码概念与应用场景

BCD码是用4位二进制数表示1位十进制数,如8421BCD码。
常用于会计、金融计算,直接表示和处理十进制数,避免二进制与十进制频繁转换导致的精度问题。


移码及其用途
在这里插入图片描述
移码只能表示整数
移码常用于表示浮点数的阶码。
在比较两个浮点数大小时,直接比较移码更直观,因为移码的大小关系与对应真值大小关系一致,无需考虑符号位的影响,简化了浮点数大小比较的逻辑。


移码特点
零唯一
移码=补码符号位取反
移码保留了数据原有大小顺序。
全0=-2n
全1=2n-1


原、反、补、移对比
在这里插入图片描述


定点数与浮点数

定点数和浮点数在表示范围与精度的区别
定点数小数点位置固定,范围和精度相对固定,范围有限,精度取决于位数。
浮点数由阶码和尾数组成,小数点位置不固定,可表示范围大,但同位数下精度通常低于定点数。


浮点数规格化作用
使浮点数表示唯一,提高精度。
确保尾数最高位为1(二进制),增大相同位数下表示范围,
便于计算机比较、运算。


浮点数表示范围与精度影响因素
表示范围主要取决于阶码的位数和取值范围,阶码位数越多可表示范围越大
精度取决于尾数的位数,尾数位数越多,能表示的精度越高


规格化浮点数表示形式
在二进制中,规格化浮点数表示为1.xxx × 2n ,其中1.xxx是规格化尾数,n是阶码。
尾数不以1开头,需调整阶码和尾数使尾数最高位为1


运算电路???

数据的运算

移位运算???


定点数补码加、减法运算规则

补码加法中,符号位与数值位一同按二进制加法运算,逢二进一。
补码减法是把减法变加法,即减去一个数等于加上其补码,再按加法规则计算。
在这里插入图片描述


定点数乘法运算过程(原码一位乘法)
符号位单独处理,乘积符号为两数符号异或。
绝对值运算时,从乘数最低位起,为1则把被乘数加到部分积,为0则部分积不变,每次运算后部分积和乘数右移一位,直到处理完乘数所有位,最后结合符号位得结果。


定点数除法运算过程(原码恢复余数法)
符号位处理同乘法。先比较被除数和除数绝对值大小,确定商的首位。
运算时,若余数大于等于0,商1并将余数左移一位减去除数;
若余数小于0,商0并将余数左移一位加上除数,
重复操作直至得到规定精度商。


运算中的溢出判断方法???
在这里插入图片描述
定点数运算中,可通过双符号位法判断溢出。
运算结果两符号位相同表示无溢出,不同表示溢出,如01表示正溢出,10表示负溢出;
也能根据运算前后符号位变化和进位情况判断。


校验码

奇偶校验码原理与检错方式
奇偶校验码通过在数据后加校验位,使编码中1个数为奇数(奇校验)或偶数(偶校验)。接收端检查1个数是否符合奇偶性,不符则传输出错,但只能检奇数位错误,无法检偶数位错误和确定错误位置。


海明码优势
海明码能检错和纠错。在数据位插入多个校验位,按规则分组进行奇偶校验。数据出错时,分析校验位状态确定错误位置实现纠错,这是奇偶校验码做不到的。


海明码校验位确定与纠错过程
先根据数据位数确定校验位个数,满足2r≥n + r + 1(n是数据位数,r是校验位个数)。确定校验位位置和校验关系,形成海明码。接收端根据校验关系计算校验和,结果为0无错,非0对应错误位编号,取反纠错。


CRC校验码原理与计算过程
CRC校验码基于模2运算。发送端根据数据和生成多项式计算冗余码,数据后拼接冗余码形成CRC码发送。接收端用相同生成多项式对接收数据模2除,余数为0无错,非0则出错。


3.存储系统

4.指令系统

5.中央处理器

6. 总线

7. 输入/输出 系统


http://www.mrgr.cn/news/95965.html

相关文章:

  • 【模型压缩+推理加速】知识蒸馏综述解读
  • 嵌入式硬件工程师从小白到入门-原理图(三)
  • ofd转pdf报错:org.ofdrw.reader.ZipUtil.unZipFileByApacheCommonCompress【已解决】
  • 语言模型理论基础-持续更新-思路清晰
  • Vue 2 探秘:visible 和 append-to-body 是谁的小秘密?
  • Brainstorm绘制功能连接图(matlab)
  • vue - [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.
  • 第六篇:Setup:组件渲染前的初始化过程是怎样的?
  • 【Linux】交叉编译2
  • OpenCV图像拼接(5)图像拼接模块的用于创建权重图函数createWeightMap()
  • 嵌入式硬件工程师从小白到入门-PCB绘制(二)
  • 进程通信(进程池的模拟实现) read write函数复习 Linux ─── 第23课
  • 数据结构day04
  • python康复日记-request库的使用,爬虫自动化测试
  • 26考研——图_图的存储(6)
  • 26考研——图(6)
  • 2.基于多线程的TCP服务器实现
  • sql server如何提高索引命中率
  • 亚马逊云科技全面托管DeepSeek-R1模型现已上线
  • 【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发