CN103246496A - 非阻塞协处理器接口方法和系统 - Google Patents

非阻塞协处理器接口方法和系统 Download PDF

Info

Publication number
CN103246496A
CN103246496A CN2012100303522A CN201210030352A CN103246496A CN 103246496 A CN103246496 A CN 103246496A CN 2012100303522 A CN2012100303522 A CN 2012100303522A CN 201210030352 A CN201210030352 A CN 201210030352A CN 103246496 A CN103246496 A CN 103246496A
Authority
CN
China
Prior art keywords
coprocessor
register
primary processor
call instruction
unblock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012100303522A
Other languages
English (en)
Other versions
CN103246496B (zh
Inventor
沙力
兰军强
朱磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Galaxycore Shanghai Ltd Corp
Original Assignee
SHANGHAI SUANXIN MICROELECTRONICS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI SUANXIN MICROELECTRONICS CO Ltd filed Critical SHANGHAI SUANXIN MICROELECTRONICS CO Ltd
Priority to CN201210030352.2A priority Critical patent/CN103246496B/zh
Publication of CN103246496A publication Critical patent/CN103246496A/zh
Application granted granted Critical
Publication of CN103246496B publication Critical patent/CN103246496B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种非阻塞协处理器接口方法和系统,该方法包括以下步骤:由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;协处理器根据所述操作参数执行操作;协处理器在操作完成后将操作结果存储在协处理器内部寄存器中;当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;主处理器读取该外部寄存器中的操作结果。

Description

非阻塞协处理器接口方法和系统
技术领域
本发明提出了一种协处理器接口方法和系统,特别是一种非阻塞式的协处理器接口方法和系统。
背景技术
在基于微处理器的系统中,协处理器通常用于协助主处理器完成特定操作,对提高系统的工作性能起到重要作用。而协处理器与主处理器之间的接口方式,决定了主处理器和协处理器之间的通信延迟,数据通量等性能,同时也是系统整体性能的瓶颈之一。
现有的协处理器接口主要包括阻塞式协处理器同步接口和寄存器触发式协处理器异步接口。
阻塞式协处理器同步接口的原理是,当需要应用协处理器时,主处理器向协处理器发出启动指令,协处理器根据该指令进行操作,在协处理器操作期间,主处理器的指令流水线停止工作并等待协处理器的操作结果,协处理器完成操作之后向主处理器返回操作结果,此后主处理器继续进行后续操作。ARM的浮点协处理器接口就是典型的阻塞式协处理器同步接口。这种接口的优点在于使得主处理器和协处理器硬件交换信息效率较高。但是,由于这种接口采用了“阻塞方式”,即主处理器和协处理器处于同一线程,在协处理器指令尚未完全结束之前主处理器需停止工作并等待,因此影响了主处理器的运行效率。
寄存器触发式协处理器异步接口的原理是,主处理器将协处理器的启动指令映射至外部寄存器,协处理器读取外部寄存器中的指令并进行操作,在协处理器操作期间主处理器继续工作,协处理器完成操作之后,将结果返回外部寄存器,主处理器通过读取外部寄存器来获得该结果。芯片设计者自行设计的专用接口多采用这种异步接口方式。这种接口的优点是使得协处理器和主处理器在不同的进程中工作,主处理器不再等待协处理器,并且这种接口能够支持多个协处理器并行运行,从而提高了系统性能。然而,这种接口的缺点在于依赖于外部寄存器的读写,而外部寄存器读写访问通常延迟大,通量低,对寄存器的访问通常需要几十甚至上百个时钟周期,每次通常只能访问16位或32位。并且对寄存器的访问本身是“阻塞式”的,也就是说,在访问寄存器期间,主处理器和协处理器都停止工作,这使得寄存器的访问速度和通量成为了主处理器和协处理器之间通信的瓶颈,因此这种接口不适合主处理器和协处理器之间有较多交流的应用场合。
发明内容
本发明的目的在于提出一种非阻塞协处理器接口方法和系统,来克服现有的协处理器接口的上述问题。本发明的协处理器接口方法和系统既具有高效率信息交换能力,同时也具有多线程能力和高度并行的优点。
根据本发明的一个方面,提出了一种非阻塞协处理器接口方法,其特征在于,该方法包括以下步骤:
由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;
协处理器根据所述操作参数执行操作;
协处理器在操作完成后将操作结果存储在协处理器内部寄存器中;
当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;
协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;
主处理器读取该外部寄存器中的操作结果。
优选地,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
优选地,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。
优选地,每个协处理器只处理最近一次收到的调用指令。
优选地,协处理器通过极宽总线同时对多个寄存器进行读写。
根据本发明的另一方面,提出了一种非阻塞协处理器接口系统,其特征在于,该系统包括:
主处理器,其输出端连接至少一个参数寄存器及至少一个协处理器,该主处理器向协处理器发送调用指令,并且在发送完成后继续执行后续指令,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令;
至少一个参数寄存器,每个参数寄存器的输入端分别连接至主处理器和数据总线,每个参数寄存器的输出端连接至协处理器,所述参数寄存器根据主处理器发出的调用指令从所述数据总线读取操作参数以提供给协处理器,并根据主处理器发出的返回指令从所述数据总线读取返回参数以提供给协处理器;
至少一个协处理器,根据所述操作参数执行操作,所述协处理器包括内部寄存器,协处理器在操作完成后将操作结果存储在所述内部寄存器中;
外部寄存器,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入该外部寄存器;主处理器读取该外部寄存器中的操作结果。
优选地,该系统还包括支持多个单位宽度的寄存器读写的极宽总线;以及在至少一个参数寄存器中包含与该极宽总线相关联的专用寄存器,该专用寄存器根据调用指令或返回指令,同时对多个单位宽度的寄存器进行读取。
优选地,该系统还可包括配置寄存器,用于存储协处理器的静态配置信息。
优选地,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
本发明的非阻塞协处理器接口方法和系统支持多个协处理器及多个硬件加速器之间的乱序访问,具有极高的灵活性。
本发明的非阻塞协处理器接口方法和系统能够支持极宽总线,数据通量大大增加。
本发明的非阻塞协处理器接口能够与传统的阻塞式协处理器同步接口兼容。
附图说明
图1是根据本发明的一个实施例的一种非阻塞协处理器接口方法的流程图;
图2是根据本发明的一个实施例的非阻塞协处理器接口系统的框图;
图3是根据本发明的另一个实施例的非阻塞协处理器接口系统的框图;
图4描述了根据本发明的非阻塞式协处理器接口系统的一个具体实施例。
具体实施方式
本发明的非阻塞协处理器接口方法的基本原理是:
- 由主处理器向协处理器发出调用指令;
- 调用指令发出后即结束,主处理器继续执行后续指令;
- 协处理器根据调用指令完成操作并产生结果;
- 当主处理器需要使用该结果时,由主处理器向协处理器发出返回指令以收取结果。
应用本发明所述的方法,主处理器和协处理器之间的通信不需要经过外部寄存器,因此具有如协处理同步接口那样的信息交换能力,同时主处理器和协处理器处于不同进程,因此具有协处理器异步接口那样的多线程并行工作能力。
图1是根据本发明的一个实施例的一种非阻塞协处理器接口方法的流程图,该方法主要包括以下步骤:
S101,由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;
S102,协处理器根据所述操作参数执行操作;
S103,协处理器在操作完成后将操作结果存储在协处理器的内部寄存器中;
S104,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;
S105,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;
S106,主处理器读取该外部寄存器中的操作结果。
其中,协处理器的操作参数可包括协处理器待完成的操作命令,操作数据等信息,返回参数可包括返回地址等信息。该方法可支持主处理器对多个协处理器的调用,并可通过协处理器ID来区分各个协处理器,协处理器ID是每个协处理器的唯一识别信息,可包含在调用指令和返回指令中。由于各个协处理器以及主处理器都具有独立的线程,因此可以实现各个协处理器之间的乱序访问,使得系统灵活性增大。
在本发明的一个变型中,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。在这一变型中,协处理器保留每次调用指令所产生的操作结果,以供主处理器通过返回指令获取这些操作结果。
在本发明的另一个变形中,每个协处理器只处理最近一次收到的调用指令,并只有对应于该最后一次收到的调用指令的返回结果有效,之前的调用指令的操作结果如未先期被主处理器读取则被放弃。举例来说,如果主处理器发出要求协处理器A执行操作1的调用指令,在未读取操作1的结果时主处理器又发出要求协处理A执行操作2的调用指令,则操作1的操作结果被放弃,仅保存操作2的操作结果供主处理器读取。这种模式特别适用于主处理器执行预判断指令的情景,即操作1是主处理器根据概率预先判断的操作,而操作2才是实际要执行的操作,当实际要执行的操作2与预先判断的操作1不同时,则协处理器放弃操作1的结果仅保留操作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、协处理器COP、参数寄存器UTP、VTP和XTP、协处理器输出寄存器XWB、外部寄存器RF和配置寄存器COPRF。其中,由主处理器MP发出调用指令,该调用指令指明了要调用的协处理器ID,与该ID相对应的协处理器被激活,即本示例中的协处理器COP,根据该调用指令,参数寄存器VTP和XTP分别读取了协处理器COP的操作命令(在该示例中为16位)和协处理器COP的操作数(在该示例中为128位),协处理器COP根据参数寄存器VTP和XTP的数据进行操作,并将操作结果保存在协处理器COP的内部寄存器IRF中。当主处理器MP发送返回指令时,该返回指令指明了要调用的协处理器ID,即本示例中的协处理器COP,根据该返回指令,参数寄存器UTP读取返回参数,协处理器COP根据该返回参数,利用输出寄存器XWB读取内部寄存器IRF中的操作结果并输出到外部寄存器RF,主处理器MP在外部寄存器RF中读取该操作结果。
应注意的是,以上示例仅仅为本发明的一个示例性实施例,而并非限制本发明,其中参数寄存器的数量不限于三个,参数寄存器的位数以及各个参数寄存器读取的参数类别可根据实际需要调整,也可由协处理器自行定义。协处理器的数量可为多个,并通过协处理器ID来识别各个协处理器。
上述实施例是用于例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修改。因此本发明的保护范围,应如本发明的权利要求书所列。

Claims (9)

1.一种非阻塞协处理器接口方法,其特征在于,该方法包括以下步骤:
由主处理器向协处理器发送调用指令,并且在发送完成后主处理器继续执行后续指令,根据该调用指令获得协处理器的操作参数;
协处理器根据所述操作参数执行操作;
协处理器在操作完成后将操作结果存储在协处理器内部寄存器中;
当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令,并根据该返回指令获得返回参数;
协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入外部寄存器;
主处理器读取该外部寄存器中的操作结果。
2.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
3.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,主处理器对每个协处理器发出的每次调用指令均需依次发出返回指令。
4.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,每个协处理器只处理最近一次收到的调用指令。
5.根据权利要求1所述的非阻塞协处理器接口方法,其特征在于,协处理器通过极宽总线同时对多个寄存器进行读写。
6.一种非阻塞协处理器接口系统,其特征在于,该系统包括:
主处理器,其输出端连接至少一个参数寄存器及至少一个协处理器,该主处理器向协处理器发送调用指令,并且在发送完成后继续执行后续指令,当主处理器需要协处理器的操作结果时,由主处理器向协处理器发出返回指令;
至少一个参数寄存器,每个参数寄存器的输入端分别连接至主处理器和数据总线,每个参数寄存器的输出端连接至协处理器,所述参数寄存器根据主处理器发出的调用指令从所述数据总线读取操作参数以提供给协处理器,并根据主处理器发出的返回指令从所述数据总线读取返回参数以提供给协处理器;
至少一个协处理器,根据所述操作参数执行操作,所述协处理器包括内部寄存器,协处理器在操作完成后将操作结果存储在所述内部寄存器中;
外部寄存器,协处理器根据所述返回参数将协处理器内部寄存器中存储的操作结果写入该外部寄存器;主处理器读取该外部寄存器中的操作结果。
7.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,该系统还包括支持多个单位宽度的寄存器读写的极宽总线;以及
在至少一个参数寄存器中包含与该极宽总线相关联的专用寄存器,该专用寄存器根据调用指令或返回指令,同时对多个单位宽度的寄存器进行读取。
8.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,该系统还可包括配置寄存器,用于存储协处理器的静态配置信息。
9.根据权利要求6所述的非阻塞协处理器接口系统,其特征在于,存在多个协处理器,并通过包含在调用指令中的协处理器ID来区分各个协处理器。
CN201210030352.2A 2012-02-10 2012-02-10 非阻塞协处理器接口方法和系统 Active CN103246496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210030352.2A CN103246496B (zh) 2012-02-10 2012-02-10 非阻塞协处理器接口方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210030352.2A CN103246496B (zh) 2012-02-10 2012-02-10 非阻塞协处理器接口方法和系统

Publications (2)

Publication Number Publication Date
CN103246496A true CN103246496A (zh) 2013-08-14
CN103246496B CN103246496B (zh) 2015-12-16

Family

ID=48926031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210030352.2A Active CN103246496B (zh) 2012-02-10 2012-02-10 非阻塞协处理器接口方法和系统

Country Status (1)

Country Link
CN (1) CN103246496B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970838A (zh) * 2017-05-15 2017-07-21 杭州时趣信息技术有限公司 一种搜索引擎调用接口时线程的调度方法及装置
CN110858387A (zh) * 2018-08-10 2020-03-03 辉达公司 鲁棒且高效的多处理器-协处理器接口
TWI792024B (zh) * 2020-07-22 2023-02-11 瑞昱半導體股份有限公司 圖形處理裝置
CN116541336A (zh) * 2023-07-04 2023-08-04 南方电网数字电网研究院有限公司 多核芯片、协处理器的软件运行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149693A1 (en) * 2000-02-24 2005-07-07 Pts Corporation Methods and apparatus for dual-use coprocessing/debug interface
CN101097559A (zh) * 2006-06-28 2008-01-02 中国科学院微电子研究所 一种实现主处理器与协处理器接口与互连的系统及方法
CN101650645A (zh) * 2009-09-04 2010-02-17 浙江大学 协处理器指令集的扩展装置
CN202548823U (zh) * 2012-02-10 2012-11-21 上海算芯微电子有限公司 非阻塞协处理器接口系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149693A1 (en) * 2000-02-24 2005-07-07 Pts Corporation Methods and apparatus for dual-use coprocessing/debug interface
CN101097559A (zh) * 2006-06-28 2008-01-02 中国科学院微电子研究所 一种实现主处理器与协处理器接口与互连的系统及方法
CN101650645A (zh) * 2009-09-04 2010-02-17 浙江大学 协处理器指令集的扩展装置
CN202548823U (zh) * 2012-02-10 2012-11-21 上海算芯微电子有限公司 非阻塞协处理器接口系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106970838A (zh) * 2017-05-15 2017-07-21 杭州时趣信息技术有限公司 一种搜索引擎调用接口时线程的调度方法及装置
CN110858387A (zh) * 2018-08-10 2020-03-03 辉达公司 鲁棒且高效的多处理器-协处理器接口
CN110858387B (zh) * 2018-08-10 2024-03-15 辉达公司 鲁棒且高效的多处理器-协处理器接口
TWI792024B (zh) * 2020-07-22 2023-02-11 瑞昱半導體股份有限公司 圖形處理裝置
US11809337B2 (en) 2020-07-22 2023-11-07 Realtek Semiconductor Corporation Graphics processing device
CN116541336A (zh) * 2023-07-04 2023-08-04 南方电网数字电网研究院有限公司 多核芯片、协处理器的软件运行方法

Also Published As

Publication number Publication date
CN103246496B (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
US7162546B2 (en) Reordering unrelated transactions from an ordered interface
JP5185289B2 (ja) 内容終了型dma
JP3752224B2 (ja) コンピュータ・システムにおいて命令を処理する方法および装置
US20150261535A1 (en) Method and apparatus for low latency exchange of data between a processor and coprocessor
US20130036426A1 (en) Information processing device and task switching method
CN111208933B (zh) 数据访问的方法、装置、设备和存储介质
CN101847096B (zh) 包含栈变量函数的优化方法
CN103246496A (zh) 非阻塞协处理器接口方法和系统
CN108845829A (zh) 一种系统寄存器访问指令的执行方法
CN202548823U (zh) 非阻塞协处理器接口系统
US20070088887A1 (en) System and method for processing an interrupt in a processor supporting multithread execution
TWI315038B (en) Method and storage medium having instructions for transferring data and multiprocessing system
US7111127B2 (en) System for supporting unlimited consecutive data stores into a cache memory
US7647532B2 (en) Trace controller, microprocessor, and trace control method
US6718405B2 (en) Hardware chain pull
JP2007286990A (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
JP2020052862A (ja) 計算機および計算方法
JP3659941B2 (ja) マイクロプロセッサおよびその処理方法
JP2007087244A (ja) コプロセッサ及びコンピュータシステム
US20080282051A1 (en) Methods and arrangements for controlling results of memory retrival requests
JP5185478B2 (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JP2768878B2 (ja) データ処理装置、命令実行の同期方法、例外発生時の命令アドレス待避方法及び例外発生時の命令処理無効化方法
US20020108022A1 (en) System and method for allowing back to back write operations in a processing system utilizing a single port cache
US9189380B2 (en) Systems and methods to save and restore a write gather pipe

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220727

Address after: 201203 11F, No. 2 Building, 560 Lane, Midsummer Road, Pudong New Area, Shanghai

Patentee after: GALAXYCORE SHANGHAI Ltd.,Corp.

Address before: Room 1004-1005, building 2, No. 560, shengxia Road, Pudong New Area, Shanghai 201203

Patentee before: SHANGHAI SUANXIN MICROELECTRONICS Co.,Ltd.