Prévia do material em texto
ARQUITETURA DE COMPUTADORES A Faculdade Multivix está presente de norte a sul do Estado do Espírito Santo, com unidades presenciais em Cachoeiro de Itapemirim, Cariacica, Castelo, Nova Venécia, São Mateus, Serra, Vila Velha e Vitória, e com a Educação a Distância presente em todo estado do Espírito Santo, e com polos distribuídos por todo o país. Desde 1999 atua no mercado capixaba, destacando-se pela oferta de cursos de graduação, técnico, pós-graduação e extensão, com qualidade nas quatro áreas do conhecimento: Agrárias, Exatas, Humanas e Saúde, sempre primando pela qualidade de seu ensino e pela formação de profissionais com consciência cidadã para o mercado de trabalho. Atualmente, a Multivix está entre o seleto grupo de Instituições de Ensino Superior que possuem conceito de excelência junto ao Ministério da Educação (MEC). Das 2109 instituições avaliadas no Brasil, apenas 15% conquistaram notas 4 e 5, que são consideradas conceitos de excelência em ensino. Estes resultados acadêmicos colocam todas as unidades da Multivix entre as melhores do Estado do Espírito Santo e entre as 50 melhores do país. MISSÃO Formar profissionais com consciência cidadã para o mercado de trabalho, com elevado padrão de quali- dade, sempre mantendo a credibilidade, segurança e modernidade, visando à satisfação dos clientes e colaboradores. VISÃO Ser uma Instituição de Ensino Superior reconhecida nacionalmente como referência em qualidade educacional. R E I TO R GRUPO MULTIVIX R E I 2 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 3 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 BIBLIOTECA MULTIVIX (Dados de publicação na fonte) Professor Douglas Campos de Souza Arquitetura de computadores / SOUZA, D.C. - Multivix, 2022 Catalogação: Biblioteca Central Multivix 2020 • Proibida a reprodução total ou parcial. Os infratores serão processados na forma da lei. 4 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 LISTA DE FIGURAS Sistema numérico 11 Função E (AND): representação de circuito eletrônico com chaves 22 Função E (AND): simbologia e tabela verdade 22 Função OU (OR): representação DE circuito eletrônico com chaves 23 Função OU (OR): simbologia e tabela verdade 23 FUNÇÃO NÃO (NOT): Representação DE circuito eletrônico com chaves 24 Função NÃO (NOT): simbologia e tabela verdade 24 Estrutura genérica de um circuito sequencial 27 Sistema-base de um computador 32 Funções básicas de um sistema computacional 35 Tipos de operações em um sistema computacional 36 Modelo computacional de Von Neumann 38 Modelo computacional de Harvard 39 Características de algumas portas lógicas básicas 43 Função OU EXCLUSIVA a partir de portas lógicas E (AND) e OU (OR) 44 Circuito lógico formado por portas E / OU e sua função de saídas 45 Estrutura de um computador 49 Elementos de um processador (CPU) 51 ULA – Modelo simplificado 52 Barramentos do sistema 55 Elementos de uma unidade de controle 57 Modelo de uma Unidade de Controle de um processador 58 Registrador de flags 62 Tipos de barramentos de um sistema computacional 63 Controladora de comunicação de dispositivos de entrada e saída (E/S) 66 Ciclo de instrução em um processador 72 Ciclo indireto de instrução 73 Fluxo de dados na etapa de busca 81 Tipos de transferência de dados de um barramento 82 Transferência de dados: operação de leitura/escrita 83 Transferência de dados em bloco 83 5 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Hierarquia de memória 92 Acesso e endereçamento de memória 94 Estrutura interna de uma memória SRAM 98 Memória cache em um sistema computacional 101 Registrador de flags 106 Processador com dois pipelines 111 Processador com dois pipelines 112 Formato de um banco de registradores 113 Tipos de Arquiteturas de multiprocessadores 118 Arquitetura do tipo SISD 119 Arquitetura do tipo SIMD 119 Arquitetura do tipo MISD 120 Arquitetura do tipo MIMD 121 Topologia de rede local do tipo estrela 123 Tipos de estruturas baseadas na arquitetura MIMD 124 Arquitetura UMA 125 Arquitetura NUMA 126 LISTA DE QUADROS Tabela de conversão entre sistemas numéricos 16 Tabela de conversão entre sistemas numéricos 17 Formato das instruções de um processador 75 Operação do pipeline em uma instrução 78 Desvio condicional atuando na operação do pipeline em uma instrução 79 Quadro 1 – Texto do recurso (atividade) 106 6 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 1UNIDADE SUMÁRIO APRESENTAÇÃO DA DISCIPLINA 8 1. SISTEMAS NUMÉRICOS E A REPRESENTAÇÃO DA INFORMAÇÃO 10 INTRODUÇÃO DA UNIDADE 10 1.1 SISTEMAS NUMÉRICOS 10 1.2 ELEMENTOS BÁSICOS DE UM COMPUTADOR 18 2. ARQUITETURA VERSUS ORGANIZAÇÃO 31 INTRODUÇÃO DA UNIDADE 31 2.1 O COMPUTADOR COMO UMA MÁQUINA SEQUENCIAL 31 2.2 ESTRUTURA DE UM COMPUTADOR 40 3. OS COMPONENTES BÁSICOS DE UM COMPUTADOR 48 INTRODUÇÃO DA UNIDADE 48 3.1 OS COMPONENTES BÁSICOS DE UM COMPUTADOR 48 3.2 MECANISMOS DE INTERRUPÇÃO E DE EXCEÇÃO 62 4. CICLOS DE INSTRUÇÃO DE UM PROCESSADOR 71 INTRODUÇÃO 71 4.1 OS SUBCICLOS DE BUSCA (FETCH) 71 4.2 INTERCONEXÕES E BARRAMENTOS 80 5. HIERARQUIA DE MEMÓRIA 91 INTRODUÇÃO 91 5.1 ORGANIZAÇÃO DA MEMÓRIA 91 5.2 CLASSIFICAÇÃO DE MEMÓRIA 96 6. PARALELISMO, MICROCONTROLADORES E ARQUITETURAS PARALELAS 110 INTRODUÇÃO DA UNIDADE 110 6.1 PROCESSADORES SUPERESCALARES E SUPERPIPELINE 110 6.2 MICROCONTROLADORES E MICROPROCESSADORES: QUAL A DIFERENÇA? 123 2UNIDADE 3UNIDADE 4UNIDADE 5UNIDADE 6UNIDADE 7 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ATENÇÃO PARA SABER SAIBA MAIS ONDE PESQUISAR DICAS LEITURA COMPLEMENTAR GLOSSÁRIO ATIVIDADES DE APRENDIZAGEM CURIOSIDADES QUESTÕES ÁUDIOSMÍDIAS INTEGRADAS ANOTAÇÕES EXEMPLOS CITAÇÕES DOWNLOADS ICONOGRAFIA 8 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 APRESENTAÇÃO DA DISCIPLINA A disciplina de Arquitetura de Computadores tem como objetivo o aprofun- damento de estudos teóricos e práticos no assunto que diz respeito a esse ins- trumento que transformou e transforma a sociedade nos últimos anos atra- vés da evolução tecnológica. Você irá aprender sobre os conceitos básicos que envolvem um sistema com- putacional, sistemas de numeração posicional, sistema decimal, binário e hexadecimal, tabelas de conversão, um breve histórico sobre a evolução dos computadores, compreender as funções e as operações básicas das portas lógicas. Também como construir a tabela verdade a partir das funções lógicas básicas, aprender sobre a simbologia e as expressões lógicas que represen- tam essas funções, além de entender as definições e a importância dos circui- tos combinacionais e sequenciais para a síntese de circuitos. Abordaremos a diferença entre arquitetura e organização de computadores para entender as máquinas sequenciais e computacionais, os primeiros com- putadores e a importância da álgebra booleana para a construção dos circui- tos lógicos. Você irá aprender sobre os componentes básicos de um computador e seu funcionamento, que será complementado na Unidade 4 com o assunto sobre como funciona um processador e seus componentes internos. Apresentaremos o conceito de memórias de um computador, seus tipos, hierarquias e classificação e, por fim, na Unidade 6, você irá aprender sobre arquiteturas robustas usadas atualmente em sistemas computacionais mais avançados e de alto desempenho, como vistos em servidores, datacenters e computação em nuvem. Enfim, esperamos que você possa usufruir do material da melhormaneira, que ele possa fomentar o desejo de conhecimentos de vocês e desejamos sucesso e bons estudos! UNIDADE 1 OBJETIVO Ao final desta unidade, esperamos que possa: 9 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Aprender sobre os principais sistemas numéricos (decimal, binário, hexadecimal) e realizar a conversão de base. > Aprender os métodos para realizar a conversão de base. 10 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 1. SISTEMAS NUMÉRICOS E A REPRESENTAÇÃO DA INFORMAÇÃO INTRODUÇÃO DA UNIDADE Nesta unidade, você irá aprender sobre os conceitos básicos necessários para amadurecer seus conhecimentos dentro do assunto de arquitetura de computadores, com aplicações práticas sobre eletrônica digital, conteúdo introdutório na figura das portas lógicas, que são os elementos que deram origem aos componentes computacionais utilizados hoje, como processa- dores e microprocessadores. De início, será apresentado sobre os sistemas numéricos, posicional, sistema decimal e sobre o sistema binário, que é interpretado pelos computadores. A partir desses conceitos, irá aprender sobre os sistemas derivados do binário: octal e hexadecimal. Será abordado também dentro da unidade os métodos de conversão de base e você irá entender como pensa e funciona um compu- tador e verá através de um breve histórico, como essa máquina excepcional evoluiu com o passar dos anos junto à evolução da eletrônica e da computa- ção. Bons estudos! 1.1 SISTEMAS NUMÉRICOS Por muitos anos, o homem tentou representar a contagem por meio de sím- bolos, como os primeiros sistemas numéricos que se tem notícia, criados pe- los sumérios e egípcios, datados por volta de 3500 a. C (antes de Cristo). Esses sistemas numéricos atribuíam símbolos aos números e, após a representação por símbolos, veio a representação por letras, usada, inicialmente, por povos como gregos e hebraicos, que, posteriormente, daria origem ao conhecido sistema de algarismos romanos. 11 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 SISTEMA NUMÉRICO Fonte: Deduca (2022). #pratodosverem: a imagem representa um quadro de cor escura, com numerais arábicos e romanos escritos em branco. 1.1.1 NOTAÇÃO POSICIONAL Em meados do século V d.C. (depois de Cristo), foi inventado na Índia o sistema de numeração decimal, um sistema posicional que tem esse nome por ter a base 10 como referência. Esse é o modelo de numeração usado atualmente, que também é conhecido como o modelo indo-arábico, pelo fato de ter sido criado na Índia e ter sido disseminado na Europa, principalmente pelo trabalho de um árabe conhecido por Al-Khwarizmi. No modelo indo-arábico, os núme- ros são representados pelos algarismos 0,1,2,3,4,5,6,7,8,9, decorrentes do algo- ritmo de Euclides, estudado na literatura da Teoria dos Números (MAIA, 2022). 12 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Sistema posicional é o sistema em que um mesmo número pode adotar valores diferentes, a depender da sua posição na representação numeral. No sistema decimal, cada posição, chamada de casa decimal, representa um determinado valor, chamados, por exemplo, de unidades, dezenas e centenas. Para saber mais, clique aqui. O sistema de numeração decimal é considerado posicional pois a base da contagem é o número dez. Isso quer dizer que podemos realizar agrupamen- tos de dez em dez. Os algarismos têm um determinado valor dependendo de onde eles estejam posicionados, obedecendo o que algumas literaturas cha- mam de princípio posicional. O valor que o algarismo tem, no qual depen- de da posição dele no numeral, é denominado de valor relativo, e seu valor próprio é denominado de valor absoluto. Cada grupo de dez unidades de uma determinada ordem é substituído por uma unidade da ordem superior, sendo esse processo considerado posicional, pois sua escrita é feita de forma sequencial e finita, tendo o seu valor dependendo da posição do algarismo nas representações numéricas. Por exemplo: o número decimal 492, o valor posicional do algarismo 4 é igual a 400 unidades, o 9 representa 90 unidades e o número 2 representa 2 unidades. Disso, podemos dizer que o número 492 = 400 + 90 + 2 = 4x 102 + 9x 101 + 2x 100. No nosso sistema de numeração, o valor do algarismo se obtém multiplican- do esse determinado algarismo por uma potência de base A representação acima é baseada em dois elementos: a base dez e o valor po- sicional, onde dez unidades de uma ordem formam uma unidade da ordem superior. Por isso, o sistema de numeração decimal é formado pela classe das centenas, dezenas e unidades. https://mundoeducacao.uol.com.br/matematica/sistema-numeracao.htm 13 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 1.1.2 BASES DE SISTEMAS DE NUMERAÇÃO Segundo Moraes (2020), outros sistemas de numeração computacional conhe- cidos são o sistema octal e o sistema hexadecimal. No entanto, na prática, podemos considerá-los como representações especiais do sistema binário, já que suas bases são potências de 2 (8 = 23, e 16 = 24), respectivamente. O sistema hexadecimal é o sistema mais utilizado nos computadores, pois representam os números binários de uma forma mais compacta e são usados, por exem- plo, para representar os endereços MAC dos computadores, conhecidos como endereços físicos, e representar também sistemas digitais e circuitos lógicos. Nas operações matemáticas em sistemas computacionais temos: Sistema decimal é o mais utilizado e é representado pelos dez dígitos de 0 a 9. Sistema binário é representado pelos dígitos 0 e 1. Sistema octal é representado pelos dígitos 0,1,2,3,4,5,6,7 Sistema hexadecimal é representado pelos dígitos alfanuméricos 0,1,2,3,4,5,6,7,8,9, A, B, C, D, F. A quantidade de dígitos disponíveis em um sistema de numeração é denomi- nada de base (ou raiz) onde, no caso do sistema binário, por ser representado por dois dígitos, leva essa denominação. A denominação de cada dígito em um sistema binário é conhecida como bit, sigla do inglês binary digit, e o conjunto de oito bits é denominado de byte. Já o sistema hexadecimal é conhecido como alfanumérico devido a sua repre- 14 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES sentação ser feita por letras e algarismos, conforme descrito acima, onde os valores decimais 10,11,12,13,14 e 15 são representados nesse sistema de nume- ração pelas letras A, B, C, D, E F, respectivamente. Por existir sistemas numéricos distintos e para diversas aplicações, existe tam- bém a necessidade de conversão entre esses sistemas, para que possamos encontrar os valores equivalentes entre eles. Esse conceito é conhecido com conversão numérica. Com a conversão numérica, basicamente podemos fa- zer a conversão de qualquer valor decimal em binário, octal ou hexadecimal ou, para ser mais específico, podemos fazer a conversão de um número de uma base em outra. 1.1.3 MÉTODOS DE CONVERSÃO DE BASE A conversão de um número qualquer para a base decimal é feita através de um desenvolvimento polinomial, que consiste no somatório de cada algaris- mo multiplicado pela base elevado ao índice, de acordo com a posição do algarismo no número. Como exemplo, vamos mostrar como converter o nú- mero binário 1100 para a base decimal, seguindo a orientação acima sobre a representação polinomial. O número binário 1100 = 1x 23 + 1x 22 + 0x 21 + 0x 20, onde cada bit é multiplicado pela base 2 elevado ao índica da sua posição. 20 = 1, que representa a casa da unidade 21 = 2, que representa a casa da dezena, e assim sucessivamente.Vol- tando a representação polinomial acima, basta realizar os cálculos para obter o valor equivalente na base decimal: 1x 23 + 1x 22 + 0x 21 + 0x 20 = 8 + 4 + 0 + 0 = 12 Assim, o número binário 1100 (que pode ser representado pela forma ) é equi- valente ao número 12 na base decimal. Para fazermos a conversão inversa, quer dizer, encontrar o correspondente de um valor decimal em binário, ao invés de multiplicar, você precisa dividir o número decimal por 2 até o quo- ciente máximo e separar os restos. Veja o exemplo abaixo de como é feita a conversão do número 4010(representação decimal do número) em binário: 15 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 40 / 2 Resto 0 20 / 2 Resto 0 10 / 2 Resto 0 5 / 2 Resto 1 2 / 2 Resto 0 1 O valor do quociente dessa última operação, após sucessivas divisões pela base que pretende ser convertida, será o algarismo mais significativo do nú- mero binário. Isso significa que ele ficará mais à esquerda do valor, e será se- guido pela sequência de baixo para cima dos restos obtidos das divisões an- teriores, até o valor encontrado no primeiro resto, no caso acima da divisão do número 40 por 2, obtendo quociente 20 e resto 0. Assim, partindo do valor do quociente da última operação de divisão até o valor do primeiro resto, en- contraremos o número representado por 101000, que será a representação binária do número decimal 40. A conversão de octal para decimal também é simples e sofrerá o processo de sucessivas divisões, agora com a base 8, até o quociente seja 0. Vamos fazer a conversão do número octal 508 (forma de representação de um número oc- tal) em decimal. Veja a seguir: 50 = 5x 81 + 0x 80 = 40 + 0 = 4010 Para converter um número decimal para hexadecimal, basta dividir esse nú- mero por 16 até o quociente máximo da operação, como no exemplo abaixo, para transformar 5010 em hexadecimal: 50 / 16 Resto 2 3 Assim, o valor do quociente é o máximo valor e será o algarismo mais signifi- cativo seguido do resto obtido. Assim, 5010 = 3216 e, para transformar o valor he- xadecimal em binário, basta converter cada algarismo individualmente para o binário, representando cada algarismo com 4 bits. Assim, 3216 em binário seria: 16 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES • transforme o número 3 em binário, representando-o por 4 bits: 3 / 2 Resto 1 1 Agora o valor do quociente é o máximo valor e será o algarismo mais signifi- cativo seguido do resto obtido. Assim, 32 = 0011 • transforme o número 2 em binário, representando-o por 4 bits: 2 / 2 Resto 0 1 Assim, temos o valor do quociente, que é o valor máximo e será o algarismo mais significativo seguido do resto obtido. Assim, 210 = 0010. Então, para obter 3216 em binário basta você juntar os valores obtidos de forma individual que ficará 001100102. Agora que aprendemos a fazer as conversões entre bases numéricas diferen- tes através da matemática, iremos apresentar uma forma direta de fazer essas conversões a partir de uma tabela padronizada, conforme tabela a seguir: TABELA DE CONVERSÃO ENTRE SISTEMAS NUMÉRICOS 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Fonte: elaborado pelo autor (2022). A tabela anterior é montada colocando na primeira linha os algarismos na base 2 na quantidade que você quiser, e na segunda linha você coloca o valor decimal correspondente ao cálculo do valor da primeira linha, como: 20 = 1, 21 =2, 22 =4. Por exemplo: se um computador precisar converter o valor 22010 em binário (base 2), ele analisará quais os valores da Tabela 1 ele precisará somar para obter, no total, o valor 220. Nesse caso, ele irá somar os valores 128 + 64 + 16 + 8 + 4. Então, ele irá colocar o valor “1” embaixo de cada valor decimal que irá somar. Nas posições dos valores que não serão somados, ele colocará “0”, conforme tabela a seguir: 17 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 TABELA DE CONVERSÃO ENTRE SISTEMAS NUMÉRICOS 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 1 1 0 1 1 1 0 0 Fonte: elaborado pelo autor (2022). Então, o valor 20010 em binário é igual a 1 1 0 1 1 1 0 0. Se você for converter esse valor para hexadecimal, basta pegar o valor binário e agrupar, da direita para a esquerda, em grupos de 4 bits. 1 1 0 1 1 1 0 0 Fazendo a conversão dos grupos um de cada vez, terá o valor hexadecimal igual a DC12. Para chegar a esse valor, basta colocar os dígitos binários de cada grupo na Tabela 2 e verá que a sequência 1 1 0 1 dará um total igual a 13, mas 13 em hexadecimal é igual à letra D. Mesma coisa para a sequência 1 1 0 0, que dará um valor 12, mas 12 em hexadecimal é representado pela letra C. Para finalizar, se quiser converter o valor binário 1 1 0 1 1 1 0 0 para octal, precisa separar os dígitos binários em grupos de 3, ficando na disposição a seguir: 1 1 0 1 1 1 0 0 Assim, basta substituir os valores na Tabela 2 cada grupo por vez, no sentido da direita para a esquerda da tabela, e terá o valor em octal, obtendo: 112= 310 0112 = 310 1002 = 410 O valor será de 3348. Com essa tabela, será possível fazer qualquer conversão que você precisar, bastando apenas aumentar o número de bits na linha da tabela referente aos valores exponenciais. 18 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Foi com base nesses conceitos de representação numérica combinados com letras, formando representações alfanuméricas, que a indústria de computadores criou um padrão binário de codificação de caracteres para a troca de informações entre sistemas computacionais. 1.2 ELEMENTOS BÁSICOS DE UM COMPUTADOR Um computador é um dispositivo que tem a capacidade de executar instruções pré-definidas pelo homem a fim de obter algum resultado, onde essa sequên- cia de instruções é conhecida como algoritmo. Podemos ter vários algoritmos que, no conjunto, constituem o que conhecemos como software. O software é a parte lógica de um computador enquanto o hardware é a parte física. 1.2.1 CONCEITO DE PORTAS LÓGICAS Segundo Paixão (2014), os computadores podem ser classificados em analó- gicos e digitais, onde os computadores analógicos, os primeiros computado- res surgidos no período conhecido como Geração Zero, realizam suas tare- fas baseados em quantidades, onde representam o funcionamento de um sistema real através de grandezas físicas. Já um computador digital, utiliza- do hoje em dia, resolve problemas através de operações utilizando cálculos e possuem pouca intervenção humana na realização das instruções. Com isso, os computadores digitais foram muito importantes no progresso e evolução dos sistemas de computadores. Em um breve histórico, com o surgimento dos computadores, foi possível classificá-los em gerações, de acordo com as tecnologias utilizadas. 19 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Geração Zero: foi o período do surgimento dos computadores analógicos, formados por componentes mecânicos e eletromecânicos, como a Máquina de Babbage (1791 – 1871), conforme figura a seguir, criada por Charles Babbage para corrigir erros em cálculos manuais. Máquina de Babbage (1791 – 1871) Fonte: WikiMediaCommons (2022). #pratodosverem: foto da máquina de Babbage entre os anos de 1791 a 1871. Primeira Geração: iniciou-se no período da Segunda Guerra Mundial, claramente com objetivos científico-militares, marca o início da computação moderna, com a substituição dos componentes mecânicos, característicos dos computadores analógicos, por, incialmente, relés e capacitores e, posteriormente, por válvulas. Essas mudanças permitiram o surgimento dos primeiros computadores digitais,como foi o caso dos computadores ENIAC e MARK I, criados na década de 1940 e até hoje considerados os primeiros computadores eletrônicos. A Figura 2 mostra a figura do ENIAC em desenvolvimento no Ballistic Research Laboratory, localizado na Filadélfia, estado da Pensilvânia. Eniac Fonte: WikiMediaCommons (2022). #pratodosverem: uma foto preta e branca, de uma sala apresentando como era o computador ENIAC, que ocupava todo o espaço. 20 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Segunda Geração: as válvulas foram substituídas pelos transistores, componentes eletrônicos desenvolvidos em 1948 pelos Laboratórios Bell Telephones, que viriam a ser o principal componente usado na construção dos novos computadores. Com os transistores, os computadores tiveram o seu tamanho reduzido de forma considerável e um obteve aumento na capacidade de armazenamento. Transistores Fonte: Freepik (2022). #pratodosverem: na foto, há vários transistores. Terceira Geração: surgem os circuitos integrados, ou simplesmente CI, que tem a função de vários transistores encapsulados em formatos modulares e em miniaturas, denominados de chips. Por fim e finalizando o breve histórico, surgiu em meados da década de 1970 os microprocessadores, dando início a Quarta Geração dos computadores. Microprocessador Fonte: Freepik (2022). #pratodosverem: na foto, temos os circuitos de um microprocessador. Quarta Geração: os microprocessadores representam a evolução dos circuitos integrados, agora munidos das evoluções tecnológicas como a miniaturização dos componentes eletrônicos e a integração em larga escala desses circuitos. Os microprocessadores passaram a concentrar em um único chip os componentes básicos de um computador, como a Unidade Central de Processamento, a memória e os dispositivos de entrada e saída. Macintosh 128K (1984 – 1985) Fonte: WikiMediaCommons (2022). #pratodosverem: na foto, temos um computador exemplo da Quarta Geração, desenvolvido na década de 80. 21 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Estamos vivendo a Quinta e Sexta gerações dos computadores, onde as principais características são a computação distribuída, computação em nu- vem (Cloud Computing) e computação em rede. Um computador é constituído de elementos eletrônicos como resistores, ca- pacitores e transistores, onde os transistores são responsáveis por armazenar sinais binários e realizar operações lógicas com esses sinais. A integração des- ses elementos eletrônicos forma circuitos denominados de circuitos digitais, que são construídos por elementos que manipulam sinais digitais, ou dígitos binários, denominados de portas lógicas. Semicondutores são componentes eletrônicos que possuem condutividade elétrica intermediária entre materiais que são bons condutores elétricos e os materiais isolantes, que são materiais que não conduzem bem a eletricidade. A arquitetura de um computador depende do seu projeto lógico, enquanto a sua implementação depende da tecnologia disponível. Gerações de computadores. 1.2.2 IMPLEMENTAÇÃO DA TABELA VERDADE As funções lógicas básicas de um sistema digital são: • Função E (AND) Essa função executa a multiplicação de dois ou mais operandos binários sim- ples, no caso 0 e 1, permitindo como resultado após a avaliação que, se o pri- meiro operando for igual a 1 e o segundo também for igual a 1, a resposta será 1; caso contrário, o resultado será sempre 0, conforme analogia feita nas ilustrações a seguir: https://www.ime.usp.br/~macmulti/historico/histcomp1_12.html#:~:text=Os%20computadores%20de%20primeira%20gera%C3%A7%C3%A3o,de%20liga%C3%A7%C3%A3o%20por%20circuitos%20impressos 22 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES FUNÇÃO E (AND): REPRESENTAÇÃO DE CIRCUITO ELETRÔNICO COM CHAVES Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “E”, chave A e chave B aberto, até o sistema operando a lâmpada, com as situações possíveis: chave aberta = 0, chave fechada = 1, lâmpada apagada = 0, lâmpada acesa = 1. FUNÇÃO E (AND): SIMBOLOGIA E TABELA VERDADE Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “E” (AND), chave A e B até a saída do circuito S, e ao lado a tabela verdade com as possibilidades. De acordo com a figura anterior, podemos ver que, em uma função E (AND), a saída S do circuito estará ativa (1), apenas e unicamente quando ambas as en- tradas A e B estiverem ativas, ou seja, com sinal elétrico. A partir desse pensa- mento é montada a tabela verdade dessa função. Se alguma entrada estiver em nível baixo 0, sem sinal elétrico, a saída permanecerá também em nível baixo. Podemos representar esse cenário na prática através de um circuito elétrico para acender uma lâmpada, conforme Figura 1, com duas chaves (in- 23 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 terruptores) em série. A lâmpada só acenderá (1) se as duas chaves estiverem fechadas (1); se alguma chave estiver aberta, ou ambas (0), a lâmpada não irá acender (0). • Função OU (OR) Uma outra função lógica é a função OU (OR) que, ao contrário da função AND, só assume valor 0 quando todas as entradas estão sem nível lógico baixo (0), conforme figuras a seguir: FUNÇÃO OU (OR): REPRESENTAÇÃO DE CIRCUITO ELETRÔNICO COM CHAVES Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “OU”, chave A e chave B, até o sistema operando a lâmpada, com as situações possíveis: chave aberta = 0, chave fechada = 1, lâmpada apagada = 0, lâmpada acesa = 1. FUNÇÃO OU (OR): SIMBOLOGIA E TABELA VERDADE Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “OU” (OR), chave A e B até a saída do circuito S, e ao lado a tabela verdade com as possibilidades. 24 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Na analogia de um circuito elétrico representada na Figura 3, se qualquer chave estiver fechada (1) ou as duas chaves estiverem fechadas (1) ao mesmo tempo, a lâmpada irá acender (1). A lâmpada só não irá acender (0) se as duas chaves es- tiverem abertas (0). Na tabela verdade de uma função OU, conforme ilustrado na Figura 4, só terá saída S zero (0), se as duas chaves tiverem abertas (0). • Função NÃO (NOT) Essa função executa o complemento ou a negação de dois ou mais operan- dos binários: se um operando estiver em 0, o resultado da função será seu complemento que, no caso, será 1; agora se o operando estiver em 1, o resulta- do da função será 0, conforme a analogia de um circuito elétrico para acender uma lâmpada ilustrado nas figuras a seguir: FUNÇÃO NÃO (NOT): REPRESENTAÇÃO DE CIRCUITO ELETRÔNICO COM CHAVES Fonte: elaborada pelo autor (2022). #pratodosverem: Na ilustração, temos a demonstração do uso da função “NÃO”. Ao lado esquerdo temos um circuito chave aberta, e do lado direito temos um circuito de chave fechada, com as situações possíveis: chave aberta = 0, chave fechada = 1, lâmpada apagada = 0, lâmpada acesa = 1. FUNÇÃO NÃO (NOT): SIMBOLOGIA E TABELA VERDADE Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “NÃO” (NOT), chave A até a saída do circuito S, e ao lado a tabela verdade com as possibilidades. 25 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Na Figura 5, quando a chave estiver aberta (0), a lâmpada irá acender (1), pois a corrente elétrica irá fluir pelos fios da fonte até a lâmpada.Agora, quando a chave estiver fechada, situação representada na Figura 6, a lâmpada não irá acender (0), pois ocorre no circuito uma situação chamada de curto-circuito que faz com que a corrente elétrica passe por essa chave fechada devido à baixa resistência. A Tabela verdade da função é apresentada a seguir: Função NAND A função NAND é formada pela função AND com a função NOT, ou seja, a saída de uma função AND é invertida. Função NAND Fonte: elaborada pelo autor (2022) #pratodosverem: na ilustração, temos a demonstração do uso da função “NAND”, chave A e B com a saída até o circuito S. Função NOU A função NOU é formada pela função OU com a função NOT, ou seja, a saída de uma função OU é invertida. Função NOU Fonte: elaborada pelo autor (2022) #pratodosverem: na ilustração, temos a demonstração do uso da função “NOU”, chave A e B com a saída até o circuito S. 26 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Função XOR (OU Exclusivo) A função OU Exclusivo só oferece resultado 1 na saída quando os operandos de entrada forem diferentes entre si. Caso contrário, se os operandos forem iguais, gera resultado 0. Função XOR Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos a demonstração do uso da função “XOR”, chave A e B com a saída até circuito S. 1.2.3 SÍNTESE DE CIRCUITOS E EXPRESSÕES LÓGICAS A síntese de circuitos é um conceito que abrange os circuitos digitais e os circuitos analógicos, tendo uma maior aplicação em sistemas digitais devi- do aos avanços da eletrônica nos últimos anos e o uso de ferramentas mais eficientes. O uso da síntese de circuitos visa à otimização de expressões lógi- cas e, consequentemente, a integração a partir de circuito básicos como os que implementam as funções E, OU e NÃO. Quaisquer portas lógicas podem ser construídas a partir de portas básicas dessas funções através de circuitos combinacionais e circuitos sequenciais. Circuitos combinacionais são circuitos lógicos, cujas saídas dependem úni- ca e exclusivamente da configuração das variáveis de entrada, em termos dos seus estados lógicos, ou seja, das variáveis que são falsas ou verdadeiras em determinado instante, independentemente do estado anterior das saídas, e não precisam de nenhum tipo de memória. Ao estabelecer relações entre as variáveis de um circuito e a equação lógica que a representa, existe a necessi- dade de técnicas especiais que devem ser aplicadas, como Teorema de Mor- gan ou Mapa de Karnaugh, para simplificar as equações e circuitos lógicos. A seguir, veja a lista que mostra as expressões lógicas que representam as funções lógicas básicas: 27 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Função E (AND): possui expressão logica descrita como S = A.B, onde S é a saída e A, B são as entradas do circuito Função OU (OR): possui a seguinte equação representativa: S = A + B Função NÃO (NOT): é uma função inversora, que muda o valor lógico de acordo com a entrada; possui a equação S = A (lê-se A barrado) Circuitos sequenciais são circuitos lógicos com memória, o que significa que são circuitos nos quais as saídas dependem não só das entradas atuais, mas também das entradas anteriores, pois, agora, as entradas e as saídas dos circuitos passam a ser conectadas. Com as memórias instaladas, os circuitos passam a ter uma aplicação extra, que é a capacidade de armazenar informa- ções binárias. Na prática, um circuito combinacional tem aplicação mesmo sem nenhuma função de memória. A Figura 7 ilustra a estrutura de um cir- cuito sequencial genérico: ESTRUTURA GENÉRICA DE UM CIRCUITO SEQUENCIAL Fonte: elaborada pelo autor (2022). #pratodosverem: na ilustração, temos uma estrutura genérica de um circuito sequencial, com as entradas externas, partes lógicas, elementos de memória, saídas combinacionais e saídas com memória. 28 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Percebe-se que temos uma maneira mais fácil de ver um circuito sequencial, onde os valores atuais da saída dependem do estado atual das entradas externas. Segundo Delgado e Ribeiro (2017), a forma mais simples de implementar um circuito sequencial é através de um flip-flop que, entre outras propriedades, duas são comuns a todos os tipos: • São dispositivos biestáveis, isso quer dizer que possuem dois estados estáveis e que permanecem nesse estado até que haja uma nova mudança solicitada. • Possuem duas saídas com valores complementares uma da outra. Geralmente são identificadas como Q e Q. 29 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 CONCLUSÃO Nesta unidade, aprendemos sobre os conceitos básicos que envolvem um sis- tema computacional, aprendemos sobre os sistemas de numeração binária, octal, hexadecimal, uso de tabelas de conversão e como se realiza a conversão matemática entre esses sistemas. Também compreendemos das funções bá- sicas em um sistema computacional até os conceitos de microprocessadores, circuito combinacionais e sequenciais. Entendemos como a evolução da eletrônica e da computação contribuiu para a base computacional, através de um breve históricos sobre a evolução a partir dos computadores analógicos, iniciando por computadores digitais a base de válvulas, relés e transistores, passando pelo surgimento dos chips, e chegando até os modelos digitais usados atualmente. UNIDADE 2 OBJETIVO Ao final desta unidade, esperamos que possa: 30 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Aprender a diferença entre arquitetura e organização de um computador e a evolução desde os computadores analógicos até os computadores atuais. > Aprender os conceitos e aplicações sobre as portas lógicas, circuitos lógicos e álgebra de Boole. 31 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 2. ARQUITETURA VERSUS ORGANIZAÇÃO INTRODUÇÃO DA UNIDADE Na unidade de Arquitetura versus Organização de Computadores, você irá aprender sobre os conceitos básicos que envolvem um sistema computacio- nal, compreender as funções e as operações básicas entre hardware e softwa- re, o conceito sobre as instruções de computadores, a apresentação dos mo- delos de arquiteturas computacionais desenvolvidos no decorrer dos anos, a lógica computacional envolvida com a eletrônica digital, as funções e uma visão geral sobre arquitetura de computadores. O conteúdo apresentará como a evolução da eletrônica e da computação contribuiu para a base computacional alcançada nos dias atuais, a importân- cia dos conceitos-base para o amadurecimento progressivo do conhecimen- to e como essa evolução afeta os sistemas computacionais e de Telecomuni- cações de maneira geral e prioritária. 2.1 O COMPUTADOR COMO UMA MÁQUINA SEQUENCIAL Segundo Monteiro (2022) um computador é uma máquina capaz de coletar, manipular e fornecer os resultados da manipulação de informações para um ou mais objetivos. Com toda a evolução da eletrônica digital e dos materiais semicondutores, ocorrida nas últimas décadas, que afetaram diretamente a indústria da computação, seja com o surgimento dos microcomputadores, seja com a nanotecnologia, os computadores de hoje ainda são desenvolvi- dos a partir do conceito inicial dos primeiros computadores. 2.1.1 ARQUITETURA E ORGANIZAÇÃO O conceito inicial sobre computador como sendo uma máquina sequencial, parte da premissa de que um computador possui uma: 32 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 • Unidade Central de Processamento (CPU): querecebe as informações a partir de dispositivos de entrada, processa por meio de uma aplicação (software). • Software: fica armazenada em uma memória e retorna os dados como resultados, enviando por meio de dispositivos de saída. A seguir, veja como funciona o diagrama de blocos da Figura a seguir: SISTEMA-BASE DE UM COMPUTADOR Fonte: elaborada pelo autor (2022). #pratodosverem: a ilustração representa um esquema do sistema-base de um computador, composto por: dispositivo de entrada, memória, unidade central de processamento e dispositivo de saída, com informações de entrada e dados de saída. Conforme descrito na Figura anterior, a Unidade Central de processamento é a unidade que deve ser capaz de realizar as operações de leitura e escrita na memória e de executar instruções e operações lógicas matemáticas recebi- das por meio do dispositivo de entrada. Convido você a assistir ao vídeo intitulado “CPU ou Unidade Central de Processamento” para reforçar os conhecimentos teóricos. Clique aqui. https://www.youtube.com/watch?v=gc0tuwJz-7E 33 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Os dispositivos de entrada e saída (E/S) são dispositivos internos da arquitetu- ra computacional que têm a função de transferência de dados entre a CPU e os demais dispositivos, por meio dos barramentos de comunicação de dados (PAIXÃO, 2014). Outra definição primordial para os conceitos introdutórios é sobre a diferença entre hardware e software, em que hardware é o conjunto de todos os dispo- sitivos eletrônicos que compreendem a própria CPU, a memória e os disposi- tivos de entrada e saída. Já o software, ao contrário, é a parte lógica do sistema computacional, constituído pelos algoritmos (conjunto de instruções que são seguidas pela CPU), que resultam na representação dos programas de com- putadores. Uma instrução realizada por software pode ser implementada via hardware e uma operação realizada por hardware pode, na prática, ser simu- lada por software (PATTERSON, HENNESSY, 2017). As funções básicas de um sistema computacional e sua arquitetura são: • Processamento de dados: todo processamento é realizado pela unidade central de processamento do computador. • Armazenamento de dados: na prática, essa é função da memória do sistema que além de armazenar os dados também armazena o endereçamento onde os dados serão alocados de forma temporária para execução, se comunicando com a Unidade Central de Processamento através dos barramentos. • Transferência de dados: processo de troca de informações entre a unidade central de processamento e os dispositivos de entrada e saída (E/S) do sistema computacional. 34 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 • Controle de dados: função de responsabilidade da unidade central de processamento, mas especificamente da unidade de controle. A unidade de controle deve ser capaz de controlar as outras três funções citadas acima. Arquitetura, por definição, é um conjunto de recursos observados e usados pelo desenvolvedor do sistema, como os registradores (tipo de memória), os dados manipulados pelas instruções (códigos, formato), a organização da me- mória principal, os modos de endereçamento, entre outros (MAIA, 2013). Esse conceito lida com o layout, a estrutura dos computadores, os dispositivos de armazenamento e os dispositivos de redes. Já a organização está relacionada às unidades operacionais e suas interconexões que realizam as especifica- ções da arquitetura. É como as partes de um sistema de computação irão se interligar e executar as ações para o funcionamento. Assista a videoaula para reforçar os conhecimentos teóricos sobre periféricos de entrada e saída (E/S) de dados. Clique aqui. Para uma arquitetura, podem existir inúmeras organizações, em que cada or- ganização oferece uma solução diferente em termos de desempenho, custo/ benefício, robustez tecnológica etc. Uma aplicação prática para esse exemplo é a evolução dos processadores, dispositivos que representam as CPU’s, no decorrer dos últimos anos. A organização de um sistema computacional explica como um computador funciona, fornece estruturas entre as partes do sistema, lida com o projeto da eletrônica digital (conhecida também como programação de baixo nível) e o desempenho do sistema. https://www.youtube.com/watch?v=xqIPFxfR9gc 35 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 2.1.2 A MÁQUINA DE USO GERAL Para que essas funções possam ser executadas, um computador precisa se- guir um conjunto de instruções por meio de um programa computacional, ba- seado em algoritmos, que terão seus dados armazenados em uma memória. A linguagem que é interpretada pelo hardware é conhecida como lingua- gem baixo nível, uma representação mais próxima dos sistemas binários e hexadecimais que norteiam os computadores. Cada avanço ou mudança na instrução representa, na prática, a alteração ou mudança de um endereço na memória, conforme mostrado na Figura a seguir: FUNÇÕES BÁSICAS DE UM SISTEMA COMPUTACIONAL Fonte: elaborada pelo autor (2022). #pratodosverem: a ilustração representa um esquema das funções básicas de um sistema computacional, com informações de entrada e dados de saída, dispositivo de entrada, unidade central de processamento, dispositivo de saída, posição de memória 1 em uso e memória. Conforme descrito na Figura anterior, o sistema de uma máquina de uso ge- ral, recebe as informações por meio do dispositivo de entrada, a CPU realiza a instrução do código, armazena o resultado na posição de memória 1 e, por meio dos barramentos, transfere os dados do resultado do processo para o dispositivo de saída. Todas essas trocas de informações são controladas por uma unidade de controle localizada na unidade central de processamento (STALLINGS, 2010). Um computador deve ter a capacidade de processar dados e esses, por outro lado, podem ser muito grandes em quantidade e volume, de vários tipos e de requisitos amplos para processamento. Por isso, é essencial que um com- 36 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 putador possa ter a capacidade de armazenamento de dados temporários e permanentes para subsequente modificação e recuperação. Outra função básica é de ser capaz de realizar a transferência de dados, tanto internamente quanto para periféricos externos e, por final, ter a capacidade de controlar es- sas funções. Dentro de um sistema de controle computacional, uma unidade central de processamento pode controlar quatro tipos de operações possí- veis, conforme Figura a seguir: TIPOS DE OPERAÇÕES EM UM SISTEMA COMPUTACIONAL Fonte: adaptado de Stallings (2010, p. 9) #pratodosverem: a imagem representa um esquema com os tipos de operações em um sistema computacional, com a indicação da operação 1, 2, 3 e 4, transferência, controle, processamento e memória. A Figura anterior mostra as operações possíveis dentro de um sistema com- putacional sob a responsabilidade da CPU. Vemos que, na Operação I, o com- putador opera apenas com um dispositivo de transferência de dados; já na Operação II, temos uma clara operação de armazenamento de dados, em que os dados são transferidos diretamente do dispositivo para a memória; o Processo III e o Processo IV já envolvem processamento de dados, pois, na Operação III, ocorre armazenamento na memória e, na Operação IV, há trans- ferência direta de dados entre a memória e o dispositivo. 37 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Hoje possuímos processadores com vários núcleos, que executam milhares de instruções por segundo, que podem implementar um sistema computacionalcom processamento descentralizado, que é o que ocorre hoje em dia em grandes Data Centers, com alto volume de processamento de dados (Big Data) e sistemas baseados em computação nas nuvens (Cloud Computer) (PATTERSON; HENNESSY, 2017). 2.1.3 MÁQUINA DE VON NEUMANN Em resumo, um sistema computacional tem como objetivo processar infor- mações recebidas e convertê-las em dados e entregar a um determinado dis- positivo que esteja conectado ao sistema por meio dos periféricos de entrada e saída. Quando esse processo é realizado a longa distância, quando esse dispositivo está remoto ao sistema computacional, dizemos que ocorre um processo conhecido como comunicação de dados (PAIXÃO, 2014). Baseado nos conceitos introdutórios de arquitetura e organização de compu- tadores digitais, o modelo de computador proposto pelo matemático John Von Neumann, em 1946, ficou conhecido com IAS, nome herdado do Insti- tuto de Estudos Avançados, e tinha a característica de possibilitar o compar- tilhamento do armazenamento da memória entre os programas e os dados. Em outras palavras, o sistema computacional era composto por apenas uma memória principal. Como mostrado na Figura a seguir, o modelo proposto por Von Neumann consiste em uma memória principal compartilhada que armazena dados e instruções, uma Unidade Lógica Aritmética (ULA), uma unidade de controle e os dispositivos de entrada e saída. 38 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 MODELO COMPUTACIONAL DE VON NEUMANN Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa um esquema com o modelo computacional de Von Neumann, com indicação da memória compartilhada, o endereçamento, os dados e as instruções, a unidade de controle, ULA e os dispositivos de entrada e saída. De acordo com a Figura anterior, no modelo proposto por Von Neumann, a ULA (Unidade Lógica Aritmética) tem a função de controlar os dispositivos de entrada e saída e se comunicar com a unidade de controle, que, por sua vez, controla o endereçamento junto à memória principal compartilhada. A ULA também realiza o processamento das instruções e dos dados junto à memória principal. Esse modelo, como consequência, possui um gargalo no desempenho devido ao alto tráfego de informações entre a unidade de pro- cessamento e a memória. Como uma possível solução para esse problema, obviamente, diminui-se o tráfego de informações, mantendo informações na CPU, e diminui-se o tamanho das informações digitais transferidas. Assista a videoaula para reforçar os conhecimentos sobre arquitetura de Von Neumann de forma simples e direta. Clique aqui. Já o modelo de arquitetura de Harvard está baseado em um conceito mais atualizado, tendo em vista a necessidade de otimizar a CPU (Unidade Cen- https://www.youtube.com/watch?v=tZ5W2LpdcEw 39 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES tral de processamento). Diferentemente do modelo de Von Neumann, essa arquitetura possui duas memórias distintas e separadas, tanto em ligação de barramentos quanto na interligação com a CPU. Apresenta vantagens no de- sempenho por ser possível a realização de buscas simultâneas de instruções e operações, mitigando conflitos internos por endereços de memórias, e por apresentar a separação entre os barramentos de dados das memórias, con- forme Figura a seguir. MODELO COMPUTACIONAL DE HARVARD Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa um esquema com o modelo computacional de Harvard, com as indicações de memória de instruções, memória de dados, instruções, endereçamento, dados, unidade de controle, ULA e dispositivos de entrada e de saída. Conforme descrito na Figura anterior, neste modelo, proposto por Harvard, há duas memórias independentes para armazenamento das instruções e dos dados, ambos também com barramentos individuais e específicos, implican- do o ganho de desempenho, tendo em vista que não haverá compartilha- mento do meio de comunicação. Outra vantagem é o fato de a CPU executar instruções simultâneas, já que poderá buscar uma próxima enquanto execu- ta uma determinada instrução na memória. Essa evolução na implantação de memórias separadas e barramentos independentes viriam a contribuir com o desenvolvimento de sistemas computacionais mais robustos e complexos. 40 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 2.2 ESTRUTURA DE UM COMPUTADOR Como aprendemos, os componentes básicos de uma arquitetura computa- cional digital devem desempenhar as funções de processamento, controle, armazenamento e transferência. Para que isso aconteça na prática, fazem-se necessários apenas dois tipos de componentes: as portas lógicas e as célu- las de memórias. 2.2.1 AS PORTAS LÓGICAS A definição para portas lógicas é dada como um componente eletrônico que tem a capacidade de implementar uma função lógica (ou booleana), contro- lando o fluxo de dados binários (digitais) nas suas entradas. A função booleana (ou Álgebra de Boole) foi desenvolvida pelo filósofo e matemático francês George Boole e é baseada na lógica das variáveis binárias (0 e 1). Essa lógica foi a precursora dos sistemas computacionais digitais que conhecemos hoje (DELGADO; RIBEIRO, 2017). Essas portas lógicas foram responsáveis pelo desenvolvimento das microar- quiteturas que temos hoje em sistemas computacionais mais robustos, junto com o avanço tecnológico da microeletrônica. Microcontroladores, micropro- cessadores, todos esses são dispositivos que compõem, na prática, microar- quiteturas de sistemas computacionais. Conforme já mencionado na unidade, computadores executam um progra- ma em diferentes níveis de abstração, transformam descrições em códigos executáveis utilizando diversas linguagens e seguem os processos abaixo de compilação e interpretação para finalizarem a comunicação ou transferên- cias de dados. A linguagem de máquina é responsável por realizar a compila- ção das informações binárias geradas pelos circuitos eletrônicos, como trocas elétricas geradas no armazenamento de informações nas memórias, proces- so de endereçamento e de instruções realizado pela unidade de controle e o envio e recebimento de dados trocados entre a unidade lógica aritméticas e os dispositivos de entrada e saída (E/S). Já o processo de interpretação é mais lento, linha por linha, que tem mais a função de controle, gerenciamento, do 41 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES que propriamente dito converter uma linguagem de máquina (baixo nível) em uma linguagem de alto nível, que será interpretada pelo programador ou usuário do sistema computacional. A maneira mais prática de entendermos o funcionamento de qualquer siste- ma, seja analógico e digital, é realizarmos experiências com ele. Na eletrônica, já existem as implementações físicas dos conceitos das portas lógicas, através de CI’s (circuitos integrados), ou implementados através dos componentes eletrônicos convencionais e básicos, como por exemplo resistores, capacito- res, chaves, relés e indutores. Assista a videoaula a seguir para reforçar os conhecimentos sobre circuitos integrados e suas aplicações práticas dentro da eletrônica digital. Clique aqui. Hoje, existem também a figura dos programas simuladores de circuitos ana- lógicos e digitais, programas esses que têm a função de reproduzir o compor- tamento desses sistemas eletrônicos antes de serem encaminhados para o mercado. Segundo Patterson e Hennessy (2022), portas lógicas deram origem aos cir- cuitos lógicos que, em combinação com transistores e determinados semi- condutores auxiliares, compõem a construção completa de um sistema di- gital que, através de circuitos integrados, realizam funçõespara execução de alguma tarefa específica. Essas funções são as denominadas funções lógicas de circuitos digitais. 2.2.2 A FUNÇÃO BOOLEANA (OU ÁLGEBRA DE BOOLE) A Álgebra de Boole foi publicada em 1854 pelo matemático e filósofo inglês George Boole (1815 – 1864) através da obra An Investigation of The Laws of Thought baseada em um sistema matemático de análise lógica. Em 1938, a análise lógica desenvolvia há décadas por Boole foi utilizada pelo engenheiro americano Claude Elwood Shannon (1916 – 2001) para imple- mentação de soluções em circuitos de telefonia a base de relés, que constituí- https://www.youtube.com/watch?v=eueA6d7pPoE 42 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ram as primeiras centrais telefônicas analógicas, dando início posteriormente a era da eletrônica digital dentro do ramo tecnológico. É nesse ramo tecnoló- gico da eletrônica onde as portas lógicas ficaram conhecidas por implemen- tar pequenos grupos de circuitos básicos, descrito e publicado no trabalho de Shannon intitulado Symbol Analysis of Relay and Switching. É justamente através do uso das portas lógicas que se pode implementar o que chamamos de “as expressões da Álgebra de Boole”, que representam a base dos projetos dos sistemas digitais, (MORAES, 2020). Essa técnica desenvolvida através da lógica da Álgebra de Boole foi muito uti- lizada na análise e projeto de circuitos eletrônicos digitais pois, similar como se era usada na álgebra convencional, a mesma se utiliza de operações lógi- cas e variáveis onde essas variáveis podem assumir os valores lógico de 0, para falso, e 1 para verdadeiro. Uma variável pode assumir um único valor, tendo na literatura as seguintes possíveis nomenclaturas para esses estados lógicos: 0 ou 1, falso ou verdadeiro, aberto ou fechado, false ou true. Podemos identificar as operações lógicas básicas e suas devidas simbologias como: • operação E (AND): simbologia matemática: ● • operação OU (OR): simbologia matemática: + • operação NOT: simbologia matemática: , onde X é uma variável booleana. Os sinais em um circuito digital podem ser denominados ou representados por variáveis devido a sua alternância de valores no decorrer do tempo, mas 43 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES lembrando que só podem assumir um valor de cada vez. A porta NOT é co- nhecida como a porta inversora devido a sua característica de inverter o valor de uma variável e possui a função S = vv(X ) como exemplo de representa- ção, onde S é a saída e X é a entrada; já uma porta E (AND) de duas entradas, X e Y, é representado pela função de expressão de saída S = X .Y . A porta OU (OR) de duas entradas X e Y, é representada pela função de expressão S = X + Y. A Figura a seguir mostra as principais características de algumas portas lógica, como sua função ou expressão matemática e a sua tabela verdade, já estudada dentro da unidade: CARACTERÍSTICAS DE ALGUMAS PORTAS LÓGICAS BÁSICAS Fonte: adaptada de Delgado e Ribeiro (2022, p. 27). #pratodosverem: a imagem representa a figura de uma tabela com as principais características das portas lógicas como tabela verdade, simbologia e expressão ou função matemática. 44 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 2.2.3 CIRCUITOS LÓGICOS Circuitos lógicos são componentes eletrônicos que, através do conceito das portas lógicas, trabalham com as operações binárias (0 e 1), para executar as operações booleanas a partir das portas lógicas básicas: E (AND), OU (OR) e NOT. Assista a videoaula para reforçar os conhecimentos sobre o funcionamento da lógica booleana nos circuitos lógicos digitais. Clique aqui. Segundo Moraes (2022), o Teorema de Morgan e o Mapa de Karnaugh são técnicas usadas para simplificação de álgebras booleanas e facilitam a criação de circuitos específicos, formados a partir das portas lógicas primárias. Um exemplo prático da obtenção de um circuito lógico é a criação de uma porta específica conhecida com OU EXCLUSIVA (ou XOR, abreviação do inglês) a partir de portas primárias E (AND) e OU (OR), conforme Figura a seguir: FUNÇÃO OU EXCLUSIVA A PARTIR DE PORTAS LÓGICAS E (AND) E OU (OR) Fonte: Elaborada pelo autor (2022). #pratodosverem: a imagem representa um esquema eletrônico de uma porta lógica OU EXCLUSIVA, composta por dois desenhos geométricos centrais representando duas portas E e outra figura geométrica mais à direita da figura, representando uma porta OU. De acordo com a Figura anterior, o circuito lógico só terá nível alto (1) na saída S quando as duas entradas A e B divergirem entre seus valores lógicos. Essa lógica, que gera a porta XOR, é o princípio da criação de circuitos mais robus- tos, como um somador de 2 bits, por exemplo. A tabela verdade conforme https://www.youtube.com/watch?v=aYVz0l3ZMWc 45 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES figura anterior, é montada a partir dos valores lógicos em vermelho em cada etapa entre as portas lógicas primárias, exemplificando como o sinal é trata- do passando por cada função. Podemos a partir da lógica booleana de cada porta lógica, montar a expres- são matemática do circuito da Função OU EXCLUSIVA a partir de portas lógi- cas E (AND) e OU (OR), onde na saída de cada porta lógica, também existirá sua função, conforme ilustrado na figura a seguir: CIRCUITO LÓGICO FORMADO POR PORTAS E / OU E SUA FUNÇÃO DE SAÍDAS Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa um esquema eletrônico de uma porta lógica OU EXCLUSIVA, composta por dois desenhos geométricos centrais representando duas portas E e outra figura geométrica mais à direita da figura, representando uma porta OU Conforme descrito na Figura anterior, o circuito lógico possui saída S = + onde devemos analisar que a saída projetada nada mais é que a junção das saídas de duas outras portas lógicas E (AND) anteriores que possuem, em comum, uma entrada inversora devido a presença de duas portas lógicas NOT. Assim, podemos perceber que a saída das portas E (AND) são e S = que irão juntas servir como entradas para uma porta OU (OR). Embora se possa notar que esses circuitos são montados a partir de blocos lógicos, devemos ressaltar também que esses circuitos são considerados cir- cuitos combinacionais, pois são obtidos através de uma Tabela Verdade e que gera uma expressão booleana que o representa. 46 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 CONCLUSÃO Nesta unidade, você aprendeu que os computadores digitais são máquinas que funcionam baseadas na eletrônica digital que foram desenvolvidas por meio de uma lógica computacional conhecida como álgebra de Boole (ou álgebra booleana). Nessa matemática, a representação das comunicações nos computadores é representada por apenas dois valores: 0 (zero) ou 1 (um). O primeiro modelo computacional foi proposto pelo matemático John Von Neumann, que, posteriormente, teve a arquitetura aprimorada pelo modelo de Harvard. O conjunto de instruções que uma máquina realiza é conhecido como algoritmo que é mediado por meio de entradas e saídas dessas instru- ções. No geral, você conheceu que todo computador é constituído por uma unida- de central de processamento, por uma memória e por dispositivos de entrada e saída (E/S) e que precisa ter como funções básicas a capacidade de proces- samento, de armazenamento, de transferência e de controle de dados. UNIDADE 3 OBJETIVO Ao final desta unidade, esperamos que possa: 47 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Entender ofuncionamento interno de uma CPU e como é a sua comunicação com os demais periféricos e dispositivos de E/S. > Aprender sobre tipos de memórias, mecanismos de interrupção e as funções dos barramentos na comunicação. 48 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 3. OS COMPONENTES BÁSICOS DE UM COMPUTADOR INTRODUÇÃO DA UNIDADE Na unidade Os Componentes Básicos de um Computador serão apresen- tados os componentes básicos de um computador, serão abordados conteú- dos sobre os subsistemas de dados e memória, como é feita a comunicação entre os dispositivos e periféricos através dos barramentos, as atribuições da unidade central de processamento, sua composição interna e suas funções. Por fim, serão apresentados os mecanismos de interrupção, os tipos de bar- ramentos, os tipos de comunicações e as características dos periféricos de um sistema computacional. Preparado para aprender? Vamos lá! 3.1 OS COMPONENTES BÁSICOS DE UM COMPUTADOR Nesta unidade, aprenderemos sobre os conceitos básicos de um computa- dor e de todo um sistema computacional, como ocorrem os processamentos dos dados e a transformação das informações, os componentes básicos da informação e como ocorre a hierarquia entre os dispositivos e os dados ma- nipulados entre eles. Você saberia dizer qual o dispositivo mais importante de um computador? Como os dados são processados por esses dispositivos eletrônicos. Ficou curioso? Então vamos conferir. 3.1.1 CPU E SUA ARQUITETURA Um computador tem um objetivo que é de alguma maneira, interagir com o ambiente externo que, na prática, são os dispositivos de entrada e saída (E/S) que, no geral, representam os periféricos e as linhas de comunicação, conhe- cidas como barramentos, conforme Figura a seguir: 49 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ESTRUTURA DE UM COMPUTADOR Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem representa a estrutura de um computador representado por círculos pontilhados interseccionados, com o barramento do sistema no centro da figura, interligando os outros componentes de um computador: dispositivos de E/S, CPU e Memória. Conforme descrito na Figura anterior, um computador é constituído por qua- tro componentes principais: • Unidade central de processamento (CPU): representado na prática pelo processador dentro de um computador, a CPU é o cérebro da máquina, todas as instruções de rotinas e processamento de dados são operadas e controladas por ela. É constituída internamente por quatro unidades funcionais: unidade lógica aritmética (ULA), barramento interno, unidade de controle e registradores (PAIXÃO, 2014). 50 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES • Memória principal: local onde os dados são armazenados e manipulados para a execução das instruções de rotinas (MORAES, 2022). • Dispositivos de entrada e saída (E/S): dispositivos responsáveis por encaminhar os dados entres os dispositivos principais do computador e o ambiente externo, através de portas e conexões para comunicação de dados. • Barramentos do sistema: mecanismo responsável pela comunicação entre a CPU, memória e dispositivos de entrada e saída (E/S). Hoje, na prática, essa comunicação é feita pelos cabos de dados flat do tipo IDE, ATA, SATA, entre outros. Como sendo o dispositivo mais importante de um sistema computacional, a arquitetura de um processador, nome dado à CPU, evoluiu muito nos últimos anos devido ao avanço tecnológico promovido nas áreas da microeletrônica e nanotecnologia, onde hoje podemos encontrar no mercado processadores com vários núcleos. Em geral, todos os CI’s (circuitos integrados), processam dados pois são desenvolvidos por circuitos que recebem sinais elétricos de baixa tensão (os bits do sinal digital) e geram sinais elétricos de saída. Outra característica peculiar dos processadores é a presença de uma arquitetura mais complexa, o diferenciando dos demais circuitos integrados. Cabos de dados do tipo ATA, SATA, que significa Serial Advanced Technology Attachment, são os cabos utilizados hoje na maioria das arquiteturas de computadores devido à alta taxa de transferência serial de dados entre os dispositivos internos, através da motherboard (placa mãe), que é a principal placa de um sistema computacional. Todos os dispositivos se conectam através dela utilizando tais cabos de transferência de dados. 51 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Os principais componentes que constroem um processador e sua arquitetura simplificada são mostrados na Figura a seguir: ELEMENTOS DE UM PROCESSADOR (CPU) Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa um esquema dos elementos de um processador, onde a ULA é representada por um bloco retangular mais à esquerda da figura, interligado por setas ao bloco unidade de controle no formato retangular, e os registradores que são representados por uma tabela com duas colunas e quatro linhas. De acordo com a Figura anterior, temos no processador a unidade lógica aritmética (ULA) que é um circuito eletrônico complexo que recebe na sua entrada pulsos elétricos que representam a lógica binária e gera na saída o resultado ou manipulação através de uma ou várias operações lógicas ou arit- méticas. Geralmente, as operações aritméticas de um computador são exe- cutadas em dois tipos de números: os números inteiros e ponto flutuante. A ULA é realmente a parte do computador que executa as operações lógicas e aritméticas sobre os dados e os demais elementos que tem, entre outras funções, trazer os dados para serem processados pela ULA e, posteriormente, levar os resultados de volta. 52 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Além de executar as operações, a ULA ativa bits considerados especiais, de- nominados de flags, como resultado das operações realizadas, que são arma- zenados nos registradores que ficam dentro do processador. Nesse caso, a unidade de controle disponibiliza sinais que controlam a operação da ULA e a movimentação dos dados entre os elementos. A ULA está conectada aos re- gistradores através de um barramento interno, construindo o que chamamos de o caminho de dados (MAIA, 2022). Assista esta videoaula para reforçar os conhecimentos sobre o uso e aplicações de uma CPU em um computador. Clique aqui. Pode-se utilizar, na prática, um conjunto de registradores para uma execução paralela de instruções. Os dados são apresentados à ULA através dos registra- dores e os resultados das operações são armazenados, por consequência, nos registradores. A Figura a seguir mostra um modelo simplificado de uma ULA (unidade lógica aritmética): ULA – MODELO SIMPLIFICADO Fonte: adaptado de Stallings (2010). #pratodosverem: a imagem representa a figura simplificada de unidade lógica aritmética, representada por um desenho de um trapézio. https://www.youtube.com/watch?v=kuNq7eLdu8c 53 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Na figura anterior, temos um circuito do tipo combinatório, pois possui duas entradas (A e B) que são controladas, na prática, por um gerador de sinal de controle (S), que libera os sinais de entrada através de uma porta, onde o re- sultado é mostrado através da SAÍDA do circuito. Veja a seguir: • Unidade de controle é responsável por receber as instruções que estão armazenadas na memória e decodificá-las. É um circuito que está diretamente ligado às execuções das instruções pela CPU. Também é função de uma unidade de controle emitir os sinais para os dispositivos periféricosatravés dos barramentos para informá-los das operações que os mesmos precisam executar. • Registradores são porções de memórias com capacidade de armazenamento bem reduzido e limitado, que são alimentadas por corrente elétrica. Todos os componentes são interligados internamente entre si através dos barramentos internos. Além desse barramento, também existem os barramentos de dados, que tem a função de levar os sinais de dados entre a CPU e os outros componentes; e também existem os barramentos de endereços que transportam os sinais que localizam os endereços em uma posição de memória ou abrem conexões entre a CPU e os dispositivos de entrada e saída. (PATTERSON, HENNESSY, 2017). 3.1.2 MEMÓRIA E DISPOSITIVOS DE E/S (ENTRADA E SAÍDA) Devido às variações de custo com relação a capacidade de armazenamento, as memórias de um sistema computacional são divididas em níveis hierár- quicos para podermos otimizar a relação custo/benefício na montagem dos computadores. 54 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Em sistema computacional, as memórias são divididas em internas e externas, onde as memórias internas são aquelas que estão localizadas mais próximas do processador como os registradores, cache, ROM e a RAM; e as memórias externas que são dispositivos acessíveis através da controladora de E/S. (MAIA, 2022). As memórias internas geralmente têm dependência da largura dos barra- mentos de dados e são expressas em termos de bytes (ou oito bits); já as me- mórias externas são transferidas em unidades maiores chamados de blocos. Com relação ao método de acesso às memórias, as mesmas são classificadas em acesso sequencial, direto, aleatório ou associativo. Memórias de acesso sequencial são memórias organizadas em registros com acesso linear onde o tempo de acesso é variável; memórias de acesso direto os dados são armazenados em blocos de forma aleatória; memórias de acesso aleatório (ou randômico) cada posição de memória tem seu próprio mecanismo de leitura/escrita e acesso associativo é a memória onde as buscas pelas informações iniciam a partir da comparação entre endereço real e virtual. (MORAES, 2022). Na hierarquia de memória, o topo da pirâmide tem como parâmetro referen- cial a frequência ou taxa de transferência de dados, tendo os registradores como a memória que tem esse melhor desempenho, seguido da memória cache e da memória principal. As memórias mais rápidas são as mais caras, quanto maior a capacidade, maior o tempo de acesso à s informações con- tidas nas posições de memórias e memórias com maior capacidade tem o menor custo por bit. 55 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Assista esta videoaula para reforçar os conhecimentos sobre o tipo de memória RAM, suas funções e aplicações em sistemas computacionais. Clique aqui. Dispositivos de entrada e saída (E/S) são chamados de periféricos pois não fazem parte do núcleo central do sistema computacional e são representa- dos na prática por inúmeros elementos eletrônicos que tem a função de cap- tar estímulos elétricos vindo do mundo exterior do sistema e levar até a CPU através dos barramentos. O principal barramento é chamado de barramento do sistema (system bus) que tem a finalidade de interligar todos os compo- nentes do sistema (CPU, memória) e por onde trafegam os mesmos tipos de informações, dados, endereços e sinais de controle, interligando dois os mais subsistemas, conforme ilustrado na Figura a seguir: BARRAMENTOS DO SISTEMA Fonte: elaborado pelo autor (2022). #pratodosverem: a figura mostra os barramentos usados em uma comunicação interna entre o processador e os outros dispositivos internos, através de blocos. Um bloco na cor cinza claro representa a CPU, localizado logo acima de um bloco retangular na cor cinza que representa a memória secundária que se comunica com os barramentos horizontais nas cores verde, azul e salmão claro. https://www.youtube.com/watch?v=2EWJms8vrys&t=32s 56 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Conforme mostrado na figura anterior, temos um subsistema de memória e um subsistema de E/S, interligados através dos barramentos dos sistemas, controlados pela CPU. Os barramentos do sistema têm função similar aos barramentos internos do processador que, por sua vez, permitem a troca de informações entre os registradores e as demais unidades da CPU. O funcionamento dos dispositivos de entrada e saída (E/S) é operacionalizado através de diversos outros elementos eletrônicos que compõem o seu subsis- tema, mesmo tendo as mesmas funções, possuem características peculiares que, em conjunto, recebem ou enviam informações aos periféricos e conver- tem os sinais elétricos oriundos das trocas de informações com os dispositivos E/S em linguagem de máquina, para ser interpretada pelo processador. 3.1.3 UNIDADE DE CONTROLE E REGISTRADORES A unidade de controle tem duas funções específicas em um computador: coordenar para que o processador execute as instruções na sequência devida de acordo com o software que está sendo usado e gerar sinais de controle para gerenciar as tais instruções citadas. A execução de uma instrução é cons- truída de uma sequência de subpassos, denominados de ciclos, onde cada ciclo é uma sequência de operações que, pode representar na prática, uma simples troca de dados entre os registradores, uma troca de dados entre um registrador e o barramento, entre outras operações. Entretanto, uma unidade de controle gerencia os recursos disponíveis e o fluxo de dados entre todos os dispositivos de um sistema computacional. Os sinais de controle gerados pela unidade de controle causam o funcionamento das portas lógicas através de trocas de sinais elétricos, resultando no envio de dados entre registradores ou durante uma operação que envolva a unidade lógica aritmética (ULA). Entre as diversas funções de uma unidade de controle temos: • Buscar as instruções na memória principal do computador. • Decodificar as instruções. • Sequenciar e organizar as instruções. • Enviar sinais de controle para controlar as execuções das instruções. A Figura a seguir detalha todos os elementos que compõem uma unidade 57 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 de controle, identificada como elemento de uma CPU (processador) que, por sua vez, faz parte de um computador. ELEMENTOS DE UMA UNIDADE DE CONTROLE Fonte: elaborada pelo autor (2022). #pratodosverem: esquema lógico que mostra as divisões internas de um computador onde cada círculo pontilhado representa um elemento essencial da estrutura de um computador. Na Figura anterior, a unidade de controle tem a responsabilidade de receber as instruções do barramento vindo dos registradores, onde estão armazena- dos os dados enviados da ULA. Lembrando que a unidade de controle não executa as instruções, ela lê os dados, decodifica e repassa os comandos para a ULA, identificando como as instruções devem ser executadas e quais dados serão utilizados. De acordo e seguindo as instruções, a ULA irá recolher os da- dos na memória, executar as devidas instruções sequencialmente e retornar o resultado novamente para a memória onde será armazenado. Tudo sob a supervisão da unidade de controle, onde os dados lidos são enviados para alguma posição de memória, através do barramento de dados, gerando um fluxo de dados; já os endereços são enviados através de um barramento de endereço. Para que a unidade de controle possa desempenhar as suas devidas funções, ela precisa ter certas especificações para poder provê-las, como portas de en- tradas para designar o status do sistema e portas de saída para poder contro- lar o comportamentodo sistema como um todo. Uma unidade de controle deve ser capaz de executar as funções sequenciais e as microoperações, con- forme descrito na Figura a seguir que mostra um modelo genérico de uma unidade de controle. 58 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES MODELO DE UMA UNIDADE DE CONTROLE DE UM PROCESSADOR Fonte: elaborado pelo autor (2022). #pratodosverem: A figura retrata como é a comunicação interna em um processador, onde a unidade de controle é representada por um bloco retangular na cor laranja. Os barramentos internos são representados por setas nas cores azul e cinza, controlado pelo barramento principal de controle, representado por um retângulo pontilhado na posição vertical. Na Figura anterior temos de novidade os sinais de controle de comunica- ção entre a unidade de controle e o barramento que são identificadas de três tipos: os sinais de controle que realizam a ativação de alguma função na ULA, os sinais que ativam os caminhos de troca de dados e os sinais de con- trole que são enviados para o barramento ou para algum dispositivo externo. Na prática, todas essas entradas e saídas são operações lógicas realizadas por portas lógicas através de sinais binários (valores 0 ou 1). As entradas de uma unidade de controle de um sistema computacional são: • Sincronismo (clock): sinal digital de pulsos que controla o tempo para a realização das microoperações simultâneas. Cada microoperação (ou instrução) é executada a cada pulso do clock do sistema, também conhecido na literatura como ciclo do processador ou de ciclo de relógio. (STALLINGS, 2010). 59 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 • Sinais de controle do barramento: fornece à unidade de controle sinais de interrupção e de reconhecimento. • Instruções: determina as microoperações que devem ser executadas durante o ciclo de execução da instrução corrente. (MORAES, 2022) As saídas de uma unidade de controle de um sistema computacional são: • Sinais de controle interno: sinais ativados durante a troca de dados entre os registradores do processador ou quando precisam ativar funções específicas. • Sinais de controle para o barramento: sinais acionados para controle da memória ou de dispositivos de entrada e saída (E/S), quando acionados. (STALLINGS, 2010). Os registradores são memórias de pequeno porte e de armazenamento re- duzido, são as mais rápidas em um sistema computacional e podem ser di- vididas em dois grupos: os registradores de uso geral e os específicos. Em um sistema computacional, o destino final dos dados de qualquer memória é o processador. As memórias possuem como objetivo maior armazenar os da- dos que serão utilizados pelo processador pois ele é responsável por executar as instruções e pela manipulação dos dados que irão gerar resultados atra- vés das operações lógicas realizadas. Como mencionado, os registradores de uso geral são utilizados para armazenar dados que estão em execução pelo programa (temporários), como os valores que serão usados nas operações re- alizadas e o resultado das mesmas. O acumulador (Acc) é um exemplo de registrador importante de uso geral e mais utilizado nos processadores por- que ele é usado como origem e destino de dados e também é um operando muito eficiente nas instruções devido a velocidade de troca de dados (PAT- TERSON, HENNESSY, 2017). 60 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Assista esta videoaula para reforçar os conhecimentos sobre os registradores, ULA, UC e a CPU. Clique aqui. O registrador acumulador leva vantagem em comparação às memórias de- vido a versatilidade e rapidez na movimentação dos bits e, de maneira geral, um registrador acumulador tem a capacidade de se deslocar facilmente tan- to para a direita quanto à esquerda do registrador, além de possuir entrada e saída paralela. Outros registradores importantes em processadores são: • Contador de instrução (CI) / Contador de programa (PC- Program Counter): esses registradores são utilizados quando o processador (CPU) precisa armazenar os endereços de memória que serão lidos pela instrução em execução. Toda vez esse contador será incrementado para apontar para a próxima posição de memória que será utilizada pela instrução. • Registrador de Instrução (RI): os códigos de instrução serão armazenados nesse registrador e a CPU sempre irá interpretar o conteúdo armazenado no registrador de instrução como sendo um código de operação para, após isso, iniciar a decodificação dos dados. • Registradores de Endereço (REM): esse registrador tem a função de armazenar o endereço onde ficará o conteúdo dos dados que serão acessados pelo processador e esse endereço, por consequência, fica armazenado em um registrador conhecido como Contador de Dados (CD). O tamanho do CD irá depender de alguns fatores como o tamanho máximo de memória que o processador pode endereçar. https://www.youtube.com/watch?v=hcn0BPG182A 61 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 • Flags: registrador especial que guarda as informações referente a última execução realizada e sinais de controle para que o processador possa fazer controle de fluxos (PAIXÃO, 2014). Para entendermos melhor o cenário de como funciona o uso dos registra- dores dentro do processo de execução de tarefas de um processador, o ciclo de instrução dele é composto por quatro etapas: busca, decodificação, exe- cução e resultado. Na etapa da busca, o processador irá buscar a instrução na memória e atualizar o status do registrador PC ou CI. A etapa de deco- dificação da instrução ocorre a interpretação da operação a ser realizada e também a busca pelos operandos. A etapa da execução é onde a operação é desenrolada até chegar na etapa final que é o resultado. De forma resumida, podemos afirmar que o registrador acumulador (Acc) ar- mazena de forma temporária um conjunto de bits que serão utilizados pelo processador (CPU), o contador de dados (CD) tem a função de armazenar endereços que serão utilizados nas operações que envolvem as memórias, o registrador e instruções (RI) armazena os códigos de instrução e o registrador PC, por sua vez, armazena endereços de palavras de memória que serão lidos durante o processo. Também existem os registradores ponteiros e de índice que são usados para armazenar valores de deslocamento no acesso às instruções ou no acesso de certas posições específicas da memória pilha (SP ou BP) ou ainda na manipulação de dados do tipo tabelas ou matrizes nos segmentos de dados SI e DI. Registradores de flags são registradores compostos por 16 bits onde apenas nove são utilizados como flags, conforme Figura a seguir: 62 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES REGISTRADOR DE FLAGS Fonte: elaborado pelo autor (2022). #pratodosverem: figura mostra a estrutura interna de um registrador de 16 posições. Conforme mostrado na Figura anterior, um registrador flag auxilia nas de- cisões após a execução de instruções lógicas e aritméticas de acordo com o status das flags que compõem o registrador, como a flag ZF (zero flag), que indica quando o resultado de uma operação lógica é zero. A flag SF (sign flag) que indica quando o resultado de uma operação é negativo. A flag OF (over- flow flag) indica que o resultado de uma operação matemática, por exem- plo, exceda o limite de representação, a flag CF (carry flag) que indica que o resultado de uma operação não cabe na posição de memória destino. A flag AF (auxiliar carry flag) indica que ajustes são necessários na operação e a flag PF (parity flag) indica se o resultado de uma operaçãoqualquer possui um número par de bits “1” 3.2 MECANISMOS DE INTERRUPÇÃO E DE EXCEÇÃO Mecanismos de interrupção e de execução são mecanismos usados para si- nalizar ao processador a ocorrência de eventos importantes relacionados aos dispositivos periféricos e outros dispositivos de entrada e saída (E/S). Durante a ocorrência da interrupção, é solicitado à CPU que ela pare momentanea- mente o que está fazendo para atender a interrupção pois, através disso, irá permitir que os dispositivos periféricos sincronizem sua operação com o pro- cessador através dos barramentos. 3.2.1 BARRAMENTOS: TIPOS E FUNÇÕES Um sistema computacional que possui a CPU como dispositivo central, utiliza os barramentos de endereço, barramentos de dados e barramentos de con- trole para a comunicação dessa CPU com os demais dispositivos ou periféri- cos do sistema, conforme ilustrado na Figura a seguir: 63 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 TIPOS DE BARRAMENTOS DE UM SISTEMA COMPUTACIONAL Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem representa os tipos de barramentos de um sistema computacional onde os barramentos são representados por setas, interligando a CPU, figura retangular da cor cinza claro mais à esquerda da figura, a memória e aos dispositivos de E/S, também representados por formas retangulares pontilhadas. Conforme ilustrado na Figura anterior, temos: • Barramento de dados: tem a função de interligar a CPU à memória, através de um barramento bidirecional, para a transferência de informações que serão processadas. Esse barramento determina o desempenho do sistema pois quanto maior a quantidade de vias de comunicação, mais rápido será o processamento das informações. • Barramento de endereços: tem a função de interligar a CPU à memória através do endereçamento dos dados e o número de vias desse barramento corresponde a tecnologia que é usada no desenvolvimento do processador. 64 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES • Barramento de controle: interliga a Unidade de Controle aos dispositivos de um computador, periféricos de entrada e saída, unidades de armazenamento e memórias auxiliares. (STALLINGS, 2010). A largura do barramento de dados influencia no desempenho geral do siste- ma, como já dito na unidade, e é nas linhas de dados que ocorrem as trocas de informações, que podem ser linhas de dados de 8, 16 ou 32 vias separadas. Assista esta video aula para reforçar os conhecimentos teóricos sobre os tipos de barramentos e suas funções em um sistema computacional. Clique aqui. Assim, podemos ter os seguintes tipos de transferências de dados através dos barramentos: escrita (W), leitura (R) e leitura-escrita (WR). O modo WR po- demos ter de dois tipos: • Leitura-modificação-Escrita: leitura de dados seguida da escrita de dados no mesmo endereço de memória. • Leitura-após-Escrita: após realizada a inserção dos dados, é feita uma nova leitura no mesmo endereço para confirmação dos dados. O barramento de endereço é usado para indicar qual endereço na memó- ria ou qual endereço no barramento do sistema serão usados para operação de transferência de dados, e o barramento de endereço indica precisamente onde a próxima transferência de dados irá ocorrer. Além disso, a largura do barramento de endereço determina o conjunto de localizações que podem ser referenciadas. O tamanho do barramento da memória também controla https://www.youtube.com/watch?v=xGCgCGSQOLA 65 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 a quantidade de informações que a memória do processador pode endereçar diretamente. Os processadores mais antigos usavam apenas um barramento de dados para interligar todos os dispositivos. Hoje em dia, os processadores modernos utilizam o DIB (Dual Independent Bus) que é uma arquitetura que inclui dois barramentos individuais: um que interliga a CPU a memória principal e periféricos, denominado de Frontside Bus, e outro barramento que interliga o processador a memória cache, denominado de Backside Bus. 3.2.2 TIPOS DE COMUNICAÇÕES ENTRE DISPOSITIVOS As interfaces de E/S são assíncronas, isso quer dizer que não estão sincroni- zadas com o clock do processador. Na prática, representa que diversos dispo- sitivos de entrada e saída podem ter algumas particularidades, como taxa de transmissão na comunicação diferentes, formato dos dados a serem trans- mitidos e recebidos diferente, quantidade de bits ou taxa de transmissão de acordo com o dispositivo e a capacidade do barramento etc. Devido a essas especificidades, na prática, os dispositivos de entrada e saída (E/S) não são acessados diretamente pelo processador pois isso acarretaria uma dispendio- sa arquitetura que envolveria diferentes comunicações e estruturas entre os inúmeros dispositivos eletrônicos. Isso se tornaria inviável. Assista esta videoaula para reforçar os conhecimentos sobre dispositivos de entrada e saída e suas interfaces de comunicação. Clique aqui. Assim, foi desenvolvido um dispositivo intermediário que tem a função de fa- zer a “conversação” e a compatibilização entre os dispositivos de entrada e sa- ída (E/S) e os barramentos, além de realizar o seu controle. Esse dispositivo é a https://www.youtube.com/watch?v=hHzBR5D2xEQ 66 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES controladora de dispositivos de entrada e saída (E/S) que, entre outras fun- ções, controla os dispositivos de armazenamento, as controladoras de vídeo, o canal de comunicações, entre outras funções. A Figura a seguir, apresenta a arquitetura e comunicação por meio de uma controladora de dispositivos E/S. CONTROLADORA DE COMUNICAÇÃO DE DISPOSITIVOS DE ENTRADA E SAÍDA (E/S) Fonte: elaborado pelo autor (2022). #pratodosverem: esquematização da composição interna de uma controladora de dispositivos de entrada e saída. Um quadrado central representa a controladora, um bloco interno na cor verde representa os dados e um bloco interno na cor azul representa a lógica. Após analisar a figura anterior, o que podemos entender? A controladora de dispositivos de E/S possui registradores específicos para o tipo de informação que será tratada, fazendo a interação com os barramentos do sistema. Tam- bém foi criado um espaço dedicado para o armazenamento dinâmico dos dados durante as trocas de informações, conhecido como buffer, que irá con- trolar a velocidade de comunicação entre os dispositivos e os barramentos. Por fim, temos a área onde se localiza toda a lógica de funcionamento e inte- ração entre as interfaces e os barramentos, na qual podem ser implementa- dos conceitos como detecção de erro, paridade, sincronismo, e a complexida- de vai depender do tipo do dispositivo que será adicionado nas pontas. Uma controladora de dispositivos de E/S pode conectar um ou vários dispositivos de entrada e saída, inclusive dispositivos diferentes. 67 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 3.2.3 INTERFACES E PERIFÉRICOS Os dispositivos de entrada e saída podem se conectar de forma local ou remo- ta em um computador, para transmissão de dados, de duas maneiras: através de uma transmissão serial ou através de uma transmissão paralela. Vamos conhecer mais sobre elas? A transmissão serial é uma transmissão do tipo bit a bit, onde os dispositivos usam apenas um meio de transmissão serializado e que devem estar devida- mente sincronizados para que a comunicação possa ser efetivada. Para que o receptor e o transmissor nessa comunicação possam receber os bits envia- dos, eles precisam ser capazes de identificar quando o bit inicia e qual o seu tempo de duração.Para isso, são inseridos na comunicação bits de sincronis- mos ou de paridade. (DELGADO, 2017) A transmissão serial pode ser realizada de duas maneiras: de forma síncrona ou assíncrona. Na comunicação serial assíncrona se faz necessário que tanto o transmissor quanto o receptor possuam um dispositivo capaz de identificar e decompor cada caractere de bits e possam inserir e retirar os bits especiais conhecidos como START/ STOP na transmissão. Esses bits especiais são responsáveis pela sincronização e são geralmente implementados na prática, principalmente em microcontroladores, por módulos conhecidos como UART (Universal Asynchronous Receiver/ Transmitter). Entre outras funções, esses módulos têm como característica principal a conversão serial/ paralela nas transmissões digitais. Já a transmissão síncrona é mais eficiente em comparação à transmissão serial assíncrona, pois os bits são transmitidos em blocos, sem intervalo entre eles, e sem os bits especiais. Para manter o sincronismo nesse tipo de transmissão, faz-se necessário que ambos compartilhem o mesmo clock, ou fonte de sincronismo. (DELGADO. 2017) 68 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES A transmissão paralela é realizada por grupo de bits, que são enviados em meios de transmissão individuais ou separados, que são mais dispendiosos de serem implementados, principalmente em maiores distâncias, devido à ate- nuação do sinal elétrico e as interferências externas. Não foram popularizadas devido à necessidade de o receptor só sincronizar a comunicação se todos os bits fossem recebidos, rigorosamente, ao mesmo tempo, compartilhando da mesma fonte de sincronismo (PATTERSON, HENNESSY. 2019) Um exemplo de comunicação serial podemos citar as portas USB (Universal Serial Bus) que utiliza quatro vias na composição do cabo, onde dois são conectores para alimentação 5V e as outras vias são para receber e enviar os dados. Exemplos de comunicação paralela são as portas LPT, IDE e AGP 69 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 CONCLUSÃO Nesta unidade, você aprendeu sobre os componentes de um computador, a arquitetura interna de um processador, a hierarquia existente entre as me- mórias e como se comunicam com os dispositivos de entrada e saída. Tam- bém vimos como ocorrem os mecanismos de interrupção em um sistema computacional, qual o papel dos barramentos e periféricos nessas ações e como o processador se comporta durante uma solicitação de interrupção. Por fim , aprendemos os tipos de comunicação existentes entre os dispositi- vos, periféricos e o processador. Bons estudos! UNIDADE 4 OBJETIVO Ao final desta unidade, esperamos que possa: 70 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Entender o funcionamento dos ciclos de instrução de uma CPU e como é feito o sincronismo através dos barramentos de comunicação. > Aprender sobre os processos de transferência de dados e os tipos de linguagens de máquina, voltado a programação de hardware. 71 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 4. CICLOS DE INSTRUÇÃO DE UM PROCESSADOR INTRODUÇÃO Nesta unidade, serão apresentados os subciclos de busca de um processador, em que serão abordados os conceitos de ciclo de instrução e suas etapas, irá co- nhecer sobre o conjunto de instruções de um processador e a importância da implementação tecnológica do pipeline no desempenho dos processadores. Também serão abordados as interconexões e os barramentos, as operações e os tipos de transferência de informações e dados, o conceito de temporização e, por fim, será visto o conceito de linguagem de máquina a programação assembly. Preparado para aprender? Vamos lá! 4.1 OS SUBCICLOS DE BUSCA (FETCH) Estudaremos as definições de instrução, programas, ciclo de instrução, o con- junto de instruções de um processador e o conceito de Pipeline. Também será abordado as interconexões e barramentos, como é feita a troca de informa- ções e aprenderemos sobre linguagem de máquina e a linguagem assembly. 4.1.1 CICLO DE INSTRUÇÃO A função de execução das instruções fica a cargo do processador (CPU), de acordo com os programas. Você sabe o que é necessário para isso ocorrer? Deve haver um processo ou passo a passo das tarefas que a CPU precisa se- guir para cumprir e executar as suas funções, lembrando que o processador é um dispositivo eletrônico que, com a lógica computacional e digital, trabalha de forma sequencial. Vamos descobrir mais? Continue aqui. Os principais elementos de uma instrução de um computador são os opco- de (operation code), que são os códigos de operação propriamente dito, eles têm a função de especificar a operação que deverá ser executada pela CPU. Outras de suas funções é mostrar as referências dos operandos de origem e destino, que especificam os locais de entrada e saída para a operação e a re- ferência da próxima instrução. (PAIXÃO, 2014) 72 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Os opcodes especificam operações de dados, como as próprias operações aritméticas e lógicas, controlam as movimentações de dados entre dois regis- tradores ou entre registrador e memória, e também controlam as trocas entre posições de memória e dispositivos de entrada e saída (E/S), em que os tipos dos dados podem ser endereços, números, caracteres ou dados lógicos. As etapas envolvidas na execução de uma instrução pela CPU são código de operação, referência ao operando fonte, referência ao operador destino e referência à próxima instrução, conforme figura a seguir: CICLO DE INSTRUÇÃO EM UM PROCESSADOR Fonte: Stallings (2010, p. 287). #pratodosverem: a figura apresenta o ciclo de instrução em um processador, em que cada denominação aparece em círculos, todos interligados por setas. Dentro do projeto de um processador, existem duas etapas que precisam ser especificadas: as escolhas das instruções e a descrição do processo de execução dessas instruções, chamado, tecnicamente, de ciclo de instruções. O que você concluiu a partir da figura anterior? De forma mais detalhada, o código de operação é responsável por determinar a operação que será reali- zada, especificada no opcode, e que atua no estágio Decodificação da ope- ração da instrução, que faz referência ao operando principal da instrução. Já 73 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES o estágio Cálculo do endereço do operando faz referência ao operador desti- no, que é responsável por produzir um resultado que será usado pela próxima instrução. Esse estágio também tem o papel de informar ao processador em que ele irá buscar a próxima instrução, após o término da instrução anterior. Após isso, o processador retorna para o estágio busca da instrução, reinician- do um novo ciclo a partir da decodificação dos operandos (MORAES, 2020). Assista a essa videoaula que mostra o ciclo de instrução, que é o caminho que uma instrução percorre para ser executada em um processador. Clique aqui. Vale ressaltar que o processador pode encontrá-los basicamente em quatro áreas: na memória principal ou virtual, nos registradores do processador, na própria instrução ou nos dispositivos de entrada e saída (E/S). CICLO INDIRETO DE INSTRUÇÃO Fonte: elaborado pelo autor (2022). #pratodosverem: a figura mostra blocos retangulares na cor azul que representam o ciclo de busca, interrupção e execução de um processador. De acordo com a figura anterior, depois que uma instrução passa pelo estágio de busca, ele é decodificado para analisar se algum endereçamento indiretoestá envolvido. Se tiver, os operandos são buscados e encaminhados ao está- gio de execução. Podemos verificar, também, que um estágio de interrupção pode ocorrer antes de se iniciar uma nova busca pelo processador. https://www.youtube.com/watch?v=5Id1eTreBro 74 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 A função de execução das instruções fica a cargo do processador (CPU) de acordo com os programas e, para isso ocorrer, deve haver um processo ou passo-a-passo das tarefas que a CPU deve seguir para cumprir e executar as suas funções, lembrando que o processador é um dispositivo eletrônico que, junto com a lógica computacional e digital, trabalha de forma sequencial. Dentro do projeto de um processador, existem duas etapas que precisam ser especificadas: as escolhas das instruções e a descrição do processo de execução dessas instruções, chamado tecnicamente de ciclo de instruções. De acordo com o texto anterior e a definição sobre um ciclo indireto de instrução, qual das opções abaixo corresponde a uma etapa na execução de um ciclo indireto de instrução? Texto das alternativas (são randomizadas) 1. Código de operação. 2. Referência ao operando fonte. 3. Referência ao operador destino 4. Interrupção Feedback das respostas corretas: Dentro de um ciclo indireto de instrução, podemos interpretar que existem subciclos de instrução, onde essa atividade consiste em alternar as ações de busca, interrupção e execução dessas instruções. 75 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 4.1.2 CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR Cada instrução executada em um computador é representada por uma se- quência de bits, em que uma instrução é dividida em blocos de bits que cor- respondem aos elementos da instrução, conforme quadro a seguir: FORMATO DAS INSTRUÇÕES DE UM PROCESSADOR 4 BITS 6 BITS 6 BITS 6 BITS CÓDIGO OP ENDEREÇO OPERANDO 1 ENDEREÇO OPERANDO 2 ENDEREÇO OPERANDO 3 Fonte: elaborado pelo autor (2022). #pratodosverem: o quadro mostra sequência de quatro blocos retangulares na cor branca que representam o formato das instruções de um processador. O bloco código OP (código do operando), de tamanho 4 bits, tem a função de identificar a operação que será realizada pelo processador e é também o bloco de uma instrução, cujo valor binário identifica a operação a ser realiza- da, já os operandos é o campo da instrução cujo valor binário sinaliza a loca- lização do dado que será manipulado pela instrução, durante o processo de uma operação. Durante o processo de execução de uma instrução, esta é lida para um regis- trador de instrução (RI) interno ao processador, que precisa ter a capacidade de extrair todos os dados dos diversos blocos da instrução para, enfim, realizar a operação determinada (STALLINGS, 2010) Funcionalmente, as operações de um computador são: • Operações matemáticas: representados pelos cálculos lógicos e aritméticos. • Operações de movimentação de dados. • Operações de entrada e saída, como leitura e escrita em dispositivos externos. • Operações de controle, como desvios da sequência de execução ou parar a execução. 76 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Para complementar os estudos e aprender a aplicação prática, assista essa videoaula que mostra os tipos de instrução que são executadas nos processadores. Clique aqui. Para lidar com as representações binárias das instruções de máquinas exe- cutadas pelos processadores, foi criada uma representação simbólica das instruções em que os opcodes passam a ser representados por abreviações denominadas de mnemônicos, que indicam as operações, como: CÓDIGO OP FUNÇÃO ADD Somar SUB Subtrair MUL Multiplicar DIV Dividir LOAD Carregar os dados de memória STOR Armazenar os dados na memória Um dos fatores mais importantes no projeto de uma unidade central de pro- cessamento é designar o tamanho das instruções que serão executadas pelo processador, que dependerá do tamanho da memória, velocidade de acesso e organização do barramento de dados. Os operandos também podem ser representados por símbolos, por exem- plo a instrução ADD R, X, que significa, na prática, somar o valor contido na posição de dados X com o valor contido no registrador R. Com isso, é possível um programa de computador em linguagem de máquina através de símbo- lo. Cada opcode tem uma representação fixa através do sistema binário e o desenvolvedor ou programador precisa especificar o local de cada operando simbólico (MORAES, 2020). https://www.youtube.com/watch?v=nT7hR0BN_pY 77 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 4.1.3 PIPELINE DE INSTRUÇÕES Atualmente, a maioria dos sistemas computacionais são fabricados em tor- no de processadores que buscam fornecer maior velocidade na realização de suas tarefas e um dos processos mais usados no desenvolvimento dos proces- sadores é o pipeline, que consiste na qual a CPU é dividida em várias partes funcionais distintas, denominadas de estágios, em que cada estágio corres- ponde a uma determinada atividade. Basicamente, o pipeline tem a função de dividir o ciclo de uma instrução em estágios individuais e que ocorram de maneira sequencial, como os processos de leitura e decodificação da instru- ção, determinação do endereço do operando, leitura dos operandos, execu- ção e escrita do resultado do operando. As instruções são executadas dentro desses estágios como se fossem uma linha serial de montagem, em que cada um desses estágios pode executar uma instrução distinta e ao mesmo tempo, mas precisam ficar atento às ocorrências de possíveis desvios e dependência entre instruções. O conceito de paralelismo a nível de instrução também tem como objetivo obter um maior desempenho computacional, implementando tecnologias mais avançadas, através de circuitos mais robustos, melhor organização es- trutural da CPU, através, por exemplo, do uso de múltiplos registradores e memória cache e, por fim, implementado o conceito de pipeline de instru- ções. (DELGADO; RIBEIRO, 2017) Em um conceito de pipeline, várias instruções são realizadas de forma simul- tânea, embora em estágios diferentes, em que o tempo de cada instrução é o mesmo se comparado a não implementação do pipeline. Por isso, no geral, o tempo total de várias instruções é bem menor, potencialmente até três vezes mais rápido que um processo não-pipeline, de acordo com a relação abaixo: 78 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Um processador necessita executar 400 instruções no total. Cada instrução utiliza cinco ciclos da CPU para terminar uma instrução. Quantos ciclos são necessários em um processador com e sem pipeline implementado? o tempo entre execuções desse processador? • Psem pipeline = 5 x 400 = 2.000 ciclos • com pipeline = 5 + 400 = 405 ciclos • tempo entre execuções = Podemos considerar um ciclo de instruções com um pipeline implementado em seis estágios de mesma duração, com as seguintes denominações: Bus- ca de Instrução (BI), Decodificação da Instrução (DI), Cálculo do Operan- do (CO), Busca do Operando (BO), Execução da Instrução (EI) e, por fim, Escrita do Operando (EO), finalizando a instrução e levando em consideração que cada instrução passa por todos os estágios, conforme no quadro a seguir: OPERAÇÃO DO PIPELINE EM UMA INSTRUÇÃO TEMPO DE EXECUÇÃO 1 2 3 4 5 6 7 8 9 10 Instruções 1 BI DI CO BO EI EO 2 BI DI CO BO EI EO 3 BI DI CO BO EI EO 4 BI DI CO BO EI EO 5 BI DI CO BO EI EO Fonte: elaborado pelo autor (2022). #pratodosverem: o quadro mostra uma tabela que representa o tempo de execução com dezposições na horizontal, e as instruções de 1 a 5, representadas por quadrados coloridos e distintos, na vertical. 79 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Conforme o quadro anterior, se considerarmos que cada instrução dessa na CPU passa por todos os estágios do pipeline e que todos os estágios podem ser executados de forma paralela, podemos observar que não há conflitos e as instruções são todas executadas por todos os estágios. Se os estágios não possuírem tempo de duração igual, haverá espera em vários estágios dentro do processo pipeline e isso influencia no desempenho do processador. Outro ponto que influencia o desempenho de um processador são as instru- ções de desvio condicional que podem, na prática, invalidar várias buscas de instrução e deixar com que instruções intermediárias sejam finalizadas, conforme mostrado no quadro a seguir: DESVIO CONDICIONAL ATUANDO NA OPERAÇÃO DO PIPELINE EM UMA INSTRUÇÃO Instruções 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 BI DI CO BO EI EO 2 BI DI CO BO EI EO 3 BI DI CO BO EI EO 4 BI DI CO BO 5 BI DI CO 6 BI DI 7 BI 12 BI DI CO BO EI EO 12 BI DI CO BO EI EO Fonte: elaborado pelo autor (2022). #pratodosverem: o quadro mostra uma tabela que representa o tempo de execução com quatorze posições na horizontal, e as instruções de 1 a 13, representadas por quadrados coloridos e distintos, na vertical. Para complementar os estudos e reforçar a aplicação prática do conceito abordado, assista essa videoaula que mostra uma analogia da importância da técnica do pipeline nos processadores modernos. Clique aqui. https://www.youtube.com/watch?v=wuug3J0Q1aE 80 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 De acordo com o quadro anterior, a instrução 3 serve como desvio para a ins- trução 12 pois, após essa instrução, nenhuma outra é finalizada entre os tem- pos 9 e 12 de execução, o que ocasiona uma perda de desempenho do pro- cessador porque, simplesmente, o desvio não foi previsto, não foi antecipado, e os estágios foram retirados do pipeline em que, por exemplo, no tempo 8, existem apenas duas instruções sendo executadas: instruções 3 e 12. Os con- flitos de pipeline são eventos em que uma instrução seguinte não pode ser executada devido a um desvio, e esses conflitos podem ser de três tipos: • Conflito por controle: ocorre quando há necessidade de tomar uma decisão com base nos resultados de uma instrução enquanto outros estão sendo executadas. • Conflito por dados: ocorre quando o efeito de uma instrução depende do resultado de uma instrução anterior. • Conflito estrutural: em que o hardware do processador não pode suportar a combinação de instruções que o pipeline deseja executar no mesmo ciclo de operação (PAIXÃO, 2014). 4.2 INTERCONEXÕES E BARRAMENTOS Um sistema computacional que possui a CPU como dispositivo central, uti- liza os barramentos de endereço, barramentos de dados e barramentos de controle para a comunicação dessa CPU com os demais dispositivos ou periféricos do sistema. 81 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 4.2.1 TRANSFERÊNCIA DE INFORMAÇÕES Na etapa de busca dentro do ciclo de instrução ocorre o maior fluxo de dados dentro do processador. A maneira mais completa de como pode ser visto o uso dos registradores e contadores dentro do processo é mostrado na figura a seguir: FLUXO DE DADOS NA ETAPA DE BUSCA Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem mostra o fluxo de dados na etapa de busca de um processador. O barramento de endereço é representado por um bloco retangular vertical na cor verde- claro, o barramento de dados é representado por um bloco retangular na cor azul-claro e o barramento de controle é representado por um bloco retangular na cor salmão claro. A CPU é um bloco quadrado pontilhado localizado mais à esquerda da figura. De acordo com a figura anterior, o que você concluiu sobre a etapa de busca em um ciclo de instrução dentro da CPU? Nele, a instrução é lida na memó- ria, e o contador PC (Contador de Programa) possui o endereço da próxima instrução que será buscada. O endereço é então movido para o MAR (Regis- trador de endereço de memória) e enviado para o Barramento de Endere- ço. A Unidade de Controle, como sequência, solicita uma leitura na posição de MEMÓRIA e o resultado obtido é colocado no Barramento de Dados em que é feita também uma cópia para o MBR (Registrador de armazenamento temporário de dados). Após isso, o resultado é movido internamente para o IR (Registrador de instrução) e o PC é incrementado, preparando-o para o próxi- mo ciclo de busca da instrução (PATTERSON; HENNESSY. 2019) Um barramento pode permitir diversos tipos de transferência de dados, con- forme ilustrado na figura a seguir: 82 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 TIPOS DE TRANSFERÊNCIA DE DADOS DE UM BARRAMENTO Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem mostra blocos retangulares coloridos que representam no lado esquerdo da figura as operações de escrita e, mais à direita, figuras que representam as operações de leitura, com setas horizontais pontilhadas que representam os barramentos de comunicação de dados. Conforme figura anterior, os barramentos permitem transferência de dados do tipo escrita e leitura, em que podemos ter transmissões do tipo multiple- xada e não-multiplexada. Na operação de escrita, quando temos um único barramento dados/controle, primeiro, determinamos o endereço e, em segui- da, começa a transferência dos dados. Quando se tem dois barramentos dis- tintos, cada um transfere suas informações de modo independente. Similar na operação de leitura, mas com uma diferença pois, quando o barramento é multiplexado, existe um tempo de acesso, que seria uma espera para se buscar os dados e colocá-lo no barramento. No caso de operações de leitura e escrita com barramentos dedicados (não-multiplexados), o endereço é colocado no barramento de controle e ficará lá enquanto os dados forem inseridos no barramento de dados. Após o tempo de reconhecimento do endereço inserido no barramento de controle, os dados serão lidos os escritos. (STALLINGS, 2010). 83 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Também existem barramentos que permitem operações de leitura e escrita de maneira combinada, conforme figura a seguir: TRANSFERÊNCIA DE DADOS: OPERAÇÃO DE LEITURA/ESCRITA Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem mostra blocos retangulares coloridos que representam a operação de leitura/escrita onde o bloco na cor verde representa a leitura de dados, o bloco na cor azul representa a escrita de dados, o bloco retangular mais à esquerda da figura representa o endereço que irá armazenar os dados e o barramento de comunicação que é representado por uma seta pontilhada na posição horizontal. Conforme ilustrado na figura anterior, uma operação de leitura/escrita é do tipo em que, primeiro, se realiza a leitura e, em seguida, é realizada a escrita no mesmo endereço, cujo endereço só é transmitido uma única vez, no início da operação. Pode ser visto também na ilustração que após inserido o ende- reço no barramento, há um tempo de espera para que seja buscado e inseri- do os dados no barramento (MAIA. 2013) Alguns barramentos mais específicos permitem um tipo de transferência de dados em blocos, conforme a figura a seguir: TRANSFERÊNCIA DE DADOS EM BLOCO Fonte: elaborado pelo autor (2022). #pratodosverem: a imagem mostra blocos retangulares coloridos que representam a operação de transferência de dados em bloco, onde temos blocos coloridos na sequênciaverde, amarelo, azul, representando dados, o bloco retangular mais à esquerda da figura representa o endereço que irá armazenar os dados e o barramento de comunicação que é representado por uma seta pontilhada na posição horizontal. 84 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 De acordo com a figura anterior, na operação de transferência de dados do tipo em bloco, um ciclo de endereço é encaminhado seguido por vários ciclos de dados, em que cada dado possui uma informação particular que poderá ser transferido para o endereço encaminhado no início da transmissão, como poderá ser encaminhado para outros endereços subsequentes na transmis- são pelo barramento. 4.2.2 BARRAMENTOS E TEMPORIZAÇÃO Como já aprendeu sobre os tipos de barramentos e os tipos de operações que envolvem as transferências de dados, o conceito de temporização dessas operações do processador é sincronizada pelo clock, que é um sinal de alta frequência que mede o número de ciclos (ou instruções) que um processador realiza por segundo, e é controlado pela Unidade de Controle do proces- sador. Cada ciclo de uma instrução de um processador pode ser dividido em até cinco ciclos de máquina em que, por sua vez, cada ciclo de máquina pode ser divido em até cinco estados. Podemos considerar que cada estado dura um ciclo de clock, e que durante um estado, a CPU realiza várias operações simultâneas, de acordo com que é determinado pelos sinais de controle (PAT- TERSON; HENNESSY, 2017). O número de ciclos de um processador pode variar de instrução para instru- ção, mas não podemos esquecer que os números de ciclos de máquina são definidos de acordo com a capacidade do barramento. Assim, o número de ciclos de máquina depende do número de acessos que o processador precisa se comunicar com os dispositivos de entrada e saída (E/S) (MAIA, 2013) A Unidade de Controle também tem a função de enviar uma sequência de pulsos para medir a duração das micro-operações do processador, e essa se- quência de pulso para temporização é executada pelo clock, em que o pulso do clock deve ser suficiente para permitir o envio dos sinais pelos barramen- tos de dados e pelos circuitos de controle do processador. Para reforçar os estudos, leia o capítulo 3 – Tipos de Hardware, da dica de leitura acessada pelo link a seguir. Nela você irá conhecer os tipos de barramentos de um computador e suas funções e interligações. Clique aqui. https://integrada.minhabiblioteca.com.br/reader/books/9788536531595/pageid/25 85 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 4.3.2 LINGUAGENS DE MÁQUINA E PROGRAMAÇÃO BAIXO NÍVEL (ASSEMBLY) Os termos linguagem de máquina e linguagem de montagem são errone- amente associados como sinônimos, mas elas não são. A linguagem de má- quina é aquela em que as instruções são executadas diretamente no proces- sador, em que cada instrução é um grupo binário que representa um opcode, faz referências a operandos e também pode relacionar outros bits à operação, como as flags. Já uma linguagem de montagem utiliza as simbologias para atribuição de nomes, posições de memórias e posições específicas de algu- mas instruções. As declarações do código-fonte de um programa escrito em assembly (linguagem de montagem) podem ser do tipo: • Comentários: são explicações sobre linhas do código-fonte do programa que não são executadas pela compilação. • Instruções: as instruções em assembly são linhas de comandos simplificadas que indicam as ações que devem ser executadas pelo processador, que geralmente correspondem aos códigos binários das instruções de linguagem de máquina. • Diretivas do assembler (ou pseudo-operações): são comandos especiais que tem o objetivo de facilitar a escrita de um programa usando representações simbólicas, que não podem ser inseridas ao código-fonte e que servem como orientação para o programador (DELGADO; RIBEIRO, 2017). As diretivas do assembler e as instruções em assembly podem incluir opera- dores que tem a função de dar informações adicionais sobre os operandos. Conforme o exemplo a seguir, é a declaração da estrutura de uma instru- ção padrão assembly: 86 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 [LABEL: ] MNEUMÔNICO [OPERANDO] [; COMENTÁRIO] ... onde label é o a identificação dada ao endereço onde a instrução está loca- lizada, mneumônico é a representação da instrução propriamente dita, ope- rando são os dados que serão manipulados pela instrução e comentário é um texto escrito pelo programador que tem o intuito de explicar ao leitor do programa o objetivo daquela instrução inserida naquela determinada linha do código-fonte. Dentro da sintaxe de uma instrução em assembly, o campo mneumônico sempre é um campo obrigatório, os campos label e comentá- rios são opcionais e o campo operando terá sempre dependência da instru- ção inserida na linha (DELGADO; RIBEIRO, 2017). Em uma instrução em assembly, os valores numéricos estão, por padrão, representados em base decimal, mas a base pode ser mudada e especificada dentro do código-fonte. (STALLINGS, 2010) As diretivas e as instruções em um programa em assembly tanto podem ser escritas em letra minúscula quanto em letra maiúscula pois assembly é uma linguagem não case-sensitive, mas, as boas práticas orientam que as pala- vras reservadas, tipo instruções e diretivas, sejam escritas em letra maiúscula e, os demais (comentários e variáveis) sejam escritas, de preferência, em letras minúsculas. A sintaxe dos comentários em assembly podem ser construídos de três maneiras: • Primeira: com uma linha deixada em branco. • Segunda: com uma linha iniciada com um ponto e vírgula (;) seguido de um texto. 87 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES • Terceira: após a instrução escrita na linha, adiciona-se um ponto e vírgula (;) para indicar que a partir desse ponto, inicia-se um comentário. Como visto, os elementos da linguagem de montagem podem ser quatro elementos: o label que seria tipo um rótulo determinado pelo programador do código-fonte que equivale ao endereço byte do código gerado para que a instrução da linha seja carregada para um registrador. Esses rótulos são mais utilizados em instruções que causam desvio de código, como no exemplo a seguir de um trecho escrito em assembly: L1: SUB r1, r2 ; subtrai valor r2 – r1 e armazena o resultado em r1 JG L1 ; se o resultado de r1 for positivo, retorna (ou “salta”) novamente para L1 No trecho do código acima, L1 é a label (rótulo) da instrução, r1 e r2 são regista- dores na função de operandos que irão armazenados os dados manipulados, SUB é o mneumônico da operação de subtração e JG é o mneumônico para Jump if Greater, que significa “retorne se valor for maior”. O mneumônico é a função ou a operação da sentença da linguagem de mon- tagem, em que essa sentença pode representar uma instrução de máquina, uma diretiva do próprio programador do código ou até representar uma ma- cro (PATTERSON; HENNESSY, 2019) Os códigos-fonte contêm algumas diretivas do tipo #define, #include, que são executadas em linguagem alto nível pelo pré-processador .cpp como por exemplo em linguagem C++. Esse pré- processador .ccp tem a função de expandir as macros, realizar a inclusão de alguns arquivos com cabeçalhos e remover, se necessário, os comentários. (STALLINGS, 2010). 88 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 O operando tem a função de identificar um valor, um registrador ou uma posição de memória, cuja linguagem de montagem geralmente fornece atri- butos para que possamos distinguir entre esses trêstipos de referência, como também fornece e indicam os modos de endereçamento que serão usados. Os tipos de sentenças utilizadas em linguagem de montagem são: ins- trução, diretiva, definição de macro e comentário. As instruções são as representações simbólicas das instruções de linguagem de máquina, as diretivas, conhecidas também por pseudoinstruções, são as li- nhas de código da linguagem de montagem que não são traduzidas (ou com- piladas) para a linguagem de máquina, que podemos citar como exemplos: Exemplos de diretivas: • constantes; • áreas de memória com a função de armazenar os dados que serão manipulados; • inicialização de determinadas áreas da memória; • tabelas; • dados fixos na memória; e • referências para outros programas. Definição de macro é similar a uma sub-rotina que pode ser escrita e usada várias vezes através de chamadas de sub-rotina de qualquer ponto do progra- ma. Após compilado, a sub-rotina é carregada apenas uma vez dentro do código-fonte e é tratada pelo processador durante o tempo de execução. Já os comentários são utilizados pelo programador do código-fonte para sinali- zar os objetivos de cada linha de instrução e são ignorados pelo compilador. Para finalizar os estudos dessa unidade e reforçar os conhecimentos práticos em linguagem de máquina, assista a videoaula que aborda de maneira singular a diferença entre linguagem de programação de baixo e alto nível, fundamental para nossos entendimentos nessa unidade. Clique aqui. https://www.youtube.com/watch?v=QVpB-wMgR0Y 89 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES CONCLUSÃO Nesta unidade, aprendemos sobre os subciclos de busca de um processa- dor, aprendeu sobre as etapas que compreendem o ciclo de instrução de um processador, a importância da implementação do pipeline no desempenho do hardware de uma CPU, os tipos de operações realizadas pelos barramen- tos de dados e de controle, o conceito de clock e temporização em sistemas computacionais e, por fim, viu aplicações básicas e práticas dos conceitos de linguagem de máquina e a programação assembly. UNIDADE 5 OBJETIVO Ao final desta unidade, esperamos que possa: 90 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Entender o funcionamento das memórias, tipos de memórias, acessos e operações que podem ser realizadas. > Aprender sobre os diversos tipos de memória dentro de um computador e suas funções. 91 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 5. HIERARQUIA DE MEMÓRIA INTRODUÇÃO Na unidade Hierarquia de memória você irá aprender sobre os conceitos de memória e suas aplicações, suas funções, implementações, tecnologias aplica- das e suas diferenças. Serão apresentados os conceitos sobre troca de dados entre memórias, quais os tipos de memórias mais rápidas, que possuem maior armazenamento e quais os parâmetros são levados em consideração quando se deseja projetar a memória mais apropriada para um determinado sistema computacional. Preparado para aprender? Vamos lá! 5.1 ORGANIZAÇÃO DA MEMÓRIA Nesta unidade, aprenderemos sobre os conceitos introdutórios da hierarquia de memória, os tipos de memórias existentes e suas funções em um sistema computacional, também aprenderemos sobre os tipos de acesso à memória e suas classificações. Também serão abordados os conceitos de memória principal, secundária, vir- tual e cache, e como elas se comunicam e se completam para a construção de um sistema computacional robusto, complexo e eficiente. 5.1.1 HIERARQUIA DE MEMÓRIA A hierarquia de memória de um computador tem como características cinco aspectos que devem ser levados em consideração: o tempo de acesso aos dados, o tamanho da memória, a largura de banda da memória (ou ban- dwidth), custo por byte e unidade de transferência, medida em byte. Já com relação aos níveis de hierarquia, as memórias em computadores são divididas em quatro níveis ou tipos: memória secundária, memória prin- cipal, memória cache e registradores, conforme a Figura a seguir: 92 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 HIERARQUIA DE MEMÓRIA Fonte: Elaborado pelo autor (2022). #pratodosverem: a imagem representa uma estrutura hierárquica com retângulos sobrepostos em tamanhos diferentes, representando a característica de cada memória. Conforme Figura anterior, a memória secundária tem a característica de armazenar uma grande quantidade de informação mas tem um tempo de acesso menor se compara a memória principal. Isso significa que a memória secundária é bem mais lenta se comparada a memória principal. Quando há a necessidade, as informações que são armazenadas na memória secundária são transferidas para a memória principal pelo computador através da su- pervisão do sistema operacional. Hard Disk (HD) é um exemplo de memória secundária. A memória principal tem a função de armazenar os dados e as instruções que serão usadas pelo processador e são na prática representadas por me- mórias do tipo DRAM (Dynamic Random Acess Memory) e por chips. A me- mória principal é supervisionada e controlada por uma MMU (Memory Mana- gement Unit), unidade de gerência de memória, em conjunto com o próprio sistema operacional do sistema computacional (DELGADO, 2017). Já a memória cache é constituída por uma pequena quantidade de memó- ria do tipo SRAM (Static Random Acess Memory) que possui, como principal característica, a alta velocidade de acesso. 93 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Existem dois tipos de memória cache: a cache interna (ou L1 ou primária) com capacidade de armazenamento pequena, cerca de 32 kbytes, e a cache externa (ou L2 ou secundária), com capacidade média de armazenamento entre 256 e 512 kbytes. A referência para determinar se uma memória cache é interna ou externa é sua localização em relação ao processador, e as memórias caches também armazenam dados que possuem uma grande probabilidade de reutilização, evitando acessos à memória principal e, por consequência, diminuindo o tempo de acesso aos dados. Considerando então a hierarquia e os diversos tipos de memórias existentes, que sofrem variação em função da tecnologia aplicada no seu desenvolvi- mento, capacidade de armazenamento, velocidade e custo, podemos afirmar que é difícil projetar um sistema computacional com apenas um só tipo de memória, dentro das suas funções e objetivos específicos. O sistema compu- tacional possui várias memórias que se encontram interconectadas e interli- gadas de forma estruturada, construindo o que chamamos de um subsiste- ma de memória (MAIA, 2013). Para reforçar os conhecimentos sobre a hierarquia de memória, assista essa videoaula rápida e explicativa com uma abordagem diferente sobre o assunto. Clique aqui. 5.1.2 ACESSO A MEMÓRIA Tomando como referência a arquitetura de Von Neumann, a unidade central de processamento recebe os dados provenientes dos dispositivos de entrada, realiza o processamento de acordo com as especificações de um programa e retorna o resultado através de um dispositivo de saída, onde as instruções do programa processados ficam armazenadas na memória. A memória é dividi- https://www.youtube.com/watch?v=3L5wP4VFxGQ 94 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 da em vários setores, locações, cada qual possuindo um determinado ende- reço associado. Cada locação é denominada de byte que é formada por 8 bits (unidade básica de um sistema binário) (MORAES, 2020). Endereço de memória é o um endereço, representado por um número, queidentifica a posição de uma palavra na memória, onde cada dado armaze- nado em um sistema de memória, possui um único endereço, representado por números binários ou hexadecimais. Cada locação de memória possui um endereço associado, onde serão encontrados os dados a serem acessados, conforme Figura a seguir: ACESSO E ENDEREÇAMENTO DE MEMÓRIA Fonte: Elaborada pelo autor (2022). #pratodosverem: a imagem representa blocos retangulares sobrepostos na cor verde, representando uma memória, um bloco cinza mais à esquerda, representando o processador, com blocos retangulares menores, internos ao processador, representando os registradores e a Unidade de Controle Conforme ilustrado na Figura anterior, para fazer a comunicação e o acesso do processador a memória, o processador possui dois registradores específi- cos: o MAR (Memory Address Register), que está interligado ao barramento de endereços, e o MBR (Memory Buffer Register), que está interligado ao barramento de dados. O MAR tem a função de selecionar a posição de me- mória que será acessada e o registrador MBR tem a função de receber o dado 95 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES recolhido da memória, se for realizado o acesso do tipo leitura; se o acesso for do tipo de escrita, esse registrador deverá conter o dado que será armazena- do no endereço que será informado pelo registrador MAR. A UC, Unidade de Controle do processador, está ligada ao barramento de controle do sistema, é que tem a função de controlar essa operação de acesso, determinando se o acesso será de leitura ou escrita, através da decodificação das instruções. Para reforçar os conhecimentos sobre acesso e endereçamento de memória, assista a videoaula que faz uma abordagem completa sobre o ciclo de instrução, a execução, o acesso à memória e a escrita em registradores. Clique aqui. 5.1.3 TIPOS DE OPERAÇÕES NA MEMÓRIA A memória é um dispositivo de armazenamento que tem a função de guar- dar as informações que serão utilizadas durante as operações e recuperar os elementos de informação quando necessário. Outras operações realizadas pelas memórias, além de armazenamento e recuperação de dados, são a es- crita ou gravação (W, do termo em inglês write) e leitura ou recuperação (R, do termo em inglês read). A operação de leitura ocorre quando, ao ler os dados de um endereço, o processador faz uma cópia desse conteúdo. Com isso, essa operação de leitura (R) é chamada de não destrutiva. Na operação de escrita, o processador acessa uma determinada posição de memória e, ao escrever um dado, o conteúdo anterior é perdido. Com isso, a operação de escrita é considerada como uma operação destrutiva. Sempre se faz neces- sário indicar o endereço de memória sobre qual se deseja fazer a operação. A primeira delas, na operação de leitura, localiza-se primeiramente o setor cor- respondente ao endereço que se deseja fazer a operação e consulta o valor já armazenado nesse setor. Após a leitura, o setor continua com o valor original armazenado. Já na operação de escrita, o processador agora já trabalha com um endereço de memória e um valor e, de forma semelhante a operação de leitura, a escrita irá localizar o setor do endereço desejado e, agora de manei- ra diferente à leitura, substitui o conteúdo pelo novo valor desejado. Durante esse processo, o conteúdo anterior que foi substituído pelo novo valor, será perdido de maneira irreversível, isso significa que não poderá ser recuperado. https://www.youtube.com/watch?v=IQKjLvGWjeo 96 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 5.2 CLASSIFICAÇÃO DE MEMÓRIA Podemos classificar as memórias de um sistema computacional de dois tipos: • Memória volátil: é a memória que necessita estar energizada para reter e manter as informações armazenadas. Quando houver o desligamento de energia do sistema e, consequentemente das memórias, todo seu conteúdo será perdido. Temos como exemplos de memórias voláteis os registradores e as memórias principais • Memória não-volátil: é o tipo de memória que não precisa estar energizada para reter as informações armazenadas e temos como exemplos as memórias secundárias de um sistema computacional. 5.2.1 MEMÓRIA PRINCIPAL E AUXILIAR A memória de um computador não pode ser vista como peça individual, iso- lada, pois existem vários tipos de memória, como a memória em que é execu- tado o processamento de dados é de um tipo diferente da memória de arma- zenamento, que tem a função de armazenar os dados de um computador. A velocidade de processamento requer que existem vários tipos de memórias, cada qual com sua função particular. Estas memórias são classificadas em memória principal e memória secundária (ou auxiliar). Além desses tipos, ainda temos a memória cache e os registradores de um processador. As memórias principais são memórias construídas a partir de semicondu- tores, que são dispositivos fabricados com circuitos eletrônicos que possuem condutividade intermediária entre condutores e isolantes. Geralmente os se- micondutores são compostos por materiais como o silício e o germânio. 97 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Para reforçar os conhecimentos sobre matérias semicondutores e suas aplicações em sistemas computacionais, assista essa videoaula e saiba como funciona o conceito aplicado na construção de alguns componentes eletrônicos, como as memórias semicondutoras. Clique aqui. Rápidas e relativamente caras, as memórias semicondutoras possuem diver- sas tecnologias específicas, cada uma com suas vantagens e desvantagens, velocidade de acesso, custo, entre outros e, como já citado, possuem como representantes os registradores, as memórias principais e a memória cache. As memórias principais possuem as memórias RAM (Random Acess Memory) como sua principal representante, onde as mesmas podem ser classificadas em dois grupos: • Memória de leitura e escrita: R/W_Read and Write. • Memória ROM: Read Only Memory. As memórias R/W são memórias de leitura e escrita, possuem acesso ran- dômico, aleatório, e são voláteis. Podem ser do tipo estática (SRAM) ou di- nâmica (DRAM). As memórias do tipo SRAM são constituídas de circuitos formados a partir de flip-flops RS e mantém a informação enquanto estiver energizada, conforme modelo similar a estrutura ilustrada na Figura a seguir: https://www.youtube.com/watch?v=sksilUt1uUg 98 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ESTRUTURA INTERNA DE UMA MEMÓRIA SRAM Fonte: Elaborada pelo autor (2022). #pratodosverem: Esquematização de figuras geométricas representando a composição interna de uma memória SRAM, onde quatro figuras geométricas estão interligadas via setas com entradas designadas pelas letras R e S, e saídas designadas pelas letras Q e Q Q. As memórias do tipo SRAM possuem a características de serem muito rápi- das e são aplicadas, geralmente, como memórias cache. As memórias DRAM são formadas por capacitores e transistores, um par de- les para representar um bit, não utilizam flip-flops, necessitam de um botão de refresh, alta capacidade de armazenamento, são mais lentas e, tipicamen- te, usadas como status de memória principal. Como evolução das memórias DRAM, temos as FPM DRAM (Fast Page Mode), que são assíncronas e mais antigas, seguidas pelas EDO DRAM (Extended Data Output), também assín- cronas e, as mais recentes, SDRAM (Synchronous Dynamic Random-Access Memory), memórias dinâmicas e síncronas de acesso aleatório. Existem também as memórias DDR ou SDRAM II (Double Data Rate SDRAM) que são memórias SDRAM mais avançadas em performance e que trabalham com o dobro de desempenho, como as DDR 1, DDR2, DDR3 etc. As memórias ROM (ReadOnly Memory) são memórias apenas de leitura pois, uma vez com informações gravadas, escritas, não podem mais ser alteradas ou modificadas. São memórias também de acesso aleatório, mas são não- -voláteis. São memórias mais lentas se comparadas as memórias R/W, mais baratas e podem ser programadas no processo de fabricação, através do mé- todo MROM (Mask Programmed ROM), que é o firmware gravado durante a fabricação do chip de memória ROM, com auxílio de um filme fotográfico, máscara. Essas máscaras têm como característica serem bastante cara e não permitem regravação. 99 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Para reforçar os conhecimentos sobre memórias ROM e suas aplicações em sistemas computacionais, assista essa videoaula e saiba como funciona o processo de gravação das memórias somente de leitura do ponto de vista do usuário. Clique aqui. Utilizada geralmente para gravar programas que não se deseja permitir a al- teração por parte dos usuários do sistema, essas memórias têm aplicações no sistema BIOS (Basic Input Output System) de um computador e em mi- cro programas de memórias de controle, como exemplos temos as PROM, EPROM, EEPROM e Flash. A memórias PROM (Programmable Read Only Memory) são memórias ape- nas de leitura, programáveis, geralmente são adquiridas limpas, sem nenhu- ma informação gravada, sendo utilizada nos processos de testes de programas no lugar da ROM, ou quando se quiser produzir memórias ROM em pequena escala. Essa memória, uma vez gravada, não pode mais ser alterada. Já as me- mórias EPROM (Erasable Programmable Read Only Memory) são memórias apenas de leitura, programáveis e apagáveis, através de máquinas próprias e adequadas para o processo, com base de raios ultravioleta. Tem utilização semelhante à da PROM para teste de programas, mas se aplica quando se deseja produzir ROM em quantidades pequenas e que sejam reutilizáveis. Para reforçar os conhecimentos sobre memórias EROM e como funciona um leitor de memória EPORM, assista essa videoaula sobre o assunto. Clique aqui. A memória EEPROM (ou E2PROM), Electrically Alterable ROM, são memó- rias apenas de leitura, programáveis e eletronicamente alteráveis, isso signifi- ca que as EEPROM podem ser apagadas através de um processo eletrônico, sob controle do processador. São mais caras, menores e mais rápidas que as EPROM, geralmente com aplicabilidade em dispositivos que necessitam de atualização de firmware devido a reconfiguração de hardware ou atualiza- ções para novas versões. https://www.youtube.com/watch?v=K-trdnFIlHg https://www.youtube.com/watch?v=ZvxQ4tO0xw0&t=71s 100 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Similar as memórias EEPROM, temos a memória Flash, termo usado devi- do a elevada velocidade para apagar os dados contidos nessas memórias, se comparado com as memórias EPROM e EEPROM. Os dados são apagados e regravados por blocos e o conteúdo total ou parcial dessas memórias po- dem ser apagados através de um processo de escrita. Tem aplicações ideais para dispositivos portáteis como smartphones, câmeras digitais, tabletes, pal- mtops etc. As memórias auxiliares (ou secundárias) são as memórias mais baratas dentro do processo de hierarquia de memórias, com maior espaço de arma- zenamento nos computadores e sistemas computacionais, são consideradas as mais lentas unidades de armazenamento e possuem, como exemplos, os DVDs, HDs, pen drives etc. Com relação ao tempo de acesso e ciclo de memória, as memórias auxiliares são, no geral, dispositivos eletromecânicos que possuem tempo de acesso maiores, em torno de 120 a 300 ms (milissegundos), se comparado com os tempos de acesso típicos, que são em torno de 8 a 15 ms. Com relação a capacidade de armazenamento, variam bastante pois depen- de do tipo de dispositivo utilizado. Podemos ter hoje em dia Hard Disk com capacidades superioras a 1 TB (TeraByte) e pen drives ou dispositivos removí- veis similares com capacidade similar. As memórias secundárias são não-voláteis, possuem tecnologia de constru- ção e desempenho variável devido aos tipos existente e aplicações, possuem armazenamento do tipo permanente e o custo também é muito variado. 5.2.2 MEMÓRIA CACHE E VIRTUAL Partindo do pressuposto que o processador precisa buscar os dados e instru- ções em uma memória externa, denominada de memória principal, também surgiu a necessidade de diminuir o atraso gerado por essa transferência de dados entre a memória e o processador. Para solucionar esse problema, foi desenvolvida uma unidade de armazenamento entre a memória principal e o processador, denominado de memória cache, conforme ilustrado na Figura a seguir: 101 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES MEMÓRIA CACHE EM UM SISTEMA COMPUTACIONAL Fonte: Elaborado pelo autor (2022). #pratodosverem: Esquematização de blocos retangulares representando o processador, como bloco central, maior, com blocos menores no seu interior, representando a CPU e as memórias cache internas, interligados através de setas à memória cache externa L2 e a memória principal. Conforme ilustrado na Figura anterior, a memória cache L1 é interna ao pro- cessador e a memória cache L2 é externa ao processador, onde as mesmas têm a função de acelerar a transferência de dados entre o processador e a memória principal. Similar aos registradores, as memórias caches são volá- teis, projetadas em forma de chip, são caras e de menor capacidade, mas se associadas à memória principal, resulta em um sistema computacional ra- zoavelmente barato, rápido e com grande capacidade de armazenamento (STALLINGS, 2010). A memória virtual armazena o programa em disco e apenas pedaços do pro- grama são trazidos para a memória principal quando necessários. Esse pro- cesso é denominado de paginação ou segmentação. Com o aparecimento de programas cada vez maior em tamanho e a percepção de que não é ne- cessário carregar todo o programa na memória principal, é onde surge o con- ceito de memória virtual. A memória é organizada em blocos ou quadros de tamanho fixo, onde a tabela de blocos livres registra quais blocos estão livres. Cada processo é dividido em páginas de tamanho igual, assim uma página de um processo pode ser carregada em um bloco de memória. A Tabela de Páginas registra em que bloco de memória cada página está carregada, e essa tabela é mantida pelo Sistema Operacional. 102 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 O mecanismo de paginação que viabiliza a implementação de memória virtual, no qual o programa reside no disco, e apenas páginas necessárias são trazidas à memória sob demanda, é a chamado de Paginação sob Demanda. Se a execução precisa de uma página que não está na memória, o Sistema Operacional será acionado através de uma interrupção de falha de página a fim de trazes a página para a memória. Para isso ocorrer, um outro bloco livre é usado para receber a página. Se não há blocos livres, o Sistema Operacional seleciona e desocupa uma página ne memória, dando o bloco liberado para a nova página. Vale ressaltar que cada processo tem uma Tabela de Páginas onde há uma entrada para cada página do processo. Com a memória virtual, um processo pode consistir de um grande número de páginas, impossibili- tando alocar a Tabela de Páginas dentro da memória física. (PAIXÃO, 2014) 5.2.3 REGISTRADORES E, você, já sabe o que são registradores? São memórias de pequeno porte e de armazenamento reduzido, as mais rápidas em um sistema computacional, e podem ser divididas em dois grupos: registradores de uso geral e registra- dores específicos. Em um sistema computacional, o destino final dos dados de qualquer memória é o processador.As memórias possuem como objetivo maior armazenar os dados que serão utilizados pelo processador, pois ele é responsável por executar as instruções e pela manipulação dos dados que irão gerar resultados por meio das ope- rações lógicas realizadas. Como mencionado, os registradores de uso geral são utilizados para armazenar dados que estão em execução pelo programa (temporários), como os valores que serão usados nas operações realizadas e o resultado das mesmas. O acumulador (Acc) é o registrador mais importante de uma CPU, pois é usado tanto como origem e destino de dados, e também por ser um operador muito eficiente nas instruções devido à alta velocidade e performance no processo de troca de dados (PATTERSON; HENNESSY, 2017). 103 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Uma unidade de controle gerencia os recursos disponíveis e o fluxo de dados entre todos os dispositivos de um sistema computacional. Os sinais de controle gerados pela unidade de controle causam o funcionamento das portas lógicas através de trocas de sinais elétricos, resultando no envio de dados entre registradores ou durante uma operação que envolva a unidade lógica aritmética (ULA) De acordo com o texto acima sobre a unidade de controle de uma CPU, qual das opções abaixo corresponde a uma função de uma unidade de controle? Texto das alternativas (são randomizadas) 1. Buscar as instruções na memória principal do computador. 2. Executar as operações lógicas e aritméticas. 3. Ativar bits considerados especiais, denominados de flags. 4. Armazenar os dados temporários e permanentes do sistema. Feedback das respostas corretas: Entre as diversas funções de uma unidade de controle temos a que ela deve buscar as instruções na memória principal do computador, decodificar essas instruções, sequenciar e organizar as instruções e, por fim, enviar sinais de controle para controlar as execuções das instruções. 104 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 O registrador acumulador leva vantagem em comparação às memórias de- vido a versatilidade e rapidez na movimentação dos bits e, de maneira geral, um registrador acumulador tem a capacidade de se deslocar facilmente tan- to para a direita quanto à esquerda do registrador, além de possuir entrada e saída paralela. Outros registradores importantes em processadores são: • Contador de instrução (CI) /Contador de programa (PC – Program Counter): esses registradores são utilizados quando o processador (CPU) precisa armazenar os endereços de memória que serão lidos pela instrução em execução. Toda vez esse contador será incrementado para apontar para a próxima posição de memória que será utilizada pela instrução. • Registrador de Instrução (RI): Os códigos de instrução serão armazenados nesse registrador e a CPU sempre irá interpretar o conteúdo armazenado no registrador de instrução como sendo um código de operação para, após isso, iniciar a decodificação dos dados. • Registradores de Endereço (REM): Esse registrador tem a função de armazenar o endereço onde ficará o conteúdo dos dados que serão acessados pelo processador e esse endereço, por consequência, fica armazenado em um registrador conhecido como Contador de Dados (CD). O tamanho do CD irá depender de alguns fatores como o tamanho máximo de memória que o processador pode endereçar. • O Flags: É o registrador especial que guarda as informações referente a última execução realizada e sinais de controle para que o processador possa fazer controle de fluxos. 105 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Para entendermos melhor o cenário de como funciona o uso dos registrado- res dentro do processo de execução de tarefas de um processador, o ciclo de instrução é composto por quatro etapas: busca, decodificação, execução e resultado. Na etapa da busca, o processador irá buscar a instrução na memó- ria e atualizar o status do registrador PC ou CI. Na etapa de decodificação da instrução ocorre a interpretação da operação a ser realizada e também a bus- ca pelos operandos. A etapa da execução é quando a operação se desenvolve até chegar na etapa final, que é o resultado. Os registradores são memórias de pequeno porte e de armazenamento reduzido, são as mais rápidas em um sistema computacional e podem ser divididas em dois grupos: os registradores de uso geral e os específicos. Em um sistema computacional, o destino final dos dados de qualquer memória é o processador. As memórias possuem como objetivo maior armazenar os dados que serão utilizados pelo processador, pois ele é responsável por executar as instruções e pela manipulação dos dados que irão gerar resultados através das operações lógicas realizadas. Agora é com você! Correlacione as colunas arrastando para o lado fazendo correlação entre os registradores e suas funções em um sistema computacional. 106 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 QUADRO 1 – TEXTO DO RECURSO (ATIVIDADE) TEXTO - COLUNA COM BOTÃO DE ARRASTAR TEXTO - COLUNA COM A RESPOSTA PC- Program Counter Esses registradores são utilizados quando o processador (CPU) precisa armazenar os endereços de memória que serão lidos pela instrução em execução. RI - Registrador de Instrução Armazena os códigos de instrução que serão interpretados pela CPU. REM - Registradores de Endereço Esse registrador tem a função de armazenar o endereço onde ficará o conteúdo dos dados que serão acessados pelo processador. Flags Registrador especial que guarda as informações referente a última execução realizada e sinais de controle para que o processador possa fazer controle de fluxos. Fonte: Elaborado pelo autor (2022). Como foi o jogo? Vamos continuar aprendendo? De forma resumida, pode- mos afirmar que o registrador acumulador (Acc) armazena de forma tem- porária um conjunto de bits que serão utilizados pelo processador (CPU). O contador de dados (CD) tem a função de armazenar endereços que serão uti- lizados nas operações que envolvem as memórias, o registrador e instruções (RI) armazena os códigos de instrução. Já o registrador PC, por sua vez, arma- zena endereços de palavras de memória que serão lidos durante o processo. Também existem os registradores ponteiros e de índice, que são usados para armazenar valores de deslocamento no acesso às instruções ou a certas posi- ções específicas da memória pilha (SP ou BP), ou, ainda, na manipulação de dados do tipo tabelas ou matrizes nos segmentos de dados SI e DI. (PATTER- SON, HENNESSY. 2019) Registradores de flags são compostos por 16 bits, sendo que apenas nove são utilizados como flags, conforme Figura a seguir: REGISTRADOR DE FLAGS Fonte: Elaborado pelo autor (2022). #pratodosverem: a imagem representa a estrutura interna de um registrador de 16 posições onde as posições são representadas por uma série de quadrados adjacentes. 107 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Você conseguiu perceber como o flag pode contribuir? Conforme vimos na Figura anterior, um registrador flag auxilia nas decisões após a execução de instruções lógicas e aritméticas de acordo com o status das flags que com- põem o registrador, como a flag ZF (zero flag), que indica quando o resultado de uma operação lógica é zero. A flag SF (sign flag) indica quando o resultado de uma operação é negativo. A flag OF (overflow flag) sinaliza que o resultado de uma operação matemáti- ca, por exemplo, exceda o limite de representação, enquanto a flag CF (carry flag) revela que o resultado de uma operação não cabe na posição de memó- ria destino.A flag AF (auxiliar carry flag) indica que ajustes são necessários na operação e a flag PF (parity flag) aponta se o resultado de uma operação qualquer possui um número par de bits “1”. 108 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 CONCLUSÃO Nesta unidade, você aprendeu sobre os tipos de memórias em um sistema computacional e suas aplicações, aprendeu sobre as tecnologias e diferen- ças entre os diversos tipos de memórias, conceitos de paginação e memória virtual, aprendeu como os registradores são aplicados dentro de um sistema computacional e qual o motivo para o surgimento das memórias cache. Aprendeu também como a hierarquia de memórias serve para nos apresen- tar as diferenças entre as memórias, quais os tipos de memórias quando se leva em consideração a velocidade de acesso e armazenamento e, por fim, aprendeu a diferença entre memórias voláteis e não voláteis. Bons estudos! UNIDADE 6 OBJETIVO Ao final desta unidade, esperamos que possa: 109 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES > Aprender sobre arquiteturas de processadores superescalares e sobre o uso do superpipeline. > Aprender as diferenças entre microcontroladores e microprocessadores e suas aplicações. 110 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 6. PARALELISMO, MICROCONTROLADORES E ARQUITETURAS PARALELAS INTRODUÇÃO DA UNIDADE Na unidade Paralelismo, Microcontroladores, Processadores e arquitetu- ras paralelas, você irá aprender sobre o conceito de arquiteturas superesca- lares e arquiteturas superpipeline, a diferença e as aplicações entre as suas estruturas e qual a importância dessas arquiteturas para o desenvolvimento de máquinas baseadas nas tecnologias RISC e CISC. Também irá aprender sobre o conceito de paralelismo, a diferença entre arqui- teturas com multiprocessadores e arquiteturas Multicomputadores, a impor- tância da Taxonomia de Flynn para essas arquiteturas e, por fim, a diferença entre microcontroladores e microprocessadores. Preparado para aprender? Vamos lá! 6.1 PROCESSADORES SUPERESCALARES E SUPERPIPELINE Nesta unidade, aprenderemos sobre processadores superescalares e arquite- tura superpipeline, as diferenças entre as tecnologias RISC e CISC usadas para desenvolvimento de processadores, o conceito de paralelismo e suas aplica- ções junto com as arquiteturas e tecnologias existentes e, por fim, as diferen- ças existentes entre Multicomputadores e multiprocessadores. 6.1.1 ARQUITETURA RISC E CISC Arquitetura superescalar é uma arquitetura de microprocessador que pos- sui mais de uma unidade em execução. Essas unidades em execução, tam- bém denominadas de pipelines, são os lugares onde o processamento dos dados e das instruções são organizadas e repassadas para o resto do sistema (DELGADO. 2017). 111 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Os princípios da arquitetura superescalar envolvem o fato de possuir várias unidades de execução e várias instruções que são executadas de forma simul- tânea dentro de um mesmo ciclo de instrução (clock de relógio) e dentro do mesmo estágio do pipeline. Alguns problemas que podem ocorrer com a execução simultânea de instru- ções são os possíveis conflitos de acesso aos recursos comuns, como registra- dores e memória, a dependência de dados e a dependência de controles de dados e instruções (MAIA. 2013). Os pipelines podem operar com velocidades variáveis, e a execução das ins- truções pode não seguir a sequência estabelecida no programa. O micropro- cessador superescalar deve ter a capacidade de implementar o conceito de look-ahead: se há algum conflito ou dependência que impeça a execução da instrução atual, o processador precisará ter a capacidade de examinar instru- ções além do ponto atual do programa, deverá saber procurar instruções que sejam independentes e, além disso, deve saber executar essas instruções de forma paralela. Vejamos exemplo da figura a seguir: PROCESSADOR COM DOIS PIPELINES Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa em forma de bloco coloridos a estrutura de um processador com dois pipelines, onde cada bloco representa uma etapa no processo. Conforme ilustrado na Figura anterior, uma estrutura superescalar é organi- zada internamente por múltiplos pipelines e com um banco de registradores com várias portas de leitura (R) e escrita (W), onde várias instruções são ini- 112 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES ciadas e terminadas a cada ciclo (MORAES, 2020). O escalonamento dessas instruções pode ser feito, na prática, tanto via software quanto via hardware, e as instruções são enviadas para execução somente quando não violam regras de dependência de dados de controle e quando não existem conflitos estru- turais. Características peculiares de arquiteturas superescalares é a capacida- de que se tem de realizar busca e decodificação de múltiplas instruções por ciclo e a existência de uma janela de instruções que isola os estágios de bus- ca e decodificação dos estágios de execução propriamente dita. A janela de instruções armazena o resultado da decodificação das instruções e isola o estágio de busca e decodificação de instruções dos estágios de execução propriamente dito das instruções (PAIXÃO, 2014). A janela de instruções pode ser implementada de forma centralizada, deno- minado de Central Window, ou de forma distribuída, denominada de Reser- vation Station. Um modelo de arquitetura é ilustrado na figura a seguir: PROCESSADOR COM DOIS PIPELINES Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa em forma de blocos a estrutura de uma arquitetura superescalar com janela de instruções, implementando o modelo distribuído. De acordo com a figura anterior, em um modelo de janela de instrução de forma distribuída (Reservation Stations), só pode passar uma instrução por 113 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ciclo para sua unidade funcional, diferente do modelo centralizado (Central Window), em que mais de uma instrução pode ser enviada por ciclo de clock para as suas diferentes unidades funcionais (Load /Store) (PATTERSON; HEN- NESSY, 2017). Assista a essa videoaula que mostra mais um conceito com aplicação prática sobre pipeline superescalar, que é o despacho múltiplo das instruções, para reforçar seus conhecimentos. Clique aqui e saiba mais. A lógica de controle das implementações baseadas no modelo centralizado é mais complexa se comparada ao modelo distribuído, devido à necessidade de administrar diferentes tipos de instruções e unidades funcionais, além de disparar de forma simultânea mais de uma instrução para as diferentes uni- dades funcionais. Com relação aos registradores, cada banco de registradores é formado por três campos, conforme figura a seguir: FORMATO DE UM BANCO DE REGISTRADORES Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa em uma tabela retangular com três linhas e três colunas representando um bloco de registradores, onde cada campo tem uma determinada função. Conforme a figura anterior de um banco de registradores, temos: busy bit: indica se o valor armazenado está atualizado; caso esteja desatualizado o valor do registrador; https://www.youtube.com/watch?v=bVR6BmWLKMg 114 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES tag: tem a função de apontar para a Reservation Station contendo a instrução mais recente que vai indicar esse valor; Registrador:vai conter o registrador propriamente dito. Sempre que uma unidade funcional (Load/Store) finalizar a execução de uma operação, o resultado é disseminado através de um barramento global, denominado de CDB (Common Data Bus) tanto para o banco de registradores quanto para o Reservation Stations. A partir do que foi apresentado sobre os conceitos de arquiteturas superesca- lares, temos duas tecnologias baseadas em instruções que predominam na arquitetura usada para desenvolvimento de processadores: arquitetura RISC e a arquitetura CISC. A tecnologia RISC (Reduced Instruction Set Computing) teve os primeiros chips comercializados na década de 80, tinha uma característica em que a arquitetura era baseada em um conjunto reduzido de instruções, evitando o uso de microcódigos e trabalhava apenas com instruções simplificadas, utili- zando apenas um operando (STALLINGS, 2010). Como vantagens das máquinas que possuem processadores baseados na ar- quitetura RISC, podemos apontar que essas máquinas são mais baratas em comparação as máquinas CISC, possuem um hardware mais simples, onde as instruções são executadas diretamente pelo hardware e não por um pro- grama e executam instruções de forma mais rápida porque seu método de codificação usa menos bits, reduzindo de forma considerável o tempo de pro- cessamento (PATTERSON, HENNESSY, 2019). Como desvantagens, podemos apontar que a performance desses processa- dores depende diretamente do código desenvolvido pelo programador, pois códigos que trabalham com instruções reduzidas requerem que mais instru- ções sejam executadas. Consequentemente, isso requer sistemas de memó- ria rápida para alimentar suas instruções. 115 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 A tecnologia CISC (Complex Instruction Set Computing): é uma tecnologia de aplicação mais geral que ganhou força pelo fato de gerar a necessidade de compiladores de simples desenvolvimento, já que muitas instruções de máquina são realizadas pelo próprio processador, típicos de ambientes comerciais, que não necessitavam de um trabalho com extensa manipulação de números e recursos gráficos. Por outro lado, com o uso da tecnologia CISC, faz-se necessário levar em consideração todo o conjunto que compõe o sistema computacional, além da CPU, como tipo e velocidade de acesso dos discos de armazenamento, memória, sistema operacional e aplicativos. A tecnologia RISC (Reduced Instruction Set Computing): enfatizava o uso dos registradores tendo acesso limitado a memória apenas através das instruções do tipo load/store, fazendo com que o processador gastasse apenas um ciclo por instrução executada. Com o passar dos anos, o que se sucedeu foi uma dificuldade imensa em se escrever programas mais complexos utilizando-se apenas de instruções reduzidas, sendo necessário a implementação de novas instruções como as que foram necessárias para trabalharmos com multiprocessamento e memória virtual, como exemplos. A otimização das instruções em conjunto com o conceito de Pipeline resultou na execução das instruções em um ciclo de clock, em que o Pipeline é a técnica que permite a execução simultânea de estágios de instruções, deixando-as mais eficiente. Como vantagens, podemos mencionar o fato de que as instruções mais com- plexas podem levar a códigos menores, menos instruções e, consequente- mente, um custo menor, são microprogramados o que trazem mais flexi- bilidade ao projeto. Em uma arquitetura CISC, muitas das instruções estão arquivadas e registradas no processador, o que facilita o trabalho dos progra- madores de linguagem de máquina, disponibilizando praticamente todas as instruções que serão utilizadas (MACHADO, MAIA. 2013). Como desvantagens, o fato de possuir instruções diferentes pode levar a uma quantidade diferente de período de clock nas execuções das instruções, tor- nando a máquina lenta e afetando o desempenho. Além disso, nem sempre um menor número de instruções acarreta um menor número de bits e, por 116 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES ser uma arquitetura do tipo microprogramado, isso também pode acarretar uma possível sobrecarga de interpretação de instruções. Assista essa videoaula e conheça as diferenças entre arquiteturas CISC e RISC de forma simples e direta, reforçando os seus conhecimentos. Clique aqui e saiba mais. 6.1.2 PARALELISMO Enquanto os processadores CISC estão começando a se utilizar do conceito de Pipeline e da memória cache embutida, os processadores RISC já estão utilizando uma arquitetura mais avançada e potente, em que os modelos que são utilizados no mercado hoje não são mais a tecnologias CISC e RISC, e sim a RISC e a CRISC, que seria um híbrido entre as duas tecnologias. A tecnologia CRISC utiliza estruturas RISC para melhorar o desempenho com o objetivo de alcançar um paralelismo e, assim, poder executar um maior nú- mero de instruções por ciclos do clock. Duas arquiteturas que implementam esse conceito são a Superpipeline e a Superescalar sendo que, atualmente, a maioria dos novos chips fabricados têm dado ênfase à abordagem da es- trutura Superescalar, apesar de também poderem ser híbridos destas duas novas tecnologias, similar com a evolução do CRISC. Os processadores de arquitetura superpipeline atingem o paralelismo através do tamanho do seu pipeline, aumentando o número de instruções executa- das por ciclo. Como é possível encontrarmos nessa arquitetura um número maior de instruções simultaneamente dentro do pipeline, problemas como interdependência entre as instruções e mudanças, trocas de dados, aumen- tam o risco de “travar” o pipeline. Outra ponto causador de possível travamento é a mudança do fluxo de ins- truções causado por interrupções ou saltos inseridos na lógica do programa, em que problemas como esses podem ocorrer, em tese, com qualquer pipe- line, mas a sua probabilidade de ocorrência aumenta quando se implementa o conceito da arquitetura de superpipeline. https://www.youtube.com/watch?v=dVHD2BKZklc 117 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 Um exemplo de um processador RISC superpipeline é o modelo R5000 desenhado pela MIPS Computer, empresa integrante da Silicon Graphics), que se utiliza de um pipeline de oito estágios onde, no geral, os processadores RISC mais simples se utilizam de um pipeline de cinco estágios. Este pipeline mais longo do modelo R5500 representa uma estratégia de arquitetura superpipeline (RAMOS, 2019). Uma arquitetura superescalar aumenta o nível de paralelismo por operar vá- rios processadores que implementam pipeline separados e de forma simultâ- nea. Esta estratégia e seus benefícios vão muito além apenas da utilização de processadores adicionais. Em uma arquitetura superescalar, as execuções das instruções ocorrem ao mesmo tempo e em todos os processadores, de forma sincronizada e paralela, aumentando o número de instruções executadas por ciclo de clock. 6.1.3 MULTICOMPUTADORES E MULTIPROCESSADORES O conceito de Multiprocessadores se aplica a uma única máquina, e a co- municação é feita através de uma memória compartilhada que possui um problema relacionado ao conceito de “coerência de cache”. Já o conceito de Multicomputadores está relacionado a máquinas independentes, a comuni- cação é feita através de trocas de mensagens e um problema característico está relacionado ao roteamento de informações (STALLINGS, 2010). A arquitetura de multiprocessadores está relacionada ao conceito de que múltiplas CPU’s, ou seja, dois ou mais processadores, utilizam memória com- partilhada, alguns mecanismos de interconexão entre as CPU’s e controle úni- co de um sistema operacional (SO). A comunicação entre processadores é um sistema baseado em passagem de mensagens através de memóriaslocais para cada processador ou uma comunicação via passagem de mensagens. As arquiteturas de multiprocessadores podem ser encontradas sem me- mória cache, com memória cache ou do tipo com memória cache mais uma área particular de memória, conforme ilustrado na figura a seguir: 118 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES TIPOS DE ARQUITETURAS DE MULTIPROCESSADORES Fonte: elaborada pelo autor (2022). #pratodosverem: a imagem representa três conjuntos de blocos coloridos que representam modelos de arquiteturas de multiprocessadores com memória compartilhada e que utilizam um barramento único. De acordo com a figura anterior, o tempo de acesos à memória compartilha- da pode ser realizada de forma uniforme ou não uniforme e, baseada nessas informações, além dos tipos de fluxo de dados e de instruções, foi criada a Classificação de Flynn. Segundo Flynn, o processo computacional deve ser visto como uma relação entre os fluxos de instruções e fluxo de dados. Um fluxo de instruções equiva- le a uma sequência de instruções executadas em um processador sobre um fluxo de dados, aos quais estas instruções estão relacionadas. A Classificação de Flynn ficou conhecida como Taxonomia de Flynn e essa classificação foi dividida em quatro categorias: SISD, SIMD, MISD e MIMD. A classificação do tipo SISD (Single Instruction, Single Data) é equivalente a um único processador que realiza uma sequência de instruções com o ob- jetivo de armazenar os dados da operação em uma única memória. Essa es- trutura tem como representante a arquitetura de Von Neumann. Um fluxo único das instruções é aplicado em um único conjunto de dados, conforme ilustrado na figura a seguir: 119 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DO TIPO SISD Fonte: Autor (2022). #pratodosverem: A figura mostra blocos quadrados representando a arquitetura do tipo SISD. Um bloco mais à direita da figura representando a unidade de controle, um bloco central pontilhado representando a unidade de processamento e, mais à esquerda, um bloco pontilhado representando a memória. Na figura anterior, temos uma Unidade de Controle (UC), uma Unidade de Processamento (UP) e uma memória em que o tráfego de dados e informa- ções é realizado em apenas um bloco. Já a classificação do tipo SIMD (Single Instruction, Multiple Data) é um mode- lo vetorial no qual a operação é realizada sobre múltiplos blocos operando de forma simultânea, conforme a figura a seguir: ARQUITETURA DO TIPO SIMD Fonte: Autor (2022). #pratodosverem: A figura mostra blocos representando a arquitetura do tipo SIMD. Um bloco quadrado pontilhado a esquerda da figura representa a unidade de controle, interligada a um grupo de blocos empilhados no centro da figura representando as unidades de processamento que, por fim, estão interligados a mais um bloco pontilhado localizado a direita da figura, representando as posições de memória. 120 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Observando a imagem, o que você notou? Nessa arquitetura, uma única ins- trução de máquina, a partir de uma UC, controla a execução simultânea de uma série de elementos de processamento em operações básicas, e cada um desses elementos processados possui uma memória de dados associada, de modo que cada uma dessas instruções é executada em um conjunto diferen- te de dados por processadores (UP) diferentes. A classificação de arquitetura do tipo MISD (Multiple Instruction, Single Data) tem como característica múltiplas unidades de processamento que realizam operações distintas sobre um mesmo conjunto de dados, conforme exempli- ficado na figura a seguir ARQUITETURA DO TIPO MISD Fonte: Autor (2022). #pratodosverem: a figura mostra blocos representando a arquitetura do tipo MISD. Vários blocos quadrados pontilhado a esquerda da figura representa as unidades de controle, interligada a um grupo de blocos empilhados no centro da figura representando as unidades de processamento que, por fim, estão interligados a mais um bloco pontilhado localizado a direita da figura, representando as posições de memória. Na figura anterior, vemos que uma sequência de dados é transmitida para um conjunto de processadores (UP) através de um grupo de unidades de controle (UC), e cada processador executa uma sequência de instruções dife- rentes. Isso é um tipo de estrutura que não é implementada ou encontrada em ambientes comerciais. 121 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 A arquitetura MIMD (Multiple Instruction, Multiple Data) é caracterizada por um conjunto de processadores que tem a função de executar uma sequência de instruções diferentes, de forma simultânea e em diferentes conjuntos de dados, conforme apresentado na figura a seguir. Como exemplo dessa arqui- tetura, temos os clusters e o SMP (Symmetric MultiProcessing). As principais características de estruturas como clusters e SMP’s são: • O uso de dois ou mais processadores; • As unidades de processamento (UP) compartilham memória e barramento e o tempo de acesso é praticamente igual entre elas; • Os dispositivos de E/S também são compartilhados; • Os UP’s executam as mesmas funções, mantendo uma simetria no processo; • O SO (Sistema Operacional) é o responsável por permitir a integração nessas arquiteturas, entre processos, arquivos e dados (STALLINGS, 2010). ARQUITETURA DO TIPO MIMD Fonte: Autor (2022). #pratodosverem: A figura mostra blocos representando a arquitetura do tipo MIMD. Vários blocos quadrados pontilhados à esquerda representam as unidades de controle, interligados a um grupo de blocos empilhados no centro da figura representando as unidades de processamento. Ambos, por fim, estão conectados individualmente a mais um bloco pontilhado localizado à direita, representando blocos de memória. 122 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Conforme podemos acompanhar na figura anterior, uma arquitetura MIMD é empregada por multiprocessadores (UP) nos quais diversas instruções são executadas por diversos conjuntos de dados que usam distintas UP’s contro- ladas por unidades de controle (UC ‘s) de forma individual e independente. Com a arquitetura MIMD, as unidades de processamento são de uso geral; cada uma executa suas instruções a fim de processar seus dados associados. A arquitetura MIND também pode ser dividida de acordo com a comunica- ção de seu processador: se os processadores compartilham uma memória em comum, isso significa que esses processadores acessam dados armaze- nados nessa memória de forma compartilhada e por um mesmo barramento. O exemplo mais comum dessa comunicação é o multiprocessador simétrico SMP’s (Symmetric MultiProcessing). Assista essa videoaula e conheça mais sobre a Taxonomia de Flynn e sua importância e relevância para a classificação das diversas arquiteturas computacionais. Clique aqui e saiba mais. Já a arquitetura de Multicomputadores está relacionada a diversos compu- tadores fortemente acoplados, sem a implementação do conceito de memó- ria compartilhada, motivados pelo fato de compartilhamento de recursos e troca de informações através de uma rede. A interconexão entre esses com- putadores que normalmente estarão em agrupamentos denominados de nodes será feita por topologias de redes locais: as topologias estrela e a gra- de (ou malha) são exemplos de interconexão entre essas redes locais. Uma topologia do tipo estrela é mostrada na figura a seguir: https://www.youtube.com/watch?v=MVvhJNRAZsI 123 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicadano D.O.U em 23/06/2017 TOPOLOGIA DE REDE LOCAL DO TIPO ESTRELA Fonte: elaborada pelo autor (2022). #pratodosverem: A figura mostra quatro nodes compostos cada um por três blocos representando uma unidade de processamento, todos interconectados entre si através de um bloco central denominado de switch. Conforme a figura anterior, a topologia tem como principal característica a presença de um equipamento central concentrador, que tem a função de in- terconectar os nodes entre si. Esse comutador de rede que é a figura central de uma rede local estrela é denominado de switch. 6.2 MICROCONTROLADORES E MICROPROCESSADORES: QUAL A DIFERENÇA? Nesta unidade, aprenderemos sobre os conceitos de microcontroladores e microprocessadores, os principais processadores e em quais arquiteturas po- demos encontrá-los no mercado, as definições, diferenças e aplicações para sistemas baseados em microcontroladores e quais os principais microcontro- ladores usados em práticas de circuitos digitais. 6.2.1 TÓPICOS AVANÇADOS: PRINCIPAIS PROCESSADORES Hoje, os principais processadores são encontrados na arquitetura do tipo MIMD (Multiple Instruction, Multiple Data) pois representa grande parte das 124 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES estruturas encontradas hoje em operação devido ao avanço tecnológico e ao grande volume de processamento que os recursos tecnológicos necessitam. Veja o fluxo a seguir: TIPOS DE ESTRUTURAS BASEADAS NA ARQUITETURA MIMD Fonte: elaborada pelo autor (2022). #pratodosverem: estrutura em forma de fluxograma que mostra os tipos de estruturas encontradas no mercado, baseadas na arquitetura MIMD. Arquiteturas do tipo UMA (Uniform Memory Access), NUMA (Nonuniform Me- mory Access) e COMA (Cache Only Memory Architecture) são arquiteturas baseadas em multiprocessadores, caracterizadas pela execução simultânea de vários fluxos de instruções. A diferença entre as diversas arquitetura MIMD é feita pelo tipo de organização da memória principal, memória cache e a rede de interconexão entre eles (PATTERSON; HENNESSY. 2017). A arquitetura UMA é uma arquitetura que possui uma única memória global, com tempo de acesso uniforme para todos os processadores. Essa arquitetura possui um número reduzido de processadores e também possui implemen- tada a coerência de cache via hardware, que irá garantir que várias cópias de um mesmo dado podem ser manipuladas de forma simultânea nas memó- rias caches de cada processador. A forma de interconexão mais comum nesse modelo de arquitetura é com memória e barramentos únicos, que acabam sendo o gargalo desse sistema devido a limitação na transferência de dados, conforme ilustrado na figura a seguir: 125 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA UMA Fonte: Autor (2022). #pratodosverem: A figura mostra quatro blocos coloridos interligados a um bloco retangular amarelo e outro vermelho, via uma reta que representa o barramento do sistema. Na arquitetura UMA, a memória cache de cada processador são utilizadas para esconder a latência no acesso à memória principal e para diminuir o tráfego no barramento. (PAIXÃO, 2014) A arquitetura NUMA é caracterizada por ter um grupo de processadores in- terligados por um mecanismo de interconexão de alta velocidade, com tem- pos de acesso não uniformes, ou seja, o tempo varia de acordo com a pro- ximidade entre o processador que faz a solicitação de acesso, e a memória que possui o dado armazenado dessa solicitação. Geralmente, nesse tipo de multiprocessadores, a memória é distribuída e implementada por múltiplos módulos, e cada processador está associado a um módulo de memória, con- forme ilustrado na Figura a seguir: 126 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES ARQUITETURA NUMA Fonte: Autor (2022). #pratodosverem: A figura mostra quatro blocos coloridos interligados a quatro blocos retangulares amarelo e outro vermelho, via uma reta que representa o barramento do sistema. As máquinas de arquitetura NUMA são mais rápidas do que as máquinas de arquitetura UMA, mas a penalidade pela falta no acesso remoto pode ser muito superior em certas aplicações, se a largura de banda disponível para a comunicação via barramento estiver comprometida. A arquitetura COMA é uma arquitetura semelhante a arquitetura NUMA, mas baseada em memórias cache de alta capacidade e desempenho, que garantem a coerência de cache via hardware devido a atualização simultânea em múltiplos nodes dos dados alterados. Assista essa videoaula e conheça mais sobre o conceito e aplicações de multiprocessadores para reforçar os conhecimentos adquiridos até aqui. Clique aqui e saiba mais. https://www.youtube.com/watch?v=BwB8K84YRQw 127 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 6.2.2 MICROCONTROLADORES Um microcontrolador é um microprocessador especial destinado ao controle de processos. Dentro de um microcontrolador, já encontramos vários perifé- ricos como processador, memória, temporizadores, portas seriais e paralelas, conversores A/D (analógico/digital), entre outros, dependendo unicamente apenas de uma fonte de alimentação externa para seu funcionamento. Pode- mos afirmar que os microcontroladores são computadores funcionando em um único circuito integrado, que diferem dos demais sistemas tradicionais por já possuírem, de forma integrada, os seus periféricos dentro de sua pró- pria estrutura. Essa integração é uma das grandes vantagens dos microcon- troladores porque, ao conter todos esses periféricos em uma única estrutura, sua utilização é mais rentável, fácil e de rápida implementação para soluções. Sistemas microcontrolados: são mais fácies de serem fabricados e produzidos devido a simples implementação do mesmo em placas de circuito, diminuindo o custo por componentes e com a produção. Exemplos: podemos citar o microcontrolador 8051 e o PIC como os modelos mais usados em práticas de laboratório no ambiente acadêmico, devido as instruções serem reduzidas e de fácil aprendizado e aplicações. Os microcontroladores são utilizados em praticamente todos os dispositivos eletrônicos digitais como centrais de alarme, teclados do computador, monitores, discos rígidos de computador, relógio de pulso, máquinas de lavar, smartphones, rádios, televisores, automóveis, aviões, impressoras, calculadores científicas, etc. Microcontroladores também são muito utilizados na indústria, como por exemplo nos controladores de processos, sensores inteligentes, inversores, in- terfaces homem máquina, entre outros (STALLINGS, 2010). 128 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES Assista essa videoaula e aprenda de uma forma genérica como funcionam os microcontroladores para reforçar os conhecimentos adquiridos até aqui. Clique aqui e saiba mais. 6.2.3 MICROPROCESSADORES Um microprocessador é um circuito integrado que contém milhares de transistores que juntos trabalham para manipular e armazenar dados, de modo que um microprocessador possa executar uma grande quantidade de instruções específicas. Essas instruções específicas executadas por um mi- croprocessador são organizadas e acionadas via software. Um microproces- sador, diferente de um microcontrolador, precisa de outros periféricos para poder funcionar, como memória RAM, temporizadores, dispositivos de entra- da/saída (I/O), entre outros. Um microcontrolador já possui todos esses recur- sos integrados em um único chip e tanto um microcontrolador quanto um microprocessador, possuem uma ULA (Unidade Lógica e Aritmética) em sua estrutura, mas a ULA de um microprocessador convencional é bem maispo- derosa e robusta se compararmos com a ULA de um microcontrolador. https://www.youtube.com/watch?v=4YYA0AZy6NI 129 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 CONCLUSÃO Nesta unidade, você aprendeu sobre as arquiteturas superescalares e super- pipeline baseadas em multiprocessadores, aprendeu os conceitos e aplica- ções práticas do conceito de paralelismo dentro do uso das tecnologias RISC e CISC voltadas para desenvolvimento de processadores. Aprendeu também o uso da Taxonomia de Flynn para a classificação das dife- rentes arquiteturas de sistemas baseados em multiprocessadores, a diferença entre microcontroladores e microprocessadores e suas aplicações dentro dos sistemas de circuitos digitais. 130 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 REFERÊNCIAS DELGADO, José; RIBEIRO, Carlos. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. MAIA, Luiz P. Arquitetura de Redes de Computadores. 2. ed. Rio de Janeiro: LTC, 2013. MORAES, Alexandre F. Redes de Computadores – Fundamentos. 8. ed. São Paulo: Érica, 2020. PAIXÃO, Renato Rodrigues. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. PATTERSON, David A.; HENNESSY, John L. Arquitetura de Computadores: uma abordagem quantitativa. 6. ed. Rio de Janeiro: Elsevier, 2019. PATTERSON, David A.; HENNESSY, John L. Organização e projeto de computadores: a interface hardware/software. Rio de Janeiro: GEN LTC, 2017. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. Dispo- nível em: https://integrada.minhabiblioteca.com.br/reader/books/9788521633921. Acesso em: 27 set. 2022. MAIA, L. P. Arquitetura de Redes de Computadores. 2 ed. Rio de Janeiro: LTC, 2013. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2436-3. Acesso em: 27 set. 2022. MORAES, A. F. Redes de Computadores - Fundamentos. 8. ed. São Paulo: Érica, 2020. Disponí- vel em: https://integrada.minhabiblioteca.com.br/reader/books/9788536532981. Acesso em: 27 set. 2022. PAIXÃO, R. R. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. Livro digital. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788536518848/pageid/10. Acesso em: 27 set. 2022. PATTERSON, D. A.; HENNESSY, J. L. Arquitetura de Computadores: uma abordagem quantita- tiva. 6 ed. Rio de Janeiro: Elsevier, 2019. Disponível em: https://integrada.minhabiblioteca.com.br/ reader/books/9788595150669. Acesso em: 27 set. 2022. PATTERSON, D. A.; HENNESSY, J. L. Organização e projeto de computadores: a interface har- dware/software. Rio de Janeiro: GEN LTC, 2017. Disponível em: https://integrada.minhabiblioteca. com.br/reader/books/9788595152908. Acesso em: 27 set. 2022. MONTEIRO, M. A. Introdução à organização de computadores. 5. ed. Rio de Janeiro: LTC, 2007. ISBN 978-85-216-1973-4. Disponível em: https://integrada.minhabiblioteca.com.br/reader/ books/978-85-216-1973-4/pageid/0. Acesso em: 07 nov. 2022. STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Prentice-hall, 2010. ISBN 978-85-7605-564-8. Disponível em: http://www.telecom.uff.br/orgarqcomp/arq/arquite- tura-e-organizacao-computadores-8a.pdf. Acesso em: 07 nov. 2022. DELGADO, José; RIBEIRO, Carlos. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788521633921. Acessado em: 27 set. 2022. MAIA, Luiz P. Arquitetura de Redes de Computadores. 2 ed. Rio de Janeiro: LTC, 2013. Disponí- vel em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2436-3. Acessado em: 131 MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 ARQUITETURA DE COMPUTADORES 27 set. 2022. MORAES, Alexandre F. Redes de Computadores - Fundamentos. 8. ed. São Paulo: Érica, 2020. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536532981. Acessado em: 27 set. 2022. PAIXÃO, Renato Rodrigues. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. Livro digital. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536518848/pa- geid/10. Acessado em: 27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Arquitetura de Computadores: uma abordagem quantitativa. 6 ed. Rio de Janeiro: Elsevier, 2019. Disponível em: https://integrada.minhabiblioteca. com.br/reader/books/9788595150669. Acessado em: 27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Organização e projeto de computadores: a interfa- ce hardware/software. Rio de Janeiro: GEN LTC, 2017. Disponível em: https://integrada.minhabi- blioteca.com.br/reader/books/9788595152908. Acessado em: 27 set. 2022. STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Prentice-hall, 2010. ISBN 978-85-7605-564-8. Disponível em: http://www.telecom.uff.br/orgarqcomp/arq/arquite- tura-e-organizacao-computadores-8a.pdf. Acesso em: 07 nov. 2022. DELGADO, José; RIBEIRO, Carlos. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788521633921. Acessado em: 27 set. 2022. MAIA, Luiz P. Arquitetura de Redes de Computadores. 2 ed. Rio de Janeiro: LTC, 2013. Disponí- vel em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2436-3. Acessado em: 27 set. 2022. MORAES, Alexandre F. Redes de Computadores - Fundamentos. 8. ed. São Paulo: Érica, 2020. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536532981. Acessado em: 27 set. 2022. PAIXÃO, Renato Rodrigues. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. Livro digital. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536518848/pa- geid/10. Acessado em: 27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Arquitetura de Computadores: uma abordagem quantitativa. 6 ed. Rio de Janeiro: Elsevier, 2019. Disponível em: https://integrada.minhabiblioteca. com.br/reader/books/9788595150669. Acessado em: 27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Organização e projeto de computadores: a interfa- ce hardware/software. Rio de Janeiro: GEN LTC, 2017. Disponível em: https://integrada.minhabi- blioteca.com.br/reader/books/9788595152908. Acessado em: 27 set. 2022. STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Prentice-hall, 2010. ISBN 978-85-7605-564-8. Disponível em: http://www.telecom.uff.br/orgarqcomp/arq/arquite- tura-e-organizacao-computadores-8a.pdf. Acesso em: 07 nov. 2022. DELGADO, José; RIBEIRO, Carlos. Arquitetura de computadores. 5. ed. Rio de Ja-neiro: LTC, 2017. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788521633921. Acesso em: 27 set. 2022. MAIA, Luiz P. Arquitetura de Redes de Computadores. 2 ed. Rio de Janeiro: LTC, 2013. Disponí- vel em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2436-3. Acesso em: 27 set. 2022. EAD.MULTIVIX.EDU.BR CONHEÇA TAMBÉM NOSSOS CURSOS DE PÓS-GRADUAÇÃO A DISTÂNCIA NAS ÁREAS DE: SAÚDE • EDUCAÇÃO • DIREITO • GESTÃO E NEGÓCIOS 132 ARQUITETURA DE COMPUTADORES MULTIVIX EAD Credenciada pela portaria MEC nº 767, de 22/06/2017, Publicada no D.O.U em 23/06/2017 MORAES, Alexandre F. Redes de Computadores - Fundamentos. 8. ed. São Paulo: Érica, 2020. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536532981. Acesso em: 27 set. 2022. PAIXÃO, Renato Rodrigues. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. Livro digital. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536518848/pa- geid/10. Acesso em: 27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Arquitetura de Computadores: uma abordagem quantitativa. 6 ed. Rio de Janeiro: Elsevier, 2019. Disponível em: https://integrada.minhabibliote- ca.com.br/reader/books/9788595150669. Acesso em:27 set. 2022. PATTERSON, David A.; HENNESSY, John L. Organização e projeto de computado-res: a inter- face hardware/software. Rio de Janeiro: GEN LTC, 2017. Disponível em: https://integrada.minha- biblioteca.com.br/reader/books/9788595152908. Acessado em: 27 set. 2022. STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Prentice-hall, 2010. ISBN 978-85-7605-564-8. Disponível em: http://www.telecom.uff.br/orgarqcomp/arq/arquite- tura-e-organizacao-computadores-8a.pdf. Acesso em: 07 nov. 2022. DELGADO, J.; RIBEIRO, C. Arquitetura de computadores. 5. ed. Rio de Janeiro: LTC, 2017. Dispo- nível em: https://integrada.minhabiblioteca.com.br/reader/books/9788521633921. Acesso em: 27 set. 2022. MAIA, L. P. Arquitetura de Redes de Computadores. 2 ed. Rio de Janeiro: LTC, 2013. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2436-3. Acesso em: 27 set. 2022. MORAES, A. F. Redes de Computadores - Fundamentos. 8. ed. São Paulo: Érica, 2020. Disponí- vel em https://integrada.minhabiblioteca.com.br/reader/books/9788536532981. Acesso em: 27 set. 2022. PAIXÃO, R. R. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. Livro digital. Disponível em https://integrada.minhabiblioteca.com.br/reader/books/9788536518848/pageid/10. Acesso em: 27 set. 2022. PATTERSON, D. A.; HENNESSY, J. L. Arquitetura de Computadores: uma abordagem quantita- tiva. 6 ed. Rio de Janeiro: Elsevier, 2019. Disponível em: https://integrada.minhabiblioteca.com.br/ reader/books/9788595150669. Acesso em: 27 set. 2022. PATTERSON, D. A.; HENNESSY, J. L. Organização e projeto de computadores: a interface har- dware/software. Rio de Janeiro: GEN LTC, 2017. Disponível em: https://integrada.minhabiblioteca. com.br/reader/books/9788595152908. Acessado em: 27 set. 2022. STALLINGS, W. Arquitetura e Organização de Computadores. 8. ed. São Paulo: Prentice-hall, 2010. ISBN 978-85-7605-564-8. Disponível em: http://www.telecom.uff.br/orgarqcomp/arq/arquite- tura-e-organizacao-computadores-8a.pdf. Acesso em: 07 nov. 2022. MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 5. ed. Rio de Janeiro: LTC, 2013. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/978-85-216-2288-8/ pageid/0. Acesso em: 14 dez. 2022. RAMOS, L. F. P. B. Fundamentos de hardware. São Paulo: Érica, 2019. Disponível em: https://inte- grada.minhabiblioteca.com.br/reader/books/9788536531595. Acesso EAD.MULTIVIX.EDU.BR CONHEÇA TAMBÉM NOSSOS CURSOS DE PÓS-GRADUAÇÃO A DISTÂNCIA NAS ÁREAS DE: SAÚDE • EDUCAÇÃO • DIREITO • GESTÃO E NEGÓCIOS Sistema numérico Função E (AND): representação de circuito eletrônico com chaves Função E (AND): simbologia e tabela verdade Função OU (OR): representação DE circuito eletrônico com chaves Função OU (OR): simbologia e tabela verdade FUNÇÃO NÃO (NOT): Representação DE circuito eletrônico com chaves Função NÃO (NOT): simbologia e tabela verdade Estrutura genérica de um circuito sequencial Sistema-base de um computador Funções básicas de um sistema computacional Tipos de operações em um sistema computacional Modelo computacional de Von Neumann Modelo computacional de Harvard Características de algumas portas lógicas básicas Função OU EXCLUSIVA a partir de portas lógicas E (AND) e OU (OR) Circuito lógico formado por portas E / OU e sua função de saídas Estrutura de um computador Elementos de um processador (CPU) ULA – Modelo simplificado Barramentos do sistema Elementos de uma unidade de controle Modelo de uma Unidade de Controle de um processador Registrador de flags Tipos de barramentos de um sistema computacional Controladora de comunicação de dispositivos de entrada e saída (E/S) Ciclo de instrução em um processador Ciclo indireto de instrução Fluxo de dados na etapa de busca Tipos de transferência de dados de um barramento Transferência de dados: operação de leitura/escrita Transferência de dados em bloco Figura 1 – Hierarquia de memória Figura 2 – Acesso e endereçamento de memória Figura 3 – Estrutura interna de uma memória SRAM Figura 4 – Memória cache em um sistema computacional Figura 5 – Registrador de flags Processador com dois pipelines Processador com dois pipelines Formato de um banco de registradores Tipos de Arquiteturas de multiprocessadores Arquitetura do tipo SISD Arquitetura do tipo SIMD Arquitetura do tipo MISD Arquitetura do tipo MIMD Topologia de rede local do tipo estrela Tipos de estruturas baseadas na arquitetura MIMD Arquitetura UMA Arquitetura NUMA Tabela de conversão entre sistemas numéricos Tabela de conversão entre sistemas numéricos Formato das instruções de um processador Operação do pipeline em uma instrução Desvio condicional atuando na operação do pipeline em uma instrução Quadro 1 – Texto do recurso (atividade) Apresentação da disciplina 1. SISTEMAS NUMÉRICOS E A REPRESENTAÇÃO DA INFORMAÇÃO INTRODUÇÃO DA UNIDADE 1.1 Sistemas Numéricos 1.2 Elementos básicos de um computador 2. ARQUITETURA VERSUS ORGANIZAÇÃO INTRODUÇÃO DA UNIDADE 2.1 O computador como uma máquina sequencial 2.2 Estrutura de um computador 3. OS COMPONENTES BÁSICOS DE UM COMPUTADOR INTRODUÇÃO DA UNIDADE 3.1 Os componentes básicos de um computador 3.2 Mecanismos de interrupção e de exceção 4. CICLOS DE INSTRUÇÃO DE UM PROCESSADOR INTRODUÇÃO 4.1 OS SUBCICLOS DE BUSCA (FETCH) 4.2 INTERCONEXÕES E BARRAMENTOS 5. HIERARQUIA DE MEMÓRIA INTRODUÇÃO 5.1 Organização da memória 5.2 Classificação de memória 6. PARALELISMO, MICROCONTROLADORES E ARQUITETURAS PARALELAS INTRODUÇÃO DA UNIDADE 6.1 Processadores Superescalares e Superpipeline 6.2 Microcontroladores e Microprocessadores: qual a diferença?