🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.arch
Article #2928

Re: Delayed Loads

#2928
From: Jan Steinman
Date: Wed, 24 Sep 1986 18:36
35 lines
2649 bytes
In article <697@mips.UUCP> mash@mips.UUCP (John Mashey) writes:
>In article <1115@masscomp.UUCP> hank@masscomp.UUCP (Hank Cohen) writes:
>>In article <5100133@ccvaxa> aglew@ccvaxa.UUCP writes:
>>>
>>>There has been some discussion of delayed branches in this newsgroup;
>>>can anybody say anything useful about delayed load/stores? Ie. memory
>>>access functions that are defined to work the same way as delayed
>>>branches, not to take effect until after a few more instructions.
>>
>>An even thornier problem arises if you allow self modifying code to be run
>>on your machine. i.e. You build a real Von Neuman machine.  The problem of
>>detecting stores into the instruction stream of  a pipelined processor is
>>even more difficult than detecting data interdependencies.
>
>A pleasant thing about doing an architecture from scratch is the ability to
>forbid the use of stores into the instruction stream.

For an example of something useful to do with self-modifying code on a
pipelined machine, see September Dr. Dobbs Journal, pp 114.  Motorola
gave the capability to forbid stores in the code area, but few people
use it.  (Is anybody out there using the FC lines to write-protect
code memory?)  If Mota had been on time with an MMU that utilized the
FC lines, they would have been useful, but most designers ignored
them.

I think the best policy is "caveat emptor", let the programmer beware!
Note that an explicit cache flush should be provided on heavily
pipelined/cached machines that allow code writes.  The 68020 has this,
the 680[01]0 does not, but neither waste time *detecting* this
condition, which I agree with wholeheartedly.  The DDJ code cited
depends on the ability to change the opcode of the instruction that
has already been prefetched.
:::::: Artificial   Intelligence   Machines   ---   Smalltalk   Project ::::::
:::::: Jan Steinman		Box 1000, MS 60-405	(w)503/685-2956 ::::::
:::::: tektronix!tekecs!jans	Wilsonville, OR 97070	(h)503/657-7703 ::::::
Technical Details
Message-ID: <7672@tekecs.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!lll-lcc!qantel!hplabs!tektronix!orca!tekecs!jans@stalker.gwd.tek.com (Jan Steinman)
References: <5100133@ccvaxa> <1115@masscomp.UUCP> <697@mips.UUCP>

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!lll-lcc!qantel!hplabs!tektronix!orca!tekecs!jans@stalker.gwd.tek.com (Jan Steinman)
From: jans@stalker.gwd.tek.com (Jan Steinman)
Newsgroups: net.arch
Subject: Re: Delayed Loads
Message-ID: <7672@tekecs.UUCP>
Date: Wed, 24-Sep-86 14:36:20 EDT
Article-I.D.: tekecs.7672
Posted: Wed Sep 24 14:36:20 1986
Date-Received: Fri, 26-Sep-86 18:47:10 EDT
References: <5100133@ccvaxa> <1115@masscomp.UUCP> <697@mips.UUCP>
Sender: news@tekecs.UUCP
Reply-To: jans@stalker.UUCP (Jan Steinman)
Organization: Tektronix, Wilsonville OR
Lines: 35