CA1182927A - Memory management arrangement for microprocessor systems - Google Patents

Memory management arrangement for microprocessor systems

Info

Publication number
CA1182927A
CA1182927A CA000428811A CA428811A CA1182927A CA 1182927 A CA1182927 A CA 1182927A CA 000428811 A CA000428811 A CA 000428811A CA 428811 A CA428811 A CA 428811A CA 1182927 A CA1182927 A CA 1182927A
Authority
CA
Canada
Prior art keywords
mode
interrupt
memory
microprocessor
set forth
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
CA000428811A
Other languages
French (fr)
Inventor
Harry B. Mendell
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.)
AT&T Corp
Original Assignee
Western Electric Co Inc
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 Western Electric Co Inc filed Critical Western Electric Co Inc
Application granted granted Critical
Publication of CA1182927A publication Critical patent/CA1182927A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Abstract

MEMORY MANAGEMENT ARRANGEMENT FOR MICROPROCESSOR SYSTEMS

Abstract A memory management system is structured for use with a self-contained microprocessor to form a multi-user computer. The system operates to establish user and kernel modes each having different operating permissions. When the system is operating in the user mode, certain of the fixed functions of the microprocessor, such as interrupt-off and halt, are blocked from enablement by any user. The system is designed having multiple memory maps, some accessible when in the user mode and all accessible from the kernel mode.

Description

~ 1 ~

MRMORY MANAGEMENT ARRANGEMENT
FOR MICROPROCESSOR SYSTEMS

Back~round of the Invention This invention relates to a multi processing computing system and more particularly to such a system founded upon a single-user microprocessor.
Multi user and multi-process computing systems are now well known and widely used for many applications~
Typically these systems have an operating system for controlling the functions of the machine in response to user instruction sets, called programs. The operating system, of which the UNIX (trademark of sell Telephone Laboratories) operating system is but one of many, resides or runs on a host computer.
One characteristic designed into the host computer is the ability to handle multiple users on a time shared basisO This characteristic, while appearing simple to the user, i5 in fact a complex system which serves many purposes, such asf for example, keeping one userls files separate from another user's files.
Another example of such multi-process computers is the ability of the host computer to prevent one user's programs from inter~ering with the programs of another or
2$ with the operating system itself. One typical sxample of the complexity is the inherent ability of the computer to prevent any user program from gaining control of the computer to such an extent that no other user could gain access thereto~ Another typical example would be the ability of the host computer to prevent a user from destroying or erasing a disk file or memory due, possibly to a faulty command, or even due to a purposeful instructionO
Another set of problems revolves around the question of memory space allocation, protection and control. The addresses to which a user '5 data i5 to be written resides on internal registers in the micro-processor. Each user's program has complete control over these registers, and consequently, one user's data could be written into the memory space used by another user.
~hile large computers have solved many of these problems there exists a number of microprocessors, which because they are designed for single users, do not possess the inherent capability of managing memory space between users or preventing the user from inadvertently, or willfully, taking unauthorized action.
The problem is compounded in that these micro-processors are designed with simplicity in mind and with specific input/output capability via certain pre-established leads and all communication to or from the microprocessor must be via commands (0 or 1) on these specific leads. Thus, there is required a circuit for configuring such single user microproeessors to accomplish multi~processing and multi-user operations without neeessitating a change in the standard microprocessor and without adding inordinate overhead in the form of software control or protection circuitry.
Summary of the Inver.ti__ In accordance with an aspect of the invention there is provided a circuit for use in conjunction with a processor, said processor ~laving a set of pre-established input and output leads and operable for executing instruction sets, and operable in response to an interrupt signal for jumping from the instruction set currently being executed to a different instruction set under control of a vector address provided from an external memory, said circuit comprising means for establishing at least first and seeond modes of operation, means for dividing said external memory into blocks, means for controlling said memory such that at least one, but not all, of said memory blocks are accessible by instructions '7 2a -executed by said proeessor while in said first mode, said establishing means ineludes means for switching from said first mode to said second mode under control of an interrupt, and means for switehing from said seeond mode to said first mode by deeoding output bits from said processor.
The microproeessor multi-user recognizes that eertain pre-established address leads from the micro-processor may be used, in eonjunetion with a mode map and the mieroproeessor's interrupt system, to control two basic operating modes. These modes, which are the user mode and the kernel mode, serve to prevent a user from controlling critical computer functions, sueh as turning off the interrupt eontrol or pl.aeing the eomputer in the halt mode.
'rhese modes also facilitate memory proteetion.
Memory management provides twelve memory maps, eaeh of whieh defines a memory spaee of up to 64K bytes. The definition of the 64K byte memory spaee is further subdivided into eight, 8K byte segments whieh ean be t ~ ,;d 7J
- 3 -located on any 64 byte boundary in memory, and can be configured for read access, write access, or both and can be any length in units of 64 bytes, up to ~K bytes~ Of the twelve memory maps, only five are allowed to be accessed with the memory management flag set to the user mode.
Furthermore, the contents of memory maps themselves are only accessible when the memory management flag is set to the kernel mode. The use of the flag in this manner allows complete protection of memory during the operation of a user's program.
This result is accomplished by designing a circuit operating in conjunction with a standard microprocessor and responding to the mode map to allow only certain functions to be performed by a user in the user mode. Other functions, which are critical to the computer op0ration, and if performed improperly would cause great harm, are only performed in the kernel mode. The kernel mode can only be entered under certain conditions and under strict preprogrammed control using interrupts which vector into secure service routines.
Thus, when a critical operation must be performed, for example, reading a disk, the user program makes a call for disk access by executing a software interrupt instruction with the address of a pre-established kernel programO When this occurs, the system ~oes into the Icernel mode, the user loses control, and the called kernel program (which is theoretically free o errors) perorms the desired function in a prescribed fashion.
If the system is in the user mode and the user program sends an unauthorized command, such as the interrupt turn~off command (which would pre~ent any other user from gaining access to the computer), the system responds by turning the interrupt back on. If for some reason the interrupt capability must be turned off for a valid purpose (such as the beginning of an interrupt service routine) then such a command must come to the processor from a program running in the kernel mode. When this occurs, the interrupts will remain off under control of the kernel program~
Th;s system uses a large set of dynamically rearrangeable memory maps which facili-tates moving between different memory spaces, e.g., user instructions, kernel data and kernel instructions thereby making the system more efficient and easier to program. These memory maps are entered under control of bits on the above-mentioned pre~
established address leads and the mode map and the user/kernel flag. The kernel mode can use all memory maps while the user mode is restricted to certain sets and the memory maps can only be changed while in the kernel mode~
The switch from user to kernel mode is coupled to the microprocessor's interrupt system so that the only way the mode can change from user to kernel is via an interrupt sequence, which vectors into a secure service routine in the operating system. This invention includes a circuit which accomplishes a secure transition from user to kernel mode by triggering the transition to kernel mode from the microprocessor's interrupt sequence, and by guaranteeing that any reads or writes taking place during this critical transition function properly and do not jeopardize the security of the system.
Brief Description o~ the DrawincJ
The invention and its several other objects, features and advanta~es will be more fully understood from a readiny of the following description to one embodiment taken in conjunction with the drawing in which:
FIG. 1 shows a system in which this invention may be used;
FIG. 2 shows a block diagram of the basic elements of this invention;
FIG. 3 shows a portion of the processor showing certain address leads;
FIGS. 4~7 show the memory map address control;
FIGS. 8 and 9 show a schematic of this invention;

