WO2006137234A1 - 情報処理装置および情報処理方法、並びにプログラム - Google Patents

情報処理装置および情報処理方法、並びにプログラム Download PDF

Info

Publication number
WO2006137234A1
WO2006137234A1 PCT/JP2006/310229 JP2006310229W WO2006137234A1 WO 2006137234 A1 WO2006137234 A1 WO 2006137234A1 JP 2006310229 W JP2006310229 W JP 2006310229W WO 2006137234 A1 WO2006137234 A1 WO 2006137234A1
Authority
WO
WIPO (PCT)
Prior art keywords
status
interrupt
stored
storage means
information processing
Prior art date
Application number
PCT/JP2006/310229
Other languages
English (en)
French (fr)
Inventor
Hiroshi Kyusojin
Hideki Matsumoto
Masato Kajimoto
Chiaki Yamana
Tsuyoshi Kano
Mitsuki Hinosugi
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to US11/913,164 priority Critical patent/US8412871B2/en
Publication of WO2006137234A1 publication Critical patent/WO2006137234A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Definitions

  • the present invention relates to an information processing device, an information processing method, and a program, and in particular, an information processing device and information processing that can simplify interrupt processing and reduce time required for interrupt processing.
  • the present invention relates to a method and a program.
  • FIG. 1 is a block diagram showing an example of a personal computer (hereinafter referred to as a personal computer) 1 having a network card that performs DMA (Direct Memory Access) transfer using a descriptor.
  • a personal computer hereinafter referred to as a personal computer
  • DMA Direct Memory Access
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 11 stores the packet that is the object of the DMA transfer in the descriptor area 31 (described later) of the RAM 13, the address of the packet area 32 of the RAM 13, the size (length) of the packet, etc. Is stored as a descriptor to cause the network card 19 to DMA transfer the packet.
  • the CPU 11 reads the interrupt status indicating the cause (status) of the interrupt signal stored in the network card 19 according to the interrupt signal supplied from the network card 19, Interrupt processing is performed by performing the interrupt status processing corresponding to the interrupt status.
  • the RAM 13 is also configured with a descriptor area 31 in which descriptors are stored and a packet area 32 in which packets to be DMA-transferred are stored.
  • An input / output interface 15 is also connected to the CPU 11 via the bus 14.
  • the input / output interface 15 includes an input unit 16 including a keyboard and a mouse, an LCD (Li Is connected.
  • the CPU 11 executes various processes in response to commands input from the input unit 16. Then, the CPU 11 outputs an image, sound, etc. obtained as a result of the processing to the output unit 17.
  • the recording unit 18 connected to the input / output interface 15 includes, for example, a hard disk and the like, and records a program executed by the CPU 11 and various data.
  • the network card 19 performs DMA transfer. Specifically, the network card 19 reads out the packet stored in the packet area 32 of the RAM 13 based on the descriptor stored in the descriptor area 31 of the RAM 13, and sends the packet to another network via a network (not shown). Send to device. Further, the network card 19 receives another device capability packet via a network (not shown), and stores the packet in the packet area 32 of the RAM 13 based on the descriptor.
  • the network card 19 generates an interrupt signal, supplies it to the CPU 11, and sets and stores an interrupt status.
  • the drive 20 connected to the input / output interface 15 drives them when a removable medium 21 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory is mounted, and records them there. Get programs and data. The acquired program and data are transferred to the recording unit 18 and recorded as necessary.
  • a removable medium 21 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory
  • FIG. 2 is a block diagram illustrating a functional configuration example of the network card 19 of FIG.
  • the network card 19 in FIG. 2 includes a DMA transfer unit 51, a packet communication unit 52, an interrupt generation unit 53, and an interrupt status holding unit 54.
  • the DMA transfer unit 51 controls DMA transfer. Specifically, the DMA transfer unit 51 reads the descriptor in the descriptor area 31 (FIG. 1) in response to the DMA transfer request to which the CPU 11 is also supplied. Then, based on the descriptor, the DMA transfer unit 51 reads the packet that is the object of the DMA transfer from the packet area 32 and supplies it to the packet communication unit 52, or the packet supplied from the packet communication unit 52 receives the packet from the packet area 32. To remember. In addition, the DMA transfer unit 51 assigns status information that is supplied from the packet communication unit 52 and represents the status of processing by the packet communication unit 52 (for example, the packet transmission completion status, the reception completion status, the transmission / reception error status, etc.).
  • the packet communication unit 52 transmits the packet from the DMA transfer unit 51 to another device via a network (not shown). Further, the packet communication unit 52 receives other device capability packets via a network (not shown) and supplies them to the DMA transfer unit 51. Further, the packet communication unit 52 supplies status information to the DMA transfer unit 51.
  • the interrupt generation unit 53 generates an interrupt signal according to the status information from the DMA transfer unit 51 and supplies it to the CPU 11.
  • the interrupt generation unit 53 sets the interrupt status according to the status information, and supplies the interrupt status to the interrupt status holding unit 54 for storage.
  • the interrupt status holding unit 54 holds the interrupt status from the interrupt generation unit 53.
  • the interrupt status holding unit 54 clears (cancels) the interrupt status in response to a request from the CPU 11.
  • step S11 the interrupt generation unit 53 of the network card 19 generates an interrupt signal according to the status information of the DMA transfer unit 51, and notifies (transmits) the interrupt signal to the CPU 11. Proceed to step S12.
  • step S1 the CPU 11 receives the interrupt signal from the interrupt generation unit 53, and proceeds to step S2.
  • step S2 the CPU 11 requests the network card 19 to read the interrupt status, and proceeds to step S3.
  • step S12 the interrupt status holding unit 54 of the network card 19
  • step S 13 the interrupt status holding unit 54 notifies (transmits) the interrupt status held in response to a request for reading the interrupt status, and proceeds to step S 14.
  • step S3 the CPU 11 also receives the interrupt status from the interrupt status holding unit 54, and proceeds to step S4.
  • step S4 the CPU 11 performs an interrupt status process corresponding to the interrupt status.
  • the interrupt status is an interrupt status indicating completion of transmission of a packet to be transferred by the packet communication unit 52
  • the CPU 11 completes transmission as interrupt status processing. Release the packet area 32 where stored packets are stored. Do.
  • the CPU 11 deletes the packet that has been transmitted and stored in the packet area 32.
  • step S4 the process proceeds to step S5, and the CPU 11 requests the network card 19 to clear the interrupt status held in the interrupt status holding unit 54, and ends the process.
  • the CPU 11 performs the processing of steps S2 to S5 as the interrupt processing according to the interrupt signal supplied from the interrupt generation unit 53 in step S1, and ends the processing.
  • step S14 the interrupt status holding unit 54 of the network card 19 receives the request for clearing the interrupt status from the CPU 11, and clears the interrupt status in response to the request. That is, the interrupt status holding unit 54 clears each bit of the held interrupt status (signal).
  • an interrupt signal is not generated in the DMA controller power CPU of the external I / F (Interface) device, but is stored in the status register in the external I / F device.
  • Data transfer that updates only the signal status and reduces the number of interrupt notifications by referring to the status stored in the status register in response to a timer interrupt that is generated every predetermined time by the CPU There is a system (for example, see Patent Document 2).
  • Patent Document 1 Patent No. 3549703
  • Patent Document 2 JP-A-11-212904
  • the time required for interrupt status processing is less than the time required for read processing.
  • the time required for interrupt status processing decreases as the processing capacity of CPU 11 increases.
  • the present invention has been made in view of such a situation, and it is intended to simplify the interrupt process and reduce the time required for the interrupt process.
  • the information processing device includes: a generating unit that generates an interrupt signal; a first storage unit that stores a status indicating a cause of generation of the interrupt signal generated by the generating unit; Execution means for executing predetermined processing in accordance with the status stored in the first storage means, and the generating means includes second storage means for storing the status of the interrupt signal, and second storage means Storage control means for storing the status stored by the first storage means.
  • the first time required for the execution means to read the status stored in the first storage means is for the execution means to read the status stored in the second storage means. It may be shorter than the required second time.
  • the second storage means determines whether or not the first status stored by the first storage means and the second status stored by the second storage means are synchronized.
  • a first storage area for the determination information to be included, and the first storage means is provided with a second storage area for storing the determination information and an area different from the second storage area Therefore, a third storage area for temporarily holding the determination information may be further provided, and the status stored by the second storage means is stored in the storage control means as the first storage.
  • the determination information recorded in the first storage area of the second storage means can be further stored in the second storage area of the first storage means.
  • the first storage means stores the first storage means based on the determination information stored in the second storage area and the determination information stored in the third storage area.
  • a predetermined process is executed according to the first status stored by the first storage means A first status stored by the first storage means based on the determination information stored in the second storage area and the determination information stored in the third storage area; The second status stored by the second storage means; Can be instructed to execute a predetermined process according to the second status stored in the second storage means.
  • the determination information may be represented by a numerical value, and the execution means executes a predetermined process according to the first status or the second status, and then executes the first storage area.
  • the same value as the judgment information stored in the first storage area can be stored in the third storage area, and 1 can be added to the value of the judgment information stored in the first storage area.
  • the determination information stored in the second storage area is compared with the determination information stored in the third storage area, and the value of the determination information stored in the second storage area is The first status stored by the first storage means and the second status stored by the second storage means are synchronized with each other if the value of the determination information stored in the storage area According to the first status stored in the first storage means In other cases, the first status stored by the first storage means and the second status stored by the second storage means can be executed. It is possible to execute predetermined processing in accordance with the second status stored in the second storage means after determining that they are not synchronized.
  • An information processing apparatus includes: a generating unit that generates an interrupt signal; a storage unit that stores a status indicating a cause of generation of the interrupt signal generated by the generating unit; Storage control means for storing the status stored by the means in another information processing apparatus that executes predetermined processing in accordance with the status.
  • the storage means further stores determination information for determining whether or not the status stored in the storage means and the status stored in another information processing apparatus are synchronized.
  • the storage control unit can cause other information processing devices to record the determination information together with the status.
  • the information processing method includes a generation step for generating an interrupt signal, and a first storage for storing in the storage means the status of the interrupt signal generated by the processing of the generation step.
  • a control step and a second storage control step for storing the status stored by the storage means in another information processing apparatus that executes a predetermined process in accordance with the status.
  • a program according to the second aspect of the present invention includes a generation step for generating an interrupt signal, and a first storage control step for storing in the storage means the status of the interrupt signal generated by the processing of the generation step. And a second storage control step for storing the status stored by the storage means in another information processing apparatus that executes a predetermined process in accordance with the status.
  • the information processing device includes a storage unit that stores a status of an interrupt signal supplied from another information processing device, and a predetermined number according to the status stored by the storage unit. Execution means for executing the process.
  • the storage means determines whether the status stored by the storage means and the status stored in the other information processing apparatus are synchronized with the status from the other information processing apparatus.
  • the determination information can be further acquired and the status and the determination information can be stored.
  • the execution means stores the status stored in the storage means based on the determination information and other information processing apparatuses. It is determined whether or not the status is synchronized with the status stored in the memory, and if it is determined that the status is synchronized, the predetermined processing is executed according to the status stored in the storage means. If it is determined that they are not synchronized, a status is acquired from another information processing apparatus, and a predetermined process is executed according to the status acquired from the other information processing apparatus. Can Unisuru.
  • An interrupt processing storage means for storing a table in which the status of the interrupt signal is associated with the processing corresponding thereto can be further provided.
  • a predetermined process can be executed based on a table stored in the physical storage means.
  • An information processing method includes a storage control step for storing the status of an interrupt signal supplied by another information processing apparatus, and a status stored by the processing of the storage control step. And an execution step of executing a predetermined process.
  • a program according to a third aspect of the present invention includes a storage control step for storing a status of an interrupt signal supplied from another information processing apparatus, and a status stored by the processing of the storage control step.
  • an interrupt signal is generated, a status indicating the cause of the interrupt signal is stored in the second storage means, and the status is stored in the first storage means. Let Then, predetermined processing is executed according to the status stored in the first storage means.
  • an interrupt signal is generated, a status indicating the cause of the generation of the interrupt signal is stored, and the status is processed according to the status. Stored in the information processing apparatus.
  • the status of an interrupt signal supplied from another information processing apparatus is stored, and predetermined processing is executed according to the status.
  • interrupt processing can be simplified and the time required for interrupt processing can be reduced.
  • FIG. 1 is a block diagram showing an example of a conventional personal computer.
  • FIG. 2 is a block diagram showing a functional configuration example of the network card in FIG.
  • FIG. 3 is an arrow chart for explaining interrupt generation processing by the personal computer of FIG.
  • FIG. 4 is a block diagram showing a configuration example of an embodiment of an information processing system to which the present invention is applied.
  • FIG. 5 is a block diagram showing a hardware configuration example of the personal computer of FIG.
  • FIG. 6 is a block diagram showing a functional configuration example of the network card in FIG.
  • FIG. 7 is a diagram showing an example of an interrupt processing table.
  • FIG. 8 is a flowchart for explaining DMA transfer request processing by a CPU.
  • FIG. 9 is a flowchart for explaining DMA transfer processing by a network card.
  • FIG. 10 is a flowchart explaining interrupt status copy processing by a network card.
  • FIG. 11 is a flowchart for explaining interrupt processing 1 by the CPU.
  • FIG. 12 is an arrow chart for explaining interrupt generation processing by a personal computer.
  • FIG. 13 is an arrow chart for explaining a case where a malfunction occurs in the interrupt generation process by the personal computer.
  • FIG. 14 is a block diagram showing a configuration of a personal computer.
  • FIG. 15 is a block diagram showing a functional configuration example of the network card of FIG.
  • FIG. 16 is a diagram showing an example of an interrupt processing table.
  • FIG. 17 is a flowchart illustrating initialization processing.
  • FIG. 18 is a flowchart for explaining interrupt processing 2 by the CPU.
  • FIG. 19 is an arrow chart for explaining interrupt generation processing by a personal computer.
  • FIG. 20 is an arrow chart for explaining interrupt generation processing by a personal computer.
  • 51 DMA transfer unit 52 packet communication unit, 101 personal computer, 111 CPU, 112 RAM, 113 network card, 140 interrupt generation unit, 141 interrupt status supply unit, 142 interrupt status holding unit, 161 personal Computer, 171 CPU, 172 RAM, 173 Network card, 182 Interrupt version bit Knockup area, 191 Interrupt status holding section
  • FIG. 4 is a block diagram showing a configuration example of an embodiment of the information processing system 100 to which the present invention is applied.
  • the information processing system 100 in FIG. 4 includes a personal computer 101, a network 102, and a personal computer 103.
  • the personal computer 101 and the personal computer 103 are connected via a network 102 such as a LAN (Local Area Network) or the Internet, for example, and communicate with each other.
  • a network 102 such as a LAN (Local Area Network) or the Internet, for example, and communicate with each other.
  • the computer 101 and the personal computer 103 communicate with each other a packet (data) to which a header compliant with TCP (Transmission Control Protocol), IP (Internet Protocol), or the like is added.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • FIG. 5 is a block diagram illustrating a hardware configuration example of the personal computer 101 in FIG. Note that the same components as those in FIG. 1 are denoted by the same reference numerals, and description thereof is omitted.
  • the personal computer 101 in FIG. 5 includes an R0M12, a bus 14, an input / output interface 15, an input unit 16, an output unit 17, a recording unit 18, a drive 20, a CPU 111, a RAMI 12, and a network card 113.
  • the CPU 111 is connected to the R0M 12 and the RAMI 12 via the bus 14.
  • the CPU 111 executes various processes according to the program stored in the R0 Ml 12 or the program recorded in the recording unit 18.
  • the CPU 111 stores, in the descriptor area 31 of the RAMI 12, the address of the packet area 32 of the RAMI 12, the size of the packet, and the like as the descriptor, in which the packet to be DMA-transferred is stored.
  • the network card 113 is caused to DMA transfer the bucket.
  • the CPU 111 performs an interrupt process according to the interrupt signal supplied from the network card 113. Specifically, the CPU 111 reads an interrupt status indicating the cause (status) of the interrupt signal stored in the interrupt status area 121 (described later) of the RAM 112. Then, the CPU 111 stores in the interrupt processing table 160 (FIG. 7 to be described later) stored in the interrupt processing table area 122 of the RAMI 12 and associated with the status indicated by the interrupt status processing. Based on the read interrupt status, the interrupt status processing corresponding to the read interrupt status is performed.
  • the RAM 112 includes a descriptor area 31, a packet area 32, an interrupt status area 121, an interrupt processing table area 122, and the like.
  • the interrupt status area 121 includes an interrupt status supplied from the network card 113. Is memorized.
  • an interrupt processing table 160 preset by the CPU 111 is stored.
  • the network card 113 is configured by, for example, a microcomputer and performs DMA transfer by executing a predetermined program. Specifically, the network card 11 3 reads out the packet stored in the packet area 32 of the RAM 112 based on the descriptor stored in the descriptor area 31 of the RAMI 12, and sends the packet to the personal computer via the network 102. Send to 103. The network card 113 receives a packet from the personal computer 103 via the network 102, and stores the packet in the packet area 32 of the RAMI 12 based on the descriptor.
  • the network card 113 generates an interrupt signal and supplies it to the CPU 111.
  • the interrupt status is set and stored, and the interrupt status is supplied to and stored in the interrupt status area 121 of the RAMI 12.
  • the personal computer 103 in FIG. 4 is configured in the same manner as the personal computer 101, and thus description thereof is omitted.
  • FIG. 6 is a block diagram showing a configuration example of functions that the network card 113 of FIG. 5 has by executing a predetermined program.
  • the same components as those in FIG. 2 are denoted by the same reference numerals.
  • the network card 113 in FIG. 6 includes a DMA transfer unit 51, a packet communication unit 52, an interrupt generation unit 140, an interrupt status supply unit 141, and an interrupt status holding unit 142. Note that the packet communication unit 52 in FIG. 6 performs packet communication via the network 102.
  • the interrupt generation unit 140 generates an interrupt signal according to the status information from the DMA transfer unit 51 and supplies it to the CPU 11. Further, the interrupt generation unit 140 sets an interrupt status according to the state information, supplies the interrupt status to the interrupt status holding unit 142, and stores (updates) the interrupt status. The interrupt generation unit 140 notifies the interrupt status supply unit 141 of the update of the interrupt status.
  • the interrupt status supply unit 141 In response to the notification from the interrupt generation unit 140, the interrupt status supply unit 141 reads the interrupt status from the interrupt status holding unit 142, and displays the interrupt status in the interrupt status area of the RAMI 12. Supply to 121 (Fig. 5) and store.
  • the interrupt status supply unit 14 1 clears (erases) each bit of the interrupt status (signal) held in the interrupt status holding unit 142 in response to a request from the CPU 111.
  • the interrupt status holding unit 142 holds the interrupt status from the interrupt generation unit 140.
  • FIG. 7 shows an example of the interrupt processing table 160 stored in the interrupt processing table area 122 of FIG.
  • the data stored in the interrupt processing table area 122 in FIG. 5 includes the interrupt status read from the interrupt status holding unit 142 and held in the interrupt status holding unit 142 and the interrupt status processing. It is associated. That is, the interrupt status (signal) read from the interrupt status holding unit 142 and held in the interrupt status holding unit 142 consists of 32 bits, and information is described in the same bit allocation as in FIG. Shall.
  • the interrupt status processing power is associated with the status indicated by the interrupt status and the bit of the interrupt status to which the status is assigned.
  • the interrupt status represents the status assigned to the bit.
  • the processing power for releasing the packet area 32 of the RAMI 12 in which the packet that has been transmitted by the packet communication unit 52 is stored. It is associated with the status of packet transmission completion by 52 (hereinafter referred to as “transmission completion status”) and the lower 0 bits of the interrupt status.
  • the CPU 111 corresponds to the interrupt status when the lower 0th bit of the interrupt status (the lower power is also the 0th bit) is "1" (when the interrupt status indicates the completion status).
  • the RAMI 12 packet area 32 is released.
  • a packet received by the packet communication unit 52 is stored, a process of reading a packet from the packet region 32 and performing a predetermined process using the packet is as follows.
  • the packet communication unit 52 associates the status with the completion of packet reception (hereinafter referred to as reception completion status) and the lower 1 bit of the interrupt status.
  • the process of resetting the network card 113 is As interrupt status processing, the status (hereinafter referred to as error status) that is an error in packet transmission or reception by the packet communication unit 52 is associated with the lower two bits of the interrupt status.
  • error status the status that is an error in packet transmission or reception by the packet communication unit 52 is associated with the lower two bits of the interrupt status.
  • the status represented by the interrupt status may be one or plural. For example, if the lower 0 bit and lower 1 bit of the 32 bits of the interrupt status are ⁇ 1 '', the interrupt status represents both the transmission completion status and the reception completion status. .
  • This DMA transfer request process is started, for example, when the user commands transmission of a packet to the personal computer 103 by operating the input unit 16.
  • step S31 CPU 111 stores a packet to be transmitted to personal computer 103, that is, a packet to be DMA-transferred, in packet area 32 of RAMI 12, and proceeds to step S32.
  • step S32 the CPU 111 generates a descriptor based on information such as the address of the packet area 32 where the packet is stored in step S31 and the size of the packet, and stores the descriptor in the descriptor area 31. Proceed to S33.
  • step S33 the CPU 111 requests the network card 113 for DMA transfer, and ends the process.
  • the CPU 111 requests the network card 113 to perform a DMA transfer and transmits the packet to the personal computer 103.
  • the power packet is received from the personal computer 103! However, the same processing is performed.
  • step S31 the process of step S31 is not performed, and the descriptor generated in step S32 stores information such as the address of the packet area 32 in which the received packet is stored.
  • DMA transfer processing by the network card 113 in FIG. 6 will be described with reference to FIG. This DMA transfer process is started, for example, when a DMA transfer is requested by the CPU 111 in step S33 of FIG.
  • step S51 the DMA transfer unit 51 executes the descriptor area in step S32 of FIG. DMA transfer is performed based on the descriptor stored in 31. Specifically, the DMA transfer unit 51 reads the packet from the packet area 32 based on the descriptor, and transmits the packet to the personal computer 103 via the packet communication unit 52 or the packet communication unit 52 in the packet area 32. Store the received packet.
  • step S51 the process proceeds to step S52, where the packet communication unit 52 determines whether or not a packet transmission or reception error has occurred and determines that an error has occurred. If yes, go to Step S53.
  • step S53 the DMA transfer unit 51 determines whether there is a packet targeted for DMA transfer based on the descriptor, and if it is determined that there is a packet targeted for DMA transfer, step S51 Returning to FIG.
  • step S52 determines whether an error has occurred. If it is determined in step S52 that an error has occurred, the packet communication unit 5
  • step S53 When it is determined in step S53 that there is no packet to be subjected to DMA transfer, the packet communication unit 52 transmits status information indicating completion of transmission or reception to the DMA transfer unit 5
  • step S54 the interrupt generation unit 140 sets an interrupt status in accordance with the status information from the DMA transfer unit 51, and holds the interrupt status in the interrupt status holding unit 142.
  • the interrupt generation unit 140 sets the interrupt status to the interrupt status indicating the error status, and sets the second lower bit power.
  • the interrupt status holding unit 142 holds the 32-bit interrupt status of S “1”.
  • the interrupt generation unit 140 sets the interrupt status to the interrupt status indicating the transmission completion status or the reception completion status.
  • the 32-bit interrupt status whose lower 0 bit or lower 1 bit is “1” is held in the interrupt status holding unit 142.
  • step S54 the process proceeds to step S55, where the interrupt generation unit 140 notifies the interrupt status supply unit 141 of the update of the interrupt status, and proceeds to step S56.
  • step S56 the interrupt generation unit 140 generates an interrupt signal, supplies it to the CPU 111, and ends the process.
  • step S71 the interrupt status supply unit 141 determines whether or not the interrupt status is updated. Specifically, when the interrupt status update is notified in step S55 of FIG. 9 or when the interrupt status is cleared in response to a request from the CPU 111, the interrupt status supply unit 141 displays the interrupt status. Is determined to have been updated. Otherwise, it is determined that the interrupt status has been updated.
  • step S71 If it is determined in step S71 that the interrupt status has been updated, the interrupt status supply unit 141 waits until the interrupt status is updated.
  • step S71 determines whether the interrupt status has been updated. If it is determined in step S71 that the interrupt status has been updated, the process proceeds to step S72, where the interrupt status supply unit 141 receives the interrupt status from the interrupt status holding unit 142. Read and go to step S73.
  • step S73 the interrupt status supply unit 141 copies the interrupt status read in step S72 to the interrupt status area 121 of the RAMI 12. That is, the interrupt status supply unit 141 supplies the interrupt status to the RAMI 12.
  • the RAM 112 stores the interrupt status in the interrupt status area 121.
  • interrupt processing 1 by the CPU 111 will be described with reference to FIG.
  • This interrupt process 1 is started, for example, when an interrupt signal is supplied by the interrupt generation unit 140 in step S56 of FIG.
  • step S91 the CPU 111 reads the interrupt status from the interrupt status area 121 of the RAMI 12, and proceeds to step S92.
  • step S92 the CPU 111 determines the status power transmission completion status indicated by the interrupt status read in step S91 based on the interrupt processing table 160 stored in the interrupt processing table area 121 of the RAM 112. If there is, that is, whether the lower 0 bit power of the 32 bits of the interrupt status is “1”, and if it is determined that the status is the transmission complete status, the process proceeds to step S93. [0101] In step S93, the CPU 111 stores, based on the interrupt processing table 160, a packet that has been transmitted by the packet communication unit 52 as an interrupt status process corresponding to the transmission completion status. Release 12 packet areas 32. That is, the CPU 111 deletes the packet that has been transmitted and stored in the packet area 32.
  • step S92 If it is determined in step S92 that the status is not the transmission completion status, or after processing in step S93, the process proceeds to step S94, and CPU 111 reads out in step S91 based on interrupt processing table 160.
  • the status power represented by the interrupt status is determined whether it is a reception completion status, that is, whether the lower 1 bit of the 32 bits of the interrupt status is ⁇ 1 '', and the status is determined to be the reception completion status If yes, go to Step S95.
  • step S95 the CPU 111 receives the interrupt status process corresponding to the reception completion status based on the interrupt processing table 160 by the packet communication unit 52 and stores it in the packet area 32 of the RAMI 12.
  • the received packet is read out and a predetermined process is performed using the packet.
  • the CPU 111 performs processing for displaying the image corresponding to the packet on the output unit 17 using the packet.
  • step S94 If it is determined in step S94 that the status is not the reception completion status, or after processing in step S95, the process proceeds to step S96, and CPU 111 proceeds to step S91 based on the interrupt processing table 160. It is determined whether or not the status power error status indicated by the read interrupt status is “1”, that is, the lower 2 bits of the 32 bits of the interrupt status are “1”.
  • step S96 If it is determined in step S96 that the status is an error status, the packet to be transmitted immediately read from the packet area 32, or the received packet not yet stored in the packet area 32 If the reliability of is not guaranteed, go to step S97.
  • step S97 the CPU 111 resets the network card 113 as an interrupt status process corresponding to the error status based on the interrupt process table 160. Specifically, the CPU 111, for example, initializes a register used for DMA transfer control by the DMA transfer unit 51 of the network card 113 and discards a packet being transmitted / received by the packet communication unit 52. .
  • step S96 If it is determined in step S96 that the status is not an error status, or after the processing in step S97, the process proceeds to step S98, and the CPU 111 requests the network card 113 to clear the interrupt status and performs the processing. finish.
  • the interrupt status supply unit 144 of the network card 113 stores the interrupt status in the interrupt status area 121 of the RAM 112.
  • the interrupt status can be read from RAMI 12. That is, the CPU 111 does not need to read the interrupt status from the interrupt status holding unit 142 of the network card 113.
  • the CPU 101 can simplify the interrupt process and reduce the time required for the interrupt process as compared with the conventional case described in FIG.
  • step S151 the interrupt status supply unit 141 of the network card 113 supplies the interrupt status to the interrupt status area 121 of the RAM 112, and proceeds to step S152.
  • step S131 the interrupt status area 121 of the RAM 112 stores the interrupt status from the interrupt status supply unit 141. That is, the interrupt status from the interrupt status supply unit 141 is copied to the interrupt status area 121.
  • step S152 the interrupt generation unit 140 of the network card 113
  • step S111 the CPU 111 receives the interrupt signal from the interrupt generation unit 140, and proceeds to step S112.
  • Step S112 Requests to read the status of CPUIl li, RAMI12 [Injury ij including status, and proceeds to Step S113.
  • step S132 the interrupt status area 121 of the RAM 112 receives the request for reading the interrupt status from the CPU 111, and proceeds to step S133. move on.
  • step S133 the interrupt status area 121 notifies the CPU 111 of the interrupt status currently stored (held) in response to the request for reading the interrupt status, and the process proceeds to step S134.
  • step S113 CPU 111 receives the interrupt status from interrupt status area 121, and proceeds to step S114.
  • step S114 the CPU 111 performs interrupt status processing corresponding to the received interrupt status based on the interrupt processing table 160 stored in the interrupt processing table area 122, and proceeds to step S115. .
  • step S115 the CPU 111 requests the network card 113 to clear the interrupt status held in the interrupt status holding unit 142, and ends the process.
  • the CPU 111 performs the processing of steps S112 to S115 as the interrupt processing according to the interrupt signal supplied from the interrupt generation unit 53 in step S111, and ends the processing.
  • step S153 the interrupt status supply unit 141 of the network card 113 receives a request for clearing the interrupt status from the CPU 111, and receives each interrupt status held in the interrupt status holding unit 142. Clear the bit and go to step S154.
  • step S154 the interrupt status supply unit 141 reads the interrupt status held in the interrupt status holding unit 142, supplies it to the RAM 112, and ends the processing.
  • step S134 the interrupt status area 121 of the RAM 112 receives and stores the interrupt status from the interrupt status supply unit 141. That is, it is copied to the interrupt status force interrupt status area 121 held in the interrupt status holding unit 142.
  • the device that generates the interrupt signal is not limited to the network card 113, and may be, for example, a data storage.
  • the interrupt status supply unit 141 supplies the interrupt status stored in the interrupt status holding unit 142 to the interrupt status area 121 of the RAM 112. Since the interrupt status area 121 stores the interrupt status, the interrupt process can be simplified and the time required for the interrupt process can be reduced.
  • the interrupt status holding unit of the network card, etc. which the CPU performs via the bus and the input / output interface as compared with the RAM access performed by the CPU via the bus It takes a lot of time to access these registers.
  • the CPU can determine whether or not the interrupt status power recorded in the RAM is correctly updated. Specifically, an interrupt version bit that can be used (updated) by the CPU in the interrupt status holding part of the network card is prepared, and data is written to that area at the same time as the status is cleared. The backup of the interrupt version bit from the previous processing is stored in an area different from the area (interrupt status area) where the value held in the interrupt status holding part of RAM is copied. Then, each time an interrupt occurs, the CPU compares the value of the interrupt version bit copied to the RAM with the value of the interrupt version bit that was backed up in the previous process. It is even better to be able to check whether the status copied to the actual status of the interrupt described in the interrupt status holding part of the network card is synchronized. Is suitable.
  • FIG. 14 is a block diagram showing a configuration of the personal computer 161 that can confirm the synchronization between the status copied to the RAM and the actual interrupt status.
  • the personal computer 161 in FIG. 14 is provided with a CPU 171 in place of the CPU 111, a 1 ⁇ 1172 in place of the 1 ⁇ 112, and a network card 173 in place of the network card 113. Except for the above, it has basically the same configuration as the personal computer 101 described with reference to FIG.
  • the RAM 172 is provided with an interrupt status area 181 that can copy and hold the interrupt status bit and the interrupt version bit from the network card 173.
  • an interrupt status area 181 that can copy and hold the interrupt status bit and the interrupt version bit from the network card 173.
  • a table area 182 for storing an interrupt processing table which will be described later with reference to FIG. 16, is provided.
  • the configuration is basically the same as that of the RAM 112 described with reference to FIG. 5 except that a possible interrupt version bit backup area 183 is provided.
  • the CPU 171 is connected to the ROM 12 and the RAM 172 via the bus 14 and executes various processes according to the program stored in the ROM 112 or the program recorded in the recording unit 18. .
  • the CPU 171 stores, in the descriptor area 31 of the RAM 172, the address of the packet area 32 of the RAM 172 in which the packet to be transferred by DMA, the size of the packet, etc. are stored as a descriptor.
  • the packet is transferred by DMA.
  • the CPU 171 performs an interrupt process according to an interrupt signal supplied from the network card 173. Specifically, the CPU 171 reads the interrupt version bit together with the interrupt status indicating the cause (status) of the interrupt signal stored in the interrupt status area 181 of the RAM 172. The CPU 171 refers to the value of the read interrupt version bit, compares it with the value backed up in the interrupt version bit backup area 183, and compares the status copied to the RAM 172 and the network card 173. of Interrupt status holding unit 191 Checks whether or not the actual interrupt status described in Fig. 15 is synchronized.
  • the CPU 171 When synchronization is established, the CPU 171 associates the interrupt status processing stored in the interrupt processing table area 182 of the RAM 172 with the status indicated by the interrupt status. Based on the interrupt processing table, interrupt status processing corresponding to the interrupt status read from the interrupt status area 181 of the RAM 172 is performed. On the other hand, if the synchronization is not established, the CPU 171 reads the actual interrupt status described in the interrupt status holding unit 191 of the network card 173 and stores it in the interrupt processing table area 182 of the RAM 172. The interrupt status process corresponding to the read interrupt status is performed based on the interrupt process table in which the interrupt status process and the status indicated by the interrupt status are associated with each other.
  • the CPU 171 backs up the value stored in the interrupt version bit backup area 183 of the RAM 172 (ie, increments by 1 from the value before the interrupt status process). . Then, the CPU 171 clears (erases) each bit of the interrupt status (signal) held in the network capability 173, and increments the value of the interrupt version bit by one. To control.
  • the RAM 172 is also configured with a descriptor area 31, a packet area 32, an interrupt status area 181 and an interrupt processing table area 182.
  • the interrupt processing table area 182 contains
  • An interrupt processing table preset by the CPU 171 is stored.
  • interrupt processing table area 182 the structure of the interrupt processing table stored in interrupt processing table area 182 and the data stored in the interrupt status and interrupt version bits stored in interrupt status area 181 Will be described.
  • the interrupt processing table stored in the interrupt processing table area 182 holds the interrupt status and interrupt version bit values of the configuration shown in FIG.
  • the interrupt status is the same as that described with reference to Fig. 7.
  • An interrupt version bit is specified, and even if “1” is written to the upper 4 bits of the interrupt version bit, interrupt processing is not executed. Therefore, the interrupt status area 181 of the RAM 172 holds the interrupt status and interrupt version bit values of the data structure shown in FIG.
  • the interrupt status (signal) and interrupt version bit values are 32 bits as in the case described with reference to FIG. However, it goes without saying that these bit numbers may be different from 32 bits.
  • the interrupt version bits can take values from 0 to 15 in decimal numbers. That is, if the interrupt version bit is incremented below this, in decimal numbers, 0 to 14 indicates that 1 is added to the value, and if the value is 15, the value is Indicates that is 0.
  • the network card 173 is composed of, for example, a microcomputer and performs DMA transfer by executing a predetermined program. Specifically, the network card 173 reads out the packet stored in the packet area 32 of the RAM 172 based on the descriptor stored in the descriptor area 31 of the RAM 172, and sends the packet to the personal computer via the network 102. Send to 103. Further, the network card 173 receives a packet from the personal computer 103 via the network 102 and stores the packet in the packet area 32 of the RAM 172 based on the descriptor.
  • the network card 173 generates an interrupt signal and supplies it to the CPU 171.
  • the interrupt status is set and stored, and the interrupt status is supplied to the interrupt status area 181 of the RAM 172 and stored together with the interrupt version bit.
  • FIG. 15 is a block diagram showing a configuration of network card 173 in FIG.
  • the same components as those in FIG. 6 are denoted by the same reference numerals, and detailed description thereof will be omitted as appropriate.
  • network card 173 in FIG. 15 is similar to network card 113 described with reference to FIG. 6 except that interrupt status holding unit 191 is provided in place of interrupt status holding unit 142. It has basically the same configuration and the same function. That is, the interrupt generation unit 140 generates an interrupt signal according to the status information from the DMA transfer unit 51 and supplies it to the CPU 11. The interrupt generation unit 140 sets an interrupt status according to the status information, supplies the interrupt status to the interrupt status holding unit 191 and stores (updates) the interrupt status. The interrupt generation unit 140 notifies the interrupt status supply unit 141 of the update of the interrupt status.
  • the interrupt status supply unit 141 In response to the notification from the interrupt generation unit 140, the interrupt status supply unit 141 reads the interrupt status and interrupt version bit from the interrupt status holding unit 191 and reads the read interrupt status and interrupt The interrupt version bit is supplied to and stored in the interrupt status area 181 of the RAM 172. In response to a request from the CPU 171, the interrupt status supply unit 141 clears (erases) each bit of the interrupt status (signal) held in the interrupt status holding unit 191, and Increments the value of the version bit by 1. The interrupt status holding unit 191 holds the interrupt status and the value of the interrupt version bit based on the control of the interrupt generation unit 140 or the CPU 171.
  • the interrupt status holding unit 191 can hold the bit allocation interrupt status and the interrupt version bit values in the same manner as the configuration shown in FIG. Further, the CPU 171 may freely use the upper 4 bits of the 32 bits of the interrupt status holding unit 191, that is, the area in which the value of the interrupt version bit is held. In other words, the area where the value of the interrupt version bit is held is prepared as an area where the value can be rewritten by the control of the CPU 171.
  • Interrupt status holding unit 191 holds the interrupt status and interrupt version bit. When an interrupt occurs, transmission is completed and received at the lower 0th, 1st and 2nd bits. When the interrupt status values of completion and error change, and when the CPU171 instructs to change the value held in the interrupt status holding unit 191, for example, incrementing the interrupt version bit , Copied to the interrupt status area 181 of RAM172.
  • the DMA transfer request process and the DMA transfer process are basically the same as those described with reference to FIGS. 8 and 9, and the copy process Data power interrupted by interrupt status alone Except for the status and interrupt version bits, the processing is basically the same as that described with reference to FIG.
  • step S181 the CPU 171 resets the network card 171.
  • step S 182 the CPU 171 backs up the interrupt version bit value of the network card 171 to the interrupt version bit backup area 183 of the RAM 172.
  • step S183 the CPU 171 uses the interrupt version bit value backed up in the interrupt version bit backup area 183 of RAM 172 in step S182 as the interrupt version bit.
  • 171 interrupt status holding unit Writes to a predetermined area (here, upper 4 bits) of 191 and requests to clear the interrupt status of interrupt status holding unit 191.
  • a value obtained by adding 1 to the interrupt version bit value backed up in the interrupt version bit backup area 183 based on the control of the CPU 171 In addition to being written as a bit, the interrupt status value such as transmission complete, reception complete, or error is cleared, and the process ends.
  • interrupt processing 2 by the CPU 171 will be described with reference to the flowchart in FIG.
  • This interrupt process 1 is started, for example, when an interrupt signal is supplied by the interrupt generation unit 140 in step S56 of FIG.
  • step S211 CPU 171 reads the interrupt status and interrupt version bit from interrupt status area 181 of RAM 172.
  • step S212 the CPU 171 determines that the interrupt version bit value read from the interrupt status area 181 of the RAM 172 is the interrupt version backed up in the interrupt version bit backup area 183 of the RAM 172. Judge whether the bit backup value is 1 or not.
  • step S212 the value of the interrupt version bit read from the interrupt status area 181 of the RAM 172 is set to the backup value of the interrupt version bit backed up in the interrupt version bit backup area 183 of the RAM 172. Is the one that In step S213, the CPU 171 executes interrupt processing using the interrupt status read from the RAM 172 in step S211.
  • step S212 the value of the interrupt version bit read from the interrupt status area 181 of the RAM 172 is set to the backup value of the interrupt version bit backed up in the interrupt version bit backup area 183 of the RAM 172.
  • step S214 the CPU 171 accesses the network card 173 without using the interrupt status read from the RAM 172 in step S211, and allocates the network card 173.
  • Interrupt status holding unit 191 reads the interrupt status value and executes interrupt processing.
  • step S213 or step S214 the CPU 171 executes the processing basically the same as step S92 to step S97 of FIG. To do.
  • the CPU 171 uses the interrupt status read from the RAM 172 or the network card 173 based on the interrupt processing table 160 stored in the interrupt processing table area 121 of the RAM 172. If it is determined whether the lower 0 bit power of the 32 bits of the interrupt status is “l” and the status is the transmission complete status, it is based on the interrupt processing table. ! / As the interrupt status process corresponding to the transmission completion status, the packet communication unit 52 releases the packet area 32 in the RAM 172 in which the packet that has been transmitted is stored. That is, the CPU 171 deletes the packet that has been transmitted and stored in the packet area 32.
  • the CPU 171 determines whether the status indicated by the read interrupt status is the reception completion status, that is, the interrupt status. If it is determined whether the lower 1 bit of the 32 bits is "1" and the status is the reception completion status, the interrupt corresponding to the reception completion status is determined based on the interrupt processing table. As status processing, the packet received by the packet communication unit 52 and stored in the packet area 32 of the RAM 172 is displayed. The packet is read out and predetermined processing is performed using the packet. For example, the CPU 171 performs processing for displaying an image corresponding to the packet on the output unit 17 using the packet.
  • the CPU 171 is the status force error status indicated by the read interrupt status. It is determined whether the lower 2nd bit power of the 32 bits of interrupt status is “l”. If the status is determined to be an error status, that is, the reliability of the packet to be transmitted read from the packet area 32 or the received packet that is not yet stored in the packet area 32 is not guaranteed. In this case, the CPU 171 resets the network card 113 as an interrupt status process corresponding to the error status based on the interrupt process table 160. Specifically, for example, the CPU 171 initializes a register used for DMA transfer control by the DMA transfer unit 51 of the network card 173 and discards a packet being transmitted / received by the packet communication unit 52.
  • step S219 If it is determined in step S219 that the status is not an error status, or after the processing of step S220 is completed, in step S221, the CPU 171 determines the allocation of the backup version bit backup area 183 in the RAM 172. 1 is added to the value of the embedded version bit.
  • step S222 CPU 171 writes a value obtained by adding 1 to the interrupt version bit value backed up in step S221 as an interrupt version bit in interrupt status holding unit 191 of network card 173. Then, the network card 173 is requested to clear the interrupt status, and the process ends.
  • interrupt processing is executed based on the interrupt status copied to the RAM 173. If synchronization is not established, the network card 173 is accessed to read the interrupt status of the network card 173 and execute interrupt processing. As a result, interrupt processing can be simplified and the time required for interrupt processing can be reduced, and the CPU 171 that received the interrupt notification before the completion of interrupt status copying can be Interrupt processing based on the previous interrupt status recorded in 2 can be prevented.
  • processing is performed according to the timing at which the interrupt status from the interrupt status supply unit 141 is stored in the interrupt status area 181 of the RAM 172. Different.
  • step S291 the interrupt status supply unit 141 of the network card 173 supplies the interrupt status to the interrupt status area 121 of the RAM 172.
  • step S271 the interrupt status area 181 of the RAM 172 stores the interrupt status from the interrupt status supply unit 141. That is, the interrupt status from the interrupt status supply unit 141 is copied to the interrupt status area 181.
  • step S292 the interrupt generation unit 140 of the network card 173 generates an interrupt signal according to the status information from the DMA transfer unit 51, and notifies the CPU 171 of the interrupt signal.
  • step S251 CPU 171 receives the interrupt signal from interrupt generation unit 140, and requests RAM 172 to read the interrupt status in step S252.
  • step S272 the interrupt status area 181 of the RAM 172 receives a request for reading the interrupt status from the CPU 171.
  • the interrupt status area 181 stores V in response to the request for reading the interrupt status. Hold) and notify the CPU 171 of the interrupt status.
  • the interrupt statuses recorded in the interrupt status area 181 of the RAM 172 and the interrupt status holding unit 191 of the network card 173 are synchronized. Yes.
  • step S253 the CPU 171 receives the interrupt status from the interrupt status area 121.
  • step S254 the CPU 171 receives the interrupt version bit backed up and the interrupt version bit read from the RAM 172. Are compared (step S212 in FIG. 18).
  • the interrupt status area 181 of the RAM 172 and the network card 173 Since the interrupt status recorded in the interrupt status holding unit 191 is synchronized with the CPU 171 in step S255, the CPU 171 uses the interrupt status of the RAM 172 that has already been read. Based on the interrupt processing table 160 stored in the area 122, interrupt status processing is performed (the processing of Step S213 and Steps S215 to S220 in FIG. 18).
  • step S256 the CPU 171 increments the value of the interrupt version bit backed up in the interrupt version bit backup area 183 of the RAM 173 (the process of step S221 in FIG. 18).
  • step S257 the CPU 171 requests the network card 173 to increment the interrupt version bit held in the interrupt status holding unit 142 by 1 and clear the interrupt status (step in FIG. 18). Processing of S222).
  • step S293 the interrupt status supply unit 144 of the network card 173 receives the request for incrementing the interrupt version bit supplied from the CPU 171 and clearing the interrupt status, and holds the interrupt status.
  • the interrupt purge bit held in the unit 142 is incremented and each bit of the interrupt status held in the interrupt status holding unit 142 is cleared.
  • step S 294 the interrupt status supply unit 141 reads the interrupt status held in the interrupt status holding unit 142 and supplies it to the RAM 172.
  • step S274 the interrupt status area 181 of the RAM 172 receives and stores the supplied interrupt status and interrupt version bit. That is, the interrupt status and interrupt version bit held in the interrupt status holding unit 191 are copied to the interrupt status area 181 and the processing is terminated.
  • the CPU 171 acquires the interrupt status by exchanging information with the network card 173 each time. Compared to this, interrupt processing can be executed at high speed.
  • step S 351 the interrupt status supply unit 141 of the network card 173 supplies the interrupt status to the interrupt status area 181 of the RAM 172.
  • the interrupt status area 181 of the RAM 172 fails to store as many interrupt statuses as the interrupt status supply unit 141. That is, the interrupt status from the interrupt status supply unit 141 is not copied to the interrupt status area 181.
  • the interrupt status supply unit 141 of the network card 173 executes again the process of supplying the interrupt status to the interrupt status area 181 of the RAM 172 (process of step S355 described later).
  • step S352 the interrupt generation unit 140 of the network card 173 generates an interrupt signal according to the status information from the DMA transfer unit 51, and notifies the CPU 171 of the interrupt signal.
  • step S311 CPU 171 receives an interrupt signal from interrupt generation unit 140, and requests RAM 172 to read the interrupt status in step S312.
  • step S331 the interrupt status area 181 of the RAM 172 receives a request for reading the interrupt status from the CPU 171.
  • the interrupt status area 181 stores V in response to the request for reading the interrupt status. Hold) and notify the CPU 171 of the interrupt status.
  • the interrupt status is recorded in the interrupt status area 181 of the RAM 172 and the interrupt status holding unit 191 of the network card 173. ⁇ .
  • step S313 the CPU 171 receives the interrupt status from the interrupt status area 121.
  • step S314 the CPU 171 receives the interrupt version bit backed up and the interrupt version bit read from the RAM 172. Are compared (step S212 in FIG. 18). In this case, since the values of the interrupt version bit being backed up and the interrupt version bit read from the RAM 172 are equal, the interrupt status area 181 of the RAM 172 and the interrupt status holding unit of the network card 173 191 It is determined that the interrupt status is recorded in sync.
  • step S315 CPU 171 issues an interrupt status read request to interrupt status holding unit 191 of network card 173.
  • the interrupt status supply unit 141 of the network card 173 receives an interrupt status read request in step S353, and reads the interrupt status stored in the interrupt status holding unit 191 in step S354. To the CPU 171.
  • step S316 the CPU 171 receives an interrupt status notification from the interrupt status supply unit 141 of the network card 173.
  • step S317 the CPU 171 uses the interrupt status supplied to the interrupt processing table area 122.
  • the interrupt status processing corresponding to the received interrupt status is performed based on the interrupt processing table 160 stored in (Processes of Step S214 and Steps S215 to S220 in FIG. 18).
  • step S318 the CPU 171 increments the value of the interrupt version bit backed up in the interrupt version bit backup area 183 of the RAM 173 (the process of step S221 in FIG. 18).
  • step S355 the interrupt status supply unit 141 of the network card 173 supplies the interrupt status to the interrupt status area 121 of the RAM 172.
  • step S333 the interrupt status area 181 of the RAM 172 stores the interrupt status from the interrupt status supply unit 141. That is, the interrupt status from the interrupt status supply unit 141 is copied to the interrupt status area 181.
  • step S319 the CPU 171 requests the network card 173 to increment the interrupt version bit held in the interrupt status holding unit 142 by 1 and clear the interrupt status (step in FIG. 18). Processing of S222).
  • step S356 the interrupt status supply unit 144 of the network card 173 receives the interrupt version bit increment request and the interrupt status clear request supplied from the CPU 171 and receives the interrupt version bit. In addition to incrementing, the interrupt status holding unit 142 clears each bit of the interrupt status. Then, in step S357, the interrupt status supply unit 141 reads the interrupt status held in the interrupt status holding unit 142 and supplies it to the RAM 172.
  • step S334 the interrupt status area 181 of the RAM 172 receives and stores the supplied interrupt status and interrupt version bit.
  • the interrupt status and interrupt version bit held in the interrupt status holding unit 191 indicate the interrupt status.
  • the data is copied to the task area 181 and the process is terminated.
  • the CPU 171 acquires the interrupt status by exchanging information with the network card 173. Incorrect interrupt handling is not executed due to past interrupt status.
  • the CPU can reduce the load of the interrupt factor reading process, and the status can be reduced.
  • the status copied to RAM is synchronized, interrupt processing is executed using the status read from RAM, and the RAM If the status copied to the memory is in sync, it is possible to prevent erroneous interrupts by not using the status copied to RAM! / Can do.
  • the device that generates the interrupt signal is not limited to the network card 173, and may be a data storage, for example.
  • the value of the interrupt version bit copied to 72 (if copied correctly, set the value of the interrupt version bit backed up written to the interrupt status holding unit 191 of the network card 173 as an interrupt purge bit to 1) If the value of the interrupt version bit copied to RAM172 is 1 larger than the backup value of the interrupt version bit, the copy of the interrupt status to RAM172 is not synchronized. If it is possible to determine whether or not it is possible to synchronize the copy of the interrupt status to the RAM 172 and to determine whether the power is correct, it is determined that the bit is assigned to the interrupt version bit. Needless to say, the number of dots and the value incremented each time may be different.
  • the present invention can be applied even when polling is performed at regular intervals with a timer or the like aiming at reducing the number of power interrupts described for interrupt processing.
  • the hardware interrupt processing interrupt processing by the interrupt from the network card
  • the interrupt generated by the timer is interrupted by the interrupt generated by the timer.
  • a similar process can be performed instead of the process.
  • processing steps for describing a program for causing a computer to perform various types of processing need not be performed in time series according to the order described in the flowchart. It includes processes that are executed individually (for example, parallel processing or object processing).
  • the program may be processed by one computer or may be distributedly processed by a plurality of computers. Furthermore, the program may be transferred to a remote computer and executed.
  • the system represents the entire apparatus composed of a plurality of apparatuses.

