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

Carbon “Swap ‘n’ Play” – A New Implementation of an Old Idea

2012 May 1 20:53 / 2 Comments / Jakob

Carbon Design Systems have been quite busy lately with a flurry of blog posts about various aspects of virtual prototype technology. Mostly good stuff, and I tend to agree with their push that a good approach is to mix fast timing-simplified models with RTL-derived cycle-accurate models. There are exceptions to this, in particular exploratoty architecture and design where AT-style models are needed. Recently, they posted about their new Swap ‘n’ Play technology, which is a old proven idea that has now been reimplemented using ARM fast simulators and Carbon-generated ARM processor models.

Swap ‘n’ play is the technology of taking a machine state out of a fast virtual platform, and transferring it to a detailed virtual platform. This enables a user to boot a machine and position a workload using a fast platform, and then get detailed performance results (or other information from a detailed run, such as chasing low-level timing bugs) using the detailed model. This is an old and proven idea, and I think it was in fact the main reason for the first implementation of “virtual platform checkpointing” that I know of, in SimOS in the early 1990s (see Stanford technical report CSL-TR-94-631). It is also something I have seen implemented in Simics for at least a decade, and used by computer architecture researchers.

When I read an ARM IQ article about Carbon’s technology, Bill Neifert introduces the technology in a way that does not acknowledge the long history of the idea:

Carbon Design Systems has recently introduced a best of both worlds approach to virtual platforms. Relying upon a new technology which Carbon calls “Swap ‘n Play”, Carbon’s newest generation of virtual platforms now enable a user to run a platform at 100s of MIPS using ARM Fast Models and then swap over to a 100% accurate, Carbon model implementation of that same platform at any software breakpoint.

It is certainly new to Carbon and the ARM FastSim simulators, but this way of putting it makes it sound like this is all brand new.

Another proven use of abstraction-level swapping is also described in the article: sampled simulation for computer architecture evaluations:

Instead of actually swapping however, the system continues running in the fast functional mode. The checkpoint manager is use to create additional Swap ‘n Play checkpoints at set time increments, say every 0.1 seconds of real-time. At each time increment, the checkpoint is created and execution continues in the Fast Model system. …  Each one of these checkpoints can be executed as a separate, 100% accurate simulation and distributed to a farm of computers.

This somewhat simplifies the problem, as computer architecture experience shows that using regular samples tend to skew results. Tools like Simpoint have been used for a long time to do this sampling in a more sophisticated and effective way. However, as a simplified explanation to introduce the idea to a new audience this makes sense.

While it is certainly interesting to see Carbon implement classic checkpointing and abstraction level transfers, it seems that they have not read or do not acknowledge the many available publications on this from the computer architecture field. EDA is in many ways a world of its own, with surprisingly few bridges to the research done in computer architecture, for example. That technologies are crossing over is good, but it is also good to be aware of the history and legacy of a technology before billing it as “new”. It is good, useful, great to have, certainly, but not original or new.

Update: I did receive some feedback from Carbon about this topic, and they were aware of prior work. It was just hard to fit it into the format of the IQ article, which I can see makes some sense based on my experience with popular editorials. Still, I think it would have made the presentation in the IQ article and their blog a bit deeper to point out that this is an old proven technology with almost two decades of active use behind it.

Tweet
Posted in: computer architecture, computer simulation technology, ESL, virtual platforms / Tagged: Bill Neifert, Carbon Technology, Checkpointing, SimOS, Simpoint

2 Thoughts on “Carbon “Swap ‘n’ Play” – A New Implementation of an Old Idea”

  1. Bill Neifert on 2012 May 3 at 16:50 said:

    Hi Jakob, thanks for drawing attention to our Swap ‘n Play technology. You are correct that the concept of switching abstraction levels during simulation execution is not an entirely novel concept. I could make an argument however, that this method of implementation is indeed new and novel since it relies upon fixed, unmodifiable endpoints (ARM Fast Models at one end and ARM RTL on the other)
    In addition to the space constraints I discussed with you in the email you referenced above, I chose not to include references to prior art in this area since often times references to prior technology compartmentalize the thought process related to the topic being discussed and since the application of this technology (100% accurate debug and analysis) is different than previous applications I wanted to avoid that comparison.
    Finally, I would make the argument that in a non-academic setting there is a fairly broad precedent for labeling something as “New” when it is actually based upon and around prior concepts. After all, Coca-Cola didn’t call their failed reformulation attempt “the same old coke with a sweeter taste Coke” They called it New Coke. Let’s all hope that Swap ‘n Play fares better in the marketplace than New Coke however.

  2. Pingback: Observations from Uppsala » Dragons can be Useful – when AT Models Make Sense

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