Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A SECURITY-ENABLED MICROPROCESSOR FOR A SECURITY-ENABLED COMPUTING SYSTEM
Document Type and Number:
WIPO Patent Application WO/2020/107025
Kind Code:
A2
Abstract:
A security-enabled microprocessor is invented for preventing unauthorized persons from malicious usages of computing systems. Instead of preventing unauthorized persons from accessing computing systems, the invention permits only authorized persons to manipulate secured information generated and modified by the invented microprocessors in the computing systems. The invented microprocessor decodes instructions in an executable program according to a customized instruction set dynamically reconfigured before executing the decoded instructions. Therefore, a computing system equipped with the invented security-enabled microprocessor is capable of protecting the secured information from unauthorized persons although the unauthorized persons are able to access the computing system.

Inventors:
JUNG YONG-KYU (US)
Application Number:
PCT/US2019/062877
Publication Date:
May 28, 2020
Filing Date:
November 23, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
JUNG YONG KYU (US)
International Classes:
G06F21/30
Download PDF:
Claims:
What is claimed is:

1. A security-enabled (SE) computing system comprising:

an authentication processing unit;

an SE information identification unit;

a mixed SE and security-disabled (SD) information memory system;

an SE function compiler; an instruction-set configuration compiler; a mixed SE and SD instruction memory system;

a dynamic SE decoded-operations (DOPs) generator; and

an SE microprocessor,

wherein the SE information identification unit identifies SE

information and SD information from mixed SE and SD information; and activates an SE information generator and an SE information

interpreter to transform unsecured information and unsecured instructions to the SE information and SE instructions,

wherein the mixed SE and SD information memory system stores the SE information and the SD information in binary form accessed by the SE microprocessor,

wherein the mixed SE and SD instruction memory system stores binary form of the SE instructions in SE functions and binary form of SD instructions in SD functions in an SE program and is accessed by the SE microprocessor,

wherein the SE microprocessor prevents unauthorized persons and

machines from accessing the SE computing system by processing the SE information and the SE instructions transformed in secured and customized instruction sets,

wherein the SE computing system is operable to:

receive a single or plurality of authentication requests from users' authentication devices connected to the SE computing system with or without wire, wherein users including persons or any machines which access to the SE computing system;

forward results of the authentication requests to the SE

microprocessor, wherein the SE microprocessor switches a current SE operation mode to another SE operation mode according to the results of the authentication requests received after completion of operations of remaining tasks under the current SE operation mode,

wherein the results of the authentication requests comprise

permission of enabling an SE operation mode in the SE

microprocessor identified for authorized users and/or machines and user and/or machine information (1) to encode information and a plurality of instructions used in a plurality of functions in a program and (2) to decode the SE information and a plurality of the SE instructions used in a plurality of the SE functions in the SE program,

wherein the user and/or machine information comprises SE encoded information and sequences of SE decoding operations customized for authorized persons and/or machines, wherein the SE encoded

information comprises ciphered binary form of data for identifying the SE information, wherein sequences of the SE decoding operations comprise ciphered binary form of data for converting the SE encoded information to SE decoded information in which the SE

microprocessor uses the SE decoded information as the SE

information generated by the SE microprocessor, wherein the SE encoded information and sequences of the SE decoding operations are received separately for additional security of the SE information received;

exchange information received from other computing systems if the results of the authentication requests permit for other computing systems to exchange information with the SE computing system, and otherwise permit only authorized persons and/or machines to

manipulate secured information generated and modified by the SE microprocessor in the SE computing system;

interpret encoded SE information received from other SE computing systems to the SE information after decoding the encoded SE information;

transform unsecured information and instructions to SE information and instructions;

generate and utilizes the SE information by the SE computing system itself and/or transmits to and receives from a single or plurality of other SE computing systems;

process unsecured instructions in functions in a program to transform the SE instructions in the SE functions in the SE program;

process the mixed SE and SD information and mixed SE and SD

instructions according to authentication information; and

operate securely with both of the mixed SE and SD information and the mixed SE and SD instructions in a program, and

otherwise protect secured information from unauthorized persons and/or machines even though unauthorized persons and/or machines maliciously access the SE computing system; and

employ the SE microprocessor to prevent unauthorized persons and/or machines from unauthorized accesses and malicious usages of the SE computing system by (1) transforming a single or plurality of microprocessors, which controls a single or plurality of computing systems and manipulates information, to a single or plurality of the SE microprocessors, which only allows authorized persons and/or machines to securely control the SE computing systems and manipulate the secured information, (2) dynamically reconfiguring the

customized instruction set to decode customized instructions in a program securely manipulated by authorized persons, (3) distributing a series of DOPs to a plurality of execution units in the SE microprocessors, (4) randomly identifying functions in a program and transforming the functions identified to the SE functions, (5) identifying the SE functions in a transformed program, (6)

transforming a sequence of instructions in the SE function to the SE instruction or a sequence of the SE instructions in the SE function, (7) generating an SE instruction set with unique SE instructions found in the SE functions, (8) generating configuration information of the SE instructions in the SE instruction set to decode the SE instructions with a reconfigurable SE instruction decoder, (9) transforming a sequence of DOPs of the SE instruction to a sequence of SE DOPs of the SE instruction, (10) linking a sequence of the SE DOPs of the SE instruction to an SE DOP or a sequence of the SE DOPs to the SE instruction, and (11) updating an SE DOP access lookup table,

wherein the SE computing system is not limited in its application to the details of construction or to the arrangements of the components set forth in the above description.

2. The SE computing system of Claim 1, wherein the authentication processing unit further comprising:

an input and output interface logic with user authentication devices and with a security authentication unit in the SE computing system; and

an authentication processing logic,

wherein the authentication processing unit is operable to process a single or plurality of the authentication requests from a single or plurality of user and/or machine authentication devices comprising Universal Serial Bus (USB) dongles, Bluetooth devices, smart

connected devices comprising smartphones and tablets, identification sensor devices comprising chip cards, magnetic swipe cards, voice recorders, fingerprint sensors and image sensors but not limited any means, which are used to identify authentications of a single or plurality of persons and machines, wherein the user is a person who is authorized to use the SE computing system, wherein the machine is any a device comprising any form of a single or plurality of

processors, microprocessors, central processing units (CPUs), microcontrollers, but not limited.

3. The SE computing system of Claim 1, wherein the SE information identification unit further comprises: an input and output interface logic with the security authentication unit and with (1) the SE information generator, (2) the SE

information interpreter, (3) the mixed SE and SD information memory system storing the SE information and the SD information, and (4) an SE operation mode changer; and

an SE information identifying logic,

wherein the SE information identification unit is operable to:

identify the SE information and the SD information from mixed SE information and SD information;

activate the SE operation mode changer to switch current SE operation mode to another SE operation mode in the SE microprocessor after receiving permission from the security authentication unit;

activate the SE information generator to generates the SE information including the encoded SE information to be transmitted to other SE computing systems or the SE information to be used by the SE

microprocessor; and

activate the SE information interpreter to transform the SE information received from other SE computing systems.

4. The SE computing system of Claim 1, wherein the mixed SE and SD information memory system further comprises:

a single or plurality of mixed SE and SD information memories;

a single of plurality levels of mixed SE and SD information caches; and an SE and SD information memory controller,

wherein the mixed SE and SD information memory system is operable to: store the SE information and the SD information in binary form

accessed by the SE microprocessor;

access the SE information and the SD information from a single or plurality of the mixed SE and SD information memories and store the SE information and the SD information to a single or plurality levels of the mixed SE and SD information caches; and

access the SE information and the SD information from a single or plurality of the mixed SE and SD information caches and deliver the SE information and the SD information to the SE microprocessor with the SE and SD information memory controller.

5. The SE computing system of Claim 1, wherein the SE function compiler further comprises:

a security authorization unit;

a function identification unit;

an SE function identification bits generator; and

an SE function transformation unit,

wherein the SE function compiler is operable to:

generate mixed SE and SD functions in the SE program from unsecured functions in a program;

randomly identify a single or plurality of functions in the unsecured functions in the program according to security authentication information generated by the security authentication unit;

determine which of the unsecured functions or SD functions in the program are transformed to a plurality of the SE functions by the function identification unit;

analyze each identified the SD function with the SE function

transformation unit;

attach a series of function identification bits generated by the SE function identification bits generator;

transform a single or plurality of the SD functions identified to a single or plurality of the SE functions;

replicate above operations for remaining the SD functions identified for transforming to the SE functions; and

transform randomly identified SD functions in the program to mixed SE and SD functions in the SE program.

6. The SE computing system of Claim 1, wherein the instruction-set configuration compiler further comprises:

an SE function identification unit;

an SE instruction transformation unit;

an SE instruction-set generator; and an instruction configuration information generator,

wherein the instruction-set configuration compiler is operable to:

identify the SE functions in a program with the SE function

identification unit;

transform an instruction or a sequence of instructions in the SE function to the SE instruction or a sequence of the SE instructions in the SE function with the SE instruction transformation unit, wherein the SE instruction or a sequence of the SE instructions has a different binary format, wherein the different binary format comprises a different sequence and/or length of binary numbers;

transforms a sequence of non-flow control instructions to a non-flow control SE instruction;

generate the SE instruction set with the SE instruction-set

generator, wherein the SE instruction set comprises a plurality of or all of the SE instructions transformed;

generate the configuration information of the SE instructions in the SE instruction set to decode the SE instructions, wherein the configuration information is used to reconfigure a reconfigurable SE instruction decoder; and

generate SE instruction configuration information and a single or plurality of the SE instruction sets from the mixed SE and SD functions in the SE program.

7. The SE computing system of Claim 1, wherein the mixed SE and SD instruction memory system further comprises:

a single or plurality of mixed SE and SD instruction memories;

a single of plurality levels of mixed SE and SD instruction caches; and an SE and SD instruction memory controller,

wherein the mixed SE and SD instruction memory system is operable to: store a plurality of the SE instructions and the SD instructions in binary form accessed by the SE microprocessor;

