非阻塞协处理器接口方法和系统的制作方法

文档序号:6364548阅读:163来源:国知局
专利名称:非阻塞协处理器接口方法和系统的制作方法
技术领域
本发明提出了一种协处理器接口方法和系统,特别是一种非阻塞式的协处理器接口方法和系统。
背景技术
在基于微处理器的系统中,协处理器通常用于协助主处理器完成特定操作,对提高系统的工作性能起到重要作用。而协处理器与主处理器之间的接口方式,决定了主处理器和协处理器之间的通信延迟,数据通量等性能,同时也是系统整体性能的瓶颈之一。现有的协处理器接口主要包括阻塞式协处理器同步接口和寄存器触发式协处理器异步接口。阻塞式协处理器同步接口的原理是,当需要应用协处理器时,主处理器向协处理器发出启动指令,协处理器根据该指令进行操作,在协处理器操作期间,主处理器的指令流水线停止工作并等待协处理器的操作结果,协处理器完成操作之后向主处理器返回操作结果,此后主处理器继续进行后续操作。ARM的浮点协处理器接口就是典型的阻塞式协处理器同步接口。这种接口的优点在于使得主处理器和协处理器硬件交换信息效率较高。但是,由于这种接口采用了“阻塞方式”,即主处理器和协处理器处于同一线程,在协处理器指令尚未完全结束之前主处理器需停止工作并等待,因此影响了主处理器的运行效率。寄存器触发式协处理器异步接口的原理是,主处理器将协处理器的启动指令映射至外部寄存器,协处理器读取外部寄存器中的指令并进行操作,在协处理器操作期间主处理器继续工作,协处理器完成操作之后,将结果返回外部寄存器,主处理器通过读取外部寄存器来获得该结果。芯片设计者自行设计的专用接口多采用这种异步接口方式。这种接口的优点是使得协处理器和主处理器在不同的进程中工作,主处理器不再等待协处理器,并且这种接口能够支持多个协处理器并行运行,从而提高了系统性能。然而,这种接口的缺点在于依赖于外部寄存器的读写,而外部寄存器读写访问通常延迟大,通量低,对寄存器的访问通常需要几十甚至上百个时钟周期,每次通常只能访问16位或32位。并且对寄存器的访问本身是“阻塞式”的,也就是说,在访问寄存器期间,主处理器和协处理器都停止工作,这使得寄存器的访问速度和通量成为了主处理器和协处理器之间通信的瓶颈,因此这种接口不适合主处理器和协处理器之间有较多交流的应用场合。

发明内容
本发明的目的在于提出一种非阻塞协处理器接口方法和系统,来克服现有的协处理器接口的上述问题。本发明的协处理器接口方法和系统既具有高效率信息交换能力,同时也具有多线程能力和高度并行的优点。根据本发明的一个方面,提出了一种非阻塞协处理器接口方法,其特征在于,该方法包括以下步骤:
由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;协处理器根据所述操作参数执行操作;协处理器在操作完成后将操作结果存储在协处理器内部寄存器中;当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;主处理器读取该外部寄存器中的操作结果。优选地,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。优选地,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。优选地,每个协处理器只处理 最近一次收到的调用指令。优选地,协处理器通过极宽总线同时对多个寄存器进行读写。根据本发明的另一方面,提出了一种非阻塞协处理器接口系统,其特征在于,该系统包括:主处理器,其输出端连接至少一个参数寄存器及至少一个协处理器,该主处理器向协处理器发送调用指令,并且在发送完成后继续执行后续指令,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令;至少一个参数寄存器,每个参数寄存器的输入端分别连接至主处理器和数据总线,每个参数寄存器的输出端连接至协处理器,所述参数寄存器根据主处理器发出的调用指令从所述数据总线读取操作参数以提供给协处理器,并根据主处理器发出的返回指令从所述数据总线读取返回参数以提供给协处理器;至少一个协处理器,根据所述操作参数执行操作,所述协处理器包括内部寄存器,协处理器在操作完成后将操作结果存储在所述内部寄存器中;外部寄存器,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入该外部寄存器;主处理器读取该外部寄存器中的操作结果。优选地,该系统还包括支持多个单位宽度的寄存器读写的极宽总线;以及在至少一个参数寄存器中包含与该极宽总线相关联的专用寄存器,该专用寄存器根据调用指令或返回指令,同时对多个单位宽度的寄存器进行读取。优选地,该系统还可包括配置寄存器,用于存储协处理器的静态配置信息。优选地,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。本发明的非阻塞协处理器接口方法和系统支持多个协处理器及多个硬件加速器之间的乱序访问,具有极高的灵活性。本发明的非阻塞协处理器接口方法和系统能够支持极宽总线,数据通量大大增加。本发明的非阻塞协处理器接口能够与传统的阻塞式协处理器同步接口兼容。


