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

Category Archives: Virtual Platforms

VPs

Wind River Blog: Collaborating with Recording Checkpoints

2013 May 30 09:54 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about how some new features in Simics 4.8 improve the collaboration power of Simics checkpoints. For the first time, Simics checkpoint can now carry a piece of history (slice of time), which also makes reverse execution and reverse debug work with checkpoints in a logical way.

Read More →

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: Checkpointing, reverse debug, reverse execution, Simics, Simics 4.8

Wind River Blog: Simics 4.8 is Here

2013 May 21 19:05 / Leave a Comment / Jakob

Simics 4.8 is finally released, and I put up a blog post explaining the most important news in this release. It is two years since we released Simics 4.6, so there is quite a bit of news in Simics 4.8 – even though lots of functionality has been released continuously into 4.6 over the past twenty four months. My personal favorite are the comments you can put on an execution and the stop log,  but then again, that might be because they have been a couple of pet ideas of mine so I am hardly an impartial judge. Everything else is also really good, and the engineering teams and marketing teams involved have put in a lot of effort into this release (as we do in all releases).

 

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: 4.8, Simics

Wind River Blog: Visuality NQ CIFS Server on Simics

2013 April 23 11:05 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about how I ran a Windows file share server (CIFS) on a Simics-simulated VxWorks big-endian Power Architecture target. Something that just should work, given that the software in question is known to work in the real world. But still, pretty cool, and a bit eerie.

 

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: Simics, Visuality NQ, Windows

Wind River Blog: TCF and Simics

2013 March 26 11:00 / Leave a Comment / Jakob

On my Wind River blog, you can now find a description on how we have used the Eclipse TCF (target connection framework) to build the Simics GUI. Or rather, the connection between the Simics GUI and the Simics simulation process. It is actually quite revolutionary what you can do with the TCF, compared to older debug protocols. In particular, TCF lets you combine many different services across a single connection.

Read More →

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: debugging, reverse debugging, Simics, TCF

Wind River Blog and Movie: Demo of Simics Debugging

2013 January 9 22:40 / 5 Comments / Jakob

Last year, I did a Simics webinar which included a two-part demo of how to use Simics to debug an endianness bug in a networked system as it migrates from big-endian to a little-endian system. Along the way, I also showed off various Simics features like reverse execution and checkpointing and scripted execution.

The demo is now online at the Wind River Youtube channel, and the setup is explained in a blog post at the Wind River company blog which is worth reading before watching the video.

Tweet
Posted in: programming, virtual platforms, Wind River Blog / Tagged: debugging, demo, endianness, networking, reverse debugging, Simics, video

Wind River Blog: Debugging Simics using Simics

2012 December 6 13:04 / 2 Comments / Jakob

There is a new post at my Wind River blog, telling the story of how some of the Simics developers used Simics itself to debug an intermittent Simics program crash caused by a timing-sensitive race condition.

Running Simics on itself is pretty cool, and shows the power of the simulator and its applicability even to really complex software.

Tweet
Posted in: multicore debug, programming, virtual platforms / Tagged: Debug, race condition, reverse debugging, Simics

Dragons can be Useful – when AT Models Make Sense

2012 November 12 15:51 / 4 Comments / Jakob

Carbon Design Systems keeps putting out interesting blog posts at a good pace. Bill Neifert at recently put up a blog post about the various of speed/accuracy tradeoffs you can make when building virtual platforms. The main message of the blog is that you should use a mix of fast models (TLM + JIT, like the ARM Fast Models) and cycle-accurate generated-from-RTL models (like the models generated by Carbon’s tools). By switching between the levels of abstraction when you need to go fast or go deep, you get something that is pretty much the best of both worlds (I already blogged about the change between abstraction before). It makes perfect sense, and I am all with him. There are dragons in the middle land.

