本次笔记内容:
P5 计算机组成原理(05)
P6 计算机组成原理(06)

注:本节课开始,我找到了对应内容的课件,请见于GitHub的CS笔记仓库。因此,为了节省时间,我只记录老师上课强调的内容与对应ppt页码。

本节课对应幻灯片:组成原理13 data,第1页起。

文章目录

  • 内容提要
  • 引例
    • 程序设计举例(1)
    • 程序设计举例(2)
  • 数据编码与表示
    • 总述
    • 编码表示
  • P9 逻辑型数据
  • P18 补码求真值
  • P70 大端机与小端机
  • P32 进入检错与纠错环节
  • P34 码距
  • P36 开始讲解奇偶校验码等
  • 总结

内容提要

  • 数据表示的需求(哪些数据需要放到计算机中)
  • 逻辑型数据表示
  • 字符的表示
  • 整数的表示
  • 浮点数本节课不讲,以后讲
  • 检错纠错码

计算机的核心功能就是对数据进行加工。而程序则是人与计算机的交换工具。

引例

程序设计举例(1)

如上图,以L1 R1 1这条指令为例,L1对应01101为操作码,R1为001为寄存器编号,1对应00000001为立即数。

下面的FF对应1111111,代表-1。

程序设计举例(2)

;WELCOME
MFPC R7             // 把PC的值给R7
ADDIU R7 0x0003     // 把R7的值加3
NOP                 // 空操作
B TESTW             // 跳转到TESTW函数,测试串口// 串口能写,则返回// 不能写,则在串口陷入循环
LI R6 0X00BF        // 把端口号BF00送给R6
SLL R6 R6 0x0000
LI R0 0x004F        // 将0x004F送给串口(终端)// 终端可以是屏幕等// 0x004F即ASCII中的O
SW R6 R0 0x0000
NOP

数据编码与表示

总述

需要在计算机中表示的对象:

  • 程序、整数、浮点数、字符(串)、逻辑值
  • 通过编码表示

表示方式:

  • 用数字电路的两个状态表示,存放在机器字中;
  • 由上一层的抽象计算机来识别不同的内容。

编码原则:

  • 少量简单的基本符号(0 1)
  • 一定的规则
  • 表示大量复杂的信息
  • 方便使用

编码表示

基本元素:

  • 0、1两个基本符号

字符:

  • 26字母=>5位
  • 大/小写 + 其他符号 => 7 bits (in 8)
  • 世界上其他语言的文字 => 16 bits (unicode)

无符号整数:

  • 0, 1, 2, … , 2^n - 1

逻辑值:

  • 0 => False
  • 1 => True

此外,编码表示的还有颜色、位置/地址/指令等。

应注意,n位只能代表2^n个不同的对象。

P9 逻辑型数据

用数字电路实现其运算,也很容易。

逻辑型数据可以用1位来表示,但是因为现在计算机最小访问单元是一个字或者字节,因此其大小也并不为一个位。

P18 补码求真值

之所以如此设计补码(取反码再加1),是因为补码可以直接求真值。

补码求真值:
N=−bn−1×2n−1+∑i=0n−2bi2iN = -b_{n-1} \times 2^{n-1} + \sum_{i=0}^{n-2} b_i 2^iN=−bn−1​×2n−1+i=0∑n−2​bi​2i

真值求补码:

  • 正数的补码是绝对值源码;
  • 负数的补码是绝对值源码按位求反后,再在最低为加1。

补码的加法运算:

  • [x+y]补=[x]补+[y]补[x+y]_补 = [x]_补+[y]_补[x+y]补​=[x]补​+[y]补​

[x]补[x]_补[x]补​与[−x]补[-x]_补[−x]补​:

  • [x]补[x]_补[x]补​连同符号位在内,逐位求反,再在最低位加1,即可得到[−x]补[-x]_补[−x]补​

关于源码、补码的内容可以查看P65起。

P70 大端机与小端机

大端机与小端机通讯时,要注意转换高低位。

大端机是“更按照直觉来的那个”。

P32 进入检错与纠错环节

如何判断(编码)是否出错?

第一种思路:与已有编码逐个比较,查看是否是计算机认识的编码。但是这很低效。

第二种思路:检验是否存在某个特征。这个特征应该预置到编码中。

P34 码距

“若用4个二进制位表示8种合法的状态,就可以只使用其中的8个编码来表示,另外8个为非法编码。合法的码距为2。任何一位出错后都会成为非法码,有检测一位出错的能力。”

合理增大码距,能提高发现错误的能力,但表示一定数量的合法码所使用的二进制位数要变多,增加了电子线路的复杂性和数据存储、数据传送的数量。

常用检错纠错码在计网课中细讲。

P36 开始讲解奇偶校验码等

设计校验码的同时,要注意其在电路上是否好实现

我认为这是计组这门课的特色之一。

总结

