软件设计(十)--计算机系统知识

news2024/11/15 12:18:18

软件设计(九)icon-default.png?t=N176https://blog.csdn.net/ke1ying/article/details/128990035

一、效验码

  1. 奇偶效验:是一种最简单的效验方法。基本思想是:通过在编码中增加一个效验位来使编码中1的个数为奇数(奇效验)或者为偶(偶效验),从而使码距变为2。对于奇效验,可以监测出代码中奇数位错误的编码,不能发现偶数位错误编码。即当奇数位编码错误,也就是1变成0或0变成1,则编码中1的个数的奇偶性就发生变化,从而发现错误。

常用奇偶效验有3种:水平奇偶效验码、垂直奇偶效验码、水平垂直奇偶效验码。

  1. 海明码

海明码构成方式:在数据位之间插入k个效验码,通过扩大码距来实现纠错和差错。设置数据位是n位,效验位是k位,则n和k必须满足   2的k次方-1>= k+n。

  1. 循环冗余效验码

循环冗余效验码CRC广泛应用于数据通信领域和磁介质存储系统。它利用生成多项式为k个数据位产生r个效验位来进行编码,其编码长度为k+r。

它由两部分组成,左边为信息码(数据),右边为效验码,若信息码占k位,则效验码占n-k位。其中n为CRC码的字长,所以CRC码又叫(n,k)码。效验码由信息产生,效验码越长,效验能力越强大。在求CRC 编码时,采用模2运算,模2运算加减运算规则是按位运算,不发生错位和进位。

二、计算机系统硬件组成

计算机系统由 运算器、控制器、存储器、输入设备和输出设备五大部件组成。

运算器 和 控制器统称为中央处理单元(Central Processing Unit)CPU。

1、CPU主要由 运算器、控制器、寄存器组合内部总线等部件组成,主要功能有指令控制、操作控制、时间控制和数据加工。

运算器主要分为 算术逻辑单元、累加寄存器AC、数据缓冲寄存器DR、状态条件寄存器PSW。

控制器主要分为 指令寄存器IR、程序计数器PC、地址寄存器AR、指令译码器ID。

寄存器组 分为专用寄存器组和通用寄存器组。运算器和控制器里的是属于专用寄存器,通用的则可以由程序员自行规定使用。

多核cpu指一个单芯片在继承两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元,一级cache、和二级cache共享或独有。

三、存储系统

计算机三层存储结构 高速缓存(cache)、主存储器(MM)和辅助存储器(外存储器)

内存(主存):用来存储当前运行所需要程序和数据,速度快,容量小。

外存(辅存):用来存户当前不参与运行的数据,容量大但速度慢。

按材料分类,有磁存储器、半导体存储器和光存储器

按访问方式分类,可分为 按地址访问存储器 和 按内容访问存储器

按寻址方式分类,分为随机存储器、顺序存储器和直接存储器

1、高速缓存

高速缓存是位于cpu和主存之间的高速存储子系统。

因为处理机都是按主存地址访问的,从cache里读取信息就需要在cache里堆主存里的地址进行映射到cache里的地址。映射有三种方式,直接映像全相联映像组相联映像

  1. 直接相联映像:主内存与cache内存里的地址是固定的,这种优点是地址变换很快,访问速度快,缺点是不灵活。
  2. 全相联映像:允许主存块任意一块调用cache的任一块空间。优点是灵活变换映射,缺点就是速度稍微慢点,变换比较复杂。
  3. 组相联映像:具体做法是将cache块再分组。是前两种方式的择中方法。

  1. 虚拟存储器

虚拟存储器是由 主存、辅存、存储管理单元及操作系统中的存储管理软件组成的存储系统。

程序员使用该存储系统,可以使用的内存空间远远大于主存的物理空间,但实际并不存在这么大的主存,所以称为虚拟存储器。

总线的定义:任何连接两个以上电子元器件的导线都可以称为总线。通常分为 内部总线、系统总线、外部总线。

其中系统总线又分为:数据总线、地址总线和控制总线。

四、指令系统

