半导体器件和总线生成器的制作方法

文档序号:19570883发布日期:2019-12-31 18:55阅读:183来源:国知局
半导体器件和总线生成器的制作方法

相关申请的交叉引用

于2018年6月22日提交的包括说明书、附图和摘要在内的日本专利申请号2018-118689的公开内容通过引用整体并入本文。

本发明涉及一种半导体器件,例如,涉及一种执行对存储器的访问的半导体器件。

进一步地,本发明涉及一种在半导体器件中生成总线的总线生成器。



背景技术:

国际公布号2017/056132公开了一种总线系统中的访问控制,其中多个总线主设备被耦合到公共总线。在国际公布号2017/056132中描述的半导体器件具有多个主设备、存储器控制器、将多个主设备与存储器控制器耦合的总线、以及中央总线控制单元。国际公布号2017/056132描述了中央总线控制单元监控每个主设备的传送量并且基于每个主设备的预留带宽、所监控的传送量以及可以授予的权限的数目来选择访问权限授予目的地的主设备。在国际公布号2017/056132中,在存储器控制器和主设备之间的总线中屏蔽未授予访问权限的主设备的请求。

在国际公布号2017/056132中,当释放存储器控制器中的缓冲器时,中央总线控制单元从存储器控制器接收缓冲器释放通知。每次授予访问权限时,中央总线控制单元将可以授予的权限的数目减少一个,并且每次释放缓冲区时,将可以授予的权限的数目增加一个。可以通过根据存储器控制器的处理条件授予访问权限来避免缓冲器装满未处理的访问请求的情形,并且可以避免存储器控制器不能接受需要低延迟的访问请求的情形。



技术实现要素:

这里,主设备所需的存储器访问的数据大小(访问大小)并非一直恒定,并且某个访问请求的访问大小可能小于另一个访问请求的访问大小。一般而言,存储器访问所需的时间(访问时间)根据访问大小而变化,访问大小越大,访问时间越长。在国际公布号2017/056132中,对这种访问时间的变化不予考虑,并且当主设备的访问大小不恒定时,可能无法实现延迟低且效率高的存储器访问。

根据本说明书的描述和附图,其他问题和新颖特征将变得显而易见。

根据实施例,一种半导体器件具有访问控制单元,该访问控制单元执行访问控制,该访问控制通过向主设备授予对存储器的访问权限来控制向存储器控制器输出由主设备发布的访问请求。访问控制单元基于由主设备发布的访问请求的访问大小来管理可以授予的权限的数目,并且在可以授予的权限的数目的范围内执行访问权限的授予。

根据实施例,即使在各种条件下,也消除了请求在总线上的停留,并且还可以提高存储器效率。

附图说明

图1是示出了根据第一实施例的包括半导体器件的电子设备的框图。

图2是示出了中央总线控制单元的配置示例的框图。

图3是示出了权限授予选择控制单元的配置示例的框图。

图4是示出了与可以授予的权限的数目的管理有关的部分的操作过程的流程图。

图5是示出了在包括根据第二实施例的半导体器件的电子设备中使用的权限授予选择控制单元的配置示例的框图。

图6是示出了在包括根据第三实施例的半导体器件的电子设备中使用的存储器控制器的框图。

图7是示出了总线生成器的硬件配置示例的框图。

图8是示出了总线设计的概要流程的流程图。

图9是示出了输入设置信息的屏幕示例的图。

图10是示出了到/来自总线生成器的输入/输出数据的框图。

具体实施方式

在描述实施例之前,将对产生下文所描述的实施例的想法的过程进行描述。在具有访问ddr(双倍数据速率)存储器的主设备的实际产品中,ddr存储器的有效带宽根据情形在约50%至70%之间变化,因此希望其效率得到改善。进一步地,关于需要实时特性的主设备,访问延迟需要很短。然而,访问延迟也会发生变化,因此访问延迟始终需要很低。当在某种程度上允许延迟时,可以通过以下各项来提高存储器访问效率:等待直到在存储器控制器中存储器访问请求被累积到某种程度为止,然后通过考虑存储器访问的类型(读和写)、地址等来执行调度以改变访问请求的处理顺序。然而,当优先考虑需要低延迟的高优先级请求时,不可能等到在存储器控制器中累积特定数目的访问请求,使得要调度的访问请求的数目很小。因此,无法实现有效的存储器访问并且带宽效率降低。因此,在存储器访问系统中,需要响应这些冲突请求。

作为发明人的讨论的结果,发现存在从授予对主设备的访问权限到释放存储器控制器的缓冲器的时间变化,从而在频带和延迟上发生变化。进一步地,发现每个请求的访问大小和类型是变化的原因。在国际公布号2017/056132中,主设备和存储器控制器之间的数据传送量由授予访问权限的访问请求的数目和访问大小的乘积表示。例如,当预先确定的数目的访问权限被授予访问大小较小的访问请求时的数据传送量小于当预先确定的数目的访问权限被授予访问大小较大的访问请求时的数据传送量。另一方面,相同数目的访问权限被授予访问大小较大的访问请求,可以提高存储器访问效率。然而,访问时间长,因此可能无法实现低延迟。发明人已经讨论了即使在访问大小不恒定时也能够以低延迟实现高效存储器访问的总线系统。结果,发明人已经实现了下文所描述的实施例的构思。

在下文中,参考附图对应用解决上述问题的器件的实施例进行详细说明。为了解释清楚,适当地省略和简化以下描述和附图。作为执行各种处理的功能块的附图中所示的部件可以由作为硬件的cpu(中央处理单元)、存储器和其他电路组成,并且通过作为软件的加载在存储器中的程序等来实现。因此,本领域技术人员应当理解,功能块可以通过仅硬件、仅软件或这些的组合以各种形式实现,并且功能块不限于硬件、软件、以及这些的组合。在附图中,相同的部件由相同的附图标记表示,并且适当地省略多余的描述。

