9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "Douglas A. Gwyn" <DAGwyn@null.net>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] how people learn things (was architectures)
Date: Mon, 16 Jul 2001 08:54:21 +0000	[thread overview]
Message-ID: <3B4F350B.EDDD098C@null.net> (raw)
In-Reply-To: <20010713182020.C22003@cackle.proxima.alt.za>

Lucio De Re wrote:
> Do you mean to tell me that DEC had a segmented architecture, with
> haphazard default "base" registers, a LOCK instruction to lock the
> bus for the following fetch cycle (whatever for? even the Univac
> 1106 had the more sane test-and-set) and a faulty MOV SS,XX that
> did _not_ lock the bus for the following MOV SP,YY as was the
> intention?

The PDP-11 had a segmented architecture in the sense that there
were 8 8KB "pages" in the (D or I) 16-bit address space, each
mapped by an 18-bit offset (constrained modulo 64 as I recall) by
a register in the Memory Mapping Unit.  Later PDP-11s added a
second level of memory management to implement 22 bits of real
address space.  Addresses in opcodes were (at most) 16 bits.  In
"kernel mode" (the equivalent of a PC's "real mode"), such as
under the RT-11 SJ monitor, a user program could load the mapping
registers directly whenever it wanted (although doing it stupidly
would just cause a crash).  I took advantage of that for the PEAC
system (no relation to PEAK-11) in order to access the VS60's
display list from Fortran programs.  A compiler certainly could
have generated code that did something similar to make use of the
full 18-bit address space within "typical" programs, although to
my knowledge no PDP-11 compiler actually did that.  (On UNIX, there
were a couple of implementations of I-space overlays that mapped
instruction code into the 16-bit space as required; I did the
compiler/linker piece of that for BRL/JHU PDP-11 UNIX, and as I
recall Ron Natalie did the kernel piece.  Berkeley did something
similar at the same time, but my "thunks" were smaller and faster.)

MOV R0,(R0)+ was implemented incorrectly on the PDP-11/20, and
the spec for the ISA had to be changed to reflect that.  Later
models got other things wrong; programs could in fact tell models
apart by their semantics for execution of particular code sequences.

PDP-11s were designed without thought being given to test-and-set.
The first several models of PDP-11 could have interlocking done
via INC and ASRB instructions; why this worked is a long story.

We could go on, but this is getting far afield.  The point is that
it isn't just Intel; every computer architecture and implementation
has defects.  I will say that we took a great step backward when
chip manufacturers took over architectural design.  It seems that
every "generation", people reinvent things without taking into
account lessons learned from the previous cycle.


  parent reply	other threads:[~2001-07-16  8:54 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-13  9:12 okamoto
2001-07-13 10:07 ` Boyd Roberts
2001-07-13 10:49   ` Lucio De Re
2001-07-13 10:59     ` Boyd Roberts
2001-07-13 11:11       ` Lucio De Re
2001-07-13 15:26         ` Douglas A. Gwyn
2001-07-13 16:20           ` Lucio De Re
2001-07-14  0:28             ` Boyd Roberts
2001-07-16  8:54             ` Douglas A. Gwyn [this message]
2001-07-16  9:55               ` Boyd Roberts
  -- strict thread matches above, loose matches on Subject: below --
2001-07-16 18:15 David Gordon Hogan
2001-07-16 16:21 rog
2001-07-16 16:46 ` suspect
2001-07-13 16:32 jmk
2001-07-16  8:55 ` Douglas A. Gwyn
2001-07-16 15:21   ` Rick Hohensee
2001-07-13 16:22 rog
2001-07-14  0:23 ` Boyd Roberts
2001-07-16  8:54 ` Douglas A. Gwyn
2001-07-16 15:46   ` david presotto
2001-07-13 12:49 presotto
2001-07-13 13:38 ` Boyd Roberts
2001-07-13 15:44 ` Douglas A. Gwyn
2001-07-14  0:19   ` Boyd Roberts
2001-08-02 10:27   ` Ralph
2001-08-02 11:24     ` Boyd Roberts
2001-08-03  9:05       ` Ralph Corderoy
2001-08-03 10:15         ` Boyd Roberts
2001-07-13  9:17 okamoto
2001-07-13  8:00 Laura Creighton
2001-07-13  9:48 ` Boyd Roberts
2001-07-13 15:25   ` Douglas A. Gwyn
2001-07-13 15:44     ` Boyd Roberts
2001-07-13 20:47   ` Steve Kilbane
2001-07-14 14:45     ` Boyd Roberts
2001-07-13 15:25 ` Douglas A. Gwyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3B4F350B.EDDD098C@null.net \
    --to=dagwyn@null.net \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).