It is "A Golden Age for Computer Architecture", and also "A Golden Age of Hardware Description Languages". The demand for a tremendous amount of computation necessitates the development of purpose-built, specialized hardware (also known as accelerators), and consequently, productive RTL design tools (such as hardware description languages or HDLs) for these accelerators.
In this course, you will learn an opinionated RTL design process, specifically using "HazardFlow HDL", developed at the KAIST Concurrency and Parallelism Laboratory. HazardFlow HDL facilitates modular RTL design of pipelines even in the presence of hazards. Unlike existing high-level HDL and high-level synthesis tools for similar purposes, HazardFlow HDL aims to provide predictable performance, power, and area (PPA) transparently to designers. By understanding and developing designs in HazardFlow HDL, students are expected to build a modern and effective perspective on RTL designs.
It is strongly recommended that students have completed courses in:
A solid foundation in these areas is crucial for success in this course.
It is strongly recommended that students can speak the Rust programming language.
Ensure you are proficient with the following development tools:
Git: Essential for downloading homework templates and managing your development process. If you're new to Git, please complete this tutorial.
Follow these steps to set up your repository:
$ git clone --origin upstream git@github.com:kaist-cp/cs492-uarch.git
$ cd cs492-uarch
$ git remote -v
upstream git@github.com:kaist-cp/cs492-uarch.git (fetch)
upstream git@github.com:kaist-cp/cs492-uarch.git (push)
upstream/main
:
$ git fetch upstream
$ git merge upstream/main
For managing your development on a Git server, create a private repository:
$ git remote add origin git@github.com:<github-id>/cs492-uarch.git
$ git remote -v
origin git@github.com:<github-id>/cs492-uarch.git (fetch)
origin git@github.com:<github-id>/cs492-uarch.git (push)
upstream git@github.com:kaist-cp/cs492-uarch.git (fetch)
upstream git@github.com:kaist-cp/cs492-uarch.git (push)
$ git push -u origin main
Rust: The HDL we will use is embedded in Rust.
Verilog: The Rust-embedded HDL we will use is compiled into Verilog. You need to be able to read Verilog code when debugging (e.g., analyzing waveforms).
ChatGPT or other Large Language Models (LLMs) (optional): Useful for completing your homework.
Visual Studio Code (optional): Recommended for developing your homework, although you may use any editor of your preference.
Single Sign On (SSO): Use the following SSO credentials to access gg and the development server:
IMPORTANT: READ CAREFULLY. THIS IS A SERIOUS MATTER.
Sign the KAIST CS Honor Code for this semester. Failure to do so may lead to expulsion from the course.
We will employ sophisticated tools to detect code plagiarism.
Dates & Times: Dec 16th (Mon), 13:00-15:00
Location: (the same as usual)
Physical attendance is required. If necessary, online participation via Zoom will be accommodated.
You are expected to bring your own laptop. Laptops can also be borrowed from the School of Computing Administration Team.
We will use Safe Exam Browser to prevent cheatings.
A quiz must be completed on the Course Management website for each session (if any). Quizzes should be completed by the end of the day.
Failing to attend a significant number of sessions will result in an automatic grade of F.
kaist-cp-class
account for login.@kaist.ac.kr
email address.Course-related announcements and information will be posted on the course website and the GitHub issue tracker. It is expected that you read all announcements within 24 hours of their posting. Watching the repository is highly recommended for automatic email notifications of new announcements.
Questions about course materials and assignments should be posted in the course repository's issue tracker.
Email inquiries should be reserved for confidential or personal matters. Questions not adhering to this guideline (e.g., course material queries via email) will not be addressed.
Office hours will not cover new questions. Check the issue tracker for similar questions before attending. If your question is not listed, post it as a new issue for discussion. Office hour discussions will focus on unresolved issues.
Emails to the instructor or head TA should start with "CS492(uarch):" in the subject line, followed by a brief description. Include your name and student number in the email. Emails lacking this information (e.g., those without a student number) will not receive a response.
If attending remotely via Zoom (https://kaist.zoom.us/my/jeehoon.kang), set your Zoom name to <your student number> <your name>
(e.g., 20071163 강지훈
).
Instructions for changing your Zoom name can be found here.
The course is conducted in English. However, you may ask questions in Korean, which will be translated into English.
1830eaed90e5986c75320daaf131bd3730b8575e866c4e92935a690e7c2a0718