首页> 中国专利> 一种主处理器和协处理器之间的通讯接口及其控制方法

一种主处理器和协处理器之间的通讯接口及其控制方法

摘要

一种主处理器和协处理器之间的通讯接口,所述通讯接口用于支持所述主处理器通过AHB总线访问所述协处理器,所述通讯接口包括控制字寄存器,用于接收主处理器发送给与协处理器的指令;所述通讯接口包括状态字寄存器,用于接收来自协处理器的状态信息,供主处理器查询用;所述通讯接口还包括控制字寄存器,用于接口方式选择,所述接口方式包括,接口方式A,通过查询协处理器的状态位来和主处理器通讯,以及接口方式B,通过停止等待来和主处理器通讯。采用本发明的技术方案后,用户可以根据具体应用场景,通过配置协处理器的控制寄存器某一位来选择接口方式A或者接口方式B,以达到提高总线资源的利用率或者降低系统功耗的目的。

著录项

  • 公开/公告号CN101944077A

    专利类型发明专利

  • 公开/公告日2011-01-12

    原文格式PDF

  • 申请/专利权人 东莞市泰斗微电子科技有限公司;

    申请/专利号CN201010277582.X

  • 发明设计人 张仕兵;

    申请日2010-09-02

  • 分类号G06F15/163(20060101);

  • 代理机构

  • 代理人

  • 地址 523070 广东省东莞市南城区新城元美东路东侧东莞市商业中心C座1212

  • 入库时间 2023-12-18 01:22:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-06

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F15/163 变更前: 变更后: 申请日:20100902

    专利权人的姓名或者名称、地址的变更

  • 2018-05-15

    著录事项变更 IPC(主分类):G06F15/163 变更前: 变更后: 申请日:20100902

    著录事项变更

  • 2016-12-14

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F15/163 变更前: 变更后: 申请日:20100902

    专利权人的姓名或者名称、地址的变更

  • 2014-11-26

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F15/163 变更前: 变更后: 申请日:20100902

    专利权人的姓名或者名称、地址的变更

  • 2011-10-19

    授权

    授权

  • 2011-03-09

    实质审查的生效 IPC(主分类):G06F15/163 申请日:20100902

    实质审查的生效

  • 2011-01-12

    公开

    公开

查看全部

说明书

技术领域

本发明涉及集成电路设计领域,尤其是涉及一种实现主处理器和协处理器之间通讯的接口及其控制方法。

背景技术

协处理器是针对不同的应用场合和需求,对主处理器扩展的和协助主处理器完成特殊应用处理的处理器。它通常是在主处理器的指引下运行的专用的单用途处理器,例如浮点运算处理器、椭圆加密协处理器、图像协处理器、等等。

传统的主处理器与协处理器之间通讯的接口方式多采用较为复杂的紧密耦合的方式。例如,ARM(Advanced RISC Machines,高级精简指令集处理器)与其协处理器接口通过专用的协处理器接口进行互连和通讯。协处理器的接口包括以下四类信号:时钟信号、时钟控制信号、流水线跟随信号和握手信号。ARM的协处理器与ARM处理器使用同一时钟信号。协处理器中有自己的流水线。协处理器通过与ARM处理器连接的协处理器接口使用一个流水线跟随器,对ARM内核流水线中执行的指令进行跟踪,并且保持两个流水线的步调一致。这样就出现了一个问题——这种紧密耦合方式要求主处理器要知道协处理器的处理能力。这就使电路设计复杂起来,这样,将一个新协处理器加到一个集成系统上是一个具有一定技术难度的工程问题。

为解决紧密耦合接口方式带来的问题,后来有人提出了松散耦合的接口方式。这样做的益处是从主处理器中提取并分离出协处理器的操作,并且能够真正减少将一个新的协处理器与一个已存在的处理器相集成时所要做的工作。例如,通过查询协处理器的状态位来来和主处理器通讯的接口方式;再如,通过协处理器拉死总线的方式来和主处理器通讯的接口方式等等。但是这些接口方式,在某些应用场合都有其各自的局限性,比如在采用通过查询协处理器的状态位的方式时,主处理器会不断地查询协处理器的状态位,这样就会带来不必要的功耗损耗,而且也会给软件人员编程带来一定麻烦;而采用协处理器拉死总线的方式时,虽然可以简化软件编写工作,减少功耗消耗,但是协处理器在还没处理完成之间,总线会被一直拉死,无法响应其他部件,这样就会大大降低总线资源的利用率。