上述程序可以被存储在各种类型的非暂态计算机可读介质中并且被供应给计算机。非暂态计算机可读介质包括各种类型的实质记录介质。非暂态计算机可读介质的示例包括磁记录介质(例如,软盘、磁带和硬盘驱动器)、磁光记录介质(例如,磁光盘)、cd-rom(只读存储器)、cd-r、cd-r/w、以及半导体存储器(例如,掩模rom、prom(可编程rom)、eprom(可擦除prom)、闪存rom和ram(随机存取存储器))。可以通过各种类型的暂态计算机可读介质将程序供应给计算机。暂态计算机可读介质的示例包括电信号、光信号和电磁波。暂态计算机可读介质可以通过诸如电线和光纤之类的有线通信路径或无线通信路径将程序供应给计算机。

将对以下实施例进行解释,如果为了方便需要,将其分成多个部分或实施例。除了特别清楚地表明的情况之外,它们不是相互无关的,并且一个与另一个具有诸如修改示例、应用示例、详细说明和部分或全部的补充说明之类的关系。在以下实施例中,当参考元件的数目等(包括数目、数值、数量、范围等)时,它们可能不限于特定数目,而是可以大于或小于特定数目,除了特别明确指定的情况以及理论上明确限于特定数目的情况之外。

进一步地,在以下实施例中,元件(包括操作步骤等)不一定不可或缺,除了特别明确指定的情况以及从理论观点认为明显不可或缺的情况等之外。同样,在以下实施例中,当参考元件等的形状、位置关系等时,除了明确指定的情况以及从理论观点认为明显是错误的情况等之外,基本上应当包括与形状类似或相似的形状等。该陈述也适用于上述元件的数目等(包括数目、数值、数量、范围等)。

[第一实施例]

图1示出了包括根据第一实施例的半导体器件的电子设备。该电子设备10具有主设备a20、主设备b30、主设备x40、子总线控制器22、32和42、中央总线控制单元50、互连60、存储器控制器70、以及存储器80。在电子设备1的元件之中,例如,主设备a20、主设备b30、主设备x40、子总线控制器22、32和42、中央总线控制单元50、互连60、以及存储器控制器70配置半导体器件。在半导体器件的元件之中,例如,子总线控制器22、32和42、互连60、以及存储器控制器70可以被配置为硬件电路。中央总线控制单元50可以被配置为包括处理器的电路。

主设备a20、主设备b30、以及主设备x40向存储器80发布访问请求。存储器80被配置为存储器设备,诸如例如,ddr-sdram(双倍数据速率同步动态随机存取存储器)。主设备a20、主设备b30、以及主设备x40是总线主设备,并且例如被配置为处理器,诸如例如cpu、gpu(图形处理单元)等。主设备a20、主设备b30、以及主设备x40分别通过对应总线21、31和41输出访问请求。

这里,对存储器80的访问请求包括表明读或写的访问类型、访问目的地的地址信息、指示数据大小(访问大小)的信息。访问大小指示要从存储器80读取的数据的大小或要写入存储器80的数据的大小。访问大小包括例如64字节、128字节、以及256字节。

主设备a20通过总线21被耦合到对应子总线控制器22。子总线控制器22通过总线24被耦合到互连60。子总线控制器22包括请求发布控制单元23。该请求发布控制单元23接收主设备a20通过总线21发布并控制的访问请求,并且控制所接收的访问请求输出到总线24。

主设备b30通过总线31被耦合到对应的子总线控制器32。子总线控制器32通过总线34被耦合到互连60。子总线控制器32包括请求发布控制单元33。同样,主设备x40通过总线41被耦合到对应的子总线控制器42。子总线控制器42通过总线44被耦合到互连60。子总线控制器42包括请求发布控制单元43。

请求发布控制单元23从主设备a20接收访问请求。当从中央总线控制单元50向访问请求发布控制单元23授予访问权限时,请求发布控制单元23通过总线24向互连60输出由主设备a20发布的访问请求。当请求发布控制单元23向互连60输出访问请求时,请求发布控制单元23向中央总线控制单元50输出指示访问请求(以下也称为访问大小信息)的访问大小的信息。当没有向请求发布控制单元23授予访问权限时,请求发布控制单元23防止由主设备a20发布的访问请求输出到互连60。

请求发布控制单元33和43的功能类似于请求发布控制单元23的功能。当请求发布控制单元23、33和43被授予访问权限并且没有接收到来自对应主设备的访问请求时,请求发布控制单元23、33和43可以向中央总线控制单元50输出访问权限返回信号以返回访问权限。中央总线控制单元50可以使用返回的访问权限来向另一请求发布控制单元授予访问权限。

互连60通过总线24、34和44接收由主设备a20、主设备b30和主设备x40发布的访问请求。互连60例如是总线仲裁器,并且仲裁从多个主设备输入的访问请求。当互连60接收来自例如主设备a20、主设备b30和主设备x40的访问请求时,互连60根据为每个主设备设置的优先级将由优先级最高的主设备发布的访问请求输出到存储器控制器70。当互连60获得对输出到存储器控制器70的访问请求的响应时,互连60选择优先级次高的主设备的访问请求,并且将访问请求输出到存储器控制器70。

存储器控制器70通过总线、互连60等被耦合到主设备a20、主设备b30和主设备x40,并且根据通过互连60接收的访问请求访问存储器80。尽管图1示出了电子设备10具有三个主设备的示例,但是主设备的数目没有特别限制。电子设备10仅需要具有至少一个主设备,该主设备向存储器控制器70发布对存储器80的访问请求。当主设备的数目为1时,不需要用于仲裁的互连60。

存储器控制器70具有缓冲器(请求缓冲器)71。缓冲器71存储由存储器控制器70通过互连60接收的访问请求。缓冲器71具有多个条目,并且被配置为能够存储多个访问请求。存储器控制器70例如具有调度器,其选择存储在缓冲器71中的多个访问请求中的一个访问请求,以及存储器命令生成单元,除了缓冲器71之外,其根据所选择的存储命令生成用于访问存储器80的存储器命令(命令信号)。当从缓冲器71中选择访问请求并且对访问请求进行处理时,存储器控制器70输出缓冲器释放通知,该缓冲器释放通知指示缓冲器71的条目被释放到中央总线控制单元50。进一步地,存储器控制器70将已经存储在释放的缓冲器中的访问请求的访问大小信息输出到中央总线控制单元50作为释放访问大小信息。

