Pesquisar neste blogue

Mostrar mensagens com a etiqueta Sistemas Digitais. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Sistemas Digitais. Mostrar todas as mensagens

sábado, 15 de março de 2025

Resumo extraído do capítulo 1 livro "Computer Organization and Design RISC-V 2nd edition, by Hennessy and Patterson


Capítulo 1: Abstrações e Tecnologia de Computadores

1.1 Introdução

O capítulo introduz a importância dos sistemas computacionais na sociedade moderna e a constante evolução da tecnologia. São destacados exemplos de avanços tecnológicos, como a computação em automóveis, telemóveis, o Projeto Genoma Humano e a Web. Além disso, são apresentadas três grandes categorias de aplicações de computadores:

  1. Computadores Pessoais (PCs) – Focados na performance para um único utilizador a baixo custo.
  2. Servidores – Computadores de grande capacidade, projetados para múltiplos utilizadores e aplicações complexas.
  3. Computadores Embebidos – Presentes em eletrodomésticos, automóveis, entre outros, com requisitos específicos de desempenho e consumo energético.

O capítulo também discute a transição da era do PC para a era dos dispositivos móveis pessoais (PMDs) e a ascensão da computação na nuvem (Cloud Computing).


1.2 As Sete Grandes Ideias da Arquitetura de Computadores

O capítulo apresenta sete princípios fundamentais da arquitetura de computadores, que orientam o design e a evolução dos sistemas computacionais:

  1. Uso de Abstração para Simplificar o Design – Permite projetar sistemas complexos de forma modular.
  2. Fazer com que o Caso Comum seja Rápido – Otimização das operações mais frequentes para aumentar o desempenho.
  3. Desempenho via Paralelismo – Execução de múltiplas operações simultaneamente para melhorar a velocidade de processamento.
  4. Desempenho via Pipeline – Divisão da execução de instruções em etapas sequenciais para maior eficiência.
  5. Desempenho via Previsão – Técnicas que antecipam resultados para reduzir atrasos computacionais.
  6. Hierarquia de Memória – Uso de múltiplos níveis de memória (cache, RAM, armazenamento) para otimizar acesso a dados.
  7. Confiabilidade via Redundância – Implementação de mecanismos para garantir funcionamento contínuo mesmo em caso de falhas.

1.3 Por baixo do seu Programa

O software é organizado em camadas hierárquicas, com as aplicações no topo e o hardware na base. Duas camadas fundamentais do software são:

  • Sistemas Operativos (SO) – Gerem recursos do computador e fornecem serviços como manipulação de ficheiros e controlo de dispositivos.
  • Compiladores – Traduzem programas escritos em linguagens de alto nível (como C ou Java) para instruções que o hardware pode executar.

A arquitetura de computadores é baseada numa linguagem binária simples, com instruções representadas por números em base 2. A introdução de compiladores e linguagens de alto nível revolucionou a programação, tornando-a mais acessível e eficiente.


1.4 Por Dentro do Computador

Os computadores são compostos por cinco componentes principais:

  1. Entrada (Input) – Dispositivos como teclados e sensores que inserem dados no sistema.
  2. Saída (Output) – Dispositivos como monitores e impressoras que exibem os resultados do processamento.
  3. Processador (CPU) – Unidade que executa instruções e controla a operação do sistema.
  4. Memória – Armazena dados e programas temporariamente durante a execução.
  5. Dispositivos de Armazenamento – Guardam dados permanentemente (discos rígidos, SSDs, memória flash).

Os dispositivos modernos também incluem ecrãs táteis (touchscreen), sensores e conectividade sem fios.


1.5 Tecnologias para Construção de Processadores e Memória

Os avanços tecnológicos permitiram a evolução dos processadores e memórias ao longo do tempo. O transistor, um interruptor eletrónico, é o componente fundamental dos circuitos integrados (chips), que contêm milhões ou bilhões desses dispositivos.