发明内容

本发明的目的是提供一种可灵活配置的主处理器和协处理器之间通讯的接口方法,用户可根据各种应用场景,选择配置协处理器中控制寄存器的某一位或某几位,来选择其中一种接口方式,以达到该场景下的最佳应用效果。

本发明是这样实现的:

一种主处理器和协处理器之间的通讯接口,所述通讯接口用于支持所述主处理器通过AHB总线访问所述协处理器,所述通讯接口至少一个控制字寄存器,用于接收主处理器发送给与协处理器的指令;所述通讯接口至少一个状态字寄存器,用于接收来自协处理器的状态信息,供主处理器查询用;所述通讯接口还包括至少一个控制字寄存器,用于接口方式选择,所述接口方式包括,接口方式A,通过查询协处理器的状态位来和主处理器通讯,以及接口方式B,通过停止等待来和主处理器通讯。

更进一步,所述协处理器还包括接口方式A的hready信号产生电路和接口方式B的hready信号产生电路。

更进一步,所述协处理器还包括接口方式选择电路(901)。

更进一步,所述接口方式B的hready信号产生电路包括与门(701)和以所述与门(701)输出结果作为选择信号的二路选择器(702)。

本发明还提供一种主处理器和协处理器之间的接口控制方法,所述方法包括:主处理器设置其与协处理器之间的接口方式,所述接口方式包括:接口方式A,通过查询协处理器的状态位来和主处理器通讯,以及接口方式B,通过停止等待来和主处理器通讯;如果所述设置的接口方式为A,则协处理器进入A模式,如果所述设置的接口方式为B,则进入B模式。

更进一步,所述方法还包括,如果协处理器进入A模式,主处理器向协处理器发送操作数、操作指令和启动指令;协处理器接收到启动指令,执行所述操作指令;协处理器完成所述指定的操作后,向状态字寄存器写入完成状态字,供主处理器查询。

更进一步,所述方法还包括,如果协处理器进入B模式,主处理器向协处理器发送操作数、操作指令和启动指令;协处理器接收到启动指令,执行所述操作指令;协处理器接收到主处理器发来的启动指令后,执行操作指令中指定的操作,拉低hready信号;协处理器完成所述指定的操作,拉高hready信号;主处理器读取协处理器的执行结果。

采用本发明的技术方案后,用户可以根据具体应用场景,通过配置协处理器的控制寄存器某一位来选择接口方式A或者接口方式B,以达到降低系统功耗或者提高总线资源的利用率的目的。

附图说明

图1为本发明中所采用的系统结构图;

图2接口方式A流程图;

图3接口方式A时序图;

图4接口方式B流程图;

图5接口方式B时序图;

图6接口方式A hready产生电路;

图7接口方式B hready产生电路;

图8控制寄存器ctrl_reg定义;

图9接口方式的选择电路;

图10配置接口方式流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明中所采用的系统结构图,该系统主要包括一个主处理器和至少一个协处理器;两条总线(AHB和APB),用于连接主处理器和协处理器,以及连接主处理器和其他外设;至少一个控制字寄存器,用于接收主处理器发送给与协处理器的指令和接口方式选择控制字;至少一个状态字寄存器,用于接收来自协处理器的状态信息,供主处理器查询用。

如图1所示,主处理器101作为Master与AHB总线相连,AHB总线上挂有若干个slave,且至少有一个协处理器102,APB总线上挂有若干个外设,如图1中的外设1,...,外设n。本发明主要关注点是主处理器101和协处理器102之间的通讯接口方法。

在本系统中,主处理器101和协处理器102都挂在AHB总线上,它们与AHB的接口满足AHB总线规范。在AHB总线规范中,存在接口信号hready,用来指示从设备是否准备好或者总线上的传输是否已经完成,本发明要实施的接口方式与hready信号有很大的关系。

本系统中主处理器和协处理器之间的通讯兼容两种接口方式,先分别介绍两种接口方式在本系统中的实现方法。

接口方式A,通过查询协处理器的状态位来和主处理器通讯的接口方式,其操作流程如图2所示。具体步骤描述如下:

步骤201,主处理器向协处理器A发送操作数;

