论文部分内容阅读
摘 要 本文探讨了利用同时多线程技术的硬件多线程处理器设计,利用处理器内部的硬件机制管理多线程的调度,实现以硬件的时间片轮询为基础的多线程调度机制。
关键词 嵌入式;多线程处理器;处理器设计
中图分类号:TP302 文献标识码:A 文章编号:1671-7597(2014)20-0006-01
我国现阶段的嵌入式系统里,多线程调度是通过建立于软件层面上达到的,利用操作系统管理线程调度,但此方法仍然存在一些缺点,比如系统实行时间片轮询切换时会损耗相当多的时间,而导致处理器实施用户线程效率低;大部分嵌入式处理器硬件未设置多线程执行环境的保护硬件机制,使得多线程程序工作时出现安全漏洞;用户开发多线程编程需要借助系统函数与编程来解决相对复杂的问题。因此,本文探讨了使用同时多线程技术实现的硬件多线程处理器设计,利用处理器内部硬件配制来管理多线程调度,全面提升处理器实施用户线程的效率,用户于多线程基础上的编程程序也相对简易化,提高了在多线程工作环境下保护各线程的能力。
1 关于嵌入式硬件多线程处理器的设计
由于芯片集成度与处理器设计技术的不断进步,多种逻辑处理器在单一处理器上的实现,为硬件多线程的并发运行提供了条件。对于嵌入式系统而言,其设计应当顾及成本与复杂度。本文设计的单执行内核的同时多线程是以传统处理核心为基础,外展一个通过硬件逻辑掌控的多线程调度管理电路,实现硬件层面上多种线程的调度效果。处理器的线程调度单元会把外存里的多种线程指令代码依照顺序置入待执行线程队列中,同时根据时间片顺序把待执行队列里的多种线程指令代码依次传输到执行单元里执行。在这种处理器结构下,每个硬件控制的线程依次在自身时间片内应用处理器的资源。每个通过处理器硬件控制的线程,于处理器执行单元运行时所见的处理器属于完整的单任务处理器,即是指在某特别时间里只存在单一线程应用处理器上的多种资源。利用这种结构设计的处理器,只具备单一处理器执行核,减弱了设计复杂度,实现的处理器范围相比于同等级的单线程处理器,未见明显增加。因此,利用同时多线程技术能够实现操作系统软件最小程度的参与,以此降低硬件成本,实现在单处理器芯片系统内进行硬件多线程操作。
硬件多线程处理器的硬件调度掌控部位的设计通常包括硬件多线程处理器结构设计、寄存器存储器资源保护设计、指令节拍的状态机设计。指令节拍的状态机设计应用了摩尔有限状态机,把一条指令分散成五部分执行,分别包括取指、译码、访存、回写、执行五部分。
2 关于嵌入式硬件多线程执行机制的实现
1)硬件多线程机制的实现。
关于硬件结构,同时多线程技术实现的处理器只存在单一的处理器核心,多线程的执行是依据单位时间片顺序调度多种线程方法来实现。在每个单位时间片上,处理器应当依照次序完成执行当前空间指令、恢复工作时间、保护当前工作环境。
在处理器执行空间指令过程里,一些内部资源并不需要一直采用,就像通用寄存器内的资源只在处理器的WB与EX节拍内才会被应用。因此能够适当排列操作次序,同时在硬件结构上设定缓冲寄存器,以便在处理器中执行当前线程,保护与执行下一线程工作空间的恢复操作。
保护每个线程的工作空间,包括指针寄存器与通用寄存器组等,能够借助在处理器内部反复设定多种同等资源,同时将其分散在多种资源页内实现。若处理器要切换线程时,处理器是采用换页的方法切换这些资源。这些资源的分页符,是凭借处理器里的线程选择器形成的线程号来掌控。在实现过程中,对于怎样连贯地把三种操作过程利用最少的时间依次完成是我们需要重视的问题。
当前处理工作环境的保护是多线程运行环境里处理器保护内部所有寄存器与存储器。通过两种具体办法来实现,其一为页面管理办法,其二为资源迅速切换法。
2)线程选择模块的实现。
利用同时多线程技术实现的处理器,每个硬件线程都存在特殊的线程号标志,通常依据这些线程号区分处理器内部的硬件线程。当前执行线程号的获取能够借助查询线程控制寄存器的最高三位来实现。
多线程执行时,线程选择器会控制线程执行次序,其原理结构图为下图1所示。
图1 线程选择器结构原理图
在这个选择器里包括一个线程选择列阵,列阵的输出端输出的是下个单位时间片所要执行的线程号。列阵的输入激励应当包括两部分,分别是线程基数计数器输出与线程控制寄存器输出。其中线程控制寄存器记录的是当前被激活的硬件线程,利用这个寄存器能够为用户提供一个控制处理器内硬件线程的掌控接口;线程基数寄存器会形成一个有次序的线程基数编号;线程选择阵列中存在一个二维线性查找表。通过把线程基数计数器与线程控制寄存器两部分的输出激励传输至二维的线性选择阵列里,凭借特定的二维线性查找联系则能算出当前执行的线程号。
3 关于嵌入式硬件多线程执行机制的性能分析
本文设计的硬件多线程执行处理器采用的是VHDL语言来描述,并且把它下载到FPGA芯片上来实现。处理器实现的性能以及参数设定标准为:处理器数据总线带宽应设为8位,处理器工作主要频率是20 MHz,处理器结构为RISC结构。指令集使用ATMEL8515处理器指令集内的子集,最大支持1MB数据与程序存储空间、8个硬件线程。处理器内含有32个通用寄存器。
测试所应用的是NRMX多任务操作系统与WebitX多任务嵌入式操作系统两套系统。NRMX多任务操作系统是以Intel RMX51操作系统为基础,改善的一套嵌入式多任务操作系统,该系统最多支持8项任务,借助时间片轮询方法予以执行。系统的硬件配置包括Intel公司i8051处理器,12 MHz的工作频率,系统配有12KB的程序存储空间。而WebitX多任务嵌入式操作系统是采用抢占式多任务操作系统的一套嵌入式系统,该系统最多支持8个任务。硬件运行的环境为RISC单片机处理器,8MHz的处理频率,系统配有4kb的程序存储空间。上述两套操作系统处理器的指令执行所耗时钟周期数、机器指令码、处理速率均存在一定差异,直接对比绝对处理时间不存在意义,因此使用对比用户线程执行比率的方法来进行分析。
4 结束语
综上所述,本文探讨的是利用硬件控制来完成多线程调度的方式,硬件多线程处理器于多线程条件下具有相当快的执行效率,但是评价其多线程处理系统的性能,还必须整合多种因素来予以评价。
参考文献
[1]张文波,苑凌娇,谭小波,等.嵌入式多线程处理器的执行控制设计方法的研究[J].沈阳理工大学学报,2012,34(4).
[2]田杭沛,高德遠,樊晓桠,等.面向实时流处理的多核多线程处理器访存队列[J].计算机研究与发展,2009,46(10).
关键词 嵌入式;多线程处理器;处理器设计
中图分类号:TP302 文献标识码:A 文章编号:1671-7597(2014)20-0006-01
我国现阶段的嵌入式系统里,多线程调度是通过建立于软件层面上达到的,利用操作系统管理线程调度,但此方法仍然存在一些缺点,比如系统实行时间片轮询切换时会损耗相当多的时间,而导致处理器实施用户线程效率低;大部分嵌入式处理器硬件未设置多线程执行环境的保护硬件机制,使得多线程程序工作时出现安全漏洞;用户开发多线程编程需要借助系统函数与编程来解决相对复杂的问题。因此,本文探讨了使用同时多线程技术实现的硬件多线程处理器设计,利用处理器内部硬件配制来管理多线程调度,全面提升处理器实施用户线程的效率,用户于多线程基础上的编程程序也相对简易化,提高了在多线程工作环境下保护各线程的能力。
1 关于嵌入式硬件多线程处理器的设计
由于芯片集成度与处理器设计技术的不断进步,多种逻辑处理器在单一处理器上的实现,为硬件多线程的并发运行提供了条件。对于嵌入式系统而言,其设计应当顾及成本与复杂度。本文设计的单执行内核的同时多线程是以传统处理核心为基础,外展一个通过硬件逻辑掌控的多线程调度管理电路,实现硬件层面上多种线程的调度效果。处理器的线程调度单元会把外存里的多种线程指令代码依照顺序置入待执行线程队列中,同时根据时间片顺序把待执行队列里的多种线程指令代码依次传输到执行单元里执行。在这种处理器结构下,每个硬件控制的线程依次在自身时间片内应用处理器的资源。每个通过处理器硬件控制的线程,于处理器执行单元运行时所见的处理器属于完整的单任务处理器,即是指在某特别时间里只存在单一线程应用处理器上的多种资源。利用这种结构设计的处理器,只具备单一处理器执行核,减弱了设计复杂度,实现的处理器范围相比于同等级的单线程处理器,未见明显增加。因此,利用同时多线程技术能够实现操作系统软件最小程度的参与,以此降低硬件成本,实现在单处理器芯片系统内进行硬件多线程操作。
硬件多线程处理器的硬件调度掌控部位的设计通常包括硬件多线程处理器结构设计、寄存器存储器资源保护设计、指令节拍的状态机设计。指令节拍的状态机设计应用了摩尔有限状态机,把一条指令分散成五部分执行,分别包括取指、译码、访存、回写、执行五部分。
2 关于嵌入式硬件多线程执行机制的实现
1)硬件多线程机制的实现。
关于硬件结构,同时多线程技术实现的处理器只存在单一的处理器核心,多线程的执行是依据单位时间片顺序调度多种线程方法来实现。在每个单位时间片上,处理器应当依照次序完成执行当前空间指令、恢复工作时间、保护当前工作环境。
在处理器执行空间指令过程里,一些内部资源并不需要一直采用,就像通用寄存器内的资源只在处理器的WB与EX节拍内才会被应用。因此能够适当排列操作次序,同时在硬件结构上设定缓冲寄存器,以便在处理器中执行当前线程,保护与执行下一线程工作空间的恢复操作。
保护每个线程的工作空间,包括指针寄存器与通用寄存器组等,能够借助在处理器内部反复设定多种同等资源,同时将其分散在多种资源页内实现。若处理器要切换线程时,处理器是采用换页的方法切换这些资源。这些资源的分页符,是凭借处理器里的线程选择器形成的线程号来掌控。在实现过程中,对于怎样连贯地把三种操作过程利用最少的时间依次完成是我们需要重视的问题。
当前处理工作环境的保护是多线程运行环境里处理器保护内部所有寄存器与存储器。通过两种具体办法来实现,其一为页面管理办法,其二为资源迅速切换法。
2)线程选择模块的实现。
利用同时多线程技术实现的处理器,每个硬件线程都存在特殊的线程号标志,通常依据这些线程号区分处理器内部的硬件线程。当前执行线程号的获取能够借助查询线程控制寄存器的最高三位来实现。
多线程执行时,线程选择器会控制线程执行次序,其原理结构图为下图1所示。
图1 线程选择器结构原理图
在这个选择器里包括一个线程选择列阵,列阵的输出端输出的是下个单位时间片所要执行的线程号。列阵的输入激励应当包括两部分,分别是线程基数计数器输出与线程控制寄存器输出。其中线程控制寄存器记录的是当前被激活的硬件线程,利用这个寄存器能够为用户提供一个控制处理器内硬件线程的掌控接口;线程基数寄存器会形成一个有次序的线程基数编号;线程选择阵列中存在一个二维线性查找表。通过把线程基数计数器与线程控制寄存器两部分的输出激励传输至二维的线性选择阵列里,凭借特定的二维线性查找联系则能算出当前执行的线程号。
3 关于嵌入式硬件多线程执行机制的性能分析
本文设计的硬件多线程执行处理器采用的是VHDL语言来描述,并且把它下载到FPGA芯片上来实现。处理器实现的性能以及参数设定标准为:处理器数据总线带宽应设为8位,处理器工作主要频率是20 MHz,处理器结构为RISC结构。指令集使用ATMEL8515处理器指令集内的子集,最大支持1MB数据与程序存储空间、8个硬件线程。处理器内含有32个通用寄存器。
测试所应用的是NRMX多任务操作系统与WebitX多任务嵌入式操作系统两套系统。NRMX多任务操作系统是以Intel RMX51操作系统为基础,改善的一套嵌入式多任务操作系统,该系统最多支持8项任务,借助时间片轮询方法予以执行。系统的硬件配置包括Intel公司i8051处理器,12 MHz的工作频率,系统配有12KB的程序存储空间。而WebitX多任务嵌入式操作系统是采用抢占式多任务操作系统的一套嵌入式系统,该系统最多支持8个任务。硬件运行的环境为RISC单片机处理器,8MHz的处理频率,系统配有4kb的程序存储空间。上述两套操作系统处理器的指令执行所耗时钟周期数、机器指令码、处理速率均存在一定差异,直接对比绝对处理时间不存在意义,因此使用对比用户线程执行比率的方法来进行分析。
4 结束语
综上所述,本文探讨的是利用硬件控制来完成多线程调度的方式,硬件多线程处理器于多线程条件下具有相当快的执行效率,但是评价其多线程处理系统的性能,还必须整合多种因素来予以评价。
参考文献
[1]张文波,苑凌娇,谭小波,等.嵌入式多线程处理器的执行控制设计方法的研究[J].沈阳理工大学学报,2012,34(4).
[2]田杭沛,高德遠,樊晓桠,等.面向实时流处理的多核多线程处理器访存队列[J].计算机研究与发展,2009,46(10).