【重学计算机】计算机组成原理,Java面试手写代码

[x·y]补 = [x]补·( -y0+∑ yi2-i )

= [x]补·[ - _y_0 + _y_12-1 + _y_22-2 + … + _yn_2-n]

= [x]补·[ - _y_0 + (_y_1 - _y_12-1) + (_y_22-1 - _y_22-2) + … + (_yn_2-(n-1) - _yn_2-n)]

= [x]补·[(_y_1 - _y_0) + (_y_2 - _y_1) 2-1 + … + (yn - yn-1) 2-(n-1) + (0 - yn)2-n]

总结起来设计数字电路的规则就是:

  • 为00或者为11的时候,直接右移一位

  • 为01的时候,加x的补,然后右移一位

  • 为10的时候,加-x的补,然后右移一位

PS:其实第一行和最后一行都能设计数字电路,为什么要从第一个式子推到最后一个式子呢?原因有两点:

1)二进制中如果有0,可以不进行运算

2)如果有连续的1可以减少计算次数,比如 a * 001111100 = a * (010000000 - 0000000100)

所以每次判断 yn+1 - yn就可以减少计算次数了

参考:https://www.cnblogs.com/xisheng/p/9260861.html

3. 定点数除法 — 略,没找到好的资料

4. 浮点数加减法

(1)求阶差,阶码小的对齐大的

(2)尾数加减

(3)结果规格化

四、存储系统


1. 存储系统层次结构

主存速度缓慢的原因:主存增速与CPU不同步,执行指令期间多次访问主存

主存容量不足的原因

  • 存在制约主存容量的技术因素:如由CPU、主板等相关技术指标规定了主存容量

  • 应用对主存容量需求不断扩大:window98 – 8M,windows 8 – 1G

-----> 存储体系结构化层次:  CPU – Cache1 – Cache2(解决速度) – 主存 – 辅存(解决容量)

存储体系结构化层次理论基础

  • 时间局部性:程序体现为循环结构

  • 空间局部性:程序体现为顺序结构

2. 主存中的数据组织

存储字长:主存的一个存储单元所包含的二进制位数,目前大多数计算机主存按字节编址,主要由32为和64位

数据存储与边界的关系

  • 按边界对齐的数据存储,未按边界对齐的数据存储

  • 边界对齐与存储地址的关系:(32位为例)

  1. 双字长边界对齐:起始地址最末三位为000(8字节整数倍)

  2. 单字长边界对齐:起始地址最末二位为00(4字节整数倍)

  3. 半字长边界对齐:起始地址最末一位为0(2字节整数倍)

大端与小端存储方式

  • 大端:最高字节地址是数据地址(0123存成0123)

  • 小端:最低字节地址是数据地址(0123存成3210)

3. 存储器分类

  • SRAM存储器:存取速度快,但集成度低,功耗大,做缓存

  • DRAM存储器:存取速度慢,但集成度高,功耗低,做主存

DRAM刷新方式:集中刷新、分散刷新、异步刷新

4. 主存容量的扩展

  • 位扩展法:8K * 8位 --> 8K * 32位

  • 字扩展法:8K * 8位 --> 32K * 8位

  • 字位同时扩展法:8K * 8位 --> 32K * 32位

5. Cache的基本原理

  • cache的工作过程

    • 数据:cpu与cache交换字,cache与内存交换块

    • :命中,不命中

    • :写穿策略,写回策略

  • 写策略

    • 写穿策略(write through):同时写缓存和内存,好像穿过缓存一样。若不命中,先写到主存中,并选择性地同时分配到缓存中(写分配/非写分配)

    • 写回策略(write back):写到缓存后不管了,只有当缓存的内容替换回主存时再管,需有脏位。好像隔段时间后再写回到主存中一样

  • 地址映射机制

    • 相联存储器:地址本身包含着位置啊可比较的信息啊等内容信息,可根据区分地址内容进行寻址

    • 主存地址 = 块地址 + 块内偏移地址 = (Tag + Index) + 块内偏移地址

    • cache结构

      • 好多行,每行与主存块大小相等

      • 每行 = tag + data + valid + dirty

    • 三种映射方式

      • **全相联:**cache行号 = random(内存块号)

      • **直接相联:**cache行号 = 内存块号 % cache行数

      • **组相联:**两者结合。8行1路组相联就是全相联,8行8路组相联就是直接相联

  • 替换算法

    • 先进先出法-FIFO

    • 最近最不经常使用法-LFU

    • 近期最少使用法-LRU

    • 随机替换法

6. 虚拟存储器

  • 解决问题:主存容量不足。希望向程序员提供更大(比主存大)的编程空间

  • 分类:页式,段式,段页式

  • 页式实现方式:MMU(Memory Management Unit) + 页表 + TLB(Transaction Lookaside Buffer:地址转换后备缓冲器)

  • 页式转换过程:虚拟地址 = 虚拟页号 + 页内偏移 ==> 物理页号 + 页内偏移

