• About Jakob Engblom and this blog
Observations from Uppsala Computer Simulation, Virtual Platforms, Embedded Programming, Multicore and More (by Jakob Engblom)

“Eagle” Cycle-Accurate Simulator Anno 1979

2012 July 21 20:40 / 1 Comment / Jakob

I recently read the classic book The Soul of a New Machine by Tracy Kidder. Even though it describes the project to build a machine that was launched more than 30 years ago, the story is still fresh and familiar. Corporate intrigue, managing difficult people, clever engineering, high pressure, all familiar ingredients in computing today just as it was back then. With my interesting in computer history and simulation, I was delighted to actually find a simulator in the story too! It was a cycle-accurate simulator of the design, programmed in 1979.

First, the background. The book describes the project that designed Data General’s first commercial 32-bit “supermini” computer, the Eclipse MV/8000. It was almost a skunk-works project, and was initially considered as “insurance” against the failure to develop the “serious” 32-bit machine called the Fountainhead Project (which did fail in the sense that it was late to market and therefore never commercialized). The project code name was “Eagle”, and the eventual product was called the Data General Eclipse MV/8000.

The architecture was microcoded, which meant that a significant chunk of firmware had to be developed in parallel with the finalization of the hardware design. As part of the project, the team used two wire-wrapped prototype machines, which turned into a serious bottleneck for testing the microcode. This was foreseen, and the project did indeed consider using a simulator of the system as a way to get more (virtual) development machines. However, the optimistic time plan for the overall project indicated that the simulator would not be ready until after the machine was complete (page 162 in the paperback edition):

This time, Alsing insisted. They could not build Eagle in anything like a year if they had to debug all the microcode on prototypes. [...] Alsing wanted a program that would behave as a perfected Eagle, so that they could debug their microcode separately from the hardware.

West [overall manager for the project] said: “Go ahead. But I betchya it’ll all be over by the time you get it done.”

Simulators were not new at this time, according to the people interviewed in the book they had been used at least since the late 1960′s. The seasoned engineer and group manager Alsing thought it would take about 18 months to build a full simulator for Eagle… but he had a bright new programmer (Neal Firth) that thought he could do it in two months (the clear advantage of a lack of experience).

He didn’t know what he could not do. “I think after our little talk, Neal had the picture in his mind that he knew all about simulators now. It was no problem. He could do it over the weekend.”

Alsing also put an experienced programmer, Peck, on the job in parallel. He finished a “quick and dirty” simulator in six weeks. While Firth got his out in about four months – but that simulator had many more helpful features. It took another few months to really finish it up, but in six months they had a fully functional and very helpful simulator in place. That is one third of the estimate of the experienced manager, which kind of worries me. Do we always get that pessimistic as we gain experience? Is there a way to harness raw enthusiasm in this way that works even in an established organization? Interesting questions.

In any case, the result of this was impressive. The book reads like the familiar sales pitch for contemporary virtual platforms today (page 165 in the paperback edition):