FIG. 10 shows how FIGS. 8 and 9 are arranged;
FIGS. 11-32 show specific details oE the various elements shown in FIGS. 8 and General Description FIG. 1 shows a typical use of the invention in a multiprocessing computer system. The invention is used within Central Processing Unit CPU 10~ CPU 10 is interfaced to the system via the system bus 18 and is shown with four memory boards 11-1, ll-n. Disk 15 is interfaced 10 to CPU 10 via disk controller 12. User terminals 16-1, 16-2 and 16-M are interfaced via terminal controller 130 Similarly, remote computer 17 may be interfaced via line controller 14.
As shown in FIG. 2, main system processor 200 is a 16-bit CPU which contains a clock generator, bus controller, interrupt controller, timer, bus drivers and latches. The processor address and data buses are connected to 2 ROMs (not shown in FIG. 2) which provide power-up test and bootstrap programs. Two universal synchronous/asynchronous receiver/transmitters (USARTs)(also not shown in FIG~ 2) are connected to the data bus to provide serial I/O ports for loading and testing.
The processor may operate in a privileged mode called kernel mode, or in a restricted mode call~d user mode. The mocle that the processor is in is controlled by mode flag 121, FIG. 2. When the processor is turned on or rsset, the mode flag is set to kernel mode and the processor vectors to a predetermined starting address in the power up read-only-memory (ROM - not shown in FIG. 2).
The ROMs contain programs to test the correct operation of the system shown in FIGS 8 and 9 and then transfer the operating system from the system disk to the system memory.
Before this transfer takes place~ memory management RAM 106 must be written to permit access to the disk and to the system memory.

Y,~'7 ~ fter the interval timer, interrupt controller and USARTs and the memory management RAM are initialized, the operating system will be transferred to rnain system memory and then the operating system will start executing.
Mode map 110 interprets address bits ~A16~AAl9 from processor 2~0. Based on the bits present on those lines, the mode map either selects a specific translation table from management memory RAM 106, or selects access to certain devices which will be detailed later. Mode map 110 also gives the command when necessary to the mode flag to change from kernel mode to user mode. The mode map will do this upon receiving the bits 1100 on address lines AA19, AA18, AA17, and AA16, respectively. When mode map 110 selects a particular section of memory management RAM 106 to use for translation, it first checks the mode flag and compares the mode with the area of the memory management RAM that is selected to insure that if the mode flag is set to the user mode, that it is the user area that has been selected from memory management RAM 106.
It is important to note that although a specific address 1100, on lines AAl9~AA16, causes the mode flag to go from kernel to user mode, the transltion from user to kernel mode takes place by an entirely d;fferent mechanism.
Usin~ the address lines to switch back from user to the kernel mode ls not feasible because the address lines are in complete control of whatever program happens to be executing, and a user program could therefore change to Icernel mode at any time. The memory management system is designed so that th~ transition from user mode to kernel mode can only occur concurrently with an interrupt vector to a predetermined area in the operating system which insures that any change to kernel mode will be accompanied by a control transfer to the operating system. Thus, a mechanism is used which allows switching from user to kernel mode in a manner which puts the operating system in control immediately after the mode is changed to kernel mode.

