CN101446931A - 一种实现输入输出数据一致性的系统及方法 - Google Patents

一种实现输入输出数据一致性的系统及方法 Download PDF

Info

Publication number
CN101446931A
CN101446931A CNA2008102392026A CN200810239202A CN101446931A CN 101446931 A CN101446931 A CN 101446931A CN A2008102392026 A CNA2008102392026 A CN A2008102392026A CN 200810239202 A CN200810239202 A CN 200810239202A CN 101446931 A CN101446931 A CN 101446931A
Authority
CN
China
Prior art keywords
module
request
buffering
data
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008102392026A
Other languages
English (en)
Other versions
CN101446931B (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.)
Loongson Technology Corp Ltd
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008102392026A priority Critical patent/CN101446931B/zh
Publication of CN101446931A publication Critical patent/CN101446931A/zh
Application granted granted Critical
Publication of CN101446931B publication Critical patent/CN101446931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种实现输入输出数据一致性的系统及方法,所述系统包括处理器、用于发起IO请求的IO模块,DMA模块和二级缓冲模块,所述DMA模块,用于将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;在接收到所述二级缓冲模块的应答后,依据所述应答进行操作,收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答;所述二级缓冲模块,用于接收所述单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据所述单缓冲行请求进行操作,向所述DMA模块返回应答。本发明能够简洁高效的实现数据一致性。

Description