步骤202,主处理器向协处理器A发送操作指令;

步骤203,主处理器向协处理器A发送启动指令;

步骤204,协处理器接收到启动指令,执行操作指令中指定的操作;

步骤205,协处理器完成操作后,写完成状态字,供主处理器查询;

步骤206,主处理器查询到完成状态字后,读取执行结果。

在接口方式A的流程中,首先由主处理器向协处理器发送操作数、操作指令和启动指令,发送操作数和操作指令的顺序可以互换,但启动指令必须保证在发送完操作数和操作指令后发送,如图2所示,步骤201和步骤202可以互换,但步骤203必须保证在步骤201和步骤202后面发送。接着,当协处理器接收到主处理器发来的启动指令时,产生一个start信号,开始执行操作指令中指定的操作,当协处理器完成操作时,产生一个done指示操作已经完成,接着写协处理器的完成状态字,以便供主处理器查询。最后由主处理器查询到协处理器完成状态发生后,读取协处理器执行的结果。这样就完成了一次完整的主处理器和协处理器之间的通讯。

值得注意的是,在进行一次主处理器和协处理器之间的通讯过程中,协处理器并没有占据整个总线资源,如图2所示,步骤201、步骤202、步骤203和步骤206协处理器占用了总线,而在步骤204和步骤205协处理器释放了总线。这样协处理器在执行操作的过程中,总线可以被其他slave占用,或者主处理器查询协处理器的完成状态字(因为主处理器不知协处理器何时能完成相应的操作)。

接口方式A时序图如图3所示,其中包括了部分总线接口信号hsel、hwrite、haddr、hwdata、hrdata和hready,以及部分协处理器内部信号start和done。从时序图可以看出,在主处理器和协处理器通讯的过程中,hready信号是一直为高的,总线除了可以被协处理器占用外,还可以被其他slave占用。如图3所示,t1时段主处理器向协处理器发送操作数、操作指令和启动指令;t2时段为协处理器接收到启动指令后,执行相应操作的过程,在这过程中,主处理器可以访问其他slave,比如t 5时段为主处理器访问其他slave,t6时段为主处理器查询协处理器完成状态字的过程,直到t3时段协处理器的执行结果才被主处理器读回。t4时段为协处理器执行相应操作所耗的时间,它以start信号开始,以done信号结束。

接口方式B,通过停止等待来和主处理器通讯的接口方式,其流程图如图4所示。具体步骤描述如下:

步骤401,主处理器向协处理器A发送操作数;

步骤402,主处理器向协处理器A发送操作指令;

步骤403,主处理器向协处理器A发送启动指令;

步骤404,主处理器发送读协处理器执行结果指令;

步骤405,协处理器接收到启动指令,执行操作指令中指定的操作;

步骤406,协处理器执行完成后,结果被读回到主处理器。

在接口方式B的流程中,前面几个步骤和接口方式A一样,如图4所示,步骤401、步骤402和步骤403是由主处理器向协处理器发送操作数、操作指令和启动指令,步骤401和步骤402顺序可以互换,步骤403必须在步骤401和步骤402后面发出。接着,有两个步骤同时进行,一个步骤是协处理器接收到主处理器发来的启动指令后,产生一个start信号,开始执行操作指令中指定的操作,另外一个步骤是主处理器发出一个读操作,尝试读取协处理器的执行结果,但由于此过程中hready被拉低,主处理器无法读出协处理器执行结果。直到协处理器完成相应操作后,hready信号再被重新拉高,主处理器才可以正常读取协处理器的执行结果。这样就完成了一次完整的主处理器和协处理器之间的通讯。

值得注意的是,在进行一次主处理器和协处理器之间的通讯过程中,协处理器占据整个总线资源,如图4所示,步骤401、步骤402、步骤403和步骤406主处理器对协处理器进行写读操作,而在步骤404和步骤405协处理器把hready信号拉低,总线处于等待协处理器操作完成状态。这样协处理器在执行操作的过程中,总线就被不能被其他slave占用,而且主处理器也不需要查询协处理器的完成状态字。

