计算机组成原理:计算机系统层次结构

文章目录

    • 计算机系统的组成
      • 计算机硬件
        • 冯诺依曼计算机
          • 主要特点
        • 组成部分
        • 冯诺依曼计算机结构
        • 现代计算机结构
      • 计算机软件
        • 计算机程序语言的发展
    • 软件和硬件功能的逻辑等价性
    • 计算机系统的层次结构

计算机系统的组成

硬件系统软件系统共同构成了一个完整的计算机系统。

  • 硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。
  • 软件是指在硬件上运行的程序和相关的数据及文档。

在这里插入图片描述

计算机硬件

![[计算机组成部分大纲.png]]

计算机硬件系统是构成计算机系统的各种物理装置的总称,例如中央处理器 CPU、内存、显卡、主板、固态硬盘、显示器、电缆等都属于计算机硬件。一般情况下,可将硬件划分为主机和外设两部分

冯诺依曼计算机

美籍匈牙利科学家冯·诺依曼最先提出“程序存储”(存储程序)(程序通过穿孔介质输入机器,之后长期贮存在机器内部的存储器中)的思想,并成功将其运用在计算机的设计之中,根据这一原理制造的计算机被称为冯·诺依曼结构计算机(冯·诺依曼机)。

“程序存储”(存储程序)的基本思想是:将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束。

程序存储”(存储程序)的思想奠定了现代计算机的基本结构,由于他对现代计算机技术的突出贡献,因此冯·诺依曼又被称为“现代计算机之父”。

主要特点

冯诺依曼计算机主要特点

  • 构成程序的指令和数据均采用二进制表示。

  • 指令和数据存放在存储器中,按地址访问。

  • 指令在存储器中按顺序存放。一般情况下,指令是顺序执行的。

  • 指令由操作码地址码组成:

    • 操作码用来表示执行何种操作。
    • 地址码用来表示操作数在存储器中的位置。
  • 机器以运算器为中心,输入/输出设备与存储器间的数据传送通过运算器完成。

  • 计算机硬件由运算器控制器存储器输入/输出设备 5 大部件组成。

组成部分
  • 输入设备:将人们熟悉的信息形式转换为计算机能够识别的信息形式,常见的有键盘、鼠标、扫描仪、摄像头等。

  • 输出设备:将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出,常见的有显示器、打印机等。

  • 存储器:分为 主存储器辅助存储器

    • 主存储器:用于存放程序和数据可以直接与CPU交换信息,又称为内存储器,简称内存或主存,例如内存条。

    • 辅助存储器:用于帮助主存存储更多的信息。又称为外部存储器,简称外存辅存。辅存中的信息必须调入主存后,才能被 CPU 访问。例如硬盘驱动器(HDD)、固态硬盘(SSD)、光盘驱动器。

  • 运算器:核心为算术逻辑单元 ALU(Arithmetic Logic Unit),此外还包含了一些其他的相关寄存器。ALU 主要功能:

    • 算术运算:加、减、乘、除
    • 逻辑运算:与、或、非、异或等
  • 控制器:核心为控制单元 CU(Control Unit),此外还包含了一些其他的相关寄存器。CU 主要功能如下:

    • 用于解释存储器中的指令,并发出各种操作命令来执行指令。

    • I/O 设备也受 CU 控制,用于完成相应的输入/输出操作。

冯诺依曼计算机结构

![[冯诺依曼计算机结构.png]]

控制器与其他四个组件之间通过控制线反馈线相连,其他部件需要在控制器的控制下协调工作,控制器通过控制线给其他部件发送控制信号,命令这些部件完成相应的任务,而其他部件通过反馈线将自身状态任务完成情况反馈给控制器。

但是,每次输入/输出(I/O)操作都需要运算器参与,浪费很多可以用于运算的时间。

现代计算机结构

现代计算机以存储器为中心,五大组件:

![[现代计算机结构.png]]

