Baixe o app para aproveitar ainda mais
Prévia do material em texto
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Meire Higinio -fc ser educacional gente criando o futuro ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES RE HIGINIO ser educacional Presidente do Conselho de Administração Janguiê Diniz Diretor-presidente Jânyo Diniz Diretoria Executiva de Ensino Adriano Azevedo Diretoria Executiva de Serviços Corporativos Joaldo Diniz Diretoria de Ensino a Distância Enzo Moreira Autoria Meire Higinio Projeto Gráfico e Capa DP Content DADOS DO FORNECEDOR Análise de Qualidade, Edição deTexto, Design Instrucional, Edição de Arte, Diagramação, Design Gráfico e Revisão. © Ser Educacional 2019 Rua Treze de Maio, n° 254, Santo Amaro Recife-PE - CEP 50100-160 *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. Imagens de ícones/capa: © Shutterstock À 1 Boxes k r <s> ASSISTA Indicação de filmes, vídeos ou similares que trazem informações comple mentares ou aprofundadas sobre o conteúdo estudado. CITANDO Dados essenciais e pertinentes sobre a vida de uma determinada pessoa relevante para o estudo do conteúdo abordado. CONTEXTUALIZANDO Dados que retratam onde e quando aconteceu determinado fato; demons tra-se a situação histórica do assunto. CURIOSIDADE Informação que revela algo desconhecido e interessante sobre o assunto tratado. DICA Um detalhe específico da informação, um breve conselho, um alerta, uma informação privilegiada sobre o conteúdo trabalhado. I EXEMPLIFICANDO I Informação que retrata de forma objetiva determinado assunto. EXPLICANDO Explicação, elucidação sobre uma palavra ou expressão específica da área de conhecimento trabalhada. Sumário Unidade 1 - História, conceitos e principais modelos utilizados na atualidade Objetivos da unidade............................................................................................................ 12 Introdução à Organização e Arquitetura de Computadores..........................................13 Histórico da arquitetura de computadores......................................................................14 Geração zero: computadores mecânicos (1642-1945)........................................ 14 Primeira geração: válvulas (1945-1955).............................................................. 15 Segunda geração: transistores (1954-1965)........................................................18 Terceira geração: circuitos integrados (1965-1980)............................................19 Gerações posteriores: VLSI (1980-atuaI)............................................................ 19 Organização de sistemas de computadores....................................................................20 Unidade Central de Processamento.................................................................. 20 Unidade de Controle, Unidade Lógica e Aritmética, Registradores.................... 21 Memória primária, memória secundária, entrada e saída..................................22 Arquiteturas RISC e CISC, pipeline.....................................................................29 Sintetizando............................................................................................................................ 33 Referências bibliográficas..................................................................................................34 Sumário Unidade 2 - Números binários: conversões, operações, overflow, portas e álgebra booleana Objetivos da unidade 36 Representação de números binários com sinal............................................................. 37 Conversão: decimal para binário....................................................................... 38 Conversão: binário para decimal....................................................................... 38 Bit de sinal........................................................................................................ 39 Aritmética binária com operandos representados em complemento para dois..... 40 Soma................................................................................................................. 41 Subtração......................................................................................................... 42 Detecção de overflow em operações de adição e subtração em binário................ 43 Nível lógico-digital............................................................................................................... 43 Álgebra booleana..............................................................................................44 Tabelas-verdade................................................................................................44 Circuitos lógico-digitais básicos.......................................................................................45 OR (ou).............................................................................................................. 46 AND (e)..............................................................................................................46 NOT (não) ou inversão.......................................................................................47 NAND................................................................................................................ 48 NOR...................................................................................................................48 XOR...................................................................................................................49 Somador............................................................................................................50 Simulador de circuitos lógico-digitais (software) 53 Sintetizando............................................................................................................................57 Referências bibliográficas................................................................................................. 58 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Sumário Unidade 3 - Linguagens de máquina e de montagem, conjuntos de instruções e MIPS Objetivos da unidade 60 Linguagem de máquina e linguagem de montagem (assembly language) Linguagem de máquina.................................................................................... 62 Linguagem de montagem (assembly language)................................................ 63 Conjuntos de instruções...................................................................................................... 67 Representação das instruções..........................................................................67 Tipos de instruções........................................................................................... 68 Tipos de operandos........................................................................................... 69 Tipos de operações........................................................................................... 73 Registradores................................................................................................... 77 Instruções de linguagem de montagem MIPS.................................................................77 Carga................................................................................................................ 77 Aritméticas........................................................................................................77 Lógicas..............................................................................................................78 Operandos imediatos.........................................................................................78 Transferência de dados.....................................................................................79 Simulador de linguagem de montagem MIPS (software)............................................ 81 Sintetizando............................................................................................................................86 Referências bibliográficas................................................................................................. 87 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES 4Hk r Unidade 4 - Organização de memória interna e externa, periféricos, multiproces- sadores e multicomputadores Objetivos da unidade 89 Organização da memória.................................................................................................... 90 Hierarquia da memória..................................................................................... 90 Memória auxiliar..................................................................................................................95 Dispositivos de armazenamento.......................................................................96 Acessando periféricos....................................................................................................... 100 Entrada e saída (l/O)........................................................................................ 100 Barramentos.................................................................................................... 101 Comunicações.................................................................................................102 Interfaces.........................................................................................................102 Periféricos.......................................................................................................103 Arquiteturas paralelas........................................................................................................ 103 Multiprocessadores de memória compartilhada.............................................. 104 Multiprocessadores homogêneos em um chip.................................................105 Multiprocessadores heterogêneos em um chip............................................... 106 Tipos de sistemas de processadores paralelos e sua organização.................. 107 Multiprocessadores UMA................................................................................ 108 Multiprocessadores NUMA..............................................................................109 Multicomputadores de troca de mensagens.................................................... 109 Topologias........................................................................................................110 Propriedades................................................................................................... 111 Sintetizando.......................................................................................................................... 113 Referências bibliográficas................................................................................................ 114 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES J k Apresentação Prezado aluno, Este material foi desenvolvido com o intuito de levá-lo a conhecer os com putadores de forma mais profunda do que um usuário comum. A partir de agora, você verá os computadores não apenas pelo exterior, mas terá a visão da sua arquitetura interna e da forma como seus sistemas são organizados. Apesar da área de TI possuir diversos campos de atuação, existem conhe cimentos básicos requeridos por todas elas. Os conhecimentos que você vai adquirir aqui são de extrema importância em qualquer segmento que deseje seguir. É importante que você leia o material diversas vezes e utilize os canais dis poníveis para tirar dúvidas. Foco e dedicação serão diferenciais para que você se destaque no mercado de trabalho. Seja bem-vindo! ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES A Professora Meire Higinio é pós-gra duada em Investigação de Fraudes e Forense Computacional pela Faculda de Impacta de Tecnologia desde 2017 e graduada em Sistemas de Informa ção pela Universidade Estácio de Sá desde 2011. Em 2017, certificou-se em ITIL Foundation pela Exin. Possui mais de dez anos de experiência na área de Serviços de TI e Liderança de Equipes de TI. Currículo Lattes: http://lattes.cnpq.br/2881931647805004 Dedico este trabalho à minha esposa, à minha filha e aos meus pais, por sempre me incentivarem nos estudos e estarem ao meu lado nos desafios e conquistas da minha carreira. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES ser educacional Objetivos da unidade 9 Aprender sobre a evolução histórica dos computadores; * Estudar a estrutura dos computadores através dos conceitos de organização e arquitetura; * Compreender como dispositivos internos e externos se comunicam para que haja o funcionamento do computador. Tópicos de estudo • Introdução à Organização e Arquitetura de Computadores • Histórico da arquitetura de computadores • Geração zero: computadores mecânicos (1642-1945) • Primeira geração: válvulas (1945-1955) • Segunda geração: transistores (1954-1965) • Terceira geração: circuitos integrados (1965-1980) • Gerações posteriores: VLSI (1980-atual) • Organização de sistemas de computadores • Unidade Central de Processa mento • Unidade de Controle, Unidade Lógica e Aritmética, Registrado- res • Memória primária, memória secundária, entrada e saída • Arquiteturas RISC e CISC, pipeline ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Introdução à Organização e Arquitetura de Computadores Nesta unidade, estudaremos os conceitos de Organização e Arquite tura de Computadores e sua evolução até os dias de hoje. Para isso, vamos iniciarcompreendendoa diferença en tre estrutura e função do computador: • Estrutura: é o conjunto de dispo sitivos que compõem um computa dor; • Função: a função primordial do computador é executar progra mas. Para isso, sua estrutura pre cisa funcionar de forma organizada e harmônica. No mundo computacional, tornou-se unânime o uso dos conceitos de Orga nização e Arquitetura de Computadores: Arquitetura de computador refere-se aos atributos de um sis tema visíveis a um programador ou, em outras palavras, aque les atributos que possuem um impacto direto sobre a execução lógica de um programa. Organização de computador refere-se às unidades operacionais e suas interconexões que realizam as especificações arquiteturais (STALLINGS, 2010, p. 22). Para compreender melhor, podemos utilizar como exemplo uma linha de computadores de determinado fabricante. Toda linha pode ter a mesma arqui tetura e os produtos podem parecer idênticos, porém, podem ter uma organi zação variada, chegando ao consumidor com preços diferentes de acordo com sua configuração e capacidade. Nesta unidade, estudaremos um breve histórico da arquitetura dos com putadores, incluindo a arquitetura Von Neumann e sua importância para os modelos que são produzidos até hoje. Veremos, também, a organização de sistemas, as arquiteturas RISC e SISC e o conceito pipeline. Bons estudos! ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Histórico da arquitetura de computadores Vivemos numa era na qual a tecnologia está presente em todos os lugares, nos auxiliando nas mais diversas atividades e necessidades, mas nem sempre foi assim. Não se sabe ao certo quando surgiram as primeiras máquinas ca pazes de realizar cálculos, sabe-se que elas não eram digitais e dependiam do trabalho manual do programador. Vamos estudar a evolução dos computadores através das quatro gerações para compreender suas características, funcionamento e diferenças entre uma geração e outra. Geração zero: computadores mecânicos (1642-1945) Centenas de anos antes do surgimento dos computadores elétricos já existiam máquinas para realizar cálculos, chamadas de computadores me cânicos ou geração zero. A primeira calculadora mecânica foi criada em meados de 1642 pelo francêsBlaise Pascal. A calculadora Pascaline era ca paz de realizar cálculos de adição e subtração de forma simples, já divisão e multiplicação, por um sistema de repetição. A máquina funcionava pelo uso de uma manivela. Em 1672, Gottfried Leibniz aperfeiçoou a Pascaline, melhorando sua agilida de e acrescentando a função de raiz quadrada. Em 1801, foi criado o primeiro modelo que utilizava um tecido perfurado, capaz de ser programado de acordo com esses furos. Esta espécie de tear foi criada porJoseph-Marie Jacquard. A Máquina Analítica foi criada em 1834; tinha unidades de en trada e saída, unidade de memória e unidade de computação, similares à arquitetura utilizada nos dias de hoje. Em 1890, Herman Hollerith criou uma máqui na que também utilizava a tecnologia de car tões perfurados, mas o seu modelo possuía pinos que transpassavam somente os furos dos cartões, podendo assim realizar os cálcu los necessários. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Em 1944, a IBM lançou o Mark I, computador que possuía uma estrutura gi gantesca e era considerado lento, porém conseguia realizar cálculos extensos. O Primeira geração: válvulas (1945-1955) Os primeiros computadores considerados digitais para uso geral contavam com a utilização de milhares 4 de válvulas. A válvula era um dispositivo semelhante a uma lâmpada, feita de vidro transparente e totalmen te fechada, com uma estrutura interna que continha ele trodos. Ao ser aquecida, o vácuo fazia com que os elétrons fossem transmitidos pela estrutura de metal para outro filamento, conhecido como efeito termoiônico. O problema das válvulas era que, devido ao seu superaquecimento, consumiam muita energia elétrica e queimavam constantemente. ENIAC: o primeiro computador digital O primeiro computador digital começou a ser construído durante a Se gunda Guerra Mundial. O Laboratório de Pesquisa Balística (BRL) do Exér cito dos Estados Unidos tinha cerca de 200 pessoas realizando cálculos para auxiliar a artilharia. Porém, os cálculos podiam levar horas para fica rem prontos, processo este extremamente oneroso. Devido à necessidade de reduzir esse tempo, iniciou-se a construção do primeiro computador eletrônico digital de uso geral, o ENIAC (Electro nic Numerical Integrator and Computer), pela parceria dos cientistas John Eckert e John Mauchly, ambos da Universidade da Pensilvânia. O projeto durou de 1943 a 1946, desta forma, não foi utilizado para o seu propósito inicial de auxiliar na guerra. O gigantesco computador pesava cerca de 30 toneladas, possuía mais de 18.000 válvulas e consumia mais de 140.000 kilowatts. Sua capacidade era decimal e permitia realizar cerca de 5.000 cálculos por segundo, po rém, sua programação era manual e, para mudar o tipo de cálculo, era ne cessário reprogramar o equipamento alterando chaves e cabos. Utilizava cartões perfurados que na época eram fabricados pela IBM para proces samento de dados. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Figura 1. ENIAC. Fonte: Shutterstock. Acesso em: 04/04/2019. O ENIAC foi utilizado para outras finalidades, entre elas, analisar a viabili dade de um projeto da bomba termo nuclear de hidrogênio. Em 1955, foi des montado e partes da sua estrutura estão expostas em diversos museus pelo mundo. CONTEXTUALIZANDO 0 projeto ENIAC contou com cerca de 80 mulheres programadoras. Na época, elas não eram reconhecidas e não participavam dos eventos e premiações sobre o computador. Somente em 1997, seis delas entraram para o Hall Internacional da Fama de mulheres na tecnologia. A arquitetura de John Von Neumann Consultor do projeto ENIAC e professor de matemática na Universidade de Princeton, John Von Neumann acreditava que o processo de programação dos computadores poderia ser facilitado se os programas e os dados ficassem armazenados no mesmo espaço de memória (conceito de programa armaze nado). Em 1946, Neumann começou a trabalhar no projeto do IAS, primeiro computador criado pelo Instituto de Estudos Avançados de Princeton (IAS). ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES UNIDADE CENTRAL DE PROCESSAMENTO (CPU) UNIDADE DE CONTROLE ■HlDO PROGRAMA (CC) MEMÓRIA EQUIPAMENTO PRINCIPAL 9 DE E/S (M) (E, S) UNIDADE LÓGICA E ARITMÉTICA (CA) |m Figura 2. Unidade Central de Processamento (CPU). O IAS foi baseado na arquitetura de Von Neumann, possuía uma Unidade Central de Processamento que continha uma Unidade Lógica e Aritmética (CA) e uma Unidade de Controle do Programa (CC) que interagiam com a Memória Principal (M) e os Dispositivos de Entrada e Saída (E/S). De acordo com Von Neumann, cada item tinha a seguinte função: • Memória principal: local onde ficam armazenados os programas utiliza dos e os dados; • Unidade de Processamento (CPU): • Unidade de controle: contém as instruções que devem ser executadas; • Unidade lógica e aritmética: responsável por executar as instruções; • Dispositivos de entrada e saída: por onde entram as informações inseri das pelo usuário. Faz a interface com equipamentos externos, como mouse e teclado, por exemplo. Essa arquitetura se tornou referência e é utilizada pela maioria dos compu tadores até os dias de hoje. EDVAC Em 1949, surgiu o EDVAC (Electronic Discrete Variable Automatic Computer), criado por Von Neumann e os mesmos criadores do ENIAC. No mesmo ano, na Universidade de Cambridge - no Reino Unido - foi criado o EDSAC (Electronic Delay Storage Automatic Calculator) por Maurice Wilker. Em 1951, os mesmos criadores do ENIAC apresentaram sua nova máquina: o UNIVAC1. Ele foi o primeiro computador comercial criado e foi instalado no ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES escritório do censo dos Estados Unidos no mesmo ano. Não usava mais os co nhecidos cartões perfurados, mas sim fita magnética. A IBM, que até então produzia e comercializava os cartões perfurados, lan çou seu primeiro computador em 1953, o IBM 701, que utilizava a tecnologia da fita magnética. Posteriormente, a empresa lançou vários outros computado res, criando uma extensa linha de equipamentos. FORTRAN: primeira linguagem de programação Em 1957, surgiu a primeira linguagem de programação para computadores: FORTRAN (FORmula TRANslation). Desen volvida por John Backus e sua equipe de 13 programadores, a linguagem era considerada de alto nível e foi utilizada pela IBM no modelo 704. Em seguida, outros fabricantes desenvolveram compila dores para o Fortran e conseguiram assim produzir diversos tipos de programas para seus computadores. Segunda geração: transistores (1954-1965) O transistor era um dispositivo semicondutor, criado em 1947 para subs tituir as válvulas, porém, somente na década de 1950 começou a ser utili zado em computadores. A IBM foi pioneira no fornecimento da tecnologia e algumas empresas começaram a utilizá-la em pequenos computadores. Posteriormente, a IBM entrou no mercado com sua linha 7000. As vantagens da substituição das válvulas pelos transistores eram inúmeras: seu tama nho era menor, dissipava melhor o calor economizando energia elétrica e era mais resistente. ASSISTA 0 filme Estrelas além do tempo relata o período da corrida espacial, quando a NASA adquiriu o IBM 7090, e como Katherine Johnson conseguiu estudar sozinha a linguagem de programação Fortran e assim operar o novo computador para traçar rotas e trazer de volta seus tripulantes em segurança. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES O Terceira geração: circuitos integrados (1965-1980) O circuito integrado (Cl) foi criado em 1958 e recebeu este nome pois in tegrava em sua estrutura de silício vários componentes como capacitores, re- sistores, transistores, diodos, entre outros. Tais componentes, até então, eram fabricados e instalados separadamente. O pequeno dispositivo revolucionou a eletrônica. Em 1964, a IBM lançou uma família de computadores que utilizava a tecnologia dos circuitos integrados: System/360. O modelo fez tanto sucesso que colocou a IBM como maior fornecedora de computadoresda época, pois os programas eram compatíveis com os diversos modelos da mesma linha. O Gerações posteriores: VLSI (1980-atual) A década de 1980 foi responsável pela comercialização de computado res em larga escala para uso pessoal. Com o surgimento da tecnologia VLSI (Very Large Scale Integration), tornou- -se possível colocar em um único chip milhões de transistores, fazendo com que os computadores fossem ainda menores, mais rápidos e mais baratos. Computadores capazes de execu tar múltiplas funções começaram a ser produzidos na década de 1990 e, de lá pra cá, surgiram computadores portáteis, computadores para carros e atualmente os computadores po dem ser integrados a diversos obje tos, tecnologia chamada de "internet das coisas" e a "computação vestível", utilizada em roupas, relógios e outros produtos que se pode usar. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Organização de sistemas de computadores Um computador é um conjunto de módulos que possuem funções específi cas e se comunicam para realizar processamento de dados. Esses módulos são: Unidade Central de Processamento, Memória e dispositivos de entrada e saída. Acomunicação entre esses módulos é feita através de linhas de transmissão ou barramento (veremos esse item adiante). REGISTRADORES Figura 3. Unidade Central de Processamento (CPU). Unidade Central de Processamento (CPU) O processador, conhecido como Unidade Central de Processamento (CPU), é um chip instalado na placa-mãe do computador responsável por processar dados de acordo com instruções previamente armazenadas na memória principal. Muitos confundem esse termo com toda a estrutura contida no gabinete do computador, mas esse conceito está incorreto. O processador funciona de forma parecida ao cérebro humano. Ele executa ta refas que nos são perceptíveis e outras não. Por exemplo, não temos que lembrar constantemente de respirar, pois esse processo é automático, mas se precisamos escovar os dentes precisamos nos lembrar (buscar na memória) de como fazê-lo. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES O processador é composto por uma Unidade de Controle e uma Unidade Lógica e Aritmética. Juntamente com a memória e os dispositivos de entrada e saída realizam o processo de busca, leitura, execução, processamento e gravação das instruções previamente armazenadas. Esse ciclo é conhecido como "buscar-decodificar-executar". Figura 4. CPU. Fonte: Shutterstock. Acesso em: 04/04/2019. Os processadores em geral mantêm uma busca de instrução em uma se quência de endereço de memória mais alto. Por exemplo, se ele localizou uma palavra no local 100, na seguinte busca ele irá procurar no local 101, 102, 103 e adiante. Isso significa que a instrução lida foi carregada em um registrador de instrução (IR), e é lá que ficam as "ações" que o processador deve tomar nas próximas pesquisas. Unidade de Controle, Unidade Lógica e Aritmética, Re- gistradores Unidade de Controle (UC) Podemos considerar que a Unidade de Controle (UC) é o cérebro do proces sador. Ela fica armazenada dentro do chip juntamente com a ULAe é responsável por controlar a operação da CPU. A UC busca as instruções na memória principal e as envia para a ULA, informando também a sequência em que elas devem ser executadas. Devemos lembrar que a UC não processa dados, ela apenas geren cia esses processos, servindo como ponte entre a memória e a ULA. Unidade Lógica e Aritmética (ULA) O local onde os dados são processados na CPU é chamado de Unidade Lógi ca e Aritmética (ULA). Ela tem a capacidade de executar diversos processos de acordo com a instrução recebida. Nos primeiros computadores, a quantidade de instruções era menor e a execução mais demorada, mas, com o passar do tempo, os programas de computadores foram projetados com o propósito de auxiliar o hardware a aumentar sua capacidade de processamento, tornando- -se mais rápido para o usuário. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Registradores Os registradores são um conjunto de unidades de armazenamento, tam bém conhecidos como memória de rascunho. Eles podem serdivididos em dois tipos: visíveis ao usuário e controle e estado. Registradores visíveis ao usuário Podem ser acessados através de linguagem de programação e são classifi cados como: • Registrador de uso geral: utilizado para realizar funções diversas e arma zenar dados e/ou endereços; • Registrador de dados: dedicado apenas para o registro de dados; • Registrador de endereços: dedicado ao endereçamento em geral; • Registrador de código de condução: armazena os resultados das opera ções em forma de bits. Registradores de controle e estado Os registradores são locais de armazenamento dentro da CPU. Neles ficam guardados diversas informações, incluindo os resultados gerados pela ULA, podendo ou não serem enviados para a memória, dependendo do que for solicitado. Existem diversos tipos de registradores, sendo os principais (STAL- LINGS, 2010, p. 15): • Registrador de Buffer de Memória (MBR): determina a quantidade de bits (palavra) a ser enviada ou recebida da memória ou da E/S; • Registrador de Endereço de Memória (MAR): especifica o endereço da palavra (da MBR) na memória; • Registrador da Instrução (IR): contém a instrução que está sendo executada; • Registrador de Buffer de Instrução (IBR): mantém temporariamente a próxima instrução a ser executada; • Contador de Programa (PC): contém o endereço da próxima instrução a ser trazida da memória. Memória primária, memória secundária, entrada e saída Memória primária A memória primária tem como principal função manter disponíveis as infor mações que serão utilizadas pelo processador. Este tipo de memória não pode ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES ser acessada pelo usuário para guardar arquivos, o acesso é feito pela unidade de controle da CPU. A maioria das memórias primárias são voláteis, ou seja, temporárias. Elas man têm as informações ativas enquanto estão em contato com a energia elétrica e vão perdendo gradativamente quando a energia é desligada. Por esse motivo, sua capacidade de armazenamento é bem menor do que as memórias secundárias (não voláteis). Veremos a seguir os tipos de memória primária: Memória RAM A memória RAM (Random Access Memory) é um chip composto por transistores e capacitores que faz uma leitura em código binário. A capacidade de armazena mento e a velocidade do processamento dos dados vão depender do barramento do periférico. Figura 5. Memória RAM. Fonte: Shutterstock. Acesso em: 04/04/2019. A memória RAM é dividida em dois tipos: • SRAM (Static Random Access Memory): memória estática, rápida e volátil. Essa memória perde as informações quando a energia é desligada; • DRAM (Dynamic Random Access Memory): memória dinâmica, mais comple xa e mais lenta que a SRAM. Essa memória precisa que a informação seja atua lizada constantemente para que permaneça armazenada. Memória ROM A memória ROM (Read-Only Memory), ou, em português, "memória apenas de leitura", é a memória que não se pode alterar, dessa forma, os dados são gravados somente uma vez e essa memória não é volátil. Existem diversos tipos de memória ROM, conforme abaixo: ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES • PROM (Programmable Read-Only Memory): pode ser programada uma vez, porém, após a gravação, não pode mais sofrer alterações; • EPROM (Erasable Programmable Read-Only Memory): esse tipo de memória permite que seus dados sejam apagados, porém esse processo é feito em um equipamento específico, que utiliza luz ultravioleta; • EEPROM (Electrically-Erasable Programmable Read-Only Memory): esta me mória pode ser programada e apagada sem ser removida do computador para outro equipamento; • EAROM (Electrically-Alterable Programmable Read-Only Memory): as infor mações podem ser alteradas ou apagadas parcialmente. Cache A memória cache tem como função armazenar os principais dados e recursos utilizados pelo processador e trazê-los de forma muito mais rápidaquando soli citados. É uma memória extremamente pequena se comparada à memória RAM. MEMÓRIA PRINCIPAL Figura 6. Comunicação entre cache, processador e memória principal. Fonte: STALLINGS, 2010, p. 117. Memória secundária A memória secundária é o armazenamento não volátil do computador. Seus dados permanecem intactos mesmo quando o computador é desligado ou rei niciado. As informações podem sergravadas, alteradas ou excluídas a qualquer momento, pois o usuário tem acesso a este periférico através do sistema ope racional. Por esses motivos, sua capacidade de armazenamento é muito maior do que as memórias primárias. Existem diversos tipos de memórias secundárias, veremos alguns a seguir. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Hard Disk(HD) A grande maioria dos computadores contém um dispositivo que armazena in formações do sistema operacional, programas instalados, arquivos do usuário e muito mais, que é conhecido como HD. Nos últimos anos, este dispositivo vem diminuindo de tamanho e aumentando sua capacidade de armazenamento. Existem também os HDs portáteis, que podem ser levados para qualquer lugar e conectados via USB em outros dispositivos, facilitando muito a vida do usuário. Figu ra 7. HD interno. Fonte: Shutterstock. Acesso em: 09/04/2019. Figura 8. HD portátil USB. Fonte: Shutterstock. Acesso em: 09/04/2019. Pen-drive e cartão de memória A cada dia menores e com maior capacidade de armazenamento, os pen-dri- ves e cartões de memória cabem no bolso e até mesmo na carteira. Esses pe quenos dispositivos facilitam a vida do usuário permitindo que suas informações sejam transportadas e transferidas de modo rápido e seguro. As entradas (conexões) compatíveis com tais periféricos já estão disponíveis em computadores, equipamentos médicos, equipamentos de som e televisão e nos mais diversos objetos para as mais diversas finalidades. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Figura 9. Pen-drives em modelos e tamanhos variados. Fonte: Shutterstock. Acesso em: 09/04/2019. Figura 10. Catião de memória micro SD. Fonte: Shutters tock. Acesso em: 09/04/2019. CD, DVD e blu-ray Existem no mercado mídias de CD-ROM, DVD-ROM e blu-ray graváveis (só se pode gravar uma vez) e regraváveis (permitem que as informações sejam regrava- das quantas vezes forem preciso). Com essa facilidade, o usuário pode acessar seus dados também em diversos aparelhos que aceitem esse formato de mídia. Figura 11. Armazenamento em mídias de CD, DVD e blu-ray. Fonte: Shutterstock. Acesso em: 09/04/2019. Entrada e saída (E/S) A execução dos processos de dados depende também de dispositivos de en trada e saída (E/S). Isso ocorre porque, para que a CPU execute as instruções, é necessário haver uma solicitação por meio de um dispositivo de entrada, enquan to que o resultado desse processo é exibido por meio de um dispositivo de saída. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES EXEMPLIFICANDO Para imprimir um documento, você utiliza um dispositivo de entrada (mou se). E, para tê-lo em mãos, é necessário acionar um dispositivo de saída (a impressora). Podemos classificar esses dispositivos em três tipos: • Dispositivos de entrada: interface do usuário com a máquina, dispositivo através do qual ele pode inserir informações e dar comandos que serão exe cutados pelo computador. Exemplo: teclado, mouse, microfone, scanner, entre outros; • Dispositivos de saída: exibem o resultado do processamento solicitado. Exemplo: monitor, impressora, caixas de som, entre outros. EXEMPLIFICANDO Existem dispositivos que executam as funções tanto de entrada quanto de saída, como, por exemplo, impressoras multifuncionais (têm função de scanner e impressora), e monitores touch screen (permitem tanto a inser ção de dados quanto mostram o resultado na mesma tela). Para que os periféricos se comuniquem corretamente com os módulos do computador através do barramento, eles são instalados em controlado res, que por sua vez são instalados em uma grande placa eletrônica, chama da placa-mãe. Placa-mãe (Motherboard) Aplaca-mãe é uma grande placa de circuito impresso que agrega todos os itens necessários para o computador funcionar. Nela ficam instalados tran sistores, diodos, capacitores, o chip da CPU, barramentos, slots para memó rias e diversos conectores para perifé ricos externos. Ao ligar o computador, a energia elétrica é distribuída para toda a sua estrutura. A placa-mãe fica instalada numa caixa de metal chamada de gabinete. Figura 12. Placa-mãe. Fonte: Shutterstock. Acesso em: 09/04/2019. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES MONITOR TECLADO DRIVE DE CD-ROM Q DRIVE DE DISCO RÍGIDO CONTROLADOR DE DISCO-RÍGIDO CONTROLADOR DE TECLADO CONTROLADOR DE CD-ROM CONTROLADOR DE VÍDEO BARRAMENTO Figura 13. E/S e seus controladores. Controlador O controlador é o dispositivo responsável por fazer a comunicação entre E/S e a placa-mãe. Ele liga a placa e o conector de entrada através de cabos, assim os dispositivos são instalados e fixados de forma segura e duradoura. Para cada periférico instalado haverá um controlador em contato com o barramento: Barramento A comunicação entre os módulos dos computadores é feita através de li nhas de transmissão; esses grupos de linhas são chamados de barramento. São classificados em três grupos: • Barramento de dados: cada linha pode transportar 1 bit por vez, dessa forma, a quantidade de bits que podem ser transferidos de uma única vez depende da quantidade de linhas (largura do barramento); • Barramento de endereços: designa o acesso à determinada palavra na memória. Sem essas linhas informando o local, o endereço correto da ori gem ou o destino, os dados seriam armazenados de forma aleatória e seria quase impossível localizá-los; I CONTEXTUALIZANDO | Bit é a menor parcela de informação processada por um computador. • Barramento de controle: responsável por controlar o uso das linhas de dados e endereços, já que elas são utilizadas por todos os componentes. Os sinais de controle transmitem informações de comando e sincronização ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES entre os módulos do sistema. Os sinais de sincronização indicam a valida de da informação de dados e endereço. Os sinais de comando especificam operações a serem realizadas (STALLINGS, 2010, p. 69). Padrões de barramento Como estudamos no item anterior, barramentos são conjuntos de linhas que permitem a comunicação entre os dispositivos. Além dos tipos que vimos, existem os barramentos padrão, que possuem uma largura específica compa tível com itens similares. Vamos ver alguns exemplos: Barramento PCI (Peripheral Component Interconnect) Lançado pela Intel na década de 1990, o barramento PCI ficou muito conhe cido por permitir conectar diversos dispositivos à placa-mãe do computador. Esse padrão tem a capacidade de transferir dados a 32 bits e clock de 33 MHz. Barramento AGP (Accelerated Graphics Port) O padrão AGP surgiu em 1996 para a utilização exclusiva de placas de vídeo. Pelo fato de seus recursos não serem compartilhados com outros dispositivos, permitia a utilização total da sua capacidade, ou seja, sua taxa de transferência de dados era extremamente alta. Barramento PCl-Express A Intel lançou esse padrão em 2004 e substituiu os modelos anteriores PCI e AGP. Um de seus modelos permite trabalhar com uma taxa de transferência de até 4 GB por segundo. Arquiteturas RISC e CISC, pipeline A Arquiteturas RISC e CISC A necessidade de processar instruções cada vez mais complexas fez aumentar o estudo sobre arquiteturas que permitissem realizar esses processos de forma mais rápida. Vamos falar agora sobre duas arquiteturas muito importantes: RISC (ReducedInstruction Set Computer) e CISC (ComplexInstruction Set Computer). Arquitetura RISC O processador RISC (computador com conjunto de instruções reduzidas) surgiu na década de 1980 com o intuito de utilizar instruções mais simples e em menor quantidade, mas que pudessemser executadas de forma mais rápida. Ele era in compatível com os modelos existentes na época. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Por ter um baixo nível de instru ções e complexidade, o processo é executado diretamente pelo hardwa re, não sendo necessária a utilização de microcódigo. Essa arquitetura utili za a técnica de pipeline de instruções para otimizar seus processos. Arquitetura CISC O processador CISC (computador com conjunto de instruções complexas) tem uma capacidade de processar grandes conjuntos de instruções, desde as mais simples até as mais complexas. Muitas vezes esse processo precisa ser di vidido e executado em diversas partes, o que o torna mais lento em relação aos processadores RISC. Processador híbrido Existem também os processadores híbridos, que utilizam a tecnologia RISC para conjuntos de instruções menores e SISC para instruções mais complexas. Pipeline O conceitopipeline (ou paralelismo) surgiu com os processadores MIPS, ca pazes de emitir milhões de instruções por segundo. Com essa quantidade de processos, foi necessário paralelizar as atividades do computador. As instru ções passaram a ser executadas de acordo com a disponibilidade de determi nado recurso da CPU, em vez de seguir uma ordem obrigatória. Vamos usar um exemplo simples para melhor compreensão: três pessoas precisam tomar banho, vestir-se e ir para o trabalho. Cada uma leva cerca de 40 minutos para realizar esse processo e o tempo total para que todas terminem é de duas horas. O conceito de paralelismo sugere que quando a primeira pessoa terminar o banho a segunda já deve iniciar o seu banho. Em resumo, conforme cada parte do processo vai sendo liberada já vai sendo preenchida por outro. O paralelismo pode ocorrer de duas maneiras: a nível de instrução e a nível de processador. Paralelismo em nível de instrução Explora cada instrução individualmente, otimizando as operações por se gundo. Esta execução também pode ser dividida em várias partes, passando por diversos estágios até ser concluída. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES (a) (b) Figu ra 14. Visão geral de paralelismo em cinco estágios. Podemos ver na Fig. 14 um modelo de pipeline com cinco estágios: • Estágio 1: obtém a instrução e a coloca no buffer; • Estágio 2: decodifica a instrução e determina os especificadores do comando; • Estágio 3: calcula o endereço dos operandos e os busca; • Estágio 4: executa a instrução; • Estágio 5: armazena o resultado na memória. Ainda de acordo com a Fig. 14, podemos ver que essa divisão em partes permi te que conforme as instruções forem processadas as demais venham preenchen do o espaço. EXEMPLIFICANDO Buffer é uma pequena área da memória ultrarrápida, utilizada para arma zenar informações importantes temporariamente. Quando se trata de processamento em larga escala, o melhor conceito de para lelismo a ser utilizado em nível de processador, ou seja, processadores com maior capacidade de executar corretamente essa função. Para uma grande demanda utilizam-se computadores paralelos ou computadores construídos com diversas CPUs (multiprocessadores). ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Multiprocessadores Computadores projetados com mais de uma CPU são chamados de multipro cessadores. Essas CPUs podem utilizar um barramento único e dividir a mesma memória ou podem ter um pouco de memória dedicada (vide imagem). MEMÓRIAS LOCAIS MEMÓRIA COMPARTILHADA (A) BARRAMENTO MEMÓRIA COMPARTILHADA (B) BARRAMENTO Figura 15, Multiprocessadores com memória compartilhada e com memórias locais. Multicomputadores Diferente do sistema de multiprocessadores, o uso de multicomputadores fun ciona com diversos computadores utilizando sua memória dedicada, processado res e armazenamento, interligados via rede executando tarefas. Esse modelo ocupa mais espaço físico e tem um consumo de energia muito maior do que o uso de multiprocessadores. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Sintetizando Chegamos ao final desta unidade e conseguimos compreender o conceito de Organização e Arquitetura de Computadores e sua evolução nas últimas dé cadas. Vimos que, desde Von Neumann até os dias de hoje, temos melhorado a arquitetura dos computadores e feito mudanças que permitiram um grande avanço no que diz respeito à capacidade, à velocidade e ao tamanho. Vimos que as primeiras máquinas chegavam a tomar salas inteiras, mas, com os computadores cada dia mais compactos, as informações chegam a ca ber no bolso. Compreendemos a importância da organização dos módulos do computador e da CPU e como eles se comunicam, buscando, executando e mostrando as instruções. Nos aprofundamos nos tipos de memória e suas funções, tanto de memó rias que fazem parte do conjunto do computador quanto de memórias exter nas. Estudamos outras arquiteturas, como RISC e CISC, e vimos como o con ceito pipeline (ou paralelismo) é importante para melhor uso dos módulos do processador. O conteúdo desta unidade foi desenvolvido como base para qualquer pro fissional de TI. Os conhecimentos aqui adquiridos são imprescindíveis para uma carreira de sucesso, independentemente do ramo escolhido pelo aluno, por isso, sugerimos que você leia este material quantas vezes forem necessá rias e busque sempre se aprofundar nos temas abordados. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Referências bibliográficas CORRÊA, A. G. D. Organização e arquitetura de computadores. São Paulo: Pearson, 2017. Disponível em: <https://bv4.digitalpages.com.br/?0from=#/edi- cao/9788543020327>. Acesso em: 24fev. 2019. ESTRELAS além do tempo | trailer internacional oficial | legendado HD. Postado por Fox Film do Brasil. (2min. 54s.). son. color, leg. Disponível em: <ht- tps://www.youtube.com/watch?v=wx3PVtrll-Os>. Acesso em: 09 abr. 2019. STALLINGS, W. Organização e arquitetura de computadores. 8. ed. São Pau lo: Pearson, 2010. TANENBAUM, A. S.; AUSTIN, T. Organização estruturada de computadores. 6. ed. São Paulo: Pearson, 2013. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES 2 NÚMEROS BINÁRIOS: CONVERSÕES, OPERAÇÕES, /ERFLOW, PORTAS EÁLGEBRA BOOLEANA ser educacional Objetivos da unidade • Aprender a conversão de números binários; • Compreender a importância do bit de sinal e do overflow; • Entender a utilização da álgebra booleana na comunicação com a E/S e como é criada uma tabela-verdade; • Conhecer as portas e suas operações. Tópicos de estudo • Representação de números • Nível lógico-digital binários com sinal • Álgebra booleana • Conversão: fecimal para binário • Conversão: binário para decimal • Tabelas-verdade • Bit de sinal • Circuitos lógico-digitais básicos • OR(ou) • Aritmética binária com operan- • AND (e) dos representados em comple • NOT (não) ou inversão mento para dois • NAND • Soma • NOR • Subtração • XOR • Somador • Detecção de overflow em ope rações de adição e subtração em • Simulador de circuitos lógico- binário -digitais (software) ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Representação de números binários com sinal Os computadores trabalham com um sistema binário. Isso significa que, enquanto digitamos ou realizamos cálculos, as informações que vemos são diferentes da forma como o computador interpreta: ele faz a conversão dos números e letras para este sistema. O sistema de numeração que utiliza base dois é igual a um número binário, sendo estes números zero e um (0,1): CURIOSIDADE Você sabia? 0 sistema binário surgiu séculos antes da criação dos com putadores. Estudos mostram que a civilização de Mangareva já utilizava este sistema, usando elementos da natureza, como animais e frutas, para representar seus valores (1,2,4, 8). Para termos uma visão inicial da diferença entre números decimais e biná rios observe a Tabela 1. TABELA 1. CONVERSÃO DE NÚMEROS Decimal Binário 7 0111 6 0110 5 0101 4 0100 3 0011 2 0010 1 0001 0 0000 ■1 1111 ■2 1110 ■3 1101 ■4 1100 ■5 1011 ■6 1010 •7 1001 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORESComovemos na Tabela 1, após a conversão para binários, só existem números zero e um. A conversão para números binários é feita pelo computador de forma automática, mas a partir de agora vamos estudar como funciona esta conversão. O Conversão: decimal para binário Para converter determinado número para binário, devemos seguir um pas so a passo. Vamos usar como exemplo o número 30. Observe a imagem: A conversão consiste em dividir o número decimal por dois até não haver mais possibilidade de divisão. Os números que sobram devem ser contados de baixo para cima e este é o resultado em binário. Vamos analisar a Figura 1: • Iniciamos com o número que será convertido (30, em azul). Devemos di- vidi-lo por dois (em amarelo), em seguida dividir seu resultado (15) e assim su cessivamente até o fim; • Os valores que sobram (em ciano) devem ser lidos de baixo para cima (b). Este é o resultado da conversão: 11110. ______________________________________________________________ • Conversão: binário para decimal Agora que você aprendeu a converter números decimais em binários, va mos fazer o inverso: utilizar a mesma numeração da conversão anterior, na qual o número binário é 11110. Observe a Figura 2. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES O Resultado: 3(1 (d) Figura 2. Conversão de binário para decimal. Vamos analisá-la: • Um modo simples de converter o número binário 11110 é colocá-lo de trás para frente em uma coluna (b) e multiplicá-lo por dois elevados à potência (iniciar sempre do zero - em ciano); • Os resultados somados (c) chegam ao número decimal: 30 (d). Com os exemplos anteriores, conseguimos concluir que 30 e 11110 resul tam no mesmo número, porém em sistemas numéricos diferentes. Bit de sinal Utilizamos o sinal + para números positivos e - para negativos, quando rea lizamos cálculos no papel, calculadora, computador etc. No sistema binário, também existe uma forma de identificar se os números são positivos ou nega tivos, através do bit de sinal. No número binário, o último bit à esquerda é chamado de MSB (Most Sig- nificant Bit) e é utilizado como sinal para identificar se é positivo ou negativo: Figu ra 3. Representação do bit de sinal. 0 Positivo 1 Negativo Para exemplificar, imagine que o registrador possui em determinada posi ção X os bits 0100101 e na posição Y os bits 1100101. O primeiro bit, à esquer- ORGANIZAÇÃOE ARQUITETURA DE COMPUTADORES da, é o que define se o número é positivo ou negativo. Observe a Figura 4. Figura 4. Binários positivos e negativos. Por se tratar de números binários, os valores posicionais são elevados à potência dois (a). O primeiro bit à esquerda informa se o valor é positivo ou negativo (b). O último bit, à direita, é chamado de LSD (Least Significant Bit). Na Figura 4, (d), podemos ver a diferença na conversão para decimal: número positivo ou negativo. Aritmética binária com operandos representados em complemento para dois Antes de falarmos sobre complemento de dois, vamos entender como fun ciona o complemento de um. Neste complemento, os números são trocados, mantendo a mesma posição. No complemento de um, onde é zero se torna um. E onde é um se torna zero. Observe a imagem a seguir: O complemento de dois tem uma pequena diferença, veja a seguir: Posição X X, X, X. X, X, X, X, 0 10 0 10 1 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES 10 110 10 + | 1 (b) 10 110 11 (c) Figura 6. Complemento de dois. No complemento de dois, o primeiro passo é fazer a substituição dos núme ros, mantendo na mesma posição, como no complemento um (Figura 6, a). A seguir, é acrescentado o número um ao LSB (b) e, por fim, chega-se ao número binário representado em complemento para 2. Soma Como já sabemos, o sistema decimal utiliza os números de 0 a 9. No sistema binário, as possibilidades de soma são somente 0 e 1, por isso a forma de exe cutar as operações é diferente. Veja um exemplo de soma em decimal e binário: TABELA 2. SOMA DECIMAL E BINÁRIA Decimal Binária 5 0101 + 4 + 0100 9 1001 Para iniciarmos os cálculos, é im portante aprender como os números binários podem ser somados. Observe a Figura 7. Assim como na soma de números decimais, nos números binários tam bém colocamos um número embaixo do outro e, assim, começamos o cálculo da direita para esquerda. Os números que sobram devem ser somados com o da posição seguinte: Figura 7. Somando números binários. Figura 8. A soma em números binários. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES O cálculo deve iniciar sempre da direita para a esquerda (a). Quando no resul tado sobra 1, o número deve ser somado com a próxima posição (b). No nosso cálculo, somamos os números 5 e 4 em binário e o resultado foi 9, ou seja, 1001. O Subtração Para a subtração vamos utilizar a Figura 9. Vamos realizar uma subtração utilizando o cálculo 5 - 4 = 1 em binário. Ob serve a Figura 10. Assim como na soma, na subtração devemos iniciar da direita para esquer da (a). Se houver a necessidade de subtrair 0 -1, devemos tomar emprestado da próxima posição à esquerda, assim como em números decimais: Figura 11. Subtração em números binários. (a) 0 i 1 4 0 - 0 0 1 1 0 1 (b) ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Detecção de overflow em operações de adição e subtra ção em binário Você deve ter notado que em alguns casos o resultado obtido está com o sinal errado. No sistema binário, quando o resultado é incorreto, ou a palavra possui um tamanho maior do que já está sendo utilizado, acrescenta-se um bit à esquerda. Esta ação é chamada de overflow, que em português significa "transbordar", "estourar". Essa condição de overflow acontece apenas quando somamos dois números positivos ou dois números negativos, o que sempre produz um resultado errado (CORRÊA, 2017, p. 55). Para compreender melhor o overflow, vamos analisar a Figura 12: a soma dos números gera um resultado negativo (a). Para corrigir, o sistema acrescenta um bit à esquerda com o sinal correto, nesse caso, sinal positivo (b). Por fim, temos a palavra correta (c): Figura 12. Overflow em operações de adição e subtração binárias. +5 0 1 0 1 + +4 + 0 1 0 0 +9 1 0 0 1 (a) (b) 0 (0 0 1 0 0 11 Bit de sinal Magnitude correta Nível lógico-digital O nível lógico-digital, ou o nível 0, é onde operam as memórias. Estas me mórias podem ser combinadas em grupos e são armazenadas pelos registra- dores. É o nível mais baixo. Nesse nível, um transistor pode funcionar como um comutador binário muito rápido. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Álgebra booleana A álgebra booleana trabalha em sistema binário, dessa forma, por utilizar apenas zero e um, pode ser considerada mais simples que a álgebra conven cional. É utilizada com o intuito de facilitar a relação entre entrada e saída (E/S) através de diversas portas, além de poder ser utilizada para representar o nível de tensão de uma conexão (nível-lógico). TABELA 3. ÁLGEBRA BOOLEANA Fonte: MOSS; TOCCI; WIDMER, 2011, p. 50. Lógico 0 Lógico 1 Falso Verdadeiro Desligado Ligado BAIXO ALTO Não Sim Aberto Fechado Tabelas-verdade As tabelas-verdade descrevem uma função lógica listando todas as combi nações possíveis de valores de entrada e indicando, para cada combinação, um valor de saída (STALLINGS, 2010, p. 610). Observe as tabelas da Figura 13. Entradas Saída w A B X 0 0 1 0 1 0 1 0 1 1 1 0 (b) A B C X 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 A B c D 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES 7 (a) (c) 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 Figura 13. Tabelas-verdade. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 50. Vamos analisar as tabelas da Figura 13. Podemos ver que existem duas entradas (a e b) e uma saída (x) que são representadas nas colunas. As linhas são os níveis que cada tabela poderá ter. Para sabermos quantos níveis a tabela deve ter, devemos considerar a quantidade deentradas e elevá-las à potência dois (binário). Neste caso, temos duas entradas, então considera mos 22 = 4 (quatro linhas). A primeira coluna da direita para a esquerda vai ter sempre a sequência de 1 em 1 binário. Na coluna B, temos 0-1-0-1. Na coluna A, temos a sequência de 2 em 2 binário: 0-0-1-1. A coluna x mostra a combinação correta para cada nível. Por exemplo, na primeira linha, para as entradas A = 0 e B = 0, a saída éX = 1; e na segunda linha, para as entradas A = 0 e B = 1, a saída é X = 0. Podemos observar claramente nas tabelas (b) e (c) que, não importa a quantidade de entradas (colunas), elas sempre seguirão a sequência utilizada no primeiro exemplo (a): • Primeira coluna: sequência de 1 em 1; • Segunda coluna: sequência de 2 em 2; • Terceira coluna: sequência de 4 em 4; • Quarta coluna: sequência de 8 em 8. E assim por diante. Circuitos lóg ico-dig itais básicos Um circuito lógico-digital é um circuito com diversos mecanismos cha mados portas. Cada porta possui uma operação diferente e, conforme cada ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES mecanismo é acionado, uma saída é gerada, até que por fim todo o processo seja completo. Os computadores têm a capacidade de executar essas ações milhões de vezes e numa velocidade muito alta. A partir de agora, veremos os diferentes tipos de porta, como funcionam suas entradas e saída e a forma que elas são representadas na tabela-verdade. ^^^”ÕrIÕu) A porta OR (ou) é um circuito que possui duas ou mais entradas e uma saída (Figura 14). Ela opera com a expressão booleana: x = A + B. Como podemos ver na imagem, a tabela-verdade (a) mostra todas as pos sibilidades de acordo com a quantidade de entradas da porta. Por exemplo, vamos considerar que 0 é negativo e 1 positivo. Na linha 1, a entrada A e B são 0, dessa forma, a saída X também é 0. Na quarta linha a entrada, A possui 1 e a entrada B possui 0, dessa forma, a saída é positiva: 1. AND (e) A porta AND (e) possui duas ou mais entradas e uma saída (Figura 15). Dife rentemente da porta OR, ela opera com a expressão booleana x = AB. Observe a Figura 15. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES AND A B X = A.B 0 0 0 0 1 0 1 0 0 1 1 1 (a) (b) Figura 15. AND. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 54. A operação AND consiste no fato de que, se uma das entradas for zero, a saída será sempre zero. Veja que, na Figura 15, em todas as linhas em que exis te uma entrada zero o resultado é zero. O NOT (não) ou inversão A porta NOT (não) também é conhecida pela inversão, além de possuir uma entrada. Ela opera com a expressão booleana: x = Ã. NOT NOT A 0 1 X = A — 1 0 (a) A • O (b) A presença de um pequeno círculo sempre denota nvetsão! (C) Figura 16. NOTou inversão. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 57. Observando a Figura 16, podemos ver um círculo que representa a inver são, dessa forma, na tabela-verdade notamos que quando A = 0, x = 1; e quan do A = 1, x = 0. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES NAND A porta NAND é representada pelo mesmo símbolo da porta AND, porém acrescentado de um círculo que significa inversão. Nesta operação, é utilizada a expressão booleana: x = AB. AND NAND (c) (b) Figura 17 NAND. Fonte: MOSS. TOCO: WIDMER. 201!. p. 66 Vamos analisar a tabela-verdade na Figura 18: na primeira linha, temos as entradas A = 0 e B = 0. Na operação AND, o resultado é x = 0, porém com a in versão o resultado NAND é x = 1. Também podemos ver que na quarta linha as entradas são A = 1 e B = 1. Na operação AND, o resultado é x = 1, porém com a inversão, na tabela NAND, vemos x = 0. C^NOR Basicamente, o símbolo utilizado para por ta NOR é o mesmo da porta OR acrescentado de um círculo que representa a inversão. / Ela opera com a expressão booleana x = J A + B. Isso significa que, primeiramente, é feita a operação OR e em seguida a ope ração de inversão. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Vamos analisar a tabela-verdade: na primeira linha, temos as entradas A = 0 e B = 0. Na operação OR, o resultado é x = 0, e após a inversão a tabela NOR é x = 1. Na quarta linha, temos as entradas A = 1 e B = 1. Na operação OR, o re sultado é x = 1, mas após a inversão a tabela NOR mostra que x = 0. Na porta XOR, a saída vai a nível alto sempre que uma entrada for dife rente da outra. Esta operação usa a expressão booleana: x = A®B, x = ÃB ou x = As. Observe a Figura 19. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES (b) 0 0 0 0 1 1 1 0 1 1 1 0 Figura 19. XOR. Fonte TOCCI, WIDMER. 20 Podemos ver na tabela-verdade da Figura 19, que sempre que os va lores das entradas forem diferentes, a saída vai a nível alto. Na primeira linha, vemos as entradas A = OeB = Oenaquartalinhaas entradas A = 1 e B = 1, dessa forma, a saída em cada uma delas é x = 0. Na segunda e terceira linhas, os valores são diferentes. Na segunda linha, vemos as entradas A = 0 e B = 1 e na terceira linhas as entradas A = 1 e B = 0, dessa forma, a saída em ambas é x = 1. Somador Você já aprendeu nesta Unidade como é feita a soma nos computado res usando números binários. A partir de agora, você vai ver o compor ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES tamento do computador durante esta operação utilizando o somador ou somadores. Precisamos compreender que as operações realizadas pelos computa dores ocupam espaço na memória. Se consideramos que determinada pa lavra possui 6 bits e ocorre um overflow, a memória precisa disponibilizar mais espaço para o bit a mais que será utilizado. Ou quando na soma exis te um número que "sobra" e deve ser somado com os números da posição seguinte, este número que sobra precisa de um espaço na memória. Figura 20. O computador durante o processo de soma. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 270. Como vimos anteriormente, a soma é feita sempre da direita para a es querda, começando pelo LSB. Analisando a imagem acima, vemos que os dois números a serem somados estão posicionados um em cima do outro: primeira parcela e segunda parcela. Veja que a soma de 1 + 1 = 0, e sobra 1. Esta sobra é chamada de carry. Para esta operação são utilizados 5 bits: • 3 bits para a soma: carry, primeira parcela e segunda parcela; • 2 bits para o resultado: resultado da soma e o carry. Os circuitos lógicos possibilitam que este processo seja multiplicado, tornando-o mais rápido e eficaz. Este circuito é chamado de somador completo. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Soma apatete nas saídas 5,. Sr Sr. 5.. Sr Bits da ugunda panela vondos do registrsdor B Bits da primeira parrela vondos do regittrador A Figura 21. Carry. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 270. Entradas de bits da primeira parcela Entradas de bits da segunda parcela Entradas de bits do carry Saída de bits da soma Saída de bits do carry A B C. S C. 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Figura 22. Carry. Fonte: MOSS; TOCCI; WIDMER, 2011, p. 271. Esta operação usa a expressão: S = A B Cin + A B Cin+ A B C in + ABCin. Analisando a tabela-verdade de um circuito somador completo (Figura 22), temos as seguintes colunas: A: refere-se aos bits da primeira parcela; B: refere-se aos bits da segunda parcela; Cin: refere-se ao carry; ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES S: refere-se à saída; Cout: refere-se à saída do carry (aquela que será somada com a posição seguinte). Figura 23. Tabela-verdade de um circuito somador. Fonte: Moss; Tocei; Widmer, 2011, p. Z11. Observe a Figura 23: o circuito lógico mostra os mecanismos de entrada e saída referentes à tabela-verdade da Figura 22. Podemos ver que, além das entradas A e B, existe também a entrada Cin referente ao carry da po sição anterior. Vemos também que, além da saída S, temos a Cout referente ao valor que será somado juntamente com a próxima posição. Simulador de circuitos lógico-digitais (software) Existem dezenas de simuladores de circuitos digitais no mercado. Vamos utilizar aqui uma versãogratuita e on-line, a The Logic Lab, pois consideramos ser muito útil para sua prática. O site possui dispositivos de entrada e saída, portas lógicas e outros itens para que você possa montar diversos circuitos. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Figura 24. Portas lógicas. Fonte: Neuroproductions, s/d. Vamos fazer uma simulação: você lembra que a porta AND só tem uma saída em nível alto quando as duas entradas são iguais a 1? Vamos testar! Colocamos dois interruptores na entrada e um ventilador na saída. Imagi ne que, quando o interruptor está ligado, a entrada tem valor 1 e, quando está desligado, a entrada tem valor 0: Figura 25. Simulação. Fonte: Neuroproductions, s/d. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Podemos ver agora que mesmo se um dos interruptores for ligado, não ocorre o acionamento do ventilador. —"--------■-------- -------------- ’---------- ------- Não seguro www.neuroproductions.be/logic-lab/ THE LOGIC LAB Input Logic ports Flip-flops Figura 26. Simulação. Fonte: Neuroproductions, s/d. www.neuroproductions.beu Figura 27. Simulação. Fonte: Neuroproductions, s/d. Por fim, ao acionar os dois interruptores, o ventilador foi acionado. Conse guimos testar aqui o uso da porta AND: ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Figura 28. Simulação. Fonte: Neuroproductions, s/d. A partir de agora, você pode utilizar o simulador da sua preferência para exercitar as operações e portas vistas nesta Unidade. Aproveite também para criar tabelas-verdade enquanto simula diversos circuitos lógico-digitais. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Sintetizando Nesta Unidade, conseguimos alcançar os objetivos propostos e compreen demos como os computadores utilizam o sistema binário para realizar diver sas operações, ao mesmo tempo que controla a quantidade de bits utilizados pela memória. Além disso, podemos perceber que a álgebra booleana é mais simples do que a álgebra convencional por trabalhar apenas com binários, e aprendemos o que são as tabelas-verdade. Vimos também os diferentes circuitos lógicos e como eles são representa dos nas tabelas-verdade. E, por fim, utilizamos um simulador de circuito lógico- -digital on-line e gratuito, plataforma esta que permitirá que o aluno realize diversas experiências e pratique os conhecimentos aprendidos. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Referências bibliográficas CORRÊA, A. G. D. Organização e arquitetura de computadores. São Paulo: Pearson, 2017. DICIO. Binário. Disponível em: <https://www.dicio.com.br/binario/>. Acesso em: 05 jul. 2019. MOSS, G. L.; TOCCI, R. J.; WIDMER, N. S. Sistemas digitais: princípios e aplica ções. São Paulo: Pearson, 2011. MULTI CALCULADORA ON-LINE. Soma de números binários. Disponível em: <http://www.multicalculadora.com.br/soma-de-numeros-binarios-on-line/>. Acesso em: 05 jul. 2019. NEUROPRODUCTIONS. The Logic Lab. Disponível em: <http://www.neuropro- ductions.be/logic-lab/>. Acesso em: 05 jul. 2019. SAMPEDRO, J. Um sistema binário inventado na Polinésia séculos antes de Leibniz, 16 dez. 2013. El País. Disponível em: <https://brasil.elpais.com/bra- sil/2013/12/16/sociedad/1387215405_275511.html>. Acesso em: 05 jul. 2019. STALLINGS, W. Organização e arquitetura de computadores. 8. ed. São Pau lo: Pearson, 2010. TANENBAUM, A. S.; AUSTIN, T. Organização estruturada de computadores. 6. ed. São Paulo: Pearson, 2013. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES LINGUAGENS DE MÁQUINA E DE MONTAGEM, CONJUNTOS DE INSTRUÇÕES E MIPS ser educacional Objetivos da unidade • Aprender as diferenças entre linguagem de máquina e linguagem de montagem; • Compreender o que são conjuntos de instruções e para que servem; * Conhecer as instruções da linguagem MIPS; * Conhecer um simulador da linguagem de montagem e efetuar uma simulação. Tópicos de estudo • Linguagem de máquina e lin guagem de montagem (assembly language) • Linguagem de máquina • Linguagem de montagem (assembly language) • Conjuntos de instruções • Representação das instruções • Tipos de instruções • Tipos de operandos • Tipos de operações • Registradores • Instruções de linguagem de montagem MIPS • Carga • Aritméticas • Lógicas • Operandos imediatos • Transferência de dados • Simulador de linguagem de montagem MIPS (software) ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES (assembly language) Linguagem de máquina e linguagem de montagem Os computadores possuem circui tos eletrônicos que enviam sinais elé tricos ao receber e executar instruções. Para que estes sinais sejam interpreta dos pelo computador foram criados os programas de computadores. Como sabemos, os computadores operam com sistema binário, pois este é o sistema que ele consegue com preender. Você pode imaginar, portan to, que, se todos os programas desenvolvidos fossem feitos apenas na lingua gem que o computador consegue compreender, seria mais trabalhoso e até mesmo mais demorado. Você pode estar se perguntando se existe mais de uma forma de criar programas para os computadores, e a resposta é: sim! Por isso, a partir de agora, você irá estudar a linguagem de máquina e a linguagem de monta gem (assembly language) e entenderá como cada uma pode ser utilizada dentro da programação de computadores. Antes de começar, vamos explicar o que significam alguns termos que utili zaremos bastante a partir de agora: • Opcode: operação básica de instrução, cada instrução contém uma um código único; • Linguagem-fonte: a linguagem na qual o programa original foi escrito; • Linguagem-alvo: a linguagem convertida; • Montador: programa que traduz a linguagem de montagem em lingua gem de máquina; • Depurador: tem a função de testar (depurar) o programa e encontrar pos síveis erros, auxiliando o programador a corrigi-los antes de finalizá-lo; • Compilador: é o programa que transforma o código criado em linguagem- -fonte (pode ser de alto nível) para a linguagem que o computador utiliza, isto é, código-objeto. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Linguagem de máquina A linguagem de máquina é a lin guagem que o computador consegue compreender; é a linguagem operada pelo processador. Ela está mais pró xima ao hardware e, para ser desen volvida, o programador precisa ter um bom conhecimento da arquitetura do computador para que a sua capacida de seja bem aproveitada e custos se jam evitados. A programação em linguagem de máquina é feita através de números bi nários e todo computador possui um conjunto de instruções (ISA - Instruction Set Architecture ou em português: Arquitetura do Conjunto de Instrução). Em linguagem de máquina, cada instrução é executada individualmente, ou seja, para cada instrução uma execução (processo 1 para 1). Essas instruções "na tivas" podem ser substituídas por um novo conjunto de instruções de acordo com a necessidade, desenvolvido pelo programador. Existem duas formas de substituir estas instruções, através das técnicas de tradução e interpretação (TANENBAUM; AUSTIN, 2013, p. 2): • Tradução: Nesta técnica, cada nova instrução é substituída por uma ins trução equivalente do conjunto nativo. O novo programa é convertido para programa nativo para ser executado pelo computador e em seguida é descar tado. Este novo programa é chamado de programa-objeto, que é lido e execu tado pelo computador; • Interpretação: No caso da interpretação, após cada instrução ser lida e decodificada já é executada, não havendo a tradução. Para executar este pro cesso, é necessário um programa chamado interpretador. Cada instrução na linguagem de máquina do processadorétradu- zida em uma sequência de instruções da unidade de controle de baixo nível. Essas instruções de baixo nível são conhecidas como microinstruções e o processo detradução conhecido como micro- programação (STALLINGS, 2010, p. 460). ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES O ________________________________________________________________________________________________________• Linguagemde montagem (assembly language) A linguagem de montagem tem como uma das suas principais características a facilidade ao programar. Enquanto na linguagem de máquina é necessário que o programador tenha um bom conhecimento sobre a arquitetura do computa dor e conheça os valores que utilizará em binário ou hexadecimal, na linguagem de montagem ele pode utilizar códigos muito mais simples de se decorar. Por exemplo, para realizar soma, subtração, multiplicação e divisão, ele não precisa saber como representá-los em 0 e 1, podendo utilizar códigos como ADD, SUB, MULe DIV. Esta linguagem possui diversas vantagens, e uma delas é o acesso à má quina. Com este acesso o programador pode desenvolver programas menores que melhorem o desempenho do computador. A linguagem de montagem também pode ser usada em sistemas embarca dos de pequeno a grande porte, que são sistemas menores desenvolvidos para uma função específica, como marca-passos, semáforos, satélites etc. Estrutura da linguagem de montagem De acordo com Stallings, a estrutura da linguagem de montagem possui quatro elementos: rótulo, mnemônico, operando(s) e comentário. Vamos ver, a seguir, como funciona cada um deles: Rótulo Mnemônico Operando(s) lZ_j I______ I I_______ IJ- Opcional Nome do opcode ou nome da diretiva ou nome da macro Zero ou mais ;comentário '______ ;4 Opcional Figura 1. Elementos da estrutura de montagem. Fcnte: STALLINGS, 2010. Rótulo Quando falamos em rótulo, do que você lembra? Você pode lembrar da eti queta colada a um produto, que traz informações sobre ele. Na linguagem de ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES montagem o intuito é o mesmo. Um rótulo pode ser utilizado para nomear uma instrução, um endereço ou outros dados, fazendo, assim, com que eles sejam localizados mais facilmente. Vejamos um exemplo: L2: SUB EAX, EDX; subtrai conteúdo do registrador EDX do conteúdo ; de EAX e armazena o resultado em EAX JG L2 ; salta para L2 se resultado da subtração for positivo Figura 2. Trecho de programa usando rótulos. Fonte: STALLINGS, 2010. Como podemos ver na Figura 2, o trecho do programa descreve a ação de extrair informações de um registrador e armazenar em outro, e só saltar para o L2 se o resultado for positivo, ou seja, se o resultado for negativo, ele continua nesse loop até obter um resultado diferente. Para o programador, porém, não existem números, cálculos e símbolos; ele apenas utiliza os rótulos que condi zem com as instruções que devem ser utilizadas. 2ZTTV CITANDO "Se um rótulo direto é usado, ele é interpretado como endereço (ou offset) de dados. Se o rótulo é colocado dentro de colchetes, ele é interpretado como dado no endereço" (STALLINGS, 2010, p. 587). Mnemônico Mnemônico é o nome dado a uma sentença de linguagem de montagem. Ele segue a lógica de que uma abreviação pode ser mais fácil para representar esta sentença do que ter que reescrevê-la sempre que necessário. Ele pode nomear a função que será executada ou mesmo a operação. Operando(s) Todas as operações dos computadores utilizam dados. Um operando é um valor utilizado por uma instrução, podendo ser um endereço, número, caracte- re ou dado lógico. Estudaremos este tema mais adiante. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Comentário A linguagem de montagem permite ao programador incluir comentários no seu programa. O comentário pode ser colocado após um comando ou em uma linha específica, e deve ser sinalizado por um caractere que indique que aquele conteúdo não deve ser executado. Sentenças da linguagem de montagem Na linguagem de montagem, uma sentença é a ação que o programa deve executar com base em instruções definidas pelo programador. Por exemplo, em determinado trecho, o programa deve buscar determinado valor e só pas sar para o próximo passo ao encontrá-lo. Até a ação ser concluída ele deve ficar em um loop fazendo essa busca. Dentro da linguagem de montagem, existem três tipos de sentenças: ins trução, diretiva e definição de macro. Veja a seguir: Instrução As instruções são responsáveis por dizer ao computador o que deve ser fei to. Quando desenvolvidas em linguagem de montagem, são traduzidas por um montador para linguagem de máquina, uma a uma. Isso significa que para cada instrução de linguagem de montagem existe uma para linguagem de máquina. Diretiva Diferente da instrução, a sentença diretiva não é traduzida para linguagem de máquina. Ela é responsável por dar as diretrizes para o montador realizar seus processos corretamente. Observe a imagem a seguir: L2 DB "A" MOV AL, [L1] MOV EAX, L1 MOV [L1], AH ; byte inicializado para código ASCII de A(65) ; copiar byte que está em L1 para AL ; armazenar endereço do byte que está em L1 em EAX ; copiar conteúdo de AH dentro do byte que está em L1 Figura 3. Diretivas dentro de um programa. Fonte: STALLINGS, 2010. Podemos ver na Figura 3 como a sentença dá ao montador as diretivas de como iniciar, copiar e armazenar. Mais uma vez, você pode compreender que ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES através das sentenças não é necessário que o programador esteja sempre digi tando textos e números gigantescos, mas usando abreviações para tal. Vamos analisar mais um exemplo: TABELA 1. DIRETIVAS DENTRO DE UM PROGRAMA (a) Letras para diretivas RESx e Dx Unidade Letra Byte B Palavra (2 bytes) W Palavra dupla (4 bytes) B Palavra quádrupla (8 bytes) Q Dez bytes T (b) Diretivas Nome Descrição Exemplo DB,DW,DD,DQ,DT L6 DD 1A92H Inicializa posições ; palavra dupla em L6 iniciali zada com1A92H RESB, RESW, RESD,RESQ,REST BUFFER RESB 64 Reserva posições nao ; reserva 64 bytes começando inicializadas em BUFFER INCBIN inclui arquivo binário na INCBIN "file.dat" saíaa ; inclui este arquivo EQU MSGLEN EQU 25 Define um símbolo para um ; constante MSGLEN equivale dado valor constante ao decimal 25 TIMES ZEROBUF TIMES 64 DBO Repete instrução várias vezes ; inicializa buffer de 64 bytes todo para zero Observe na Tabela 1 (a) que cada letra faz referência a uma unidade. Na Ta bela 1 (b), temos as diretivas que trazem estas unidades em forma de letra. Veja que, na primeira linha, temos DB, DW, DD, DQ e DT, que se referem a palavra dupla e têm sua descrição como Inicializa posições, definindo, assim, onde a palavra será inicializada. ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Definição de macro Macro é um trecho de um programa com um nome específico. Imagine que determinada ação deve ser executada diversas vezes, o que faria com que o programador tivesse que repetir aquele trecho do código pela quantidade de vezes necessária, tornando-o mais extenso. Com o uso da macro, o programa dor pode dar um nome a esse trecho e, sempre que a mesma sentença tiver que ser executada, ele inclui apenas o nome dado a ela. Quando o programa chega no ponto da sentença que possui uma macro, ele faz um processo chamado de extensão de macro, que consiste em chamar aquele trecho da macro e incluí-lo na sentença. EXPLICANDO A programação em linguagem de montagem pode ser considerada mais difícil por muitos, porém, para programadores experientes, ela pode ser considerada melhor e mais fácil, pois permite gue o profissional tenha acesso à arguitetura do computador. A única linguagem de nível alto gue permite este acesso é a linguagem C. Conjuntos de instruções Um programa de computador é composto por diversas instruções, também chamadas de conjuntos de instruções. Estes conjuntos são o meio pelo qual o pro gramador pode acessar e controlar o processador. Como já vimos nesta unidade, todo computador tem um conjunto de instruções original, mas outros conjuntos podem ser desenvolvidos com o intuito de alterar ou substituir o conjunto original. A partir de agora, vamos compreender como funcionam estes conjuntos. O Representação das instruções Um código de um programa pode ser escrito atra vés de uma representação simbólica. Cada instrução possui uma sequência de bits, que podem ser divididos
Compartilhar