接口方式B时序图如图5所示,其中包括了部分总线接口信号hsel、hwrite、haddr、hwdata、hrdata和hready,以及部分协处理器内部信号start和done。从时序图可以看出,在协处理器执行相应操作的过程中,hready信号是一直被低的,直到协处理器完成相应操作,产生done信号后,总线才被拉高,这时主处理器才能继续进行其他操作。如图5所示,t1’时段主处理器向协处理器发送操作数、操作指令和启动指令,以及主处理器向协处理器发出一个读执行结果操作;t2’时段为协处理器执行操作的过程,在这过程中,总线接口信号hready信号被拉低,主处理器不能响应其他slave的操作,直到t3’时段协处理器的执行结果才被主处理器读回。t4’时段为协处理器执行相应操作所耗的时间,它以start信号开始,以done信号结束。

从上面介绍两种接口方式的实现可以得知,接口方式A和接口方式B各有其优缺点,接口方式A在协处理器执行操作的过程中,总线并没有被协处理器占用,这样在这段时间内,主处理器就可以操作其他slave,充分提高总线的利用率,但是由于主处理器并不知道协处理器何时能完成操作,主处理器也需要不断地查询协处理器的状态字,这样会带来额外的功耗损耗;接口方式B在协处理器执行操作的过程中,总线一直被协处理器占用,这样在这段时间内,主处理器就不能操作其他slave,总线资源就浪费掉了,但是在这种接口方式下,主处理器不需要不断查询协处理器的状态字,而是协处理器完成操作后主处理器自动继续完成读执行结果的操作,这样相对比接口方式A就节省了一部分功耗,也给软件人员带来方便。于是,如果希望在主处理器对协处理器进行操作时,不被其他slave打扰,可以采用接口方式B;如果希望在协处理器执行过程中,其他的slave能利用总线,就选择接口方式A。

下面实现两种接口方式的可配置性。

首先,介绍两种接口方式下hready信号产生的实现。

在接口方式A中,hready信号固定在高电平,定义此处的hready信号为hready_A。

具体的电路结构如图6所示,hready_A信号连接在VDD上,产生一个逻辑1信号。

在接口方式B中,定义hready信号为hready_B,用is_reading信号表示此时主处理器对协处理器有读操作(高电平有效),用is_haddr_valid表示此时的读地址为协处理器的执行结果寄存器地址(高电平有效),用is_cp_not_done表示此时协处理器未完成指定指令的操作(高电平有效)。hready信号的产生与主处理器对协处理器的操作(is_reading)、操作地址(is_haddr_valid)和协处理器的状态(is_cp_not_done)有关系。具体的电路结构如图7所示,与门701只有当is_reading==1’b1、is_haddr_valid==1’b1和is_cp_not_done==1’b1时,输出才为1,其他情况都为0;二路选择器702的功能函数为f=s?a:b,其含义为如果s等于1,则输出a,如果s等于0,则输出b,在本发明中,a等于0,b等于1。于是可知当主处理器读协处理器的结果寄存器并且协处理器没有完成操作时,hready_B信号为0,其他情况hready_B信号为1。

再者,介绍怎么通过配置控制寄存器来实现两种接口方式的选择。

本系统协处理器中的控制寄存器为ctrl_reg,其字段定义如图8所示,ctrl_reg一共32bits,第nbit来控制两种接口方式的选择,它的真值表如表1所示,ctrl_reg[n]的默认值为0,也即默认情况下选择接口A方式。

  ctrl_reg[n]  接口方式  0  A模式  1  B模式

表1

根据ctrl_reg[n]进行接口方式选择的电路结构如图9所示,用一个二路选择器901(其功能与二路选择器702描述的一样)来实现,当ctrl_reg[n]为1时,选择hready_B输出,进入接口方式B,否则选择hready_A输出,进入接口方式A。

可配置性的逻辑流程如图10所示,具体步骤描述如下:

步骤1001,根据系统应用场景,配置协处理器的控制寄存器ctrl_reg[n];

步骤1002,判断ctrl_reg[n]是否为1;

步骤1003,协处理器进入接口B模式;

步骤1004,协处理器进入接口A模式。

接口方式的配置过程,首先是根据系统的应用场景,主处理器通过总线配置协处理器的控制寄存器ctrl_reg[n],来选择接口方式A或者借口方式B,如步骤1001所示。然后协处理器根据控制寄存器ctrl_reg[n]的值来判断进入接口方式A还是接口方式B,如步骤1002、步骤1003和步骤1004所示,若ctrl_reg[n]为1时,进入接口方式B,否则进入接口方式A。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号