-
Notifications
You must be signed in to change notification settings - Fork 1
maxmiller/projetopsc
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Repósitorio do projeto da disciplina de Projeto de Sistemas em CHIP 6 de junho Pessoal vamos padronizar de fazer os códigos em ingles (Nomes de classes, Métodos e Variáveis), porém os commits e comentários podemos fazer em portugues 7 de junho Implementamos as seguintes instruções no formato 16 bits type(2), op(5), dest(3), src1(3), src2(3), ou 32 bits type(2), op(5), dest(3), src1(3), src2(3), Address(16) como é mostrado no livro do gajiski pg 403. 7 de junho - Adicionando correções necessárias para compilação - Para compilar os códigos configure as variáveis LDFLAGS e INCLUDES do Makefile de acordo com a localização das libs e includes do systemc em seu ambiente. - Após a configuração digite "make" 9 de junho -Intruçoes Implementadas tipo 1 Operação de Registradores type(2), Op(5), dest(3), src1(3), scr2(3) Op = 0 => RF [dest] = RF[src1] + RF[src2] Op = 1 => RF [dest] = RF[src1] x RF[src2] Op = 2 => RF [dest] = RF[src1] and RF(src2] Op = 3 => RF [dest] = RF[src1] + 1 Op = 4 => RF [dest] = RF[src1] Op(5), dest(3), src1(3), scr2(3), constante(16) Op = 5 => RF [des] = constante tipo 2 Operação de Memória type(2), Op(5), dest(3), src1(3), scr2(3), endereço(16) Op = 0 => RF [dest] = endereço Op = 1 => RF [dest] = Mem[endereço] Op = 2 => RF [dest] = Mem[Mem[endereço]] Op = 3 => Mem [endereço] = RF[src1] Op = 4 => Mem [Mem[endereço]] = RF[scr1] tipo 3 Operação de controle de fluxo type(2), Op(5), dest(3), src1(3), scr2(3), endereço(16) Op = 0 => PC = endereço Op = 1 => se statusBit PC = endereço senão PC = PC + 1 tipo 4 Operação de micelania Op = 5 => statusBit = 1 se RF[src1] > RF[src2] Op = 6 => statusBit = 1 se RF[src1] < RF[src2] Op = 7 => statusBit = 1 se RF[src1] == RF[src2] Op = 8 => statusBit = 1 se RF[src1] == 0 12 de junho Agora o repositório está mais organizado, adicionei makefiles para os arquivos, porém só devem funcionar no linux TODO gerar um diagrama do processador no simulink 13 de junho vamos precisar de um gerador de CDFG de alguma forma 9 de julho termidado o gerador de código automátio para a unidade de controle customizável atualmente estamos usando o pipe disponível em: http://pipe2.sourceforge.net/ para gerar redes de petri que são interpretadas como máquinas de estado para nossa solução atual uma vez gerada a rede de petri para uma determinada instrução é necessário salvar o arquivo da rede em algum local. Para usar usar o gerador de código da unidade de controle faça python customizableControllUnitGenerator.py <diretorioOndeEstaoAsModelagens> para uma dada instrução com o formato type(2), Op(5), dest(3), src1(3), scr2(3) o arquivo relativo aquela instrução pode ter dois nomes: type_op.xml => referindo-se a instrução com type = <type> e op = <op> type_all.xml => referindose-se a uma instrução com type = <type> sem que importem os valores de op (por exemplo instruções RF[src1] op RF[src2]) a rede de petri deve ser modelada com a seguinte estrutura: Lugares: serão os estados de nossa máquina de estados Nomes dos lugares => microInstruções que devem ser realizadas pela unidade de controle nesse estado ex: P0 = rfSel dest loadsARWithPc P1 = resetAllLoads P2 = incrementPC P3 = resetAllLoads P4 = ulaOp 5 ulaInAMuxSel 1 loadRA 1 P5 = wait 1 Transições: as transições não fazem diferença para nós, sua semântica apenas significa a ligação entre um estado e seu proximo. Valores dos lugares: Um lugar com valor inicial igual a 1 deve ser setado indicando que ele é o estado inicial da máquina de estados. Para testes estamos usando o processador anteriormente gerado, atualmente apenas uma instrução foi modelada RF [des] = constante 15 de julho Gerador de código finalizado, para rodar o gerador rodar o script generator.sh onde será executado oscript python, e posteriormente o script ruby. Depois podemos criar uma make para rodar o gerador. Data de Entrega do processador: sexta, dia 18 de junho Data de Entrega do trabalho final: 28 de outubro primeiros esforços a respeito do pipeline opção 1: Criação de uma máquina de estado chamada pipeline control que executa em paralelo com a unidade de controle 13 de novembro Instruções da unidade de controle com pipeline -Intruçoes Implementadas tipo 1 Operação de Registradores type(2), Op(5), dest(3), src1(3), scr2(3) Op = 0 => RF [dest] = RF[src1] + RF[src2] Op = 1 => RF [dest] = RF[src1] x RF[src2] Op = 2 => RF [dest] = RF[src1] and RF(src2] Op = 3 => RF [dest] = RF[src1] + 1 Op = 4 => RF [dest] = RF[src1] + src2 ADD ADDI AND ANDI BEQZ J LW OR ORI SUB SUBI SW XOR XORI tipo 2 Operação de Memória type(2), Op(5), dest(3), src1(3), scr2(3) Op = 0 => RF [dest] = Mem[RF[scr1] + src2] Op = 1 => Mem[RF[dest]] = RF[scr1] http://www.csee.umbc.edu/courses/undergraduate/411/spring96/dlx.html
About
Projeto de Sistemas em CHIP
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published