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

Category Archives: Multicore Computer Architecture

Two Cores, Four Cores, Eight Cores – Mobile Variety

2013 March 3 22:26 / Leave a Comment / Jakob

Probably thanks to the yearly Mobile World Congress, there have been a slew of recent announcements of mobile application processors recently. Everything is ARM-based, but show quite some variety in the CPU core configurations used. Indeed, I think this variety has something to say on the general state of multicore.

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture, multicore software / Tagged: ARM, bigLITTLE, Cortex-A15, Cortex-A7, Cortex-A9, eQuad, mobile, MP6530, Renesas, ST Ericsson

SiCS Multicore Day 2012

2012 September 16 22:12 / 4 Comments / Jakob

The 2012 edition of the SiCS Multicore Day was fun, like they have always been in the past. I missed it in 2010 and 2011, but could make it back this year. It was interesting to see that the points where keynote speakers disagreed was similar to previous years, albeit with some new twists. There was also a trend in architecture, moving crypto operations into the core processor ISA, that indicates another angle on the hardware accelerator space.

Read More →

Tweet
Posted in: computer architecture, conferences, embedded software, multicore computer architecture, multicore debug, multicore software, parallel computing, programming / Tagged: Erik Hagersten, heterogeneous, homogeneous, James Larus, Rich Hetherington, SiCS Multicore days, Stephen Hill

Nvidia “Kal-El” Variable SMP

2011 September 23 21:16 / 2 Comments / Jakob

Nvidia recently announced that their already-known “Kal-El” quad-core ARM Cortex-A9 SoC actually contains five processor cores, not just four as a “normal” quad-core would. They call the architecture “Variable SMP”, and it is a pretty smart design. The one where you think, “I should have thought of that”, which is the best sign of something truly good.

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture / Tagged: ARM, heterogeneous, Kal-El, Nvidia

Memory Models: x86 is TSO, TSO is Good

2011 June 22 17:16 / 1 Comment / Jakob

By chance, I got to attend a day at the UPMARC Summer School with a very enjoyable talk by Francesco Zappa Nardelli from INRIA. He described his work (along with others) on understanding and modeling multiprocessor memory models. It is a very complex subject, but he managed to explain it very well.

Read More →

Tweet
Posted in: computer simulation technology, conferences, multicore computer architecture, multicore software, parallel computing / Tagged: ARM, Doug Lea, Francesco Zappa Nardelli, memory consistency, power architecture, SPARC, UpMarc, x86

SecurityNow on Randomness

2011 May 25 22:20 / 1 Comment / Jakob

Episodes 299 and 301 of the SecurityNow podcast deal with the problem of how to get randomness out of a computer. As usual, Steve Gibson does a good job of explaining things, but I felt that there was some more that needed to be said about computers and randomness, as well as the related ideas of predictability, observability, repeatability, and determinism. I have worked and wrangled with these concepts for almost 15 years now, from my research into timing prediction for embedded processors to my current work with the repeatable and reversible Simics simulator.

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture, security / Tagged: random number generation, SecurityNow, Steve Gibson

Wind River Blog: True Concurrency is Different

2010 June 18 21:24 / Leave a Comment / Jakob

I have another blog up at Wind River. This one is about multicore bugs that cannot happen on multithreaded systems, and is called True Concurrency is Truly Different (Again). It bounces from a recent interesting Windows security flaw into how Simics works with multicore systems.

Tweet
Posted in: multicore computer architecture, multicore debug, multicore software, security, Wind River Blog / Tagged: Simics

How (Not) To Present Parallel Programming Results

2009 October 5 14:06 / Leave a Comment / Jakob

46daclogoSCDSource ran a short but good article summarizing a few DAC talks that I would liked to attend. it mostly about the experience of long-term parallel programming research David Bailey in presenting results in the field…

Read More →

Tweet
Posted in: conferences, EDA, multicore computer architecture / Tagged: DAC, DAC 2009, parallelized software

Freescale P4080, in Physical Form

2009 September 17 11:16 / Leave a Comment / Jakob

freescale-logo-iconPast Tuesday, I attended the Freescale Design With Freescale (DWF) one-day technology event in Kista, Stockholm. This is a small-scale version of the big Freescale Technology Forum, and featured four tracks of talks running from the morning into the afternoon. All very technical, aimed at designing engineers.

