WO2018139344A1 - 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体 - Google Patents

情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体 Download PDF

Info

Publication number
WO2018139344A1
WO2018139344A1 PCT/JP2018/001496 JP2018001496W WO2018139344A1 WO 2018139344 A1 WO2018139344 A1 WO 2018139344A1 JP 2018001496 W JP2018001496 W JP 2018001496W WO 2018139344 A1 WO2018139344 A1 WO 2018139344A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
transfer
information processing
parallel port
processor
Prior art date
Application number
PCT/JP2018/001496
Other languages
English (en)
French (fr)
Inventor
能久 大本
Original Assignee
Necプラットフォームズ株式会社
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 Necプラットフォームズ株式会社 filed Critical Necプラットフォームズ株式会社
Priority to CN201880008088.8A priority Critical patent/CN110214315B/zh
Priority to US16/478,214 priority patent/US10936515B2/en
Publication of WO2018139344A1 publication Critical patent/WO2018139344A1/ja

Links

Images

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
    • 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/10Program control for peripheral devices
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus

Definitions

  • the present invention relates to a data transfer technique from an information processing apparatus having a plurality of processors and a shared parallel port shared by the plurality of processors to a peripheral device.
  • a BIOS Basic Input / Output System included in a computer such as a server executes a power-on self-test (POST: Power On Self Test) when the computer is turned on.
  • POST Power On Self Test
  • the BIOS outputs, for example, a POST code that is a number indicating a specific error or state.
  • the BIOS outputs a POST code to an I / O (Input / Output) port associated with a certain address.
  • the POST code output to the I / O port can be acquired, for example, by connecting a logic analyzer or a POST card to the computer.
  • deadlock may occur due to exclusive control of shared resources by each processor.
  • exclusive control means that a shared resource is exclusively used by a certain processor when contention occurs due to simultaneous access from multiple processors with respect to shared resources that can be used by multiple processors. In the meantime, it is assumed that the processing is such that other processors cannot use the shared resource.
  • deadlock means that processing in each of a plurality of processors cannot wait for processing in other processors, and as a result, any processing cannot be completed.
  • a debugging device such as ICE (In-Circuit Emulator (registered trademark)) can be used to check the status related to exclusive control of shared resources.
  • the debugging device may not be used as a result of not having a debugging circuit for reducing the manufacturing cost of the computer.
  • the POST code is often output to an I / O port in order to maintain compatibility with a server having a single processor.
  • providing an I / O port for each processor increases the manufacturing cost of the computer. Therefore, in a server having multiple processors, the POST code may be output to an I / O port shared by each processor (hereinafter referred to as “shared I / O port”).
  • the POST code output to the shared I / O port can be acquired by the BIOS of each processor.
  • the shared I / O port is also shared by each processor, the exclusive control for the shared I / O port itself may affect the occurrence of deadlock.
  • Patent Document 1 An example of a technique in which a plurality of memory management means accesses a shared memory is disclosed in Patent Document 1.
  • the data stream analysis system of Patent Document 1 includes data storage means, a plurality of memory management means, one or more memory storage means, and correspondence storage means.
  • Memory management means is divided into shared memory management means and dedicated memory management means.
  • the shared memory management means performs a procedure for the memory pool after performing exclusive control.
  • the dedicated memory management means performs a procedure for the memory pool without performing exclusive control.
  • memory areas for storing data for analysis are allocated as a plurality of memory pools.
  • Each memory management unit has a one-to-one correspondence with any one of the plurality of memory pools.
  • Each memory management unit collectively performs a procedure for one memory pool having a corresponding relationship with the memory management unit.
  • the memory storage means operates independently for each type of data that is divided in advance, and stores data in the memory area when data to be analyzed is generated.
  • the correspondence relationship storage means stores information indicating a correspondence relationship between the memory storage means and the memory management means. When data to be analyzed is generated, the memory storage unit stores the data in a memory area secured from any of the plurality of memory pools using a memory management unit having a correspondence relationship with the memory storage unit.
  • the data stream analysis system disclosed in Patent Document 1 balances memory usage efficiency and execution speed in a data stream analysis system that sequentially analyzes information that occurs continuously.
  • Patent Document 1 has a problem that it is necessary to perform a procedure for the memory pool after the shared memory management means performs exclusive control.
  • Patent Document 2 An example of a technique in which a plurality of processors access a common memory (shared memory) is disclosed in Patent Document 2.
  • a service request control method between processors in Patent Document 2 is a main storage device (shared memory) connected to a common bus and a plurality of CPUs (Central Processing Units). ) (2-1 to 2-n, n is a natural number).
  • Each CPU (2-1 to 2-n) has an interrupt request register (3-1 to 3-n).
  • the CPU (2-k) stores the transmission data (k ⁇ m) in the data area (10-i) in the main memory, and then writes 1 to the k-th bit of the interrupt request register (3-m). Then, the CPU (2-m) is notified that the data has been transmitted by generating an interrupt.
  • the CPU (2-m) reads the contents of the interrupt request register (3-m) and checks the bit that is on. Then, the CPU (2-m) reads the data (k ⁇ m) in the data transfer area (10-i) of the main storage device corresponding to the k-th bit, so that the CPU (2-k) to the CPU (2 Transfer data (k ⁇ m) to -m).
  • the service request control system of Patent Document 2 requires an n-bit interrupt request register for each CPU.
  • the service request control method of Patent Document 2 has a problem that the manufacturing cost increases as compared with the case where there is no interrupt request register.
  • the present invention has been made in view of the above-described problems, and is shared by an inexpensive configuration in data transfer from an information processing apparatus having a plurality of processors and a shared parallel port shared by the plurality of processors to a peripheral device.
  • the main purpose is to suppress the occurrence of deadlock caused by exclusive control in the parallel port.
  • an information processing system includes an information processing apparatus including a plurality of processors and a shared parallel port shared by the plurality of processors, a data classification unit, and a calculation unit that is equal to or greater than the number of the plurality of processors.
  • An information processing system including peripheral devices, in which each processor adds data representing an identifier of each processor (hereinafter referred to as a processor identifier) to each of a series of transfer codes that can represent data to be transferred.
  • a write unit that can be written once in the bus width of the shared parallel port is generated, and the generated write unit is sequentially written to the shared parallel port without performing exclusive control in the shared parallel port.
  • the write unit is read sequentially from the shared parallel port, and the read write unit Are sequentially output to the arithmetic means associated with the data representing the processor identifier included in the read writing unit, and the arithmetic means outputs the series of transfer codes output by the data classification means. Based on this, the data to be transferred is reconstructed.
  • an information processing device is an information processing device including a plurality of processors and a shared parallel port shared by the plurality of processors, and each processor can represent data to be transferred.
  • a processor identifier data representing an identifier of each processor (hereinafter referred to as a processor identifier)
  • a write unit that can be written once in the bus width of the shared parallel port is generated, and the generated write Units are sequentially written to the shared parallel port without performing exclusive control on the shared parallel port.
  • the peripheral device includes a data classification unit and a plurality of calculation units
  • the data classification unit includes a plurality of processors and a shared parallel port shared by the plurality of processors.
  • An identifier of each processor of the information processing apparatus (hereinafter referred to as a processor identifier) is assigned to each of a series of transfer codes that can represent data to be transferred transferred from the shared parallel port of the information processing apparatus.
  • a processor identifier is assigned to each of a series of transfer codes that can represent data to be transferred transferred from the shared parallel port of the information processing apparatus.
  • a data transfer method includes an information processing device including a plurality of processors and a shared parallel port shared by the plurality of processors, a data classification unit, and a calculation unit that is equal to or more than the number of the plurality of processors.
  • a processor identifier data representing an identifier of each processor
  • a series of transfer codes included in the read writing unit is sequentially output to the arithmetic means associated with the data representing the processor identifier included in the read writing unit, and the series of data output by the data classification means is output by the arithmetic means.
  • One transfer target data is reconstructed based on the transfer code.
  • a data transfer program or a non-transitory storage medium storing the data transfer program is shared by a plurality of processors and a plurality of processors in a computer included in the information processing apparatus.
  • a processor identifier data representing an identifier of each processor (hereinafter referred to as a processor identifier)
  • a write unit that can be written once in the bus width of the parallel port is generated, and the generated write unit is sequentially written to the shared parallel port without performing exclusive control in the shared parallel port.
  • a data transfer program or a non-transitory storage medium storing the data transfer program is provided in a peripheral device including a data classification unit and a plurality of calculation units in a computer included in the peripheral device. It is possible to represent the transfer target data transferred by the information processing apparatus from the shared parallel port of the information processing apparatus including the plurality of processors and the shared parallel port shared by the plurality of processors by the data classification unit.
  • processor identifier By adding data representing an identifier of each processor (hereinafter referred to as processor identifier) included in the information processing apparatus to each of a series of transfer codes, write units that can be written once in the bus width of the shared parallel port are sequentially For a series of transfers included in the read and read write units Data to be transferred on the basis of the processing for sequentially outputting the signal to the arithmetic means associated with the data representing the processor identifier included in the read unit and the series of transfer codes output by the data classification means by the arithmetic means The process of reconfiguring is executed.
  • FIG. 1 is a block diagram showing an example of the configuration of an information processing system according to the first embodiment of the present invention.
  • the information processing system 100 in the present embodiment includes an information processing device 110 and a peripheral device 150.
  • the information processing device 110 and the peripheral device 150 are connected by a parallel port cable.
  • the information processing apparatus 110 includes a shared parallel port 130 and a plurality of processors 120.
  • the shared parallel port 130 transmits and receives a plurality of data signals in parallel via different communication lines.
  • the shared parallel port 130 is compliant with, for example, ISA (Industry Standard Architecture) or IEEE (The Institute of Electrical Engineering and Electronics Electronics) 1284.
  • ISA Industry Standard Architecture
  • IEEE The Institute of Electrical Engineering and Electronics Electronics 1284.
  • the shared parallel port 130 is shared by each processor 120.
  • Each processor 120 transmits data to be transferred (hereinafter referred to as “transfer target data”) to the peripheral device 150 using the shared parallel port 130.
  • transfer target data data to be transferred
  • n is an integer of 2 or more.
  • the k-th processor 120 (k is an integer from 0 to n ⁇ 1) is also referred to as “processor k”.
  • Each processor 120 generates a write unit by adding data representing a processor identifier to each of a series of transfer codes.
  • the transfer code is a code transmitted / received via the shared parallel port 130, which can represent the transfer target data.
  • the processor identifier is an identifier of each processor 120.
  • the processor identifier can be expressed by Q (Q is an integer of 1 or more) bits.
  • the write unit is data that can be written once in the bus width of the shared parallel port 130.
  • the shared parallel port 130 has a bus width of W (W is an integer of 2 or more) bits.
  • Each transfer code included in a series of transfer codes is transmitted in a predetermined order.
  • Each transfer code included in the series of transfer codes represents, for example, values of different digits when the transfer target data is expressed in L (L is an integer of 2 or more) base.
  • L is equal to or less than the maximum integer value that can be expressed in binary notation of (WQ) bits.
  • Each processor 120 sequentially writes the generated write units to the shared parallel port 130 without performing exclusive control in the shared parallel port 130.
  • the write unit written to the shared parallel port 130 by each processor 120 is transmitted to the peripheral device 150.
  • Peripheral device 150 includes a data classifier 160 and a plurality of arithmetic units 170.
  • the data classifier 160 sequentially reads out the write units written by the processor 120 from the shared parallel port 130.
  • the data classifier 160 sequentially outputs the transfer code included in the read write unit to the arithmetic unit 170 associated with the data representing the processor identifier included in the read write unit.
  • each computing unit 170 is associated in advance with data representing a specific processor identifier.
  • the data classifier 160 may dynamically associate data representing the processor identifier with a certain computing unit 170.
  • the data classifier 160 (such as the CPU 903 in FIG. 12) stores data representing the state associated with a certain computing unit 170 and a certain processor 120 in a memory (such as the storage device 902 in FIG. 12).
  • the number of computing units 170 included in the peripheral device 150 is m (m is an integer of 2 or more and n or less).
  • the k-th computing unit 170 (where k is an integer from 0 to m ⁇ 1) is also referred to as “computing unit k”.
  • Each computing unit 170 reconstructs transfer target data based on a series of transfer codes output from the data classifier 160.
  • “reconstruct” refers to a series of transfer codes written by the transmission-side apparatus and representing certain transfer target data by the reception-side apparatus, and based on the read series of transfer codes.
  • the transfer target data is generated in the receiving side device.
  • each arithmetic unit 170 calculates transfer target data based on transfer codes that are read in a predetermined order and represent different values of digits when the transfer target data is expressed in L-ary.
  • FIG. 2 is a flowchart showing the operation of the information processing apparatus according to the first embodiment of the present invention. Note that the flowchart shown in FIG. 2 and the following description are examples, and the processing order may be changed, the processing may be returned, or the processing may be repeated depending on the processing that is appropriately obtained.
  • each processor 120 generates a writing unit by adding data representing a processor identifier to each of a series of transfer codes (step S210).
  • each processor 120 sequentially writes the generated write unit to the shared parallel port 130 without performing exclusive control in the shared parallel port 130 (step S220).
  • FIG. 3 is a flowchart showing the operation of the peripheral device in the first embodiment of the present invention. Note that the flowchart shown in FIG. 3 and the following description are examples, and the processing order may be changed, the processing may be returned, or the processing may be repeated depending on the processing that is appropriately obtained.
  • the data classifier 160 sequentially reads out the write units written by the processor 120 from the shared parallel port 130 (step S310).
  • the data classifier 160 sequentially outputs a series of transfer codes included in the read write unit to the arithmetic unit 170 associated with the data representing the processor identifier included in the read write unit (step S320). .
  • each computing unit 170 reconstructs the transfer target data based on the series of transfer codes output by the data classifier 160 (step S330).
  • FIG. 4 is a schematic diagram illustrating an operation example of the information processing system according to the first embodiment of the present invention.
  • the parentheses are bit representations.
  • the symbol “%” indicates a remainder operation, the symbol “/” indicates division, and the symbol “ ⁇ ” indicates multiplication (the same applies to FIG. 5).
  • the bus width (W) of the shared parallel port 130 is 8 bits.
  • each processor 120 assigns a processor identifier P to each of a series of transfer codes D0 (b 0 b 1 ), D1 (b 2 b 3 ), D2 (b 4 b 5 ), and D3 (b 6 b 7 ).
  • the (p 0 p 1 p 2 p 3 p 4 p 5) adding data representing, for generating a write unit (step S210).
  • the transfer code D0 is the remainder obtained by dividing the transferred data D 4 1.
  • the transfer code D1 is the quotient obtained by dividing the transferred data D 4 1.
  • the transfer code D2 is the quotient obtained by dividing the transferred data D 4 2.
  • the transfer code D3 is the quotient obtained by dividing the transferred data D 4 3.
  • the processor 120 may execute the division by a shift operation.
  • each processor 120 sequentially writes the generated write unit to the shared parallel port 130 without performing exclusive control in the shared parallel port 130 (step S220).
  • the data classifier 160 sequentially reads out the write units written by the processor 120 from the shared parallel port 130 (step S310).
  • the data classifier 160 a series of the transfer code included in the read write unit D0 (b 0 b 1), D1 (b 2 b 3), D2 (b 4 b 5), D3 (b 6 b 7), and sequentially outputs to the processor identifier P (p 0 p 1 p 2 p 3 p 4 p 5) calculator 170 that are associated with the data representing the included in the read write unit (step S320).
  • each computing unit 170 reconfigures the transfer target data based on the series of transfer codes output by the data classifier 160 (step S330).
  • the transfer target data D is reconstructed by calculating D0 ⁇ 4 0 + D1 ⁇ 4 1 + D2 ⁇ 4 2 + D3 ⁇ 4 3 .
  • the integration may be executed by shift calculation.
  • FIG. 5 is a schematic diagram for explaining another operation example of the information processing system according to the first embodiment of the present invention.
  • the parentheses are bit representations.
  • the bus width (W) of the shared parallel port 130 is 8 bits.
  • the maximum integer value that can be represented-1 3).
  • each processor 120 a series of transfer code D0 (t 0 t 1), D1 (t 2 t 3), D2 (t 4 t 5), D3 (t 6 t 7), D4 (t 8 t 9 ) And D5 (t 10 t 11 ) are added with data representing the processor identifier P (p 0 p 1 p 2 p 3 p 4 p 5 ), thereby generating a write unit (step S210).
  • the transfer code D0 is the remainder obtained by dividing the transferred data D 3 1.
  • the transfer code D1 is the quotient obtained by dividing the transferred data D 3 1.
  • the transfer code D2 is the quotient obtained by dividing the transferred data D 3 2.
  • the transfer code D3 is the quotient obtained by dividing the transferred data D 3 3.
  • the transfer code D4 is the quotient obtained by dividing the transferred data D by 3 4.
  • the transfer code D5 is the quotient obtained by dividing the transferred data D 3 5.
  • each processor 120 adds a start code S (11) to the head of a series of transfer codes.
  • the start code S (11) is a transfer code indicating the start of transfer of certain transfer target data D among the transfer target data. Since the transfer code includes the start code S (11), a value that can be expressed by one transfer code is 0 or more and 2 or less.
  • each processor 120 sequentially writes the generated write unit to the shared parallel port 130 without performing exclusive control in the shared parallel port 130 (step S220).
  • the data classifier 160 sequentially reads out the write units written by the processor 120 from the shared parallel port 130 (step S310).
  • the data classifier 160 includes a series of transfer codes D0 (t 0 t 1 ), D1 (t 2 t 3 ), D2 (t 4 t 5 ), D3 (t 6 t) included in the read writing unit. 7 ), D4 (t 8 t 9 ), and D5 (t 10 t 11 ) are associated with data representing the processor identifier P (p 0 p 1 p 2 p 3 p 4 p 5 ) included in the read write unit. The data are sequentially output to the computing unit 170 (step S320).
  • each computing unit 170 reconfigures the transfer target data based on the series of transfer codes output by the data classifier 160 (step S330).
  • the transfer target data D is reconstructed by calculating D0 ⁇ 3 0 + D1 ⁇ 3 1 + D2 ⁇ 3 2 + D3 ⁇ 3 3 + D4 ⁇ 3 4 + D5 ⁇ 3 5 .
  • the start code S (11) is not used for calculating the transfer target data D, but is used as an opportunity to initialize the data held by each computing unit 170.
  • each processor 120 of the information processing apparatus 110 represents the identification number of the processor 120 in each transfer code in a series of transfer codes representing the transfer target data.
  • Data is added and written to the shared parallel port 130.
  • the data classifier 160 of the peripheral device 150 sends the series of transfer codes read from the shared parallel port 130 to the computing unit 170 associated with each processor 120 based on the processor identifier read from the shared parallel port 130. Output.
  • the arithmetic unit 170 of the peripheral device 150 reconfigures the transfer target data for each processor 120.
  • a special component such as an interrupt request register shared between the processors 120 is not necessary.
  • the data transfer from the information processing apparatus 110 having the plurality of processors 120 and the shared parallel port 130 shared by the plurality of processors 120 to the peripheral apparatus 150 has an inexpensive configuration. There is an effect that it is possible to suppress the occurrence of deadlock due to the exclusive control in the shared parallel port 130.
  • the transfer target data output by each processor of the information processing apparatus is displayed by the peripheral device.
  • an interrupt is permitted in data transfer by each processor.
  • interrupt means that a certain processor 120 starts the second data transfer in the middle of the first data transfer in the shared parallel port 130, and after the second data transfer ends, the first data The transfer will continue.
  • more multiple “interrupts” are defined.
  • a third data transfer “interrupt” may be performed in the middle of the second data transfer.
  • the number of data interrupted by a certain processor at a certain point in time is referred to as “interrupt nesting level” or simply “nesting level”.
  • FIG. 6 is a block diagram showing an example of the configuration of the information processing system in the second embodiment of the present invention.
  • the information processing system 105 in this embodiment includes an information processing device 110 and a peripheral device 155.
  • the information processing device 110 and the peripheral device 155 are connected by a parallel port cable.
  • the information processing apparatus 110 includes a shared parallel port 130 and a plurality of processors 120.
  • the transfer target data is, for example, a POST code output by the BIOS of each processor 120.
  • the processor 120 may perform an interrupt in data transfer.
  • the processor 120 writes a start code in the shared parallel port 130 before writing a transfer code representing certain transfer target data.
  • the processor 120 writes a new start code in the middle of the original data transfer, and continues the original data transfer after the completion of the new data transfer.
  • Peripheral device 155 includes a data classifier 165, a plurality of arithmetic units 175, a plurality of displays 180, and a plurality of level counters 190.
  • the level counter 190 holds a nesting level in data transfer by the processor 120 associated with the level counter 190.
  • each level counter 190 is associated with each processor 120. That is, the number of level counters 190 is equal to or greater than the number n of processors 120.
  • Data representing the state associated with a certain level counter 190 and a certain processor 120 is stored in a memory (such as the storage device 902 in FIG. 12) not shown by the data classifier 165 (such as the CPU 903 in FIG. 12), for example.
  • a memory such as the storage device 902 in FIG. 12
  • the data classifier 165 such as the CPU 903 in FIG. 12
  • the data classifier 165 sequentially reads the write units written to the shared parallel port 130 by the information processing apparatus 110.
  • the data classifier 165 associates the transfer code included in the read write unit with a set including data representing the processor identifier included in the read write unit and the value of the nesting level of the processor 120 indicated by the processor identifier.
  • Data representing an associated state between a certain computing unit 175 and a certain set of processor identifiers and nesting level values is stored in a memory (FIG. Storage device 902).
  • Each computing unit 175 reconfigures the transfer target data based on a series of transfer codes output from the data classifier 165.
  • each computing unit 175 is associated with a set including each processor 120 and a value having a nesting level of the processor 120.
  • Each computing unit 175 may be associated in advance with a set including a certain processor 120 and a certain value of the nesting level of the processor 120, for example.
  • the data classifier 165 detects a new set of data representing a processor identifier and a value having a nesting level related to the processor identifier
  • the data classifier 165 dynamically sends data identifying the set to a certain calculator 175. You may associate. That is, the number of arithmetic units 175 is equal to or greater than the number obtained by multiplying the number n of processors 120 by the number of values that the nest level can take.
  • the display unit 180 displays the transfer target data reconstructed by the computing unit 175.
  • the display device 180 displays, for example, a POST code output by the BIOS of each processor 120.
  • each display 180 is associated with each calculator 175. That is, the number of displays 180 is equal to or greater than the number of calculators 175.
  • FIG. 7 is a block diagram showing an example of the information processing system in the second embodiment of the present invention.
  • the number of processors 120 and level counters 190 is assumed to be 64.
  • the number m of each of the arithmetic unit 175 and the display unit 180 is 128.
  • the level counters “0”, “1”,..., “63” are sequentially associated with the processors “0”, “1”,.
  • the arithmetic units “00”, “10”,..., “630” are preliminarily set in a set consisting of the processors “0”, “1”,. Assume that they are associated.
  • the arithmetic units “01”, “11”,..., “631” are sequentially set in advance to a set composed of processors “0”, “1”,. Assume that they are associated. In addition, it is assumed that the display devices “00”, “10”,..., “630” are associated in advance with the calculators “00”, “10”,. Further, it is assumed that the display devices “01”, “11”,..., “631” are associated in advance with the calculators “01”, “11”,.
  • FIG. 8 is a table for explaining an operation example of the information processing system in the second embodiment of the present invention. More specifically, FIG. 8 shows an operation example of the peripheral device 155 in the information processing system 105.
  • a “timing” column indicates a timing in the operation.
  • the “reception code” column indicates a set of data representing a processor identifier and a transfer code received by the data classifier 165.
  • P0 indicates the identifier of the processor “0”
  • P1 indicates the identifier of the processor “1”.
  • S indicates a start code.
  • “D00”, “D01”,..., “D05” indicate a series of transfer codes representing transfer target data (transfer target data “D0”) of the processor “0”.
  • “D10”, “D11”,..., “D15” indicate a series of transfer codes representing transfer target data (transfer target data “D1”) of the processor “1”.
  • the “counter 0” column indicates values represented by data held by the level counter “0”.
  • the “counter 1” column indicates values represented by data held by the level counter “1”.
  • the “calculator 00” column indicates values represented by data held by the calculator “00”.
  • the “calculator 10” column indicates values represented by data held by the calculator “10”.
  • Peripheral device 155 operates as follows.
  • Timing 1 The data classifier 165 reads “P0” and “S”, increments the level counter “0” by 1, and initializes the arithmetic unit “00” (indicated by “ ⁇ ” in FIG. 8 and so on). .
  • Timing 2 The data classifier 165 reads “P1” and “S”, increments the level counter “1” by 1, and initializes the calculator “10”.
  • Timing 3 The data classifier 165 reads “P1” and “D10” and outputs them to the calculator “10”. In response to this, the arithmetic unit “10” holds the input value “D10”.
  • Timing 4 The data classifier 165 reads “P0” and “D00” and outputs them to the calculator “00”. In response to this, the arithmetic unit “00” holds the input value “D00”.
  • Timing 5 The data classifier 165 reads “P1” and “D11” and outputs them to the calculator “10”. In response to this, the calculator “10” adds a value obtained by multiplying the input value “D11” by 3 to the held value “D10”.
  • Timing 6 The data classifier 165 reads “P0” and “D01” and outputs them to the calculator “00”. In response to this, the calculator “00” adds a value obtained by multiplying the input value “D01” by 3 to the held value “D00”.
  • Timing 7 The data classifier 165 reads “P0” and “D02” and outputs them to the calculator “00”. In response to this, the calculator “00” adds the value obtained by multiplying 3 2 to the input value "D02”, held to the value "D00 + D01 ⁇ 3" had.
  • Timing 8 The data classifier 165 reads “P1” and “D12” and outputs them to the calculator “10”. In response thereto, the arithmetic unit “10” adds the value obtained by multiplying 3 2 to the input value "D12”, held to the value "D10 + D11 ⁇ 3" had. ... (omitted) ... Timing 13: The data classifier 165 reads “P0” and “D05” and outputs them to the calculator “00”. In response to this, the calculator "00”, a value obtained by multiplying 35 the entered value "D05”, held to have the value "D00 + D01 ⁇ 3 + D02 ⁇ 3 2 + D03 ⁇ 3 3 + D04 ⁇ 3 4" in to add. Subsequently, the calculator “00” decrements the level counter “0” by one. In this example, the arithmetic unit “00” completes the reconfiguration of the transfer target data “D0” by the operation described above.
  • Timing 14 The data classifier 165 reads “P1” and “D15” and outputs them to the calculator “10”. In response thereto, the arithmetic unit “10”, a value obtained by multiplying 35 the entered value "D15”, held to have the value "D10 + D11 ⁇ 3 + D12 ⁇ 3 2 + D13 ⁇ 3 3 + D14 ⁇ 3 4" in to add. Subsequently, the arithmetic unit “10” decrements the level counter “1” by one. In this example, the operation unit “10” completes the reconfiguration of the transfer target data “D1” by the operation described above. (Operation example 2) Next, the operation when an interrupt occurs will be described.
  • FIG. 9 is a table for explaining another example of the operation of the information processing system according to the second embodiment of the present invention. More specifically, FIG. 9 shows an operation example of the peripheral device 155 in the information processing system 105.
  • the description method in FIG. 9 is the same as the description method in FIG. However, “D00”, “D01”,..., “D05” indicate a series of transfer codes representing transfer target data (transfer target data “D0”) of the processor “0”. In addition, “D10”, “D11”,..., “D15” indicate a series of transfer codes representing other transfer target data (transfer target data “D1”) of the processor “0”.
  • the “calculator 01” column indicates values represented by data held by the calculator “01”.
  • Peripheral device 155 operates as follows.
  • Timing 1 The data classifier 165 reads “P0” and “S”, increments the level counter “0” by 1, and initializes the arithmetic unit “00” (indicated by “ ⁇ ” in FIG. 9 and so on). .
  • Timing 2 The data classifier 165 reads “P0” and “D00” and outputs them to the calculator “00”. In response to this, the arithmetic unit “00” holds the input value “D00”.
  • Timing 3 The data classifier 165 reads “P0” and “D01” and outputs them to the calculator “00”. In response to this, the calculator “00” adds a value obtained by multiplying the input value “D01” by 3 to the held value “D00”.
  • Timing 4 The data classifier 165 reads “P0” and “D02” and outputs them to the calculator “00”. In response to this, the calculator “00” adds the value obtained by multiplying 3 2 to the input value "D02”, held to the value "D00 + D01 ⁇ 3" was.
  • Timing 5 The data classifier 165 reads “P0” and “S”, increments the level counter “0” by 1, and initializes the calculator “01”.
  • Timing 6 The data classifier 165 reads “P0” and “D10” and outputs them to the calculator “01”. In response to this, the arithmetic unit “01” holds the input value “D10”.
  • Timing 7 The data classifier 165 reads “P0” and “D11” and outputs them to the calculator “01”. In response to this, the arithmetic unit “01” adds a value obtained by multiplying the input value “D11” by 3 to the held value “D10”.
  • Timing 8 The data classifier 165 reads “P0” and “D12” and outputs them to the calculator “01”. In response to this, the calculator “01” adds the value obtained by multiplying 3 2 to the input value "D12”, held to the value "D10 + D11 ⁇ 3" had. ... (omitted) ... Timing 11: The data classifier 165 reads “P0” and “D15” and outputs them to the calculator “01”. In response to this, the calculator "01”, a value obtained by multiplying 35 the entered value "D15”, held to have the value "D10 + D11 ⁇ 3 + D12 ⁇ 3 2 + D13 ⁇ 3 3 + D14 ⁇ 3 4" in to add.
  • the arithmetic unit “01” decrements the level counter “0” by one.
  • the arithmetic unit “01” completes the reconfiguration of the transfer target data “D1” by the operation described above.
  • the data classifier 165 reads “P0” and “D05” and outputs them to the calculator “00”.
  • the calculator “00” a value obtained by multiplying 35 the entered value "D05”, held to have the value "D00 + D01 ⁇ 3 + D02 ⁇ 3 2 + D03 ⁇ 3 3 + D04 ⁇ 3 4" in to add.
  • the calculator “00” decrements the level counter “0” by one.
  • the arithmetic unit “00” completes the reconfiguration of the transfer target data “D0” by the operation described above.
  • the information processing system 105 of this embodiment includes the components of the information processing system 100 of the first embodiment. Therefore, the information processing system 105 of the present embodiment has the same effect as the information processing system 100 of the first embodiment.
  • the information processing system 105 according to the present embodiment includes a level counter 190 in addition to the components of the information processing system 100 according to the first embodiment.
  • the peripheral device 155 includes the level counter 190, so that data transfer can be interrupted. Therefore, the information processing system 105 of the present embodiment has an effect that data transfer interruption is possible in addition to the effect of the information processing system 100 of the first embodiment.
  • the information processing system 105 according to the present embodiment includes a display 180 in addition to the components of the information processing system 100 according to the first embodiment.
  • the transfer target data can be displayed. Therefore, the information processing system 105 according to the present embodiment has an effect that the transfer target data can be displayed in addition to the effect of the information processing system 100 according to the first embodiment.
  • the transfer target data output by each processor of the information processing apparatus is relayed to an external controlled apparatus connected to the peripheral apparatus.
  • FIG. 10 is a block diagram showing an example of the configuration of the information processing system according to the third embodiment of the present invention.
  • the information processing system 106 in this embodiment includes an information processing device 110, a peripheral device 156, and a plurality of controlled devices 210.
  • the information processing device 110 and the peripheral device 156 are connected by a cable for a parallel port.
  • the peripheral device 156 and each controlled device 210 are connected to each other by a separate parallel port cable.
  • Peripheral device 156 includes a data classifier 160, a plurality of computing units 170, and a plurality of dedicated parallel ports 136.
  • the dedicated parallel port 136 outputs the transfer target data reconfigured by the computing unit 170.
  • the dedicated parallel port 136 outputs, for example, a control command for the controlled device 210 output by each processor 120.
  • each dedicated parallel port 136 is associated with each computing unit 170. That is, the number of dedicated parallel ports 136 is equal to or greater than the number of computing units 170.
  • the controlled device 210 operates based on the transfer target data output by the peripheral device 156.
  • the controlled device 210 is, for example, a machine tool that operates based on a command received from the dedicated parallel port 136.
  • FIG. 11 is a block diagram illustrating an example of a configuration of a target to which the information processing system according to the third embodiment of the present invention is applied.
  • the information processing system 109 to which the present embodiment is applied includes an information processing apparatus 119 and a plurality of controlled apparatuses 210.
  • the information processing apparatus 119 includes a plurality of processors 129 and a plurality of dedicated parallel ports 139.
  • the processors 129 may not be capable of data communication with each other.
  • Each dedicated parallel port 139 is occupied by one processor 129 previously associated with the dedicated parallel port 139.
  • the controlled device 210 operates based on the transfer target data output by the information processing device 119.
  • the controlled device 210 is a machine tool that operates based on a command received from the dedicated parallel port 139, for example.
  • the dedicated parallel port 139 has an interface compatible with the dedicated parallel port 136.
  • the dedicated parallel port 139 and the dedicated parallel port 136 have the same bus width and conform to the same standard.
  • the program (transplant target program) that was operating on each processor 129 of the information processing apparatus 119 operates the controlled apparatus 210 based on the transfer target data written to the dedicated parallel port 139.
  • a program (post-transplant program) that operates on each processor 120 of the information processing apparatus 110 operates the controlled apparatus 210 based on the transfer target data written to the shared parallel port 130.
  • the only difference between the porting target program and the post-porting program is whether the parallel port for writing the transfer target data is the dedicated parallel port 139 or the shared parallel port 130. Since exclusive control in the shared parallel port 130 is unnecessary, porting from the porting target program to the post-porting program is easy.
  • the peripheral device 156 transfers the data read from the shared parallel port 130 to a different controlled device 210 for each processor 120.
  • the interface of the dedicated parallel port 136 in the information processing system 106 to the controlled device 210 is compatible with the dedicated parallel port 139 in the information processing system 109.
  • the information processing system 106 of this embodiment it is easy to port a program that has been operating on the information processing system 109. Then, the peripheral device 156 provides an interface compatible with the interface in the information processing system 109 to the controlled device 210. Therefore, the information processing system 106 according to the present embodiment has an effect that it is possible to reduce the cost required for porting a program that was operating on the information processing system 109.
  • FIG. 12 is a block diagram showing an example of a hardware configuration capable of realizing the information processing apparatus or peripheral device in each embodiment of the present invention.
  • the information processing device 907 or the peripheral device 907 includes a storage device 902, a CPU (Central Processing Unit) 903, and an I / O (Input / Output) device 908, which are connected by an internal bus 906.
  • the CPU 903 includes a multiprocessor.
  • the I / O device 908 includes a parallel port.
  • the storage device 902 stores operation programs of the CPU 903 such as the processor 120, the data classifier 160, and the arithmetic unit 170.
  • the CPU 903 controls the information processing device 907 or the entire peripheral device 907, executes an operation program stored in the storage device 902, and includes the processor 120, the data classifier 160, the arithmetic unit 170, etc. via the I / O device 908. Execute programs and send / receive data.
  • the internal configuration of the information processing device 907 or the peripheral device 907 is an example.
  • the peripheral device 907 may have a device configuration in which a display or the like is further connected.
  • the information processing apparatus or the peripheral apparatus in each embodiment of the present invention described above may be realized by a dedicated apparatus, but the computer (except the hardware operation that the I / O apparatus 908 performs communication with the outside) It can also be realized by an information processing device.
  • the I / O device 908 is an input / output unit with the processor 120, the data classifier 160, the arithmetic unit 170, and the like, for example.
  • the computer reads the software program stored in the storage device 902 to the CPU 903 and executes the read software program in the CPU 903.
  • the software program has a description that can realize the functions of the respective units of the information processing apparatus or the peripheral device shown in FIG.
  • FIG. 1, FIG. 6, or FIG. Just do it.
  • these units include hardware as appropriate.
  • the software program (computer program) can be regarded as constituting the present invention.
  • a computer-readable non-transitory storage medium storing such a software program can also be regarded as constituting the present invention.
  • An information processing system comprising: an information processing device including a plurality of processors and a shared parallel port shared by the plurality of processors; a data classification unit; and a peripheral device including a calculation unit equal to or greater than the number of the plurality of processors.
  • Each of the processors adds data representing an identifier of each processor (hereinafter referred to as a processor identifier) to each of a series of transfer codes capable of representing data to be transferred, thereby providing a bus width of the shared parallel port.
  • the data classification means includes Sequentially reading the write units from the shared parallel port;
  • the series of transfer codes included in the read write unit is sequentially output to the arithmetic means associated with the data representing the processor identifier included in the read write unit,
  • the information processing system in which the calculation means reconstructs the transfer target data based on the series of transfer codes output by the data classification means.
  • the peripheral device further comprises a level counter associated with data representing the processor identifier, which holds data representing a nesting level of interrupts in each of the processors,
  • the processor includes the series of transfer codes representing the transfer target data, excluding the start code, which is the transfer code indicating the start of transfer of the transfer target data of the transfer target data.
  • Write to the shared parallel port before writing The data classification means includes Sequentially reading the write units from the shared parallel port; When the read code includes the start code, the data indicating the interrupt nesting level in the level counter associated with the data indicating the processor identifier included in the read write unit is increased by 1.
  • An information processing apparatus comprising a plurality of processors and a shared parallel port shared by the plurality of processors, Each of the processors adds data representing an identifier of each processor (hereinafter referred to as a processor identifier) to each of a series of transfer codes capable of representing data to be transferred, thereby providing a bus width of the shared parallel port.
  • An information processing apparatus that generates a write unit that can be written at once and sequentially writes the generated write unit to the shared parallel port without performing exclusive control in the shared parallel port.
  • a peripheral device comprising a data classification means and a plurality of calculation means
  • the data classification means includes A series of transfer codes capable of representing transfer target data transferred by the information processing apparatus from the shared parallel port of the information processing apparatus including a plurality of processors and a shared parallel port shared by the plurality of processors
  • a processor identifier By adding data representing an identifier (hereinafter referred to as a processor identifier) of each processor included in the information processing apparatus to each of the information, a write unit that can be written once in the bus width of the shared parallel port is sequentially read.
  • the series of transfer codes included in the read write unit is sequentially output to the arithmetic means associated with the data representing the processor identifier included in the read write unit,
  • the peripheral means for reconfiguring the data to be transferred based on the series of transfer codes output by the data classification means.
  • An information processing system comprising: an information processing device including a plurality of processors and a shared parallel port shared by the plurality of processors; a data classification unit; and a peripheral device including a calculation unit equal to or greater than the number of the plurality of processors.
  • a data transfer method comprising: By adding data representing an identifier of each processor (hereinafter referred to as a processor identifier) to each of a series of transfer codes that can constitute data to be transferred by each processor, 1 in the bus width of the shared parallel port.
  • Write units that can be written at a time, and sequentially write the generated write units to the shared parallel port without performing exclusive control in the shared parallel port,
  • the data classification means Sequentially reading the write units from the shared parallel port;
  • the series of transfer codes included in the read write unit is sequentially output to the arithmetic means associated with the data representing the processor identifier included in the read write unit,
  • a data transfer method in which the calculation means reconstructs the transfer target data based on the series of transfer codes output by the data classification means.
  • Appendix 9 In a computer provided in an information processing apparatus having a plurality of processors and a shared parallel port shared by the plurality of processors, Data is written at a time in the bus width of the shared parallel port by adding data representing an identifier of each processor (hereinafter referred to as processor identifier) to each of a series of transfer codes that can represent data to be transferred.
  • processor identifier data representing an identifier of each processor
  • Non-temporary storing a data transfer program of an information processing apparatus that generates a possible write unit and executes a process of sequentially writing the generated write unit to the shared parallel port without performing exclusive control in the shared parallel port Storage medium.
  • a processor identifier an identifier
  • Each of the transfer codes included in the series of transfer codes representing the transfer target data is transmitted in a predetermined order.
  • L is an integer of 2 or more
  • the present invention relates to an information processing apparatus having a plurality of processors and a shared parallel port shared by the plurality of processors, a shared parallel port inside the information processing apparatus, a shared parallel port for connecting the information processing apparatus and peripheral devices, and the like Can be used in applications that implement. Also, the present invention implements a peripheral device that relays data transfer between an information processing device having a plurality of processors and a shared parallel port shared by the plurality of processors, and a non-control device controlled by the parallel port. It can be used in applications.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

