一种满足SystemC语法的多核处理器的互斥和信号量单元组制造技术

技术编号:4176785 阅读:384 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种满足systemC语法的多核处理器的互斥和信号量单元组,包括按照SystemC语法的sc_mutex(name)、sc_mutex.lock()、sc_mutex.trylock()、sc_mutex.unlock()、sc_semaphore.wait()、sc_semaphore.trywait()、sc_semaphore.post()、sc_semaphore(init_value)、sc_semaphore(name,init_value)函数代码实现的逻辑电路,所述逻辑电路用于向处理器核运行时控制器发送激活和暂停处理器的信号,并允许软件开发工具的映射算法将位于不同处理单元的多个互斥和信号量单元重新组合,完成SystemC语言所定义的sc_mutex或者sc_semaphore语法单元单元的功能。通过应用本发明专利技术,使得本地资源可以用于任何多个处理单元之间、处理单元和外设之间的资源共享与同步。

A mutex and semaphore unit group for multicore processors satisfying SystemC syntax

The invention discloses a mutex semaphore and meet the multi core processor unit systemC syntax, including the syntax of SC mutex according to SystemC (name), SC (mutex.lock), SC (mutex.trylock), SC (mutex.unlock), SC (semaphore.wait), SC (semaphore.trywait), SC semaphore.post (SC), semaphore (init value), SC semaphore (name init value) logic function code, the. The logic circuit for signal processor core runtime controller sends activation and suspend processor, multiple mutex and semaphore cell mapping algorithm and allows software development tools in different processing units to complete the combination, the definition of the SystemC language Scmutex or Scsemaphore grammar unit function. By using the present invention, local resources can be used between any processing unit, resource sharing and synchronization between processing units and peripherals.

【技术实现步骤摘要】