A Lei de Moore previa a duplicação da densidade dos transistores a cada dois anos, impulsionando melhorias no desempenho dos computadores. No entanto, essa tendência tem desacelerado recentemente devido a limitações físicas.

A fabricação de chips envolve um processo complexo que inclui:

  • Produção de lingotes de silício
  • Corte em wafers
  • Aplicação de múltiplas camadas de circuitos
  • Testes e embalagem dos chips

A eficiência na fabricação de chips influencia diretamente o custo dos dispositivos.


1.6 Desempenho

O desempenho de um computador pode ser medido por diversos critérios, como a rapidez na execução de tarefas ou a capacidade de processar múltiplos trabalhos simultaneamente. Para avaliar o desempenho, são utilizados benchmarks, que testam diferentes aspectos do hardware e software.


1.7 A Barreira de Energia (The Power Wall)

O aumento da frequência dos processadores levou a um consumo excessivo de energia e geração de calor, limitando os ganhos de desempenho. Para superar essa barreira, os designers passaram a focar-se em eficiência energética e computação paralela.


1.8 A Mudança para Multiprocessadores

Devido às limitações da velocidade do clock, a indústria passou a adotar processadores multinúcleo (multicore), que permitem a execução paralela de múltiplas tarefas. Isso exige que os programadores desenvolvam software que aproveite essa arquitetura.


1.9 Benchmarks: Avaliação do Intel Core i7

Para medir o desempenho real de um processador, são utilizados benchmarks, que são conjuntos de testes padronizados. O capítulo apresenta um estudo de caso do desempenho do Intel Core i7 em diversas aplicações.


1.10 Acelerando Computações: Multiplicação de Matrizes em Python

O capítulo ilustra como técnicas de otimização podem melhorar o desempenho de cálculos matemáticos em linguagens de alto nível, como Python.


1.11 Falácias e Armadilhas

Os autores alertam sobre equívocos comuns no design de computadores, como:

  • Assumir que maior frequência de clock significa automaticamente melhor desempenho.
  • Acreditar que um processador mais rápido melhorará o desempenho de qualquer programa.

1.12 Considerações Finais

O capítulo reforça a importância da compreensão da arquitetura de computadores para programadores e engenheiros, destacando que a evolução tecnológica continua a moldar o futuro da computação.


Computer Organization and Design RISC-V 2nd edition, Hennessy and Patterson, Cap 1





Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.


quarta-feira, 5 de março de 2025

Resumo extraído do Capítulo 1 do livro "Logic and Computer Design Fundamentals" de Morris Mano


O Capítulo 1 do livro "Logic and Computer Design Fundamentals" de Morris Mano aborda os conceitos fundamentais dos sistemas digitais e da representação da informação. 

Capítulo 1 – Sistemas Digitais e Representação da Informação

Este capítulo introduz os conceitos fundamentais dos sistemas digitais, abordando a natureza da informação e como esta é representada e processada nos computadores. Começa por diferenciar sistemas analógicos e digitais, explicando por que os computadores modernos utilizam representação digital. Apresenta também as diferentes camadas de abstração no design computacional, os sistemas de numeração utilizados para manipulação de dados e os códigos binários usados para representar informação.


1.1 Introdução aos Sistemas Digitais

Os sistemas digitais são baseados na manipulação de informação representada por valores discretos. O termo “digital” vem do latim digitus (dedo), pois os primeiros computadores foram concebidos para processar números inteiros representados como dígitos.

Os sistemas digitais utilizam circuitos lógicos para processar dados binários, onde cada valor pode ser representado por 0 (falso) e 1 (verdadeiro). Esta abordagem diferencia-se dos sistemas analógicos, que trabalham com sinais contínuos.

1.1.1 Computadores Digitais e a Importância do Binário