中央总线控制单元50执行访问控制,该访问控制通过使用子总线控制器22、32和42授予对主设备的访问权限来控制向存储器控制器70输出由每个主设备发布的访问请求。中央总线控制单元50通过向请求发布控制单元23、33和43授予访问权限来授予对主设备的访问权限,该主设备作为每个请求发布控制单元所接收的访问请求的发布源。中央总线控制单元50和子总线控制器22、32和42配置访问控制单元90。

例如,用户预先在中央总线控制单元50中设置每个主设备的频带,并且保证在某个时间(时隙)中的qos(服务质量)。在本实施例中,假设存在用于每种访问类型的主设备。例如,可以为访问类型是读取的访问请求(以下称为读取请求)和访问类型是写入的访问请求(以下称为写入请求)中的每一个设置频带。中央总线控制单元50根据例如预先确定的访问控制内容向请求发布控制单元23、33和43中的每个请求发布控制单元授予访问权限。访问控制内容可以与国际公布号2017/056132中描述的内容相同。国际公布号2017/056132中描述的内容通过引用并入本文。

中央总线控制单元50基于例如为每个主设备的读取请求和写入请求设置的qos信息来确定是否向与每个主设备相对应的请求发布控制单元23、33和43授予访问权限。此时,中央总线控制单元50可以通过从总线24、34和44获取的请求监控器(事务监控器信号)监控流过总线的事务,并且在基于事务的传送量来对每个时隙执行校正的同时,授予访问权限。中央总线控制单元50通过授予访问权限来控制向存储器控制器70输出由每个主设备发布的读取请求和写入请求。

中央总线控制单元50基于由授予访问权限的主设备发布的访问请求的访问大小来管理可以授予的权限的数目,该权限的数目指示可以授予主设备的访问权限的数目;以及在可以授予的权限的数目的范围内执行访问权限的授予。例如,每当中央总线控制单元50授予对主设备的访问权限时,中央总线控制单元50将可以授予的权限的数目减小根据由授予访问权限的主设备发布的访问请求的访问大小的权重。当中央总线控制单元50从存储器控制器70接收到缓冲器释放通知时,中央总线控制单元50将可以授予的权限的数目增加根据由释放访问大小信息指示的访问大小的权重。访问大小的权重(其值)基于例如设计和/或模拟结果来确定。

[中央总线控制单元]

图2示出了中央总线控制单元50的配置示例。中央总线控制单元50具有权限授予选择控制单元501、qos信息寄存器502、以及可授予最大数目设置寄存器503。在图2中,省略了图1中所示的事务监控信号。

qos信息寄存器502存储每个主设备的qos信息。qos信息寄存器502存储每个主设备的每个子时隙的预留传送量以及每个主设备的优先级水平。这里,子时隙是例如通过将某个时间(时隙)除以多个时段而获得的时间。可替代地,qos信息寄存器502可以存储每个主设备的每个子时隙的目标传送量。

权限授予选择控制单元501向请求发布控制单元23、33和43授予访问权限(参见图1)。当权限授予选择控制单元501授予访问权限时,权限授予选择控制单元501确定(选择)要向其授予访问权限的请求发布控制单元。权限授予选择控制单元501通过使用例如从qos信息寄存器502读取的预留带宽和优先级水平以及每个主设备的子时隙中的传送量来确定要向其授予访问权限的请求发布控制单元。可替代地,权限授予选择控制单元501可以通过使用从qos信息寄存器502读取的目标传送量来确定要向其授予访问权限的请求发布控制单元。

权限授予选择控制单元501将指示获取访问权限的访问权限授予信号输出到要向其授予访问权限的请求发布控制单元。例如,权限授予选择控制单元501断言访问权授予信号要输出到要向其授予访问权限的请求发布控制单元,并且仍然否定访问权授予信号要输出到不向其授予权限的请求发布控制单元。例如,权限授予选择控制单元501针对每个子时隙确定要向其授予访问权限的主设备。

可授予最大数目设置寄存器503存储访问权限的可授予数目中的最大数目(可以授予的权限的最大数目),高达权限授予选择控制单元501可以同时授予访问权限。当权限授予选择控制单元501授予可以授予访问大小最大的访问请求的权限的最大数目的访问权限时,可以授予的权限的最大数目被设置为例如没有访问请求停留在总线中的数目。权限授予选择控制单元501使用存储在可授予最大数目设置寄存器503中的可以授予的权限的最大数目作为上限计算可以授予的访问权限的数目,并且在所计算的可以授予的权限的数目得范围内执行访问权限的授予。

在本实施例中,权限授予选择控制单元501基于由每个主设备发布的访问请求的访问大小和可以授予的权限的最大数目来管理可以授予的权限的数目。权限授予选择控制单元501基于访问大小(当前授予的权限的数目)来管理授予访问权限的权限的数目。权限授予选择控制单元501管理在可授予最大数目设置寄存器503中设置的可以授予的权限的最大数目和当前授予的权限的数目之间的差,作为可以授予的权限的剩余数目。权限授予选择控制单元501在可以授予的权限的数目的范围内执行访问权限的授予。

[特权授予选择控制单元]

图3示出了权限授予选择控制单元501的配置示例。权限授予选择控制单元501具有访问权限授予目的地确定单元551、可授予性确定单元552、访问权限授予单元553、校正量计算单元554、返回量计算单元555、初始权重信息寄存器581、基于大小的权重信息寄存器582、以及存储当前授予的权限的数目的寄存器583。在图3中,省略了从图2中的qos信息寄存器502等输出的信号。

