CN108292284A - 数据转送装置、数据转送方法和数据转送程序 - Google Patents

数据转送装置、数据转送方法和数据转送程序 Download PDF

Info

Publication number
CN108292284A
CN108292284A CN201580084614.5A CN201580084614A CN108292284A CN 108292284 A CN108292284 A CN 108292284A CN 201580084614 A CN201580084614 A CN 201580084614A CN 108292284 A CN108292284 A CN 108292284A
Authority
CN
China
Prior art keywords
data
transfer
request
hopper
length
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.)
Pending
Application number
CN201580084614.5A
Other languages
English (en)
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of CN108292284A publication Critical patent/CN108292284A/zh
Pending legal-status Critical Current

Links

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/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/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

数据转送装置(10)进行主存储装置(12)与二次存储装置(131)这样的***装置(13)之间的数据转送。数据转送装置(10)根据由处理器(11)正在执行的处理这样的信息估计数据转送的产生频率,数据转送的产生频率越高,则将表示在一次数据转送中转送的数据量的转送长度设定得越短,根据所设定的转送长度,指示主存储装置(12)与***装置(13)之间的数据转送。

Description

数据转送装置、数据转送方法和数据转送程序
技术领域
本发明涉及从外部存储装置到主存储装置的数据转送技术。
背景技术
在专利文献1中记载有DMA(Direct Memory Access:直接内存访问)转送。如专利文献1记载的那样,有时在主存储装置与二次存储装置的数据转送中使用DMA转送。DMA转送是如下技术:根据来自CPU(Central Processing Unit:中央处理单元)的转送请求,主存储装置和二次存储装置CPU不介入而直接进行数据转送。通过使用DMA转送,在数据转送中,CPU能够执行其他处理。
与此相对,将CPU介入的数据转送称作PIO(Programmed IO:编程IO)。在起动装置时,由OS(Operating System:操作***)设定使用DMA转送和PIO中的哪一种,不会混合使用DMA转送和PIO。
在DMA转送中,在进行转送的装置对应的范围内固定地设定转送长度。具体而言,在利用PCI(Peripheral Component Interconnect:***设备互连)总线连接的情况下,CACHE_LINE_SIZE中指定的尺寸成为转送长度。在起动装置时,在BIOS(Basic Input/Output System:基本输入输出***)或OS中设定转送长度。
在DMA转送事务的执行中,数据的转送占用总线,因此,其他DMA转送事务进行等待。
现有技术文献
专利文献
专利文献1:日本特开平05-073476号公报
发明内容
发明要解决的课题
需要按照每个转送进行DMA转送的设定。因此,DMA转送中的转送长度越长,则进行设定的次数越少,越能够缩短数据转送花费的时间。但是,DMA转送中的转送长度越长,则一个DMA转送的处理越花费时间,因此,其他DMA转送可能等待较长时间。
本发明的目的在于,高效地进行DMA转送,并且缩短等待时间。
用于解决课题的手段
本发明的数据转送装置进行主存储装置与***装置之间的数据转送,其中,所述数据转送装置具有:设定部,所述数据转送的产生频率越高,则该设定部将表示在一次所述数据转送中转送的数据量的转送长度设定得越短;以及转送部,其根据由所述设定部设定的转送长度,指示主存储装置与***装置之间的数据转送。
发明效果
在本发明中,数据转送的产生频率越高,则转送长度越短。因此,在数据转送的产生频率较低而不容易产生等待的情况下,转送长度较长,能够缩短数据转送时间。另一方面,在数据转送的产生频率较高而容易产生等待的情况下,转送长度较短,能够缩短等待时间。
附图说明
图1是实施方式1的数据转送装置10的结构图。
图2是示出实施方式1的OS20的动作的流程图。
图3是示出实施方式1的输入输出部30的动作的流程图。
图4是示出实施方式1的数据转送装置10的动作例的图。
图5是变形例1的数据转送装置10的结构图。
图6是变形例2的数据转送装置10的结构图。
图7是变形例3的数据转送装置10的结构图。
图8是实施方式2的数据转送装置10的结构图。
图9是示出实施方式2的OS20的动作的流程图。
图10是示出实施方式2的输入输出部30的动作的流程图。
图11是示出实施方式2的数据转送装置10的动作例的图。
具体实施方式
实施方式1
***结构的说明***
参照图1对实施方式1的数据转送装置10的结构进行说明。
数据转送装置10是计算机。
数据转送装置10具有处理器11、主存储装置12、***装置13、DMAC14(DMAController:DMA控制器)。在实施方式1中,***装置13是二次存储装置131。***装置13还可以是音频控制器、显示器控制器、传感器、LED显示器、CAN(注册商标,Controller AreaNetwork:控制器区域网络)这样的网络的接口。可以具有多个***装置13。处理器11经由信号线而与其他硬件连接,对这些其他硬件进行控制。
数据转送装置10具有OS20、输入输出部30、应用40。作为功能结构,OS20具有请求部21和访问部22。输入输出部30是与OS20分开进行动作的软件,作为功能结构,具有设定部31和转送部32。应用40是在OS20上进行动作的软件。
在二次存储装置131中存储有实现OS20、输入输出部30、应用40的程序。该程序载入到主存储装置12。载入到主存储装置12的程序被读入到处理器11,由处理器11执行。
处理器11是进行处理的IC(Integrated Circuit:集成电路)。具体而言,处理器11是CPU(Central Processing Unit:中央处理单元)、DSP(Digital Signal Processor:数字信号处理器)、GPU(Graphics Processing Unit:图形处理单元)。
具体而言,主存储装置12是RAM(Random Access Memory:随机存取存储器)。
具体而言,二次存储装置131是HDD(Hard Disk Drive:硬盘驱动器)。并且,二次存储装置还可以是SD(Secure Digital:安全数字)存储卡、CF(Compact Flash)、NAND闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD这样的移动存储介质。
DMAC14是进行DMA转送的LSI(Large Scale Integration:大规模集成)。在图1中,与***装置13独立地示出DMAC14,但是,DMAC14也可以内置于***装置13中。
表示由处理器11实现的各功能的处理结果的信息、数据、信号值、变量值存储在主存储装置12或处理器11内的寄存器或高速缓冲存储器中。在以下的说明中,假设表示由处理器11实现的各功能的处理结果的信息、数据、信号值、变量值存储在主存储装置12中进行说明。
***动作的说明***
参照图2~图4对实施方式1的数据转送装置10的动作进行说明。
实施方式1的数据转送装置10的动作相当于实施方式1的数据转送方法。并且,实施方式1的数据转送装置10的动作相当于实施方式1的数据转送程序的处理。
在实施方式1中,数据转送装置10在主存储装置12与二次存储装置131之间,通过DMA转送进行数据转送。
参照图2对实施方式1的OS20的动作进行说明。
在OS20中,并行执行步骤S101~步骤S102的处理和步骤S103~步骤S107的处理。
在步骤S101中,请求部21判定由处理器11正在进行的处理是否发生改变。
在处理发生改变的情况下,请求部21使处理进入步骤S102。另一方面,在处理未发生改变的情况下,在经过一定时间后再次执行步骤S101。
在步骤S102中,请求部21根据由处理器11正在进行的处理,输出DMA转送的转送长度的变更请求。这里,请求部21根据由处理器11正在进行的处理估计数据转送的产生频率,估计出的数据转送的产生频率越高,则请求使表示在一次所述数据转送中转送的数据量的转送长度越短。
具体而言,当由处理器11正在进行的处理发生改变时,请求部21根据由处理器11正在进行的处理,估计数据转送的产生频率。请求部21按照由处理器11执行的每个程序,事前存储每单位时间的数据转送的产生预想数,对针对由处理器11正在执行的程序存储的产生预想数进行合计,从而能够估计数据转送的产生频率。请求部21决定转送长度,使得数据转送的产生频率越高,则表示在一次所述数据转送中转送的数据量的转送长度越短。然后,请求部21将所决定的转送长度写入到主存储装置12中,并且对主存储装置12的变更请求标志设定1。
在步骤S103中,访问部22等待受理从应用40或OS20的内部处理发行的数据的读出请求。
访问部22在受理了读出请求的情况下,使处理进入步骤S104,在未受理读出请求的情况下,在经过一定时间后再次执行步骤S103。
在步骤S104中,访问部22判定通过在步骤S102中受理的读出请求而请求的数据是否已经从二次存储装置131转送到主存储装置12。具体而言,访问部22保持已经从二次存储装置131转送到主存储装置12的数据的索引,根据索引来检索所请求的数据,由此判定是否已经转送。
访问部22在未转送的情况下,使处理进入步骤S105,在已经转送的情况下,使处理进入步骤S107。
在步骤S105中,访问部22在DMAC14中追加转送请求,使得在下一个DMA转送中转送通过读出请求而请求的数据。具体而言,访问部22在DMAC14中的执行顺位的开头写入转送请求。另外,在DMAC14中设定有将多个转送请求集中记载成一个命令的命令链的情况下,访问部22在命令链的开头写入转送请求。
作为转送请求,访问部22写入表示作为转送方的二次存储装置131的地址的转送方地址、表示作为转送目的地的主存储装置12的地址的转送目的地地址、转送长度。这里的转送长度可以是在步骤S102中决定的转送长度,也可以与在步骤S102中决定的转送长度无关地决定。具体而言,可以与在步骤S102中决定的转送长度无关地加长转送长度,使得高效地对这里的转送请求进行处理。
在步骤S106中,访问部22等待通过在步骤S105中追加的转送请求而请求的数据被转送到主存储装置12。具体而言,访问部22从DMAC14受理表示DMA转送已完成的中断,或者通过轮询这样的手段在DMAC14中定期进行确认,由此,确认数据被转送到主存储装置12。访问部22在确认数据被转送到主存储装置12之前,使处理器11执行其他处理。
在步骤S107中,访问部22向在步骤S103中受理的读出请求的请求方转交被转送的数据。具体而言,访问部22读出主存储装置12中的数据,通过进程间通信交给请求方。
参照图3对实施方式1的输入输出部30的动作进行说明。
在步骤S201中,转送部32判定是否成为动作开始状态。在实施方式1中,转送部32在开始起动数据转送装置10后,判定为成为动作开始状态。另外,转送部32也可以在成为开始进行OS20的初始化处理、开始起动应用40、应用40开始显示地图这样的数据、处理器11以来自外部的输入为契机开始处理这样的其他状态的情况下,判定为成为动作开始状态。
转送部32在成为动作开始状态的情况下,使处理进入步骤S202,在未成为动作开始状态的情况下,在经过一定时间后再次执行步骤S201。
接着,输入输出部30在二次存储装置131中的转送范围的转送结束之前,反复执行步骤S202~步骤S205的处理。
在步骤S202中,设定部31判定在步骤S102中是否从请求部21输出了变更请求。具体而言,设定部31在对主存储装置12中的变更请求标志设定了1的情况下,判定为输出了变更请求。
设定部31在输出了变更请求的情况下,使处理进入步骤S203,在未输出变更请求的情况下,使处理进入步骤S205。
在步骤S203中,设定部31对转送部32设定使用变更请求中包含的转送长度。具体而言,设定部31从主存储装置12中读出转送长度,在主存储装置12的转送长度变量中写入所读出的转送长度。
在步骤S204中,设定部31对主存储装置12的变更请求标志设定0。由此,向OS20的请求部21通知变更请求的变更已完成。
在步骤S205中,转送部32根据转送长度变量中设定的转送长度,指示主存储装置12与作为***装置13的二次存储装置131之间的数据转送。具体而言,转送部32在DMAC14中写入将转送范围中的转送未完成的范围开头的地址作为转送方地址,将转送目的地的主存储装置12的地址作为转送目的地地址,将转送长度变量中设定的值作为转送长度的转送请求。
参照图4对实施方式1的数据转送装置10的动作例进行说明。
在图4中,示出起动数据转送装置10时的动作。在图4中,实线箭头表示请求流,虚线箭头表示数据流。这里,以扇区单位进行数据转送。
在处理A11中,在开始起动数据转送装置10后,转送部32判定为成为动作开始状态(步骤S201),在DMAC14中写入转送请求,由此进行DMA转送(步骤S205)。这里,设转送长度的初始值为6扇区。即,在转送长度变量中设定6扇区作为初始值。由此,二次存储装置131的扇区1~6被转送到主存储装置12。
接着,在处理B11中,OS20的初始化完成,因此,请求部21在起动应用40之前输出将转送长度变更成2扇区的变更请求(步骤S102)。即,请求部21估计在OS20的初始化后,与OS20的初始化中相比,数据转送的产生频率较高,请求使转送长度为比6扇区短的2扇区。
于是,在处理A12中,设定部31根据变更请求对转送长度变量设定2扇区(步骤S202~S204)。然后,转送部32根据变更后的转送长度变量进行DMA转送(步骤S205)。由此,二次存储装置131的扇区7~8被转送到主存储装置12。
接着,在处理B12中,访问部22从应用40受理二次存储装置131的扇区1的读出请求(步骤S103)。这里,扇区1已经转送(步骤S104),因此,访问部22向应用40转交扇区1的数据(步骤S107)。
在该期间内,由转送部32进行2次的DMA转送,二次存储装置131的扇区9~10和扇区11~12被转送到主存储装置12。
接着,在处理B13中,访问部22从应用40受理二次存储装置131的扇区30的读出请求(步骤S103)。这里,扇区30未转送(步骤S104),因此,访问部22在DMAC14中追加转送请求,使得在下一个DMA转送中转送扇区30。由此,二次存储装置131的扇区30被转送到主存储装置12。
然后,由转送部32进行2次的DMA转送,二次存储装置131的扇区13~14和扇区15~16被转送到主存储装置12。
接着,在处理B14中,应用40的起动完成,因此,请求部21输出将转送长度变更成4扇区的变更请求(步骤S102)。即,请求部21估计在应用40的起动后,与应用40的起动中相比,数据转送的产生频率较小,请求使转送长度为比2扇区长的4扇区。
于是,在处理A13中,设定部31根据变更请求对转送长度变量设定4扇区(步骤S202~S204)。然后,转送部32根据变更后的转送长度变量进行DMA转送(步骤S205)。由此,二次存储装置131的扇区17~20被转送到主存储装置12。
以后,由转送部32反复进行DMA转送,二次存储装置131的扇区21~40被转送到主存储装置12。
***实施方式1的效果***
如上所述,在实施方式1的数据转送装置10中,数据转送的产生频率越高,则转送长度越短。因此,在数据转送的产生频率较低而不容易产生等待的情况下,转送长度较长,能够缩短数据转送时间。另一方面,在数据转送的产生频率较高而容易产生等待的情况下,转送长度较短,能够缩短等待时间。
在实施方式1的数据转送装置10中,在成为动作开始状态的情况下,转送部32从作为***装置13的二次存储装置131向主存储装置12转送预先指定的指定数据。因此,能够在被OS20和应用40请求之前,向主存储装置12转送预计将被OS20和应用40请求的数据。
在实施方式1中,在开始起动数据转送装置10后,判定为成为动作开始状态。即,在实施方式1的数据转送装置10中,在起动数据转送装置10时,从作为***装置13的二次存储装置131向主存储装置12转送预先指定的指定数据。因此,能够在起动数据转送装置10后且被OS20和应用40请求数据之前,向主存储装置12转送预计将被OS20和应用40请求的数据。
如参照图4说明的那样,请求部21在起动数据转送装置10时,估计在数据转送装置10的OS20的初始化后,与OS20的初始化中相比,数据转送的产生频率较高,请求缩短转送长度。并且,请求部21估计在应用40的起动后,与应用40的起动中相比,数据转送的产生频率较小,请求加长转送长度。由此,能够缩短OS20和应用40的起动时的等待时间,并且能够在短时间内向主存储装置12转送预计将被OS20和应用40请求的数据。
在汽车导航***这样的车载器中,搭载导航功能和音频功能这样的多个功能。执行各功能所需要的程序和数据存储在HDD这样的非易失性二次存储装置中,在起动***时读出到主存储装置,由处理器执行。
如果将实施方式1的数据转送装置10应用于车载器件,则能够减少等待时间而不会妨碍起动处理,并且能够缩短从二次存储装置到主存储装置的数据转送时间。由此,能够缩短直到车载器件提供服务为止的时间。
并且,在车载器中,行驶历史和音频再现历史这样的表示***状态的信息通过处理器从主存储装置适当转送到二次存储装置进行存储。这些信息用于在起动***时复原上次的状态。并且,在设定用户频繁去往的目的地或再现喜欢的音乐时使用这些信息。
如果将实施方式1的数据转送装置10应用于车载器,则能够减少等待时间而不会妨碍用于对利用者提供服务的处理,并且能够缩短从主存储装置到二次存储装置的数据转送时间。由此,能够抑制对利用者的影响,并且能够可靠地保存对于提供服务来说很重要的数据。
另外,在上述说明中,说明了从作为***装置13的二次存储装置131向主存储装置12转送数据的情况。但是,也能够应用于从主存储装置12向***装置13转送数据的情况。
并且,在上述说明中,是使用变更请求标志向输入输出部30传达产生了变更请求。但是,也可以不使用变更请求标志而使用消息队列或寄存器向输入输出部30传达产生了变更请求。
***其他结构***
<变形例1>
在实施方式1中,OS20和输入输出部30由同一处理器11执行。但是,作为变形例1,OS20和输入输出部30也可以分别由不同的处理器11并列执行。关于该变形例1,对与实施方式1不同之处进行说明。
参照图5对变形例1的数据转送装置10的结构进行说明。
数据转送装置10具有处理器11A和处理器11B、主存储装置12、***装置13、DMAC14。OS20被读入到处理器11A,由处理器11A执行。输入输出部30被读入到处理器11B,由处理器11B执行。
<变形例2>
在实施方式1中,输入输出部30是与OS20分开进行动作的软件。但是,作为变形例2,输入输出部30也可以是在OS20上进行动作的软件。关于该变形例2,对与实施方式1不同之处进行说明。
参照图6对变形例2的数据转送装置10的结构进行说明。
数据转送装置10具有OS20和应用40。作为功能结构,OS20具有请求部21、访问部22、设定部31、转送部32。设定部31和转送部32可以是器件驱动器,也可以是用户空间的软件。并且,还可以是作为线程、进程进行动作的软件。
设定部31和转送部32是在OS20上进行动作的软件,但是,如果启动加载程序起动,则设定部31和转送部32能够进行动作。因此,在OS20的起动中,设定部31和转送部32也能够进行动作。启动加载程序是进行与数据转送装置10有关的最小限度的初始化并且将OS20读入到主存储装置12的软件。
<变形例3>
在实施方式1中,请求部21、访问部22、设定部31、转送部32的功能由软件实现。但是,作为变形例3,请求部21、访问部22、设定部31、转送部32的功能也可以由硬件实现。关于该变形例3,对与实施方式1不同之处进行说明。
参照图7对变形例3的数据转送装置10的结构进行说明。
在请求部21、访问部22、设定部31、转送部32的功能由硬件实现的情况下,数据转送装置10还具有处理电路15。处理电路15是实现请求部21、访问部22、设定部31、转送部32的功能的专用电子电路。
处理电路15为单一电路、复合电路、程序化的处理器、并列程序化的处理器、逻辑IC、GA(Gate Array:门阵列)、ASIC(Application Specific Integrated Circuit:面向特定用途的集成电路)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)。
可以用一个处理电路15实现各部的功能,也可以使各部的功能分散到多个处理电路15来实现。
<变形例4>
作为变形例4,也可以是一部分功能由硬件实现,其他功能由软件实现。即,也可以是请求部21、访问部22、设定部31、转送部32中的一部分功能由硬件实现,其他功能由软件实现。
将处理器11、主存储装置12、处理电路15统称作“处理电路***”。即,请求部21、访问部22、设定部31、转送部32的功能由处理电路***实现。即,数据转送装置10采用图1、图6、图7中的任何附图所示的结构,请求部21、访问部22、设定部31、转送部32的功能都由处理电路***实现。
实施方式2
在实施方式1中,根据由处理器11正在进行的处理估计数据转送的产生频率,决定转送长度。在实施方式2中,与实施方式1的不同之处在于,还根据请求数据转送的请求方的数量估计数据转送的产生频率,决定转送长度。在实施方式2中,对不同之处进行说明。
***结构的说明***
参照图8对实施方式2的数据转送装置10的结构进行说明。
在实施方式2中,***装置13是二次存储装置131和接口132。
接口132是Bluetooth(注册商标)、WiFi、CNA这样的网络接口。接口132可以按照每个网络进行设置,也可以按照多个网络共享的状态进行设置。数据转送装置10经由接口132而与外部装置50连接。
作为功能结构,转送部32具有第1转送部321和第2转送部322。第1转送部321是进行主存储装置12与二次存储装置131之间的数据转送的软件,第2转送部322是进行主存储装置12与接口132之间的数据转送的软件。
***动作的说明***
参照图9~图11对实施方式2的数据转送装置10的动作进行说明。
实施方式2的数据转送装置10的动作相当于实施方式2的数据转送方法。并且,实施方式2的数据转送装置10的动作相当于实施方式2的数据转送程序的处理。
在实施方式2中,数据转送装置10在主存储装置12与二次存储装置131和接口132之间,通过DMA转送进行数据转送。这里,二次存储装置131和接口132使用同一总线而与主存储装置12进行数据转送。
参照图9对实施方式2的OS20的动作进行说明。
在OS20中,并行执行步骤S301~步骤S302的处理、步骤S303~步骤S307的处理、步骤S308~步骤S311的处理。
在步骤S301中,请求部21判定由处理器11正在进行的处理和请求使用同一总线的数据转送的请求方的数量中的至少任意一方是否发生改变。
请求部21在至少任意一方发生改变的情况下,使处理进入步骤S302。另一方面,在任何一方都未改变的情况下,在经过一定时间后再次执行步骤S301。
在步骤S302中,请求部21根据由处理器11正在进行的处理和请求使用同一总线的数据转送的请求方的数量,输出DMA转送的转送长度的变更请求。
具体而言,请求部21根据由处理器11正在进行的处理和请求使用同一总线的数据转送的请求方的数量,估计数据转送的产生频率。请求部21决定转送长度,使得数据转送的产生频率越高,则表示在一次所述数据转送中转送的数据量的转送长度越短。然后,请求部21将所决定的转送长度写入到主存储装置12中,并且对主存储装置12的变更请求标志设定1。这里,第1转送部321和第2转送部322分别写入转送长度,第1转送部321和第2转送部322分别设定变更请求标志。
步骤S303~步骤S307的处理与图2的步骤S103~步骤S107的处理相同。
在步骤S308中,访问部22等待受理从应用40或OS20的内部处理发行的、来自通过接口132连接的外部装置50的数据的取得请求。
访问部22在受理了取得请求的情况下,使处理进入步骤S309,在未受理取得请求的情况下,在经过一定时间后再次执行步骤S308。
在步骤S309中,访问部22将接口132设定成有效。具体而言,访问部22接通接口132的电源。
在步骤S310中,访问部22等待从接口132向主存储装置12转送数据。具体而言,访问部22从DMAC14受理表示DMA转送已完成的中断,或者通过轮询这样的手段在DMAC14中定期进行确认,由此,确认数据被转送到主存储装置12。访问部22在确认数据被转送到主存储装置12之前,使处理器11执行其他处理。
在步骤S311中,访问部22向在步骤S308中受理的取得请求的请求方转交被转送的数据。具体而言,访问部22读出主存储装置12中的数据,通过进程间通信交给请求方。
另外,访问部22在转交数据后,使接口132无效。具体而言,访问部22断开接口132的电源。
参照图10对实施方式2的输入输出部30的动作进行说明。
在输入输出部30中,并行执行步骤S401~步骤S405的处理、步骤S406~步骤S410的处理。
步骤S401~步骤S405的处理与图3的步骤S201~步骤S205的处理相同。但是,步骤S401~步骤S405的处理由第1转送部321执行。并且,在步骤S402和步骤S404中使用第1转送部321用的变更请求标志,在步骤S403中使用第1转送部321用的转送长度。
在步骤S406中,第2转送部322判定是否从与接口132连接的外部装置50接收到数据。
第2转送部322在接收到数据的情况下,使处理进入步骤S407,在未接收到数据的情况下,在经过一定时间后再次执行步骤S406。
接着,输入输出部30在接收到的数据的转送结束之前,反复执行步骤S407~步骤S410的处理。
在步骤S407中,设定部31判定在步骤S302中是否从请求部21输出了变更请求。具体而言,设定部31在对主存储装置12中的第2转送部322用的变更请求标志设定了1的情况下,判定为输出了变更请求。
设定部31在输出了变更请求的情况下,使处理进入步骤S408,在未输出变更请求的情况下,使处理进入步骤S410。
在步骤S408中,设定部31对转送部32设定使用变更请求中包含的转送长度。具体而言,设定部31从主存储装置12中读出第2转送部322用的转送长度,在主存储装置12的转送长度变量中写入所读出的转送长度。
在步骤S409中,设定部31对主存储装置12的第2转送部322用的变更请求标志设定0。由此,向OS20的请求部21通知变更请求的变更已完成。
在步骤S410中,转送部32在DMAC14中写入转送请求。具体而言,转送部32写入将接收到的数据中的转送未完成的范围的开头的地址作为转送方地址,将转送目的地的主存储装置12的地址作为转送目的地地址,将转送长度变量中设定的值作为转送长度的转送请求。
参照图11对实施方式2的数据转送装置10的动作例进行说明。
在图11中,示出起动数据转送装置10时的动作。在图11中,实线箭头表示请求流,虚线箭头表示数据流。这里,以扇区单位进行与二次存储装置131有关的数据转送,以字节单位进行与接口132有关的数据转送。
处理A21、A22、处理B21与图4所示的处理A11、A12、处理B11相同,因此省略说明。
在处理A22之后,在处理B22中,访问部22从应用40受理从经由接口132连接的外部装置50取得数据的取得请求(步骤S308)。然后,访问部22使接口132有效(步骤S309)。这里,设第2转送部322用的转送长度为1536字节。即,在第2转送部322用的转送长度变量中设定1536字节作为初始值。
在该期间内,由转送部32进行2次的DMA转送,二次存储装置131的扇区9~10和扇区11~12被转送到主存储装置12。
接着,在处理B23中,请求部21输出将与第2转送部322有关的转送长度变更成512字节的变更请求(步骤S302)。即,请求部21追加接口132作为请求使用同一总线的数据转送的请求方,请求方的数量增加,因此,估计数据转送的产生频率较高,请求使转送长度为比1536字节短的512字节。
于是,在处理A23中,设定部31根据变更请求对第2转送部322用的转送长度变量设定512字节(步骤S407~S409)。然后,第2转送部322根据变更后的转送长度变量进行DMA转送(步骤S410)。由此,从接口132向主存储装置12转送512字节的数据。
然后,由第1转送部321和第2转送部322进行DMA转送(步骤S402~S405、步骤S407~S410),直到二次存储装置131的扇区114之前被转送到主存储装置12,接口132接收到的数据被全部转送。
于是,在处理B24中,接口132接收到的数据被全部转送,因此,访问部22使接口132无效(步骤S410)。由此,数据转送装置10的功耗得到抑制。
处理B25、处理A24与图4所示的处理B14、处理A13相同,因此省略说明。
另外,在处理B23中,请求部21请求仅缩短第2转送部322的转送长度。但是,请求部21也可以请求不仅缩短第2转送部322的转送长度,而且缩短第1转送部321的转送长度。具体而言,请求部21也可以请求使第2转送部322的转送长度为比1536字节短的512字节,并且请求使第1转送部321的转送长度为比2扇区短的1扇区。
***实施方式2的效果***
如上所述,在实施方式2的数据转送装置10中,不仅根据由处理器11正在进行的处理,而且根据请求数据转送的请求方的数量估计数据转送的产生频率,决定转送长度。因此,在连接有进行数据转送的外部装置50的情况下,能够更加适当地估计数据转送的产生频率,能够更加适当地决定转送长度。
***其他结构***
<变形例5>
在实施方式2中,是当请求数据转送的请求方的数量增加时,将转送长度设定得较短。但是,作为变形例5,也可以加长一部分请求方的转送长度,缩短其他请求方的转送长度。关于该变形例5,对与实施方式2不同之处进行说明。
在变形例5中,请求部21事前按照每个请求方确定优先级。在变形例5中,确定接口132的优先级较高,确定其他的优先级较低。
当请求数据转送的请求方的数量增加时,请求部21请求加长与优先级较高的请求方有关的转送长度,缩短与优先级较低的请求方有关的转送长度。在变形例5中,在图11的处理B23中,请求部21输出将与第1转送部321有关的转送长度变更成比2扇区短的1扇区,并且将与第2转送部322有关的转送长度变更成比1536字节长的3072字节的变更请求。
如上所述,通过加长与优先级较高的请求方有关的转送长度,能够尽快完成与优先级较高的请求方有关的数据转送。
<变形例6>
与实施方式1同样,请求部21、访问部22、设定部31、转送部32的功能由软件实现。但是,与实施方式1的变形例3同样,请求部21、访问部22、设定部31、转送部32的功能也可以由硬件实现。并且,与实施方式1的变形例4同样,请求部21、访问部22、设定部31、转送部32也可以一部分功能由硬件实现,其他功能由软件实现。
标号说明
10:数据转送装置;11:处理器;12:主存储装置;13:***装置;131:二次存储装置;132:接口;14:DMAC;20:OS;21:请求部;22:访问部;30:输入输出部;31:设定部;32:转送部;321:第1转送部;322:第2转送部;40:应用;50:外部装置。