O computador digital é um sistema programável capaz de executar uma sequência de instruções armazenadas na memória. Ele processa informação usando circuitos lógicos binários, que operam com dois estados elétricos distintos (0 e 1). Essa escolha deve-se a:

  • Simplicidade de implementação: os circuitos eletrónicos podem ser projetados para reconhecer apenas dois níveis de tensão.
  • Maior resistência a ruído: sistemas digitais podem interpretar corretamente os valores, mesmo com pequenas variações na tensão.
  • Facilidade de armazenamento e processamento: as operações aritméticas e lógicas podem ser realizadas de forma eficiente com números binários.

Os computadores modernos são sistemas digitais de uso geral, capazes de executar várias tarefas, desde cálculos numéricos até processamento de texto e multimédia.


1.2 Representação da Informação

A informação pode ser classificada como contínua (analógica) ou discreta (digital). Os computadores lidam essencialmente com informação discreta, mas podem converter sinais analógicos para digital e vice-versa.

1.2.1 Sinais Analógicos vs. Sinais Digitais

  • Sinal analógico: varia de forma contínua dentro de um intervalo. Exemplo: temperatura, pressão, corrente elétrica.
  • Sinal digital: assume apenas um conjunto finito de valores distintos. Exemplo: valores binários 0 e 1.

Para converter sinais analógicos em digitais, usa-se um Conversor Analógico-Digital (ADC). O processo de conversão envolve:

  1. Amostragem: medir o sinal analógico em intervalos de tempo fixos.
  2. Quantização: atribuir um valor discreto ao sinal medido.
  3. Codificação: representar o valor quantizado num sistema binário.

1.3 Arquitetura de um Computador Digital

Um computador digital é composto por diferentes componentes interligados. A arquitetura básica inclui:

  • Unidade Central de Processamento (CPU): processa dados e executa instruções.
  • Memória: armazena programas e dados temporários e permanentes.
  • Dispositivos de Entrada/Saída (I/O): permitem a interação do computador com o utilizador e outros sistemas.
  • Barramento (Bus): interliga os componentes, permitindo a transferência de dados.

1.3.1 Modelo de um Computador Digital

Um computador digital é um sistema que executa instruções armazenadas na memória. A sua estrutura básica inclui:

  • Memória: armazena programas e dados.
  • Datapath: executa operações aritméticas e lógicas.
  • Unidade de Controlo: gere a execução das instruções e o fluxo de informação.
  • Entrada e Saída: permitem a comunicação com o utilizador e outros sistemas.

1.3.2 Sistemas Embebidos (Embedded Systems)

Além dos computadores pessoais, existem sistemas embebidos, que são dispositivos computacionais especializados em tarefas específicas. Exemplos incluem:

  • Microcontroladores em automóveis.
  • Sensores em eletrodomésticos.
  • Dispositivos médicos.

Os sistemas embebidos utilizam software dedicado, muitas vezes armazenado permanentemente, para desempenhar funções específicas.


1.4 Camadas de Abstração no Design de Computadores

Para lidar com a complexidade dos sistemas computacionais, o design é organizado em camadas de abstração, onde cada nível esconde os detalhes do nível inferior:

  1. Algoritmos: descrevem o que precisa ser feito para resolver um problema.
  2. Linguagens de Programação: traduzem os algoritmos para código executável.
  3. Sistemas Operativos: gerem os recursos do computador e executam os programas.
  4. Arquitetura do Conjunto de Instruções (ISA): define as operações que o processador pode executar.
  5. Microarquitetura: descreve a implementação interna do processador.
  6. Transferência de Registos: define como os dados circulam dentro do processador.
  7. Portas Lógicas: implementam operações básicas.
  8. Circuitos Transistorizados: realizam a computação física.

Este modelo permite a especialização em diferentes níveis do design de computadores.


1.5 Sistemas de Numeração

