总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法与流程

文档序号:17534456发布日期:2019-04-29 13:50阅读:337来源:国知局
总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法与流程

本发明涉及总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法。



背景技术:

近年,以服务器等为首的信息处理系统例如使用应用不同的总线规格的多个半导体集成电路、电路基板。在这些应用不同的总线规格的半导体集成电路等中,例如也存在难以将第一总线规格的信息转载为与第一总线规格不同的第二总线规格的信息的情况。

具体而言,在axi(注册商标)(advancedextensibleinterface:先进可扩展接口)规格的soc(systemonachip:片上系统)中,例如为了在os(operatingsystem:操作系统)的共用资源的确保、保证软件顺序,在soc内安装存储器访问的排他控制。

即,迫切期望在使用搭载了多个cpu(centralprocessingunit:中央处理器)的soc执行一个os的情况下,或者,在即使是不同的os也确保共用资源的情况下等,想要越过芯片(半导体集成电路等)安装排他控制。然而,即使在想要越过这样的芯片进行排他控制的情况下,也有在这些应用不同的总线规格的芯片间未预先设置排他控制的传输功能的情况。

这里,axi(注册商标)例如与ahb(注册商标)(advancedhigh-performancebus:高级高性能总线)以及apb(注册商标)(advancedperipheralbus:高级外设总线)一起,包含于作为片上互联规格的通称的amba(注册商标)(advancedmicrocontrollerbusarchitecture:高级微控制器总线架构)。另外,作为amba以外的规格,例如已知有ocp(opencoreprotocol:开放内核协议)、pif(processorinterface:处理器接口)等。

然而,以往,例如作为多处理器系统中的排他控制,进行了各种提案。

专利文献1:日本特开平06-110844号公报

专利文献2:日本特开平08-161228号公报

如上述那样,有在应用不同的总线规格的芯片间,未预先设置排他控制的功能的情况。例如,在应用广泛地普及的pcie(注册商标)(peripheralcomponentinterconnectexpress:外围组件高速互联)规格的半导体集成电路等与应用axi规格的soc之间,未预先准备排他控制的传输机构。

这样的未设置应用不同的总线规格的半导体集成电路、电路基板等之间的排他控制的传输功能的情况在应用其它的各种总线规格的半导体集成电路、电路基板等中间也相同。



技术实现要素:

这里,本发明并不限定于pcie规格与axi规格之间的排他控制的传输,当然也能够应用于应用各种总线规格的半导体集成电路、电路基板等之间的排他控制的传输。即,本发明例如也能够应用于pcie的半导体集成电路等与axi、ahb以及apb等amba或者ocp或者pif的半导体集成电路等之间的排他控制的传输。

根据一实施方式,提供对具有第一格式的与排他访问对应的第一总线规格的第一排他指令、和具有适合与上述第一总线规格不同,且不与排他访问对应的第二总线规格的第二格式的上述第一总线规格的第二排他指令进行相互转换,进行上述第一总线规格以及上述第二总线规格之间的排他指令的传输的总线控制电路。上述总线控制电路具有排他指令转换电路、排他指令生成电路、排他响应发行电路、以及排他响应接收电路。

上述排他指令转换电路在从上述第一排他指令向上述第二排他指令的转换时,接受上述第一排他指令,转换为上述第二排他指令并输出,上述排他指令生成电路在从上述第二排他指令向上述第一排他指令的转换时,接受上述第二排他指令并生成上述第一排他指令。

上述排他响应发行电路在从上述第二排他指令向上述第一排他指令的转换时,发行针对上述第二排他指令的排他响应信息,上述排他响应接收电路在从上述第一排他指令向上述第二排他指令的转换时,接受针对上述第二排他指令的排他响应信息。

公开的总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法起到即使在不同的规格的总线间也能够进行排他访问的传输这样的效果。

附图说明

图1是表示本实施方式所涉及的信息处理装置的一个例子的框图。

图2是表示分别设置在图1所示的信息处理装置中的半导体集成电路的总线控制电路的一个例子的框图。

图3是用于说明图1所示的信息处理装置中的使用pcie的数据包的tlp报头发送排他指令的例子的图。

图4是用于说明axi的基本构成的图(其一)。

图5是用于说明axi的基本构成的图(其二)。

图6是用于说明axi中的信号的例子的图。

图7是用于说明axi中的排他访问的一个例子的图。

图8是用于说明在axi中使用的响应的图。

图9是用于说明axi中的排他访问的动作的图。

图10是用于说明图1所示的信息处理装置中的读访问动作的一个例子的图。

图11是用于说明图10所示的信息处理装置中的排他读访问动作的一个例子的图。

图12是用于说明图1所示的信息处理装置中的写访问动作的一个例子的图。

图13是用于说明图12所示的信息处理装置中的排他写访问动作的一个例子的图。

图14是用于说明图10以及图11所示的信息处理装置中的排他读访问动作的其它的例子的图。

图15是表示本实施方式所涉及的信息处理装置的其它的例子的框图。

图16是用于说明图2所示的总线控制电路中的读通道的排他指令转换模块的一个例子的图。

图17是用于说明图2所示的总线控制电路中的写通道的排他指令转换模块的一个例子的图。

图18是用于说明图2所示的总线控制电路中的排他响应接收模块的一个例子的图。

图19是用于说明图2所示的总线控制电路中的读通道的排他指令生成模块的一个例子的图。

图20是用于说明图2所示的总线控制电路中的写通道的排他指令生成模块的一个例子的图。

图21是用于说明图2所示的总线控制电路中的写通道的排他响应发行模块的一个例子的图。

