Talk:Execution model

Thank you for creating this talk page. My name is Sean Halle, I have been curating the Execution Model page. My background is a PhD in Computer Science focused on Execution models for performance-portable parallel languages.

I look forward to discussion on the page. — Preceding unsigned comment added by Seanhalle (talk • contribs) 09:23, 28 March 2018 (UTC)

Execution model of instruction sets/u-archs
This article currently deals with (high-level) programming language execution models. But assembly languages (and machine code, the two being transformations) also have execution models. One might assume they're trivially serial and sequential, but microarchitectures have evolved to feature superscalar and out-of-order execution capabilities. I'm not clear on whether this changes the execution model(s) of assembly language(s), or whether it is more about a stack of execution models (potentially going all the way down to micro-operations.) 104.228.101.152 (talk) 17:24, 17 October 2020 (UTC)

[response from Sean] Thank you for the comment. It is true that assembly language also has an execution model, the same as any other language. This execution model is separate from implementation. For example, both a 5 stage in-order pipeline and a large out of order CPU implement the same assembly execution model. IE, the execution model is the definition of the behavior, so all implementations, whether in-order or out-of-order or interpreted or JIT'd etc.. must all give the exact same result, and that result is defined by the execution model. Does that make sense? Kshalle (talk) 05:00, 18 October 2020 (UTC)

Yes, that makes sense, thanks for the clarification. I'm wondering if micro-architectures have execution models (an execution model below the assembly/machine code execution model). I suppose micro-operations are technically part of the microarchitecture. If so, I will think of language to be added to the article with the motive of a more complete piece. 104.228.101.152 (talk) 20:30, 18 October 2020 (UTC)