7. RAID

    • 概念:独立磁盘构成的具有冗余能力的阵列(Redundant Arrays Independent Disks)

    • 核心技术:使用异或运算恢复数据 (x⊕y = z  --> x = y⊕z)

    • 分类

      • RAID0:条带均匀分布

        磁盘0磁盘1磁盘2磁盘3
        D0D1D2D3
        D4D5D6D7
        D8D9D10D11
      • RAID1:以镜像为冗余方式

        磁盘0磁盘1
        D0D0
        D1D1
        D2D2
      • RAID3/4:有校验盘

        磁盘0磁盘1磁盘2校验磁盘
        D0D1D2P0
        D3D4D5P1
        D6D7D8P2
      • RAID5:校验信息分布式

        磁盘0磁盘1磁盘2磁盘3
        D0D1D2P0
        D3D4P1P5
        D6P2D7D8
        P3D9D10D11
      • RAID10/01:10是先镜像再条带化,01是先条带化再镜像

      • RAID50:先RAID5,再条带化

五、指令系统


1. 指令系统基本概念

  • 指令集:一台机器所有指令的集合。系列机(同一公司不同时期生产);兼容机(不同公司生产)

  • 指令字长:指令中包含的二进制位数,有等长指令变长指令

  • 指令分类

    • 根据层次结构:高级、汇编、机器、微指令

    • 根据地址码字段个数:零、一、二、三地址指令

    • 根据操作数物理位置

      • 存储器-存储器(SS)

      • 寄存器-寄存器(RR)

      • 寄存器-存储器(RS)

    • 根据指令功能:传送、算术运算、位运算、控制转移

  • 指令格式:操作码+数据源+寻址方式

2. 寻址方式

  • **指令寻址方式:**顺序寻址,跳跃寻址

  • 操作数寻址方式

    • 立即数寻址:地址码字段是操作数本身 MOV AX, 200H

    • 寄存器寻址:地址码字段是寄存器地址 MOV AX, BX

    • 直接寻址:地址码字段是内存地址 MOV AX, [200H]

    • 间接寻址:地址码字段是内存地址的地址 MOV AX, I[200H]

    • 寄存器间接寻址:地址码字段是存内存地址的寄存器地址 MOV AX, [BX]

    • 相对寻址:操作数地址 + 当前PC的值

    • 基址寻址:操作数地址 + 基址寄存器的值(一段程序中不变) MOV AX, 32[B]

    • 变址寻址:操作数地址 + 变址寄存器的值(随程序不断变化) MOV AX, 32[SI]

3. MIPS

  • 三种指令格式

    • R型指令:

      6bits5bits5bits5bits5bits6bits
      000000RsRtRdshamtfunct
    • I型指令:

      6bits5bits5bits16bits
      OPRsRt立即数
    • J型指令:

      6bits26bits
      OP立即数

六、中央处理器


1. CPU的组成与功能

2. 数据通路

  • 概念:执行部件间传送信息的路径,分共享通路(总线)和专用通路

  • 抽象模型:时钟驱动下,A --> 组合逻辑 --> B

  • D触发器定时模型

    • 时钟触发前要稳定一段时间:建立时间(Setup Time)

    • 时钟触发后要稳定一段时间:保持时间(Hold Time)

    • 时钟触发到输出稳定的时间:触发器延迟(Clk_to_Q)

    • 与时钟周期的关系

      • 时钟周期 > Clk_to_Q + 关键路径时延 + Setup Time

      • Clk_to_Q + 最短路径时延 > Hold Time

3. 指令周期

  • 指令执行的一般流程

  • 基本概念

    • 时钟周期 = 节拍脉冲 = 震荡周期

    • 机器周期 = CPU周期 = 从主存读取一条指令的最短时间

    • 指令周期 = 从主存读指令并执行指令的时间

  • 指令时间控制
 机器周期数节拍数同步方式实践
定长指令周期不变不变按机器周期mips单周期
变长指令周期按时钟周期mips多周期

4. CPU设计

略,详情请参见《自制CPU系列》

七、总线


1. 系统总线的特性及应用

  • 总线概念:将计算机系统中各部件连接起来

  • 总线分类:(外部/内部,系统/非系统,串行/并行,同步/异步…)

    • 按用途分类

      • 存储总线:cpu与存储器

      • 系统总线:连接存储总线和IO总线的中间总线

      • IO总线:连接外部设备

    • 按位置分类

      • 外部总线:USB,火线(IEEE1394)

      • 内部总线:PCI(连网卡),AGB(连显卡)

      • (芯)片内总线:AMBA(ARM处理器)

    • 按组成分类

      • 数据总线:传数据,双向三态

      • 地址总线:传地址,单向三态

      • 控制总线:控制信号和时序信号

      • 电源线和地线:略

