半导体设备的制造方法

文档序号:10654495阅读:616来源:国知局
半导体设备的制造方法
【专利摘要】本申请涉及半导体设备。公开的发明改进了总线传输设备的传输效率。半导体设备包括总线传输设备,该总线传输设备包括最大能够传输具有n比特宽度的读取数据的读取数据传输路径。如果分别对应于第一事务和第二事务的第一读取数据和第二读取数据具有总比特宽度为n比特或者更少,则总线传输设备可以通过读取数据传输路径同时传输通过统一第一读取数据和第二读取数据获得的数据、第一事务标识信息以及第二事务标识信息。
【专利说明】半导体设备
[0001]相关申请的交叉引用
[0002]在此通过参考并入2015年3月30日提交的日本专利申请公开第2015-068587号的全部公开内容,包括说明书、附图和摘要。
技术领域
[0003]本发明涉及一种半导体设备,并且特别地适合于半导体设备的逻辑单元之间的总线传输。
【背景技术】
[0004]已知有英国的ARM(注册商标)有限公司开发的AMBA(注册商标)(高级微控制器总线架构)作为用于系统LSI(大规模集成)的片上总线标准。在AMBA(注册商标)3.0中,增加了用于高性能系统LSI的AXI(高级可扩展接口)协议。在AXI协议中,采用其中地址和数据可以被独立于彼此而传输的分离事务。
[0005]日本未审专利公开第2006-331426号(专利文献I)公开了一种总线传输设备,其使用分离事务协议并可以以无序的方式传输数据。

【发明内容】

