访问处理装置和方法、处理设备、电子设备和存储介质与流程

文档序号:30525792发布日期:2022-06-25 06:52阅读:82来源:国知局
访问处理装置和方法、处理设备、电子设备和存储介质与流程

1.本公开的实施例涉及一种访问处理装置、访问处理方法、处理设备、电子设备和计算机可读存储介质。


背景技术:

2.soc(system on chip,片上系统)芯片可以实现信号采集、转换、存储、处理和i/o等功能,随着集成电路工艺的不断提高,芯片的运行频率和性能要求也越来越高,越来越多的片上系统集成多个存储控制器以便使芯片具有更大的存储带宽。


技术实现要素:

3.本公开至少一个实施例提供一种访问处理装置,该访问处理装置包括第一互联模块、第二互联模块和至少一个地址交织模块,第一互联模块配置为耦接至少一个第一装置;第二互联模块配置为耦接多个第二装置,所述多个第二装置配置为控制对第三装置的访问;至少一个地址交织模块分别耦接在所述第一互联模块和所述第二互联模块之间;所述第一互联模块配置为将所述第一装置发送的对于所述第三装置的访问事务传输至所述至少一个地址交织模块中与所述访问事务对应的地址交织模块;每个所述地址交织模块配置为对从所述第一互联模块接收的访问事务进行地址交织处理,并将处理得到的多个子访问事务发送至所述第二互联模块;所述第二互联模块配置为将所述多个子访问事务分别发送至所述多个第二装置中与所述多个子访问事务对应的一个或多个,以对所述第三装置进行访问。
4.例如,在本公开一实施例提供的访问处理装置中,所述第一互联模块包括片上网络。
5.例如,在本公开一实施例提供的访问处理装置中,所述第二互联模块包括片上网络、交叉开关矩阵或环形总线。
6.例如,在本公开一实施例提供的访问处理装置中,所述至少一个地址交织模块的数量大于或等于所述多个第二装置的数量。
7.例如,在本公开一实施例提供的访问处理装置中,所述至少一个地址交织模块包括多个地址交织模块,所述多个地址交织模块配置为分别处理对所述第三装置的多个不同子地址空间的访问事务。
8.例如,在本公开一实施例提供的访问处理装置中,所述多个地址交织模块包括第一地址交织模块和第二地址交织模块,所述第一地址交织模块配置为处理对所述第三装置的第一子地址空间的访问事务,所述第二地址交织模块配置为处理对所述第三装置的第二子地址空间的访问事务,所述第一子地址空间的容量相同或不同于所述第二子地址空间的容量。
9.例如,在本公开一实施例提供的访问处理装置中,所述多个地址交织模块配置为可调节所述多个地址交织模块分别对应的子地址空间的大小。
10.例如,在本公开一实施例提供的访问处理装置中,所述多个地址交织模块配置为根据各自的历史访问频次调节所述多个地址交织模块分别对应的子地址空间的大小。
11.例如,在本公开一实施例提供的访问处理装置中,所述至少一个地址交织模块每个配置为根据各自的交织配置规则进行所述地址交织处理;所述至少一个地址交织模块包括第一地址交织模块和第二地址交织模块,所述第一地址交织模块的交织配置规则相同或不同于所述第二地址交织模块的交织配置规则。
12.例如,在本公开一实施例提供的访问处理装置中,所述交织配置规则包括交织地址范围和/或交织粒度,所述交织地址范围用于限制所述至少一个地址交织模块处理得到的每个所述子访问事务的访问地址空间的地址范围,所述交织粒度用于限制所述至少一个地址交织模块处理得到的每个所述子访问事务的访问地址空间的大小。
13.本公开至少一个实施例提供一种访问处理方法,包括:通过第一互联部件将第一装置发送的对于第三装置的访问事务传输至至少一个地址交织模块中与所述访问事务对应的地址交织模块;通过所述至少一个地址交织模块对从所述第一互联模块接收的所述访问事务进行地址交织处理,并将处理得到的多个子访问事务发送至所述第二互联模块;通过所述第二互联部件将所述多个子访问事务分别发送至所述多个第二装置中与所述多个子访问事务对应的一个或多个,以通过所述多个第二装置对所述第三装置进行访问,其中,所述至少一个地址交织模块分别耦接在所述第一互联模块和所述第二互联模块之间。
14.本公开至少一个实施例提供一种处理设备,包括本公开任一实施例提供的的访问处理装置;以及至少一个第一装置、多个第二装置和第三装置。
15.例如,在本公开一实施例提供的处理设备中,所述第二装置包括存储控制器,所述第三装置为存储装置,所述多个第二装置配置为分别控制所述存储装置的一部分存储空间。
16.本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开任一实施例提供的访问处理方法的指令。
17.本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的访问处理方法。
附图说明
18.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
19.图1示出了一种soc芯片的示意图;
20.图2示出了本公开至少一实施例提供的一种访问处理装置的示意图;
21.图3示出了本公开至少一实施例提供的地址交织的示意图;
22.图4示出了本公开至少一实施例提供的一种访问处理方法的流程图;
23.图5示出了本公开至少一实施例提供的一种处理设备的框图;
24.图6示出了本公开至少一个实施例提供的一种电子设备的示意框图;
25.图7示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
26.图8示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
27.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
28.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
29.图1示出了一种soc芯片的示意图。如图1所示,soc芯片可以集成或外接例如ddr(double data rate,双倍速率同步动态随机)存储器101,并且对于ddr存储器101,可以设置有ddr控制器102,该ddr控制器102用于控制对ddr存储器101的访问,图1所示的每个mc(memory controller,内存控制器)模块例如可以代表一个ddr控制器。每个mc模块管理ddr存储器101中的部分存储空间,例如可以将ddr存储器的存储空间划分为多个ddr,每个mc模块用于管理一个ddr,例如每个mc模块用于管理针对相应ddr的写操作和读操作。
30.每个ip模块103例如代表可以主动向外发出操作的装置,每个ip模块103例如可以发出针对ddr存储器的访问事务,ip模块可以为各种功能模块,例如可以是cpu(central processing unit,中央处理器)、gpu(graphics processing unit,图形处理器)、dpu(data processing unit,数据处理器)、dma(direct memory access,直接存储器访问)等,例如可以是处理器本身或者是多核处理器的一个处理核。芯片还可以包括片上互联模块104,片上互联模块104例如为片上网络(network on chip,noc)模块,noc模块可以将ip模块发起的对于ddr存储器的访问事务路由至相应的mc模块,并由mc模块实现对ddr存储器的访问操作,访问事务可以是对于ddr存储器的写入或读取。
31.由同一个mc模块进行连续访问操作会产生延时,因此,为了增加带宽,在一些示例中,可以通过地址交织模块105,将本来发往同一个mc模块的访问操作分发到多个不同的mc模块去,将本来由同一个mc模块分时连续处理的访问操作改由多个mc模块同时并行处理,以提升访问ddr存储器的性能。例如,可以将针对一个ddr的访问操作划分为多个子访问操作,该多个子访问操作的目的地址可以对应不同的ddr。将多个子访问操作分别发送至多个mc模块,利用多个mc模块处理该多个子访问操作,由此实现对访问操作的处理,从而可以提高对该访问事务的处理效率,这相当于增加访问ddr的带宽。
32.图1中的acc模块代表地址交织模块,每个ip模块连接一个acc模块,通过该acc模
块连接到noc模块,每个ip模块可以将其访问事务先发送至对应的acc模块,该访问事务经过acc模块的地址交织处理后得到多个子访问事务,然后acc模块再将多个子访问事务通过noc模块分别发送至对应的多个mc模块,例如每个mc模块处理其中的一个子访问事务,从而可以利用多个mc模块完成本次访问操作。
33.但是,上述方案需要每个ip模块的出口都添加一个地址交织模块来实现复杂的地址交织功能。对于大型的soc芯片,ip模块的数目可能达到几十上百个,那么就需要几十上百个这样的地址交织模块,增加了芯片的面积、功耗以及设计和芯片验证的工作量。并且,ip模块发出的操作经过地址交织模块进行地址交织后地址会变得杂乱无章,使总线上传输的事务(transaction,属于amba axi总线的术语,ip模块发出的一个操作可称为一笔transaction)的地址没那么直观。在soc测试的过程中,要经常定位问题,将地址交织模块连接在ip模块的出口处,意味着从ip模块输出操作后,后续的操作就变得没有规律起来,这增加了测试、调试过程中的定位问题的难度。
34.本公开至少一个实施例提供一种访问处理装置、访问处理方法、处理设备、电子设备和计算机可读存储介质。该访问处理装置包括第一互联模块、第二互联模块和至少一个地址交织模块,第一互联模块配置为耦接至少一个第一装置;第二互联模块配置为耦接多个第二装置,其中,多个第二装置配置为控制对第三装置的访问;至少一个地址交织模块分别耦接在第一互联模块和第二互联模块之间;第一互联模块配置为将第一装置发送的对于第三装置的访问事务传输至至少一个地址交织模块中与访问事务对应的地址交织模块;每个地址交织模块配置为对从第一互联模块接收的访问事务进行地址交织处理,并将处理得到的多个子访问事务发送至第二互联模块;第二互联模块配置为将多个子访问事务分别发送至多个第二装置中与多个子访问事务对应的一个或多个,以对第三装置进行访问。
35.根据本公开实施例的访问处理装置,通过将地址交织模块(可简称acc模块)设置于第一互联模块(例如noc模块)的后边(第一互联模块与第二装置之间),并利用第一互联模块将各个第一装置(例如,某ip模块)发起的访问事务传输至与访问事务的目的地址相对应的地址交织模块进行处理。基于这一方式,可以无需针对每个第一装置均设置一个地址交织模块,而是可以设置任意数量的地址交织模块,使地址交织模块的数量设置更为灵活。例如,对于大型的芯片,ip模块的数目可达到七八十个,采用本公开实施例的访问处理装置,可以把地址交织模块的数目例如降到个位数(具体数目可以根据实际情况而定),因此,相对于图1所示的情形而言可以实现减少地址交织模块的数量的目的,进而可以减少芯片的面积、功耗以及设计和芯片验证的工作量。并且,本公开实施例相对于现有技术将地址交织模块的位置后移,在地址交织模块之前的操作地址都是直观的,增长了ip模块到地址交织模块的路径,极大地提高了定位问题的效率。
36.需要说明的是,本公开实施例所述的“前”和“后”是相对于访问事务的传输线路而言的,访问事务先到达的模块位于访问事务后到达的模块的前边,例如第一互联模块相对于地址交织模块先接收到访问事务,则第一互联模块位于地址交织模块之前。
37.在本公开中,互联模块采用片上互联方式,不同于例如图1所示的直连方式,片上互联方式例如包括片上网络(noc)或晶粒间连接(die-to-die,d2d),片上网络可以包括交叉(switch)网络、树状(tree)网络、环形(ring)网络、网格(mesh)网络或环面(torus)网络或它们的任意组合。
38.图2示出了本公开至少一实施例提供的一种访问处理装置的示意图。
39.如图2所示,该访问处理装置包括第一互联模块201、第二互联模块202和至少一个地址交织模块203,第一互联模块201配置为耦接至少一个第一装置204,第二互联模块202配置为耦接多个第二装置205,多个第二装置205配置为控制对第三装置206的访问,至少一个地址交织模块203分别耦接在第一互联模块201和第二互联模块202之间。
40.例如,第一互联模块201配置为将第一装置204发送的对于第三装置206的访问事务传输至该至少一个地址交织模块203中与访问事务对应的地址交织模块。每个地址交织模块203配置为对从第一互联模块201接收的访问事务进行地址交织处理,并将处理得到的多个子访问事务发送至第二互联模块202。第二互联模块202配置为将该多个子访问事务分别发送至该多个第二装置205中与多个子访问事务对应的一个或多个,以对第三装置206进行访问。
41.例如,图2所示的每个ip模块可以代表一个第一装置204,第一装置204的数量可以为一个或多个,具体可以根据实际需求设置。第一装置204例如可以是cpu、gpu、dpu、dma等,例如可以是处理器或者是多核处理器的一个处理核。每个第一装置204均可以向外发出针对第三装置206的访问事务(即访问操作),第三装置206可以是存储器,例如是ddr存储器。在以下的一些实施例中以第三装置为ddr存储器为例进行说明,但是本公开并不限于此,第三装置206还可以是其他类型的存储器,并且本公开对于作为示例的ddr存储器的类型不作限制,例如可以是符合ddr、ddr2、ddr3、ddr4或ddr5等版本存储器。例如,第一装置204发出的访问事务包括要访问的目的地址以及要进行的操作的类型,访问目的地址可以是ddr存储器的一段地址空间,操作类型例如可以是“读”操作或者是“写”操作。
42.例如,图2所示的每个mc模块可以代表一个第二装置205,第二装置205的数量可以是两个或者两个以上,每个第二装置可以用于管理ddr存储器的一部分存储空间;例如,不同的第二装置管理ddr存储器的不同部分存储空间,彼此不交叠。例如,ddr存储器可以包括n+1(n为正整数)个ddr(ddr0~ddrn),对应地,访问处理装置可以设置n+1个mc模块(mc0~mc3),每个mc模块用于管理一个ddr,多个ddr各自的存储空间的容量可以相同或不同,即各个mc模块管理的存储空间的容量可以相同或不同。例如,ddr存储器的容量为16gb,以四个mc模块为例(mc0~mc3),每个mc模块例如可以平均管理4gb,或者,其中的一个mc管理1gb,其余三个mc模块各自管理5gb,等等。以四个mc模块各自管理4gb为例,ddr存储器的存储空间对应的地址范围例如为:0x0_0000_0000~0x3_ffff_ffff,则四个mc模块mc0~mc3对应的地址范围可以分别为:
43.0x0_0000_0000~0x0_ffff_ffff;
44.0x1_0000_0000~0x1_ffff_ffff;
45.0x2_0000_0000~0x2_ffff_ffff;
46.0x3_0000_0000~0x3_ffff_ffff。
47.例如,第一互联模块201可以包括片上网络,即图2所示的noc模块。noc模块可以包括多个连接端口,连接端口之间可以通过网络拓扑结构连接,以实现连接端口之间的互联。多个功能模块可以耦接于noc模块的多个连接端口处,进而可以实现该多个功能模块之间的互联。与第一互联模块201耦接的多个模块之间可以存在访问关系,发起访问操作的功能模块可以称为主设备(master),接收并处理该访问操作的功能模块可以称为从设备
(slave)。
48.例如,图2所示的每个acc模块可以代表一个地址交织模块203,地址交织模块203的数量可以是一个或多个。例如,上述至少一个地址交织模块可以包括多个地址交织模块,即地址交织模块的数量为两个或两个以上,则该多个地址交织模块可以配置为分别处理对于第三装置的多个不同子地址空间的访问事务。例如,在地址交织模块203的数量为多个的情况下,每个地址交织模块203可以与ddr存储器的部分地址空间对应,例如,每个地址交织模块203对应的地址空间的容量可以相同或不同。第一互联模块201耦接各个地址交织模块203以及耦接各个第一装置204,第一装置204可以发起访问事务,并由第一互联模块201将第一装置204发起的访问事务发送至对应的地址交织模块203,以通过地址交织模块203对访问事务进行地址交织操作。
49.例如,第一互联模块201可以根据访问事务的目的地址以及每个地址交织模块203对应的ddr地址空间来确定将访问事务发送至哪个地址交织模块203。例如,在一些示例中,地址交织模块203的数量可以与ddr的数量一致,并且每个地址交织模块203可以分别配置为处理针对一个ddr的地址空间的访问事务。以四个地址交织模块(acc0~acc3)为例,地址交织模块acc0~acc3例如分别对应ddr0~ddr3的地址空间,地址交织模块acc0~acc3对应的访问事务的地址范围例如分别为:
50.0x0_0000_0000~0x0_ffff_ffff;
51.0x1_0000_0000~0x1_ffff_ffff;
52.0x2_0000_0000~0x2_ffff_ffff;
53.0x3_0000_0000~0x3_ffff_ffff。
54.在这一示例中,可以将第一互联模块201上分别与地址交织模块acc0~acc3连接的四个连接端口(node)分别配置为上述四个地址范围。若某一ip模块发起的访问事务的目的地址位于0x0_0000_0000~0x0_ffff_ffff之间,则第一互联模块201可以将该访问事务发送至地址交织模块acc0,并由地址交织模块acc0对该访问事务进行地址交织处理。
55.例如,在以上示例中,地址交织模块acc的数量与ddr的数量(即第二装置mc的数量)相同,均为四个,但是本公开并不限于此,在一些实施例中,地址交织模块的数量也可以与ddr的数量不同。例如,ddr的数量为四个的情况下,地址交织模块的数量可以是两个,每个地址交织模块与两个ddr的地址空间相对应。或者,地址交织模块的数量可以是一个,则该一个地址交织模块与ddr存储器的全部地址空间相对应,任一ip模块发起的针对ddr存储器的访问事务均经由第一互联模块发送至该一个地址交织模块203。
56.例如,对于地址交织模块执行的地址交织处理,可以通过把地址的高、低bit(比特)按照一定规则进行交换移位来达到地址交织的目的。在本公开的实施例中,可以根据实际需要,实现不同方式的交织,来达到最优效果,因此对于交织方式不作限定。
57.图3示出了本公开至少一实施例提供的地址交织的示意图。
58.如图3所示,可以将每个ddr的部分地址空间映射到其他ddr,以实现地址的交换移位。例如,ddr0的地址空间可以划分为若干个地址段a、b、c和d,并将至少部分地址段映射至其他ddr,例如,地址段a映射至ddr0中的地址段a’(地址段a’和地址段a可以相同或不同),地址段b映射至ddr1中的地址段b’,地址段c映射至ddr2中的地址段c’,地址段d映射至ddr3中的地址段d’。地址段映射前后的地址范围发生变化但是容量可以不变,例如地址段d和地
址段d’的容量相同(例如均为1g)。
59.例如,若地址交织模块acc0对应ddr0的地址空间,则ip模块发出的针对地址段a~d的访问事务会经由第一互联模块201发送至地址交织模块acc0,地址交织模块acc0可以对访问事务进行地址交织处理。地址交织模块acc0例如可以根据访问事务的目的地址(即地址段a~d)和地址交织模块acc0中配置的地址映射关系将该访问事务拆分为多个子访问事务。例如,将该访问事务拆分为四个子访问事务,其中,第一个子访问事务的目的地址变为a’,第二个子访问事务的目的地址变为b’,第三个子访问事务的目的地址变为c’,第四个子访问事务的目的地址变为d’。上述的地址映射关系仅为示例,以便于对本公开实施例进行解释和说明,具体的映射方式可以根据实际情况而定。
60.例如,每个地址交织模块203还与第二互联模块202耦接,并且第二互联模块202还与每个第二装置205耦接,第二互联模块202可以将地址交织模块203处理得到的各个子访问事务发送至与子访问事务的目的地址相对应的第二装置205。例如,沿用上述示例,第二互联模块202可以将第一子访问事务发送至mc0,以通过mc0访问ddr0中的地址段a’;将第二子访问事务发送至mc1,以通过mc1访问ddr1中的地址段b’;将第三子访问事务发送至mc2,以通过mc2访问ddr2中的地址段c’,将第四子访问事务发送至mc3,以通过mc3访问ddr3中的地址段d’。基于以上方式,将原本发往同一个mc模块的一个访问事务拆分为分别发往多个不同mc模块的多个子访问事务,利用多个mc模块对同一个访问事务进行处理,从而可以提高处理的效率,相当于增加访问ddr的带宽。
61.例如,第二互联模块不同于第一互联模块,即,二者不是同一个互联模块,或不属于同一个(更大的)互联模块。例如,第二互联模块的类型不同于第一互联模块的类型。在一些示例中,第二互联模块可以包括片上网络noc,图2所示的noc桥(bridge)可以理解为相对小型的noc网络,是一个多进多出的总线桥。在另一些示例中,第二互联模块可以包括交叉开关矩阵(crossbar),交叉开关矩阵的每一条输入链路和输出链路都有一个交叉点,在交叉点处由一个半导体开关连接输入链路和输出链路,通过控制半导体开关来完成输入到特定输出的转发。在另一些示例中,第二互联模块可以包括环形(ring)网络,环形网络中的节点首尾相连形成一个环状,各个模块之间交互方便,不需要主控中转,功能模块通过网络接口将信息送上环,消息在环上逐个节点进行传递,消息到达与目的功能模块连接的节点后被送下环,转到网络接口,进而传递给目的功能模块。基于这一方式,通过第一互联模块noc连接ip模块,可以实现众多ip模块与其他功能模块之间的复杂交互,由于acc模块与mc模块的数量相对较少,因而可以采用不同于第一互联模块的另一互联模块实现简单的互联,可以避免占用第一互联模块的资源,使ip模块与其他功能模块之间的交互更为顺畅。
62.根据本公开实施例的访问处理装置,通过将地址交织模块设置于第一互联模块的后边(第一互联模块与第二装置之间),并利用第一互联模块将各个第一模块发起的访问事务传输至与访问事务的目的地址相对应的地址交织模块进行处理。基于这一方式,可以无需针对每个第一装置均设置一个地址交织模块,而是可以设置任意数量的地址交织模块,使地址交织模块的数量设置更为灵活。例如,对于大型的芯片,第一装置的数目可达到几十上百个,采用本公开实施例的访问处理装置,可以把地址交织模块的数目例如降到个位数(具体数目可以根据实际情况而定),因此,相对于现有技术而言可以实现减少地址交织模块的数量的目的,进而可以减少芯片的面积、功耗以及设计和芯片验证的工作量。并且,本
公开实施例相对于现有技术将地址交织模块的位置后移,在地址交织模块之前的操作地址都是直观的,缩短了地址杂乱的路径,极大地提高了定位问题的效率。
63.例如,至少一个地址交织模块的数量大于或等于多个第二装置的数量。基于这一方式,可以使每个ddr至少对应一个地址交织模块,在减少地址交织模块的数量的基础上能够保证处理效率,不会因地址交织模块的数量过少而使访问事务被延误处理。
64.例如,对于大型的芯片,ip模块的数目能达到七八十个,mc模块的数目可以为多个,例如小于等于八个,若acc模块的数量与mc模块的数量一致,则acc模块的数量也可以控制在个位数,相比于针对每个ip模块设置一个acc模块的方案,本公开实施例可以将acc模块的数目降低为原来的1/10,并且能够基本满足访问任务的处理需求。在一定的数量范围内,访问事务的处理效率随着acc模块数量的增加而升高。
65.例如,如上所述,多个地址交织模块可以配置为分别处理对第三装置的多个不同子地址空间的访问事务。多个地址交织模块例如包括第一地址交织模块和第二地址交织模块,第一地址交织模块配置为处理对第三装置的第一子地址空间的访问事务,第二地址交织模块配置为处理对第三装置的第二子地址空间的访问事务。在一些示例中,第一子地址空间的容量相同或不同于第二子地址空间的容量,例如,第一子地址空间可以是2g,第二子地址空间可以是4g。
66.例如,第一地址交织模块和第二地址交织模块可以是多个地址交织模块中的任意两个地址交织模块,也就是说,至少两个地址交织模块对应的子地址空间的容量不同。例如,沿用上述示例,若0x0_0000_0000~0x0_ffff_ffff这段地址空间被访问的频次是其他三段地址空间的好几倍,那么可以使四个地址交织模块acc0~acc3分别配置为对应下面的地址空间:
67.0x0_0000_0000~0x0_7fff_ffff;
68.0x0_8000_0000~0x0_ffff_ffff;
69.0x1_0000_0000~0x2_7fff_ffff;
70.0x2_8000_0000~0x3_ffff_ffff。
71.这样,可以使地址交织模块acc0和地址交织模块acc1共同处理针对0x0_0000_0000~0x0_ffff_ffff这段地址空间的访问事务,平衡各个地址交织模块的负载。通过这样的地址分配,不同的地址交织模块管理的地址范围大小可以不同,可以更好地均衡每个地址交织模块的带宽,进而提升整体带宽。以上的地址分配方式仅为示例,以便于理解本公开实施例的方案,每个地址交织模块对应的地址空间可以根据实际需要进行配置,本公开不限于上述示例。
72.例如,多个地址交织模块配置为可调节多个地址交织模块分别对应的子地址空间的大小。例如,在一段时间内,地址交织模块acc0对应ddr0的全部地址空间(例如4g的空间),即地址交织模块acc0用于处理针对ddr0的全部地址空间的访问事务;在另一段时间内,可以使地址交织模块acc0调节为仅对应ddr0的部分地址空间(例如2g的空间),即将地址交织模块acc0调整为处理针对ddr0的部分地址空间的访问事务,在这一示例中,可以将ddr0的剩余部分地址空间(例如另外2g的空间)分配至其他地址交织模块(例如acc1),只要保证多个地址交织模块能够覆盖ddr存储器的全部存储空间即可。通过调节各个地址交织模块对应的子地址空间的大小,可以根据实际运行情况调节多个地址交织模块的负载,避
免出现一部分地址交织模块处理的访问事务过多而另一部分地址交织模块空闲的情况,实现多个地址交织模块之间的负载均衡。
73.例如,多个地址交织模块配置为可以根据各自的历史访问频次调节多个地址交织模块分别对应的子地址空间的大小。例如,在当前之前的一段时间内,若地址交织模块acc0的访问频次高于第一频次阈值(或者发送至该地址交织模块acc0的访问事务的数量超过数量阈值),可以将该地址交织模块acc0当前对应的子地址空间划分一部分地址段至其余一个或多个地址交织模块,例如可以将部分地址段划分至访问频次低于第二频次阈值的地址交织模块(第二频次阈值小于第一频次阈值),以减轻该被访问频次较高的地址交织模块acc0的负载,并增加较为空闲的地址交织模块的负载,实现负载均衡。再例如,在当前之前的一段时间内,若地址交织模块acc0的访问频次高于其余地址交织模块(例如acc1~acc3)的访问频次并且地址交织模块acc0的访问频次与其余地址交织模块的访问频次的差值均大于某一阈值,则可以将该地址交织模块acc0当前对应的子地址空间划分一部分地址段至其余一个或多个地址交织模块,以减轻该地址交织模块acc0的负载。根据历史访问频次调节多个地址交织模块分别对应的子地址空间,可以准确地平衡各个地址交织模块的访问频次,进而平衡各个地址交织模块的负载,提升整体带宽。
74.例如,每个地址交织模块配置为根据各自的交织配置规则进行地址交织处理。例如,交织配置规则包括交织地址范围和/或交织粒度,交织地址范围用于限制至少一个地址交织模块处理得到的每个子访问事务的访问地址空间的地址范围,交织粒度用于限制至少一个地址交织模块处理得到的每个子访问事务的访问地址空间的大小。
75.例如,参见图3,交织地址范围可以是指地址交织模块的地址映射范围,使地址交织模块处理得到的子访问事务的目的地址空间不能超过这一地址范围。例如,地址交织模块acc0配置为处理关于ddr0的访问事务,并且可以将ddr0的地址空间映射至全部四个ddr的地址空间,那么可以理解为该地址交织模块acc0可以在ddr存储器的全部ddr的范围内进行地址交织操作,也即该地址交织模块acc0可以将接收的访问事务在全部mc范围内进行分发。再例如,若地址交织模块acc0仅可以将ddr0的地址空间映射至其本身(ddr0)以及ddr1,那么可以理解为该地址交织模块acc0仅可以在ddr0~ddr1的地址范围内进行地址交织操作,也即该地址交织模块acc0仅可以将接收的访问事务在mc0~mc1范围内进行分发。
76.例如,交织粒度用于限制地址交织模块处理得到的子访问事务的目的地址空间的容量。交织粒度例如可以为512b、1kb或者4kb等等。例如,若地址交织模块acc0的交织粒度为4kb,图3所示的各个地址段(a~b)的大小可以为4kb,则地址交织模块acc0处理得到的各个子访问事务对应的地址空间均不大于4kb。
77.例如,在一些实施例中,多个交织模块包括第一地址交织模块和第二地址交织模块,第一地址交织模块的交织配置规则相同或不同于第二地址交织模块的交织配置规则。第一地址交织模块和第二地址交织模块可以是多个地址交织模块中的任意两个地址交织模块,也就是说,至少两个地址交织模块的交织配置规则不同。例如,第一地址交织模块的地址范围相同或不同于第二地址交织模块的地址范围,和/或第一地址交织模块的交织粒度相同或不同于第二地址交织模块的交织粒度。基于这一方式,可以使不同的地址交织模块配置为不同的交织规则,每个地址交织模块灵活配置,以满足实际需求,例如满足soc中不同ip模块的需求,也便于地址的管理。
78.例如,本公开至少一实施例的访问处理装置可以应用于晶粒间连接(die-to-die,d2d)的情形。对于晶粒间连接模式,是将芯片分成多个较小的die(晶粒),这些晶粒封装在多芯片模块中,在多芯片模块中,多个晶粒之间通过晶粒间连接进行互联。本公开至少一实施例的访问处理装置可以应用于这种涉及不同芯片之间的操作的情形,例如可以用于一个芯片中的ip模块访问另一芯片中的ddr存储器的情形,或者第一互联模块和第二互联模块位于不同芯片中的情形,等等。
79.本公开的至少一个实施例还提供了一种访问处理方法。图4示出了本公开至少一实施例提供的一种访问处理方法的流程图。
80.如图4所示,该访问处理方法可以包括步骤s310~s330。
81.步骤s310:通过第一互联部件将第一装置发送的对于第三装置的访问事务传输至至少一个地址交织模块中与访问事务对应的地址交织模块。
82.步骤s320:通过该至少一个地址交织模块对从第一互联模块接收的访问事务进行地址交织处理,并将处理得到的多个子访问事务发送至第二互联模块。
83.步骤s330:通过第二互联部件将多个子访问事务分别发送至多个第二装置中与多个子访问事务对应的一个或多个,以通过多个第二装置对第三装置进行访问,该至少一个地址交织模块分别耦接在第一互联模块和第二互联模块之间。
84.需要说明的是,本公开的实施例中,访问处理方法与前述的访问处理装置中各个模块的信息传输和处理操作相对应,关于访问处理方法的具体功能可以参考关于访问处理装置的相关描述,此处不再赘述。图4所示的访问处理方法的步骤只是示例性的,而非限制性的,根据需要,该访问处理方法还可以包括其他步骤。
85.例如,第一互联模块包括片上网络;第二互联模块包括片上网络、交叉开关矩阵或环形总线。
86.例如,该至少一个地址交织模块的数量大于或等于多个第二装置的数量。
87.例如,该至少一个地址交织模块包括多个地址交织模块。步骤s320可以进一步包括:通过该多个地址交织模块分别处理对第三装置的多个不同子地址空间的访问事务。
88.例如,多个地址交织模块包括第一地址交织模块和第二地址交织模块。步骤s320可以进一步包括:通过第一地址交织模块处理对第三装置的第一子地址空间的访问事务,通过第二地址交织模块处理对第三装置的第二子地址空间的访问事务,第一子地址空间的容量相同或不同于第二子地址空间的容量。
89.例如,访问处理方法还包括:调节多个地址交织模块分别对应的子地址空间的大小。
90.例如,调节多个地址交织模块分别对应的子地址空间的大小,包括:根据多个地址交织模块各自的历史访问频次调节多个地址交织模块分别对应的子地址空间的大小。
91.例如,步骤s320可以进一步包括:通过每个地址交织模块根据各自的交织配置规则进行地址交织处理。该至少一个地址交织模块包括第一地址交织模块和第二地址交织模块,第一地址交织模块的交织配置规则相同或不同于第二地址交织模块的交织配置规则。
92.例如,交织配置规则包括交织地址范围和/或交织粒度,交织地址范围用于限制该至少一个地址交织模块处理得到的每个子访问事务的访问地址空间的地址范围,交织粒度用于限制该至少一个地址交织模块处理得到的每个子访问事务的访问地址空间的大小。
93.本公开的至少一个实施例还提供了一种处理设备。图5示出了本公开至少一实施例提供的一种处理设备的框图。
94.如图5所示,该处理设备400包括访问处理装置410,以及至少一个第一装置420、多个第二装置430和第三装置440。
95.例如,访问处理装置410可以为上述任一实施例所述的访问处理装置,访问处理装置410可以包括第一互联模块、第二互联模块和至少一个地址交织模块。
96.该第一装置、第二装置、第三装置和访问处理装置各自的功能以及相互之间的连接关系和数据传输关系可以参见图2以及上述关于相应内容的描述,在此不再赘述。
97.本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的访问处理方法的指令。该电子设备可以使地址交织模块的数量设置更为灵活,可以实现减少地址交织模块的数量的目的,并且可以提高定位问题的效率。
98.图6为本公开一些实施例提供的一种电子设备的示意框图。如图6所示,该电子设备500包括处理器510和存储器520。
99.存储器520用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器510用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器510运行时可以执行上文所述的访问处理方法中的一个或多个步骤。存储器520和处理器510可以通过总线系统和/或其它形式的连接机构(未示出)互连。
100.例如,处理器510可以是中央处理单元(cpu)、图形处理单元(gpu)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(cpu)可以为x86或arm架构等。处理器510可以为通用处理器或专用处理器,可以控制电子设备500中的其它组件以执行期望的功能。
101.例如,存储器520可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器510可以运行一个或多个计算机程序模块,以实现电子设备500的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
102.需要说明的是,本公开的实施例中,电子设备500的具体功能和技术效果可以参考上文中关于访问处理方法和访问处理装置的描述,此处不再赘述。
103.图7为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备600例如适于用来实施本公开实施例提供的访问处理方法。例如,电子设备600可以是终端设备、服务器、云设备等。需要注意的是,图7示出的电子设备600仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
104.如图7所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)610,其可以根据存储在只读存储器(rom)620中的程序或者从存储装置680加载到随机访问
存储器(ram)630中的程序而执行各种适当的动作和处理。在ram 630中,还存储有电子设备600操作所需的各种程序和数据。处理装置610、rom 620以及ram630通过总线640彼此相连。输入/输出(i/o)接口650也连接至总线640。
105.通常,以下装置可以连接至i/o接口650:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置660;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置670;包括例如磁带、硬盘等的存储装置680;以及通信装置690。通信装置690可以允许电子设备600与其他电子设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备600,但应理解的是,并不要求实施或具备所有示出的装置,电子设备600可以替代地实施或具备更多或更少的装置。
106.例如,根据本公开的实施例,上述访问处理方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述访问处理方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置690从网络上被下载和安装,或者从存储装置680安装,或者从rom 620安装。在该计算机程序被处理装置610执行时,可以实现本公开实施例提供的访问处理方法中限定的功能。
107.本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的访问处理方法。利用该计算机可读存储介质,可以使地址交织模块的数量设置更为灵活,可以实现减少地址交织模块的数量的目的,并且可以提高定位问题的效率。
108.图8为本公开一些实施例提供的一种存储介质的示意图。如图8所示,计算机可读存储介质700用于存储非暂时性计算机可读指令710。例如,当非暂时性计算机可读指令710由计算机执行时可以执行根据上文所述的访问处理方法中的一个或多个步骤。
109.例如,该计算机可读存储介质700可以应用于上述电子设备500中。例如,存储介质700可以为图6所示的电子设备500中的存储器520。例如,关于存储介质700的相关说明可以参考图6所示的电子设备500中的存储器520的相应描述,此处不再赘述。
110.有以下几点需要说明:
111.(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
112.(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
113.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1