软件设计师21-计算机体系结构

简介:

机内代码及运算

1 数的进制

十进制:0-9 如:(123)D 、(123)10
二进制:0 1,如:(1001)B、(1001)2
八进制: 0-7,如:(301)O
十六进制:0-9 A-F,如:(19E)H、(19E)16
进制的转换
1 十进制转2进制 ,除2取余法(图)
2 二进制转十进制,按权展开求和(图)

2 原码、反码、补码、移码

1 最高位表示符号位(8位):取值范围-128--+127(无符号位则:0-255)
2 正数原码、反码、补码、移码=补码符号位取反
3 负数反码为符号位以外,其余各位按位取反;补码=反码+1;移码=补码符号位取反
[[x]]=[x]

3 定点数

1 定点数分为定点小数(纯小数)和定点整数

浮点数

N=M*Re

  • 1 M称为尾数,R称为基数,e为阶码(指数)
  • 2 规格化浮点数:加大阶码,使小数点左侧仅有一位
4 校验码

1 码距:任意两个合法的编码之间二进制位数
码距越小,抗错误性能力越低
2 编码效率:合法码字占所有码字的比率

3 奇偶校验

1 奇校验:被传输有效数据“1”的个数为奇数个,校验位填“0”,否则填“1”
2 偶校验:为偶数个,校验位填0,反之如上
3 缺点:无法判断哪位错误,无法检验多位错误
4 使用:串口通信中

4 海明码
  • 1 奇偶校验的扩充,多位校验码
  • 2 当出现两位错误,仅能查询;一位错误,可纠正
  • 3 可查错误位数:<=码距-1;可纠错误位数:<码距/2
  • 4 原理:数据中加入几个校验码,码距均匀拉大,某一位出错,引起若干校验位变化
  • 5 海明不等式
    2k-1>=m+k

k为校验码个数,可表示2k种信息,除一个全对外,还有 2k-1个,若2k-1>=m+k(m+k为编码后的长度),理论上就可以判断出错位

  • 6 海明码的编码规则
    1)校验位依次放在第2i位(i=0,1,2...),其余位为信息位。

2)信息位的位数为参与校验它的校验位的位数之和(如:7=4+2+1)
3)校验位为参与组成它的信息位从左到右相亦或(不同为真,相同为假)

5 循环冗余校验码 CRC

1 广泛在网络通信和磁盘存储时使用
2 生成多项式:多项式最高位n次幂,转换为2进制有n+1位
3 编码组成:R位的校验码连接在k位信息码之后
4 CRC生成

  • 1 根据多项式将信息码左移n位(R位),补0
  • 2 将移位后的信息码与生成多项式产生的二进制进行模2运算(异或)
  • 3 将2的余数作为校验码嵌入信息位左移后的空间

5 CRC的纠错能力取决于K和R

  • K>>R,提高编码效率,此时仅检错
  • 一般来说,R位生成多项式可检测出所有双错、奇数位错和突发错位小于或等于R的突发错误

中央处理器

计算器硬件组成:控制器、运算器、存储器、输入设备、输出设备

  • 1 运算器
    算术逻辑单元/ALU,对数据进行算术运算(+ -...)和逻辑运算(与或...)

1)加法器/累加器:专门存放算数或逻辑运算的操作数运算结果的寄存器。
2)程序状态计数器:存放状态信息和控制信息

  • 2 控制器
    分析和执行指令

1)指令寄存器:保存当前正执行的指令
2)指令译码器:分析指令操作码作用(如1+2中的加)
3)程序计数器:存放下一条指令的地址
4)定时与控制电路
5)堆栈和堆栈指针

  • 3 计算机的分类
    Flynn、冯式分类法

1)Flynn:根据指令流、数据流、多倍性分类

输入输出控制方式

1)程序I/O控制方式(已淘汰)

又称程序查询方式
应用于早期无中断计算机,采用忙等方式(空闲让进,忙则等待)

2)中断控制方式(中低速,如打印机)

空闲让进,忙则等待,让权等待,每次中断仅传输一个字符

3)直接存储器访问DMA方式(目前常用)

数据传输的基本单位:数据块(若干字节)
数据由设备直接送入内存
提高了CPU与I/O设备的并行操作程度

4)I/O通道控制方式(大型设备)

1 I/O通道是一种特殊的处理机
2  I/O通道指令类型单一(只能执行I/O指令,控制I/O操作),不需要CPU参与
   I/O通道没有自己的内存,与CPU共享
3 I/O通道类型:
    字节多路通道
    数组选择通道
    数组多路通道

流水线技术

  • 1 概念:在程序执行时,多条指令重叠进行操作的一种任务分解技术(比如我边让洗衣机洗衣服边写作业)
  • 2 计算执行时间
    将任务分为N个子任务,每个子任务需要t时间,则完成需要N x t