access a single or plurality of the SE instructions and the SD

instructions from a single or plurality of the mixed SE and SD instruction memories and store a single or plurality of the SE instructions and the SD instructions to a single of plurality levels of the mixed SE and SD instruction caches; and

access a single or plurality of the SE instructions and the SD

instructions from a single or plurality of the mixed SE and SD instruction caches and deliver a single or plurality of the SE instructions and the SD instructions to the SE microprocessor with the SE and SD instruction memory controller.

8. The SE computing system of Claim 1, wherein the dynamic SE DOPs generator further comprises:

an SE instruction identification unit;

an SE DOP transformation unit; and

an SE DOP linker,

wherein the dynamic SE DOPs generator is operable to:

identify a sequence of non-flow control SE instructions;

generate a sequence of the SE DOPs of a sequence of the non-flow control SE instructions;

generate SE DOPs of an SE instruction and a single or plurality of SE DOP access pointers with information from the SE instruction configuration information and the SE instruction sets;

transform a sequence of DOPs of an SE instruction to a sequence of the SE DOPs of the SE instruction, wherein the SE DOP or a sequence of the SE DOPs has a different binary format, wherein the different binary format comprises a different sequence and/or length of binary numbers, wherein the SE DOP or a sequence of the SE DOPs is accessed in series or in parallel after the SE instruction is decoded;

identify a single or plurality of DOP access locations of the SE instruction from a single or plurality of the DOPs stored in an SE DOP storage with the SE DOP linker;

link to the SE DOP or a sequence of the SE DOPs to the SE

instruction;

generate a single or plurality of the DOPs linked to each SE instruction in a single or plurality of the SE instruction sets; interface with the SE DOP access lookup table and the SE DOP storage in the reconfigurable SE instruction decoder;

update the DOPs transformed from the SE instruction to the SE DOP storage and the SE DOP access lookup table;

access the SE DOP or a sequence of the SE DOPs in series or in

parallel after the SE instruction is decoded;

update the DOPs transformed from the SE instruction to the SE DOP access lookup table with the SE DOP transformation unit in order to match the DOPs transformed are accessed by the SE DOP access pointers updated;

dynamically generate and update a plurality of SE DOP accessing information of a single or plurality of the SE instructions identified in the SE instruction set compiled for the SE functions and a single or plurality of the SE instructions transformed;

dynamically generate and update the SE instruction configuration information to the reconfigurable SE instruction decoder to decode the SE functions and a single or plurality of the SE instructions; dynamically operate with the SE instruction sets and the SE

instruction configuration information for reconfiguring the reconfigurable SE instruction decoder;

dynamically replace a various limited number of access pointers of the DOPs of the SE instructions, a various limited number of access pointers of the DOPs of the SD instructions, or a various limited number of access pointers of the DOPs of the mixed SE and SD instructions in the SE instruction set whenever the reconfigurable SE instruction decoder is reconfigured a limited number of the SE instructions, a limited number of the SD instructions, or a limited number of the mixed SE and SD instructions in the SE instruction set; and

distribute the DOPs of the SE instructions generated to the SE DOP storage and the SE DOP access pointers associated to the SE DOP access lookup table,

wherein the dynamic SE DOPs generator is not limited in its application to the details of construction or to the arrangements of the

components set forth in the above description.

9. The SE computing system of Claim 1, wherein the SE microprocessor further comprises:

an SE instruction fetch unit;

an SE DOP storage;

an SE DOP access lookup table;

a reconfigurable SE instruction decoder; and

a plurality of execution units,

wherein the SE microprocessor is operable to:

permit only authorized persons and/or machines to manipulate secured information generated and modified by the SE microprocessor;

process the mixed SE and SD information and the mixed SE and SD

instructions according to the authentication information;

fetch the mixed SE and SD instructions with the SE instruction fetch unit ;

receive a single or plurality of the SE instructions identified and informed from the SE instruction identification unit;

interconnect to the SE instruction fetch unit, the SE DOP storage, and the SE DOP access lookup table, wherein the SE DOP storage and the SE DOP access lookup table are connected to a dynamic SE DOP generator;

access the configuration information stored from the SE instruction configuration information;

access a plurality of the unique SE instructions identified in an SE instruction set of a plurality of the SE instruction sets;

identify required a single or plurality of the DOPs implemented;

transform the SE instruction to a single or plurality of the DOPs by the SE DOP transformation unit;

assign the DOPs identified in proper orders according to operations of the SE instruction;

store the DOPs transformed to the SE DOP storage and store a DOP access order of the SE instruction to the SE DOP access lookup table by the SE DOP transformation unit;

provide a sequence of the DOPs of the SE instruction to the SE DOP linker to determine which of a single or plurality of the DOPs is accessed to complete decode operations of the SE instruction;

receive a linking request from the SE DOP transformation unit to the SE DOP linker upon completion of transformation of a single or plurality of the DOPs of the SE instruction;

identify a single or plurality of the DOP access locations of the SE instruction from a single or plurality of the DOPs stored in the SE DOP storage with the SE DOP linker;

generate a single or plurality of SE DOP accessing pointers and store the SE DOP accessing pointers to the SE DOP access lookup table with the SE DOP linker;

reconfigure dynamically the reconfigurable SE instruction decoder with the configuration information of the SE instructions

transformed in one of the SE instruction sets generated by the dynamic SE DOP generator;

reconfigure dynamically the reconfigurable SE instruction decoder implemented with a reconfigurable programmable gate array comprising an field programmable gate-array (FPGA) with additional

configuration information stored in the SE instruction configuration information after manufacturing the FPGA and the SE microprocessor; access binary format information of unique types of the SE

instructions to extract values of different fields implemented in the SE instructions, wherein a unique type of the SE instructions shares with a unique and same binary format of the SE instruction, wherein the extracted values of the different fields implemented in the SE instruction are decoded by accessing a single DOP or a series of DOPs in identified order along with a single or plurality of the extracted values;

access the SE DOPs generated by the dynamic SE DOP generator from the SE DOP storage according to an access order identified by the dynamic SE DOP generator and stored in the SE DOP access lookup table;

decode the mixed SE and SD instructions fetched with the

reconfigurable SE instruction decoder associated with the SE DOP storage and the SE DOP access lookup table;

decode instructions in an executable program by the SE microprocessor according to the secured customized instruction set dynamically reconfigured before executing decoded instructions, wherein the executable program comprises a sequence of instructions, wherein the instructions in the executable program are generally in binary format, wherein the secured customized SE instruction set comprises a plurality of transformed SE instructions from the instructions used in the executable program, wherein a plurality of the

transformed SE instructions in the secured customized SE instruction set is obtained by the instruction-set configuration compiler, wherein the secured customized instruction set dynamically

reconfigured is used for decoding the SE instructions by the SE microprocessor ;

decode the SE instructions of the SE functions with the

reconfigurable SE instruction decoder, wherein the dynamic SE DOP generator distributing the DOPs of the SE instructions generated to the SE DOP storage and the SE DOP access pointers associated to the SE DOP access lookup table;

decode a single SE instruction per a single or plurality of cycles; decode a plurality of the SE instructions in parallel;

decode both of the SE and SD instructions if the SD instructions are configured and DOPs and DOP accessing orders of the SD instructions are generated and stored in the SE DOP storage and the SE DOP access lookup table; generate decoded outcomes of a single or plurality of the SE instructions ;

deliver decoded outcomes to a plurality of the execution units by a single or a series of the SE DOPs accessed in an order stored in the SE DOP access lookup table by accessing the SE DOP access pointers from the SE DOP access lookup table;

process a single or plurality of the authentication requests from users and/or machines of the SE computing system, wherein the authentication requests are received from various means but not limited from USB dongles, Bluetooth devices, smart connected devices, such as smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which can be used to identify authentications of persons and/or machines;

receive a single or plurality of the SE DOPs from a single or

plurality of entries of the SE DOP storage, wherein a single or plurality of the SE DOPs received is used by a single or plurality of the execution units in sequence and in parallel according to the SE DOPs generated for the execution units and architecture of the execution units;

access a single or a series of the SE DOPs in an order stored in the SE DOP access lookup table by accessing the SE DOP access pointers from the SE DOP access lookup table;

execute the mixed SE and SD instructions decoded by the

reconfigurable SE instruction decoder;

produce execution results of the SE instruction and/or SD

instruction;

access the mixed SE and SD information received from the SE computing system or SD information received from a computing system via wire or wireless communication channels after identifying the SE

information with the SE information identification unit from the mixed SE and SD information memory system if the SE instruction or the SD instruction executed requires to process, and

otherwise produce the mixed SE and SD information;

transmit the mixed SE and SD information to the SE computing system or other computing systems if the SE instruction or the SD

instruction executed requires to transmit; and

securely process with the SE and SD information received and/or

produced and/or decoded the mixed SE and SD instructions received.

10. The SE microprocessor of Claim 9, wherein the SE instruction fetch unit further is operable to:

receive the SE instructions in the SE functions and the SD instructions in the SD functions stored in the mixed SE and SD instruction memory system;

forward the SE instructions and the SD instructions to the

reconfigurable SE instruction decoder;

forward separately the SE instructions and the SD instructions if the SE microprocessor equips with an instruction decoder for unsecure or the SD instructions and the reconfigurable SE instruction decoder, and

otherwise forward both the SE instructions and the SD instructions to decode the reconfigurable SE instruction decoder; and

perform other operations typically implemented in instruction fetch units .

11. The SE microprocessor of Claim 9, wherein the reconfigurable SE instruction decoder further is operable to:

interconnect to the SE instruction fetch unit, the SE DOP storage, and the SE DOP access lookup table, wherein the SE DOP storage and the SE DOP access lookup table are connected to the dynamic SE DOP

generator;

