Resources for Computer Architectures
CSE 564: Computer Architecture, Oakland University
Table of Contents
- Textbook
- History of Computers and Architectures
- Paper Reading List
- Trace Cache and Dynamic CFG
- Linux and C Programming
- Development machine for the class
- PAPI Programming and Hardware Counter
- Assembly Guide and Instruction Set Manual
- RISC-V ISA, Chisel, and Rocket Chip Generator from UCB
- Introduction to Parallel and High Performance Computing
Textbook
- Required textbook: Computer Architecture A Quantitative Approach, 5th Edition, John L. Hennessy and David A. Patterson, bible of computer architecture: Amazon, Publisher website
- Reference computer architecture book for undergraduate(sister book for the above): Computer Organization and Design, Fifth Edition: The Hardware/Software Interface: Amazon, Publisher website
History of Computers and Architectures
- UCB CS152 Fall 2015 Lecture 01 notes
- Architecture of the IBM System/360
- Hardwire vs Microcode for CPU Implementation: Intro to Microcode by N.S. Matloff, revised by D. Franklin, 2004, Hardwire vs Microcoded vs Hardwired Control by Philip Koopman 1987
Paper Reading List
Trace Cache and Dynamic Control-flow Graph
Linux and C Programming
- Linux/Unix Introduction
- VI Command
- C Programming Tutorial
- Compiler, Assembler, Linker and Loader: A Brief Story
- GNU Compiler Collection (gcc) online manual
- Intel Compiler Manual
Development machine for the class
- orion.ec.oakland.edu, access through ssh and VPN (from home)
Performance Application Programming Interface(PAPI) Programming and Hardware Counter
- Short slide introduction and Longer slide for overview for PAPI
- PAPI Official website
- A list of derived metrics that can be calcualted using PAPI events
- PAPI API Reference Manual
- PAPI Getting Started which has an example showing the use of PAPI_flops API.
- One simple PAPI example
- RAPL access to PAPI, Reading RAPL energy measurements from Linux
- Ubuntu has a papi-examples packages that included lots of examples of advanced use PAPI, the files are stored in /usr/share/doc/papi-examples
- papi-tools provides utilities command for use with PAPI: papi_mem_info to list the system memory info. papi_avail to list the events available on the system.
Assembly Guide and Instruction Set Manual
- x86 Assembly Guide, short tutorial of X86 assembly, X86 SSE
- Official Intel X86 ISA manual
- RISC-V
- MIPS from wikipedia
- slides for atomic instructions
RISC-V ISA, Chisel, and Rocket Chip Generator from UCB
- RISC-V offical, RISC-V Tutorial at HPCA 2015 which include RISC-V, Chisel, Rocket, and RISC-V foundation.
- Design of RISC-V ISA by Andrew Waterman (Ph.D. Thesis)
- RISC-V opcodes, you should read the spec if you really need to know the instruction encoding part.
- Chisel: Constructing Hardware in a Scala Embedded Language. The Documentation section contains lots of materials for learning Chipsel and Getting Started is the one you should use for getting started. Slides for Intro to Chisel and Advanced Chisel in UCB CS250 Spring 2016 by John Wawrzynek and Jonathan Bachrach
- Rocket Chip Generator, Technical Report for Rocket Chip Generator
Introduction to Parallel and High Performance Computing
- top500
- HPCWire Online Magazine
- Major HPC/Supercomputing(SC) Conference: SC (SC in US), ISC (SC in Europe)
- Moore's Law
- Introduction to Parallel Computing from LLNL