Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Computadores Arquitetura de Computadores 1ª edição 2019 Autoria Parecerista Validador Marcelo Akira Yamamoto Ricardo de Almeida Pinto *Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência. Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal. 4 Sumário Sumário Unidade 1 1. Introdução à Arquiteturade Computadores ...........8 Unidade 2 2. Organização de Computadores ..............................26 Unidade 3 3. Sistemas de Numeração ..........................................44 Unidade 4 4. Lógica Digital ............................................................56 Unidade 5 5. Processadores ...........................................................68 Unidade 6 6. Memórias ...................................................................79 5 Sumário Unidade 7 7. Dispositivos de Entrada e Saída ..............................92 Unidade 8 8. Introdução aos Sistemas Operacionais .............. 112 6 Palavras do professor A disciplina Arquitetura de Computadores aborda informações essenciais para a compreensão de computador e dos diversos mundos tecnológicos existentes, seja de micro, pequeno, médio ou grande porte. Dessa forma, o conteúdo desta disciplina trará a compreensão sobre evolução tecnoló- gica na unidade 1, passando, na unidade 2, pela forma como os compu- tadores são organizados. A unidade 3 trata de aspectos sobre o sistema numérico computacional, sendo importante observar a exatidão, assim como o espaço inteiro ou não fracionado tratado por um computador. A unidade 4 trabalha a lógica computacional, uma mistura entre matemá- tica e eletrônica. Já na unidade 5, estudaremos como os dados são pro- cessados, assim como os processadores e seus componentes. Na unidade 6, veremos os tipos de memória, bem como sua classificação e uso. A uni- dade 7 traz os tipos de dispositivo que são usados em um computador e como eles funcionam. Para finalizar, a unidade 8 apresenta a importância de um sistema operacional para um computador e vice-versa, porque eles devem combinar para que exista harmonia, e o computador não trave. Assim, o profissional que conhece o funcionamento de uma máquina consegue extrair todo o potencial dela e, portanto, pode atuar em diver- sos ramos de atividade, não só a de tecnologia. Isso traz benefícios a si próprio como também agrega valor a uma empresa, já que o perfil de um profissional que compreende a tecnologia permite à empresa ser virtual como também estar conectada a diversos ambientes, sejam parceiros econômicos ou concorrentes de mercado. Estudar disciplina em EAD requer um perfil de aluno capaz de criar rotinas mesclando pesquisa, leitura e fóruns, além de ser participativo, persistente e focado. Também exige concentração e atenção aos pontos primordiais em cada tema estudado a fim de prepará-lo para diversos ambientes e situações de mercado, uma vez que pode partilhar com o mundo, assim como consumir o que o ambiente virtual proporciona. Bons estudos! 7 Objetivos da disciplina • Recordar, descrever, demonstrar e manipular um computador. • Identificar e manipular os componentes computacionais. • Expressar a operação de um computador a partir do sistema de numeração e dos circuitos lógicos. • Interpretar a forma numérica computacional. • Apreciar o que pode ser feito com um computador. • Esclarecer o funcionamento de um computador em conjunto com um sistema operacional. 8 1Unidade 11. Introdução à Arquitetura de Computadores Para iniciar seus estudos Nesta unidade, você aprenderá o conceito de arquitetura de computado- res e conhecerá o histórico e sua evolução. Verá também os diversos tipos de computador e conhecerá como os componentes eletrônicos foram usados ao longo dos anos. Objetivos de Aprendizagem • Recordar o histórico e a evolução dos computadores. • Descrever os conceitos sobre arquitetura computacional. • Identificar as características e diferenças entre a organização e a arquitetura de computadores. • Diferenciar tipos de processador. • Descrever os tipos de memória. • Analisar os dispositivos de entrada e saída. • Escolher os componentes adequados para formar um computador. 9 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Introdução da Unidade A arquitetura de computadores é a “arte” de criar componentes eletrônicos voltados à computação. Além dessa arte, há outra chamada de organização de computadores, na qual, a partir dos componentes criados, são trata- das as formas de combinar e ligar esses componentes eletrônicos, que, juntos, formam os computadores como são conhecidos. Quem atua nessa área é um profissional dedicado à especificação de produtos, matemática computacional, combinação de componentes e programação dos dispositivos. Nessa área – a mais “baixa” da computação –, está a forma eletroeletrônica do funcionamento dos dispositivos eletrônicos, tal qual as maneiras como se processam e se armazenam dados, como os dados são transmitidos e como eles são tratados. Portanto, nesta unidade, será apresentada a arquitetura computacional, como é formada, bem como os compo- nentes que evoluíram com o passar do tempo. 1.1 Arquitetura de computadores A arquitetura de computadores é a forma como eles são pensados em sua formação, de modo que todos os componentes estejam em harmonia para seu pleno funcionamento. Ela descreve como um componente ele- trônico computacional é elaborado para que um circuito eletrônico possa funcionar em conjunto com outro componente eletrônico. Para estudar esta unidade, veja a evolução dos computadores a seguir. 1.1.1 História e evolução dos computadores O primeiro dispositivo mecânico para efetuar cálculo criado pelo homem foi o ábaco. Ele é constituído por uma moldura retangular com bastões ou arames em paralelo, disposta no sentido vertical, cada bastão contendo 10 “bolas” móveis, que podem ser movidas para cima ou para baixo. Teve origem, provavelmente, na Mesopotâmia há mais de 5.500 anos. Figura 1 – Ábaco “original” Fonte: SHUTTERSTOCK, 2018. 10 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Usado desde 3.500 a.C., o ábaco foi utilizado por gregos e romanos, sendo aperfeiçoado pelos chineses (que o chamam de suan-pan) e japoneses (que o chaman de soroban). Hoje, ainda é encontrado e utilizado em alguns países, como China e Japão, talvez para manter a tradição. Figura 2 – Soroban Fonte: SHUTTERSTOCK, 2018. Em 1614, John Napier descobriu os “logaritmos” que tornaram possível executar multiplicações e divisões atra- vés de somas e subtrações. Com base nos estudos de Napier, um sacerdote inglês de nome William Oughtred desenvolveu uma régua de cálculo em 1622. Figura 3 – Régua de cálculo Fonte: SHUTTERSTOCK, 2018. 11 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Essa régua baseava-se na representação dos logaritmos de Napier em escalas, de forma que a posição dos núme- ros era proporcional ao seu logaritmo. Durante os anos, a régua mudou de formato e, até a década de 60, o uso dela era muito comum por engenheiros e outros profissionais. Figura 4 – Nova régua de cálculo Fonte: SHUTTERSTOCK, 2018. 1.1.1.1 Primeira máquina de calcular Em 1623, Wilhelm Schickard construiu a primeira máquina de calcular: uma calculadora mecânica, que utilizava engrenagens de relógios, chamada de relógio calculador. Ela foi utilizada por seu amigo Johannes Kepler, que revolucionou a astronomia formulando as três leis fundamentais da mecânica celeste. Para mais informações a respeito de Wilhelm Schickard, bem como sobre sua máquina, acesse os sites da Universidade de Tübingen e do Instituto Wilhelm.Posteriormente, em 1642, Blaise Pascal – matemático, físico, filósofo, francês e especialista em cálculos infinite- simais – criou um tipo de máquina de somar chamada de La Pascaline, considerada por muitos a primeira máquina calculadora mecânica devido à sua conservação no Conservatório de Artes e Medidas de Paris (em outras pala- vras, uma prova concreta), já que não existe prova concreta sobre o equipamento de Wilhelm Schickard a não ser cartas escritas por ele para Johannes Kepler. A máquina de Pascal, La Pascaline, realizava soma e subtração por meio de rodas e engrenagens dentadas. Essa máquina continha seis engrenagens dentadas com um ponteiro indicando o valor decimal. Cada dente corres- pondia a uma unidade; portanto, cada engrenagem continha 10 dentes, que, após efetuarem um giro completo, acarretavam o avanço de um dente da próxima engrenagem, sendo esta a base de todas as calculadoras mecâ- nicas e também do hodômetro (não digital) de um automóvel. 12 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Figura 5 – La Pascaline – máquina de Blaise Pascal Fonte: SHUTTERSTOCK, 2018. Pascal recebeu do Rei da França a patente para que seu engenho fosse comercializado; entretanto, a “enge- nhoca” não teve aceitação. Em 1670, Gottfried Leibniz construiu uma máquina mais completa que a de Pascal, porque realizava as quatro operações aritméticas, e não apenas as de somar e subtrair, como a máquina de Pascal. Ambas as máquinas eram manuais. Figura 6 – Máquina de Leibniz Fonte: SHUTTERSTOCK, 2018. 13 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Leibniz descreveu ainda o código binário, também chamado de sistema binário; entretanto, até o início da década de 1940, todos os “computadores” eram baseados no sistema decimal, obviamente mais complexo tanto para fabricar os computadores quanto para programá-los. Vários anos se seguiram após o invento de Pascal e, durante esse período, vários projetos foram desenvolvidos com o intuito de aperfeiçoar a La Pascaline; contudo, não houve qualquer avanço significativo até que Charles Babbage e Augusta Ada King (Condessa de Lovelace) começaram a analisar melhor o problema. Entretanto, em 1801, um fato importante ocorreu: Joseph Marie Jacquard, um inventor francês, desenvolveu uma máquina têxtil em que a saída era controlada por cartões com furos, denominados mais tarde como cartões perfurados – desenvolvidos por Hermann Hollerith. O conjunto de cartões poderia ser alterado sem mudar a estrutura dessa máquina. Esse foi um marco na programação. Charles Babbage apresentou, em 1822, a máquina de diferenças, capaz de efetuar cálculos necessários de um algoritmo simples para elaborar uma tabela de logaritmos. Não satisfeito, Babbage desenvolve um novo projeto: a máquina analítica. Esta máquina efetua as quatro opera- ções matemáticas a fim de executar qualquer tipo de algoritmo mais complexo. Durante seu trabalho, Babbage observou que poderia “programar” ou “ensinar” sua máquina a executar tarefas matemáticas, mas ele não viveu o suficiente para testar e comprovar essas observações – morreu em 1871. Para mais informações a respeito de Wilhelm Schickard, bem como sobre sua máquina, acesse os sites da Universidade de Tübingen e do Instituto Wilhelm. A Condessa de Lovelace, filha do Lord Byron, compreendeu a máquina de Babbage e escreveu programas para a máquina analítica, tornando-se a primeira programadora de computador do mundo. Um pouco mais sobre Augusta Ada King (Condessa de Lovelace) Augusta Ada King (1815-1852), também conhecida como Condessa de Lovelace, é conhe- cida por criar o primeiro programa que poderia ser “executado” pela máquina analítica de Charles Babbage; dessa forma, ela é conhecida como a primeira programadora (Adaptado de SANTINO, 2015). Em 1887, Leon Bollee constrói a primeira máquina de calcular que fazia multiplicações diretamente, e não por adições sucessivas. Essa máquina ficou conhecida como máquina milionária. 14 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Você pode buscar mais informações ou imagens da máquina pesquisando sobre o autor Leon Bollee, ou também por máquina milionária, ou ainda millionaire calculating machine. 1.1.1.2 Primeiro computador A evolução das máquinas de calcular possibilitou o surgimento das primeiras máquinas que processavam dados, que resultariam no que é conhecido atualmente como computador. A primeira máquina de processar dados foi desenvolvida por um funcionário da USCB (United State Census Bureau), chamado de Herman Hollerith, por volta de 1880. Essa máquina processava o recenseamento da população através da leitura de cartões perfurados – também chamados de Cartões Holerith. Daí o Holerith que conhecemos como representação do recebimento de salário, sendo o sistema patenteado em 1884. A máquina de Hollerith foi utilizada pela primeira vez em 1890, e o tempo gasto nesse recenseamento foi de 1/3 do tempo normal. Em 1896, Hollerith funda a companhia Tabulatin Machine Company e, em 1911, com o crescimento da empresa, muda para Computing, Tabulating and Recordin Company. Posteriormente, em 1924, a companhia torna-se o núcleo da IBM – International Business Machines Corporation. Figura 7 – Máquina de cartões perfurados – Herman Hollerith Fonte: SHUTTERSTOCK, 2018. 15 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Cartão perfurado Observando a descoberta de Joseph Marie Jacquard – a automação dos teares –, Hermann Hollerith desenvolveu uma forma de armazenar dados em um papel. Esse desenvolvimento, em 1880, culminou em uma máquina para realizar as operações de recenseamento da população norte-americana. A máquina efetuava leitura de papéis perfurados, chamados de cartões perfurados, que continham um código chamado de BCD (Binary Coded Decimal) e contava os dados referentes às respectivas perfurações. Muitas tecnologias surgem a partir de observações, e a informática é um mundo de observação que promove formas de auto- matizar processos. Em 1935, surge a primeira máquina de calcular eletrônica, e seu inventor foi um estudante de engenharia alemão chamado Konrad Zuse. Em 1936, Zuse, cria um computador, baseado em relés mecânicos, chamado de Z1, que usava um teclado como dispositivo de entrada, e lâmpadas como componentes de saída. Somente em 1943 as ideias de Charles Babbage foram comprovadas, quando um jovem matemático de Cam- bridge, chamado Alan Turing, publicou o artigo On Computable Numbers. Nesse artigo, Turing demonstrou que um conjunto de estruturas simples poderia resolver qualquer problema matemático complexo. Além de Turing, outro físico e matemático norte-americano, chamado de Howard Aiken, baseou-se nos princípios da máquina de Babbage, desenvolvendo, também, um computador: o MARK I. Turing, então, liderou uma equipe de pesquisa na Inglaterra e desenvolveu a mais secreta investigação da Segunda Guerra Mundial, o Colossus (FIGURA 8) – o primeiro computador eletromecânico –, que pôde decifrar os códigos alemães de mensagens “Enigma” – mensagens criadas com a máquina Lorenz SZ 40/42 – durante a guerra. Essa enorme máquina continha 1.500 válvulas, que sempre queimavam em poucos minutos; além disso, utilizava símbolos perfurados em fitas de papel que processavam a uma velocidade de 25.000 caracteres por segundo. A Lorenz SZ 40/42 foi uma máquina criptográfica usada pela Alemanha Nazista na Segunda Guerra Mundial. 16 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Figura 8 – Colossus, o primeiro computador eletromecânico Fonte: SHUTTERSTOCK, 2018. Apesar de estar em operação em novembro de 1945, o ENIAC (electronic numerical integrator and computer) só foi oficialmente apresentado em fevereiro de 1946, resultado do trabalho da equipe de Herman Goldstine, que con- tava com as presenças de John Eckert e John Mauchly, e coma colaboração de John Von Neumann (idealizador da estrutura atual dos computadores). O ENIAC tinha 18.800 válvulas, 6.000 chaves, 10.000 capacitores, 1.500 relés. Ele ocupava três salas, totalizando 72 metros quadrados, pesava 30 toneladas e tinha uma média de falha de uma a cada 6 horas. Figura 9 – ENIAC Fonte: SHUTTERSTOCK, 2018. 17 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Durante a construção do ENIAC, Mauchly e Eckert iniciaram a construção de outro computador eletrônico que armazenasse na memória qualquer programa e constituísse um multipurpose computer. Esse computador recebeu o nome de EDVAC (electronic discrete variable automatic computer). O EDVAC possuía a memória construída através de lâmpadas de mercúrio e utilizava a notação binária pura (simplificando a construção da unidade lógica e da aritmética). Seu término deu-se em 1947. Enquanto isso, uma das pessoas envolvidas no projeto ENIAC, John Von Neumann, foi para o Instituto de Estudos Avançados de Princeton para construir sua própria versão do EDVAC: a máquina de IAS. Von Neumann observou que a aritmética decimal utilizada pelo ENIAC – no qual cada dígito era representado por 10 válvulas – poderia ser substituída por uma aritmética mais simples: a aritmética binária. Seu projeto, conhecido também como máquina de Von Neumman, foi utilizado no EDSAC (1949) – primeiro computador com programa armazenado. Essa máquina continha cinco partes básicas: memória, ULA (unidade lógica e aritmética) ou ALU (aritmetic logical unit), unidade de controle de programa e os equipamentos de entrada e saída. Figura 10 – Máquina de Von Neumman MEMÓRIA UNIDADE DE CONTROLE UNIDADE LÓGICA E ARITMÉTICA DISPOSITIVOS DE ENTRADA E SAÍDA Processador (Como conhecemos hoje) Fonte: Elaborada pelo autor. A máquina de Von Neumann é a base da arquitetura atual de todos os computadores. A evolução da tecnologia dos semicondutores, aliada à necessidade cada vez maior de cálculos precisos, grandes velocidades e múltiplas complexidades, levou o homem a criar máquinas menores e mais rápidas. Esses avanços permitiram ao homem explorar o espaço, estudar o genoma humano e modificar a sociedade como um todo. Essa evolução não parou; portanto, os profissionais de tecnologia da informação devem estar sempre atentos ao que vem sendo desenvolvido e estudar constantemente. 18 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores 1.1.1.3 Geração dos computadores Os computadores são divididos em gerações para se identificar os tipos que foram desenvolvidos ao longo dos anos. Assim: Geração zero – até 1940 Nesta geração, os computadores eram puramente mecânicos, ou seja, todos os equipamentos mecânicos de cálculo criados até 1940 são considerados como “geração zero”. Primeira geração – de 1936 até 1950 – válvulas Neste período, os computadores eram elaborados com circuitos eletrônicos, relés, capacitores e válvulas. Segunda geração – de 1950 até 1960 – transistores O transistor foi desenvolvido no Bell Labs em 1948 por John Bardeen, Walter Brattain e Willian Shokley, os quais foram agraciados com o Prêmio Nobel de Física em 1956. O primeiro computador transistorizado foi o TX-0, desenvolvido no Lyncoln Laboratory no MIT. Terceira geração – de 1960 até 1980 – circuito integrado A invenção do circuito integrado possibilitou que dezenas de transistores fossem colocados em uma única pas- tilha – chamada de chip. Esse encapsulamento tornou possível construir computadores menores, mais rápidos e mais baratos que seus predecessores transistorizados. Quarta geração – a partir de 1981 O aumento da integração de circuitos permitiu a redução de custo e o desenvolvimento dos computadores pes- soais (personal computer – PC) possibilitando também a criação do very large scale integration (VLSI). Surgem então os microcomputadores. Nesse início, as instruções eram executadas em menos de nanossegundos. Quinta geração – década de 90 Alguns autores já falam de uma 5ª geração, na qual existem vários microprocessadores trabalhando em paralelo, e a programação sendo feita em linguagem de alto nível. Esta é a geração conhecida como inteligência artificial, porque acumula conhecimentos a partir do acúmulo de dados. 19 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores O quadro a seguir traz algumas das invenções/acontecimentos que contribuíram direta ou indiretamente para a criação e evolução dos computadores. Quadro 1 – Evolução dos computadores Época Fato/invenção Autor(es) 3500 a.C. Ábaco Chinês 1614 Tábua ou bastões de Napier John Napier 1622 Régua de cálculo William Oughtred 1642 La Pascaline (1ª máquina mecânica de cálculo; fazia somas e subtrações) Blaise Pascal 1670 Máquina de Leibniz Gottfried Leibniz 1670 Sistema binário Gottfried Leibniz 1783 Cálculos abaixo de zero J. H. von Muller 1792 Telégrafo óptico Irmãos Chappe 1810 Aritmógrafo Galley 1820 Aritmometer (aritmógrafo aperfeiçoado, foi a primeira calculadora comercializada) Charles Xavier Thomas 1822 Máquina de diferenças Charles Babbage 1834 Máquina analítica, executava as quatro operações básicas, lia cartões perfurados e possuía um dispositivo de saída para fazer impressões em cartões Charles Babbage 1838 Telégrafo elétrico Samuel Morse 1876 Telefone Alexander Graham Bell 1880 Inventou uma máquina para classificar as informações do Censo americano de 1890. Em 1896, fundou uma indústria para produzir essas máquinas em escala comercial – Tabulating Machine Company –, que hoje é conhecida como IBM (International Business Machines Corporation) (1924) Hernan Hollerith 1888 Energia elétrica Thomas Edson 1895 Cinema Louis Lumière 1896 Teclado com 10 teclas (aperfeiçoado em 1903 por Hopckins) Telégrafo sem fio Runge Guglieno Marconi 20 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Época Fato/invenção Autor(es) 1900 Máquina para cálculos com erro relativo menor que 0.01 em raízes de equações trinômias, utilizada para construção das relações algébricas Torres 1901 Máquina Ellis (combinava funções aritmética e automética de soma e subtração e as descritivas de escrever – foi a precursora da máquina de contabilidade) Halcom Ellis 1915 Rádio Guglieno Marconi 1926 Televisão John Baird 1935 Gravador AEG 1935 Máquina calculadora eletrônica Konrad Zuse 1936 Z1 Konrad Zuse 1943 Colossus Alan Turing 1943 Mark I Howard Aiken 1946 ENIAC J. Mauchty, P. Eckert e J. Von Neumann 1947 EDVAC J. Mauchty e P. Eckert 1947 Arquitetura John Von Neumann ou máquina de Von Neumann John von Neumann 1949 EDSAC John von Neumann 1954 Impressora Uniprinter Transistor de silício Earl Masterson Texas Instruments 1956 Fax Asahi Shimbum 1957 Linguagem Fortran John Backus (IBM) 1958 Modem Bell Company 1960 Chip Texas Instruments 1962 Satélite Tell Star Jogos de computador EUA MIT 1969 Rede Arpanet EUA - Ministério da Defesa 1970 Microprocessador Intel Início da década de 70 Mouse e interface gráfica (GUI) Autor desconhecido. Empresa Xerox (Xerox PARC) 1972 Apple Steve Paul Jobs e Stephen Wozniac 1973 Disquete EUA 1975 Linguagem Basic Bill Gates e Paul Alen 1980 Walkman Aldo Morita e Sony 1981 MS-DOS Personal computer (PC) IBM/Microsoft IBM 21 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores Época Fato/invenção Autor(es) 1983 Lisa (primeiro microcomputador a ter mouse e GUI) Apple 1983 Telefone celular AT&T 1984 CD-ROM Videogame Macintosh e Apple II Philips e Sony Nintendo Apple 1985 Windows Tela sensível a toque Bill Gates Zenith 1988 1º vírus de computador EUA 1989 WWW Tim Berner-Lee 1993 Padrão Pentium Intel 1994 Reconhecimento de voz IBM, Dragon e Philips Fonte: Elaborado pelo autor. 1.1.2 Máquinas multiníveis Uma máquina multinível, denominada computador digital, é capaz de solucionar problemasatravés da execução de instruções que lhe são fornecidas. Essas instruções básicas formam uma linguagem, denominada lingua- gem de máquina, tornando possível às pessoas se comunicarem com o computador; porém, as linguagens de máquina não são muito simples, sendo difícil e tedioso usá-las. Para resolver esse problema, foram desenvolvidas outras duas técnicas de programação: de tradução, que con- siste em escrever instruções em um nível acima da linguagem de máquina tradicional; de interpretação, que consiste em escrever um programa em linguagem de máquina que receba os programas escritos no nível acima e execute linha por linha diretamente em linguagem de máquina. A partir daí, foram adicionados mais níveis hierárquicos a fim de compreender os computadores e facilitar o desenvolvimento de programas. Os computadores contemporâneos possuem dois ou mais níveis, sendo que os de seis níveis são os mais comuns. No nível mais baixo, chamado de nível da lógica digital ou nível 0, estão as portas. Cada porta possui uma ou mais entradas digitais (0 ou 1), fornecendo como saída funções simples, tais como AND ou OR. Cada porta é consti- tuída por um punhado de transistores. No nível 1, chamado de nível de microprogramação, está contida a linguagem de máquina, cuja função é inter- pretar as instruções do nível 2. No nível 2, também denominado de máquina virtual ou nível de máquina convencional, estão contidas instru- ções interpretadas por um microprograma. Essas interpretações vindas do nível 3 são passadas para o nível 1 (computadores CISC), ou seja, alguns computadores não possuem nível 2 (computadores RISC). As novas facilidades adicionadas no nível 3 são efetuadas por um interpretador em execução no nível 2, sendo his- toricamente denominado de sistema operacional. As instruções do nível 3 idênticas às do nível 2 são executadas 22 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores diretamente pelo microprograma, e não pelo sistema operacional, e outras são interpretadas diretamente pelo microprograma. Os níveis inferiores aos níveis 3 e 4 não foram projetados para o uso comum de programadores médios. Estes são voltados para execução dos interpretadores e tradutores necessários para suportar os níveis superiores. Esses tradutores e interpretadores são escritos por pessoas chamadas de programadores ou desenvolvedores de sis- temas. Os níveis 4 e superiores são dirigidos aos programadores de aplicação e, a partir do nível 4, as linguagens possuem palavras e abreviaturas significativas para as pessoas; abaixo desse nível, as linguagens consistem em longas séries de números, as quais são ótimas para as máquinas e péssimas para as pessoas. O nível 5 consiste em linguagens projetadas para serem utilizadas por programadores de aplicação, sendo tam- bém denominadas linguagens de alto nível. Existem centenas dessas linguagens, sendo as mais conhecidas: BASIC, C, COBOL, JAVA, Pascal, etc. Os programas escritos nesse nível são geralmente traduzidos para o nível 3 ou nível 4 por tradutores chamados compiladores, embora ocasionalmente eles sejam interpretados. Acima do nível 6, os programas são projetados para criar máquinas especialmente adequadas para certas aplicações. O conjunto de tipos de dados, operações e características de cada nível é denominado arquitetura. Na prática, arquitetura de computadores e organização de computadores significam essencialmente a mesma coisa. Veja a seguir um exemplo dos níveis de uma máquina multinível: Figura 11 – Máquina multinível Nível de Linguagem Orientada para problemas (linguagem de Alto Nível) Nível 5 Nível de Linguagem de MontagemNível 4 Nível de Sistema OperacionalNível 3 Nível de Máquina convencionalNível 2 Nível de MicroprogramaçãoNível 1 Nível de Lógica DigitalNível 0 Sistema Operacional Linguagem de máquina Micro Programa / Micro Código / Micro Instruções Hardware Tradução (Compilador) Tradução (Montador) Interpretação Parcial (S.O.) Interpretação (Microprograma) Os 6 Níveis presentes na maioria dos computadores modernos. Os Microprogramas são executados diretamente pelo hardware. Fonte: Elaborada pelo autor. 23 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores 1.1.2.1 Evolução das máquinas multiníveis Os primeiros computadores digitais da década de 1940 possuíam apenas dois níveis: o de lógica digital, que exe- cutava os programas, e o de máquina convencional, no qual toda a programação era feita. A lógica digital contida no hardware, ou seja, o próprio hardware – os circuitos – era complicada e difícil de cons- truir e entender, além de não ser confiável. A fim de simplificar o hardware, em 1951, Maurice Vicent Wilkes, na Inglaterra, projetou um computador de três níveis, que teria embutido um interpretador imutável, capaz de executar, interpretativamente, os programas em linguagem de máquina. A partir de então, o hardware executava apenas os microprogramas, que possuem uma quantidade limitada de instruções, em vez de executar programas na linguagem de máquina convencional; consequentemente, uma quantidade menor de circuitos eletrônicos – que, na época, eram constituídos por válvulas – era necessária e, portanto, aumentava a confiabilidade. Nas décadas de 1950 e 1960, poucas máquinas de três níveis foram construídas. Na década de 1950, montadores e compiladores foram desenvolvidos a fim de facilitar a vida dos programadores. Na década de 1960, foi desenvolvido o sistema operacional a fim de reduzir o tempo perdido pelo operador, automatizando, assim, parte de seu trabalho. O sistema operacional era mantido todo o tempo no computador, e o programador inseria certos cartões (cartões perfurados) de controle junto com o programa que era lido e executado pelo sistema operacional. Já na década de 70, expandiu-se a ideia de usar a interpretação no nível de máquina convencional através de um microprograma no lugar de execução direta (pelos circuitos eletrônicos). Atualmente, os programadores (a maioria) trabalham com linguagens de alto nível (nível 5). Essas linguagens facilitam a vida destes, já que possuem uma codificação de fácil interpretação, diferentemente da linguagem de máquina (nível 2), dificílima, e da linguagem dos montadores (nível 4). 1.1.3 Arquitetura e organização de computadores Ao estudar sistemas de computação, deve ser feita a distinção entre arquitetura de computadores e organização de computadores. A primeira estuda o conjunto hardware, ou seja, os atributos que têm impacto direto sobre a execução lógica de um programa; e a segunda estuda o hardware de forma mais ampla, ou seja, as unidades ope- racionais e suas interconexões que implementam as especificações de sua arquitetura. Na visão da arquitetura de computadores, um computador é um conjunto de circuitos eletroeletrônicos interli- gados para que os programas/sistemas possam ser processados. Na visão da organização de computadores, um computador é um conjunto de componentes eletroeletrônicos interligados de modo que os dados possam ser processados, armazenados e transmitidos. Tanenbaum (2013) diz, em seu livro, que um computador é uma máquina capaz de resolver problemas através da execução de instruções fornecidas. Um computador é também uma máquina capaz de efetuar cálculos com grupos de números e armazenar o que foi processado. 24 Arquitetura de Computadores | Unidade 1 - Introdução à Arquitetura de Computadores No mundo, tudo que é criado ou transformado partindo da natureza é utilizado para auxiliar os humanos em seu cotidiano. Partindo dessa premissa, surgiram diversas “coisas”, como: • Carros para ajudar o ser humano a se locomover. • Aviões para ajudar o ser humano a voar, ou melhor, a se locomover por longas distâncias. • Casas para proteger do calor excessivo, do frio e das chuvas. • Celular para se comunicar a longas distâncias. • E os computadores, primeiramente, para efetuar cálculos e, posteriormente, paraoutras finalidades. Todavia, cada coisa tem sua forma e seu elo, assim como os computadores têm sua arquitetura e sua organiza- ção. Quando é dito que um computador é capaz de armazenar algo, isto se refere à sua organização; por outro lado, quando é dito que um computador armazena algo, refere-se à sua arquitetura. Se o computador é capaz de armazenar, significa que ele possui algum tipo de memória para isso, ao passo que, a forma como ele armazena, vai depender do tipo de memória no qual serão guardados os dados ou informações. Síntese da unidade Como você viu, o esforço por novas tecnologias, menores, mais econômicas e simples fez com que o desen- volvimento tecnológico computacional obtivesse proporções desconhecidas a cada década. O tamanho de um arquivo comum, na década de 1960, era de alguns bytes; hoje, um arquivo de tamanho padrão tem pelo menos 100 kilobyte (ou Kbyte), cerca de 100 mil vezes maior. Da mesma forma que o tamanho de um arquivo mudou, o desempenho computacional, assim como seu tamanho físico, mudou. É possível dizer que um dispositivo smar- tphone (com processador 1.6GHz octacore) é cerca de 12 bilhões de vezes mais rápido que um ENIAC, ao passo que o tamanho do smartphone é cerca de 420 vezes menor (o ENIAC ocupava cerca de 50 metros quadrados, enquanto um smartphone tem cerca de 12 centímetros quadrados). Assim, compreender a evolução tecnológica e seus níveis nos permite estar aptos a desenvolver soluções capazes de atender as necessidades do dia a dia. 25 Considerações finais Ao estudar, pesquisar e desenvolver a arquitetura de computadores, foi possível estabelecer novos limites para a tecnologia; contudo, isso con- tinua e, portanto, os computadores se tornarão mais rápidos, menores e com maior capacidade de armazenamento. Assim, cada vez mais teremos facilidades e comodidades, já que se desenvolve tecnologia em prol do ser humano. No entanto, a arquitetura, por si só, não é suficiente para compor todos esses benefícios, sendo também necessário se organizar para que se alcance isso; logo, estudar a organização dos computadores é fundamental para compreender como os dispositivos computacionais se correlacionam. 26 2Unidade 22. Organização de Computadores Para iniciar seus estudos Nesta unidade, você estudará a formação dos computadores para compreender como os dispositivos eletrônicos computacionais, como processador, memória principal, memória secundária, barramentos e placa-mãe, são conectados para formar um computador. Objetivos de Aprendizagem • Reunir e compor as informações sobre arquitetura de computadores. • Descrever os conceitos sobre organização de computadores. • Identificar as características e diferenças entre os componentes que formam um computador. • Identificar e diferenciar os computadores. • Escolher os dispositivos adequados para organizar um computador. 27 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Introdução da unidade Organização de computadores é a forma que descreve como os componentes internos de um computador estão ligados uns aos outros. Ao estudar esta unidade, você será capaz de identificar, classificar e diferenciar cada um desses componentes e, assim, iniciar sua carreira em um ambiente de trabalho onde os profissionais efetuem a manutenção, montagem e configuração de um computador. Um profissional da área de tecnologia da informação, comumente, inicia sua carreira como técnico de microin- formática ou programador. Para ambas as profissões, é necessário sabedoria sobre os dispositivos que compõem o computador, ora para programar sistemas, ora para montar um computador adequado para um tipo de sistema ou ainda para efetuar manutenção no hardware do computador. Então, estudar a organização de computadores é importante para ampliar seu conhecimento e desenvolver você como profissional. 2.1 Organização de computadores O computador é definido de acordo com suas características, mais especificamente como uma máquina calcu- ladora que executa operações complexas rapidamente. Até a década de 1990, para classificar um computador, usava-se a quantidade de instruções por segundo (instructions per second – IPS) ou operações em ponto flutuante por segundo (floating-point operations per second – FLOPS) que a máquina era capaz de executar. Dessa forma, nessa época, os computadores eram classificados como: 1. Supercomputadores. 2. Mainframes. 3. Minicomputadores. 4. Computadores. 5. Microcomputadores. A partir da década de 2000, com o surgimento de novas tecnologias e dispositivos, houve uma reclassificação, bem como a inserção de outros termos, ocasionando a seguinte classificação: 1. Supercomputadores. 2. Mainframes. 3. Máquinas RISC (minicomputadores). 4. Servidores. 5. Computadores pessoais (PC). 6. Notebooks. 7. Netbooks e ultrabooks. 8. Dispositivos de mão ou dispositivos pessoais, como: smartphones, handhelds, palm, agenda eletrônica, lei- tores eletrônicos, calculadoras e calculadoras científicas. 28 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Obs.: no topo, estão os computadores mais rápidos e, mais abaixo, os dispositivos mais lentos. Além dessa classificação, outra pode ser feita em relação ao tipo de processamento. Assim, existem: • Computadores analógicos: são computadores que processam sinal elétrico a partir de uma programação integrada ao circuito. • Computadores digitais: são computadores que utilizam a codificação binária ou sistema binário inte- grado à programação do circuito. • Computadores híbridos: reúnem ambas as tecnologias – analógica e digital –, utilizando um conversor analógico/digital como um modem – modulador/demodulador. Para Tanenbaum (2013), “um computador digital é uma máquina capaz de solucionar problemas através da execução de instruções que lhe são fornecidas”. Essas informações armazenadas em memória são programas cujas instruções são lidas e executadas pelo processador e, ao final da execução, a saída é direcionada de volta à memória ou para outro dispositivo. A seguir, será apresentado em detalhes como tudo isso funciona por meio do estudo da parte física (hardware) e da parte lógica (software). 2.1.1 Linguagem de programação Um processador só compreende dois níveis de tensão elétrica, que são representados em forma binária. Assim, para que o computador execute instruções (nesse nível), os programas devem ser formados a partir de um con- junto de situações que determinam o nível de tensão elétrica; dessa forma, programar uma sequência adequada e funcional é complexo e demorado. A programação nesse nível de máquina é feita em linguagem de máquina. Para facilitar a forma de programação, foram instituídos outros níveis de máquina para facilitar a programação e a integração entre os recursos lógicos e recursos físicos. Para isso, são definidos conjuntos de instruções que se aplicam diretamente ao hardware para criar uma ponte entre o nível lógico e o processador; essa ponte institui duas técnicas de programação, chamadas de tradutora e interpretadora (FIGURAS 12 e 13). Na técnica tradutora, o programador escreve instruções que serão traduzidas em linguagem de máquina para, então, serem executadas (FIGURA 12). Figura 12 – Mecanismo de tradução Programa escrito em uma linguagem mais próxima do homem. Tradutor ou conversor Programa escrito em linguagem de máquina. Programa executável. Fonte: Adaptada de MONTEIRO, 1999. Na técnica de interpretação, o código escrito depende de uma ferramenta que interpreta esse código e o passa para o nível de microcódigo (microprogramação), que o interpreta em linguagem de máquina para ser proces- sado (FIGURA 13). 29 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Figura 13 – Mecanismo de interpretação Programa escrito em uma linguagem mais próxima do homem. Interpretador Programa escrito em linguagem de máquina. Processador Fonte: Adaptada de MONTEIRO, 1999. Quando a programação é maispróxima ao nível de máquina, ela é mais complexa e, portanto, mais difícil, deta- lhada e mais sensível a problemas. Para executar uma operação de divisão, por exemplo, deve-se criar um programa que execute sucessivas somas com complementos de 1 e 2, uma vez que, no nível de máquina, não existe a forma negativa ou a divisão. Assim, ao adicionar outros níveis ao nível de máquina, pode-se escrever programas que serão traduzidos e interpretados em nível lógico para, então, passar para níveis inferiores até chegar ao nível de tradução e/ou interpretação do nível de hardware. Para esse contexto, um mecanismo híbrido (FIGURA 14) é necessário. Figura 14 – Mecanismo de híbrido Pascal Compilador Programa em mnemônico Interpretador Linguagem binária Fonte: Elaborada pelo autor. A partir da instituição de múltiplos níveis, o programador vê cada um desses níveis de forma independente do hardware original; assim, esses níveis, juntos, formam a máquina multinível, também conhecida como máquina virtual. Para cada um desses níveis, há uma forma de programação e uma linguagem para tal. 2.1.2 Nível de lógica digital O nível de lógica digital é formado por minúsculos circuitos eletrônicos conhecidos como transistores, que executam funções a partir da eletricidade. Para representá-los graficamente, são utilizadas portas lógicas em um esquema chamado de circuito lógico (FIGURA 15). Essas portas lógicas usam como base a álgebra booleana, na qual duas entradas possuem uma saída lógica, com quatro possibilidades de resultado, de acordo com a operação executada. Figura 15 – Exemplo de circuito de soma Fonte: Adaptada de TANENBAUM, 2013. 30 Arquitetura de Computadores | Unidade 2 - Organização de Computadores O circuito apresentado na Figura 15 representa a operação matemática de soma de dois números. 2.1.3 Nível de microprogramação O nível de microprogramação é definido pelos fabricantes de processadores (Intel, Motorola, AMD, etc.) inte- grando microcódigos ao chip. Essa integração corresponde à combinação de um ou mais interpretadores de instrução dos níveis superiores para o nível inferior de lógica digital. Este nível define a diferença entre um processador de arquitetura CISC ao processador de arquitetura RISC. Gra- ças a esse nível, programas dos níveis superiores são menos complexos e, portanto, menores. Ao comparar um sistema operacional Microsoft Windows XP em uma plataforma Intel a um Apple IOS correspondente em uma plataforma PowerPC da IBM, percebe-se que o primeiro ocupará cerca de 200 MB em sua instalação-padrão, enquanto o segundo exigirá mais de 1 GB em sua instalação-padrão; o primeiro sistema operacional é baseado na arquitetura CISC, e o segundo, na arquitetura RISC. 2.1.4 Nível da máquina convencional Esse nível também é determinado pelos fabricantes de processadores (IBM, Motorola, Toshiba, Mitsubishi, Trans- meta, etc.). Os fabricantes determinam como o interpretador desse nível atuará em relação aos níveis superiores e ao nível de lógica digital; assim, os programas escritos em linguagens de nível superior podem ser executa- dos diretamente no nível de lógica digital sem terem que passar pelo nível de microprogramação. Essas fun- ções estabelecidas são a forma como o montador (Assembler) traduzirá o código Assembly para a linguagem de máquina, ou seja, o fabricante determina como as instruções de nível superior serão “assembladas” para o nível de máquina. O Quadro 2 demonstra um conjunto de instruções Assembly específico para cada fabricante. Neste exemplo de Assembly, o conteúdo do registrador D1 será movido para a posição 2F00 da memória principal. Quadro 2 – Instrução em Assembler para processadores diferentes Instrução Assembler Processador MOVE D1,$2F00 MC 68000 – Motorola MOV #2F00,D MCS 8080 – Intel LD HL 2F00H LD D,(HL) Z80 – Zilog Fonte: Adaptado de STALLINGS, 2005. Muito do segredo de um processador está em sua composição de circuito, assim como na forma como os dados são traduzidos nesse nível para o nível de máquina. Assim, cada fabricante aumenta as diferenças dos proces- sadores modificando não só o nível de lógica digital, mas também o nível de microprogramação e o nível de máquina convencional. Cabe lembrar que todo dispositivo eletrônico (calculadora, celular, agenda eletrônica) e até dispositivos domésticos, como TV, geladeira, micro-ondas, entre outros, possuem chipset, comumente conhecido como processador. 31 Arquitetura de Computadores | Unidade 2 - Organização de Computadores 2.1.5 Nível de sistema operacional O nível de sistema operacional é o mais complexo para a programação. Nele, são tradadas formas de acesso ao hardware, como acesso e gerenciamento das memórias; solicitações ao processador (IRQ); e controle sobre alguns dispositivos, como mouse (controlado por software), teclado e acesso a todos os dispositivos de hardware através de drivers ou módulos de kernel. Neste nível, a programação é determinante, pois, se um sistema operacional é proposto para uma arquitetura, ele não funciona em outra arquitetura, seja em tamanho de palavra, seja em estrutura de processador. Assim, se um sistema é de 64 bits (tamanho de palavra), ele não funciona numa arquitetura de 32 bits ou, se o sistema é de 32 bits, ele não funciona em 64 bits, exceto quando o processador é híbrido (32/64 bits); além disso, se o sistema é baseado em arquitetura x86 (IBM-PC – FIGURA 16), ele não funciona em Mac (da empresa Apple), nem em SPARC (empresa Sun) ou quaisquer outras diferentes de x86. Figura 16 – IBM PC Fonte: SHUTTERSTOCK, 2018. 2.1.6 Nível de linguagem de montagem Neste nível, os programas utilizam montadores e são programados através de uma estrutura de mnemônicos. Assim, é possível fornecer uma plataforma-padrão para os demais níveis. Além disso, através desse nível é possível escrever códigos capazes de interagir diretamente com o hardware, pulando o nível de sistema operacional. 32 Arquitetura de Computadores | Unidade 2 - Organização de Computadores 2.1.7 Nível de linguagem orientada para problemas Este nível (Nível 5) é conhecido como nível de linguagem de alto nível ou, também, como nível de linguagem orientada para problemas. Este nível contém as aplicações de usuário, como: navegadores de internet, que são interpretadores de código de hipertexto; interpretadores de comando, nos quais se usa a própria linha de comando, assim como se pode utilizar shell script; e contém também as linguagens de programação voltadas à criação de sistemas e aplicações. Como exemplo de linguagem de programação, citam-se: C, C++, C#, Java, Zope, PHP, ABAP, Fortran, COBOL, entre outras. Essas linguagens de programação podem ter a estrutura interpretada ou traduzida. As linguagens de programação seguem uma técnica de desenvolvimento estruturada, ora orientada a procedi- mentos (também conhecida como programação procedural), ora orientada a objetos. As linguagens interpretadas dependem de uma ferramenta que interprete o código para que seja exibida a fun- cionalidade do programa ou sistema para o usuário. O interpretador está em código de máquina e foi desenvol- vido numa linguagem traduzida. As linguagens traduzidas dependem de uma ferramenta tradutora ou de um compilador para transformar o código escrito em linguagem de máquina. Apesar de algumas linguagens de programação – como linguagem C e lingua- gem C++ – permitirem uma estrutura de codificação que faça acesso direto ao hardware, a maioria das linguagens necessita do nível de sistema operacional para que o código seja enviado para processamento, uma vez que o sis- tema operacional é que faz o gerenciamento de hardware. Quando o código escrito passa pelo tradutor, ou seja, quando é compilado o programa em si, denomina-se programa executável ou, simplesmente, executável. 2.2 Componentes de um computador Para ter um computador, é necessário juntar componentes eletrônicos compatíveis. Cada componente possui função específica ou diversas funções. Dentre os componentesque formam um computador, estão: • Placa-mãe. • Processador. • Memória principal. • Memória secundária. • Barramentos. 2.2.1 Placa-mãe Placa-mãe (FIGURA 17) é o elemento principal de um computador, pois nela são acoplados todos os dispositivos. Ela é responsável por interligar os componentes através de seus barramentos, levando energia aos dispositivos e permitindo o tráfego de dados. Além disso, a placa-mãe possui controladores centrais: algumas possuem ape- nas um, chamado de chipset northbridge ou ponte norte; outras possuem dois, ou seja, além da ponte norte, há a ponte sul. Quando os dois chipsets coexistem na mesma placa, a ponte norte tem a função de controlar o tráfego 33 Arquitetura de Computadores | Unidade 2 - Organização de Computadores do processador, da memória principal, do controlador IDE (integrated drive eletronics) e do SATA (serial advanced tecnologie attachement), como também dos controladores seriais, como teclado e mouse; já a ponte sul fica res- ponsável pelos barramentos extensores, como PCI, PCI-Express e dispositivos chamados de on-board. A ideia das placas-mãe on-board é integrar componentes de forma a diminuir o custo e, além disso, facilitar a aquisição de um computador, uma vez que a placa possui interface de vídeo, interface de rede, interface de som e interface fax-modem. Figura 17 – Placa-mãe (motherboard) Fonte: SHUTTERSTOCK, 2018. Interface de vídeo: interface de vídeo ou placa de vídeo é a interface que processa os dados para serem exibidos em um dispositivo de saída, conhecido como monitor. Interface de rede: interface de rede ou placa de rede é o dispositivo que permite a comuni- cação do computador com um ambiente externo. Numa empresa, essa interface é normal- mente usada para uma conexão em uma rede local (LAN); já numa residência, normalmente é usada para uma conexão em um dispositivo de banda larga para acesso à internet. Interface de som: a placa de som é usada para processar áudio, seja para um microfone ou para um alto-falante. Interface de fax-modem: essa placa foi muito utilizada nas décadas anteriores a 2010, uma vez que o acesso às redes externas, sejam privadas ou públicas (internet), era feito através desse dispositivo. No Brasil, essa tecnologia, a partir do ano 2000, foi aos poucos substituída pelos modems de banda larga. 34 Arquitetura de Computadores | Unidade 2 - Organização de Computadores As interfaces de fax-modem permitiam velocidades de até 64 kbps (kilobits por segundo) ou 64.000 bits por segundo. Essa velocidade podia ser atingida porque um canal de voz (linha de telefonia) somente suportava esse desempenho. Além disso, a velocidade de até 64 kbps é chamada de banda estreita, e velocidades superiores a 65 kbps são chamadas de banda larga. Bit é a menor unidade de dado que um computador reconhece. • 1 Kb ou kilobit é o mesmo que 1.000 bits. • 1 Mb ou megabit é o mesmo que 1.000.000 bits. • 2 Gb ou gigabit é o mesmo que 1.000.000.000 bits. Além disso, 1 byte é o mesmo que 8 bits. 2.2.2 Processador O processador desempenha papel crucial no funcionamento do sistema de computação, pois é o responsável pela atividade-fim do sistema, isto é, computar, calcular e processar. O processador – também conhecido como UCP (unidade central de processamento) ou, mais comumente, CPU (central processing unit) (FIGURAS 18, 19 e 20) – também é dito como o cérebro do computador, porque tudo que necessita de um resultado passa por ele para ser executado, calculado ou, ainda, processado. Figura 18 – Visão superior e inferior da CPU Fonte: SHUTTERSTOCK, 2018. 35 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Figura 19 – CPU e o socket de encaixe Fonte: SHUTTERSTOCK, 2018. Figura 20 – CPU encaixada no socket (destravado) Fonte: SHUTTERSTOCK, 2018. Esses cérebros são fabricados de modo que, em um único invólucro (pastilha ou chip), sejam inseridos diversos transistores (FIGURA 21). Para se ter uma ideia da tecnologia atual, na década de 1970 os microprocessadores possuíam pouco mais de 2.000 transistores; na década de 1980, atingiram cerca de 100.000 transistores; na década de 1990, a quantidade chega próximo de 1 milhão de transistores; após 2010, os processadores passam dos 5 milhões de transistores. 36 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Figura 21 – Micrografia de um processador (CPU vista por dentro) Fonte: SHUTTERSTOCK, 2018. Além dos transistores, diversos dispositivos, como registradores e memória cache, são inseridos para que o pro- cessador realize suas funções. Dentre as funções de um processador, destacam-se: • Executar programas armazenados na memória principal. • Buscar instruções na memória principal. • Emitir sinais de controle para os demais componentes do computador para que realizem alguma tarefa. • Interpretar que tipo de operação executará (soma de dois valores, subtração de dois valores e assim por diante); contudo, antes de executar operação, é necessário que os dados estejam armazenados em seus registradores. 2.2.3 Memória principal Memórias são dispositivos de armazenamento de dados que se classificam como voláteis e não voláteis. Memó- rias voláteis são componentes eletrônicos que mantêm dados armazenados enquanto há fornecimento de ener- gia; uma vez que não há energia, a memória é apagada. Já as memórias não voláteis são memórias de armazena- mento de longa duração, ou seja, que não são apagadas quando não há energia. Além dessa classificação, as memórias são divididas nos seguintes tipos: • Registradores: memórias voláteis de alto desempenho e baixa capacidade usadas apenas em proces- sadores e outros tipos de chip. A capacidade de armazenamento é de alguns kilobytes, e os tipos mais comuns têm por volta de 8 KB. A velocidade de um registrador é de 1 ns (nanossegundo); entretanto, há registradores que podem ter outras velocidades, como 2 ou 3 ns. 37 Arquitetura de Computadores | Unidade 2 - Organização de Computadores • Cache: memória volátil de alto desempenho, mas inferior aos registradores quanto ao desempenho e superiores às memórias principais. É conhecido pelos nomes L1, L2 e L3 (L = layer ou camada), sendo encontrado, normalmente, em processadores, impressoras, storages e hard disks (HD) ou outro disposi- tivo que necessita de uma memória rápida, mas que a capacidade de armazenamento não seja elevada. As capacidades variam entre 32 KB e 5 MB, mas é possível encontrar maiores que 5 MB. A velocidade depende se está mais próxima ao núcleo, como os L1; assim, pode ter velocidade entre 3 e 5 ns. • Memória principal: as memórias principais (FIGURA 22), também conhecidas como RAM (random access memory ou memória de acesso aleatório), são memórias que armazenam dados e programas durante o funcionamento do computador. O processador as tem como memórias auxiliares e efetua processos de leitura e escrita nelas. Possuem desempenho elevado (entre 5 ns e 10 ns) e sua capacidade de armaze- namento varia entre 1 MB (década de 1990) e 32 GB (década de 2010). Obviamente, com a necessidade de desempenho e capacidade, além da evolução, esses números tendem a subir, especialmente com a computação 3D e a inteligência artificial. Também são memórias voláteis. Figura 22 – Memória principal (RAM) Fonte: SHUTTERSTOCK, 2018. • Memória eletrônica (FIGURA 23): refere-se a uma memória não volátil e possui a mesma velocidade das memórias principais; entretanto, seu desempenho não se iguala ao das memórias principais pelo fato de depender de outro tipo de controlador de acesso, fazendo com que o desempenho caia drasticamente. Comparativamente, uma memória principal transfere dados pelo barramento a uma taxa de 10 GBps, enquanto as memórias eletrônicas chegam a cerca de 1 GBps. Seu armazenamento é equiparado ao das memórias secundárias, podendo chegar a 4 TB (terabytes) (década de 2010). São exemplos de dispositivos com memória eletrônica: SSD (solid-state drive), SD (secure digital card) oucartão SD, cartão mini SD, cartão micro SD, cartão nano SD e memory stick. Foi desenvolvida pela IBM no final da década de 1990 e tinha a capacidade inicial de 1 MB. 38 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Figura 23 – Memórias eletrônicas Fonte: SHUTTERSTOCK, 2018. • Memória secundária: trata-se de uma memória não volátil de alta capacidade, mas com baixo desem- penho – em média, 300 MBps num HD. É usada para armazenar grande quantidade de dados e, tam- bém, o sistema operacional de um computador. Durante a inicialização do computador, conhecido como bootstrapping ou apenas boot (processo de boot), ela retira os dados do HD e os envia à memória principal. Dentre os tipos, temos os ópticos, mecânicos e magnéticos, conhecidos como: HD (hard disk) (FIGURA 24), CD-ROM (FIGURA 25), DVD-ROM (FIGURA 25), blu-ray, fita DAT, fita LTO, disquete (disket), fita K7, zip drive e jaz drive. Figura 24 – Hard disk (HD) Fonte: SHUTTERSTOCK, 2018. 39 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Figura 25 – Compact disk (CD-ROM) e DVD-ROM Fonte: SHUTTERSTOCK, 2018. 2.2.4 Barramentos Barramentos são os canais de comunicação entre o CPU e os demais dispositivos da placa-mãe. O barramento local ou interno é de suma importância, pois sua responsabilidade é estabelecer a comunicação entre a memória cache, o chipset de controle (ponte norte e/ou ponte sul), a memória RAM e o processador. No processador, há três tipos de barramento que se seguem por toda a placa-mãe. São eles: • Barramento de dados – geralmente, esse barramento apresenta 64 bits e, devido ao fato de poder tanto transmitir quanto receber dados, é conhecido como um barramento bidirecional. • Barramento de endereços – utilizado para que o CPU defina uma interface a ser utilizada para recepção ou transmissão de dados. Esse barramento pode também endereçar memória física, com 32 bits (4 GB de memória) ou 36 bits (64 GB de memória). • Barramento de controle – tem a função de manter a continuidade da operação do processador e moni- torar o tráfego presente no barramento de dados. Além desses barramentos para uso de processamento e comunicação com todos os dispositivos acoplados à pla- ca-mãe, há outros tipos que são chamados de barramentos extensores, cuja finalidade é permitir o acoplamento de outros recursos ao computador. São eles: • ISA – arquitetura padrão da indústria (industry standard architecture): tem bus de 8/16 bits e frequência de 8 MHz, com taxas de transferência de 8 e 16 MB/s respectivamente. Esse barramento foi descontinuado na década de 2000. • AMR – audio modem rises: utilizado para modems e placas de som, com mesmo desempenho de placas onboard. • CNR – communications and networking: utilizado para modems, placas de som e de rede, com mesmo desempenho de placas onboard. 40 Arquitetura de Computadores | Unidade 2 - Organização de Computadores • RAID port – controladoras raid, com HDDs SCSI conectados à placa-mãe. • PCI – interconexão de componentes e periféricos (peripheral component interconnect): tem barramento de 32/64 bits e frequências de 33/66 MHz, com taxas de transferência de 132 e 528 MB/s respectivamente. Foi o primeiro barramento PnP (plug and play) a ser lançado e pode ter a propriedade hot plug (conexão de dispositivos sem a necessidade de desligamento do equipamento). • AGP – porta gráfica acelerada (acelerated graphics port): tem bus de 32/64 bits e frequência de 66 MHz, com taxas de transferência de 264 e 528 MB/s para o modo 1x e 2x respectivamente. • PCI-Express – é um barramento de 64 bits, com cinco tipos diferentes de placa. Placas com menos vias (1x) possuem menor desempenho, enquanto placas com mais vias (32x) possuem maior desempenho. O desempenho de uma placa 32x pode chegar à taxa de transferência de 8 GBytes por segundo (8 GBps). Velocidade é representada em bits por segundo ou bps. Desempenho é representado em bytes por segundo ou Bps. Fique atento às nomenclaturas, pois elas causam confusão – um link de internet é vendido ou alugado com velocidade, ou seja, bps; já uma placa-mãe possui um FSB (front side bus), que é medido em Bps por se tratar de taxa de transferência. Tanto o barramento AGP quanto o barramento PCI, a partir da década de 2010, foram substituídos pelo PCI-Express. 2.2.5 Interfaces Interfaces são dispositivos que permitem seu acoplamento ao computador para que este seja manuseado. Além disso, proporciona acesso a dispositivos de memória externa ao computador e acoplamento de dispositivos de saída. Exemplos: • Interface serial – conhecida como “COM 1, 2, 3, 4”, faz comunicação bit a bit com um dispositivo serial, como mouse ou teclado. • Interface USB (universal serial bus) – interface serial mais prática e rápida que a anterior, pois pode conec- tar até 127 dispositivos, tendo ainda a característica hot swap (troca do periférico sem o desligamento do equipamento). • Interface paralela – conhecida como “LPT 1, 2, 3”, faz comunicação byte a byte com a impressora, enviando as informações para um buffer (memória temporária) ou um spool (fila de impressão). Para que o computador se comunique com a impressora ou outro dispositivo paralelo, algumas características da interface paralela são importantes para determinar qual tipo de dispositivo paralelo pode ser usado. 41 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Suas características são: SPP – standard parallel port � modo de operação-padrão e com taxa de transferência máxima de 150 Kb/s. Os periféricos antigos trabalham neste modo. EPP – enhanced parallel port � bidirecional, envia 32 bits (divididos em 4 bytes) para o dispositivo em questão. Teoricamente, pode ter taxa de transferência de 2 MB/s (utilizando cabo blindado), mas, na prática, sua taxa é de 800 KB/s. ECP – extended capabilities port � conecta-se ao dispositivo para definir a taxa de transferência; se o periférico não usa o modo ECP, faz com que o modo EPP assuma. Além disso, pode trabalhar com DMA (acesso direto à memó- ria), deixando o processador livre para outras operações. 2.2.6 Acesso à memória e ao processador Para que um programa ou um hardware use o processador, é necessário solicitar ao processador um tempo de processamento; dessa forma, para que o processador pare de fazer uma atividade e execute outra atividade, foram criados os “pedidos de interrupção” ou IRQ (interrupt request). Cada dispositivo é classificado, sendo atri- buída uma IRQ através da BIOS (basic input output system). No total, existem 16 IRQs (QUADRO 3) especificadas na BIOS; entretanto, alguns recursos dos sistemas operacionais também necessitam de IRQ. Sendo assim, o próprio sistema operacional cria IRQ virtuais através da camada de abstração de hardware (HAL – hardware abstract layer) para atender a demanda. Ao gerar o pedido de interrupção, o processador observa a prioridade da IRQ. Outro tipo de acesso ao processador, anterior ao DMA, é o modo PIO (programed input/output), que se refere a um método de acesso à memória que necessita do processador para executar tal função. Esse método cria um tempo de espera maior para que determinado recurso chegue à memória; assim, outro método de acesso foi criado para acessar as memórias: o DMA O DMA (direct access memory) é um método que faz com que os dispositivos com essa tecnologia acesse direta- mente a memória sem depender do processador; dessa forma, o tempo do processador é economizado, assim como o tempo que os recursos levam para chegar às memórias. Quadro 3 – IRQs Número IRQ Descrição 0 Temporizador presente na placa-mãe (conectado ao chipset) 1 Teclado (conectado ao chipset) 2 Ponte de conexão para extensão do grupo de IRQ (IRQ 8 até 15) 3 Portas seriais COM2 e COM4 4 Portas seriais COM1 e COM3 5 Livre (para conexão de uma placa no barramento de extensão) 6 Floppy disk 7 Porta paralela (LPT1) 8 CMOS (relógio de tempo real (conectada ao chipset) 9 Livre (para conexãode uma placa no barramento de extensão) 10 Placa de vídeo (onboard) ou livre (para o barramento de extensão) 11 Livre (para conexão de uma placa no barramento de extensão) 42 Arquitetura de Computadores | Unidade 2 - Organização de Computadores Número IRQ Descrição 12 Bus mouse ou mouse PS/2 13 Coprocessador matemático (conectado ao chipset) 14 IDE primária 15 IDE secundária Fonte: Elaborado pelo autor. Em um sistema de tempo compartilhado (time-sharing), interrupções e métodos de acesso à memória são neces- sários para que todos os programas, numa estrutura multitarefa, possam ser executados ao mesmo tempo. Isso, porém, não significa que sejam processados ao mesmo tempo, uma vez que a estrutura do tempo compartilhado é diferente de uma arquitetura paralela. Através das IRQ e DMA, os dispositivos do computador, assim como os programas, usam o processador; assim, não causam paradas indesejadas no sistema. Síntese da unidade Nesta unidade, você estudou os dispositivos que compõem um computador, as tecnologias e o desenvolvimento tecnológico computacional. Além disso, viu os níveis de programação, que são muito importantes, uma vez que, sozinho, o equipamento não faz nada; por isso, é necessário programá-lo, existindo, para essa finalidade, níveis diferentes, um mais próximo à eletrônica, outro mais próximo ao ser humano. Você também conheceu a quantidade de componentes necessários para organizar um computador e a função de cada componente. Assim, estudar a organização de computadores permite a você compreender a complexidade de um computador para usá-lo da melhor maneira possível. Além disso, nos faz crer na importância e na dependência humana por dispositivos eletrônicos. 43 Ao estudar, pesquisar e desenvolver a organização de computadores, foi possível estabelecer novos limites para o conhecimento sobre computa- ção, computador e programação; todavia, a tecnologia não para de evo- luir, tornando-se necessário acompanhar essa evolução. Cada vez mais, os computadores tornam-se mais complexos, menores e mais rápidos; assim, para que acompanhe essa evolução, é necessário permitir acesso ao conhecimento, como também estudar outras ques- tões que vão além do que se pode ver. Considerações finais 44 3Unidade 33. Sistemas de Numeração Para iniciar seus estudos Nesta unidade, você estudará o formato numérico binário utilizado pelos computadores, a conversão entre o sistema formal (decimal) e o sistema binário, e os métodos de cálculo do sistema binário (soma, subtração, divisão e multiplicação). Um computador realiza apenas operações de adição e soma; então, como ele calcula subtrações, divisões e multiplicações? Mergulhe nesta unidade e veja como funciona. Isso, inclusive, poderá mudar a forma como são vistas essas mesmas operações matemáticas no sistema decimal. Objetivos de Aprendizagem • Sintetizar a arquitetura de computadores. • Compreender e descrever os conceitos sobre organização de computadores. • Detalhar as características e diferenças entre os componentes que formam um computador. • Identificar e diferenciar os computadores. • Descrever os dispositivos adequados para organizar um computador. 45 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração Introdução da unidade Desde os primórdios da raça humana, o homem necessita, entre outras coisas, de saber quantidades e como representar essas quantidades. Uma das primeiras coisas que se aprende quando nasce são os números. Através dos tempos, diversos sistemas numéricos surgiram – grego, árabe, japonês, chinês, entre outros –; contudo, foi o sistema decimal árabe que prevaleceu. Posteriormente, no século XVII, um novo sistema foi utilizado, como viste em unidade anterior, por Leibniz. A partir de então, o sistema binário passou a ser usado timidamente, mas, no século XX, encontrou seu propósito: a utilização em sistemas eletrônicos. É verdade que muitos computadores foram baseados em outros sistemas, como o Colossus, que era baseado no sistema decimal. Também, a partir dos sistemas, outros surgiram para ten- tar melhorar ou simplificar os computadores, como o sistema octal e o sistema hexadecimal. A ideia do sistema octal era facilitar a programação em nível de máquina; contudo, o sistema binário é mais sim- ples para ser obtido em um computador. Já o sistema hexadecimal é muito utilizado em memórias. Como se vê, um profissional de TI (Tecnologia da Informação) deve compreender o sistema numérico que o com- putador utiliza a fim de que seu papel seja desempenhado com eficácia. 3.1 Sistemas de numeração O homem, através dos tempos, sentiu a necessidade da utilização de sistemas numéricos. Existem vários siste- mas numéricos, dentre os quais se destacam os sistemas decimal, binário, octal e hexadecimal. Com exceção do sistema decimal, os outros são utilizados nas áreas de circuito digital, automação e ambiente computacional. 3.1.1 Sistema binário O sistema numérico binário possui dois símbolos para representá-lo, 0 (zero) e 1 (um), também conhecidos como estados de representação. Para compreender esse sistema numérico, usaremos o número decimal 594 (quinhentos e noventa e quatro), que também pode ser chamado de número 594 na base 10, e sua notação é feita da seguinte forma: 59410. Assim, temos: 5 x 100 + 9 x 10 + 4 x 1 5 x 102 + 9 x 101+4x100 = 594 10 Dessa forma, o sistema binário segue o mesmo padrão dos seus expoentes, tendo como base o número 2. Assim: 218 217 216 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 Mais significativo Menos significativo 46 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração Números mais à esquerda são denominados mais significativos; os da direita, menos signi- ficativos. Isso ocorre de acordo com o número em si; portanto, os números mais à esquerda têm mais valor do que os mais à direita. Fique atento! Apesar de origens diferentes, é possível converter números decimais em binários ou binários em decimais. Há duas maneiras para converter um número decimal em binário. Utilizaremos como exemplo o número: 5 → 510 = 1012. a. Método da divisão pela base – para converter o número decimal em binário por meio deste método, divida-o por dois; assim, obtém-se o resultado da conversão resgatando os valores de resto e o quociente: 5 1 1 2 2 2 0 Assim, tem-se o resultado: 1012. b. Utilizando a exponenciação da base dois – neste método, tem-se o resultado somando cada uma das potenciações: 24 0 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 0 x 16 + 0 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 0 + 0 + 4 + 0 + 1 = 5 23 22 21 20 Assim, o resultado é: 510. Então, para executar a conversão de um número binário para um número decimal, faz-se o arranjo conforme a sequência: 47 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração 20 - 1 21 - 2 22 - 4 23 - 8 24 - 16 25 - 32 26 - 64 27 - 128 28 - 256 29 - 512 210 - 1.024 (1.024 = 1 kilobyte) 211 - 2.048 212 - 4.096 213 - 8.192 214 - 16.384 215 - 32.768 216 - 65.536 217 - 131.072 218 - 262.144 219 - 524.288 219 - 1.048.576 (1.048.576 = 1 megabyte = 1.024 kilobytes) E assim por diante. 3.1.2 Sistema numérico octal O sistema numérico octal deriva do sistema binário; entretanto, sua base possui maior quantidade de números. O nome octal vem da quantidade oito; sendo assim, esse sistema é representado por oito símbolos: 0, 1, 2, 3, 4, 5, 6 e 7. Veja a Tabela 1 a seguir: 48 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração Tabela 1 – Sistema numérico octal Decimal Octal 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 10 9 11 10 12 11 13 12 14 … ... Fonte: Elaborada pelo autor. Note na tabela que, a partir do número 7, a sequência é reiniciada. Para converter o número octal em decimal, o método utilizado é similar ao método de conversão binária, substi- tuindo apenas a base 2 pela base 8. Assim: 1448para decimal 82 81 80 1 4 4 1 x 82 + 4 x 81 + 4 x 80 = 1 x 64 + 4 x 8 + 4 x 1= 64 + 32 + 4 = 10010 Portanto, o resultado é: 10010. Assim como para a conversão de números octais para decimais é utilizado o método de conversão binária para decimal trocando a base, o mesmo ocorre quando se executa a conversão decimal para octal: 49 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração 100 8 84 4 1 12 20 Logo, o resultado é: 1448. Como dito, o número octal é derivado do binário; portanto, é possível efetuar conversão direta da base 2 para base 8, assim como da base 8 para a base 2. Veja o exemplo: 34 8 3 4 11 100 0111002 O sistema octal é obtido a partir da combinação de três números binários, ou seja, um número octal é composto por três bits. Dessa forma, para converter o número octal em binário, calcula-se cada um dos números separada- mente e, por fim, junta-se o número binário na mesma sequência em que estavam os símbolos octais. Da mesma forma, pode-se converter o número binário em octal: ------110010 110 010 6 2 62 2 8 3.1.3 Sistema numérico hexadecimal O sistema numérico hexadecimal também é uma derivação do sistema binário. Ele foi criado para satisfazer maior representatividade com menor quantidade de símbolos. Esse sistema possui dezesseis representações: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Tabela 2 – Sistema numérico hexadecimal DECIMAL HEXADECIMAL 0 0 1 1 2 2 3 3 50 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração DECIMAL HEXADECIMAL 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F Fonte: Elaborada pelo autor. A numeração hexadecimal utiliza apenas um caractere para representar os dezesseis números; logo, são utiliza- das letras maiúsculas do alfabeto para essa representação. Assim como o octal, a conversão do sistema hexadecimal para o sistema decimal segue a mesma metodologia: 3 F16 3 x 161 + F x 160 = 3 x 16 + F x 1 = 3 x 16 + 15 x 1 = 6310 Similarmente ao octal, a conversão do sistema hexadecimal para o sistema binário pode ser realizada, já que o número hexadecimal é representado por 4 bits. Conversão de hexadecimal para binário: C1316 C 1 3 1100 0001 0011 110000010011 2 Conversão de binário para hexadecimal: 10011000 1001 1000 9 8 9816 51 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração Conversão de decimal para hexadecimal: 1000 16 8 62 16 14 3 3 14 8 3E8 16 Como o sistema hexadecimal possui representações por letras, o número decimal 14 deve ser substituído pela letra “E”. 3.2 Operações com números binários A matemática com números binários é similar à matemática com números decimais; entretanto, o sistema biná- rio possui apenas dois símbolos, sendo estranho efetuar operações com binários. A seguir, veremos como isso ocorre. 3.2.1 Soma Regras: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (e “vai 1” para o dígito de ordem superior) Exemplo: 0110011 + 0101010 1----1--> “vai um” 0110011 0101010 + ---------- 1011101 Nota: a. Somam-se as colunas da direita para a esquerda. b. Considera-se que os dois números binários somados são positivos. c. Na linha em vermelho, estão indicados os números que vão, tal qual na conta decimal. 52 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração 3.2.2 Subtração Regras: 0 - 0 = 0 0 - 1 = 1 (“é um empresta um”) 1 - 0 = 1 1 - 1 = 0 Exemplo: 0110011 - 0101010 0110011 ---1------ 0101010 - ---------- 0001001 Nota: a. Subtraem-se as colunas da direita para a esquerda. b. Considera-se que os dois números binários subtraídos são positivos. c. Na linha em vermelho, estão indicados os números que “emprestam”, tal qual na conta decimal. Uma máquina eletrônica somente realiza processos de soma; neste caso, para interpretar as subtrações que um computador realiza, podemos utilizar o método citado acima ou o método matemático utilizado pelo computador – COMPLEMENTO DE 1 e COMPLEMENTO DE 2 –, mudando então de uma operação de subtração para uma operação de soma, des- considerando-se o bit mais significativo. Fique atento! 53 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração Complemento de 1 Regra: Primeiro, igualam-se as casas de bits dos dois números: 1110110002 (minuendo) - 110001002 (subtraendo) --------------- (resto ou diferença) Igualando-se as casas 1110110002 (minuendo) - 0110001002 (subtraendo) --------------- (resto ou diferença) Segundo, invertem-se todos os bits do subtraendo e, então, sendo o número binário: 0110001002 1001110112 o que era 1 vira 0, e o que era 0 vira 1. Assim, temos o complemento de 1. Complemento de 2 Regra: utilizando o novo subtraendo, alteração realizada pelo complemento de 1, soma-se mais um bit a ele: 1001110112 + 12 --------------- 1001111002 Portanto, o novo subtraendo é: 1001111002. A partir daqui, a operação muda de subtração para soma: 1110110002 + 1001111002 --------------- 1100010100 O bit mais significativo é o que está à esquerda ou o primeiro bit da esquerda; portanto, desconsiderando esse bit, o resultado é: 1000101002. 54 Arquitetura de Computadores | Unidade 3 - Sistemas de Numeração A multiplicação de binários é feita através de sucessivas somas. A divisão de binários, por sua vez, é realizada por sucessões de somas e complementos de 1 e de 2. Saiba mais Síntese da unidade Nesta unidade, você estudou a forma como se efetuam cálculos e também como se obtém a representação numérica computacional através da conversão dos sistemas numéricos. Além disso, compreendeu que um computador não é capaz de efetuar operações diferentes da operação de soma. Ele executa somas e complementos para se obter resultados para as demais operações matemáticas. 55 Considerações finais O sistema numérico computacional ou sistema binário foi estabelecido a fim de se aproximar da forma representativa da energia elétrica. A partir de dois estados de tensão, é possível obter o sistema binário por meio do qual o computador executa suas instruções. 56 4Unidade 44. Lógica Digital Para iniciar seus estudos Nesta unidade, você estudará o nível mais baixo ou fundamental de um computador de modo a compreender a eletrônica embarcada, a forma como ele interpreta os dados e como ele efetua os cálculos matemáticos no sistema binário. Objetivos de Aprendizagem • Reunir e compor as informações sobre arquitetura de computadores. • Descrever os conceitos sobre organização de computadores. • Identificar as características e diferenças entre os componentes que formam um computador. • Identificar e diferenciar os computadores. • Escolher os dispositivos adequados para organizar um computador. 57 Arquitetura de Computadores | Unidade 4 - Lógica Digital Introdução da unidade Lógica digital é a representação de um dispositivo eletrônico em um formato compreensível ao ser humano. Esse formato é composto por regras que definem como os dados entram, são processados e geram as respectivas saídas; para tal, deve ser definido o circuito, bem como seu tipo e sua composição. Uma estrutura lógica digital bem-definida promove a eficácia de um circuito eletrônico, que, por sua vez, possibilita a efetividade de um dis- positivo eletrônico e, consequentemente, de um computador. Assim, para se tornar um profissional que desenvolve circuitos eletrônicos, é necessário estudar como eles são formados, bem como o sistema de numeração utilizado para estabelecer circuitos adequados e funcionais. Então, estudar lógica digital é crucial para desenvolver o conhecimento a respeito dos dispositivos eletrônicos, assim como é importante para o crescimento profissional. 4.1 Lógica digital Lógica digital
Compartilhar