Geral
Onde eu acho o SystemC instalado?
As máquinas do IC-3 estão todas com o SystemC instalado.
Como eu instalo/uso o ArchC?
Você não precisa instala-lo se estiver no IC-3. Eu instalei na
minha conta em ~rodolfo/archc. Para usar, basta executar os
seguintes comandos:
ARCHC_PATH=/home/staff/rodolfo/archc
PATH=$PATH:$ARCHC_PATH
A partir de então é só usar o acpp conforme descrito no manual.
Atividade 1
Para a família de processadores que escolhi, qual modelo de processador devo escolher?
Tente escolher um processador que tenha bastante utilidade
prática (que existam produtos baseados nele por exemplo). Assim
quem for implementa-lo terá provavelmente maior disponibilidade
de ferramentas. Observe que do ponto de vista da implementação,
características como periféricos embutidos não são relevantes,
portanto você pode considerar como versões iguais processadores
que possuam exatamente o mesmo conjunto de instruções e
periféricos diferentes.
Como gravar o arquivo em formato .txt?
Digite seu texto no Bloco de Notas do Windows ou no Emacs do
Linux. Existem vários outros editores que gravam diretamente no
formato .txt (texto puro). Se ainda está em dúvida, não utilize
Word nem OpenOffice e você terá grandes chances de ter o arquivo
.txt gravado automaticamente para você.
Para qual email devo enviar o trabalho?
Envie para o meu email mesmo, que é
rodolfo arroba
ic.unicamp.br. Eu gostaria de pedir desculpas por
ter que colocar essa pergunta na página, mas um aluno me
telefonou para perguntar qual o meu email e outros dois me
escreveram (por email, pasmem!).
Atividade 2
O manual do processador contém todas as informações
necessárias. Podemos envia-lo no lugar da planilha?
Realmente o manual contém tudo o que vocês precisam para criar a
planilha. Mas a planilha com as instruções e formatos deve ser
criada para facilitar o próprio trabalho de vocês. Ela será
pequena e deverá ser de fácil consulta. Veja alguns exemplos: SPARC
(
tipos e
instruções) e
MIPS.
Atividade 4 (v0.2)
Como faço para testar as instruções do meu modelo?
Crie um arquivo no formato hexadecimal e forneça como entrada
para o simulador gerado. Para a versão 0.2, você só precisa
garantir que:
- O decoder está funcionando corretamente
- Cada instrução tem seu comportamento definido
- O comportamento de cada instrução funciona
individualmente
O arquivo hexadecimal com as instruções deve ter, para cada
linha, um endereço e uma palavra do processador (se ac_wordsize
for 32 bits, você deve trabalhar com palavras de 32 bits, idem
para outros tamanhos). Se quiser colocar mais de uma palavra por
linha, o leitor considerará endereços sucessivos somando sempre o
tamanho da palavra especificada.
Como faço para usar a função delay?
Você deve utilizar a opção
--delay do acpp. A função
delay serve para fazer uma atribuição com atraso num
registrador.
Como eu faço para depurar meu código?
Para você ver se o decoder está correto, utilize a opção
--dumpdecoder do acpp, ela mostrará o decoder inteiro na
tela e pode ajuda-lo a encontrar alguma instrução que não esteja
decodificando corretamente.
Para aumentar o nível de depuração, inclua as opções
--disassembler,
--debug e
--verbose. Para saber mais sobre essas e outras opções,
consulte o manual do ArchC ou execute:
acpp --help.
Atividade 5 (v0.3)
O que devo testar nessa versão?
Essa versão é para testes mais profundos, você precisará de
programas maiores, para testar. Nesse momento já estamos
assumindo que todas as instruções estão testadas individualmente,
o que deve ter sido feito na atividade anterior. Aqui estão
alguns passos que devem ser executados:
- Prepare e instale um compilador para a sua
arquitetura. Utilize o guia
disponível no site do ArchC para instalar um gcc se achar
necessário (apenas as seções 1 e 2 são necessárias nessa
fase). Se você achou um compilador já pronto, basta
instala-lo.
- Execute programas simpes, que não tenham
entrada/saída. Sugestões de programas:
- Cálculo do i-ésimo número da série de fibonacci;
- Algoritmo de ordenação que checa o resultado e detecta se
ele está correto. Não use entradas do teclado ou arquivo, crie um
vetor com os valores iniciais e chame seu algoritmo. No final,
faça uma rotina de verificação e retorne o valor 1 se ela estiver
correta;
- Cálculo do fatorial de um número.
- Cheque a cobertura em instruções do seu código (use a opção
-s do acpp)
Que opções do gcc devo usar para compilar meu
programa?
Para evitar alguns erros de compilação comuns nessa fase, você
provavelmente precisará das opções
-nostdinc -nostdlib
-Ttext=0. A última opção diz para o compilador colocar o
código no endereço 0 de memória pois é lá que o simulador espera encontra-lo.
Atividade 6 (v0.4)
O que devo testar nessa versão?
Utilize os programas de teste
desse
arquivo para testar as System Calls implementadas. Todos os
programas devem funcionar corretamente. É comum, após a inclusão
das chamadas ao sistema operacional, que vocês descubram bugs nas
implementações das instruções. Não deixem de corrigir esses bugs!