0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解决CPU异常的功臣_系统控制协处理器的全定制设计

电子工程师 作者:工程师陈翠 2018-07-12 06:16 次阅读

IPS体系结构中的系统控制协处理器简称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的边缘,而且全定制物理设计可以大大缩减芯片面积,因此该方案具有可行性。

系统控制协处理器的全定制物理设计

在深亚微米级的集成电路芯片里,器件(晶体管)本身对时延的贡献已越来越小,主要延迟在于连线延迟。由于CP0功能的特殊性,它和存储管理单元 MMU、指令计数单元PC都有很多连线,这些连线很可能处于全芯片的关键路径上;而且由于CP0逻辑比较复杂,按照标准单元法自动布局布线生成的模块自身面积就很大,某些连线在CP0内部就要走很多弯路,可能造成很大的延时。所以决定采用全定制方法设计CP0的数据通路,以方便控制连线的走向和布局。

控制通路与数据通路的划分

数字电路系统的正常运作过程中存在数据流(包括一般意义上的数据、指令和地址)和控制流。而数据流和控制流是相对独立的:数据流实现的逻辑相对简单,但有很多位数据并行;而控制流的逻辑较复杂,绝大多数是1位或几位的控制信号。因此,控制通路一般不采用全定制设计;而数据通路的全定制设计就具有高性能、低功耗、低成本的优势。

协助TLB进行虚实地址转换是CP0的主要功能之一。TLB属于系统的特权资源,只有CP0有权对其进行访问,因此CP0与TLB之间的连线较多,数据交换的时延也比较关键。同时,PC模块与CP0的数据交换也非常重要。因此,CP0单元在版图上最好同时靠近TLB和PC模块。本设计将CP0中与TLB相关的逻辑与寄存器独立为CP0T,放在MMU与PC模块之间;CP0的其余部分归为CP0E,放在PC下部,也就是整块芯片的最下端。如下图所示。

解决CPU异常的功臣_系统控制协处理器的全定制设计

CP0单元与临近单元的连接示意图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211088
  • 协处理器
    +关注

    关注

    0

    文章

    75

    浏览量

    18151
收藏 人收藏

    评论

    相关推荐

    迅为4412开发板源码分析之处理器

    ARM 官网文档是如何描述这部分内容,如下图所示。 上面红色框中,第一行翻译为“系统控制处理器”,我觉得用“系统控制
    发表于 07-29 15:36

    PSoC® 模拟处理器资料手册分享!

    赛普拉斯的 PSoC® 模拟处理器是可编程模拟处理器的可扩展和可重配置的平台架构;它能够简化带有多个传感的嵌入式
    发表于 09-01 16:50

    小白求助怎样去使用ARM处理器

    困难,因此高性能的ARM处理器接口仅限于片上使用。最常使用的处理器是用于控制片上功能的系统
    发表于 04-24 09:36

    32位嵌入式CPU系统控制处理器的设计与实现

    系统控制处理器是MIPS体系结构CPU中必需的一个单元模块。它最主要的功能就是利用一系列特权寄存记录当前
    发表于 01-17 09:31 29次下载

    嵌入式32位CPU系统控制处理器异常处理系统的设计与实现

    IPS体系结构中的系统控制处理器简称CP0,它提供指令正常执行所需的环境,进行异常/中断处理、高速缓存填充、虚实地址转换、操作模式转换等操
    发表于 10-10 14:05 3次下载

    系统控制处理器的作用及其基于32位嵌入式CPU的设计与实现

    MIPS体系结构中的系统控制处理器简称CP0,它提供指令正常执行所需的环境,进行异常/中断处理、高速缓存填充、虚实地址转换、操作模式转换等
    发表于 10-18 09:31 11次下载
    <b class='flag-5'>系统控制</b><b class='flag-5'>协</b><b class='flag-5'>处理器</b>的作用及其基于32位嵌入式<b class='flag-5'>CPU</b>的设计与实现

    ARM处理器指令介绍

    处理器(coprocessor),一种芯片,用于减轻系统处理器的特定处理任务。
    发表于 11-10 15:56 2776次阅读

    怎样将GPU作为CPU处理器工作

    处理器,一种芯片,用于减轻系统处理器的特定处理任务。CPU的缩写,译为中央
    发表于 01-09 14:46 1.1w次阅读

    手机上的处理器有什么作用_苹果处理器是干什么的

    本文首先介绍了处理器概念,其次介绍了处理器内部结构与手机处理器的作用,最后介绍了苹果的M8
    的头像 发表于 04-24 09:27 2.2w次阅读

    有哪些手机内置了处理器_五款内置处理器的手机介绍

    本文主要介绍了五款内置处理器的手机。处理器用于减轻系统处理器的负担,执行特定
    的头像 发表于 04-24 09:58 1.6w次阅读

    arm的处理器有几个?ARM处理器详解

    本文首先介绍了ARM处理器特点与主要模式,其次介绍了arm的处理器有几个,最后介绍了CP14和CP15系统控制
    发表于 04-24 15:34 8925次阅读

    关于32位嵌入式CPU系统控制处理器的设计

    MIPS体系结构中的系统控制处理器简称CP0,它提供指令正常执行所需的环境,进行异常/中断处理、高速缓存填充、虚实地址转换、操作模式转换等
    发表于 10-15 10:54 753次阅读

    鸿蒙轻内核源码分析:MMU 处理器

    1、 ARM C15 处理器 在 ARM 嵌入式应用系统中, 很多系统控制由 ARM CP15 处理
    的头像 发表于 02-20 14:28 517次阅读
    鸿蒙轻内核源码分析:MMU <b class='flag-5'>协</b><b class='flag-5'>处理器</b>

    使用TMS320C6416处理器:Viterbi处理器(VCP)

    电子发烧友网站提供《使用TMS320C6416处理器:Viterbi处理器(VCP).pdf》资料免费下载
    发表于 10-21 09:36 0次下载
    使用TMS320C6416<b class='flag-5'>协</b><b class='flag-5'>处理器</b>:Viterbi<b class='flag-5'>协</b><b class='flag-5'>处理器</b>(VCP)

    使用TMS320C6416处理器:Turbo处理器(TCP)

    电子发烧友网站提供《使用TMS320C6416处理器:Turbo处理器(TCP).pdf》资料免费下载
    发表于 10-23 10:16 0次下载
    使用TMS320C6416<b class='flag-5'>协</b><b class='flag-5'>处理器</b>:Turbo<b class='flag-5'>协</b><b class='flag-5'>处理器</b>(TCP)