-
公开(公告)号:CN106406814B
公开(公告)日:2019-06-14
申请号:CN201610875658.6
申请日:2016-09-30
申请人: 上海兆芯集成电路有限公司
IPC分类号: G06F9/22
CPC分类号: G06F9/3016 , G06F9/28 , G06F9/30058 , G06F9/30145 , G06F9/3017 , G06F9/322 , G06F9/324 , G06F9/3802 , G06F9/3804 , G06F9/3814 , G06F9/3822 , G06F9/3842 , G06F9/3867
摘要: 本发明涉及处理器和将架构指令转译成微指令的方法。处理器具有执行微指令的执行流水线和将架构指令转译成为微指令的指令转译器。指令转译器具有:存储器,保持微代码指令并且每时钟周期提供多个微代码指令;队列,保持存储器所提供的微代码指令;分支解码器,其对微代码指令进行解码以检测本地分支指令,使得要将读取的多条微代码指令中直到程序顺序首位本地分支指令为止但不包括程序顺序首位本地分支指令的微代码指令写入队列,并防止将程序顺序首位本地分支指令及其后续微代码指令写入队列。本地分支指令由指令转译器而非由执行流水线进行解析。微代码转译器将每时钟周期从队列接收到的多个微代码指令转译成微指令以提供至执行流水线。
-
公开(公告)号:CN109032672A
公开(公告)日:2018-12-18
申请号:CN201810794543.3
申请日:2018-07-19
申请人: 江苏华存电子科技有限公司
IPC分类号: G06F9/38
CPC分类号: G06F9/3842
摘要: 本发明公开了低延迟指令调度器,通过局部内存总线连接微处理器,所述低延迟指令调度器包括指令数寄存器一和指令数寄存器二,每一次微处理器更新指令数时,会轮流更新指令数寄存器一和指令数寄存器二;连续写入指令数寄存器一或指令数寄存器二的指令数会被过滤掉。本发明还公开了过滤猜测访问方法。避免因某些微处理器的猜测性重复存取而增加不可预期的指令个数的情况,使连接于特定局部内存总线之指令调度器正常运作,不受重复存取影响。
-
公开(公告)号:CN109032609A
公开(公告)日:2018-12-18
申请号:CN201810665696.8
申请日:2012-03-30
申请人: 英特尔公司
CPC分类号: G06F11/3466 , G06F8/40 , G06F8/52 , G06F9/3017 , G06F9/3842 , G06F9/4552 , G06F11/073 , G06F11/3616 , G06F11/3652
摘要: 由性能监视硬件实现的硬件剖析机制实现页级自动二进制转换。该硬件在运行时期间标识存储器中包含潜在能被优化的指令的代码页。该硬件请求在所述存储器中分配与所述代码页相关联的新页,其中所述新页包含计数器的集合,并且所述计数器中的每一个对应于所述代码页中的指令中的一个。当该硬件检测到具有在该代码页内的分支目标的分支指令时,它使在该新页中具有与代码页中的分支目标相同的位置的计数器之一递增。重复该代码页的执行,并在分支目标落在该代码页之内时使计数器递增。该硬件然后将所述新页中的所述计数器值提供给二进制转换器以用于二进制转换。
-
公开(公告)号:CN104205088B
公开(公告)日:2018-07-24
申请号:CN201280072148.5
申请日:2012-03-30
申请人: 英特尔公司
CPC分类号: G06F11/3466 , G06F8/40 , G06F8/52 , G06F9/3017 , G06F9/3842 , G06F9/4552 , G06F11/073 , G06F11/3616 , G06F11/3652
摘要: 由性能监视硬件实现的硬件剖析机制实现页级自动二进制转换。该硬件在运行时期间标识存储器中包含潜在能被优化的指令的代码页。该硬件请求在所述存储器中分配与所述代码页相关联的新页,其中所述新页包含计数器的集合,并且所述计数器中的每一个对应于所述代码页中的指令中的一个。当该硬件检测到具有在该代码页内的分支目标的分支指令时,它使在该新页中具有与代码页中的分支目标相同的位置的计数器之一递增。重复该代码页的执行,并在分支目标落在该代码页之内时使计数器递增。该硬件然后将所述新页中的所述计数器值提供给二进制转换器以用于二进制转换。
-
公开(公告)号:CN108027773A
公开(公告)日:2018-05-11
申请号:CN201680054500.0
申请日:2016-09-13
申请人: 微软技术许可有限责任公司
IPC分类号: G06F12/0806 , G06F9/38
CPC分类号: G06F9/3016 , G06F9/268 , G06F9/30007 , G06F9/30021 , G06F9/30036 , G06F9/3004 , G06F9/30043 , G06F9/30047 , G06F9/3005 , G06F9/30058 , G06F9/30072 , G06F9/30076 , G06F9/30087 , G06F9/3009 , G06F9/30098 , G06F9/30101 , G06F9/30105 , G06F9/3013 , G06F9/30145 , G06F9/30167 , G06F9/30189 , G06F9/32 , G06F9/321 , G06F9/345 , G06F9/35 , G06F9/355 , G06F9/3557 , G06F9/3802 , G06F9/3804 , G06F9/3822 , G06F9/3824 , G06F9/383 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3848 , G06F9/3851 , G06F9/3853 , G06F9/3855 , G06F9/3859 , G06F9/3867 , G06F9/3891 , G06F9/466 , G06F9/528 , G06F11/36 , G06F11/3648 , G06F11/3656 , G06F12/0806 , G06F12/0811 , G06F12/0862 , G06F12/0875 , G06F12/1009 , G06F13/4221 , G06F15/7867 , G06F15/80 , G06F15/8007 , G06F2212/452 , G06F2212/602 , G06F2212/604 , G06F2212/62 , Y02D10/13 , Y02D10/14 , Y02D10/151
摘要: 公开了用于使用硬件结构来控制存储器访问指令在基于块的处理器架构中的执行的装置和方法,该硬件结构指示指令块中的存储器访问指令的相对排序。在所公开的技术的一个示例中,一种执行具有多个存储器加载和/或存储器存储指令的指令块的方法包括选择下一存储器加载或者存储器存储指令,以基于被编码在块内的依赖性和对存储数据的存储向量执行,该数据指示指令块中的哪些存储器加载和存储器存储指令已经执行。可以使用存储掩码来对存储向量进行掩码。可以在对指令块译码时生成或者从指令块头部复制存储掩码。基于编码的依赖性和经掩码的存储向量,下一指令可以在它的依赖性可用时发出。
-
公开(公告)号:CN108027771A
公开(公告)日:2018-05-11
申请号:CN201680054472.2
申请日:2016-09-13
申请人: 微软技术许可有限责任公司
IPC分类号: G06F12/0806 , G06F9/38
CPC分类号: G06F9/3016 , G06F9/268 , G06F9/30007 , G06F9/30021 , G06F9/30036 , G06F9/3004 , G06F9/30043 , G06F9/30047 , G06F9/3005 , G06F9/30058 , G06F9/30072 , G06F9/30076 , G06F9/30087 , G06F9/3009 , G06F9/30098 , G06F9/30101 , G06F9/30105 , G06F9/3013 , G06F9/30145 , G06F9/30167 , G06F9/30189 , G06F9/32 , G06F9/321 , G06F9/345 , G06F9/35 , G06F9/355 , G06F9/3557 , G06F9/3802 , G06F9/3804 , G06F9/3822 , G06F9/3824 , G06F9/383 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3848 , G06F9/3851 , G06F9/3853 , G06F9/3855 , G06F9/3859 , G06F9/3867 , G06F9/3891 , G06F9/466 , G06F9/528 , G06F11/36 , G06F11/3648 , G06F11/3656 , G06F12/0806 , G06F12/0811 , G06F12/0862 , G06F12/0875 , G06F12/1009 , G06F13/4221 , G06F15/7867 , G06F15/80 , G06F15/8007 , G06F2212/452 , G06F2212/602 , G06F2212/604 , G06F2212/62 , Y02D10/13 , Y02D10/14 , Y02D10/151
摘要: 公开了与基于块的处理器核复合寄存器相关的系统、装置和方法。在所公开的技术的一个示例中,处理器可以包括多个基于块的处理器核,多个基于块的处理器核用于执行包括多个指令块的程序。相应的基于块的处理器核可以包括一个或多个可共享资源和可编程复合控制寄存器。可编程复合控制寄存器可以用于配置一个或多个可共享资源中的哪些资源与多个处理器核中的其他处理器核共享。
-
公开(公告)号:CN108027770A
公开(公告)日:2018-05-11
申请号:CN201680054462.9
申请日:2016-09-13
申请人: 微软技术许可有限责任公司
IPC分类号: G06F12/0806 , G06F9/38
CPC分类号: G06F9/3016 , G06F9/268 , G06F9/30007 , G06F9/30021 , G06F9/30036 , G06F9/3004 , G06F9/30043 , G06F9/30047 , G06F9/3005 , G06F9/30058 , G06F9/30072 , G06F9/30076 , G06F9/30087 , G06F9/3009 , G06F9/30098 , G06F9/30101 , G06F9/30105 , G06F9/3013 , G06F9/30145 , G06F9/30167 , G06F9/30189 , G06F9/32 , G06F9/321 , G06F9/345 , G06F9/35 , G06F9/355 , G06F9/3557 , G06F9/3802 , G06F9/3804 , G06F9/3822 , G06F9/3824 , G06F9/383 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3848 , G06F9/3851 , G06F9/3853 , G06F9/3855 , G06F9/3859 , G06F9/3867 , G06F9/3891 , G06F9/466 , G06F9/528 , G06F11/36 , G06F11/3648 , G06F11/3656 , G06F12/0806 , G06F12/0811 , G06F12/0862 , G06F12/0875 , G06F12/1009 , G06F13/4221 , G06F15/7867 , G06F15/80 , G06F15/8007 , G06F2212/452 , G06F2212/602 , G06F2212/604 , G06F2212/62 , Y02D10/13 , Y02D10/14 , Y02D10/151
摘要: 公开了用于使用指令译码器来控制基于块的处理器体系架构中的存储器访问指令的执行的装置和方法,该指令译码器对具有可变数目的目标操作数的指令进行译码。在所公开的技术的一个示例中,基于块的处理器核包括指令译码器,其被配置为译码用于指令块中的指令的目标操作数,该指令被编码以将可变数目的目标操作数考虑在内;以及控制单元,其被配置为发送用于由核中的至少一个核所执行的操作的译码的目标操作数中的至少一个目标操作数的数据。在一些示例中,该指令指示具有矢量编码的目标指令。在其他示例中,可变长度格式将对一个或多个目标的指示考虑在内。
-
公开(公告)号:CN108027735A
公开(公告)日:2018-05-11
申请号:CN201680054501.5
申请日:2016-09-13
申请人: 微软技术许可有限责任公司
CPC分类号: G06F9/3016 , G06F9/268 , G06F9/30007 , G06F9/30021 , G06F9/30036 , G06F9/3004 , G06F9/30043 , G06F9/30047 , G06F9/3005 , G06F9/30058 , G06F9/30072 , G06F9/30076 , G06F9/30087 , G06F9/3009 , G06F9/30098 , G06F9/30101 , G06F9/30105 , G06F9/3013 , G06F9/30145 , G06F9/30167 , G06F9/30189 , G06F9/32 , G06F9/321 , G06F9/345 , G06F9/35 , G06F9/355 , G06F9/3557 , G06F9/3802 , G06F9/3804 , G06F9/3822 , G06F9/3824 , G06F9/383 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3848 , G06F9/3851 , G06F9/3853 , G06F9/3855 , G06F9/3859 , G06F9/3867 , G06F9/3891 , G06F9/466 , G06F9/528 , G06F11/36 , G06F11/3648 , G06F11/3656 , G06F12/0806 , G06F12/0811 , G06F12/0862 , G06F12/0875 , G06F12/1009 , G06F13/4221 , G06F15/7867 , G06F15/80 , G06F15/8007 , G06F2212/452 , G06F2212/602 , G06F2212/604 , G06F2212/62 , Y02D10/13 , Y02D10/14 , Y02D10/151
摘要: 公开了用于使用生成指令块中的存储器访问指令的相对排序的硬件结构来控制基于块的处理器架构中的存储器访问指令的执行的装置和方法。在所公开的技术的一个示例中,一种执行具有多个存储器加载和/或存储器存储指令的指令块的方法包括:对编码多个存储器访问指令的指令块进行译码,并生成指示用于执行指令块中的存储器访问指令的相对次序的数据,并且至少部分地基于相对次序的数据来调度指令块的一部分的操作。在一些示例中,存储向量数据寄存器可以存储所生成的相对排序的数据以用于在指令块的后续实例中使用。
-
公开(公告)号:CN108027730A
公开(公告)日:2018-05-11
申请号:CN201680053045.2
申请日:2016-09-13
申请人: 微软技术许可有限责任公司
CPC分类号: G06F9/3016 , G06F9/268 , G06F9/30007 , G06F9/30021 , G06F9/30036 , G06F9/3004 , G06F9/30043 , G06F9/30047 , G06F9/3005 , G06F9/30058 , G06F9/30072 , G06F9/30076 , G06F9/30087 , G06F9/3009 , G06F9/30098 , G06F9/30101 , G06F9/30105 , G06F9/3013 , G06F9/30138 , G06F9/30145 , G06F9/30167 , G06F9/30189 , G06F9/32 , G06F9/321 , G06F9/345 , G06F9/35 , G06F9/355 , G06F9/3557 , G06F9/3802 , G06F9/3804 , G06F9/3822 , G06F9/3824 , G06F9/3828 , G06F9/383 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3848 , G06F9/3851 , G06F9/3853 , G06F9/3855 , G06F9/3859 , G06F9/3867 , G06F9/3891 , G06F9/466 , G06F9/528 , G06F11/36 , G06F11/3648 , G06F11/3656 , G06F12/0806 , G06F12/0811 , G06F12/0862 , G06F12/0875 , G06F12/1009 , G06F13/4221 , G06F15/7867 , G06F15/80 , G06F15/8007 , G06F2212/452 , G06F2212/602 , G06F2212/604 , G06F2212/62 , Y02D10/13 , Y02D10/14 , Y02D10/151
摘要: 公开了用于使在无效指令的目标字段中标识的一个或多个寄存器无效的装置和方法。在所公开的技术的一些示例中,一种装置可以包括存储器和一个或多个基于块的处理器核,其被配置为对多个指令块进行取指和执行。所述核之一可以包括控制单元,其至少部分地基于接收无效指令被配置为基于所述无效指令的目标字段,获得多个寄存器中的至少一个的寄存器标识。使与寄存器标识相关联的至少一个寄存器的写入无效。无效指令在多个指令块中的第一指令块中。基于至少一个寄存器的无效写入,执行来自不同的第二指令块的后续指令。
-
公开(公告)号:CN107810478A
公开(公告)日:2018-03-16
申请号:CN201680037706.2
申请日:2016-06-23
申请人: 微软技术许可有限责任公司
CPC分类号: G06F9/32 , G06F9/3005 , G06F9/30054 , G06F9/3804 , G06F9/3808 , G06F9/382 , G06F9/3822 , G06F9/3836 , G06F9/3838 , G06F9/3842 , G06F9/3846 , G06F9/3859 , G06F9/3891 , G06F15/80
摘要: 公开了用于在基于块的处理器架构中提供对目标地址的早期访问的系统、方法和计算机可读存储装置。在所公开的技术的一个示例中,在基于块的架构中执行分支的方法可以包括使用基于块的架构的第一核心来执行第一指令块的一个或多个指令。该方法可以包括在第一指令块被提交之前发起第二指令块的指令的非推测性执行。
-
-
-
-
-
-
-
-
-