Agenda

Última Alteração em 06/05/2018
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 06/03 Ter 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 08/03 Qui

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 13/03 Ter Especificação do Trabalho TP1
Lista de Grupos x Trabalhos Confirmados
Material de Apoio para o Trabalho TP1

Exemplo de Trabalho TP1

 

Unidade II: Programação em Linguagem de Montagem

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

  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)
4 15/03 Qui

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

  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)
5 20/03 Ter Programação em linguagem de montagem do MIPS (1/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)
Leiam um pouco sobre o MIPS na Wikipedia
Leiam também o Apêndice A do HP Seções A.1, A.2, A.3 e A.10. O link para o material é: Apêndice A
Sala 309
6 22/03 Qui Programação em linguagem de montagem do MIPS (2/6) Sala 309
7 27/03 Ter

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

Sala 309
29/03 Qui

Feriado - Quinta-feira Santa

8 03/04 Ter

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

Sala 310
9 05/04 Qui

Programação em linguagem de montagem do MIPS (5/6)
Procedimentos - uso de estrutura de pilha no MIPS

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 310
10 10/04 Ter Programação em linguagem de montagem do MIPS (6/6)

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 310
11 12/04 Qui

Data Final de Entrega do Trabalho TP1 - Moodle

Aula de exercícios para a Prova P1

12 17/04 Ter Prova P1 (peso: 30% de G1)
Quando o gabarito estiver disponível, Clique Aqui
 
13 19/04 Qui

Correção da P1

Especificação do Trabalho TP2

Definidas as datas e ordem das apresentações do TP1. Ver dados a partir do dia 26/04

14 24/04 Ter

 

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

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

 

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

  • A questão de como organizar hardware para criar um processador
    • Uma especificação de um processador simples, o MIPS_V0
      • Nove instruções: ADDU, SUBU, AND, OR, XOR, NOR, LW, SW, ORI
      • Dois formatos de instrução: Tipo R e Tipo I
      • Três modos de endereçamento: a Registrador, Imediato e Base-deslocamento
      • Linguagem de montagem - subsconjunto da linguagem do MIPS
      • Modelo de acesso à memória - organização Harvard com uma ROM que contém o programa (acessível a palavra) e uma RAM acessível a palavra, ambas endereçadas a byte
      • Registradores - Os mesmos 32 do banco de registradores do MIPS e o PC
15 26/04 Qui

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

  • O processador MIPS_V0
    •  Conjunto de Instruções
    • Formatos (R e I)
    • Pressupostos do processador:
      • Monociclo (1 instrução = 1 ciclo de relógio)
      • Sensível apenas à borda de subida  do relógio (cada borda de subida inicia uma nova instrução e completa a anterior)
      • Organização Harvard (memória de instruções inicia no endereço 0x00400000 e memória de dados inicia no endereço 0x10010000)
    • Interface entre processador e memórias (i_address, instruction; d_address, data, ce, rw)
    • Memórias possuem acesso assíncrono (ROM-instruções e RAM-dados)

Apresentações do TP1 (1 de 3)

Grupos que Apresentam hoje (em ordem):

1. G5 - Gabriel Teiga e Rafael Silva: Atmel AVR

2. G7 - Guilherme Schäfer, Rodrigo Perozzo e Rodrigo Basso: Motorola MC68HC11

 

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

01/05 Ter Feriado - Quinta-feira Santa
16 03/05 Qui

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

  • O processador MIPS_V0 (continuação)

Apresentações do TP1 (2 de 3)

Grupos que Apresentam hoje (em ordem):

1. G9 - William Nascimento: Intel 8051

2. G6 - Guilherme Doering e Gustavo Koefender: Motorola MC68000

 

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

 
17 08/05 Ter

Apresentações do TP1 (3 de 3)

Grupos que Apresentam hoje (em ordem):

1. G4 - Christian Bosin, Joaquim Lucena e Rafael Geiss: Microchip PIC10FXX

2. G8 - Leonardo: Motorola MC6809

3. G2 - Arthur D´Arisbo e Lucas Ribeiro: Intel 8085

4. G3 - Artur Rodrigues e Douglas Carvalho: MOS Technology 6502

5. G1 - Antonio Pereira, Clodoaldo Lambiase e Renan Silva: Zilog Z80

 

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

 
18 10/05 Qui

 

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

  • Estrutura da Implementação VHDL da MIPS_V0 e simulação

    • Descrições VHDl de apoio: Package p_MIPS_V0, registrador de 32 bits;

    • Descrições VHDL dos blocos fundamentais: ULA, Banco de Registradores, Decodificação de instruções

    • Módulos de mais alto nível: Bloco de Controle, Bloco de Dados, Processador

    • Conceitos para executar programas: O testbench MIPS-V0_tb.vhd, Criação do software com o Mars.

  • Simulação de um exemplo

  •  

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

  • Conjunto de transparências - 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 Finitas
    • Memórias ROM e RAM - Interface externa e estrutura internaa
    • flip-flops D e registradores
 
19 15/05 Ter

 

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

  • Simulação da MIPS_V0 - Continuação
 
20 17/05 Qui

 

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

  • 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
  • Inclusão dos saltos condicionais no VHDL
Sala 309
21 22/05 Ter

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

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

Sala 309
22 24/05 Qui

Continuação do Exercício de alteração da MIPS_V0.

Sala 310
23 29/05 Ter

 

Data Final de Entrega do Trabalho TP2 - Moodle

 

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

 
F 31/05 Qui Feriado - Corpus Christi
24 05/06 Ter

 

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
  • O arquivo mult_div.zip corresponde ao projeto a ser usado na próxima aula
Sala 309
25 07/06 Qui

Implementação do bloco de dados multiciclo(3/4) (Ler PH Seções 5.4 e 5.7 a 5.10)
Especificação do trabalho_prático 3 org.docx
 (peso: 20% de G1)

Material para realizar o trabalho:

Especificação do Processador MIPS-S
Arquivos para montar projeto do MIPS multiciclo. Descrição VHDL do mips_multiciclo.

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

Conclusão da simulação da MIPS_V1 - Material para simulação MIPS_V1

Sala 310
26 12/06 Ter 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

Sala 310
27 14/06 Qui

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
 
28 19/06 Ter Aula de exercícios para a Prova P2  
29 21/06 Qui

Prova P2 (peso: 30% de G1)
Quando o gabarito estiver disponível, clique aqui

30 26/06 Ter

Data Final de Entrega do Trabalho TP3 - Moodle
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
Sala 310
31 28/06 Qui
  • 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
Sala 310
32 03/07 Ter Prova PS
Quando o gabarito estiver disponível, Clique Aqui
33 05/07 Qui Professor disponível para resolução de dúvidas.
--- 10/07 Ter Prova de G2 (INCLUI CONTEÚDO DE TODAS AS UNIDADES, INCLUSIVE UNIDADE IV)  

Material Adicional (Antigo):