• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Engenharia de Computação ·

Organização de Computadores

· 2022/1

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Lista 1 - Arquitetura de Computadores 2022 1

2

Lista 1 - Arquitetura de Computadores 2022 1

Organização de Computadores

UFMT

Lista de Exercícios - Implementacao de Circuitos Digitais com Multiplexadores e Deslocadores

1

Lista de Exercícios - Implementacao de Circuitos Digitais com Multiplexadores e Deslocadores

Organização de Computadores

UFAL

Instruções MIPS e Análise de Desempenho em Processadores

2

Instruções MIPS e Análise de Desempenho em Processadores

Organização de Computadores

UFAL

Simulador de Cache de Memoria em Java-Mapeamento Direto Associativo e Conjuntos

6

Simulador de Cache de Memoria em Java-Mapeamento Direto Associativo e Conjuntos

Organização de Computadores

IFMG

Exercicios Resolvidos sobre Funcao e Tabela da Verdade de Circuitos Logicos

1

Exercicios Resolvidos sobre Funcao e Tabela da Verdade de Circuitos Logicos

Organização de Computadores

UFAL

Lista de Exercícios Resolvidos - Cálculo de Derivadas e Integrais

800

Lista de Exercícios Resolvidos - Cálculo de Derivadas e Integrais

Organização de Computadores

IFMG

Estrutura de Memória Cache: Análise de Parâmetros

1

Estrutura de Memória Cache: Análise de Parâmetros

Organização de Computadores

IFMG

