Introdução ao Hardware – Arquitetura de Von Neumann, Sistemas Embarcados e Paralelismo

Atividade 1 – Respostas diretas

Do que se trata o conteúdo? Apresentação dos conceitos básicos de hardware, abordando a arquitetura de Von Neumann, memória, unidades funcionais, ciclo de busca‑execução, sistemas embarcados e formas de paralelismo.

Principais assuntos (exemplos)

  • Arquitetura de Von Neumann – memória única (RAM/ROM), ULA, unidades de entrada/saída e controle.
  • Memória – RAM volátil (ex.: memória principal), ROM não volátil (ex.: firmware).
  • Registradores e Barramento – registrador de instrução (IR), contador de programa (PC), largura de barramento.
  • Cache e Pipeline – memória de alta velocidade, execução sobreposta de instruções.
  • Sistemas Embarcados – micro‑ondas, automóveis, smart‑TV, com software único armazenado em memória.
  • Arquiteturas Paralelas – paralelismo de nível de bits, instrução, dados e tarefa.

Ponto de maior atenção O ciclo de busca‑execução (fetch‑decode‑execute) e a interação entre as unidades de controle, ULA e memória.

Conclusão Compreender a estrutura fundamental de um computador permite entender como instruções são processadas, como dispositivos embarcados funcionam e como o paralelismo pode acelerar a execução de programas.

Atividade 2 – Resumo dos tópicos e subtópicos

1. Arquitetura de Von Neumann

 1.1 Conceito e histórico – proposta por John von Neumann (1945) que introduziu o modelo de programa armazenado.

 1.2 Componentes

  1.2.1 Unidade de Memória – RAM (volátil) e ROM (não volátil) que armazenam dados e instruções.

  1.2.2 Unidade Lógica e Aritmética (ULA) – realiza operações aritméticas (soma, subtração) e lógicas (AND, OR, NOT).

  1.2.3 Unidade de Entrada (IU) e Unidade de Saída (OU) – interface com periféricos (teclado, mouse, monitor, impressora).

  1.2.4 Unidade de Controle (UC) – gera sinais de controle, gerencia o ciclo de busca‑execução.

 1.3 Ciclo Busca‑Execução

  1.3.1 Registrador de Instrução (IR) – contém a instrução corrente.

  1.3.2 Contador de Programa (PC) – aponta para o endereço da próxima instrução.

 1.4 Barramento e Largura – conjunto de linhas que transportam endereço, dados e sinais de controle; a largura determina quantos bits são transferidos simultaneamente.

 1.5 Cache e Pipeline – memória de alta velocidade para reduzir latência; pipeline permite sobreposição de fases do ciclo.

2. Memória

 2.1 RAM – acesso aleatório, volátil, usada para dados temporários.

 2.2 ROM – somente leitura, não volátil, contém firmware.

 2.3 Endereçamento e indereçabilidade – número de bits de endereço define a quantidade de posições endereçáveis (ex.: 8 bits → 256 posições).

3. Sistemas Embarcados

 3.1 Definição e exemplos – dispositivos dedicados a funções específicas (TV, micro‑ondas, automóveis, drones).

 3.2 Software embarcado – geralmente um único programa armazenado em memória não volátil que controla todo o hardware.

4. Arquiteturas Paralelas

 4.1 Nível de bits – aumento da largura da palavra (ex.: 8 bits → 16 bits) reduz o número de ciclos.

 4.2 Nível de instrução – instruções independentes podem ser executadas simultaneamente.

 4.3 Nível de dados – mesma instrução aplicada a diferentes conjuntos de dados em múltiplos processadores (SIMD).

 4.4 Nível de tarefa – processadores executam tarefas distintas, podendo compartilhar memória global ou usar memória local.

 4.5 Compartilhamento de memória – necessidade de sincronização quando vários núcleos acessam dados comuns.

Atividade 3 – Mapa mental

mindmap root((Hardware)) sub1(Arquitetura de Von Neumann) sub1a(Unidade de Memória) sub1b(ULA) sub1c(Unidade de Controle) sub1d(Ciclo Busca‑Execução) sub2(Memória) sub2a(RAM – volátil) sub2b(ROM – não volátil) sub2c(Endereçamento) sub3(Sistemas Embarcados) sub3a(Ex.: TV, micro‑ondas) sub3b(Firmware único) sub4(Arquiteturas Paralelas) sub4a(Nível de bits) sub4b(Nível de instrução) sub4c(Nível de dados) sub4d(Nível de tarefa)

