[发明专利]具有通用寄存器资源管理的矢量处理器有效
申请号: | 201710061694.3 | 申请日: | 2017-01-26 |
公开(公告)号: | CN108364251B | 公开(公告)日: | 2021-06-25 |
发明(设计)人: | 朱韵鹏;吉姆歇德·米尔扎 | 申请(专利权)人: | 超威半导体公司;ATI科技无限责任公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06T1/20;G06F9/30 |
代理公司: | 上海胜康律师事务所 31263 | 代理人: | 樊英如;张华 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 通用 寄存器 资源管理 矢量 处理器 | ||
1.一种用于在矢量处理器的计算单元中分配寄存器的方法,所述方法包括:
确定要由所述计算单元处的内核的多个线程同时使用的寄存器的最大数目,其中确定所述寄存器的最大数目包括从表示所述内核的数据结构中的元数据确定所述寄存器的最大数目,所述元数据包括代表所述寄存器的最大数目的值;以及
基于所确定的寄存器的最大数目与在所述计算单元处实现的物理寄存器的总数的比较,在所述计算单元处设置寄存器分配的模式。
2.根据权利要求1所述的方法,其中设置所述寄存器分配的模式包括:
确定启动所述多个线程的执行所需的寄存器的最小数目;以及
响应于所确定的寄存器的最大数目大于物理寄存器的总数并且响应于物理寄存器的总数大于或等于寄存器的最小数目,将所述寄存器分配的模式设置为线程初始化模式,由此所述多个线程中的每个线程被初始分配以足以在所述计算单元处启动所述线程的执行的对应数量的物理寄存器。
3.根据权利要求2所述的方法,其中设置所述寄存器分配的模式进一步包括:
响应于物理寄存器的总数大于或等于所确定的寄存器的最大数目并且小于在所述计算单元处执行所述多个线程期间使用的寄存器的总数,将寄存器分配的模式设置为重新捕获分配模式,其中每个线程被从在所述计算单元处实现的所述物理寄存器动态分配物理寄存器,并且其中每个动态分配的物理寄存器在所述线程的相应指令完成之后被动态地解除分配。
4.根据权利要求1所述的方法,其中设置所述寄存器分配的模式进一步包括:
响应于物理寄存器的总数大于或等于所确定的寄存器的最大数目并且小于在所述计算单元处执行所述多个线程期间使用的寄存器的总数,将所述寄存器分配的模式设置为重新捕获分配模式,其中每个线程被从在所述计算单元处实现的物理寄存器动态分配物理寄存器,并且其中每个动态分配的物理寄存器在所述线程的相应指令完成之后被动态地解除分配。
5.根据权利要求1所述的方法,还包括:
在所述计算单元处监控在所述计算单元处实现的所述物理寄存器向所述内核的线程的分配;和
响应于确定其中分配所述计算单元中的每个物理寄存器的超额预订条件,将所述计算单元设置为超额预订模式,在该超额预订模式中,从线程对分配寄存器的请求导致将虚拟寄存器分配给所述线程。
6.根据权利要求5所述的方法,还包括:
响应于确定在分配所述虚拟寄存器之后物理寄存器已变得能用于分配,将存储在所述虚拟寄存器中的数据传送到已变为能用的所述物理寄存器。
7.根据权利要求1所述的方法,还包括:
在所述计算单元处监控在所述计算单元处实现的物理寄存器向所述内核的线程的分配;以及
响应于确定其中分配所述计算单元中的每个物理寄存器的超额预订条件,将所述计算单元设置为超额预订模式,在所述超额预订模式中暂停具有未分配寄存器的线程直到所述计算单元中的物理寄存器能用于分配。
8.一种矢量处理器,包括:
一个或多个计算单元,每个计算单元包括:
成组的物理寄存器;
成组的算术逻辑单元(ALU);和
用于所述一个或多个计算单元中的每个计算单元的寄存器资源管理器,该寄存器资源管理器用于确定要由所述计算单元处的内核的多个线程同时使用的寄存器的最大数目,以及基于所确定的寄存器的最大数目与在所述计算单元处实现的物理寄存器的总数的比较,在所述计算单元处设置寄存器分配的模式,其中所述寄存器资源管理器被配置为从表示所述内核的数据结构中的元数据确定所述寄存器的最大数目,所述元数据包括代表所述寄存器的最大数目的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司;ATI科技无限责任公司,未经超威半导体公司;ATI科技无限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710061694.3/1.html,转载请声明来源钻瓜专利网。