Claims (7)

1.一种数据转送装置,该数据转送装置进行主存储装置与***装置之间的数据转送,其中,所述数据转送装置具有:
请求部,所述数据转送的产生频率越高,则该请求部请求使表示在一次所述数据转送中转送的数据量的转送长度越短;以及
转送部,其根据由所述请求部请求的转送长度,指示主存储装置与***装置之间的数据转送。
2.根据权利要求1所述的数据转送装置,其中,
所述请求部根据由处理器正在进行的处理,估计所述数据转送的产生频率。
3.根据权利要求1或2所述的数据转送装置,其中,
所述请求部根据请求所述数据转送的请求方的数量,估计所述数据转送的产生频率。
4.根据权利要求3所述的数据转送装置,其中,
所述请求部针对一部分所述请求方,请求与其他所述请求方相比延长转送长度。
5.根据权利要求1~4中的任意一项所述的数据转送装置,其中,
所述请求部在起动所述数据转送装置时,估计在所述数据转送装置的OS(OperatingSystem:操作***)的初始化后,与所述OS的初始化中相比,所述数据转送的产生频率较高,
所述转送部在起动所述数据转送装置时,从所述***装置向所述主存储装置转送指定数据。
6.一种数据转送方法,进行主存储装置与***装置之间的数据转送,其中,
所述数据转送的产生频率越高,则请求使表示在一次所述数据转送中转送的数据量的转送长度越短,
根据所请求的转送长度,指示主存储装置与***装置之间的数据转送。
7.一种数据转送程序,进行主存储装置与***装置之间的数据转送,其中,所述数据转送程序使计算机执行以下处理:
请求处理,所述数据转送的产生频率越高,则请求使表示在一次所述数据转送中转送的数据量的转送长度越短;以及
转送处理,根据通过所述请求处理请求的转送长度,指示主存储装置与***装置之间的数据转送。
CN201580084614.5A 2015-11-26 2015-11-26 数据转送装置、数据转送方法和数据转送程序 Pending CN108292284A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/083156 WO2017090138A1 (ja) 2015-11-26 2015-11-26 データ転送装置、データ転送方法及びデータ転送プログラム