一种实现输入输出数据一致性的系统及方法
技术领域
本发明涉及计算机集成电路芯片领域,尤其涉及一种实现输入输出数据一致性的系统及方法。
背景技术
现代计算机系统由至少一个中央处理器、相当容量的存储器和用于与外界通信的输入输出控制器模块(简称IO控制器模块)所组成。在系统中,存储器由处理器和IO控制器模块共享,是两者之间通信的介质。数据由处理器或IO控制器模块写入内存,并被另一方所读取,以此种方式完成信息交换。
随着集成电路工艺和计算机体系结构的飞速发展,IO控制器模块和主存的访问速度远落后于处理器的处理能力,为了弥补这一差异,现代计算机系统都采用一种层次化的存储系统设计,通过访问的局部性来提高处理器访存性能。在存储层次中层次越高,数据单元的访问速度越快,但单位容量的资源消耗和制造成本越高。位于最高级的一级缓存通常设置于处理器核内,与处理器核主流水线紧密耦合;位于中间层的二级高速缓冲存储器(Cache)或者三级高速缓冲存储器则设置在处理器核之外,其容量要远大于一级高速缓冲存储器;位于最底层的内存则提供一个容量最大但速度最慢的存储区。
由于IO控制器模块所能直接访问的存储层次有限,不能直接访问位于处理器核内的存储层次(即一级高速缓冲存储器)。当IO控制器模块和处理器进行异步的读写访问操作时,各存储层次中的数据副本得不到及时的通知和更新,即会产生IO控制器模块与处理器间的数据一致性问题。
解决IO控制器模块与处理器间的数据一致性问题可以采用软件手段,通过专用的缓冲指令对各存储层次的数据进行写回、刷新、无效等操作,使IO控制器模块和处理器对内存的访问符合数据一致性的要求。但是软件手段的效率较低,且管理方案需要对驱动程序进行修改,增加系统开发人员的负担,同时也增加了软件在平台间移植的难度。
相对于软件解决方案,采用硬件直接维护IO控制器模块和处理器间数据一致性的方式可以避免软件介入对缓冲的管理,降低驱动程序开发和移植的难度,同时还可以提高一致性维护的效率。但是采用硬件维护IO控制器模块和处理器间数据一致性同样面临设计和实现的问题。由于处理器对内存访问的模式比较简单和固定,一般不会超过一个缓冲行的单位,硬件方案可以采用以缓冲行为单位,通过附带在每个缓冲行上的状态信息来实现对数据一致性的管理,这种硬件方案多用于维护多处理器系统的处理器间缓冲一致性。而IO控制器模块涉及到的接口协议丰富多样,对内存的数据访问模式复杂而多变,其一致性维护要求不同于处理器。具体差异主要体现在IO控制器模块对数据的访问通常是突发性的,且访问长度一般要远大于单个缓冲行,另外IO控制器模块一般不存在存储层次,其数据读取和写入都是一次性的,即在IO控制器模块完成DMA(Direct Memory Access,直接存储器存取)数据读取后,系统并不需要继续跟踪维护该数据单元与IO控制器模块的一致性关系;在IO控制器进行DMA写时,则无效掉各存储层次的数据副本,之后进行正常的数据写操作。
由于硬件实现与平台和结构联系过于紧密,同时IO控制器模块与处理器在数据访问模式上的巨大差异,采用硬件维护IO控制器模块和处理器的数据一致性客观上需要采用一种简洁、通用、高效的解决方案。
发明内容
为解决上述问题,本发明提供了一种实现输入输出数据一致性的系统及方法,能够简洁高效的实现数据一致性。
本发明公开了一种实现输入输出数据一致性的系统,包括处理器、用于发起IO请求的IO模块,所述系统还包括:DMA模块和二级缓冲模块,
所述DMA模块,用于将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;在接收到所述二级缓冲模块的应答后,依据所述应答进行操作,并且收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答;
所述二级缓冲模块,用于接收所述单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据所述单缓冲行请求进行操作,向所述DMA模块返回应答。
所述系统还包括互连模块,
所述DMA模块在将所述单缓冲行请求传递给二级缓冲模块时进一步用于通过所述互连模块将所述单缓冲行请求传递给所述二级缓冲模块。
所述IO模块进一步用于发起写请求。
所述DMA模块包括写处理模块,
所述写处理模块用于在接收到读请求后进行所述将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;在接收到所述二级缓冲模块的应答后,依据所述应答进行操作,收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答;还用于在完成拆分后,向所述二级缓冲模块发送无效请求;
所述二级缓冲模块还用于在接到所述无效请求后,进行无效操作,完成无效操作后向所述DMA模块返回应答。
所述二级缓冲模块包括二级高速缓冲存储器,在依据所述单缓冲行请求进行操作,向所述DMA模块返回应答时进一步用于,判断请求写入的数据是否在所述二级高速缓冲存储器中,并将判断结果通过所述应答通知给所述DMA模块。
所述写处理模块在依据所述应答进行操作时进一步用于在所述数据在所述二级高速缓冲存储器中时,则将所述数据直接写入所述二级高速缓冲存储器,否则将所述数据写入内存。
所述IO模块进一步用于发起读请求。
所述二级缓冲模块在依据所述单缓冲行请求进行操作,向所述DMA模块返回应答时进一步用于获取所述单缓冲行请求所需数据,将所述数据返回给所述DMA模块。
所述DMA模块包括读处理模块,
所述读处理模块用于在接收到读请求后,进行所述将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;并在接收到所述数据后,将返回的数据进行缓存;收集到所述IO请求的所有单缓冲行请求对应的应答后,将缓存的数据返回给所述IO模块。
本发明还公开了一种实现输入输出数据一致性的方法,包括:
步骤1,IO模块发起IO请求;
步骤2,DMA模块将多缓冲行的所述IO请求拆分为多个单缓冲行请求,将所述单缓冲行请求传递给二级缓冲模块;
步骤3,所述二级缓冲模块接收所述单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据所述单缓冲行请求进行操作,向所述DMA模块返回应答;
步骤4,所述DMA模块依据所述应答进行操作,收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答。
所述步骤2中将所述单缓冲行请求传递给二级缓冲模块进一步为通过互连模块将所述单缓冲行请求传递给所述二级缓冲模块。
所述步骤1进一步为,IO模块发起写请求。
所述步骤2中拆分操作之后还包括:
步骤131,所述DMA模块向所述二级缓冲模块发送无效请求;
步骤132,所述二级缓冲模块完成无效操作后,向所述DMA模块返回应答。
所述二级缓冲模块包括二级高速缓冲存储器;
所述步骤3中依据所述单缓冲行请求进行操作,向所述DMA模块返回应答进一步为,判断请求写入的数据是否在所述二级缓冲模块的二级高速缓冲存储器中,并将判断结果通过所述应答通知给所述DMA模块。
所述步骤4中依据所述应答进行操作进一步为:
步骤151,收到所述判断结果后,如果所述数据在所述二级缓冲模块的二级高速缓冲存储器中,则将所述数据直接写入所述二级高速缓冲存储器,否则,将所述数据写入内存。
所述步骤1进一步为,IO模块发起读请求。
所述步骤3中依据所述单缓冲行请求进行操作,向所述DMA模块返回应答进一步为,获取所述单缓冲行请求所需数据,将所述数据返回给所述DMA模块。
所述步骤4进一步为,
步骤181,将返回的数据进行缓存;
步骤182,收集到所述IO请求的所有单缓冲行请求对应的应答后,将缓存的数据返回给所述IO模块。
本发明的有益效果在于,由于二级缓冲模块统一按缓冲行为单位进行管理,并且将大于一个缓冲行的IO请求,拆分为多个单缓冲行请求,所以采用本发明实现一致性更加简洁高效。
附图说明
图1是本发明实现输入输出数据一致性的系统的实施例的结构图;
图2是DMA模块的结构图;
图3是DMA写模块进行拆分的流程图;
图4是DMA写状态变化图;
图5是本发明实现输入输出数据一致性的方法流程图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明的系统包括:处理器、用于发起IO请求的IO模块,DMA模块和包括二级高速缓冲存储器的二级缓冲模块。
DMA模块,用于将多缓冲行的IO请求,拆分为多个单缓冲行请求,将该单缓冲行请求传递给二级缓冲模块;在接收到二级缓冲模块的应答后,依据该应答进行操作,收集到IO请求的所有单缓冲行请求对应的应答后,向IO模块返回应答;
二级缓冲模块,用于接收单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据该单缓冲行请求进行操作。
本发明的系统还包括互连模块。
本发明系统的一个具体实施例的结构如图1所示。
该系统包括:处理器101、IO模块102、DMA模块103、互连模块104、二级缓冲模块105。
处理器101的处理器核和IO模块102是主模块,能够发起读写请求;二级缓冲模块105是从模块,能够接受来自各主模块的读写请求,并发出一致性命令和接受一致性应答;DMA模块103一端与IO模块102连接,能够作为从模块连接IO模块102,另一端与互连模块104连接,能够作为主模块发出读写命令和一致性指令,还可以接受来自二级缓冲模块105的一致性应答。
实施例中各模块都兼容标准AXI接口协议,在此基础上实现对一致性的支持。
标准的AXI协议是一种开放的片上系统的IP接口协议,具有简单、高效的特点,其基本协议已经可以支持普通的读写交易,但不能直接支持缓冲一致性维护信息的传输。
在标准AXI协议基础上,本实施例对AXI通道信号进行适量的扩充,以此来实现对缓冲一致性维护信息的传输支持。本实施例中扩充是在严格保证AXI协议规范语义情况下,超集式而非修改式的增加,当处理器核与标准的AXIIP进行连接时,只需简单将新增信号接为缺省值即可。
标准AXI协议包括5个传送通道,分别是:AR(读地址)、R(读数据)、AW(写地址)、W(写数据)、B(写应答)。这五个通道已经可以支持由处理器核发起的普通读写交易。而与一致性相关的部分包括由二级缓冲模块105发向处理器核的一致性命令通道与处理器核发往二级缓冲模块105的一致性应答通道。这两个通道分别借助读数据返回通道(R通道)与写通道(包括AW与W通道)完成。
下面给出在AXI通道上扩展出信号如下表所示。
Figure A200810239202D00111
二级缓冲模块105是一致性管理与维护的枢纽,处理器101和IO模块102都通过二级缓冲模块105实现内存的共享访问。二级缓冲模块105包括:二级高速缓冲存储器、二级缓冲管理模块和二级缓冲访问模块。
二级缓冲管理模块包括队列(dirq)和通路(bypass)。队列负责处理所有发向对应二级缓冲模块105的访问请求。IO模块102和DMA模块103的请求必须进入队列才能访问二级高速缓冲存储器。通路负责将uncache(非缓冲)访存请求送到内存控制器,将应答返回处理器核。
二级缓冲访问模块包含二级缓冲RAM,处理来自二级缓冲管理模块的读写请求并给出应答。二级缓冲RAM包括TAG(标志)、目录和数据三个部分。为降低功耗,二级缓冲RAM的TAG、目录和数据分开访问,二级缓冲状态位、目录状态位及w位与TAG一起存储,TAG存放在标志RAM中,数据存放在数据RAM中。
二级缓冲管理模块接DMA模块103的读写请求,然后读取二级缓冲访问模块中的信息,根据二级高速缓冲存储器的TAG和目录的情况进行一级高速缓冲存储器一致性维护,并在适当的时候访问内存。对于DMA模块103传送的读请求,在得获得该请求所需数据后通过AXI的读数据(R)通道返回该数据。对于DMA模块103传送的写请求,在完成一致性维护过程后,通过AXI的读数据(R)通道通知DMA模块103该数据是否在二级高速缓冲存储器中;如果数据在二级高速缓冲存储器中,DMA模块103直接写入二级高速缓冲存储器,否则用uncache方式写入内存。
处理器101中维护了二级高速缓冲存储器中部分缓冲块的副本。当处理器101访问自己所未拥有的缓冲块时,就会发生访存缺失。处理器接口通过AXI读请求通道向交叉开关发送访存缺失请求。如果是读指令导致的访存缺失,读请求通道扩展域arcmd=4’hc;如果是写请求指令导致访存缺失,读通道扩展域awcmd=4’hd。交叉开关会将二级缓冲模块105返回的数据通过读数据通道返回所需的缓冲块。
当二级缓冲模块105需要进行一致性维护时,可以通过AXI读通道向处理器核发出无效请求(Invalidation),令处理器101将Cache块副本写回二级高速缓冲存储器。处理器核内部如果发生一级高速缓冲存储器替换,也会发生缓冲块副本写回二级高速缓冲存储器的事件。写回二级高速缓冲存储器的事件利用写地址和写数据两个通道分别发送缓冲块地址和缓冲块数据,在写回事件中,写地址通道awcmd=4’hf。
DMA模块103位于IO模块102与互连模块104之间,与IO模块102通过标准AXI协议进行对接,与互连模块104之间通过扩展AXI协议进行连接。DMA模块103主要功能是:将IO模块102发来的标准AXI读写请求转换成二级缓冲模块105可处理的缓冲一致性读写请求,按照扩展AXI协议编码为后,通过互连通道传递给二级缓冲模块105;接收来自二级缓冲模块105的缓冲一致性应答和数据返回,对返回数据和应答进行缓冲处理,并转换为标准AXI协议读写应答后返回传递给IO模块102。AXI协议并没有直接规定通道的数据宽度,在下面的示例中,读写通道数据宽度均采用128比特。
DMA模块103的结构如附图2所示,包括DMA写模块201、DMA读模块202、仲裁模块203。
DMA写模块201连接的IO模块102的请求长度具有多样性,DMA写模块201需要能够处理跨越多个缓冲行大小的写请求。系统中二级缓冲模块105以一个缓冲行(实际典型的例中,一个缓冲行大小为256比特)为单位对数据一致性进行维护,因此DMA写模块201需要以缓冲行为单位与二级缓冲模块105进行通信。
在所采用的128位数据宽度的AXI协议中,跨越多行的写请求主要有两类,一类是awlen>1的请求,在AXI协议中,awlen=0表示传1拍,awlen=1表示传2拍,该类写请求传送两拍以上的数据,涉及到超过一个缓冲行的数据;另一类是在awlen为1,awaddr[4](表示地址第4位)为1,且awburst为1的增加(incremental)情况下,虽然只传送两拍的数据,但因为涉及到awaddr所在缓冲行的后128位以及awaddr后面一行的前128位数据,是一类特殊的跨越多行的请求。
DMA写模块201首先把多行写请求拆分成多个单缓冲行请求,写请求本身为单缓冲行请求,则跳过拆分过程,请求直接进入DMA写队列。
awlen为0时,当次写请求不涉及多个缓冲行,当次写请求作为1项直接进入队列;
awlen为1时,继续根据地址(awaddr)的第4位进行判断,若地址第4位为0,则当次写请求仅涉及地址所在的单缓冲行,当次写请求作为1项直接进入队列;若地址第4位为1,写请求涉及到地址所对应缓冲的后128位和下一缓冲行的前128,写请求拆分成2项后进入队列。
awlen大于1时,则地址涉及多个缓冲行,将当前写请求地址涉及到的缓冲行作为1项进入写队列,写请求的宽度由根据地址的第4位进行判断,若地址第4位为0,则地址宽度为1个Cache行宽,否则地址宽度为半个地址行宽。拆分后的第一个单缓冲行请求进入队列后,调整拆分请求地址和剩余长度,将awaddr加上请求地址长度,awlen值减去当次拆分项的传送拍数,继续进行随后的拆分工作,当每次拆分直至最后一行时,根据剩余的长度来决定最后一项请求的长度。
DMA写模块201拆分的流程如图3所示。
步骤S301,接收IO模块102的写请求。
步骤S302,判断awlen是否大于1,如果是,执行步骤S306,否则执行步骤S303。
步骤S303,判断awlen是否等于1,如果是,执行步骤S304,否则,执行步骤S305。
步骤S304,判断awaddr[4]是否等于1,如果是,则执行步骤S305,否则,执行步骤S310。
步骤S305,缓存当前地址行请求,请求长度为0,执行步骤S308。
步骤S306,判断awaddr[4]是否为0,如果是,则执行步骤S307。
步骤S307,缓存当前地址行请求,若剩余长度小于2,则缓存的当前请求长度为剩余长度,否则缓存的当前请求长度为2。
步骤S308,根据剩余长度判断是否为最后行,如果是,执行步骤S310,否则,执行步骤S309。
步骤S309,当前地址增加请求宽度,剩余长度减去请求长度,执行步骤S307。
步骤S310,地址拆分结束。
在DMA写模块201中设置了一个DMA写队列(dmaq)缓冲来自IO模块102的写请求,每项处理一个单缓冲行请求,在拆分之后,每个单缓冲行请求会按序进入DMA写队列。DMA写队列设置为8项,可以缓存8个单缓冲行AXI写请求(8个AW请求和16个W请求)。
DMA写队列的处理分为三个阶段。第一阶段,通过AR通道向二级缓冲模块105发送无效请求,收到应答后,再进行第二阶段操作。第二阶段,通过正常的写通道将数据写回。第三阶段,等待收集写应答,待收集齐一次IO请求涉及到的所有单缓冲行写应答后,再将本次IO请求的写完成应答返回给IO模块102。
除了与AW和W相关的域外,写队列相关的状态和控制信号说明如下:
Awdma:表示本项aw请求的状态。
Icoriid:记录原始的AWID。
Iclast:表示本项是否应该返回bvalid,是否对应源请求的最后一行。
Datardy:表示W通道数据等待发送。
其中awdma状态转换如图4所示。
FREE:空闲状态,允许接收新请求。
ENTER:接收到了新请求,尚未发出flush cache请求(刷新缓冲)。
ICWAIT:已发出flush cache请求,等待应答。
ICDONE:收到flush cache请求的应答,待相应的W通道数据就绪后可以发出。
QUIT:AW请求已发出,等待至队列头时恢复空闲状态。
状态转换401,接收到新请求,尚未发出无效请求。
状态转换402,已发出flush cache请求,等待应答。
状态转换403,已接收到flush cache请求的应答,待相应的W通道数据就绪。
状态转换404,AW请求已发出。
状态转换405,等待至队列头。
DMA写队列是一个有序进入、有序刷新(flush)、乱序写、有序退出的队列。请求按序进入队列,按序退出队列,无效缓冲的命令也按序发出,但是为了避免在二级缓冲模块105的队列(dirq)处产生死锁,需要能乱序发出写请求。死锁产生的原因是,由于冲突请求的存在或者队列满等情况,二级缓冲模块105的队列可能无法及时返回刷新请求(flush)的应答,在DMA写队列一侧,需要将队列项状态为ICDONE的请求项的尽快发到二级缓冲模块105的队列,以解除由于DMA写队列写对二级缓冲模块105造成的冲突。
对于从二级缓冲模块105返回的B通道写应答,DMA写队列中会根据iclast标记位来判断该请求是不是某次交易拆分后的最后一个请求,若是最后一个请求,则判断IO写交易全部完成,返回有效的B应答给IO模块102。
DMA读模块202的主要功能是多行读请求进行拆分成单缓冲行请求,将单缓冲行请求发送,对应答的数据的拼接返回。读请求拆分的处理过程与写基本一致,具体见图3对写请求拆分的描述。与DMA写模块201需要处理与一致性相关的操作不同,DMA读模块202只是起到一个命令拆分和数据拼接转送的功能,具体的一致性操作则在二级缓冲模块105处理。
读队列设计为8项,每项对应一个单缓冲行请求,并对应有一个缓冲行的数据缓冲区。DMA读处理过程为:在接受到读请求时判断请求所涉及到的缓冲行数,对于单缓冲行请求,该单缓冲行请求直接进入队列;对于多行请求将其拆分成多个单缓冲行请求后进入队列。
读队列作的另一主要处理是进行ID的转换,其发出的arid是变换后的ID,低3位对应该项在队列中的编号,而高位则保持不变。在读队列中,除了记录完整的AR和R通道信号外,还包括如下控制信号:
arbusy:表示该AR请求已经发出,在等待R的返回。
aroldid:转换前的原始ID。
aroldlast:表示该行请求是否为原请求的最后一行请求。
读队列设置有三个指针,分别是AR的头指针和尾指针,以及R通道的头指针。读队列是一个严格有序的队列,AR通道按照接受的请求先后以及拆分的顺序进行请求的发送。在数据返回时,根据RID的低3位选择进入对应项的缓冲区,并在R通道头指针的索引下,严格有序的返回给与之相连的IO接口。
在标准AXI协议中,读交易涉及到AR和R两个通道,写交易涉及到AW、R和B三个通道,彼此间是独立的。但在扩展AXI协议中,写请求需要通过AR通道发送一致性请求命令,并通过R通道接受一致性应答,因此在DMA模块103的写通道涉及到的三个通路AW、W、B可以对接到互连模块104的对应通道。而AR通道则需要在读写处理模块之间通过仲裁模块203进行仲裁后发送,同时为了能够区分是请求是由DMA读模块202还是DMA写模块201发出,以便在R交易返回时判断请求应该传送回DMA读模块202还是DMA写模块201,在仲裁模块中还需要修改ARID中的第4位,用1和0分别表示对应写和读模块。在二级缓冲模块105处理完相应请求后,会通过R通道的RID信号将对应的ARID传回,仲裁模块则根据RID的第4位来决定将该数据包传输给DMA写模块201或DMA读模块202。
本发明的方法如图5所示。
一种实现输入输出数据一致性的方法,包括:
步骤S501,IO模块发起IO请求。
IO模块发起写请求或读请求。
步骤S502,DMA模块将多缓冲行的所述IO请求拆分为多个单缓冲行请求,将该单缓冲行请求传递给二级缓冲模块。
DMA模块通过互连模块将单缓冲行请求传递给二级缓冲模块。
在接收到写请求后,DMA模块将多缓冲行的所述IO请求拆分为多个单缓冲行请求;DMA模块向二级缓冲模块发送无效请求,二级缓冲模块完成无效操作后,向DMA模块返回应答;DMA模块接收到应答后将单缓冲行请求传递给二级缓冲模块。
步骤S503,二级缓冲模块接收单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据该单缓冲行请求进行操作,向DMA模块返回应答。
在IO模块发送写请求时,二级缓冲模块接收单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,判断请求写入的数据是否在该二级缓冲模块的二级高速缓冲存储器中,并将判断结果通过所述应答通知给DMA模块,向DMA模块返回应答。
在IO模块发送读请求时,二级缓冲模块接收单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,获取所述单缓冲行请求所需数据,将所述数据返回给所述DMA模块。
步骤S504,DMA模块依据应答进行操作,收集到IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答。
在IO模块发送写请求时,DMA模块收到判断结果后,如果数据在二级缓冲模块的二级高速缓冲存储器中,则将所述数据直接写入该二级高速缓冲存储器,否则,将数据写入内存,收集到IO请求的所有单缓冲行请求对应的应答后,向IO模块返回应答。
在IO模块发送读请求时,将返回的数据进行缓存;收集到所述IO请求的所有单缓冲行请求对应的应答后,将缓存的数据返回给IO模块。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (18)

