MC723 - Perguntas Freqüentes

Geral | Atividade 1 | Atividade 2 | Atividade 4 (v0.2) | Atividade 5 (v0.3) | Atividade 6 (v0.4)

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 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:

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!