Agenda

Última Alteração em 30/07/2019
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 02/08 Sex 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.

  • Transparências1-OrgComp-EC

 
2 06/08 Ter Revisão de tópicos de disciplinas anteriores relevantes para Organização de Compuatdores-EC
  • Máquinas de Estados Finitas - especificação, diagrama de blocos, implementação em portas lógicas e flip-flops

  • Flip-Flops e Registradores - características de operação, características estruturais, sinais de controle essenciais (clock) e acessórios (reset, set,habilitação de escrita).

  • Relação entre processadores e máquinas de estado - processadores SÃO máquinas de estado (complexas).

3 09/08 Sex
  • Qual tamanho de máquina de estados corresponde um processador?

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
4 13/08 Ter 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)

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 16/08 Sex

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)
Especificação do Trabalho Prático 1 (peso: 10% de G1)
Lista de Grupos x Trabalhos Confirmados
Material de Apoio para o Trabalho TP1

Exemplo de Trabalho TP1

 

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

Exemplos a serem apresentados em aula:

Sala 310
7 23/08 Sex

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

Data Final de Entrega do Trabalho TP1 - Moodleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

Simulador MARS - documentação e tutorial:

Assuntos a abordar nesta aula depois de mostrar o MARS: (1) Como escrever um programa e a relação deste com o código objeto gerado pelo montador (processo de montagem e desmontagem de código); (2) Como trabalhar com escalares (primeiro programa), (3) e vetores de escalares (segundo programa)

Sala 310
8 27/08 Ter

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

Assuntos a abordar nesta aula:

Grupos que Apresentam TP1 hoje (em ordem):

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

Sala 310
9 30/08 Sex

Grupos que Apresentam TP1 hoje (em ordem):

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

Sala 310
10 03/09 Ter Programação em linguagem de montagem do MIPS (5/7)

Procedimentos - uso de estruturas 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 311
11 06/09 Sex

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

Procedimentos - uso de estruturas de pilha no MIPS:

12 10/09 Ter

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

13 13/09 Sex

Aula de exercícios para a Prova P1

14 17/09 Ter Prova P1 (peso: 30% de G1)
Quando o gabarito estiver disponível, Clique Aqui
 
F 20/09 Sex Feriado - Revolução Farroupilha
15 24/09 Ter

Correção da P1

 

Especificação do Trabalho Prático 2 (peso: 10% de G1)

 

16 27/09 Sex

 

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

 

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

Uma introdução a conceitos de hardware para Organização de Computadores:
Transparências2-OrgComp-EC

  • 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 interna
  • flip-flops D e registradores
17 01/10 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):

 

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

Uma introdução a conceitos de hardware para Organização de Computadores:
Transparências2-OrgComp-EC

  • 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 interna
  • flip-flops D e registradores

Implementação do bloco de dados monociclo (1/7) (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
Sala 309
18 04/10 Sex

Implementação do bloco de dados monociclo(2/7) (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)
Sala 310
19 08/10 Ter

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

  • O processador MIPS_V0 (continuação)
Sala 310
20 11/10 Sex

 

Implementação do bloco de dados monociclo (4/7) (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

Sala 310
F 15/10 Ter Feriado - Dia do Professor
21 18/10 Sex

Data Final de Entrega do Trabalho TP2 -Moodleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

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

  • Simulação da MIPS_V0 - Continuação

Como simular o MIPS_V0:

  • 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
22 22/10 Ter

Aula por Professor Substituto - César Marcon

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

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ícios para a Unidade III - Alguns exercícios para organizações monociclo e alguns para organizações multiciclo, não necessariamente aquelas vistas em aula.

  • Exercício Recomendado: alterar a organização MIPS monociclo para dar a esta capacidade de executar as seguintes instruções adicionais: ADDIU, ANDI, XORI

Continuação de exercícios de alteração/simulação do MIPS_V0

Sala 310
23 25/10 Sex

Aula por Professor Substituto - César Marcon

Implementação do bloco de dados monociclo(7/7) (Ler PH Seções 5.4 e 5.7 a 5.10)

O Processador MIPS_V0+ (MIPS_V0 mais as instruções LUI e BLEZ)

Sala 310
24 29/10 Ter

 

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
  • O arquivo mult_div.zip corresponde ao projeto a ser usado na próxima aula
 
25 01/11 Sex

Implementação do bloco de dados multiciclo(2/4) (Ler PH Seções 5.4 e 5.7 a 5.10)

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

Especificação do Trabalho_Prático 3  (peso: 20% de G1)

Material para realizar o trabalho:

 

Sala 309
26 05/11 Ter 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

Sala 310
27 08/11 Sex

Implementação do bloco de dados multiciclo(4/4)

Sala 309
28 12/11 Ter

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
  • Integração do multiplicador ao processador MIPS
  • Simulação do multiplicador e divisor
  • Arquivos para a aula: mult_div.ppt e mult_div.zip
F 15/11 Sex Feriado - Finados
29 19/11 Ter

Exercícios para a Prova P2

30 22/11 Sex

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

 
31 26/11 Ter

Correção da P2

Data Final de Entrega do Trabalho TP3 - Moodle

  • Apoio para a execução do TP3
Sala 311
32 29/11 Sex Prova PS
Quando o gabarito estiver disponível, Clique Aqui
33 03/12 Ter Professor disponível para resolução de dúvidas.
--- 06/12 Sex Prova de G2 (INCLUI CONTEÚDO DE TODAS AS UNIDADES, INCLUSIVE UNIDADE IV)  

Material Adicional (Antigo):