reconfigure dynamically the reconfigurable SE instruction decoder with the configuration information of the SE instructions transformed in one of the SE instruction sets generated by the dynamic SE DOP generator; reconfigure dynamically the reconfigurable SE instruction decoder implemented with a reconfigurable programmable gate array comprising an FPGA with additional configuration information stored in the SE instruction configuration information after manufacturing the FPGA and the SE microprocessor;

access binary format information of unique types of the SE instructions to extract values of different fields implemented in the SE

instructions, wherein a unique type of the SE instructions shares with a unique and same binary format of the SE instruction, wherein the extracted values of the different fields implemented in the SE instruction are decoded by accessing a single DOP or a series of DOPs in identified order along with a single or plurality of the extracted values ;

access the SE DOPs generated by the dynamic SE DOP generator from the SE DOP storage according to an access order identified by the dynamic SE DOP generator and stored in the SE DOP access lookup table;

decode a single SE instruction per a single or plurality of cycles; decode a plurality of the SE instructions in parallel;

decode both of the mixed SE and SD instructions if the SD instructions are configured and DOPs and DOP accessing orders of the SD

instructions are generated and stored in the SE DOP storage and the SE DOP access lookup table;

generate decoded outcomes of a single or plurality of the SE

instructions ;

deliver decoded outcomes to a plurality of the execution units by a single or a series of the SE DOPs accessed in an order stored in the SE DOP access lookup table by accessing the SE DOP access pointers from the SE DOP access lookup table; and

apply a limited number of the SE instructions or the mixed SE and SD instructions in the SE instruction set to avoid large entries of the SE DOP storage and the SE DOP access lookup table and large logic circuits to build the reconfigurable SE instruction decoder.

12. The SE microprocessor of Claim 9, wherein the SE DOP storage further comprises a plurality of entries of the DOPs of the SE

instruction and of the SE instructions, wherein the SE DOP storage is operable to:

access a single or plurality of entries of the DOPs in the SE DOP storage pointed by a single or plurality of the SE DOP access

pointers stored in the SE DOP access lookup table to provide which DOPs of the SE instruction is accessed upon decoding the SE

instruction by the reconfigurable SE instruction decoder;

interface with the reconfigurable SE instruction decoder, the SE DOP access lookup table, and the dynamic SE DOP generator;

receive the DOPs transformed from the SE instruction by the SE DOP transformation unit in the dynamic SE DOP generator and store the DOPs to the SE DOP storage;

store a single or plurality of the DOPs in a single or plurality of the DOP access locations of the SE instruction identified by the SE DOP linker in the dynamic SE DOP generator to generate decoded outcomes of the SE instruction decoded by the reconfigurable SE instruction decoder and to deliver the decoded outcomes to a plurality of the execution units;

store the DOPs of both of the mixed SE and SD instructions if the SD instructions are decoded by the reconfigurable SE instruction

decoder;

store a limited number of the DOPs of the SE instructions, a limited number of DOPs of the SD instructions, or a limited number of the DOPs of the mixed SE and SD instructions in the SE instruction set if the SE DOP storage is limited to avoid large entries of the SE DOP storage ;

store a number of the DOPs of the SE instructions, a number of the DOPs of the SD instructions, or a number of the DOPs of the mixed SE and SD instructions in the SE instruction set by dynamically replacing a various number of the DOPs of the SE instructions, a various number of the DOPs of the SD instructions, or a various number of the DOPs of the mixed SE and SD instructions in the SE instruction set whenever the reconfigurable SE instruction decoder is reconfigured a number of the SE instructions, a number of the SD instructions, or a number of the mixed SE and SD instructions in the SE instruction set; and

deal with a number of the mixed SE and SD instructions in various of the SE instruction sets.

13. The SE microprocessor of Claim 9, wherein the SE DOP access lookup table further comprises a plurality of entries of the SE DOP access pointers, wherein the SE DOP access lookup table is operable to:

provide which DOPs of the SE instruction is accessed from the SE DOP storage upon decoding the SE instruction by the reconfigurable SE instruction decoder;

interface with the reconfigurable SE instruction decoder, the SE DOP storage, and the dynamic SE DOP generator;

receive and store dynamically the DOPs of the SE instruction from the SE DOP transformation unit in the dynamic SE DOP generator to match the DOPs transformed are accessed by the SE DOP access pointers updated dynamically;

store a single or plurality of DOP access orders of a single or

plurality of the SE instructions;

store a single or plurality of the DOP access locations of the SE instruction from a single or plurality of the DOPs stored in the SE DOP storage identified by the SE DOP linker in the dynamic SE DOP generator;

synchronize with the SE DOP storage to avoid potential malfunctions of the reconfigurable SE instruction decoder with the same binary information of different SE instructions in different SE instruction sets;

store access pointers of the DOPs of both of the mixed SE and SD

instructions if the SD instructions are decoded by the reconfigurable SE instruction decoder;

store a limited number of access pointers of the DOPs of the SE

instructions, a limited number of access pointers of the DOPs of the SD instructions, or a limited number of access pointers of the DOPs of the mixed SE and SD instructions in the SE instruction set if the SE DOP access lookup table is limited to avoid large entries of the SE DOP access lookup table;

stores a number of access pointers of the DOPs of the SE instructions, a number of access pointers of the DOPs of the SD instructions, or a number of access pointers of the DOPs of the mixed SE and SD

instructions in the SE instruction set by dynamically replacing a various number of access pointers of the DOPs of the SE instructions, a various number of access pointers of the DOPs of the SD

instructions, or a various number of access pointers of the DOPs of the mixed SE and SD instructions in the SE instruction set whenever the reconfigurable SE instruction decoder is reconfigured a number of the SE instructions, a number of the SD instructions, or a number of the mixed SE and SD instructions in the SE instruction set; and deal with a various and a number of the mixed SE and SD instructions in various of the SE instruction sets.

14. The SE microprocessor of Claim 9, wherein a plurality of the execution units further comprises a plurality of arithmetic logic units (ALUs), integer and/or floating-point units, memory read/write units, and/or application specific execution engines, wherein a plurality of the execution units is operable to:

process a single or plurality of the authentication requests from users and/or machines of the SE computing system, wherein the

authentication requests are received from various means but not limited from USB dongles, Bluetooth devices, smart connected devices, such as smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which can be used to identify authentications of persons and/or machines;

receive a single or plurality of the SE DOPs from a single or plurality of entries of the SE DOP storage, wherein a single or plurality of the SE DOPs received is used by a single or plurality of the

execution units in sequence and in parallel according to the SE DOPs generated for the execution units and architecture of the execution units ;

access a single or a series of the SE DOPs in an order stored in the SE

DOP access lookup table by the SE DOP access pointers accessing from the SE DOP access lookup table;

execute the mixed SE and SD instructions decoded by the reconfigurable SE instruction decoder;

produce execution results of the SE instruction and/or the SD

instruction;

access the mixed SE and SD information received from the SE computing system or SD information received from a computing system via wire or wireless communication channels after identifying the SE information with the SE information identification unit from the mixed SE and SD information memory system if the SE instruction or the SD instruction executed requires to process, and

otherwise produce the mixed SE and SD information;

transmit the mixed SE and SD information to the SE computing system or other computing systems if the SE instruction or the SD instruction executed requires to transmit; and

securely process with the mixed SE and SD information received and/or produced and/or decoded the mixed SE and SD instructions received.

15. A method of operating a security-enabled (SE) computing system processing an SE information and instruction generation comprising:

(1) an SE information and instruction authentication process for transforming unsecured information and instructions to SE information and instructions; (2) an SE information interpretation process for interpreting encoded SE information received from other SE computing systems to the SE information after decoding the encoded SE information; (3) an SE information generation process for the SE information generated by the SE computing system itself for utilizing by itself and/or transmitting to other SE computing systems; (4) an SE instruction generation process for transforming unsecured

instructions in unsecured functions in a unsecured program to SE instructions in SE functions in an SE program; and (5) an SE

instruction-set configuration process for decoding the SE

instructions and/or security-disabled (SD) instructions with a reconfigurable SE instruction decoder whenever dynamically

configuring mixed SE and SD instructions in a single or plurality of SE instruction sets from the SE program,

wherein the SE computing system created by transforming a

microprocessor to an SE microprocessor is capable of protecting secured information from unauthorized persons and/or machines even though unauthorized persons and/or machines maliciously access the computing system,

wherein the SE microprocessor protects secured information and the SE computing system by preventing executions of instructions, functions, and/or programs from unauthorized persons and/or machines even though the unauthorized persons and/or machines maliciously access the SE computing system,

wherein the SE computing system processing the SE information and instruction generation is operable to:

transform unsecured or the SD information to the SE information and unsecured or the SD instructions to the SE instructions;

access the SE instructions and the SD instructions from mixed SE and SD functions in the SE program and the SE information and the SD information from mixed SE and SD information to the SE

microprocessor ;

interpret the encoded SE information received from other SE computing systems to the SE information after decoding the encoded SE information;

configure the mixed SE and SD instructions in a single or plurality of the SE instruction sets;

produce configuration information of the SE and/or SD instructions in a single or plurality of the SE instruction sets;

generate a sequence of SE DOPs of a single or plurality of the SE instructions from a sequence of DOPs of the SE instruction;

update an SE DOP storage with unique SE DOPs of the SE and/or SD instructions in the SE instruction set, wherein the unique SE DOPs of the SE and/or SD instructions are generated from binary format information of unique types of the SE instructions to extract values of different fields implemented in the SE instructions, wherein a unique type of the SE instructions shares with a unique and same binary format of the SE instruction, wherein the extracted values of different fields implemented in the SE instruction are decoded by accessing a single DOP or a series of DOPs in identified order along with a single or plurality of the extracted values;

link to a sequence or a plurality of sequences of the SE DOPs to a single or plurality of the SE instructions;

update an SE DOP access lookup table with SE DOP accessing

information of the SE and/or SD instructions in the SE instruction set;

configure dynamically the reconfigurable SE instruction decoder with the unique SE DOPs of the SE and/or SD instructions in the SE instruction set stored in the SE DOP storage and with the SE DOP accessing information of the SE and/or SD instructions in the SE instruction set stored in the SE DOP access lookup table;

