CN100339824C - 高效执行特长指令字的处理器和方法 - Google Patents

高效执行特长指令字的处理器和方法 Download PDF

Info

Publication number
CN100339824C
CN100339824C CNB200410006873XA CN200410006873A CN100339824C CN 100339824 C CN100339824 C CN 100339824C CN B200410006873X A CNB200410006873X A CN B200410006873XA CN 200410006873 A CN200410006873 A CN 200410006873A CN 100339824 C CN100339824 C CN 100339824C
Authority
CN
China
Prior art keywords
instruction
code
register
field
unit
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 - Lifetime
Application number
CNB200410006873XA
Other languages
English (en)
Other versions
CN1523495A (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.)
Godo Kaisha IP Bridge 1
Original Assignee
松下电器产业株式会社
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=15685098&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN100339824(C) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 松下电器产业株式会社 filed Critical 松下电器产业株式会社
Publication of CN1523495A publication Critical patent/CN1523495A/zh
Application granted granted Critical
Publication of CN100339824C publication Critical patent/CN100339824C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control 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, 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/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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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
    • G06F9/30163Decoding the operand specifier, e.g. specifier format with implied specifier, e.g. top of stack
    • 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
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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, 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

Abstract

32位指令50是由4位格式字段51,4位操作字段52,和两个12位操作字段59和60组成。4位操作代码52只能包括(1)用于指示分支操作的操作代码“CC”,该分支操作使用常数寄存器36隐含指示的存储值作为分支地址,或(2)常数“const”。4位操作字段52的内容由格式字段51中提供的格式代码确定。

Description