现代计算机可以让输入/输出(I/O)设备直接与存储器交换数据,减少了 CPU 的负担,并提高了数据传输速率。数据通过输入设备进入系统,存储在存储器中。控制器负责协调各个部件的工作,运算器执行计算任务。处理后的数据最终通过输出设备呈现给用户。各部件之间通过数据线和控制线进行通信,确保数据的传输和指令的执行。

由于运算器控制器在逻辑关系和电路结构上联系十分紧密,在大规模集成电路制作工艺出现后,这两大部件往往被集成在同一颗芯片上,称为 中央处理器CPU,Central Processing Unit)

![[现代计算机结构示意图.png]]

计算机软件

仅包含硬件系统的计算机是无法工作的,只有在硬件上运行软件系统,才能使计算机正常运行。

软件分为系统软件和应用软件两大部分:

  • 系统软件:为管理整个计算机系统所编制的程序

  • 应用软件:为实现用户应用所编制的各种程序

![[软件系统组成部分.png]]

计算机系统性能的好坏,取决于软件硬件系统功能的总和

程序是软件的重要组成部分,一台计算机中的全部程序和数据,就构成了这台计算机的软件系统。

![[软件系统的分类.png]]

计算机程序语言的发展

![[计算机程序语言的发展.png]]

程序设计语言和语言翻译程序的关系:

![[程序设计语言和语言翻译程序的关系.png]]

将高级语言源程序转换为可执行目标文件的主要过程是:预处理 → 编译 → 汇编 → 链接

编译程序:将高级语言一次全部翻译为汇编语言或直接翻译为机器语言

汇编程序:将汇编语言翻译成机器语言

解释程序:高级语言翻译为机器语言(翻译一句执行一句)

  • 随着硬件和软件的不断发展,人们又创造出了一类程序,称为操作系统(属于系统软件)。

    • 操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些基本操作

    • 操作系统负责控制并管理计算机系统全部硬件资源(例如CPU、 内存和外部设备)和软件资源(例如编译程序、应用程序等)。

    • 操作系统为用户使用计算机系统提供了极为方便的条件

  • 随着计算机应用领域的逐渐扩大,还相应地出现了其他各类系统软件(例如数据库管理系统、网络系统等)以及多种多样应用软件。

  • 随着软件的进一步发展, 将会出现更高级的计算机语言,其发展方向是标准化、积木化、产品化以及智能化,最终向自然语言发展,它们能够自动生成程序。

软件和硬件功能的逻辑等价性

硬件实现的往往是最基本的算术和逻辑运算功能,而其他功能大多通过软件的扩充得以实
现。在特定条件下,用软件实现的逻辑功能也可以通过硬件电路来实现,反之亦然。从用户的角度来看,它们在功能上是等价的。这一等价性被称为软/硬件逻辑功能的等价性

  • 对于一些特定的计算或控制任务,可以选择将其使用软件编程来实现,也可以选择设计专用硬件电路来实现,而两者的结果将在功能上等效。

软件和硬件的逻辑功能等价性是计算机科学的一个重要概念,也是计算机体系结构和工程中的基本原则之一。

  • 当选择在软件层面实现某些逻辑功能时,这通常意味着使用通用处理器(例如CPU)来执行程序

  • 而当选择在硬件层面实现这些逻辑功能时,这通常意味着使用专用的硬件电路,例如现场可编程门阵列 FPGA(Field Programmable Gate Array)或专用集成电路 ASIC(Application Specific Integrated Circuit)技术。

软件实现硬件实现
性能与速度性能与速度弱于硬件实现更高的性能和更快的响应时间
灵活性相对容易地进行修改和更新需要重新设计和制造
成本开发软件相对便宜开发和制造硬件比较昂贵
应用需求有些任务更适合在软件层面完成,例如操作系统的功能有些任务更适合在硬件层面完成,例如高频交易系统

当研制一台计算机时,设计者必须明确分配每一级的任务,确定哪些功能需要使用硬件实现,哪些功能需要使用软件实现。这是由设计目标、技术水平、性价比等综合因素决定的。

计算机系统的层次结构

