CA1134052A - Address control system for software simulation - Google Patents

Address control system for software simulation

Info

Publication number
CA1134052A
CA1134052A CA341,030A CA341030A CA1134052A CA 1134052 A CA1134052 A CA 1134052A CA 341030 A CA341030 A CA 341030A CA 1134052 A CA1134052 A CA 1134052A
Authority
CA
Canada
Prior art keywords
address
program
virtual machine
translation
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA341,030A
Other languages
French (fr)
Inventor
Saburo Kaneda
Takamitsu Tsuchimoto
Kazuyuki Shimizu
Fujio Ikegami
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of CA1134052A publication Critical patent/CA1134052A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Abstract

ABSTRACT OF THE DISCLOSURE
An address control system for software simulation in a virtual machine system having a virtual storage function. In the case of a simulator program simulating an instruction of a program to be simulated, an address translation of an operand address of the program to be simulated is achieved using a translation lookaside buffer, thereby to greatly reduce an overhead for the address translation in the simulator program execution.

Description

3~!L~

This invention relates to an address control system for software simulation, and more particularly to an efEective address control system for software simulation in a virtual machine system having a virtual storage function.
Description of the Prior Art In recent years, the concept of "virtual machine" has been intro-duced and attempts have been made to put it into practice. The concept of virtual machine is described in detail, for example, in "IBM System Journal"
1972, No. 2. The utility of a virtual machine may be summarized as follows:
1) It is possible, -through utilization of one hardware system, to create such an environment as if each of a plurality of users sharing one computer system uses it all for himselE~
2) It is possible to virtually establish computer systems of slightly different architectures or system configurations. Accordingly, the use of the virtual machine enables simultaneous running of programs that run under different operating systems, and permits more flexible modification of the system configuration; furthermore, the operating state oE the system can be monitored, and each user is free to use the debug function of the machine.
Since a plurality of user programs run under the operating system (OS), a computer resource (a central processor, a main memory, channels, an input/output controller, an input/output device, and a system console) is managed so that it is shared by respective programs. Between the operat-ing system and the real machine is provided a conceptual interface called a hardware interface, and between user programs and the operating system is ~! ~

~ , , , ~3'~

provided an interface called a user program/OS inter-face. In the case of the virtual machine system, a program called a virtual machine monitor (VMM) controls a plurality of operating systems so that the system resource is shared by the respective programs. Under the virtual machine system, a plurality of virtual machines can be run simultaneously.
Nowadays, multiprogramming techniques are utili~ed for eEficient running of the computer system, and the multi-programming techniques permit sharing oE the system resource by the respective programs. The system re-source is controlled by the operating system and can be accessed by an instruction commonly called a "privileged instruction" which only the operating system can issue.
Each user program is assigned a "problem mode", and when the user program issues the aforementioned privileged instruction, a program inter-ruption called a "privileged-operation exception" is detected.
In the case of the virtual machLne, a plurality of conventional operating systems can be run at the same time; consequently, the system resource controlled by the operating systems in the past are controlled by the program referred to as the virtual machine monitor (~MM). The user programs, including the operating systems used, are all assigned the "problem mode", and only the virtual machine monitor operates in a "privi-leged mode". Accordingly, when the operating system of each user tends to execute the "privileged instruction", a program interruption is detected and execution control is transferred to the virtual machine monitor, which simulates this "privileged instruction".
The vir-tual machine monitor has such functions as follows:
The virtual machine monitor:
(1) Controls the user programs (including the operating systems) '3"' ~
~q;~