1.一种实现输入输出数据一致性的系统,包括处理器、用于发起IO请求的IO模块,其特征在于,所述系统还包括:DMA模块和二级缓冲模块,
所述DMA模块,用于将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;在接收到所述二级缓冲模块的应答后,依据所述应答进行操作,并且收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答;
所述二级缓冲模块,用于接收所述单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据所述单缓冲行请求进行操作,向所述DMA模块返回应答。
2.如权利要求1所述的实现输入输出数据一致性的系统,其特征在于,所述系统还包括互连模块,
所述DMA模块在将所述单缓冲行请求传递给二级缓冲模块时进一步用于通过所述互连模块将所述单缓冲行请求传递给所述二级缓冲模块。
3.如权利要求1所述的实现输入输出数据一致性的系统,其特征在于,所述IO模块进一步用于发起写请求。
4.如权利要求3所述的实现输入输出数据一致性的系统,其特征在于,
所述DMA模块包括写处理模块,
所述写处理模块用于在接收到读请求后进行所述将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;在接收到所述二级缓冲模块的应答后,依据所述应答进行操作,收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答;还用于在完成拆分后,向所述二级缓冲模块发送无效请求;
所述二级缓冲模块还用于在接到所述无效请求后,进行无效操作,完成无效操作后向所述DMA模块返回应答。
5.如权利要求4所述的实现输入输出数据一致性的系统,其特征在于,
所述二级缓冲模块包括二级高速缓冲存储器,在依据所述单缓冲行请求进行操作,向所述DMA模块返回应答时进一步用于,判断请求写入的数据是否在所述二级高速缓冲存储器中,并将判断结果通过所述应答通知给所述DMA模块。
6.如权利要求5所述的实现输入输出数据一致性的系统,其特征在于,
所述写处理模块在依据所述应答进行操作时进一步用于在所述数据在所述二级高速缓冲存储器中时,则将所述数据直接写入所述二级高速缓冲存储器,否则将所述数据写入内存。
7.如权利要求1所述的实现输入输出数据一致性的系统,其特征在于,所述IO模块进一步用于发起读请求。
8.如权利要求7所述的实现输入输出数据一致性的系统,其特征在于,
所述二级缓冲模块在依据所述单缓冲行请求进行操作,向所述DMA模块返回应答时进一步用于获取所述单缓冲行请求所需数据,将所述数据返回给所述DMA模块。
9.如权利要求8所述的实现输入输出数据一致性的系统,其特征在于,
所述DMA模块包括读处理模块,
所述读处理模块用于在接收到读请求后,进行所述将多缓冲行的所述IO请求,拆分为多个单缓冲行请求,将所述单缓冲行请求传递给所述二级缓冲模块;并在接收到所述数据后,将返回的数据进行缓存;收集到所述IO请求的所有单缓冲行请求对应的应答后,将缓存的数据返回给所述IO模块。
10.一种实现输入输出数据一致性的方法,其特征在于,包括:
步骤1,IO模块发起IO请求;
步骤2,DMA模块将多缓冲行的所述IO请求拆分为多个单缓冲行请求,将所述单缓冲行请求传递给二级缓冲模块;
步骤3,所述二级缓冲模块接收所述单缓冲行请求,以一个缓冲行为单位进行数据一致性维护,并依据所述单缓冲行请求进行操作,向所述DMA模块返回应答;
步骤4,所述DMA模块依据所述应答进行操作,收集到所述IO请求的所有单缓冲行请求对应的应答后,向所述IO模块返回应答。
11.如权利要求10所述的实现输入输出数据一致性的方法,其特征在于,
所述步骤2中将所述单缓冲行请求传递给二级缓冲模块进一步为通过互连模块将所述单缓冲行请求传递给所述二级缓冲模块。
12.如权利要求10所述的实现输入输出数据一致性的方法,其特征在于,所述步骤1进一步为,IO模块发起写请求。
13.如权利要求12所述的实现输入输出数据一致性的方法,其特征在于,
所述步骤2中拆分操作之后还包括:
步骤131,所述DMA模块向所述二级缓冲模块发送无效请求;
步骤132,所述二级缓冲模块完成无效操作后,向所述DMA模块返回应答。
14.如权利要求13所述的实现输入输出数据一致性的方法,其特征在于,
所述二级缓冲模块包括二级高速缓冲存储器;
所述步骤3中依据所述单缓冲行请求进行操作,向所述DMA模块返回应答进一步为,判断请求写入的数据是否在所述二级缓冲模块的二级高速缓冲存储器中,并将判断结果通过所述应答通知给所述DMA模块。
15.如权利要求14所述的实现输入输出数据一致性的方法,其特征在于,
所述步骤4中依据所述应答进行操作进一步为:
步骤151,收到所述判断结果后,如果所述数据在所述二级缓冲模块的二级高速缓冲存储器中,则将所述数据直接写入所述二级高速缓冲存储器,否则,将所述数据写入内存。
16.如权利要求10所述的实现输入输出数据一致性的方法,其特征在于,所述步骤1进一步为,IO模块发起读请求。
17.如权利要求16所述的实现输入输出数据一致性的方法,其特征在于,所述步骤3中依据所述单缓冲行请求进行操作,向所述DMA模块返回应答进一步为,获取所述单缓冲行请求所需数据,将所述数据返回给所述DMA模块。
18.如权利要求17所述的实现输入输出数据一致性的方法,其特征在于,
所述步骤4进一步为,
步骤181,将返回的数据进行缓存;
步骤182,收集到所述IO请求的所有单缓冲行请求对应的应答后,将缓存的数据返回给所述IO模块。
CN2008102392026A 2008-12-03 2008-12-03 一种实现输入输出数据一致性的系统及方法 Active CN101446931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102392026A CN101446931B (zh) 2008-12-03 2008-12-03 一种实现输入输出数据一致性的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102392026A CN101446931B (zh) 2008-12-03 2008-12-03 一种实现输入输出数据一致性的系统及方法