高效执行特长指令字的处理器和方法
技术领域
本发明涉及具有VLIW(特长指令字)结构的处理器,特别是执行稍短字长和高编码效率的处理器。
背景技术
近年来随着对多媒体装置和电子电路小型化需求的增加,对微处理器的需求是能以高速处理多媒体数据,例如音频数据和图象数据。一类处理器是能够使用VLIW结构的处理器的需求,以后称之为“VLIW处理器”。
VLIW处理器包括许多内部操作单元,也就是能够以平行方式同时执行许多种VLIW的操作数。这样的VLIW是由调查在源程序级平行处理的可能性和执行编目录的程序编制器产生。对于用户装置中使用的被嵌入的微处理器,对抑制程序的代码尺寸是重要的。使得具有高关联的无操作指令(以后称为“无操作指令”)和产生的差的代码效率的结果的256位VLIW离理想情况很远。
执行相对短字长指令的VLIW处理器的一例是日本公开专利申请H09-26878。该技术是执行32位指令的并能同时指示最大两个操作的VLIW处理器的数据处理装置。
图1A和图1B示出图1示出的用于同时指示两个操作的指令格式和图1B示出的用于指示只一个操作的指令格式的规定技术的指令格式。该技术的目的在于,通过示明在每个指令中的操作数和执行顺序的格式字段410中的2位值来改进代码效率。
通过单个32位指令表明的最大两个操作,无论如何没有达到足够的平行度等级。还有一个问题是,当利用一超过给定字长的常数进行操作时会降低指令的代码效率。作为一个举例,当32位常数被提供为上16位和下16位,使得它能被置入寄存器时,恰需要两个32位指令去指示利用该常数的操作。
发明内容
从所述的问题看,本发明的一个目的就是提供一种VLIW处理器,能执行相对短字长指令而又具有高等级平行度和高效代码结构,使得能同时指示若干操作。作为一个举例,由单个32位指令能指示三或更多操作。
本发明的第二个目的是提供一种VLIW处理器,用于执行具有某种结构的相对短字长指令,从而使总的代码效率相对不受影响,甚至当处理相对长的字长的常数时也是如此。
通过VLIW(特长指令字)处理器能够实现第一个目的,它能译码和执行具有至少两个操作字段的指令,第一个操作字段能只包括确定操作类型的一个操作代码和第二操作字段包括一个操作代码和至少一个由第二操作字段指示的操作中使用的操作数的组合,该VLIW处理器包括:第一译码单元,用于译码在第一操作字段中的操作代码;第一执行单元,用于根据第一译码单元的译码结果执行由在第一操作字段中的操作代码指示的操作;第二译码单元,用于译码在第二操作字段中的操作代码;和第二执行单元,用于根据第二译码单元的译码结果,在由第二操作字段中的操作数指示的数据基础上,执行由第二操作字段中的操作代码指示的操作。
在此情况下,由于通过只插入一个操作代码而没有清楚的操作数指示能够指明指令中至少一个操作,从而能降低指令的字长。其结果是,执行相对短字长的而具有高效代码结构的指令,使得能同时指示若干操作的VLIW处理器得以实现。
这里,在第一操作字段中由操作代码占有的多个位数可以等于在第二操作字段中由操作代码占有的多个位数。
作为一种结果就是,在一指令中包括的所有操作代码都由相同的数目的比特组成多位数,从而简化了例如译码电路的单元。
这里,指令可以包括三个操作字段,在三个操作字段中的第三操作字段可以占有如第二操作字段的相同位数和也可以包括一个操作代码和至少一个操作数的组合,该VLIW处理器进一步包括:第三译码单元,当一操作代码存在于第三操作字段时,它译码第三操作字段的操作代码;和第三执行单元,用于根据第三译码单元的译码结果,在由第三操作字段中的操作数指示的数据基础上,执行由在第三操作字段的操作代码指示的操作。
其结果是,具有高等级平行度从而能同时进行三个操作的VLIW处理器能够实现。
这里,第一执行单元可以控制包括该指令的程序流。
其结果是,一般不需要大量比特数的分支操作可被赋予短的操作字段。这就意味着可以确定高代码效率的指令集合。
这里,第二执行单元可以控制由在第二操作字段中包括的操作数指示的数据的传送,和第三执行单元,在由第三操作字段中包括的操作数指示的数据的基础上,可以控制执行一算术逻辑操作。
其结果是,可以由在一指令中的单个操作指示将数据传送到外部存储器和将数据从外部存储器传送来,使得能简化应在VLIW处理器中提供的操作数存取电路。
通过VLIW处理器能实现本发明的第二个目的,该处理器能译码和执行具有至少两个操作字段的一指令,第一操作字段只包括(i)用于确定一操作类型的一单个操作代码的一个和(ii)一常数,和第二操作字段包括(i)一操作代码和由第二操作字段指示的一操作中使用的至少一个操作数的组合的一个和(ii)一常数,该VLIW处理器包括:第一译码单元,用于当操作代码出现在第一操作字段中时,译码在第一操作字段的操作代码;第一执行单元,用于根据第一译码单元的译码结果,执行由在第一操作字段中的操作代码指示的操作;第二译码单元,用于当操作代码存在于第二操作字段时,译码在第二操作字段的操作代码;和第二执行单元,用于根据第二译码单元的译码结果,在由第二操作字段中的操作数指示的数据基础上,执行由第二操作字段的操作代码指示的操作。
采用以上结构,当在一指令的操作字段中必须放入无意义的代码时,由不同操作使用的常数可以替换被插入,使得VLIW处理器能实现用于执行具有高代码效率的指令,而不管只具有短的字长。
这里,该指令还包括含有指明在第一操作字段中是否只有一个常数和在第二操作字段中是否只有一个常数的格式代码的格式字段,该VLIW处理器进一步包括:用于译码格式代码的格式译码单元;和用于当格式译码单元的译码结果表明在第一操作字段和第二操作字段的至少一个中只存在一个常数时,提取在该指令中的该常数并存储该提取的常数的常数存储单元。
其结果是,在操作字段中放置的常数能被存储在常数存储单元,用于稍后指令的操作,使得能避免代码效率的降低,甚至是在当利用相对短字长的指令,处理相对长字长的常数也是如此。
这里,格式字段,第一操作字段,第二操作字段中的操作代码,在第二操作字段中的每个操作数,在第三操作字段中的操作代码,和第三操作字段中的每个操作数,每个都可占据n位。
采用上述结构,组成一指令的所有字段都具有相同的位数,这就能简化VLIW处理器的内部电路。
这里,VLIW处理器可以包括:取单元,用于取包括有n个操作字段的L位指令;和n个操作单元,每一个都与该取得的指令中的n个操作字段的不同的一个相关联,并且每一个都相互以平行方式单独执行相关操作字段中指示的操作;VLIW处理器的特征在于,n个操作字段并不全是相同尺寸,和L并不是n的整数倍。
采用上述结构,并不需要指令的所有操作字段都具有相同的字长,这就可能以高代码效率确定指令。其结果是,VLIW处理器执行相对短字长而具有高效代码结构的指令,使得能实现同时指示若干操作。
这里,n可以是3,和L可以是32。
采用上述结构实现的VLIW处理器,具有高等级的平行度,从而由一单个32位指令指定的三个操作能被同时进行。
这里,在n个操作字段中的至少一个操作字段中包括的操作数的数目,可以不同于在该n个操作字段中的另一个操作字段中的操作数的数目。
采用上述结构,不需要指令中的每一个操作字段都具有相同数目的操作数,使得能确定具有高等级的代码效率的指令格式。
这里,n个操作字段可以包括只有一个操作代码组成的至少一个操作字段和由一个操作代码和至少一个操作数组成的至少一个操作字段。
采用上述的结构,该指令字长要比当指令中的每个操作字段包含有操作代码和操作数的组合的情况要短,使得能够实现执行具有高效代码结构的指令的VLIW处理器。
如上所述,本发明实现的VLIW处理器能执行相对短字长而又具有允许将由单个指令指定的若干操作的高效代码结构的指令。对于处理多媒体数据的嵌入处理器,其作用尤为显著。
附图说明
随同描述本发明特定实施例的附图的以描述,本发明的这些和其它目的,优点和特点将会变得极为明显。图中:
图1A和1B是现有技术的指令格式,图1A是同时指示两个操作的指令格式和图1B是只指示一个操作的指令格式;
图2A是由本发明处理器执行的指令的字段结构;
图2B至2D示出16类指令格式,图2B示出三个操作指令,图2C示出二操作指令,和图2ID示出单个操作指令;
图3的表示出由三种类型操作代码指示的特定操作,即由图2使用的“CC”、“OP1”,和“OP2”;
图4方框图示出本发明的硬件结构;
图5方框图示出本处理器的常数寄存器36的详细结构和外围电路;
图6A至6D表示用于由图5所示常数寄存器控制单元32存储常数的不同方法,图6A示出当格式代码是“0”或“1”时的情况,图6B示出当格式代码是“4”时的情况,图6C示出当格式代码是“5”时的情况,和图6D是当格式代码是“2”、“3”,或“A”时的情况;
图7方框图是本处理器的PC单元33的详细结构;
图8是处理32位常数的过程的流程;
图9是本处理器执行图8所示过程的程序举例;
图10是当执行图9所示程序时,本处理操作的定时图;
图11是本处理器执行处理16位常数的过程的程序举例;
图12A示出由标准处理器执行的指令的字段定义;
图12B是图12A所示指令的指令格式;
图13示出标准处理器进行如图9所示程序的相同过程的程序举例;
图14示出标准处理器执行如图11所示程序的相同过程的程序举例;
图15A至15D示出由本发明的VLIW处理器执行的指令的结构的改进;和
图16示出能执行图15A所示指令的本处理器的硬件结构的改进。
具体实施方式
以下将参照附图描述本发明的处理器的实施例。在该实施例中,表达式“指令”呈现为代码集合,它随着表达式“操作”呈现给由本处理器平行执行的处理单元,例如算术操作,逻辑操作,传送,或分支的处理单元译码和执行,以及指示每个处理单元的代码。
首先描述由本处理器译码和执行的指令结构。本处理器是一VLIW处理器,它译码和执行具有32位固定字长的指令。
图2A示出由本处理器执行的指令50的字段结构。同时图2B至2D示出16个指令格式。图2B这些指令格式同时指示三种操作,图2C两个操作的指令格式,和图2D单个操作的指令格式。
指令50具有固定32位字长,和由依序示出的8个4位物理字段组成,开始从MSB(最高有效位)作为图2A中的P0.0字段51,P1.0字段52,…P3.2字段58。从P2.0字段53至P2.2字段55的这些范围被称为第一操作字段59,而从P3.0字段56至P3.2字段58的范围被称之为第二操作字段60。
在图2B至2D中,代码“const”表示一常数,并取决于它使用的操作,可以是一数字常数或一符号常数,例如,立即,绝对地址,或位移。代号“OP”表示操作代码,指示操作类型,而代号“RS”表示用作为源操作数的寄存器,“Rd”是作为目的操作数的寄存器,和“CC”操作代码指示分支操作,它使用本发明处理器提供的专门的32位寄存器(图4中所示的常数寄存器36)的存储值作为分支目的地的绝对地址或相对地址(位移)。
在上述代码之后直接给出的数字值,表示在第一操作字段59或第二操作字段60中二者之一的操作中使用的值。作为一例,对于具有格式代码“6”的指令格式,位于P1.0字段52中的4位常数“const1”和位于P2.1字段54中的4位常数“const1”被组合形成一8位常数,即对应于第一操作字段59的操作代码“OP1”的源操作数。
不附加数目的常数“const”表示是将存储在本处理器提供的专门的32位寄存器(图4中所示常数寄存器36)中的常数。作为一例,对于具有格式代码“0”的指令格式,位于P1.0字段52中的4位常数“const”意味着该常数将被存储在被隐含指示的常数寄存器36中。
图3示出能由图2给三类操作代码“CC”,“OP1”、和“OP2”表示的操作的特例。以下将详细描述这些操作。
4位操作代码“CC”表示16类分支指令的一个。每个分支指令确定为一种分支条件和分支格式。分支条件的举例包括“等于”(’eq’)”,“不等于(’neq’)”,和:大于“(’gt’)”。该分支格式可以是作为分支目的的绝对地址的常数寄存器36的存储值的格式(用不附加“i”到指令助记符表示),或作为相对地址的常数寄存器36的存储值的格式(附加“i”到指令助记符表示)。作为一例,操作代码“eq”表示,当予先比较确定比较的值相等时,分支到通过绝对地址指示的目的的操作,而操作代码“eqi”表示,当予先比较确定比较的值相等时,分支到通过相对地址指示的目的的操作。
4位操作数“OP1”可被用于表示算术逻辑操作,例如任何的“add”(加),“Sub”(减),“mul”(乘),“and”(逻辑加),或“or”(逻辑或),或者是内部寄存器传送的操作,例如任何的“mov”(字(32位)数传送),“movh”(半字数据传送),或“movb”(一字节数据传送)。
4位操作数“OP2”可被用于表示任何算术逻辑操作或内部寄存器传送,该变换能由操作数“OP1”表示,而且也能用于指示寄存器一存储器传送操作,例如“1d”(从存储器将一字数据加载到寄存器)或“st”(从寄存器将一字数据存储到存储器)。
以下描述图2A所示字段51,52,59和60的特征。
P0.0字段51保存确定指令50的格式的4位格式代码,特别是该P0.0字段51确定图2B至2D所示16个指令格式中的一个。
P1.0字段52是保存用于分支操作的常数或操作代码的字段。当常数位于P1.0字段52(例如在具有格式代码“0”,“1”,和“4”至“9”的指令中)时,存在这种情况,常数被存储在常数寄存器36中(例如在具有格式代码“0”,“1”,“4”,和“5”的指令中)和常数形成在第一操作字段59或第二操作字段60中的操作数的一部分(例如在具有格式代码“5”,“7”,“8”,“9”和“B”的指令中)的情况。当在P1.0字段52中的常数将被存储在常数寄存器36中的时候,存在这种情况,只有该4位常数被存储(例如在具有格式代码“0”和“1”的指令中),和该常数与位于第一操作字段59或第二操作字段60的二者之一中的12位常数一起存储(例如在具有格式代码“4”和“5”的指令中)的情况。
当用于分支的操作代码“CC”在P1.0字段52中给出时(例如在具有格式代码“2”,“3”,和“A”的指令中),这是指示利用常数寄存器36的存储值作为分支目的的绝对地址或相对地址(位移)的分支操作。
第一操作字段59保存一常数或(a)用于指示在本处理器和外围(存储器)之间不包含数据传送的操作(例如算术逻辑操作或内部寄存器传送)的操作代码和(b)源和用于操作的目的的操作数的组合这二者之一。
第二操作字段60能保存如上述第一操作字段59的相同内容,而且还能替换地保存(a)用于指示在本处理器和外围之间包含数据传送的操作的(例如存储器一寄存器变换)操作代码和(b)用于操作的操作数的组合。
上述功用的不同操作类型确定的字段停止在用于当前Von Neumann类型处理器的假设基础上,从而它不必同时处理两个或更多的分支操作,和只有一个用于在本处理器和外围(处理器)之间提供传输操作数的输入/输出端口。
图2B至2D的指令格式具有下述特征。
首先集中在常数“const”上,可以看出,有用于在常数寄存器36中存储一常数的三个指令类型。
(1)当格式代码是“0”或“1”时:
在这些指令中,位于P1.0字段52中的4位常数被存储在常数寄存器36中。
(2)当格式代码是“4”时:
在该指令中,位于P1.0字段52至P2.2字段55中的16位常数被存储在常数寄存器36中。
(3)在格式代码是“5”时:
当该指令中,位于P1.0字段52和P3.0字段56至P3.2字段58中的16位常数被存储在常数寄存器36中。
第二,对于本处理器,最大三个操作能由单个指令指示,和在此情况下,如从图2B所示三重操作格式所看到的,可以使用下述操作类型组合之一。
(1)一种操作是设置4位常数到常数寄存器36和两个标准操作(当格式代码是“0”或“1”)。
(2)一种操作是利用设置在常数寄存器36中的值,作为绝对地址或相对地址进行分支和两个标准操作(当格式代码是“2”或“3”时)。
如上所述,具有高效字段结构的本处理器的指令能通过32位指令同时指示最大三个操作。
下面描述本处理器的硬件结构。
图4示出本发明处理器的硬件结构的方框图。如上所述,该处理器是VLIW处理器,能平行执行最大三个操作。该处理器的结构可粗略划分为指令寄存器10,译码器单元20,和执行单元30。
指令寄存器10是32位寄存器,存储从指令取单元39送出的一个指令。
译码器单元20译码在指令寄存器10中保存的指令和根据该译码结果在控制线上完成到执行单元30的输出。译译码器单元20自身能粗略分为格式译码器21和指令译码器22。
指令译码器22的组成有分支译码器23,译码在P1.0字段12中保存的“CC”操作代码并相应地控制PC单元33;第一操作译码器24,译码在P2.0字段13中保存的操作代码并相应地控制第一操作单元37;和第二操作译码器25,译码在P3.0字段16中保存的操作代码并相应地控制第二操作单元38和操作数存取单元40。
格式译码器21译码在P0.0字段11中保存的4位格式代码,以识别在指令寄存器10中保存的作为图2B至2D所示的16种可能的指令格式之一的指令的指令格式。根据译码结果,格式译码器2 1通过分支译码器23,第一操作译码器24,和第二操作译码器25允许或禁止译码操作,并启动执行单元30的寄存器控制单元32。
格式译码器21,分支译码器23,第一操作译码器24,和第二操作译码器25在一个周期中基本译码一个操作并送出控制信号到执行单元30。这里,连接指令寄存器10同执行单元30的26常数信号线26是用于传送在指令寄存器10中的常数和操作数到执行单元30的总线。
根据译码器单元20的译码结果,执行单元30进行操作,并且是能够平行执行最大三个操作的电路。该执行单元30的组成是,执行控制单元31,PC单元33,寄存器集34,第一操作单元37,第二操作单元38,指令取单元39,和操作数存取单元40。在执行单元30的成份外,寄存器控制单元32,PC单元33,和常数寄存器36的结构更详细地表示在另外图中。
执行控制单元31一般认为是用于根据译码器单元20的译码结果控制在执行单元30中的序号为33至40的各单元的控制电路和线路。该执行控制单元31包括在处理器中标准提供的各成分,例如具有用于定时控制,操作允许/禁止控制,状态管理,和中断控制,以及具有本处理器特征成份的常数寄存器控制单元32的各种电路。常数寄存器控制单元32完成控制,使得在由格式译码器21给出指示的基础上将在指令寄存器10中保存的4或16位常数“const”存储在常数寄存器36中。
PC(程序计数器)单元33在分支译码器23的控制下操作,和输出将被译码和执行的下一个指令的在外部存储器(未示出)中的地址到取指令单元39。
指令取单元39经由32位IA(指令地址)总线和32位ID(指令数据)总线,从外部存储器(未示出)取指令组。指令取单元39在内部指令的超高速缓冲存储器中存储取得的指令组,并对应于PC单元33输出的地址,提供该指令到指令寄存器10。
寄存器集34由15个32位普通寄存器35和一个32位常数寄存器36组成。根据第一操作译码器24和第二操作译码器25的译码结果,被存储在这些16个寄存器35和36中的这些值被传送到第一操作单元37和第二操作单元38,在这里,在送到寄存器集34或操作数存取单元40之前进行操作或替换地允许这些值通过。此外,由第一操作单元37和第二操作单元38进行的操作中,在常数寄存器36中存储的值也可传送到PC单元33,在这里它被用于产生用作为分支目的的有效地址。
第一操作单元37内部包括一用于在两个32位数据集的基础进行算术逻辑操作的ALU(算术逻辑单元)和用于在两个数据集的基础完成乘法的乘法器。该第一操作单元37在第一操作译码器24的控制下能执行两类操作(即,算术逻辑操作,和内部寄存器变换操作)。
第二操作单元38如第一操作单元37相同方法内部包括用于在两个32位数据集的基础上进行算术逻辑操作的ALU和用于在两个32位数据集的基础上完成乘法的乘法器。该第二操作单元38在第二操作译码器25的控制下能执行两类操作(即,算术逻辑操作,和内部寄存器变换操作)。
操作数存取单元40在第二操作译码器25的控制下操作,它是在寄存器集34和外部存储器(未示出)之间传输操作数的一个电路。操作数存取单元40内部包括用于存储操作数和操作数地址的缓冲器。作为一个特例,当操作代码“1d”是在指令寄存器10的P3.1字段16中时,位于外部存储器中的一数据字经由操作数存取单元40加载到寄存器集34中的一个寄存器中。当当前是操作代码“st”时,与此同时,在寄存器集34中的一个寄存器中的存储值被存储在外部存储器中。
PC单元33,寄存器集34,第一操作单元37,第二操作单元38,和操作数存取单元40由图4所示的内部总线(L1总线,R1总线,L2总线,R2总线,D1总线,和D2总线)相连接。在这里,L1总线和R1总线的每个连接到第一操作单元的两个输入端口的各自的一个,L2总线和R2总线的每个连接到第二操作单元38的两个输入端口的各自的一个,和D1总线和D2总线被分别连接到第一操作单元37和第二操作单元38的输出端口。
常数寄存器36的详细结构和它的外围。
以下详细描述常数寄存器36的结构和外围电路。
图5是常数寄存器36和外围电路的详细结构的方框图。这里注意,用于进位常数“0”的4个信号线的固定线路的附图中的固定值(“0”)27。
常数寄存器控制单元32由5个3输入选择器32a-32e和3个4输入选择器32f-32h组成,而常数寄存器36由8个4位寄存器36a-36h组成。这里,输入和输出数据的每集是4位平行数据。
根据来自格式译码器21和指令译码器32的控制信号,常数寄存器控制单元32控制8个输入选择器32a-32h,使得在指令寄存器10中存储的常数或零,根据以下的4种存储方法中的一种,存储到常数寄存器36中。
图6A至6D示出本实施例的4种可能的存储方法。
图6A示出当格式译码器21检测到在P0.0字段11中存储的值是“0”或“1”时的存储方法。这等于是当在P1.0字段12中只有4位常数被存储在常数寄存器36中的情况。特别是,在常数寄存器36中存储的数据被向上(图6A中向左)移动4位单元和在指令寄存器10的P1.0字段12中存储的4位常数被存储在常数寄存器36的最低序4位寄存器36h。
图6B示出当格式译码器21检测到在P0.0字段11中的存储值是“4”的存储方法。这等于是当在P1.0字段12和P2.2字段15之间的16位常数被存储在常数寄存器36中的情况。特别是,在常数寄存器36的低16位36e-36h中存储的数据被向上移动16位36a-36d,和在指令寄存器10中的P1.0字段12和P2.2字段15之间16位常数被存储在常数寄存器36的最低序16位36e-36h。
图6C示出当格式译码器21检测到在P0.1字段11中存储值是“5”的情况。这等于是当在P1.0字段12和P3.0字段16与P3.2字段18之间的16位常数被存储在常数寄存器36中的情况。特别是,被存储在常数寄存器36的低16位36e-36h的数据被向上移动16位36a-36d和在指令寄存器10的P1.0字段12和P3.0字段16与P3.2字段18之间的16位常数被存储在常数寄存器36的最低序16位36e-36h中。
图6D示出当格式译码器21检测到在P0.0字段11中存储值是“2”,“3”,或“A”时,或者当指令译码器22检测到,由P2.1字段14,P2.2字段15,P3.2字段17,和P3.3字段18中的至少一个指示常数寄存器(R15)时的存储方法。这等于是在常数寄存器36的存储值已经由在P1.0字段12中的分支操作,在第一操作字段59中的一操作或在第二操作字段60中的一操作的至少一个操作之后,在常数寄存器36中的存储值被全部复位到零(那就是说,常数寄存器36被清零)的情况。特别是,在常数寄存器36的存储值已经被读出到PC单元33,第一操作单元37或第二操作单元38中的一个之后,立即将具有“0”值的32位常数写入常数寄存器36。
这里,在保证使用具有零扩展的值总是被存储在常数寄存器36中之后,常数寄存器36中的值被清零。零扩展呈现为,当值的有效位数低于予定位数时执行的零插入,零被插入到较高位的位置,使得值提升到予定位数。
如上所述,当在指令寄存器10的P0.0字段11中的值是“0”,“1”,“4”,或“5”时,总是被存储在常数寄存器36中的常数被移位和新的值被存储。还有,在常数寄存器36中存储的值被读出和使用之后,该存储的值被删除。通过这样做,常数寄存器36能够连续累积常数直到下一次它存储的内容被使用为止。
PC单元33的详细结构
以下详述PC单元33的结构。
图7是PC单元33的详细结构方框图。如图7所示,PC单元33的组成是,固定值(“4”)33a,即永久进位常数“4”的线路,2输入选择器33b,加法器33c,用于存储将被译码和执行的下一个指令的地址的PC(程序计数器)33d,和4输入选择器33e。
在PC单元33中,根据来自译码单元20的控制信号,该选择器33b和33e进行操作,使得选择器33e输出下述三种类型值中的一个到指令取单元39,作为有效地址。
1.4的值被加到PC33d的内容
这对应于当没有分支发生和下一个指令将被按序执行时,这就是说,本指令的译码结果没有分支操作指示。“4”被读出的理由是,一指令的长度是4字节,即32位。
2.常数寄存器36的内容值被加到PC33d的内容
这对应于,当常数寄存器36的内容被用作为分支的相对地址时,例如,当分支译码器23的译码结果是P1.0字段12指示分支到一相对地址。
3.作为常数寄存器36的内容给的值
这对应于,当常数寄存器36的内容被用作为分支的绝对地址,例如,当分支译码器23的译码结果是P1.0字段12指示分支到一绝对地址。
如上所述,PC单元33包括专用加法器33c,它能直接使用由常数寄存器36存储的值,使得能使常数寄存器36的存储值作为相对地址或绝对地址并独立于由第一操作单元37和第二操作单38进行的操作的以平行方式执行的分支执行控制。
处理器的操作
以下描述当译码和执行专门操作时的本处理器的操作。
图8是处理32位常数的过程举例的流程。首先,确定寄存器R0和R1的存储值之间的差(步S80),和由R2的存储值乘该结果(步S81)。32位常数“0×87654321”(16进制值“87654321”)然后被加到该结果(步S82,S83),和最后,寄存器R0被清零(步S84)。
图9是本处理器已经完成图8所示过程的程序举例。该程序包括三个指令71-73。在图9中,一行对应一指令,和每个指令的内容由每个指令的分别字段中的助记符表示。在图9中,每个常数的值以16进制表示。还有,代号“fmtn(n=o-F)”表示格式代码“n”,而代号“Rn(n=0-15)”表示在寄存器集34中的一个寄存器存储的值。所有这些,“R15”表现为常数寄存器36。
图10是执行图9中所示程序时,本处理器操作的定时图。图10示出时钟周期,普通寄存器R0-R3和寄存器R15的内容,和在4总线L1,R1,L2,和R2上流动的数据。
以下参照图9和10,解释本处理器用于指令71至73的操作。
指令71
在指令71已经被装入指令寄存器10之后,本处理器执行图10中时钟周期t0-t1的操作。格式译码器21从指令寄存器10中的P0.0字段11的值“fmt4”判断本指令是具有格式代码“4”的双操作指令,这样控制执行单元30,使得以平行方式执行下述的两个操作。
1.第一操作
常数寄存器控制单元32控制它的8个内部选择器32a-32h,使得位于P1.0字段12至P2.2字段15之间的16位常数(0×8765),根据图6B所示存储方法,存储到常数寄存器的低16位中。相应地,如图10中的时钟周期t0-t1所示,寄存器15的内容从“0×000000000”变化到“0×00008765”。
2.第二操作
第二操作单元38接收普通寄存器R0的存储值“0×33333333”和普通寄存器R1的存储值“0×22222222”的输入,和从前者减去后者之后,在普通寄存器R0中存储该结果。作为一种结果,普通寄存器R0的存储内容,在图10所示时钟周期t0-t1中,从值“0×33333333”变化成值“0×111111111”。
指令72
接着,在指令72已经被装入指令寄存器10中以后,本处理器进行图10中时钟周期t1-t2所示的操作。格式译码器21从指令寄存器10中的P0.0字段11的值“fmt4”中判断,本指令是具有格式代码“4”的双操作指令,和控制执行单元30,使得能以平行方式执行下述的两个操作。
1.第一操作
常数寄存器控制单元32控制它的8个内部选择器32a-32h,使得位于P1.0字段12至P2.2字段15之间的16位常数(0×4321),根据图6B所示的存储方法,存储在常数寄存器36的低16位中。相应地,如图10中时钟周期t1-t2所示,寄存器R15的内容从“0×00008765”变化到“0×87654321”。
2.第二操作
第二操作单元38接收普通寄存器R2的存储值“0×00000004”和普通寄存器R0的存储值“0×11111111”的输入,和在存储普通寄存器R0中存储该结果之前,这二者相乘。其结果是,如图10所示的时钟周期t1-t2,普通寄存器R0的存储值从值“0×11111111”变化到值“0×44444444”。
指令73
接着,在指令73被装入到指令寄存器10中之后,本处理器进行如图10的时钟周期t2-t3所示的操作。格式译码器21从指令寄存器10的P0.0字段11的值“fmt7”中判断,本指令是具有格式代码“7”的双操作指令,和控制执行单元30,使得以平行方式执行下述的两个操作。
1.第一操作
第一操作单元37接普通寄存器R15的存储值“0×87654321”和普通寄存器R0的存储值“0×44444444”的输入,和在普通寄存器R0中存储该结果之前,使二者相加。其结果是,如图10所示的时钟周期t2-t3中,普通寄存器R0的存储内容从值“0×44444444”变化到值“0×CBA98765”。
2.第二操作
第二操作单元38接收位于P1.0字段12和P3.1字段17中的8位常数(“0×00”)的输入,并允许该常数通过,使得它被存储在普通寄存器R3中。其结果是,如图10中的时钟周期t2-t3所示的,普通寄存器R3的内容从原先保存的值“0×FEDCBA98”变化到“0×00000000”。
如上所述的本处理器,32位常数“0×87654321”被分离成两部分,即被规范成两个指令7 1和72,通过移位它的存储值,这些部分被连续存储在常数寄存器36中。然后根据第三指令,指令73,使用该存储的常数,通过此方法,图8流程图所示过程能由三个指令71-73执行。
以下解释利用涉及16位常数的不同程序的本处理器的操作。
图11示出处理16位常数的程序举例。该程序由5个指令74至78组成。
以下描述指令74至78的每一个的本处理器的操作。
指令74
当指令74已经被装入指令寄存器10时,格式译码器21从指令寄存器10中的P0.0字段11的值“fmt0”中判断,本指令是具有格式代码“0”的三重操作指令,和控制执行单元30,使得能以平行方式执行下述的三个操作。
1.第一操作
常数寄存器控制单元32控制它的8个内部选择器32a-32h,使得位于P1.0字段12中的4位常数,根据图6A所示存储方法,存储到常数寄存器36的最低4位中。
3.第二操作
第一操作单元37接收普通寄存器R6的存储值的输入,和允许该值通过,使得它被存储在普通寄存器R1中。
3.第三操作
以相同方法,第三操作单元38接收普通寄存器R7的存储值的输入,并允许该值通过,使得它被存储在普通寄存器R2中。
指令75
当指令75已经被装入指令寄存器10时,格式译码器21从在指令寄存器10中的P0.0字段11的值“fmt0”中判断,该指令是具有格式代码“0”的三重操作指令,和控制执行单元30,使得能以平行方式执行下述的三个操作。
1.第一操作
常数寄存器控制单元32控制它的8个内部选择器32a-32h,使得位于P1.0字段12中的4位常数(“0×7”),根据图16A所示存储方法,存储到常数寄存器36的最低4位。在操作之后,常数“0×87”被设置在常数寄存器36的最低8位。
2.第二操作
第一操作单元37接收普通寄存器R0和普通寄存器R1的存储值的输入,并将这些值相加。第一操作单元37在普通寄存器R1中存储加的结果。
3.第三操作
以相同方法,第二操作单元38接收普通寄存器R0和普通寄存器R2的存储值的输入,和将这些值相加。第二操作单元38在普通寄存器R2中存储加的结果。
指令76,77
指令76,77以上述相同方法执行,和作为结果“0×8765”被存储在常数寄存器36的低16位中。
指令78
一旦指令78被装入指令寄存器10,本处理器就以如处理指令73相同方法操作。
如上所述的本处理器,16位常数“0×8765”被分离成4部分,规范成指令74-77,通过移位它的存储值,这些部分被连续存储在常数寄存器36中。该被存储的常数依照第五指令,指令78被使用。
同标准处理器比较
以下描述由标准处理器对如图9和11所示相同处理内容的程序执行的处理与本发明的处理相比较。这里,表示“标准处理器”的处理器执行指令的字长固定为32位。和本处理器相同,除了缺乏一种结构以外,例如用于累积已经分派在指令中间的常数的常数寄存器36和常数寄存器控制单元32。
图12A示出由标准处理器执行的指令的字段定义,而图12B示出指令格式。假设标准处理器能执行三类双操作指令,指令101-103,和一类单操作指令,指令104。
图13示出由标准处理器执行的程序举例。该程序具有如图9所示程序的相同处理内容,就是说与图8所示流程的过程相同。
如通过比较图13和图9所能看到的,用于标准处理器的程序比用于本发明处理器的程序的指令多两个。
被包括在指令105和106中的“NOP代码”的原因是指令106使用指令105的操作结果,使得这些指令不能以平行方式执行。还有,由于常数“0×87654321”被分成设置在常数寄存器R1的上16位和下16位(指令107和108),它就不能在一单个32位指令中为建立指令,设置32位常数和操作代码。
图14还示出标准处理器的程序举例。该程序与图11所示程序具有相同处理内容。如通过比较图14和图11所看到的,用于标准处理器的程序比本发明处理器的程序的指令多一个。
如上所述,由本发明处理器执行的指令具有高效字段结构,从而能利用相对短的32位字长指示最多三个操作。
相应地,采用本发明的处理器,已经被交叉划分成多个指令的的16位或32位常数能在常数寄存器36中累积,以复原它原始形式的常数,然后用它进行分支操作或算术逻辑操作。相应地,当在指令中一小区域是有效的时,该区域能被有效用于放置常数的一部分,使得程序的代码尺寸与当相同处理由标准处理器执行时的相比较被降低了。
修改
图15A至15D示出本发明的各种修改的VLIW处理器的指令格式。在这些图中,由垂直线划分的最小间隔代表1位,而代号“fmt”示出格式字段。
图15A所示指令由5位格式字段,7位操作字段,和两个10位操作字段组成。同时,图15B所示指令由2位格式字段,4位操作字段,和两个13位操作字段组成。图15C所示指令由3位格式字段,3位操作字段,和两个13位操作字段组成。最后,图15D所示指令由4位格式字段,2位操作字段,和两个13位操作字段组成。
这4类指令类似于图2A所示上述实施例的指令50。
i.指令字长固定为32位。
ii.每个指令具有一个格式字段和三个操作字段。
iii.三个操作字段不具有相同的结构,就是说,两个操作字段具有相同结构,而一个剩余操作字段是短的。
其结果是,这4类指令具有如上述实施例描述的指令50的相同特性。
I.该指令具有一字段结构,从而能以尽管相对短的32位字长指示最多三个操作。
II.提供的小操作字段,是理想的插入小指令,例如,不需要两个操作数的分支指令,如此,该指令的代码效率是高的。
III.提供一格式字段,通过给出在一操作字段中存在一常数或常数的一部分的指示,其中在该操作字段中,NOP指令是提供的正常需要,该程序的代码尺寸能被降低。
另一方面,上述4类指令还具有不同于上述实施例中指令50的特性。图15A所示指令具有放大的格式字段的优点,意味着能确定较大数量的指令类型,和能够在三个操作字段中的每一个中提供至少一个操作数。同时,在图15B至15D所示指令,具有两个放大的操作代码的优点(“OP2”和“OP3”),使得能确定较大变化的操作。
图16是用于执行图15A所指令的本发明的VLIW处理器的结构的方框图。如通过与图4所示结构相比较能看到的,处理器的基本结构是相同的,虽然在指令寄存器10,110和译码器单元20,120之间的连接中有某些差别。以此方法,用于执行图15A至15D中所示修改的指令的VLIW处理器,只通过局部改变上述实施例中所述的VLIW处理器就能实现。
本发明的处理器已经通过上述实施例给出解释,虽然应该清楚,若干进一步的修改是可能的。以下给出这样的4例。
(1)该实施例和本发明的上述修改的处理情况是指令字长32位指示最多三个操作,虽然本发明并不限于这些数。
作为一种举例,图2A所示指令50可以进一步包括另外4位操作代码和另一4位操作数,使得总的指令字长40位。通过这些,它变得可能确定具有高代码效率的指令,从而通过具有40位相对短字长的单个指令能执行最多4个操作。
(2)上述实施例的指令50只包括使用隐含操作数(常数寄存器36的存储值)的一个字段(P1.0字段52),虽然本发明并不限于此,可以有两个或多个这样的字段。通过近似确定新的指令格式,可以对此进行处理。
(3)在处理给定数字常数的举例的上述实施例中,虽然处理过程可能等价于本发明的处理字符常数。这是因为被分离成多个指令的长字符常数能在常数寄存器36中通过连续存储字符常数的不同部分而被累积。
(4)如从上述实施例的图2B至2D中所示的指令格式中能看到的,只有4位或16位常数能通过单指令被存储在上述实施例的常数寄存器36中,虽然这并不是对本发明的限制。作为举例,确定指令格式可能是等价的,从而12位或28位常数能通过单个指令被存储在常数寄存器中。为做到这些,只有必须改变常数寄存器36的外围电路的连接模式。
虽然参照附图通过举例已全面描述了本发明,应注意各种变化和修改对本领域技术人员是明显的。因此,除非该变化和修改脱离开本发明的范围,否则应包括在本发明的范围之内。

