Giter Club home page Giter Club logo

mc723_p3's Introduction

Plataforma base para MC723

O que é uma plataforma?

Uma plataforma é um software capaz de emular/simular um hardware com características reais. No nosso caso, temos um processador MIPS, como já utilizado no projeto anterior, um módulo de memória e um barramento, além do software que executará sobre esta plataforma.

Como utilizar a plataforma base?

No caso geral, dois comandos são necessários para compilar e executar a plataforma:

{ make make run }

ou, de forma simplificada

{ make all run }

O primeiro comando (make all) compila toda a plataforma, incluindo as pastas com cada um dos componentes. O segundo comando (make run) executa a plataforma com os parâmetros corretos para executar o software simulado. No nosso exemplo, este é um Hello World.

O que configurar?

Se copiar esta pasta inteira para dentro de um computador do IC-3, ela deve continuar funcionando. Caso queira ter uma versão no seu notebook, você deve configurar as primeiras linhas do Makefile principal do pacote. Não deve ser necessário copiar nada além deste arquivo. No entanto, é necessário ter SystemC, ArchC e os cross-compilers já instalados nesta outra máquina. Veja as instruções para instalação na página da disciplina.

mc723_p3's People

Contributors

borgesgabriel avatar rjazevedo avatar yuriabrito avatar

Watchers

 avatar

mc723_p3's Issues

Criar um periférico de gerenciamento de cores

Criar uma nova classe para representar o periférico de gerenciamento de cores. Começar essa classe dando ctrl c ctrcl v na classe da memória e modificando. Ligar esse periférico no barramento. O barramento decide se é para escrever/ler na memória ou no periférico conforme o endereço (tipicamente endereços de 0 até um certo valor X são da memória, e faixas de X + y até X + y + z são de um periférico).
Quando criarmos esse periférico (no main.cpp), passamos para ele um ponteiro para o vetor de processadores. Esse periférico deve ser capaz de ligar e desligar um dado core solicitado e responder quantos cores há.
Quem acessa o periférico? No main.cpp, tudo o que pedimos é para iniciar o core 0.
No código C da aplicação (hello.c e subsequentes que fizermos) é que acessamos o periférico para ligar os outros cores. Qual o sentido disso? Isso significa que nosso código funciona como sistema operacional E como aplicação. Quem liga os cores é o SO.
Observe que todos os cores, ao iniciar, rodam o mesmo código do hello. Isso significa que o código que começa ligando os cores precisa olhar em alguma posição de memória para saber se ele é o core 0 ou os demais. Ou seja, o core 0, antes de iniciar os demais cores escreve em uma certa posição de memória que os outros vão ler para saberem que não são o core 0.
Ufa.

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.