Code Monkey home page Code Monkey logo

papastam / hy425 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 31.81 MB

Computer Architecture Assignments (HY425) [winter semester of 2023].

Home Page: https://www.csd.uoc.gr/~hy425

Python 14.61% Shell 0.18% C 7.03% C++ 76.90% Makefile 0.07% CMake 0.24% Starlark 0.05% HTML 0.26% SCSS 0.01% M4 0.08% SWIG 0.01% sed 0.01% BASIC 0.01% SuperCollider 0.02% Scala 0.01% Assembly 0.26% Awk 0.01% Hack 0.25% Fortran 0.03% Forth 0.01%
benchmark branch-predictor computer-architecture cpi gem5 loop-unrolling tomasulo-algorithm

hy425's Introduction

Computer Architecture (HY425)

During the course of Computer Architecture, we were assigned a total of 4 assignments, 2 of them were theoretical and the other 2 were programming assignments.

For the 2 programming assignments, we were used the tool gem5 to simulate a computer system and make serveral modifications to it. After the modifications, we had to run some benchmarks and compare the results.

Assignment 1

The first assignment requres us to make some comparisons between some given benchmarks of different processors. Also, we needed to calculate improvement in the performance given some optimiaztions on the processors. Finally, we had to calculate the MTTF of a system given some parameters.

The report of this assignment can be found here.

Assignment 2

The second assignment provides us with a loop in assembly code and the latencies of each instrutcion. We were requested to make multiple modifications to the code like reordering the instructions, Hand-Unrolling the given loop, register renaming and calculate the CPI of each case in order to find the best one. Given a architecture using Resrvation Stations, we had to calculate the number of cycles needed to execute the loop.

The report of this assignment can be found here.

Assignment 3 (Programming Assignment 1)

For the first programming assignment, we were given a system with a single core and we had to implement a GAg and a PAg branch predictor. After implementing the predictors and running some benchmarks for debugging purposes, we had to run benchmarks and compare the results of the system with the predictors and the system without them.

The files GAgPredictor.cc and PAgPredictor.cc can be found in the prog_assignment1/gem5/src/cpu/pred directory.

The output of the benchmarks can be found in the prog_assignment1/turnin directory.

The report of this assignment can be found here.

Assignment 4 (Programming Assignment 2)

For the second programming assignment, we were given a system with a single core and we had to execute benchmarks while changing the following parameters about the system:

  • LSQ_ENTRIES: The number of entries in the Load/Store Queue
  • ROB_ENTRIES: The number of entries in the Reorder Buffer
  • FUINT_NUM: The number of simple Int Functional Units (ADD etc.)
  • FUCOM_NUM: The number of complex Int Functional Units (MULT, DIV etc.)
  • FUFP_NUM: The number of Floating Point Functional Units (FADD, FMULT etc.)
  • FULS_NUM: The number of Load/Store Functional Units

After running the benchmarks, we had to compare the results and find the best combination of the parameters.

All the benchmark statistics can be found in the prog_assignment2/gem5/hy425 directory (I executed 3 runs of benchmarks, each contained in their own folder).

The report of this assignment can be found here.

hy425's People

Contributors

papastam avatar

Watchers

 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.