Agenda

Última Alteração em 11/11/2015
Legenda:
    PH refere-se ao livro de Patterson e Hennessy (referência [1] da bibliografia da disciplina) - Segunda Edição em Português
    HP refere-se ao livro de Hennessy & Patterson (referência [2] da bibliografia da disciplina) - Edição em Português

Aula DataDia Conteúdo Recurso
1 05/08 Qua Aula inaugural: apresentação da disciplina (conteúdo, datas, avaliação, bibliografia, etc.)


Revisão e complementação de conceitos prévios para Organização de Computadores

  • Circuitos combinacionais e sequenciais, oscilador em anel.

  • Definição de sistemas digitais, exemplo do tocador de MP3 (entra MP3 e sai PCM, depois um conversor DA e alto falantes)

  • Noções fundamentais de um computador: informações de dados e controle, blocos de controle e de dados, programas e instruções.

  • Conjunto de transparências a ser usado nesta aula e seguintes

 
2 07/08 Sex

Unidade I: Introdução

Revisão e complementação de conceitos prévios para Organização de Computadores:

  • Modelo geral de um computador: a interface Processador-Memória
  • Modelos gerais de organizações de computadores: von Neumann e Harvard
  • Classificação das arquiteturas conforme o conjunto de instruções (Ler HP 2.2 p.67) - máquina de pilha, máquinas com acumulador, máquinas com conjunto de registradores (de uso geral) (subdivididas em registrador-memória e registrador-registrador)
  • Tipos de operações (Ler HP 2.7 p.79)
  • Codificação de instruções (Ler HP 2.10 p.86)
  • A função do compilador (Ler HP 2.11 p.89)
  • Arquitetura MIPS: características
3 12/08 Qua

Continuação da Introdução

 

4 14/08 Sex Unidade II: Programação em Linguagem de Montagem

Os seis (6) Elementos Definitórios de uma Arquitetura:

  1. Conjunto de Registradores Acessíveis (ao programador em linguagem de montagem)
  2. Conjunto de Instruções (da arquitetura)
  3. Formatos de Instrução (da arquitetura)
  4. Modos de Endereçamento (de cada operando de cada instrução)
  5. Linguagem de Montagem (da arquitetura)
  6. Modelo de Acesso à Memória (pelo processador)
5 19/08 Qua Especificação do Trabalho TP1, Lista de Grupos x Trabalhos Confirmados, Material de Apoio para o Trabalho TP1,

Exemplo de Trabalho TP1

Os seis (6) Elementos Definitórios de uma Arquitetura:

  1. Conjunto de Registradores Acessíveis (ao programador em linguagem de montagem)
  2. Conjunto de Instruções (da arquitetura)
  3. Formatos de Instrução (da arquitetura)
  4. Modos de Endereçamento (de cada operando de cada instrução)
  5. Linguagem de Montagem (da arquitetura)
  6. Modelo de Acesso à Memória (pelo processador)

Para entender melhor, leiam:

  • Sobre tipo, quantidade e tamanho de operandos (Ler HP 2.5 p.77)
  • Modos de endereçamento principais (há muitos outros) - imediato, direto, base-deslocamento, indexado (Ler PH p.85)
  • Modelos de acesso a memória (Ler HP 2.3 p.70)
6 21/08 Sex Programação em linguagem de montagem do MIPS (1/6)
Leiam um pouco sobre o MIPS na Wikipedia
Sala 309
7 26/08 Qua Programação em linguagem de montagem do MIPS (2/6)
Conjunto de instruções da arquitetura MIPS
  • Classes de instruções do MIPS
  • Tudo que não é instrução em um programa do MIPS pode ser: diretiva do montador, pseudo-instrução ou comentário. Por exemplo, especificação de dados se faz com diretivas.
  • Uso da letra "u" (unsigned) em mnemônicos do MIPS
    • gerar interrupções de tratamento de exceções em instruções aritméticas (sem u) ou ignorar  tais condições (com u)
    • uso de representações numéricas em complemento de 2 (sem u) ou em binário puro (com u)
  • Instruções de controle de fluxo: saltos (branches (opcodes 10 e 11), jumps (opcode 4))
  • Instruções de comparação (test and set) (opcodes 4 e 8) slts (set if less than)
Sala 309
8 28/08 Sex Programação em linguagem de montagem do MIPS (3/6)
Os seis (6) Elementos Definitórios de uma Arquitetura (estudo de caso do MIPS-conclusão):
  1. Conjunto de Registradores Acessíveis (ao programador em linguagem de montagem)
  2. Conjunto de Instruções (da arquitetura)
  3. Formatos de Instrução (da arquitetura)
  4. Modos de Endereçamento (de cada operando de cada instrução)
  5. Linguagem de Montagem (da arquitetura)
  6. Modelo de Acesso à Memória (pelo processador)
