New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Computer Architecture Chapter 1 Bundle

by: Aaron Maynard

Computer Architecture Chapter 1 Bundle CS 3340

Aaron Maynard
GPA 3.5

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

These notes contain all of the information detailed in chapter one of the presentations and lecture.
Computer Architecture
Computer, Computer Science, Computer Architecture, Science
75 ?




Popular in Computer Architecture

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 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 t​alk 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


Buy Material

Are you sure you want to buy this material for

75 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


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'

Why people love StudySoup

Steve Martinelli UC Los Angeles

"There's no way I would have passed my Organic Chemistry class this semester without the notes and study guides I got from StudySoup."

Kyle Maynard Purdue

"When you're taking detailed notes and trying to help everyone else out in the class, it really helps you learn and understand the I made $280 on my first study guide!"

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"

Parker Thompson 500 Startups

"It's a great way for students to improve their educational experience and it seemed like a product that everybody wants, so all the people participating are winning."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.