Especificação dos Microprocessadores - Turma

Transcrição

Especificação dos Microprocessadores - Turma
Especificação dos Microprocessadores - Turma
2014/2
Prof. Juliano
Gerado randomicamente em 2014-10-30
Como se trata de uma 1a versão de sorteio, algumas combinações talvez sejam
muito difíceis, portanto:
• Negociações e correções dos requisitos podem ocorrer no semestre, mas só
até 48h antes dos prazos de entrega para o item negociado.
• A equipe poderá escolher uma especificação completa de um dos integrantes;
não pode misturar coisas da espec. de um aluno com a do outro.
• Se escolher qualquer item das alternativas opcionais que funcione ao final, a
equipe fica livre para escolher qualquer achievement e programa de
demonstração.
• Restrição única para codificação: a instrução 0 deverá ser NOP (não faz
nada).
Lista de Alunos:
Andre Lucas Zanellato
Andre Luis Reguim De Paulo
Caio De Freitas Almeida
Eli Teixeira Paula Junior
Eucyelle Kathe De Souza Pinto
Felipe Ukan Pereira
Gustavo Henrique Soares Dos Santos
Hudo Cim Assenco
Iuri Michelan Barcat
Iury Oliveira Mezari
Jociane Franzoni De Lima
Jose Guilherme Augustinho
Juliano Eloi
Leandro Alves Dos Santos
Lucas Edson Lopes Vieira
Lucas Eduardo Jastale Pinto
Lucas Penha De Moura
Lucas Zembrani Folle
Luisa Bonin De Oliveira
Luiz Gabriel Da Silva Conforto
Mayara Fernanda Gimenes De Souza
Renan Fernandes Teles
Rodrigo Longhi Guimaraes
Rodrigo Teixeira De Andrade
Stefany Aoto Rojas Ruiz
Vanessa Braganca Wrezinski
Vinicius Silva Mazzola
Vitor Hiroaki Yoshioka
Especificações Individuais
ALUNO: Andre Lucas Zanellato
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, sub]
min: Obtém o mínimo de dois valores
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 6 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 12
branches_obrigatórios: blt
achievement_obrigatório: subrotinas e pilha
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: jogo da velha ou torres de hanoi
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Andre Luis Reguim De Paulo
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, neg]
min: Obtém o mínimo de dois valores
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 7 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: ordenação, seja bubble sort, inserção ou qualquer outro
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Caio De Freitas Almeida
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, sub]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 16 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 4
branches_obrigatórios: salta se R1=0 e R2=0
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: ordenação, seja bubble sort, inserção ou qualquer outro
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Eli Teixeira Paula Junior
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [inc, add, sub]
inc: Soma um ao valor
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 16 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 16
branches_obrigatórios: salta se R1!=0 e R2!=0
achievement_obrigatório: geração de número pseudoaleatório (contador independente mais hash)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Eucyelle Kathe De Souza Pinto
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [par, add, neg]
par: Paridade par, resulta 1 se o valor tiver número ímpar de bits setados, 0 caso
contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 4
branches_obrigatórios: bge
achievement_obrigatório: instruções em dois endereços: um para o opcode e outro para o operando
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: protocolo serial: gerar sinal RS232 8 bits, paridade par, 2 stop bits,
enviar o seu nome
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Felipe Ukan Pereira
máq_estados: [fetch, decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, neg]
min: Obtém o mínimo de dois valores
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 16 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 8
branches_obrigatórios: bgt
achievement_obrigatório: geração de número pseudoaleatório (contador independente mais hash)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: jogo da velha ou torres de hanoi
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Gustavo Henrique Soares Dos Santos
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [max, add, neg]
max: Obtém o máximo de dois valores
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 7 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 6
branches_obrigatórios: bgt
achievement_obrigatório: rep movsb: copia bloco de memória (exige máquina de estados
diferente!)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: números primos (sugestão: crivo de erastótenes)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Hudo Cim Assenco
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, neg]
min: Obtém o mínimo de dois valores
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: acumulador+delta
acumulador+delta: Usa sempre o acumulador somado a uma constante para
indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 4
branches_obrigatórios: bge
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: filtro digital com dados em RAM
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Iuri Michelan Barcat
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [slt, add, neg]
slt: Resulta em 1 se o 1o valor é menor do que o 2o, resulta 0 caso contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 16
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: instrução MAC (x=x+c*y)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Iury Oliveira Mezari
máq_estados: [fetch, decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [par, add, neg]
par: Paridade par, resulta 1 se o valor tiver número ímpar de bits setados, 0 caso
contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 7 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: raiz quadrada (usando tabela em ROM ou decodificador)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: algoritmo de djikstra
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Jociane Franzoni De Lima
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [inc, add, neg]
inc: Soma um ao valor
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: acumulador+delta
acumulador+delta: Usa sempre o acumulador somado a uma constante para
indicar o endereço da operação
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 16
branches_obrigatórios: bge
achievement_obrigatório: geração de número pseudoaleatório (contador independente mais hash)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: jogo da velha ou torres de hanoi
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Jose Guilherme Augustinho
máq_estados: [fetch, decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [inc, add, neg]
inc: Soma um ao valor
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 6 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: acumulador+delta
acumulador+delta: Usa sempre o acumulador somado a uma constante para
indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: salta se R1=0 e R2=0
achievement_obrigatório: instrução MAC (x=x+c*y)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: ordenação, seja bubble sort, inserção ou qualquer outro
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Juliano Eloi
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [slt, add, neg]
slt: Resulta em 1 se o 1o valor é menor do que o 2o, resulta 0 caso contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 4
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Leandro Alves Dos Santos
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, sub]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 8
branches_obrigatórios: bgt
achievement_obrigatório: instruções em dois endereços: um para o opcode e outro para o operando
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: protocolo serial: gerar sinal RS232 8 bits, paridade par, 2 stop bits,
enviar o seu nome
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Lucas Edson Lopes Vieira
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, sub]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 8 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: acumulador+delta
acumulador+delta: Usa sempre o acumulador somado a uma constante para
indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 12
branches_obrigatórios: blt
achievement_obrigatório: rep movsb: copia bloco de memória (exige máquina de estados
diferente!)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Lucas Eduardo Jastale Pinto
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, neg]
min: Obtém o mínimo de dois valores
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 12
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: instrução MAC (x=x+c*y)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: filtro digital com dados em RAM
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Lucas Penha De Moura
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, sub]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 16 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 6
branches_obrigatórios: salta se R1=0 e R2=0
achievement_obrigatório: subrotinas e pilha
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: protocolo serial: gerar sinal RS232 8 bits, paridade par, 2 stop bits,
enviar o seu nome
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Lucas Zembrani Folle
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [slt, add, neg]
slt: Resulta em 1 se o 1o valor é menor do que o 2o, resulta 0 caso contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 7 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: ortogonal
ortogonal: Pode usar qualquer registrador existente tanto para o endereço quanto
para o destino/dado
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 6
branches_obrigatórios: ble
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Luisa Bonin De Oliveira
máq_estados: [fetch, decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [inc, add, neg]
inc: Soma um ao valor
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: ortogonal
ortogonal: Pode usar qualquer registrador existente tanto para o endereço quanto
para o destino/dado
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 4
branches_obrigatórios: bgt
achievement_obrigatório: instruções em dois endereços: um para o opcode e outro para o operando
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: jogo da velha ou torres de hanoi
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Luiz Gabriel Da Silva Conforto
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, neg]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 6 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 6
branches_obrigatórios: salta se R1=0 e R2=0
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: algoritmo de djikstra
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Mayara Fernanda Gimenes De Souza
máq_estados: [fetch, decode/execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [dec, add, sub]
dec: Subtrai um do valor
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 8
branches_obrigatórios: salta se R1=0 e R2=0
achievement_obrigatório: instrução MAC (x=x+c*y)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: algoritmo de djikstra
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Renan Fernandes Teles
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [sgt, add, sub]
sgt: Resulta em 1 se o 1o valor é maior do que o 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 7 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: bge
achievement_obrigatório: leitura da ROM com delta (lw $r1,12($r2), p.ex.)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: filtro digital com dados em RAM
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Rodrigo Longhi Guimaraes
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [equ, add, neg]
equ: Resulta em 1 se o 1o valor é igual ao 2o, resulta 0 caso contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal
ortogonal: Pode usar qualquer registrador existente tanto para o endereço quanto
para o destino/dado
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: raiz quadrada (usando tabela em ROM ou decodificador)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: filtro digital com dados em RAM
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Rodrigo Teixeira De Andrade
máq_estados: [fetch, decode, execute, RAM, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [sgt, add, sub]
sgt: Resulta em 1 se o 1o valor é maior do que o 2o, resulta 0 caso contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 6 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal+delta
ortogonal+delta: Pode usar qualquer registrador existente para o endereço,
somado a uma constante
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 16
branches_obrigatórios: bge
achievement_obrigatório: instrução MAC (x=x+c*y)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: números primos (sugestão: crivo de erastótenes)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Stefany Aoto Rojas Ruiz
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [min, add, sub]
min: Obtém o mínimo de dois valores
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 5 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: ortogonal
ortogonal: Pode usar qualquer registrador existente tanto para o endereço quanto
para o destino/dado
carga_constantes: sem li, R0 = constante zero
sem li, R0 = constante zero: O registrador zero é fixo na constante zero; use addi
com $zero, não pode haver instrução li direto
número_de_registradores: 8
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: rep movsb: copia bloco de memória (exige máquina de estados
diferente!)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: algoritmo de djikstra
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Vanessa Braganca Wrezinski
máq_estados: [fetch, decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [par, add, neg]
par: Paridade par, resulta 1 se o valor tiver número ímpar de bits setados, 0 caso
contrário
add: Soma dois valores
neg: Negação: inverte o sinal do valor, em complemento de 2
largura_da_ULA_e_registradores: 6 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 6
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: geração de número pseudoaleatório (contador independente mais hash)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: protocolo serial: gerar sinal RS232 8 bits, paridade par, 2 stop bits,
enviar o seu nome
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Vinicius Silva Mazzola
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [par, add, sub]
par: Paridade par, resulta 1 se o valor tiver número ímpar de bits setados, 0 caso
contrário
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: ortogonal
ortogonal: As operações da ULA podem ter quaisquer dos registradores existentes,
tanto como fonte como quanto destino
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 6
branches_obrigatórios: salta se o sinal de R1 for negativo
achievement_obrigatório: raiz quadrada (usando tabela em ROM ou decodificador)
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: filtro digital com dados em RAM
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
ALUNO: Vitor Hiroaki Yoshioka
máq_estados: [fetch/decode, execute, write-back]
Guia Máquina de Estados:
Fetch: busca da instrução na memória
Decode: decodificação da instrução pela Unidade de Controle e leitura dos
registradores
Execute: realização das contas pela ULA e leitura da RAM
Write-back: escrita do resultado no registrador e escrita na RAM
RAM (se houver): é onde deve ser feita a leitura ou escrita da RAM
NOTA: tanto o momento do incremento do PC quanto dos jumps e branches ficam à
escolha da equipe
operações_ULA: [inc, add, sub]
inc: Soma um ao valor
add: Soma dois valores
sub: Subtrai o 2o valor do 1o
largura_da_ULA_e_registradores: 4 bits
acumulador_ou_RISC: acumulador
acumulador: O acumulador é um registrador especial; ele sempre é uma das fontes
e sempre é o destino, para operações da ULA
instruções_RAM: sempre com R1
sempre com R1: Usa o registrador 1 para indicar o endereço da operação
carga_constantes: instrução li, R0 = genérico
instrução li, R0 = genérico: Proibido usar um registrador fixo em zero; use uma
instrução especial li para carregar constantes
número_de_registradores: 8
branches_obrigatórios: bgt
achievement_obrigatório: instruções em dois endereços: um para o opcode e outro para o operando
A validação pode ser apresentada sem isso funcionando, mas terá desconto
programa_demonstração: criptografia simples (p.ex., vigenere)
A validação só será aceita se o programa demonstração estiver funcionando; se
estiver muito difícil, converse com o professor
Alternativas Opcionais:
instruções podendo ocupar 1 ou 2 endereços desalinhados, pipeline 4 estágios, uso
de floats, "superescalar" multiciclo com duas ops ULA por clock sem dependência
de registradores, instruções vetoriais, interrrupções externas
Qualquer uma destas alternativas pode ser incluída no projeto; vale algum extra e
a liberdade de escolher qualquer achievement e qualquer programa demonstração
Last updated 2014-10-30 12:25:25 BRST

Documentos relacionados

processador

processador Se for orientado para memória (microprocessadores Motorola), nem sempre o resultado é armazenado no acumulador, podendo esse ser armazenado em qualquer posição de memória. Terminada a primeira inst...

Leia mais

Arquitetura dos Microprocessadores

Arquitetura dos Microprocessadores ser observadas, as vias, que são conjuntos de conexões elétricas como, por exemplo, fios que carregam o mesmo tipo de informação como dados e endereços, podem interconectar o sistema principal que ...

Leia mais