【摘要】 一种基于可配置处理器的异构多核系统线程级动态调度方法,步骤为:第一步,所使用的异构多核结构由一组可配置处理核组成,每个处理核都具有一组公共指令集,每个核都具有一个指令集配置core_isa,表示此核能运行哪些指令集;第二步,应用程序被划分为多个线程,每个线程之间仅存在数据依赖,每个线程具有一个期望指令集属性thread_isa,表示该线程使用了此指令集中的指令集;第三步,操作系统与运行在其上的应用一同编译为二进制可执行文件,所有处理器核共享同一个操作系统数据区;第四步,在上述步骤完成后,进行线程级动态调度。本发明解决静态调度分配效率不高的缺点,,可以减少学习时间,简化编程模型。 【专利类型】发明授权 【申请人】上海交通大学 【申请人类型】学校 【申请人地址】200240 上海市闵行区东川路800号 【申请人地区】中国 【申请人城市】上海市 【申请人区县】闵行区 【申请号】CN200810039566.X 【申请日】2008-06-26 【申请年份】2008 【公开公告号】CN101299194B 【公开公告日】2010-04-07 【公开公告年份】2010 【授权公告号】CN101299194B 【授权公告日】2010-04-07 【授权公告年份】2010.0 【IPC分类号】G06F9/48 【发明人】付宇卓; 刘婷; 陈劭; 胡泊 【主权项内容】一种基于可配置处理器的异构多核系统线程级动态调度方法,其特征在于,包括以下步骤:第一步,选择异构多核结构所使用的异构多核结构由一组可配置处理核组成,每个处理核都具有一组公共指令集,每个核都具有一个指令集配置core_isa,表示此核能运行哪些指令集;第二步,划分线程应用程序被划分为多个线程,每个线程之间仅存在数据依赖,而不存在内部的控制关系,每个线程具有一个期望指令集属性thread_isa,表示该线程使用了什么指令集;第三步,操作系统的工作机制的设置操作系统与运行在其上的应用一同编译为二进制可执行文件,所有处理器核共享同一个操作系统数据区;第四步,在上述三个步骤完成之后,进行线程级动态调度,调度步骤如下:步骤d1:调度器在某一个处理核上启动,执行步骤d2;步骤d2:调度器获得当前处理核的指令集配置core_isa;步骤d3:获得线程就绪队列中第一个就绪线程的句柄,得到该线程的期望指令集属性thread_isa;步骤d4:检查core_isa是否满足thread_isa的运行要求,如果满足调度器停止查找,执行步骤d7,如果不满足执行步骤d5;步骤d5:检查是否还有未遍历的就绪线程,如果有执行步骤d6,如果无执行步骤d8;步骤d6:获得下一个就绪线程的句柄,得到该线程的期望指令集属性thread_isa,然后执行步骤d4;步骤d7:切换系统上下文,执行选出的线程,到步骤d9;步骤d8:系统睡眠,然后重新执行步骤d1;步骤d9:调度结束。 【当前权利人】上海交通大学 【当前专利权人地址】上海市闵行区东川路800号 【统一社会信用代码】1210000042500615X0 【引证次数】5.0 【他引次数】5.0 【家族引证次数】5.0 【家族被引证次数】19