计算机硬件技术基础第一章总结

2023-05-16

1.1 计算机发展概述

996.icu

1.1.1 计算机的发展简史

第一台计算机:ENIAC

第一代:电子管数字计算机(1946-1958)

  • 逻辑元件:真空电子管
  • 体积大,功耗高,可靠性差速度慢,维护困难,价格昂贵,应用领域以军事和科学计算为主

第二代:晶体管数字计算机(1958-1964)

  • 逻辑元件:晶体管
  • 性能有所提高,开始应用于数据处理

第三代:集成电路数字计算机(1964-1970)

  • 逻辑元件:中小规模集成电路(MSI,SSI)
  • 速度更快,可靠性更高,产品走向通用化,系列化和标准化,应用领域开始进入文字处理和图形图像处理

第四代:大规模集成电路计算机(1974至今)

  • 逻辑元件:大规模,超大规模集成电路(LSI,VLSI)

1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。

1.1.2 计算机的主要应用

  1. 科学计算
  2. 计算机控制
  3. 测量和测试
  4. 信息处理
  5. 计算机辅助设计/计算机辅助制造/计算机辅助教学
  6. 人工智能
  7. 计算机模拟
  8. 多媒体应用

1.2 微型计算机概述

1.2.1 微型计算机的发展阶段

  • 根据微处理器的字长和功能划分

第一阶段(1971-1973)

  • 4位和8位低档位处理器时代
  • Intel4004,Intel8008以及七组成的MCS-4和MCS-8微机

第二阶段(1971-1977)

  • 8位中、高档微处理器时代
  • Intel8080/8085、Motorola公司的M6800和Zilog公司的Z80

第三阶段(1978-1984)

  • 16位微处理器时代
  • Intel8086/8088、Motorola公司的M68000和Zilog公司的Z8000

第四阶段(1985-1992)

  • 32位微处理器时代
  • Intel80386/80486、Motorola公司的M69030/68040等

第五阶段(1993-2005)

  • 奔腾(Pentium)系列微处理器时代
  • Intel奔腾系列芯片以及与之兼容的AMD的K6系列微处理器芯片

第六阶段(2005至今)

  • 酷睿(Core)系列微处理器时代

1.2.2 微处理器的发展

  • 摩尔定律
  • Intel合作伙伴高登·摩尔于1965年提出
  • 微处理器晶体管密度与摩尔定律

1.2.3影响计算机性能设计的因素

  1. CPU的速度
  2. 性能平衡
  3. 芯片组成和体系结构的改进

为提升计算机性能已经采取的主要策略如下

  1. 提高处理器芯片硬件的速度(减小逻辑门尺寸,提升时钟频率)
  2. 提升处理器芯片内部高速缓存的容量与速度,显著降低CPU对cache的存取时间
  3. 改进处理器的组成和体系结构,更加重视处理器的流水化与超标量化设计,以提高指令执行的有效速度

1.3 微型计算机系统的组成

1. 硬件系统

  1. 主机
  2. 输入设备

2. 软件系统

  1. 系统程序类
  2. 媒体工具类
  3. 硬件驱动类
  4. 网络工具类
  5. 管理软件类
  6. 安全类

1.4 微机硬件系统结构基础

  • 各种计算机都是由微处理器CPU(包含运算器和控制器),存储器(RAM,ROM),输入输出折别(I/O外设及其接口)

1.4.1 总线结构介绍

  • 微型计算机从其诞生以来就采用了总线结构
  • 单总线结构

单总线结构

  • 双总线结构

双总线结构

  • 双重总线结构

双重总线结构

  • 总线有多种分类方式
  1. 传送信息类别:地址总线,数据总线和控制总线
  2. 传送信息方向:单向总线和双向总线.地址总线属于单向总线,方向总是从CPU或其他总线主控设备发往其他设备;数据总线属于双向总线;控制总线属于混合型总线,控制总线中的每一根总线都是单向的,而各种控制线的方向有进有出
  3. 层次结构:CPU总线,存储总线,系统总线和外部总线

1.4.2 微处理器模型的组成

  1. 运算器(算术逻辑单元)
  2. 控制器(可编程逻辑阵列PLA)
  • 指令寄存器
  • 指令译码器
  • 可编程逻辑阵列
  1. 内部寄存器
  • 累加器A
  • 数据寄存器DR
  • 程序计数器PC
  • 地址寄存器AR
  • 标志寄存器F

