WO2006109623A1 - コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法 - Google Patents

コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法 Download PDF

Info

Publication number
WO2006109623A1
WO2006109623A1 PCT/JP2006/307118 JP2006307118W WO2006109623A1 WO 2006109623 A1 WO2006109623 A1 WO 2006109623A1 JP 2006307118 W JP2006307118 W JP 2006307118W WO 2006109623 A1 WO2006109623 A1 WO 2006109623A1
Authority
WO
WIPO (PCT)
Prior art keywords
configuration
reconfigurable
data
configuration information
sub
Prior art date
Application number
PCT/JP2006/307118
Other languages
English (en)
French (fr)
Inventor
Osamu Nishijima
Shirou Yoshioka
Yukihiro Sasagawa
Kenichi Kawaguchi
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to CN2006800104521A priority Critical patent/CN101151804B/zh
Priority to US11/886,868 priority patent/US20090083530A1/en
Priority to EP06731066A priority patent/EP1868293A1/en
Priority to JP2007512920A priority patent/JPWO2006109623A1/ja
Publication of WO2006109623A1 publication Critical patent/WO2006109623A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Definitions

  • the present invention relates to a computer system that processes a problem using a reconfigurable module whose function can be dynamically reconfigured as a constituent element, and configuration information for determining the function of the reconfigurable module.
  • Patent Document 1 As a conventional technique, there is one in which a reconfigurable logic circuit is connected to a computer system as an expansion device (Patent Document 1). In addition, there is one that maps a given problem to multiple FPGAs and solves it at high speed (Patent Document 2). Furthermore, there is a method of connecting two reconfigurable circuits on the layout during LSI design (Patent Document 3).
  • Patent Document 1 US Patent No. 6438737
  • Patent Document 2 US Patent No. 6415430
  • Patent Document 3 US Patent No. 6335635
  • the configuration information is mapped after the initial configuration of the entire computer system is determined. Therefore, the trade-off relationship between the processing time and the cost is flexible. Can not cope with.
  • the reconfigurable logic circuit does not have expandability.
  • the technology of Patent Document 2 since a mapping unique to a system with multiple FPGAs is made, the problem cannot be solved if any one of the multiple FPGAs is missing.
  • the reconfigurable circuit is merely connected at the time of design, and the reconfigurable circuit cannot be further connected or disconnected after the design is completed.
  • a system cannot be configured with multiple reconfigurable LSIs, and the number of reconfigurable LSIs cannot be made variable.
  • the present invention provides, for example, a computer system that can flexibly cope with a case where it becomes necessary to deal with a large-scale problem in the future while keeping initial costs low. Is the first issue.
  • a second object of the present invention is to provide configuration information that does not require re-mapping even when the configuration of a reconfigurable LSI to be mounted is changed.
  • the object of the present invention is independent of the number of reconfigurable modules to be mounted when a large-scale problem is solved by a computer system in which a plurality of reconfigurable modules are mounted. To provide a computer system that can respond flexibly even if problems become large in the future.
  • the present invention is characterized in that a reconfigurable module can be added.
  • the computer system is configured to reconfigure a CPU and a predetermined function.
  • a configuration information storage unit for storing configuration information to be implemented in the controllable module, and one or more reconfigurable modules are configured to be detachable,
  • the CPU configures the installed reconfigurable modules according to the number of the modules using configuration information stored in the configuration information storage unit.
  • the reconfigurable module is configured to be detachable, and when the reconfigurable module is attached, the reconfigurable modules attached are in accordance with the number of the reconfigurable modules.
  • the CPU is configured using configuration information stored in the configuration information storage unit for realizing a predetermined function in the reconfigurable module. For this reason, it is possible to increase the number of reconfigurable modules.For example, if the number of reconfigurable modules is reduced in the initial stage to reduce costs, and the problem becomes large in the future, Will be able to respond flexibly by adding reconfigurable modules.
  • the present invention provides a plurality of sub-configurations each corresponding to a divided function obtained by dividing the predetermined function as a data structure representing configuration information for realizing the predetermined function in the reconfigurable module.
  • Data and internal structure information indicating the relationship between the plurality of sub-configuration data and input / output data.
  • a plurality of sub-configuration data respectively corresponding to divided functions obtained by dividing a predetermined function for a reconfigurable module mounted on a computer system are converted into a plurality of sub-configuration data.
  • Each can be assigned by referring to internal structure information indicating the relationship between configuration data and input / output data. For this reason, even if the number of reconfigurable modules is changed, the installed reconfigurable modules can be optimally configured using the common configuration information.
  • the present invention provides the configuration information as a data structure representing configuration information for realizing a predetermined function in the reconfigurable module.
  • the configuration information includes a plurality of sub-configuration data corresponding to the divided functions obtained by dividing the predetermined function, respectively, according to variations in the number of reconfigurable modules. It is a thing.
  • the reconfigurable information is generated in a system different from the computer system. For this reason, when the number of reconfigurable modules installed in the computer system is changed, it is necessary to obtain configuration information again by some means.
  • the data structure of the present invention by preparing a plurality of configurable information corresponding to the variation of the number of reconfigurable modules assumed in advance, the installed reconfigurable module is provided. It is possible to flexibly cope with changes in the number of items.
  • mapping device and method for generating configuration information for realizing a predetermined function in a reconfigurable module an algorithm analysis is performed on the predetermined function, and processing is performed.
  • a division function that divides the predetermined function by generating a graph representing the relationship with input / output data and dividing each process in the graph with a predetermined size as an upper limit.
  • a plurality of subconfiguration data corresponding to each of the above and internal structure information indicating the relationship between the plurality of subconfiguration data and input / output data are generated.
  • the reconfigurable module can be configured using the same configuration information, and the process can be executed.
  • FIG. 1 is a diagram showing a configuration of a computer system according to an embodiment of the present invention.
  • FIG. 2 shows an example of the configuration of an attachment / detachment mechanism for a reconfigurable LSI.
  • FIG. 3 is a diagram showing a configuration of a computer system in which a different number of reconfigurable LSIs from that in FIG. 1 are mounted.
  • FIG. 4 is a diagram showing a configuration of a mapping apparatus according to an embodiment of the present invention.
  • FIG. 5 is a diagram showing an example of processing contents of format conversion from HD to SD of a moving image.
  • FIG. 6 is a diagram showing an example of the processing result of the algorithm analysis unit in the mapping apparatus of FIG.
  • FIG. 7 is a diagram showing a processing result of the configuration information generation unit in the mapping apparatus of FIG.
  • FIG. 8 is a diagram illustrating an example of a processing result of a number assigning unit in the mapping apparatus of FIG.
  • FIG. 9 is a diagram showing an example of a processing result of a communication information adding unit in the mapping apparatus of FIG. 4, and is a diagram showing an example of configuration information according to the present invention.
  • FIG. 10 is a schematic diagram showing a state in which the configuration information of FIG. 9 is stored.
  • FIG. 11 is a diagram showing an example of mapping of a communication memory.
  • FIG. 12 is a flowchart showing an operation of the computer system according to the embodiment of the present invention.
  • FIG. 13 is a diagram specifically showing the operation of the computer system of FIG. 1.
  • FIG. 14 is a diagram specifically showing the operation of the computer system in FIG. 3.
  • FIG. 15 specifically shows the operation when the two reconfigurable LSIs in the computer system of FIG. 3 are replaced with one reconfigurable LSI having twice the integration density.
  • FIG. FIG. 16 is a diagram showing another example of configuration information according to the present invention.
  • FIG. 17 is a schematic diagram showing a state in which the configuration information of FIG. 16 is stored.
  • FIG. 18 is a diagram showing another example of the processing result of the configuration information generation unit in the mapping apparatus of FIG.
  • FIG. 19 is another configuration example of the computer system according to the present invention.
  • FIG. 20 is another configuration example of the computer system according to the present invention.
  • FIG. 21 is another configuration example of the computer system according to the present invention.
  • FIG. 22 is another configuration example of the computer system according to the present invention.
  • FIG. 23 is another configuration example of the computer system according to the present invention.
  • FIG. 24 is a diagram showing an example of configuration information in the configuration of FIG.
  • FIG. 25 is another configuration example of the computer system according to the present invention.
  • FIG. 26 is another configuration example of the computer system according to the present invention.
  • FIG. 27 is another configuration example of the computer system according to the present invention.
  • FIG. 28 is a diagram showing an example of configuration information in the configuration of FIGS. 26 and 27.
  • Configuration information storage memory (configuration information storage) 110 Main bus
  • FIG. 1 is a diagram showing a configuration of a computer system according to an embodiment of the present invention.
  • the CPU 100 which is a processor unit, reads out a program stored in the main memory 101 via the main bus 110, and operates according to the program to control the entire computer system. Yes.
  • the main bus 110 is connected to the communication bus 111 by the bus bridge 102.
  • the bus bridge 102 has a function of arbitrating whether a misplaced device exchanges data as a master / slave connected to the misleading bus between the main bus 110 and the communication bus 111.
  • the main bus 110 is connected to a configuration information storage memory 108 as a configuration information storage unit, a screen output interface (IF) 109, and a general-purpose IOL 12.
  • This computer system can exchange data with the HDD drive 113, the DV drive 114, the tuner 115, and the like via the general-purpose 10112.
  • the communication node 111 is connected to a reconfigurable L SI 103 to 106, which is a device whose function can be reconfigured, and a communication memory 107.
  • Reconfigurable LSI103 ⁇ 106 communicate with each other via the communication memory 107.
  • the computer system of Fig. 1 has a configuration in which the reconfigurable LSI 103 to 106 force is detachable.
  • the reconfigurable LSIs 103 to 106 function as reconfigurable modules.
  • the configuration information storage memory 108 stores configuration information for realizing a predetermined function in the reconfigurable module.
  • the reconfigurable LSIs 103 to 106 can be configured for their functions by determining the internal connection relationship based on the configuration information stored in the configuration information storage memory 108.
  • the configuration information is information for determining the internal connection relationship in order for the reconfigurable LSI, which is a reconfigurable device, to realize a predetermined function.
  • the CPU 100 configures the installed reconfigurable modules using the configuration information stored in the configuration information storage memory 108 according to the number of the reconfigurable modules.
  • FIG. 2 is a configuration example of a mounting / removal mechanism of the reconfigurable LSI.
  • the configuration shown in FIG. 2 includes four sockets 121 connected to the communication bus 120 on the board, and each socket 121 is configured so that the reconfigurable LSI 122 can be attached and detached. .
  • the configurations of the socket 121 and the communication bus 120 can be realized in the same manner as, for example, a configuration in which memory is connected in a personal computer.
  • two reconfigurable LSIs 122 are mounted, and up to four reconfigurable LSIs 122 with two sockets 121 open can be mounted.
  • the number of reconfigurable LSIs to be mounted can be changed.
  • a plurality of sockets 121 as shown in FIG. 1 a plurality of sockets 121 as shown in FIG.
  • FIG. 3 is a diagram showing a configuration of a computer system when two reconfigurable LSIs 103 and 104, which are different in number from FIG. 1, are mounted.
  • FIG. 4 is a diagram showing a configuration of a mapping apparatus according to an embodiment of the present invention.
  • the mapping device shown in FIG. 4 is capable of allocating a large-scale problem to be processed as a computer system to each reconfigurable LSI of the computer system shown in FIG. 1 (in this specification, (Referred to as mapping). That is, the mapping apparatus in FIG. 4 generates configuration information for realizing a predetermined function in the reconfigurable module.
  • a large-scale problem to be processed as a computer system is first input to the mapping apparatus in FIG.
  • the problem here refers to an object to be processed by the computer system, such as MPEG encoding / decoding and decryption, in other words, a predetermined function realized by the computer system.
  • the inputted large-scale problem is first developed into a graph composed of a plurality of stages and connection branches in the algorithm analysis unit 200.
  • the configuration information generation unit 201 converts the plurality of developed stages into a plurality of sub-configuration data with a limited upper limit of the data amount. Numbers are assigned to the converted sub-configuration data by the number assigning unit 202.
  • the communication information adding unit 203 it is given to the communication information power configuration information between the reconfigurable modules configured by the subconfiguration data.
  • FIG. 4 shows configuration information for realizing a predetermined function in a reconfigurable module according to an embodiment of the present invention. This is a flow chart showing the mapping method to generate.
  • mapping apparatus in FIG. 4
  • SD Standard Definition
  • FIG. 5 shows an example of the processing contents of the format conversion of the moving image from HD to SD.
  • deca is a function that decodes audio data
  • decv is a video data
  • Enca is a function that encodes audio data
  • encv is a function that encodes video data.
  • the comb is a function for generating stream data from video data generated by encv and audio data generated by enca.
  • the reconfigurable LSIs 103 to 106 are detachable. That is, the configuration of a computer system is not predetermined as in the prior art, and the configuration can be changed.
  • the mapping apparatus is usually configured as a system different from the computer system, it is extremely difficult to repeat the mapping process every time the configuration of the computer system changes. Therefore, it is important to generate configuration information so that the system can be reconfigured without re-mapping even if the configuration of the computer system is changed.
  • FIG. 6 is a diagram illustrating an example of a processing result of the algorithm analysis unit 200 in the mapping apparatus of FIG. Fig. 6 shows the result of algorithm analysis using the processing content of Fig. 5 as a predetermined function.
  • a graph showing the relationship between processing and input / output data is generated.
  • input / output data is shown in circles, and processing is shown in mouths.
  • the data flow is represented by an arrow-like connection branch.
  • enca uses the processing result of deca
  • encv uses the processing result of deca
  • comb uses the processing results of both enca and encv.
  • deca and decv or enca and encv have no dependency and can be executed in parallel.
  • FIG. 7 is a diagram illustrating an example of a processing result of the configuration information generation unit 201 in the mapping apparatus of FIG.
  • FIG. 7 is a diagram in which each process in the graph of FIG. 6 is divided up to a predetermined size as an upper limit.
  • input / output data is shown in circles, and subconfiguration data is shown in mouths.
  • the data flow is represented by arrow-shaped connecting branches.
  • the sub-configuration data indicates data for configuring each configurable module in the configuration information for configuring the entire computer system.
  • the predetermined size specifically refers to a scale that can be mapped to each of the reconfigurable LSIs 103 to 106. This predetermined size also determines the specifications of the reconfigurable module to be installed. For example, the data size that can be mapped to the reconfigurable module having the minimum circuit size may be set to a predetermined size. By ensuring that the subconfiguration data does not exceed a predetermined size, the generated subconfiguration data is always of a size that allows one reconfigurable LSI to be configured.
  • FIG. 7 is different from FIG. 6 in that decv is divided into decvl and decv2 and encv force encvl and enc v2.
  • decv and encv are large-scale processes, they are divided into two as a result of the predetermined size as the upper limit. The division is performed by analyzing each algorithm and dividing each algorithm into sub-algorithms that can be processed in parallel.
  • Each divided algorithm and sub-algorithm is converted into sub-configuration data which is information for determining the internal connection relationship of the reconfigurable LSI.
  • sub-configuration data is information for determining the internal connection relationship of the reconfigurable LSI.
  • a plurality of subconfiguration data respectively corresponding to the divided functions obtained by dividing the predetermined function can be obtained.
  • internal structure information indicating the relationship between sub-configuration data and input / output data as shown in Fig. 7 is obtained. That is, in FIG. 6, the mouth represents the processing vaguely, whereas in FIG. 7, the mouth represents the sub-configuration data for configuring each reconfigurable LSI.
  • FIG. 8 is a diagram showing an example of the processing result of the number assigning unit 202 in the mapping apparatus of FIG.
  • a serial number is assigned to each sub-configuration data in the internal structure information of FIG. That is, the serial number enclosed by the mouth is attached to the shoulder of each sub-configuration data enclosed by the mouth.
  • dependency information indicating the dependency between the subconfiguration data is generated. Made.
  • each number is a serial number assigned to the subconfiguration data, ⁇ indicates no dependency, and X indicates dependency.
  • indicates that the subconfiguration data can be mapped to different reconfigurable LSIs at the same timing
  • X indicates that the processing of the subconfiguration data with the smaller number has been completed. Otherwise, it indicates that the higher numbered subconfiguration data cannot be mapped.
  • FIG. 9 is a diagram illustrating an example of a processing result of the communication information adding unit 203 in the mapping apparatus of FIG.
  • a number is assigned to each intermediate data in the middle of processing. In other words, the number enclosed in the mouth is attached to the shoulder of each intermediate data enclosed in circles. This number is the serial number of the data placed in the communication memory when the reconfigurable modules communicate with each other.
  • the configuration information for configuring the computer system is complete. That is, configuration order determination information 400 including internal structure information 401 and dependency relationship information 402, and a plurality of sub-configuration data and configuration information power that is the power of the configuration information storage memory 108 in FIG.
  • FIG. 10 is a schematic diagram showing a state in which configuration information is stored in the configuration information storage memory 108.
  • 400 is configuration order determination information including internal structure information 401 and dependency relationship information 402, and 403 is a sub-configuration data module including a plurality of subconfiguration data 404 to 410.
  • the configuration order determination information 400 and the sub-configuration data module 403 constitute configuration information 420.
  • the configuration information storage memory 108 also stores configuration information 430 for realizing other functions.
  • the configuration information may be mounted in the configuration information storage memory 108 in advance.
  • the configuration information is recorded on a computer-readable recording medium such as a DVD, and the configuration information that is also read out from the recording medium power can be It may be installed in the configuration information storage memory 108 via IOl l2.
  • FIG. 11 is an example of mapping of the communication memory 107 in FIG.
  • each intermediate data numbered in FIG. 9 is mapped.
  • a comparison table of each intermediate data and memory address is given to the lower address, and communication is performed using this comparison table during operation.
  • FIG. 12 is a flowchart showing the operation of the computer system according to this embodiment.
  • the CPU 100 first determines the number of mounted reconfigurable LSIs (600). Then, referring to the internal structure information 401 in the configuration information stored in the configuration information storage memory 108, a data storage location in the main memory 101 and the communication memory 107 is secured (601). .
  • the CPU 100 refers to the internal structure information 401 and the dependency relationship information 402 in the configuration information stored in the configuration information storage memory 108 and determines the number of mounted reconfigurable LSIs.
  • sub-configuration data to be executed in parallel is determined (602).
  • the reconfigurable LSI is configured using the determined subconfiguration data (603), and each reconfigurable LSI is caused to execute processing (604).
  • steps 602 to 603 are repeated until configuration and processing are executed for all the sub-configuration data (605).
  • the configuration information shown in FIG. 9 is stored in the configuration information storage memory 108.
  • the CPU 100 determines that the number of mounted reconfigurable LSIs 10 3 to 106 is four (600). Then, as shown in FIG. 13 (a), the storage locations of the input data a, V and the output data b are secured in the main memory 101, and the numbers 4, 5, 6, 7-1, Secure the storage location for intermediate data 7-2, 7-3 (01).
  • the CPU 100 transfers the subconfiguration data to each reconfigurable LSI. Allocate to 103 to 106 and execute processing.
  • the internal structure information 401 and the dependency information 402 stored in the configuration information storage memory 108 are referred to and divided into three times. And go to the configuration.
  • the CPU 100 determines that the subconfiguration data of numbers 1, 2, and 3, that is, deca, decvl, and decv2 are to be executed in parallel (602), and uses them.
  • the reconfigurable LSIs 103 to 105 are configured (603).
  • the reconfigurable LSIs 103 to 105 are caused to execute processing (604).
  • the input data a and V stored in the main memory 101 are input to the reconfigurable LSI 103 to 105 via the bus bridge 102, and the intermediate data of numbers 4, 5, and 6 obtained as a result of the processing are input.
  • the CPU 100 determines that the sub-configuration data of numbers 4, 5, and 6, that is, enca, encvl, and encv2 are executed in parallel (602), and these are determined. It is used to configure the reconfigurable LSIs 103 to 105 (603). Then, the reconfigurable LSIs 103 to 105 are caused to execute processing (604). At this time, intermediate data of numbers 4, 5, and 6 stored in the communication memory 107 are input to the reconfigurable LSIs 10 3 to 105, and the numbers 7-1, 7-2, 7— Intermediate data 3 is stored in the communication memory 107.
  • the CPU 100 determines to execute the subconfiguration data of number 7, that is, comb (602), and uses this to configure the reconfigurable LSI 103. (603). Then, the reconfigurable LSI 103 is caused to execute processing (604). At this time, intermediate data of numbers 7-1, 7-2, 7-3 stored in the communication memory 107 is input to the reconfigurable LSI 103, and the output data b obtained as a result of the processing is transferred to the bus bridge 102. Stored in the main memory 101. Now that all processing is complete, the operation ends (605, 606) o
  • the configuration information shown in FIG. 9 is stored in the configuration information storage memory 108.
  • CPU100 is equipped with Reconfigurable L
  • the number of SI103, 104 is determined as 2 (600).
  • FIG. 14 (a) in the main memory 101, the storage locations of the input data a and V and the output data b are secured, and the communication memory 107 [No. 4, 5, 6, 7- 1, 7- 2, 7—3 Secure a place in the data thread (601).
  • the CPU 100 allocates sub-configuration data to each reconfigurable LSI 103, 104, and executes processing.
  • the number of installed Reconfigurable L SI is two
  • the internal structure information 401 and the dependency relationship information 402 stored in the configuration information storage memory 108 four times. Divide and perform the configuration.
  • the CPU 100 determines that the sub-configuration data of numbers 1 and 2, that is, deca and decvl are executed in parallel (602), and uses them to make reconfigurable data.
  • the LSIs 103 and 104 are configured (603).
  • each reconfigurable LSI 103, 104 is caused to execute processing (604).
  • the input data a and V stored in the main memory 101 are input to the reconfigurable LSIs 10 and 104 via the bus bridge 102, and the intermediate data of numbers 4 and 5 obtained as a result of the processing are used for communication.
  • the sub-configuration data of numbers 3 and 4, that is, decv2 and enca are determined to be executed in parallel (602), and using these, reconfigurable LSIs 103 and 104 are used. Is configured (603). Then, each reconfigurable LSI 103, 104 is caused to execute processing (604). At this time, the input data V stored in the main memory 101 is input to the reconfigurable LSI 103 via the bus bridge 102 and the intermediate data of the number 4 stored in the communication memory 107 is reconfigurable. Intermediate data of numbers 6 and 7-1 input to the LSI 104 and obtained as a result of the processing are stored in the communication memory 10 7.
  • the sub-configuration data of numbers 5 and 6, that is, encvl and encv2 are determined to be executed in parallel (602). Configure (603). Then, each reconfigurable LSI 103, 104 is caused to execute processing (604). At this time, it is stored in the communication memory 107.
  • the intermediate data of numbers 5 and 6 are input to the reconfigurable LSIs 103 and 104, and the intermediate data of numbers 7-2 and 7-3 obtained as a result of the processing are stored in the communication memory 107.
  • the processing is divided into three times as shown in FIG. 13, whereas in FIG. In a computer system equipped with two reconfiguration LSIs, the process is divided into four steps as shown in Fig. 14. That is, according to this embodiment, it is possible to configure a computer system using the same configuration information even if the number of mounted reconfigurable LSIs is different. For this reason, for example, it is possible to perform processing using a small number of reconfigurable LSIs at the beginning and to perform high-speed processing by adding reconfigurable LSIs later.
  • processing may be executed in the same manner as in Fig. 13.
  • the reconfigurable LSI 106 is not used in the processing of FIG. Using this reconfigurable LSI 106, it is possible to perform another process in parallel with the process shown in FIG. In FIG. 13, for example, a television broadcast can be viewed while recording a moving image by using the power reconfigurable LSI 106 that executes processing for recording a moving image.
  • the circuit scales of the reconfigurable LSIs to be mounted are all the same.
  • the circuit scales of the reconfigurable LSI to be mounted may be different from each other. Considering such a case, it is preferable to include information on the size of each sub-configuration data in the configuration information.
  • the configuration information storage memory 108 For each sub-configuration data, information indicating the circuit scale of the reconfigurable LSI that can be configured by the sub-configuration data (hereinafter referred to as size information) is stored in the configuration information storage memory 108. deep. As a result, it is possible to flexibly cope with, for example, replacing a currently installed reconfigurable LSI with a reconfigurable LSI having a higher degree of integration.
  • FIG. 15 shows the operation when the two reconfigurable LSIs 103 and 104 are replaced with one reconfigurable LSI 103A having twice the integration density in the computer system of FIG.
  • the CPU 100 allocates two pieces of subconfiguration data to one reconfigurable LSI 103A by referring to the size information stored in the configuration information storage memory 108.
  • the reconfigurable LSI 103A is implemented with twice as much data as the reconfigurable LSI 103, 104 of FIG.
  • the reconfigurable LSI 103A is first configured using the subconfiguration data of numbers 1 and 2, ie, deca and decvl, as shown in FIG. 15 (a). Thereafter, as shown in FIG. 15 (b), it is configured using the sub-configuration data of numbers 3 and 4, that is, decv2 and enca, and as shown in FIG. Configuration is performed using configuration data, ie, encvl and encv2, and finally configuration is performed using sub-configuration data of number 7, ie, comb, as shown in FIG. 15 (d).
  • the processing to be executed is the same as in FIG.
  • the dependency information and size information described above are not necessarily included in the configuration information.
  • the allocation order of each sub-configuration data may be determined in advance according to the variation.
  • the mounting order information indicating the allocation order of each subconfiguration data is used as the configuration information instead of the dependency information. Even if it is included, it does not work.
  • FIG. 16 is an example of configuration information including such mounting order information.
  • the configuration order determination information 300 includes internal structure information 301 having the same contents as the internal structure information 401 in FIG. 9 and mounting order information 302.
  • the mounting order information 302 indicates which subconfiguration data is to be mounted in each step for each of the modules having 1 to 4 modules.
  • the number of sockets for mounting the reconfigurable LSI provided in the computer system is one.
  • FIG. 17 is a schematic diagram showing a state in which the configuration information of FIG. 16 is stored in the configuration information storage memory 108.
  • 300 is configuration order determination information including internal structure information 301 and mounting order information 302
  • 403 is a subconfiguration data module including a plurality of subconfiguration data 404 to 410.
  • the configuration order determination information 300 and the sub-configuration data module 403 constitute configuration information 420A.
  • the internal structure information 301 is shared, and sub-configuration data implemented at each step is shown for each variation of the number of reconfigurable modules.
  • Mounting order information 302 is provided. Instead of this, mapping may be performed for each variation of the number of reconfigurable modules, and configuration information may be directly provided. That is, the reconfig Configurable information may be generated for each variation of the number of guilable modules.
  • configuration information including a plurality of sub-configuration data corresponding to each divided function obtained by dividing a predetermined function. Multiple configurations according to the number of reconfigurable modules installed. It is stored in the information storage memory 108.
  • FIG. 18 is a diagram showing another example of the processing result of the configuration information generation unit 201 in the mapping apparatus of FIG.
  • the algorithm is divided into two parts that can be processed in parallel, but the video decoding process is not necessarily completely parallel. Therefore, in FIG. 18, subconfiguration data is generated as decvO for a portion that must be processed in common (in this case, the first processing).
  • it is considered necessary to perform scheduling so that the portion connected in series and the portion connected in parallel are optimized.
  • the computer system in which the reconfigurable module is configured to be detachable may have various configurations other than those illustrated in Figs. Other configuration examples will be described below.
  • the same reference numerals as those in FIG. 1 and FIG. 3 are given to the same components as those in FIG. 1 and FIG.
  • FIG. 19 shows a computer system in which the bus bridge has two layers, and is assumed to be mounted on a personal computer.
  • Reconfigurable block 130 is connected to IO bus 131.
  • the reconfigurable LSIs 103 and 104 are detachable, and data can be exchanged with the IO bus 131 via the bus bridge 132.
  • FIG. 20 shows a computer system in which dedicated hardware is connected in parallel with the reconfigurable LSI. That is, the dedicated hardware 141 and 142 are connected to the communication bus 111 in parallel with the reconfigurable LSI 103 and 104. Even if the function was originally implemented in a reconfigurable LSI by a program, it would be more advantageous in terms of circuit scale and power consumption to be executed by dedicated hardware once the specifications are finalized. . In this case, regenerate configuration information for functions other than those performed by dedicated hardware.
  • Figure 21 shows a computer system equipped with a reconfigurable LSI that includes an RF circuit, and is intended for use in mobile phones.
  • Reconfigurable LSIs 143 and 144 are equipped with RF circuits 143a and 144a that can support three systems: wireless LAN, mobile phone, and Bluetooth.
  • a single reconfigurable LSI can communicate with only one of three methods: wireless LAN, mobile phone, and Bluetooth.
  • two reconfigurable LSIs must be installed.
  • two reconfigurable LSIs 143 and 144 are equipped with RF circuits 143a and 144a that can support three methods, simultaneous communication can be performed in two methods.
  • FIG. 22 shows a computer system to which a reconfigurable block is connected via USB.
  • the reconfigurable block 150 includes a communication bus 151, a USB device IF152, a communication memory 153, and reconfigurable LSIs 154 and 155.
  • the reconfigurable block 150 and the IO bus 131 are connected via the USB host IF 156. Be connected!
  • Figure 23 shows a computer system with hierarchically reconfigurable blocks added via USB.
  • the reconfigurable blocks 150a and 150b are connected to the USB host IF 156
  • the reconfigurable blocks 150c and 150d are connected to the USB hub 157 connected to the USB host IF 156.
  • a peripheral device 158 is also connected to the USB hub 157.
  • the peripheral device 158 is a device including an antenna unit, a voice input unit, and a voice output unit, and has a function used in a wireless phone, a cellular phone, and the like. Thereby, for example, local processing can be performed between the peripheral device 158 and the reconfigurable blocks 150c and 150d. Also, the CPU 100 determines which configuration information is mapped to which reconfigurable block. Therefore, it is possible to map configuration information optimal for the connection structure of the reconfigurable block.
  • FIG. 24 is a conceptual diagram of configuration information implementation considering expansion by a USB hub.
  • Figure 24 shows a system connected via USB hub 157 in the system configuration of Figure 23.
  • the configuration order determination information 500 for the configurable blocks 150c and 150d is shown.
  • the configuration order determination information 500 includes internal structure information 501 and mounting order information 502.
  • the received data (r) input from the antenna unit of the peripheral device 158 is stream-decoded (deer) to output decoded audio data (al), and further the audio decoding process (decal)
  • decoded audio data (al) is shown.
  • the audio data (a2) input from the audio input unit of the peripheral device 158 is audio encoded ( enca 2) and encoded audio data (a2) is output, and further stream encoded (enct) is transmitted. The flow to output data (t) is shown.
  • the configuration order determination information 500 in FIG. 24 includes configuration information (for example, similar to FIG. 16) regarding the reconfigurable blocks 150a and 150b connected via the USB host IF156 in FIG. Stored in the session information storage memory 108. Sub-configuration data decr, decal, enca2 and enct are also stored in the same way.
  • the reconfigurable blocks 150c and 150d are used for processing handled by the peripheral device 158 connected to the USB hub 157.
  • the reconfigurable blocks 150a and 150b are used for moving image input from the general-purpose I / O 12 connected to the bus 131. For this reason, the reconfigurable blocks 150c and 150d and the reconfigurable blocks 150a and 150b are configured separately, and the configuration information is also stored separately.
  • FIG. 25 shows a computer system in which a reconfigurable LSI is added without being connected to a bus.
  • the reconfigurable LSI 164 is directly connected to the reconfigurable LSI 163 without going through the communication bus 111, and the reconfigurable L SI 166 is reconfigured without going through the communication bus 111. It is directly connected to the figureable LSI 165.
  • This configuration is effective when, for example, the reconfigurable LSI 164 communicates only with the reconfigurable LSI 163 and does not need to communicate with the reconfigurable LSI 165, 166, or the like.
  • FIG. 26 shows a video encoder 171 and a video decorator in addition to the reconfigurable LSI.
  • DA 172 is added as a dedicated LSI.
  • Fig. 27 shows a configuration in which a video encoder 171 is added as a dedicated LSI in addition to two reconfigurable LSIs.
  • FIG. 28 is a conceptual diagram of implementation of configuration information generated in consideration of the addition of a video encoder or video decoder as a dedicated LSI.
  • the configuration order determination information 300 shown in FIG. 16 includes mounting order information 302 in which each process shown in FIG. 7 is executed in steps using only the reconfigurable LSI.
  • the configuration order determination information 300A shown in FIG. 28 is added to the implementation order information 302, and when a video encoder or video decoder is added as a dedicated LSI, it performs video encoding processing or video decoding processing. It includes implementation order information 303 that is considered to be performed.
  • the video decoding process decv is divided into two sub-configuration data decvl and decv2, and the video encoding process encv is divided into two sub-configuration data encvl and encv2.
  • the dedicated LSI assumes that these processes can be completed within the time that the reconfiguration LSI is performing one-step processing.
  • the dedicated LSI is designed to execute a specific process at high speed, it is generally possible to complete the process in a shorter time than when a reconfigurable LSI is used.
  • the video encoder 171 and the video decoder 172 are divided into two while the reconfigurable LSI performs one unit of processing such as audio decoding and audio encoding.
  • the entire video code processing decv or video decoding processing encv can be executed.
  • the processing capability is improved by increasing the operating frequency or increasing the number of transistors.
  • a reconfigurable module with higher power is announced, processing with a smaller number of reconfigurable modules can be realized by replacing it with the reconfigurable module. For this reason, it is possible to reduce power consumption for the same processing, which is suitable for use in, for example, a mobile phone.
  • reconfigurable modules makes it easy to expand the processing capacity of the entire system, making it ideal for workstations for multimedia processing, for example.

Abstract

 コンフィギュレーション情報格納部(108)は、所定の機能をリコンフィギュラブルモジュールに実現させるためのコンフィギュレーション情報を格納している。CPU(100)は、装着されたリコンフィギュラブルモジュール(103~106)を、その個数に応じて、コンフィギュレーション情報格納部(108)に格納されたコンフィギュレーション情報を用いて、コンフィギュレーションする。

Description

明 細 書
コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並 びにマッピング装置および方法
技術分野
[0001] 本発明は、その機能をダイナミックに再構成可能なリコンフィギユラブルモジュール を構成要素として問題を処理するコンピュータシステム、およびリコンフィギユラブル モジュールの機能を決定するためのコンフィギュレーション情報に関する。
背景技術
[0002] 従来の技術として、コンピュータシステムに、リコンフィギユラブルロジック回路を拡 張装置として接続するものがある (特許文献 1)。また、複数の FPGAに所定の問題を マッピングして高速に解くものがある(特許文献 2)。さらに、 LSI設計時にレイアウト上 で 2つのリコンフィギユラブル回路を接続する方法がある(特許文献 3)。
特許文献 1:米国特許第 6438737号明細書
特許文献 2 :米国特許第 6415430号明細書
特許文献 3 :米国特許第 6335635号明細書
発明の開示
発明が解決しょうとする課題
[0003] リコンフィギユラブル LSIを実装したコンピュータシステムにおいて、処理すべき問題 が大規模になった場合、既に実装されているリコンフィギユラブル LSIのみでは多大 な処理時間が必要となることがあった。一方で、最初力も不必要に大規模なリコンフィ ギユラブル LSIを実装すると、コンピュータシステム全体のコストが高くなつてしまうとい う問題があった。すなわち、処理時間とコストとの間にはトレードオフの関係があり、こ れに柔軟に対応できるシステムが期待される。
[0004] ところが上述の従来技術はいずれも、初期にコンピュータシステム全体の構成を決 定した上でコンフィギュレーション情報をマッピングして 、るので、この処理時間とコス トとのトレードオフの関係に柔軟に対応することができない。例えば、特許文献 1の技 術では、リコンフィギユラブルロジック回路に拡張性がない。また、特許文献 2の技術 では、複数の FPGAを並べたシステムに固有のマッピングがなされるため、複数の F PGAのうちどれ力 1つでも欠けると問題は解けない。さらに、特許文献 3の技術では、 リコンフィギユラブル回路をあくまで設計時に接続するのみであり、設計終了後にリコ ンフィギユラブル回路をさらに接続したり、切り離したりすることはできない。また、複数 のリコンフィギユラブル LSIでシステムを構成したり、リコンフィギユラブル LSIの個数を 可変にしたりすることもできない。
[0005] 本発明は、例えば、初期のコストを低く抑えつつ、将来的に大規模な問題を処理す る必要が生じた場合であっても柔軟に対応できるようなコンピュータシステムを提供す ることを第 1の課題とする。
[0006] また、大規模な問題をリコンフィギユラブル回路で解こうとした場合、複数のリコンフ ィギユラブル LSIを実装するか、大規模なリコンフィギユラブル LSIを実装する必要が ある。ところが従来の技術では、大規模な問題のハードウェアへのマッピングは、 1ま たは複数のリコンフィギユラブル LSIを実装したコンピュータシステムに固有のものに なる。そのため、例えば 1個のリコンフィギユラブル LSIに実装される回路規模が大き くなつたり、実装するリコンフィギユラブル LSIの個数が増えたりするなど、ハードゥエ ァの構成が変更された場合には、マッピングをやり直す必要があった。
[0007] 本発明は、実装されるリコンフィギユラブル LSIの構成が変更された場合であっても 、マッピングをやり直す必要がな 、コンフィギュレーション情報を提供することを第 2の 課題とする。
[0008] 以上を総括して、本発明の目的は、大規模な問題を複数のリコンフィギユラブルモ ジュールを実装したコンピュータシステムで解く場合に、実装されるリコンフィギュラブ ルモジュールの個数と無関係なマッピングを実現すること、および将来、問題が大規 模ィ匕したときであっても、柔軟に対応できるコンピュータシステムを提供することにある
課題を解決するための手段
[0009] 前記の課題に鑑み、本発明は、リコンフィギユラブルモジュールを増設可能にしたこ とを特徴とする。
[0010] 具体的には、本発明に係るコンピュータシステムは、 CPUと、所定の機能をリコンフ ィギユラブルモジュールに実現させるためのコンフィギュレーション情報を格納するコ ンフィギユレーシヨン情報格納部とを備え、 1または複数のリコンフィギユラブルモジュ ールが、着脱可能に構成されており、前記 CPUは、装着されたリコンフィギユラブル モジュールを、その個数に応じて、前記コンフィギュレーション情報格納部に格納さ れたコンフィギュレーション情報を用いて、コンフィギュレーションするものである。
[0011] この発明によると、リコンフィギユラブルモジュールが着脱可能に構成されており、リ コンフィギユラブルモジュールが装着されたとき、装着されたリコンフィギユラブルモジ ユールは、その個数に応じて、コンフィギュレーション情報格納部に格納された、所定 の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギュレーション情 報を用いて、 CPUによってコンフィギュレーションされる。このため、リコンフィギュラブ ルモジュールを増設可能となるので、例えば、初期段階ではコスト削減のためにリコ ンフィギユラブルモジュールの個数を少なくしておき、将来、問題が大規模ィ匕したとき にはリコンフィギユラブルモジュールを増設する、というような柔軟な対応が可能にな る。
[0012] また、本発明は、所定の機能をリコンフィギユラブルモジュールに実現させるための コンフィギュレーション情報を表すデータ構造として、前記所定の機能を分割した分 割機能にそれぞれ対応する複数のサブコンフィギュレーションデータと、前記複数の サブコンフィギュレーションデータと入出力データとの関係を示す内部構造情報とを 備えたものである。
[0013] このデータ構造を用いることによって、コンピュータシステムに装着されたリコンフィ ギユラブルモジュールに対して、所定の機能を分割した分割機能にそれぞれ対応す る複数のサブコンフィギュレーションデータを、複数のサブコンフィギュレーションデー タと入出力データとの関係を示す内部構造情報を参照して、それぞれ、割り当てるこ とができる。このため、リコンフィギユラブルモジュールの個数が変更された場合であ つても、共通のコンフィギュレーション情報を用いて、装着されたリコンフィギユラブル モジュールを最適にコンフィギュレーションすることができる。
[0014] また、本発明は、所定の機能をリコンフィギユラブルモジュールに実現させるための コンフィギュレーション情報を表すデータ構造として、前記コンフィギュレーション情報 を、リコンフィギユラブルモジュールの個数のバリエーションに応じて、複数個備え、前 記各コンフィギュレーション情報は、前記所定の機能を分割した分割機能にそれぞ れ対応する複数のサブコンフィギュレーションデータを備えたものである。
[0015] 通常、リコンフィギユラブル情報はコンピュータシステムとは異なるシステムにおいて 生成される。このため、コンピュータシステムに装着されるリコンフィギユラブルモジュ ールの個数が変更された場合は、再度何らかの手段によってコンフィギュレーション 情報を入手する必要がある。ところが、本発明のデータ構造のように、予め想定され るリコンフィギユラブルモジュールの個数のバリエーションに対応して複数のコンフィ ギユレーシヨン情報を準備しておくことによって、装着されたリコンフィギユラブルモジ ユールの個数が変更された場合にも、柔軟に対応できる。
[0016] また、本発明は、所定の機能をリコンフィギユラブルモジュールに実現させるための コンフィギュレーション情報生成するマッピング装置および方法として、前記所定の機 能に対してアルゴリズム解析を行 ヽ、処理と入出力データとの関係を表すグラフを生 成し、前記グラフにおける各処理に対して、予め定められた所定のサイズを上限とし て、分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応す る複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーション データと入出力データとの関係を示す内部構造情報とを、生成するものである。 発明の効果
[0017] 本発明によると、リコンフィギユラブルモジュールの個数が変更された場合でも、同 じコンフィギュレーション情報を用いて、リコンフィギユラブルモジュールをコンフィギュ レーシヨンし、処理を実行することができる。
[0018] これにより、例えば、リコンフィギユラブルモジュール 1個の処理能力が増えたとき、 より少ない個数のリコンフィギユラブルモジュールを用いて、同じ機能を同程度の処理 時間内で実行させることが可能になる。
[0019] また、実行させる機能の規模がさらに大きくなつたとしても、これに合わせてリコンフ ィギユラブルモジュールを増設することによって、所定の処理時間内で実行させること が可能になる。例えば、動画の再生のみをさせていたシステムに対して、リコンフィギ ユラブルモジュールを増設することによって、動画の再生と同時に受信した動画を H Dから SDに変換しながら記録する、というような動作が可能になる。
図面の簡単な説明
[図 1]図 1は、本発明の一実施形態に係るコンピュータシステムの構成を示す図であ る。
[図 2]図 2は、リコンフィギユラブル LSIの着脱機構の構成例である。
[図 3]図 3は、図 1と異なる個数のリコンフィギユラブル LSIが実装されたコンピュータシ ステムの構成を示す図である。
[図 4]図 4は、本発明の一実施形態に係るマッピング装置の構成を示す図である。
[図 5]図 5は、動画の HDから SDへのフォーマット変換の処理内容の例を示す図であ る。
[図 6]図 6は、図 4のマッピング装置におけるアルゴリズム解析部の処理結果の例を示 す図である。
[図 7]図 7は、図 4のマッピング装置におけるコンフィギュレーション情報生成部の処理 結果を示す図である。
[図 8]図 8は、図 4のマッピング装置における番号付与部の処理結果の例を示す図で ある。
[図 9]図 9は、図 4のマッピング装置における通信情報付与部の処理結果の例を示す 図であり、本発明に係るコンフィギュレーション情報の一例を示す図である。
[図 10]図 10は、図 9のコンフィギュレーション情報が格納された状態を示す模式図で ある。
[図 11]図 11は、通信用メモリのマッピングの例を示す図である。
[図 12]図 12は、本発明の一実施形態に係るコンピュータシステムの動作を示すフロ 一チャートである。
[図 13]図 13は、図 1のコンピュータシステムの動作を具体的に示す図である。
[図 14]図 14は、図 3のコンピュータシステムの動作を具体的に示す図である。
[図 15]図 15は、図 3のコンピュータシステムにおいて 2個のリコンフィギユラブル LSIを その 2倍の集積度を有する 1個のリコンフィギユラブル LSIに置換した場合の動作を 具体的に示す図である。 [図 16]図 16は、本発明に係るコンフィギュレーション情報の他の例を示す図である。
[図 17]図 17は、図 16のコンフィギュレーション情報が格納された状態を示す模式図 である。
[図 18]図 18は、図 4のマッピング装置におけるコンフィギュレーション情報生成部の 処理結果の他の例を示す図である。
[図 19]図 19は、本発明に係るコンピュータシステムの他の構成例である。
[図 20]図 20は、本発明に係るコンピュータシステムの他の構成例である。
[図 21]図 21は、本発明に係るコンピュータシステムの他の構成例である。
[図 22]図 22は、本発明に係るコンピュータシステムの他の構成例である。
[図 23]図 23は、本発明に係るコンピュータシステムの他の構成例である。
[図 24]図 24は、図 23の構成におけるコンフィギュレーション情報の例を示す図である
[図 25]図 25は、本発明に係るコンピュータシステムの他の構成例である。
[図 26]図 26は、本発明に係るコンピュータシステムの他の構成例である。
[図 27]図 27は、本発明に係るコンピュータシステムの他の構成例である。
[図 28]図 28は、図 26および図 27の構成におけるコンフィギュレーション情報の例を 示す図である。
符号の説明
100 CPU
101 メインメモリ
102 バスブリッジ
103, 104, 105, 106 リコンフィギユラブル LSI (リコンフィギユラブルモジュール) 107 通信用メモリ
108 コンフィギュレーション情報格納メモリ(コンフィギュレーション情報格納部) 110 メインバス
111 通信用バス
120 通信用バス
121 ソケット (接続部) 122 リコンフィギユラブル LSI
200 アルゴリズム解析部
201 コンフィギュレーション情報生成部
202 番号付与部
203 通信情報付与部
300 コンフィギュレーション順序決定情報
301 内部構造情報
302 実装順序情報
400 コンフィギュレーション順序決定情報
401 内部構造情報
402 依存関係情報
404- -410 サブコンフィギュレーションデータ
発明を実施するための最良の形態
[0022] 以下、図面を参照しながら本発明を実施するための最良の形態について説明する
[0023] 図 1は本発明の一実施形態に係るコンピュータシステムの構成を示す図である。図 1において、プロセッサユニットである CPU100は、メインバス 110を介してメインメモ リ 101に格納されたプログラムを読み出し、そのプログラムに従つて動作することによ り、コンピュータシステム全体の制御を司っている。メインバス 110はバスブリッジ 102 によって通信用バス 111と接続されている。バスブリッジ 102は、メインバス 110と通 信用バス 111の 、ずれのバスに接続された 、ずれのデバイスがマスタ'スレーブとし てデータのやり取りを行うかを調停する機能を有する。
[0024] メインバス 110は、コンフィギュレーション情報格納部としてのコンフィギュレーション 情報格納メモリ 108と、画面出力インタフェース (IF) 109と、汎用 IOl 12とが接続さ れている。このコンピュータシステムは、汎用 10112を介して、 HDDドライブ 113、 D VDドライブ 114およびチューナー 115などとデータのやりとりが可能になっている。
[0025] 通信用ノ ス 111は、その機能を再構成可能なデバイスであるリコンフィギユラブル L SI103〜106と、通信用メモリ 107とが接続されている。リコンフィギユラブル LSI103 〜106は通信用メモリ 107を介して互いに通信を行う。
[0026] 図 1のコンピュータシステムでは、リコンフィギユラブル LSI103〜106力 着脱可能 な構成となっている。そして、リコンフィギユラブル LSI103〜106はリコンフィギュラブ ルモジュールとして機能する。
[0027] コンフィギュレーション情報格納メモリ 108は、所定の機能をリコンフィギユラブルモ ジュールに実現させるためのコンフィギュレーション情報を格納する。リコンフィギユラ ブル LSI103〜106は、コンフィギュレーション情報格納メモリ 108に格納されたコン フィギユレーシヨン情報によって、その内部接続関係が決定されることにより、その機 能をコンフィギュレーション可能である。換言すれば、コンフィギュレーション情報とは 、再構成可能なデバイスであるリコンフィギユラブル LSIに所定の機能を実現させるた めに、その内部接続関係を決定するための情報である。 CPU100は、装着されたリ コンフィギユラブルモジュールを、その個数に応じて、コンフィギュレーション情報格納 メモリ 108に格納されたコンフィギュレーション情報を用いて、コンフィギュレーション する。
[0028] 図 2はリコンフィギユラブル LSIの着脱機構の構成例である。図 2の構成では、ボー ド上の通信用バス 120に接続された 4個の接続部としてのソケット 121を備えており、 各ソケット 121は、リコンフィギユラブル LSI122が着脱可能に構成されている。このソ ケット 121と通信用バス 120の構成は、例えば、パーソナルコンピュータにおいてメモ リを接続する構成と同様に実現することが可能である。図 2の例では、リコンフィギユラ ブル LSI122は 2個実装されており、 2個のソケット 121が開いている力 最大 4個ま でのリコンフィギユラブル LSI 122を実装可能である。
[0029] 図 2のような機構をコンピュータシステムに設けることによって、実装されるリコンフィ ギユラブル LSIの個数を変更可能にすることができる。例えば図 1のコンピュータシス テムにおいて、通信用バス 111に図 2のようなソケット 121を複数個設ければよい。
[0030] 図 3は図 1と異なる個数である 2個のリコンフィギユラブル LSI103, 104を実装した 場合のコンピュータシステムの構成を示す図である。
[0031] なお、以下の説明では、リコンフィギユラブル LSI103〜106の回路規模は同一で あるものと仮定して説明を行う。 [0032] 図 4は本発明の一実施形態に係るマッピング装置の構成を示す図である。図 4のマ ッビング装置は、図 1に示したようなコンピュータシステムの各々のリコンフィギュラブ ル LSIに、コンピュータシステムとして処理すべき大規模な問題をどのように割り振る 力 (本明細書においては、マッピングと称す)を決定するものである。すなわち、図 4の マッピング装置は、所定の機能をリコンフィギユラブルモジュールに実現させるための コンフィギュレーション情報を生成する。
[0033] 図 4のマッピング装置には、まずコンピュータシステムとして処理すべき大規模な問 題が入力される。ここで問題とは、例えば、 MPEGの符号化 '複号化、暗号の解読と いった、コンピュータシステムが処理すべき対象、言い換えれば、コンピュータシステ ムが実現する所定の機能のことを 、う。
[0034] 入力された大規模な問題は、まずアルゴリズム解析部 200にお 、て、複数のステー ジと接続枝とから成るグラフに展開される。次にコンフィギュレーション情報生成部 20 1において、展開された複数のステージを、データ量の上限が限られた複数のサブコ ンフィギユレーシヨンデータに変換する。変換された複数のサブコンフィギユレーショ ンデータは、番号付与部 202において、番号を付与される。そして通信情報付与部 2 03において、サブコンフィギュレーションデータによってコンフィギュレーションされる リコンフィギユラブルモジュール間の通信情報力 コンフィギュレーション情報に付与 される。
[0035] なお、図 4における符号 200〜203をそれぞれ処理ステップとみなすことによって、 図 4は本発明の一実施形態に係る、所定の機能をリコンフィギユラブルモジュールに 実現させるためのコンフィギュレーション情報を生成するマッピング方法を示すフロー チャートとなる。
[0036] 以下、図 5から図 9を用いて、図 4のマッピング装置の具体的な処理内容をさらに詳 細に説明する。なお、以下の説明では大規模な問題の一例として、動画を HD(High Definition)から SD(Standard Definition)にフォーマット変換する処理を例にとって説明 する。
[0037] 図 5は動画の HDから SDへのフォーマット変換の処理内容の例である。図 5におい て、 decaはオーディオデータのデコード処理をする関数、 decvはビデオデータのデコ ード処理をする関数、 encaはオーディオデータのエンコード処理をする関数、 encvは ビデオデータのエンコード処理をする関数である。 combは encvで生成されたビデオ データと encaで生成されたオーディオデータとから、ストリームデータを生成する関数 である。
[0038] 本実施形態では、リコンフィギユラブル LSI103〜106を着脱可能な構成としている 。すなわち、従来のようにコンピュータシステムの構成が予め決まっているわけではな ぐその構成は変更され得る。一方、マッピング装置は通常、コンピュータシステムと は別のシステムとして構成されるため、コンピュータシステムの構成が変わるたびにマ ッビングの処理を再度やり直すことは極めて困難である。したがって、コンピュータシ ステムの構成が変更された場合であっても、マッピングをやり直すことなくシステムを 再構成できるように、コンフィギュレーション情報を 、かに生成するかが重要となる。
[0039] 図 6は図 4のマッピング装置におけるアルゴリズム解析部 200の処理結果の例を示 す図である。図 6は、図 5の処理内容を所定の機能としてアルゴリズム解析を行ったも のである。図 6に示すように、処理と入出力データとの関係を表すグラフが生成されて いる。すなわち、入出力データが〇で囲われて示されており、処理が口で囲われて 示されている。また、データの流れが、矢印状の接続枝で表されている。
[0040] 図 6に示すように、 encaは decaの処理結果を用いており、 encvは decaの処理結果を 用いている。さらに combは encaと encvの両方の処理結果を用いている。一方で、 deca と decv、あるいは encaと encvは、依存関係がないため並列に実行することが可能であ る。
[0041] なお、ビデオの処理はオーディオの処理と比較すると一般に処理量が多い。したが つてこの例では、 decvと encvは、 1つのリコンフィギユラブル LSIにマッピングすること が難しいほど大規模な処理であるとする。
[0042] 図 7は図 4のマッピング装置におけるコンフィギュレーション情報生成部 201の処理 結果の例を示す図である。図 7は、図 6のグラフにおける各処理に対して、所定のサ ィズを上限として分割を行ったものである。図 7では、入出力データが〇で囲われて 示されており、サブコンフィギュレーションデータが口で囲われて示されている。また、 データの流れが、矢印状の接続枝で表されている。 [0043] ここでサブコンフィギュレーションデータとは、コンピュータシステム全体をコンフィギ ユレーシヨンするコンフィギュレーション情報の中の、各々のコンフィギユラブルモジュ ールをコンフィギュレーションするためのデータを示す。
[0044] また、所定のサイズとは、具体的には、各リコンフィギユラブル LSI103〜106にマツ ビング可能な規模のことである。この所定のサイズは、装着されるリコンフィギユラブル モジュールの仕様力も決定される。例えば、最小の回路規模を持つリコンフィギユラ ブルモジュールにマッピングできる程度のデータのサイズを、所定のサイズとすれば よい。サブコンフィギュレーションデータを所定のサイズ以上にならないようにすること によって、生成されるサブコンフィギュレーションデータは必ず、 1つのリコンフィギユラ ブル LSIをコンフィギュレーションできる規模のものとなる。
[0045] 図 7において、図 6と異なるのは、 decvが decvlと decv2とに、また、 encv力 encvlと enc v2とに分割されている点である。上述のように、 decvと encvは大規模な処理であるた め、所定のサイズを上限とした結果、 2つに分割されている。分割は、各々のアルゴリ ズムを解析し、各々のアルゴリズムを並列に処理可能なサブアルゴリズムに分割する ことによって、行われている。
[0046] 分割された各アルゴリズムおよびサブアルゴリズムは、リコンフィギユラブル LSIの内 部接続関係を決定するための情報であるサブコンフィギュレーションデータへと変換 される。これによつて、所定の機能を分割した分割機能にそれぞれ対応する複数の サブコンフィギュレーションデータが得られる。また、図 7に示すようなサブコンフィギュ レーシヨンデータと入出力データとの関係を示す内部構造情報が得られる。すなわち 、図 6では口は漠然と処理を表しているのに対して、図 7では口は各リコンフィギユラ ブル LSIをコンフィギュレーションするためのサブコンフィギュレーションデータを示し ている。
[0047] 図 8は図 4のマッピング装置における番号付与部 202の処理結果の例を示す図で ある。図 8 (a)では、図 7の内部構造情報において、各サブコンフィギュレーションデ ータに通し番号が付与されている。すなわち、口で囲われた各サブコンフィギユレ一 シヨンデータの肩に、口で囲われた通し番号が付されている。また、図 8 (b)に示すよ うに、各サブコンフィギュレーションデータ同士の依存関係を示す依存関係情報が生 成される。図 8 (b)のテーブルデータにおいて、各数字はサブコンフィギュレーション データに付与された通し番号であり、〇は依存関係なし、 Xは依存関係ありを示す。 すなわち、〇は、異なるリコンフィギユラブル LSIに同一のタイミングでマッピングする ことが可能なサブコンフィギュレーションデータ同士であることを示し、 Xは、番号が 小さい方のサブコンフィギュレーションデータの処理が終了した後でないと、番号が 大きい方のサブコンフィギュレーションデータをマッピングすることができないことを示 す。
[0048] 図 9は図 4のマッピング装置における通信情報付与部 203の処理結果の例を示す 図である。図 9では、図 8の内部構造情報において、処理途中における各中間データ に番号が付与されている。すなわち、〇で囲われた各中間データの肩に、口で囲わ れた番号が付されている。この番号は、リコンフィギユラブルモジュール同士が通信す る際に通信用メモリに置かれるデータの通し番号になる。この状態で、コンピュータシ ステムをコンフィギュレーションするためのコンフィギュレーション情報が完成したこと になる。すなわち、内部構造情報 401と依存関係情報 402を含むコンフィギユレーシ ヨン順序決定情報 400と、複数のサブコンフィギュレーションデータと力 なるコンフィ ギユレーシヨン情報力 図 1のコンフィギュレーション情報格納メモリ 108に格納される
[0049] 図 10はコンフィギュレーション情報格納メモリ 108にコンフィギュレーション情報が 格納された状態を示す模式図である。図 10において、 400は内部構造情報 401と依 存関係情報 402を含むコンフィギュレーション順序決定情報であり、 403は複数のサ ブコンフィギュレーションデータ 404〜410を含むサブコンフィギュレーションデータ モジュールである。コンフィギュレーション順序決定情報 400とサブコンフィギユレ一 シヨンデータモジュール 403とによって、コンフィギュレーション情報 420が構成され ている。また、コンフィギュレーション情報格納メモリ 108には、他の機能を実現するた めのコンフィギュレーション情報 430も格納されている。コンフィギュレーション情報は 、例えば、コンフィギュレーション情報格納メモリ 108に予め実装しておけばよい。ある いは、 DVDなどのコンピュータ読み取り可能な記録媒体にコンフィギュレーション情 報を記録しておき、この記録媒体力も読み出したコンフィギュレーション情報を、汎用 IOl l 2を介して、コンフィギユレーシヨン情報格納メモリ 108にインストールするように してちよい。
[0050] また図 11は図 1の通信用メモリ 107のマッピングの例である。図 11では、図 9にお いて番号が付与された各中間データがマッピングされている。また、下位アドレスに は、各中間データとメモリアドレスとの対照表が与えられており、動作時にはこの対照 表を用いて通信を行う。
[0051] 図 12は本実施形態に係るコンピュータシステムの動作を示すフローチャートである 。図 12に示すように、 CPU100はまず、装着されたリコンフィギユラブル LSIの個数を 決定する(600)。そして、コンフィギュレーション情報格納メモリ 108に格納されたコ ンフィギユレーション情報の中の内部構造情報 401を参照して、メインメモリ 101およ び通信用メモリ 107におけるデータ格納場所を確保する(601)。
[0052] 次に、 CPU100は、コンフィギュレーション情報格納メモリ 108に格納されたコンフ ィギユレーシヨン情報の中の内部構造情報 401および依存関係情報 402を参照して 、装着されたリコンフィギユラブル LSIの個数に応じて、並列実行するサブコンフィギ ユレーシヨンデータを決定する(602)。そして、決定したサブコンフィギュレーションデ ータを用いてリコンフィギユラブル LSIをコンフィギュレーションし(603)、各リコンフィ ギユラブル LSIに処理を実行させる(604)。このようなステップ 602〜603を、全ての サブコンフィギュレーションデータについてコンフィギュレーションおよび処理が実行 されるまで繰り返す(605)。全てのサブコンフィギュレーションデータにつ!、てコンフ ィギユレーシヨンおよび処理が実行されると、動作を終了する(606)。
[0053] 図 13を用いて、図 1のコンピュータシステムの動作を具体的に説明する。ここでは、 図 9に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ 108に 格納されているものとする。まず CPU100は、装着されたリコンフィギユラブル LSI10 3〜 106の個数を 4個と決定する(600)。そして図 13 (a)に示すように、メインメモリ 1 01において、入力データ a, Vと出力データ bの格納場所を確保し、通信用メモリ 107 において、番号 4, 5, 6, 7- 1, 7- 2, 7— 3の中間データの格納場所を確保する(6 01)。
[0054] 次に、 CPU100は、サブコンフィギュレーションデータを各リコンフィギユラブル LSI 103〜106に割り振り、処理を実行させる。ここでは、装着されたリコンフィギユラブル LSIの個数力 個であることに基づき、コンフィギュレーション情報格納メモリ 108に格 納された内部構造情報 401および依存関係情報 402を参照して、 3回に分けてコン フィギユレーシヨンを行って 、る。
[0055] まず図 13 (a)に示すように、 CPU100は、番号 1, 2, 3のサブコンフィギユレーショ ンデータすなわち deca,decvl,decv2を並列実行するものとして決定し(602)、これら を用いてリコンフィギユラブル LSI103〜105をコンフィギュレーションする(603)。そ して、各リコンフィギユラブル LSI103〜105に処理を実行させる(604)。このとき、メ インメモリ 101に格納された入力データ a, Vがバスブリッジ 102を介してリコンフィギュ ラブル LSI103〜105〖こ入力され、処理の結果得られた番号 4, 5, 6の中間データ が通信用メモリ 107に格納される。
[0056] 次に図 13 (b)に示すように、 CPU100は、番号 4, 5, 6のサブコンフィギユレーショ ンデータすなわち enca,encvl,encv2を並列実行するものとして決定し(602)、これら を用いてリコンフィギユラブル LSI103〜105をコンフィギュレーションする(603)。そ して、各リコンフィギユラブル LSI103〜105に処理を実行させる(604)。このとき、通 信用メモリ 107に格納された番号 4, 5, 6の中間データがリコンフィギユラブル LSI10 3〜105に入力され、処理の結果得られた番号 7—1, 7- 2, 7— 3の中間データが 通信用メモリ 107に格納される。
[0057] 次に図 13 (c)に示すように、 CPU100は、番号 7のサブコンフィギュレーションデー タすなわち combを実行するものとして決定し(602)、これを用いてリコンフィギュラブ ル LSI103をコンフィギュレーションする(603)。そして、リコンフィギユラブル LSI103 に処理を実行させる(604)。このとき、通信用メモリ 107に格納された番号 7—1, 7- 2, 7— 3の中間データがリコンフィギユラブル LSI103に入力され、処理の結果得ら れた出力データ bがバスブリッジ 102を介してメインメモリ 101に格納される。これで、 全ての処理が終了したので、動作終了となる(605, 606) o
[0058] また、図 14を用いて、図 3のコンピュータシステムの動作を具体的に説明する。ここ でも、図 9に示すコンフィギュレーション情報がコンフィギュレーション情報格納メモリ 1 08に格納されているものとする。まず CPU100は、装着されたリコンフィギユラブル L SI103, 104の個数を 2個と決定する(600)。そして図 14 (a)に示すように、メインメ モリ 101において、入力データ a, Vと出力データ bの格納場所を確保し、通信用メモリ 107【こお!ヽて、番号 4, 5, 6, 7- 1, 7- 2, 7— 3の中 データの格糸内場所を確保す る(601)。
[0059] 次に、 CPU100は、サブコンフィギュレーションデータを各リコンフィギユラブル LSI 103, 104に割り振り、処理を実行させる。ここでは、装着されたリコンフィギユラブル L SIの個数が 2個であることに基づき、コンフィギュレーション情報格納メモリ 108に格 納された内部構造情報 401および依存関係情報 402に基づいて、 4回に分けてコン フィギユレーシヨンを行って 、る。
[0060] まず図 14 (a)に示すように、 CPU100は、番号 1, 2のサブコンフィギュレーションデ ータすなわち deca,decvlを並列実行するものとして決定し(602)、これらを用いてリコ ンフィギユラブル LSI103, 104をコンフィギュレーションする(603)。そして、各リコン フィギユラブル LSI103, 104に処理を実行させる(604)。このとき、メインメモリ 101 に格納された入力データ a, Vがバスブリッジ 102を介してリコンフィギユラブル LSI10 3, 104に入力され、処理の結果得られた番号 4, 5の中間データが通信用メモリ 107 に格納される。
[0061] 次に図 14 (b)〖こ示すように、番号 3, 4のサブコンフィギュレーションデータすなわち decv2,encaを並列実行するものとして決定し(602)、これらを用いてリコンフィギユラ ブル LSI103, 104をコンフィギュレーションする(603)。そして、各リコンフィギュラブ ル LSI103, 104に処理を実行させる(604)。このとき、メインメモリ 101に格納された 入力データ Vがバスブリッジ 102を介してリコンフィギユラブル LSI103に入力されると ともに、通信用メモリ 107に格納された番号 4の中間データがリコンフィギユラブル LSI 104に入力され、処理の結果得られた番号 6, 7—1の中間データが通信用メモリ 10 7に格納される。
[0062] 次に図 14 (c)に示すように、番号 5, 6のサブコンフィギュレーションデータすなわち encvl,encv2を並列実行するものとして決定し(602)、これらを用いてリコンフィギユラ ブル LSI103, 104をコンフィギュレーションする(603)。そして、各リコンフィギュラブ ル LSI103, 104に処理を実行させる(604)。このとき、通信用メモリ 107に格納され た番号 5, 6の中間データがリコンフィギユラブル LSI103, 104に入力され、処理の 結果得られた番号 7— 2, 7— 3の中間データが通信用メモリ 107に格納される。
[0063] 次に図 14 (d)〖こ示すように、番号 7のサブコンフィギュレーションデータすなわち co mbを実行するものとして決定し(602)、これを用いてリコンフィギユラブル LSI103を コンフィギュレーションする(603)。そして、リコンフィギユラブル LSI103に処理を実 行させる(604)。このとき、通信用メモリ 107に格納された番号 7— 1, 7- 2, 7— 3の 中間データがリコンフィギユラブル LSI103に入力され、処理の結果得られた出力デ ータ bがバスブリッジ 102を介してメインメモリ 107に格納される。これで、全ての処理 が終了したので、動作終了となる(605, 606)。
[0064] ここで、図 1のような 4個のリコンフィギュレーション LSIが装着されたコンピュータシ ステムでは、図 13に示すように 3回に分けて処理がなされているのに対して、図 3のよ うな 2個のリコンフィギュレーション LSIが装着されたコンピュータシステムでは、図 14 に示すように 4回に分けて処理がなされている。すなわち、本実施形態によると、装着 されたリコンフィギユラブル LSIの個数が異なっていても、同一のコンフィギユレーショ ン情報を用いて、コンピュータシステムをコンフィギュレーションすることが可能である 。このため、例えば、当初は少ない個数のリコンフィギユラブル LSIを用いて処理を行 わせ、後日にリコンフィギユラブル LSIを増設することによって高速処理させる、といつ たことが可能になる。
[0065] なお、図 3のリコンフィギユラブル LSI1個の処理能力が図 1のリコンフィギユラブル L SI1個の処理能力より高い場合には、図 13と同様に処理を実行できる場合もあり得る
[0066] また、図 14の処理では処理時間が力かり過ぎるような場合には、リコンフィギュラブ ル LSIを増設して図 1のような構成にすることによって、より高い処理性能を得ることが できる。
[0067] また、図 13の処理ではリコンフィギユラブル LSI106が用いられていない。このリコン フィギユラブル LSI106を用いて、図 13に示された処理と並行に別の処理を行うこと 力 Sできる。図 13では動画を記録する処理を実行している力 リコンフィギユラブル LSI 106を用いて、例えば、動画の記録をしながらテレビ放送を見ることができる。 [0068] なお、ここまでの説明は、装着されるリコンフィギユラブル LSIの回路規模は全て同 一であるものとした。し力しながら、装着されるリコンフィギユラブル LSIの回路規模は 互いに異なってもよいことはいうまでもない。このような場合を考慮すると、コンフィギ ユレーシヨン情報に、各サブコンフィギュレーションデータのサイズに関する情報を含 めておくのが好ましい。すなわち、各サブコンフィギュレーションデータについて、そ のサブコンフィギュレーションデータによってコンフィギュレーション可能なリコンフィギ ユラブル LSIの回路規模を示す情報 (以下、サイズ情報と称す)を、コンフィギユレ一 シヨン情報格納メモリ 108に格納しておく。これにより、例えば、現在装着されているリ コンフィギユラブル LSIを後日、さらに集積度の高いリコンフィギユラブル LSIと置換す る場合などにも柔軟に対応可能である。
[0069] 図 15は図 3のコンピュータシステムにおいて、 2個のリコンフィギユラブル LSI103, 104をその 2倍の集積度を有する 1個のリコンフィギユラブル LSI103Aに置換した場 合の動作を示す。 CPU100は、コンフィギュレーション情報格納メモリ 108に格納さ れたサイズ情報を参照することによって、 1個のリコンフィギユラブル LSI103Aに 2個 のサブコンフィギュレーションデータを割り振つている。これによつて、リコンフィギユラ ブル LSI103Aは、図 3のリコンフィギユラブル LSI103, 104の 2倍のデータが実装さ れる。
[0070] すなわち、リコンフィギユラブル LSI103Aは、まず図 15 (a)に示すように、番号 1, 2 のサブコンフィギュレーションデータすなわち deca,decvlを用いてコンフィギユレーショ ンされる。その後、図 15 (b)に示すように、番号 3, 4のサブコンフィギュレーションデ ータすなわち decv2,encaを用いてコンフィギュレーションされ、図 15 (c)に示すように 、番号 5, 6のサブコンフィギュレーションデータすなわち encvl,encv2を用いてコンフ ィギユレーシヨンされ、最後に図 15 (d)に示すように、番号 7のサブコンフィギユレーシ ヨンデータすなわち combを用いてコンフィギュレーションされる。なお、実行される処 理は図 14と同様である。
[0071] もちろん、集積度の高いリコンフィギユラブル LSIと集積度の低いリコンフィギュラブ ル LSIとを混在させてコンピュータシステムに実装するような場合であっても、サイズ 情報を格納しておくことによって、柔軟に対応可能である。 [0072] なお、上述した依存関係情報やサイズ情報は、コンフィギュレーション情報に含め ておく必要は必ずしもない。例えば、装着されるリコンフィギユラブルモジュールの個 数のバリエーションが既知であるなら、そのバリエーションに応じてそれぞれ、各サブ コンフィギュレーションデータの割り振り順を予め決めておいてもよい。すなわち、装 着されるリコンフィギユラブルモジュールの個数のバリエーションに応じてそれぞれ決 定された、各サブコンフィギュレーションデータの割り振り順を示す実装順序情報を、 依存関係情報の代わりに、コンフィギュレーション情報に含めておいても力まわない。
[0073] 図 16はこのような実装順序情報を含むコンフィギュレーション情報の一例である。
図 16では、コンフィギュレーション順序決定情報 300は、図 9の内部構造情報 401と 同一内容の内部構造情報 301と、実装順序情報 302とを含んでいる。実装順序情報 302では、モジュールが 1〜4個の場合それぞれについて、各ステップにおいてどの サブコンフィギュレーションデータを実装するかを示している。なお、ここでは、コンビ ユータシステムに設けられたリコンフィギユラブル LSI装着用のソケットの個数力 個で あるものとして 、る。
[0074] 図 16のコンフィギュレーション情報を図 9のコンフィギュレーション情報の代わりにコ ンフィギユレーシヨン情報格納メモリ 108に格納して用いても、上述したのと同様の処 理を実行することができる。図 17は図 16のコンフィギュレーション情報をコンフィギュ レーシヨン情報格納メモリ 108に格納した状態を示す模式図である。図 17において、 300は内部構造情報 301と実装順序情報 302を含むコンフィギュレーション順序決 定情報であり、 403は複数のサブコンフィギュレーションデータ 404〜410を含むサ ブコンフィギュレーションデータモジュールである。コンフィギュレーション順序決定情 報 300とサブコンフィギュレーションデータモジュール 403とによって、コンフィギユレ ーシヨン情報 420Aが構成されて!、る。
[0075] さらに、図 16の例では、内部構造情報 301を共通とし、リコンフィギユラブルモジュ ールの個数のバリエーションそれぞれに対して、各ステップで実装されるサブコンフィ ギユレーシヨンデータを示す実装順序情報 302を設けた。この代わりに、リコンフィギ ユラブルモジュールの個数のバリエーションそれぞれに対して各々マッピングを行 ヽ 、直接コンフィギュレーション情報を持たせても良い。すなわち、装着されるリコンフィ ギユラブルモジュールの個数のバリエーションに応じて、それぞれ、コンフィギユレ一 シヨン情報を生成してもよい。この場合、所定の機能を分割した分割機能にそれぞれ 対応する複数のサブコンフィギュレーションデータを含むコンフィギュレーション情報 力 装着されるリコンフィギユラブルモジュールの個数のノ リエーシヨンに応じて、複 数個、コンフィギュレーション情報格納メモリ 108に格納されることになる。
[0076] 図 18は図 4のマッピング装置におけるコンフィギユレーション情報生成部 201の処 理結果の他の例を示す図である。図 7の例では、アルゴリズムを並列に処理可能な 2 つの部分に分割して 、たが、ビデオのデコード処理が必ずしも完全に並列に行える とは限らない。そこで図 18では、共通に処理しなければならない部分 (この場合は最 初の処理)について、 decvOとしてサブコンフィギュレーションデータを生成している。 実際のコンフィギュレーション情報生成では、このように直列に接続される部分と並列 に接続される部分が最適になるように、スケジューリングを行っていく必要があると考 えられる。
[0077] なお、リコンフィギユラブルモジュールが着脱可能に構成されたコンピュータシステ ムは、図 1や図 3の構成に限られるものではなぐ様々な構成が考えられる。以下、他 の構成例について説明する。なお、以下で言及する各図において、図 1および図 3と 共通の構成要素には図 1および図 3と同一の符号を付しており、その詳細な説明は 省略する。
[0078] 図 19はバスブリッジが 2階層になったコンピュータシステムであり、パソコンへの実 装を想定したものである。 IOバス 131にリコンフィギユラブルブロック 130が接続され ている。リコンフィギユラブルブロック 130内において、リコンフィギユラブル LSI103, 104は着脱可能であり、バスブリッジ 132を介して IOバス 131とのデータのやりとりが 可能になっている。
[0079] 図 20はリコンフィギユラブル LSIと並列に専用ハードウェアが接続されたコンビユー タシステムである。すなわち、通信用バス 111に、リコンフィギユラブル LSI103, 104 と並列に専用ハードウェア 141, 142が接続されている。当初はリコンフィギユラブル LSIにプログラムによって実装していた機能であっても、仕様が固まってくると、専用 ハードウェアによって実行する方が、回路規模や消費電力の削減の点で有利になる 。この場合には、専用ハードウェアによって実行する機能以外の機能について、コン フィギユレーシヨン情報を生成し直せばよ 、。
[0080] 図 21は RF回路を含むリコンフィギユラブル LSIが装着されたコンピュータシステム であり、携帯電話向け用途を想定している。リコンフィギユラブル LSI143, 144は、無 線 LAN、携帯電話および Bluetoothの 3つの方式に対応できる RF回路 143a, 144 aを実装している。リコンフィギユラブル LSI1個だけでは、無線 LAN、携帯電話およ び Bluetoothの 3つの方式のうちのいずれか 1つの方式でしか通信できない。 2つの 方式で同時通信する必要性が生じた場合には、通信処理も 2倍必要なので、リコンフ ィギユラブル LSIも 2個実装する必要がある。 2個のリコンフィギユラブル LSI143, 14 4に、 3つの方式に対応できる RF回路 143a, 144aをそれぞれ実装することによって 、 2つの方式で同時通信することができる。
[0081] 図 22は USB経由でリコンフィギユラブルブロックが接続されたコンピュータシステム である。図 22において、リコンフィギユラブルブロック 150は、通信用バス 151、 USB デバイス IF152、通信用メモリ 153、およびリコンフィギユラブル LSI154, 155を備え ており、 USBホスト IF 156を介して IOバス 131と接続されて!、る
図 23は USB経由でリコンフィギユラブルブロックが階層的に増設されたコンビユー タシステムである。図 23において、リコンフィギユラブルブロック 150a, 150bは USB ホスト IF156と接続されており、リコンフィギユラブルブロック 150c, 150dは、 USBホ スト IF156に接続された USBハブ 157と接続されている。 USBハブ 157には周辺機 器 158も接続されている。周辺機器 158はアンテナ部、音声入力部および音声出力 部を備えたデバイスであり、無線電話や携帯電話などで利用される機能を備えたもの である。これにより例えば、周辺機器 158とリコンフィギユラブルブロック 150c, 150d との間でローカルな処理が可能になる。また、どのリコンフィギユラブルブロックにどの コンフィギュレーション情報をマッピングするかは、 CPU100が決定する。したがって 、リコンフィギユラブルブロックの接続構造に最適なコンフィギュレーション情報のマツ ビングが可會 になる。
[0082] 図 24は USBハブによる拡張を考慮したコンフィギュレーション情報の実装概念図 である。図 24は図 23のシステム構成における、 USBハブ 157を介して接続されたリ コンフィギユラブルブロック 150c, 150dに関するコンフィギュレーション順序決定情 報 500を示している。コンフィギュレーション順序決定情報 500は、内部構造情報 50 1と実装順序情報 502を含む。内部構造情報 501では、周辺機器 158のアンテナ部 から入力された受信データ (r)をストリームデコード処理 (deer)してデコードされた音 声データ(al)を出力し、さらに音声デコード処理 (decal)してデコードされた音声デ ータ(al)を出力するフローが示されている。また、周辺機器 158の音声入力部から 入力された音声データ (a2)を音声エンコード処理 (enca2)してエンコードされた音声 データ(a2)を出力し、さらにストリームエンコード処理 (enct)して送信データ (t)を出 力するフローが示されて 、る。
[0083] 図 24のコンフィギュレーション順序決定情報 500は、図 23内の USBホスト IF156を 介して接続されたリコンフィギユラブルブロック 150a, 150bに関するコンフィギユレ一 シヨン情報(例えば図 16と同様)とともに、コンフィギュレーション情報格納メモリ 108 に格納される。サブコンフィギュレーションデータ decr,decal,enca2,enctも同様に格納 される。
[0084] リコンフィギユラブルブロック 150c, 150dは USBハブ 157に接続された周辺機器 1 58が扱う処理のために用いられる。一方、リコンフィギユラブルブロック 150a, 150b はバス 131に接続された汎用 IOl 12から入力される動画処理のために用いられる。 このため、リコンフィギユラブルブロック 150c, 150dとリコンフィギユラブルブロック 15 0a, 150bとは、別々にコンフィギュレーションされ、コンフィギュレーション情報も別個 に格納される。
[0085] 図 25はリコンフィギユラブル LSIがバスに接続されずに増設されたコンピュータシス テムである。図 25において、リコンフィギユラブル LSI164は通信用バス 111を介さな いでリコンフィギユラブル LSI163と直接接続されており、また、リコンフィギユラブル L SI 166は通信用バス 111を介さな 、でリコンフィギユラブル LSI 165と直接接続され ている。この構成は例えば、リコンフィギユラブル LSI164がリコンフィギユラブル LSI1 63のみと通信し、リコンフィギユラブル LSI165, 166などと通信する必要がない場合 に、有効となる。
[0086] 図 26はリコンフィギユラブル LSIの他にビデオェンコーダ 171およびビデオデコ一 ダ 172が専用 LSIとして増設された構成である。また、図 27は 2個のリコンフィギユラ ブル LSIの他にビデオエンコーダ 171が専用 LSIとして増設された構成である。
[0087] 図 28はビデオエンコーダまたはビデオデコーダが専用 LSIとして増設されることを 考慮して生成されたコンフィギュレーション情報の実装概念図である。図 16に示した コンフィギユレーション順序決定情報 300は、図 7に示された各処理をリコンフィギユラ ブル LSIのみを用いてステップに分けて実行するものとした実装順序情報 302を含 む。これに対して図 28に示すコンフィギュレーション順序決定情報 300Aは、実装順 序情報 302にカ卩えて、ビデオエンコーダまたはビデオデコーダが専用 LSIとして増設 された場合、これらがビデオエンコード処理またはビデオデコード処理を行うことを考 慮した、実装順序情報 303を含んでいる。
[0088] なお、内部構造情報 301では、ビデオデコード処理 decvは 2つのサブコンフィギュ レーシヨンデータ decvl,decv2に、またビデオエンコード処理 encvは 2つのサブコンフ ィギユレーシヨンデータ encvl,encv2に分割されている。ただし、専用 LSIでは、これら の処理を、リコンフィギュレーション LSIが 1ステップの処理を行っている時間内に完 了できることが前提になって 、る。
[0089] すなわち、専用 LSIは特定の処理を高速に実行するために設計されているので、 一般に、リコンフィギユラブル LSIを用いた場合よりも短い時間で処理を完了すること 力 Sできる。図 26および図 27の構成のシステムでは、リコンフィギユラブル LSIがォー ディォデコードやオーディオエンコードなどの 1単位の処理を実行して ヽる間に、ビ デォエンコーダ 171およびビデオデコーダ 172は、 2つに分割されていたビデオェン コード処理 decvまたはビデオデコード処理 encvの全体をそれぞれ実行することができ る。
産業上の利用可能性
[0090] 本発明では、システム購入後にユーザ力 リコンフィギユラブルモジュールを増設し て、実行させる処理量を増やしたり、動画の圧縮伸張などの新たなアルゴリズムに対 応させたりすることが可能になるので、例えば、 DVR等の動画記録装置などに利用 するのに適している。
[0091] また、本発明では、動作周波数の向上やトランジスタ数の増加などによって処理能 力がより高いリコンフィギユラブルモジュールが発表された場合、そのリコンフィギユラ ブルモジュールに置き換えることによって、より少ない個数のリコンフィギユラブルモジ ユールによる処理が実現できる。このため、同一処理に対する消費電力を減らすこと ができるので、例えば携帯電話などに利用するのに適している。
さらに、リコンフィギユラブルモジュールの増設によって、システム全体の処理能力 を簡単に拡張できるので、例えば、マルチメディア処理向けのワークステーションにも 最適である。

Claims

請求の範囲
[1] CPUと、
所定の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギユレ一 シヨン情報を格納するコンフィギュレーション情報格納部とを備え、
1または複数のリコンフィギユラブルモジュール力 着脱可能に構成されており、 前記 CPUは、装着されたリコンフィギユラブルモジュールを、その個数に応じて、前 記コンフィギュレーション情報格納部に格納されたコンフィギュレーション情報を用い て、コンフィギュレーションする
ことを特徴とするコンピュータシステム。
[2] 請求項 1において、
通信用バスと、
前記通信用ノ スにそれぞれ接続されており、リコンフィギユラブルモジュールを着脱 可能に構成された複数の接続部とを備え、
前記 CPUは、前記接続部に装着されたリコンフィギユラブルモジュールと、前記通 信用バスを介して通信可能である
ことを特徴とするコンピュータシステム。
[3] 請求項 1において、
前記 CPUは、装着されたリコンフィギユラブルモジュールの個数が変化したとき、変 化後の個数に応じて、前記コンフィギュレーション情報を用いて、装着されたリコンフ ィギユラブルモジュールをコンフィギュレーションする
ことを特徴とするコンピュータシステム。
[4] 請求項 1において、
前記コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュ レーシヨンデータを含むものであり、
前記 CPUは、
前記複数のサブコンフィギュレーションデータを、装着されたリコンフィギユラブルモ ジュールに割り振ることによって、コンフィギュレーションを実行する ことを特徴とするコンピュータシステム。
[5] 請求項 4において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギユレーションデータの割り振りを決めるためのコンフィギュ レーシヨン順序決定情報を含み、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部 構造情報を含む
ことを特徴とするコンピュータシステム。
[6] 請求項 5において、
前記コンフィギュレーション順序決定情報は、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情 報を含む
ことを特徴とするコンピュータシステム。
[7] 請求項 5において、
前記コンフィギュレーション順序決定情報は、
装着されるリコンフィギユラブルモジュールの個数のノ リエーシヨンに応じてそれぞ れ決定された、前記複数のサブコンフィギュレーションデータの割り振り順を示す実 装順序情報を含む
ことを特徴とするコンピュータシステム。
[8] 請求項 4において、
前記コンフィギュレーション情報は、
前記複数のサブコンフィギユレーションデータのサイズに関する情報をさらに含む ことを特徴とするコンピュータシステム。
[9] 請求項 4において、
前記複数のサブコンフィギユレーションデータのサイズが、予め定められた所定の サイズ以下に制限されている
ことを特徴とするコンピュータシステム。
[10] 請求項 4において、
前記コンフィギュレーション情報格納部は、前記コンフィギュレーション情報を、複数 個備え、
前記複数のコンフィギュレーション情報は、装着されるリコンフィギユラブルモジユー ルの個数のバリエーションに応じてそれぞれ生成されたものである
ことを特徴とするコンピュータシステム。
[11] 所定の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギユレ一 シヨン情報を表すデータ構造であって、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュ レーシヨンデータと、
前記複数のサブコンフィギュレーションデータと入出力データとの関係を示す内部 構造情報とを備えた
ことを特徴とするデータ構造。
[12] 請求項 11において、
前記複数のサブコンフィギュレーションデータ同士の依存関係を示す依存関係情 報を備えた
ことを特徴とするデータ構造。
[13] 請求項 11において、
リコンフィギユラブルモジュールの個数のバリエーションに応じてそれぞれ決定され た、前記複数のサブコンフィギュレーションデータの割り振り順を示す実装順序情報 を備えた
ことを特徴とするデータ構造。
[14] 所定の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギユレ一 シヨン情報を表すデータ構造であって、
前記コンフィギュレーション情報を、リコンフィギユラブルモジュールの個数のバリエ ーシヨンに応じて、複数個備え、
前記各コンフィギュレーション情報は、
前記所定の機能を分割した分割機能にそれぞれ対応する複数のサブコンフィギュ レーシヨンデータを備えた
ことを特徴とするデータ構造。
[15] 所定の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギユレ一 シヨン情報を生成するマッピング装置であって、
前記所定の機能に対してアルゴリズム解析を行 ヽ、処理と入出力データとの関係を 表すグラフを生成するアルゴリズム解析部と、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、 分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する 複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデ ータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギユレーシ ヨン情報生成部とを備えた
ことを特徴とするマッピング装置。
[16] 所定の機能をリコンフィギユラブルモジュールに実現させるためのコンフィギユレ一 シヨン情報を生成するマッピング方法であって、
前記所定の機能に対してアルゴリズム解析を行 ヽ、処理と入出力データとの関係を 表すグラフを生成するアルゴリズム解析ステップと、
前記グラフにおける各処理に対して、予め定められた所定のサイズを上限として、 分割を行うことによって、前記所定の機能を分割した分割機能にそれぞれ対応する 複数のサブコンフィギュレーションデータと、前記複数のサブコンフィギュレーションデ ータと入出力データとの関係を示す内部構造情報とを、生成するコンフィギユレーシ ヨン情報生成ステップとを備えた
ことを特徴とするマッピング方法。
PCT/JP2006/307118 2005-04-05 2006-04-04 コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法 WO2006109623A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2006800104521A CN101151804B (zh) 2005-04-05 2006-04-04 计算机系统、表示配置信息的数据结构及映射装置和方法
US11/886,868 US20090083530A1 (en) 2005-04-05 2006-04-04 Computer System, Data Structure Representing Configuration Information, Mapping System, and Mapping Method
EP06731066A EP1868293A1 (en) 2005-04-05 2006-04-04 Computer system, data structure showing configuration information, and mapping device and method
JP2007512920A JPWO2006109623A1 (ja) 2005-04-05 2006-04-04 コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005108386 2005-04-05
JP2005-108386 2005-04-05

Publications (1)

Publication Number Publication Date
WO2006109623A1 true WO2006109623A1 (ja) 2006-10-19

Family

ID=37086902

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/307118 WO2006109623A1 (ja) 2005-04-05 2006-04-04 コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法

Country Status (5)

Country Link
US (1) US20090083530A1 (ja)
EP (1) EP1868293A1 (ja)
JP (1) JPWO2006109623A1 (ja)
CN (1) CN101151804B (ja)
WO (1) WO2006109623A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010004139A (ja) * 2008-06-18 2010-01-07 Toshiba Tec Corp プログラマブル論理回路

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108847957B (zh) * 2015-08-24 2021-04-02 上海天旦网络科技发展有限公司 发现与呈现网络应用访问信息的方法和系统
US10956360B2 (en) 2017-03-14 2021-03-23 Azurengine Technologies Zhuhai Inc. Static shared memory access with one piece of input data to be reused for successive execution of one instruction in a reconfigurable parallel processor
US11009864B2 (en) * 2018-04-06 2021-05-18 Bently Nevada, Llc Gated asynchronous multipoint network interface monitoring system
EP3634018A1 (en) * 2018-10-02 2020-04-08 Siemens Aktiengesellschaft System for data communication in a network of local devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004040188A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 集積回路及びシステム開発方法
JP2004310730A (ja) * 2003-01-15 2004-11-04 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた集積回路装置、処理装置およびそれらを利用した処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6150840A (en) * 1997-04-09 2000-11-21 Altera Corporation Programmable reticle stitching
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
US6438737B1 (en) * 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6857011B2 (en) * 2002-10-31 2005-02-15 Paragon Development Systems, Inc. Method of remote imaging
US7100008B2 (en) * 2004-03-15 2006-08-29 Hitachi, Ltd. Long term data protection system and method
US7389006B2 (en) * 2004-05-14 2008-06-17 Nvidia Corporation Auto software configurable register address space for low power programmable processor
CN100370380C (zh) * 2004-10-15 2008-02-20 李迪 一种开放式可重组软数控系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004040188A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 集積回路及びシステム開発方法
JP2004310730A (ja) * 2003-01-15 2004-11-04 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた集積回路装置、処理装置およびそれらを利用した処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOI T. ET AL.: "Doteki Saikosei Processor o C Gengo dake de Sekkei Kano ni", NIKKEI ELECTRONICS, no. 876, 21 June 2004 (2004-06-21), pages 131 - 138, XP003002836 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010004139A (ja) * 2008-06-18 2010-01-07 Toshiba Tec Corp プログラマブル論理回路

Also Published As

Publication number Publication date
US20090083530A1 (en) 2009-03-26
EP1868293A1 (en) 2007-12-19
CN101151804B (zh) 2010-05-19
CN101151804A (zh) 2008-03-26
JPWO2006109623A1 (ja) 2008-11-06

Similar Documents

Publication Publication Date Title
US7996581B2 (en) DMA engine
US8103855B2 (en) Linking functional blocks for sequential operation by DONE and GO components of respective blocks pointing to same memory location to store completion indicator read as start indicator
US5835793A (en) Device and method for extracting a bit field from a stream of data
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
JP2000311156A (ja) 再構成可能並列計算機
WO2006109623A1 (ja) コンピュータシステム、コンフィギュレーション情報を表すデータ構造、並びにマッピング装置および方法
WO2007074583A1 (ja) 再構成可能な演算器を持つプロセッサ
TWI299941B (ja)
JPWO2009063596A1 (ja) 再構成可能回路、リセット方法、及び構成情報生成装置
Berthelot et al. Partial and dynamic reconfiguration of FPGAs: a top down design methodology for an automatic implementation
US20190379521A1 (en) Systems and methods for the design and implementation of input and output ports for circuit design
JP4563300B2 (ja) テーブル装置、可変長符号化/復号装置、可変長符号化装置及び可変長復号装置
JP4728083B2 (ja) メディア処理装置
JP2009129046A (ja) リコンフィギュラブル回路,リコンフィギュラブル回路の機能変更方法および通信装置
KR100817022B1 (ko) 스타-메쉬 혼합형 구조를 갖는 온칩 네트워크 기반의동영상 디코더
US7996657B2 (en) Reconfigurable computing circuit
JPH10326224A (ja) ディジタル・シグナル・プロセッサ
JP2006318305A (ja) システム構築用フレームワーク及び半導体装置
JP4471154B2 (ja) 情報処理システムの構成方法および半導体集積回路
Vipin et al. Enabling high level design of adaptive systems with partial reconfiguration
WO2014045500A1 (ja) Lsi及びlsi製造方法
JP2009020738A (ja) プロセッサ装置
WO2009157441A1 (ja) データ処理装置、情報処理装置及び情報処理方法
Walder et al. XF-Board: Prototype Platform for Reconfigurable Hardware Operating System
Kasisomayajula Implementation of Bus-Based and NoC-Based MP3 Decoders on FPGA

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680010452.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007512920

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11886868

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2006731066

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWP Wipo information: published in national office

Ref document number: 2006731066

Country of ref document: EP