However, I do not quite agree with Bill about the absolute uselessness of the intermediate types of models, like SystemC TLM-2.0 AT.  Basically, what is traditionally called “cycle accurate modeling” (while not derived from RTL).

Read More →

Tweet
Posted in: computer simulation technology, virtual platforms / Tagged: Bill Neifert, Carbon, clock-cycle models, cycle accuracy, dragons

Speaking at Embedded Conference Scandinavia

2012 August 29 12:58 / Leave a Comment / Jakob

I am going to be talking about how to transport bugs with virtual platform checkpoints, in the Software Tools track at the Embedded Conference Scandinavia, on October 3, 2012, in Stockholm (Sweden). The ECS is a nice event, and there are several tracks to choose from both on October 2 and October 3. In addition to the tracks, Jan Bosch from Chalmers is going to present a keynote that I am sure will be very entertaining (see my notes from a presentation he did in Göteborg last year).

 

Tweet
Posted in: appearances, embedded software, embedded systeme, programming, virtual platforms / Tagged: bug, bug transportation, debugging, Simics

“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.

Read More →

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

Youtube Movie on Reverse Execution (and a small bit of Reverse Debug)

2012 June 27 21:04 / Leave a Comment / Jakob

We just uploaded a short movie about reverse execution and reverse debugging to Youtube, to the Wind River official channel. In the short time available in this demo, we really only show reverse execution. Reverse debug, as I define it, is not used much at all, as explaining what goes on when you start to put breakpoints into a program and analyze its behavior takes a surprising amount of time.

Read More →

Tweet
Posted in: appearances, embedded software, virtual platforms / Tagged: Blue Mic, reverse debugging, reverse execution, Simics, video

Wind River Blog: Teaching Networking with Simics

2012 May 28 21:19 / 1 Comment / Jakob

On the Wind River corporate blog, I have put up a blog post about how Wind River Education Services is going to use Simics to teach networking. What is interesting with this approach is that it shows how a virtual platform can be used for tasks like teaching that don’t have much to do with hardware modeling or similar “typical” VP uses. In this case, the key value is encapsulation of a set of machines running real operating systems and software stacks, and with lots of networks connecting them.

Tweet
Posted in: teaching, virtual platforms, Wind River Blog / Tagged: networking, Simics

Wind River Blog: Forcing Rare Bugs to Appear using Simics

2012 May 3 10:59 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about how a team of researchers at the University of Nebraska at Lincoln is using Simics to force rare bugs to manifest themselves as errors. They used Simics to control a target system to force it into rare situations much more likely to trigger latent bugs, requiring far fewer test runs compared to just randomly rerunning tests again and again and hoping to see a bug.

Tweet
Posted in: testing, virtual platforms, Wind River Blog / Tagged: Simics, University of Nebraska at Lincoln

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.

Read More →

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

Wind River Blog: Code Coverage over a Back Door

2012 April 22 12:40 / 2 Comments / Jakob

There is a new post at my Wind River blog, about how the LDRA code coverage tools have been brought to work on Simics using a simulation-only “back door “.

The most interesting part of this is how a simulator can provide an easy way to get information out of target software, without all the software and driver overhead associated with doing the same on a real target. In this case, all that is needed is a single memory-mapped location that can written to be software – which can be put into user-mode-accessible locations if necessary.

Read More →

Tweet
Posted in: programming, virtual platforms, Wind River Blog

Wind River Blog: 80186 and 8051

2012 March 19 13:13 / 1 Comment / Jakob

Wind River recently added a couple of new processor models to Simics: the 30-year-old 80186 and the 32-year-old 8051.

I have a blog post about this up on the Wind River tools blog. Pretty amazing to see us model an eight bit machine in 2012 – just proves how long-lived some hardware systems are.

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: 80186, 8051, Simics, x86

Wind River Blog: Crystal Forest on Simics

