会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 将一个处理器与一个协处理器相接口的方法和装置

将一个处理器与一个协处理器相接口的方法和装置

阅读:1030发布:2020-08-30

IPRDB可以提供将一个处理器与一个协处理器相接口的方法和装置专利检索,专利查询,专利分析的服务。并且本发明涉及一种将一个处理器与一个协处理器相接口的方法和装置。其中,一个处理器(12)向协处理器(14)的接口,它支持多个协处理器(14,16),用于使用编译器生成软件类型函数调用和返回,指令执行,以及可变加载和存储接口指令。在一个双向共享总线(28)上,或是通过寄存器窥探和广播显式地,或者通过函数调用和返回以及可变加载和存储接口指令隐式地,在处理器(12)和协处理器(14)之间移动数据。在断言一个执行信号之前,通过否定一个译码信号,指示已译码的指令删除来提供流水线操作。,下面是将一个处理器与一个协处理器相接口的方法和装置专利的具体信息内容。

1.一种由具有包括多个寄存器的寄存器文件的处理器经由协 处理器通信总线广播所述寄存器文件中的所有写入事务的方法,所 述方法包括步骤:接收将要写入所述寄存器文件的操作数;

选择所述寄存器文件中所述多个寄存器中的一个;以及

把以下各项经由所述协处理器通信总线提供给所述寄存器文 件:所述将要写入所述寄存器文件的操作数、表明所述选择的所述 寄存器文件中所述多个寄存器中的一个的第一控制信号、以及请求 将所述操作数写入所述选择的所述多个寄存器中的一个的第二控制 信号。

2.一种由第一处理器经由协处理器通信总线监控到第二处理 器中的的包括多个寄存器的寄存器文件中的所有写入事务的方法, 所述方法包括步骤:经由所述协处理器通信总线从所述第二处理器接收以下各项: 将要写入所述寄存器文件的操作数、表明选择的所述寄存器文件中 所述多个寄存器中的一个的第一控制信号、以及请求将所述操作数 写入所述选择的所述多个寄存器中的一个的第二控制信号;以及响应接收到所述操作数、所述第一控制信号、以及所述第二控 制信号,执行预定的操作。

3.一种由具有包括多个寄存器的寄存器文件的第一处理器经 由协处理器通信总线广播到所述寄存器文件中的所有写入事务以便 由第二处理器监控的方法,所述方法包括步骤:在所述第一处理器中:

接收将要写入所述寄存器文件的操作数;

选择所述寄存器文件中所述多个寄存器中的一个;以及

把以下各项经由所述协处理器通信总线提供给所述寄存器文 件:所述将要写入所述寄存器文件的操作数、表明所述选择的所述 寄存器文件中所述多个寄存器中的一个的第一控制信号、以及请求 将所述操作数写入所述选择的所述多个寄存器中的一个的第二控制 信号;

在所述第二处理器中:

经由所述协处理器通信总线从所述第一处理器接收以下各项: 将要写入所述寄存器文件的操作数、表明所述选择的所述寄存器文 件中所述多个寄存器中的一个的第一控制信号、以及请求将所述操 作数写入所述选择的所述多个寄存器中的一个的第二控制信号;以 及响应接收到所述操作数、所述第一控制信号、以及所述第二控 制信号,执行预定的操作。

4.一种处理器,包括:

多个寄存器;

用于执行到多个寄存器中的一个的写入操作的电路;

用于为到所述多个寄存器中的一个的写入操作提供操作数的导 线;以及用于与协处理器通信总线进行通信的端口,所述端口包括:

至少一个第一协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第一协处理器通信总线信号,所述至少一个第一 协处理器通信总线信号表示在所述写入操作期间写入多个寄存器中 的哪一个;

至少一个第二协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第二协处理器通信总线信号,所述至少一个第二 协处理器通信总线信号表示到所述多个寄存器中的一个的所述写入 操作的发生;以及至少一个第三协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第三协处理器通信总线信号,所述至少一个第三 协处理器通信总线信号在所述写入操作期间提供将要写入所述多个 寄存器中的一个的所述操作数。

5.一种数据处理系统,包括通过协处理器通信总线耦合的处理 器和协处理器,其中,所述处理器包括:

多个寄存器;

用于执行到多个寄存器中的一个的写入操作的电路;

用于为到所述多个寄存器中的一个的写入操作提供操作数的导 线;以及用于通过所述协处理器通信总线与所述协处理器进行通信的处 理器端口,所述处理器端口包括:至少一个第一协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第一协处理器通信总线信号,所述至少一个第一 协处理器通信总线信号表示在所述写入操作期间写入多个寄存器中 的哪一个;

至少一个第二协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第二协处理器通信总线信号,所述至少一个第二 协处理器通信总线信号表示到所述多个寄存器中的一个的所述写入 操作的发生;以及至少一个第三协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第三协处理器通信总线信号,所述至少一个第三 协处理器通信总线信号在所述写入操作期间提供将要写入所述多个 寄存器中的一个的所述操作数;

并且,其中所述协处理器包括:

用于与所述协处理器通信总线进行通信的协处理器端口,所述 协处理器端口包括:至少一个第四协处理器通信总线信号端,用于接收由所述处理 器生成的所述至少一个第一协处理器通信总线信号,所述至少一个 第一协处理器通信总线信号表示在所述写入操作期间写入多个寄存 器中的哪一个;

至少一个第五协处理器通信总线信号端,用于接收由所述处理 器生成的至少一个第二协处理器通信总线信号,所述至少一个第二 协处理器通信总线信号表示到所述多个寄存器中的一个的所述写入 操作的发生;以及至少一个第六协处理器通信总线信号端,用于接收由所述处理 器生成的至少一个第三协处理器通信总线信号,所述至少一个第三 协处理器通信总线信号在所述写入操作期间提供将要写入所述多个 寄存器中的一个的所述操作数。