(課題)複数のプロセッサと共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制する。 (解決手段)複数のプロセッサと共有パラレルポート(ポート)とを含む情報処理装置と、データ分類手段及び複数の演算手段を含む周辺装置とを備えた情報処理システムであって、各プロセッサは、あるデータを表すことが可能な一連の符号のそれぞれに、各プロセッサ識別子を付加することにより、ポートのバス幅において1回で書き込み可能な書込単位を生成し、書込単位をポートへ排他制御を行わずに順次書き込み、データ分類手段は、ポートから書込単位を順次読み出し、書込単位に含まれる一連の符号を、書込単位に含まれるプロセッサ識別子に関連付けされた演算手段へ順次出力し、演算手段は一連の符号に基づいて元のデータを再構成する。

Description

情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体
 本発明は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送技術に関する。
 サーバ等のコンピュータが有するBIOS(Basic Input/Output System)は、コンピュータの電源投入時に、電源投入時自己診断(POST:Power On Self Test)を実行する。BIOSは、POSTにおいてエラー等のイベントが発生すると、例えば、特定のエラー又は状態を示す番号であるPOSTコードを出力する。BIOSは、例えば、あるアドレスに関連付けされたI/O(Input Output)ポートへPOSTコードを出力する。I/Oポートへ出力されたPOSTコードは、例えば、コンピュータにロジックアナライザやPOSTカードを接続することにより、取得可能である。
 近年のプロセッサにおける集積度の向上に伴い、複数のプロセッサ(マルチプロセッサ)が1台のサーバに実装される機会が増加した。マルチプロセッサを有するサーバにおいては、各プロセッサによる共有リソースに対する排他制御等に起因して、デッドロックが発生する可能性がある。本願において、「排他制御」とは、複数のプロセッサにより利用可能な共有リソースに対し、複数のプロセッサからの同時アクセスにより競合が発生する場合に、あるプロセッサに共有リソースを独占的に利用させている間には、他のプロセッサがその共有リソースを利用できないように制御する処理であることとする。又、本願において、「デッドロック」とは、複数のプロセッサのそれぞれにおける処理が、互いに他のプロセッサにおける処理を待つ結果、何れの処理も完了できないことであることとする。共有リソースに対する排他制御に関する状況の確認には、ICE(In-Circuit Emulator、登録商標)等のデバッグ装置が利用できる。しかしながら、コンピュータの製造コスト削減等のためにデバッグ用回路が用意されていない結果、デバッグ装置を利用できないことがある。
 マルチプロセッサを有するサーバにおいても、シングルプロセッサを有するサーバとの互換性を維持するために、POSTコードはI/Oポートへ出力されることが多い。ところが、プロセッサ毎にI/Oポートを設けると、コンピュータの製造コストが上昇する。そのため、マルチプロセッサを有するサーバにおいて、POSTコードは、各プロセッサにより共有されるI/Oポート(以下、「共有I/Oポート」と称する)へ出力されることがある。
 マルチプロセッサを有するサーバにおいても、各プロセッサが有するBIOSにより共有I/Oポートへ出力されたPOSTコードを取得できることが望ましい。ところが、共有I/Oポートも各プロセッサにより共有されるので、共有I/Oポートに対する排他制御自体がデッドロックの発生に影響する可能性がある。
 複数のメモリ管理手段が共有メモリにアクセスする技術の一例が、特許文献1に開示されている。特許文献1のデータストリーム解析システムは、データ記憶手段と、複数のメモリ管理手段と、1つ以上のメモリ格納手段と、対応関係記憶手段とを含む。
 メモリ管理手段は、共有メモリ管理手段と、専用メモリ管理手段とに分けられる。共有メモリ管理手段は、排他制御を行った後にメモリプールに対する手続きを行う。専用メモリ管理手段は、排他制御を行わずにメモリプールに対する手続きを行う。データ記憶手段では、解析用にデータを格納するためのメモリ領域が、複数のメモリプールとして割り当てられる。各メモリ管理手段は、複数のメモリプールのうちの何れか1つのメモリプールと1対1の対応関係を有する。各メモリ管理手段は、当該メモリ管理手段と対応関係を有する1つのメモリプールに対する手続きをとりまとめて行う。メモリ格納手段は、予め区分けされたデータの種類別に独立して動作し、解析対象であるデータが発生すると、メモリ領域に当該データを格納する。対応関係記憶手段は、メモリ格納手段とメモリ管理手段との対応関係を示す情報を記憶する。メモリ格納手段は、解析対象であるデータが発生すると、当該メモリ格納手段と対応関係を有するメモリ管理手段を用いて、複数のメモリプールの何れかから確保したメモリ領域に当該データを格納する。
 上記構成の結果、特許文献1のデータストリーム解析システムは、連続して発生する情報を逐次的に解析するデータストリーム解析システムにおいて、メモリの使用効率と実行速度とのバランスをとる。
 しかしながら、特許文献1のデータストリーム解析システムには、共有メモリ管理手段が排他制御を行った後にメモリプールに対する手続きを行う必要があるという問題点がある。
 複数のプロセッサが共通メモリ(共有メモリ)にアクセスする技術の一例が、特許文献2に開示されている。特許文献2のプロセッサ間におけるサービス要求制御方式は、共通バスに接続された主記憶装置(共有メモリ)と複数のCPU(Central Processing Unit
)(2-1~2-n,nは自然数)とを含む。
 主記憶装置には、CPU(2-k)からCPU(2-m)(k=1~n,m=1~n,k≠m:k,mはともに自然数)に転送するデータ(k→m)を格納するデータ領域(10-i:i=1~n)が割り当てられる。各CPU(2-1~2-n)は、割込み要求レジスタ(3-1~3-n)を有する。CPU(2-k)は、送信データ(k→m)を主記憶装置におけるデータ領域(10-i)に格納した後、割込み要求レジスタ(3-m)のkビット目に1を書き込むことにより、CPU(2-m)に割込みを発生させてデータを送信したことを通知する。CPU(2-m)は、その割込み要求レジスタ(3-m)の内容を読み込んで、オンであるビットを調べる。そして、CPU(2-m)は、kビット目に対応する主記憶装置のデータ転送領域(10-i)のデータ(k→m)を読み込むことにより、CPU(2-k)からCPU(2-m)にデータ(k→m)を転送する。
 上記構成の結果、特許文献2のサービス要求制御方式では、共通メモリの排他制御を意識することなく、プロセッサ間におけるサービス要求の受渡しが行われる。
