Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于分布式仲裁的可编程输入输出PIO写合并装置和方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:深圳市楠菲微电子有限公司

摘要:本发明实施例提供一种基于分布式仲裁的可编程输入输出PIO写合并装置和方法,属于数据通信领域。至少一个写合并缓存器模块中的每个写合并缓存器模块对应一个分布式仲裁器模块,所述PIO接口模块用于将接收到的PIO写请求处理为适合所述至少一个写合并缓存器模块的格式,其中所述PIO写请求包括写地址和写数据;每个写合并缓存器模块用于接收所述PIO写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;每个分布式仲裁器模块用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据。本发明易于实现、扩展性好、通用性强,可以最大限度的简化数据处理过程。

主权项:1.一种基于分布式仲裁的可编程输入输出PIO写合并装置,其特征在于,该装置包括:至少一个写合并缓存器模块、至少一个分布式仲裁器模块以及PIO接口模块,其中,所述至少一个写合并缓存器模块中的每个写合并缓存器模块对应一个分布式仲裁器模块,所述PIO接口模块用于将接收到的PIO写请求处理为适合所述至少一个写合并缓存器模块的格式,其中所述PIO写请求包括写地址和写数据;所述至少一个写合并缓存器模块中的每个写合并缓存器模块用于接收所述PIO写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;所述至少一个分布式仲裁器模块中的每个分布式仲裁器模块用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据;所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该写合并数据单元用于根据数据存储的状态输出空状态信号或满状态信号;所述每个分布式仲裁器模块还用于接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。