Claims (9)

1.一种用以译码和执行包括一个格式字段和至少一个操作字段的指令的特长指令字处理器,其中格式字段包括一个格式代码,
所述特长指令字处理器包括:
取指令单元,用于取指令;
指令寄存器,用于存储由所述取指令单元提取的指令;
译码器单元,包括:格式译码器,用于将所述指令寄存器中存储的所述格式字段中的所述格式代码译码和指示操作字段中的操作类型;
操作译码器,用于以所述格式译码器所指示的操作类型规定的方式将所述指令寄存器存储的所述操作字段译码;
执行单元,包括:
程序计数器单元,用于指定将要执行的指令的地址;
操作单元,用于根据所述译码器单元提供的译码结果,执行由所述操作字段指示的操作;以及
寄存器集,用于存储要由所述操作单元执行的多个值;以及
执行控制单元,用以控制所述执行单元。
2.根据权利要求1的特长指令字处理器,
其中指令具有多个操作字段,而其中的格式代码还表示那些操作字段中的每一个的操作类型。
3.根据权利要求2的特长指令字处理器,
其中那些操作字段中的每一个的操作类型还进一步由指令中的操作字段的位置指定。
4.根据权利要求1的特长指令字处理器,
其中格式译码器将操作字段中包含的操作代码译码;和
操作单元执行与被译码的操作代码对应的操作。
5.根据权利要求1的特长指令字处理器,其中操作单元包括:
存储单元,用于在格式译码器指示操作字段中的操作类型是存储一个常数的操作时,将一个常数从操作字段存储到寄存器中。
6.根据权利要求1的特长指令字处理器,其中
格式译码器将包括在操作字段中的操作代码译码;和
在格式译码器还指示操作字段包括操作代码、一个源寄存器代码和一个目标寄存器代码时,操作单元用该源寄存器代码和目标寄存器代码执行与被译码的操作代码对应的操作。
7.根据权利要求1的特长指令字处理器,其中
指令还具有分支字段;
格式译码器将包含在操作字段中的分支操作代码译码;和
在格式译码器还指示操作字段中的操作类型表示该分支字段包括分支操作代码时,操作单元执行与被译码的分支操作代码对应的分支操作。
8.根据权利要求1的特长指令字处理器,其中格式代码还表示除格式字段外保留至少一个字段。
9.一种用于根据权利要求1的特长指令字处理器的指令译码/执行方法,用以将包括格式字段和至少一个操作字段的指令译码和执行,其中格式字段包括一个格式代码,
该指令译码/执行方法包括下列步骤:
由程序计数器单元指定将要执行的指令的地址;
由取指令单元根据程序计数器单元指定的指令地址取指令;
将所述取指令单元提取的指令存储在指令寄存器中;
由包含在译码器单元中的格式译码器将所述指令寄存器中存储的所述格式字段中的所述格式代码译码和指示操作字段中的操作类型;
由包含在译码器单元中的操作译码器以所述格式译码器所指示的操作类型规定的方式将所述指令寄存器存储的所述操作字段译码;
由操作单元根据所述译码器单元提供的译码结果,执行由所述操作字段指示的操作;以及,
将要由所述操作单元执行的多个值存储在寄存器集中。
CNB200410006873XA 1997-06-16 1998-06-16 高效执行特长指令字的处理器和方法 Expired - Lifetime CN100339824C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP159048/97 1997-06-16
JP159048/1997 1997-06-16
JP15904897A JP3790607B2 (ja) 1997-06-16 1997-06-16 Vliwプロセッサ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB981029868A Division CN1178145C (zh) 1997-06-16 1998-06-16 高效执行特长指令字的处理器