decode the SE and/or SD instructions with the reconfigurable SE

instruction decoder whenever dynamically configuring the mixed SE and SD instructions in a single or plurality of the SE instruction sets from the SE program;

produce execution results of functions from operating system (OS) and functions from application software with SE information received, SE information generated, and SD information received and produced, wherein the functions from OS is file manipulating functions and other functions found in the OS, wherein the functions from

application software are memory access functions and other functions found in the application software; and

securely operate with both of the mixed SE and SD information and the mixed SE and SD instructions in the SE program, and

the SE information and instruction authentication process, the SE information interpretation process, the SE information generation process, the SE instruction generation process, and the SE

instruction-set configuration process are not limited in their application to the details of construction or to the arrangements of the components set forth in the above description.

16. The method of operating the SE computing system processing the SE information and instruction generation of Claim 15, wherein the SE information and instruction authentication process is operable to:

transform the unsecured or the SD information to the SE information and the unsecured or the SD instructions to the SE instructions;

transmit the authentication requests initiated by user or the

authentication devices to an authorization processing unit;

generate permission with the authorization processing unit;

forward permission to other units comprising a security authentication unit for activating SE operations of an SE function identification unit and an SE instruction ID unit;

activate an SE information identification unit for switching current SE operation mode to another SE operation mode in the SE microprocessor via an SE operation mode changer with the security authentication unit ;

activate an SE information generator to generate the SE information comprising the encoded SE information to be transmitted to other SE computing systems or the SE information to be used by the SE microprocessor with the SE information identification unit;

activate an SE information interpreter to transform the SE information received from other SE computing systems with the SE information identification unit;

obtain SE encoded information and sequences of SE decoding operations with the SE information interpreter to decode the SE information received for further processing the SE information decoded by the SE microprocessor, wherein the SE encoded information comprises ciphered binary form of data for identifying the SE information, wherein sequences of the SE decoding operations comprise ciphered binary form of data for converting the SE encoded information to SE decoded information in which the SE microprocessor uses the SE decoded information as the SE information generated by the SE microprocessor, wherein the SE encoded information and sequences of the SE decoding operations are received separately for additional security of the SE information received; and

transform the SE information received to the SE information with the SE information interpreter.

17. The method of operating the SE computing system processing the SE information and instruction generation of Claim 15, wherein the SE information interpretation process is operable to:

interpret the encoded SE information received from other SE computing systems to the SE information after decoding the encoded SE

information;

receive permission and the SE information; and

decode the SE information received with the SE information interpreter using the SE encoded information and sequences of the SE decoding operations separately received.

18. The method of operating the SE computing system processing the SE information and instruction generation of Claim 15, wherein the SE information generation process is operable to:

utilize the SE information generated by the SE computing system by itself and/or transmit to other SE computing systems; and

generate the SE information as the encoded SE information to be

transmitted to other SE computing systems or the SE information to be used by the SE microprocessor with the SE information generator.

19. The method of operating the SE computing system processing the SE information and instruction generation of Claim 15, wherein the SE instruction generation process is operable to:

transform the unsecured instructions in the unsecured functions in the unsecured program to the SE instructions in the SE functions in the SE program;

activate the SE operations of the SE function identification unit and the SE instruction ID unit with the security authentication unit;

identify the unsecured functions in the different unsecured programs comprising the unsecured functions from OS or the unsecured functions from application software with the SE function identification unit; identify the unsecured instructions in the SE functions according to the unsecure instructions in a primary instruction set being

executable by a microprocessor with the SE instruction ID unit before transformed to the SE microprocessor; and

continue to generate a single or plurality of the SE instruction sets and SE instruction configuration information for generating SE decoded-operations (DOPs) for the SE instructions generated according to primary DOPs of the unsecured instructions.

20. The method of operating the SE computing system processing the SE information and instruction generation of Claim 15, wherein the SE instruction-set configuration process is operable to:

initiate operations of an instruction-set configuration compiler, wherein the instruction-set configuration compiler is operable to: identify the SE functions in a program;

transform the unsecured instruction or a sequence of the unsecured instructions in the SE function to the SE instruction or a sequence of the SE instructions in the SE function; generate the SE instruction set;

generate the configuration information of the SE instructions in the SE instruction set to decode the SE instructions, wherein the SE instruction set comprises all of the SE instructions transformed, wherein the configuration information is used to reconfigure the reconfigurable SE instruction decoder; and

transform a sequence of non-flow control instructions to a non-flow control SE instruction;

initiate operations of a dynamic SE DOPs generator, wherein the dynamic SE DOPs generator is operable to:

transform a sequence of the DOPs of the SE instruction to a sequence of the SE DOPs of the SE instruction;

link to the SE DOP or a sequence of the SE DOPs to the SE

instruction;

update the SE DOP access lookup table with the SE instruction set and the configuration information of the SE instructions in the SE instruction set; and

identify a sequence of non-flow control SE instructions and generates a sequence of the SE DOPs of a sequence of the non-flow control SE instructions; and

continue to generate a single or plurality of the SE instruction sets and the SE instruction configuration information for generating the SE DOPs for the SE instructions generated according to the primary DOPs of the unsecured instructions, wherein the SE DOPs for the SE instructions and sequences of the SE DOPs of the SE instructions are dynamically configured and utilized for dynamically reconfiguring the reconfigurable SE instruction decoder with the DOPs and DOP accessing orders of the mixed SE and SD instructions stored in the SE DOP storage and the SE DOP access lookup table whenever a single or plurality of the mixed SE and SD instructions is received from an SE instruction fetch unit.

Description:
A SECURITY-ENABLED MICROPROCESSOR FOR A SECURITY-ENABLED COMPUTING

SYSTEM

TECHNICAL FILED OF THE DISCLOSURE

The invention relates creating a security-enabled (SE) microprocessor for preventing unauthorized persons from malicious usages of computing systems. In general, a microprocessor equipped in a computing system is not securely protected. However, a computing system equipped with a microprocessor prevents unauthorized persons from malicious usages of the computing system.

The invention relates also permitting only authorized persons and/or machines to manipulate secured information generated and modified by the invented SE microprocessor in an SE computing system unlike computing systems in prior arts preventing unauthorized persons and machines from accessing the computing systems.

The invention relates decoding instructions in an executable program by the SE microprocessor according to a secured customized instruction set dynamically reconfigured before executing the decoded instructions, wherein an executable program includes a sequence of instructions, wherein instructions in the executable program are generally in binary format, wherein a customized SE instruction set includes a plurality of transformed instructions from the instructions used in the executable program, wherein a plurality of transformed instructions in a

customized SE instruction set is obtained by an instruction-set configuration compiler, wherein a customized instruction set

dynamically reconfigured is used for decoding instructions by an SE microprocessor .

The invention relates generating an SE function compiler, which (1) randomly identifies functions in a program and (2) transforms the identified functions to SE functions by inserting a plurality of SE function identification bits, wherein an SE function is generated from a function in a program when an authorized person initiates a series of SE function transformations. More specifically, the secure function compiler determines how many and which functions in a program are transformed .

The invention relates generating an instruction-set configuration compiler, which (1) identifies SE functions in a program, (2)

transforms an instruction or a sequence of instructions in an SE function to an SE instruction or a sequence of SE instructions in an SE function, (3) generates an SE instruction set, and (4) generates configuration information of SE instructions in the SE instruction set to decode SE instructions, wherein an SE instruction set includes all of SE instructions transformed, wherein configuration information is used to reconfigure a reconfigurable SE instruction decoder. An SE instruction or a sequence of SE instructions has a different binary format, wherein a different binary format includes a different sequence and/or length of binary numbers. More specifically, the instruction-set configuration compiler transforms a sequence of non-flow control instructions to a non-flow control SE instruction.

The invention relates generating a dynamic SE decoded-operations (DOPs) generator, which (1) transforms a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction, (2) links to an SE DOP or a sequence of SE DOPs to an SE instruction, and (3) updates an SE DOP access lookup table, wherein an SE DOP or a sequence of SE DOPs is accessed in series or in parallel after an SE instruction is decoded. More specifically, the dynamic SE DOP generator (1) identifies a sequence of non-flow control SE instructions and (2) generates a sequence of SE DOPs of a sequence of non-flow control SE instructions. An SE DOP or a sequence of SE DOPs has a different binary format, wherein a different binary format includes a different sequence and/or length of binary numbers.

Therefore, a computing system equipped with the invented SE

microprocessor is capable of protecting the secured information from unauthorized persons although the unauthorized persons are able to access the computing system.

BACKGROUND OF THE DISCOLOSURE

The present invention generally relates preventing unauthorized persons from malicious usages of computing systems. More specifically, a single or plurality of microprocessors equipped in a computing system is transformed to a single or plurality of security-enabled (SE) microprocessors in order for authorized persons to securely utilize a computing system, instead of only blocking accesses of a computing system from unauthorized persons.

The present invention generally relates also authorized persons to manipulate secured information with the invented SE microprocessors in a computing system.

The invention generally relates dynamically reconfiguring a secured instruction set to decode secured instructions in a program securely manipulated by authorized persons and/or machines. More specifically, a plurality of customized instructions is decoded by a reconfigurable instruction decoder to produce a series of DOPs, including control signals and other useful binary information encapsulated in a single or plurality of bytes.

The invention generally relates distributing a series of the DOPs to a plurality of execution units found in microprocessors in prior arts, wherein the execution units includes arithmetic logic units (ALUs), integer and floating-point units, memory read/write units, and

application specific execution engines.

The invention generally relates randomly identifying functions in a program and transforming the identified functions to SE functions by adding a plurality of SE function-identification bits to the SE functions .

The invention generally relates identifying SE functions in a transformed program, transforming a sequence of instructions in an SE function to an SE instruction or a sequence of SE instructions in an SE function, generating an SE instruction set with unique SE instructions found in the SE functions, and generating configuration information of SE instructions in the SE instruction set to decode SE instructions with a reconfigurable instruction decoder.

