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

DataAviso
16/02Não perca das datas importantes do Calendário de graduação.

Esta oferta da disciplina será realizada remotamente. Acredito que você já esteja acostumado com disciplinas assim mas quero começar com algumas regras/sugestões/dicas para te ajudar no processo completo e tornar seu semestre mais proveitoso:

  • Formato assíncrono: isso significa que todas as atividades da disciplina (vídeoaulas, textos, laboratórios e avaliações) podem ser feitas sem obrigatoriedade de horário fixo. Você pode escolher o horário mais conveniente, dentro de uma janela de tempo, para realizar as atividades.
  • Atendimento síncrono: isso significa que eu (professor), o PED e os PADs terão horários disponíveis todas as semanas para te atender por vídeo em caso de dúvida. Todos os horários de aulas estarão disponíveis mais também colocaremos alguns horários extras. Todas as janelas de atendimento são de 2 horas mas eles serão encerrados ao final da primeira hora caso não tenha nenhum aluno na sala virtual. Se você precisar de atendimento em outro horário ou mais tarde, basta escrever uma mensagem. A presença não é obrigatória.
  • Atendimento assíncrono: você também pode pedir ajuda, tirar dúvidas, através de email, mensagens pelo Google Classroom, ou outras formas de contato no momento que for mais conveniente. Responderemos assim que possível.
  • Ambiente Virtual: nessa disciplina utilizaremos o Google Classroom para colocar todo o material, avaliações e notas. Os vídeos serão colocados no YouTube.
  • Cadência quinzenal: temos duas turmas nessa disciplina, uma com aula de laboratório às segundas e outra às sextas. As aulas teóricas são às quartas para todos. Independente da sua turma, você pode entrar em qualquer horário de atendimento da disciplina. Mas nós também vamos respeitar os feriados de acordo com os dias da semana (não haverá atendimento em feriado). Por isso, pretendo colocar o material da disciplina disponível toda semana mas com entregas quinzenais. Assim você terá tempo suficiente para realizar as atividades dentro da janela de encontros.
  • Dúvidas e Sincronismo: todos nós sabemos que problemas acontecem, estou incluindo algumas semanas para Dúvidas e Sincronismo durante a disciplina. Essas semanas são tempos extras para atendimento e dúvidas sobre o que passou para trás. Procure utilizá-las para se sincronizar com o restante da turma. É possível que você precise de um tempinho extra para aquecimento no início do semestre, então planejei uma logo na terceira semana de aula, bem em tempo das primeiras entregas.
  • Presença online: você não é obrigado a comparecer aos atendimentos de dúvidas online, mas recomendo que procure entrar em algum deles durante a semana, isso te ajudará a criar o ritmo da disciplina. Quando entrar numa reunião no Google Meet. Alguns lembretes para atividades online: Evite gerar ruidos nas atividades online desligando seu microfone quando não estiver falando. Sempre que possível, mantenha sua câmera aberta. Se não está em condições de falar, digite no chat e lembre-se de dar o contexto inteiro na mensagem pois ela pode ficar sem sincronismo com a última conversa.

Agora que você entendeu um pouco de como essa disciplina será organizada, é hora de se programar. Recomendo que anote horários na sua agenda para se dedicar à disciplina. Apesar de não termos um horário presencial, você se sairá melhor se montar uma grade de estudos. Veja os vídeos da primeira semana para mais dicas de como se organizar e estudar online.

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. Veja também os tutoriais para instalação no Linux e Windows.

Para as atividades sobre o processador RISC-V, recomendo a documentação online do processador: especificação da ISAe Guia de Referência. Veja também a documentação das Pseudo-instruções. e do Simulador Web

Playlist com todos os vídeos da disciplina.

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 serem realizadas em até 2 semanas. 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:

  • Quizz sobre os vídeos: Perguntas curtas sobre cada vídeo postado da disciplina, totalizando peso 3 na nota da disciplina.
  • Atividades práticas: As atividades de laboratórios precisarão ser entregues através do Google Classroom, totalizando peso 3 na nota da disciplina.
  • Provas online: Serão realizadas duas provas durante o semestre totalizando peso 4 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.

Veja links dos atendimentos, via Google Meet, na agenda da disciplina no Google Classroom:

  • Rodolfo: segunda (21h-23h), quarta (19h-21h) e sexta (21h-23h).
  • Patrícia: segunda (19h-21h).
  • Bruno: terça (16h-18h).
  • Lethycia: quarta (14h-16h).
  • Álvaro: quinta (19h-21h)

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.

As datas indicadas abaixo referem-se sempre às quartas das semanas pois são os dias das provas e também das entregas de atividades. Entretanto, a disciplina possui horários às segundas, quartas e sextas, dependendo da turma. Por isso, exceto pelas provas, considere as datas como indicativos das semanas. Tipicamente, o material didático estará disponível na segunda-feira de cada semana para que os alunos tenham mais tempo de acompanha-lo até o momento das entregas. Em caso de algum problema, não deixe de entrar em contato para que possamos resolve-lo o mais rapidamente possível.

DataDescriçãoMaterial
17/03/21Portas Lógicas Leituras: Capítulo do Livro e Slides utilizados
Videoaulas:
  1. Lógica Booleana
  2. Síntese de Funções Booleanas
  3. Linguagem de Descrição de Hardware
  4. Simulador de Hardware
  5. Barramentos e Projeto 1
