Fall 2020 Reading Assignments for CPSC 323a ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Note: The on-line version of Matthew and Stones is not paginated. For those using it, I have annotated each reading with the chapter and section(s) (and in some cases subsection(s)) in which those pages are contained. Thus to reach the reading, click on the title of the chapter in the list of links, which inserts a list of sections immediately under the title. If no subsection is specified below, read the entire page. Otherwise just scroll down to the subsection and read to the end of it. Date Reading (Topic) ~~~~ ~~~~~~~~~~~~~~~ 08/31 HP6 Appendix J, pp. 2- 3 Ripple-carry adders HP6 Appendix J, pp. 7- 8 Signed numbers HP6 Appendix J: pp. 37- 41 Carry-lookahead adders MS, pp. 377-392 make [Chapter 9, Problems of Multiple Source Files] [Chapter 9, The make Command and Makefiles] 09/02 MS, pp. 94- 96 Linux file structure [Chapter 3, Linux File Structure] MS, pp. 106-108 stat() & lstat() [Chapter 3, Low-Level File Access: Other System Calls ...] MS, pp. 109-120 Standard I/O Library [Chapter 3, The Standard I/O Library] [Chapter 3, Formatted Input and Output] MS, pp. 120-122 File & directory maintenance [Chapter 3, File and Directory Maintenance] MS, pp. 122-126 Scanning directories [Chapter 3, Scanning Directories] MS, pp. 127-128 Errors [Chapter 3, Errors] MS, pp. 392-406 Revision control systems [optional] [Chapter 9, Source Code Control] MS, pp. 430-445 Debugging and gdb [optional] [Chapter 10, General Debugging Techniques] [Chapter 10, Debugging with gdb] 09/07 HP6 Appendix J: pp. 13- 16 Floats HP6 Appendix J: pp. 62- 65 Pitfalls & history 09/16 Welch's paper (links below and on the class web site) In color from IEEE (only within the yale.edu domain): http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1659158 In black and white from Duke: http://www.cs.duke.edu/courses/spring03/cps296.5/papers/welch_1984_technique_for.pdf 09/21 LZW handout (handout & available on class web site) 09/30 Decimal Version of Faux CRC http://zoo.cs.yale.edu/classes/cs323/doc/decimal-crc.txt HP6 Chapter 1: pp. 1- 10 Overview HP6 Appendix B: pp. 1- 15 Memory hierarchy HP6 Chapter 2: pp. 77- 84 Memory hierarchy (optional) HP6 Appendix B: pp. 22- 23 Compulsory/capacity/conflict misses 10/05 HP6 Appendix D: pp. 1- 5 Introduction to disks (optional) HP6 Appendix D: pp. 6- 10 RAID HP6 Chapter 2: pp. 92- 94 Flash memory HP6 Chapter 1: pp. 18- 23 Trends in technology (optional) HP6 Chapter 1: pp. 29- 36 Trends in cost (optional) HP6 Chapter 2: pp. 84- 89 SRAM & DRAM technology (optional) 10/07 HP6 Appendix C: pp. 2- 3 Pipelining HP6 Chapter 1: pp. 10- 11 Parallel architectures HP6 Chapter 1: pp. 49- 51 Amdahl's Law HP6 Chapter 4: pp. 283-293 Vector machines HP6 Chapter 4: pp. 293-304 Vector machines (optional) HP6 Chapter 4: pp. 304-307 SIMD 10/14 HP6 Chapter 4: pp. 310-313 GPUs HP6 Chapter 5: pp. 367-377 MIMD HP6 Appendix F: pp. 29- 44 Networks (optional) 10/21 HP6 Appendix B: pp. 40- 49 Virtual memory 10/28 HP6 Chapter 5: pp. 412-417 Hardware instructions for synchronization 11/02 MS, pp. 109-120 Standard I/O Library [Chapter 3, The Standard I/O Library] [Chapter 3, Formatted Input and Output] MS, pp. 96-108 Systems-level I/O [Chapter 3, System Calls and Device Drivers] [Chapter 3, Library Functions] [Chapter 3, Low-Level File Access] 11/04 MS, pp. 461-464 Processes [Chapter 11, What Is a Process] [Chapter 11, Process Structure: Introduction] [Chapter 11, Process Structure: The Process Table] [Chapter 11, Process Structure: Viewing Processes] MS, pp. 468-480 exec() and fork() [Chapter 11, Starting New Processes] MS, pp. 481-484 signals [Chapter 11, Signals: Introduction] MS, pp. 531-540 pipes and dup() [Chapter 13, The Pipe Call] [Chapter 13, Parent and Child Processes] Example of pipes (handout & available on class web site) 11/09 MS, pp. 23- 30 bash (variables and quoting) [Chapter 2, The Shell as a Programming Language] [Chapter 2, Shell Syntax: Variables] MS, pp. 43- 45 bash (&& and ||) [Chapter 2, Shell Syntax: The AND List] [Chapter 2, Shell Syntax: The OR List] MS, pp. 73- 74 bash (here documents) [Chapter 2, Shell Syntax: Here Documents] MS, pp. 144-148 Environment variables in C [Chapter 4, Environment Variables] MS, pp. 156-157 Temporary files [Chapter 4, Temporary Files] 11/11 HP6 Chapter 1: pp. 11- 17 Overview of ISA HP6 Appendix A: pp. 1- 20 Instruction Set Architecture HP6 Appendix C: pp. 2- 30 Pipelining instructions & hazards 11/16 HP6 Chapter 3: pp. 168-176 Pipelining instructions & hazards HP6 Chapter 3: pp. 182-188 Branch prediction Texts ~~~~~ HP6: John L. Hennessy and David A. Patterson, "Computer Architecture: A Quantitative Approach", 6th edition, Morgan Kaufman, 2017 MS: Neil Matthew and Richard Stones, "Beginning Linux Programming", 4th edition, Wrox, 2007 Last modified 10/25/20