计算机是一个非常复杂的系统,为了简化对计算机系统的研究和实现,可采用分层思想将计算机系统划分成一个层次结构的系统。

  • 系统中的每一层都向其上层提供一个简洁和抽象的接口

  • 每一层的实现细节对其上层而言都是“看不见”的,也就是透明的。

  • 计算机解决问题的过程就是层次结构中的各层逐层转换的过程。

  • 下层是实现上层的基础,而上层实现对下层的功能扩展

计算机系统的分层方式,目前并没有统一的标准,这里介绍一种将计算机系统划分成六个抽象层的层次结构。

![[计算机系统的层次结构.png]]

软件和硬件之间的界面就是指令集体系结构(ISA),ISA 定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什么操作,以及所处理的操作数存放的地址空间和操作数类型。可以看出,ISA 是指软件能感知到的部分,也称软件可见部分。

计算机组成原理主要讨论微程序层机器的组成原理及设计思想。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探秘基带算法:从原理到5G时代的通信变革【二】Viterbi解码

文章目录 二、关键算法原理剖析2.1 Viterbi 解码2.1.1 卷积码与网格图基础**卷积码****网格图****生成多项式****理想情况下解码过程** 2.1.2 Viterbi 算法核心思想2.1.3 路径度量与状态转移机制2.1.4 算法流程与关键步骤详解2.1.5 译码算法举例与复杂度分析2.1.6 算法代码示例…

uniapp对接打印机和电子秤

uniapp对接打印机和电子秤 连接电子秤和打印机,最难的不是连接蓝牙和电子成,而是打印机。因为打印机涉及到向打印机写数据操作,然后这个写的数据需要做一个编码转换。难就难在编码转换。如果是java那就是一句代码的事情,而js就没有…

Java-实现PDF合同模板填写内容并导出PDF文件

可用于公司用户合同导出pdf文件 效果图 一、导入所需要jar包 <!--生成PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.11</version></dependency><dependency&…

如何排查服务器内存泄漏问题

服务器内存泄漏是一种常见的问题&#xff0c;可能导致系统性能下降甚至系统崩溃。以下是一般情况下用于排查服务器内存泄漏问题的步骤&#xff1a; 排查服务器内存泄漏问题的步骤&#xff1a; 监控系统资源&#xff1a; 使用系统监控工具&#xff08;如top、htop、free&#x…

Tampermonkey篡改猴官网,油猴脚本插件电脑版入口(含教程)

Tampermonkey&#xff08;篡改猴&#xff09;是一款功能强大的浏览器扩展工具&#xff0c;自2010年发布以来&#xff0c;已成为全球超过1000万用户的首选脚本管理器。它通过运行用户自定义的JavaScript脚本&#xff0c;赋予用户深度定制网页的能力&#xff0c;涵盖广告拦截、界…

Java高频面试之集合-03

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;说说ArrayList和LinkedList的区别 ArrayList 与 LinkedList 的详细对比 一、底层数据结构 特性ArrayListLinkedList存…

golang学习笔记——go语言安装及系统环境变量设置

文章目录 go语言安装go envgo getgoproxy测试安装 Go 插件安装 Go 插件依赖工具参考资料用户环境变量和系统环境变量用户环境变量系统环境变量示例设置环境变量的步骤设置用户环境变量设置系统环境变量 验证环境变量总结 2024年最火的5大Go框架1. Gin&#xff1a;高并发接口的“…

Composition API

为什么会产生 Composition API? Vue2 逻辑复用方式 缺点 Mixin (命名空间冲突、逻辑不清晰、不易复用)scoped slot 作用域插槽 (配置项多、代码分裂、性能差)Vue2 对 TS 支持不充分 Composition API 优点 逻辑代码更少, 更集中, 更易扩展更加丰富的 API 集成对 TS 来说,…

DeepSeek R1助力,腾讯AI代码助手解锁音乐创作新

目录 1. DeepSeekR1模型简介2. 歌词创作流程2.1 准备工作2.2 歌词生成技巧 3. 音乐制作环节3.1 主流AI音乐生成平台 4. 歌曲欣赏5. 总结展望 1. DeepSeekR1模型简介 腾讯AI代码助手最新推出的DeepSeekR1模型不仅在代码生成方面表现出色&#xff0c;其强大的自然语言处理能力也…

