1.计算机硬件组成

news/2024/5/18 23:37:43 标签: 计算机, 硬件, 存储

冯诺依曼体制

  1. 引进存储程序概念
  2. 计算机运算器为核心的集中式控制
  3. 指令由操作码和地址码两部分组成,指令在计算机中是顺序执行的,并受PC的统一控制。
  4. 提出计算机系统应由:运算器、控制器、存储器、输入设备和输出设备五大部分组成。

这些理论奠定了现代计算机的基本思想,在到目前为止,大多数计算机仍沿用这一体制,人们称其为冯诺依曼体制。


运算器

运算器就好像是一个由电子线路构成的算盘,它的主要功能是通过相加和移位进行加、减、乘、除等算术运算。除此之外还可以进行逻辑运算,因此通常称为ALU(算术逻辑运算部件)。

运算器

运算器由:加法器、移位门、寄存器组、输入选择门和数据总线组成。加法器则是由与或非门或半加器构成,而这些装置本身并没有记忆功能,所以参与运算的数和运算的结果应该放到哪里呢?所以要设置寄存器组(存放数据的装置)。加法器是一个三端输入两端输出的网络,三端输入其中有一端是低位向高位产生的进位,所以说加法器一次只能进行两个数的运算,而寄存器组中寄存器数量肯定是大于等于二的,寄存器数为两个就算了,但是如果寄存器的数量大于两个,那么存放的数据到底哪些数据被加法器作为输入呢?到底让哪个寄存器参加运算呢?所以就有选择门这个装置。


存储器">存储

存储器是可以存放程序和数据的装置,并满足计算机在执行过程中能够随机访问这些程序和数据。

<a class=存储器" title="" />

存储器是由存储体、地址译码器、地址寄存器、代码缓冲寄存器和读写控制线路构成,存储器中设置了存储体,并将存储体分为若干个单元,称为存储单元计算机的访问是按照地址进行的,即就是当我们访问数据时要访问存放该数据的地址从而对数据进行读取,读取的地址要通过地址寄存器进行存放,在地址寄存器和存储体之间有时要加上地址译码器,当存储体的地址给出方式是编码给出(将某个存储单元赋予编码,表征该单元地址)时要加上地址译码器AD,如果直接给出地址,则不需要地址译码器。


控制器

控制器是计算机发号施令的部件,是全机的指挥机构,控制计算机的各个部件有条理地工 作,控制器的任务是从内存中取出解题步骤加以分析,然后执行某种操作。就指令执行过程而言,1)取出指令存放至指令寄存器IR中;2)分析指令,要设置相应的操作码译码器ODC;3)执行指令,要设置程序计数器PC(Program Counter),当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。

<a class=存储器和控制器" title="" />
上图为控制器(左)和存储器(右)的组合,一条指令是由操作码和地址部分组成,左侧节拍发生器则控制时序,让计算机进行有条不紊的工作

注:寄存器存放的是指令的话就是指令寄存器,存放数据的话就是数据寄存器,存放地址的话就是地址寄存器


输入输出设备

输入/输出设备种类繁多,很难用一种结构形式加以描述,通常可以将其描述为一般结构如图:
输入输出设备


总线

所谓总线,即将计算机各个组成部件连接成为一个有机整体,就是连接多个部件的一组共享信息传送线路,它能够分时接收和发送各部件信息。
典型做法
1.发送端:通过三态门将信息分时送入总线
2 接收端:靠定时打入脉冲接收信息


计算机典型结构">小型计算机典型结构

以CPU为中心的双总线结构

双总线结构
以CPU为中心:MEM(内存)<—>CPU<– ->I/O设备
内存与I/O设备之间交换信息都要通过CPU,因此称其为面向CPU的双总线结构。既然内存与I/O设备要通过CPU交换信息,那么就必要要受到CPU的直接控制,就比如住房都愿意住卧室而不住客厅,因为从一个卧室到另一个卧室时都要经过客厅,所以住客厅的人会频繁受到影响。这种结构的优点是同一时间内只进行一种传送,因此控制线路简单,时间关系易于处理,可以采用同步控制方式。缺点是由于I/O设备与存储器交换信息要有CPU进行干预,因而当I/O设备工作频繁时要占用大量的CPU时间,从而降低了CPU的工作效率。因此这种结构为多数低档小型机所采用。

单总线结构