Read More →

Tweet
Posted in: appearances, embedded software, embedded systeme, multicore computer architecture, multicore debug, virtual platforms / Tagged: DWF, freescale, heterogeneous, homogeneous, Jonas Svennebring, MPC5606, p4080, Simics

GPGPU – a new type of DSP?

2009 September 11 15:35 / 6 Comments / Jakob

My post on SiCS multicore, as well as the SiCS multicore day itself, put a renewed spotlight on the GPGPU phenomenon. I have been following this at a distance, since it does not feel very applicable to neither my job of running Simics, nor do I see such processors appear in any customer applications. Still, I think it is worth thinking about what a GPGPU really is, at a high level.

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture / Tagged: DSP, GPGPU

SiCS Multicore Day 2009

2009 September 7 20:26 / 8 Comments / Jakob

Last Friday, I attended this year’s edition of the SiCS Multicore Day. It was smaller in scale than last year, being only a single day rather than two days. The program was very high quality nevertheless, with keynote talks from Hazim Shafi of Microsoft, Richard Kaufmann of HP, and Anders Landin of Sun. Additionally, there was a mid-day three-track session with research and industry talks from the Swedish multicore community. Read More →

Tweet
Posted in: appearances, conferences, multicore computer architecture, multicore debug, multicore software, virtual machines / Tagged: Anders Landin, CPP, Ericsson, Erlang, Hazim Shafi, heterogeneous, homogeneous, MCC, Richard Kaufmann, SiCS Multicore days, Simics, Visual Studio 2010

Downloadable Book about Embedded Multicore

2009 August 8 20:27 / Leave a Comment / Jakob

freescale-logo-iconFreescale has now released the collected, updated, and restyled book version of the article series on embedded multicore that I wrote last year together with Patrik Strömblad of Enea, and Jonas Svennebring, and John Logan of Freescale. The book covers the basics of multicore software and hardware, as well as operating systems issues and virtual platforms. Obviously, the virtual platform part was my contribution.

Read More →

Tweet
Posted in: books, embedded software, embedded systeme, multicore computer architecture, multicore debug, multicore software, virtual platforms / Tagged: freescale, John Logan, Jonas Svennebring, Patrik Strömblad

Coding Horror on Big Iron Hardware

2009 July 15 20:41 / Leave a Comment / Jakob

opinionIn a post from late June, Jeff Atwood at Coding Horror discusses the horrible cost of a large HP server (scaling up to 32 processor cores in eight AMD x86 sockets), compared to a bunch of simple single-socket basic servers. There are some interesting notes on relative costs of small-and-simple servers, including things like administration and power. There is an undercurrent to the post and the comments that the big HP machine is “overpriced”. I don’t think it is. If you have ever had Erik Hagersten as a teacher in computer architecture, you will know why.

Read More →

Tweet
Posted in: multicore computer architecture / Tagged: AMD, CodingHorror, HP, Jeff Atwood, server

Cavium Octeon II: Short Notes

2009 June 13 20:40 / Leave a Comment / Jakob

octeon-iiAbout two months ago, Cavium Networks launched their second generation of Octeon chips, the Octeon II. The most obvious difference to the previous generation (Octeon, Octeon Plus) is a new MIPS64 core with much better support for hypervisors and virtualization. There are some other interesting aspects to this chip, though.

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture / Tagged: Cavium, heterogeneous, Octeon, Octeon II

Parallelism in Action

2009 May 24 13:53 / Leave a Comment / Jakob

Shrinking cores

Last year in a blog post on video encoding for the iPod Nano, I complained about the lack of performance on my old Athlon. A bit later, I noted that (obviously) video encoding is a good example of an application that can take advantage of parallelism. Yesterday I put these two topics together in a practical test. And it worked nicely enough.

Read More →

Tweet
Posted in: multicore computer architecture, multicore software / Tagged: Embarrassingly Parallel, iPod, Nero, parallelized software, video

When does Hardware Acceleration make Sense in Networking?

2009 May 16 07:45 / 4 Comments / Jakob

q_stampYes, when does hardware acceleration make sense in networking? Hardware acceleration in the common sense of “TCP offload”. This question was answered by a very nicely reasoned “no” in an article by Mike Odell in ACM Queue called “Network Front-End Processors, Yet Again“.

