计算机系统(一)——冯诺依曼体系

2024-01-04 11:08

本文主要是介绍计算机系统(一)——冯诺依曼体系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现代计算机的基本结构是由冯诺依曼提出的,冯诺依曼的体系结构体系如下图所示:

计算机由运算器、控制器、存储器(也就是内存)、输入设备、输出设备五大部件组成。

其中运算器和控制器组成cpu
        ​​​​​​​

 

 

 在冯诺依曼体系中,数据先从输入设备输入到内存中,运算时数据从内存中读出,在运输到运算器中,运算的结果在存入到内存中,在运送给输出设备进行输出。程序也是以数据的形式从内存中

运送给控制器,经过译码码在形成各种各样的控制信号,使得控制信号可以按一定的节奏,一步一步的控制输入设备输入数据,控制运算器进行运算,控制内存器的读写、控制输出设备输出设备

从上图可以看出:

在传输数据中,cpu只与内存打交道,不与输入设备和输出设备直接打交道,输入设备要想传送数据给cpu,只能先传输到内存中,在由内存传送到cpu。

指令系统

计算机工作的本质是执行程序的过程,程序就是指令的序列,计算机在执行程序的过程会将程序中的语句(也就是代码)翻译成计算机能够读懂的机器指令,然后在根据指令的顺序逐条执行,从而完成一项特定的工作。

指令是指定计算机执行特定操作的命令,cpu根据指令来指挥和控制计算机各部分协调的动作,已完成操作,一条指令的基本格式:

 操作码指定操作特性和功能,如加法运算、减法运算、移位运算、存数、取数

操作数指定指令所涉及操作数的地址,所以在指令格式中操作数也可以可用地址码表示。

计算机中所有的指令的集合称为计算机的指令系统,不同型号的指令系统的计算机的指令系统是不一样的,计算机能够理解指令是在cpu制造后就已经确定了,所以每个cpu都有自己的指令集,对于现代计算机的指令系统包含着数据的处理,数据的运出,程序的控制,输入/输出,状态管理和扩展指令系统等几类的指令。

     计算机执行指令的基本工作可以概括为:取指令,分析指令、执行指令三个阶段。

先从内存中取出指令运输给cpu,然后cpu分析指令要完成的任务,执行相应的操作,然后在取出下一条指令,如此周而复始,直到遇到停机指令或外来事件的干扰才停止。

 

cpu

cpu是计算机进行运算和控制的核心部件,主要由控制器运算器组成。

控制器:

根据存放在内存中的指令序列来工作(指令也是程序),控制器具有判断能力,能以计算结果为基础,选择下一步的工作流程

控制器负责从内存中提取指令,并对指令进行译码,并根据指令译码的结果,按指令先后顺,负责向其他部件发出控制信号,指挥并控制cpu、内存和输入输出设备之间数据流动的方向,保证各部件协调的工作。

运算器:

运算器是对数据进行算术和逻辑运算,运算器能够接受数据,且数据来自内存,且运算的结果又返回内存,运算器对内存的读写操作是在控制器的控制下进行的,运算器是由运算逻辑部件若干个寄存器组成。运算逻辑部件是加法器,因为加、减、乘、除等运算都归为加法和位移操作;寄存器是临时存放数据、地址、控制信息、和cpu工作状态的状态的存储器。

数据总线宽度:

数据总线宽度也称字长,字长是指cpu可以同时处理和传输的数据位数,它反应了cpu能处理的数据宽度、精度、速度。例如64位计算机就是指数据总线宽度是64位

地址总线的宽度:

地址总线的宽度决定了cpu可以直接访问的内存物理地址空间。

Cache:

