CN110383259B - 计算处理装置和信息处理系统 - Google Patents

计算处理装置和信息处理系统 Download PDF

Info

Publication number
CN110383259B
CN110383259B CN201780084019.0A CN201780084019A CN110383259B CN 110383259 B CN110383259 B CN 110383259B CN 201780084019 A CN201780084019 A CN 201780084019A CN 110383259 B CN110383259 B CN 110383259B
Authority
CN
China
Prior art keywords
command
state
state machine
perform
register
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
CN201780084019.0A
Other languages
English (en)
Other versions
CN110383259A (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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions 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 Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Publication of CN110383259A publication Critical patent/CN110383259A/zh
Application granted granted Critical
Publication of CN110383259B publication Critical patent/CN110383259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

本发明的目的是通过简单的配置来改善处理器的地址空间与计算处理装置的本地存储器之间的数据传输的效率。本地存储器存储与处理器的地址空间不同的本地区域。数据传输单元执行在地址空间与本地存储器之间传输数据的传输过程。计算处理单元在已经存储在本地存储器中的数据之间执行计算处理。命令寄存器组在每个寄存器中保持已经从处理器接收的一系列命令中的每个命令。状态机管理数据传输单元和计算处理单元中的处理的状态。控制单元进行控制以使命令寄存器组保持命令,并且还进行控制以使命令寄存器组根据状态机管理的状态将已经保持在命令寄存器组中的命令供应给数据传输单元或计算处理单元。

Description

计算处理装置和信息处理系统
技术领域
本技术涉及计算处理装置,并且更具体地,涉及在处理器外部提供计算功能的计算处理装置和包括该计算处理装置的信息处理系统。
背景技术
作为用于减少处理器的负载的技术,已知一种通过使用处理器外部的计算处理装置来实现一部分计算功能的技术。计算处理装置通常被称为协同处理器。计算处理装置的应用范围广泛,包括浮点计算、FFT等。计算处理装置内部具有专用存储器区域。在处理器和计算处理装置均可以访问的公共存储设备与计算处理装置的专用存储器区域之间,通过DMA(直接存储器访问)传输来交换数据项。
在DMA传输中,在要传输的数据项分布到多个区域的情况下,需要进行从处理器向DMA传输单元多次指定地址的控制。通常,进行控制以使得处理器接收DMA传输的传输结束的中断通知,并在适当时向DMA传输单元给予必要的控制数据。由于频繁发生DMA中断通知处理,因此处理器负载不轻,这可能降低处理器的利用效率。另外,DMA中断通知需要处理器指示DMA传输的下一操作。因此,在处理器进行其他更高优先级的处理并且不能针对DMA中断请求向DMA传输单元指示处理内容的情况下,DMA传输单元等待处理内容的指令并且DMA传输效率降低。
因此,已经提出在处理器与DMA传输单元之间设置用于存储控制内容(命令)的命令缓冲器(例如,参见专利文献1)。具体地,处理器将预先确定的多个控制内容写入命令缓冲器,并且命令缓冲器在来自DMA传输单元的中断通知时立即将处理内容馈送到DMA传输单元。如果准备了命令缓冲器,则命令缓冲器可以连续地将处理内容馈送到DMA传输单元。因此,当处理器不包括要优先处理的其他项时,控制内容可以一起存储在命令缓冲器中。以这种方式,可以避免DMA传输效率的降低。
引用列表
专利文献
专利文献1:日本专利申请公开号2005-157717
发明内容
技术问题
在上述背景技术中,通过提供命令缓冲器,可以在来自DMA传输单元的中断通知时将必要的处理内容馈送到DMA传输单元。然而,在处理器外部的计算处理装置进行计算的情况下,需要遵循诸如计算所需的数据传输、计算处理和计算结果数据的传输的过程连续地进行控制。如果处理器通过中断来直接进行这一系列控制,则将对处理器施加大量负载。在处理器进行其他更高优先级的处理并且不能针对计算处理装置的中断请求向计算处理装置指示处理内容的情况下,计算处理装置等待处理内容的指令。因此,降低了处理器的地址空间与计算处理装置的专用存储器之间的数据传输效率。因此,如果扩展DMA传输单元的改进并且在整个计算处理装置上施加命令缓冲器的控制,则命令缓冲器需要连续地控制不同的功能。例如,命令缓冲器需要遵循诸如数据传输、计算和计算结果数据的传输的过程连续地控制DMA传输单元和计算处理装置中的计算装置的不同功能,以便通过处理器外部的计算处理装置来进行计算。因此,命令缓冲器应始终知道由计算处理装置进行的计算的进展状态,并且根据需要来控制计算处理装置的相应功能。另一方面,为了由命令缓冲器知道计算处理装置进行的计算的内容,需要由命令缓冲器准确地解释控制内容,并在命令缓冲器内部为控制内容提供解码器等,这可能导致命令缓冲器的配置复杂。
本技术鉴于上述情况而提出,并且本技术的目的是通过简单的配置来改善处理器的地址空间与计算处理装置的专用存储器之间的数据传输效率。
问题的解决方案
提出本技术是为了解决上述问题。第一方面是一种计算处理装置,包括:专用存储器,存储与处理器的地址空间不同的专用区域;数据传输单元,在地址空间与专用存储器之间进行数据项的传输处理;计算处理单元,进行存储在专用存储器中的数据项之间的计算处理;命令寄存器组,在每个寄存器中保持从处理器接收的命令列的每个命令;状态机,管理数据传输单元和计算处理单元中的处理的状态;以及控制单元,控制命令寄存器组以便保持命令,并且控制命令寄存器组根据状态将命令寄存器组保持的命令馈送到数据传输单元和计算处理单元中的任一者。根据第一方面,状态机管理数据传输单元和计算处理单元中的处理的状态,并且有利地改善了数据传输效率。
另外,在第一方面中,状态机可以根据对应于命令列的预定数量的命令使状态转移以管理状态。根据第一方面,有利地通过基于命令的数量的简单方法来管理状态。
另外,在第一方面中,命令列可以包括进行将数据项从地址空间传输到专用存储器的第一数据传输处理的命令、进行存储在专用存储器中的数据项之间的计算处理的命令、以及进行将数据项从专用存储器传输到地址空间的第二数据传输处理的命令,当输入进行第一数据传输处理的命令时,状态机可以使状态转移到允许执行进行第一数据传输处理的命令的状态,当经过执行进行第一数据传输处理的命令所需的时间时,状态机可以使状态转移到允许执行进行计算处理的命令的状态,并且当经过执行进行计算处理的命令所需的时间时,状态机可以使状态转移到允许执行进行第二数据传输处理的命令的状态。根据第一方面,有利地通过基于经过时间的简单方法来管理状态。
另外,在第一方面中,命令寄存器组可以包括多个子寄存器组,并且当从处理器接收多个命令列时,所述控制单元控制使得多个子寄存器组中的每个保持不同命令列。根据第一方面,有利地可以以并行方式向命令寄存器组写入命令和从命令寄存器组中读出命令。
另外,在第一方面中,控制单元可以控制使得不同命令列的命令被专有地馈送到数据传输单元和计算处理单元。根据第一方面,有利地在数据传输单元和计算处理单元中专有地执行处理。
另外,在第一方面中,状态机可以管理特定于相应的不同命令列的状态。根据第一方面,有利地允许在特定于每个命令列的状态下操作。
另外,在第一方面中,状态机可以根据在管理多个命令列的状态时对应于多个命令列中的一个命令列的预定数量的命令并且根据其他命令列的状态来切换多个命令列中的一个命令列的状态。根据第一方面,有利地允许考虑其他命令列的状态来操作。
另外,在第一方面中,多个命令列中的每个命令列可以包括进行将数据项从地址空间传输到专用存储器的第一数据传输处理的命令、进行存储在专用存储器中的数据项之间的计算处理的命令、以及进行将数据项从专用存储器传输到地址空间的第二数据传输处理的命令,当经过执行多个命令列中的要第一处理的命令列进行第一数据传输处理的命令所需的时间时,状态机可以使状态转移到允许执行对多个命令列中的要第二处理的命令列进行第一数据传输处理的命令的状态,当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,状态机可以使状态转移到允许执行对多个命令列中的要第二处理的命令列进行计算处理的命令的状态,并且当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,状态机可以使状态转移到允许执行对要第一处理的命令列进行第二数据传输处理的命令的状态。根据第一方面,有利地通过基于执行进行第一数据传输处理的命令所需的经过时间和执行进行计算处理的命令所需的经过时间的简单方法来管理状态。
另外,在第一方面中,当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,或者当状态转移到对要第一处理的命令列进行计算处理的命令结束的状态时,状态机可以使状态转移到允许执行对要第二处理的命令列进行计算处理的命令的状态。根据第一方面,有利地允许考虑其他命令列的状态来操作。
此外,本技术的第二方面是一种信息处理系统,包括:处理器;计算处理装置;以及共享存储器,存储处理器的地址空间并且甚至能够从计算处理装置访问,计算处理装置包括存储与处理器的地址空间不同的专用区域的专用存储器、在地址空间与专用存储器之间进行数据项的传输处理的数据传输单元、进行存储在专用存储器中的数据项之间的计算处理的计算处理单元、在每个寄存器中保持从处理器接收的命令列的每个命令的命令寄存器组、管理数据传输单元和计算处理单元中的处理的状态的状态机、以及控制单元,该控制单元控制命令寄存器组以便保持命令并且控制命令寄存器组使得命令寄存器组保持的命令取决于状态来馈送到数据传输单元和计算处理单元中的任一者。根据第二方面,状态机管理数据传输单元和计算处理单元中的处理的状态,并且有利地改善了处理器与计算处理装置之间的数据传输效率。
本发明的有利效果
本技术可以提供以下优点:利用简单的配置改善了处理器的地址空间与计算处理装置的专用存储器之间的数据传输效率。应注意,这里描述的效果不必是限制性的,并且可以是本公开中描述的任何效果。
附图说明
图1是示出本技术的实施方式中的信息处理系统的配置实例的图。
图2是示出本技术的第一实施方式中的命令缓冲器301的配置实例的图。
图3是示出本技术的实施方式中的命令列的实例的图。
图4是示出本技术的第一实施方式中的由状态机320管理的状态中的转移实例的图。
图5是示出本技术的第一实施方式中的输出寄存器选择标志331的控制的实例的图。
图6是示出本技术的实施方式中的输入寄存器选择标志332的控制的实例的图。
图7是示出本技术的第二实施方式中的命令缓冲器301的配置实例的图。
图8是示出本技术的第二实施方式中的选择器313的配置实例的图。
图9是示出本技术的第二实施方式中的由状态机321管理的状态中的转移实例的图。
图10是示出本技术的第二实施方式中的由状态机322管理的状态中的转移实例的图。
图11是示出本技术的第二实施方式中的状态机选择标志333的控制的实例的图。
图12是示出本技术的第二实施方式中的操作定时的实例的图。
图13是示出本技术的第二实施方式中的操作定时的另一实例的图。
图14是示出在由本技术的第三实施方式中的状态机321管理的状态中的转移实例的图。
图15是示出在由本技术的第三实施方式中的状态机322管理的状态中的转移实例的图。
图16是示出本技术的第三实施方式中的操作定时的实例的图。
图17是示出本技术的第三实施方式中的操作定时的另一实例的图。
具体实施方式
在下文中,将描述用于执行本技术的模式(下文中,称为实施方式)。将按以下顺序给出描述。
1.第一实施方式(通过一个状态机控制的实例)
2.第二实施方式(通过两个状态机控制的实例)
3.第三实施方式(允许并行处理计算处理和计算结果输出的实例)
<1.第一实施方式>
[信息处理系统配置]
图1是示出本技术的实施方式中的信息处理系统的配置实例的图。信息处理系统包括处理器100、共享存储器200和协同处理器300。这些装置与控制总线101和存储器总线102互连。
处理器100是进行信息处理系统的整个处理的装置。协同处理器300是通过遵循来自处理器100的指令进行预定计算处理的计算处理装置。共享存储器200是存储处理器100的地址空间的存储器。处理器100和协同处理器300均可以访问共享存储器200。应注意,协同处理器300是所要求保护的计算处理装置的实例。
协同处理器300包括命令缓冲器301、总线接口360、数据传输单元370、计算处理单元380和专用存储器390。命令缓冲器301包括命令保持单元310、状态机320和控制单元330。
命令缓冲器301包括保持专用控制指令(命令)的命令保持单元310。命令经由控制总线101从处理器100写入命令保持单元310。
状态机320管理数据传输单元370和计算处理单元380中的处理的状态。
命令保持单元310保持从处理器100接收的每个命令列中的每个命令。命令保持单元310通过遵循控制单元330的控制来保持每个命令。
控制单元330控制命令保持单元310。控制单元330控制命令保持单元310,从而保持从处理器100接收的每个命令列中的每个命令。另外,控制单元330控制命令保持单元310,使得命令保持单元310保持的命令取决于状态机320管理的状态而被馈送到数据传输单元370和计算处理单元380中的任一者。
总线接口360是控制总线101与命令缓冲器301之间的接口。处理器100和协同处理器300中的命令缓冲器301经由控制总线101连接。
专用存储器390是存储与处理器100的地址空间不同的专用区域的存储器。
计算处理单元380进行存储在专用存储器390中的数据项之间的计算处理。
数据传输单元370进行处理器100的地址空间与专用存储器390之间的数据传输处理。在数据传输单元370进行数据传输处理的情况下,在共享存储器200与专用存储器390之间进行DMA(直接存储器访问)传输。因此,在DMA传输时,将起始地址、传输数据量等设置到数据传输单元370。数据传输单元370、处理器100和共享存储器200经由存储器总线102连接。
数据传输单元370和计算处理单元380连接到专用存储器390。数据传输单元370和计算处理单元380中的每一者可以执行对专用存储器390的访问,即,读出和写入。
图2是示出本技术的第一实施方式中的命令缓冲器301的配置实例的图。命令缓冲器301包括寄存器组312、开关311、选择器313、状态机320、输出寄存器选择标志331和输入寄存器选择标志332。
寄存器组312包括保持从处理器100接收的每个命令列中的每个命令的各个寄存器。在该实例中,寄存器组312包括寄存器A1至A3和B1至B3。寄存器A1和寄存器B1是在将共享存储器200的数据项写入专用存储器390时将命令保持到数据传输单元370的寄存器。寄存器A2和寄存器B2是保持计算处理单元380的命令的寄存器。寄存器A3和寄存器B3是在将专用存储器390的数据项写入共享存储器200时将命令保持到数据传输单元370的寄存器。这些寄存器A1至A3和B1至B3中的每一者具有FIFO(先进先出)功能,该功能可以存储多个命令并以存储的顺序读出命令。应注意,寄存器组312是命令寄存器组的实例。
寄存器组312将寄存器A1至A3和寄存器B1至B3识别为子寄存器组并进行控制,使得针对每个子寄存器组保持不同的命令列。具体地,第一子寄存器组(即,寄存器A1至A3)保持第一命令列,并且第二子寄存器组(即,寄存器B1至B3)保持第二命令列。
开关311是用于将来自处理器100的命令分配给寄存器A1至A3和B1至B3中的任一者的开关。开关311根据输入寄存器选择标志332决定将命令输入到寄存器A1至A3或B1至B3。另外,开关311根据来自控制总线101的地址信息决定寄存器A1至A3中的任一者或寄存器B1至B3中的任一者的地址选择。
选择器313是选择寄存器A1至A3和B1至B3中的任一者的输出并将输出馈送到数据传输单元370或计算处理单元380的选择器。寄存器A1、A3、B1和B3的输出被馈送到数据传输单元370。寄存器A2和B2的输出被馈送到计算处理单元380。选择器313根据输出寄存器选择标志331决定输出来自寄存器A1至A3或B1至B3的命令。
状态机320是管理数据传输单元370和计算处理单元380中的处理的状态的状态机。稍后将描述由状态机320管理的状态的转移。
输出寄存器选择标志331是选择器313选择以将来自寄存器A1至A3或B1至B3的命令输出到数据传输单元370和计算处理单元380的标记。
输入寄存器选择标志332是开关311决定以将命令输入到寄存器A1至A3或B1至B3的标记。
图3是示出本技术的实施方式中的命令列的实例的图。在此实例中,假设命令列1和2的这两个命令列。应注意,命令列1是要第一处理的命令列的实例,并且命令列2是要第二处理的命令列的实例。
在命令列1中,假设将进行计算所需的数据列Ai、Bi、Ci(i=0,1,2,...,n等)从共享存储器200复制(下载)到专用存储器390的处理(DMA_D处理)。在下文中,传输数据列Ai的处理被称为DMA_D处理1-1,传输数据列Bi的处理被称为DMA_D处理2-1,并且传输数据列Ci的处理被称为DMA_D处理3-1。应注意,DMA_D处理是第一数据传输处理的实例。
另外,对在专用存储器390中准备的数据列进行计算处理(CALC处理),并且假设将计算结果写入专用存储器390的处理。关于Ai和Ci,进行Di=f(Ai,Ci)的处理。将数据列Di处理到专用存储器390中被称为CALC处理1-1。关于Bi和Ci,进行Ei=f(Bi,Ci)的处理。将数据列Ei处理到专用存储器390中被称为CALC处理2-1。
进一步地,假设将计算结果从专用存储器390复制(上传)到共享存储器200的处理(DMA_U处理)。将数据列Di从专用存储器390复制到共享存储器200的处理被称为DMA_U处理1-1。将数据列Ei从专用存储器390复制到共享存储器200的处理被称为DMA_U处理2-1。应注意,DMA_U处理是第二数据传输处理的实例。
命令列1中的协同处理器300的处理细节是从数据列Ai、Bi和Ci获得计算结果的数据列Di和Ei。
在命令列2中,假设将进行计算所需的数据列Fi和Gi从共享存储器200复制(下载)到专用存储器390的处理(DMA_D处理)。在下文中,传输数据列Fi的处理被称为DMA_D处理1-2,并且传输数据列Gi的处理被称为DMA_D处理2-2。应注意,作为DMA_D处理2-3,由于没有要传输的数据列,所以跳过处理而不需做任何事情。
另外,对在专用存储器390中准备的数据列进行计算处理(CALC处理),并且假设将计算结果写入专用存储器390。关于Fi和Gi,进行Ji=f(Fi,Gi)的处理。将数据列Ji写入专用存储器390被称为CALC处理1-2。关于Fi和Ji,进行Ki=f(Fi,Ji)的处理。将数据列Ki写入专用存储器390被称为CALC处理2-2。
进一步地,假设将计算结果从专用存储器390复制(上传)到共享存储器200的处理(DMA_U处理)。将数据列Ji从专用存储器390复制到共享存储器200的处理被称为DMA_U处理1-2。将数据列Ki从专用存储器390复制到共享存储器200的处理被称为DMA_U处理2-2。
命令列2中的协同处理器300的处理细节是从数据列Fi和Gi获得计算结果的数据列Ji和Ki。
图4是示出本技术的第一实施方式中的由状态机320管理的状态中的转移实例的图。在第一实施方式中,由状态机320管理的状态是四种状态中的任何一种:状态#1、#3、#5和#6。
状态#1是寄存器组312不保持命令并且等待从处理器100输入命令的状态。在状态#1中,当从处理器100输入命令(例如,图3中的命令列1)时,状态机转移到下一状态#3。
状态#3是数据传输单元370将数据项从共享存储器200DMA传输(DMA_D处理)到专用存储器390的状态。在状态#3中,在从共享存储器200到专用存储器390的数据传输结束之后,状态机转移到下一状态#5。
状态#5是计算处理单元380计算(CALC处理)传输到专用存储器390的数据项的状态。在状态#5中,当计算处理单元380的计算结束时,状态机转移到下一状态#6。
状态#6是数据传输单元370将数据项从专用存储器390DMA传输(DMA_U处理)到共享存储器200的状态。在状态#6中,当从专用存储器390到共享存储器200的数据项传输结束时,状态机转移到第一状态#1。
在状态转移中,可以使用在等待来自各个功能块的处理结束的通知之后进行转移的方法和在等待一定时间段之后自动进行下一处理的方法中的任一者。在下文中,假设前一种方法。关于DMA_D处理、CALC处理和DMA_U处理中的每个处理,预先确定每个处理所需的命令的数量。因此,状态机320可以在不进行每个命令的解码处理的情况下转移状态。例如,在状态#3中,当经过执行进行DMA_D处理的命令所需的时间时,状态机320使状态转移到允许执行进行CALC处理的命令的状态#5。另外,当经过执行进行CALC处理的命令所需的时间时,状态机320使状态转移到允许执行进行DMA_U处理的命令的状态#6。
图5是示出本技术的第一实施方式中的输出寄存器选择标志331的控制的实例的图。
状态检测电路341是监测状态机320中的状态转移的电路。当状态检测电路341检测到从状态#6到状态#1的转移时,状态检测电路341将表示有效信号的脉冲输出到触发器342的有效端子EN。
触发器342是保持“0”或“1”中的任一者的触发器。触发器342的输出端子Q经由反相器343连接到输入端子D。每当将脉冲输入到有效端子EN时,保持的内容被反转。
输出寄存器选择标志331保持触发器342的输出端子Q的值。因此,每当状态机320的状态从状态#6转移到状态#1时,输出寄存器选择标志331的内容将被反转。具体地,每当状态机320的状态从状态#6转移到状态#1时,改变并交替地选择从寄存器A1至A3或B1至B3向数据传输单元370和计算处理单元380输出命令。
图6是示出本技术的实施方式中的输入寄存器选择标志332的控制的实例的图。
写入监测电路344是监测写入寄存器A1至A3和B1至B3的完成的电路。写入检测电路345是检测写入寄存器A3的完成的电路。写入检测电路346是检测写入寄存器B3的完成的电路。SR触发器347是保持“0”或“1”中的任一者的触发器。
当写入检测电路345检测到写入寄存器A3的完成时,写入检测电路345将表示置位信号的脉冲输出到SR触发器347的置位端子SET。利用置位信号,SR触发器347保持“1”。另一方面,当写入检测电路346检测到写入寄存器B3的完成时,写入检测电路346将表示复位信号的脉冲输出到SR触发器347的复位端子RESET。利用复位信号,SR触发器347保持“0”。应注意,在写入检测电路345和346进行检测时,可以在命令本身中准备例如开始处理的标记,或者状态机320本身可以包括寄存器并且处理器100可以写入该寄存器。在下文中,假设命令包括表示写入结束并且命令可执行的寄存器。
输入寄存器选择标志332保持触发器347的输出端子Q的值。因此,每当写入寄存器A3或B3完成时,输入寄存器选择标志332的内容将被反转。具体地,每当完成写入并交替地选择寄存器A3或B3时,改变将命令输入到寄存器A1至A3或B1至B3。
通过输出寄存器选择标志331和输入寄存器选择标志332的控制,可以独立地切换向/从寄存器A1至A3和B1至B3写入和读出命令。
[信息处理系统的操作]
这里,通过假设上述命令列,将描述信息处理系统的操作。首先,处理器100经由控制总线101将命令列1的DMA_D处理1-1至3-1所需的命令写入寄存器组312。此时,输出寄存器选择标志331和输入寄存器选择标志332的初始值均为“0”。
将DMA_D处理1-1至3-1所需的命令输入到开关311。例如,开关311可以根据来自控制总线101的地址信息来知道对于DMA_D处理1-1至3-1需要输入命令。这里,由于输入寄存器选择标志332的值为“0”,所以将DMA_D处理1-1至3-1所需的命令写入寄存器A1。
另外,处理器100经由控制总线101将CALC处理1-1和2-1所需的命令写入寄存器组312。此时,由于输入寄存器选择标志332的值为“0”,所以将CALC处理1-1和2-1所需的命令写入寄存器A2。
此外,处理器100经由控制总线101将DMA_U处理1-1和2-1所需的命令写入寄存器组312。此时,由于输入寄存器选择标志332的值为“0”,所以将DMA_U处理1-1和2-1所需的命令写入寄存器A3。
应注意,处理器100指示将命令写入寄存器组312,但不需要知道将命令写入寄存器组312中的哪个寄存器。换句话说,处理器100将寄存器组312识别为一种FIFO存储器。
当命令列1中的最后DMA_U处理2-1所需的命令被写入寄存器A3时,输入寄存器选择标志332从“0”反转为“1”。
在存在要连续处理的其他命令列2的情况下,处理器100经由控制总线101将下一DMA_D处理1-2至3-2所需的命令写入寄存器组312。由于输入寄存器选择标志332为“1”,所以开关311进行控制,使得将DMA_D处理1-2至3-2所需的命令写入寄存器B1。
另外,处理器100经由控制总线101将CALC处理1-2和2-2所需的命令写入寄存器组312。此时,由于输入寄存器选择标志332的值为“1”,所以将CALC处理1-2和2-2所需的命令写入寄存器B2。
此外,处理器100经由控制总线101将DMA_U处理1-2和2-2所需的命令写入寄存器组312。此时,由于输入寄存器选择标志332的值为“1”,所以将DMA_U处理1-2和2-2所需的命令写入寄存器B3。
当命令列2中的最后DMA_U处理2-2所需的命令被写入寄存器B3时,输入寄存器选择标志332从“1”反转为“0”。
接下来,将考虑与命令列1相关的状态转移。当输出寄存器选择标志331为“0”并且写入检测电路345检测到命令被写入寄存器A1至A3时,状态机320的状态从状态#1转移到状态#3。
这里,例如,即使处理器100被中断并且暂停处理,并且没有确定由计算处理单元380执行的内容,数据传输单元370也可以继续进行处理。因此,只要仅有寄存器A1可执行,即使寄存器A2和A3不可执行,数据传输单元370的处理也是可执行的。在这种情况下,通过检测到“1”被写入寄存器A1的可执行寄存器,状态机320的状态从状态#1转移到状态#3。
此时,由于输出寄存器选择标志331为“0”,处于转移状态#3的状态机320控制选择器313并将寄存器A1的内容的DMA_D处理1-1的命令馈送到数据传输单元370。当状态机320的状态为状态#3时,数据传输单元370被设置为不从专用存储器390写回到共享存储器200。另外,计算处理单元380被设置为不进行计算。
数据传输单元370接收寄存器A1的命令并执行DMA_D处理1-1的处理。此后,数据传输单元370通知状态机320结束处理。当状态机320接收到DMA_D处理1-1的处理结束的通知时,状态机320控制选择器313以使寄存器A1被选择。选择器313将写入寄存器A1的DMA_D处理2-1的命令馈送到数据传输单元370。数据传输单元370执行DMA_D处理2-1的处理。此后,数据传输单元370通知状态机320结束处理。
关于DMA_D处理3-1,进行类似的处理。当状态机320从数据传输单元370接收到处理结束的通知时,状态机320的状态转移到状态#5。
由于输出寄存器选择标志331为“0”,处于转移状态#5的状态机320控制选择器313并将寄存器A2的内容的CALC处理1-1的命令馈送到计算处理单元380。当状态机320的状态为状态#5时,数据传输单元370被设置为不操作。
计算处理单元380执行CALC处理1-1的处理。此后,计算处理单元380通知状态机320结束处理。当状态机320接收到CALC处理1-1的处理结束的通知时,状态机320控制选择器313以使寄存器A2被选择。选择器313将写入寄存器A2的CALC处理2-1的命令馈送到计算处理单元380。
计算处理单元380执行CALC处理2-1的处理。此后,计算处理单元380通知状态机320结束处理。当状态机320接收到CALC处理2-1的处理结束的通知时,状态机320的状态转移到状态#6。
此时,由于输出寄存器选择标志331为“0”,因此处于转移状态#6的状态机320控制选择器313以使寄存器A3被选择。选择器313将写入寄存器A2的DMA_U处理1-1的命令馈送到数据传输单元370。在状态#6中,数据传输单元370被设置为不从共享存储器200写入专用存储器390。另外,计算处理单元380被设置为不进行计算。
数据传输单元370执行DMA_U处理1-1的处理。此后,数据传输单元370通知状态机320结束处理。当状态机320接收到DMA_U处理1-1的处理结束的通知时,状态机320控制选择器313以使寄存器A3被选择。选择器313将写入寄存器A2的DMA_U处理2-1的命令馈送到数据传输单元370。数据传输单元370执行DMA_U处理2-1的处理。此后,数据传输单元370通知状态机320结束处理。
当状态机320接收到DMA_U处理2-1结束的通知时,状态机320将可执行寄存器重写为“0”、通知处理器100命令列1的一系列处理结束、并转移到状态#1。另外,输出寄存器选择标志331从“0”转移到“1”。
转移到状态#1的状态机320具有输出寄存器选择标志331为“1”,因此检测到包括在寄存器B1中的可执行寄存器为“1”,并且转移到状态#3。然后,通过类似的方法,将保持在寄存器B1至B3中的命令列2的命令馈送到数据传输单元370和计算处理单元380。
当处理器100接收到命令列的一系列处理结束时,处理器100将新命令列3写入寄存器组312。此时,由于输入寄存器选择标志332显示“0”,所以寄存器组312通过开关311将来自处理器100的新命令写入寄存器A1至A3。然后,当存储在命令列3的最后一个寄存器B3中的所有处理结束时,输出寄存器选择标志331再次从“1”转移到“0”。
以这种方式,连续地执行从处理器100馈送的命令。命令列1的相应命令保持在寄存器A1至A3中。命令列2的相应命令保持在寄存器B1至B3中。在没有新命令的情况下,状态机320在状态#1中继续等待新命令。
因此,在第一实施方式中,状态机320根据对应于命令列的预定数量的命令来转移状态,并且每个单元根据状态来操作。以这种方式,利用简单的配置,可以改善存储处理器100的地址空间的共享存储器200与协同处理器300的专用存储器390之间的数据传输效率。另外,通过选择寄存器A1至3或B1至B3来切换用于相应命令列的寄存器,从而以并行方式将相应命令列写入寄存器/从寄存器读出。
<2.第二实施方式>
在上述第一实施方式中,已经描述了由一个状态机320控制协同处理器300的状态的实例。替代地,在第二实施方式中,将描述由两个状态机控制协同处理器300的状态的实例。具体地,在第二实施方式中,对应于不同命令列来分配不同的状态机,并且每个状态机管理特定于每个命令列的状态。应注意,由于信息处理系统的整体配置类似于上述第一实施方式中的配置,因此将省略其详细描述。
[信息处理系统配置]
图7是示出本技术的第二实施方式中的命令缓冲器301的配置实例的图。第二实施方式中的命令缓冲器301与上述第一实施方式中的命令缓冲器的相似之处在于包括寄存器组312、开关311、选择器313、输入寄存器选择标志332和开关334。另一方面,第二实施方式中的命令缓冲器301包括两个状态机321和322来代替状态机320。另外,第二实施方式中的命令缓冲器301还包括状态机选择标志333、开关334和反转单元335。
状态机321和322是管理针对每个命令列的数据传输单元370和计算处理单元380中的处理的状态的状态机。例如,状态机321管理命令列1的状态,并且状态机322管理后续的命令列2的状态。
状态机选择标志333是用于选择状态机321和322中的任一者的标记。状态机选择标志333的值馈送到状态机321、322和选择器313。
当状态机选择标志333显示“0”时,根据状态机321管理的状态进行处理。另一方面,当状态机选择标志333显示“1”时,根据状态机322管理的状态进行处理。
在写入新命令列之前,寄存器组312被初始化。因此,经由开关334将寄存器的初始化指令馈送到状态机321或322。开关334是用于将初始化指令分配给状态机321和322中的任一者的开关。选择器334根据输入寄存器选择标志332决定将初始化指令输入到寄存器A1至A3或B1至B3。
反转单元335是将状态机选择标志333的值反转的电路。因此,彼此相反的值将从状态机选择标志333馈送到状态机321和322。
根据输入寄存器选择标志332的值来控制开关334和311。具体地,当输入寄存器选择标志332显示“0”时,开关311将命令写入寄存器A1至A3。另外,此时,开关334将来自处理器100的初始化信号馈送到状态机321。另一方面,当输入寄存器选择标志332显示“1”时,开关311将命令写入寄存器B1至B3。另外,此时,开关334将来自处理器100的初始化信号馈送到状态机322。
图8是示出本技术的第二实施方式中的选择器313的配置实例的图。选择器313包括控制单元3139和选择器3131、3132和3133。
控制单元3139将选择信号馈送到选择器3131至3133。控制单元3139根据状态机选择标志333的值来选择由状态机321或322管理的状态,并且取决于该状态来输出寄存器A1至A3或B1至B3的值。在状态机321和322中的所选状态机的状态显示状态#3的情况下,选择器3131选择寄存器A1和B1中的任一者并将其馈送到数据传输单元370。在状态显示状态#5的情况下,选择器3132选择寄存器A2和B2中的任一者并且将其馈送到计算处理单元380。在状态显示状态#6的情况下,选择器3133选择寄存器A3和B3中的任一者并将其馈送到数据传输单元370。
然而,在没有命令被馈送到数据传输单元370或计算处理单元380的情况下,选择表示不操作的“NOP”。
图9是示出本技术的第二实施方式中的由状态机321管理的状态中的转移实例的图。图10是示出本技术的第二实施方式中的由状态机322管理的状态中的转移实例的图。这些状态是七个状态中的任一者;除了第一实施方式中的状态#1、#3、#5和#6之外的状态#0、#2和#4。
状态#0是等待初始化指令的状态。在状态#0中,当从处理器100输入初始化指令时,状态机转移到下一状态#1。
状态#1是寄存器组312不保持命令并且等待从处理器100输入命令的状态。在状态#1中,当从处理器100输入命令时,只要状态机选择标志333选择了自身状态机,该状态机就转移到下一状态#3。具体地,在状态机选择标志333在状态机321中显示“0”的情况下,并且状态机选择标志333在状态机322中显示“1”的情况下,该状态机转移到状态#3。
另一方面,在状态#1中,当从处理器100输入命令时,只要状态机选择标志333没有选择自身状态机,该状态机就转移到状态#2。具体地,在状态机选择标志333在状态机321中显示“1”的情况下,并且状态机选择标志333在状态机322中显示“0”的情况下,该状态机转移到状态#2。
状态#2是数据传输单元370等待数据项从共享存储器200DMA传输(DMA_D处理)到专用存储器390结束的状态。由于状态机321和322中的另一者具有状态#3并进行DMA_D处理,因此发生等待以便在数据传输单元370中发生冲突。在状态#2中,当另一者结束DMA_D处理时,该状态机转移到状态#3。
状态#3是数据传输单元370将数据项从共享存储器200DMA传输(DMA_D处理)到专用存储器390的状态。在状态#3中,在从共享存储器200到专用存储器390的数据传输结束之后,只要状态机选择标志333选择了自身状态机,该状态机就转移到状态#5。具体地,在状态机选择标志333在状态机321中显示“0”的情况下,并且状态机选择标志333在状态机322中显示“1”的情况下,该状态机转移到状态#5。
另一方面,在状态#3中,当DMA_D处理结束时,只要状态机选择标志333没有选择自身状态机,该状态机就转移到状态#4。具体地,在状态机选择标志333在状态机321中显示“1”的情况下,并且状态机选择标志333在状态机322中显示“0”的情况下,该状态机转移到状态#4。
状态#4是计算处理单元380等待计算(CALC处理)结束的状态。由于状态机321和322中的另一者具有状态#5并进行CALC处理,因此发生等待以便在处理单元380中发生冲突。在状态#4中,当另一者结束CALC处理时,该状态机转移到状态#5。
状态#5是计算处理单元380计算(CALC处理)传输到专用存储器390的数据项的状态。在状态#5中,当计算处理单元380的计算结束时,状态机转移到下一状态#6。
状态#6是数据传输单元370将数据项从专用存储器390DMA传输(DMA_U处理)到共享存储器200的状态。在状态#6中,当从专用存储器390到共享存储器200的数据项传输结束时,状态机转移到第一状态#0。
在状态转移中,进行控制,使得不同命令列的命令被专有地馈送到数据传输单元370和计算处理单元380。另外,状态机321和322管理特定于相应不同的命令列1和命令列2的状态。
图11是示出本技术的第二实施方式中的状态机选择标志333的控制的实例的图。状态检测电路351是监测状态机321中的状态转移的电路。状态检测电路352是监测状态机322中的状态转移的电路。SR触发器353是保持“0”或“1”中的任一者的触发器。
当状态检测电路351检测到状态机321中的状态#0时,状态检测电路351将表示置位信号的脉冲输出到SR触发器353的置位端子SET。利用置位信号,SR触发器353保持“1”。
当状态检测电路352检测到状态机322中的状态#0时,状态检测电路352将表示复位信号的脉冲输出到SR触发器353的复位端子RESET。利用置位信号,SR触发器353保持“0”。
状态机选择标志333保持SR触发器353的输出端子Q的值。因此,每当状态机321和322之一的状态转移到状态#0时,状态机选择标志333的内容将被反转。具体地,每当状态机321和322之一的状态转移到状态#0时并交替选择时,改变从寄存器A1至A3或B1至B3向数据传输单元370和计算处理单元380输出命令。
应注意,输入寄存器选择标志332的控制类似于上述第一实施方式,将省略其详细描述。
[信息处理系统操作]
这里,通过假设上述命令列,将描述信息处理系统的操作。首先,处理器100经由控制总线101将命令列1的DMA_D处理1-1至3-1所需的命令写入寄存器组312。此时,输入寄存器选择标志332和状态机选择标志333的初始值为“0”。
在处理器100馈送命令列1之前,处理器100向寄存器组312发出初始化指令。此时,由于输入寄存器选择标志332显示“0”,所以寄存器A1至A3被初始化。另外,由于状态机选择标志333显示“0”,因此初始化指令经由开关334使状态机321从状态#0转移到状态#1。应注意,由于输入寄存器选择标志332显示“0”并且开关334没有馈送初始化信号,因此状态机322依然具有状态#0并且不转移。
随后,处理器100经由控制总线101将DMA_D处理1-1、2-1和3-1所需的命令写入寄存器组312。由于输入寄存器选择标志332显示“0”,所以开关311根据来自控制总线101的地址信息将命令写入寄存器A1。
接下来,处理器100将CALC处理1-1和2-1所需的命令写入寄存器组312。开关311将命令写入寄存器A2。
进一步地,处理器100将DMA_U处理1-1和2-1所需的命令写入寄存器组312。开关311选择将命令写入寄存器A3。当写入检测电路345检测到DMA_U处理2-1被写入寄存器A3时,输入寄存器选择标志332变为“1”。
接下来,在处理器100馈送命令列2之前,处理器100向寄存器组312发出初始化指令。此时,由于输入寄存器选择标志332显示“1”,所以寄存器B1至B3被初始化。另外,由于状态机选择标志333显示“1”,因此初始化指令经由开关334使状态机322从状态#0转移到状态#1。
此外,处理器100经由控制总线101将DMA_D处理1-2、2-2和3-2所需的命令写入寄存器组312。由于输入寄存器选择标志332显示“1”,所以开关311根据来自控制总线101的地址信息将命令写入寄存器B1。
接下来,处理器100将CALC处理1-2和2-2以及DMA_U处理1-2和2-2所需的命令写入寄存器组312。开关311将命令写入寄存器B2和B3。当写入检测电路346检测到DMA_U处理2-2被写入寄存器B3时,输入寄存器选择标志332从“1”变为“0”。
接下来,将描述状态机321和322的操作。由于状态机选择标志333显示“0”,所以当命令被写入寄存器A1至A3时,状态机321从状态#1转移到状态#3。由于经由反转单元335将状态机选择标志333的反转信号输入到状态机322,所以当命令被写入寄存器B1至B3时,状态机322从状态#1转移到状态#2。
当状态机选择标志333显示“0”并且状态机321到达状态#3时,“10”被馈送到选择器3131,并且寄存器A1的命令被馈送到数据传输单元370。然后,顺序地进行DMA_D处理1-1、2-1和3-1的处理。另外,“00”被馈送到选择器3132和3133,这些选择器进行从数据传输单元370的专用存储器390到共享存储器200的写入操作。此时,计算处理单元380被通知“NOP”,并因此不进行处理。
此后,从数据传输单元370接收DMA_D处理3-1的结束通知的状态机321转移到状态#5。这里,状态机322检测到状态机321转移到状态#5,即,状态机321管理的DMA_D处理结束,并且状态从状态#2转移到状态#3。作为结果,“11”被馈送到选择器3131,并且寄存器B1的内容被馈送到数据传输单元370。另外,“10”被馈送到选择器3132,并且寄存器A2的内容被馈送到计算处理单元380。另外,“00”被馈送到选择器3133,该选择器将为“NOP”。
存储在寄存器A2中的CALC处理1-1和2-1所需的命令被馈送到计算处理单元380。存储在寄存器B1中的DMA_D处理1-2、2-2和3-2所需的命令被馈送到数据传输单元370。因此,DMA_D处理1-2、2-2和3-2以及CALC处理1-1和2-1以并行方式处理。
在DMA_D处理1-2、2-2和3-2结束之后,状态机322从状态#3转移到状态#4。当从计算处理单元380通知状态机321结束CALC处理1-1和2-1时,状态机321转移到状态#6。当状态机321转移到状态#6时,“00”被馈送到选择器3132,该选择器将为“NOP”。“10”被馈送到选择器3133,存储在寄存器A3中的DMA_U处理1-1和2-1所需的命令被馈送到数据传输单元370。当状态机322转移到状态#4时,“00”被馈送到选择器3131,该选择器将为“NOP”。
当从数据传输单元370接收到DMA_U处理2-1结束的通知时,状态机321转移到状态#0、通知处理器100一系列计算的结束、并使状态机选择标志333从“0”转移到“1”。由于状态#0等待寄存器的初始化,因此与第一实施方式不同,不需要重写寄存器A1至A3的执行许可标记。
当处理器100接收到一系列处理结束的通知时,在适当的时间将下一命令写入寄存器组312。此时,由于输入寄存器选择标志332为“0”,所以该命令将被写入寄存器A1至A3。由于状态机选择标志333变为“1”并且输入到状态机322的标记变为“0”,因此状态机322从状态#4转移到状态#5。由于状态机选择标志333变为“1”并且状态机322具有状态#5,所以“11”被馈送到选择器3132,并且存储在寄存器B2中的CALC处理1-2和2-2的命令将被馈送到计算处理单元380。
如果已经将下一处理写入处理器100,则将“10”馈送到选择器3131,并且将新写入寄存器A1的命令馈送到数据传输单元370。“00”被馈送到选择器3133,该选择器将为“NOP”。此后,状态机322转移状态并将DMA_U处理1-2和2-2的命令馈送到数据传输单元370。
图12是示出本技术的第二实施方式中的操作定时的实例的图。该实例示出了DMA_D处理1-2、2-2和3-2的处理时间短于CALC处理1-1和2-1的处理时间的情况。
在DMA_D处理1-2、2-2和3-2的处理时间短于CALC处理1-1和2-1的处理时间的情况下,在CALC处理2-1之后执行DMA_U处理1-1和2-1。因此,在数据传输单元370中不发生冲突。
图13是示出本技术的第二实施方式中的操作定时的另一实例的图。该实例示出了CALC处理1-1和2-1的处理时间短于DMA_D处理1-2、2-2和3-2的处理时间的情况。
在CALC处理1-1和2-1的处理时间短于DMA_D处理1-2、2-2和3-2的处理时间的情况下,DMA_U处理1-1和2-1与DMA_D处理1-2、2-2和3-2同时处理。在这种情况下,数据传输单元370具有作为DMA的正常功能来读出和写入数据项的仲裁功能,从而进行控制使得稍后执行DMA_D处理3-2。
因此,在第二实施方式中,由两个状态机321和322管理每个命令列的状态。以这种方式,计算处理单元380中的前一命令列的CALC处理和数据传输单元370中的后一命令列的DMA_D处理可以在命令列中并行执行。
<3.第三实施方式>
在上述第二实施方式中,当输入自身的状态机选择标志变为“0”时,开始CALC处理1-2至2-2。相反,如果在下一CALC处理1-2至2-2中没有覆盖要在DMA_U处理1-1至2-1中传输的数据项,则DMA_U处理1-1至2-1和CALC处理1-2至2-2可以并行执行。因此,在第三实施方式中,通过并行执行这些处理,进一步改善了计算处理单元380中的处理效率。
应注意,信息处理系统配置类似于上述第二实施方式的配置,将省略其详细描述。
图14是示出在由本技术的第三实施方式中的状态机321管理的状态中的转移实例的图。图15是示出在由本技术的第三实施方式中的状态机322管理的状态中的转移实例的图。第三实施方式中的具有从状态#4到状态#5的转移条件的转移实例与第二实施方式中的不同。
在状态机选择标志333显示“0”的情况下,状态机321从状态#5转移到状态#6,并且状态机322具有状态#4,状态机转移到状态#5。作为结果,“00”被馈送到选择器3131,“11”被馈送到选择器3132,并且写入寄存器B2的CALC处理1-2和2-2的命令被连续地馈送到计算处理单元380。另外,“10”被馈送到选择器3133,并且写入数据传输单元370的DMA_U处理1-1和2-1的命令被连续地馈送到数据传输单元370。
在这种情况下,除了从共享存储器200到专用存储器390和计算处理单元380的上述数据传输的并行操作之外,还可以进行从专用存储器390到共享存储器200和计算处理单元380的数据传输的并行操作。
通过状态转移,进行控制,使得不同命令列中的命令被专有地馈送到数据传输单元370和计算处理单元380。另外,状态机321和322管理特定于相应不同的命令列1和命令列2的状态。
此外,在第三实施方式中,状态机321和322根据对应于命令列的预定数量的命令来转移状态。同样地,状态机321和322将考虑其他命令列的状态来转移状态,类似于从状态#4到状态#5的转移。
图16是示出本技术的第三实施方式中的操作定时的实例的图。该实例示出了CALC处理1-1和2-1的处理时间长于DMA_D处理1-2、2-2和3-2的处理时间的情况。
在这种情况下,与第二实施方式不同,显示了DMA_U处理1-1和2-1以及CALC处理1-2和2-2的处理是并行执行的。
图17是示出本技术的第三实施方式中的操作定时的另一实例的图。该实例示出了CALC处理1-1和2-1的处理时间短于DMA_D处理1-2、2-2和3-2的处理时间的情况。
在这种情况下,在数据传输单元370中在DMA_U处理1-1和2-1与DMA_D处理1-2、2-2和3-2之间发生冲突。因此,类似于第二实施方式,之后控制执行DMA_D处理3-2。
因此,在第三实施方式中,在前一命令列的CALC处理结束时,使后一命令列的状态转移。以这种方式,数据传输单元370中的前一命令列的DMA_U处理和计算处理单元380中的后一命令列的CALC处理可以在命令列中并行执行。
应注意,作为内部存储命令缓冲器301的一系列命令的寄存器,已经描述了寄存器A1至A3和B1至B3的两个路径作为实例。然而,可以布置三个或更多个寄存器路径。
另外,已经描述了寄存器A1和B1具有在数据传输单元370上存储处理指令三次的FIFO功能,寄存器A2和B2具有在计算处理单元380上存储处理指令两次的FIFO功能,并且寄存器A3和B3具有在数据传输单元370上存储处理指令两次的FIFO功能。然而,可以在相应的寄存器中增加存储处理指令的数量(FIFO的级数)。
此外,已经描述了数据传输单元370和计算处理单元380作为上述实施方式中的实例。可以布置多个计算处理单元380。在这种情况下,还可以为多个计算处理单元380布置多个数据传输单元370。
应注意,上述实施方式示出了用于指定本技术的实例以及实施方式中的相应事项,并且用于在权利要求中指定本发明的相应事项具有对应关系。类似地,用于在权利要求中指定本发明的相应事项和在本技术的实施方式中具有相同指示的相应事项具有对应关系。本技术不限于这些实施方式。在不背离本发明的精神的情况下,可以对实施方式进行各种修改和改变。
另外,在上述实施方式中描述的处理过程可以被认为是包括一系列过程的方法,或者可以被认为是程序或存储程序的记录介质。作为记录介质,例如,可以使用CD(压缩盘)、MD(迷你盘)、DVD(数字通用盘)、存储卡、蓝光(注册商标)盘等。
应当注意,本说明书中描述的效果仅仅是说明性的而非限制性的,并且可以具有附加效果。
本技术还可以具有以下结构。
(1)一种计算处理装置,包括:
专用存储器,存储与处理器的地址空间不同的专用区域;
数据传输单元,在地址空间与专用存储器之间进行数据项的传输处理;
计算处理单元,进行存储在专用存储器中的数据项之间的计算处理;
命令寄存器组,在每个寄存器中保持从处理器接收的命令列的每个命令;
状态机,管理数据传输单元和计算处理单元中的处理的状态;以及
控制单元,控制命令寄存器组以便保持命令,并且控制命令寄存器组使得命令寄存器组保持的命令取决于状态来馈送到数据传输单元和计算处理单元中的任一者。
(2)根据(1)所述的计算处理装置,其中,
状态机根据对应于命令列的预定数量的命令使状态转移以管理状态。
(3)根据(1)或(2)所述的计算处理装置,其中,
命令列包括进行将数据项从地址空间传输到专用存储器的第一数据传输处理的命令、进行存储在专用存储器中的数据项之间的计算处理的命令、以及进行将数据项从专用存储器传输到地址空间的第二数据传输处理的命令,
当输入进行第一数据传输处理的命令时,状态机使状态转移到允许执行进行第一数据传输处理的命令的状态,当经过执行进行第一数据传输处理的命令所需的时间时,状态机使状态转移到允许执行进行计算处理的命令的状态,并且当经过执行进行计算处理的命令所需的时间时,状态机使状态转移到允许执行进行第二数据传输处理的命令的状态。
(4)根据(1)至(3)中任一项所述的计算处理装置,其中,
命令寄存器组包括多个子寄存器组,并且
当从处理器接收多个命令列时,控制单元控制使得不同命令列由相应的多个子寄存器组保持。
(5)根据(4)所述的计算处理装置,其中,
控制单元控制使得不同命令列的命令被专有地馈送到数据传输单元和计算处理单元。
(6)根据(4)或(5)所述的计算处理装置,其中,
状态机管理特定于相应的不同命令列的状态。
(7)根据(4)或(5)所述的计算处理装置,其中,
状态机根据在管理多个命令列的状态时对应于多个命令列中的一个命令列的预定数量的命令并且根据其他命令列的状态来转移多个命令列中的一个命令列的状态。
(8)根据(4)或(5)所述的计算处理装置,其中,
多个命令列中的每个命令列包括进行将数据项从地址空间传输到专用存储器的第一数据传输处理的命令、进行存储在专用存储器中的数据项之间的计算处理的命令、以及进行将数据项从专用存储器传输到地址空间的第二数据传输处理的命令,
当经过执行多个命令列中的要第一处理的命令列进行第一数据传输处理的命令所需的时间时,状态机使状态转移到允许执行对多个命令列中的要第二处理的命令列进行第一数据传输处理的命令的状态,当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,状态机使状态转移到允许执行对多个命令列中的要第二处理的命令列进行计算处理的命令的状态,并且当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,状态机使状态转移到允许执行对要第一处理的命令列进行第二数据传输处理的命令的状态。
(9)根据(8)所述的计算处理装置,其中,
当经过执行要第一处理的命令列进行计算处理的命令所需的时间时,或者当状态转移到对要第一处理的命令列进行计算处理的命令结束的状态时,状态机使状态转移到允许执行对要第二处理的命令列进行计算处理的命令的状态。
(10)一种信息处理系统,包括:处理器;计算处理装置;以及共享存储器,存储处理器的地址空间并且甚至能够从计算处理装置访问,
计算处理装置包括
专用存储器,存储与处理器的地址空间不同的专用区域,
数据传输单元,在地址空间与专用存储器之间进行数据项的传输处理,
计算处理单元,进行存储在专用存储器中的数据项之间的计算处理,
命令寄存器组,在每个寄存器中保持从处理器接收的命令列的每个命令,
状态机,管理数据传输单元和计算处理单元中的处理的状态,以及
控制单元,控制命令寄存器组以便保持命令,并且控制命令寄存器组使得命令寄存器组保持的命令取决于状态来馈送到数据传输单元和计算处理单元中的任一者。
参考符号列表
100 处理器
101 控制总线
102 存储器总线
200 共享存储器
300 协同处理器
301 命令缓冲器
310 命令保持单元
311 开关
312 寄存器组
313 选择器
320至322 状态机
330 控制单元
331 输出寄存器选择标志
332 输入寄存器选择标志
333 状态机选择标志
334 开关
335 反转单元
341 状态检测电路
342 触发器
343 反相器
344 写入监测电路
345,346 写入检测电路
347,353 SR触发器
351,352 状态检测电路
360 总线接口
370 数据传输单元
380 计算处理单元
390 专用存储器
3131至3133 选择器
3139 控制单元

Claims (9)

1.一种计算处理装置,包括:
专用存储器,存储与处理器的地址空间不同的专用区域;
数据传输单元,在所述地址空间与所述专用存储器之间进行数据项的传输处理;
计算处理单元,进行存储在所述专用存储器中的所述数据项之间的计算处理;
命令寄存器组,在每个寄存器中保持从所述处理器接收的命令列的每个命令;
状态机,管理所述数据传输单元和所述计算处理单元中的处理的状态;以及
控制单元,控制所述命令寄存器组以保持所述命令,并且控制所述命令寄存器组根据所述状态将所述命令寄存器组保持的命令馈送到所述数据传输单元和所述计算处理单元中的任一者,
其中,
所述命令寄存器组包括多个子寄存器组,并且
当从所述处理器接收多个命令列时,所述控制单元控制使得多个子寄存器组中的每个保持不同命令列。
2.根据权利要求1所述的计算处理装置,其中,
所述状态机根据对应于所述命令列的预定数量的命令使所述状态转移以管理所述状态。
3.根据权利要求1所述的计算处理装置,其中,
所述命令列包括进行将所述数据项从所述地址空间传输到所述专用存储器的第一数据传输处理的命令、进行存储在所述专用存储器中的所述数据项之间的计算处理的命令以及进行将所述数据项从所述专用存储器传输到所述地址空间的第二数据传输处理的命令,
当输入进行所述第一数据传输处理的命令时,所述状态机转移到执行进行所述第一数据传输处理的命令的状态,当经过进行所述第一数据传输处理的命令所需的时间时,所述状态机转移到执行进行所述计算处理的命令的状态,并且当经过进行所述计算处理的命令所需的时间时,所述状态机转移到执行进行所述第二数据传输处理的命令的状态。
4.根据权利要求1所述的计算处理装置,其中,
所述控制单元控制使得不同命令列的命令被专有地馈送到所述数据传输单元和所述计算处理单元。
5.根据权利要求1所述的计算处理装置,其中,
所述状态机管理特定于相应的不同命令列的状态。
6.根据权利要求1所述的计算处理装置,其中,
所述状态机在管理所述多个命令列的状态时根据对应于所述多个命令列中的一个命令列的预定数量的命令并且根据其他命令列的状态来转移所述多个命令列中的一个命令列的状态。
7.根据权利要求1所述的计算处理装置,其中,
所述多个命令列中的每个命令列包括进行将所述数据项从所述地址空间传输到所述专用存储器的第一数据传输处理的命令、进行存储在所述专用存储器中的所述数据项之间的计算处理的命令以及进行将所述数据项从所述专用存储器传输到所述地址空间的第二数据传输处理的命令,
当经过进行所述多个命令列中的要第一处理的命令列的所述第一数据传输处理的命令所需的时间时,所述状态机态转移到执行进行所述多个命令列中的要第二处理的命令列的所述第一数据传输处理的命令的状态,当经过进行所述要第一处理的命令列的所述计算处理的命令所需的时间时,所述状态机转移到执行进行所述要第二处理的命令列的所述计算处理的命令的状态,并且当经过进行所述要第一处理的命令列的所述计算处理的命令所需的时间时,所述状态机转移到执行进行所述要第一处理的命令列的所述第二数据传输处理的命令的状态。
8.根据权利要求7所述的计算处理装置,其中,
当经过进行所述要第一处理的命令列的所述计算处理的命令所需的时间时,或者转移到进行所述要第一处理的命令列的所述计算处理的命令结束的状态时,所述状态机转移到执行进行所述要第二处理的命令列的所述计算处理的命令的状态。
9.一种信息处理系统,包括:处理器;计算处理装置以及共享存储器,所述共享存储器存储所述处理器的地址空间并且也能够从所述计算处理装置访问,
所述计算处理装置包括
专用存储器,存储与处理器的地址空间不同的专用区域,
数据传输单元,在所述地址空间与所述专用存储器之间进行数据项的传输处理,
计算处理单元,进行存储在所述专用存储器中的所述数据项之间的计算处理,
命令寄存器组,在每个寄存器中保持从所述处理器接收的命令列的每个命令,
状态机,管理所述数据传输单元和所述计算处理单元中的处理的状态,以及
控制单元,控制所述命令寄存器组以保持所述命令,并且控制所述命令寄存器组根据所述状态将所述命令寄存器组保持的命令馈送到所述数据传输单元和所述计算处理单元中的任一者,其中,
所述命令寄存器组包括多个子寄存器组,并且
当从所述处理器接收多个命令列时,所述控制单元控制使得多个子寄存器组中的每个保持不同命令列。
CN201780084019.0A 2017-01-26 2017-10-13 计算处理装置和信息处理系统 Active CN110383259B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017011862A JP2018120448A (ja) 2017-01-26 2017-01-26 演算処理装置および情報処理システム
JP2017-011862 2017-01-26
PCT/JP2017/037113 WO2018138975A1 (ja) 2017-01-26 2017-10-13 演算処理装置および情報処理システム

Publications (2)

Publication Number Publication Date
CN110383259A CN110383259A (zh) 2019-10-25
CN110383259B true CN110383259B (zh) 2023-05-16

Family

ID=62979133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780084019.0A Active CN110383259B (zh) 2017-01-26 2017-10-13 计算处理装置和信息处理系统

Country Status (5)

Country Link
US (1) US11435928B2 (zh)
JP (1) JP2018120448A (zh)
CN (1) CN110383259B (zh)
DE (1) DE112017006928T5 (zh)
WO (1) WO2018138975A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328323A (zh) * 2021-12-01 2022-04-12 北京三快在线科技有限公司 一种数据中转单元及基于数据中转单元的数据传输方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623022A (en) * 1969-12-29 1971-11-23 Ibm Multiplexing system for interleaving operations of a processing unit
US5845151A (en) * 1996-04-08 1998-12-01 Vlsi Technology, Inc. System using descriptor and having hardware state machine coupled to DMA for implementing peripheral device bus mastering via USB controller or IrDA controller
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
EP1389755A2 (en) * 2002-08-12 2004-02-18 Adtron Corporation Arrayed data storage architecture with simultaneous command of multiple storage media
DE10249883A1 (de) * 2002-10-25 2004-05-13 Advanced Micro Devices, Inc., Sunnyvale Verfahren und Vorrichtung zur Handhabung von SMBUS-Nachrichten
JP2006072961A (ja) * 2004-08-04 2006-03-16 Yaskawa Electric Corp 演算処理装置のメモリ回路

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1061439A1 (en) * 1999-06-15 2000-12-20 Hewlett-Packard Company Memory and instructions in computer architecture containing processor and coprocessor
JP2003216566A (ja) * 2002-01-18 2003-07-31 Hitachi Ltd マイクロコンピュータ
JP2005157717A (ja) 2003-11-26 2005-06-16 Nec Micro Systems Ltd データ転送方法及びその装置
US7546441B1 (en) * 2004-08-06 2009-06-09 Xilinx, Inc. Coprocessor interface controller
US20060248391A1 (en) * 2005-05-02 2006-11-02 Glover Jeffrey C State machine-based command line debugger
US7747788B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Hardware oriented target-side native command queuing tag management
US7627723B1 (en) * 2006-09-21 2009-12-01 Nvidia Corporation Atomic memory operators in a parallel processor
KR20080105390A (ko) * 2007-05-30 2008-12-04 삼성전자주식회사 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US7788470B1 (en) * 2008-03-27 2010-08-31 Xilinx, Inc. Shadow pipeline in an auxiliary processor unit controller
TWI493455B (zh) * 2013-07-02 2015-07-21 Phison Electronics Corp 命令佇列管理方法、記憶體控制器及記憶體儲存裝置
US10089039B2 (en) * 2015-10-30 2018-10-02 Toshiba Memory Corporation Memory controller, memory device having the same, and memory control method
US10482045B2 (en) * 2016-02-17 2019-11-19 Analog Devices Global Unlimited Company Data communication interface for processing data in low power systems
KR20180053027A (ko) * 2016-11-11 2018-05-21 삼성전자주식회사 스토리지 장치 및 그 동작 방법
US10635350B2 (en) * 2018-01-23 2020-04-28 Western Digital Technologies, Inc. Task tail abort for queued storage tasks
US10922017B2 (en) * 2018-08-07 2021-02-16 Micron Technology, Inc. Memories for reading data corresponding to multiple addresses associated with a read command

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623022A (en) * 1969-12-29 1971-11-23 Ibm Multiplexing system for interleaving operations of a processing unit
US5845151A (en) * 1996-04-08 1998-12-01 Vlsi Technology, Inc. System using descriptor and having hardware state machine coupled to DMA for implementing peripheral device bus mastering via USB controller or IrDA controller
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
EP1389755A2 (en) * 2002-08-12 2004-02-18 Adtron Corporation Arrayed data storage architecture with simultaneous command of multiple storage media
DE10249883A1 (de) * 2002-10-25 2004-05-13 Advanced Micro Devices, Inc., Sunnyvale Verfahren und Vorrichtung zur Handhabung von SMBUS-Nachrichten
JP2006072961A (ja) * 2004-08-04 2006-03-16 Yaskawa Electric Corp 演算処理装置のメモリ回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种自主恢复的高可靠存储控制器设计;王党辉等;《西北工业大学学报》;20130615(第03期);全文 *
嵌入式ATA主机控制器IP核设计;胡伟等;《计算机测量与控制》;20090125(第01期);全文 *

Also Published As

Publication number Publication date
JP2018120448A (ja) 2018-08-02
CN110383259A (zh) 2019-10-25
DE112017006928T5 (de) 2019-10-02
US11435928B2 (en) 2022-09-06
WO2018138975A1 (ja) 2018-08-02
US20190347030A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
JP3916680B2 (ja) プロセッサ
JPWO2008087779A1 (ja) アレイ型プロセッサおよびデータ処理システム
JP5309703B2 (ja) 共有メモリの制御回路、制御方法及び制御プログラム
CN111656339B (zh) 存储器装置及其控制方法
KR20160092007A (ko) 자율 메모리를 위한 방법 및 시스템
JP6250447B2 (ja) 半導体装置及び命令読み出し制御方法
KR102332523B1 (ko) 연산 처리 장치 및 방법
CN110383259B (zh) 计算处理装置和信息处理系统
JP4642531B2 (ja) データ要求のアービトレーション
JP2023533795A (ja) レジスタデータの消去
JP2014215624A (ja) 演算処理装置
TW202242638A (zh) 用於超標量處理器的指令派送
CN108268280B (zh) 半导体装置的处理器及其操作方法
JP6432348B2 (ja) 演算装置及び演算方法
US10922129B2 (en) Operation processing device and control method of operation processing device
JP6292324B2 (ja) 演算処理装置
US7107478B2 (en) Data processing system having a Cartesian Controller
JP2011118744A (ja) 情報処理装置
US20050114626A1 (en) Very long instruction word architecture
JP2006195705A (ja) プロセッサ
KR920004404B1 (ko) 스택(stack)시스템
JP6519343B2 (ja) データ処理装置
CN114868110A (zh) 算术逻辑单元寄存器排序
CN118245114A (zh) 一种处理器及其任务调度方法、芯片、存储介质
JP2010205088A (ja) ベクトル処理装置、及びベクトル処理方法

Legal Events

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