大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动IO系统精讲与深度实践教学设计_第1页
大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动IO系统精讲与深度实践教学设计_第2页
大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动IO系统精讲与深度实践教学设计_第3页
大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动IO系统精讲与深度实践教学设计_第4页
大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动IO系统精讲与深度实践教学设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学本科计算机科学与技术专业《计算机组成原理》课程:总线与中断驱动I/O系统精讲与深度实践教学设计

  一、课程基本信息与设计理念

  1.课程基本信息

  本教学设计面向大学本科计算机科学与技术专业三年级学生,属于专业核心课程《计算机组成原理》的关键章节。授课时长为6学时(每次2学时,共3次)。前置知识包括数字逻辑电路、汇编语言基础、计算机系统层次结构。本章内容位于“中央处理器”与“存储器系统”教学之后,是学生理解完整的“冯·诺依曼”架构中信息输入输出如何与CPU、内存协同工作的核心环节,也是后续学习操作系统、嵌入式系统等课程的重要基石。

  2.核心设计理念

  本设计秉承“系统观引领、问题驱动、虚实结合、能力递进”的跨学科融合教学理念。摒弃传统的孤立讲解总线规范、中断控制器硬件细节的灌输模式,转而从“计算机系统如何高效、可靠地管理外部设备”这一顶层工程问题出发,引导学生像计算机架构师一样思考。融合计算机工程、电子工程、系统软件的设计思想,将硬件机制(如信号时序、仲裁逻辑)与软件行为(如中断服务例程、驱动程序框架)紧密耦合。通过构建从理论模型(抽象接口)、行为仿真(虚拟实验)到物理原型(开发板验证)的渐进式学习路径,深化学生对复杂系统交互的理解,培养其硬件/软件协同设计的系统工程能力与解决实际I/O性能瓶颈的创新思维。

  二、学情分析

  1.知识基础分析:学生已掌握组合与时序逻辑电路原理,理解CPU的基本功能结构与指令执行流程(取指、译码、执行),熟悉存储器的层次结构与访存过程。对于“接口”概念有初步接触,但通常停留在功能描述层面,对硬件实现的具体细节(如端口译码、握手信号)和系统级的协调机制(如冲突解决、优先级管理)缺乏深入认知。

  2.能力与认知特点:该阶段学生抽象逻辑思维能力较强,能够处理一定复杂度的模型,但对多组件并发、异步事件驱动的系统动态行为,常感到难以建立清晰的时序和状态变迁图景。他们普遍对动手实践、能看到直接效果的学习活动兴趣浓厚,但对于底层硬件描述语言(如VHDL/Verilog)或详细时序图的畏难情绪较大。部分学生存在“重软件、轻硬件”的倾向,认为I/O管理由操作系统完成,无需深究硬件机制。

  3.学习需求与预期:学生渴望理解“鼠标点击如何转化为程序事件”、“硬盘数据如何高速读入内存”等具体现象背后的完整链条。他们不仅希望知道“是什么”,更希望探究“为什么这样设计”以及“如何设计得更好”。因此,教学设计需搭建从现象到本质、从原理到优化的阶梯,提供可视化的动态分析工具和具有适度挑战性的设计任务,满足其探究和创造的欲望。

  三、教学目标

  依据布鲁姆教育目标分类学,制定以下三维目标:

  1.知识与技能目标

  (1)准确阐述计算机系统中总线的基本功能、分类(数据、地址、控制)及主要性能指标(带宽、时钟频率、传输协议)。

  (2)深入解析程序查询、中断驱动、直接存储器存取三种I/O控制方式的硬件结构、工作流程,并能通过时序图进行对比分析,明确指出各自适用的场景及优缺点。

  (3)精确认知中断系统的完整处理过程:从中断源请求、中断判优(硬件与软件)、中断响应、现场保护与恢复,到中断服务例程执行与返回。能详细说明可编程中断控制器(如8259A或其现代等效逻辑)在其中的关键作用。

  (4)掌握基于总线周期和中断周期的微操作序列,能将高级I/O操作描述(如“从键盘读入一个字符”)分解为CPU、总线、I/O接口芯片之间的具体信号交互序列。

  (5)能够阅读简单的I/O接口电路原理图(含地址译码、数据缓冲、状态寄存器、中断请求逻辑),并编写对应的汇编语言或C语言底层驱动片段。

  2.过程与方法目标

  (1)通过分析经典系统(如基于PCI总线的声卡中断处理)案例,习得“分解-关联-建模”的复杂系统分析方法。

  (2)利用虚拟仿真平台(如Logisim、Proteus或定制化仿真环境),设计并验证一个简化的中断驱动串口通信模型,体验从硬件连接、接口编程到系统调试的全过程。

  (3)在小组项目实践中,通过角色扮演(CPU调度员、总线仲裁员、中断管理员、设备驱动程序员)协同解决一个模拟的I/O冲突或性能优化问题,培养团队协作与系统集成能力。

  3.情感、态度与价值观目标

  (1)领悟计算机系统中硬件与软件相互依存、协同演化的哲学关系,树立严谨的硬件基础对软件效能具有决定性影响的工程价值观。

  (2)体会在资源(总线带宽、CPU时间)约束下进行设计折衷(Trade-off)的工程现实,培养成本、性能与复杂性平衡的系统工程思维。

  (3)通过追溯从早期程序查询到现代高性能I/O架构(如MessageSignaledInterrupts,MSI)的技术演进脉络,感受技术创新永无止境,激发在计算机体系结构领域持续探索的兴趣。

  四、教学重点与难点

  1.教学重点

  (1)中断驱动I/O方式的完整工作机制:这是理解现代计算机异步响应外部事件的核心模型。重点在于中断请求(IRQ)、中断响应(INTA)、中断向量获取、服务程序跳转这一连贯过程的微架构级实现。

  (2)总线仲裁机制:多主设备(如多个DMA控制器、协处理器)共享总线时的冲突解决策略(如链式查询、计数器定时查询、独立请求),及其对系统公平性、实时性和效率的影响。

  (3)I/O接口的组成与功能:作为CPU与外设的“翻译官”和“缓冲器”,其数据端口、状态端口、控制端口的具体作用,以及端口地址的编址方式(统一编址与独立编址)与译码逻辑。

  2.教学难点

  (1)中断嵌套与优先级动态管理的实现:涉及中断屏蔽寄存器(IMR)、中断服务寄存器(ISR)的位操作,以及在更高优先级中断到来时,硬件和软件如何协同完成当前现场的保护和切换。学生容易混淆“响应优先级”与“处理优先级”。

  (2)总线传输的时序分析:特别是同步总线中,地址建立时间、数据稳定时间、读写信号宽度等参数之间的关系,以及如何根据时序图判断系统能否正常工作。时序的抽象性较强。

  (3)DMA传输过程与CPU、总线、内存的并发关系:DMA控制器如何“窃取”总线周期,在传输期间CPU可能的状态(保持等待或访问缓存),以及DMA传输结束中断如何通知CPU。这一过程的并发性不易直观理解。

  五、教学策略与方法

  1.宏观策略:采用“BOPPPS”模型(Bridge-in,Objective,Pre-assessment,ParticipatoryLearning,Post-assessment,Summary)构建每节课的闭环。整体上遵循“情境锚定->概念解析->模型构建->仿真验证->迁移应用”的探究路径。

  2.具体方法:

  (1)对比案例法:将“程序查询方式下CPU的效率困境”与“中断方式下CPU的‘解放’”进行戏剧化对比,利用动画展示CPU利用率的变化,突出中断引入的必要性。

  (2)可视化仿真法:使用交互式仿真软件,允许学生动态调整总线频率、设备中断优先级、DMA块大小等参数,实时观察系统吞吐量、CPU占用率、平均响应时间等指标的变化,将抽象机制转化为可视数据。

  (3)角色扮演与模拟游戏:在“总线仲裁”环节,设计一个课堂模拟游戏,部分学生扮演不同的主设备,举牌(代表总线请求)并陈述理由(优先级),由“仲裁器”学生根据特定算法决定总线授予给谁,生动体现仲裁策略。

  (4)代码逆向分析法:提供一段简化的X86汇编语言中断服务例程和对应的C语言调用框架,引导学生分析代码中的现场保护(push指令)、中断屏蔽操作、EOI命令发送等关键点,建立软硬件联系。

  (5)项目驱动学习(PBL):以“为一个简化嵌入式系统设计温湿度传感器数据采集与显示方案”为期末小项目,要求学生综合运用总线扩展、中断处理、定时器控制等知识,完成从原理图设计、接口编程到系统测试的报告。

  六、教学资源与环境

  1.硬件环境:多媒体教室(配备高性能投影与扩音系统);可供分组实验的嵌入式开发套件(如基于ARMCortex-M的STM32开发板,含多种传感器与通信模块)。

  2.软件与平台:

  (1)交互式课件:采用HTML5或类似技术开发,内嵌可交互的总线时序图生成器、中断处理流程图编辑器。

  (2)虚拟仿真平台:基于浏览器的计算机组成原理仿真环境(如NAND2Tetris项目相关工具或自主开发的仿真器),支持学生搭建自定义的总线-中断系统模型并运行测试程序。

  (3)开发工具链:KeilMDK或IAREmbeddedWorkbenchforARM,用于实际硬件编程。

  (4)在线协作平台:用于小组项目文档共享、代码版本管理与讨论。

  3.学习材料:自编精讲讲义(包含大量图表与留白思考题);经典文献节选(如《计算机体系结构:量化研究方法》中关于I/O系统性能评价的章节);精选的线上微课视频(用于课前预习与课后复习)。

  七、教学过程详细设计(6学时)

  第一讲(2学时):从效率困境到中断革命——I/O控制方式的演进与总线基础

  (一)课前准备(线上)

  学生任务:观看“一个字符的漫长旅程——程序查询方式下的CPU”微视频,在讨论区回答:视频中CPU大部分时间在做什么?你认为这合理吗?提交一个生活中类似“不断查询”导致效率低下的例子。

  教师准备:分析学生回复,提取共性困惑点;准备课堂演示用的效率对比动画。

  (二)课中实施

  1.Bridge-in(情境导入,10分钟):以“高性能Web服务器如何处理海量并发网络请求”为引,类比单线程顺序处理(程序查询)与事件驱动异步处理(中断驱动)的天壤之别。提出核心问题:计算机如何从“忙等待”的原始社会进化到“事件驱动”的文明时代?

  2.ObjectivePre-assessment(目标明确与前测,5分钟):清晰呈现本讲知识目标。通过快速投票工具提问:“CPU在执行用户程序时,能否知道外设何时需要服务?”检测前概念。

  3.ParticipatoryLearning(参与式学习,70分钟)

  阶段一:程序查询方式深度剖析(20分钟)

    活动:教师带领学生逐行分析一段“读键盘状态并等待按键”的伪代码。通过动画高亮显示CPU循环读取状态寄存器的指令。引导学生计算:假设CPU主频1GHz,检查一次状态需10个周期,按键平均间隔1秒,CPU空转浪费了多少周期?量化其低效。

    设计意图:用具体数据制造认知冲突,强烈感知变革的必要性。

  阶段二:中断机制的概念突破(25分钟)

    活动:首先,类比“电话铃声中断当前工作”。然后,展示一个简化中断系统的硬件框图(CPU、总线、带中断引脚的设备)。教师扮演“CPU”,指定学生扮演“键盘”和“打印机”。模拟过程:“CPU”执行计算任务,“键盘”举手(中断请求),CPU暂停计算、记下断点(PC入栈)、询问是谁(取中断向量)、转向服务键盘(执行ISR)、完成后恢复现场(PC出栈)继续计算。过程中,强调“请求-响应-服务-返回”的流程,并引入“中断屏蔽”概念(CPU可以戴上“耳塞”不理某些请求)。

    设计意图:通过具身化扮演,将抽象的中断流程物理化、戏剧化,加深印象。

  阶段三:总线——系统的“高速公路”(25分钟)

    活动:展示主板图片,指出各类总线。讲解总线功能(通信通道)与三总线结构。重点讲解总线仲裁的必要性:播放两辆车争抢单车道导致堵塞的视频。引出三种经典仲裁策略。使用“模拟游戏”让学生体验链式查询(固定优先级)可能导致的低优先级设备“饿死”问题,进而讨论独立请求加优先权编码的公平性。

    设计意图:将总线仲裁与现实交通管理类比,降低理解难度;游戏引发对算法公平性的思考。

  4.Post-assessment(后测,10分钟):课堂练习:给出一个包含CPU、内存、磁盘、打印机的系统框图,要求标出中断请求线、总线结构,并描述打印过程中,若磁盘同时产生中断请求,在无屏蔽情况下系统可能的行为序列。

  5.Summary(总结,5分钟):教师以时间轴形式总结从程序查询到中断驱动的演进逻辑,强调中断的核心思想是“被动响应”而非“主动轮询”,并预告下一讲将深入中断“黑匣子”内部。

  (三)课后延伸

  任务:在虚拟仿真平台上,搭建一个仅含CPU、一个程序查询式输入设备、一个中断驱动式输入设备的模型,分别编写控制程序读取设备数据,统计比较CPU的指令执行效率,并提交简短报告。

  第二讲(2学时):解构中断黑匣子——从硬件响应到软件服务

  (一)课前准备

  学生任务:复习第一讲中断流程,尝试在仿真平台中让一个设备成功发出中断请求,观察CPU是否停下。预习讲义中关于“中断向量表”的部分。

  教师准备:收集学生仿真中的常见错误(如忘记开中断允许位);准备可动态配置的中断控制器仿真模型。

  (二)课中实施

  1.Bridge-in(10分钟):回顾上节课的角色扮演,提问:“扮演CPU时,你是怎么知道‘键盘’在请求的?如果同时有多个设备举手,你先处理谁?处理完怎么知道回到刚才计算的哪一步?”引出本节课的三大核心:中断检测与响应、中断判优、现场保护与恢复。

  2.ObjectivePre-assessment(5分钟):呈现本讲目标,重点是中断响应周期和可编程中断控制器(PIC)。前测:通过选择题测试对“中断向量”概念的理解。

  3.ParticipatoryLearning(70分钟)

  阶段一:中断响应周期与向量获取(20分钟)

    活动:教师用精细的时序图动画,展示从CPU采样到INTR线为高,到发出INTA信号,再到从数据总线读取中断类型码(向量)的完整总线周期。强调这是硬件自动完成的过程。将此时序与指令周期时序并置对比,突出其“特殊周期”的性质。让学生操作仿真模型,单步执行一个中断响应,观察地址线、数据线、控制线上的信号变化。

    设计意图:将瞬间的中断响应“慢放”并可视化,破解其神秘感。

  阶段二:可编程中断控制器(PIC)深度解析(30分钟)

    活动:首先,展示多中断源直接连接CPU的不可行性(引脚有限,无优先级管理)。引入PIC作为“中断大管家”。详细解析8259A(或现代内核中类似模块)的内部结构:IRR(中断请求寄存器)、ISR(中断服务寄存器)、IMR(中断屏蔽寄存器)、优先权判别器PR。通过一个交互式Flash应用,允许学生动态操作:点击不同IRQ引脚模拟设备请求,在IMR中勾选屏蔽位,观察PR如何根据优先级和屏蔽情况决定向CPU发出哪个中断请求,以及ISR中相应位如何置位和清除(通过EOI命令)。特别演示中断嵌套:当一个低优先级ISR正在执行时,高优先级请求到来会发生什么。

    设计意图:PIC是难点,交互式操作使其内部状态变化一目了然,特别是中断嵌套的逻辑。

  阶段三:软件视角——中断服务例程(ISR)(20分钟)

    活动:呈现一段真实的ARMCortex-M中断服务函数代码(用C语言内嵌汇编)。带领学生逐段分析:哪些是编译器自动生成的现场保护(寄存器入栈)?哪些是程序员必须做的(保存额外上下文、清除中断源、发送EOI、处理数据)?强调ISR的“短小精悍”原则。对比前后台系统与基于RTOS的任务调度,指出中断是事件驱动型软件的底层根基。

    设计意图:打通硬件机制与软件实现的“最后一公里”,让学生看到如何为硬件中断编写处理代码,理解其约束与规范。

  4.Post-assessment(10分钟):给出一个PIC初始化后的配置(如优先级顺序、屏蔽字),以及一段时间内多个中断请求到达的序列图,要求学生画出PIC内部IRR、ISR寄存器的位状态变化过程,并指出CPU执行ISR的顺序。

  5.Summary(5分钟):总结中断处理的完整链条:外设请求->PIC管理(排队、屏蔽、判优)->CPU响应(取向量)->软件服务(ISR)。强调硬件与软件的精密配合。

  (三)课后延伸

  任务:在开发板上编程,配置一个外部按键为中断源,当按键按下时,触发中断,在ISR中翻转LED状态。要求写出详细配置步骤(包括中断优先级设置、向量表配置、ISR编写)并演示。思考:如果按键去抖处理放在ISR中会有什么问题?该如何改进?

  第三讲(2学时):超越中断——DMA与高性能I/O架构展望

  (一)课前准备

  学生任务:完成LED中断实验,思考“如果用中断方式传输一个10MB的文件,需要多少次中断?CPU介入多少次?”预习DMA的基本思想。

  教师准备:准备展示硬盘、显卡等高速设备性能参数的幻灯片;准备DMA传输过程的对比动画。

  (二)课中实施

  1.Bridge-in(10分钟):展示一组数据:万兆网卡、NVMe固态硬盘的传输速率(超过1GB/s)。计算一下,如果用中断方式,每传一个4KB数据块就中断一次,CPU将面临何等频繁的上下文切换开销?引出新的矛盾:中断本身仍有CPU参与,对于大数据块传输仍是瓶颈。从而引出“直接存储器存取(DMA)”的核心理念:开辟一条外设与内存的“直达通道”。

  2.ObjectivePre-assessment(5分钟):明确本讲目标:掌握DMA工作原理,了解现代I/O总线与接口技术概貌。前测:快速问答“DMA传输时,CPU在做什么?”

  3.ParticipatoryLearning(70分钟)

  阶段一:DMA工作原理精讲(25分钟)

    活动:通过对比动画,清晰展示三种传输方式:程序查询(CPU全程参与)、中断驱动(CPU参与每次数据传输)、DMA(CPU只参与初始化和结束处理)。详细讲解DMA控制器的内部结构(地址寄存器、计数寄存器、控制寄存器)及其作为“总线主设备”的能力。重点剖析DMA传输的一个完整周期:“窃取”一个总线周期,完成一次内存与外设间的数据搬运。通过时序图展示CPU访问与DMA传输在总线上的“交织”可能。讨论“周期窃取”与“透明DMA”的区别。

    设计意图:通过对比强化DMA的价值;讲清“总线主设备”这一关键身份;阐明DMA与CPU的并发关系。

  阶段二:DMA传输过程实战分析(20分钟)

    活动:以“从硬盘读取数据到内存”为例,分解DMA传输的全过程:(1)CPU初始化DMA控制器(设置内存起始地址、传输字节数、传输方向)。(2)CPU启动磁盘读操作,然后可以去执行其他任务。(3)磁盘数据准备好后,向DMA控制器发请求(DREQ)。(4)DMA控制器向总线仲裁器申请总线。(5)获得总线后,DMA控制器发出内存地址和磁盘地址,完成一次数据传输,并更新内部寄存器。(6)重复(3)-(5)直到计数为零。(7)DMA控制器发出中断告知CPU传输完成。教师用流程图结合状态机模型进行讲解。

    设计意图:将DMA过程步骤化、流程化,便于学生记忆和理解。

  阶段三:从经典总线到现代I/O互联(25分钟)

    活动:简要回顾ISA、PCI总线,重点介绍PCIExpress(PCIe)的颠覆性变化:从并行总线到串行点对点互连、基于数据包的交换结构。引出消息信号中断(MSI/MSI-X)如何克服传统线中断的引脚限制和共享中断问题。介绍高速I/O虚拟化技术(如SR-IOV)如何让虚拟机直接高效访问硬件。这部分采用“技术演进故事会”的形式,讲述工程师们如何不断解决瓶颈,推动I/O子系统性能飞跃。

    设计意图:开阔学生视野,将课本经典知识与工业界前沿发展连接,理解技术演进的内在驱动力,激发对未来的想象。

  4.Post-assessment(10分钟):给出一个系统场景(CPU、内存、DMA控制器、网络接口卡),描述一次网络数据包接收过程。要求学生以时间线或流程图形式,标注出CPU活动、DMA活动、总线占用、中断发生等关键事件点。

  5.Summary(5分钟):总结I/O控制方式从程序查询、中断到DMA的“去CPU中心化”演进逻辑,其根本目标是释放CPU,提升系统整体吞吐量。强调当代计算机是一个复杂的异构计算与互连系统,I/O子系统设计是衡量其先进性的关键指标。

  (三)课后延伸与项目启动

  任务:布置期末PBL项目——“智能数据采集终端I/O子系统设计”。项目要求:以小组为单位,为一块STM32开发板设计扩展板(原理图),连接温湿度传感器(I2C)、OLED显示屏(SPI)、SD卡(SDIO)和ESP8266Wi-Fi模块(UART)。编写固件,实现定时(使用定时器中断)采集传感器数据,通过DMA方式存入SD卡文件,同时可通过串口命令(中断驱动)查询数据或通过Wi-Fi上传。项目需提交设计报告、原理图、核

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论