说明书全文

技术领域

本发明涉及具有一个处理器和至少一个协处理器的一个数据处 理系统,尤其涉及将一个处理器与一个协处理器相接口的一种方法和 装置。

背景技术

通过专用的和专门的硬件功能元件,扩展一个基准体系结构处理 器功能的能力是可测量的和可扩展的体系结构的一个重要方面。
用于扩展一个基准体系结构处理器功能的优选方式中的一种是 通过使用协处理器。这些协处理器通常是在处理器的指引下运行的专 用的单用途处理器。协处理器一个常用的用途是用作数学协处理器, 有选择的为没有直接提供浮点能力的体系结构提供这个功能。这种数 学协处理器的例子是Intel8087和80287。协处理器的其它可能的用途 或类型包括:乘-累加器,调制器/解调器(调制解调器),数字信号 处理器(DSP),维特比计算器,加密处理器,图像处理器和向量处 理器。
对于协处理器已经有两种不同的方法。一方面,对于数字设备公 司(DEC)的PDP-11系列计算机,将浮点单元与它的主处理器紧密 耦合。出现的一个问题是这种紧密耦合要求主处理器要知道协处理器 计算的实际数量。这使电路设计复杂起来,这样,将一个新协处理器 加到一个集成系统上的扩展是一个主要的工程问题。
可选的实现方法是将协处理器与主处理器松散耦合。这样做的益 处是从主处理器中提取并分离出协处理器的操作,并且能够真正减少 将一个新的协处理器与一个已存在的处理器相集成时所要做的工作。 但是这也必然要花费代价。性能的损失是这种方法的一个问题。由这 种松耦合所引起的这种类型的性能命中的一个问题是调用这样一个 协处理器时无亏损点也相应地增加。这样,对于协处理器,许多其它 的吸引人的应用的效能价格比并不合算。此外,这样一种方法经常要 求使用一条总线,还有所有的相应的附加电路和芯片区域。
这样具有一个协处理器接口就是非常重要的,将接口紧密耦合, 使得接口的使用足够快,甚至在调用相对简单的函数时也占有优势, 同时将接口提取成这样一个扩展,从任何给定的协处理器的细节中将 处理器的体系结构尽可能多的分离出来。后者中的一部分包括使接口 程序设计器友好,目的是可以方便使用软件而不是硬件设计新的协处 理器应用。

发明内容

本发明提供一种用于具有包括多个寄存器的寄存器文件的处理 器经由协处理器通信总线广播所述寄存器文件中的所有事务的方法, 所述方法包括步骤:接收将要写入所述寄存器文件的操作数;选择所 述寄存器文件中所述多个寄存器中的一个;以及提供给所述寄存器文 件并经由所述协处理器通信总线:所述将要写入所述寄存器文件的操 作数、表明所述选择的所述寄存器文件中所述多个寄存器中的一个的 第一控制信号、以及请求将所述操作数写入所述选择的所述多个寄存 器中的一个的第二控制信号。
本发明提供一种用于第一处理器经由协处理器通信总线监控所 有写入事务到第二处理器中的包括多个寄存器的寄存器文件中的方 法,所述方法包括步骤:经由所述协处理器通信总线从所述第二处理 器接收:将要写入所述寄存器文件的操作数、表明选择的所述寄存器 文件中所述多个寄存器中的一个的第一控制信号、以及请求将所述操 作数写入所述选择的所述多个寄存器中的一个的第二控制信号;以及 响应收到的所述操作数、所述第一控制信号、以及所述第二控制信号, 执行预定的操作。
本发明提供一种用于具有包括多个寄存器的寄存器文件的第一 处理器经由协处理器通信总线广播由第二处理器监控的所述寄存器 文件中的所有写入事务的方法,所述方法包括步骤:在所述第一处理 器中:接收将要写入所述寄存器文件的操作数;选择所述寄存器文件 中所述多个寄存器中的一个;以及提供给所述寄存器文件并经由所述 协处理器通信总线:所述将要写入所述寄存器文件的操作数、表明所 述选择的所述寄存器文件中所述多个寄存器中的一个的第一控制信 号、以及请求将所述操作数写入所述选择的所述多个寄存器中的一个 的第二控制信号;在所述第二处理器中:经由所述协处理器通信总线 从所述第一处理器接收:将要写入所述寄存器文件的操作数、表明所 述选择的所述寄存器文件中所述多个寄存器中的一个的第一控制信 号、以及请求将所述操作数写入所述选择的所述多个寄存器中的一个 的第二控制信号;以及响应收到的所述操作数、所述第一控制信号、 以及所述第二控制信号,执行预定的操作。
本发明提供一种处理器,包括:多个寄存器;用于执行到多个寄 存器中的一个的写入操作的电路;用于为到所述多个寄存器中的一个 的写入操作提供操作数的导线;以及用于与协处理器通信总线进行通 信的端口,所述端口包括:至少一个第一协处理器通信总线信号端, 用于提供由所述处理器生成的至少一个第一协处理器通信总线信号, 所述至少一个第一协处理器通信总线信号表示在所述写入操作期间 写入多个寄存器中的哪一个;至少一个第二协处理器通信总线信号 端,用于提供由所述处理器生成的至少一个第二协处理器通信总线信 号,所述至少一个第二协处理器通信总线信号表示到所述多个寄存器 中的一个的所述写入操作的发生;以及至少一个第三协处理器通信总 线信号端,用于提供由所述处理器生成的至少一个第三协处理器通信 总线信号,所述至少一个第三协处理器通信总线信号在所述写入操作 期间提供将要写入所述多个寄存器中的一个的所述操作数。
本发明提供一种数据处理系统,包括通过协处理器通信总线耦合 的处理器和协处理器,其中,所述处理器包括:多个寄存器;用于执 行到多个寄存器中的一个的写入操作的电路;用于为到所述多个寄存 器中的一个的写入操作提供操作数的导线;以及用于通过所述协处理 器通信总线与所述协处理器进行通信的处理器端口,所述处理器端口 包括:至少一个第一协处理器通信总线信号端,用于提供由所述处理 器生成的至少一个第一协处理器通信总线信号,所述至少一个第一协 处理器通信总线信号表示在所述写入操作期间写入多个寄存器中的 哪一个;至少一个第二协处理器通信总线信号端,用于提供由所述处 理器生成的至少一个第二协处理器通信总线信号,所述至少一个第二 协处理器通信总线信号表示到所述多个寄存器中的一个的所述写入 操作的发生;以及至少一个第三协处理器通信总线信号端,用于提供 由所述处理器生成的至少一个第三协处理器通信总线信号,所述至少 一个第三协处理器通信总线信号在所述写入操作期间提供将要写入 所述多个寄存器中的一个的所述操作数;并且,其中所述协处理器包 括:用于与所述协处理器通信总线进行通信的协处理器端口,所述协 处理器端口包括:至少一个第四协处理器通信总线信号端,用于接收 由所述处理器生成的所述至少一个第一协处理器通信总线信号,所述 至少一个第一协处理器通信总线信号表示在所述写入操作期间写入 多个寄存器中的哪一个;至少一个第五协处理器通信总线信号端,用 于接收由所述处理器生成的至少一个第二协处理器通信总线信号,所 述至少一个第二协处理器通信总线信号表示到所述多个寄存器中的 一个的所述写入操作的发生;以及至少一个第六协处理器通信总线信 号端,用于接收由所述处理器生成的至少一个第三协处理器通信总线 信号,所述至少一个第三协处理器通信总线信号在所述写入操作期间 提供将要写入所述多个寄存器中的一个的所述操作数。