1.4.3 存储器概述

  • 2¹⁶B=64KB,2²⁰B=1024KB,2³²B=4GB
  1. 存储器组成

如图

  1. 读写操作过程

如图

1.4.4 输入输出(I/O)接口简介

  1. 通常接口会有以下功能
  • 设置数据的寄存,缓冲逻辑,以适应CPU与外设之间的速度差异
  • 进行信息格式的转换
  • 协调CPU和外设在信息的类型和电平的差异
  • 协调时序差异
  • 地址译码和设备选择功能
  • 设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接收到中断和DMA应答之后完成中断处理和DMA传输

1.5 微机的工作原理与程序执行过程

如图

1.6 计算机的运算基础

1.6.1 二进制数的计算

1. 二进制数的算术计算

  • 二进制加法
    15236646539636e199ab000.jpg
  • 二进制减法
    152427830983633r5or2sor.jpg
  • 二进制乘法(移位乘法)
    file.png
    IMG_20190408_173744.JPG
  • 二进制除法
    file.png

2. 二进制的逻辑运算

51MB{LXJK@IFVSOW{PU5~F.png

1.6.2 数制转换综合表示法

B91832DBB3C81B3475D0138C8B3_7711FD45_507F.jpg
file (1).png
file (3).png
file (2).png
file.png

1.6.3 二进制编码(代码)

  1. BCD码
  • 用4位二进制数来表示十进制数中的0~9这十个数码的编码形式,简称为BCD码。
十进制数BCD码
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
  1. 字符与字母的编码
  • 7位ASCII码表
    IMG_20190408_183147.JPG

1.6.4 数的顶点和浮点表示

  • 定点表示:又称整数表示,小数点在数中的位置是固定不变的
  • 浮点表示:又称实数表示,小数点在数中的位置是浮动的
  • 对于任意一个二进制数N,可用N=S*2P表示,其中S为尾数,P为阶码,2为阶码的底,P、S都用二进制数表示,S表示N的全部有效数字,P指明小数点 的位置,当阶码为固定值时,数的这种表示法称为定点表示,这样的数称为定点数;当阶码为可变时,数的这种表示法称为浮点表示,这样的数称为浮点数
  • 通常定点数有两种表示法,均设P=0,小数点是隐含的,若数值部分为n位:当S为纯整数时,此时定点数只能表示整数);当S为纯小数时,此时定点数只能表示小数
    IMG_20190408_184652.JPG
    7U_0TN)0I(QUHBQ}1Y5Q5.png

1.6.5带符号数的表示法

1. 机器数与真值

  • 计算机中的二进制数有无符号数与有符号数之分.之前所讨论的都是指无符号数,带符号的二进制数,是将数学上的+和-符号数字化,规定1个字节中的D₇位为符号位D₀~D₆为数值位.例如

N₁=01011011=+91D
N₂=11011011=-91D

2. 机器数的种类和表示方法

  • 原码,反码和补码
(1) 原码
  • 原码表示方法:符号位用0表示正,用1表示负;其余数字位表示数值本身此机器数的数值部分为真值的绝对值

[+41]原=0 0101001
[-41]原=1 0101001

  • 对于0,可以认为他是(+0),也可以认为他是(-0)

[+0]原=0 0000000
[-0]原=1 0000000

  • 8位二进制原码可表示的数的范围为-127 ~ +127.16位二进制数原码所能表示的有符号数的范围为-32767~ +32767.n位二进制数原码可表示的有符号数的范围为-2^(n-1)-1 ~ +2 ^(n-1)-1
  • 采用原码表示简单易懂,而且与真值的转换很方便,但是采用原码表示时在计算机中进行加减运算很麻烦,因此使用原码设计的计算机电路结构将会非常复杂,由此产生了反码和补码
(2) 反码
  • 反码的表示方法:正数的反码和其原码相同,其符号位用0表示正,数值位为真值的绝对值.负数的反码其符号位用1表示负,数值部分为真值绝对值按位取反

[+41]反=0 0101001
[-41]反=1 1010110

  • 0的反码有两种表示方法

[+0]反=0 0000000
[-0]反=1 1111111

  • 8位二进制反码可以表示的数值范围为-127~ +127.n位反码可以表示的数值范围为-2 ^ (n-1)-1~+2^(n-1)-1

