GithubHelp home page GithubHelp logo

mercurialjd / computer-architecture Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 3.0 56.93 MB

This repo contains homework, labs and projects done during the course Computer Architecture (CS110) Spring 2020 at Shanghaitech University.

Shell 0.06% Makefile 0.13% C 88.07% C++ 2.03% Assembly 1.01% TeX 0.48% Python 1.22% Java 7.00%

computer-architecture's Introduction

Computer-Architecture

This repo contains homework, labs, and projects done during the course Computer Architecture (CS110) Spring 2020 at Shanghaitech University, in cooperation with Silverhza.

Detailed descriptions of homework, labs, and projects are provided within corresponding folders, in case you want to take a look at the requirements.

Note: You may get inspirations from my work but you should NEVER copy any part of my code or assignments.

Summaries

Brief summaries for each homework/lab/project are listed below, but you may want to refer to detailed descriptions provided within the corresponding folder.

Homework

  • HW1

    1. Logistics, Not included in this repo
  • HW2

    1. Vector Implementation in C
    2. Libraries
  • HW3

    1. Binary Search Tree in RISC-V
  • HW4

    1. Boolean Algebra
    2. Logic Gates
    3. FSM and SDS
  • HW5

    1. Solving Shortest Path Problem Using POSIX Threads
  • HW6

    1. Direct Mapped Cache
    2. Two-way Set Associative Cache
    3. Floating Point Numbers
  • HW7

    1. Vector Implementation in C++
  • HW8

    1. Virtual Memory
    2. Memory Access
    3. Meltdown

Labs

  • Lab 1

    1. Have a 64bit Linux Installed on Your Laptop
    2. Autolab
    3. Binary Alphabet
    4. 1000 $1 Bills
    5. Sizes
  • Lab 2

    1. Familiarizing Yourself with Venus
    2. Translating from C to RISC-V
    3. Factorial
  • Lab 3

    1. Bit Operations
    2. Catch Those bugs!
    3. Memory Management
  • Lab 4

    1. Implement "map" with RISC-V
    2. Implement "n choose k" with RISC-V
    3. Implement "firstlpos" with RISC-V
  • Lab 5

    1. Warm Up with Logisim
    2. Sub-Circuits
    3. Storing State
    4. FSMs to Digital Logic
  • Lab 6 (Extended from Lab5)

    1. Practice with Splitters
    2. Rotate Right
  • Lab 7

    1. Inefficiencies Everywhere
    2. Pipe That Line
  • Lab 8

    1. Cache Visualization
    2. Loop Ordering and Matrix Multiplication
    3. Cache Blocking and Matrix Transposition
  • Lab 9

    1. Familiarize Yourself with SIMD
    2. Reading SIMD Code
    3. Writing SIMD Code
    4. Loop Unrolling
    5. Switch on Compiler Optimization
  • Lab 10

    1. OpenMP Hello World
    2. Vector Addition
    3. Dot Product
  • Lab 11

    1. Longan Nano Hello World
    2. Draw Something in RISC-V!
  • Lab 12

    1. Environment Setup
    2. How Many Documents Does Each Word Appear In?
    3. Full Text Index Creation
    4. What's The Most Popular Word?
  • Lab 13

    1. Sanity Check
    2. Working with CAMERA
    3. Misses
    4. Fixing Our Faults

Projects

  • Project 1

    1. RISC-V Instruction Set Disassembler
    2. Complete RISC-V Instruction Set Emulator
  • Project 2

    1. Implement ALU and Regfile Using Logisim
    2. Implement CPU Using Logisim
  • Project 3

    1. Performance Programming
  • Project 4

    1. Longan Nano Pong Game/ Other Game

computer-architecture's People

Contributors

mercurialjd avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.