特開2009-87189号公報 特開平5-216792号公報
 しかしながら、特許文献2のサービス要求制御方式では、CPU毎にnビットの割込み要求レジスタが必要である。つまり、特許文献2のサービス要求制御方式には、割込み要求レジスタが無い場合に比べて、製造コストが増加するという問題点がある。
 本発明は、上記の課題に鑑みてなされたもので、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制することを主たる目的とする。
 本発明の一態様において、情報処理システムは、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、各プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込み、データ分類手段は、共有パラレルポートから書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段は、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する。
 本発明の一態様において、情報処理装置は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、各プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込む。
 本発明の一態様において、周辺装置は、データ分類手段及び複数の演算手段を備えた周辺装置であって、データ分類手段は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する共有パラレルポートから、情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、情報処理装置が有する各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段は、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する。
 本発明の一態様において、データ転送方法は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、各プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込み、データ分類手段により、共有パラレルポートから書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力し、演算手段により、データ分類手段により出力された一連の転送用符号に基づいて1つの転送対象データを再構成する。
 本発明の一態様において、データ転送プログラム又は、係るデータ転送プログラムが格納された非一時的な記憶媒体は、情報処理装置が備えるコンピュータに、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した書き込み単位を共有パラレルポートへ共有パラレルポートにおける排他制御を行わずに順次書き込む処理を実行させる。
 本発明の一態様において、データ転送プログラム又は、係るデータ転送プログラムが格納された非一時的な記憶媒体は、周辺装置が備えるコンピュータに、データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、データ分類手段により、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する共有パラレルポートから、情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、情報処理装置が有する各プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算手段へ順次出力する処理と、演算手段により、データ分類手段により出力された一連の転送用符号に基づいて転送対象データを再構成する処理とを実行させる。
 本発明によれば、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置から周辺装置へのデータ転送において、安価な構成により、共有パラレルポートにおける排他制御に起因するデッドロックの発生を抑制することができるという効果がある。