全文数据:基于分布式仲裁的可编程输入输出P10写合并装置和方法技术领域[0001]本发明涉及数据通信,具体地涉及基于分布式仲裁的PI0写合并装置和方法。背景技术[0002]现有技术中,CPU通过PI0指令方式访问IO设备,根据cro字长的不同,pio指令中的数据长度通常为1248字节。当IO设备的字长大于CPU字长时,例如CHJ字长为4字节,而IO设备内部的寄存器访问粒度固定为8字节,CPU访问设备寄存器时会发出两个连续地址的4字节PI0写请求,IO设备必须能够支持将多个PI0请求进行合并,完成一次寄存器写操作。当多个应用并发访问设备时,PI0写请求会交叉乱序,这使得PI0写合并更加复杂,IO设备完成困难。发明内容[0003]本发明实施例的目的是提供一种基于分布式仲裁的PI0写合并装置和方法,该基于分布式仲裁的Pio写合并装置和方法易于实现、扩展性好、通用性强,可以最大限度的简化数据处理过程。[0004]为了实现上述目的,本发明实施例提供一种基于分布式仲裁的可编程输入输出PI0写合并装置,该装置包括:至少一个写合并缓存器模块、至少一个分布式仲裁器模块以及PI0接口模块,其中,所述至少一个写合并缓存器模块中的每个写合并缓存器模块对应一个分布式仲裁器模块,所述Pio接口模块用于将接收到的PIO写请求处理为适合所述至少一个写合并缓存器模块的格式,其中所述PI0写请求包括写地址和写数据;所述至少一个写合并缓存器模块中的每个写合并缓存器模块用于接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;所述至少一个分布式仲裁器模块中的每个分布式仲裁器模块用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据。[0005]优选地,所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该写合并数据单元用于根据数据存储的状态输出空状态信号或满状态信号;所述每个分布式仲裁器模块还用于接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。[0006]优选地,所述每个写合并缓存器模块还包括:写合并地址单元,在所述写合并数据单元输出空状态信号的情况下,所述写合并地址单元用于在接收到所述使能信号时存储所述写地址以作为所述缓存器地址。[0007]优选地,所述每个写合并缓存器模块还包括:写合并超时单元,用于在所述写合并数据单元写入所述写数据时开始计时,以及当预定时间内所述写合并数据单元未输出所述满状态信号时,清空所述写合并缓存器模块。[0008]优选地,该装置还包括:输出仲裁器模块,用于接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块中的地址和数据。[0009]本发明还提供一种基于分布式仲裁的可编程输入输出PI0写合并装置执行的方法,该方法包括:PI〇接口模块将接收到的PI0写请求处理为适合至少一个写合并缓存器模块的格式,其中所述Pio写请求包括写地址和写数据;至少一个写合并缓存器模块中的每个写合并缓存器模块接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;至少一个分布式仲裁器模块中的每个分布式仲裁器模块在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据写地址的地址偏移写入所述写数据。[0010]优选地,所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该方法还包括:写合并数据单元根据数据存储的状态输出空状态信号或满状态信号;每个分布式仲裁器模块接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。[0011]优选地,所述每个写合并缓存器模块包括写合并地址单元,该方法还包括:在所述写合并数据单元输出空状态信号的情况下,在接收到所述使能信号时,写合并地址单元存储所述写地址以作为所述缓存器地址。[0012]优选地,该方法还包括:在所述写合并数据单元写入所述写数据时,写合并超时单元开始计时,当预定时间内所述写合并数据单元未输出所述满状态信号时,清空所述写合并缓存器模块。[0013]优选地,该方法还包括:输出仲裁器模块接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块中的地址和数据。[0014]通过上述技术方案,采用本发明提供的基于分布式仲裁的PI0写合并装置和方法,所述PI0接口模块用于将接收到的Pio写请求处理为适合所述至少一个写合并缓存器模块的格式,其中所述PI0写请求包括写地址和写数据;所述至少一个写合并缓存器模块中的每个写合并缓存器模块用于接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;所述至少一个分布式仲裁器模块中的每个分布式仲裁器模块用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据。该基于分布式仲裁的PI0写合并装置和方法使用上述模块进行数据的处理和写合并,可以支持乱序写合并,易于实现、扩展性好、通用性强,可以最大限度的简化数据处理过程。[0015]本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明[0016]附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:[0017]图1是本发明一实施例提供的基于分布式仲裁的PI0写合并装置的结构示意图;[0018]图2是本发明一实施例提供的基于分布式仲裁的PI0写合并装置的结构示意图;[0019]图3是本发明一实施例提供的基于分布式仲裁的PI0写合并装置的交互示意图;以及[0020]图4是本发明一实施例提供的基于分布式仲裁的PIO写合并方法的流程图。[0021]附图标记说明[0022]1PI0接口模块2写合并缓存器模块[0023]3分布式仲裁器模块4输出仲裁器模块[0024]21写合并地址单元22写合并数据单元[0025]23写合并超时单元。具体实施方式[0026]以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。[0027]图1是本发明一实施例提供的基于分布式仲裁的PI0写合并装置的结构示意图。如图1所示,本发明实施例提供一种基于分布式仲裁的PI0写合并装置,该装置包括:至少一个写合并缓存器模块2、至少一个分布式仲裁器模块3以及PI0接口模块1,其中,所述至少一个写合并缓存器模块2中的每个写合并缓存器模块2对应一个分布式仲裁器模块,所述PI0接口模块1用于将接收到的PI0写请求处理为适合所述至少一个写合并缓存器模块2的格式,其中所述PI0写请求包括写地址和写数据;所述至少一个写合并缓存器模块2中的每个写合并缓存器模块2用于接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;所述至少一个分布式仲裁器模块3中的每个分布式仲裁器模块3用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块2根据所述写地址的地址偏移写入所述写数据。[0028]PI0接口模块1将CPU发出的PI0写请求处理成统一的格式主要是数据长度)以适应至少一个写合并缓存器模块2,PI0写请求包括数据有效信号reg_wt_valid,写地址reg_wt_addr和写数据reg_data,并发送给写合并缓存器模块2,其中数据有效信号reg_wt_valid在有PI0写请求发送时即为有效,以下说明书描述的过程均是在数据有效信号有效时发生的。根据需要PI0接□模块1可以支持多种CPU总线接□,例如PCIPCIe总线接口,AXI总线接口,LocalBus总线接口等。[0029]写合并缓存器模块2是一个宽度为fN=0字节的数据寄存器buf_data加上一个64位宽的地址寄存器buf—addr组成的寄存器组,数据寄存器buf_data能够以214字节0=k=N为单位进行读写访问,每个写合并缓存器模块2可以将2N-k个2k字节的PI〇写请求合并成1个2N字节的写请求。多个PI〇写请求之间可以乱序,写合并缓存器模块2可以根据地址对数据进行合并。[0030]在本实施例中,每个写合并缓存器模块2对应一个分布式仲裁器模块3。写合并缓存器模块2可以具有“命中状态”(buf_hit,表示写合并缓存器模块2中有部分数据,每一个写合并缓存器模块2将接收到的PI0写请求中的写地址reg—wt—addr与自身存储的缓存器地址比较,f某一个写合并缓存器模块2中上述两个地址相同时,发出命中信号buf_hit=1,表示该写请求命中了该写合并缓存器模块2,以表示该写合并缓存器模块2可以写入该PI0写请求中的写数据reg_data,其中,针对每一个PI〇写请求,有且只有一个写合并缓存器模块会发出命中信号bufjiit=l。与该写合并缓存器模块2对应的分布式仲裁器模块3接收到该命中信号时,发出使能信号buf-en=1至写合并缓存器模块2,使写合并缓存器模块2按照写地址reg_wt_addr的地位地址偏移将写数据reg一data写入写合并缓存器模块2的相应位置,其中缓存器地址的由来将在下文详细描述。[0031]图2是本发明一实施例提供的基于分布式仲裁的PI〇写合并装置的结构示意图。如图2所示,每个写合并缓存器模块2包括写合并数据单元22、写合并地址单元21以及写合并超时单元23,用于写入所述写数据的写合并数据单元22用于根据数据存储的状态输出空状态信号或满状态信号;所述每个分布式仲裁器模块3还用于接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块3的其中一个分布式仲裁器模块3输出所述使能信号,使对应的写合并数据单元22根据所述写地址的地址偏移写入所述写数据;写合并地址单元2丨在所述写合并数据单元输出空状态信号的情况下,用于在接收到所述使能信号时存储所述写地址以作为所述缓存器地址;写合并超时单元23用于在所述写合并数据单元22写入所述写数据时开始计时,以及当预定时间内所述写合并数据单元22未输出所述满状态信号时,清空所述写合并缓存器模块2。[0032]写合并数据单元22包括数据寄存器(buf_data,不仅可以在接收到使能信号buf_en=1时写入写数据(reg_data,还可以根据自身的状态输出空状态信号(buf_empty=l或满状态信号buf_full=l。[0033]写合并地址单元21包括地址寄存器(buf_addr,不仅可以判断写地址reg_wt_addr是否与缓存器地址相同以及输出命中信号(buf_hit=l,还可以在接收到使能信号buf_en=l时存储写地址reg_wt_addr以作为缓存器地址。[0034]写合并超时单元23在写合并数据单元22写入写数据reg_data时清0并开始计时,当预定时间内写合并数据单元22未输出满状态信号buf_ful1=1时,清空包含该写合并单兀的与合并缓存器模块2,该清空指的是与合并数据单兀22的数据清空(buf_data=〇,写合并地址单元21的缓存器地址清空(buf_addr=0,写合并数据单元22恢复空状态buf_empty=l,buf_full=0以及清除命中信号buf_hit=0。[0035]在本实施例中,写合并缓存器模块2还具有两种状态,分别为:空状态(buf—empty,表示写合并缓存器模块2中无任何数据,可以接收一个新的写合并请求;满状态buf_ful1,表示写合并缓存器模块2完成了一个Mbit数据的写合并,可以进行输出。写合并数据单兀22可以输出空状态信号buf_empty=l至对应的分布式仲裁器模块3。在每一个写合并^存器模块2的写合并地址单元21发现没有任何一个写合并缓存器模块2的缓存器地址与写地址reg-wt_addr相同时,即每个分布式仲裁器模块3均不能接收到命中信号,贝分布式仲裁器模块3选择向某一个输出空状态信号buf_empty=l的写合并缓存器模块2发出j吏能信号buf_en=l,使该写合并数据单元22写入写数据reg_data,使写合并地址单兀21存储写地址reg_wt_addr以作为缓存器地址。[0036]另外,可以提前设置写合并缓存器模块2的编号,以控制分布式仲裁器的选择顺序’即在分布式仲裁器模块3选择输出空状态信号(buf_empty=1的写合并缓存器模块2时,以编号顺序选择,可以使写数据reg—data的写入更加规律。但是,无论分布式仲裁器如何选择与合并缓存器模块2,在同一PI0写请求期间,只能有一个分布式仲裁器向对应的与合并缓存器模块2发送使能信号buf_en=l。[0037]在开始接收第一个Pi〇写请求前,可以初始化所有写合并缓存器模块,包括写合并数据单元22的数据清空buf_data=0,写合并地址单元21的缓存器地址清空buf_addr=0,写合并数据单兀22恢复空状态buf_empty=l,buf—full=0以及清除命中信号buf—hit=0〇[0038]图3是本发明一实施例提供的基于分布式仲裁的PIO写合并装置的交互示意图。如图3所示,该基于分布式仲裁的PIO写合并装置还包括:输出仲裁器模块4,用于接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块2中的地址和数据。[0039]输出仲裁器模块4接收所述满状态信号(buf_full=l,对所有发出满状态信号buf_full=l的写合并缓存器模块2进行仲裁,选择一个写合并缓存器模块2,输出写合并地址单元21的地址和写合并数据单元22的数据,并清空写合并缓存器模块2。该清空指的是写合并数据单元22的数据清空buf_data二0,写合并地址单元21的缓存器地址清空buf_addr=0,写合并数据单元22恢复空状态buf_empty=l,buf_full=0以及清除命中信号buf_hit=0。[0040]图4是本发明一实施例提供的基于分布式仲裁的PI0写合并方法的流程图。如图4所不,本发明还提供一种基于分布式仲裁的PI0写合并方法,该方法包括:所述PI0接口模块将接收到的PI0写请求处理为适合至少一个写合并缓存器模块的格式,其中所述PIO写请求包括写地址和写数据步骤S41;至少一个写合并缓存器模块中的每个写合并缓存器模块接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号(步骤S42;至少一个分布式仲裁器模块中的每个分布式仲裁器模块在接收到所述命中信号时输出使能信号(步骤S43;对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据步骤S44。[0041]优选地,所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该方法还包括:写合并数据单元根据数据存储的状态输出空状态信号或满状态信号;每个分布式仲裁器模块接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。[0042]优选地,所述每个写合并缓存器模块包括写合并地址单元,该方法还包括:在所述写合并数据单元输出空状态信号的情况下,在接收到所述使能信号时,写合并地址单元存储所述写地址以作为所述缓存器地址。[0043]优选地,该方法还包括:在所述写合并数据单元写入所述写数据时,写合并超时单元开始计时,当预定时间内所述写合并数据单元未输出所述满状态信号时,清空所述写合并缓存器模块。[0044]优选地,该方法还包括:输出仲裁器模块接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块中的地址和数据。[0045]通过上述技术方案,采用本发明提供的基于分布式仲裁的PIO写合并装置和方法进行数据的处理和写合并,可以支持乱序写合并,易于实现、扩展性好、通用性强,可以最大限度的简化数据处理过程。[0046]以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。[0047]另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。[0048]本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器processor执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器R0M,Read-0nlyMemory、随机存取存储器RAM,RandomAccessMemory、磁碟或者光盘等各种可以存储程序代码的介质。[0049]此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

权利要求:1.一种基于分布式仲裁的可编程输入输出PIO写合并装置,其特征在于,该装置包括:至少一个写合并缓存器模块、至少一个分布式仲裁器模块以及PI0接口模块,其中,所述至少一个写合并缓存器模块中的每个写合并缓存器模块对应一个分布式仲裁器模块,所述PI0接口模块用于将接收到的PI0写请求处理为适合所述至少一个写合并缓存器模块的格式,其中所述PI0写请求包括写地址和写数据;所述至少一个写合并缓存器模块中的每个写合并缓存器模块用于接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;所述至少一个分布式仲裁器模块中的每个分布式仲裁器模块用于在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据。2.根据权利要求1所述的基于分布式仲裁的PI0写合并装置,其特征在于,所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该写合并数据单元用于根据数据存储的状态输出空状态信号或满状态信号;所述每个分布式仲裁器模块还用于接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。3.根据权利要求2所述的基于分布式仲裁的PI0写合并装置,其特征在于,所述每个写合并缓存器模块还包括:写合并地址单元,在所述写合并数据单元输出空状态信号的情况下,所述写合并地址单元用于在接收到所述使能信号时存储所述写地址以作为所述缓存器地址。4.根据权利要求3所述的基于分布式仲裁的PI0写合并装置,其特征在于,所述每个写合并缓存器模块还包括:写合并超时单元,用于在所述写合并数据单元写入所述写数据时开始计时,以及当预定时间内所述写合并数据单元未输出所述满状态信号时,清空所述写合并缓存器模块。5.根据权利要求2所述的基于分布式仲裁的PI0写合并装置,其特征在于,该装置还包括:输出仲裁器模块,用于接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块中的地址和数据。6.—种权利要求1-5中任意一项权利要求所述的基于分布式仲裁的可编程输入输出PI0写合并装置执行的方法,其特征在于,该方法包括:PI0接口模块将接收到的PI0写请求处理为适合至少一个写合并缓存器模块的格式,其中所述PI0写请求包括写地址和写数据;至少一个写合并缓存器模块中的每个写合并缓存器模块接收所述PI0写请求,并且存储有与所述写地址相同的缓存器地址的写合并缓存器模块输出命中信号;至少一个分布式仲裁器模块中的每个分布式仲裁器模块在接收到所述命中信号时输出使能信号,使对应的写合并缓存器模块根据所述写地址的地址偏移写入所述写数据。7.根据权利要求6所述的方法,其特征在于,所述每个写合并缓存器模块包括用于写入所述写数据的写合并数据单元,该方法还包括:写合并数据单元根据数据存储的状态输出空状态信号或满状态信号;每个分布式仲裁器模块接收所述空状态信号,并且在未接收到所述命中信号时,接收到所述空状态信号的至少一个分布式仲裁器模块的其中一个分布式仲裁器模块输出所述使能信号,使对应的写合并数据单元根据所述写地址的地址偏移写入所述写数据。8.根据权利要求7所述的方法,其特征在于,所述每个写合并缓存器模块包括写合并地址单元,该方法还包括:在所述写合并数据单元输出空状态信号的情况下,在接收到所述使能信号时,写合并地址单元存储所述写地址以作为所述缓存器地址。9.根据权利要求8所述的方法,其特征在于,该方法还包括:在所述写合并数据单元写入所述写数据时,写合并超时单元开始计时,当预定时间内所述写合并数据单元未输出所述满状态信号时,清空所述写合并缓存器模块。10.根据权利要求7所述的方法,其特征在于,该方法还包括:输出仲裁器模块接收所述满状态信号,输出并清空存储在发出所述满状态信号的写合并缓存器模块中的地址和数据。U

百度查询: 深圳市楠菲微电子有限公司 基于分布式仲裁的可编程输入输出PIO写合并装置和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。