The invention generally relates transforming a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction, linking to an SE DOP or a sequence of SE DOPs to an SE instruction, and updating an SE DOP access lookup table.

PROBLEMS OF THE ART

Computing systems cipher most of information protecting from

malicious usages. For instance, Data Encryption Standard (DES) offers an encryption alongside of existing security technologies. Therefore, encrypted information is very difficult to be decrypted to the same meaning of the information. The crypto variable and other information need to be shared with the authorized users. In general, the encryption also needs to be less susceptible. Other encryption systems, including Symmetric-Advanced Encryption Standard, asymmetric-RSA [1], or elliptic curve cryptography [2], are used different key sizes.

U.S. Patent No. 7,269,715 [3] presents an instruction converting method and apparatus. A current set of instructions received as part of a group, including a prior set of instructions, is distinguished by using a history data structure. In this approach, a critical path is recognized to break apart incoming instructions into special groups or formations while instructions are fetched between an instruction cache and a memory. The converted instructions including a converting indication are finally used by the execution units. In particular, grouper circuit and translation circuit are invented to issue the converted instructions to the execution units.

U.S. Patent No. 6,047,368 [4] presents an instruction converting apparatus that employs a compatibility circuit includes translation and grouper circuits. The translation circuit transforms old instructions to new instructions as simpler forms. The grouper circuit groups instructions according to type of instructions during instruction fetches to an instruction cache. In this invention, assigned

functionalities of the grouped instructions are dynamically converted and identified while being concurrently issued and executes. However, this invention does not physically reduce the bit-length of

instructions. Therefore, the same or more instruction caches still required .

U.S. Patent No. 5,509,130 [5] claims simultaneously converting and issuing instructions at the same clock cycle for execution. An

instruction control unit detects operands cascading from one

instruction to another instruction after decoding a sequence of instructions. Then, instructions are packed according to exclusion rules reflecting characteristics of the resources and structure of the target processor. However, this invention still requires maintaining at least the same size of the instruction cache as well as involving branch prediction and resolution units due to the runtime conversion.

U.S. Patent 7,181,597 [6] describes a trace cache-based approach.

More specifically, the first instruction is decoded into a plurality of operations in the invention. The first copy of the operations is passed from the decoder to a build engine integrated to a trace cache. The decoder also directly passes the second copy of the operations to a backend allocation module. This approach focuses on enhancing

performance by selectively bypassing a trace cache build engine.

U.S. Patent Application US 2002/008782 A1 [7] claims about grouped VLIW instruction words stored with predecode information including the location of the instructions. The invention also claims the compiler generated information, including the processor path of the sub

instructions within the VLIW grouping. Since this invention inherently relates VLIW processor, the invention still includes instruction grouping under the fixed execution units installed in a VLIW processor, which has well-known drawback on highly unused execution units compared to other types of processors, including RISC and CISC processors.

In prior arts, (1) computing systems are blocked from unauthorized persons; and (2) information is encrypted and decrypted to prevent malicious usage to prohibit malicious programs from being accessing computing systems and executing and generating information only for authorized persons. The current approaches are highly vulnerable once unauthorized persons can not only access computing systems to copy secured information, but also run malicious programs to control the computing systems. Unlike the secured computing systems and encrypted information used in prior arts, the security-enabled microprocessor for a computing system invented is capable of creating security-enabled (SE) microprocessor to prevent unauthorized persons and/or machines from unauthorized accesses and malicious usages of computing systems by (1) transforming microprocessors, which control the computing systems and manipulate the information, employed in the computing systems to SE microprocessors, which only allow authorized persons and/or machines to securely control the computing systems and manipulate the secured information; (2) dynamically reconfiguring a customized instruction set to decode customized instructions in a program securely manipulated by authorized persons; (3) distributing a series of DOPs to a plurality of execution units in SE microprocessors; (4) randomly identifying functions in a program and transforming the identified functions to SE functions; (5) identifying SE functions in a transformed program; (6) transforming a sequence of instructions in an SE function to an SE instruction or a sequence of SE instructions in an SE function; (7) generating an SE instruction set with unique SE instructions found in the SE functions; (8) generating configuration information of SE instructions in the SE instruction set to decode SE instructions with a reconfigurable instruction decoder; (9) transforming a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction;

(10) linking a sequence of SE DOPs of an SE instruction to an SE DOP or a sequence of SE DOPs to an SE instruction; and (11) updating an SE DOP access lookup table. Therefore, an SE computing system is created by transforming a microprocessor to the invented SE microprocessor, which is capable of protecting secured information from unauthorized persons and/or machines even though unauthorized persons and/or machines maliciously access the computing system.

SUMMARY OF THE DISCLOSURE

The invention generally relates to a security-enabled (CE)

microprocessor system including a series of software compilations for selectively transforming unsecured functions and a series of unsecured instructions in a program to secured functions and a single or

plurality of secured instructions and a secure hardware system further including (1) a mixed SE an security-disabled (SD) information memory system, (2) a mixed SE and SD instruction memory system, (3) an SE instruction fetch unit, (4) a reconfigurable SE instruction decoder, and (5) a plurality of execution units, wherein the reconfigurable SE instruction decoder is interfaced with an SE DOP storage and SE DOP access lookup table. More specifically, a dynamic SE DOP generator dynamically generates and updates a plurality of SE DOP accessing information of a single or plurality of SE instructions identified in an SE instruction set compiled for SE functions and a single or plurality of SE instructions transformed. Furthermore, the dynamic SE DOP generator dynamically generates and updates SE configuration information to the reconfigurable SE instruction decoder to decode SE functions and a single or plurality of SE instructions. More

specifically, the SE DOP storage includes a plurality of entries of DOPs of an SE instruction and of SE instructions. The SE DOP access lookup table includes a plurality of entries of SE DOP access pointers, which provide which DOPs of SE instruction is accessed from the SE DOP storage upon decoding an SE instruction by the reconfigurable SE instruction decoder.

The mixed SE and an SD information memory system contains SE information, which is identified as an SE information by an SE information identification unit, wherein mixed SE and SD information is received from a computing system via wire or wireless communication channels and stored to the mixed SE and an SD information memory system, which can be accessed by a single or plurality of execution units. A single or plurality of execution units also accesses and produces mixed SE and SD information and transmits the mixed SE and SD information to other computing systems.

An SE computing system equipped with the invented SE microprocessor system processes a single or plurality of requests of authentications from users and/or machines of the SE computing system. The

authentication requests can be received from Universal Serial Bus (USB) dongles, Bluetooth devices, smart connected devices, such as

smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which can be used to identify persons' authentications. The SE microprocessor system processes the invented SE operations if receiving successful authentication requests.

There has thus been outlined, rather broadly, some of the features of the invention in order that the detailed description thereof may be better understood, and that the present contribution to the art may be better appreciated. Additional features of the invention will be described hereinafter.

In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction or to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. An object is to provide secure operations of computing systems by security-enabled microprocessors that control the computing systems and manipulating security sensitive information in computing systems and between computing systems over computer networks and internets.

An object is to provide the secure operations of computing systems by security-enabled microprocessors that decode instructions in an executable program by the SE microprocessor according to a secured customized instruction set dynamically reconfigured before executing the decoded instructions.

Another object is to provide the secure operations of computing systems by security-enabled microprocessors that determine how many and which functions in a program are randomly identified and transformed the identified functions to SE functions with additional a plurality of SE function identification bits by an SE function compiler.

Another object is to provide the secure operations of computing systems by security-enabled microprocessors that identify SE functions in a program, transform an instruction or a sequence of instructions in an SE function to an SE instruction or a sequence of SE instructions in an SE function, generate an SE instruction set, and generate

configuration information of SE instructions in the SE instruction set to decode SE instructions by an instruction-set configuration compiler.

An object is to provide the secure operations of computing systems by security-enabled microprocessors that transform a sequence of non-flow control instructions to a non-flow control SE instruction by the instruction-set configuration compiler.

Another object is to provide the secure operations of computing systems by security-enabled microprocessors that transform a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE

instruction, link to an SE DOP or a sequence of SE DOPs to an SE instruction, and update an SE DOP access lookup table by a dynamic SE DOP generator.

Another object is to provide the secure operations of computing systems by security-enabled microprocessors that identify a sequence of non-flow control SE instructions, and generate a sequence of SE DOPs of a sequence of non-flow control SE instructions with the dynamic SE DOP generator .

Another object is to provide the secure operations of computing systems by security-enabled microprocessors that utilize an SE DOP or a sequence of SE DOPs encapsulated in a different binary format.

Other objects and advantages of the present invention will become obvious to the reader and it is intended that these objects and advantages are within the scope of the present invention. To the accomplishment of the above and related objects, this invention may be embodied in the form illustrated in the accompanying drawings,

attention being called, however, to the fact that the drawings are illustrative only, and that changes may be made in the specific construction illustrated and described within the scope of this application .

In this patent document, the terms "include" and derivatives thereof mean inclusion without limitation.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of embodiments of the disclosure will be apparent from the detailed description taken in conjunction with the accompanying drawings in which:

FIG. 1 is a diagram showing one embodiment of the security-enabled (SE) microprocessor for a computing system including an SE function compiler, an instruction-set configuration compiler, a dynamic SE decoded-operation (DOP) generator, and an SE microprocessor, wherein the SE function compiler including a security authorization unit, a function identification unit, an SE function identification bits generator, and an SE function transformation unit for generating mixed SE and security-disabled (SD) functions in an SE program from unsecured functions in a program, wherein the instruction-set configuration compiler including an SE function identification unit, an SE