指令系统指一个CPU所能够处理的全部指令的集合,是一个CPU的根本属性。一条指令一般包含两个部分:操作码 和 地址码。

操作码指明操作类型

地址码指明操作数及运算结果存放的地址

  1. 寻址方式

寻址指令中操作数有效地址的方式称为寻址方式。常见的寻址方式有 立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址方式、相对基址加变址寻址。

立即寻址:指令的地址字段不是操作数的地址,而是操作数本身。特点是不需要访问内存取数,时间短。

寄存器寻址:当操作数不在内存的时候,而是放在CPU的通用寄存器时候,采用寄存器寻址。

直接寻址:基本寻址方式,在指令格式地址字段中直接给出操作内存的地址。

隐含寻址:不是明显给出操作地址,而是指令隐含操作地址。

  1. CISC和RISC

CISC(Complex Instruction Set Computer)复杂指令集成计算器,对原有指令进一步增强,实现软件功能硬化,导致机器指令越来越复杂。

RISC(Reduced Instruction Set Computer)精简指令集成计算器,减少指令总数和简化指令操作。

RISC关键技术 重叠寄存器窗口技术、优化编译技术、超流水极超标量技术 及 硬布线逻辑与微程序在微程序技术中相结合。

题目

  1. 计算机在指令周期的过程中,为从内存读取指令操作码,首先要将 程序计数器送到地址总线上。

解析:

Pc程序计数器是存放下一条指令的所在单元地址,当执行一条指令时,处理器首先需要从PC中取出指令在内存中的地址,通过地址总线寻址。

  1. CPU对其访问速度最快的是:寄存器 > cache>内存>硬盘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微内核架构

QNX微内核架构 设计原则 最小化内核功能 将操作系统功能移到用户态,成为Server“服务”。在用户模块之间,通过消息传递机制通信。 在宏内核中,文件系统和磁盘驱动都是运行在内核态,应用通过内核调用文件系统,文件系…

Ubuntu搭建博客typecho

提示 见过这样类型的blog吧,现在就是最详细的搭建过程。 第一步 搭建apache2环境 安装命令 sudo apt -y install apache2 apache2-utils访问项目地址: /var/www/html配置文件在: /etc/apache2/日志在: /var/log/apache2/ 修改配置文件 vim…

如何在项目中正确使用异常?

文章目录异常系列文章一、异常介绍二、异常体系三、异常处理机制四、异常处理五、异常调用链异常系列文章 如何在项目中正确使用异常?如何优雅的设计Java异常Java统一异常处理–实战篇Java 异常处理的误区和经验总结你要的Java常见异常都在这里Java中异常抛出后代码…

SpringBoot后端接口请求参数映射方式详解

在SpringBoot项目中,前端HTTP请求中的参数如何映射到Controller层的接口方法中的参数?这里针对各种方式做一个测试与总结。 1:QueryString方式 QueryString参数传递的方式为,在请求URL中直接拼接请求参数如:URL?para…

Java实现调用ChatGPT详解

Java调用ChatGPT的小插件1. 申请ChatGPT账号2. 配置阶段2.1 依赖引入2.2 配置application.yml文件2.3 EnableChatGPT注解3. 使用4. 测试1. 申请ChatGPT账号 CSDN上面有很多申请ChatGPT账号的教程,可以直接搜索chatgpt账号注册,然后按照高赞的几个回答注…

谷粒商城--SPU和SKU

目录 1.SPU和SKU概念 2.表的关系理解 3.导入前端代码 4.完善后端接口 5.属性分组详情 6.规格参数详情 7. 销售属性详情 8.分组与属性关联 9.发布商品 10.仓库服务 1.SPU和SKU概念 SPU:standard product unit(标准化产品单元):是商品信息聚合的…

链表OJ(一)

目录 从尾到头打印链表_牛客题霸_牛客网 160. 相交链表 141. 环形链表 142. 环形链表 II 138. 复制带随机指针的链表 从尾到头打印链表_牛客题霸_牛客网 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。 如输入…

Three.js中的3D文字效果

