Computer Science 1000 Terminology The Language of Computer Science field is notorious for cryptic terms WYSIWYG GPU flops even recognizable terms may mean something different than you are used to monitor boot resolution window The Language of Computer Science our discussions this semester may contain new or unfamiliar terms building your fluency with these terms will help your comprehension as we progress through our topics we will divide this discussion by topic today, we will consider hardware terms Hardware The machines, wiring, and other physical components of a computer or other electronic system. - Google Dictionary in other words, the components that make up your computer contrast this with software, which are the programs that are stored on your device Computer a programmable device typically consists of a set of hardware components Component a piece of hardware that forms part of a machine CPU, RAM, hard drive, etc ... Component Types Internal External devices that exist in the computer "box" e.g. RAM, CPU typically plugged directly into motherboard devices outside of the box e.g. display, keyboard, mouse typically connected via external ports some component types (e.g. hard drives) have both internal and external versions Computer historically, when someone said computer, it was clear what was being referenced today, that definition has changed box, monitor, keyboard, mouse, etc ... laptops handheld devices (e.g. smartphones) embedded chips when we refer to a computer in this class, we'll typically be referring to desktops and laptops, unless otherwise specified Computer Organization two types of computer organization 1. Component Organization computers sold as separate pieces e.g. desktop (tower, keyboard, display) 2. Monolithic Organization entire system is sold as a single unit e.g. laptop, smartphone, all-in-one/iMac Computer – Disambiguiting when referring to a computer, many people will include the display and input devices as part of the definition technically speaking, more accurate to define it as the "box" that the components are connected to, and all components within however, a perfect definition is not clear: laptops/iMacs have displays and inputs integrated into the system some components (e.g. hard drives) that have traditionally been internal are now external we will use it in both contexts, and explicity disambiguate when it's not clear Common Computer Types Desktop small inexpensive marketed for individual user also referred to as personal computers, PCs, etc once dominated the market, due to low cost laptops have outsold desktops for almost a decade* *http://www.engadget.com/2005/06/04/laptops-outsell-desktops-for-the-first-time-again/ Desktop some consider the term desktop as a specific model of personal computer a flat box that typically sits under the monitor this is differentiated from tower models Desktop some consider desktops to refer specifically to personal computers running Microsoft Windows this excludes machines running other operating systems (e.g. Linux), as well as any Apple products Desktop for our purposes, we will ignore the previous two distinctions in other words, a desktop will refer to a personal computer that's not a laptop or mobile device, regardless of operating system or box placement Common Computer Types Laptop similar to desktop, but monolithic (self-contained) design typically more expensive than equivalent desktop variants: notebooks netbooks Laptop Variants notebook refers to laptops that are smaller and lighter fewer components (e.g. no integrated DVD) typically more expensive and less powerful than laptops note: some people use the term interchangeably netbook a smaller, inexpensive, very basic machine designed for simple tasks (document processing, internet access) Laptop – Term unless specified, we will use laptop to refer to all variants (notebooks, netbooks) this includes all manufacturers, including Apple (MacBook) Components consider the selection of computers at a large retailer dozens of different models what makes them unique? answer: the components different machines have different components affect power and price Typical Components some components are optional, but all computers will have some type of: CPU RAM Persistant Storage Motherboard Central Processing Unit (CPU) also referred to as microprocessor, or just processor the brain of the computer, it executes the instructions that it is given performs arithmetic loads and moves data in memory controls I/O devices CPU – Basic Operation read an instruction execute that instruction repeat for next instruction the above is a bit of a simplification branches and jumps affect the sequence pipelining allows multiple instructions to execute simultaneously CPU – Basic Operation read an instruction execute that instruction repeat for next instruction CPU Memory 1 17 2 29 3 46 4 56 5 2576 Computer Program 0000100100010001 0000101000011101 0001001100101000 0000110000111000 0010010101110000 place value "17" in memory location 1 place value "29" in memory location 2 add values in loc. 1 and 2, place in loc. 3 place value "56" in memory location 4 multiply values in loc. 3 and 4, place in loc. 5 CPU processors have characteristics that define them we will consider some of the more wellknown characteristics clock rate number of cores cache CPU – Clock rate a CPU has an internal clock that cycles ("ticks") at a certain rate the rate of the clock cycle determines how many instructions can be executed in a second hence, the faster the clock rate, the faster a program can execute CPU – Clock Rate measured in Hertz (Hz) cycles per second clock rates for current processors: 2.0 – 4.0 GHz in other words, current processors cycle between 2 billion and 4 billion times per second CPU – Clock Rate note that clock rate does not necessarily indicate how many instructions can be executed in a second instructions have varying cycle requirements pipelining allows an instruction to start before another instruction has terminated however, it is likely that your processors are executing billions of instructions per second CPU – Cores a recent trend is to pack several CPUs onto a single chip each one of these CPUs is called a "core" each core can execute instructions independently hence, more cores = better performance although, may not make individual program run faster CPU – Cores typical core count: 2-8 note: some may not be physical cores CPU – Cache Size one of the most frequent tasks of a CPU is to read data from memory (described soon) reading from memory can be slow (by CPU standards) delay referred to as latency the CPU must wait until data is received before it can process hence, lower latency = faster processing CPU – Cache Size most data for a program is stored in main memory, or RAM however, modern processors have a small amount of memory, referred to as cache frequently accessed data is often stored in cache much smaller than RAM (MB vs GB) much faster than RAM instructions are often stored in cache hence, more CPU cache = better performance CPU Performance to summarize: higher clock speeds improve performance more cores improve performance more cache improves performance there are other factors that affect performance different instruction sets processor design applications (e.g. gaming) CPU Performance while factors discussed can affect performance, they are not perfect indicators e.g. CPU 1 may have a faster clock rate than CPU 2, but less cache how can we compare the performance of two processors, given these potentially conflicting specs? Answer: benchmarks Benchmark a program, or set of programs, designed to assess the performance of hardware different benchmarks exist CPU graphics groups exist that perform benchmarks and post their scores online e.g. CPU Benchmark by Passmark http://www.cpubenchmark.net/ Using Benchmarks – Example suppose you wish to compare these two processors Faster Clock, 4 cores Bigger Cache, 6 cores Using Benchmarks – Example hence, the bigger cache and more cores made up for slower clock speed 9633 Faster Clock, 4 cores 12105 Bigger Cache, 6 cores Benchmarks benchmarks provide a nice tool for comparing processor performance however, benchmarks are not a perfect tool, and should only be used as a general guideline depends on your application