初始权重信息寄存器581存储彼此相互关联的主设备和根据估计要由主设备发布的访问请求的访问大小的权重。例如,初始权重信息寄存器581存储彼此相互关联的主设备a20和权重“1”,存储彼此相互关联的主设备b30和权重“0.8”,存储彼此相互关联的主设备x40和权重“0.9”。基于大小的权重信息寄存器582存储彼此相互关联的访问大小和根据访问大小的权重。例如,基于大小的权重信息寄存器582存储彼此相互关联的访问大小256字节和权重“1”,存储彼此相互关联的访问大小128字节和权重“0.9”,并且存储彼此相互关联的访问大小64字节和权重“0.8”。在初始权重信息寄存器581和基于大小的权重信息寄存器582中,通过使用图中未示出的cpu等分别设置每个主设备的权重和每个访问大小的权重。

访问权限授予目的地确定单元551确定授予访问权限的主设备。访问权限授予目的地确定单元551从初始权重信息寄存器581获取与所确定的主设备相对应的权重。代替初始权重信息寄存器581,可以使用初始大小信息寄存器,其存储主设备和估计要由主设备发布的访问请求的访问大小。在这种情况下,访问权限授予目的地确定单元551可以从初始大小信息寄存器获取与所确定的主设备相对应的访问大小,并且从基于大小的权重信息寄存器582获取与所获取的访问大小相对应的权重。

存储当前授予的权限的数目的寄存器583存储授予的访问权限的数目(当前授予的权限的数目)。可授予性确定单元552是指可授予最大数目设置寄存器503以及存储当前授予的权限的数目的寄存器583,并且确定是否可以向访问权限授予目的地确定单元551确定其作为访问权限授予目的地的主设备授予访问权限。更具体地,可授予性确定单元552计算存储在可授予最大数目设置寄存器503中的可以授予的权限的最大数目与存储在寄存器583中的当前授予的权限的数目之间的差(可以授予的权限的数目),该寄存器583存储当前授予的权限的数目。可授予性确定单元552比较所计算的可以授予的权限的数目与根据估计要由被确定为访问权限授予目的地的主设备发布的访问请求的访问大小的权重,该权重是从访问权限授予目的地确定单元551接收的。当可以授予的权限的数目大于或等于从访问权限授予目的地确定单元551接收的权重时,可授予性确定单元552确定可以授予访问权限。当可以授予的权限的数目小于从访问权限授予目的地确定单元551接收的权重时,可授予性确定单元552确定不能授予访问权限。

当可授予性确定单元552确定可以授予访问权限时,可授予性确定单元552指令访问权限授予单元553授予由访问权限授予目的地确定单元551确定的对主设备的访问权限。进一步地,可授予性确定单元552通过将从访问权限授予目的地确定单元551接收的权重添加到存储在存储当前授予的权限的数目的寄存器583中的当前授予的权限的数目来更新当前授予的权限的数目。每当授予对主设备的访问权限时,可授予性确定单元552将根据估计由要授予访问权限的主设备发布的访问请求的访问大小的权重添加到当前授予的权限的数目。

在本实施例中,通过根据访问大小的权重对当前授予的权限的数目进行加权。例如,当授予的访问权限的数目是“10”时,如果访问请求的所有访问大小都是64字节,则当前授予的权限的数目是10×0.8=8。当授予的访问权限的数目是“10”时并且访问请求的所有访问大小都是256字节,当前授予的权限的数目是10×1=10。在本实施例中,可以授予的权限的数目根据访问大小而有所不同,该数目由可以授予的权限的最大数目和当前授予的权限的数目之间的差表示。当访问权限授予访问大小较小的访问请求时,与访问权限授予访问大小较大的访问请求的情况相比,可以授予的权限的数目增加。

当从访问权限授予单元553向请求发布控制单元23、33和43(参见图1)授予访问权限并且从对应主设备接收访问请求时,请求发布控制单元23、33和43通过使用授予的访问权限向互连60输出访问请求。此时,请求发布控制单元将访问大小信息输出到中央总线控制单元50。在中央总线控制单元50中,权限授予选择控制单元501的校正量计算单元554基于从请求发布控制单元输出的访问大小信息所指示的访问大小来校正当前授予的权限的数目,其当授予访问权限时,使用存储在初始权重信息寄存器581中的权重来计算。校正量计算单元554基于例如根据估计要由主设备发布的访问请求的访问大小的权重和根据从请求发布控制单元通知的访问大小的权重之间的差来校正当前授予的权限的数目,该根据估计要由主设备发布的访问请求的访问大小的权重存储在初始权重信息寄存器581中。

更具体地,例如,如果主设备a20是访问权限授予目的地,则当授予访问权限时,可授予性确定单元552将存储在初始权重信息寄存器581中的权重“1”添加到当前授予的权限的数目。当由主设备a20实际发布的访问请求的访问大小是128字节时,请求发布控制单元23向校正量计算单元554通知访问大小信息128字节。校正量计算单元554从基于大小的权重信息寄存器582获取对应于128字节的权重“0.9”,并且通过所获取的权重“0.9”和存储在初始权重信息寄存器581中的权重“1”之间的差来校正当前授予的权限的数目。在这种情况下,与所估计的访问大小相对应的权重大于与实际访问大小相对应的权重,使得当前授予的权限的数目减少了权重之间的差值“0.1”。当与所估计的访问大小相对应的权重小于与实际访问大小相对应的权重时,当前授予的权限的数目增加了权重之间的差。通过这样做,可以根据由主设备实际发布的访问请求的访问大小来按权重管理当前授予的权限的数目。

另一方面,当从访问权限授予单元553向请求发布控制单元23、33和43授予访问权限并且没有接收到来自对应主设备的访问请求时,请求发布控制单元23、33和43在不使用访问权限的情况下将授予的访问权限返回到中央总线控制单元50。请求发布控制单元可以通过断言专用访问权返回信号将访问权限返回到中央总线控制单元50,或者可以通过输出访问大小信息“0”来返回访问权限。在中央总线控制单元50中,当返回访问权限时,权限授予选择控制单元501的返回量计算单元555从当前授予的权利的数目中减去存储在初始权重信息寄存器581中的权重,当授予访问权限时,将存储在初始权重信息寄存器581中的权重添加到该当前授予的权利的数目。通过这样做,当返回访问权限时,可以使当前授予的权限的数目恢复到授予访问权限之前的状态。所返回的访问权限可以用作另一主设备的访问权限。

