Processor module for a programmable controller
First Claim
1. An improved processor for a programmable controller of the type having an I/O interface for connection to a plurality of I/O devices, wherein the processor has first memory means that stores data relating to the status of the I/O devices, wherein the processor also has means for coupling the first memory means and I/O interface enabling transfer of the status data between the first memory means and the I/O interface, and wherein the improvement in the processor comprises:
- second memory means for storing user program instructions for operating on the status data, wherein each user program instruction includes a two-segment operation code;
third memory means for storing machine instructions organized in interpreter routines which are associated with corresponding operation codes for respective user program instructions, the third memory means also storing a machine fetch instruction for reading both segments of a selected one of the operation codes; and
microelectronic processor means having a machine instruction pointer register coupled to the third memory means to generate address signals thereto, and having a stack pointer register that is coupled to the second memory means to generate address signals thereto, the microelectronic processor means generating address signals to the third memory means to read machine instructions, and the microelectronic processor means being responsive to reading the machine fetch instruction stored in the third memory means to generate address signals from the stack pointer register to the second memory means to read the segments of the selected one of the operation codes into its machine instruction pointer register and to thereafter execute the interpreter routine in the third memory means that is pointed to by that operation code.
3 Assignments
0 Petitions
Accused Products
Abstract
A processor module is one of several modules mounted in a rack to form a programmable controller. The module has a microprocessor that executes a sequence of machine language instructions to interpret and thereby execute macroinstructions that are part of a control program stored in a read/write volatile main memory. The rate of execution is improved by reducing the instructions in a fetch sequence used in coupling each macroinstruction to its interpreter sequence of machine-language instructions. Hardware assistance is provided to allow expansion of macroinstruction operation codes as they are fetched. The processor module also allows the user to program his own interpreter sequences for specially defined macroinstructions and to load these sequences into a nonvolatile memory that is plugged into the module. An external auxiliary power supply is connected to the processor module to supply the programming voltage required by the nonvolatile memory.
-
Citations
16 Claims
-
1. An improved processor for a programmable controller of the type having an I/O interface for connection to a plurality of I/O devices, wherein the processor has first memory means that stores data relating to the status of the I/O devices, wherein the processor also has means for coupling the first memory means and I/O interface enabling transfer of the status data between the first memory means and the I/O interface, and wherein the improvement in the processor comprises:
-
second memory means for storing user program instructions for operating on the status data, wherein each user program instruction includes a two-segment operation code; third memory means for storing machine instructions organized in interpreter routines which are associated with corresponding operation codes for respective user program instructions, the third memory means also storing a machine fetch instruction for reading both segments of a selected one of the operation codes; and microelectronic processor means having a machine instruction pointer register coupled to the third memory means to generate address signals thereto, and having a stack pointer register that is coupled to the second memory means to generate address signals thereto, the microelectronic processor means generating address signals to the third memory means to read machine instructions, and the microelectronic processor means being responsive to reading the machine fetch instruction stored in the third memory means to generate address signals from the stack pointer register to the second memory means to read the segments of the selected one of the operation codes into its machine instruction pointer register and to thereafter execute the interpreter routine in the third memory means that is pointed to by that operation code. - View Dependent Claims (2)
-
-
3. An improved processor for a programmable controller of the type having an I/O interface for connection to a plurality of I/O devices, wherein the processor has first memory means that stores data relating to the status of I/O devices, wherein the processor has means for coupling the first memory means and I/O interface enabling transfer of status data between the first memory means and the I/O interface to monitor and control the I/O devices, wherein the improvement in the processor comprises:
-
second memory means for storing different types of user program instructions, the second memory means having a plurality of address inputs and each type of user program instruction having a respective unexpanded operation code; multiplexing means electrically connected to the address inputs on the second memory means for selectively coupling incoming address signals to the second memory means without the least significant address signal, so that two successive incoming addresses are coupled to a single location in the second memory means; third memory means for storing machine instructions organized in interpreter routines corresponding to different types of user program instructions, the third memory means also storing a machine fetch instruction for coupling each user program instruction to its respective interpreter routine; fourth memory means electrically connected to the second memory means to be addressed by the unexpanded operation codes read from the second memory means, and electrically connected to receive the least significant address signal, the fourth memory means storing expanded operation codes in areas that are addressed by the unexpanded operation code; and microelectronic processor means coupled to the third memory means to read the machine fetch instruction, the microelectronic processor means being responsive to the machine fetch instruction to generate two successive addresses that are each coupled by the multiplexing means and the second memory means to address the fourth memory means, the microelectronic processor means generating a first, least significant address signal with the first of the two successive addresses to read a first portion of an expanded operation code from the fourth memory means, and the microelectronic processor means generating a second, least significant address signal with the second of the two successive addresses to read a second portion of the expanded operation code from the fourth memory means, and the microelectronic processor means having a machine instruction pointer register for receiving the two portions of the expanded operation code to provide the address of the next machine instruction to be executed. - View Dependent Claims (4, 5, 6)
-
-
7. An improved processor for a programmable controller of the type having an I/O interface for connection to a plurality of I/O devices, wherein the processor has a first memory means that stores data relating to the status of the I/O devices, wherein the processor also has means for coupling the first memory means and the I/O interface enabling the transfer of the status data between the first memory means and the I/O interface, and wherein the improvement in the processor comprises:
-
second memory means for storing user program instructions which are executed in a sequence that is characterized by a true-false logic status, wherein each user program instruction includes an operation code; third memory means for storing machine instructions organized in interpreter routines that are associated with corresponding operation codes for respective user program instructions, wherein each interpreter routine includes a conditional machine fetch instruction for reading an operation code for a next user program instruction when the logic status of the user program instruction sequence is false; and microelectronic processor means having a flag register in which the logic status of previously executed user program instructions in the sequence is stored, having first addressing means coupled to the second memory means for fetching user program instructions, having second addressing means coupled to the third memory means for fetching machine instructions including the conditional machine fetch instruction, and having means coupled to the flag register that is responsive to the conditional machine fetch instruction to enable the first addressing means to fetch the operation code for the next user program instruction when the logic status of the previously executed user program instructions in the sequence is false, thereby skipping the execution of any machine instructions in the interpreter routine that follow the conditional machine fetch instruction.
-
-
8. In a programmable controller of the type with a main memory that stores control program instruction information and has n address inputs and with a microelectronic processor means for generating multibit addresses through a multiline address bus to the main memory and for reading the control program instructions through a data bus, the combination therewith of;
-
multiplexing means with n outputs coupled to the n address inputs on the main memory, with n+1 inputs coupled to n+1 lines in the address bus to receive addresses from the microelectronic processor means and with a control input coupled to the microelectronic processor means to receive a select signal therefrom when the microelectronic processor means generates an address in a first range of addresses, the multiplexing means being responsive to the select signal to drop the least significant bit of the incoming address and to couple the remaining bits of the address to the address inputs on the main memory to read the control program instruction information therefrom so that, for two successive processor-generated addresses in the first range, the same control program instruction information is read from the main memory, whereby the microelectronic processor means is provided with a first address range with twice as many addresses as the number of locations in the main memory from which control program instruction information is read. - View Dependent Claims (9, 10)
-
-
11. An improved programmable controller having a processor module with a read/write volatile memory that stores program instructions, with a connector adapted to couple the processor module to a programming terminal and with microelectronic processor means coupled to the volatile memory and coupled to the connector for receiving user program instructions from the programming terminal, wherein the improvement comprises:
-
a socket on the processor module that is adapted to electrically connect a nonvolatile memory to the microelectronic processor means; a firmware memory on the processor module which stores firmware instructions to direct the transfer of user program instructions in either of two program languages to the nonvolatile memory from the volatile memory, the firmware memory being coupled to the microelectronic processor means; program mode means on the processor module for selecting a first programming mode in which user program instructions in a first program language are loaded into the nonvolatile memory and a second programming mode in which user program instructions in a second user program language are loaded into the nonvolatile memory; and wherein the microelectronic processor means is coupled to the firmware memory and to the programming mode means and is responsive to the firmware instructions to transfer user program instructions in the first program language from the volatile memory to the nonvolatile memory in response to selection of the first programming mode, and wherein the microelectronic processor means is responsive to the firmware instructions to transfer user program instructions in the second program language from the volatile memory to the nonvolatile memory in response to the selection of the second programming mode. - View Dependent Claims (12, 13, 14, 15)
-
-
16. An improved programmable controller having a processor module with a read/write volatile memory that stores program instructions, with a connector adapted to couple the processor module to a programming terminal and with microelectronic processor means coupled to the volatile memory and coupled to the connector for receiving user program instructions from the programming terminal, wherein the improvement comprises:
-
a socket on the processor module that is adapted to electrically connect a nonvolatile memory to the microelectronic processor means; a firmware memory on the processor module which stores a first group of firmware instructions to direct the transfer of user program instructions to the nonvolatile memory from the volatile memory and which stores a second group of firmware instructions to check for the connection of a source of programming voltage, the firmware memory means being coupled to the microelectronic processor means; power supply means external to the processor module, the power supply means being coupled to a nonvolatile memory socket on the processor module through the connector to provide a source of programming voltage sufficient to write user program instructions into the nonvolatile memory; and wherein the microelectronic processor means is responsive to the second group of firmware instructions in the firmware memory to check for the connection of the power supply means to the processor module before executing the firmware instructions to couple user program instructions to the nonvolatile memory.
-
Specification