CN101814014A - 运算单元、处理器、编译器和编译方法 - Google Patents

运算单元、处理器、编译器和编译方法 Download PDF

Info

Publication number
CN101814014A
CN101814014A CN201010001818A CN201010001818A CN101814014A CN 101814014 A CN101814014 A CN 101814014A CN 201010001818 A CN201010001818 A CN 201010001818A CN 201010001818 A CN201010001818 A CN 201010001818A CN 101814014 A CN101814014 A CN 101814014A
Authority
CN
China
Prior art keywords
data
symbol
condition
sign bit
object data
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.)
Granted
Application number
CN201010001818A
Other languages
English (en)
Other versions
CN101814014B (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN101814014A publication Critical patent/CN101814014A/zh
Application granted granted Critical
Publication of CN101814014B publication Critical patent/CN101814014B/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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3824Accepting both fixed-point and floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了运算单元、处理器、编译器和编译方法,所述运算单元包括:数据供给部,其供给要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据;符号数据生成部,其提取所述条件数据中所包含的条件,并且根据所提取的条件生成用于将所述符号附加给所述对象数据的符号数据;以及整数运算部,其通过将所述对象数据作为整数型数据来进行整数运算,以便根据所述符号数据和所述对象数据将所述符号附加给所述对象数据。本发明的优点如下:能够根据条件数据对浮点型数据的符号进行高速转换。

Description

运算单元、处理器、编译器和编译方法
相关申请的交叉参考
本申请包含与2009年1月9日向日本专利局提交的日本在先专利申请JP 2009-003018相关的主题,在此将该日本专利申请的全部内容并入本文作为参考。
技术领域
本发明涉及运算单元。更具体地,本发明涉及用于进行浮点运算和整数运算的运算单元、处理器、编译器和编译方法。
背景技术
在诸如计算机等信息处理装置中,例如将实数表示成整数型(即,定点型(fixed-point type))数据和浮点型(floating-point type)数据。为了改变浮点型数据的符号,已经使用了专用于对浮点型数据进行运算的浮点运算单元。近年来,需要一种以更高的速度对浮点型数据的符号进行转换的装置。为了满足上述需求,已经提出了一种进行如下整数运算的运算单元,在该整数运算中,浮点型数据被作为无符号的整数型数据(例如,参见日本专利申请首次公开第2005-31847号公报的图1)。上述运算单元在将浮点型数据作为无符号的整数型数据的情况下进行整数运算,因此只有表示浮点型数据的符号的符号位被改变为表示正数的位值(bit value)。
在上述相关技术中,通过把浮点型数据作为无符号的整数型数据来进行整数运算,能够把浮点型数据的符号位高速地转换为表示正值的符号位。然而,在该运算单元中,由于把浮点型数据中的全部符号位都转换为表示正值的符号位,因此,不能在其它条件下对浮点型数据中的符号位进行转换。
发明内容
因此,期望能够根据条件数据高速地对浮点型数据的符号进行转换。
本发明的第一实施例是运算单元,所述运算单元包括:数据供给部,其供给要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据;符号数据生成部,其提取所述条件数据中所包含的条件,并且根据所提取的条件生成用于将所述符号附加给所述对象数据的符号数据;以及整数运算部,其通过将所述对象数据作为整数型数据来进行整数运算,以便根据所述符号数据和所述对象数据将所述符号附加给所述对象数据。利用此结构,通过根据要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据而进行的整数运算,能够将所述符号附加给所述对象数据。
在第一实施例中,如果所述条件数据是浮点型数据,则所述符号数据生成部可以通过将所述条件数据作为所述整数型数据来进行所述整数运算。利用此结构,能够根据浮点型数据在整数运算单元中生成符号数据。
在第一实施例中,所述符号数据生成部可以包括位串保持部,所述位串保持部保持着用于提取所述条件的位串,并且所述符号数据生成部可以使用所述位串从所述条件数据中提取所述条件。利用此结构,能够根据用于提取所述条件的位串来提取所述条件。
在第一实施例中,所述符号数据生成部可以根据从所述数据供给部供给过来的多个所述条件数据生成新条件数据,提取所述新条件数据中所包含的条件,并且根据所提取的条件生成所述符号数据。利用此结构,能够根据多个条件数据生成新条件数据,从而生成符号数据。
在第一实施例中,所述符号数据生成部可以根据从所述数据供给部提供的多个所述条件数据提取该多个所述条件数据中所包含的多个条件,并且根据所提取的多个所述条件生成所述符号数据。利用此结构,能够根据从多个条件数据生成的多个条件来生成符号数据。
在第一实施例中,所述符号数据生成部可以与所述条件数据的值无关地把从所述位串保持部供给过来的所述位串作为所述符号数据供给到符号计算部,并且所述整数运算部可以根据所述符号数据来使所述对象数据的符号反转。利用此结构,能够与条件数据的值无关地使对象数据的符号反转。
在第一实施例中,所述符号数据生成部可以提取表示所述条件数据中的所述符号的符号位作为所述条件,并且根据所提取的符号位生成所述符号数据。利用此结构,能够根据条件数据中的符号位来生成符号数据。
在第一实施例中,所述符号数据生成部可以提取表示所述条件数据中的所述符号的符号位作为所述条件,使所提取的符号位的符号反转以生成新的符号位,然后根据所述新的符号位生成所述符号数据。利用此结构,能够根据使条件数据中的符号位反转后得到的符号位生成符号数据。
在第一实施例中,所述符号数据生成部可以使表示所述条件数据中的所述符号的符号位移位,使得所述符号数据中的所述符号的位置与所述对象数据中的所述符号的位置在所述整数运算部中相互一致。利用此结构,能够使所述符号数据中的所述符号位的位置与所述对象数据中的所述符号位的位置相互一致。
本发明的第二实施例是处理器,所述处理器包括:寄存器,其供给要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据;符号数据生成部,其提取所述条件数据中所包含的条件,并且根据所提取的条件生成用于将所述符号附加给所述对象数据的符号数据;以及整数运算部,其通过将所述对象数据作为整数型数据来进行整数运算,以便根据所述符号数据和所述对象数据将所述符号附加给所述对象数据。利用此结构,能够根据要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据,利用所述处理器通过整数运算来将所述符号附加给所述对象数据。
本发明的第三实施例是编译器和编译方法。所述编译器包括:源程序存储部,其存储着源程序,所述源程序包括用于根据要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据将所述符号附加给对象数据的编码;符号附加码提取部,其从所述源程序存储部中读出所述源程序,并且从读出的所述源程序中提取所述编码;符号附加码生成部,其生成用于提取所述条件数据中所包含的条件、且根据所提取的条件来生成用于将所述符号附加给所述对象数据的符号数据的编码,并生成用于把所述对象数据作为整数型数据来进行整数运算、且根据所述符号数据和所述对象数据将所述符号附加给所述对象数据的编码;符号附加码转换部,其把所提取的编码转换为所生成的编码;以及编码生成部,其根据包括转换后的编码的所述源程序生成机器语言程序编码。利用此结构,能够把用于根据对象数据和条件数据将符号附加给对象数据的编码转换为用于生成符号数据的编码和用于将符号附加给对象数据的编码。
根据本发明,获得了如下优点:能够根据条件数据高速地对浮点型数据的符号进行转换。
附图说明
图1A是示出了在本发明实施例中使用的示例性浮点数格式的示意图;
图1B是示出了在本发明实施例中使用的示例性整数格式的示意图;
图2是本发明第一实施例的处理器100的第一示例性结构的框图;
图3是示出了本发明第一实施例处理器100第一示例性结构中的符号附加处理的示例性步骤的流程图;
图4是本发明第一实施例的处理器100的第二示例性结构的框图;
图5是示出了本发明第一实施例处理器100第二示例性结构中的符号附加处理的示例性步骤的流程图;
图6是示出了本发明第一实施例的处理器100的第三示例性结构的框图;
图7是示出了本发明第一实施例处理器100第三示例性结构中的符号附加处理的示例性步骤的流程图;
图8是示出了本发明第一实施例的处理器100的第四示例性结构的框图;
图9是示出了本发明第一实施例处理器100第四示例性结构中的符号附加处理的示例性步骤的流程图;
图10是示出了本发明第一实施例的处理器100的第五示例性结构的框图;
图11是示出了本发明第一实施例处理器100第五示例性结构中的符号附加处理的示例性步骤的流程图;
图12是示出了本发明第一实施例的处理器100的第六示例性结构的框图;
图13是示出了本发明第一实施例处理器100第六示例性结构中的符号附加处理的示例性步骤的流程图;
图14是示出了本发明第一实施例的处理器100的第七示例性结构的框图;
图15是示出了本发明第一实施例处理器100第七示例性结构中的符号附加处理的示例性步骤的流程图;
图16是示出了本发明第一实施例的处理器100的第八示例性结构的框图;
图17是示出了本发明第一实施例处理器100第八示例性结构中的符号附加处理的示例性步骤的流程图;
图18是示出了本发明第一实施例的处理器100的第九示例性结构的框图;
图19是示出了本发明第一实施例处理器100第九示例性结构中的符号附加处理的示例性步骤的流程图;
图20示出了本发明第一实施例的处理器100的第十示例性结构的框图;
图21是示出了本发明第一实施例处理器100第十示例性结构中的符号附加处理的示例性步骤的流程图;
图22是示出了MP3数据中的帧的数据结构的示意图,MP3数据是基于MP3(Moving Picture Experts Group(MPEG)-1 audio layer-3)标准而被压缩的音频数据;
图23是示出了对MP3数据进行解码的解码装置900的示例性结构的框图;
图24是示出了对MP3数据进行解码的解码装置900中的示例性步骤的流程图;
图25是示出了通过本发明第二实施例的逆量子化部940进行的逆量子化处理(步骤S950)中的示例性步骤的流程图;
图26是示出了本发明第三实施例的处理器100的示例性结构的框图;
图27是示出了本发明第三实施例处理器100的符号附加处理的示例性步骤的流程图;
图28是示出了本发明第四实施例的编译系统500的示例性结构的框图;以及
图29是示出了通过本发明第四实施例的编译处理器器600进行的编译处理中的步骤的流程图。
具体实施方式
下面按照如下顺序对用于实现本发明的最佳方式(以下称作“实施例”)进行说明。
1、第一实施例(符号附加处理控制:处理器的示例)
2、第二实施例(MP3数据解码控制:解码装置的示例)
3、第三实施例(符号附加处理控制:包括整数寄存器和浮点寄存器的处理器的示例)
4、第四实施例(编译控制:编译系统的示例)
1、第一实施例
浮点数格式的示例
图1A是示出了在本发明实施例中使用的示例性浮点数格式的示意图。图1B是示出了在本发明实施例中使用的示例性整数格式的示意图。图1A示出了单精度浮点数数据的格式。图1B示出了整数型数据的格式。各个格式的左端表示最高有效位(most significant bit,MSB),并且各个格式的右端表示最低有效位(least significant bit,LSB)。
图1A示出了表示基于电子电气工程师协会(Institute for Electricaland Electronics Engineering,IEEE)754标准的单精度浮点数数据的格式。单精度浮点数用由32位(即,第0位~第31位)构成的位串来表示。浮点型数据由表示符号(sign)的符号位811、表示指数(exponent)的指数部812以及表示尾数(mantissa)的尾数部(或小数部)813构成。
符号位811表示浮点数的符号。符号位811是作为最高有效位的第31位。如果第31位是“0”,则符号位811为正,如果第31位是”1”,则符号位811为负。
指数部812是表示如下值的位串,该值是通过把作为偏移分量(biascomponent)的“127”添加到基数2的幂指数上而获得的值。指数部812是位串中的第23位~第30位。
尾数部813是表示如下值的位串,该值是通过从二进制小数(binarydecimal)中的尾数减去“1”而获得的在1以下的值。尾数部813是位串中的第0位~第22位。
由此构成的浮点数能够用下面的方程式(1)来表示:
(-1)s×2(E-B)×(1+.F)      (1)
其中,S是由符号位811表示的值,E是由指数部812表示的值,B是偏移分量,并且F是由尾数部813表示的值。
图1B是整数型数据格式。作为示例,示出了用由32位(即,第0位~第31位)构成的位串表示的整数型数据。整数型数据由符号位(S)821和整数部822构成。
符号位821表示整数型数据的符号。符号位821是作为最高有效位的第31位。如果第31位是“0”,则符号位821为正,如果第31位是”1”,则符号位821为负。
整数部822由除了该整数型数据的符号位821以外的其他位串部分构成。如果符号位821为正,则整数部822用二进制记数系统(binarynumeration system)表示。如果符号位821为负,则整数部822用二进制数的“2的补码(two′s complement)”表示。此处所述的“2的补码”是通过把用二进制数表示绝对值的位串反转,并在该反转后得到的位串的最低有效位处加“1”而获得的位串。整数部822对应于第0位~第30位。
下面参照附图详细说明对由此构成的浮点型数据和整数型数据进行处理的处理器100。
处理器的第一示例性结构
图2是本发明第一实施例的处理器100的第一示例性结构的框图。图2示出了处理器100和存储器120。处理器100对要附加符号的浮点型对象数据以及包括将符号附加给对象数据时的条件的32位整数型条件数据进行处理。处理器100包括控制部110、总线130、寄存器140、整数运算部150、符号判断部160和浮点运算部170。
控制部110控制处理器100的各个构件。例如,控制部110是通过中央处理单元(central processing unit,CPU)来实现的。例如,控制部110指示从寄存器140到符号判断部160的数据传输以及从符号判断部160到寄存器140的数据传输。
总线130用于处理器100的各个构件之间的数据通信。
寄存器140暂时保持着整数运算部150、符号判断部160和浮点运算部170中的运算所必需的数据。寄存器140暂时保持着整数运算部150、符号判断部160和浮点运算部170中的运算的结果。例如,寄存器140由触发器(flip-flop)构成。寄存器140暂时保持着通过总线130从存储器120供给过来的对象数据和条件数据。寄存器140暂时保持着符号判断部160中的处理的结果。寄存器140通过信号线149将暂时保持着的对象数据供给到符号判断部160。寄存器140通过信号线148将暂时保持着的条件数据供给到符号判断部160。寄存器140是权利要求书中记载的数据供给部和寄存器的一个示例。
整数运算部150基于从寄存器140供给过来的整数型数据进行整数运算。例如,整数运算部150是普通计算机中的CPU的算术逻辑单元(arithmetic logic unit,ALU)。整数运算部150通过总线130将整数运算的结果供给到寄存器140。
符号判断部160基于从寄存器140供给来的对象数据和条件数据将符号附加给对象数据。符号判断部160包括符号数据生成部200和符号附加部300。
符号数据生成部200基于条件数据中所包含的条件生成用于将符号附加给浮点型数据的符号数据。符号数据生成部200把所生成的符号数据供给到符号附加部300。符号数据生成部200包括位串保持部210和符号位提取部220。符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
位串保持部210保持着用于从条件数据中提取符号位的位串。例如,如果条件数据是32位数据,则位串保持部210保持着十六进制数的位串“0x80000000”。位串保持部210将当前保持着的位串供给到符号位提取部220。位串保持部210是权利要求书中记载的位串保持部的一个例子。
符号位提取部220基于从寄存器140供给过来的条件数据和从位串保持部210供给过来的位串,提取表示条件数据中的符号的符号位作为条件。例如,符号位提取部220通过逻辑积(AND)运算电路来实现。符号位提取部220把所提取的符号位作为符号数据提供给符号附加部300。
符号附加部300基于从寄存器140供给过来的对象数据和从符号判断部160供给过来的符号数据,将符号附加给对象数据。符号附加部300将对象数据作为整数型数据进行处理,并且通过对对象数据和作为整数型数据的符号数据的整数运算将符号附加给对象数据。例如,符号附加部300通过用于进行加法(ADD)运算的整数运算电路(integer arithmeticoperation circuit)来实现。符号附加部300将附加了符号的对象数据供给到寄存器140。尽管已经以进行加法(ADD)运算的整数运算电路为例对符号附加部300进行了说明,但符号附加部300不限于这种符号附加部。能够采用任意电路,只要该电路能够基于符号数据对符号位进行转换即可。例如,符号附加部300可以是“异”或(exclusive OR,XOR)电路。符号附加部300是权利要求书中记载的整数运算部的一个例子。
浮点运算部170基于从寄存器140供给过来的浮点型数据进行浮点运算。例如,浮点运算部170通过普通计算机中的CPU的浮点数处理单元(floating-point number processing unit,FPU)来实现。浮点运算部170例如基于从寄存器140供给过来的32位浮点型数据进行浮点运算。浮点运算部170例如通过总线130将浮点运算的结果供给到寄存器140。尽管上面已经对包括寄存器140的处理器100进行了说明,但可替代的是,符号判断部160也可以是单独的计算部。尽管此处的例子是使用整数型数据作为条件数据,但可替代地,也可以把浮点型数据作为条件数据,该数据可以作为整数型数据来处理以生成符号编码。
存储器120保持着处理器100的动作所必需的数据。例如,存储器120保持着要在符号判断部160中被附加符号的浮点型对象数据以及包括将符号附加给对象数据时的条件的条件数据。存储器120通过总线130将处理器100的动作所必需的数据供给到处理器100。
在该结构中,假设根据整数型数据的符号位表示“1”的条件数据和浮点型数据的符号位表示“1”的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加在符号位811的“1”上,从而生成了符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“1”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位表示“0”的条件数据和单精度浮点型数据的符号位表示“1”的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将“0”加在符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“0”、且对象数据的符号位为“0”,由于符号位821的“0”被加到符号位811的“0”上,因而生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第一示例性结构的处理器100的动作进行说明。
图3是示出了本发明第一实施例处理器100第一示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将条件数据和对象数据加载到寄存器140中(步骤S911)。接着,符号位提取部220提取条件数据的符号位(步骤S915)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括符号判断部160,因而处理器100能够基于条件数据和对象数据将符号附加给对象数据。也就是说,由于在符号判断部160中设置有位串保持部210和符号位提取部220,因而如果条件数据的符号位为“1”,则处理器100能够对对象数据的符号进行转换。
处理器的第二示例性结构
图4是本发明第一实施例的处理器100的第二示例性结构的框图。该处理器100是在图2所示的处理器100中增设了反转部230。由于本实施例的处理器100中除了反转部230以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图4所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
反转部230基于从位串保持部210供给过来的位串,使从符号位提取部220供给过来的符号位反转。反转部230例如通过用于进行加法(ADD)运算的整数运算电路来实现。反转部230把经过符号反转后的符号位作为符号数据供给到符号附加部300。尽管以进行加法(ADD)运算的整数运算电路为例对反转部230进行了说明,但反转部230不限于此。能够采用任意电路,只要该电路能够基于符号数据仅对符号位进行转换即可。例如,反转部230可以是进行“异”或(XOR)运算的电路。
在该结构中,假设根据整数型数据的符号位表示“0”的条件数据和浮点型数据的符号位表示“1”的对象数据将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示符号位的位为“0”、且其它位全部为“0”的数据。然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串进行加法(ADD)运算。反转部230使表示从符号位提取部220供给过来的数据的条件数据的符号位的位反转。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加在符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“0”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位为“1”的条件数据和单精度浮点型数据的符号位为“1”的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示符号位的位为“1”、且其它位全部为“0”的数据。然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串进行加法(ADD)运算。反转部230使表示从符号位提取部220供给过来的数据的条件数据的符号位的位反转。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将“0”加在符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“1”、且对象数据的符号位为“0”,则由于符号位821的“0”被加到符号位811的“0”上,因而生成了符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第二示例性结构的处理器100的动作进行说明。
图5是示出了本发明第一实施例处理器100第二示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将条件数据和对象数据加载到寄存器140中(步骤S911)。接着,符号位提取部220提取条件数据的符号位(步骤S915)。然后,反转部230使所提取的符号位反转(步骤S927)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括反转部230,因而如果条件数据的符号位为“0”,则能够对对象数据的符号进行转换。
处理器的第三示例性结构
图6是本发明第一实施例的处理器100的第三示例性结构的框图。该处理器100与图2所示的处理器100的不同之处在于符号数据生成部200。由于本实施例的处理器100中除了符号数据生成部200以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图6所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
符号数据生成部200包括图2所示的位串保持部210。位串保持部210与条件数据的值无关地将当前保持着的位串供给到符号附加部300。
在该结构中,假设根据整数型数据的符号位表示“0”或者“1”的条件数据、且浮点型数据的符号位表示“1”的对象数据,将符号附加给对象数据。
在这种情况下,位串保持部210与条件数据的值无关地将当前保持着的位串供给到符号附加部300。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从位串保持部210供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
下面参照附图对本发明第一实施例处理器100第三示例性结构的处理器100的动作进行说明。
图7是示出了本发明第一实施例处理器100第三示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将条件数据和对象数据加载到寄存器140中(步骤S911)。接着,符号附加部300使对象数据的符号位反转(步骤S928)。
由于处理器100包括设置在符号判断部160中的位串保持部210和符号附加部300,因而不管条件数据的值如何,都能够对对象数据的符号进行转换。
处理器的第四示例性结构
图8是本发明第一实施例的处理器100的第四示例性结构的框图。该处理器100不是设有图2所示处理器100中的位串保持部210,而是设有位串保持部212和移位部240。由于本实施例的处理器100中除了位串保持部212和移位部240以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图8所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
位串保持部212保持着用于从8位长度的条件数据中提取符号位的十六进制数的位串“0x00000080”。位串保持部212是权利要求书中记载的位串保持部的一个例子。
如果条件数据和对象数据具有不同的位长度(bit length),则为了在符号附加部300中使符号位的位置与条件数据的符号位的位置一致,移位部240对从条件数据中提取的符号位进行移位。具体地说,例如,如果通过信号线148把8位的条件数据供给过来并且在符号位提取部220中提取符号位,则移位部240使所提取的符号位向左移24位。移位部240使从符号位提取部220供给过来的符号位移位,并且把经过移位后的符号位作为符号数据供给到符号附加部300。
在该结构中,假设根据整数型数据的符号位表示“1”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部212供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示条件数据的符号位的第7位为“1”、且其它位全部为“0”的数据。然后,移位部240使从符号位提取部220供给过来的数据向左移24位。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从移位部240供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“1”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位表示“0”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部212供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示条件数据的符号位的第7位为“0”、且其它位全部为“0”的数据。然后,移位部240使从符号位提取部220供给过来的数据向左移24位。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从移位部240供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将符号位821的“0”加到符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“0”、且对象数据的符号位为“0”,则由于符号位821的“0”被加到符号位811的“0”上,因而生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第四示例性结构的处理器100的动作进行说明。
图9是示出了本发明第一实施例处理器100第四示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将8位长度的条件数据和32位长度的对象数据加载到寄存器140中(步骤S911)。接着,符号位提取部220提取条件数据的符号位(步骤S915)。然后,移位部240使从符号位提取部220供给过来的数据向左移24位(步骤S926)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
因此,由于处理器100包括位串保持部212和移位部240,因而当条件数据和对象数据具有不同的位长度时,也能够基于条件数据和对象数据将符号附加到对象数据上。也就是说,即使条件数据和对象数据具有不同的位长度,如果条件数据的符号位为“1”,处理器100也能够与图2所示的处理器100一样将符号附加到对象数据上。
处理器的第五示例性结构
图10是本发明第一实施例的处理器100的第五示例性结构的框图。该处理器100是在图2所示的处理器100中增设了图8所示的移位部240。由于本实施例的处理器100中除了移位部240以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图10所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
处理器100通过信号线148将条件数据供给到移位部240。
移位部240把经过移位后的数据作为新条件数据供给到符号位提取部220。例如,当通过信号线148把8位的条件数据供给过来时,移位部240生成新条件数据,在该新条件数据中,符号位已经被向左移了24位。移位部240把所生成的新条件数据供给到符号位提取部220。
在该结构中,假设根据整数型数据的符号位表示“1”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
移位部240使通过信号线148供给过来的条件数据向左移24位。因此,生成了表示符号位821的第31位为“1”、且其它位全部为“0”的新条件数据。把所生成的条件数据供给到符号位提取部220。然后,符号位提取部220基于从移位部240供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“1”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位表示“0”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
移位部240使通过信号线148供给过来的条件数据向左移24位。因此,生成了表示符号位821的第31位为“0”、且其它位全部为“0”的新条件数据。把所生成的条件数据供给到符号位提取部220。然后,符号位提取部220基于从移位部240供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将符号位821的“0”加到符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“0”、且对象数据的符号位为“0”,则由于符号位821的“0”被加到符号位811的“0”上,因而生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第五示例性结构的处理器100的动作进行说明。
图11是示出了本发明第一实施例处理器100第五示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将8位长度的条件数据和32位长度的对象数据加载到寄存器140中(步骤S911)。接着,移位部240使条件数据的符号位向左移24位,并且生成新条件数据(步骤S922)。接着,符号位提取部220提取从移位部240供给过来的新条件数据的符号位(步骤S915)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括移位部240,所以当条件数据和对象数据具有不同的位长度时,也能够基于条件数据和对象数据将符号附加到对象数据上。也就是说,即使条件数据和对象数据具有不同的位长度,如果条件数据的符号位为“1”,处理器100也能够与图2所示的处理器100中一样将符号附加到对象数据上。
处理器的第六示例性结构
图12是本发明第一实施例的处理器100的第六示例性结构的框图。该处理器100是在图8所示的处理器100中增设了位串保持部213和图4所示的反转部230。由于本实施例的处理器100中除了位串保持部213和反转部230以外的其他结构与图8所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图12所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
位串保持部213保持着要在反转部230中用于使从移位部240供给过来的符号位反转的位串。例如,如果从移位部240供给过来的符号位是32位的数据,则位串保持部213保持着十六进制数的位串“0x80000000”。位串保持部213将当前保持着的位串供给到反转部230。
反转部230基于从位串保持部213供给过来的位串,使从移位部240供给过来的符号位反转。反转部230把具有经过反转后的符号的符号位作为符号数据供给到符号附加部300。
在该结构中,假设根据整数型数据的符号位表示“0”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部212供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示条件数据的符号位的第7位为“0”、且其它位全部为“0”的数据。然后,移位部240使从符号位提取部220供给过来的数据向左移24位。因此,生成了表示符号位821的第31位为“0”、且其它位全部为“0”的数据,并且把所生成的数据供给到反转部230。
然后,反转部230基于从移位部240供给过来的数据和从位串保持部213供给过来的位串进行加法(ADD)运算。反转部230使表示从移位部240供给过来的数据的符号位的位反转。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“1”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位表示“1”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
符号位提取部220基于通过信号线148供给过来的条件数据和从位串保持部212供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。因此,生成了表示条件数据的符号位的第7位为“1”、且其它位全部为“0”的数据。然后,移位部240使从符号位提取部220供给过来的数据向左移24位。因此,生成了表示符号位821的第31位为“1”、且其它位全部为“0”的数据,并且把所生成的数据供给到反转部230。
然后,反转部230基于从移位部240供给过来的数据和从位串保持部213供给过来的位串进行加法(ADD)运算。反转部230使表示从移位部240供给过来的数据的符号位的位反转。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将符号位821的“0”加到符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“0”、且对象数据的符号位为“0”,则由于符号位821的“0”被加到符号位811的“0”上,因而生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第六示例性结构的处理器100的动作进行说明。
图13是示出了本发明第一实施例处理器100第六示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将8位长度的条件数据和32位长度的对象数据加载到寄存器140中(步骤S911)。接着,符号位提取部220提取条件数据的符号位(步骤S915)。接着,移位部240使从符号位提取部220供给过来的数据向左移24位(步骤S926)。然后,反转部230使所提取的符号位反转(步骤S927)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括移位部240、位串保持部213和反转部230,所以当条件数据和对象数据具有不同的位长度时,也能够基于条件数据和对象数据将符号附加到对象数据上。也就是说,即使条件数据和对象数据具有不同的位长度,如果条件数据的符号位为“0”,处理器100也能够与图4所示的处理器100中一样将符号附加到对象数据上。
处理器的第七示例性结构
图14是本发明第一实施例的处理器100的第七示例性结构的框图。该处理器100是在图10所示的处理器100的符号数据生成部200中增设了图4所示的反转部230。由于本实施例的处理器100中除了反转部230以外的其他结构与图10所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图14所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
反转部230基于从位串保持部210供给过来的位串,使从符号位提取部220供给过来的符号位反转。
在该结构中,假设根据整数型数据的符号位表示“0”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
移位部240使通过信号线148供给过来的条件数据向左移24位。因此,生成了表示符号位821的第31位为“0”、且其它位全部为“0”的新条件数据。把所生成的条件数据供给到符号位提取部220。然后,符号位提取部220基于从移位部240供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的数据,并且把所生成的数据供给到反转部230。
然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串,进行加法(ADD)运算。反转部230使表示从符号位提取部220供给过来的数据的符号位的位反转。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果条件数据的符号位为“1”、且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对指数部812和尾数部813进行转换。
在该结构中,假设根据整数型数据的符号位表示“1”的8位的条件数据和浮点型数据的符号位表示“1”的32位的对象数据,将符号附加给对象数据。
移位部240使通过信号线148供给过来的条件数据向左移24位。因此,生成了表示符号位821的第31位为“1”、且其它位全部为“0”的新条件数据,并且把所生成的条件数据供给到符号位提取部220。然后,符号位提取部220基于从移位部240供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从该条件数据中提取符号位821。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到反转部230。
然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串,进行加法(ADD)运算。反转部230使表示从符号位提取部220供给过来的数据的条件数据的符号位的位反转。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将“0”加在符号位811的“1”上,从而生成符号位811未被转换的对象数据。如果条件数据的符号位为“1”、且对象数据的符号位为“0”,则由于符号位821的“0”被加到符号位811的“0”上,因而生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第七示例性结构的处理器100的动作进行说明。
图15是示出了本发明第一实施例处理器100第七示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将8位长度的条件数据和32位长度的对象数据加载到寄存器140中(步骤S911)。接着,移位部240使条件数据的符号位向左移24位,从而生成新条件数据(步骤S922)。接着,符号位提取部220提取从移位部240供给过来的新条件数据的符号位(步骤S915)。然后,反转部230使所提取的符号位反转(步骤S927)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
因此,由于处理器100包括移位部240和反转部230,因而当条件数据和对象数据具有不同的位长度时,也能够基于条件数据和对象数据将符号附加到对象数据上。也就是说,即使条件数据和对象数据具有不同的位长度,如果条件数据的符号位为“0”,处理器100也能够与图4所示的处理器100中一样将符号附加到对象数据上。
处理器的第八示例性结构
图16是本发明第一实施例的处理器100的第八示例性结构的框图。该处理器100是在图2所示的处理器100中增设了条件数据生成部250。由于本实施例的处理器100中除了条件数据生成部250以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图16所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
处理器100通过信号线147将第一条件数据供给到条件数据生成部250,并且通过信号线148将第二条件数据供给到条件数据生成部250。
条件数据生成部250基于通过信号线147和信号线148供给过来的条件数据,生成新条件数据。例如,条件数据生成部250通过用于进行从第一条件数据中减去第二条件数据的减法(SUB)运算的减法电路(arithmetic subtracting circuit)来实现。例如,条件数据生成部250通过用于进行第一条件数据和第二条件数据的逻辑积(AND)运算(logical product(AND)arithmetic operation)的AND运算电路来实现。例如,条件数据生成部250通过用于进行第一条件数据和第二条件数据的逻辑和(OR)运算(logical sum(OR)arithmetic operation)的OR运算电路来实现。条件数据生成部250把所生成的新条件数据供给到符号位提取部220。尽管对于上述条件数据生成部250利用一个运算电路且基于两个条件数据生成新条件数据的例子进行了说明,但可替代地,也可以基于两个以上的条件数据将两个以上的运算电路组合起来以生成新条件数据。可替代地,也可以将对象数据作为条件数据供给到条件数据生成部250。
在该结构中,假设条件数据生成部250通过减法电路来实现。假设第一条件数据的符号位为“1”、且整数部表示的值为“5”,第二条件数据的符号位为“1”、且整数部表示的值为“3”,并且单精度浮点型数据的符号位为“1”。
在这种情况下,条件数据生成部250从第一条件数据的值中减去第二条件数据的值。具体地说,从“-5”中减去“-3”得到“-2”,并且生成了符号位为“1”的新条件数据,然后供给到符号位提取部220。然后,符号位提取部220基于通过条件数据生成部250供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从新条件数据中提取符号位821。以此方式,生成了符号位821为“1”、且整数部822为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,生成了这样的对象数据:在该对象数据中,把“1”加到符号位811的“1”上因而使符号位811转换为“0”,并且指数部812和尾数部813未被转换。
在该结构中,假设条件数据生成部250通过减法电路来实现。假设第一条件数据的符号位为“0”、且整数部表示的值为“5”,第二条件数据的符号位为“1”、且整数部表示的值为“3”,并且单精度浮点型数据的符号位为“1”。
在这种情况下,条件数据生成部250从第一条件数据的值中减去第二条件数据的值。具体地说,从“5”中减去“-3”得到“8”,并且生成了符号位为“0”的新条件数据,然后供给到符号位提取部220。然后,符号位提取部220基于从条件数据生成部250供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从新条件数据中提取符号位821。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从符号位提取部220供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,生成了这样的对象数据:在该对象数据中,把“0”加到符号位811的“1”上因而符号位811未被转换,并且指数部812和尾数部13也未被转换。
以此方式,由于处理器包括作为条件数据生成部250的减法电路,因而如果第一条件数据小于第二条件数据,则处理器100能够对对象数据的符号进行转换。
当处理器100包括作为条件数据生成部250的AND运算电路以代替减法电路时,如果第一条件数据和第二条件数据都为负,则能够对对象数据的符号进行转换。当处理器100包括作为条件数据生成部250的OR运算电路时,如果第一条件数据或者第二条件数据中的一者为负,则能够对对象数据的符号进行转换。
下面参照附图对本发明第一实施例处理器100第八示例性结构的处理器100的动作进行说明。
图17是示出了本发明第一实施例处理器100第八示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将第一条件数据、第二条件数据和对象数据加载到寄存器140中(步骤S911)。接着,条件数据生成部250基于第一条件数据和第二条件数据生成新条件数据(步骤S923)。然后,符号位提取部220提取新条件数据的符号位(步骤S924)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括条件数据生成部250,因而能够基于多个条件数据将符号附加给对象数据。
处理器的第九示例性结构
图18是本发明第一实施例的处理器100的第九示例性结构的框图。该处理器100是在图16所示的处理器100的符号数据生成部200中增设了图4所示的反转部230。由于本实施例的处理器100中除了反转部230以外的其他结构与图16所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图18所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
反转部230基于从位串保持部210供给过来的位串,使从符号位提取部220供给过来的符号位反转。反转部230把具有经过反转后的符号的符号位作为符号数据供给到符号附加部300。
在该结构中,假设条件数据生成部250通过减法电路来实现。假设第一条件数据的符号位为“1”、且整数部表示的值为“3”,第二条件数据的符号位为“1”、且整数部表示的值为“5”,并且单精度浮点型数据的符号位为“1”。
在这种情况下,条件数据生成部250从第一条件数据的值中减去第二条件数据的值。具体地说,从“-3”中减去“-5”得到“2”,并且生成了符号位为“0”的新条件数据,然后供给到符号位提取部220。然后,符号位提取部220基于从条件数据生成部250供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从新条件数据中提取符号位821。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到反转部230。
然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串进行加法(ADD)运算。因此反转部230使表示从符号位提取部220供给过来的数据的条件数据的符号位的位反转。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,生成了这样的对象数据:在该对象数据中,把“1”加到符号位811的“1”上因而符号位811被转换为“0”,并且指数部812和尾数部813未被转换。
在该结构中,假设条件数据生成部250通过减法电路来实现。假设第一条件数据的符号位为“0”、且整数部表示的值为“3”,第二条件数据的符号位为“0”、且整数部表示的值为“5”,并且单精度浮点型数据的符号位为“1”。
在这种情况下,条件数据生成部250从第一条件数据的值中减去第二条件数据的值。具体地说,从“3”中减去“5”得到“-2”,并且生成了符号位为“1”的新条件数据,然后供给到符号位提取部220。然后,符号位提取部220基于从条件数据生成部250供给过来的新条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从新条件数据中提取符号位821。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到反转部230。
然后,反转部230基于从符号位提取部220供给过来的数据和从位串保持部210供给过来的位串,进行加法(ADD)运算。反转部230使表示从符号位提取部220供给过来的数据的条件数据的符号位的位反转。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。然后,符号附加部300基于通过信号线149供给过来的对象数据和从反转部230供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,生成这样的对象数据:在该对象数据中,把“0”加到符号位811的“1”上因而符号位811未被转换,并且指数部812和尾数部13也未被转换。
由于处理器100包括作为条件数据生成部250的减法电路,因此如果第一条件数据大于第二条件数据,则能够对对象数据的符号进行转换。
当处理器100包括作为条件数据生成部250的AND运算电路以代替减法电路时,如果第一条件数据和第二条件数据都为正,则能够对对象数据的符号进行转换。当处理器100包括作为条件数据生成部250的OR运算电路时,如果第一条件数据或者第二条件数据中的一者为正,则能够对对象数据的符号进行转换。
下面参照附图对本发明第一实施例处理器100第九示例性结构的处理器100的动作进行说明。
图19是示出了本发明第一实施例处理器100第九示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将第一条件数据、第二条件数据和对象数据加载到寄存器140中(步骤S911)。接着,通过条件数据生成部250基于第一条件数据和第二条件数据生成新条件数据(步骤S923)。接着,通过符号位提取部220提取新条件数据的符号位(步骤S924)。然后,通过反转部230使所提取的符号位反转(步骤S927)。随后,通过符号附加部300将符号附加给对象数据(步骤S919)。
由于处理器100包括条件数据生成部250,因而能够基于多个条件数据将符号附加给对象数据。
处理器的第十示例性结构
图20是本发明第一实施例的处理器100的第十示例性结构的框图。由于本实施例的处理器100中除了符号数据生成部200以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。图20所示的符号数据生成部200是权利要求书中记载的符号数据生成部的一个例子。
符号数据生成部200包括位串保持部210、反转部230、符号位提取部260和270以及比较部280。从信号线147供给过来的数据被称作第一条件数据,并且从信号线148供给过来的数据被称作第二条件数据。
符号位提取部260基于从信号线147供给过来的第一条件数据和从位串保持部210供给过来的位串,提取表示第一条件数据中的符号的符号位作为条件。例如,符号位提取部260通过用于进行逻辑积(AND)运算的AND运算电路来实现。符号位提取部260将所提取的符号位供给到反转部230。
符号位提取部270基于从信号线148供给过来的第二条件数据和从位串保持部210供给过来的位串,提取表示第二条件数据中的符号的符号位作为条件。例如,符号位提取部270通过用于进行逻辑积(AND)运算的AND运算电路来实现。符号位提取部270将所提取的符号位供给到比较部280。
反转部230基于由符号位提取部260供给过来的从第一条件数据中提取的符号位以及从位串保持部210供给过来的位串,使从第一条件数据中提取的符号位反转。反转部230将经过反转后的符号位供给到比较部280。
比较部280对各个所提取的符号位进行比较,并生成新的符号位。例如,比较部280通过用于进行逻辑积(AND)运算的AND运算电路来实现。例如,比较部280通过用于进行逻辑和(OR)运算的OR运算电路实现。比较部280把所生成的新符号位作为符号数据供给到符号附加部300。
在该结构中,假设比较部280通过AND运算电路来实现。假设第一条件数据的符号位为“0”,第二条件数据的符号位为“1”,并且单精度浮点型数据的符号位为“1”。
符号位提取部260基于通过信号线147供给过来的第一条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从第一条件数据中提取符号位821。因此,生成了表示符号位的位为“0”、且其它位全部为“0”的第一数据。符号位提取部270基于通过信号线148供给过来的第二条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从第二条件数据中提取符号位821。因此,生成了表示符号位的位为“1”、且其它位全部为“0”的第二数据。
然后,反转部230基于从符号位提取部260供给过来的第一数据和从位串保持部210供给过来的位串,进行加法(ADD)运算。反转部230使表示从符号位提取部260供给过来的第一数据的条件数据的符号位的位反转。因此,生成了表示符号位的位为“1”、且其它位全部为“0”的第一数据。然后,比较部280基于从反转部230供给过来的第一数据和从符号位提取部270供给过来的第二数据,通过逻辑积(AND)运算对第一数据与第二数据进行比较。以此方式,生成了符号位821为“1”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。
然后,符号附加部300基于通过信号线149供给过来的对象数据和从比较部280供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。以此方式,将符号位821的“1”加到符号位811的“1”上,从而生成符号位811被转换为“0”的对象数据。此时不对指数部812和尾数部813进行转换。如果第一条件数据的符号位为“0”,第二条件数据的符号位为“1”,并且对象数据的符号位811为“0”,则将符号位811从“0”转换为“1”,并且不对其它位进行转换。
在该结构中,假设比较部280通过AND运算电路来实现。假设第一条件数据的符号位为“1”,第二条件数据的符号位为“1”,并且单精度浮点型数据的符号位为“1”。
符号位提取部260基于通过信号线147供给过来的第一条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从第一条件数据中提取符号位821。因此,生成了表示符号位的位为“1”、且其它位全部为“0”的第一数据。符号位提取部270基于通过信号线148供给过来的第二条件数据和从位串保持部210供给过来的位串,通过逻辑积(AND)运算从第二条件数据中提取符号位821。因此,生成了表示符号位的位为“1”、且其它位全部为“0”的第二数据。
然后,反转部230基于从符号位提取部260供给过来的第一数据和从位串保持部210供给过来的位串,进行加法(ADD)运算。反转部230使表示从符号位提取部260供给过来的第一数据的条件数据的符号位的位反转。因此,生成了表示符号位的位为“0”、且其它位全部为“0”的第一数据。然后,比较部280基于从反转部230供给过来的第一数据和从符号位提取部270供给过来的第二数据,通过逻辑积(AND)运算对第一数据与第二数据进行比较。以此方式,生成了符号位821为“0”、且整数部822全部为“0”的符号数据,并且把所生成的符号数据供给到符号附加部300。
然后,符号附加部300基于通过信号线149供给过来的对象数据和从比较部280供给过来的符号数据,通过加法(ADD)运算将符号附加给对象数据。因此,将符号位821的“0”加到符号位811的“1”上,从而生成符号位811未被转换的对象数据。
如果第一条件数据的符号位为“1”,第二条件数据的符号位为“1”,并且对象数据的符号位811为“0”,则将符号位821的“0”加到符号位811的“0”上。因此,生成符号位811未被转换的对象数据。
如果第一条件数据的符号位为“1”,第二条件数据的符号位为“0”,并且对象数据的符号位811为“1”,则将符号位821的“0”加到符号位811的“1”上。因此,生成符号位811未被转换的对象数据。
如果第一条件数据的符号位为“1”,第二条件数据的符号位为“0”,并且对象数据的符号位811为“0”,则将符号位821的“0”加到符号位811的“0”上。因此,生成符号位811未被转换的对象数据。
如果第一条件数据的符号位为“0”,第二条件数据的符号位为“0”,并且对象数据的符号位811为“1”,则将符号位821的“0”加到符号位811的“1”上。因此,生成符号位811未被转换的对象数据。
如果第一条件数据的符号位为“0”,第二条件数据的符号位为“0”,并且对象数据的符号位811为“0”,则将符号位821的“0”加到符号位811的“0”上。因此,生成符号位811未被转换的对象数据。
下面参照附图对本发明第一实施例处理器100第十示例性结构的处理器100的动作进行说明。
图21是示出了本发明第一实施例处理器100第十示例性结构中的符号附加处理的示例性步骤的流程图。
首先,从存储器120将第一条件数据、第二条件数据和对象数据加载到寄存器140中(步骤S911)。接着,符号位提取部260从第一条件数据中提取符号位,并且符号位提取部270从第二条件数据中提取符号位(步骤S932)。接着,反转部230使通过符号位提取部260提取的符号位反转(步骤S933)。接着,比较部280基于通过反转部230反转的符号位和通过符号位提取部270提取的符号位来生成符号数据(步骤S934)。随后,符号附加部300将符号附加给对象数据(步骤S919)。
因此,如果第一条件数据不小于“0”、且第二条件数据小于“0”,则处理器100使用AND运算电路作为符号数据生成部200中的比较部280,就可以将符号附加到对象数据上。
如果第一条件数据不小于“0”或者第二条件数据小于“0”,则处理器100不使用AND运算电路而是使用OR运算电路作为比较部280,就可以将符号附加到对象数据上。
根据本发明的第一实施例,通过利用整数运算将符号附加给浮点型数据,能够对附加了条件的浮点型数据的符号进行高速转换。
在本发明的第一实施例中,虽然已经说明了有关符号数据生成部200的一些变形例,但还可以通过与除了上述说明以外的其他运算电路的组合来进行各种其它修改。
2、第二实施例
MP3音频数据中的帧的示例性结构
在第二实施例中,对本发明实施例的具体应用的示例进行说明。
图22是示出了MP3数据中的帧的数据结构的示意图,该MP3数据是基于MP3标准而被压缩的音频数据。帧860是用于对MP3数据进行解码的最小单位。帧860包括帧头861、错误校验862、音频数据863和辅助数据864。
帧头861是表示帧的内容的数据。帧头861是32位的数据。错误校验862是用于通过循环冗余校验(cyclic redundancy check)来对帧的数据中的错误进行检测的数据。错误校验862是16位的数据。错误校验862是用于检测错误的数据,因而并不是必不可少的。音频数据863包括音频信息。音频数据863包括位分配信息、包含霍夫曼(Huffman)表信息的边信息、比例因子信息和霍夫曼编码数据信息。辅助数据864是如果音频数据863未达到帧的末端时要被插入的数据。
下面参照附图说明对MP3数据进行解码的解码装置900的示例性结构。
解码装置的示例性结构
图23是示出了对MP3数据进行解码的解码装置900的示例性结构的框图。解码装置900从通过信号线901供给过来的MP3数据中解码出脉冲编码调制(pulse code modulation,PCM)数据,并且把该解码后的数据通过信号线909输出,所述PCM数据是被量子化至一定步长的音频信号。解码装置900包括比特流分解部910、比例因子解码器920、霍夫曼解码部930、逆量子化部940和混合滤波器组(hybrid filter bank,HFB)部950。
比特流分解部910从通过信号线901供给过来的MP3数据中提取位分配信息、包含霍夫曼表信息的边信息、比例因子信息和霍夫曼编码数据信息。比特流分解部910将所提取的位分配信息供给到比例因子解码器920、霍夫曼解码部930和逆量子化部940。比特流分解部910将所提取的包含霍夫曼表信息的边信息供给到比例因子解码器920、霍夫曼解码部930和逆量子化部940。比特流分解部910将所提取的比例因子信息供给到比例因子解码器920。比特流分解部910将所提取的霍夫曼编码数据信息供给到霍夫曼解码部930。
比例因子解码器920基于从比特流分解部910供给过来的位分配信息、比例因子信息和包含霍夫曼表信息的边信息对比例因子进行解码。比例因子解码器920将解码后的比例因子供给到逆量子化部940。
霍夫曼解码部930基于从比特流分解部910供给过来的位分配信息、霍夫曼编码数据信息和包含霍夫曼表信息的边信息对霍夫曼编码数据进行解码。霍夫曼解码部930将解码后的霍夫曼编码数据供给到逆量子化部940。
逆量子化部940基于位分配信息、包含霍夫曼表信息的边信息、比例因子和霍夫曼编码数据使霍夫曼编码数据逆量子化,并且生成逆量子化数据。逆量子化部940把所生成的逆量子化数据供给到HFB部950。
HFB部950基于从逆量子化部940供给过来的逆量子化数据,将音频信号复原为PCM数据。HFB部950包括蝶式计算部(butterflycomputation section)951、逆修正型离散余弦变换(inverse modified discretecosine transform,IMDCT)计算部952和子带合成部(subband compositionsection)953。
蝶式计算部951基于从逆量子化部940供给过来的逆量子化数据,通过蝶式计算来消除混叠失真(aliasing)。蝶式计算部951将已消除了混叠的数据供给到IMDCT计算部952。
IMDCT计算部952基于从蝶式计算部951供给过来的已消除了混叠的数据,通过IMDCT(逆修正型离散余弦变换)将音频信号的频域数据转换为时域数据。IMDCT计算部952将转换后的数据供给到子带合成部953。
子带合成部953基于从IMDCT计算部952供给过来的时域数据,通过子带合成而生成PCM数据。子带合成部953把所生成的PCM数据供给到信号线909。
下面参照附图说明对MP3数据进行解码的解码装置900的动作。
解码装置的示例性动作
图24是示出了对MP3数据进行解码的解码装置900中的解码过程的示例性步骤的流程图。
首先,比特流分解部910从通过信号线901供给过来的MP3数据的帧中提取帧头,并且对所提取的帧头进行分析(步骤S941)。接着,比特流分解部910基于被分析的帧头从MP3数据的帧中解码出边信息,并且从MP3数据的帧中提取霍夫曼编码数据信息和比例因子信息(步骤S942)。接着,比例因子解码器920基于来自比特流分解部910的比例因子信息,对比例因子进行解码(步骤S943)。接着,霍夫曼解码部930基于从比特流分解部910供给过来的霍夫曼编码数据信息,对霍夫曼编码数据进行解码(步骤S944)。接着,逆量子化部940基于边信息、比例因子和霍夫曼编码数据,进行霍夫曼编码数据的逆量子化处理,由此生成逆量子化数据(步骤S950)。该逆量子化数据是基于如下方程式(2)生成的。
xr(i,j)=sign(is(i,j))×|is(i,j)|4/3×2P    (2)
0≤i ≤31,0≤j≤17
其中,xr(i,j)是逆量子化处理的计算结果;is(i,j)是霍夫曼编码数据;P是根据边信息和比例因子计算出的常数;sign(is(i,j))是霍夫曼编码数据的符号;i是子带带宽数;并且j是各个子带输出的采样数。
接着,基于来自逆量子化部940的逆量子化数据,蝶式计算部951进行蝶式计算处理,并且生成已经消除了混叠的数据(步骤S946)。随后,IMDCT计算部952将来自蝶式计算部951的频域数据转换为时域数据(步骤S947)。接着,子带合成部953将来自IMDCT计算部952的时域数据转换为PCM数据(步骤S948)。然后,所生成的PCM数据通过信号线909被供给出来(步骤S949)。
下面参照附图对本发明第二实施例的步骤S950的处理进行说明。
图25是示出了通过本发明第二实施例的逆量子化部940进行的逆量子化处理(步骤S950)中的示例性步骤的流程图。这里,假设该逆量子化处理是通过图2所示的处理器100来进行的。
首先,从存储器120将MP3数据的帧加载到寄存器140中(步骤S951)。接着,将逆量子化处理的循环控制变量i初始化为“0”(步骤S952)。随后,将逆量子化处理的循环控制变量j初始化为“0”(步骤S953)。接着,通过浮点运算来进行对MP3数据的帧的各逆量子化处理中的除了符号处理之外的其他处理(步骤S954)。在步骤S954中,作为逆量子化处理中的除了符号处理之外的其他处理,浮点运算是基于如下方程式(3)来进行的。
xr_abs=|is(i,j)|4/3×2p    (3)
其中,xr_abs是逆量子化处理中的除了符号之外的其他部分的计算结果。
接着,符号数据生成部200提取浮点数的符号位(步骤S955)。接着,符号附加部300向通过浮点运算计算出的浮点数附加符号(步骤S956)。
接着,判断循环控制变量j是否为预定阈值j(步骤S957)。如果循环控制变量j小于阈值j,则在循环控制变量j上加“1”(步骤S959),并且流程返回到步骤S954,重复进行处理。如果循环控制变量j等于阈值j,则判断循环控制变量i是否为预定阈值j(步骤S958)。如果循环控制变量i小于阈值j,则在循环控制变量i上加“1”(步骤S960),并且流程返回到步骤S953,重复进行处理。
根据本发明的第二实施例,处理器100能够应用于逆量子化部940中的逆量子化运算。
3、第三实施例
包括整数寄存器和浮点寄存器的处理器的示例性结构
图26是示出了本发明第三实施例的处理器100的示例性结构的框图。由于本实施例的处理器100中除了整数寄存器180和浮点寄存器190以外的其他结构与图2所示结构相同,因而相同的部件用相同的附图标记表示,并省略对它们的说明。
图26所示的处理器100包括整数寄存器180和浮点寄存器190,以代替图2所示的处理器100的寄存器140。
整数寄存器180暂时保持着整数运算部150和符号判断部160中的处理所必需的数据。例如,整数寄存器180暂时保持着要在符号判断部160中进行处理的对象数据和条件数据。整数寄存器180暂时保持着通过总线130供给过来的、且要在符号判断部160中处理的对象数据。
整数寄存器180把在符号判断部160中经过处理的对象数据供给到浮点寄存器190。整数寄存器180通过信号线149将暂时保持着的对象数据供给到符号判断部160。整数寄存器180通过信号线148将暂时保持着的条件数据供给到符号判断部160。
浮点寄存器190暂时保持着浮点运算部170中的处理所必需的数据并且暂时保持着对象数据。例如,浮点寄存器190暂时保持着通过总线130从存储器120供给过来的、且浮点运算部170中的处理所必需的数据。浮点寄存器190暂时保持着与浮点运算部170中的处理结果有关的数据。浮点寄存器190将暂时保持着的对象数据供给到整数寄存器180。
如上所述,即使是单独设置有整数寄存器180和浮点寄存器190的处理器100,也能够与图2一样,基于作为整数型数据的条件数据和作为浮点型数据的对象数据将符号附加给对象数据。
下面参照附图对本发明第三实施例处理器100的动作进行说明。
处理器的示例性动作
图27是示出了本发明第三实施例处理器100的符号附加处理中的示例性步骤的流程图。
首先,从存储器120将条件数据加载到整数寄存器180中,并且从存储器120将对象数据加载到浮点寄存器190中(步骤S971)。接着,将对象数据从浮点寄存器190传输到整数寄存器180(步骤S972)。随后,位串保持部210和符号位提取部220提取条件数据的符号位(步骤S973)。接着,符号附加部300将符号附加给对象数据(步骤S974)。接着,将附加了符号的对象数据从整数寄存器180传输到浮点寄存器190(步骤S975)。
如上所述,根据本发明的第三实施例,即使单独设置有整数寄存器和浮点寄存器,也能够通过整数运算将符号附加给作为浮点型数据的对象数据。
4、第四实施例
编译系统的示例性结构
图28是示出了本发明第四实施例的编译系统500的示例性结构的框图。编译系统500对输入的程序进行编译,并且包括源程序存储部510、编译处理器600和目标程序存储部530。
源程序存储部510存储待编译的源程序。例如,源程序包括用于将符号附加给对象数据的编码。源程序存储部510将存储的源程序供给到编译处理器600。源程序存储部510是权利要求书中记载的源程序存储部的一个例子。
编译处理器600通过对从源程序存储部510读出的源程序进行编译,生成作为机器语言程序的目标程序。编译处理器600把所生成的目标程序供给到目标程序存储部530。编译处理器600包括源程序分析部610、最优化部620和编码生成部630。
例如,源程序分析部610基于从源程序存储部510读出的源程序,进行形态分析(Morphological Analysis)和句法分析(Syntactic Analysis)。由此,源程序分析部610生成被称作中间表达代码(intermediate expressioncode)的格式的中间代码,该中间代码是最优化部620的处理所必需的。源程序分析部610把所生成的中间代码供给到最优化部620。源程序分析部610包括程序分析部611和符号附加码提取部612。
程序分析部611通过基于从源程序存储部510供给过来的源程序进行例如形态分析和句法分析,来生成中间代码。然后,程序分析部611把用于生成中间代码的编码供给到符号附加码提取部612。
符号附加码提取部612在从程序分析部611供给过来的编码中提取用于将符号附加给对象数据的编码,并且生成中间代码。符号附加码提取部612把所生成的中间代码供给到最优化部620。符号附加码提取部612是权利要求书中记载的符号附加码提取部的一个例子。
最优化部620基于从符号附加码提取部612供给过来的中间代码进行程序最优化。程序最优化包括用于提高执行速度的最优化和用于减小编码大小的最优化。最优化部620将最优化后的程序供给到编码生成部630。最优化部620包括程序最优化部621、符号附加码生成部622和符号附加码转换部623。
程序最优化部621基于从符号附加码提取部612供给过来的中间代码对程序进行最优化。程序最优化部621将最优化后的程序供给到符号附加码生成部622。
符号附加码生成部622基于通过符号附加码提取部612提取的编码,生成要使所提取的编码在符号附加码转换部623中被转换成的编码。例如,要被转换的编码是:用于以汇编语言(assembly language)来实现图2所示符号数据生成部200的运算的编码,以及用于以汇编语言来实现图2所示符号附加部300的运算的编码。也就是说,用于以汇编语言来实现图2所示符号数据生成部200的运算的编码是用于如下用途的编码:基于通过提取条件数据中所包含的条件而获得的条件来生成用于将符号附加给对象数据的符号数据。用于以汇编语言来实现图2所示符号附加部300的运算的编码是用于如下用途的编码:基于符号数据和对象数据并通过将对象数据用作整数型数据而进行的整数运算,将符号附加给对象数据。符号附加码生成部622把所生成的编码与已经开始最优化的程序一起供给到符号附加码转换部623。符号附加码生成部622是权利要求书中记载的符号附加码生成部的一个例子。
符号附加码转换部623把由符号附加码提取部612提取的编码转换为由符号附加码生成部622生成的编码。符号附加码转换部623把包括转换后的编码的最优化程序供给到编码生成部630。符号附加码转换部623是权利要求书中记载的符号附加码转换部的一个例子。
编码生成部630基于从符号附加码转换部623供给过来的最优化程序,生成作为机器语言程序(machine language program)的编码的目标程序。编码生成部630把所生成的目标程序供给到目标程序存储部530。编码生成部630是权利要求书中记载的编码生成部的一个例子。
目标程序存储部530存储从编码生成部630供给过来的目标程序。
下面说明被编译处理器600转换的C语言编码(4)的一个示例。
int a;
float b,c;
a=-4;
b=5.0f;
c=b;
if(a<0){
   c=-b;
}
例如,通过编译处理器600将上述编码转换为用如下编码(5)表示的C语言编码。
int a,tmp;
union{
 float f;
 int i;
}b,c;
a=-4;
b.f=5.0f;
tmp=a&0x80000000;
c.i=b.i+tmp;
例如,当使用“MIPS R4000”系统来测量运算速度时,将编码(4)转换为编码(5),因而循环数从“7”变为“3”,相当于改善了57%。
如上所述,在编译处理器600中,通过对源程序进行编译,能够将用于通过条件转移(conditional branch)和浮点运算将符号附加给对象数据的编码转换为用于通过整数运算来附加符号的编码。
虽然作为一个例子对上述编译处理器600自动改变符号附加码进行了说明,但可替代地,也可以设置指示接收部以便从外部对符号附加码提取部612、符号附加码生成部622和符号附加码转换部623进行控制。
下面参照附图对本发明第四实施例的编译处理器600的处理进行说明。
图29是示出了通过本发明第四实施例编译处理器600进行的编译处理中的步骤的流程图。
首先,编译处理器600从源程序存储部510读出源程序(步骤S981)。接着,程序分析部611开始对该源程序的分析(步骤S982)。接着,符号附加码提取部612提取用于基于对象数据和条件数据来附加符号的编码(步骤S983)。需要说明的是,步骤S983是权利要求书中记载的符号附加码提取步骤的一个例子。然后,程序最优化部621开始对程序的最优化(步骤S984)。接着,符号附加码生成部622生成用于以汇编语言来实现图2所示符号数据生成部200的运算的编码以及用于以汇编语言来实现图2所示符号附加部300的运算的编码(步骤S985)。需要说明的是,步骤S985是权利要求书中记载的符号附加码生成步骤的一个例子。接着,符号附加码转换部把由符号附加码提取部612提取的编码转换为由符号附加码生成部622生成的编码(步骤S986)。需要说明的是,步骤S986是权利要求书中记载的符号附加码转换步骤的一个例子。接着,编码生成部630基于包括转换后的编码的程序,生成作为机器语言程序的编码的目标程序(步骤S987)。需要说明的是,步骤S987是权利要求书中记载的编码生成步骤的一个例子。
如上所述,根据本发明的第四实施例,能够把用于通过条件转移和浮点运算将符号附加给对象数据的编码自动转换为用于通过整数运算来附加符号的编码。
本发明的各实施例仅是解释性的例子,并且各个实施例分别对应于权利要求书中所记载的发明的内容。然而,本发明不限于上述各实施例,在不背离本发明的范围和精神的情况下,能够进行各种改变。
可以将本发明各实施例中说明的流程看作具有一系列步骤的方法,或者可以看作用于使计算机执行这些步骤的程序或存储有该程序的记录介质。记录介质的示例包括压缩盘(compact disc,CD)、微型盘(minidisc,MD)、数字通用盘(digital versatile disc,DVD)、存储卡和蓝光盘(Blu-rayDisc(注册商标))等。
本领域技术人员应当理解,依据设计要求和其他因素,可以在本发明所附的权利要求或其等同物的范围内进行各种修改、组合、次组合及改变。

Claims (12)

1.一种运算单元,所述运算单元包括:
数据供给部,其供给要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据;
符号数据生成部,其提取所述条件数据中所包含的条件,并且根据所提取的条件生成用于将所述符号附加给所述对象数据的符号数据;以及
整数运算部,其通过将所述对象数据作为整数型数据来进行整数运算,以便根据所述符号数据和所述对象数据将所述符号附加给所述对象数据。
2.如权利要求1所述的运算单元,其中,如果所述条件数据是浮点型数据,则所述符号数据生成部通过将所述条件数据作为所述整数型数据来进行所述整数运算。
3.如权利要求1所述的运算单元,其中,所述符号数据生成部包括位串保持部,所述位串保持部保持着用于提取所述条件的位串,并且所述符号数据生成部使用所述位串从所述条件数据中提取所述条件。
4.如权利要求1所述的运算单元,其中,所述符号数据生成部根据从所述数据供给部供给过来的多个所述条件数据生成新条件数据,提取所述新条件数据中所包含的条件,并且根据所提取的条件生成所述符号数据。
5.如权利要求1所述的运算单元,其中,所述符号数据生成部根据从所述数据供给部供给过来的多个所述条件数据提取该多个所述条件数据中所包含的多个条件,并且根据所提取的多个条件生成所述符号数据。
6.如权利要求1所述的运算单元,其中,所述符号数据生成部与所述条件数据的值无关地把从所述位串保持部供给过来的所述位串作为所述符号数据供给到符号计算部,并且所述整数运算部根据所述符号数据使所述对象数据的符号反转。
7.如权利要求1所述的运算单元,其中,所述符号数据生成部提取表示所述条件数据中的所述符号的符号位作为所述条件,并且根据所提取的符号位生成所述符号数据。
8.如权利要求1所述的运算单元,其中,所述符号数据生成部提取表示所述条件数据中的所述符号的符号位作为所述条件,使所提取的符号位的符号反转以生成新的符号位,然后根据所述新的符号位生成所述符号数据。
9.如权利要求1所述的运算单元,其中,所述符号数据生成部使表示所述条件数据中的所述符号的符号位移位,使得所述符号数据中的所述符号的位置与所述对象数据中的所述符号的位置在所述整数运算部中相互一致。
10.一种处理器,所述处理器包括:
寄存器,其供给要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据;
符号数据生成部,其提取所述条件数据中所包含的条件,并且根据所提取的条件生成用于将所述符号附加给所述对象数据的符号数据;以及
整数运算部,其通过将所述对象数据作为整数型数据来进行整数运算,以便根据所述符号数据和所述对象数据将所述符号附加给所述对象数据。
11.一种编译器,所述编译器包括:
源程序存储部,其存储着源程序,所述源程序包括用于根据要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据将所述符号附加给所述对象数据的编码;
符号附加码提取部,其从所述源程序存储部中读出所述源程序,并且从读出的所述源程序中提取所述编码;
符号附加码生成部,其生成用于提取所述条件数据中所包含的条件、且根据所提取的条件来生成用于将所述符号附加给所述对象数据的符号数据的编码,并生成用于把所述对象数据作为整数型数据来进行整数运算、且根据所述符号数据和所述对象数据将所述符号附加给所述对象数据的编码;
符号附加码转换部,其把所提取的编码转换为所生成的编码;以及
编码生成部,其根据包括转换后的编码的所述源程序生成机器语言程序编码。
12.一种用于计算机中的编译方法,所述计算机包括源程序存储部,所述源程序存储部存储着源程序,所述源程序包括用于根据要被附加符号的浮点型对象数据和包括附加所述符号时的条件的条件数据将所述符号附加给所述对象数据的编码,所述编译方法包括如下步骤:
从所述源程序中提取所述编码,所述源程序是从所述源程序存储部中读出的;
生成用于提取所述条件数据中所包含的条件、且根据所提取的条件来生成用于将所述符号附加给所述对象数据的符号数据的编码,并生成用于把所述对象数据作为整数型数据来进行整数运算、且根据所述符号数据和所述对象数据将所述符号附加给所述对象数据的编码;
把所提取的编码转换为所生成的编码;以及
根据包括转换后的编码的所述源程序生成机器语言程序编码。
CN2010100018187A 2009-01-09 2010-01-07 运算单元、处理器和编译方法 Expired - Fee Related CN101814014B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-003018 2009-01-09
JP2009003018A JP2010160708A (ja) 2009-01-09 2009-01-09 演算器、プロセッサ、コンパイル処理装置およびコンパイル処理方法

Publications (2)

Publication Number Publication Date
CN101814014A true CN101814014A (zh) 2010-08-25
CN101814014B CN101814014B (zh) 2013-04-03

Family

ID=42319953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010100018187A Expired - Fee Related CN101814014B (zh) 2009-01-09 2010-01-07 运算单元、处理器和编译方法

Country Status (4)

Country Link
US (1) US9223543B2 (zh)
JP (1) JP2010160708A (zh)
KR (1) KR20100082729A (zh)
CN (1) CN101814014B (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0840207A1 (en) * 1996-10-30 1998-05-06 Texas Instruments Incorporated A microprocessor and method of operation thereof
JPH1139282A (ja) * 1997-07-24 1999-02-12 Hitachi Ltd データ処理装置
US5931943A (en) * 1997-10-21 1999-08-03 Advanced Micro Devices, Inc. Floating point NaN comparison
US6292814B1 (en) * 1998-06-26 2001-09-18 Hitachi America, Ltd. Methods and apparatus for implementing a sign function
JP3614065B2 (ja) * 1999-07-27 2005-01-26 株式会社デンソー 符号付き整数乗算装置
JP3940542B2 (ja) 2000-03-13 2007-07-04 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7188133B2 (en) * 2002-06-20 2007-03-06 Matsushita Electric Industrial Co., Ltd. Floating point number storage method and floating point arithmetic device
JP2005031847A (ja) * 2003-07-09 2005-02-03 Sony Corp 整数演算の方法および整数演算プログラム、ならびに整数演算装置
US7461116B2 (en) * 2003-09-17 2008-12-02 Agility Design Solutions Inc. Emulation of a fixed point operation using a corresponding floating point operation
JP2005115410A (ja) * 2003-10-02 2005-04-28 Sony Corp 演算装置
US7290024B2 (en) * 2003-12-18 2007-10-30 Intel Corporation Methods and apparatus for performing mathematical operations using scaled integers
JP2005310051A (ja) * 2004-04-26 2005-11-04 Toshiba Corp デジタル信号処理装置
JP2006154979A (ja) 2004-11-25 2006-06-15 Sony Corp 浮動小数点数演算回路
US8327345B2 (en) * 2008-12-16 2012-12-04 International Business Machines Corporation Computation table for block computation

Also Published As

Publication number Publication date
US20100180268A1 (en) 2010-07-15
JP2010160708A (ja) 2010-07-22
US9223543B2 (en) 2015-12-29
CN101814014B (zh) 2013-04-03
KR20100082729A (ko) 2010-07-19

Similar Documents

Publication Publication Date Title
CN103067022B (zh) 一种整型数据无损压缩方法、解压缩方法及装置
KR101790463B1 (ko) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
JP4801776B2 (ja) データ圧縮
CN1933334B (zh) 从比例二进制编码十进制转换到十进制浮点的系统和方法
JP5265682B2 (ja) デジタルコンテンツの符号化および/または復号
CN1945981B (zh) 从十进制浮点转换到比例二进制编码十进制的系统和方法
CN102368385B (zh) 后向块自适应Golomb-Rice编解码方法及装置
JP2010537245A5 (zh)
CN102047336B (zh) 用于产生或截除或改变包括至少一个报头部分在内的基于帧的比特流格式文件的方法和设备以及相应数据结构
CN111538473B (zh) 一种Posit浮点数处理器
JP2014524045A (ja) サンプルレートスケーラブル可逆オーディオコーディング
KR20200092511A (ko) 심화 신경망 기반의 비-자동회귀 음성 합성 방법 및 시스템
KR102615901B1 (ko) 디지털 오디오 신호에서의 차분 데이터
CN101431335B (zh) 用于调制编码和解码的方法、装置和系统
JPS6376525A (ja) 算術符号化システムにおける確率適応化方法
CN101814014B (zh) 运算单元、处理器和编译方法
CN111274816B (zh) 一种基于神经网络的命名实体识别方法和车机
US9417842B2 (en) Idempotent representation of numbers in extensible languages
KR20040044589A (ko) 다수결 논리를 이용한 rm 부호의 연판정 복호 방법 및그 장치
CN111787325A (zh) 一种熵编码器及其编码方法
JPWO2007108395A1 (ja) 可変長符号の復号装置および復号方法
CN115034163A (zh) 一种支持两种数据格式切换的浮点数乘加计算装置
US9348535B1 (en) Compression format designed for a very fast decompressor
EP2191382B1 (en) System, method, and/or apparatus for digital signal sorting
US20220091820A1 (en) Storage medium and operation device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130403

Termination date: 20140107