[0006]本发明人已经验证了现有技术中总线传输设备的功能并发现了下述问题。也即,在现有技术中的总线传输设备中,去往存储器或来自存储器等的数据的突发传输使用整个总线宽度,伴随对总线的高度占用。另一方面,小比特宽度的数据不使用整个总线宽度。在这种小比特宽度的传输数据中,即使总线宽度被扩大,用于数据传输的总线宽度也不改变;因此,传输效率不增大。
[0007]从本说明书的描述和附图中其他问题和新颖特征将变得明显。
[0008]根据一个实施例的半导体设备包括总线传输设备,其包括最大可以传输η比特宽度的读取数据的读取数据传输路径。如果分别对应于第一事务和第二事务的第一读取数据和第二读取数据具有η比特或更少的总比特宽度,则总线传输设备可以通过读取数据传输路径同时传输通过统一第一读取数据和第二读取数据获得的数据、第一事务标识信息和第二事务标识信息。
[0009]根据上述实施例,可以改进总线传输设备的传输效率。
【附图说明】
[0010]图1是示出了半导体设备的总体配置的框图。
[0011]图2是示出了图1的总线传输设备中涉及读取地址传输和读取数据传输的部分的细节配置的框图。
[0012]图3是示出了图2的总线传输设备的读取数据传输的具体例子的时序图。
[0013]图4是示出了根据第二实施例的总线传输设备的局部配置的框图。
[0014]图5是示出了图4的总线传输设备的读取数据传输的具体例子的时序图。
[0015]图6是示出了根据第三实施例的总线传输设备的局部配置的框图。
[0016]图7是示出了图6的总线传输设备的读取数据传输的具体例子的时序图。
[0017]图8是示出了图1的总线传输设备中涉及写入地址传输和写入数据传输的部分的细节配置的框图。
[0018]图9是图8的总线传输设备的写入数据传输的具体例子的时序图。
[0019]图10是示出了根据第五实施例的总线传输设备的局部配置的框图。
[0020]图11是示出了图10的总线传输设备的写入数据传输的具体例子的时序图。
[0021 ]图12是示出了根据第六实施例的总线传输设备的局部配置的框图。
[0022]图13是图12的总线传输设备的写入数据传输的具体例子的时序图。
【具体实施方式】
[0023]下文中,将结合附图详细描述各种实施例。相同或等效的部分用相同的参考标记来表示,并且不再重复它们的描述。
[0024]图1是示出了半导体设备的总体配置的框图。参考图1,半导体设备包括总线主控器(11、12)10、12;总线受控器(31、32)20、22;以及用于耦合总线主控器10、12和总线受控器20、22的总线传输设备30。
[0025]总线主控器(Ml、M2)10、12的例子包括CPU(中央处理单元)和DMA(直接存储器存取)控制器。总线受控器(S1、S2)20、22的例子包括外围1/0(输入/输出)设备和存储器设备。有些外围I/O设备通过集成DMA控制器充当总线主控器。
[0026]总线传输设备30包括用于传输地址的地址传输路径40、用于传输读取数据的读取数据传输路径44和用于传输写入数据的写入数据传输路径46。读取地址RADDR和写入地址WADDR(每一个都偶尔简写为地址ADDR)在地址传输路径40上从总线主控器Ml、M2向总线受控器S1、S2传输。读取数据RDATA在读取数据传输路径44上从总线受控器S1、S2向总线主控器M1、M2传输。写入数据WDATA在写入数据传输路径46上从总线主控器Ml、M2向总线受控器S1、S2传输。
[0027]在总线传输设备30中,在一个事务中的地址传输和数据传输可以独立于彼此执行(即,在总线传输设备30中,采用分离事务)。如后面将详细描述的,为了实现分离事务,读取地址RADDR、写入地址WADDR、读取数据RDATA和写入数据WDATA被分配以标识数据(ID)来标识是哪一总线主控器发布了哪一事务。
[0028]在本说明书中,地址传输路径40、读取数据传输路径44和写入数据传输路径46也分别称为地址总线、读取数据总线和写入数据总线。在AXI协议中,术语“地址信道”、“读取数据信道”和“写入数据信道”被用于区分根据传统AHB(高级高性能总线)协议的地址总线、读取数据总线和写入数据总线。然而,在本说明书中为了简洁,即使根据AXI协议,也使用术语“总线”来代替“信道”。
[0029]总线传输设备30还包括总线控制单元32(32A、32B),用于控制读取地址RADDR、写入地址WADDR、读取数据RDATA和写入数据WDATA的传输。如图1所示,在区分主控侧和受控侧的情况下,总线控制单元被写作总线控制单元32A和总线控制单元32B。下文中,将详细描述根据每个实施例的总线控制单元32的配置和操作。第一实施例
[0030]图2是示出了图1的总线传输设备中涉及读取地址传输和读取数据传输的部分的细节配置的框图。参考图2,总线控制单元32包括地址仲裁器215、地址解码器225、状态逻辑电路235、数据仲裁器240、ID解码器260、数据缓冲器246、复用器210、250、254和解复用器220、230、266。
[0031][读取地址的传输]
[0032]首先,将描述读取地址的传输。如图2所示,总线主控器Ml发出读取地址200并且总线主控器M2发出读取地址205。地址选择电路(复用器)210分别从两个不同的总线主控器Ml、M2接收读取地址200、205。地址仲裁器215控制复用器210在多个需要使用地址总线的读取地址之间进行仲裁。
[0033]此外,地址选择电路210生成用于标识每个接收到的读取地址(S卩,哪一总线主控器发出了哪一读取事务)的ID值(ARID)。地址选择电路210将生成的ID值(ARID)添加到对应于该ID值的读取地址(RADDR),并将该ID值和读取地址一起输出到地址传输路径40。
[0034]每个读取地址(RADDR)和ID值(ARID)通过地址传输路径40发送给地址分配电路(解复用器)220。在图2中,“ARID”被示出以强调与读取地址相关联的ID值。在由同一主控器发布的同一事务的情况下,与读取地址相关联的ID值(ARID)与对应于读取地址的读取数据相关联的ID值(RID)相同。
[0035]地址分配电路220由来自地址解码器225的输出控制。更具体地说,地址解码器225解码读取地址RADDR并由此确定哪一总线受控器是对应于该读取地址的目标总线受控器。然后,地址解码器225输出受控器号S#给解复用器220。解复用器220根据该受控器号S#将读取地址和相应的ID值作为用于受控器SI的读取地址222或者用于受控器S2的读取地址224输出给所要求的目标总线受控器。
[0036]受控器号S#的信息还和相应ID值(ARID)的信息一起被输入到受控器号分配电路(解复用器)230。受控器号分配电路230为每个ID值(ARID)分配输入的受控器号S#。
[0037]可以概念上考虑在状态逻辑电路235中,为每个源ID提供用于存储受控器号S#信息的先入先出(FIFO)缓冲器。解复用器230基于接收到的ID值(ARID)将从地址解码器225接收到的受控器号S#发送给状态逻辑电路235中的适当FIFO缓冲器。受控器号S#的信息被保持在状态逻辑电路235中,直到被数据仲裁器240选择为仲裁结果。
[0038]实际上,状态逻辑电路235并不需要被配置为单独为每个ID值提供的多个FIFO缓冲器。状态逻辑电路235可以如此配置:具有相同ID值的多个读取数据输入与读取地址输出的顺序相关联(也即,在这种方式中多个对应于具有相同ID值的地址的读取数据可以按照地址被发出的顺序被返回)。
[0039][数据仲裁器的仲裁]
[0040]通过参考状态逻辑电路235,数据仲裁器240顺序地选择读取数据以通过读取数据总线44来传输。每个FIFO缓冲器的第一个受控器号S#是数据仲裁器240的有效仲裁结果。也即,每个ID值的仅一个受控器号S#是有效的仲裁结果。这是因为如下约束:多个对应于具有相同ID值的地址的读取数据必须按照相应地址被发出的顺序被返回。
[0041]因此,如果状态逻辑电路235中只有一个有效的仲裁对象,则数据仲裁器240从FIFO缓冲器中提取对应于有效仲裁对象的受控器号S#,并将该受控器号S#连同相应的ID值(ARID)—起通知给数据选择电路(复用器)250、254和数据缓冲器246。如果存在多个有效的仲裁对象,则数据仲裁器240根据预先确定的仲裁指南(优先级次序)确定接下来要传输的读取数据的输出源的受控器号S#,从FIFO缓冲器中提取所确定的受控器号S#,并将该受控器号S#与相应的ID值(ARID)—起通知给数据选择电路(复用器)250、254和数据缓冲器246。数据仲裁器240可以基于主控器、受控器、ID值或者它们的任意组合来给有效的仲裁对象分配优先级。
[0042][读取数据的传输]
[0043]接下来,将描述读取数据的传输。图2所示的读取数据传输路径44可以传输最大比特宽度为η比特的数据。此外,读取数据传输路径44可以连同读取数据一起传输用于标识读取数据RDATA的多个ID值(图2中的两个ID值(RID1、RID2))。例如,在有可能传输两个m比特ID值的情况下,读取数据传输路径44所需的信号线的数量为n+2 X m。
[0044]下文中,从总线受控器SI读取的读取数据242具有η/2比特或更少的数据宽度(如果读取数据242的数据宽度可变,则数据宽度可以等于η比特)。从总线受控器S2读取的读取数据244具有η比特的数据宽度。在突发模式的情况下,η比特宽的数据从总线受控器S2中重复地输出多次。此外,总线受控器S1、S2除了读取数据之外还输出诸如ID值之类的关联信息。
[0045]更具体地,总线受控器SI输出读取数据242、对应于读取数据242的ID值(RID)以及读取数据在配置读取数据传输路径44的η比特数据线中占据的位置的信息。例如,如果数据线的比特的数量η为128,并且从总线受控器SI输出的数据的比特宽度是32比特(固定的),则位置信息包含四个位置,分别是第I到第32个比特、第33到第64个比特、第65到第96个比特以及第97到第128个比特。总线受控器SI可以根据用于存储读取数据的读取地址来自动地确定读取数据使用的位置的信息。如果从总线受控器SI输出的读取数据242的数据宽度是可变的,则数据大小的信息也从总线受控器SI中输出。
[0046]总线受控器S2输出读取数据244和对应于该读取数据244的ID值(RID)。由于从总线受控器S2输出的数据宽度是η比特并且等于读取数据传输路径44的数据线的比特数量,位置信息不是必需的。
[0047]数据仲裁器240将受控器号S#作为仲裁结果和相应的ID值(ARID)—起通知给数据选择电路(复用器)250、254和数据缓冲器246。
[0048]数据缓冲器246用于临时保持从受控器SI输出的读取数据242和关联信息(ID值、数据在读取数据总线宽度中的位置信息)。更具体地,如果从受控器SI输出的读取数据242不能被传输给读取数据传输路径44(8卩,当读取数据传输路径44正被其他受控器使用时)并且读取数据242的数据宽度小于η比特,则使用数据缓冲器246。
[0049]根据数据仲裁器240的仲裁结果,数据选择电路(复用器)250输出从受控器SI输出的读取数据242或者在数据缓冲器246中保持的读取数据,或者选择并同时输出它们二者。后面将描述用于同时输出两条读取数据的条件。当读取数据从复用器(数据选择电路250)中输出时,相应的ID值(RID)也输出。因此,当从受控器SI输出的读取数据242和数据缓冲器246中保持的读取数据同时被输出时,也输出相应的两个ID值(RID1、RID2)。
[0050]根据从数据仲裁器240通知的仲裁结果(受控器号S#、ID值(ARID)),数据选择电路(复用器)254选择复用器(数据选择电路)250的输出结果(如果通知的是受控器SI的号)或者来自受控器S2的读取数据244。复用器(数据选择电路)254将所选择的读取数据和对应于该读取数据的ID值(RID)输出到读取数据传输路径44。
[0051 ] 通过读取数据传输路径44传输的ID值(RID1、RID2)被输入到ID解码器260,并且通过读取数据传输路径44传输的读取数据RDATA被输入到数据分配电路(解复用器)266。
[0052]ID解码器260对通过读取数据传输路径44传输的ID值(RID1、RID2)进行解码并由此提取出该ID值所指示的主控器号M#的信息。在图2中,ID解码器260预先获取ID值(ARID)与主控器号M#之间的对应关系,并由此可以容易地解码ID值。ID解码器260将ID值所指示的主控器号M#的信息通知给数据分配电路(解复用器)266。
[0053]根据从ID解码器260通知的主控器号M#,数据分配电路(解复用器)266将通过读取数据传输路径44接收的读取数据RDATA作为读取数据262分配给总线主控器Ml或作为读取数据264分配给总线主控器M2。如果从总线受控器SI输出的读取数据242和在数据缓冲器246中保持的读取数据都同时输出,则解复用器266根据对应于ID值(RID1、RID2)的主控器号M#将每个读取数据输出到ID值的发布源的主控器。
[0054][同时输出两条读取数据的条件]
[0055]下文中,将描述同时从数据选择电路250输出两条读取数据的条件。基于从受控器S输出的读取数据242的ID值和数据位置信息(并且如果数据大小是可变的则还有数据大小信息),数据选择电路250确定如果满足下述所有条件则可以同时输出数据缓冲器246中保持的读取数据和从受控器SI输出的读取数据242。
[0056](条件Rl)数据缓冲器246中保持的读取数据的ID值与指示为数据仲裁器240的仲裁结果的第一优先级的ID值相匹配,并且从受控器SI输出的读取数据242的ID值与第二优先级的ID值相匹配。也即,数据仲裁器240将数据缓冲器246中当前保持的读取数据的输出指示为先前仲裁结果,并且将读取数据242的从受控器SI的输出指示为当前仲裁结果。
[0057](条件R2)数据缓冲器246中保持的读取数据的传输目的地的主控器与从受控器SI输出的读取数据242的传输目的地的主控器不同。ID值(RID)具有传输目的地(即事务的发布源的主控器)的主控器的信息。
[0058](条件R3)从受控器SI输出的读取数据242在传输路径44上使用的数据位置与数据缓冲器246中保持的读取数据在传输路径44上使用的数据位置不相重合。
[0059][读取数据传输的具体例子]
[0060]图3是示出了图2的总线传输设备30的读取数据传输的具体例子的时序图。图3从顶部依次示出了在地址总线上传输的读取地址、从受控器SI输出的读取数据、来自数据缓冲器246的输出数据、在读取数据总线上传输的读取数据、到主控器Ml的输入数据和到主控器M2的输入数据。在图3中,水平轴代表时间,包含时钟信号从第一时段CYCI到第六时段CYC6的六个时段。实际上,在每个时段的开始,信号改变并且不是固定的;然而,在图3中,为了简洁,信号被写为好像其是固定的。本说明书中其他时序图中也是如此。
[0061 ] 参考图2和图3,在第一时段CYCl中,主控器Ml发布用于将从开始地址ADDR A开始的数据组突发传输到受控器S2的指令。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID= “I” )。通过地址传输路径40将开始地址ADDR A的信息连同ID值一起传输给受控器S2。将通过对地址ADDR A进行解码获得的受控器号“2”和ID值“I”的信息通知给数据仲裁器240。在后续的时段CYC2和CYC3中,根据数据仲裁器240的控制,128比特宽的数据通过读取数据传输路径44从受控器S2传输到主控器Ml。
[0062]在第二时段CYC2中,主控器Ml发布用于将存储在地址ADDRB中的数据传输到受控器SI的指令(单次访问)。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID =“2”)。通过地址传输路径40将地址ADDR B的信息连同ID值一起传输给受控器SI。将通过对地址ADDR B进行解码获得的受控器号“I”和ID值“2”的信息通知给数据仲裁器240。在接下来的时段CYC3中,传输由数据选择电路254选择的来自受控器S2的读取数据244。此外,读取数据不保持在数据缓冲器246中,并且从受控器SI输出的读取数据RDATA B的数据宽度(32比特)小于读取数据传输路径44的数据宽度(η = 128比特)。因此,在第三时段CYC3中,从受控器SI输出的读取数据RDATA B和关联信息(ID值“2”等)保持在数据缓冲器246中。
[0063]此外,在第三时段CYC3中,主控器M2发布用于将存储在地址ADDRC中的数据传输到受控器SI中的指令(单次访问)。地址选择电路210生成用于标识主控器M2和事务的ID值(ARID= “3” )。通过地址传输路径40将地址ADDR C的信息连同ID值一起传输给受控器SI。将通过对地址ADDR C进行解码获得的受控器号“I”和ID值“3”的信息通知给数据仲裁器240。
[0064]在接下来的时段CYC4中,从受控器SI输出读取数据RDATAC和关联信息(ID值“3”等)。此外,从数据缓冲器246输出读取数据RDATA B和关联信息(ID值“2”等)。假设读取数据RDATA B的比特位置是第I到第32个比特,读取数据RDATA C的比特位置是第33到第64个比特,并且二者之间没有重合。因此,数据选择电路250确定并通知数据选择电路254可以统一并输出从受控器SI输出的读取数据RDATA C和从数据缓冲器246输出的读取数据RDATA B。数据选择电路254将统一后的数据宽度为64比特的读取数据(RDATA B,RDATA C)、对应于读取数据RDATA B的ID值“2”以及对应于读取数据RDATA C的ID值“3”输出到读取数据传输路径44。ID值“2”和ID值“3”输出到ID解码器260。ID解码器260将分别对应于ID值“2”和ID值“3”的主控器号M#通知给数据分配电路266。数据分配电路266根据所通知的主控器号M#将读取数据(RDATA B) 262输入到主控器Ml并将读取数据(RDATA C) 264输入到主控器M2。
[0065]此外,在第四时段CYC4中,主控器Ml发布用于将以开始地址ADDR D开始的数据组突发传输到受控器S2的指令。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID=“I” )。通过地址传输路径40将开始地址ADDR D的信息连同ID值一起传输给受控器S2。将通过对地址ADDR D进行解码获得的受控器号“2”和ID值“I”的信息通知给数据仲裁器240。在后续的时段CYC5和CYC6中,根据数据仲裁器240的控制,将128比特宽的数据通过读取数据传输路径44从受控器S2传输到主控器Ml。
[0066][第一实施例的效果]
[0067]上述的总线传输设备30可以在具有η比特总线宽度的读取数据总线上传输总数据宽度小于总线宽度的两条读取数据。在这种情况下,分别对应于两条读取数据的两个事务ID值也同时被传输。因此,可以提高小于最大总线宽度的数据的传输速度,这可以提高从总线主控器到总线受控器的读取访问的响应速度。
[0068][修改]
[0069]在图2中,示出了两个总线主控器、两个总线受控器和状态逻辑电路235中的三个可能的ID值。然而,本发明不限于这样一种配置,并且上述技术也可以适用于大量总线主控器、大量总线受控器以及大量ID值。
[0070]此外,尽管已经示出了统一和传输两条读取数据的例子,但原则上可以在读取数据传输路径的总线宽度η内统一和传输更多的读取数据。在这种情况下,必须具有根据待统一的数据和同时传输的分别对应于待统一读取数据的ID值的数量的数据缓冲器。
[0071 ] 第二实施例
[0072]在第一实施例中,已经描述了具有不同传输目的地总线主控器的多个读取数据的统一和总线传输。在第二实施例中,将描述具有相同传输目的地总线主控器的多个读取数据的统一和总线传输。在这种情况下,条件R2不是必需的,并且数据选择电路250确定如果满足条件Rl和R3,则可以同时输出数据缓冲器246中保持的读取数据和从受控器SI输出的读取数据242。下文中,将参考附图进行详细描述。
[0073][总线传输设备的配置]
[0074]图4是示出了根据第二实施例的总线传输设备的局部配置的框图。图4仅示出了图2的总线传输设备中涉及读取数据总线的部分。涉及地址总线的部分的配置与图2中相同。如图4所示,总线传输设备30与图2的总线传输设备30的不同之处在于总线传输设备30的总线控制单元32A还包括数据缓冲器268、270和复用器(数据选择电路)272、274。由于图4中的其余部分与图2中的相同,相同或等效的部分用相同的参考标记标出,并且不再重复它们的描述。
[0075]第二实施例的特征在于可以统一具有相同传输目的地总线主控器的两条数据(条件R2不是必需的)。在这种情况下,较高优先级的读取数据立即输入到传输目的地总线主控器,而较低优先级的读取数据临时保持在数据缓冲器268或270中。较低优先级的读取数据在较高优先级的读取数据输入之后从数据缓冲器输入到传输目的地总线主控器。由此,两条读取数据按照数据仲裁器240所确定的优先级次序输入到同一总线主控器中。
[0076]更具体地,如果满足条件Rl和R3(条件R2不是必需的),则数据选择电路250统一数据缓冲器246中保持的读取数据和从受控器SI输出的读取数据242。统一后的读取数据RDATA和相应的两个ID值(RIDURID2)同时输出到读取数据传输路径44。假设两个ID值(RIDURID2)表示同一总线主控器。
[0077]如果通过读取数据传输路径44传输的两个ID值(RID1、RID2)所指示的传输目的地的总线主控器是相同的,则ID解码器260将数据的同时传输通知给数据缓冲器268、270中对应于适当主控器的数据缓冲器。根据ID解码器260的控制,数据分配电路266将传输的统一后的读取数据中对应于数据缓冲器246中保持的读取数据的部分输入到适当的主控器,并将剩余部分存储到相应数据缓冲器268或270中。也即,首先从受控器SI输出的读取数据被输入到适当的主控器,并且接着从受控器SI输出的读取数据被输入到相应的数据缓冲器。在接下来的时段中,存储在数据缓冲器268或270中的读取数据被输入到适当的主控器。
[0078][读取数据传输的具体例子]
[0079]图5是示出了图4的总线传输设备30的读取数据传输的具体例子的时序图。图5从顶部依次示出了在地址总线上传输的读取地址、从受控器SI输出的读取数据、来自数据缓冲器246的输出数据、在读取数据总线上传输的读取数据、来自数据缓冲器268的输出数据以及到主控器Ml的输入数据。在图5中,水平轴代表时间,包含时钟信号从第一时段CYCl到第六时段CYC6的六个时段。
[0080]参考图4和图5,图5的第一时段CYCl到第三时段CYC3基本上与第一实施例的图3中的相同。不同的是在第三时段中发布用于将地址ADDR C中存储的数据传输到受控器SI的指令(单次访问)的主控器号。
[0081]更具体的,在图3中主控器M2发布用于将地址ADDR C中存储的数据传输到受控器SI的指令,而在图5中主控器Ml发布用于将地址ADDR C中存储的数据传输到受控器SI的指令。也即,第二时段CYC2中发布的读取地址ADDR B和第三时段CYC3中发布的读取地址ADDRC对应于从同一主控器Ml发布的不同事务B(分别具有ID值“2”和“3” )。
[0082]在下一时段CYC4中,从受控器SI中输出读取数据RDATAC和关联信息(ID值“3”等)。此外,从数据缓冲器246输出读取数据RDATA B和关联信息(ID值“2”等)。假设读取数据RDATA B的比特位置是第I到第23个比特,读取数据RDATA C的比特位置是第33到第64个比特,并且在二者之间没有重合。因此,数据选择电路250确定并通知数据选择电路254可以统一并输出从受控器SI输出的读取数据RDATA C和从数据缓冲器246输出的读取数据RDATAB。数据选择电路254将数据宽度为64比特的统一后的读取数据(RDATA B,RDATA C)、对应于读取数据RDATA B的ID值“2”和对应于读取数据RDATA C的ID值“3”输出到读取数据传输路径44。
[0083]两个ID值“2”和“3”被传输到ID解码器260。ID解码器260解码这两个传输的ID值并由此检测出对应于ID值“2”的主控器号“I”和对应于ID值“3”的主控器号“I”是相同的。ID解码器260将目的地为主控器Ml的两条读取数据被同时传输的信息通知给数据分配电路266和数据缓冲器268。根据ID解码器260的控制,数据分配电路266将是所传输读取数据一部分的保持在数据缓冲器246中的读取数据RDATA B输入到适当的主控器Ml,并将是其余部分的读取数据RDATA C存储到数据缓冲器268中。在下一时段CYC5中,将存储在数据缓冲器268中的读取数据RDATA C输入到主控器Ml中。
[0084]此外,在第四时段CYC4中,主控器M2发布用于将从开始地址ADDR D开始的数据组突发传输到受控器S2的指令。地址选择电路210生成用于标识主控器M2和事务的ID值(ARID=“4” )。开始地址ADDR D的信息连同ID值一起通过地址传输路径40传输给受控器S2。将通过解码地址ADDR D而获得的受控器号“2”和ID值“4”的信息通知给数据仲裁器240。在下面的时段CYC5、CYC6中,根据数据仲裁器240的控制,通过读取数据传输路径44将128比特宽的数据从受控器S2传输给主控器M2。
[0085][第二实施例的效果]
[0086]具有上述配置的总线传输设备可以同时传输目的地为同一总线主控器的多个读取数据,这可以进一步提高小于最大总线宽度的读取数据的传输速度。这可以增大在从总线主控器到总线受控器的读取访问中的响应速度。
[0087]第三实施例
[0088]在第一实施例中,已经描述了用于同时传输从同一受控器输出的总数据大小小于总线宽度的多个读取数据的总线传输设备。在第三实施例中,将公开用于同时传输从不同受控器输出的总数据大小小于总线宽度的多个读取数据的总线传输设备的配置。
[0089][总线传输设备的配置]
[0090]图6是示出了根据第三实施例的总线传输设备的局部配置的框图。图6仅示出了图2的总线传输设备中的涉及读取数据总线的部分。涉及地址总线的部分的配置与图2的相同。
[0091]在第三实施例中,从总线受控器S2读取的读取数据244的数据宽度为η/2比特或者更少(数据大小是可变的并且因此可以等于η比特)。总线受控器S2输出读取数据244、数据大小、对应于读取数据244的ID值(RID)以及读取数据在配置读取数据传输路径44的η比特数据线中所占用位置的信息。总线受控器S2根据用于存储读取数据的读取地址来自动地确定读取数据使用的位置的信息。
[0092]此外,在图6中,总线传输设备30与图2的总线传输设备30的不同之处在于,总线传输设备30的总线控制单元32Β还包括数据缓冲器248和复用器(数据选择电路)252。数据仲裁器240的仲裁结果通知给数据缓冲器246、248以及复用器(数据选择电路)250、252、254。
[0093]数据缓冲器248用于临时保持读取数据244和关联信息(ID值、数据大小、数据在读取数据总线宽度中的位置信息)。更具体的,如果从受控器S2输出的读取数据244不能被传输给读取数据传输路径44(8卩,当读取数据传输路径44正由另一受控器使用)并且读取数据244的数据宽度小于η比特,则使用数据缓冲器248。
[0094]基于从数据仲裁器240通知的仲裁结果,数据选择电路250输出从受控器SI输出的读取数据242或者数据缓冲器246中保持的读取数据,或者选择并同时输出二者。此外,如果数据选择电路250不能统一数据缓冲器246中存储的读取数据和从受控器SI输出的读取数据242,则数据选择电路250将ID值、数据大小和读取数据存储在数据缓冲器246中的数据位置的信息通知给数据选择电路254。
[0095]基于从数据仲裁器240通知的仲裁结果,数据选择电路252输出从受控器S2输出的读取数据244或者数据缓冲器248中保持的读取数据,或者选择并同时输出二者。此外,如果数据选择电路252不能统一数据缓冲器248中存储的读取数据和从受控器S2输出的读取数据244,则数据选择电路252将ID值、数据大小和读取数据存储在数据缓冲器248中的数据位置的信息通知给数据选择电路254。
[0096]基于从数据仲裁器240通知的仲裁结果,数据选择电路254输出数据选择电路250的输出结果或者数据选择电路252的输出结果,或者选择并同时输出二者。如果数据选择电路254分别从数据选择电路250、252接收到存储在数据缓冲器246、248中的读取数据的信息,并且可以统一这些读取数据,则数据选择电路254统一并输出这些读取数据。如果满足下述条件R4-R6,数据选择电路254确定可以同时输出数据选择电路250、252的输出结果。
[0097](条件R4)数据选择电路250选择的读取数据的ID值和数据选择电路252选择的读取数据的ID值中的一个与指示为数据仲裁器240的仲裁结果的第一优先级的ID值相匹配,并且另一个与第二优先级的ID值相匹配。也即,数据仲裁器240将一个ID值指示为先前仲裁结果,并将另一个ID值指示为当前仲裁结果。
[0098](条件R5)数据选择电路250选择的读取数据的传输目的地主控器与数据选择电路252选择的读取数据的传输目的地主控器不同。
[0099](条件R6)数据选择电路250选择的读取数据在传输路径44上使用的数据位置与数据选择电路252选择的读取数据在传输路径44上使用的数据位置不重合。
[0100]由于图6的其余部分与图2的那些相同,相同或等效的部分用相同的参考标号指示,并且不再重复它们的描述。
[0101][读取数据传输的具体例子]
[0102]图7是示出了图6的总线传输设备30的读取数据传输的具体例子的时序图。图7从顶部依次示出了在地址总线上传输的读取地址、从受控器SI输出的读取数据、从受控器S2输出的读取数据、在读取数据总线上传输的读取数据、到主控器Ml的输入数据和到主控器M2的输入数据。在图7中,水平轴代表时间,包含时钟信号的从第一时段CYCl到第六时段CYC6的六个时段。
[0103]参考图6和图7,在第一时段CYCl中,主控器Ml发布用于将从开始地址ADDR A开始的数据组突发传输到受控器S2的指令。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID= “I” )。通过地址传输路径40将开始地址ADDR A的信息连同ID值一起传输给受控器S2。将通过对地址ADDR A进行解码获得的受控器号“2”和ID值“I”的信息通知给数据仲裁器240。在后续的时段CYC2和CYC3中,根据数据仲裁器240的控制,128比特宽的数据通过读取数据传输路径44从受控器S2传输到主控器Ml。
[0104]在第二时段CYC2中,主控器Ml发布用于将存储在地址ADDRB中的数据传输到受控器S2的指令(单次访问)。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID =“2”)。通过地址传输路径40将地址ADDR B的信息连同ID值一起传输给受控器S2。将通过对地址ADDR B进行解码获得的受控器号“2”和ID值“2”的信息通知给数据仲裁器240。在下一时段CYC3中,来自受控器S2的读取数据244仍在被传输。因此,在第四时段CYC4中,从受控器S2中输出对应于地址ADDR B的读取数据RDATA B和关联信息(ID值“2”等)。
[0105]在第三时段CYC3中,主控器M2发布用于将存储在地址ADDRC中的数据传输到受控器SI的指令(单次访问)。地址选择电路210生成用于标识总线主控器M2和事务的ID值(ARID=“3” )。通过地址传输路径40将地址ADDR C的信息连同ID值一起传输给受控器SI。将通过对地址ADDR C进行解码获得的受控器号“I”和ID值“3”的信息通知给数据仲裁器240。
[0106]在下一时段CYC4中,从受控器SI中输出读取数据RDATAC和关联信息(ID值“3”等)。这些数据由数据选择电路250选择并接着输入到数据选择电路254。此外,从受控器S2输出读取数据RDATA B和关联信息(ID值“2”等)。这些数据由数据选择电路252选择并接着输入到数据选择电路254。假设在读取数据RDATA B与读取数据RDATA C的在读取数据传输路径44上的比特位置之间没有重合。
[0107]数据选择电路254确定可以统一并同时输出数据选择电路250选择的读取数据RDATA C和数据选择电路252选择的读取数据RDATA B。此外,数据选择电路254将统一后的读取数据和对应的ID值“2”和“3”输出到读取数据传输路径44 ο ID值“2”和ID值“3”传输到ID解码器260οID解码器260将分别对应于ID值“2”和ID值“3”的主控器号M#通知给数据分配电路266。数据分配电路266根据所通知的主控器号M#将读取数据(RDATA B)262输入到主控器Ml并将读取数据(RDATA C) 264输入到主控器M2。
[0108]此外,在第四时段CYC4中,主控器Ml发布用于将以开始地址ADDR D开始的数据组突发传输到受控器S2的指令。地址选择电路210生成用于标识主控器Ml和事务的ID值(ARID=“I” )。通过地址传输路径40将开始地址ADDR D的信息连同ID值一起传输给受控器S2。将通过对地址ADDR D进行解码获得的受控器号“2”和ID值“I”的信息通知给数据仲裁器240。在后续的时段CYC5和CYC6中,根据数据仲裁器240的控制,128比特宽的数据通过读取数据传输路径44从受控器S2传输到主控器Ml。
[0109][第三实施例的效果]
[0110]具有上述配置的总线传输设备可以将从不同总线受控器输出的读取数据同时传输到不同总线主控器,这可以进一步加强数据大小小于最大总线宽度的读取数据的传输能力。这可以增大在从总线主控器到总线受控器的读取访问中的响应速度。此外,第三实施例可以与第二实施例组合。这可以使得有可能在读取数据总线上同时将从不同总线受控器输出的两条读取数据传输到同一总线主控器。
[0111]第四实施例
[0112]图8是示出了图1的总线传输设备中涉及写入地址传输和写入数据传输的部分的具体配置的框图。参考图8,总线控制单元32包括地址仲裁器315、地址解码器325、状态逻辑电路335、数据仲裁器340、ID解码器360、数据缓冲器346、复用器310、350、354和解复用器320、330、366。
[0113][写入地址的传输]
[0114]首先将描述写入地址的传输。如图8所示,总线主控器Ml将写入地址300和ID值(AWID)输出到地址传输路径40并将写入数据342和ID值(WID)输出到写入数据传输路径46。类似地,总线主控器M2将写入地址305和ID值(AWID)输出到地址传输路径40并将写入数据344和ID值(WID)输出到写入数据传输路径46 值是用于标识哪一总线主控器发布了哪一写入事务的标识信息。在图8中,“AWID”示出为强调与写入地址相关联的ID值。在相同事务的情况下,与写入地址相关联的ID值(AWID)和与写入数据相关联的ID值(WID)是等同的。
[0115]代替总线主控器M1、M2,总线传输设备30的控制单元32A可以生成ID值并将写入地址、写入数据连同所生成的ID值一起传输给总线受控器。例如,在图8中,地址选择电路(复用器)310可以按照从每个总线主控器M1、M2的次序将ID值(AWID)添加到写入地址中并且数据选择电路(复用器)354可以按照从每个总线主控器M1、M2输出的次序将ID值(WID)添加到写入数据中。由此,通过按照输出次序添加ID值,相同的ID值可以被添加到写入地址和相应的写入数据。
[0116]地址选择电路(复用器)310分别从两个不同的总线主控器Ml、M2接收写入地址300、305。地址仲裁器315控制复用器310执行在需要使用地址总线的多个写入地址之间的仲裁。此时,地址仲裁器315发布表示被允许访问地址传输路径40的总线主控器的主控器号M#。所发布的主控器号M#被输出到主控器号分配电路(解复用器)330。
[0117]每个写入地址WADDR和ID值(AWID)通过地址传输路径40从地址选择电路(复用器)310被发送到地址分配电路(解复用器)320。地址分配电路320由地址解码器325的输出控制。更具体的,地址解码器325解码写入地址WADDR并由此确定指示目标总线受控器的受控器号S#,并将所确定的受控器号S#输出到解复用器320。根据该受控器号S#,地址分配电路320将作为受控器SI的写入地址322或者作为受控器S2的写入地址324的写入地址和相应的ID值输出到要求的目标总线受控器。受控器号S#还被通知给主控器号分配电路(解复用器)330。
[0118]可以概念上考虑在状态逻辑电路335中,提供用于存储主控器号M#的信息的FIFO缓冲器用于每个受控器号。解复用器330基于从地址解码器325通知的受控器号S#将从地址仲裁器315接收到的主控器号M#发送给状态逻辑电路335中的适当FIFO缓冲器。状态逻辑电路335中的主控器号M#的信息保持在状态逻辑电路235中直到被选择为数据仲裁器340的仲裁结果。
[0119][数据仲裁器的仲裁]
[0120]参考状态逻辑电路335,数据仲裁器340顺序地选择将通过写入数据总线46传输的写入数据。由于已经首先输入到每个FIFO缓冲器的主控器号M#经受仲裁,因此对于同一个受控器号S#只有一个有效的仲裁对象(传输目的地总线受控器)。如果多个FIFO缓冲器每个其中都存储了主控器号M#,则多个有效仲裁对象(多个主控器号M#)被提供给数据仲裁器340。
[0121]因此,如果状态逻辑电路335中仅有一个有效的仲裁对象,则数据仲裁器340从FIFO缓冲器中提取该有效仲裁对象的主控器号M#,并将主控器号M#连同相应的受控器号S#通知给数据选择电路(复用器)350、354和数据缓冲器346。如果有多个有效仲裁对象,则数据仲裁器340根据预先确定的仲裁指南(预先确定的优先级次序)确定接下来要传输的写入数据的输出源的主控器号M#。数据仲裁器340从相应的FIFO缓冲器中提取所确定的主控器号M#,并将主控器号M#连同相应的受控器号S#通知给数据选择电路(复用器)350、354和数据缓冲器346。数据仲裁器340可以基于主控器、受控器、ID值或者它们的任意组合来给有效仲裁对象分配优先级。
[0122][写入数据的传输]
[0123]接下来,将描述写入数据的传输。图8所示的写入数据传输路径46可以传输最大比特宽度为η比特的数据。此外,写入数据传输路径46可以连同写入数据一起传输用于标识写入数据WDATA的多个ID值(图8中的两个ID值(WID1、WID2))。例如,在有可能传输两个m比特的ID值的情况下,写入数据传输路径46所需的信号线的数量为n+2 xm。
[0124]下文中,从总线主控器Ml输出的写入数据342具有η/2比特或更少的数据宽度(如果写入数据342的数据宽度可变,则数据宽度可以等于η比特)。从总线主控器M2输出的写入数据344具有η比特的数据宽度。在突发模式的情况下,η比特宽的数据从总线主控器M2中重复地输出多次。此外,总线主控器Μ1、Μ2除了写入数据之外还输出诸如ID值之类的关联信息。
[0125]更具体地,总线主控器Ml输出写入数据342、对应于写入数据342的ID值(WID)以及写入数据在配置写入数据传输路径46的η比特数据线的宽度中占据的位置的信息。总线主控器Ml可以基于对应于写入数据的写入地址来自动地确定写入数据使用的位置的信息。如果从总线主控器Ml输出的写入数据342的数据宽度是可变的,则数据大小的信息也从总线主控器Ml中输出。
[0126]总线主控器M2输出写入数据344和对应于该写入数据344的ID值(WID)。数据仲裁器340将主控器号M#作为仲裁结果和相应的受控器号S#—起通知给复用器(数据选择电路)350、354和数据缓冲器346。
[0127]如果从主控器Ml输出的写入数据342不能被传输到写入数据传输路径46并且写入数据342的数据宽度小于η比特时,数据缓冲器346用于临时保持写入数据342和关联信息(ID值、数据在写入数据总线宽度中的位置信息)。
[0128]根据数据仲裁器340的仲裁结果,数据选择电路(复用器)350输出从主控器Ml输出的写入数据342或者在数据缓冲器346中保持的写入数据,或者选择并同时输出它们二者。后面将描述用于同时输出两条写入数据的条件。当写入数据从数据选择电路350中输出时,相应的ID值(WID)也输出。因此,当从主控器Ml输出的写入数据342和数据缓冲器346中保持的写入数据同时被输出时,也输出相应的两个ID值(WIDl、WID2)。
[0129]根据数据仲裁器340通知的仲裁结果(主控器号Μ#),数据选择电路(复用器)354选择复用器(数据选择电路)350的输出结果(如果通知的是主控器Ml的号)或者来自总线主控器M2的写入数据344。复用器(数据选择电路)354将所选择的写入数据和对应的ID值输出到写入数据传输路径46。
[0130]通过写入数据传输路径46传输的ID值(WID1、WID2)被输入到ID解码器360,并且通过写入数据传输路径46传输的写入数据WDATA被输入到解复用器(数据分配电路)366。
[0131]ID解码器360接收到从每个总线主控器发出的与写入地址相关联的ID值(AWID)以及通过解码写入地址获得的受控器号S#。基于所接收到的信息,ID解码器360以查找表的形式保持指示ID值(AWID)与受控器号S#之间的对应关系的信息。参考该查找表,ID解码器360确定对应于通过写入数据传输路径46接收到的ID值(WID1、WID2)的受控器号S#。
[0132]根据ID解码器360通知的受控器号S#,数据分配电路(解复用器)366将通过写入数据传输路径46接收的写入数据WDATA作为写入数据362分配给总线受控器SI或作为写入数据364分配给总线受控器S2。如果从主控器Ml输出的写入数据342和在数据缓冲器346中保持的写入数据都同时被输出,则解复用器366根据对应于ID值(WID1、WID2)的两个受控器号S#将这些写入数据分别输出到受控器S1、S2。
[0133][同时输出两条写入数据的条件]
[0134]下文中,将描述同时从数据选择电路350输出两条写入数据的条件。如果满足下述所有条件则数据选择电路350确定可以同时输出数据缓冲器346中保持的读取数据和从主控器Ml输出的写入数据342。
[0135](条件Wl)根据前一仲裁结果来自主控器Ml的写入数据存储在数据缓冲器346中,并且这一次主控器Ml再次被通知为仲裁结果。
[0136](条件W2)存储在数据缓冲器346中的写入数据的传输目的地总线受控器与来自主控器Ml的写入数据342的传输目的地总线受控器不同。传输目的地总线受控器的信息(受控器号S#)连同主控器号M#—起作为数据仲裁器340的仲裁结果而被通知。
[0137](条件W3)从主控器Ml输出的写入数据342在传输路径46上使用的数据位置与数据缓冲器346中保持的写入数据在传输路径46上使用的数据位置不相重合。
[0138][写入数据传输的具体例子]
[0139]图9是示出了图8的总线传输设备30的写入数据传输的具体例子的时序图。图9从顶部依次示出了在地址总线上传输的写入地址、从主控器Ml输出的写入数据、来自数据缓冲器346的输出数据、在写入数据总线上传输的写入数据、到受控器SI的输入数据和到受控器S2的输入数据。在图9中,水平轴代表时间,包含时钟信号的从第一时段CYCl到第五时段CYC5的五个时段。
[0140]参考图8和图9,在第一时段CYCl中,主控器M2发布用于突发写入到受控器S2的指令(事务ID值=“I”)。因此,在第一时段CYCI中主控器M2向地址传输路径40输出开始地址ADDR A和ID值“I”,并在第一时段CYCl和第二时段CYC2中输出写入数据WDATA A(128比特x2)和关联信息(ID值T )。将指示传输源主控器M2的主控器号“2”通知给数据仲裁器340,并且根据数据仲裁器340的控制,通过数据选择电路354将来自主控器M2的写入数据WDATA A输出到写入数据传输路径46。此外,根据ID解码器360的控制,通过数据分配电路366将写入数据WDATA输入到受控器S2。
[0141]在第二时段CYC2中,主控器Ml发布用于对受控器SI进行单次写入的指令(事务ID值=“2”)。因此,在第二时段CYC2中,主控器Ml向地址传输路径40输出地址六001?_8和10值“2”,并且输出写入数据WDATA_B和关联信息(ID值“2”等)。此外,通过数据仲裁器340将指示传输源的主控器Ml的主控器号“I”通知给数据选择电路350。由于写入数据WDATA B的数据宽度(32比特)小于写入数据传输路径46的数据宽度(n = 128比特)并且写入数据传输路径46正由其他写入数据WDATA A使用,数据选择电路350使得写入数据WDATA B和关联信息被临时保持在数据缓冲器346中。
[0142]在第三时段CYC3中,主控器Ml发布用于对受控器S2进行单次写入的指令(事务ID值“3” )。因此,在第三时段CYC3中,主控器Ml向地址传输路径40输出地址ADDR C和ID值“3”,并且输出写入数据WDATA_C和关联信息(ID值“3”等)。此外,通过数据仲裁器340将指示传输源的主控器Ml的主控器号“I”通知给数据选择电路350。假设写入数据WDATA_C(具有32比特的数据宽度)在数据传输路径46上的数据位置与数据缓冲器346中保持的写入数据WDATA B不相重合。
[0143]数据选择电路350确定并通知数据选择电路354可以统一并输出数据缓冲器346中保持的写入数据WDATA B和从主控器Ml输出的写入数据WDATA C。数据选择电路354将数据宽度为64比特的统一后的写入数据(WDATA B,WDATA C)、对应于写入数据WDATA B的ID值“2”以及对应于写入数据WDATA C的ID值“3”输出到写入数据传输路径46。ID值“2”和ID值“3”传输到ID解码器360 JD解码器360将分别对应于ID值“2”和ID值“3”的受控器号S#通知给数据分配电路366。数据分配电路366根据所通知的受控器号S#将写入数据(WDATA B)362输入到受控器SI并将写入数据(WDATA C)364输入到受控器S2。
[0144]在第四时段CYC4中,主控器M2发布用于对受控器S2进行突发写入的指令(事务ID值“I”)。因此,主控器M2在第四时段CYC4中向地址传输路径40输出开始地址ADDR D和ID值“I”,并在第四时段CYC4和第五时段CYC5中输出写入数据WDATA D( 128比特x 2)和关联信息(ID值“I” )。将指示传输源的主控器M2的主控器号“2”通知给数据仲裁器340,并且根据数据仲裁器340的控制,通过数据选择电路354将来自主控器M2的写入数据WDATA D输出到写入数据传输路径46。此外,根据ID解码器360的控制,通过数据分配电路366将写入数据WDATAD输入到受控器S2。
[0145][第四实施例的效果]
[0146]上述的总线传输设备30可以在总线宽度为η比特的写入数据总线上传输总数据宽度小于总线宽度的两条写入数据。在这种情况下,分别对应于两条写入数据的两个事务ID值也同时被传输。因此,可以提高小于最大总线宽度的写入数据的传输速度,这可以增大从总线主控器到总线受控器的写入访问的响应速度。
[0147][修改]
[0148]在图8的例子中,示出了两个总线主控器和两个总线受控器。然而,本发明不限于这样一种配置,并且上述技术也可以适用于大量总线主控器和大量总线受控器。
[0149]此外,尽管已经示出了统一和传输两条写入数据的例子,但原则上可以在写入数据传输路径的总线宽度η内统一和传输更多的写入数据。在这种情况下,必须具有根据待统一的数据和同时传输的分别对应于待统一的写入数据的ID值的数量的数据缓冲器。
[0150]第五实施例
[0151]在第四实施例中,已经描述了具有不同传输目的地总线受控器的多个写入数据的统一和总线传输。在第五实施例中,将描述具有相同传输目的地总线受控器的多个写入数据的统一和总线传输。在这种情况下,条件W2不是必需的,并且数据选择电路350确定如果满足条件Wl和W3,则可以同时输出数据缓冲器346中保持的写入数据和从主控器Ml输出的写入数据342。下文中,将参考附图进行详细描述。
[0152][总线传输设备的配置]
[0153]图10是示出了根据第五实施例的总线传输设备的局部配置的框图。图10仅示出了图8的总线传输设备中涉及写入数据总线的部分。涉及地址总线的部分的配置与图8中相同。然而,在第五实施例中,数据仲裁器340通知主控器号M#作为仲裁结果,但是不必通知对应于主控器号■的受控器号S#(因为条件W2的确定不是必需的)。
[0154]如图10所示,总线传输设备30与图8的总线传输设备30的不同之处在于总线传输设备30的总线控制单元32B还包括数据缓冲器368、370和复用器(数据选择电路)372、374。由于图10中的其余部分与图8中的相同,相同或等效的部分用相同的参考标记标出,并且不再重复它们的描述。
[0155]第五实施例的特征在于可以统一传输目的地为同一总线主控器的两条写入数据(条件W2不是必需的)。在这种情况下,较高优先级的写入数据被立即输入到传输目的地总线受控器,而较低优先级的写入数据被临时保持在数据缓冲器368或370中。较低优先级的写入数据在较高优先级的写入数据输入之后从数据缓冲器输入到传输目的地总线受控器。由此,两条写入数据按照数据仲裁器340所确定的优先级次序输入到同一总线受控器。
[0156]更具体地,如果满足条件Wl和W3(条件W2不是必需的)二者,数据选择电路350统一数据缓冲器346中保持的写入数据和从主控器Ml输出的写入数据342。统一后的写入数据WDATA和分别对应于预先统一的写入数据的两个ID值(WID1、WID2)同时输出到写入数据传输路径46。假设同一总线受控器(受控器号S#)对应于两个ID值(WID1、WID2)。
[0157]如果通过写入数据传输路径46传输的对应于两个ID值(WID1、WID2)的受控器号S#是相同的,则ID解码器360将数据的同时传输通知给数据缓冲器368、370中对应于适当主控器的数据缓冲器。根据ID解码器360的控制,数据分配电路366将传输的写入数据中对应于数据缓冲器346中保持的写入数据的部分输入到适当的受控器,并将剩余部分存储到相应数据缓冲器368或370中。也即,首先从主控器Ml输出的写入数据被输入到适当的受控器,并且接着从主控器Ml输出的写入数据被输入到相应的数据缓冲器。在下面的时段中,存储在相应的数据缓冲器368或370中的写入数据被输入到适当的受控器。
[0158][写入数据传输的具体例子]
[0159]图11是示出了图10的总线传输设备30的写入数据传输的具体例子的时序图。图11从顶部依次示出了在地址总线上传输的写入地址、从主控器Ml输出的写入数据、来自数据缓冲器346的输出数据、在写入数据总线上传输的写入数据、到数据缓冲器368的输入数据以及到受控器SI的输入数据。在图11中,水平轴代表时间,包含时钟信号的从第一时段CYCl到第五时段CYC5的五个时段。
[0160]参考图10和图11,图11的第一时段CYCl和第二时段CYC2中的操作与图9中的相同,并且因此将不再次描述。
[0161]在第三时段CYC3中,主控器Ml发布用于对受控器SI进行单次写入的指令(事务ID值“3”)。与此不同,在图9中,主控器Ml发布用于对受控器S2进行单次写入的指令。借由该单次写入的指令的发布,在第三时段CYC3中,主控器Ml向地址传输路径40输出地址ADDR C和ID值“3”,并输出写入数据WDATA_C(32比特)和关联信息(ID值“3”等)。假设写入数据WDATA_C在写入数据传输路径46上的数据位置与数据缓冲器346中保持的写入数据WDATA B不相重合。在第二时段CYC2或者第三时段CYC3中,数据仲裁器340将主控器号“I”(对应于主控器Ml)作为仲裁结果通知给数据选择电路350。
[0162]因此,数据选择电路350确定并通知数据选择电路354可以统一并输出数据缓冲器346中保持的写入数据WDATA B和从主控器Ml输出的写入数据WDATA C。数据选择电路354将数据宽度为64比特的统一后的写入数据(WDATA B,WDATA C)、对应于写入数据WDATA B的ID值“2”以及对应于写入数据WDATA C的ID值“3”输出到写入数据传输路径46。ID值“2”和ID值“3”被传输到ID解码器360。
[0163]如果ID解码器360确定分别对应于ID值“2”和ID值“3”的受控器号S#是相同的“I”(对应于受控器SI),则ID解码器360将写入数据的同时传输通知给数据分配电路366和对应于受控器SI的数据缓冲器368。根据ID解码器360的控制,数据分配电路366将传输的写入数据中对应于数据缓冲器346中保持的写入数据WDATA B的部分输入到适当受控器SI,并将作为其余部分的写入数据WDATA C存储到数据缓冲器368中。在下一时段CYC4中,将存储在数据缓冲器368中的写入数据WDATA C输入到受控器SI中。
[0164]在第四时段CYC4中,主控器M2发布用于对受控器S2进行突发写入的指令(事务ID值“I”)。因此,主控器M2在第四时段CYC4中向地址传输路径40输出开始地址ADDR D和ID值“I”,并且在第四时段CYC4和第五时段CYC5中输出写入数据WDATA D(128比特x 2)和关联信息(ID值“I”)。所输出的写入数据WDATA D根据数据仲裁器340的控制输出到写入数据传输路径46,并且根据ID解码器360的控制输入到受控器S2。
[0165][第五实施例的效果]
[0166]具有上述配置的总线传输设备可以同时传输传输目的地为同一受控器的多个写入数据,这可以提高小于最大总线宽度的写入数据的传输速度。这可以增大在从总线主控器到总线受控器的写入访问中的响应速度。
[0167]第六实施例
[0168]在第四实施例中,已经描述了用于同时传输从同一主控器输出的总数据大小小于总线宽度的多个写入数据的总线传输设备。在第六实施例中,将公开用于同时传输从不同主控器输出的总数据大小小于总线宽度的多个写入数据的总线传输设备的配置。
[0169][总线传输设备的配置]
[0170]图12是示出了根据第六实施例的总线传输设备的局部配置的框图。图12仅示出了图8的总线传输设备中涉及写入数据总线的部分。涉及地址总线的部分的配置与图8中的相同。
[0171]在第六实施例中,从总线主控器M2读取的写入数据344的数据宽度为η/2比特或者更少(数据大小是可变的并且因此可以等于η比特)。总线主控器M2输出写入数据344、数据大小、对应于写入数据344的ID值(WID)以及写入数据在配置写入数据传输路径46的η比特数据线中占用的位置的信息。总线主控器M2与用于存储写入数据的写入地址相关联地自动确定写入数据使用的位置的信息。
[0172]此外,在图12中,总线传输设备30与图8的总线传输设备30的不同之处在于总线传输设备30的总线控制单元32Α还包括数据缓冲器348和复用器(数据选择电路)352。数据仲裁器340的仲裁结果通知给数据缓冲器346、348以及复用器(数据选择电路)350、352、354。
[0173]如果从主控器M2输出的写入数据344不能被传输到写入数据传输路径46并且写入数据344的数据宽度小于η比特,则数据缓冲器348用于临时保持写入数据344和关联信息(ID值、数据大小、数据在写入数据总线宽度中的位置信息)。
[0174]基于数据仲裁器340所通知的仲裁结果,数据选择电路350输出从主控器Ml输出的写入数据342或者在数据缓冲器346中保持的写入数据,或者选择并同时输出它们二者。此夕卜,如果数据选择电路350不能统一数据缓冲器346中存储的写入数据和从主控器Ml输出的写入数据342,则数据选择电路350将ID值、数据大小以及存储在数据缓冲器346中的写入数据的数据位置的信息通知给数据选择电路354。
[0175]基于从数据仲裁器340通知的仲裁结果,数据选择电路352输出从主控器M2输出的写入数据344或者在数据缓冲器348中保持的写入数据,或者选择并同时输出它们二者。此夕卜,如果数据选择电路352不能统一数据缓冲器348中存储的写入数据和从主控器M2输出的写入数据344,则数据选择电路352将ID值、数据大小以及存储在数据缓冲器348中的写入数据的数据位置的信息通知给数据选择电路354。
[0176]基于从数据仲裁器340通知的仲裁结果,数据选择电路354输出数据选择电路350的输出结果或者数据选择电路352的输出结果,或者选择并同时输出二者。如果数据选择电路354分别从数据选择电路350、352接收到存储在数据缓冲器346、348中的写入数据的信息,并且可以统一这些写入数据,则数据选择电路354统一并输出这些写入数据。如果满足下述条件W4-W6,则数据选择电路354确定可以同时输出数据选择电路350、352的输出结果。
[0177](条件W4)数据选择电路350选择的写入数据的传输源主控器号和数据选择电路352选择的写入数据的传输源主控器号中的一个与被指示为数据仲裁器340的仲裁结果的第一优先级的主控器号相匹配,并且另一个与第二优先级的主控器号相匹配。也即,数据仲裁器340将一个主控器号指示为先前仲裁结果,并将另一个主控器号指示为当前仲裁结果。
[0178](条件W5)数据选择电路350选择的写入数据的传输目的地受控器与数据选择电路352选择的写入数据的传输目的地受控器不同。传输目的地总线受控器的信息(受控器号S#)连同主控器号■一起作为来自数据仲裁器340的仲裁结果而被通知。
[0179](条件W6)数据选择电路350选择的写入数据在传输路径46上使用的数据位置与数据选择电路352选择的写入数据在传输路径46上使用的数据位置不重合。
[0180]由于图12的其余部分与图8的那些相同,相同或等效的部分用相同的参考标号指示,并且不再重复它们的描述。
[0181][写入数据传输的具体例子]
[0182]图13是示出了图12的总线传输设备30的写入数据传输的具体例子的时序图。图13从顶部依次示出了在地址总线上传输的写入地址、从主控器Ml输出的写入数据、从主控器M2输出的写入数据、在写入数据总线上传输的写入数据、到受控器SI的输入数据和到受控器S2的输入数据。在图13中,水平轴代表时间,包含时钟信号的从第一时段CYCl到第五时段CYC5的五个时段。
[0183]参考图12和图13,在第一时段CYCl中,主控器M2发布用于对受控器S2进行突发写入的指令(事务ID值=“I”)。因此,在第一时段CYC2中,主控器M2向地址传输路径40输出开始地址六001?_4和10值“1”,并且在第一时段CYCl和第二时段CYC2中向写入数据传输路径46输出写入数据WDATA A(128比特X 2)和关联信息(ID值T )。
[0184]在第二时段CYC2中,主控器M2发布用于对受控器S2进行单次写入的指令(事务ID值“2”)。因此,在第二时段CYC2中,主控器M2向地址传输路径40输出地址六001?_8和10值“2”。在第二时段CYC2中,写入数据WDATA A仍然在从主控器M2被传输。因此,在第三时段CYC3中,主控器M2输出写入数据WDATA_B(32比特)和关联信息(ID值“2”等)。
[0185]在第三时段CYC3中,主控器Ml发布用于对受控器SI进行单次写入的指令(事务ID值“3” )。因此,在第三时段CYC3中,主控器Ml向地址传输路径40输出地址ADDRJ^PID值“3”,并且输出写入数据WDATA_C(32比特)和关联信息(ID值“3”等)。假设写入数据WDATA_C在数据传输路径46上的数据位置与从主控器M2输出的写入数据WDATA B不相重合。此外,数据仲裁器340在第二时段CYC2将对应于主控器M2的主控器号“2”通知给数据选择电路350并在第三时段CYC3中将对应于主控器Ml的主控器号“I”通知给数据选择电路350。写入数据WDATA_B的传输目的地(受控器S2)与写入数据WDATA_C的传输目的地(受控器SI)不同。
[0186]因此,数据选择电路350确定并通知数据选择电路354可以统一并输出从主控器M2输出的写入数据WDATA B和从主控器Ml输出的写入数据WDATA C。数据选择电路354将数据宽度为64比特的统一后的写入数据(WDATA B,WDATA C)、对应于写入数据WDATA B的ID值“2”以及对应于写入数据WDATA C的ID值“3”输出到写入数据传输路径46。ID值“2”和ID值“3”被传输到ID解码器360。ID解码器360将分别对应于ID值“2”和ID值“3”的受控器号“2”和“I”通知给数据分配电路366。数据分配电路366根据所通知的受控器号“2”和“I”将写入数据(WDATA B)364输入到受控器S2并将写入数据(WDATA C)362输入到受控器SI。
[0187]在第四时段CYC4中,主控器M2发布用于对受控器S2进行突发写入的指令(事务ID值“I”)。因此,主控器M2在第四时段CYC4中向地址传输路径40输出开始地址ADDR D和ID值“1”,并且在第四时段CYC4和第五时段CYC5中输出写入数据WDATA D(128比特x 2)以及关联信息(ID值“I”)。输出的写入数据WDATA D根据数据仲裁器340的控制被输出到写入数据传输路径46,并根据ID解码器360的控制被输入到受控器S2。
[0188][第六实施例的效果]
[0189]具有上述配置的总线传输设备可以同时将从不同总线主控器输出的写入数据传输到不同的受控器,这可以进一步提高数据大小小于最大总线宽度的写入数据的传输能力。这可以增大从总线主控器到总线受控器的写入访问的响应速度。此外,第六实施例可以与第五实施例组合。这可以使得有可能同时将从不同总线主控器输出的写入数据传输到同一受控器。
[0190]尽管已经基于所示出的实施例具体地描述了本发明人如上所述做出的发明,但是本发明不限于此。不用说,可以对其进行各种改变和修改,而不偏离本发明的主旨和范围。
【主权项】
1.一种半导体设备,包括: 多个总线主控器; 多个总线受控器;以及 总线传输设备,包括读取数据传输路径,所述读取数据传输路径最大能够传输具有η比特宽度的读取数据, 其中在数据读取期间,将从每个总线主控器输出的读取地址与用于标识输出源的总线主控器和标识事务的标识信息一起传输到具有所述读取地址的总线受控器,并且具有所述读取地址的总线受控器将对应于所述读取地址的读取数据与所述标识信息一起输出到所述总线传输设备,以及 其中如果所述总线传输设备传输具有总数据宽度为η比特或者更少的第一读取数据和第二读取数据,则所述总线传输设备能够统一所述第一读取数据和所述第二读取数据,并且通过所述读取数据传输路径同时传输所统一的读取数据、分别与所述第一读取数据和所述第二读取数据对应的第一标识信息和第二标识信息。2.根据权利要求1所述的半导体设备, 其中所述总线受控器包括第一总线受控器,所述第一总线受控器输出具有数据宽度为η/2比特或更少的读取数据,以及 其中所述总线传输设备还包括: 第一数据缓冲器,所述第一数据缓冲器耦合到所述第一总线受控器并且当所述读取数据传输路径正在由另一总线受控器使用时,保持所述第一总线受控器所输出的读取数据,以及 第一数据选择电路,所述第一数据选择电路耦合在所述第一总线受控器、所述第一数据缓冲器和所述读取数据传输路径之间,并且能够输出以下中的任意一项:所述第一总线受控器所输出的读取数据、所述第一数据缓冲器中保持的读取数据和通过统一这些读取数据获得的数据。3.根据权利要求2所述的半导体设备, 其中所述总线传输设备还包括数据分配电路,所述数据分配电路耦合在所述读取数据传输路径和所述总线主控器之间,以及 其中如果所述数据分配电路接收到通过统一所述第一读取数据和所述第二读取数据而获得的读取数据并且如果由同时传输的所述第一标识信息所指示的第一总线主控器不同于由所述第二标识信息所指示的第二总线主控器,则所述数据分配电路将所述第一读取数据输入到所述第一总线主控器并将所述第二读取数据输入到所述第二总线主控器。4.根据权利要求2所述的半导体设备, 其中所述总线传输设备还包括: 数据分配电路,所述数据分配电路耦合在所述读取数据传输路径和所述总线主控器之间;以及 多个输入数据缓冲器,所述多个输入数据缓冲器提供为分别对应于所述总线主控器并且均耦合于所述数据分配电路和对应的所述总线主控器之间,以及 其中如果所述数据分配电路接收到通过统一所述第一读取数据和所述第二读取数据而获得的读取数据并且如果由同时传输的所述第一标识信息所指示的第一总线主控器与由所述第二标识信息所指示的总线主控器相同,则所述数据分配电路将首先从所述第一总线受控器输出的读取数据输入到所述第一总线主控器并将接下来从所述第一总线受控器输出的读取数据输入到对应于所述第一总线主控器的输入数据缓冲器。5.根据权利要求2所述的半导体设备, 其中所述总线受控器还包括第二总线受控器,所述第二总线受控器输出具有数据宽度为η/2比特或更少的读取数据,以及 其中所述总线传输设备还包括: 第二数据缓冲器,所述第二数据缓冲器耦合到所述第二总线受控器并且当所述读取数据传输路径正在由另一总线受控器使用时,保持所述第二总线受控器所输出的读取数据,以及 第二数据选择电路,所述第二数据选择电路耦合在所述第二总线受控器、所述第二数据缓冲器和所述读取数据传输路径之间,并且能够输出以下中的任意一项:所述第二总线受控器所输出的读取数据、所述第二数据缓冲器中保持的读取数据和通过统一这些读取数据获得的数据;以及 第三数据选择电路,所述第三数据选择电路耦合在所述第一数据选择电路和所述第二数据选择电路与所述读取数据传输路径之间,并且能够输出以下中的任意一项:由所述第一数据选择电路输出的读取数据、由所述第二数据选择电路输出的读取数据以及通过统一这些读取数据获得的读取数据。6.根据权利要求2所述的半导体设备, 其中所述总线传输设备还包括数据仲裁器,所述数据仲裁器用于仲裁多个读取数据之间输出到所述读取数据传输路径的优先级,以及 其中如果所述第一数据缓冲器中保持的读取数据具有第一优先级并且所述第一总线受控器输出的读取数据具有第二优先级,则所述第一数据选择电路能够统一并输出这些读取数据。7.根据权利要求1所述的半导体设备, 其中所述第一读取数据和所述第二读取数据在所述读取数据传输路径上使用的比特分别根据对应的读取地址来确定,并且 其中如果所述第一读取数据使用的比特不与所述第二读取数据使用的比特重合,则所述总线传输设备能够统一并传输所述第一读取数据和所述第二读取数据。8.一种半导体设备,包括: 多个总线主控器; 多个总线受控器;以及 总线传输设备,包括写入数据传输路径,所述写入数据传输路径最大能够传输具有η比特宽度的写入数据, 其中在数据写入期间,将从每个总线主控器输出的写入地址和写入数据中的每一个以及用于标识输出源的总线主控器和标识事务的标识信息一起传输到具有所述写入地址的总线受控器,并且 其中如果所述总线传输设备传输具有总数据宽度为η比特或者更少的第一写入数据和第二写入数据,则所述总线传输设备能够统一所述第一写入数据和所述第二写入数据,并且通过所述写入数据传输路径同时传输所统一的写入数据、分别与所述第一写入数据和所述第二写入数据对应的第一标识信息和第二标识信息。9.根据权利要求8所述的半导体设备, 其中所述总线受控器包括第一总线主控器,所述第一总线主控器输出具有数据宽度为η/2比特或更少的写入数据,以及 其中所述总线传输设备还包括: 第一数据缓冲器,所述第一数据缓冲器耦合到所述第一总线主控器并且当所述写入数据传输路径正在由另一总线主控器使用时,保持所述第一总线主控器所输出的写入数据;以及 第一数据选择电路,所述第一数据选择电路耦合在所述第一总线主控器、所述第一数据缓冲器和所述写入数据传输路径之间,并且能够输出以下中的任意一项:所述第一总线主控器所输出的写入数据、所述第一数据缓冲器中保持的写入数据和通过统一这些写入数据获得的数据。10.根据权利要求9所述的半导体设备, 其中所述总线传输设备还包括数据分配电路,所述数据分配电路耦合在所述写入数据传输路径和所述总线受控器之间,以及 其中如果所述数据分配电路接收到通过统一所述第一写入数据和所述第二写入数据而获得的写入数据并且如果具有对应于同时传输的所述第一标识信息的写入地址的第一总线受控器与具有对应于所述第二标识信息的写入地址的第二总线受控器不同,则所述数据分配电路将所述第一写入数据输入到所述第一总线受控器并将所述第二写入数据输入到所述第二总线受控器。11.根据权利要求9所述的半导体设备, 其中所述总线传输设备还包括: 数据分配电路,所述数据分配电路耦合在所述写入数据传输路径和所述总线受控器之间;以及 多个输入数据缓冲器,所述多个输入数据缓冲器提供为分别对应于所述总线受控器并且均耦合于对应的所述总线受控器和所述数据分配电路之间,以及 其中如果所述数据分配电路接收到通过统一所述第一写入数据和所述第二写入数据而获得的写入数据并且如果具有对应于同时传输的所述第一标识信息的写入地址的第一总线受控器与具有对应于所述第二标识信息的写入地址的总线受控器相同,则所述数据分配电路将首先从所述第一总线主控器输出的写入数据输入到所述第一总线受控器并将接下来从所述第一总线主控器输出的写入数据输入到对应于所述第一总线受控器的输入数据缓冲器。12.根据权利要求9所述的半导体设备, 其中所述总线主控器还包括第二总线主控器,所述第二总线主控器输出具有数据宽度为η/2比特或更少的写入数据,以及 其中所述总线传输设备还包括: 第二数据缓冲器,所述第二数据缓冲器耦合到所述第二总线主控器并且当所述写入数据传输路径正在由另一总线主控器使用时,保持所述第二总线主控器所输出的写入数据; 第二数据选择电路,所述第二数据选择电路耦合在所述第二总线主控器、所述第二数据缓冲器和所述写入数据传输路径之间,并且能够输出以下中的任意一项:所述第二总线主控器所输出的写入数据、所述第二数据缓冲器中保持的写入数据和通过统一这些写入数据获得的数据;以及 第三数据选择电路,所述第三数据选择电路耦合在所述第一数据选择电路和所述第二数据选择电路与所述写入数据传输路径之间,并且能够输出以下中的任意一项:由所述第一数据选择电路输出的写入数据、由所述第二数据选择电路输出的写入数据以及通过统一这些写入数据获得的写入数据。13.根据权利要求9所述的半导体设备, 其中所述总线传输设备还包括数据仲裁器,所述数据仲裁器用于仲裁多个写入数据之间输出到所述写入数据传输路径的优先级,以及 其中如果所述第一数据缓冲器中保持的写入数据具有第一优先级并且所述第一总线主控器输出的写入数据具有第二优先级,则所述第一数据选择电路能够统一并输出这些写入数据。14.根据权利要求8所述的半导体设备, 其中所述第一写入数据和所述第二写入数据在所述写入数据传输路径上使用的比特分别根据第一写入地址和第二写入地址来确定,并且 其中如果所述第一写入数据使用的比特不与所述第二写入数据使用的比特重合,则所述总线传输设备能够统一并传输所述第一写入数据和所述第二写入数据。
【文档编号】G06F13/16GK106021141SQ201610147495
【公开日】2016年10月12日
【申请日】2016年3月15日
【发明人】樋口崇
【申请人】瑞萨电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1