instruction transformation unit, an SE instruction-set generator, and an instruction configuration information generator for generating an SE instruction configuration information and a single or plurality of SE instruction sets from a mixed SE and SD functions in an SE program, wherein the dynamic SE DOP generator including an SE instruction identification unit, an SE DOP transformation unit, and an SE DOP linker for generating a single or plurality of DOPs linked to each SE instruction found in a single or plurality of SE instruction sets and for generating SE DOP accessing information stored in an SE DOP access lookup table, wherein an SE microprocessor including an SE instruction fetch unit, a reconfigurable SE instruction decoder interfaced with an SE DOP storage and an SE DOP access lookup table, and a plurality of execution units for fetching mixed SE and SD instructions from an instruction memory system, for decoding mixed SE and SD instructions fetched, and for executing mixed SE and SD instructions decoded;

FIG. 1 is also a diagram showing one embodiment of the generation method of SE functions, a single SE instruction or a series of SE instructions from SE functions, a single or plurality of SE instruction sets from a single or plurality of SE functions, an SE instruction configuration information from SE instructions generated for

configuring the reconfigurable SE instruction decoder, a plurality of SE DOPs of SE instructions, and information for accessing a plurality of SE DOPs of SE instructions;

FIG. 2 is a diagram showing one embodiment of an SE computing system including a mixed SE and SD information memory system, a mixed SE and SD instruction memory system, and an SE microprocessor for processing mixed SE and SD information and instructions according to the

authentication information, wherein the SE microprocessor including an SE instruction fetch unit, a reconfigurable SE instruction decoder, and a plurality of execution units, wherein the reconfigurable SE

instruction decoder further including a dynamic DOP generator, an SE DOP access table including a plurality of entries of SE DOP access pointers, which provide which DOPs of SE instruction is accessed from the SE DOP storage upon decoding an SE instruction by the

reconfigurable SE instruction decoder, an SE DOP storage including a plurality of entries of DOPs of an SE instruction and of SE

instructions, and an authentication processing unit, wherein the dynamic DOP generator dynamically operating with an SE instruction sets and an SE instruction configuration information for reconfiguring the reconfigurable SE instruction decoder, wherein the authentication processing unit processing various types of authentication requests received from Universal Serial Bus (USB) dongles, Bluetooth devices, smart connected devices, such as smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which can be used to identify authentications of persons and/or machines; and

FIG. 2 is also a diagram showing one embodiment of the SE

microprocessor for decoding SE instructions of SE functions with the reconfigurable SE instruction decoder, wherein the dynamic SE DOP generator distributing DOPs of SE instructions generated to the SE DOP storage and associated SE DOP access pointers to the SE DOP access lookup table.

FIG. 3 illustrates an SE information and instruction generation process. More specifically, (1) an SE information interpretation process for SE information received from other computing systems and (2) an SE information generation process in an SE computing system equipped with an SE microprocessor are illustrated. More specifically, various invented units involved in the SE information and instruction authentication processes are illustrated. Fig. 3 also illustrates SE operations performed by an SE computing system equipped with an SE microprocessor .

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS FIG. 1 is a diagram showing one embodiment of a security-enabled (SE) microprocessor for a secure computing system including an SE function compiler 1, an instruction-set configuration compiler 11, a dynamic SE DOP generator 21, and an SE microprocessor 31.

In one embodiment, the SE function compiler 1 includes a security authorization unit 2, a function identification unit 4, an SE function identification bits generator 5, and an SE function transformation unit 6. The SE function compiler 1 randomly identifies a single or plurality of functions in unsecured functions in a program 3 according to security authentication information generated by the security

authentication unit 2. The function identification unit 4 determines which unsecured or security-disabled (SD) functions in the program 3 are transformed to a plurality of SE functions. The SE function transformation unit 6 analyzes each identified SD function, attaches a series of function identification bits generated by the SE function identification bits generator 5, transforms the SD function identified to an SE function, and replicates aforementioned operations for remaining SD functions identified for transforming to SE functions. Consequently, the SE function compiler 1 transforms randomly identified SD functions in a program to mixed SE functions and SD functions in an SE program 7.

In one embodiment, the instruction-set configuration compiler 11 includes an SE function identification unit 12, an SE instruction transformation unit 13, an SE instruction-set generator 14, and an instruction configuration information generator 15. The instruction-set configuration compiler 11 generates an SE instruction configuration information and a single or plurality of SE instruction sets from a mixed SE and SD functions in an SE program.

The SE function identification unit 12 filters SE functions in the mixed SE functions and SD functions in an SE program 7 and informs SE functions identified to the SE instruction transformation unit 13.

The SE instruction transformation unit 13 transforms a single security-disabled (SD) instruction or a series of SD instructions in an

SE function identified to a single SE instruction or a series of SE instructions. More specifically, the SE instruction transformation unit 13 transforms a sequence of non-flow control instructions to a non-flow control SE instruction, wherein a non-flow control instruction is an instruction that does not include any operation for controlling instruction flow. The SE instruction transformation unit 13 determines how many instructions in an SE function to be transformed. More specifically, the SE instruction transformation unit 13 determines how many instructions in a basic block and how many basic blocks are in an

SE function, wherein a basic block is a series of instructions with one entry and one exit. Therefore, the SE instruction transformation unit 13 transforms a single or plurality of instructions in a basic block to an SE instruction or a fewer number of SE instructions than the number of instructions in the basic block. The SE instruction transformation unit 13 registers an SE instruction transformed to the SE instruction- set generator 14 for generating an SE instruction set from a plurality of SE instructions transformed. The SE instruction transformation unit 13 substitutes SD instructions with SE instructions transformed in the mixed SE and security-disabled (SD) functions in SE program 7. The SE instruction transformation unit 13 continues to operate the

aforementioned operations with the SE function identification unit 12 and the SE instruction-set generator 14 until the SE instruction-set generator 14 informs a termination of SE instruction transformation.

The SE instruction-set generator 14 collects a plurality of unique SE instructions in order to generate an SE instruction set. The SE instruction-set generator 14 reformats a plurality of the unique SE instructions for securely decoding SE instructions. Therefore, an SE instruction or a sequence of SE instructions has a different binary format, wherein a different binary format including a different sequence and/or length of binary numbers. More specifically, the SE instruction-set generator 14 a non-flow control SE instruction from a sequence of non-flow control instructions for securely decoding a non ¬ flow control SE instruction. The SE instruction-set generator 14 starts over to generate another SE instruction set once an SE instruction set is generated. Therefore, the SE instruction-set generator 14 generates a single or plurality of SE instruction sets 16, wherein the SE instruction sets 16 including a single or plurality of SE instruction sets generated by the SE instruction-set generator 14 and accessed by an SE decoded-operation (DOP) transformation unit 23 in the dynamic SE DOP generator 21.

The SE instruction configuration information generator 15 generates configuration information of SE instructions in the SE instruction set to decode SE instructions, wherein an SE instruction set includes all of SE instructions transformed, wherein configuration information is used to reconfigure a reconfigurable SE instruction decoder. The SE instruction configuration information generator 15 generates SE instruction configuration information 17 of an SE instruction set to decode SE instructions with a reconfigurable instruction decoder 33 in an SE microprocessor 31.

The SE instruction configuration information 17 generated by the SE instruction configuration information generator 15 is used for

reconfiguring the reconfigurable SE instruction decoder 33. More specifically, the SE instruction configuration information 17 includes configuration information of a reconfigurable instruction decoder that is built with a programmable gate array, such as a field-programmable gate array (FPGA), wherein an FPGA is an integrated circuit that can be programmed after manufacturing the FPGA.

In one embodiment, the dynamic SE DOP generator 21 includes an SE instruction identification unit 22, an SE DOP transformation unit 23, and an SE DOP linker 24 for (1) transforming a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction, (2) linking to an SE DOP or a sequence of SE DOPs to an SE instruction, and (3) updating an SE DOP access lookup table, wherein an SE DOP or a sequence of SE DOPs is accessed in series or in parallel after an SE instruction is decoded. More specifically, the dynamic SE DOP generator 21 (1) identifies a sequence of non-flow control SE instructions, and

(2) generates a sequence of SE DOPs of a sequence of non-flow control SE instructions. An SE DOP or a sequence of SE DOPs has a different binary format, wherein a different binary format including a different sequence and/or length of binary numbers.

The SE instruction identification unit 22 identifies SE instructions in the mixed SE and SD functions in SE program 7 and forwards SE instructions to the SE DOP transformation unit 23.

The SE DOP transformation unit 23 accesses configuration information stored from the SE instruction configuration information 17 and a plurality of unique SE instructions identified in an SE instruction set of a plurality of SE instruction sets 16 upon receiving a single or plurality of SE instructions identified and informed from the SE instruction identification unit 22. The SE DOP transformation unit 23 transforms an SE instruction to a single or plurality of DOPs by identifying required a single or plurality of DOPs implemented for the SE microprocessor 31 and assigning the identified DOPs in proper orders according to operations of an SE instruction, wherein a plurality of DOPs implemented for the SE microprocessor 31 is stored in the SE DOP storage 35. The SE DOP transformation unit 23 stores DOPs transformed to the SE DOP storage 35 and stores a DOP access order of an SE instruction to the SE DOP access lookup table 36. The SE DOP

transformation unit 23 further provides a sequence of DOPs of an SE instruction to the SE DOP linker 24 to determine which of a single or plurality of DOPs is accessed to complete decode operations of an SE instruction. The SE DOP linker 24 receives a linking request upon completion of transformation of a single or plurality of DOPs of an SE instruction from the SE DOP transformation unit 23. The SE DOP linker 24 identifies a single or plurality of DOP access locations of an SE instruction from a single or plurality of DOPs stored in the SE DOP storage 35. The SE DOP linker 24 generates a single or plurality of SE DOP accessing pointers and stores the SE DOP accessing pointers to the SE DOP access lookup table 31.

In one embodiment, the SE microprocessor 31 includes an SE

instruction fetch unit 32, a reconfigurable SE instruction decoder 33, a plurality of execution units 34, an SE DOP storage 35, and an SE DOP access lookup table 36. The SE microprocessor 31 fetches mixed SE and SD instructions with the SE instruction fetch unit 32, decodes mixed SE and SD instructions fetched with the reconfigurable SE instruction decoder 33 associated with the SE DOP storage 35 and the SE DOP access lookup table 36, and executes mixed SE and SD instructions decoded with a plurality of the execution units 34.

