1 / 10

Demystifying Microarchitecture in Multicore Systems for Programmers

Microarchitecture is crucial for multicore systems, but programmers shouldn't need to grasp its complexities. Learn about different chip approaches, core types, and performance aspects. Discover the necessary components, like interconnects, caches, and memory controllers, for a viable chip design. An interface must be specified for both hardware-savvy users and those relying on runtime systems. This redefinition of the hierarchy promises a vibrant future for microarchitecture.

Download Presentation

Demystifying Microarchitecture in Multicore Systems for Programmers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microarchitecture is Dead AND We must have a multicore interface that does not require programmers to understand what is going on underneath

  2. What is Microarchitecture? • It is about the implementation • It is transparent to the software • Ergo, if we really want to protect the programmer from seriously understanding the multi-core chip, • Microarchitecture must be very much alive and well

  3. First, a few words about the multi-core chip: The following figure was first published in a UT Tech Report: “ACMP: Balancing Hardware Efficiency and Programmer Efficiency,” TR-HPS-2007-001, Feb, 2007 (Actually, it was first submitted to ISCA in June, 2006, and was rejected  )

  4. The Asymmetric Chip Multiprocessor (ACMP) Large core Largecore Large core Largecore Largecore ACMP Approach “Tile-Large” Approach “Niagara” Approach Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore Niagara-likecore

  5. Large core vs. Small Core LargeCore SmallCore • Out-of-order • Wide fetch e.g. 4-wide • Deeper pipeline • Aggressive branch predictor (e.g. hybrid)‏ • Many functional units • Trace cache • Memory dependence speculation • In-order • Narrow Fetch e.g. 2-wide • Shallow pipeline • Simple branch predictor (e.g. Gshare)‏ • Few functional units

  6. Throughput vs. Serial Performance

  7. To make that chip viable, a lot has to happen: • The interconnect among the cores • The shared resources • Caches (and cache coherence) • Memory Controller(s) • Prefetch mechanisms • Specification of the few heavyweight cores and the many mickey-mouse cores • Performance improvement of the heavyweight core • Specification of accelerators and their interconnect to the cores • Specification of the interface to the software (ISA)

  8. Actually, • I don’t believe the Microarchitecture can do it alone • BUT that does not reduce the importance of the microarchitecture • Everything on the previous slide will be needed • PLUS at least two interfaces: • One for users who can understand the hardware, and • One for the run-time system to smooth the way for users who do not understand the hardware • That will mean breaking the transformation hierarchy

  9. Problem Algorithm Program ISA (Instruction Set Arch) Microarchitecture Circuits Electrons

  10. and that means (in my view) A vibrant future for Microarchitecture

More Related