当前位置: 首页 > news >正文

微型计算机硬件系统

目录

一、冯·诺依曼计算机的主要特征

二、总线

1.地址总线AB(Address Bus)

2.数据总线DB(Data Bus)

3.控制总线CB(Control Bus)

三、微处理器CPU

1.运算器

2.控制器

3.内部寄存器

①程序计数器PC(Program Counter)

②地址寄存器AR(Address Register)

③A:累加器

④标志寄存器 FLAGS(Flag Register)

⑤寄存器阵列RA(Register Array)

⑥数据缓冲寄存器DR(Data Register)

四、存储器

1.基本概念 

2. 存储器操作 

😵读操作 

😵写操作

五、I/O接口与输入输出设备


一、冯·诺依曼计算机的主要特征

到目前为止,计算机仍沿用1940年由冯·诺依曼首先提出的体系结构。

其基本设计思想为:
①以二进制形式表示指令和数据。
②程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令加以执行。
③由运算器、控制器、存储器、输入设备和输出设备等五大部件组成计算机硬件系统。

微机体系结构的特点之一是采用总线结构,通过总线将微处理器(CPU)、存储器(RAM和ROM)、I/O接口电路等连接起来,而输入/输出设备则通过IO接口实现与微机的信息交换

二、总线

计算机中隔功能部件间传递信息的公共通道,这里指的是系统总线,此外还有片内总线,I/O总线等,是微型计算机的重要组成部分。

它们可以是带状的扁平电缆线,也可以是印刷电路板上的一层极薄的金属连线。所有的信息都通过总线传送。根据所传送信息的内容与作用不同,总线可分为以下三类:
 

1.地址总线AB(Address Bus)

单向的,在对存储器或I/O端口进行访问时,传送由CPU提供的要访问存储单元或I/O端口的地址信息,以便选中要访问的存储单元或IO端口。

2.数据总线DB(Data Bus)

双向的,从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线送往CPU或由CPU送出

3.控制总线CB(Control Bus)

总体是双向的,各种控制或状态信息通过控制总线由CPU送往有关部件,或者从有关部件送往CPU。CB中每根线的传送方向是一定的

采用总线结构时,系统中各部件均挂在总线上,可使微机系统的结构简单,易于维护,并具有更好的可扩展性。一个部件(插件)只要符合总线标准就可以直接插入系统,为用户对系统功能的扩充或升级提供了很大的灵活性。

三、微处理器CPU

1.运算器

运算器又称算术逻辑单元(ALU,Arithmetic Logic Unit),用来进行算术或逻辑运算以及移位循环等操作。

参加运算的两个操作数一个来自累加器A(Accumulator),另一个来自内部数据总线,可以是数据缓冲寄存器 DR(Data Register)中的内容,也可以是寄存器阵列RA(Register Arrav)中某个寄存器的内容。

2.控制器

控制器又称控制单元(CU,Control Unit),是全机的指挥控制中心。

负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能

3.内部寄存器

①程序计数器PC(Program Counter)

程序计数器有时也被称为指令指针(IP,Instruction Pointer),它被用来存放下一条要执行指令所在存储单元的地址

在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的存储单元地址送入PC。

当读取指令时,CPU将自动修改PC内容,以便使其保持的总是将要执行的下一条指令的地址。

由于大多数指令是按顺序执行的,因此修改的办法通常只是简单地对PC加1。但遇到跳转等改变程序执行顺序的指令时,后继指令的地址(即 PC的内容)将从指令寄存器IR中的地址字段得到。

②地址寄存器AR(Address Register)

地址寄存器用来存放正要取出的指令的地址或操作数的地址

由于在内存单元和 CPU之间存在着操作速度上的差异,因此必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
在取指令时,PC中存放的指令地址送到AR,根据此地址从存储器中取出指令。

在取操作数时,将操作数地址通过内部数据总线送到AR,再根据此地址从存储器中取出操作数;

在向存储器存入数据时,也要先将待写入数据的地址送到AR,再根据此地址向存储器写入数据。

③A:累加器

累加器是使用最频繁的一个寄存器。

在执行算术逻辑运算时,它用来存放一个操作数,而运算结果通常又放回累加器,其中原有信息随即被破坏。

因此,累加器是用来暂时存放ALU运算结果的。

显然,CPU至少应有一个累加器

目前CPU中通常有很多个累加器。当使用多个累加器时,就变成了通用寄存器堆结构,其中任何一个既可存放目的操作数,也可以存放源操作数

④标志寄存器 FLAGS(Flag Register)

标志寄存器有时也称为程序状态字(PSW,Program Status Word)。

用来存放执行算术运算指令、逻辑运算指令或测试指令后建立的各种状态码内容以及对CPU操作进行控制的控制信息

标志位的具体设置及功能随微处理器型号的不同而不同。

编写程序时,可以通过测试有关标志位的状态(0或1)来决定程序的流向。


⑤寄存器阵列RA(Register Array)

寄存器阵列实际上相当于微处理器内部的RAM。

微处理器内部有了这些寄存器后,就可避免频繁访问存储器,缩短指令长度和指令执行时间,提高机器的运行速度,方便程序设计

