CN105980980B - 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质 - Google Patents

用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质 Download PDF

Info

Publication number
CN105980980B
CN105980980B CN201480074517.3A CN201480074517A CN105980980B CN 105980980 B CN105980980 B CN 105980980B CN 201480074517 A CN201480074517 A CN 201480074517A CN 105980980 B CN105980980 B CN 105980980B
Authority
CN
China
Prior art keywords
instruction
slot
processor
instructions
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201480074517.3A
Other languages
English (en)
Other versions
CN105980980A (zh
Inventor
朴哉彦
金硕镇
金度亨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN105980980A publication Critical patent/CN105980980A/zh
Application granted granted Critical
Publication of CN105980980B publication Critical patent/CN105980980B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

在一种运行指令的方法中,基于多个指令中的每一个中所包括的信息来获取在预定周期中运行的至少一个指令,并且获取所述至少一个指令中所包括的代码。基于分析结果将指令分配给至少一个槽位,并且选择性地使用运行所述指令所必要的槽位。因此,可以减少使用所述方法的设备的功耗。

Description

用于运行指令的方法和处理器、用于对指令进行编码的方法 和装置以及用于其的记录介质
技术领域
本发明的一个或多个实施例涉及用于运行指令的方法和处理器、用于对 指令进行编码的方法和装置以及用于其的记录介质。
背景技术
基于处理器的设备的电力效率已经变得更加重要,并且特别是,电池操 作设备的电力效率已经变成需要高度关注的核心问题。因此,已经进行研究 以提高此类设备的电力效率。
提高各种设备的电力效率的方法的示例包括设计使用低功率的单独电 路设备的方法和设计管理功耗的处理器的方法。
然而,当单独电路设备被设计并实施时,由于额外硬件的使用而发生额 外功耗。另外,当单独指令被添加来设计过程以便管理功耗时,将处理的指 令的总尺寸增加。
发明公开
技术问题
当单独电路设备被设计并实施时,由于额外硬件的使用而发生额外功 耗。另外,当单独指令被添加来设计过程以便管理功耗时,将处理的指令的 总尺寸增加。
解决方案
本发明的一个或多个实施例包括用于运行指令的方法和处理器、用于对 指令进行编码的方法和装置以及用于其的记录介质。
有益效果
可以高效地设计在处理器中用于同时运行多个指令的多个槽位(slot)。
附图说明
这些和/或其他方面从下文结合附图对实施例的描述中将变得清楚并且 更加容易理解,其中:
图1是根据本发明的实施例的指令存储器系统的方框图;
图2是根据本发明的实施例的用于运行指令的系统的方框图;
图3是示出根据本发明的实施例的用于对指令进行编码的方法的流程 图;
图4是示出根据本发明的实施例生成的指令的结构的示图;
图5是示出根据本发明的实施例的用于运行指令的方法的流程图;
图6是示出根据本发明的实施例的用于基于指令执行操作的方法的流程 图;
图7是示出根据本发明的实施例的用于将指令分配给第一复用器中所包 括的至少一个槽位的方法的表格;
图8是示出根据本发明的实施例的用于在处理器中运行至少一个指令的 方法的示图;
图9是根据本发明的实施例的用于对指令进行编码的装置的方框图;并 且
图10是根据本发明的实施例的处理器的方框图。
最佳实施方式
本发明的一个或多个实施例包括用于运行指令的方法和处理器、用于对 指令进行编码的方法和装置以及用于其的记录介质。
额外方面将在下文描述中部分地阐述并且部分将从描述中显然,或者可 以通过实践呈现的实施例了解。
根据本发明的一个或多个实施例,一种用于在处理器中运行指令的方法 包括:基于多个指令中的每一个中所包括的停止位来获取在预定周期中运行 的至少一个指令;从所述至少一个指令提取类型码,所述类型码包括基于所 述至少一个指令执行的操作的类型信息;基于所提取的类型码来将所述至少 一个指令分配给第一复用器的至少一个槽位;以及执行所述所分配的槽位中 的所述操作。
所述至少一个指令的获取可包括:当第一指令中所包括的停止位具有第 一值时,在所述预定周期中获取作为第一指令之后的下一个指令的第二指 令;以及当第一指令中所包括的所述停止位具有第二值时,在所述预定周期 之后的下一个周期中获取第二指令。
所述操作的执行可包括:将电力供应给第一复用器的所述至少一个槽位 中的所分配的槽位;并且中断供应给第一复用器的所述至少一个槽位中所分 配的槽位之外的所有槽位的电力。
所述操作的执行可包括:基于操作数的类型信息在至少一个寄存器中选 择用于获取操作数的寄存器;以及从选定寄存器获取所述操作数。
所述寄存器的选择可包括:将电力供应给使所述选定寄存器与第一复用 器的所分配的槽位相连接的第二复用器的槽位;以及中断供应给使所述至少 一个寄存器中的未选定寄存器与第一复用器的所分配的槽位相连接的第三 复用器的槽位的电力。
根据本发明的一个或多个实施例,一种用于在设备中对指令进行编码的 方法包括:生成类型码,所述类型码包括在处理器中可执行的预定操作的类 型信息和在预定操作中处理的操作数的类型信息;生成停止位,所述停止位 包括关于在预定周期中执行的至少一个操作的信息;以及基于所述类型码和 所述停止位来生成用于执行预定操作的指令。
所述停止位的生成可包括:当在所述预定周期中执行作为第一指令之后 的下一个指令的第二指令时,在所述停止位中表示第一值;以及当在所述预 定周期之后的下一个周期中运行第二指令时,在所述停止位中表示第二值。
根据本发明的一个或多个实施例,一种运行指令的处理器包括:输入单 元,其被配置来基于多个指令中的每一个中所包括的停止位来获取在预定周 期中运行的至少一个指令;控制单元,其被配置来从所述至少一个指令提取 类型码,所述类型码包括基于所述至少一个指令执行的操作的类型信息,并 且基于所提取的类型码将所述至少一个指令分配给第一复用器的至少一个 槽位;以及操作单元,其被配置来执行所述所分配的槽位中的所述操作。
当第一指令中所包括的停止位具有第一值时,所述输入单元可在所述预 定周期中获取作为第一指令之后的下一个指令的第二指令;以及当第一指令 中所包括的所述停止位具有第二值时,可在所述预定周期之后的下一个周期 中获取第二指令。
所述操作单元可将电力供应给第一复用器的所述至少一个槽位中的所 分配的槽位,并且中断供应给第一复用器的所述至少一个槽位中所分配的槽 位之外的所有槽位的电力。
所述操作单元可基于所述操作数的所述类型信息在至少一个寄存器中 选择用于获取所述操作数的寄存器,并且从所述选定寄存器获取所述操作 数。
所述操作单元可将电力供应给使所述选定寄存器与第一复用器的所分 配的槽位相连接的第二复用器的槽位,并且中断供应给使所述至少一个寄存 器中的未选定寄存器与第一复用器的所分配的槽位相连接的第三复用器的 槽位的电力。
所述操作单元可在连接到第一复用器的所分配的槽位的至少一个操作 执行单元中选择执行所述操作的操作执行单元,并且可基于所获取的操作数 来在所述选定操作执行单元中执行所述操作。
根据本发明的一个或多个实施例,一种用于运行指令的装置包括:代码 生成单元,其被配置来生成类型码,所述类型码包括在处理器中可执行的预 定操作的类型信息和在所述预定操作中处理的操作数的类型信息;停止位生 成单元,其被配置来生成停止位,所述停止位包括关于在预定周期中执行的 至少一个操作的信息;以及指令生成单元,其被配置来基于所述类型码和所 述停止位来生成用于执行所述预定操作的指令。
当在所述预定周期中运行作为第一指令之后的下一个指令的第二指令 时,所述停止位生成单元可在所述停止位中表示第一值,以及当在所述预定 周期之后的下一个周期中运行第二指令时,可在所述停止位中表示第二值。
具体实施方式
现将详细参考实施例,这些实施例的示例在附图中示出,其中遍及附图 相同参考数字指代相同元素。在此方面,本发明的实施例可以具有不同的形 式并且不应被解释为限制于在此阐述的描述。因此,这些实施例仅是通过参 考附图在下文描述以解释本发明的多个方面。如本文所使用,术语“和/或” 包括一个或多个相关所列项目的任何和所有组合。诸如“……中的至少一个” 的表达当在元素列表之后时,修饰整个元素列表而不是修饰所述列表的单独 元素。
下文将参考附图详细地描述本发明的实施例以便本领域普通技术人员 可容易实施本发明的实施例。在此方面,本发明的实施例可以具有不同的形 式并且不应被解释为限于在此阐述的这些描述。另外,为了对本发明的实施 例的清楚描述,与本发明的实施例的描述不相关的部分将在图中被省略,并 且遍及本说明书,相同参考标号将表示相同元素。
应理解当一元素被称为是“连接到”另一个元素时,它能够直接连接到 其他元素或可在其间介入其它元素时电连接到其他元素。还将理解,术语“包 括”、“包含”和“具有”在本文使用时,指定所述元素的存在,但并不排 除其他元素件的存在或添加,除非另外定义。
在下文中,本发明的实施例将参考附图详细地描述。
图1是根据本发明的实施例的指令存储器系统10的方框图。
在图1的指令存储器系统10中,仅示出与本实施例有关的组件。因此, 本领域那些或普通技术人员将理解,指令存储器系统10还可包括除图1所 示的组件之外的其他通用组件。
参考图1,指令存储器系统10可包括指令编码装置100、外部存储器15 和指令高速缓冲存储器18。
指令存储器系统10可基于存储在外部存储器15中的用于定义指令的编 码信息来生成指令。在本文中,指令编码装置100可以是编译器。然而,这 仅仅是本发明的实施例,并且指令编码装置100可以是可根据本发明的实施 例生成指令的任何设备。
根据本发明的实施例,指令编码装置100可基于编码信息生成将在超长 指令字(VLIW)处理器中运行的指令。VLIW是用于执行同时运行多个指 令的操作的设备中的一种。根据本发明的实施例的指令编码装置100可基于 从外部存储器15获取的编码信息和预定条件来生成指令。例如,当指令编 码装置100生成在VLIW处理器中同时执行的多个指令时,条件可被如此设 定使得执行标量操作的指令(在下文中,称为标量指令)必须在执行矢量操 作的指令(在下文中,称为矢量指令)之前生成。也就是,当必须在当前第 一周期中执行一个标量操作和两个矢量操作时,指令编码装置100可按照标 量指令、第一矢量指令和第二矢量指令的次序生成多个指令。
当指令编码装置100基于预定条件生成指令时,可以高效地设计处理器 中用于同时运行多个指令的多个槽位。稍后将参考图8详细地描述这种情况。
外部存储器15可存储根据本发明的实施例用于定义指令的编码信息。 例如,指令可包括:操作码、基于操作码处理的操作数的地址码、或存储操 作结果的结果值的地址码。所述指令中所包括的详细信息(例如,执行预定 功能的代码)可根据操作而变化,所述操作根据所述指令来执行。
根据本发明的实施例的指令的结构还可包括除操作码、操作数的地址和 结果值的地址码之外的类型码和停止位。
类型码可包括基于指令执行的操作的类型信息。在本文中,操作的类型 可包括标量操作或矢量操作。另外,类型码可包括基于指令执行的操作数的 类型信息。在本文中,操作数的类型可包括标量数据或矢量数据。
指令中所包括的至少一个代码或位可根据指令的预定结构来布置。在下 文中,例如,假设停止位被部署在构成指令的多个位中的第一位,并且类型 码被部署在其最后一位。然而,这仅仅是本发明的实施例,并且本发明的实 施例不限于此。
图2是根据本发明的实施例的用于运行指令的系统20的方框图。
在图2的系统20中,仅示出与本实施例有关的组件。因此,本领域那 些或普通技术人员将理解,系统20还可包括除图2所示的组件之外的其他 通用组件。
参考图2,系统20可包括指令队列22、第一寄存器24、第二寄存器26 和处理器200。
指令队列22可包括在处理器200中可运行的多个指令。根据本发明的 实施例,指令队列22可从图1所示的指令存储器系统10的指令高速缓冲存 储器18接收指令。根据另一个实施例,指令队列22可获取存储在外部设备 中的指令。
指令可基于由指令编码装置100生成的指令的次序来存储在指令队列 22中。例如,当指令编码装置100按照标量指令、第一矢量指令和第二矢量 指令的次序生成多个指令时,多个指令可按照标量指令、第一矢量指令和第 二矢量指令的次序存储在指令队列22中。
指令队列22可同时输出预定数量的指令。例如,当预定数量是4时, 指令队列22可同时输出第一标量指令、第二标量指令、第一矢量指令和第 二矢量指令。
处理器200可从指令队列22中输出的多个指令中获取将在预定周期中 运行的至少一个指令。根据本发明的实施例的处理器200可基于从指令队列 22输出的多个指令中的每一个中所包括的停止位来确定将在预定周期中运 行的至少一个指令。
另外,处理器200可基于将在预定周期中运行的指令来执行操作。处理 器200可通过分析指令中所包括的操作码、操作数的地址码和结果值的地址 码来执行操作。
根据本发明的实施例的处理器200可基于指令中所包括的类型码来确定 用于运行所述指令的槽位。例如,处理器200可通过所确定的槽位从指令队 列22获取指令。在本文中,处理器200中所包括的第一复用器可包括用于 从指令队列22获取至少一个指令的至少一个槽位。
由处理器200确定的槽位可包括使预定寄存器与第一复用器的槽位相连 接的至少一个复用器,所述预定寄存器存储基于指令处理的操作数。在以下 描述中,假设处理器200包括第二复用器和第三复用器。
第一寄存器24和第二寄存器26可存储基于处理器200获取的指令处理 的操作数。存储操作数的寄存器的地址信息可被存储在处理器200中。
根据存储在第一寄存器24和第二寄存器26中的每一个中的操作数的类 型,第一寄存器24和第二寄存器26可被分类为矢量寄存器和标量寄存器。 例如,当标量数据被存储器在第一寄存器24中时,第一寄存器24可以是标 量寄存器。另外,当矢量数据被存储在第二寄存器26中时,第二寄存器26 可以是矢量寄存器。
图3是示出根据本发明的实施例的用于对指令进行编码的方法的流程 图。
在操作310中,指令编码装置100可生成包括预定操作的类型信息和操 作数的类型信息的类型码。在本文中,操作的类型可包括标量操作或矢量操 作。另外,操作数的类型可包括标量数据或矢量数据。
例如,根据本发明的实施例的指令可包括32位。关于操作类型的信息 可由32位指令的第32位表示。例如,当由指令执行的操作是标量操作时, 第32位可以是0。另外,当由指令执行的操作是矢量操作时,第32位可以 是1。然而,这仅仅是本发明的实施例,并且关于操作类型的信息不限于在 第32位中表示。例如,关于操作类型的信息可由两个或更多个位表示,并 且关于操作类型的信息可在第32位之外的位中表示。另外,例如,指示标 量操作的位可表示为1,并且指示矢量操作的位可表示为0。
根据本发明的实施例,关于操作数的类型的信息可由32位指令的预定 数量的位表示。当由指令执行的操作是标量操作时,操作数可以是标量数据。 当由指令执行的操作是矢量操作时,操作数可仅包括矢量数据或可包括矢量 数据和标量数据两者。
在标量操作的情况下,因为操作数是标量数据,所以操作数的类型可不 通过额外使用指示标量操作的第32位之外的位来表示。在矢量操作的情况 下,当操作数仅包括矢量数据时,例如,第27位可表示为0。另外,在矢量 操作的情况下,当操作数包括矢量数据和标量数据两者时,第27位可表示 为1。
在操作320中,指令编码装置100可生成停止位,所述停止位包括关于 在预定周期中执行的至少一个操作的信息。停止位可用来从多个操作中确定 将在预定周期中执行的至少一个操作。
例如,在实施例中,在VLIW处理器中同时可运行的指令的最大数量可 以是4个。当四个指令中的每一个中所包括的停止位是例如0011时,可在 预定周期中执行三个操作。根据本发明的实施例,当停止位具有第一值(例 如0)时,可在预定周期中执行预定操作之后的下一个操作。另一方面,当 停止位具有第二值(例如1)时,可在预定周期之后的下一个周期中执行预 定操作之后的下一个操作。
根据本发明的实施例的指令编码装置100可在构成指令的多个位中的第 一位中表示停止位。然而,这仅仅是本发明的实施例,并且本发明的实施例 不限于此。
在操作330中,指令编码装置100可基于所生成的类型码和停止位来生 成用于执行预定操作的指令。
指令编码装置100可通过根据指令的预定结构部署类型码和停止位来生 成指令。在本文中,所述指令可包括:操作码、基于操作码处理的操作数的 地址码和存储操作结果的结果值的地址码。指令中所包括的详细信息(例如, 执行预定功能的代码)可根据操作而变化,所述操作由所述指令执行。
图4是示出根据本发明的实施例生成的指令的结构的图。
参考图4,在实施例中,图4中示出第(n-1)个指令420、第(n)个 指令440和第(n+1)个指令460。在本文中,可在同一周期中从指令队列 22(见图2)输出第(n-1)个指令420、第(n)个指令440、第(n+1)个 指令460和第(n+2)个指令(未示出)。
例如,根据本发明的实施例的指令可包括32位。基于指令的预定结构, 停止位的值可在32位中的位0(第一位)中表示。包括关于操作类型的信息 和关于操作数的类型的信息的类型码可在多个位中表示,例如,位31(第 32位)至位26(第27位)或位31至位27(第28位)。详细地,基于指令 执行的操作的类型信息可在位31中表示。在本文中,当位31的值是0时, 操作是标量操作,并且当位31的值是1时,操作是矢量操作。另外,操作 数的类型信息可在多个位中表示,例如,位30(第31位)至位27(第28 位)或位30至位26(第27位)。将参考每个指令的结构详细描述操作数的 类型信息。
参考图4,在实施例中,类型码421可在第(n-1)个指令420的多个位 中表示,例如,位31至位27(第28位)。在图4中,第(n-1)个指令420 的位31的值是0。当位31的值是0时,基于第(n-1)个指令420执行的操 作可以是标量操作。第(n-1)个指令420的位30至位27的值是0。在标量 操作的情况下,操作数总是标量数据。在标量操作的情况下,可以不单独设 定用于标识操作数类型的信息。然而,这仅仅是本发明的实施例,第(n-1) 个指令420中的位30至位27的值可被设定为0以指示操作数是标量数据。
操作码423可在第(n-1)个指令420的位26至位19(第20位)中表 示。另外,存储操作数的寄存器的地址425和427可在第(n-1)个指令420 的位18(第19位)至位13(第14位)和位6(第7位)至位1(第二位) 中表示。存储操作结果的结果值的地址426可在第(n-1)个指令420的位 12(第13位)至位7(第8位)中表示。
停止位的值可在32位中的位0(第一位428)中表示。因为0在第(n-1) 个指令420的位0(第一位428)中表示为停止位的值,所以可在处理器200 的预定周期中获取第(n)个指令440,所述第(n)个指令440是作为当前 指令的第(n-1)个指令420之后的下一个指令。
类型码可在第(n)个指令440的多个位中表示,例如,位31至位27 (第28位)。例如,第(n)个指令440的位31的值是1。当位31的值是 1时,基于第(n)个指令440执行的操作的类型可以是矢量操作。第(n) 个指令440的位30至位27的值是0。在矢量操作的情况下,操作数可包括 矢量数据和标量数据两者或可仅包括矢量数据。第(n)个指令440的位30 至位27的值可设定为0以指示操作数仅包括矢量数据。
操作码可在第(n)个指令440的位26至位18(第19位)中表示。另 外,存储操作数的寄存器的地址可在第(n)个指令440的位17(第18位) 至位13(第14位)和位5(第6位)至位1(第二位)中表示。存储操作结 果的结果值的地址446可在第(n)个指令440的位12(第13位)至位7(第 8位)中表示。
停止位的值可在32位中的位0(第一位448)中表示。因为0在第(n) 个指令440的位0(第一位448)中表示为停止位的值,所以可在处理器200 的预定周期中获取第(n+1)个指令460,所述第(n+1)个指令460是作为 当前指令的第(n)个指令440之后的下一个指令。
类型码461可在第(n+1)个指令460的多个位中表示,例如,位31至 位26(第27位)。例如,第(n+1)个指令460的位31的值是1。当位31 的值是1时,基于第(n+1)个指令460执行的操作可以是矢量操作。第(n+1) 个指令460的位30至位27的值是0。在矢量操作的情况下,操作数可包括 矢量数据和标量数据两者或可仅包括矢量数据。值0、0、0、1、0可分别在 第(n+1)个指令460的位30至位26(第27位)中表示以指示操作数类型 包括矢量数据和标量数据两者。
操作码463可在第(n+1)个指令460的位25(第26位)至位19(第 20位)中表示。另外,存储操作数的寄存器的地址465和467可在第(n+1) 个指令460的位18(第19位)至位13(第14位)和位5(第6位)至位1 (第二位)中表示。存储操作结果的结果值的地址466可在第(n+1)个指 令460的位12至位7中表示。
停止位的值可在32位中的位0(第一位468)中表示。因为1在第(n+1) 个指令460的位0(第一位468)中表示为停止位的值,所以可在处理器200 的预定周期中获取第(n+2)个指令,所述第(n+2)个指令是作为当前指令 的第(n+1)个指令460之后的下一个指令。
图5是示出根据本发明的实施例的用于运行指令的方法的流程图。
在操作510中,处理器200可基于多个指令中的每一个中所包括的停止 位来获取在预定周期中运行的至少一个指令。
处理器200可基于从指令队列22接收的多个指令中的每一个中所包括 的停止位来在预定周期中获取至少一个指令。在本文中,指令队列22可在 每个周期中输出预定数量的指令。
当由处理器200接收的第一指令中所包括的停止位具有第一值(例如0) 时,处理器200可在预定周期中获取第二指令,所述第二指令是第一指令之 后的下一个指令。在本文中,可以基于将多个指令存储在指令队列22中的 次序来确定下一个指令。也就是,当第一指令和第二指令顺序地存储在指令 队列22中时,第二指令可以是第一指令之后的下一个指令。
当由处理器200接收的第一指令中所包括的停止位具有第二值(例如1) 时,处理器200可在预定周期之后的下一个周期中获取第二指令,所述第二 指令是第一指令之后的下一个指令。也就是,当停止位具有第二值时,处理 器200可在预定周期中获取第一指令并且在下一个周期中获取第二指令。
例如,处理器200可接收从指令队列22输出的四个指令(也就是,图4 所示的第(n-1)个指令420、第(n)个指令440、第(n+1)个指令460和 第(n+2)个指令)。所接收的四个指令的停止位分别可以是0、0、1和1。 在识别出预定周期中所接收的第(n-1)个指令420中所包括的停止位的值 是0时,处理器200可获取作为第(n-1)个指令420之后的下一个指令的 第(n)个指令440。在识别出第(n)个指令440的停止位的值是0时,处 理器200可获取作为第(n)个指令440之后的下一个指令的第(n+1)个指 令460。在识别出第(n+1)个指令460的停止位的值是1时,处理器200 可以不获取作为第(n+1)个指令460之后的下一个指令的第(n+2)个指令。 处理器200可在预定周期之后的下一个周期中获取第(n+2)个指令。
在操作520中,处理器200可从至少一个指令提取类型码,所述类型码 包括基于至少一个指令执行的操作的类型信息。在本文中,操作可以是标量 操作或矢量操作。
处理器200可识别所提取的类型码中所包括的操作类型信息。例如,在 由第32位表示操作类型的指令的情况下,当第32位的值是0时,处理器200 可将操作类型识别为标量操作。另外,当第32位的值是1时,处理器200 可将操作类型识别为矢量操作。
在操作530中,处理器200可基于所提取的类型码来将至少一个指令分 配给第一复用器的至少一个槽位。例如,当第一复用器包括四个槽位时,处 理器200可将执行标量操作的标量指令分配给第一槽位和第二槽位。另外, 处理器200可将执行矢量操作的矢量指令分配给第三槽位和第四槽位。
参考图4,处理器200可获取第(n-1)个指令420、第(n)个指令440 和第(n+1)个指令460。在本文中,第(n-1)个指令420是标量指令,第 (n)个指令440是矢量指令,并且第(n+1)个指令460是矢量指令。处理 器200可将第(n-1)个指令420分配给第一复用器的第一槽位。另外,处 理器200可将第(n)个指令440分配给第一复用器的第三槽位并且将第(n+1)个指令460分配给第一复用器的第四槽位。
在操作540中,处理器200可执行所分配的槽位中的操作。处理器200 可将电力供应给第一复用器的至少一个槽位中分配有指令的槽位。因为在操 作530中将指令分配给四个槽位中的第一槽位、第三槽位和第四槽位,所以 处理器200可将电力供应给第一槽位、第三槽位和第四槽位。
另一方面,处理器200可中断对第一复用器的至少一个槽位中分配有指 令的槽位之外的槽位的电力供应。例如,因为在操作530中没有将指令分配 给四个槽位中的第二槽位,所以处理器200可中断对第二槽位的电力供应。 因为仅将电力供应给多个槽位中分配有指令的槽位,并且不将电力供应给未 分配指令的槽位,所以可以高效地使用电力。
图6是示出根据本发明的实施例的用于基于指令执行操作的方法的流程 图。
在操作610中,处理器200可基于从至少一个指令提取的类型码来将至 少一个指令分配给第一复用器的至少一个槽位。例如,当第一复用器包括四 个槽位时,处理器200可将执行标量操作的标量指令分配给第一槽位和第二 槽位。另外,处理器200可将执行矢量操作的矢量指令分配给第三槽位和第 四槽位。
在操作620中,处理器200可基于类型码中所包括的操作数的类型信息 来在至少一个寄存器中选择用于获取操作数的寄存器。在本文中,操作数可 包括标量数据或矢量数据。
在标量指令的情况下,操作数是标量数据。因此,处理器200可选择存 储标量数据的标量寄存器。在矢量指令的情况下,操作数可以是标量数据或 矢量数据。例如,矢量指令可包括仅处理作为操作数的矢量数据的第一矢量 指令和处理作为操作数的矢量数据和标量数据两者的第二矢量指令。因此, 处理器200可基于表示操作数的类型信息的类型码来识别在预定矢量指令中 处理的操作数的类型。
在操作630中,处理器200可确定是否选择了至少一个寄存器。
在操作640中,处理器200可将电力供应给使选定寄存器与第一复用器 的所分配槽位相连接的第二复用器的槽位。在本文中,第二复用器可包括使 选定寄存器与第一复用器中所包括的至少一个槽位相连接的多个槽位。
在操作650中,处理器200可中断供应给第三复用器的使未选定寄存器 与第一复用器的所分配槽位相连接的槽位的电力。在本文中,第三复用器可 包括使未选定寄存器与第一复用器中所包括的至少一个槽位相连接的多个 槽位。
根据本发明的实施例的处理器200中断供应给未在指令运行过程中使用 的第三复用器的槽位,进而使得可能高效地使用电力。
在操作660中,处理器200可从选定寄存器获取操作数。处理器200可 基于从预定指令提取的操作数的地址信息来从选定寄存器获取操作数。
在操作670中,处理器200可从连接到第一复用器的所分配槽位的至少 一个操作单元中选择对应于指令的操作单元。处理器200可提取预定指令中 所包括的操作码,并且基于所提取的操作码来选择操作单元。
在操作680中,处理器200可基于从选定操作单元获取的操作数来执行 操作。基于指令中所包括的结果值的地址信息,处理器200可将结果值存储 在存储器的对应于地址信息的预定区域中,所述结果值通过执行操作来生 成。
图7是示出根据本发明的实施例的用于将指令分配给第一复用器中所包 括的至少一个槽位的方法的表格。
参考图7,图7的表格包括从指令队列22输出的多个指令、所述多个指 令中的每一个中所包括的停止位以及关于根据多个指令中的每一个中所包 括的停止位分配的第一复用器的槽位的信息。
指令队列22可在同一周期中同时输出预定数量的指令。例如,指令队 列22可同时输出四个指令。
指令队列22可输出分别具有停止位0、0、0和1的第一标量指令、第 二标量指令、第一矢量指令和第二矢量指令。处理器200可基于各个指令的 停止位来将全部四个指令分配给第一复用器的槽位。当预定指令的停止位的 值是1时,处理器200可在当前周期中运行预定指令并且在当前周期之后的 周期中运行随后的指令。因此,在分别具有停止位0、0、0和1的四个指令 中,可将至最后次序的第二矢量指令的全部指令分配给第一复用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位0、0、1和x的 第一标量指令、第二标量指令、第一矢量指令和x指令。在本文中,停止位 是x的情况意味着停止位是0或1的情况。另外,x指令意指指令是标量指 令或矢量指令的情况。
在停止位具有值1的时间点之后,即使当停止位具有值0或1时,不会 影响确定在当前周期中输出的指令。这是因为,当预定指令的停止位是1时, 不在当前周期中运行预定指令之后的指令。
处理器200可将分别具有停止位0、0、1和x的四个指令(也就是,第 一标量指令、第二标量指令、第一矢量指令和x指令)分配给第一复用器的 槽位。
在另一个示例中,指令队列22可输出分别具有停止位0、1、x和x的 第一标量指令、第二标量指令和两个x指令。处理器200可将分别具有停止 位0、1、x和x的四个指令中的第一标量指令和第二标量指令分配给第一复 用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位0、0、1和x的 第一标量指令、第一矢量指令、第二标量指令和x指令。处理器200可将分 别具有停止位0、0、1和x的四个指令中的第一标量指令、第一矢量指令和 第二矢量指令分配给第一复用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位0、1、x和x的 第一标量指令、第一矢量指令和两个x指令。处理器200可将分别具有停止 位0、1、x和x的四个指令中的第一标量指令和第一矢量指令分配给第一复 用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位1、x、x和x的 第一标量指令和三个x指令。处理器200可将分别具有停止位1、x、x和x 的四个指令中的第一标量指令分配给第一复用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位0、1、x和x的 第一矢量指令、第二矢量指令和两个x指令。处理器200可将分别具有停止 位0、1、x和x的四个指令中的第一矢量指令和第二矢量指令分配给第一复 用器的槽位。
在另一个示例中,指令队列22可输出分别具有停止位1、x、x和x的 第一矢量指令和三个x指令。处理器200可将分别具有停止位1、x、x和x 的四个指令中的第一矢量指令分配给第一复用器的槽位。
图8是示出根据本发明的实施例的用于在处理器200中运行至少一个指 令的方法的示图。如图8所示,处理器200包括输入单元(或输入)210、 控制单元(或控制器)230和操作单元(或操作器)250。
指令队列22可包括在处理器200中可运行的多个指令。指令可基于由 指令编码装置100生成的指令的次序来存储在指令队列22中。
指令队列22可同时输出预定数量的指令。例如,当预定数量是4时, 指令队列22可同时输出四个指令。在图8中,指令队列22可同时输出第一 标量指令mul32、第一矢量指令v_and、第二矢量指令vs_add_w和第二标量 指令and32。
从指令队列22输出的四个指令的停止位分别是0、0、1和1。当停止位 是1时,可在当前周期之后的下一个周期运行在具有停止位1的指令之后的 指令。处理器200可在预定周期中运行从指令队列22输出的四个指令中的、 停止位中首先表示1的第二矢量指令。也就是,处理器200可在预定周期中 运行第一标量指令、第一矢量指令和第二矢量指令。
处理器200可从指令队列22获取第一标量指令、第一矢量指令和第二 矢量指令。处理器200可基于所获取的每个指令中所包括的类型码来将每个 指令分配给第一复用器252的至少一个槽位。在本文中,第一复用器252可 包括例如四个槽位,255-1至255-4。处理器200可将执行标量操作的标量指 令分配给四个槽位中的第一槽位255-1和第二槽位255-2。另外,处理器200 可将执行矢量操作的矢量指令分配给四个槽位中的第三槽位255-3和第四槽 位255-4。例如,处理器200可将第一标量指令分配给第一槽位255-1。另外, 处理器200可将第一矢量指令分配给第三槽位255-3并且将第二矢量指令分 配给第四槽位255-4。
处理器200可通过分析分配给槽位255-1、255-3和255-4中的每一个的 指令中所包括的操作码、操作数的地址码和结果值的地址码来执行操作。
处理器200可基于预定指令中所包括的操作数的类型信息来在至少一个 寄存器中选择用于获取操作数的寄存器24和26。具体地说,在可处理作为 操作数的标量数据和矢量数据两者的矢量指令的情况下,处理器200可选择 存储标量数据的标量寄存器24和存储矢量数据的矢量寄存器26中的至少一 种。
例如,处理器200可运行仅处理作为操作数的矢量数据的第一矢量指令。 参考图8,可将第一矢量指令分配给第三槽位255-3。首先,处理器200可 使第三槽位255-3与矢量寄存器26相连接以便运行第一矢量指令。因为第 一矢量指令不需要标量操作数,所以处理器200可中断对使标量寄存器与第 三槽位255-3相连接的第三复用器254的电力供应。
在另一个示例中,处理器200可运行处理作为操作数的矢量数据和标量 数据两者的第二矢量指令。参考图8,可将第二矢量指令分配给第四槽位。 首先,处理器200可使第四槽位与矢量寄存器相连接以便运行第二矢量指令。 因为不同于第一矢量指令,第二矢量指令需要标量操作数,所以处理器200 可使标量寄存器与第四槽位相连接。根据本发明的实施例的处理器200可将 电力供应给使标量寄存器与第四槽位255-4相连接的第二复用器253。处理 器200可将分配给各个槽位255-1、255-2、255-3和255-4的各个指令发送 给对应于各个槽位255-1、255-2、255-3和255-4的解码单元256-1、256-2、 256-3和256-4。例如,处理器200可将分配给第一槽位255-1的第一指令发 送给对应于第一槽位255-1的第一标量指令解码单元256-1。第一标量指令 解码单元256-1可分析第一标量指令中所包括的操作码,并且将第一标量指 令发送给对应于第一标量指令的操作执行单元260。
根据本发明的实施例,操作执行单元260可分析解码单元256-1、256-2、 256-3和256-4中所包括的各个指令中所包括的操作码,并且执行对应于各 个指令的操作。在本文中,操作执行单元260可包括可执行各种操作的单元。 操作执行单元260中所包括的各个单元可执行对应于从解码单元256-1、 256-2、256-3和256-4接收的各个指令的操作。
图9是根据本发明的实施例的指令编码装置100的方框图。
在图9中,仅示出与本实施例有关的组件。因此,本领域那些或普通技 术人员将理解,指令编码装置100还可包括除图9所示的组件之外的其他通 用组件。
参考图9,指令编码装置100可包括代码生成单元110、停止位生成单 元130和指令生成单元150。
代码生成单元110可生成类型码,所述类型码包括在处理器中可执行的 预定操作的类型信息和在预定操作中处理的操作数的类型信息。在本文中, 操作可以是标量操作或矢量操作。另外,操作数可包括标量数据或矢量数据。
根据本发明的实施例的指令可包括32位。关于操作类型的信息可由32 位指令的第32位表示。然而,这仅仅是本发明的实施例,并且关于操作类 型的信息不限于在第32位中表示。例如,关于操作类型的信息可由两个或 更多个位表示,并且关于操作类型的信息可在第32位之外的位中表示。
根据本发明的实施例,关于操作数类型的信息可由32位指令的预定数 量的位表示。当由指令执行的操作是标量操作时,操作数可以是标量数据。 当由指令执行的操作是矢量操作时,操作数可仅包括矢量数据或可包括矢量 数据和标量数据两者。
停止位生成单元130可生成停止位,所述停止位包括关于在预定周期中 执行的至少一个操作的信息。
当在预定周期中运行作为第一指令之后的下一个指令的第二指令时,停 止位生成单元130可在停止位中表示第一值,例如0。当在预定周期之后的 下一个周期中运行第二指令时,停止位生成单元130可在停止位中表示第二 值,例如1。
例如,根据本发明的实施例在VLIW处理器中同时可运行的指令的最大 数量可以是4个。当四个指令中的每一个中所包括的停止位是0011时,可 在预定周期中执行三个操作。详细地,在四个指令(也就是,第(m)个指 令、第(m+1)个指令、第(m+2)个指令和第(m+3)个指令)中,首先 具有停止位值1的指令是第(m+2)个指令。在这种情况下,可在预定周期之后的下一个周期中运行作为第(m+2)个指令之后的下一个指令的第(m+3) 个指令,并且可在预定周期中运行第(m)个指令、第(m+1)个指令和第 (m+2)个指令。
指令生成单元150可基于类型码和停止位来生成用于执行预定操作的指 令。
指令生成单元150可通过根据指令的预定结构布置类型码和停止位来生 成指令。在本文中,指令可包括:操作码、基于所述操作码处理的操作数的 地址码和存储操作结果的结果值的地址码。指令中所包括的详细信息(例如, 执行预定功能的代码)可根据操作而变化,所述操作由所述指令执行。
图10是根据本发明的实施例的处理器200的方框图。
在图10中,仅示出与本实施例有关的组件。因此,本领域那些或普通 技术人员将理解,处理器200还可包括除图10所示的组件之外的其他通用 组件。
参考图10,处理器200可包括输入单元210、控制单元230和操作单元 250。
输入单元210可基于多个指令中的每一个中所包括的停止位来获取在预 定周期中运行的至少一个指令。根据本发明的实施例,输入单元210可基于 从指令队列22接收的多个指令中的每一个中所包括的停止位来在预定周期 中获取至少一个指令。在本文中,指令队列22可在每个周期中输出预定数 量的指令。
当由输入单元210接收的第一指令中所包括的停止位具有第一值(例如 0)时,输入单元210可在预定周期中获取作为第一指令之后的下一个指令 的第二指令。在本文中,可以基于将多个指令存储在指令队列22中的次序 来确定下一个指令。也就是,当第一指令和第二指令顺序地存储在指令队列 22中时,第二指令可以是第一指令之后的下一个指令。
当由输入单元210接收的第一指令中所包括的停止位具有第二值(例如 1)时,输入单元210可在预定周期之后的下一个周期中获取作为第一指令 之后的下一个指令的第二指令。也就是,当停止位具有第二值时,输入单元 210可在预定周期中获取第一指令并且在下一个周期中获取第二指令。
控制单元230可从至少一个指令提取类型码,所述类型码包括基于由输 入单元210所获取的至少一个指令执行的操作的类型信息。在本文中,操作 可以是标量操作或矢量操作。
控制单元230可识别所提取类型码中所包括的操作类型信息。例如,在 由第32位表示操作类型的指令的情况下,当第32位的值是0时,控制单元 230可将操作识别为标量操作。另外,当第32位的值是1时,控制单元230 可将操作识别为矢量操作。
根据本发明的实施例,控制单元230可基于所提取的类型码来将至少一 个指令分配给第一复用器252的至少一个槽位。例如,当第一复用器252包 括四个槽位时,控制单元230可将执行标量操作的标量指令分配给第一槽位 255-1和第二槽位255-2。另外,控制单元230可将执行矢量操作的矢量指令 分配给第三槽位255-3和第四槽位255-4。
操作单元250可执行所分配的槽位中的操作。详细地,为了执行所分配 的槽位中的操作,操作单元250可将电力供应给第一复用器252的至少一个槽位中分配有指令的槽位。例如,因为将指令分配给四个槽位中的第一槽位 255-1、第三槽位255-3和第四槽位255-4,所以操作单元250可将电力供应给第一槽位255-1、第三槽位255-3和第四槽位255-4。
另一方面,操作单元250可中断供应给第一复用器252的至少一个槽位 中分配有指令的槽位之外的槽位的电力。例如,当不将指令分配给四个槽位 中的第二槽位255-2时,操作单元250可中断供应给第二槽位255-2的电力。 因为仅将电力供应给多个槽位中分配有指令的槽位,并且不将电力供应给未 分配指令的槽位,所以可以高效地使用电力。
操作单元250可基于类型码中所包括的操作数的类型信息来在至少一个 寄存器中选择用于获取操作数的寄存器。在本文中,操作数可包括标量数据 或矢量数据。
在标量指令的情况下,操作数是标量数据。因此,操作单元250可选择 存储标量数据的标量寄存器。在矢量指令的情况下,操作数可以是标量数据 或矢量数据。例如,矢量指令可包括仅处理作为操作数的矢量数据的第一矢 量指令和处理作为操作数的矢量数据和标量数据两者的第二矢量指令。因 此,操作单元250可基于表示操作数的类型信息的类型码来识别在预定矢量 指令中处理的操作数的类型。
根据本发明的实施例的操作单元200可将电力供应给使选定寄存器与第 一复用器252的所分配的槽位相连接的第二复用器253的槽位。在本文中, 第二复用器253可包括使选定寄存器与第一复用器252中所包括的至少一个 槽位相连接的多个槽位。
操作单元250可中断对使未选定寄存器与第一复用器252的所分配的槽 位相连接的第三复用器254的槽位的电力供应。在本文中,第三复用器254 可包括使未选定寄存器与第一复用器252中所包括的至少一个槽位相连接的 多个槽位。操作单元250中断供应给未在指令执行过程中使用的第三复用器 254的槽位的电力,进而使得可能高效地使用电力。
操作单元250可从选定寄存器获取操作数。详细地,操作单元250可基 于从预定指令提取的操作数的地址信息来从选定寄存器获取操作数。
操作单元250可在连接到第一复用器252的所分配的槽位的操作执行单元260(参见图8)中选择可以运行指令的单元。在本文中,操作执行单元 260可包括可执行对应于各个指令的操作的至少一个单元。另外,参考图8,操作执行单元260可被包括在操作单元250中。然而,这仅仅是本发明的实 施例,并且操作执行单元260可位于操作单元250外部。
操作单元250可提取预定指令中所包括的操作码,并且基于所提取的操 作码来选择操作执行单元260中所包括的单元。操作执行单元160中选定的 单元可基于所获取的操作数来执行操作。基于指令中所包括的结果值的地址 信息,操作单元250可将通过执行操作生成的结果值存储在存储器的对应于 地址信息的预定区域中。
根据本发明的实施例的装置可包括处理器、用于存储和运行程序数据的 存储器、永久性存储装置诸如磁盘驱动器、用于与外部设备通信的通信端口 以及用户接口(UI)设备诸如触控面板、键和按钮。由软件模块或算法实施 的方法可作为在处理器上可运行的计算机可读代码或程序命令存储在计算 机可读记录介质上。计算机可读记录介质的示例包括磁性存储介质(例如, 只读存储器(ROM)、随机存取存储器(RAM)、软盘和硬盘)和光学记录介质(例如,光盘只读存储器(CD-ROM)和数字通用光盘(DVD))。 计算机可读记录介质还可分布于网络耦合计算机系统中,以便计算机可读代 码可以以分布方式来存储并运行。计算机可读记录介质通过计算机可读,并 且可存储在存储器中并且在处理器中运行。
本文所引用的所有参考文件,包括公开、专利申请和专利,按照相同的 程度以引用方式并入本文中,如同每个参考文件都单个地和特别地指示为以 引用方式并入到本文中并且其全部内容都进行了阐述。
为了达到促进对本发明构思的理解的目的,已经参考附图中所示的示例 性实施例,并且已经使用特定术语来描述本发明的实施例。然而,本发明的 范围不被特定术语限制,并且本发明可涵盖可由本领域普通技术人员通常想 到的所有元素。
可以在功能块组件和各种处理操作方面来描述本发明的实施例。此类功 能块可由运行特定功能的任何数量的硬件和/或软件组件来实施。例如,本发 明的实施例可采用各种集成电路(IC)组件,诸如存储器元件、处理元件、 逻辑元件和查找表,其可在一个或多个微处理器或其他控制设备的控制下运 行各种功能。类似地,在本发明的元件由软件编程或软件元件实施的情况下, 本发明的实施例可由任何编程或脚本语言诸如C、C++、Java或汇编语言来 实施,其中各种算法由数据结构、过程、例程或其他编程元素的任何组合实施。功能方面可由在一个或多个处理器中运行的算法来实施。另外,本发明 的实施例可采用用于电子环境设定、信号处理和/或数据处理的相关技术。诸 如“机构”、“元件”、“单元”和“配置”的术语可在广泛意义上使用并 且不限于机械和物理配置。所述术语可包括软件例程结合处理器等的意义。
本文所述的特定实现方式仅仅是示例性的,并且不以任何方式限制本发 明的范围。为了简洁起见,可省略相关技术电子配置、控制系统、软件和系 统的其他功能方面的描述。另外,附图中所示的连接线或连接部件表示各种 元件之间的示例性功能关系和/或物理或逻辑连接,并且各种替代或额外功能 关系、物理连接或逻辑连接可存在于实际装置中。另外,没有元件可对于本 发明的实施例的实践是本质的,除非所述元件特别描述为“本质的”或“关 键的”。
应理解,在此描述的示例性实施例应仅以描述意义考虑而不是用于限制 目的。每个实施例中对特征或方面的描述应典型地被认为可用于其他实施例 中的其他相似特征或方面。
虽然本发明的一个或多个实施例已参考附图进行了描述,但是本领域普 通技术人员将理解其中在不脱离所附权利要求定义的本发明范围的精神和 范围的情况下可做出形式和细节上的各种变化。

Claims (10)

1.一种在处理器中运行指令的方法,包括:
基于多个指令中的每一个中所包括的停止位来获取在预定周期中运行的至少一个指令;
从所述至少一个指令提取类型码,所述类型码包括基于所述至少一个指令执行的操作的类型信息;
基于类型码来将所述至少一个指令分配给包括多个槽位的第一复用器的至少一个槽位;
将电力供应给其中基于类型码分配所述至少一个指令的所述至少一个槽位;
中断至除从多个槽位中分配至少一个指令的至少一个槽位之外的槽位的电力;以及
在分配了至少一个指令的至少一个槽位中执行操作。
2.如权利要求1所述的方法,其中所述至少一个指令的获取包括:
当第一指令中所包括的停止位具有第一值时,在所述预定周期中获取作为第一指令之后的下一个指令的第二指令;而
当第一指令中所包括的停止位具有第二值时,在所述预定周期之后的下一个周期中获取第二指令。
3.如权利要求1所述的方法,其中所述操作的类型包括标量操作或矢量操作。
4.如权利要求1所述的方法,其中所述类型码包括所述操作中处理的操作数的类型信息。
5.如权利要求4所述的方法,其中所述操作数的类型包括标量数据或矢量数据。
6.如权利要求4所述的方法,其中所述操作的执行包括:
基于所述操作数的类型信息从至少一个寄存器中选择用于获取操作数的寄存器;以及
从所选定寄存器获取所述操作数。
7.如权利要求6所述的方法,其中所述寄存器的选择包括:
将所述电力供应给使所选定寄存器与第一复用器的所分配的槽位相连接的第二复用器的槽位;以及
中断供应给使所述至少一个寄存器中的未选定寄存器与第一复用器的所分配的槽位相连接的第三复用器的槽位的所述电力。
8.如权利要求6所述的方法,其中所述操作的执行包括:
从连接到第一复用器的所分配的槽位的至少一个操作执行单元中选择执行所述操作的操作执行单元;以及
基于所获取的操作数来在所选定操作执行单元中执行所述操作。
9.如权利要求1所述的方法,其中所述处理器是超长指令字VLIW处理器。
10.一种运行指令的处理器,包括:
至少一个处理器,其被配置为基于多个指令中的每一个中所包括的停止位来获取在预定周期中运行的至少一个指令,被配置为从所述至少一个指令提取类型码,所述类型码包括基于所述至少一个指令执行的操作的类型信息,被配置为基于类型码将所述至少一个指令分配给包括多个槽位的复用器的至少一个槽位以及被配置为将电力供应给其中基于类型码分配所述至少一个指令的所述至少一个槽位,被配置为中断至除从多个槽位中分配至少一个指令的至少一个槽位之外的槽位的电力,以及被配置为在分配了至少一个指令的至少一个槽位中执行操作。
CN201480074517.3A 2013-11-29 2014-11-24 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质 Expired - Fee Related CN105980980B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020130147519A KR102179385B1 (ko) 2013-11-29 2013-11-29 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체
KR10-2013-0147519 2013-11-29
PCT/KR2014/011298 WO2015080440A1 (en) 2013-11-29 2014-11-24 Method and processor for executing instructions, method and apparatus for encoding instructions, and recording medium therefor

Publications (2)

Publication Number Publication Date
CN105980980A CN105980980A (zh) 2016-09-28
CN105980980B true CN105980980B (zh) 2020-06-09

Family

ID=53199337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480074517.3A Expired - Fee Related CN105980980B (zh) 2013-11-29 2014-11-24 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质

Country Status (5)

Country Link
US (1) US10956159B2 (zh)
EP (1) EP3060981B1 (zh)
KR (1) KR102179385B1 (zh)
CN (1) CN105980980B (zh)
WO (1) WO2015080440A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2548601B (en) 2016-03-23 2019-02-13 Advanced Risc Mach Ltd Processing vector instructions
US10599428B2 (en) * 2016-03-23 2020-03-24 Arm Limited Relaxed execution of overlapping mixed-scalar-vector instructions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062634B1 (en) * 2002-01-29 2006-06-13 Stmicroelectronics Limited Processor and a method for handling and encoding no-operation instructions
US7281119B1 (en) * 1999-05-03 2007-10-09 Stmicroelectronics S.A. Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
CN101501634A (zh) * 2006-08-18 2009-08-05 高通股份有限公司 使用标量/向量指令处理数据的系统和方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100267089B1 (ko) * 1996-08-19 2000-11-01 윤종용 스칼라/벡터연산이조합된단일명령복수데이터처리
US5819058A (en) * 1997-02-28 1998-10-06 Vm Labs, Inc. Instruction compression and decompression system and method for a processor
US6185670B1 (en) * 1998-10-12 2001-02-06 Intel Corporation System for reducing number of opcodes required in a processor using an instruction format including operation class code and operation selector code fields
US6711670B1 (en) * 1999-10-14 2004-03-23 Hewlett-Packard Development Company, L.P. System and method for detecting data hazards within an instruction group of a compiled computer program
US7143268B2 (en) * 2000-12-29 2006-11-28 Stmicroelectronics, Inc. Circuit and method for instruction compression and dispersal in wide-issue processors
US20020112193A1 (en) 2001-02-09 2002-08-15 International Business Machines Corporation Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
US7051193B2 (en) * 2001-03-28 2006-05-23 Intel Corporation Register rotation prediction and precomputation
US6983389B1 (en) * 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US20040073773A1 (en) * 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US7139897B2 (en) * 2002-04-01 2006-11-21 Hewlett-Packard Development Company, L.P. Computer instruction dispatch
US7174469B2 (en) * 2003-09-30 2007-02-06 International Business Machines Corporation Processor power and energy management
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US7831804B2 (en) * 2004-06-22 2010-11-09 St Microelectronics S.R.L. Multidimensional processor architecture
US7421566B2 (en) * 2005-08-12 2008-09-02 International Business Machines Corporation Implementing instruction set architectures with non-contiguous register file specifiers
US20070233961A1 (en) * 2006-03-31 2007-10-04 Banning John P Multi-portioned instruction memory
DE602007006215D1 (de) * 2006-09-06 2010-06-10 Silicon Hive Bv Datenverarbeitungsschaltung mit mehreren anweisungchaltung und scheduling-verfahren für eine solche datenschaltung
JP5324568B2 (ja) * 2007-06-18 2013-10-23 アイメック ソフトウェア無線端末のためのプログラマブルデバイス
JP5568939B2 (ja) * 2009-10-08 2014-08-13 富士通株式会社 演算処理装置及び制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281119B1 (en) * 1999-05-03 2007-10-09 Stmicroelectronics S.A. Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
US7062634B1 (en) * 2002-01-29 2006-06-13 Stmicroelectronics Limited Processor and a method for handling and encoding no-operation instructions
CN101501634A (zh) * 2006-08-18 2009-08-05 高通股份有限公司 使用标量/向量指令处理数据的系统和方法

Also Published As

Publication number Publication date
EP3060981B1 (en) 2019-06-19
US20150154026A1 (en) 2015-06-04
WO2015080440A1 (en) 2015-06-04
US10956159B2 (en) 2021-03-23
CN105980980A (zh) 2016-09-28
EP3060981A4 (en) 2017-11-22
KR102179385B1 (ko) 2020-11-16
KR20150062651A (ko) 2015-06-08
EP3060981A1 (en) 2016-08-31

Similar Documents

Publication Publication Date Title
US10671913B2 (en) Computation device and method
CN105706050B (zh) 能量高效的多模式指令发布
US9965274B2 (en) Computer processor employing bypass network using result tags for routing result operands
EP3633526A1 (en) Computation device and method
US5903760A (en) Method and apparatus for translating a conditional instruction compatible with a first instruction set architecture (ISA) into a conditional instruction compatible with a second ISA
JP2018518775A (ja) 分離されるプロセッサ命令ウィンドウとオペランドバッファ
US9965275B2 (en) Element size increasing instruction
JP2021525919A (ja) スケジューラキューの割り当て
US10915323B2 (en) Method and device for processing an instruction having multi-instruction data including configurably concatenating portions of an immediate operand from two of the instructions
CN108733412B (zh) 一种运算装置和方法
US9804853B2 (en) Apparatus and method for compressing instruction for VLIW processor, and apparatus and method for fetching instruction
CN105980980B (zh) 用于运行指令的方法和处理器、用于对指令进行编码的方法和装置以及用于其的记录介质
JP2015133129A (ja) 命令としてデータ値を評価するシステムおよび方法
US9344115B2 (en) Method of compressing and restoring configuration data
US10467008B2 (en) Identifying an effective address (EA) using an interrupt instruction tag (ITAG) in a multi-slice processor
CN106462390A (zh) 多线程能力信息取回
US10409602B2 (en) Vector operand bitsize control
US9342303B2 (en) Modified execution using context sensitive auxiliary code
US11314510B2 (en) Tracking load and store instructions and addresses in an out-of-order processor
US10528353B2 (en) Generating a mask vector for determining a processor instruction address using an instruction tag in a multi-slice processor
US20070245120A1 (en) Multiple microcontroller system, instruction, and instruction execution method for the same
US8560811B2 (en) Lane crossing instruction selecting operand data bits conveyed from register via direct path and lane crossing path for execution
US9753776B2 (en) Simultaneous multithreading resource sharing
US10860322B2 (en) Modifying behavior of a data processing unit using rewritable behavior mappings of instructions
US9886276B2 (en) System register access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200609

Termination date: 20211124