附图说明

通过下面的详细描述和附图能够更清晰的理解本发明的特点和 益处,其中相同的数字用来表示相同和相对应的部分,其中:
图1是依据本发明的一个数据处理系统的一种实施方式的框图;
图2是图1中处理器的一部分的框图;
图3是图1中协处理器的一部分的一种实施方式的框图;
图4是依据本发明的一个寄存器窥探操作的时序图;
图5是用于指令信号交换的基本指令接口操作的时序图;
图6是在使用H-BUSY*信号控制协处理器接口指令执行时,指 令接口操作的时序图;
图7是指令删除的时序图;
图8是指令流水线停顿的一个例子的时序图;
图9是一个没有停顿的背对背操作的一个例子的时序图;
图10是具有内部流水线停顿的背对背操作的时序图;
图11是具有H-BUSY*停顿的背对背协处理器接口30的时序图;
图12是图解响应协处理器接口操作码的译码和测试操作由一个 协处理器断言的H-EXCP*信号的一个例子的时序图。
图13是图解响应协处理器接口操作码的译码和测试操作当删除 协处理器接口指令时,由一个协处理器断言的H-EXCP*信号的一个例 子的时序图。
图14是图解一个已经断言了H-BUSY*以延迟一个协处理器接口 操作码运行的例子的时序图。
图15是图解与H-CALL原语相关的寄存器传送的一个例子的时 序图。
图16是图解与H-LD原语相关的寄存器传送的一个例子的时序 图。
图17是图解协处理器接口的一个H-LD的传送顺序的时序图。
图18是图解在一个存储器存取造成一个存取异常的时候协议的 时序图。
图19是图解与H-ST原语相关联的传送的一个例子的时序图;
图20是图解延迟的存储数据的传送的一个例子的时序图;
图21是图解在存储造成一个存取错误的时候协议信号的时序 图;
图22图解依据本发明的H-CALL原语的一个指令格式;
图23图解依据本发明的H-RET原语的一个指令格式;
图24图解依据本发明的H-EXEC原语的一个指令格式;
图25图解依据本发明的H-LD原语的一个指令格式;
图26图解依据本发明的H-ST原语的一个指令格式。

具体实施方式