Read More →

Tweet
Posted in: computer architecture, history of computing, multicore computer architecture, review / Tagged: accelerators, ethernet, hardware-software interface, heterogeneous, Mike Odell, networking, tcp

EETimes.com – Multicore CPUs face slow road in comms

2009 March 22 22:16 / Leave a Comment / Jakob

eetimes logoThe  EETimes article Multicore CPUs face slow road in comms piqued my interest. There is an interesting chart in there about just how slow more-than-one-core processors will be in penetrating a vaguely defined “comms” market place. I can believe that, but I think their comments on the PowerQUICC series require some commentary…

Read More →

Tweet
Posted in: embedded systeme, multicore computer architecture, multicore software / Tagged: Cavium, Communications market, EETimes, freescale, heterogeneous, Linley Gwennap, Multicore Expo, Octeon, p4080, PowerQUICC, qoriq, Rick Merritt

Enea and Freescale Article on SMP OS

2009 February 24 10:43 / Leave a Comment / Jakob

Elektronik i Norden just published a technical insight article about the SMP kernels of Enea OSE and Linux, by Patrik Strömblad and Jonas Svennebring.

Read More →

Tweet
Posted in: embedded software, embedded systeme, multicore computer architecture, multicore software / Tagged: AMP, Enea, freescale, Jonas Svennebring, linux, mpc8572e, mpc8641d, OSE, p4080, Patrik Strömblad, SMP

Three Cores make a Crowd — or a Problem

2009 February 7 22:12 / 2 Comments / Jakob

mpc8640d_ppA common question from simulation users to us simulation providers is “can I simulate a machine with N cores”, where N is “large”. As if running lots of cores was a simulation system or even a hardware problem. In almost all cases, the problem is with software. Creating an arbitrary configuration in a virtual platform is easy. Creating a software stack for that arbitrary platform is a lot harder, since an SMP software stack needs to understand about the cores and how they communicate.

Essentially, what you need is a hardware design that has addressing room for lots of cores, and a software stack that is capable of using lots of cores — even if such configurations do not exist in hardware. Unfortunately, since software is normally written to run on real existing machines, there tends to be unexpected limitations even where scalability should be feasible “in principle”.

Here is the story of how I convinced Linux to handle more than two cores in a virtual MPC8641D machine.

Read More →

Tweet
Posted in: multicore computer architecture, multicore software, virtual platforms / Tagged: AMD, device tree, freescale, linux, Linux kernel, mpc8641d, OpenPIC, Simics

Hardware-Software Race Condition in Interrupt Controller

2009 January 17 22:16 / Leave a Comment / Jakob

raceconditionThe best way to learn something is to try, fail, and then try again. That is how I just learned the basics of multiprocessor interrupt management. For an educational setup, I have been creating a purely virtual virtual platform from scratch. This setup contains a large number of processors with local memory, and then a global shared memory, as well as a means for the processors to interrupt each other in order to notify about the presence of a message or synchronize in general. Getting this really right turned out to be not so easy.

Read More →

Tweet
Posted in: multicore computer architecture, multicore software, programming, virtual platforms / Tagged: interrupt controller, learning by doing, OpenPIC, operating systems, race condition, teaching setup

“Nulticore Effect”

2008 December 9 21:50 / Leave a Comment / Jakob

Jack Ganssle wrote a column about the failure of multicore to scale, based on an article in IEEE Spectrum. He makes the following claim:

Now a study in IEEE Spectrum shows that even for the classic embarrassingly parallel problems like weather simulations multicore offers little benefit. The curve in that article is priceless. As the number of cores grow from two to 64 performance plummets by a factor of five. Additional processors nullify each other.

Call it the Nulticore Effect.

Read More →

Tweet
Posted in: embedded systeme, multicore computer architecture, multicore software / Tagged: Embarrassingly Parallel, IEEE Spectrum, Jack Ganssle, manycore, memory bandwidth, Sandia Labs

A Few Parallel EDA Tools

2008 October 29 13:48 / Leave a Comment / Jakob

I keep looking out for interesting examples of parallel  software, and there is constant trickle of these. This past week I spotted a couple of new ones in the EDA field: SPICE simulation and chip timing analysis.