Sala 309
9 02/09 Qua

Programação em linguagem de montagem do MIPS (4/6)

Sala 309
10 04/09 Sex Programação em linguagem de montagem do MIPS (5/6)
  • Assuntos a abordar nesta aula: (1) Como trabalhar com cadeias de caracteres ou strings (programa toupper.asm) e (2) como modelar a chamada de funções e subrotinas
    • Exemplo de manipulação de cadeias de caracteres: toupper.asm
Sala 310
11 09/09 Qua Programação em linguagem de montagem do MIPS (6/6)
Procedimentos - uso de estrutura de pilha no MIPS
Data Final  de Entrega do Trabalho T1 (peso: 10% de G1)

Mais exemplos de programas: Compilação da estrutura switch (uso de ponteiros), teste_subr.asm

Mais um exemplo de programa (complicado) que chama uma subrotina recursiva: fatorial_trad_de_C.asm

Sala 309
12 11/09 Sex  
13 16/09 Qua Prova P1 (peso: 30% de G1) Quando o gabarito estiver disponível, Clique Aqui
 
14 18/09 Sex

Correção da P1 - Ver gabarito na área de Apoio

15 23/09 Qua

Apresentações do TP1 (2 de 2)

Grupos que Apresentam hoje (em ordem):

Procedimentos - uso de estrutura de pilha no MIPS - Conclusão 

 

16 25/09 Sex

Especificação do Trabalho T2

Apresentações do TP1 (1 de 2)

Grupos que Apresentam hoje (em ordem):

  • Bruno Martins, Jean Pimmel, Paulo Bassanesi - Intel I8051 (1)

  • Carlos Ribeiro, Helio Fuques - Intel I8085 (2)

Ver dicas de como preparar a apresentação do TP1 aqui

 

17 30/09 Qua

Apresentações do TP1 (2 de 2)

Grupos que Apresentam hoje (em ordem):

  • Gustavo Oliveira, Pietro Silva - Motorola MC6800 (8)

  • Denis Silva, Matheus Pereira, Vinicius Pereira - MOS Technology 6502 (3)

  • Gabriel França, Germano Stam, Samuel Finatto - Motorola MC68HC11 (7)

  • Gabriel Machado, Marcus Kuquert - Motorola MC68000 (6)

  • Gustavo Rosa, Natanael Kuniechick, Rodrigo Avila - Zilog Z80 (9)

  • Fabio Carvalho, Francisco Nonnenmacher - Microchip PIC16 (5)

  • Eduardo Coelho, Ligia Zanchet - Motorola MC6809 (4)

  • Rodrigo Wuerdig, Witallo Oliveira - Atmel AVR-8 (10)

Ver dicas de como preparar a apresentação do TP1 aqui

 
18 02/10 Sex

Unidade III: Bloco de Dados e Bloco de Controle - Introdução

Implementação do bloco de dados monociclo (1/4) (Ler PH 5 p.196-217)

Revisão e complementação de conceitos prévios para Organização de Computadores (Circuitos Digitais e VHDL):

  • Conjunto de transparências a ser usado nesta aula e na próxima - Uma introdução a conceitos de hardware para Org. Comp

  • Multiplexadores, demultiplexadores e decodificadores
  • Circuitos aritméticos
  • O Paradigma Síncrono e Máquinas de Estado Finitass
  • Memórias ROM e RAM - Interface externa e estrutura internaa
  • flip-flops D e registradores

Um conjunto de descrições VHDL para elementos básicos de hardware Módulos básicos em VHDL.

 

Sala 310
19 07/10 Qua

Implementação do bloco de dados monociclo (2/4) (Ler PH 5 p.196-217)

Sala 309
20 09/10 Sex

Implementação do bloco de dados monociclo (3/4) (Ler PH Seções 5.1 a 5.3)

Inclusão dos saltos condicionais no VHDL

Simulações do Processador MIPS_V0 completo, usando memórias externas preenchíveis a partir de arquivos em disco.

  • Processo de geração do arquivo de carga de memórias - uso do MARS, edição manual de texto e limitação ao subconjunto de instruções do MIPS_V0.
  • Programa de teste utilizado: prog1.asm (neste exemplo, antes de se gerar o Dump do código no MARS substituir a primeira instrução pelo ori da segunda, ou seja, a primeira e segunda instrução serão iguais)
  • Usar como programa de teste o prog2.asm
 
