CN102870095A - 信息处理装置和任务切换方法 - Google Patents

信息处理装置和任务切换方法 Download PDF

Info

Publication number
CN102870095A
CN102870095A CN201180021923XA CN201180021923A CN102870095A CN 102870095 A CN102870095 A CN 102870095A CN 201180021923X A CN201180021923X A CN 201180021923XA CN 201180021923 A CN201180021923 A CN 201180021923A CN 102870095 A CN102870095 A CN 102870095A
Authority
CN
China
Prior art keywords
task
coprocessor
preservation
signal
recovery
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
CN201180021923XA
Other languages
English (en)
Other versions
CN102870095B (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN102870095A publication Critical patent/CN102870095A/zh
Application granted granted Critical
Publication of CN102870095B publication Critical patent/CN102870095B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/461Saving or restoring of program or task context
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

公开了一种能够减少对于在多个协处理器中切换任务所需要的时间的信息处理装置和任务切换方法。信息处理装置(30)包括:处理器核(301);协处理器(311至31n),包括响应于来自处理器核(301)的请求执行操作的运算单元(321至32n)和存储操作单元(321至32n)的操作的内容的操作存储单元(331至33n);保存存储单元(351至35n),存储所保存的操作的内容;任务切换控制单元(302),当切换协处理器(311至31n)执行操作的任务时输出保存/恢复请求信号;以及保存/恢复单元(341至34n),响应于保存/恢复请求信号执行将在操作存储单元(331至33n)中的操作的内容保存到保存存储单元(351至35n)和将在保存存储单元(351至35n)中的操作的内容恢复到操作存储单元(331至33n)中的至少一个。

Description

信息处理装置和任务切换方法
技术领域
本发明涉及一种信息处理装置以及一种任务切换方法,并且更具体地涉及一种在多个协处理器(coprocessor)中切换任务的技术。
背景技术
近年来,通过将专用协处理器连接到嵌入的处理器核而不是使用专用硬件来执行信号处理的专用LSI(大规模集成)变得普遍以增强处理的灵活性。在这种情况下,出现了在一个处理器核中处理多个任务以便提高面积效率的需要。特别地,在一个处理器核中执行具有不同属性的多个任务的情况下,将增加多个协处理器被连接到一个处理器核的情形。
通常,在切换任务的情况下,协处理器和存在于协处理器中的运算寄存器(arithmetic register)的数据被临时地保存。然后,当被切换回原始的任务时,被保存的数据需要被恢复到运算寄存器。
在大多数情况下,数据保存/恢复处理由处理器核根据在软件中描述的指令序列来执行。然而,该方法要求每次切换任务时针对运算寄存器中的每一个执行以下处理:从运算寄存器读取当前任务的数据;将该数据写入到存储器中;从存储器读取下一个任务的数据;以及将该数据写入到运算寄存器中。另外,在连接了多个协处理器的情况下,处理器核需要针对多个协处理器中的每一个逐个地执行上述处理。因此,当频繁地进行任务切换时,由对于保存和恢复操作所需要的处理时间引起的开销增加。这引起了在实时处理中难于进行任务切换的问题。
为了解决这个问题,专利文献1和2例如提出了通过区分使用协处理器的任务和不使用协处理器的任务并且跳过保存和恢复协处理器上下文来加速任务切换处理的技术。另外,专利文献3例如提出了通过仅保存用于任务的运算寄存器来加速任务切换的技术。
然而,即使使用那些技术,当所使用的协处理器的数目增加时,也需要在任务切换时对于相关协处理器中的每一个执行运算寄存器保存/恢复处理。另外,因为直到保存/恢复操作结束才进行任务切换,所以对于任务切换仍然花费长的时间。
引用列表
专利文献
【PTL 1】日本未审查专利申请公报No.H04-095137
【PTL 2】日本未审查专利申请公报No.H04-051329
【PTL 3】日本未审查专利申请公报No.H06-004305
发明内容
技术问题
如在上文背景技术中所描述的,每次切换任务时,处理器核需要针对运算寄存器中的每一个执行以下处理:从运算寄存器读取当前任务的数据;将该数据写入到存储器中;从存储器读取下一个任务的数据;以及将该数据写入到运算寄存器中。另外,在连接了多个协处理器的情况下,处理器核需要针对多个协处理器中的每一个逐个地执行上述处理。因此,存在在多个协处理器中切换任务花费长时间的问题。
为了解决上述问题,本发明的示例性目的因此提供一种能够减少对于在多个协处理器中的任务切换所需要的时间的信息处理装置和任务切换方法。
问题的解决方案
根据本发明的第一示例性方面的信息处理装置包括:处理器核;多个协处理器,协处理器包括:用于响应于来自处理器核的请求执行操作的操作装置,以及用于存储操作装置的操作的内容的操作存储装置;多个保存存储装置,用于存储从操作存储装置保存的操作的内容,该多个保存存储装置分别与多个协处理器相对应;任务切换控制装置,用于当多个协处理器中的至少一个执行操作的任务从第一任务切换到第二任务时输出请求保存/恢复操作的内容的保存/恢复请求信号;以及多个保存/恢复装置,分别与多个协处理器相对应,其中多个保存/恢复装置中的每一个执行将与在操作存储装置中存储的第一任务有关的操作的内容保存到保存存储装置和将与在保存存储装置中存储的第二任务有关的操作的内容恢复到操作存储装置中的至少一个。
根据本发明的第二示例性方面的任务切换方法是响应于来自处理器核的请求切换执行任务的操作的多个协处理器执行操作的任务的任务切换方法,该方法包括:当多个协处理器中的至少一个执行操作的任务从第一任务切换到第二任务时,处理器核将请求保存/恢复任务的操作的内容的保存/恢复请求信号输出到多个协处理器;以及多个协处理器中的每一个响应于从处理器核输出的保存/恢复请求信号,执行保存第一任务的操作的内容和恢复第二任务的操作的内容中的至少一个。
发明的有益效果
根据上文描述的本发明的示例性方面,能够提供一种能够减少对于在多个协处理器中的任务切换所需要的时间的信息处理装置和任务切换方法。
附图说明
图1是示出了根据本发明的示例性实施例的信息处理装置的配置的方框图;
图2是示出了根据本发明的示例性实施例的任务切换加速电路的配置的方框图;
图3是示出了根据本发明的示例性实施例的处理器与协处理器之间的关系的方框图;
图4是示出了根据相关技术的任务切换处理的流程的示例的流程图;
图5是示出了根据本发明的示例性实施例的任务切换处理的流程的示例的流程图;
图6是示出了根据本发明的示例性实施例的在任务切换加速电路中使用的任务切换控制电路的示例的方框图;
图7是示出了根据本发明的示例性实施例的在任务切换加速电路中使用的运算寄存器数据保存/恢复电路的示例的方框图;
图8是示出了根据本发明的示例性实施例的在任务切换加速电路中使用的等待控制电路的示例的方框图。
具体实施方式
参照图1,信息处理装置被描述为根据本发明的示例性实施例的任务切换加速电路的概要。图1是示出了根据本发明的示例性实施例的信息处理装置的配置的方框图。
信息处理装置30包括处理器核301、协处理器311至31n以及保存存储单元351至35n。n为任何正整数。处理器核301包括任务切换控制单元302。协处理器311包括操作单元321、操作存储单元331以及保存/恢复单元341。协处理器312至31n具有与协处理器311相同的配置并且因此省略了其描述。
处理器核301向协处理器311至31n做出对于任务的操作的请求。
当多个协处理器311至31n中的至少一个执行操作的任务从第一任务切换到第二任务时,任务切换控制单元302将保存/恢复请求信号输出到协处理器。保存/恢复请求信号是请求保存或恢复在操作存储单元中存储的操作的内容的信号。
协处理器311至31n执行任务的操作。
操作单元321至32n响应于来自处理器核301的请求执行运算操作。
操作存储单元331至33n分别存储操作单元321至32n的操作的内容。
响应于保存/恢复请求信号,保存/恢复单元341至34n执行分别将与在操作存储单元331至33n中存储的第一任务有关的操作的内容保存到保存存储单元351至35n和分别将与在保存存储单元351至35n中存储的第二任务有关的操作的内容恢复到操作存储单元331至33n中的至少一个。因此,保存/恢复单元341至34n分别与多个协处理器311至31n相对应。
保存存储单元351至35n分别存储从操作存储单元331至33n保存的操作的内容。因此,保存存储单元351至35n分别与多个协处理器311至31n相对应。
在下文中描述了根据本发明的示例性实施例的信息处理装置的处理。
当多个协处理器311至31n中的至少一个执行操作的任务从第一任务切换到第二任务时,任务切换控制单元302将保存/恢复请求信号输出到在协处理器中包括的保存/恢复单元。假定保存/恢复请求信号被输出到在协处理器311中包括的保存/恢复单元341。响应于保存/恢复请求信号,保存/恢复单元341执行将与在操作存储单元331中存储的第一任务有关的操作的内容保存到保存存储单元351和将与在保存存储单元351中存储的第二任务有关的操作的内容恢复到操作存储单元331中的至少一个。
在下文中参照附图对本发明的示例性实施例进行详细的描述。
图2是示出了根据本发明的示例性实施例的任务切换加速电路的配置的方框图。
任务切换加速电路10包括处理器核101、协处理器102、103和104以及数据存储器112至114。
处理器核101包括任务切换控制电路105、等待控制电路107、任务-协处理器对应信息表108以及处理器核控制电路120。任务切换控制电路105包括在用协处理器存储寄存器151和协处理器状态寄存器152。
协处理器102包括运算寄存器数据保存/恢复电路106、协处理器操作控制电路109、协处理器操作单元110以及运算寄存器111。注意,协处理器103和104具有与协处理器102相同的配置并且因此省略了其描述。运算寄存器数据保存/恢复电路106包括任务号存储寄存器161。
处理器核101包括操作单元(未示出)。处理器核控制电路120使操作单元执行决定用于执行的任务。另外,处理器核控制电路120将任务切换请求信号输出到任务切换控制电路105。任务切换请求信号是请求切换到决定用于执行的任务的信号。此外,处理器核控制电路120将切换到任务号信号输出到任务切换控制电路105。切换到任务号信号是指示已经决定用于执行的切换到的任务的任务号的信号。
协处理器102至104响应于来自处理器核101的请求执行任务的运算操作。
任务切换请求信号和切换到任务号信号从处理器核101中的处理器核控制电路120被输入到任务切换控制电路105。当在被请求任务切换的协处理器中完成任务切换时,任务切换控制电路105将任务切换结束信号输出到处理器核控制电路120。
另外,任务切换控制电路105将运算寄存器值保存/恢复请求信号和切换到任务号信号输出到协处理器102、103以及104。协处理器102至104中的每一个响应于运算寄存器数据保存/恢复请求信号执行要存储到运算寄存器111中的数据的保存/恢复。要执行的任务从而在协处理器102至104中的每一个中被切换。当数据的保存/恢复结束时,协处理器102至104中的每一个将运算寄存器保存/恢复结束信号输出到任务切换控制电路105。
任务-协处理器对应信息表108还被连接到任务切换控制电路105。任务切换控制电路105使用任务-协处理器对应信息表108获取关于要用于每个任务的协处理器的信息。任务切换控制电路105基于所获取的信息将运算寄存器值保存/恢复请求信号输出到协处理器。
另外,任务切换控制电路105将指示协处理器102至104中的每一个是否在任务切换处理中的协处理器状态信号输出到等待控制电路107。任务切换控制电路105充当任务切换控制单元302。
运算寄存器数据保存/恢复电路106响应于运算寄存器数据保存/恢复请求信号执行将被存储在运算寄存器111中的、与切换之前的任务有关的操作的内容保存到数据存储器112和将被存储在数据存储器112中的、与切换之后的任务有关的操作的内容恢复到运算寄存器111中的至少一个。当任务的操作的内容的保存/恢复结束时,运算寄存器数据保存/恢复电路106将运算寄存器保存/恢复结束信号输出到任务切换控制电路105。在当与任务有关的操作的内容的保存/恢复在协处理器中结束的时候,在协处理器中的任务切换结束。运算寄存器数据保存/恢复电路106充当保存/恢复单元341至34n。
操作控制信号和协处理器号信号被从处理器核控制电路120输入到等待控制电路107。操作控制信号是控制在协处理器102至104上的运算操作的信号。协处理器号信号是指示被操作控制信号控制的协处理器号的信号。等待控制电路107基于从处理器核控制电路120输出的操作控制信号和从任务切换控制电路105输出的协处理器状态信号将协处理器操作控制信号输出到协处理器操作控制电路109。另外,当协处理器102至104之中的、理器核101打算通过协处理器操作控制信号控制其操作的协处理器在任务切换处理中时,等待控制电路107基于协处理器状态信号将等待信号输出到处理器核控制电路120。等待信号是停止处理器核101中的处理的信号。
任务-协处理器对应信息表108存储将任务和执行任务的协处理器关联的对应信息。任务-协处理器对应关系表108响应于从任务切换控制电路105输出的切换到任务号信号将协处理器信号输出到任务切换控制电路105。协处理器信号是指示执行具有由切换到任务号信号指示的任务号的任务的协处理器的信号。注意,任务-协处理器对应关系表108基于存储在其中的对应信息来指定执行具有由切换到任务号信号指示的任务号的任务的处理器。例如,任务-协处理器对应信息表108包括诸如存储器或硬盘的存储装置。例如,在启动包含要在此示例性实施例中执行的任务的程序时,对应信息被从另一存储装置加载到任务-协处理器对应信息表108。
协处理器操作控制电路109控制协处理器操作单元110。协处理器操作控制电路109响应于从处理器核101通过等待控制电路107输出的协处理器操作控制信号,使协处理器操作单元110执行任务的运算操作。
协处理器操作单元110执行要执行的任务的运算操作。协处理器操作单元110将任务的操作的内容存储到运算寄存器111中。协处理器操作单元110充当操作单元321至32n。
作为任务的操作的内容的数据由协处理器操作单元110存储到运算寄存器111中。运算寄存器111充当操作存储单元331至33n。
在当协处理器102切换要执行的任务的时候,在运算寄存器111中存储的数据被保存到数据存储器112。同样地,在当协处理器103和104切换要执行的任务的时候,在相应运算寄存器(未示出)中存储的数据分别被保存到数据存储器113和114。数据存储器112至114充当保存存储单元35135n。
处理器核控制电路120管理待在处理器核101和协处理器102至104中要执行的任务。处理器核控制电路120通过任务切换请求信号向任务切换控制电路105做出对于在协处理器102至104中切换任务的请求。处理器核控制电路120通过操作控制信号向协处理器102至104做出对于任务的操作的请求。
在用协处理器存储寄存器151存储指示被使用用于执行任务的协处理器的信息。在当协处理器102切换要执行的任务的时候,在在用协处理器存储寄存器151中存储的信息被用作指示已经执行切换之前的任务的协处理器的信息。
协处理器状态寄存器152存储指示协处理器102至104是否处在任务切换处理中的信息。
任务号存储寄存器161存储指示在切换之前的任务的任务号的信息。
【操作的描述】
在下文中将参照图2的方框图描述根据本发明的示例性实施例的任务切换加速电路10的操作。
当任务切换请求信号和切换到任务号信号被从处理器核101的处理器核控制电路120通知时,任务切换控制电路105将切换到任务号信号输出到任务-协处理器对应信息表108。任务-协处理器对应信息表108将指示执行具有由从任务切换控制电路105输出的切换到任务号信号指示的任务号的任务的协处理器的协处理器号信号输出到任务切换控制电路105。按照这种方式,任务切换控制电路105获取执行要被切换的任务的协处理器的协处理器号。
接下来,任务切换控制电路105基于在包括在其中的在用协处理器存储寄存器151中存储的信息,将通知其是否已经被用于切换之前的任务和是否将被用于切换之后的任务的信号输出到协处理器102至104中的每一个。该信号实际上充当运算寄存器数据保存/恢复请求信号。在在用协处理器存储寄存器151中存储的信息充当指示用于切换之前的任务的协处理器的信息。
具体地,当切换任务时,已经被用于切换之前的任务的协处理器需要保存在运算寄存器111中存储的操作的内容。另外,当切换任务时,将被用于切换之后的任务的协处理器需要将所保存的操作的内容恢复到运算寄存器111。因此,运算寄存器数据保存/恢复请求信号是通知协处理器是否保存操作的内容和是否恢复操作的内容的信号。与此信号一起,任务切换控制电路105向协处理器102至104中的每一个通知切换到任务号。切换到任务号由切换到任务号信号来通知。
另外,任务切换控制电路105将协处理器102至104的当前状态设置到指示协处理器102至104中的每一个的任务切换状态的协处理器状态寄存器152。
位于协处理器102至104中的每一个中的运算寄存器数据保存/恢复电路106接收来自任务切换控制电路105的运算寄存器数据保存/恢复请求信号和切换到任务号信号。如果协处理器在任务切换之前已经被使用,则在该协处理器中包括的运算寄存器数据保存/恢复电路106将运算寄存器111的数据保存到数据存储器112中的与切换之前的任务号相对应的存储器区域。另外,如果协处理器在任务切换之后将被使用,则在该协处理器中包括的运算寄存器数据保存/恢复电路106恢复运算寄存器111中的与切换之后的任务号相对应的数据。切换之前的任务号被从位于运算寄存器数据保存/恢复电路106中的任务号存储寄存器161读取。
在当保存/恢复处理结束的时候,运算寄存器数据保存/恢复电路106将任务号存储寄存器161的值更新为切换后的任务号。
在保存/恢复处理结束之后,运算寄存器数据保存/恢复电路106将运算寄存器保存/恢复结束信号输出到任务切换控制电路105。
当运算寄存器保存/恢复结束信号被从运算寄存器数据保存/恢复电路106输出时,任务切换控制电路105清除在协处理器状态寄存器152中存储的值之中的、与已经输出运算寄存器保存/恢复结束信号的协处理器相对应的值。
协处理器状态寄存器152的值总是被输出到等待控制电路107。在当处理器核101访问协处理器102至104中的任何一个的时候,如果在要访问的协处理器中的任务切换处理还未结束,则等待控制电路107将等待信号输出到处理器核101。等待信号是停止处理器核101的处理直到任务切换处理结束为止的信号。
当在协处理器102至104中的任务切换处理结束时,任务切换控制电路105更新在用协处理器存储寄存器151的值。
在下文中参照图3、4以及5针对使用根据相关技术的技术和使用根据示例性实施例的任务切换加速电路10的两种情况描述在多个协处理器所连接到的处理器核中的任务切换处理的流程的示例。具体地,描述了在图3中所示出的配置中应用了根据相关技术的技术的情况下和应用了根据示例性实施例的技术的情况下的处理。
图3是示出了每种技术所应用于的配置中的处理器核与协处理器之间的关系的方框图。多个协处理器202至204被连接到处理器核201。数据存储器205至208被分别连接到处理器核201和协处理器202至204。
在任务切换时,在位于处理器核201和协处理器202至204中的运算寄存器(未示出)中存储的数据的保存/恢复处理分别由处理器核201和协处理器202至204在与他们连接的数据存储器205至208上执行。另外,处理器核201和协处理器202至204能够访问数据存储器205至208、通过总线控制器210访问外部存储器(未示出)以及彼此的I/0(输入/输出)接口。
图4示出了在根据相关技术的技术被应用到图3中所示出的配置的情况下的任务切换处理的流程的示例。在根据相关技术的任务切换处理中,处理器核201对协处理器202至204中的每一个逐个地执行对运算寄存器中的数据的保存/恢复处理。
首先假定,处理器核201和协处理器202至204处于执行任务1的状态下(S200)。
例如,在如图4中从任务1切换到任务2的时候,处理器核201首先执行对处理器核201中的运算寄存器的数据的保存/恢复处理(S210)。具体地,处理器核201将被存储在包括在其中的运算寄存器中的任务1的操作的内容保存到数据存储器205。然后,处理器核201将被存储在数据存储器205中的任务2的操作的内容恢复到包括在其中的运算寄存器。
接下来,处理器核201执行对协处理器202中的运算寄存器的数据的保存/恢复处理(S211)。具体地,处理器核201将被存储在协处理器202中包括的运算寄存器中的任务1的操作的内容保存到数据存储器206。然后,处理器核201将被存储在数据存储器206中的任务2的操作的内容恢复到包括在其中的运算寄存器。因此,处理器核201从在协处理器202中包括的运算寄存器获取任务1的操作的内容并且将所获取的任务1的操作的内容存储到数据存储器206中。另外,处理器核201获取在数据存储器206中存储的任务2的操作的内容并且将所获取的任务2的操作的内容存储到在协处理器202中包括的运算寄存器中。
然后,处理器核201执行对在协处理器203中的运算寄存器的数据的保存/恢复处理(S212)。在这个步骤中,处理器核201按照与步骤S211中相同的方式来执行对操作的内容的保存/恢复处理。
最后,处理器核201执行对在协处理器204中的运算寄存器的数据的保存/恢复处理(S213)。在这个步骤中,处理器核201按照与步骤S211和S212中的相同的方式来执行对操作的内容的保存/恢复处理。
用于从任务1切换到任务2的保存/恢复处理从而在处理器核201和协处理器202至204中结束。因此,处理器核201和协处理器202至204开始执行任务2的处理(S220)。
当从任务2切换到任务3时,处理器核201按照与步骤S210至S213中的相同的方式来执行对运算寄存器的数据的保存/恢复处理(S221至S224)。然后,处理器核201和协处理器202至204开始执行对任务3的处理(S230)。
如上文所描述的,在根据相关技术的任务切换处理中,处理器核201通过顺序地访问在协处理器202至204中包括的运算寄存器来执行对数据的保存/恢复。因此,仅能够逐个地完成协处理器202至204的保存/恢复处理,其花费非常长的时间。
图5示出了在根据示例性实施例的技术被应用到在图3中所示出的配置的情况下的任务切换处理的流程的示例。根据示例性实施例的技术到图3中所示出的配置的应用产生了任务切换加速电路10。任务切换控制电路105、等待控制电路107以及任务-协处理器对应信息表108到处理器核201的应用产生处理器核101。运算寄存器数据保存/恢复电路106到协处理器202至204的应用产生了协处理器102至104。数据存储器206相当于数据存储器112,数据存储器207相当于数据存储器113,并且数据存储器208相当于数据存储器114。
图5示出了作为任务切换的示例的当按照任务1、任务2、任务3、任务1和任务3的顺序切换任务时的处理的流程。在这个示例中假定,任务1使用协处理器102和103,任务2使用协处理器103和104,并且任务3使用协处理器104。因此,任务-协处理器对应信息表108包含将任务1和协处理器102和103关联的信息、将任务2和协处理器103和104关联的信息以及将任务3和协处理器104关联的信息。还假定对在处理器核101的运算寄存器中存储的数据的保存处理和恢复处理被每次执行。
首先,处理器核101和协处理器102和103正在执行任务1(S100)。
在处理器核101和协处理器102和103中执行的任务被从任务1切换到任务2(S110)。具体地,处理器核控制电路120将任务切换请求信号输出到任务切换控制电路105。另外,处理核控制电路120将指示任务2的任务号的切换到任务号信号输出到任务切换控制电路105。此外,处理器核控制电路120将被存储在包括在其中的运算寄存器(未示出)中的任务1的操作的内容保存到数据存储器205并且将被存储在数据存储器205中的任务2的操作的内容恢复到包括在其中的运算寄存器(S111)。
协处理器102和103被用于任务1,并且协处理器103和104被用于任务2。因此,因为协处理器102被用于切换之前的任务1但是不用于切换之后的任务2,所以仅需要执行保存处理。另外,因为协处理器103被用于切换之前的任务1并且还用于切换之后的任务2,所以需要执行保存处理和恢复处理。此外,因为协处理器104没被用于切换之前的任务1但是用于切换之后的任务2,所以仅需要执行恢复处理。
具体地描述关于是否在这个步骤中执行保存/恢复处理的确定。任务切换控制电路105通过使用任务-协处理器对应信息表108来确定需要对其做出执行恢复处理的请求的协处理器。具体地,任务切换控制电路105将被从处理器核控制电路120输出的切换到任务号信号输出到任务-协处理器对应信息表108。任务-协处理器对应信息表108响应于被从任务切换控制电路105输出的切换到任务号信号,将指示执行具有由切换到任务号信号指示的任务号的任务的协处理器的协处理器信号输出到任务切换控制电路105。
因为由切换到任务号信号指示的任务号是任务2,所以被从任务-协处理器对应信息表108输出的协处理器信号指示协处理器103和104。因此,任务切换控制电路105确定需要向由被从任务-协处理器对应信息表108输出的协处理器信号指示的协处理器103和104做出执行恢复处理的请求。
另外,任务切换控制电路105基于在在用协处理器存储寄存器151中存储的信息确定需要对其做出执行保存处理的请求的协处理器。因为在切换之前被执行的任务是任务1,所以指示由任务1使用的协处理器102和103的信息被存储在在用协处理器存储寄存器151中。因此,任务切换控制电路105确定需要向协处理器102和103做出执行保存处理的请求。
另外,任务切换控制电路105将在协处理器状态寄存器152中存储的信息中的、与对其请求保存处理或恢复处理的协处理器102至104相对应的值更新为指示其在任务切换处理的值。
因此,任务切换控制电路105将请求执行保存处理的运算寄存器数据保存/恢复请求信号输出到协处理器102。响应于被从任务切换控制电路105输出的运算寄存器数据保存/恢复请求信号,协处理器102的运算寄存器数据保存/恢复电路106将在包括在其中的运算寄存器111中存储的任务1的操作的内容保存到数据存储器112(S112)。当保存处理结束时,运算寄存器数据保存/恢复电路106将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
另外,任务切换控制电路105将请求执行保存处理和恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器103。响应于被从任务切换控制电路105输出的运算寄存器数据保存/恢复请求信号,协处理器103的运算寄存器数据保存/恢复电路将在包括在其中的运算寄存器(未示出)中存储的任务1的操作的内容保存到数据存储器113并且将在数据存储器113中存储的任务2的操作的内容恢复到包括在其中的运算寄存器(S113)。当保存处理和恢复处理结束时,运算寄存器数据保存/恢复电路将运算寄存器保存/恢复结束信号输出到任务切换控制电路105。
此外,任务切换控制电路105将请求执行恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器104。响应于被从任务切换控制电路105输出的运算寄存器数据保存/恢复请求信号,协处理器104的运算寄存器数据保存/恢复电路将在数据存储器114中存储的任务2的操作的内容恢复到包括在其中的运算寄存器(未示出)(S114)。当恢复处理结束时,运算寄存器数据保存/恢复电路将运算寄存器保存/恢复结束信号输出到任务切换控制电路105。
当运算寄存器数据保存/恢复结束信号被从协处理器102至104输出时,任务切换控制电路105将在协处理器状态寄存器152中存储的信息中的、与已经输出运算寄存器数据保存/恢复结束信号的协处理器相对应的值更新为指示其不在任务切换处理中的值。当运算寄存器数据保存/恢复结束信号被从已被请求保存处理或恢复处理的所有协处理器102至104输出时,任务切换控制电路105将任务切换结束信号输出到处理器核控制电路120。另外,任务切换控制电路105将在用协处理器存储寄存器151的信息更新为指示执行任务2的协处理器103和104的信息。
处理器核控制电路120响应于被从任务切换控制电路105输出的任务切换结束信号开始执行任务2(S120)。具体地,其使在处理器核101中包括的操作单元执行对任务2的运算操作。另外,处理器核控制电路120将指示协处理器103和104的协处理器号的协处理器号信号和请求对任务2的运算操作的操作控制信号输出到等待控制电路107。响应于那些信号,等待控制电路107将协处理器操作控制信号输出到协处理器103和104。对任务2的运算操作从而也在协处理器103和104的操作单元中被执行。
如上文所述,对协处理器102的运算寄存器的保存处理、对协处理器103的运算寄存器的保存处理和恢复处理以及对协处理器104的运算寄存器的恢复处理被执行。因为协处理器102不用于任务2,所以不需要在协处理器102的运算寄存器111的保存处理的结束之前进行。更具体地,因为在协处理器103和104的恢复处理的结束时任务2的执行变得可能,所以仅需要在协处理器103和104中的恢复处理的结束之前进行等待。换句话说,任务切换控制电路105可以在当执行切换之后的任务的所有协处理器中的恢复处理结束时的时间点,将任务切换结束信号输出到处理器核控制电路120。
因此,任务切换控制电路105可以在当运算寄存器数据保存/恢复结束信号被从协处理器103和协处理器104输出时,将任务切换结束信号输出到处理器核控制电路120。可替代地,在仅执行保存处理的情况下,即使当保存处理还未结束时,运算寄存器数据保存/恢复电路106也可以响应于运算寄存器数据保存/恢复请求信号立即输出运算寄存器数据保存/恢复请求信号。因此,在协处理器102中的保存处理在后台执行。从而能够在协处理器102中的保存处理时间长于协处理器103和104中的保存和恢复处理时间的情况下减少用于任务切换的时间。
另一方面,在当操作控制信号被从处理器核控制电路120输出时保存/恢复处理还未结束时,等待控制电路107使处理器核101等待。具体地,当在从任务切换控制电路105输出的协处理器状态信号之中的、与由被从处理器核控制电路120输出的协处理器号信号指示的协处理器相对应的信号指示其在任务切换处理中时,等待控制电路107将等待信号输出到处理器核控制电路120。
接下来,当从任务2切换到任务3时(S130),处理器核控制电路120将任务切换请求信号和指示任务3的任务号的切换到任务号信号输出到任务切换控制电路105。
处理器核控制电路120保存任务2的操作的内容并且恢复任务3的操作的内容(S131)。
因为协处理器102不被用于切换之前的任务2和切换之后的任务3,所以不需要对协处理器102做任何事情。因为协处理器103被用于切换之前的任务2但是不用于切换之后的任务3,所以仅需要执行保存处理。注意,因为协处理器103不执行切换之后的任务3,所以对在运算寄存器中存储的数据的保存处理能够在后台中执行。因为协处理器104被用于切换之前的任务2并且还用于切换之后的任务3,所以需要执行保存处理和恢复处理。
在下文中具体地描述关于是否在此步骤中执行保存/恢复处理的确定。任务切换控制电路105将被从处理器核控制电路120输出的切换到任务号信号输出到任务-协处理器对应信息表108。因为由切换到任务号信号指示的任务号是任务3,所以任务-协处理器对应信息表108将指示协处理器104的协处理器信号输出到任务切换控制电路105。因此,任务切换控制电路105确定需要向由协处理器信号指示的协处理器104做出执行恢复处理的请求。
另外,在在用协处理器存储寄存器151中存储的信息指示执行任务2的协处理器103和104。因此,任务切换控制电路105确定需要向协处理器103和104做出执行保存处理的请求。
此外,任务切换控制电路105将在在协处理器状态寄存器152中存储的信息中的、与对其请求保存处理或恢复处理的协处理器103和104相对应的值更新为指示其在任务切换处理中的值。
因此,因为对于协处理器102不需要保存处理和恢复处理,所以任务切换控制电路105不将运算寄存器数据保存/恢复请求信号输出到协处理器102。
另外,任务切换控制电路105将请求执行保存处理的运算寄存器数据保存/恢复请求信号输出到协处理器103。协处理器103的运算寄存器数据保存/恢复电路从而执行保存处理(S133)。注意,在此步骤中的保存处理在后台执行,如上文所述。当保存处理结束时,运算寄存器数据保存/恢复电路将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
另外,任务切换控制电路105将请求执行保存处理和恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器104。协处理器104的运算寄存器数据保存/恢复电路从而执行保存处理和恢复处理(S134)。当保存处理和恢复处理结束时,运算寄存器数据保存/恢复电路将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
当运算寄存器数据保存/恢复结束信号被从协处理器103和104输出时,任务切换控制电路105将在协处理器状态寄存器152中存储的信息中的、与已经输出运算寄存器数据保存/恢复结束信号的协处理器相对应的值更新为指示其不在任务切换处理中的值。当运算寄存器数据保存/恢复结束信号被从已经对其请求保存处理或恢复处理的协处理器103和104中的两者都输出了时,任务切换控制电路105将任务切换结束信号输出到处理器核控制电路120。另外,任务切换控制电路105将在用协处理器存储寄存器151的信息更新为指示执行任务3的协处理器104的信息。处理器核控制电路120响应于被从任务切换控制电路105输出的任务切换结束信号开始执行任务3(S140)。
接下来,当从任务3切换到任务1时(S150),处理器核控制电路120将任务切换请求信号和指示任务1的任务号的切换到任务号信号输出到任务切换控制电路105。
处理器核控制电路120保存任务2的操作的内容并且恢复任务1的操作的内容(S151)。
因为协处理器102被用于切换之后的任务1但是自从先前对任务1的执行起已经未被使用,所以不需要执行保存处理和恢复处理。因为协处理器103不被用于切换之前的任务3但是用于切换之后的任务1,所以仅需要执行恢复处理。因为协处理器104被用于切换之前的任务3但是不用于切换之后的任务1,所以仅需要执行保存处理。因为协处理器104不执行切换之后的任务1,所以能够在后台执行恢复处理。
在下文中具体地描述关于是否在此步骤中执行保存/恢复处理的确定。任务切换控制电路105将被从处理器核控制电路120输出的切换到任务号信号输出到任务-协处理器对应信息表108。因为由切换到任务号信号指示的任务号是任务1,所以任务-协处理器对应信息表108将指示协处理器102和103的协处理器信号输出到任务切换控制电路105。因此,任务切换控制电路105确定需要对由协处理器信号指示的协处理器102和103做出执行恢复处理的请求。
另外,在在用协处理器存储寄存器151中存储的信息指示执行任务3的协处理器104。因此,任务切换控制电路105确定需要向协处理器104做出执行保存处理的请求。
此外,任务切换控制电路105将在存储在协处理器状态寄存器152中的信息中的、与对其请求保存处理或恢复处理的协处理器102至104相对应的值更新为指示其在任务切换处理中的值。
因此,任务切换控制电路105将请求执行恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器102。然而,尽管协处理器102被用于切换之后的任务1,但是如上文所描述不需要恢复处理。
因此,任务切换控制电路105可以抑制将运算寄存器数据保存/恢复请求信号输出到协处理器102。在这种情况下,任务切换控制电路105不更新在协处理器状态寄存器152中存储的信息中的、与协处理器102相对应的值。
可替代地,协处理器102的运算寄存器数据保存/恢复电路106可以将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105而不用响应于运算寄存器数据保存/恢复请求信号执行恢复处理。例如,任务切换控制电路105或运算寄存器数据保存/恢复电路106可以存储指示运算寄存器111中存储的操作的内容是针对何任务的信息,使得能够基于该信息如上文所描述做出关于是否执行恢复处理的确定。
另外,任务切换控制电路105将请求执行恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器103。协处理器103的运算寄存器数据保存/恢复电路从而执行恢复处理(S153)。当恢复处理结束时,运算寄存器数据保存/恢复电路将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
此外,任务切换控制电路105将请求执行保存处理的运算寄存器数据保存/恢复请求信号输出到协处理器104。协处理器104的运算寄存器数据保存/恢复电路从而执行保存处理(S154)。在此步骤中的保存处理在后台执行,如上文所描述。当保存处理结束时,运算寄存器数据保存/恢复电路将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
当运算寄存器数据保存/恢复结束信号被从已经对其请求保存处理或恢复处理的协处理器输出时,任务切换控制电路105将在存储在协处理器状态寄存器152中的信息中的、与已经输出运算寄存器数据保存/恢复结束信号的协处理器相对应的值更新为指示其不在任务切换处理中的值。当运算寄存器数据保存/恢复结束信号被从已经对其请求保存处理或恢复处理的所有协处理器都输出了时,任务切换控制电路105将任务切换结束信号输出到处理器核控制电路120。另外,任务切换控制电路105将在用协处理器存储寄存器151的信息更新为指示执行任务1的协处理器102和103的信息。处理器核控制电路响应于被从任务切换控制电路105输出的任务切换结束信号开始执行任务1(S160)。
接下来,当从任务1切换到任务3时(S170),处理器核控制电路120将任务切换请求信号和指示任务3的任务号的切换到任务号信号输出到任务切换控制电路105。
处理器核控制电路120保存任务1的操作的内容并且恢复任务3的操作的内容(S171)。
因为协处理器104被用于切换之后的任务3但是由于自从先前对任务3的执行起已经未被使用,所以不需要执行恢复处理。因为协处理器102和103被用于切换之前的任务1但是不用于切换之后的任务3,所以仅需要执行保存处理。因为协处理器102和103不执行切换之后的任务3,所以能够在后台执行保存处理。
在下文中具体地描述关于是否在此步骤中执行保存/恢复处理的确定。任务切换控制电路105将被从处理器核控制电路120输出的切换到任务号信号输出到任务-协处理器对应信息表108。因为由切换到任务号信号指示的任务号是任务3,所以任务-协处理器对应信息表108将指示协处理器104的协处理器信号输出到任务切换控制电路105。因此,任务切换控制电路105确定需要向由协处理器信号指示的协处理器104做出执行恢复处理的请求。
另外,在在用处理器存储寄存器151中存储的信息指示执行任务1的协处理器102和103。因此,任务切换控制电路105确定需要向协处理器102和103做出执行保存处理的请求。
此外,任务切换控制电路105将在存储在协处理器状态寄存器152中的信息中的、与对其请求保存处理或恢复处理的协处理器102至104相对应的值更新为指示其在任务切换处理中的值。
因此,任务切换控制电路105将请求执行保存处理的运算寄存器数据保存/恢复请求信号输出到协处理器102和103。协处理器102和103的运算寄存器数据保存/恢复电路从而执行保存处理(S172、S173)。在此步骤中保存处理在后台执行,如上文所述。当保存处理结束时,运算寄存器数据保存/恢复电路将运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
此外,任务切换控制电路105将请求执行恢复处理的运算寄存器数据保存/恢复请求信号输出到协处理器104。然而,尽管协处理器104被用于切换之后的任务1,但是如上文所描述不需要恢复处理。因此,任务切换控制电路105可以抑制执行恢复处理,正如在步骤S150中的协处理器102一样。
当运算寄存器数据保存/恢复结束信号被从已经对其请求保存处理或恢复处理的协处理器输出时,任务切换控制电路105将在存储在协处理器状态寄存器152中的信息中的、与已经输出运算寄存器数据保存/恢复结束信息的协处理器相对应的值更新为指示其不在任务切换处理中的值。当运算寄存器数据保存/恢复结束信号被从已经对其请求保存处理或恢复处理的所有协处理器都输出了时,任务切换控制电路105将任务切换结束信号输出到处理器核控制电路120。另外,任务切换控制电路105将在用协处理器存储寄存器151的信息更新为指示执行任务3的协处理器104的信息。处理器核控制电路响应于被从任务切换控制电路105输出的任务切换结束信号开始执行任务3(S180)。
之后,任务切换加速电路10根据要执行的任务按照相同的方式来执行保存/恢复处理。
当存在仅用于一个任务的协处理器时,对运算寄存器中存储的数据的保存/恢复处理可以被全部跳过。
如上文中所描述的,在此示例性实施例中,包括了当多个协处理器102至104中的至少一个执行的任务从第一任务切换到第二任务时,将请求保存/恢复存储在包括在协处理器中的运算寄存器中的操作的内容的运算寄存器数据保存/恢复请求信号输出到协处理器的任务切换控制电路105。另外,与协处理器102至104中的每一个相对应,包括了响应于运算寄存器数据保存/恢复请求信号执行将与存储在运算寄存器中的第一任务有关的操作的内容保存到数据存储器和将与存储在数据存储器中的第二任务有关的操作的内容恢复到运算寄存器中的至少一个的运算寄存器数据保存/恢复电路。
在此配置中,运算寄存器数据保存/恢复请求信号被并行地从任务切换控制电路105输出到运算寄存器数据保存/恢复电路,使得能够并行地执行对操作的内容的保存/恢复处理。从而能够减少对于在多个协处理器中的任务切换所需要的时间。
另外,根据示例性实施例,请求恢复操作的内容的运算寄存器数据保存/恢复请求信号被仅输出到与执行切换之后的第二任务的运算操作的协处理器相对应的运算寄存器数据保存/恢复电路。
此外,请求保存操作的内容的运算寄存器数据保存/恢复请求信号被仅输出到与基于在在用协处理器存储寄存器151中存储的信息执行切换之前的第一任务的运算操作的协处理器相对应的运算寄存器数据保存/恢复电路。
此外,运算寄存器数据保存/恢复电路106包括存储指示切换之前的任务的信息的任务号存储寄存器161。当由被存储在任务号存储寄存器161中的信息指示的任务和由被从任务切换控制电路105输出的切换到任务号信号指示的任务相同时,运算寄存器数据保存/恢复电路160可以抑制执行操作的内容的保存和恢复中的至少一个。
在此配置中,能够仅针对需要保存/恢复操作的内容的协处理器执行对操作的内容的保存/恢复。因为不执行不需要的保存/恢复处理,所以能够减少对于在多个协处理器中的任务切换所需要的时间。
此外,根据示例性实施例,当在多个运算寄存器数据保存/恢复电路之中的、与执行切换之后的第二任务的运算操作的处理器相对应的多个运算寄存器数据保存/恢复电路中结束对操作的内容的恢复时,通知任务切换的结束的任务切换结束信号被输出到处理器核控制电路120。
在此配置中,能够执行切换之后的第二任务的运算操作,同时在仅需要在后台保存操作的内容的协处理器中执行保存处理。这消除了对于等待在仅需要保存操作的内容的协处理器中的保存处理的需要,并且从而能够进一步减少对于在多个协处理器中的任务切换所需要的时间。
(示例1)
图6示出了根据本发明的示例性实施例的在任务切换加速电路10中使用的任务切换控制电路105的示例。在此示例中,示出了与三个协处理器102至104相对应的任务切换控制电路105的示例。
任务切换控制电路105包括在用协处理器存储寄存器501至503、协处理器状态寄存器504至506、与(AND)电路511至516、或(ON)电路521至523以及或非(NOR)电路531。图6因此示出了其中在用协处理器存储寄存器151包括在用协处理器存储寄存器501至503,并且协处理器状态寄存器152包括协处理器状态寄存器504至506的情况。
当切换要在处理器核102至104中执行的任务时,处理器核101的处理器核控制电路120将指示在切换之后的任务号的切换到任务号信号和指示请求任务切换的值“1”的任务切换请求信号输出到任务切换控制电路105。当切换到任务号信号和任务切换请求信号被从处理器核控制电路120通知时,任务切换控制电路105首先将切换到任务号信号输出到任务-协处理器对应信息表108。
任务-协处理器对应信息表108输出与协处理器102至104相对应的信号。在此信号中,与被用于具有由切换到任务号信号指示的任务号的任务的协处理器相对应的信号是“1”,并且与其它协处理器相对应的信号是“0”。在那些信号当中,与协处理器102相对应的信号被输出到在用协处理器存储寄存器501和与电路511,与协处理器103相对应的信号被输出到在用协处理器存储寄存器502和与电路513,并且与协处理器104相对应的信号被输出到在用协处理器存储寄存器503和与电路513。
与电路511、513以及515执行信号和任务切换请求信号的与运算。与电路511、513以及515将通过与运算生成的信号作为运算寄存器数据恢复请求信号分别输出到协处理器102至104。具体地,与电路511将所生成的信号输出到协处理器102和或电路521,与电路513将所生成的信号输出到协处理器103和或电路522,并且与电路515将所生成的信号输出到协处理器104和或电路523。
另外,在用协处理器存储寄存器501至503与相应的协处理器102至104相对应。在用协处理器存储寄存器501至503中的每一个存储指示对应的协处理器102至104是否用于切换之前的任务的信息。具体地,在用协处理器存储寄存器501至503中的每一个在当对应的协处理器被用于切换之前的任务时存储“1”,并且在当其不,用于切换之前的任务时存储“0”。在用协处理器存储寄存器501将存储在其中的值输出到与电路512,在用协处理器存储寄存器502将存储在其中的值输出到与电路514,并且在用协处理器存储寄存器504将存储在其中的值输出到与电路516。
与电路512、514以及516执行从在用协处理器存储寄存器501至503输出的值和任务切换请求信号的与运算。与电路512、514以及516将通过与运算生成的信号作为运算寄存器数据保存请求信号分别输出到协处理器102至104。具体地,与电路512将所生成的信号输出到协处理器102和或电路521,与电路513将所生成的信号输出到协处理器103和或电路522,并且与电路514将所生成的信号输出到协处理器104和或电路523。
或电路521至523将通过运算寄存器数据存储请求信号和用于协处理器102至104中的每一个的运算寄存器数据保存请求信号的或运算获得的信号分别输出到协处理器状态寄存器504至506。从或电路521至523输出的信号的值从而被分别存储到与被请求恢复处理或保存处理的协处理器相对应的协处理器状态寄存器504至506中的一个中。协处理器状态寄存器504与协处理器102相对应,协处理器状态寄存器505与协处理器103相对应,并且协处理器状态寄存器506与协处理器104相对应。另外,协处理器状态寄存器504至506中的每一个将存储在其中的值作为协处理器状态信号输出到等待控制电路107和或非电路531。
协处理器状态寄存器504至506中的每一个将存储在其中的值输出到或非电路531并且进一步将其作为协处理器状态信号输出到等待控制电路107。当任务切换结束信号被从被请求恢复处理或保存处理的协处理器发送回时,与该协处理器相对应的协处理器状态寄存器清除存储在其中的值。任务切换结束信号是指示任务切换处理已经结束的信号。具体地,与正在执行切换处理的协处理器相对应的协处理器状态寄存器的协处理器状态信号为“1”,并且与未正在执行切换处理的协处理器相对应的协处理器状态寄存器的协处理器状态信号为“0”。当所有协处理器状态信号都变成“0”时,或非电路531将任务切换结束信号设置为“1”并且将其输出到处理器核控制电路120。
当具有值“1”的任务切换结束信号被从或非电路531输出时,处理器核控制电路120将不请求任务切换的具有值“0”的任务切换请求信号输出到任务切换控制电路105。当具有值“0”的任务切换请求信号被从处理器核控制电路120输出时,在用协处理器存储寄存器501至503中的每一个存储从任务-协处理器对应信息表108输出的信号值。另外,与电路511至516将运算寄存器数据恢复请求信号和具有值“0”的运算寄存器数据保存请求信号输出到协处理器102至104和或电路521至523。
图7示出了根据本发明的示例性实施例的在任务切换加速电路10中使用的运算寄存器数据保存/恢复电路106的示例。运算寄存器数据保存/恢复电路106位于连接到处理器核101的协处理器102至104中的每一个。
运算寄存器数据保存/恢复电路106包括任务号存储寄存器601、比较器602、寄存器保存/恢复控制电路603、寄存器地址生成电路604以及数据存储器地址生成电路605。
任务号存储寄存器601存储协处理器上一次使用任务的任务号。任务号存储寄存器601相当于任务号存储寄存器161。任务号存储寄存器601将指示存储在其中的任务号的信号输出到比较器602和数据存储器地址生成电路605。
比较器602将由被从任务切换控制电路105输出的切换到任务号信号指示的任务号与被从任务号存储寄存器601输出的信号指示的任务号进行比较。当任务号匹配时,比较器602输出指示“1”的信号,并且当任务号不匹配时,其输出指示“0”的信号。从比较器602输出的信号被输入到与电路621和622以及或电路631。注意,从比较器602输出的信号被反转并且输入到与电路621和622。
与电路621和622执行被从任务切换控制电路105输出的运算寄存器数据保存请求信号和运算寄存器数据恢复请求信号和被从比较器602输出的信号的反信号的与运算。与电路621和622将通过与运算生成的信号输出到寄存器保存/恢复控制电路603。具体地,当任务号匹配时,运算寄存器数据保存请求信号和运算寄存器数据恢复请求信号被忽略。这是因为,当先前的任务号相同时,要使用的值已经被存储在运算寄存器111中并且因此不需要执行保存/恢复处理。另外,在这种情况下,或电路631执行被从比较器602输出的指示“1”的信号的或运算。因此,或电路631将指示通知保存/恢复处理已经结束的值“1”的运算寄存器数据保存/恢复结束信号输出到任务切换控制电路105。
寄存器保存/恢复控制电路603通过与电路621和622接收运算寄存器数据保存请求信号和运算寄存器数据恢复请求信号并且然后根据那些信号的值开始保存处理或恢复处理。具体地,当被从与电路621输出的运算寄存器数据保存请求信号的值是“1”时,寄存器保存/恢复控制电路603执行保存处理。另外,当被从与电路622输出的运算寄存器数据恢复请求信号的值是“1”时,寄存器保存/恢复控制电路603执行恢复处理。
当执行保存处理或恢复处理时,寄存器保存/恢复控制电路603激活寄存器地址生成电路604和数据存储器地址生成电路605。寄存器地址生成电路604在保存或恢复时生成运算寄存器号。数据存储器地址生成电路605生成用于保存或恢复运算寄存器值的数据存储器的地址。注意,被从任务切换控制电路105输出的切换到任务号信号和被从任务号存储寄存器601输出的信号被输入到数据存储器地址生成电路605。因此,切换到任务号和切换原任务号还被用于数据存储器地址生成。这是因为需要改变数据存储器112的地址以根据任务号执行针对运算寄存器111的数据的保存或恢复。
数据存储器地址生成电路605基于切换原任务号在运算寄存器111的数据要被保存到的数据存储器112中生成地址。数据存储器地址生成电路605基于切换到任务号在其中存储了要被恢复到运算寄存器111的数据的数据存储器112中生成地址。寄存器保存/恢复控制电路603通过使用由寄存器地址生成电路604和数据存储器地址生成电路605生成的地址在运算寄存器111与数据存储器112之间传送数据。
当任务切换处理在所有协处理器102至104中都结束了时,运算寄存器数据恢复请求信号和具有值“0”的运算寄存器数据保存请求信号被输入到或电路611和与电路621和622。在这种情况下,或电路611将指示或运算结果“0”的信号输出到任务号存储寄存器601。当指示“0”的信号被从或电路611输出时,任务号存储寄存器601将存储在其中的值更新为由切换到任务号信号指示的切换到任务号。
图8示出了根据本发明的示例性实施例的在任务切换加速电路10中使用的等待控制电路107的示例。
等待控制电路107包括解码器701、选择器702至704、与电路711至716以及或电路721。
当处理器核101的处理器核控制电路120进行诸如向协处理器102至104请求操作的控制时,其将指示要对其进行控制的协处理器的号的协处理器号信号和指示控制的细节的操作控制信号输出到等待控制电路107。解码器701将被从处理器核控制电路120输出的处理器号信号转换成具有协处理器的号的宽度的信号(其中,与由处理器核控制电路120指定为控制的目标的协处理器相对应的比特是“1”)并且输出该信号。具体地,解码器701将与协处理器102相对应的信号输出到与电路711和714,将与协处理器103相对应的信号输出到与电路712和715,并且将与协处理器104相对应的信号输出到与电路713和716。
与电路711至713执行被从解码器701输出的信号和从被从任务切换控制电路105输出的协处理器状态信号反转的信号的与运算。与电路711至713将通过与运算生成的信号作为数据选择信号输出到选择器702至704。具体地,被从协处理器状态寄存器504输出的协处理器状态信号被输入到与电路711和714,被从协处理器状态寄存器505输出的协处理器状态信号被输入到与电路712和715,并且被从协处理器状态寄存器506输出的协处理器状态信号被输入到与电路713和716。另外,与电路711将所生成的信号输出到选择器702,与电路712将所生成的信号输出到选择器703,并且与电路713将所生成的信号输出到选择器704。
选择器702至704中的每一个选择从处理器核控制电路120输出的操作控制信号或者对于每个处理器的“0”。当数据选择信号是“0”时,选择器702至704将“0”输出到对应的协处理器,并且当数据选择信号是“1”时,选择器702至704将操作控制信号输出到对应的协处理器。因此,操作控制信号仅当由协处理器号指定的协处理器的协处理器状态信号是“0”时才被作为协处理器操作控制信号输出到该协处理器。从而能够禁止从处理器核控制电路120向在任务切换处理中的处理器请求操作。
另一方面,与电路714至716执行被从解码器701输出的信号和被从任务切换控制电路105输出的协处理器状态信号的与运算。与电路714至716将通过与运算生成的信号输出到或电路712。或电路721执行被从与电路714至716输出的信号的或运算。或电路712将通过或运算生成的信号作为等待信号输出到处理器核控制电路120。因此,当由协处理器号指定的要被控制的协处理器的协处理器状态信号是“1”时,等待信号是“1”,并且处理器核101的处理停止。因此这给出了当处理器核101访问对运算寄存器数据的保存处理或恢复处理还未结束的协处理器时停止处理器核101直到保存处理或恢复处理结束为止的功能。从而能够禁止从处理器核控制电路120向在任务切换处理中的协处理器请求操作。
应该注意的是,本发明不局限于上述示例性实施例,并且在不背离本发明的范围的情况下可以做出各种改变和修改。
尽管在示例性实施例中通过说明的方式描述了协处理器的数目是三的情况,但是协处理器的数目不限于此。
另外,尽管在上述描述中被输入到电路105、106、107以及120或者从电路105、106、107以及120输出的信号的值是“0”或“1”,但是它们不限于这样的值。
本发明还可以适用于在移动电话或AV装置中使用的信号处理LSI。
本申请基于并且要求于2010年4月30日提交的日本专利申请No.2010-104880的优先权权益,其公开内容以其整体通过引用结合于此。
参考符号列表
10任务切换加速电路10
30信息处理装置
101,201,301处理器核
102,103,104,202,203,204,311,312,31N协处理器
105任务切换控制电路
106运算寄存器数据保存/恢复电路
107等待控制电路
108任务-协处理器对应信息表
109协处理器操作控制电路
110协处理器操作单元
111运算寄存器
112,113,114,205,206,207,208数据存储器
120处理器核控制电路
151在用协处理器存储寄存器
152协处理器状态寄存器
161任务号存储寄存器
209指令存储器
210总线控制器
302任务切换控制单元
321,322,32N操作单元
331,332,33N操作存储单元
341,342,34N保存/存储单元
351,352,35N保存存储单元
501,502,503在用协处理器存储寄存器
504,505,506协处理器状态寄存器
601任务号存储寄存器
602比较器
603寄存器保存/存储控制电路
604寄存器地址生成电路
605数据存储器地址生成电路
701解码器电路
702,703,704选择器

Claims (9)

1.一种信息处理装置,包括:
处理器核;
多个协处理器,包括:用于响应于来自所述处理器核的请求执行操作的操作装置,以及用于存储所述操作装置的操作的内容的操作存储装置;
多个保存存储装置,用于存储从所述操作存储装置保存的操作的内容,所述多个保存存储装置分别与所述多个协处理器相对应;
任务切换控制装置,用于当将所述多个协处理器中的至少一个协处理器执行操作的任务从第一任务切换到第二任务时,输出请求保存/恢复操作的内容的保存/恢复请求信号;以及
多个保存/恢复装置,分别与所述多个协处理器相对应,其中
所述多个保存/恢复装置中的每一个响应于所述保存/恢复请求信号执行将所述操作存储装置中存储的与所述第一任务有关的操作的内容保存到所述保存存储装置和将所述保存存储装置中存储的与所述第二任务有关的操作的内容恢复到所述操作存储装置中的至少一个。
2.根据权利要求1所述的信息处理装置,其中
所述保存/恢复装置包括用于存储指示切换之前的任务的任务信息的任务信息存储装置,
所述任务切换控制装置将指示所述第二任务的任务信息与所述保存/恢复请求信号一起输出到所述保存/恢复装置,
当从所述任务切换控制装置输出的任务信息与在所述任务信息存储装置中存储的任务信息相同时,所述保存/恢复装置不执行操作的内容的保存和恢复,并且将从所述任务切换控制装置输出的任务信息存储到所述任务信息存储装置中。
3.根据权利要求1或2所述的信息处理装置,其中
所述保存/恢复请求信号包含请求保存切换之前的任务的操作的内容的保存请求信号和请求恢复切换之后的任务的操作的内容的恢复请求信号,并且
所述任务切换控制装置将请求恢复所述第二任务的操作的内容的恢复请求信号仅输出到所述多个保存/恢复装置之中的、与执行所述第二任务的操作的协处理器相对应的保存/恢复装置。
4.根据权利要求3所述的信息处理装置,其中
所述任务切换控制装置包括用于存储指示执行切换之前的任务的操作的协处理器的协处理器信息的协处理器信息存储装置,并且
所述任务切换控制装置基于所述协处理器信息将所述保存请求信号仅输出到所述多个保存/恢复装置之中的、与执行所述第一任务的操作的协处理器相对应的保存/恢复装置,并且将指示执行所述第二任务的操作的协处理器的处理器信息存储到所述协处理器信息存储装置中。
5.根据权利要求4所述的信息处理装置,进一步包括:
对应信息存储装置,用于存储将任务和执行任务的操作的协处理器关联的对应信息,其中
所述处理器核包括用于管理所述多个协处理器执行操作的任务的处理器核控制装置,
所述处理器核控制装置当从所述第一任务切换到所述第二任务时将指示所述第二任务的任务信息输出到所述任务切换控制装置,并且
所述任务切换控制装置基于所述协处理器信息指定执行由从所述处理器核控制装置输出的所述任务信息指示的所述第二任务的操作的协处理器,将所述恢复请求信号输出到与所指定的协处理器相对应的保存/恢复装置,并且将指示所指定的协处理器的协处理器信息存储到所述处理器信息存储装置中。
6.根据权利要求1至4中的任一项所述的信息处理装置,其中
所述处理器核包括用于管理所述多个协处理器执行操作的任务的处理器核控制装置,
所述任务切换控制装置当在所述多个保存/恢复装置之中的、与执行所述第二任务的操作的协处理器相对应的保存/恢复装置中的操作的内容的恢复结束时,将通知从所述第一任务切换到所述第二任务的结束的任务切换结束信号输出到所述处理器核控制装置,以及
所述处理器核控制装置响应于所述任务切换结束信号向所述协处理器请求所述第二任务的操作。
7.根据权利要求1至6中的任一项所述的信息处理装置,其中,当在与执行所述第二任务的运算的协处理器相对应的保存/恢复装置中的操作的内容的恢复还未结束时,所述信息处理装置禁止从所述处理器核向执行所述第二任务的操作的协处理器请求所述第二任务的操作。
8.根据权利要求1至7中的任一项所述的信息处理装置,其中
所述处理器核包括所述任务切换控制装置,并且
所述协处理器包括所述保存/恢复装置。
9.一种任务切换方法,包括:
当所述多个协处理器中的至少一个执行操作的任务从第一任务切换到第二任务时,处理器核将请求保存/恢复任务的操作的内容的保存/恢复请求信号输出到响应于来自所述处理器核的请求执行任务的操作的多个协处理器,以及
所述多个协处理器中的每一个响应于从所述处理器核输出的所述保存/恢复请求信号,执行保存所述第一任务的操作的内容和恢复所述第二任务的操作的内容中的至少一个。
CN201180021923.XA 2010-04-30 2011-01-21 信息处理装置和任务切换方法 Expired - Fee Related CN102870095B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010-104880 2010-04-30
JP2010104880 2010-04-30
PCT/JP2011/000328 WO2011135759A1 (ja) 2010-04-30 2011-01-21 情報処理装置及びタスク切り替え方法

Publications (2)

Publication Number Publication Date
CN102870095A true CN102870095A (zh) 2013-01-09
CN102870095B CN102870095B (zh) 2016-12-14

Family

ID=

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281365A (zh) * 2013-05-20 2013-09-04 深圳市京华科讯科技有限公司 分布式虚拟化架构
CN105045138A (zh) * 2014-04-30 2015-11-11 发那科株式会社 切换顺序程序时输出切换预告信号的控制装置
CN108268281A (zh) * 2017-01-04 2018-07-10 中科创达软件股份有限公司 处理器协同方法及电路
CN108268939A (zh) * 2016-12-30 2018-07-10 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
CN110750304A (zh) * 2019-09-30 2020-02-04 百富计算机技术(深圳)有限公司 提升任务切换效率的方法及终端设备
CN112799792A (zh) * 2021-02-01 2021-05-14 安徽芯纪元科技有限公司 一种嵌入式操作系统的任务上下文寄存器保护方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160446A1 (en) * 2003-02-18 2004-08-19 Gosalia Anuj B. Multithreaded kernel for graphics processing unit
CN1609812A (zh) * 2003-02-18 2005-04-27 微软公司 用于增强协处理器性能的系统和方法
CN1753027A (zh) * 2004-09-22 2006-03-29 索尼计算机娱乐公司 高效地进行图像处理的信息处理装置
CN101324839A (zh) * 2007-06-15 2008-12-17 松下电器产业株式会社 信息处理装置
US20100005275A1 (en) * 2007-03-20 2010-01-07 Fujitsu Limited Multiprocessing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160446A1 (en) * 2003-02-18 2004-08-19 Gosalia Anuj B. Multithreaded kernel for graphics processing unit
CN1609812A (zh) * 2003-02-18 2005-04-27 微软公司 用于增强协处理器性能的系统和方法
CN1753027A (zh) * 2004-09-22 2006-03-29 索尼计算机娱乐公司 高效地进行图像处理的信息处理装置
US20100005275A1 (en) * 2007-03-20 2010-01-07 Fujitsu Limited Multiprocessing system
CN101324839A (zh) * 2007-06-15 2008-12-17 松下电器产业株式会社 信息处理装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281365A (zh) * 2013-05-20 2013-09-04 深圳市京华科讯科技有限公司 分布式虚拟化架构
CN103281365B (zh) * 2013-05-20 2016-12-28 深圳市京华科讯科技有限公司 分布式虚拟化架构
CN105045138A (zh) * 2014-04-30 2015-11-11 发那科株式会社 切换顺序程序时输出切换预告信号的控制装置
CN105045138B (zh) * 2014-04-30 2017-08-25 发那科株式会社 切换顺序程序时输出切换预告信号的控制装置
CN108268939A (zh) * 2016-12-30 2018-07-10 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
CN108268281A (zh) * 2017-01-04 2018-07-10 中科创达软件股份有限公司 处理器协同方法及电路
CN108268281B (zh) * 2017-01-04 2021-12-07 中科创达软件股份有限公司 处理器协同方法及电路
CN110750304A (zh) * 2019-09-30 2020-02-04 百富计算机技术(深圳)有限公司 提升任务切换效率的方法及终端设备
CN110750304B (zh) * 2019-09-30 2022-04-12 百富计算机技术(深圳)有限公司 提升任务切换效率的方法及终端设备
CN112799792A (zh) * 2021-02-01 2021-05-14 安徽芯纪元科技有限公司 一种嵌入式操作系统的任务上下文寄存器保护方法
CN112799792B (zh) * 2021-02-01 2023-12-05 安徽芯纪元科技有限公司 一种嵌入式操作系统的任务上下文寄存器保护方法

Also Published As

Publication number Publication date
JPWO2011135759A1 (ja) 2013-07-18
EP2565786A1 (en) 2013-03-06
US9043806B2 (en) 2015-05-26
US20130036426A1 (en) 2013-02-07
WO2011135759A1 (ja) 2011-11-03
EP2565786A4 (en) 2017-07-26
JP5776688B2 (ja) 2015-09-09

Similar Documents

Publication Publication Date Title
US5459864A (en) Load balancing, error recovery, and reconfiguration control in a data movement subsystem with cooperating plural queue processors
KR101782313B1 (ko) 예외 이벤트 처리 장치 및 방법
US7305499B2 (en) DMA controller for controlling and measuring the bus occupation time value for a plurality of DMA transfers
JP5776688B2 (ja) 情報処理装置及びタスク切り替え方法
US10467106B2 (en) Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time
CN110851246A (zh) 一种批量任务处理方法、装置、系统及存储介质
US10031773B2 (en) Method to communicate task context information and device therefor
CN107704310B (zh) 一种实现容器集群管理的方法、装置和设备
CN116467061B (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN111208933A (zh) 数据访问的方法、装置、设备和存储介质
US20130247058A1 (en) System for scheduling the execution of tasks based on logical time vectors
US7921220B2 (en) Reducing occurrences of two-phase commits in a multi-node computing system
US20240045787A1 (en) Code inspection method under weak memory ordering architecture and corresponding device
US11068463B2 (en) System and method for managing log data
US7783691B2 (en) Sharing of a logic operator having a work register
CN114090466A (zh) 一种指令处理装置、方法、计算机设备及存储介质
CN102870095B (zh) 信息处理装置和任务切换方法
CN111913812A (zh) 一种数据处理方法、装置、设备及存储介质
JPH0754467B2 (ja) データ処理装置
CN104035811B (zh) 虚拟机现场数据的处理方法和装置
US20240045711A1 (en) Preempting a quantum program in a quantum computing device
CN107729211A (zh) 一种mcu系统的状态响应方法
JPS6376028A (ja) 仮想計算機システムにおける命令ステツプ実行制御方式
CN116225532A (zh) 一种支持加速向量运算的通用处理器
JP3057797B2 (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161214

Termination date: 20210121