Texto de pré-visualização

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA) 2 / 12 ULA •Unidade Lógica e Aritmética (ULA) é um circuito que realiza funções lógicas e aritméticas •É um dos componentes de transformação de dados principais de um processador •Normalmente implementado de forma combinacional •Representação: Seleção (comando) Vetor de saída Vetor de entrada A Qualificadores (flags) Vetor de entrada B 3 / 12 ULA - Funcionalidades Lógicas •Diversas são as funcionalidades lógicas. Dentre as mais comuns estão: – E lógico das entradas – Ou lógico das entradas – Ou exclusivo lógico das entradas – Complemento de uma das entradas •A seleção de qual operação será realizada é obtida pela porta de comando – Normalmente controlada pela unidade de controle do processador onde se encontra a ULA •Operações lógicas usam normalmente apenas os qualificadores Z (zero) e N (negativo) – Qualificadores de V (overflow) e C (carry) não são considerados, pois operações lógicas não alteram o valor dos mesmos 4 / 12 ULA - Funcionalidades Aritméticas •Dentre as funcionalidades aritméticas mais comuns estão: – Soma das entradas – Subtração das entradas – Deslocamento de uma das entrada – Rotação de uma das entradas – E variações das funcionalidades acima utilizando a flag C •A seleção de qual operação será realizada é obtida pela porta de comando •Operações aritméticas fazem uso dos quatro qualificadores vistos até então (Z, N, V, C) 5 / 12 Especificação de uma ULA de 4 Bits •Projetar uma ULA em VHDL com as seguintes funcionalidades: – Soma – Subtração – Incremento – Decremento – E lógico – Ou lógico – Ou exclusivo lógico – Complemento •Para dar suporte a funcionalidade completa do processador, esta ULA deve ter os seguintes qualificadores: – Carry – Negativo – Zero – Overflow •A ULA deve ter as portas de entrada e saída com 4 bits 6 / 12 Especificação de uma ULA de 4 Bits •Definição da relação entre a codificação e a seleção de comandos: •A implementação da ULA deve ser feita utilizando uma descrição comportamental Operação Codificação Soma 000 Subtração 001 Incremento 010 Decremento 011 E lógico 100 Ou lógico 101 Ou exclusivo lógico 110 Complemento 111 7 / 12 Implementação de uma ULA de 4 Bits (Entidade) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Ula4bits is port ( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in STD_LOGIC_VECTOR(2 downto 0); N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits; 8 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal iA, iB, i_S: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin iA <= A(3) & A; -- Extensão de sinal iB <= B(3) & B; SS <= i_S(3 downto 0); S <= SS; with op select i_S <= iA + iB when “000”, iA - iB when “001”, iA + 1 when “010”, iA - 1 when “011”, iA and iB when “100”, iA or iB when “101”, iA xor iB when “110”, not iA when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_S(4); V <= '1' when ((op=“000”) and ((iA>0 and iB>0 and SS<0) or (iA < 0 and iB < 0 and SS > 0))) or ((op=“010” or op=“011”) and ((iA > 0 and SS < 0) or (iA < 0 and SS > 0))) or ((op=“001”) and ((iA>0 and iB<0 and SS<0) or (iA < 0 and iB > 0 and SS > 0))) else '0'; end ula4bits; 9 / 12 Implementação de uma ULA de 4 Bits •Exercício: – Faça alguns exemplos de vetores e teste se os quatro qualificadores estão implementados corretamente – Pergunta: •A descrição comportamental apresentada poderia ser mais clara? – Sim. Bastaria usar uma definição do que é cada operação. Isto pode ser obtido com uma definição de um tipo em um pacote – Exemplo: • Definição do tipo OP_ULA no pacote ULA, conforme a especificação package ULA is type OP_ULA is ( soma, subtracao, incr, decr, op_and, op_or, op_xor, op_not ); end ULA; 10 / 12 Implementação de uma ULA de 4 Bits library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use work.ULA.all; -- Inclusão do pacote ULA entity Ula4bits is port( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in OP_ULA; N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits; 11 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal iA, iB, i_S: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin iA <= A(3) & A; iB <= B(3) & B; SS <= i_S(3 downto 0); S <= SS; with op select i_S <= iA + iB when soma, iA - iB when subtracao, iA + 1 when inc, iA - 1 when dec, iA and iB when op_and, iA or iB when op_or, iA xor iB when op_xor, not iA when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_S(4); V <= '1' when ((op=soma) and ((iA>0 and iB>0 and SS<0) or (iA < 0 and iB < 0 and SS > 0))) or ((op=inc or op=dec) and ((iA > 0 and SS < 0) or (iA < 0 and SS > 0))) or ((op=subtracao) and ((iA>0 and iB<0 and SS<0) or (iA < 0 and iB > 0 and SS > 0))) else '0'; end ula4bits; 12 / 12 Exercício • Projete a mesma especificação de ULA, mas agora de forma estrutural. Para tanto, utilize as descrições de circuitos aritméticos descritos nas aulas anteriores e complemente os mesmos com as novas funcionalidades • Complemente o projeto da ULA inserindo instruções de multiplicação e divisão. Para tanto, refaça a ULA de forma a esta ter uma saída com o dobro de bits. Organize estes bits para ter funcionalidade adequada para ponto flutuante na divisão e ter um número inteiro maior na multiplicação. Faça, também, uma codificação adequada para as novas instruções

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Lista 1 - Arquitetura de Computadores 2022 1

2

Lista 1 - Arquitetura de Computadores 2022 1

Organização de Computadores

UFMT

Lista de Exercícios - Implementacao de Circuitos Digitais com Multiplexadores e Deslocadores

1

Lista de Exercícios - Implementacao de Circuitos Digitais com Multiplexadores e Deslocadores

Organização de Computadores

UFAL

Instruções MIPS e Análise de Desempenho em Processadores

2

Instruções MIPS e Análise de Desempenho em Processadores

Organização de Computadores

UFAL

Simulador de Cache de Memoria em Java-Mapeamento Direto Associativo e Conjuntos

6

Simulador de Cache de Memoria em Java-Mapeamento Direto Associativo e Conjuntos

Organização de Computadores

IFMG

Exercicios Resolvidos sobre Funcao e Tabela da Verdade de Circuitos Logicos

1

Exercicios Resolvidos sobre Funcao e Tabela da Verdade de Circuitos Logicos

Organização de Computadores

UFAL

Lista de Exercícios Resolvidos - Cálculo de Derivadas e Integrais

800

Lista de Exercícios Resolvidos - Cálculo de Derivadas e Integrais

Organização de Computadores

IFMG

Estrutura de Memória Cache: Análise de Parâmetros

1

Estrutura de Memória Cache: Análise de Parâmetros

Organização de Computadores

IFMG

Texto de pré-visualização

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA) 2 / 12 ULA •Unidade Lógica e Aritmética (ULA) é um circuito que realiza funções lógicas e aritméticas •É um dos componentes de transformação de dados principais de um processador •Normalmente implementado de forma combinacional •Representação: Seleção (comando) Vetor de saída Vetor de entrada A Qualificadores (flags) Vetor de entrada B 3 / 12 ULA - Funcionalidades Lógicas •Diversas são as funcionalidades lógicas. Dentre as mais comuns estão: – E lógico das entradas – Ou lógico das entradas – Ou exclusivo lógico das entradas – Complemento de uma das entradas •A seleção de qual operação será realizada é obtida pela porta de comando – Normalmente controlada pela unidade de controle do processador onde se encontra a ULA •Operações lógicas usam normalmente apenas os qualificadores Z (zero) e N (negativo) – Qualificadores de V (overflow) e C (carry) não são considerados, pois operações lógicas não alteram o valor dos mesmos 4 / 12 ULA - Funcionalidades Aritméticas •Dentre as funcionalidades aritméticas mais comuns estão: – Soma das entradas – Subtração das entradas – Deslocamento de uma das entrada – Rotação de uma das entradas – E variações das funcionalidades acima utilizando a flag C •A seleção de qual operação será realizada é obtida pela porta de comando •Operações aritméticas fazem uso dos quatro qualificadores vistos até então (Z, N, V, C) 5 / 12 Especificação de uma ULA de 4 Bits •Projetar uma ULA em VHDL com as seguintes funcionalidades: – Soma – Subtração – Incremento – Decremento – E lógico – Ou lógico – Ou exclusivo lógico – Complemento •Para dar suporte a funcionalidade completa do processador, esta ULA deve ter os seguintes qualificadores: – Carry – Negativo – Zero – Overflow •A ULA deve ter as portas de entrada e saída com 4 bits 6 / 12 Especificação de uma ULA de 4 Bits •Definição da relação entre a codificação e a seleção de comandos: •A implementação da ULA deve ser feita utilizando uma descrição comportamental Operação Codificação Soma 000 Subtração 001 Incremento 010 Decremento 011 E lógico 100 Ou lógico 101 Ou exclusivo lógico 110 Complemento 111 7 / 12 Implementação de uma ULA de 4 Bits (Entidade) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Ula4bits is port ( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in STD_LOGIC_VECTOR(2 downto 0); N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits; 8 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal iA, iB, i_S: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin iA <= A(3) & A; -- Extensão de sinal iB <= B(3) & B; SS <= i_S(3 downto 0); S <= SS; with op select i_S <= iA + iB when “000”, iA - iB when “001”, iA + 1 when “010”, iA - 1 when “011”, iA and iB when “100”, iA or iB when “101”, iA xor iB when “110”, not iA when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_S(4); V <= '1' when ((op=“000”) and ((iA>0 and iB>0 and SS<0) or (iA < 0 and iB < 0 and SS > 0))) or ((op=“010” or op=“011”) and ((iA > 0 and SS < 0) or (iA < 0 and SS > 0))) or ((op=“001”) and ((iA>0 and iB<0 and SS<0) or (iA < 0 and iB > 0 and SS > 0))) else '0'; end ula4bits; 9 / 12 Implementação de uma ULA de 4 Bits •Exercício: – Faça alguns exemplos de vetores e teste se os quatro qualificadores estão implementados corretamente – Pergunta: •A descrição comportamental apresentada poderia ser mais clara? – Sim. Bastaria usar uma definição do que é cada operação. Isto pode ser obtido com uma definição de um tipo em um pacote – Exemplo: • Definição do tipo OP_ULA no pacote ULA, conforme a especificação package ULA is type OP_ULA is ( soma, subtracao, incr, decr, op_and, op_or, op_xor, op_not ); end ULA; 10 / 12 Implementação de uma ULA de 4 Bits library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use work.ULA.all; -- Inclusão do pacote ULA entity Ula4bits is port( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in OP_ULA; N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits; 11 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal iA, iB, i_S: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin iA <= A(3) & A; iB <= B(3) & B; SS <= i_S(3 downto 0); S <= SS; with op select i_S <= iA + iB when soma, iA - iB when subtracao, iA + 1 when inc, iA - 1 when dec, iA and iB when op_and, iA or iB when op_or, iA xor iB when op_xor, not iA when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_S(4); V <= '1' when ((op=soma) and ((iA>0 and iB>0 and SS<0) or (iA < 0 and iB < 0 and SS > 0))) or ((op=inc or op=dec) and ((iA > 0 and SS < 0) or (iA < 0 and SS > 0))) or ((op=subtracao) and ((iA>0 and iB<0 and SS<0) or (iA < 0 and iB > 0 and SS > 0))) else '0'; end ula4bits; 12 / 12 Exercício • Projete a mesma especificação de ULA, mas agora de forma estrutural. Para tanto, utilize as descrições de circuitos aritméticos descritos nas aulas anteriores e complemente os mesmos com as novas funcionalidades • Complemente o projeto da ULA inserindo instruções de multiplicação e divisão. Para tanto, refaça a ULA de forma a esta ter uma saída com o dobro de bits. Organize estes bits para ter funcionalidade adequada para ponto flutuante na divisão e ter um número inteiro maior na multiplicação. Faça, também, uma codificação adequada para as novas instruções

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®