11
My major mantra: We Must Break the Layers

My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

Embed Size (px)

Citation preview

Page 1: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

My major mantra:We Must Break the Layers

Page 2: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

Algorithm

Program

ISA (Instruction Set Arch)

Microarchitecture

Circuits

Problem

Electrons

Page 3: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

IF we break the layers:

• Compiler, Microarchitecture– Multiple levels of cache– Block-structured ISA– Part by compiler, part by uarch– Fast track, slow track

• Algorithm, Compiler, Microarchitecture– X + superscalar – the Refrigerator– Niagara X / Pentium Y

• Microarchitecture, Circuits– Verification Hooks– Internal fault tolerance

Page 4: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

…and

• More intelligently design our core (ILP is not dead)

• Provide more than one interface

• Re-visit the Run-time system

Page 5: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

Morphcore

• High performance out-of-order for serial code

• SMT in-order when throughput dominates

• Mickey mouse when neither is present

• Who decides which mode to operate in?

Page 6: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

More than one interface

• Those who need the utmost in performance– and are willing to trade ease of use for extra performance– For them, we need to provide a more powerful engine (Heavyweight cores for ILP, Accelerators for specific tasks)

• Those who just need to get their job done– and are content with trading performance for ease of use– For them, we need a software layer to bridge the multi-core

• That means– Chip designers understanding what algorithms need

– Algorithms folks understanding what hardware provides

– Knowledgeable Software folks bridging the two interfaces

Page 7: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

The Run-time System: What?

• Part of the Operating System?

• Part of the Chip Design?

Page 8: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

The Run-time System: Why?

• MorphCore (Khubaib, IEEE/ACM Micro 2012)

• Adaptive Processors, (Miftakhudinov, Micro 2012)

• Shared resources (Ebrahimi, IEEE/ACM ISCA 2012)

• Which thread to speed up (Joao, ISCA 2013)

Page 9: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

The Run-time System: How?

Page 10: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

Algorithm

Program

ISA (Instruction Set Arch)

Microarchitecture

Circuits

Problem

Electrons

Page 11: My major mantra: We Must Break the Layers. Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Problem Electrons

The Run-time System: How?

• Programmers insert pragmas in their code• Compilers use it to insert procedure calls

• Serious on-chip monitoring provides inputs

• Run-time system decides how to utilize

on-chip resources