1)传统完成k个任务:kNT
2)采用流水线技术:Nt+(k-1)t
3)若每个子任务所需时间不同,则时间((k-1)t)取决于执行顺序中最慢的那一个

  • 3 流水线的吞吐率
    单位时间内流水线所完成的任务数量或输出的结果数

TP=n/Tk
1ns=10-9s
n为任务数,Tk为处理完成n个任务所需的时间

  • 4 加速比
    不采用流水线的执行时间/采用流水线的时间
  • 5 影响流水线的主要因素
    1)转移指令:(go to)前面指令执行完成前,流水线无法确定下一条指令地址,出现流水线断流

2)共享资源访问的冲突:后一条指令需要使用的数据与前一条指令发生冲突,或相邻两条指令用了相同的寄存器
3)响应中断:有中断请求时,流水线会停止。响应方式:
精确断点法:立即响应中断
不精确断点法:流水线中的指令继续执行,但不再添加新指令

指令系统

  • 1 概念:计算机所能执行的全部指令的集合,描述了计算机内部的控制信息和“逻辑判断能力”
  • 2 一条指令:操作码和地址码/操作数
  • 3 类型:
    1)立即寻址:地址码为一个数(为1+2中的1)

2)直接寻址:地址码为一个地址,要根据此地址去内存中寻址
3)间接寻址:地址码为一个地址,根据地址码中的地址去取这个数
4)寄存器寻址:地址码为寄存器地址,寄存器速度快于内存
5)寄存器间接寻址:地址码为寄存器地址,根据寄存器地址去找出数

  • 4 CISC与RISC
    CISC:复杂指令集计算机

1)指令数量多,无则添加,数量庞大
2)指令使用频率相差悬殊,80%的时候只使用20%的指令
3)支持很多寻址方式
4)变长的指令,指令长度不固定
5)指令可对存储器单元中数据直接进行处理
RISC:精简指令集计算机,对指令数目和寻址方式做精简,指令的指令周期相同,采用流水线技术
1)指令数量少,仅选频率高的,若干条完成没有的复杂指令
2)指令的寻址方式少,如寄存器寻址(较快)
3)指令长度固定,格式种类少
4)只提供了Load/Store指令访问存储器,其余操作在寄存器完成
5)以硬布线逻辑控制为主,提高了执行速度
6)单周期指令执行
7)优化的编译器:使编译工作简单化

目录
相关文章
|
9月前
|
边缘计算 资源调度 监控
无人机边缘计算中的计算卸载——Stackelberg博弈方法研究(Matlab代码实现)
无人机边缘计算中的计算卸载——Stackelberg博弈方法研究(Matlab代码实现)
491 3
|
10月前
|
机器学习/深度学习 JSON API
2025最新版天猫图片搜索API全解析:从图像识别到商品匹配实战
天猫图片搜索API(拍立淘)基于深度学习与CNN技术,实现以图搜商品,支持图片URL或二进制上传,适用于比价、推荐等场景。2025版新增多模态搜索优化与相似度动态调整。接口支持POST/GET请求,返回商品详情及排序结果,示例代码提供Python请求方式。
|
人工智能 运维 监控
从大规模恶意攻击 DeepSeek 事件看 AI 创新隐忧:安全可观测体系建设刻不容缓
本文探讨了中国大模型DeepSeek在全球范围内的成功及其面临的网络安全挑战。DeepSeek以低成本、高性能的特点迅速走红,甚至超越ChatGPT,但同时也遭受了大规模恶意攻击,如DDoS和密码暴力破解。文章分析了这些攻击对AI行业的影响,并提出通过阿里云构建安全可观测体系的解决方案,包括流量监控、日志审计与异常检测等,为AI技术的安全发展提供保障。
552 1
|
人工智能 文字识别 测试技术
Florence-VL:微软和马里兰大学共同开源的多模态大语言模型
Florence-VL是由微软和马里兰大学共同开源的多模态大语言模型,结合生成式视觉基础模型Florence-2和深度-广度融合技术,实现视觉与语言理解的深度融合,适用于多种下游任务。
543 29
Florence-VL:微软和马里兰大学共同开源的多模态大语言模型
ly~
|
存储 安全 前端开发
php文件管理系统
PHP 文件管理系统是基于 PHP 开发的,用于管理文件和文件夹的应用。它支持文件上传、下载、浏览、搜索、编辑和删除,并提供权限管理和安全防护功能。适用于企业内部、网站和个人文件管理,确保文件的安全性、保密性和高效共享。
ly~
555 9
什么是复数
【10月更文挑战第12天】什么是复数
3932 1
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
901 6
|
SQL 中间件 数据库
Django 架构详解
【8月更文挑战第24天】
727 0
|
Linux 数据安全/隐私保护
在Linux中,如何添加一个用户到特定的组?
在Linux中,如何添加一个用户到特定的组?