对于一些设计网页中经常会出现一些3D的文字效果,本文将利用Three.js实现各种动画WebGL文本输入效果。 示例效果 原文章 文本采样 通常情况下,文本网格是2D的平面形状,我们所要实现的3D文本形状则是要在2D的平面下,再生成z值形成…

Oracle数据库启停命令

在日常工作中,关于数据库的启停:   先关闭上层应用服务 --> 关闭监听 --> 关闭数据库;   启动数据库 --> 启动监听 --> 启动应用(Oracle SQL Developer)。 监听lsnrctl Oracle监听命令。 lsnrctl start [listener-name]&a…

Xml格式化与高亮显示

具体请参考:Xml格式化与高亮显示

分布式系统的数据一致性方案

1、在出现一致性问题时如果系统的并发或不一致情况较少,可以先使用重试来解决 a、同步重试 b、异步重试 c、入库,定时任务重试 2、分布式事务 基于数据库 XA 协议的 2PC、3PC,基于业务层的TCC,基于消息队列消息表的最终一致性方案&#xff0…

七大设计原则之接口隔离原则应用

目录1 接口隔离原则介绍2 接口隔离原则应用1 接口隔离原则介绍 接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时…

八、Git远程仓库操作——跨团队成员的协作

前言 前面一篇博文介绍了git团队成员之间的协作,现在在介绍下如果是跨团队成员的话,如何协作? 跨团队成员协作,其实就是你不属于那个项目的成员,你没有权限向那个仓库提交代码。但是github还有另一种 pull request&a…

图形化深度学习开发平台PaddleStudio(代码开源)

目录一、PaddleStudio概述二、环境准备2.1 安装PaddlePaddle2.2 安装依赖库三、基本使用介绍3.1 启动3.2 快速体验3.2.1 下载示例项目3.2.2 训练3.2.3 评估3.2.4 测试3.2.5 静态图导出四、数据集格式4.1 图像分类4.2 目标检测4.3 语义分割4.4 实例分割五、趣味项目实战&#xf…

【前端笔试题二】从一个指定数组中,每次随机取一个数,且不能与上次取数相同,即避免相邻取数重复

前言 本篇文章记录下我在笔试过程中遇到的真实题目,供大家参考。 1、题目 系统给定一个数组,需要我们编写一个函数,该函数每次调用,随机从该数组中获取一个数,且不能与上一次的取数相同。 2、思路解析 数组已经有了…

Java编译过程、JIT编译详解、类加载过程

文章目录Java编译执行过程类加载过程即时编译JITJIT编译优化中的常见技术方法内联逃逸分析 栈上分配 锁消除小总结Java编译执行过程 提到编译,可能大多数人想到的就是将**.java编译成***.class文件,但其实Java代码的编译执行是一个非常复杂的过程,将**.java编译成**.class…

Lesson1:初识编程语言、Python环境搭建

一、什么是编程语言 用来和计算机交流,控制计算机,让计算机按照我们的要求做事情,这样的语言叫做编程语言。 Note:编程语言四个字可以拆成两个部分进行理解——编程语言。 所谓语言,它的作用就是交流,向对…

Redis实战—黑马点评(一) 登录篇

Redis实战 — 黑马点评(一) 登录篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Redis实战 — 黑马点评(一) 登录篇1. 项目…

深度学习笔记:使用随机梯度下降法识别mnist数据集

深度学习算法实现流程: 1 从训练数据中随机选出一部分数据,称为mini-batch。我们的目标为减小mini-batch损失函数的值 2 计算损失函数关于权重的梯度。梯度方向即为损失函数值减小最快的方向 3 将权重沿梯度下降方向更新 4 重复以上步骤,在…

【自动驾驶汽车技术 | 车载雷达系统】

本文编辑:调皮哥的小助理 1、摘要 自动驾驶汽车传感器系统一般包括4种雷达:激光雷达(Lidar)、毫米波雷达(mmWave Radar)、超声波雷达(Ultrasonic Radar)和红外雷达(Infrared Radar)。目前激光雷达和毫米波雷达是基本和必要的车载传感器设备,…