微信小程序接入deepseek

先上效果 话不多说&#xff0c;直接上代码&#xff08;本人用的hbuilder Xuniapp&#xff09; <template><view class"container"><!-- 聊天内容区域 --><scroll-view class"chat-list" scroll-y :scroll-top"scrollTop":…

angular+nodejs问卷调查系统

说明&#xff1a;我计划用angularmysqlnodejs&#xff0c;做一套问卷调查系统&#xff0c; 1.先设计数据库表&#xff0c; 2.然后添加模拟数据&#xff0c; 3.然后写几个查询方法 4.然后用nodejs写service服务&#xff0c;查询mysql数据 5.然后写contrller路由&#xff0c;指向…

Ubuntu20.04双系统安装及软件安装(五):VSCode

Ubuntu20.04双系统安装及软件安装&#xff08;五&#xff09;&#xff1a;VSCode 打开VScode官网&#xff0c;点击中间左侧的deb文件下载&#xff1a; 系统会弹出下载框&#xff0c;确定即可。 在文件夹的**“下载”目录**&#xff0c;可看到下载的安装包&#xff0c;在该目录下…

EasyDSS视频推拉流系统:清理缓存文件时如何确保缓存读写不受影响?

视频推拉流EasyDSS视频直播点播平台可提供一站式的视频转码、点播、直播、视频推拉流、播放H.265视频等服务&#xff0c;搭配RTMP高清摄像头使用&#xff0c;可将无人机设备的实时流推送到平台上&#xff0c;实现无人机视频推流直播、巡检等应用。 有用户咨询&#xff0c;视频推…

VS Code C++ 开发环境配置

VS Code 是当前非常流行的开发工具. 本文讲述如何配置 VS Code 作为 C开发环境. 本文将按照如下步骤来介绍如何配置 VS Code 作为 C开发环境. 安装编译器安装插件配置工作区 第一个步骤的具体操作会因为系统不同或者方案不同而有不同的选择. 环境要求 首先需要立即 VS Code…

GPIO的简介

目录 一、GPIO简介 二、GPIO基本结构 三、GPIO位结构 1、整体结构和内部各结构 2、输入部分 1.保护二极管 2.输入模式 3.浮空/上拉/下拉配置 ​编辑 4.模拟输入 5.施密特触发器 3、输出部分 1.输出部分前段 2.输出模式 3.开漏/推挽输出 4.复用开漏/推挽输出 四…

EasyDSS视频推拉流/直播点播平台:Mysql数据库接口报错502处理方法

视频推拉流/视频直播点播EasyDSS互联网直播平台支持一站式的上传、转码、直播、回放、嵌入、分享功能&#xff0c;具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务&#xff0c;全面满足超低延迟、超高画质、超大并发访…

AI工具:免费-文字转语音TTsmaker

前言&#xff1a; 测试了一款好用的文字转语音工具&#xff0c;简单&#xff0c;个人用免费功能就足够了。 说明&#xff1a; TTSMaker&#xff08;马克配音&#xff09;是一款免费的文本转语音工具&#xff0c;提供语音合成服务&#xff0c;支持多种语言&#xff0c;包括中…

vue3 vite 两种监听pinia状态变化的方式比较:watch, $subscribe

首先搭建vue3 vite 项目 npm create vue选择pinia 或者自己安装pinia 自己安装需要 npm install pinia并在main.js中挂在上&#xff1a; const pinia createPinia() const app createApp(App) app.use(pinia) app.mount(#app)创建stores文件夹和counter.js文件 counter.j…

【算法学习之路】5.贪心算法

贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳&#xff01;3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完&#xff0c;形成一套完整的算法体系&#xff0c;以及大量的各个难度的题目&#xff0c;目前算法也写了几篇&#xff0c;题单正在更新&#xf…

【ThreeJS Basics 1-6】Camera

文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动&#xff08;可以看到后面&#xff09; 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…