当处理基于存储在缓冲器71中的访问请求的存储器访问并且释放缓冲器71的条目时,存储器控制器70(参见图1)向中央总线控制单元50输出释放通知信号。进一步地,存储器控制器70将释放大小信息输出到中央总线控制单元50,该释放大小信息指示经处理的访问请求的访问大小。在中央总线控制单元50中,当返回量计算单元555接收到释放通知信号时,返回量计算单元555从存储当前授予的权限的数目的寄存器583中减去根据由释放大小信息所指示的访问大小的权重。通过这样做,可以将用于其处理完成的访问请求的访问权限授予另一访问请求。

[操作过程]

接下来,将对操作过程进行描述。图4示出了与可以授予的权限数目的管理有关的部分的操作过程。在操作电子设备10之前,在初始权重信息寄存器581和基于大小的权重信息寄存器582中设置必要的信息(参见图3)。在初始权重信息寄存器581中,为每个主设备设置权重,该权重与每个主设备所预期(估计)的一个存储器访问(访问请求)中的访问大小相对应。在基于大小的权重信息寄存器582中,为每个访问大小设置权重。在初始权重信息寄存器581和基于大小的权重信息寄存器582中设置的权重表示由每个主设备的访问请求和每个访问大小消费的访问权限的数目。

访问权限授予目的地确定单元551确定访问权限授予目的地的主设备(请求发布控制单元)(步骤a1)。访问权限授予目的地确定单元551从初始权重信息寄存器581获取与在步骤a1中确定的访问权限授予目的地的主设备相对应的权重(步骤a2)。访问权限授予目的地确定单元551将所获取的权重传输到可授予性确定单元552。

可授予性确定单元552基于从访问权限授予目的地确定单元551接收的权重、存储在可授予最大数目设置寄存器503中的可以授予的权限的最大数目、以及存储在存储当前授予的权限的数目的寄存器583中的当前授予的权限的数目来确定是否可以向在步骤a1中确定的主设备授予访问权限(步骤a3)。在步骤a3中,例如,可授予性确定单元552确定可以授予的权限的数目是否大于或等于从访问权限授予目的地确定单元551接收的权重,该可以授予的权限的数目通过从可以授予的权限的最大数目中减去当前授予的权限的数目而获得。当可以授予的权限的数目大于或等于从访问权限授予目的地确定单元551接收的权重时,可授予性确定单元552确定可以授予访问权限。当可以授予的权限的数目小于从访问权限授予目的地确定单元551接收的权重时,可授予性确定单元552确定不能授予访问权限。

当可授予性确定单元552在步骤a3中确定可以授予访问权限时,可授予性确定单元552指令访问权限授予单元553授予访问权限。当可授予性确定单元552指令访问权限授予单元553授予访问权限时,访问权限授予单元553授予在步骤a1中确定的对主设备的访问权限(步骤a4)。当在步骤a1中确定授予对主设备的访问权限时,可授予性确定单元552将可以授予的访问权限的数目减少从访问权限授予目的地确定单元551接收的权重(步骤a5)。在步骤a5中,例如,访问权限授予目的地确定单元551通过将从访问权限授予目的地确定单元551接收的权重添加到存储在存储当前授予的权限的数目的寄存器583中的当前授予的权限的数目来减少可以授予的访问权限的数目。在步骤a3中,当确定可以授予的权限的数目小于从访问权限授予目的地确定单元551接收的权重时,暂停授予访问权限。当可以授予的权限的数目变化并且变得大于或等于从访问权限授予目的地确定单元551接收的权重时,执行访问权限的授予。

主设备向对应子总线控制器的请求发布控制单元输出访问请求。当请求发布控制单元被授予访问权限并且从主设备接收访问请求时,请求发布控制单元将访问请求输出到互连60。此时,请求发布控制单元向中央总线控制单元50传输访问大小信息,该访问大小信息指示输出到互连60的访问请求的访问大小。当请求发布控制单元被授予访问权限并且没有接收到来自主设备的访问请求时,请求发布控制单元向中央总线控制单元50返回所授予的访问权限。

校正量计算单元554确定是否从对应于授予访问权限的主设备的请求发布控制单元接收到访问大小信息(步骤a6)。当校正量计算单元554接收到访问大小信息时,校正量计算单元554基于由访问大小信息指示的访问大小来校正在步骤a5中减小的可以授予的权限的数目(步骤a7)。在步骤a7中,校正量计算单元554从基于大小的权重信息寄存器582获取与由访问大小信息指示的访问大小相对应的权重,并且计算所获取的权重和在步骤a2中获取的权重之间的差。校正量计算单元554通过将存储在寄存器583中的当前授予的权限的数目增加或减少所计算的权重之间的差来校正可以授予的权限的数目,该寄存器583存储当前授予的权限的数目。当所计算的权重之间的差为零时,不对可以授予的权限的数目进行校正。

当校正量计算单元554确定未接收到访问大小信息时,返回量计算单元555从请求发布控制单元接收访问权限返回信号。在这种情况下,返回量计算单元555恢复在步骤a5中减小的可以授予的权限的数目(步骤a8)。在步骤a8中,返回量计算单元555通过将存储在寄存器583中的当前授予的权限的数目减小在步骤a2中获取的权重来将可以授予的权限的数目增加在步骤a2中获取的权重,该寄存器583存储当前授予的权限的数目。

从请求发布控制单元输出的访问请求由互连60仲裁并且存储在存储器控制器70的缓冲器71中。存储器控制器70根据存储在缓冲器71中的访问请求对存储器80执行存储器访问。当基于访问请求的存储器访问完成时,存储器控制器70释放缓冲器71的条目。此时,存储器控制器70将释放通知信号传输到中央总线控制单元50。进一步地,存储器控制器70向中央总线控制单元50通知释放大小信息,该释放大小信息指示访问请求的释放的访问大小。