Read More →

Tweet
Posted in: computer simulation technology, EDA, multicore computer architecture, multicore software / Tagged: parallelized software, SPICE

SiCS Multicore Days: The Debate Points

2008 September 19 22:14 / 7 Comments / Jakob

It is a week ago now, and sometimes it is good to let impressions sink in and get processed a bit before writing about an event like the SiCS Multicore Days. Overall, the event was serious fun, and I found the speakers very insightful and the panel discussion and audience questions added even more information.

Read More →

Tweet
Posted in: conferences, multicore computer architecture, multicore software, security / Tagged: conference, heterogeneous, homogeneous, memory bandwidth, multicore, panel discussion, SiCS Multicore days, software tools

What is Efficiency when Cores are Free?

2008 September 13 18:48 / 1 Comment / Jakob

More from the SiCS multicore days 2008.

There were some interesting comments on how to define efficiency in a world of plentiful cores. The theme from my previous blog post called “Real-Time Control when Cores Become Free” came up several times during the talks, panels, and discussions. It seems that this year, everybody agreed that we are heading to 100s or 1000s of “self-respecting” cores on a single chip, and that with that kind of core count, it is not too important to keep them all busy at all times at any cost. As I stated earlier, cores and instructions are now free, while other aspects are limiting, turning the classic optimization imperatives of computing on its head. Operating systems will become more about space-sharing than time-sharing, and it might make sense to dedicate processing cores to the sole job of impersonating peripheral units or doing polling work. Operating systems can also be simplified when the job of time-sharing is taken away, even if communications and resource management might well bring in some new interesting issues.

So, what is efficiency in this kind of environment?

Read More →

Tweet
Posted in: conferences, embedded software, embedded systeme, multicore computer architecture, multicore software, virtualization / Tagged: efficiency, manycore, operating systems, SiCS Multicore days

The JVM as Universal Parallel Glue?

2008 September 12 22:45 / 4 Comments / Jakob

The two days of the SiCS Multicore Days is now over, and it was a really fun event this year too. I will be writing a few things inspired by the event, and here is the first.

Kunle Olukotun‘s presentation on the work of the Stanford Pervasive Parallelism lab included a diagram where they showed a range of domain-specific languages (DSL) being compiled to a universal implementation language. That language is currently Scala, and in the end all applications end up being compiled into Scala byte codes, which are then optimized and dynamically reoptimized and executed on a particular hardware system based on the properties of that system. Fundamentally, the problem of creating and compiling a DSL, and combining program segments written in different DSLs, is solved by interposing a layer of indirection.

But this idea got me thinking about what the best such intermediary might be for large-scale general deployment.

Read More →

Tweet
Posted in: conferences, multicore computer architecture, multicore software, programming / Tagged: Domain-specific languages, java, jvm, kunle olukotun, multicore, SiCS Multicore days

SiCS Multicore Days 2008: Talk about Threading Simics (updated)

2008 August 27 08:47 / 2 Comments / Jakob

Shrinking cores

I will give a presentation on how Simics was threaded and how we created a parallel virtual platform system at the SiCS Multicore Days 2008, which takes place in Kista, Sweden, on September 11 and 12. The schedule is now up (so I edited the post and added updated to the title), at http://www.sics.se/node/3182, and my talk is on Friday, Sept 12, at 13.00 in “track 2″. Speaker bios and abstracts are also online.

Even apart from my own humble participation, I think the event itself will be well worth attending. Last year was really good and serious fun! See my writeups from last year: part 1 and part 2 (and a short note on the Rock processor and transactional memory).

Tweet
Posted in: appearances, conferences, multicore computer architecture, multicore software, parallel computing / Tagged: SiCS Multicore days

Swedish Workshop on Multicore 2008: Nov 27-28: CFP!

2008 August 22 10:00 / Leave a Comment / Jakob

Shrinking cores

The first Swedish Workshop on Multicore Computing (MCC) will take place in Ronneby on November 27 and 28, 2008. The call for papers is now out, and it is open until September 26. If you have something cool to present or publish about multicore computing, and happen to be here in Sweden, please do submit an abstract!

Disclosure: I am in the program committee for this event.

Tweet
Posted in: conferences, multicore computer architecture, multicore debug, multicore software / Tagged: MCC, Swedish Workshop on Multicore Computing

