Implementação de um processador monociclo com 16 registradores, capaz de executar instruções em código hexadecimal e programas em Assembly, desenvolvido como projeto final da disciplina de Arquitetura e Organização de Computadores.
O MEUPS (Micro Engine for Universal Processing Simulation) é um processador simplificado projetado para fins acadêmicos, com suporte a execução de instruções básicas inspiradas na arquitetura MIPS.
O sistema é capaz de:
- Executar instruções em formato hexadecimal
- Manipular memória de dados
- Realizar operações aritméticas e lógicas
- Executar algoritmos mais complexos (ex: multiplicação de matrizes NxN)
- Exibir resultados em um display integrado (HUB 4x4)
- Guilherme Viana Batista
- Antônio José Monteiro Neto
- Arquitetura monociclo
- 16 registradores
- Execução sequencial de instruções
- Unidade de controle simplificada
- Suporte a operações com imediato e registradores
O MEUPS possui 14 instruções principais, incluindo operações customizadas.
| Instrução | Descrição |
|---|---|
addn |
Soma um valor imediato a um registrador |
lwn |
Load baseado na soma de dois registradores |
print |
Exibe valor da memória no display (HUB) |
Incluem variações de:
add,sub,mult,divbeq,jlw,sw,li,move
⚠️ Diferença importante: o registrador de destino aparece por último na instrução.
| Nome | Código |
|---|---|
| v0 | 0 |
| a0–a2 | 1–3 |
| t0–t7 | 4–11 |
| s0–s3 | 12–15 |
O projeto inclui um programa que:
- Cria duas matrizes 4x4 na memória
- Preenche com valores sequenciais
- Realiza multiplicação matricial
- Armazena o resultado
- Exibe no display
-
Uso de loops aninhados (
i,j,k) -
Cálculo manual de endereços:
sllpara multiplicaçõesaddpara offsets
-
Acumulação do resultado em registrador temporário
Para cada linha i:
Para cada coluna j:
resultado[i][j] = 0
Para cada k:
resultado[i][j] += A[i][k] * B[k][j]
O projeto inclui:
- Inicialização de matrizes na stack
- Loops para preenchimento
- Algoritmo completo de multiplicação
- Impressão formatada dos resultados
Além do Assembly, o projeto também apresenta a versão em código de máquina (hex) executável pelo processador MEUPS.
Exemplo:
600c0000
60010001
60040004
...
Os resultados são exibidos através de:
- Display 4x4 (HUB)
- Impressão sequencial dos valores da matriz resultante
- Projeto de arquitetura de processadores
- Implementação de ISA (Instruction Set Architecture)
- Execução de instruções em baixo nível
- Tradução Assembly → Código de Máquina
- Manipulação manual de memória e registradores
- Criação de instruções personalizadas
- Execução de algoritmo complexo (multiplicação de matrizes)
- Integração com saída física (display HUB)
- Simulação completa de um processador funcional
Disciplina: Arquitetura e Organização de Computadores Curso: Ciência da Computação Instituição: Universidade Federal do Cariri (UFCA) Semestre: 2023.2
Este projeto é acadêmico e não possui licença definida.