本発明の第1の実施形態における情報処理システムの構成の一例を示すブロック図である。 本発明の第1の実施形態における情報処理装置の動作を示すフローチャートである。 本発明の第1の実施形態における周辺装置の動作を示すフローチャートである。 本発明の第1の実施形態における情報処理システムの動作例を説明する模式図である。 本発明の第1の実施形態における情報処理システムの別の動作例を説明する模式図である。 本発明の第2の実施形態における情報処理システムの構成の一例を示すブロック図である。 本発明の第2の実施形態における情報処理システムの実施例を示すブロック図である。 本発明の第2の実施形態における情報処理システムの動作例を説明する表である。 本発明の第2の実施形態における情報処理システムの別の動作例を説明する表である。 本発明の第3の実施形態における情報処理システムの構成の一例を示すブロック図である。 本発明の第3の実施形態における情報処理システムが適用される対象の構成の一例を示すブロック図である。 本発明の各実施形態における情報処理装置又は周辺装置を実現可能なハードウェア構成の一例を示すブロック図である。
 以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等な構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
 本発明の各実施形態の基本である、本発明の第1の実施形態について説明する。
 本実施形態における構成について説明する。
 図1は、本発明の第1の実施形態における情報処理システムの構成の一例を示すブロック図である。
 本実施形態における情報処理システム100は、情報処理装置110と、周辺装置150とを含む。情報処理装置110と、周辺装置150とは、パラレルポート用のケーブルにより接続される。
 情報処理装置110は、共有パラレルポート130と、複数のプロセッサ120とを含む。
 共有パラレルポート130は、複数のデータ信号を互いに異なる通信線を経由して同時並行的に送受信する。共有パラレルポート130は、例えば、ISA(Industry Standard Architecture)又はIEEE(The Institute of Electrical and Electronics Engineers)1284に準拠する。共有パラレルポート130は、各プロセッサ120により共有される。
 各プロセッサ120は、転送対象であるデータ(以下、「転送対象データ」と称する)を、共有パラレルポート130を利用して、周辺装置150へ送信する。以下では、情報処理装置110に含まれるプロセッサ120の台数は、n(nは2以上の整数)台であることとする。そして、k(kは0乃至n-1の整数)番目のプロセッサ120を“プロセッサk”とも称す。
 各プロセッサ120は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する。ここで、転送用符号は、転送対象データを表すことが可能な、共有パラレルポート130を経由して送受信される符号である。又、プロセッサ識別子は、各プロセッサ120の識別子である。プロセッサ識別子は、Q(Qは1以上の整数)ビットで表現可能であることとする。又、書き込み単位は、共有パラレルポート130のバス幅において1回で書き込み可能なデータである。共有パラレルポート130のバス幅は、W(Wは2以上の整数)ビットであることとする。
 一連の転送用符号に含まれる各転送用符号は、所定の順序で送信される。一連の転送用符号に含まれる各転送用符号は、例えば、転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す。ここで、Lは、(W-Q)ビットの2進数表現で表現可能な最大の整数値以下である。
 各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む。各プロセッサ120により共有パラレルポート130へ書き込まれた書き込み単位は、周辺装置150へ送信される。
 周辺装置150は、データ分類器160と、複数の演算器170とを含む。
 データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す。
 データ分類器160は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器170へ順次出力する。ここで、各演算器170は、特定のプロセッサ識別子を表すデータに予め関連付けされることとする。又は、データ分類器160は、新規なプロセッサ識別子を表すデータを検出した際に、ある演算器170に、当該プロセッサ識別子を表すデータを動的に関連付けてもよい。ある演算器170とあるプロセッサ120との間の関連付けした状態を表すデータは、例えば、データ分類器160(図12のCPU903等)が不図示のメモリ(図12の記憶装置902等)に格納していることとする。以下では、周辺装置150に含まれる演算器170の台数は、m(mは2以上且つn以下の整数)台であることとする。そして、k(kは0乃至m-1の整数)番目の演算器170を“演算器k”とも称す。
 各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、「再構成する」とは、送信側装置により書き込まれた、ある転送対象データを表す一連の転送用符号を、受信側装置により読み出し、読み出した一連の転送用符号に基づいて、当該受信側装置において当該転送対象データを生成することとする。各演算器170は、例えば、所定の順序で読み出された、転送対象データをL進数表現した場合における互いに異なる桁の値を表す各転送用符号に基づいて、転送対象データを算出する。
 本実施形態における動作について説明する。
 図2は、本発明の第1の実施形態における情報処理装置の動作を示すフローチャートである。尚、図2に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
 まず、各プロセッサ120は、一連の転送用符号のそれぞれに、プロセッサ識別子を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。
 次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
 図3は、本発明の第1の実施形態における周辺装置の動作を示すフローチャートである。尚、図3に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
 まず、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
 次に、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
 続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。
 本実施形態における動作の具体例について説明する。
 図4は、本発明の第1の実施形態における情報処理システムの動作例を説明する模式図である。図4において、括弧内はビット表現であることとする。又、記号“%”は剰余演算を、記号“/”は除算を、記号“×”は乗算を示す(図5においても同様)。又、転送対象データは、8ビットのデータ(D=b)であることとする。又、共有パラレルポート130のバス幅(W)は、8ビットであることとする。又、プロセッサ識別子は、6ビットのデータ(P=p)で表現されることとする(Q=6)。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを4進数表現した場合における互いに異なる桁の値を表すこととする(L=(W-Q)ビットの2進数表現で表現可能な最大の整数値=4)。
 まず、各プロセッサ120は、一連の転送用符号D0(b)、D1(b)、D2(b)、D3(b)のそれぞれに、プロセッサ識別子P(p)を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。ここで、転送用符号D0は、転送対象データDを4で除算した剰余である。又、転送用符号D1は、転送対象データDを4で除算した商である。又、転送用符号D2は、転送対象データDを4で除算した商である。又、転送用符号D3は、転送対象データDを4で除算した商である。但し、プロセッサ120は、除算を、シフト演算により実行してもよい。
 次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
 続いて、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
 続いて、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号D0(b)、D1(b)、D2(b)、D3(b)を、読み出した書き込み単位に含まれるプロセッサ識別子P(p)を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
 続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。ここで、転送対象データDは、D0×4+D1×4+D2×4+D3×4を算出することにより再構成される。但し、積算は、シフト演算により実行されてもよい。
 本実施形態における動作の別の具体例について説明する。
 図5は、本発明の第1の実施形態における情報処理システムの別の動作例を説明する模式図である。図5において、括弧内はビット表現であることとする。又、転送対象データは、8ビットのデータ(D=b)であることとする。又、共有パラレルポート130のバス幅(W)は、8ビットであることとする。又、プロセッサ識別子は、6ビットのデータ(P=p)で表現されることとする(Q=6)。又、一連の転送用符号に含まれる各転送用符号は、転送対象データを3進数表現した場合における互いに異なる桁の値を表すこととする(L=(W-Q)ビットの2進数表現で表現可能な最大の整数値-1=3)。
 まず、各プロセッサ120は、一連の転送用符号D0(t)、D1(t)、D2(t)、D3(t)、D4(t)、D5(t1011)のそれぞれに、プロセッサ識別子P(p)を表すデータを付加することにより、書き込み単位を生成する(ステップS210)。ここで、転送用符号D0は、転送対象データDを3で除算した剰余である。又、転送用符号D1は、転送対象データDを3で除算した商である。又、転送用符号D2は、転送対象データDを3で除算した商である。又、転送用符号D3は、転送対象データDを3で除算した商である。又、転送用符号D4は、転送対象データDを3で除算した商である。又、転送用符号D5は、転送対象データDを3で除算した商である。但し、各プロセッサ120は、一連の転送用符号の先頭にスタート符号S(11)を付加する。スタート符号S(11)は、転送対象データのうちのある転送対象データDの転送開始を示す転送用符号である。転送用符号がスタート符号S(11)を含むので、1つの転送用符号で表現可能な値は、0以上且つ2以下である。
 次に、各プロセッサ120は、生成した書き込み単位を共有パラレルポート130へ共有パラレルポート130における排他制御を行わずに順次書き込む(ステップS220)。
 続いて、データ分類器160は、共有パラレルポート130からプロセッサ120により書き込まれた書き込み単位を順次読み出す(ステップS310)。
 続いて、データ分類器160は、読み出した書き込み単位に含まれる一連の転送用符号D0(t)、D1(t)、D2(t)、D3(t)、D4(t)、D5(t1011)を、読み出した書き込み単位に含まれるプロセッサ識別子P(p)を表すデータに関連付けされた演算器170へ順次出力する(ステップS320)。
 続いて、各演算器170は、データ分類器160により出力された一連の転送用符号に基づいて、転送対象データを再構成する(ステップS330)。ここで、転送対象データDは、D0×3+D1×3+D2×3+D3×3+D4×3+D5×3を算出することにより再構成される。但し、スタート符号S(11)は、転送対象データDの算出に使用されず、各演算器170が保持するデータを初期化する契機として使用される。
 以上説明したように、本実施形態の情報処理システム100では、情報処理装置110の各プロセッサ120は、転送対象データを表す一連の転送用符号における各転送用符号に、プロセッサ120の識別番号を表すデータを付加して、共有パラレルポート130へ書き込む。そして、周辺装置150のデータ分類器160は、共有パラレルポート130から読み出した一連の転送用符号を、共有パラレルポート130から読み出したプロセッサ識別子に基づいて、各プロセッサ120に関連付けされた演算器170へ出力する。そして、周辺装置150の演算器170は、プロセッサ120毎に転送対象データを再構成する。ここで、情報処理システム100において、プロセッサ120間で共有される割込み要求レジスタ等のような特別な構成要素は必要ない。従って、本実施形態の情報処理システム100では、複数のプロセッサ120と複数のプロセッサ120により共有される共有パラレルポート130とを有する情報処理装置110から周辺装置150へのデータ転送において、安価な構成により、共有パラレルポート130における排他制御に起因するデッドロックの発生を抑制することができるという効果がある。