Publications (2)

Publication Number Publication Date
CN1523495A CN1523495A (zh) 2004-08-25
CN100339824C true CN100339824C (zh) 2007-09-26

Family

ID=15685098

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB200410006873XA Expired - Lifetime CN100339824C (zh) 1997-06-16 1998-06-16 高效执行特长指令字的处理器和方法
CNB981029868A Expired - Lifetime CN1178145C (zh) 1997-06-16 1998-06-16 高效执行特长指令字的处理器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB981029868A Expired - Lifetime CN1178145C (zh) 1997-06-16 1998-06-16 高效执行特长指令字的处理器

Country Status (10)

Country Link
US (7) US6085306A (zh)
EP (4) EP2138933A1 (zh)
JP (1) JP3790607B2 (zh)
KR (1) KR100534967B1 (zh)
CN (2) CN100339824C (zh)
DE (1) DE69838966T2 (zh)
IL (1) IL124904A (zh)
MY (2) MY135426A (zh)
SG (3) SG111062A1 (zh)
TW (1) TW490636B (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
JP3412462B2 (ja) * 1997-07-30 2003-06-03 松下電器産業株式会社 プロセッサ
US6219776B1 (en) * 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
EP0953898A3 (en) * 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
JP2001034471A (ja) 1999-07-19 2001-02-09 Mitsubishi Electric Corp Vliw方式プロセッサ
IL142676A0 (en) * 1999-08-30 2002-03-10 Ip Flex Inc Control program product and data processing system
JP3730455B2 (ja) * 1999-10-01 2006-01-05 富士通株式会社 情報処理装置及び情報処理方法
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US20030023830A1 (en) * 2001-07-25 2003-01-30 Hogenauer Eugene B. Method and system for encoding instructions for a VLIW that reduces instruction memory requirements
CN100343798C (zh) * 2002-08-05 2007-10-17 Nxp股份有限公司 用于处理vliw指令的处理器和方法
KR100991700B1 (ko) 2002-08-16 2010-11-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체
EP1546869B1 (en) 2002-09-24 2013-04-03 Silicon Hive B.V. Apparatus, method, and compiler enabling processing of load immediate isntructions in a very long instruction word processor
WO2004034253A2 (en) * 2002-10-11 2004-04-22 Koninklijke Philips Electronics N.V. Vliw processor with variable, address range dependent issue-width
US8211338B2 (en) 2003-07-01 2012-07-03 Transitions Optical, Inc Photochromic compounds
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US7146491B2 (en) * 2004-10-26 2006-12-05 Arm Limited Apparatus and method for generating constant values
KR100636596B1 (ko) 2004-11-25 2006-10-23 한국전자통신연구원 고에너지 효율 병렬 처리 데이터 패스 구조
US7523295B2 (en) * 2005-03-21 2009-04-21 Qualcomm Incorporated Processor and method of grouping and executing dependent instructions in a packet
US7849466B2 (en) * 2005-07-12 2010-12-07 Qualcomm Incorporated Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor
JP4916151B2 (ja) * 2005-09-29 2012-04-11 ルネサスエレクトロニクス株式会社 並列演算装置
EP2028590A4 (en) * 2006-06-15 2009-07-08 Nec Corp PROCESSOR AND CONTROL CONTROL METHOD
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8775777B2 (en) * 2007-08-15 2014-07-08 Nvidia Corporation Techniques for sourcing immediate values from a VLIW
US20090046105A1 (en) * 2007-08-15 2009-02-19 Bergland Tyson J Conditional execute bit in a graphics processor unit pipeline
US8599208B2 (en) * 2007-08-15 2013-12-03 Nvidia Corporation Shared readable and writeable global values in a graphics processor unit pipeline
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US8314803B2 (en) 2007-08-15 2012-11-20 Nvidia Corporation Buffering deserialized pixel data in a graphics processor unit pipeline
US8736624B1 (en) 2007-08-15 2014-05-27 Nvidia Corporation Conditional execution flag in graphics applications
US8521800B1 (en) 2007-08-15 2013-08-27 Nvidia Corporation Interconnected arithmetic logic units
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US7870339B2 (en) 2008-01-11 2011-01-11 International Business Machines Corporation Extract cache attribute facility and instruction therefore
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US9280480B2 (en) 2008-01-11 2016-03-08 International Business Machines Corporation Extract target cache attribute facility and instruction therefor
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US20100004542A1 (en) * 2008-07-03 2010-01-07 Texas Instruments Incorporated System and method for ultrasound color doppler imaging
US8418268B2 (en) * 2009-12-04 2013-04-16 Global Trademarks, Llc Garment having support
US9678754B2 (en) * 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets
US8228109B2 (en) 2010-06-28 2012-07-24 Freescale Semiconductor, Inc. Transmission gate circuitry for high voltage terminal
US8804764B2 (en) 2010-12-21 2014-08-12 International Business Machines Corporation Data path for data extraction from streaming data
US20120198213A1 (en) * 2011-01-31 2012-08-02 International Business Machines Corporation Packet handler including plurality of parallel action machines
JP5813484B2 (ja) * 2011-11-30 2015-11-17 ルネサスエレクトロニクス株式会社 Vliwプロセッサと命令構造と命令実行方法
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9317251B2 (en) 2012-12-31 2016-04-19 Nvidia Corporation Efficient correction of normalizer shift amount errors in fused multiply add operations
US9886277B2 (en) 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources
US9483266B2 (en) 2013-03-15 2016-11-01 Intel Corporation Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
CN106714597B (zh) * 2014-10-23 2020-07-14 泰龙技术股份有限公司 具有多层内部腹部支撑嵌片的服装
CN106160717B (zh) 2015-04-03 2020-08-18 恩智浦美国有限公司 传输门电路
TWI707272B (zh) * 2019-04-10 2020-10-11 瑞昱半導體股份有限公司 可執行指令的電子裝置以及指令執行方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390358A (en) * 1991-07-18 1995-02-14 Seikosha Co., Ltd. Arithmetic unit that requires only one byte instructions
EP0689129A1 (en) * 1994-06-21 1995-12-27 STMicroelectronics Limited Processing of computer instructions with a reduced number of bits for operand specifiers

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
US5000000A (en) * 1988-08-31 1991-03-19 University Of Florida Ethanol production by Escherichia coli strains co-expressing Zymomonas PDC and ADH genes
US5615349A (en) 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
JPH04143819A (ja) * 1989-12-15 1992-05-18 Hitachi Ltd 消費電力制御方法、半導体集積回路装置およびマイクロプロセツサ
DE4040382C2 (de) * 1989-12-15 1999-03-11 Hitachi Ltd Integrierte Halbleiterschaltungsanordnung mit niederer Leistungsaufnahme und Verfahren zu ihrem Betrieb
DE69132675T2 (de) * 1990-04-06 2002-06-13 Nec Corp Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
EP0479390B1 (en) * 1990-10-05 1999-01-07 Koninklijke Philips Electronics N.V. Processing device including a memory circuit and a group of functional units
JP2908598B2 (ja) * 1991-06-06 1999-06-21 松下電器産業株式会社 情報処理装置
JP3186095B2 (ja) 1991-07-05 2001-07-11 日本電気株式会社 演算処理装置
JP2848727B2 (ja) 1991-11-18 1999-01-20 株式会社東芝 並列演算処理装置
EP0551090B1 (en) * 1992-01-06 1999-08-04 Hitachi, Ltd. Computer having a parallel operating capability
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US5617549A (en) * 1992-10-06 1997-04-01 Hewlett-Packard Co System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US6002880A (en) * 1992-12-29 1999-12-14 Philips Electronics North America Corporation VLIW processor with less instruction issue slots than functional units
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5384722A (en) * 1993-03-10 1995-01-24 Intel Corporation Apparatus and method for determining the Manhattan distance between two points
JP2636136B2 (ja) 1993-04-27 1997-07-30 工業技術院長 演算処理装置及び演算処理方法
EP1338957A3 (en) 1993-11-05 2003-10-29 Intergraph Corporation Software scheduled superscalar computer architecture
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
US6334219B1 (en) * 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
ZA9510127B (en) * 1994-12-01 1996-06-06 Intel Corp Novel processor having shift operations
US6401190B1 (en) * 1995-03-17 2002-06-04 Hitachi, Ltd. Parallel computing units having special registers storing large bit widths
US5669001A (en) * 1995-03-23 1997-09-16 International Business Machines Corporation Object code compatible representation of very long instruction word programs
US5774726A (en) * 1995-04-24 1998-06-30 Sun Microsystems, Inc. System for controlled generation of assembly language instructions using assembly language data types including instruction types in a computer language as input to compiler
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5848288A (en) 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5774737A (en) * 1995-10-13 1998-06-30 Matsushita Electric Industrial Co., Ltd. Variable word length very long instruction word instruction processor with word length register or instruction number register
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5787302A (en) * 1996-05-15 1998-07-28 Philips Electronic North America Corporation Software for producing instructions in a compressed format for a VLIW processor
US5852741A (en) 1996-05-15 1998-12-22 Philips Electronics North America Corporation VLIW processor which processes compressed instruction format
US5826054A (en) 1996-05-15 1998-10-20 Philips Electronics North America Corporation Compressed Instruction format for use in a VLIW processor
US5748936A (en) * 1996-05-30 1998-05-05 Hewlett-Packard Company Method and system for supporting speculative execution using a speculative look-aside table
JP3442225B2 (ja) * 1996-07-11 2003-09-02 株式会社日立製作所 演算処理装置
JP3745039B2 (ja) * 1996-08-01 2006-02-15 株式会社ルネサステクノロジ 遅延命令を有するマイクロプロセッサ
JPH10232779A (ja) 1997-01-24 1998-09-02 Texas Instr Inc <Ti> 命令並列処理方法及び装置
US5805850A (en) * 1997-01-30 1998-09-08 International Business Machines Corporation Very long instruction word (VLIW) computer having efficient instruction code format
JP3578883B2 (ja) * 1997-01-31 2004-10-20 三菱電機株式会社 データ処理装置
US5881307A (en) * 1997-02-24 1999-03-09 Samsung Electronics Co., Ltd. Deferred store data read with simple anti-dependency pipeline inter-lock control in superscalar processor
US6219779B1 (en) * 1997-06-16 2001-04-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US6256709B1 (en) * 1997-06-26 2001-07-03 Sun Microsystems, Inc. Method for storing data in two-way set associative odd and even banks of a cache memory
JP3412462B2 (ja) * 1997-07-30 2003-06-03 松下電器産業株式会社 プロセッサ
JP3414209B2 (ja) * 1997-07-30 2003-06-09 松下電器産業株式会社 プロセッサ
JP3892118B2 (ja) * 1997-07-31 2007-03-14 高砂香料工業株式会社 2,2’−ビス(ジアリールホスフィノ)−6,6’−ビス(トリフルオロメチル)−1,1’−ビフェニル、これを配位子とする遷移金属錯体および光学活性な3−ヒドロキシ酪酸エステル誘導体あるいはβ−ブチロラクトンの製造方法
US6170051B1 (en) * 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
US6173389B1 (en) * 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6076154A (en) * 1998-01-16 2000-06-13 U.S. Philips Corporation VLIW processor has different functional units operating on commands of different widths
US5881260A (en) * 1998-02-09 1999-03-09 Hewlett-Packard Company Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6446190B1 (en) * 1998-03-12 2002-09-03 Bops, Inc. Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JP3541669B2 (ja) 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
US6275927B2 (en) * 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes
US6058306A (en) * 1998-11-02 2000-05-02 Hughes Electronics Corporation Compensation of dynamic doppler frequency of large range in satellite communication systems
US6314509B1 (en) * 1998-12-03 2001-11-06 Sun Microsystems, Inc. Efficient method for fetching instructions having a non-power of two size
JP3841967B2 (ja) * 1999-01-19 2006-11-08 株式会社ルネサステクノロジ マイクロプロセッサ
DE60009886T2 (de) * 1999-01-25 2005-03-31 E.I. Du Pont De Nemours And Co., Wilmington Polysaccharidfasern
US6116806A (en) * 1999-02-17 2000-09-12 Chang; Chin Pao Connection tightness and swing angle adjustable pivot
US6405301B1 (en) * 1999-06-15 2002-06-11 U.S. Philips Corporation Parallel data processing
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
JP4502532B2 (ja) * 2001-02-23 2010-07-14 株式会社ルネサステクノロジ データ処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390358A (en) * 1991-07-18 1995-02-14 Seikosha Co., Ltd. Arithmetic unit that requires only one byte instructions
EP0689129A1 (en) * 1994-06-21 1995-12-27 STMicroelectronics Limited Processing of computer instructions with a reduced number of bits for operand specifiers

Also Published As

Publication number Publication date
CN1208197A (zh) 1999-02-17
EP1734440B1 (en) 2014-02-12
US8019971B2 (en) 2011-09-13
US20020129223A1 (en) 2002-09-12
US6397319B1 (en) 2002-05-28
EP1734440A3 (en) 2007-01-17
SG91248A1 (en) 2002-09-17
EP2138933A1 (en) 2009-12-30
KR19990007023A (ko) 1999-01-25
JP3790607B2 (ja) 2006-06-28
US20090193226A1 (en) 2009-07-30
EP0886210B1 (en) 2008-01-09
IL124904A0 (en) 1999-01-26
DE69838966T2 (de) 2008-12-24
US6085306A (en) 2000-07-04
EP2138932B1 (en) 2012-02-29
US20100169614A1 (en) 2010-07-01
US7533243B2 (en) 2009-05-12
KR100534967B1 (ko) 2006-03-23
EP0886210A2 (en) 1998-12-23
MY116751A (en) 2004-03-31
US8250340B2 (en) 2012-08-21
SG111062A1 (en) 2005-05-30
DE69838966D1 (de) 2008-02-21
US6834336B2 (en) 2004-12-21
IL124904A (en) 2002-07-25
MY135426A (en) 2008-04-30
SG111061A1 (en) 2005-05-30
US20020144084A1 (en) 2002-10-03
CN1523495A (zh) 2004-08-25
TW490636B (en) 2002-06-11
CN1178145C (zh) 2004-12-01
JPH117387A (ja) 1999-01-12
EP2138932A1 (en) 2009-12-30
US20120272044A1 (en) 2012-10-25
EP0886210A3 (en) 2001-09-05
EP1734440A2 (en) 2006-12-20

Similar Documents

Publication Publication Date Title
CN100339824C (zh) 高效执行特长指令字的处理器和方法
CN1153129C (zh) 用于处理器定制操作的设备
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
CN1101019C (zh) 数据序列产生方法及设备、转换方法及计算机
CN1302380C (zh) 处理器和编译器
CN1174313C (zh) 多指令集的数据处理
CN1264089C (zh) 编译设备和编译方法
CN1210647C (zh) 适于作由正值处理及饱和运算处理组成的修整处理的处理器
CN1269027C (zh) 数据并行右移合并的方法与装置
CN1249963C (zh) 使用分组摘要信息快速和自适应处理分组的设备和方法
CN1254739C (zh) 处理器和操作处理器的方法
CN1194292C (zh) 具有改良的指令集体系结构的微处理器
CN1168216C (zh) 文档管理设备,数据压缩方法和数据解压缩方法
CN1121014C (zh) 具有risc结构的八位微控制器
CN101046741A (zh) 处理器装置和复合条件处理方法
CN1869952A (zh) 指令执行设备、调试方法、调试设备以及调试程序
CN1684058A (zh) 处理器
CN1270232C (zh) 信息处理装置以及电子设备
CN1115631C (zh) 具有risc结构的八位微控制器
CN1469254A (zh) 处理器装置、使用它的信息处理装置、编译装置及其方法
CN101065725A (zh) 命令供给装置
CN1035190A (zh) 基于操作数长度和对位的微码转移
CN1143213C (zh) 高速处理循环的编译器和处理器
CN1279435C (zh) 数字信号处理器
CN1286005C (zh) 微处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: INTELLECTUAL PROPERTY BRIDGE NO. 1 CO., LTD.

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20150408

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150408

Address after: Tokyo, Japan

Patentee after: GODO KAISHA IP BRIDGE 1

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co., Ltd.

CX01 Expiry of patent term

Granted publication date: 20070926

CX01 Expiry of patent term