2012 March 12 12:08 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about Simics running a model of the new Intel Crystal Forest platform. Crystal Forest is a very complex piece of hardware, but I am pretty happy that we managed to demo it in an understandable way – by essentially using it as a black box and putting a pretty display on top of that (using Eclipse).

 

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: Crystal Forest, Intel, Simics

Wind River Blog: Interview with a Networked Simics User

2011 November 16 17:58 / Leave a Comment / Jakob

There is a new post at my Wind River blog, an interview with Dan Poirot at RTI who is using Simics to model and test heterogeneous, distributed, networked systems.

Tweet
Posted in: testing, virtual platforms, Wind River Blog / Tagged: Dan Poirot, RTI, Simics

EETimes Articles on Simics

2011 September 23 21:26 / Leave a Comment / Jakob

I just had two articles published the Embedded Design part of the EETimes.

First, “Rethink your project planning with a virtual platform“, which talks about how virtual platforms can change your entire project planning. Essentially, by reducing project friction and risks related to hardware availability, software integration, and show-stopper bugs, you can make projects work much better.

Then we have “Transporting bugs with virtual checkpoints“, which is a shorter, popular science, version of the paper I published last year at S4D. This describes how you can use checkpointing in a virtual platform to communicate bugs across time, space, and teams.

Tweet
Posted in: articles, programming, virtual platforms / Tagged: EETimes, Simics

Wind River Blog: Stop, Think, and Tie Your Shoes Right

2011 September 21 20:09 / Leave a Comment / Jakob

There is a new post at my Wind River blog, which could seem to be about shoes but which is really about process improvement. In particular, the need for companies to let their employees take a step or two back and look at what they are doing and what they could do better.

It is way too common to be so busy running around being inefficient that there is no time to think about how to become more efficient. Change also requires some discipline to actually keep pushing at habits until they change for the better.

All of this can be illustrated by tying shoes.

Tweet
Posted in: business issues, programming, virtual platforms, Wind River Blog

Wind River Blog: A Virtual Year

2011 August 20 09:25 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about hypersimulation in virtual platforms and how it lets virtual time fly much faster than real time. It was the result of simple mistake of leaving Simics running in the background as I did other work on  my machine.

Tweet
Posted in: computer simulation technology, virtual platforms, Wind River Blog / Tagged: hypersimulation, Simics

Wind River Blog: How to Get Virtual

2011 August 2 14:10 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about how you build virtual platforms with Simics. The post is more about the methodology than the nature of models, cycle accuracy, endianness, and all the other details of virtual platform modeling. I have written about modeling methodology on this blog too, and in particular I would recommend looking at “Two perspectives on modeling“.

Tweet
Posted in: computer simulation technology, programming, virtual platforms, Wind River Blog / Tagged: development methodology, Functional models, Modeling, Simics

Wind River Blog: Simics 4.6 Initial Impressions

2011 May 31 14:35 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about the new Simics 4.6 release. 4.6 has some serious new goodies in it, including an Eclipse source-code debugger and a way to build blinking lights front panels for boards.

Tweet
Posted in: virtual platforms, Wind River Blog / Tagged: eclipse, Simics, Simics 4.6

Disappointing SystemC Debugger Integration Paper

2011 May 25 21:35 / 2 Comments / Jakob

Since I have a certain interest in debugging, I was happy find the article “Guidelines for SystemC – Debugger Integration” at the usually interesting Design and Reuse website. However, I must say that it was pretty disappointing.

Read More →

Tweet
Posted in: computer simulation technology, virtual platforms / Tagged: debugging, SystemC

Wind River Blog: VxWorks 64-bit using Simics

2011 March 25 21:52 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about how Simics was used to kick-start the development of the 64-bit version of VxWorks. It is an interesting example of how to use a virtual platform as a model of something much simpler and gentler than actual hardware systems.

Tweet
Posted in: embedded software, embedded systeme, virtual platforms, Wind River Blog / Tagged: 64-bit, Simics, VxWorks

EETimes: James Aldis on Performance Modeling