(3) 补码

  • 微机中通常是用补码表示有符号数,因为采用补码之后,同一加法电路既可以用于有符号数相加,也可以用于无符号数相加,而且减法可用加法来代替,从而使运算逻辑大为简化
  • 补码的表示方法:正数的补码与其原码相同,即符号位用0表示正,数值部分为真值的绝对值.复数的补码为它的反码加一(即在其最低位加1)

[+41]补=0 0101001
[-41]补=1 1010111

  • 0的补码只有一个

[+0]补=[-0]补=0 0000000
[+127]补=0 1111111
[-128]补=1 0000000

  • 8位二进制补码所能表示的数值范围为-128 ~ +127
  • 补码求真值时,要先将数值位取反,然后再在最低位+1

1.6.6 补码的加减法运算

IMG_20190408_201950.JPG

1.6.7 溢出及其判断方法

1. 什么叫溢出

  • 溢出是指在进行补码运算时候,运算结果超出了补码的最大范围

例如:X=01000000(+64),Y=01000001(+65) 相加得到的结果为10000001(-127的补码),显然X和Y都是正数,所以得到的结果是错的.同理10000001和11111110相加的结果也是错的

  • 两个不同符号数相加得到的结果无论如何都不会溢出

2. 如何判断溢出

  1. 写出结果,直接根据操作数判断(显然不太方便)
  2. 利用双进位的状态

利用判别式 V = D7c⊕ D6c

  • D7c表示两个符号位D7相加产生的进位,D6c表示两数值部分最高位D6相加产生的进位,若V = 1,则表示有溢出