DNS: Hardware Accelerator Time!

2008 August 16 22:21 / 1 Comment / Jakob

In Episode 157 of Security Now,Steve Gibson and Leo Laporte discuss the recently discovered security issues with DNS. In particular, the cost of making a good fix in terms of bandwidth and computation capacity. Fundamentally, according to Steve, today’s DNS servers are running at a fairly high load, and there is no room to improve the security of DNS updates by for example sending extra UDP packets or switching to TCP/IP. As this theoretically means a doubling or tripling of the number of packets per query, I can believe that. The “real solutions” to DNS problems should lie in the adoption of a truly secured protocol like DNSSEC. As this uses public key crypto (PKC), it would add a processing load to the servers that would kill the DNS servers on the CPU side instead…

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture, multicore software, security / Tagged: podcast commentary, SecurityNow

GPU Programming: a Good Pattern to Follow?

2008 August 10 20:40 / 2 Comments / Jakob

In the March/April 2008 issue of ACM Queue, there is an article on GPU Programming by Kayvon Fatahalian and Mike Houston of Stanford that I found a very interesting read. It presents and analyzes the programming model of modern GPUs, in the most coherent and understandable way that I have seen so far. The PC GPU has a model for programming parallel hardware that might be a good pattern for other areas of processing. Programmers do not have to write explicitly parallel code, the machinery and hardware takes care of ensuring parallel behavior, as long as the code follows the assumptions made in the model.

Read More →

Tweet
Posted in: multicore computer architecture, multicore software, programming / Tagged: GPU, Kayvon Fatahalian, Mike Houston

Kunle Olukotun Interview: Heterogeneity, Domain-Specific Programming

2008 July 20 22:44 / 4 Comments / Jakob

TheRegister Radio LogoThe Radio Register has a nice interview with Kunle Olukotun, the man most known for the Afara/Sun Niagara/UltraSparc T1-2-etc. design. It is a long interview, lasting well over an hour, but it is worth a listen. A particular high point is the story on how Kunle worked on parallel processors in the mid-1990s when everyone else was still chasing single-thread performance. He really was a very early proponent of multicore, and saw it coming a bit before most other (general-purpose) computer architects did. Currently, he is working on how to program multiprocessors, at the Stanford Pervasive Parallelism Laboratory (PPL). In the interview, I see several themes that I have blogged about before being reinforced…

Read More →

Tweet
Posted in: computer architecture, multicore computer architecture / Tagged: CUDA, Domain-specific languages, DSP, heterogeneous, kunle olukotun, Motorola, Niagara, QUICC, Stanford Pervasive Parallelism Laboratory, Sun, TI

Freescale QorIQ P4080 Hybrid Simulation on YouTube(!)

2008 June 18 10:25 / 3 Comments / Jakob

YouTube – Freescale QorIQ P4080 Hybrid Simulation is a video of a demo of the QorIQ P4080 hybrid simulation. Cool of Freescale to be publishing it like this, I think it is a very smart move!

Updated: Here is the video inline, let’s see if this works.

Tweet
Posted in: business issues, computer simulation technology, ESL, multicore computer architecture, virtual platforms / Tagged: clock-cycle models, freescale, Functional models, hybrid simulation, p4080, power architecture, qoriq

Post Navigation

1 2 Next »

Recent Posts

  • 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
  • Programming like Lego
  • Does ISA Matter for Performance?
  • Wind River Blog: Debugging Simics using Simics
  • Wind River Blog: Simics and Flying Piggies
  • Dragons can be Useful – when AT Models Make Sense
  • Logging (Some More Thoughts)

Categories

  • appearances (30)
  • articles (21)
  • blogging (10)
  • books (6)
  • 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 (107)
  • review (8)
  • security (19)
  • teaching (7)
  • testing (9)
  • uncategorized (12)
  • virtual things (128)
    • computer simulation technology (68)
    • virtual machines (17)
    • virtual platforms (97)
    • virtualization (14)
  • Wind River Blog (39)

Tags

ARM blog commentary Cadence Checkpointing clock-cycle models Communications of the ACM computer architecture conference cycle accuracy debugging DML Domain-specific languages 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

  • May 2013 (1)
  • 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