计算机组成原理——计算机系统概述

news2024/11/28 4:31:55

文章目录

  • 计算机系统的组成
    • 计算机硬件
      • 冯诺依曼结构
      • 计算机的功能部件
    • 计算机软件
      • 系统软件和应用软件
      • 三个级别的语言
  • 计算机的性能指标
    • 字长
    • 数据通路宽度
    • 主存容量
    • 运算速度

计算机系统的组成

计算机系统由硬件系统和软件系统组成:

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

硬件实现的往往是最基本的算术和逻辑运算功能,而其它功能大都由软件实现。对一个功能而言,既可以通过硬件实现,也可以通过软件实现,一般来说,一个功能若使用较为频繁且用硬件实现的成本较为理想,那么使用硬件解决可以提高效率。

计算机硬件

在这里插入图片描述

冯诺依曼结构

冯诺依曼提出的存储程序概念奠定了现代计算机的基本结构,以此概念为基础的各类计算机统称为冯诺依曼机,其特点如下:

  • 采用存储程序的工作方式,它的基本思想是:将事先编好的程序和原始数据送入主存后才能执行,一旦程序开始执行,就不需要操作人员的干预,计算机会逐条执行指令,直至程序执行结束。
  • 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备五大部分组成。
  • 指令和数据以相同的地位存储在存储器上,形式上没有任何区别。
  • 指令和数据均用二进制代码表示。指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

早期冯诺依曼结构以运算器为中心,此时运算器不仅要承担数据运算的任务,还要承担数据中转的任务。

在这里插入图片描述

为了解决这个问题,现代计算机以存储器为中心,这样就可以解放运算器:

在这里插入图片描述

计算机的功能部件

  • 输入设备:输入设备的主要功能是将程序和数据以及其能识别和接收的信息的形式输入计算机。

  • 输出设备:输出设备的主要功能是将计算机处理的结果以人所能接收的形式或其它系统所要求的形式输出。

  • 存储器:存储器分为内存和外存,CPU能直接访问的存储器是内存,外存用于帮助内存存储更多的信息,外存存储的信息必须调入内存中才能被CPU访问。内存的工作方式是按照存储单元的地址进行存取,这种存取方式称为按地址存取方式。内存的基本组成如下所示:
    在这里插入图片描述

    • 其中存储体用于存放二进制信息,它由许多存储单元组成,每个存储单元包含若干个存储元件,每个存储元件存储一位(bit)二进制代码,因此存储单元可以存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是一字节(byte)或字节的偶数倍。
    • 地址寄存器(MAR)用于存储访问地址,经过地址译码后找到所选的存储单元,其位数对应存储单元的个数,它的长度和PC的长度相同。
    • 数据寄存器(MDR)用于暂存要从存储体中读或写的信息,它的位数和存储字长相同。
    • 时序控制逻辑用于产生存储器操作所需的各种时序信号。
  • 运算器:运算器是计算机的执行部件,用于进行算术运算和逻辑运算。运算器的基本组成如下所示:
    在这里插入图片描述

    • 算数逻辑单元(ALU):算数逻辑单元,通过内部复杂的电路实现算术运算和逻辑运算。
    • 通用寄存器(GPRs):运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(LX)、基址寄存器(BR)等,其中前三个寄存器是必须具备的。运算器中还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。
  • 控制器:控制器用于指挥各部件自动协调的进行工作。控制器的基本组成如下所示:
    在这里插入图片描述

    • 程序计数器(PC):用于存放下一条执行指令的地址,它和内存的地址寄存器之间有一条直接通道。
    • 指令寄存器(IR):用于存放当前执行的指令,其内容来自内存的数据寄存器。
    • 控制单元(CU):用于分析指令,给出控制信号。

一般将地址寄存器、数据寄存器、运算器和控制器集成到同一个芯片上,称为中央处理器(CPU):

在这里插入图片描述

CPU和内存之间通过一组总线相连,总线中有地址、控制和数据三组信号线。MAR中的地址信息会直接送到地址总线上,用于指向读/写操作的内存存储单元;控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作和写操作来控制将MDR中的数据是直接送到数据线总线上还是将数据总线上的数据送到MDR中。

计算机软件

系统软件和应用软件

软件按功能分可以分为系统软件和应用软件,系统软件是一组可以保证计算机高效、正确运行的基础软件,主要包括操作系统、数据库管理系统和语言处理程序等;应用软件是指用户为解决某个应用领域中的各类问题而编写的程序。

