Skip to content

ipekoztas/CS224

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bilkent CS 224 Computer Organization Labs

MIPS instruction set and registers. Branching and procedure calls, addressing modes. Single cycle processor datapath. Single cycle control. Multicycle processor datapath. Multicycle control. Exceptions, interrupts. Pipelining. Pipelining hazards and stalls. Superscalar processor, out of order execution, Register renaming. IA-32 architecture. Memory system performance and hierarchy, caches. Memory system optimization, virtual memory. Memory mapped I/O.

Lab Contents

This repository contains the following lab materials for the MIPS Assembly Language course:

Lab1: Creating and Running Simple MIPS Assembly Language Programs

In this lab, you will learn how to write and execute simple MIPS assembly language programs. You will explore the basic instructions and concepts of MIPS programming, such as data manipulation, arithmetic operations, and control flow.

Lab2: MIPS Assembly Language Programming Using Subprograms

Lab2 focuses on subprograms in MIPS assembly language programming. You will learn how to write and call subroutines, use stack operations, and pass arguments to functions. This lab will provide you with a deeper understanding of modular programming in MIPS.

Lab3: MIPS Assembly Language Programming Recursion, Floating Point Numbers, Linked Lists

This lab delves into advanced topics in MIPS assembly language programming. You will explore recursion, working with floating-point numbers, and implementing linked lists. Through hands-on exercises, you will gain experience in solving complex problems using MIPS assembly language.

Lab4: Extending Single-Cycle MIPS Processor & Experiments on SystemVerilog and BASYS3 Board

Lab4 focuses on extending the single-cycle MIPS processor. You will learn about the components of the MIPS processor and how to modify them to add new functionalities. Additionally, you will experiment with SystemVerilog and the BASYS3 board to implement and test your modifications.

Lab5: Implementing the MIPS Processor with Pipelined Microarchitecture

In this lab, you will explore the concept of pipelined microarchitecture in MIPS processors. You will understand the benefits of pipelining and implement a pipelined version of the MIPS processor. Through this lab, you will gain insights into the performance improvements achieved through pipeline stages.

Lab6: Examining the Effect of Cache Parameters and Program Factors on Cache Hit Rate

Lab6 focuses on examining the impact of cache parameters and program factors on the cache hit rate. You will learn about cache memory organization and how various factors, such as cache size, associativity, and replacement policies, affect cache performance. You will also analyze different programs to understand their cache behavior.

Lab7: Programming PIC32 Microcontroller

In the final lab of this course, you will dive into programming the PIC32 microcontroller. You will learn how to write and run programs on the PIC32 platform, exploring its features and capabilities. This lab will provide you with practical experience in embedded systems programming using the PIC32 microcontroller.

Each lab folder contains the necessary code, documentation, and any additional resources required for completing the lab exercises. Feel free to explore the content, follow the provided instructions, and expand your knowledge of MIPS assembly language programming.

Please note that these lab materials are intended for educational purposes and should be used in conjunction with the course material and instructions provided by your instructor.

About

Bilkent CS224 Course Labs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published