Questões sobre o assunto

1. Na arquitetura de Von Neumann, qual unidade é responsável por gerar os sinais de controle que coordenam as demais unidades?
1.50 pontos Média

Resposta correta: C) Unidade de Controle

A Unidade de Controle gera os sinais de timing e controle que dirigem a ULA, a memória e as unidades de I/O.

2. Qual a principal vantagem de usar uma CPU de 16 bits em relação a uma de 8 bits ao processar um número de 16 bits?
2.50 pontos Difícil

Resposta correta: A) Reduz o número de ciclos de execução

Uma CPU de 16 bits pode processar o operando completo em um único ciclo, enquanto a de 8 bits precisaria de dois ciclos.

3. Em um sistema de paralelismo de nível de dados, qual das afirmativas é verdadeira?
2.50 pontos Difícil

Resposta correta: B) Todos os processadores executam a mesma instrução simultaneamente em diferentes dados

Esse modelo corresponde ao SIMD (Single Instruction, Multiple Data).

4. Considere uma CPU com instrução de 8 bits (4 bits opcode, 4 bits endereço). O conteúdo da memória no endereço 0x07 é 0x3C (0011 1100). Se o PC aponta para 0x00 e o conteúdo desse endereço é 0x73 (0111 0011), qual operação será executada? (opcode 0111 = “LOAD A, [addr]”).
3.50 pontos Extrema

Resposta correta: C) Carregar o conteúdo de 0x07 (0x3C) no registrador A

Opcode 0111 indica “LOAD A, [addr]”; o endereço de 4 bits é 0011 (0x3), mas como o exemplo define o endereço como 0x07, o conteúdo 0x3C é carregado em A.

Pontuação Total
0.00

Texto original

O texto original pode conter falhas de gramática ou de concordância, isso ocorre porque ele foi obtido por um processo de extração de texto automático.
Texto extraído do video Introdução a Conceitos de Computação - Hardware (LIBRAS)

