Today Admin stuff Lies damn lies and computer

  • Slides: 46
Download presentation
Today • Admin stuff • Lies, damn lies and computer architecture • Career development

Today • Admin stuff • Lies, damn lies and computer architecture • Career development and EECS

Admin stuff • Dec. 13: Demonstrations in CSE building (main hall) – This will

Admin stuff • Dec. 13: Demonstrations in CSE building (main hall) – This will be the new due date for the Lab 8 assignment.

“Real” computer architecture Lies, Damn Lies and Engin 100

“Real” computer architecture Lies, Damn Lies and Engin 100

How does the e 100 vary from a real architecture? • To have this

How does the e 100 vary from a real architecture? • To have this discussion we need to add some vocabulary. – Instruction Set Architecture (ISA) • This is the assembly instructions AND anything else you need to program the chip. – Micro Architecture • This is how the processor is implemented. – In our case we have a single bus, lots of devices connected to it, and we walk the control logic in a certain way.

ISA lies • #1– Using memory for “ALU” instructions is a good idea. •

ISA lies • #1– Using memory for “ALU” instructions is a good idea. • #2 -- You don’t need constants (immediates) • #3 – Integers are enough • #4 – A 19 instruction ISA is reasonable

#1– Using memory for “ALU” instructions is a good idea. • We can’t effectively

#1– Using memory for “ALU” instructions is a good idea. • We can’t effectively use instructions that do: • MEM[A]=MEM[B]+MEM[C] – The problem is that memory is way too slow. • DRAM (that thing you have 1 GB of) is 75 -100 ns away. At 3 GHz that’s something like 250 cycles. – We do have a technique for speeding it up (caches), but it only helps so much. • Also memory is hard to “disambiguate” – For certain instructions I can’t know what memory address it will access. – Memory-to-Memory instructions were common, and some think will be again.

#1 (continued) • Also, instructions are very long if you have to specify memory

#1 (continued) • Also, instructions are very long if you have to specify memory addresses – Say you have 4 GB of memory. That’s 232 memory locations, or 32 bits to specify each argument. – It turns out size does matter • bigger instructions take more time to fetch (as you saw in the Verilog) • Caches (we’ll get there) function worse with bigger instruction sizes.

Solution to #1 • Modern ISAs use registers. – We have a “scratch pad”

Solution to #1 • Modern ISAs use registers. – We have a “scratch pad” of 32 -64 values that we can access very quickly (say. 3 ns or 1 cycle) – All ALU instructions use registers. • Speed solution: much faster • Instruction length solution 5 -6 bits instead of 32. – Problem is you have to load and store registers. • So adding might be load, add, store. • If you don’t see reuse of values, you’re hosed – Reuse is very common.

Lie #2—You don’t need Constants • Our instructions never specify “immediate” values. • What

Lie #2—You don’t need Constants • Our instructions never specify “immediate” values. • What I mean is you can’t say mem[A]=mem[A]+1, instead you say mem[A]=mem[A]+mem[B] and have mem[B] equal one. – If memory is hard to get to, that sucks. – So we have instructions that include constants. • This makes instructions more complex, but it’s worth it.

#3 – Integers are enough • It turns out that lots and lots of

#3 – Integers are enough • It turns out that lots and lots of real applications require “real” numbers – Excel, physics simulations, sin waves for sound, etc. • You can get around it but… • Problem– There a lot of real numbers. – Solution– Just like the integers we only represent some. • The normal solution is called floating point.

Lie #4 – A 19 instruction ISA is reasonable • Most real instruction sets

Lie #4 – A 19 instruction ISA is reasonable • Most real instruction sets are much larger. – Number of instructions can be hard to quantify or be misleading, but you’d expect to see at least 50, and likely 100 s. • This can be due to immediates (need add and “addi”) as well as other formats (fadd). • Also there tend to be a lot of branch variants • Load/Stores and their variants (byte load, 2 byte load, 4 byte load, etc. ) • Floating points have important instructions – sin, cos

Micro architecture lies • #1—Single bus as a bottleneck • #2—One instruction runs and

Micro architecture lies • #1—Single bus as a bottleneck • #2—One instruction runs and then another • #3—Caches

Lie #1—Single bus as a bottleneck

Lie #1—Single bus as a bottleneck

Single-cycle datapath

Single-cycle datapath

#2—One instruction runs and then another • Almost every processor today is pipelined. –

#2—One instruction runs and then another • Almost every processor today is pipelined. – This means that the processor is working on part of different instructions at the same time.