2. 总线性能和总线事物

  • 总线的性能参数

    • 总线频率:总线工作速率f,单位是MHz

    • 总线宽度:数据总线的宽度w,单位是bit

    • 总线传输速率:总线传输数据量BW,单位是MB/s。BW = w / 8 * f

  • 总线事务

    • 概念:从请求总线到完成使用的操作序列(请求 - 裁决 - 地址传输 - 数据传输 - 总线释放)

    • 角色:主设备(CPU,DMA)和从设备

    • 四个阶段:请求与仲裁 - 传输 - 寻址 - 结束

    • 常见总线操作:读,写,读修改写,写后读,块操作

3. 总线连接方式

  • 单总线结构

  • 双总线结构

  • 多总线结构

  • 总线桥:不同速率总线之间的连接,起速度缓冲、电平转换、控制协议转换的作用

    • 多级总线结构(南北桥)

    • 单总线结构

  • 总线结构对系统性能的影响
 多总线单总线
对最大存储容量不影响因要与io共享内存,影响
对指令系统增加IO指令无IO指令
对吞吐量

4. 总线仲裁和数据传输方式

  • 菊花链式串行总线仲裁:简单,只要有一个主设备占用总线,其他就占不了

  • 集中式并行总线仲裁

    • 固定优先级策略:优先级高的主设备,总会优先控制总线权

    • 轮叫式策略:皇帝轮流做

    • LRG策略:最近获得控制权的,再获得控制权的优先级高(经常用的就更容易获得总线控制权)

5. 总线标准

    • 概念:计算机各部件之间利用总线传输信息应遵守的协议和规范,包括硬件和软件两部分

    • 常见的总线标准

      • 机箱内部总线:

        • ISA - EISA - VESA

          • ISA(Industrial Standard Architecture):最早指定的总线技术标准,总线宽度8/16位,频率5-8MHz,带宽5-8MB/s

          • EISA:宽度变成32位

          • VESA:宽度变成64位

        • PCI(PCIe) - AGP

able>

4. 总线仲裁和数据传输方式

  • 菊花链式串行总线仲裁:简单,只要有一个主设备占用总线,其他就占不了

  • 集中式并行总线仲裁

    • 固定优先级策略:优先级高的主设备,总会优先控制总线权

    • 轮叫式策略:皇帝轮流做

    • LRG策略:最近获得控制权的,再获得控制权的优先级高(经常用的就更容易获得总线控制权)

5. 总线标准

    • 概念:计算机各部件之间利用总线传输信息应遵守的协议和规范,包括硬件和软件两部分

    • 常见的总线标准

      • 机箱内部总线:

        • ISA - EISA - VESA

          • ISA(Industrial Standard Architecture):最早指定的总线技术标准,总线宽度8/16位,频率5-8MHz,带宽5-8MB/s

          • EISA:宽度变成32位

          • VESA:宽度变成64位

        • PCI(PCIe) - AGP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《王道计算机组成原理》是计算机相关专业经典教材之一,详细介绍了计算机组成原理的相关知识。GoodNotes是一款非常优秀的电子笔记应用程序,可以帮助用户实现快速、便捷的笔记和整理。结合这两者,可以利用GoodNotes来记录和整理习《王道计算机组成原理》的内容。 首先,在GoodNotes中创建一个新笔记本,主题可以是《王道计算机组成原理》或者其他与该教材相关的标题。然后,可以根据教材的章节内容,将每个章节都拆分为一个笔记页面,以便进行更好的整理和查找。 接下来,可以使用GoodNotes的功能,使用笔或指来记录关键概念、要公式和定义。可以选择使用不同颜色的笔来区分不同的内容,例如用红色笔标记要的内容,用蓝色笔绘制图表与示意图,用绿色笔标记关键词等等。 除了内容外,GoodNotes还支持插入图片和PDF文件。如果王道计算机组成原理教材中有要的图表或示意图,可以通过GoodNotes将其插入到相应的笔记页面上,以便更好地理解和复习。 在习过程中,可以使用GoodNotes的标签功能,给要的笔记页面添加适当的标签,方便以后的查找和回顾。同时,可以通过GoodNotes的目录功能对整个笔记本进行分类和组织,按照教材的章节顺序或自己的习进度进行整理。 此外,GoodNotes还提供了多种其他的功能,如文本输入、录音等,可以根据个人需要选择合适的功能来增强习效果。 总结起来,使用GoodNotes作为《王道计算机组成原理》的笔记工具,可以有效地记录、整理和回顾教材内容,提高习效果和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值