热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

最小工作模式最大工作模式时序和中断

8886的两种工作模式的配置一.最小与最大的工作模式最小工作模式MNMX*1(高电平)构成小规模的单处理机系统(只有个微处理器80888086)由CPU本身提供控制总线最大工作模式




88/86的两种工作模式的配置


一. 最小与最大的工作模式


最小工作模式


  1. MN/MX* = 1 (高电平)
  2. 构成小规模的单处理机系统 (只有个微处理器 8088/8086)
  3. 由CPU本身提供控制总线

最大工作模式


  1. MN/MX* = 0 (低电平)/地
  2. 构成大规模的多机系统
  3. 协处理器 8087(浮点运算)和 (I/0处理器)8089
  4. 8088和8288(总线控制器)共同形成系统总线信号

二. 8088最小模式与最大模式的总线形成


8088最小规模的系统总线形成


image-20211023205224696
  1. 20位地址总线的形成

    采用3片 8282进行锁存和驱动

    (Inter 8282是三态透明地址缓冲器 8283

    ​ 通用的集成电路芯片 74LS373 74LS273)

  2. 8位的数据总线的形成

    数据收发器 8286 进行双向驱动

    Inter 8286是双向三态8位缓冲器

    Inter 8287

    通用数字集成电路 74LS245等 都是双向

    单向 接口电路中经常使用三态单向缓冲器 74LS244可以用 地址或者数据

  3. 系统控制信号的形成

    由88/86 引脚直接提供


最大模式下的系统形成

image-20211023205255546


  1. 地址总线:采用74LS373 和 74LS244
  2. 数据总线:采用74LS245形成和驱动
  3. 控制总线: 由系统总线控制器8288形成 MEMR* MEMW* IOR* IOW* INTA*

时序图


指令周期


  1. 一条指令从取指令到执行结束的时间
  2. 指令周期包括多个总线周期
  3. NMI INTR:cpu响应中断条件 指令周期结束

总线周期

88/86 最基本的总线周期需要四个时钟周期

若READY在T3测试时为0 则T3~T4之间插入 Tw


时钟周期

T1 若CPU主频=5MHZ , T1=200ns

构成总线周期 => 指令周期


等待状态

通过插入Tw 使速度差别较大的两个部件 保持同步

在读写总线周期中 判断是否插入 Tw


  1. T3的前沿检测 READY 引脚是否有效
  2. READY无效 =0 在 T3~T4之间 插入 一个 Tw 再检测
  3. READY 有效 进入 T4

image-20211023205112627

启动与复位

88/86 CPU引脚 RESET引脚用来使CPU复位/启动

8086服务后 PSW ,DS , ES ,SS和其他寄存器清零 指令队列也清零

段寄存器 CS 初始化位 FFFFH 指令指针IP 初始化位 0000H


中断系统


中断响应周期

CPU在每条指令的T4 检测 INTR* 信号 若有效 IF=1 开中断 则 CPU在当前指令执行完毕以后乡音 进入中断响应周期


中断

当Cpu在执行主程序时 外/内原因 暂时中断主程序的运行 转而去执行子程序,当子程序结束后返回主程序过程


中断源

引起中断的原因或事件 包括外设出现故障和CPU内部执行时出现的异常


中断类型

(外中断和内中断) 88/86系统能处理256个中断


中断类型号

用0-255 (00H-FFH)给256个中断分配编号

在INTA*的响应 第二个周期 由 8259向CPU通道D0~D7传递中断类型号n

image-20211023205836239

CPU获取中断类型号的方式

INTR的中断号由8259中断控制器提供

指令中断(INT n) 的中断号由指令直接给出

NMI 其他中断 由系统预设


中断向量

中断服务子程序 的入口地址 有逻辑地址 CS:IP表示 (段地址:偏移地址) 32位 4字节


中断向量表

存放中断向量的内存空间

256个中断向量 每个向量占用4个字节 共占用 1KB

每个中断向量的低字表示偏移地址 每个高字表示段地址 需占用4个字节

物理地址 00000H-003FFH 地址依次安排各个中断向量 向量从0开始

向量号为n的中断向量的物理地址 = n*4


容量: = 末地址+1-首地址

3FF+1 -0

400= 22*(24)2=210



中断类型

外部的中断 17# NMI 和 18# INTR


image-20211028143553407
  • 内部中断

    CPU内部执行程序出现异常引起的程序中断


    1. 除法错中断 (向量号为0) n =0

      在执行除法指令时,若除法为0或商超出所表示的范围则产生向量号为0的内部中断

    2. 指令中断

      在执行INT n时 产生的一个向量号为n (0~255)的内部中断

    3. 断点中断

      向量号为3的指令中断

    4. 溢出中断

      在执行 INT 0时 OF=1时则产生一个向量号为4的内部中断

    5. 单步中断

      若TF=1时 则每条指令结束后 产生一个向量号为1的内部中断

  • 外部中断

    利用外中断 微机系统可以实时响应能够即时处理外部意外和紧急事件 包括 INTR 和 NMI

    外中断是外设随机产生的 是真的中断

    内中断 是执行程序时出现的 常称为异常


非屏蔽中断和可屏蔽中断的特点


非屏蔽中断 NMI可屏蔽中断 INTR
通过NMI向CPU提出中断请求外设通过INTR向CPU提出中断请求
CPU无法禁止 (非屏蔽)在允许中断 当前指令结束后 予以响应输出INTA*
在当前指令执行结束后予以响应IF=1 开中断 允许响应 IF=0 关中断 禁止中断
中断向量号为2向量号有8259(中断控制器)提供
主要用于处理系统意外和故障主要用于主机与外设交换数据

IF的状态 (中断标志)


IF=0 可屏蔽中断不会被响应IF=1 可屏蔽中断会被响应
关中断 屏蔽中断 中断屏蔽开中断 允许中断 中断开放
系统复位 使 IF=0
中断被响应 使 IF=0
执行指令 CLI 使IF=0执行指令 IRET 恢复原IF状态

优先级(中断)

软件中断 优 ↓

除法错中断 0

指令中断 n

断点中断 3

溢出中断 4

非屏蔽中断 2

可屏蔽中断 n外

单步中断 1


中断过程


五个步骤

中断请求→中断优先级判定→中断响应→中断处理(服务)→中断返回


中断响应过程

Cpu在每执行完一条指令后 如果允许CPU响应 则CPU自动完成以下工作


  1. 取中断类型号 n

  2. 标志寄存器入栈 (PSW入栈)

  3. IF=TF=0

  4. CS和IP入栈

  5. 获取中断向量号(CS:IP)

    执行两个总线读周期 在中断向量表中 n*4 开始的单元取两个字 分别送到IP和CS 获取中断向量处理程序入口地址

    CPU从新CS:IP)值开始执行中断处理程序


中断服务程序的一般构成

开中断 STI

保护现场 Push

中断服务

关中断 CTI

恢复现场 Pop

中断返回 IRET

image-20211028151649671




推荐阅读
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
author-avatar
博客百度2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有