CN103176835B - 用于在数据处理中规划流程的电路装置 - Google Patents

用于在数据处理中规划流程的电路装置 Download PDF

Info

Publication number
CN103176835B
CN103176835B CN201210363054.5A CN201210363054A CN103176835B CN 103176835 B CN103176835 B CN 103176835B CN 201210363054 A CN201210363054 A CN 201210363054A CN 103176835 B CN103176835 B CN 103176835B
Authority
CN
China
Prior art keywords
task
processing
processing unit
circuit device
channel
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.)
Active
Application number
CN201210363054.5A
Other languages
English (en)
Other versions
CN103176835A (zh
Inventor
E.贝尔
R.巴托洛梅
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 CN103176835A publication Critical patent/CN103176835A/zh
Application granted granted Critical
Publication of CN103176835B publication Critical patent/CN103176835B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals

Landscapes

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

Abstract

本发明涉及一种用于处理数据的系统的电路装置,该系统用于借助中央处理单元处理多个任务,该中央处理单元具有分配给该中央处理单元的处理容量,其中该电路装置被配置为,向相应的任务时间错开地分配处理单元以用于处理,控制所述任务按照预定的顺序被处理并且在该顺序中没有当前处理请求的任务在处理时被跳过,其中该电路装置包括优先级顺序调节装置,其被设计为确定按照何种顺序来处理所述任务,其中在每次选择一个用于处理的任务时重新确定所述任务的顺序,并且控制所述选择,使得直到主动任务重新被分配处理单元的处理容量为止,对于数量为N的任务最多经过N个时间单位。此外本发明涉及一种相应的方法。

Description

用于在数据处理中规划流程的电路装置
技术领域
本发明涉及一种用于数据处理系统的电路装置,该数据处理系统用于借助中央处理单元处理多个任务,还涉及一种用于在处理数据的系统中处理多个任务的相应的方法。
背景技术
在例如计算机-微处理器系统、控制单元、外设单元的处理数据的系统中以及在其它处理信息的系统中,为了计算的目的而经常使用所谓的CPU(中央处理单元)作为计算机的中央处理单元但是或者还仅使用简单的算术逻辑单元(ALU)。此外,为了存储程序和数据而采用相应的存储器,如RAM、ROM、EPROM、EEPROM等。处理器或CPU处理程序或执行程序。该程序在此一般由不同的子程序组成,这些子程序必要时又可以致力于不同的任务(task)。在此称为多任务。
在此,根据当前的情景,即在该时刻有哪些任务请求处理,决定哪个任务应当通过CPU处理。在此可以考虑向不同的任务分配不同的优先级,从而在处理这些任务时注意被分配给相应任务的优先级并且相应地提前处理具有最高优先级的任务。这例如通过所谓的中断来完成。中断是程序的短暂中止,以执行对其它任务的其它的、优先级更高的或时间关键的处理。在此首先提出中断请求,接着执行中断例程并且中止在先执行的任务,并且在结束该中断之后继续在中止位置处的任务。这意味着,一般在此过程中提前处理具有比正在处理的任务更高的优先级的任务的当前请求,并且为此中止已经在处理中的任务。在此,所涉及的中断促使CPU跳至相应的程序段。
上述多任务也可以作为所谓的“时间共享”来起作用,其看起来同时为多个用户提供服务。通常多任务表示CPU的并行地执行多个任务(Tasks)的能力。在此,不同的过程总是以如此短的间隔交替地被激活,使得产生同时的印象。
但是对分配给各个任务的优先级的选择以及高优先级的任务的处理时间可能导致具有低优先级的任务很少、甚至在极端情况下根本不被处理。这可能在以下情况下是这样:上述中断请求近似持续地到来,由此与其它任务相比低优先级的任务的相关性在此不能完全结束。在这种情况下,需要采取保证所谓的最差情况执行时间(WCET)并由此对每个待处理的任务都保证有最低量的CPU的工作容量的措施。
但是在过去已经表明,这样的保证可能非常费事并且此外可能限制底层系统的效率。此外在此需要中断控制器,其还必须配备优先级控制。
已经描述过,如何可以通过所有任务、包括没有请求的任务的周期性询问来决定应当处理哪些任务。为此介绍了一种电路装置,其实施在处理数据的架构中并且配置为向提供给系统的处理单元相应地提供待处理的任务。在此,该电路装置进行控制,使得处理单元的处理容量均匀地以及与相应任务的要求无关地划分给各自的任务直至其相应的处理,并且在时间上错开地向相应的任务分配处理单元来用于处理。由此实现了,每个任务在特定的时间内、尤其是在上述最差情况执行时间(WCET)内自动被处理,而与事先进行的优先级分配无关。两个在流程规划中所涉及的规划时间之间的时间间隔在此始终等于任务数量N乘以一个任务相应被处理的时钟持续时间TCLK。该参量下面也称为任务T的执行时间。
此外,已经介绍了实施用于规划流程的经过修改的算法的电路装置,其中对所谓的主动任务设置优先级。无效任务反正不使用ALU或CPU的计算容量,在此不连同引入流程规划内,由此平均起来实现了处理的加快。
但是在处理任务/数据时在此进行的周期性优先级变换存在以下缺点:所基于的用于流程规划的算法在具有多个所谓的流水线级的处理系统中可能导致执行时间T大于由任务数量N与时钟持续时间TCLK组成的上述乘积。
据此期望的是设置一种可能性使得可以这样来利用中央计算单元或CPU的所提供的工作容量,即通过简单的方式保证当前请求处理的每个待处理的任务都在特定的时间内被处理完,其中还保证不超过最大的执行时间。
在此背景下提供一种根据本发明的实施方式的电路装置以及一种根据本发明的实施方式的相应方法。
按照本发明所设置的电路装置例如可以以处理数据的架构实施,并且相应地向提供给处理数据的系统的处理单元(例如CPU或ALU)分配当前待处理的任务。
发明内容
根据本发明建议了一种用于处理数据的系统、尤其是用于周期性的数据处理系统的电路装置,该系统用于借助中央处理单元处理多个任务,该中央处理单元具有分配给该中央处理单元的处理容量。在此该电路装置被配置为,给相应的任务时间错开地分配处理单元以用于处理,控制所述任务按照预定的顺序被处理并且在该顺序中没有当前处理请求的任务在处理时被跳过。根据本发明,该电路装置在此包括优先级顺序调节装置,其被设计为确定按照何种顺序来处理所述任务,其中在每次当前选择一个用于处理的任务时重新确定处理所述任务的顺序,并且控制所述选择,使得直到主动任务重新被分配处理单元的处理容量为止,对于数量为N的任务最多经过N个时间单位。
按照本发明所设置的电路装置包括用于在周期性数据处理系统中对任务进行流程规划的算法,其中分析所有任务的活动状态,以从而对相应的数据处理进行加快。此外在电路装置中实施的该算法保证最大的执行时间T=N*TCLK,从而在任何情况下都不会超过开头提到的最差情况执行时间。
按照本发明建议的电路装置或按照本发明建议的方法可以在所谓的通用定时模块(GTM)的多通道序列器(MCS)中实施。
在此,多通道序列器操作多个通道。根据本发明可以规定,所述电路装置被配置为,将每个待处理的任务分别分配给具有自己的寄存器的通道,并且根据相应任务向处理单元的分配来选择相应的寄存器并将该寄存器与处理单元连接。
此外可以规定,所述电路装置可以被配置为分别将处理单元分配给具有当前处理请求的每个任务(即每个所谓的主动(aktiven)任务)一段恒定的并且对于所有主动任务来说相同的持续时间。作为被动任务,在此是指没有当前处理请求的任务,也就是当前没有通告处理的任务。而主动任务在当前说明书的范围中是提出当前的处理请求并且相应地通告该处理请求以使得其在通过处理单元进行处理时受到考虑的任务。
因此,按照本发明设置的电路装置规定,将设置在处理数据的系统中的处理单元(例如ALU或CPU)的处理容量或计算容量均匀地划分到所有主动任务(Tasks)。
根据按照本发明设置的电路装置的另一种实施方式中,连贯地提供给每个任务(即每个Task)的持续时间在此恰好等于处理单元的一个时钟。在此,在按照本发明设置的电路装置中设置优先级顺序调节装置,借助它确定将以或者应当以什么顺序来处理所述任务。根据本发明这意味着在每次当前选择一个用于处理的任务时分别重新确定处理所述任务的优先级顺序。
根据本发明的一种实施方式,在此规定待处理的任务的顺序通过列表(下面称为优先级列表)来确定,该列表具有优先级逐渐增大的列表位置,然后将当前选择要处理的任务置于具有最低优先级的列表位置处。该优先级列表始终具有相同的长度,即与任务数量相等的相同的列表位置数量。最后一个列表元素在此表示在有待处理的流程规划步骤中以最高优先级被处理的任务。优先级列表的前一元素在此表示在当前流程规划步骤中以第二高优先级被处理的任务,依此类推。
优先级列表在电路装置的电路复位时刻以下列值初始化:
LPRIO[i]=i,对于所有i=0,…,N-1。
根据本发明电路装置的另一实施方式规定,在列表中向没有当前处理请求的任务分配的列表位置保持相同,但是在没有当前处理请求的任务下方旋转,使得向没有处理请求的、具有当前最高优先级的任务分配具有最低优先级的列表位置。
此外,在另一种实施方式中所述电路装置被配置为,向每个任务分别分配具有自己的寄存器的通道,并且根据相应任务向处理单元的分配来选择相应的寄存器并且与处理单元连接。
在此,将处理单元分别最迟在最大等待时间之后并且于是在恒定的以及对于所有主动任务都相同的持续时间中分配给每个具有当前处理请求的任务。
该持续时间可以等于处理单元的时钟周期的一个时钟。
根据电路装置的一种可能的设计,所定义的最大等待时间由任务数量与恒定的持续时间(时间单位)的乘积给出,在该持续时间内该处理单元被分配给用于处理的相应任务并且与该任务连接。
此外本发明的电路装置可以被配置为,在具有多个流水线级的流水线中设置对作为主动任务的具有当前处理请求的任务的相应通道的相应寄存器的指令的处理,其中该相应的寄存器在处理时刻被切换为流水线的相应被提供时钟的流水线寄存器,并且在一个时间段中并行的、但是分别针对不同通道来处理所述流水线级。
在此,针对第一主动任务的指令解码和存储器访问按照合适的方式分别在以下时间段中进行,在所述时间段中向至少一个第二主动任务分配处理单元。
此外,本发明涉及一种用于在处理数据的系统中、尤其是在周期性数据处理系统中借助中央处理单元处理多个任务的方法,该处理单元具有分配给该处理单元的处理容量。在此规定,时间错开地向相应的任务分配处理单元以用于处理,按照预定的顺序处理这些任务,并且在处理中跳过在该顺序中没有当前处理请求的任务。在此,按照这些任务应当被处理的顺序对这些任务设置优先级,并且在每次选择当前要被处理的任务时重新确定处理任务的顺序,其中这样来控制所述选择,使得直到主动任务重新被分配处理单元的处理容量为止,对于数量为N的任务最多经过N个时间单位。
本发明的其它优点和设计由描述和附图给出。
应当理解,上述和下面还要阐述的特征不仅可以分别说明的组合,而且还能以其他组合或单独地使用,而不会脱离本发明的范围。
附图说明
图1示出其中可以执行按照本发明建议的方法的架构模型。
图2示出流水线的一种可能实施方式,根据该流水线可以进行根据按照本发明建议的方法的指令处理。
图3以示意图示出本发明电路装置的实施方式。
具体实施方式
借助附图中的实施方式示意性示出本发明,并且参照附图示意性详细描述本发明。在此给出结构和功能方面的详细描述。
按照本发明建议的方法的或按照本发明设置的电路装置例如可以实施在所谓的通用定时模块(GTM)的多通道序列器(MCS)中,其中这种多通道序列器的一种可能架构在图1中示出。
在此所示的多通道序列器(MCS)100操作多个通道,例如8或16个,这与待处理的任务相等。这意味着每一个待处理的任务都被分配一个通道。MCS100具有中央处理单元10(例如ALU)以及存储器20(例如RAM)。在这里所示的情况下,在MCS一侧操作N个通道,其中每个通道拥有自己的微程序,该微程序安放在所述存储器的不同位置处。为了处理该程序,每个通道拥有自己的指令寄存器(IR)35、自己的指令计数器(PC)25、自己的状态寄存器(STA)45和自己的所谓通用寄存器(GPR)55,它们在当前的图中用0…K-1表示。
这意味着,在这里所示的MCS架构中示出N个指令寄存器(N*IR)35、N个指令计数器(N*PC)25和N个状态寄存器(N*STA)45。此外每个通道拥有自己的接口30,例如ARU接口,通过该接口可以异步地、也就是无需等待相应通道的处理地在相应的GRP55中更新数据或者可以输出数据。
现有接口30的数量等于通道的数量,其通过分别代表接口的符号的示意性“重叠”来清楚表示。同样地适用于多个指令寄存器35、多个指令计数器25、多个通用寄存器55以及多个状态寄存器45和ABC寄存器65。
为了同步的目的而阻止通道的处理,这意味着待执行的运算以及由此相应通道的其它程序流程要在所请求的数据通过相应的、分配给相应通道的ARU接口30输入或取走时才进行。此外在这里所示的架构中规定,通道的ARU接口30分别通过自己的检查位寄存器(ACB)65来完善。检查位借助GPR55的数据被转发给ARU接口30或借助每个ARU读取指令来更新。通道的阻止状态通过对相应的位(例如在状态寄存器(STA)45中)置位来通告。所有其它通道继续处理它们的程序。阻止指令的取消异步地(也就是与该通道是否位于流水线中无关)通过ARU接口30引起,只要通用寄存器55的数据被接收到或被发送了。
所有被MCS100操作的通道在这里所示的架构中都使用相同的中央算术逻辑单元10(ALU)、相同的指令解码器40、相同的指令预解码器50、相同的存储器20和用于存储器20的相同的地址解码器15,如在图1中所示的。在这里所示的MCS架构100中,主CPU经由主CPU接口60通过存储器20(RAM)干预流程,也就是说,数据在为此预留的周期中从主CPU的握手接口60发送或发送给该握手接口60。
根据按照本发明设置的电路装置的一种可能实施方式对指令/任务的处理在具有多个流水线级的流水线中进行。在此,优选区分4个流水线级。流水线或指令流水线表示一类流水线,利用其将对指令的处理分解为与流水线级数量相等的子指令,其中多个通道(即任务)的流水线级可以并行地执行,但是分别针对其他通道(参见图2)。这意味着,不是在处理单元的处理周期期间完全处理任务,而是仅分别处理子任务,但是在此同时处理多个任务的不同子任务。流水线级在此优选可以是:
0级:RAM访问解码
1级:RAM访问
2级:指令预解码
3级:指令处理。
在0级中首先形成用于在下一流水线级中有待处理的RAM访问的地址和控制信号。RAM访问可以是读取数据或指令或者是写入数据。在读取指令的情况下从所涉及的指令计数器(PC)中形成地址。0级在图1和图2中分别用附图标记0表示。
然后在1级中访问工作存储器20(RAM),其中从工作存储器20中加载相应的指令。1级在图1和图2中分别用附图标记1表示。
然后在2级中借助指令预解码器50进行指令预解码。2级在图1和图2中分别用附图标记2表示。
最后在3级中进行指令处理,该指令处理对于所有任务都通过同一处理单元10(例如ALU)进行。3级在图1和图2中分别用附图标记3表示。
所有流水线级或流水线阶都被并行处理,但是分别针对其他通道或针对分配给相应通道的任务。但是,根据在此提出的电路装置,该处理仅针对主动任务或与此关联的有效通道进行。这类时间处理在图2中借助所谓的流水线流显示。如果通道Ca204首先以对RAM地址的解码开始(0级),则通道Ca在下个时钟中执行RAM访问(1级),而通道Cb206进行对RAM地址的解码(0级)。分别在图1中通过25和35显示的相应的自己的寄存器N*PC和N*IR根据通道而被自动连接上。仅需要一个处理周期的执行时间的指令在3级中处理来自自己的寄存器的操作数200并且必要时处理操作数300,或者处理来自指令字的直接操作数,并且将结果写回到相应的寄存器中。为了将数据写回到存储器20(RAM)中,需要另一个处理周期。为此在相应通道的状态寄存器STA45中引起在下一个指令周期中的写回操作的位置位。这意味着,如果又在0级中处理相应的通道,则对相应的RAM地址解码,并且然后将数据在1级中从相应的通用寄存器(GPR)55写入存储器20(RAM)中。类似的对来自存储器20(RAM)的操作数也是这样。为了将数据从存储器20(RAM)加载到相应的GPR检测器55中需要完整的流水线流程。然后在下一个处理周期中才可以处理所述操作数。对于需要多个处理周期的指令,要注意相应的任务或相应的通道保持有效,也就是相应的请求信号RDYi保持置位,直到该指令被完全处理为止。
专用寄存器TRG75提供通道相互触发的可能性。通道本身可以通过涉及时间或位置的信号(TBU时基单元)85将事件置于当前时间参照中,或者依据位置来控制事件。该比较在处理单元10或ALU中执行,其中例如由TBU(时基单元,在此未示出)可以提供操作数85。相应的通道期望对相应接口30或ARU接口的数据进行访问,并且通过阻止读取来保证不可能导致数据的不一致。
指令预解码器50使得可以在下一个运行周期中从存储器20(RAM)提供数据。为此将RAM数据转换为指令,该指令将该数据写入所请求的目标寄存器中。此外,指令预解码器50负责在阻止指令激活时(检查寄存器中的相应位被置位)后续的指令从前面的流水线级中被丢弃。在阻止指令仍然有效时,后续的指令已经在0级流水线和1级流水线中被处理并且从RAM传送出去,并且在2级流水线中决定该指令现在是否在后续的3级流水线中被处理(如果阻止指令异步地经由ARU接口结束)或者被丢弃(如果阻止指令仍然有效)。
根据按照本发明设置的方法和按照本发明设置的电路装置,首先确定哪个通道、即哪个任务应当分别在处理周期的范围内作为下一个来处理。本发明的方法为了确定将作为下一个处理的通道,也就是在下一个时钟周期中被插入到流水线级0级中的通道而设置一种算法,该算法借助列表,即所谓的优先级列表LPRIO进行流程规划。该流程规划将在下面在图3中更详细阐述。
优先级列表LPRIO总是具有相同的长度,也就是与待处理任务的数量N相等的相同列表位置数量。
在该优先级列表中,每个元素包含通过标识号(ID)至任务的唯一分配,并且在该列表中的顺序确定该任务被处理的优先级。每个标识号在该列表中恰好出现一次。
优先级列表的列表位置用LPRIO[i](i=0,…,N-1)表示。最后一个列表元素LPRIO[N-1]在此表示在有待处理的流程规划步骤中以最高优先级处理的任务。前一个元素LPRIO[N-2]在此表示在当前流程规划步骤中以第二高优先级处理的任务,依此类推。该列表在电路复位的时刻用以下值初始化:
LPRIO[i]=i,对于所有i=0,…,N-1。
现在在一个时钟周期内确定插入流水线级0级中的通道s,也就是说该通道被分配的任务将作为下一个来处理。
当通道x是准备好使用ALU的计算容量的有效通道时,在此引入的函数is_active(x)为真。为了显示该有效状态,每个主动任务i都输出请求信号(RDYi)。
如果通道x在下一个时钟内不再处于流水线级中,也就是说当前不再被处理并且由此与相应请求信号组合地重新站队以用于处理,则另外引入的函数not_in_pipe(x)为真。
为了简化MCS硬件的实现,通道绝不在流水线级中超过一次有效。
此外根据本发明,在每个时钟周期内还直接在确定s之后如下更新优先级列表LPRIO[i]:
如果每个任务最迟在N个时钟之后在列表位置LPRIO[N-1](具有最高优先级的位置)处出现一次,则对于所有具有为真的is_active(x)的有效通道x来说得到最大执行时间T≤N个时钟(最差情况执行时间),如果处理时间对于每个任务是一个时钟的话。上述算法保证该要求,因为所有列表元素,也就是所有任务在每个时钟中都至少被向前推移一个位置,并且在任何时刻所有任务都包含在该列表中。
在此规定,仅当相应的任务本身被作为如上所述的主动任务来观察时,才处理相应的任务。这意味着,在当前时刻没有请求处理的任务,也就是没有发送请求信号的任务,在按顺序处理任务时被跳过。也就是说,预定的顺序包括所有待处理的任务,但是在处理任务时按照该顺序要注意根据该顺序有待处理的相应任务是否也被作为主动任务来观察,也就是该任务当前是否已经发送了请求信号。
每个主动任务i与此关联的每个有效通道i(该通道的请求信号由此被置为1,即RDYi=1)总是被处理处理周期的恰好一个时钟或其它相同的处理时间。此外可以规定,CPU还操作所谓的预留任务,也就是说为此预留至少一个附加通道。在此,RAM或存储器20的写入或读取被看做附加通道。由于存储器20有利地作为单端口RAM实施(为了相对于双端口RAM节省硬件的目的),因此如果有另外的过程需要同时访问RAM20的话,通过主CPU经由主CPU接口60的RAM20写入或读取可能导致冲突。该另外的过程在此可以是为恰好被处理的通道处理程序。如果为主CPU60预留附加通道,则只有主CPU经由主CPU接口60在相应的时间段250中获得对RAM20的访问(参见图2)。在此例如还可以规定,经由该附加通道操作可能的中断请求,如果该请求与RAM20的读取或写入关联的话。
图2再次示出在N个通道的情况下对流水线级的并行处理。在这里所示的情况下,流水线包括4个流水线级,作为0级、1级、2级和3级示出。处理周期202例如等于N+1个时钟。在起动阶段之后,在每个时钟内将恰好一个通道分配给一个流水线级,并且相应地处理该通道。因此流水线级并行地、但是分别针对其他通道被处理。如已经提到的,向CPU分配至少一个附加时隙250,由此处理周期202包括N+1个时钟。
图2详细示出在第一流水线级中在第一处理周期202期间先后处理或执行通道Ca204、通道Cb206、通道Cc208、通道Cd210等。最后,在第一处理周期202期间处理或执行表示第N个有效通道的通道Ck218。处理周期202的最后一个时隙250是为CPU预留的,或用于为CPU预留的通道。在后续的一个处理周期中处理通道Cx220、通道Cy222、通道Cz224等,其中始终涉及当前的有效通道。
对于其它流水线级1级、2级、3级,相应的有效通道的处理分别错开一个时钟地开始。
在此,对于根据图2的第一流水线级1级规定,在处理周期202期间处理或执行通道Ca204、通道Cb206、通道Cc208等。在处理周期202结束时,处理通道Cj216和通道Ck218。在后续的处理周期中,首先向CPU提供时隙250,随后执行通道Cx220、通道Cy222等。
同样,对于第二流水线级2在第一处理周期202期间错开一个时钟地首先执行或处理通道Ca204和通道Cb206。在该处理周期结束时处理通道Ci214和通道Cj216。在下一个处理周期中首先处理通道Ck218,向CPU提供时隙250,然后处理通道Cz等。
对于第三流水线级3,在第一处理周期202期间处理通道Ca204等。在第一处理周期202结束时处理或执行通道Ch212和通道Ci214。在下一个处理周期中首先处理通道Cj216和通道Ck218。
这关联地意味着,根据图2中的示意图在起动阶段之后在每个处理周期中例如处理N个主动任务,并且附加地为主CPU或为预留给主CPU的通道提供一个时隙,由此每个处理周期包括N+1个时钟。各个主动任务分别在所有4个流水线级中被处理,其中这对于各个主动任务来说是时间错开地,在此在图2中错开一个时钟地进行。在图2中所示的“…”指示所有在处理周期202中没有清楚标示地处理的主动任务。
图3示出由N个寄存器100_0至100_N-1和开关网络103组成的电路装置。寄存器100_0至100_N-1用于存储优先级列表的列表元素LPRIO[i](i=0,…,N-1),而开关网络用于选择在处理周期的范围内应当作为下一个被处理的任务s(或相应被分配的通道s)。本发明的方法为了确定将作为下一个处理的通道,也就是在下一个时钟周期中插入流水线级0级中的通道而设置上面描述的算法,该算法借助优先级列表LPRIO[i]显示地进行流程规划。优先级列表的寄存器100_0,…,100_N-1用LPRIO[i](i=0,…,N-1)表示,其中任务的数量是N。最后一个列表元素100_N-1=LPRIO[N-1]在此表示在有待处理的流程规划步骤中以最高优先级处理的任务。前一个寄存器100_N-2=LPRIO[N-2]在此表示在有待处理的流程规划步骤中以第二高优先级处理的任务,依此类推。寄存器100_0至100_N-1在电路复位的时刻用以下值初始化:
LPRIO[i]=i,对于所有i=0,…,N-1。
现在在时钟周期内确定或选择插入流水线级0级中的通道s,也就是说分配给该通道的任务将作为下一个被处理。为此在开关网络103中实现的算法经由所显示的输入信号101_0至101_N-1来评估寄存器,其中函数“is_active”通过分析N个输入信号104实现,而函数“not_in_pipe”通过分析输入信号105来实现。函数“is_active”说明正观察的任务s是否是主动的,即分配给它的通道是否准备好使用ALU的计算容量。函数“not_in_pipe”检查任务s在下一个时钟内是否不再在流水线级中。用于形成函数“is_active”和“not_in_pipe”的信息例如可以(如图所示)分别通过N个单独信号104和105提供。在这种情况下,单个二进制信号再现单个事先确定的通道的状态。寄存器101_0至100_N-3按照下降的顺序执行,并且当来自恰好被观察的任务的104和105的两个相应的位为真时,该任务被选为任务s并在下一个时钟内插入流水线中。与此并行地,s在下一个时钟内经由信号107插入具有最低优先级的优先级寄存器100_0中。此外,开关网络103经由复用器106_0至106_N-1将控制信号102_1至102_N-1带入期望的位置,而且恰好使得所选择的通道s不再包含在寄存器100_0至100_N-1中。寄存器100_0至100_N-1中现有的通道为此向上在优先级列表中移动一个或两个列表位置。然后列表位置LPRIO[i]由事先在列表位置LPRIO[i-1]上的前一个元素/任务占据,或者如果所选择的元素s在列表位置LPRIO[i-1]上或者在前一次迭代中就已经在列表中被发现,则由事先在列表位置LPRIO[i-2]上的前一个元素/任务占据,从而每个任务最迟在N个时钟之后待处理,也就是占有列表位置LPRIO[N-1]。

Claims (10)

1.一种用于处理数据的系统的电路装置,该系统用于借助中央处理单元处理多个任务,该中央处理单元具有分配给该中央处理单元的处理容量,其中该电路装置被配置为,向相应的任务时间错开地分配处理单元以用于处理,控制所述任务按照要预定的顺序被处理并且在该顺序中没有当前处理请求的任务在处理时被跳过,其中该电路装置包括优先级顺序调节装置,其被设计为确定能按照何种顺序来处理所述任务,其中在每次选择一个用于处理的任务时重新确定所述任务的顺序,并且控制所述选择,使得直到主动任务重新被分配处理单元的处理容量为止,对于数量为N的任务最多经过N个时间单位,其中所述主动任务是提出当前的处理请求并且相应地通告该处理请求以使得其在通过处理单元进行处理时受到考虑的任务。
2.根据权利要求1所述的电路装置,其中待处理的任务的顺序通过列表来确定,该列表具有优先级逐渐增大的列表位置,并且能将当前选择要处理的任务置于具有最低优先级的列表位置处。
3.根据权利要求2所述的电路装置,其中在列表中向没有当前处理请求的任务分配的列表位置保持相同,但是在没有当前处理请求的任务中循环,使得于是向没有处理请求的、具有当前最高优先级的任务分配具有最低优先级的列表位置。
4.根据上述权利要求1至3之一所述的电路装置,其中所述电路装置还被配置为,向每个任务分别分配具有自己的寄存器的通道,并且根据相应任务向处理单元的分配来选择相应的寄存器并且与处理单元连接。
5.根据上述权利要求1至3之一所述的电路装置,其中所述电路装置还被配置为,将处理单元分别最迟在最大等待时间之后并且以恒定的以及对于所有主动任务都相同的持续时间分配给每个具有当前处理请求的任务。
6.根据权利要求5所述的电路装置,其中所述持续时间作为时间单位等于处理单元的一个时钟。
7.根据权利要求4所述的电路装置,其中所述电路装置还被配置为,在具有多个流水线级的流水线中设置对作为主动任务的具有当前处理请求的任务的相应通道的相应寄存器的指令的处理,其中所述相应的寄存器在处理时刻被切换为流水线的相应被提供时钟脉冲的流水线寄存器,并且在一个时间段中并行的、但是分别针对不同通道处理所述流水线级。
8.根据权利要求7所述的电路装置,其中针对第一主动任务的指令解码和存储器访问分别在其中向至少一个第二主动任务分配处理单元的时间段中进行。
9.一种用于在处理数据的系统中借助中央处理单元处理多个任务的方法,该处理单元具有分配给该处理单元的处理容量,其中时间错开地向相应的任务分配处理单元以用于处理,按照要预定的顺序处理这些任务,并且在处理时跳过在该顺序中没有当前处理请求的任务,其中在每次选择用于处理的任务时重新确定这些任务的顺序,并且这样来控制所述选择,使得直到主动任务重新被分配处理单元的处理容量为止,对于数量为N的任务最多经过N个时间单位,其中所述主动任务是提出当前的处理请求并且相应地通告该处理请求以使得其在通过处理单元进行处理时受到考虑的任务。
10.根据权利要求9所述的方法,其中向每个任务分别分配具有自己的寄存器的通道,并且根据相应任务向处理单元的分配来选择相应的寄存器并且与处理单元连接。
CN201210363054.5A 2011-09-27 2012-09-26 用于在数据处理中规划流程的电路装置 Active CN103176835B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE201110083468 DE102011083468A1 (de) 2011-09-27 2011-09-27 Schaltungsanordnung zur Ablaufplanung bei einer Datenverarbeitung
DE102011083468.0 2011-09-27

Publications (2)

Publication Number Publication Date
CN103176835A CN103176835A (zh) 2013-06-26
CN103176835B true CN103176835B (zh) 2018-10-09

Family

ID=47827713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210363054.5A Active CN103176835B (zh) 2011-09-27 2012-09-26 用于在数据处理中规划流程的电路装置

Country Status (4)

Country Link
US (1) US8973006B2 (zh)
CN (1) CN103176835B (zh)
DE (1) DE102011083468A1 (zh)
FR (1) FR2980611A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010003512A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Geteilte zentrale Verarbeitung von Daten
DE102016210345A1 (de) 2016-06-10 2017-12-14 Robert Bosch Gmbh Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mit geteilter zentraler Datenverarbeitung
DE102016210432A1 (de) 2016-06-13 2017-12-14 Robert Bosch Gmbh Verfahren zur Abarbeitung von mehreren Aufgaben in einem datenverarbeitenden System mit geteilter zentraler Datenverarbeitung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360696A (zh) * 1999-12-30 2002-07-24 皇家菲利浦电子有限公司 多任务处理软件体系结构
CN101887382A (zh) * 2010-06-28 2010-11-17 中兴通讯股份有限公司 动态优先级的仲裁方法及装置
CN102147653A (zh) * 2010-02-09 2011-08-10 佳能株式会社 数据处理装置及其控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW405090B (en) * 1997-04-04 2000-09-11 Ibm Predictive cache loading by program address discontinuity history
US7055151B1 (en) * 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
DE102010003512A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Geteilte zentrale Verarbeitung von Daten

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1360696A (zh) * 1999-12-30 2002-07-24 皇家菲利浦电子有限公司 多任务处理软件体系结构
CN102147653A (zh) * 2010-02-09 2011-08-10 佳能株式会社 数据处理装置及其控制方法
CN101887382A (zh) * 2010-06-28 2010-11-17 中兴通讯股份有限公司 动态优先级的仲裁方法及装置

Also Published As

Publication number Publication date
DE102011083468A1 (de) 2013-03-28
CN103176835A (zh) 2013-06-26
US8973006B2 (en) 2015-03-03
US20130081041A1 (en) 2013-03-28
FR2980611A1 (fr) 2013-03-29

Similar Documents

Publication Publication Date Title
JP5722327B2 (ja) Gpuワークのハードウエアベースでのスケジューリング
JP3587261B2 (ja) 命令処理制御方法
JP3805305B2 (ja) マルチスレッドプロセッサ上の優先順位及び命令速度の制御
JP6294586B2 (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
US7356770B1 (en) System and method of graphically managing and monitoring a compute environment
Hassan et al. A framework for scheduling DRAM memory accesses for multi-core mixed-time critical systems
US7822885B2 (en) Channel-less multithreaded DMA controller
CN104268018B (zh) 一种Hadoop集群中的作业调度方法和作业调度器
US20060212687A1 (en) Dual thread processor
US20140229669A1 (en) Memory Architecture For Dynamically Allocated Manycore Processor
EP2987080A1 (en) Method and device for scheduling virtual disk input and output ports
US20130036423A1 (en) Systems and methods for bounding processing times on multiple processing units
CN103176848A (zh) 计算工作分布参考计数器
CN105487919A (zh) 多核心处理器系统及任务分配方法
US20100036641A1 (en) System and method of estimating multi-tasking performance
US7243354B1 (en) System and method for efficiently processing information in a multithread environment
CN103176835B (zh) 用于在数据处理中规划流程的电路装置
CN116414464B (zh) 调度任务的方法和装置、电子设备和计算机可读介质
US20110276979A1 (en) Non-Real Time Thread Scheduling
KR102332523B1 (ko) 연산 처리 장치 및 방법
CN116400982B (zh) 配置中继寄存器模块的方法和装置、计算设备和可读介质
US8910181B2 (en) Divided central data processing
JP2004206692A (ja) マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
CN115564635A (zh) 一种gpu资源调度方法、装置、电子设备及存储介质
US7603673B2 (en) Method and system for reducing context switch times

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant