CN105095109B - 缓存访问方法、缓存访问路由器和计算机系统 - Google Patents

缓存访问方法、缓存访问路由器和计算机系统 Download PDF

Info

Publication number
CN105095109B
CN105095109B CN201410216443.4A CN201410216443A CN105095109B CN 105095109 B CN105095109 B CN 105095109B CN 201410216443 A CN201410216443 A CN 201410216443A CN 105095109 B CN105095109 B CN 105095109B
Authority
CN
China
Prior art keywords
data packet
cache
packet
data
caching
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
CN201410216443.4A
Other languages
English (en)
Other versions
CN105095109A (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201410216443.4A priority Critical patent/CN105095109B/zh
Publication of CN105095109A publication Critical patent/CN105095109A/zh
Application granted granted Critical
Publication of CN105095109B publication Critical patent/CN105095109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明实施例提供一种缓存访问方法、缓存访问路由器和计算机系统,包括:缓存访问路由器接收外设发送的数据包,获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、包间隔、热度信息;所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,所述处理器的缓存包括至少两级缓存。上述方法通过将数据包直接存储到缓存中,处理器能够从缓存中直接读取数据,减少了内存访问次数,提高了缓存的命中率,从而提高了内存访问的效率。另外,该处理器的缓存包括至少两级缓存,缓存访问路由器可以根据数据包的特征信息将数据包存储到合适的缓存中,进一步,提高内存访问效率。

Description

缓存访问方法、缓存访问路由器和计算机系统
技术领域
本发明实施例涉及通信技术,尤其涉及一种缓存访问方法、缓存访问路由器和计算机系统。
背景技术
随着半导体工业的快速发展,处理器的时钟频率快速的增长,但是主存的访问速度的增长却缓慢的多,主存也称为内存。由于处理器和存储器之间速度的不匹配,使得内存访问延迟仍然是提高应用程序运行速度的瓶颈。
针对上述问题,缓存(cache)技术应运而生,通常在处理器和内存之间设置缓存,通过将用户可能用到的数据预先从内存中取出放到缓存中,当程序要调用数据时,可以直接从缓存中读取数据,因此,能够减少内存访问延迟。上述方法对于内存访问请求规则的应用来说非常有效,但是对于内存访问请求不规则的应用,由于经常预取的不是被马上使用的数据,可能反而会降低计算机系统的存储带宽。现有技术中,通常设置有多级缓存,例如三级缓存,一级缓存为距离处理器最近的缓存,其次是二级缓存,三级缓存距离处理器最远,相应地,一级缓存的速度最高,二级缓存的速度次之,三级缓存的速度最慢,但是,上述三级缓存的速度都比内存速度快。
现有技术提出了一种直接缓存访问技术,该技术直接把输入输出(Input/Output,简称I/O)数据存储到三级缓存中,而不是存储到内存中,在处理器要访问该数据时,处理器从三级缓存中就能查找到该数据,不需要访问内存,从而降低了内存访问的延迟。但是,由于三级缓存容量有限,不加区分的将所有数据存储到三级缓存中,可能导致一些常用数据由于缓存空间不够而被替换到了内存中,从计算机系统的整体性能来看,反而会降低内存访问性能。
发明内容
本发明实施例提供一种缓存访问方法、缓存访问路由器和计算机系统,以降低内存访问延迟,提高内存访问效率。
本发明第一方面提供一种缓存访问方法,包括:
缓存访问路由器接收外设发送的数据包,获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、所述数据包的包间隔、所述数据包的热度信息;
所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,以使所述处理器在访问所述数据包时,能够从所述缓存中直接读取数据,所述处理器的缓存包括至少两级缓存。
结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
结合本发明第一方面的第一种可能的实现方式,在本发明第一方面的第二种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面的第二种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,所述缓存访问路由器将所述数据包存储到三级缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于所述三级缓存的数据大小阈值;
若所述数据包的大小小于所述三级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到所述三级缓存中。
结合本发明第一方面的第一种可能的实现方式,在本发明第一方面的第四种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包的包头存储到所述二级缓存中,将所述数据包的有效载荷存储到三级缓存中。
结合本发明第一方面,在本发明第一方面的第五种可能的实现方式中,当所述数据包的特征信息为所述数据包的包间隔时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
结合本发明第一方面的第五种可能的实现方式,在本发明第一方面的第六种可能的实现方式中,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面的第六种可能的实现方式,在本发明第一方面的第七种可能的实现方式中,所述缓存访问路由器将所述数据包存储到三级缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于所述三级缓存的预设包间隔;
若所述数据包的包间隔小于所述三级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述三级缓存中。
结合本发明第一方面,在本发明第一方面的第八种可能的实现方式中,当所述数据包的特征信息为所述数据包的热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到二级缓存中。
结合本发明第一方面的第八种可能的实现方式,在本发明第一方面的第九种可能的实现方式中,若所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面,在本发明第一方面的第十种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小和包间隔时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
结合本发明第一方面的第十种可能的实现方式,在本发明第一方面的第十一种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面,在本发明第一方面的第十二种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
结合本发明第一方面的第十二种可能的实现方式,在本发明第一方面的第十三种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面,在本发明第一方面的第十四种可能的实现方式中,当所述数据包的特征信息为所述数据包的包间隔和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到二级缓存中。
结合本发明第一方面的第十四种可能的实现方式,在本发明第一方面的第十五种可能的实现方式中,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
结合本发明第一方面,在本发明第一方面的第十六种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小、包间隔和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于所述二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
结合本发明第一方面第一种至第十六种可能的实现方式,在本发明第一方面的第十七种可能的实现方式中,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述缓存访问路由器将所述数据包存储到二级缓存中,包括:
所述缓存访问路由器根据所述处理器核的标示将所述数据包存储到所述二级缓存中距离所述处理器核最近的分区。
结合本发明第一方面第二种、第三种、第六种、第七种、第九种、第十一种、第十三种、第十五种的实现方式,在本发明第一方面的第十八种可能的实现方式中,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述缓存访问路由器将所述数据包存储到所述三级缓存中,包括:
所述缓存访问路由器根据所述处理器核的标示将所述数据包存储到所述三级缓存中距离所述处理器核最近的分区。
本发明第二方面提供一种缓存访问路由器,包括:
接收模块,用于接收外设发送的数据包;
获取模块,用于根据所述接收模块接收的所述数据包获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、所述数据包的包间隔、所述数据包的热度信息;
路由模块,用于根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,以使所述处理器在访问所述数据包时,能够从所述缓存中直接读取数据,所述处理器的缓存包括至少两级缓存。
结合本发明第二方面,在本发明第二方面的第一种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,则将所述数据包存储到所述二级缓存中。
结合本发明第二方面的第一种可能的实现方式,在本发明第二方面的第二种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则将所述数据包存储到三级缓存中。
结合本发明第二方面的第二种可能的实现方式,在本发明第二方面的第三种可能的实现方式中,所述路由模块在将所述数据包存储到所述三级缓存中时,具体用于:
判断所述数据包的大小是否小于所述三级缓存的数据大小阈值;
若所述数据包的大小小于所述三级缓存的数据大小阈值,则将所述数据包存储到所述三级缓存中。
结合本发明第二方面的第一种可能的实现方式,在本发明第二方面的第四种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则将所述数据包的包头存储到所述二级缓存中,将所述数据包的有效载荷存储到三级缓存中。
结合本发明第二方面,在本发明第二方面的第五种可能的实现方式中,当所述数据包的特征信息为所述数据包的包间隔时,所述路由模块具体用于:
判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。
结合本发明第二方面的第五种可能的实现方式,在本发明第二方面的第六种可能的实现方式中,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则将所述数据包存储到三级缓存中。
结合本发明第二方面的第六种可能的实现方式,在本发明第二方面的第七种可能的实现方式中,所述路由模块在将所述数据包存储到所述三级缓存中时,具体用于:
判断所述数据包的包间隔是否小于所述三级缓存的预设包间隔;
若所述数据包的包间隔小于所述三级缓存的预设包间隔,则将所述数据包存储到所述三级缓存中。
结合本发明第二方面,在本发明第二方面的第八种可能的实现方式中,当所述数据包的特征信息为所述数据包的热度信息时,所述路由模块具体用于:
根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。
结合本发明第二方面的第八种可能的实现方式,在本发明第二方面的第九种可能的实现方式中,若所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
结合本发明第二方面,在本发明第二方面的第十种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小和包间隔时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。
结合本发明第二方面的第十种可能的实现方式,在本发明第二方面的第十一种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则将所述数据包存储到三级缓存中。
结合本发明第二方面,在本发明第二方面的第十二种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小和热度信息时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。
结合本发明第二方面的第十二种可能的实现方式,在本发明第二方面的第十三种可能的实现方式中,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
结合本发明第二方面,在本发明第二方面的第十四种可能的实现方式中,当所述数据包的特征信息为所述数据包的包间隔和热度信息时,所述路由模块具体用于:
判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。
结合本发明第二方面的第十四种可能的实现方式,在本发明第二方面的第十五种可能的实现方式中,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
结合本发明第二方面,在本发明第二方面的第十六种可能的实现方式中,当所述数据包的特征信息为所述数据包的大小、包间隔和热度信息时,所述路由模块具体用于:
判断所述数据包的大小是否小于所述二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。
结合本发明第二方面第一种至第十六种可能的实现方式,在本发明第二方面的第十七种可能的实现方式中,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块在将所述数据包存储到所述二级缓存中时,具体用于:
根据所述处理器核的标示将所述数据包存储到所述二级缓存中距离所述处理器核最近的分区。
结合本发明第二方面第二种、第三种、第六种、第七种、第九种、第十一种、第十三种、第十五种的实现方式,在本发明第二方面的第十八种可能的实现方式中,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块在将所述数据包存储到所述三级缓存中时,具体用于:
根据所述处理器核的标示将所述数据包存储到所述三级缓存中距离所述处理器核最近的分区。
本发明第三方面提供一种计算机系统,包括:处理器、缓存、主存储器、外设以及缓存访问路由器;
所述主存储器,用于存储计算机执行指令;
所述外设用于向所述缓存访问路由器发送数据包;
所述缓存访问路由器,用于执行本发明第二方面以及第方面的第一种至第十八种可能的实现方式中的任一种方法,以将所述数据包存储到所述缓存中,所述缓存包括至少两级缓存;
所述处理器,用于根据内存访问请求在所述缓存中查找所述数据包。
结合本发明第三方面,在本发明第三方面的第一种可能的实现方式中,所述处理器包括多个处理器核。
本发明实施例的缓冲访问方法、缓存访问路由器和计算机系统,缓存访问路由器接收外设发送的数据包,获取该数据包的大小、包间隔、热度信息等特性信息,然后,根据数据包的特征信息将数据包存储到处理器的缓存中,以使处理器在访问数据包时,能够从缓存中直接读取数据,减少了内存访问的次数,增加了缓存的命中率,从而提高了内存访问效率。本实施例中,该处理器的缓存包括至少两级缓存,缓存访问路由器可以根据数据包的特征信息将数据包存储到合适的缓存中,进一步,提高内存访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的计算机系统的硬件结构示意图;
图2为本发明缓存访问方法实施例一的流程图;
图3为本发明实施例二提供的多核处理器的结构示意图;
图4为本发明实施例提供的一种缓存访问路由器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的计算机系统的硬件结构示意图,如图1所示,本实施例的计算机系统包括:处理器、内存和外设,该处理器采用多级缓存,图1中处理器采用3级缓存(cache),分别为一级缓存、二级缓存和三级缓存,一级缓存为距离处理器最近的缓存,其次是二级缓存,三级缓存距离处理器最远,相应地,一级缓存的速度最高,二级缓存的速度次之,三级缓存的速度最慢,但是,上述三级缓存的速度都比内存速度快。当然处理器也可能采用两级缓存,这里只是举例说明。该处理器包括至少一个处理器核(core),当处理器采用3级缓存时,每个处理器核对应一个一级缓存,一级缓存为该处理器核的私有缓存,其他处理器核不能访问,二级缓存和三级缓存通常为共享缓存,每个处理器核均能访问二级缓存和三级缓存。
处理器中还包括输入输出(Input/output,简称I/O)控制器(Controller)、内存控制器(Memory Controller)和缓存目录(Directory),共享的缓存有缓存目录,私有缓存没有缓存目录,缓存目录主要用于维护多个处理器核共享的缓存的一致性,如图1中所示,I/O控制器、内存控制器和三级缓存目录分别通过互联设备与二级缓存连接,I/O控制器还与外设连接,用于接收外设发送的数据,内存控制器用于访问内存,三级缓存目录中存储有三级缓存的所有记录(entry)的信息。图1中一级缓存和二级缓存均位于处理器内部,三级缓存位于处理器外部,可以理解的是,图1所示的只是一种可能的硬件结构,本发明实施例并不对各级缓存的位置进行限制,各级缓存也可以均设置在处理器外或处理器内,通常情况下,私有缓存位于各处理器核内部,共享缓存位于各处理器核外部。
处理器在访问内存时,首先访问一级缓存,若一级缓存没有命中,继续访问二级缓存,若二级缓存也没有命中,再访问三级缓存,若三级缓存还没有命中,再通过内存控制器访问内存,从内存中读取数据。现有技术中,通常将外设发送的数据存储在内存中,这样,当处理器第一次访问该数据时,处理器需要从内存中将数据读取到缓存,导致内存访问延迟增大。现有的一种直接内存访问方法中,将外设发送的IO数据直接存储到三级缓存中,这样,当处理器第一次访问该数据时,可以直接访问三级缓存找到数据,而不需要从内存中读取数据到缓存,从而能够降低内存访问延迟,提高内存访问效率。但是,直接内存访问方法中不加区分的将所有IO数据放到三级缓存中,会带来以下问题:三级缓存容量有限,不加区分的将所有IO数据放到三级缓存中会,会使一些不经常使用或者数据包较大的数据放到三级缓存中,而导致一些经常要用的数据没有足够的空间存储。
为了解决现有技术的问题,本发明实施例中需要增加一个缓存访问路由器,该缓存访问路由器用于根据数据包的特性信息将数据存储到合适的缓存中,从而进一步提高内存访问速率。如图1所示,本发明实施例的缓存访问路由器可以集成在互联设备中,该缓存访问路由器也可以集成在外设中,该外设可以为网络适配器(Network Interface Card,简称NIC)、通用串行总线(Universal Serial Bus,简称USB)接口、高性能显卡芯片、固态硬盘(Solid State Disk,简称SSD)、电视卡等。NIC俗称网卡,是电脑与局域网相互连接的设备,该网络适配器主要用于基于快速外设组件互联标准(Peripheral ComponentInterconnection Express,简称PCIE)协议或其他高速协议的网络适配器。以下通过具体的例子对本发明实施例的技术方案进行详细描述:
图2为本发明缓存访问方法实施例一的流程图,如图2所示,本实施例的方法可以包括以下步骤:
步骤101、缓存访问路由器接收外设发送的数据包,获取所述数据包的特性信息。
计算机中的外设接收到数据包后,将数据包发送给缓存访问路由器,缓存访问路由器获取该数据包的特征信息,该数据包的特征信息包括如下信息中的任意一个或其组合:数据包的大小、数据包的包间隔、数据包的热度信息。数据包的包间隔指该一条数据流中相邻两个数据包发送的时间间隔,数据包的热度信息指该数据包在当前时间一段时间被访问的可能性大小,热度高说明该数据包当前被访问的可能性大,热度低说明该数据包当前被访问的可能性小,数据包的热度可以由缓存访问路由器根据历史数据统计出来,例如对于QQ应用的数据流来说,用户通常在晚上7-12点这段时间内访问频繁,因此,可以将晚上7-12点配置为QQ数据流的热度时间段,若访问路由器在7-12点时间内接收到QQ数据流,则确定该数据流的热度高,若在7-12点外的时间段内接收到QQ数据流,则确定数据流的热度低。
步骤102、缓存访问路由器根据数据包的特征信息将该数据包存储到处理器的缓存中,以使处理器在访问该数据包时,能够从缓存中直接读取数据,处理器的缓存包括至少两级缓存。
本实施例,缓存访问路由器根据数据包的大小、数据包的包间隔、数据包的热度信息将数据包放到处理器的缓存中,该处理器采用多级缓存。缓存访问路由器上保存有缓存存储策略,该缓存存储策略可以根据用户的需求进行灵活配置,当缓存访问路由器接收到数据包时,根据缓存存储策略将数据包存储到合适的缓存中。该缓存存储策略具体可以为:将数据包的大小大于等于数据阈值大小的数据存储到内存中或三级缓存中,将数据包的大小小于该数据阈值大小的数据包存储到二级缓存或三级缓存中,该缓存存储策略还可以针对二级缓存和三级缓存分别设置不同的数据阈值大小。同理,该缓存存储策略也可以配置为将数据包的包间隔大于等于预设包间隔的数据存储到内存中或三级缓存中,将包间隔小于预设包间隔的数据存储到三级缓存或二级缓存中,该缓存存储策略也可以针对二级缓存和三级缓存分别设置不同的预设包间隔。当然,缓存存储策略也可以结合数据包的大小和包间隔确定该数据包的存储位置。另外,缓存存储策略也可以根据数据包热度信息确定数据包的存储位置。这里只是列举了几种缓存存储策略,用户可以根据自己的需要配置不同的缓存存储策略。
当处理器采用两级缓存时,缓存访问路由器根据数据包的特性信息可以将该数据包存储到一级缓存、二级缓存或内存中。由于一级缓存的缓存空间有限,通常情况下缓存访问路由器不会将数据包直接存储到一级缓存中,一级缓存可以分为一级数据缓存和一级指令缓存,二者分别用来存放数据以及对执行这些数据的指令进行即时解码。二级缓存和三级缓存只能用来存储数据,不能用来存储指令。
以下将举例说明一些可能的缓存存储策略:
(1)当数据包的特征信息为该数据包的大小时,缓存访问路由器根据所述数据包的特征信息将数据包存储到处理器的缓存中,具体为:缓存访问路由器判断数据包的大小是否小于二级缓存的数据大小阈值;若数据包的大小小于二级缓存的数据大小阈值,则缓存访问路由器将数据包存储到二级缓存中。该数据大小阈值可以根据二级缓存的缓存空间的大小确定,二级缓存的缓存空间大一些,相应地可以将该数据大小阈值调整大一些。
当处理器的缓存包括两级缓存时,若数据包的大小不小于二级缓存的数据大小阈值,则将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若数据包的大小不小于二级缓存的数据大小阈值,则可以将数据包存储到三级缓存中,或者,将数据包的包头(head)存储到二级缓存中,将数据包的有效载荷(payload)存储到三级缓存中。在将数据包存储到三级缓存时,一种实现方式中,可以不考虑该数据包的大小,只要该数据包的大小不小于二级缓存的数据大小阈值,就将该数据包存储到三级缓存中;另一种实现方式中,缓存访问路由器进一步判断该数据包的大小是否小于三级缓存的数据大小阈值,若该数据包的大小小于三级缓存的数据大小阈值,则将该数据包存储到三级缓存中,若该数据包的大小不小于三级缓存的数据大小阈值,则将数据包存储到内存中。
通过判断数据包的大小,将小于一定数据大小阈值的数据包存储到二级缓存,由于二级缓存的访问速度比三级缓存的速度快,因此,相比与将数据包存储到三级缓存,能够降低内存访问的延迟,提高内存访问效率。另外,本发明实施例中即使将数据包存储到三级缓存中,也不是不加区分的将所有数据包存储到缓存中,而是根据数据包的大小选择数据包的大小小于三级缓存的数据大小阈值的数据存储到三级缓存中。本发明实施例中,在将数据包放到二级缓存和三级缓存时,通过判断数据包的大小,将较小的数据包放到二级缓存和三级缓存中,从而能够降低内存访问延迟,将较大的数据包放到内存中,由于某些数据包较大,而二级缓存和三级缓存的缓存空间有限,若要在二级缓存和三级缓存中存储较大的数据包,可能需要将一些常用的数据替换到内存中,腾出空间存储到较大的数据包,将常用的数据替换到内存中从系统的整体运行来看反而会降低内存的访问效率。
(2)当数据包的特征信息为该数据包的包间隔时,缓存访问路由器根据该数据包的特征信息将该数据包存储到处理器的缓存中,具体为:缓存访问路由器判断该数据包的包间隔是否小于二级缓存的预设包间隔;若该数据包的包间隔小于二级缓存的预设包间隔,则缓存访问路由器将该数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包的包间隔不小于二级缓存的预设包间隔,则缓存访问路由器将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包的包间隔不小于二级缓存的预设包间隔,则缓存访问路由器可以将数据包存储到三级缓存中。缓存访问路由器将该数据包存储到三级缓存,具体有以下两种方式:一种方式中,只要该数据包的包间隔不小于二级缓存的预设包间隔,缓存访问路由器就将该数据包存储到三级缓存中;另一种方式中,缓存访问路由器判断该数据包的包间隔是否小于三级缓存的预设包间隔;若该数据包的包间隔小于三级缓存的预设包间隔,则缓存访问路由器将该数据包存储到三级缓存中,若该数据包的包间隔不小于三级缓存的预设包间隔,则缓存访问路由器将该数据包存储到内存中。
本发明实施例根据数据包的包间隔,将数据包间隔较小的数据包存储到二级缓存中,将数据包间隔较大的数据包存储到三级缓存中,包间隔较小说明该数据流被访问频繁,将这类数据包存储到二级缓存中,相比于将这类数据包存储到三级缓存中,可以降低内存访问延迟。另外,不论将数据包存储到二级缓存还是三级缓存相比将数据包存储到内存,都能够降低内存访问延迟。若将包间隔很大的数据包存储到缓存中,这类数据包暂时不被访问,将会占用缓存的空间,导致其他数据包没有空间存储到缓存,从计算机整体性能来说,反而会降低计算机的内存访问性能。
(3)当数据包的特征信息为该数据包的热度信息时,缓存访问路由器根据该数据包的特征信息将该数据包存储到处理器的缓存中,具体为:缓存访问路由器根据数据包的热度信息判断该数据包是否在热度时间段内;若数据包在热度时间段内,则缓存访问路由器将数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包不在热度时间段内,则将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包不在热度时间段内,则缓存访问路由器将数据包存储到三级缓存中,当然,缓存访问路由器也可以将该数据包存储到内存中。
例如,对于QQ应用的数据流来说,用户通常在晚上7-12点这段时间内访问频繁,因此,可以将晚上7-12点配置为QQ数据流的热度时间段,若访问路由器在7-12点时间内接收到QQ数据流,则确定该数据流的热度高,该数据包在热度时间段,则缓存访问路由器将该数据包存储到二级缓存,内若在7-12点外的时间段内接收到QQ数据流,则确定数据流的热度低,将该数据包存储到三级缓存或内存中。
(4)当数据包的特征信息为该数据包的大小和包间隔时,缓存访问路由器根据数据包的特征信息将数据包存储到处理器的缓存中,包括:缓存访问路由器判断该数据包的大小是否小于二级缓存的数据大小阈值;若该数据包的大小小于二级缓存的数据大小阈值,缓存访问路由器进一步判断该数据包的包间隔是否小于二级缓存的预设包间隔;若该数据包的包间隔小于二级缓存的预设包间隔,则缓存访问路由器将该数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包的大小不小于二级缓存的数据大小阈值,或者,若该数据包的大小小于二级缓存的数据大小阈值,但该数据包的包间隔不小于二级缓存的预设包间隔,则缓存访问路由器将数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包的大小不小于二级缓存的数据大小阈值,或者,若该数据包的大小小于二级缓存的数据大小阈值,但该数据包的包间隔不小于二级缓存的预设包间隔,则缓存访问路由器将数据包存储到三级缓存中或内存中。在缓存访问路由器将数据包放到三级缓存时,缓存访问路由器可以进一步根据该数据包的大小和包间隔判断该数据包是否合适放在三级缓存中。
(5)当数据包的特征信息为该数据包的大小和热度信息时,缓存访问路由器根据该数据包的特征信息将该数据包存储到处理器的缓存中,具体为:缓存访问路由器判断该数据包的大小是否小于二级缓存的数据大小阈值;若该数据包的大小小于二级缓存的数据大小阈值,缓存访问路由器根据该数据包的热度信息进一步判断该数据包是否在热度时间段内;若该数据包在热度时间段内,则缓存访问路由器将该数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包的大小不小于二级缓存的数据大小阈值,或者,若该数据包的大小小于二级缓存的数据大小阈值,但该数据包不在热度时间段内,则缓存访问路由器将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包的大小不小于二级缓存的数据大小阈值,或者,若该数据包的大小小于二级缓存的数据大小阈值,但该数据包不在热度时间段内,则缓存访问路由器将该数据包存储到三级缓存或内存中。在缓存访问路由器将数据包放到三级缓存时,缓存访问路由器可以进一步根据该数据包的大小和包间隔判断该数据包是否合适放在三级缓存中。
(6)当该数据包的特征信息为该数据包的包间隔和热度信息时,缓存访问路由器根据该数据包的特征信息将该数据包存储到处理器的缓存中,具体为:缓存访问路由器判断该数据包的包间隔是否小于二级缓存的预设包间隔;若该数据包的包间隔小于二级缓存的预设包间隔,缓存访问路由器进一步根据该数据包的热度信息判断该数据包是否在热度时间段内;若该数据包在热度时间段内,则缓存访问路由器将该数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包的包间隔不小于二级缓存的预设包间隔,或者,若该数据包的包间隔小于二级缓存的预设包间隔,但该数据包不在热度时间段内,则缓存访问路由器将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包的包间隔不小于二级缓存的预设包间隔,或者,若该数据包的包间隔小于二级缓存的预设包间隔,但该数据包不在热度时间段内,则缓存访问路由器可以将该数据包存储到内存或三级缓存中。在缓存访问路由器将数据包放到三级缓存时,缓存访问路由器可以进一步根据该数据包的大小和包间隔判断该数据包是否合适放在三级缓存中。
(7)当数据包的特征信息为该数据包的大小、包间隔和热度信息时,缓存访问路由器根据该数据包的特征信息将该数据包存储到处理器的缓存中,具体为:缓存访问路由器判断该数据包的大小是否小于二级缓存的数据大小阈值;若该数据包的大小小于二级缓存的数据大小阈值,则缓存访问路由器判断该数据包的包间隔是否小于二级缓存的预设包间隔;若该数据包的包间隔小于二级缓存的预设包间隔,缓存访问路由器根据该数据包的热度信息判断该数据包是否在热度时间段内;若该数据包在热度时间段内,则缓存访问路由器将该数据包存储到二级缓存中。
当处理器的缓存包括两级缓存时,若该数据包不同时满足上述三个条件,则将该数据包存储到内存中。当处理器的缓存包括三级缓存时,若该数据包不同时满足上述三个条件,则将该数据包存储到内存或三级缓存中。缓存访问路由器将数据包放到三级缓存时,缓存访问路由器可以进一步根据该数据包的大小和包间隔判断该数据包是否合适放在三级缓存中。
本实施例,缓存访问路由器接收外设发送的数据包,获取该数据包的大小、包间隔、热度信息等特性信息,然后,根据数据包的特征信息将数据包存储到处理器的缓存中,以使处理器在访问数据包时,能够从缓存中直接读取数据,而不需要从内存中读取数据,减少了内存访问的次数,提高了缓存的命中率,从而提高了内存访问效率。本实施例中,该处理器的缓存包括至少两级缓存,缓存访问路由器可以根据数据包的特征信息将数据包存储到合适的缓存中,进一步,提高内存访问效率。
实施例一的方案即适用于单核计算机系统,也适用于多核操作系统,本发明实施例二在上述实施例一的基础上,以多核操作系统为例进行说明,当处理器包括多个处理器核时,该数据包的特征信息还包括与数据包对应的处理器核的标示,该数据包对应的处理器核指请求该数据包的处理器核,例如处理器核发送了一个网络访问请求,该网络访问请求用于从网络中获取数据,该网络访问请求经过缓存访问路由器再到外设,缓存访问路由器记录发送该内存访问请求的处理器核的标示。当外设接收到该内存访问请求对应的数据包时,外设将该内存访问请求对应的数据包发送给缓存访问路由器,该数据包中包括处理器核的标示。若缓存访问路由器通过实施例一的方法确定将该数据包存储到二级缓存中,则缓存访问路由器根据数据包中的处理器核的标示以及本地保存的处理器核的标示进行匹配,将该数据包存储到二级缓存中距离该处理器核最近的分区中。
如图3所示,图3为本发明实施例二提供的多核处理器的结构示意图,该处理器包括四个处理器核,各处理器核分别具有一个一级缓存,一级缓存为私有缓存,各处理器还共同拥有一个二级缓存,该二级缓存为共享缓存,如图3所示,该二级缓存被划分为四个物理分区(bank),分别为:分区1、分区2、分区3和分区4,每个处理器核通过数据线与二级缓存中物理距离最近的分区连接,图3中,分区1与处理器核1连接,分区2与处理器核2连接,分区3与处理器核3连接,分区4与处理器核4连接。在多核处理器中,线延迟是影响缓存访问时间的一个重要因素,内存访问请求的响应时间依赖于被请求数据和处理器核的相对物理位置,处理器核距离被请求数据距离越近,所需的访问时间越短。
以处理器核1为例,处理器核1访问分区1的所需的时间最短,访问分区4所需的时间最长,因此,通过本发明实施例的方案,在将数据包存储到二级缓存时,缓存访问路由器根据该数据包对应的处理器核的标示,将该数据包存储到分区1,这样,当处理器核1从二级缓存中读取该数据包中的数据时,从分区1中查找该数据包,从而降低了内存访问延迟的时间。
同理,在缓存访问路由器将数据包存储到三级缓存时,缓存访问路由器也可以根据处理器核的标示将数据包存储三级缓存中距离处理器核最近的分区。
图4为本发明实施例提供的一种缓存访问路由器的结构示意图,如图4所示,本实施例的缓存访问路由器可以包括:接收模块11、获取模块12和路由模块13。
其中,接收模块11,用于接收外设发送的数据包;
获取模块12,用于根据所述接收模块11接收的所述数据包获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、所述数据包的包间隔、所述数据包的热度信息;
路由模块13,用于根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,以使所述处理器在访问所述数据包时,能够从所述缓存中直接读取数据,所述处理器的缓存包括至少两级缓存。
可选地,当所述数据包的特征信息为所述数据包的大小时,所述路由模块13具体用于:判断所述数据包的大小是否小于二级缓存的数据大小阈值;若所述数据包的大小小于所述二级缓存的数据大小阈值,则将所述数据包存储到所述二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则路由模块13将所述数据包存储到内存中。当所述处理器的缓存包括三级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则路由模块13将所述数据包存储到三级缓存中,或者,将所述数据包的包头存储到所述二级缓存中,将所述数据包的有效载荷存储到所述三级缓存中。路由模块13在将所述数据包存储到所述三级缓存中时,具体用于:判断所述数据包的大小是否小于所述三级缓存的数据大小阈值;若所述数据包的大小小于所述三级缓存的数据大小阈值,则将所述数据包存储到所述三级缓存中。
可选地,当所述数据包的特征信息为所述数据包的包间隔时,所述路由模块13具体用于:判断所述数据包的包间隔是否小于二级缓存的预设包间隔;若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则路由模块13将所述数据包存储到内存缓存中。当所述处理器的缓存包括三级缓存时,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则路由模块13将所述数据包存储到三级缓存中。所述路由模块13在将所述数据包存储到所述三级缓存中时,具体用于:判断所述数据包的包间隔是否小于所述三级缓存的预设包间隔;若所述数据包的包间隔小于所述三级缓存的预设包间隔,则将所述数据包存储到所述三级缓存或内存中。
可选地,当所述数据包的特征信息为所述数据包的热度信息时,所述路由模块13具体用于:根据所述数据包的热度信息判断所述数据包是否在热度时间段内;若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存中。当所述处理器的缓存包括三级缓存时,若所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存或三级缓存中。
可选地,当所述数据包的特征信息为所述数据包的大小和包间隔时,所述路由模块13具体用于:判断所述数据包的大小是否小于二级缓存的数据大小阈值;若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则路由模块13将所述数据包存储到内存中。当所述处理器的缓存包括三级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则路由模块13将所述数据包存储到三级缓存中。
可选地,当所述数据包的特征信息为所述数据包的大小和热度信息时,所述路由模块13具体用于:判断所述数据包的大小是否小于二级缓存的数据大小阈值;若所述数据包的大小小于所述二级缓存的数据大小阈值,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存中。当所述处理器的缓存包括两级缓存时,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存或三级缓存中。
可选地,当所述数据包的特征信息为所述数据包的包间隔和热度信息时,所述路由模块13具体用于:判断所述数据包的包间隔是否小于二级缓存的预设包间隔;若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。当所述处理器的缓存包括两级缓存时,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存中。当所述处理器的缓存包括三级缓存时,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则路由模块13将所述数据包存储到内存或三级缓存中。
可选地,当所述数据包的特征信息为所述数据包的大小、包间隔和热度信息时,所述路由模块13具体用于:判断所述数据包的大小是否小于所述二级缓存的数据大小阈值;若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。
本实施例中,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块13在将所述数据包存储到所述二级缓存中时,具体用于:根据所述处理器核的标示将所述数据包存储到所述二级缓存中距离所述处理器核最近的分区。所述路由模块13在将所述数据包存储到所述三级缓存中时,具体用于:根据所述处理器核的标示将所述数据包存储到所述三级缓存中距离所述处理器核最近的分区。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明实施例还提供的一种计算机系统,该计算机系统包括:处理器、缓存、主存储器、外设以及缓存访问路由器;所述主存储器,用于存储计算机执行指令;所述外设用于向所述缓存访问路由器发送数据包;所述缓存访问路由器,用于执行图1所示的方法,以将所述数据包存储到所述缓存中,所述缓存包括至少两级缓存;所述处理器,用于根据内存访问请求在所述缓存中查找所述数据包。可选地,所述处理器包括多个处理器核。本发明实施例的计算机系统的结构可以参照图1,但图1只是一种可能的结构示意图,本发明并不以此为限制。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (40)

1.一种缓存访问方法,其特征在于,包括:
缓存访问路由器接收外设发送的数据包,获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、所述数据包的包间隔、所述数据包的热度信息;
所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,以使所述处理器在访问所述数据包时,能够从所述缓存中直接读取数据,所述处理器的缓存包括至少两级缓存;
当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器根据所述处理器核的标示将所述数据包存储到所述缓存中距离所述处理器核最近的分区。
2.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的大小时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
3.根据权利要求2所述的方法,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到三级缓存中。
4.根据权利要求3所述的方法,其特征在于,所述缓存访问路由器将所述数据包存储到三级缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于所述三级缓存的数据大小阈值;
若所述数据包的大小小于所述三级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包存储到所述三级缓存中。
5.根据权利要求2所述的方法,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则所述缓存访问路由器将所述数据包的包头存储到所述二级缓存中,将所述数据包的有效载荷存储到三级缓存中。
6.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的包间隔时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
7.根据权利要求6所述的方法,其特征在于,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到三级缓存中。
8.根据权利要求7所述的方法,其特征在于,所述缓存访问路由器将所述数据包存储到三级缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于所述三级缓存的预设包间隔;
若所述数据包的包间隔小于所述三级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述三级缓存中。
9.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到二级缓存中。
10.根据权利要求9所述的方法,其特征在于,若所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
11.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的大小和包间隔时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
12.根据权利要求11所述的方法,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则所述缓存访问路由器将所述数据包存储到三级缓存中。
13.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的大小和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
14.根据权利要求13所述的方法,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
15.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的包间隔和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到二级缓存中。
16.根据权利要求15所述的方法,其特征在于,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到三级缓存中。
17.根据权利要求1所述的方法,其特征在于,当所述数据包的特征信息为所述数据包的大小、包间隔和热度信息时,所述缓存访问路由器根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,包括:
所述缓存访问路由器判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,所述缓存访问路由器判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,所述缓存访问路由器根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则所述缓存访问路由器将所述数据包存储到所述二级缓存中。
18.根据权利要求2-17中任一项所述的方法,其特征在于,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述缓存访问路由器将所述数据包存储到二级缓存中,包括:
所述缓存访问路由器根据所述处理器核的标示将所述数据包存储到所述二级缓存中距离所述处理器核最近的分区。
19.根据权利要求3、4、7、8、10、12、14、16中任一项所述的方法,其特征在于,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述缓存访问路由器将所述数据包存储到三级缓存中,包括:
所述缓存访问路由器根据所述处理器核的标示将所述数据包存储到所述三级缓存中距离所述处理器核最近的分区。
20.一种缓存访问路由器,其特征在于,包括:
接收模块,用于接收外设发送的数据包;
获取模块,用于根据所述接收模块接收的所述数据包获取所述数据包的特性信息,所述数据包的特征信息包括如下信息中的任意一个或其组合:所述数据包的大小、所述数据包的包间隔、所述数据包的热度信息;
路由模块,用于根据所述数据包的特征信息将所述数据包存储到处理器的缓存中,以使所述处理器在访问所述数据包时,能够从所述缓存中直接读取数据,所述处理器的缓存包括至少两级缓存;
当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块,具体用于根据所述处理器核的标示将所述数据包存储到所述缓存中距离所述处理器核最近的分区。
21.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的大小时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,则将所述数据包存储到所述二级缓存中。
22.根据权利要求21所述的缓存访问路由器,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则将所述数据包存储到三级缓存中。
23.根据权利要求22所述的缓存访问路由器,其特征在于,所述路由模块在将所述数据包存储到所述三级缓存中时,具体用于:
判断所述数据包的大小是否小于所述三级缓存的数据大小阈值;
若所述数据包的大小小于所述三级缓存的数据大小阈值,则将所述数据包存储到所述三级缓存中。
24.根据权利要求21所述的缓存访问路由器,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,则将所述数据包的包头存储到所述二级缓存中,将所述数据包的有效载荷存储到三级缓存中。
25.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的包间隔时,所述路由模块具体用于:
判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。
26.根据权利要求25所述的缓存访问路由器,其特征在于,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,则将所述数据包存储到三级缓存中。
27.根据权利要求26所述的缓存访问路由器,其特征在于,所述路由模块在将所述数据包存储到所述三级缓存中时,具体用于:
判断所述数据包的包间隔是否小于所述三级缓存的预设包间隔;
若所述数据包的包间隔小于所述三级缓存的预设包间隔,则将所述数据包存储到所述三级缓存中。
28.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的热度信息时,所述路由模块具体用于:
根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。
29.根据权利要求28所述的缓存访问路由器,其特征在于,若所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
30.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的大小和包间隔时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,则将所述数据包存储到所述二级缓存中。
31.根据权利要求30所述的缓存访问路由器,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包的包间隔不小于所述二级缓存的预设包间隔,则将所述数据包存储到三级缓存中。
32.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的大小和热度信息时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。
33.根据权利要求32所述的缓存访问路由器,其特征在于,若所述数据包的大小不小于所述二级缓存的数据大小阈值,或者,若所述数据包的大小小于所述二级缓存的数据大小阈值,但所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
34.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的包间隔和热度信息时,所述路由模块具体用于:
判断所述数据包的包间隔是否小于二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到二级缓存中。
35.根据权利要求34所述的缓存访问路由器,其特征在于,若所述数据包的包间隔不小于所述二级缓存的预设包间隔,或者,若所述数据包的包间隔小于所述二级缓存的预设包间隔,但所述数据包不在所述热度时间段内,则将所述数据包存储到三级缓存中。
36.根据权利要求20所述的缓存访问路由器,其特征在于,当所述数据包的特征信息为所述数据包的大小、包间隔和热度信息时,所述路由模块具体用于:
判断所述数据包的大小是否小于二级缓存的数据大小阈值;
若所述数据包的大小小于所述二级缓存的数据大小阈值,判断所述数据包的包间隔是否小于所述二级缓存的预设包间隔;
若所述数据包的包间隔小于所述二级缓存的预设包间隔,根据所述数据包的热度信息判断所述数据包是否在热度时间段内;
若所述数据包在所述热度时间段内,则将所述数据包存储到所述二级缓存中。
37.根据权利要求21-36中任一项所述的缓存访问路由器,其特征在于,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块在将所述数据包存储到所述二级缓存中时,具体用于:
根据所述处理器核的标示将所述数据包存储到所述二级缓存中距离所述处理器核最近的分区。
38.根据权利要求22、23、26、27、29、31、33、35中任一项所述的缓存访问路由器,其特征在于,当所述处理器包括多个处理器核时,所述数据包的特征信息还包括与所述数据包对应的处理器核的标示,所述路由模块在将所述数据包存储到三级缓存中时,具体用于:
根据所述处理器核的标示将所述数据包存储到所述三级缓存中距离所述处理器核最近的分区。
39.一种计算机系统,其特征在于,包括:处理器、缓存、主存储器、外设以及缓存访问路由器;
所述主存储器,用于存储计算机执行指令;
所述外设用于向所述缓存访问路由器发送数据包;
所述缓存访问路由器,用于执行权利要求1-19中任一项所述的方法,以将所述数据包存储到所述缓存中,所述缓存包括至少两级缓存;
所述处理器,用于根据内存访问请求在所述缓存中查找所述数据包。
40.根据权利要求39所述的计算机系统,其特征在于,所述处理器包括多个处理器核。
CN201410216443.4A 2014-05-21 2014-05-21 缓存访问方法、缓存访问路由器和计算机系统 Active CN105095109B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410216443.4A CN105095109B (zh) 2014-05-21 2014-05-21 缓存访问方法、缓存访问路由器和计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410216443.4A CN105095109B (zh) 2014-05-21 2014-05-21 缓存访问方法、缓存访问路由器和计算机系统

Publications (2)

Publication Number Publication Date
CN105095109A CN105095109A (zh) 2015-11-25
CN105095109B true CN105095109B (zh) 2018-07-20

Family

ID=54575599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410216443.4A Active CN105095109B (zh) 2014-05-21 2014-05-21 缓存访问方法、缓存访问路由器和计算机系统

Country Status (1)

Country Link
CN (1) CN105095109B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2603211A (en) * 2021-01-28 2022-08-03 Advanced Risc Mach Ltd Data Processing systems

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815174B (zh) * 2015-11-30 2019-07-30 大唐移动通信设备有限公司 数据访问控制方法及节点控制器
WO2017189006A1 (en) * 2016-04-29 2017-11-02 Appdynamics Llc Predictive rollup and caching for application performance data
CN111208933B (zh) 2018-11-21 2023-06-30 昆仑芯(北京)科技有限公司 数据访问的方法、装置、设备和存储介质
CN111372277B (zh) * 2018-12-26 2023-07-14 南京中兴新软件有限责任公司 数据分发方法、装置及存储介质
US11489940B2 (en) 2021-01-28 2022-11-01 Arm Limited Data processing systems
CN113377690B (zh) * 2021-06-28 2023-06-27 福建师范大学 一种适应不同大小的用户请求的固态硬盘处理方法
CN114217861A (zh) * 2021-12-06 2022-03-22 海光信息技术股份有限公司 数据处理方法及装置、电子装置和存储介质
CN115617709A (zh) * 2022-09-27 2023-01-17 海光信息技术股份有限公司 缓存管理方法及装置、缓存装置、电子装置和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082011A (ja) * 1998-05-13 2000-03-21 Axis Ab Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム
CN101883041A (zh) * 2010-06-29 2010-11-10 中兴通讯股份有限公司 存储转发系统及其报文存储方法
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN103389950A (zh) * 2013-07-15 2013-11-13 武汉中元华电科技股份有限公司 一种基于能力预测的防阻塞多通道数据传输方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000082011A (ja) * 1998-05-13 2000-03-21 Axis Ab Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム
CN101883041A (zh) * 2010-06-29 2010-11-10 中兴通讯股份有限公司 存储转发系统及其报文存储方法
CN102025634A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 数据包缓存管理方法和设备
CN103389950A (zh) * 2013-07-15 2013-11-13 武汉中元华电科技股份有限公司 一种基于能力预测的防阻塞多通道数据传输方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2603211A (en) * 2021-01-28 2022-08-03 Advanced Risc Mach Ltd Data Processing systems

Also Published As

Publication number Publication date
CN105095109A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105095109B (zh) 缓存访问方法、缓存访问路由器和计算机系统
CN103200128B (zh) 一种网络包处理的方法、装置和系统
EP3018588B1 (en) Memory access processing method, apparatus, and system
US7500063B2 (en) Method and apparatus for managing a cache memory in a mass-storage system
US20170262372A1 (en) Cache Memory System and Method for Accessing Cache Line
CN103019962B (zh) 数据缓存处理方法、装置以及系统
US9037810B2 (en) Pre-fetching of data packets
CN104809076B (zh) Cache的管理方法及装置
US20110225168A1 (en) Hash processing in a network communications processor architecture
US7296112B1 (en) High bandwidth memory management using multi-bank DRAM devices
US7818505B2 (en) Method and apparatus for managing a cache memory in a mass-storage system
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
CN104536701A (zh) 一种nvme协议多命令队列的实现方法及系统
US8854387B2 (en) Bundle-based CPU/GPU memory controller coordination mechanism
CN109446125A (zh) Ddr读写仲裁器及方法
US20120102245A1 (en) Unified i/o adapter
JP2011198360A (ja) パケット処理最適化
CN106959929B (zh) 一种多端口访问的存储器及其工作方法
US20180121375A1 (en) Dynamically adjusting read data return sizes based on interconnect bus utilization
CN107341114A (zh) 一种目录管理的方法、节点控制器和系统
CN104346404B (zh) 一种访问数据的方法、设备及系统
CN105302493B (zh) 一种混合存储阵列中ssd缓存的换入换出控制方法及系统
CN105095104B (zh) 数据缓存处理方法及装置
CN105988941A (zh) 缓存数据处理方法和装置
CN104252423B (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
GR01 Patent grant
GR01 Patent grant