PROJETO CONCEITUAL DE UM ASIP PARA PROCESSAMENTO DIGITAL DE ÁUDIO
|
|
- Maria Clara Canela Bicalho
- 5 Há anos
- Visualizações:
Transcrição
1 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Eduardo D avila Koerich Vinicius Almeida Carlos PROJETO CONCEITUAL DE UM ASIP PARA PROCESSAMENTO DIGITAL DE ÁUDIO Florianópolis, 2004
2 Eduardo D avila Koerich Vinciius Almeida Carlos PROJETO CONCEITUAL DE UM ASIP PARA PROCESSAMENTO DIGITAL DE ÁUDIO Rascunho de relatório submetido à Universidade Federal de Santa Catarina como parte dos requisitos para obtenção da nota final da disciplina de Projetos I. Luiz Cláudio Villar dos Santos Florianópolis, 2004
3 Sumário 1 INTRODUÇÃO 3 2 MOTIVAÇÃO 4 3 ArchC - LINGUAGEM DE DESCRIÇÃO DE ARQUITETURAS 5 4 APLICAÇÃO Efeitos de Áudio METODOLOGIA 8 6 ARQUITETURA 10 7 ORGANIZAÇÃO 13 8 ESTADO ATUAL 14 Lista de Figuras 1 Fluxo de Projeto Precisão de cada algoritmo de ganho Tamanho estimado de cada componente em FPGA Atraso estimado de cada componente no FPGA Desempenho de cada algoritmo na execução do efeito Delay Conjunto de Instruções Organização do processador
4 1 INTRODUÇÃO Projetos de hardware têm oferecido cada vez mais desafios no que diz respeito a sua complexidade e tempo de desenvolvimento. O trabalho em questão visa aplicar uma metodologia de projeto baseada em uma Linguagem de Descrição de Arquitetura, doravante denominada como ADL, no projeto de um Application-Specific Instruction-Set Processor (ASIP) e a criação de seu conjunto de ferramentas (assembler, cross-compiler e simuladores). A aplicação alvo é um processador digital para geração de efeitos de áudio. A motivação para o trabalho, a metodologia empregada, as principais características do processador e o estado atual do projeto são descritos nos capítulos a seguir. 3
5 2 MOTIVAÇÃO Projetos de hardware baseados estritamente em HDL possuem metodologias de projeto consolidadas e existem inúmeras ferramentas de apoio a projetos seguindo essas metodologias. Porém, projetos em HDL levam muito mais tempo para se chegar a uma versão simulada, validada e testada, e são mais sensíveis a mudanças no projeto pois se trabalha em um nível de abstração menor. Nesse contexto, projetos no nível de sistema (system-level design) são interessantes pois permitem criar versões do projeto em alto nível, testá-la mais facilmente, refiná-la, alem de facilitar a criação de ferramentas que automatizem certos passos do projeto. Por isso, uma metodologia de projeto moderna deve estar de acordo com fluxo de projeto no nível de sistema e SystemC[1][2] vai de encontro a essa questão, pois SystemC é uma biblioteca de classes C++ e uma metodologia que se pode usar para criar efetivamente um modelo com precisão de ciclos de algoritmos de software, arquitetura de hardware, e interfaces para SoC (System On a Chip) and projetos no nível de sistema (SystemC Version 2.0 Users Guide 2.0, 2002, p.1). O fato de se iniciar o projeto com o uso de uma ADL facilita a criação de um toolkit de programação e testes do projeto, e a escolha pelo ArchC[3][4], que é uma linguagem de descrição de arquiteturas, se deu basicamente pelo fato dela gerar um modelo em SystemC[1][2]. Descrever o projeto em uma ADL permite iniciar o projeto em um nível alto de abstração. A descrição do processador pode então ser feita simplesmente baseada no conjunto de instruções definidas previamente. É possível então descrever o ASIP em vários níveis, dentro da própria ADL (funcional, precisão de ciclos, uso de memória cache etc). O toolkit é composto pelo simulador, gerador de montadores e cross-compiler. O gerador de montadores é uma ferramenta que permite, a partir de descrições em ArchC, gerar um montador para a arquitetura desejada. A ferramenta gerador de montadores pode ser tão complexa quanto se queira, e criar essa ferramenta de forma a ser genérica foge ao escopo do trabalho em questão. O gerador de montadores a ser implementado visa possibilitar pequenas modificações na arquitetura pré-definida, como por exemplo adições de novas instruções, ou mudanças nos campos das mesmas. O cross-compiler permitirá a geração de código de máquina, a partir de código em alto nível, para a arquitetura alvo. No caso de uma modificação na arquitetura, o código em alto nível seria recompilado para gerar código para a arquitetura modificada. O simulador é gerado automaticamente pela ferramenta ArchC[1]. 4
6 3 ArchC - LINGUAGEM DE DESCRIÇÃO DE ARQUITE- TURAS O ArchC é uma linguagem de descrição de arquitetura que está sendo desenvolvida no LSC (Laboratório de Sistemas de Computadores) no IC-UNICAMP (Instituto da Computação da Universidade de Campinas). Ele tem como base o SystemC, uma linguagem de descrição de hardware. O ArchC é composto de duas partes. Uma delas é a descrição da arquitetura do conjunto de instruções (AC ISA) que contém a declaração de todas a instruções e seus formatos. A outra parte é a descrição dos elementos da arquitetura (AC ARCH) onde é feito a declaração do tamanho da palavra que será utilizada na arquitetura, número de registradores, pipeline, etc. A partir das duas descrições acima, o ArchC Pre-Processor (ACPP) gera um template comportamental, que deverá ser preenchido com o comportamento de cada instrução. Com a descrição comportamental completa, o modelo é compilado gerando um simulador executável da arquietura modelada. O simulador executável pode então utilizar um código binário ou hexadecimal para fazer a simulação da arquitetura. Maiores informações podem ser encontradas em [3][4]. 5
7 4 APLICAÇÃO A aplicação em questão é um processador digital de audio, mais especificamente gerador de efeitos de áudio, com várias funcões implementadas, validado, testado e em condicões de ser construído fisicamente em FPGA. Os efeitos selecionados para rodarem no processador são: Delay, Distorção, Flanger, Phaser e Trêmolo. Porém, futuramente deseja-se expandir o repertório de efeitos a serem programados. A seleção dos efeitos teve como critérios básicos: - simplicidade (algoritmos com funções matemáticas complexas não foram inclusos pois dificultariam o projeto da arquitetura e implementação dos algoritmos de efeito) - resultado sonoro (efeitos com grande apelo auditivo, ou seja, as diferenças entre o som original e o modificado são facilmente percebidas, mesmos por leigos no assunto). O resultado final é um processador de efeitos de áudio, rodando efeitos em Real-Time, que seja configurável externamente na setagem de quais efeitos devem ser aplicados e os parâmetros a serem utilizados por cada efeito. Porém, são previstas implementações intermediárias mais simples, com parâmetros carregados diretamente da memória, execução de um único efeito por vez e aplicação dos efeitos a amostras de audio previamente carregadas em memória. 4.1 Efeitos de Áudio Os efeitos citados acima foram previamente programados em linguagem de alto nível. Segue abaixo uma pequena explanação sobre cada efeito implementado: Distorção: A distorção basicamente satura a onda sonora dando ao som um aspecto meio distorcido ou sujo. O algoritmo de distorção recebe como entrada a onda sonora, um ganho e um valor de saturação. Quando a onda é processada, primeiramente aplica-se a ela o ganho e em seguida ela é saturada com o valor de saturação. Tremolo: O tremolo é simplesmente a variação constante de volume de forma linear. É passado como parâmetros o volume máximo e mínimo, assim como a velocidade de variação do volume. A onda vai aumentando sua amplitude de acordo com a velocidade de variação. Quando esta atinge o volume máximo desejado, ela começa a diminuir sua amplitude até atingir o volume mínimo e voltar a aumentar a amplitude novamente, ficando assim até que se pare a execução do efeito. Delay: O delay simplesmente adiciona à onda uma ou mais amostras atrasadas, mas não chega a dar uma sensação de eco. O algoritmo de delay recebe como entrada a onda sonora, um ganho para a onda original, um ganho para as amostras atrasadas, a 6
8 quantidade de feedback e o tempo de atraso. No processamento da onda, aplica-se a ela um ganho (ganho da onda original) e depois pega-se uma amostra atrasada em t (tempo de atraso) segundos e aplica-se a ela um outro ganho (ganho para amostras atrasadas). No caso de haver feedback, a onda processada nesta etapa será adicionada a amostra t segundos seguinte, porém a ela será aplicado um ganho menor que um para diminuir sua intensidade. A intenção é que a amostra atrasada vá se repetindo seguidas vezes, cada vez mais baixo, até que não mais se possa ouví-la. Flanger: O flanger utiliza da técnica do delay para sua execução. No entanto ele não faz uso de feedback e seu tempo de atraso fica entre X e Y milisegundos. Um diferencial no algoritmo do flanger, é que o tempo de atraso fica constantemente variando para maior e menor atraso. Um dos parâmetros do algoritmo é justamente o menor e o maior atraso desejado. Phaser: O phaser tem um comportamento exatamente igual ao flanger, sendo a única diferença que a amostra atrasada, antes de ser adicionada a onde original, é invertida para dar um outro aspecto sonoro. 7
9 5 METODOLOGIA O objeto de estudo do trabalho é justamente a busca de novas maneiras de se realizar o projeto de hardware, usando novas ferramentas como ArchC[3][4] e SystemC[1][2] e criando uma metodologia que permita a execução do fluxo de projeto de forma sutil e recorrente. A metodologia do trabalho, capturada no plano de trabalho, pode ser vista na figura abaixo. Figura 1: Fluxo de Projeto Na figura vemos quatro cadeias de ferramentas interligadas entre si em pontos-chave. A cadeia de ferramenta de síntese de software compreende basicamente as ferramentas do tool kit. Essas ferramentas visam a programação em alto nível, com facilidade, do ASIP. Em um primeiro momento, para permitir a simulação dos códigos de aplicação (efeitos) é criado um montador manualmente e os efeitos são codificados em assembly. Na versão final o código é escrito em alto nível, compilado pelo cross-compiler e montado pelo montador gerado automaticamente. Ele então é carregado no simulador, gerando assim o ISS (Instruction Set Simulator). 8
10 Na cadeia de ferramenta de co-simulação de HW/SW tem-se como entrada as descrições do ASIP, em ArchC, nos níveis funcional e com precisão de ciclos. A simulação é feita primeiramente sobre o modelo funcional, sem precisão de ciclos, para assegurar que o conjunto de instruções é capaz de realizar as operações necessárias à aplicação. O próximo passo é refinar o modelo para apresentar instruções com precisão de ciclos, que é como o ASIP serah realmente implementado. O ArchC então gera um modelo executável em SystemC, que é usado para a simulação, tendo como código de teste o resultado gerado pela cadeia de síntese de software. O modelo gerado em SystemC pode ser refinado manualmente a fim de se chegar o mais próximo possível da descrição RTL que serah feita em VHDL, não perdendo, dessa forma, todo a cadeia gerada para simulação e testes gerado anteriormente. Da ultima descrição gerada em SystemC parte-se para a conversão manual para a descrição ASIP em RTL. A cadeia de síntese de hardware segue o caminho já conhecido da comunidade de microeletrônica. A síntese em FPGA conta com uma ultima etapa que carrega o código da aplicação para ser sintetizado junto com o hardware projetado. 9
11 6 ARQUITETURA A arquitetura do conjunto de instruções foi definida a partir de um conjunto de algoritmos de efeitos de áudio previamente selecionados, implementados e testados em uma linguagem de alto nível, que servirá posteriormente como testbenches para a aplicação em questão. Fazendo-se a análise dos algoritmos gerados em alto nível, detectaram-se quais seriam as instruções necessárias para a geração dos efeitos em um processador específico. De modo geral observou-se a presença de somas, subtrações, multiplicações e saltos, além de instruções de acesso a memória, mas como era de se esperar nesse tipo de aplicação, as instruções aritméticas são a grande maioria. Como se visa a implementação em hardware do processador, a primeira preocupação foi com relação à multiplicação, que poderia se tornar um problema por ser custosa tanto em tempo de execução, quanto no espaço físico necessário para implementá-la em hardware. A opção foi reprogramar os efeitos, retirando as operações de multiplicação explícitas e as programando com soma e deslocamentos, criando-se assim o que se chamou de algoritmos de ganho. Para a tomada de decisão entre multiplicação e algoritmos de ganho usando deslocamentos, foram criadas tabelas comparando os seguintes fatores de cada opção: - precisão - desempenho em número de ciclos para se executar ganho - desempenho em número de ciclos e tempo total de execução de cada efeito - número aproximado de componentes necessários para implementação em hardware - escalabilidade Para o caso de se usar deslocamentos, havia a possibilidade tanto de implementar deslocamentos em hardware usando Shift Register, quanto Barrel Shifter. Essas duas opções foram consideradas para a tomada da decisão. As tabelas usadas para tomada de decisão podem ser vistas abaixo: Figura 2: Precisão de cada algoritmo de ganho Para cada algoritmo, foram executados todos os possíveis valores de ganho aceitos e anotada a diferença entre o valor dado e valor esperado e calculada a média. Nesse critério o algoritmo 2 foi descartado por apresentar precisão mais baixa que os demais e ter uma abrangência menor que os outros. As duas figuras anteriores comparam o atraso e espaço físico ocupado para cada possível implementação física, em um FPGA alvo. Esses critérios seriam importantes caso a 10
12 Figura 3: Tamanho estimado de cada componente em FPGA Figura 4: Atraso estimado de cada componente no FPGA diferença entre eles fosse muito grande, ou seja, se para implementar a multiplicação usando Barrel Shifter fosse dez vezes mais rápido e ocupasse cinquenta vezes menos o espaço no FPGA que um multiplicador, provavelmente teria um peso maior na decisão de qual implementação usar. Figura 5: Desempenho de cada algoritmo na execução do efeito Delay Esse figura apresenta o resultado mais importante, que é a comparação do desempenho de cada um dos algoritmos para um determinado efeito. Ela é resultado da contagem do número de instruções do efeito para cada implementação, combinado com o tempo de atraso de cada componente utilizado. Com esses valores foi possível calcular qual o tempo de execução do efeito. Analisando-se as tabelas geradas, optou-se pelo uso da multiplicação simples, pois representa o melhor custo-benefício dentre as soluções apresentadas. Objetivando-se a criação de ferramentas de auxílio à programação do processador, e, 11
13 por conseguinte possibilitando a programação do mesmo em alto nível, optou-se por uma arquitetura RISC. Abaixo segue quadro-resumo com as principais definições da arquitetura. Figura 6: Conjunto de Instruções Algumas considerações importantes sobre a definição da arquitetura em 16 bits precisam ser citadas: - esse foi o menor tamanho encontrado que comportasse a definição das instruções em formatos regulares. O menor tamanho foi buscado justamente por se tratar de um sistema embarcado, onde a quantidade de memória disponível geralmente é pequena. - internamente todos os dados são tratados em 16 bits, porém os dados de entrada (amostras de áudio) são de 8 bits. Dessa maneira o processador trabalha com precisão estendida (característica geralmente de DSPs), visando minimizar os problemas com overflow e com problemas de arredondamento ocasionados pela instrução de multiplicação - conseguiu-se criar um banco com 16 registradores de 16 bits, o que garante uma boa alocação de registradores futuramente. - os registradores de uso geral podem ser usados para endereçamento sem problemas. O espaço de endereçamento de 64 kbytes é mais que o atualmente necessário, o que garante a possibilidade de futuras extensões no projeto. 12
14 7 ORGANIZAÇÃO A organização do processador segue o princípio de projeto adotado na definição da arquitetura. Optou-se por uma implementação multiciclo por ser mais eficiente que uma implementação monociclo e mais simples que uma implementação utilizando pipeline. Abaixo segue figura contendo as principais informações das definições feitas no projeto da organização do processador: Figura 7: Organização do processador Algumas definições sobre o controle ainda serão tomadas, por isso a parte dos jumps não está totalmente definida no datapath acima. 13
15 8 ESTADO ATUAL Do cronograma apresentado abaixo, todas as atividades previstas até o mês de maio estão terminadas. 1. Definição e implementação em linguagem de alto nível dos efeitos desejados 2. Familiarização com as ferramentas SystemC, ArchC e o pacote de ferramentas da Mentor Graphics 3. Projeto e Validação da arquitetura do ASIP (modelo funcional, sem precisão de ciclos) 4. Projeto e Validação da organização do ASIP (modelo com precisão de ciclos) 5. Projeto e Validação do ASIP em Baixo Nível 6. Desenvolvimento de Software para o ASIP 7. Integração e Teste 8. Relatório final 9. Entrega do Relatório à Banca Ativ. 02/04 03/04 04/04 05/04 06/04 07/04 08/04 09/04 10/04 11/04 1 X 2 X 3 X X 4 X X 5 X X X X 6 X X X X 7 X 8 X X 9 X 14
16 Referências [1] SystemC homepage. In [2] OSCI. SystemC Version 2.0 User s Guide, [3] The ArchC Resource Center. In [4] RIGO, Sandro, The ArchC Architecture Description Language v0.8.1 Reference Manual, Instituto de Computação - Unicamp, Laboratório de Sistemas de Computadores. 15
UNIVERSIDADE FEDERAL DE SANTA CATARINA
UNIVERSIDADE FEDERAL DE SANTA CATARINA PROJETO CONCEITUAL DE UM ASIP PARA PROCESSAMENTO DIGITAL DE ÁUDIO Eduardo Koerich d Ávila Vinicius Almeida Carlos Florianópolis - SC 2004/2 UNIVERSIDADE FEDERAL DE
Leia maisMETODOLOGIA BASEADA EM ADL PARA NÚCLEOS DE ASIP EXTENSÍVEIS: UM ESTUDO DE CASO
1 METODOLOGIA BASEADA EM ADL PARA NÚCLEOS DE ASIP EXTENSÍVEIS: UM ESTUDO DE CASO Vinicius A. Carlos *, Eduardo K. d'ávila, Luiz C. V. dos Santos Departamento de Informática e Estatística Universidade Federal
Leia maisUMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO UMA HIERARQUIA DE MEMÓRIA PARA UM MODELO RTL DO PROCESSADOR RISC-V SINTETISÁVEL EM FPGA PROPOSTA DE TRABALHO
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS
Leia maisFPGA & VHDL. Tutorial
FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves
Leia maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisProjeto com Linguagens de Descrição de Hardware
Projeto com Linguagens de Descrição de Hardware Versão 2012 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware.
Leia maisFPGA & VHDL. Tutorial Aula 1. Computação Digital
FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma
Leia maisLinguagens de Programação
Universidade Federal do Rio Grande do Norte Centro de Tecnologia Departamento de Computação e Automação Linguagens de Programação Professor Responsável: Luiz Affonso Henderson Guedes de Oliveira Prof.
Leia maisPROJETO DE UM MODELO DE UM CONVERSOR ANALÓGICO DIGITAL PARA SOC S
UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA PROJETO DE UM MODELO DE UM CONVERSOR ANALÓGICO DIGITAL PARA SOC S PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:
Leia maisInfraestrutura de Hardware. Funcionamento de um Computador
Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é
Leia maisENGENHARIA DE SISTEMAS MICROPROCESSADOS
ENGENHARIA DE SISTEMAS MICROPROCESSADOS Prof. Pierre Vilar Dantas Turma: 0040-A Horário: 4N Aula 01-26/07/2017 Plano de ensino Professor www.linkedin.com/in/pierredantas/ TÓPICOS Conceitos gerais. Evolução
Leia maisArquitetura de Computadores
Arquitetura de Computadores Prof. Eduardo Simões de Albuquerque Instituto de Informática UFG 1o. Semestre / 2006 Adaptado do material do prof. Fábio Moreira Costa Programa e Introdução Assunto do curso
Leia maisSistema Computacional
Algoritmos e Lógica de Programação Conceitos Básicos Abstração Reinaldo Gomes reinaldo@cefet-al.br O que é um? Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e.
Leia maisMODELAGEM DE TRANSISTORES E DE CIRCUITOS ANALÓGICOS CMOS USANDO VERILOG-AMS
MODELAGEM DE TRANSISTORES E DE CIRCUITOS ANALÓGICOS CMOS USANDO VERILOG-AMS I. Autor: Prof. Oscar da Costa Gouveia Filho Departamento de Engenharia Elétrica Universidade Federal do Paraná II. Resumo: Verilog-AMS
Leia maisDesenvolvendo aplicações com LabVIEW FPGA. Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas
Desenvolvendo aplicações com LabVIEW FPGA Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware
Leia maisArquitetura e Organização de computadores
Arquitetura e Organização de computadores Aula 1: Organização e evolução de computador, parte 2 Prof. MSc. Pedro Brandão Neto, pedroobn@gmail.com Sistemas de Informação - UNDB Introdução 2 Máquinas Multiníveis
Leia maisInfraestrutura de Hardware. Implementação Multiciclo de um Processador Simples
Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e
Leia maisCalculadora Simples em VHDL
Calculadora Simples em VHDL Versão 2014 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware. São apresentados
Leia maisArquitetura de Computadores. Conjunto de Instruções
Arquitetura de Computadores Conjunto de Instruções Arquitetura do Conjunto das Instruções ISA (Instruction Set Architecture) Traduz para uma linguagem intermediária (ISA) os vários programas em diversas
Leia maisUniversidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever
Leia maisMicroprocessadores CPU. Unidade de Controle. Prof. Henrique
Microprocessadores CPU Unidade de Controle Prof. Henrique Roteiro Registradores; Unidade de Controle Níveis de Complexidade Introdução Um sistema microprocessado conta com diversos dispositivos para um
Leia maisULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.
PROCESSADOR ULA Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. ULA Uma ULA típica pode realizar as operações artiméticas: - adição; - subtração; E lógicas: - comparação
Leia maisGFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM
GFM015 Introdução à Computação Plano de Curso e Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM Plano de Curso Ementa Noções básicas sobre os componentes de
Leia mais2. A influência do tamanho da palavra
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante a execução de
Leia maisTecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)
Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora
Leia maisCompiladores. Geração de Código Objeto
Compiladores Geração de Código Objeto Cristiano Lehrer, M.Sc. Atividades do Compilador Arquivo de origem Arquivo de destino Análise Otimização Geração de Código Intermediário Geração de Código Final Síntese
Leia maisInfraestrutura de Hardware. Implementação Monociclo de um Processador Simples
Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço
Leia maisAlgoritmos Computacionais
UNIDADE 1 Processador e instruções Memórias Dispositivos de Entrada e Saída Software ARQUITETURA BÁSICA UCP Unidade central de processamento MEM Memória E/S Dispositivos de entrada e saída UCP UNIDADE
Leia maisPROGRAMAÇÃO I. Introdução
PROGRAMAÇÃO I Introdução Introdução 2 Princípios da Solução de Problemas Problema 1 Fase de Resolução do Problema Solução na forma de Algoritmo Solução como um programa de computador 2 Fase de Implementação
Leia maisSistemas Operacionais
Sistemas Operacionais CAP 2: Conceitos de Hardware e Software Prof. MSc. Diego R. Moraes diegorm@anhanguera.com Download de todo conteúdo da disciplina https://sites.google.com/site/diegorafaelmoraes/downloads
Leia maisPlano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL
Instituto Federal de Santa Catarina Área de Telecomunicações SST20707 Síntese de Sistemas de Telecomunicações Prof. Roberto de Matos viso de direitos utorais: Transparências baseadas no trabalho do Prof.
Leia maisAula 16: UCP: Conceitos Básicos e Componentes
Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34
Leia maisCompiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores
Motivação Prof. Sérgio Faustino Compiladores Conhecimento das estruturas e algoritmos usados na implementação de linguagens: noções importantes sobre uso de memória, eficiência, etc. Aplicabilidade freqüente
Leia maisConceitos básicos sobre computadores (continuação)
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Conceitos básicos sobre computadores (continuação) Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário O que é um computador e
Leia maisIntrodução à Computação
Introdução à Computação Jordana Sarmenghi Salamon jssalamon@inf.ufes.br jordanasalamon@gmail.com http://inf.ufes.br/~jssalamon Departamento de Informática Universidade Federal do Espírito Santo Agenda
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características
Leia maisArquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)
Arquitetura de Computadores Professor: Vilson Heck Junior (Material: Douglas Juliani) Agenda Conceitos Componentes Funcionamento ou tarefas Otimização e desempenho Conceitos Componente de Hardware que
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA ESCRITO
Leia maisArquitetura de Computadores
Arquitetura de Computadores 2018.1 Computador O computador é uma máquina que realiza processamento de dados automaticamente. Ela é formada por um hardware e um software. O Engenho Analítico é o primeiro
Leia mais2. A influência do tamanho da palavra
PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante
Leia maisFERRAMENTA DE PROFILING PARA PROCESSADORES SCHNEIDER, R. C. 1, NEVES, B. S. 1
FERRAMENTA DE PROFILING PARA PROCESSADORES SCHNEIDER, R. C. 1, NEVES, B. S. 1 1 Universidade Federal do Pampa (UNIPAMPA) Bagé RS Brasil RESUMO O aumento da complexidade dos processadores e de suas etapas
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisUNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC
UNIVERSIDADE FEDERAL DE SANTA CATARINA DANIEL CARLOS CASAROTTO JOSE OTÁVIO CARLOMAGNO FILHO MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC Florianópolis, 2004 DANIEL CARLOS
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 11 Conjuntos de instruções: Modos de endereçamento e formatos slide 1 Diagrama do endereçamento imediato Instrução Opcode
Leia maisCONJUNTO DE INSTRUÇÕES
CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar
Leia maisOrganização e Arquitetura de Computadores INTRODUÇÃO
Organização e Arquitetura de Computadores INTRODUÇÃO A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo
Leia maisCircuitos Digitais Representação Numérica. Sistema Digital. Circuitos Digitais. Conversão A/D e D/A. Circuitos Digitais
2 Sistemas Digitais Aula 2 Introdução à Sistemas Embarcados Prof. Abel Guilhermino Centro de Informática Universidade Federal de Pernambuco Circuitos Digitais Representação Numérica Analógica As entradas
Leia maisUniversidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação
Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Relatório do Trabalho da Disciplina de Arquitetura e Organização de Processadores CMP- 237 Marcelo
Leia maisRevisão: Projeto de Processadores em VHDL
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Revisão: Projeto de Processadores em VHDL DCA0119 Sistemas Digitais Heitor Medeiros Florencio 1 Sumário
Leia maisArquitetura e organização de computadores Uma visão geral
Arquitetura e organização de computadores Uma visão geral MAC 344 - Arquitetura de Computadores Prof. Siang Wun Song Baseado em W. Stallings - Computer Organization and Architecture Objetivo do disciplina
Leia maisProjeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis
Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Álamo G. Silva, Leonardo A. Casillo Departamento de Ciências Exatas e Naturais Universidade Federal Rural do Semi- Árido
Leia maisDSP Builder - Altera. MO801 - Tópicos em Arquitetura e Hardware. Michele Tamberlini 05/2006
DSP Builder - Altera MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006 DSP Builder Roteiro Introdução Funcionalidades MegaCore MATLAB / SIMULINK SOPC Builder Bibliotecas Introdução Algoritmos
Leia maisRelatório Circuitos Lógicos. Calculadora 4 bits
INSTITUTO FEDERAL DE SANTA CATARINA-IFSC CÂMPUS SÃO JOSÉ Relatório Circuitos Lógicos Calculadora 4 bits Marcelo Bittencourt do Nascimento Filho Sarom da Silva Torres SÃO JOSÉ, 2018 1. Introdução O presente
Leia maisDisciplina: Arquitetura de Computadores
Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na
Leia maisSistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos
Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia Informática e de Computadores
Leia maisINTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL
INTRODUÇÃO À TECNOLOGIA DA ORGANIZAÇÃO COMPUTACIONAL PROFESSOR CARLOS MUNIZ ORGANIZAÇÃO DE UM COMPUTADOR TÍPICO Memória: Armazena dados e programas Processador (CPU - Central Processing Unit): Executa
Leia maisNível do Conjunto de Instruções Prof. Edson Pedro Ferlin
1 Definições Nível ISA (Instruction Set Architecture). Está posicionado entre o nível da microarquitetura e o nível do sistema operacional. É a interface entre o software e o hardware. Nesse nível está
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE
Leia maisArquitetura de Computadores I
Arquitetura de Computadores I Aritmética Computacional - Inteiros - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário A unidade lógico-aritmética Representação de números inteiros
Leia maisPrograma Analítico de Disciplina INF251 Organização de Computadores I
0 Programa Analítico de Disciplina INF51 Organização de Computadores I Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas:
Leia maisArquitetura de Sistemas Digitais
Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Arquitetura de Sistemas Digitais Lucas Cordeiro lucascordeiro@ufam.edu.br Notas de Aula Os slides deste
Leia maisPROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar
- Aula 1 - O NÍVEL DA LÓGICA DIGITAL 1. INTRODUÇÃO Na parte inferior da hierarquia da figura abaixo encontramos o nível da lógica digital, o verdadeiro hardware do computador. Este nível situa-se na fronteira
Leia maisCompiladores. Introdução à Compiladores
Compiladores Introdução à Compiladores Cristiano Lehrer, M.Sc. Introdução (1/2) O meio mais eficaz de comunicação entre pessoas é a linguagem (língua ou idioma). Na programação de computadores, uma linguagem
Leia maisFEDERAL UNIVERSITY OF RIO GRANDE DO SUL
Tutorial ModelSim Workshop IEEE Circuits and Systems Society UFRGS Student Branch Bruno Zatt UFRGS - Porto Alegre BRAZIL Mentor Graphics ModelSim ModelSim é, atualmente, a ferramenta de simulação mais
Leia maisSistemas Operacionais. Conceitos de Hardware
Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal
Leia maisIntrodução à Computação
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Conceitos Básicos de Eletrônica Digital (Parte IV) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br
Leia maisLivro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC
Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Linguagem para descrever o funcionamento de um sistema (o que e como o sistema faz). O sistema descrito em HDL
Leia maisProjeto de Processadores Programáveis
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Projeto de Processadores Programáveis DCA0119 Sistemas Digitais Heitor Medeiros Florencio Sumário Processadores
Leia maisMicroarquiteturas Avançadas
Universidade Federal do Rio de Janeiro Arquitetura de Computadores I Microarquiteturas Avançadas Gabriel P. Silva Introdução As arquiteturas dos processadores têm evoluído ao longo dos anos, e junto com
Leia maisBruno Ribeiro da Silva. A adaptação de um sistema operacional para a execução em uma diferente arquitetura
Bruno Ribeiro da Silva A adaptação de um sistema operacional para a execução em uma diferente arquitetura Universidade Federal de Santa Catarina Florianópolis, Fevereiro de 2007 1 Bruno Ribeiro da Silva
Leia maisIntrodução a Sistemas Digitais
Introdução a Sistemas Digitais Definição Sistemas Digitais Projeto Revisão: Circuitos Combinacionais Circuitos Sequênciais Máquinas de Estados Sistemas Digitais Definição Um sistema digital é um sistema
Leia maisOrganização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
Leia mais2 Trabalhos Relacionados
Trabalhos Relacionados 16 2 Trabalhos Relacionados Com o intuito de conhecer e aprofundar os conhecimentos sobre o conceito de processadores de rede são apresentados a seguir, três trabalhos relacionados
Leia maisSistemas Operacionais
Brainstormig Sistemas Operacionais Processos e multiprogramação Aula 2 Quais são os componentes de um programa? Como podemos representar um programa em execução? Onde ele inicia a executar? Como se mapeia
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Conceitos básicos Linguagem/código
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução
Leia maisProcessamento de áudio em tempo real utilizando dispositivos não convencionais:
Processamento de áudio em tempo real utilizando dispositivos não convencionais: Processamento paralelo com Pure Data e GPU. André Jucovsky Bianchi ajb@ime.usp.br Departamento de Ciência da Computação Instituto
Leia maisPSI3441 Arquitetura de Sistemas Embarcados
PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio
Leia maisIntrodução à Programação de Computadores Fabricação Mecânica
Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 04 - Linguagens de Programação, Interpretador, compilador
Leia maisCPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3
CPU CPU Funções: Processamento; Controle Componentes: UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3 Processador A função de um computador é executar tarefas
Leia maisIntrodução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)
Introdução Arquitetura de Hardware Introdução (Aula 2) Organização Estruturada de Computadores 01- Monitor 02- Placa-Mãe 03- Processador 04- Memória RAM 05- Placas de Rede, Som, Vídeo, Fax... 06- Fonte
Leia maisCiclo de Seminários Técnicos
A Computação Reconfigurável no Desenvolvimento de um Sistema Digital Delano Oliveira (delano@dsc.ufcg.edu.br) DSC/CEEI/UFCG Agenda Motivação Objetivo Conceitos Fluxo de Projeto Considerações Finais 2 Motivação
Leia maisProcessadores
Processadores Definição O processador é o Circuito Integrado mais importante do computador. Ele é considerado como o cérebro do computador e funciona como uma UCP Unidade Central de Processamento. Definição
Leia maissumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3
sumário 1 bases numéricas 1 1.1 introdução... 2 1.2 representação de números... 3 1.3 transformação entre bases... 4 1.3.1 método polinomial...4 1.3.2 método de subtrações...5 1.3.3 método das divisões...6
Leia maisFerramenta para Desenvolvimentode Sistemas EmbarcadosUtilizando Linguagem de Alto Nível p.1/25
Universidade Federal do Rio Grande do Sul Escola de Engenharia - Instituto de Informática Graduação em Engenharia de Computação Ferramenta para Desenvolvimento de Sistemas Embarcados Utilizando Linguagem
Leia maisArquitetura e Organização de Computadores
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes
Leia maisUniversidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação. Arquitetura de Computadores I. RISC versus CISC
Universidade Federal do Rio de Janeiro Bacharelado de Ciência da Computação Arquitetura de Computadores I RISC versus CISC Gabriel P. Silva 04.11.2014 Introdução Um dos objetivos de uma arquitetura de
Leia maisAula Introdutória. Arquitetura e Organização de Computadores
GBC036 Arq. e Org. de Computadores 1 Aula Introdutória Arquitetura e Organização de Computadores Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Nesta Aula
Leia maisConjunto de Instruções e Modelos de Arquiteturas
Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira
Leia maisEstendendo o Conjunto de Instruções de um PPC para Uso de Transformadas do H.264
Estendendo o Conjunto de Instruções de um PPC para Uso de Transformadas do H.264 Marcelo Schiavon Porto Roger E. C. Porto {msporto, recporto}@inf.ufrgs.br Introdução 2 O padrão H.264/AVC é o mais novo
Leia maisSistemas Operacionais. Visão Geral
Sistemas Operacionais P R O F. B R U N O A L B U Q U E R Q U E S C R I G N O L I Visão Geral Organização da Apresentação Introdução Componentes de um Sistema de Computação Conceito de SO Objetivos de um
Leia maisIntrodução. (Aula 2) Organização Estruturada de Computadores
Introdução (Aula 2) Organização Estruturada de Computadores Introdução Arquitetura de Hardware 01- Monitor 02- Placa-Mãe 03- Processador 04- Memória RAM 05- Placas de Rede, Som, Vídeo, Fax... 06- Fonte
Leia maisIntrodução à Linguagem VHDL
Fundamentos de Sistemas Digitais Introdução à Linguagem VHDL prof. Dr. Alexandre M. Amory Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar verilog e SystemC Bem didático! um
Leia maisAula 1: Apresentação do Curso
Aula 1: Apresentação do Curso Fernanda Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Fernanda Passos (UFF) Apresentação do Curso FAC 1 / 30 Estrutura da Disciplina
Leia maisLeandro da Silva Freitas. Projeto em Nível RT de IPs Digitais
Leandro da Silva Freitas Projeto em Nível RT de IPs Digitais Florianópolis Julho 2008 Leandro da Silva Freitas Projeto em Nível RT de IPs Digitais Trabalho apresentado como requisito parcial para aprovação
Leia maisInformática I. Aula Aula 18-19/06/06 1
Informática I Aula 18 http://www.ic.uff.br/~bianca/informatica1/ Aula 18-19/06/06 1 Correção da Prova 1 1. Qual dispositivo é considerado o primeiro ancestral do computador? Que operações podem ser realizadas
Leia maisLinguagens de Programação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Linguagens de Programação DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Tópicos da aula
Leia maisOrganização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 CISC RISC MIPS Organização e Arquitetura de Computadores I Sumário Representação de instruções Slide 2 CISC O CISC (Complex Instruction
Leia mais