本技术涉及数据处理,尤其涉及一种多页表系统中读写请求的保序处理方法、装置及设备。
背景技术:
1、在图形处理器(graphics processing unit,gpu)系统中,缓存(英文:cache)系统需要按照着色器(英文:shader)发起的读/写访问的到达顺序保序输出。目前,在cache系统中,以转译后备缓冲器(translation lookaside buffer,tlb)中为各读写请求分配的缓存行的标识(英文:cache line index)为索引,对各读写请求进行链表管理,以实现同地址的请求按照请求到达tlb的先后顺序保序输出。
2、然而,当tlb内的多条cache line缓存的是相同的页表时,就会导致一笔读写请求在tlb内多条cache line上同时命中,存在同地址请求在tlb输出乱序的问题。
技术实现思路
1、本技术的多个方面提供一种多页表系统中读写请求的保序处理方法、装置及设备,用以解决现有技术中同地址请求在tlb输出乱序的问题。
2、第一方面,本技术实施例提供一种多页表系统中读写请求的保序处理方法,包括:
3、在对接收到的读写请求进行地址转换过程中,根据每个缓存行中页表的页表范围,按照所述页表范围对应粒度对所述页表进行命中测试,得到对每个页表的第一命中测试结果;
4、对于页表范围为非4kb的页表,在获取到第一命中测试结果后,按照4kb粒度对所述页表再次进行命中测试,得到第二命中测试结果;
5、根据所述第二命中测试结果,对相同地址的读写请求建立联系。
6、在一种可能的实施方式中,所述根据所述第二命中测试结果,对相同地址的读写请求建立联系,包括:
7、若所述第二命中测试结果指示命中或者页表获取过程中,则选择所述第二命中测试结果对相同地址的读写请求进行串链;
8、若所述第二命中测试结果指示未命中,则根据所述第一命中测试结果对读写请求进行串链。
9、在一种可能的实施方式中,所述方法还包括:
10、采用缓存行的标识作为索引,对命中所述缓存行的读写请求进行链表管理。
11、在一种可能的实施方式中,所述根据每个缓存行中页表的页表范围,按照所述页表范围对应粒度对所述页表进行命中测试,得到对每个页表的第一命中测试结果,包括:
12、对页表范围为4kb的页表,按照4kb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
13、或者,
14、对页表范围为64kb的页表,按照64kb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
15、或者,
16、对页表范围为2mb的页表,按照2mb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
17、其中,所述第一命中测试结果用于指示命中,或者页表获取过程中,或者未命中三种状态,所述页表获取过程中指示所述缓存行对应的正在请求过程中的页表为所述读写请求需要的页表。
18、在一种可能的实施方式中,所述在对接收到的读写请求进行地址转换过程中,根据每个缓存行中页表的页表范围,按照所述页表范围对应粒度对所述页表进行命中测试之前,所述方法还包括:
19、根据接收到的读写请求,按照页表最小粒度向mmu发送页表请求,所述页表最小粒度为4kb;
20、依次接收所述mmu返回的与每个页表请求对应的页表,并将每个页表请求对应的页表存储在所述页表请求对应的缓存行中。
21、在一种可能的实施方式中,所述方法还包括:
22、在每次向所述mmu发送页表请求时,为所述页表请求分配一条缓存行。
23、第二方面,本技术实施例提供一种多页表系统中读写请求的保序处理装置,包括:
24、第一处理模块,用于在对接收到的读写请求进行地址转换过程中,根据每个缓存行中页表的页表范围,按照所述页表范围对应粒度对所述页表进行命中测试,得到对每个页表的第一命中测试结果;
25、第二处理模块,用于对于页表范围为非4kb的页表,在获取到第一命中测试结果后,按照4kb粒度对所述页表再次进行命中测试,得到第二命中测试结果;
26、第三处理模块,用于根据所述第二命中测试结果,对相同地址的读写请求建立联系。
27、在一种可能的实施方式中,所述第三处理模块,具体用于:
28、若所述第二命中测试结果指示命中或者页表获取过程中,则选择所述第二命中测试结果对相同地址的读写请求进行串链;
29、若所述第二命中测试结果指示未命中,则根据所述第一命中测试结果对读写请求进行串链。
30、在一种可能的实施方式中,所述装置还包括:
31、第四处理模块,用于采用缓存行的标识作为索引,对命中所述缓存行的读写请求进行链表管理。
32、在一种可能的实施方式中,所述第一处理模块,具体用于:
33、对页表范围为4kb的页表,按照4kb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
34、或者,
35、对页表范围为64kb的页表,按照64kb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
36、或者,
37、对页表范围为2mb的页表,按照2mb粒度对所述页表进行命中测试,得到所述页表的第一命中测试结果;
38、其中,所述第一命中测试结果用于指示命中,或者页表获取过程中,或者未命中三种状态,所述页表获取过程中指示所述缓存行对应的正在请求过程中的页表为所述读写请求需要的页表。
39、在一种可能的实施方式中,在对接收到的读写请求进行地址转换过程中,根据每个缓存行中页表的页表范围,按照所述页表范围对应粒度对所述页表进行命中测试之前,所述装置还包括:
40、第五处理模块,用于根据接收到的读写请求,按照页表最小粒度向mmu发送页表请求,所述页表最小粒度为4kb;
41、依次接收所述mmu返回的与每个页表请求对应的页表,并将每个页表请求对应的页表存储在所述页表请求对应的缓存行中。
42、在一种可能的实施方式中,所述装置还包括:
43、第六处理模块,用于在每次向所述mmu发送页表请求时,为所述页表请求分配一条缓存行。
44、第三方面,本技术实施例提供一种芯片,所述芯片包括着色器以及缓存单元,所述缓存单元包括tlb以及mmu,所述着色器用于向所述缓存单元发送读写请求,所述tlb用于执行如第一方面中任一项所述的方法,所述mmu用于存储页表。
45、第四方面,本技术实施例提供一种电子设备,包括:存储器和处理器;
46、所述存储器存储计算机执行指令;
47、所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如第一方面中任一项所述的方法。
48、第五方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
49、本技术实施例提供的多页表系统中读写请求的保序处理方法、装置及设备,该方法包括:电子设备在对接收到的读写请求进行地址转换过程中,根据每个缓存行中页表的页表范围,按照页表范围对应粒度对页表进行命中测试,得到对每个页表的第一命中测试结果;对于页表范围为非4kb的页表,在获取到第一命中测试结果后,按照4kb粒度对页表再次进行命中测试,得到第二命中测试结果;根据第二命中测试结果,对相同地址的读写请求建立联系。在本技术方案中,通过对每个缓存行中缓存的页表分别按照该页表的页表范围对应粒度以及4kb粒度进行两次命中测试,根据第二次命中测试的第二命中测试结果对相同地址的读写请求建立联系,从而保证同地址请求在tlb顺序保序输出,避免了额外的资源开销。