Publications (2)

Publication Number Publication Date
CN101446931A true CN101446931A (zh) 2009-06-03
CN101446931B CN101446931B (zh) 2010-12-08

Family

ID=40742616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102392026A Active CN101446931B (zh) 2008-12-03 2008-12-03 一种实现输入输出数据一致性的系统及方法

Country Status (1)

Country Link
CN (1) CN101446931B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520911A (zh) * 2011-12-19 2012-06-27 曙光信息产业(北京)有限公司 一种优化收包设备上的软件操作pci空间寄存器效率的系统和方法
CN102750244A (zh) * 2011-04-22 2012-10-24 安凯(广州)微电子技术有限公司 分级缓冲的dma传送装置及传送方法
CN103186492A (zh) * 2011-12-28 2013-07-03 联芯科技有限公司 基于axi总线的数据一致性保护方法及其系统
CN103679249A (zh) * 2012-09-20 2014-03-26 苏州简约纳电子有限公司 一种射频芯片接口电路
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN107250995A (zh) * 2014-11-25 2017-10-13 领特投资两合有限公司 存储器管理设备
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存系统、方法及装置
CN107908573A (zh) * 2017-11-09 2018-04-13 郑州云海信息技术有限公司 一种缓存数据的方法及装置
CN109086228A (zh) * 2018-06-26 2018-12-25 深圳市安信智控科技有限公司 具有多个独立访问通道的高速存储器芯片
CN111639038A (zh) * 2020-05-25 2020-09-08 北京东土军悦科技有限公司 Dma控制器的内存控制方法、装置、存储介质及设备

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102750244A (zh) * 2011-04-22 2012-10-24 安凯(广州)微电子技术有限公司 分级缓冲的dma传送装置及传送方法
CN102750244B (zh) * 2011-04-22 2015-03-11 安凯(广州)微电子技术有限公司 分级缓冲的dma传送装置及传送方法
CN102520911A (zh) * 2011-12-19 2012-06-27 曙光信息产业(北京)有限公司 一种优化收包设备上的软件操作pci空间寄存器效率的系统和方法
CN102520911B (zh) * 2011-12-19 2015-04-29 曙光信息产业(北京)有限公司 一种优化收包设备上的软件操作pci空间寄存器效率的系统和方法
CN103186492B (zh) * 2011-12-28 2016-03-30 联芯科技有限公司 基于axi总线的数据一致性保护方法及其系统
CN103186492A (zh) * 2011-12-28 2013-07-03 联芯科技有限公司 基于axi总线的数据一致性保护方法及其系统
CN103679249B (zh) * 2012-09-20 2016-12-21 苏州简约纳电子有限公司 一种射频芯片接口电路
CN103679249A (zh) * 2012-09-20 2014-03-26 苏州简约纳电子有限公司 一种射频芯片接口电路
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN107250995A (zh) * 2014-11-25 2017-10-13 领特投资两合有限公司 存储器管理设备
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存系统、方法及装置
CN107908573A (zh) * 2017-11-09 2018-04-13 郑州云海信息技术有限公司 一种缓存数据的方法及装置
CN107908573B (zh) * 2017-11-09 2020-05-19 苏州浪潮智能科技有限公司 一种缓存数据的方法及装置
CN109086228A (zh) * 2018-06-26 2018-12-25 深圳市安信智控科技有限公司 具有多个独立访问通道的高速存储器芯片
CN109086228B (zh) * 2018-06-26 2022-03-29 深圳市安信智控科技有限公司 具有多个独立访问通道的高速存储器芯片
CN111639038A (zh) * 2020-05-25 2020-09-08 北京东土军悦科技有限公司 Dma控制器的内存控制方法、装置、存储介质及设备
CN111639038B (zh) * 2020-05-25 2023-07-07 北京东土军悦科技有限公司 Dma控制器的内存控制方法、装置、存储介质及设备

Also Published As

Publication number Publication date
CN101446931B (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
CN101446931B (zh) 一种实现输入输出数据一致性的系统及方法
CN100499556C (zh) 异构多核处理器高速异步互连通信网络
CN100524252C (zh) 一种嵌入式系统芯片及数据读写处理方法
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
CN105224488B (zh) 一种pci总线控制器及其控制方法
CN100440183C (zh) 处理器间通信系统
CN101021820A (zh) 可减少延迟的数据传送与接收方法与系统
CN102999453B (zh) 用于系统芯片集成的通用非易失性存储器控制装置
CN101150485A (zh) 一种零拷贝缓冲区队列网络数据发送的管理方法
CN102446158A (zh) 多核处理器及多核处理器组
CN101150486A (zh) 一种零拷贝缓冲区队列网络数据接收的管理方法
CN116069711B (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
CN104615386A (zh) 一种核外高速缓存装置
CN106372029A (zh) 一种基于中断的点对点片内通信模块
KR100329968B1 (ko) 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기
CN204390227U (zh) 计算设备扩展装置、以及可扩展的计算系统
CN101425044B (zh) 一种面向写穿透cache的SDRAM读写方法
TWI382313B (zh) 管理分離匯流排上匯流排代理之間的資料流程的方法和系統
CN103106177A (zh) 多核网络处理器的片上互联结构及其方法
CN109145397A (zh) 一种支持并行流水访问的外存仲裁结构
EP0067519B1 (en) Telecommunications system
CN201429791Y (zh) 高压无功补偿设备中的高速数据通信装置
CN116186793B (zh) 一种基于risc-v的安全芯片架构及其工作方法
CN105302745B (zh) 高速缓冲存储器及其应用方法
CN117806833B (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
EE01 Entry into force of recordation of patent licensing contract

Assignee: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract fulfillment period: 2009.12.16 to 2028.12.31

Contract record no.: 2010990000062

Denomination of invention: System and method for realizing consistency of input/output data

License type: exclusive license

Record date: 20100128

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.12.16 TO 2028.12.31; CHANGE OF CONTRACT

Name of requester: BEIJING LOONGSON TECHNOLOGY SERVICE CENTER CO., LT

Effective date: 20100128

C14 Grant of patent or utility model
GR01 Patent grant
EC01 Cancellation of recordation of patent licensing contract

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2010990000062

Date of cancellation: 20141231

EM01 Change of recordation of patent licensing contract

Change date: 20141231

Contract record no.: 2010990000062

Assignee after: Longxin Zhongke Technology Co., Ltd.

Assignee before: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20090603

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Denomination of invention: System and method for realizing consistency of input/output data

Granted publication date: 20101208

License type: Common License

Record date: 20150211

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200819

Address after: 100095, Beijing, Zhongguancun Haidian District environmental science and technology demonstration park, Liuzhou Industrial Park, No. 2 building

Patentee after: LOONGSON TECHNOLOGY Corp.,Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: LOONGSON TECHNOLOGY Corp.,Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Date of cancellation: 20200928

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.