WO2001042903A1 - Data processing apparatus and data processing system - Google Patents

Data processing apparatus and data processing system Download PDF

Info

Publication number
WO2001042903A1
WO2001042903A1 PCT/JP1999/006837 JP9906837W WO0142903A1 WO 2001042903 A1 WO2001042903 A1 WO 2001042903A1 JP 9906837 W JP9906837 W JP 9906837W WO 0142903 A1 WO0142903 A1 WO 0142903A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
floating
point
bit length
integer
Prior art date
Application number
PCT/JP1999/006837
Other languages
French (fr)
Japanese (ja)
Inventor
Koji Yamada
Original Assignee
Hitachi, 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 Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to PCT/JP1999/006837 priority Critical patent/WO2001042903A1/en
Publication of WO2001042903A1 publication Critical patent/WO2001042903A1/en

Links

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes

Definitions

  • the present invention relates to a data processing device and a data processing system that support floating point arithmetic.
  • a data processor that supports a data transfer instruction from a memory to a floating-point register, a graphic board that uses the data processor for processing a geometry, a three-dimensional image processing system, or a three-dimensional graphic display It relates to technology that is effective when applied to possible game machines. Background art
  • affine transformation such as rotation and parallel movement of polygon vertex coordinates may be performed using a transformation matrix.
  • the brightness of the vertices of the polygon can be obtained by the inner product of the ray vector and the vertex normal vector.
  • the data processing speed of the data processor that performs the inner product or the product-sum operation is remarkably increased today, but the access speed of the memory remains relatively slow. Even if a cache memory is used, since the amount of data is large, a cache miss always occurs on the way, and it has been clarified by the present inventor that there is a limit to speeding up by itself. Therefore, the present inventor expresses all or a part of the polygon data as an integer, transfers the data from the memory to the floating-point operation unit as integer data, and then converts the data to a floating-point number to perform the inner product operation or the like. We examined the use of multiply-accumulate operations.
  • the inventor focused on the accuracy of data required for drawing.
  • the vertex coordinates of the polygons of the 3D model undergo an affinity transformation corresponding to rotation and translation.
  • the polygons moved by this transformation undergo a perspective transformation for projection onto screen coordinates.
  • the vertices of the perspective transformed figure will indicate the pixel locations on the screen when the figure is actually drawn in the frame buffer. Focusing on the affine transformation, it is generally said that it is preferable to express the vertex coordinates of a polygon with a floating-point number that is less likely to overflow.
  • VGA Video Graphics Taking into account the display accuracy on a screen of the order of SVG A (Super Video Graphics Array) or SVG A
  • each component of the vertex coordinates has a mantissa of a floating-point number conforming to IEEE 754, with a 4-bit mantissa of 23 bits.
  • the present inventor has found that it is not always necessary to represent the value with a byte floating point number, and that a 16-bit integer may be sufficient.
  • the vertex normal data undergoes rotation transformation, and is interpolated with the ray vector to obtain a value related to brightness.
  • the value will ultimately be the intensity of the three primary colors RGB (red, green, blue). It is said that these values are ergonomically enough to have 8 bits each.
  • each of the three primary colors of RGB can represent a full color of 16 777 2 16 ( ⁇ 25 6 * 25 6 * 25 6) colors by 8 bits. Therefore, it has been clarified by the present inventors that each component of the normal vertex vector is almost sufficient with 8 bits.
  • This is a digital signal processor which converts integer format data at high speed in two's complement floating point format, and employs dedicated hardware for performing such conversion.
  • the conversion uses a constant register that specifies the number of integer digits to specify the bit length of the integer data. Therefore, when changing the bit length of the integer data to be processed, an instruction for loading a different value into the constant register must be executed each time.
  • the bit length is The inventor has found that when a large number of different integers are used, the number of executions of the load instruction for the constant register is increased and the overhead may be increased. That is, when the data bit lengths are made different from each other, such as the vertex coordinate data of the polygon and the normal vector data, and the effect of reducing the amount of data is maximized, the setting value of the constant register data is used.
  • the inventors of the present invention have clarified that change processing frequently occurs, the overhead of data processing increases, and the data amount reduction effect may be offset or reduced.
  • An object of the present invention is to provide a method for making the data length even if it is intended to maximize the effect of reducing the amount of data by making the bit length of the data different from the vertex coordinate data of the polygon and the normal vector data.
  • An object of the present invention is to provide a data processing device and a data processing system capable of fully exhibiting the effect of reducing the amount of data without increasing processing overhead.
  • Another object of the present invention is to improve the data processing speed in a data processing system in which the data transfer cost rather than the operation cost determines the overall data processing speed.
  • Still another object of the present invention is to provide a recording medium in which an information processing apparatus stores a program capable of easily realizing a reduction in data capacity for floating-point arithmetic and an increase in efficiency of data processing, and a storage medium storing such a program. It is to provide a transmission medium for transmitting a program.
  • the data processing apparatus in terms of a semiconductor integrated circuit or a semiconductor device such as a microcomputer or a single-chip data processor has a bit length shorter than the bit length of the floating-point register. Can be converted to a floating-point number data and loaded into a floating-point register, and the bit length of the integer data is determined by the bit length information area of the integer data in the instruction indicating the load.
  • the bit length extension processing is performed according to the difference between the bit length of the integer data and the bit length of the mantissa of the floating-point format, and the integer data is floated. It is converted to decimal point data.
  • the data processing device includes: an instruction control means for decoding a fetched instruction to generate a control signal; a floating-point arithmetic circuit, a floating-point register and a conversion means, each of which is controlled by the control signal; Have.
  • the conversion means inputs integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data into floating-point number data in a predetermined floating-point number format.
  • the first processing of outputting the type-converted floating-point number data to the floating-point register is possible.
  • the bit length information of the integer data required for the type conversion is obtained by the instruction control means decoding the bit length information area of the integer data included in the first instruction instructing the first process. is there.
  • the data amount or the data memory capacity can be reduced.
  • the values of the X, Y, and ⁇ coordinates can be represented by 2-byte integers, and each component of the normal vector can be represented by 1-byte integer.
  • the amount of data can be reduced to bytes.
  • the data transfer cost is also reduced. Therefore, in a system where the data transfer cost determines the overall processing speed rather than the calculation cost, the data processing speed is reduced. Can be improved.
  • integer data can be converted to floating-point data by the conversion means and loaded into the floating-point register
  • type of integer data can be converted to floating-point data by one instruction and converted to the floating-point register. can do.
  • a bit length extension process is performed according to a difference between the bit length of the integer data and the bit length of the mantissa of a predetermined floating-point format. Is obtained from the decoded result of the first instruction, such as the above-mentioned spoken instruction. Therefore, even when integer data having different bit lengths are mixed, processing such as the load processing involving the type conversion is performed by one instruction. Can do so. Even if the bit length of the integer data to be processed changes, the extra register access operation is not performed each time the bit length of the integer data to be processed changes as compared with the case where the bit length information of the integer data to be processed is specified in the control register. And data processing efficiency is improved.
  • the conversion means further receives integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data bit number into the floating-point value.
  • a second process of extending the bit length of the decimal point register and outputting the extended integer data to the floating point register may be enabled.
  • the bit length information of the integer data necessary for the bit length extension of the integer data in the second process is a bit length information area of the integer data included in the second instruction instructing the second process.
  • the command control means decodes and obtains it.
  • the floating-point register is an integer. Gives you the freedom to load the data and convert it to floating point data.
  • the conversion means further inputs floating-point data from the floating-point register, and expresses the input floating-point data with a bit length shorter than the bit length of the floating-point register. It may be possible to perform a third process of performing inverse conversion to integer data and outputting the inversely converted integer data. From the result of the instruction control means decoding the bit length information area of the integer data included in the third instruction instructing the third process, the bit length information of the integer data required for the inverse conversion is obtained. obtain. The third process converts the floating-point number data of the floating-point register into integer data to give a degree of freedom to store the data in a memory or the like.
  • the bit length information area includes a second bit length shorter than the first bit length of the floating point register and a third bit length shorter than the second bit length. Either length may be selectively designated.
  • the first bit length is 32 bits
  • the second bit length is 16 bits
  • the third bit length is 8 bits. This is especially useful when mixing data with different bit lengths.
  • the data processing device may be configured as a single-chip data processor further including an integer unit whose operation is controlled by a control signal output from the instruction control means.
  • a cache memory device connected to the integer unit and the floating point register is connected to a single-chip processor. It may be built in.
  • the conversion means is connected to a data bus to which the cache memory device is connected.
  • the floating point number The bit length of the point register is 4 n bytes (where n is a positive integer), and the integer byte is mixed with a bit length of n bytes or 2 n bytes.
  • the conversion means includes the type conversion function.
  • the length of the integer data included in the first instruction such as a load instruction with a length, based on the result of decoding by the data reporter, the first integer data on the data bus and the second integer data next to the first integer data. Then, the first processing may be performed in parallel. The efficiency of the first processing such as the above-described data loading processing involving type conversion is further improved.
  • the system may be configured by connecting the cache memory device to the outside of the single-chip data processor.
  • the data processing device decodes the fetched instruction and generates a floating-point register based on the decoding result.
  • the floating-point operation used is possible.
  • the instruction using the floating-point register includes an operation code field indicating the type of the instruction, a register setting field for specifying a floating-point register used for processing, and a first information field having other information fields.
  • the operation code field indicates that integer data is to be converted to floating-point data in a predetermined floating-point format and stored in a floating-point register.
  • the register setting field indicates the type of the floating-point register storing the converted floating-point number.
  • Part of the other information field indicates the location of the integer data to be converted to floating point data.
  • Another part of the other information field is an integer represented by a bit length shorter than the bit length of the floating-point register. Indicates the bit length information of the data.
  • the amount of data or data memory to be read as a floating-point operation processing object can be reduced, and in addition, the data transfer can be performed by reducing the data amount. Since the cost is also reduced, the data processing speed can be improved in a system where the overall processing speed is determined by the data transfer cost rather than the computational cost.
  • integer data can be converted to floating-point data by one instruction and loaded into the floating-point register, and when integer data having different bit lengths are mixed, the same type conversion can be performed with one instruction.
  • the data load process can be performed with data, and the data processing efficiency is improved.
  • the bit length information of the integer data may selectively indicate 8 bits or 16 bits. This is particularly useful when mixing data with different bit lengths.
  • the instruction using the floating-point register may include a second instruction.
  • the second instruction has an operation code field indicating the type of the instruction, a register setting field for specifying a floating-point register used for processing, and other information fields.
  • the operation code field indicates that the integer data is to be extended in bit length and stored in the floating-point register.
  • the register setting field indicates the type of the floating-point register storing the converted floating-point data.
  • Part of the other information field indicates the location of the integer data to be converted to floating-point data.
  • Another part of the other information field indicates the bit length information of the integer data represented by a bit length shorter than the bit length of the floating point register. According to this, after fetching integer data in floating point register Gives the freedom to convert to floating point data.
  • the present invention from the viewpoint of a data processing system such as a graphic board or a three-dimensional image processing system is connected to a first data processing device such as a data processor and the data processing device. And a second data processing device such as the Ixellale.
  • the data processor decodes the fetched instruction, performs integer arithmetic and floating-point arithmetic based on the decoded result, and decodes the fetched instruction to generate a control signal.
  • Instruction control means an integer unit, It has a floating-point arithmetic circuit, a floating-point register, and conversion means.
  • the conversion means inputs an integer value represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data to floating-point number data in a predetermined floating-point format.
  • the first process of performing type conversion and outputting the type-converted floating-point number data to the floating-point register is possible.
  • the type conversion the bit length information of the integer data necessary for the bit length extension according to the difference between the bit length of the integer data and the bit length of the mantissa of the floating point format is obtained by performing the first processing.
  • the instruction control means decodes the bit length information error of the integer data included in the specified instruction.
  • the accelerator can input a result of the floating-point operation by the data processor and perform data processing.
  • the data processing system of the above viewpoint can also reduce the amount of data to be read or the amount of data memory to be read as a target of floating-point arithmetic processing, and also reduce data transfer costs by reducing the amount of data. Therefore, in a system where the overall processing speed is determined by the data transfer cost rather than the operation cost, the data processing speed can be improved.
  • integer data can be converted to floating-point data by one instruction and loaded into the floating-point register, and integer data with different bit lengths can be mixed.
  • the data loading process involving the type conversion can be performed with one instruction, and the data processing efficiency is further improved.
  • a main memory shared by the data processor and the accelerator may be provided.
  • a cache memory capable of holding a part of the storage information held by the main memory may be incorporated in the processor.
  • the integer data may be vertex coordinate data for approximating a three-dimensional shape and polygon data including vertex normal data.
  • the vertex coordinate data of the polygon data has a 16-bit length for each component
  • the vertex normal data has an 8-bit length for each component. May be.
  • the bit length information of the integer data may selectively indicate an 8-bit length or a 16-bit length.
  • the data processing system handles polygon data in which integer data having different bit lengths coexist, and can perform processing such as loading with the type conversion with one instruction, and has a high data processing efficiency.
  • the data processor may perform a geometry operation using the polygon data, and the data processing may perform a process of drawing the data obtained by the geometry operation in a frame buffer.
  • a data processing system includes a central processing unit, a floating-point unit, a memory connected to the central processing unit and the floating-point unit, And
  • the floating-point unit has a floating-point register, a floating-point arithmetic circuit, and conversion means.
  • the converting means inputs the integer data represented by a bit length shorter than the bit length of the floating-point register into the memory, and converts the input integer data into a floating-point number in a predetermined floating-point number format. Decimal point data
  • the first processing is possible in which the type conversion is performed in the evening and the type-converted floating-point number data is output toward the floating-point register.
  • the bit length information of the integer data required for the type conversion is obtained from the value of the bit length information error of the integer data included in the predetermined instruction instructing the first process.
  • the accelerator is capable of performing data processing by inputting a floating-point calculation result obtained by the floating-point unit.
  • the data processing system of the above viewpoint can also reduce the amount of data to be read or the amount of data memory to be read as a floating-point operation target, and also reduce the data transfer cost by reducing the amount of data.
  • Data processing speed can be improved in a system where the overall transfer speed is determined by the overnight transfer cost rather than the cost.
  • integer data can be type-converted to floating-point number data and loaded into a floating-point register with one instruction.If integer data with different bit lengths are mixed, the type conversion can be performed with one instruction. The load processing can be performed, and the data processing efficiency is further improved.
  • the invention from the viewpoint of providing a program for realizing the function of converting the type to the floating-point number conversion is a recording medium for the program and a transmission medium for the program.
  • the recording medium of the program is a medium such as a CD-ROM for statically recording the program.
  • the transmission medium is a communication medium for dynamically transmitting or distributing the program electronically, electromagnetically, or optically through a network connected by a wired line or a wireless line.
  • the recording medium stores a program for causing the information processing device to realize a data processing function by floating-point arithmetic.
  • the program converts integer data represented by a bit length shorter than a bit length of a floating-point register inside the information processing device into floating-point data in a predetermined format. It is possible to realize a first process of performing type conversion and loading the data in the floating-point register.
  • the bit length information of the integer data required for the type conversion is obtained from a bit length information register held by a first instruction instructing the first process.
  • the information processing device can install the program via the recording medium, or can execute the program directly from the recording medium. Therefore, the information processing device can easily realize a reduction in the data capacity for the floating-point operation and an increase in the efficiency of the data processing.
  • the transmission medium transmits a program for causing the information processing device to realize a data processing function by floating-point arithmetic.
  • the program converts the integer data represented by a bit length shorter than the bit length of a floating-point register inside the information processing device into a floating-point number data of a predetermined format, and It is possible to implement the first process to load the floating point register.
  • the bit length information of the integer data required for the type conversion is obtained from a bit length information error held by a first instruction instructing the first process.
  • the information processing device can easily acquire the program on the network via the transmission medium. Therefore, the transmission medium enables the information processing device to easily realize a reduction in the data capacity for the floating-point operation and an increase in the efficiency of the data processing.
  • FIG. 1 is a block diagram of a single-chip data processor which is an example of a data processing device according to the present invention.
  • FIG. 2 is a block diagram showing an example of a conversion circuit and an alignment / extension circuit included in the data processor.
  • FIG. 4 is an instruction format diagram illustrating SW 2 S @Rm, FR n ".
  • FIG. 4 is a description illustrating a data flow when the floating-point load instruction" FMOV.
  • SW2 S @R 1, FR 4 " is executed.
  • FIG. 5 is a block diagram of a single-chip processor which is another example of the data processing device according to the present invention.
  • FIG. 6 is a block diagram of a graphic chip which is still another example of the data processing device according to the present invention.
  • FIG. 7 is a block diagram showing an example of a graphics system using the data processor of FIG.
  • FIG. 8 is an explanatory diagram exemplifying a three-dimensional model based on polygon data.
  • FIG. 9 is an explanatory diagram showing the data structure of a polygon string in C language notation.
  • FIG. 10 is a flowchart showing an example of the geometry operation processing using the data processor.
  • FIG. 11 is a flowchart illustrating a processing procedure that requires a change in the setting of the control register in order to switch the size of the data to be changed from the viewpoint of comparison with the processing in FIG.
  • FIG. 12 is a block diagram showing an example of an information processing apparatus employing the data processor of FIG. 1 and an information processing network including the same.
  • FIG. 1 shows a single-chip data processor (hereinafter also simply referred to as a data processor) which is an example of a data processing apparatus according to the present invention.
  • the data processor 1 shown in the figure is not particularly limited, it has a 32-bit reduced instruction set computer (RISC) architecture. And its instruction set includes 16-bit fixed-length floating-point instructions. The example described here is effective for controlling embedded devices that need to support 3D graphics, such as game consoles.
  • the data processor 1 includes an instruction control circuit 2, an integer unit 3, a floating-point unit 4, an instruction cache 5, and a data cache 6.
  • the instruction control circuit 2 is connected to an instruction cache unit 5 via an instruction address bus 8 and an instruction bus 9.
  • the integer unit 3 and the floating point unit 4 are connected to the data cache unit 6 via the data bus 10. Addressing for data access via data bus 10 is exclusively performed by integer unit 3, and address bus 11 is converted from integer unit 3 to data cache unit 6. It is connected.
  • the instruction control circuit 2 fetches an instruction from the instruction cache 5 in accordance with the execution order of the program, decodes the instruction, generates a control signal, and controls the operations of the integer unit 3 and the floating-point unit 4, etc. I do.
  • the execution order of the programs is determined based on a value of a program counter (not shown) or an interrupt request.
  • the instruction address is supplied from the instruction address bus 7 to the instruction cache 5, and the instruction of the instruction address is supplied from the instruction cache 5 to the instruction control circuit 2 via the instruction bus 8.
  • the integer unit 3 has an integer operation circuit 30, a general-purpose register file 31, and an alignment and extension circuit 32.
  • the integer operation circuit 30 includes an arithmetic logic unit, an arithmetic unit, a shifter, and the like, and enables arithmetic operation, logical operation, and address operation of integer data.
  • the general-purpose registry file 32 is not particularly limited, it has a plurality of 32-bit general-purpose registry files, and has a byte (8 bytes). It is used as a bit register, word register (16 bits), and long word (32 bits).
  • the data bus 10 is 64 bits, though not particularly limited.
  • the alignment / expansion circuit 32 has an aligner function for matching the bit positions of the data transmitted to the data bus having a width of 64 bits and the general-purpose register according to the data size and the like, and sign extension or logic of the data. Value "0" Has an extended function to extend. Note that a circuit configuration combining all or part of the functions of the integer unit 3 and the instruction control circuit 2 may be regarded as a so-called CPU.
  • the floating point unit 4 includes a floating point arithmetic circuit 40, a floating point register file 41, and a conversion circuit 42.
  • the floating-point arithmetic circuit 40 includes a multiplier, an adder, a normalizer, and the like that enable a product-sum operation of floating-point number data.
  • the floating-point register file 41 has a plurality of 32-bit floating-point registers.
  • the floating-point register is used for the source data register and the destination register in floating-point operations.
  • the floating point register is connected to the data bus 10 via the conversion circuit 42.
  • Each floating-point register is 32 bits, and one floating-point register is used for each single-precision floating-point data. Two floating-point registers are assigned to double-precision floating-point data in pairs.
  • the conversion circuit 42 has an aligner function for matching the bit positions of the data transmitted to the data bus 10 having a width of 64 bits and the floating-point register according to the data size, etc. It has an extension function for sign extension or logical value "0" extension, a type conversion function for converting integer data to floating-point number data, and an inverse type conversion function for performing the reverse conversion. Details of those functions will be described later.
  • the data cache 6 and the instruction cache 5 are: Each is provided with a cache controller and a cache memory (not shown).
  • the instruction cache unit 5 and the data cache unit 6 are connected to a bus controller 12 via a cache bus 11 including a data signal and a control signal.
  • An instruction address for external access due to a cache miss or the like in the instruction cache unit 5 is given to the bus controller 12.
  • a data address for external access caused by a cache miss in the data cache 6 is given to the path controller 12.
  • the bus controller 12 starts an external bus cycle to access an external memory (not shown) connected to the bus interface buffer 13 via the external bus 14 in accordance with the instruction address or the data address. Control.
  • a peripheral circuit 15 such as an image controller or a serial communication interface controller is connected to the bus controller 12 via a peripheral bus 16.
  • the data processor 1 shown in FIG. 1 is formed on one semiconductor substrate (semiconductor chip) such as single crystal silicon.
  • the instruction set of the data processor 1 is roughly divided into fixed-point transfer instructions, arithmetic operation instructions, logical operation instructions, branch instructions, system control instructions, floating-point instructions, and the like.
  • integer unit 3 is responsible for all addressing functions for overnight access and instruction fetching. Therefore, if the decoded instruction is a floating-point instruction (an instruction that needs to operate a floating-point unit), the instruction control circuit 2 stores the source or destination data in the integer unit 3.
  • the floating point unit 4 instructs an addressing operation or the like for accessing the data.
  • the nighttime processor 1B may be configured without the nighttime cache unit 6.
  • the cache unit 17 may be used outside the processor 1B.
  • FIG. 2 shows an example of the conversion circuit 42 and the alignment / expansion circuit 32.
  • the data input / output port of the data cache unit 6 is 64 bits, and a data access of 64 bits appears on the path 10 in the data access.
  • the alignment and extension circuit 32 includes an aligner 33 and an extension circuit 34.
  • the conversion circuit 42 has an aligner 43, a type conversion / inversion conversion circuit 44, and an extension circuit 45.
  • the circuit connection state in FIG. 2 is shown assuming that data is loaded from the data cache 6 to the general-purpose register file 31 and the floating-point register file 41. The connection state in the data transfer direction where the value of the floating-point register is stored in the cache unit 6 is not shown.
  • the extension circuit 34 receiving the 32 bits performs zero extension (logical value “0” extension) of the least significant one byte or the least significant two bytes of the input 32 bits to 32 bits. , Or sign extension.
  • the aligner 33 When restoring data from the general-purpose registry file 31 to the data cache memory 6, although not shown in FIG. 2, the aligner 33 receives the output of the general-purpose registry Register 1 or 2, or 4 bytes in the 32-bit data supplied from the register file 31 are shifted to the corresponding least significant bit field in the 64-bit output. At this time, the extension circuit receives the 64 bits, and zero-extends, or sign-extends, one, two, or four bytes of the input 64 bits to the data bus 10. Output.
  • the aligner 43 When loading data from the data cache memory 6 to the floating-point register file 41, the aligner 43 sets one byte out of the 64 bits input from the data bus 10 and 2 knots. , Or 4 bytes are shifted to the corresponding least significant bit field of the upper 32 bits or lower 32 bits of the output 64 bits.
  • the type conversion 'reverse conversion circuit 44 receiving the 64 bits is composed of the least significant one byte or the least significant two bytes of the upper 32 bits and lower 32 bits of the input 64 bits.
  • the upper and lower two integer data can be converted to single-precision floating-point data in parallel.
  • the extension circuit 45 is operated in place of the operation of the type conversion / inversion conversion circuit 44, and the least significant one byte or the least significant 32 bits of the input 64 bits and the lower 32 bits of the integer data is operated.
  • the upper two bytes from the bottom are extended (Zero extension of logical value "0") or sign extended, and transferred to the floating-point register file 41 as integer data.
  • the type conversion / inverse conversion circuit 4 4 When restoring data from the floating-point register file 4 1 to the data cache memory 6, although not particularly shown in FIG. 2, the type conversion / inverse conversion circuit 4 4 It converts the 4-bit upper 32-bit floating-point data and the lower 32-bit floating-point data to 1-byte or 2-byte integer data, respectively. Alternatively, it converts the input 64 bit double precision floating point number into a 32 bit integer number. The converted integer data is input to the aligner as a 64-bit data, and is placed at the lower side of the corresponding upper 32 bit and lower 32 bit bit fields, respectively. Output to cache unit 6. The operations of the conversion circuit 42 and the alignment 'extension circuit 32 are transmitted to the instruction control circuit 2. Is controlled according to the result of the instruction decoding.
  • FIG. 3 exemplifies "FM 0 V. SW 2 S @Rm, FRn" as a floating-point load instruction of the processor 1.
  • the floating-point load instruction shown in the figure gives the 2-byte integer data from the cache memory of the data cache 6 to the conversion circuit 42, which converts it to single-precision floating-point data. This instruction instructs a process to load the data into a single-precision floating-point register.
  • 50 is a main opcode (main operation code) field
  • 51 is an addressing mode field
  • 52 is a main operation code field.
  • 53 is a reserve field
  • 54 is a source operand size field
  • 55 is a base register setting field
  • 56 is a destination register setting field
  • 57 is a field designated as a destination registry evening.
  • the main opcode field 50 is assigned a main opcode f1 oad indicating a floating-point load
  • the addressing mode field 51 is assigned an addressing mode ri indicating a register address indirect.
  • the subopcode field 52 is assigned the subopcode i2f, which indicates a conversion from a signed integer to a single-precision floating-point number, and the reserved field 53 is set to the zero field.
  • a logical value "0" is assigned, a size w indicating two bytes (wo rd) is assigned to the source operand size designation field 54, and the base register evening designation field is a general-purpose register serving as a base register evening.
  • the base register evening number m is assigned to indicate the evening number, and the destination register evening size is set in the destination register evening size field. Size s of several points cashier scan evening is assigned, the destination register evening fee Field is assigned a destination register number n.
  • FIG. 4 illustrates a data flow when the floating-point load instruction “FMOV. SW2 S @R 1, FR 4” is executed.
  • the 2-byte integer 0x0003 stored at address 0x0104 (Ox means hexadecimal) is loaded into floating-point register 4 (FR4).
  • the instruction to be executed is "FMOV. SW 2 S @R 1, FR4" as an example.
  • the contents of the general-purpose register 1 (R1) are the address Ox0104 of the source operand.
  • Address 0x0100 stores a 2-byte integer 0x0001, address 0x0102 stores 0x0002, and address 0x0106 stores 0x0004.
  • the aligner 43 controls the alignment of the 8-byte data read from the data cache unit 6 with the value of the least significant bit 4 of the address 0 X 0 1 X4. (32 bits) is set as the offset for 8 bytes of input data (offset 4), the access size 2 (16 bits) specified by the instruction is set as the size (size 2), and the output is 64 bits. As the output position finger bit indicating whether to shift to the upper 32 bits or the lower 32 bits, 0, which is the value of the least significant bit of register number 4 of the destination register (FR4), is taken as an up-narrow. / 1 0 w 0) is input.
  • the data type conversion / inversion circuit 44 converts the 8-byte output of the aligner 43 and the conversion method from a signed 2-byte integer to a 32-bit single-precision floating-point number.
  • a meaningful control signal is input from the instruction control circuit 2, and two 2 bytes based on the least significant bit of the upper 4 bytes and the lower 4 bytes of the input 8 bytes 0 X 0 0 3 , 0x00004 as two signed 2-byte integers, each of which is converted to a 32-bit single-precision floating-point number 0x404040000, 0x4080000 And outputs 8 bytes, two 32 bit single precision floating point numbers.
  • the upper 4 bytes of the 8 bytes output by the type conversion / inversion circuit 44 are 0x4 04 0 0 0 0 0 is the single precision floating point register 4 in the floating point register file. No. (FR4).
  • the 2-byte integer 0 X 0 0 0 3 at address 0 x 0 104 is converted to 32-bit single-precision floating-point data 0 x 4 04 0 0 0 0 0 0 0 (3.0). Is written to FR4.
  • the third step a known method is used for converting the integer data into floating-point number data, and this may be reflected in the conversion algorithm or conversion logic of the type conversion / inversion conversion circuit.
  • the sign of integer data is the sign (S) of floating-point data.
  • the size information of the integer data is
  • the instruction control circuit 2 decodes and obtains the instruction size specification field.
  • a known method may be adopted as a method of converting floating-point data into integer data in the type conversion / inversion conversion circuit 44.
  • the number of digits of the integer data is obtained from the result of decoding the information indicating the bit length of the integer data included in the instruction.
  • the processing when the data loading processing without conversion to the floating-point number is designated is as follows.
  • a code indicating that the type of the data code is a load from integer data to integer data is set in the sub code field 52 in the instruction code of FIG.
  • the processing of the first and second steps is the same as that of the instruction code of FIG.
  • the processing of the step is the processing by the extension circuit 45. That is, the data extension circuit 45 performs sign extension of, for example, the 8-byte data 0 X 000 1 000 2, 0 x 003 0004, which is the output of the aligner 43 in FIG.
  • a control signal is input, meaning that the lower 4 bytes of the upper 4 bytes and the lower 4 bytes of the lower 8 bytes of the input 8 bytes are 0 x 00 03 and 0 x 00 04 Are two signed 2-byte integers, each of which is sign-extended to 32 bits, and outputs integer data 0 x 000 0 0 00 3 and 0 x 000 0004. Then, as a fourth step, finally, the upper 4 bytes of the 8 bytes output by the extension circuit 45 0 X 0 000 0000 3 are transferred to the single-precision floating-point register 4 (FR 4) in the floating-point register file. It is written, and the integer data of the floating-point register number 4 (FR 4) is converted to floating-point number data later by software processing or the like.
  • the parallel processing of the data loading with conversion can be specified. That is, in the fourth step described in the data flow of FIG. 4, finally, the upper 4 bytes 0 x 4040 00 00 of the 8 bytes output by the type conversion / inversion circuit 44 are the floating-point register file 4 1 In the single-precision floating-point register number 4 (FR 4), and the lower 4 bytes 0 X 4 08 0 0000 are in the single-precision floating-point register number 4 (FR 5). Is written to
  • Another addressing mode that the floating-point load instruction can take is not limited to the above-mentioned register indirect mode, but basically the CPU's addressing mode in the data processor 1 can be freely used.
  • the effective address is the value obtained by adding the values of the two general-purpose registers. Index indirect register indexing, post-registration register indirect mode in which the value of the general-purpose register is sequentially incremented by a predetermined value, or immediate mode in which the address is specified by an immediate value. It is possible.
  • FIG. 6 shows a graphic chip which is another example of the data processing apparatus according to the present invention.
  • the graphic chip 1C shown in the figure is composed of a processor chip 20, a program memory 21, a renderer 22, a display controller 23, a memory controller 24, a data memory 25, and a processor unit 20 in one semiconductor chip. And an external interface controller 26.
  • the renderer 22 and the display controller 24 can be positioned as an accelerator unit for reducing the load on the processor unit 20.
  • the processor unit 20 includes the instruction control circuit 2, the integer unit 3, and the floating-point unit 4 of FIG. 1, and is stored in the program memory 21 constituted by an electrically rewritable flash memory or the like.
  • the host control and the geometry operation control using floating point data are performed according to the installed program.
  • the renderer 122 controls the image buffer rendering for the frame buffer.
  • the display controller 23 controls the display of the image data drawn in the frame buffer.
  • the memory controller 24 arbitrates data memory access requests from the processor unit 20, the renderer 22, and the display controller 23, and has a memory access right to the data memory 25 and a memory access interface. Control.
  • the data memory 25 is an embedded memory composed of, for example, a synchronous DRAM, and is used as a frame buffer memory, a texture memory, a work memory, or the like.
  • One The evening bus 10 and the data address bus 11 can be connected to the outside of the graphic chip 1C via an external interface controller 26.
  • FIG. 7 illustrates a graphics system configured using the data processor 1 illustrated in FIG.
  • the main processor 60 is connected to the data processor 1, the main memory 61, a three-dimensional graphics (3DG) renderer 62, and a peripheral controller 63.
  • the main memory 61 is used as a memory for storing data and programs required for graphics processing.
  • the data processor 1 controls the geometry operation using floating point data.
  • the polygon data of the three-dimensional model is stored in the main memory 61 in units of, for example, 8-bit, 16-bit, and 32-bit integer data.
  • the data processor 1 supports the instruction shown in FIG. 3 as an instruction for loading the integer data into the floating-point register, and converts the integer data into floating-point data by the conversion circuit 42.
  • the DG renderer 6 2 receives the result of the geometry operation from the data processor 1 and draws the display data to the frame buffer memory 70, and reads the data again in synchronization with the display timing. It also has a display control function for converting the video coder 71 into a video signal.
  • the 3D renderer-62 can be positioned as an excel to reduce the load on the data processor 1 or to improve the processing speed.
  • the peripheral controller 63 controls peripheral circuits such as a audio processor 73, a DVD-ROM driver 74, and a modem 75 connected via a peripheral bus 72 based on instructions from the processor 1. Control. External control information is input to the peripheral controller 63 via the input port. Aude The audio processor 73 controls the audio synthesis processing using the audio data stored in the sound memory 76, and converts the digital audio signal into an analog signal using the digital / analog converter (DAC) 77. Convert and output to speaker etc.
  • a DVD-ROM disk device (not shown) is connected to the DVD-ROM driver 74, and a telephone line or the like is connected to the modem 75.
  • the data processor 1 operates on polygon data that approximates a three-dimensional shape, and performs geometry operations such as affine transformation and perspective transformation for dynamically changing and displaying the three-dimensional shape.
  • the calculation result is drawn in the frame buffer memory.
  • Fig. 8 shows an example of a 3D graphics model.
  • This model data has a data format in which a three-dimensional object is approximated by a large number of polygons.
  • (1) to (16) indicate the coordinate points of the polygon, and
  • STRIP 80 is a generic term for the polygon row.
  • Fig. 9 shows the data structure of the polygon sequence in C language notation.
  • vx, vy, and vz are the vertex coordinates of the polygon
  • nx, ny, and nx are the vertex normal vectors of the polygon
  • a RGB is the reflectance of the surface and the intensity of the three primary colors RGB
  • u is data indicating the base coordinates of the texture data. These data exist for each coordinate point.
  • the vertex coordinate data of the polygon and the base coordinates of the texture pattern are 16-bit integer data for each component.
  • the vertex normal vector of the polygon is 8-bit integer data for each component.
  • the intensity of RGB is 8-bit integer data for each component. Is done.
  • FIG. 10 is a flowchart showing an example of the geometry calculation processing using the data processor 1.
  • a vertex coordinate data load S1 a coordinate transformation and a corresponding transformation S2, a normal vector load S3, a color calculation S4, and a drawing information output S5 are provided. Processing is performed.
  • Vertex coordinate load processing S1 loads the vertex coordinate data into the floating-point register using the load instruction with the function of converting the integer data to the floating-point number described in FIG.
  • the integer vertex coordinate data is 16 bits for each component, and the bit length information is obtained from the decoding result for the field 54 of the load instruction. Therefore, if at least one instruction is executed, floating point data of one component of the coordinate point can be obtained in the floating point register.
  • the coordinates on the screen (plane) and the depth in the three-dimensional space are obtained by calculating the floating-point data of the loaded coordinate points and the coordinate transformation matrix.
  • step S3 the normal vector is loaded into the floating-point register using the load instruction with the function of converting integer data to a floating-point number described in FIG.
  • the component data of the integer normal vector is 8 bits, and the bit length information is obtained from the result of decoding the field 54 of the load instruction. Even if the bit length of the integer data changes, no special processing is required to set the change of the bit length of the integer data to be loaded in the register or the like. Therefore, by executing at least one instruction, the floating-point data of one component of the normal vector can be obtained in the floating-point register.
  • the vector of the vertex normal is The brightness of the vertices is calculated from the inner product of the converted data and the ray vector, and the color information is added to it.
  • each of the obtained screen coordinates, depth, brightness in consideration of color, and texture coordinates is output to a memory or a renderer.
  • FIG. 11 shows a comparative example with the 10th processing.
  • This processing example uses a system or a data processor that obtains the bit length of integer data from the register setting value when converting from integer data to floating point data. It is an example. Therefore, before the vertex coordinate load processing S1, the conversion data size is 16 bits (2 bytes). The processing for executing the load instruction for setting the conversion data size register to the conversion data size (2 bytes) ( S a) must be added. In the normal vector loading process, the size of the component data is 8 bits (1 byte). Therefore, before the process, a load instruction that changes the setting value of the post-conversion data size register is executed. Must be left (S b). Compared to the processing in Fig. 10, at least two more times must be performed for each operation on one polygon vertex.
  • FIG. 12 shows an example of an information processing device (also called a computer device) employing the data processor 1 of FIG. 1 and an example of an information processing network including the same.
  • an information processing device also called a computer device
  • FIG. 12 shows an example of an information processing device (also called a computer device) employing the data processor 1 of FIG. 1 and an example of an information processing network including the same.
  • the information processing network shown in Fig. 12 is a system such as a LAN (local area network), a WAN (wide area network) such as the Internet, and a wireless communication network.
  • What is indicated by 94 means a transmission medium such as an optical fiber, an ISDN line, or a wireless line in the system.
  • a host computer 93, a roux or evening Evening terminals 90, 91, and 92, which are typically shown via communication adapters 95, 96, and 97, are connected.
  • the terminal controller 90 includes, but is not limited to, the data processor (MPU) 1 and the external bus 14 includes a display controller (DIS PC) 103, a network controller (NETC) 104, and D A RAM 105 is connected, and a floppy disk controller (FDC) 100, a keyboard controller (KEYC) 101, and an integrated device are connected to the peripheral circuit 15 of the processor 1.
  • DIS PC display controller
  • NETC network controller
  • FDC floppy disk controller
  • KYC keyboard controller
  • I DEC floppy disk controller
  • I DEC keyboard controller
  • the DISPC 103 controls drawing on the video RAM (VRAM) 111, and displays the drawn display data on the display (DISP) 110.
  • the NETC 104 is connected to the communication adapter 95, and performs buffering of transmission / reception information and communication protocol control.
  • the DRAM 105 is used for a program area and a work area of the data processor 1.
  • a floppy disk drive 106 is connected to the FDC 100 to read information from and write information to a floppy disk 120 as an example of a recording medium.
  • the keyboard 107 is connected to the KE YC 101.
  • a hard disk drive (HDD) 108 and a CD-ROM drive (CD RD) 109 are connected to the IDEC 102.
  • the HDD 108 has a magnetic disk, which is another example of the recording medium.
  • CDRD 109 has a further example of a recording medium, CD-ROM 121.
  • the other terminal combination devices 91 and 92 have the same configuration as described above.
  • a program for the processing is executed by, for example, a user. Installed from the floppy disk 120 or CD-ROM 122 to the hard disk drive 108. At this time, the program is recorded in advance on the floppy disk 120 or the CD-ROM 122. In some cases, the set-up of the terminal viewing device may provide the program preinstalled on the hard disk drive.
  • the data processor 1 loads the program into the DRAM 105 and fetches and executes instructions from the DRAM 105 sequentially. It is also possible to take out part of the program stored in the CD-ROM 121 directly from the CD-ROM and execute it.
  • the terminal computer device 90 is connected to the floppy disk 1
  • the program can be installed via the device 20 or the like, or the program can be executed directly from the hard disk drive device 108 or the like. Therefore, the terminal computer device 90 can easily realize the reduction of the data capacity for the floating-point operation and the efficiency of the data processing as described above.
  • the terminal combination device 90 can download the program from the host combination device 93. That is, the host convenience device 93 has the compressed program in a hard disk device or the like, for example. After the terminal computer 90 establishes communication with the host computer 93, the terminal computer 90 specifies the program and instructs download, whereby the program is transmitted to the transmission medium 94. Then, it is downloaded to the hard disk drive device 108 of the terminal computer device 90. The downloaded program is then decompressed and installed in a predetermined program storage area. As a result, the terminal computer 90 performs a three-dimensional graphics process using the load instruction FMOV. Noh is realized.
  • the terminal computer 90 can easily acquire the program on the network via the transmission medium 94, the transmission medium 94 is provided to the terminal computer 90. This is useful for easily realizing the reduction of the data capacity for the above-mentioned floating-point operation and the efficiency of the data processing.
  • Data processors 1, 1B and graphics chip 1C can convert integer data with a bit length shorter than that of the floating-point register into floating-point data and load it into the floating-point register. Therefore, the data amount or the data memory capacity can be reduced as compared with the case where data having the same bit length as that of the floating-point register is input. In addition, if the amount of data is reduced, the data transfer cost is also reduced, so the data processing speed is improved in a system where the data transfer cost determines the overall processing speed rather than the calculation cost. Can be done.
  • the integer data can be converted to floating-point data by the conversion circuit 42 and loaded into the floating-point register, the integer data can be converted to floating-point data and loaded into the floating-point register with one instruction. be able to.
  • a bit length extension process is performed according to the difference between the bit length of the integer data and the bit length of the mantissa of a predetermined floating-point format. With the conversion function described above, Since it is obtained from the decoded result of the load instruction, even when integer data having different bit lengths are mixed, processing such as the load processing involving the type conversion can be performed by one instruction. Controlling the bit length information of the integer data to be processed.Even if the bit length of the integer data to be processed changes as compared to the case where the register length is specified, unnecessary register access operation is not performed each time. Also, data processing efficiency is improved.
  • the conversion circuit 42 can support a load instruction without a conversion function, so there is a degree of freedom to load integer data into the floating-point register and then convert it to floating-point data. .
  • the conversion circuit supports the function of inverting the floating-point number data of the floating-point register to an integer register having a shorter bit length and storing it in the memory.
  • the degree of freedom in data processing such as conversion can be obtained.
  • a storage medium storing a program that can easily reduce the data capacity for floating-point arithmetic and increase the efficiency of data processing for an information processing device, and transmission for transmitting such a program Media can be provided.
  • bit length of integer data and the bit length of floating-point data are not limited to the above description.
  • the bit length of the floating-point register is 4 n bytes
  • the integer data is a bit length of n bytes or 2 n bytes
  • the bit width of the data bus is 8 n bytes.
  • the cache memory device may be capable of outputting a plurality of continuous integer data in a range of 8 n bytes to the data bus in parallel. n can be adapted as 8 bits or 16 bits.
  • the configuration of the built-in module and bus of the data processor is not limited to the configuration of the data processor and the graphic chip. If it is a data processor that supports virtual memory, an address conversion buffer or a memory management unit may be incorporated.
  • the recording medium for the program may be a medium for statically recording the program, and may be a non-volatile memory card, a DVD (digital video / disk), M0 (magnet optical), or the like.
  • the transmission medium may be any communication medium for electronically, electromagnetically or optically distributing or distributing a program through a network connected by a wired line or a wireless line. Industrial availability
  • the present invention is not limited to graphics but can also be applied to file operations in voice recognition, voice synthesis, and the like.
  • INDUSTRIAL APPLICABILITY The present invention can be widely applied to a signal processing device, a data processing system that performs signal processing, and an information processing network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

