Arquitetura_Computadores

March 29, 2018 | Author: Claudio Joaquim | Category: Central Processing Unit, Computer Data Storage, Personal Computers, Software, Byte


Comments



Description

(Versão para impressão) Arquitetura de Computadores 1http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa... Arquitetura de Computadores 1 Objetivo Ementa Visão geral do computador. Histórico e evolução dos computadores. Organização básica da máquina de von Neumann. Bits, bytes e palavras. Representação de dados numéricos e base. Aritmética computacional. Memória (hierarquia e tipos de memória, memória principal, memória virtual). CPU (componentes, ciclo de instrução, tipos de instrução, formato de instrução, modos de endereçamento). Dispositivos E/S. Objetivos Ao final desta Unidade de Estudo o aluno será capaz de: Identificar as nomenclaturas utilizadas em computação; Conhecer as principais características dos computadores; Identificar os diversos componentes de um computador; e Compreender o funcionamento interno de um programa na máquina. Contextualização Nesta Unidade de Estudo, serão apresentados os principais conceitos e características básicas sobre o funcionamento de um computador. Os principais componentes, tais como: processador, dispositivos de E/S, memória, sistemas de armazenamento serão vistos detalhadamente. Além disso, essa unidade servirá de base para as demais disciplinas do curso de Gestão da Tecnologia da Informação. Aproveite o material. E bons estudos! Conteúdo Aula 1 - Visão Geral do Computador: Histórico e Evolução dos Computadores Evolução dos computadores Pré-história dos computadores Primeira geração – válvulas Segunda geração – transistores Terceira geração – circuitos integrados Quarta geração – integração em alta escala Afinal o que é um computador? Aula 2 – Organização Básica da Máquina de von Neumann: Bits, Bytes e Palavras Máquina de von Neumann Ciclo de instrução Bits 1 de 59 20/3/2012 21:13 (Versão para impressão) Arquitetura de Computadores 1 http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa... Bytes Palavras Endereços de memória Grandezas Unidades de medida Aula 3 – Representação de Dados Numéricos e Bases Numéricas Sistema Numérico Sistema Binário Sistema Hexadecimal Faixa de representação de um número Conversões de Bases Base 10 para Base 16. Base 2 para Base 16 e vice-versa. Conversão da Base 2 ou Base 16 para a Base 10 Caracteres Tabela ASCII ISO 8859-x Aula 4 – Aritmética Computacional Aritmética na Base Dois Adição Subtração Números Negativos Sinal e magnitude Complemento a dois Extensão de sinal Overflow Aula 5 – Memória (Hierarquia de Memória, Tipos de Memória, Memória Principal) Definição de memória Tipos de memória Tempo médio de acesso Tecnologias de fabricação de memória Organização da memória DRAM Aula 6 – Memória Cache Localidade Uso da localidade Mapeamento da memória cache 2 de 59 20/3/2012 21:13 (Versão para impressão) Arquitetura de Computadores 1 http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa... Mapeamento direto Mapeamento associativo Mapeamento associativo por conjunto Políticas de substituição em cache Aula 7 - Dispositivos E/S e Sistemas de Interconexão Barramentos de entrada e saída (E/S) Larguras dos barramentos Dispositivos de E/S Módulos de entrada e saída Interrupção E/S mapeada na memória Acesso direto à memória Discos Organização física dos discos Aula 8 – Processadores (Componentes Básicos) Modelo de programação Computador IAS Linguagem Assembly Tipos de instruções Quantidade de operandos Ciclo de instrução Aula 9 – Processadores (Paralelização) Pipeline Processador Superescalar Paralelismo em nível de programas Aula 01 - Visão Geral do Computador: Histórico e Evolução dos Computadores Esta é a nossa primeira aula de Arquitetura de Computadores, e começaremos a estudar o funcionamento básico de um computador. Inicialmente você tomará conhecimento de uma breve história da computação mas, antes, veja algumas frases famosas ditas ao longo do tempo por pessoas que fizeram história. “Atualmente, o ENIAC é composto por 18.000 válvulas e pesa 30 toneladas. Os computadores do futuro, próximos do ano 2000 terão apenas 1.000 válvulas e pesarão apenas 1,5 toneladas” ( parte de um artigo da Popular Mechanics, uma revista conceituada da época, em março de 1949). “Não acredito que no mundo exista mercado para mais de cinco computadores” (Thomas Watson, presidente da IBM em 1943). 3 de 59 20/3/2012 21:13 (Versão para impressão) Arquitetura de Computadores 1 http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa... “Não existe motivo para alguém em sã consciência querer um computador em casa” (Ken Olson, da DEC em 1977). “Por que alguém precisaria de mais de 640 KBytes de memória?” (Bill Gates em 1981). Ao ler tais frases, percebemos que é arriscado fazer prognósticos quando o assunto é evolução de tecnologias de computadores. Veremos, agora, a evolução dessas tecnologias para compreendermos melhor os computadores atuais, e quem sabe, fazer previsões mais precisas. Você se arriscaria? Evolução dos Computadores Para compreendermos melhor o funcionamento de um computador, é interessante darmos uma olhada na sua evolução desde os primeiros computadores até os dias de hoje. Vamos enfocar aqui dois aspectos, primeiro os tipos de processamentos desses computadores e depois as tecnologias envolvidas ao longo dessa evolução. Essas etapas são geralmente denominadas gerações de computadores. Pré-História dos computadores (anteriores a 1945) Essa não é exatamente uma geração de computadores, pois simplesmente não havia computadores como concebemos hoje, mas máquinas construídas ao longo da história que auxiliavam pessoas nos cálculos. Em 1642, Blaise Pascal constrói uma máquina de somar e subtrair operada por engrenagens. Em 1670, Leibnitz constrói outra máquina que também multiplicava e dividia. Em 1834, Babbage desenvolve uma máquina analítica. Essa máquina, diferente das anteriores, podia ser programada com cartões perfurados. Primeira Geração – Válvulas (1945-1955) ENIGMA 4 de 59 20/3/2012 21:13 (Versão para impressão) Arquitetura de Computadores 1 http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa... Válvula O grande incentivo à criação/evolução do computador foi sem dúvida a Nessa época foram construídos os primeiros computadores digitais, Segunda Guerra Mundial. utilizando válvulas para chaveamentos e armazenamento. Podemos listar alguns como exemplos: o COLOSSUS, um computador construído pelos ingleses em 1943, com o objetivo de quebrar códigos alemães de outra máquina: o ENIGMA. Esse projeto ficou em segredo até pouco tempo atrás. Entre 1943 e 1946, foi financiado pelo Departamento de Defesa Americano o ENIAC, projetado por John Mauchley. Veja, alguns números desse computador: ele possuía 18 mil válvulas, 1.500 relês e pesava 30 toneladas. Apesar de este computador ter sido concebido no esforço de guerra, ele só foi concluído após o seu término, mas o projeto deu bons frutos, e, a partir, dele foram surgindo vários projetos de outros computadores. Um deles foi o projeto do IAS, de John von Neumann, no instituto de Estudos Avançados de Princeton. Essa máquina merecerá mais atenção em outro momento; por enquanto basta dizer que algumas idéias implantadas neste projeto serviram de base para o desenvolvimento de todos os computadores que vieram depois dele, ou seja, este computador que você está usando agora tem muito das idéias desse projeto. Não é nenhum exagero dizer que o IAS é o pai de todos os computadores modernos. Destacam-se nessa época os computadores IBM da linha 700. Segunda Geração – Transistores (1955-1965) Havia um problema com os computadores a válvulas. Esses componentes eram muito sensíveis e queimavam com muita facilidade, além de ocuparem muito espaço e consumirem muita energia. O transistor, uma invenção de 1947, mudaria esse cenário. Nessa época, surgiram novos fabricantes de computadores como NEC e CDC. Antes, o domínio era total da IBM. A NEC lançou uma linha de computadores que fez história – o PDP. A primeira versão desse computador, o PDP-1, foi lançada em 1961 e custava a bagatela de 120 mil dólares. Muito mais barato do que os novos IBM 7090, que custavam na faixa de milhões de dólares. O PDP inaugurava os minicomputadores. Outro fabricante de destaque foi a CDC que construiu o 6600, o primeiro supercomputador, que podia realizar várias operações ao mesmo tempo (paralelismo). Em 1959, a IBM lança o 1401, um computador voltado para aplicações comerciais. Terceira Geração – Circuitos Integrados (1965-1980) Como o tempo não pára, e a evolução tecnológica também não, surgiram na década de 1960 os 5 de 59 20/3/2012 21:13 executava vários programas ao mesmo tempo. de lá para cá foram lançados computadores de uso pessoal cada vez mais rápidos. circuitos integrados. Na década de 1980. ou seja. Os computadores atuais são praticamente todos dessa geração.br/conteudos/graduacao/cursos/tec_informa. A popularização dos computadores ocorreu graças ao surgimento dos microcomputadores nos anos 70. circuitos integrados. depois milhões de transístores em cada chip.catolicavirtual. Foi o início da massificação do uso do computador. O que distingue esta daquela é o volume de integração. o System 360 que permitia a multiprogramação. milhares. ou seja. mas sem perder a compatibilidade por uma questão de mercado de software. No final da década de 1980. pois o conceito é o mesmo. passou de algumas dezenas a centenas. Veja na tabela a seguir alguns processadores Intel: Modelo 8088/8086 80286 80386 80486 Pentium Pentium Pro Pentium II Pentium III 1978 1982 1985 1989 1993 1995 1997 1999 Ano de Lançamento 6 de 59 20/3/2012 21:13 . surgiram os primeiros microcomputadores. que podiam embutir dezenas de transistores em um único chip. mas adotando uma política diferente da usada até então. Essa característica barateou mais os computadores..(Versão para impressão) Arquitetura de Computadores 1 http://www. ela não patenteou o seu projeto de microcomputador permitindo que vários fabricantes construíssem clones desse microcomputador. Com destaque para os processadores 8080 da Intel e o Apple. Quarta Geração – Integração em Alta Escala (1980-?) A quarta geração é uma extensão da terceira.. Uma característica desses processadores é a manutenção de família de processadores. a IBM entra nesse mercado. com destaque aos processadores Intel que passaram a equipar a maior parte dos computadores pessoais. Computador System 360 A IBM lança uma nova série de computadores. na qual um novo processador geralmente é uma versão mais rápida da versão anterior e com algumas características tecnológicas a mais. ou seja. Aplicando o Conhecimento Antes de finalizar o estudo desta aula. Quando falamos em programas no computador. processa esses dados e gera dados de saída. Tal processo de tradução é feito pelo compilador da linguagem. a ordem de execução das instruções é seqüencial e essa seqüência de instruções é chamada de programa.. existem dezenas de linguagens de alto nível. é necessário um processo de tradução entre esses níveis de linguagens. Pentium 4 2000 Afinal. Nesta primeira aula.(Versão para impressão) Arquitetura de Computadores 1 http://www. Como o computador é uma máquina. um programa pode receber dois números de entrada. Java. As instruções que são executadas em linguagem de máquina são compostas por tarefas simples.catolicavirtual. estamos nos referindo a entidades que não são físicas. também conhecida como linguagem de baixo nível. copiar um valor de um local para outro ou então somar dois valores. as instruções que ele compreenderá serão compostas por sinais elétricos. recebe dados de entrada. as chamadas linguagens de alto nível. A princípio. veremos como esses dados. somar esses números (processamento) e mostrar o resultado na tela (saída). Essas instruções formam a linguagem de máquina. avalie sua aprendizagem realizando as atividades na plataforma de ensino. estudamos um pouco da história do desenvolvimento da computação e alguns conceitos básicos da computação para compreendermos a situação atual das tecnologias envolvidas na construção dos computadores. o compilador traduz o programa escrito em uma linguagem de alto nível para uma linguagem de baixo nível. mas em alguns momentos devemos fazer uma abordagem do ponto de vista do software. executando instruções de uma forma ordenada. Por exemplo. formada por componentes mecânicos.br/conteudos/graduacao/cursos/tec_informa. que são palpáveis. A complexidade desses programas vem da combinação dessas tarefas. quando executado. por isso os computadores modernos permitem a utilização de outros tipos de linguagens mais próximas da nossa compreensão. linguagem C. o que é um computador? O computador é uma máquina que pode resolver problemas para você. etc. Esse procedimento pode ser visualizado no seguinte modelo: Entrada de Dados --> processamento --> saída de dados Nesta disciplina Arquitetura de Computadores. Na verdade. Assim. Geralmente. como por exemplo. elétricos e eletrônicos. um programa. os computadores continuam compreendendo apenas aquela linguagem de máquina. Pascal.. Esse tipo de entidade recebe o nome de software enquanto as entidades físicas do computador. de entrada e saída. são formatados e como o computador processará esses dados. O contexto da disciplina Arquitetura de Computadores enfoca basicamente no hardware do computador. como por exemplo. 7 de 59 20/3/2012 21:13 . Infelizmente. ou seja. não são palpáveis como o computador. Na próxima aula estudaremos sobre os componentes básicos do computador e suas funções. de hardware. A linguagem de máquina é muito complexa para a compreensão humana. Na verdade.catolicavirtual. na qual operações simples como somas. Depois. você deve pegar as pastas dos fornecedores no arquivo. subtrações são realizadas. que contém as pastas com as informações dos fornecedores.1 – Máquina de von Neumann Para explicar cada uma dessas partes. O caminho que você tem de percorrer entre sua mesa e o arquivo é o chamado sistema de interconexão. Vamos supor que você trabalhe em uma seção onde você recebe “solicitações de compras” e tem que “providenciar” essas compras. Para calcular os preços que for obtendo. está fazendo um acesso à memória do computador e levando os dados para a CPU. Na CPU chamaremos essa calculadora de ULA. levar para a sua mesa e “verificar o melhor preço” entre os possíveis fornecedores. é bom anotar em um bloco de rascunho os preços que for obtendo. Bytes e Palavras Nesta aula. Um nome alternativo ao processador é CPU (Central Processing Unit) ou Unidade Central de Processamento. Como você fará várias consultas. Bom. por exemplo. A memória seria o arquivo. ou simplesmente. Sempre que alguém vem à sua sala e solicita “uma compra”. Máquina de von Neumann Como visto na aula anterior.Organização Básica da Máquina de von Neumann: Bits.1. Os dispositivos de saída são as outras seções para onde você despachou a solicitação de compras. trocando os personagens dessa analogia. por exemplo. isso é um erro..br/conteudos/graduacao/cursos/tec_informa. A sua sala é o gabinete do computador. barramento. ou Unidade Lógica Aritmética. por telefone. Esse bloco de rascunho é o que chamamos de registradores. Verá também como as informações são organizadas nesse computador. um computador recebe dados de entrada.. para a sua mesa. Há um vício entre algumas pessoas de chamar o gabinete do computador de “CPU”. O processador é o local onde é realizado o processamento dos dados. a CPU é 8 de 59 20/3/2012 21:13 . sendo que o piso da sala pode-se comparar com a placa-mãe. deve usar. você guarda as pastas de volta no arquivo e despacha o pedido para quem solicitou em outra seção (chama o boy para isso). ou melhor. os dispositivos de entrada seriam as outras pessoas que fizeram o pedido de compra para você. uma calculadora. Figura 2. Quando você leva as pastas para a sua mesa. Nós temos então o modelo de computador da figura 2. processa esses dados e gera dados de saída. que é uma placa de circuito integrado onde vários componentes do computador são conectados. você verá os componentes básicos de um computador e como esses componentes agem em conjunto para executar qualquer programa. Este modelo pode ser mais bem detalhado se considerarmos as partes físicas do computador responsáveis por essas funções.(Versão para impressão) Arquitetura de Computadores 1 http://www. Aula 02 . Existe um arquivo na sala onde você pode consultar as pastas dos “fornecedores”. faremos uma analogia com uma situação que poderia ser o seu local de trabalho. . por exemplo. Essa máquina difere de suas antecessoras por ter o programa armazenado na memória.2 V ela está representando outro número. mas fica armazenado na memória. Podemos então imaginar uma instrução em duas etapas: primeiro é feita a “busca da instrução” e depois é feita a “execução da instrução”. armazenará informações (instruções ou dados) de forma eletrônica. é executado no processador. A CPU é também chamada de “o cérebro do computador”. é mais fácil graduar apenas dois números. Imagine então uma carga elétrica em um fio.1 V.2 – Ciclo de Instrução Bits A memória do computador é um componente eletrônico. utiliza-se uma técnica chamada MLC (multi-level cell). Você pode descobrir a tensão dessa linha com um voltímetro. ou seja. mas por uma questão de precisão dos circuitos. Após a etapa de execução da instrução. Ciclo de Instrução Um programa. dedicaremos algumas aulas para estudá-la. Neste curso. através de cargas ou tensões elétricas. Acontece que a quantidade de registradores do processador não é suficiente para conter todo o programa. Para representar os valores. graças à graduação de várias faixas de tensões. como uma receita de bolo que diz passo a passo o que deve ser feito. memória. pode conter milhões de instruções. que. Poderíamos graduar vários números em várias faixas de tensão. ou seja. Então para executar um programa.. a CPU é uma das partes mais complexas do computador. o processador deve pegar as instruções que estão na memória e trazer para seus registradores. todo o procedimento que deve ser feito pelo computador fica armazenado na memória do computador.1 e 0. se uma determinada linha tem uma tensão entre 0 e 0. que permite o armazenamento de dois ou mais bits em uma célula de memória. Atualmente em alguns tipos de memória. e como todo cérebro que se preze. então o processador deve buscar uma instrução de cada vez da memória para executar.catolicavirtual. o modelo formado por processador. Deixando as analogias de lado. os computadores eram programados a mão. aliás. dispositivos de entrada e saída e interconexão é o modelo da máquina de von Neumann que vimos na última aula. Esse processo se repete infinitamente pelo processador até que todo o programa seja executado. 9 de 59 20/3/2012 21:13 . são utilizadas faixas de tensões. Por enquanto é suficiente saber apenas esses detalhes que acabamos de ver. Antes dessa maravilhosa máquina de von Neumann. e assim sucessivamente. A figura 2. Figura 2. como já vimos. através de relês que ligavam e desligavam partes de um circuito elétrico. ela está representando um número. Se a tensão está entre 0.(Versão para impressão) Arquitetura de Computadores 1 http://www.br/conteudos/graduacao/cursos/tec_informa. apenas uma das partes do computador (um chip). o zero e o um. logo. por exemplo. o processador volta à etapa de busca da instrução para pegar a próxima instrução que será executada.2 mostra como isso acontece. Daí tem-se o sistema binário que trabalha apenas com dois números. Note que há uma faixa intermediária entre 0. mas ao longo da evolução dos computadores. e assim por diante. a linha não tem nenhum valor válido.. a do Burroughs B1700 apenas 1 bit! Como cada bit pode assumir dois valores diferentes e cada byte contém 8 bits. o bit mais à direita tem o índice 0. e não bytes. Vários bits podem ser agrupados para formar uma unidade de armazenamento maior.br/conteudos/graduacao/cursos/tec_informa. em termos de possibilidades de representação numérica. até o índice n-1.3 é possível notar que. o fato de um bit assumir apenas dois valores diferentes não é uma vantagem. o MSB (Most Significant Bit). quando uma linha está na faixa de 0 a 0. a soma seria entre dois números de 16 bits cada. ao invés disso. Esses grupos são chamados de palavras. Isso ocorre na fase de transição entre um valor e outro. Por exemplo. Então. nesse caso. Se uma palavra tem quatro bytes. 10 de 59 20/3/2012 21:13 . a palavra tivesse dois bytes apenas. onde n é o tamanho da palavra.3 e 1. e o bit de índice n-1 é o bit mais significativo. Palavra Grupos de bytes podem ser agrupados para formarem números maiores. o LSB (Least Significant Bit). Na figura 2. Bytes O byte é um padrão que se tornou aceito com o passar do tempo. ao invés de assumir dois valores diferentes. assume-se que o valor associado à linha é um.catolicavirtual. por exemplo. ele somará dois números de 32 bits cada um. 108 combinações diferentes. A idéia aqui é permitir que um computador trabalhe com números com mais de um byte.4 você pode ver a disposição dos bits em uma palavra. Veja alguns exemplos: a célula do DEC PDP-8 tinha 12 bits. é o chamado bit. a menor unidade de armazenamento na memória. Esse número. a do DEC PDP-15 tinha 18 bits. nesse caso. um computador processa palavras. O bit de índice 0 é o bit menos significativo.5 V. formado por 8 bits convencionou-se chamar de byte..3 V.0 V. Figura 2. o número de bits que representava um valor qualquer (uma célula de memória) variava de computador para computador. pudesse assumir mais que isso. Em uma palavra. Esse grupo maior. mas uma necessidade em termos de precisão eletrônica. que pode representar 0 ou 1.(Versão para impressão) Arquitetura de Computadores 1 http://www. podemos identificar os bits em função de sua localização. Se. então teríamos muito mais combinações possíveis.0 a 1. então nós teremos em um byte 28 ou 256 combinações possíveis de bits. assume-se que o valor associado à linha é zero. E quando a mesma linha está na faixa de 1. ele soma duas palavras. Geralmente.3 – Representação de Bits em Faixas de Tensões Na figura 2. dez. o segundo à direita o índice 1. Se um bit. o endereço de memória.627. é necessário um identificador para cada uma dessas células. A seguir ilustramos os principais prefixos e valores correspondentes.073.. bilhões. Cada célula tem uma quantidade fixa de bits.576 (aprox.5. 1 bilhão) 1T = 1 Tera = 240 = 1024 x 1024 x 1024 x 1024 = 1. no processador. vamos relembrar um pequeno detalhe: as informações na memória.br/conteudos/graduacao/cursos/tec_informa. Os endereços são números seqüenciais que começam em 0 (zero) e se estendem até p-1. ou seja. por exemplo.4 – Disposição de Bits em Palavras de 16 e 8 bits Endereços de Memória A memória do computador é acessada por células. Esse valor corresponde a 1 Kilo ou 1 K. 1 trilhão) 11 de 59 20/3/2012 21:13 .741. são armazenadas em bits.. valores binários. Então. então usamos a base dois para representar os números.776 (aprox. Figura 2.024 1M = 1 Mega = 220 = 1024 x 1024 = 1. se um endereço de memória tem 8 bits.catolicavirtual. Mas antes.824 (aprox. Figura 2.5 – Endereços de Memória Grandezas Os valores utilizados em computação são. o valor 1.(Versão para impressão) Arquitetura de Computadores 1 http://www. usaremos prefixos para determinar esses números.099. Uma memória terá tantos endereços quantas forem as células de armazenamento. Sendo assim. sendo que p será 2n. 1 milhão) 1G = 1 Giga = 230 = 1024 x 1024 x 1024 = 1.511.000 (103 ) será arredondado para 1024 (210 ). muito grandes. na maioria das vezes. onde p é a quantidade de células conforme a figura 2. Como na memória existem milhões de células. O tamanho do endereço de memória é sempre uma potência de 2. 1K = 1 Kilo = 210 = 1. na faixa de milhões. geralmente um byte. onde n é a quantidade de bits no endereço. então o tamanho máximo da memória será 28 = 256 palavras.048. 1. e. pois. Quando um novo modelo é lançado no mercado. ou simplesmente.624 (aprox. começando do zero a nove: 0.899.000. Aplicando o Conhecimento Antes de finalizar o estudo desta aula.. O que quer dizer exatamente “uma maior velocidade”? Quer dizer levar menos tempo para executar uma instrução simples. o nove. em um segundo. estamos querendo dizer 128x220 Bytes = 134. esse computador será aos poucos detalhado.000s ou 0. 3..catolicavirtual. for alcançado. a representação de dados. 12 de 59 20/3/2012 21:13 . Sistema Numérico Para escrever números decimais (base 10). no próximo número você recomeçará a casa da unidade com zero e somará “um” à casa da esquerda (a dezena). espera-se que a sua velocidade seja sempre maior. ao invés de 210 . E já te preparando para o próximo assunto. 1P = 1 Peta = 250 = 1024 x 1024 x 1024 x 1024 x 1024 = 1. não tem como trabalhar com formas mais abstratas como nós humanos. Da mesma forma que medimos a velocidade do processador em função da sua freqüência. nesse caso. Essa freqüência é o que determina a velocidade do processador. ou seja. por exemplo. Basta calcular o inverso do clock. Unidades de Medidas Quando se fala em computadores. vamos pegar o exemplo de um processador de 1 MHz que vimos acima. vimos como os dados são manipulados pelo computador: por meio de associações de tensões de uma linha com números. sendo que a cada sinal gerado por esse relógio (clock) uma pequena operação é feita pelo processador. 2.Conceitos Fundamentais Na última aula.(Versão para impressão) Arquitetura de Computadores 1 http://www.br/conteudos/graduacao/cursos/tec_informa. Aula 03 . ou seja. conseqüentemente. O objetivo desta aula foi compreender a organização de um computador básico. 1 quintilhão) Quando dizemos que uma memória tem 128 Mega Bytes. bom. Notou? É assim que você consegue passar de 9 para 10. podemos também determinar o tempo de cada ciclo de clock. esse ciclo é cadenciado por um relógio que gera sinais em uma determinada freqüência. avalie sua aprendizagem realizando as atividades na plataforma de ensino. o dez. o relógio gera 1 milhão (106) de pulsos. Nas próximas aulas.728. como se trata de uma máquina. Imagine escrever uma contagem de zero a cem. 128 MB. Você começa escrevendo números de zero a nove. que. 7. 5.000001s que equivale a 1us (microssegundo). 6.906.125. o nove será reiniciado com zero e a casa da esquerda será incrementada novamente.217. uma freqüência de 1 MHz quer dizer que. 8 e 9. é muito importante não confundir bits com bytes. 4. Com esses algarismos é possível representar qualquer valor. pensa-se sempre em velocidade. uma micro operação será executada em 1/1. Agora vamos ver como essas formas são manipuladas pelo computador. Aqui. nós usamos dez algarismos para representar cada número. ou 103. em um segundo. quando for passar para o próximo número. “busca e executa” a instrução. o processador realizará 1 milhão de pequenas operações ou micro operações. Já vimos o modelo de ciclo de instrução. você na verdade fará o seguinte procedimento: quando o maior valor entre os algarismos decimais.842. Há exceções para essa forma de representação de grandezas. nesse ponto. menos tempo para executar um programa inteiro. o tempo de execução de uma micro operação por parte do processador. a máquina de von Neumann. onde 1 kilo é igual a 1000. Isso ocorre novamente quando chegar a 19. 10. a “B” vale 11. o quatro. 5. 13 de 59 20/3/2012 21:13 . centenas. 1. 0b100. Sistema Hexadecimal Números binários necessitam de mais dígitos para representar qualquer valor acima de um do que números decimais. Para diferenciar números hexadecimais de outras bases. pois: 101002 = 0x20 + 0x21 + 1x22 + 0x23 + 1x24 = 0x1 + 0x2 + 1x4 + 0x8 + 1x16 = 2010 Números na base 10 não precisam de nenhum tipo de identificação. etc. fazemos a soma de produtos. 0b10. Por exemplo. 6. o “10” que aparece na contagem tem o valor “5”. Sendo que a letra “A” vale 10. 1. 3. na verdade. Assim. o próximo número será “zero” na unidade e incremento na casa da esquerda. a “D”. etc. a base é 10 e os expoentes dependerão da posição dentro do número. dependendo da posição dentro do número. 15. somamos os produtos dos algarismos pela base elevada à potência correspondente à posição. 1.. B. o número 2010 pode ser escrito simplesmente 20. pode valer 5. 20. 2. Complicado? Veja o exemplo: o número 521 é. 11. 13. Então os algarismos são: 0. 3 e 4. No sistema decimal que estamos acostumados desde a época da pré-escola.(Versão para impressão) Arquitetura de Computadores 1 http://www. milhares. entre eles. 1x100 + 2x101 + 5x102 = 1 + 20 + 500 = 521. Este sistema numérico obedece a um padrão chamado “posicional ponderado”. Sendo assim. A contagem dos números será: 0. o valor do número é determinado em função da posição do algarismo dentro do número. 14 e a letra “F”.. 12. usamos outro tipo de base numérica. os algarismos da base 16 são: 0. 2. 14. ou seja. dezenas. 0b0. assim. a base 16 ou hexadecimal. 21. a “E”. o número 12 decimal equivale a 0b1100. Este sistema numérico é o binário. Usamos a mesma regra de contagem quando chegarmos ao maior algarismo na casa da unidade. prefixamos os números hexadecimais com “0x”. por exemplo. Para facilitar a representação de números binários. 0b11. 8. 4.. 1000. Da mesma forma que no sistema decimal. Agora imagine que não temos mais dez algarismos para representar todos os números. 12. Nesse caso. formando assim o 20. 1. 112 . O algarismo 5.. 102. Para não confundir esses números com o sistema decimal. colocar um 2 subscrito no final do número. Pode ser colocado também o número 16 subscrito no final para indicar a base 16. usamos letras para representar esses algarismos faltantes. etc. E e F. temos o seguinte padrão: unidades. etc.. os números 0x15 e 1516 são equivalentes. 50. mas cinco. assim: 02 . nesse caso. para sabermos qual o valor correspondente a um determinado número. Assim. Sistema Binário Informações são representadas no computador através de números binários (zeros e uns). nesse caso. 1002 . Como não temos algarismos maiores que nove. Note que não “pulamos” do valor quatro para o valor dez. Nessa base. o número 0x15 está na notação hexadecimal. D. podemos usar vários métodos. o número 101002 vale 2010 . C. 0b1. 4. 11.br/conteudos/graduacao/cursos/tec_informa. agora para 2. existem 16 algarismos diferentes. Outra forma é acrescentar o prefixo 0b ao número. 3. 110. Para determinar o valor de um número. a “C”. Usaremos também o sistema posicional ponderado. nossa contagem ficaria: 0.catolicavirtual. 2. Com esses algarismos é possível representar qualquer valor. 111. 500. 12. 101. 10. Por exemplo. 100. A. 9. Da mesma forma que no sistema decimal. por exemplo. que só terá dois algarismos: 0 e 1. etc. 7. 13. Por exemplo. de 0 a 15. que equivale exatamente ao maior número com apenas um dígito hexadecimal. Por exemplo: veja a conversão da base 10 para a base 2 com o número 50.000 números diferentes. Note também que o maior número com dois dígitos hexadecimais é 0xFF. mas repare que o maior número binário de 4 dígitos é o 15.. Por exemplo.(Versão para impressão) Arquitetura de Computadores 1 http://www. de 10 a 15. Faixa de Representação de um Número A faixa de representação de um número qualquer é dada pela fórmula bn. 16 e 2. O resultado será formado pelos restos das divisões. ou 16 números diferentes. os números 8 e 9. Primeiro veremos como converter da base 10 para as demais.. Esses valores servirão como meios para as conversões entre bases numéricas Dec 0 1 2 3 0 1 2 3 Hex Bin 0000 0001 0010 0011 4 5 6 7 Dec 4 5 6 7 Hex Bin 0100 0101 0110 0111 8 9 Dec 8 9 A B Hex Bin 1000 1001 1010 1011 Dec 12 13 14 15 C Hex Bin 1100 1101 1110 1111 D E F 10 11 Existem alguns procedimentos para converter um número que está em uma base qualquer para outra. sendo assim. como podem também ser dois dígitos decimais. A fórmula é a divisão sucessiva pela base para qual você quer converter o número até que o quociente seja zero. Na base 2. 1 byte pode codificar 28=256 números diferentes. Conversões de Bases A tabela a seguir lista os equivalentes entre as bases 10. um número com 4 dígitos pode representar 24 números diferentes. 50 / 2 = 25 e resto 0 25 / 2 = 12 e resto 1 12 / 2 = 6 e resto 0 6 / 2 = 3 e resto 0 3 / 2 = 1 e resto 1 14 de 59 20/3/2012 21:13 . que é igual a 255.catolicavirtual.br/conteudos/graduacao/cursos/tec_informa. 255 também é o maior número que pode ser representado com um byte (8 dígitos binários). Na base 16 também é usada a soma de produtos para determinar o valor de um número. na qual b é a base numérica e n é a quantidade de dígitos do número. de 0 a 255. Esses números vão de 0 a 9. ou 10. pois 4 dígitos binários podem ser um dígito decimal. usando a base 10. Como vimos na aula 2. o número 0xA19 equivale a 2585. um número com 4 dígitos pode representar 104 números diferentes. 1 byte é formado por 8 bits. Essa equivalência não ocorre com o sistema decimal. pois: 9x160 + 1x161 + 10x162 = 9x1 + 1x16 + 10x256 = 9 + 16 + 2560 = 2585 A princípio. pode parecer que esse sistema numérico não tem vantagens sobre o sistema decimal.999. Base 10 para Base 16 Novamente o número 50. assim como o dígito hexadecimal 2 equivale ao número binário 0010. O resultado então fica assim: 0b00110010 Por comodidade de visualização. temos o resultado 0x32.. 1 byte equivale a 2 nibbles... 1. n-2.br/conteudos/graduacao/cursos/tec_informa.catolicavirtual. Base 2 para Base 16 e vice-versa Vamos analisar os dois valores obtidos a partir do número 50: 0b0011. sempre do último para o primeiro. você pode separar os números binários em grupos de 4 dígitos.. Nesse caso.0010. + d1 x b1 + d0 x b0 Onde “d” é um algarismo do número. Conversão da Base 2 ou Base 16 para a Base 10 Para converter um número de uma base qualquer para a base 10 use a seguinte fórmula: N = dn-1 x bn-1 + dn-2 x bn-2 + dn-3 x bn-3 + . n=8. Substituindo os valores na fórmula teremos: N = 0 x 27 + 0 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20 N = 0 x 128 + 0 x 64 + 1 x 32 + 1 x 16 + 0 x 8 + 1 x 4 + 1 x 2 + 0 x 1 N = 54 Agora um valor na base 16: 0xAB0 N = A x 162 + B x 161 + 0 x 160 N = 10 x 256 + 11 x 16 + 0 x 1 N = 2560 + 176 = 2736 15 de 59 20/3/2012 21:13 .0010 e 0x32. “b” é a base do número (2 ou 16) e “n” é a quantidade de algarismos no número. 0 são os índices dos algarismos. 50 / 16 = 3 e resto 2 3 / 16 = 0 e resto 3 Pegando os restos das divisões.(Versão para impressão) Arquitetura de Computadores 1 http://www... Consulte a tabela acima e note que o dígito hexadecimal 3 equivale ao número binário 0011. ou seja. n-1. pois o número tem 8 dígitos. Então vamos escrever o resultado acima dessa forma: 0b0011. sempre do último para o primeiro.. Cada grupo de 4 dígitos binários é chamado de nibble. . 1 / 2 = 0 e resto 1 Pegando os restos das divisões. assim como fazemos com a base 10 em grupos de 3 dígitos. completamos com zeros à esquerda.0110. Vamos pegar um número como exemplo: 0b0011. Então. Para representar esse número com 1 byte. facilmente podemos converter entre as bases 16 e 2 usando essa tabela. temos o resultado 0b110010. Entrada no shift Data-Link Escape Device-Control 1 Device-Control 2 Device-Control 3 Device-Control 4 Neg-Acknowledge . Tabela ASCII Há um padrão de codificação de caracteres chamado ASCII . um texto. por exemplo. sempre usando números binários. etc.Alimenta formulário Carriage-Return .Início do cabeçalho Start of Text .(pronuncia-se “asc”).Retorno do carro (enter) Shift-Out .Nulo Controle Start of Header .Fim do texto End of Tape .. por exemplo.. que codifica um caracter em 1 byte. números.Início do texto End of Text . Alguns caracteres dessa tabela não são imprimíveis. a tabela a seguir mostra os caracteres da tabela ASCII não imprimíveis: Decimal 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 Hex 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 Ctrl ^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O ^P ^Q ^R ^S ^T ^U ^V Sigla Null SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN Null .Interroga identidade do terminal Acknowledge .Tabulação horizontal Line-Feed .catolicavirtual.Não-reconhecimento Synchronous Idle 16 de 59 20/3/2012 21:13 . Caracteres é uma variedade de símbolos não tratados como números. sendo que o oitavo bit era usado para checagem.(Versão para impressão) Arquitetura de Computadores 1 http://www.. Veremos agora como os caracteres são codificados.Saída do shift Shift-In .Espaço para trás Horizontal Tabulation . uma música.Reconhecimento Bell .Tabulação vertical Form-Feed . o caracter que marca o final da linha de um texto. Caracteres Uma característica importante dos computadores é a capacidade de manipular qualquer tipo de informação em códigos numéricos: uma imagem.American Standard Code for Information Interchange .Fim de fita Enquire .br/conteudos/graduacao/cursos/tec_informa. zeros e uns. Antigamente esses caracteres ASCII eram codificados em 7 bits.Campainha Back-space . criado em 1961. uma letra.Alimenta linha Vertical Tabulation . catolicavirtual.br/conteudos/graduacao/cursos/tec_informa. / 0 1 2 3 4 Decimal 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 Hex. 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 ` a b c d e f g h i j k l m n o p q r s t Caracter 17 de 59 20/3/2012 21:13 ..(Versão para impressão) Arquitetura de Computadores 1 http://www. 23 24 25 26 27 28 29 30 31 17 18 19 1A 1B 1C 1D 1E 1F ^W ^X ^Y ^Z ^[ ^\ ^] ^^ ^_ ETB CAN EM SUB ESC FS GS RS US End-of-Transmission Block Cancel End-Of-Medium Substitute Escape File Separator Group Separator Record Separator Unit Separator A tabela a seguir mostra os caracteres da tabela ASCII que podem ser impressos: Decimal 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Hex. 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 caracter espaço ( ) ! “ # $ % & ' ( ) * + . 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 caracter @ A B C D E F G H I J K L M N O P Q R S T Decimal 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 Hex.. . Aritmética Computacional 18 de 59 20/3/2012 21:13 . Só não vá chegar à padaria e pedir 0xF0 pãezinhos! Aplicando o Conhecimento Antes de finalizar o estudo desta aula..(Versão para impressão) Arquitetura de Computadores 1 http://www.catolicavirtual. podendo contemplar parte dos caracteres de outros idiomas além do inglês. 0x69. Essas características de sistemas numéricos serão usadas em várias disciplinas do curso. existem vários padrões para definir esses caracteres. 0x72. Como existem várias combinações de alfabetos de idiomas diferentes. 0x20. Os últimos 128 caracteres que compreendem a tabela estendida podem variar conforme a codificação usada. < = > ? 85 86 87 88 89 90 91 92 93 94 95 55 56 57 58 59 5A 5B 5C 5D 5E 5F U V W X Y Z [ \ ] ^ _ 117 118 119 120 121 122 123 124 125 126 127 75 76 77 78 79 7A 7B 7C 7D 7E 7F u v w x y z { | } ~ Delete A expressão: “José e Maria” é codificada como: 0x4A. 0x20.. 0x73. 0x65. O padrão ISO/IEC 8859-1 normaliza a codificação de caracteres para línguas latinas ocidentais (que envolve o português).. que codifica 256 caracteres diferentes. então muitos caracteres que não existem na língua inglesa não existiam na tabela ASCII original. 0x82. 0x61. 0x6F. vimos os tipos numéricos que podem ser manipulados pelo computador e a forma de lidar com eles por meio de conversões de base. 53 54 55 56 57 58 59 60 61 62 63 35 36 37 38 39 3A 3B 3C 3D 3E 3F 5 6 7 8 9 : . Aula 04 . e quem sabe até no dia-a-dia. avalie sua aprendizagem realizando as atividades na plataforma de ensino.. usa-se a tabela ASCII estendida. 0x4D. 0x61. ISO 8859-x Lembre-se que padrão ASCII foi criado pelos americanos. Caracteres das línguas latinas ocidentais Nesta aula. Hoje em dia.br/conteudos/graduacao/cursos/tec_informa. catolicavirtual. primeiro soma-se “a” e “b”. etc. geralmente fazendo cálculos sobre eles.. 0+1.br/conteudos/graduacao/cursos/tec_informa. por exemplo. o resultado é 0. Então. 1+3. por exemplo. serão necessárias três operações em momentos distintos. Veremos aqui apenas as duas operações aritméticas básicas – adição e subtração. e o 1 que sobra vai para a próxima soma (carry). Vamos pegar esses cinco exemplos entre as cem possibilidades de somas: 0+0=0 0+1=1 0+2=2 1+3=4 5 + 7 = 12 Correção 5 + 7 não é igual a 12! É igual a 2 e vai um para a próxima soma! Então devemos escrever assim: 5 + 7 = 2 e vai um Para somar dois dígitos binários só temos quatro combinações possíveis: 0+0=0 0+1=1 1+0=1 1 + 1 = 0 e vai um! Esta última soma é igual a dois. como estamos considerando apenas uma soma simples. 19 de 59 20/3/2012 21:13 . depois soma-se o resultado com “c” e depois subtrai-se “d” do resultado. 0+2. números negativos? Como fazer operações com esses bits? Qual a capacidade de representação de uma palavra no computador? E se o resultado de uma operação não puder ser representado em uma palavra. Aritmética na Base Dois Não basta representar valores numéricos no computador. Antes. como proceder? Tentaremos responder a essas questões nesta aula. Vimos na última aula que o computador usa bits para representar qualquer informação. Adição Para falarmos de adição em binário.. mas como representar. Como os valores representados são expressos em binário.(Versão para impressão) Arquitetura de Computadores 1 http://www. por exemplo. pense primeiro em uma adição em decimal. um detalhe muito importante: qualquer operação aritmética realizada em um computador é feita sempre sobre dois valores. é necessário manipular esses valores. se o computador for somar três números e subtrair um quarto número. 0+0. Nesse caso. existem 102 possibilidades de somas. 5+7. dois é “0b10”. Como há dez algarismos diferentes na base 10. precisaremos realizar as operações aritméticas também nesta base numérica. como na operação x = a + b + c – d. br/conteudos/graduacao/cursos/tec_informa. nesse caso como 3 é menor que 5. basta subtrair os valores sem maiores conseqüências. já que temos o vai-um. você precisa “emprestar” um da casa da esquerda no minuendo que passa de 20 para 19 e temos 13 menos 5 que é igual a 8. Note que esse 13 é 3 mais a base numérica que é 10. 20 de 59 20/3/2012 21:13 . Primeiro subtraímos as unidades 8 – 5.(Versão para impressão) Arquitetura de Computadores 1 http://www. Você precisa então usar três parcelas na soma. como 8 é maior que 5. o resultado é 3.catolicavirtual. As combinações de soma então ficam: 0 + 0 + 0 = 0 e vai zero 0 + 0 + 1 = 1 e vai zero 0 + 1 + 0 = 1 e vai zero 0 + 1 + 1 = 0 e vai um 1 + 0 + 0 = 1 e vai zero 1 + 0 + 1 = 0 e vai um 1 + 1 + 0 = 0 e vai um 1 + 1 + 1 = 1 e vai um Considere a soma dos seguintes números binários: 0b01001101 e 0b01111101. Subtração A subtração de dois números binários é idêntica à subtração decimal. A próxima subtração é das dezenas 3 e 5.. Esse detalhe será importante quando fizermos a subtração de binários. vamos pegar um exemplo novamente em decimal e depois faremos o mesmo procedimento com binários.. Faça 2038 – 1055. nesse caso. Olhando para essa subtração. As próximas subtrações são mais simples. as regrinhas: 0–0=0 0 – 1 = 1 e subtrai um da casa da esquerda no minuendo 1–0=1 1–1=0 Vamos testar com os números 0b100110 – 0b001100.br/conteudos/graduacao/cursos/tec_informa. A mais simples é definir um bit para o sinal e convencionar um valor para “+” e outro valor para “-”. Mas como representar números negativos? Números Negativos Há várias formas de representar números negativos no computador (sistema binário). podemos imaginar o seguinte: e se o minuendo for menor que o subtraendo? Nesse caso o resultado será negativo.. são subtrações simples sem “empréstimos”. Nas três primeiras casas. que é a base. e do restante do minuendo à esquerda será subtraído 1.(Versão para impressão) Arquitetura de Computadores 1 http://www. o 0 será somado com dois (0b10). Sinal e Magnitude 21 de 59 20/3/2012 21:13 . Na quarta casa temos 0 – 1. Esse método é conhecido como Sinal e Magnitude. mais uma vez.catolicavirtual. como esse valor era inicialmente (0b10) passa para (0b01).. geralmente esses valores são: 0 = “+” e 1 = “-”. 9 – 0 e 1 – 1. com o resultado 983: Vamos passar agora para os números binários. Vale notar que. o +0 e o -0.(Versão para impressão) Arquitetura de Computadores 1 http://www. e subtraímos do número que se pretende descobrir o complemento. ao invés de 5 casas. tem-se: 0b0010. O número 0b0000. No “complemento à base menos um”. pegamos o maior número da base. a faixa de representação de um número de 8 bits sem sinal (número que só assume valores não negativos) é de 0 a +255. o complemento de 5 é -5.849. no sistema de números com sinal e magnitude.. esse é o complemento de 150 com 3 casas. Se. Vamos pegar o número 150 na base 10 como exemplo. usando sempre uma quantidade pré-determinada de dígitos. ele serve apenas como meio para calcular o tipo de complemento realmente usado. Note que.0010 tem como complemento o valor 0b1111. em binário de 4 bits fica: 0b0001. a faixa de representação vai de -127 a +127. o primeiro bit de um número será o bit de sinal e os bits restantes serão a magnitude do número.999. então a conta seria: 999 – 150 = 849. usássemos 3 casas. referimo-nos ao complemento como “complemento à base dois” ou simplesmente “complemento a dois”. ou seja. Então. existem duas representações para o zero. No caso de números de 8 bits. seja igual a zero. 0b0010 = +2 e 0b1110 = -2. O número que subtrairemos será 99. esse é o complemento de 150 com 5 casas. O complemento à base de um número é calculado achando o “complemento à base menos um” de um número e depois somando mais um. o complemento à base que veremos a seguir. chegaremos ao valor positivo deste número (0b0010).1101. isso é um inconveniente para o computador. em binário de 4 bits. vamos usar números com 8 casas (8 bits). Ambos os casos contêm 256 representações diferentes. Por exemplo. O complemento a dois deste número é: 0b1111 – 0b0010 + 1 = 0b1101 + 1 = 0b1110. No caso da base dois. Por exemplo. 0b0001 = +1 e 0b1111 = -1..999 – 150 = 99. O complemento a dois deste número é: 0b1111 – 0b0001 + 1 = 0b1110 + 1 = 0b1111. basta inverter todos os bits de um número para achar o seu “complemento à base menos um”. o número 0b00000001 vale +1 enquanto 0b10000001 vale -1. Vejamos agora na base 2. então teremos o complemento do número: 99. Complemento a Dois O complemento de um número qualquer é outro número que. A título de curiosidade. Comecemos com o número 1. vamos diminuir o tamanho dos números para apenas 4 bits.1111 – 0b0000. Esse tipo de complemento não é usado diretamente. Vamos pegar o exemplo anterior para calcular o complemento a dois: O número 0b0000. se partirmos do número negativo (0b1110) e acharmos o complemento a dois deste número.catolicavirtual. o complemento a dois de 0b0001 é 0b1111. Agora com o número dois. usando 5 dígitos. A essa altura você já deve ter notado que números negativos começam com o bit “1” e números positivos começam com o bit “0”. 22 de 59 20/3/2012 21:13 . mas note que. Para facilitar nossos exemplos.0010 tem como complemento à base o valor 0b1111. onde n é a quantidade de bits do número. o “complemento à base menos um” e o “complemento à base”.br/conteudos/graduacao/cursos/tec_informa.0010 = 0b1111. somado ao primeiro. Existem dois tipos de complementos.0010 + 1. A faixa de representação desse sistema numérico vai de -(2n-1-1) a +(2n-1-1). Uma alternativa a esse método é o complemento a dois. ou seja. assim como o complemento de -7 é 7.1111 – 0b0000. Neste sistema. no caso da base 2. pois tem que tratar os dois valores como um só. 23 de 59 20/3/2012 21:13 .(Versão para impressão) Arquitetura de Computadores 1 http://www.. tínhamos os seguintes valores (com 4 bits): Decimal 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 Binário 8 9 10 11 12 13 14 15 Decimal 1000 1001 1010 1011 1100 1101 1110 1111 Binário Agora. Para determinar essa faixa. haverá um valor negativo a mais do que os positivos. na base dois só existe uma representação do número zero.1 mostra o esquema de representação de números em complemento a dois usando 4 bits e n bits. Enquanto considerávamos os números sem o bit de sinal (apenas números positivos). onde “n” é o número de bits do número. A figura 4. A faixa de valores de números de 8 bits em complemento a dois é: -128 a + 127..br/conteudos/graduacao/cursos/tec_informa. faça: -(2n-1 ) a +(2n-1)-1. Como no complemento. com o complemento a dois temos os seguintes valores (com 4bits): Decimal 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 Binário -8 -7 -6 -5 -4 -3 -2 -1 Decimal 1000 1001 1010 1011 1100 1101 1110 1111 Binário Note que o complemento a dois de 0 é o próprio 0: 0b1111 – 0b0000 + 1 = 0b0000.catolicavirtual. A faixa de representação de um número de 4 bits é de -8 a +7. 0000. O overflow ocorre quando a soma de dois números positivos dá negativa ou quando a soma de dois números negativos dá positiva.1111. Vejamos outras soma: 24 de 59 20/3/2012 21:13 . Figura 4. O menor número da faixa de representação é sempre o dígito “1” seguido de n-1 zeros à direita. acrescentam-se uns à esquerda. -8. Extensão de Sinal Um número em complemento a dois pode ser estendido a qualquer quantidade de bits maior que o mínimo necessário. e com 8 bits.1110. se o número for negativo. o número 1 é 0b1111. Por exemplo. 4.1111. Por exemplo.1110 = 0b1111. que equivalem a: 97 + 33: Como a soma (+130) ultrapassa a faixa de representação do número. dizemos que ocorreu um overflow no resultado.(Versão para impressão) Arquitetura de Computadores 1 http://www.br/conteudos/graduacao/cursos/tec_informa. não é possível representar o resultado corretamente. o menor número. -128. Por exemplo.. independente da quantidade de bits. O computador geralmente registrará o resultado errado. com 4 bits. com 4 bits.. independente da quantidade de bits. é 0b1000.0000 + 0b0010. é 0b1000. e com 8 bits é 0b1111. o menor número. Por exemplo. que é de -128 a +127. O número -1 é sempre todos os bits iguais a “um” independente da quantidade de bits. 3. um número de 8 bits pode ser estendido a 16 bits. com 4 bits. +7.1111.catolicavirtual. Por exemplo.0001. independente da quantidade de bits.0001. se o número for positivo. acrescentam-se zeros à esquerda. Não é possível a soma de um número positivo com um número negativo gerar overflow. O número +1 é sempre o dígito “1” seguido de n-1 zeros à esquerda. basta acrescentar bits à esquerda.1 – Representação de Números em Complemento a Dois Algumas observações sobre números em complemento a dois: 1. é 0b0111. cabe ao programador tomar os cuidados necessários. o número 1 é 0b0001 e com 8 bits é 0b0000. com 4 bits. o maior número. Overflow Suponha a seguinte soma de dois números positivos de 8 bits: 0b0110. 2. o número -2 = 0b1111. Por exemplo. O maior número da faixa de representação é sempre o dígito “0” seguido de n-1 “uns” à direita. maiores ficam as necessidades dos programas. Uma dica para determinar a ocorrência de overflow é: repare nos dois últimos carrys da soma. vimos como o computador manipula os dados através de operações binárias simples. Na operação de leitura. mas também os próprios programas. Nesta soma não temos um overflow. por exemplo. um valor será armazenado na memória. Nesta soma temos um overflow. Nesta aula. geralmente por parte do processador. Tipos de Memória 25 de 59 20/3/2012 21:13 . um valor armazenado será obtido da memória geralmente por parte do processador. Há duas operações básicas que podem ser feitas em uma memória de computador: a leitura e a escrita. mesmo quando não temos tanta memória disponível. 01 ou 10. avalie sua aprendizagem realizando as atividades na plataforma de ensino. Aplicando o Conhecimento Antes de finalizar o estudo desta aula. a Linguagem de Programação.catolicavirtual. Já na operação de escrita. como também a representação de números negativos.Memória (Hierarquia de Memória. As informações são armazenadas na memória para uso posterior. sendo que o tempo que as informações permanecerão gravadas vai depender do tipo de memória utilizada. Esse fato terá relevância em outras disciplinas do curso como. se eles forem iguais. de tal forma que a quantidade nunca parecia suficiente. pois o resultado está correto.br/conteudos/graduacao/cursos/tec_informa.. não ocorre overflow. vimos que um sistema de computação utiliza um dispositivo de armazenamento de informações (a memória). iniciou-se um ciclo vicioso que busca cada vez mais memória.. Definição de Memória Na aula 2. A compreensão dos limites dos valores armazenados em variáveis após operações aritméticas é fundamental no momento de escrever programas de computador. se esses valores forem diferentes. ocorre overflow. Ambas as operações usarão os endereços de memória para referenciar onde será escrito ou lido o valor.(Versão para impressão) Arquitetura de Computadores 1 http://www. Tipos de Memória. o da última coluna e o que vai para fora da soma (destacado em magenta nos exemplos acima). 00 ou 11. Aula 05 . Nesta aula. e talvez nunca seja no futuro. veremos como combinar vários tipos de memória para obter o melhor desempenho possível. Memória Principal) A grande sacada da arquitetura de von Neumann foi ter uma memória onde se pode armazenar não apenas os dados que serão manipulados pelos programas. pois quanto mais memória. Desde aquela época. Como essas memórias são mais rápidas. Esse tipo de memória serve. A tentativa de acesso é feita sempre partindo do nível mais alto da hierarquia de memórias. Quanto à persistência dos dados armazenados. consideramos também discos como memória. nesse caso. memória de acesso randômico não faz jus ao significado dela. Há uma relação direta entre a capacidade de armazenamento da memória e a velocidade de acesso. quanto mais rápido for o acesso a informações em uma memória. A memória RAM é uma memória que pode tanto ser lida como escrita. é feita uma busca no nível abaixo da hierarquia de memória. por exemplo. persistência dos dados armazenados e custo. essas memórias têm características diferentes em função do seu uso. A memória ROM é uma memória que já vem com os dados pré-gravados no computador. Isso limita o desempenho do sistema como um todo. A velocidade de acesso às informações nos registradores é tão alta quanto o processador pode acessar.(Versão para impressão) Arquitetura de Computadores 1 http://www. pois memórias ROMs também são de acessos randômicos. elementos eletrônicos que geralmente ficam dentro do processador. Entenda memória como uma forma de armazenamento de informações. Por isso.1 ilustra algumas dessas características: Figura 5. tecnologia envolvida na sua construção. Quando você se refere à memória do computador sem especificar exatamente qual. Uma forma de acelerar o acesso às informações é organizar as memórias de forma hierárquica. já que o processador precisa buscar as instruções de um programa na memória. mas esse termo nunca foi utilizado. colocando as mais rápidas mais próximas ao processador. podemos dividir as memórias em: memória RAM (Random Memory Access) e memória ROM (Read Only Memory). Isso se dá por uma questão de custo.br/conteudos/graduacao/cursos/tec_informa. evidentemente o tempo de acesso será menor. pois ela funciona numa velocidade menor que a do processador. Há vários tipos de memórias no computador. encontram-se os registradores. A figura 5. A tradução literal de RAM.1 – Hierarquia de Memórias No nível mais alto dessa hierarquia de memória. Tempo Médio de Acesso A memória é um ponto crítico na execução de programas no computador. Seria mais correto o termo em inglês RWM (Read And Write Memory). A figura 5.1 representa a hierarquia de memórias no computador.. velocidade de acesso às informações. 26 de 59 20/3/2012 21:13 .. para armazenar programas de inicialização do computador. Caso haja a possibilidade de a informação requerida não estar no nível de memória acessado. já que este deve executar alguns passos automaticamente sem a intervenção do usuário. o preço por bit é tão maior quanto a velocidade de acesso deste bit.catolicavirtual. Esse processo se repete para todos os níveis de memória até que a informação seja encontrada. menor será a capacidade de armazenamento. é à memória RAM que está se referindo. Veremos mais sobre registradores nas próximas aulas. como capacidade de armazenamento. th é o tempo de acesso no caso de um acerto. A idéia então é aumentar o número de bytes transmitidos no menor número de pulsos. em caso de acerto. mais cara.(Versão para impressão) Arquitetura de Computadores 1 http://www. ao passo que a freqüência que determina a velocidade da memória não aumenta tanto assim. Os primeiros DIMM eram os módulos SDR (Single Data Rate). Os módulos SIMM de 72 vias substituíram os de 30 vias e foram usados a partir dos primeiros Pentiums. leve em consideração a seguinte fórmula: ta = (th x ph) + (tm x pm ) Onde ta é o tempo médio de acesso a uma informação em um nível de memória. Essas vias transmitem tanto os bits do endereço de memória quanto os bits dos dados e outros de controle do funcionamento da memória. Veja um exemplo: se um nível de memória tem 75% de chance de conter uma informação..25) = 7. A seguir listamos as principais taxas de transmissão das principais memórias: Tipo Modelos Freqüência do Taxa de Transmissão (*) 27 de 59 20/3/2012 21:13 . tm é o tempo de acesso no caso de uma falha. Esses chips atualmente são colocados em pequenas placas. temos dois tipos principais: a memória RAM estática (SRAM) e a memória RAM dinâmica (DRAM). conseqüentemente. chamamos de falha (miss). mas esta última consegue uma taxa maior de transmissão de dados. Em termos de freqüência. Esses módulos foram largamente usados nos computadores 386 e 486. uma memória SDR de 133MHz trabalha na mesma freqüência de uma DDR-266. a velocidade do processador é medida em pulsos por segundo. A primeira é mais antiga. como já vimos na aula 2. Memórias são formadas por componentes eletrônicos (sem levar em consideração as memórias secundárias) encapsulados em circuitos integrados.5ns + 25ns = 32. no caso do DDR2.6GHz que acessa uma memória por uma via de 133MHz será aproximadamente 10 vezes mais rápido do que a memória. pense no seguinte. Esses módulos eram capazes de transmitir 32 bits de cada vez. chamamos de acerto (hit).. porém. até hoje. mais barata. o tempo de acesso aos níveis inferiores na hierarquia de memória. os módulos.br/conteudos/graduacao/cursos/tec_informa. Para você determinar o tempo médio de acesso a uma informação.75) + (100 x 0. e quatro dados em um ciclo. por exemplo um processador de 1. que se conectam à placa mãe. dois dados em um ciclo. pois só possuem um lado de contato com o slot na placa-mãe com 30 vias (ligações). Trocando em miúdos para você entender melhor. ph é a probabilidade de acerto de acesso.Double Inline Memory Module. A memória DDR consegue isso transmitindo em um único pulso de clock mais de um dado por uma mesma via. essa freqüência cresce muito rapidamente à medida que novos modelos de processadores são lançados. depois surgiram os módulos DDR (Double Data Rate) e DDR2. teremos ta = (10 x 0. substituíram os SIMMs como padrões de módulos de memória. sendo usados até hoje. Quando uma informação procurada em um nível de memória é encontrado. Os módulos DIMM . e o tempo de acesso a essa memória seja de 10ns. já a segunda. é usada principalmente para a construção de memórias cache. no caso do DDR.5ns Tecnologias de Fabricação de Memória Em termos de tecnologia de fabricação de memória RAM.catolicavirtual. que veremos na próxima aula. Os módulos mais antigos são os chamados SIMM Single Inline Memory Module. em caso de falha. ou seja. e 100 ns. e pm é a probabilidade de falha de acesso. a mais rápida e. Esses módulos podem transmitir 64 bits de cada vez. que surgiram na época do Pentium II. é utilizada para a fabricação de memórias principais (MP). quando a informação não é encontrada. A diferença entre esses módulos é a capacidade de transmitir um dado da/para memória em um ciclo de clock: no caso dos módulos SDR. Para acessar um dos 16 bits individualmente. de tal forma que consiga identificar a linha e a coluna da matriz. graças à ação de mux que é controlado pelos bits menos significativos do endereço. todos os quatro bits desta linha são enviados para o multiplexador (mux).01. basta multiplicar a freqüência do barramento pelo número de bytes transmitidos de cada vez. mas apenas o bit da coluna (01) é selecionado (linha azul no desenho). Organização da Memória DRAM A organização de um chip de DRAM tem o formato de uma matriz. No exemplo da figura.2 GBytes/s 3..6 GBytes/s 200MHz 233MHz 250MHz 133MHz 166MHz 200MHz 3. lembrando que.11).br/conteudos/graduacao/cursos/tec_informa.5 GBytes/s 9. 28 de 59 20/3/2012 21:13 . como veremos na próxima sessão.3 GBytes/s 6. no DDR é 16 e no DDR2 é 32. Para calcular essas taxas. sendo que os bits mais significativos (10) identificam a linha a ser acessada e os bits menos significativos (01) identificam a coluna a ser acessada.(Versão para impressão) Arquitetura de Computadores 1 http://www.4 GBytes/s 66MHz 100MHz 133MHz 100MHz 133MHz 166MHz 528 MBytes/s 800 MBytes/s 1 GByte/s 1.6 GByte/s 2. como mostrado na figura 5..5 GBytes/s 8. pois em um acesso à memória é necessário endereçar o dado e depois transmitir. barramento PC-66 SDR PC-100 PC-133 PC-1600 ou DDR200 PC-2100 ou DDR266 PC2700 ou DDR333 DDR PC3200 ou DDR400 PC3700 ou DDR466 PC4000 ou DDR500 PC2-4200 ou DDR2-500 PC2-5300 ou DDR2-667 PC2-6400 ou DDR2-800 DDR2 PC2-7500 ou DDR2-933 PC2-8500 ou DDR2-1066 PC2-9600 ou DDR2-1200 233 MHz 266MHz 300MHz 7. o número de bytes é igual a 8. Nesta figura temos uma matriz 4x4 (16bits). note a relação entre o tamanho do endereço (4 bits) e o tamanho da matriz (16bits=24). O endereço 1001 (omitiremos o prefixo “0b” para facilitar a representação) é dividido em 10. Na saída da matriz teremos apenas um bit que foi lido. Os bits que ativam a linha da matriz entram em um decodificador (decod) e a linha correspondente é ativada (linha vermelha no desenho).10.catolicavirtual. no caso do SDR.1 GBytes/s 2. Essas taxas só ocorreriam se apenas os dados fossem transmitidos. onde cada linha e cada coluna são identificadas por dois bits com os valores (00.2.7 GBytes/s (*) As taxas de transmissão mostradas na tabela são teóricas. o endereço a ser acessado é 0b1001.01.7 GBytes/s 4 GBytes/s 4. o controlador da memória divide o endereço em duas partes.2 GBytes/s 5. br/conteudos/graduacao/cursos/tec_informa. Precisando. veremos como o processador executa os programas que estão na memória e como esses programas manipulam os dados da memória. Figura 5.catolicavirtual.. para isso. Neste exemplo. sendo então acessado vários bits simultaneamente como mostra a figura 5. onde os dados são transmitidos para o processador. avalie sua aprendizagem realizando as atividades na plataforma 29 de 59 20/3/2012 21:13 . mas a memória pode realizar também a operação de escrita.2 – Organização de um Chip de Memória DRAM Esse processo se repete em paralelo em vários chips de memórias ao mesmo tempo. Nesta aula. vimos as principais tecnologias de memória. 8 chips são acessados simultaneamente.(Versão para impressão) Arquitetura de Computadores 1 http://www. esses 8 bits (1 byte) são enviados a oito linhas distintas que formam o barramento de dados. diferenciando os vários tipos e emprego dessas memórias e a forma como as informações são acessadas. Figura 5. nesse caso. Aplicando o Conhecimento Antes de finalizar o estudo desta aula.3 – Acesso à Palavra de 8 bits em Memória DRAM Vimos aqui um processo de leitura de um valor da memória. Note também que na figura 5. lendo 1 bit em cada um e totalizando 8 bits lidos.3. Nas próximas aulas. somente inverter o fluxo do bit que foi lido. Concluindo o acesso.3 os 4 bits (1001) de endereço são levados a todos os 8 chips em paralelo através do barramento de endereço. ele seria enviado para a matriz no local selecionado e gravado.. 1 – Localidade Espacial A localidade temporal quer dizer que. é necessário ter o conceito de localidade do programa. Figura 6.2 – Localidade Temporal Uso das Localidades Espacial e Temporal O conceito de localidade é aplicado da seguinte forma: como a memória cache é uma memória bem menor que a memória principal. serão feitos dez acessos ao mesmo valor na memória.catolicavirtual. Essa localidade é dividida em dois tipos: localidade espacial e localidade temporal... n+2... o processador procurará o dado primeiro na 30 de 59 20/3/2012 21:13 . . maior o custo. vimos que muitas vezes os dados são acessados pelo processador a uma velocidade mais baixa do que ele poderia acessar em decorrência da latência do barramento da memória.(Versão para impressão) Arquitetura de Computadores 1 http://www. vamos ver como essa memória mais rápida funciona. tempo “não” é dinheiro. “se um programa acessa uma informação na memória. pois quanto mais rápida a memória. de ensino. se o programa acessa um endereço n. mas conterá as últimas informações acessadas.Memória Cache Na aula anterior. Aula 06 . Para tal. estariam na memória principal. não poderá conter todas as informações que são solicitadas. ao contrário da crendice popular.. “se um programa acessa uma informação na memória.br/conteudos/graduacao/cursos/tec_informa. logo em seguida. e que a solução para este problema seria usar uma memória mais rápida. Isso é uma característica dos programas da máquina de von Neumann. Nesta aula. a princípio. A localidade espacial quer dizer que. Para entender o funcionamento da cache. Isso quer dizer que. é provável que venha a acessar essa mesma informação em um curto prazo”. é provável que venha a acessar outra informação próxima a essa em um curto prazo”. Figura 6. é bem provável que venha a acessar um endereço n+1. Mas. Localidade A idéia da memória cache é aumentar a velocidade de acesso às informações que. Veja o exemplo: suponha que um programa deve ler um valor da memória e somar esse valor dez vezes. se um novo acesso for feito a esse dado no futuro. chamamos de “linha”. Para todos esses modelos. O processador verifica se a palavra solicitada está na cache. A figura 6. no caso de miss cache. então haverá (B = 2n/K) blocos. tamanhos comuns de linhas vão de 8 a 128 bytes. Mas não é só isso. acessa um valor não pelo endereço. não precisará mais acessar a memória principal. Por exemplo. O mapeamento é a forma de determinar em qual linha da cache um bloco será carregado. 4. Essa é a idéia da cache fundamentada pelo conceito da localidade temporal.. Tamanho da memória principal: 232 bytes = 4GBytes 31 de 59 20/3/2012 21:13 . Senão. não será levado apenas o dado solicitado. o bloco da MP que contém a palavra é carregado na cache. Há três tipos. Esse bloco. Se ocorrer hit cachê.3 – Acesso à Memória Cache Mapeamento da Memória Cache A cache usa um conceito de acesso associativo. O que determina os tamanhos dos blocos na memória principal é o tamanho das linhas da cache. pois o dado já estará na cache. Se há 2n palavras na memória. pois a memória principal é bem maior que a cache. 3. Para implementar esse modelo de memória cache. mas um bloco de alguns bytes da área de memória onde se encontra esse dado solicitado. uma cópia do dado acessado é feita na cache. mapeamento em função da cache: mapeamento direto. se o dado estiver lá (hit cache). uma memória principal de 232 bytes e uma cache de 1024 linhas de 64 bytes de comprimento terá essa relação: 1.3 mostra as possibilidades de situações no acesso à cache. Mas há também a localidade espacial. mapeamento associativo e mapeamento associativo por conjunto. é necessário fazer um mapeamento da memória principal na memória cache. caso contrário (miss cache). B é bem maior que C. quando nos referimos à cache. e.. a palavra é acessada. Note que n é o tamanho do endereço (em bits) de memória que será gerado pelo processador. além de acessar o dado na memória principal. é necessário dividir a memória principal em blocos de palavras. ou seja. 2. considere a cache organizada em C linhas (da linha 0 à linha C-1) de K palavras cada linha e a memória principal organizada em 2n palavras. o processador faz um acesso à memória principal em busca do dado solicitado. é preciso saber em que local da cache poderá estar determinado o endereço da memória. ou seja. o processador não precisará acessar a memória principal. Figura 6.catolicavirtual. memória cache. A palavra é acessada.br/conteudos/graduacao/cursos/tec_informa. deve ser levado o bloco inteiro que contém essa palavra. mas por uma associação que faz a um determinado conteúdo. quando levar uma palavra de memória para a cache. Para que um endereço gerado pelo processador seja associado na cache. seguindo os seguintes passos: 1. Esse fundamento é utilizado da seguinte forma: quando o dado é levado da memória principal para a cache.(Versão para impressão) Arquitetura de Computadores 1 http://www. O quanto a MP é maior que a cache: 4GB/64KB = 65. A figura 6. Para determinar o número da linha da cache onde certo bloco poderá ser mapeado faça: i = j modulo C Onde i é o número da linha. esses identificadores são as tags. um bloco da memória principal só pode ser mapeado em uma linha específica da cache. Figura 6.4 – Memória Cache x Memória Principal Mapeamento Direto No mapeamento direto.(Versão para impressão) Arquitetura de Computadores 1 http://www. Por exemplo: o bloco 2000 da memória principal será mapeado na linha 976 de uma cache de 1024 linhas. ou etiquetas.catolicavirtual. pois (2000 modulo 1024) = 976.. Tamanho da memória cache: 1024 linhas x 64 bytes por linha = 64KBytes 3. 2. 32 de 59 20/3/2012 21:13 . contém outras informações que identificam quais os dados estão armazenados na cache. além dos dados replicados da memória principal. e apenas nesta linha. j é o número do bloco na memória principal e C é a quantidade de linhas na cache.br/conteudos/graduacao/cursos/tec_informa..536 A memória cache.5 detalha a relação entre os blocos da memória principal e as linhas da cache onde podem ser mapeadas. ..1 * cache de C linhas e MP de B blocos Uma linha da cache pode conter vários blocos da memória.. o bloco 1025.. o bloco 0 será mapeado na linha 0. ..... . O circuito controlador divide o endereço de memória gerado pelo processador em três campos: a tag (t).. 1024. B–C B–C+1 B–C+2 .(Versão para impressão) Arquitetura de Computadores 1 http://www. A figura 6.. na linha 1.6 mostra a distribuição desses campos no endereço de memória. C-2 C-1 0 1 2 ..4. Sendo assim.catolicavirtual. C-2 C-1 C Blocos mapeados da memória principal 2C 2C + 1 2C + 2 . O próximo bloco.br/conteudos/graduacao/cursos/tec_informa. em momentos distintos. . 3C .. 3192.2 2C .. 33 de 59 20/3/2012 21:13 . a linha 0 da cache poderá conter os blocos 0.... etc. até o bloco 1023 que será mapeado na linha 1023 (a última da cache).. 2048.. Esse mapeamento se repete para todos os blocos. o bloco 2 na linha 2. B–2 B–1 C+1 C+2 ..5 – Relação entre Blocos e Linhas no Mapeamento Direto Pegando como exemplo as memórias da figura 6... o bloco 1 na linha 1. e assim por diante. .1 .. Mas como saber qual bloco está presente em uma linha da cache? Para responder a esta questão devemos entender como o circuito que controla o acesso à cache consegue determinar a linha a ser acessada e qual o bloco presente nessa linha. etc.. De uma forma mais genérica temos o seguinte: Número da Linha 0 1 2 . . até o bloco 2047.. o número da linha (r) e o número da palavra (w).2 3C . o 1024 será mapeado na linha 0.. 2C . Figura 6. 7 mostra um exemplo de uma memória de 224 palavras organizada em blocos de quatro palavras. em azul.6 – Formato de Endereço de Memória Principal com Mapeamento Direto Vamos pegar um exemplo bem menor para podermos entender o significado desses campos.byte 3 do bloco 0 0b000100 <. Note que a junção dos campos t+r no endereço forma o número do bloco correspondente na MP. O último campo. Veja que. destacados em negrito na listagem acima).byte 3 do bloco 14 0b111000 <. O campo linha (r) no endereço são os dois bits centrais que indicam em qual linha da cache o conjunto pode ser mapeado.byte 2 do bloco 0 0b000011 <. são os dois bits mais significativos (mais à esquerda). por exemplo.01. Supondo que o endereço de memória tenha apenas 6 bits. Como exercício. ou 64 bytes e a memória cache com 16 bytes organizados em quatro linhas. A figura 6.byte 0 do bloco 1 0b000101 <. o endereço 0b111011 está no bloco 0b1110 da memória.(Versão para impressão) Arquitetura de Computadores 1 http://www.. esse campo distingue as várias possibilidades de blocos em uma linha específica.catolicavirtual. 0b000000 <. a MP tem (64/4=16) blocos. O campo palavra (w) no endereço são os dois bits menos significativos (mais à direita.11. para cada bloco.byte 1 do bloco 15 0b111110 <.10. Note as proporções que sempre se mantêm.. ou seja. esses campos se repetem 00.byte 0 do bloco 0 0b000001 <. a fim de informar qual bloco está presente no momento. 0b111011 <. MP = 64 bytes. e o campo “linha”. O campo “tag” é destacado em amarelo..byte 1 do bloco 1 . Você pode deduzir que a 34 de 59 20/3/2012 21:13 .byte 1 do bloco 0 0b000010 <. Esse campo representa a localização de um endereço dentro de um bloco.byte 0 do bloco 15 0b111101 <.byte 2 do bloco 15 0b111111 <. cache = 16 bytes. Cada linha da cache deve armazenar um campo tag.br/conteudos/graduacao/cursos/tec_informa. a MP tem 4 vezes mais blocos que a cache.byte 3 do bloco 15 Como a cache tem 16 bytes em quatro linhas.. a MP é 4 vezes maior que a cache. escreva todos os 64 endereços de memória em uma folha. Também chamamos esse campo de deslocamento. a tag (t) no endereço. então cada linha (ou cada bloco) tem quatro bytes de tamanho. teremos uma memória de 26 bytes. Figura 6. O campo tag do endereço é comparado com o campo tag armazenado na cache (2). o processador acessa a palavra da MP.. e uma cópia do bloco é copiado da MP para a cache. A linha da cache é localizada usando o campo “r” (1).br/conteudos/graduacao/cursos/tec_informa.8 e funciona da seguinte forma: O endereço fornecido pelo processador é dividido nos três campos. Figura 6. e o processador acessa a palavra que está na cache usando o campo “w”. Se o campo tag é igual à tag armazenada na linha da cache. então é um miss cache (4).(Versão para impressão) Arquitetura de Computadores 1 http://www.7 – Exemplo de Organização de Memória Principal com Blocos de 4 Bytes O procedimento do controlador da cache com mapeamento direto é mostrado na figura 6. nesse caso.8 – Acesso à Memória Cache com Mapeamento Direto 35 de 59 20/3/2012 21:13 .catolicavirtual. cache contém 214 linhas de quatro palavras cada. então é um hit cache (3). Se o campo tag é diferente da tag armazenada na linha da cache. Figura 6.. Se sim: hit cache. um computador com: Uma MP de 1MByte Uma cache de 1K-linhas Linhas de 8 bytes cada uma Tem o seguinte formato de endereço: de comprimento (220 = 1Mega) w = (log2 8) = 3bits menos significativos r = (log2 1K) = 10bits intermediários t = (20 – 10 – 3) = 7bits mais significativos 20 bits Campo Campo Campo Em qual linha da cache pode ser mapeado o endereço de memória 0xABCDE? Para responder a essa pergunta.9 ilustra esse mapeamento. pois esses dois blocos são mapeados na mesma linha. um bloco da memória pode ser mapeado em qualquer linha da cache. então temos: 0b1010. Uma solução para este problema é o mapeamento associativo. Vamos pegar outro exemplo.1100.1101. Agora é só dividir os campos: w = 0b110 = 0x6 r = 0b11. No mapeamento associativo.0101 = 0x55 O controlador de cache vai verificar se na linha 0x39B o campo tag é igual a 0x55. ocorrerá vários miss caches seguidos. se não: miss cache.1011. transformar o endereço em binário.catolicavirtual.(Versão para impressão) Arquitetura de Computadores 1 http://www.1011 = 0x39B t = 0b101.. Para fazer isso é mais prático. 36 de 59 20/3/2012 21:13 .br/conteudos/graduacao/cursos/tec_informa. se um programa precisa acessar o bloco 0 e o bloco C várias vezes seguidas.. divida o endereço nos campos t+r+w. Sendo assim.1001. A figura 6. Mapeamento Associativo O inconveniente do mapeamento direto é que um bloco só pode ser mapeado em uma linha específica.1110. então é um miss cache (4/5). você tem um circuito simples. então é um hit cache (3).11 mostra o esquema de acesso a esse tipo de cache: O endereço fornecido pelo processador é dividido em três campos: tag “t”.1100.1011.(Versão para impressão) Arquitetura de Computadores 1 http://www. porém com um custo alto na parte de controle da cache. cada qual com V linhas. no endereço de memória não constará o campo linha (r). Se sim: hit cache. Tomando como exemplo o mesmo computador usado no mapeamento direto.9 – Acesso à Memória Cache com Mapeamento Associativo Nesse caso. então se diz caches 2-ways. e o processador acessa a palavra que está na cache.0111. No mapeamento associativo por conjunto. linhas de 8 bytes cada uma Campo w = (log2 8) = 3bits Campo t = (20 – 3) = 17bits Temos então os campos do endereço 0xABCDE (0b1010. mas com o inconveniente de mapear vários blocos em uma linha específica. no mapeamento associativo. Sendo assim. o mapeamento associativo por conjunto. o endereço é formado apenas por dois campos. apenas uma das X linhas do conjunto terá o bloco solicitado. As caches associativas por conjunto geralmente têm de 2. a checagem de hit/miss cache será mais complexa..1101. pois quanto maior a cache. No mapeamento direto. Se o campo tag é diferente de todas as tags armazenadas no conjunto da cache. A quantidade de linhas por conjunto é chamada de caminho (way).1110): w = 0b110 = 0x6 t = 0b1. Mapeamento Associativo por Conjunto Há vantagens e desvantagens nos dois mapeamentos vistos anteriormente. nesse caso.0101. A solução para esses problemas é a junção dos dois mapeamentos em um terceiro tipo. Cache de 1K-linhas. então só ocorre hit-cache em um dos caminhos. conseqüentemente.10 – Formato de Endereço de Memória Principal com Mapeamento Associativo O circuito controlador será mais complexo.. mais linha ela terá e. Note que. Figura 6. O conjunto da cache é localizado usando o campo “s” (1). se não: miss cache. como um bloco pode estar em qualquer linha.10: Figura 6. Se o campo tag é igual à tag armazenada na linha da cache. você tem uma flexibilidade maior nas possibilidades de mapeamento. já que precisa comparar várias tags simultaneamente. 4 ou 8 caminhos. a memória cache é dividida em S conjuntos.catolicavirtual. 4-ways ou 8-ways. A figura 6. O campo tag do endereço é comparado com os campos tags armazenados na cache (2).1011 = 0x1579B O controlador de cache vai verificar se alguma linha contém o campo tag igual a 0x1579B.1001. o controlador da cache deve testar o campo tag do endereço com todas as tags armazenadas na cache. a tag (t) e o número da palavra (w) conforme a figura 6. conjunto “s” e palavra “w”.br/conteudos/graduacao/cursos/tec_informa. usando o campo “w”. em uma cache X-way. o processador acessa a palavra da MP e uma cópia do bloco é 37 de 59 20/3/2012 21:13 . quando o processador gera um endereço. temos: MP de 1MByte. sendo assim.0101.12 – Formato de Endereço de Memória Principal com Mapeamento Associativo por Conjunto Vamos ver um exemplo de uma cache associativa por conjunto 4-way. a cache tem 256 conjuntos.12).1011 = 0x9B t = 0b1. Políticas de Substituição em Cache O processador precisa escrever constantemente na memória.11 . um endereço de memória é dividido em três campos (conforme a figura 6. o fato é que. copiado da MP para uma das linhas do conjunto da cache. temos: MP de 1MByte. então cada caminho tem 2KB (256 linhas x 8Bytes). Figura 6...catolicavirtual. assim como no mapeamento direto. mas o campo central é o número do conjunto ao invés do número da linha. Campo w = (log2 8) = 3bits Campo s = (log2 256) = 8 bits Campo t = (20 – 3 – 8) = 17bits Em qual linha da cache pode ser mapeado o endereço de memória 0xABCDE? Novamente. a cache tem 8KB (1K-linhas x 8Bytes) divididos em 4 caminhos. Tomando o mesmo exemplo visto anteriormente.0111 = 0x157 O controlador de cache vai verificar se no conjunto 0x9B tem alguma linha cujo campo tag seja igual a 0x157.(Versão para impressão) Arquitetura de Computadores 1 http://www. linhas de 8 bytes cada uma. se não: miss cache. 4-way Neste caso.Acesso à Memória Cache com Mapeamento Associativo por Conjunto 2-way Nesse tipo de cache. cache de 1K-linhas. Se sim: hit cache. dividindo o endereço nos campos temos: w = 0b110 = 0x6 s = 0b1001.br/conteudos/graduacao/cursos/tec_informa. como a cache contém apenas 38 de 59 20/3/2012 21:13 . Figura 6. . Figura 6. e 8..br/conteudos/graduacao/cursos/tec_informa. 3. O bloco N é levado da MP para a linha R na cache. O bloco N+C é atualizado com o valor correto da linha R. que será mapeado na linha R da cache.catolicavirtual. e 10. O bloco N é atualizado com o valor correto da linha R. 3. há uma hora que as informações que são gravadas na cache devem ser gravadas na memória principal para que seja mantida a consistência dos dados na memória. mas também. 2. O bloco N é atualizado com o valor correto da linha R. o que gera o miss cache.. a escrita pode ser no momento em que o dado é escrito na cache (write back) ou então no momento em que a linha na cache é substituída por outro bloco da memória (write through). é feita a segunda escrita na cachê. O bloco N é levado da MP para a linha R na cache.(Versão para impressão) Arquitetura de Computadores 1 http://www. É feita a escrita na cache. O processador faz nova solicitação de escrita. que será mapeando na mesma linha R da cache. que será mapeado na mesma linha R da cache. 5. O processador faz uma solicitação de escrita no bloco N. 39 de 59 20/3/2012 21:13 . 2. A escrita dos dados na memória principal pode ocorrer em dois momentos.. agora no bloco N+C. O processador solicita nova escrita no bloco N. 7. o que gera o miss cache. É feita a primeira escrita na cache.14 mostra o funcionamento da cache write through: 1. O processador faz uma solicitação de escrita no bloco N. como este já está na cache. como este já está na cache. 4. o que gera o miss cache. 6. 8. O processador solicita nova escrita no bloco N. agora no bloco N+C. O processador faz nova solicitação de escrita. É feita a escrita na cache.13 – Operação da Cache Write Back A figura 6. 7. dependendo do tipo de cache usado. o que gera o miss cache. 9. O bloco N é atualizado com o valor correto da linha R antes de. é feita a segunda escrita na cache sem necessidade de acesso à MP.13 mostra o funcionamento da cache write back: 1. que será mapeado na linha R da cache. A figura 6. Levar o bloco N+C da MP para a linha R na cache. 6. O bloco N+C é levado da MP para a linha R na cache.. 5.. 4. uma parte da memória principal. É feita a primeira escrita na cache. Barramento de endereço: por onde trafega o endereço acessado. é através de uma linha que o processador diz à memória que quer fazer uma leitura. é a forma que o processador tem de comandar o restante dos componentes. deve haver um mecanismo de arbitragem para determinar quem e quando pode acessar o barramento. Como os barramentos são compartilhados. Aplicando o Conhecimento Antes de finalizar o estudo desta aula.14 – Operação da Cache Write Through Esta aula concluiu o conteúdo sobre as formas de armazenamento das informações que começamos com a memória principal. mas há casos em que um dispositivo de E/S pode gerar um endereço. São divididos em três classes: 1. será usada para enviar um dado do disco para a memória. quando o disco avisa ao processador que já acabou de fazer uma transmissão para a memória.br/conteudos/graduacao/cursos/tec_informa. Nesta aula. alguns mais rápidos. outros mais lentos.(Versão para impressão) Arquitetura de Computadores 1 http://www. mas sem uma forma de entrar com os dados no programa ou de receber os resultados desses programas não faria sentido existir o computador. Essas linhas de controle são tanto linhas de comando. 3. Barramentos de Entrada e Saída (E/S) Barramentos são as vias por onde trafegam as informações entre o processador. Assim. A idéia do barramento é fornecer uma via compartilhada entre os componentes. dependendo do uso que será dado a ele.. o processador executa esses programas. por exemplo. Figura 6.Dispositivos E/S e Sistemas de Interconexão A memória armazena dados e programas. Nas próximas aulas.catolicavirtual. Aula 07 . Barramento de dados: por onde trafegam os dados acessados. esse endereço pode ser da memória ou de algum dispositivo de E/S. por exemplo. como linhas de status. a mesma via que você usa para transmitir uma informação da memória para o vídeo. Barramento de controle: são as linhas que controlam tanto o fluxo de informações entre os componentes quanto o funcionamento desses componentes. avalie sua aprendizagem realizando as atividades na plataforma de ensino. veremos quais os meios de alimentar (entrada) com dados e receber (saída) resultados de processamento. Os barramentos geralmente têm entre 50 e 100 linhas paralelas.. veremos como essas informações interagem com os sistemas de E/S. geralmente há um circuito que 40 de 59 20/3/2012 21:13 . quem gera esse endereço geralmente é o processador. bem como a forma de conexão entre os diversos componentes do sistema. Existem vários tipos de barramentos. a memória e os dispositivos de E/S. 2. ). A figura 7. os discos. o monitor. Pense no seguinte: quando você abre um documento em um editor de texto. o mouse. Vejamos alguns exemplos de larguras de barramentos: Processador Largura do Barramento de Dados Largura do Barramento de Endereço 20 bits 32 bits 8086 Pentium 4 16 bits 64 bits Dispositivos de E/S São exemplos de dispositivos de E/S: o teclado. Cada um desses dispositivos tem características diferentes. com os dispositivos mais rápidos conectados nos barramento mais rápidos. e uma infinidade de outros que podem ser conectados ao computador (câmeras.1 – Configuração típica de Barramento Além dos barramentos listados acima. Esses barramentos variam em velocidade. em função dos dispositivos conectados. etc. configurados de forma hierárquica.(Versão para impressão) Arquitetura de Computadores 1 http://www. as portas seriais.1 mostra uma organização típica de barramentos. que é um barramento para placas de vídeo que chegava a atingir uma taxa de 2133 Mbytes/s na sua versão 8X. controla o acesso ao barramento. a quantidade de dados transmitida e o formato dos dados. A largura do barramento de dados determina a quantidade de dados que podem ser lidas ou escritas ao mesmo tempo entre os componentes do sistema.. então. tais como a velocidade de acesso. enquanto outros dispositivos não demandam tanta largura de banda. sendo.catolicavirtual.. temos também os barramentos de expansão para conectarmos uma grande variedade de periféricos.br/conteudos/graduacao/cursos/tec_informa. Larguras dos Barramentos As larguras dos barramentos (em bits) de dados e de endereços estão relacionadas a características de desempenho do sistema. e os mais lentos conectados nos barramentos mais lentos. Figura 7. pendrive. Um exemplo é o barramento AGP. Uma coisa que todos eles têm em comum é o fato de serem mais lentos do que o processador e a memória. já a largura do barramento de endereço determina qual o espaço de endereçamento máximo da memória e/ou dispositivos de E/S. o processador vai ler um 41 de 59 20/3/2012 21:13 . como por exemplo. Outra forma de referenciar um dispositivo é através de identificadores dos dispositivos. Detectar erros: caso ocorra algum erro no periférico. Armazenar dados temporários: por exemplo. Por exemplo. o processador pode usar endereços de memória pré-definidos para enviar os dados para o disco. os primeiros 64K para os endereços de E/S. a retirada do disquete durante uma gravação. quando um dado é lido do disco. byte a byte. O processador pode reservar uma faixa desta memória. 2. o tempo de resposta do disco é muito lento comparado à velocidade com que trabalha o processador. então deve haver uma linha no barramento de controle que diz se o número que está no barramento de endereço é um endereço de memória ou uma porta de E/S. por exemplo. quando você pressiona uma tecla. 4. arquivo que está no disco rígido e mostrar o seu conteúdo na tela. Controlar a temporização: o controle do tempo é necessário por causa das diferenças entre a velocidade do dispositivo e a velocidade do barramento.. a utilizarem um módulo de interface com a memória e o processador. Essa é uma forma de usar o barramento tanto para acessar uma célula de memória como para acessar um dispositivo de E/S. então. assim. através do barramento de controle. algumas vezes na forma de uma placa controladora que faz a comunicação entre o(s) periférico(s). é provável que o processador esteja executando algum programa que não necessariamente tem algo a ver com a tecla que você pressionou. ou qualquer outro evento externo. salva algumas informações dele na memória e verifica o que quer dizer a interrupção. Comunicar com o dispositivo e o processador: qualquer informação trocada entre os dois passa pelo módulo. Por exemplo. cada dispositivo recebe um número. ao qual está associada. os endereços de memória não existem nos módulos de memória. 3.br/conteudos/graduacao/cursos/tec_informa. por exemplo. é através da interrupção. um barramento de endereços de 32 bits pode acessar 232 = 4G palavras de memória desse espaço de endereçamento. A forma que o processador sabe desse. e o barramento. conhecido como porta. E/S Mapeada na Memória O processador precisa ser capaz de enviar comandos para os dispositivos de E/S. a controladora do teclado. qualquer operação que o processador fizer nesses endereços será direcionada para um dispositivo específico.catolicavirtual. o processador deve responder imediatamente a esse evento. forma-se um bloco maior que é transferido de uma só vez para a memória. o processador é avisado. envia um sinal ao processador. quando você manda salvar o arquivo no disco. Acesso Direto à Memória A transferência de dados entre os dispositivos de armazenamento em massa (discos) e a memória é 42 de 59 20/3/2012 21:13 . passando a executar uma rotina relacionada à interrupção que foi gerada. Após executar essa rotina.(Versão para impressão) Arquitetura de Computadores 1 http://www. Nesse caso. Por exemplo. Bom. Como o número da porta pode ser confundido com um endereço de memória. o processador pára a execução desse programa. nesse caso. que geralmente envolvem componentes eletromecânicos. gerando uma interrupção do processador. A controladora do dispositivo. o processador volta ao programa que estava executando antes da interrupção. Interrupção O processador não tem como prever quando uma solicitação de entrada é gerada.. então qualquer acesso que é encaminhado para essa faixa de endereço irá para um dispositivo de E/S que foi previamente ajustado para esse(s) endereço(s). nesse momento. Esse é um dos motivos que obrigam os periféricos. Módulos de Entrada e Saída O módulo de E/S é um circuito eletrônico. As funções do módulo de E/S são: 1. Nesse caso. por exemplo. Por exemplo. Se o processador for controlar essa transferência. 512 bytes. número de cabeçotes. Como a taxa de transmissão de um disco é geralmente menor do que a taxa de transmissão do barramento.5 Mbyte/trilha. não pode ser lido menos do que um setor. um disco de 10 cabeçotes. Cada prato tem um par de cabeçotes de leitura/escrita. os arquivos são organizados em múltiplos setores. Quando um dado é lido do disco.024 = 0. ele ficará dedicado a essa transferência.br/conteudos/graduacao/cursos/tec_informa. basta saber essas informações: tamanho do setor (quantidade de bytes). Como a velocidade do disco é muito menor do que a do processador. um dos principais dispositivos de E/S. Os dados são organizados em trilhas (anéis concêntricos) e setores (partes de um anel). Daí em diante. Discos O desempenho do sistema. 1. Quando a transmissão é concluída. 0.2 – Organização de Disco Rígido 43 de 59 20/3/2012 21:13 . número de cilindros e de setores por trilha. o processador pode realizar outras tarefas. é possível conectar vários discos em uma controladora. é a controladora que faz toda a transmissão.024 setores/trilha e setores de 512 bytes tem: 512 bytes x 1. não realizando nenhum outro processamento. precisará pegar cada palavra que é lida do disco para enviar para a memória. Enquanto isso. feita em blocos de palavras.048 = 10 GBytes Figura 7. como o endereço inicial no disco. cada setor contém a mesma quantidade de dados. o programa que solicitou a carga do disco para a memória pode acessar os dados. uma controladora Ultra320 SCSI que tem a capacidade de transmissão de 320 MBytes/s pode perfeitamente controlar vários discos que. a controladora interrompe o processador.5 MByte x 10 x 2. Quando o processador executa uma operação de carga de blocos do disco na memória.(Versão para impressão) Arquitetura de Computadores 1 http://www. Por exemplo. é fortemente dependente da taxa de transmissão dos discos. Sendo assim. ele envia para a controladora os dados referentes à operação. Agora.. 2048 trilhas por superfície. o endereço inicial na memória e a quantidade de blocos a serem transferidos. Para determinar a capacidade de armazenamento em um disco. atingem 40 MBytes/s.2) é constituído de vários “pratos” nos quais os dados são gravados. Organização Física dos Discos Um disco rígido (figura 7. Uma solução para esse problema é delegar a transmissão dos dados entre o disco e a memória para o módulo do dispositivo (controladora).catolicavirtual.. . os módulos controladores e as formas que o processador interage com esses dispositivos. ou pelo menos a parte do programa que será executada.&y). 4. haverá uma área reservada para os dados e uma área para as instruções do programa. a fim de fecharmos o ciclo dos componentes do computador: “computador = processador + memória + E/S”. Vimos nesta aula os componentes que formam um sistema de E/S. veríamos algo como na figura 8. y.1. como mostrados no trecho de programa em linguagem C a seguir: 1 int main() { 2 3 4 5 6 7} A linha 2 é a declaração das variáveis (os dados) enquanto as linhas 3. os dispositivos de E/S. sempre que possível. salvo algumas exceções. a IAS. Se pudéssemos ver como ele fica na memória. que vimos no início do curso. Depois de carregado na memória. avalie sua aprendizagem realizando as atividades na plataforma de ensino.(Versão para impressão) Arquitetura de Computadores 1 http://www.. e os dois últimos passos estão relacionados ao modo como o computador trata o programa.br/conteudos/graduacao/cursos/tec_informa. um paralelo das características do IAS com arquiteturas mais modernas. e é esse ponto que nos interessa aqui. Aplicando o Conhecimento Antes de finalizar o estudo desta aula. a fim de que você tome contato com a estrutura de um computador. scanf("%d". estudaremos o processador.&x). scanf("%d". int x. os dois passos seguintes relacionados às disciplinas de linguagem e técnica de programação. Os dois primeiros passos estão relacionados à disciplina de algoritmos. Faremos também.x). Podemos encarar um programa como dois blocos distintos: as instruções e os dados (variáveis). printf("%d\n".catolicavirtual. Nas próximas aulas. o seguinte fluxo: percepção do problema -> escrita do algoritmo -> programação em linguagem de alto nível -> compilação do programa (geração do programa em linguagem de máquina) -> carga do programa na memória -> execução do programa. Aula 08 . 5 e 6 são as instruções (o código). Modelo de Programação O modelo de programação obedece. x=x+y. retomaremos a antiga máquina de von Neumann.Processadores (Componentes Básicos) Nesta aula. Um programa para ser executado deve estar necessariamente carregado na memória. 44 de 59 20/3/2012 21:13 . e faremos uma simulação de execução de um programa. . bastando respeitar as suas diferenças. ao invés disso. Figura 8. uma instrução em linguagem de alto nível gerará várias instruções em linguagem de máquina. Esse fato torna a programação assembly mais prática para quem quer programar em linguagem de máquina.2 – Relação entre Linguagem de Alto Nível.catolicavirtual. o programa em alto nível deve ser convertido neste formato.(Versão para impressão) Arquitetura de Computadores 1 http://www. uma instrução em linguagem de montagem gerará uma instrução em linguagem de máquina. porém. Esses conceitos. Um programa em linguagem de máquina é uma seqüência de bits (instruções) que manipula o hardware. já que o assembly é uma forma mais fácil (humana) de representar um programa em linguagem de máquina. 45 de 59 20/3/2012 21:13 .2 mostra essa relação.1 – Áreas de Dados e Código de um Programa na Memória Um programa.br/conteudos/graduacao/cursos/tec_informa. A figura 8. vamos usar a máquina de von Neumann para exemplificar um processador.. por sua simplicidade. ou seja. Para isso. Figura 8. Assembly e Linguagem de Máquina Computador IAS O processador deve executar o programa em linguagem de máquina. Um programa escrito em linguagem de montagem (assembly) não precisa do compilador. para ser executado. usa um montador (assembler) que faz a montagem do programa gerando um código executável. Para tanto. Ao passo que a relação entre as instruções em linguagem de montagem e o código objeto é 1 para 1. A relação de quantidade entre as instruções em linguagem de alto nível e o código executável é 1 para n. valem para qualquer computador moderno. ou seja. deve estar em linguagem de máquina. ele deve ter uma série de regras para que esses bits que formam a linguagem de máquina possam controlar o computador e gerar os resultados esperados. Por sua simplicidade. O IAS funcionava com instruções de apenas um operando no formato: “operador operando”. os registradores são acessados através de nomes (siglas). É um registrador de uso geral que pode ser usado para operações lógicas e aritméticas. os processadores Pentium recebem os nomes EAX. e entrada e saída.3) são: Uma Uma Uma Uma unidade unidade unidade unidade de de de de processamento central. EBX.catolicavirtual. Esse registrador recebe ou envia um dado da/para memória. esse registrador recebe o nome de EIP. Registrador de Endereçamento da Memória (Memory Address Register).. Diferente de células de memória que são acessadas através do endereço. ECX e EDX. No processador Pentium. Contém o endereço da próxima instrução que será buscada da memória. para determinar a seqüência das instruções. Contém o código da instrução que está sendo executada. PC Contador de Programa (Program Counter). MQ MAR Usado para receber o quociente nas operações de multiplicação.3 – Estrutura do IAS Na figura 8. controle de programa.br/conteudos/graduacao/cursos/tec_informa. não comentaremos muito sobre ele. O formato das palavras de memória do IAS é mostrado na figura 8. São eles: Registrador AC Observação Acumulador.4: 46 de 59 20/3/2012 21:13 . No caso dos processadores modernos.3 podem ser notados alguns registradores. Figura 8.(Versão para impressão) Arquitetura de Computadores 1 http://www. IBR Registrador Auxiliar usado em conjunto com o IR. MBR Registrador de Dados Temporários da Memória (Memory Buffer Register). Os blocos do IAS (Figura 8. Esse registrador informa para a memória qual endereço o processador quer acessar. por isso. IR Registrador de Instruções (Instruction Register).. para execução de operações lógicas e aritméticas. É um registrador particular da arquitetura IAS. há vários desses registradores. memória de 4096 palavras de 40 bits cada. e isso se aplica desde o IAS até os computadores modernos. 47 de 59 20/3/2012 21:13 . Este programa é bem simples. mas sim através da escrita do programa em uma linguagem de alto nível.. a Intel lançou o processador Pentium MMX que continha além das instruções tradicionais dos Pentiums anteriores uma extensão de 57 novas operações que visavam a exploração dos recursos multimídias do computador. o código 21 diz para somar um valor da memória com o acumulador. e depois a compilação. o conjunto de instruções do IAS poderia ter até 256 instruções diferentes. ele implementa uma soma de duas variáveis e coloca o resultado em uma terceira. na linha 3. ou através da programação em assembly. fazendo a distribuição dos bits nos dois campos da instrução temos os valores 01. 21 e 05. 0x21065 e 0x05066. Esse programa somará dois valores que estão inicialmente nos endereços 100 e 101 da memória. AC <. isso se deve ao fato do computador ser muito simples. mas note que. AC <. 21 e 05? O código 01 diz para o processador ler um valor na memória e armazenar no acumulador. a programação não é feita dessa forma. Na listagem acima.catolicavirtual. Há uma tendência natural ao crescimento do conjunto de instruções dos processadores à medida que novos modelos são lançados. o acumulador recebe o conteúdo do endereço 100.br/conteudos/graduacao/cursos/tec_informa. M(102) <. e o resultado deve ser gravado no endereço 102. Linguagem Assembly Vejamos como o IAS executa um programa pegando um exemplo simples. Na verdade.4 – Formato de Palavra do IAS Todo computador. mas o seu conjunto formado por apenas 21 operações diferentes. já que o campo “código da operação” tinha 8 bits. como na instrução “x=y+z”. e depois a montagem do programa. na linha 2. Assim ficou fácil! E os valores 064.M(100) 2. tem um conjunto restrito de instruções.4.AC Linguagem de Máquina 0x01064 0x21065 0x05066 Assembly LOAD M(100) ADD M(101) STORE M(102) Na linha 1. Você consegue imaginar o que significam esses códigos 01. temos três formas de representação do mesmo programa. o acumulador recebe a soma do acumulador com o conteúdo do endereço 101. 065 e 066? Uma dica: converta esses valores de hexadecimal para decimal. O nosso algoritmo fica assim: Algoritmo 1.(Versão para impressão) Arquitetura de Computadores 1 http://www. e o código 05 diz para gravar o valor do acumulador em um endereço da memória. esse conjunto delimita o que o processador pode ou não fazer. A princípio. e os valores 064. no caso do IAS. Na prática. essas três operações que nós vimos estão especificadas na forma de transferência de informação. 065 e 066. o valor do acumulador é gravado no endereço 102. agora veja novamente o formato da instrução do IAS na figura 8.AC + M(101) 3. nos campos código da operação. Figura 8. Por exemplo.. Observe os valores em linguagem de máquina 0x01064. em 1997. nos campos endereço. foram necessárias três operações seqüenciais para implementar uma instrução simples. a forma em linguagem de máquina não é a mais prazerosa de se programar. senão. como por exemplo. você pode querer testar se determinado valor da memória é diferente do acumulador. Veja o exemplo que implementa a operação: r1 = r2 + r3 – r4 2 operandos 3 operandos 48 de 59 20/3/2012 21:13 . ADD associamos à adição. por exemplo. Workstations. deve executar outro trecho. tendem a ter instruções de três operandos. Para ir de um ponto a outro. fazer com que o processador termine o programa. por exemplo. Os processadores Pentium. Se for. Mas como o segundo é sempre o acumulador. a forma menos difícil é a programação assembly. Instruções lógicas aritméticas – são instruções que envolvem cálculos matemáticos entre os valores manipulados pelo programa. enquanto outras arquiteturas. deve executar um trecho específico do programa. Quantidade de Operandos O conjunto de instruções do IAS só tem instruções de um operando. é desejável que se tenha instruções de mais de um operando. há conjuntos de instruções com dois e até três operandos. do acumulador para a memória ou de um registrador para outro.(Versão para impressão) Arquitetura de Computadores 1 http://www. Por isso chamamos esses termos de mnemônicos.br/conteudos/graduacao/cursos/tec_informa. Por exemplo.. ele usa sempre dois operandos. Se você quiser fazer isso deve copiar da memória para o acumulador e depois do acumulador para outro ponto da memória. portanto. Aqui cabe uma observação: geralmente uma instrução não transfere um valor de um ponto da memória para outro ponto da memória. EBX Essa operação equivale a: EAX = EAX + EBX Três operandos: Mnemônico operando1. que é um circuito específico para essas operações. Obviamente. porém. operando2 Exemplo: ADD EAX. têm a maioria das instruções de dois operandos. Essas instruções são executadas na ULA (Unidade Lógica Aritmética). que não seja seqüencial dentro do programa. Note que no programa em assembly nós usamos instruções (em inglês) que são fáceis de lembrar o significado. r2. Nos computadores atuais há mais de um acumulador. este não precisa ser especificado. como por exemplo. Os formatos dessas instruções são: Dois operandos: Mnemônico operando1.. LOAD associamos à carga. operando3 Exemplo: ADD r1. Instruções de controle do processador – essas instruções têm diversas finalidades. Na realidade. você deve usar instruções de desvios. Atualmente. Instruções de desvios – esse tipo de instrução permite ao processador alterar o fluxo seqüencial do programa. r3 Essa operação equivale a: r1 = r2 + r3 Os programas com instruções de três operandos tendem a ser menores do que os seus equivalentes com dois operandos. operando2. na prática. sendo que esta quantidade de operandos pode ser maleável. Tipos de Instruções Os tipos de instruções que invariavelmente qualquer computador realiza são: Instruções de transferência de dados – faz com que o processador copie dados de um local para outro: da memória para o acumulador. então. etc. a forma de algoritmo não dá para implementar no computador. Aqueles cálculos que fizemos na aula 4 são todos realizados nessa unidade.catolicavirtual. temos a terceira instrução junto com outra que não nos interessa. depois repetir o processo para as próximas instruções. seria a quarta instrução na seqüência do programa. temos valores numéricos quaisquer. por exemplo. r3 SUB r1. No caso 0x000. e cada palavra de memória no IAS comporta duas instruções.3. esse endereço é transmitido para o MAR. r2. r1. novamente lembre-se de que 0x64 = 100.5 mostra uma possível configuração inicial do IAS com esse programa.6: 49 de 59 20/3/2012 21:13 . Nos endereços 0x64. r2 ADD r1. O trecho de programa é: 0x01064 -> LOAD M(100) 0x21065 -> ADD M(101) 0x05066 -> STORE M(102) Lembre-se de que as instruções em linguagem de máquina estão carregadas na memória. Figura 8.br/conteudos/graduacao/cursos/tec_informa.. 0x65 e 0x66. o processador Pentium tem instruções de vários tamanhos que vão de 1 a 12 bytes. Em computadores modernos. r4 Ciclo de Instrução Vamos pegar novamente o exemplo do trecho de programa do IAS e verificar os passos que devem ser seguidos para a execução na arquitetura da figura 8. temos as duas primeiras instruções. A figura 8. conforme mostra a figura 8. Como o IAS tem duas instruções por palavra. a fim de se fazer o acesso à memória. o processador deve buscar a instrução que está na memória e executá-la. uma instrução pode estar distribuída em várias palavras da memória. r3 SUB r1..(Versão para impressão) Arquitetura de Computadores 1 http://www. o registrador PC contém inicialmente o endereço da primeira instrução. LOAD r1.5 – IAS com o programa exemplo (valores iniciais) Repare nos conteúdos de cada endereço: no endereço 0x000.catolicavirtual. r4 ADD r1. Seguindo o modelo “busca-executa” instrução. Voltando ao IAS. e no endereço 0x001. só precisará fazer a busca duas vezes para pegar as três instruções. M(MAR).MBR <.MAR <. O terceiro passo é colocar a instrução no registrador IR para que ela seja executada. é feita a atualização do registrador PC. a fim de que possa apontar para o próximo par de instruções. a ele é somado +1.catolicavirtual.7: MBR <.. PC <.7 . Depois desse primeiro passo. MAR=0x000.. que é um registrador auxiliar que serve para armazenar a segunda instrução completa da palavra: 50 de 59 20/3/2012 21:13 . PC <. MAR <. é feito a leitura do endereço apontado por MAR.21065 e PC=0x001.(Versão para impressão) Arquitetura de Computadores 1 http://www. Como temos as duas primeiras instruções no MBR.br/conteudos/graduacao/cursos/tec_informa. Resumindo esse segundo passo temos. Essa leitura resulta na gravação do conteúdo do endereço 0x000 no registrador MBR. os 20 bits da segunda metade de MBR são colocados no IBR.6 .PC Figura 8.M(MAR).PC+1 Figura 8. conforme a figura 8.PC Aqui cabe mais uma observação: qualquer acesso à memória deve ser feito via MAR e MBR.PC+1 Nesse ponto MBR=0x01064. copiamos apenas os primeiros 8 bits correspondentes à primeira instrução. Simultaneamente a essa leitura. Nesse ponto. . Como o processador sabe o que quer dizer isso? Simples.MBR(8:19) Figura 8. e o de IBR é 0x21065. IBR <. ele tem uma lista de códigos e os seus significados! Então o processador está pronto para executar essa instrução.br/conteudos/graduacao/cursos/tec_informa. ele transfere os 12 bits corresponde ao campo “operando” do MBR para o MAR: MAR <.MBR(0:7). A leitura é idêntica a que vimos antes: 51 de 59 20/3/2012 21:13 . Agora vem a execução. O valor de IR é 0x01. agora para buscar o valor que está no endereço 0x64.IR <.(Versão para impressão) Arquitetura de Computadores 1 http://www.8 .MBR(0:7). o processador “olha” para os bits que estão no IR e faz a interpretação da instrução. Depois é feito uma nova leitura da memória. IR <. Para executar a instrução. nesse caso “0x01”.MBR(20:39) Figura 8.MBR(20:39) Nesse ponto termina a busca da instrução. Esse código quer dizer “pegue o conteúdo do endereço especificado pelo campo operando da instrução e coloque no acumulador”.MBR(8:19) Nesse ponto MAR=0x064. ou 100 se preferir.catolicavirtual..MAR <.9 . IBR <. MBR(20:39).11 – AC <.MBR.br/conteudos/graduacao/cursos/tec_informa. o valor de MBR é 0x00000. PC <. 3. MBR <. Figura 8. Agora só falta gravar no acumulador o valor lido: AC <. MBR <..(Versão para impressão) Arquitetura de Computadores 1 http://www.M(MAR).10 – MBR <.M(MAR). Estamos quase acabando. Figura 8.catolicavirtual.00001.PC+1.M(MAR) Após esse passo. MAR <.. 2.MBR(0:7). IR <. IBR <. 52 de 59 20/3/2012 21:13 . o conteúdo do acumulador AC será 0x00000.MBR Concluída a instrução.00001.PC. Vamos fazer um resumo desta “busca-execução” da primeira instrução: 1. 4.MBR. Fizemos algumas correlações com processadores mais modernos para você ter uma idéia mais clara de como os vários tipos de computadores atuais funcionam.(Versão para impressão) Arquitetura de Computadores 1 http://www.-) Nesta aula. 3. e 1. IR <.MBR(8:19). as microoperações correspondentes das duas instruções seguintes do nosso programa são: 1. MAR <. 6.br/conteudos/graduacao/cursos/tec_informa. M(MAR) <.PC+1. 2.MBR(20:39).IBR(8:19). Aula 9 – Processadores: Paralelização 53 de 59 20/3/2012 21:13 . PC <. AC <.M(MAR). vimos a organização de um computador simples. enfocando tecnologias que não faziam parte desses processadores mais antigos como o IAS. MBR <.AC + MBR. deduzir essas microoperações que serão executadas para concluir o programa . então em um segundo esse processador é capaz de executar aproximadamente 167 mil instruções. MAR <. AC <. Cada um desses seis passos é realizado em um pulso de clock do processador.000.. 2. MBR <. 3. e os três últimos ao ciclo de execução. avalie sua aprendizagem realizando as atividades na plataforma de ensino. 6. IBR <. Então.000 de microoperações por segundo. A propósito. veremos um pouco mais desses detalhes.catolicavirtual.AC. 4. MBR <. o IAS. IR <. quer dizer que ele pode fazer 1.MBR(0:7). o processador pode demorar mais ou menos nos ciclos de clock para executar uma instrução.IBR(0:7).M(MAR). 5.MBR(8:19). Na prática..MBR.M(MAR). Cada passo é uma “microoperação”. MBR <.PC. Na próxima aula. MAR <. Até a próxima! Aplicando o Conhecimento Antes de finalizar o estudo desta aula. Fica como exercício para você. para entender as unidades funcionais de um processador e como um programa é executado nesse computador. MAR <. 5. Os três primeiros passos correspondem ao ciclo de busca. dependendo da complexidade da instrução. Se cada instrução em linguagem de máquina toma seis microoperações. quando dizemos que um processador tem uma freqüência de 1MHz. onde as instruções são executadas seqüencialmente. veremos algumas dessas técnicas. reescrevendo-o de forma mais simplificada: Instrução 1 .3. sendo 15 ciclos no total..catolicavirtual. os ciclos necessários para concluir as três instruções são mostrados na figura 9. Figura 9.3 – Tempo de Execução de Instruções (em Ciclos) com Pipeline 54 de 59 20/3/2012 21:13 . Hoje não existem mais computadores que trabalham de uma forma tão simples assim.1 – Tempo de Execução de Instruções (em Ciclos) Se separarmos o processador em duas unidades semi-independentes que tenham funções específicas durante o ciclo de instrução. Pipeline Vamos retomar o programinha da última aula..2.(Versão para impressão) Arquitetura de Computadores 1 http://www. como mostra a figura 9. Nessa figura.1 vemos os ciclos necessários para executar as três operações. Figura 9.ADD M(101) Instrução 3 . vimos o funcionamento de um computador simples. pois se usam várias técnicas para acelerar a execução dos programas. Figura 9. o estágio de busca estará buscando a instrução seguinte. Na aula anterior. e apenas uma de cada vez. podemos separar as atividades dessas unidades e fazer com que elas trabalhem ao mesmo tempo.LOAD M(100) Instrução 2 . Nesse caso.2 – Unidades de Busca e Execução de um Processador Quando o estágio de execução estiver efetuando uma instrução.STORE M(102) Na figura 9. os ciclos gastos na busca de instrução são mostrados em vermelho e os ciclos gastos na execução de instrução são mostrados em amarelo.br/conteudos/graduacao/cursos/tec_informa. Nesta aula. Em um pipeline..(Versão para impressão) Arquitetura de Computadores 1 http://www.20 estágios. Podemos então dividir a execução em vários estágios. com e sem pipeline: Execução de cinco instruções sem pipeline: 55 de 59 20/3/2012 21:13 . pois existem folgas de tempo entre uma unidade e outra e entre o final da busca e o início da execução da instrução 2 (destacado em preto). com pipeline. Construímos aqui um pipeline de 2 estágios. Primeiro precisamos conhecer todo o conjunto de instruções do processador para analisar qual instrução demorará mais.br/conteudos/graduacao/cursos/tec_informa.31 estágios. Pentium 3 . veja que ele ainda não está perfeito.10 estágios. Os processadores modernos tentam esse objetivo e. Compare os desempenhos do exemplo a seguir. No exemplo acima os tempos não são bem definidos. Modelos mais novos . k é o número de estágios do pipeline e n é o número de instruções do programa. nesse caso.4 – Pipeline Típico Dependendo do processador. enumerados a seguir: Pentium .4: Figura 9. A fórmula é a seguinte: Sk = n. pode haver mais estágios. fazer um cálculo e depois armazenar o resultado.5 estágios. Esse mecanismo que acabamos de ver é conhecido como pipeline.catolicavirtual. você pode notar atividades bem distintas. Uma configuração de estágios de pipeline típica é mostrada na figura 9.k / (k + n – 1) Onde: Sk é o speedup.. sem pipeline. Durante a execução. pelo tempo que se leva para executar o mesmo programa. Pentium 4 . dividimos o tempo que se leva pra executar um programa. Essa subdivisão de estágios faz com que o tempo de todos os estágios diminua. Vamos supor que possamos agilizar o processo de busca da instrução para apenas um ciclo de clock. o gargalo passa a ser o estágio de execução. o que determina o tempo (em ciclos de clock) de cada estágio é o tempo do pior estágio. como buscar um operando. Para determinar o ganho médio de desempenho (speedup) na utilização do pipeline. . Ocorre que o pipeline consegue resolver esses problemas. o ganho é pouco. então. a cada ciclo de clock. e assim por diante. Outra situação complicada é quando o programa executa uma instrução de desvio. as instruções seguintes não devem ser carregadas no pipeline. o tempo gasto com uso do pipeline corresponde a 40% do tempo sem o pipeline. ao invés de uma. mas ele só descobrirá isso lá na frente.5 – Execução sem Pipeline Execução das cinco instruções com pipeline de quatro estágios: Figura 9. o tempo gasto com uso do pipeline corresponde a 25% do tempo sem o pipeline.catolicavirtual.6 . as instruções seguintes devem ser descartadas. Processador Superescalar Outra forma de acelerar o desempenho dos processadores é aumentar o número de pipelines. ao invés de uma. Figura 9.(Versão para impressão) Arquitetura de Computadores 1 http://www. duas instruções serão buscadas.. A má notícia é que nem sempre os programas se comportam de uma forma tão simétrica como retratam os desenhos acima. o pipeline dever ser esperto o suficiente para atrasar alguns estágios. duas instruções serão decodificadas. Processadores que possuem mais de um pipeline são chamados de superescalares. então. Nesse caso. daí. se analisar com muitas instruções. Veja o exemplo: S4 = 1000 x 4 / (4 + 1000 – 1) = 4000 / 1003 = ~ 3.99. Note que o ganho de performance está diretamente relacionado com a quantidade de instruções. O modelo de execução com um processador superescalar de dois pipelines ficaria assim: 56 de 59 20/3/2012 21:13 . será muito.br/conteudos/graduacao/cursos/tec_informa. Às vezes. mas.Execução com Pipeline Aplicando na fórmula do speedup temos: S4 = 5 x 4 / (4 + 5 – 1) = 20 / 8 = 2. Se você analisar com poucas instruções. um valor que é gerado no último estágio de uma instrução deve estar disponível no início de um dos primeiros estágios da próxima instrução.5. mas há uma pequena perda na performance. mas que compartilham os mesmos recursos. uma tendência atual é o paralelismo de vários programas simultâneos. Então.. Introdução à organização de computadores. teoricamente. que vinha com dois núcleos.br/conteudos/graduacao/cursos/tec_informa. Mário A.(Versão para impressão) Arquitetura de Computadores 1 http://www. 2005. Pearson Education do Brasil. Computer organization and architecture. a capacidade de executar até 8 instruções em paralelo.7 – Execução Superescalar Praticamente todos os processadores atuais são superescalares. Teoria e problemas de arquitetura de computadores. mas também de programas. A outra variação é colocar dentro de um processador dois núcleos (cores) que funcionam como processadores independentes. 6nd.. N. por exemplo). Nesse caso. Aplicando o Conhecimento Antes de finalizar o estudo desta aula. avalie sua aprendizagem realizando as atividades na plataforma de ensino. tem sido uma constância lançar cada vez mais núcleos em um processador. ed. Existem duas variações desse método. Mas o que nós temos hoje é um ambiente onde vários programas são executados ao mesmo tempo no computador. o Pipe U e o Pipe V. 5. consiste em colocar em uma mesma placa-mãe dois ou mais processadores (multiprocessador). CARTER. Willian. MONTEIRO. Esses cores compartilham partes dos recursos internos do processador (como cache. os programas são distribuídos entre os processadores. Bookman. é como se fossem dois (ou mais) computadores independentes. a Intel demonstrou um processador com 80 núcleos. O Pentium 4 tem. por vezes. sendo. um recurso que é usado por uma instrução pode ser necessário para outra instrução. STALLINGS. Coleção Schaum. Esta aula foi o desfecho da Unidade de Estudo: Arquitetura de Computadores. memória e dispositivos de E/S. A primeira.catolicavirtual. 57 de 59 20/3/2012 21:13 . Andrew S. Referências TANENBAUM. 2002. ed. e não apenas várias instruções. Paralelismo em Nível de Programas Esses modelos de execução paralelizam o programa. Ed. vimos algumas técnicas para acelerar a execução de programas não apenas no nível de instruções. mas mantêm outros recursos independentes (registradores). O processador Pentium originalmente tinha dois pipelines. Em alguns casos. mas isso depende muito das instruções que são executadas. permitem que várias instruções do programa sejam executadas ao mesmo tempo. A Intel lançou em 2001 o processador Xeon. ou seja. até mesmo de usuários diferentes. Nela. 2001. ed. 4. 2007. Figura 9. Recentemente. Organização estruturada de computadores. De lá para cá. Arquitetura de computadores pessoais. por exemplo.catolicavirtual. são mais baratos e conseqüentemente mais populares. ______. 20 módulo 6 é igual a 2. também chamado de chip. por exemplo.br/conteudos/graduacao/cursos/tec_informa. L Largura de Banda – quantidade de dados (bits ou bytes) que são transmitidos em um período de tempo. Mnemônico – código de algumas letras que identifica um código específico de linguagem de máquina de uma forma mais fácil de ser lembrada. WEBER. é o programa que faz a montagem do programa escrito em assembly. M Microcomputador – computador de pequeno porte que. Controlador de memória – circuito eletrônico que faz o controle do acesso à memória. Minicomputador – computador de médio porte que dominou o mercado durante as décadas de 1960 e 1970. como por exemplo. um decodificador 4 para 16 tem como entrada um código de 4 bits e.000 de bits. Glossário A Assembler – também chamado de montador. Sagra Luzzatto. Circuito Integrado (CI) – um circuito eletrônico. ou seja. usando instruções com mnemônicos ao invés de instruções em código binário. uma das 16 saídas é selecionada. a princípio. Encapsulado em uma pastilha de cerâmica. Em função deste código. C Carry – transporte de um bit nas operações de soma. 2001. Ed. traduz o programa de linguagem assembly para a linguagem de máquina. Módulo – em computação..(Versão para impressão) Arquitetura de Computadores 1 http://www. 2000. ed.. Fica embutido no módulo da memória. Por exemplo. é uma linguagem que torna a compreensão de programas em linguagem de máquina mais fácil. ed. ou seja. Ed. é utilizado na fabricação de placas eletrônicas. 58 de 59 20/3/2012 21:13 . Fundamentos de arquitetura de computadores. F. Hoje foram substituídos pelos servidores.000. transistores. Por exemplo. Sagra Luzzatto. uma das saídas é selecionada. D Decodificador (ou decod) – circuito digital que tem como finalidade a decodificação de código recebido na entrada. formado por componentes eletrônicos como. em um segundo é capaz de transmitir 100. módulo é o resto da divisão. 2. 1. uma rede Ethernet tem uma largura de banda de 100 Mbits/s. em função deste código. Assembly – também chamada de linguagem de montagem. por exemplo. Esse bit é usado como parcela na soma da coluna à esquerda. a placa-mãe e também o próprio processador. atende a um único usuário. R. o mnemônico ADD é mais fácil de saber que é uma soma do que o código 0100011001010. . S Slot – conexão entre um componente eletrônico (geralmente um periférico) e o barramento da placa-mãe do computador. 59 de 59 20/3/2012 21:13 . deve haver 3 linhas seletoras (3 bits).(Versão para impressão) Arquitetura de Computadores 1 http://www. Supercomputador – computador de grande porte que surgiu nos primórdios da computação digital. onde T1 é o tempo de execução do programa sem a técnica e T2 é o tempo de execução do mesmo programa com a técnica. um Mux de 8 entradas recebe oito valores de entrada.000000001 segundos. Esse circuito envia para a saída do circuito a entrada que for selecionada. É obtido pela fórmula Sp = T1 / T2.catolicavirtual. ou 0. Speedup – ganho de desempenho ao aplicar uma técnica computacional na execução de um programa. Geralmente são usados para processamento pesado.br/conteudos/graduacao/cursos/tec_informa. Por exemplo. Multiplexador (ou Mux) – circuito digital que tem como finalidade a seleção de uma das entradas. Para selecionar uma das 8 entradas.. seleciona um deles e envia para a saída. N ns (nanosegundo) – fração de segundo equivalente a 10-9 segundos.
Copyright © 2024 DOKUMEN.SITE Inc.