Cache是为了解决cpu与内存直接速度不匹配而采用的一种重要技术,cpu处理的指令和数据都来自内存,直接读取内存的数据会迟滞cpu的速度,所以cpu一般都包含Cache,包括L1 Cache(一级),L2 Cache(二级Cache),有的还有L3 Cache(三级Cache),Cache是可以快速进行存取数据的存储器,它可以使数据在内存和cpu更快的进行交换,Cache的存取速度大体与cpu的处理速度一样。

 

  当cpu要读取一个数据时,cpu先从Cache查找,如果找到了,就直接读取并传送给cpu,如果找不到,就从内存中读取,再传送给cpu,再把相关的数据块直接调入到Cache,这样cpu每次读取数据就直接从Cache中读取,就不用去内存读取,这使得cpu读取Cache的命中率非常高。

内存

程序中指令和需要处理的数据都存放在存储器中,在执行程序中,cpu必须经常和内存打交道。

内存的工作原理:首先需要从输入设备(硬盘,光盘等)将指定的文件(程序指令和数据),然后cpu频繁的与内存打交道,执行指令程序,进行数据操作,并将运行的最终结果运输输出设备中。

例如:你用c语言写了一个程序hello world,你要想在电脑屏幕上显示它,你必须先把该程序从硬盘加载到内存中,编译器在内存中把你的代码翻译成指令,然后控制器再指令一步一步的工作,将内存中的hello world的数据刷新到显示器上。

内存中每一个存储单元都有一个标识称为地址,数据以字的形式在内存中传入和传出。

地址与存储器单元是一 一对应的,一个数据存放在一个和多个字节中,cpu通过单元地址访问存储单元中的数据;往存储单元放新数据将被覆盖,但从存储单元中读出数据后原数据不被修改。

在微型计算机中,内存可分为RAM随机读写存储器,ROM只读存储器。

RAM:RAM是可读可写的存储器,又称读写存储器,其特点是随机读写,通电过程中存储器内的内容可以保持,断电后,存储的内容立即消失。内存是临时存放数据、应用程序指令和操作系统的一组芯片,它存放了等待处理的原始数据、处理数据的指令和处理的结果。

除了数据应用软件指令外,内存中还存放了操作系统指令,这些指令控制着计算机系统的基本功能,每次启动计算机时,这些指令就会被装进到内存中,直到关机才消失。

ROM:

ROM主要用于存放计算机的启动程序,它的特点是,存储信息只能读出,不能随机改写或者存入,断电后信息不会丢失,可靠性高。ROM的存储是永久性的且不易丢失,ROM的指令直接固化在电路里,永久地成为电路的一部分,即使计算机断电也不会消失。

在计算机开机时,cpu加电并且开始准备执行程序。由于电源关闭的时候RAM说空的,此时的ROM就要发挥作用。计算机主板上由一块特殊的ROM芯片,即基本的输入输出系统(BIOS)芯片,它保存重要的重要程序有加电自检程序(POST)、系统启动程序、参数设置程序、基本的外围驱动程序等 ,BIOS是连接软件程序与硬件设备的一座“桥梁”,没有它机器就无法启动。开机后最先执行,这些程序指示计算机如何访问硬盘、加载操作系统并显示启动信息。

 

外设

输入设备

输入设备是向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。网卡,硬盘,键盘,鼠标,摄像头,扫描仪,光笔等都属于输入设备。

输出设备

输出设备是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、硬盘,网卡等。

假设你想用qq给 张三发消息,你和张三的电脑都是冯诺依曼体系结构,此时你需要在键盘输入信息,然后加载到内存中,通过cpu将这条消息进行打包,打包完成后在返回给内存,内存再运输给你的电脑的显示器和网卡,网卡再通过网络将你的消息发送到张三的电脑的网卡上,张三电脑的网卡收到消息就将消息加载到

内存中,内存再把消息运输到cpu进行解包,在返回给内存中,内存再把消息刷新到张三的电脑的显示器,此时张三的电脑就收到你发的消息。

好啦,今天的分享就到这里了,如果这篇文章对你有用的话,希望你可以给我个赞或收藏,你的点赞、收藏、关注将是我分享的巨大的动力,我后面将总结更多的知识点给大家。谢谢你能够看到这里。

点个赞呗~