As it was in fact, the Microteam [the team doing the microcode firmware] could test their code right at their desks, via their own terminals. [...] They merely had to feed Trixie [the team's existing 16-bit work computer] the microcode they wanted to test, order up the simulator, and command it to run their code.

The simulator was also a great debug tool, in particular thanks to its ability to do record-replay debugging:

They could order the simulator to stop working at any point in a microprogram. The simulator could not tell the microcoders all by itself what was wrong with their code, but it arranged for the storage of all the necessary information about what had taken place while the code was running, and would play it all back upon demand. Thus, without having to invent ingenious approaches with logic analyzers, the team could examine each little step in their microprograms. They could find out what was going wrong in an instant, in many cases. In the Microteam’s small corner of the world, Firth’s [simulator program] was an heroic act.

The simulator was  a pretty complex piece of software, since it had to accurately simulate all the simultaneous activity inside multiple Eagle circuit boards. There were all kinds of intricate interdependencies, all taking place within a single clock cycle. It really was a model of the electronics down to very small details, not just of some abstracted design. It was truly behavior-accurate, and it had to change as the hardware design was debugged and refined (which for the hardware designers meant changing the contents and wiring of the wire wrap boards).

The simulator is quoted as running about 100000 (100 thousand) times slower than the real thing, which I found interesting as that is very similar to the slow-down that we see today for cycle-accurate simulators of current computers. Interesting to see the same relationship hold 30 years ago.

If we look at the book itself, it is a sometimes a riveting read. There is excitement and a deep story told by Kidder, despite the fact that it is all based on real events, real people, and a real machine. I also think you can read it as a management book – there are many discussions about technologists and how to lead them, and some revelations about the need to not tell the “troops” too much of what is going on…

Recommended, not just for the few pages spent on the simulator.

Tweet
Posted in: computer architecture, computer simulation technology, history of computing, virtual platforms / Tagged: 32-bit, cycle accuracy, Data General, Eclipse MV/8000, Soul of a new Machine, Tracy Kidder

One Thought on ““Eagle” Cycle-Accurate Simulator Anno 1979”

  1. Richard Carlsson on 2012 July 22 at 22:39 said:

    Yes, it’s really a great book. Every bit as good as that other classic, “Hackers” by Steven Levy. If you haven’t already, read both.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation

← Previous Post
Next Post →

Recent Posts

  • Military Science Fiction – The Books Blur Together
  • Wind River Blog: Starting & Configuring Simics
  • Wind River Blog:
  • Nudge Theory and Graphical User Interfaces
  • Wind River Blog: Collaborating with Recording Checkpoints
  • Wind River Blog: Simics 4.8 is Here
  • A Few Electrons too Many
  • Wind River Blog: Visuality NQ CIFS Server on Simics
  • Everything in the Cloud?
  • Wind River Blog: TCF and Simics
  • Off-Topic: Moving Bad Piggies Save Games
  • Two Cores, Four Cores, Eight Cores – Mobile Variety
  • Bliss: Failing to Pivot for Ideology
  • Wind River Blog and Movie: Demo of Simics Debugging
  • Simulation vs Reality in Schlock Mercenary

Categories

  • appearances (30)
  • articles (21)
  • blogging (10)
  • books (7)
  • business issues (31)
  • computer architecture (35)
  • conferences (34)
  • EDA (50)
    • ESL (35)
  • embedded (78)
    • embedded software (57)
    • embedded systeme (50)
  • general research (6)
  • history (32)
    • general history (7)
    • history of computing (26)
  • off-topic (94)
    • biking (5)
    • board games (1)
    • computer games (3)
    • desktop software (35)
    • food and drink (1)
    • funny (12)
    • gadgets (24)
    • Politics (3)
    • popular culture (5)
    • trains (5)
    • transportation (10)
    • travel (10)
    • websites (3)
  • parallel computing (92)
    • multicore computer architecture (51)
    • multicore debug (22)
    • multicore software (65)
  • programming (109)
  • review (8)
  • security (19)
  • teaching (7)
  • testing (9)
  • uncategorized (12)
  • virtual things (131)
    • computer simulation technology (68)
    • virtual machines (18)
    • virtual platforms (99)
    • virtualization (14)
  • Wind River Blog (43)

Tags

ARM blog commentary Cadence Checkpointing clock-cycle models Communications of the ACM computer architecture conference cycle accuracy debugging Domain-specific languages eclipse embedded freescale G900 heterogeneous homogeneous IBM Intel iPod lego linux mobile phones multicore off-topic office 2007 operating systems p4080 podcast commentary power architecture rant research reverse debugging reverse execution S4D SiCS Multicore days Simics simulation software tools Sun SystemC video virtualization Vista Windows

1

  • F-Secure Blog

Blogs and news

  • Andras Vajda's blog (on multicore)
  • Embedded in Academia (John Regehr)
  • Grant Martin
  • Jack Ganssle
  • My Wind River Blog
  • Security Now podcast
  • Secworks (Joachim Strömbergson)
  • Simon Kågström
  • Synopsys View from the Top
  • Worse Than Failure

Archives

  • June 2013 (3)
  • May 2013 (4)
  • April 2013 (1)
  • March 2013 (4)
  • February 2013 (1)
  • January 2013 (3)
  • December 2012 (2)
  • November 2012 (2)
  • October 2012 (1)
  • September 2012 (6)
  • August 2012 (4)
  • July 2012 (4)
  • June 2012 (3)
  • May 2012 (4)
  • April 2012 (2)
  • March 2012 (3)
  • February 2012 (1)
  • January 2012 (6)
  • December 2011 (2)
  • November 2011 (3)
  • October 2011 (4)
  • September 2011 (5)
  • August 2011 (4)
  • July 2011 (3)
  • June 2011 (4)
  • May 2011 (7)
  • April 2011 (1)
  • March 2011 (3)
  • February 2011 (5)
  • January 2011 (1)
  • December 2010 (4)
  • November 2010 (3)
  • October 2010 (5)
  • September 2010 (5)
  • August 2010 (5)
  • July 2010 (6)
  • June 2010 (5)
  • May 2010 (3)
  • April 2010 (4)
  • March 2010 (3)
  • February 2010 (4)
  • January 2010 (7)
  • December 2009 (6)
  • November 2009 (6)
  • October 2009 (7)
  • September 2009 (6)
  • August 2009 (7)
  • July 2009 (11)
  • June 2009 (5)
  • May 2009 (10)
  • April 2009 (7)
  • March 2009 (8)
  • February 2009 (9)
  • January 2009 (12)
  • December 2008 (8)
  • November 2008 (9)
  • October 2008 (9)
  • September 2008 (10)
  • August 2008 (13)
  • July 2008 (12)
  • June 2008 (8)
  • May 2008 (9)
  • April 2008 (10)
  • March 2008 (7)
  • February 2008 (8)
  • January 2008 (5)
  • December 2007 (5)
  • November 2007 (7)
  • October 2007 (7)
  • September 2007 (12)
  • August 2007 (9)
  • July 2007 (2)
© Copyright 2013 - Observations from Uppsala
Infinity Theme by DesignCoral / WordPress