CN102945215A - 信息处理设备和方法 - Google Patents
信息处理设备和方法 Download PDFInfo
- Publication number
- CN102945215A CN102945215A CN2012101293617A CN201210129361A CN102945215A CN 102945215 A CN102945215 A CN 102945215A CN 2012101293617 A CN2012101293617 A CN 2012101293617A CN 201210129361 A CN201210129361 A CN 201210129361A CN 102945215 A CN102945215 A CN 102945215A
- Authority
- CN
- China
- Prior art keywords
- data
- data volume
- transmit
- size
- information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System (AREA)
- Computer And Data Communications (AREA)
Abstract
一种信息处理设备和方法。信息处理设备包括:设置装置,将联系另一设备设置的读取时或写入时的最大传送大小设置为最大传送大小;计算装置,从第一数据量中减去第二数据量以计算第三数据量,第一数据量是要传送的数据的量,第二数据量是已传送的数据的量;边界判定装置,用于在第三数据量的数据被传送的情况下,判断传送是否将会涉及延伸跨过页边界;传送大小判定装置,用于判断第三数据量是否等于或小于所设置的最大传送大小;缓冲器边界判定装置,用于在第三数据量的数据被传送的情况下,判断传送是否将会涉及超过缓冲器大小;数据量装置,用于基于由上述判定装置中的两个以上作出的判断,确定在第三数据量的限度内要传送的数据的数据量。
Description
本申请是申请号为200810095007.0、申请日为2008年4月21日、题为“信息处理设备和方法以及程序”的发明专利申请的分案申请。
技术领域
本发明涉及信息处理设备和方法及其程序。具体而言,本发明涉及适合在传送信息时使用的信息处理设备和方法及其程序。
背景技术
已知将要连接包含存储器等的存储卡的数据处理设备(例如参考日本早期公开No.2004-46891)。
已知一种直接存储器访问(DMA)控制器,其用于主机和储存装置之间的数据传送。直接存储器访问是指在不同的存储器之间或者在存储器与I/O设备之间直接传送数据,而不依赖于一组机器语言指令。DMA控制器是用于控制DMA功能的控制器。
当利用DMA功能来传送数据时,使用描述符(descriptor)。在描述符中描述了数据传送控制信息,例如数据传送地址和数据传送大小。
涉及对描述符的使用的传送方法例如适合用于像个人计算机等中使用的存储器系统中那样的按页管理的离散物理地址空间的情况下的数据传送,即被定义为储存在连续逻辑地址空间中的信息片段被离散地储存在实际物理地址空间中的情况下的数据传送(参见图1)。
发明内容
作为用于将主机和储存装置与彼此相连的接口,广泛采用了一种被称为外围组件互连(PCI)Express的高速总线。PCI Express是基于分组的总线接口。在基于分组的总线接口中,在发出分组时必须确定传送大小。
例如,在诸如高级微控制器总线体系结构(AMBA)、高级高性能总线(AHB)和高级外围总线(APB)之类的非基于分组的总线接口的情况下,可以半途暂停DMA数据传送,然后再重新开始。另一方面,在诸如PCI Express之类的基于分组的总线接口的情况下,不能半途暂停DMA数据传送然后再重新开始。
因此,在使用基于分组的总线接口时,在发出分组时必须确定传送大小。另外,在传送大量数据的情况下,在传送数据前必须划分数据。在现有技术中,在数据传送时,主机需要在考虑总线规范的情况下执行与数据传送相关的调度,并且基于调度生成描述符。
本发明是考虑到这种情形而设计出来的,它使得可以减少在数据传送时主机中要执行的处理。
根据本发明的一个实施例,提供了一种信息处理设备,包括:设置装置,用于将联系另一设备设置的读取时的最大传送大小或者写入时的最大传送大小设置为最大传送大小;计算装置,用于从第一数据量中减去第二数据量,以计算第三数据量,该第一数据量是要传送的数据的量,该第二数据量是已经传送的数据的量;边界判定装置,用于在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及延伸跨过页边界;传送大小判定装置,用于判断所述第三数据量是否等于或小于所述设置装置所设置的所述最大传送大小;缓冲器边界判定装置,用于在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及超过缓冲器大小;以及数据量装置,用于基于由上述判定装置中的两个以上作出的判断,来确定在所述第三数据量的限度内要传送的数据的数据量。
根据本发明的另一实施例,提供了一种信息处理方法,包括以下步骤:将联系另一设备设置的读取时的最大传送大小或者写入时的最大传送大小设置为最大传送大小;从第一数据量中减去第二数据量,以计算第三数据量,该第一数据量是要传送的数据的量,该第二数据量是已经传送的数据的量;在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及延伸跨过页边界;判断所述第三数据量是否等于或小于所述设置步骤所设置的所述最大传送大小;在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及超过缓冲器大小;以及基于由上述判断中的两个以上的判断,来确定在所述第三数据量的限度内要传送的数据的数据量。
在分别根据本发明一个实施例的信息处理设备和方法以及程序中,与主机系统建立连接,从主机系统指定数据传送时的大小,并且在至少考虑页边界和缓冲器边界的同时执行具有该大小的数据的传送。必要时,将此数据划分成部分并且单独传送这些部分。
根据本发明的上述实施例,例如可以减少在数据传送时主机系统中需要执行的处理的量。
附图说明
图1是用于说明逻辑地址空间和物理地址空间的示图;
图2是示出根据本发明一个实施例的主机系统和储存系统的配置的框图;
图3是示出系统的操作的流程图;
图4是用于描述命令的示图;
图5是用于描述传送能力的示图;
图6是用于描述4K地址边界的示图;
图7是示出根据本发明实施例的DMA控制器的结构的框图;
图8至12是用于描述DMA控制器的操作的示图;以及
图13是用于描述储存介质的示图。
具体实施方式
下面将描述本发明的实施例。本发明的组成特征与下面在结合附图理解的此说明书中描述的实施例之间的对应关系将被例示如下。注意这种预备描述是为了确认此说明书和附图中描述了支持本发明的实施例。因此,某个实施例在此说明书和附图中有描述但在此预备描述中没有被描述为与本发明的组成特征相对应,也不意味着该实施例不对应于该组成特征。相反,即使某个实施例在此预备描述中被描述为与本发明的某个组成特征相对应,也不意味着该特定实施例不对应于任何其他组成特征。
根据本发明的一个实施例的一种信息处理设备包括:设置装置;计算装置、边界判定装置;缓冲器边界判定装置;传送大小判定装置;以及判定装置。设置装置(例如图7所示的最大传送大小判定电路101)将联系另一设备设置的读取时的最大传送大小或者写入时的最大传送大小设置为最大传送大小。计算装置(例如图7所示的减法器107)从第一数据量中减去第二数据量,以计算第三数据量,该第一数据量是要传送的数据的量,该第二数据量是已经传送的数据的量。边界判定装置(例如图7所示的4K边界判定电路102)在其量为第三数据量的数据被传送的情况下,判断此传送是否将会涉及延伸跨过页边界。缓冲器边界判定装置(例如图7所示的缓冲器边界判定电路103)在其量为第三数据量的数据被传送的情况下,判断此传送是否将会涉及超过缓冲器大小。传送大小判定装置(例如图7所示的传送大小判定电路104)判断第三数据量是否等于或小于设置装置所设置的最大传送大小。判定装置(例如图7所示的优先级判定电路105)基于由边界判定装置作出的第一判断、由缓冲器边界判定装置所作出的第二判断以及由传送大小判定装置作出的第三判断,来确定在第三数据量的限度内要传送的数据的数据量。
下面将参考附图描述本发明的实施例。
[关于系统配置]
图2是示出根据本发明一个实施例的主机系统和储存系统的配置的框图。
储存系统21和主机系统22经由储存I/F 23与彼此相连。优选地,诸如外围组件互连(PCI)Express之类的高速总线被用于储存I/F 23。
储存系统21包括控制器41、内部总线42、寄存器43、DMA控制器44、缓冲存储器45、储存I/F总线46、储存存储器(storage memory)控制器47以及储存存储器48-1至48-n。
控制器41控制储存系统21的操作。例如,控制器41对储存存储器控制器47进行控制,以执行诸如以下过程:将数据写到储存存储器48-1至48-n或从储存存储器48-1至48-n读取数据,或者基于从主机系统22提供来、并被写到寄存器43的命令来配置DMA控制器44。
控制器41、寄存器43、DMA控制器44和缓冲存储器45连接到内部总线42。寄存器43可由多个寄存器构成。寄存器43保存从主机系统22经由储存I/F 23和储存I/F总线46提供来的命令或描述符,或者传送过程或其他过程所必需的信息、变元等等。
DMA控制器44控制储存系统21中的缓冲存储器45与主机系统22中的主机存储器62之间的数据交换。链接列表传送模式被设置在DMA控制器44中。链接列表传送模式指的是由多个描述符(也称之为“条目”)构成的链接列表的地址的被从主机系统22提供到储存系统21中的寄存器43,并且储存系统21读取此链接列表以执行传送过程。
链接列表传送模式可被适当地应用于主机系统22的主机存储器62中的物理地址空间如以上参考图1所述被按页管理时,即当物理地址空间不是像逻辑地址空间那样连续,而是被离散地设置时。
缓冲存储器45临时缓冲从主机系统22经由储存I/F 23和储存I/F总线46提供来的数据,或者在储存存储器控制器47的控制下从储存存储器48-1至48-n之一中读取并经由储存I/F 23和储存I/F总线46被提供到主机系统22的数据。
储存I/F总线46是用于将寄存器43、DMA控制器44和缓冲存储器45连接到储存I/F的总线。在控制器41的控制下,储存存储器控制器47控制向储存存储器48-1至48-n的数据写入和从储存存储器48-1至48-n的数据读取。储存存储器控制器47向储存存储器48-1至48-n写入数据,并从储存存储器48-1至48-n读取数据。在以下描述中,储存存储器48-1至48-n将被简称为“储存存储器48”,除非它们需要与彼此相区分。
主机系统22包括主机CPU 61和主机存储器62。当然,主机系统22还可包括其他组件,例如通信部件、显示部件、操作输入部件、成像部件、音频采集部件和数据压缩部件。例如,诸如普通的个人计算机、数字照相机和数字摄像机之类的各种类型的信息处理设备可被用作主机系统22。
主机CPU 61控制主机系统22的操作。基于经由操作输入部件(未示出)输入的用户操作,例如,主机CPU 61能够生成命令并经由储存I/F 23将命令写入到储存系统21中的寄存器43。这种命令的示例包括:用于将储存在主机存储器62中的数据写入到储存系统21中的储存存储器48的命令;与储存系统21与主机系统22之间的数据交换相关的命令,例如用于从储存系统21中的储存存储器48读取数据并将读取的数据储存在主机存储器62中的命令;以及用于控制储存存储器48的命令,例如用于删除储存在储存存储器48中的数据的命令。
在主机CPU 61控制下,主机存储器62储存预定的数据。
如上所述,在如图2所示的由储存系统21和主机系统22构成的系统中,用于控制DMA传送的DMA控制器设置在储存一侧。
以下描述是参考主机存储器62中采用的数据储存形式是以上参考图1描述的数据储存形式的示例性情况来进行的,在所述数据储存形式中,主机系统22中的主机存储器62中的物理地址空间不是像逻辑地址空间那样连续的,而是离散设置的。换言之,以下描述是参考主机系统22中的主机存储器62中的物理地址空间不像逻辑地址空间、而是由多个不连续(离散)区域构成的示例性情况来进行的。
接下来,下面将参考图3的流程图来描述储存系统21和主机系统22的操作。在步骤S11,主机系统22中的主机CPU 61经由储存I/F 23向储存系统21发送用于开始数据传送的命令。
在步骤S12,储存系统21经由储存I/F 23接收来自主机系统22的命令。所提供的命令经由储存I/F总线46被写入到寄存器43。在步骤S13,控制器41经由内部总线42从寄存器43读取命令,并且解释命令。
这里假定写在寄存器中的命令被解释为针对链接列表传送模式的命令,并且假定执行了相应的设置。在步骤S14,控制器41在DMA控制器44中设置链接列表传送模式。
在步骤S15,已被设置到链接列表传送模式的DMA控制器44经由储存I/F 23向主机系统22请求链接列表中的一个条目。
在步骤S16,主机系统22中的主机CPU 61接受对链接列表中的一个条目的请求,并且经由储存I/F 23将链接列表中的一个条目发送到储存系统21。
在步骤S17,储存系统21经由储存I/F 23从主机系统22获取条目,并且将条目保存在寄存器43中。在步骤S18和S19,储存系统21和主机系统22执行数据传送过程。
在步骤S20,储存系统21中的控制器41判断在步骤S17获取的条目中是否描述了EOT。如果在步骤S20中判定在条目中未描述EOT,则控制返回到步骤S15,并且后续的过程重复。
同时,如果在步骤S20中判定在条目中描述了EOT,则控制器41在步骤S21结束该过程。
在以上过程中,数据传送是在链接列表传送模式中执行的。
下面将更详细地描述以上过程。例如,在储存于主机系统22中的主机存储器62中的数据将被写入到储存系统21中的储存存储器48的情况下,主机系统22中的主机CPU 61经由储存I/F 23和储存I/F总线46向寄存器43发送写入命令。该写入命令是用于发起将储存在主机系统22中的主机存储器62中的数据写入到储存系统21中的储存存储器48的过程的命令。寄存器43接受此命令的提供并临时保存该命令。
储存系统21中的控制器41获取保存在寄存器43中的命令并且解释命令的内容。因为储存系统21和主机系统22如上所述利用链接列表传送模式来执行数据传送,所以控制器41根据链接列表传送模式来对DMA控制器44进行配置。
具体而言,当链接列表传送模式被采用时,主机系统22中的主机CPU 61将主机存储器62中的链接列表的地址写入到寄存器43。因此,DMA控制器44参考寄存器43以从主机存储器62逐一读取条目,并且基于读取的条目来执行数据传送过程。这样,DMA控制器44对链接列表中的所有条目执行数据传送过程。
具体而言,当储存在主机系统22中的数据被写入到储存系统21时,DMA控制器44从储存在主机存储器62中的数据中读取将被写入到储存存储器48的数据,并且经由储存I/F 23和储存I/F总线46将读取的数据提供到缓冲存储器45。缓冲存储器45对提供的数据进行缓冲。
主机系统22在生成链接列表时需要考虑储存I/F等的规范。但是,根据本实施例的主机系统22不需要考虑储存I/F 23等的规范。为了允许主机系统22不考虑储存I/F 23的规范,DMA控制器44具有如图7所示的结构。稍后将描述图7。
当储存在缓冲存储器45中的数据的内容变得有效时,储存存储器控制器47开始将储存在缓冲存储器45中的数据写入到储存存储器48。另一方面,例如,在储存于储存系统21中的储存存储器48中的数据被读取并被储存在主机系统22中的主机存储器62中的情况下,主机系统22中的主机CPU 61经由储存I/F 23和储存I/F总线46向寄存器43发送读取命令。读取命令是用于发起从储存系统21中的储存存储器48读取数据的过程的命令。
寄存器43接受此命令的提供并且临时保存该命令。储存系统21中的控制器41获取保存在寄存器43中的命令。储存系统21中的控制器41获取保存在寄存器43中的命令并且解释命令的内容。因为储存系统21和主机系统22如上所述利用链接列表传送模式来执行数据传送,所以控制器41根据链接列表传送模式来对DMA控制器44进行配置。
在主机系统22从储存系统21读取数据的情况下,控制器41控制储存存储器控制器47以允许将被读取的数据被从储存存储器48传送到缓冲存储器45。当储存在缓冲存储器45中的数据的内容变得有效时,DMA控制器44经由储存I/F总线46和储存I/F 23将储存在缓冲存储器45中的数据传送到主机存储器62。
这里,下面将描述主机系统22所拥有的与数据传送相关的命令集,其中如以上参考图1所述,主机存储器62中的物理地址空间不同于逻辑地址空间,是由多个不连续(离散)的区域构成的。主机系统22所拥有的与数据传送相关的命令集包括READ_DATA_LINKLIST命令和WRITE_DATA_LINKLIST命令。
READ_DATA_LINKLIST命令是用于在链接列表传送模式中发起对具有指定大小并且开始于指定地址的数据的连续读取的命令。WRITE_DATA_LINKLIST命令是用于在链接列表传送模式中发起对具有指定大小并且开始于指定地址的数据的连续写入的命令。
在链接列表传送模式中,由具有如图4所示的格式的多个描述符构成的链接列表被用于向离散的物理地址空间写入数据或从离散的物理地址空间读取数据。构成链接列表的各个描述符也被称为“条目”。
每个条目包括传送地址、传送大小和指示相应条目是否是链接列表中的最后条目的传送控制信息(EOT)。在作为涉及使用链接列表的传送模式的链接列表传送模式中,主机系统22将主机存储器62中的链接列表的顶部地址设置在储存系统21中的寄存器43中。根据该设置,DMA控制器44从主机存储器62读取第一条目。
基于此条目中描述的这种传送信息,DMA控制器44能够执行必要的传送。在使用第一条目的传送完成之后,DMA控制器44从链接列表获取下一条目,并且以类似的方式执行传送。DMA控制器44参考条目中的传送控制信息的EOT标志,以判断此条目是否是最后的条目。DMA控制器44重复上述操作,直到最后的条目为止。
[关于限制]
这里假定基于分组的总线接口被用于储存I/F 23,并且PCT Express被用作该基于分组的总线接口。在PCT Express被用作储存I/F 23的情况下,在执行数据交换时需要考虑以下限制。
在现有技术中,主机系统22生成链接列表以便遵守以下限制,并且储存系统21基于链接列表来执行处理。但是,在本发明中,储存系统21能够在遵守以下限制的同时执行处理,而无需主机系统22生成链接列表以便遵守限制。首先,下面将描述限制。
限制1是必须考虑储存系统21所连接到的主机系统22的传送能力,例如代表写入时有效载荷的最大大小的最大有效载荷大小(Max PayloadSize)以及代表读取时的最大大小的最大读取请求大小(Max Read RequestSize),以便在不超过这种大小的情况下执行数据交换。例如,在希望传送超过这种大小的数据的情况下,在考虑限制的同时生成链接列表的现有技术主机系统22需要生成链接列表,以使得数据被划分成部分以用于数据交换。
另外,对储存系统21中的缓冲存储器45的写入或读取根据缓冲存储器45是否可访问(满/空)而受到限制。这样,限制2是数据交换必须以不超过缓冲存储器45的大小(以下在适当时称为“缓冲器大小”)的方式执行。与限制1的情况类似,例如,在希望传送超过缓冲器大小的大量数据的情况下,在考虑限制的同时生成链接列表的现有技术主机系统22需要生成链接列表,以使得数据根据缓冲器大小被划分成部分以用于数据交换。
下面将参考图5来更详细描述限制1和2。图5中上方的表示出了最大读取请求大小与最大传送大小之间的关系。图5中下方的表示出了最大有效载荷大小与最大传送大小之间的关系。最大有效载荷大小指的是能够添加到分组的数据的最大大小。最大读取请求大小指的是能够请求的数据的最大大小。
例如,假定作为储存系统21与主机系统22之间的通信能力的交换的结果,最大有效载荷大小被判定为128字节,最大读取请求大小被主机系统22为储存系统21设置在2048字节。在这种情况下,在将数据从主机系统22传送到储存系统21时,储存系统21中的DMA控制器44向主机系统22发出读取请求,此时最多能够请求2048字节。
如果主机系统22接收到对2048字节的数据的读取请求,主机系统22则将数据划分成16个部分,每个部分的大小为128字节,并且将它们单独发送到储存系统21,因为最大有效载荷大小是128字节。例如,在PCIExpress被应用到储存I/F 23的情况下,数据传送是以这种方式执行的,因为在PCI Express的规范中,划分数据和单独发送划分后的部分对于读取请求来说是允许的。
最大有效载荷大小不仅在写入时被应用,而且在读取时也被应用。由于DMA控制器44设置在储存系统21中,因此当数据被写入到储存系统21时,读取请求是从储存系统21中的DMA控制器44发出到主机系统22的。注意,对于发出请求的一方和接收请求的一方,“读取”和“写入”的定义是相反的。
当在储存系统21与主机系统22之间执行数据传送时,根据诸如最大读取请求大小和最大有效载荷大小之类的传送能力或者储存系统21中的缓冲器大小来施加如上所述的限制1和限制2。
接下来,下面将描述限制3。根据限制3,由于总线的规则,禁止导致跨预定地址边界的访问的分组的生成。例如,在PCI Express的规范中,禁止导致跨4K地址边界(个人计算机中的页边界)的访问的分组的生成。因此,必须避免涉及跨4K地址边界的访问的传送。
例如,在根据上述缓冲器大小从预定地址生成的分组延伸跨过4K地址边界的情况下,现有技术的主机系统22在传送分组之前需要将分组划分成要单独传送的部分。在现有技术中,例如采取划分链接列表的方法来进行这种划分。或者,在现有技术中,必须根据由缓冲器大小判定的传送大小来加以限制,使得分组的地址不会延伸跨过4K边界。
下面将参考图6更详细描述限制3。假定以下情况:要从主机存储器62读取8K字节数据,并且地址边界是基于4K字节设置的。在以下参考图6进行的描述中,不考虑限制1和2。
如图6所示,假定要读取其顶部地址被表示为起始地址的8K字节数据。该8K字节数据延伸跨过两个4K边界。因此,生成链接列表,使得8K字节数据中在第一4K边界之前的部分将被首先传送,8K字节数据中在第一4K边界和下一4K边界之间延伸的部分将在接下来被传送,并且8K字节数据中在第二4K边界之后的剩余部分将最后被传送。如上所述,在这种情况下,在考虑限制3的同时生成了三个链接列表,从而使得数据传送不会涉及跨地址边界的访问。
接下来,下面将描述限制4。根据限制4,当希望传送大小小于缓冲器大小的数据时,需要进行填充,即根据缓冲器大小来向要传送的数据添加冗余数据。例如,在缓冲器大小为2K字节而只有四个字节的数据要被发送的情况下,(2K-4)字节的冗余数据需要被添加到要发送的四字节数据,以使得要发送的数据具有4K字节的大小。与有意义的四字节数据相比,(2K-4)字节的冗余数据没有实质意义。发送这种实质上没有意义的数据导致了无益地占用通信信道。从而,为了进行高效的传送,需要考虑使填充最少化,并且根据现有技术的缓冲器大小来执行传送。
在现有技术中,储存系统21所连接到的主机系统22在构造链接列表时需要考虑限制1至4中的每一个。在考虑上述所有限制的同时构造链接列表意味着主机系统22的处理的增加。在这种情况下,即使在执行DMA数据传送以便减少主机系统22的处理的情况下,也无法获得其最大效果。
在本实施例中,可以在无需主机系统22考虑上述限制的情况下适当地执行数据传送,从而使得主机系统22中的处理得以减少。换言之,主机系统22在不考虑上述限制1至4的情况下发出指令,而储存系统21在遵守限制1至4的同时执行处理。
由于主机系统22被允许在不考虑上述限制的情况下发出与数据传送相关的指令。因此主机系统22中的处理自然地减少了,并且另外,主机系统22能够灵活地发出指令,即主机系统22这部分的灵活性增大了。
现在下面将描述其中在储存系统21这部分考虑上述限制1至4的数据传送。图7示出了用于实现其中在储存系统21这部分考虑限制1至4的数据传送的电路的示例性结构。图7所示的电路例如包含在储存系统21中的DMA控制器44中。
图7所示的电路包括最大传送大小判定电路101、4K边界判定电路102、缓冲器边界判定电路103、传送大小判定电路104、优先级判定电路105、DMA 106、减法器107、加法器108、加法器109、剩余大小寄存器110、累积大小寄存器111和下一地址寄存器112。
最大有效载荷大小最大读取请求大小被从寄存器43(图2)提供到最大传送大小判定电路101。另外,用于读取的指令或用于写入的指令被从主机系统22提供到最大传送大小判定电路101。基于用于读取的指令或用于写入的指令,最大传送大小判定电路101根据最大有效载荷大小和最大读取请求大小来设置最大传送大小。
最大传送大小判定电路101是用于执行设置以便符合限制1的电路。最大传送大小判定电路101的输出,即关于最大可传送大小的信息,被提供到4K边界判定电路102和传送大小判定电路104。
4K边界判定电路102是用于执行设置以便符合限制3的电路。关于请求大小(Request Size)的信息被从剩余大小寄存器110提供到4K边界判定电路102。另外,关于请求地址(Request Address)的信息被从下一地址寄存器112提供到4K边界判定电路102。请求大小指的是要传送的数据的大小,而请求地址指的是要传送的数据的读取起始地址。
4K边界判定电路102判断要传送的数据,即(请求地址)+(请求大小),是否延伸跨过4K地址边界。请求大小如上所述是从剩余大小寄存器110提供的。从剩余大小寄存器110提供来的请求大小代表通过从其通知已从主机系统22提供来的请求大小(应当读取或写入的数据的总量)中减去已经传送的数据的量而获得的大小。也就是说,剩余大小寄存器110储存当时剩余要传送的数据的总量。储存在剩余大小寄存器110中的大小是减法器107的输出。
请求大小被从主机系统22输入到剩余大小寄存器110。剩余大小寄存器110保存从主机系统22输入的请求大小,作为初始值。随着之后数据传送被重复地执行,当时剩余要传送的数据的总量逐渐减少。优先级判定电路105的输出和关于剩余大小寄存器110中保存的数据量的信息被提供到减法器107。优先级判定电路105的输出是当时将要传送的数据的量,如下所述。
换言之,当时将要传送的数据的量和当时剩余要传送的数据的总量被提供到减法器107。减法器107从当时剩余要传送的数据的总量中减去将要传送的数据的量,从而计算下一时刻剩余要传送的数据的总量,即在下一时刻仍没有传送的剩余数据的量。然后,这样计算出的数据量被保存在剩余大小寄存器110中。
如果上述判断的结果为“真”,则4K边界判定电路102向优先级判定电路105输出信息“真”以及剩余要传送的数据的顶部地址与下一4K地址边界之间的差,来分别作为判定A和请求传送大小A。同时,如果上述判断的结果是“假”,则4K边界判定电路102向优先级判定电路105输出信息“假”和从剩余大小寄存器110提供来的请求大小,来分别作为判定A和请求传送大小A。
也就是说,4K边界判定电路102向优先级判定电路105输出不会导致要传送的数据延伸跨过4K边界的最大数据传送量。注意,在本实施例中假定了值4K,因为边界是基于4K字节设置的。在基于另一值设置来边界的情况下,4K边界判定电路102输出用于防止要传送的数据延伸跨过任何基于另一值的边界的判定A和请求传送大小A。
缓冲器边界判定电路103是用于判断由请求大小和请求地址指定的数据传送请求是否导致超过缓冲存储器45的缓冲器大小的电路。缓冲器边界判定电路103是用于执行设置以便符合限制2的电路,并且是用于根据缓冲器大小来划分分组的判定电路。缓冲器边界判定电路103向优先级判定电路105输出关于是否超过缓冲器大小的判定,来作为判定B。另外,缓冲器边界判定电路103向优先级判定电路105输出当时的传送大小,来作为请求传送大小B。
这里假定,当判定超过缓冲器大小时信息“真”被输出作为判定B,而在判定未超过缓冲器大小时信息“假”被输出作为判定B。
现在,下面将参考缓冲器大小为2048字节(2K字节)的示例性情况来描述缓冲器边界判定电路103进行的判断。例如,假定作为前一数据传送实例的结果,数据“8字节”被保存在累积大小寄存器111中。由于累积大小寄存器111保存缓冲存储器45中剩余的要传送的数据的量,因此在此情况中信息“8字节”被保存在其中。
当信息“8字节”被保存在累积大小寄存器111中时,8字节的数据被储存在缓冲存储器45中。如果在这种情形下作出对2048字节的数据传送请求,则2048字节被划分成2040字节和8字节。将2040字节与累积大小8字节相加得出与缓冲器大小相对应的2048字节。缓冲器边界判定电路103向优先级判定电路105输出2048字节,作为请求传送大小B。
由于原始传送请求是针对2048字节的,因此剩余的8字节被保存在累积大小寄存器111中,并且将在下一传送请求时作为请求传送大小B的一部分被输出。也就是说,已被请求传送的2048字节被划分成两条数据“2040字节”和“8字节”。此时,为了写入与后一条数据“8字节”相对应的8字节数据,下一传送地址应当为(请求地址)+2040。
因此,需要添加的上述值需要被保存在下一地址寄存器112中。当达到2048字节的缓冲器大小时,累积大小寄存器111被清除,当2040字节已被传送时,0(零)字节被保存在其中,而当剩余的8字节已被传送时,8字节被保存在其中。剩余传送大小可通过以下式子来计算:缓冲器大小(2048)字节-(累积大小)。但是,在本实施例中,设置了剩余大小寄存器110,并且在剩余大小寄存器110中保存计算出的值。注意,剩余大小寄存器110的设置对于本发明来说不是必要的,在本发明的另一个实施例中可以不设置剩余大小寄存器110。
传送大小判定电路104是用于执行设置以便符合限制4的电路。关于最大可传送大小的信息被从最大传送大小判定电路101提供到传送大小判定电路104。另外,关于请求大小的信息被从剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断所请求的传送大小(请求大小)是否等于或小于最大可传送大小,并且向优先级判定电路105输出此判断的结果来作为判定C。这里假定当判定请求传送大小等于或小于最大可传送大小时信息“真”被输出作为判定C,而当判定请求传送大小不等于或小于最大可传送大小时信息“假”被输出作为判定C。
当传送大小判定电路104所作的判定为肯定时,即当传送大小判定电路104判定传送大小等于或小于最大传送大小时,传送大小判定电路104向优先级判定电路105输出等于或小于最大传送大小的传送大小,来作为请求传送大小C。
判定A、B和C分别被从4K边界判定电路102、缓冲器边界判定电路103和传送大小判定电路104提供到优先级判定电路105。从而,三个判定被提供到优先级判定电路105。如果三个判定中有两个或更多个为“真”,也就是说,如果判定两个或更多个条件得到满足,则优先级判定电路105向DMA 106输出最小的值,来作为最终请求传送大小。具体而言,请求传送大小A、B和C分别被从4K边界判定电路102、缓冲器边界判定电路103和传送大小判定电路104提供到优先级判定电路105。三个请求传送大小A、B和C中具有三者之中最小值的那个被输出到DMA 106作为最终请求传送大小。
现在,下面将参考图8至12,利用具体数值来描述图7所示的电路的操作。在图8至12中,示出了图7所示的电路中对于说明来说必要的部分。
图8示出了时刻t1的情形,此时用于数据传送的指令已被发出。假定,在用于数据传送的指令被发出时,5K字节和1K已分别被指定为请求大小和请求地址。另外,假定最大传送大小为4K。
由于请求大小被提供到剩余大小寄存器110,因此在时刻t1,保存在剩余大小寄存器110中的关于剩余大小的信息为5K。由于请求地址被提供到下一地址寄存器112,因此在时刻t1,保存在下一地址寄存器112中的关于读取起始地址的信息为1K。图8中围在正方形或矩形内的数字代表储存在寄存器中的值、提供到判定电路的值、要输出的值,等等。
在时刻t1尚未执行数据传送。因此,累积大小寄存器111储存“0”,来作为缓冲存储器45(图2)中剩余的数据的量。这里假定缓冲存储器45中能够储存的数据的最大量为2K。
在时刻t1,最大传送大小判定电路101(图7)将信息“4K”提供到4K边界判定电路102,剩余大小寄存器110将信息“5K”提供到4K边界判定电路102,并且下一地址寄存器112将信息“1K”提供到4K边界判定电路102。在这种情况下,要从1K的读取起始地址开始读取5K字节的数据。也就是说,存在于地址1K和地址6K(=1K+5K)之间的数据是要传送的数据。
由于在此情况下4K是边界,因此存在于1K和6K之间的数据延伸跨过了4K边界。因此,信息“真”被输出作为判定A。另外,不导致要传送的数据延伸跨过4K边界的最大大小被输出作为请求传送大小A。具体而言,在此情况下,如果存在于地址1K和地址4K之间的数据被读取,数据传送则可以以最大大小执行,而不会延伸跨过4K边界。因此,存在于1K和4K之间的大小3K被提供到优先级判定电路105,作为请求传送大小A。
保存在累积大小寄存器111中的信息在时刻t1被提供到缓冲器边界判定电路103。因此,在时刻t1,信息“0K”被提供到缓冲器边界判定电路103。缓冲器边界判定电路103判断由请求大小和请求地址所指定的数据传送请求是否导致超过缓冲存储器45的缓冲器大小。由于在此情况下请求大小为5K并且请求地址为1K,因此缓冲器边界判定电路103判定超过了缓冲器大小,并且输出信息“真”来作为判定B。另外,由于在此情况下在缓冲存储器45中能够储存2K字节的数据,因此信息“2K”被输出作为请求传送大小B。
在时刻t1,信息“4K”被从最大传送大小判定电路101(图7)提供到传送大小判定电路104,并且信息“5K”被从剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断传送大小是否等于或小于最大传送大小。由于在此情况下传送大小为5K并且最大传送大小为4K,因此传送大小判定电路104输出信息“假”来作为判定C。在信息“假”被输出的情况下,作为请求传送大小C的信息不被输出(即代表具体数字的数据不被输出)。
如上所述,在时刻t1,信息“真”、信息“真”和信息“假”分别作为判定A、B和C被提供到优先级判定电路105。由于两条或多条信息“真”被提供到了优先级判定电路105,因此优先级判定电路105输出提供的请求传送大小中的最小值来作为最终的请求传送大小。在此情况下,“3K”和“2K”分别作为请求传送大小A和B被提供到优先级判定电路105,因此2K被设置为请求传送大小。
在时刻t2,2K被设置为请求传送大小,并且此信息被提供到DMA106。DMA 106进行用于利用2K的传送大小来执行数据传送的控制。
在时刻t2,信息“2K”被从优先级判定电路105提供到减法器107、加法器108和加法器109中的每一个。
参考图8和9,在时刻t2之前的时刻t1保存在剩余大小寄存器110中的信息以及来自优先级判定电路105的信息被提供到减法器107。在此情况下,信息“5K”和信息“2K”分别被从剩余大小寄存器110和优先级判定电路105提供到减法器107。减法器107计算5K与2K之间的差,并且将此计算的结果提供到剩余大小寄存器110。注意,从减法器107输出的值是绝对值。
在时刻t2,从减法器107提供来的结果被保存在剩余大小寄存器110中。因此,在此情况下保存在剩余大小寄存器110中的信息为信息“3K”。
在时刻t2之前的时刻t1保存在累积大小寄存器111中的信息以及来自优先级判定电路105的信息被提供到加法器108。在此情况下,信息“0K”和信息“2K”分别被从剩余大小寄存器110和优先级判定电路105提供到加法器108。加法器108计算0K与2K的和,并且将此计算的结果提供到累积大小寄存器111。
在时刻t2,从加法器108提供来的结果被保存在累积大小寄存器111中。因此,在此情况下保存在累积大小寄存器111中的信息为信息“2K”,但是,由于每当信息达到2K时累积大小寄存器111就清除信息从而将其重置到0K,因此在此情况下信息“0K”被保存在累积大小寄存器111中。
在时刻t2之前的时刻t1保存在下一地址寄存器112中的信息以及来自优先级判定电路105的信息被提供到加法器109。在此情况下,信息“1K”和信息“2K”分别被从下一地址寄存器112和优先级判定电路105提供到加法器109。加法器109计算1K与2K的和,并且将此计算的结果提供到下一地址寄存器112。
在时刻t2,从加法器109提供来的结果被保存在下一地址寄存器112中。因此,在此情况下保存在下一地址寄存器112中的信息为信息“3K”。
信息以上述方式被保存在每个寄存器中。
信息“4K”、信息“3K”和信息“3K”被提供到4K边界判定电路102,分别作为最大传送大小、剩余传送大小和读取起始地址。因此,在此情况下,要读取从3K的读取起始地址开始的3K字节(对应于剩余传送大小)的数据。换言之,存在于地址3K与地址6K(=3K+3K)之间的数据是要传送的数据。
由于在此情况下4K为边界,因此存在于3K与6K之间的数据延伸跨过了4K边界。因此,信息“真”被输出作为判定A。另外,不会导致要传送的数据延伸跨过4K边界的最大大小被输出作为请求传送大小A。具体而言,在此情况下,如果读取存在于地址3K与4K之间的数据,则可以在不延伸跨过4K边界的情况下以最大大小执行数据传送。因此,存在于3K与4K之间的数据的大小1K被提供到优先级判定电路105,作为请求传送大小A。
在时刻t2,信息“0K”被从累积大小寄存器111提供到缓冲器边界判定电路103。在此情况下,缓冲器边界判定电路103判定超过了缓冲器大小,并且输出信息“真”来作为判定B。另外,由于在此情况下在缓冲存储器45中能够储存2K字节的数据,因此信息“2K”被输出作为请求传送大小B。
在时刻t2,信息“4K”和信息“3K”分别被从最大传送大小判定电路101(图7)和剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断传送大小是否等于或小于最大传送大小。由于在此情况下传送大小为3K并且最大传送大小为4K,因此传送大小判定电路104输出信息“真”来作为判定C。在信息“真”被输出的情况下,所提供的传送大小的值被设置为请求传送大小C并被输出。因此,在此情况下,信息“3K”被输出作为请求传送大小C。
如上所述,在时刻t2,信息“真”、信息“真”和信息“真”分别作为判定A、B和C被提供到优先级判定电路105。因此,由于两条或多条信息“真”被提供到了优先级判定电路105,所以优先级判定电路105输出提供的请求传送大小中的最小值来作为最终的请求传送大小。在此情况下,“1K”、“2K”和“3K”分别作为请求传送大小A、B和C被提供到优先级判定电路105,因此1K被设置为请求传送大小。
在时刻t3,1K被设置为请求传送大小,并且此信息被提供到DMA106。DMA 106进行用于利用1K的传送大小来执行数据传送的控制。
在时刻t3,信息“1K”被从优先级判定电路105提供到减法器107、加法器108和加法器109中的每一个。
参考图9和10,在时刻t3,在时刻t2保存在剩余大小寄存器110中的信息“3K”以及来自优先级判定电路105的信息“1K”被提供到减法器107。减法器107计算3K与1K之间的差,并且将此计算的结果,即信息“2K”,提供到剩余大小寄存器110。因此,在此情况下,信息“2K”被保存在剩余大小寄存器110中。
在时刻t3,在时刻t2保存在累积大小寄存器111中的信息“0K”以及来自优先级判定电路105的信息“1K”被提供到加法器108。加法器108计算0K与1K的和,并且将此计算的结果,即信息“1K”,提供到累积大小寄存器111。因此,在此情况下,信息“1K”被保存在累积大小寄存器111中。
在时刻t3,在时刻t2保存在下一地址寄存器112中的信息“3K”以及来自优先级判定电路105的信息“1K”被提供到加法器109。加法器109计算3K与1K的和,并且将此计算的结果,即信息“4K”,提供到下一地址寄存器112。因此,在此情况下,信息“4K”被保存在下一地址寄存器112中。
信息以上述方式被保存在每个寄存器中。
信息“4K”、信息“2K”和信息“4K”被提供到4K边界判定电路102,分别作为最大传送大小、剩余传送大小和读取起始地址。因此,在此情况下,要读取从4K的读取起始地址开始的2K字节(对应于剩余传送大小)的数据。换言之,存在于地址4K与地址6K(=4K+2K)之间的数据是要传送的数据。
由于在此情况下4K为边界,因此存在于4K与6K之间的数据不延伸跨过4K边界。因此,信息“假”被输出作为判定A。另外,由于数据不延伸跨过4K边界,因此剩余的请求传送大小被输出作为请求传送大小A。因此,在此情况下,存在于4K与6K之间的数据的大小2K被提供到优先级判定电路105,作为请求传送大小A。
在时刻t3,信息“1K”被从累积大小寄存器111提供到缓冲器边界判定电路103。在此情况下,缓冲器边界判定电路103判定超过了缓冲器大小,并且输出信息“真”来作为判定B。另外,由于在此情况下在缓冲存储器45中能够储存1K字节的数据,因此信息“1K”被输出作为请求传送大小B。
在时刻t3,信息“4K”和信息“2K”分别被从最大传送大小判定电路101(图7)和剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断传送大小是否等于或小于最大传送大小。由于在此情况下传送大小为3K并且最大传送大小为4K,因此传送大小判定电路104输出信息“真”来作为判定C。在信息“真”被输出的情况下,所提供的传送大小的值,即在此情况下为信息“2K”,被输出作为请求传送大小C。
如上所述,在时刻t3,信息“假”、信息“真”和信息“真”分别作为判定A、B和C被提供到优先级判定电路105。因此,由于两条或多条信息“真”被提供到了优先级判定电路105,所以优先级判定电路105输出提供的请求传送大小中的最小值来作为最终的请求传送大小。在此情况下,“2K”、“1K”和“2K”分别作为请求传送大小A、B和C被提供到优先级判定电路105,因此1K被设置为请求传送大小。
在时刻t4,1K被设置为请求传送大小,并且此信息被提供到DMA106。DMA 106进行用于利用1K的传送大小来执行数据传送的控制。
在时刻t4,信息“1K”被从优先级判定电路105提供到减法器107、加法器108和加法器109中的每一个。
参考图10和11,在时刻t4,在时刻t3保存在剩余大小寄存器110中的信息“2K”以及来自优先级判定电路105的信息“1K”被提供到减法器107。减法器107计算2K与1K之间的差,并且将此计算的结果,即信息“1K”,提供到剩余大小寄存器110。因此,在此情况下,信息“1K”被保存在剩余大小寄存器110中。
在时刻t4,在时刻t3保存在累积大小寄存器111中的信息“1K”以及来自优先级判定电路105的信息“1K”被提供到加法器108。加法器108计算1K与1K的和,并且将此计算的结果,即信息“2K”,提供到累积大小寄存器111。因此,在此情况下保存在累积大小寄存器111中的信息为“2K”,但是由于在累积大小寄存器111中保存信息“2K”时其中的信息被重置到“0K”,因此信息“0K”被保存在累积大小寄存器111中。
在时刻t4,在时刻t3保存在下一地址寄存器112中的信息“4K”以及来自优先级判定电路105的信息“1K”被提供到加法器109。加法器109计算4K与1K的和,并且将此计算的结果,即信息“5K”,提供到下一地址寄存器112。因此,在此情况下,信息“5K”被保存在下一地址寄存器112中。
信息以上述方式被保存在每个寄存器中。
信息“4K”、信息“1K”和信息“5K”被提供到4K边界判定电路102,分别作为最大传送大小、剩余传送大小和读取起始地址。因此,在此情况下,要读取从5K的读取起始地址开始的1K字节(对应于剩余传送大小)的数据。换言之,存在于地址5K与地址6K(=5K+1K)之间的数据是要传送的数据。
由于在此情况下4K为边界,因此存在于5K与6K之间的数据不延伸跨过4K边界。因此,信息“假”被输出作为判定A。另外,由于数据不延伸跨过4K边界,因此剩余的请求传送大小被输出作为请求传送大小A。因此,在此情况下,存在于5K与6K之间的数据的大小1K被提供到优先级判定电路105,作为请求传送大小A。
在时刻t4,信息“0K”被从累积大小寄存器111提供到缓冲器边界判定电路103。在此情况下,缓冲器边界判定电路103判定未超过缓冲器大小,并且输出信息“假”来作为判定B。另外,由于在此情况下在缓冲存储器45中能够储存2K字节的数据,因此信息“2K”被输出作为请求传送大小B。
在时刻t4,信息“4K”被从最大传送大小判定电路101(图7)提供到传送大小判定电路104,并且信息“1K”被从剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断传送大小是否等于或小于最大传送大小。由于在此情况下传送大小为1K并且最大传送大小为4K,因此传送大小判定电路104输出信息“真”来作为判定C。在信息“真”被输出的情况下,所提供的传送大小的值,即在此情况下为信息“1K”,被输出作为请求传送大小C。
如上所述,在时刻t4,信息“假”、信息“假”和信息“真”分别作为判定A、B和C被提供到优先级判定电路105。因此,由于没有两条或多条信息“真”被提供到优先级判定电路105,所以优先级判定电路105在所提供的请求传送大小中输出从传送大小判定电路104提供来的请求传送大小C来作为最终的请求传送大小。因此在此情况下1K被设置为请求传送大小。
在时刻t5,1K被设置为请求传送大小,并且此信息被提供到DMA106。DMA 106进行用于利用1K的传送大小来执行数据传送的控制。
在时刻t5,信息“1K”被从优先级判定电路105提供到减法器107、加法器108和加法器109中的每一个。
参考图11和12,在时刻t5,在时刻t4保存在剩余大小寄存器110中的信息“1K”以及来自优先级判定电路105的信息“1K”被提供到减法器107。减法器107计算1K与1K之间的差,并且将此计算的结果,即信息“0K”,提供到剩余大小寄存器110。因此,在此情况下,信息“0K”被保存在剩余大小寄存器110中。
剩余大小寄存器110中保存的信息为“0K”这一事实意味着没有剩余要传送的数据。因此,当剩余大小寄存器110中保存的信息变为“0K”时,此过程可被终止。但是,这里为了说明,假定过程继续进行,而不终止于此处。
在时刻t5,在时刻t4保存在累积大小寄存器111中的信息“0K”以及来自优先级判定电路105的信息“1K”被提供到加法器108。加法器108计算0K与1K的和,并且将此计算的结果,即信息“1K”,提供到累积大小寄存器111。因此,在此情况下,信息“1K”被保存在累积大小寄存器111中。
在时刻t5,在时刻t4保存在下一地址寄存器112中的信息“5K”以及来自优先级判定电路105的信息“1K”被提供到加法器109。加法器109计算5K与1K的和,并且将此计算的结果,即信息“6K”,提供到下一地址寄存器112。因此,在此情况下,信息“6K”被保存在下一地址寄存器112中。
信息以上述方式被保存在每个寄存器中。
信息“4K”、信息“0K”和信息“6K”被提供到4K边界判定电路102,分别作为最大传送大小、剩余传送大小和读取起始地址。因此,在此情况下,要读取从6K的读取起始地址开始的0K字节(对应于剩余传送大小)的数据。换言之,存在于地址6K与地址6K之间的数据,即0K字节的数据,是要传送的数据。
由于在此情况下4K为边界,因此存在于6K与6K之间的数据不延伸跨过4K边界。因此,信息“假”被输出作为判定A。另外,由于数据不延伸跨过4K边界,因此剩余的请求传送大小被输出作为请求传送大小A。因此,0K被提供到优先级判定电路105。
在时刻t5,信息“1K”被从累积大小寄存器111提供到缓冲器边界判定电路103。在此情况下,缓冲器边界判定电路103判定未超过缓冲器大小,并且输出信息“假”来作为判定B。另外,由于在此情况下在缓冲存储器45中能够储存1K字节的数据,因此信息“1K”被输出作为请求传送大小B。
在时刻t5,信息“4K”被从最大传送大小判定电路101(图7)提供到传送大小判定电路104,并且信息“0K”被从剩余大小寄存器110提供到传送大小判定电路104。传送大小判定电路104判断传送大小是否等于或小于最大传送大小。由于在此情况下传送大小为0K并且最大传送大小为4K,因此传送大小判定电路104输出信息“真”来作为判定C。在信息“真”被输出的情况下,所提供的传送大小的值,即在此情况下为信息“0K”,被输出作为请求传送大小C。
如上所述,在时刻t5,信息“假”、信息“假”和信息“真”分别作为判定A、B和C被提供到优先级判定电路105。因此,由于没有两条或多条信息“真”被提供到优先级判定电路105,所以优先级判定电路105在所提供的请求传送大小中输出请求传送大小C来作为最终的请求传送大小。因此在此情况下0K被设置为请求传送大小。
0K被设置为请求传送大小这一事实意味着所有应当传送的数据都已被传送。因此,与数据传送相关的过程结束。
如上所述,在本实施例中,在执行数据传送时,数据传送时的限制是在DMA控制器44(图2)这部分考虑的。以这种方式执行数据传送的本实施例产生了以下效果。
在诸如PCI Express这样的串行总线中,为了提高总线的传送效率,希望使用较大的有效载荷大小。在本实施例中,每次执行数据传送过程时可以选择最优有效载荷大小,从而可以使用尽可能大的有效载荷大小。因此,可以提高传送效率。
另外,消除了主机系统22考虑4K字节边界或者传送缓冲器的边界的需要。另外,可以在固定于主机系统22中的存储器的限度内执行数据传送,免除了硬件约束。
可在条目或链接列表中描述请求地址和请求大小。因此,主机系统22能够在设置所需传送大小的同时生成链接列表,而无需考虑限制1至4。
例如,假定要进行视频流的写入,并且根据本发明一个实施例的储存系统21连接到主机系统22。如果在主机系统22中准备了大小小于缓冲器大小的数据,并且设置在主机系统22中并且处理数据直到后续数据被准备为止的主机CPU 61具有空闲容量,那么数据可被连续地写入到储存装置,而无需等待数据累积达到缓冲器大小。这种灵活的过程成为了可能。
另外,可以很容易允许要写入的数据的量被均匀地分布,并且可以避免每次需要传送大量数据的情形。结果,例如,对最大吞吐量相对较低的CPU的使用成为可能。这对于记录视频的主机系统(例如便携式摄像机)将会非常有效。对于读取也是如此。
即使存在大小小于缓冲器大小的数据,请求地址和请求大小也可在这种数据被考虑的同时被通知给储存系统21。在此情况下,储存系统21处理最优大小,从而使得主机系统22中需要的处理得以减少。换言之,在现有技术的储存系统21的情况下,在数据传送时需要考虑储存系统21的硬件结构。因此,在现有技术中,主机系统22需要进行控制以使得要传送的数据根据储存系统被分割。
分割控制是在链接列表中描述的。本实施例的应用使得可以减少链接列表中的条目的数目。也就是说,本实施例的应用使得可以节省主机系统22中用于储存链接列表的存储器区域。
在基于分组的通信中,分组信息、奇偶性等等需要与净数据添加到一起。由于此分组信息的数据大小不依赖于净数据的大小,因此希望净数据的大小尽可能地大,以便提高数据传送的效率。如果净数据被划分成较小的部分以便进行数据发送和接收,则分组信息的大小将会与净数据划分程度成正比地增大,从而导致效率的降低(分组开销)。
但是,根据本实施例,处理是以上述方式执行的。因此,即使在数据划分对于数据传送来说不可避免时,也可以以最大的数据量来执行通信。因此,可以解决如何实现高效的数据划分和传送的问题。
如上所述,本实施例的应用产生了各种效果。
[关于储存介质]
上述过程系列可通过硬件或软件来执行。在过程系列通过软件来执行的情况下,构成软件并且储存在程序储存介质中的程序被安装到具有专用硬件配置的计算机或者例如通用个人计算机中,所述计算机在其中安装各种程序后就能够执行各种功能。
图13是示出根据程序执行上述过程系列的个人计算机的示例性硬件结构的框图。
在此计算机中,中央处理单元(CPU)201、只读存储器(ROM)202和随机访问存储器(RAM)203经由总线204与彼此相连。
输入/输出接口205也连接到总线204。与输入/输出接口205相连的有:由键盘、鼠标、麦克风等等形成的输入部件206;由显示器、扬声器等等形成的输出部件207;由硬盘、非易失性存储器等等形成的储存部件208;由网络接口等等形成的通信部件209;以及驱动诸如磁盘、光盘、磁光盘或半导体存储器之类的可移动介质211的驱动器210。
在具有上述结构的计算机中,CPU 201经由输入/输出接口205和总线204将例如储存在储存部件208中的程序加载到RAM 203中,并且执行该程序以执行上述过程系列。
被计算机(即CPU 201)执行的程序可被储存在可移动介质211中,该可移动介质211是由磁盘(包括柔性盘)、光盘(包括CD-ROM(致密盘-只读存储器)、DVD(数字多功能盘)等等)、磁光盘或半导体存储器形成的封装介质,从而使得程序可以经由可移动介质211被提供到计算机。或者,程序可以经由诸如局域网、因特网或数字卫星广播之类的有线或无线通信介质被提供到计算机。
当可移动介质211被安放在驱动器210上时,程序可以经由输入/输出接口205被安装到储存部件208中。另外,程序可由通信部件209经由有线或无线通信介质接收并被安装到储存部件208中。或者,程序可被预先安装在ROM 202或储存部件208中。
注意,计算机执行的程序可以是使得过程被以在本说明书中描述的顺序按时间顺序执行的程序,或者是使得一些过程被并行执行或者在适当时(例如在调用被发出时)被执行的程序。
本领域的技术人员应当理解,取决于设计要求和其他因素,可以进行各种修改、组合、子组合和变更,只要它们处于所附权利要求或其等同物的范围之内。
本发明包含与2007年4月20日向日本专利局提交的日本专利申请JP2007-111123相关的主题,这里通过引用将该申请的全部内容并入。
Claims (12)
1.一种信息处理设备,包括:
设置装置,用于将联系另一设备设置的读取时的最大传送大小或者写入时的最大传送大小设置为最大传送大小;
计算装置,用于从第一数据量中减去第二数据量,以计算第三数据量,该第一数据量是要传送的数据的量,该第二数据量是已经传送的数据的量;
边界判定装置,用于在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及延伸跨过页边界;
传送大小判定装置,用于判断所述第三数据量是否等于或小于所述设置装置所设置的所述最大传送大小;
缓冲器边界判定装置,用于在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及超过缓冲器大小;以及
数据量装置,用于基于由上述判定装置中的两个以上作出的判断,来确定在所述第三数据量的限度内要传送的数据的数据量。
2.根据权利要求1所述的信息处理设备,其中
所述边界判定装置计算读取起始位置与所述页边界之间的差值,并且
所述数据量装置将所述差值和所述第三数据量之中的最小值确定为所述要传送的数据的数据量。
3.根据权利要求2所述的信息处理设备,其中,当所述边界判定装置的判断和所述传送大小判定装置的判断为肯定时,所述数据量装置将所述差值和所述第三数据量之中的最小值确定为所述要传送的数据的数据量。
4.根据权利要求1所述的信息处理设备,还包括直接存储器访问控制器,用于控制数据传送,以使得其数据量为由所述数据量装置确定的数据量的数据被传送。
5.根据权利要求1所述的信息处理设备,其中,所述计算装置在将由所述数据量装置确定的所述数据量和所述第三数据量分别当作所述第二数据量和所述第一数据量的同时计算新的第三数据量,以将所述第三数据量更新到所述新的第三数据量,并且继续此更新,直到所述第三数据量达到零为止。
6.如权利要求5所述的信息处理设备,其中,所述第一数据量的初始值是从所述另一设备提供的。
7.一种信息处理方法,包括以下步骤:
将联系另一设备设置的读取时的最大传送大小或者写入时的最大传送大小设置为最大传送大小;
从第一数据量中减去第二数据量,以计算第三数据量,该第一数据量是要传送的数据的量,该第二数据量是已经传送的数据的量;
在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及延伸跨过页边界;
判断所述第三数据量是否等于或小于所述设置步骤所设置的所述最大传送大小;
在其量为所述第三数据量的数据被传送的情况下,判断此传送是否将会涉及超过缓冲器大小;以及
基于由上述判断中的两个以上的判断,来确定在所述第三数据量的限度内要传送的数据的数据量。
8.根据权利要求7所述的信息处理方法,其中
判断传送是否将会涉及延伸跨过页边界的步骤包括计算读取起始位置与所述页边界之间的差值,并且
确定在所述第三数据量的限度内要传送的数据的数据量的步骤包括将所述差值和所述第三数据量之中的最小值确定为所述要传送的数据的数据量。
9.根据权利要求8所述的信息处理方法,其中,当传送将会涉及延伸跨过页边界并且所述第三数据量等于或小于所述设置步骤所设置的所述最大传送大小时,所述确定在所述第三数据量的限度内要传送的数据的数据量的步骤将所述差值和所述第三数据量之中的最小值确定为所述要传送的数据的数据量。
10.根据权利要求7所述的信息处理方法,还包括控制数据传送,以使得其数据量为由所述确定在所述第三数据量的限度内要传送的数据的数据量步骤所确定的数据量的数据被传送。
11.根据权利要求7所述的信息处理方法,其中,所述计算第三数据量的步骤在将由所述确定在所述第三数据量的限度内要传送的数据的数据量的步骤所确定的所述数据量和所述第三数据量分别当作所述第二数据量和所述第一数据量的同时计算新的第三数据量,以将所述第三数据量更新到所述新的第三数据量,并且继续此更新,直到所述第三数据量达到零为止。
12.如权利要求11所述的信息处理方法,其中,所述第一数据量的初始值是从所述另一设备提供的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007111123A JP4356765B2 (ja) | 2007-04-20 | 2007-04-20 | 情報処理装置および方法、並びにプログラム |
JP2007-111123 | 2007-04-20 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100950070A Division CN101290604A (zh) | 2007-04-20 | 2008-04-21 | 信息处理设备和方法以及程序 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102945215A true CN102945215A (zh) | 2013-02-27 |
Family
ID=39873402
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100950070A Pending CN101290604A (zh) | 2007-04-20 | 2008-04-21 | 信息处理设备和方法以及程序 |
CN2012101293617A Pending CN102945215A (zh) | 2007-04-20 | 2008-04-21 | 信息处理设备和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100950070A Pending CN101290604A (zh) | 2007-04-20 | 2008-04-21 | 信息处理设备和方法以及程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8171213B2 (zh) |
JP (1) | JP4356765B2 (zh) |
CN (2) | CN101290604A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106063208A (zh) * | 2014-12-31 | 2016-10-26 | 华为技术有限公司 | 一种数据处理方法和装置 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122221B2 (en) * | 2008-02-25 | 2012-02-21 | International Business Machines Corporation | Method and apparatus to combine scattered buffer addresses into a contiguous virtual address space |
US20100064080A1 (en) * | 2008-09-11 | 2010-03-11 | International Business Machines Corporation | Managing pci-express max payload size for legacy operating systems |
US8166258B2 (en) * | 2009-07-24 | 2012-04-24 | Lsi Corporation | Skip operations for solid state disks |
US8516264B2 (en) * | 2009-10-09 | 2013-08-20 | Lsi Corporation | Interlocking plain text passwords to data encryption keys |
US20100306451A1 (en) * | 2009-06-01 | 2010-12-02 | Joshua Johnson | Architecture for nand flash constraint enforcement |
US8245112B2 (en) * | 2009-06-04 | 2012-08-14 | Lsi Corporation | Flash memory organization |
US8555141B2 (en) * | 2009-06-04 | 2013-10-08 | Lsi Corporation | Flash memory organization |
US8868809B2 (en) * | 2009-11-30 | 2014-10-21 | Lsi Corporation | Interrupt queuing in a media controller architecture |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8281054B2 (en) * | 2010-08-25 | 2012-10-02 | Lsi Corporation | Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication |
JP2012133643A (ja) * | 2010-12-22 | 2012-07-12 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法、およびプログラム |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US8544029B2 (en) | 2011-05-24 | 2013-09-24 | International Business Machines Corporation | Implementing storage adapter performance optimization with chained hardware operations minimizing hardware/firmware interactions |
US8886881B2 (en) | 2011-05-24 | 2014-11-11 | International Business Machines Corporation | Implementing storage adapter performance optimization with parity update footprint mirroring |
US8868828B2 (en) | 2011-05-24 | 2014-10-21 | International Business Machines Corporation | Implementing storage adapter performance optimization with cache data/directory mirroring |
US8516164B2 (en) * | 2011-05-24 | 2013-08-20 | International Business Machines Corporation | Implementing storage adapter performance optimization with enhanced hardware and software interface |
US8495258B2 (en) * | 2011-05-24 | 2013-07-23 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware accelerators offloading firmware for buffer allocation and automatically DMA |
US8495259B2 (en) * | 2011-05-24 | 2013-07-23 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware chains to select performance path |
US8793462B2 (en) | 2011-05-24 | 2014-07-29 | International Business Machines Corporation | Implementing storage adapter performance optimization with enhanced resource pool allocation |
US8656213B2 (en) | 2011-05-24 | 2014-02-18 | International Business Machines Corporation | Implementing storage adapter performance optimization with chained hardware operations and error recovery firmware path |
WO2014038070A1 (ja) | 2012-09-07 | 2014-03-13 | 富士通株式会社 | 情報処理装置,並列計算機システム及び情報処理装置の制御方法 |
US9092364B2 (en) | 2012-10-04 | 2015-07-28 | International Business Machines Corporation | Implementing storage adapter performance control |
US9288163B2 (en) * | 2013-03-15 | 2016-03-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Low-latency packet receive method for networking devices |
CN106294225A (zh) * | 2015-06-29 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种数据读取方法、对端设备及控制器 |
CN105320625B (zh) * | 2015-10-16 | 2018-06-26 | 陕西海泰电子有限责任公司 | 一种硬件封包的基于PCIe的DMA传输方法 |
US20170147517A1 (en) * | 2015-11-23 | 2017-05-25 | Mediatek Inc. | Direct memory access system using available descriptor mechanism and/or pre-fetch mechanism and associated direct memory access method |
CN106919522A (zh) * | 2015-12-28 | 2017-07-04 | 北京航天测控技术有限公司 | 一种基于PXIe接口的DMA控制器 |
JP6666439B2 (ja) | 2016-06-06 | 2020-03-13 | オリンパス株式会社 | データ転送装置、画像処理装置、および撮像装置 |
TWI767997B (zh) * | 2017-03-23 | 2022-06-21 | 日商索尼半導體解決方案公司 | 通信裝置、通信方法、程式及通信系統 |
KR102429904B1 (ko) | 2017-09-08 | 2022-08-05 | 삼성전자주식회사 | PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템 |
JP6833644B2 (ja) * | 2017-09-13 | 2021-02-24 | 株式会社東芝 | 転送装置、転送方法及びプログラム |
CN108363673A (zh) * | 2018-02-28 | 2018-08-03 | 郑州云海信息技术有限公司 | 设置pcie热插拔设备传输负载的方法、装置及设备 |
CN110688333A (zh) * | 2019-09-29 | 2020-01-14 | 郑州信大捷安信息技术股份有限公司 | 一种基于pcie的dma数据传输系统及方法 |
CN110781120B (zh) * | 2019-10-23 | 2023-02-28 | 山东华芯半导体有限公司 | 一种axi总线主机设备跨4kb传输的实现方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004046891A (ja) | 1997-06-04 | 2004-02-12 | Sony Corp | データ処理システム、データ処理装置、外部装置及びデータ伝送方法 |
JP5040050B2 (ja) * | 2001-06-12 | 2012-10-03 | 富士通株式会社 | 複数チャネルdmaコントローラおよびプロセッサシステム |
JP2006018642A (ja) * | 2004-07-02 | 2006-01-19 | Victor Co Of Japan Ltd | Dma転送制御装置 |
US8843727B2 (en) * | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
-
2007
- 2007-04-20 JP JP2007111123A patent/JP4356765B2/ja not_active Expired - Fee Related
-
2008
- 2008-04-17 US US12/104,735 patent/US8171213B2/en not_active Expired - Fee Related
- 2008-04-21 CN CNA2008100950070A patent/CN101290604A/zh active Pending
- 2008-04-21 CN CN2012101293617A patent/CN102945215A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106063208A (zh) * | 2014-12-31 | 2016-10-26 | 华为技术有限公司 | 一种数据处理方法和装置 |
US10277432B2 (en) | 2014-12-31 | 2019-04-30 | Huawei Technologies Co., Ltd. | Data processing method and device |
CN106063208B (zh) * | 2014-12-31 | 2019-06-18 | 华为技术有限公司 | 一种数据处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US8171213B2 (en) | 2012-05-01 |
JP2008269282A (ja) | 2008-11-06 |
CN101290604A (zh) | 2008-10-22 |
JP4356765B2 (ja) | 2009-11-04 |
US20080263307A1 (en) | 2008-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102945215A (zh) | 信息处理设备和方法 | |
US20080147994A1 (en) | Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device | |
KR0163234B1 (ko) | 데이타 스트리밍 메카니즘, 스트리밍 장치 어댑터, 컴퓨터 시스템 및 데이타 처리 시스템 | |
US20070156955A1 (en) | Method and apparatus for queuing disk drive access requests | |
US20050210159A1 (en) | Methods and structure for improved transfer rate performance in a SAS wide port environment | |
US20090037689A1 (en) | Optimal Use of Buffer Space by a Storage Controller Which Writes Retrieved Data Directly to a Memory | |
US20070162637A1 (en) | Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions | |
CN112199309B (zh) | 基于dma引擎的数据读取方法、装置和数据传输系统 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
US20080301381A1 (en) | Device and method for controlling commands used for flash memory | |
CN113051195A (zh) | 存储器、gpu及电子设备 | |
WO2021164163A1 (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN114328350B (zh) | 一种基于axi总线的通讯方法、装置以及介质 | |
US20060095637A1 (en) | Bus control device, arbitration device, integrated circuit device, bus control method, and arbitration method | |
US7409486B2 (en) | Storage system, and storage control method | |
CN115994115B (zh) | 芯片控制方法、芯片组及电子设备 | |
CN114385534A (zh) | 一种数据处理的方法及装置 | |
US10846265B2 (en) | Method and apparatus for accessing file, and storage system | |
JP5340058B2 (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2005234794A (ja) | ファイルシステム制御装置 | |
CN104040477A (zh) | 一种存储资源调度方法及终端 | |
CN117373501B (zh) | 统计业务执行速率提升方法及相关装置 | |
WO2022067564A1 (zh) | 一种响应用户访问请求的方法、装置和存储设备 | |
US20090265515A1 (en) | Information Processing Apparatus, Information Processing Method, and Computer Program | |
CN118012796B (zh) | 中断资源管理方法、计算机设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130227 |