Atividades (no Classroom): Quizzes e Projeto 1.
Veja também os tutoriais para instalação no Linux e Windows.
24/03/21Aritmética Binária Leituras: Capítulo do Livro e Slides utilizados
Videoaulas:
  1. Representação de Números Binários
  2. Representção de Números Sinalizados
  3. Operações Aritméticas - Somador
  4. Noção de Arquitetura de Von Neumann e ALU
  5. Operações da Unidade Lógica e Aritmética
  6. Implementação da Unidade Lógica e Aritmética do Processador Hack
Atividades (no Classroom): Quizzes e Projeto 2.
31/03/21Dúvidas e Sincronismo Essa semana não tem material novo, utilizem para completar as atividades e sincronizar as disciplinas.
Compareçam nos atendimentos de dúvidas! Não deixem dúvidas acumularem!
Links para os atendimentos no Google Classroom.
07/04/21Lógica Sequencial Leituras: Capítulo do Livro, Slides utilizados
Videoaulas:
  1. Circuitos Sequenciais
  2. Registrador de 1 Bit
  3. Memória RAM
  4. Detalhamento sobre Memória RAM
  5. Contador de Programa
Atividades (no Classroom): Quizzes e Projeto 3.
14/04/21Linguagem de Máquina Leituras: Capítulo do Livro, Slides utilizados
Videoaulas:
  1. Conceitos Básicos de Linguagem de Máquina
  2. Elementos da Linguagem de Máquina
  3. O Computador e a Linguagem de Máquina Hack
  4. Especificação da Linguagem Hack
  5. Entrada e Saída Hack
  6. Programando em Assembly Hack
Atividades (no Classroom): Quizzes e Projeto 4.
21/04/21Dúvidas e Sincronismo Essa semana não tem material novo, utilizem para completar as atividades e sincronizar as disciplinas.
Compareçam nos atendimentos de dúvidas! Não deixem dúvidas acumularem!
Links para os atendimentos no Google Classroom.
28/04/21Arquitetura do Processador Leituras: Capítulo do Livro, Slides utilizados
Videoaulas:
  1. Noções de Arquitetura de Processadores
  2. As fases de busca e execução de instruções
  3. O computador Hack
  4. A CPU Hack
Atividades (no Classroom): Quizzes e Projeto 5.
05/05/21Dúvidas e Sincronismo Essa semana não tem material novo, utilizem para completar as atividades e sincronizar as disciplinas.
Compareçam nos atendimentos de dúvidas! Não deixem dúvidas acumularem!
Links para os atendimentos no Google Classroom.
12/05/21Prova 1
19/05/21Um processador real: RISC-V Material: Slides da semana e Especificação do ISA. Veja também a documentação das Pseudo-instruções.
Videoaulas:
  1. Apresentação do Processador RISC-V
  2. Primeiras Instruções do Processador RISC-V
  3. Instruções de Acesso à Memória e Saltos do Processador RISC-V
  4. Exemplos Básicos de Código Assembly do RISC-V
  5. Demonstração do Simulador Web para o RISC-V
Utilize o Simulador Web para treinar.
Atividades (no Classroom): Quizzes e Projeto 6.
26/05/21Funções e Pilha Material: Slides da semana, Especificação do ISA e Guia de Referência. Veja também a documentação das Pseudo-instruções.
Videoaulas:
  1. Codificação de Instruções
  2. Funções e Pilha
  3. Convenções de Registradores e Recursão
  4. Organização de Memória
Utilize o Simulador Web para treinar.
Atividades (no Classroom): Quizzes e Projeto 7.
02/06/21Dúvidas e Sincronismo Essa semana não tem material novo, utilizem para completar as atividades e sincronizar as disciplinas.
Compareçam nos atendimentos de dúvidas! Não deixem dúvidas acumularem!
Links para os atendimentos no Google Classroom.
09/06/21Operações Lógicas, strings e chamadas de sistema Material: Slides da semana, Especificação do ISA e Guia de Referência. Veja também a documentação das Pseudo-instruções.
Videoaulas:
  1. Manipulação de bits com instruções lógicas e de deslocamento
  2. Representação de caracteres e strings
  3. Exemplo de funções de strings
  4. Chamadas de sistema
Utilize o Simulador Web para treinar.
Atividades (no Classroom): Quizzes e Projeto 8.
16/06/21Variáveis, interrupções e exceções Material: Slides da semana, Especificação do ISA e Guia de Referência. Veja também a documentação das Pseudo-instruções.
Videoaulas:
  1. Variáveis
  2. Exemplo de Código com Variáveis Locais e Globais em RISC-V
  3. Exceções e Interrupções no RISC-V
Utilize o Simulador Web para treinar.
Atividades (no Classroom): Quizzes e Projeto 9.
23/06/21Dúvidas e Sincronismo Essa semana não tem material novo, utilizem para completar as atividades e sincronizar as disciplinas.
Compareçam nos atendimentos de dúvidas! Não deixem dúvidas acumularem!
Links para os atendimentos no Google Classroom.
30/06/21Prova 2
07/07/21Semana de estudos
14/07/21Semana de estudos
21/07/21Exame