图1是根据本发明的一个实施例的一种非阻塞协处理器接口方法的流程图;图2是根据本发明的一个实施例的非阻塞协处理器接口系统的框图;图3是根据本发明的另一个实施例的非阻塞协处理器接口系统的框图;图4描述了根据本发明的非阻塞式协处理器接口系统的一个具体实施例。
具体实施例方式本发明的非阻塞协处理器接口方法的基本原理是:-由主处理器向协处理器发出调用指令;-调用指令发出后即结束,主处理器继续执行后续指令;-协处理器根据调用指令完成操作并产生结果;-当主处理器需要使用该结果时,由主处理器向协处理器发出返回指令以收取结果O应用本发明所述的方法,主处理器和协处理器之间的通信不需要经过外部寄存器,因此具有如协处理同步接口那样的信息交换能力,同时主处理器和协处理器处于不同进程,因此具有协处理器异步接口那样的多线程并行工作能力。图1是根据本发明的一个实施例的一种非阻塞协处理器接口方法的流程图,该方法主要包括以下步骤:S101,由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指·令获得协处理器的操作参数;S102,协处理器根据所述操作参数执行操作;S103,协处理器在操作完成后将操作结果存储在协处理器的内部寄存器中;S104,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;S105,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;S106,主处理器读取该外部寄存器中的操作结果。其中,协处理器的操作参数可包括协处理器待完成的操作命令,操作数据等信息,返回参数可包括返回地址等信息。该方法可支持主处理器对多个协处理器的调用,并可通过协处理器ID来区分各个协处理器,协处理器ID是每个协处理器的唯一识别信息,可包含在调用指令和返回指令中。由于各个协处理器以及主处理器都具有独立的线程,因此可以实现各个协处理器之间的乱序访问,使得系统灵活性增大。在本发明的一个变型中,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。在这一变型中,协处理器保留每次调用指令所产生的操作结果,以供主处理器通过返回指令获取这些操作结果。在本发明的另一个变形中,每个协处理器只处理最近一次收到的调用指令,并只有对应于该最后一次收到的调用指令的返回结果有效,之前的调用指令的操作结果如未先期被主处理器读取则被放弃。举例来说,如果主处理器发出要求协处理器A执行操作I的调用指令,在未读取操作I的结果时主处理器又发出要求协处理A执行操作2的调用指令,则操作I的操作结果被放弃,仅保存操作2的操作结果供主处理器读取。这种模式特别适用于主处理器执行预判断指令的情景,即操作I是主处理器根据概率预先判断的操作,而操作2才是实际要执行的操作,当实际要执行的操作2与预先判断的操作I不同时,则协处理器放弃操作I的结果仅保留操作2的结果。在本发明的另一变形中,主处理器可以省略发送调用指令的步骤,而直接发送返回指令,并将协处理器的操作参数包含在返回指令中,协处理器接收到返回指令之后,直接执行操作并返回结果,在协处理器执行操作期间,主处理器停止工作,等待协处理器完成操作并返回结果,这种工作模式实现了本发明的协处理器接口与传统的阻塞式协处理器同步接口之间的兼容。在本发明的一个实施例中,协处理器可同时对多个寄存器进行读写。也就是说,不同于传统的每次只能读写一个单位宽度(例如16位或32位)的寄存器数据,在根据本发明的方法中,协处理器可以同时读写多个单位宽度的寄存器数据,例如同时读写4个16位寄存器以访问64位数据、或读写8个16位寄存器以访问128位数据,使得协处理器能够支持极宽且延迟极低的总线,从而大大提高了信息交换能力。在一个实施例中,可通过常规的数据总线为协处理器提供一个单位宽度的数据,并通过极宽数据总线为协处理器提供多个单位宽度的数据,从而提高协处理器的处理能力。在一个示例中,可以通过调用或返回指令中的一个字段来指示协处理器需要同时读写多少个单位宽度的寄存器。图2是根据本发明的一个实施例的非阻塞协处理器接口系统的框图。其中,该接口系统主要包括:主处理器201,其输出端连接至少一个参数寄存器202及至少一个协处理器203,该主处理器201向协处理器203发送调用指令,并且在发送完成后继续执行后续指令,当主处理器201需要协处理器203的操作结果时,由主处理器201向协处理器203发出返回指令;至少一个参数寄存器202,每个参数寄存器202的输入端分别连接至主处理器201和数据总线205,每个参数寄存器202的输出端`连接至协处理器203,所述参数寄存器202根据主处理器201发出的调用指令从所述数据总线205读取操作参数以提供给协处理器203,并根据主处理器201发出的返回指令从所述数据总线205读取返回参数以提供给协处理器203 ;至少一个协处理器203,根据所述操作参数执行操作,所述协处理器203包括内部寄存器2031,协处理器203在操作完成后将操作结果存储在所述内部寄存器2031中;外部寄存器204,协处理器203根据所述返回参数将协处理器203的内部寄存器2031中存储的操作结果写入该外部寄存器204 ;主处理器201读取该外部寄存器204中的操作结果。在如图3所示的另一个实施例中,该系统还包括支持多个单位宽度的寄存器读写的极宽总线2051,在至少一个参数寄存器202中包含与该极宽总线2051相关联的参数寄存器2021,或称为专用寄存器,该专用寄存器可根据调用指令或返回指令,同时对多个单位宽度的寄存器进行读取,例如同时读取64位或128位,作为协处理器203的输入,从而极大地提高了协处理器203的工作效率。在另一个实施例中,该系统还可包括配置寄存器,用于存储协处理器的静态配置信息,该静态配置信息可由用户定义。图4描述了根据本发明的非阻塞式协处理器接口系统的一个具体实施例。其中,该系统包括主处理器MP、协处理器C0P、参数寄存器UTP、VTP和XTP、协处理器输出寄存器XWB、外部寄存器RF和配置寄存器COPRF。其中,由主处理器MP发出调用指令,该调用指令指明了要调用的协处理器ID,与该ID相对应的协处理器被激活,即本示例中的协处理器C0P,根据该调用指令,参数寄存器VTP和XTP分别读取了协处理器COP的操作命令(在该示例中为16位)和协处理器COP的操作数(在该示例中为128位),协处理器COP根据参数寄存器VTP和XTP的数据进行操作,并将操作结果保存在协处理器COP的内部寄存器IRF中。当主处理器MP发送返回指令时,该返回指令指明了要调用的协处理器ID,即本示例中的协处理器C0P,根据该返回指令,参数寄存器UTP读取返回参数,协处理器COP根据该返回参数,利用输出寄存器XWB读取内部寄存器IRF中的操作结果并输出到外部寄存器RF,主处理器MP在外部寄存器RF中读取该操作结果。应注意的是,以上示例仅仅为本发明的一个示例性实施例,而并非限制本发明,其中参数寄存器的数量不限于三个,参数寄存器的位数以及各个参数寄存器读取的参数类别可根据实际需要调整,也可由协处理器自行定义。协处理器的数量可为多个,并通过协处理器ID来识别各个协处理器。上述实施例是用于例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修改。因此本发明的保护范围,应如 本发明的权利要求书所列。
权利要求
1.一种非阻塞协处理器接口方法,其特征在于,该方法包括以下步骤: 由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数; 协处理器根据所述操作参数执行操作; 协处理器在操作完成后将操作结果存储在协处理器内部寄存器中; 当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数; 协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器; 主处理器读取该外部寄存器中的操作结果。
2.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
3.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。
4.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,每个协处理器只处理最近一次收到的调用指令。
5.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,协处理器通过极宽总线同时对多个寄存器进行读写。
6.一种非阻塞协处理器接口系统,其特征在于,该系统包括: 主处理器,其输出端连接至少一个参数寄存器及至少一个协处理器,该主处理器向协处理器发送调用指令,并且在发送完成后继续执行后续指令,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令; 至少一个参数寄存器,每个参数寄存器的输入端分别连接至主处理器和数据总线,每个参数寄存器的输出端连接至协处理器,所述参数寄存器根据主处理器发出的调用指令从所述数据总线读取操作参数以提供给协处理器,并根据主处理器发出的返回指令从所述数据总线读取返回参数以提供给协处理器; 至少一个协处理器,根据所述操作参数执行操作,所述协处理器包括内部寄存器,协处理器在操作完成后将操作结果存储在所述内部寄存器中; 外部寄存器,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入该外部寄存器;主处理器读取该外部寄存器中的操作结果。
7.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,该系统还包括支持多个单位宽度的寄存器读写的极宽总线;以及 在至少一个参数寄存器中包含与该极宽总线相关联的专用寄存器,该专用寄存器根据调用指令或返回指令,同时对多个单位宽度的寄存器进行读取。
8.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,该系统还可包括配置寄存器,用于存储协处理器的静态配置信息。
9.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
全文摘要
本发明涉及一种非阻塞协处理器接口方法和系统,该方法包括以下步骤由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;协处理器根据所述操作参数执行操作;协处理器在操作完成后将操作结果存储在协处理器内部寄存器中;当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;主处理器读取该外部寄存器中的操作结果。
文档编号G06F9/38GK103246496SQ20121003035
公开日2013年8月14日 申请日期2012年2月10日 优先权日2012年2月10日
发明者沙力, 兰军强, 朱磊 申请人:上海算芯微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1