1 / 66

Understanding RISC and Multiprocessor Architectures

Learn about the properties that distinguish RISC from CISC architectures, how multiprocessor architectures are classified, and the factors that create complexity in multiprocessor systems.

fwalker
Download Presentation

Understanding RISC and Multiprocessor Architectures

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. Chapter 9 Alternative Architectures

  2. Chapter 9 Objectives Learn the properties that often distinguish RISC from CISC architectures. Understand how multiprocessor architectures are classified. Appreciate the factors that create complexity in multiprocessor systems. Become familiar with the ways in which some architectures transcend the traditional von Neumann paradigm. 2

  3. 9.1 Introduction We have so far studied only the simplest models of computer systems; classical single-processor von Neumann systems. This chapter presents a number of different approaches to computer organization and architecture. Some of these approaches are in place in today’s commercial systems. Others may form the basis for the computers of tomorrow. 3

  4. 9.2 RISC Machines The underlying philosophy of RISC machines is that a system is better able to manage program execution when the program consists of only a few different instructions that are the same length and require the same number of clock cycles to decode and execute. RISC systems access memory only with explicit load and store instructions. In CISC systems, many different kinds of instructions access memory, making instruction length variable and fetch-decode-execute time unpredictable. 4

  5. 9.2 RISC Machines The difference between CISC and RISC becomes evident through the basic computer performance equation: RISC systems shorten execution time by reducing the clock cycles per instruction. CISC systems improve performance by reducing the number of instructions per program. 5

  6. 9.2 RISC Machines The simple instruction set of RISC machines enables control units to be hardwired for maximum speed. The more complex-- and variable-- instruction set of CISC machines requires microcode-based control units that interpret instructions as they are fetched from memory. This translation takes time. With fixed-length instructions, RISC lends itself to pipelining and speculative execution. 6

  7. 9.2 RISC Machines Consider the program fragments: The total clock cycles for the CISC version might be: (2 movs  1 cycle) + (1 mul  30 cycles) = 32 cycles While the clock cycles for the RISC version is: (3 movs  1 cycle) + (5 adds  1 cycle) + (5 loops  1 cycle) = 13 cycles With RISC clock cycle being shorter, RISC gives us much faster execution speeds. mov ax, 0 mov bx, 10 mov cx, 5 Begin add ax, bx loop Begin mov ax, 10 mov bx, 5 mul bx, ax RISC CISC 7

  8. 9.2 RISC Machines Because of their load-store ISAs, RISC architectures require a large number of CPU registers. These register provide fast access to data during sequential program execution. They can also be employed to reduce the overhead typically caused by passing parameters to subprograms. Instead of pulling parameters off of a stack, the subprogram is directed to use a subset of registers. 8

  9. 9.2 RISC Machines This is how registers can be overlapped in a RISC system. The current window pointer (CWP) points to the active register window. 9

  10. 9.2 RISC Machines It is becoming increasingly difficult to distinguish RISC architectures from CISC architectures. Some RISC systems provide more extravagant instruction sets than some CISC systems. Some systems combine both approaches. The following two slides summarize the characteristics that traditionally typify the differences between these two architectures. 10

  11. RISC Multiple register sets. Three operands per instruction. Parameter passing through register windows. Single-cycle instructions. Hardwired control. Highly pipelined. CISC Single register set. One or two register operands per instruction. Parameter passing through memory. Multiple cycle instructions. Microprogrammed control. Less pipelined. 9.2 RISC Machines Continued.... 11

  12. RISC Simple instructions, few in number. Fixed length instructions. Complexity in compiler. Only LOAD/STORE instructions access memory. Few addressing modes. CISC Many complex instructions. Variable length instructions. Complexity in microcode. Many instructions can access memory. Many addressing modes. 9.2 RISC Machines 12

  13. 9.4 Parallel and Multiprocessor Architectures Recall that pipelining divides the fetch-decode-execute cycle into stages that each carry out a small part of the process on a set of instructions. Ideally, an instruction exits the pipeline during each tick of the clock. Superpipelining occurs when a pipeline has stages that require less than half a clock cycle to complete. The pipeline is equipped with a separate clock running at a frequency that is at least double that of the main system clock. Superpipelining is only one aspect of superscalar design. 13

  14. 9.4 Parallel and Multiprocessor Architectures Superscalar architectures include multiple execution units such as specialized integer and floating-point adders and multipliers. A critical component of this architecture is the instruction fetch unit, which can simultaneously retrieve several instructions from memory. A decoding unit determines which of these instructions can be executed in parallel and combines them accordingly. This architecture also requires compilers that make optimum use of the hardware. 14

  15. 9.4 Parallel and Multiprocessor Architectures Very long instruction word (VLIW) architectures differ from superscalar architectures because the VLIW compiler, instead of a hardware decoding unit, packs independent instructions into one long instruction that is sent down the pipeline to the execution units. One could argue that this is the best approach because the compiler can better identify instruction dependencies. However, compilers tend to be conservative and cannot have a view of the run time code. 15

  16. Hardware Multithreading Course Multi Threading • Hardware (Fine) Multithreading: each clock cycle the thread is changed. • Multiple register banks • Threads/registers changed per clock cycle • Impact: memory & cache: help or hurt? • Symmetric Multithreading: • All instructions queued to an execution unit • Threads executed simultaneously • Coarse Multithreading: thread switches may occur at OS or hardware level • One thread runs until it stalls Fine Multi Threading Symmetric Multi Threading

  17. 9.3 Flynn’s Taxonomy Many attempts have been made to come up with a way to categorize computer architectures. Flynn’s Taxonomy has been the most enduring of these, despite having some limitations. Flynn’s Taxonomy takes into consideration the number of processors and the number of data paths incorporated into an architecture. A machine can have one or many processors that operate on one or many data streams. 17

  18. Flynn’s Taxonomy

  19. 9.3 Flynn’s Taxonomy 19

  20. 9.3 Flynn’s Taxonomy The four combinations of multiple processors and multiple data paths are described by Flynn as: SISD: Single instruction stream, single data stream. These are classic uniprocessor systems. SIMD: Single instruction stream, multiple data streams. Execute the same instruction on multiple data values, as in vector processors. MIMD: Multiple instruction streams, multiple data streams. These are today’s parallel architectures. MISD: Multiple instruction streams, single data stream. 20

  21. Vector Processing For i=0 to VectorLength V3[i] = V1[i] + V2[i] Translates into (where r1, r2, r3 are vector registers): Lv r1,V1 # V3 = V1 + V2 Lv r2,V2 Addv r3,r1,r2 Sv r3,V3

  22. Multimedia Processing • Intel X86 (e.g., 80386) Architecture • MMX: MultiMedia Extensions • SSE: Streaming SIMD Extensions • A register can be subdivided into smaller units … or extended and subdivided 128 bits One ALU 64 bits 64 bits 32 bits 32 bits 32 bits 32 bits

  23. 9.3 Flynn’s Taxonomy Flynn’s Taxonomy falls short in a number of ways: First, there appears to be no need for MISD machines. Second, parallelism is not homogeneous. This assumption ignores the contribution of specialized processors. Third, it provides no straightforward way to distinguish architectures of the MIMD category. One idea is to divide these systems into those that share memory, and those that don’t, as well as whether the interconnections are bus-based or switch-based. 23

  24. 9.3 Flynn’s Taxonomy Symmetric multiprocessors (SMP) and massively parallel processors (MPP) are MIMD architectures that differ in how they use memory. SMP systems share the same memory and MPP do not. An easy way to distinguish SMP from MPP is: MPP  many processors + distributed memory + communication via network SMP  fewer processors + shared memory + communication via memory 24

  25. Memory Architecture UMA: Uniform Memory Access: • E.g.: All memory is shared on a bus for all processors NUMA: Non-Uniform Memory Access: Local memory and remote memory • E.g.: Each processor has its own memory, which is not easily accessible to other processors

  26. QuickPath Interconnect (QPI)

  27. 9.3 Flynn’s Taxonomy Other examples of MIMD architectures are found in distributed computing, where processing takes place collaboratively among networked computers. A network of workstations (NOW) uses otherwise idle systems to solve a problem. A collection of workstations (COW) is a NOW where one workstation coordinates the actions of the others. A dedicated cluster parallel computer (DCPC) is a group of workstations brought together to solve a specific problem. A pile of PCs (POPC) is a cluster of (usually) heterogeneous systems that form a dedicated parallel system. 27

  28. 9.3 Flynn’s Taxonomy Flynn’s Taxonomy has been expanded to include SPMD (single program, multiple data) architectures. Each SPMD processor has its own data set and program memory. Different nodes can execute different instructions within the same program using instructions similar to: If myNodeNum = 1 do this, else do that Yet another idea missing from Flynn’s is whether the architecture is instruction driven or data driven. The next slide provides a revised taxonomy. 28

  29. 9.4 Parallel and Multiprocessor Architectures Parallel processing is capable of economically increasing system throughput while providing better fault tolerance. The limiting factor is that no matter how well an algorithm is parallelized, there is always some portion that must be done sequentially. Additional processors sit idle while the sequential work is performed. Thus, it is important to keep in mind that an n -fold increase in processing power does not necessarily result in an n -fold increase in throughput. 29

  30. Parallel Processing Microsoft Word Matrix Multiply Editor Backup SpellCheck GrammarCheck

  31. Parallel Programming Main Factor::child(int begin, int end) cout << "Run Factor " << total << ":" << numChild << endl; Factor factor; // Spawn children for (i=0; i<numChild; i++) if (fork() == 0) { factor.child(begin, begin+range); begin += range + 1; } // Wait for children to finish for (i=0; i<numChild; i++) wait(&stat); cout << "All Children Done: " << numChild << endl; } intval, i; for (val=begin; val<end; val++) { for (i=2; i<=end/2; i++) if (val % i == 0) break; if (i>val/2) cout << "Factor:" << val << endl; } exit(0);

  32. 9.4 Parallel and Multiprocessor Architectures Vector computers are processors that operate on entire vectors or matrices at once. These systems are often called supercomputers. Vector computers are highly pipelined so that arithmetic instructions can be overlapped. Vector processors can be categorized according to how operands are accessed. Register-register vector processors require all operands to be in registers. Memory-memory vector processors allow operands to be sent from memory directly to the arithmetic units. 32

  33. 9.4 Parallel and Multiprocessor Architectures A disadvantage of register-register vector computers is that large vectors must be broken into fixed-length segments so they will fit into the register sets. Memory-memory vector computers have a longer startup time until the pipeline becomes full. In general, vector machines are efficient because there are fewer instructions to fetch, and corresponding pairs of values can be prefetched because the processor knows it will have a continuous stream of data. 33

  34. Graphic Processing Units (GPUs) GPU • Performs parallel operations on graphics data. • Plug-in graphics card or display adapter. • Encodes and renders 2D and 3D graphics, video General-purpose computing on GPUs (GPGPU) • GPUs may be used for CPU-type apps requiring repetitive computations

  35. Comparison of CPU and GPU CPU GPU • Flexible: Can do any operation • Few processors • SISD or few ALUs, pipeline oriented • Use multi-level caches. • 32-256 GiB memory • Emphasize FP operations • 100s of parallel floating point units; MIMD • Highly Multithreaded: Special programming languages • CUDA, OpenGL, DirectX • Little memory (to 8 GiB): • memory latency handled w. multithreaded queuing • Graphic DRAM => wider bandwidth offers more data per read

  36. NVIDIA Tesla (GPU) 8 Streaming Processors • GPU has 12 Streaming Multiprocessors • Each Streaming Multiprocessor: • 1 Warp = 8 Streaming Processors * 4 clock cycles • 32 total threads • Fine-grained multithreaded • Integer & single precision FP Warp Time

  37. NVIDIA (GPU) 16 Lanes or 16 SIMD Threads Each lane has 64 Vector registers Each vector register has 32 elements of 32 bits each… The Fermi SIMD processor has 32,768 registers in total.

  38. 9.4 Parallel and Multiprocessor Architectures MIMD systems can communicate through shared memory or through an interconnection network. Interconnection networks are often classified according to their topology, routing strategy, and switching technique. Of these, the topology is a major determining factor in the overhead cost of message passing. Message passing takes time owing to network latency and incurs overhead in the processors. 38

  39. 9.4 Parallel and Multiprocessor Architectures Interconnection networks can be either static or dynamic. Processor-to-memory connections usually employ dynamic interconnections. These can be blocking or nonblocking. Nonblocking interconnections allow connections to occur simultaneously. Processor-to-processor message-passing interconnections are usually static, and can employ any of several different topologies, as shown on the following slide. 39

  40. 9.4 Parallel and Multiprocessor Architectures 40

  41. 9.4 Parallel and Multiprocessor Architectures Dynamic routing is achieved through switching networks that consist of crossbar switches or 2  2 switches. 41

  42. 9.4 Parallel and Multiprocessor Architectures Multistage interconnection (or shuffle) networks are the most advanced class of switching networks. They can be used in loosely-coupled distributed systems, or in tightly-coupled processor-to-memory configurations. • 42

  43. 9.4 Parallel and Multiprocessor Architectures There are advantages and disadvantages to each switching approach. Bus-based networks, while economical, can be bottlenecks. Parallel buses can alleviate bottlenecks, but are costly. Crossbar networks are nonblocking, but require n2 switches to connect n entities. Omega networks are blocking networks, but exhibit less contention than bus-based networks. They are somewhat more economical than crossbar networks, n nodes needing log2n stages with n / 2 switches per stage. 43

  44. 9.4 Parallel and Multiprocessor Architectures Tightly-coupled multiprocessor systems use the same memory. They are also referred to as shared memory multiprocessors. The processors do not necessarily have to share the same block of physical memory: Each processor can have its own memory, but it must share it with the other processors. Configurations such as these are called distributedshared memory multiprocessors. 44

  45. 9.4 Parallel and Multiprocessor Architectures Shared memory MIMD machines can be divided into two categories based upon how they access memory. In uniform memory access (UMA) systems, all memory accesses take the same amount of time. To realize the advantages of a multiprocessor system, the interconnection network must be fast enough to support multiple concurrent accesses to memory, or it will slow down the whole system. Thus, the interconnection network limits the number of processors in a UMA system. 45

  46. 9.4 Parallel and Multiprocessor Architectures Cloud computing is distributed computing to the extreme. It provides services over the Internet through a collection of loosely-coupled systems. In theory, the service consumer has no awareness of the hardware, or even its location. Your services and data may even be located on the same physical system as that of your business competitor. The hardware might even be located in another country. Security concerns are a major inhibiting factor for cloud computing. 46

  47. 9.5 Alternative Parallel Processing Approaches Some people argue that real breakthroughs in computational power-- breakthroughs that will enable us to solve today’s intractable problems-- will occur only by abandoning the von Neumann model. Numerous efforts are now underway to devise systems that could change the way that we think about computers and computation. In this section, we will look at three of these: dataflow computing, neural networks, and systolic processing. 47

  48. 9.5 Alternative Parallel Processing Approaches Von Neumann machines exhibit sequential control flow: A linear stream of instructions is fetched from memory, and they act upon data. Program flow changes under the direction of branching instructions. In dataflow computing, program control is directly controlled by data dependencies. There is no program counter or shared storage. Data flows continuously and is available to multiple instructions simultaneously. 48

  49. 9.5 Alternative Parallel Processing Approaches A data flow graph represents the computation flow in a dataflow computer. Its nodes contain the instructions and its arcs indicate the data dependencies. 49

  50. 9.5 Alternative Parallel Processing Approaches When a node has all of the data tokens it needs, it fires, performing the required operation, and consuming the token. The result is placed on an output arc. 50

More Related