不同类型CPU 的寄存器阵列规模大小会有所不同。

数据缓冲寄存器DR(Data Register)

数据缓冲寄存器用来暂时存放指令或数据

从存储器读出时:

  • 若读出的是指令,经DR暂存的指令经过内部数据总线送到指令寄存器R;
  • 若读出的是数据,则通过内部数据总线送到运算器或有关的寄存器。

同样,当向存储器写入数据时,也首先将其存放在数据缓冲寄存器DR中,然后再经数据总线送入存储器。
可以看出,数据缓冲寄存器DR是CPU和内存、外部设备之间信息传送的中转站,用来补偿CPU和内存、外围设备之间在操作速度上存在的差异。

四、存储器

CPU可以直接访问到的半导体存储器,有RAM和ROM两种不同的类型

1.基本概念 

(1)位(Bit):二进制信息的最小单位(0或1)。
(2)字节(Byte):由8位二进制数组成,可以存放在一个存储单元中。字节是字的基本组成单位。
(3)字(Word):计算机中作为一个整体来处理和运算的一组二进制数,是字节的整数倍。通常它与计算机内部的寄存器、算术逻辑单元、数据总线宽度相一致。每个字包括的位数称为计算机的字长,是计算机的重要性能指标。目前为了表示方便,常把一个字定义为16位,把一个双字定义为32位。
(4)内存容量:内存中存储单元的总数。通常以字节为单位,1024(2"0)字节记作1KB,220字节记作1MB。
(5)内存单元地址:为了能识别不同的单元,每个单元都赋予一个编号,这个编号称为内存单元地址。显然,各内存单元的地址与该地址对应的单元中存放的内容是两个完全不同的概念,不可混淆
 

2. 存储器操作 

😵读操作 

  1. 给出存储单元的地址
  2. 发读操作控制信号
  3. 读出存储单元的数据 

😵写操作

  1. 给地址、准备数据
  2. 给写操作控制信号
  3. 写入数据(地址确定且数据有效)

五、I/O接口与输入输出设备

I/O接口是微型计算机与输入/输出设备之间信息交换的桥梁。

IO设备是微型计算机系统的重要组成部分。

程序、数据及现场信息要通过输入设备输入给计算机。计算机的处理结果要通过输出设备输出,以便用户使用。

  • 常用的输入设备有键盘、鼠标、数字化仪、扫描仪、A/D转换器等。
  • 常用的输出设备有显示器、打印机、绘图仪、D/A转换器等。
  • 外设的种类很多,有机械式、电子式、机电式、光电式等。

一般来说,与CPU相比,外设的工作速度较低。

外设处理的信息有数字量、模拟量、开关量等,而计算机只能处理数字量。另外,外设与微型计算机工作的逻辑时序也可能不一致。

由于上述原因,微型机与外设之间的连接及信息的交换不能直接进行,而需要设计一个I/O接口作为微型机与外设之间的桥梁

I/O接口也称为I/O适配器,不同的外设必须通过不同的I/O接口才能与微机相连。所以,I/O接口是微型计算机应用系统不可缺少的重要组成部件。

任何一个微机应用系统的研制和开发,实际上都是IO接口的研制和开发。

相关文章:

  • 中国立体车库行业市场需求与投资战略规划分析报告
  • 小白如何学会JAVA
  • 高新技术企业研发费用占比要求?
  • JVM - 垃圾回收器
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引
  • 响应式数据
  • Ubuntu 上 Mediapipe 运行Hello World! on Android例子
  • OpenGL ES 版本介绍
  • 猿创征文|中国移动 OneOS 万耦启物开发板支持包(BSP)
  • PyMol作图:同时显示“Cartoon“ + “Surface“
  • SpringBoot整合Flowable工作流引擎框架
  • 七大排序之快速排序
  • vi vim 笔记心得2209010344
  • 忘记电脑密码的解决方法——使用pe工具重置电脑密码
  • 如何避免死锁呢?
  • Apache的80端口被占用以及访问时报错403
  • css的样式优先级
  • IDEA常用插件整理
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java超时控制的实现
  • maven工程打包jar以及java jar命令的classpath使用
  • maya建模与骨骼动画快速实现人工鱼
  • Spring框架之我见(三)——IOC、AOP
  • 从零开始学习部署
  • 浮现式设计
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 聊聊directory traversal attack
  • 写给高年级小学生看的《Bash 指南》
  • 新书推荐|Windows黑客编程技术详解
  • 用element的upload组件实现多图片上传和压缩
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 如何在招聘中考核.NET架构师
  • 说说我为什么看好Spring Cloud Alibaba
  • ​你们这样子,耽误我的工作进度怎么办?
  • #《AI中文版》V3 第 1 章 概述
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (论文阅读11/100)Fast R-CNN
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)库存超卖案例实战——优化redis分布式锁
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .md即markdown文件的基本常用编写语法
  • .net refrector
  • .net 流——流的类型体系简单介绍
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net流程开发平台的一些难点(1)
  • .NET下ASPX编程的几个小问题
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • ?
  • @DataRedisTest测试redis从未如此丝滑
  • @Pointcut 使用