返回量计算单元555确定是否从控制器70接收到释放通知信号(步骤a9)。当返回量计算单元555确定接收到释放通知信号时,返回量计算单元555将可以授予的权限的数目增加由与从存储器控制器70输出的释放大小信息指示的访问大小相对应的权重(步骤a10)。在步骤a10中,返回量计算单元555从基于大小的权重信息寄存器582获取与由释放大小信息指示的访问大小相对应的权重。返回量计算单元555可以通过将存储在寄存器583中的当前授予的权限的数目减少从基于大小的权重信息寄存器582获取的权重来将可以授予的权限的数目增加与由释放大小信息指示的访问大小相对应的权重,该寄存器583存储当前授予的权限的数目。

[结论]

在本实施例中,中央总线控制单元50基于授予访问权限的访问请求的访问大小来管理可以授予的权限的数目。例如,当中央总线控制单元50向某个主设备授予访问权限时,中央总线控制单元50通过根据访问大小的权重对授予的访问权限所消费的权限的数目进行加权。例如,当访问大小越大时,设置的权重就越大,授予访问大小较小的访问请求的访问权限的消费权限的数目小于授予访问大小较大的访问请求的访问权限的权限的数目。这样,通过根据访问大小改变消费权限的数目,当存在访问大小较小的许多访问请求时,可以增加可以授予的权限的剩余数目,这些权限未被消费,以便可以向更大数目的访问请求授予访问权限。另一方面,当存在访问大小较大的许多访问请求时,可以减少可以授予的权限的剩余数目,这些权限未被消费,从而可以抑制向访问请求过度授予访问权限。

访问大小较小的访问请求在短时间内访问存储器80,使得缓冲器7中的停留时间较短。另一方面,访问大小较大的访问请求在长时间内访问存储器80,使得访问请求在缓冲器7中的停留时间长。在本实施例中,使用根据访问大小的权重,并且根据访问大小来控制访问请求所消费的访问权限的数目。通过这样做,可以根据访问请求在缓冲器71中的停留时间的长度来动态控制可授予访问权限的数目,从而可以消除访问请求在总线上的停留并且提高存储器在各种条件下的效率。

与国际公布号2017/056132相比,在国际公布号2017/0561中,访问权限的所有消费权限的数目均为“1”。例如,在国际公布号2017/056132中,当可以授予的权限的最大数目存储在可授予最大数目设置寄存器中时,中央总线控制单元向32个访问请求授予访问权限,而与访问大小无关。存储器访问所需的时间根据访问大小而有所不同,例如,访问大小为64字节的存储器访问所需的时间短于访问大小为256字节的存储器访问所需的时间。当存储在存储器控制器的缓冲器中的访问请求的访问大小是64字节时,缓冲器比存储在缓冲器中的访问请求是256字节的情况更早释放。然而,在国际公布号2017/056132中,当授予32个访问权限时,在实际释放缓冲器之前没有授予新访问权限。存在从授予访问权限到访问请求实际存储在缓冲器中的时间滞后。因此,在国际公布号2017/056132中,当存在访问大小较小的许多访问请求时,迅速完成存储器访问,从而存在缓冲器中出现空白空间的时间段较长的可能性。

另一方面,在本实施例中,例如,当访问大小是64字节时的权重被设置为0.8,当访问大小是128字节时的权重被设置为0.9,并且当访问大小是256时的权重被设置为1。在本实施例中,例如,当所有访问大小都是64字节时,可以相对于可以授予“32”的权限的最大数目授予40个访问权限。当所有访问大小为256字节时,可以授予访问权限,其数目与可以授予“32”的权限的最大数目相同。在本实施例中,当可以授予的权限的最大数目被设置为其中没有访问权限停留在总线中最大访问大小为256字节的访问请求的值时,可以授予64字节和128字节的访问请求的访问权限,该访问权限的数目超过可以授予的权限的最大数目,其中存储器访问所需的时间很短。通过这样做,当访问大小较小时,可以通过增加授予的访问权限的数目来缩短缓冲器中出现空白空间的时间段,并且提高存储器效率。另一方面,当访问大小很大时,抑制了过度授予访问权限,并且可以抑制访问请求在总线中的停留。

在本实施例中,还具有如下效果:可以通过调整根据访问大小的权重来调整强调效率的操作和改善延迟的操作之间的平衡。例如,当优先考虑存储器效率时,可以通过为访问大小较小的访问请求的权重设置为较小值来增加可以授予访问大小较小的访问请求的访问权限的数目,因此可以实现强调存储器效率的操作。另一方面,当将访问大小较小的访问请求的权重设置为接近1的值时,可以抑制可以授予访问大小较小的访问请求的访问权限的数目的增加,因此,可以降低访问请求停留在总线中的可能性,并且实现强调改善延迟的操作。

[第二实施例]

接下来,将对第二实施例进行描述。图5示出了根据第二实施例的电子设备中使用的权限授予选择控制单元的配置示例。在本实施例中,电子设备的配置可以与图1中所示的配置相同。中央总线控制单元的配置可以与图2中所示的配置相同。在本实施例中使用的权限授予选择控制单元501a具有以下配置:访问大小历史存储单元584被添加到在图3所示的第一实施例中使用的权限授予选择控制单元501的配置中。进一步地,权限授予选择控制单元501中的初始权重信息寄存器581由权重生成单元557代替。其他点可以与第一实施例的那些点相同。

访问大小历史存储单元584存储从请求发布控制单元通知的访问大小信息的历史。权重生成单元557是指访问大小历史存储单元584,并且基于存储在访问大小历史存储单元584中的访问大小信息的历史根据估计要由主设备发布的访问请求的访问大小来生成权重。例如,权重生成单元557和访问大小历史存储单元584分别对应于被包括在电子设备10中的多个主设备布置。与每个主设备相对应的访问大小历史存储单元584存储从与主设备相对应的请求发布控制单元通知的访问大小信息的历史。与每个主设备相对应的权重生成单元557是指与主设备相对应的访问大小历史存储单元584,并且根据估计要由主设备发布的访问请求的访问大小来生成权重。

