现代计算机的基本结构是由冯诺依曼提出的,冯诺依曼的体系结构体系如下图所示:
计算机由运算器、控制器、存储器(也就是内存)、输入设备、输出设备五大部件组成。
其中运算器和控制器组成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进行解包,在返回给内存中,内存再把消息刷新到张三的电脑的显示器,此时张三的电脑就收到你发的消息。