(第2の実施形態)
 次に、本発明の第1の実施形態を基本とする、本発明の第2の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置により表示される。又、本実施形態における情報処理システムでは、各プロセッサによるデータ転送において割り込みが許容される。本願において、「割り込み」とは、あるプロセッサ120が、共有パラレルポート130において、第1のデータ転送の途中で第2のデータ転送を開始し、第2のデータ転送の終了後に、第1のデータ転送を継続することとする。同様に、より多重な「割り込み」も定義される。例えば、第2のデータ転送の途中で、更に第3のデータ転送の「割り込み」が行われてもよい。又、あるプロセッサが、ある時点において、いくつのデータに関して割り込みを行っているかを「割り込みのネストレベル」又は単に「ネストレベル」と称することとする。
 本実施形態における構成について説明する。
 図6は、本発明の第2の実施形態における情報処理システムの構成の一例を示すブロック図である。
 本実施形態における情報処理システム105は、情報処理装置110と、周辺装置155とを含む。情報処理装置110と、周辺装置155とは、パラレルポート用のケーブルにより接続される。
 情報処理装置110は、共有パラレルポート130と、複数のプロセッサ120とを含む。ここで、転送対象データは、例えば、各プロセッサ120のBIOSが出力するPOSTコードである。但し、プロセッサ120は、データ転送において割り込みを行ってもよい。又、プロセッサ120は、共有パラレルポート130に、ある転送対象データを表す転送用符号を書き込む前に、スタート符号を書き込む。プロセッサ120は、データ転送において割り込みを行う際には、元のデータ転送の途中において新たなスタート符号を書き込み、新たなデータ転送の完了後に、元のデータ転送を継続する。
 周辺装置155は、データ分類器165と、複数の演算器175と、複数の表示器180と、複数のレベルカウンタ190とを含む。
 レベルカウンタ190は、当該レベルカウンタ190に関連付けされたプロセッサ120によるデータ転送におけるネストレベルを保持する。ここで、各レベルカウンタ190は、各プロセッサ120に関連付けされる。つまり、レベルカウンタ190の台数は、プロセッサ120の台数n以上である。あるレベルカウンタ190とあるプロセッサ120との間の関連付けした状態を表すデータは、例えば、データ分類器165(図12のCPU903等)が不図示のメモリ(図12の記憶装置902等)に格納していることとする。
 データ分類器165は、情報処理装置110により共有パラレルポート130へ書き込まれた書き込み単位を順次読み出す。データ分類器165は、読み出した書き込み単位に含まれる転送用符号を、読み出した書き込み単位に含まれるプロセッサ識別子を表すデータと、当該プロセッサ識別子が示すプロセッサ120のネストレベルの値とから成るセットに関連付けされた演算器175へ順次出力する。ある演算器175と、プロセッサ識別子及びネストレベルの値から成るあるセットとの間の関連付けした状態を表すデータは、例えば、データ分類器165(図12のCPU903等)が不図示のメモリ(図12の記憶装置902等)に格納していることとする。
 各演算器175は、データ分類器165により出力された一連の転送用符号に基づいて、転送対象データを再構成する。ここで、各演算器175は、各プロセッサ120と当該プロセッサ120のネストレベルのある値とから成るセットに関連付けされることとする。各演算器175は、例えば、あるプロセッサ120と当該プロセッサ120のネストレベルのある値とから成るセットに予め関連付けされてもよい。又は、データ分類器165は、プロセッサ識別子を表すデータと当該プロセッサ識別子に関するネストレベルのある値との新規なセットを検出した際に、ある演算器175に、当該セットを識別するデータを動的に関連付けてもよい。つまり、演算器175の台数は、プロセッサ120の台数nにネストレベルの取り得る値の数を乗じた数以上である。
 表示器180は、演算器175により再構成された転送対象データを表示する。表示器180は、例えば、各プロセッサ120のBIOSにより出力されたPOSTコードを表示する。ここで、各表示器180は、各演算器175に関連付けされることとする。つまり、表示器180の台数は、演算器175の台数以上である。
 本実施形態におけるその他の構成は、第1の実施形態における構成と同じである。
 図7は、本発明の第2の実施形態における情報処理システムの実施例を示すブロック図である。図7では、説明を簡単にするために、ネストレベルの取り得る値の数は2であることとする。又、プロセッサ120及びレベルカウンタ190それぞれの台数nは、64台であることとする。又、演算器175及び表示器180それぞれの台数mは、128台であることとする。又、レベルカウンタ“0”、“1”、・・・、“63”は順に、プロセッサ“0”、“1”、・・・、“63”に予め関連付けされていることとする。又、演算器“00”、“10”、・・・、“630”は順に、プロセッサ“0”、“1”、・・・、“63”とネストレベル“1”とから成るセットに予め関連付けされていることとする。又、演算器“01”、“11”、・・・、“631”は順に、プロセッサ“0”、“1”、・・・、“63”とネストレベル“2”とから成るセットに予め関連付けされていることとする。又、表示器“00”、“10”、・・・、“630”は順に、演算器“00”、“10”、・・・、“630”に予め関連付けされていることとする。又、表示器“01”、“11”、・・・、“631”は順に、演算器“01”、“11”、・・・、“631”に予め関連付けされていることとする。
 本実施形態における動作について説明する。但し、図7に示した情報処理システムの実施例における動作について説明する。
