CN202815824U - 微控制器系统 - Google Patents
微控制器系统 Download PDFInfo
- Publication number
- CN202815824U CN202815824U CN201120543840.4U CN201120543840U CN202815824U CN 202815824 U CN202815824 U CN 202815824U CN 201120543840 U CN201120543840 U CN 201120543840U CN 202815824 U CN202815824 U CN 202815824U
- Authority
- CN
- China
- Prior art keywords
- burst
- multiport
- controlled
- controlled device
- primary controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本实用新型提供一种微控制器系统,其特征在于包括:多个主控器;多端口受控器,所述多端口受控器包含多个受控器端口以及一多端口受控仲裁器,其中所述多端口受控仲裁器经配置以在所述受控器端口之间作出仲裁;系统总线,其使所述主控器与所述多端口受控器连接;以及调度器,其经配置以向获胜主控器准予总线存取以在所述获胜主控器与所述多端口受控器之间传递数据突发;其中所述调度器经配置以向所述多端口受控仲裁器提供调度信息,所述调度信息包含主控器分类信息以及预期突发信息,所述预期突发信息是基于调度器对于预期主控器对所述多端口受控器的预期总线存取的确定,所述主控器分类信息将所述预期主控器分类。
Description
技术领域
本实用新型的标的物一般来说涉及电子装置,且更具体来说涉及用于微控制器的通信总线。
背景技术
微控制器可包含使用系统总线相互通信的各种模块(例如处理器、存储器控制器、显示器控制器等等)。举例来说,主控模块通过提供地址和控制信息来起始总线上的总线存取——读取及写入操作。受控模块对来自主控模块的读取或写入操作作出响应。解码器选择对应于由主控模块提供的地址的特定受控模块。一般来说,在任何给定时间仅有一个主控模块在总线上通信。仲裁器管理总线存取以确保仅有一个主控模块正使用总线。仲裁器可使用各种仲裁方案(例如,循环法、时分多址(TDMA)等等)中的任一者。
实用新型内容
本实用新型所要解决的技术问题是改进因突发中断造成的低效率。
本实用新型的特定实施例可经实施以实现以下优势中的一个或一个以上优势:(1)系统总线调度器和多端口受控仲裁器可有效满足总线主控器的带宽和延迟约束,同时保留内部多端口受控器最优化;(2)调度信息允许预期突发跟踪以及有效的突发中断和恢复;以及(3)调度信息允许多端口受控模块预测适当命令的启动,避免命令和数据的取消以及使延迟隐藏和到可用输出的数据路由最大化。
在一个实施例中,本实用新型提供一种微控制器系统,其特征在于包括:多个主控器;多端口受控器,所述多端口受控器包含多个受控器端口以及一多端口受控仲裁器,其中所述多端口受控仲裁器经配置以在所述受控器端口之间作出仲裁;系统总线,其使所述主控器与所述多端口受控器连接;以及调度器,其经配置以向获胜主控器准予总线存取以在所述获胜主控器与所述多端口受控器之间传递数据突发;其中所述调度器经配置以向所述多端口受控仲裁器提供调度信息,所述调度信息包含主控器分类信息以及预 期突发信息,所述预期突发信息是基于调度器对于预期主控器对所述多端口受控器的预期总线存取的确定,所述主控器分类信息将所述预期主控器分类。
在另一个实施例中,所述多端口受控仲裁器经配置以接收所述调度信息且使用所述调度信息在所述受控器端口之间作出仲裁。
在另一个实施例中,所述多端口受控器为管线式存储器模块。
在另一个实施例中,所述主控器分类信息是基于所述主控器的带宽和/或延迟要求,且其中所述多端口受控仲裁器和所述调度器经配置以使用所述主控器分类信息确定总线存取的优先级。
在另一个实施例中,来自所述调度器的所述调度信息包含当前突发的所要求中断的指示。
在另一个实施例中,所述调度器经配置以通过中止当前受控器端口上的所述当前突发来中断所述当前突发且在所述当前受控器端口上起始新的突发。
在另一个实施例中,来自所述调度器的所述调度信息包含先前受控器端口上的先前已中断突发的所要求突发恢复的指示。
在另一个实施例中,调度器经配置以恢复所述先前受控器端口上的所述先前已中断突发。
在另一个实施例中,所述多端口受控器经配置以向所述调度器发送确认以承诺恢复所述先前已中断突发,且其中所述调度器经配置以响应于接收到所述确认而针对所述先前已中断突发向先前主控器准予恢复总线存取。
在另一个实施例中,所述预期突发信息包含用于所述预期主控器的差动识别标签,所述差动识别标签指示所述预期主控器是否不同于当前主控器。
附图说明
图1是实例性微控制器的框图。
图2是展示实例性系统总线矩阵的示意图。
图3是图解说明在调度器与多端口受控模块之间调度信息的流程的示意图。
图4至图6是图解说明系统总线调度器与多端口受控模块之间调度信息的通信的实例性场景的时序图。
图7是为使用调度信息而由多端口受控模块执行的实例性过程的流程图。
具体实施方式
系统概述
图1是实例性微控制器100的框图。微控制器100包含一个或一个以上主控模块101-105,总量高达M个模块。主控模块包含微控制器101、直接存储器存取(DMA)控制器、显示器控制器103以及高速外围设备总线主控器104。微控制器100还包含一个或一个以上受控模块120-124,总量高达S个受控模块。受控模块包含多端口受控模块(例如存储器控制器)120、芯片上存储器121、低速外围设备总线桥122以及高速外围设备总线受控器123。模块使用系统总线矩阵111相互通信。
模块可由衬垫150-157连接到微控制器外的装置。举例来说,显示器控制器103可由衬垫150和151连接到显示器,高速外围设备总线主控器可由衬垫152和153连接到高速外围设备总线,多端口存储器控制器120可由衬垫154和155连接到存储器装置,以及高速外围设备总线受控器123可由衬垫156和157连接到高速外围设备总线。
多端口受控模块120使用调度信息在其端口之间作出仲裁。调度信息可包含主控器分类信息以及预期突发信息。
所示模块为实例,且各种类型的主控模块和受控模块中的任一者均可包含在微控制器100中。微控制器100可包含一个或一个以上主控模块以及一个或一个以上受控模块,且至少一个受控模块为多端口受控模块。
实例性系统总线矩阵
图2是展示实例性系统总线矩阵110的示意图。三个实例性主控模块200-202使用系统总线矩阵110通信。一个实例性多端口受控模块120使用系统总线矩阵110通信。多端口受控模块120可为(例如)多端口存储器模块。
总线层为经配置以载送地址“A”、控制“C”以及数据“D”信息的连接。数据信号可以是双向的。利用三个受控总线层260-262图解说明多端口受控模块120。多端口受控模块120可具有较多或较少的层。以三个总线主控层240-242来图解说明主控模块200-202,每一主控模块使用一个总线主控层。
系统总线矩阵110将总线主控层240-242动态路由到总线受控层260-262。系统总线矩阵110可使用由主控模块200-202提供的地址和控制信号路由所述层。控制信号可隐含地或明确地指示各种传递特性,例如数据方向;每一数据总线循环的字节数;传递突发的类型和长度;数据的类型、保护和安全属性;请求者识别;受控器可用性;以及其它的常规总线传递特性信息。
主控模块200-202中的任一者均可使用地址和控制信息的特定组合来起始总线存取。对应的解码器(解码器210-212中的一者)将地址信息解码以选择受控总线层260-262 中的一者。随后,对应的系统总线仲裁器(系统总线仲裁器220-222中的一者)使用仲裁方案来确定获胜的主控模块。随后,系统总线矩阵110使获胜主控模块的总线主控层连接到获胜主控模块的目标总线受控层。系统总线矩阵110通过驱动开关选择器230-232来连接所述层以使矩阵开关250-252来回切换。任何其它请求主控器模块均等待,直到新的仲裁发生。
由于目标总线受控层属于多端口受控模块120的多个端口中的一者,因此在多端口受控仲裁器280处发生另一仲裁。多端口受控仲裁器280从总线受控层260-262上的主控模块中确定同时发生的请求间的获胜主控模块。在多端口受控仲裁器280确定获胜的主控模块后,主控模块和受控模块可交换数据。举例来说,可在多端口受控模块120上的物理接口290上进行数据交换。可依据多端口受控模块120的内部状态延迟数据交换。
调度器225协调总线存取以满足对系统总线矩阵110上的各种模块的带宽和/或延迟约束。调度器225向系统总线仲裁器220-222发送指令以向主控模块200-202准予足够总线存取从而满足对主控模块的带宽和/或延迟约束。为满足所述带宽和/或延迟约束,调度器225将总线受控层260-262看作用于对多端口受控器处的已经过的存取计数的单个层。
可将数据交换压缩成指定长度的突发。举例来说,可在下一次仲裁(例如,由系统总线仲裁器220-222或多端口受控仲裁器280进行)选择新的主控层或多端口受控层前传递一定数量的数据字(例如,4、8、16或更多)。在一些情况下(例如,在显著工作负荷下),如果多端口受控仲裁器280以公平风格的仲裁选择总线受控层,那么即使调度器225试图协调总线存取,模块的带宽和/或延迟约束也可能不会得到满足。
一般来说,来自起始主控模块的总线受控层上的突发越长,起始主控模块将倾向于消耗的受控层带宽就越多。多端口受控模块120的物理接口290处的突发越长,起始主控模块将倾向于消耗的多端口受控器带宽就越多。主控模块起始总线存取越频繁,其将倾向于消耗的带宽就越多。
考虑实例性场景,其中第一主控模块200存取用于长突发的多端口受控模块120。在长突发期间,第二主控模块201试图存取多端口受控模块120。调度器225确定第二主控模块201为关键主控模块(例如)以使得延迟第二主控模块的存取会导致某个系统故障。调度器225确定第一主控模块200并不是关键的且一般来说已满足其带宽和延迟的要求。调度器225可中断第一主控模块220的突发以允许第二主控模块201存取多端口受控模块120。稍后可接着恢复第一主控模块220的突发。
中断突发允许主控模块200和201两者均满足其带宽和延迟的要求;然而,多端口 受控模块120可能受到所述突发中断的干扰。举例来说,多端口受控模块120可请求若干系统总线时钟循环以进行某些操作,例如取消命令,终止已在物理接口290处开始的突发或开始新的突发。突发中断还可能会导致在多端口受控模块120的物理接口290未能同时执行当前的数据突发以及用于下个数据突发的命令。举例来说,在多端口受控模块120为管线式多端口存储器模块的情况下,存储器请求的管线化可能如上所述受到干扰。
调度器225向多端口受控仲裁器280提供调度信息。调度信息有助于(例如)使可能由突发中断引起的干扰减轻。调度器225可使用额外的通信信道270-272向多端口受控仲裁器280提供调度信息。对于总线受控层260-262中的每一者来说均可存在一个额外的通信信道。多端口受控仲裁器280使用调度信息进行总线受控层260-262间的仲裁。
调度信息可包含主控器分类信息以及预期突发信息。预期突发信息可指示(例如)针对总线受控层上当前突发的请求突发中断或总线受控层上先前已中断突发的请求突发恢复。主控器分类信息基于(例如)带宽和/或延迟的要求将主控模块分类。主控器分类信息可能是静态或动态的。主控器分类信息可将特定的主控模块(且因此由所述主控器进行的每个总线存取)或由主控模块进行的特定总线存取分类。下文中参考表1和表2对调度信息的实例进行描述。
表1展示用于主控器分类信息的实例性类别以及对应的实例性符号和值。所述类别标记有“下个突发主控器关键性等级”(NMCC)。一般来说,所述类别指示用于主控模块的系统操作(或由主控模块进行的特定总线存取)的关键性级别。
下个突发主控器关键性等级 | NMCC符号 | 二进制编码 |
延迟关键 | LC | 111 |
带宽关键 | BC | 110 |
延迟敏感,自限吞吐量 | LSL | 101 |
延迟敏感,无限吞吐量 | LSU | 100 |
带宽敏感,自限吞吐量 | BSL | 011 |
带宽敏感,无限吞吐量 | BSU | 010 |
不敏感,自限吞吐量 | NSL | 001 |
不敏感,无限吞吐量 | NSU | 000 |
表1
所示NMCC类别不需要与任一特定优先级相关联。在一些实施方案中,隐含的原生优先级可在等级对之间对应。调度器225和多端口受控仲裁器280可经编程以一致的方法响应不同的NMCC类别。举例来说,调度器225和多端口受控仲裁器280的NMCC 类别的优先排序可能相同(例如,使得具有较高优先级的主控模块能够导致具有较低优先级的主控模块的突发发生突发中断)。
延迟关键主控模块可为要求在指定时间量(例如,可能短于调度器225的最长周转时间的时间)内存取多端口受控模块120以完成仅仅对带宽关键主控模块的整个仲裁循环的主控模块。如果延迟关键主控模块不能在指定时间量内存取多端口受控模块120,则应用程序或系统产生故障。举例来说,在经由外部接口要求实时高响应性的情况下,系统可包含延迟关键主控器。
带宽关键主控模块可为经由多端口受控模块120上的某些端口要求最小平均数据带宽的主控模块。可在可取决于调度器225编程的任意时期内指定带宽以使得调度器225能够执行动作以达到要求。如果带宽关键主控器不能得到其最小带宽,则应用程序或系统产生故障。举例来说,在一些应用程序中,图1的显示器控制器103可属于此类别。
延迟敏感主控模块可为当对多端口受控模块120的平均存取时间增加时其性能降低的主控模块。举例来说,在一些应用程序中,图1的微处理器核心101可属于此类别。
带宽敏感主控模块可为当通过多端口受控模块120的端口的平均带宽减小时其性能降低的主控模块。举例来说,图1的高速外围设备总线主控器104可属于此类别。
对数据流时序不敏感的主控模块可为不显示出对用户有任何可见影响的主控模块。一般来说,调度器225和多端口受控仲裁器280经配置以中断来自不敏感主控模块的突发从而有利于来自时序敏感的主控模块的突发。
还可依据流量控制区别主控模块。自限吞吐量主控模块具有本质有限的系统总线请求率。举例来说,链接到外部收发器的主控模块可受到其波特率的限制。无限吞吐量主控模块仅仅为系统有限的且能够潜在地使系统总线矩阵110和多端口受控仲裁器280中的请求达到饱和。因此,当向自限主控模块准予存取时,很快会出现新的请求的可能性较低。依据性能目标,为主控模块请求排序时,调度器225和多端口受控仲裁器280能够首先或最后向自限主控器准予存取。
在操作中,调度器225能够向多端口受控仲裁器280提供更新的主控器分类信息以反映出下个突发主控器请求的主控器分类。在断言用于当前突发的地址和控制信息后,调度器225能够提供用于下个突发的更新的主控器分类信息。举例来说,根据对来自主控模块的新的请求进行评估时由调度器225进行的新的调度仲裁,在当前突发期间的任何时候,调度器225都能够提供用于下个突发的经更新的主控器分类信息。
表2展示用于预期突发信息的实例性类别以及对应的实例性符号和值。所述类别标记有“下个主控器突发请求”(NMBR)。一般来说,调度器225发送预期下个突发信 息以通知多端口受控模块120与当前或过去主控模块及突发相关的即将到来的主控模块及突发。所述类别指示起始突发中断的时间或起始已中断突发的突发恢复的时间。可同时发送预期突发信息且将相同的时钟时序看作主控器分类信息。
下个主控器突发请求 | NMBR符号 | 二进制编码 |
突发恢复或相同主控器 | MR/SM | 11 |
突发中断 | MB | 10 |
其它主控器 | OM | 01 |
非待决请求 | NM | 00 |
表2
调度器225发送“非待决请求”以指示所述调度器仍未确定在当前存取后是否会存在主控模块正试图请求对给定总线受控层的存取。在多端口受控模块120的一些实施方案中,在接收用于特定端口的“非待决请求”值后,所述多端口受控模块可确定准予对其它端口的存取。
调度器225可能还包含带有预期突发信息的下个主控器识别标签。下个主控器识别标签识别用于下个突发的预测主控器。下个主控器识别标签可为差动识别标签。差动识别标签指示下个预期主控模块跟当前主控模块相同还是不同。差动识别标签可指示预期主控模块是否与当前主控模块不同,预期主控模块是否具有跟当前主控模块不同的分类或预期主控模块的特定突发是否具有跟当前突发不同的分类。
调度器225发送“其它主控器”以指示,在给定总线受控层上的下个突发处,不同的主控模块将请求所述给定总线受控层。不同的主控模块具有由主控器分类信息指示的关键性。这是差动识别标签的实例,因为“其它主控器”消息指代主控模块从当前突发向下个突发的变化。
调度器225发送“突发中断”以指示所述调度器要求中断当前突发以尽可能快地插入下个请求主控器突发。
调度器225发送“突发恢复或相同主控器”以指示,在给定总线受控层上的下个突发处,将存取所述层的主控模块具有由主控器分类信息指示的关键性,且主控模块将为最后具有所述关键性的突发中断的主控模块(如果有的话)或存取具有所述关键性的总线受控层的当前或最后的主控模块。在一些实施方案中,(例如)在起始某一关键性的新的可中断突发前调度器225并未从同一关键性的已中断突发中恢复的情况下,调度器225使用用于“突发恢复”和“相同主控器”的不同的二进制编码。
如果调度器225在至少一个突发中断已出现且突发中断后仍未起始与当前突发相比关键性较低的突发后断言“突发恢复或相同主控器”,则调度器225将计划在当前突发结束时恢复已中断的突发。否则,多端口受控模块120确定是否基于其内部最优化约束以及主控器分类信息选择主控器。
当调度器225努力满足主控器数据流时序的要求(例如当总线受控层忙于后台长突发且特定主控模块具有足够高的带宽要求时,所述带宽要求不再能仅仅通过在其它主控模块突发之间插入所述特定主控模块的突发而得到满足)时,调度器225最有可能中断突发。举例来说,在总线受控层的仲裁为管线式以使得由于在来自同一主控模块的下个突发上缺少仲裁器可见度,来自同一主控模块的连续突发导致在总线受控层上产生非连续突发的情况下,可能发生这种情况。
通过向多端口受控模块120发送来自调度器225的调度信息,调度器225和多端口受控模块120可有目的地中断突发以增加总线受控层上的可用带宽。举例来说,在多端口受控模块120具有高存取延迟(例如,由管线化引起)的情况下,可通过经由使突发成对交错而执行延迟隐藏来增加总线受控层上的可用带宽,参考图5和图6对其进行更详细的描述。
接收调度信息后,多端口受控模块120具有关于即将到来的调度器确定以及即将到来的突发的关键性的可用信息。通过使用所述信息以及当前待决的请求,在仲裁期间,多端口受控模块120可与调度器225一致行动以确定准予从其端口的存取的顺序,且在由调度器225要求时,有效地允许突发中断。
一旦在多端口受控物理接口290处起始,某些命令或突发就不能被打断。多端口受控模块120可发送信息以向调度器225指示总线受控层当前突发能够被中断且无任何影响或影响最小的时间。多端口受控模块120可发送信息以指示在突发已中断后,针对将在多端口受控物理接口290处启动的对应命令提交下个主控器突发恢复请求的时间。举例来说,多端口受控模块120可通过断言下个主控器已中断突发确认(NMBA)的消息向用于特定总线受控层的调度器225发送这两种类型的信息。
在一些实施方案中,即使先前未提出下个主控器突发中断的请求,多端口受控模块120也可在每个适当的时隙向调度器225发送NMBA消息。在一些其它实施方案中,多端口受控模块120仅在接收下个主控器突发中断请求后向调度器发送NMBA消息。
多端口受控仲裁器280可在接收下个主控器突发中断请求并发送下个主控器已中断突发确认后,中断当前的主控器突发以起始较高优先级的主控器突发。在一些实施方案中,多端口受控仲裁器280仅在NMBA已发送后中断突发。当多端口受控模块120已 承诺通过发送对下个主控器突发恢复请求的下个主控器已中断突发确认响应来起始突发恢复时,多端口受控模块120起始多端口受控物理接口290上的恢复命令,且调度器225指示多端口受控仲裁器280在总线受控层上的当前突发结束后恢复已中断的突发。
调度信息流
图3是图解说明在调度器225与多端口受控模块120之间调度信息的流程的示意图。NMCCx是对多端口受控器的端口x的下个主控器关键性等级。NMBRx是向多端口受控器的端口x的下个主控器突发请求。NMBAx是来自多端口受控器的端口x的下个主控器已中断突发确认。NMCCy是对多端口受控器的端口y的下个主控器关键性等级。NMBRy是向多端口受控器的端口y的下个主控器突发请求。NMBAy是来自多端口受控器的端口y的下个主控器已中断突发确认。NMCCz是对多端口受控器的端口z的下个主控器关键性等级。NMBRz是向多端口受控器的端口z的下个主控器突发请求。NMBAz是来自多端口受控器的端口z的下个主控器已中断突发确认。
实例性时序图
图4至图6是图解说明系统总线调度器(例如,图2的调度器225)与多端口受控模块(例如,图2的多端口受控模块120)之间调度信息的通信的实例性场景的时序图。
时序图展示时钟信号、用于第一受控总线层x的信号、用于第二受控总线层y的信号以及多端口物理接口。来自主控模块的存取请求展示为端口x请求(Port x Request)和端口y请求(Port y Request)。这些请求可包含用于x和y受控总线层的地址和控制信息。举例来说,可在存取请求的第一时钟循环中将每一所请求突发的长度编码。
所图解说明的存取经管线化,以使得在多端口受控器断言了对应的相应端口x准备就绪(Port x Ready)信号或端口y准备就绪(Port y Ready)信号后相应数据出现在突发号n的端口x数据(Port x Data)或端口y数据(Port y Data)上相同的时钟循环考虑到出现在端口x请求或端口y请求上的突发号n+1的地址和控制信息。端口x数据和端口y数据是双向的数据总线。
NMCCx和NMCCy是下个突发主控器关键性等级的信号。NMBRx和NMBRy是下个主控器突发请求的信号。NMBAx和NMBAy是下个主控器已中断突发确认的信号。
这些时序图中的实例性多端口受控模块具有单个信道物理接口,因此其在一个时钟循环内执行用于单个地址的数据传递。多端口受控模块通过断言物理接口命令(Command)总线上的单个命令来在物理接口上起始四差拍突发传递。随后在所述命令已被断言后,突发传递开始新的时钟循环。
展示三个竞争性主控模块A、B和C的请求及存取。通过利用识别请求主控模块A、 B或C的首字母后面加上突发所用的传递号(其指示突发的特定差拍)形成的唯一标签来指示多端口受控模块处给定存取的进展。举例来说,B4代表来自主控模块B的突发的第四差拍。
出于图解说明的目的,图表的时间线已分成对应于多端口受控物理接口处数据突发的时间片。这些时间片在图4中标记为400至406,在图5中标记为500至506,以及在图6中标记为600至606。
实例性时序图——无内部缓冲
图4是利用并未使用内部数据缓冲的单信道多端口受控模块的仲裁和数据流的实例性场景的时序图。所述实例图解说明非权威的突发中断和恢复。
由于在此实例性场景中,多端口受控模块并未使用内部数据缓冲,因此在唯一的时钟循环内,经由端口x数据或端口y数据(这取决于哪一个端口被多端口受控仲裁器准予存取)同时且组合地完成物理接口数据(Data)总线处的每一传递。在命令总线上接收命令与数据总线上的对应第一突发差拍数据之间物理接口处的存取延迟小于所述突发的持续时间。传递的方向可从受控器到主控器或从主控器到受控器。
在时间片400期间,主控模块A在端口y请求上提出请求A0。虽然所述请求待决,但经由端口x请求从主控模块B发来新的请求B0。来自主控模块B的B0请求已由系统总线调度器立即转发到受控器端口x,且因此在断言端口x请求上的B0请求前,在NMBRx和NMCCx信号上无法获得对所述请求的任何预期。LSU的NMCCx值指示所述请求来自延迟敏感无限(Latency Sensitive Unlimited)吞吐量主控器,且NMBRx值OM指示此主控模块(B)与执行具有LSU关键性的存取的先前的主控模块不同。
在时间片400的第一时钟循环期间,主控模块A具有BSL(带宽敏感有限(Bandwidth Sensitive Limited))吞吐量的关键性,如NMCCy输入上所示。在此实例性场景中,所述系统认为BSL的优先级低于LSU。因此,多端口受控仲裁器可授权主控模块B尽可能快地(即,在时间片401期间出现的下个可用命令时隙)存取,其中B0展示在命令总线上且物理接口A0-A4数据突发正传递。每当在x和y端口上传递突发的有效数据差拍时,便断言相应端口x准备就绪和端口y准备就绪为高。
在时间片402开始时,系统总线从带宽关键(Bandwidth Critical)主控模块接收另一主控模块请求,如NMCCy多端口受控器输入上的BC值所指示。所述请求经调度以在y端口上进行下个存取。为帮助满足针对主控模块C的带宽约束(其可编程到系统总线调度器中),所述系统调度器确定应中断来自y端口上主控模块A的当前长突发以使主控模块C尽可能快地插入其突发。
在此实例性场景中,认为带宽关键主控模块C具有与当前延迟敏感(Latency Sensitive)主控模块B相比较高的优先级。因此,在时间片402开始时,尽管多端口受控仲裁器的关键性较低,但其仍确定支持y端口的遗漏(BSL主控模块A)。多端口受控仲裁器支持y端口的遗漏以更快地允许预见带宽关键主控模块C中断当前的突发。由于已提交端口y请求上的A4请求进行传递,因此为物理接口的命令总线上的四差拍数据突发启动命令。
在时间片403处,执行用于A4-A7突发差拍的数据传递。当输入用于A7突发差拍的地址阶段(address phase)时,多端口受控仲裁器断言下个主控器已中断突发确认NMBAy的输出以指示系统总线调度器应在随后的总线循环中断当前的主控模块A突发。在时间片403的结束时钟循环期间,系统总线调度器启用对主控模块C在端口y请求上请求的突发的第一地址和控制数据(C0)的驱动。
由于物理接口处的存取延迟,在y端口上在A7数据差拍之后不再存在可能传递的数据突发差拍且直到C0数据差拍为止才会存在所述差拍,因此在时间片404期间在端口x上向等待主控模块B准予存取。在时间片403结束时,一旦已在端口y请求上对C0请求进行取样,就利用下个已确定的突发流请求由系统总线调度器对NMCCy和NMBRy信号进行更新,同时C0命令经准备以用于在物理接口命令总线上启动。
在时间片404结束时,多端口受控仲裁器确定要在物理接口上启动的下个命令。当x端口上存在下个主控器突发请求上的非待决(No Pending)请求值(NM)且x端口上不再存在用以针对任意当前运行请求启动的命令时,多端口仲裁器确定下个时间片准予y端口存取。
因此,在时间片405开始时,当用于主控模块C的当前突发不再需要在物理接口上启动的命令且NMCCy和NMBRy指示下个突发恢复时,多端口受控模块断言下个主控器已中断突发确认输出。这承诺系统总线调度器和多端口受控仲裁器两者都进行突发恢复。多端口受控模块确定主控模块A已中断突发的状态以确定重新起始所述突发的位置。多端口受控模块在物理接口命令总线上启动A8命令。随后,在当前主控模块C突发结束后,系统总线调度器立即恢复已中断的主控模块A突发。
在时间片405结束时,由端口y请求输入上出现的A8请求确认突发恢复以使得在时间片406期间,能够在物理接口处启动用于主控模块A突发的下个命令A12。在A8请求后,立即更新下个主控器突发请求NMBRy和下个突发主控器关键性NMCCy以反映出下个预见突发的特性(在此实例中,同一主控模块A)。
实例性时序图-内部缓冲和读取突发交错
图5是利用使用内部读取数据缓冲的单信道多端口受控模块的仲裁和数据流序列的实例性场景的时序图。所述实例图解说明非权威的突发中断和恢复。
由于多端口受控模块使用内部读取数据缓冲,所以某些情况下在物理接口数据总线处的传递不会在同一时钟循环内经由端口x数据或端口y数据同时且组合地完成,而是会被延迟直到多端口受控仲裁器准予对适当端口的存取。命令总线上的命令启动与数据总线上对应的第一突发差拍数据之间的物理接口处的存取延迟大于突发的持续时间。主控模块A执行长读取突发;其它存取可为读取存取或写入存取。
当两个或两个以上主控模块在多端口受控仲裁器处各自具有用于新的突发的待决请求时,系统调度器开始使来自不同主控模块的突发成对交错以帮助降低在对应受控器端口处经历的平均存取延迟。举例来说,在使突发交错并未招致存取时间损失的情况下,这是有用的。举例来说,可利用多端口存储器控制器对两个主控模块进行编程以使用不同的存储库。
在时间片500期间,主控模块A在由端口受控模块通过断言端口y准备就绪输出而确认的端口y请求上提出第一请求A0。在同一端口上所述第一请求之后是来自主控模块C的新的请求C0。后面的C0请求将在受控器y端口处保持待决直到前面的A0请求进入数据阶段为止。在前两个请求中的每一者已与其相关联NMBRy和NMCCy值一起接收后的一个时钟循环,调度器更新下个突发主控器关键性等级以及下个主控器突发请求以反映出下个传入突发的特性。
因此,系统调度器已执行A0请求的权威性突发中断从而有利于C0请求。系统调度器并不等待多端口受控模块断言NMBAy输出。系统调度器已经要求恢复已中断的突发,如指示下个突发恢复请求值的下个主控器突发请求NMBRy输入上驱动的MR值所指示,假设同一BSU关键性突发已较早地中断。
在时间片501开始时,多端口受控模块准备用以在时间片502期间在物理接口上启动的用于在时间片503期间进行传递的命令。当不存在其它较高优先级的请求正在运行或者下个主控器突发请求和下个突发主控器关键性等级输入未预测到其它较高优先级的请求时,将C0请求启动到命令总线。因此,在时间片501和502期间,用于C0-C3突发的命令到数据延迟时间与A0-A3突发的延迟时间重叠,但这两个延迟时间均经由同一端口(端口y)发布。同样在时间片501期间,接收来自主控模块B的对端口x的新的请求,且所述请求是延迟关键的。
在时间片502期间,突发数据A0经由端口y数据传递到主控模块A且剩余A1到A3数据差拍经缓冲以用于稍后传递。如果来自主控模块B的延迟关键请求仍未接收到, 则多端口受控器将断言NMBAy信号,如虚线脉冲所指示。然而,由于来自主控模块B的延迟关键请求,导致对主控模块A下个突发恢复请求MR的确认延期。因此,将B0请求启动到命令总线。
在时间片503开始时,通过断言确认NMBRy上的MR值的NMBAy脉冲,在系统调度器与多端口受控仲裁器之间成功承诺用于主控模块A的下个突发恢复。随后,检索主控模块A突发的多端口受控器内部状态,且将用于之后来自A4突发差拍的未读取数据的命令放在命令总线上。
在时间片504期间,主控模块C突发在数据总线上被传递完毕。可经由端口y数据读取先前缓冲的数据A1-A3,同时经由端口x数据传递主控模块B突发数据B0-B3。在时间片504结束时,会等待端口y数据传递一个时钟循环,这是因为主控模块B突发的插入使得主控模块A突发在物理接口处的恢复延迟。利用主控模块A写入突发而不是图5中所图解说明的主控模块A读取突发的突发交错能够(但不需要)利用类似的权威性突发中断。
实例性时序图-内部缓冲及写入突发交错
图6是利用使用内部写入数据缓冲的单信道多端口受控模块的仲裁和数据流序列的实例性场景的时序图。所述实例与图5中所示实例类似,除主控模块A突发为写入突发且系统调度器并不利用权威性突发中断外。
在时间片600和601中,在通过时间片600结束时在A3地址阶段期间断言的下个主控器已中断突发确认NMBAy脉冲准予主控模块C中断突发在端口y请求总线上的存取前将四个写入数据差拍A0-A3缓冲到多端口受控器中。在多端口物理接口处,在时间片601和602期间,用于C0-C3突发的命令到数据延迟时间与A0-A3突发部分的延迟时间重叠,但这两个延迟时间均经由同一受控器端口(端口y)发布。
用于使用调度信息的过程
图7是为使用调度信息而由多端口受控模块执行的实例性过程700的流程图。实例性过程700图解说明多端口受控模块能够使用调度信息在其端口之间作出仲裁的一种方式。实例性过程700由并不使用数据缓冲且使用调度信息来中断突发的多端口受控模块执行。
在执行过程700的过程中,系统调度器和多端口受控模块试图达到最优化目标以在不损失数据循环或不需要取消命令的情况下满足主控模块的时序要求。中断突发(且因此能够根据所述约束经由端口确定突发部分的尺寸)有助于多端口受控模块达到最优化目标。图4的实例性场景经由过程700图解说明一些路径。在过程700的论述中将参考 图4以展示过程700的步骤的实例。
在步骤701处,多端口受控模块接收受控器端口上的新的下个主控器突发请求。下个主控器突发请求并不具有用于非待决请求的值。步骤710-717为在下个主控器突发请求具有指示下个突发中断请求的值的情况下执行的步骤。步骤720-724为在下个主控器突发请求具有指示下个突发恢复的值的情况下执行的步骤。步骤730-731为在端口上存在遗留突发请求的情况下执行的步骤。
在步骤710处,多端口受控模块确定下个主控器突发请求信号是否指示调度器正指示由突发中断值中断当前的突发。如果这样的话,那么在步骤711处,多端口受控模块确定用于当前存取的命令是否已启动——这意味着存在已经开始的需要被遗漏的存取。举例来说,图4展示所述待决遗留存取请求。这里,在时间片401结束时,当端口y请求上的A4已由正在y端口上断言的端口y准备就绪确认并等待其数据阶段传递时,当下个突发中断请求出现时,不在物理接口上启动对应的命令。在时间片402开始时,下个突发中断请求在NMBRy输入上展示为MB。
在步骤712处,多端口受控模块等待可用命令时隙,端口对于所述可用命令时隙具有优先权。当多端口受控仲裁器准予端口存取命令总线时,可启动所述命令。多端口受控仲裁器基于当前待决遗留请求的关键性确定准予端口存取,所述关键性从受控器端口处的突发开始时就已知。举例来说,在图4中,在时间片400开始时,NMCCy信号上的BSL值指示所述突发的关键性。
在步骤713处,在物理接口的命令总线上启动命令。所述命令是在物理接口上执行完整的数据突发。在步骤714处,多端口受控器等待对于最后的物理接口突发数据的存取请求。用于待中断突发的最后可用数据传递的地址为突发差拍(应在所述突发差拍后出现中断),且多端口受控器等待所述突发差拍的地址阶段。
在步骤715处,多端口受控器断言下个主控器已中断突发确认以启用突发中断。当达到用于已中断突发上个差拍的地址阶段时,多端口受控器断言NMBA。
在步骤716处,多端口受控器接收端口的受控器总线层上的中断突发的第一存取请求。系统仲裁器经由端口的受控器总线层路由中断突发,且多端口受控器可将端口上的遗留请求信号解码。
在步骤717处,多端口受控器等待可用命令时隙,端口对所述可用命令时隙具有优先权。来自中断突发主控器的待决遗留请求正等待从多端口受控仲裁器准予对命令总线的存取。在步骤740处,多端口受控器在命令总线上启动用于物理接口上的适当数据突发的命令。所述数据突发对应于中断突发的第一突发差拍。
返回参看步骤710,如果当前突发未正被中断,则在步骤720处多端口受控器确定下个主控器突发请求值是否指示下个突发恢复请求。在步骤721处,多端口受控器等待可用命令时隙,端口对所述可用命令时隙具有优先权。所述端口正等待从多端口受控仲裁器准予命令总线上的命令启动时隙。
在步骤722处,多端口受控器断言下个主控器已中断突发确认,这指示其准备好在物理接口上启动突发恢复命令。多端口受控器正试图承诺系统调度器和多端口受控仲裁器两者都进行突发恢复。
在步骤723处,多端口受控器确定对所述突发恢复的承诺是否成功。如果下个主控器突发请求信号不再预测下个突发恢复(如系统调度器所指示),则所述承诺可能失败,在所述情况下,所述恢复这次被取消。
在步骤724处,多端口受控器检索先前已中断突发的内部状态,所述内部状态指示已中断突发停止的位置。在步骤740处,多端口受控器在命令总线上启动用于物理接口上的适当数据突发的命令。所述数据突发对应于正被恢复的突发的突发差拍。
返回参看步骤720,如果下个主控器突发请求不具有指示下个突发恢复请求的值,则步骤730处的多端口受控器确定端口上是否存在遗留突发请求。如果没有遗留突发请求正在端口上等待,则此时不启动任何命令。
如果遗留突发请求待决,则在步骤731处多端口受控器等待可用命令时隙,所述端口对所述可用命令时隙具有优先权。多端口受控仲裁器准予端口存取命令总线。多端口受控仲裁器可基于各种因素中的一个或一个以上因素确定准予端口存取。举例来说,多端口受控仲裁器基于当前待决遗留请求的关键性准予存取,在突发开始时指示所述关键性。举例来说,在图4中,在时间片400期间,NMCCx输入具有用于时间片401开始时B0命令启动的LSU的值。在另一实例中,多端口受控仲裁器基于在NMCC输入上驱动的下个主控器关键性等级(例如在图4中时间片开始时的任一检查时间时NMCCx输入上的NSU值)准予存取。在另一实例中,多端口受控仲裁器基于额外的固有受控器约束准予存取。
多端口受控模块还可针对其它种类的已接收调度信息(例如,如上文表1和表2中所述)采取其它动作。举例来说,多端口受控模块可区分不同类型的下个主控器突发请求(例如相同(Same)主控器和其它(Other)主控器)。
虽然本文献包含很多特定实施方案细节,但这些细节不应被解释为对可能主张的范围的限制,而应解释为对可能为特定实施例所特有的特征的描述。在各个实施例情况下 本说明书中所描述的某些特征还可以组合形式在单个实施例中实施。相反,在单个实施例情况下描述的各种特征还可单独或以任一适当的子组合形式在多个实施例中实施。此外,虽然特征在上文中可能被描述为以特定组合形式操作且甚至从一开始就如所述主张,但来自所主张组合的一个或一个以上特征在某些情况下可从所述组合中删除,且所主张组合可能针对子组合或子组合的变体。
Claims (7)
1.一种微控制器系统,其特征在于包括:
多个主控器;
多端口受控器,所述多端口受控器包含多个受控器端口以及一多端口受控仲裁器,其中所述多端口受控仲裁器经配置以在所述受控器端口之间作出仲裁;
系统总线,其使所述主控器与所述多端口受控器连接;以及
调度器,其经配置以向获胜主控器准予总线存取以在所述获胜主控器与所述多端口受控器之间传递数据突发;
其中所述调度器经配置以向所述多端口受控仲裁器提供调度信息,所述调度信息包含主控器分类信息以及预期突发信息,所述预期突发信息是基于调度器对于预期主控器对所述多端口受控器的预期总线存取的确定,所述主控器分类信息将所述预期主控器分类。
2.根据权利要求1所述的微控制器系统,其特征在于所述多端口受控仲裁器经配置以接收所述调度信息且使用所述调度信息在所述受控器端口之间作出仲裁。
3.根据权利要求1所述的微控制器系统,其特征在于所述多端口受控器为管线式存储器模块。
4.根据权利要求1所述的微控制器系统,其特征在于所述主控器分类信息是基于所述主控器的带宽和/或延迟要求,且其中所述多端口受控仲裁器和所述调度器经配置以使用所述主控器分类信息确定总线存取的优先级。
5.根据权利要求1所述的微控制器系统,其特征在于所述调度器经配置以通过中止当前受控器端口上的所述当前突发来中断所述当前突发且在所述当前受控器端口上起始新的突发。
6.根据权利要求1所述的微控制器系统,其特征在于调度器经配置以恢复所述先前受控器端口上的所述先前已中断突发。
7.根据权利要求1所述的微控制器系统,其特征在于所述多端口受控器经配置以向所述调度器发送确认以承诺恢复所述先前已中断突发,且其中所述调度器经配置以响应于接收到所述确认而针对所述先前已中断突发向先前主控器准予恢复总线存取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/197,547 US8516167B2 (en) | 2011-08-03 | 2011-08-03 | Microcontroller system bus scheduling for multiport slave modules |
US13/197,547 | 2011-08-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202815824U true CN202815824U (zh) | 2013-03-20 |
Family
ID=47627699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201120543840.4U Expired - Fee Related CN202815824U (zh) | 2011-08-03 | 2011-12-12 | 微控制器系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8516167B2 (zh) |
CN (1) | CN202815824U (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402188B2 (en) * | 2008-11-10 | 2013-03-19 | Micron Technology, Inc. | Methods and systems for devices with a self-selecting bus decoder |
US8850134B1 (en) * | 2012-04-26 | 2014-09-30 | Cadence Design Systems, Inc. | Method and system for aligning transaction split boundaries to memory burst boundaries |
FR3094810B1 (fr) * | 2019-04-03 | 2023-01-13 | Thales Sa | Système sur puce comprenant une pluralité de ressources maitre |
KR102630127B1 (ko) * | 2021-01-08 | 2024-01-30 | 한국전자통신연구원 | 무선 애드혹 망 구성을 위한 동적 다중 링크를 지원하는 ble 통신모듈, 무인 이동체 및 그 방법 |
TWI769080B (zh) * | 2021-09-17 | 2022-06-21 | 瑞昱半導體股份有限公司 | 用於同步動態隨機存取記憶體之控制模組及其控制方法 |
CN117520252B (zh) * | 2024-01-08 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | 一种通信控制方法、系统级芯片、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4260720B2 (ja) * | 2004-10-27 | 2009-04-30 | 日本テキサス・インスツルメンツ株式会社 | バス制御装置 |
KR100633773B1 (ko) * | 2005-07-01 | 2006-10-13 | 삼성전자주식회사 | 버스 시스템 및 버스 중재 방법 |
JP5330409B2 (ja) * | 2008-11-28 | 2013-10-30 | パナソニック株式会社 | メモリ制御装置、データプロセッサ及びデータ読み出し方法 |
-
2011
- 2011-08-03 US US13/197,547 patent/US8516167B2/en not_active Expired - Fee Related
- 2011-12-12 CN CN201120543840.4U patent/CN202815824U/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8516167B2 (en) | 2013-08-20 |
US20130036246A1 (en) | 2013-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN202815824U (zh) | 微控制器系统 | |
CN100552656C (zh) | 减小芯片上系统互连中的传送等待时间的方法和设备 | |
US7305510B2 (en) | Multiple master buses and slave buses transmitting simultaneously | |
CN100472494C (zh) | 支持多总线多类型存储器的内存仲裁实现系统和方法 | |
US8041869B2 (en) | Method and system for bus arbitration | |
CN1327370C (zh) | 资源管理装置 | |
CN100595744C (zh) | 芯片上系统集成电路、电子系统及在其内传送数据的方法 | |
CN102291423B (zh) | 控制物理层芯片的方法及控制电路 | |
US20200218682A1 (en) | System on chip having semaphore function and method for implementing semaphore function | |
US9798686B2 (en) | Slave side bus arbitration | |
US9372818B2 (en) | Proactive quality of service in multi-matrix system bus | |
TW200809518A (en) | Non-blocking address switch with shallow per agent queues | |
CN103543954A (zh) | 一种数据存储管理方法和装置 | |
CN102804158A (zh) | 总线架构中的请求和数据处理 | |
US7065594B2 (en) | Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system | |
CN105988968B (zh) | 半导体装置 | |
US7543093B2 (en) | Method and system for stream burst data transfer | |
CN102419739A (zh) | 多主总线仲裁共享装置以及仲裁方法 | |
CA2527426A1 (en) | Allocating bandwidths in system with redundant circuits | |
KR100873010B1 (ko) | 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법 | |
GB2341771A (en) | Address decoding | |
GB2341772A (en) | Primary and secondary bus architecture | |
GB2341769A (en) | Data packet reordering | |
GB2341767A (en) | Bus arbitration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130320 Termination date: 20131212 |