Coder Social home page Coder Social logo

treepram-red's Introduction

TreePRAM-red

Architecture diagram

Parallel random access machines (PRAM) are a model of computation used in theoretical computer science. They consist of several independent processors (random access machines) communicating with each other by sharing the same memory.

PRAMs offer a simple model to teach and understand parallel algorithms but they are impractical to implement in hardware. Aside from the assumption of unbounded resources they obviously require a memory block with a large number of IO buses. Since memory blocks typically have a single input and/or output bus, applications where parallel access to the same memory block is required are forced to use workarounds. These include running memory logic at a higher clock frequency or adding several copies of the memory block that are kept in sync, which correspond to a lower general speed and higher die space respectively.

The model we implement in this project offers a compromise between the simplicity of PRAMs and the practical usability of general-purpose processors. We add one memory block per core and allow them to be either kept in sync for simple communication or used separately to maximize data storage per unit of die area. To achieve this we extend memory write operations to include a spread parameter besides the usual address and data. Processor cores are arranged in a binary tree and spread controls how far the memory write operation spreads in this tree. For instance, if core 0 writes 17 to memory address 8 with a spread of 2 then 17 is written to address 8 in the memory blocks of cores 0, 1, 2 and 3. This logic can be turned into a combinatorial circuit between processor cores and memory blocks that we call the memory mesh.

This repository contains a Verilog implementation of the TreePRAM model. It targets the OpenLane flow for the Skywater 130nm process and is an entry for the Google/Efabless MPW-3 shuttle. Source files live in verilog/rtl while the user area of the hardened Caravel chip is available under gds.

treepram-red's People

Watchers

 avatar

treepram-red's Issues

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.