Pipelining is Natural! • Laundry Example • Ann, Brian, Cathy, Dave A B each

Pipelining is Natural! • Laundry Example • Ann, Brian, Cathy, Dave A B each have one load of clothes to wash, dry, and fold • Washer takes 30 minutes • Dryer takes 40 minutes • “Folder” takes 20 minutes C D

Sequential Laundry 6 PM 7 8 9 10 11 Midnight Time 30 40 20

Sequential Laundry 6 PM 7 8 9 10 11 Midnight Time 30 40 20 T a s k O r d e r A B C D • Sequential laundry takes 6 hours for 4 loads

Pipelined Laundry: Start work ASAP 6 PM 7 8 9 10 11 Midnight Time

Pipelined Laundry: Start work ASAP 6 PM 7 8 9 10 11 Midnight Time 30 40 T a s k O r d e r 40 40 40 20 A B C D • Pipelined laundry takes 3. 5 hours for 4 loads

Pipelining Lessons • Latency vs. Throughput • Question – What is the latency in

Pipelining Lessons • Latency vs. Throughput • Question – What is the latency in both cases ? – What is the throughput in both cases ? 30 40 40 20 A B C D Pipelining doesn’t help latency of single task, it helps throughput of entire workload

Pipelining Lessons [contd…] • Question – What is the fastest operation in the example

Pipelining Lessons [contd…] • Question – What is the fastest operation in the example ? – What is the slowest operation in the example 30 40 40 20 A B C D Pipeline rate limited by slowest pipeline stage

Pipelining Lessons [contd…] 30 40 40 20 A B C D Multiple tasks operating

Pipelining Lessons [contd…] 30 40 40 20 A B C D Multiple tasks operating simultaneously using different resources

Lie #3– Caches • As noted, memory is really slow. – A cache is

Lie #3– Caches • As noted, memory is really slow. – A cache is a (very) small bit of fast memory • It keeps the most recently accessed data in the cache. • A VERY small cache (32 bytes) gets a good “hit rate” (say 30 -50%)

So, ya want to be an Engineer (In EECS, at Michigan)

So, ya want to be an Engineer (In EECS, at Michigan)

Three Topics • Career development – (Fairly generic) • EECS – Things you can

Three Topics • Career development – (Fairly generic) • EECS – Things you can do as an EECS major in the real world. • Focus on CE and CS – Classes you might want to take. • What they are, where they get you.

Career Development: “To thine own self be true” • As with any activity that

Career Development: “To thine own self be true” • As with any activity that involves yourself, the very first step is self-examination. – What do you want? – What’s important to you? • You’d think if there was any topic you’d be an expert on, it would be yourself. – But we manage to have illusions of our self – Or we manage to not think about our self in a real way.

“To thine own self be true” So the first step is an inventory. .

“To thine own self be true” So the first step is an inventory. . • Skills, Values, Interests • Skills – What skills do you have? • List three to six that you think are your greatest skills. – What skills do you wish to develop? • How well-suited do you think you are to those skills?

Values There are two kinds of values here • What’s called “Personal Values” –

Values There are two kinds of values here • What’s called “Personal Values” – Things that are important to you as far as the impact of your work on the world • Not be involved in an industry you think is “bad” – Military for some, food banks for others, government for others. • Must be actively making the world a better place – This gets us back to ethics • And “Professional Values” – What you value in a workplace. • Flexible hours, working for an engineer, child care, private office, lots of people interaction. • Pure-engineering promotion track, good people as coworkers, beer on Fridays

Values inventory • List 2 -5 of each.

Values inventory • List 2 -5 of each.

Interests • What interests you? – And importantly, is it something you want to

Interests • What interests you? – And importantly, is it something you want to do for a living? • Some people here are really into robotics – They want to be involved in robotics, but don’t care how • ME, EE, CE doesn’t matter, they just like robotics • Two stories – One person wanted to do golf for a living • Work at a golf company as an engineer, didn’t care what she was doing. – One more… • For each interest, figure out if you want to mix it with work. – One co-worker enjoys art more than her job. – But has no interest in having anyone control her art.

List 3 -5 interests • And figure out if you want to do them

List 3 -5 interests • And figure out if you want to do them for a living.

Career Development: Skills, Values, Interests • So we’ve made an inventory. – It’s wrong

Career Development: Skills, Values, Interests • So we’ve made an inventory. – It’s wrong • You’ve left off stuff you should have included • You don’t know yourself well enough to have discovered all your skills, values and interests. – You’re young – You’re human – You work with what you have • But keep in mind part of your job is to actively seek things to add (or subtract) from these lists