Abstract

本発明は、割込処理を簡素化し、割込処理に要する時間を削減することができる情報処理装置および情報処理方法、並びにプログラムに関する。割込発生部140は割込信号を発生する。割込ステータス保持部142は、割込信号の発生原因を表す割込ステータスを記憶する。割込ステータス供給部141は、割込ステータス保持部により記憶される割込ステータスをRAMに供給し、記憶させる。CPUは、RAMに記憶される割込ステータスに応じて、所定の処理を実行する。本発明は、例えば、ネットワークカードに適用することができる。

Description

明 細 書
情報処理装置および情報処理方法、並びにプログラム
技術分野
[0001] 本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、割 込処理を簡素化し、割込処理に要する時間を削減することができるようにする情報処 理装置および情報処理方法、並びにプログラムに関する。
背景技術
[0002] 図 1は、ディスクリプタを用いて DMA (Direct Memory Access)転送を行うネットヮー クカードを備えたパーソナルコンピュータ(以下、パソコンという) 1の一例を示すブロッ ク図である。
[0003] 図 1に示されるように、 CPU (Central Processing Unit) 11は、バス 14を介して、 ROM (Read Only Memory) 12と RAM (Random Access Memory) 13に接続される。 CPU11 は、 ROMl 2に記憶されているプログラム、または記録部 18に記録されているプロダラ ムにしたがって各種の処理を実行する。
[0004] 例えば、 CPU11は、 RAM 13のディスクリプタ領域 31 (後述する)に、 DMA転送の対 象であるパケットが記憶される、 RAM13のパケット領域 32のアドレスやパケットのサイ ズ (長さ)などを、ディスクリプタとして記憶させることにより、ネットワークカード 19に、 そのパケットを DMA転送させる。
[0005] また、 CPU11は、ネットワークカード 19から供給される割込信号に応じて、ネットヮ ークカード 19に記憶されている、割込信号の発生原因 (ステータス)を表す割込ステ 一タスを読み出し、その割込ステータスに対応する割込ステータス処理を行うことによ り、割込処理を行う。
[0006] RAM13は、ディスクリプタが記憶されるディスクリプタ領域 31、および DMA転送の 対象であるパケットが記憶されるパケット領域 32など力も構成される。
[0007] CPU11にはまた、バス 14を介して入出力インターフェース 15が接続されている。
入出力インターフェース 15には、キーボード、マウスなどよりなる入力部 16、 LCD (Li が接続されている。 CPU11は、入力部 16から入力される指令に対応して各種の処理 を実行する。そして、 CPU11は、処理の結果得られた画像や音声などを出力部 17に 出力する。
[0008] 入出力インターフェース 15に接続されている記録部 18は、例えば、ハードディスク などで構成され、 CPU 11が実行するプログラムや各種のデータを記録する。ネットヮ ークカード 19は、 DMA転送を行う。具体的には、ネットワークカード 19は、 RAM13の ディスクリプタ領域 31に記憶されるディスクリプタに基づいて、 RAM13のパケット領域 32に記憶されるパケットを読み出し、そのパケットを、図示せぬネットワークを介して 他の装置に送信する。また、ネットワークカード 19は、図示せぬネットワークを介して 、他の装置力 パケットを受信し、そのパケットを、ディスクリプタに基づいて、 RAM13 のパケット領域 32に記憶させる。
[0009] さらに、ネットワークカード 19は、割込信号を発生し、 CPU11に供給するとともに、 割込ステータスを設定して記憶する。
[0010] 入出力インターフェース 15に接続されているドライブ 20は、磁気ディスク、光デイス ク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア 21が装着された とき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取 得されたプログラムやデータは、必要に応じて記録部 18に転送され、記録される。
[0011] 図 2は、図 1のネットワークカード 19の機能的構成例を示すブロック図である。
[0012] 図 2のネットワークカード 19は、 DMA転送部 51、パケット通信部 52、割込発生部 53 、および割込ステータス保持部 54から構成される。
[0013] DMA転送部 51は、 DMA転送を制御する。具体的には、 DMA転送部 51は、 CPU1 1力も供給される DMA転送の要求に応じて、ディスクリプタ領域 31 (図 1)力もディスク リプタを読み出す。そして、 DMA転送部 51は、そのディスクリプタに基づいて、 DMA 転送の対象であるパケットをパケット領域 32から読み出してパケット通信部 52に供給 したり、パケット通信部 52から供給されるパケットをパケット領域 32に記憶する。また、 DMA転送部 51は、パケット通信部 52から供給される、パケット通信部 52による処理 の状態 (例えば、パケットの送信完了状態、受信完了状態、送受信のエラー状態など )を表す状態情報を割込発生部 53に供給する。 [0014] パケット通信部 52は、図示せぬネットワークを介して、 DMA転送部 51からのパケット を、他の装置に送信する。また、パケット通信部 52は、図示せぬネットワークを介して 、他の装置力 パケットを受信し、 DMA転送部 51に供給する。さらに、パケット通信部 52は、状態情報を DMA転送部 51に供給する。
[0015] 割込発生部 53は、 DMA転送部 51からの状態情報に応じて、割込信号を発生させ 、 CPU11に供給する。また、割込発生部 53は、その状態情報に応じて、割込ステー タスを設定し、その割込ステータスを割込ステータス保持部 54に供給して記憶させる
[0016] 割込ステータス保持部 54は、割込発生部 53からの割込ステータスを保持する。割 込ステータス保持部 54は、 CPU11からの要求に応じて、割込ステータスをクリア (解 除)する。
[0017] 次に、図 3を参照して、ノ ソコン 1による割込発生処理について説明する。
[0018] ステップ S11において、ネットワークカード 19の割込発生部 53は、 DMA転送部 51 力もの状態情報に応じて、割込信号を発生し、その割込信号を CPU11に通知 (送信) して、ステップ S 12に進む。
[0019] ステップ S1において、 CPU11は、割込発生部 53からの割込信号を受信し、ステツ プ S2に進む。ステップ S2において、 CPU11は、ネットワークカード 19に割込ステータ スの読出を要求し、ステップ S3に進む。
[0020] ステップ S12において、ネットワークカード 19の割込ステータス保持部 54は、 CPU1
1からの割込ステータスの読出の要求を受信し、ステップ S 13に進む。ステップ S 13 において、割込ステータス保持部 54は、割込ステータスの読出の要求に応じて、い ま保持している割込ステータスを通知(送信)し、ステップ S 14に進む。
[0021] ステップ S3において、 CPU11は、割込ステータス保持部 54力も割込ステータスを 受信し、ステップ S4に進む。ステップ S4において、 CPU11は、その割込ステータスに 対応する割込ステータス処理を行う。
[0022] 例えば、割込ステータスが、パケット通信部 52による、 DMA転送の対象であるパケ ットの送信の完了を表す割込ステータスである場合、 CPU11は、割込ステータス処理 として、送信が完了されたパケットが記憶されているパケット領域 32に対する解放を 行う。
即ち、 CPU11は、パケット領域 32に記憶されている、送信が完了されたパケットを削 除する。
[0023] ステップ S4の処理後は、ステップ S5に進み、 CPU11は、割込ステータス保持部 54 に保持されている割込ステータスのクリアを、ネットワークカード 19に要求し、処理を 終了する。以上のように、 CPU11は、ステップ S1で割込発生部 53から供給される割 込信号に応じて、割込処理として、ステップ S2乃至 S5の処理を行い、処理を終了す る。
[0024] ステップ S14において、ネットワークカード 19の割込ステータス保持部 54は、 CPU1 1からの割込ステータスのクリアの要求を受信し、その要求に応じて、割込ステータス をクリアする。即ち、割込ステータス保持部 54は、保持している割込ステータス (信号 )の各ビットをクリアする。
[0025] ところで、従来、割込処理を行う装置において、割込通知に関する処理の負荷を軽 減するための様々な方法が提案されている。例えば、割込発生装置と割込処理装置 との間に、割込集約手段を設け、多重割込を防止する割り込み処理システムがある( 例えば、特許文献 1参照)。
[0026] また、 DMA転送が完了した場合、外部 I/F (Interface)機器の DMAコントローラ力 C PUに割込信号を発生せず、外部 I/F機器内のステータスレジスタに記憶される割込 信号のステータスのみを更新し、 CPUが、所定時間毎に発生されるタイマ割込に応じ て、そのステータスレジスタに記憶されるステータスを参照することにより、割込の通 知回数を減少させるデータ転送システムがある (例えば、特許文献 2参照)。
[0027] 特許文献 1:特許第 3549703号明細書
特許文献 2:特開平 11— 212904号公報
発明の開示
発明が解決しょうとする課題
[0028] 一般的に、 CPU11がバス 14を介して行う RAM13へのアクセスに比べて、バス 14と 入出力インターフェース 15を介して行う、ネットワークカード 19の割込ステータス保持 部 54などのレジスタへのアクセスは多くの時間を要する。 [0029] 従って、図 3のステップ S2と S3で説明した、 CPU11が割込ステータス保持部 54か ら割込ステータスを読み出す処理 (以下、読出処理という)は、多くの時間を要する。
[0030] 一方、割込ステータス処理に要する時間は、読出処理に要する時間に比べて少な い。また、割込ステータス処理に要する時間は、 CPU11の処理能力の向上に伴って 減少する。
即ち、割込ステータス処理に要する時間と読出処理に要する時間との差は、 CPU11 の処理能力の向上に伴って、大きくなる。
[0031] そこで、読出処理における CPU11のネットワークカード 19へのアクセスを削減する ことにより、割込処理の簡素化および割込処理に要する時間の削減を行い、 CPU 11 の負荷を軽減することが望ま 、。
[0032] 本発明は、このような状況に鑑みてなされたものであり、割込処理を簡素化し、割込 処理に要する時間を削減することができるようにするものである。
課題を解決するための手段
[0033] 本発明の第 1側面の情報処理装置は、割込信号を発生する発生手段と、発生手段 により発生される割込信号の発生原因を表すステータスを記憶する第 1の記憶手段と 、第 1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行手段 とを備え、発生手段は、割込信号のステータスを記憶する第 2の記憶手段と、第 2の 記憶手段により記憶されるステータスを、第 1の記憶手段に記憶させる記憶制御手段 とを備える。
[0034] 実行手段が第 1の記憶手段に記憶されているステータスを読み出すために必要と なる第 1の時間は、実行手段が第 2の記憶手段に記憶されているステータスを読み出 すために必要となる第 2の時間よりも短いものとすることができる。
[0035] 第 2の記憶手段には、第 1の記憶手段により記憶される第 1のステータスと、第 2の 記憶手段により記憶される第 2のステータスとが同期している力否かを判定するため の判定情報の第 1の記憶領域を含ませることができ、第 1の記憶手段には、判定情報 を記憶する第 2の記憶領域が設けられるとともに、第 2の記憶領域とは異なる領域で あって、判定情報を一時保持する第 3の記憶領域が更に設けられるものとすることが でき、記憶制御手段には、第 2の記憶手段により記憶されるステータスを、第 1の記憶 手段に記憶させるとともに、第 2の記憶手段の第 1の記憶領域に記録される判定情報 を、第 1の記憶手段の第 2の記憶領域に更に記憶させるようにすることができ、実行 手段には、所定の処理を実行する場合、第 2の記憶領域に記憶された判定情報と、 第 3の記憶領域に記憶された判定情報を基に、第 1の記憶手段により記憶される第 1 のステータスと、第 2の記憶手段により記憶される第 2のステータスとが同期していると 判断された場合、第 1の記憶手段により記憶される第 1のステータスに応じて所定の 処理を実行させるようにすることができ、第 2の記憶領域に記憶された判定情報と、第 3の記憶領域に記憶された判定情報を基に、第 1の記憶手段により記憶される第 1の ステータスと、第 2の記憶手段により記憶される第 2のステータスとが同期していないと 判断された場合、第 2の記憶手段により記憶される第 2のステータスに応じて所定の 処理を実行させるよう〖こすることができる。
[0036] 判定情報は、数値で表されるものとすることができ、実行手段には、第 1のステータ スまたは第 2のステータスに応じて所定の処理を実行した後、第 1の記憶領域に記憶 された判定情報と同一の値を、第 3の記憶領域に記憶させるとともに、第 1の記憶領 域に記憶された判定情報の値に 1を加えさせることができ、次に所定の処理を実行 する場合、第 2の記憶領域に記憶された判定情報と、第 3の記憶領域に記憶された 判定情報を比較し、第 2の記憶領域に記憶された判定情報の値が、第 3の記憶領域 に記憶された判定情報の値よりも 1大きければ、第 1の記憶手段により記憶される第 1 のステータスと、第 2の記憶手段により記憶される第 2のステータスとが同期していると 判断して第 1の記憶手段により記憶される第 1のステータスに応じて所定の処理を実 行させることができ、それ以外であれば、第 1の記憶手段により記憶される第 1のステ 一タスと、第 2の記憶手段により記憶される第 2のステータスとが同期していないと判 断して第 2の記憶手段により記憶される第 2のステータスに応じて所定の処理を実行 させることがでさる。
[0037] 本発明の第 2の側面の情報処理装置は、割込信号を発生する発生手段と、発生手 段により発生される割込信号の発生原因を表すステータスを記憶する記憶手段と、 記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理を実行 する他の情報処理装置に記憶させる記憶制御手段とを備える。 [0038] 記憶手段には、記憶手段により記憶されるステータスと、他の情報処理装置に記憶 されるステータスとが同期しているか否かを判定するための判定情報を更に記憶させ るようにすることができ、記憶制御手段には、ステータスとともに、判定情報を他の情 報処理装置に記録させるようにすることができる。
[0039] 本発明の第 2の側面の情報処理方法は、割込信号を発生する発生ステップと、発 生ステップの処理により発生される割込信号のステータスを記憶手段に記憶させる第 1の記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに 応じて所定の処理を実行する他の情報処理装置に記憶させる第 2の記憶制御ステツ プとを含む。
[0040] 本発明の第 2の側面のプログラムは、割込信号を発生する発生ステップと、発生ス テツプの処理により発生される割込信号のステータスを記憶手段に記憶させる第 1の 記憶制御ステップと、記憶手段により記憶されるステータスを、そのステータスに応じ て所定の処理を実行する他の情報処理装置に記憶させる第 2の記憶制御ステップと を含む。
[0041] 本発明の第 3の側面の情報処理装置は、他の情報処理装置から供給される割込信 号のステータスを記憶する記憶手段と、記憶手段により記憶されるステータスに応じ て、所定の処理を実行する実行手段とを備える。
[0042] 記憶手段には、他の情報処理装置から、ステータスとともに、記憶手段により記憶さ れるステータスと、他の情報処理装置に記憶されるステータスとが同期している力否 かを判定するための判定情報を更に取得して、ステータスと判定情報とを記憶させる ようにすることができ、実行手段には、判定情報を基に、記憶手段により記憶されるス テータスと、他の情報処理装置に記憶されるステータスとが同期している力否かを判 定して、同期していると判定された場合、記憶手段により記憶されるステータスに応じ て、所定の処理を実行させるようにすることができ、同期していないと判定された場合 、他の情報処理装置から、ステータスを取得して、他の情報処理装置から取得された ステータスに応じて、所定の処理を実行させるようにすることができる。
[0043] 割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記憶する 割込処理記憶手段をさらに設けさせるようにすることができ、実行手段には、割込処 理記憶手段に記憶されるテーブルに基づいて、所定の処理を実行させるようにする ことができる。
[0044] 本発明の第 3の側面の情報処理方法は、他の情報処理装置力 供給される割込信 号のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記 憶されるステータスに応じて、所定の処理を実行する実行ステップとを含む。
[0045] 本発明の第 3の側面のプログラムは、他の情報処理装置から供給される割込信号 のステータスを記憶させる記憶制御ステップと、記憶制御ステップの処理により記憶さ れるステータスに応じて、所定の処理を実行する実行ステップとを含む。
[0046] 本発明の第 1の側面においては、割込信号を発生し、その割込信号の発生原因を 表すステータスを第 2の記憶手段に記憶し、そのステータスを第 1の記憶手段に記憶 させる。そして、第 1の記憶手段に記憶されるステータスに応じて、所定の処理を実行 する。
[0047] 本発明の第 2の側面においては、割込信号を発生し、その割込信号の発生原因を 表すステータスを記憶し、そのステータスを、そのステータスに応じて所定の処理を 実行する他の情報処理装置に記憶させる。
[0048] 本発明の第 3の側面においては、他の情報処理装置から供給される割込信号のス テータスを記憶し、そのステータスに応じて、所定の処理を実行する。
発明の効果
[0049] 本発明によれば、割込処理を簡素化し、割込処理に要する時間を削減することが できる。
図面の簡単な説明
[0050] [図 1]従来のパーソナルコンピュータの一例を示すブロック図である。
[図 2]図 1のネットワークカードの機能的構成例を示すブロック図である。
[図 3]図 1のパソコンによる割込発生処理について説明するアローチャートである。
[図 4]本発明を適用した情報処理システムの一実施の形態の構成例を示すブロック 図である。
[図 5]図 4のパソコンのハードウェア構成例を示すブロック図である。
[図 6]図 5のネットワークカードの機能的構成例を示すブロック図である。 [図 7]割込処理テーブルの例を示す図である。
[図 8]CPUによる DMA転送要求処理について説明するフローチャートである。
[図 9]ネットワークカードによる DMA転送処理について説明するフローチャートである
[図 10]ネットワークカードによる割込ステータスのコピー処理について説明するフロー チャートである。
[図 11]CPUによる割込処理 1について説明するフローチャートである。
[図 12]パソコンによる割込発生処理について説明するアローチャートである。
[図 13]パソコンによる割込発生処理で動作に不具合が発生する場合について説明 するアローチャートである。
[図 14]パーソナルコンピュータの構成を示すブロック図である。
[図 15]図 14のネットワークカードの機能的構成例を示すブロック図である。
[図 16]割込処理テーブルの例を示す図である。
[図 17]初期化処理について説明するフローチャートである。
[図 18]CPUによる割込処理 2について説明するフローチャートである。
[図 19]パソコンによる割込発生処理について説明するアローチャートである。
[図 20]パソコンによる割込発生処理について説明するアローチャートである。
符号の説明
[0051] 51 DMA転送部, 52 パケット通信部, 101 パーソナルコンピュータ, 111 CPU, 112 RAM, 113 ネットワークカード, 140 割込発生部, 141 割込ス テータス供給部, 142 割込ステータス保持部, 161 パーソナルコンピュータ, 171 CPU, 172 RAM, 173 ネットワークカード, 182 割込バージョンビット ノ ックアップ領域, 191 割込ステータス保持部
発明を実施するための最良の形態
[0052] 以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細 に説明する。
[0053] 図 4は、本発明を適用した情報処理システム 100の一実施の形態の構成例を示す ブロック図である。 [0054] 図 4の情報処理システム 100は、パソコン 101、ネットワーク 102、およびパソコン 10 3から構成される。
[0055] パソコン 101とパソコン 103は、例えば、 LAN (Local Area Network)、またはインタ 一ネットなどのネットワーク 102を介して接続されており、相互に通信を行う。例えば、 ノ ソコン 101とパソコン 103は、 TCP (Transmission Control Protocol)や IP (Internet Protocol)などに準拠したヘッダが付加されたパケット(データ)を相互に通信する。
[0056] 図 5は、図 4のパソコン 101のハードウェア構成例を示すブロック図である。なお、図 1と同一のものには、同一の符号を付してあり、説明は省略する。
[0057] 図 5のパソコン 101は、 R0M12、バス 14、入出力インターフェース 15、入力部 16、 出力部 17、記録部 18、ドライブ 20、 CPU111、 RAMI 12、およびネットワークカード 1 13から構成される。
[0058] CPU111は、バス 14を介して、 R0M12と RAMI 12に接続される。 CPU111は、 R0 Ml 12に記憶されているプログラム、または記録部 18に記録されているプログラムに したがって各種の処理を実行する。
[0059] 例えば、 CPU111は、 RAMI 12のディスクリプタ領域 31に、 DMA転送の対象であ るパケットが記憶される、 RAMI 12のパケット領域 32のアドレスやパケットのサイズな どを、ディスクリプタとして記憶させることにより、ネットワークカード 113に、そのバケツ トを DMA転送させる。
[0060] また、 CPU111は、ネットワークカード 113から供給される割込信号に応じて、割込 処理を行う。具体的には、 CPU111は、 RAM112の割込ステータス領域121 (後述 する)に記憶されている、割込信号の発生原因 (ステータス)を表す割込ステータスを 読み出す。そして、 CPU111は、 RAMI 12の割込処理テーブル領域 122に記憶さ れる、割込ステータス処理と割込ステータスが表すステータスとが対応付けられて ヽ る割込処理テーブル 160(後述する図 7)に基づ ヽて、読み出した割込ステータスに対 応する割込ステータス処理を行う。
[0061] RAM112は、ディスクリプタ領域 31、パケット領域 32、割込ステータス領域 121、お よび割込処理テーブル領域 122などカゝら構成される。
[0062] 割込ステータス領域 121には、ネットワークカード 113から供給される割込ステータ スが記憶される。また、割込処理テーブル領域 122には、 CPU111により予め設定さ れた割込処理テーブル 160が記憶されて 、る。
[0063] ネットワークカード 113は、例えば、マイクロコンピュータなどにより構成され、所定の プログラムを実行することにより、 DMA転送を行う。具体的には、ネットワークカード 11 3は、 RAMI 12のディスクリプタ領域 31に記憶されるディスクリプタに基づいて、 RAM 112のパケット領域 32に記憶されるパケットを読み出し、そのパケットを、ネットワーク 102を介してパソコン 103に送信する。また、ネットワークカード 113は、ネットワーク 1 02を介して、パソコン 103からパケットを受信し、そのパケットを、ディスクリプタに基 づいて、 RAMI 12のパケット領域 32に記憶させる。
[0064] さらに、ネットワークカード 113は、割込信号を発生し、 CPU111に供給する。また、 割込ステータスを設定して記憶するとともに、その割込ステータスを RAMI 12の割込 ステータス領域 121に供給して記憶させる。
[0065] なお、図 4のパソコン 103は、パソコン 101と同様に構成されるので、説明は省略す る。
[0066] 図 6は、図 5のネットワークカード 113が所定のプログラムを実行することにより有す る機能の構成例を示すブロック図である。なお、図 2と同一のものには同一の符号を 付してある。
[0067] 図 6のネットワークカード 113は、 DMA転送部 51、パケット通信部 52、割込発生部 1 40、割込ステータス供給部 141、および割込ステータス保持部 142から構成される。 なお、図 6のパケット通信部 52は、ネットワーク 102を介してパケットの通信を行う。
[0068] 割込発生部 140は、 DMA転送部 51からの状態情報に応じて、割込信号を発生さ せ、 CPU11に供給する。また、割込発生部 140は、その状態情報に応じて、割込ス テータスを設定し、その割込ステータスを割込ステータス保持部 142に供給して記憶 (更新)させる。割込発生部 140は、割込ステータスの更新を、割込ステータス供給部 141に通知する。
[0069] 割込ステータス供給部 141は、割込発生部 140からの通知に応じて、割込ステータ ス保持部 142から割込ステータスを読み出し、その割込ステータスを、 RAMI 12の割 込ステータス領域 121 (図 5)に供給して記憶させる。また、割込ステータス供給部 14 1は、 CPU111からの要求に応じて、割込ステータス保持部 142に保持されている割 込ステータス (信号)の各ビットをクリア (消去)する。割込ステータス保持部 142は、割 込発生部 140からの割込ステータスを保持する。
[0070] 図 7は、図 5の割込処理テーブル領域 122に記憶される割込処理テーブル 160の 例を示している。図 5の割込処理テーブル領域 122に記憶されるデータは、割込ステ 一タス保持部 142から読み出されて割込ステータス保持部 142に保持されている割 込ステータスと割込ステータス処理とが対応付けられているものである。すなわち、割 込ステータス保持部 142から読み出されて割込ステータス保持部 142に保持されて いる割込ステータス (信号)は 32ビットからなり、図 7と同様のビット配分で情報が記載 されているものとする。
[0071] 図 7の割込処理テーブル 160では、割込ステータス処理力 割込ステータスが表す ステータスと、そのステータスが割り当てられた割込ステータスのビットとに対応付けら れている。ここで、割込ステータスの所定のビットが「1」である場合、割込ステータスは 、そのビットに割り当てられたステータスを表しているものとする。
[0072] 例えば、割込処理テーブル 160では、パケット通信部 52により送信が完了されたパ ケットが記憶されている RAMI 12のパケット領域 32に対する解放を行う処理力 割込 ステータス処理として、パケット通信部 52によるパケットの送信の完了であるステータ ス(以下、送信完了ステータスという)と割込ステータスの下位 0ビットとに対応付けら れている。
[0073] 即ち、 CPU111は、割込ステータスの下位 0ビット目(下位力も 0ビット目)が「1」であ る場合 (割込ステータスが完了ステータスを表している場合)、割込ステータスに対応 する割込ステータス処理として、 RAMI 12のパケット領域 32に対する解放を行う。
[0074] また、割込処理テーブル 160では、パケット通信部 52により受信されたパケットが記 憶されて 、るパケット領域 32からパケットを読み出し、そのパケットを用いて所定の処 理を行う処理が、割込ステータス処理として、パケット通信部 52によるパケットの受信 の完了であるステータス(以下、受信完了ステータスという)と割込ステータスの下位 1 ビットとに対応付けられて 、る。
[0075] さらに、割込処理テーブル 160では、ネットワークカード 113をリセットする処理が、 割込ステータス処理として、パケット通信部 52によるパケットの送信または受信のエラ 一であるステータス(以下、エラーステータスという)と割込ステータスの下位 2ビットと に対応付けられている。
[0076] なお、割込ステータスの表すステータスは、 1つであっても、複数であってもよ 、。例 えば、割込ステータスの 32ビットのうち、下位 0ビット目と下位 1ビット目とが「1」である 場合、その割込ステータスは、送信完了ステータスと受信完了ステータスの両方を表 している。
[0077] 次に、図 8を参照して、図 5の CPU111による DMA転送要求処理につ!、て説明する
。この DMA転送要求処理は、例えば、ユーザが入力部 16を操作することにより、パソ コン 103へのパケットの送信を指令したとき、開始される。
[0078] ステップ S31において、 CPU111は、パソコン 103に送信するパケット、即ち DMA転 送の対象とするパケットを、 RAMI 12のパケット領域 32に記憶させ、ステップ S32に 進む。
[0079] ステップ S32において、 CPU111は、ステップ S31でパケットが記憶されるパケット 領域 32のアドレスやパケットのサイズなどの情報に基づ 、て、ディスクリプタを生成し 、ディスクリプタ領域 31に記憶させて、ステップ S33に進む。
[0080] ステップ S33において、 CPU111は、ネットワークカード 113に DMA転送を要求し、 処理を終了する。
[0081] なお、図 8では、 CPU111がネットワークカード 113に DMA転送を要求し、ノ ケットを パソコン 103に送信させる場合について説明した力 パケットをパソコン 103から受信 させる場合につ!、ても同様の処理が行われる。
[0082] この場合、ステップ S31の処理は行われず、ステップ S32で生成されるディスクリプ タには、受信されるパケットを記憶させるパケット領域 32のアドレスなどの情報が記憶 される。
[0083] 次に、図 9を参照して、図 6のネットワークカード 113による DMA転送処理について 説明する。この DMA転送処理は、例えば、図 8のステップ S33で CPU111により DMA 転送が要求されたとき、開始される。
[0084] ステップ S51において、 DMA転送部 51は、図 8のステップ S32でディスクリプタ領域 31に記憶されたディスクリプタに基づいて、 DMA転送を行う。具体的には、 DMA転送 部 51は、ディスクリプタに基づいて、パケット領域 32からパケットを読み出し、ノ ケット 通信部 52を介してパソコン 103に送信させる力、またはパケット領域 32にパケット通 信部 52により受信されたパケットを記憶させる。
[0085] ステップ S51の処理後は、ステップ S52に進み、パケット通信部 52は、パケットの送 信または受信のエラーが発生した力どうかを判定し、エラーが発生して 、な 、と判定 された場合、ステップ S53に進む。
[0086] ステップ S53において、 DMA転送部 51は、ディスクリプタに基づいて、 DMA転送の 対象とするパケットがあるかどうかを判定し、 DMA転送の対象とするパケットがあると 判定された場合、ステップ S51に戻り、上述した処理を繰り返す。
[0087] 一方、ステップ S52においてエラーが発生したと判定された場合、パケット通信部 5
2は、エラーを表す状態情報を、 DMA転送部 51を介して割込発生部 140に供給して
、ステップ S 54に進む。
[0088] また、ステップ S53において DMA転送の対象とするパケットがないと判定された場 合、パケット通信部 52は、送信または受信の完了を表す状態情報を、 DMA転送部 5
1を介して割込発生部 140に供給し、ステップ S 54に進む。
[0089] ステップ S54において、割込発生部 140は、 DMA転送部 51からの状態情報に応じ て、割込ステータスを設定し、その割込ステータスを、割込ステータス保持部 142に 保持させる。
[0090] 例えば、 DMA転送部 51からエラーを表す状態情報が供給される場合、割込発生 部 140は、割込ステータスを、エラーステータスを表す割込ステータスに設定して、下 位 2ビット目力 S「1」の 32ビットの割込ステータスを、割込ステータス保持部 142に保持 させる。また、 DMA転送部 51から送信または受信の完了を表す状態情報が供給され る場合、割込発生部 140は、割込ステータスを、送信完了ステータスまたは受信完了 ステータスを表す割込ステータスに設定して、下位 0ビット目または下位 1ビット目が「 1」の 32ビットの割込ステータスを、割込ステータス保持部 142に保持させる。
[0091] ステップ S54の処理後は、ステップ S55に進み、割込発生部 140は、割込ステータ スの更新を割込ステータス供給部 141に通知し、ステップ S56に進む。 [0092] ステップ S56において、割込発生部 140は、割込信号を発生して、 CPU111に供給 し、処理を終了する。
[0093] 次に、図 10を参照して、ネットワークカード 113による割込ステータスのコピー処理 について説明する。
[0094] ステップ S71において、割込ステータス供給部 141は、割込ステータスが更新され た力どうかを判定する。具体的には、図 9のステップ S55で割込ステータスの更新が 通知された場合、または CPU111からの要求に応じて割込ステータスがクリアされた 場合、割込ステータス供給部 141は、割込ステータスが更新されたと判定し、それ以 外の場合、割込ステータスが更新されて 、な 、と判定する。
[0095] ステップ S71にお 、て、割込ステータスが更新されて 、な 、と判定された場合、割 込ステータス供給部 141は、割込ステータスが更新されるまで待機する。
[0096] 一方、ステップ S71にお 、て、割込ステータスが更新されたと判定された場合、ステ ップ S72に進み、割込ステータス供給部 141は、割込ステータス保持部 142から割込 ステータスを読み出し、ステップ S73に進む。
[0097] ステップ S73において、割込ステータス供給部 141は、ステップ S72で読み出した 割込ステータスを RAMI 12の割込ステータス領域 121にコピーする。即ち、割込ステ 一タス供給部 141は、割込ステータスを RAMI 12に供給する。 RAM112は、その割 込ステータスを割込ステータス領域 121に記憶させる。
[0098] 次に、図 11を参照して、 CPU111による割込処理 1について説明する。この割込処 理 1は、例えば図 9のステップ S56で割込発生部 140により割込信号が供給されたと き、開始される。
[0099] ステップ S91において、 CPU111は、 RAMI 12の割込ステータス領域 121から割込 ステータスを読み出し、ステップ S92に進む。
[0100] ステップ S92において、 CPU111は、 RAM 112の割込処理テーブル領域 121に記 憶される割込処理テーブル 160に基づいて、ステップ S91で読み出した割込ステー タスが表すステータス力 送信完了ステータスであるかどうか、即ち割込ステータスの 32ビットのうち下位 0ビット目力 「1」であるかどうかを判定し、ステータスが送信完了ス テータスであると判定した場合、ステップ S93に進む。 [0101] ステップ S93において、 CPU111は、割込処理テーブル 160に基づいて、送信完 了ステータスに対応する割込ステータス処理として、パケット通信部 52により送信が 完了されたパケットが記憶されている、 RAMI 12のパケット領域 32に対する解放を行 う。即ち、 CPU111は、パケット領域 32に記憶されている、送信が完了されたパケット を削除する。
[0102] ステップ S92でステータスが送信完了ステータスではないと判定された場合、また はステップ S93の処理後は、ステップ S94に進み、 CPU111は、割込処理テーブル 1 60に基づいて、ステップ S91で読み出した割込ステータスが表すステータス力 受信 完了ステータスであるかどうか、即ち割込ステータスの 32ビットのうち下位 1ビット目が 「1」であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合 、ステップ S 95に進む。
[0103] ステップ S95において、 CPU111は、割込処理テーブル 160に基づいて、受信完 了ステータスに対応する割込ステータス処理として、パケット通信部 52により受信さ れ、 RAMI 12のパケット領域 32に記憶されたパケットを読み出し、そのパケットを用い て所定の処理を行う。例えば、 CPU111は、そのパケットを用いて、パケットに対応す る画像を出力部 17に表示させる処理を行う。
[0104] ステップ S94でステータスが受信完了ステータスではないと判定された場合、また はステップ S95の処理後は、ステップ S96〖こ進み、 CPU111は、割込処理テーブル 1 60に基づいて、ステップ S91で読み出した割込ステータスが表すステータス力 エラ 一ステータスであるかどうか、即ち割込ステータスの 32ビットのうち下位 2ビット目が「1 」であるかどうかを判定する。
[0105] ステップ S96において、ステータスがエラーステータスであると判定された場合、即 ちパケット領域 32から読み出された送信対象のパケットや、まだパケット領域 32に記 憶されていない、受信されたパケットの信頼性が保証されていない場合、ステップ S9 7に進む。
[0106] ステップ S97において、 CPU111は、割込処理テーブル 160に基づいて、ェラース テータスに対応する割込ステータス処理として、ネットワークカード 113をリセットする [0107] 具体的には、 CPU111は、例えば、ネットワークカード 113の DMA転送部 51による 、 DMA転送の制御に用いられるレジスタの初期化、およびパケット通信部 52により送 受信中のパケットの破棄を行う。
[0108] ステップ S96でステータスがエラーステータスではないと判定された場合、またはス テツプ S97の処理後は、ステップ S98に進み、 CPU111は、割込ステータスのクリアを ネットワークカード 113に要求し、処理を終了する。
[0109] 以上のように、パソコン 101では、ネットワークカード 113の割込ステータス供給部 1 41が、割込ステータスを RAM 112の割込ステータス領域 121に記憶させるので、 CP U111は、割込処理において、 RAMI 12から割込ステータスを読み出すことができる 。即ち、 CPU111は、ネットワークカード 113の割込ステータス保持部 142から割込ス テータスを読み出す必要がない。その結果、ノ ソコン 101では、図 3で説明した従来 の場合に比べて、割込処理を簡素化し、割込処理に要する時間を削減することがで きる。
[0110] 次に、図 12を参照して、ノ^/コン 101による割込発生処理について説明する。
[0111] ステップ S151において、ネットワークカード 113の割込ステータス供給部 141は、 割込ステータスを RAM 112の割込ステータス領域 121に供給し、ステップ S 152に進 む。
[0112] ステップ S131〖こおいて、 RAM 112の割込ステータス領域 121は、割込ステータス 供給部 141からの割込ステータスを記憶する。即ち、割込ステータス供給部 141から の割込ステータスは、割込ステータス領域 121にコピーされる。
[0113] ステップ S152において、ネットワークカード 113の割込発生部 140は、 DMA転送部
51からの状態情報に応じて、割込信号を発生し、その割込信号を CPU111に通知し て、ステップ S 153に進む。
[0114] ステップ S111において、 CPU111は、割込発生部 140からの割込信号を受信し、 ステップ S 112【こ進む。ステップ S 112【こお!ヽて、 CPUl l liま、 RAMI 12【こ害 ij込ステ 一タスの読出を要求し、ステップ S 113〖こ進む。
[0115] ステップ S131の処理後は、ステップ S132に進み、 RAM 112の割込ステータス領 域 121は、 CPU111からの割込ステータスの読出の要求を受信し、ステップ S133に 進む。ステップ S133において、割込ステータス領域 121は、割込ステータスの読出 の要求に応じて、いま記憶 (保持)している割込ステータスを CPU111に通知し、ステ ップ S 134に進む。
[0116] ステップ S113において、 CPU111は、割込ステータス領域 121からの割込ステータ スを受信し、ステップ S114に進む。ステップ S114において、 CPU111は、割込処理 テーブル領域 122に記憶される割込処理テーブル 160に基づ 、て、受信した割込ス テータスに対応する割込ステータス処理を行 ヽ、ステップ S 115に進む。
[0117] ステップ S115において、 CPU111は、割込ステータス保持部 142に保持されてい る割込ステータスのクリアを、ネットワークカード 113に要求し、処理を終了する。 以上のように、 CPU111は、ステップ S 111で割込発生部 53から供給される割込信号 に応じて、割込処理として、ステップ S 112乃至 S 115の処理を行い、処理を終了する
[0118] ステップ S153において、ネットワークカード 113の割込ステータス供給部 141は、 C PU111からの割込ステータスのクリアの要求を受信し、割込ステータス保持部 142に 保持されている割込ステータスの各ビットをクリアし、ステップ S154に進む。
[0119] ステップ S154において、割込ステータス供給部 141は、割込ステータス保持部 14 2に保持されて ヽる割込ステータスを読み出し、 RAM 112に供給して処理を終了する
[0120] ステップ S134において、 RAM 112の割込ステータス領域 121は、割込ステータス 供給部 141からの割込ステータスを受信して記憶する。即ち、割込ステータス保持部 142に保持されている割込ステータス力 割込ステータス領域 121にコピーされる。
[0121] なお、割込信号を発生するデバイスは、ネットワークカード 113に限定されず、例え ばデータストレージなどであってもよ 、。
[0122] 以上のように、ノ ソコン 101では、割込ステータス供給部 141が、割込ステータス保 持部 142に記憶される割込ステータスを、 RAM 112の割込ステータス領域 121に供 給し、割込ステータス領域 121が割込ステータスを記憶するようにしたので、割込処 理を簡素化し、割込処理に要する時間を削減することができる。
[0123] ところで、上述した処理にぉ 、ては、割込発生部から CPUに対して割り込みが発生 した場合、割込ステータス保持部の内容をメモリにコピーして、それを CPUが読み込 み、割り込みの要因を知ることで CPUの負荷の低減を行った。
[0124] 図 12では、ネットワークカード 113のステータスを RAMI 12にコピーした後、割込 通知を行うようになって 、るが、一般にハードウェアカ モリへの書き込みの完了を確 認する機構は、コスト上の問題などやバスの仕様など力も保証できな!、。
[0125] 上述したように、一般的に、 CPUがバスを介して行う RAMへのアクセスに比べて、 C PUがバスと入出力インターフェースを介して行う、ネットワークカードの割込ステータ ス保持部などのレジスタへのアクセスは多くの時間を要する。
[0126] したがって、例えば、 CPU処理速度が高速な場合などにおいては、割込ステータス のコピーが完了する前に割り込み通知を受けた CPUが RAMに記録されている以前 の割込ステータスに基づいて割り込み処理を行ってしまう恐れがある。また、例えば、 バスが込み合つている場合などには、図 13に示されるように、図 12における場合と同 様のタイミングで割込ステータスのコピーが成功せず、 CPUが RAMに記録されて!ヽ る割込ステータスを取得するタイミング力 割込ステータスのコピー成功のタイミング( ステップ S15r)よりも早くなつてしまうので、 RAMに記録されている、以前の(すな わち、古い割り込みに対応する)割込ステータスに基づいて割り込み処理を行ってし まい、割り込みと割り込み処理との同期を取ることが出来なくなってしまう恐れがある。
[0127] そこで、 CPUが、 RAMに記録されている割込ステータス力 正しく更新されたもの であるか否かを判断することができるようにすると、更に好適である。具体的には、ネ ットワークカードの割込ステータス保持部に CPUが使用できる(更新することができる) 割込バージョンビットを用意し、ステータスクリアと同時にその領域にデータを書き込 むようにしておくとともに、 RAMの割込ステータス保持部に保持されている値をコピ 一する領域 (割込ステータス領域)とは異なる領域に、以前の処理における割込バー ジョンビットのバックアップを保存しておくものとする。そして、 CPUは、割り込みが発 生されるたびに、 RAMにコピーされた割込バージョンビットの値とバックアップして!/ヽ た以前の処理における割込バージョンビットの値とを比較して、 RAMにコピーされた ステータスとネットワークカードの割込ステータス保持部に記載されている実際の割り 込みのステータスの同期が取れているかを確認することができるようにすると更に好 適である。
[0128] 図 14は、 RAMにコピーしたステータスと実際の割り込みのステータスの同期を確 認することができるパーソナルコンピュータ 161の構成を示すブロック図である。
[0129] なお、図 5における場合と同一のものには、同一の符号を付してあり、その詳細な説 明は適宜省略する。
[0130] すなわち、図 14のパーソナルコンピュータ 161は、 CPU111に代わって CPU171 が設けられ、 1^^^112に代ゎって1^^1172が設けられ、ネットワークカード 113に 代わってネットワークカード 173が設けられている以外は、図 5を用いて説明したパー ソナルコンピュータ 101と基本的に同様の構成を有するものである。
[0131] また、 RAM172は、割込ステータス領域 121に代わって、割込ステータスビットおよ び割込バージョンビットをネットワークカード 173からコピーして保持することが可能な 割込ステータス領域 181が設けられ、割込処理テーブル領域 122に代わって、図 16 を用いて後述する割込処理テーブルを記憶するテーブル領域 182が設けられ、新た に、 CPU171の処理により割込バージョンビットのバックアップを保持することができ る割込バージョンビットバックアップ領域 183が設けられている以外は、図 5を用いて 説明した RAM 112と基本的に同様の構成を有するものである。
[0132] すなわち、 CPU171は、バス 14を介して、 ROM12と RAM172〖こ接続されており、 ROM112に記憶されているプログラム、または記録部 18に記録されているプログラム にしたがって各種の処理を実行する。例えば、 CPU171は、 RAM172のディスクリ プタ領域 31に、 DMA転送の対象であるパケットが記憶される、 RAM172のパケット領 域 32のアドレスやパケットのサイズなどを、ディスクリプタとして記憶させることにより、 ネットワークカード 173に、そのパケットを DMA転送させる。
[0133] また、 CPU171は、ネットワークカード 173から供給される割込信号に応じて、割込 処理を行う。具体的には、 CPU171は、 RAM172の割込ステータス領域 181に記 憶されている、割込信号の発生原因 (ステータス)を表す割込ステータスとともに、割 込バージョンビットを読み出す。そして、 CPU171は、読み出された割込バージョンビ ットの値を参照し、割込バージョンビットバックアップ領域 183にバックアップされてい る値と比較して、 RAM172にコピーされているステータスとネットワークカード 173の 割込ステータス保持部 191 (図 15)に記載されている実際の割り込みのステータスの 同期が取れて 、る力否かを確認する。
[0134] そして、同期が取れている場合、 CPU171は、 RAM 172の割込処理テーブル領 域 182に記憶されている、割込ステータス処理と割込ステータスが表すステータスと が対応付けられて 、る割込処理テーブルに基づ 、て、 RAM 172の割込ステータス 領域 181から読み出した割込ステータスに対応する割込ステータス処理を行う。一方 、同期が取れていない場合、 CPU171は、ネットワークカード 173の割込ステータス 保持部 191に記載されて 、る実際の割り込みのステータスを読み込んで、 RAM 172 の割込処理テーブル領域 182に記憶される、割込ステータス処理と割込ステータス が表すステータスとが対応付けられている割込処理テーブルに基づいて、読み出し た割込ステータスに対応する割込ステータス処理を行う。
[0135] そして、 CPU171は、割込ステータス処理の終了後、 RAM172の割込バージョン ビットバックアップ領域 183に保持されている値をバックアップする(すなわち、割込ス テータス処理以前の値から 1インクリメントする)。そして、 CPU171は、ネットワーク力 ード 173に保持されている割込ステータス (信号)の各ビットをクリア (消去)させるととも に、割込バージョンビットの値を 1インクリメントさせるように、ネットワークカード 173を 制御する。
[0136] RAM172は、ディスクリプタ領域 31、パケット領域 32、割込ステータス領域 181、 および割込処理テーブル領域 182など力も構成される。
[0137] 割込ステータス領域 181には、ネットワークカード 173から供給される割込ステータ スおよび割込バージョンビットが記憶される。また、割込処理テーブル領域 182には、
CPU171により予め設定された割込処理テーブルが記憶されている。
[0138] 図 16を用いて、割込処理テーブル領域 182に記憶される割込処理テーブルと、割 込ステータス領域 181に記憶される割込ステータスおよび割込バージョンビットに記 載されるデータの構成について説明する。
[0139] 割込処理テーブル領域 182に記憶される割込処理テーブルは、図 16に示される 構成の割込ステータスおよび割込バージョンビットの値を保持して 、る。割込ステー タスについては、図 7を用いて説明した場合と同一である力 更に、上位 4ビット分の 割込バージョンビットが規定され、上位 4ビット分の割込バージョンビットに「1」が書き 込まれた場合であっても、割り込み処理が実行されないようになされている。したがつ て、 RAM172の割込ステータス領域 181にも、図 16に示されるデータ構成の割込ス テータスおよび割込バージョンビットの値が保持される。ここでも、割込ステータス (信 号)および割込バージョンビットの値は、図 7を用いて説明した場合と同様に 32ビット 力 なるものとする。し力しながら、これらのビット数は、 32ビットとは異なるものであつ てもよ 、ことは言うまでもな 、。
[0140] ここでは、割込バージョンビットとして 4ビットが与えられて!/、るので、割込バージョン ビットは 10進数における 0乃至 15の値をとることができる。すなわち、これ以下におい て割込バージョンビットをインクリメントするという場合、 10進数において、 0乃至 14の 値においては、その値に 1が加えられることを示し、また値が 15の場合においては、 その値が 0となることを示す。
[0141] ネットワークカード 173は、例えば、マイクロコンピュータなどにより構成され、所定の プログラムを実行することにより、 DMA転送を行う。具体的には、ネットワークカード 17 3は、 RAM172のディスクリプタ領域 31に記憶されるディスクリプタに基づいて、 RA M172のパケット領域 32に記憶されるパケットを読み出し、そのパケットを、ネットヮー ク 102を介してパソコン 103に送信する。また、ネットワークカード 173は、ネットワーク 102を介して、パソコン 103からパケットを受信し、そのパケットを、ディスクリプタに基 づいて、 RAM172のパケット領域 32に記憶させる。
[0142] さらに、ネットワークカード 173は、割込信号を発生し、 CPU171に供給する。
また、割込ステータスを設定して記憶するとともに、その割込ステータスを、割込バー ジョンビットとともに、 RAM172の割込ステータス領域 181に供給して記憶させる。
[0143] 図 15は、図 14のネットワークカード 173の構成を示すブロック図である。なお、図 6 における場合と同一のものには、同一の符号を付してあり、その詳細な説明は適宜 省略する。
[0144] すなわち、図 15のネットワークカード 173は、割込ステータス保持部 142に代わつ て、割込ステータス保持部 191が設けられている以外は、図 6を用いて説明したネット ワークカード 113と基本的に同様の構成を有し、同様の機能を有するものである。 [0145] すなわち、割込発生部 140は、 DMA転送部 51からの状態情報に応じて、割込信号 を発生させ、 CPU11に供給する。また、割込発生部 140は、その状態情報に応じて、 割込ステータスを設定し、その割込ステータスを割込ステータス保持部 191に供給し て記憶(更新)させる。割込発生部 140は、割込ステータスの更新を、割込ステータス 供給部 141に通知する。
[0146] 割込ステータス供給部 141は、割込発生部 140からの通知に応じて、割込ステータ ス保持部 191から割込ステータスおよび割込バージョンビットを読み出し、読み出さ れた割込ステータスおよび割込バージョンビットを、 RAM172の割込ステータス領域 181に供給して記憶させる。また、割込ステータス供給部 141は、 CPU171からの要 求に応じて、割込ステータス保持部 191に保持されて ヽる割込ステータス (信号)の 各ビットをクリア (消去)するとともに、割込バージョンビットの値を 1インクリメントする。 割込ステータス保持部 191は、割込発生部 140または CPU 171の制御に基づ 、て、 割込ステータスおよび割込バージョンビットの値を保持する。
[0147] 割込ステータス保持部 191は、図 16に示される構成と同様ビット配分の割込ステー タスおよび割込バージョンビットの値を保持することが可能である。また、割込ステー タス保持部 191の 32ビット中の上位 4ビット、すなわち、割込バージョンビットの値が保 持される領域は、 CPU171が自由に使用してもよい。換言すれば、割込バージョンビ ットの値が保持される領域は、 CPU171の制御によりその値を書き換えることが可能 な領域として用意されて 、る。
[0148] 割込ステータス保持部 191に保持されて 、る割込ステータスおよび割込バージョン ビットは、割り込みが発生して、下位の 0ビット目、 1ビット目、 2ビット目に送信完了、受 信完了、および、エラーのそれぞれの割込ステータスの値が変化した場合と、例えば 、割込バージョンビットのインクリメントなど、 CPU171から割込ステータス保持部 191 に保持されている値の変更が指令された場合、 RAM172の割込ステータス領域 18 1にコピーされる。
[0149] なお、パーソナルコンピュータ 161においても、 DMA転送要求処理、および、 DM A転送処理については、図 8および図 9を用いて説明した場合と基本的に同様であり 、コピー処理については、コピーされるデータ力 割込ステータスのみではなぐ割込 ステータスおよび割込バージョンビットであること以外は、図 10を用いて説明した場 合と基本的に同様であるので、これらの処理についての説明は省略する。
[0150] 次に、図 17のフローチャートを参照して、初期化処理について説明する。
ステップ S181において、 CPU171は、ネットワークカード 171のリセットを行う。
[0151] ステップ S182において、 CPU171は、ネットワークカード 171の割込バージョンビ ットの値を、 RAM172の割込バージョンビットバックアップ領域 183にバックアップす る。
[0152] ステップ S183において、 CPU171は、ステップ S182において RAM172の割込バ 一ジョンビットバックアップ領域 183にバックアップされた割込バージョンビットの値に 1をカ卩えた値を、割込バージョンビットとしてネットワークカード 171の割込ステータス 保持部 191の所定の領域 (ここでは、上位 4ビット)に書き込むとともに、割込ステータ ス保持部 191の割込ステータスのクリアを要求する。ネットワークカード 171の割込ス テータス保持部 191には、 CPU171の制御に基づいて、割込バージョンビットバック アップ領域 183にバックアップされた割込バージョンビットの値に 1をカ卩えた値が割込 バージョンビットとして書き込まれるとともに、送信完了、受信完了、または、エラーな どの割込ステータスの値がクリアされて、処理が終了される。
[0153] 次に、図 18のフローチャートを参照して、 CPU171による割込処理 2について説明 する。この割込処理 1は、例えば図 9のステップ S56で割込発生部 140により割込信 号が供給されたとき、開始される。
[0154] ステップ S211において、 CPU171は、 RAM172の割込ステータス領域 181から割 込ステータスおよび割込バージョンビットを読み出す。
[0155] ステップ S212において、 CPU171は、 RAM172の割込ステータス領域 181から読 み出された割込バージョンビットの値は、 RAM172の割込バージョンビットバックアツ プ領域 183にバックアップされている割込バージョンビットのバックアップ値に 1をカロ えたものであるカゝ否かを判断する。
[0156] ステップ S212において、 RAM172の割込ステータス領域 181から読み出された割 込バージョンビットの値は、 RAM172の割込バージョンビットバックアップ領域 183に バックアップされている割込バージョンビットのバックアップ値に 1をカ卩えたものである と判断された場合、ステップ S213において、 CPU171は、ステップ S211において R AM172から読み出された割込ステータスを用いて割り込み処理を実行するものとす る。
[0157] ステップ S212において、 RAM172の割込ステータス領域 181から読み出された割 込バージョンビットの値は、 RAM172の割込バージョンビットバックアップ領域 183に バックアップされている割込バージョンビットのバックアップ値に 1をカ卩えたものではな いと判断された場合、ステップ S214において、 CPU171は、ステップ S211において RAM172から読み出された割込ステータスを用いずに、ネットワークカード 173にァ クセスし、ネットワークカード 173の割込ステータス保持部 191に保持されている割込 ステータスの値を読み出して、割り込み処理を実行するものとする。
[0158] ステップ S213、または、ステップ S214の処理の終了後、ステップ S215乃至ステツ プ S220にお!/、て、 CPU171は、図 11のステップ S92乃至ステップ S97と基本的に同 様の処理を実行する。
[0159] すなわち、 CPU171は、 RAM172の割込処理テーブル領域 121に記憶される割 込処理テーブル 160に基づいて、 RAM172またはネットワークカード 173から読み 出された割込ステータスが表すステータス力 送信完了ステータスであるかどうか、即 ち割込ステータスの 32ビットのうち下位 0ビット目力 「l」であるかどうかを判定し、ステ 一タスが送信完了ステータスであると判定した場合、割込処理テーブルに基づ!/、て、 送信完了ステータスに対応する割込ステータス処理として、パケット通信部 52により 送信が完了されたパケットが記憶されている、 RAM172のパケット領域 32に対する 解放を行う。即ち、 CPU171は、パケット領域 32に記憶されている、送信が完了され たパケットを削除する。
[0160] ステータスが送信完了ステータスではないと判定された場合、または RAM172の 解放後、 CPU171は、読み出された割込ステータスが表すステータスが、受信完了 ステータスであるかどうか、即ち割込ステータスの 32ビットのうち下位 1ビット目が「1」 であるかどうかを判定し、ステータスが受信完了ステータスであると判定した場合、割 込処理テーブルに基づ 、て、受信完了ステータスに対応する割込ステータス処理と して、パケット通信部 52により受信され、 RAM172のパケット領域 32に記憶されたパ ケットを読み出し、そのパケットを用いて所定の処理を行う。例えば、 CPU171は、そ のパケットを用いて、パケットに対応する画像を出力部 17に表示させる処理を行う。
[0161] ステータスが受信完了ステータスではないと判定された場合、または、読み出され たパケットによる所定の処理の終了後、 CPU171は、読み出された割込ステータスが 表すステータス力 エラーステータスであるかどうか、即ち割込ステータスの 32ビット のうち下位 2ビット目力 「l」であるかどうかを判定する。ステータスがエラーステータス であると判定された場合、即ちパケット領域 32から読み出された送信対象のパケット や、まだパケット領域 32に記憶されていない、受信されたパケットの信頼性が保証さ れていない場合、 CPU171は、割込処理テーブル 160に基づいて、ェラーステータ スに対応する割込ステータス処理として、ネットワークカード 113をリセットする。具体 的には、 CPU171は、例えば、ネットワークカード 173の DMA転送部 51による、 DMA 転送の制御に用いられるレジスタの初期化、およびパケット通信部 52により送受信中 のパケットの破棄を行う。
[0162] ステップ S219においてステータスがエラーステータスではないと判定された場合、 またはステップ S220の処理の終了後、ステップ S221において、 CPU171は、 RAM 172の割込バージョンビットバックアップ領域 183にバックアップされている割込バー ジョンビットの値に 1をカ卩える。
[0163] ステップ S222において、 CPU171は、ステップ S221でバックアップされた割込バ 一ジョンビットの値に 1をカ卩えた値を割込バージョンビットとしてネットワークカード 173 の割込ステータス保持部 191に書き込むとともに、割込ステータスのクリアをネットヮ ークカード 173に要求し、処理を終了する。
[0164] このように、 RAM 173にコピーされた割込ステータスが、ネットワークカード 173の 割込ステータスと同期が取れているカゝ否かを判断することができ、 CPU171は、同期 が取れている場合、 RAM173にコピーされた割込ステータスを基に割り込み処理を 実行し、同期が取れていない場合、ネットワークカード 173にアクセスして、ネットヮー クカード 173の割込ステータスを読み出して割り込み処理を実行するようにしたので、 割り込み処理を簡素化し、割込処理に要する時間を削減することができるとともに、 割込ステータスのコピーが完了する前に割り込み通知を受けた CPU171が RAM17 2に記録されている以前の割込ステータスに基づいて割り込み処理を行ってしまうこと を防止することができる。
[0165] 具体的には、図 19および図 20に示されるように、 RAM172の割込ステータス領域 1 81に、割込ステータス供給部 141からの割込ステータスが記憶されるタイミングによ つて処理が異なる。
[0166] CPU171が RAM172の RAM172の割込ステータス領域 181にアクセスしたとき、 RAM173にコピーされた割込ステータスが、ネットワークカード 173の割込ステータ スと同期が取れて 、る場合の処理にっ 、て、図 19を用いて説明する。
[0167] ステップ S291において、ネットワークカード 173の割込ステータス供給部 141は、 割込ステータスを RAM172の割込ステータス領域 121に供給する。
[0168] ステップ S271〖こおいて、 RAM172の割込ステータス領域 181は、割込ステータス 供給部 141からの割込ステータスを記憶する。即ち、割込ステータス供給部 141から の割込ステータスは、割込ステータス領域 181にコピーされる。
[0169] ステップ S292において、ネットワークカード 173の割込発生部 140は、 DMA転送部 51からの状態情報に応じて、割込信号を発生し、その割込信号を CPU171に通知 する。
[0170] CPU171は、ステップ S251において、割込発生部 140からの割込信号を受信し、 ステップ S252において、 RAM172に割込ステータスの読出を要求する。
[0171] RAM172の割込ステータス領域 181は、ステップ S272において、 CPU171からの 割込ステータスの読出の要求を受信し、ステップ S273において、割込ステータスの 読出の要求に応じて、 V、ま記憶 (保持)して 、る割込ステータスを CPU171に通知す る。ここでは、ステップ S271において、割込ステータスがコピーされているので、 RAM 172の割込ステータス領域 181とネットワークカード 173の割込ステータス保持部 19 1とに記録されている割込ステータスは同期している。
[0172] CPU171は、ステップ S253において、割込ステータス領域 121からの割込ステータ スを受信し、ステップ S254において、バックアップされている割込バージョンビットと、 RAM172から読み出された割込バージョンビットとの比較を行う(図 18のステップ S2 12の処理)。ここでは、 RAM172の割込ステータス領域 181とネットワークカード 173 の割込ステータス保持部 191とに記録されて ヽる割込ステータスは同期して ヽるので 、ステップ S255において、 CPU171は、すでに読み込まれている RAM172の割込 ステータスを用いて、割込処理テーブル領域 122に記憶される割込処理テーブル 16 0に基づいて、割込ステータス処理を行う(図 18のステップ S213およびステップ S21 5乃至ステップ S220の処理)。
[0173] そして、ステップ S256において、 CPU171は、 RAM173の割込バージョンビット バックアップ領域 183にバックアップされている割込バージョンビットの値を 1インクリメ ントする(図 18のステップ S221の処理)。
[0174] ステップ S257において、 CPU171は、割込ステータス保持部 142に保持されてい る割込バージョンビットを 1インクリメントし、割込ステータスをクリアすることを、ネットヮ ークカード 173に要求する(図 18のステップ S222の処理)。
[0175] そして、ステップ S293において、ネットワークカード 173の割込ステータス供給部 1 41は、 CPU171から供給される割込バージョンビットのインクリメントと割込ステータス のクリアの要求を受信して、割込ステータス保持部 142に保持されている割込パージ ヨンビットをインクリメントするとともに割込ステータス保持部 142に保持されている割 込ステータスの各ビットをクリアする。そして、割込ステータス供給部 141は、ステップ S 294において、割込ステータス保持部 142に保持されている割込ステータスを読み 出し、 RAM172に供給する。
[0176] ステップ S274において、 RAM172の割込ステータス領域 181は、供給された割込 ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保 持部 191に保持されている割込ステータスおよび割込バージョンビットが割込ステー タス領域 181にコピーされて、処理が終了される。
[0177] このように、 RAM172への割込ステータスのコピーの同期が取れていると判断され た場合、 CPU171は、そのつどネットワークカード 173と情報を授受することにより割 込ステータスを取得する場合と比較して、高速に割り込み処理を実行することが可能 である。
[0178] 次に、 CPU171が RAM172の RAM172の割込ステータス領域 181にアクセスした とき、 RAM 173にコピーされた割込ステータス力 ネットワークカード 173の割込ステ 一タスと同期が取れて ヽな 、場合の処理にっ 、て、図 20を用いて説明する。
[0179] ステップ S351において、ネットワークカード 173の割込ステータス供給部 141は、 割込ステータスを RAM172の割込ステータス領域 181に供給する。
[0180] し力しながら、 RAM172の割込ステータス領域 181は、割込ステータス供給部 141 力もの割込ステータスの記憶に失敗する。即ち、割込ステータス供給部 141からの割 込ステータスは、割込ステータス領域 181にコピーされない。ネットワークカード 173 の割込ステータス供給部 141は、割込ステータスを RAM172の割込ステータス領域 1 81に供給する処理を再度実行する(後述するステップ S355の処理)
[0181] ステップ S352において、ネットワークカード 173の割込発生部 140は、 DMA転送部 51からの状態情報に応じて、割込信号を発生し、その割込信号を CPU171に通知 する。
[0182] CPU171は、ステップ S311において、割込発生部 140からの割込信号を受信し、 ステップ S312において、 RAM172に割込ステータスの読出を要求する。
[0183] RAM172の割込ステータス領域 181は、ステップ S331において、 CPU171からの 割込ステータスの読出の要求を受信し、ステップ S332において、割込ステータスの 読出の要求に応じて、 V、ま記憶 (保持)して 、る割込ステータスを CPU171に通知す る。ここでは、割込ステータスのコピーが失敗しているので、 RAM172の割込ステータ ス領域 181とネットワークカード 173の割込ステータス保持部 191とに記録されて 、る 割込ステータスは同期して ヽな ヽ。
[0184] CPU171は、ステップ S313において、割込ステータス領域 121からの割込ステータ スを受信し、ステップ S314において、バックアップされている割込バージョンビットと、 RAM172から読み出された割込バージョンビットとの比較を行う(図 18のステップ S2 12の処理)。ここでは、バックアップされている割込バージョンビットと、 RAM172から 読み出された割込バージョンビットとのそれぞれの値が等しいので、 RAM172の割込 ステータス領域 181とネットワークカード 173の割込ステータス保持部 191とに記録さ れて 、る割込ステータスは同期して 、な 、と判断される。
[0185] そして、ステップ S315において、 CPU171は、ネットワークカード 173の割込ステ 一タス保持部 191に、割込ステータスの読出要求を行う。 [0186] ネットワークカード 173の割込ステータス供給部 141は、ステップ S353において、 割込ステータスの読出要求をうけ、ステップ S354において、割込ステータス保持部 1 91に記憶されて 、る割込ステータスを読み出して、 CPU 171に供給する。
[0187] CPU171は、ステップ S316において、ネットワークカード 173の割込ステータス供 給部 141から割込ステータスの通知を受け、ステップ S317において、供給された割 込ステータスを用いて、割込処理テーブル領域 122に記憶される割込処理テーブル 160に基づいて、受信した割込ステータスに対応する割込ステータス処理を行う(図 18のステップ S214およびステップ S215乃至ステップ S220の処理)。
[0188] そして、ステップ S318において、 CPU171は、 RAM173の割込バージョンビット バックアップ領域 183にバックアップされている割込バージョンビットの値を 1インクリメ ントする(図 18のステップ S221の処理)。
[0189] ステップ S355において、ネットワークカード 173の割込ステータス供給部 141は、 割込ステータスを RAM172の割込ステータス領域 121に供給する。
[0190] そして、ステップ S333において、 RAM172の割込ステータス領域 181は、割込ステ 一タス供給部 141からの割込ステータスを記憶する。即ち、割込ステータス供給部 14 1からの割込ステータスは、割込ステータス領域 181にコピーされる。
[0191] ステップ S319において、 CPU171は、割込ステータス保持部 142に保持されてい る割込バージョンビットを 1インクリメントし、割込ステータスをクリアすることを、ネットヮ ークカード 173に要求する(図 18のステップ S222の処理)。
[0192] そして、ステップ S356において、ネットワークカード 173の割込ステータス供給部 1 41は、 CPU171から供給される割込バージョンビットのインクリメントと割込ステータス のクリアの要求を受信して、割込バージョンビットをインクリメントするとともに割込ステ 一タス保持部 142に保持されている割込ステータスの各ビットをクリアする。そして、 割込ステータス供給部 141は、ステップ S357において、割込ステータス保持部 142 に保持されて ヽる割込ステータスを読み出し、 RAM 172に供給する。
[0193] ステップ S334において、 RAM172の割込ステータス領域 181は、供給された割込 ステータスおよび割込バージョンビットを受信して記憶する。即ち、割込ステータス保 持部 191に保持されている割込ステータスおよび割込バージョンビットが割込ステー タス領域 181にコピーされて、処理が終了される。
[0194] このように、 RAM172への割込ステータスのコピーの同期が取れていないと判断さ れた場合、 CPU171は、ネットワークカード 173と情報を授受することにより割込ステ 一タスを取得するので、過去の割込ステータスにより誤った割り込み処理を実行しな い。
[0195] このように、本発明を適用することにより、 RAMへコピーされたステータスをもちいる ことにより、 CPUは、割り込み要因の読み込み処理の負荷の低減をは力ることができ るとともに、ステータスコピーと割り込みとのタイミングのずれが発生する場合を考慮し て、 RAMにコピーされているステータスの同期が取れている場合は、 RAMから読み 出されたステータスを用いて割り込み処理を実行し、 RAMにコピーされているステー タスの同期が取れて ヽな 、場合は、 RAMにコピーされて!/、るステータスを利用しな いようにすることにより、誤った割り込みを行ってしまうことを防ぐことができる。
[0196] なお、割込信号を発生するデバイスは、ネットワークカード 173に限定されず、例え ばデータストレージなどであってもよ 、。
[0197] なお、ここでは、 CPU171による割込バージョンビットのバックアップの値と、 RAMI
72にコピーされた割込バージョンビットの値(正しくコピーされていれば、割込パージ ヨンビットとしてネットワークカード 173の割込ステータス保持部 191に書き込まれるバ ックアップされた割込バージョンビットの値に 1をカ卩えた値)とを比較して、 RAM172 にコピーされた割込バージョンビットの値が割込バージョンビットのバックアップの値よ り 1大き 、場合に、 RAM172への割込ステータスのコピーの同期が取れて!/、ると判 断されるものとして説明した力 RAM172への割込ステータスのコピーの同期が取 れて 、る力否かを判断することができれば、割込バージョンビットに割り当てられるビ ット数や、それぞれ 1回にインクリメントされる値などは異なるものであってもよいことは 言うまでもない。
[0198] また、ここでは、割り込み処理について説明した力 割り込み回数の低減を狙い、例 えばタイマなどで一定のインターバルによるポーリングを行った場合お 、ても、本発 明は適用可能である。この場合、ハードウェアの割り込み処理 (ネットワークカードか らの割り込みによる割り込み処理)の部分をタイマが発生する割り込みによる割り込み 処理に置き換えて、同様の処理を行うことができる。
[0199] ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラム を記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時 系列に処理する必要はなぐ並列的あるいは個別に実行される処理 (例えば、並列 処理あるいはオブジェクトによる処理)も含むものである。
[0200] また、プログラムは、 1のコンピュータにより処理されるものであっても良いし、複数の コンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方 のコンピュータに転送されて実行されるものであっても良い。
[0201] なお、本明細書において、システムとは、複数の装置により構成される装置全体を 表すものである。
[0202] なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなぐ本 発明の要旨を逸脱しな 、範囲にぉ 、て種々の変更が可能である。

Claims

請求の範囲
[1] 割込信号を発生する発生手段と、
前記発生手段により発生される割込信号の発生原因を表すステータスを記憶する 第 1の記憶手段と、
前記第 1の記憶手段に記憶されるステータスに応じて、所定の処理を実行する実行 手段と
を備え、
前記発生手段は、
前記割込信号のステータスを記憶する第 2の記憶手段と、
前記第 2の記憶手段により記憶されるステータスを、前記第 1の記憶手段に記憶さ せる記憶制御手段と
を備える情報処理装置。
[2] 前記実行手段が前記第 1の記憶手段に記憶されている前記ステータスを読み出す ために必要となる第 1の時間は、前記実行手段が前記第 2の記憶手段に記憶されて V、る前記ステータスを読み出すために必要となる第 2の時間よりも短 ヽ
請求項 1に記載の情報処理装置。
[3] 前記第 2の記憶手段には、前記第 1の記憶手段により記憶される第 1のステータスと 、前記第 2の記憶手段により記憶される第 2のステータスとが同期しているか否かを判 定するための判定情報の第 1の記憶領域が含まれ、
前記第 1の記憶手段には、前記判定情報を記憶する第 2の記憶領域が設けられる とともに、前記第 2の記憶領域とは異なる領域であって、前記判定情報を一時保持す る第 3の記憶領域が更に設けられ、
前記記憶制御手段は、前記第 2の記憶手段により記憶されるステータスを、前記第 1の記憶手段に記憶させるとともに、前記第 2の記憶手段の前記第 1の記憶領域に記 録される前記判定情報を、前記第 1の記憶手段の前記第 2の記憶領域に更に記憶さ せ、
前記実行手段は、前記所定の処理を実行する場合、
前記第 2の記憶領域に記憶された前記判定情報と、前記第 3の記憶領域に記憶 された前記判定情報を基に、前記第 1の記憶手段により記憶される前記第 1のステー タスと、前記第 2の記憶手段により記憶される前記第 2のステータスとが同期している と判断された場合、前記第 1の記憶手段により記憶される前記第 1のステータスに応 じて前記所定の処理を実行し、
前記第 2の記憶領域に記憶された前記判定情報と、前記第 3の記憶領域に記憶 された前記判定情報を基に、前記第 1の記憶手段により記憶される前記第 1のステー タスと、前記第 2の記憶手段により記憶される前記第 2のステータスとが同期していな いと判断された場合、前記第 2の記憶手段により記憶される前記第 2のステータスに 応じて前記所定の処理を実行する
請求項 1に記載の情報処理装置。
[4] 前記判定情報は、数値で表され、
前記実行手段は、
前記第 1のステータスまたは前記第 2のステータスに応じて所定の処理を実行した 後、前記第 1の記憶領域に記憶された前記判定情報と同一の値を、前記第 3の記憶 領域に記憶させるとともに、前記第 1の記憶領域に記憶された前記判定情報の値に 1 を加え、
次に前記所定の処理を実行する場合、前記第 2の記憶領域に記憶された前記判 定情報と、前記第 3の記憶領域に記憶された前記判定情報を比較し、前記第 2の記 憶領域に記憶された前記判定情報の値が、前記第 3の記憶領域に記憶された前記 判定情報の値よりも 1大きければ、前記第 1の記憶手段により記憶される前記第 1の ステータスと、前記第 2の記憶手段により記憶される前記第 2のステータスとが同期し て 、ると判断して前記第 1の記憶手段により記憶される前記第 1のステータスに応じ て前記所定の処理を実行し、それ以外であれば、前記第 1の記憶手段により記憶さ れる前記第 1のステータスと、前記第 2の記憶手段により記憶される前記第 2のステー タスとが同期していないと判断して前記第 2の記憶手段により記憶される前記第 2の ステータスに応じて前記所定の処理を実行する請求項 3に記載の情報処理装置。
[5] 割込信号を発生する情報処理装置にお!、て、
前記割込信号を発生する発生手段と、 前記発生手段により発生される割込信号の発生原因を表すステータスを記憶する 記憶手段と、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理 を実行する他の情報処理装置に記憶させる記憶制御手段と
を備える情報処理装置。
[6] 前記記憶手段は、前記記憶手段により記憶される前記ステータスと、前記他の情報 処理装置に記憶される前記ステータスとが同期しているか否かを判定するための判 定情報を更に記憶し、
前記記憶制御手段は、前記ステータスとともに、前記判定情報を前記他の情報処 理装置に記録させる
請求項 5に記載の情報処理装置。
[7] 割込信号を発生し、前記割込信号の発生原因を表すステータスを記憶させる記憶 手段を備える情報処理装置の情報処理方法にお!、て、
前記割込信号を発生する発生ステップと、
前記発生ステップの処理により発生される割込信号のステータスを前記記憶手段 に記憶させる第 1の記憶制御ステップと、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理 を実行する他の情報処理装置に記憶させる第 2の記憶制御ステップと
を含む情報処理方法。
[8] 割込信号の発生原因を表すステータスを記憶させる記憶手段を備える情報処理装 置を制御するコンピュータに行わせるプログラムにおいて、
前記割込信号を発生する発生ステップと、
前記発生ステップの処理により発生される割込信号のステータスを前記記憶手段 に記憶させる第 1の記憶制御ステップと、
前記記憶手段により記憶されるステータスを、そのステータスに応じて所定の処理 を実行する他の情報処理装置に記憶させる第 2の記憶制御ステップと
を含む処理をコンピュータに実行させるためのプログラム。
[9] 他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所 定の処理を実行する情報処理装置にお 、て、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶する記憶 手段と、
前記記憶手段により記憶されるステータスに応じて、前記所定の処理を実行する実 行手段と
を備える情報処理装置。
[10] 前記記憶手段は、前記他の情報処理装置から、前記ステータスとともに、前記記憶 手段により記憶される前記ステータスと、前記他の情報処理装置に記憶される前記ス テータスとが同期している力否かを判定するための判定情報を更に取得して、前記ス テータスと前記判定情報とを記憶し、
前記実行手段は、前記判定情報を基に、前記記憶手段により記憶される前記ステ 一タスと、前記他の情報処理装置に記憶される前記ステータスとが同期しているか否 かを判定して、同期していると判定された場合、前記記憶手段により記憶されるステ 一タスに応じて、前記所定の処理を実行し、同期していないと判定された場合、前記 他の情報処理装置から、前記ステータスを取得して、前記他の情報処理装置から取 得された前記ステータスに応じて、前記所定の処理を実行する
請求項 9に記載の情報処理装置。
[11] 前記割込信号のステータスと、それに対応する処理とを対応付けたテーブルを記 憶する割込処理記憶手段
をさらに備え、
前記実行手段は、前記割込処理記憶手段に記憶されるテーブルに基づいて、前 記所定の処理を実行する
請求項 9に記載の情報処理装置。
[12] 他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所 定の処理を実行する情報処理装置の情報処理方法において、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶させる記 憶制御ステップと、
前記記憶制御ステップの処理により記憶されるステータスに応じて、前記所定の処 理を実行する実行ステップと
を含む情報処理方法。
他の情報処理装置が発生する割込信号の発生原因を表すステータスに応じて、所 定の処理を実行する処理を、コンピュータに行わせるプログラムにおいて、
前記他の情報処理装置から供給される前記割込信号のステータスを記憶させる記 憶制御ステップと、
前記記憶制御ステップの処理により記憶されるステータスに応じて、前記所定の処 理を実行する実行ステップと
を含むプログラム。
PCT/JP2006/310229 2005-06-01 2006-05-23 情報処理装置および情報処理方法、並びにプログラム WO2006137234A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/913,164 US8412871B2 (en) 2005-06-01 2006-05-23 Information processing apparatus, information processing method, and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005-161217 2005-06-01
JP2005161217 2005-06-01
JP2006-030486 2006-02-08
JP2006030486A JP2007012021A (ja) 2005-06-01 2006-02-08 情報処理装置および情報処理方法、並びにプログラム

Publications (1)

Publication Number Publication Date
WO2006137234A1 true WO2006137234A1 (ja) 2006-12-28

Family

ID=37570268

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/310229 WO2006137234A1 (ja) 2005-06-01 2006-05-23 情報処理装置および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US8412871B2 (ja)
JP (1) JP2007012021A (ja)
TW (1) TW200707214A (ja)
WO (1) WO2006137234A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192128A (ja) * 2007-01-11 2008-08-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8645668B2 (en) 2007-01-11 2014-02-04 Sony Corporation Information processing apparatus, information processing method and computer program
JP2021043605A (ja) * 2019-09-09 2021-03-18 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338353A (ja) 2005-06-02 2006-12-14 Sony Corp 情報処理装置および情報処理方法、並びにプログラム
US7948979B2 (en) * 2008-05-28 2011-05-24 Intel Corporation Programmable network interface card
JP2010128696A (ja) * 2008-11-26 2010-06-10 Toshiba Corp バスブリッジ装置およびそれを用いたバスブリッジシステム
JP5790043B2 (ja) * 2011-03-14 2015-10-07 株式会社リコー データ転送システム及びデータ転送方法
US9727494B1 (en) * 2012-10-11 2017-08-08 Qlogic, Corporation Method and system for communication between a computing device and a peripheral device
CN108155978B (zh) * 2017-11-27 2021-08-10 北京机电工程研究所 一种VxWorks环境下冗余网卡热备份的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004355543A (ja) * 2003-05-30 2004-12-16 Toshiba Corp 情報処理装置および割り込み通知方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3206006B2 (ja) * 1991-01-25 2001-09-04 株式会社日立製作所 二重化バス制御方法及び装置
US5761427A (en) * 1994-12-28 1998-06-02 Digital Equipment Corporation Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt
US6021456A (en) * 1996-11-12 2000-02-01 Herdeg; Glenn Arthur Method for communicating interrupt data structure in a multi-processor computer system
JP3549703B2 (ja) 1997-05-12 2004-08-04 沖電気工業株式会社 割り込み処理システム
US6078970A (en) * 1997-10-15 2000-06-20 International Business Machines Corporation System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory
JPH11212904A (ja) 1998-01-26 1999-08-06 Toshiba Corp データ転送システム
US6298409B1 (en) * 1998-03-26 2001-10-02 Micron Technology, Inc. System for data and interrupt posting for computer devices
US6574694B1 (en) * 1999-01-26 2003-06-03 3Com Corporation Interrupt optimization using time between succeeding peripheral component events
US6434630B1 (en) * 1999-03-31 2002-08-13 Qlogic Corporation Host adapter for combining I/O completion reports and method of using the same
US6205509B1 (en) * 1999-07-15 2001-03-20 3Com Corporation Method for improving interrupt response time
US6788704B1 (en) * 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
JP4230272B2 (ja) * 2002-06-05 2009-02-25 パナソニック株式会社 歪補償装置
US7234101B1 (en) * 2003-08-27 2007-06-19 Qlogic, Corporation Method and system for providing data integrity in storage systems
US7639743B2 (en) 2004-03-25 2009-12-29 Sony Corporation Image decoder and image decoding method and program
US7669190B2 (en) * 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
JP4533713B2 (ja) * 2004-09-30 2010-09-01 株式会社東芝 情報処理装置およびデータ転送制御方法
JP2006293799A (ja) 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
JP5008270B2 (ja) 2005-04-13 2012-08-22 ソニー株式会社 情報処理装置、および情報処理方法
JP4645281B2 (ja) 2005-04-19 2011-03-09 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004355543A (ja) * 2003-05-30 2004-12-16 Toshiba Corp 情報処理装置および割り込み通知方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192128A (ja) * 2007-01-11 2008-08-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8645668B2 (en) 2007-01-11 2014-02-04 Sony Corporation Information processing apparatus, information processing method and computer program
JP2021043605A (ja) * 2019-09-09 2021-03-18 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP7427887B2 (ja) 2019-09-09 2024-02-06 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
US20090172302A1 (en) 2009-07-02
JP2007012021A (ja) 2007-01-18
US8412871B2 (en) 2013-04-02
TWI338226B (ja) 2011-03-01
TW200707214A (en) 2007-02-16

Similar Documents

Publication Publication Date Title
WO2006137234A1 (ja) 情報処理装置および情報処理方法、並びにプログラム
US7197634B2 (en) System and method for updating device firmware
JP5380276B2 (ja) 共用不揮発性メモリ・アーキテクチャ
US7600089B2 (en) Storage apparatus for asynchronous remote copying
US7519633B2 (en) Asynchronous replication of data
JP2005292922A (ja) Osイメージのデプロイメントマシン及び方法
US7734842B2 (en) Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
JP4629413B2 (ja) 優先順位を割り当てるための方法、システム、およびプログラム
JP2010277194A (ja) 記憶装置、データ処理方法およびデータ処理プログラム
US20080104295A1 (en) Method and apparatus for transferring data to virtual devices behind a bus expander
JP2007128425A (ja) 起動処理装置、dma転送システム、dma転送方法
JP2002244933A (ja) チェックサムを異なるメモリ位置へ動的に移動させるシステムおよび方法
CN100557586C (zh) 信息处理装置和信息处理方法
JP4563412B2 (ja) ソフトウェア複製
JP2004078683A (ja) コンピュータシステムおよび共有メモリ制御方法
US6098121A (en) Data transfer apparatus with improved throughput due to reduced processing overhead in interrupt process
US11095778B2 (en) Storing and outputting log for failure analysis in image forming apparatus equipped with SATA system, control method therefor, and storage medium
JP4600127B2 (ja) ストレージバックアップサービスシステム、およびストレージバックアップサービス方法
JP2005276221A (ja) バス構成マルチプレクサ
JP5686590B2 (ja) クライアント装置、デバイス制御装置、及びその制御方法、並びにデバイス制御システム
JP4900805B2 (ja) Osイメージのデプロイメントマシン及び方法
JP3715693B2 (ja) 情報処理装置及び方法
JPS63305445A (ja) 電源切断時のデ−タ書込み方式
JP2006146839A (ja) 装置を管理するシステム及び方法
US8549221B2 (en) RAID management apparatus, RAID management method, and computer product

Legal Events

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

Ref document number: 200680019200.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06756485

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 11913164

Country of ref document: US