32位嵌入式CPU中系统控制协处理器的设计与实现重点.PDFVIP

32位嵌入式CPU中系统控制协处理器的设计与实现重点.PDF

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
32位嵌入式CPU中系统控制协处理器的设计与实现重点

32 位嵌入式 CPU 中系统控制协处理器的设计与实现 作者:同济大学微电子中心 金钊 摘要:系统控制协处理器是 MIPS 体系结构 CPU中必需的一个单元模块。它最主要的功能就 是利用一系列特权寄存器记录当前 CPU 所处的状态,负责异常/中断处理,提供指令正常执 行所需的环境。本文论述了一个实现 MIPS 4Kc指令集 CPU中系统控制协处理器的设计,包 括对特权寄存器写操作的实现,精确异常处理机制和全定制后端物理设计。 关键词:32位嵌入式 CPU,系统控制协处理器,精确异常处理,流水线,全定制 MIPS 体系结构中的系统控制协处理器简称 CP0,它提供指令正常执行所需的环境,进行异常 /中断处理、高速缓存填充、虚实地址转换、操作模式转换等操作。单从硬件的角度而言, 系统控制协处理器对指令集的作用就相当于操作系统对应用程序的作用一样。 异常处理 CPU 运行过程中常常需要中断正常执行的指令流程,跳转去执行某段特殊的指令段,接着再 恢复原来的指令序列。MIPS 体系结构中称这样的过程为异常(Exception)。所有的异常都采 用统一的机制处理。 对于异常情况,需要采取以下 3 方面的措施: 1) 异常检测:CPU 需要及时检测出哪个部件发生了什么异常;一般而言,异常检测由各个 模块进行,如加法溢出由加法器在运算过程中产生,并在相应的流水段被系统控制协处理器 CP0 读入。因此这部分功能不属于 CP0 的设计范围。 2) 异常处理:CPU 按照优先级选择哪个异常被处理,并进行必要的上下文切换(Context Switch),为进入异常服务子程序做准备,保证与该种异常对应的服务程序被执行,并且能 够从中断处完全恢复原来的指令执行现场。 3) 异常服务:执行异常服务子程序,这部分主要由软件(操作系统)来完成。 对异常处理机制的要求 与传统的异常/中断处理机制相比,在 MIPS 4Kc体系结构下的异常处理需要特别考虑 3 个因 素。 流水线的划分 本设计采用五段流水线设计,即每条指令的执行一般都经过 IF(取指)、DE(指令译码)、EX(指 令执行)、MEM(访问存储器)和 WB(数据写回 R.F.)五个步骤。因为指令动作被分割,所以异 常源也被分割到各个流水线段。例如:加法溢出异常只能在 EX 被检测到。 精确异常处理机制 精确异常处理是指在发生异常时,仅仅对发生异常的指令或其后面的指令进行异常处理;而 其前面的指令要保证能够正常结束。所谓“精确”,是指受到异常处理影响的只有产生异常 条件的那条指令,所有在此之前的指令在异常被处理前都将被执行完成。异常处理结束后仍 将从发生异常的指令开始继续执行。 操作模式切换 对于多进程操作系统,至少要区分两种进程:有特权的操作系统“核心”进程和一般程序的 “用户”进程。当 CPU检测到异常发生时,指令执行的正常顺序会被暂停,处理器进入核心 模式。当异常服务子程序执行完后,CPU 从断点中恢复现场,继续执行原指令序列。 异常处理流水线 根据上述分析可以确定,硬件异常处理流水线的主要任务有 3 个:更新相应的 CP0 寄存器, 即写 CP0 寄存器;保存发生异常的指令地址,或当异常指令在延迟槽时,保存引起延迟槽的 跳转指令地址;选择异常服务子程序的入口地址。 CP0 寄存器记录了 CPU 当前的状态,因此,对 CP0 寄存器的写就是对 CPU状态的改变,需要 进行严格的控制。而且对寄存器的写是影响关键路径的主要因素。因此本文主要论述对 CP0 寄存器写操作的设计。 每个寄存器或寄存器某些位的写操作都是由一个或一组异常事件是否发生而决定的。为此每 一个流水段产生并被接收的异常都将被编码,称为异常编码,并在段与段之间进行传递,直 到 MEM 段。在 MEM 段,异常编码被用于产生对 CP0 寄存器的写使能信号,需要进行复杂的解 码使 MEM 段变长,这成为提高整个 CPU 速度的瓶颈。为了减少这个瓶颈,可增加专门用于产 生写使能信号的逻辑。每一级流水线产生的异常直接产生写使能,并经过简单的优先级比较, 不管它是由哪个异常类型产生的,均产生 1 位的写使能信号。那么,在 MEM 段就可以避免复 杂的解码,直接产生对相关 CP0 寄存器的写使能信号。这一方案采用了以空间换时间的方法: 纵向的执行时间减少了,而横向则需要增加写使能判别逻辑。增加逻辑功能意味着需要占用 更多的芯片面积,考虑到 CP0 模块处于整个 CPU 的边缘,而且全定制物理设计可以大大缩减

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档