Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!tut.cis.ohio-state.edu!gem.mps.ohio-state.edu!apple!baum
From: baum@Apple.COM (Allen J. Baum)
Newsgroups: comp.arch
Subject: Re: Instruction (dis)continuation (
Message-ID: <35186@apple.Apple.COM>
Date: 2 Oct 89 17:53:06 GMT
References: <2353@oakhill.UUCP> <261500010@S34.Prime.COM> <34701@apple.Apple.COM> <477@ctycal.UUCP> <2255@munnari.oz.au>
Reply-To: baum@apple.UUCP (Allen Baum)
Organization: Apple Computer, Inc.
Lines: 26

[]
>In article <2255@munnari.oz.au> ok@cs.mu.oz.au (Richard O'Keefe) writes:
>  Imagine a memory-mapped scheme where each
>device has all its registers in a different page of I/O space, and where
>the operating system is running a "virtual machine" scheme.  All I/O
>pages would initially be mapped out of a process's address space.  Touching
>an I/O page would cause a page fault, at which time the O/S would check
>whether the process had permission to access that device, and if so would
>map the page in.  If the O/S needed to seize control of the device back,
>it would map the page out again.
>
>Whether such a scheme is useful or not is another matter.
 This is very similar to the HP "Spectrum" ..er.. Precision's IO scheme.
All I/O devices are mapped onto two pages. Data registers are mapped to one,
and control registers to the other (generally). The idea is that you can
keep control of a device, and still let programs have access to the data.
Really, there is no reason not to let a user have direct access to his/her
own serial port; it can't affect security. You may not want to give them
access to the control registers, especially if they affect more than one
line. Direct access for the common stuff means a LOT lower overhead. You can
get a keystroke with a "Load" instruction in one cycle, instead of a system
call that is likely to cost you a millisecond.

--
		  baum@apple.com		(408)974-3385
{decwrl,hplabs}!amdahl!apple!baum