2011 March 3 22:13 / Leave a Comment / Jakob

James Aldis of TI has published an article in the EEtimes about how Texas Instruments uses SystemC in the modeling of their OMAP2 platform. SystemC is used for early architecture modeling and performance analysis, but not really for a virtual platform that can actually run software. The article offers a good insight into the virtual platform use of hardware designers, which is significantly different from the virtual platform use of software designers.
Read More →

Tweet
Posted in: computer simulation technology, ESL, virtual platforms / Tagged: hardware design, hardware modeling, James Aldis, OMAP, performance optimization, TI, Virtio

Interrupts and Temporal Decoupling

2011 February 27 23:09 / 2 Comments / Jakob

I am just finishing off reading the chapters of the Processor and System-on-Chip Simulation book (where I was part of contributing a chapter), and just read through the chapter about the Tensilica instruction-set simulator (ISS) solutions written by Grant Martin, Nenad Nedeljkovic and David Heine. They have a slightly different architecture from most other ISS solutions, since that they have an inherently variable target in the configurable and extensible Tensilica cores. However, the more interesting part of the chapter was the discussion on system modeling beyond the core. In particular, how they deal with interrupts to the core in the context of a temporally decoupled simulation.

Read More →

Tweet
Posted in: books, computer simulation technology, ESL, virtual platforms / Tagged: Grant Martin, interrupt, Temporal decoupling, Tensilica, virtual

Evaluating HAVEGE Randomness

2011 February 17 23:33 / 5 Comments / Jakob

I previously blogged about the HAVEGE algorithm that is billed as extracting randomness from microarchitectural variations in modern processors. Since it was supposed to rely on hardware timing variations, I wondered what would happen if I ran it on Simics that does not model the processor pipeline, caches, and branch predictor. Wouldn’t that make the randomness of HAVEGE go away?

Read More →

Tweet
Posted in: computer architecture, computer simulation technology, security, virtual platforms / Tagged: evaluation methodology, HAVEGE, random number generation

Wind River Blog: Being Helpful or Being Correct?

2011 February 11 10:12 / Leave a Comment / Jakob

There is a new post at my Wind River blog, about warnings in virtual platforms. It is an art to add good warnings to virtual platform models, and just being correct visavi the hardware behavior is not necessarily that helpful for a software developer. A virtual platform should warn about suspicious operations, even if they are technically “correct”.

I also have to apologize for the slow blogging in January of 2011. There was too much going on at work and quite a few days taking care of sick kids. Hopefully, the pace can improve going forward.

Tweet
Posted in: embedded software, programming, virtual platforms, Wind River Blog

Simple Machine, Hard to Simulate

2011 January 1 22:29 / 1 Comment / Jakob

In the June 2010 issue of Communications of the ACM, as well as the April 2010 edition of the ACM Queue magazine, George Phillips discusses the development of a simulator for the graphics system of the 1977 Tandy-RadioShack TRS-80 home computer.  It is a very interesting read for all interested in simulation, as well as a good example of just why this kind of old hardware is much harder to simulate than more recent machines.

Read More →

Tweet
Posted in: computer simulation technology, history of computing, virtual platforms / Tagged: Communications of the ACM, George Phillips

Modeling Endianness

2010 December 26 17:58 / Leave a Comment / Jakob

Endianness is a topic in computer architecture that can give anyone a headache trying to understand exactly what is happening and why. In the field of computer simulation, it is a pervasive problem that takes some thinking to solve in an efficient, composable, and portable way.

This blog post describes how I am used to working with endianness in virtual platforms, and why this approach makes sense to me. There are other ways of dealing with endianness, with different trade-offs and overriding goals.

Read More →

Tweet
Posted in: computer architecture, computer simulation technology, programming, virtual platforms / Tagged: big-endian, endianess, hardware modeling, little-endian

Post Navigation

1 2 3 4 Next »

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