基于总线监控器的系统芯片总线优先级动态配置装置的制作方法

文档序号:6336964阅读:307来源:国知局
专利名称:基于总线监控器的系统芯片总线优先级动态配置装置的制作方法
技术领域
本发明涉及系统芯片领域,尤其是一种基于总线监控器的优先级动态配置。

背景技术
系统芯片将系统的主要功能综合到一块芯片中。与传统设计相比较,由于系统 芯片将整个系统集成在一个芯片上,使得产品的性能大为提高,体积显著缩小。此外, 系统芯片适用于更复杂的系统,具有更低的设计成本和更高的可靠性。在目前的集成电 路设计理念中,IP (Intellectual Property)是构成系统芯片的基本单元。IP是满足特定规 范,并能在设计中复用的功能模块,又称IP核。随着集成电路设计和制造技术的发展,系统芯片中的IP数不断增加。由于各IP 并行工作,随着IP数增加,资源的访问竞争率也随之提高。传统处理访问竞争的方法是静态优先级调度。静态优先级调度是指优先级分配 好之后,在系统运行过程中,优先级不会发生改变。该方法为每个IP设定静态优先级, 在系统运行过程中优先级保持不变,在多个IP同时发起访问请求时,高优先级的IP优先 获得访问权。与软件调度不同,硬件调度是不可抢占的,这是由总线机制决定的。即低优先 级IP获得访问权后,高优先级IP发起访问请求后需等低优先级IP访问完成后才获得访问 权。静态优先级的优点是调度简单,系统开销小。其缺点是可能出现低优先级IP的 请求长时间无法得到响应的情况,不适合实时性要求高的系统。如某个视频播放系统中拥有A、B、C三个IP,其中A用于控制液晶显示器,B 用于搬运数据,C用于视频文件解码。三个IP都需要访问内存。通常为确保视频播放流 畅,其访问内存的优先级从高到低为A、B、C。其中A和B的数据访问量基本稳定, C的数据访问量由画面变化程度决定。当画面变化很大时,C需要大量数据。处于最低 优先级的C可能无法及时获得最新帧的源数据,从而无法及时解码出最新帧的数据,B将 无法获得最新帧的数据。A将控制液晶显示器显示的前一帧的画面,导致视频播放不流 畅。