to share the system resource eEEiciently;
(2) Simulates the "privileged instruction" Erom each operating system;
(3) Receives all interrupts (including an I/O interrupt, an external interrupt and an interrupt accompanying a virtual memory) and performs processing according to the interruption sources and, if necessary, posts the interruption to each operating system.
The virtual machine has such advantages as mentioned previously, but in the case of running a program under the virtual machine, perEormance - 10 degradation is caused to some extend due to an overhead peculiar to the virtual machine, as compared with the case of running the same program under the operating system oE an ordinary computer heretofore employed. The overhead can be divided into direct and indirect ones as follows:
(1) Direct overhead This occurs mainly in the course of processing by software of the virtual machine monitor and this type of overhead is as follows:
(a) Overhead by simulation of privileged instruction.
As described above, each user program including the operating ~- system used therefore is assigned the 7'problem mode", privileged instruct-~ 20 ions issued by the operating system are all simulated by the virtual machine : monitor.
(b) Overhead for switching each user program.
(c) Overhead for supporting the virtual memory function of the operating system (d) Overhead for translation of channel programs.

, `::
`.~'~.:

A channel program for starting an input/output device by the operating system is a logical address to a host computer; therefore, the virtual machine monitor translates the logical address to a real address of the host computer.

~ . ~

(e) Overhead Eor supporting in~erruptionS
In the virtual machine, each interruption is indexed by t~e virtual machine monitor, so that if this interruption is required, it must be reflected in t~e operating system; this processing is carried out by the virtual machine monitor.
(f~ Overhead for supporting console function The virtual machine monitor supports the console function, including the debug function.
(2) Indirect overhead `
In the existing operating system, various algorithms are incorporated in the system of allocation and management of the system resource so as to enhance its availability, but when run under the virtual machine system, these algorithms may in some cases produce a contrary result~
Next, the prior art will be described in connection with the simulation of the privileged instruction Since each user program, including the operating system used therefor, i5 assigned the "pro~lem mode" as described above, the prlvileged instructions used by the operating system are all ~detected as "privileged-operation exceptions" and indexed in the virtual machine monitor (VM~1~. Then, the vir-tual machine monitor ~VM~1) simulates the privileged instruction in the following manner.
When a program interrupt of the "privileged-operation exception"
is detected, an old program status word (PSW~, an interruption code, ~tc. are loaded in a prefix area. After saving a general purpose register in a working area of the virtual machine monitor tVMM~, the virtual machine monitor (VM~I) reads from a virtual machine (VM) area an operation code of an instruction having issued the privileged-operation exception from the old program status word and, after an operand address computation corresponding to the operation code from the contents of a field of the instruction and the saved general purpose register, transfers control to the instnlction processing routine corresponding to the operation code.
In the instruction processing routine, a required operand is read from or written in, or read from and written in the virtual machine (VM) area.
The processing of some steps by the virtual machina moni-tor (VMM) is accompanied by read/write of an operand in the program area of the virtual machine (VM). The program of the virtual machine monitor (VMM) operates in the real address mode for supporting a virtual memory of the operating system. Accordingly, in the processing of these steps, when the program area of the virtual machine (VM) is accessed, the logical address of the operand is translated into a real address using an instruction explicitIy instructing an address translation (a load real address instruction) and then the main memory is accessed with the real address thus obtained. Since the load real address instruction usually does not use a translation looka-side buffer (TLB) for loading a pair of logical and real addresses, a segment table and a page table on the main memory are always accessed for dynamic address translation (DAT), resulting in an appreciable amount of ove-rhead.
Especially in the case of accessing a plurality of operands of different locations by one instruction, the overhead necessary '~

~L34~6~

for the d~lamic address transla~ion tDAT) becomes remarkable.
SUMMARY OF TH~ INVENTION
This invention has for its object to reduce the 'roverhead due to address translation during the simulation of a pri~ileged instruction".
T~e above objective can be achieved by providing an address control system for software simulation in a data processor which has a translation device for coordinating an address on a program with a main memory address and a function of simulating the exe-cution of an instruction of a program to be simulated by the execution of one or more instructions of a simulator program and which is provided with first means for holding information for dlscriminating the operating state of the simulator program and the operating state of the program to be simulated, second means for holding control information for coordinating the address on the program to be simulated with the address on the main program in the case o simulating the program to be simulated by the simulator program, third means for holding control information for coordinating the addres~ on the simulator program with the address on the main memory, and fourth means for indicating the selection of either the second or third ~eans is selected during the operation of the simulator program, ~.Therein the address translation is controlled by the first, second, third and fourth means~

~46~

BRIEF DESCBI_TI0N OF THE _RAI~INGS
Fig. 1 is a diagram showing the concept of a general machine system heretofore employed;
F~g. 2 is a diagram showing the concept of a virtual mach:Lne system;
Fig. 3 is a flow chart showing processing of a virtual machine monitor (VMM);
Fig. 4 is a block diagram illustrating the construction of an address control circuit according to a first embodiment oE this invention;
Fig. 5 is a block diagram illustrating the construction of an address translation circuit according to this invention;
Fig. 6, on the first sheet of drawings, is a diagram showing dynamic address translation (DAT) control information loaded in a control register;
Fig. 7, on the first sheet oE drawings, is a diagram showing the content of a prefix register;
~; Fig. ~ is a block diagram illustrating the construction of an ` address control circuit according to a second embodiment of this invention;
and Fig. 9 is a diagram showing an example of the content of a register during the execution of a move character instruction.
DESCRIPTION OF THE PP~EFERRED EMBODrMENTS
Fig. 1 schematically shows the concept of an ordinary computer system heretofore emp]oyed; and Fig. 2 schematically shows the concep~ of the virtual machine system. In Figs. 1 and 2, the real machine means compu-ter hardware In Fig. 2, the broken line blocks each correspond ~o the convention-al ordinary computer system and are each referred to as a virtual machine ~....
,. ..;