本专利技术涉及一种多核处理器,更具体地,本专利技术涉及一种满足SystemC语 法要求的多核处理器的互斥和信号量单元组。
技术介绍
近年来,多核处理器技术得到了蓬勃发展。究其原因,主要有以下几点 第一,设计需求;硅的成本越来越低,集成度越来越高,多核的规则结构可简 单有效的利用更多的硅面积;第二,业务需求;多媒体业务越来越复杂,要求 平台的灵活性和处理性能越来越高,同时还要求功耗保持在允许的范围内,多 核处理器可潜在提供最高性能功耗比,可供更高性能的计算和灵活性;第三, 上市时间(Timetomarket)需求;上市时间要求越来越短,多核处理器的并行开发 可以满足所需上市时间。通常,多核处理器有以下两种发展模式。第一类多核处理器不改变现有顺序执行的设计流程和编程模式,只是采用 更先进的编译技术来适应多核的架构。多核在这里起的作用仅是代替单核而提供更多的计算功能。目前多数的处 理器,无论是单核还是多核,都采用顺序执行的编程模型。在这种模型下,为 了支持多任务,引入了支持多任务的操作系统。操作系统可以为进行多任务编 程和并行执行代码提供途径。但是,在存在操作系统和多个任务并行存在的情 况下,整个嵌入式系统又变得相对十分复杂,调试难度与单核单任务相比大大 增加。 一种调试方式为断点调试,当处理器在断点处暂停执行时,外部输入条 件仍然可能发生变化,因为处理器的暂停,错误发生的条件可能不能再现。另 外一种调试方式为打印输出,将可能出错的地方打印出来,由于打印的结果可 能非常繁多,错误难以定位。而且一旦处理器执行出错,可能在错误发生前打 印本身已经不能工作。引入了操作系统后的另外一个问题是处理器的空闲运转 导致的电量浪费。由于有多个任务,虽然外设可以根据需要进行停止,但处理 器在什么时候应该进入节电模式以及何时从节电模式中恢复变得难以确定,从而导致电量浪费。据统计,由于上述原因,造成大约一半的嵌入式系统项目失败。(2)第二类多核处理器采用并行语言和编程模式,冲艮据并行语言和编程模 式的需要来设计处理器的物理架构。采用这种方式设计的多核处理器能够与并 行语言紧密配合,并期望克服第一类处理器调试困难和电量浪费的缺点。目前的多核处理器都属于第一类,而第二类处理器仍然处于发展初期,没 有成熟的设计应用。在已有处理器中,互斥和信号量一般采用操作系统进行模拟,在维护资源 计数器的时候,关闭处理器中断,即可实现简单的信号量和互斥。但对于复杂 的互斥和信号量以及针对特定语法的处理, 一般无能为力。
技术实现思路
为克服现有多核处理器互斥和信号量单元处理能力有限的缺陷,本专利技术提出 一种满足SystemC语法的多核处理器的互斥和信号量单元组。根据本专利技术的一个方面,提出了一种满足systemC语法的多核处理器的互 斥和信号量单元组,所述互斥和信号量单元组包括按照SystemC语法的 sc一mutex(name) 、 sc—mutex.lock() 、 sc—mutex.trylock() 、 sc一mutex.unlock()、 sc—semaphore.waitO 、 sc—semaphore.trywaitO 、 sc一semaphore.postO 、 sc_semaphore(init_value) 、 sc—semaphore(name,init—value)函凄K戈石马实现的還丰專电 路,所述逻辑电路用于向处理器核运行时控制器发送激活和暂停处理器的信号,新组合,实现sc—mutex或者sc_semaphore语法单元所定义的功能。 所述互斥和信号量单元组,包括资源计数器,与数据发送引擎和SC^MU一SEM寄存器组相连,用于资源计数;数据发送引擎,与所述交换单元适配器相连,用于发送数据包; 数据接收引擎,与所述交换单元适配器相连,用于接收数据包; SC_MU—SEM寄存器组,与所述数据发送引擎、所述数据接收引擎、所述资源计数器以及所述本地总线相连,用于4艮据资源计数器的状态控制数据包的发送和接收、资源的锁定和解锁以及更新资源计数。所述互斥和信号量单元组,还包括远端等待单元地址FIFO。其中,当处理器核调用sc^mutex.lock()或者sc^semaphore.wait()且所述资源计数器的计数为零时,SC—MU—SEM寄存器组输出"暂停"信号,暂停处理器 的执行;当非本地处理器核调用sc—mutex.lock()或者sc—semaphore.wait()且所述 资源计数器的计数为零时,所述SC—MU一SEM寄存器组向远端处理器核发送重 试应答包。其中,所述SC—MU一SEM寄存器组为互斥和信号量单元寄存器组,包括 信号量和互斥量识别寄存器,用于存储互斥或者信号量的名称; 初始化寄存器,用于存储互斥和信号量单元的工作方式和资源计数器的初 始值;资源锁定等待寄存器,用于释放和阻塞获取一个信号量,以及阻塞锁定和 解锁一个互斥量;资源尝试锁定等待寄存器,用于尝试获取一个信号量,以及尝试锁定一个 互斥量,当处理器核读取该寄存器,表示尝试获取信号量或者资源尝试锁定互 斥量;本地互斥和信号量单元地址寄存器,用于给出本互斥和信号量单元区别于 所有芯片内其它单元的地址;远端互斥和信号量单元地址寄存器,用于给出远端互斥和信号量单元区别 于所有芯片内其它单元的地址。其中,所述互斥和信号量单元寄存器组还包括消费者等待时间寄存器, 用于决定当本地互斥和信号量单元向远端互斥和信号量单元发送RTY时所携带 的等待时间信息的值,典型的产生等待时间的方法是给出一个固定值;当 SC—MU—SEM—CWT寄存器的值为0,用于对所有的解锁请求和增加信号量的请 求产生响应。其中,所述互斥和信号量单元寄存器组还包括SC—MU—SEM—OWNER寄 存器,用于决定当本地互斥和信号量单元向远端互斥和信号量单元发送RTY时 所携带的等待时间信息的值;信号量当前值寄存器,用于存储信号量计数器的 当前值。其中,所述互斥和信号量单元组的工作方式包括互斥,本地维护资源计 数;互斥,远程维护资源计数;信号量,本地维护资源计数;信号量,远程维 护资源计数。其中,在所述本地维护资源计数工作方式下,当处理器核写锁定/等待寄存 器、尝试锁定/等待寄存器,数据发送引擎将本地互斥和信号量单元组地址寄存 器和远端互斥和信号量单元地址寄存器的值及对应状态按照交换单元所要求的包格式封装并发送给交换单元适配器。其中,在所述远程维护资源计数工作方式下,当数据接收引擎接收到请求 数据包,将请求数据的远端互斥和信号量单元地址寄存器与本地互斥和信号量 单元地址寄存器比较,若相同,则接收该请求数据包并进行对应的锁定、解锁、 等待或者释放处理。其中,当所述请求数据包是锁定/等待请求或者尝试锁定/等待请求,通知资源计数器将计数减l;若资源计数器通知成功,则数据接收引擎向发送该请求数 据包的互斥和信号量单元发送成功应答;若资源计数器通知失败,则对于尝试 锁定/等待请求,数据接收引擎向发送该请求数据包的互斥和信号量单元发送包 含失败信息和自身消费者等待时间寄存器值的RTY应答,对于锁定/等待请求, 数据接收引擎将接收到的请求包的本地互斥和信号量单元地址存储进远端等待 单元地址FIFO。其中,当所述本文档来自技高网
...

【技术保护点】
一种满足systemC语法的多核处理器的互斥和信号量单元组,所述互斥和信号量单元组包括按照SystemC语法的sc_mutex(name)、sc_mutex.lock()、sc_mutex.trylock()、sc_mutex.unlock()、sc_semaphore.wait()、sc_semaphore.trywait()、sc_semaphore.post()、sc_semaphore(init_value)、sc_semaphore(name,init_value)函数代码实现的逻辑电路,所述逻辑电路用于向处理器核运行时控制器发送激活和暂停处理器的信号,并使得软件开发工具的映射算法将位于不同处理单元的互斥和信号量单元组重新组合,实现SystemC的sc_mutex或者sc_semaphore语法单元所定义的功能。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈曦黄毅刘祥张金龙任菲
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利