CN102859488A - 具有任务流程控制的协处理器 - Google Patents

具有任务流程控制的协处理器 Download PDF

Info

Publication number
CN102859488A
CN102859488A CN2011800213498A CN201180021349A CN102859488A CN 102859488 A CN102859488 A CN 102859488A CN 2011800213498 A CN2011800213498 A CN 2011800213498A CN 201180021349 A CN201180021349 A CN 201180021349A CN 102859488 A CN102859488 A CN 102859488A
Authority
CN
China
Prior art keywords
coprocessor
task
data
indication
carrying
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
CN2011800213498A
Other languages
English (en)
Other versions
CN102859488B (zh
Inventor
J.哈耶克
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN102859488A publication Critical patent/CN102859488A/zh
Application granted granted Critical
Publication of CN102859488B publication Critical patent/CN102859488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Abstract

本发明建议具有用于在数据处理系统(100)中按照至少一个主处理器(20)执行(24)任务的处理单元(11)的协处理器(10),所述协处理器具有带有用于存储(21)分配给任务的数据(D)的分别可分配给任务的存储区域的至少一个存储模块(12)和用于缓冲(22)分配给任务的指示的缓冲区域(13),其中指示包含执行指示并且在存储模块(12)中所存储(21)的数据基于执行指示在从缓冲区域(13)中调用执行指示时可被执行。

Description

具有任务流程控制的协处理器
技术领域
本发明涉及具有用于在数据处理系统中按照至少一个主处理器执行任务的处理单元的协处理器,相应的数据处理系统以及用于在相应的数据处理系统中或者在使用相应的协处理器的情况下执行任务的方法。
背景技术
本发明尤其是可以在所谓的“片上系统(Systems on a Chip(SoC))”或者单芯片系统情况下被使用,其中设置至少一个用于中央地控制的主处理器(CPU)、用于存储数据和程序的存储器以及不同的匹配于单任务的电路(协处理器)。但是本发明原则上可以在所有系统中被使用,在所述系统中需要对通过至少一个CPU所提供的数据和/或任务的执行的控制或影响。
概念“SoC”被概括为全部、但是至少大部分系统功能被概括到唯一一块硅(芯片)上的系统(单片集成)。SoC系统通常在嵌入式系统(Embedded Systems)中私用。SoC是最初微处理器或微控制器IC和一系列其他IC焊接在电路板上的系统的进一步开发。在SoC中经常集成数字的、模拟的和混合信号功能单元。由此尤其是可以实现成本节省和微型化。
在SoC系统上的内部连接借助于一个或多个总线实现,其中在较复杂的系统中可以使用分级的或分段的总线系统。如所提及的,在相应的系统中为确定的任务分别设置确定的特殊化的协处理器,所述协处理器按照通过至少一个CPU的控制被设立用于执行分派给其的任务(Task(作业))。在该申请的范围中将“协处理器”理解为这种单元,但是所述单元在其物理实现方面不特别地被定义。
如果多个不同的任务需要对协处理器的访问或唯一的协处理器的功率,则数据处理器系统的CPU应该能够负责任务不消极地相互影响或彼此冲突。冲突潜力在该方面尤其是存在于具有多个CPU的系统(所谓的多核系统)中,其中用于执行确定的任务的多个CPU共同地使用一个或多个协处理器。因此任务必须或者在下一任务可以访问协处理器之前结束其功能,或者任务的上下文必须被存储和稍后被重新建立。为了更简单的操作,这通常不是问题;但是系统可能以不可容忍的方式延迟较复杂的任务或者甚至其中止。
因此存在对用于在数据处理系统的协处理器中按照主处理器执行任务、尤其是多个同时或直接相继地要执行的任务的简单可实施的可能性的需求,借助于其可以避免任务冲突和/或执行的不利延迟。
发明内容
根据本发明,为此建议具有独立权利要求的特征的具有用于在数据处理系统中按照至少一个主处理器执行任务的处理单元的协处理器、相应的数据处理系统以及用于在相应的数据处理系统中或者在使用这种协处理器的情况下执行任务的方法。有利的扩展方案是从属权利要求以及下面的描述的主题。
发明优点
本发明利用,当协处理器具有缓冲区域(例如FIFO)用于能够基本上与其载荷状态或运行状态无关地接受涉及协处理器的和来自一个或多个主处理器的指示(指令)时,各个程序或作业的流程不受干扰。所缓冲的指令在此包含指示,所述指示涉及借助于协处理器或其处理单元本身对数据的执行(执行指示)并且能够另外包含指示,所述指示涉及执行的状况(Status)(状况指示)用以将所述状况用信号通知给CPU。
如在相应的缓冲区域中常见的那样,这种指示的存储或缓冲顺序地进行,其中首先存储的指示可以首先被再次调用(也即实施)(FIFO原理)。提供这种缓冲区域能够与为了在处理单元中执行指令所需要的实施时间无关地将任务分派给协处理器。而通常协处理器不能在第一指令的实施时间期间采用第二指令,也即该第二指令在该时间期间对于其他任务被封锁并且当该第一任务被执行时才采用它。由此,在现有技术的协处理器情况下必要时各个任务不行动或者仅非常延误地行动。
本发明协处理器此外具有至少一个存储模块,在所述存储模块中例如通过CPU可以分别给协处理器的各个任务分配确定的存储区域。例如,当32个寄存器在存储区域中可用时,8个仅仅可以被分配给任务A、2个可以被分配给任务B并且4个可以被分配给任务C等。相应的数据在相应的存储区域中按照分配给数据的地址被存储并且结果数据可以根据地址被调用。
相应的扩展方案的优点是,为了缓冲指示可以非常简单地例如选择相应大小的FIFO模块并且匹配于相应的任务(例如其数量或处理时间),以便匹配相应的系统的效率。而任意算法或程序的改变是不需要的。由此避免在任务之间的互相影响(干涉或冲突)。
如所提及的那样,可以给每个任务分配已经事先所述的状况指示,所述状况指示同样被缓冲在缓冲区域中。状况指示例如被设立用于设置特定流程寄存器(流寄存器(Flow Register))中的比特,其中状态机(FSM)用于设置这些比特。状态机为此附加于其原来的任务、解释在缓冲区域中所缓冲的和相应地被调用的指示以及控制这些指示的实施地被设立。与在先前所述的存储区域中类似地,也在流程寄存器中设置确定的可分配给相应的任务(例如通过CPU)的区域。通过状况指示例如可以通过在流程寄存器中设置相应的比特来显示对任务的所进行的执行。CPU于是可以读取流程寄存器,由此被告知指令的执行并且可以相应地从协处理器中调用执行的结果。
适宜地,为此目的状况指示在此被置于执行指示或者执行指示链之后并且当执行指令或指令指令链完全被执行时才被实施。在流程寄存器中的比特可以通过每个任务或者对于每个任务单独地、例如通过CPU通过写到该寄存器中被复位(Clear on Write “1”)。对此可替代地,状况指示也可以在流程寄存器的区域中写确定的值,所述值改写必要时事先在那里存在的值。在该情况下不必进行分开的复位。
通过这种方式可以同时向协处理器提出复杂的和/或在其流程时间方面广泛的任务,而不需要在运行期间通过CPU进行复杂的任务变更或任务流程控制(Task Switching(作业切换))。这些任务以及其相应的执行指示相继地通过协处理器的处理单元被执行;成功的执行分别可以通过显示来用信号通知。由此SoC的资源和从而能量消耗和由此产生的成本得以节省。
对于用于处理数据的本发明方法的优点和特征详细地参照事先所述的特征。
本发明的其他优点和扩展方案从说明书和附图中得出。
不言而喻,前述的和下面还有阐述的特征可以不仅以分别说明的组合、而且以其他组合或者单独地使用,而不偏离本发明的范围。
本发明根据实施例在附图中示意性示出并且下面参照附图详细地予以描述。
附图说明
图1以示意图示出根据本发明的特别优选的实施方式的数据处理系统。
图2以示意图示出根据本发明的特别优选的实施方式的方法的流程。
具体实施方式
在图1中示出了根据本发明的特别优选的实施方式的数据处理系统100。该数据处理系统100具有下面要阐述的协处理器10、例如被构造为微控制器的主处理器20以及数据通信装置30,例如系统总线。通过系统总线30或分配给该系统总线的数据和地址线路41、42、43可以向协处理器提供数据D以及分配给数据的地址A。经由数据线路43,可以从协处理器调用数据,例如在协处理器中实施的计算的结果R。主处理器在其方面经由数据线路51与总线30连接。
在图1中出于一目了然性仅仅示出了数据和地址线路41、42、43、51。另外,如技术人员已知的那样,在相应的数据处理系统100中例如还设置控制线路,经由所述控制线路如下面更详细阐述的那样例如可以控制状态机14、流程寄存器15、存储模块12和数据处理单元11。
协处理器10具有存储模块12、例如RAM存储单元或者相应的寄存器存储器。使用“真实”寄存器来代替RAM不影响这种协处理器的功能方式,但是必要时引起较大的空间需求。存储模块12具有用于存储分配给任务的、经由地址A寻址的数据D的可分配给所提供的任务的存储区域,所述数据经由数据线路41被提供。如所提及的,存储区域可以例如通过主处理器20被分配给任务。
协处理器10另外具有缓冲区域13。在缓冲区域13中缓冲分配给任务的指示,其中如所提及的,指示包含执行指示(也即用于借助于至少一个同样设置的数据处理单元11执行数据的指示)以及必要时状况指示(也即用于定义或显示数据的执行的状况的指示)。
缓冲区域13这里也被实施为FIFO,但是例如也可以被构造为顺序地工作的RAM存储器。在后一情况下,相应的主处理器必须被设立用于有针对性地将指示写到确定的存储区域中。
必要时在缓冲区域13中所存储的状况指示可以被用于在流程寄存器15中设置比特,以便用信号通知执行状况。此外设置状态机14,所述状态机另外如所提及的那样解释在缓冲区域13中所缓冲的和相应地被调用的指示以及例如经由控制线路控制对这些指示的实施。在流程寄存器中的确定的比特可以被分配给每个任务,所述比特根据任务的执行可以通过状况指示被设置或者复位。换句话说,按照在协处理器10的流程寄存器15中的状况指示用信号通知指示的执行的状况,其中CPU访问所述流程寄存器。CPU于是可以分别在用信号通知的执行之后从协处理器调用结果。
协处理器10另外具有用于执行任务的处理单元。例如当协处理器10例如被构造为硬件安全模块的AES协处理器时,处理单元11可以被构造为密码模块。这种密码系统协处理器可以例如在控制设备的范围中被使用。在这种被构造为AES协处理器的协处理器10中例如如下进行对指示的执行:
协处理器10将任务特定的数据D,例如密码密钥和/或要加密的数据按照寻址A在存储模块12中存储在在那里分配给任务的存储区域中。分配给任务的指示被缓冲在缓冲区域13中。在从缓冲区域13中调用指示时,通过处理单元11基于在指示中所包含的执行指示执行数据D。在此情况下,从存储模块12或者相应的存储区域调用数据,在使用处理单元11的情况下例如利用AES加密并且将结果存储在存储模块12中。
如果状况指示在缓冲区域13中位于流程指示之后,则该状况指示在执行之后被调用。状况指示在流程寄存器15中设置相应的比特,由此向CPU显示:对任务的执行是完全的。因此,可以从相应的存储区域中调用结果R。
根据本发明的特别优选的实施方式的方法在图2中示意性地示出。在本发明协处理器10中运行的方法步骤用200表示。在方法步骤210和220中向协处理器提供任务或者以结果R的形式从协处理器调用。
在协处理器中运行的方法步骤200包含步骤20,其中将数据D存储21在存储模块中。在存储模块中维持数据直至调用为止。同时地将指示缓冲22在协处理器的缓冲区域中。在缓冲区域中也可以缓冲分配给数据的状况指示,所述状况指示在使用例如状态机的情况下可以被使用用于显示23在流程寄存器中执行的状况。可以规定,如果缓冲区域(几乎)被填满,则触发通知(例如中断),以便防止过充满。可替代地或附加地可以规定,如果缓冲区域(几乎)被清空,则触发通知(例如中断),以便显示用于填充的可能性。
在从缓冲区域调用执行指示时,调用和执行24在存储区域中所存储21的数据。如果状况指示例如直接在执行指示之后从缓冲区域中被调用,则从而可以显示23事先执行的执行指示的状况(成功的执行)。
执行24的结果被存储21在存储区域中并且可以(例如基于在流程寄存器中所显示的完全执行)相应地被调用。 

Claims (10)

1.具有用于在数据处理系统(100)中按照至少一个主处理器(20)执行(24)任务的处理单元(11)的协处理器(10),
具有带有用于存储(21)分配给任务的数据(D)的分别可分配给任务的存储区域的至少一个存储模块(12)和用于缓冲(22)分配给任务的指示的缓冲区域(13),
其中指示包含执行指示并且在存储模块(12)中所存储(21)的数据基于执行指示在从缓冲区域(13)调用执行指示时可以被执行(24)。
2.根据权利要求1所述的协处理器(10),其中指示另外包含状况指示并且在协处理器(10)的流程寄存器(15)中可显示基于执行指示对数据的执行的状况。
3.根据权利要求1或2所述的协处理器(10),其中存储区域(12)以RAM存储器的形式和/或以寄存器的形式被构造和/或缓冲区域(13)以FIFO的形式和/或以顺序工作的RAM存储器的形式被构造。
4.根据前述权利要求之一所述的协处理器(10),其中为了在流程寄存器(15)中显示(23)执行的状况设置状态机(14)。
5.根据前述权利要求之一所述的协处理器(10),其中处理单元(11)被设立用于按照状态机(14)执行(24)任务。
6.根据前述权利要求之一所述的协处理器(10),其中处理单元(11)被设立用于执行(24)加密任务。
7.数据处理系统(100),具有
根据前述权利要求之一所述的协处理器(10),
至少一个主处理器(20)和
用于在主处理器(20)和协处理器(10)之间传输数据(D,R)和指示的数据通信装置(30,41-43,51)。
8.根据权利要求7所述的数据处理系统(100),其被构造为具有至少两个主处理器(20)的多核系统。
9.根据权利要求7或8所述的数据处理系统(100),其被构造为硬件安全模块并且具有AES处理器作为协处理器(10)。
10.用于在根据权利要求7至9之一所述的数据处理系统(100)中和/或在使用根据权利要求1至6之一所述的协处理器(10)的情况下执行(24)任务的方法,其中协处理器(10)将经由数据通信装置(30,41-43,51)提供的数据(D)存储(21)在存储模块(12)的分别可分配给任务的存储区域中,将分配给任务的指示缓冲(22)在缓冲区域(13)中并且在从缓冲区域(13)中调用执行指示时基于执行指示执行(24)在存储模块(12)的存储区域中所存储(21)的数据(D)。
CN201180021349.8A 2010-04-27 2011-04-06 具有任务流程控制的协处理器 Active CN102859488B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102010028227.8 2010-04-27
DE102010028227A DE102010028227A1 (de) 2010-04-27 2010-04-27 Coprozessor mit Ablaufsteuerung
PCT/EP2011/055305 WO2011134762A1 (de) 2010-04-27 2011-04-06 Coprozessor mit aufgabenablaufsteuerung

Publications (2)

Publication Number Publication Date
CN102859488A true CN102859488A (zh) 2013-01-02
CN102859488B CN102859488B (zh) 2015-08-26

Family

ID=44148690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180021349.8A Active CN102859488B (zh) 2010-04-27 2011-04-06 具有任务流程控制的协处理器

Country Status (4)

Country Link
US (1) US20130117533A1 (zh)
CN (1) CN102859488B (zh)
DE (1) DE102010028227A1 (zh)
WO (1) WO2011134762A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170412A (zh) * 2017-12-06 2018-06-15 北京航天计量测试技术研究所 一种基于流程控制的综合校准单元

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10362093B2 (en) * 2014-01-09 2019-07-23 Netronome Systems, Inc. NFA completion notification
US10877766B2 (en) * 2018-05-24 2020-12-29 Xilinx, Inc. Embedded scheduling of hardware resources for hardware acceleration
US10705993B2 (en) 2018-11-19 2020-07-07 Xilinx, Inc. Programming and controlling compute units in an integrated circuit
US11386034B2 (en) 2020-10-30 2022-07-12 Xilinx, Inc. High throughput circuit architecture for hardware acceleration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538296A (zh) * 2003-02-18 2004-10-20 图形处理单元的多线程内核

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
DE102004012516A1 (de) * 2004-03-15 2005-10-13 Infineon Technologies Ag Computersystem zur elektronischen Datenverarbeitung
US20070083870A1 (en) * 2005-07-29 2007-04-12 Tomochika Kanakogi Methods and apparatus for task sharing among a plurality of processors
US7970859B2 (en) * 2006-11-09 2011-06-28 Raritan Americas, Inc. Architecture and method for remote platform control management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538296A (zh) * 2003-02-18 2004-10-20 图形处理单元的多线程内核

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHAN H ET AL.: "Process Isolation for Reconfigurable Hardware", 《2006 INTERNATIONAL CONFERENCE ON ENGINEERING OF RECONFIGURABLE SYSTEMS AND ALGORITHMS (ERSA06),[ONLINE]》, 1 June 2006 (2006-06-01) *
HERWIN CHAN ET AL.: "A Secure Multithreaded Coprocessor Interface", 《THIRD WORKSHOP ON OPTIMIZATIONS FOR DSP AND EMBEDDED SYSTEMS,[ONLINE]》, 1 March 2005 (2005-03-01) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170412A (zh) * 2017-12-06 2018-06-15 北京航天计量测试技术研究所 一种基于流程控制的综合校准单元
CN108170412B (zh) * 2017-12-06 2021-04-13 北京航天计量测试技术研究所 一种基于流程控制的综合校准单元

Also Published As

Publication number Publication date
US20130117533A1 (en) 2013-05-09
WO2011134762A1 (de) 2011-11-03
CN102859488B (zh) 2015-08-26
DE102010028227A1 (de) 2011-10-27

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
CN113424168A (zh) 可重配置的数据处理器的虚拟化
US20140189328A1 (en) Power reduction by using on-demand reservation station size
US20150355948A1 (en) Dynamically configurable hardware queues for dispatching jobs to a plurality of hardware acceleration engines
CN106569891B (zh) 一种存储系统中任务调度执行的方法和装置
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
CN102934076B (zh) 指令发行控制装置以及方法
CN102859488A (zh) 具有任务流程控制的协处理器
US20090119460A1 (en) Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space
EP2580657B1 (en) Information processing device and method
US10289787B2 (en) Control program and control method for programmable logic device and information processing apparatus including the same
US20190007529A1 (en) Methods and systems for autonomous memory
KR20150100042A (ko) 3차원 다이 스택 디램에서의 가속 시스템
JP5285915B2 (ja) マイクロプロセッサアーキテクチャ
US11687144B2 (en) System and methods for on-chip memory (OCM) port throttling for machine learning operations
KR20110097447A (ko) 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법
US8933942B2 (en) Partitioning resources of a processor
US20120204014A1 (en) Systems and Methods for Improving Divergent Conditional Branches
CN111181874B (zh) 一种报文处理方法、装置及存储介质
US20170031628A1 (en) Method and device for communication between virtual machines
EP2689325B1 (en) Processor system with predicate register, computer system, method for managing predicates and computer program product
CN103197917A (zh) 计算线程阵列粒度执行抢占
JP4789269B2 (ja) ベクトル処理装置及びベクトル処理方法
CN115878517A (zh) 存储器装置、存储器装置的操作方法和电子装置
JP3720342B2 (ja) 内部記憶装置構造を備えたプロセッサ

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