MC404: Organização Básica de Computadores e Linguagem de Montagem

DataAviso
08/07Planilha consolidada de notas.
18/03Tudo mudou. Vamos trabalhar juntos para reorganizar nosso semestre. Vejam as datas e programação novas no calendário abaixo. O andamento e material da disciplina será divulgado no Google Classroom.
16/02Não perca das datas importantes do Calendário de graduação.

Introdução à organização de computadores e representação de informação na memória. Estudo do conjunto de instruções de processadores relevantes. Desenvolvimento, implementação e testes de programas usando linguagens de montagem. Espaço de endereçamento físico e mapeamento de endereços para memória e periféricos. Programação de dispositivos de entrada e saída. Tratamento de interrupções.

A bibliografia recomendada para as atividades desta disciplina é: Noam Nisan and Shimon Schocken. The Elements of Computing Systems. MIT Press. 2008.

Os materiais e capítulos do livro podem ser baixados diretamente da página do livro.

Os simuladores podem ser baixados e instalados seguindo estas instruções, veja também uma cópia local. Aproveite e leia o guia do HDL.

Para as atividades sobre o processador ARM, recomendo os manuais online (1 / 2 / 3 / 4 / 5).

Simulador ARM: VisUAL

Slides sobre ARM: 1, 2, 3

Todas as avaliações desta disciplina serão realizadas online e terão um prazo mínimo de 24 horas para realização. Cada aluno deve responder sua avaliação individualmente.

A dinâmica da disciplina será regida por semanas. Toda quarta-feira colocarei os vídeos e recomendações de leituras online, juntamente com um conjunto de atividades para ser realizadas até a terça-feira seguinte (até 23:59). Todos os alunos ganham automaticamente um prazo de carência de 24h para submissão das atividades para cobrir eventuais problemas de submissão nas últimas horas. Entretanto, nenhuma justificativa de problema pode ser dada durante o período de carência.

As atividades avaliativas serão divididas em três categorias com seus pesos abaixo:

  • Quiz sobre os vídeos: Perguntas curtas sobre cada vídeo postado da disciplina, totalizando peso 3 na nota da disciplina. O teste 1 que foi realizado no dia 11/03, será corrigido e adicionado na nota acima como pontuação extra com peso 0,5.
  • Atividades práticas: As atividades que eram realizadas anteriormente nos laboratórios agora precisarão ser entregues através do Google Classroom, totalizando peso 4 na nota da disciplina.
  • Provas online: Serão colocadas duas provas durante o semestre totalizando peso 3 na nota da disciplina.

Exame: Média aritmética entre a nota do semestre e a do exame.

Nota mínima para exame: 2,5

Qualquer tentativa de fraude durante o semestre será punida até o limite da minha autoridade, incluindo nota zero na disciplina.

As atividades serão organizadas em semanas. Todo o material novo será disponibilizado às quartas. Compartilhei através do Google Classroom a agenda da disciplina com links para o Google Meet em cada reunião de atendimento online. Cobriremos todos os horários de aula com reuniões online. A existência de mais de um evento no mesmo horário é apenas para facilitar a distribuição dos atendimentos entre os monitores. A presença nos atendimentos online não é obrigatória e o foco será apenas tirar dúvidas nestes horários síncronos. Todo o material disponibilizado em vídeo será pré-gravado para que todos possam assistir no horário que desejarem.

Atividades extras referentes ao capítulo 4:

  1. Calcular o valor absoluto de um número. Considere que o número esteja em R0.
  2. Somar todos os elementos de um vetor. Considere que o endereço base esteja em R0 e o tamanho em R1.
  3. Achar o menor elemento de um vetor. Considere que o endereço base esteja em R0 e o tamanho em R1.
  4. Desenhar um ponto na tela e move-lo através das teclas do teclado.

Arquivos de teste para os testes extras.

DataDescrição
04/marApresentação da disciplina. Portas Lógicas
11/marPortas Lógicas. Teste 1
25/marAritmética binária
01/abrAritmética binária
08/abrLógica sequencial
15/abrLógica sequencial
22/abrLinguagem de máquina
29/abrLinguagem de máquina
06/maiArquitetura do Processador
13/maiArquitetura do Processador
20/maiProva 1
27/maiARM - conceitos gerais e primeiras instruções
03/junEstruturas simples de execução, modelo de memória
10/junFunções e pilha
17/junInterrupções e exceções
24/junProva 2