单总线结构
靠一簇总线(包括地址总线、数据总线和各种控制线)来实现CPU、存储器、I/O设备之间的信息交换。从单总线的传送方式可以看出,中央处理机不再是计算机的中心,CPU与其他设备一样,只不过是单总线上的一个子系统。采用单总线结构后系统功能增强,因为采用单总线传送方式允许I/O设备直接与存储器交换信息, 除分配总线使用权时还要与CPU打交道外,基本上不影响CPU,同时,外部设备寄存器和内存统一编码,这样中央处理机可以像访问内存一样访问外部设备。但是如果CPU、内存、外部设备都在单总线上需要运行时,谁先运行啊?当然是外部设备先运行,因为如果外部设备的数据都不送进来,那么CPU还能干什么能执行什么呢?存储器还存什么呢?所以说外部设备的级别是最高的,其次是CPU,存储器的级别是最低的,但是CPU里包含了控制器和运算器,整个控制装置是在CPU中,所以整个过程的控制靠CPU。单总线工作不允许有两个主设备同时使用总线。因此,当I/O设备控制使用权时,CPU(它对总线的使用优先级低于I/O设备)不能从主存中取出数据,因而降低了CPU的处理速度。由于所有设备都连载一簇总线上,总线负载很重,随着外设与中央处理机之间交换信息量增大,可使系统的吞吐量呈饱和状态,甚至无法胜任,从而使系统性能下降。

存储器为中心的双总线结构">以存储器为中心的双总线结构

在内存上开了两个口子,一个通过高速缓冲存储器Cache(它存有存储器部分信息的副本)与中央处理机相连,专供它与CPU交换信息;另一个口子与原来的单总线相通,实现内存与其他设备的信息交换。

以高速缓冲存储器为中心:CPU<—>MEM<—>I/O设备

显而易见,在这种结构中存储器称为计算机的中心,所以把这种结构称为面向存储器的双总线结构。这种结构不是对单总线结构的否定,而是对它很好的补充,原因有两点:1)CPU通过专用总线与主存交换信息,不仅提高了处理机的速度,而且减轻了系统总线的负担,防止饱和。2)主存与I/O设备交换信息,不必经过CPU,因此又保持了单总线的主要优点——系统灵活性。系统程序日益庞大,信息存储称为构成系统的一个核心问题,整个系统由早期以CPU为中心发展为以存储系统为中心。因此这种双总线结构被广泛采用。


计算机典型结构">大中型计算机典型结构

大型<a class=计算机系统典型结构" title="" />


http://www.niftyadmin.cn/n/1337611.html

相关文章

计算机网络读书笔记——网络层(1)

网络层 负责在不同网络之间尽力转发数据包&#xff0c;基于数据包的IP地址转发&#xff0c;如果丢包不负责丢失重传&#xff0c;也不负责传输顺序。 网络设备及数据转发过程 路由器是三层设备&#xff0c;因为它能看到网络层的地址&#xff0c;根据网络层地址去选择路由&…

计算机网络读书笔记——网络层(2)

ICMP协议 ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层&#xff08;TCP/UDP&#xff09;使用。一些ICMP报文把差错报文返回给用户进程。ICMP协议可以被认为用于排除网络故障的协议。ICMP报文是在IP数据报内部被传输…

bitset类基本用法

有些程序要处理二进制位的有序集&#xff0c;每个位可能包含的是0&#xff08;关&#xff09;或1&#xff08;开&#xff09;的值。位是用来保存一组项或条件的yes/no信息&#xff08;有时也称标志&#xff09;的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使…

部署 LAMP (CentOS 7.2)

简介 LAMP指LinuxApacheMysql/MariaDBPerl/PHP/Python是一组常用来搭建动态网站或者服务器的开源软件&#xff0c;本身都是各自独立的程序&#xff0c;但是因为常被放在一起使用&#xff0c;拥有了越来越高的兼容度&#xff0c;共同组成了一个强大的Web应用程序平台。 部署方…

云服务器ECS下的FTP服务的安装配置

简介 FTP 是File Transfer Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时&#xff0c;它也是一个应用程序&#xff08;Application&#xff09;。基于不同的操作系统有不同的FTP应…

认识C++异常处理

C异常处理&#xff1a; C的异常处理机制是用于将运行时错误检测和错误处理功能分离的一种机制(符合高内聚低耦合的软件工程设计要求), 这里主要总结一下C异常处理的基础知识, 包括基本的如何引发异常(使用throw)和捕获异常(try catch)相关使用注意点, 以及C标准库提供的一套标…

C++类的成员函数(在类外定义成员函数、inline成员函数)

在类外定义成员函数 成员函数可以在类体中直接定义。也可以在类体中只写成员函数的声明&#xff0c;而在类的外面进行函数定义。如&#xff1a; class Student { public :void display( ); //公用成员函数原型声明 private :int num;string name;char sex;//以上3行是私有数…

abstract类可以创建对象_java 三个修饰符 abstract、static、final

abstract 修饰符。被 abstract 修饰的类&#xff0c;称为抽象类。抽象类无法实例化&#xff0c;可以作为数据类型接收子类的实例&#xff0c;应用于多态。抽象类可以有构造方法。public abstract class Animal { public Animal() { System.out.println("animal 构造.&…