Enunciado do Trabalho Prático
Engenharia de Computação, FACIN/FENG, PUC-RS
Escopo
do trabalho:
O Trabalho Prático (TP) consiste na exploração da arquitetura do MIPS multiciclo previamente explorada pelos alunos. O objetivo final do trabalho é projetar/implementar em VHDL comportamental em uma versão da mesma arquitetura com pipeline, explorando assim os conceitos apresentados em sala de aula.
A arquitetura implementada deverá ser capaz de executar programas descritos em assembly daquela arquitetura descritos e validados com a ferramenta MARS.
A implementação partirá de uma descrição VHDL da arquitetura MIPS trabalhada pelos alunos em disciplinas anteriores (Organização de Computadores). Ao final do trabalho, após o cumprimento de etapas detalhadas a seguir, deverá ser disponibilizada uma arquitetura do mesmo processador empregando pipeline. Esta deverá contemplar a detecção e tratamento de conflitos de dados, este último através da inserção automática de bolhas e adiantamento. A implementação da arquitetura com pipeline deve ainda incluir mecanismos de detecção e tratamento de conflitos de controle, visando a ocorrência de desvios. Deverão ser implementadas duas propostas. A primeira deverá realizar o tratamento do desvio através da parada das instruções a serem inseridas no pipeline, logo após a detecção de uma instrução no estágio de decodificação da instrução. Outra proposta deverá propor mecanismos de descarte de instruções inválidas no pipeline.
Objetivos do trabalho:
Os objetivos estratégicos do trabalho a ser desenvolvido são os de (i) fazer avançar o conhecimento dos alunos em VHDL e (ii) consolidar os conceitos de arquiteturas empregando técnicas de pipeline.
Para o atendimento dos objetivos estratégicos, tem-se como objetivo específico a implementação em VHDL da arquitetura do processador MIPS com pipeline bem como a elaboração de documentação que contribua para o entendimento dos trabalhos desenvolvidos. Cabe reforçar que o resultado final do trabalho deve ser o desenvolvimento uma arquitetura com pipeline em VHDL contendo os elementos de tratamento de conflito de dados e de controle especificados nas etapas que a compõem.
Autoria dos trabalhos:
O trabalho poderá ser desenvolvido individualmente ou em duplas.
Nas datas de apresentação do trabalho, serão realizadas perguntas sobre a documentação do projeto e detalhes de implementação, este último quando houver. Nos dias de apresentação, um dos alunos da dupla será escolhido aleatoriamente e as respostas fornecidas por este valerão para a avaliação da dupla. A partir da entrega do primeiro trabalho não será aceita a formação de novas duplas.
Material a ser entregue ao professor:
Preparar um documento de projeto completo descrevendo tudo o que foi realizado. O documento de projeto representa 50% da avaliação, sendo considerada em cada etapa. As etapas do trabalho são detalhadas abaixo. Trabalhos encaminhados faltando documentação ou implementação serão considerados não entregues. Implementações somente serão aceitas se a simulação estiver funcional, do contrário este não será considerado. Casos onde houver erro de sintaxe, o que pode ser verificado com a opção check sintax, incorrerá em grau zero a etapa que está sendo cumprida.
O documento de projeto deverá ser claro o suficiente, de forma a ser utilizado pelo professor da disciplina como um manual (datasheet) para o desenvolvimento de programas para a arquitetura proposta. O documento deverá possuir os detalhes necessários para que todo esse fluxo seja executado sem a necessidade de consultar os projetistas (alunos) o que deve ser feito para o programa funcionar. Mais precisamente, é obrigatório o detalhamento sobre o fluxo que se inicia com a validação do código assembly no ambiente MARS até a simulação da arquitetura descrita em VHDL.
O desenvolvimento do trabalho pressupõe a descrição de programas a serem utilizados para a validação em código assembly e a simulação das descrições VHDL. Para o primeiro, assume-se aqui o emprego da ferramenta MARS, conforme citado previamente. Para as simulações empregando os arquivos VHDL, deverá ser utilizada a ferramenta ISE Simulator da xilinx. Cabe lembrar que estas ferramentas estão disponíveis nos computadores da FACIN. Apesar disto, ambas ferramentas possuem versões grátis que podem ser encontradas na internet, o MARS disponível neste link e o ISE WEBPACK no site da xilinx. A versão do MARS pode ser a 3.6 ou 4.1, já o ISE tem de ser o mesmo disponibilizado nos laboratórios da FACIN, ou seja, a versão 10.1 SP3. Trabalhos apresentados em versões diferentes e que venham a apresentar problemas para a simulação não serão considerados.
Etapas
e Datas Importantes:
O desenvolvimento do presente trabalho deverá ser realizado em 4 etapas. A cada uma das etapas, são atribuídos graus distintos conforme apresentado a seguir:
· 06/09/2011 - Primeira etapa --Relatório + VHDL-- (máx. 1,5 pontos)
Trabalhar sobre o MIPS multiciclo.
Para a primeira etapa, os objetivos são: (i) a definição do conjunto de
instruções, (ii) a
implementação da arquitetura em VHDL, bem como o testbench para
validação do mesmo, e (iii) a
organização que deve ser adotada para validação da implementação. Sendo assim, os seguintes recursos são
esperados:
Os arquivos listados acima deverão ser encaminhados para avaliação via email em um único arquivo, compactado (.zip). O nome do arquivo compactado deverá ser composto pelo nome completo do autor, sem espaços, conforme o exemplo: NomeSobrenome(_NomeSobrenome).zip
·
22/09/2011 - Segunda
etapa -- Relatório -- (máx. 1,5 pontos)
Planejar as modificações sobre a arquitetura
multiciclo para implementar a arquitetura pipeline.
Para a segunda etapa, entrega do relatório contendo a documentação do projeto do pipeline A SER DESENVOLVIDO em VHDL, sem considerar o tratamento de conflitos. Não haverá necessidade de desenvolvimento da arquitetura pipeline, mas sim a preocupação com o entendimento do que deverá ser feito.
Para esta fase deverá ser gerado um documento descrevendo as modificações que deverão ser aplicadas ao MIPS Multiciclo a fim de torná-lo em uma arquitetura pipeline. A seguinte estrutura é esperada para este documento:
O documento deverá ser entregue no formato PDF. O nome do arquivo compactado deverá ser composto pelo nome completo do autor, sem espaços, e com cada um dos nomes iniciados por uma letra maiúscula: NomeSobrenome(_NomeSobrenome).zip
·
13/10/2011 - Terceira
etapa --Relatório + VHDL-- (máx. 3,5 pontos)
Implementar a primeira versão do MIPS
pipeline.
Para a terceira etapa, os objetivos são: (i) a entrega do relatório em pdf contendo a documentação do
projeto desenvolvido da arquitetura MIPS desenvolvida com pipeline e (ii) o VHDL da versão do processador
MIPS empregando pipeline. No que se refere a implementação do pipeline, nesta etapa
deverá estar contemplada a inserção automática de bolha no caso de detecção de
conflito de dados entre instruções em operação pelo pipeline. Mecanismos de
adiantamento e tratamento de conflito de controle estão fora do escopo desta
etapa. O tratamento de conflito de controle deve ser tratado manualmente
através da inserção de instruções NOP no assembly a ser executado. É
pressuposto que o testbench apresentado na primeira etapa do trabalho
seja reutilizado aqui. Os seguintes
recursos são esperados:
Os arquivos listados acima deverão ser encaminhados para avaliação via email em um único arquivo, compactado (.zip). O nome do arquivo compactado deverá ser composto pelo nome completo do autor, sem espaços, conforme o exemplo: NomeSobrenome_NomeSobrenome.zip
·
24/11/2011 - Quarta
submissão --Relatório + VHDL-- (máx. 3,5 pontos)
Explorar mecanismos de tratamento de
conflito de dados e controle.
Para a quarta etapa, os objetivos são: (i) a entrega do relatório contendo a documentação do projeto desenvolvido da arquitetura MIPS desenvolvida com pipeline e (ii) o VHDL da versão do processador MIPS empregando pipeline. Para esta etapa deverá ser implementada a detecção e tratamento dos conflitos de dados e a detecção e tratamento de conflitos de controle. Para o tratamento de conflito de dados, deverá ser incluído o mecanismo de adiantamento. Para o tratamento de conflito de controle, deverá ser empregada a política de “nunca salta” e o tratamento em caso de decisão errada, aplicando-se flush em instruções que por ventura já tenham sido inseridas no pipeline.
Os arquivos listados acima deverão ser
encaminhados para avaliação via email em um único arquivo, compactado (.zip). O
nome do arquivo compactado deverá ser composto pelo nome completo do autor, sem
espaços, conforme o exemplo: NomeSobrenome(_NomeSobrenome).zip