BCC ArquiteturaComputadoresI

Embed Size (px)

Citation preview

  • 8/18/2019 BCC ArquiteturaComputadoresI

    1/47

    BCC  – Arquitetura de Computadores I 1 

    BACHARELADO EM CIÊNCIA DACOMPUTAÇÃO

    ARQUITETURA DE COMPUTADORES IMaterial Teórico

    Prof Carlos Eduardo Corrêa Roque

  • 8/18/2019 BCC ArquiteturaComputadoresI

    2/47

    BCC  – Arquitetura de Computadores I 2 

    Sumário

    1 - Introdução à Arquitetura de Computadores ............................................................................ 4 

    1.1 O que é um computador eletrônico? ......................................................................................... 4 

    1.2 Qual a diferença entre arquitetura e organização de computadores? .......................................... 5 

    1.3 Quais as funções básicas de um computador? ........................................................................... 5 

    1.4 Evolução histórica dos computadores ....................................................................................... 6 1.4.1 Geração Zero (1642- 1945): ............................................................................................... 6 

    1.4.2 Primeira Geração - Válvulas (1945-1955) ......................................................................... 8 

    1.4.3 Segunda Geração –  Transistores (1955 –  1965): ................................................................. 9 

    1.4.4 Terceira Geração –  Circuitos Integrados (1965 –  1980): ..................................................... 9 

    1.4.5 Quarta Geração –  Integração de Circuitos em Grande Escala (1980 - ?): ...........................10 

    1.5 A Máquina de von Neumann (IAS) ........................................................................................10 

    2 –   Sistema Binário e Conversão de Bases.....................................................................................13 

    2.1 Sistema Binário .......................................................................................................................13 

    2.2 Conversão entre Bases Decimal e Binária. ...............................................................................15 

    2.2.1 Sistemas de Numeração ....................................................................................................15 

    2.2.2 Conversão Decimal para Binário (N10 para N2) .................................................................16 

    2.2.3 Conversão Binário para Decimal (N2 para N10).................................................................16 

    2.2.4 Método prático para conversão N10/N2 e N2/N10: ..............................................................17 

    3 –  Bases Octal e Hexadecimal........................................................................................................19 

    3.1 Base Octal (N8) .......................................................................................................................19 

    3.1.1 Conversão Decimal para Octal (N10 para N8) .....................................................................19 

    3.1.2 Conversão de Octal para Decimal (N8 para N10) ................................................................19 3.1.3 Método prático para conversão entre N10/N8 e N8/ N10 .......................................................20 

    3.2 Base Hexadecimal ...................................................................................................................21 

    3.2.1 Conversão de Decimal para Hexadecimal (N10 para N16) ...................................................21 

    3.2.2 Conversão de Hexadecimal para Decimal (N16 para N10) ...................................................21 

    3.2.3 Método prático para conversão entre N10/N16 e N16/ N10 ....................................................22 

    3.3 Conversão entre Binário, Octal e Hexadecimal: .......................................................................23 

    4 –  Representação de Dados ...........................................................................................................24 

    4.1 Unidades com Binários ...........................................................................................................24 4.2 Endereçamento de Byes e Palavras na Memória ......................................................................25 

    4.3 Representação de Dados ..........................................................................................................26 

    4.3.1 Código BCD ( Binary Coded Decimal ) .............................................................................26 

    4.3.2 Código Alfanumérico ASCII ............................................................................................28 

    4.3.3 Unicode ............................................................................................................................29 

    5 –  Representação de Números Inteiros com Sinais .......................................................................30 

    5.1 Representação sinal-magnitude ...............................................................................................30 

    5.2 Representação por Complemento-de-Dois ...............................................................................30 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    3/47

    BCC  – Arquitetura de Computadores I 3 

    5.3 Aritmética convencional..........................................................................................................33 

    5.4 Adição e Subtração em Complemento de Dois ........................................................................34  

    5.4.1 Adição ..............................................................................................................................34 

    5.4.2 Subtração..........................................................................................................................35 

    6 - Introdução à Lógica Booleana ..................................................................................................36 

    6.1 Álgebra Booleana ...................................................................................................................36 6.2 Operadores Booleanos Básicos ...............................................................................................37 

    6.3 Funções Lógicas .....................................................................................................................37 

    6.4 Portas Lógicas.........................................................................................................................38 

    7 - Postulados, Identidades e Propriedades da Álgebra Booleana .................................................39  

    7.1 Postulados, Identidades e Propriedades....................................................................................39 

    7.2 Teoremas de De Morgan .........................................................................................................40 

    7.2.1 Primeiro Teorema de De Morgan: .....................................................................................40 

    7.2.2 Segundo Teorema de De Morgan: .....................................................................................40 7.3 Universalidade das Portas NAND e NOR. ...............................................................................41 

    8 –  Simplificação Algébrica de Circuitos Lógicos ..........................................................................42 

    9 –  Simplificação de Circuitos Lógicos pelo Mapa de Karnaugh ..................................................43 

    9.1 Mapas de Karnaugh com duas variáveis ..................................................................................43 

    9.2 Mapas de Karnaugh com três variáveis ....................................................................................44 

    9.3 Mapas de Karnaugh com quatro variáveis ...............................................................................45 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    4/47

    BCC  – Arquitetura de Computadores I 4 

    1 - INTRODUÇÃO À ARQUITETURA DE COMPUTADORES

    Atualmente, os computadores já fazem parte de nosso dia-a-dia, seja como ferramenta de trabalho ou, principalmente, como instrumento de educação e entretenimento. Sendo assim, de alguma forma, todos nós já temos o conceito de computador. Entretanto, falta-nos defini-lo, descrevê-lo, explicar seus principaiscomponentes. Este, portanto, é o principal objetivo desta aula.

    1.1 O que é um computador eletrônico?

    (Por que eletrônico? Há algum computador que não seja eletrônico?)

    Segundo [TANENBAUM 2001]: “Um computador digital é uma máquina que pode resolverproblemas executando uma série de instruções que lhe são fornecidas”. 

    Já [MONTEIRO 2007] define computador no contexto de processamento de dados: “Computador éuma máquina (conjunto de partes eletrônicas e eletromecânicas) capaz de sistematicamente coletar,manipular e fornecer os resultados da manipulação da informação para um ou mais objetivos .” 

    Computador

    É uma máquina composta por hardware e software: hardware  é o conjunto dos componentesfísicos. Software é a parte lógica-operacional que, normalmente, é executada por um programa.

    Que coleta dados, resolve problemas e fornece resultados: essa é a sequência formal do processamento de dados.

    Dados de Entrada Dados de Saída 

    (Etapas básicas de um processamento de dados [MONTEIRO 2007])

    Que executa uma série de instruções sistematicamente: essas instruções seguem uma sequêncialógica (algoritmo) e são passadas para o computador por meio de um programa. Pode haver mais de umalinguagem de programação (com sintaxe e semântica próprias) para implementar o mesmo algoritmo(lógica). 

    Para atingir um ou mais objetivos:

    Eis uma das grandes divisões dos computadores, que podem ser:

    Computadores de Propósito Específico  (ou Especial): desenvolvidos para aplicaçõesespecíficas sendo que, geralmente, o foco do projeto está na especialização do hardware. Ex:computadores de bordo e controladores de robôs industriais.

    Computadores de Propósito Geral: desenvolvidos para atender à diversas aplicaçõessendo que o foco do projeto está no software visando a capacidade de adaptação para solução demuitos problemas. Ex: computadores pessoais (PC).

    É digital:  os dados são representados e processados por meio de valores discretos conforme umadeterminada base matemática (no caso, base 2 ou binária).

    Processamento

  • 8/18/2019 BCC ArquiteturaComputadoresI

    5/47

    BCC  – Arquitetura de Computadores I 5 

    1.2 Qual a diferença entre arquitetura e organização de computadores?

     No capítulo introdutório de [STALLINGS, 2002], o autor nos esclarece sobre a diferença entrearquitetura e organização de computadores da seguinte forma:

    Arquitetura de Computadores: “refere-se aos atributos de um sistema que são visíveis para o programador ou, em outras palavras, aos atributos que têm impacto direto sobre a execução lógica de um

     programa. Exemplos de atributos de arquitetura incluem o conjunto de instruções, o número de bits usados para representar os vários tipos de dados, mecanismos de entrada e de saída de dados e técnicas deendereçamento.” 

    Organização de Computadores: “refere-se às unidades operacionais e suas interconexões queimplementam as especificações da sua arquitetura. Exemplo, detalhes de hardware transparentes para programador tais como os sinais de controle, as interfaces entre o computador e os periféricos e a tecnologiade memória utilizada”.

    1.3 Quais as funções básicas de um computador?

    Segundo [STALLINGS 2002] , “tanto a estrutura quanto as funções de um computador são, emessência, muito simples”. A figura abaixo ilustra as funções conforme esse autor:  

    “Um computador deve ser capaz de processar dados 

    . Os dados podem ter grandevariedade de tipos, e a gama de requisitos de processamento é muito ampla. Entretanto,veremos que existem poucos métodos ou tipos fundamentais de processamento de dados.

    É também essencial que um computador armazene dados . Mesmo quando érealizado um processamento de dados do tipo on the fly  (isto é, quando os dados deentrada são processados e os resultados são enviados diretamente para a saída), ocomputador precisa armazenar temporariamente ao menos aquela porção dos dados queestá sendo processada naquele instante. Portanto, existe pelo menos uma função dearmazenamento temporário de dados. É igualmente importante que um computador sejacapaz de armazenar dados de maneira permanente, por períodos longos. Os dados sãoarmazenados no computador, para subsequente recuperação e modificação.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    6/47

    BCC  – Arquitetura de Computadores I 6 

    Um computador deve ser capaz de transferi r dados , tanto internamente quantocom o mundo externo. O ambiente de operação de um computador consiste emdispositivos que servem como fonte ou como destino de dados. Quando os dados sãorecebidos ou enviados para um dispositivo diretamente ao computador, o processo éconhecido como entrada  e  saída  (E/S)” –   ou I/O (Input/Output)  –   “e o dispositivo édenominado de  periférico. Quando os dados são transferidos por distâncias maiores, deou para um dispositivo remoto, o processo é conhecido como comunicação de dados.

    Finalmente, deve existir um controle  dessas três funções. Em última instância, essecontrole é exercido pelo(s) indivíduo(s) que fornece(m) instruções ao computador. Dentrode um sistema de computação, uma unidade de controle gerencia os recursos docomputador e rege o desempenho das suas partes funcionais em resposta a essasinstruções” [STALLINGS 2002]

    1.4 Evolução histórica dos computadores

    O esquema abaixo resume as gerações dos computadores, conforme [TANENBAUM 2001],complementada com as demais referências bibliográficas, e ressalta os aspectos relevantes na evolução dehardware e software em cada geração.

    1.4.1 Geração Zero (1642- 1945):

    - Máquina de calcular (soma e subtração) de Blaise Pascal (1642), posteriormente chamada dePascalina. Era totalmente mecânica. Segundo [MONTEIRO 2007], a Pascalina  “consistia em seisengrenagens dentadas, com ponteiro indicando o valor decimal escolhido e calculado. Cada engrenagemcontinha 10 dentes que, após afetuarem um giro completo, acarretavam o avanço de um dente de umasegunda engrenagem. Cada conjunto de ponteiros era usado como um registrador para armazenartemporariamente o valor de um número. O calculador de Pascal apresentou duas significativas inovaçõestecnológicas: a implementação do “vai-um” e a utilização da técnica de complemento para operações desubtração.” 

    Vamos praticar ?

    Operações de subtração por meio de complemento de base:

    MINUENDO

    Exemplo: 13 –  7

    SUBTRAENDO

    - em regra, inverte-se o sinal do subtraendo com o complemento da base decimal conforme o maiornúmero de casas decimais do minuendo ou subtraendo:

      13 = duas casas decimais: unidade e dezena ( 00 –  99 = cem valores)  determina-se o complemento de 7 em 100 = 93  soma-se o minuendo com o complemento = 13 + 93  considera-se apenas as casas da base decimal conforme o minuendo (unidade e dezena)  13 + 93 = 106 , considera-se apenas dezena e unidade = 06  ou seja, 13 –  7 = 6

    Outros exemplos:

  • 8/18/2019 BCC ArquiteturaComputadoresI

    7/47

    BCC  – Arquitetura de Computadores I 7 

    a)  45 -32 =45 + (complemento de 32 em 100) =45 + ( 68) = 113 (minuendo com dezena e unidade; logo, despreza-se a centena)45 –  32 = 13

     b)  2345 –  56 =2345 + (complemento de 56 em 10000) =

    2345 + ( 9944) = 12289 (considera-se apenas milhar, centena, dezena, unidade).2345 –  56 = 2289

    Outros casos:

    c)  - 345 + 6 =- (345 -6) =-(345 –  6) = - (345 + 994) = -(1339)- (345 –  6) = - 339

    d)  - 34 - 13 = - (34 + 13) = -(47) = -47

    Veja, neste link, um simulador da Pascalina: http://therese.eveilleau.pagesperso-orange.fr/pages/truc_mat/textes/pascaline.htm

    Ainda no século XVII, Gottfried Leibniz incrementou a Pascalina com as operações de multiplicação edivisão.

     No século XIX, Charles Babbage (citados por alguns autores como o avô do computador moderno)desenvolveu duas máquinas mecânicas: a Máquina Diferencial  e a Máquina Analítica. A primeiraexecutava, mecanicamente, cálculos polinomiais e funções trigonométricas para a Marinha Real Inglesa. Asinovações tecnológicas foram as seguintes: realizava repetidas e sucessivas operações de adição emultiplicação; e imprimia os resultados.

    A Máquina Analítica era composta por uma memória  (com capacidade para armazenar 1000números de 20 algarismos), uma unidade de processamento  (que realizava as quatro operaçõesaritméticas), uma unidade de entrada (leitora de cartões perfurados) e uma unidade de saída (perfuradorde cartões). Segundo [MONTEIRO 2007], “possuía um programa que podia modificar ofuncionamento da máquina, fazendo-a realizar diferentes cálculos. Esta era de fato sua grande diferença evantagem sobre as anteriores: o fato de se tornar de uso mais geral por possuir a capacidade demodificar suas operações e assim realizar diferentes cálculos”. Assim, [TANENBAUM 2001] ratificaque “A grande vantagem da máquina analítica estava no fato de ela ser de propósito geral”.  

    Em 1935, Konrad Zuse cria a primeira máquina de calcular com relés eletromagnéticos.

    Em 1944 Howard Aiken monta a máquina de Babbage com relés eletromecânicos. 

    Em virtude de segredo de estado do governo britânico, a Máquina Colossus, desenvolvida por AlanTuring e colocada em operação em 1943, só veio a conhecimento público nos anos 90. Dessa forma, ahistória da computação teve de ser adaptada para fazer justiça e esse grande matemático inglês que, durante aSegunda Guerra Mundial, trabalhou na criptoanálise do Enigma (dispositivo de criptografia utilizado pelosalemães). Segundo [MONTEIRO 2007], “Turing é bastante conhecido pela teoria da computação quedesenvolveu, conhecida como Máquina de Turing, descrita em 1937 e que consistia na definição de umafunção de computação, pela qual uma máquina poderia simular o comportamento de qualquer outramáquina usada para computação, se fosse adequadamente instruída para tal.” 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    8/47

    BCC  – Arquitetura de Computadores I 8 

    Resumindo:

    1.4.2 Primeira Geração - Válvulas (1945-1955)

    Entre 1943 e 1946, foi desenvolvido o ENIAC que, segundo [MONTEIRO 2007], consistia em 17.000válvulas e 800 metros de cabos, pesando ao todo cerca de 30 toneladas. Realizava cerca de 10.000 operações por segundo, possuía 20 registradores capazes de armazenar um valor decimal de 10 dígitos. Era programado por meio da redistribuição da cabos em tomadas diferentes e rearranjo de chaves. Essa era sua principallimitação.

    Ainda sobre o ENIAC, [STALLINGS 2002] destaca o seguinte “A tarefa de modificar um programano ENIAC era extremamente tediosa. O processo de programação poderia ser extremamente facilitadose um programa pudesse ser representado de maneira adequada, de modo que fosse armazenado namemória, juntamente com os dados. Assim, o computador poderia obter as instruções diretamente, a partirda memória, e um programa poderia ser carregado ou modificado simplesmente atribuindo valores a

     posições de memória. Essa ideia, conhecida como  programa armazenado, geralmente é atribuída aos projetistas do ENIAC, principalmente ao matemático John von Neumann, que era um dos consultores do projeto do ENIAC. “ 

    Em 1948, Claude E. Shannon publicou a Teoria da Informação como resultado de seu trabalho comoassistente no MIT. Uma das ideias propostas por Shannon foi de que a informação pode ser manipulada pormeio de dispositivos de chaveamento (relés) com dois estados distintos: aberto ou fechado e, portanto, poderiam ser afetuadas operações regidas pela álgebra boolena com valores binários (0 e 1). Com isso,qualquer informação deveria ser representada ou codificada em um valor binário desde que este preservasseo valor real da informação. Por exemplo, a informação das quatro estações do ano poderia ser representada por 2 dígitos binários ( log2 4 = 2): 00 , 01, 10 e 11. No caso da codificação, por exemplo, as 26 letras doalfabeto poderiam ser representadas por 5 bits ( 25 = 32). Foi nessa época que J. W. Tukey sugeriu o termo

     bit (BInary digiT).Em 1946, von Newmann e sua equipe iniciam o projeto de um novo computador de programa

    armazenado, conhecido como IAS (Institute for Advanced Study) e utilizando o sistema binário. O IAS,embora concluído somente em 1952, constitui o protótipo de todos os computadores de propósito geralsubsequentes. Assim, com raras exceções, todos os computadores atuais possuem a arquitetura do IAS, ouMáquina de von Neumann.

    Em 1947, é criado o UNIVAC que foi o primeiro computador para uso comercial.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    9/47

    BCC  – Arquitetura de Computadores I 9 

    1.4.3 Segunda Geração –  Transistores (1955 –  1965):

    A principal inovação nessa geração foi a substituição das válvulas eletrônicas por transistores.

    Outra inovação foi a criação de um software de sistema para controlar a unidade de lógica e aritméticae a unidade de controle ( atualmente, conhecido como Microprograma).

    O processamento era predominantemente em batch( em lotes) nos quais uma só atividade eraexecutada por vez.

    Em 1957 foi criada a DEC (Digital Equipament Corporation) que, por meio da série dos PDP, iniciouo advento dos minicomputadores.

    1.4.4 Terceira Geração –  Circuitos Integrados (1965 –  1980):

    Em 1958, os circuitos eletrônicos discretos foram reduzidos e integrados em um único chip. Com isso,nasce a microeletrônica.

    Os softwares de sistema de controle da unidade de processamento passam a ter mais controle sobretodas as demais funções das máquinas e, dessa forma, surgem os Sistemas Operacionais.

    Com maior controle sobre as funções do computador, foi possível compartilhar a unidade de processamento com diversas tarefas ( Job). Assim, surge o conceito de time sharing   (ou tempocompartilhado) nos quais várias tarefas eram concorriam pelo uso do processador.

    A IBM cria o conceito de Família de Computadores com o S360.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    10/47

    BCC  – Arquitetura de Computadores I 10 

    1.4.5 Quarta Geração –  Integração de Circuitos em Grande Escala (1980 - ?):

    A integração de componentes eletrônicos se desenvolve permitindo, assim, o projeto de computadoresde tamanho físico menores.

     No início da década de 1980, surgem os microprocessadores que deram vida aos computadores pessoais: a IBM lança o IBM-PC e a Steve Jobs lança o Apple e AppleII.

     Novo paradigma de mercado: em vez de manter o projeto do PC em segredo, a IBM resolveu divulgaro projeto detalhado de seu microcomputador a fim de permitir que outras empresas pudessem fabricarhardware compatível com o IBM-PC.

    A versão inicial do IBM-PC vinha com sistema operacional MS-DOS (Microsoft Disc OperationSystem) com processadores fabricados pela Intel.

    1.5 A Máquina de von Neumann (IAS)

    A seguir, será apresentada a estrutura do IAS que posteriormente ficou conhecida como Máquina devon Neumann:

    “Primeiro: como o dispositivo é em essência um computador, ele deverá executar maisfrequentemente as operações elementares da aritmética: adição, subtração, multiplicação edivisão. É razoável, portanto, que deva conter componentes especializados para realizar essasoperações.

    Deve-se observar, entretanto, que, embora esse princípio seja provavelmente correto, amaneira como será implementado requer um estudo meticuloso. De qualquer modo, deveráexistir, provavelmente, uma unidade central de aritmética, que constituirá a  primeira parteespecífica do dispositivo: CA.

    Segundo:  o controle lógico do dispositivo, ou seja, a execução das operações nasequência apropriada, pode ser feito, de modo mais eficiente, por meio de um componente decontrole central. Se o dispositivo tiver de ser flexível, isto é, se tiver de ser um dispositivo de   propósito geral , será conveniente, tanto quanto possível, distinguir o conjunto de instruçõesespecíficas para a solução de um determinado problema e os componentes de controle geral quese encarregam da execução dessas instruções, independentemente de quais elas sejam. Asinstruções devem ser armazenadas de algum modo; os componentes de controle são descritos pelas partes operacionais definidas do dispositivo. Entendemos como controle central   apenasessa última função, e os componentes que a desempenham constituem a  segunda parteespecífica do dispositivo: CC.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    11/47

    BCC  – Arquitetura de Computadores I 11 

    Terceiro: qualquer dispositivo destinado à execução de longas e complicadas sequênciasde operações (especificamente de cálculos) deve ter uma memória considerável.

    O conjunto de instruções para a solução de um problema complicado pode ter tamanhoconsiderável, particularmente se o código for circunstancial (o que ocorre na maioria dos casos).Esse conjunto de instruções deve ser, de alguma maneira, recuperado.

    A memória, como um todo, constitui a terceira parte específica do dispositivo: M.

    As três partes específicas, CA, CC e M, correspondem aos neurônios associativos dosistema nervoso humano. Resta discutir os componentes equivalentes aos neurônios  sensoriais,ou aferentes, e aos neurónios motores, ou eferentes. Esses são os elementos de entrada e saídado dispositivo.

    O dispositivo deve ser dotado de habilidade para manter contato de entrada e saída(sensorial e motor) com alguns mecanismos específicos dessa natureza. Estes mecanismos serãodenominados meios de armazenamento externo do dispositivo: A

    Quarto:  o dispositivo deve possuir elementos para transferir informações de A paraseus componentes específicos C e M. Esses elementos constituem sua entrada, a quarta parteespecífica do dispositivo: E. Veremos que é mais adequado efetuar todas as transferências de A(por E) para M e nunca diretamente para C.

    Quinto:  o dispositivo deve possuir elementos para transferir de seus componentesespecíficos C e M para A .Esses elementos constituem sua  saída, a quinta parte específica dodispositivo: S. Veremos novamente que é mais adequado efetuar todas as transferências de M(por S) para A e nunca diretamente para C. “ [STALLINGS 2002] 

    Resumindo os componentes estruturais de um computador

    Unidade central de processamento (UCP ou CPU): controla a operação do computador edesempenha funções de processamento de dados. É muitas vezes chamada simplesmente de processador.Por sua vez, a CPU é subdivida em:

    Unidade de Controle: controla a operação da CPU e, portanto, do computador.

    Unidade Lógica e Aritmética (ULA ou ALU):  realiza a operações lógicas earitméticas com os dados trazidos da memória para os registradores.

    Registradores: fornece o armazenamento interno para que a CPU processe os dados.

    Memória Principal: para armazenamento de dados diretamente endereçáveis pela CPU, ou seja, aCPU consegue determinar qual a localização do dado dentro da memória.

    Dispositivos de Entrada e Saída (E/S ou I/O): transfere dados entre o computador e o ambienteexterno.

    Sistema de Interconexão (Barramento): mecanismo que estabelece a comunicação entre a CPU, amemória principal e o os dispositivos de entrada e saída.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    12/47

    BCC  – Arquitetura de Computadores I 12 

    Como conclusão desta aula, vale reproduzir o seguinte texto de [STALLINGS, 2002]:

    O computador é composto de um pequeno conjunto de componentes lógicos básicos, que podem sercombinados de vários modos para armazenar dados binários e executar operações aritméticas e lógicas sobreesses dados. É possível obter, para cada aplicação particular, uma configuração de componentes lógicos projetada especificamente para executar essa aplicação. Esse processo de conectar os diferentescomponentes do sistema para obter a configuração desejada pode ser concebido como uma forma de

     programação. O 'programa' resultante é formado pelo hardware e é chamado programa hardwired  .Considere agora outra alternativa: suponha que construímos uma configuração de funções lógicas e

    aritméticas de propósito geral. Esse conjunto de componentes de hardware é capaz de executar váriasfunções sobre os dados, dependendo dos sinais de controle que lhe são aplicados. Na situação anterior, emque o hardware é dedicado para uma aplicação particular, o sistema apenas lê dados e produz resultados(Figura a). Um hardware de propósito geral é capaz de ler dados e sinais de controle e produzir resultados.Assim, em vez de projetar um novo hardware para cada aplicação nova, o programador simplesmente precisa fornecer um novo conjunto de sinais de controle.

    Como esses sinais de controle devem ser fornecidos? A resposta é simples, porém sutil. Um programaé constituído de uma sequência de passos. A cada passo, alguma operação lógica ou aritmética é executadasobre algum dado. Para cada passo, é necessário um novo conjunto de sinais de controle. Podemos definir

    um código para cada possível conjunto de sinais de controle e acrescentar ao hardware de propósito geralum elemento capaz de interpretar esses códigos e gerar os sinais de controle correspondentes (Figura b).

    Programar agora ficou muito mais fácil. Em vez de projetar um novo hardware para cadaaplicação nova, precisamos apenas fornecer uma nova sequência de códigos . Cada código corresponde auma instrução; uma parte do hardware interpreta essas instruções e gera os sinais de controlecorrespondentes. Para distinguir esse novo método de programação, uma sequência de códigos ouinstruções é chamada de software.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    13/47

    BCC  – Arquitetura de Computadores I 13 

    2 –   SISTEMA BINÁRIO E CONVERSÃO DE BASES

    2.1 Sistema Binário

    Conforme estudamos na Aula 1, desde a arquitetura de von Neumann, os computadores sãoconstruídos utilizando-se a lógica binária, ou seja, dígitos “0” e “1”. Nós, seres humanos, estamosacostumados com o sistema decimal. Dessa forma, ao lermos um valor binário iremos, intuitivamente, tentar

    convertê-lo para a dimensão decimal para melhor visualizar a quantidade ali expressa. A utilização da basebinária na computação se deve ao trabalho de Claude Shannon, em 1948, sobre a Teoria Matemáticada Comunicação. Embora não esteja no escopo desta disciplina o estudo completo dessa teoria, vale paranosso estudo o seguinte:

    “Se utilizar a base 2, as unidades resultantes podem chamar -se dígitos binários, ou, abreviadamente,bits (BInary digiT), termo sugerido por J.W.Tukey. Assim, um dispositivo com duas posições estáveis (oudois estados estáveis: ligado/desligado ; fechado/aberto; sim/não) pode armazenar um bit de informação.  N  desses dispositivos podem armazenar  N   bits, já que o número total de estados possíveis é 2 N   e log22

     N   = N .”[SHANNON, 1948]. 

    Com dois bits, tem-se 4 estados, ou seja, 22 = 4 Com três bits, tem-se 8 estados, ou seja, 23 = 8

    Qde Bits Qde Bits

    0 0

    Estados possíveis

    0 0 0

    Estados possíveis

    0 1 0 0 1

    1 0 0 1 0

    1 1 0 1 1

    1 0 0

    1 0 1

    1 1 0

    1 1 1

    Ou seja, sendo N a quantidade de bits utilizados, tem-se 2 N (Base 2) estados possíveis:

    Qde de bits Estados possíveis

    1 21 = 2  Ao observar os estados possíveis, percebe-se que eles não são

    compatíveis com a base decimal, com a qual estamos habituados alidar. Ou seja, no sistema decimal, seus 10 algarismos possibilitamrepresentar ou 10, ou 100, ou 1000 ..... estados diferentes.

    Dessa forma, há a necessidade de representar a mesma quantidadede estados da tabela ao lado em outras bases que não a binária.

    Tipicamente, em computação, além da base 2, utilizam-se asbases 8 (octal) e 16 (hexadecimal).

    2 22 = 4

    3 23 = 8

    4 24 = 16

    5 25 = 32

    6 26 = 64

    7 27 = 128

    8 28 = 256

    9 29 = 512

    10 210

     = 1024

  • 8/18/2019 BCC ArquiteturaComputadoresI

    14/47

    BCC  – Arquitetura de Computadores I 14 

    Para facilitar a nossa manipulação com valores binários, em ciência da computação tambémutilizamos outras duas bases: octal e hexadecimal. Mas, lembre-se, internamente o computador sempretrabalhará com valores binários.

    Base Quantidade de Estados Dígitos

    2 –  binária 2 0 1

    8 –  octal 8 0 1 2 3 4 5 6 7

    16 - hexadecimal 16 0 1 2 3 4 5 6 7 8 9 A B C D E F

    Conforme o diagrama abaixo, pode-se perceber que tanto a base 8 quanto a 16 preservam o número deestados da informação em log2.

    Base 2

    Base 8

    Base 16

    Valor binário: 2 estados representado

    por 1 bit ( log22 = 1).

    Valor octal: 8 estados representadorpor 3 bits (log28 = 3).

    Valor hexadecimal: 16 estadosrepresentados por 4 bits (log216=4). 

    0 0 0 0 0 0 0

    0 0 0 1 1 1 1

    0 0 1 0 2 2

    0 0 1 1 3 3

    0 1 0 0 4 4

    0 1 0 1 5 5

    0 1 1 0 6 6

    0 1 1 1 7 7

    1 0 0 0 8

    1 0 0 1 9

    1 0 1 0 A

    1 0 1 1 B

    1 1 0 0 C

    1 1 0 1 D

    1 1 1 0 E

    1 1 1 1 F

    Base 10

    Com a Base 10 não é possível representar todos osestados possíveis uma quantidade inteira N de bitsonde log 2 2

    N = N.

    Shannon explica em seu trabalho que para se utilizar abase decimal para armazenar a informação, serianecessário um dispositivo que conseguisse armazenar10 estados distintos. Embora o dígito decimal equivalea 3 e 1/3 dígitos binários, na prática, a construção dedispositivos de chaveamento com dois estados é muitomais viável. 

    0 0 0 0 0

    0 0 0 1 1

    0 0 1 0 2

    0 0 1 1 3

    0 1 0 0 4

    0 1 0 1 5

    0 1 1 0 6

    1 1 1 1 7

    1 0 0 0 8

    1 0 0 1 9

  • 8/18/2019 BCC ArquiteturaComputadoresI

    15/47

    BCC  – Arquitetura de Computadores I 15 

    2.2 Conversão entre Bases Decimal e Binária.

    2.2.1 Sistemas de Numeração

    Segundo [MONTEIRO 2007], os sistemas de numeração são divididos em não-posicionais

    (algarismos romanos) e posicionais (algarismos arábicos). No primeiro, a noção de quantidade é expressa porum símbolo que representa uma quantidade fixa. Para determinar uma grandeza numérica, deve-se reunir ossímbolos, conforme o valor que cada um representa, até completar o número: MCMLXXXVIII. No segundo,há símbolos para representar grandezas unitárias e, para representar quantidades que excedem a possibilidades dos símbolos, cada símbolo ocupa outra posição para quantificar esse valor: 2, 20, 200, 2.000e 20.000. Neste exemplo, o algarismo 2, dependendo da posição, pode representar: duas unidades, duasdezenas, duas centenas, dois milhares e duas dezenas de milhares respectivamente.

    Assim, cada posição corresponde ao algarismo na potência de base 10:

    BASE Potência  Valor na Base 10 Exemplo:256.398

    100

      1 8 x 100

      810 1  10 9 x 101  90

    10 2  100 3 x 102  300

    10 3  1.000 6 x 103  6.000

    10 4  10.000 5 x 104  50.000

    10 5  100.000 2 x 105  400.000

    Ou seja, 256.398 = (2 x 105) + (5 x 104) + (6 x 103) + (3 x 102) + (9 x 101) + (8 x 100)

    Assim, sendo um número N na Base 10 (N10), cada posição (unidade, dezena, centena, etc) será representada por um algarismo A multiplicado pela base elevada a potência de números de algarismos -1:

    N10 = A x 10 NumAlgarismo -1 + .... + A x 103 + A x 102 + A x 101 + A x 100 + A x 10-1 + A x 10-2 ....

  • 8/18/2019 BCC ArquiteturaComputadoresI

    16/47

    BCC  – Arquitetura de Computadores I 16 

    2.2.2 Conversão Decimal para Binário (N10 para N2)

    Dado N10, para convertê-lo para N2 :

    N10  2

    Divide-se N10 pelo valor da base até o quociente formenor que o divisor (base a ser convertida).

    O valor na Base 2 será lido do quociente (bit maissignificativo) e, na ordem, os demais valores deresto até o primeiro valor (bit menos significativo)

    r Q10  2

    r Q10  2

    r Q10  2

    r Q10 < 2

    Exemplo: Converter 13110 para Base 2:

    131 2

    1 65 2

    1 32 2

    0 16 2

    0 8 2

    0 4 2

    0 2 2

    0 1

    13110 = 100000112 

    2.2.3 Conversão Binário para Decimal (N2 para N10)

     N10 = N2 x 2(b- 1) + ... +N2 x 2

    1 + N2 x 20  Toma-se a quantidade de bits (b) e multiplica o bit

    menos significativo por 20, o segundo bit por 21, até o bit mais significativo por 2 (b -1) 

    Exemplo: Converter 100000112 para Base 10: 

    Maissignificativo

    Menossignificativo

    1 0 0 0 0 0 1 1

    1 x 27 + 0 x 26  + 0 x 25  + 0 x 24  + 0 x 23  + 0 x 22 + 1 x 21  + 1 x 20 

    1 x 128 + 0 x 64 + 0 x 32 + 0 x 16 + 0 x 8 + 0 x 4 + 1 x 2 + 1 x 1

    128 + 2 + 1 = 131

  • 8/18/2019 BCC ArquiteturaComputadoresI

    17/47

    BCC  – Arquitetura de Computadores I 17 

    2.2.4 Método prático para conversão N10/N2 e N2/N10:

    Monte uma tabela com as potências de 2 (o valor da potência depende do valor que se desejaconverter);

    Preencha cada posição com as potências da base 2 do bit menos significativo para o mais significativo;

    29  28  27  26  25  24  23  22  21  20 

    512 256 128 64 32 16 8 4 2 1

    - Para converter de N2/N10: 11001011012 =

    29  28  27  26  25  24  23  22  21  20 

    512 256 128 64 32 16 8 4 2 1

    1 1 0 0 1 0 1 1 0 1

    = 1 x 512 + 1 x 256 + 128 x 0 + 64 x 0 + 32 x 1 + 16 x 0 + 8 x 1 + 4 x 1 + 2 x 0 + 1 x 1 = 81310 

    Ou, soma-se apenas os valores na tabela que correspondem ao binário 1 na respectiva posição:

    = 512 + 256 + 32 + 8 + 4 + 1 = 81310

    Para converter N10/N2  : 113 10 

    -Define-se a dimensão da tabela conforme o número do qual se quer converter. O esquema abaixomostra como dimensionar a tabela binária.

    Número de posições Valor Máximo na Base 10

    1 1 21 - 1

    2 3 22 - 1

    3 7 23 - 1

    4 15 24 - 1

    5 31 25 - 1

    6 63 26 - 1

    7 127 27 - 1

    8 255 28 - 1

    9 511 29 - 1

    10 1023 210 - 1

  • 8/18/2019 BCC ArquiteturaComputadoresI

    18/47

    BCC  – Arquitetura de Computadores I 18 

    - Para converter 113, tem-se de utilizar a tabela com 7 posições:

    26  25  24  23  22  21  20 

    64 32 16 8 4 2 1

    - Verifica-se se 113 é maior ou igual ao maior valor de tabela. Se for, marque o bit igual a um na posição testada e subtraia de 113 o respectivo valor decimal. Repita essa operação até o bit menossignificativo.

    - No caso, 113 é maior que 64, então, marque o bit igual a 1 e subtraia 64 de 113:

    6  5  4  3  2  1  0 

    64 32 16 8 4 2 1

    1 Se 113 >= 64; Então faça 113 –  64 = 49 e marque bit = 1.

    1  1 Se 49 >= 32; Então faça 49 –  32 = 17 e marque bit = 1

    1 1 1 Se 17 >= 16; Então faça 17 –  16 = 1 e marque bit = 1

    1 1 1 0 Se 1 >= 8; Senão passe para próxima posição e marque bit = 0

    1 1 1 0 0 Se 1 >= 4; Senão passe para próxima posição e marque bit = 0

    1 1 1 0 0 0 Se 1 >= 2; Senão passe para próxima posição e marque bit = 0

    1 1 1 0 0 0  1 Se 1 >= 1; Então faça 1 - 1 = 0 e marque bit = 1. Valor final = 0.

    11310 = 11100012 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    19/47

    BCC  – Arquitetura de Computadores I 19 

    3 –  BASES OCTAL E HEXADECIMALDando continuidade ao assunto da Aula 2, nesta aula iremos trabalhar com as bases numéricas octal e

    hexadecimal.

    Revisando:

    Base Quantidade de Estados Dígitos

    2 –  binária 2 0 1

    8 –  octal 8 0 1 2 3 4 5 6 7

    16 - hexadecimal 16 0 1 2 3 4 5 6 7 8 9 A B C D E F

    3.1 Base Octal (N8)

    3.1.1 Conversão Decimal para Octal (N10 para N8)

    N10  8Divide-se N10 pelo valor da base até quociente formenor que o valor da base a ser convertida.

    O valor na Base 8 será lido do quociente (maissignificativo) e, na ordem, os demais valores deresto até o primeiro valor do resto (menossignificativo)

    r Q10  8

    r Q10  8

    r Q10  8

    r Q10 < 8

    Exemplo: Converter 13110 para Base 8:

    131 8

    13110 = 2038 3 16 8

    0 2

    3.1.2 Conversão de Octal para Decimal (N8 para N10)

     N10 = N8 x 8(o - 1) + ... +N8 x 8

    1 + N8 x 80  Toma-se a quantidade de dígitos octais e multiplica o

    dígito menos significativo por 80, o segundo dígito por 81, até o digito octal mais significativo por 8 (o -1).

    Converter 26728 para Base 10: 

    Maissignificativo

    Menossignificativo

    2 6 7 2

    2 x 83  + 6 x 82 + 7 x 81  + 2 x 80 

    2 x 512 + 6 x 64 + 7 x 8 + 2 x 1 1024 + 384 + 56 + 2 = 146610 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    20/47

    BCC  – Arquitetura de Computadores I 20 

    3.1.3 Método prático para conversão entre N10/N8 e N8/ N10

    a) Decimal/Octal

    579310 =

    8

    4

      8

    3

      8

    2

      8

    1

      8

    0

     4096 512 64 8 1 Base 10

    1 3 2 4 1 Base 8

    5793 –  ( 1 x 4096) = 1697 –  (3 x 512) = 161 –  ( 2 x 64 ) = 33 –  ( 4 x 8 ) = 1 –  ( 1 x 1 ) = 0

    579310 = 132418 

    b) Octal/Decimal

    177568=

    84  83  82  81  80 

    4096 512 64 8 1 Base 10

    1 7 7 5 6 Base 8

    177568 = (1 x 4096) + (7 x 512) + (7 x 64) + (5 x 8) + (6 x 1) = 817410

    177568n= 817410

  • 8/18/2019 BCC ArquiteturaComputadoresI

    21/47

    BCC  – Arquitetura de Computadores I 21 

    3.2 Base Hexadecimal

    3.2.1 Conversão de Decimal para Hexadecimal (N10 para N16)

    N10  16

    Divide-se N10 pelo valor da base até quociente for

    menor que o valor da base a ser convertida.

    O valor na Base 16 será lido do quociente (maissignificativo) e, na ordem, os demais valores deresto até o primeiro valor do resto (menossignificativo).

     Atenção: 10=A; 11 = B; 12=C ; 13=D ; 14=E e 15=F.

    r Q10  16

    r Q10  16

    r Q10  16

    r Q10 < 16

    Exemplo: Converter 93510 para Base 16:

    935 16

    93510 = 3A716 7 58 16

    10 3

    3.2.2 Conversão de Hexadecimal para Decimal (N16 para N10)

     N10 = N16 x 16 (h –  1) + ... +N16 x 161 + N16 x 160  Toma-se a quantidade de dígitos hexadecimais emultiplica o dígito menos significativo por 160, osegundo dígito hexadecimal por 161, até o digitohexadecimal mais significativo por 16 (h -1).

    Exemplo: Converter BABA16 para Base 10: 

    Maissignificativo

    Menossignificativo

    B A B A

    11 x 163  + 10 x 162 + 11 x 161  + 10 x 160 

    11 x 4096 + 10 x 256 + 11 x 16 + 10 x 1 45056 + 2560 + 176 + 10 = 4780210 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    22/47

    BCC  – Arquitetura de Computadores I 22 

    3.2.3 Método prático para conversão entre N10/N16 e N16/ N10 

    a) Decimal/Hexa: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)

    5035710 =

    164  163  162  161  160 

    65536 4096 256 16 1 Base 100 12 (C) 4 11 (B) 5 Base 16

    50357 –  (12 x 4096) = 1205 –  ( 4 x 256) = 181 –  ( 11 x 16) = 5 –  (5 x 1) = 0

    5035710 = C4B516 

    b) Hexa/Decimal: ( A= 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15)

    DADA16 =164  163  162  161  160 

    65536 4096 256 16 1 Base 10

    0 D A D A Base 16

    DADA16 = (13 x 4096) + (10 x 256) + (13 x 16) + (10 x 1) = 5602610

    DADA16 = 5602610

  • 8/18/2019 BCC ArquiteturaComputadoresI

    23/47

    BCC  – Arquitetura de Computadores I 23 

    3.3 Conversão entre Binário, Octal e Hexadecimal:

    a) Binário/Octal :

    Forme grupos de 3 bits (partindo da direita para esquerda) e faça as conversões para octal.

    Ex: 1110101101

    |001|110|101|101

    1 6 5 5 => 11101011012 = 16558 

    b) Binário/Hexa:

    Forme grupo de 4 bits (da direita para esquerda) e faça as conversões para hexa.

    Ex: 1110101101

    |0011|1010|1101

    3 A D => 11101011012 = 3AD16 

    c) Hexa/Octal (utilizando binário como base comum)

    45AEF16 = 10553578 

    | 4 | 5 | A | E | F |

    |0100|0101| 1010| 1110 | 1111| => 010001011010111011112  => |001|000|101|101|011|101|111

    1 0 5 5 3 5 7 => 10553578 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    24/47

    BCC  – Arquitetura de Computadores I 24 

    4 –  REPRESENTAÇÃO DE DADOS

    4.1 Unidades com Binários

    1 Bit = BInary DigiT é a menor unidade de informação dentro do computador.

    1 Nibble = 4 bits , um nibble pode representar qualquer dígito hexadecimal.1 Byte  = 8 bits , segundo [TOCCI 2007 ], o “Byte se tornou a unidade fundamental para se

    representar qualquer tipo de informação, principalmente em dispositivos de armazenamento como memória primária e secundária”. E [HYDE 2003] complementa informando-nos que “ é a menor quantidade dedados endereçável dentro da memória” na maioria das arquiteturas. 

    Word (Palavra) : em termos gerais, a palavra é um conjunto de bits que não seja um nibble ou byte.Dessa forma, pode-se ter palavras de 10 bits, por exemplo. Entretanto, na maioria das arquiteturas uma palavra representa 16 bits. Assim, segundo [HYDE 2004]:

    1 Word (Palavra) = 16 bits.

    1 Double Word , DWord (Palavra Dupla) = 32 bits.

    1 Quad Word, QWord (Palavra Quádrupla) = 64 bits.

    1 Long Word , LWord (Palavra Longa) = 128 bits.

    Palavras de 10 bits, por exemplo, são conhecidas como Ten Word (TWord).

    Em [HYDE 2003], tem-se as seguintes representações na memória:

    BYTE

    Bit 7 mais significativo ( HO Bit) Bit 0 menos significativo (LO Bit)

    HO = High Order HO Nibble LO Nibble LO = Low Order

    BYTE

    WORD

    HO BYTE LO BYTE

    Nibble 3 (HO) Nibble 2 Nibble 1 Nibbe 0 (LO)

    DWORD

    HO WORD LO WORD

    BYTE 3 (HO) BYTE 2 BYTE 1 BYTE 0 (LO)

    Nibble7(HO) Nibble 6 Nibble 5 Nibbe 4 Nibble 3 Nibble 2 Nibble 1 Nibbe0 (LO)

  • 8/18/2019 BCC ArquiteturaComputadoresI

    25/47

    BCC  – Arquitetura de Computadores I 25 

    4.2 Endereçamento de Byes e Palavras na Memória

    A figura abaixo ilustra conteúdos de memória (em Bytes) sendo endereçados por instruções de 1 byte,word , dword e qword:

    Instrução Unidade a ser endereçada Endereço 16  MEMÓRIA2 

    0F 00000000

    Load(10) BYTE 10 0000000011 00000000

    Load[W](12)W = word

    WORD12 00000000

    13 00000000

    Load[D](14)D = Dword

    DWORD

    14 0000000015 00000000

    16 0000000017 00000000

    Load[Q](18)

    Q= QWordQWORD

    18 0000000019 000000001A 00000000

    1B 00000000

    1C 000000001D 000000001E 00000000

    1F 00000000

    Como já sabemos, o byte é a menor unidade de informação endereçável na memória. Por exemplo,uma determinada arquitetura trabalha com a instrução LOAD( M ) que carrega para um determinadoregistrador o conteúdo de 1 Byte de dados localizado no endereço  M  da memória. Nesse caso, essa mesmaarquitetura pode ter instruções que carregam uma word, dword ou qword. Nesse caso, na sintaxe da instruçãohá a indicação da unidade entre colchetes. Por exemplo, LOAD[W](12) carregará um registrador de 16 bitscom o conteúdo de 2 bytes a partir do endereço 1216, ou seja, os bytes armazenados em 1216 e 1316.

    Os registradores –  unidade de memória dentro da CPU  –  também podem ser organizados conforme aquantidade de bytes endereçados. Por exemplo, na arquitetura 80x86 (ou x86), o acumulador  –  conhecidoapenas como registrador AX –  segue a estrutura abaixo:

    AX

    BYTE BYTE

    AH ALSistemas de 16 bits

    EAX

    BYTE BYTE BYTE BYTE

    Sistemas de 32 bitsRAX

    BYTE BYTE BYTE BYTE BYTE BYTE BYTE BYTE

    Sistemas de 64 bits

    É importante observar que na arquitetura x86, o processador é de 16 bits (word). Dessa forma, aunidade básica de endereçamento é uma palavra de 16 bits. Entretanto, para manter a compatibilidade, hácomo endereçar o byte por meio do AH (registrador A com byte mais significativo) e AL (registrador A como byte menos significativo). O EAX é uma dword para arquitetura de 32 bits e o RAX é uma qword para64bits.

    Ler sobre famílias de processadores Intel em:

    http://pt.wikipedia.org/wiki/X86 

    http://pt.wikipedia.org/wiki/X86http://pt.wikipedia.org/wiki/X86http://pt.wikipedia.org/wiki/X86

  • 8/18/2019 BCC ArquiteturaComputadoresI

    26/47

    BCC  – Arquitetura de Computadores I 26 

    4.3 Representação de Dados

    Até o momento, temos manipulado apenas valores numéricos em diversas bases. Entretanto, há outrostipos de dados  –  como, por exemplo, caracteres alfanuméricos e especiais - que devem ser representados,armazenados e manipulados de forma binária dentro do computador. Para tanto, deve-se utilizar técnicas de

    codificação diversos símbolos de dados para o binário. Nesse sentido, [TOCCI ] esclarece: “Quando números, letras ou palavras são representados por um

    grupo especial de símbolos, dizemos que eles estão codificados, sendo o grupo de símbolos é denominadocódigo”.

    4.3.1 Código BCD (Bi nary Coded Decimal )

    Segundo [STALINGS 2002 ],

    “Embora toda a operação interna de um computador seja, por natureza, binária, usuários

    do sistema lidam com números decimais. Portanto, números decimais devem serconvertidos para binário, na entrada, e números binários devem ser convertidos paranúmeros decimais na saída. Para aplicações com grande quantidade de E/S e

    relativamente pouca computação, é preferível armazenar e operar sobre números naforma decimal. A representação mais comumente usada para esse propósito é arepresentação de número decimal empacotado em unidades de 4 bits (essa representaçãoé conhecida como BCD –   binary coded decimal).” 

     No BCD cada valor decimal é codificado pelo respectivo valor em binário de um nibble conforme atabela abaixo:

    Segundo [TOCCI 2007]:

    “Vimos que qualquer número decimal pode ser representado por um número binário

    equivalente. Os grupos de 0s e 1s em um número binário podem ser usados como uma

    representação codificada de um número decimal. Quando um número decimal érepresentado pelo seu binário equivalente, dizemos que é uma codificação em bináriopuro”.

    “Todos os sistemas digitais usam alguma forma de numeração binária em suas operaçõesinternas; porém, o mundo externo é naturalmente decimal. Isto significa que conversõesentre os sistemas decimal e binário são realizadas frequentemente. Vimos que conversõesentre decimal e binário podem se tornar longas e complicadas para números grandes. Porisso, uma maneira de codificar números decimais, que combine algumas característicasdos dois sistemas, binário e decimal, é usada em determinadas situações.”  

    Código BCDValor Binário Codificação em Dígitos Decimais

    0000 0

    0001 1

    0010 2

    0011 3

    0100 4

    0101 5

    0110 6

    0111 7

    1000 8

    1001 9

  • 8/18/2019 BCC ArquiteturaComputadoresI

    27/47

    BCC  – Arquitetura de Computadores I 27 

    Pela tabela anterior, pode-se verificar que com um níbble é possível representar os dez dígitos dosistema decimal. Dessa forma, como 1 byte é possível representar valores de 0 a 99 onde as dezenas serãocodificadas com o nibble mais significativo e as unidades com o nibble menos significativo:

    BYTE

    Nibble HO Nibble LO

    1 0 0 1 0 1 1 1

    9 7 97 codificado em BDC 

    Lembre-se de que estamos tratando aqui é de uma codificação e não de conversão de bináriopara decimal. Portanto, se convertermos o binário 10010111 teremos o valor 151 em decimal.

    Segundo [HYDE 2003], “com o BCD o uso da memória é ineficiente; pois com 8 bits, o BCDarmazena apenas valores de 0 a 99 enquanto que na conversão entre as bases, com os mesmos 8 bits pode-serepresentar valores decimais de 0 a 255.” Dessa forma, o BCD encontra aplicações em dispositivos de usoespecífico principalmente nas interfaces de exibição de valores decimais tais como displays de dispositivosdigitais.

    Quando um byte codifica um valor decima de dois dígitos (um dígito por nibble), dizemos ser umBCD empacotado (packed BCD). Quando um byte só representa um dígito decimal, dizemos ser um BCDdesempacotado (unpacked BCD).

    Como há combinações binárias sobrando no BCD, pode-se utilizá-las para representação de sinal. Neste caso, tem-se:

    Código BCD

    Valor Binário Sinal

    1111 Sem sinal

    1100 Positivo1101 Negativo

  • 8/18/2019 BCC ArquiteturaComputadoresI

    28/47

    BCC  – Arquitetura de Computadores I 28 

    4.3.2 Código Alfanumérico ASCII

    Conforme [TOCCI 2007], “o código alfanumérico mais utilizado é o Código Padrão para Troca deInformações ( American Standard Code for Information Interchange - ASCII)”.

    O ASCII codifica caracteres alfanuméricos imprimíveis e caracteres de controle não imprimíveis pormeio de 7 bits, ou seja, há no total 128 (27) representações codificadas conforme a tabela abaixo:

    Dec Hexa Caracter Dec Hexa Caracter Dec Hexa Caracter Dec Hexa Caracter00 00 NUL 32 20 64 40 @ 96 60 `

    01 01 SOH 33 21 ! 65 41 A 97 61 a

    02 02 STX 34 22 " 66 42 B 98 62 b

    03 03 ETX 35 23 # 67 43 C 99 63 c

    04 04 EOT 36 24 $ 68 44 D 100 64 d

    05 05 ENQ 37 25 % 69 45 E 101 65 e

    06 06 ACK 38 26 & 70 46 F 102 66 f

    07 07 BEL 39 27 ' 71 47 G 103 67 g

    08 08 BS 40 28 ( 72 48 H 104 68 h

    09 09 HT 41 29 ) 73 49 I 105 69 i

    10 0A LF 42 2A * 74 4A J 106 6A  j

    11 0B VT 43 2B + 75 4B K 107 6B k

    12 0C FF 44 2C , 76 4C L 108 6C l

    13 0D CR 45 2D - 77 4D M 109 6D m

    14 0E SO 46 2E . 78 4E N 110 6E n

    15 0F SI 47 2F / 79 4F O 111 6F o

    16 10 DLE 48 30 0 80 50 P 112 70 p

    17 11 DC1 49 31 1 81 51 Q 113 71 q

    18 12 DC2 50 32 2 82 52 R 114 72 r

    19 13 DC3 51 33 3 83 53 S 115 73 s

    20 14 DC4 52 34 4 84 54 T 116 74 t

    21 15 NAK 53 35 5 85 55 U 117 75 u

    22 16 SYN 54 36 6 86 56 V 118 76 v23 17 ETB 55 37 7 87 57 W 119 77 w

    24 18 CAN 56 38 8 88 58 X 120 78 x

    25 19 EM 57 39 9 89 59 Y 121 79 y

    26 1A SUB 58 3A : 90 5A Z 122 7A z

    27 1B ESC 59 3B ; 91 5B [ 123 7B {

    28 1C FS 60 3C < 92 5C \ 124 7C |

    29 1D GS 61 3D = 93 5D ] 125 7D }

    30 1E RS 62 3E > 94 5E ^ 126 7E ~

    31 1F US 63 3F ? 95 5F  _ 127 7F DEL

    Caracteres de controle: de 0 até 31 mais o 127.

    Caracteres imprimíveis: de 32 até 126.

     No ASCII, o bit mais significativo é utilizado para verificação de erro por cálculo de paridade (videAnexo). Isso foi necessário em virtude de o ASCII ser utilizado para a codificação de informação transmitidaentre máquinas.

    http://pt.wikipedia.org/wiki/@http://pt.wikipedia.org/wiki/Crasehttp://pt.wikipedia.org/wiki/Ponto_de_exclama%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Ahttp://pt.wikipedia.org/wiki/Ahttp://pt.wikipedia.org/wiki/Aspashttp://pt.wikipedia.org/wiki/Bhttp://pt.wikipedia.org/wiki/Bhttp://pt.wikipedia.org/wiki/Cerquilhahttp://pt.wikipedia.org/wiki/Chttp://pt.wikipedia.org/wiki/Chttp://pt.wikipedia.org/wiki/Cifr%C3%A3ohttp://pt.wikipedia.org/wiki/Dhttp://pt.wikipedia.org/wiki/Dhttp://pt.wikipedia.org/wiki/Percentagemhttp://pt.wikipedia.org/wiki/Ehttp://pt.wikipedia.org/wiki/Ehttp://pt.wikipedia.org/wiki/E_comercialhttp://pt.wikipedia.org/wiki/Fhttp://pt.wikipedia.org/wiki/Fhttp://pt.wikipedia.org/wiki/Ap%C3%B3strofohttp://pt.wikipedia.org/wiki/Ghttp://pt.wikipedia.org/wiki/Ghttp://pt.wikipedia.org/wiki/Par%C3%AAntesehttp://pt.wikipedia.org/wiki/Hhttp://pt.wikipedia.org/wiki/Hhttp://pt.wikipedia.org/wiki/Par%C3%AAntesehttp://pt.wikipedia.org/wiki/Ihttp://pt.wikipedia.org/wiki/Ihttp://pt.wikipedia.org/wiki/Asteriscohttp://pt.wikipedia.org/wiki/Jhttp://pt.wikipedia.org/wiki/Jhttp://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Khttp://pt.wikipedia.org/wiki/Khttp://pt.wikipedia.org/wiki/V%C3%ADrgulahttp://pt.wikipedia.org/wiki/Lhttp://pt.wikipedia.org/wiki/Lhttp://pt.wikipedia.org/wiki/H%C3%ADfenhttp://pt.wikipedia.org/wiki/Mhttp://pt.wikipedia.org/wiki/Mhttp://pt.wikipedia.org/wiki/Ponto_finalhttp://pt.wikipedia.org/wiki/Nhttp://pt.wikipedia.org/wiki/Nhttp://pt.wikipedia.org/wiki/Barra_(caractere)http://pt.wikipedia.org/wiki/Ohttp://pt.wikipedia.org/wiki/Ohttp://pt.wikipedia.org/wiki/Zerohttp://pt.wikipedia.org/wiki/Phttp://pt.wikipedia.org/wiki/Phttp://pt.wikipedia.org/wiki/Umhttp://pt.wikipedia.org/wiki/Qhttp://pt.wikipedia.org/wiki/Qhttp://pt.wikipedia.org/wiki/Doishttp://pt.wikipedia.org/wiki/Rhttp://pt.wikipedia.org/wiki/Rhttp://pt.wikipedia.org/wiki/Tr%C3%AAshttp://pt.wikipedia.org/wiki/Shttp://pt.wikipedia.org/wiki/Shttp://pt.wikipedia.org/wiki/Quatrohttp://pt.wikipedia.org/wiki/Thttp://pt.wikipedia.org/wiki/Thttp://pt.wikipedia.org/wiki/Cincohttp://pt.wikipedia.org/wiki/Uhttp://pt.wikipedia.org/wiki/Uhttp://pt.wikipedia.org/wiki/Seishttp://pt.wikipedia.org/wiki/Vhttp://pt.wikipedia.org/wiki/Vhttp://pt.wikipedia.org/wiki/Setehttp://pt.wikipedia.org/wiki/Whttp://pt.wikipedia.org/wiki/Whttp://pt.wikipedia.org/wiki/Oitohttp://pt.wikipedia.org/wiki/Xhttp://pt.wikipedia.org/wiki/Xhttp://pt.wikipedia.org/wiki/Novehttp://pt.wikipedia.org/wiki/Yhttp://pt.wikipedia.org/wiki/Yhttp://pt.wikipedia.org/wiki/Dois_pontoshttp://pt.wikipedia.org/wiki/Zhttp://pt.wikipedia.org/wiki/Zhttp://pt.wikipedia.org/wiki/Ponto-e-v%C3%ADrgulahttp://pt.wikipedia.org/wiki/Colchete_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Chave_(pontua%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Menor_quehttp://pt.wikipedia.org/wiki/Barra_inversahttp://pt.wikipedia.org/wiki/Pipehttp://pt.wikipedia.org/wiki/Igual_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Colchete_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Chave_(pontua%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Maior_quehttp://pt.wikipedia.org/wiki/Acento_circunflexohttp://pt.wikipedia.org/wiki/Tilhttp://pt.wikipedia.org/wiki/Ponto_de_interroga%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Tra%C3%A7o_baixohttp://pt.wikipedia.org/wiki/Tra%C3%A7o_baixohttp://pt.wikipedia.org/wiki/Ponto_de_interroga%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Tilhttp://pt.wikipedia.org/wiki/Acento_circunflexohttp://pt.wikipedia.org/wiki/Maior_quehttp://pt.wikipedia.org/wiki/Chave_(pontua%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Colchete_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Igual_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Pipehttp://pt.wikipedia.org/wiki/Barra_inversahttp://pt.wikipedia.org/wiki/Menor_quehttp://pt.wikipedia.org/wiki/Chave_(pontua%C3%A7%C3%A3o)http://pt.wikipedia.org/wiki/Colchete_(s%C3%ADmbolo)http://pt.wikipedia.org/wiki/Ponto-e-v%C3%ADrgulahttp://pt.wikipedia.org/wiki/Zhttp://pt.wikipedia.org/wiki/Zhttp://pt.wikipedia.org/wiki/Dois_pontoshttp://pt.wikipedia.org/wiki/Yhttp://pt.wikipedia.org/wiki/Yhttp://pt.wikipedia.org/wiki/Novehttp://pt.wikipedia.org/wiki/Xhttp://pt.wikipedia.org/wiki/Xhttp://pt.wikipedia.org/wiki/Oitohttp://pt.wikipedia.org/wiki/Whttp://pt.wikipedia.org/wiki/Whttp://pt.wikipedia.org/wiki/Setehttp://pt.wikipedia.org/wiki/Vhttp://pt.wikipedia.org/wiki/Vhttp://pt.wikipedia.org/wiki/Seishttp://pt.wikipedia.org/wiki/Uhttp://pt.wikipedia.org/wiki/Uhttp://pt.wikipedia.org/wiki/Cincohttp://pt.wikipedia.org/wiki/Thttp://pt.wikipedia.org/wiki/Thttp://pt.wikipedia.org/wiki/Quatrohttp://pt.wikipedia.org/wiki/Shttp://pt.wikipedia.org/wiki/Shttp://pt.wikipedia.org/wiki/Tr%C3%AAshttp://pt.wikipedia.org/wiki/Rhttp://pt.wikipedia.org/wiki/Rhttp://pt.wikipedia.org/wiki/Doishttp://pt.wikipedia.org/wiki/Qhttp://pt.wikipedia.org/wiki/Qhttp://pt.wikipedia.org/wiki/Umhttp://pt.wikipedia.org/wiki/Phttp://pt.wikipedia.org/wiki/Phttp://pt.wikipedia.org/wiki/Zerohttp://pt.wikipedia.org/wiki/Ohttp://pt.wikipedia.org/wiki/Ohttp://pt.wikipedia.org/wiki/Barra_(caractere)http://pt.wikipedia.org/wiki/Nhttp://pt.wikipedia.org/wiki/Nhttp://pt.wikipedia.org/wiki/Ponto_finalhttp://pt.wikipedia.org/wiki/Mhttp://pt.wikipedia.org/wiki/Mhttp://pt.wikipedia.org/wiki/H%C3%ADfenhttp://pt.wikipedia.org/wiki/Lhttp://pt.wikipedia.org/wiki/Lhttp://pt.wikipedia.org/wiki/V%C3%ADrgulahttp://pt.wikipedia.org/wiki/Khttp://pt.wikipedia.org/wiki/Khttp://pt.wikipedia.org/wiki/Adi%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Jhttp://pt.wikipedia.org/wiki/Jhttp://pt.wikipedia.org/wiki/Asteriscohttp://pt.wikipedia.org/wiki/Ihttp://pt.wikipedia.org/wiki/Ihttp://pt.wikipedia.org/wiki/Par%C3%AAntesehttp://pt.wikipedia.org/wiki/Hhttp://pt.wikipedia.org/wiki/Hhttp://pt.wikipedia.org/wiki/Par%C3%AAntesehttp://pt.wikipedia.org/wiki/Ghttp://pt.wikipedia.org/wiki/Ghttp://pt.wikipedia.org/wiki/Ap%C3%B3strofohttp://pt.wikipedia.org/wiki/Fhttp://pt.wikipedia.org/wiki/Fhttp://pt.wikipedia.org/wiki/E_comercialhttp://pt.wikipedia.org/wiki/Ehttp://pt.wikipedia.org/wiki/Ehttp://pt.wikipedia.org/wiki/Percentagemhttp://pt.wikipedia.org/wiki/Dhttp://pt.wikipedia.org/wiki/Dhttp://pt.wikipedia.org/wiki/Cifr%C3%A3ohttp://pt.wikipedia.org/wiki/Chttp://pt.wikipedia.org/wiki/Chttp://pt.wikipedia.org/wiki/Cerquilhahttp://pt.wikipedia.org/wiki/Bhttp://pt.wikipedia.org/wiki/Bhttp://pt.wikipedia.org/wiki/Aspashttp://pt.wikipedia.org/wiki/Ahttp://pt.wikipedia.org/wiki/Ahttp://pt.wikipedia.org/wiki/Ponto_de_exclama%C3%A7%C3%A3ohttp://pt.wikipedia.org/wiki/Crasehttp://pt.wikipedia.org/wiki/@

  • 8/18/2019 BCC ArquiteturaComputadoresI

    29/47

    BCC  – Arquitetura de Computadores I 29 

    4.3.3 Unicode

    Com o ASCII é possível representar todos os caracteres latinos. Entretanto, há outros caracteres deidomas não latinos que não cabem nos 7 bits do ASCII. Dessa forma, foram sendo criadas extensões para permitir a representação de caracteres de outros idiomas. Uma dessas extensões, por exemplo, foi a série denormas ISO 8859.

    O Unicode é um padrão mantido pela Unicode Consortium que visa representar qualquer sistema deescrita existente e que conta, atualmente, com pouco mais de 107.000 caracteres.

    Os esquemas de padronização do Unicode são conhecidos como UTF (Unicode Transformation Format ):

    UTF-7: é uma codificação de caracteres de tamanho variável capaz de representar um texto Unicodeusando uma seqüência de caracteres ASCII. É usada principalmente em emails. 

    UTF-8: é uma codificação de tamanho variável de um a quatro bytes (octetos). É necessário apenasum byte para codificar os 128 caracteres ASCII (Unicode U+0000 a U+007F). São necessários dois bytes para caracteres Latinos com diacríticos.  São também usados dois bytes para representar caracteres dosalfabetos Grego, Cirílico, Armênio, Hebraico, Sírio e Thaana (Unicode U+0080 a U+07FF). São necessáriostrês bytes para o resto do Plano Multilingual Básico (que contém praticamente todos os caracteres comunsutilizados). Existem ainda outros caracteres que necessitam de quatro bytes.

    UTF-16: é um formato Unicode de 16-bits que provê uma maneira de representar os diversoscaracteres abstratos, presentes no Unicode e no ISO/IEC 10646, como uma série de palavras (neste caso, de16-bits), para então poder ser armazenados ou transmitidos por uma rede. 

    UTF-32: é um formato Unicode de 32 bits. Sua principal vantagem é fornecer um modo uniforme pararepresentação de todos os caracteres.

    Para saber mais, acesse: http://www.w3.org/International/questions/qa-choosing-encodings.pt- br.php 

    http://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_de_caractereshttp://pt.wikipedia.org/wiki/Unicodehttp://pt.wikipedia.org/wiki/ASCIIhttp://pt.wikipedia.org/wiki/E-mailhttp://pt.wikipedia.org/wiki/Diacr%C3%ADticohttp://pt.wikipedia.org/wiki/Alfabeto_gregohttp://pt.wikipedia.org/wiki/Alfabeto_cir%C3%ADlicohttp://pt.wikipedia.org/wiki/Alfabeto_hebraicohttp://pt.wikipedia.org/w/index.php?title=Plano_Multilingual_B%C3%A1sico&action=edit&redlink=1http://pt.wikipedia.org/wiki/16-bithttp://pt.wikipedia.org/wiki/Unicodehttp://pt.wikipedia.org/wiki/ISO/IEC_10646http://pt.wikipedia.org/wiki/Redehttp://www.w3.org/International/questions/qa-choosing-encodings.pt-br.phphttp://www.w3.org/International/questions/qa-choosing-encodings.pt-br.phphttp://www.w3.org/International/questions/qa-choosing-encodings.pt-br.phphttp://www.w3.org/International/questions/qa-choosing-encodings.pt-br.phphttp://www.w3.org/International/questions/qa-choosing-encodings.pt-br.phphttp://pt.wikipedia.org/wiki/Redehttp://pt.wikipedia.org/wiki/ISO/IEC_10646http://pt.wikipedia.org/wiki/Unicodehttp://pt.wikipedia.org/wiki/16-bithttp://pt.wikipedia.org/w/index.php?title=Plano_Multilingual_B%C3%A1sico&action=edit&redlink=1http://pt.wikipedia.org/wiki/Alfabeto_hebraicohttp://pt.wikipedia.org/wiki/Alfabeto_cir%C3%ADlicohttp://pt.wikipedia.org/wiki/Alfabeto_gregohttp://pt.wikipedia.org/wiki/Diacr%C3%ADticohttp://pt.wikipedia.org/wiki/E-mailhttp://pt.wikipedia.org/wiki/ASCIIhttp://pt.wikipedia.org/wiki/Unicodehttp://pt.wikipedia.org/wiki/Codifica%C3%A7%C3%A3o_de_caracteres

  • 8/18/2019 BCC ArquiteturaComputadoresI

    30/47

    BCC  – Arquitetura de Computadores I 30 

    5 –  REPRESENTAÇÃO DE NÚMEROS INTEIROS COM SINAIS

     No armazenamento de valores numéricos com sinal, não é possível utilizar os sinais e vírgulas, poisapenas com dígitos 0s e 1s são representados os estados de circuitos eletrônicos que correspondem a essasgrandezas numéricas.

     Nesta seção estudaremos dois mecanismos para a representação do sinal: sinal-magnitude ecomplemento-de-dois.

    5.1 Representação sinal-magnitude

    Tendo como referência um Byte, o bit mais significativo indicará o sinal ( 0 = positivo , 1 = negativo)

    Binário Decimal

    Há 127 valores positivos e 127 negativos.

    Há dois valores para representar o 0.

    Valores representáveis:

    -(2n-1

      -1) até +(2n-1

     -1)

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 1 1

    0 0 0 0 0 0 1 0 2

    …. 

    0 1 1 1 1 1 1 1 127

    1 0 0 0 0 0 0 0 0

    1 0 0 0 0 0 0 1 -1

    1 0 0 0 0 0 1 0 -2

    …. 

    1 1 1 1 1 1 1 1 -127

    5.2 Representação por Complemento-de-Dois

    Assim como a representação sinal-magnitude, a representação em complemento de dois usa o bit maissignificativo como bit de sinal, o que torna mais fácil testar se o número inteiro é positivo ou negativo.Entretanto, os demais bits são interpretados de maneira diferente:

    Dado o valor inteiro positivo, o seu negativo é o complemento do positivo adicionado de 1. Naorganização do bits, o bit mais significativo é bit de sinal ( 0 = positivo , 1 = negativo).

    Exemplo:

    + 13 = 01101 -13 = ?

    Passo 1: Inverte-se todos os bits. 0 1 1 0 11 0 0 1 0

    Passo 2: Soma-se 1 ao valor do Passo 1. 1 0 0 1 0

    11 0 0 1 1

    Valor -13 em complemento de dois 1 0 0 1 1

  • 8/18/2019 BCC ArquiteturaComputadoresI

    31/47

    BCC  – Arquitetura de Computadores I 31 

    Segundo [STALLINGS 2002], “Embora a representação em complemento de dois possa parecer pouco natural, do ponto de vista humano, veremos que ela torna mais fácil a implementação das operaçõesaritméticas mais importantes  –   a adição e a subtração. Por isso, ela é usada quase universalmente pararepresentar números inteiros no processador.” 

    Segundo [STALLINGS 2002], são características desse sistema:

    a) Faixa de valores Representáveis: -(2n-1) a +(2n-1 -1).

     b) Um valor para representação do 0.

    Decimal Sinal Magnitude oo  Complemento 2+8 - - - - - - - -

    +7 0 1 1 1 0 1 1 1

    +6 0 1 1 0 0 1 1 0

    +5 0 1 0 1 0 1 0 1

    +4 0 1 0 0 0 1 0 0

    +3 0 0 1 1 0 0 1 1

    +2 0 0 1 0 0 0 1 0

    +1 0 0 0 1 0 0 0 1+0 0 0 0 0 0 0 0 0

    -0 1 0 0 0 - - - -

    -1 1 0 0 1 1 1 1 1

    -2 1 0 1 0 1 1 1 0

    -3 1 0 1 1 1 1 0 1

    -4 1 1 0 0 1 1 0 0

    -5 1 1 0 1 1 0 1 1

    -6 1 1 1 0 1 0 1 0

    -7 1 1 1 1 1 0 0 1

    -8 - - - - 1 0 0 0

    c) Negação: pegue o complemento booleano de cada bit do número positivo correspondente e entãosome 1 ao padrão de bits resultantes.

    d) Expansão do número de bits: acrescente posições de bits à esquerda e preencha esses bits com ovalor do bit de sinal original.

    12 = 01100 -> 00001100

    -13 = 10011 -> 11110011

    e) Regra de overflow: se dois números com o mesmo sinal (ambos positivos ou ambos negativos)forem somados, ocorrerá overflow apenas se o resultado tiver sinal oposto.

    O resultado de uma adição pode ter um número de bits maior do que o tamanho da palavra usada. Essa

    condição é denominada overflow (“transbordamento”). Quando isso ocorre, a Unidade de Lógica eAritmética do processador deve sinalizar esse fato, para que o resultado não seja utilizado.

    +5 0 1 0 1 -7 1 0 0 1

    +4 0 1 0 0 -6 1 0 1 0

    1 0 0 1 1 0 0 1 1

    f) Regra de subtração: para subtrair B de A, pegue o complemento de dois de B e some-o com A.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    32/47

    BCC  – Arquitetura de Computadores I 32 

     Na conversão entre bases 2 e 10 com números negativos, deve-se considerar o bit mais significativocomo sendo o bit de sinal e fazer a conversão considerando esse sinal. Por exemplo, na conversão de valoresde 1 byte:

    -128 64 32 16 8 4 2 11 0 0 0 1 0 0 0 -1200 1 1 1 1 0 0 0 120

    1 1 1 1 1 1 0 0 -40 0 0 0 0 1 0 0 4

    Representação Geométrica de Números de Complemento-de-Dois com 4 bits [STALLINGS 2002]:

    Segundo [STALLINGS 2002]: A representação em complemento de dois pode ser visualizada pormeio da representação geométrica mostrada na figura acima, extraída de Benham (1992). O círculo nametade superior de cada parte da figura é formado selecionando o segmento adequado da reta de números e juntando as duas extremidades. Começando a partir de qualquer número do círculo, podemos somar um valork  positivo (ou subtrair um valor k negativo) a esse número, movendo k  posições no sentido horário, ousubtrair um valor k  positivo (ou somar um valor k negativo), movendo k  posições no sentido anti-horário.

    Caso essa operação cruze o ponto em que as duas extremidades se juntam, a resposta obtida é incorreta. 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    33/47

    BCC  – Arquitetura de Computadores I 33 

    5.3 Aritmética convencional

    a) Soma:

    1 1 1 1 1 1 10 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 1

    + 0 0 1 + 1 + 0 0 1 0 + 0 0 0 0 1 + 0 0 1 1 1 0

    0 1 1 1 0 1 0 1 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

     b) Subtração:

    0 2 0 1 1 20 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1

    - 0 0 1 - 1 - 0 0 1 0 - 0 0 0 1 - 0 0 1 1 1 0

    0 1 0 0 1 0 1 0 1 0 1 1 1

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    c) Multiplicação:

    1 0 1 1 0 1 1 0 1 0 0 1x 1 0 x 1 0 1 x 1 1

    0 0 0 1 0 1 1 01 0 1 0 0 0 0 01 0 1 0 1 0 1 1 0

    0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    d) Divisão:

    1 0 1 0 1 0 1 0 0 0 1 1 1 0 11 0 0 1 0 1 1 0 0 0 0 0 0 1 1 10 0 1 0 1 0 1

    1 0 0 0 1 1 10 0 1 0 1

    0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 01 0 1

    0 0 0

  • 8/18/2019 BCC ArquiteturaComputadoresI

    34/47

    BCC  – Arquitetura de Computadores I 34 

    5.4 Adição e Subtração em Complemento de Dois

    5.4.1 Adição

    Conforme [TOCCI 2007] , há os seguintes casos para a adição entre binários:

    a) Entre dois números positivos: adição é feita diretamente.

    b) Entre um número positivo e outro menor e negativo: faz-se a soma com o complementode dois do número negativo.

    Ex: 9  –  4 (em oito bits): -4 em complemento de 2 é: 1100 , expandido para 8 bits =11111100

    Portanto = 00000101 = 01012 = 510 

    c) Entre um número negativo e outro maior e negativo: faz-se a soma com o complementode dois do número negativo.

    Ex: -9 + 4 (em oito bits) -9 em complemento de 2 = 10111, expandido para 8 bits =11110111

    Portanto: 11111011 = 10112 = -510 

    d) Dois números negativos: faz-se a soma de ambos em complemento de 2.Ex: -9 –  4 (em oito bits) -9 = 11110111 -4 = 11111100

    Portanto : 11110011 = 100112 = -1310 

    1 1 1 1 10 0 0 0 1 0 0 1

    + 1 1 1 1 1 1 0 0

    1  0 0 0 0 0 1 0 1

    Bit desconsiderado

    11 1 1 1 0 1 1 1

    + 0 0 0 0 0 1 0 0

    1 1 1 1 1 0 1 1

    Bit desconsiderado

    1 1 1 1 1 1 1 1 1 1 0 1 1 1

    + 1 1 1 1 1 1 0 0

    1  1 1 1 1 0 0 1 1

    Bit desconsiderado

  • 8/18/2019 BCC ArquiteturaComputadoresI

    35/47

    BCC  – Arquitetura de Computadores I 35 

    5.4.2 Subtração

    Segundo [TOCCI 2007], “a operação de subtração que usa o sistema de complemento de 2 na

    verdade envolve a operação de soma e não é diferente dos diversos casos”, vistos no item anterior.

    Ou seja: ao valor negativo aplique o complemento de dois e some com o outro valordesconsiderando o overflow.

    O overflow é quando o “vai-um” excede a capacidade de bits da representação.

    Ex: 120 –  97

    23910 = 0111100002

    -97 (em complemento de dois) = 100111112 

    1 1 1 1 10 1 1 1 1 0 0 0

    + 1 0 0 1 1 1 1 1

    1 0 0 0 1 0 1 1 1

    Bit desconsiderado

  • 8/18/2019 BCC ArquiteturaComputadoresI

    36/47

    BCC  – Arquitetura de Computadores I 36 

    6 - INTRODUÇÃO À LÓGICA BOOLEANA

    Iniciamos esta aula com citações de dois renomados autores da área de lógica digital e dearquitetura de computadores:

    “Em 1854, um matemático chamado George Boole escreveu Uma investigação das

    leis do pensamento, em descrevia o modo como tomamos decisões lógicas com base emcircunstâncias verdadeiras ou falsas. O método que ele descreveu é hoje conhecido comológica booleana, e o sistema que emprega símbolos e operadores para descrever essasdecisões é chamado de álgebra booleana.” [TOCCI 2007]. 

    “Os circuitos digitais de computadores e outros sistemas digitais são projetados etêm seu comportamento analisado, em termos de uma disciplina matemática conhecidacomo álgebra booleana. Esse nome é em homenagem ao matemático inglês GeorgeBoole, que propôs os princípios básicos dessa álgebra em 1854, em seu trabalho  An

     Investigation of Laws of Though on Wich to Found Mathematical Theories of Logic and Probabilities. Em 1938, Claude Shannon sugeriu que a álgebra booleana poderia serusada para solucionar problemas relativos ao projeto de circuitos  de comutação derelés.“[STALLINGS 2002]. 

    6.1 Álgebra Booleana

    Destacamos aqui os dois conceitos fundamentais da álgebra booleana que são variáveis  lógicas e

    funções lógicas.

    a) Variáveis Lógicas: uma variável lógica é uma variável que têm três propriedades distintas:

    - a variável lógica só pode assumir um de dois valores possíveis (Verdadeiro/Falso ,Sim/Não, 0/1);

    - os valores são expressos por afirmações declarativas (proposições lógicas).

    - os dois valores possíveis, expressos por afirmações declarativas, devem ser tais que, com base em raciocínio humano, ou seja, com base na lógica, sejam mutuamente exclusivos.

     b) Funções Lógicas: são regras de operações lógicas por meios das quais uma ou maisvariáveis lógicas de entrada produzem uma variável lógica de saída.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    37/47

    BCC  – Arquitetura de Computadores I 37 

    6.2 Operadores Booleanos Básicos

     Na lógica booleana, há os seguintes operadores lógicos:

    Operador Significado Lógico Símbolo

    AND (E) Produto Lógico .OR (OU) Soma Lógica +

    NOT (NÃO Complemento Lógico (negação) “Barra” XOR(OU Exclusivo): Soma Lógica Exclusiva (ou um ou outro).

    Além desses quatro operadores, há mais dois também muito úteis que são o complemento doAND (NAND) e do OR (NOR).

    Abaixo, tem-se a Tabela Verdade com os operadores lógicos básicos.

    Variáveis

    Lógicas

    Operadores Lógicos Básicos

     AND OR NOT (A) XOR NAND NOR

     A B A . B A + B  Ā  A B A . B A + B0 0 0 0 1 0 1 10 1 0 1 1 1 1 0

    1 0 0 1 0 1 1 0

    1 1 1 1 0 0 0 0

    6.3 Funções Lógicas

    Uma função lógica aplica uma ou mais operadores sobre uma ou mais variáveis lógicas produzindo uma saída lógica.

    Exemplo: Dadas as variáveis lógicas A e B, o valor de z será dado pela seguinte função:

    z = (A . B) + B

     A B A . B B z

    0 0 1 0 1

    0 1 1 1 1

    1 0 1 0 1

    1 1 0 1 1

  • 8/18/2019 BCC ArquiteturaComputadoresI

    38/47

    BCC  – Arquitetura de Computadores I 38 

    6.4 Portas Lógicas

    Segundo [STALLINGS 2002], “o bloco fundamental de construção de circuitos lógicos

    digitais é a porta lógica que é um circuito eletrônico que produz um sinal de saída que é o resultadode uma operação booleana sobre seus sinais de entrada”. Portanto, pode-se implementar as funções

     booleanas por meio de portas lógicas.A tabela abaixo mostra a simbologia associada a cada porta lógica com a respectiva operação:

    (Fonte: http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/ , acessado em 13/04/2013) 

    http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/http://www.aprendereletronica.com.br/portas-logicas-and-nand-or-nor-not-ou-exclusivo-coincidencia-php/

  • 8/18/2019 BCC ArquiteturaComputadoresI

    39/47

    BCC  – Arquitetura de Computadores I 39 

    7 - POSTULADOS, IDENTIDADES E PROPRIEDADES DA ÁLGEBRABOOLEANA

    7.1 Postulados, Identidades e Propriedades

    Segundo [IDOETA 1984], os postulados, identidade e propriedades podem seresquematizados da seguinte forma:

    POSTULADOS

    Complementação Adição Multiplicação

    Se A = 0, então Ā= 1 

    Se A = 1, então Ā= 0 

    0 + 0 = 0

    0 + 1 = 11 + 0 = 11 + 1 = 1

    0 . 0 = 0

    0 . 1 = 01 . 0 = 01 . 1 = 1

    IDENTIDADES

    Complementação Adição Multiplicação

     A = A A + 0 = A A + 1 = 1 A + A = A

     A + Ā = 1 

     A . 0 = 0 A . 1 = A A . A = A

     A . Ā = 0 

    PROPRIEDADES

    Comutativa: A + B = B + A A . B = B . A

     Associativa: A + (B + C) = (A + B) + C = A + B + C

     A . (B . C) = (A . B) . C = A . B . C

    Distributiva: A(B + C) = AB + AC

    TEOREMAS DE De MORGAN

    (A . B) = A + B

    (A + B) = A . B

    Outras Identidades:

     A + A.B = A  A + Ā.B = A + B  (A + B) . (A + C) = A + B.C

  • 8/18/2019 BCC ArquiteturaComputadoresI

    40/47

    BCC  – Arquitetura de Computadores I 40 

    7.2 Teoremas de De Morgan

    7.2.1 Primeiro Teorema de De Morgan:

    O complemento do produto éigual àsoma dos complementos.

    A.B = A + B

    7.2.2 Segundo Teorema de De Morgan:

    O complemento da soma éigual ao produto dos complementos.

    A+B = A . B

    O segundo teorema é uma extensão do primeiro:

    A.B = A + B ; primeiro teorema.

    A.B = A + B , pois se X = Y então X = Y.

    A.B = A + B, pois X = X

    A.B = A + B , depois de fazer o complemento de todas as variáveis lógicas.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    41/47

    BCC  – Arquitetura de Computadores I 41 

    7.3 Universalidade das Portas NAND e NOR.

    Segundo [STALLINGS 2002], “as funções AND, OR e NOT podem ser implementadas

    usando apenas portas NAND ou NOR. Por essa razão, circuitos digitais pode ser, e frequentementesão, implementados apenas com portas NAND ou NOR”. 

    Fonte: [STALLINGS 2004]

    [TAUB 1984] explica que, da mesma forma que as operações AND, OR e NOT sãosuficientes para expressar qualquer função lógica, as funções NAND e NOR são por si sósuficientes:

    “Frequentemente é conveniente projetar um circuito lógico usando somente umtipo de porta lógica. As portas NAND e NOR são apropriadas para este propósito, pois asoperações NAND e NOR são suficientes e, consequentemente, qualquer operação lógica pode ser efetuada por um arranjo de portas idênticas. A implementação lógica com portas NAND ou NOR é, todavia, inconveniente por não serem as operações associativas. O procedimento usual é, então, projetar uma estrutura usando portas AND, OR e NOT e, posteriormente, transformá-las em uma estrutura equivalente que use apenas portas NAND ou NOR conforme seja desejado.” 

  • 8/18/2019 BCC ArquiteturaComputadoresI

    42/47

    BCC  – Arquitetura de Computadores I 42 

    8 –  SIMPLIFICAÇÃO ALGÉBRICA DE CIRCUITOS LÓGICOS

    Segundo [TOCCI 2007],

    “Uma vez obtida a expressão de um circuito lógico, podemos reduzi-la a umaforma mais simples que contenha um menor número de termos ou variáveis em um ou

    mais termos da expressão. Essa nova expressão pode, então, ser usada na implementaçãode um circuito equivalente ao circuito original, mas que contém menos portas lógicas econexões”. 

    Há basicamente dois métodos para simplificação de circuitos lógicos. O primeiro é métodoalgébrico conforme os postulados, identidades, propriedades e, principalmente, nos teoremas de DeMorgan da álgebra booleana. O segundo é o método gráfico conhecido como o diagrama ou mapade Veitch-Karnaugh.

    Sobre a simplificação algébrica, ainda conforme [TOCCI 2007]:

    “Podemos usar os teoremas da álgebra boolena para simplificar expressões de circuitoslógicos. Infelizmente, nem sempre é óbvio qual teorema deve ser aplicado para se obter o

    resultado mais simplificado. Além disso, as simplificações algébricas são, muitas vezes,um processo de tentativa e erro. Entretanto, com a experiência, podem-se obter resultadosrazoavelmente bons.” 

    Exemplo: Dado o circuito lógico abaixo, faça a simplificação algébrica da função boolena[IDOETA 1984].

    A

    B

    C

    A

    C

    A

    B

    S

     

    S = ABC + AC + AB Função lógica original.

    S = A(BC + C + B) Colocando A em evidência.

    S = A(BC + (C + B) ) Aplicando propriedade associativa.

    S = A(BC + (CB)) Aplicando teorema de De Morgan.

    S = A(BC + BC ) Aplicando propriedade comutativa.

    S = A(1) Aplicando identidade da adição.

    S = A Aplicando identidade da multiplicação.

    Função lógica simplificada.

  • 8/18/2019 BCC ArquiteturaComputadoresI

    43/47

    BCC  – Arquitetura de Computadores I 43 

    9  –   SIMPLIFICAÇÃO DE CIRCUITOS LÓGICOS PELO MAPA DEKARNAUGH

    Outra forma mais rápida para a simplificação de circuitos lógicos é por meio do Mapa deKarnaugh (ou Diagrama de Veitch-Karnaugh).

    O Mapa de Karnaugh permite a simplificação de circuitos lógicos por meio de suas tabelasverdades dando como resultado uma soma de produtos lógicos. Portanto, dado um circuito lógicoqualquer, antes de simplifica-lo pelo método de Veitch-Karnaugh, primeiro deve-se construir suatabela verdade e considerar apenas os valores 1 na saída.

    9.1 Mapas de Karnaugh com duas variáveis

    Segundo explicação do prof Frederico Campos [CAMPOS 2001]:

    Pode-se identificar as áreas onde A é sempre 0, B é sempre 0, A é sempre 1 e B é sempre 1:

    Dessa forma, o valor da saída S é: S = A + B

  • 8/18/2019 BCC ArquiteturaComputadoresI

    44/47

    BCC  – Arquitetura de Computadores I 44 

    9.2 Mapas de Karnaugh com três variáveis

    Conforme [CAMPOS 2001], pode-se montar o Mapa de Karnaugh das seguintes formas:

    Os agrupamentos de bits 1 são chamados de enlaces, sendo que os enlaces sempre reúnem bits1 em agrupamentos de potências de 2 (1, 2, 4 e 8):

  • 8/18/2019 BCC ArquiteturaComputadoresI

    45/47

    BCC  – Arquitetura de Computadores I 45 

    Exemplo segundo [CAMPOS 2001]:

    9.3 Mapas de Karnaugh com quatro variáveis

  • 8/18/2019 BCC ArquiteturaComputadoresI

    46/47

    BCC  – Arquitetura de Computadores I 46 

    9.4 Exemplo de Simplificação de Circuito Lógico

    A

    B

    C

    A

    C

    A

    B

    S

     

  • 8/18/2019 BCC ArquiteturaComputadoresI

    47/47

    Referências:

    [MONTEIRO 2007] MONTEIRO, Mário A. Introdução à organização de computadores. 5ª Ed. Rio deJaneiro, RJ: LTC, 2007.

    [STALLINGS 2002] STALLINGS, Willian. Arquitetura e organização de Computadores, Prentice Hall Brasil,5ª Edição, 2002.

    [TANENBAUM 2001] TANENBAUM, Andrew S., Organização estruturada de computadores, 4a. Edição,Prentice Hall, 2001.

    [SHANNON 1948] SHANNON, C. E., A Mathematical Theory of Communication. The Bell SystemTechinical Journal,Vol 27, pp379-423,623-656, July, October, 1948.

    [HYDE 2004] HYDE, R. Write Great Code: Understanding the Machine, Volume I. San Francisco,CA. No Starch Press, 2004.

    [HYDE 2003] HYDE, R. The Art of Assembly Language. San Francisco, CA. No Starch Press, 2003.

    [TOCCI 2007] TOCCI, R. J.; WIDMER, N.S.; MOSS, G. L. Sistemas Digitais: princípios e aplicações.10ª Ed. São Paulo, SP: Person Prentice Hall, 2007.

    [IDOETA 1984] IDOETA, I. V.; CAPUANO, F. G. Elementos de Eletrônica Digital. 6ª Ed. São Paulo,SP: Erica, 1984.

    [TAUB 1984] TAUB, R. Circuitos Digitais e Microprocessadores. São Paulo-SP: McGraw-Hill doBrasil, 1984.

    [CAMPOS 2001] CAMPOS, Frederico Oioli. Elementos Básicos da Eletrônica Digital. Apostila. SãoPaulo,2001.http://www.cin.ufpe.br/~psbn/pub/TecDig/Apostila_Tec_Digitais/Eletr%F4nica-%20Elementos_Basicos_da_Eletronica_Digital.pdf   acessado em 02/02/2013

    http://www.cin.ufpe.br/~psbn/pub/TecDig/Apostila_Tec_Digitais/Eletr%F4nica-%20Elementos_Basicos_da_Eletronica_Digital.pdfhttp://www.cin.ufpe.br/~psbn/pub/TecDig/Apostila_Tec_Digitais/Eletr%F4nica-%20Elementos_Basicos_da_Eletronica_Digital.pd