公开/公告号CN101526897A
专利类型发明专利
公开/公告日2009-09-09
原文格式PDF
申请/专利权人 杭州中天微系统有限公司;
申请/专利号CN200910095783.5
申请日2009-01-22
分类号G06F9/38;
代理机构杭州天正专利事务所有限公司;
代理人王兵
地址 310012 浙江省杭州市西湖区华星路99号东部软件园创业大厦A403
入库时间 2023-12-17 22:36:00
法律状态公告日
法律状态信息
法律状态
2011-04-20
授权
授权
2009-11-04
实质审查的生效
实质审查的生效
2009-09-09
公开
公开
技术领域
本发明涉及一种嵌入式处理器的协处理器接口。
背景技术
协处理器为与CPU协同工作而设计,该处理单元与CPU一起使用来承担通常由后者执行的运算。通常,协处理器功能在硬件中实现以替代几种软件指令。通过减少多种代码指令为单一指令,以及在硬件中直接实现指令的方式,从而实现代码加速。协处理器与CPU之间的数据通信成为影响嵌入式系统性能的一个重要因素。协处理器与CPU的连接有三种基本的形式:与CPU总线连接的、与I/O连接的和指令流水线连接(Instruction Pipeline Connection)。此外,还存在一些这些形式的混合形式。访问协处理器通常需要专门的协处理器指令,用以控制协处理器的读写和运算操作。由于协处理器通常运算速度较CPU慢,则协处理器指令的执行会影响到CPU流水线的连续性,造成流水线停顿;协处理器与CPU时钟不同步也会影响协处理器指令执行的速度;当挂载多个协处理器时,多个设备间的协调策略和切换方式也影响着CPU指令执行的连续性。这些都成为设计协处理器接口需要仔细考虑的重要因素。
发明内容
为了克服已有的嵌入式处理器的协处理器接口的数据传输速度较慢、削弱了处理器的性能的不足,本发明提供一种提高CPU和协处理器之间的数据传输速度、提升了处理器的性能的嵌入式处理器高速协处理器接口。
本发明解决其技术问题所采用的技术方案是:
一种嵌入式处理器高速协处理器接口,包括依次连接的第一级流水线、第二级流水线和第三级流水线,第一级流水线包括协处理器保留栈和指令缓冲器,协处理器接口与外部协处理器数据交互状态时缓存至多两条协处理器指令,从保留栈和指令缓冲器中选取当前可执行的协处理器指令发送至下一级流水线;第二级流水线包括控制逻辑,产生相应的协处理器选择与读写信号,并进行数据通信,当协处理器的数据读写操作完成之后,将得到的结果发送至下一级流水线;第三级流水线向嵌入式处理器发起数据回写请求,并通过通用数据总线将结果返回给嵌入式处理器。
作为优选的一种方案:所述高速协处理器接口还包括协处理器指令定义单元,用于定义协处理器选择指令、协处理器读数据指令和协处理器写数据指令;其中,协处理器选择指令从多个协处理器中选中其中一个,协处理器读数据指令从指定的协处理器寄存器中读取数据并写入到指定的CPU通用寄存器中,协处理器写数据指令向选中的协处理器写入既定数据,等待协处理器对这些数据进行处理。
进一步,所述高速协处理器接口还包括:时钟逻辑模块,用于在所述协处理器接口与外部协处理器具有相同的高速时钟时进行同步工作模式工作;在所述协处理器接口与外部协处理器时钟频率不同步时进行异步工作模式工作,时钟同步模块控制协处理器和CPU之间的数据同步传输。
再进一步,设定协处理器寄存器相应的控制位来选择阻塞和非阻塞两种指令执行方式,其中,指令阻塞模式通过顺序执行协处理器指令,对提交的协处理器指令发送至协处理器接口的后级流水线进行指令执行,没有提交的指令会阻塞在协处理器接口的第一级流水线上;指令非阻塞模式允许协处理器指令乱序执行,所有的协处理器指令发送至协处理器接口的后级流水线执行。
更进一步,当选中的协处理器在执行过程中出现异常时,通过协处理器接口返回给嵌入式微处理器,嵌入式微处理器根据返回的异常向量进入对应的异常服务程序。
所述高速协处理器接口支持至多16个不同的协处理器,通过译码所述协处理器选择指令选中相应的协处理器,后面的协处理器数据读写指令的操作是与当前所选的协处理器进行交互。
所述的高速协处理器接口还包括:动态低功耗控制逻辑模块,用于在没有新的协处理器指令并且协处理器接口处于空闲状态时关闭模块时钟。
本发明的技术构思为:采用流水线设计和专用指令,结合时钟同步技术、动态切换技术和低功耗技术,实现了协处理器和嵌入式微处理器之间的高速数据通信。
本发明的有益效果主要表现在:1)三级流水线设计的协处理器接口,将执行时延分布在三级流水线中,实现了CPU与协处理器之间的数据高速传输;
2)三种协处理器专用指令,简单有效的实现了对协处理器的控制;
3)对同步接口和异步接口两种工作模式的兼容,扩大了处理器的适用范围;
4)流水线执行方式和动态切换技术,实现了各协处理器之间的并行执行,有效提高了处理器的性能。
附图说明
图1是高速协处理器接口三级流水线结构示意图。
图2是高速协处理器接口与各协处理器间的连接方式的示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1和图2,一种嵌入式处理器高速协处理器接口,包括依次连接的第一级流水线、第二级流水线和第三级流水线,第一级流水线包括协处理器保留栈和指令缓冲器,协处理器接口与外部协处理器数据交互状态时缓存至多两条协处理器指令,从保留栈和指令缓冲器中选取当前可执行的协处理器指令发送至下一级流水线;第二级流水线包括控制逻辑,产生相应的协处理器选择与读写信号,并进行数据通信,当协处理器的数据读写操作完成之后,将得到的结果发送至下一级流水线;
第三级流水线向嵌入式处理器发起数据回写请求,并通过通用数据总线将结果返回给嵌入式处理器。
所述高速协处理器接口还包括协处理器指令定义单元,用于定义协处理器选择指令、协处理器读数据指令和协处理器写数据指令;其中,协处理器选择指令从多个协处理器中选中其中一个,协处理器读数据指令从指定的协处理器寄存器中读取数据并写入到指定的CPU通用寄存器中,协处理器写数据指令向选中的协处理器写入既定数据,等待协处理器对这些数据进行处理。
所述高速协处理器接口还包括:时钟逻辑模块,用于在所述协处理器接口与外部协处理器具有相同的高速时钟时进行同步工作模式工作;在所述协处理器接口与外部协处理器时钟频率不同步时进行异步工作模式工作,时钟同步模块控制协处理器和CPU之间的数据同步传输。
所述的高速协处理器接口还包括:动态低功耗控制逻辑模块,用于在没有新的协处理器指令并且协处理器接口处于空闲状态时关闭模块时钟。
本实施例的嵌入式处理器高速协处理器接口,设计分为三级流水线,如图1所示。高速协处理器接口在CPU流水线中处于寄存器级(RF)的下级,即与CPU执行级(EX)同级。高速协处理器接口流水线分为EX1、EX2、EX3三级,EX1级复用了处理器RF-EX级流水线寄存器作为协处理器接口的保留栈,并设有指令缓冲器(instructionbuffer),用于缓存协处理器指令,该缓冲器和保留栈使协处理器接口处于与外部协处理器数据交互状态时可以缓存至多两条协处理器指令,减少了CPU前级流水线的停顿,提升了CPU的性能。EX1流水线级的控制逻辑从保留栈和指令缓冲器中选取当前可执行的协处理器指令发送至下一级流水线。EX2流水线产生相应的协处理器选择与读写信号,并进行数据通信,一旦协处理器的数据读写操作完成之后,EX2级流水线将得到的结果发送至下一级流水线;EX3级向CPU发起数据回写请求,并通过通用数据总线(common data bus)将结果返回给CPU,实现两者之间的协同工作。
动态低功耗控制逻辑,用于在没有新的协处理器指令并且协处理器接口处于空闲状态时关闭模块时钟,降低非工作状态下的无效功耗。
嵌入式处理器高速协处理器接口至多可以挂载16个不同的协处理器,如图2所示,通过协处理器选择指令选择当前与CPU进行数据交互的协处理器。具体执行方式如下:协处理器选择指令发送至EX2级,通过EX2级的控制逻辑对指令进行译码,根据译码结果从至多16个协处理器中选中一个,与其进行数据交互。通过不同的协处理器选择指令可以实现协处理器间的动态切换。
在原有CPU指令架构的基础上,在闲置的指令空间中扩展了三条专用的协处理器指令,分别为协处理器选择指令、协处理器读数据指令和协处理器写数据指令。高速协处理器接口可扩展连接16个协处理器,而协处理器选择指令用于从至多16个协处理器中选中其中一个。协处理器读数据指令负责从指定的协处理器寄存器中读取数据并写入到指定的CPU通用寄存器中,而协处理器写数据指令则负责向选中的协处理器写入既定数据,等待协处理器对这些数据进行处理。这三种指令既有效满足了CPU与协处理器之间的数据通信需求,也充分利用了闲置的指令空间,提升了CPU的扩展性能。
协处理器接口既可使用与外部协处理器相同的高速时钟进行工作(同步工作模式),也可在与外部协处理器时钟频率不同步的模式下工作,即异步工作模式,在该模式下,高速协处理器接口通过时钟同步逻辑模块实现协处理器和CPU之间的数据同步传输。
应用程序可以设定协处理器寄存器相应的控制位来选择阻塞和非阻塞两种指令执行方式,其中指令阻塞模式通过顺序执行协处理器指令,实现了异常精确,在该模式下,只有提交的协处理器指令才能发送至协处理器接口的后级流水线进行指令执行,没有提交的指令会阻塞在协处理器接口的EX1级流水线上,导致流水线停顿;而指令非阻塞模式允许协处理器指令乱序执行,即异常非精确模式,在该模式下,所有的协处理器指令都可以发送至协处理器接口的后级流水线执行,而不论它们是否已被提交,因此该模式不会造成协处理器接口流水线的停顿,实现了数据的高速传输。
当选中的协处理器在执行过程中出现异常时,该异常会通过协处理器接口及时返回给CPU,CPU则根据返回的异常向量进入对应的异常服务程序。
机译: 突发访问协处理器以在CPU,高速缓存,外围设备之间进行数据传输,涉及程序在高速缓存存储器,使用协处理器选择控制器的协处理器之间进行镜像
机译: 数据处理系统,具有通过通信总线连接到可编程处理器的高速缓存存储器,以及直接连接到高速缓存存储器的协处理器,从而可编程处理器和协处理器通过高速缓存存储器交换数据
机译: 在具有协处理器的系统中使用高速接口的系统和方法