当请求发布控制单元23、33和43(参见图1)分别将由主设备a20、主设备b30和主设备x40发布的访问请求输出到互连60时,请求发布控制单元23、33和43向中央总线控制单元50输出访问大小信息。例如,访问大小历史存储单元584存储每个主设备的预先确定的数目的多条访问大小信息。存储在访问大小历史存储单元584中的多条访问大小信息的数目不受特别限制,但是例如将该数目设置为五个。

权重生成单元557基于例如存储在访问大小历史存储单元584中的访问大小信息的历史来估计下一次由主设备发布的访问请求的访问大小。例如,权重生成单元557通过预先确定的统计方法以统计方式处理五条访问大小信息,然后估计下一次由主设备发布的访问请求的访问大小。例如,权重生成单元557使用由最近的五条访问大小信息指示的访问大小的平均值作为下一次由主设备发布的访问请求的访问大小的估计值。可替代地,权重生成单元557可以使用通过使用预先确定的计算公式从平均值计算的值作为下一次由主设备发布的访问请求的访问大小的估计值。进一步地,权重生成单元557可以使用由五条访问大小信息中的最近一条访问大小信息指示的访问大小作为下一次由主设备发布的访问请求的访问大小的估计值。权重生成单元557中的访问大小估计方法可以被配置为通过使用例如图中未示出的寄存器等可切换。

权重生成单元557生成与估计的访问大小相对应的权重。在权重生成单元557中,例如,可以将与初始权重信息寄存器581(参见图3)中设置的权重相同的权重设置为初始值。当访问权限授予目的地确定单元551确定访问权限授予目的地的主设备时,访问权限授予目的地确定单元551获取与下一次由主设备发布的访问请求的访问大小的估计值相对应的权重。当授予访问权限时,可授予性确定单元552通过使用从权重生成单元557获取的权重来更新存储在寄存器583中的当前授予的权限的数目,所述寄存器583存储当前授予的权限的数目。

当校正量计算单元554从授予访问权限的请求发布控制单元接收访问大小信息时,校正量计算单元554基于当授予访问权限时添加到寄存器583的权重与与由访问大小信息指示的访问大小相对应的权重之间的差来校正存储在寄存器583中的当前授予的权限的数目。进一步地,当从向其授予访问权限的请求发布控制单元返回访问权限时,返回量计算单元555从存储在寄存器583中的当前授予的权限的数目中减去当授予访问权限时添加到寄存器583的权重,所述寄存器583存储当前授予的权限的数目。

在本文中,权限授予选择控制单元501a向请求发布控制单元授予访问权限时的定时和权限授予选择控制单元501a从请求发布控制单元接收访问大小信息时的定时之间存在预先确定的时间差。进一步地,权限授予选择控制单元501a向请求发布控制单元授予访问权限时的定时和权限授予选择控制单元501a从请求发布控制单元接收访问权限返回信号时的定时之间存在预先确定的时间差。为了调整时间差,校正量计算单元554和返回量计算单元555可以通过以预先确定的时间延迟数据的fifo(先入先出)等接收由权重生成单元557生成的权重。在这种情况下,即使当由权重生成单元557生成的权重在访问权限的授予和访问大小信息的接收之间的时段期间改变时,校正量计算单元554还可以通过使用授予访问权限时使用的权重来校正当前授予的权限的数目。进一步地,返回量计算单元555可以将当前授予的权限的数目增加授予访问权限时使用的权重。

[结论]

在本实施例中,权重生成单元557基于实际生成的访问请求的访问大小来估计由主设备发布的访问请求的访问大小,并且当授予访问权限时生成权重。通过使用访问大小的历史信息,可以更准确地估计由主设备发布的访问请求的访问大小,并且可以通过使用根据估计的访问大小的权重来防止延迟的降级以及存储器效率的降低。

[第三实施例]

随后,将对第三实施例进行描述。图6示出了根据第三实施例的电子设备中使用的存储器控制器。在本实施例中,电子设备的配置可以与图1中所示的配置相同。中央总线控制单元的配置可以与图2中所示的配置相同。在本实施例中,存储器控制器70b除了缓冲器71之外,还具有高速缓存72、预取控制单元73、以及控制寄存器74。其他点可以与第一实施例或第二实施例的那些点相同。

在对存储器80进行存储器访问期间,当存储器控制器70b读取存储器80时,存储器控制器70b除了实际访问大小的数据之外还读取(预取)额外数据,并且将这两个数据存储在高速缓存72中,以便当读取额外数据(读取命中),不读取存储器80。从而可以减少延迟。然而,当未使用预取的数据或数据在使用之前从高速缓存中被排出时,浪费了预取的数据并且降低存储器80的访问效率。在本实施例中,存储器控制器70b基于诸如qos之类的信息来控制预取。

当读取存储器80时,存储器控制器70b的预取控制单元73确定是否执行预取。控制寄存器74存储将主设备标识为预取对象的信息以及当执行预取时的最大访问大小。当发生对连续地址的访问请求时,预取有效,并且根据存储器访问的特点确定预取是否有效。在控制寄存器74中,生成对连续地址的访问请求的主设备被设置为预取主设备。预取控制单元73确定是否对存储在控制寄存器74中作为预取主设备的主设备执行预取。当预取控制单元73执行预取时,预取控制单元73将预取的数据临时存储在高速缓存72中。当读取访问请求的访问类型时,预取控制单元73通过使用访问大小信息提前读取高速缓存72来提高存储器访问的效率。

更具体地,预取控制单元73从中央总线控制单元50b获取访问大小信息,并且估计下一次由预取主设备发布的访问大小。进一步地,预取控制单元73基于存储在qos信息寄存器502(参见图2)中的qos的设置信息来确定预取主设备是否将发布许多访问请求,并且向访问权限授予最新信息。预取控制单元73检查存储在缓冲器71中的访问请求的发布源的主设备,并且检查在缓冲器71中存储多少个由与预取主设备不同的主设备发布的访问请求。预取控制单元73确定是否通过全面检查每个主设备的最新访问大小、从qos设置估计的预取主设备的下一个频带、从qos设置估计的其他主设备的频带、由预取主设备发布的并且存储在缓冲器71中的访问请求的数目、以及由其他主设备发布的并且存储在缓冲器71中的访问请求的数目来执行预取。