在下面的描述中,采用了大量的具体的细节,例如特定的字或字 节长度,等等,以提供对本发明的一个透彻的理解。然而对本技术领 域中的熟练技术人员来说,可能无须这些特定细节就能够实现本发 明。在另外的例子中,以框图的形式来表示电路,目的是不在不必要 的细节中混淆本发明。对于大部分,已经省略了有关时序的考虑和相 类似的细节,因为对于完整理解本发明这些细节并不是必需的,而且 它们也在相关领域的技术人员的技术范围之内。
术语“总线”用来指多个信号或导线,可以使用它们来传送一个 或多个不同类型的信息,例如数据,地址,控制或状态。术语“断言 (assert)”和“否定(negate)”是用来将一个信号,状态为或相类似设 备的描述相应的引用为它的逻辑真或逻辑假状态。如果逻辑真状态是 一个逻辑电平1,那么逻辑假状态将是一个逻辑电平0。并且如果逻 辑真状态是一个逻辑电平0,那么逻辑假状态将是一个逻辑电平1。
图1是一个图解数据处理系统10的一种实施方式的框图,该数 据处理系统包括一个处理器12,一个协处理器14,一个协处理器16, 一个存储器18,其它模块20和外部总线接口22,它们都是通过总线 28双向耦合的。本发明的可选实施方式可能仅仅包括一个协处理器 14,两个协处理器14和16,或更多的协处理器(没有表示)。外部 总线接口22通过集成电路终端35与外部总线26双向耦合。存储器 24与外部总线26双向耦合。可以选择通过集成电路终端31将处理器 12与数据处理系统10外部耦合。可以选择通过集成电路终端32将协 处理器14与数据处理系统10外部耦合。可以选择通过集成电路终端 32将存储器18与数据处理系统10外部耦合。可以选择通过集成电路 终端34将其它模块20与数据处理系统10外部耦合。通过协处理器接 口30将处理器12与协处理器14和协处理器16双向耦合。
图2是一个图解图1中处理器12的一部分的框图。在一种实施 方式中,处理器12包括控制电路40,指令译码电路42,指令管道44, 寄存器46,算术逻辑单元(ALU)48,锁存多路转换器(MUX)50, 锁存多路转换器(MUX)52,和多路转换器(MUX)54。在本发明 的一种实施方式中,协处理器接口30包括信号60-71。时钟信号是由 控制电路40生成的。协处理器运行信号61是由控制电路40生成的, 并将该信号提供给协处理器14和16。
管理状态信号62是由控制电路40生成的,并将该信号提供给协 处理器14和16。译码信号63是由控制电路40生成的,并将该信号 提供给协处理器14和16。协处理器忙信号64是由控制电路40从协 处理器14或16中接收到的。执行信号65是由控制电路40生成的, 并将该信号提供给协处理器14和16。异常信号66是由控制电路40 从协处理器14或协处理器16中接收到的。寄存器写(REGWR*)信 号67是由控制电路40生成的,并将该信号提供给协处理器14和16。 寄存器信号(REG{4:0})68是由控制电路40生成的,并将该信号 提供给协处理器14和16。出错信号(H-ERR*)69是由控制电路40 生成的,并将该信号提供给协处理器14和16。数据选通信号(H-DS*) 70是由控制电路40生成的,并将该信号提供给协处理器14和16。数 据确认信号(H-DA*)是由控制电路40从协处理器14或协处理器16 中接收到的。硬件数据端口信号(HDP{31:0})72也被认为是协处 理器接口30的一部分,在协处理器14和16与处理器12的内部电路 之间它们是双向的。
在本发明的一种实施方式中,从/或向总线28提供多个信号,目 的是在存储器18和/或存储器24中加载或存储数据。在一种实施方式 中,这些信号包括一个传输请求信号(TREQ*)73,它是由控制电路 40生成的并将该信号提供给总线28。通过总线28将传输出错确认信 号(TEA*)74提供给控制电路40。通过总线28将传输确认信号(TA*) 75提供给控制电路40。从总线28通过导线76将指令提供给指令管道 44。通过导线76将数据提供给MUX54。驱动数据信号79能够使三态 缓冲器95通过导线88和76提供来自锁存MUX52的数据。地址选择 信号78使锁存MUX50能够通过导线77向总线28提供地址。MUX50 的另外一个输入是由HDP信号(HDP{31:0})72提供的。MUX54 的另外一个输入是通过ALU结果导线86提供的。将MUX54的输出, 结果信号83提供给寄存器46和三态缓冲器96的输入。驱动HDP信 号82能够使三态缓冲器96在HDP信号72之上驱动结果信号83。三 态缓冲器96的输出也与锁存MUX52的输入相耦合。在本发明的可选 实施方式中,寄存器46中可能包括任何数量的寄存器。提供结果信 号83,作为锁存MUX50的一个输入。通过MUX54将结果信号83提 供给寄存器46。结果选择信号(RESULT-SELECT)81选择在结果导 线83之上驱动MUX54的哪一个输入。将源选择信号 (SOURCE-SELECT)80提供给锁存MUX52,以选择在导线88上将 哪一个信号驱动到三态缓冲器95。控制电路40提供控制信息,并通 过导线91从寄存器46接收状态信息。控制电路40提供控制信号,并 通过导线92从算术逻辑单元48接收状态信号。控制电路40提供控制 信号并通过导线93从指令管道44和指令译码电路42接收状态信号。 耦合指令管道44以通过导线89向指令译码电路42提供指令。指令译 码电路42通过导线90向控制电路40提供译码后的指令信息。寄存器 46通过导线84向算术逻辑单元48提供源操作数。寄存器46通过导 线84,锁存MUX52,三态缓冲器95和导线76提供数据,将该数据 存储在存储器18或存储器24中。寄存器46通过导线84,锁存MUX50, 和地址导线77向存储器18或存储器24提供地址信息。寄存器46通 过导线85向算术逻辑单元48提供一个第二源操作数。
图3是一个图解协处理器14的一部分的一种实施方式的框图。 在一种实施方式中,协处理器14包括控制电路100,计算电路102, 和可选的存储电路104。控制电路100通过协处理器接口30与处理器 12双向耦合,其中协处理器接口30包括信号60-72。在本发明的一种 实施方式中,控制电路100包括译码电路106,该译码电路106从处 理器12接收运行信号61和译码信号63。控制电路100提供控制信息, 并通过导线108从可选的存储电路104中接收状态信息。控制电路100 提供控制信息,并通过导线109从计算电路102中接收状态信息。计 算电路102和可选的存储电路104通过导线110双向耦合。向或从总 线28或集成的电路终端32提供一个或多个信号110。控制电路100 通过导线112从或向总线28或集成的电路终端32接收或提供信息。 信号72可以与计算电路102和可选的存储电路104双向耦合。此外, 信号72可以与总线28或集成的电路终端32双向耦合。在本发明的一 种可选实施方式中,可能并没有实现的可选的存储电路104。在本发 明的一种实现了可选的存储电路104的实施方式中,这可以是使用寄 存器,任何类型的存储器,包括锁存或可编程的逻辑阵列等等的任何 类型的存储电路来实现。在本发明的可选实施方式中,计算电路102 可以执行任何类型的逻辑或计算功能。
该系统通过一个外协处理器14(或硬件加速器)提供对任务加速 的支持,对于与特定应用相关的操作将外协处理器14(或硬件加速器) 最优化。对于执行一个人口数计算,或更复杂的功能例如一个DSP加 速协处理器14或能够进行高速乘/累加操作的协处理器14,这些外协 处理器14,16可能就象一个协处理器14那么简单。
对于一个特定实现,由若干个机制中的一个或几个,在处理器 12和协处理器14之间传送数据。这可被分为向协处理器14的传送, 和从协处理器14的传送。
向协处理器14传送数据的的机制中的一个是寄存器窥探机制, 它不涉及指令原语,但却是正常的处理器12操作的副产品。这包括 在接口中反映对于处理器的12个通用寄存器(“GPR”)46的更新, 这样一个协处理器14能够监视对一个或多个处理器12寄存器的更 新。对于一个内部寄存器或功能,如果一个协处理器14“覆盖”了一 个GPR46,那么这可能是适合的。在这种情况下,不要求从处理器 12向一个协处理器14显式的传递参数。
也在基处理器12中提供指令原语以在外协处理器14,16和处理 器12之间显式传送操作数和指令。此外还提供了一个信号交换机制, 以允许控制指令和数据传送的速率。
注意到协处理器14的功能被设计为是特定实现的单元,这样在 不同的实现中,可以自由改变一个给定单元的精确功能,即使可能存 在相同的指令映射。
图4是一个图解一个寄存器窥探操作的时序图。为了避免向协处 理器14或外监视器额外的传递参数,提供了一个寄存器窥探机制。 这允许一个协处理器14实现处理器的12个通用寄存器46中的一个或 多个的阴影拷贝(shadow copy)。这个能力是通过传送被写入到处理 器GPR46中的值,和一个指示对于每一个GPR寄存器46也正被更 新的指示值来实现的。对于每一个GPR更新,断言一个选通信号 REGWR*67。在32位的双向数据路径HDP[31:0]72中传送该值,并 且一个5位的寄存器数字总线提供了一个指向正在被更新的(REG[4: 0])68的实际的处理器寄存器46的指针。在一个正常的文件或一个 可选的文件中寄存器编码可能是一个寄存器46。在优选的实施方式 中,通过REG[4]==1来指示可选的文件寄存器,由REG[4]==0来指 示正常的文件寄存器。但是,要注意本发明不以任何方式依赖于寄存 器组实际的分区。
一个协处理器14可能在内部将该值与一个目的寄存器46序号的 指示一起锁存,以避免后面的显式移动。也可能由一个调试协处理器 14来使用这个功能,以跟踪寄存器46或它的一个子集的状态。
一个专用的12位指令总线(H-OP[11:0])61提供被发布给外 协处理器14的协处理器接口30操作码。这条总线反映了该处理器的 操作码的低位的12位。没有反映高位的4位,因为它们总是Ob0100。 也提供了一个管理状态指示器(H-SUP)62来指示PSR(S)位的当 前状态,指示处理器是运行在管理状态还是用户状态。这对于将某一 协处理器功能限定到管理状态是有用的。使用处理器12和外协处理 器14,16之间信号交换的一个集合来协调协处理器接口30指令的执 行。
由处理器12生成的控制信号是处理器12内部流水线结构的一个 反映。处理器流水线44包括取指令,指令译码42,执行,和结果写 回阶段。它包括一个或多个指令寄存器(IR)。处理器12也包括一 个指令预取缓冲器以允许在译码阶段42之前缓冲一条指令。通过进 入指令译码寄存器IR,指令从这个缓冲器继续到指令译码阶段42。
指令译码器42从IR接收输入,并且在IR中所保存的值的基础 上生成输出。这些译码42输出不总是有效的,有可能要依据指令流 中的异常条件或变化删除某些输出。即使在有效时,也可能在IR中 保存指令,直到它们能够继续进行到指令流水线中的执行阶段。由于 这个只有在已经完成了前面的指令时才能发生(这可采取多时钟), 译码器将继续译码IR中所包括的值,直到IR被更新。
图5是一个图解用于指令信号交换的基本指令接口操作的时序 图。提供一个指令译码选通(H-DEC*)信号63,以由处理器12来指 示协处理器接口30操作码的译码。当一个协处理器接口30操作码驻 留在IR中时,将断言这个信号,即使可能并不执行该指令而将其删 除。对于多时钟,同一指令,可能保持对H-DEC*63信号的断言,直 到实际发布或删除该指令。
由处理器12来监测一个忙信号(H-BUSY*)64,以确定一个外 协处理器14是否能够接收协处理器接口30指令,并且部分控制指令 的发布何时发生。如果H-BUSY*64信号被否定,而断言了H-DEC*63, 接口将不能停顿指令的执行,并且一旦继续执行指令就能够断言 H-EXEC*65。在处理器12译码一个协处理器接口30操作码的时候(由 H-DEC*63的断言来指示),如果断言了信号H-BUSY*64,那么将强 迫执行延迟的协处理器接口30操作码。一旦H-BUSY*64信号被否定, 处理器12能够通过断言H-EXEC*65来发布指令。如果协处理器14 能够缓冲指令,H-BUSY*64信号就能够被用来填充缓冲器。
图6是一个图解当使用H-BUSY*64控制协处理器接口30指令执 行的时候指令接口操作的时序图。一旦已经分解了任何内部停顿条 件,并已经否定了H-BUSY*64信号,处理器能够断言H-EXEC*65 以指示协处理器接口30指令已经进入了流水线的执行阶段。一个外 协处理器14应该监视H-EXEC*65信号以控制指令的实际执行,因为 对于处理器有可能在某种条件下执行之前就删除了该指令。如果一个 较早的指令执行导致了一个异常,那么将不会断言H-EXEC*65信号, 并且将否定H-DEC*63输出。如果在IR中将该指令删除,作为程序 流中一个改变的结果,那么有可能进行一个相似的处理。
图7是一个图解指令删除的时序图。如果删除了一条指令,那么 在将另一个协处理器接口30操作码放在H-OP[11:0]61总线上之前, 否定H-DEC*63信号。
图8是一个图解指令流水线停顿的一个例子的时序图。会存在这 样的情况,即便断言了H-DEC*63并否定了H-BUSY*64,处理器12 也可能延迟H-EXEC*65的断言。在等待完成一条较早的指令的时候, 可能会发生这种情况。
图9是一个图解没有停顿的背对背操作的一个例子的时序图。对 于背对背协处理器接口30指令,能够保持对H-DEC*63信号的断言, 而不是将其否定,即使在新指令进入IR时更新了H-OP[11:0]61总 线。总之,H-EXEC*65的断言对应于在前一个时钟被译码的指令的执 行。
图10是一个图解具有内部流水线停顿的背对背操作的时序图。 在这种情况下,否定了H-BUSY*64,但是,直到内部停顿条件消失, 处理器才为第二个协处理器接口30指令断言H-EXEC*65。
图11是一个图解具有H-BUSY*64停顿的背对背协处理器接口 30指令的时序图。在这个例子中,外协处理器14为忙,不能立即接 收第二条指令。断言H-BUSY*64以阻止处理器12发布第二条指令。 一旦协处理器14空闲,则否定H-BUSY*64,并且将下一个第二个协 处理器接口30指令提前到执行阶段。
与译码协处理器接口30操作码相关的异常可能是由外协处理器 14使用H-EXEC*66信号进行通知的。在断言H-DEC*63并否定 H-BUSY*64的时钟周期中,采样处理器12的这个输入,并且如果没 有象以前描述的那样删除协处理器接口30操作码,将会引起一个硬 件协处理器14异常的异常处理。下面将会描述这个异常处理的细节。
图12是一个图解H-EXCP*66信号的一个例子的时序图,该信号 是由协处理器14断言的以响应协处理器接口30操作码的译码和测试 操作。在断言H-DEC*63并否定H-BUSY*64的时钟中,处理器12采 样H-EXCP*66信号。断言H-EXEC*65信号,无论是否由该接口以信 号形式通知一个异常;这个断言将异常时所采取的情况与指令删除情 况区别开。
应注意到该异常对应于在前一个时钟周期被译码的指令,并且不 应该采取实际的执行。一个协处理器14必须在它所能识别的处理器 流水线的执行阶段之前接收一条不好的指令并且发出一个异常信号。 对于所有否定H-DEC*63或断言H-BUSY*64的时钟周期,都忽略 H-EXCP*66信号。
图13是一个图解H-EXCP*66信号的一个例子的时序图,该信号 是由协处理器14所断言的以响应协处理器接口30操作码的解码和测 试操作。对比这个与图14中的时序图,在这个例子中,删除了协处 理器接口30指令,这样就没有断言H-EXEC*65信号,并且否定了 H-DEC*63。
图14是一个图解一个例子的时序图,在该例子中已经断言了 H-BUSY*64以延迟一个将会引起一个异常的协处理器接口30操作码 的执行
所有的协处理器14,16都能共享H-BUSY*64和H-EXCP*66信 号,这样就必须以一种协调的方式来驱动它们。应该由对应于 H-OP[11:10]61的协处理器14,16在确定H-DEC*63的时钟周期来 驱动这些信号(或高或低,无论哪一个都适合)。通过只在时钟的低 部分驱动输出,多个协处理器14,16可以无争用的共享这些信号。在 这个输入上提供处理器12内部的一个保持锁存,对于时钟的高阶段 将它保持在一个有效的状态,同时没有单元在驱动它。
协处理器接口30指令原语中的一些也隐含着在处理器12和外协 处理器14之间传送数据项。可以在协处理器接口30中传送操作码, 作为被执行的特定原语的一个函数。在一个32位双向数据通路之中, 提供向或是从协处理器14传送处理器12个GPR中的一个或多个。 此外,也提供从/向具有数据汇/源,即协处理器接口30的存储器18 加载或存储一个信号数据项。处理器12将通过HDP[31:0]72总线在 CLK60的高部分将参数传送到外协处理器14,并且由处理器12在时 钟的低阶段从协处理器接收操作码,并将其锁定。在驱动发生之前提 供一个延迟做为时钟转移,以允许总线跨区转接的一个小的阶段。一 个协处理器14接口必须在时钟的下降沿提供相同的小的延迟。由数 据选通(H-DS*70)输出,数据确认(H-DA*71)输入和数据出错 (H-ERR*69)输出信号来支持数据项的信号交换。
处理器12提供向协处理器接口30传送一个调用或返回参数表的 能力,这与调用或返回软件例程的方式相同。在H-CALL或H-RET 原语中指示变元的数量,以控制所通过的参数的数量。以处理器12 寄存器R4的内容开始的寄存器值被传送到(出)外协处理器14,作 为H-CALL(H-RET)原语的操作的一部分,总共可能通过七个寄存 器参数。这个约定与软件例程调用的约定相类似。
操作数传输的信号交换由数据选通(H-DS*70)输出和数据确认 (H-DA*71)输入信号控制。在传输期间处理器12断言数据选通,并 且以一种覆盖的方式进行传输,这与处理器12接口操作相同。数据 确认(H-DA*)71用来指示一个协处理器14已经接受或驱动了一个 数据单元。
图15是一个图解与H-CALL原语相关的寄存器46传输的一个例 子的时序图。提供指令原语以传输多处理器寄存器,并且在理想的情 况下,在每个时钟都能进行传输。对于向一个外协处理器14的传输, 处理器自动在确认当前项之前(或同时)开始驱动下一个操作数(如 果需要的话)。外部逻辑必须具有一级缓冲的能力以确保数据不会丢 失。这张图表示了向协处理器接口30的H-CALL传输的顺序,其中 传送了两个寄存器。根据一个否定的数据确认(H-DA*)71,重复第 二次传输。
对于从一个外协处理器14向处理器寄存器46的传输,处理器12 能够在已经断言了H-DS*70之后,在每个时钟周期中都从一个外协处 理器14中接受值,并且按接收时的情况将这些值写入寄存器文件46, 因此不需要缓冲。
图16是一个图解与H-RET原语相关的寄存器46传输的一个例 子的时序图。在这个例子中,传输两个寄存器46值。协处理器14可 以在断言H-EXEC*65信号之后的时钟的开始处驱动数据,因为这是 第一次断言H-DS*70时的时钟。H-DS*70输出随CLK60的上升沿转 换,而在时钟CLK60的低阶段采样H-DA*71输入。
处理器12提供了使用H-LD或H-ST指令原语向或从协处理器接 口30传输一个单存储器操作数的功能。
H-LD原语被用来从存储器18向一个协处理器14传输数据。向 协处理器14的操作数传输的信号交换是由数据选通信号(H-DS*)70 信号控制的。由处理器12来断言数据选通,以指示已经将一个有效 操作数放在了HDP[31:0]72总线上。对于这一传输,忽略了数据确 认(H-DA*)71输入。
图17是一个图解向协处理器接口30的H-LD传输的顺序的时序 图。在这种情况中,存在一个立即状态的存储器18存取。对于n个 等待状态的存储器18存取,将在n个时钟之后驱动操作数和H-DS*70。 如果选择用加载的有效地址更新基寄存器46的选项,则在计算之后 的第一个时钟中(H-EXEC*65确认之后的时钟),在HDP[31:0]72 上驱动更新值。
图18是一个图解当一个存储器18存取导致一个存取异常时协议 的时序图。在这种情况中,断言H-ERR*69信号返回给外协处理器14。
H-ST原语能够被用来从一个协处理器14向存储器18传输数据。 如果选择了用存储的有效地址更新基寄存器46的选项,则在被计算 之后的第一个时钟(紧接在H-EXEC*65之后的时钟),在HDP[31: 0]72上驱动更新值。
图19是一个图解与H-ST原语相关的传输的一个例子的时序图。 与H-ST原语相关的信号交换由两部分组成,一个是来自协处理器14 的初始信号交换,它必须提供要存储的数据,另一个是一旦完成存储 器18的存储,来自处理器12的一个完成信号交换。
初始信号交换使用向处理器12的H-DA*71输入来表明协处理器 14已经向处理器12驱动了存储数据。在与协处理器14将数据驱动到 HDP[31:0]72总线上的相同的时钟中,断言H-DA*71信号。在总线 的下半部分取出存储数据,用于进行半个字长的存储,而不将高区的 16位写入到存储器18中。在断言H-EXEC*65信号的时钟的开始处采 样H-DA*71信号。在识别出H-DA*71的时钟中,请求存储周期,并 且在下一个时钟将存储数据驱动到存储器18。一旦完成了该存储,处 理器12将断言H-DS*70信号。
图20是一个图解具有延迟存储数据的传输的一个例子的时序 图。
图21是一个图解当存储导致一个存取错误时的协议信号的时序 图。应注意断言了H-ERR*69信号。如果硬件单元是通过在断言 H-EXCP*65的时钟中断言H-EXCP*66,来异常终止指令,则不应该 断言H-DA*71信号。
图22到26是图解做为指令集的一部分所提供的指令,以接口一 个硬件加速器(或协处理器)14。处理器12解释原语中字段的一部分, 其它字段则由协处理器14单独解释。
图22图解用于H-CALL原语的一个指令格式。这一指令用来调 用由协处理器14执行的一个函数。该范例与一个标准的软件调用约 定相类似,但是是以一种硬件的前后关系出现的。H-CALL原语是由 处理器12和协处理器14共同解释的,以传输一个来自处理器12的“调 用参数”或变元表,并且在协处理器14中初始化一个特定函数。
指令字的UU和CODE字段不是由处理器12解释的,它们被用 来指定一个协处理器14特定功能。UU字段可以指定一个特定的协处 理器14,16,CODE字段可以指定一个特殊操作。CNT字段是由处 理器12和协处理器14一起解释,并指定传送到协处理器14的寄存器 变元的数目。
从通用寄存器46传送变元,从R4开始并且继续通过R (4+CNT-1)。在一个单独的H-CALL调用中可以通过多达七个参数 或寄存器46。
H-CALL指令能够被用来实现模块功能块的调用。人们早就知道 这种类型接口的使用会使软件系统具有更高的可靠性和较少的错误。 通常最好由值来传递函数参数。这样会显著地降低副作用。在许多情 况下,分程序结构语言的现代编译器,例如C和C++,在寄存器46 中向调用函数或子例程传送参数或变元的短序列。这种技术可以由 H-CALL指令来实现。可以将一个编译器配置成向以R4开始的累次 寄存器46加载多达七个参数或变元,接着生成H-CALL指令,该指 令替代了生成子例程连接指令的标准编译器。
图23图解用于H-RET原语的一个指令格式。这一指令被用来从 一个由协处理器14所实现的函数“返回”。该范例与处理器12使用 的软件调用约定相类似,但是以硬件的前后关系出现的。该H-RET 原语由处理器12和协处理器14共同解释,以从一个协处理器14向处 理器12传输一个“返回参数”或值的列表。
指令字的UU和CODE字段不是由处理器12解释的,它们被用 来指定一个协处理器14特定功能。UU字段可以指定一个硬件单元, CODE字段可以指定协处理器14中寄存器46的一个特殊操作或集合 以返回。CNT字段是由处理器12和协处理器14一起解释的,并且指 定从协处理器14向处理器12传送的寄存器46变元的数目。
变元被传递到处理器12通用寄存器46,以R4开始,并继续通 过R(4+CNT-1)。可以返回多达七个参数(或寄存器内容)。
至于H-CALL指令,H-RET指令也可以被用来实现模块化编程。 结构化编程要求最好通过值将函数返回值返回到一个调用例程。对于 一个子例程或函数返回,这经常可以由编译器在寄存器中放置一个 或多个返回值来高效地完成。应该注意到传统的结构化编程希望在调 用子例程或函数之后能立即返回。在使用协处理器14的情况下,执 行通常与调用引用处理器12的执行相同步。H-RET指令可以被用来 使处理器12和协处理器14重新同步。这样,处理器12可以加载一个 或多个寄存器46,用一个或多个H-CALL指令激活协处理器14,执 行不相关指令,并且接下来通过发布H-RET指令,在从一个协处理 器14接收一个结果值或多个值时,与协处理器14重新同步。
图24图解用于H-EXEC原语的一个指令格式。这一指令被用来 初始化一个函数或进入一个由加速器实现的运行方式。H-EXEC指令 可以被用来控制在一个特定协处理器14,16中由一个UU字段指定的 一个函数。代码字段不是由处理器12解释的,但是为指定的协处理 器14,16所保留。指令字的UU和CODE字段不是由处理器12解释 的,它们被用来指定一个协处理器14的特定函数。UU字段可以指定 一个特定协处理器14,16,CODE字段可以指定一个特殊操作。
图25图解用于H-LD指令的一个指令格式。使用这一指令来从 存储器18向一个协处理器14传送一个值,传递过程中没有在一个通 用寄存器(GPR)46中临时存储存储器操作数。使用一个基指针和一 个偏移来寻址该存储器操作数。
H-LD指令执行在存储器18中加载一个值的操作,并且向协处理 器14传送存储器操作数,而不是将其存储在一个寄存器46中。H-LD 操作有三个选项,w—字,H—半字以及u—更新。通过加载的大小以 及零延伸来换算IMM2字段,以来获取Disp。将这个值加到寄存器 RX的值上,并且从这个地址执行一个指定大小的加载,将加载的结 果传送到硬件接口28。对于半字加载,所取的数据是从零延伸到32 位。如果指定u选项,则在计算之后,将加载的有效地址放入寄存器 RX46中。
指令字的UU字段不是由处理器12解释的,这个字段可以指定 一个特定协处理器14,16。Sz字段指定操作数的大小(只限于半字或 字)。Disp字段指定一个要加到由Rbase字段所指定的寄存器中内容 的无符号偏移值,以形成加载的有效地址。Disp字段的值是通过要传 输的操作数的大小来换算的。Up字段指定在计算之后是否要用加载 的有效地址来更新Rbase寄存器46。这个选项允许一个“自动更新” 寻址模式。
图26图解用于H-ST指令的一个指令格式。这个指令被用来从 一个协处理器14向存储器18传送一个值,而不在处理器12寄存器 46中临时存储该存储器操作数。使用一个基指针和一个偏移来寻址该 存储器操作数。
指令字的UU字段不是由处理器12解释的。但这个字段可以指 定一个特定的协处理器14,16。Sz字段指定操作数的大小(只限于半 字或字)。Disp字段指定一个要加到由Rbase字段所指定的寄存器46 中内容的无符号偏移值,以形成要存储的有效地址。通过要传输的操 作数的大小来换算Disp字段的值。Up字段指定在计算之后,是否要 用有效地址来更新Rbase寄存器46。这个选项允许一个“自动更新” 寻址模式。
H-ST指令执行从一个协处理器14向存储器18中存储一个操作 数,而不在寄存器46中存储该操作数。H-ST操作有三个选项,w— 字,H—半字以及u—更新。通过存储的大小以及零延伸来换算IMM2 字段以获取Disp。这个值被加到寄存器RX的值上,并且用从硬件接 口获得的用于存储的数据对这个地址进行一个指定大小的存储。如果 指定u选项,则在计算之后将所加载的有效地址,放入寄存器RX中。
H-LD指令和H-ST指令提供了一种从存储器18向一个协处理器 14以及从一个协处理器14向存储器18移动操作数,而不是通过寄存 器46进行数据移动的有效机制。偏移和索引设备提供了一种通过阵 列进行步进的有效机制。这样,这些指令在循环中非常有用。应该注 意对于操作数的每次加载或存储,两条指令都使处理器12与协处理 器14相同步。如果这并不是必须的或者是优选的,则可以选择通过 重复向一个指定寄存器或多个寄存器46加载来自存储器18的数据, 来将数据注入到协处理器14中,并且由于协处理器接口总线30也被 用于寄存器窥探,所以也可以让协处理器14检测这些加载。
熟悉本技术的人员会发现可以在不脱离本发明精神的情况下进 行修改和变化。因此,本发明包含了所附权利要求书范围内的所有变 化和修改。
本发明申请为1998年9月4日提出的、发明名称为“将一个处 理器与一个协处理器相接口的方法和装置”的第98118581.9号的分案 申请。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用