530 likes | 756 Views
Hardware …and the stupidity of a computer. Hardware and software. In order to make a computer do something useful, we need both hardware and software Hardware : The physical parts of the computer (monitor, keyboard, mouse and whatever is ”inside the box”)
E N D
Hardware and software • In order to make a computer do something useful, we need both hardware and software • Hardware: The physical parts of the computer (monitor, keyboard, mouse and whatever is ”inside the box”) • Software: The computer programs (Word, Messenger, Counterstrike, Internet Explorer,…) we use for solving various tasks using the computer SWC1
The computer way • In order to understand hardware, you need to know a little about how a computer ”thinks” • A computer does not ”think”, it calculates! • How can you make pieces of metal calculate anything useful…? SWC1
On or Off • A computer calculates using metal and current • A computer can only ”sense” if a current is ”On” or ”Off” • How can we employ this for doing calculations? • A transistor is used for this exact purpose SWC1
Transistor • A transistor is a very simple electronic device • Two wires lead into the transistor, one wire leads out • The smart part: The transistor can perform a (sort of) calculation, based on whether or not there is a current in the two input wires • A so-called logical function SWC1
A smart (?) transistor • So, what calculation is that? • Not so impressive, actually Output Input SWC1
Logical, right…? • The calculation performed by the transistor is an example of a logical function • A logical funtion takes one or more input values, and pro-duces a single output value • BUT these values can only be either true or false • Also know as Boolean logic SWC1
Logical functions - example Output Two input values Four possible combinations SWC1
Logical functions - example Three input values Eight possible combinations SWC1
Logical functions - transistor If we put Off = false On = true SWC1
Zeroes and Ones • If we now exchange true with 1 (one), and false with 0 (zero), the previous table becomes: • This is how we usually denote ”On” and ”Off” • A numeral system using only 0 and 1 is also known as a binary numeral system SWC1
The binary numeral system • Computers use the binary numeral system (aka base-2), humans (mostly) use the decimal numeral system (aka base-10) • In the context of a base-10 system, 110 means: 1x100 + 1x10 + 0x1 = 110 • In the context of a base-2 system, 110 means: 1x4 + 1x2 + 0x1 = 6 • Alternatively: • 11010 = 1x102 + 1x101 + 0x100 = 110 • 1102 = 1x22 + 1x21 + 0x20 = 6 SWC1
The binary numeral system • Even if binary numbers appear a bit strange, the rules for calculation are the same as for base-10 • In base-10: 5 + 7 = 12 • In base-2: 101 + 111 = 1100 • Using a carry works just as before: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, and 1 to carry SWC1
Transistors revisited • The transistor we saw before was not able to do correct binary addition • However, if you are clever enough, you can combine transistors to implement other logical functions • Proper binary addition is just a special logical function 1+1 = ? SWC1
Transistors revisited • The original transistor worked like this: SWC1
Transistors revisited • If you combine two transistors, you can implement a different logical function A B Y SWC1
Transistors revisited • The combination before was not very useful, but we can of course just build more complex combinations, involving more transistors • Our goals is to be able to do binary addition • Binary addition is ”just” a special logical function, taking three input values and producing two output values • Can be considered to be two separate logical functions SWC1
Binary addition SWC1
This should do the trick… • Some clever person found out that the below combination implements proper binary addition SWC1
The first building block • We have now found a way to do proper addition, using metal and current • Implementing the other arithmetic operations is then not particularly complicated • This actually forms the foundation for the first electronic computers SWC1
ENIAC • Built around 1945 • Weighs about 30 tons • Based on vacuum tubes • Ca. 18.000 transistors • Used for calculating projectile trajectories • Was only operational about half of the time… SWC1
60 years later • Today we do not use individual transistors. A chip contains a (large) number of transistors • Most advanced chips contain a few billion transistors – within an area of perhaps 1 cm2 • What if car technology had progressed at the same rate: • Price: 1 $ • Gas consumption: 10.000 km/l • Max speed: 100.000 km/h SWC1
Moore’s law • ”Within two years, the number of transistors on a chip will double” SWC1
From 0 and 1 to Counterstrike • Even if we can now make metal and current do calcu-lations, there is still a very long way from 0’s and 1’s to Counterstrike… • A computer can handle vast amounts of data, at vast speeds • How fast? • How much data? SWC1
Bits and bytes • For a computer, the basic unit for data is an entity which is either 0 or 1 • This entity is called a bit • A computer performs operations on bits. • A more practical unit is a sequence of 8 bits; this is known as a byte. • Why 8 bits? Why not 7 or 9? Tradition… • We can for instance define a character set using 8 bits SWC1
Bits and bytes • How many distinct bytes are there? • One byte is 8 bits, each bit is either 0 or 1 • Combinations: 2x2x2x2x2x2x2x2 = 256 (28) • Each combination can now be interpreted as a specific symbol (letter, number, etc), for instance the letter ”H” • With 256 combinations, we have enough combinations for capital letters, small letters, numbers, etc.. • Example: ASCII codes SWC1
ACSII codes SWC1
Amounts of data • Amounts of data are usually measured in bytes (each byte being 8 bits) • For a computer, all kinds of data are just sequences of bits • It requires a program – written by humans – to interpret a bit sequence as e.g. music, video, a Word docu-ment, and so on • How many bytes does each type of data require? SWC1
Speed of calculation • When a computer calculates, it processes many sequences of bits simultaneously • All calculation units must be ”syn-cronized” for this to work properly • A ”conductor” manages when the calculation units should calculate • The speed of the conductor defines the speed of the computer SWC1
Speed of calculation • How many ”beats per second” (hertz) can the conductor manage? • Old computer (ENIAC); about 10.000 beats per second (10 kiloHertz) • Modern PC; about 3.000.000.000 beats per second (3 GigaHertz) • Also known as clock rate SWC1
3.000.000.000 Hertz • Three billion beats per second is quite fast… • For every beat, light only travels 10 centimeters • The physical size of the chip begins to matter • Unfortunately, energy consump-tion rises with the clock rate, at a quadratic rate SWC1
CPU • Where are calculations actually performed? • Calculations are done in a unit called the CPU (Central Processing Unit) • This unit is basically just one large chip, which looks fairly uninteresting… SWC1
The CPU and Primary Storage • The job of the CPU is to perform calculations on streams of bits, but who provides these bits? • Somebody has to feed bits to the CPU, and ”consume” the results produced by the CPU • For this task, the computer uses the Primary Storage SWC1
Primary Storage • A calculation involves the below steps • Input data is moved from primary storage to the CPU • The CPU performs the calculation • The result is moved from the CPU to primary storage • The primary storage is thus just a ”container” for a certain amount of data • The primary storage is ”passive”; no kind of data processing is performed here • Primary storage is usually of the type RAM (Random Access Memory) SWC1
Primary Storage • What is primary storage physically? • Just some chips, which contains a certain amount of data • A modern PC will typically have 2-8 Gigabytes of primary storage • What could the data represent? For instance data from an mp3-file, for which the CPU must perform some calculation to transform it into music SWC1
Primary vs. Secondary • Primary storage (RAM) has a large advantage: transfer of data between the CPU and RAM is quite fast (several Gigabytes pr. second) • Fast – but compared to what? • There are however also several drawbacks: • RAM is expensive (compared to what?) • When power is cut, all data in the primary storage will be lost • We thus also need secondary storage SWC1
Secondary storage • Who provides data to the primary storage? That data is provided by secondary storage • What is secondary storage? In principle the same as primary storage – a passive container for data - but • Is much cheaper than RAM (per byte) • Data is preserved when power is turned off • Presently, the most common form of secondary storage in a PC is a hard drive SWC1
Quite hard…(old school) • A (traditional) hard drive con-tains a number of magnetic platters, on which individual bits are stored by magnetising a specific area of the platter • A modern hard drive contains 500-2,000 Giga-bytes of data SWC1
Quite hard…(new school) • A SSD (Solid-State Drive) hard drive contains a number of memory chips, on which individual bits are stored in transistors (but retained when power is turned off) • A modern SSD contains 60-500 Giga-bytes of data SWC1
Hard drive vs. RAM SWC1
Harddisk vs. RAM • In other words: • RAM: • Very fast and stable, BUT • Expensive, does not preserve data without power • Hard drive: • Cheap, large capacity and preser-ves data without power, BUT • Rather slow, mechanical technology (except SSD) SWC1
Motherboard • A PC contains a board, on which the central components of the PC are mounted – this board is usually denoted the motherboard • The motherboard will (at least) contain • CPU • RAM (primary storage) • Auxiliary components • Sockets/slots for adding ”other components” SWC1
Other components • Examples of ”other components” are: • Graphics card • Sound card • Network card • TV card • In some PCs, these components are found directly on the motherboard, on others they are found as extra components, inserted into slots on the motherboard • Why…? SWC1
Other components • Even though a modern CPU is very fast, it may benefit from being relieved from certain tasks • Graphics card • Specially designed for effective graphics calculations • Takes computational load off CPU • May increase graphical performance by a factor 100 • Typical application: GAMES! SWC1
Data exchange by bus • All these units and components need to exchange data in order to do their job • How do they do that? • Data exchange is done using so-called data buses • A data bus transports data between two units SWC1
Data exchange by bus • A data bus sends data: • A number of times pr. second • A certain amount of data each time • Example: a 32-bit bus running at 100 Mhz • Carries 32 bit (4 bytes) each time • Sends 100 million times pr. second • A PC contains a number of buses running at different speeds SWC1