21 14/10 Qua Implementação do bloco de dados monociclo (4/4) (Ler PH Seções 5.1 a 5.3)
Sala 309
22 16/10 Sex

Evolução do processador MIPS_V0

  • Como acrescentar novas instruções
  • Estudos de caso das instruções BEQ e LUI
  • Expansão do MIPS_V0 para acomodar a instrução LUI
  • Expansão do MIPS_V0 para acomodar a instrução BEQ

Estrutura do Testbench da arquitetura MIPS_V0

  • Instanciação do processador e das memórias
  • Estrutura interna da memória
  • Estrutura do package do MIPS-V0 - declarações simplificadoras, inst_type, funções auxiliares de leitura e conversão
  • "Lógica de Cola" entre o MIPS_V0, o testbench e as memórias

Exercício

  • Exercício para Aula Prática: alterar a implementação mips_V1 para dar a esta capacidade de executar as seguintes instruções adicionais: ADDIU, ANDI, XORI
  • Transparências sobre a organização MIPS - adaptadas de Hsien-Hsin Sean Lee

 Exercícios

Sala 310
23 21/10 Qua Implementação do bloco de dados multiciclo(1/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

  • Lâminas da aula (27-40), mesmo conjunto de lâminas da aula anterior
  • Bloco de controle com máquina de estados
  • Tempo de execução de programas
Sala 309
24 23/10 Sex Nova Data Final  de Entrega do Trabalho T2
Implementação do bloco de dados multiciclo(2/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

  • Lâminas da aula (27-40), mesmo conjunto de lâminas da aula anterior
  • Bloco de controle com máquina de estados
  • Tempo de execução de programas
Sala 310
25 28/10 Qua Implementação do bloco de dados multiciclo(3/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

  • Lâminas da aula (27-40), mesmo conjunto de lâminas da aula anterior
  • Bloco de controle com máquina de estados
  • Tempo de execução de programas
Sala 311
26 30/10 Sex Implementação do bloco de dados multiciclo(4/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

Lâminas da aula (1-26): multi_ciclo_apresentacao.pdf. Se o PDF estiver rotacionado, use o botão de girar do Acrobat Reader - ao lado do zoom. Desempenho e limitações da implementação monociclo

  • Lâminas da aula (27-40), mesmo conjunto de lâminas da aula anterior
  • Bloco de controle com máquina de estados
  • Tempo de execução de programas
Aula de exercícios para a prova P2
 
27 04/11 Qua Prova P2 (peso: 30% de G1) Quando o gabarito estiver disponível, Clique Aqui  
28 06/11 Sex

Unidade IV: Projeto de sistemas digitais utilizando VHDL

  • Algoritmo de multiplicação serial
  • Integração do multiplicador ao processador MIPS
  • Arquivos para a aula: mult_div.ppt e mult_div.zip
  • O arquivo mult_div.ppt corresponde às lâminas com a explicação da multiplicação e divisão seriais
  • O arquivo mult_div.zip corresponde ao projeto a ser usado na próxima aula
 
29 11/11 Qua Especificação do trabalho_prático 3 org.docx  (peso: 20% de G1)
  • Material para realizar o trabalho:
  1. Especificação do Processador MIPS-S
  2. Arquivos para montar projeto do MIPS multiciclo. Descrição VHDL do mips_multiciclo.
Trabalho de integração do multiplicador ao MIPS Multiciclo (1 de 2)

Executar as tarefas descritas no arquivo inclusao_mult.doc.
Resultado final da integração do multiplicador ao MIPS multiciclo (ponto de partida para o trabalho): MIPS_MC_com_mult.zip

 

Sala 309
30 13/11 Sex

Trabalho de integração do multiplicador ao MIPS Multiciclo (2 de 2)

Sala 309
31 18/11 Qua

Simulação avançada do MIPS Multiciclo - Integração do multiplicador ao MIPS Multiciclo - Continuação

 
32 20/11 Sex Aula de dúvidas e exercícios para P4/G2/TP3
 
33 25/11 Qua Prova PS/P4 (SUBSTITUI P1 ou P2 se Aluno ausente a uma destas. INCLUI CONTEÚDO DE TODAS AS UNIDADES, INCLUSIVE UNIDADE IV)

Data Final  de Entrega do Trabalho T3 (para TODOS os grupos, peso: 20% de G1)
 
34 27/11 Sex Aula de dúvidas e exercícios para o G2
 
35 02/12 Qua Prova G2 (INCLUI CONTEÚDO DE TODAS AS UNIDADES, INCLUSIVE UNIDADE IV)
 

Material Adicional (Antigo):