这篇关于计算机系统(一)——冯诺依曼体系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569135

相关文章

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常, 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例: public class Test {public static void main(String[] args) {run();}public static void run(){run();}} 堆栈溢出,这是由于JV

软件架构风格: C2体系风格

通俗示例 想象一下你正在使用一套乐高积木来搭建一个复杂的模型。每块乐高积木都是一个独立的部件,而乐高积木之间的接口设计得非常标准化,使得你可以轻松地将不同的积木组合在一起。如果你想要更换掉模型中的某一块积木,你只需要把它拔下来,然后插入新的积木即可,不需要重新设计整个模型。 通俗解释 C2体系风格 C2是一种软件体系结构风格,它强调组件之间的松耦合和高内聚。在C2风格中,软件系统被设计为一

深入理解计算机系统阅读笔记-第四章

第四章 处理器体系结构 一个处理器支持的指令和指令的字节级编码称为它的ISA(instruction-set architecture,指令集体系结构)。不同家族处理器有不同的ISA。ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及他们是如何编码的;而处理器设计者,必须建造出执行这些指令的处理器。 ISA模型看上去是顺序执行的,实际上同时处

大数据开发体系,进来了解一下?

“5G失败、物联网已死、鼓吹大数据无用论”打开手机又是承接今日份的“丧”, 这种丧味十足的帖子我们已经被投喂得太多了 ,还是原来的配方,还是熟悉的味道,说这些话的人,多少显得无聊而耸人听闻。 有这样一句话叫数据重构商业,流量改变未来。不管怎么唱衰,大数据时代已经向我们滚滚而来,早已成为现代社会不可缺少的一部分。 “不参与大数据建设,10年后一定后悔”。 早在几年前,马云就在某次

Spark 全套知识体系,终于搞到了!

福利手慢无 ☆☞ 廖雪峰的大数据开发必备教程-Spark视频资料终于免费啦!限额领取~ 2019年已过去3/4,年初许下的愿实现了吗?可爱的程序员们都有哪些愿望呢? 找个女朋友。升级电脑、键盘、鼠标等。来一次说走就走的旅行。升职&加薪。…… 说起“升职&加薪”,一向“多金”的程序员们,今年的职场晋升似乎并非那么顺畅。说是大环境所致,这也没错。 但有一部

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

计算机系统层次结构 计算机系统是一个层次结构系统,每一层都通过向上层用户提供一个抽象的简洁接口而将低层的实现细节隐藏起来。计算机解决应用问题的过程就是不同抽象层进行转换的过程 计算机系统抽象层的转换 下图描述了从最终用户希望计算机完成的应用(问题)到电子工程师使用器件完成基本电路设计的整个转换过程 通常用自然语言对应用(问题)进行描述,但计算机硬件只能理解机器语言,要将一个自然语言描述

SaaS系列介绍之十三: SaaS系统体系架构

1 系统体系架构设计   软件开发中系统体系架构决定了一个系统稳定性、健壮性、可扩展性、兼容性和可用性,它是系统的灵魂。体系架构是架构师所关注的核心。良好的体系架构是系统成功的开端,否则,再好的代码与设计也无济于事。   2 当前.net主要的开发框架简介   l Castle   Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、A

Java核心知识体系-并发与多线程:线程基础

1 先导 Java线程基础主要包含如下知识点,相信我们再面试的过程中,经常会遇到类似的提问。 1、线程有哪几种状态? 线程之间如何转变? 2、线程有哪几种实现方式? 各优缺点? 3、线程的基本操作(线程管理机制)有哪些? 4、线程如何中断? 5、线程有几种互斥同步方式? 如何选择? 6、线程之间的协作方式(通信和协调)? 下面我们 一 一 解读。 2

第一章——计算机系统概述

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝 🏆所属专栏: 计算机组成原理   欢迎订阅,持续更新中~~~                                                       ✨让小新带着你快乐的学习吧~✨ 目录 前言 一、操作系统的概念和