Computer Architecture Chapter 1 Bundle
Computer Architecture Chapter 1 Bundle CS 3340
Popular in Computer Architecture
verified elite notetaker
Popular in Computer Science and Engineering
This 11 page Bundle was uploaded by Aaron Maynard on Thursday September 1, 2016. The Bundle belongs to CS 3340 at University of Texas at Dallas taught by in Fall 2016. Since its upload, it has received 20 views. For similar materials see Computer Architecture in Computer Science and Engineering at University of Texas at Dallas.
Reviews for Computer Architecture Chapter 1 Bundle
Report this Material
What is Karma?
Karma is the currency of StudySoup.
You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!
Date Created: 09/01/16
COMPUTER ARCHITECTURE FALL SEMESTER 2016 INSTRUCTOR: DR. KAREN MAZIDI firstname.lastname@example.org Chapter 1 Bundle These sets of notes will be covering the subjects covered in CS 3340.003 (and other). This packet will cover topics within Chapter 2 of Computer Organization and Design, Fifth Edition: The Hardware/Software Interface by Patterson and Hennessay. Any material on these pages include but are not limited to presentational slides provided by the prof or. Each ay contain concluding remarks at the end of each set. Computer Abstractions and Technology What do people mean when they talk about abstraction? According to the interwebs (ie: Wikipedia), an abstraction is a technique for arranging complexity of computer systems. Dr. Mazidi gives three definitions in here class: ● Seeing the big picture ● Pushing details down to a lower level concealing the details ● Abstraction helps us manage complex systems Take with that what you will. 1 Big Picture of Changing Technology The dramatic changes in what is being called “The Computer Revolution” can be considered in alignment with Moore’s Law. In 1965 the co-founder of Intel, Gordon Moore, made an observation that the number of transistors per square inch on integrated circuits had doubled every year since the integrated circuit was invented. This prediction held true for over 50 years. Computer Architecture is a way of saying the organization of a computer. This desired architecture is how a system is designed to achieve the desired functionality and sometimes as well as in the most efficient way possible. Different types or classes of computers have different architectures because they have different functionalities or purposes to fulfil. There are four major classes of computers: Personal, Server, Embedded and Supercomputers. ● Personal Computers ○ General purpose ○ Runs a variety of software ○ Subject to cost/performance tradeoff ● Server Computers ○ Network based ○ High capacity, performance and reliability ○ Fast I/O ○ Ranged sizes, from credit card to buildings ● Supercomputers ○ Runs high-end scientific engineering calculations ○ Highest capability yet represent only a small fraction of market ● Embedded Computers ○ Make up of 95% of microprocessor sales ○ Hidden as components of systems ○ Stringent power/performance/cost restraints 2 The PostPC Era In the newest era of technology, we have the Personal Mobile Device, or PMD. These devices are battery operated, connect to the internet, and can perform a multitude of tasks. These devices include but are not limited to smartphones, tablets and electronic glasses. What makes these devices so powerful is the newfound capabilities of cloud computing. Cloud computing can be made available through warehouse scale computers (WSC) and can be provided as Software as a Service (SaaS). Portions of the software runs on a personal mobile device, while other portions run in the cloud based server. This allows the devices to utilize memory more efficiently. The top companies who work on cloud computing are Amazon and Google. Processes There are four things that processes depend on to function correctly and efficiently. ● Algorithm ○ Determines number of operations executed ● Programming language, compiler, architecture ○ Determine number of machine instructions executed per operation ● Processor and memory system ○ Determine how fast instructions are executed ● I/O system (including OS) ○ Determines how fast I/O operations are executed These processes can be improved through what is called the 8 great ideas. 1. Design for M oore’s Law 2. Use a bstraction to simplify design 3. Make the c ommon case fast 4. Performance v ia parallelism 5. Performance via pipelining 6. Performance via prediction 7. Hierarchy of memories 8. Dependability via redundancy 3 Your Program, and What it Means There are three parts that are required to develop a program. 1. Application software a. High-level language i. Level of abstraction closer to problem domain ii. Provides for productivity and portability b. Assembly language i. Textual representation of instructions c. Hardware representation i. Binary digits (bits) ii. Encoded instructions and data 2. System software a. Compiler: translates HLL code to machine code b. Operating System: service code i. Handling input/output ii. Managing memory and storage iii. Scheduling tasks & sharing resources 3. Hardware a. Processor, memory, I/O controllers There are several advantages of high-level languages. They can be easier to translate from pseudocode to code, and improve programmer productivity. It can also allow languages to be tailored to specific uses as well as increase their portability. However some applications need to be in an assembly language for efficiency. Programming in assembly can make you a better programmer because it allows you to understand what is going on “under the hood” and will help you write code more efficiently. Processors (CPU) The processor or central processing unit (CPU) is the electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic operations specified by the instructions. The datapath performs on the data, which is sequenced by the control. The control also sequences memory such as the cache memory, a small fast SRAM memory for immediate access to data. 4 There are two types of memory to think about: volatile main memory and nonvolatile secondary memory. The differences between the two are pretty simple to understand. Volatile main memory loses the instructions and data when the power to the computer turns off or is removed. Nonvolatile secondary memory stores its data on either a magnetic disk, flash memory or an optical disk. A magnetic disk would be a hard drive, flash memory a USB, and an optical disk a CDROM or DVD. Networks A network is defined as a group of two or more computer systems linked together. There are many types of computer networks, including the following: local-area networks (LANs): The computers are geographically close together (that is, in the same building). Networks can share communications, resources and give nonlocal access. Wide-area networks (WAN) is when we see as the internet today, and we access them usually through WiFi or Bluetooth. Computer Performance Computer performance is the amount of work accomplished by a computer system . Depending on the context, high computer performance may involve one or more of the following: Short response time for a given piece of work. High throughput (rate of processing work) Low utilization of computing resource(s). When assessing system performance, there are two major factors we must consider. The response time (execution time) and the throughput (bandwidth). The response time is the time taken for a circuit or measuring device, when subjected to a change in input signal, to change its state by a specified fraction of its total response to that change. Throughput is the rate of production or the rate at which something can be processed. When used in the context of communication networks, such as Ethernet or packet radio, throughput or network throughput is the rate of successful message delivery over a communication channel. 5 Response Time & Throughput Response time and throughput can be affected by either replacing the processor with a faster version, or by adding more processors to the system. By replacing the processor with a faster version, we increase the response time, thus improving throughput. By adding more processors the task is not finished faster, however throughput is still increased. This is accomplished because the tasks do not have to wait as long in the task queue. Execution Time Execution is measured by time, but not in seconds like a standard clock you may find in your living room. By elapsed time, we mean the total response time. This response time includes all aspects such as processing, I/O, OS overhead and idle time of the program. The elapsed time is how we determine the system's performance. However, the CPU may be doing other things besides executing our program. ● CPU time ○ Time spent processing a given job ■ Discounts I/O time, other jobs’ shares ○ Comprises user CPU time and system CPU time (hard to separate these two) ○ Different programs are affected differently by CPU and system performance ● “system performance” = elapsed time ● “CPU performance” = user CPU time 6 Clock Cycle The speed of a computer processor, or CPU, is determined by the clock cycle, which is the amount of time between two pulses of an oscillator. The higher number of pulses per second, the faster the computer processor will be able to process information. The clock cycle is often called a tick or clock tick. One CPU may have a clock cycle, or clock period, as 250 ps (picoseconds) and this corresponds to a clock rate of 4 GHz (gigahertz). The clock cycle and clock rate are inverse to one another. The operation of digital hardware is governed by a constant-rate clock. Central Processing Unit (CPU) Performance of the CPU can be improved by a variety of ways. 1. Reducing the number of clock cycles 2. Increasing clock rate 3. Trading off clock rate against cycle count Instruction count for a program is determined by another program, ISA or a compiler. The average cycles per instruction is determined by the CPU hardware. If different instructions have different central processing instructions (CPI), then the average CPI is affected by the instruction mix. 7 CPU Time CPU time (or process time) is the amount of time for which a central processing unit (CPU) was used for processing instructions of a computer program or operating system, as opposed to, for example, waiting for input/output (I/O) operations or entering low-power (idle) mode. CPU time = Instruction count x CPI x clock cycle time The performance depends on the following: ● Algorithm: affects IC, possibly CPI ● Programming language: affects IC, CPI ● Compiler: affects IC, CPI ● Instruction set architecture: affects IC, CPI,cT The Power Wall The Central Processing Unit (CPU)–the component that has defined the performance of computers for many years–have hit quite a few walls. ● Memory b ottlenecks (the bandwidth of the channel between the CPU and a computer’s memory) ● Instruction level parallelism (ILP) wall (the availability of enough discrete parallel instructions for a multi-core chip) ● Power wall (the chip’s overall temperature and power consumption). Of the three, the power wall is now arguably the defining limit of the power of the modern CPU. As CPUs have become more capable, their energy consumption and heat production has grown rapidly. 8 CMOS CMOS, is technology for making low power integrated circuits, acting like a semiconductor. In today's CMOS chips, dynamic energy consists of most of the energy and heat in computer chips. Static energy is lost as leakage when the power is off. Increasing the number of transistors increases the power dissipation even when the power is off. Multiprocessors Multicore microprocessors contain more than one processor (core) per chip. They require explicitly parallel programing. Parallel programing can be compared with instruction level parallelism, where the hardware executes multiple instructions at once and is hidden from the programmer. Parallel programming can be hard to do. The programmer begins to write code for performance, load balancing and to optimize communication and synchronization. 9 Benchmarking In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it. The Standard Performance Evaluation Corporation (SPEC) is a non-profit corporation formed to establish, maintain and endorse a standardized set of relevant benchmarks that can be applied to the newest generation of high-performance computers. CINT2006 for Intel Core i7 920 Pitfalls and Fallacies One of the many pitfalls in developing electronics is expecting the improvement of one aspect of a computer to increase overall performance by an amount proportional to the size of the improvement. In computer architecture, Amdahl's law (or Amdahl's argument) gives the theoretical speedup in latency of the execution of a task at fixed workload that can be expected of a system whose resources are improved. In other words, it is used to find the maximum 10 expected improvement to an overall system when only part of the system is improved. It is often used in parallel computing to predict the theoretical maximum speedup using multiple processors. Another fallacy is that computers utilize little to no power while at idle. This is simply not the case. Take a look back at the i7 chip power benchmark. ● At 100% load: 258W ● At 50% load: 170W (66%) ● At 10% load: 121W (47%) According to research at the Google Data Center, their infrastructure: ● Mostly operates at 10% – 50% load ● At 100% load less than 1% of the time MIPS, or Millions of Instruction Per Second does not account for differences in ISAs between computers, nor the differences in complexity between instructions. CPI varies between programs on any given CPU. 11
Are you sure you want to buy this material for
You're already Subscribed!
Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'