lg~

(VM). Under the virtual machine system, a plurality of Yirtual machines can be run simultaneously.
Fig. 3 shows a process char~ of the virtual machine monitor (VMM).
In the flowchart of Fig. 3, processing of steps 1, 2 and 3 is accompanied by read/write of an operand in the program area oE the virtual machine (VM).
The program of the virtual machine monitor (~M) operates in the real address mode for supporting a virtual memory of the operating system.
Accordingly, in the processing of the steps 1, 2 and 3, when the program area of the virtual machine ~VM) is accessed, the logical address of the operand is translated into a real address using an instruction explicitly instructing an address translation (a load real address instruction) and then the main memory is accessed with the real address thus obtained. Since the load real address instruction usually does not use a translation looka-side buffer (TLB~ for loading a pair oE logical and real addresses, a segment table and a page table on the main memory are always accessed for dynamic address translation (DAT), resulting in an appreciable amount of overhead.
Fig. 4 illustrates an address control circuit produced in accordance ; with a first embodiment of the present invention. In Fig. 4, reference numeral 1 indicates a first word of a program status word (PS~) register;
2 designates a second word of the PSW register; 3 :
:;

-8a-idcntifies an operand one-address register; 4 denotes an operand.
two-address register; 5 represents a virtual machine dynamic address translation (VMDAT~ latch, 6 shows a status indicate latch; 7 to 9 refer to AND gates; and 10 indicates an OR gate.
Upon detection of a proyram exception during O~ ~ O~ ~c.
user program (including an operating system~, an interruption occurs and, according to address tra.nslation control informa-tion in PSW controlling the dynamic address translation (DAT~
at that time, the VMDAT latch S is set. In concrete terms, duri.ng the operat.ion of-each`~ser program, when a bit (EC bi-t) indicating an extended control mode and a bit (T bit~ indicating an address translation are both 1l1", the VMDAT latch 5 is set at the moment of occurrence of status transition from the vir~ual machine (VM) state to the virtual machine monitor (VMM) sta-te ~hat is, at the moment of occurrence of an interruption in the VM state). Then, replacement of PS~ takes place to load a PWS of the virtual machine monitor (V~.M~ in each of the PSW
registers 1 and 2. When the program exception is detected, an interruption (INT) input of the state indicate latch 6 becomes "1'1 and thè state indicate latch 6 outputs ~ indicating the virtual machine monitor ~VMM~ state. The state indicate latch 6 i.s adapted to output "1" on the VM side and "0" on the VMM
side by a return (RTN~ instruction w~ich is issued for the tran-sfer of control to the virtual machine ~VM~ after completion of simulation by the virtual machine monitor (V~l. The virtual machine monitor ~V~ controls the bit 0 of the operand address register and, when an address translation is required, _ g _ sets the vaue of the bit 0 to "1". By this setting, the state indicate latch 6 indicates the virtual machin2 monitor (VM~l state ('~1" at the output of the VMM side), and w~en the bit 0 of the operand addres.s register is "1", the operand address corresponding thereto is accessed,by which the AND gate 8 or 9 corresponding to the accessed operand address outputs "1", deriving from the OR gate 10 a signal Tx indicating the execution ; of an address translation usiny address translation information during the VM program operation. In other words, the operand address (logical address) performs an address translation by accessing, throu~h u-.ili~ation of address translation informa-`~; tion of ~he virtual machine, a translation lookaside buEfer ` (TCB) or a translation -table used in the virtual machine.
: .
~ Fig. 5 shows an address translation circuit according , , , to the present invention. In Fig. 5, reference numeral 11 indicates a curren~ address translation control information register; 12 designates a preceding address translation control in~ormation reg.ister; 13 identifies a sesment table orlgin identification (STO-ID~ selector; 14 denotes an address translation processing unit with a DAT table; 15 represents a prefix processing unit; 16 show3 an absolute address re-gister; 17 refers to a comparator; 18 indicates a bus for transferring the output from an i~entification tID~ register 28, described later, to the comparator 17 and a translation lookaside buffer (TLB~ 26 described later; 19 designat~s a bus for a real address translated by the address translation porcessing unit 14; 20 identifies one part of a logical address :

whicil is to be translated ar;d is used for addressing the TLB
26; 21 denotes one part of the logical address which is ~o be translated and is compared with data of a logical address field read from the TLB 26; 22 represents a l~w-order bit of the logical address; 23 sho~s a ~us for transEerring a logical address field of an entry read from the TLB 28 to a comparator 29 described later; 24 refers to a bus for transferring an iden-tification field of the entry read from the TLB 26 to the comparator 17; 25 indicates a bus for txansferring a real address field of the entry read from the TLB 26 to a register 31 des-cribed later; 26 designates a translation lookaside buffer (TLB) which is formed by a memory packaged in a central proces-sing unit (CPU~ for achieviny a dynamlc address translation at high speed; 27 identifies a buEfer register for receiving the entry read from the TLB 26; 28 denotes an ID reyister; 29 represents a comparator, 30 shows an P~D circuit; 31 refers to a real address register; 32 indicates a gate; 33 desiynates a signal indicating a failure of the translation-by the TLB 26; 34 identifies a signal indicating success of the translation by the TLB 26; 35 denotes an address information select signal; 36 represents an inverter; 37 repres~nts the output from the inverter 36; 38 shows a bus for transferring the content of the register 11 to the register 12; 39 indicates a decoder;
40 designates a bus for address control information selected by a signal Tx 35; 41 iden~ifies .~ ~us for txansferring the output from the real address regi,ter 31 to the prefix proces-sing unit 15 and tEle TLB 26; 42 denotes a register for holding V~P

a prefix value oE a proyram under execution; 43 represents a register for holding the content shifted thereto from the register 42 in the status transition from the virtual machine (VM~ to the virtual machine monitor (VM~I~; 44 shows a bus for transferring a prefi~ vaLue s~lected by the siynal Tx 35 to the prefix processing unit 15; 45 refers to a gate;
46 indicates a control signal ~hich ~ecomes "1" when the address translation by the dymanic address translation table ~DAT table~ succeeds; and 47 designates a logical address register.
In Fig. 5, the current address translation control infor-mation register 11 stores the translation bit (T bit) and the EC
bit of the current PSW and dynamic address translation control information of control registers CRo and CRl. The preceding address translation control information register 12 loads the content of the current address translation control information re.gister 11 in the case of the Status transition from the virtual machine (VM) to the virtual machine monitor ~VMM~. The ID
s01ector 13 is composed of a segment takle origin stack circuit and a control circuit therefor a.ld responds to the address control information of the register 2 to select ID information corresponding thereto. The address translation processing unit 14 with the DAT table is a processing control unit which performs dynamic address translation using the DAT table on a main memory in the case where the address translation by the TLB 26 has ended in a failure. As the address translation information employed in this case, use is made of the information of the register 11 ~L3~2 or 12 selected by t~e siynal Tx 35. The real address converted at the moment of completion of -the address translation by the DAT ta~le is ~ritten in the TLB ~6 togetl~er with one part of the logical address on the ~us 21 and the ID on the bus 18.
The prefix processing ~it 15 performs prefi~ processing using the value of a prefix register selected by the signal Tx 35. The address translated by the prefix processing unit 15 is set in a high-order bit of the register 16, and a low-order bit of the logical address 22 is set in a low-order bit of the register 6. By an address in the register 6, the main memory is accessed.
The comparator 17 compares the ID information read from the ID selector 13 with information read from the TLB 26 and out-puts "l" in the case of coincidence. The comparator 29 com-pares one part of the loyical address to be translated and the logical address field of read TLB entry and outputs ' in the case of coincidence~
The arrangement of Fig. 5 differs from the conventional arrangement in that the register for :Loading the address translation control information is selected by the address information select signal Tx 35. That is, when the signal Tx is "l", informa~ion of the preceding address translation con~rol information register 12 and information of the register 43 for holding the preceding prefix value are selected. This enables the virtual machine monitor (VMM~ to perform address translation using address information of the vir-tual machine (VM~.

~L3~

When the signal Tx is "0", information of the current address translation control information register 11 and infor-mation of the register 42 for holding the current prefi~ value are selected. The addressing in the prior art corresponds to the case of the signal Tx ~eing "0".
As described above, ~hen the pro~ram of the virtual machine monitor (V~ uses an operand in the program of the virtual machine ~VM) executed i~nediately before, the address translation corresponding to the operand can be achieved using the translation lookaside buffer.
Fig. 6 shows dynamic address translation control infor-mation loaded in the control registers CRo and CRl of the current address translation control information register 11. As depicted in Fig. 6, the control register CRl loads the ST length in bits O to 7 and the ST origin address in bi-t 8 to 25, and the control register CRo loads the page size (PS) in bits 8 and 9 and the segment size (SS) in bits 11 and 12.
No description will be given o,the control for ~a~ the dynamic address translation based on the information loaded in the control registers, since it i3 set forth in detail in "IBM System/370 Principles of Operation, G~ 22-700, File ~o.
S/370-Ol'i .
Fig. 7 shows the content of the prefix register 42. As depicted in Fig. 7, the prefix ~alue of program is ~eld in ~its 8 to 1~.
Fig~ 8 illustrates an address control circuit according to a second en~odiment of this invention. In Fig~ 8, the same reference numerals as -those in Fig. 4 indicate the same parts;
and reference numeral 50 ~e~i~Ra~e an instruction register, and 51 and 52 identify comparators. In this e~bodiment, it is determined whether to perfonm real address control semi-Eixedly or address translation control by the VMDAT latch 5 in response to the register number indicatea in a register indicate field of an instruction in the virtual machine monitor (VMM) state.
Let it be assumed, for example, that general purpose reyisters 0 to 3 are subjected to the address control of the current program status word and that yeneral purpose registers
4 to lS are subjected to the address translation control by the VMDAT latch.
In Fig. ~, it is checked by the comparator 51 whether or not the register number indicated by a part Bl of the instruc-tion register 50 is included in general purpose register numbers 4 to 15; and it is checked by the comparator 52 whether or not the register number indicated by a part B2 of the instruction register 50 is included in the general purpose register numbers 4 to ~5.
When the state indicate latch 6 indicates the virtuàl machine monitor (VMM) state ("1" at the output of the VMM
side) and the operand register number is included in the general purpose register numbers 4 to 15, the corre-sponding operand address is accessed~by which the output from the corresponding AND yate 8 or 9 becomes ~ deriving the address information select signal Tx from ~he OR gate 10~
The subsequent operation is the same as in the Eirst embodiment.

~13~3~

Fig. 9 shows an example of -the register content during the execution of the move character (MVC) instruction. The MVC instruction has the unction hy which data of an area on a main memory corresponding to the byte number indicated in a part V using, as an origin address, the value that the value of the part D2 is added to the value of the general purpose register indicated by the part B2 (ope~and 2~, is transEerred to an area oE the main memory using, as an origin address, -the value that the value of the part Dl is added to the value of the general pur-pose register indicated by the part Bl (operand l). Ir Fig. 9, the value of the part Bl is "l" and is not included in the general purpose register numbers 4 to 15, so that the output from the comparator 51 becomes "0" and the signallalso becomes "0", resulting in the operand l being subjected to the address translation control by the virtual machine monitor (VMM~.
Since the value of the part B2 is "4" and included in the general purpose register numbers 4 to 15, the second operand is subjected to the immediately preceding address translation control by the virtual machine (VM); when the value of the VMDAT latch is "0", a real address "00002567" is provided and when the value of the VMDAT latch is "1", a logical address "00002567" is provided. In this second embodiment, the cor-ralation between the register number and the address transla-tion control can be changed arbitrarily according to processing.
As has been described in ~he foregoing, according to this invention, when a simulator program simulates an instruction of a program to be simulated, the ~L3~

address translation of an operand ~ddress of the proyr~m to be simula-ted can be achieved using a translation lookaside buffer, so that the overhead for the address translation in the execution oE the simulator program can be greatly reduced.
Although the present inven~ion has been described above in con-nection wit~ the case where the execution of a privileged inst-ruction in the virtual machine is simulated by software called the virtual machine monitor (VMM~ program, it is evident -that the invention can easily be applied to the cases of simulating the execution of an instruction not only by the virtual machine but also by software.
It will be apparent that many modifications and variations may be effected without departing from the scope of the novel concepts of this invention.

Claims (4)

WHAT IS CLAIMED IS:
1. An address control system for software simulation in a data processor which has a translation device for coordinating an address on a program with a main memory address and a function of simulating the execution of an instruction of a program to be simulated by the execution of one or more instructions of a simulator program, said system comprising:
first means for holding information for discriminating the operating state of the simulator program and the operating state of the program to be simulated;
second means for holding control information for coordinat-ing the address on the program to be simulated with the address on the main program in the case of simulating the program to be simulated by the simulator program;
third means for holding control information for coordinating the address on the simulator program with the address on the main memory; and fourth means for indicating the selection of either the second or third means during the operation of the simulator program;
wherein the address translation is controlled by the first, second, third and fourth means.
2. An address control system according to claim 1, wherein a general purpose register number for operand address computation is used as the fourth means.
3. An address control system according to claim 1, wherein information of one part of the operand address is used as the fourth means.
4. An address control system according to claim 2 or 3, wherein in the case where the translation device for coordinating the address on the program with the main memory address is established by an address translation device of a virtual memory system, when the first means indicates the operating state of the simulator program, the second means indicates an address translation mode and the fourth means indicates an address translation, the address translation is achieved using the address control information held in the second means.
CA341,030A 1978-12-01 1979-11-30 Address control system for software simulation Expired CA1134052A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP148834/1978 1978-12-01
JP14883478A JPS5576447A (en) 1978-12-01 1978-12-01 Address control system for software simulation

Publications (1)

Publication Number Publication Date
CA1134052A true CA1134052A (en) 1982-10-19

Family

ID=15461768

Family Applications (1)

Application Number Title Priority Date Filing Date
CA341,030A Expired CA1134052A (en) 1978-12-01 1979-11-30 Address control system for software simulation

Country Status (7)

Country Link
US (1) US4347565A (en)
JP (1) JPS5576447A (en)
AU (1) AU530696B2 (en)
CA (1) CA1134052A (en)
DE (1) DE2948285C2 (en)
FR (1) FR2443100A1 (en)
GB (1) GB2043309B (en)

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JPS5687282A (en) * 1979-12-14 1981-07-15 Nec Corp Data processor
JPS57143782A (en) * 1981-03-03 1982-09-06 Toshiba Corp Information processor
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS5938992A (en) * 1982-08-26 1984-03-03 Nec Corp Virtual computer system
US4530052A (en) * 1982-10-14 1985-07-16 Honeywell Information Systems Inc. Apparatus and method for a data processing unit sharing a plurality of operating systems
US5109522A (en) * 1983-06-02 1992-04-28 Amdahl Corporation Data processing system with logical processing facility supporting a plurality of system control programs for production operation
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4695950A (en) * 1984-09-17 1987-09-22 International Business Machines Corporation Fast two-level dynamic address translation method and means
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
DE3689287T2 (en) * 1985-02-18 1994-05-26 Nec Corp Data processing equipment.
JPS61206043A (en) * 1985-03-11 1986-09-12 Hitachi Ltd Interruption control method in virtual computer system
JPS61292753A (en) * 1985-06-20 1986-12-23 Fujitsu Ltd Data processing system for vertural computer
US4747040A (en) * 1985-10-09 1988-05-24 American Telephone & Telegraph Company Dual operating system computer
JPS62114045A (en) * 1985-11-13 1987-05-25 Fujitsu Ltd Address mode control system
JPS62154037A (en) * 1985-12-26 1987-07-09 Hitachi Ltd Virtual computer supervising and controlling system
JPS62166420A (en) * 1986-01-17 1987-07-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション Virtual terminal control
US4785392A (en) * 1986-10-14 1988-11-15 Amdahl Corporation Addressing multiple storage spaces
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
US5167023A (en) * 1988-02-01 1992-11-24 International Business Machines Translating a dynamic transfer control instruction address in a simulated CPU processor
US5375213A (en) * 1989-08-29 1994-12-20 Hitachi, Ltd. Address translation device and method for managing address information using the device
JPH0820975B2 (en) * 1990-03-29 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション Computer system and tracing method performed on the computer
US5381535A (en) * 1990-10-24 1995-01-10 International Business Machines Corporation Data processing control of second-level quest virtual machines without host intervention
AU651453B2 (en) * 1991-03-07 1994-07-21 Digital Equipment Corporation Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment
US5652869A (en) * 1991-03-07 1997-07-29 Digital Equipment Corporation System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls
US5649140A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation System for use in translating virtual addresses into absolute addresses
US5850628A (en) * 1997-01-30 1998-12-15 Hasbro, Inc. Speech and sound synthesizers with connected memories and outputs
US6185665B1 (en) * 1997-02-28 2001-02-06 Matsushita Electric Industrial Co., Ltd. File management apparatus, file management method, and recording medium containing file management program
US6247172B1 (en) * 1998-07-02 2001-06-12 Hewlett-Packard Company Method for a translation system that aggressively optimizes and preserves full synchronous exception state
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6934817B2 (en) 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7194634B2 (en) * 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US6976162B1 (en) 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
US7225441B2 (en) 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
CA2704080C (en) 2001-07-26 2012-08-28 Irise System and process for cooperatively programming a simulation program of a computer application to be developed
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7092869B2 (en) * 2001-11-14 2006-08-15 Ronald Hilton Memory address prediction under emulation
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US6820177B2 (en) * 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
US7165181B2 (en) 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) * 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7900017B2 (en) * 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US8079034B2 (en) 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7177967B2 (en) 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050080934A1 (en) * 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7451443B2 (en) * 2003-10-01 2008-11-11 Hewlett-Packard Development Company, L.P. Online computer maintenance utilizing a virtual machine monitor
US7636844B2 (en) 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US8621179B2 (en) * 2004-06-18 2013-12-31 Intel Corporation Method and system for partial evaluation of virtual address translations in a simulator
US7305592B2 (en) 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
JP2006155272A (en) * 2004-11-30 2006-06-15 Hitachi Ltd Control method and program for virtual computer
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8285968B2 (en) 2009-09-29 2012-10-09 International Business Machines Corporation Performing memory accesses while omitting unnecessary address translations
WO2012048162A2 (en) 2010-10-08 2012-04-12 Irise System and method for extending a visualization platform
US9703723B2 (en) * 2011-08-29 2017-07-11 International Business Machines Corporation Method and apparatus for performing mapping within a data processing system having virtual machines
US10592424B2 (en) 2017-07-14 2020-03-17 Arm Limited Range-based memory system
US10467159B2 (en) 2017-07-14 2019-11-05 Arm Limited Memory node controller
US10353826B2 (en) 2017-07-14 2019-07-16 Arm Limited Method and apparatus for fast context cloning in a data processing system
US10489304B2 (en) 2017-07-14 2019-11-26 Arm Limited Memory address translation
US10613989B2 (en) * 2017-07-14 2020-04-07 Arm Limited Fast address translation for virtual machines
US10534719B2 (en) 2017-07-14 2020-01-14 Arm Limited Memory system for a data processing network
US10565126B2 (en) 2017-07-14 2020-02-18 Arm Limited Method and apparatus for two-layer copy-on-write

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3544969A (en) * 1967-11-27 1970-12-01 Standard Computer Corp Language independent computer
US3983541A (en) * 1969-05-19 1976-09-28 Burroughs Corporation Polymorphic programmable units employing plural levels of phased sub-instruction sets
US3665487A (en) * 1969-06-05 1972-05-23 Honeywell Inf Systems Storage structure for management control subsystem in multiprogrammed data processing system
NL7407274A (en) * 1973-05-31 1974-12-03
US3955180A (en) * 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system

Also Published As

Publication number Publication date
DE2948285A1 (en) 1980-06-04
US4347565A (en) 1982-08-31
AU530696B2 (en) 1983-07-28
DE2948285C2 (en) 1984-07-12
JPS5725860B2 (en) 1982-06-01
FR2443100B1 (en) 1983-08-19
JPS5576447A (en) 1980-06-09
AU5336079A (en) 1980-06-05
GB2043309B (en) 1983-05-05
GB2043309A (en) 1980-10-01
FR2443100A1 (en) 1980-06-27

Similar Documents

Publication Publication Date Title
CA1134052A (en) Address control system for software simulation
US4802084A (en) Address translator
US4459661A (en) Channel address control system for a virtual machine system
CA1105147A (en) Input/output cache system including bypass capability
US4779188A (en) Selective guest system purge control
US3631405A (en) Sharing of microprograms between processors
US5317705A (en) Apparatus and method for TLB purge reduction in a multi-level machine system
US4494189A (en) Method and means for switching system control of CPUs
EP0137191A2 (en) Virtual machine system controller
JP2863693B2 (en) Data transfer device and method in virtual storage system
KR910001447B1 (en) Main storage access control system for virtual computing function system
EP0145960B1 (en) Selective guest system purge control
US5437016A (en) Apparatus and method for translating logical addresses for virtual machines
WO1993013482A1 (en) Computer system with two levels of guests
US5615327A (en) Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system
US5280592A (en) Domain interlock
EP0619899B1 (en) Software control of hardware interruptions
EP0303783A2 (en) Data processing system with logical processor facitily
JPH06332803A (en) Tlb control method in virtual computer system
JPS61292753A (en) Data processing system for vertural computer
JP2523502B2 (en) Control system of recursive virtual machine
JP3125790B2 (en) Address translator
JPH0412861B2 (en)
EP0550285A2 (en) Machine with two units of operation
JPH0450620B2 (en)

Legal Events

Date Code Title Description
MKEX Expiry