计算机系统基本组成于基本功能

news2025/1/11 20:57:11

 什么是计算机系统

 计算机系统中的各个抽象层:

  • C语言程序设计层
    • 数据的机器级表示,运算
    • 语句和过程调用的机器级表示
  • 操作系统、编译和链接
  • 指令集体系架构(ISA)和汇编层
    • 指令系统、机器代码,汇编语言
  • 微体系结构和硬件层
    • CPU的通用结构
    • 层次结构存储系统

现代计算机的原型——冯诺伊曼结构

其实早在冯诺依曼结构模型之前,有更早的计算机模型——图灵机但不是现代计算机的原型。

冯诺依曼结构最重要的思想是:存储程序(Stored-program)

 任何要计算机完成的工作都要事先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需要操作人员干预下,自动完成逐条取出指令和执行指令的任务。

冯诺依曼结构的主要思想

  1. 冯诺依曼结构分为5个部分:运算器,控制器、存储器、输入设备和输出设备,并约定用二进制进行存储和运算。
  2. 各基本部件的功能是:
  •  存储器不仅能存放数据,而且也能存放指令,形式上两者没有什么区别都是二进制序列,但计算机应该能区分数据还是指令
  •  控制器应能自动取出指令来执行
  • 运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算
  • 操作人员可以通过输入设备,输出设备和主机进行通信

    3. 内部以二进制表示指令和数据,每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。

    4. 采用“存储程序” 工作方式     ​​​​​​​                                                     ​​​​​​​​​​​​​​        

 

 

 计算机执行程序方式:

取指令->指令译码->取操作数->指令执行->回写结果->修改PC的值

最主要的四个步骤是:

 

四个阶段的具体含义:

  1. CPU 通过程序计数器读取对应内存地址的指令,这个部分称为 Fetch(取得指令)
  2. CPU 对指令进行解码,这个部分称为 Decode(指令译码)
  3. CPU 执行指令,这个部分称为 Execution(执行指令)
  4. CPU 将计算结果存回寄存器或者将寄存器的值存入内存,这个部分称为 Store(数据回写)

