具有信号量功能的片上系统和信号量分配方法_5

文档序号:9826228阅读:来源:国知局
矩阵230可包括数据总线、地址总线和控制总线。数据总线可以是传输数据的通道。数据总线可主要用作到工作存储器(未示出)或存储装置(未示出)的存储器访问通道。地址总线可以是用于在IP块之间交换地址的通道。控制总线可以是在IP块之间传输控制信号的通道。
[0116]信号量单元240可利用允许多个主设备无冲突地共享单个内部总线(例如,接口250)的硬件实现。例如,在应用处理器210占用接口 250的同时,信号量单元240延迟通信处理器220对接口 250的访问。也就是说,在应用处理器210写入或读取接口 250的寄存器的原子序列期的期间,信号量单元240延迟通信处理器220的访问。在应用处理器210的原子序列终止之后,信号量单元240给通信处理器220分配接口 250的优先权。信号量单元240可通过原子序列分配关于接口 150的优先权。
[0117]例如,根据至少一个示例实施例,信号量单元240至少包括第一原子定序器241、第二原子定序器242和信号量控制器243。第一原子定序器241管理应用处理器210的关于访问接口 250的请求。第一原子定序器241根据应用处理器210的请求与接口 250连接,以便控制电源管理IC 300。
[0118]第一原子定序器241管理应用处理器210的关于访问接口 250的请求。也就是说,第一原子定序器241检测从应用处理器210发出的关于接口 250的访问请求。在应用处理器210请求访问接口 250的情况下,第一原子定序器241将第一交易发送到接口 250,以获取信号量。在获取了信号量的情况下,第一原子定序器241执行作为期望的、减少的和/或最小的访问单元的原子序列。在关于接口 250的原子序列终止时,第一原子定序器241释放关于接口 250的信号量并将中断信号INTRl发送到应用处理器210。在一些示例实施例中,中断信号INTRl可在释放信号量的同时被发送,但不限于此。
[0119]第二原子定序器242管理通信处理器220的关于访问接口 250的请求。在通信处理器220请求访问接口 250的情况下,第二原子定序器242将第一交易发送到接口 250,以获取信号量。在获取了信号量的情况下,第二原子定序器242执行原子序列。在关于接口250的原子序列终止时,第二原子定序器242释放获取的信号量并将中断信号INTR2发送到通信处理器220。基于信号量控制器243提供的信号量功能,第一原子定序器241和第二原子定序器242可通过被称为“原子序列”的期望的、减少的和/或最小的操作单元(即,期望的操作期)来访问接口 250。
[0120]信号量控制器243检测从第一原子定序器241和第二原子定序器242发出的第一交易,以分配信号量。在未给第一原子定序器241和第二原子定序器242中的任何一个分配信号量的情况下,信号量控制器243可给发送第一交易的原子定序器分配信号量。在分配了信号量的情况下,信号量控制器243保持信号量分配状态,直到原子序列终止。例如,如果由第一原子定序器241占用信号量,则尽管从第二原子定序器242发送交易,信号量控制器243也不改变信号量的分配状态。在由第一原子定序器241执行的原子序列终止时,可改变信号量的分配状态。
[0121]信号量控制器243管理用于信号量分配的信号量位值。也就是说,信号量控制器243分别设置指示关于第一原子定序器241的信号量分配状态的信号量位和指示关于第二原子定序器242的信号量分配状态的信号量位。例如,在第一原子定序器241和第二原子定序器242的信号量都被释放时,信号量位值可被设置为“00”。在给第一原子定序器241分配信号量时,信号量位值可被设置为“10”,在给第二原子定序器242分配信号量时,信号量位值144可被设置为“01”。使用信号量控制器243检测从第一原子定序器241和第二原子定序器242中的每个发出的交易的结果,可执行对信号量位值的设置。参照图2全面地描述了信号量位值,由此,省略其描述。
[0122]接口 250可连接片上系统200和电源管理IC 300。例如,接口 250可以是包括一条串行数据线SDA和一条串行时钟线SCL并支持双向通信的I2C接口。在总线主设备指定通信对方的唯一地址时,可决定通信对方。接口 250可与随机指定的装置执行数据传输和接收。此外,由于接口 250的协议定义了避免总线竞争的机制,所以随机指定的装置可充当主设备。因此,在使用接口 250的系统中,多个主设备管理电源管理IC 300。
[0123]电源管理IC 300根据片上系统200的控制向片上系统200提供驱动电压VDD。电源管理IC 300通过接口 250与片上系统200连接并因此被控制。电源管理IC 300可包括多个DC-DC转换器或稳压器。电源管理IC 300可根据来自片上系统200的请求来调节驱动电压VDD的电平。例如,在睡眠模式中,电源管理IC 300可根据片上系统200的请求向片上系统200提供具有相对低的电平的驱动电压VDD0。在唤醒事件,电源管理IC 300根据片上系统200的请求将驱动电压的电平升高直到用于特定操作的电平VDD2。
[0124]例如,诸如唤醒之类的事件可指示从通信处理器220向用户发送用于语音通信的呼号的事件。此时,基于通信处理器220的请求,电源管理IC 300可将操作电压提高直到足以向用户提供呼号或振动的电平。信号量单元240可允许通信处理器220在期望的、减少的和/或最小的等待时间内获取关于电源管理IC 300的信号量。另外,由原子定序器获取信号量,由此使得快速地请求访问电源管理IC 300成为可能。
[0125]图10是示出根据发明构思的至少一个示例实施例驱动电压根据片上系统200和电源管理IC 300的原子序列增大的时序图。参照图10,假设片上系统200保持在睡眠模式,电源管理IC 300向片上系统200提供具有足以保持睡眠模式的电平的驱动电压VDD0。此外,假设接口 250的信号量被分配给应用处理器210。
[0126]在时间Tl处,片上系统200的通信处理器220请求在电源管理IC 300处唤醒。与通信处理器220对应的原子定序器242将用于获取信号量的第一交易发送到接口 250。由于应用处理器210请求的操作被处理,所以当前由第一原子定序器241占用信号量。因此,在原子序列ASl完成的时间T2处,可给第二原子定序器242分配信号量。在时间T2之前,第一原子定序器241处理与原子序列ASl对应的多个交易并释放信号量位值。
[0127]在时间T2处,接口 250接收第二原子定序器242反复发送以获取信号量的第一交易。因此,信号量位值被设置以指定第二原子定序器242。如果第二原子定序器242的原子序列AS2开始,则与用于提高电压电平的请求对应的多个交易可被发出给电源管理IC300。如果原子序列AS2的最后一个交易被发送到接口 250,则接口 250向电源管理IC 300提供控制命令或信号。
[0128]在时间T3处,电源管理IC 300响应于通过接口 250传输的控制命令来提高驱动电压VDD的电平。如果用于唤醒的驱动电压VDD的期望的、减少的和/或最小的电平是第一电平VDD1,则片上系统200的唤醒在时间T4之后被激活。
[0129]在时间T4处,由电源管理IC 300提供的驱动电压可升高超过第一电平VDDl。此后,可执行用于唤醒片上系统200的整体操作。
[0130]如上所述,通信处理器220的关于访问电源管理IC 300的请求可在与由应用处理器210执行的原子序列ASl对应的时间Δ Tl之后发出。驱动电压VDD的电平可在与原子序列AS2对应的时间ΛΤ2之后升高,其中,在第二原子定序器242和接口 250之间执行原子序列AS2。此外,正常操作的是可能的,这意味着另外需要时间ΔΤ3,直到驱动电压VDD的电平达到“VDD1”。根据发明构思的一些示例实施例,信号量可通过原子序列来分配,从而防止需要实时控制的主设备盲目地等待。
[0131]在通信处理器220的关于访问电源管理IC 300的请求被传送到电源管理IC 300时的最差情况下的等待时间可以是与应用处理器210对应的第一原子定序器241的原子序列AS1。由于使用通信处理器220的原子序列的长度,所以可容易针对需要实时控制的各种操作进行任务调度。
[0132]图11是示意性地示出根据发明构思的仍然至少一个示例实施例的片上系统的框图。参照图11,片上系统400至少包括与接口 450的主设备对应的多个处理器410、415和420以及信号量单元440,以控制关于每个处理器的信号量。使用处理器410、415和420作为主设备的单个从设备500通过接口 450连接,但是,示例实施例并不限于此,根据这里呈示的发明构思,可存在由多个主装置共享的多个从装置。
[0133]处理器410、415和420可以是由具有不同的属性或者相同的属性的操作系统驱动的处理器。此外,处理器410、415和420可以是由具有不同的安全级别或者相同的安全级别的操作系统驱动的处理器。在对处理器410、415和420中的每个驱动的软件中,通过总线矩阵430在信号量单元440处请求访问单个从设备500,而无需考虑信号量。
[0134]信号量单元440至少包括执行关于处理器410、415和420的接口 450的原子序列的多个原子定序器441、442和443以及信号量控制器445。原子定序器441、442和443中的每个根据信号量控制器445的控制将相应处理器的关于访问接口 450的请求发送到接口450。在接收到关于接口 450的访问请求时,原子定序器441、442和443中的每个通过原子序列获取信号量并将访问请求发送到接口 450。原子定序器441、442和443在一个原子序列终止之后释放信号量。
[0135]接口 450充当由原子定序器441、442和443当中的获取信号量的一个原子定序器执行的原子序列的通道。也就是说,接口 450的寄存器通过由原子定序器441、442和443当中的获取信号量的一个原子定序器执行的原子序列被编程。接口 450可根据在寄存器处编程的值向单个从设备500提供命令或控制信号。
[0136]在片上系统400中,在通过被称为“原子序列”的操作单元(即,期望的操作期)分配信号量时,处理器410、415和420可共享一
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1