Reversing out of Reverse

The Intel Simics simulator version 7 removed a long-standing feature from the simulator framework. Reverse execution is no longer available. In its place, in-memory snapshots were introduced, which arguably offer most of the benefits at a lower implementation cost. What happened? I’ve been asked about the reasoning behind the chance on several occasions since I left Intel. I’d like to share my perspective on the decision, as it highlights the challenges of turning an idea into a robust, shippable feature.

Continue reading “Reversing out of Reverse”

The Quarterly Product and Feature Update

I think of myself to be a technical person. I like computers, simulators, code, things like that. And obviously interacting with people and helping them solve their technical problems using technology I know. However, it seems that one of the most impactful contributions made during my time at Intel was to start a meeting series. Maybe you can call it a process innovation.

Continue reading “The Quarterly Product and Feature Update”

Time to Do Something New

The time has come to do something new. I am leaving Intel (and the Intel Simics team) at the end of September (2024). After more than twenty years with the team and the product this is a big step into the unknown. But when Intel offered a “retirement” package as part of its current round of cost reduction measures, I felt that it was a golden opportunity to find something new to do.

Continue reading “Time to Do Something New”

Intel Blog: Parallelizing a Virtual Platform Model

There are many ways to use threading and parallelization to improve the performance of virtual platforms. It is not always easy to successfully use parallelization – it very much depends on the nature of the workloads and model setup – but when it works it can really help. I recently published a long blog post at Intel, detailing an idealized example of threading for a device model that is shipping in the Simics training package.

Continue reading “Intel Blog: Parallelizing a Virtual Platform Model”

Embedded Conference Scandinavia 2024

The Embedded Conference Scandinavia took place at Kistamässan in Kista, Sweden, on April 10 and 11 2024. This was a reboot of a show that used to run as a small tradeshow/exhibition plus technical talks until the pandemic hit. There was no Embedded Show anymore, just the Embedded Conference and its speaker program. The ECS was instead co-located with Elektronikmässan, the long-running and apparently thriving gathering for “electronics” companies in Sweden.  

Continue reading “Embedded Conference Scandinavia 2024”

Intel Blog: How to Boot Linux on Virtual Platform

Booting a software stack on a virtual platform is a necessary part of most software flows. It might seem simple, but in practice there are many different ways that it can happen.

In a recent Intel Blog post, I go through five ways to boot Linux on virtual platforms. Including the cases of doing it just like the hardware, but also how to “cheat” and directly boot from a kernel without first wrapping it in a disk image or similar.

DVCon Europe 2023 – 10th Anniversary Edition

The 2023 DVCon (Design and Verification) Europe conference took place on November 14 and 15, in the traditional location of the Holiday Inn Munich City Center. This was the 10th time the conference took place, serving as an excuse for a great anniversary dinner. Also new was the addition of a research track to provide academics publishing at the conference with the academic credit their work deserves. This year had a large number of papers related to virtual platforms, so writing this report has taken me longer than usual. There was just so much to cover.

Continue reading “DVCon Europe 2023 – 10th Anniversary Edition”

Intel Blog: How Simics Executes Instructions

I recently added a blog post to the Intel Software blog about how the Intel Simics Simulator executes target-software instructions. The blog post appeared just before DVCon Europe (last week) and I did not have time to put a reflector here earlier.

Continue reading “Intel Blog: How Simics Executes Instructions”

Intel Blog: Demonstrating Simics Threading using RISC-V Simple

In my third post based on the Simics RISC-V simple virtual platform, I use the it to demonstrate how the Intel Simics simulator uses multiple host threads to simulate multiple target cores. The RISC-V platform is nice in that it has less noise than more complex platforms, allowing for clear and simple measurements.

That’s Odd: How iCue and Windows 11 Ruin Simics Performance

While working on some screenshots for an upcoming blog, I noticed something that something was off with the performance of Simics on my Windows 11 laptop. The CPU load did not quite go as high as I am used to – typically, compute-intense run should get close to 100% processor load using a single host thread to execute the simulation. Instead, I got to no more than about 50%, which was decidedly odd. I also had a screenshot from a few days earlier that showed some 90% CPU load. Turns out the culprit was a combination of factors, including the Windows 11 scheduler and the Corsair iCUE software pack.

Continue reading “That’s Odd: How iCue and Windows 11 Ruin Simics Performance”

Intel Blog: Playing with Instruction Sets in the Public Simics RISC-V Platform

As noted previously, the Public Release of the Intel Simics Simulator has added a simple RISC-V virtual platform.

In my second blog post about the platform, I reconfigure the instruction set, crash Linux, debug the issue, and reconfigure the software to match the hardware.

Intel Blog: Public Simics RISC-V Simple Virtual Platform

The 2023-19 version of the Public Release of the Intel Simics Simulator added a simple RISC-V virtual platform. This is the second architecture supported by the public release, after x86.

I will be producing a series of blog posts to show a bit of what the you can do with this virtual platform. The first Intel blog post talks about system-level simulation use cases, in particular networking and simulating x86 and RISC-V systems together.

Elektroniktidningen Magazine Article about DML

The November 2022 on-paper magazine from Swedish electronics news site Elektroniktidningen features an article I wrote about the Device Modeling Language (DML). Among many other really good articles.

Update: The article is now available online in HTML format.

Cover of Elektroniktidningen 11/2022
Continue reading “Elektroniktidningen Magazine Article about DML”

Intel Blog: Open-Sourcing the Device Modeling Language

The Device Modeling Language (DML) that we have used with Simics since 2005 is now available in open source! Some more details and examples of what DML looks like can be found in an Intel blog post.

Intel Blog: Catching a Tricky Bug by Running Simics on Simics

I recently published a long post on the Intel Community Blog, talking about how my colleague Evgeny solved a nicely complicated bug using Simics-on-Simics. The bug involved UEFI, an operating system, SMM, SMI, and virtualization. Just another day in the office (or more like a year, given how long it took to get this one resolved).