【软件设计师笔记】计算机系统基础知识考点

🐓 计算机系统组成

计算机系统是由硬件和软件组成的,它们协同工作来运行程序。计算机的基本硬件系统由 运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器等部件被集成 在一起统称为中央处理单元(Central Processing Unit, CPU)。CPU是硬件系统的核心,用于 数据的加工处理,能完成各种算术、逻辑运算及控制功能。存储器是计算机系统中的记忆设备, 分为内部存储器和外部存储器。前者速度高、容量小,一般用于临时存放程序、数据及中间结 果。而后者容量大、速度慢,可以长期保存程序和数据。输入设备和输出设备合称为外部设备 (简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。

 🐓 原反补移码

移码:补码的基础上将符号位取反。注意:移码只能使用在整数上面

算术移位

加减法运算的溢出判断

 🐓 指令系统

一个处理器支持的指令和指令的字节级编码称为其指令集体系结构(Instruction Set Architecture , ISA),不同的处理器族支持不同的指令集体系结构,因此一个程序不能跨机器使用

 🐓 指令集体系结构的分类

按特点分类

1.操作数在cpu中的存储方式

2.显示操作数的数量

3.操作数的位置

4.指令的操作

5.操作数的类型和大小

按暂存机制分类

1.堆栈(stack)

2.累加器(Accumulator)

3.寄存器组(a set of Registers)

 🐓 CISC和RISC

指令集的两种发展途径

CISC(complex Instruction Set Computer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原来软件子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大,复杂,事实上,幕墙使用的绝大多数计算机都属于CISC类型

优势:

1.指令丰富,功能强大:CISC技术拥有大量的指令和寻址方式,可以执行各种复杂的运算和操作,满足各种不同的应用需求。

2.寻址方式灵活:CISC技术拥有大量的指令和寻址方式,可以执行各种复杂的运算和操作,满足各种不同的应用需求。

3.以微程序控制器为核心:CISC技术的指令存储器与数据存储器共享同一个物理存储空间,通过微程序控制器实现指令的执行和控制。

弊端 :

1.指令集过于复杂,庞大

2.微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,需要CPU周期较长,会导致机器的处理速度变慢。

3.指令系统过于庞大,高级语言编译程序选择目标指令的范围很大,难以优化编译生成的代码

4.CISC强调完善的中断控制,势必导致动作较多,设计复杂

5.CISC对芯片的设计要求较高,成本提高

RISC(Reduced Instruction Set Computer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能降低硬件的要求,使指令可以单周期执行,并能够通过优化编译提高指令的执行速度,采用的硬布线控制逻辑优化编译程序。

优势:

1.指令集精简:RISC技术通过减少指令集的数量来简化处理器结构,从而提高处理器的效率和可靠性。

2.高吞吐量:RISC技术通过流水线技术和并行处理技术,实现了高吞吐量,提高了处理器的性能。

3.低功耗:RISC技术简化了处理器结构,降低了硬件复杂度,从而减少了功耗。

4.易于移植:RISC技术简化了处理器结构,降低了硬件复杂度,从而减少了功耗。

弊端:

1.指令集数量过少:由于RISC技术的指令集数量较少,可能会导致某些复杂的运算和操作无法得到快速执行,需要多次调用或者使用其他指令代替

2.实现难度较大:由于RISC技术的处理器结构较为简单,对于一些特定应用场景可能不太适合,需要重新设计或优化处理器结构。

3.对硬件要求较高:由于RISC技术需要高吞吐量和低功耗,对于硬件的要求较高,可能会导致成本增加。

4.兼容性较差:由于RISC技术的指令集和结构与传统的CISC技术有所不同,可能会导致与一些传统的软件不兼容。

优化方向

1.指令集优化:精简指令集,减少指令的种类和数量,使得处理器更容易实现,同时也可以减少程序中的指令数量,提高执行效率。

2.硬件架构优化:采用流水线技术、并行处理技术等,提高处理器的执行效率和吞吐量。同时,优化硬件结构,减少功耗和成本。

3.编译器优化:采用优化编译技术,将高级语言程序转换成高效的机器码。优化编译器可以分析和识别程序中的热点和瓶颈,通过优化代码和指令序列,提高程序的执行效率。

4.寄存器分配优化:合理分配和使用寄存器,减少访存次数和数据传输开销,提高指令的执行效率。

5.内存管理优化:采用内存管理技术,减少内存访问次数和缓存失效率,提高程序的执行效率。

6.并行计算优化:利用多核处理器或多线程技术,将程序中的任务并行化,提高程序的执行效率。

指令的流水处理

指令控制方式:顺序方式,重叠方式,流水方式

顺序方式:

1.指令与指令之间顺序串行执行,即上一条指令全部执行完后,才能开始执行下一条指令。

2.控制简单,节省设备。

3.执行指令的速度慢,功能部件的利用率低。

重叠方式流水:

包括一次重叠和二次重叠方式。一次重叠方式中,将第k条指令的执行阶段和第k+1条指令的取指阶段同时进行,可以缩短指令执行时间。二次重叠方式中,将第k+1条指令提前到分析第k条指令的期间完成,可以进一步提高指令执行效率。

1.顺序执行:指令按照顺序一个接一个地处理,控制简单,但速度慢,利用率低。

2.重叠执行:在解释第K条指令的操作完成之前,就可开始解释第K+1条指令。通常采用一次重叠,即在任何时候,指令分析部件和指令执行部件都只有相邻两条指令在重叠解释。这种方式提高了速度,控制也不太复杂。但会出现冲突、转移和相关等问题,设计时必须想办法解决。

流水线方式流水

一种更先进的指令执行方式。它将一个任务分解为若干个子任务,每个子任务由一个专门的部件执行,子任务之间采用流水线的方式连续执行,可以显著提高指令执行速度。流水线方式流水的关键在于解决数据相关和转移相关问题,以及处理异常情况。

1.将一个任务分解为多个子任务,每个子任务由专门的部件执行,并依靠多个部件并行工作来缩短指令执行时间。

2.流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流。

3.只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。

4.流水线需要有装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间,排空时间是指最后一个任务进入流水线到输出流实现的时间。

5.流水线存在数据冒险、控制冒险等问题,需要采取相应的解决方法。

RISC中流水线技术

超流水线技术

一种更先进的指令执行方式,它通过将多条指令重叠执行来提高处理器的效率。在RISC中,超流水线技术通常用于进一步提高处理器的性能和吞吐量。

基本思想:多条指令放入一个流水线中,让它们同时执行。这样一来,处理器可以在一个时钟周期内完成多条指令的执行,从而提高了处理器的效率和吞吐量。

超流水线技术的关键:在于如何解决指令之间的冲突和依赖问题。由于多个指令同时执行,它们可能会存在数据相关和资源相关的问题,导致流水线被阻塞或延迟。因此,需要设计合理的调度算法和硬件机制来解决这些问题,以保证处理器能够高效地工作。

总的来说,超流水线技术是一种非常有效的指令执行方式,它可以显著提高处理器的性能和吞吐量。然而,超流水线技术也带来了新的挑战和问题,需要仔细设计和实现才能获得最佳的性能和效率。

超标量技术

RISC中另一种重要的指令执行方式。与超流水线技术不同,超标量技术通过增加处理器中执行单元的数量来提高指令的执行速度。

基本思想是在一个时钟周期内同时执行多个操作,以提高处理器的吞吐量和性能。为了实现这一目标,超标量处理器通常包含多个功能单元,例如浮点单元、整数单元等。这些功能单元可以并行工作,并在一个时钟周期内完成多个操作。

超标量技术的优点在于它可以充分利用处理器的硬件资源,提高处理器的执行效率。然而,超标量技术也存在一些挑战和问题。例如,由于指令的数量增加,需要更多的内存和缓存来存储指令和数据,这可能会导致功耗和成本的增加。此外,由于指令的执行顺序在编译阶段确定,因此对于运行时的变化适应性较差。

总的来说,超标量技术是一种有效的指令执行方式,它可以提高处理器的性能和吞吐量。然而,在实际应用中,需要根据具体的需求和场景来选择合适的指令执行方式,包括流水线技术、超流水线技术和超标量技术等。

超长指令字技术

一种旨在利用指令级并行性的指令集架构。传统的中央处理器(CPU、处理器)大多允许程序指定指令按顺序执行,而VLIW处理器允许程序明确指定指令并行执行。

VLIW处理器指令字较长,一般为128位,甚至上千位。它把许多条指令连在一起,形成一个非常长的指令字,通过将多条指令打包,形成一条长指令,从而提高处理器的性能。

总的来说,超长指令字技术是一种非常有效的指令执行方式,它能够充分利用软件的作用

 🐓 并发性的解决

并发性包括同时性和并发性。其中同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或两个以上的事件在同一时间间隔内连续发生。

并行处理从计算机信息处理的角度来看可分为:

1.存储器操作并行

2.处理器操作步骤并行(流水线处理机)

3.处理器操作并行(阵列处理机)

4.指令,任务,作业并行(多处理机)

阵列处理机

一种特殊类型的计算机架构。其核心是一个由多个处理单元(PE)构成的阵列,这些处理单元在单一控制部件(CU)的控制下对各自的数据进行相同的运算和操作

工作原理是通过将大量相同的处理单元按一定方式互连成阵列,然后在单一控制部件的控制下,对各自所分配的不同数据并行运行同一组指令规定的操作。这种并行处理方式使得阵列处理机在处理大量数据时能够实现非常高的运算效率和吞吐率

分类 浮点阵列处理机和位片式阵列处理机两类。浮点阵列处理机主要用于浮点运算,而位片式阵列处理机则主要用于位操作。这些处理机通常由多个完全相同的处理部件和一个公共的控制部件组成,每个处理部件包括一个处理单元和一个存储器。

优点在于其高度的并行性和计算效率。然而,其缺点也很明显,即其脉动阵列的构形与特定计算任务和算法密切相关,具有某种专用性,这限制了其应用范围。此外,阵列处理机的设计和实现也相对复杂,需要考虑到处理单元之间的通信和同步等问题。

阵列处理机是一种高性能的计算机架构,适用于需要处理大量数据和进行高速运算的应用场景。然而,由于其专用性和复杂性,其在实际应用中的使用受到了一定的限制

并行处理机

SIMD和MIMD是典型的并行计算机,SIMD有共享存储器和分布存储器两种形式

具有共享存储的SIMD结构

PE为处理单元,CU为控制部件,M为共享存储器,ICN为互联网络

具有分布存储器的SIMD结构

PE为处理单元,CU为控制部件,PEM为局部存储器,ICN为互联网络

多处理机

多台处理机组成的系统,每台处理机有属于自己的控制部件,可以执行独立的程序,共享一个主存储器和所有的外部设备。

多指令流多数据流计算机。在多处理机系统中,机器之间的互联技术决定了多处理机的性能。需要满足高频带,低成本,连接方式的多样性以及在不规则通信下连接的无冲突性。

 🐓 主存与高速缓存地址映射

直接映射

优点:地址变换简单,缺点是灵活性差

全相联映射

优点:灵活性好,缺点:变换比较复杂,速度较慢

组相联映射

前面两种方式的折中,是规定组采用直接映射块的方式进行映射

 🐓 虚拟存储器

对贮存的一种抽象,成为虚拟存储(Virtual Memory),使用虚拟地址的概念来访问主存,使用专门的MMU将虚拟地址转换为物理地址访问主存。

内存模型

方式

页式:页表硬件小,查表速度快但不利于存储保护

段式:界限分明便于程序的模块华设计,易于编译修改和保护,但主存利用率低,会产生大量碎片,查表速度较慢

段页式:这种方法,但地址变换速度比较慢

 🐓 多中断处理办法

多中断信号线法

每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求

中断软件查询法

当CPU检测到一个中断请求信号以后,就转入到中断服务程序去轮询每一个中断源以确定是谁发出了中断请求信号,对每个设备的响应优先级由软件设定

菊花链法

硬件查询法,所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相联。当CPU检测到中断请求信号时,则发出中断请求信号。中断确认信号依次在I/O模块间传递,知道发出请求的模块,该模块则把它的ID送往数据线由CPU读取。

总线仲裁法

一个I/O设备在发出中断请求之前,必须鲜活的总线控制权,所以可以通过总线仲裁机制来裁定水可以发出中断请求信号,当CPU发出中断响应信号后,该设备会把自己的ID发往数据线。

中断向量表法

中断向量表用来保存各个中断源的中断服务程序的入口地址,当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断变量表来取得其中断服务程序的入口地址。同时INTC把中断请求信号提交给CPU

 🐓 信息安全5要素

机密性,完整性,可用性,可控性,可审查性

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小白级教程,10秒开服《幻兽帕鲁》

在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。 前言 马上过年…

Maven讲解

介绍 Maven是一个流行的构建工具和项目管理工具,它主要用于Java项目的构建、依赖管理和项目报告生成。Maven通过提供一致的项目结构、自动化的构建过程和强大的依赖管理,简化了项目的开发和维护过程。 下面是一些Maven的主要特点和用途: 项…

MFC串行化的应用实例

之前写过一篇MFC串行化的博文;下面看一个具体例子; 新建一个单文档应用程序;在最后一步,把View类的基类改为CFormView; 然后在资源面板编辑自己的字段; 然后到doc类的头文件添加对应变量, public:CString name;int age;CString sex;CString dept;CString zhiwu;CStrin…

go语言socket编程

1.互联网分层模型 过程分析: 2.Socket图解 Socket是应用层与TCP/IP协议族通信的中间软件抽象层。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket后面,对用户来说只需要调用Socket规定的相关函数&a…

助力水下潜行:浮力调节系统仿真

01.建设海洋强国 海洋蕴藏着丰富的资源,二十大报告强调,要“发展海洋经济,保护海洋生态环境,加快建设海洋强国”。建设海洋强国旨在通过科技创新驱动、合理开发利用海洋资源、强化海洋环境保护与生态修复、提升海洋经济质量等多个…

测试access和trunk口的区别(华为)

思科设备参考:测试access和trunk口的区别(思科) 一,实验目的 实现同一 Vlan 内的主机互通,不同 Vlan 间的主机隔离。 二,配置前测试 PC1分别ping PC2、PC3、PC4都能通,因为四台PC默认同处于v…

AOP+Redisson 延时队列,实现缓存延时双删策略

一、缓存延时双删 关于缓存和数据库中的数据保持一致有很多种方案,但不管是单独在修改数据库之前,还是之后去删除缓存都会有一定的风险导致数据不一致。而延迟双删是一种相对简单并且收益比较高的实现最终一致性的方式,即在删除缓存之后&…

强化学习原理python篇07——策略梯度法

强化学习原理python篇07——策略梯度法 Average state valueAverage rewardMonte Carlo policy gradient (REINFORCE)REINFORCE示例在torch里面编写这段代码1、用随机权重初始化策略网络2、运行N个完整的片段,保存其(s,a,r,s)状态转移3、对于每个片段k的每一步t&…

Web中的转发与重定向

转发与重定向 一、转发和重定向的概念1.转发2.重定向 二、JavaWeb 中的转发和重定向三、SpringMVC 中的转发和重定向1.转发(1) 默认的方式(2) 完整的方式 2.重定向 四、总结 一、转发和重定向的概念 在 Web 应用中,转发和重定向都是用于将请求从一个页面传递到另一…

故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

外星人入侵(python)

前言 代码来源《python编程从入门到实践》Eric Matthes 署 袁国忠 译 使用软件:PyCharm Community Editor 2022 目的:记录一下按照书上敲的代码 alien_invasion.py 游戏的一些初始化设置,调用已经封装好的函数方法,一个函数的…

【React】前端项目引入阿里图标

【React】前端项目引入阿里图标 方式11、登录自己的iconfont-阿里巴巴矢量图标库,把需要的图标加入到自己的项目中去;2、加入并进入到项目中去选择Font class 并下载到本地3、得到的文件夹如下4. 把红框中的部分粘贴到自己的项目中(public 文…

【百度Apollo】本地调试仿真:加速自动驾驶系统开发的利器

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

更改MAC终端样式(美化、易用的提示等)

1. 前言 之前用 Ubuntu、Elementary OS 时觉得其终端既漂亮又好用,购买的云服务器的默认终端也好看,一些牛人的桌面终端也配置得挺好看。虽然 Mac 的默认终端配置已经比 Windows 好看好用很多了,但还是觉得不够。于是灵机一动,想…

springboot139华强北商城二手手机管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

idea docker 内网应用实践

文章目录 前言一、服务器端1.1 离线安装docker1.2 开启docker远程访问1.3 制作对应jdk镜像1.3.1 下载jdk171.3.2 Dockerfile 制作jdk17镜像1.3.3 镜像导出1.3.4 服务器引入镜像 二、Idea 配置2.1 Dockerfile2.2 pom 引入docker插件2.3 idea docker插件配置2.4 打包镜像上传2.5 …

第17次修改了可删除可持久保存的前端html备忘录:增加年月日星期,增加倒计时,更改保存区名称可以多个备忘录保存不一样的信息,匹配背景主题:现代深色

第17次修改了可删除可持久保存的前端html备忘录&#xff1a;增加年月日星期&#xff0c;增加倒计时&#xff0c;更改保存区名称可以多个备忘录保存不一样的信息&#xff0c;匹配背景主题&#xff1a;现代深色 备忘录代码&#xff1a; <!DOCTYPE html> <html lang&quo…

前端常见的栈溢出报错

什么是栈溢出&#xff1f; 在前端开发中&#xff0c;栈溢出是指JavaScript引擎执行代码时&#xff0c;调用栈&#xff08;call stack&#xff09;变得太大&#xff0c;超过了浏览器或JavaScript引擎所分配的栈空间&#xff0c;从而导致栈溢出错误。调用栈是一种数据结构&#x…

【Spark系列2】Spark编程模型RDD

RDD概述 RDD最初的概述来源于一片论文-伯克利实验室的Resilient Distributed Datasets&#xff1a;A Fault-Tolerant Abstraction for In-Memory Cluster Computing。这篇论文奠定了RDD基本功能的思想 RDD实际为Resilient Distribution Datasets的简称&#xff0c;意为弹性分…

git clone常见问题一览及解决方法

在使用Ubuntu下&#xff0c;终端运行git clone命令时会遇见许多问题&#xff0c;本文主要针对一些常见的问题进行整理。关于换源问题&#xff0c;推荐使用小鱼的一键换源。 1.git clone 速度过慢 1.1 魔法 这个方法不做过多赘述&#xff0c;ubuntu下个人使用发现体验良好&am…