图22是用于说明参照图1以及图2说明的信息处理装置中的包含st位[7:0]的报头信息的生成/复原方法的图(其一)。

图23是用于说明参照图1以及图2说明的信息处理装置中的包含st位[7:0]的报头信息的生成/复原方法的图(其二)。

具体实施方式

以下,参照附图对本实施方式所涉及的总线控制电路、半导体集成电路、电路基板、信息处理装置以及总线控制方法的实施例进行详述。图1是表示本实施方式所涉及的信息处理装置的一个例子的框图。在图1中,参照符号100表示soc(半导体集成电路),200表示pcie(注册商标)总线。

在图1中,作为一个例子,利用pcie总线(pcie)200连接axi(注册商标)规格的两个soc(soc#0,soc#1)100,但soc100的数目并不限定于两个,另外,soc100的规格并不限定于axi。并且,连接多个soc100的总线也并不限定于pcie200。

此外,soc100既能够作为一个半导体集成电路(芯片)形成,或者也能够作为多个芯片形成。另外,在图1中,电路基板300由soc100(控制器)以及存储器101形成,并通过多个电路基板300形成信息处理装置(例如,服务器装置),但本实施方式能够广泛地应用于各种构成。

如图1所示,各电路基板300包含soc100以及存储器(例如,ddr(double-data-rate)memory:双倍数据速率存储器)101。此外,电路基板300也可以包含其它的各种芯片(半导体集成电路)。soc100包含总线控制电路(排他访问电路)1、cpu102、内部连接电路(interconnect:互联)103、存储器连接电路(104、105)、外部连接电路(106、107)以及各种ip(ip(intellectualproperty)核、ip宏)108。

存储器连接电路例如包含控制与存储器(ddrmemory)101的连接的存储器控制电路(ddrcontroller)104、以及存储器101的接口ip宏(ddrphy)105。外部连接电路例如包含控制经由pcie200与其它的soc100(电路基板300)的连接(链接)的链接控制电路(pcielink)106、以及pcie200的接口ip宏(pcie的物理层:pciephy)107。

内部连接电路103例如基于axi规格,在cpu102与存储器控制电路(ddrcontroller)104、总线控制电路1以及ip宏108之间进行信号(数据以及指令)的交接。此外,cpu102、存储器控制电路104以及ip宏108等形成axi规格(内部总线规格)的内部电路。这里,总线控制电路1接受内部连接电路103的axi规格的信号进行转换,并经由外部连接电路(链接控制电路106以及pcie的物理层107)输出给pcie(外部总线)200。另外,总线控制电路1对从pcie200经由外部连接电路(106、107)输入的信号进行转换,并输出给axi规格的内部连接电路103(cpu102、存储器控制电路104以及ip宏108等)。

总线控制电路1包含排他指令转换模块a-1、排他响应发行模块a-2、排他指令生成模块b-1、以及排他响应接收模块b-2,并设置在各个soc100。

这里,在从一方的soc#0经由pcie200向另一方的soc#1输出排他指令时(从soc#0向soc#1的排他访问发行时),各个soc100中模块a-1、a-2、b-1、b-2如以下那样进行动作。在一方的soc#0中,a-1以及b-2打开(激活)且a-2以及b-1关闭(去激活),在另一方的soc#1中,a-1以及b-2关闭且a-2以及b-1打开。

此外,排他访问是指例如包含在soc#0和soc#1共享某个资源(存储器等)的情况下,在soc#0访问该共享资源的特定部分(存储器的特定地址等)的期间,使soc#1不能够访问该共享资源的特定部分,从而保持该共享资源的匹配性的排他控制的访问。另外,排他指令是指要求该排他访问的指令,例如包含排他读指令和排他写指令。

另一方面,通常访问例如是指不包含上述排他控制的访问。另外,通常指令是指要求该通常访问的指令,例如包含通常读指令和通常写指令。

图2是表示分别设置在图1所示的信息处理装置中的半导体集成电路的总线控制电路的一个例子的框图。如图2所示,在各半导体集成电路(soc#0、soc#1)100中,总线控制电路(pcieexclusiveaccessunit:排他访问单元)1包含将信号从内部连接电路103转换给与pcie200连接的外部连接电路106、107的第一转换部(interconnecttopciebusbridge:互联到pcie总线桥)11。并且,总线控制电路1包含将信号从与pcie200连接的外部连接电路106、107转换给内部连接电路103的第二转换部(pcietointerconnectbusbridge:pcie互联总线桥)12。

第一转换部11接受来自内部连接电路103的排他指令进行转换,并输出给与pcie200连接的外部连接电路106、107,包含指令转换模块a-1、排他响应发行模块a-2、以及选择器10。

这里,指令转换模块a-1例如是从内部连接电路103接受具有适合半导体集成电路100内部的排他控制的格式的axi规格的排他指令,转换为具有适合pcie规格的其它格式的axi规格的排他指令并输出给外部连接电路106、107的电路。

另外,排他响应发行模块a-2例如是从排他指令生成模块b-1接受来自内部连接电路103的axi规格的排他指令所包含的排他响应信息,并将适合pcie规格的排他响应信息发行给外部连接电路106、107的电路。此外,选择器10是选择指令转换模块a-1或者排他响应发行模块a-2的输出,输出给pcie200的电路。

第二转换部12接受来自pcie200的排他指令进行转换,并输出给内部连接电路103,包含排他指令生成模块b-1以及排他响应接收模块b-2。

这里,排他指令生成模块b-1例如是从与pcie200连接的外部连接电路106、107接受具有适合pcie规格的格式的axi规格的排他指令,生成具有适合半导体集成电路100内部的排他控制的其它格式的axi规格的排他指令并输出给内部连接电路103的电路。另外,排他响应接收模块b-2是从外部连接电路106、107接受发行到pcie200的针对排他指令的排他响应信息,并输出给a-1的电路。

接下来,参照图3~图9,对应用pcie(注册商标)以及axi(注册商标)作为在本实施方式中对排他访问进行转换的不同的两种总线规格的情况下的例子进行说明,其后,参照图10~图23,详述本实施方式。

图3是用于说明图1所示的信息处理装置中的使用pcie的数据包的tlp报头发送排他指令的例子的图,是用于说明输入axi的misc信号的情况的图。这里,misc信号例如是axi中能够由用户定义的用户信号,是能够为了传输各种(miscellaneous)信息而使用的信号。此外,图3示出pcie的数据包的tlp(transactionlayerpacket:事务层数据包)报头中的存储器写入要求报头(memorywriterequestheader)、及存储器读出以及原子操作要求报头(memoryreadandatomicoprequestheaders)。

如参照图1所说明的那样,例如在从一方的soc#0向另一方的soc#1的排他访问发行时,在soc#0中,模块a-1以及b-2打开,在soc#1中,a-2以及b-1打开。这里,pcie的tlp报头具有图3所示那样的构成,例如使用对用户开放的th(tlpprocessinghintpresent:tlp处理提示存在)位、st[7:0]字段以及ph(processinghint:处理提示)位进行排他访问的转换。此外,在本说明书中,例如对使用tlp报头作为编入axi的排他指令的pcie的位字段的例子进行说明,但这只是一个例子,能够使用pcie规格中的各种位字段。

即,在soc#0中,作为axi的misc信号的向pcie的输入,对pcie的tlp报头中的th位、st[7:0]字段以及ph位进行处理。soc#0的外部连接电路106、107基于axi的misc信号的位信息,生成pcie的tlp报头中的th位、st[7:0]字段以及ph位。misc信号例如包含后述的axi的aruser[x:0]和awuser[x:0]。

另外,在soc#1中,作为pcie的tlp报头中的th位、st[7:0]字段以及ph位的向axi的输入,对axi的misc信号进行处理。这里,soc#1的外部连接电路106、107基于pcie的tlp报头中的th位、st[7:0]字段以及ph位的位信息,生成axi的misc信号。misc信号例如包含后述的axi的aruser[x:0]和awuser[x:0]。

此外,作为misc信号输入进行处理的位并不限定于pcie的tlp报头中的th位、st[7:0]字段以及ph位,也可以使用对用户开放的其它的位。并且,排他访问的转换所使用的位当然并不限定于tlp报头中的位。

图4以及图5是用于说明axi的基本构成的图。如图4(a)所示那样,axi包含读出用的读地址(ar)通道“readaddresschannel”以及读数据(r)通道“readdatachannel”。并且,axi包含写入用的写地址(aw)通道“writeaddresschannel”、写数据(w)通道“writedatachannel”以及写响应(b)通道“writeresponsechannel”。即,axi包含五个通道。

图4(b)是用于说明axi中的读出动作的图,图4(c)是用于说明axi中的写入动作的图。此外,在图4(b)以及图4(c)中,例如假定图1的soc#0中的cpu102作为“aximaster”,并假定图1的soc#1中的存储器(ddrmemory)101作为“axislave”。

另外,在“aximaster”与“axislave”之间夹有soc#0中的内部连接电路103、总线控制电路1以及外部连接电路106、107、pcie200、及soc#1中的外部连接电路106、107以及内部连接电路103等。

如图4(b)所示那样,在从“aximaster”读出“axislave”(soc#1中的存储器101)的数据的情况下,使用图4(a)所示的ar以及r。另外,如图4(c)所示,在从“aximaster”向“axislave”写入数据的情况下,使用图4(a)所示的aw、w以及b。

如图5所示,作为事务的动作,各通道包含有效(valid)/就绪(ready)/传送的信息(information)的信号,并利用valid/ready的握手交接信息。这里,clk表示时钟。

首先,发送侧声明信息和表示该信息有效的valid信号(图5的t1),接收侧为了表示能够接受该有效的信息而声明ready。例如,在valid以及ready均为高电平“h”时的时钟边缘握手成立。此外,发送侧到图5的t2为止,保持information和valid。这样一来,信息的交接完成。

图6是用于说明axi中的信号的例子的图。在本实施方式中,例如使用被粗框包围的信号arlock[1:0]、aruser[x:0]、rresp[1:0]、awlock[1:0]、awuser[x:0]以及bresp[1:0]。这里,arlock[1:0]是表示原子访问,并指定通常/排他/锁定访问的信号(仅axi3(axi的版本3)),aruser[x:0]是用户信号,是能够由用户进行定义的信号,且为上述的misc信号之一。另外,rresp[1:0]是表示读出响应(读响应),且示出读转送的结果状态的信号。此外,[x:0]表示任意的位宽。

并且,awlock[1:0]是表示原子访问,并指定通常/排他/锁定访问(仅axi3)的信号,awuser[x:0]是用户信号,是能够由用户进行定义的信号,且为上述的misc信号之一。另外,bresp[1:0]是表示写入响应(写响应),并示出写转送的结果状态的信号。

图7是用于说明axi中的排他访问的一个例子的图。如图7(a)所示,两位的信号axlock[1:0]的值“00”、“01”、“10”以及“11”分别表示“通常访问”、“排他访问”、“锁定访问”以及“预约完毕(reserved)”。此外,axlock[1:0]表示arlock[1:0]以及awlock[1:0]双方。另外,在axi4(axi的版本4)中删除axlock[1:0]的值“10”。

图7(b)示出主机0(master0:例如soc#0的cpu102)对从机0(slave0:例如soc#0的存储器101)的访问、和主机1(master1:例如soc#1的cpu102)对从机0的访问竞争的情况。此外,从机1(slave1)例如与soc#1的存储器101对应。

如图7(b)所示,例如在主机0以及主机1对特定的地址(soc#0的存储器101)的访问竞争的情况下,例如能够通过信号量型的处理实现排他访问。这里,排他访问的实现要求对从机0(soc#0的存储器101)设置排他访问监视器。这里,图7(b)所示的slave0的排他访问监视器监视访问slave0的地址,例如,在从master0对slave0的排他访问中,master1能够对slave0的其它的地址进行访问。

图8是用于说明在axi中使用的响应的图。如图8所示,例如在axi使用的应答(响应)对于两位的rresp[1:0]以及bresp[1:0]的值“00”、“01”、“10”以及“11”,有“okay”、“exokay”、“slverr”以及“decerr”四个种类。

这里,“okay”表示通常访问成功或排他访问失败,“exokay”表示排他读出,或者,排他写入的任意一个成功,而且,“slverr”表示从机错误,表示从从机向主机的错误通知。另外,“decerr”表示解码错误,表示访问目的地的地址不存在从机,通常由因特网连接生成。

即,在写(写入)的情况下,对脉冲整体,返回一个响应,另外在读(读出)的情况下,对脉冲内的每个数据转送返回响应。这里,要求能够按照数据转送返回不同的响应,另外即使在中途产生错误,也进行要求的次数的转送。

图9是用于说明axi中的排他访问的动作的图。这里,在排他访问的动作中,基本为信号量访问(读·修改·写)。

如图9(a)所示,若主机实施排他读(arlock[0:1]=“01”),则排他监视器保存地址和id,从机以“exokay”返回读数据。此外,不与排他访问对应的从机能够通过返回“okay”,通知与主机非对应。

如图9(b)所示,若主机实施数据的修改(modify),则在该期间,排他监视器监视信号量区域是否未被其它的主机改写。此外,排他监视器只要不产生从其它的主机(id)的写入,或者向其它的地址的排他读则继续进行监视。

如图9(c)所示,若主机对更新后的数据进行排他写(awlock[0:1]=“01”),则若排他监视器监视相同的地址中,则保证排他性,所以实施写,并返回“exokay”。另外,若排他监视器不为监视该地址中,则不能够保证排他性,所以不进行写动作并返回“okay”。

然而,由于在pcie未设置排他控制的功能,所以例如在通过pcie连接应用了axi的两个soc#0与soc#1的系统(信息处理装置)中,难以进行适当的排他控制。

图10是用于说明图1所示的信息处理装置中的读访问动作的一个例子的图。图11是用于说明图10所示的信息处理装置中的排他读访问动作的一个例子的图,是用于说明排他读访问动作中的axi指令的转换的图。

在图10以及图11中,在soc#0以及soc#1的内部使用于指令、各种信息的交接的总线为axi,与排他读访问对应,另一方面在soc#0与soc#1之间使用于指令、各种信息的交接的总线为pcie,不与排他读访问对应。此外,在图11中,“xxxx”表示读数据,“yy”表示排他响应。另外,作为misc信号,使用aruser[x:0](例如,排他访问=“1”)。

如图10以及图11所示,首先,从soc#0的cpu102(cpu#0)发行排他读访问(排他读指令)(处理s1),并通过排他指令转换模块a-1保持排他读指令(处理s2:ararlock=“01”)。接下来,通过a-1,在axi的misc信号设置排他读信息(处理s3:araruser=“1”)。然后,从a-1例如对soc#0的外部连接电路(链接控制电路106以及pciephy107:pcie#0)发行通常读指令(带misc信号)(处理s4:ararlock=“00”,aruser=“1”)。

然后,从pcie#0(soc#0的外部连接电路)向pcie#1(soc#1的外部连接电路)发行在报头信息包含排他控制信息的读指令(处理s5),并从pcie#1向排他指令生成模块b-1发行通常读指令(带misc信号)(处理s6:ararlock=“00”,aruser=“1”)。然后,通过b-1保持通常读指令(带misc信号)(处理s7),并根据misc信号的排他读信息生成排他读指令(处理s8)。

接下来,从b-1向soc#1的存储器101(ddr#1)发行排他读指令(处理s9:ararlock=“01”),ddr#1发行排他读响应(处理s10),然后,通过b-1保持排他读响应(处理s11:rrdata=“xxxx”,rresp=“yy”)。

然后,从b-1向pcie#1输出读数据(readdata)作为通常读指令的响应(处理s12:rrdata=“xxxx”,rresp=“00”),并从b-1,基于保持的排他读响应,向排他响应发行模块a-2发行表示为排他读响应的识别信息(排他读响应信息)(处理s13:rrresp=“yy”)。然后,通过a-2,向pcie#1发行将排他读响应信息作为写数据(writedata)的通常写指令,pcie#1接受通常写指令,并向a-2发行表示通常写的成功的响应(处理s14:awawlock=“00”,wwdata=“yy”,bbresp=“00”)。

然后,从pcie#1向pcie#0转送读数据(readdata)/写数据(writedata)(处理s15),并从pcie#0向a-1转送针对通常读指令的读数据(处理s16:rrdata=“xxxx”,rresp=“00”)。然后,从pcie#0向排他响应接收模块b-2发行将排他读响应信息作为写数据的通常写指令,b-2接受通常写指令,并向pcie#0发行表示通常写的成功的响应(处理s17:awawlock=“00”,wwdata=“yy”,bbresp=“00”)。然后,从b-2向a-1转送排他读响应信息(处理s18:wwdata=“yy”),通过a-1合并读数据/排他读响应信息,将排他读响应转送给cpu#0(处理s19:rrdata=“xxxx”,rresp=“yy”)。

如以上那样,例如,能够实现经由未准备排他读功能的pcie连接的两个具有排他读功能的axi规格的半导体集成电路(soc)间的排他读处理。即,即使在不同的规格的总线间也能够进行排他访问的传输。

图12是用于说明图1所示的信息处理装置中的写访问动作的一个例子的图。图13是用于说明图12所示的信息处理装置中的排他写访问动作的一个例子的图,是用于说明排他写访问动作中的axi指令的转换的图。

在图12以及图13中,在soc#0以及soc#1的内部使用于指令、各种信息的交接的总线为axi,与排他写访问对应,另一方面在soc#0与soc#1之间使用于指令、各种信息的交接的总线为pcie,不与排他写访问对应。此外,在图13中,“xx”表示写数据,“yy”表示排他响应。另外,作为misc信号,使用awuser[x:0](例如,排他访问=“1”)。

如图12以及图13所示,首先,从cpu#0(soc#0的cpu102)发行排他写访问(排他写指令)(处理s21),并通过排他指令转换模块a-1保持排他写指令(处理s22:awawlock=“01”,wwdata=“xx”)。接下来,通过a-1,在axi的misc信号设置排他写信息(处理s23)。然后,从a-1,例如对pcie#0(soc#0的外部连接电路106、107)发行通常写指令(带misc信号)(处理s24:awawlock=“00”,awuser=“1”,wwdata=“xx”)。

然后,从pcie#0向pcie#1发行在报头信息包含排他控制信息的写指令(处理s25),并从pcie#1向排他指令生成模块b-1发行通常写指令(带misc信号),b-1接受通常写指令(带misc信号),并向pcie#1发行表示接受成功的响应(处理s26:awawlock=“00”,awuser=“1”,wwdata=“xx”,bbresp=“00”)。然后,通过b-1保持通常写指令(带misc信号)(处理s27),并根据misc信号的排他写信息生成排他写指令(处理s28)。

接下来,从b-1向ddr#1(soc#1的存储器101)发行排他写指令(处理s29:awawlock=“01”,wwdata=“xx”),ddr#1发行排他写响应(处理s30),然后,通过b-1保持排他写响应(处理s31:bbresp“yy”)。

然后,从b-1基于保持的排他写响应,向排他响应发行模块a-2发行表示为排他写响应的识别信息(排他写响应信息)(处理s32:bbresp“yy”),并通过a-2,向pcie#1发行将排他写响应信息作为写数据(writedata)的通常写指令,pcie#1接受通常写指令,并向a-2发行表示通常写的成功的响应(处理s33:awawlock=“00”,wwdata=“yy”,bbresp=“00”)。

然后,从pcie#1向pcie#0转送写数据(处理s34),并从pcie#0向排他响应接收模块b-2发行将排他写响应信息作为写数据的通常写指令,b-2接受通常写指令,并向pcie#0发行表示通常写的成功的响应(处理s35:awawlock=“00”,wwdata=“yy”,bbresp=“00”)。然后,从b-2向a-1转送排他写响应信息(处理s36),并通过a-1向cpu#0转送排他写响应(处理s37:bbresp=“yy”)。

如以上那样,例如能够实现经由未准备排他写功能的pcie连接的两个具有排他写功能的axi规格的半导体集成电路(soc)间的排他写处理。即,即使在不同的规格的总线间也能够进行排他访问的传输。

图14是用于说明图10以及图11所示的信息处理装置中的排他读访问动作的其它的例子的图,是用于说明不使用axi的misc信号而进行排他读访问动作的例子的图。

根据图14与上述的图11的比较可知,在不使用misc信号进行排他读访问动作的本变形例中,除了图11所示的处理s1~s19之外,还设置处理s4'以及s6'。

即,与从排他指令转换模块a-1对pcie#0发行通常读的处理s4(ararlock=“00”,aruser=“1”)一起,进行处理s4'。在处理s4'中,例如通过使awawlock=“00”,wwdata=“1”,从a-1对pcie#0发行排他读信息作为axi的通常写指令。然后,pcie#0接受通常写指令,并向a-1发行表示接受成功的响应。

并且,与从pcie#1向排他指令生成模块b-1发行通常读的处理s6(ararlock=“00”,aruser=“1”)一起,进行处理s6'。在处理s6'中,例如通过使awawlock=“00”,wwdata=“1”,从pcie#1对b-1发行排他读信息作为axi的通常写指令,b-1接受通常写指令,并向pci#1发行表示接受成功的响应。

然后,b-1根据通常读指令(处理s6)和排他读信息的通常写指令(处理s6'),生成axi的排他读指令。同样地,也能够不使用misc信号而实现排他写访问动作。这样,能够不使用pcie的misc信号而实现排他访问处理。

图15是表示本实施方式所涉及的信息处理装置的其它的例子的框图,示出利用pcie200连接axi规格的三个soc(soc#0、soc#1、soc#2)100的信息处理装置的例子。即,根据图15与上述的图1的比较可知,图15所示的信息处理装置与相对于图1所示的信息处理装置追加了soc#2的装置对应。

这里,基于soc#2以及存储器101的电路基板300例如相当于主板,对该主板(soc#2)的插头插入两个电路基板300(soc#0、soc#1)。此时,对soc#0~soc#2分配有用于识别各个soc(半导体集成电路)的编号(soc编号),或者,对soc#0~soc#1分配有用于识别搭载了soc100的电路基板300的端口编号(相当于主板(soc#2)的插头的编号)。

此外,图15例如假定soc#0的cpu102访问与soc#1连接的存储器101的情况,激活(打开)soc#0的总线控制电路1中的模块a-1以及b-2、和soc#1的总线控制电路1中的模块a-2以及b-1。另外,在soc#2设置有两组外部连接电路(106、107)以及总线控制电路1,在soc#0与soc#1间的访问时,全部去激活(关闭)各个总线控制电路1中的a-1、a-2、b-1、b-2。并且,soc100(电路基板300)的数目并不限定于两个或者三个,如上述那样也可以连接更多的soc(电路基板)。

图16是用于说明图2所示的总线控制电路(排他访问电路)中的读通道的排他指令转换模块的一个例子的图。如图16所示,排他指令转换模块a-1包含在参照图10以及图11说明的读访问动作时,进行读地址(ar)通道的转换处理的模块a-11以及读数据(r)通道的转换处理的模块a-12。

模块a-11通过图10以及图11中的处理s1,从cpu#0(内部连接电路103)接受s_a1_arlock以及s_a1_araddr,转换为d_a1_arlock、d_a1_arid[x]以及d_a1_aruser[0]并输出给pcie#0(处理s4)。此外,如以下详述的那样,作为d_a1_arlock以及d_a1_araddr使用s_a1_arlock以及s_a1_araddr。

即,a-11在s_a1_arlock=“01”(排他访问)时,将d_a1_arlock=“00”(通常访问)、d_a1_arid[x]=“1”(为了在r通道的排他指令识别,附加给x位的arid[x-1:0])、以及d_a1_aruser[0]=“1”(排他指令信息)输出给pcie#0。另外,a-11在s_a1_arlock=“01”时,将d_a1_araddr的值作为b2_araddr(指令识别用),转送给排他响应接收模块b-2。

并且,a-11在不为s_a1_arlock=“01”时,接受s_a1_arlock以及s_a1_araddr,转换为d_a1_arlock=s_a1_arlock、d_a1_arid[x]=“0”、以及d_a1_aruser[0]=“0”并输出给pcie#0。

模块a-12通过图10以及图11中的处理s16,从pcie#0接受s_a1_rid[x]以及s_a1_rresp,转换为d_a1_rresp并输出给内部连接电路103(cpu#0)(处理s19)。即,a-12在s_a1_rid[x]=“1”时,将d_a1_rresp=b2_rresp(排他响应值)输出给cpu#0。另外,a-12在s_a1_rid[x]=“0”时,将d_a1_rresp=s_a1_rresp输出给cpu#0。此外,b-2对a-12输出b2_rresp。

图17是用于说明图2所示的总线控制电路中的写通道的排他指令转换模块的一个例子的图。如图17所示,排他指令转换模块a-1包含在参照图12以及图13说明的写访问动作时,进行写地址(aw)通道的转换处理的模块a-13、进行写数据(w)通道的转换处理的模块a-14以及进行写响应(b)通道的转换处理的模块a-15。

模块a-13通过图12以及图13中的处理s21,从cpu#0接受s_a1_awlock以及s_a1_awaddr,转换为d_a1_awlock、d_a1_awid[x]以及d_a1_awuser[0]并输出给选择器10(pcie#0)(处理s22~s24)。这里,如以下详述的那样,作为d_a1_awlock以及d_a1_awaddr使用s_a1_awlock以及s_a1_awaddr。

即,a-13在s_a1_awlock=“01”(排他访问)时,将d_a1_awlock=“00”(通常访问)、d_a1_awid[x]=“1”(为了在b通道的排他指令识别,附加给x位的awid[x-1:0])、以及d_a1_awuser[0]=“1”(排他指令信息)输出给选择器10。另外,a-13在s_a1_awlock=“01”时,将d_a1_awaddr的值作为b2_awaddr(指令识别用),转送给排他响应接收模块b-2。

并且,a-13在不为s_a1_awlock=“01”时,接受s_a1_awlock以及s_a1_awaddr,转换为d_a1_awlock=s_a1_awlock、d_a1_awid[x]=“0”、以及d_a1_awuser[0]=“0”并输出给选择器10。这里,虽然表示是否为排他访问的s_a1_awlock为两位的数据(“01”),但也可以是一位的数据(“0”或者“1”)。

模块a-14通过图12以及图13中的处理s21,从cpu#0接受s_a1_awlock,转换为d_a1_wid[x]并输出给选择器10(pcie#0)(处理s22~s24)。即,a-14在s_a1_awlock=“01”(排他访问)时,使d_a1_wid[x]=“1”(为了与aw通道配合),在不为s_a1_awlock=“01”时,使d_a1_wid[x]=“0”。此外,a-14的输出(d_a1_wid[x])输入到选择器10。

模块a-15接受s_a1_bid[x]以及s_a1_bresp,转换为d_a1_bresp并输出给内部连接电路103(cpu#0)(处理s37)。即,a-15在s_a1_bid[x]=“1”时,将d_a1_bresp=b2_bresp(排他响应值)输出给cpu#0,在s_a1_bid[x]=“0”时,将d_a1_bresp=s_a1_bresp输出给cpu#0。这里,排他响应接收模块b-2对a-15输出b2_bresp。另外,在选择器10也输入有排他响应发行模块a-2的输出(aw、w以及b通道的输出),例如,在接收了参照图21后述的排他响应发行识别信号(ss)时,选择a-2的输出,否则,选择a-1的输出。

图18是用于说明图2所示的总线控制电路中的排他响应接收模块的一个例子的图。如图18所示,排他响应接收模块b-2包含在参照图10~图13说明的访问动作时,在排他指令转换模块a-1以及pcie#0之间进行信号的交接以及转换的三个模块b-21、b-22以及b-23。

模块b-21从排他指令转换模块a-1接受b2_araddr以及b2_awaddr,并且从pcie#0的aw通道接受s_b2_awaddr,生成排他响应接收识别信号(sr)并输出给b-22。即,在b-21中,在s_b2_awaddr与b2_araddr或者b2_awaddr一致的情况下,判定为针对从a-1发行的排他指令的排他响应,并将排他响应接收识别信号sr输出给b-22。

模块b-22经由pcie#0的w通道接受s_b2_wdata,基于来自b-21的排他响应接收识别信号sr,将s_b2_wdata转换为b2_rresp以及b2_bresp并输出给a-1。即,根据排他响应接收识别信号sr,可知为针对从a-1发行的排他指令的排他响应,所以将赋给s_b2_wdata的排他响应值作为b2_rresp或者b2_bresp转送给a-1。此外,模块b-23是接受来自pcie#0的写响应(b)通道的信息的模块,但与本实施方式无关,所以省略其说明。

图19是用于说明图2所示的总线控制电路中的读通道的排他指令生成模块的一个例子的图。如图19所示,排他指令生成模块b-1包含在参照图10以及图11说明的读访问动作时,进行ar通道的转换处理的模块b-11以及进行r通道的转换处理的模块b-12。

模块b-11作为图10以及图11中的处理s6,从pcie#1接受s_b1_arlock、s_b1_araddr以及s_b1_aruser,转换为d_b1_arlock以及d_b1_arid[y]并输出给内部连接电路103(ddr#1)(处理s7~s10)。

即,b-11在s_b1_aruser[0]=“1”(排他指令)时,将d_b1_arlock=“01”(排他指令)、以及d_b1_arid[y]=“1”(为了在r通道的排他指令识别,附加给y位的arid[y-1:0])输出给ddr#1。另外,b-11在s_b1_aruser=“1”时,将d_b1_araddr的值作为a2_araddr(指令识别用),转送给排他响应发行模块a-2。并且,b-11在s_b1_aruser[0]=“0”时,将d_b1_arlock=s_b1_arlock、以及d_b1_arid[y]=“0”输出给ddr#1。

模块b-12作为图10以及图11中的处理s11,接受s_b1_rresp以及s_b1_rid[y],转换为d_b1_rresp并输出给pcie#1(处理s12)。即,b-12在s_b1_rid[y]=“1”时,将d_b1_rresp=“00”、以及a2_rresp=s_b1_rresp(排他响应值)输出给pcie#1。并且,b-12对a-2输出a2_rresp。

图20是用于说明图2所示的总线控制电路中的写通道的排他指令生成模块的一个例子的图。如图20所示,排他指令生成模块b-1包含在参照图12以及图13说明的写访问动作时,进行aw通道的转换处理的模块b-13、进行w通道的转换处理的模块b-14以及进行b通道的转换处理的模块b-15。

模块b-13通过图12以及图13中的处理s26,从pcie#1接受s_b1_awlock、s_b1_awaddr以及s_b1_awuser[0],转换为d_b1_awlock以及d_b1_awid[y]并输出给内部连接电路103(ddr#1)(处理s27~s30)。

即,b-13在s_b1_awuser[0]=“1”(排他指令)时,将d_b1_awlock=“01”(排他指令)、d_b1_awid[y]=“1”(为了在b通道的排他指令识别,附加给y位的awid[y-1:0])、以及d_b1_awaddr的值作为a2_awaddr(指令识别用),转送给排他响应发行模块a-2。并且,b-13在s_b1_awuser[0]=“0”时,将d_b1_awlock=s_b1_awlock、以及d_b1_awid[y]=“0”输出给ddr#1。

模块b-15接受s_b1_bresp以及s_b1_bid[y],转换为d_b1_bresp并输出给pcie#1。即,b-15在s_b1_bid[y]=“1”时,将d_b1_bresp=“00”、以及a2_bresp=s_b1_bresp(排他响应值)输出给pcie#1。并且,b-15对a-2输出a2_bresp。

另外,b-15在s_b1_bid[y]=“0”时,将d_b1_bresp=s_b1_bresp输出给pcie#1。此外,模块b-14使来自pcie#1的w通道的数据直接通过并输出给ddr#1。

图21是用于说明图2所示的总线控制电路中的写通道的排他响应发行模块的一个例子的图。如图21所示,排他响应发行模块a-2包含在参照图12以及图13说明的写访问动作时,进行aw通道的转换处理的模块a-21、进行w通道的转换处理的模块a-22以及进行b通道的转换处理的模块a-23。

模块a-21通过图12以及图13中的处理s32,从排他指令生成模块b-1接受b1_araddr以及b1_awaddr,转换为d_a2_awaddr并输出给选择器10(pcie#1)(处理s13)。即,a-21若接收来自后述的模块a-22的排他响应发行识别信号ss,则将b1_araddr或者b1_awaddr的值作为d_a2_awaddr,将将排他响应用的aw指令发行给aw通道(选择器10)。

模块a-22从b-1接受b1_rresp以及b1_bresp,转换为d_a2_wdata并输出给选择器10(pcie#1)。即,a-22接收b1_rresp或者b1_bresp之后发行排他响应,所以将排他响应发行识别信号ss转送给aw通道以及选择器10。另外,将b1_rresp或者b1_bresp的值作为排他响应值,转换为d_a2_wdata。此外,模块a-23与本实施方式无关,所以省略其说明。

这里,如图21以及图17所示,在pcie#1与排他指令转换模块a-1以及排他响应发行模块a-2之间设置有选择器10,在pcie#1与a-1或者a-2之间转送通过该选择器10选择的信号。即,选择器10在接收了排他响应发行识别信号ss时,选择a-2的路径,否则,选择a-1的路径。

图22以及图23是用于说明参照图1以及图2说明的信息处理装置中的包含st位[7:0]的报头信息的生成/复原方法的图,是用于说明参照图15所示的soc编号、端口编号的信息的获取的图。此外,在图22以及图23中,例如存储器(ddrmemory101)、存储器连接电路(104、105)以及ip宏(108)等无关所以省略。

如图22所示,soc100例如相对于参照图1说明的soc,还包含闪存(flash)控制器111、电子熔断器(efuse)112以及设定值寄存器113。此外,闪存控制器111例如控制设置在外部的闪存(或者,eeprom)114。

包含闪存控制器111、电子熔断器(efuse)112以及设定值寄存器113。此外,闪存控制器111例如控制设置在外部的闪存、非易失性存储器(electricallyerasableprogrammableread-onlymemory:flash/eeprom:外部存储器)114。

在外部存储器(flash/eeprom)114或者电子熔断器112预先储存有soc编号、端口编号,例如在电源启动时,cpu(或者,控制器)102读出储存于该外部存储器114或者电子熔断器112的值,并复制到设定值寄存器113。然后,通过总线控制电路(排他访问电路)1读出复制到设定值寄存器113的值,并在识别出各个soc的状态下,进行上述的排他访问处理。此外,也能够不经由设定值寄存器113,而cpu102直接将从外部存储器114或者电子熔断器112读出的值设定到总线控制电路1。

具体而言,如图23所示,能够使用参照图3说明的pcie的tlp报头中的st位(st[7:0])。即,总线控制电路(pcieexclusiveaccessunit)1例如从soc#0的设定值寄存器113读出soc编号(socnumber[5:0])以及端口编号(portnumber)。并且,经由内部连接电路(interconnect)103读出axlock[1:0]以及axaddr[31:0],并例如进行上述的处理,将axuser[7:0]、axuser[10:8]以及axaddr[31:0]输出给pcie#。

这里,soc#0中的数据例如进行socnumber[5:0]+portnumber+axlock[1:0]→axuser[7:0]→st[7:0]这样的转换(生成),另外,进行axlock[1:0]→axuser[10:8]→th+ph[1:0]这样的转换,从而转换为报头信息。此外,如上述那样,例如,axlock可以不为axlock[1:0]这样的两位的信息,而为一位的信息,但例如能够使用为“01”为排他访问且“00”为通常访问。另外,axuser[10:8]能够转送三位的信息,但例如只要固定一位,并使用其它的两位即可。

这样一来,例如,作为pcie的tlp报头的st[7:0]、th以及ph[1:0]编入的信息例如在soc#1中复原。即,例如设为th+ph[1:0]→axuser[10:8]→axlock[1:0],另外,设为st[7:0]→axuser[7:0]]→响应用发送源信息保持,对编入pcie的tlp报头的信息进行复原。这样一来,在soc#1中,从pcie#1向总线控制电路1输入axuser[7:0]、axuser[10:8]以及axaddr[31:0],并从总线控制电路1向内部连接电路103输出axlock[1:0]以及axaddr[31:0]。

此外,当然也能够在soc#1中设置设定值寄存器113,并进行与上述反向(从soc#1向soc#0)的处理。另外,上述的pcie的tlp报头中的st[7:0]、th以及ph[1:0]的使用仅为一个例子,当然也能够使用报头的其它的位字段,或者,各总线规格下的适当的位字段。

以上,对实施方式进行了说明,但这里记载的全部的例子、条件均以帮助发明以及应用于技术的发明的概念的理解为目的而记载,特别是记载的例子、条件并不对发明的范围进行限定。另外,说明书的那样的记载并不是示出发明的优点以及缺点的记载。虽然对发明的实施方式进行了详细的记载,但应该理解在不脱离发明的精神以及范围内能够进行各种变更、置换、变形。

附图标记说明

1…总线控制电路(排他访问电路:pcieexclusiveaccessunit),10…选择器,11…第一转换部(interconnecttopciebusbridge),12…第二转换部(pcietointerconnectbusbridge),100…半导体集成电路(soc),101…存储器(ddrmemory),102…cpu(控制器),103…内部连接电路(interconnect),104…存储器控制电路(ddrcontroller),105…存储器的接口ip宏(ddrphy),106…链接控制电路(pcielink),107…pcie的接口ip宏(pcie的物理层:pciephy),108…ip宏(ip),111…闪存(flash)控制器,112…电子熔断器(efuse),113…设定值寄存器,114…外部存储器(flash/eeprom),200…pcie总线(pcie),300…电路基板,a-1…排他指令转换模块,a-2…排他响应发行模块,b-1…排他指令生成模块,b-2…排他响应接收模块。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1