3. 溢出与进位

  • 进位是指运算结果的最高位向更高位的进位,如有进位,则Cy=1;当Cy=1时,即D7c=1时,若D6c=1则V=0,表示无溢出,其他结果类似.可见进位和溢出十来个个不同的概念
  • 对于16位二进制数,双进位式为:
    V = D15c⊕ D14c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机硬件技术基础第一章总结 的相关文章

  • Ubuntu apt-get install 报错Try ‘apt --fix-broken install‘ with no packages (or specify a solution).

    64 toc 报错 更新镜像 更新镜像的时候修改配置文件 xff08 先修改配置文件的权限 xff09 GCC 安装错误 Recommends libc6 dev but it is not going to be installed or
  • Ubuntu22.04LTS 安装低版本python

    Ubuntu 22 04LTS自带的python版本为3 10 部署项目时需要用到底低个版本的 有可能会出现一系列问题 xff0c 例如SSL模块缺失 先用openssl 命令查一下版本 下载 wget https www python o
  • 重新build iso报错

    报错内容 The CD ROM drive contains a CD which cannot be used for installation xff0c Please insert a suitable CD to continue
  • 给Kylin iso中添加自定义rpm包

    前言 在日常产品交付中会有如下需求 xff1a 客户自己安装centos ubuntu kylin iso xff0c 然后我们把rpm包给到客户 我们直接将rpm包封装到iso xff0c 给客户交付整体iso xff0c 这样不管是对于
  • 适配Dell R750xs server Broadcom BCM57412 NetXtreme-E 10Gb SFP+ 网卡

    摘要 The Issue is to handle Scaler v8 2 385 baf7f3a on Dell R750xs server the 10G NIC card is Broadcom BCM57412 NetXtreme
  • Python3中的urllib.request模块

    Python 3 x版本后的urllib和urllib2 现在的Python已经出到了3 5 2 在Python 3以后的版本中 xff0c urllib2这个模块已经不单独存在 xff08 也就是说当你import urllib2时 xf
  • Python 正则re模块之findall()详解

    1 先说一下findall 函数的两种表示形式 import re kk 61 re compile r 39 d 43 39 kk findall 39 one1two2three3four4 39 1 2 3 4 注意此处findall
  • 用python实现将文件拷贝到指定目录

    基本方法 import os import shutil alllist 61 os listdir u 34 D notes python 资料 34 for i in alllist aa bb 61 i split 34 34 if
  • Ubuntu16.04忘记用户登录密码以及管理员密码,重置密码的解决方案

    1 问题现象 xff1a 由于自己想修改一下当前用户名 xff0c 结果乱改了部分配置文件导致登陆时 xff0c 原先的密码失效 2 问题原因 问题原因 xff0c 搞不懂 xff0c 只是修改了 etc shadow和 etc sudoe
  • 点赋科技:本地生活,如何开启复苏之路

    目前 xff0c 全球经历 这 场前所未有的疫情大流行 已经结束 xff0c 尽管 许多国家和地区的经济和社会都受到了影响 然而 xff0c 做好本地生活的复苏规划和推进 xff0c 将有助于在疫情之后尽快走出经济低迷期 xff0c 恢复社
  • 1130, "Host 'xxxx' is not allowed to connect to this MySQL server"

    问题描述 xff1a 1 在centos装好mysql后 xff0c 在python3程序中通过pymysql远程连接mysql xff0c 但是报 Host 39 39 not allowed connect错误 解决方法 xff1a 1
  • Pycharm配置Git教程

    1 使用场景 平时习惯在windows下开发 xff0c 但是我们又需要实时将远方仓库的代码clone到本地 xff0c 也许要将自己修改的代码push到远端服务器 xff0c 有很多方法可以实现这个需求 xff0c 但是所用的编辑软件不一
  • Ubuntu18.04安装NVIDIA驱动后,循环登录,登录界面进不去,输完密码又回到登录界面

    我安装的是Ubuntu18 04 5 xff0c 3090公版显卡 xff0c 在安装好驱动之后 xff0c 一直循环在登录界面 xff0c 输入密码之后一闪又回到登录界面 xff0c 重装了多次驱动还是不行 解决方法 xff1a 后来发现
  • 安装达梦数据库选择安装路径时提示“无写入权限”

    在使用中标麒麟的Linux系统虚拟机安装达梦数据库时 xff0c 遇到了选择安装路径时 xff0c 数据库安装程序报 无写入权限 问题 经过一番折腾后发现 xff0c 问题原因时系统的临时目录空间太小所导致的 解决方法 xff1a 1 重新
  • Docker部署MySQL单机版

    简单版 一 查看本机是否有MySQL及MySQL端口 防止端口占用 xff09 ps ef grep mysql 二 拉取MySQL镜像 docker pull mysql 5 7 三 运行MySQL镜像 docker run d p 33
  • win10无法关机解决方法

    win10无法关机怎么办 下面阐述一下处理的过程 1 左键双击控制面板 控制面板已放到桌面 xff0c 再单击电源选项 2 在打开的电源选项窗口 xff0c 左键点击 xff1a 选择电源按纽的功能 xff0c 打开系统设置 3 在系统设置
  • 小米电视访问电脑共享文件夹

    输入win 43 R打开运行窗口 输入control进入控制面板 点击 网络和internet 网络共享中心 更改高级共享设置 a 专用 网络设置如图 xff1a b 来宾或公用 网络设置如图 xff1a c 所有网络 设置如图 xff1a
  • 让Everything搜索结果更清爽

    Everything的文件搜索功能很强大 xff0c 但是默认设置下搜索出的结果过于丰富 xff0c 总是会有一些乱七八糟的后缀名文件 xff08 如下图 xff09 xff0c 或许我们并不想搜索出那些文件 这时我们需要对它设置里的排除列
  • 上机 Qt5.14.2 编程应用

    上机 Qt5 14 2 编程应用 关于QT Qt是一个1991年由Qt Company开发的跨平台C 43 43 图形用户界面应用程序开发框架 它既可以开发GUI程序 xff0c 也可用于开发非GUI程序 xff0c 比如控制台工具和服务器

