Abstract:
A semiconductor device includes: multi-layer interconnection substrate having signal distribution interconnection and power supply line; and semiconductor circuit blocks installed on the multi-layer interconnection substrate for performing required operations. The multi-layer substrate includes: a third interconnection layer having interconnections extending in a first direction; a second interconnection layer having interconnections extending in a second direction which is different to the first direction; and a first interconnection layer having interconnections extends in a direction orthogonal to the first direction.

Description:
1. BACKGROUND OF THE INVENTION 
       [0001]    The present invention relates to a computer processing. More particularly, the present invention relates to a processing in which processes are performed by a reconfigurable logic circuit. 
       2. DESCRIPTION OF THE RELATED ART 
       [0002]    In recent years, the communication speed of computer networks has been enhanced. The performance of the processor is a bottleneck for the speed up of the network. For solving the bottleneck problem, the technique for speeding up processing by offloading the processing of coding or protocol stack which is conventionally performed in processor is known. For example, in encoding and decoding processing, a method is disclosed in the following online content: “Product Lineup — 64-Bit VR Series”, NEC Electronics Corporation, Internet URL: http://www.necel.com/micro/product/vr/vr4133/index.htm, Retrieved on Jul. 28, 2005. 
         [0003]    In this method, an encoding-decoding dedicated hardware is connected to a bus of a processor and the dedicated hardware is called in the encoding-decoding processing in software processing. Also, a method in which a circuit dedicated for encoding and decoding processing is incorporated in a processor is disclosed in the following online content: 
         [0004]    “AES Cipher Engine”, Techno Create, Internet URL: http://www.techno-create.com/hot/aes.html, Retrieved on Jul. 28, 2005. 
         [0005]    However, the functions which are processed by the hardware block offloaded from central processing unit for achieving higher speed are fixed and cannot be changed. As a result, the variety of processes whose speeds can be made faster in the hardware is limited so that the application to the variety of processes is restricted. Also, there is a case that the kinds of the processes whose speed is desired to be made faster is different depending on the kind of data inputted to the processor. In that case, the effect cannot be achieved enough in the hardware performing a fixed function, so that the speed of the process is not necessarily improved. 
         [0006]    For solving these problems, the dynamically reconfigurable circuit is known which changes the offloaded hardware circuit during the processing and executes the wide variety of processes. 
         [0007]    As a publicly known technique, Japanese Laid Open Patent Application (JP-P 2003-208305A) discloses a data processing device that reduces the influence of the time required for the dynamic circuit restructuring on the processing performance. 
         [0008]    In the data processing device disclosed in the patent document 1, in the data processing, in parallel to a process that is carried out on CPU and using a first memory and a third memory, a controlling unit carries out a process for structuring a reconfigurable logic circuit in accordance with a content of a restructuring information memory. Then, after finishing the structuring of the reconfigurable logic circuit, instead of the CPU, the reconfigurable logic circuit carries out a process by using the second memory and the third memory. 
         [0009]    However, the storage region for storing the information used in restructuring the circuits is limited. When there are a large variety of processes that are desired to be executed through the restructured hardware, it is necessary to enhance the restructuring information memory or use an external memory for holding the restructuring information (configuration data) necessary for restructuring. In the case that the restructuring information memory is enhanced, a circuit area becomes larger and the cost is increased. Also, in the case that the external memory is used for storing the configuration data used for restructuring, it takes a time to transfer the configuration data, and the process time becomes long, which results in the drop in the process performance. 
         [0010]    Further conventional techniques are described below. Japanese Laid Open Patent Application (JP-P 2001-067212A) discloses a trouble avoidance information processing system which transfers structure information and a micro command in an external storage device to a main storage device when an information processing system is started and then executes a starting process in accordance with the structure information. 
         [0011]    Japanese Laid Open Patent Application (JP-A-Heisei, 4-042342) discloses a bus arbitration circuit which holds bus use request signals form data transfer modules and determines the priorities of the bus use requests from the data transfer modules and permits the use in accordance with the priorities. 
         [0012]    Japanese Laid Open Patent Application (JP-A-Heisei, 11-085608) discloses a computer system which divides memory into several groups and gives priorities to assign the memories to the respective groups and then assigns an area in order from the group having a higher priority in response to the assignment request of the memory. 
       SUMMARY OF THE INVENTION 
       [0013]    It is therefore an object of the present invention to provide a data processing device, a data processing method and a data processing program, which can make processing performed in processor faster by small hardware resources. 
         [0014]    A data processing device according to the present invention includes: a processing unit configured to recognize whether a given process belongs to a first category or a second category, to execute the given process when the given process belongs to the first category, and to issue an execution request of the given process when the given process belongs to the second category, and a dynamically reconfigurable device configuring a reconfigurable circuit to be adaptive to execute the given process in response to the execution request and executing the given process by the reconfigurable circuit. 
         [0015]    Preferably, the dynamically reconfigurable device includes an internal configuration memory storing internal configuration items each of which corresponds to a possible configuration of the reconfigurable circuit adaptive to execute a specific process. The processing unit recognizes said given process to belong to the second category when the internal configuration items includes an item corresponding to the given process. 
         [0016]    More preferably, the data processing device further includes: an external configuration memory for storing external configuration items each of which corresponds to a possible configuration of the reconfigurable circuit adaptive to execute a specific process, wherein priorities are associated to the respective external configuration items; and a configuration controlling unit selecting an item to which a priority higher than a predetermined level is associated from the external configuration items as a selected item and to send the selected item to the internal configuration memory to add to the internal configuration items. 
         [0017]    More preferably, the data processing device further includes: an external configuration memory for storing external configuration items each of which corresponds to a possible configuration of the reconfigurable circuit adaptive to executed a specific process, wherein a calling frequency of the specific process is recorded with each of the external configuration items; and a configuration controlling unit selecting an item the calling frequency thereof is higher than a predetermined level from the external configuration items as a selected item and to send to the selected item to the internal configuration memory to add to the internal configuration items. 
         [0018]    More preferably, the data processing device further includes; a bus connecting the processing unit and the dynamically reconfigurable device; and a bus monitoring unit monitoring an access to the dynamically reconfigurable device through the bus. The processing unit recognizes whether the given process belongs to the first category or the second category based on a monitoring of the access by the bus monitoring unit. 
         [0019]    A data processing method according to the present invention includes: recognizing whether a given process belongs to a first category or a second category; executing the given process when the given process belongs to the first category; generating an electrical signal for issuing an execution request of the given process when the given process belongs to the second category; and configuring a reconfigurable circuit to be adaptive to execute the given process in response to the execution request and executing the given process by the reconfigurable circuit. 
         [0020]    A computer-readable software product according to the present invention is adaptive to realize the method according to the present invention, According to the data processing device, the data processing method and the data processing program based on the present invention, it is possible to make the processes performed in processor faster by small hardware resources. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0021]      FIG. 1  is a block diagram showing a structure in the first embodiment of a data processing device; 
           [0022]      FIG. 2  is a block diagram showing a structure in the second embodiment of the data processing device; 
           [0023]      FIG. 3A  is an example of a structure of a process management table according to the present invention; 
           [0024]      FIG. 3B  is an example of a structure of a configuration memory management table according to the present invention; 
           [0025]      FIG. 4  is a flow chart showing operations of a data process in a data processing device according to the present invention; and 
           [0026]      FIG. 5  is a flow chart showing operations of a configuration management and transfer process in a data processing device according to the present invention. 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0027]    The embodiments of the data processing device according to the present invention will be described below with reference to the attached drawings. On the drawings, the elements having same reference number indicate the same, similar or equivalent components. 
         [0028]    At first, the first embodiment is explained below. 
       [Structure] 
       [0029]      FIG. 1  is a block diagram showing the structure of the data processing device in the first embodiment of the present invention. The data processing device according to the present invention contains: an I/O (input and output) processing unit  104  for carrying out the input and output processes of data which is the object to be processed; a processing unit  100  for processing the input data; a dynamically reconfigurable device  107  including a dynamically reconfigurable circuit that can switch over the circuit configuration while switching the circuit at an order of some tens of nano-second; an external configuration memory  111  for storing a setting information (configuration data) to change the structure of the dynamically reconfigurable circuit; and a configuration controlling unit  105  for transferring the content stored in the external configuration memory  111  to the dynamically reconfigurable device  107 . Those devices are connected through a bus  113  to each other. The bus is realized by a local bus of the processor or a standard bus like PCI (Peripheral Components Interconnect bus). As the I/O processing unit  104 , for example, the Ethernet (registered trademark) device in a network device can be used. 
         [0030]    The processing unit  100  is provided with: a first processing section  101 - 1  to an n-th processing section  101 -n for executing the processes that are not executed by the dynamically reconfigurable device  107 ; a configuration managing section  103  for managing a usage history of the configuration (a record of processes executed in the dynamically reconfigurable device  107 ) and a usage priority level inside the external configuration memory  111 , a current usage state of the configuration in the dynamically reconfigurable device  107 , and the like; and an offloading process determining section  102  which, when the data inputted from the I/O processing unit  104  is processed, determines whether or not it can be processed by the dynamically reconfigurable device  107 , in accordance with the management information of the configuration managing section  103 . 
         [0031]    The dynamically reconfigurable device  107  is provided with: a dynamically reconfigurable block  108  that can switch the procedure of data processing by changing the circuit configuration; and an internal configuration memory  109  for storing configuration items each of which corresponds to a possible configuration of the dynamically reconfigurable block  108  and includes information for configuring the circuit structure to be one of possible configurations. The dynamically reconfigurable block  108  contains; a reconfiguration controller (not shown in the drawings) for changing the circuit structure in accordance with the configuration item inside the internal configuration memory  109  and is specified by the processing unit  100 ; and a dynamically reconfigurable circuit (not shown in the drawings) whose circuit structure is changed by the reconfiguration controller. The internal configuration memory  109  has the first configuration area  110 - 1  for storing a first configuration item corresponding to a process  1  to the m-th configuration area  110 - m  for storing an m-th configuration item corresponding to a process m, and a maximum of m configuration items are stored while correlated to the respective processes. Preferably, the identifiers which are correlated with each of the m configuration items are stored and identify the procedures executed by the respective configurations. By using the configuration items stored in the internal configuration memory  109 , the reconfiguration controller can switch the dynamically reconfigurable block  108  at the order of tens of nano second. 
         [0032]    The external configuration memory  111  has memory areas that can store n (&gt;m) configuration items, The respective areas preferably store a first configuration item  112 - 1  to an n-th configuration item  112 - n  which correspond to the respective n procedures of data processing that can be executed by the dynamically reconfigurable device  107 . Preferably, the configuration indexes showing the processing meaning (or the identifiers for identifying the respective configurations) and being correlated with each of the n configuration items are stored in the external configuration memory  111 . The configuration controlling unit  105  responds to the transfer request from the configuration managing section  103  inside the processing unit  100  and transfers the configuration item stored in the external configuration memory  111  to the internal configuration memory  109  in accordance with the usage frequency recorded in the configuration management table  300 . The configuration controlling unit  105  can be realized, for example, by using DMAC (Direct Memory Access Controller). 
         [0033]    The configuration managing section  103  contains: the process management table  300  for managing the process record (process history), such as a history recording the transfer event to the internal configuration memory  109  from the external configuration memory  111 , a usage frequency and a priority level; and a configuration memory management table  304  for managing the usage record of the configuration area inside the internal configuration memory  109 . 
         [0034]      FIG. 3A  is a diagram showing the data structure of the process management table  300  according to the present invention. With reference to  FIG. 3A , the process management table  300  records: priority levels  301  which are used for executing the processes in the dynamically reconfigurable device  107 ; transfer statuses  302  indicating whether or not each of the configuration items is stored in the internal configuration memory  109 ; and calling frequencies  303  of each of the processes called from the processing unit  100 . The priority levels, transfer statuses and the calling frequencies are corresponding to each of the n-th processes stored in the external configuration memory  111 . 
         [0035]      FIG. 3B  is a diagram showing the data structure of the configuration memory management table  304  according to this embodiment. With reference to  FIG. 3B , the configuration memory management table  304  records: occupied/unoccupied status  305  of the respective configuration areas  110 - 1  to  110 - m  in the internal configuration memory  109 ; and information (configuration content)  306  by which the content of the process corresponding to the configuration stored in the configuration area under use can be recognized. The configuration content information  306  may be the identifiers to identify the configurations or may be the information correlated to the identifiers. 
       [Operation] 
       [0036]    With reference to  FIGS. 4 ,  5 , the operations of the data processing and the configuration management processing in the embodiment of the data processing device according to the present invention will be described below. In the following explanation, the case that the first process and the second process are performed on the received data is explained. 
       [Data Processing Operation] 
       [0037]      FIG. 4  is a flowchart showing the operation of the data processing device according to this embodiment. With regard to  FIG. 4 , the data received by the I/O processing unit  104  is stored in the memory  106 . The I/O processing unit  104  reports the reception of the data to the processing unit  100  (Step S 400 ). 
         [0038]    The processing unit  100  responds to a data in the program counter (not shown in the drawings) incorporated in the processing unit  100  and issues a command (call command) to perform the first process on the received data to the offloading process determining section  102  (Step S 401 ). The offloading process determining section  102  receives the call command, refers to the process management table  300  managed by the configuration managing section  103  and recognizes whether the given first process belongs to a first category or a second category. When the process is recognized to belong to the first category, the process is to be executed by the first processing nit  100 . When the process is recognized to belong to the second category, the process is to be executed by the dynamically reconfigurable device  107  (Step  5402 ). In detail, the offloading process determining section  102  refers to the transfer status  302  corresponding to the first process on the process management table  300  and checks whether or not the configuration item corresponding to the first process is already transferred to and stored in the internal configuration memory  109  of the dynamically reconfigurable device  107 . 
         [0039]    At the step S 402 , if the transfer status  302  corresponding to the first process is “Transferred”, namely, if the first process can be executed by the dynamically reconfigurable device  107  (Step S 402 , Yes), the configuration corresponding to the first process of the internal configuration memory  109  is applied to the dynamically reconfigurable block  108 , the reconfiguration is executed and the first process is executed by the reconfigured circuit (Step  5403 ). In detail, the offloading process determining section  102  issues a command of execution request of the first process together with the identifier of the configuration corresponding to the first process to the dynamically reconfigurable device  107 . The dynamically reconfigurable block  108  of the dynamically reconfigurable device  107  that receives the command and the identifier of the configuration extracts the configuration item corresponding to the identifier from the internal configuration memory  109  and reconfigures the dynamically reconfigurable circuit by using the extracted configuration item and then performs the first process on the data stored in the memory  106 . The dynamically reconfigurable device  107 , when completing the first process, stores the execution result in the memory  106  and reports the process completion to the processing unit  100 . 
         [0040]    When the report of the process completion with regard to the first process is received from the dynamically reconfigurable device  107 , the configuration managing section  103  of the processing unit  100  updates the reconfiguration record by incrementing the calling frequency  303  of the process management table  300  (adds the calling frequency to the first process by 1) (Step S 404 ). 
         [0041]    At the step S 402 , if the transfer status  302  corresponding to the first process is “Not Transferred”, namely, if the first process cannot be executed by the dynamically reconfigurable device  107  (Step S 402 : No), the process is executed by the first processing section  101 - 1  corresponding to the first process in the processing unit  100  (Step S 405 ). The first processing section  101 - 1 , when completing the first process, stores the execution result in the memory  106  and reports the process completion to the configuration managing section  103 . 
         [0042]    When the report of the process completion with regard to the first process is received from the first processing section  101 - 1 , the configuration managing section  103  updates the reconfiguration record by incrementing the calling frequency  303  of the process management table  300  (adds the calling frequency for the first process by 1) (Step S 404 ). 
         [0043]    The processing unit  100  determines whether or not the all of the processes for the received data have been completed (Step $ 407 ). Since the execution of the second process is supposed to be required in this explanation, the processing unit  100  responds to a data in the program counter (not shown in the drawings) and issues the command (call command) to perform the second process on the received data to the offloading process determining section  102  (Step S 401 ). The description of the flow with regard to the second process is omitted because it is similar to the flow with regard to the first process. At the step S 407 , if there is no more process to be executed, the process for the received data is completed, and the process result is transmitted through the I/O processing unit  104  to the external device (Step S 408 ). 
         [0044]    As mentioned above, the data processing device according to this embodiment recognizes whether or not the process can be executed in the dynamically reconfigurable device  107  for each process to be performed on the data inputted to the processing unit  100 . Then, the process is executed in the dynamically reconfigurable device  107  if the configuration item registered in the dynamically reconfigurable device  107  can be used to change the structure for processing the data. That is, the configuration items inside the dynamically reconfigurable device  107  are used to change the structure of the dynamically reconfigurable block  108  and carry out the process. Thus, the process can be executed at the higher speed than that of the structure in which the external configuration items are used. 
         [0045]    The histories of the processes executed in the processing unit  100  and dynamically reconfigurable device are recorded as the calling frequency  303 . Thus, the configuration managing section  103  can manage the high usage frequency processes. 
       (Configuration Management and Transfer Process Operation) 
       [0046]    In the dynamically reconfigurable device  107 , when a configuration to be set is registered in the internal configuration memory  109 , the reconfigurable circuit is changed to the configuration at high speed. However, if when a configuration to be set is not registered in the internal but in the external configuration memory  111 , the change of reconfigurable circuit to the configuration is slow. Under this condition, the configuration managing section  103  stores the configuration item corresponding to the process desired to be done at the high speed in the internal configuration memory  109 . Thus, in accordance with the information inside the process management table  300 , the configuration memory management table  304  is updated and managed to control the transfer of the configuration item. 
         [0047]      FIG. 5  is a flowchart showing the operations of the configuration management and transfer process performed by the data processing device according to this embodiment. The operations of the configuration management and transfer process to be carried out by the configuration managing section  103  will be described below with reference to  FIG. 5 . 
         [0048]    The configuration managing section  103  refers to the calling frequency  303  stored in the process management table  300  and monitors whether or not there is a process whose frequency of calling is equal to or greater than a defined threshold frequency (Step S 500 ). This monitoring may be executed for every constant time or may be executed for every execution of the data process. 
         [0049]    At the step S 500 , if the process having the calling frequency equal to or greater than the defined frequency is not recorded in the process management table  300 , the configuration item corresponding to the process to be executed in the dynamically reconfigurable device  107  is selected as the configuration item of a transfer candidate, from all of the processes managed by the process management table  300  (Step S 514 ). For example, the configuration item corresponding to the process that has the high priority (the priority equal to or higher than a threshold or the highest priority) and has large calling frequency (the largest calling frequency) is selected as the configuration item of the transfer candidate. Next, the usage state of the internal configuration memory  109  is checked by referring to the configuration memory-management table  304  (Step S 516 ). In detail, whether or not the configuration item is stored in each area is checked by referring to a flag  305  indicating the occupied/unoccupied status for the first configuration area  110 - 1  to the m-th configuration area  110 - m  in the internal configuration memory  109 . If there is the unoccupied area (Step S 516 : Yes), the configuration managing section  103  specifies the unoccupied configuration area for the configuration controlling unit  105  and issues the transfer request of the configuration item. At this time, the identifier to identify the configuration item of the transfer candidate is transmitted to the configuration controlling unit  105 . The configuration controlling unit  105  responses to the transfer request, extracts the configuration item corresponding to the identifier of the configuration item of the transfer candidate from the external configuration memory  111  and transfers to and&#39;stores in the specified configuration area (Step S 518 ). If there is not the unoccupied area at the step S 516  (Step S 516 : No), the configuration management process is finished. 
         [0050]    At the step S 500 , if the process having the calling frequency equal to or greater than the defined frequency is recorded in the process management table  300 , the configuration item corresponding to the process is selected as the configuration item of the transfer candidate (Step S 502 ). If there are more than two configuration items corresponding to the processes having the calling frequency equal to or greater than the defined frequency, the plurality of configuration items may be selected as the transfer candidates. Next, the usage state of the internal configuration memory  109  is checked by referring to the configuration memory management table  304  (step S 506 ). In detail, whether or not the configuration is stored in each area is checked by referring to the flag  305  indicating the occupied/unoccupied for the first configuration area  110 - 1  to the m-th configuration area  110 - m  in the internal configuration memory  109 . If there is the unoccupied area (Step S 504 : Yes), the configuration managing section  103  reports the unoccupied configuration area for the configuration controlling unit  105  and issues the transfer request of the configuration item. At this time, the identifier to identify the configuration item of the transfer candidate is transmitted to the configuration controlling unit  105 . The configuration controlling unit  105  responses to the transfer request, extracts the configuration item corresponding to the identifier of the configuration item of the transfer candidate from the external configuration memory  111  and transfers to and stores in the specified configuration area (Step S 506 ). 
         [0051]    At the step S 504 , if there is not the unoccupied area in the internal configuration memory  109  (Step S 504 : No), or if in the case of Yes of the step  504  and the number of the configuration areas specified as the areas to which the data are transferred is less than the number of the configuration items of the transfer candidates, the configuration managing section  103  specifies a rewritable areas inside the internal configuration memory  109  and transfers the configuration items as the transfer candidates to the areas. The configuration managing section  103  refers the process management table  300 , selects the rewritable configuration item(Step S 508 ) which can be processed by the dynamically reconfigurable device (it can be checked by the transfer status  302 ) and the overwrite to which is permitted. For example, the configuration item having the low priority and the calling frequency equal to or less than a certain threshold value is judged to be rewritable. The configuration managing section  103  issues the identifier of the configuration item, which is judged to be rewritable, together with a rewrite request to the configuration controlling unit  105 . The configuration controlling unit  105  responds to the rewrite request and transfers the configuration item as the transfer candidate to a configuration area  110  in which the rewritable configuration item is stored, and overwrites the configuration item data in the area (Step  5510 ). In detail, the configuration controlling unit  105  refers to the configuration memory management table  304  and retrieves the configuration area, in which the rewritable configuration item is stored, from the configuration content information  306  corresponding to (or coincident with) the identifier of the configuration item judged to be rewritable (which means the overwrite to the memory area storing the configuration item is permitted). Then, the configuration item coincident with the identifier of the configuration item as the transfer candidate is extracted from the external configuration memory  111  and transferred to the configuration area  110  in which the rewritable configuration item was stored, and the configuration item is overwritten. 
         [0052]    At the steps S 506 , S 510  and S 518 , when the configuration item is transferred from the external configuration memory  111  to the internal configuration memory  109 , the configuration managing section  103  changes the transfer status  302  of the process management table  300  so as to indicate that the configuration has turned to be processable in the dynamically reconfigurable device  107 , and clears the calling frequency  303 . In detail, the configuration managing section  103  sets the flag of the transfer status  302  of the process corresponding to the identifier of the transferred configuration item to “Transferred” and then sets the calling frequency  303  to 0. Also, an occupied/unoccupied information  305  of the corresponding area is changed to the “occupied” state, and the index showing the meaning of the process (or the identifier of the configuration) corresponding to the transferred configuration item is stored in the configuration content information  306 , and it is updated (Step S 512 ). 
         [0053]    As mentioned above, the configuration managing section  103  in the processing unit  100  according to this embodiment can manage the configurations item transferred to the dynamically reconfigurable device  107 . Also, data of the configuration item having the high priority or high calling frequency can be preferentially transferred to the dynamically reconfigurable device  107 . Thus, the frequency that the configuration item to be used is read from the external configuration memory  111  becomes small so that the process speed in the dynamically reconfigurable device  107  can be improved. 
         [0054]    Next, the second embodiment of the data processing device according to the present invention will be described below with reference to  FIG. 2 . 
       [Structure] 
       [0055]      FIG. 2  is a block diagram showing the structure in the second embodiment of the data processing device according to the present invention. The structure of the data processing device in the second embodiment is the structure where the function corresponds to the configuration managing section  103  in the first embodiment is installed outside the processing unit. That is, the data processing unit in the second embodiment executes the configuration management process and the configuration transfer control process according to the transfer of the configuration item outside the processor. With reference to  FIG. 2 , the data processing device in the second embodiment contains: the I/O processing unit  104  for carrying out the input/output process of the data to be processed; a processing unit  200  for executing the process of the input data; the dynamically reconfigurable device  107  including the dynamically reconfigurable circuit that can execute the circuit configuration while switching it at the order of tens of nano-second; the external configuration memory  111  for storing the setting information (configuration data) to change the structure of the dynamically reconfigurable circuit; and a configuration control block  202  for carrying out the configuration management and the transfer control to transfer the data stored in the external configuration memory  111  to the dynamically reconfigurable device  107 . Those respective devices are connected through the bus  113  to each other. Here, the structures of the same symbols as the first embodiment have the same operations and configurations which are explained in the first embodiment. Thus, their explanations are omitted. 
         [0056]    The processing unit  200  is provided with: the first processing section  101 - 1  to the n-th processing section  101 - n  for executing the process that is not be executed by the dynamically reconfigurable device  107 ; and an offloading process determining section  201  which, when the data inputted from the I/O processing unit  104  is processed, determines whether or not it can be processed by the dynamically reconfigurable device  107 , in accordance with the management information obtained from the configuration control block  202 . 
         [0057]    The configuration control block  202  is provided with; a configuration managing section  203  for managing a usage history and the usage priority level of the configuration item (the processing history in the dynamically reconfigurable device  107 ) in the configuration memory  111  and the current usage state of the configuration item in the dynamically reconfigurable device  107 ; a bus monitoring section  204  for monitoring the bus  113  for monitoring the calling state of the configuration item in the dynamically reconfigurable device  107 ; and a configuration controlling unit  205  for determining the transfer of the configuration item in accordance with the information from the processing unit  200  (the offloading process determining section  201 ) and the configuration managing section  203 , and carrying out the transfer process as necessary. 
       (Operation) 
     (Data Processing Operation) 
       [0058]    With reference to  FIG. 4 , the data process in the second embodiment is similar to the first embodiment, except that an inquiry is performed on the configuration control block  202 , when the offloading process determining section  201  determines whether or not it can be processed in the dynamically reconfigurable device  107 , at the step S 402  explained in the first embodiment. In detail, the configuration managing section  203  in the configuration control block  202  that receives the inquiry from the offloading process determining section  201  transmits the transfer status  302  corresponding to the specified process in the process management table  300  to the offloading process determining section  201 . The offloading process determining section  201  refers to this transfer,status  302  and determines whether or not it can be executed in the dynamically reconfigurable device  107 . 
       [Configuration Management and Transfer Process Operation] 
       [0059]    With reference to  FIG. 5 , the configuration management and transfer process in the second embodiment is similar to the first embodiment, except that the operation when the configuration managing section  203  updates the process management table  300  is different, at the step S 512  explained in the first embodiment. In detail, when the configuration managing section  203  updates the calling frequency  303  of the process management table  300 , if the process is executed in the processing unit  200 , the calling information of the process is updated in accordance with the report from the processing unit  200 , and if the process is executed in the dynamically reconfigurable device  107 , the calling information of the process is updated in accordance with the information collected by a bus monitoring function of the bus monitoring section  204 . 
         [0060]    In this way, in the data processing device in the second embodiment, the management block of the configuration is installed outside the processor. Thus, the configuration management process that was conventionally executed by the processor process can be executed outside, thereby reducing the load on the processor. 
         [0061]    As mentioned above, the data processing device according to the various embodiments of the present invention, while switching the circuit structure of the dynamically reconfigurable device, executes the process and further responds to the calling frequency of the process and the priority, the configuration data stored in the external configuration memory is transferred to the configuration memory of the dynamically reconfigurable device. As a result, the higher speed of the process can be achieved by using a restricted hardware resource in the process of the input data. Also, the function for transferring the configuration data to the configuration memory of the dynamically reconfigurable device from the external configuration memory on the basis of the calling frequency of the process and the priority is installed outside the processor. Thus, the load on the processor can be reduced. 
         [0062]    As mentioned above, although the embodiments of the present invention have been described in detail, the specific structures and operations are not limited to the above-mentioned embodiments. Even the change within the range without departing the intent and scope of the present invention is included in the present invention.