CS 2810: Computer Organization and Architecture
|Spring 2017||Topics||Reading (due Wednesday)|
|Jan 9–13||binary numbers, UNIX||The UNIX Time-Sharing System|
|Jan 17–20 (MLK Day)||processes, job control||1: Basic Computing Concepts|
|Jan 23–27||2s complement, masks||2: The Mechanics of Program Execution|
|Jan 30–Feb 3||registers, ARM assembly||3: Pipelined Execution|
|Feb 6–10||4: Superscalar Execution|
|Feb 13–17||5: The Intel Pentium and Pentium Pro|
|Feb 21–24 (President’s Day)||7: Pentium 4 vs G4e: Approaches and Design Philosophy|
|Feb 27–Mar 3||Midterm exam||8: Pentium 4 vs G4e: The Back End|
|Mar 6–10||The ARM Cortex A73—Artemis Unveiled|
|Mar 13–17 (Spring Break)|
|Mar 20–24||virtual memory||9: 64-Bit Computing and x86-64|
|Mar 27–31||floats||11: Understanding Caching and Performance|
|Apr 3–7||caching||12: Intel’s Pentium M, Core Duo, and Core 2 Duo|
|Apr 17–21||malloc, free, gc||Modern Microprocessors|
|Apr 24–26||Atari 2600|
Reading assignments are due on Wednesday of the week listed before class begins. No late work is accepted for reading outlines.
Changes to the schedule will be announced in class.
git and ssh
- How to set up ssh (public key, firewall)
- How to set up ssh forwarding using PuTTY (for Windows)
- git book
- git cheat sheet
- git for computer scientists
- longer cheat sheet
- How to set up git for a centralized repository
- 25 tips for intermediate git users
These screencasts are to help you get started with CodeGrinder and with writing ARM assembly language.
Help for individual assignment steps:
These screencasts are to help you review floats and 2’s complement:
- Two’s complement review (11:44)
- Float review (13:47)
- Converting numbers to floats (10:23)
- Python script to convert 9-bit floats into decimal fractions
- Recommended Raspberry Pi 3 kit (black case)
- Recommended Raspberry Pi 3 kit (red/white case)
- Recommended 32GB micro SD card
- MicroSD card benchmarks (use this to help pick a fast 32GB card)
Assembly language resources
- ARM assembly notes [html] [pdf]
- Assembler directives cheat sheet
- ARM quick reference
- Official instruction set quick reference
- ARM instruction set slides
Most of the projects for this class are managed through Canvas and CodeGrinder. The final assembly-language project is not in CodeGrinder:
Architecture readings and summaries
The assigned reading are crucial to success in this course. The numbered readings refer to chapters in the book Inside the Machine by Jon Stokes (available as an ebook).
The remaining readings are listed here:
- The UNIX Time-Sharing System
- The ARM Cortex A73—Artemis Unveiled
- Modern Microprocessors: A 90 Minute Guide
For each reading, you must write a brief outline summary and submit it using Canvas. For the chapters from Inside the Machine, you should write about a paragraph for each section heading or diagram, and you should structure it as an outline that follows the chapter structure.
- Be terse and concise. Avoid adjectives and other flowery language. You have very little space to summarize a lot of information.
- Summarize the technical content of the reading. Give equal weight to each section of what you read.
- Read each section, then restate its main ideas in your own words. Write using complete sentences.
- If you do not understand something, try searching for additional information on Wikipedia or other sources on the web (there is a useful tool called Google…) or come to my office hours. Note that this works best if you do the reading early.
Things to avoid:
- Do not write about your reaction to the reading. Do not waste space telling if you liked it or did not like it or if you found it confusing or you were surprised by it.
- Do not write much about the background material and context. Focus on the technical heart of each reading.
- Do not ask questions in your summary. The time for questions is before you write it.
- Do not use the first person. You are writing about the technical content of the reading assignment, not about yourself.
- Avoid the passive voice.
If you are unsure about any of these guidelines, talk to me, or take your summary to the writing center to get help from a writing tutor.
Last Updated 02/20/2017