The system contains a 256x32-bit RAM 106 which stores page address and page descriptor information as will be discussed in more detail hereinafter. The system maps the 20-bit virkual address outputs of the processor into a physical address space of 22 bitso Sixteen bits (SA16-SA31) from the RAM are combined to seven bits (AA6-AA12) from the processor output address and the result is added with the lower six bits (A0-A5) from the processor output address to form a 22-bit physical address (A0-A21) the system address bus~ The other 16 bits (SA0-SA15) from the RAM go to memory access fault logic 130 and are used to control read/write signals and to ~enerate interrupts on illegal reads/writes or on attempted accesses to memory that is out of the allocated address range.
Processor 200 contains an interrupt input, expanded into a number of interrupt inputs by the interrupt controller (not shown in FIG. 2), which operates, upon receipt of a signal, to cause the processor to respond to particular preprogrammed routines under control of an interrupt program. When such an interrupt occurs, control is taken away from the program instructions presently running in the processor and given to the selected interrupt program. In simplest ~orm, the interrupt signal forces a ~ump Erom the instructlon set presently heing executed to a new instruction set by providing a particular address on its output address bus. This orced address points toward a priorly written set of instructions contained in main memory. These interrupt routines are important for many reasons, such as for servicing memory management access violations, input/output devices, and the system clock.
The processor also has the capability of responding to a command that halts all further processing.
Another command will cause the interrupt inputs to turn off so that an executing program cannot be interrupted, even by the system clock. Simply disabling the interrupt turn-off feature is not feasible since this function is built in~o the basic structure of the microprocessor~
As will be seen, the system is designed to only allow the interrupts to be turned off and the halt command given from the kernel mode, where, presumably, an adequate program has been written to protect the system~
FIG. 3 shows the utilization of processor 200 output addresses~ Address lines AA19-AA16 are decoded by the mode map, as ~ill be discussed more fully hereinafter, and are used to select one of twelve memory maps for accessing external memory, to exit ~rom kernel mode into user mode, to directly access the memory management R~M, to directly access certain devices, or to access the power up ROMs.
General Discussion of_FIGS. 8 and 9 As shown in FIG. 8, in simplest form, CPU 10 operates from instructions provided to it via a plurality of inputs and operates on data supplied under control of the input information to provide new data on its output leads. The output data is controlled by a set of twenty leads shown as ADO-AD13. ADO-AD15 form a multiplexed address/data bus, and AD16 to ADl9 form an additional address bus. The address latch 102 latches the address from the multiplexed bus, forming the demultiplexed address bus A0-A5, A~6-AA19. Bits (l's and 0's) on the leads of this address bus point the system toward a virtual address in main memory. This virtual address must then be translated by the memory Management circuit into a specific address location within the main memory. Four of these address leads, namely leads AA16-AAl9, are put in to mode map 110 and select one of twelve memory maps which permit access to system memory, the power up ROM 111, memory management RAM 106, interrupt controller 114, interval timer 113 and USARTs (not shown). As discussed, these bits serve to change the mode flag 121 from kernel to user mode.
3~ When the system is in the uCer mode, any attempt to turn off the processor interrupts will result in the interrupt being turned back on, and any attempt to halt the g processor will result in the processor being immediately restarted with the appropriate warning message returned to the user. The manner in which this is controlled will be discussed hereinafter.
The processor contains twelve maps which control the fields within which the processor may store and retrieve data. Thus, as shown in FIG. 4, memory management control consists of twel~e individual fields (K0`K7 and U0-U3) wlth the particular field being selected by mode map 110 and the particular word within the memory managemen~ RAM 106 being controlled by address bits A15, A14, A13 and A12 as priorly discussed. Each of the words within each of the fields contain a 16-bit PDR field and a 16-bit PAR field. These fields in conjunction with the memory address bits provide a direction to a specific location within the main memory. Each field may be assigned to store a specific type of information. Thus, field Kl can store kernel programs, field K2 could store l~ernel data, while U0 (not shown) could store user's programs, field Ul (not shown) user's data. The particular field and mode is controlled in the manner to be more fully discussed by bits from address lines 19-16. This decoding is shown in FIG. 5. These four bits are decoded and allow access to the selected field and to switch the mode of the system from kernel to user mode.
ypical Operation Assume now that the system has just been turned on, and that the reset si~nal has been sent to CPU 101.
The CPU responds by jumping to a predetermined address that has the bits 1, 1, 1, 1 in address lines AAl9, AA18, AA17, and AA16. Concurrently, the reset signal has set mode flag 121 to kernel mode. The bits 1, 1, 1, 1 in lines AAl9, AA18, AA17, and AA16 at the output of address latch 102 will cause mode map 110 to select the read-only 3~ memories 111 (ROMs). The remaining bits on address lines AA15-AA0 will point to the beginning of the power-up routine located in ROMs 111. Mode map 110 will also put a ~ 10 --1 on line VML because the memory access will be internal to the CPU system and not go on the system bus. A 1 on lead VML causes all external signals to other memory boards to be suppressed, disables the translat;on from virtual to physical address, and disables the access checking by the page descriptor register in the memory management RAM.
The program in the ROMs first verify the correct operation of the CPU system by performing self tests on critical CPU system functions. If the self tests indicate the CPU system is operating properly, the program in the ROM next loads a program from the disk unit to main system memory, and continues to load programs until the entire operating system i5 present in main system memory.
However, before main system memory or disk may be accessed, the memory management RAM 106 must be loaded with the base addresses and access permissions for the system memory that is to be accessed. The memory management RAM may only be written to or read from when the mode flag is in kernel mode. To directly write to or read from the memory ~0 management RAM, address lines AAl9, AA18, AA17, and AA16 must contain the bits 1101 (FIG. 5).
When mode map 110 detects the bits 1101 011 address lines AAl9, AA18, AA17, and AA16, it puts a 0 on the line EN3~L, whlch enables access to memory management RAM 10S via memo~y management controller l26. It also puts a 1 on lead VML which as discussed before disables external access. This 1 on lead VML also causes address multiplexor 104 to allow address bits AA2-AA9 to access the memory management RAM instead of the RAM being accessed by address lines AA13~AA17, line K18 (from the mode map as will be discussed) and line AAl9 as is normally done during a virtual to physical memory translation. Multiplexing the addresses in this manner permits sequential access to the memory management RAM~ It should be noted that memory mana~ement RAM 106 is accessed in two distinctly different ways~ It is accessed during every virtual to physical address translation, to look up information required for calculating address and checking access permission. Memory management RAM is also accessed directly by a kernel program d~ring the initialization and upda~ing of the memory management RAM. Memory management controller 126 configures the memory management RAM for either type of access. sOth the timing, and the data width, which is 32 bits for the translation and only 16 bits for individual access, must be configuredO The timing and control signals for these buffers are controlled by memory management controller 126. Furthermore, there are two bits in each 32-bit word of the memory management RAM which are used to indicate whether or not that segment has been accessed and how it has been accessed. Whenever one of those segments is used for an address translation, the access bit, bit 7, is set in the page descriptor register as an indication that the corresponding segment of memory has been used at least once. There is also a bit of the PDR, bit 6, which is used to indicate that the correspondin~ segment of memory has been written into.
To achieve this, the memory management RAM must be read, modified, and written back to, during an address translation. The temporary data for this is stored in access latch 116. Note that only eight bits need to be latched because it is only the lower byte of the memory manac~ement RAM which is modified in this manner. The timing for this operation is also controlled by memGry management controller 126.
~ efore the operating system can be started, the interval timer 113 and the interrupt controller 114 and the USARTs (not shown) m~lst be initialized These devices are selected by p~tting bits 1110 on address lines AAl9, AA18, AA17, and AA16 (FIG. 5). The mode map takes these bits and enables access to the I/O devices. These I/O devices are only accessible when the mode flag is in kernel mode. When all the I/0 devices and the memory management RAM are initialized, the operating system starts execution and control is transferred to a user program~ The details o~

this transfer will be discussed hereinafter.
Assume now the system is in ~he user ~ode, and a set of bits is provided from CPU 101 onto the address bus shown in FIG. 8~ Bits AA16 AAl9 are used by mode map 110, in the manner shown in FIGo 5 to select one of the maps within memory manaqement control 106.
Since the mode flag is set to user mode, the mode map will only permit access to user maps U0~ Ul, U2, U3 and K0, which is used by both user and kernel modes. If one of the other maps or devices is selected, the signal USRGE
(FIG~ 8) is generated by mode map 110. The USRGE signal goes to address multiplexor and block gatin~ circuit 10~, which will generate the BLOKH signalO The BLOK}I signal will cause the access to be blocked by suppressing the ]5 enables from memory and controller select decoder 117. The BLORH signal will also cause interrupt controller 114 to generate an interrupt to CPU 101. CPU 101 will respond to the interrupt with an interrupt acknowledge signal. This interrupt acknowledge signal causes the mode flag to change from user to kernel mode. At the same time, CPU 101 will vector to an interrupt service routine which ~ill process the error, notify the user of the incorrect access attempt and turn control over to another user program.
Now assuming a proper memory map is selected, the 16 page address ~egister (PA~) bits are used to cletermine the exact physical location within the main memory where the next memory access is to be made. FIG. 4 shows a typical memory map in K0, and many other such maps may be constructed. This is accomplished by providing bits AA12-AA6 from the address bus to 16 bit adder 109 as shown inFIG. 7. These bits are summed with bits 6-0 of the PAR
from the selected mode map. A 22-bit physical address (A0-A21), containing summed bits A21-A6 plus address bits 5-0 from processor 101, is provided on the system address bus ~to system memory and controller boards.
As shown in FIG. 4, each word of the memory management RAM contains a 16 bit page descriptor register - 13 ~

(PDR~ word, the individual bits of which are used to control the function to be performed in accordance with the chart shown in FIG. 6~
The page descriptor regis~er is compared with the attempted memory access to determine whether or not the memory access is valid. This comparison is done by the sec~ion labeled incorrect access interrupts 107, FIG. 9.
If the memory access is a read operation, the incorrect access interrupt section checks to see if read permission is present on the page descriptor register. ~imilarly, if the memory access is a write operation, write permission is checked. In addition to checking read permission and write permission, the address of the memory access is compared with the page length field in the page descriptor register to verify that it is within the range of memory which has been allocated in the page descriptor register. If any errors are detected, the signal Z~ coming out of the incorrect access interrupt section 107 is generated.
Signal ZZ goes to address multiplexor and block gating circuit 104, which upon receipt of the ZZ signal generates the BLOK~I signal as it did in the previous example when it received the USRGE signal from mode map 110. The BL~K~ signal causes board decoder 117 to suppress the board enable which will stop the memor~ access from taking place and will also issue the incorrect access interrupt signal to lnterrupt controller 114 which in turn will interrupt CPU 101.
As before, CPU 101 will respond with an interrupt acknowledge signal which causes the mode flag to change from user to kernel mode and at the same time the CPU
vectors to an interrupt service routine which will take appropriate action and return control to another user program.
Before control is returned to another user 3~ program, the operating system must return the mode flag to user mode. This is accomplished by putting the bits 1100 in address lines AAl~, AA18, AA17 and AAl~ with the virtual .? ~

address of t~le new user progr~m on the remaining adclress lines. The mode map will detect the 1100 pattern (FIG. 5) and cause the mode flag to switch to user mode. When the mode flag is in user mode, any interrupt signal to interrupt controller 114 will result as discussed in an interrupt acknowledge which will cause the mode flag to go from user to kernel mode and the CPU will vector into an interrupt service routine. If the interrupt is caused by an access error or a memory parity error, appropriate action will be taken such as terminating that user's program and going to a dif~erent userls program.
Most interrupts will not be error conditions, but will be part of the normal operation of the system. For example, interval timer 113 periodically inteerupts the processor every 1/60th of a second. This interrupt is used to keep track of the time and is also used by the operating system to check the status of all user programs, and based on CPU utilization per user, may cause a switch from one user to another.
There are also two interrupt lines which go to the processor from other parts of the system. One is the low priority interrupt called LINT and the other is the high priority interrupt called I~T. These interrupt lines may be asserted by external input/output devices, such as the s~stem disk via the disk controller, user terminals via the terminal controller, or communication to another processor via the line controller. These controllers are shown in FIG. 1.
In the event of the receipt of one o these interrupts, the interrupt controller sends an interrupt signal to the CPU which responds with an interrupt acknowledge which causes the mode flag to change from user to kernel mode and then the CPU will vector into an appropriate service routine. In the case of an interrupt from an input/output device~ the CPU will process the request while in kernel mode and then return control to the user program or to a different user program depending upon 3~r~l~'7 15 ~-CPU utilization and other factors.
If an input/output interrupt occurs while the mode flag is in kernel mode, a vector will take place to the same interrupt routine as before~ There is no need to change the status of the mode flag in this case. However, if an access error occurs while the mode flag is in kernel mode, this indicates a serious condition since no access errors should be made by the operating system since it is considered to be secure. In this case a special panic service routine will be entered which will attempt to either halt the system and wait for service or to restart operation of the operating system.
System Operations by User If the user wishes to perform a function, such as write to a disk, which function has been pre-identified as one only accessible from the kernel mode, the user would call the proper kernel program by a high level system call.
A user performs a system call by storing a specific number which represents the type of system call requested. This number is stored in an area of memory referred to as the user stack. Then the user executes the INT instruction which causes the interrupt-off bit to be present. This is detected by the incorrect access interrllpt unit 107 as discussed priorly. Interrupt unit 107 will send a non-maskable interrupt to CPU 101 which causes the CPU to jump to the beginnin~ of the non-maskable interrupt service routine which will examine the user stack, see what system call has been requested, perform the request, and return control to the user program.
The status leads from the microprocessor are decoded by status decoder 103 and the halt and interrupt off status conditions are compared against the mode status bit of memory management control 106. If, for example, the "interrupt off" bit is present during a time when the system is in the user mode, this condition is detected by the incorrect access interrupt unit 107, and a signal is provided to the non-maskable interrupt (NMI) input of microprocessor 101. This NMI forces the microprocessor to jump to a specific address, which is the beginning of the NMI service program. After the NMI and before fetching the first instruction of the NMI service program, the mode flag is switched from user to kernel mode. This allows the NMI
service program to be accessed, which program res;des in an area of memory only accessible through a kernel memory map.
Mode map 110 will only permit access to the kernel memory maps when the mode flag is set to the kernel mode~
The NMI service program then determines the cause of the interrupt being turned off. These causes fall into two classes, system calls and improper interrupt masking~
In the case of a system call the user program is requestin~
action to be taken by the operating system and the attention of the operating system is obtained by intentionally turning the interrupts off. In the case of an improper interrupt mask the user program would turn the interrupts off without making a proper system call. After the NMI service program determines the cause of the interrupt mask, it branches to the proper handling routine in the operating system which services the re~uest, if a request exists, and turns the interrupts back on.
It shoulcl be seen that because the system has twelve stores within memory mana~emetlt controller 126, and because the system has a status flag to control the user and kernel mode, it is possible while in the kernel mode for the mode map to point towards a store where user data is stored. This then allows a program in the kernel mode to access any of the data necessary, without reloading the memory management R~M from the main memory or using special instructions as is done in prior systems.
Detailed Description ~ FIGSr 11~32 The following description is keyed to the various 35 circuit blocks, the functions of which were described in conjunction with FIGSo 8 and 9 and are pro~ided to show one implementation of this invention. Other implementations are certainly possibleD
The main clock for the board is provided by a 12.28~ or 14.7456 mHz(F) oscillator ICl as shown in FIG~ 120 This clock is counted down by IC2 lFIG. 1~) to provide a clock/4 rate RCLK to other memory boards through buffer IC43 and a clock/8 rate scLK to the interval timer IC3~, FI~. 15, and the USARTs (not shown).
Oscillator ICl clocks the HEX flip~flops, ICS, FIG. 14!
which are wired as a shift register. The Tl signal is a clocked version of the address latch enable signal ALE used to latch the microprocessor addressesO Signals T2-T5 are delayed versions of signal T1 with an approximately 60 ns delay between successive signalsO The main clock also serves as the external frequency source for the clock ganerator and driver chlp, IC3, FIG. l~o This circuit divides the frequency by 3 and provides an F/3, 1/3 duty cycle, clock to microprocessor ICll and bus controller IC16.
The reset logic and ready synchronization for the CPU is supplied by IC30 The reset logic provides a Schmitt trigger input (RES) and a synchronizing flip-flop to generate the reset timing. The input signal is generated either by reset=O on power up. Irhe reset signal is synchronized to the falling edge of the clock signal out of reset logic IC3. The ready output of reset logic IC3 in FIG. 14 is an active high signal which is the synchronized version of the RDYl input. Since the input can occur asynchronously with respect to the processor clock, it is necessary to synchronize it before presenting it to the processor to insure that it meets the required set lJp time.
Reset logic IC3 does this job and also guarantees the required hold time before clearing the ready signal.
Microprocessor ICll has a 16-bit address/data bus, an add;tional 4~bit address bus and a 3-bit status bus. The status bits SO, Sl and S2 from ICll are latched and decoded by the bus controller IC16 to provide control signals, address latch enable ALE, memory read command ~ 18 ~

MRDC~ advanced memory write command AMWC, interrupt acknowled~e INTA, and data transmit receive DT/R.
The 16 address/data bits from the microprocessor go to two pairs of bidirectional bus drivers shown in FIGS. 17 and 19. One pair, IC63 and IC64 (FIG. 17) connect to the 16-bit main data bus on the backplane. The other pair IC15 and IC17, FIG. 19, connect to an internal data bus ID0-15. The direction of transmission is controlled by DT/Ro A high on this lead indicates transmit (write to memory) and a low indicates receive or read. The two pairs have outputs enabled by complementary signals. The main data bus to AD bus connection is enabled when LS 2=VMH=DEN=l.
During the first clock period of a machine cycle~
an ALE signal is generated by IC16 (FIG. 14) to latch the 20-address bits, the bus high enable bit, and 3 status bits into IC~, ICl2, and IC14, FIG. 11. As shown in FIG. 20, the ALE pulse also clocks control signals into flip~flops IC44A and B and IC62A. As shown in FIG. 22, the 3 status outputs of ICl4, LSO-2 are decoded by IC45 to ~;ve halt (HALT), instruction fetch (INSTRF), and write ~ata to memory (WRD) indications. The bus high enable output of ICll, (~HEN)~ FXG. 14, along with address bit AO, are used b~ the memory board to select the proper bytes of the memory word to be read or written.
The 20 bits, AAO-l9, address (AAl-AAl2) two power up ~k x 8 ROMS IC10 and 13, FIG. 24, and provide the input to the memory management circuitryO In addition, leads AA16-19 address mode map ROM IC9, FIG. 23. The contents of 30 the mode map are shown in FIG. 25.
The memory management circuitry maps the 20 vîrtual address bits into a physical address space of 22 bits plus additional address space for memory mapped devices, a 256 x 32 memory management RAM and the pos~er-up 35 ROMs . The 256 x 32 RAM array, shown in FIG. 26; ICl9~
IC22, IC25 and IC28 stores page address and page descriptor information. Sixteen bits, SAl6-31, are added to 7 bits of the microprocessor address (AA6-AA12) and then combined with AAO-AA5 to form the 22~bit physical address AO-A21, as shown in FIG. 7, and is priorly discussed.
The address generation described above is implemented by adders IC47, IC49, IC51 and IC55 and a look ahead carry generator IC56 for A6-A21 shown in FIG~ 27 and by buffer IC68, FIGo 13, for leads ~0 ~5. A carry signal out of IC47 is used to indicate that the address space has been exceeded~ The page descriptor information SA0-15 is identified in FIG. 6. The use of these bits will be covered later.
The six highest order address bits are also used to generate memory select signals for the various memory and common controllers to eliminate separate decoding circuits on these units.
The above enable signals are generated by decoders IC33, 48 and 50~ FIG. 28, from the address leads when the control signals VML = 0, B~OKH - 0, and MRQD = 1.
The four highest order bits from the microprocessor, AAl9-AA16, the memory maps, ex-t from kernel to user mode, access the memory management RAM and access various devices as shown in FIG. 5 and as priorLy discussed~
Mode map ROM IC9, FIG. 23, decodes AA19-AA16 and the mode flag to generate the control signals that perform the functions described in the preceeding paragraph.
Leads AA16~19 and PSUP (PSUP = 1 is the kernel mode) address the ROM. The output signals are used as follows:
ICl~ ~ addresses the memory management RAM
and performs the multiple mapping of user blocks U0~U3 in user mode USRGE - A 1 indicates an illegal user attempt to access a kernel map or device EXSUPER - A 1 causes an exit from the kernel mode into the user mode VML ~ A 0 corresponds to an address translation and a memory access on the system bus SEL I/O A 0 along wi-th a memory request (MPQ = 0) enables I/O select decoder IC36 FIG. 16 which selects either the USARTs, interval timer or interrupt controller 0 EN33L - A 0 permits a read and write access to the memory management RAM
SELROM - A 0 selects ROMs IC10 and 13 on power up, system reset or programmed access.
Mode Map The mode map ROM IC9 is shown in FIG, 23 and the contents of the mode map ROM are shown in FIG. 25, and the mode flag is shown in FIG. 20. On power-up or reset, initializing signal INT=0 which presets J-K flip~flops IC~4A, IC44B and IC~A. The Q output of IC62A forces PSUP=l which corresponds to the kernel mode. Unless the mode map ROM decodes the 1100 address to change to user mode, EXSUPER=0 and all Q outputs of the flip-flops remain 1 independent of the status of the J inputs to IC44B and IC62A. When the mode map decodes 1100, the address to exit the kernel mode, EXSUPER ~oes to a 1 level and is clocked into IC4~1A at the trailin~ edge of AL,E. This sets the Q
output of IC44A to 0 and clears IC4~B, in turn clearing IC62A. The combination of cleared flip-flop outputs forces PSUP = 0 which corresponds to user mode~ The circuit remains in the user mode until an interrupt acknowledge (INTA = 0) or nonmaskable interrupt (NMI = 0) starts the switch to kernel mode.
~ uring the interrupt sequence for either a NMI or standard interrupt, the processor writes data to the system memory at an address specified by an internal register in the processor called the stack pointer. 5ince the user program has full control over the stack pointer, the mode 3~7 - 21 ~

flag must not allow the writes that take place during the interrupt sequence to take place with kernel mode access rights. Therefore, the switch between user and kernel mode must take place after the interrupt sequence but before the next instruction fetch memory access.
The interrupt acknowledge (INTA=0) signal presets JK flip-flop IC44A. This removes the clear signal from JK
flip-flop IC44B, sends a 1 on lead 44AQ which disables the detection of interrupts being turned off~ Preset IC44A
makes PSUP=l except during memory writes (WRD=0) when PSUP
is controlled by JK flip-flop IC62A since IC4~A' s input to or gate IC3~ is gated off by WRD=0 into IC27B. Now that IC44B is no longer forced lear by IC44A, IC44B is set by the next decoded instruction fetch (INSTRF=1) from IC31, FIG. 22, which is clocked into the J input by ALE. This instruction fetch is part of the interrupt sequence. Also during the interrupt se~uence memory writes are made to the user stack. These memory writes are decoded by IC45, FIG. 22, (WRD=0) and make PSUP follow the Q output of IC62 which at this point is 0 which represents user mode.
Making PSUP=0 during these memory writes protects the security of the system.
IC44B being set removes the clear signal from IC62A. IC62A i5 set by the next instruction f~tch (INSTRF=l) which is cloc~ed into its J input by ALE. This instruction fetch signifies the end of the interrupt se~uence and is the fetch of the first instruction of the interrupt service routine in kernel mode. This instruction ~etch is not a memory write (WRD=l) and thus PSUP is 1 since IC44A is set. Concurrently IC62A is set by this instruction fetch and all further memory accesses, including memory write, will take place with PSUP being 1, until the mode map ROM decodes a 1100 thereby changing the mode back to user as previously described.
The 256 x 32 memory management RAM array, ICl9, IC22, IC25, and IC2~ FIG. 26, is addressed by one of the sets of signals selected by data multiplexers ICl~, IC21 - 22 ~

and IC24 as shown in FIG. 29. During main system memory accesses, VML = 0, signals AA13~17, K18, AAl9~ form the address. At all other times including a memory management write access, signals AA2-AA9 form the address. These lower order bits for addressing the memory management RAM
permit the RAM to be addressed with sequential addresses.
During main system memory accesses, EN38L = 1 and demultiplexer IC33, FIG. 28, is disabled. Outputs DENL and DENU are held high, blocking potential writes to 3/4 of the memory management RAM (MMRAM)o Signals DENU and DENL also disable bidirectional buffers IC23~ IC26, IC29 and IC32~
FIG. 31, which tie together the internal data bus IDO~16, and the MMRAM data lines SA0-31. The write signals to the upper portion of MMRAM~ WU and the second quarter of MMRAM~
WL, are held high by gates IC30A and 30B, FIG. 30. When VML = O~ IC28, FIG. 26, is written to at the end of T4.
The purpose of rewriting the lower 8 bits during a memory access is to write SA7 = 1 if a page of memory has been accessed and SA6 = 1 if a page has been written to. The other bits are rewritten unchanged. During a memory access, the SAO-5 output of IC28 is latched in IC20, FIG. 18, by EN373 going low at the end of a T2 pulse. If the memory is being written to AMWC = 0 or SA6 = 1 (a previous write to memory), SA6X = 1 is latched. A 1 is also latched for SA7 to indicate a memory access. The latched data is then written into IC28 (FIG. 26) by the combination of write (WX) and chip enable (CEX) signals~
The WX signal is T2 when VML = 0. The CEX signal is a combination of Tl and T4 pulses generated by multiplexer IC6 (FIG. 30). The enable to the other three RAMs CE38 is basically Tl~
During a memory management read/write access VML = 1 and EN38L = 0. The addresses to the RAMs are AA2-9 and Al selects the upper half (DENU = 0) or lower half (DENL = 0) via decoder IC33B (FIG. 30). The den si~nals are enabled by MRQD - 1 and in turn enable bidirectional b~ffers IC23 and IC26 or IC29 and IC32 (FIG. 31)~ On memory reads (MRDC = 0) the SA leads are the input and ID
leads the OUtpUta At other times the data ~low is in the opposite directionO I'he memory writes data from the internal data bus IDO~ID15 when WU -- CE38 = 0 for IClg and 22, when WL = C38 for IC25, and when WX = CEX = 0 for IC28 (FIG. 26).
The interv~1 timer, IC34, is loaded and read via the internal data bus lines IDO-7. Two of the outputs provide clocks to the USARTs and the third output provides a periodic interrupt to the interrupt controller for maintaining a real time clock. Note that the third output assures a regular return from user mode to kernel mode.
The programmable interrupt controller IC35 (FIG. 21) handles up to eight vectored priority interrupts for the CPU. If one of the interrupt request lines IRO-7 are raised high IC35 evaluates the request and sends an INT = 1 to the CPU (FIG. 14). The CPU acknowledges w;th an INTA = 0 which freezes the state of the interrupts for priority resolution. On a second INTA = 0 pulse IC35 will send a byte of data to the processor via IDO-7.
Interrupt IR3 is a periodic interrupt from the interval timer. Interrupt IR4 is from the hard disk controller while IR6 is Erom all of the remaining peripheral controller interrupts. Interrupt IR7 is an interrupt from the status decoder indicating that the processor halted~
T r^ ~re a number of memory access situations that cause interrupts. Comparators IC52 and IC53 (FIG. 32) give a 1 output to the input IC27C when the page size (SA8-1~) equals the present address bits AA~-A12 to indicate that the last permitted page of memory is being accessed. If the warning bit SA2 = 1, the output of IC27C
is 1 and at T5 a warning interrupt, WRN, will be given that no more than 64 additional addresses can be accessed unless more space is allocated. Signal WRN is interrupt IR2~ The A < B and A > B outputs of IC53 serve as inputs to selector IC5~. The output selection is made by SA3 (SA3 = 0 expand 2~ ~

up; SA3 = 1 expand down). If the page memory is exceeded either upward (A > B output = 1, SA3 = O) or downward (A < B output = 1, SA3 = 1), the signal SAE = 1~ Signal SAE is one of ~ inputs to nor gate IC39A (FIG~ 32)~ If any of the inputs go high, the output ZZ goes low~ During memory accesses VML = 0 and ZZ is inverted in data selector IC21 (FIG~ 29) to become the BLOKH signal. A BLOKH = 1 (ZZ = 0) signal disables decoder IC~8 (FIGo 28) thus blocking system memory and controller enable signals and preventing memory accesses. The BLOKH = 1 signal also causes interrupt IRl through signal ACC. A memory read MRDC = 0 without read permission (SAO = 0) will cause the output of IC46A (FIG~ 32) to go high, also forcing ZZ = 0 and an ACC interrupt~ Similarly a memory write AMWC = 0 without write permiss;on (SAl = 0) causes the output of IC~6B (FIG. 32) to go high, forcing ZZ = 0 and an ACC
interrupt. Finally a carry from the adder (FIG. 27) indicating that the total address capability of the system has been exceeded causes ZZ = 0 and an ACC interrupt.
Conclusion While the above-described circuit is shown to operate în conjunction with a particular microprocessor, it is to be understood that the concepts taught herein may be applied to any microprocessor or processor without departing from the spirit and scope of this invention.

Claims (32)

Claims
1. A circuit for use in conjunction with a processor, said processor having a set of pre-established input and output leads and operable for executing instruction sets, and operable in response to an interrupt signal for jumping from the instruction set currently being executed to a different instruction set under control of a vector address provided from an external memory, said circuit comprising means for establishing at least first and second modes of operation, means for dividing said external memory into blocks, means for controlling said memory such that at least one, but not all, of said memory blocks are accessible by instructions executed by said processor while in said first mode, said establishing means includes means for switching from said first mode to said second mode under control of an interrupt, and means for switching from said second mode to said first mode by decoding output bits from said processor.
2. The invention set forth in claim 1 wherein said decoded output bits are on address output leads of said processor.
3. The invention set forth in claim 1 wherein said interrupt causes said processor to jump to a pre-established address in memory.
4. The invention set forth in claim 2 wherein said pre-established address is obtained from a particular location within said external memory.
5. The invention set forth in claim 1 wherein said processor operates to send data to memory addresses controlled by a register internal to said processor, and means for delaying the establishment of said second mode until data in said processor at the time of said interrupt has been processed.
6. The invention set forth in claim 1 wherein said processor is further arranged to respond to certain signals to disable said interrupt operation, and wherein said circuit further comprises means for inhibiting said disabling of said interrupts when said processor is executing instructions in said first mode while still allowing said interrupts to be disabled when said processor is operating in said second mode.
7. The invention set forth in claim 5 wherein said inhibiting means includes a flag register having at least one bit set either for said first or second modes, and means for comparing, on each instruction execution, bits on certain output leads of said processor against said at least one bit of said flag register.
8. The invention set forth in claim 7 further comprising means operable when said certain of said processor output bits match said at least one flag register bit for providing an interrupt to said processor.
9. The invention set forth in claim 1 wherein said processor is arranged, in response to certain signals, to halt the execution of instructions, and means for automatically restarting said processor after a halt signal.
10. The invention set forth in claim 9 wherein said restarting means includes a flag register having at least one bit set either for said first or second modes, and means for comparing, on each instruction execution, bits on certain output leads of said processor against said at least one bit of said flag register.
11. The invention set forth in claim 10 further comprising means operable when said certain of said processor output bits match said at least one flag register bit for providing an interrupt to said processor.
12. The invention set forth in claim 1 wherein said memory is divided into sections, each section assigned to a particular user, and means, including bytes within a memory map, for controlling access to said memory sections.
13. The invention set forth in claim 12 whwerein said memory map bytes are placed in said memory map only when said processor is executing instructions in said second mode.
14. A multi-user processing system comprising a microprocessor operable for executing instructions and for communicating with external memory over a set of output address leads and data leads, means for establishing kernel and user system operation mode, wherein said kernel mode has full system privileges while said user mode has restricted system privileges, and means external to said microprocessor for switching from said user mode to said kernel mode under control of interrupt signals provided to said microprocessor and for switching from said kernel mode to said user mode by decoding information contained on said microprocessor output address leads.
15. The invention set forth in claim 14 further comprising memory management means containing bytes of information to be used for memory access control, and means for directing data to and from said external memory in accordance with an address derived in part from information supplied from said microprocessor output address leads and in part from said memory management means information bytes.
16. The invention set forth in claim 15 wherein said memory management means contains a plurality of memory address ranges and corresponding access permissions thereto all of which access permissions are usable when in said kernel mode while only some of said access permissions are usable when in said user mode.
17. The invention set forth in claim 16 wherein said microprocessor operates to provide an interrupt acknowledge signal upon starting an interrupt sequence in response to receipt of said interrupt signal, and operates to perform operations during said interrupt sequence, and wherein said external mode switching means includes, means responsive to said interrupt acknowledge signal for counting certain of said operations during an interrupt sequence, and means for restricting said access permissions to the set usable in said user mode until a predetermined number of microprocessor operations have been counted.
18. The invention set forth in claim 16 wherein said microprocessor operates to provide an interrupt acknowledge signal upon starting an interrupt sequence in response to receipt of said interrupt signal, and operates to perform operations during said interrupt sequence, and wherein said external mode switching means includes, and means responsive to said interrupt acknowledge signal for restricting said access permissions for processor write operations to the set of permissions usable in said user mode until a number of microprocessor operations have occurred while concurrently allowing other processor operations to have full access to said permissions.
19. The invention set forth in claim 15 wherein said system includes means for accessing all of said memory blocks when said system is in said kernel mode and for limiting said memory access to only certain blocks of said memory when said system is in said user mode.
20. The invention set forth in claim 19 wherein at least one block of said memory is readable while said system is in said user mode and writable only while said system is in said kernel mode.
21. The invention set forth in claim 14 wherein said microprocessor is further arranged to respond to certain signals to disable said interrupt operation, and wherein said circuit further comprises means for inhibiting said disabling of said interrupts when said microprocessor is executing instructions in said user mode while still allowing said interrupts to be disabled when said microprocessor is operating in said kernel mode.
22. The invention set forth in claim 21 wherein said inhibiting means includes a flag register having bits set either for said first or second modes, and means for comparing, on each instruction execution, bits on certain output leads of said microprocessor against bits of said flag register.
23. The invention set forth in claim 22 further comprising means operable when certain of said microprocessor output bits match said flag register bits for providing an interrupt to said microprocessor.
24. The invention set forth in claim 14 wherein said microprocessor is arranged, in response to certain signals, to halt the execution of instructions, and means for restarting a halted microprocessor when a halt signal is received.
25. The invention set forth in claim 24 wherein said restarting means includes a flag register having bits set either for said first or second modes, and means for comparing, on each instruction execution, bits on certain output leads of said microprocessor against bits of said flag register.
26. The invention set forth in claim 25 further comprising means operable when certain of said microprocessor output bits match said flag register bits for providing an interrupt to said microprocessor.
27. The invention set forth in claim 14 wherein said microprocessor operates to provide an interrupt acknowledge signal upon starting an interrupt sequence in response to receipt of said interrupt signal, and operates to perform operations during said interrupt sequence, and wherein said external mode switching means includes, means responsive to said interrupt acknowledge signal for counting certain of said operations during an interrupt sequence, and means for delaying said switching from said user to said kernel modes until a predetermined number of microprocessor operations have been counted.
28. A circuit for use in conjunction with a microprocessor, said microprocessor having a set of pre-established output address leads and a fixed set of other input and output leads, said microprocessor operable to execute programs one instruction at a time, said circuit comprising means controlled by bits on certain of said address leads for establishing first and second modes, a mode register having a first state when said circuit is in said first mode, and a second state when said circuit is in said second mode, means for comparing the state of certain of said other output leads against said mode register state, and means for providing an interrupt signal to said microprocessor when said compared states match and when said mode register is in said first state.
29. The invention set forth in claim 28 wherein the state of said certain microprocessor output leads is an indication of the interrupt mask state of said microprocessor.
30. The invention set forth in claim 28 wherein said mode establishing means includes a memory mode map addressable by said bits on said certain address leads for changing from said second mode to said first mode.
31. The invention set forth in claim 30 wherein said mode establishing means further includes means responsive to interrupt signals for changing from said first to said second states.
32. The invention set forth in claim 28 wherein said circuit further includes means for establishing distinct files within a memory, and means controlled jointly by said mode establishing means and said distinct file establishing means for controlling access to said files.
CA000428811A 1982-06-09 1983-05-25 Memory management arrangement for microprocessor systems Expired CA1182927A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US386,806 1982-06-09
US06/386,806 US4519032A (en) 1982-06-09 1982-06-09 Memory management arrangement for microprocessor systems

Publications (1)

Publication Number Publication Date
CA1182927A true CA1182927A (en) 1985-02-19

Family

ID=23527127

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000428811A Expired CA1182927A (en) 1982-06-09 1983-05-25 Memory management arrangement for microprocessor systems

Country Status (6)

Country Link
US (1) US4519032A (en)
JP (1) JPH0677246B2 (en)
AU (1) AU558400B2 (en)
CA (1) CA1182927A (en)
DE (1) DE3320858A1 (en)
IT (1) IT1167563B (en)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4654790A (en) * 1983-11-28 1987-03-31 Amdahl Corporation Translation of virtual and real addresses to system addresses
US4825358A (en) * 1985-04-10 1989-04-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4779187A (en) * 1985-04-10 1988-10-18 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4797853A (en) * 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
US4761736A (en) * 1986-01-02 1988-08-02 Commodore Business Machines, Inc. Memory management unit for addressing an expanded memory in groups of non-contiguous blocks
US4742447A (en) * 1986-01-16 1988-05-03 International Business Machines Corporation Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US5146575A (en) * 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
US5293597A (en) * 1987-03-09 1994-03-08 At&T Bell Laboratories Concurrent context memory management unit
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5218712A (en) * 1987-07-01 1993-06-08 Digital Equipment Corporation Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption
US4839796A (en) * 1987-07-16 1989-06-13 Icon International, Inc. Static frame digital memory
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
US5218684A (en) * 1987-09-04 1993-06-08 Digital Equipment Corporation Memory configuration system
US5134700A (en) * 1987-09-18 1992-07-28 General Instrument Corporation Microcomputer with internal ram security during external program mode
JP3023425B2 (en) * 1987-10-09 2000-03-21 株式会社日立製作所 Data processing device
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
US5261084A (en) * 1988-05-06 1993-11-09 Nec Corporation Error judgment method
US5063496A (en) * 1988-06-01 1991-11-05 International Business Machines Corporation Signaling attempted transfer to protected entry point bios routine
JP2655615B2 (en) * 1988-12-08 1997-09-24 日本電気株式会社 Information processing device
US5063499A (en) * 1989-01-09 1991-11-05 Connectix, Inc. Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing
JPH0476626A (en) * 1990-07-13 1992-03-11 Toshiba Corp Microcomputer
US5428758A (en) * 1991-05-10 1995-06-27 Unisys Corporation Method and system for remapping memory from one physical configuration to another physical configuration
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
US5537654A (en) * 1993-05-20 1996-07-16 At&T Corp. System for PCMCIA peripheral to execute instructions from shared memory where the system reset signal causes switching between modes of operation by alerting the starting address
US5822786A (en) * 1994-11-14 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for determining if an operand lies within an expand up or expand down segment
US5721877A (en) * 1995-05-31 1998-02-24 Ast Research, Inc. Method and apparatus for limiting access to nonvolatile memory device
US6378023B1 (en) 1996-02-14 2002-04-23 Advanced Micro Devices, Inc. Interrupt descriptor cache for a microprocessor
JP4522548B2 (en) * 2000-03-10 2010-08-11 富士通フロンテック株式会社 Access monitoring device and access monitoring method
US7073173B1 (en) * 2000-12-04 2006-07-04 Microsoft Corporation Code and thread differential addressing via multiplex page maps
JP4182740B2 (en) * 2002-12-06 2008-11-19 沖電気工業株式会社 Microcomputer
US7278062B2 (en) * 2003-01-09 2007-10-02 Freescale Semiconductor, Inc. Method and apparatus for responding to access errors in a data processing system
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
US9058300B2 (en) * 2005-03-30 2015-06-16 Unity Semiconductor Corporation Integrated circuits and methods to control access to multiple layers of memory
US20130082232A1 (en) 2011-09-30 2013-04-04 Unity Semiconductor Corporation Multi Layered Conductive Metal Oxide Structures And Methods For Facilitating Enhanced Performance Characteristics Of Two Terminal Memory Cells
US7934073B2 (en) * 2007-03-14 2011-04-26 Andes Technology Corporation Method for performing jump and translation state change at the same time
US7990762B2 (en) * 2008-02-06 2011-08-02 Unity Semiconductor Corporation Integrated circuits to control access to multiple layers of memory
US9477834B2 (en) * 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US10210349B2 (en) 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9213828B2 (en) 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
CN107463856B (en) * 2017-08-01 2020-06-16 杭州中天微系统有限公司 Anti-attack data processor based on trusted kernel

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
US3893084A (en) * 1973-05-01 1975-07-01 Digital Equipment Corp Memory access control system
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
FR2258112A5 (en) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US3916385A (en) * 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware
JPS51141537A (en) * 1975-05-31 1976-12-06 Toshiba Corp Memory access control device
US4035779A (en) * 1976-04-30 1977-07-12 International Business Machines Corporation Supervisor address key control system
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
JPS54107234A (en) * 1978-02-10 1979-08-22 Nec Corp Information processing unit
DE2842548A1 (en) * 1978-09-29 1980-04-10 Siemens Ag PROGRAMMABLE MEMORY PROTECTION LOGIC FOR MICROPROCESSOR SYSTEMS
DE2846054C2 (en) * 1978-10-23 1985-08-14 Siemens AG, 1000 Berlin und 8000 München Circuit arrangement for expanding the addressing volume of a central unit, in particular a microprocessor
US4328542A (en) * 1979-11-07 1982-05-04 The Boeing Company Secure implementation of transition machine computer
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism

Also Published As

Publication number Publication date
US4519032A (en) 1985-05-21
AU1547983A (en) 1983-12-15
AU558400B2 (en) 1987-01-29
JPS5963100A (en) 1984-04-10
IT8321519A0 (en) 1983-06-08
IT1167563B (en) 1987-05-13
DE3320858A1 (en) 1983-12-15
JPH0677246B2 (en) 1994-09-28

Similar Documents

Publication Publication Date Title
CA1182927A (en) Memory management arrangement for microprocessor systems
US4747040A (en) Dual operating system computer
US4547849A (en) Interface between a microprocessor and a coprocessor
US5729760A (en) System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US4959860A (en) Power-on password functions for computer system
EP0157075B1 (en) Modular data processing system
US4942606A (en) Computer with improved keyboard password functions
US5684948A (en) Memory management circuit which provides simulated privilege levels
US5953516A (en) Method and apparatus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5437042A (en) Arrangement of DMA, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system
US20030101440A1 (en) Multiple virtual machine environment management system
US4783731A (en) Multicomputer system having dual common memories
RU2137182C1 (en) Execution of data processing instruction
US11675526B2 (en) Memory-access control
JP3343998B2 (en) Control device
JPH02252008A (en) Integrated circuit timer with multiple channel and dedicated service processor
JPH02250110A (en) Dedicated service processor with interchannel communication function
CA1153079A (en) Data processing system having multiple common buses
US4744048A (en) Display context switching arrangement
US4628445A (en) Apparatus and method for synchronization of peripheral devices via bus cycle alteration in a microprocessor implemented data processing system
AU616604B2 (en) Dual bus microcomputer system with programmable control of lock function
EP0575171B1 (en) Enhanced system management method and apparatus
CA1120123A (en) Automatic data steering and data formatting mechanism
US5586336A (en) Microcomputer capable of monitoring internal resources from external
EP1066567B1 (en) Method and apparatus for secure address re-mapping

Legal Events

Date Code Title Description
MKEC Expiry (correction)
MKEX Expiry