The ARM's MMU has subpage protection boundaries. That is, the virtual-to-physical mapping is on 4K boundaries, but the access protection is on 1K boundaries.
The MMU was co-designed by the Newton team and ARM Ltd. to support Newton OS, which has a single address space for all tasks, but provides inter-task memory protection based on a fast-switching "domain" register. AFAIK, the ARM MMU still has all these features, at least in some configurations, so look it up if you're interested.
The 1K subpages allowed us to optimize for small physical memory (128K) via some interesting tricks. For example, the same physical page can be mapped to four different virtual pages, each of which has access to only one subpage. This is used to make "effectively 1K" V->P mappings for things like stacks (the minimum stack size is only 1K despite the 4K mapping boundaries).
All that said, the NewtonScript garbage collector has nothing to do with the MMU. It's just your basic world-pausing mark-sweep-compact GC. Nowadays with more memory one would have to be more clever, but the priority then was using every possible byte of the 90K heap. The OS was designed with more clever GCs in mind, we just never got there.
(Thanks for the kind words about NewtonScript, Pete.)
It's not really a dialect of Scheme. It does have some features of Scheme (closures, first-class functions, lexical scoping), but it lacks full continuations (upward only) so true Schemophiles would not consider it worthy.
"HotBits [brought to you by John Walker] is an Internet resource that brings genuine random numbers, generated by a process fundamentally governed by the inherent uncertainty in the quantum mechanical laws of nature, directly to your computer in a variety of forms."
The ARM's MMU has subpage protection boundaries. That is, the virtual-to-physical mapping is on 4K boundaries, but the access protection is on 1K boundaries.
The MMU was co-designed by the Newton team and ARM Ltd. to support Newton OS, which has a single address space for all tasks, but provides inter-task memory protection based on a fast-switching "domain" register. AFAIK, the ARM MMU still has all these features, at least in some configurations, so look it up if you're interested.
The 1K subpages allowed us to optimize for small physical memory (128K) via some interesting tricks. For example, the same physical page can be mapped to four different virtual pages, each of which has access to only one subpage. This is used to make "effectively 1K" V->P mappings for things like stacks (the minimum stack size is only 1K despite the 4K mapping boundaries).
All that said, the NewtonScript garbage collector has nothing to do with the MMU. It's just your basic world-pausing mark-sweep-compact GC. Nowadays with more memory one would have to be more clever, but the priority then was using every possible byte of the 90K heap. The OS was designed with more clever GCs in mind, we just never got there.
(Thanks for the kind words about NewtonScript, Pete.)
It's not really a dialect of Scheme. It does have some features of Scheme (closures, first-class functions, lexical scoping), but it lacks full continuations (upward only) so true Schemophiles would not consider it worthy.
" HotBits [brought to you by John Walker] is an Internet resource that brings genuine random numbers, generated by a process fundamentally governed by the inherent uncertainty in the quantum mechanical laws of nature, directly to your computer in a variety of forms."