The SE function compiler, the instruction-set configuration compiler, the dynamic SE DOP generator, and the presented SE microprocessor, are not limited in its application to the details of construction or to the arrangements of the components set forth in the above description or illustrated in FIG. 1.

FIG. 2 is a diagram showing one embodiment of an SE computing system 41 includes a mixed SE and SD information 42, an SE information identification unit 43, a mixed SE and SD functions in SE program 7, a mixed SE and SD information memory system 45, a mixed SE and SD instruction memory system 44, an authentication processing unit 46, various types users' authentication devices 47, and an SE

microprocessor 31, wherein the SE microprocessor 31 further includes an SE instruction fetch unit 32, a reconfigurable SE instruction decoder 33, and a plurality of execution units 34, wherein the reconfigurable SE instruction decoder 33 is further includes an SE DOP storage 35, an SE DOP access lookup table 36, and a dynamic SE DOP generator 21, wherein the dynamic SE DOP generator 21 operates with an SE instruction sets 16 and an SE instruction configuration information 17.

In one embodiment, the mixed SE and SD information 42 is various types of information received from and transmitted to a single or plurality of computing systems. The SE information identification unit 43 identifies SE information and SD information from the mixed SE and SD information 42. The mixed SE and SD information memory system 45 stores SE information and SD information in binary form accessed by the SE microprocessor 31. The unsecured functions in program 3 are various types of functions in a program which is compiled by software compiler in prior arts. More specifically, the unsecured functions in program 3 are compiled by the SE function compiler 1 after compilation of software compiler in prior arts to identify SE functions from unsecured or SD functions and to generate the mixed SE and SD functions in SE program 7. More specifically, the mixed SE and SD functions in SE program 7 are compiled to generate SE instruction configuration information 17 and SE instruction sets 16 by the instruction-set configuration compiler 11. More specifically, the instruction-set configuration compiler 11 generates SE instructions of SE functions in the mixed SE and SD functions in SE program 7. The mixed SE and SD functions in SE program 7 in binary form are stored in the mixed SE and SD instruction memory system 44, wherein the mixed SE and SD

instruction memory system 44 is accessed by the SE microprocessor 31.

In one embodiment, the dynamic SE DOP generator 21 generates SE DOPs of an SE instruction and a single or plurality of SE DOP access pointers with information from the SE instruction configuration information 17 and the SE instruction sets 16. More specifically, the dynamic SE DOP generator 21 transforms a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction, (2) links to an SE DOP or a sequence of SE DOPs to an SE instruction, and (3) updates the SE DOP access lookup table 36, wherein an SE DOP or a sequence of SE DOPs is accessed in series or in parallel after an SE instruction is decoded. More specifically, the dynamic SE DOP generator 21 (1) identifies a sequence of non-flow control SE instructions, and

(2) generates a sequence of SE DOPs of a sequence of non-flow control SE instructions. An SE DOP or a sequence of SE DOPs has a different binary format, wherein a different binary format including a different sequence and/or length of binary numbers. More specifically, the dynamic SE DOP generator 21 dynamically generates and updates a plurality of SE DOP accessing information of a single or plurality of SE instructions identified in an SE instruction set compiled for SE functions and a single or plurality of SE instructions transformed. Furthermore, the dynamic SE DOP generator 21 dynamically generates and updates SE configuration information to the reconfigurable SE

instruction decoder 33 to decode SE functions and a single or plurality of SE instructions.

In one embodiment, the SE instruction fetch unit 32 in the SE microprocessor 31 receives SE instructions in SE functions and SD instructions in SD functions stored in the mixed SE and SD instruction memory system 44. The SE instruction fetch unit 32 forwards SE

instructions and SD instructions to the reconfigurable SE instruction decoder 33. More specifically, the SE instruction fetch unit 32 separately forwards SE instructions and SD instructions if an SE microprocessor equips with an instruction decoder for unsecure or SD instructions and a reconfigurable SE instruction decoder 33. Otherwise, the reconfigurable SE instruction decoder 33 receives both SE

instructions and SD instructions to decode from the SE instruction fetch unit 32. The SE instruction fetch unit 32 also performs other operations typically implemented in instruction fetch units in prior arts .

In one embodiment, the reconfigurable SE instruction decoder 33 in the SE microprocessor 31 is interconnected to the SE instruction fetch unit 32, the SE DOP storage 53, and the SE DOP access lookup table 36, wherein the SE DOP storage 53, and the SE DOP access lookup table 36 are connected to the dynamic SE DOP generator 21. The reconfigurable SE instruction decoder 33 is configured with configuration information generated by the dynamic SE DOP generator 21. More specifically, the reconfigurable SE instruction decoder 33 is implemented with a reconfigurable programmable gate array, such as an FPGA, for

configuring the reconfigurable SE instruction decoder 33 after

manufacturing the FPGA and the SE microprocessor 31. If the

reconfigurable SE instruction decoder 33 is implemented with a

reconfigurable programmable gate array, the SE instruction

configuration information 17 includes additional configuration

information for reconfiguring the FPGA as a reconfigurable SE

instruction decoder. Otherwise, the reconfigurable SE instruction decoder 33 is reconfigured for SE instructions transformed in one of the SE instruction sets 16. The reconfigurable SE instruction decoder 33 is reconfigured for SE instructions by accessing binary format information of unique types of SE instructions to extract values of different fields implemented in SE instructions, wherein a unique type of SE instructions shares with a unique and same binary format of an SE instruction, wherein the extracted values of different fields

implemented in an SE instruction are decoded by accessing a single DOP or a series of DOPs in identified order along with a single or

plurality of extracted values. The reconfigurable SE instruction decoder 33 accesses SE DOPs generated by the dynamic SE DOP generator 21 and stored in the SE DOP storage 35 according to the access order identified by the dynamic SE DOP generator 21 and stored in the SE DOP access lookup table 36. A single reconfigurable SE instruction decoder 33 decodes a single SE instruction per a single or plurality of cycles. A plurality of reconfigurable SE instruction decoders 33 decodes a plurality of SE instructions in parallel. More specifically, the reconfigurable SE instruction decoder 33 decodes both of SE and SD instructions if SD instructions are configured and DOPs and DOP accessing orders of SD instructions are generated and stored in the SE DOP storage 35 and the SE DOP access lookup table 36. More

specifically, a limited number of SE instructions or SE and SD

instructions in an SE instruction set are applied for avoiding large entries of the SE DOP storage 35 and the SE DOP access lookup table 36 and large logic circuits to build the reconfigurable SE instruction decoder 33.

The SE DOP storage 35 includes a plurality of entries of DOPs of an SE instruction and of SE instructions. More specifically, a single or plurality of entries of DOPs in the SE DOP storage 35 is accessed by a single or plurality of SE DOP access pointers stored in the SE DOP access lookup table 36 to provide which DOPs of SE instruction is accessed upon decoding an SE instruction by the reconfigurable SE instruction decoder 33. The SE DOP storage 35 is interfaced with the reconfigurable SE instruction decoder 33, the SE DOP access lookup table 36, and the dynamic SE DOP generator 21. More specifically, the SE DOP transformation unit 23 in the dynamic SE DOP generator 21 stores DOPs transformed from an SE instruction to the SE DOP storage 35. A single or plurality of DOP access locations of an SE instruction from a single or plurality of DOPs stored in the SE DOP storage 35 is

identified by the SE DOP linker 24 in the dynamic SE DOP generator 21 to generate decoded outcomes of an SE instruction decoded by the reconfigurable SE instruction decoder 33 and to deliver the decoded outcomes to a plurality of the execution units 34. More specifically, the SE DOP storage 35 stores DOPs of both of SE and SD instructions if SD instructions are decoded by the reconfigurable SE instruction decoder 33. More specifically, a limited number of DOPs of SE, a limited number of DOPs of SD, or a limited number of DOPs of SE and SD instructions in an SE instruction set are stored to the SE DOP storage 35 if the SE DOP storage 35 is limited to avoid large entries of the SE DOP storage 35. More specifically, the SE DOP storage 35 stores a large number of DOPs of SE, a large number of DOPs of SD, or a large number of DOPs of SE and SD instructions in an SE instruction set by

dynamically replacing a various limited number of DOPs of SE, a various limited number of DOPs of SD, or a various limited number of DOPs of SE and SD instructions in an SE instruction set whenever the

reconfigurable SE instruction decoder 33 is reconfigured a limited number of SE instructions, a limited number of SD instructions, or a limited number SE and SD instructions in an SE instruction set.

Therefore, a limited number of entries of the SE DOP storage 35 are capable of dealing with various and large number of SE and SD

instructions in various SE instruction sets.

The SE DOP access lookup table 36 includes a plurality of entries of SE DOP access pointers, which provide which DOPs of SE instruction is accessed from the SE DOP storage 35 upon decoding an SE instruction by the reconfigurable SE instruction decoder 33. The SE DOP access lookup table 36 stores a single or plurality of DOP access orders of a single or plurality of SE instructions. The SE DOP access lookup table 36 is interfaced with the reconfigurable SE instruction decoder 33, the SE DOP storage 35, and the dynamic SE DOP generator 21. More specifically, the SE DOP transformation unit 23 in the dynamic SE DOP generator 21 dynamically updates DOPs transformed from an SE instruction to the SE DOP access lookup table 36 to match the DOPs transformed are accessed by the updated SE DOP access pointers. Therefore, the SE DOP access lookup table 36 and the SE DOP storage 35 are synchronized each other to avoid potential malfunctions of the reconfigurable SE instruction decoder 33 with the same binary information of different SE