三个级别的语言

  • 机器语言:又称为二进制代码语言,它是计算机唯一可以直接识别和执行的语言。
  • 汇编语言:汇编语言用英文单词或其缩写代替二进制的指令代码,使用汇编语言编写的程序,必须通过一个名为汇编程序的系统软件的翻译,将其转化为机器语言程序后,才能在计算机硬件上运行。
  • 高级语言:高级语言是为方便程序员而设计的程序,通常高级语言程序需要经过编译程序编译为汇编语言程序再通过汇编程序翻译为机器语言,或直接由高级语言程序翻译为机器语言程序。

计算机的性能指标

字长

字长是指计算机进行一次整数计算所能处理的二进制数据的位数,通常和CPU的寄存器位数相等。字长越长(通常为字节的整数倍),数的表示范围越大,计算机的精度越高。

数据通路宽度

数据通路(各个子系统通过数据总线连接形成的数据传送路径)带宽是指总线一次所能并行传送数据的位数,这里所说的数据通路带宽是指外部数据总线的宽度,它与CPU内部的数据总线的宽度有可能不同。

主存容量

主存容量是指内存所能存储信息的最大容量,通常以字节来表示,也可以使用字数x字长来表示存储容量。

运算速度

  • 吞吐量:指系统在单位时间内处理请求的数量,它取决于数据能多快的输入内存,CPU能多快的取指令,数据能能多快的从内存取出或存入,以及所得结果能多快的从内存送给一台外部社会。
  • 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获取所需结果的等待时间,通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)。
  • CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,执行指令的每个动作至少需要一个时钟周期。
  • CPU时钟频率(主频):机器内部主时钟频率,是衡量机器速度的重要参数,对该请求做出响应并获得所需结果的等待时间。通常包括CPU时间(运行一个程序所花的时间)与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等的时间)。
  • CPI:指执行一条指令所需要的时钟周期数,不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是一个平均值。
  • CPU执行时间:指运行一个程序所花费的时间。 C P U 执行时间 = C P U 时钟周期数 / 主频 = (指令条数 × C P I ) / 主频 CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)/主频 CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI/主频
  • MIPS:即每秒执行多少百万条指令。 M I P S = 指令条数 / (执行时间 × 1 0 6 ) = 主频 / ( C P I × 1 0 6 ) MIPS=指令条数/(执行时间×10^6)=主频/(CPI×10^6) MIPS=指令条数/(执行时间×106=主频/CPI×106

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

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

相关文章

【CICD】如何编写 .gitlab-ci.yml 文件

⏳ CICD 指的是持续集成/持续交付(continuous integration/ continuous delivery),是为了满足互联网、金融公司快速迭代项目的需要而提出的一种软件开发思想。大致思路是通过编写自动化脚本,使新代码必须通过一些规则核查后才能部…

自定义控件(?/N) - 事件分发

一、外部传递到ViewGroup中Activity会通过 getWindow( ) 获取PhoneWindow对象并调用它的superDispatchTouchEvent( ),该方法会调用它(PhoneWindow)的内部类 DecorView 的 superDispatchTouchEvent( ),而它(DecorView&a…

【Docker】P1 初识 Docker 以及 Ubuntu 安装 Docker

初识 Docker 以及 Ubuntu 安装 Docker初识 Docker故事引入DockerUbuntu 安装 Docker读完本文,你应当会理解这两句话: Docker 可以大大简化运维部署相关操作,可以规避一些 bug; Docker 是一种容器技术,解决软件跨环境迁…

使用Houdini输出四面体网格并输出tetgen格式

我们的目标是从houdini输出生成的四面体,希望是tetgen格式的。 众所周知,houdini是不能直接输出四面体的。 有三方案去解决: 输出点云ply文件,然后利用tetgen生成网格。输出Hounidi内置的.geo格式文件,然后写个脚本…

[Java Web]Request对象 | 超1w字带你熟悉Servlet中的request请求

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章 ⭐所属专栏:Java Web ⭐如果觉得文章写的不错,欢迎点个关注😉有写的不好的地方也欢迎指正,一同进步😁 目录 Reque…

Codeforces Round 857 (Div. 2)【A-C】

文章目录A. Likes【贪心、模拟】B. Settlement of Guinea Pigs【贪心】C. The Very Beautiful Blanket【构造、观察】链接传送门A. Likes【贪心、模拟】 分析 为了使得当前时间点赞的尽可能大,那么前面的赞的数目也要尽可能大,所以前面把能赞的都要先赞…

2-8 SpringCloud快速开发入门: Eureka 服务注册中心自我保护机制

接上一章节Eureka 注册中心高可用集群搭建,这里讲讲Eureka 服务注册中心自我保护机制 Eureka 服务注册中心自我保护机制 自我保护机制是 Eureka 注册中心的重要特性,当 Eureka 注册中心进入自我保护模式时,在 Eureka Server 首页会输出如下警…

Python JS逆向篇(一)

Python JS逆向篇(一)效果实现思路最后一步逆向 p.a.HmacSHA256(t, s["a"].state.commonStore.cupid_sign_key)JS实现py实现(先苦后甜)逆向主题:51job请求头headers中携带的sign参数。 (注&#x…

Windows基于Nginx搭建RTMP流媒体服务器(附带所有组件下载地址及验证方法)

RTMP服务时常用于直播时提供拉流推流传输数据的一种服务。前段时间由于朋友想搭建一套直播时提供稳定数据传输的服务器,所以就研究了一下如何搭建及使用。 1、下载nginx 首先我们要知道一般nginx不能直接配置rtmp服务,在Windows系统上需要特殊nginx版本…

centos8 安装 pcs pacemaker

一、背景 在centos-8中安装pcs、pacemaker会显示找不到源 (yum install pcs pacemaker 也是一样的) 通过搜索引擎,有说:dnf config-manager --set-enable HighAvailability 也有的说:执行dnf update 也有的说执行 dn…

AB测试——流程介绍(设计实验)

前言: 作为AB测试的学习记录,接上文内容, 本文继续介绍假设建立和实验设计部分,包括实验对象、样本量计算(显著性水平、统计功效及最小可检测效应)、实验周期。 相关文章: AB测试——原理介绍 A…

【PyTorch】教程:torch.nn.PReLU

torch.nn.PReLU 原型 CLASS torch.nn.PReLU(num_parameters1, init0.25, deviceNone, dtypeNone) 参数 num_parameters ([int]) – 需要学习的 aaa 的数量,尽管作为输入,只有两个值是合法的,1 或者 输入的通道数,默认为 1 。ini…

各种光照模型的shader实现

大家好,我是阿赵。 这里打算给大家介绍一些常用的光照模型的shader实现方法。虽然这些光照模型很多都会在各大引擎内置,一般不需要自己写。但我觉得学习一下,首先对了解渲染原理有帮助,然后对写一些复合效果的shader时&#xff0c…

java安全编码规范考试

java安全编码规范考试 整理不易,收点币!! 安全编码规范考试.md 下面对zip文件的安全解压缩描述,错误的是 A.zip文件解压时,可以使用entry.getSize()对解压缩文件进行文件大小判断 B.zip文件解压时&…

Spring Cloud ( Eureka集群的搭建 )

操作步骤: 添加主机映射创建Eureka服务 导入依赖编写启动类编写yml复制服务实例测试一、添加主机映射 以 Windows系统为例,如果要构建集群,需要修改 hosts 文件,为其添加主机名的映射。 打开C:\Windows\System32\drivers\etc\h…

DJ1-4 计算机网络和因特网

目录 一、协议层及其服务模型 ISO/OSI 七层参考模型 TCP/IP 参考模型 1. 网际协议栈(protocol stack) 2. 分层:逻辑通信 3. 协议分层与数据 二、攻击威胁下的网络 1. 植入恶意软件 2. 攻击服务器和网络基础设施 3. 嗅探分组 4. 伪…

为什么机器人操作系统ROS1、ROS2这么难学

AI回复:ROS1、ROS2是机器人操作系统,涉及到很多复杂的概念和技术,需要有一定的编程和机器人知识基础才能学习。此外,ROS1和ROS2的架构和设计也有很大的不同,需要花费一定的时间和精力去学习和适应。但是,一…

DHCP的配置

实验目的熟悉DHCP的应用场景掌握DHCP的配置方法实验拓扑DHCP的配置如图15-2所示: 图15-2:DHCP的配置 实验步骤配置IP地址<Huawei>system-view Enter system view, return user view with Ctrl+Z.

新手入门python实现神经网络,超级简单!

前言&#xff1a; 这篇文章完全是为新手准备的。我们会通过用Python从头实现一个神经网络来理解神经网络的原理。 文章目录神经元1、一个简单的例子2、编码一个神经元把神经元组装成网络1、例子&#xff1a;前馈2、编码神经网络&#xff1a;前馈训练神经网络 第一部分1、损失2、…

C51---串口发送指令,控制LED灯亮灭

1.Code: #include "reg52.h" #include "intrins.h" sfr AUXR 0x8E; sbit D5 P3^7; void UartInit(void) //9600bps11.0592MHz { //PCON & 0x7F; //波特率不倍速 AUXR 0x01; SCON 0x50; //8位数据,可变波…