Computer device, elevator device, and program
The system addresses performance decline in shared memory multiprocessor systems by using a shared memory unit and conflict detection unit to set and adjust priority orders for ports, ensuring efficient and predictable access, thus optimizing execution performance in shared memory systems.
Patent Information
- Application Number
- PCT/JP2023/024902
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-07-05
- Publication Date
- 2025-01-09
AI Technical Summary
In shared memory multiprocessor systems, existing technologies experience a decline in execution processing performance when multiple processor devices access shared resources, leading to unpredictable operation due to random access order and inefficient priority setting.
A computer device and elevator system with a shared memory unit and conflict detection unit that sets and adjusts priority orders for connected ports, ensuring sequential execution of control processing commands based on determined processing priorities, thereby managing conflicts and optimizing access to shared resources.
This solution effectively suppresses the decline in execution processing performance by prioritizing access to shared memory, ensuring efficient and predictable operation even when multiple control units access shared resources simultaneously.
Smart Images

Figure JP2023024902_09012025_PF_FP_ABST
Abstract
Description
Computer device, elevator device, and program
[0001] The present invention relates to a computer device, an elevator device, and a program.
[0002] In a shared memory type multiprocessor computer system in which a plurality of processors share a main memory, exclusive control is performed to give priority to processing from a predetermined control unit.
[0003] In Patent Document 1, a computer system including multiple processors and shared resources shared by the multiple processors is described in which an execution-starting processor that is about to start executing an application program transmits an exclusive operation request signal (interrupt signal) to the other processors requesting exclusive use of the shared resources. The document also discloses that the processors that receive the exclusive operation request signal from the execution-starting processor suspend access to the shared resources for a predetermined period of time.
[0004] Japanese Patent Application Laid-Open No. 2009-277007
[0005] However, in the invention disclosed in Patent Document 1, when exclusive control is performed, processor devices other than the processor device where execution is started are stopped, resulting in a corresponding decrease in execution processing performance. Furthermore, priority is set for the processor device that starts execution using an interrupt to use the shared resource. Therefore, no consideration is given to setting priority when multiple processor devices use the shared resource simultaneously, which can result in random access to the shared resource, resulting in unexpected behavior.
[0006] Therefore, the present invention provides a computer system, an elevator system, and a program that can suppress a decrease in the execution processing performance of each control unit when a shared memory unit is accessed from a plurality of control units.
[0007] To solve the above problems and achieve the object of the present invention, the computer device of the present invention comprises a shared memory unit that stores data from multiple control units, a conflict detection unit that detects conflicts between control processing commands sent from the multiple control units, a priority port setting unit that sets priorities for multiple ports to which each control unit is connected, and a processing priority unit that, when a conflict is detected by the conflict detection unit, determines the processing order of the multiple control processing commands input through each port based on the priority information set by the priority port setting unit, and a control processing unit that sequentially executes the control processing commands input from each port in the shared memory unit according to the processing order determined by the processing priority unit.
[0008] The elevator system of the present invention comprises a plurality of control units, including a car control unit that controls the lifting and lowering operations of elevators, and a shared memory control unit having a shared memory unit that stores data for the plurality of control units. The shared memory control unit comprises a shared memory unit shared by the plurality of control units and a conflict detection unit that detects conflicts among control processing commands transmitted from the plurality of control units. The system also comprises a priority port setting unit that sets priorities among the plurality of ports to which the respective control units are connected, a processing priority unit that, when a conflict is detected by the conflict detection unit, determines a processing order for the plurality of control processing commands input via each port based on the priority information set by the priority port setting unit, and a control processing unit that sequentially executes the control processing commands input from each port in the shared memory unit according to the processing order determined by the processing priority unit.
[0009] The program of the present invention is a program executed by a computer device having a shared memory unit for storing data of a plurality of control units, and includes the steps of: detecting a conflict between control processing commands transmitted from the plurality of control units when the control processing commands are transmitted from the plurality of control units at the same time; setting priorities for the plurality of ports to which the respective control units are connected; determining, when a conflict is detected, a processing order for the plurality of control processing commands input via the respective ports based on the set priority information; and sequentially executing the control processing commands input from each port in the shared memory unit according to the determined processing order.
[0010] According to the present invention, when a shared memory unit is accessed from a plurality of control units, it is possible to suppress a decrease in the execution processing performance of each control unit.
[0011] 1 is a block diagram showing the configuration of a control system of an elevator apparatus 100 according to an embodiment of the present invention. FIG. 2 is a diagram showing details of information stored in a priority port parameter storage unit 60 and a control command data storage unit 61 stored in a shared memory unit 55. FIG. 3 is a diagram showing details of conflict detection parameters 1 to 5 stored in the shared memory unit 55. FIG. 4 is a flowchart showing a method for setting priority port parameters. FIG. 5 is a flowchart showing a priority processing method performed by a shared memory control unit 50 in the elevator apparatus 100. FIG. 6 is a timing chart of control processing performed in the elevator apparatus 100 and a diagram showing data processing timing in the shared memory control unit 50. FIG. 7 is a timing chart showing an example of signal processing according to a comparative example.
[0012] An example of a computer system, an elevator system, and a program according to an embodiment of the present invention will be described below with reference to the drawings. Note that the present invention is not limited to the following example. In the drawings described below, common parts are assigned the same reference numerals. Note that the following example will be described using an elevator system as an example of a computer system.
[0013] 1. Configuration of Elevator Apparatus (Example of Computer Apparatus) Fig. 1 is a block diagram showing the configuration of a control system of an elevator apparatus 100 according to one embodiment of the present invention (hereinafter referred to as this embodiment).
[0014] The elevator system 100 of this embodiment is composed of an elevator (not shown) and multiple control units that drive the various components of the elevator. The elevator includes a car installed in a hoistway in a building, a main rope attached at one end to the car, and a counterweight (not shown) to which the other end of the main rope is attached and suspended in the hoistway. The elevator also includes a hoist around which the main rope is wound. The hoist is rotatably installed, for example, in a machine room installed above the hoistway. The hoist is controlled and driven by a motor drive unit 1. As a result, the car rises and falls relative to the counterweight.
[0015] The configuration of multiple control units for driving and controlling the elevator of this embodiment will be described below. As shown in Figure 1, the elevator system 100 of this embodiment includes a motor drive unit 1, a hall terminal device 2, a door control unit 20, and a car control unit 30. Furthermore, the elevator system 100 includes a car control unit 10, a car / door control unit 40, and a shared memory control unit 50.
[0016] [Motor Drive Unit] The motor drive unit 1 drives and controls the elevator hoist under the control of the elevator control unit 10. When the motor drive unit 1 is driven and controlled, the elevator car moves up and down within the hoistway.
[0017] [Hall terminal device] The hall terminal device 2 is a device installed on each landing floor, and has an input / output unit consisting of hall buttons and a display. By operating the input / output unit of the hall terminal device 2, users can register hall calls. Signals related to hall call registration input by the hall terminal device 2 installed on each landing floor are transmitted to the elevator control unit 10.
[0018] The door control unit 20 is connected to a communication control unit 42 of the car / door control unit 40 via a door-side communication unit (not shown). The door control unit 20 controls the opening and closing operations of the car doors and the landing doors under the control of the car / door control unit 40. In addition, the door control unit 20 transmits, for example, information relating to the opening and closing status of the doors to the communication control unit 42 of the car / door control unit 40.
[0019] Although not shown, the car control unit 30 controls an operation display unit that is configured with operation buttons and a display installed inside the car. The operation buttons provided on the operation display unit of the car are configured to include destination floor buttons, door open / close buttons, etc. The car control unit 30 transmits input signals input from the operation buttons to a communication control unit 41 of the car / door control unit 40 via a car-side communication unit that is not shown. Furthermore, the car control unit 30 displays information on stopping floors and information indicating the destination direction on the operation display unit based on signals transmitted from the communication control unit 41 of the car / door control unit 40.
[0020] [Car Control Unit] The car control unit 10 controls each part of the elevator based on information transmitted from the elevator's hall terminal device 2 and the car control unit 30. For example, the car control unit 10 controls the motor drive unit 1 to move the car up and down based on a hall call registration signal transmitted from the hall terminal device 2 or a destination floor registration signal transmitted from the car side.
[0021] [Car / Door Control Unit] The car / door control unit 40 includes communication control units 41 and 42 and a shared memory control unit 50. The communication control unit 42 receives control signals transmitted from the door control unit 20 and transmits them to the shared memory control unit 50. The communication control unit 41 also receives control signals transmitted from the car control unit 10 and the car control unit 30 and transmits them to the shared memory control unit 50.
[0022] The shared memory control unit 50 includes a conflict detection unit 51 , a data buffer unit 52 , a processing priority unit 54 , a priority port setting unit 53 , and a shared memory unit 55 .
[0023] When a control signal related to a write processing command or a read processing command is transmitted from the communication control units 41, 42, the conflict detection unit 51 detects a conflict state regarding the processing content included in each control signal. The conflict detection unit 51 detects a conflict state regarding each control signal based on conflict detection parameters 1 to 5 (see FIG. 3) stored in a priority port parameter storage unit of the shared memory unit 55, which will be described later. The conflict detection parameters 1 to 5 will be described in detail later.
[0024] If there is a conflict in the control signals (control processing commands) sent from the communication control units 41 and 42, the data buffer unit 52 temporarily stores these control signals.
[0025] The priority port setting unit 53 sets priorities of a plurality of ports that serve as connection ports with other control units (car control unit 10, car control unit 30, door control unit 20) in the car / door control unit 40. In this embodiment, the priority port setting unit 53 sets the priority of each port based on the priority port setting data (see FIG. 2) written in the priority port parameter storage unit of the shared memory unit 55. The priority information set by the priority port setting unit 53 is transmitted to the processing priority unit 54 at a predetermined timing.
[0026] The processing priority unit 54 determines whether or not a priority port has been set (priority setting for each port) when there is a conflict in the control signals transmitted from the communication control units 41 and 42. If the processing priority unit 54 determines that a priority port has been set (priority setting for each port), it determines the processing order of the control processing commands stored in the data buffer unit 52 according to the priority set in the priority port setting unit 53, which will be described later.
[0027] The shared memory unit 55 is a memory that can be accessed by each control unit (the car control unit 10, the door control unit 20, and the car control unit 30) connected to a port (not shown) of the car / door control unit 40. The shared memory unit 55 stores data necessary for each control process, and also reads and writes (read processing, write processing) data related to each control process command input from the communication control units 41 and 42 in the shared memory unit 55.
[0028] In this embodiment, the shared memory unit 55 stores a priority port parameter storage unit 60 and a control command data storage unit 61 that indicates the type of control signal. Fig. 2 shows details of the information stored in the priority port parameter storage unit 60 and the control command data storage unit 61 stored in the shared memory unit 55. Fig. 3 shows details of conflict detection parameters 1 to 5 stored in the shared memory unit 55.
[0029] For example, priority port setting data, conflict detection parameters 1 to 5, set completion flag data, and set conflict flag data are stored in the priority port parameter storage unit 60. The priority port setting data is information indicating which of the multiple ports possessed by the car / door control unit 40 should have a priority in processing a control signal from, and is set by the car control unit 10 at the time of initial setup, for example.
[0030] Conflict detection parameters 1 to 5 are parameters that indicate a combination of control processes input from each port that serves as a connection port to the car / door control unit 40. FIG. 3 shows, for example, parameters for detecting conflicts between control signals input from port A and port B. For example, conflict detection parameter 1 is a parameter when the process input from port A and the process input from port B are read processes. Conflict detection parameter 2 is a parameter when the process input from port A is a read process and the process input from port B is a write process. Conflict detection parameter 3 is a parameter when the process input from port A is a write process and the process input from port B is a read process. Conflict detection parameter 4 is a parameter when the process input from port A and the process input from port B are write processes. Conflict detection parameter 5 indicates a parameter when conflicts between the process input from port A and the process input from port B do not need to be considered, i.e., when the parameter is "Don't care."
[0031] The set completion flag data indicates that the setting has been completed when a priority port is set. The set conflict flag data indicates that a conflict has occurred in the port set as the priority port when the priority port is set.
[0032] The control command data section 61 stores control command data (shown as data 1 to data X in FIG. 3) from each control section that is input to the shared memory control section 50. For example, control command data transmitted from the car control section 30 includes an in-car button signal, a communication status signal, etc. Furthermore, control command data transmitted from the door control section 20 includes a door open / close command, a communication status, etc.
[0033] Incidentally, each control unit (car control unit 10, door control unit 20, car control unit 30, car / door control unit 40, and shared memory control unit 50) constituting the above-described elevator system 100 is realized by an information processing device (hardware) such as a microcontroller. The information processing device constituting each control unit includes, for example, a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), and non-volatile storage, each connected to a bus.
[0034] The CPU is a control processing unit that reads out from the ROM the program code of the software that realizes each function of the present embodiment in each control unit, expands it into the RAM, and executes it. Note that the information processing device may include a processing device such as an MPU (Micro-Processing Unit) instead of the CPU. Variables, parameters, etc. that occur during the calculation process are temporarily written to the RAM.
[0035] Examples of non-volatile storage that can be used include hard disk drives (HDDs), solid state drives (SSDs), flexible disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, and non-volatile memory cards. This non-volatile storage stores the operating system (OS) as well as programs and data required for the CPU to operate. The non-volatile storage corresponds to the shared memory unit 55 of the shared memory control unit 50, as well as a storage unit (not shown) configured in each control unit. The programs may be stored in ROM.
[0036] The program is stored in the form of a program code that can be read by the CPU, and the CPU sequentially executes operations in accordance with the program code. In other words, a ROM or non-volatile storage is used as an example of a non-transitory recording medium that can be read by the CPU and that stores a program to be executed by the CPU.
[0037] With the above configuration, in the elevator system 100 of this embodiment, when there are multiple control units (CPUs) that can access the shared memory unit 55 of the shared memory control unit 50, the control signal from the control unit connected to the priority port is processed preferentially. A control processing method in the elevator system 100 of this embodiment will be described below.
[0038] 2. Elevator Device Control Method 2-1. Priority Port Parameter Setting Method First, a method for setting priority port parameters executed by the car control unit 10 in the elevator device 100 of this embodiment will be described. Figure 4 is a flowchart showing the priority port parameter setting method. Note that this embodiment describes a case where, of the multiple ports that serve as connection ports for the car / door control unit 40, priority is set between port A, which serves as the connection port for the car control unit 10, and port B, which serves as the connection port for the car control unit 30.
[0039] First, the car control unit 10 transmits a control signal to the car / door control unit 40 requesting a write process (write process) of priority port setting data to the priority port parameter storage unit 60 (step S1). As a result, the priority port setting data is input to the priority port parameter storage unit 60 in the shared memory unit 55 of the shared memory control unit 50. The priority port setting data is data that defines the priority of each port among multiple ports. Here, the priority port setting data in this embodiment sets whether the port that has priority for processing is port A or port B. Furthermore, the write process of the priority port setting data sets conflict detection parameters 1 to 5 in the priority port parameter storage unit 60.
[0040] Furthermore, by writing the priority port setting data, set completion flag data indicating whether the priority port parameters have been set correctly is updated in the shared memory unit 55. If the priority port parameters have been set correctly, the set completion flag data is set to ON, and if the priority port parameters have not been set correctly due to some cause such as a communication failure, the set completion flag data is set to OFF.
[0041] Furthermore, by writing the priority port setting data, set conflict flag data indicating whether or not a conflict has occurred in the set priority port parameters is updated in the shared memory unit 55. If some kind of conflict has occurred during priority port setting, for example, if multiple priority ports have been set due to a communication error or a control processing command from a control unit other than the unit control unit 10, the set conflict flag data is set to flag ON. On the other hand, if there is no conflict in the priority port setting, the set conflict flag data is set to flag OFF.
[0042] Next, the car control unit 10 transmits a control signal to the car / door control unit 40 requesting a read process (read process) of the set completion flag data and the set conflict flag data in the priority port parameter storage unit of the shared memory unit 55 (step S2). As a result, the set completion flag data and the set conflict flag data stored in the priority port parameter storage unit 60 are read out to the car control unit 10.
[0043] The elevator control unit 10 determines whether the flag in the set completion flag data is ON and whether the flag in the set conflict flag data is OFF (step S3). If the determination in step S3 is "YES," i.e., if the flag in the set completion flag data is ON and the flag in the set conflict flag data is OFF, it is determined that the priority port setting was performed correctly. As a result, normal elevator control processing is performed (step S4). Note that normal elevator control processing is elevator operation control, etc.
[0044] On the other hand, if the determination in step S3 is "NO," that is, if the flag in the set completion flag data is ON and the flag in the set conflict flag data is not OFF, the process proceeds to step S5. In step S5, the unit control unit 10 determines that an error has occurred in the setting of the priority port. Therefore, in this case, the process returns to step S1, and the processes of steps S1 to S3 are repeated. In this way, the unit control unit 10 repeats steps S1 to S3 until the priority port is correctly set in the shared memory unit 55.
[0045] The process of setting the priority port parameters shown in steps S1 to S3 may be performed as an initial setting when the power is turned on, or may be performed periodically. In the present embodiment, the setting of the priority port parameters is performed by the car control unit 10, but may also be performed by the door control unit 20 or the car control unit 30, for example.
[0046] 2-2. Priority Processing Method Next, a priority processing method implemented by the shared memory control unit 50 will be described. Figure 5 is a flowchart showing a priority processing method implemented by the shared memory control unit 50 in the elevator system 100 of this embodiment. Here, a case where priority processing is performed based on the priority port information set in Figures 2 and 3 will be described. In the shared memory control unit 50, a control processing unit (CPU), not shown, controls the various units shown in Figure 1 and executes priority processing.
[0047] First, the control processing unit determines whether the set completion flag data has been updated in the priority port parameter storage unit 60 (step S11). If the determination in step S11 is "NO," that is, if it is determined that the set completion flag data has not been updated, the process returns to step S11.
[0048] On the other hand, if the determination in step S11 is "YES", that is, if it is determined that the set completion flag data has been updated, the process proceeds to step S12.
[0049] In step S12, the control processing unit reads the priority port parameters from the shared memory unit 55. Thereafter, the control processing unit sets conflict detection parameters 1 to 5 of the priority port parameters in the conflict detection unit 51 (step S13). Furthermore, the control processing unit sets priority port setting data of the priority port parameters in the priority port setting unit 53 (step S14).
[0050] Next, the control processing unit determines whether an access signal including a control processing command related to a read process or a write process has been sent from the communication control units 41, 42 (step S15). If the determination in step S15 is "NO," that is, if it is determined that a control signal has not been sent, the process returns to step S11.
[0051] On the other hand, if the determination in step S is "YES", that is, if it is determined that a control signal has been transmitted, the process proceeds to step S16.
[0052] Next, under the control of the control processing unit, the conflict detection unit 51 detects a conflict in accordance with conflict detection parameters 1 to 5. Thereafter, the conflict detection unit 51 determines whether or not there is a conflict in the input control processing command. A case in which it is determined that there is a conflict is when access signals are simultaneously input to the shared memory control unit 50 from multiple ports (in this embodiment, port A and port B), which corresponds to conflict detection parameters 1 to 4. On the other hand, a case in which the conflict detection unit determines that there is no conflict is when, for example, access signals simultaneously input to the shared memory control unit 50 from port A and port B correspond to conflict detection parameter 5, or when an access signal is input from only one port. Note that it is possible to arbitrarily set which conflict detection parameter is detected as a conflict.
[0053] If the result of step S17 is "NO", that is, if the conflict detection unit 51 determines that there is no conflict, the control processing unit executes the input predetermined processing in the shared memory unit 55 (step S19).
[0054] On the other hand, if the result of step S17 is "YES," that is, if the conflict detection unit 51 determines that there is a conflict, the control processing unit temporarily stores each control processing command (write processing or read processing) sent from the communication control units 41 and 42 in the data buffer unit 52.
[0055] Next, the control processing unit determines whether or not a priority port has been set in the processing priority unit 54 (step S20). The processing priority unit 54 determines whether or not a priority port has been set based on information from the priority port setting unit 53. If the determination in step S20 is "NO," that is, if the processing priority unit 54 determines that no priority port has been set, the process proceeds to step S19. In step S19, the control processing commands stored in the data buffer unit 52 are executed in the shared memory unit 55, for example, in the order in which they were input.
[0056] On the other hand, if the determination in step S20 is "YES", that is, if the processing priority unit 54 determines that a priority port has been set, the process proceeds to step S21.
[0057] In step S21, under the control of the control processing unit, the processing priority unit 54 determines whether the priority port is port A. If the determination in step S21 is "YES," that is, if it is determined that the priority port is port A, the process proceeds to step S22.
[0058] In step S22, the control processing unit executes the control processing input from port A stored in the data buffer unit 52 in the shared memory unit 55. Thereafter, the control processing unit executes the control processing input from port B stored in the data buffer unit 52 in the shared memory unit 55. Thereafter, the process returns to step S11.
[0059] On the other hand, if the determination in step S21 is "NO," that is, if it is determined that the priority port is not port A, the process proceeds to step S23.
[0060] In step S23, the control processing unit executes the control processing command input from port B stored in the data buffer unit 52 in the shared memory unit 55 (step S23). Thereafter, the control processing unit executes the control processing input from port A stored in the data buffer unit 52 in the shared memory unit 55 (step S24). Thereafter, the process returns to step S11.
[0061] In this way, when the priority of each port is set in the priority port setting unit 53, the processing priority unit 54 determines the processing order of each control processing command input from each port. Then, in accordance with the determined processing order, the control processing unit executes each control processing command in the shared memory unit 55. The flow shown in Figure 5 is repeated while the elevator system 100 is in operation. Note that in Figure 5, the flow relating to steps S11 to S14 may be executed only at the start of operation (initial movement).
[0062] As described above, in this embodiment, when a priority port is set and there is a conflict between control process commands input from multiple ports at the same time, the control process command input from the priority port is given priority and is executed in the shared memory unit 55. Also, in this embodiment, the shared memory control unit 50 temporarily stores the control process commands input from each port at the same time in the data buffer unit 52. This eliminates busy waiting on the car control unit 10, car control unit 30, and door control unit 20, which can access the shared memory unit 55, thereby reducing the CPU load in each control unit.
[0063] 3. Control Example of Priority Processing Next, a specific example of control of priority processing performed in the elevator system 100 of this embodiment will be described. Figure 6 is a timing chart of the control processing performed in the elevator system 100 of this embodiment, and a diagram showing the data processing timing in the shared memory control unit 50. In Figure 6, the connection port from the car control unit 10 to the communication control unit 42 is referred to as port A, and the connection port from the car control unit 30 to the communication control unit 42 is referred to as port B. Figure 6 also shows an example in which write commands (write processing commands) are input at approximately the same time when port B is set as the priority port.
[0064] As shown in Fig. 6, a write processing command (DATA_A) is input when a chip select signal CS is input from the car control unit 10 to the shared memory control unit 50 via port A. Meanwhile, with a slight delay after the input of the chip select signal from the car control unit 10, a chip select signal CS is input from the car control unit 30 to the shared memory control unit 50 via port B, thereby inputting a write processing command (DATA_B). In such a case, there is a period (period X) during which both chip select signals are simultaneously low, and the conflict detection unit 51 determines in step S17 of Fig. 6 that a conflict exists.
[0065] Therefore, if it is determined that there is a conflict, as shown in Figure 6, the data buffer unit 52 of the shared memory control unit 50 stores the write processing command (DATA_A) sent from port A and the write processing command (DATA_B) sent via port B.
[0066] In this embodiment, since port B is set as the priority port, the process proceeds to step S23 in the determination of step S21 in Fig. 5. As a result, in the shared memory unit 55, after executing the write processing command (DATA_B) from port B, the write processing command (DATA_A) from port A is executed, as shown in Fig. 6.
[0067] As described above, in this embodiment, as shown in FIG. 5, when a control processing command input from port A and a control processing command input from port B conflict during period X, the shared memory control unit 50 temporarily stores the control processing commands in the data buffer unit 52, and then performs priority processing, executing control processing in the shared memory unit 55 in order of the control processing command input from the priority port.
[0068] 7 shows, as a comparative example, an example of signal processing when a plurality of control units (the car control unit 10 and the car control unit 30) access the shared memory unit 55 of the shared memory control unit 50 without setting a priority port. As shown in FIG. 7, when a chip select signal CS is first input from the car control unit 10 and a write processing command (DATA_A) is transmitted, the write processing command (DATA_A) from the car control unit 10 is executed in the shared memory unit 55. On the other hand, when a chip select signal CS is input from the car control unit 30 immediately after the chip select signal CS is input from the car control unit 10 (i.e., when there is contention), the shared memory unit 55 is busy, and therefore a busy signal BUSY is transmitted to the car control unit 30.
[0069] In this way, in the comparative example of Figure 7, the car control unit 30 is in a busy waiting state until the write processing from the car control unit 10 is completed, and the control processing unit (CPU) of the car control unit 30 is under load until its turn comes.
[0070] On the other hand, in this embodiment, as shown in Fig. 6, when the input timing of a control processing command transmitted from the car control unit 10 to the shared memory control unit 50 and that transmitted from the car control unit 30 to the shared memory control unit 50 are the same, both control processing commands are stored in the data buffer unit 52. Therefore, busy waiting does not occur in the control processing unit (CPU) on both the car control unit 10 side and the car control unit 30 side, and the processing load on the CPU is reduced.
[0071] Furthermore, on the shared memory control unit 50 side, processing is executed in the shared memory unit 55 in accordance with the set priority port parameters. Therefore, even if the input timing of a control process from the priority port is later than the input timing of a control process input from a port other than the priority port, the control process input from the priority port is processed preferentially. In this way, in this embodiment, each control unit that can access the shared memory unit 55 of the shared memory control unit 50 is not stopped, thereby improving execution processing performance.
[0072] However, due to the difficulty in supplying parts for shared memory control units used in elevator systems and the discontinuation of production, efforts are being made to replace them with FPGAs (field-programmable gate arrays) that can be freely rewritten by users, and by incorporating each function into logic to enable long-term use. When incorporating functions into FPGAs, the system is synchronous, so if conflicts occur at the same time, operation may become unpredictable. In contrast, in this embodiment, the priority of the shared memory unit 55, which is a shared resource, is set within the shared memory unit 55, allowing the expected operation to be performed.
[0073] In this embodiment, an example is shown in which a priority order is determined between two ports, port A and port B, and control processing is performed in the shared memory unit 55 in order from the port with the highest priority, but this is not limited to this. The present invention can also be an example in which a priority order is determined between two or more ports, and control processing is performed in the shared memory unit 55 in order from the port with the highest priority. In this case, the priority port setting data of the priority port parameter is set as data indicating the priority order between multiple ports, and control processing is performed in the priority order set by the priority port setting data.
[0074] Furthermore, in this embodiment, the elevator device 100 has been described as an example of a computer device, but the present invention is not limited to this and can be applied to a computer device having multiple control units (processors) that can access the shared memory unit 55.
[0075] The above-described embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to having all of the described configurations. For example, it is possible to replace part of the configuration of the embodiment with another configuration, or to add another configuration to the configuration of the embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of the embodiment with another configuration.
[0076] 1...motor drive unit, 2...hall terminal device, 10...car control unit, 20...door control unit, 30...car control unit, 40...car / door control unit, 41, 42...communication control unit, 50...shared memory control unit, 51...conflict detection unit, 52...data buffer unit, 53...priority port setting unit, 54...processing priority unit, 55...shared memory unit, 60...priority port parameter storage unit, 61...control command data storage unit, 100...elevator device
Claims
1. A computer device comprising: a shared memory unit that stores data of a plurality of control units; a conflict detection unit that detects conflicts among control processing commands sent from the plurality of control units; a priority port setting unit that sets priorities among a plurality of ports to which each of the control units is connected; and, when a conflict is detected by the conflict detection unit, a processing priority unit that determines a processing order for the plurality of control processing commands input through each port based on the priority information set by the priority port setting unit; and a control processing unit that sequentially implements the control processing commands input from each port in the shared memory unit according to the processing order determined by the processing priority unit.
2. The computer device according to claim 1, further comprising a data buffer unit which temporarily stores control processing commands transmitted from said plurality of control units when a conflict is detected by said conflict detection unit, and said control processing unit reads out said control processing commands from said data buffer unit in accordance with the processing order determined by said processing priority unit.
3. The computer device according to claim 2, wherein the shared memory unit has a priority port parameter storage unit in which priority port setting data for setting the priority of the ports is stored, and the priority port setting unit sets the priority of the ports based on the priority port setting data stored in the priority port parameter storage unit.
4. The computer device according to claim 3, wherein the priority port parameter storage unit further stores a conflict detection parameter used by the conflict detection unit to determine whether or not control processing commands sent from each control unit conflict.
5. The computer device according to claim 4, wherein when control processing commands are transmitted from a plurality of control units at the same timing, the conflict detection unit determines whether or not the control processing commands transmitted from each control unit conflict based on the conflict detection parameters.
6. An elevator device comprising: a plurality of control units including a unit control unit that controls the up and down operations of an elevator; and a shared memory control unit having a shared memory unit that stores data of the plurality of control units, wherein the shared memory control unit comprises: a conflict detection unit that detects conflicts among control processing commands transmitted from a plurality of control units; a priority port setting unit that sets priorities for a plurality of ports to which each of the control units is connected; a processing priority unit that, when a conflict is detected by the conflict detection unit, determines a processing order for the plurality of control processing commands input via each port based on the priority information set in the priority port setting unit; and a control processing unit that sequentially executes the control processing commands input from each port in the shared memory unit according to the processing order determined by the processing priority unit.
7. A program to be executed by a computer device having a shared memory unit that stores data of a plurality of control units, comprising the steps of: detecting a conflict between the control processing commands sent from a plurality of control units when control processing commands are sent from the plurality of control units at the same timing; setting priorities for a plurality of ports to which each control unit is connected; determining a processing order for the plurality of control processing commands input through each port based on the set priority information when the conflict is detected; and executing the control processing commands input from each port in sequence in the shared memory unit according to the determined processing order.
Citation Information
Patent Citations
Method for common memory access adjustment and common memory access adjusting circuit using the same
JP1995200488A
Control apparatus and control method
JP2022175462A