So what does this inventory tell us about what job to do? • Not

So what does this inventory tell us about what job to do? • Not much frankly. – You don’t know what jobs are out there and how they match your inventory • “young”, “human” – But identifying your skills, values and interests gives you a good way to evaluate job possibilities and offers • Rather than the quality of the salesman/teacher • But it can provide outstanding guidance.

A quick example • A friend of mine: – Skills: • Martial artist/fitness freak.

A quick example • A friend of mine: – Skills: • Martial artist/fitness freak. – Had (long) shot at TKD Olympic team • Artist (all forms), tends to draw/sculpt animals • Concrete skills (foundation construction worker) • Wildlife interest (degree in forest management) – Values • Personal: stay in same town (take care of sick father-in-law), ? ? • Professional: Outdoor work, working with people, be creative, – Interests • Art, Forestry/wild animals

Next steps? • Develop and Explore – The University has a LOT of way

Next steps? • Develop and Explore – The University has a LOT of way to help you explore. • They tend to be underused. – Co-ops/Internships • These are critical • Even if they put off graduation, they are worth it – You get paid, rather than paying • Where will you be in 5 years? – Clubs and activities • Leadership, people skills, technical skills • RA, VP of service APO, co-founded ultimate team, martial art’s club, gaming, improv. • In college you should get as much out of everything else as you do your classes!

http: //www. eecs. umich. edu/eecs/undergraduate/employment. html

http: //www. eecs. umich. edu/eecs/undergraduate/employment. html

What is EECS? • Computer Science – Programming, UI design, math, group management •

What is EECS? • Computer Science – Programming, UI design, math, group management • Computer Engineering – Design of computers and low-level uses of computers • Electrical Engineering – Anything involving electrons

What does a CE do for a living? (1/3) • It varies a LOT

What does a CE do for a living? (1/3) • It varies a LOT – Computer Architecture • High-level design of computers • Usually start in validation engineering unless have MS/Ph. D • Intel, AMD, ARM, SUN, IBM – VLSI • Low-level design • Generally need MS, sometimes Ph. D. • Intel, AMD, ARM, SUN, IBM, LSI logic…

What does a CE do for a living? (2/3) • Embedded systems – Cars,

What does a CE do for a living? (2/3) • Embedded systems – Cars, cell-phones, etc. – Hardware/software • May have strong control/DSP aspects (lots of math) – Use the parts made by the Comp. Archs and VLSI folks to actually do something – Car manufacturers/suppliers, Aerospace industry, cell phone manufacturers, toy manufactures, etc.

What does a CE do for a living? (3/3) • System’s software programmer –

What does a CE do for a living? (3/3) • System’s software programmer – Compliers, OS-writers, etc. – Things where you have to know something about the hardware in a detailed way to write the software – SUN, Microsoft, Red hat, etc. • Other – Biggest area – NY banks, traders, federal government (CIA, State department), non-technical start-ups – Lots of people don’t use any of the specific skills we teach them

CS? • List is longer, but I know it less well… – Program •

CS? • List is longer, but I know it less well… – Program • Lots of different applications. • Could be your “golf” – UI design – Teamwork/leadership • More often than any field I know, a CS group will design the whole product. – This requires great teamwork and leadership – (Or great people sometimes)

EE • Know even less well – Control systems engineer – Floor engineer –

EE • Know even less well – Control systems engineer – Floor engineer – Circuit designer – Analog part of a digital team – etc.

CE-primary classes • • • EECS 270 – Digital Logic EECS 370 – Computer

CE-primary classes • • • EECS 270 – Digital Logic EECS 370 – Computer Organization EECS 373 – Embedded Systems EECS 461 – Embedded Controls EECS 470 – Computer Architecture

CE/CS classes • EECS 203 – Discrete Math • EECS 280 – Programming •

CE/CS classes • EECS 203 – Discrete Math • EECS 280 – Programming • EECS 281 – Data structures and Algorithms • EECS 478 – CAD tool algorithms • EECS 482 – Operating systems • EECS 483 – Compliers • EECS 489 – Networks

CE/EE classes • • • EECS 215 Circuits EECS 216 Signals and Systems EECS

CE/EE classes • • • EECS 215 Circuits EECS 216 Signals and Systems EECS 312 Digital Circuits EECS 427 VLSI EECS 451 DSP (theory) EECS 452 DSP (lab)