发明内容
为了克服已有现有的系统芯片总线静态优先级配置机制的低优先级IP的请求无 法及时响应、实时性差的不足,本发明提供一种有效响应低优先级IP的请求、实时性良 好的基于总线监控器的系统芯片总线优先级动态配置装置。本发明解决其技术问题所采用的技术方案是一种基于总线监控器的系统芯片总线优先级动态配置装置,所述系统芯片总线 优先级动态配置装置包括用以累计多个设备同时发起内存访问重叠周期数、内存访问次数、包含设备请求延时和外部内存延时的内存访问周期数以及包含设备请求延时的内存访问周期数的四 个计数器;一个计时器; 以及用以将各设备的实时性权重和各设备的内存访问延时做乘积或加法,所述 内存访问延时为包含设备请求延时和外部内存延时的内存访问周期数或者包含设备请求 延时的内存访问周期数,根据乘积或和大小设置优先级乘积或和越大则优先级越高的 优先级动态配置模块。进一步,所述用以累计内存访问次数的计数器中,当设备选择信号和设备就绪 信号同时有效,且设备状态不为空闲时,则表明发起内存访问,此时该计数器值增加1。再进一步,所述用于累计包含设备请求延时和外部内存延时的内存访问周期数 的计数器中,当设备选择信号和设备就绪信号同时有效,且设备状态不为空闲时,表明 设备发起内存访问;若内存访问完成信号无效,则表明设备内存访问未完成,此时该计 数器值每周期增加1,直至内存访问完成信号有效。更进一步,所述用于累计包含设备请求延时的内存访问周期数的计数器中,当 设备选择信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访 问;若仲裁器输出地址与设备请求地址相同,则表明该设备获得内存访问权,此时该计 数器值每周期增加1,直至仲裁器输出地址与设备请求地址不同。所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选择 信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若内 存访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存访 问未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至只 有一个或没有设备处于内存访问未完成状态。作为优选的一种方案将各设备的实时性权重和各设备的内存访问延时做加法 时,首先将所述各设备的内存访问延时乘以预设系数得到中间值,所述中间值与所述各 设备的实时性权重具有相同的数量级。本发明的技术构思为动态优先级配置是指优先级可以随着时间或系统状态变 化而发生变化,在系统运行过程中根据各IP的情况配置优先级,以获得更好的性能。动态优先级的优点是调度算法灵活,可以防止有些IP的访问请求一直得不到响 应。其缺点是需要运行相关的优先级动态配置算法,增加系统开销。本发明采用总线优先级动态配置机制,改善了低优先级IP的请求无法及时响应 的问题,使系统芯片可以运行实时系统。基于总线监控器的系统芯片总线优先级动态配置机制,由软件和硬件结合完 成。其中硬件包含四个计数器,一个计时器,软件包含一种优先级动态配置算法。其中 四个计数器分别用于累计a.多个设备同时发起内存访问重叠周期数;b.内存访问次数;c.包含设备请求延时和外部内存延时的内存访问周期数;d.包含设备请求延时的内存访问周期数。其中优先级动态配置算法,各设备的优先级由各设备的实时性权重和各设备的内存访问延时(包含设备请求延时和外部内存延时的内存访问周期数或包含设备请求延 时的内存访问周期数)共同决定。设备的实时性权重为静态配置,实时性权重表示设备 对实时响应的要求,当设备内存访问延时相等,实时性权重越高,优先级越高。设备的 内存访问延时每隔一段时间从硬件寄存器中读取,当实时性权重相同,设备内存访问延 时越大,优先级越高。本发明的有益效果主要表现在有效响应低优先级IP的请求、实时性良好。