Os computadores manipulam números em diferentes bases numéricas:

  1. Decimal (Base 10): utilizado pelos humanos.
  2. Binário (Base 2): usado internamente nos circuitos digitais.
  3. Octal (Base 8) e Hexadecimal (Base 16): formas compactas de representar números binários.

1.5.1 Conversão entre Bases

A conversão entre sistemas de numeração é essencial para a comunicação entre humanos e computadores. Os principais métodos incluem:

  • Conversão de Decimal para Binário: dividir sucessivamente por 2.
  • Conversão de Binário para Decimal: expandir o número como uma soma de potências de 2.
  • Conversão entre Binário, Octal e Hexadecimal: agrupar bits em conjuntos de 3 (octal) ou 4 (hexadecimal).

1.6 Representação de Dados no Computador

Os computadores representam números, caracteres e outros tipos de dados através de códigos binários.

1.6.1 Código BCD (Binary-Coded Decimal)

O BCD representa números decimais com 4 bits por dígito decimal. Por exemplo, o número 185 em BCD seria:

(185)10 = (0001 1000 0101)BCD

1.6.2 Código ASCII

O ASCII (American Standard Code for Information Interchange) é um código de 7 bits que representa caracteres alfanuméricos e símbolos especiais. Exemplo:


'A' = 01000001 'B' = 01000010

1.7 Operações Aritméticas em Binário

Os computadores realizam operações matemáticas usando números binários. Algumas regras básicas incluem:

  • Adição binária: segue regras similares à adição decimal, mas com base 2.
  • Subtração binária: pode usar o método do complemento para facilitar os cálculos.
  • Multiplicação binária: baseada em deslocamentos e somas sucessivas.
  • Divisão binária: semelhante à divisão decimal, mas operando em binário.

Logic and Computer Design Fundamentals - Morris Mano - Cap 1





Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.


domingo, 26 de janeiro de 2025

Exercício resolvido de Sistemas Digitais


Implementação da função Z = 3X + 5Y/4 +2, usando apenas somadores.


Exercício resolvido de Sistemas Digitais Implementação da função Z = 3X + 5Y/4 +2, usando apenas somadores. Implementação da função Z = 3X + 5Y/4 +2, usando apenas somadores




Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.


quarta-feira, 31 de janeiro de 2024

Resolução de problema de Circuítos Sequenciais Assíncronos


Problema de Sistemas Digitais II, do IPS













Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.



sexta-feira, 26 de janeiro de 2024

Sistemas Digitais - resolução de pergunta de exame

Determine o diagrama de estados correspondente ao circuíto lógico representado na figura.







Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.


sábado, 26 de agosto de 2023

Sistemas Digitais - conselhos para a escolha de tutoria/explicador

Na seleção do(a) prestador(a) de serviços de tutoria, ou explicações, como em todos os outros serviços, é necessário saber escolher. Para saber escolher é necessário saber distinguir as diferenças entre os vários prestadores dos serviços.
Para ser tutor, explicador que leve os seus alunos ao sucesso na aprendizagem, não basta saber as matérias. É preciso saber ensinar e adaptar-se às necessidades específicas de cada pessoa/estudante.

Para ser explicador de matérias de ensino superior, é também necessário estar em permanente atualização e estudo, porque as matérias (mesmo quando designadas pelo mesmo nome), são lecionadas de forma diferente em cada faculdade, em cada curso e, frequentemente, por cada docente.
Exemplifico aqui com Sistemas Digitais (mas podia ser com qualquer outra matéria). 

Publico abaixo recorte de alguns exercícios extraídos de exames de Sistemas Digitais de duas faculdades diferentes, para exemplificar as diferentes abordagens. Não só as questões são colocadas de forma diferentes como as respostas esperadas pelos respectivos docentes também são diferentes. Cada docente espera receber as respostas da forma como ensinou.

Faculdade 1




Faculdade 2