A data processor (1) executes a specific load instruction, and a converter circuit (42) converts integer data, whose bit length is shorter than the bit length of a floating-point register, into the floating-point data, which is loaded into the floating-point register. The bit length of the integer data is specified in an integer data bit length information area of the specific load instruction. In accordance with the results decoded by an instruction control circuit (2), the conversion circuit (42) expands the bit length depending on the difference in bit length between the integer data and the mantissa of the floating-point format and converts the integer data into the floating-point data. Since there is no need for referring to the register setting to obtain the bit length information on integer data required for such conversion, a single instruction is sufficient to load data involving the conversion even in the case of conversion of data of different bit lengths. The access to the register each time the bit length of integer data changes is thus eliminated, increasing data processing efficiency.

Description

明 細 書 デ一夕処理装置及びデータ処理システム 技術分野  Description Data processing system and data processing system
本発明は、浮動小数点演算をサポートするデータ処理装置やデータ処 理システムに関する。例えばメモリから浮動小数点レジス夕へのデータ 転送命令をサポートするデータプロセッサ、 更には、 前記データプロセ ッサをジオメ トリ演算処理などに利用するグラフィ ヅクボード、 3次元 画像処理システム、或いは 3次元グラフィ ックス表示可能なゲーム機等 に適用して有効な技術に関する。 背景技術  The present invention relates to a data processing device and a data processing system that support floating point arithmetic. For example, a data processor that supports a data transfer instruction from a memory to a floating-point register, a graphic board that uses the data processor for processing a geometry, a three-dimensional image processing system, or a three-dimensional graphic display It relates to technology that is effective when applied to possible game machines. Background art
3次元グラフィ ックス等では、 図形の回転、 拡大、 縮小、 透視投影及 び平行移動などに 4 X 4の変換行列を用いた行列演算を多用し、また、 受光面の明るさ等を決定するのに内積演算を利用する。例えば、 3次元 形状を近似するポリゴンデ一夕によって 3次元モデルを表現するには、 一般に、 ポリゴンの頂点座標データ、 ポリゴンの頂点法線データ (頂点 法線べク トル)等をポリゴンの配列にしたがって用意することになる。  In 3D graphics, etc., matrix operations using a 4 × 4 transformation matrix are frequently used for rotation, enlargement, reduction, perspective projection, and translation of figures, and the brightness of the light receiving surface is determined. Uses inner product operation. For example, in order to represent a 3D model using a polygonal model that approximates a 3D shape, generally, the vertex coordinate data of a polygon, the vertex normal data of a polygon (vertex normal vector), etc. are expressed according to the polygon array. Will be prepared.
3次元モデルの動き等に対しては変換行列を用いてポリゴン頂点座標 の回転移動及び並行移動等のァフィン変換を行えばよい。前記ポリゴン の頂点の明るさは光線べク トルと頂点法線べク トルとの内積によって 得ることができる。 For the movement of the three-dimensional model, affine transformation such as rotation and parallel movement of polygon vertex coordinates may be performed using a transformation matrix. The brightness of the vertices of the polygon can be obtained by the inner product of the ray vector and the vertex normal vector.
そのような行列演算や内積演算には積和演算の繰返しが必要になる。 また、 3次元グラフィ ックスで取り扱うデータとして、 ハイエンドシス テムでは従来から浮動小数点数が用いられていた。ゲーム機や携帯情報 端末等のようなコス トの制約が厳しい分野でも、扱うデータは整数から 浮動小数点数に移行する傾向にある。浮動小数点数を用いる方が高度な 処理に向いているからである。 Such a matrix operation or inner product operation requires repeated product-sum operations. Also, high-end systems have traditionally used floating-point numbers as data handled in three-dimensional graphics. Game consoles and mobile information Even in fields where cost constraints are severe, such as terminals, the data handled tends to shift from integers to floating point numbers. This is because using floating-point numbers is more suitable for advanced processing.
しかしながら、前述のようにポリゴンデ一夕を用いて 3次元モデルを 表現する場合には頂点座標データや頂点法線デ一夕など多量のデータ が必要になり、 しかもそれらポリゴンデータを初めから浮動小数点数デ —夕としてメモリに持つ場合には、単精度の浮動小数点フォーマッ トで あってもデータは各成分毎に 3 2ビッ トになり、 3次元モデル全体のデ 一夕量は膨大になる。  However, when a 3D model is represented using polygon data as described above, a large amount of data such as vertex coordinate data and vertex normal data is required. If data is stored in memory as data, even if it is a single-precision floating-point format, the data will be 32 bits for each component, and the amount of data in the entire 3D model will be enormous.
このとき、内積や積和演算を行うデータプロセッサのデータ処理速度 は今日格段に高速化されているが、それに比べてメモリのアクセス速度 は比較的遅いままである。仮にキャッシュメモリを用いても、 デ一夕量 が多いので、 途中で必ずキヤッシユミスヒッ 卜を生ずるから、 それだけ では、 高速化に限界のあることが本発明者によって明らかにされた。 そこで、 本発明者は、 ポリゴンデ一夕の全部又は一部を整数で表現し、 メモリから浮動小数点演算ュニッ 卜への転送を整数データのまま行い、 その後で浮動小数点数に変換して内積演算や積和演算を行うことにつ いて検討した。  At this time, the data processing speed of the data processor that performs the inner product or the product-sum operation is remarkably increased today, but the access speed of the memory remains relatively slow. Even if a cache memory is used, since the amount of data is large, a cache miss always occurs on the way, and it has been clarified by the present inventor that there is a limit to speeding up by itself. Therefore, the present inventor expresses all or a part of the polygon data as an integer, transfers the data from the memory to the floating-point operation unit as integer data, and then converts the data to a floating-point number to perform the inner product operation or the like. We examined the use of multiply-accumulate operations.
先ず、 本発明者は、 描画に必要とされるデータの精度に着目した。 3 次元モデルのポリゴンの頂点座標は回転と平行移動に対応するァフィ ン変換を受ける。この変換によって移動されるポリゴンはスクリーン座 標上への投影のために透視変換を受ける。透視変換された図形の頂点は、 当該図形が実際にフレームバッファに描画されるときスクリーン上の ピクセル位置を示すことになる。前記ァフィン変換に着目すると、 桁あ ふれの心配が少ない浮動小数点数でポリゴンの頂点座標を表現するこ とが好ましいと一般に言われている。このとき、 V G A (Video Graphics Array) や SVG A (Super Video Graphics Array) 程度のスクリーン 上での表示精度を考慮すれば、 頂点座標の各成分は、 I E E E 7 54に 準拠した浮動小数点数の仮数部が 2 3ビッ 卜の 4バイ ト浮動小数点数 で必ずしも表現する必要はなく、 1 6ビッ 卜の整数でも充分な場合のあ ることが本発明者によって見出された。 First, the inventor focused on the accuracy of data required for drawing. The vertex coordinates of the polygons of the 3D model undergo an affinity transformation corresponding to rotation and translation. The polygons moved by this transformation undergo a perspective transformation for projection onto screen coordinates. The vertices of the perspective transformed figure will indicate the pixel locations on the screen when the figure is actually drawn in the frame buffer. Focusing on the affine transformation, it is generally said that it is preferable to express the vertex coordinates of a polygon with a floating-point number that is less likely to overflow. At this time, VGA (Video Graphics Taking into account the display accuracy on a screen of the order of SVG A (Super Video Graphics Array) or SVG A, each component of the vertex coordinates has a mantissa of a floating-point number conforming to IEEE 754, with a 4-bit mantissa of 23 bits. The present inventor has found that it is not always necessary to represent the value with a byte floating point number, and that a 16-bit integer may be sufficient.
また、 頂点法線データは回転の変換を受け、 そして光線べク トルと内 積されて、 明るさに関係する値が得られる。 その値は最終的には、 色の 3原色 RGB (赤、 緑、 青) の強度になる。 これらの値は人間工学的に 各々 8ビッ トもあれば充分であると言われている。例えば、 RGBの 3 原色は各々 8ビッ トによって 1 6 777 2 1 6 (^ 2 5 6 * 2 5 6 * 2 5 6 ) 色のフルカラー表現ができる。 したがって、 法線頂点べク トルの 各成分は 8ビッ 卜で殆ど十分であることが本発明者によって明らかに された。  Also, the vertex normal data undergoes rotation transformation, and is interpolated with the ray vector to obtain a value related to brightness. The value will ultimately be the intensity of the three primary colors RGB (red, green, blue). It is said that these values are ergonomically enough to have 8 bits each. For example, each of the three primary colors of RGB can represent a full color of 16 777 2 16 (^ 25 6 * 25 6 * 25 6) colors by 8 bits. Therefore, it has been clarified by the present inventors that each component of the normal vertex vector is almost sufficient with 8 bits.
上記検討によれば、ポリゴンの頂点座標デ一夕や法線べク トルデータ を整数データとしても精度上問題なく、 しかも前者に比べて後者のデー 夕ビッ ト数を更に少なく してデータ量を削減することも可能であるこ とが明らかにされた。  According to the above study, even if the vertex coordinate data of the polygon and the normal vector data are integer data, there is no problem in accuracy, and the number of data bits in the latter is further reduced compared to the former to reduce the amount of data. It was clarified that reduction could be possible.
更に、 本発明者は先行技術を調査して、 特開平 5— 1 0082 2号公 報を見出した。 これは、 整数フォーマツ 卜のデータを 2の補数浮動小数 点フォーマヅ トのデ一夕に高速に変換するディジタルシグナルプロセ ッサに関し、そのような変換を行う専用ハードウエアを採用するもので ある。 特に、 変換においては、 整数デ一夕のビッ ト長を指定する整数値 桁数指定用の定数レジスタを用いるものである。 したがって、 処理対象 とする整数デ一夕のビッ ト長を変えるときは前記定数レジス夕に異な る値をロードする命令をその都度実行しなければならない。  Further, the present inventor has searched the prior art and found Japanese Patent Laid-Open No. 5-100822. This is a digital signal processor which converts integer format data at high speed in two's complement floating point format, and employs dedicated hardware for performing such conversion. In particular, the conversion uses a constant register that specifies the number of integer digits to specify the bit length of the integer data. Therefore, when changing the bit length of the integer data to be processed, an instruction for loading a different value into the constant register must be executed each time.
上記先行技術について本発明者が検討したところによれば、 ビッ ト長 の異なる整数デ一夕を多量に取り扱う場合には、前記定数レジス夕に対 するロード命令の実行回数が増え、オーバへッ ドが大きくなる虞のある ことが本発明者によって見出された。即ち、 前記ポリゴンの頂点座標デ 一夕及び法線べク トルデータのようにデータビッ ト長を相違させ、デ一 夕量削減効果を最大限とするような場合には、定数レジス夕の設定値変 更処理が頻繁に生じ、 データ処理のオーバへッ ドが増え、 そのデータ量 削減効果を相殺若しくは低減する虞のあることが本発明者によって明 らかにされた。 According to the study of the above prior art by the present inventors, the bit length is The inventor has found that when a large number of different integers are used, the number of executions of the load instruction for the constant register is increased and the overhead may be increased. That is, when the data bit lengths are made different from each other, such as the vertex coordinate data of the polygon and the normal vector data, and the effect of reducing the amount of data is maximized, the setting value of the constant register data is used. The inventors of the present invention have clarified that change processing frequently occurs, the overhead of data processing increases, and the data amount reduction effect may be offset or reduced.
本発明の目的は、前記ポリゴンの頂点座標データと法線べク 卜ルデー 夕のようにデ一夕ビッ ト長を相違させ、データ量削減による効果を最大 限とするよう企図する場合でも、データ処理のオーバへッ ドが増えず、 デ一夕量削減による効果を十分に発揮させることができるデータ処理 装置、 更にはデータ処理システムを提供することにある。  An object of the present invention is to provide a method for making the data length even if it is intended to maximize the effect of reducing the amount of data by making the bit length of the data different from the vertex coordinate data of the polygon and the normal vector data. An object of the present invention is to provide a data processing device and a data processing system capable of fully exhibiting the effect of reducing the amount of data without increasing processing overhead.
本発明の別の目的は、演算コス トよりもデータ転送コス トが全体のデ 一夕処理速度を決めるようなデータ処理システムにおけるデータ処理 速度を向上することにある。  Another object of the present invention is to improve the data processing speed in a data processing system in which the data transfer cost rather than the operation cost determines the overall data processing speed.
本発明のその他の目的は、 1バイ ト、 2バイ 卜の整数データを浮動小 数点数データに変換して高速に浮動小数点レジス夕へロードすること ができるデータ処理装置を提供することにある。  It is another object of the present invention to provide a data processing device capable of converting 1-byte or 2-byte integer data into floating-point data and loading the data into a floating-point register at high speed.
本発明の更に別の目的は、 情報処理装置に、 浮動小数点演算のための データ容量の低減とデータ処理の効率化とを簡単に実現させることが できるプログラムを格納した記録媒体、そしてそのようなプログラムを 伝送する伝送媒体を提供することにある。  Still another object of the present invention is to provide a recording medium in which an information processing apparatus stores a program capable of easily realizing a reduction in data capacity for floating-point arithmetic and an increase in efficiency of data processing, and a storage medium storing such a program. It is to provide a transmission medium for transmitting a program.
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の 記述と添付図面から明らかにされるであろう。 発明の開示 The above and other objects and novel features of the present invention will become apparent from the following description of the present specification and the accompanying drawings. Disclosure of the invention
〔 1 - 1〕 マイクロコンピュー夕やシングルチップデ一夕プロセヅサ等 の半導体集積回路若しくは半導体デバイスの観点による本発明に係る データ処理装置は、浮動小数点レジス夕のビッ ト長よりも短いビッ ト長 の整数データを浮動小数点数デ一夕に変換して浮動小数点レジス夕に ロード可能であって、前記整数データのビッ ト長は前記ロードを指示す る命令における整数データのビッ ト長情報ェリァで指定し、その解読結 果にしたがって、前記整数デ一夕のビッ ト長と浮動小数点フォーマツ ト の仮数のビッ ト長との相違に応じたビッ ト長拡張処理を行い、整数デ一 夕を浮動小数点数データに変換するものである。  [1-1] The data processing apparatus according to the present invention in terms of a semiconductor integrated circuit or a semiconductor device such as a microcomputer or a single-chip data processor has a bit length shorter than the bit length of the floating-point register. Can be converted to a floating-point number data and loaded into a floating-point register, and the bit length of the integer data is determined by the bit length information area of the integer data in the instruction indicating the load. In accordance with the result of the decoding, the bit length extension processing is performed according to the difference between the bit length of the integer data and the bit length of the mantissa of the floating-point format, and the integer data is floated. It is converted to decimal point data.
詳しくは、 データ処理装置は、 フェッチした命令を解読して制御信号 を生成する命令制御手段と、前記制御信号によって夫々動作が制御され る浮動小数点演算回路、 浮動小数点レジス夕及び変換手段と、 を有する。 前記変換手段は、前記浮動小数点レジス夕のビッ ト長より短いビッ ト長 で表現される整数データを入力し、入力した整数データを所定の浮動小 数点数フォーマッ 卜の浮動小数点数データに型変換し、型変換された浮 動小数点数データを前記浮動小数点レジス夕に向けて出力する第 1処 理が可能なものである。 そして、 前記型変換に必要な整数データのビッ ト長情報は、前記第 1処理を指示する第 1命令に含む整数データのビッ ト長情報エリアを前記命令制御手段が解読して得る、 ものである。  Specifically, the data processing device includes: an instruction control means for decoding a fetched instruction to generate a control signal; a floating-point arithmetic circuit, a floating-point register and a conversion means, each of which is controlled by the control signal; Have. The conversion means inputs integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data into floating-point number data in a predetermined floating-point number format. In addition, the first processing of outputting the type-converted floating-point number data to the floating-point register is possible. The bit length information of the integer data required for the type conversion is obtained by the instruction control means decoding the bit length information area of the integer data included in the first instruction instructing the first process. is there.
上記した手段によれば、浮動小数点レジス夕のビッ ト長よりも短いデ —夕を入力して処理するから、浮動小数点レジス夕のビッ ト長と同じビ ッ ト長のデータを入力する場合に比べて、データ量若しくはデータメモ リ容量を小さくすることができる。 例えば、 3次元画像処理において、 X、 Y、 Ζ座標値および法線べクタの各成分を合わせた 6個のデータを夫々 3 2 ビッ卜単精度浮動小数点数で記憶した場合は 1頂点当り 2 4バイ 卜のデータ 量になる。 一方、 上記手段によれば、 3次元画像処理において、 X、 Y、 Ζ 座標の値を各々 2バイ ト整数、 法線べクタの各成分を 1バイ ト整数で表現で き、 1頂点当り 9バイ トのデータ量に低減できる。 加えて、 上記手段により データ量が削減されれば、 データ転送コストも削減されるので、 演算コスト よりもデ一夕転送コス卜が全体の処理速度を決めるようなシステムではデ一 夕処理速度を向上させることができる。 According to the above-described means, data shorter than the bit length of the floating-point register is input and processed. Therefore, when inputting data having the same bit length as the bit length of the floating-point register, In comparison, the data amount or the data memory capacity can be reduced. For example, in three-dimensional image processing, if each of six data items including X, Y, 、 coordinate values and normal vector components is stored as a 32-bit single-precision floating-point number, 2 points per vertex 4-byte data Amount. On the other hand, according to the above means, in the three-dimensional image processing, the values of the X, Y, and 座標 coordinates can be represented by 2-byte integers, and each component of the normal vector can be represented by 1-byte integer. The amount of data can be reduced to bytes. In addition, if the data amount is reduced by the above means, the data transfer cost is also reduced. Therefore, in a system where the data transfer cost determines the overall processing speed rather than the calculation cost, the data processing speed is reduced. Can be improved.
整数データを変換手段で浮動小数点数データに変換して浮動小数点 レジス夕にロードできるから、 1命令で整数デ一夕を浮動小数点数デ一 夕に型変換して浮動小数点レジス夕に口一ドすることができる。  Since integer data can be converted to floating-point data by the conversion means and loaded into the floating-point register, the type of integer data can be converted to floating-point data by one instruction and converted to the floating-point register. can do.
前記型変換では整数データのビッ ト長と所定の浮動小数点フォーマ ッ 卜の仮数のビッ ト長との相違に応じたビッ ト長拡張処理が行われる が、 それに必要な整数データのビッ ト長情報を、 前述の口一ド命令のよ うな第 1命令のデコード結果から得るから、ビッ ト長の異なる整数デ一 夕が混在する場合も、 1命令で前記型変換を伴うロード処理のような処 理を行うことができる。処理対象とする整数データのビッ ト長情報を制 御レジス夕で指定する場合に比べ、処理対象とする整数データのビッ ト 長が変わっても、 その都度、 余計なレジス夕アクセス動作を行わずに済 み、 データ処理能率も向上する。  In the type conversion, a bit length extension process is performed according to a difference between the bit length of the integer data and the bit length of the mantissa of a predetermined floating-point format. Is obtained from the decoded result of the first instruction, such as the above-mentioned spoken instruction. Therefore, even when integer data having different bit lengths are mixed, processing such as the load processing involving the type conversion is performed by one instruction. Can do so. Even if the bit length of the integer data to be processed changes, the extra register access operation is not performed each time the bit length of the integer data to be processed changes as compared with the case where the bit length information of the integer data to be processed is specified in the control register. And data processing efficiency is improved.
〔 1 - 2〕 前記変換手段には、 更に、 前記浮動小数点レジス夕のビッ ト 長より短いビッ ト長で表現される整数データを入力し、入力した整数デ 一夕のビッ ト数を前記浮動小数点レジス夕のビッ ト長に拡張し、拡張さ れた整数デ一夕を前記浮動小数点レジス夕に向けて出力する第 2処理 を可能にしてよい。 このとき、 前記第 2の処理における前記整数データ のビッ ト長拡張に必要な整数データのビッ ト長情報は、前記第 2処理を 指示する第 2命令に含む整数データのビッ ト長情報エリアを前記命令 制御手段が解読して得る。前記第 2処理は、 浮動小数点レジス夕に整数 デ一夕をロードしてから、これを浮動小数点数データに変換する自由度 を与える。 [1-2] The conversion means further receives integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data bit number into the floating-point value. A second process of extending the bit length of the decimal point register and outputting the extended integer data to the floating point register may be enabled. At this time, the bit length information of the integer data necessary for the bit length extension of the integer data in the second process is a bit length information area of the integer data included in the second instruction instructing the second process. The command control means decodes and obtains it. In the second process, the floating-point register is an integer. Gives you the freedom to load the data and convert it to floating point data.
〔 1 - 3〕 前記変換手段は更に、 前記浮動小数点レジス夕から浮動小数 点数データを入力し、入力した浮動小数点数データを前記浮動小数点レ ジス夕のビッ ト長より短いビッ 卜長で表現される整数データに逆型変 換し、逆型変換された整数データを出力する第 3処理を可能にしてよい。 前記第 3処理を指示する第 3命令が含む整数デ一夕のビッ ト長情報ェ リアを前記命令制御手段が解読した結果から、前記逆型変換に必要な整 数データのビッ ト長情報を得る。前記第 3処理は、 浮動小数点レジス夕 の浮動小数点数データを整数デ一夕に変換してメモリなどにス トアす る自由度を与える。  [1-3] The conversion means further inputs floating-point data from the floating-point register, and expresses the input floating-point data with a bit length shorter than the bit length of the floating-point register. It may be possible to perform a third process of performing inverse conversion to integer data and outputting the inversely converted integer data. From the result of the instruction control means decoding the bit length information area of the integer data included in the third instruction instructing the third process, the bit length information of the integer data required for the inverse conversion is obtained. obtain. The third process converts the floating-point number data of the floating-point register into integer data to give a degree of freedom to store the data in a memory or the like.
〔 1 - 4〕 前記ビッ ト長情報エリアは、 前記浮動小数点レジス夕の第 1 のビッ ト長より短い第 2のビッ ト長と、前記第 2のビッ ト長よりも短い 第 3のビッ 卜長との何れか一方を選択的に指定可能にしてよい。例えば、 前記第 1のビッ ト長は 3 2ビッ ト、前記第 2のビッ ト長は 1 6ビッ ト、 前記第 3のビッ ト長は 8ビッ トである。ビッ ト長の異なるデータを混在 させる場合に特に便利である。  [1-4] The bit length information area includes a second bit length shorter than the first bit length of the floating point register and a third bit length shorter than the second bit length. Either length may be selectively designated. For example, the first bit length is 32 bits, the second bit length is 16 bits, and the third bit length is 8 bits. This is especially useful when mixing data with different bit lengths.
〔 1 - 5〕 データ処理装置は、 前記命令制御手段が出力する制御信号に よってその動作が制御される整数ュニッ トを更に含めて、シングルチヅ プデータプロセッサとして構成してよい。  [1-5] The data processing device may be configured as a single-chip data processor further including an integer unit whose operation is controlled by a control signal output from the instruction control means.
中央処理装置の一部を構成するような整数ュニッ 卜によるデータァ クセスの高速化の観点より、前記整数ュニッ 卜及び前記浮動小数点レジ ス夕に接続されたキヤッシュメモリ装置をシングルチップデ一夕プロ セッサに内蔵してよい。  From the viewpoint of speeding up data access by an integer unit constituting a part of a central processing unit, a cache memory device connected to the integer unit and the floating point register is connected to a single-chip processor. It may be built in.
この場合、前記変換手段は前記キヤッシュメモリ装置が接続されるデ —夕バスに結合しておく態様が好都合である。 このとき、 前記浮動小数 点レジス夕のビッ ト長を 4 n ( nは正の整数) バイ ト、 前記整数デ一夕 には nバイ ト又は 2 nバイ 卜のビッ ト長を混在させ、前記デ一夕バスの ビヅ ト幅を 8 nバイ トとし、前記キヤッシュメモリ装置は 8 nバイ 卜の 範囲で連続する複数の整数デ一夕を前記データバスに並列出力可能と すると、 前記変換手段は、 前記型変換機能付きロード命令のような第 1 命令に含まれる整数データのビッ ト長倩報ェリァの解読結果に基いて、 デ一夕バス上の第 1の整数データ及びその隣の第 2の整数データに対 して前記第 1処理を並行させるようにしてよい。型変換を伴う前記デ一 夕ロード処理のような第 1処理の効率が一層向上する。 In this case, it is advantageous that the conversion means is connected to a data bus to which the cache memory device is connected. At this time, the floating point number The bit length of the point register is 4 n bytes (where n is a positive integer), and the integer byte is mixed with a bit length of n bytes or 2 n bytes. When the byte width is set to 8 n bytes and the cache memory device can output a plurality of consecutive integer data in a range of 8 n bytes in parallel to the data bus, the conversion means includes the type conversion function. The length of the integer data included in the first instruction such as a load instruction with a length, based on the result of decoding by the data reporter, the first integer data on the data bus and the second integer data next to the first integer data. Then, the first processing may be performed in parallel. The efficiency of the first processing such as the above-described data loading processing involving type conversion is further improved.
尚、内蔵キヤヅシュメモリ装置に比べてアクセス速度は遅くなるが、 キャッシュメモリ装置をシングルチップデータプロセッサの外部に接 続してシステムを構成してもよい。  Although the access speed is lower than that of the built-in cache memory device, the system may be configured by connecting the cache memory device to the outside of the single-chip data processor.
〔2 - 1〕 前記第 1命令のような命令フォーマツ 卜に着目する観点に立 つたとき、 本発明に係るデータ処理装置は、 フェッチした命令を解読し、 解読結果に基づいて浮動小数点レジス夕を用いた浮動小数点演算が可 能である。 前記浮動小数点レジス夕を用いる命令には、 命令の種別を示 すオペレーションコードフィ一ルド、処理に使用する浮動小数点レジス 夕を指定するレジス夕指定フィ一ルド、及びその他の情報フィールドを 有する第 1命令を含む。前記第 1命令において、 前記オペレーシヨンコ -ドフィールドは、整数データを所定の浮動小数点フォーマツ 卜の浮動 小数点数データに変換して浮動小数点レジス夕に格納することを指示 する。前記レジス夕指定フィールドは、 変換された浮動小数点数デ一夕 を格納する浮動小数点数レジス夕の種別を指示する。前記その他の情報 フィ一ルドの一部は、浮動小数点数データへの変換対象とされる前記整 数データの所在を示す。前記その他の情報フィールドの他の一部は、 前 記浮動小数点レジス夕のビッ ト長より短いビッ ト長で表現される整数 データのビッ ト長情報を指示する。 [2-1] From the viewpoint of focusing on an instruction format such as the first instruction, the data processing device according to the present invention decodes the fetched instruction and generates a floating-point register based on the decoding result. The floating-point operation used is possible. The instruction using the floating-point register includes an operation code field indicating the type of the instruction, a register setting field for specifying a floating-point register used for processing, and a first information field having other information fields. Including instructions. In the first instruction, the operation code field indicates that integer data is to be converted to floating-point data in a predetermined floating-point format and stored in a floating-point register. The register setting field indicates the type of the floating-point register storing the converted floating-point number. Part of the other information field indicates the location of the integer data to be converted to floating point data. Another part of the other information field is an integer represented by a bit length shorter than the bit length of the floating-point register. Indicates the bit length information of the data.
この観点の発明によっても、 上記同様に、 浮動小数点演算処理対象と して読み込むべきデ一夕のデータ量若しくはデータメモリ容量を小さ くすることができ、 加えて、 データ量削減によってデ一夕転送コストも削 減されるので、 演算コストよりもデータ転送コストが全体の処理速度を決め ているシステムではデータ処理速度を向上させることができる。 更に、 1命 令で整数データを浮動小数点数データに型変換して浮動小数点レジス 夕にロードすることができ、 また、 ビッ ト長の異なる整数データが混在 する場合も、 1命令で前記型変換を伴うデータロード処理を行うことが でき、 データ処理能率が向上する。  According to the invention of this aspect, similarly to the above, the amount of data or data memory to be read as a floating-point operation processing object can be reduced, and in addition, the data transfer can be performed by reducing the data amount. Since the cost is also reduced, the data processing speed can be improved in a system where the overall processing speed is determined by the data transfer cost rather than the computational cost. In addition, integer data can be converted to floating-point data by one instruction and loaded into the floating-point register, and when integer data having different bit lengths are mixed, the same type conversion can be performed with one instruction. The data load process can be performed with data, and the data processing efficiency is improved.
前記浮動小数点レジス夕を 3 2 ビッ 卜のビッ ト長とするとき、前記整 数デ一夕のビッ ト長情報は、 8ビッ ト又は 1 6ビッ ト長を選択的に指示 するものとしてよい、 これは、 ビッ ト長の異なるデータを混在させる場 合に特に便利である。  When the floating-point register has a bit length of 32 bits, the bit length information of the integer data may selectively indicate 8 bits or 16 bits. This is particularly useful when mixing data with different bit lengths.
〔2 - 2〕 前記浮動小数点レジスタを用いる命令には第 2命令を含めて よい。第 2命令は、 命令の種別を示すオペレーションコードフィールド、 処理に使用する浮動小数点レジス夕を指定するレジス夕指定フィ一ル ド、 及びその他の情報フィールドを有する。 前記第 2命令において、 前 記オペレーションコ一ドフィ一ルドは、整数データをビッ ト長拡張して 浮動小数点レジス夕に格納することを指示する。前記レジス夕指定フィ ールドは、変換された浮動小数点数データを格納する浮動小数点数レジ ス夕の種別を指示する。前記その他の情報フィールドの一部は、 浮動小 数点数データへの変換対象とされる前記整数データの所在を示す。前記 その他の情報フィールドの他の一部は、前記浮動小数点レジス夕のビッ ト長より短いビッ ト長で表現される整数デ一夕のビッ ト長情報を指示 する。 これによれば、 浮動小数点レジス夕に整数データを口一ドした後 に浮動小数点数データに変換する自由度を与える。 [2-2] The instruction using the floating-point register may include a second instruction. The second instruction has an operation code field indicating the type of the instruction, a register setting field for specifying a floating-point register used for processing, and other information fields. In the second instruction, the operation code field indicates that the integer data is to be extended in bit length and stored in the floating-point register. The register setting field indicates the type of the floating-point register storing the converted floating-point data. Part of the other information field indicates the location of the integer data to be converted to floating-point data. Another part of the other information field indicates the bit length information of the integer data represented by a bit length shorter than the bit length of the floating point register. According to this, after fetching integer data in floating point register Gives the freedom to convert to floating point data.
〔3 - 1〕 グラフィ ックボードや 3次元画像処理システム等のデータ処 理システムの観点による本発明は、データプロセッサのような第 1のデ —夕処理装置と、前記デ一夕プロセッサに接続されたァクセラレ一夕の ような第 2のデータ処理装置とを有する。前記データプロセッサは、 フ エッチした命令を解読し、解読結果に基づいて整数演算と浮動小数点演 算が可能であり、フェッチした命令を解読して制御信号を生成する命令 制御手段、 整数ュニッ ト、 浮動小数点演算回路、 浮動小数点レジス夕、 及び変換手段を有する。前記変換手段は、 前記浮動小数点レジス夕のビ ッ 卜長より短いビッ ト長で表現される整数デ一夕を入力し、入力した整 数データを所定の浮動小数点フォーマッ トの浮動小数点数データに型 変換し、型変換された浮動小数点数データを前記浮動小数点レジス夕に 向けて出力する第 1処理が可能なものである。前記型変換において前記 整数データのビッ ト長と前記浮動小数点フォーマツ 卜の仮数のビッ ト 長との相違に応じたビツ ト長拡張に必要な整数データのビッ ト長情報 は、前記第 1処理を指示する所定の命令に含む整数データのビッ 卜長情 報ェリァを前記命令制御手段が解読して得るものである。前記ァクセラ レ一夕は、前記データプロセッサによる浮動小数点演算結果を入力して データ処理を行うことが可能である。  [3-1] The present invention from the viewpoint of a data processing system such as a graphic board or a three-dimensional image processing system is connected to a first data processing device such as a data processor and the data processing device. And a second data processing device such as the Ixellale. The data processor decodes the fetched instruction, performs integer arithmetic and floating-point arithmetic based on the decoded result, and decodes the fetched instruction to generate a control signal.Instruction control means, an integer unit, It has a floating-point arithmetic circuit, a floating-point register, and conversion means. The conversion means inputs an integer value represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data to floating-point number data in a predetermined floating-point format. The first process of performing type conversion and outputting the type-converted floating-point number data to the floating-point register is possible. In the type conversion, the bit length information of the integer data necessary for the bit length extension according to the difference between the bit length of the integer data and the bit length of the mantissa of the floating point format is obtained by performing the first processing. The instruction control means decodes the bit length information error of the integer data included in the specified instruction. The accelerator can input a result of the floating-point operation by the data processor and perform data processing.
上記観点のデータ処理システムも、浮動小数点演算処理対象として読 み込むべきデータのデータ量若しくはデ一夕メモリ容量を小さくする ことができ、 加えて、 デ一夕量削減によってデータ転送コストも削減される ので、 演算コス卜よりもデータ転送コス卜が全体の処理速度を決めているシ ステムではデータ処理速度を向上させることができる。更に、 1命令で整数 データを浮動小数点数データに型変換して浮動小数点レジス夕にロー ドすることができ、 また、 ビッ 卜長の異なる整数データが混在する場合 も、 1命令で前記型変換を伴うデータロード処理を行うことができ、 デ 一夕処理能率が一層向上する。 The data processing system of the above viewpoint can also reduce the amount of data to be read or the amount of data memory to be read as a target of floating-point arithmetic processing, and also reduce data transfer costs by reducing the amount of data. Therefore, in a system where the overall processing speed is determined by the data transfer cost rather than the operation cost, the data processing speed can be improved. In addition, integer data can be converted to floating-point data by one instruction and loaded into the floating-point register, and integer data with different bit lengths can be mixed. In addition, the data loading process involving the type conversion can be performed with one instruction, and the data processing efficiency is further improved.
〔 3 - 2〕 上記データ処理システムにおいて、 前記デ一夕プロセッサ及 びァクセラレー夕が共有するメインメモリを設けてよい。前記メインメ モリが保有する記憶情報の一部を保有することが可能なキヤッシュメ モリを前記デ一夕プロセッサに内蔵してよい。  [3-2] In the data processing system, a main memory shared by the data processor and the accelerator may be provided. A cache memory capable of holding a part of the storage information held by the main memory may be incorporated in the processor.
3次元グラフィ ックスに着目すると、前記整数データは 3次元形状を 近似する為の頂点座標デ一夕及び頂点法線データを含むポリゴンデ一 夕であってよい。  Focusing on three-dimensional graphics, the integer data may be vertex coordinate data for approximating a three-dimensional shape and polygon data including vertex normal data.
前記浮動小数点レジス夕が 3 2ビッ 卜のビッ 卜長を有するとき、前記 ポリゴンデータの頂点座標デ一夕は各成分 1 6ビッ ト長、頂点法線デー 夕は各成分 8ビッ ト長であってよい。前記整数データのビッ ト長情報は、 8ビッ ト又は 1 6ビッ ト長を選択的に指示するものであってよい。デ一 夕処理システムは、 ビッ ト長の異なる整数データが混在するポリゴンデ 一夕を扱い、 1命令で前記型変換を伴うロードのような処理を行うこと ができデータ処理能率も良好である。  When the floating-point register has a bit length of 32 bits, the vertex coordinate data of the polygon data has a 16-bit length for each component, and the vertex normal data has an 8-bit length for each component. May be. The bit length information of the integer data may selectively indicate an 8-bit length or a 16-bit length. The data processing system handles polygon data in which integer data having different bit lengths coexist, and can perform processing such as loading with the type conversion with one instruction, and has a high data processing efficiency.
このとき、前記データプロセッサはポリゴンデ一夕を用いたジオメ ト リ演算を行い、前記ァクセラレ一夕はジオメ ト リ演算によって得られた デ一夕をフレームバッファに描画する処理を行ってよい。  At this time, the data processor may perform a geometry operation using the polygon data, and the data processing may perform a process of drawing the data obtained by the geometry operation in a frame buffer.
〔4 - 1〕 本発明の別の観点によるデータ処理システムは、 中央処理装 置と、 浮動小数点ュニッ 卜と、 前記中央処理装置及び前記浮動小数点ュ ニッ 卜に接続されたメモリと、 ァクセラレ一夕とを有する。前記浮動小 数点ュニッ トは、 浮動小数点レジス夕、 浮動小数点演算回路、 及び変換 手段を有する。前記変換手段は、 前記浮動小数点レジス夕のビッ ト長よ り短いビッ ト長で表現される整数デ一夕を前記メモリに入力し、入力し た整数データを所定の浮動小数点数フォーマッ 卜の浮動小数点数デー 夕に型変換し、型変換された浮動小数点数データを前記浮動小数点レジ ス夕に向けて出力する第 1処理が可能なものである。前記型変換に必要 な整数データのビッ ト長情報は、前記第 1処理を指示する所定の命令に 含まれる整数デ一夕のビッ ト長情報ェリァの値にから取得するもので ある。前記ァクセラレー夕は、 前記浮動小数点ュニッ トによる浮動小数 点演算結果を入力してデータ処理を行うことが可能である。 [4-1] A data processing system according to another aspect of the present invention includes a central processing unit, a floating-point unit, a memory connected to the central processing unit and the floating-point unit, And The floating-point unit has a floating-point register, a floating-point arithmetic circuit, and conversion means. The converting means inputs the integer data represented by a bit length shorter than the bit length of the floating-point register into the memory, and converts the input integer data into a floating-point number in a predetermined floating-point number format. Decimal point data The first processing is possible in which the type conversion is performed in the evening and the type-converted floating-point number data is output toward the floating-point register. The bit length information of the integer data required for the type conversion is obtained from the value of the bit length information error of the integer data included in the predetermined instruction instructing the first process. The accelerator is capable of performing data processing by inputting a floating-point calculation result obtained by the floating-point unit.
上記観点のデータ処理システムも、浮動小数点演算処理対象として読 み込むべきデータのデータ量若しくはデータメモリ容量を小さくする ことができ、 加えて、 データ量削減によってデータ転送コストも削減される ので、 演算コストよりもデ一夕転送コストが全体の処理速度を決めているシ ステムではデータ処理速度を向上させることができる。更に、 1命令で整数 データを浮動小数点数データに型変換して浮動小数点レジス夕にロー ドすることができ、 また、 ビッ ト長の異なる整数データが混在する場合 も、 1命令で前記型変換を伴うロード処理を行うことができ、 データ処 理能率が一層向上する。  The data processing system of the above viewpoint can also reduce the amount of data to be read or the amount of data memory to be read as a floating-point operation target, and also reduce the data transfer cost by reducing the amount of data. Data processing speed can be improved in a system where the overall transfer speed is determined by the overnight transfer cost rather than the cost. In addition, integer data can be type-converted to floating-point number data and loaded into a floating-point register with one instruction.If integer data with different bit lengths are mixed, the type conversion can be performed with one instruction. The load processing can be performed, and the data processing efficiency is further improved.
〔5〕前記浮動小数点数デ一夕への型変換機能を実現するためのプログ ラムを提供するという観点による発明は、前記プログラムの記録媒体、 そして前記プログラムの伝送媒体である。  [5] The invention from the viewpoint of providing a program for realizing the function of converting the type to the floating-point number conversion is a recording medium for the program and a transmission medium for the program.
プログラムの記録媒体はプログラムを静的に記録する C D— R O M 等の媒体である。伝送媒体は有線回線又は無線回線にて接続されたネッ トワークを介してプログラムを電子的、電磁気的又は光学的に配布又は 流通をさせるための、前記プログラムを動的に伝送する通信媒体である。 記録媒体は、情報処理装置に浮動小数点演算によるデータ処理機能を 実現させるためのプログラムを記録してある。前記プログラムは、 前記 情報処理装置内部の浮動小数点レジス夕のビッ ト長より短いビッ ト長 で表現される整数デ一夕を所定フォーマッ トの浮動小数点数データに 型変換して前記浮動小数点レジス夕にロードする第 1処理を実現可能 である。前記第 1処理において、 前記型変換に必要な整数データのビッ ト長情報は、前記第 1処理を指示する第 1命令が保有するビッ ト長情報 ェリァから得るものである。前記情報処理装置は前記記録媒体を介して 前記プログラムをィンス トールでき、或いはその記録媒体から直接前記 プログラムを実行できる。 よって、 情報処理装置に、 浮動小数点演算の ためのデータ容量の低減とデータ処理の効率化とを簡単に実現させる ことができる。 The recording medium of the program is a medium such as a CD-ROM for statically recording the program. The transmission medium is a communication medium for dynamically transmitting or distributing the program electronically, electromagnetically, or optically through a network connected by a wired line or a wireless line. The recording medium stores a program for causing the information processing device to realize a data processing function by floating-point arithmetic. The program converts integer data represented by a bit length shorter than a bit length of a floating-point register inside the information processing device into floating-point data in a predetermined format. It is possible to realize a first process of performing type conversion and loading the data in the floating-point register. In the first process, the bit length information of the integer data required for the type conversion is obtained from a bit length information register held by a first instruction instructing the first process. The information processing device can install the program via the recording medium, or can execute the program directly from the recording medium. Therefore, the information processing device can easily realize a reduction in the data capacity for the floating-point operation and an increase in the efficiency of the data processing.
伝送媒体は、情報処理装置に浮動小数点演算によるデータ処理機能を 実現させるためのプログラムを伝送する。前記プログラムは、 前記情報 処理装置内部の浮動小数点レジス夕のビッ ト長より短いビッ ト長で表 現される整数デ一夕を所定フォーマッ 卜の浮動小数点数デ一夕に型変 換して前記浮動小数点レジス夕にロードする第 1処理を実現可能であ る。前記第 1処理において、 前記型変換に必要な整数デ一夕のビッ ト長 情報は、前記第 1処理を指示する第 1命令が保有するビッ ト長情報ェリ ァから得るものである。前記情報処理装置は前記伝送媒体を介して前記 プログラムをネッ 卜ワーク上で簡単に取得できる。 したがって、 その伝 送媒体は、 情報処理装置に、 浮動小数点演算のためのデータ容量の低減 とデータ処理の効率化とを簡単に実現させることができる。 図面の簡単な説明  The transmission medium transmits a program for causing the information processing device to realize a data processing function by floating-point arithmetic. The program converts the integer data represented by a bit length shorter than the bit length of a floating-point register inside the information processing device into a floating-point number data of a predetermined format, and It is possible to implement the first process to load the floating point register. In the first process, the bit length information of the integer data required for the type conversion is obtained from a bit length information error held by a first instruction instructing the first process. The information processing device can easily acquire the program on the network via the transmission medium. Therefore, the transmission medium enables the information processing device to easily realize a reduction in the data capacity for the floating-point operation and an increase in the efficiency of the data processing. BRIEF DESCRIPTION OF THE FIGURES
第 1図は本発明に係るデータ処理装置の一例であるシングルチップ データプロセッサのブロック図である。  FIG. 1 is a block diagram of a single-chip data processor which is an example of a data processing device according to the present invention.
第 2図はデータプロセッサが有する変換回路及び整列'拡張回路の一 例を示すブロック図である。  FIG. 2 is a block diagram showing an example of a conversion circuit and an alignment / extension circuit included in the data processor.
第 3図はデ一夕プロセッサの浮動小数点ロード命令として" F M O V . S W 2 S @Rm, F R n" を例示する命令フォーマッ ト図である。 第 4図は浮動小数点ロード命令" FMOV. SW2 S @R 1, FR 4" を実行したときのデータフローを例示する説明図である。 Figure 3 shows the floating-point load instruction of the data processor "FMOV. FIG. 4 is an instruction format diagram illustrating SW 2 S @Rm, FR n ". FIG. 4 is a description illustrating a data flow when the floating-point load instruction" FMOV. SW2 S @R 1, FR 4 "is executed. FIG.
第 5図は本発明に係るデータ処理装置の別の例であるシングルチッ プデ一夕プロセッサのブロック図である。  FIG. 5 is a block diagram of a single-chip processor which is another example of the data processing device according to the present invention.
第 6図は本発明に係るデータ処理装置の更に別の例であるグラフィ ックチップのブロック図である。  FIG. 6 is a block diagram of a graphic chip which is still another example of the data processing device according to the present invention.
第 7図は第 1図のデ一夕プロセッサを用いたグラフィ ックシステム の一例を示すブロック図である。  FIG. 7 is a block diagram showing an example of a graphics system using the data processor of FIG.
第 8図はポリゴンデ一夕による 3次元モデルを例示する説明図であ る。  FIG. 8 is an explanatory diagram exemplifying a three-dimensional model based on polygon data.
第 9図はポリゴン列のデータ構造を C言語的標記して示した説明図 である。  FIG. 9 is an explanatory diagram showing the data structure of a polygon string in C language notation.
第 1 0図はデータプロセッサを用いたジオメ ト リ演算処理の一例を 示すフローチャートである。  FIG. 10 is a flowchart showing an example of the geometry operation processing using the data processor.
第 1 1図は変対象デ一夕サイズの切り換えに制御レジス夕の設定変 更を要する処理手順を第 10図の処理との比較の観点で例示したフロ 一チヤ一トである。  FIG. 11 is a flowchart illustrating a processing procedure that requires a change in the setting of the control register in order to switch the size of the data to be changed from the viewpoint of comparison with the processing in FIG.
第 12図は第 1図のデータプロセッサを採用した情報処理装置とそ れを含んだ情報処理ネッ トワークの一例を示すプロック図である。 発明を実施するための最良の形態  FIG. 12 is a block diagram showing an example of an information processing apparatus employing the data processor of FIG. 1 and an information processing network including the same. BEST MODE FOR CARRYING OUT THE INVENTION
《データプロセッサの構成》  《Configuration of data processor》
第 1図には本発明に係るデ一夕処理装置の一例であるシングルチッ プデ一夕プロセッサ (以下単にデ一夕プロセッサとも称する) が示され る。 同図に示されるデータプロセッサ 1は、 特に制限されないが、 32 ビッ ト R I S C (Reduced Instruction Set Computer)アーキテクチャを 有し、その命令セッ 卜には 1 6ビッ ト固定長の浮動小数点命令を含んで いる。 ここで説明する例は、 ゲーム機などのように 3次元グラフィ ック スをサボ一卜することが必要な機器組み込み制御用途に有効である。 データプロセッサ 1は、 命令制御回路 2、 整数ュニッ ト 3、 浮動小数 点ュニッ ト 4、 命令キヤッシュュ二ヅ ト 5、 及びデ一夕キヤッシュュ二 ッ ト 6を有する。 FIG. 1 shows a single-chip data processor (hereinafter also simply referred to as a data processor) which is an example of a data processing apparatus according to the present invention. Although the data processor 1 shown in the figure is not particularly limited, it has a 32-bit reduced instruction set computer (RISC) architecture. And its instruction set includes 16-bit fixed-length floating-point instructions. The example described here is effective for controlling embedded devices that need to support 3D graphics, such as game consoles. The data processor 1 includes an instruction control circuit 2, an integer unit 3, a floating-point unit 4, an instruction cache 5, and a data cache 6.
命令制御回路 2は命令ァ ドレスバス 8及び命令バス 9を介して命 令キヤッシュュニッ ト 5に接続されている。 また、 整数ュニッ ト 3及び 浮動小数点ュニッ ト 4はデ一夕バス 1 0を介してデータキヤッシュュ ニッ ト 6に接続されている。デ一夕バス 1 0を介するデ一夕アクセスの ためのアドレシングは専ら整数ュニッ ト 3が行うようになっており、ァ ドレスバス 1 1は整数ュニッ ト 3からデ一夕キヤッシュュ二ッ ト 6に 接続されている。  The instruction control circuit 2 is connected to an instruction cache unit 5 via an instruction address bus 8 and an instruction bus 9. The integer unit 3 and the floating point unit 4 are connected to the data cache unit 6 via the data bus 10. Addressing for data access via data bus 10 is exclusively performed by integer unit 3, and address bus 11 is converted from integer unit 3 to data cache unit 6. It is connected.
命令制御回路 2は、プログラムの実行順序に従って命令キヤッシュュ ニッ ト 5から命令をフエツチし、 これを解読して制御信号を生成し、 前 記整数ュニッ ト 3及び浮動小数点ュニッ ト 4等の動作を制御する。プロ グラムの実行順序は、図示を省略するプログラムカウン夕の値や割り込 み要求に基づいて決定される。命令ァドレスは命令ァドレスバス 7から 命令キヤッシュュ二ッ ト 5に与えられ、その命令ァ ドレスの命令が命令 キヤッシュュニッ ト 5から命令バス 8を介して命令制御回路 2に与え られる。  The instruction control circuit 2 fetches an instruction from the instruction cache 5 in accordance with the execution order of the program, decodes the instruction, generates a control signal, and controls the operations of the integer unit 3 and the floating-point unit 4, etc. I do. The execution order of the programs is determined based on a value of a program counter (not shown) or an interrupt request. The instruction address is supplied from the instruction address bus 7 to the instruction cache 5, and the instruction of the instruction address is supplied from the instruction cache 5 to the instruction control circuit 2 via the instruction bus 8.
前記整数ュニッ ト 3は整数演算回路 3 0、汎用レジス夕ファイル 3 1、 及び整列,拡張回路 3 2を有する。整数演算回路 3 0は算術論理演算器、 算術演算器、 及びシフタ等を有し、 整数デ一夕の算術演算、 論理演算、 そしてァドレス演算を可能にする。汎用レジス夕ファイル 3 2は、 特に 制限されないが、 3 2ビッ ト長の汎用レジス夕を複数個有し、バイ ト( 8 ビッ ト) 、 ワード ( 1 6 ビッ ト) 、 ロングワード ( 3 2 ビッ ト) のデ一 夕レジス夕並びにァドレスレジス夕として利用される。前記データバス 1 0は、 特に制限されないが、 6 4ビッ トである。 前記整列 ·拡張回路 3 2は、 6 4ビッ ト幅のデータバスに伝達されるデータと汎用レジス夕 とのビッ ト位置をデータサイズなどに応じて整合させるァライナ機能 と、 データを符号拡張又は論理値 " 0 " 拡張する拡張機能を有する。 尚、前記整数ュニッ 卜 3と命令制御回路 2の全部又は一部の機能を合 せた回路構成を所謂 C P Uとして位置付けてよい。 The integer unit 3 has an integer operation circuit 30, a general-purpose register file 31, and an alignment and extension circuit 32. The integer operation circuit 30 includes an arithmetic logic unit, an arithmetic unit, a shifter, and the like, and enables arithmetic operation, logical operation, and address operation of integer data. Although the general-purpose registry file 32 is not particularly limited, it has a plurality of 32-bit general-purpose registry files, and has a byte (8 bytes). It is used as a bit register, word register (16 bits), and long word (32 bits). The data bus 10 is 64 bits, though not particularly limited. The alignment / expansion circuit 32 has an aligner function for matching the bit positions of the data transmitted to the data bus having a width of 64 bits and the general-purpose register according to the data size and the like, and sign extension or logic of the data. Value "0" Has an extended function to extend. Note that a circuit configuration combining all or part of the functions of the integer unit 3 and the instruction control circuit 2 may be regarded as a so-called CPU.
前記浮動小数点ュニッ ト 4は、 浮動小数点演算回路 4 0、 浮動小数点 レジス夕ファイル 4 1、 及び変換回路 4 2を有する。前記浮動小数点演 算回路 4 0は浮動小数点数データの積和演算を可能にする乗算器、加算 器、 正規化器等を有する。 浮動小数点レジス夕ファイル 4 1は複数個の 3 2 ビッ ト浮動小数点レジス夕を有する。浮動小数点レジス夕は浮動小 数点演算においてソースデータレジス夕及びディスティネーションデ 一夕レジス夕等に利用される。浮動小数点レジス夕は前記変換回路 4 2 を介してデータバス 1 0に接続されている。各浮動小数点レジス夕は 3 2ビッ トであり、単精度浮動小数点数データ毎に 1個の浮動小数点レジ ス夕が用いられる。倍精度浮動小数点数データには 2個の浮動小数点レ ジス夕がペアで割り当てられる。  The floating point unit 4 includes a floating point arithmetic circuit 40, a floating point register file 41, and a conversion circuit 42. The floating-point arithmetic circuit 40 includes a multiplier, an adder, a normalizer, and the like that enable a product-sum operation of floating-point number data. The floating-point register file 41 has a plurality of 32-bit floating-point registers. The floating-point register is used for the source data register and the destination register in floating-point operations. The floating point register is connected to the data bus 10 via the conversion circuit 42. Each floating-point register is 32 bits, and one floating-point register is used for each single-precision floating-point data. Two floating-point registers are assigned to double-precision floating-point data in pairs.
前記変換回路 4 2は、 6 4ビッ 卜幅のデータバス 1 0に伝達されるデ 一夕と浮動小数点レジス夕とのビッ ト位置をデータサイズなどに応じ て整合させるァライナ機能と、 整数データを符号拡張又は論理値 " 0 " 拡張する拡張機能と、整数データを浮動小数点数データに変換する型変 換機能、 そしてその逆の変換を行う逆型変換機能を有する。 それら機能 の詳細については後述する。  The conversion circuit 42 has an aligner function for matching the bit positions of the data transmitted to the data bus 10 having a width of 64 bits and the floating-point register according to the data size, etc. It has an extension function for sign extension or logical value "0" extension, a type conversion function for converting integer data to floating-point number data, and an inverse type conversion function for performing the reverse conversion. Details of those functions will be described later.
前記データキヤッシュュ二ヅ ト 6及び命令キヤッシュュ二ッ ト 5は、 夫々図示を省略するキヤッシュコン トローラ及びキヤッシュメモリを 備えている。前記命令キヤッシュュニッ ト 5及びデータキヤッシュュニ ッ ト 6はデータ信号ゃコン トロール信号を含むキヤッシュバス 1 1を 介してバスコントローラ 1 2に接続される。命令キヤッシュュニッ ト 5 におけるキャッシュミスヒッ ト等に起因する外部アクセスのための命 令ァドレスは前記バスコントローラ 1 2に与えられる。 また、 データキ ャッシュュ二ヅ ト 6におけるキヤッシユミスヒッ ト等に起因する外部 アクセスのためのデ一夕ァドレスは前記パスコン トローラ 1 2に与え られる。バスコントロ一ラ 1 2はそれら命令ァドレス又はデータァドレ スに従って、バスインタフェースバッファ 1 3に外部バス 1 4を介して 結合される外部メモリ (図示を省略) などをアクセスするために、 外部 バスサイクルを起動する制御を行う。 また、 バスコン トローラ 1 2には 夕イマやシリアルコミュニケ一シヨンイン夕フェースコン トローラ等 の周辺回路 1 5が周辺バス 1 6を介して接続されている。第 1図に示さ れるデ一夕プロセッサ 1は、単結晶シリコンのような 1個の半導体基板 (半導体チップ) に形成されている。 The data cache 6 and the instruction cache 5 are: Each is provided with a cache controller and a cache memory (not shown). The instruction cache unit 5 and the data cache unit 6 are connected to a bus controller 12 via a cache bus 11 including a data signal and a control signal. An instruction address for external access due to a cache miss or the like in the instruction cache unit 5 is given to the bus controller 12. In addition, a data address for external access caused by a cache miss in the data cache 6 is given to the path controller 12. The bus controller 12 starts an external bus cycle to access an external memory (not shown) connected to the bus interface buffer 13 via the external bus 14 in accordance with the instruction address or the data address. Control. Further, a peripheral circuit 15 such as an image controller or a serial communication interface controller is connected to the bus controller 12 via a peripheral bus 16. The data processor 1 shown in FIG. 1 is formed on one semiconductor substrate (semiconductor chip) such as single crystal silicon.
前記データプロセッサ 1の命令セッ トは固定小数点転送命令、算術演 算命令、 論理演算命令、 分岐命令、 システム制御命令、 浮動小数点命令 などに大別される。前述のように、 デ一夕アクセス及び命令フヱツチの ためのァドレシング機能は全て整数ュニッ ト 3が負担する。従って、 命 令制御回路 2は、 デコ一ドした命令が浮動小数点命令(浮動小数点ュニ ッ トを動作させる必要のある命令)である場合、 整数ュニッ ト 3にはソ ース又はディスティネーションデータをアクセスするためのアドレシ ング動作等を指示し、浮動小数点ュニッ ト 4には演算制御などを指示す る。  The instruction set of the data processor 1 is roughly divided into fixed-point transfer instructions, arithmetic operation instructions, logical operation instructions, branch instructions, system control instructions, floating-point instructions, and the like. As mentioned above, integer unit 3 is responsible for all addressing functions for overnight access and instruction fetching. Therefore, if the decoded instruction is a floating-point instruction (an instruction that needs to operate a floating-point unit), the instruction control circuit 2 stores the source or destination data in the integer unit 3. The floating point unit 4 instructs an addressing operation or the like for accessing the data.
なお、第 5図に例示されるように命令キヤッシュュニッ ト 5及びデー 夕キャッシュユニッ ト 6を内蔵せずにデ一夕プロセッサ 1 Bを構成し てよい。キャッシュュニッ ト 1 7をデ一夕プロセッサ 1 Bの外部に配置 して利用すればよい。 As shown in Fig. 5, instruction cache unit 5 and data The nighttime processor 1B may be configured without the nighttime cache unit 6. The cache unit 17 may be used outside the processor 1B.
《変換回路》  《Conversion circuit》
第 2図には前記変換回路 4 2及び整列'拡張回路 3 2の一例が示され る。前記デ一夕キヤッシュュニッ ト 6のデータ入出力ポ一トは 6 4 ビヅ トであり、デ一夕アクセスにおいてパス 1 0上には 6 4ビッ トのデ一夕 が現れる。前記整列 ·拡張回路 3 2はァライナ 3 3と拡張回路 3 4を含 む。 前記変換回路 4 2はァライナ 4 3、 型変換 ·逆変換回路 4 4及び拡 張回路 4 5を有する。第 2図の回路接続状態はデ一夕キヤッシュュ二ッ ト 6から汎用レジス夕フィル 3 1、浮動小数点レジス夕ファイル 4 1へ のデ一夕ロードを想定して図示してある。浮動小数点レジス夕の値をデ —夕キャッシュユニッ ト 6にス トァするデ一夕転送方向の接続状態は 図示を省略してある。  FIG. 2 shows an example of the conversion circuit 42 and the alignment / expansion circuit 32. The data input / output port of the data cache unit 6 is 64 bits, and a data access of 64 bits appears on the path 10 in the data access. The alignment and extension circuit 32 includes an aligner 33 and an extension circuit 34. The conversion circuit 42 has an aligner 43, a type conversion / inversion conversion circuit 44, and an extension circuit 45. The circuit connection state in FIG. 2 is shown assuming that data is loaded from the data cache 6 to the general-purpose register file 31 and the floating-point register file 41. The connection state in the data transfer direction where the value of the floating-point register is stored in the cache unit 6 is not shown.
汎用レジス夕ファイル 3 1にデ一夕をロードするとき、前記ァライナ When loading data into the general-purpose registry file 3 1
3 3は、データバス 1 0から供給される 6 4ビッ トデ一夕内の 1バイ ト データ、 2バイ トデ一夕、 又は 4バイ 卜データを 3 2ビッ 卜出力中の対 応する最下位ビッ トフィールドヘシフ トさせる。この 3 2ビッ トを受け る拡張回路 3 4は、入力 3 2 ビッ トの最下位の 1バイ ト又は最下位から 2バイ トを 3 2ビッ 卜へゼロ拡張 (論理値 " 0 "拡張) し、 或いは符号 拡張する。 33 is the corresponding least significant bit in the 32-bit output of one-byte data, two-byte data, or four-byte data within the six-bit data supplied from the data bus 10. To the field. The extension circuit 34 receiving the 32 bits performs zero extension (logical value “0” extension) of the least significant one byte or the least significant two bytes of the input 32 bits to 32 bits. , Or sign extension.
汎用レジス夕ファイル 3 1からデータキャッシュメモリ 6にデ一夕 をス トアするときは、 特に第 2図には図示を省略しているが、 ァライナ 3 3が汎用レジス夕の出力を受けて、汎用レジス夕ファイル 3 1から供 給される 3 2ビッ トデ一夕内の 1バイ ト又は 2バイ ト、又は 4バイ トを 6 4ビッ ト出力中の対応する最下位ビッ トフィ一ルドヘシフ 卜させる。 このとき拡張回路はその 6 4ビッ トを受けて、入力 6 4ビッ ト中の 1 ノ ィ ト、 2バイ 卜又は 4バイ 卜をゼロ拡張し、 或いは符号拡張してデ一夕 バス 1 0に出力する。 When restoring data from the general-purpose registry file 31 to the data cache memory 6, although not shown in FIG. 2, the aligner 33 receives the output of the general-purpose registry Register 1 or 2, or 4 bytes in the 32-bit data supplied from the register file 31 are shifted to the corresponding least significant bit field in the 64-bit output. At this time, the extension circuit receives the 64 bits, and zero-extends, or sign-extends, one, two, or four bytes of the input 64 bits to the data bus 10. Output.
デ一タキャッシュメモリ 6から浮動小数点レジスタファイル 4 1に データをロードするとき、 ァライナ 4 3は、 デ一夕バス 1 0から入力す る 6 4ビッ 卜の内の 1バイ ト、 2 ノ イ ト、 又は 4バイ トを、 出力 6 4ビ ッ 卜の上位 3 2 ビッ トまたは下位 3 2 ビッ ト中の対応する最下位ビッ ト フ ィ ールドへシフ トさせる。 この 6 4ビッ トを受ける型変換'逆変換 回路 4 4は、入力 6 4ビッ トの上位 3 2ビッ ト及び下位 3 2ビッ ト中の 最下位 1バイ ト又は最下位から 2バイ トの前記上位及び下位 2つの整 数データを各々単精度の浮動小数点数データへ並列的に変換可能にさ れている。拡張回路 4 5は型変換 ·逆変換回路 4 4の動作に代えて動作 され、入力 6 4ビッ トの上位 3 2ビッ ト整数データ及び下位 3 2ビッ ト 整数データ中の最下位 1バイ ト又は最下位から 2バイ 卜の上位側をゼ 口拡張 (論理値 " 0 "拡張) 或いは符号拡張し、 整数データのまま、 浮 動小数点レジス夕ファイル 4 1に転送する。  When loading data from the data cache memory 6 to the floating-point register file 41, the aligner 43 sets one byte out of the 64 bits input from the data bus 10 and 2 knots. , Or 4 bytes are shifted to the corresponding least significant bit field of the upper 32 bits or lower 32 bits of the output 64 bits. The type conversion 'reverse conversion circuit 44 receiving the 64 bits is composed of the least significant one byte or the least significant two bytes of the upper 32 bits and lower 32 bits of the input 64 bits. The upper and lower two integer data can be converted to single-precision floating-point data in parallel. The extension circuit 45 is operated in place of the operation of the type conversion / inversion conversion circuit 44, and the least significant one byte or the least significant 32 bits of the input 64 bits and the lower 32 bits of the integer data is operated. The upper two bytes from the bottom are extended (Zero extension of logical value "0") or sign extended, and transferred to the floating-point register file 41 as integer data.
浮動小数点レジス夕ファイル 4 1からデ一夕キャッシュメモリ 6に デ一夕をス トアするときは、 特に第 2図には図示を省略しているが、 型 変換 ·逆変換回路 4 4は、 入力 6 4ビッ トの上位 3 2ビッ ト浮動小数点 数データ及び下位 3 2ビッ ト浮動小数点数データを、夫々 1バイ ト又は 2バイ 卜の整数データに変換する。 或いは、 入力 6 4ビッ 卜の倍精度浮 動小数点数デ一夕を 3 2ビッ 卜の整数デ一夕に変換する。変換された整 数デ一夕は、 ァライナに 6 4ビッ トのデ一夕として入力され、 上位 3 2 ビッ ト及び下位 3 2 ビッ トの対応するビッ トフィ一ル ドの下位側に 夫々配置されてデ一夕キヤッシュュニッ ト 6に向けて出力される。 前記変換回路 4 2及び整列'拡張回路 3 2の動作は命令制御回路 2に よる命令デコード結果に従って制御される。 When restoring data from the floating-point register file 4 1 to the data cache memory 6, although not particularly shown in FIG. 2, the type conversion / inverse conversion circuit 4 4 It converts the 4-bit upper 32-bit floating-point data and the lower 32-bit floating-point data to 1-byte or 2-byte integer data, respectively. Alternatively, it converts the input 64 bit double precision floating point number into a 32 bit integer number. The converted integer data is input to the aligner as a 64-bit data, and is placed at the lower side of the corresponding upper 32 bit and lower 32 bit bit fields, respectively. Output to cache unit 6. The operations of the conversion circuit 42 and the alignment 'extension circuit 32 are transmitted to the instruction control circuit 2. Is controlled according to the result of the instruction decoding.
第 3図にはデ一夕プロセッサ 1の浮動小数点ロード命令として" FM 0 V. S W 2 S @Rm, FRn"が例示される。 同図に示される浮動 小数点ロード命令は、デ一夕キヤヅシュュニッ ト 6のキャッシュメモリ から 2バイ 卜の整数データを変換回路 4 2に与え、この変換回路 4 2で 単精度の浮動小数点数データに変換し、単精度の浮動小数点レジス夕へ ロードする処理を指示する命令である。  FIG. 3 exemplifies "FM 0 V. SW 2 S @Rm, FRn" as a floating-point load instruction of the processor 1. The floating-point load instruction shown in the figure gives the 2-byte integer data from the cache memory of the data cache 6 to the conversion circuit 42, which converts it to single-precision floating-point data. This instruction instructs a process to load the data into a single-precision floating-point register.
第 3図に例示される浮動小数点ロード命令" FMOV. SW2 S @ Rm, FR n" において、 5 0は主ォプコ一ド (主オペレーションコー ド) フィ一ルド、 5 1はアドレッシングモードフィールド、 5 2サブォ プコード (サブォペレ一シヨンコード) フィールド、 5 3はリザ一ブフ ィ一ルド、 5 4はソースオペランドサイズフィールド、 5 5はベースレ ジス夕指定フィ一ルド、 5 6はデスティネーションレジス夕サイズ指定 フィールド、 5 7はデスティネーションレジス夕指定フィ一ルドである。 第 3図の例では、主ォプコードフィールド 5 0には浮動小数点ロード を示す主ォプコ一ド f 1 o a dが割り付けられ、ァドレシングモードフ ィールド 5 1にはレジス夕間接を示すアドレッシングモード r iが割 り付けられ、サブォプコ一ドフィ一ルド 5 2には符号付き整数から単精 度浮動小数点数への型変換を示すサブォプコ一ド i 2 f が割り付けら れ、 リザーブフィールド 5 3はゼロフィールドとされ論理値 " 0 "が割 り付けられ、ソースオペランドサイズ指定フィールド 54には 2バイ ト (wo r d) を示すサイズ wが割り付けられ、 ベースレジス夕指定フィ —ルドにはベースレジス夕となる汎用レジス夕の番号を示すベースレ ジス夕番号 mが割り付けられ、デイスティネーションレジス夕サイズ指 定フィールドにはデスティネーシヨンレジス夕となる浮動小数点レジ ス夕のサイズ sが割り付けられ、ディスティネーションレジス夕フィー ルドにはデスティネーションレジスタ番号 nが割り付けられている。 第 4図には前記浮動小数点ロード命令 " FMOV. SW2 S @R 1 , FR 4"を実行したときのデータフローが例示される。第 4図の例では、 アドレス 0x 0 104 (Oxは 1 6進数を意味する)番地に格納されて いる 2バイ ト整数デ一夕 0 x 0003を浮動小数点レジス夕 4番(FR 4 ) へロードする命令" FMOV. S W 2 S @R 1 , FR4"を一例 とする。 In the floating-point load instruction "FMOV. SW2 S @ Rm, FR n" exemplified in FIG. 3, 50 is a main opcode (main operation code) field, 51 is an addressing mode field, and 52 is a main operation code field. Subop code (suboperation code) field, 53 is a reserve field, 54 is a source operand size field, 55 is a base register setting field, 56 is a destination register setting field, 57 is a field designated as a destination registry evening. In the example of FIG. 3, the main opcode field 50 is assigned a main opcode f1 oad indicating a floating-point load, and the addressing mode field 51 is assigned an addressing mode ri indicating a register address indirect. The subopcode field 52 is assigned the subopcode i2f, which indicates a conversion from a signed integer to a single-precision floating-point number, and the reserved field 53 is set to the zero field. A logical value "0" is assigned, a size w indicating two bytes (wo rd) is assigned to the source operand size designation field 54, and the base register evening designation field is a general-purpose register serving as a base register evening. The base register evening number m is assigned to indicate the evening number, and the destination register evening size is set in the destination register evening size field. Size s of several points cashier scan evening is assigned, the destination register evening fee Field is assigned a destination register number n. FIG. 4 illustrates a data flow when the floating-point load instruction “FMOV. SW2 S @R 1, FR 4” is executed. In the example shown in Fig. 4, the 2-byte integer 0x0003 stored at address 0x0104 (Ox means hexadecimal) is loaded into floating-point register 4 (FR4). The instruction to be executed is "FMOV. SW 2 S @R 1, FR4" as an example.
汎用レジス夕 1番(R 1)の内容はソースオペランドのアドレス Ox 0 104とする。 0x 0 100番地には 2バイ 卜の整数 0 x 000 1、 0 x 0 102番地には 0x0002、 0x 0 106番地には 0x 000 4がそれそれ格納されている。  The contents of the general-purpose register 1 (R1) are the address Ox0104 of the source operand. Address 0x0100 stores a 2-byte integer 0x0001, address 0x0102 stores 0x0002, and address 0x0106 stores 0x0004.
第 1ステップとして、 先ず、 浮動小数点ロード命令" FMOV. S W As the first step, first, the floating-point load instruction "FMOV. SW
2 S @ R 1 , F R 4 "が発行されると、 汎用レジスタ R 1の内容 Ox 0 104をアドレスとしてデータキャッシュュニッ ト 6がアクセスさ れ、 0 X 0 104の最下位 4ビッ トをゼロとした 0 X 0 100番地から の 8バイ ト ( 64ビッ ト)の整数データ 0x 000 1 0002 000When 2 S @ R 1, FR 4 "is issued, the data cache unit 6 is accessed with the contents of general register R 1 as Ox 0 104 as an address, and the least significant 4 bits of 0 X 0 104 are set to zero. 8-byte (64-bit) integer data from address 0X0100 0x000 1 0002 000
3 0004が読み出される。 3 0004 is read.
第 2ステップとして、ァライナ 43はデ一夕キヤッシュユニッ ト 6か ら読み出された 8バイ 卜のデータに対する整列制御の為に、前記ァドレ ス 0 X 0 1◦ 4の最下位ビッ 卜 4の値( 32ビッ ト) を入力デ一夕 8パ- イ トに関するオフセヅ トとし (o f f s e t 4) 、 命令で指定される アクセスサイズ 2 ( 16ビッ ト) をサイズとし (s i z e 2) 、 出力 64ビッ トの上位又は下位 32ビッ 卜のどちらへシフ 卜するかを示す 出力位置指ビヅ トとしてデスティネーションレジスタ ( F R 4 )のレジ ス夕番号 4の最下位ビッ 卜の値である 0をアップノローとし(up/1 0 w 0) とする制御信号を入力する。 これにより、 入力データ 8バイ ト中のオフセッ 卜 4バイ ト ( 3 2ビッ ト) からの下位側 2バイ ト O x 0 0 0 3を出力デ一夕 8バイ ト中のオフセッ ト 4から上位側へ 2バイ ト シフ 卜させ、その他の出力値は対応するビッ ト位置の入力値をそのまま にして、 8バイ トデ一夕列 0 X 0 0 0 1 0 0 0 3 0 0 0 3 0 0 04 をァライナ 4 3から出力する。 As a second step, the aligner 43 controls the alignment of the 8-byte data read from the data cache unit 6 with the value of the least significant bit 4 of the address 0 X 0 1 X4. (32 bits) is set as the offset for 8 bytes of input data (offset 4), the access size 2 (16 bits) specified by the instruction is set as the size (size 2), and the output is 64 bits. As the output position finger bit indicating whether to shift to the upper 32 bits or the lower 32 bits, 0, which is the value of the least significant bit of register number 4 of the destination register (FR4), is taken as an up-narrow. / 1 0 w 0) is input. This allows input data of 8 bytes The lower 2 bytes Ox003 from the 4 bytes (32 bits) of the offset during the output are shifted by 2 bytes from the offset 4 during the 8 bytes to the upper side. For the other output values, the 8-bit data sequence 0 X 0 0 0 1 0 0 0 3 0 0 0 3 0 0 04 is output from the aligner 43 while keeping the input values of the corresponding bit positions as they are.
第 3ステップとして、 データ型変換 ·逆変換回路 44はァライナ 43 の出力である 8バイ ト、および変換の方法として符号付き 2バイ ト整数 を 3 2 ビッ 卜単精度浮動小数点数に変換することを意味する制御信号 を前記命令制御回路 2から入力し、入力 8バイ ト中の上位 4バイ ト及び 下位 4バイ 卜の各最下位ビッ トを基準とした 2つの 2バイ ト 0 X 0 0 0 3、 0 x 0 0 04を 2つの符号付き 2バイ ト整数とし、 各々を 3 2ビ ッ ト単精度浮動小数点数 0 X 4 04 0 0 0 0 0、 0 x 4 08 0 0 0 0 0に変換し、 2つの 3 2 ビッ ト単精度浮動小数点数である 8バイ トを出 力する。  As a third step, the data type conversion / inversion circuit 44 converts the 8-byte output of the aligner 43 and the conversion method from a signed 2-byte integer to a 32-bit single-precision floating-point number. A meaningful control signal is input from the instruction control circuit 2, and two 2 bytes based on the least significant bit of the upper 4 bytes and the lower 4 bytes of the input 8 bytes 0 X 0 0 3 , 0x00004 as two signed 2-byte integers, each of which is converted to a 32-bit single-precision floating-point number 0x404040000, 0x4080000 And outputs 8 bytes, two 32 bit single precision floating point numbers.
第 4ステップとして、 最後に型変換 ·逆変換回路 44が出力する 8バ ィ トの上位 4バイ ト 0 x 4 04 0 0 0 0 0が浮動小数点レジスタファ ィル内の単精度浮動小数点レジスタ 4番 (FR 4 ) へ書き込まれる。 以上の手順によって、 0 x 0 1 04番地の 2バイ ト整数 0 X 0 0 0 3 が 3 2ビッ 卜単精度浮動小数点数データ 0 x 4 04 0 0 0 0 0 ( 3. 0 ) に変換されて浮動小数点レジス夕 FR 4へ書き込まれる。  As the fourth step, finally, the upper 4 bytes of the 8 bytes output by the type conversion / inversion circuit 44 are 0x4 04 0 0 0 0 0 is the single precision floating point register 4 in the floating point register file. No. (FR4). By the above procedure, the 2-byte integer 0 X 0 0 0 3 at address 0 x 0 104 is converted to 32-bit single-precision floating-point data 0 x 4 04 0 0 0 0 0 (3.0). Is written to FR4.
前記第 3ステップにおいて整数データを浮動小数点数データに変換 する手法には公知の方法を採用し、 これを型変換 ·逆変換回路の変換ァ ルゴリズム若しくは変換論理に反映しておけばよい。例えば、 整数デー 夕の符号を浮動小数点数データの符号 ( S) とする。 整数デ一夕の絶対 値の 2進表現 (bo b ! b b L) を求め、 2進表現の桁数 (L + 1 ) が仮数の桁数になるようにする。 このとき、 整数データのサイズ情報は 命令のサイズ指定フィールドを命令制御回路 2が解読して取得する。前 記絶対値の 2進表現を正規化前の仮数 (M=b0. bib '- b L ) とし、 その 2進表現の桁数 (L) 及び指数のゲ夕 (E0) から正規化前の指数 (E = E。 + L) を決定し、 それらによって正規化されていない浮動小 数点数が求められる。これを正規化することによって整数デ一夕の浮動 小数点数への変換が完了される。 In the third step, a known method is used for converting the integer data into floating-point number data, and this may be reflected in the conversion algorithm or conversion logic of the type conversion / inversion conversion circuit. For example, the sign of integer data is the sign (S) of floating-point data. Calculate the binary representation (bo b! Bb L) of the absolute value of the integer data so that the number of digits in the binary representation (L + 1) is the number of digits of the mantissa. At this time, the size information of the integer data is The instruction control circuit 2 decodes and obtains the instruction size specification field. The binary representation of the absolute value is assumed to be the mantissa before normalization (M = b 0. Bib '-b L), and normalized from the number of digits (L) of the binary representation and the exponent value (E 0 ). Determine previous exponents (E = E. + L) and use them to determine the unnormalized floating-point number. By normalizing this, the conversion of the integer data to a floating-point number is completed.
尚、 型変換 ·逆変換回路 44において浮動小数点数データを整数デー 夕に変換する手法にも公知の方法を採用すればよい。例えば、 浮動小数 点数の仮数 Mの有効桁数 Lを整数データの桁数に合わせて、仮数を M = 1. b i b z b s b tと変形する。 整数データの桁数は、 命令に含まれ る整数データのビッ ト長を示す情報の解読結果から得られる。指数 Eの ゲ夕 E。と前記浮動小数点数の仮数の有効桁数 Lとの和の値 E Q + Lを 取得し、 Eく ED + Lならば、 E = E。 + Lになるまで、 仮数 Mを 1桁 右シフ トし、 Eを + 1し、 = £。 + のときの値 !t^ b g b Lを整 数の絶対値とする。浮動小数点数の符号が負の場合にはその絶対値を 2 の補数に変換する。 これによつて、 逆型変換が完了される。 It should be noted that a known method may be adopted as a method of converting floating-point data into integer data in the type conversion / inversion conversion circuit 44. For example, the number of significant digits L of the mantissa M of the floating-point number is adjusted to the number of digits of the integer data, and the mantissa is transformed into M = 1. bibzbsbt. The number of digits of the integer data is obtained from the result of decoding the information indicating the bit length of the integer data included in the instruction. Exponent E Said floating Gets the value E Q + L of the sum of the number of significant digits L of point number mantissa, if E rather E D + L and, E = E. Shift mantissa M one digit right until + L, E + 1 and = £. Value when +! Let t ^ bgbL be the absolute value of the integer. If the sign of a floating-point number is negative, convert its absolute value to two's complement. This completes the inverse conversion.
第 3図の命令フォーマツ 卜の各フィールドのコ一ド割付けに応じて、 他のァドレシングモ一ド、 他のデータサイズ、 浮動小数点数への変換無 しデータロード処理、 変換付きデータロード処理の並行処理、 等を指定 できる。  Parallel processing of other addressing modes, other data sizes, data loading without conversion to floating-point numbers, and data loading with conversion according to the code assignment of each field of the instruction format in Fig. 3. , Etc. can be specified.
前記浮動小数点数への変換無しデータロード処理を指定した場合の 処理は次のようになる。データ口一ドの種別が整数データから整数デ一 夕へロードであることを示すコ一ドを前記第 3図の命令コードにおけ るサブォプコ一ドフィールド 52に設定した場合、浮動小数点数への変 換無しデータロード処理となる。 例えば、 その場合、 前記第 1及び第 2 ステツプの処理は第 3図の命令コードの場合と同じであり、前記第 3ス テツプの処理が拡張回路 45による処理となる。即ち、 デ一夕拡張回路 45は例えば第 4図のァライナ 43の出力である 8バイ トデータ 0 X 000 1 000 2、 0 x 003 0004、 および符号付き 2バイ ト整 数を符号拡張して 32ビッ 卜にすることを意味する制御信号を入力し、 入力 8バイ ト中の上位 4バイ ト及び下位 4バイ 卜の各最下位バイ トの 2つの 2バイ ト 0 x 0 0 03と 0 x 00 04を 2つの符号付き 2バイ ト整数とし、 各々を 32ビッ トに符号拡張して、 整数デ一夕 0 x 000 0 0 00 3、 0 x 000 0004を出力する。 その後、 第 4ステップ として、最後に拡張回路 45が出力する 8バイ 卜の上位 4バイ ト 0 X 0 000 0 0 03が浮動小数点レジスタファイル内の単精度浮動小数点 レジス夕 4番 (FR 4) へ書き込まれ、 後から、 ソフ トウエア処理等で、 その浮動小数点レジス夕 4番(FR 4)の整数デ一夕が浮動小数点数デ —夕に変換される。 The processing when the data loading processing without conversion to the floating-point number is designated is as follows. When a code indicating that the type of the data code is a load from integer data to integer data is set in the sub code field 52 in the instruction code of FIG. This is a data load process without conversion. For example, in this case, the processing of the first and second steps is the same as that of the instruction code of FIG. The processing of the step is the processing by the extension circuit 45. That is, the data extension circuit 45 performs sign extension of, for example, the 8-byte data 0 X 000 1 000 2, 0 x 003 0004, which is the output of the aligner 43 in FIG. A control signal is input, meaning that the lower 4 bytes of the upper 4 bytes and the lower 4 bytes of the lower 8 bytes of the input 8 bytes are 0 x 00 03 and 0 x 00 04 Are two signed 2-byte integers, each of which is sign-extended to 32 bits, and outputs integer data 0 x 000 0 0 00 3 and 0 x 000 0004. Then, as a fourth step, finally, the upper 4 bytes of the 8 bytes output by the extension circuit 45 0 X 0 000 0000 3 are transferred to the single-precision floating-point register 4 (FR 4) in the floating-point register file. It is written, and the integer data of the floating-point register number 4 (FR 4) is converted to floating-point number data later by software processing or the like.
第 3図の命令フォーマッ 卜においてディスティネーションレジス夕 サイズ指定フィールド 5 6の値を 64ビッ トとすれば、前記変換付きデ 一夕ロード処理の並行処理を指定できる。即ち、 第 4図のデータフロー における説明の前記第 4ステツプにおいて、 最後に型変換 ·逆変換回路 44が出力する 8バイ 卜の上位 4バイ ト 0 x 4040 00 00が浮動 小数点レジス夕ファイル 4 1内の単精度浮動小数点レジス夕 4番( F R 4 ) に、 そして下位 4バイ ト 0 X 4 08 0 0000が浮動小数点レジ ス夕ファイル 4 1内の単精度浮動小数点レジス夕 5番(FR 5 ) に書き 込まれる。  If the value of the destination register size specification field 56 is 64 bits in the instruction format shown in FIG. 3, the parallel processing of the data loading with conversion can be specified. That is, in the fourth step described in the data flow of FIG. 4, finally, the upper 4 bytes 0 x 4040 00 00 of the 8 bytes output by the type conversion / inversion circuit 44 are the floating-point register file 4 1 In the single-precision floating-point register number 4 (FR 4), and the lower 4 bytes 0 X 4 08 0 0000 are in the single-precision floating-point register number 4 (FR 5). Is written to
前記浮動小数点ロード命令が採り得る別のァドレシングモードは上 記レジス夕間接モードに限定されず、基本的にはデータプロセッサ 1に おける C P Uのァドレシングモードを自由に利用することが可能であ り、 2個の汎用レジス夕の値を加算して得られる値を実効ァドレスとす るインデックス付きレジスタ間接、汎用レジス夕の値を既定値だけ順次 インクリメントしていくポス トインクリメントレジス夕間接モード、或 いはィ ミディエイ ト値でァドレスを指定するィ ミディエイ トモ一ドな どを採用することが可能である。 Another addressing mode that the floating-point load instruction can take is not limited to the above-mentioned register indirect mode, but basically the CPU's addressing mode in the data processor 1 can be freely used. The effective address is the value obtained by adding the values of the two general-purpose registers. Index indirect register indexing, post-registration register indirect mode in which the value of the general-purpose register is sequentially incremented by a predetermined value, or immediate mode in which the address is specified by an immediate value. It is possible.
《グラフィ ックチップ》  《Graphic chip》
第 6図には本発明に係るデ一夕処理装置の別の例であるグラフイ ツ クチップが示される。 同図に示されるグラフィ ックチップ 1 Cは、 1個 の半導体チップに、 プロセッサュニッ ト 2 0、 プログラムメモリ 2 1、 レンダラ一 2 2、 ディスプレイコントローラ 2 3、 メモリコントローラ 2 4、 デ一夕メモリ 2 5、 及び外部ィン夕フェースコン トローラ 2 6を 有して成る。前記レンダラー 2 2やディスプレイコントローラ 2 4はプ ロセッサュニッ ト 2 0の負担を軽減するためのァクセラレー夕ュニッ トとして位置付けることができる。  FIG. 6 shows a graphic chip which is another example of the data processing apparatus according to the present invention. The graphic chip 1C shown in the figure is composed of a processor chip 20, a program memory 21, a renderer 22, a display controller 23, a memory controller 24, a data memory 25, and a processor unit 20 in one semiconductor chip. And an external interface controller 26. The renderer 22 and the display controller 24 can be positioned as an accelerator unit for reducing the load on the processor unit 20.
プロセッサュニッ ト 2 0は第 1図の命令制御回路 2、整数ュニッ ト 3、 及び浮動小数点ュニッ ト 4を備えて成り、電気的に書き換え可能なフラ ッシュメモリなどによって構成されたプログラムメモリ 2 1に格納さ れているプログラムにしたがってホス ト制御及び浮動小数点数デ一夕 を用いたジオメ ト リ演算制御等を行う。レンダラ一 2 2はフレームバッ ファに対する画像デ一夕の描画制御を行なう。ディスプレイコントロ一 ラ 2 3はフレームバッファに描画された画像データの表示制御を行な う。 メモリコントローラ 2 4はプロセッサュ二ッ ト 2 0、 レンダラー 2 2及びディスプレイコン トロ一ラ 2 3からのデータメモリアクセス要 求を調停し、 データメモ リ 2 5に対するメモリアクセス権と、 メモリア クセスインタフヱース制御を行う。データメモリ 2 5は例えばシンクロ ナス D R A Mによって構成される混載メモリであり、フレームバッファ メモリ、 テキスチャ一メモリ、 ワークメモリ等として利用される。 デ一 夕バス 1 0及びデータァドレスバス 1 1は外部ィン夕フエースコン ト ローラ 2 6を介してグラフィ ヅクチップ 1 Cの外部に接続可能にされ ている。 The processor unit 20 includes the instruction control circuit 2, the integer unit 3, and the floating-point unit 4 of FIG. 1, and is stored in the program memory 21 constituted by an electrically rewritable flash memory or the like. The host control and the geometry operation control using floating point data are performed according to the installed program. The renderer 122 controls the image buffer rendering for the frame buffer. The display controller 23 controls the display of the image data drawn in the frame buffer. The memory controller 24 arbitrates data memory access requests from the processor unit 20, the renderer 22, and the display controller 23, and has a memory access right to the data memory 25 and a memory access interface. Control. The data memory 25 is an embedded memory composed of, for example, a synchronous DRAM, and is used as a frame buffer memory, a texture memory, a work memory, or the like. One The evening bus 10 and the data address bus 11 can be connected to the outside of the graphic chip 1C via an external interface controller 26.
《グラフィ ックシステム》  《Graphic system》
第 7図には第 1図に例示されたデ一夕プロセッサ 1を用いて構成し たグラフィ ックスシステムが例示される。第 7図において、 メィンバス 6 0には前記データプロセッサ 1、 メインメモリ 6 1、 3次元グラフィ ックス ( 3 D G ) レンダラ一 6 2、 及び周辺コントローラ 6 3が接続さ れる。メインメモリ 6 1はグラフィ ックス処理に必要とされるデータや プログラムを格納するメモリとして利用される。データプロセッサ 1は 浮動小数点数デ一夕を用いてジオメ ト リ演算制御などを行う。このとき、 前述のように、 3次元モデルのポリゴンデ一夕を例えば 8ビッ ト、 1 6 ビッ ト及び 3 2ビッ ト整数データを単位として前記メインメモリ 6 1 に保有する。デ一夕プロセッサ 1はその整数デ一夕を浮動小数点レジス 夕にロードする命令として前記第 3図の命令などをサポートし、変換回 路 4 2で整数デ一夕を浮動小数点数データに変換する機能を有してい る。 3 D Gレンダラー 6 2はデ一夕プロセッサ 1によるジオメ ト リ演算 結果を入力し、 フレームバッファメモリ 7 0へ表示デ一夕を描画し、 更 に描画デ一夕を表示タイ ミングに同期して読み出し、 ビデオコーダ 7 1 でビデオ信号に変換させる表示制御機能も備えている。 3 D Gレンダラ - 6 2はデータプロセッサ 1の負担を軽減し、若しくは処理速度を向上 させる為のァクセラレ一夕として位置付けることができる。  FIG. 7 illustrates a graphics system configured using the data processor 1 illustrated in FIG. In FIG. 7, the main processor 60 is connected to the data processor 1, the main memory 61, a three-dimensional graphics (3DG) renderer 62, and a peripheral controller 63. The main memory 61 is used as a memory for storing data and programs required for graphics processing. The data processor 1 controls the geometry operation using floating point data. At this time, as described above, the polygon data of the three-dimensional model is stored in the main memory 61 in units of, for example, 8-bit, 16-bit, and 32-bit integer data. The data processor 1 supports the instruction shown in FIG. 3 as an instruction for loading the integer data into the floating-point register, and converts the integer data into floating-point data by the conversion circuit 42. Has a function. 3 The DG renderer 6 2 receives the result of the geometry operation from the data processor 1 and draws the display data to the frame buffer memory 70, and reads the data again in synchronization with the display timing. It also has a display control function for converting the video coder 71 into a video signal. The 3D renderer-62 can be positioned as an excel to reduce the load on the data processor 1 or to improve the processing speed.
周辺コントロ一ラ 6 3は周辺バス 7 2を介して接続されたォ一ディ ォプロセッサ 7 3、 D V D -R O M ドライバ 7 4、 モデム 7 5等の周辺 回路をデ一夕プロセッサ 1の指示に基づいて制御する。外部からの制御 情報は入力ポ一トを介して周辺コン トロ一ラ 6 3に入力される。オーデ ィォプロセッサ 73はサウン ドメモリ 76に格納されている音声デー 夕を利用して音声合成処理などを制御し、 ディジタル ·アナログ 'コン バー夕 (D AC) 77でディジ夕ル音声信号をアナログ信号に変換し、 スピーカなどに出力する。 DVD— ROMドライバ 74には図示を省略 する DVD— ROMディスク装置が接続され、モデム 75には電話回線 などが接続される。 The peripheral controller 63 controls peripheral circuits such as a audio processor 73, a DVD-ROM driver 74, and a modem 75 connected via a peripheral bus 72 based on instructions from the processor 1. Control. External control information is input to the peripheral controller 63 via the input port. Aude The audio processor 73 controls the audio synthesis processing using the audio data stored in the sound memory 76, and converts the digital audio signal into an analog signal using the digital / analog converter (DAC) 77. Convert and output to speaker etc. A DVD-ROM disk device (not shown) is connected to the DVD-ROM driver 74, and a telephone line or the like is connected to the modem 75.
次に、第 1図のデ一夕プロセッサ若しくは第 7図のデ一夕処理システ ムを利用した 3次元グラフィ ックス処理におけるジオメ ト リ演算処理 の一例を説明する。  Next, an example of the geometry calculation processing in the three-dimensional graphics processing using the data processing processor in FIG. 1 or the data processing system in FIG. 7 will be described.
デ一夕プロセッサ 1は 3次元形状を近似するポリゴンデータを操作 して 3次元形状を動的に変化させて表示する為のァフィン変換、透視変 換等のジオメ トリ演算を行う。その演算結果はフレームバッファメモリ に描画される。  The data processor 1 operates on polygon data that approximates a three-dimensional shape, and performs geometry operations such as affine transformation and perspective transformation for dynamically changing and displaying the three-dimensional shape. The calculation result is drawn in the frame buffer memory.
第 8図には 3次元グラフィ ックスのモデルデ一夕が例示されている。 このモデルデ一夕は、 3次元物体を多数のポリゴンで近似するデ一夕形 式を有する。 ( 1 ) 〜 ( 16 ) はポリゴンの座標点を示し、 STR I P 80はポリゴン列を総称している。  Fig. 8 shows an example of a 3D graphics model. This model data has a data format in which a three-dimensional object is approximated by a large number of polygons. (1) to (16) indicate the coordinate points of the polygon, and STRIP 80 is a generic term for the polygon row.
第 9図にはポリゴン列のデータ構造を C言語的標記で示してある。同 図において、 vx、 vy、 v zはポリゴンの頂点座標デ一夕、 nx, n y, nxはポリゴンの頂点法線べク トル、 a R G Bは面の反射率及び色 の三原色 RGBの強度、 u, Vはテキスチャ一データのベース座標を 夫々示すデータである。 それらデータは、 座標点毎に存在する。 ここで は、前記ポリゴンの頂点座標データ及びテキスチャーデ一夕のベース座 標は各成分毎に 16ビッ ト整数データとされる。ポリゴンの頂点法線べ ク トルは各成分毎に 8ビッ 卜整数データとされる。 aRGBの面の反射 率及び色の三原色 RGBの強度は各成分毎に 8ビッ 卜の整数データと される。 Fig. 9 shows the data structure of the polygon sequence in C language notation. In the figure, vx, vy, and vz are the vertex coordinates of the polygon, nx, ny, and nx are the vertex normal vectors of the polygon, a RGB is the reflectance of the surface and the intensity of the three primary colors RGB, u, V is data indicating the base coordinates of the texture data. These data exist for each coordinate point. Here, the vertex coordinate data of the polygon and the base coordinates of the texture pattern are 16-bit integer data for each component. The vertex normal vector of the polygon is 8-bit integer data for each component. The reflectance of the aRGB surface and the three primary colors of RGB The intensity of RGB is 8-bit integer data for each component. Is done.
第 1 0図にはデータプロセッサ 1を用いたジオメ ト リ演算処理の一 例がフローチヤ一卜で示される。第 1 0図では、 ポリゴン列の各頂点每 に、 頂点座標データロード S 1、 座標変換及び当巿変換 S 2、 法線べク 夕ロード S 3、 色計算 S 4、 及び描画情報出力 S 5の処理を行うように なっている。  FIG. 10 is a flowchart showing an example of the geometry calculation processing using the data processor 1. In FIG. 10, in each vertex of the polygon row, a vertex coordinate data load S1, a coordinate transformation and a corresponding transformation S2, a normal vector load S3, a color calculation S4, and a drawing information output S5 are provided. Processing is performed.
頂点座標ロード処理 S 1では第 3図で説明した整数データの浮動小 数点数への変換機能付きロード命令を利用して、頂点座標データを浮動 小数点レジスタにロードする。 このとき、 整数の頂点座標データは各成 分 1 6ビッ トであり、そのビッ ト長倩報は前記ロード命令のフィールド 5 4に対する解読結果から得られる。 したがって、 少なく ともその 1命 令を実行すれば、座標点の一つの成分の浮動小数点数データを浮動小数 点レジス夕に得ることができる。  Vertex coordinate load processing S1 loads the vertex coordinate data into the floating-point register using the load instruction with the function of converting the integer data to the floating-point number described in FIG. At this time, the integer vertex coordinate data is 16 bits for each component, and the bit length information is obtained from the decoding result for the field 54 of the load instruction. Therefore, if at least one instruction is executed, floating point data of one component of the coordinate point can be obtained in the floating point register.
座標変換及び透視変換処理 S 2では、前記ロードされた座標点の浮動 小数点数データと座標変換マト リクスとの演算によって、 画面 (平面) 上の座標と 3次元空間上での奥行きが求められる。  In the coordinate transformation and perspective transformation processing S2, the coordinates on the screen (plane) and the depth in the three-dimensional space are obtained by calculating the floating-point data of the loaded coordinate points and the coordinate transformation matrix.
法線べクタロード処理 S 3においても、第 3図で説明した整数データ の浮動小数点数への変換機能付きロード命令を利用して、法線べクタを を浮動小数点レジス夕に口一ドする。 このとき、 整数の法線べクタの成 分デ一夕は 8ビッ トであり、そのビッ ト長情報は前記ロード命令のフィ —ルド 5 4に対する解読結果から得られる。整数デ一夕のビッ ト長が変 わっても、ロードすべき整数デ一夕のビッ ト長変更をレジス夕等に設定 する特別な処理を要しない。 したがって、 少なく ともその 1命令を実行 すれば、法線べクタの一つの成分の浮動小数点数データを浮動小数点レ ジス夕に得ることができる。  Normal vector loading process In step S3, the normal vector is loaded into the floating-point register using the load instruction with the function of converting integer data to a floating-point number described in FIG. At this time, the component data of the integer normal vector is 8 bits, and the bit length information is obtained from the result of decoding the field 54 of the load instruction. Even if the bit length of the integer data changes, no special processing is required to set the change of the bit length of the integer data to be loaded in the register or the like. Therefore, by executing at least one instruction, the floating-point data of one component of the normal vector can be obtained in the floating-point register.
色計算処理 S 4では、 頂点法線のべク トルに対して、 画面上でァフィ ン変換されたデータと光線べク トルとの内積から頂点の明るさを演算 し、 更にそれに色情報を加味する。 In the color calculation process S4, the vector of the vertex normal is The brightness of the vertices is calculated from the inner product of the converted data and the ray vector, and the color information is added to it.
描画情報出力処理 S 5では、 以上得られた画面座標、 奥行き、 色を加 味した明るさ、 テキスチャ一座標の各デ一夕を、 メモリ又はレンダラ一 に出力する。  In the drawing information output process S5, each of the obtained screen coordinates, depth, brightness in consideration of color, and texture coordinates is output to a memory or a renderer.
第 1 1図には第 1 0の処理との比較例が示される。 この処理例は、 整 数デ一夕から浮動小数点数デ一夕への型変換に際して、整数データのビ ッ ト長をレジス夕の設定値から得るようにしたシステム若しくはデー 夕プロセッサを用いた処理例である。 したがって、 頂点座標ロード処理 S 1の前に、 変換デ一夕サイズが 1 6ビッ ト ( 2バイ ト) であること変 換デ一夕サイズレジス夕に設定する為のロード命令を実行する処理( S a ) を追加しなければならない。 法線べクタロード処理では、 その成分 データのサイズが 8ビッ ト( 1バイ ト)であるから、 当該処理の前に、 や はり変換データサイズレジス夕の設定値を変更するロード命令を実行 しておかなければならない (S b ) 。 第 1 0図の処理と比較すると、 ポ リゴンの 1つの頂点に対する演算処理毎に、少なく とも余計に 2回のレ ジス夕口一ド処理を実行しなければならない。  FIG. 11 shows a comparative example with the 10th processing. This processing example uses a system or a data processor that obtains the bit length of integer data from the register setting value when converting from integer data to floating point data. It is an example. Therefore, before the vertex coordinate load processing S1, the conversion data size is 16 bits (2 bytes). The processing for executing the load instruction for setting the conversion data size register to the conversion data size (2 bytes) ( S a) must be added. In the normal vector loading process, the size of the component data is 8 bits (1 byte). Therefore, before the process, a load instruction that changes the setting value of the post-conversion data size register is executed. Must be left (S b). Compared to the processing in Fig. 10, at least two more times must be performed for each operation on one polygon vertex.
第 1 2図には第 1図のデータプロセッサ 1を採用した情報処理装置 (コンピュータ装置とも称する) と、 それを含んだ情報処理ネッ トヮ一 クの一例が示される。  FIG. 12 shows an example of an information processing device (also called a computer device) employing the data processor 1 of FIG. 1 and an example of an information processing network including the same.
第 1 2図に示される情報処理ネッ トワークは L A N (ローカル .エリ ァ -ネッ トワーク) 、 インタ一ネッ トなどの W A N (ワイ ド 'エリア - ネッ トワーク)、 無線通信ネッ トワークなどのシステムであり、 9 4で 示されるものがそのシステムにおける光ファイバ、 I S D N回線、 又は 無線回線などの伝送媒体を意味している。伝送媒体 9 4には、 特に制限 されないが、 ホス トコンビュー夕装置 9 3、 ルー夕や夕ーミナルァダブ 夕等の通信アダプタ 95, 96, 97を介して代表的に示された端末コ ンピュー夕装置 90, 9 1, 92が接続されている。 The information processing network shown in Fig. 12 is a system such as a LAN (local area network), a WAN (wide area network) such as the Internet, and a wireless communication network. What is indicated by 94 means a transmission medium such as an optical fiber, an ISDN line, or a wireless line in the system. Although there is no particular limitation on the transmission medium 94, a host computer 93, a roux or evening Evening terminals 90, 91, and 92, which are typically shown via communication adapters 95, 96, and 97, are connected.
端末コンビユー夕装置 90、 特に制限されないが、 前記データプロセ ッサ (MPU) 1を有し、 外部バス 14には表示コントロ一ラ (D I S PC) 103、 ネッ トワークコン トローラ (NETC) 104、 及び D RAM 105が接続され、 また、 デ一夕プロセッサ 1の前記周辺回路 1 5に接続されたフロッピーディスクコン トローラ (FDC) 100、 キ —ボードコントローラ (KEYC) 10 1、 及びィンテグレーテツ ド · デバイス 'エレク トロニクス ' コントローラ (I DEC) 102が設け られている。 D I S P C 103はビデオ RAM (VRAM) 1 1 1に描 画制御を行い、 描画した表示データをディスプレイ (D I S P) 1 10 に表示制御する。 NE T C 104は通信アダプタ 95に接続され、 送受 信情報のバッファリング及び通信プロ トコル制御等を行う。 DRAM 1 05はデータプロセッサ 1のプログラム領域及びワーク領域などに利 用される。前記 F D C 100にはフロッピーディスク ドライブ装置 10 6が接続され、記録媒体の一例であるフロツビ一ディスク 120から情 報を読み取り、 また、 情報を書込む。 KE YC 101にはキーボード 1 07が接続される。 I DE C 1 02にはハードディスク ドライブ装置 (HDD) 108、 CD— ROMドライブ装置 (CD RD) 109が接 続される。 HDD 108は記録媒体の別の例である磁気ディスクを有す る。 CDRD 109は記録媒体の更に別の例である CD— R OM 12 1 を有する。 尚、 その他の端末コンビユー夕装置 9 1 , 92も上記同様に 構成される。  The terminal controller 90 includes, but is not limited to, the data processor (MPU) 1 and the external bus 14 includes a display controller (DIS PC) 103, a network controller (NETC) 104, and D A RAM 105 is connected, and a floppy disk controller (FDC) 100, a keyboard controller (KEYC) 101, and an integrated device are connected to the peripheral circuit 15 of the processor 1. 'A controller (I DEC) 102 is provided. The DISPC 103 controls drawing on the video RAM (VRAM) 111, and displays the drawn display data on the display (DISP) 110. The NETC 104 is connected to the communication adapter 95, and performs buffering of transmission / reception information and communication protocol control. The DRAM 105 is used for a program area and a work area of the data processor 1. A floppy disk drive 106 is connected to the FDC 100 to read information from and write information to a floppy disk 120 as an example of a recording medium. The keyboard 107 is connected to the KE YC 101. A hard disk drive (HDD) 108 and a CD-ROM drive (CD RD) 109 are connected to the IDEC 102. The HDD 108 has a magnetic disk, which is another example of the recording medium. CDRD 109 has a further example of a recording medium, CD-ROM 121. The other terminal combination devices 91 and 92 have the same configuration as described above.
例えば前記端末コンビユー夕装置 90において、前記ロード命令 FM OVを用いる第 10図で説明した処理等によって 3次元グラフィ ック ス処理を行う場合、 そのためのプログラムは、 例えば、 ユーザによって フロッピ一ディスク 1 2 0や CD— R OM 1 2 1からハードディスク ドライブ装置 1 08にィンス トールされる。 このとき、 フロッビ一ディ スク 1 2 0や CD— R OM 1 2 1には前記プログラムが予め記録され ている。端末コンビュー夕装置のセッ トメ一力がそのプログラムをハー ドディスク ドライブ装置にプリインス トールして提供する場合もある。 デ一夕プロセッサ 1はィンストールされたプログラムを実行するとき、 その プログラムを DRAM 105にロードし、 DRAM105から順次命令をフ エッチして実行する。 尚、 CD— ROM 12 1に格納されているプログラム の一部を直接 CD— ROMから取り出して実行することも可能である。 For example, in the terminal combination device 90, when performing the three-dimensional graphics processing by the processing described in FIG. 10 using the load instruction FM OV, a program for the processing is executed by, for example, a user. Installed from the floppy disk 120 or CD-ROM 122 to the hard disk drive 108. At this time, the program is recorded in advance on the floppy disk 120 or the CD-ROM 122. In some cases, the set-up of the terminal viewing device may provide the program preinstalled on the hard disk drive. When executing the installed program, the data processor 1 loads the program into the DRAM 105 and fetches and executes instructions from the DRAM 105 sequentially. It is also possible to take out part of the program stored in the CD-ROM 121 directly from the CD-ROM and execute it.
これにより、 前記端末コンピュータ装置 90は、 フロッピ一ディスク 1 Thereby, the terminal computer device 90 is connected to the floppy disk 1
20等を介して前記プログラムをィンス トールでき、或いはハードディ スク ドライブ装置 1 08等から直接前記プログラムを実行できる。よつ て、 前記端末コンピュータ装置 90に、 前述と同様の浮動小数点演算のた めのデ一夕容量の低減とデータ処理の効率化とを簡単に実現させるこ とができる。 The program can be installed via the device 20 or the like, or the program can be executed directly from the hard disk drive device 108 or the like. Therefore, the terminal computer device 90 can easily realize the reduction of the data capacity for the floating-point operation and the efficiency of the data processing as described above.
また、端末コンビユー夕装置 90はホス 卜コンビユー夕装置 9 3から 前記プログラムをダウン口一ドすることができる。即ち、 ホス トコンビ ユー夕装置 9 3は、例えば圧縮された前記プログラムをハードディスク 装置などに保有している。端末コンビュ一夕装置 9 0がホス トコンビュ —夕装置 93と通信を確立したあと、端末コンピュータ装置 90がその プログラムを指定をしてダウンロードを指示することにより、前記プロ グラムが伝送媒体 94に伝送されて、端末コンピュータ装置 9 0のハー ドディスク ドライブ装置 1 08にダウンロードされる。ダウンロードさ れたプログラムは、 その後、 伸長されて、 所定のプログラム格納エリア にインス トールされる。これによつて端末コンピュー夕装置 9 0には、 前記ロー ド命令 FMO Vを用いる 3次元グラフィ ックス処理を行う機 能が実現される。 Further, the terminal combination device 90 can download the program from the host combination device 93. That is, the host convenience device 93 has the compressed program in a hard disk device or the like, for example. After the terminal computer 90 establishes communication with the host computer 93, the terminal computer 90 specifies the program and instructs download, whereby the program is transmitted to the transmission medium 94. Then, it is downloaded to the hard disk drive device 108 of the terminal computer device 90. The downloaded program is then decompressed and installed in a predetermined program storage area. As a result, the terminal computer 90 performs a three-dimensional graphics process using the load instruction FMOV. Noh is realized.
このように、前記端末コンビュ一夕装置 9 0は前記伝送媒体 9 4を介 して前記プログラムをネッ トワーク上で簡単に取得できるから、その伝 送媒体 9 4は、 端末コンピュータ装置 9 0に、 前述の浮動小数点演算の ためのデ一夕容量の低減とデータ処理の効率化とを簡単に実現させる ことに役立つ。  As described above, since the terminal computer 90 can easily acquire the program on the network via the transmission medium 94, the transmission medium 94 is provided to the terminal computer 90. This is useful for easily realizing the reduction of the data capacity for the above-mentioned floating-point operation and the efficiency of the data processing.
尚、そのようなプログラムが含む口一ド命令 F M O Vのフォーマツ ト、 そして、ポリゴンデ一夕を用いたジオメ トリ演算を用いる 3次元グラフ ィ ック処理の内容は、 前述と同様であるから、 その詳細な説明はここで は省略する。  Note that the format of the spoken command FMOV included in such a program and the contents of the three-dimensional graphic processing using the geometry operation using polygon data are the same as those described above, Detailed description is omitted here.
以上説明したデ一夕プロセッサ 1及びデータ処理システムによれば 以下の作用効果を得ることができる。  According to the data processor 1 and the data processing system described above, the following operational effects can be obtained.
〔 1〕 データプロセッサ 1 , 1 B及びグラフィ ックチップ 1 Cは、 浮動 小数点レジス夕のビッ ト長よりも短いビッ ト長の整数データを浮動小 数点数データに変換して浮動小数点レジス夕にロード可能であるから、 浮動小数点レジス夕のビッ ト長と同じビッ ト長のデータを入力する場 合に比べて、データ量若しくはデータメモリ容量を小さくすることがで きる。 加えて、 デ一夕量が削減されれば、 デ一夕転送コストも削減されるの で、 演算コス卜よりもデータ転送コストが全体の処理速度を決めるようなシ ステムではデータ処理速度を向上させることができる。  [1] Data processors 1, 1B and graphics chip 1C can convert integer data with a bit length shorter than that of the floating-point register into floating-point data and load it into the floating-point register. Therefore, the data amount or the data memory capacity can be reduced as compared with the case where data having the same bit length as that of the floating-point register is input. In addition, if the amount of data is reduced, the data transfer cost is also reduced, so the data processing speed is improved in a system where the data transfer cost determines the overall processing speed rather than the calculation cost. Can be done.
〔2〕整数データを変換回路 4 2で浮動小数点数データに変換して浮動 小数点レジス夕にロードできるから、 1命令で整数データを浮動小数点 数データに型変換して浮動小数点レジス夕にロードすることができる。 〔 3〕前記型変換では整数デ一夕のビッ ト長と所定の浮動小数点フォー マツ 卜の仮数のビッ ト長との相違に応じたビッ ト長拡張処理が行われ るが、 それに必要な整数デ一夕のビッ ト長情報を、 前述の変換機能付き ロード命令のデコ一ド結果から得るから、ビッ ト長の異なる整数データ が混在する場合も、 1命令で前記型変換を伴うロード処理のような処理 を行うことができる。処理対象とする整数データのビッ ト長情報を制御 レジス夕で指定する場合に比べ、処理対象とする整数データのビッ ト長 が変わっても、 その都度、 余計なレジスタアクセス動作を行わずに済み、 データ処理能率も向上する。 [2] Since the integer data can be converted to floating-point data by the conversion circuit 42 and loaded into the floating-point register, the integer data can be converted to floating-point data and loaded into the floating-point register with one instruction. be able to. [3] In the type conversion, a bit length extension process is performed according to the difference between the bit length of the integer data and the bit length of the mantissa of a predetermined floating-point format. With the conversion function described above, Since it is obtained from the decoded result of the load instruction, even when integer data having different bit lengths are mixed, processing such as the load processing involving the type conversion can be performed by one instruction. Controlling the bit length information of the integer data to be processed.Even if the bit length of the integer data to be processed changes as compared to the case where the register length is specified, unnecessary register access operation is not performed each time. Also, data processing efficiency is improved.
〔4〕変換回路 4 2は変換機能無しのロード命令をサポートすることが できるから、 浮動小数点レジス夕に整数データをロードしてから、 これ を浮動小数点数デ一夕に変換する自由度がある。  [4] The conversion circuit 42 can support a load instruction without a conversion function, so there is a degree of freedom to load integer data into the floating-point register and then convert it to floating-point data. .
〔 5〕前記変換回路は、 浮動小数点レジス夕の浮動小数点数データをそ れよりビヅ 卜長の短い整数レジス夕に逆変換してメモリにス トァする 機能をサポートするから、そのような逆変換のようなデータ処理の自由 度を得ることができる。  [5] The conversion circuit supports the function of inverting the floating-point number data of the floating-point register to an integer register having a shorter bit length and storing it in the memory. The degree of freedom in data processing such as conversion can be obtained.
C 6〕データプロセッサにデ一夕キヤッシュュニッ トを内蔵することに より、 整数ュニッ トによるデ一夕アクセスを高速化することができる。 〔7〕前記変換回路 4 2をデータキャッシュュニヅ ト 6が接続されるデ —夕バス 1 0に結合しておく態様において、並列的に 2バイ 卜の整数デ 一夕を浮動小数点数データに変換する並列変換機能をサポー卜するこ とにより、型変換を伴う前記データロード処理の効率を一層向上させる ことができる。  C 6] By incorporating a data cache unit in the data processor, data access speed by integer unit can be increased. [7] In a mode in which the conversion circuit 42 is connected to the data bus 10 to which the data cache unit 6 is connected, two bytes of integer data are converted in parallel to floating-point data. By supporting the parallel conversion function for converting data into data, it is possible to further improve the efficiency of the data loading process involving type conversion.
〔8〕 3次元グラフィ ックス処理におけるジオメ ト リ演算等にデ一夕プ 口セッサ 1を適用したデータ処理システムにおいて、前記ポリゴンの頂 点座標データと法線べク トルデ一夕のようにデータビッ ト長を相違さ せ、 デ一夕量削減による効果を最大限とするよう企図する場合でも、 変 換対象データのビッ ト長は命令で指定され、特別な制御レジス夕値変更 操作は必要なく、 データ処理のオーバへッ ドが増えず、 デ一夕量削減に よる効果を十分に発揮させることができる。 [8] In a data processing system in which the data processor 1 is applied to the geometry calculation in 3D graphics processing, etc., the coordinates of the vertices of the polygon and the data bits as in the normal vector Even if the lengths are different and the effect of reducing the amount of data is to be maximized, the bit length of the data to be converted is specified by the instruction, and no special control register value change operation is required. Overhead of data processing does not increase and reduction of data amount The effect of the above can be sufficiently exhibited.
〔 9〕情報処理装置に対して浮動小数点演算のためのデータ容量の低減 とデータ処理の効率化とを簡単に実現させることができるプログラム を格納した記録媒体、そしてそのようなプログラムを伝送する伝送媒体 を提供することができる。  [9] A storage medium storing a program that can easily reduce the data capacity for floating-point arithmetic and increase the efficiency of data processing for an information processing device, and transmission for transmitting such a program Media can be provided.
以上本発明者によってなされた発明を実施例に基づいて具体的に説 明したが本発明はそれに限定されるものではなく、その要旨を逸脱しな い範囲において種々変更可能である。  The invention made by the present inventor has been specifically described based on the embodiments, but the present invention is not limited thereto, and can be variously modified without departing from the gist thereof.
例えば、整数データのビッ ト長及び浮動小数点データのビッ ト長は上 記説明に限定されない。前記浮動小数点レジス夕のビッ ト長を 4 nバイ 卜、前記整数データには nバイ 卜又は 2 nバイ 卜のビッ ト長を混在させ、 前記デ一夕バスのビッ ト幅を 8 nバイ トとし、前記キヤッシュメモリ装 置は 8 nバイ 卜の範囲で連続する複数の整数データを前記データバス に並列出力可能としてもよい。 nは 8 ビヅ ト又は 1 6 ビヅ ト等として適 応することが可能である。  For example, the bit length of integer data and the bit length of floating-point data are not limited to the above description. The bit length of the floating-point register is 4 n bytes, the integer data is a bit length of n bytes or 2 n bytes, and the bit width of the data bus is 8 n bytes. The cache memory device may be capable of outputting a plurality of continuous integer data in a range of 8 n bytes to the data bus in parallel. n can be adapted as 8 bits or 16 bits.
データプロセッサの内蔵モジュール及びバス構成は上記デ一夕プロ セッサやグラフィ ックチップの構成に限定されない。仮想記憶をサポー 卜するデ一夕プロセッサであればァドレス変換バッファ若しくはメモ リ管理ュニッ トを内蔵すればよい。  The configuration of the built-in module and bus of the data processor is not limited to the configuration of the data processor and the graphic chip. If it is a data processor that supports virtual memory, an address conversion buffer or a memory management unit may be incorporated.
プログラムの記録媒体はプログラムを静的に記録する媒体であれば よく、 不揮発性メモリカ一ド、 D V D (ディジ夕ル ·ビデオ 'ディスク)、 M 0 (マグネヅ ト ·ォプティ ックス) 等であってもよい。 また、 伝送媒 体は有線回線又は無線回線にて接続されたネッ トワークを介してプロ グラムを電子的、電磁気的又は光学的に配布又は流通をさせるための通 信媒体であればよい。 産業状の利用可能性 The recording medium for the program may be a medium for statically recording the program, and may be a non-volatile memory card, a DVD (digital video / disk), M0 (magnet optical), or the like. . The transmission medium may be any communication medium for electronically, electromagnetically or optically distributing or distributing a program through a network connected by a wired line or a wireless line. Industrial availability
本発明はグラフィ ックスに限定されず、音声認識や音声合成等におけ るフィル夕演算などにも適用することができる。 本発明は、 信号処理装 置、 信号処理を行うデータ処理システム、 更には情報処理ネッ トワーク 等に広く適用することができる。  The present invention is not limited to graphics but can also be applied to file operations in voice recognition, voice synthesis, and the like. INDUSTRIAL APPLICABILITY The present invention can be widely applied to a signal processing device, a data processing system that performs signal processing, and an information processing network.

Claims

請 求 の 範 囲 The scope of the claims
1 . フエツチした命令を解読して制御信号を生成する命令制御手段と、 前記制御信号によって夫々動作が制御される浮動小数点演算回路、 浮動小数点レジス夕及び変換手段と、 を有し、 1. An instruction control means for decoding a fetched instruction to generate a control signal, a floating-point arithmetic circuit, an operation of which is controlled by the control signal, a floating-point register and a conversion means,
前記変換手段は、前記浮動小数点レジス夕のビッ ト長より短いビッ ト長で表現される整数データを入力し、入力した整数データを所定の 浮動小数点数フォーマツ トの浮動小数点数データに型変換し、型変換 された浮動小数点数データを前記浮動小数点レジス夕に向けて出力 する第 1処理が可能なものであり、  The conversion means inputs integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data into floating-point data in a predetermined floating-point format. A first process of outputting the type-converted floating-point data to the floating-point register, and
前記型変換に必要な整数データのビッ ト長情報は、前記第 1処理を 指示する第 1命令に含む整数データのビッ ト長情報ェリアを前記命 令制御手段が解読して得る、 ものであることを特徴とするデ一夕処理  The bit length information of the integer data required for the type conversion is obtained by the instruction control means decoding the bit length information area of the integer data included in the first instruction instructing the first process. De-night processing
2 . 前記変換手段は、 更に、 前記浮動小数点レジス夕のビット長より短い ビッ 卜長で表現される整数データを入力し、入力した整数データのビ ッ ト数を前記浮動小数点レジス夕のビッ ト長に拡張し、拡張された整 数データを前記浮動小数点レジス夕に向けて出力する第 2処理が可 能であり、 2. The converting means further inputs integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the number of bits of the input integer data into a bit of the floating-point register. A second process of extending the extended integer data to the floating-point register, and
前記第 2の処理における前記整数データのビッ ト長拡張に必要な 整数データのビッ ト長情報は、前記第 2処理を指示する第 2命令に含 む整数データのビッ ト長情報ェリァを前記命令制御手段が解読して 得る、 ものであることを特徴とする請求の範囲第 1項記載のデ一夕処 理装置。  The bit length information of the integer data necessary for extending the bit length of the integer data in the second process is obtained by transmitting the bit length information area of the integer data included in the second instruction instructing the second process to the instruction. 2. The data processing apparatus according to claim 1, wherein the control means is obtained by decoding.
3 . 前記変換手段は更に、 前記浮動小数点レジス夕から浮動小数点数デ 一夕を入力し、入力した浮動小数点数データを前記浮動小数点レジス 夕のビッ ト長より短いビッ ト長で表現される整数データに逆型変換 し、 逆型変換された整数データを出力する第 3処理が可能であり、 前記第 3処理を指示する第 3命令が含む整数データのビッ ト長情報 ェリァを前記命令制御手段が解読した結果から、前記逆型変換に必要 な整数データのビッ 卜長情報を得る、 ものであることを特徴とする請 求の範囲第 1項又は第 2項記載のデータ処理装置。3. The conversion means further inputs a floating-point number data from the floating-point register and converts the input floating-point data into the floating-point register. A third process is possible in which the inverse process is performed to convert the inverse data to integer data represented by a bit length shorter than the evening bit length and output the inverse-converted integer data, and a third instruction instructing the third process is performed. The bit length information of the integer data necessary for the inverse conversion is obtained from the result of the instruction control means decoding the bit length information of the integer data contained in the request data. 3. The data processing device according to paragraph 1 or 2.
. 前記ビッ ト長情報エリアは、 前記浮動小数点レジス夕の第 1のビット 長より短い第 2のビット長と、 前記第 2のビット長よりも短い第 3のビッ ト長との何れか一方を選択的に指定可能であることを特徴とする請求の範 囲第 1項又は第 2項記載のデータ処理装置。  The bit length information area indicates one of a second bit length shorter than the first bit length of the floating point register and a third bit length shorter than the second bit length. 3. The data processing device according to claim 1, wherein the data processing device can be selectively specified.
. 前記第 1のビッ ト長は 3 2ビッ ト、 前記第 2のビッ ト長は 1 6ビッ ト、前記第 3のビッ ト長は 8ビッ トであることを特徴とする請求の範 囲第 4項記載のデータ処理装置。  The first bit length is 32 bits, the second bit length is 16 bits, and the third bit length is 8 bits. Item 4. The data processing device according to item 4.
.前記命令制御手段が出力する制御信号によって動作が制御される整 数ュニッ トを更に含み、 シングルチップデータプロセッサとして構成 されて成るものであることを特徴とする請求の範囲第 1項又は第 2 項記載のデータ処理装置。  3. The apparatus according to claim 1, further comprising an integer unit whose operation is controlled by a control signal output from said instruction control means, and configured as a single-chip data processor. The data processing device according to the item.
.前記整数ュニッ ト及び前記浮動小数点レジスタに接続されたキヤッ シュメモリ装置を更に有して成るものであることを特徴とする請求 の範囲第 6項記載のデータ処理装置。 7. The data processing device according to claim 6, further comprising a cache memory device connected to said integer unit and said floating point register.
.前記変換手段は前記キヤッシュメモリ装置が接続されるデータバス に結合されて成るものであることを特徴とする請求の範囲第 7項記 載のデータ処理装置 8. The data processing apparatus according to claim 7, wherein said conversion means is coupled to a data bus to which said cache memory device is connected.
. 前記浮動小数点レジス夕は 4 nバイ 卜のビッ ト長を有し、 The floating point register has a bit length of 4 n bytes,
前記整数データは nバイ ト又は 2 nバイ トのビッ ト長を有し、 前記データバスは 8 nバイ 卜のビッ 卜幅を有し、 前記キャッシュメモリ装置は 8 nバイ 卜の範囲で連続する複数の 整数データを前記データバスに並列出力可能であり、 The integer data has a bit length of n bytes or 2 n bytes, the data bus has a bit width of 8 n bytes, The cache memory device is capable of outputting a plurality of continuous integer data in a range of 8 n bytes to the data bus in parallel,
前記変換手段は、前記第 1命令に含まれる整数デ一夕のビッ ト長情 報ェリァの解読結果に基いて、デ一夕バス上の第 1の整数データ及び その隣の第 2の整数データに対して前記第 1処理を並列させて行う ものであることを特徴とする請求の範囲第 8項記載のデータ処理装 置。  The conversion means, based on the decoding result of the bit length information error of the integer data included in the first instruction, the first integer data on the data bus and the second integer data adjacent thereto on the data bus 9. The data processing apparatus according to claim 8, wherein the first processing is performed in parallel with the data processing.
0 . フェッチした命令を解読し、 解読結果に基づいて浮動小数点レジ ス夕を用いた浮動小数点演算が可能なデータ処理装置であって、 前記浮動小数点レジス夕を用いる命令には、命令の種別を示すオペ レーシヨンコードフィ一ルド、処理に使用する浮動小数点レジス夕を 指定するレジス夕指定フィールド、及びその他の情報フィ一ルドを有 する第 1命令を含み、  0. A data processor capable of decoding a fetched instruction and performing a floating-point operation using a floating-point register based on the result of decoding, wherein the instruction using the floating-point register includes an instruction type. The first instruction has an operation code field, a register field specifying a floating-point register used for processing, and a field indicating other information.
前記第 1命令において、前記オペレーシヨンコードフィールドは、 整数データを所定の浮動小数点フォーマツ 卜の浮動小数点数データ に変換して浮動小数点レジス夕に格納することを指示し、  In the first instruction, the operation code field indicates that integer data is to be converted into floating-point data in a predetermined floating-point format and stored in a floating-point register.
前記レジス夕指定フィールドは、変換された浮動小数点数データを格 納する浮動小数点数レジス夕の種別を指示し、 The register setting field indicates the type of the floating-point register storing the converted floating-point data,
前記その他の情報フィールドの一部は、浮動小数点数データへの変換 対象とされる前記整数データの所在を示し、 Part of the other information field indicates the location of the integer data to be converted to floating-point data,
前記その他の情報フィールドの他の一部は、前記浮動小数点レジス夕 のビッ ト長より短いビッ ト長で表現される整数デ一夕のビッ ト長情 報を指示する、 ものであることを特徴とするデータ処理装置。 Another part of the other information field indicates the bit length information of the integer data represented by a bit length shorter than the bit length of the floating point register. Data processing device.
1 . 前記浮動小数点レジス夕を用いる命令には、 命令の種別を示す オペレーションコ一ドフィ一ルド、処理に使用する浮動小数点レジス 夕を指定するレジス夕指定フィールド、及びその他の情報フィールド を有する第 2命令を更に含み、 1. The instruction using the floating-point register includes an operation code field indicating the type of the instruction, a register setting field for specifying the floating-point register used for processing, and other information fields. Further comprising a second instruction having
前記第 2命令において、前記オペレーションコードフィールドは、 整数データをビッ ト長拡張して浮動小数点レジス夕に格納すること を指示し、  In the second instruction, the operation code field indicates that the integer data is to be extended in bit length and stored in a floating-point register.
前記レジス夕指定フィ一ルドは、変換された浮動小数点数データを格 納する浮動小数点数レジスタの種別を指示し、 The register setting field indicates a type of a floating-point register for storing the converted floating-point data,
前記その他の情報フィールドの一部は、浮動小数点数データへの変換 対象とされる前記整数データの所在を示し、 Part of the other information field indicates the location of the integer data to be converted to floating-point data,
前記その他の情報フィールドの他の一部は、前記浮動小数点レジス夕 のビッ ト長より短いビッ ト長で表現される整数データのビッ ト長情 報を指示する、 ものであることを特徴とする請求の範囲第 1 0項記載 のデータ処理装置。 Another part of the other information field indicates bit length information of integer data represented by a bit length shorter than the bit length of the floating point register. The data processing device according to claim 10.
2 .前記浮動小数点レジス夕は 3 2ビッ 卜のビッ ト長を有するもので あり、  2. The floating point register has a bit length of 32 bits,
前記整数データのビッ ト長情報は、 8ビッ ト又は 1 6 ビッ ト長を選 択的に指示するものであることを特徴とする請求の範囲第 9項又は 第 1 1項記載のデータ処理装置。 12. The data processing device according to claim 9, wherein the bit length information of the integer data selectively indicates an 8-bit length or a 16-bit length. .
3 . 第 1のデータ処理装置と、 前記第 1のデータ処理装置に接続された 第 2デ一夕処理装置とを有するデータ処理システムであって、 前記第 1のデータ処理装置は、 フェッチした命令を解読し、 解読結 果に基づいて整数演算と浮動小数点演算が可能であり、 フェッチした 命令を解読して制御信号を生成する命令制御手段、 整数ュニッ ト、 浮 動小数点演算回路、 浮動小数点レジス夕、 及び変換手段、 を有し、 前記変換手段は、前記浮動小数点レジス夕のビッ ト長より短いビッ ト長で表現される整数データを入力し、入力した整数データを所定の 浮動小数点フォーマツ 卜の浮動小数点数デ一夕に型変換し、型変換さ れた浮動小数点数データを前記浮動小数点レジスタに向けて出力す る第 1処理が可能なものであり、 3. A data processing system having a first data processing device and a second data processing device connected to the first data processing device, wherein the first data processing device has a fetched instruction. Instruction control means that decodes fetched instructions and generates control signals by decoding fetched instructions, integer units, floating-point arithmetic circuits, floating-point registers And converting means, wherein the converting means inputs integer data represented by a bit length shorter than the bit length of the floating-point register, and converts the input integer data into a predetermined floating-point format. Type conversion to floating point A first process of outputting the obtained floating-point data to the floating-point register;
前記型変換において前記整数データのビッ ト長と前記浮動小数点 フォーマツ 卜の仮数のビッ ト長との相違に応じたビッ ト長拡張に必 要な整数データのビッ ト長情報は、前記第 1処理を指示する所定の命 令に含む整数データのビッ ト長情報ェリアを前記命令制御手段が解 読して得るものであり、  In the type conversion, the bit length information of the integer data necessary for the bit length extension according to the difference between the bit length of the integer data and the bit length of the mantissa of the floating-point format is obtained by the first processing. The instruction control means decodes the bit length information area of the integer data included in the predetermined instruction for instructing
前記第 2のデータ処理装置は、前記第 1のデータ処理装置による浮 動小数点演算結果を入力してデータ処理を行うことが可能である、 こ とを特徴とするデ一夕処理システム。  The data processing system according to claim 1, wherein the second data processing device is capable of performing data processing by inputting a floating-point operation result obtained by the first data processing device.
4 .前記第 1のデータ処理装置に接続されるメインメモリを更に有し、 前記メインメモリが保有する記憶情報の一部を保有することが可能 なキヤッシュメモリを前記第 1のデータ処理装置が備えて成るもの であることを特徴とする請求の範囲第 1 3項記載にデータ処理シス テム。  4. The first data processing device further includes a main memory connected to the first data processing device, and a cache memory capable of storing a part of storage information stored in the main memory. 14. The data processing system according to claim 13, wherein the data processing system comprises:
5 .前記整数データは 3次元形状を近似する為の頂点座標デ一夕及び 頂点法線データを含むポリゴンデ一夕であることを特徴とする請求 の範囲第 1 3項又は第 1 4項記載のデータ処理システム。  5. The method according to claim 13, wherein the integer data is a vertex coordinate data for approximating a three-dimensional shape and a polygon data including vertex normal data. Data processing system.
6 .前記浮動小数点レジス夕は 3 2 ビッ トのビッ ト長を有するもので あり、  6. The floating point register has a bit length of 32 bits,
前記ポリゴンデータの頂点座標データは各成分 1 6ビッ ト長、頂点 法線デ一夕は各成分 8ビッ ト長であり、  The vertex coordinate data of the polygon data has a 16-bit length for each component, and the vertex normal data has an 8-bit length for each component.
前記整数データのビッ 卜長情報は、 8ビッ ト又は 1 6ビッ ト長を選 択的に指示するものであることを特徴とする請求の範囲第 1 5項記 載のデータ処理システム。  16. The data processing system according to claim 15, wherein the bit length information of the integer data selectively indicates an 8-bit length or a 16-bit length.
7 .前記第 1のデータ処理装置はポリゴンデ一夕を用いたジオメ トリ 演算を行い、前記第 2のデータ処理装置は前記ジオメ ト リ演算によつ て得られたデータをフレームバッファに描画する処理を行うもので あることを特徴とする請求の範囲第 1 5項又は第 1 6項記載のデー 夕処理システム。 7. The first data processing unit uses a geometry 16. The method according to claim 15, wherein the second data processing device performs an operation, and the second data processing device performs a process of drawing data obtained by the geometry operation in a frame buffer. The data processing system described in Item 16.
1 8 . 中央処理装置と、 浮動小数点ュニッ 卜と、 前記中央処理装置及び 前記浮動小数点ュニッ 卜に接続されたメモリと、 ァクセラレ一夕とを有 するデータ処理システムであって、 18. A data processing system comprising: a central processing unit; a floating-point unit; a memory connected to the central processing unit and the floating-point unit;
前記浮動小数点ュニッ トは、 浮動小数点レジス夕、 浮動小数点演算 回路、 及び変換手段を有し、  The floating-point unit has a floating-point register, a floating-point arithmetic circuit, and conversion means,
前記変換手段は、前記浮動小数点レジス夕のビッ ト長より短いビッ ト長で表現される整数データを前記メモリ入力し、入力した整数デ一 夕を所定の浮動小数点数フォーマッ 卜の浮動小数点数データに型変 換し、型変換された浮動小数点数データを前記浮動小数点レジス夕に 向けて出力する第 1処理が可能なものであり、  The conversion means inputs integer data represented by a bit length shorter than the bit length of the floating point register into the memory, and converts the input integer data into floating point number data of a predetermined floating point number format. A first process of performing type conversion and outputting the type-converted floating-point data to the floating-point register.
前記型変換に必要な整数データのビッ ト長情報は、前記第 1処理を 指示する所定の命令に含まれる整数データのビッ ト長情報ェリァの 値にから取得するものであり、  The bit length information of the integer data necessary for the type conversion is obtained from the value of the bit length information area of the integer data included in the predetermined instruction instructing the first process,
前記ァクセラレー夕は、前記浮動小数点ュニッ トによる浮動小数点 演算結果を入力してデータ処理を行うことが可能である、 ことを特徴 とするデータ処理システム。  The data processing system according to claim 1, wherein the accelerator is capable of performing a data process by inputting a floating-point operation result by the floating-point unit.
9 .前記整数データは 3次元形状を近似する為の各成分 1 6 ビッ ト長 の頂点座標デ一夕及び各成分 8ビッ ト長の頂点法線データを含むポ リゴンデータであり、  9.The integer data is polygon data including 16-bit vertex coordinate data of each component for approximating the three-dimensional shape and vertex normal data of each component of 8 bit length,
前記浮動小数点レジス夕は 3 2ビッ 卜のビッ ト長を有し、 前記整数データのビッ ト長情報は、 8ビッ ト又は 1 6ビッ ト長を選 択的に指示するものであることを特徴とする請求の範囲第 1 8項記 載のデータ処理システム。 The floating-point register has a bit length of 32 bits, and the bit length information of the integer data selectively indicates an 8-bit or 16-bit length. Claim 18 of the claim On-board data processing system.
2 0 .前記浮動小数点ュニッ トはポリゴンデ一夕を用いたジオメ トリ演 算を行い、前記ァクセラレー夕はジオメ ト リ演算によって得られたデ 一夕をフ レームバッファに描画する処理を行うものであることを特 徴とする請求の範囲第 1 9項記載のデータ処理システム。 20.The floating-point unit performs a geometry operation using polygon data, and the x-ray processing performs a process of drawing the data obtained by the geometry operation in a frame buffer. The data processing system according to claim 19, characterized in that:
2 1 .情報処理装置に浮動小数点演算によるデータ処理機能を実現させ るためのプログラムを記録した記録媒体であって、  2 1.A recording medium that records a program for realizing a data processing function by a floating-point operation in an information processing device,
前記プログラムは、前記情報処理装置内部の浮動小数点レジス夕の ビッ ト長より短いビッ ト長で表現される整数データを所定フォーマ ッ 卜の浮動小数点数データに型変換して前記浮動小数点レジス夕に ロードする第 1処理を実現可能であり、  The program converts the integer data represented by a bit length shorter than the bit length of the floating-point register inside the information processing device into floating-point number data in a predetermined format, and converts the data into the floating-point register. The first process to load is feasible,
前記第 1処理において、前記型変換に必要な整数データのビッ ト長 情報は、前記第 1処理を指示する第 1命令が保有するビッ ト長情報ェ リァから得るものであることを特徴とする記録媒体。  In the first process, the bit length information of the integer data necessary for the type conversion is obtained from a bit length information error held by a first instruction instructing the first process. recoding media.
2 2 . 前記第 1命令は、 命令の種別を示すオペレーションコードフィール ド、処理に使用する浮動小数点レジス夕を指定するレジスタ指定フィ 一ルド、 及びその他の情報フィールドを有し、 22. The first instruction has an operation code field indicating a type of the instruction, a register specification field specifying a floating-point register used for processing, and other information fields.
前記オペレーションコードフィールドは、整数データを所定の浮動小 数点フォーマッ トの浮動小数点数データに変換して浮動小数点レジ ス夕に格納することを指示し、  The operation code field indicates that integer data is to be converted into floating-point data in a predetermined floating-point format and stored in a floating-point register.
前記レジスタ指定フィールドは、変換された浮動小数点数デ一夕を格 納する浮動小数点数レジス夕の種別を指示し、  The register designation field indicates a type of a floating-point number register for storing the converted floating-point number data,
前記その他の情報フィールドの一部は、浮動小数点数データへの変換 対象とされる前記整数データの所在を示し、  Part of the other information field indicates the location of the integer data to be converted to floating-point data,
前記その他の情報フィールドの他の一部は、前記ビッ ト長情報ェリァ であることを特徴とする請求の範囲第 2 1項記載の記録媒体。 23. The recording medium according to claim 21, wherein another part of said other information field is said bit length information area.
2 3 .前記プログラムは前記情報処理装置にポリゴンデータを用いたジ オメ 卜 リ演算機能を実現させ、 前記ポリゴンデータは、 3次元形状を 近似する為の頂点座標データ及び頂点法線データを含む前記整数デ 一夕であることを特徴とする請求の範囲第 2 1項又は第 2 2項記載 の記録媒体。 23.The program causes the information processing apparatus to implement a geometry operation function using polygon data, and the polygon data includes vertex coordinate data and vertex normal data for approximating a three-dimensional shape. The recording medium according to claim 21 or 22, wherein the recording medium is an integer number.
2 4 .情報処理装置に浮動小数点演算によるデータ処理機能を実現させ るためのプログラムを伝送する伝送媒体であって、  24. A transmission medium for transmitting a program for realizing a data processing function by a floating-point operation to an information processing device,
前記プログラムは、前記情報処理装置内部の浮動小数点レジス夕の ビッ ト長より短いビッ ト長で表現される整数デ一夕を所定フォーマ ッ 卜の浮動小数点数データに型変換して前記浮動小数点レジス夕に ロードする第 1処理を実現可能であり、  The program converts the integer data represented by a bit length shorter than the bit length of the floating-point register inside the information processing device into floating-point data in a predetermined format, and The first process to load in the evening is feasible,
前記第 1処理において、前記型変換に必要な整数デ一夕のビッ ト長 情報は、前記第 1処理を指示する第 1命令が保有するビッ ト長情報ェ リァから得るものであることを特徴とする伝送媒体。  In the first process, the bit length information of the integer data necessary for the type conversion is obtained from a bit length information error held by a first instruction instructing the first process. Transmission medium.
2 5 . 前記第 1命令は、 命令の種別を示すオペレーションコードフィ一ル ド、処理に使用する浮動小数点レジス夕を指定するレジス夕指定フィ 一ルド、 及びその他の情報フィール ドを有し、 25. The first instruction has an operation code field indicating the type of the instruction, a register setting field for specifying a floating-point register used for processing, and other information fields,
前記オペレーションコードフィールドは、整数データを所定の浮動小 数点フォーマッ 卜の浮動小数点数データに変換して浮動小数点レジ ス夕に格納することを指示し、  The operation code field indicates that integer data is to be converted into floating-point data in a predetermined floating-point format and stored in a floating-point register.
前記レジス夕指定フィールドは、変換された浮動小数点数データを格 納する浮動小数点数レジス夕の種別を指示し、  The register setting field indicates the type of the floating-point register storing the converted floating-point data,
前記その他の情報フィールドの一部は、浮動小数点数デ一夕への変換 対象とされる前記整数デ一夕の所在を示し、  A part of the other information field indicates the location of the integer data to be converted to a floating point number,
前記その他の情報フィールドの他の一部は、前記ビッ ト長情報エリア であることを特徴とする請求の範囲第 2 4項記載の伝送媒体。 25. The transmission medium according to claim 24, wherein another part of said other information field is said bit length information area.
6 .前記プログラムは前記情報処理装置にポリゴンデ一夕を用いたジ オメ トリ演算機能を実現させ、 前記ポリゴンデータは、 3次元形状を 近似する為の頂点座標データ及び頂点法線データを含む前記整数デ 一夕であることを特徴とする請求の範囲第 2 4項又は第 2 5項記載 の伝送媒体。 6. The program causes the information processing device to implement a geometry operation function using polygon data, and the polygon data includes the integers including vertex coordinate data and vertex normal data for approximating a three-dimensional shape 26. The transmission medium according to claim 24, wherein the transmission medium is overnight.
PCT/JP1999/006837 1999-12-07 1999-12-07 Data processing apparatus and data processing system WO2001042903A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP1999/006837 WO2001042903A1 (en) 1999-12-07 1999-12-07 Data processing apparatus and data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1999/006837 WO2001042903A1 (en) 1999-12-07 1999-12-07 Data processing apparatus and data processing system

Publications (1)

Publication Number Publication Date
WO2001042903A1 true WO2001042903A1 (en) 2001-06-14

Family

ID=14237488

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/006837 WO2001042903A1 (en) 1999-12-07 1999-12-07 Data processing apparatus and data processing system

Country Status (1)

Country Link
WO (1) WO2001042903A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084064A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Type conversion unit in a multiprocessor system
JP2005031125A (en) * 2003-07-07 2005-02-03 Mega Chips Corp Image output device
JP2007108938A (en) * 2005-10-12 2007-04-26 Mitsubishi Electric Corp Graphics system
JP2007538319A (en) * 2004-05-14 2007-12-27 エヌヴィディア コーポレイション Low power programmable processor
CN115908678A (en) * 2023-02-25 2023-04-04 深圳市益玩网络科技有限公司 Skeleton model rendering method and device, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309146A (en) * 1992-07-15 1994-11-04 Internatl Business Mach Corp <Ibm> Apparatus for conversion of floating-point representation of number into integer representation and method for generation of value of pixel
JPH08101919A (en) * 1994-09-30 1996-04-16 Sony Corp Numerical converter and device for turning coordinate value to integer
JPH1079039A (en) * 1996-07-01 1998-03-24 Sun Microsyst Inc Graphic image processing in computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06309146A (en) * 1992-07-15 1994-11-04 Internatl Business Mach Corp <Ibm> Apparatus for conversion of floating-point representation of number into integer representation and method for generation of value of pixel
JPH08101919A (en) * 1994-09-30 1996-04-16 Sony Corp Numerical converter and device for turning coordinate value to integer
JPH1079039A (en) * 1996-07-01 1998-03-24 Sun Microsyst Inc Graphic image processing in computer system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004084064A2 (en) * 2003-03-19 2004-09-30 Koninklijke Philips Electronics N.V. Type conversion unit in a multiprocessor system
WO2004084064A3 (en) * 2003-03-19 2005-08-04 Koninkl Philips Electronics Nv Type conversion unit in a multiprocessor system
JP2005031125A (en) * 2003-07-07 2005-02-03 Mega Chips Corp Image output device
JP2007538319A (en) * 2004-05-14 2007-12-27 エヌヴィディア コーポレイション Low power programmable processor
JP4914829B2 (en) * 2004-05-14 2012-04-11 エヌヴィディア コーポレイション Low power programmable processor
JP2007108938A (en) * 2005-10-12 2007-04-26 Mitsubishi Electric Corp Graphics system
CN115908678A (en) * 2023-02-25 2023-04-04 深圳市益玩网络科技有限公司 Skeleton model rendering method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US6873324B2 (en) Data processing method, recording medium and data processing apparatus
US6480868B2 (en) Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US5995122A (en) Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
US6502115B2 (en) Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
US6292815B1 (en) Data conversion between floating point packed format and integer scalar format
US6247116B1 (en) Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US6327605B2 (en) Data processor and data processing system
KR100440841B1 (en) Microcomputer
US6807620B1 (en) Game system with graphics processor
JP2001516916A (en) Data processing device with digital signal processing capability
JPH05197546A (en) Microcomputer and dividing circuit
JPH01224873A (en) Method and apparatus for double precision vector computation in coprocessor
KR100578010B1 (en) Information processing circuits, microcomputers and electronic devices
JPH01119828A (en) Microprocessor
JPH0546383A (en) Data processor
JPH10232821A (en) Data processor
WO2001042903A1 (en) Data processing apparatus and data processing system
JP2000322235A (en) Information processor
US6212627B1 (en) System for converting packed integer data into packed floating point data in reduced time
JPH07239780A (en) One-clock variable length instruction execution process type instruction read computer
US6016149A (en) Lighting unit for a three-dimensional graphics accelerator with improved processing of multiple light sources
JP3727395B2 (en) Microcomputer
JP3332606B2 (en) Microprocessor
JP3043861B2 (en) Data processing device
CA2298337C (en) Game system with graphics processor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase