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

计算机组成原理--一章二章

这里写目录标题

  • 第一章:计算机系统概述
    • 计算机的发展
    • 计算机的组成
    • 计算机的性能指标
  • 第二章:数据的表示和运算
    • 2.1
      • 进位十进制
      • BCD码
      • 无符号整数的表示和运算
      • 带符号整数的表示和运算
      • 原反补码的特性对比
      • 移码
      • 定点小数
    • 2.2
      • 奇偶校验码
      • 算数逻辑运算单元(ALU)
        • 介绍
        • 补充:电路
        • 异或门实现奇偶校验
        • 实现加法器

第一章:计算机系统概述

计算机的发展

计算机的组成

计算机的性能指标

第二章:数据的表示和运算

2.1

进位十进制

BCD码

无符号整数的表示和运算

带符号整数的表示和运算

原反补码的特性对比

移码

定点小数

2.2

奇偶校验码

算数逻辑运算单元(ALU)

介绍

输入和输出:在这里插入图片描述
ALU的输入有两个数,每个数都是使用一个机器字长的位数来表示数据的,比如上图中A和B都是4位bit,最终计算得到的结果也是4位

进行运算:
在这里插入图片描述
ALU中会接入CU的控制,其中,M为1时表示逻辑运算,M为0时表示算术运算
而S有四个bit,所以可以表示2的四次方种功能,所以,可以控制实现算术运算和逻辑运算各16种运算

补充:电路

基本逻辑运算:
在这里插入图片描述
基本的逻辑运算,与、或、非,其中,与、非的电路如上图所示,而非门的图就是在输出端加一个空心圆圈

对于基本的逻辑运算,我们有优先级:非>与>或
且有运算律,通过运算律我们可以改造电路,使得电路设计更简单,也就更省钱

复合逻辑电路:
在这里插入图片描述
这里的德摩根律非常实用,可以借助此定律利用与或非来实现异或电路,(ps:注意上图中的图,A、B线有交叉,注意不要看岔)
上图圈起来的是各个逻辑对应的电路图标
在这里插入图片描述
同或:对异或取反

异或门实现奇偶校验

在这里插入图片描述
首先对于奇偶校验来说,当所有位的1的个数为奇数个的话,结果为1,当有偶数个,结果为0

这正好符合异或的特性,从定义来说,相同的异或出来的结果是0,不同的是1,所以计算下去,结果与奇偶校验的结果一样
同时,我们也可以利用异或的一个技巧,即消消乐,最后剩下什么,结果就是什么,如上图最后剩下0,结果就是0

实现加法器

一位加法:
在这里插入图片描述
A、B是两个加数,i表示当前计算的是从右向左第几位
Ci-1,表示来自i-1的进位,也表示当前 i 所需要加上的进位;而Ci,表示的则是当前第 i 位向更高一位的进位是0还是1

上图中需要ps的是:关于Ci的计算,有两种情况,这两种情况是或的关系,其中一个是AB都为1,另一个是AB至少一个1,且C也是1

图像化类比:
在这里插入图片描述

串行加法器:
在这里插入图片描述
多了一个进位触发器,用于保存上一次计算而来的Ci,用于参与下一位的计算中

串行进位的并行加法器:
在这里插入图片描述
并行加法器,就是同时有多个串行加法器,将输入与输出拼接起来,就可以同时输入多个A、B的位进行运算了

但是!由于左边的加法器仍然依赖于右边对于Ci-1的输入,所以,他还是依赖于串行计算,因此叫做串行进位的并行加法器
从右下角的逻辑表达式也可以看出:每一步的计算都依赖于上一步的C的产出

http://www.lryc.cn/news/461639.html

相关文章:

  • zookeeper kafka集群配置
  • Java IO 基础知识
  • 【报错处理】MR/Spark 使用 BulkLoad 方式传输到 HBase 发生报错: NullPointerException
  • 域7:安全运营 第17章 事件的预防和响应
  • Linux常见基本指令 +外壳shell + 权限的理解
  • Android Framework AMS(07)service组件启动分析-1(APP到AMS流程解读)
  • 深度学习:领域适应(Domain Adaptation)详解
  • 华三服务器R4900 G5在图形界面使用PMC阵列卡(P460-B4)创建RAID,并安装系统(中文教程)
  • Linux实验三
  • Vue预渲染:深入探索prerender-spa-plugin与vue-meta-info的联合应用
  • 使用`ThreadLocal`来优化鉴权逻辑并不能直接解决Web应用中session共享的问题
  • Python implement for PID
  • C++中的initializer_list类
  • 持续科技创新 高德亮相2024中国测绘地理信息科技年会
  • 深入理解HTTP Cookie
  • Python多进程编程:使用`multiprocessing.Queue`进行进程间通信
  • Docker 常见命令
  • Map 双列集合根接口 HashMap TreeMap
  • Pip源设置(清华源)相关总结
  • 编程入门攻略
  • C++核心编程和桌面应用开发 第十一天(静态转换 动态转换 常量转换 重新解释转换)
  • Ubuntu-Ubuntu22.04下Anacodna3的qmake和Qt的qmake冲突问题
  • mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)
  • AI工具 | Notion全新AI集成:搜索、内容生成、数据分析与智能聊天功能发布
  • 微知-如何查看PCIe设备插入在哪个插槽以及对应的busid?(biosdecode)
  • 数据结构 —— 树和二叉树简介
  • ubuntu安装boost
  • 【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例
  • CIM系统:智慧城市的数字基石
  • Android中Fragment的使用场景与生命周期