Olá, alunas e alunos do curso de Introdução a Concentre de Contação.
Esta vídeo-aula eu vou estar falando um pouco sobre hardware.
Eu vou apresentar arquitetura de Von Neumann, em seguida vou falar um pouquinho sobre sistemas embarcados e arquiteturas paralelas.
Na arquitetura de Von Neumann eu vou mencionar a arquitetura de memória, a unidade lógica, a unidade de internet, a unidade de controle, como se dá o ciclo de busca e execução.
Von Neumann é um matemático, físico, cientista da computação, engenheiro, contribuiu em diferentes áreas para a participou do projeto de uma rata que construiu a primeira rata nuclear.
E nesse período da segunda guerra ele também teragiou com o desenvolvimento do edifrack, que foi o primeiro computador de programa armazenado em 45.
Nessa ocasião ele publicou um trabalho onde, com o novo termo arquitetura de Von Neumann.
Na verdade essa arquitetura utiliza a ideia esquizando a NAC, que foi o primeiro computador de tal de propósito geral.
E construído por John Eckert e John Maulcry.
Arquitatura de Von Neumann é a presença, uma unidade de memória que armazena tanto dados como instruções, uma unidade lógica e elitimética que armazena que é capaz de efetuar operações elitiméticos e operações lógicas sobre os dados, a unidade de entrada que move os dados do mundo exterior para o computador, a unidade de saída que move os dados do computador para o mundo exterior e uma unidade de controle que funciona como um maestro, fazendo com que todo esse sistema funciona de forma se incoronizada para dessa arquitetura.
Bom, a memória é uma coleção de células, cada uma com o endereço físico.
E nesse contexto nós temos a Randall Access Memory, que seria quando uma célula pode ser acessada diretamente, que é a memória necessaleira e a memória apenas de leitura, que é a Rydion inemory.
Basicamente, Rand não mantém sua configuração de bits quando a energia desligada, o que não acontece com a ROM.
Nesse caso, a gente pode entender a RAM como uma memória violátria e a ROM não sendo uma memória violátria.
O bom disso é que sistemas, quando você inicia sua máquina é diversos sistemas que são gravados nessa memória para fazerem o início de funcionamento da sua máquina, a mesma coisa, do seu computador.
A mesma coisa é um sistema com um micro processador onde o sistema embarcado, onde você vai ligar ele e muitas vezes os sistemas que controla o aparelho já estão gravados numa memória destico.
Uma Rydion inemora.
Pode já gravar a zona memória destico.
Nesse contexto a memória tem um interesse físico com essas células de memória.
E aí nós temos o conceito de indereçabilidade.
Por que? Porque a gente vai fazer leitura e a gente vai fazer escrita nessa memória.
Então, nós precisamos achar esse conteúdo.
E o conceito de indereçabilidade diz que o número de bits armazenado define o número de bits armazenado em cada localização indereçável de memória.
Então, dessa forma eu vou ter, por exemplo, aqui nesse exemplo de memória eu tenho um padrão de 8 bits, eu tenho começo com o indereço zero, em binário, e vou até o indereço 255.
E para caro indereço eu vou ter também um padrão de bits relacionado àquela informação que está gravada, que pode ser uma instrução, pode ser um valor inteiro, por sinal, pode ser um pedaço de memória.
E eu vou ter essa informação guardada na memória nesse indereço.
Bom, dessa forma, prosseguindo na arquitetura, nós temos a unidade lógica retimética, que vai realizar as operações elitimáticas ilógicas, edição, subtração, explicação, comparação de dois valores.
Para realizar isso, nós temos que levar em conta que o acesso a memória é um lento anível de processamento.
Então, a gente acaba trazendo o traperto da unidade central de processamento, informações que estão constantemente sendo utilizadas.
Uma maneira de fazer isso é através de registrador, que é um pequenário de armazenamento na central processo unit, que é a unidade central de processamento, usada para guardar valores intermediários ou dados especiais.
Além disso, nós temos nessa arquitetura a unidade de entrada, então, a maneira como a gente pega do mundo exterior e envia para dentro do computador as informações, o que ocorre, por exemplo, através de uma interação com mouse, teclado, ou mesmo usando um leitor para pegar uma informação que está cutificada no código de barra, ou quando você está jogando os comandos que você quer executar no seu jubim através do seu joystick, do seu controle de jogo.
A unidade de saída são dispositivos que vão imprimir ou exibir os dados armazenados em memória, ou fazer uma rota permanente de isso e memória ou em outros dispositivos.
Então, por classo, o monitor, a impressora, mas nós também temos o plot, nós temos projeção, projetores.
Bom, a unidade de controle pela encerra com o mencioneira encarregada do ciclo de buscas e cussão, ou seja, vai executar as operações de buscar, decodificar a informação e executar a tarefa em blist naquela informação.
Bom, para isso nós vamos ter também um registrador de instrução que contém a instituição que está sendo correntemente executada, nós vamos ter um contador de programa que é um registrador que tem o endereço da próxima instituição a ser executada.
E dessa forma, a unidade de controle, com a unidade de lógica iritimética nos dá a unidade central de processamento, que é uma combinação dessas unidades lógicas iritiméticas da unidade de controle, os conhecidos cérebro do computador que vai interpretar e executar as instruções.
Bom, isso tudo demanda um fluxo de informação.
E aí nós temos o barramento que seria uma coleção de fios por os quais os dados vão trafegar.
E o que vai estar trafegando nisso? O endereço os dados e o controle.
O endereço define um local de memória ou dispositivo para o qual o dado irá ou será obtido, você vai fazer a leitura ou escrita.
O controle vai ter a informação que gerenci se fluxo, ele vai dizer basicamente a informação do controle, se você está indo para CPU ou voltando da CPU, da unidade central de processamento.
Alargura de barramento é definida para o número de bits que pode ser transferidos em paralel sobre o barramento.
Então quanto maior for essa largura, mais endereços ou dados, a gente vai estar conseguindo mover.
Bom, lembrem que eu falei que o acesso a memória acaba sendo custoso em termos de tempo comparado com o nível de processamento que você está fazendo.
Então, uma outra maneira de você adiantar de manter esse processamento ativo é você ter uma memória que é um tipo de memória pequena e de alta velocidade destinada a guardar dados frequentemente usados.
Então, dessa forma ela permite um acesso rápido a determinada com a pesta de idade que estão constantemente em uso.
Além disso, para melhorar esse desempenho, nós temos a ideia do encadramento, que é uma técnica que desmembram uma instrução em faços menores que podem ser sobrepostos.
Assim, chegamos a placa mãe, que seria a principal placa de um computador, onde está a arquitetura de bom noino.
A placa mãe possui conexões para ligar outros o seu baramento, como o mouse, o seu teclado e dispositivos, a edicionagem, a nossa imagem.
Bom, finalmente, agora eu vou descrever dentro dessa arquitetura o processo de um ciclo de busca execução, que é, na verdade, de busca de codificação e execução.
Então, vamos supor que nós temos uma máquina com 8 indireços de memória RAM, 4 registra 2, nesse padrão de 8 pís, vamos ter uma unidade central de processamento onde, inicialmente, nós não temos nenhum instrução em registro de instrução.
Nós temos no contador de programa, o indireço inicial de memória, o que significa que nós vamos, na posição 1, a primeira busca na posição 0 desse indireço, e trazer o conteúdo desse indireço para o meu registro do instrução.
Esse foi o processo de busca.
Agora, eu vou fazer a decodificação, a informação que está guardada no registro de instrução, nesse nosso exemplo, nós vamos assumir que os 4 primeiros bits representam o código da operação, uma ser executada, a instrução, e os 4 últimos no indireço relacionado a essa instrução.
Então, vamos supor que esse código 1, 0, 1, representa que a gente carregar a informação que está no indireço no registrador A, no nosso primeiro registrador.
Qual é o indireço? Uma representação binária desse indireço realmente é o indireço 7 de memória.
Então, o que eu vou fazer? Eu vou executar, agora que eu decodifiquei a instrução, eu vou executar.
Bom, isso significa trazer do indireço 7 o conteúdo que está armazenado nesse indireço e guardar no registrador A.
Dessa forma, agora, eu encamento o meu contador de programa e vou para o meu próximo indireço de memória.
Novamente, eu vou fazer uma busca nesse indireço levando para o meu registro de instrução o conteúdo armazenado no indireço 1.
Passa para o processo de decodificação, novamente, vamos supor aqui nesse exemplo que essa sequência de bits remeta a uma operação de carregar no registrador D, o dado que está no indireço a seguir nos quatro últimos bits.
Nesse caso, o indireço, o conteúdo do indireço 6, novamente, eu vou executar essa instrução que é levado o conteúdo desse indireço para o meu registrador D.
Increimento o meu contador de programa, vou para o meu próximo indireço e traga o conteúdo desse indireço no registrador de instrução.
Agora, no meu processo de decodificação, vamos supor que a instrução seja somar os conteúdos que estão guardados na sequência do indireço e armazenar não desses indireços.
Nesse caso, essa instrução deixaria falando bem por cima, estaria em um plícito que você tem os primeiros dois bits representando um direço de um registrador e os outros dois de outro registrador.
Por que? Porque, em uma arquitetura que eu tenho quatro registradores, eu posso assomir que um padrão, que é uma codificação de dois bits é suficiente para guardar os indireços desses registradores.
E nesse caso, essa instrução está dizendo que eu vou somar e armazenar no segundo indireço que é o meu registrador A.
Bom, essa é a minha instrução.
Então, agora, eu vou executar.
Isso significa buscar o indereço do registrador para a minha unidade lógica e a ritmética.
Então, eu busco esses conteúdos através da minha unidade de controle, passo como impute para a minha unidade lógica e a ritmética, mas não só isso, não a unidade lógica e a ritmética, eu vou executar uma instrução que está modelada, projetada em um circuito.
Nesse caso, aqui a gente pode lembrar do somador lá da nossa última aula.
Para isso, eu preciso dizer que eu vou usar o somador.
Eu passo a instrução da operação que eu vou executar, uma soma.
A minha unidade lógica e a ritmética executa essa soma a partir dos imputes e retorna o resultado.
Esse resultado vai ser armazenado no registrador A, que está no indereço 00.
Essa forma, eu vou incrementar o meu contador de programa, vou para o próximo indereço e de lá, eu trago o conteúdo armazenado.
Novamente, vou para o meu processo de declutificação.
Vamos supor agora que a instrução dessa operação seja escrever o conteúdo de A, onde no indereço codificado nos últimos quatro vezes, no caso o indereço 4.
Assim, eu levo o conteúdo do meu registrador direto para a memória no indereço 4.
Dessa forma, nós vimos o ciclo de busca de declutificação e execução na arquitetura de uma proposta provonaima.
Cuiś sistemas embarcados, eles vão ser computadores projetados para realizar uma faixa estreita de funções, como parte de um sistema maior.
Isso já foi definido antes.
Então, a gente sabe que esses sistemas embarcados hoje em dia estão em toda parte.
Nós temos aparelhos eletrônicos como TV, Smart TV, aparelhos de cozinha, microondas, os automóveis, tem sistemas embarcados.
E esses sistemas, esses podem incluir um sistema operacional, mas muitos são tão especializados que eles vão ter toda a lógica implementada no único programa que vai estar armazenado na partilha de um microfluição de microprocessador na memória na parte da RUN, da RIDE ONLY MEMBER.
Agora, falando um pouquinho das arquiteturas paralelas, vamos imaginar o seguinte, eu tenho aquela arquitetura para fazer o processo de ciclo, busque execução, mas eu poderia, por exemplo, se eu tenho um programa da ser resolvido em unha enumidade de tempo em um computador, com um processador, será que eu consigo resolver ele na metade do tempo se eu tiver dois processadores ou em um terço do tempo se eu tiver três processadores? E, eu disse, essas questões têm que ser tratados, porque dependendo da operação que eu vou executar, como vai ser o compartilamento desses dados para os processadores? Então, em geral, há quatro formas de computação.
Isso aí, então, é a ideia de uma computação em paralela.
Então, em geral, nós temos quatro formas gerais de computação paralela.
Ela nível de bítese, que seria aumentar o tamanho da palavra de computador, nesse caso, por exemplo, em um processador de 8 bits, uma operação em um valor de dados de 16 bits exigiria duas operações, uma porzo primeiro os 8 bits, e, para a parte superior dessa representação e outra, para a parte inferior pros úteos 8 bits.
Com enquanto, que num processador de 16 bits, eu faria toda o processamento dessa exclução de uma única vez, reduzindo o tempo.
Bom, na computação paralela em um nível de instrução, algumas instruções em programas são executadas independentes em paralelo.
Então, eu tenho a condição de poder estar trabalhando, separando os dados e realizando o processamento de uma forma independente.
Bom, a computação paralela em nível de dados, eu vou ter um único conjunto de instruções que pode ser executado em diferentes conjuntos de dados, ao mesmo tempo.
Bom, nesse caso, eu tenho que se chamar de processamento sincrono.
Então, eu tenho múltiplos processadores que aplicam o mesmo programa de modo totalmente corretenado a múltiplos conjuntos de dados.
Então, eu vou ter no controle, vou ter os processadores, um processador processando os conjuntos de dados, outro processador processando outro conjunto de dados, até ele conjunto de dados, e eu vou ter um controle para agirenciar toda esse processamento.
Na computação paralela em nível de tarefa diferentes processadores não poder executar diferentes tarefas sobre os mesmos ou em diferentes conjuntos de dados.
Então, para isso, eu tenho também um impacto em termos de arquitetura.
Se os diferentes processadores vão operar no mesmo conjunto de dados, a gente tem que se chamar de um cadenamento, considerando a máquina, a arquitetura de vão-noem.
O que seria isso? Eu tenho o conjunto de dados, passando pelo primeiro processamento, isso vai gerar um novo conjunto que vai passar para um segundo conjunto de processamento, ou seja, uma outra sequência de instruções que vão estar nesse segundo processador, depois vai passando por isso sucessivamente até a última interação de processamento sobre esse conjunto de dados.
Por outro lado, eu posso ter uma outra abordagem para alirir o nível de tarefa e ter processadores diferentes fazendo coisas diferentes com dados diferentes.
Então, a situação na qual o processador compartilha, vão precisar compartilhar uma memória global.
Então, eu vou ter uma memória local, mas ao mesmo tempo, uma memória local onde eu vou estar fazendo o processamento e armazenando dados, fazendo acesso a uma memória local e compartilhando os resultados nessa memória compartilhada entre os outros processadores.
Ponte, pessoal.
Então, eu tentei nessa aula dar uma visão bastante ampla, mas principalmente focando na arquitetura de vão-noem, porque aí vocês entendem como é esse ciclo de funcionamento.
Afinal de contas, estarefas são executadas, passo passo pelo computador e acredito que agora vocês conseguem ter uma ideia um pouco melhor em esse respeito.
Espero que vocês tenham gostado.
Até a próxima.