随机推荐

  • Android Studio报错:Error:Could not find com.android.tools.build:gradle:4.1 记一次不长记性的坑

    本文地址 xff1a https blog csdn net zengsidou article details 79797417 看字面意思 xff0c 这个问题是Gradle没有对应版本 在搜索引擎没有找到方法之后 xff0c 尝试自己
  • VBox关闭dhcp

    VBox关闭dhcp C Program Files Oracle VirtualBox gt VBoxManage exe list dhcpservers NetworkName HostInterfaceNetworking Virt
  • Android 使用LottieAnimationView 做启动动画

    lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt RelativeLayout xmlns android 61 34 http schemas android com ap
  • Android OkHttp★

    1 OkHttp OkHttp是Square公司开发的一个处理网络请求的开源项目 是目前Android使用最广泛的网络框架 OkHttp的特点 支持HTTP 2并允许对同一主机的所有请求共享一个socket连接 如果非HTTP 2 则通过连
  • Android GestureDetector★★★

    1 GestureDetecor 用户触摸屏幕时会产生许多手势 xff0c 一般通过重写View类的onTouch 方法可以处理一些触摸事件 xff0c 但是这个方法太过简单 xff0c 如果需要处理一些复杂的手势 xff0c 用这个接口就
  • Android canvas

    1 Canvas Canvas指画布 xff0c 表现在屏幕上就是一块区域 xff0c 可以在上面使用各种API绘制想要的东西 canvas内部维持了一个mutable Bitmap xff0c 所以它可以使用颜色值去填充整个Bitmap
  • Android apk打包流程★

    1 apk打包 Android开发中打包apk主要有两种方式 使用Android Studio集成直接生成apk 使用ant工具在命令行方式下打包apk 不管哪种方式 打包apk的本质过程都是一样的 Android的apk包文件包括两部分
  • Android ViewPager用法

    1 适配器PagerAdapter ViewPager使用适配器类将数据和view的处理分离 xff0c ViewPager的适配器叫PagerAdapter xff0c 这是一个抽象类 xff0c 不能实例化 xff0c 所以它有两个子类
  • Android Fragment★★

    1 Fragment fragment译为 碎片 xff0c 是Android 3 0 xff08 API 11 xff09 提出的 xff0c 最开始是为了适配大屏的平板 Fragment看起来和Activity一样 xff0c 是一个用
  • Android设计模式—适配器模式★★★

    1 适配器模式 适配器模式是指把一个类的接口变换成客户端所期待的另一种接口 xff0c 从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 适配器模式是为了解决接口不兼容问题的 比如厂商给你的接口和你现有的接口对接不起来 旧的数据
  • Android 类加载机制

    nbsp 1 类加载机制 java文件不是可执行的文件 需要先编译成 class文件才可以被虚拟机执行 而类加载就是指通过类加载器把 class文件加载到虚拟机的内存空间 具体来说是方法区 类通常是按需加载 即第一次使用该类时才加载 Jav
  • Android Bitmap防止内存溢出

    1 Bitmap 在Android开发中经常会使用到Bitmap xff0c 而Bitmap使用不当很容易引发OOM Bitmap占用内存大小的计算公式为 xff1a 图片宽度 图片高度 一个像素点所占字节数 xff0c 因此减小这三个参数
  • Swift NSAttributedString的使用

    NSMutableAttributedString let testAttributes 61 NSAttributedStringKey foregroundColor UIColor blue NSAttributedStringKey
  • Android ViewStub

    1 ViewStub ViewStub是一个可用于性能优化的控件 xff0c 它是一个不可见的 零尺寸的View xff0c 可以在运行时进行延迟加载一个布局文件 xff0c 从而提高显示速率 viewstub和include比较像 xff
  • Android Jetpack—LiveData和数据倒灌

    1 LiveData LiveData是Android Jetpack包提供的一种可观察的数据存储器类 xff0c 它可以通过添加观察者被其他组件观察其变更 不同于普通的观察者 xff0c LiveData最重要的特征是它具有生命周期感知能
  • Gradle build 报错:Received status code 400 from server: Bad Request

    全部错误是这样的 xff1a Could not GET 39 https dl google com dl android maven2 com android tools build gradle 3 1 2 gradle 3 1 2
  • 排列组合详解

    在笔试题中看到的一个选择题 用1 3的瓷砖密铺3 20的地板有几种方式 xff1f 排列组合问题 排列和组合问题 xff0c 其实是两种问题 xff0c 区分它们的原则是是否需要考虑顺序的不同 排列问题 xff0c 考虑顺序 xff1b 组
  • SCKKRS-关键词、关键短语提取

    1 简介 SCKKRS Self supervised Contextual Keyword and Keyphrase Retrieval with Self Labelling 本文根据2019年 Self supervised Con
  • kali安装vnc

    一 安装x11vnc 1 经过N多次的实验 xff0c kali一直报错 xff0c tightvncserver一直报错 怎么配置都是黑屏 xff0c 奔溃 最后退而求其次 xff0c 安装x11vnc 2 很简单的命令 sudo apt
  • 计算机硬件技术基础第一章总结

    1 1 计算机发展概述 1 1 1 计算机的发展简史 第一台计算机 xff1a ENIAC 第一代 xff1a 电子管数字计算机 xff08 1946 1958 xff09 逻辑元件 xff1a 真空电子管体积大 xff0c 功耗高 xff