Sistemas Digitais é uma matéria com grande procura para explicações de ensino superior, porque é uma matéria que começa a ser lecionada no 1º ano/1º semestre da faculdade e, a maioria dos alunos nunca teve contacto com esta matéria no ensino secundário.
Como existe muita procura, existe também muita oferta de explicadores. A maioria dos quais conhece apenas os Sistemas Digitais tal como os aprendeu no seu curso e faculdade. Esta grande maioria não sabe e não está interessado em investir tempo a estudar a forma como as matérias são ensinadas noutros cursos e faculdades. Querem apenas ganhar dinheiro com as explicações, com o menor esforço possível.

Quando procurar um explicador para matérias de ensino superior, não se esqueça de perguntar se a pessoa conhece a matéria tal como ela é ensinada ao curso e na faculdade, em que estuda.



Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Veja testemunhos de antigos alunos.




terça-feira, 16 de maio de 2023

Sistemas Digitais e Inteligência Artificial

Esta publicação foi criada com a assistência da ferramenta de IA tome.app.
Aceitei a sugestão da imagem mas fiz diversas alterações ao texto.
De qualquer forma agilizou a produção.




Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

quarta-feira, 22 de fevereiro de 2023

Exercício de teste de Sistemas Digitais, FEUP

Pretende-se detetar uma sequência, não permitindo sobreposição de sequências.








Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

segunda-feira, 20 de fevereiro de 2023

Explicação de Sistemas Digitais online

Exemplo de explicação online, decorrida em 14-02-2023.
Resolução de exercícios de Sistemas Digitais, do exame de julho de 2019, da U. Lusófona do Porto.





Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

quarta-feira, 15 de fevereiro de 2023

Resolução de problema de Sistemas Digitais, FEUP

Pretende-se detetar a igualdade de duas variáveis A e B, por 3 ou mais ciclos de relógio consecutivos.







Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

quarta-feira, 8 de fevereiro de 2023

Representação de números em vírgula flutuante e em vírgula fixa

Pede-se a ordenação crescente dos números A,B,C, dados com representação hexadecimal e cada um deles codificado de forma diferente. Veja-se a resolução na imagem.





Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

terça-feira, 7 de fevereiro de 2023

Resolução de pergunta de exame de Sistemas Digitais

Pede-se: diagrama de estados partindo do circuito lógico mostrado na figura no final da página.






Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. 

sábado, 14 de março de 2020

Flip-Flop XY partindo de um Flip-Flop JK


Utilizando um Flip-Flop JK e alguma lógica adicional construir um Flip-Flop XY




Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.


quinta-feira, 28 de março de 2019

Códigos em assembly para simular no PEPE - Arquitectura de Computadores - IST Tagus


Somadores: esquemas e códigos


 Faça download da montagem acima


Faça download da montagem acima





Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.

Contacte-nos:

sábado, 8 de dezembro de 2018

Resolução de pergunta de exame de Lógica e Sistemas Digitais - ISEL


Resolução da alínea b) do problema 6, do 2º teste de 12-Fev-2016





Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.

Contacte-nos:

domingo, 25 de novembro de 2018

Resolução de problema de teste de Sistemas Digitais I - UAL - 2009-04-15


Implementação de uma função com um MUX





Se quiser explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.

Contacte-nos:

segunda-feira, 29 de outubro de 2018

Como construir um flip-flop JK com um flip-flop D e lógica adicional


Precisa de um flip-flop do tipo JK mas só tem um flip-flop tipo D e circuitos combinatórios?
Não tem problema. Veja abaixo como pode fabricar um JK com um D e lógica combinatória.



Se quiser explicações sobre matérias que encontre neste blogue), contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.






terça-feira, 23 de outubro de 2018

Resolução de um exercício de teste de Circuitos Eléctricos e Sistemas Digitais


Resolução de um exercício do 1º teste de 2012-2013, de CESD, eng. Biomédica, FCUL









Se quiser explicações sobre matérias que encontre neste blogue), contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer.