Abstract:
The interrupt control device is a Large Scale Integration (LSI) to which a wide variety of other devices, such as macros, can be connected. The interrupt control device includes a plurality of interrupt controllers that executes interrupt processing; a receiving unit that receives an interrupt signal from any one of the other devices; an interrupt number storing unit that stores an interrupt number assigned to a device from which the interrupt signal is received; and an outputting unit that outputs the interrupt signal to one of the interrupt controllers corresponding to the interrupt number stored.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1) Field of the Invention  
         [0002]     The present invention relates to a Large Scale Integration (LSI) to which a wide variety of other devices can be connected.  
         [0003]     2) Description of the Related Art  
         [0004]     In recent years, not only information equipment such as personal computers and personal digital assistances, but also almost all generally-used electric appliances, such as AV equipment, cooking appliances, refrigerators, washing machines, and air conditioners, are controlled by central processing units (CPU).  
         [0005]     Along with wider use of CPUs, intensive research and development of multi-functional, highly functional, and highly versatile system LSI, which can be mounted in various types of devices, are conducted.  
         [0006]     If users, such as manufacturers of home appliances, can select any necessary function of such a chip as necessary, the chip need not be adapted to each product, enabling reduction of development costs and initial investment in factories.  
         [0007]     However, attempt to increase the versatility of the chip inevitably increases the size and complexity of the circuit. In particular, since a great variety of macros are connected to the chip according to the product, a complex and large-scale circuit is needed just to control interrupts from these macros.  
         [0008]     As shown in  FIG. 7 , when designing the hardware of a conventional system LSI, one interrupt number and one interrupt controller that executes processing identified by the number are exclusively provided for one interrupt factor (in concrete terms, macro).  
         [0009]     For example, as shown in  FIG. 7 , when a certain event that requires an interrupt occurs in an interrupt factor  1 , an interrupt signal created by the interrupt factor  1  is physically input only to one interrupt controller having an interrupt number of  15 . When the signal is input to the controller, the controller executes interrupt processing of number  15  in compliance with its own interrupt conditions such as interrupt level and an interrupt vector address.  
         [0010]     It is therefore essential in the conventional technique to provide interrupt mechanisms as much in number as the total number of interrupt factors expected to be connected to the system LSI, increasing the size and complexity of the circuit. Users of products in which the system LSIs are incorporated, such as home appliances, strongly demand miniaturization and price restrictions of the LSI by reducing the size of each component or the number of the components.  
         [0011]     With respect to the above points, conventional techniques include one that stores a list of interrupt numbers in a rewriteable memory, specifies an address of the memory, and determines an interrupt vector address by using the interrupt number that is stored at that address. According to the conventional technique, while the interrupt vector address can be changed dynamically by rewriting the memory, other interrupt conditions cannot be changed (see, for example, Japanese Patent Application Laid-Open No. H10-11411).  
       SUMMARY OF THE INVENTION  
       [0012]     It is an object of the present invention to at least solve the problems in the conventional technology.  
         [0013]     An interrupt control method according to an aspect of the present invention is an interrupt control method for an interrupt control device with a plurality of interrupt controllers. Each of the interrupt controllers executes interrupt processing for any one of other devices that is connected to the interrupt control device. The interrupt control method includes receiving an interrupt signal from any one of the other devices; and outputting the interrupt signal to one of the interrupt controllers corresponding to an interrupt number that is assigned to a device from which the interrupt signal is received, and that is stored in an interrupt number register.  
         [0014]     An interrupt control device according to another aspect of the present invention is an interrupt control device to which a plurality of other devices is connected. The interrupt control device includes a plurality of interrupt controllers that executes interrupt processing; a receiving unit that receives an interrupt signal from any one of the other devices; an interrupt number storing unit that stores an interrupt number assigned to a device from which the interrupt signal is received; and an outputting unit that outputs the interrupt signal to one of the interrupt controllers corresponding to the interrupt number stored.  
         [0015]     The other objects, features, and advantages of the present invention are specifically set forth in or will become apparent from the following detailed description of the invention when read in conjunction with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0016]      FIG. 1  is an explanatory diagram of the relationship between a combination of interrupt factors, interrupt conditions, and interrupt numbers in an appliance A incorporating an interrupt control device according to a first embodiment of the present invention;  
         [0017]      FIG. 2  is a schematic explanatory diagram of the hardware configuration of the interrupt control device;  
         [0018]      FIG. 3  is a flowchart of a sequence of interrupt control processing in the interrupt control device;  
         [0019]      FIG. 4  is a schematic explanatory diagram of the hardware configuration of an interrupt control device according to a second embodiment of the present invention;  
         [0020]      FIG. 5  is a list of interrupt numbers that can be respectively set in interrupt number setting circuits  402   a  to  402   l;    
         [0021]      FIG. 6  is a schematic explanatory diagram of the hardware configuration of an interrupt control device according to a third embodiment of the present invention; and  
         [0022]      FIG. 7  is a schematic explanatory diagram of the hardware configuration of a conventional interrupt control device.  
     
    
     DETAILED DESCRIPTION  
       [0023]     Exemplary embodiments of the present invention will be explained in detail with reference to the accompanying drawings.  
         [0024]      FIG. 1  is an explanatory diagram of the relationship between a combination of interrupt factors, interrupt conditions, and interrupt numbers in an appliance A incorporating an interrupt control device (specifically, a system LSI) according to a first embodiment of the present invention. The interrupt number is allocated to each of the interrupt factors, respectively.  
         [0025]     As shown in  FIG. 1 , it is assumed that there are only seven interrupts arising from interrupt factors  1 ,  4 ,  6 ,  7 ,  8 ,  13 , and  15  in the appliance A, and interrupt numbers of  15 ,  16 ,  17 ,  18 ,  19 ,  20 , and  21  are allocated to the factors, respectively. Another appliance B has a combination of interrupt factors, a priority level of interrupts of the factors, and the like, which are different from those of appliance A shown in  FIG. 1 .  
         [0026]      FIG. 2  is a schematic explanatory diagram of the hardware configuration of the interrupt control device according to the first embodiment of the present invention.  FIG. 2  depicts the sections that are relevant to the present invention in various types of circuits in a system LSI that forms the interrupt control device of the present invention.  
         [0027]     In  FIG. 2 , a CPU  200  sets an interrupt number for each register in interrupt number setting circuits  202   a  to  202   p  described below, and also sets various information needed in interrupt processing, such as interrupt levels and interrupt vector addresses in interrupt controllers  204   a  to  204   g  described below.  
         [0028]     Interrupt factors  201   a  to  201   p  are macros and the like that execute specific processing. When an event occurs that requires an interrupt, a predetermined interrupt signal (interrupt occurrence flag) is output to interrupt number setting circuits  202   a  to  202   p  described below.  
         [0029]     The number of interrupt number setting circuits  202   a  to  202   p  is equal to the number of interrupt factors. In this example, there are sixteen, one for each interrupt factor. Taking interrupt number setting circuit  202   a  as an example, this circuit is physically connected to the interrupt factor  1 , and, when an interrupt occurs in the factor, is input an interrupt signal indicating the fact.  
         [0030]     The interrupt number setting circuit  202   a  includes a register  202   a - 1  and a decoder  202   a - 2 . An interrupt number is allocated beforehand to the interrupt factor  1 , and set in the register  202   a - 1  by the CPU  200 . In the example shown in  FIG. 1 , interrupt number  15  is set in the register  202   a - 1 . The decoder  202   a - 2  is a circuit that outputs a signal to one of a plurality of bus lines in compliance with the value of the register  202   a - 1 .  
         [0031]     A controller-selecting circuit  203  includes OR circuits  203   a  to  203   g , one for each interrupt number, seven in the example shown in  FIG. 2 . The OR circuits  203   a  to  203   g  in the controller-selecting circuit  203  output signals, which are output from the decoders  202   a - 2  to  202   p - 2  of the interrupt number setting circuits  202   a  to  202   p , to one of the interrupt controllers  204   a  to  204   g.    
         [0032]     A set of interrupt controllers  204  that includes interrupt controllers  204   a  to  204   g , one for each interrupt number, seven in the example shown in  FIG. 2 . In the explanation below, the set of interrupt controllers  204  is also termed “interrupt controller” unless there is a need to differentiate.  
         [0033]      FIG. 3  is a flowchart of a sequence of interrupt control processing in the interrupt control device according to the first embodiment of the present invention. The CPU  200  that executes a predetermined program for setting interrupt information sets interrupt conditions specified by interrupt numbers  15  to  21  (e.g., interrupt level, interrupt vector address, interrupt level mask value, etc.) for each of the interrupt controllers  204   a  to  204   g  (step S 301 ).  
         [0034]     The CPU  200  then sets interrupt numbers, which are allocated to the corresponding interrupt factors  201   a  to  201   p , in the registers  202   a - 1  to  202   p - 1  of the interrupt number setting circuits  202   a  to  202   p  (step S 302 ). For example, an interrupt number  15 , which is allocated to the interrupt factor  201   a , is set in the register  202   a - 1 , and a predetermined value indicating that no interrupt number is allocated is set in the register  202   b - 1 . Steps S 301  and S 302  can be executed in reverse order.  
         [0035]     When an interrupt signal from the interrupt factor  201   a  is input to the interrupt number setting circuit  202   a  (step S 303 : Yes), the allocated interrupt number is read from the register  202   a - 1  to the decoder  202   a - 2  (step S 304 ).  
         [0036]     The decoder  202   a - 2  decodes the number, i.e., the signal is output to one of the bus lines from the decoder  202   a - 2  (step S 305 ). Of the OR circuits  203   a  to  203   g , to which the signal is input, only the OR circuit  203   a  outputs  1 , whereby an interrupt signal is input to the interrupt controller  204   a  that is connected to the circuit (step S 306 ).  
         [0037]     The interrupt controller  204   a  then executes the program at the interrupt vector address in accordance with a priority level and the like that is set thereto (step S 307 ). When the program ends, processing returns to step S 303  where the device waits for a new interrupt.  
         [0038]     According to the first embodiment described above, it is possible to change the combination of interrupts, and the interrupt numbers and interrupt conditions that correspond to the interrupts, by controlling which interrupt number is set in which register of the interrupt number setting circuits  202   a  to  202   p . The interrupt control device can be incorporated in various devices simply by changing the interrupt number settings and the like.  
         [0039]     Since there is no wasteful interrupt controller that are not used in the products in which the device is incorporated, circuit size and power consumption can be reduced.  
         [0040]     In the interrupt control device according to the first embodiment, the number of output lines from the decoders  202   a - 2  to  202   p - 2  of the interrupt number setting circuits  202   a  to  202   p , and the number of input lines to the OR circuits  203   a  to  203   g  of the controller-selecting circuit  203 , must be the same as the number of interrupt factors  201   a  to  201   p.    
         [0041]     Consequently, when attempting to deal with many interrupt factors to increase the versatility of the device, there is a problem of increasing the size and complexity of the circuit between the interrupt number setting circuits  202   a  to  202   p  and the interrupt controllers  204   a  to  204   g . Accordingly, the circuit can be simplified by restricting to some extent the interrupt number settings, as in a second embodiment explained below.  
         [0042]      FIG. 4  is a schematic explanatory diagram of the hardware configuration of an interrupt control device according to the second embodiment of the present invention. In the interrupt control device according to the second embodiment, three interrupt numbers (as opposed to seven in the first embodiment) are allocated to twelve interrupt factors (sixteen in the first embodiment).  
         [0043]     In the first embodiment shown in  FIG. 2 , while the interrupt number setting circuits  202   a  to  202   p  are each connected to the seven OR circuits  203   a  to  203   g , interrupt number setting circuits  402   a  to  402   l  of the second embodiment are each connected to only two OR circuits.  
         [0044]     For example, a signal output from the interrupt number setting circuit  402   a  that corresponds to an interrupt factor  401   a  is input only to an OR circuit  403   a  or  403   b  of preliminary stage OR circuits  403   a  to  403   f . The signal then passes through a latter stage OR circuit  403   g  or  403   h  and is input only to an interrupt controller  404   a  or  404   b  of the three interrupt controllers. Therefore, of the three predetermined interrupt processes, only a process having number 0 or 1 can be activated.  
         [0045]     In other words, the interconnections are such that, even when interrupt numbers other than “00” or “01” are set in the register of the interrupt number setting circuit  402   a , the process corresponding to the number cannot be executed in this hardware. That is, the interrupt numbers that can be set in the interrupt number setting circuit  402   a  are restricted to “00” and “01”.  
         [0046]      FIG. 5  is a list of interrupt numbers that can be respectively set in the interrupt number setting circuits  402   a  to  402   l  according to the second embodiment. As shown in  FIG. 5 , there are restrictions on the interrupt numbers that can be set in each circuit. For example, an interrupt number of “02” cannot be set in the interrupt number setting circuit  402   a.    
         [0047]     While the second embodiment imposes some restrictions on the interrupt numbers that can be set, there is an advantage that interconnections in a controller-selecting circuit  403  can be greatly simplified. Broader advantages can be obtained as the number of interrupt factors increases.  
         [0048]     In the first and the second embodiments, all the interrupts from a variety of macros connected to the interrupt control device are permitted. However, it is sometimes desirable to inhibit interrupts from a particular macro.  
         [0049]     According to a third embodiment, a predetermined value that represents an interrupt inhibit can be set in the register of an interrupt setting circuit, so that the corresponding interrupt factor does not output the interrupt signal when this value is set.  
         [0050]     While the hardware configuration of an interrupt control device according to the third embodiment of the present invention is approximately the same as that of the first embodiment shown in  FIG. 2  or the second embodiment shown in  FIG. 4 , the interconnections around the interrupt number setting circuits are slightly different.  FIG. 6  is a schematic explanatory diagram of the hardware configuration of the interrupt control device according to the third embodiment, for mainly explaining these differences.  
         [0051]     As shown in the diagram, one data line from a decoder  602   b  in an interrupt number setting circuit  602  connects to an interrupt inhibit register  601   a  in an interrupt factor  601 . When a CPU  600  sets a predetermined value that indicates interrupt inhibit (hereinafter, “interrupt inhibit number”) in a register  602   a , the value on the data line from the decoder  602   b  that decodes the value becomes 1, and this signal is input to the interrupt inhibit register  601   a.    
         [0052]     An interrupt inhibit flag is set in the interrupt inhibit register  601   a  that receives the signal, and the interrupt factor  601  does not output an interrupt signal while the flag is set. The inhibit flag of the interrupt inhibit register  601   a  is cancelled when the CPU  600  rewrites the register  602   a  and sets an interrupt number instead of an interrupt inhibit number.  
         [0053]     According to the third embodiment, an interrupt from an interrupt factor corresponding to the interrupt number setting circuit  602  can be inhibited by setting an interrupt inhibit number, instead of an interrupt number, in the circuit.  
         [0054]     Since conventional techniques inhibit interrupts by setting the interrupt level to 0, the interrupt signal itself is transmitted from the interrupt factor to the interrupt controller. According to the present invention, since no interrupt signal is generated, the circuit is not occupied with an inhibited interrupt, making processing efficient.  
         [0055]     According to the present invention, a user who incorporates the system LSI according to the present invention in home appliances and the like can arbitrarily switch which interrupt is used, which processing is executed when an interrupt occurs, and the like, merely by changing interrupt numbers and interrupt inhibit numbers that are set in the register for each interrupt factor. This is ideal for an interrupt control method and an interrupt control device that can control a wide variety of interrupts required by the user while limiting the circuit size, especially in a system LSI having superior versatility and cost performance.  
         [0056]     Although the invention has been described with respect to a specific embodiment for a complete and clear disclosure, the appended claims are not to be thus limited but are to be construed as embodying all modifications and alternative constructions that may occur to one skilled in the art which fairly fall within the basic teaching herein set forth.