图1为累计内存访问次数计数器的实现电路图。图2为累计包含设备请求延时和外部内存延时的内存访问周期数计数器的实现 电路图。图3为累计包含设备请求延时的内存访问周期数计数器的实现电路图。图4为累计多个设备同时发起内存访问重叠周期数计数器的实现电路图。图5为总线优先级动态配置机制流程图。图6为Timer中断服务程序流程图。图7为优先级动态配置算法流程图。图8为优先级动态配置算法实施流程图。
具体实施例方式下面结合附图对本发明作进一步描述。参照图1 图8,一种基于总线监控器的系统芯片总线优先级动态配置装置,所 述系统芯片总线优先级动态配置装置包括用以累计多个设备同时发起内存访问重叠周期数、内存访问次数、包含设备请 求延时和外部内存延时的内存访问周期数以及包含设备请求延时的内存访问周期数的四 个计数器;一个计时器;以及用以将各设备的实时性权重和各设备的内存访问延时做乘积或加法,所述 内存访问延时为包含设备请求延时和外部内存延时的内存访问周期数或者包含设备请求 延时的内存访问周期数,根据乘积或和大小设置优先级乘积或和越大则优先级越高的 优先级动态配置模块。所述用以累计内存访问次数的计数器中,当设备选择信号和设备就绪信号同时 有效,且设备状态不为空闲时,则表明发起内存访问,此时该计数器值增加1。所述用于累计包含设备请求延时和外部内存延时的内存访问周期数的计数器 中,当设备选择信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起 内存访问;若内存访问完成信号无效,则表明设备内存访问未完成,此时该计数器值每 周期增加1,直至内存访问完成信号有效。所述用于累计包含设备请求延时的内存访问周期数的计数器中,当设备选择信 号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若仲裁 器输出地址与设备请求地址相同,则表明该设备获得内存访问权,此时该计数器值每周期增加1,直至仲裁器输出地址与设备请求地址不同。所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选择 信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若内 存访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存访 问未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至只 有一个或没有设备处于内存访问未完成状态。
硬件实现基于AMBA总线,四个计数器均为64位,由两个32位计数器组成; 当低32位为Oxffffffff且计数器加1时,高32位计数器加1。通过AMBA总线的设备选 择信号i_mnt_heSl、设备就绪信号i_mnt_hready、设备传输信号i_mnt_htnmS判断是否发 起内存访问。32位计数器由32位寄存器、32位加法器、数据选择器构成,其中寄存器 时钟为AMBA总线时钟信号i_mnt_clk,寄存器输入为数据选择器输出,数据选择器两个 输入分别为寄存器输出及加法器输出,加法器输入为寄存器输出和1。当数据选择器选择 信号为0时,数据选择器输出为寄存器输出,否则为加法器输出。请参照图1,为用于累计内存访问次数的计数器实现电路图,其低32位计数器 中的数据选择器选择信号由设备选择信号i_mnt_hSel、设备就绪信号i_mnt_hready、设备 传输信号i_mnt_htrans产生。当设备选择信号i_mnt_hsel和设备就绪信号i_mnt_hready均 为1且设备传输信号LmntJitnms不等于0,则表明发起内存访问,此时数据选择器选择 信号为1。请参照图2,为用于累计包含设备请求延时和外部内存延时的内存访问周期数 的计数器实现电路,其低32位计数器中的数据选择器选择信号由设备回复信号:Lmnt_ hready_resp、设备就绪信号i_mnt_hready、设备选择信号i_mnt_hsel、设备传输信号i_ mnt_htrans产生。当设备选择信号i_mnt_hsel和设备就绪信号i_mnt_hready均为1且设 备传输信号i_mnt_htnmS不等于0,则表明发起内存访问,若设备回复信号i_mnt_hready_ resp为0,表明正在进行内存访问,此时数据选择器选择信号为1。请参照图3,为用于累计包含设备请求延时的内存访问周期数的计数器实现电 路,其低32位计数器中的数据选择器选择信号由设备地址信号Lmntjiaddr、设备选择信 号i_mnt_hsel、设备传输信号i_mnt_htrans、仲裁器地址信号i_mnt_haddr_arb、仲裁器就 绪信号i_mnt_hready_arb、仲裁器选择信号i_mnt_hsel_arb、仲裁器传输信号i_mnt_htnms_ arb产生,当设备选择信号i_mnt_hSel和设备就绪信号i_mnt_hready均为1且设备传输信 号i_mnt_htrans不等于0,则表明发起内存访问,当仲裁器选择信号i_mnt_hsel_arb和仲 裁器就绪信号i_mnt_hsel_arb均为1且仲裁器传输信号i_mnt_htrans_arb不等于0,则表明 仲裁器选择某设备进行内存访问。当设备地址信号i_mnt_haddr与仲裁器地址信号i_mnt_ haddr_arb相等,则表明仲裁器选择该设备进行内存访问,即该设备获得内存访问权,此 时数据选择器选择信号为1。请参照图4,为用于累计多个设备同时发起内存访问重叠周期数的计数器实现电 路,其低32位计数器中的数据选择器选择信号由所有设备的设备回复信号i_mnt_hready_ resp、设备选择信号i_mnt_hsel、设备就绪信号i_mnt_hready、设备传输信号i_mnt_htrans 产生。当设备选择信号i_mnt_hSel和设备就绪信号i_mnt_hready均为1且设备传输信号 i_mnt_htrans不等于0,则表明发起内存访问,若设备回复信号i_mnt_hready_resp为0,表明正在进行内存访问。当任意两个或两个以上设备正在进行内存访问,表明访内存访问 重叠,此时数据选择器选择信号为1。总线监控器包含52个寄存器。
权利要求
1.一种基于总线监控器的系统芯片总线优先级动态配置装置,其特征在于所述系 统芯片总线优先级动态配置装置包括用以累计多个设备同时发起内存访问重叠周期数、内存访问次数、包含设备请求延 时和外部内存延时的内存访问周期数以及包含设备请求延时的内存访问周期数的四个计 数器;一个计时器;以及用以将各设备的实时性权重和各设备的内存访问延时做乘积或加法,所述内存 访问延时为包含设备请求延时和外部内存延时的内存访问周期数或者包含设备请求延时 的内存访问周期数,根据乘积或和大小设置优先级乘积或和越大则优先级越高的优先 级动态配置模块。
2.如权利要求1所述的基于总线监控器的系统芯片总线优先级动态配置装置,其特征 在 于所述用以累计内存访问次数的计数器中,当设备选择信号和设备就绪信号同时有 效,且设备状态不为空闲时,则表明发起内存访问,此时该计数器值增加1。
3.如权利要求1或2所述的基于总线监控器的系统芯片总线优先级动态配置装置,其 特征在于所述用于累计包含设备请求延时和外部内存延时的内存访问周期数的计数器 中,当设备选择信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起 内存访问;若内存访问完成信号无效,则表明设备内存访问未完成,此时该计数器值每 周期增加1,直至内存访问完成信号有效。
4.如权利要求1或2所述的基于总线监控器的系统芯片总线优先级动态配置装置,其 特征在于所述用于累计包含设备请求延时的内存访问周期数的计数器中,当设备选择 信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若仲 裁器输出地址与设备请求地址相同,则表明该设备获得内存访问权,此时该计数器值每 周期增加1,直至仲裁器输出地址与设备请求地址不同。
5.如权利要求3所述的基于总线监控器的系统芯片总线优先级动态配置装置,其特征 在于所述用于累计包含设备请求延时的内存访问周期数的计数器中,当设备选择信号 和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若仲裁器 输出地址与设备请求地址相同,则表明该设备获得内存访问权,此时该计数器值每周期 增加1,直至仲裁器输出地址与设备请求地址不同。
6.如权利要求1或2所述的基于总线监控器的系统芯片总线优先级动态配置装置,其 特征在于所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选 择信号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若 内存访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存 访问未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至 只有一个或没有设备处于内存访问未完成状态。
7.如权利要求3所述的基于总线监控器的系统芯片总线优先级动态配置装置,其特征 在于所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选择信 号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若内存 访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存访问 未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至只有一个或没有设备处于内存访问未完成状态。
8.如权利要求4所述的基于总线监控器的系统芯片总线优先级动态配置装置,其特征 在于所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选择信 号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若内存 访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存访问 未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至只有 一个或没有设备处于内存访问未完成状态。
9.如权利要求5所述的基于总线监控器的系统芯片总线优先级动态配置装置,其特征 在于所述用于累计多个设备同时发起内存访问重叠周期数的计数器中,当设备选择信 号和设备就绪信号同时有效,且设备状态不为空闲时,表明设备发起内存访问;若内存 访问完成信号无效,则表明设备内存访问未完成;当两个或两个以上设备处于内存访问 未完成状态时,则表明多个设备内存访问重叠,此时该计数器值每周期增加1,直至只有 一个或没有设备处于内存访问未完成状态。
10.如权利要求1或2所述的基于总线监控器的系统芯片总线优先级动态配置装置, 其特征在于将各设备的实时性权重和各设备的内存访问延时做加法时,首先将所述各 设备的内存访问延时乘以预设系数得到中间值,所述中间值与所述各设备的实时性权重 具有相同的数量级。
全文摘要
一种基于总线监控器的系统芯片总线优先级动态配置装置,包括用以累计多个设备同时发起内存访问重叠周期数、内存访问次数、包含设备请求延时和外部内存延时的内存访问周期数以及包含设备请求延时的内存访问周期数的四个计数器;一个计时器;以及用以将各设备的实时性权重和各设备的内存访问延时做乘积或和,所述内存访问延时为包含设备请求延时和外部内存延时的内存访问周期数或者包含设备请求延时的内存访问周期数,根据乘积或和大小设置优先级乘积或和越大则优先级越高的优先级动态配置模块。本发明能有效响应低优先级IP的请求、实时性良好。
文档编号G06F13/368GK102012881SQ201010562898
公开日2011年4月13日 申请日期2010年11月29日 优先权日2010年11月29日
发明者严晓浪, 余慜, 葛海通, 黄凯 申请人:杭州中天微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1