[ih] IMP simulation

dave.walden.family at gmail.com dave.walden.family at gmail.com
Fri Sep 18 04:25:24 PDT 2015


Bob Armstrong was running the IMP simulation on a Linux machine, I think.  I ran it on my Win 7 PC.
Jack mentions tricks for performance.  There was also complexity (tricks) in the 316 IMP software to reconfigure itself to the particular mix of line speeds and host/modem combinations of the hardware it was running on.  The assembly language software listings are on the net; see the paper I referenced yesterday for the URLs, as is quite a lot of documentation.  Jack mentioned typing the assembly language source code from a listing scan; that listing also had the octal object code which is what Bob used for his simulation, at leasr originally.  To confirm that, the original source code scan was also OCRed and assembled to produce the same octal object code.  If you haven't read the second part of that paper (the resurrection part), I encourage you to do so.  It's a pretty interesting example of "retro computing," albeit not really so relevant to the milestones question at hand.

Sent from my iPad

On Sep 17, 2015, at 10:22 PM, Jack Haverty <jack at 3kitty.org> wrote:

> Just to clarify...  The simulation (simh) simulates the Honeywell 316
> computer and the hardware add-ons designed by BBN which were needed to
> use that computer as an IMP.  The software that runs on that simulation
> today is the actual software from the early 70s, obtained by tediously
> typing in the assembly language source code using an early-70s paper
> listing as the source.   So it's simulated IMP/Honeywell hardware
> (running on whatever hardware you use to run simh), running actual
> historical IMP software.
> 
> If it's of historical interest to anyone, as part of some recent (2013)
> consulting work on a patent issue, I did a very detailed analysis of
> some parts of that IMP software/hardware, detailing
> instruction-by-instruction how it operated to perform certain functions,
> such as the "reload from neighbor".
> 
> That 1970s IMP was quite an impressive piece of code, using every trick
> you could imagine to wring the necessary performance out of limited
> hardware.  Not easy to figure out how it did what it did, even though I
> knew what it did!
> 
> There are *lots* of timing relationships in that code, which is largely
> what we would call "interrupt handlers".  It includes implicit
> assumptions about how long it would take for certain things to happen,
> so that the software was ready when the hardware finished some task and
> vice versa.  So simply speeding things up to see how it behaved with
> higher speeds of lines, processors, I/O operations, etc. won't be trivial.
> 
> That analysis I did is contained in an "expert report" that was
> submitted to the Court as part of litigation.   I *think* that means it
> is accessible to the public -- if you know how to go about getting such
> things (I don't).
> 
> I actually don't have a copy of that report myself, since the lawyers
> submitted the final fully formatted product electronically to the court.
> 
> But if any historical researcher knows how to retrieve court documents
> and is interested, here's the reference:
> 
> Expert Report of John Haverty
> in the matter of
> Pegasus Development Corporation and Personalized Media Communications,
> LLC
> v.
> DIRECTV, LLC, Hughes Electronics Corporation, Technicolor USA, Inc., and
> Philips Electronics North America Corporation
> UNITED STATES DISTRICT COURT
> FOR THE DISTRICT OF DELAWARE
> Civil Action No. 00-1020 (GMS)
> Report Date: June 20, 2013
> 
> There's a lot of other stuff in there, but a good chunk of the report
> involves the IMP and how it operated, as defined by that old printer
> listing.   I only analyzed several small parts of the IMP code, which
> took many hours.   But with the listing and other historical
> documentation anyone could figure out how other parts of the code
> functioned too.  Well, maybe not any one, .... but it might make an
> interesting task for a final exam in some computer curriculum.
> 
> Enjoy,
> /Jack
> 
> PS - I'll get back to the specific topic of TCP/IP in another message...
> 
> 
> On 09/17/2015 03:35 PM, Bradley Fidler wrote:
>> Are there other historical questions that might be answered using the
>> IMP Guys' article (http://walden-family.com/bbn/imp-code.pdf) and method
>> as a starting-point?  Maybe with an expanded version of the IMP program
>> simulation, if someone were interested?
>> 
>> For example, if we knew less about the IMP software -- if what Dave
>> wrote below wasn't widely known -- then the simulation might have been a
>> great way to test the impact of line speeds and thus how different ideas
>> contributed to the initial design.
>> 
>> As another example, consider the impact of congestion on the routing
>> algorithm.  The improvements to the algorithm over time are documented
>> in BBN reports, and in part through this documentation we also know that
>> some of these problems were discovered as a consequence of increasing
>> traffic and (if I recall correctly) node count.  It would be great to be
>> able to model the response of given versions of the routing algorithm to
>> increased traffic and network size.  It would require a lot of
>> assumptions, to be sure, but there is a bit published on the
>> distribution of hop counts, packet size, etc. of which someone could
>> make use.  More speculatively, I also wonder if there's enough
>> complaining about congestion on extant listserv archives from the 1980s
>> to combine it with network maps in order to generate some findings on
>> how much traffic might have been common at the time -- and then some
>> even more speculative (but better than nothing!) findings on user counts
>> based on estimates of traffic per user.  Perhaps we already have good
>> congestion figures in the NIC archive at CHM, though, or somewhere
>> else...  In any case, this is just one off-the-cuff example.  Can anyone
>> think of others?
>> 
>> This isn't to fetishize the ARPANET, but to point out one possible way
>> to learn more about the interplay of these or other factors in the
>> histories of networking.  One advantage of modeling ARPANET things is
>> that the findings could apply in part to the many networks that were
>> largely ARPANET clones.
>> 
>> Brad
>> 
>> 
>> 
>> On 17 September 2015 at 14:23, <dave.walden.family at gmail.com
>> <mailto:dave.walden.family at gmail.com>> wrote:
>> 
>>    As Bob Armstrong knows, the IMP code (from 1973 or there abouts)
>>    that Bob simulated was highly tuned for the actual line speeds of
>>    the net.  Maybe the code knew about something less than 56KBS (I'd
>>    have to study the listing).  Also the IMP knew of a maximum of 5
>>    inter-IMP modem interfaces, and I don't think it ever used more than
>>    4 and I think option for the 5th doesn't work (at least in the
>>    simulated version, and likely in the real code).  Thus simulating
>>    lots of low speed lines might require modifying the IMP assembly code.
>> 
>>    Sent from my iPad
>> 
>>    On Sep 17, 2015, at 4:14 PM, Jacob Goense <dugo at xs4all.nl
>>    <mailto:dugo at xs4all.nl>> wrote:
>> 
>>> On 2015-09-17 19:11, jnc at mercury.lcs.mit.edu
>>    <mailto:jnc at mercury.lcs.mit.edu> wrote:
>>>> I suspect the only way to say with any certainty how well a network
>>>> built out
>>>> of lots of slow lines, as opposed to a few fast ones, would have
>>    worked
>>>> is a
>>>> comprehensive simulation. Which is not likely to happen, of
>>    course! ;-)
>>> 
>>> Well, there is an ARPAnet IMP in simh now. According to Bob
>>    Armstrong..
>>> 
>>> "The hooks are in there to allow simh to support the IMP side of the
>>> 1822 host interface, and the next step would be to recover the OS for
>>> an ARPAnet era host and then extend the corresponding simulator to
>>    talk
>>> to the IMP simulation."
>>> 
>>> 
>>> 
>>> _______
>>> internet-history mailing list
>>> internet-history at postel.org <mailto:internet-history at postel.org>
>>> http://mailman.postel.org/mailman/listinfo/internet-history
>>> Contact list-owner at postel.org <mailto:list-owner at postel.org> for
>>    assistance.
>> 
>>    _______
>>    internet-history mailing list
>>    internet-history at postel.org <mailto:internet-history at postel.org>
>>    http://mailman.postel.org/mailman/listinfo/internet-history
>>    Contact list-owner at postel.org <mailto:list-owner at postel.org> for
>>    assistance.
>> 
>> 
>> 
>> 
>> _______
>> internet-history mailing list
>> internet-history at postel.org
>> http://mailman.postel.org/mailman/listinfo/internet-history
>> Contact list-owner at postel.org for assistance.
>> 
> _______
> internet-history mailing list
> internet-history at postel.org
> http://mailman.postel.org/mailman/listinfo/internet-history
> Contact list-owner at postel.org for assistance.




More information about the Internet-history mailing list