下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种多线程轻核处理器进程管理的硬件设计
在过去几十年中,摩尔定法下电路的集成密度随着指数率的增加而增加。目前,大型芯片可以集成数十亿个芯片。但是,靠提高芯片主频来增加处理器能力的方法会带来日益增长的功耗,致使芯片无法克服散热问题。研究表明,内存中数据的传输和ILP(指令级并行)1共享存储的监控设计本文设计了一种新型的多线程轻核处理器,该轻核并行处理器是一个阵列机,由多个处理单元簇(cluster组成,每个簇是由处理单元(PE)组成的一个二维阵列(2DArray),是一种较常见的阵列结构。一个基本簇(basecluster)通常是16个处理单元组成的4×4阵列,如图1所示。其特点是:采用近邻连接的网络拓扑结构;采用双模式的指令集,高效实现并行处理所需的线程间通信;采用专用远程数据传输指令和多播方式及相应的路由器,满足了输出数据的扇出需求和远距离线程间的数据通信。上述特点需要高性能的线程管理机制邻居共享存储M[S]分为4个部分:Me(东)、Mw(西)、Ms(南)和Mn(北),每部分用于与相邻处理器通信。在设计中分别为寄存器R28、R29、R30、R31。共享存储器的存取采用阻塞模式(线程间同步),每个共享存储地址都有一位数据有效位。当读取数据时,如果数据无效,则当前线程需要等待;如果数据有效,则读取数据,并将其置为无效。当写入数据时,数据无效则直接写入,数据有效则等待。路由器RU负责将数据传输到远程处理器件,指令控制器(ICTL)模块通过计算把指令写入指令存储(I-men)中,方便处理器对所需指令的读取。ALU中的指令读取单元含有一个程序计数器(PC)和一个进程地址寄存器(Creg)。每个进程都分配一块数据存储,其基地址可以放在Creg中。T_control完成进程的调度、每个进程自身的状态跳转、每个进程信息的存储,以及事件检测(路由器远程数据传输和相邻的共享存储器中数据的检测)。t_control根据进程表实现一步到位的上下文转换,发送相应的PC和Creg中的当前数值给ALU来调度处理器处理当前进程。2进程的监控设计总体设计中采用8个进程并发执行。进程管理器由一个控制模块(t_manager)、一个就绪队列模块(ready_list)、8个进程的状态转换模块(t_state)、8个进程的寄存器模块(regfile)和一个进程信息表模块(t_table)构成(1)控制模块(t_manager):首先创建进程,根据每个进程的状态(初始态、就绪态、运行态、阻塞态)创建就绪队列;完成后开始采用轮询的方法控制每个进程的调度(2)进程状态转换模块(t_state):主要分为两部分:其一是进程的自身4个状态之间的跳转控制部分;其二是进程阻塞后的检测部分。一般是实现8个或者16个并发进程,图3所示为8个进程的设计图,每个进程需要有自己的t_state模块,图中可以看到8个进程状态控制转换模块。(3)寄存器模块(regfile):每个进程拥有自己独立的32个寄存器,寄存器R0~R27每个进程自己可以读写,但是邻居处理器不可以读写;寄存器R28~R31是处理器与邻居4个处理器共享的寄存器,本设计的Me(东)、Mw(西)、Ms(南)、Mn(北)4个寄存器分别指的是R28、R29、R30和R31。(4)进程的相关参数的维护表(t_table):用来记录每个进程的当前状态,并且维护进程阻塞和恢复时的数据。整个控制模块根据这个进程表中的每个进程的当前状态和处理器的忙闲来实现一步到位的上下文转换。2.1进程控制模块当创建一个进程时,就为进程建立了一个相应的状态参数表,图4所示为一个进程的状态参数表。设计中为8个进程,需要8组如图所示的参数表。状态参数描述如下:(1)QT:时间片,是指系统给每个进程所分配的执行时间。一旦时间片用完,当前进程就挂起,等待下次的调度。(2)PC:程序计数器,是指进程的程序在内存或者外存中的物理位置。进程挂起或者阻塞时,首先存储当前程序执行的PC到t_table中,再进行其他操作;进程需要执行时,首先从t_table中读取PC值,再进行程序的读取和其他操作。(3)STAMP:时间戳。每次从进程开始执行进行计数,如果STAMP==QT,则挂起进程;如果在STAMP!=QT时,进程发生阻塞,则保存当前的STAMP,待下次调度进程时,从保存的STAMP值开始计数并与时间片进行比较。(4)STATE:状态标志。每个进程都有4个状态,即:IDLE初始状态:00,READY就绪状态:01,RUNNING初始状态:10,WAITING阻塞状态:11。(5)进程现场保护:AVAIL表示3个算子中是否有数据;MASK表示3个算子是否有用;A0,A1,AD表示进程阻塞时候的3个算子的地址。(6)ACT:表示进程是否有效。2.2确定就绪任务后的转换电路每个进程都有自身4个状态之间的跳转控制,设计中8个进程采用轮询的调度策略来控制进程的上下文转换,并且产生与处理器之间的接口信号,状态机如图5所示。状态跳转解释如下:(1)INIT:初始状态。首先创建进程和进程的就绪队列,就绪队列完成后跳转到P1状态。(2)P1:检测就绪队列的空满。如果就绪队列空,则说明没有就绪状态的进程,继续等待就绪队列的产生;如果不空则说明有就绪的进程,采用轮询的调度方法调度进程,即从就绪队列中读取第一个进程号码。(3)P2:发送进程id号码到进程状态控制模块t_state,并且发送进程处理信号id_enable为高电平给进程状态控制模块t_state,跳转到P3状态。(4)P3:发送信号cpu_enable(高电平)、cpu_creg(进程id号码)、pc(进程的程序地址)给处理器,等待处理器的处理。一旦信号t_enbale为高电平,表示当前进程挂起或者执行完成了,则跳转到P1状态,cpu_enable置低。2.3进程的跳飞式操作进程状态转换模块的设计分为两部分介绍:一是进程自身4个状态之间的跳转控制部分的详细设计;二是每个进程阻塞后的检测部分的详细设计。下面主要介绍单个进程的状态控制。每个进程都有4个状态,跳转如图6所示。各状态说明如下:(1)INIT:初始状态。检测进程的PCB表的act信息,一旦为高(表示进程是可用的),则跳转到下一个状态READY。(2)READY:就绪状态,表示进程已经具备了运行条件,但是处理器不一定是空闲的,如果不空闲,则暂时不能使用,需等待分配处理器。即检测进程启动信号id_enable,一旦为高(表示处理器空闲,进程可以执行),则跳转到RUNNING状态。(3)RUNNING:运行状态。首先读取t_table中对应进程号的QT(时间片)、PC(进程的程序的计数器)和STAMP(时间戳);处理器开始执行该进程的程序后,时间戳与时间片相等了,表示该进程的时间片结束了,则跳转到READY状态,并且保护现场,把当前的进程号写入就绪队列中,等待下次的调度;当处理过程中发生了阻塞,则跳转到WAIT状态,把当前的PC(进程的程序的计数器)、STAMP(时间戳)、MASK(3个算子中有用的算子标志)、AVAIL(3个算子中有数据的标志)、A0,A1,AD(3个算子的地址)写入t_table中,保护现场;当进程的程序处理完时,act置低,跳转到INIT状态,不再被调度。(4)WAIT:阻塞状态,即进程在运行过程中,因为等待某一事件(如等待一个输入/输出操作完成)而暂时不能运行的状态。这种状态下,发送t_enable高电平到进程控制模块,同时启动监测模块进行所需数据的监测,如果t_flag为高电平,则表示监测信号监测到了相应的数据,此时进程恢复READY状态,并且跳转到READY状态,等待下一次进程的启动。3简单的功能测试电路设计采用Verilog硬件描述语言,在Xinlinx公司的ISE环境下完成功能仿真和综合。在阵列机的基础上,采用指令集编写简单的算法完成了简单功能测试。算法如3×3矩阵的加减法、多个数的最大公约数与最小公倍数的求解和奇偶算法。图7所示是一个简单的3×3阵列机,采用一个处理器和一个进程控制器组成一个pe,图中的寄存器是相邻处理器之间的共享寄存器。3.1pe0仿真结果测试激励为:pe0、pe1、pe2各自包括3个进程,3个进程分别执行不同的3×3矩阵加法。图7所示的pe之间的寄存器(即共享寄存器)中,R30/R28是pe与左右邻之间的共享寄存器,R31/R29是pe与上下邻之间的共享寄存器。根据测试激励,pe0会发生阻塞,pe1和pe3进程都是顺序执行。pe0的仿真结果图如8所示,分析如下:(1)首先执行0号进程。从图中cpu_creg为000(0号进程)的信号可以看出,当执行完成以后没有发现阻塞,进程0顺利执行完成,信号t_over为高。3.2第三次偶排序基于奇偶原理和归并—拆分模式(1)将6个数据分别存储到6个pe的寄存器R0中。(2)开始进行第一次偶排序,此时pe0、pe2、pe4分别读取R30(CPU与右邻的共享寄存器)的数据,而pe1、pe3、pe5把数据从寄存器R0移到R28中,这样3个pe并发地执行第一次偶排序。(3)开始进行第一次奇排序,此时pe1、pe3通过R30读取右邻的pe2、pe4中的数据,pe2、pe4在上次的偶排序时已经把数据存放到自身寄存器R28中,这样2个pe并发地执行第一次奇排序,pe0和pe5等待下次的偶排序。(2)然后根据调度算法调度1号进程(cpu_creg为001)。信号cpu_flag为标志信号,其为1表示寄存器R8或者R31没有数据,此时发生阻塞,则挂起1号进程,同时启用监测模块对1号进程没有数据的寄存器R31进行监测。(3)在监测的同时根据调度算法调度2号进程(cpu_creg为010)。若2号进程也发生了阻塞(cpu_flag为1),则挂起2号进程,同时进行2号进程所需要的数据的监测;在2号进程的执行过程中1号进程就绪,这时2号进程一旦挂起则调度1号进程(cpu_creg为001)继续执行,直到1号进程执行完成(t_over为1);重复以上操作,处理完所有的进程。(4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年买卖合同代替授权经销合同二篇
- 门窗套制作安装方案
- 2026年移动存储介质保密管理试题及答案
- 充电桩专业试题及对应答案
- 2026年化工企业事故案例分析试题及答案
- 2026林业专业知识考试试题(含答案)
- 雕塑选修综合试题及答案归纳
- 2025年生物传感技术专业笔试试卷及答案
- 公路知识测试题目与答案
- 2026年吉林中医院医疗岗结构化面试题库
- 2026年国家统一法律职业资格考试全套真题(含标准答案+详细解析)
- 2026四川光雾山文旅康养产业有限公司招聘1人笔试题库含答案详解【黄金题型】
- 老师批改作业8种方法
- 2026年重庆市网格员招聘考试试题及答案解析
- 初中三年级英文短文范文 100 篇
- 一线数智中国制造业AI场景应用白皮书2026
- 货车使用协议书范本
- 《教师书写技能与训练》00绪论
- 南昌市房屋市政工程生产安全重大事故隐患排查整治指导手册
- MIDASGTS建模培训教程讲课文档
- 护理科研的步骤与方法
评论
0/150
提交评论