/Rutgers-CS211

Rutgers Computer Architecture(CS211) Assignment

Primary LanguageC

Rutgers-CS211

Rutgers Computer Architecture(CS211) F17

Course Description

This course covers materials to illustrate how a high level program is converted to binary and is eventually executed by the hardware. We will cover a brief introduction to programming in C, how data and control represented in C is converted to binary and how the binary code is executed by the processor. This will involve programming in C, understanding and debugging X86 assembly, interfaces between the hardware and the software components, organization of hardware and how the various components interact.

-Von Neumann architecture, hardware trends, performance, energy, cost metrics -Introduction to C programming -Assembly language techniques and instruction-set design -Boolean algebra, digital logic -The memory hierarchy -Performance -Input/Output concepts

This course includes five course related Assignments as homeworks.

Pa1: This assignment is designed to give you some initial experience with programming in C, as well as compiling, linking, running, and debugging. Your task is to write 9 small C programs. Each of them will test a portion of your knowledge about C programming. They are discussed below. Your program must follow the input-output guidelines listed in each section exactly, with no additional or missing output.

Pa2: This assignment is designed to provide you some experience writing programs with the C programming language. You will write a C program that implements simple “one-shot” machine learning algorithm for predicting house prices in your area. There is significant hype and excitement around artificial intelligence (AI) and machine learning. CS 211 students will get a glimpse of AI/ML by implementing a simple machine learning algorithm to predict house prices based on historical data.

Pa3: The purpose of Programming Assignment 3 (PA3) is for you to become familiar with x86-IA32 Instruction Set Architecture (ISA). The nefarious Dr. Evil has planted a slew of ”binary bombs” on our machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on stdin. If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing ”BOOM!!!” and then terminating. The bomb is defused when every phase has been defused.

Pa4: The goal of this assignment is to provide you a better understanding of caches. You are required to write a cache simulator using the C programming language. The programs have to run on iLab machines and should be tested with the autograder. We are providing real program memory traces as input to your cache simulator. The format and structure of the memory traces are described in the Instruction file.

Pa5: This assignment is designed to give you some experience in C programming while also increas- ing your understanding of circuits. You will be writing a C program to simulate the output of combinational circuits.

Good luck!