today admin stuff lies, damn lies and computer architecture career development and eecs

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

Upload: lesley-wade

Post on 11-Jan-2016

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Today

• Admin stuff

• Lies, damn lies and computer architecture

• Career development and EECS

Page 2: 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 be the new due date for the Lab8 assignment.

Page 3: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

“Real” computer architecture

Lies, Damn Lies and Engin 100

Page 4: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

How does the e100 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.

Page 5: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 6: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

#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 1GB of) is 75-100ns away.

At 3GHz 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.

Page 7: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

#1 (continued)

• Also, instructions are very long if you have to specify memory addresses– Say you have 4GB 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.

Page 8: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Solution to #1

• Modern ISAs use registers.– We have a “scratch pad” of 32-64 values that

we can access very quickly (say .3ns 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, load, add, store.• If you don’t see reuse of values, you’re hosed

– Reuse is very very common.

Page 9: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 10: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

#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 are a lot of real numbers.– Solution– Just like the integers we only

represent some.• The normal solution is called floating point.

Page 11: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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 100s.

• 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

Page 12: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Micro architecture lies

• #1—Single bus as a bottleneck

• #2—One instruction runs and then another

• #3—Caches

Page 13: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Lie #1—Single bus as a bottleneck

Page 14: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Single-cycle datapath

Page 15: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

#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.

Page 16: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Pipelining is Natural!• Laundry Example

• Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold

• Washer takes 30 minutes

• Dryer takes 40 minutes

• “Folder” takes 20 minutes

A B C D

Page 17: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Sequential Laundry

• Sequential laundry takes 6 hours for 4 loads

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6 PM 7 8 9 10 11 Midnight

Task

Order

Time

Page 18: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Pipelined Laundry: Start work ASAP

• Pipelined laundry takes 3.5 hours for 4 loads

A

B

C

D

6 PM 7 8 9 10 11 Midnight

Task

Order

Time

30 40 40 40 40 20

Page 19: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Pipelining Lessons• Latency vs. Throughput• Question

– What is the latency in both cases ?– What is the throughput in both cases ?

Pipelining doesn’t help latency of single task, it helps

throughput of entire workload

A

B

C

D

30 40 40 40 40 20

Page 20: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Pipelining Lessons [contd…]• Question

– What is the fastest operation in the example ?– What is the slowest operation in the example

Pipeline rate limited by slowest pipeline stage

A

B

C

D

30 40 40 40 40 20

Page 21: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Pipelining Lessons [contd…]

A

B

C

D

30 40 40 40 40 20

Multiple tasks operating simultaneously using different resources

Page 22: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS
Page 23: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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%)

Page 24: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

So, ya want to be an Engineer

(In EECS, at Michigan)

Page 25: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 26: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 27: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

“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?

Page 28: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

ValuesThere 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 co-

workers, beer on Fridays

Page 29: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

Values inventory

• List 2-5 of each.

Page 30: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 31: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

List 3-5 interests

• And figure out if you want to do them for a living.

Page 32: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 33: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 34: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 35: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS
Page 36: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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!

Page 37: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 38: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 39: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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/PhD• Intel, AMD, ARM, SUN, IBM

– VLSI• Low-level design• Generally need MS, sometimes PhD.• Intel, AMD, ARM, SUN, IBM, LSI logic…

Page 40: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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.

Page 41: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 42: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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)

Page 43: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

EE

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

Page 44: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

CE-primary classes

• EECS 270 – Digital Logic

• EECS 370 – Computer Organization

• EECS 373 – Embedded Systems

• EECS 461 – Embedded Controls

• EECS 470 – Computer Architecture

Page 45: Today Admin stuff Lies, damn lies and computer architecture Career development and EECS

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

Page 46: Today Admin stuff Lies, damn lies and computer architecture Career development and 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)