发明名称 零开销切换多线程处理器及其线程切换方法
摘要 本发明公开了一种零开销线程切换的方法及多线程处理器,该处理器包括:用于完成基本指令运行的五级流水线处理单元,用于从多个处于就绪态的线程中仲裁得到切换线程的线程仲裁单元,用于响应对外部存储单元访问的反馈事件信号的信号监视逻辑单元,用于保存五级流水线处理单元中程序运行及线程切换时数据的寄存器文件单元和用于用户监测和控制处理器的运行状态的本地控制状态单元。五级流水线处理单元发出线程切换请求信号给线程仲裁单元,零开销地线程切换,并等待外部单元的反馈事件信号以唤醒线程,仲裁线程继续运行。本发明具有零开销线程切换和良好的处理器性能/面积比的优点,用于IP数据包高速分组、交换及转发处理。
申请公布号 CN101763285A 申请公布日期 2010.06.30
申请号 CN201010013723.7 申请日期 2010.01.15
申请人 西安电子科技大学 发明人 郝跃;王庆成;李康;马佩军;史江义;林钰凯
分类号 G06F9/48(2006.01)I 主分类号 G06F9/48(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种零开销线程切换多线程处理器,包括:五级流水线处理单元,使用精简指令集,完成基本的指令运行,并在遇到访存操作指令或者显式线程切换指令后,发出线程切换请求信号至线程仲裁单元,同时发出沉睡类型和沉睡线程号至本地控制状态单元;线程仲裁单元,用于从多个处于就绪态的线程中,仲裁得到切换线程,更新线程状态,并对流水线处理单元发出的线程切换请求信号进行仲裁,得到线程号输出至本地控制状态单元;信号监视逻辑单元,用于响应对外部存储单元访问的反馈事件信号,使用多位的寄存器保存反馈事件信号的事件类型和事件所属线程号,每个周期处理一个事件信号,输出该反馈事件信号至本地控制状态单元以修改事件寄存器,并以该反馈事件信号的事件线程号选择本地控制状态单元中对应的沉睡寄存器和唤醒寄存器,进行对应位相与的原子操作,若不为0,则唤醒对应线程,若为0,则继续沉睡该线程。寄存器文件单元,用于保存五级流水线处理单元中程序运行及线程切换时的数据,并作为五级流水线处理单元与外部单元通信的接口;本地控制状态单元,用于用户监测和控制处理器的运行状态,它包括,活跃线程寄存器,用于记录当前线程号,响应线程仲裁单元输出的切换线程号,以修改活跃线程寄存器值;多个程序计数器,用以记录线程切换后线程的程序地址值,根据活跃线程寄存器值,选择其中的一个程序计数器,作为五级流水线处理单元中当前程序的取指令地址;多个沉睡寄存器,用以记录处理器不同线程的访存操作,响应五级流水线处理单元发出的沉睡类型和沉睡线程号,选择其中的一个沉睡寄存器进行读修改写操作;多个事件寄存器,用于记录外部单元对处理器不同线程的反馈事件信号,响应信号监视逻辑输出的事件类型及事件所属线程号,对其中的一个事件寄存器进行读修改写操作;仲裁寄存器,用于记录当前活动线程切换前线程号及切换后线程号,根据线程仲裁器更新的线程状态,修改仲裁寄存器值;线程使能寄存器,用于记录当前每个线程的使能值,接受用户修改;运算结果寄存器,用于记录当前线程中每条指令的运算结果。所述的每个沉睡寄存器按照线程号与每个事件寄存器对应,进行位原子比较,更新当前的线程状态,该当前线程状态与所述的仲裁寄存器和线程使能寄存器,共同决定线程仲裁单元的仲裁结果。
地址 710071 陕西省西安市太白南路2号