(動作例1)
 まず、割り込みが発生しない場合の動作について説明する。
 図8は、本発明の第2の実施形態における情報処理システムの動作例を説明する表である。より具体的には、図8は、情報処理システム105における周辺装置155の動作例を示す。図8において、「タイミング」列は動作におけるタイミングを示す。又、「受信符号」列は、データ分類器165が受信した、プロセッサ識別子を表すデータと転送用符号とから成るセットを示す。ここで、“P0”はプロセッサ“0”の識別子を示し、“P1”はプロセッサ“1”の識別子を示す。“S”はスタート符号を示す。“D00”、“D01”、・・・、“D05”は、プロセッサ“0”の転送対象データ(転送対象データ“D0”)を表す一連の転送用符号を示す。“D10”、“D11”、・・・、“D15”は、プロセッサ“1”の転送対象データ(転送対象データ“D1”)を表す一連の転送用符号を示す。「カウンタ0」列は、レベルカウンタ“0”が保持するデータが表す値を示す。「カウンタ1」列は、レベルカウンタ“1”が保持するデータが表す値を示す。「演算器00」列は、演算器“00”が保持するデータが表す値を示す。「演算器10」列は、演算器“10”が保持するデータが表す値を示す。
 周辺装置155は、以下のように動作する。
 タイミング1:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“00”を初期化(図8では「-」にて表記、以下同様)する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
 タイミング2:
データ分類器165は、“P1”,“S”を読み出し、レベルカウンタ“1”を1だけ増加させ、演算器“10”を初期化する。
 タイミング3:
データ分類器165は、“P1”,“D10”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D10”を保持する。
 タイミング4:
データ分類器165は、“P0”,“D00”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D00”を保持する。
 タイミング5:
データ分類器165は、“P1”,“D11”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D11”に3を乗じた値を、保持していた値“D10”に加算する。
 タイミング6:
データ分類器165は、“P0”,“D01”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D01”に3を乗じた値を、保持していた値“D00”に加算する。
 タイミング7:
データ分類器165は、“P0”,“D02”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D02”に3を乗じた値を、保持していた値“D00+D01×3”に加算する。
 タイミング8:
データ分類器165は、“P1”,“D12”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D12”に3を乗じた値を、保持していた値“D10+D11×3”に加算する。
・・・(中略)・・・
 タイミング13:
データ分類器165は、“P0”,“D05”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D05”に3を乗じた値を、保持していた値“D00+D01×3+D02×3+D03×3+D04×3”に加算する。続いて、演算器“00”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“00”は、転送対象データ“D0”の再構成を完了する。
 タイミング14:
データ分類器165は、“P1”,“D15”を読み出し、演算器“10”へ出力する。これに応じて、演算器“10”は、入力された値“D15”に3を乗じた値を、保持していた値“D10+D11×3+D12×3+D13×3+D14×3”に加算する。続いて、演算器“10”は、レベルカウンタ“1”を1だけ減少させる。本例においては、以上説明した動作により、演算器“10”は、転送対象データ“D1”の再構成を完了する。
(動作例2)
 次に、割り込みが発生する場合の動作について説明する。
 図9は、本発明の第2の実施形態における情報処理システムの別の動作例を説明する表である。より具体的には、図9は、情報処理システム105における周辺装置155の動作例を示す。図9における記述方法は、図8における記述方法と同じである。但し、“D00”、“D01”、・・・、“D05”は、プロセッサ“0”の転送対象データ(転送対象データ“D0”)を表す一連の転送用符号を示す。又、“D10”、“D11”、・・・、“D15”は、プロセッサ“0”の別の転送対象データ(転送対象データ“D1”)を表す一連の転送用符号を示す。又、「演算器01」列は、演算器“01”が保持するデータが表す値を示す。
 周辺装置155は、以下のように動作する。
 タイミング1:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“00”を初期化(図9では「-」にて表記、以下同様)する。以下の各タイミングを含めて、言及していない他方の演算器は、以前の状態を保持しているので、当該演算器については個々の説明を省略する。
 タイミング2:
データ分類器165は、“P0”,“D00”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D00”を保持する。
 タイミング3:
データ分類器165は、“P0”,“D01”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D01”に3を乗じた値を、保持していた値“D00”に加算する。
 タイミング4:
データ分類器165は、“P0”,“D02”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D02”に3を乗じた値を、保持していた値“D00+D01×3”に加算する。
 タイミング5:
データ分類器165は、“P0”,“S”を読み出し、レベルカウンタ“0”を1だけ増加させ、演算器“01”を初期化する。
 タイミング6:
データ分類器165は、“P0”,“D10”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D10”を保持する。
 タイミング7:
データ分類器165は、“P0”,“D11”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D11”に3を乗じた値を、保持していた値“D10”に加算する。
 タイミング8:
データ分類器165は、“P0”,“D12”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D12”に3を乗じた値を、保持していた値“D10+D11×3”に加算する。
・・・(中略)・・・
 タイミング11:
データ分類器165は、“P0”,“D15”を読み出し、演算器“01”へ出力する。これに応じて、演算器“01”は、入力された値“D15”に3を乗じた値を、保持していた値“D10+D11×3+D12×3+D13×3+D14×3”に加算する。続いて、演算器“01”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“01”は、転送対象データ“D1”の再構成を完了する。
・・・(中略)・・・
 タイミング14:
データ分類器165は、“P0”,“D05”を読み出し、演算器“00”へ出力する。これに応じて、演算器“00”は、入力された値“D05”に3を乗じた値を、保持していた値“D00+D01×3+D02×3+D03×3+D04×3”に加算する。続いて、演算器“00”は、レベルカウンタ“0”を1だけ減少させる。本例においては、以上説明した動作により、演算器“00”は、転送対象データ“D0”の再構成を完了する。
 本実施形態におけるその他の動作は、第1の実施形態における動作と同じである。
 以上説明したように、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素を含む。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100と同じ効果を有する。
 又、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素に加えて、レベルカウンタ190を含む。そして、本実施形態の情報処理システム105では、周辺装置155がレベルカウンタ190を有するので、データ転送の割り込みが可能である。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100における効果に加えて、データ転送の割り込みが可能であるという効果を有する。
 又、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100の構成要素に加えて、表示器180を含む。そして、本実施形態の情報処理システム105では、周辺装置155が表示器180を有するので、転送対象データの表示が可能である。従って、本実施形態の情報処理システム105は、第1の実施形態の情報処理システム100における効果に加えて、転送対象データの表示が可能であるという効果を有する。
(第3の実施形態)
 次に、本発明の第1の実施形態を基本とする、本発明の第3の実施形態について説明する。本実施形態における情報処理システムでは、情報処理装置の各プロセッサにより出力された転送対象データが、周辺装置に接続された外部の被制御装置へ中継される。
 本実施形態における構成について説明する。
 図10は、本発明の第3の実施形態における情報処理システムの構成の一例を示すブロック図である。
 本実施形態における情報処理システム106は、情報処理装置110と、周辺装置156と、複数の被制御装置210とを含む。情報処理装置110と、周辺装置156とは、パラレルポート用のケーブルにより接続される。周辺装置156と、各被制御装置210とは、それぞれ別のパラレルポート用のケーブルにより接続される。
 周辺装置156は、データ分類器160と、複数の演算器170と、複数の専用パラレルポート136とを含む。
 専用パラレルポート136は、演算器170により再構成された転送対象データを出力する。専用パラレルポート136は、例えば、各プロセッサ120により出力された被制御装置210に対する制御命令を出力する。ここで、各専用パラレルポート136は、各演算器170に関連付けされることとする。つまり、専用パラレルポート136の台数は、演算器170の台数以上である。
 被制御装置210は、周辺装置156により出力された転送対象データに基づいて動作する。被制御装置210は、例えば、専用パラレルポート136から受信した命令に基づいて動作する工作機械である。
 本実施形態におけるその他の構成は、第1の実施形態における構成と同じである。
 本実施形態における動作について説明する。
 図11は、本発明の第3の実施形態における情報処理システムが適用される対象の構成の一例を示すブロック図である。
 本実施形態の適用対象である情報処理システム109は、情報処理装置119と、複数の被制御装置210とを含む。
 情報処理装置119は、複数のプロセッサ129と、複数の専用パラレルポート139とを含む。プロセッサ129同士は、互いにデータ通信可能でなくてもよい。各専用パラレルポート139は、当該専用パラレルポート139に予め関連付けされた1台のプロセッサ129により占有される。
 被制御装置210は、情報処理装置119により出力された転送対象データに基づいて動作する。被制御装置210は、例えば、専用パラレルポート139から受信した命令に基づいて動作する工作機械である。ここで、専用パラレルポート139は、専用パラレルポート136と互換性のあるインタフェースを有することとする。例えば、専用パラレルポート139と専用パラレルポート136とは、同じバス幅を有し、同じ規格に準拠する。
 情報処理装置119の各プロセッサ129上で動作していたプログラムを、本実施形態における情報処理装置110へ移植する場合について説明する。但し、情報処理装置110は、プロセッサ120毎の専用パラレルポートを含まないこととする。
 情報処理装置119の各プロセッサ129上で動作していたプログラム(移植対象プログラム)は、専用パラレルポート139へ書き込んだ転送対象データに基づいて、被制御装置210を動作させる。一方、情報処理装置110の各プロセッサ120上で動作するプログラム(移植後プログラム)は、共有パラレルポート130へ書き込んだ転送対象データに基づいて、被制御装置210を動作させる。移植対象プログラムと移植後プログラムとの違いは、転送対象データを書き込むパラレルポートが、専用パラレルポート139であるか又は共有パラレルポート130であるかの違いのみである。そして、共有パラレルポート130における排他制御は不要であるから、移植対象プログラムから移植後プログラムへの移植は容易である。
 そして、周辺装置156は、共有パラレルポート130から読み出したデータをプロセッサ120毎に異なる被制御装置210へ転送する。被制御装置210に対する情報処理システム106における専用パラレルポート136のインタフェースは、情報処理システム109における専用パラレルポート139と互換性を有する。
 以上説明したように、本実施形態の情報処理システム106では、情報処理システム109上で動作していたプログラムを移植することは容易である。そして、周辺装置156は、被制御装置210に対して、情報処理システム109におけるインタフェースと互換性のあるインタフェースを提供する。従って、本実施形態の情報処理システム106には、情報処理システム109上で動作していたプログラムの移植に要するコストを抑制できるという効果がある。
 図12は、本発明の各実施形態における情報処理装置又は周辺装置を実現可能なハードウェア構成の一例を示すブロック図である。
 情報処理装置907又は周辺装置907は、記憶装置902と、CPU(Central Processing Unit)903と、I/O(Input/Output)装置908とを備え、これらが内部バス906によって接続されている。情報処理装置907では、CPU903は、マルチプロセッサを含む。情報処理装置907では、I/O装置908は、パラレルポートを含む。記憶装置902は、プロセッサ120、データ分類器160、演算器170等のCPU903の動作プログラムを格納する。CPU903は、情報処理装置907又は周辺装置907全体を制御し、記憶装置902に格納された動作プログラムを実行し、I/O装置908を介してプロセッサ120、データ分類器160、演算器170等のプログラムの実行やデータの送受信を行なう。なお、上記の情報処理装置907又は周辺装置907の内部構成は一例である。周辺装置907は、表示器等を更に接続した装置構成であってもよい。
 上述した本発明の各実施形態における情報処理装置又は周辺装置は、専用の装置によって実現してもよいが、I/O装置908が外部との通信を実行するハードウェアの動作以外は、コンピュータ(情報処理装置)によっても実現可能である。本発明の各実施形態において、I/O装置908は、例えば、プロセッサ120、データ分類器160、演算器170等との入出力部である。この場合、係るコンピュータは、記憶装置902に格納されたソフトウェア・プログラムをCPU903に読み出し、読み出したソフトウェア・プログラムをCPU903において実行する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図1、図6、又は図10に示した情報処理装置又は周辺装置の各部の機能を実現可能な記述がなされていればよい。ただし、これらの各部には、適宜ハードウェアを含むことも想定される。そして、このような場合、係るソフトウェア・プログラム(コンピュータ・プログラム)は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な非一時的な記憶媒体も、本発明を構成すると捉えることができる。
 以上、本発明を、上述した各実施形態及びその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態及びその変形例に記載した範囲に限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、請求の範囲に記載した事項により明らかである。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
 複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
 各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
 前記データ分類手段は、
  前記共有パラレルポートから前記書き込み単位を順次読み出し、
  読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
 前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
情報処理システム。
(付記2)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記1に記載の情報処理システム。
(付記3)
 前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
 前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
 前記データ分類手段は、
  前記共有パラレルポートから前記書き込み単位を順次読み出し、
  読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ増加させ、
  読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、
該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
 前記演算手段は、
  前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
  該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ減少させる
付記1又は2に記載の情報処理システム。
(付記4)
 各前記演算手段は、互いに異なる出力先に接続され、前記再構成した前記転送対象データを、該演算手段に接続された前記出力先へ出力する
付記1乃至3の何れか1項に記載の情報処理システム。
(付記5)
 前記転送対象データは、前記情報処理装置の電源が投入された際に実行される自己診断処理における状態を示すコードであり、
 前記周辺装置は、各前記演算手段に接続された、該演算手段により再構成された前記コードを表示する表示手段を更に備える
付記1乃至4の何れか1項に記載の情報処理システム。
(付記6)
 複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、
 各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む
情報処理装置。
(付記7)
 データ分類手段及び複数の演算手段を備えた周辺装置であって、
 前記データ分類手段は、
  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
  読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
 前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
周辺装置。
(付記8)
 複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
 各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
 前記データ分類手段により、
  前記共有パラレルポートから前記書き込み単位を順次読み出し、
  読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
 前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
データ転送方法。
(付記9)
 複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、
 転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む処理を実行させる情報処理装置のデータ転送プログラムを格納した非一時的な記憶媒体。
