第一章 概论

  • 计算机硬件组成

    • CPU
      • 运算器
        • ACC (累加器) 存放 被加/减数,乘积高位,被除数运算结果
        • x (操作数寄存器) 存放 加/减数 被乘数 除数
        • MQ (乘商寄存器) 存放 乘数 商
        • ALU (算术逻辑单元) 计算
          【这个存放 结合运算那一章能更好记忆】
      • 控制部分
        • IR(指令寄存器) 存放指令

        • PC(程序计数器) 存放下一条指令的地址,每次执行完自动+1

        • CU(控制单元) 通过指令给出控制信号

    • 主储存器
      • MDR(数据寄存器) 存放数据
      • MAR(地址寄存器) 存放地址
      • 储存体 由储存单元构成
    • 步骤------完成a*b+c的操作(只写区别)
      • pc把指令地址传到mar,+1,mar将地址传到存储体,给出指令存放到mdr,mdr将指令传到ir,ir将指令传到cu,cu分析是 取数指令 【之后这个操作以…代替】
      • ir将指令的地址送到mar,mar->存储体->mdr,mdr将数传到acc
      • … 乘
      • acc 中的被乘数放到x ,mdr的乘数放到mq,alu运算后将结果放到acc
      • … 加
      • mdr中的加数放到x,alu运算后将结果放到acc
      • … 停机
      • 中断
  • 解释程序和编译程序

    • 解释程序java python 每次执行都要解释一次(执行一次解释一次)
    • 编译程序 c 第一次执行会生成一个.exe 之后每次执行只需要运行程序就可以(编译一次)
    • 指令
    • 微指令 -> 机器指令(二进制码) -> 汇编指令(人性化的机器指令[一一对应]) -> 高级语言
  • 计算机性能

    • 执行指令
      • CPU主频 1s能执行多少个时钟周期
      • CPI 一个指令需要多少个时钟周期
      • IPS 一秒可执行的指令数量
      • 执行一条指令的时间 = 时钟周期 * CPI
    • 容量
      • mdr的位数 * mar 的位数
    • 一些细节
      • 频率,速度 的 K M 底数为10[3] 大小 容量 K M 底数是2[10]
      • 1B = 8b
  • 计算机表示

    • 十进制 转 二进制 [先取的是靠近0 的那一位]
      • 大于0 除基
      • 小于0 乘基

    在这里插入图片描述

    • 八进制 十六进制 和 二进制的转换 二进制用3位 4位 来代表一位
    • 十六进制 …H 0x…
    • 二进制 …B

BCD

  • 作用 机器运算规律是二进制 人熟悉十进制 BCD让两者的转换更快
  • 8421码
    • 四个二进制 0000-1001对应 0-9
    • 超出加6(以14(1110)为例)
      • 1110+ 0110 = 0001 0100 = 1 4

校验码

  • 码字 多个码位构成
  • 码距 两个码字差别的位数
    • 10 11 码距为1 100 111 码距为
  • 码距为1一无是处 码距为2 具有检错能力 码距>=3可能具有具有纠错能力
奇偶校验(统计1的个数)
  • 在原码字的基础上加上一位校验码,使得1的个数为偶(偶校验)或者为奇(奇校验)
  • 检验的时候使用异或 如果全部异或结果等于0 那么偶校验正确
汉明码(1位纠错)

假设码字为10111110

  • 确定校验码的数目 k = 4
    • 设置多位校验码,设校验码的数量是k,码字的位数为n,2k < k+n+1
    • 为什么 : 一位错,错误状态为k+n个,再加上一种正确的状态
  • 校验码的位置 1 2 3 4
    • 1248…2n
  • 分组(设校验码位P,信息位为D)
  • 组数 = 校验码的个数
  • 第一个组为校验位是P1 信息位为编号(从1开始)为1111 0011 0111 0101
  • 每个分组中信息位的编号
    • 校验位编号的二进制的1的位置是m
    • 那么这个分组中包含的信息位 编号 的 二进制位 的 第m个位置 需要是 1
  • 确定校验位 0101
    • 对一个组中的各位做异或,使得结果为0(偶校验)来确定校验位是什么
  • 检验
    • 如果一个位置出错,那么这个位置所存在的组也会出错,这些组中的校验位相加正是这个位置的编号
    • 图中顺序是反过来的转
  • 补充 海明码的两位检错需要加一个全校验位
  • 在这里插入图片描述
  • 循环冗余校验码(一般用来纠错)
    • 方式 通过信息位对除数做模2除
    • 步骤
      • 首先约定一个多项式(常数不能为0)【不理解为什么非要多项式,直接将除数传过去不是更好吗】
      • 根据多项式得到除数 x3+1 --> 1 * x 3 + 0 * x2+ 0 * x1 + 1 * x0–> 1001
      • 将信息位除除数得到余数,把余数添到信息位后面
      • 接受方得到信息后对除数做除法,如果余数不为0,则传输出现错误
    • 模2除
      • 最高位1 商1 最高位0 商0 然后两者做异或
      • 转
  • 总结
    • 以后操作系统和这个还是一起学吧,忘的太快
    • 上标^^ 下标~~

补充

  • PC自增
  • 一个寄存器按字编址,那么它一个储存单元是8位,而如果计算机的指令长度是16位,那么PC再读完这条指令的时候应该加2(指令在主存中顺序存取,PC装的是这些指令的地址)
  • 汇编程序员可见的部件
  • 可见的部件
    • PC 通过转移指令可见
    • 通用寄存器 可以指定这个通用寄存器的功能
    • PSW(标识符寄存器) 修改PSW实现中断控制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值