Publications (1)

Publication Number Publication Date
CN108292284A true CN108292284A (zh) 2018-07-17

Family

ID=56421677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580084614.5A Pending CN108292284A (zh) 2015-11-26 2015-11-26 数据转送装置、数据转送方法和数据转送程序

Country Status (5)

Country Link
US (1) US20180307640A1 (zh)
JP (1) JP5955489B1 (zh)
CN (1) CN108292284A (zh)
DE (1) DE112015007042B4 (zh)
WO (1) WO2017090138A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044809A1 (en) * 2002-08-30 2004-03-04 Fujitsu Limited DMA controller and DMA transfer method
CN1252566C (zh) * 2001-12-04 2006-04-19 日本电气株式会社 可向下折的信息处理装置
US20060112199A1 (en) * 2004-11-22 2006-05-25 Sonksen Bradley S Method and system for DMA optimization in host bus adapters
CN1270247C (zh) * 2000-02-10 2006-08-16 索尼公司 总线仿真设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573476A (ja) 1991-09-13 1993-03-26 Yokogawa Electric Corp Dma装置
JP3206568B2 (ja) * 1998-10-28 2001-09-10 日本電気株式会社 Dma制御方法及び装置
JP2000187636A (ja) * 1998-12-22 2000-07-04 Nkk Corp Dma転送システム
JP2002024156A (ja) * 2000-07-04 2002-01-25 Mitsubishi Electric Corp Dmaコントローラおよびその転送方法
DE102004030737A1 (de) * 2004-06-25 2006-01-12 Degussa Ag Verfahren und Vorrichtung zur Extraktion von Stoffen aus silanmodifizierten Füllstoffen

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1270247C (zh) * 2000-02-10 2006-08-16 索尼公司 总线仿真设备
CN1252566C (zh) * 2001-12-04 2006-04-19 日本电气株式会社 可向下折的信息处理装置
US20040044809A1 (en) * 2002-08-30 2004-03-04 Fujitsu Limited DMA controller and DMA transfer method
US20060112199A1 (en) * 2004-11-22 2006-05-25 Sonksen Bradley S Method and system for DMA optimization in host bus adapters

