Download presentation
Presentation is loading. Please wait.
1
CS/COE 0447 Jarrett Billingsley
Welcome! CS/COE 0447 Jarrett Billingsley
2
Administrivia CS447
3
jarrett@cs.pitt.edu pitt.edu/~jfb42 hi you can just call me Jarrett
4
Textbook (optional) Computer Organization & Design (Patterson & Hennessy) don't buy it if you don't want to 5th edition is stupid ("PostPC" crap) - I don't really use it at all - has some good stuff, has some overly-detailed stuff, has some bad stuff CS447
5
Grading there is no such thing as attendance labs: 10%
graded on effort/completion projects: 50% two in MIPS assembly language, one in Logisim lowest grade worth 10%; other two worth 20% exams: 40% lowest grade worth 16%, other 24% CS447
6
Expectations religious absences: contact me ASAP
students with disabilities: contact the DRS ASAP cheating: first time, fail the assignment second time, fail the course you can work with one partner on projects inform me ahead of time, and do not share code! jokes/comments about sex, gender, race, ethnicity, religion, etc. are inappropriate for class, s, office hours, chats etc. have you considered being nice? it's pretty neat :O CS447
7
Teaching philosophy I wanna help you understand!!!!!!
NO QUESTIONS ARE DUMB!!!!! NEVER BE AFRAID TO ASK THEM!!!! DON’T STRUGGLE IN SILENCE ON YOUR PROJECTS/LABS!!!!!!! what is a university setting good for today? focus, practice, and access to people who know stuff I trust you! I try to be accommodating re: extensions I don’t think most cheaters are being lazy but you’re an adult, and are responsible for your actions. CS447
8
I can tell when you cheat :^)
If you're confused, don't cheat, ask me for help don't wait until you get an F on the first exam hot tips for not cheating: don't cmon, don't don't post your code on github if your enrollment is contingent upon your GPA, DON'T CHEAT duh????????? CS447
9
Introduction and Context
CS447
10
Goals of this course ”447 tries to convince you that computers exist.” – Dr. Misurda 447 and 449 teach some similar topics from different angles: data representation memory organization how programs really run the call stack and calling conventions this course also establishes important fundamental skills: numerical bases and representation logical operations understanding logic diagrams CS447
11
More goals Java has poisoned your mind
ok it's fine for algorithms but it's too high level to explain computer learning assembly is like a car mechanic learning how an engine runs - a normal person doesn't need to know this stuff - but you're not normal, are you? CS447
12
Where does this material fit in with CS and EE?
the “hardware-software interface” where CS and EE overlap each layer affects/is affected by layers above and below ISA: Instruction Set Architecture Programmer's interface to the computer hardware logic design how we make rocks Do Stuff doing Lots of Stuff (aka a CPU) Computational Theory Algorithm Design Applications Operating Systems ISA Logic Design Electrical Design Physics more abstract more concrete CS447
13
Classes of computers: Embedded (Microcontrollers)
very cute 8/16-bit architectures are still common as little as 32 BYTES of memory! almost always run one, built-in program focus on ultra-low power, cost, and size becoming more common every day “Internet of Things” (IoT) now your fridge can crash, your TV can crash, your dishwasher can crash, and your lightbulbs can be a botnet what a stupid future CS447
14
Classes of computers: Consumer-grade (PC/Mobile)
1-8 cores, 32/64-bit architectures, MB-GB of memory, GB-TB of persistent storage multitasking operating systems similar capabilities, different design goals focus is real-time user interaction: productivity, media, browsing, games despite what the book says, I really don’t think we’re in a “Post-PC” era who’s gonna do all their work on a touchscreen using gimped sandboxed apps - NOT MEEEEEEEEEE CS447
15
Classes of computers: Servers and Mainframes
from high end desktops to much more powerful machines or groups of machines dozens of cores, 32GB+ of RAM, massive storage systems, very high-speed networking focus on real-time data delivery - either from storage or after processing redundancy and hot-swappability goal is 100% uptime power and cooling become huge concerns CS447
16
Classes of computers: Supercomputers
cluster of hundreds to thousands of CPUs focus on crunching ENORMOUS datasets non-interactively science, research, design, and simulation and now, stock trading and "cryptocurrencies"… - bitcoin is expected to consume more power than all of ireland by the end of the year - what a fucking waste of resources - cryptocurrencies are a scam btw CS447
17
General computer organization
Control Registers Datapath Processor Memory Persistent Storage Other Peripherals Other Computers Input/Output Devices Network CS447
18
Machine and Assembly Languages
CS447
19
compilers and VMs turn HLLs into machine language.
Lost in translation "high-level" programming languages like Java exist for us int doSomething() { this.x = 10; return blarf(); } ?????? computers can only follow instructions written in machine language. - computers don't have any idea what to do with Java, C, C++, Python etc. - HLL = high-level language compilers and VMs turn HLLs into machine language. CS447
20
What is machine language?
a computer has a fixed set of things it can do. machine language is a numerical encoding of those operations. you could write "programs" by listing the columns/rows of buttons to press in order: (2,2)(4,4)(3,1)(3,4) = CE * MS 6 - big difference between (non-programmable) calculators and computers: - calculators *can't run the instructions themselves* - you are acting as the "control unit" - a list of instructions for one might be garbage to the other! CS447
21
What is assembly assembly is a human-readable representation of machine code so it gives us direct control over the hardware… …but at the expense of so many useful things the CPU is no more "intelligent" than a hand which can listen to instructions and push buttons on a 4-function calculator. - no types and type-checking - no control structures (ifs, loops, functions) - no automatic memory management - no imports, namespacing, classes, objects… CS447
22
Is assembly language useful today?
“assembly is fast, so we should use it for everything!” no, it's not great for writing large programs it can be dangerous, like with the Therac-25 still useful for debugging (like in 449!) if you write a compiler, you have to generate it since that's what a compiler does good for extremely performance critical low-level code, like: device drivers some parts of operating systems High Performance Computing (simulations etc.) increasingly fewer parts of video games and… CS447
23
Embedded systems you would be amazed how many CPUs are in any given device many of these are programmed largely or entirely in assembly many people use C but they're wrong, - ofc as MCUs (microcontrollers) become more complex, they become programmable with HLLs - now we have MCUs that are more powerful than entire home PCs were in the 80s - but like - that just feels wrong, doesn't it? CS447
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.