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

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

软件设计(九)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>内存>硬盘。

相关文章:

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

软件设计(九)https://blog.csdn.net/ke1ying/article/details/128990035 一、效验码 奇偶效验:是一种最简单的效验方法。基本思想是:通过在编码中增加一个效验位来使编码中1的个数为奇数(奇效验)或者为偶…...

【不知道是啥】浅保存哈

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...

2021 WAIC 世界人工智能大会参会总结

前言 2021 年世界人工智能大会(WAIC)于2021年7月7日至10日在上海世博展览馆举办,本届大会继续秉持「智联世界」的理念,以「众智成城」为主题,促进全球人工智能创新思想、技术、应用、人才和资本的集聚和交流&#xff…...

ThingsBoard-实现定时任务调度器批量RPC

1、概述 ThingsBoard-CE版是不支持调度器的,只有PE版才支持,但是系统中很多时候需要使用调度器来实现功能,例如:定时给设备下发rpc查询数据,我们如何来实现呢?下面我将教你使用巧妙的方法来实现。 2、使用什么实现 我们可以使用规则链提供的一个节点来实现,这个节点可…...

MySQL数据库调优————数据库调优维度及测试数据准备

MySQL性能优化金字塔法则 不合理的需求,会造成很多问题。(比如未分页,数据需要多表联查等)做架构设计的时候,应充分考虑业务的实际情况,考虑好数据库的各种选择(比如是否要读写分离,…...

电子货架标签多种固定方式

2.1寸和2.9寸电子价格标签多种固定方式: 1、桌面支架,放置在桌面或是货架上,用于桌面产品的价格或是信息显示 2、粘贴架,方便用于墙面桌面等应用 3、半透明支架,用于货架上的商品吊挂显示价格信息 4、轨道架&#xff…...

基于JavaEE的智能化跨境电子商务平台的设计

技术:Java、JSP、框架等摘要:伴随着近年来互联网的迅猛发展,网上零售逐渐成为了一种影响广泛、方便快捷的购物渠道。我国网上零售业发展的步伐很快。在如今经济全球化的影响下,消费者的网购行为趋于开放化、多元化,对于…...

C语言学习笔记(二): 简单的C程序设计

数据的表现形式 常量 在C语言中常量有以下几种: 整型常量: 0,-1,100实型常量: 小数形式(12.12);指数形式(12.1e312.110312.1\times 10^312.1103)字符常量: 普通字符(’a’,’Z’,’#’);转义字符(’\n’…...

十、STM32端口复用重映射

目录 1.什么是端口复用? 2.如何配置端口复用? 3.什么是端口重映射 ? 4.什么是部分重映射和完全重映射? 5.重映射的配置过程 1.什么是端口复用? STM32有很多外设,外设的外部引脚与GPIO复用。也就是说一…...

【C++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,/socket,进程信号

文章目录1.函数重载:writetofile(),Ctrue和false,C0和非02.类和对象:vprintf2.1 构造函数:对成员变量初始化2.2 析构函数:一个类只有一个,不允许被重载3.引用:C中&取地址&#x…...

Spring基础知识

1 简介官网:https://spring.io/projects,Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个项目,每个项目用于完成特定的功能。Spring Framework是最底层的框架,是其他项目的根基。Spring Boot Spring MVC…...

proxy代理与reflect反射

proxy代理与reflect 在这之前插入一个知识点arguments,每个函数里面都有一个arguments,执行时候不传默认是所有参数,如果传了就是按顺序匹配,箭头函数没有 代理函数 代理对象也就是生成一个替身,然后这个替身处理一切的…...

机器视觉 多模态学习11篇经典论文代码以及解读

此处整理了深度学习-机器视觉,最新的发展方向-多模态学习,中的11篇经典论文,整理了相关解读博客和对应的Github代码,看完此系列论文和博客,相信你能快速切入这个方向。每篇论文、博客或代码都有…...

Redis过期删除策略

目录引出Redis过期删除策略Redis的两种过期策略:定期删除 惰性删除定期删除惰性删除Redis两种过期删除策略存在的问题Redis缓存淘汰策略Redis中的LRU和LFU算法1、LRU(Least Recently Userd最近最少使用)LFU 算法的引入2、LFU(lea…...

数据流分析之def-use链分析

数据流分析之def-use链分析引言1 相关概念2 算法2.1 算法规则2.2 算法流程2.3 算法优化3 举例引言 编译过程中,知道函数中每个指令引用的变量(或虚拟寄存器)来自于前面的哪一次赋值是很有必要的。例如llvm中对store/load转phi优化,就需要准确知道该信息…...

【0175】【内存上下文】如何利用context_freelists[]来彻底释放MemoryContext中分配的所有内存(8 - 2)

文章目录 1. MemoryContext 删除的另一种形式1.1 context_freelists[] 数组1.1.1 context_freelists[0] 和 context_freelists[1] 的意义1.1.2 context_freelists[0] 和 context_freelists[1] 各自功能示意图1.2 context_freelists[] 各成员在删除context时的初始化情况1.2.1 c…...

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

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

建造者模式-搭建Qt窗口案例

文章目录logging日志输出子线程设计模式可视化插件类界面设计呼吸灯实现综合案例实现本综合案例,应用到如下的知识点。logging日志输出 自定义日志记录器,实现将日志输出到指定的控件中。 # 自定义日志记录器类子线程 threading实现子线程及Qt中的子线…...

*from . import _imaging as core : ImportError: DLL load failed: 找不到指定的模块

错误提示如上。为了解决这个问题,首先参考了解决 from . import _imag…模块。. 首先尝试了彻底卸载pillow:conda uninstall pillow ; pip uninstall pillow 然后重装 pip install pillow,发现问题仍然没有解决。 并且尝试了windo…...

关于尚硅谷Hadoop-报错解决方案日志

以后都会将学习Hadoop中遇到的问题写到这里,供自己参考,能帮到大家更好SecondaryNameNode未启动解决办法:可能是端口被占用(我没遇到)hadoop104未在/etc/hosts配置映射路径我在hadoop104的/etc/hosts 添加了所有hadoop…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...