上面这 4 个阶段,我们称为指令周期(Instrution Cycle,CPU 的工作就是一个周期接着一个周期,周而复始。

事实上,不同的阶段其实是由计算机中的不同组件完成的:

  • 取指令的阶段,我们的指令是存放在存储器里的,实际上,通过程序计数器和指令寄存器取出指令的过程,是由控制器操作的;
  • 指令的译码过程,也是由控制器进行的;
  • 指令执行的过程,无论是进行算术操作、逻辑操作,还是进行数据传输、条件分支操作,都是由算术逻辑单元操作的,也就是由运算器处理的。但是如果是一个简单的无条件地址跳转,则是直接在控制器里面完成的,不需要用到运算器。

指令的类型

指令从功能角度划分,可以分为 5 大类:

  • 数据传输类型的指令,比如 store/load 是寄存器与内存间数据传输的指令,mov 是将一个内存地址的数据移动到另一个内存地址的指令;
  • 运算类型的指令,比如加减乘除、位运算、比较大小等等,它们最多只能处理两个寄存器中的数据;
  • 跳转类型的指令,通过修改程序计数器的值来达到跳转执行指令的过程,比如编程中常见的 if-elseswitch-case、函数调用等。
  • 信号类型的指令,比如发生中断的指令 trap
  • 闲置类型的指令,比如指令 nop,执行后 CPU 会空转一个周期;

指令中需要给出的信息:

操作性质(操作码)

源操作数1或/和源操作数2(立即数,寄存器编号,存储地址)

目的操作数地址(寄存器编号,存储地址)

存储地址的描述与操作数的数据结构有关!

 个人总结

1、冯诺依曼的结构:运算器+存储器+控制器+I/O设备

2、冯诺依曼结构的最重要的思想就是:采用“存储程序”的思想

3、控制器(控制):对指令译码生成控制信号

4、计算机实现的所有任务都是通过执行一条一条指令完成的。

5、计算机是采用“存储程序”的工作方式

6、程序是由指令组成(计算机的执行程序就理解成你妈妈做你喜欢吃的菜的过程)

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

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

相关文章

365天深度学习训练营-第J9周:Inception v3算法实战与解析

目录 一、前言 二、论文解读 1、Inception网络架构描述 2、Inception网络架构的优点 3、InceptionV3的改进 三、模型搭建 1、Inception-A 2、Inception-B 3、Inception-C 4、Reduction-A 5、Reduction-B 6、辅助分支 7、InceptionV3实现 一、前言 🍨 本…

ASP一个简单的网上教务系统模型的设计与实现

对于一个学校来说,大量教师信息,学生信息管理,学生成绩管理,基本数据的维护都难于通过传统的方法进行管理:这就迫切需要利用计算机技术来帮助学校管理者处理这些日常管理。本系统正是为了简化教学任务的管理&#xff0…

FreeRTOS 任务调度及相关函数详解(一)

文章目录一、任务调度器开启函数 vTaskStartScheduler()二、内核相关硬件初始化函数 xPortStartScheduler()三、启动第一个任务 prvStartFirstTask()四、中断服务函数 xPortPendSVHandler()五、空闲任务一、任务调度器开启函数 vTaskStartScheduler() 这个函数的功能就是开启任…

【ROS2指南-1】配置ROS2环境

资料来源Configuring your ROS 2 environment — ROS 2 Documentation: Dashing documentationhttp://docs.ros.org/en/dashing/Tutorials/Configuring-ROS2-Environment.html 目标:本教程将向您展示如何准备 ROS 2 环境。 教程级别:初学者 时间&…

js控制页面随浏览器放大缩小,页面布局不变

一.给App.vue设置minWidth、minHeight、maxWidth以及maxHeight,值为浏览器的可视窗口大小(我的浏览器不全屏的时候是1920*937,全屏的时候是1920*1080) 1.在main.js中获取浏览器的宽高,并挂载到全局变量上以便使用 // 浏览器窗口,这个地方值不会变,你任意拉扯浏览器也不会改变…

【数据库基本操作】打开数据库

一、启动与关闭 只介绍一种方法: 打开命令行工具,以管理员身份运行 1.启动数据库 net start mysql80 //80是在安装的时候设置的名字(默认),不用在意 2.关闭数据库 net stop mysql80 如题已经成功&#…

场景搭建、素材库、在线标绘等,四维轻云地理空间数据云管理平台新增了这些功能

四维轻云是一款地理空间数据云管理平台,具有地理空间数据在线管理、展示及分享等功能。在四维轻云平台中,用户可以不受时间地点的限制,随时随地管理、查看及分享各类地理空间数据。 为了更好地满足用户需求和进行地理空间数据在线管理&#…

【C++从入门到放弃】string全方面分析(常用接口、模拟实现)

🧑‍💻作者: 情话0.0 📝专栏:《C从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! strin…

d2l 文本预处理textDataset

这一节极其重要,重要到本来是d2l的内容我也要归到pyhon封面,这里面class的操作很多,让我娓娓道来! 目录 1.要实现的函数 2.读取数据集 3.词元化 4.Vocab类 4.1count_corpus(tokens) 4.2class中的各种self 4.2.1 _token_fr…

CS5260设计电路|替代RTD2169设计方案|Typec转VGA方案应用设计

CS5260,RTD2169,AG9300都可实现Type-C TO VGA转换器设计,适用于笔记本电脑、主板、台式机、适配器和对接系统等多个细分市场和显示器应用程序, CS5260设计电路如下: 2. CS5260功能特性: USB-C型规格1.2 VESA显示端口tm (DP) v1.4兼容接收机…

nvm安装及使用

nvm是一个node的版本管理工具。 nvm-windows下载 1、安装 首先要卸载电脑上已经有的node版本,注意需要卸载干净,再安装nvm 一路 next 安装就可以了。 安装成功后,以管理员身份运行(很重要!!!&…

MIPI 打怪升级之DCS篇

目录1 Overview2 Display Architectures2.1 The Type 1 Display Architecture3 Power Level3.1 Type 1 Display Architecture Power Change Sequences3.2 Type 2 Display Architecture Power Change Sequences3.3 Type 3 Display Architecture Power Change Sequences4 Gamma C…

unity的学习,准备搞一款mmo小游戏,服务器和客户端从零学

如代码所示,简单了解一下。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class test : MonoBehaviour { void Awake(){Debug.Log("awake hello world!");}// 当脚本可用时,也就是打勾的时候可以…

线程同步-信号量-互斥量-条件变量

文章目录线程同步信号量互斥量条件变量线程同步 线程同步其实实现的是线程排队。防止线程同步访问共享资源造成冲突。多个线程访问共享资源的代码有可能是同一份代码,也有可能是不同的代码;无论是否执行同一份代码,只要这些线程的代码访问同…

Java避免死锁的几个常见方法(有测试代码和分析过程)

目录 Java避免死锁的几个常见方法 死锁产生的条件 上死锁代码 然后 :jstack 14320 >> jstack.text Java避免死锁的几个常见方法 Java避免死锁的几个常见方法 避免一个线程同时获取多个锁。避免一个线程在锁内同时占用多个资源,尽量保证每个锁…

Geoserver启动时提示:The GEOSERVER_HOME variable is not defined

场景 GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践): GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)_霸道流氓气质的博客-CSDN博客 在下载解压之后点击启动bat时提示: The GEOSERVER_HOME environment variable is not defin…

row_number 和 cte 使用实例:背包问题

row_number 和 cte 使用实例:背包问题背包问题01背包解决同一行数据需要引用两次的问题对 for xml 的结果进行引用时的处理完全背包多重背包小结背包问题 最近老顾从新把算法捡了起来,碰到了各种各样以前没见过的,工作中没遇到的问题&#x…

leetcode:快乐数(详解)

前言:内容包括:题目,代码实现,大致思路,代码解读 题目: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字…

坚鹏:《银行业数字化转型指导意见》政策解读及银行数字化转型

中国银保监会《关于银行业保险业数字化转型的指导意见》政策解读及银行数字化转型课程背景: 很多银行存在以下问题: 不知道如何准确理解中国银保监会《关于银行业保险业数字化转型的指导意见》相关政策 不清楚中国银保监会《关于银行业保险业数字化转型…

使用AI进行“文本纠错”

AI在现实中的应用有很多,你有没有想过,它还可以进行文本纠错呢?传统的校对既耗时又枯燥,通过“AI纠错”,不仅能更快完成,还能提高准确度。那么AI“文本纠错”背后的原理是什么呢?和我一起看看吧…