例如,当由预取主设备发布的大量访问请求被存储在缓冲器71中时,预取主设备已经发布了该大量的访问请求,使得预取很有可能是有效的。当预取主设备已经发布了大量访问请求时,预取控制单元73可以确定执行预取。进一步地,预取控制单元73可以检查由预取主设备当前发布的访问请求的访问大小的比率。在预取主设备发布最大访问大小的访问请求的情况下存在合并效果,使得预取控制单元73可以确定在这种情况下执行预取。

关于qos设置,当预取主设备的频带很大时,很可能使用预取数据。当除了预取主设备之外的主设备的频带为低时,当执行预取时直到覆盖存储在高速缓存72中的数据的延长时间很长。当预取主设备的频带较大或者预取主设备之外的主设备的频带为低时,预取控制单元73可以确定执行预取。预取控制单元73可以通过综合检查上述项目等来确定是否执行预取。

[结论]

在本实施例中,预取控制单元73基于由主设备发布的访问请求的访问大小和对主设备的访问权限的授予状态来确定是否执行预取。例如,当期望主设备将大量相同访问大小的读取请求输出到连续地址时,可以通过执行预取来有效执行存储器访问。具体地,在ddr存储器等的情况下,除非读取大小大于某个值,否则效率可能显著降低。

[第四实施例]

[总线生成器]

随后,将对第四实施例进行描述。在本实施例中,总线生成器根据各种设置信息在半导体器件中生成总线电路信息。图7示出了总线生成器800的硬件配置示例。总线生成器800被配置为计算机设备,其包括例如cpu801、存储器802、键盘804、鼠标805、监控器806、以及总线807。该存储器808存储用于使计算机设备作为总线生成器800操作的总线生成工具803。在计算机设备中,cpu801根据从存储器802读取的总线生成工具803执行处理,从而可以使计算机设备作为总线生成器800进行操作。

图8示出了总线设计的概要流程。首先,考虑市场中的用例等(步骤s101),并且讨论总线所需的性能(步骤s103)。接下来,根据所需性能等讨论总线结构(步骤s103)。总线结构的讨论包括例如是否使用中央总线控制单元50(见图1)的讨论。

当确定总线结构时,将所确定的总线结构所需的设置信息输入到总线生成器(步骤s104)。总线生成器生成并输出总线的电路信息(步骤s105)。例如,以rtl(寄存器传输级别)描述电路信息。此后,逻辑合成总线的电路信息(步骤s106),并且随后,执行布局设计(步骤s107)。步骤s104和s105表示通过使用总线生成器执行设计的阶段。

图9示出了输入设置信息的屏幕示例。例如,在监控器806上显示提示输入设置信息的屏幕(参见图7),并且用户通过使用键盘804和鼠标805向总线生成器800给出各种设置。例如,当用户从图9所示的屏幕上的菜单901中选择“qos”,显示子菜单902。当用户在子菜单902中选择“初始值”时,显示用于输入每个主设备的访问大小的输入屏幕903。在输入屏幕903上,例如,用户可以选择中央控制方法,并且还可以选择高速缓存的存在或不存在等。在输入屏幕903上,用户可以输入例如要在初始权重信息寄存器581(参见图3)中设置的信息等。

例如,用户将主设备的访问目的地的信息、要使用的时钟的信息、与总线宽度有关的信息、与功能安全有关的信息等输入到总线生成器800中作为与输出存储器的访问请求的主设备有关的信息。进一步地,用户输入地址区域的信息、要使用的时钟的信息、与总线宽度有关的信息、与功能安全有关的信息等作为与从主设备访问的从设备有关的信息。进一步地,用户输入指定qos方法的信息、每个方法的详细设置等作为与仲裁器有关的信息。

图10示出了到/来自总线生成器的输入/输出数据。总线生成器800例如具有总线结构信息生成单元、总线组件生成单元、中央总线控制单元生成单元、子总线控制器生成单元、合并单元等作为功能块。时钟信息101、连接信息102、从设备信息103、主设备信息104、qos方法选择信息105、以及qos方法的详细设置信息106被输入到总线生成器800。这些多条信息通过如图9所示的设置信息输入屏幕输入。

总线生成器800通过使用时钟信息101、连接信息102、从设备信息103、主设备信息104等生成在主设备和从设备之间耦合的总线的结构信息。进一步地,总线生成器800基于所生成的总线的结构信息和从例如提供各种ip核的供应商提供的各种功能块的电路信息来生成各种总线组件的电路信息。

总线生成器800生成中央总线控制单元的电路信息,该中央总线控制单元通过使用总线的结构信息、qos方法选择信息105、各种功能块的电路信息等对由主设备输出的访问请求执行访问控制。由总线生成器800生成的中央总线控制单元的电路信息示出了例如图2中所示的中央总线控制单元50的电路配置。

总线生成器800通过使用中央总线控制单元的电路信息生成子总线控制器的电路信息,该子总线控制器基于中央总线控制单元的控制进行操作。子总线控制器的电路信息表示例如图1所示的子总线控制器22、32和42的电路配置。总线生成器800合并总线组件的电路信息、中央总线控制单元的电路信息、以及子总线控制器的电路信息,并且输出总线电路信息113。总线电路信息113例如是通过以rtl描述与位于主设备和图1所示的电子设备10中的存储器80之间的总线有关的电路部分而获得的信息。

[结论]

在本实施例中,总线生成器800被用于生成总线系统。通过将各种设置信息等输入到总线生成器800中,可以自动生成例如位于主设备和图1所示的电子设备10的存储器80之间的总线系统。

虽然已经基于实施例对由发明人做出的发明进行了具体描述,但是毫无疑问,本发明不限于这些实施例,并且可以在不背离本发明的范围的情况下进行各种修改。

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