instructions in different SE instruction sets. A single or plurality of DOP access locations of an SE instruction from a single or plurality of DOPs stored in the SE DOP storage 35 identified by the SE DOP linker 24 in the dynamic SE DOP generator 21 is stored to the SE DOP access lookup table 36. Therefore, the reconfigurable SE instruction decoder 33 generates decoded outcomes of an SE instruction and to deliver the decoded outcomes to a plurality of the execution units 34 by a single or a series of SE DOPs accessed in an order stored in the SE DOP access lookup table 36 by accessing SE DOP access pointers from the SE DOP access lookup table 36. More specifically, the SE DOP access lookup table 36 stores access pointers of DOPs of both of SE and SD

instructions if SD instructions are decoded by the reconfigurable SE instruction decoder 33. More specifically, a limited number of access pointers of DOPs of SE, a limited number of access pointers of DOPs of SD, or a limited number of access pointers of DOPs of SE and SD instructions in an SE instruction set are stored to the SE DOP access lookup table 36 if the SE DOP access lookup table 36 is limited to avoid large entries of the SE DOP access lookup table 36. More

specifically, the SE DOP access lookup table 36 stores a large number of access pointers of DOPs of SE, a large number of access pointers of DOPs of SD, or a large number of access pointers of DOPs of SE and SD instructions in an SE instruction set by dynamically replacing a various number of access pointers of DOPs of SE, a various number of access pointers of DOPs of SD, or a various number of access pointers of DOPs of SE and SD instructions in an SE instruction set whenever the reconfigurable SE instruction decoder 33 is reconfigured a number of SE instructions, a number of SD instructions, or a number SE and SD instructions in an SE instruction set. Therefore, a limited number of entries of the SE DOP access lookup table 36 is capable of dealing with a various and a large number of SE and SD instructions in various SE instruction sets.

In one embodiment, a plurality of execution units 34 includes arithmetic logic units (ALUs), integer and/or floating-point units, memory read/write units, and/or application specific execution engines. A plurality of the execution units 34 accesses the mixed SE and SD information 42 received from a computing system via wire or wireless communication channels after identifying SE information with the SE information identification unit 43 from the mixed SE and an SD

information memory system 45. A plurality of the execution units 34 also accesses and produces mixed SE and SD information and transmits the mixed SE and SD information 42 to other computing systems. A plurality of the execution units 34 executes mixed SE and SD

instructions decoded by the reconfigurable SE instruction decoder 33. More specifically, a plurality of the execution units 34 receives a single or plurality of SE DOPs from a single or plurality of entries of the SE DOP storage 35, wherein a single or plurality of the SE DOPs received is used by a single or plurality of the execution units in sequence and in parallel according to the SE DOPs generated for the execution units and architecture of the execution units. More

specifically, a plurality of the execution units 34 accesses a single or a series of SE DOPs in an order stored in the SE DOP access lookup table 36 by accessing SE DOP access pointers from the SE DOP access lookup table 36. A plurality of the execution units 34 also processes a single or plurality of requests of authentications from users and/or machines of the SE computing system 41, wherein the authentication requests are received from various means but not limited from Universal Serial Bus (USB) dongles, Bluetooth devices, smart connected devices, such as smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which can be used to identify authentications of persons and/or machines. Therefore, the SE

microprocessor system 31 processes the invented SE operations if receiving successful authentication requests. The SE microprocessor 31 can be used for various computing systems as different forms of SE microprocessors, wherein the different forms of SE microprocessors are an SE server processor for a server, an SE central processing unit (CPU) for a personal computer, an SE multi-core processor for mobile smart connected devices (SCDs) , such as a smartphone, a tablet, and other computing devices connected to other SCDs, an SE embedded microprocessor or an SE microcontroller for various systems, such as computing devices for internet of things (IoTs), transportations for vehicles, airplanes, drones, and ships, robotics for healthcare, industrial, defense, and building/home applications.

The presented SE microprocessor 31 is not limited in its application to the details of construction or to the arrangements of the components set forth in the above description or illustrated in FIG. 2. The SE computing system 41 equipped with the SE microprocessor 31 processes a single or plurality of requests of authentications from users of the SE computing system, wherein the authentication requests are received from USB dongles, Bluetooth devices, smart connected devices, such as smartphones, tablets, etc., other identification sensor devices, such as chip cards, magnetic swipe cards, voice recorders, fingerprint sensors, and other devices, which are used to identify persons' authentications. The SE computing system 41 processes the invented SE operations if receiving successful authentication requests. Therefore, the presented SE microprocessor 31 is capable of protecting secured information from unauthorized persons even though the unauthorized persons and/or machines maliciously access the computing system.

The presented SE computing system 41 is not limited in its

application to the details of construction or to the arrangements of the components set forth in the above description or illustrated in FIG. 2.

FIG. 3 is a diagram showing one embodiment of an SE information and instruction generation process 51 including (1) an SE information and instruction authentication process for transforming unsecured

information and instructions to SE information and instructions, (2) an SE information interpretation process for interpreting encoded SE information received from other SE computing systems to SE information after decoding the encoded SE information, (3) an SE information generation process for SE information generated by an SE computing system itself for utilizing by itself and/or transmitting to other SE computing systems, (4) an SE instruction generation process for transforming unsecured instructions in functions in a program to SE instructions in SE functions in an SE program, and (5) an SE

instruction-set configuration process for decoding SE and/or SD instructions with the reconfigurable SE instruction decoder 33 whenever dynamically configuring SE and SD instructions in a single or plurality of SE instruction sets from an SE program.

The SE information and instruction authentication process is initiated by user authentication devices 47 which transmit

authentication requests to an authorization processing unit 46. The authorization processing unit 46 generates permission and forwards permission to other units including a security authentication unit 2 for activating SE operations of an SE function identification unit 12 and an SE instruction ID unit 22. The security authentication unit 2 activates an SE information identification unit 43 for switching current SE operation mode to another SE operation mode in an SE microprocessor 31 via an SE operation mode changer 55. The SE

information identification unit 43 also activates an SE information generator 52 to generate SE information 42-4 including encoded SE information to be transmitted to other SE computing systems or SE information to be used by the SE microprocessor 31. More specifically, the SE information identification unit 43 activates an SE information interpreter 43-1 to transform SE information received 42-1 from other SE computing systems. The SE information interpreter 43-1 obtains SE encoded information 42-2 and sequences of SE decoding operations 42-3 to decode the SE information received 42-1 for further processing the SE information decoded by the SE microprocessor 31, wherein the SE encoded information 42-2 includes ciphered binary form of data for identifying an SE information, wherein the sequences of SE decoding operations 42-3 include ciphered binary form of data for converting an SE encoded information to an SE decoded information in which the SE microprocessor 31 uses the SE decoded information as an SE information generated by the SE microprocessor 31, wherein the SE encoded

information 42-2 and sequences of the SE decoding operations 42-3 are received separately for additional security of the SE information received 42-1. Therefore, the SE information interpreter 43-1

transforms the SE information received 42-1 to SE information.

The SE information interpretation process is initiated by receiving permission and SE information received 42-1. The SE information interpreter 43-1 decodes SE information received 42-1 using SE encoded information 42-2 and sequences of SE decoding operations 42-3

separately received.

The SE information generation process is initiated by the SE

information generator 52. The SE information generator 52 generates SE information 42-4 as encoded SE information to be transmitted to other SE computing systems or SE information to be used by the SE

microprocessor 31.

The SE instruction generation process is initiated by the security authentication unit 2. The security authentication unit 2 activates SE operations of the SE function identification unit 12 and the SE instruction ID unit 22. The SE function identification unit 12

identifies functions in different programs including functions from operating system (OS) 3-1 or functions from application software 3-2, wherein a function from OS 3-1 is a file copy function, wherein a function from application software 3-2 is a read memory function. The SE instruction ID unit 22 identifies instructions in SE functions according to unsecure instructions in a primary instruction set being executable by a microprocessor before transformed to an SE

microprocessor .

The SE instruction-set configuration process is initiated by the instruction-set configuration compiler 11. The instruction-set

configuration compiler 11 identifies SE functions in a program, transforms an instruction or a sequence of instructions in an SE function to an SE instruction or a sequence of SE instructions in an SE function, generates an SE instruction set, and generates configuration information of SE instructions in the SE instruction set to decode SE instructions, wherein an SE instruction set includes all of SE

instructions transformed, wherein configuration information is used to reconfigure a reconfigurable SE instruction decoder. The instruction- set configuration compiler 11 also transforms a sequence of non-flow control instructions to a non-flow control SE instruction. The dynamic SE DOPs generator 21 transforms a sequence of DOPs of an SE instruction to a sequence of SE DOPs of an SE instruction, links to an SE DOP or a sequence of SE DOPs to an SE instruction, and updates an SE DOP access lookup table with an SE instruction set and configuration information of SE instructions in the SE instruction set. The dynamic SE DOP generator 21 identifies a sequence of non-flow control SE instructions and generates a sequence of SE DOPs of a sequence of non-flow control SE instructions. The SE instruction-set configuration process continues to generate a single or plurality of SE instruction sets 16 and an SE instruction configuration information 17 for generating SE DOPs for SE instructions 35 generated according to primary DOPs of unsecured instructions 54, wherein SE DOPs for SE instructions 35 and sequences of SE DOPs of SE instructions are dynamically configured and utilized for dynamically reconfiguring the reconfigurable SE instruction decoder 33 with DOPs and DOP accessing orders of SE and SD instructions stored in the SE DOP storage 35 and the SE DOP access lookup table 36 whenever a single or plurality of SE and SD instructions is received from the SE instruction fetch unit 32.

The SE microprocessor 31 accesses SE instructions and SD instructions from the mixed SE and SD functions in SE program 7 and SE information and SD information from the mixed SE and SD information 42 to produce execution results of the functions from OS 3-1 and the functions from application software 3-2 with SE information received 42-1, SE

information 42-4 generated, and SD information 42-5 received and produced. Therefore, the SE computing system 41 securely operates with both SE and SD information and SE and SD instructions in a program.

The presented SE information and instruction generation processes and the presented SE information interpretation process are not limited in their application to the details of construction or to the arrangements of the components set forth in the above description or illustrated in FIG. 3.