Also Published As

Publication number Publication date
DE112015007042B4 (de) 2022-09-15
JPWO2017090138A1 (ja) 2017-11-24
DE112015007042T5 (de) 2018-08-23
JP5955489B1 (ja) 2016-07-20
WO2017090138A1 (ja) 2017-06-01
US20180307640A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
CN110647480B (zh) 数据处理方法、远程直接访存网卡和设备
US11163710B2 (en) Information processor with tightly coupled smart memory unit
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
CN115495389B (zh) 存储控制器、计算存储装置以及计算存储装置的操作方法
US20190042501A1 (en) Technologies for computational storage via offload kernel extensions
US20150346795A1 (en) Multi-host power controller (mhpc) of a flash-memory-based storage device
CN107810492B (zh) 可配置的邮箱数据缓冲器装置
JP2021515318A (ja) NVMeベースのデータ読み取り方法、装置及びシステム
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
EP3479402B1 (en) Method and apparatus for remote field programmable gate array processing
JP7470685B2 (ja) 集積回路中の算出ユニットをプログラムおよび制御すること
US20130117533A1 (en) Coprocessor having task sequence control
US8756356B2 (en) Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size
CN108292284A (zh) 数据转送装置、数据转送方法和数据转送程序
US20230185755A1 (en) Software or firmware managed hardware capability and control configuration for pcie devices
EP4105771A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
TW200523789A (en) Method and system for direct access to a non-memory mapped device memory
JP5129040B2 (ja) 共有メモリを用いたバス通信装置
US20180336147A1 (en) Application processor including command controller and integrated circuit including the same
US20230078439A1 (en) Secure and power efficient audio data processing
US20240004810A1 (en) Multiple channel direct access memory-based configuration system
JP2006031263A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180717

WD01 Invention patent application deemed withdrawn after publication