If an operating system is developed, say for instance 'Linux', will that be written slightly differently where needed (profiled) for different microarchitecture (Intel Pentium and AMD Athlon)?

I see from one of the stack exchange thread that Linux binary for AMD's x64 can be run on Intel x64 architecture as well enter link description here

ie shouldn't different Linux source code be there for Intel Pentium and AMD Athlon even though they share the same ISA (x86)? Reason being their implementation of ISA would be different, using different set of control and data registers!

  • 1
    As far as I know, register definitions are part of the ISA. Why do you think they would be different for Intel x86 and AMD x86? – user1686 Aug 20 '18 at 5:05
  • Oh... Is it! I though to have different implementation of the same ISA, they need to be implementing it with different arrangement of registers. – Darshan L Aug 20 '18 at 6:09

I couldn't get to the core of the concept, however gathered sufficient information required to convince myself that operating systems differ based on ISA (eg: x86 and x64) and not on microarchitecture (Intel Pentium and AMD Athlon).

A simple analogy is -

ISA is like C language; 'a standard', to be followed to do something.

whereas microarchitecture is like C compiler; 'an implementation' to enforce those rules or standard.

Excerpt from wiki - Microarchitecture

A given ISA may be implemented with different microarchitectures; implementations may vary due to different goals of a given design or due to shifts in technology.

The ISA is roughly the same as the programming model of a processor as seen by an assembly language programmer or compiler writer. The ISA includes the execution model, processor registers, address and data formats among other things. The microarchitecture includes the constituent parts of the processor and how these interconnect and interoperate to implement the ISA.

Machines with different microarchitectures may have the same instruction set architecture, and thus be capable of executing the same programs. New microarchitectures and/or circuitry solutions, along with advances in semiconductor manufacturing, are what allows newer generations of processors to achieve higher performance while using the same ISA.

The factors which distinguishes different microarchitectures but still implementing the same ISA are-

Execution units are also essential to microarchitecture. Execution units include arithmetic logic units (ALU), floating point units (FPU), load/store units, branch prediction, and SIMD. These units perform the operations or calculations of the processor. The choice of the number of execution units, their latency and throughput is a central microarchitectural design task. The size, latency, throughput and connectivity of memories within the system are also microarchitectural decisions.

System-level design decisions such as whether or not to include peripherals, such as memory controllers, can be considered part of the microarchitectural design process. This includes decisions on the performance-level and connectivity of these peripherals.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.