(付記10)
 データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、
 前記データ分類手段により、
  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを
含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
  読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力する処理と、
 前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する処理と
を実行させる周辺装置のデータ転送プログラムを格納した非一時的な記憶媒体。
(付記11)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記6に記載の情報処理装置。
(付記12)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記7に記載の周辺装置。
(付記13)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記8に記載のデータ転送方法。
(付記14)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記9に記載情報処理装置のデータ転送プログラムを格納した非一時的な記憶媒体。
(付記15)
 前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
付記10に記載の周辺装置のデータ転送プログラムを格納した非一時的な記憶媒体。
 この出願は、2017年1月24日に出願された日本出願特願2017-009986を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、複数のプロセッサと複数のプロセッサにより共有される共有パラレルポートとを有する情報処理装置において、情報処理装置内部の共有パラレルポート、及び情報処理装置と周辺装置とを接続する共有パラレルポート等を実装する用途において利用できる。又、本発明は、複数のプロセッサ及び複数のプロセッサにより共有される共有パラレルポートを有する情報処理装置と、パラレルポートにより制御される非制御装置との間において、データ転送を中継する周辺装置を実装する用途において利用できる。
 100、105、109 情報処理システム
 110、119 情報処理装置
 120、129 プロセッサ
 130 共有パラレルポート
 136、139 専用パラレルポート
 150、155、156 周辺装置
 160、165 データ分類器
 170、175 演算器
 180 表示器
 190 レベルカウンタ
 210 被制御装置
 902 記憶装置
 903 CPU
 906 内部バス
 907 情報処理装置
 908 I/O装置

Claims (15)

  1.  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムであって、
     各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
     前記データ分類手段は、
      前記共有パラレルポートから前記書き込み単位を順次読み出し、
      読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
     前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
    情報処理システム。
  2.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項1に記載の情報処理システム。
  3.  前記周辺装置は、各前記プロセッサにおける割り込みのネストレベルを表すデータを保持する、前記プロセッサ識別子を表すデータに関連付けされたレベルカウンタを更に備え、
     前記プロセッサは、前記転送対象データのうちのある転送対象データの転送開始を示す前記転送用符号であるスタート符号を、前記スタート符号を除く、該ある転送対象データを表現する前記一連の転送用符号の書き込み以前に前記共有パラレルポートへ書き込み、
     前記データ分類手段は、
      前記共有パラレルポートから前記書き込み単位を順次読み出し、
      読み出した前記書き込み単位に前記スタート符号が含まれる場合に、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ増加させ、
      読み出した前記書き込み単位に含まれる、前記スタート符号を除く前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータと、
    該プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルとから成るセットに関連付けされた前記演算手段へ順次出力し、
     前記演算手段は、
      前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成し、
      該演算手段に関連付けされた前記プロセッサ識別子を表すデータに関連付けされた前記レベルカウンタにおける前記割り込みのネストレベルを表すデータを1だけ減少させる
    請求項1又は2に記載の情報処理システム。
  4.  各前記演算手段は、互いに異なる出力先に接続され、前記再構成した前記転送対象データを、該演算手段に接続された前記出力先へ出力する
    請求項1乃至3の何れか1項に記載の情報処理システム。
  5.  前記転送対象データは、前記情報処理装置の電源が投入された際に実行される自己診断処理における状態を示すコードであり、
     前記周辺装置は、各前記演算手段に接続された、該演算手段により再構成された前記コードを表示する表示手段を更に備える
    請求項1乃至4の何れか1項に記載の情報処理システム。
  6.  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置であって、
     各前記プロセッサは、転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む
    情報処理装置。
  7.  データ分類手段及び複数の演算手段を備えた周辺装置であって、
     前記データ分類手段は、
      複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
      読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
     前記演算手段は、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
    周辺装置。
  8.  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置と、データ分類手段、及び前記複数のプロセッサの台数以上の演算手段を含む周辺装置とを備えた情報処理システムにおけるデータ転送方法であって、
     各前記プロセッサにより、転送対象データを構成可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込み、
     前記データ分類手段により、
      前記共有パラレルポートから前記書き込み単位を順次読み出し、
      読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力し、
     前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する
    データ転送方法。
  9.  複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを備えた情報処理装置が備えるコンピュータに、
     転送対象データを表すことが可能な一連の転送用符号のそれぞれに、各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を生成し、生成した前記書き込み単位を前記共有パラレルポートへ前記共有パラレルポートにおける排他制御を行わずに順次書き込む処理
    を実行させる情報処理装置のデータ転送プログラムを格納した非一時的な記憶媒体。
  10.  データ分類手段及び複数の演算手段を備えた周辺装置が備えるコンピュータに、
     前記データ分類手段により、
      複数のプロセッサと前記複数のプロセッサにより共有される共有パラレルポートとを含む情報処理装置が有する前記共有パラレルポートから、前記情報処理装置が転送する転送対象データを表すことが可能な一連の転送用符号のそれぞれに、前記情報処理装置が有する各前記プロセッサの識別子(以下、プロセッサ識別子)を表すデータを付加することにより、前記共有パラレルポートのバス幅において1回で書き込み可能な書き込み単位を順次読み出し、
      読み出した前記書き込み単位に含まれる前記一連の転送用符号を、読み出した前記書き込み単位に含まれる前記プロセッサ識別子を表すデータに関連付けされた前記演算手段へ順次出力する処理と、
     前記演算手段により、前記データ分類手段により出力された前記一連の転送用符号に基づいて前記転送対象データを再構成する処理と
    を実行させる周辺装置のデータ転送プログラムを格納した非一時的な記憶媒体。
  11.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項6に記載の情報処理装置。
  12.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項7に記載の周辺装置。
  13.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項8に記載のデータ転送方法。
  14.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項9に記載情報処理装置のデータ転送プログラムを格納した非一時的な記憶媒体。
  15.  前記転送対象データを表す前記一連の転送用符号に含まれる各前記転送用符号は、所定の順序で送信される、前記転送対象データをL(Lは2以上の整数)進数表現した場合における互いに異なる桁の値を表す
    請求項10に記載の周辺装置のデータ転送プログラムを格納した非一時的な記憶媒体。
PCT/JP2018/001496 2017-01-24 2018-01-19 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体 WO2018139344A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201880008088.8A CN110214315B (zh) 2017-01-24 2018-01-19 信息处理系统、信息处理设备、外围设备、数据传输方法
US16/478,214 US10936515B2 (en) 2017-01-24 2018-01-19 Information processing system including data classification unit for reconstructing transfer data based on defined transfer codes

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-009986 2017-01-24
JP2017009986A JP6767269B2 (ja) 2017-01-24 2017-01-24 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラム

Publications (1)

Publication Number Publication Date
WO2018139344A1 true WO2018139344A1 (ja) 2018-08-02

Family

ID=62979124

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/001496 WO2018139344A1 (ja) 2017-01-24 2018-01-19 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体

Country Status (4)

Country Link
US (1) US10936515B2 (ja)
JP (1) JP6767269B2 (ja)
CN (1) CN110214315B (ja)
WO (1) WO2018139344A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11114136B2 (en) * 2018-08-21 2021-09-07 Marcon International Inc Circuit, system, and method for reading memory-based digital identification devices in parallel

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364558A (ja) * 1991-06-12 1992-12-16 Toshiba Corp パーソナルコンピュータ
JPH07168768A (ja) * 1993-12-14 1995-07-04 Shikoku Nippon Denki Software Kk 初期自己診断方法
JP2008041099A (ja) * 2006-08-08 2008-02-21 Arm Ltd データ処理装置のための相互接続論理
JP2008102921A (ja) * 2006-10-18 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム、ハイパートランスポート環境におけるi/oアダプタのlpar分離方法、およびプログラム記憶デバイス

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05216792A (ja) 1992-02-05 1993-08-27 Fujitsu Ltd プロセッサ間におけるサービス要求制御方式
JPH06103213A (ja) * 1992-09-18 1994-04-15 Hitachi Ltd 入出力装置
US7274696B1 (en) * 2002-10-21 2007-09-25 Force10 Networks, Inc. Scalable redundant switch fabric architecture
US8804751B1 (en) * 2005-10-04 2014-08-12 Force10 Networks, Inc. FIFO buffer with multiple stream packet segmentation
JP5169117B2 (ja) 2007-10-02 2013-03-27 日本電気株式会社 データストリーム解析システム、およびそれに用いる装置、方法並びにプログラム
US20160012465A1 (en) * 2014-02-08 2016-01-14 Jeffrey A. Sharp System and method for distributing, receiving, and using funds or credits and apparatus thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04364558A (ja) * 1991-06-12 1992-12-16 Toshiba Corp パーソナルコンピュータ
JPH07168768A (ja) * 1993-12-14 1995-07-04 Shikoku Nippon Denki Software Kk 初期自己診断方法
JP2008041099A (ja) * 2006-08-08 2008-02-21 Arm Ltd データ処理装置のための相互接続論理
JP2008102921A (ja) * 2006-10-18 2008-05-01 Internatl Business Mach Corp <Ibm> データ処理システム、ハイパートランスポート環境におけるi/oアダプタのlpar分離方法、およびプログラム記憶デバイス

Also Published As

Publication number Publication date
US10936515B2 (en) 2021-03-02
CN110214315B (zh) 2023-03-07
CN110214315A (zh) 2019-09-06
JP6767269B2 (ja) 2020-10-14
US20190370196A1 (en) 2019-12-05
JP2018120323A (ja) 2018-08-02

Similar Documents

Publication Publication Date Title
US8281053B2 (en) Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US9990319B2 (en) Placement of input / output adapter cards in a server
US20070245122A1 (en) Executing an Allgather Operation on a Parallel Computer
US20090204789A1 (en) Distributing parallel algorithms of a parallel application among compute nodes of an operational group in a parallel computer
US20200409664A1 (en) Transpose operations using processing element array
CN107957965B (zh) 服务质量序数修改
CN113254073B (zh) 数据处理方法及装置
CN114840339A (zh) Gpu服务器、数据计算方法及电子设备
Shim et al. Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing
WO2018139344A1 (ja) 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラムが格納された非一時的な記憶媒体
US20200349312A1 (en) Core-Only System Management Interrupt
US20090193225A1 (en) System and method for application specific array processing
US8631183B2 (en) Integrated circuit system, and data readout method
US11500802B1 (en) Data replication for accelerator
JP2012203451A (ja) 半導体集積回路シミュレーション装置及び半導体集積回路のシミュレーション方法
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
CN101751356A (zh) 用于改进直接存储器存取传送效率的方法、系统和装置
EP3757822B1 (en) Apparatuses, methods, and systems for enhanced matrix multiplier architecture
US11354130B1 (en) Efficient race-condition detection
US10997277B1 (en) Multinomial distribution on an integrated circuit
CN111260046B (zh) 运算方法、装置及相关产品
CN111260070B (zh) 运算方法、装置及相关产品
JP7010129B2 (ja) プロセッサ及び情報処理装置
US20240111694A1 (en) Node identification allocation in a multi-tile system with multiple derivatives
RU2686017C1 (ru) Реконфигурируемый вычислительный модуль

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18744437

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18744437

Country of ref document: EP

Kind code of ref document: A1