ppt中有很丰富的内容,课上没有涉及,需要自己阅读、了解相关资料:

  • 浮点数的内容;
  • 汉明码(课上讲了)。

【Computer Organization笔记03】信息编码与码制转换,数据表示:检错与纠错、码距、汉明码等相关推荐

  1. 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史

    资源Bilibili AV58129929 计算机组成原理 清华大学 刘卫东 本次笔记内容: P1 计算机组成原理(01) P2 计算机组成原理(02) 文章目录 课程信息 预热内容-课程介绍 学习目 ...

  2. 【Computer Organization笔记06】浮点数的数据表示,浮点数加减运算

    本次笔记内容: P11 计算机组成原理(11) P12 计算机组成原理(12) 本节课对应幻灯片:组成原理13 data,第72页起.此外,本节课内容"浮点数"已经在"汇 ...

  3. 【Computer Organization笔记28】总复习

    本次笔记内容: P55 计算机组成原理(55) P56 计算机组成原理(56) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  4. (笔记)labview各种进制转换(通讯得到的负数补码转换成负数原码)

    起因: 我是因为传感器手持显示器读到负的值,传感器说明书说通讯回馈负值是以补码形式,因此开始研究如何显示. 前情提要: modbus 485得到的是16进制 (右键选择16进制,否则是乱码) 已知原码 ...

  5. 中国二维码--汉信码(中国主导的首个二维码码制国际标准「汉信码」ISO/IEC 20830:2021《信息技术 自动识别与数据采集技术 汉信码条码符号规范》)

    国际标准化组织(ISO)和国际电工协会(IEC)正式发布汉信码 ISO/IEC 国际标准 --ISO/IEC 20830:2021<信息技术 自动识别与数据采集技术 汉信码条码符号规范>. ...

  6. 进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)

    文章目录 前言 一.进制转换 1.1 二进制转换为八进制数和十六进制数 1.2 任意进制数转换为十进制数 1.3 十进制转换为任意进制 二.校验码求取 2.1海明校验码 2.2循环冗余校验CRC码 总 ...

  7. 单片机进制转换实现(报告+源码)

    用4x4矩阵及LCD1602液晶显示实现各进制转换 摘要:在计算机及其相关的各领域中,数制的二进制.八进制.十进制和十六进制之间的相互转换可谓无处不在.为满足相关领域人员对进制转换计算的需求,特此利用 ...

  8. 进制转换 和 正数负数——原码,反码,补码

    进制转换 定义:进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制.八进制.十进制与十六进制,它们之间**区别在于数运算时是逢几进一位.比如二进制是逢2进一位,十进制也就 ...

  9. 【基础知识】~ 进制转换、补码、格雷码、BCD码、独热码

    1. 进制转换 1.1 十进制 to 二进制 正整数转二进制:除二取余,然后倒序排列,高位补零. 负整数转二进制:先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一. 小数转二进制:对小 ...

最新文章

  1. 再见,工资!程序员工资统计平均14404元,网友:又跌了!
  2. 调用其他文件的define_C与C++的互相调用!就像大学宿舍一样,我用你的,你用我的!...
  3. Redis学习笔记1-Redis数据类型
  4. 街上第一台电子计算机是,南京信息工程大学滨江学院2009级《计算机基础》(文科)a试卷(含答案)【最新】.doc...
  5. 3秒搞定!~~ 一亿数据获取前100个最大值
  6. 39个转录组分析工具,120种组合评估
  7. linux c 错误码大全及错误的捕获
  8. javascript之调度:setTimeout 和 setInterval
  9. Jmeter与数据库的连接
  10. 调用mysql1045解决_MySQL 1045错误的解决方法
  11. MNIST数据集下载与保存为图片格式
  12. html合并pdf文件,PDF Mergy:合并PDF
  13. torch.manual_seed(args.seed) torch.cuda.manul_seed_all(args.seed)和numpy.random.seed()
  14. 开放封闭原则_开放/封闭原则
  15. 匿名突破网络限制 (Tor工作原理分析)
  16. rar和unrar压缩解压
  17. win10不能上传文件到服务器,Win10系统下蓝牙无法传输文件怎么解决
  18. 一篇搞懂OOA/OOD/OOP的区别
  19. 维度建模的基本概念及过程
  20. 全局钩子+正则表达式=后台自动获取扫描枪数据

热门文章

  1. 【Python-2.7】换行符和制表符
  2. 关于Clipboard剪切板获取值为NULL问题解决方法
  3. 解决MVC运行controller的时候只有有参构造函数但是程序一定要走无参构造函数的方法
  4. 解决重装 Oracle 出现的 INS-32025 问题,完全卸载 Oracle11g
  5. 关于win7系统中所有exe文件都被以word方式打开的解决方法
  6. 解决客户端Redis中文乱码问题
  7. 移动端HTML5音频与视频问题及解决方案
  8. Activiti(6.0)任务管理服务TaskaskService
  9. android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析
  10. css3 复合选择器,CSS复合选择器