70 likes | 190 Vues
Questions To Ask When Considering Designing Asymmetric Multiprocessing Systems. George Cox. Agenda. Context of Asymmetric Multiprocessing Systems design Including Asymmetric Multicore Systems Closeness Sharing – tight to loose, up the semantics stack
E N D
Questions To Ask When Considering Designing Asymmetric Multiprocessing Systems George Cox
Agenda • Context of Asymmetric Multiprocessing Systems design • Including Asymmetric Multicore Systems • Closeness • Sharing – tight to loose, up the semantics stack • Communication overheads – tight to loose physical connection • Closer => less latency => less overheads => • Better performance? • Lower power? Integrating New Functionality • Continuing new types • Natural tendency to want to integrate support to improve • Performance • Power • Cost • Competitiveness
Context • Asymmetric Multiprocessing Systems • Including Asymmetric Multicore Systems • You have a multi-dimensional space in which to work • We will describe a two (2) space example • You must pick the optimal(?) point(s) within your design constraints • You rarely get a “clean sheet of paper” • Historical I/O models – driver-based, “through” data flow • Historical coprocessor models – driver-based, “in and back out” data flow
Sharing • Equivalent shared semantics • Between processing elements • Up the semantics stack • Physical addressing – size, shared or separated, movement between • Logical addressing – address translation (e.g., paging) • Virtual addressing – uniform (or not) swapping model • Caching – same number of levels, line length, sizes, replacement algorithms, consistency model, inter-core/processor handshakes • Processing element functionality • Same ISA (or not) • Virtual machines – uniform semantics, representation, migration across ISA/performance differences
Communication Overheads Tight to loose physical connection – less to more latency • Intra-die • Inter-die • Inter-package • Shared memory • Via bus • Via network
Virtual Machines Processing Element Functionality Caching Virtual Addressing Logical Addressing Physical Addressing Inter Package Shared Memory Via Network Intra-Die Inter-Die Via Bus Design Space Sharing Better? Worse? Communication Overheads
Integrating New Functionality • New types • Cryptography, graphics, radios, sensors • Granularity • Which kind of interface to use • Instruction • Accelerator(s) - ISA (synchronous or asynchronous) interface • I/O – driver (asynchronous) interface • Coprocessor – driver (asynchronous) interface • Sequencing • Synchronous • Long running functions can pose response latency for OS; • Divide function into sequence of smaller functions (e.g., AESNI) • Asynchronous – fork, join • In the end • We have tried lots of kinds of interfaces over time • Instructions (almost always eventually) win