Skip to content

The simulation involves detailed processor packages that describe different memory architectures, instruction set architectures, and data paths. These packages dictate how instructions are fetched, decoded, executed, and how data flows through the system.

Notifications You must be signed in to change notification settings

AliMohameddddd/HarvardProcessorSimulation-

Repository files navigation

Processor Simulation Project

Introduction

This project is aimed at simulating a fictional processor architecture using Java. You will explore different architectural paradigms and implement a processor package based on the selected design specifications. This includes simulating the Von Neumann architecture among others, with a focus on understanding the execution of instruction lists, manipulation of data values, and control of program flow.

Project Overview

The simulation involves detailed processor packages that describe different memory architectures, instruction set architectures, and data paths. These packages dictate how instructions are fetched, decoded, executed, and how data flows through the system.

Motivation

This project is designed to provide practical exposure to:

  • Processor Architecture Design: Understanding the intricacies of different architectural models.
  • Instruction Set Design: Crafting and utilizing various instruction formats for computational tasks.
  • Simulation of Computational Processes: Implementing and visualizing the flow of data and instructions within a processor.

Features

Core Functionalities

  • Multiple Architecture Simulations: Includes Spicy Von Neumann, Double McHarvard, and other fictional architectures.
  • Comprehensive Instruction Sets: Supports various operations including arithmetic calculations, logical functions, and memory operations.
  • Pipelined Execution: Simulates a realistic processor pipeline to optimize instruction processing.

Technical Specifications

  • Detailed Memory Architecture: Each package comes with a predefined memory layout specifying the use of memory for instructions and data.
  • Diverse Instruction Formats: Supports R-Format, I-Format, and J-Format instructions, catering to different operation needs.
  • Simulated Processor Pipeline: Visualizes how multiple instructions are processed in parallel stages within the processor.

Installation and Setup

To set up and run the processor simulation, follow these steps:

  1. Clone the repository:
    git clone https://github.com/yourusername/processor-simulation-project.git
  2. Navigate to the project directory:
    cd processor-simulation-project
  3. Compile the Java application (Ensure Java is installed):
    javac ProcessorSimulation.java
  4. Run the simulation:
    java ProcessorSimulation

How to Use

  • Select a Processor Package: Choose one of the predefined packages based on the required simulation.
  • Load Instructions: Input the assembly-like instructions into the system as per the format defined in the chosen package.
  • Execute and Monitor: Run the simulation to see the instruction processing, pipeline execution, and changes in memory and registers.

Contributing

Contributions to extend the instruction set, enhance the simulation environment, or improve the pipeline efficiency are welcome. Please feel free to fork the project, make improvements, and submit pull requests.

License

MIT License

This software is licensed under the MIT License - see the LICENSE.md file for details.


This README provides a comprehensive overview of the processor simulation project, its goals, how to set it up, and how to use it effectively. Adjust the specific details or links to match your actual project implementation and repository location.

About

The simulation involves detailed processor packages that describe different memory architectures, instruction set architectures, and data paths. These packages dictate how instructions are fetched, decoded, executed, and how data flows through the system.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages