guia mangá microprocessadores - s3.novatec.com.br · essencialmente, isso significa que, para...

19
Guia Mangá Microproceadores Michio Shibuya, Takashi Tonagi e Office Sawa Novatec

Upload: vannhi

Post on 07-Feb-2019

578 views

Category:

Documents


61 download

TRANSCRIPT

Guia Mangá

Microprocessadores

Michio Shibuya, Takashi Tonagi e

Office Sawa

Novatec

The Manga Guide to Microprocessors is a translation of the japanese original, Manga de wakaru CPU, published by Ohmsha, Ltd. of Tokyo, Japan, © 2014 by Michio Shibuya, Takashi Tonagi, and Office sawa. The english edition is co-published by No Starch Press, Inc. and Ohmsha, Ltd. Portuguese-language rights arranged with Ohmsha, Ltd. and No Starch Press, Inc. for Guia Mangá Microprocessadores ISBN 978-85-7522-697-1, published by Novatec Editora Ltda.

Edição original em japonês Manga de wakaru CPU, publicado pela Ohmsha, Ltd. de Tóquio, Japão © 2014 por Michio Shibuya, Takashi Tonagi, e Office sawa. Edição em inglês The Manga Guide to Microprocessors, co-publicação da No Starch Press, Inc. e Ohmsha, Ltd. Direitos para a edição em português acordados com a Ohmsha, Ltd. e No Starch Press, Inc. para Guia Mangá Microprocessadores ISBN 978-85-7522-697-1, publicada pela Novatec Editora.

Copyright © 2018 da Novatec Editora Ltda.

Todos os direitos reservados e protegidos pela Lei 9.610, de 19/02/1998.

É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da editora.

Editor: Rubens Prates PY20180828Tradução: Cláudio José AdasRevisão gramatical: Tássia CarvalhoEditoração eletrônica: Carolina Kuwabata

ISBN: 978-85-7522-697-1

Histórico de impressões:Setembro/2018 Primeira edição

Novatec Editora Ltda.Rua Luís Antônio dos Santos 11002460-000 – São Paulo, SP – BrasilTel.: +55 11 2959-6529E-mail: [email protected]: www.novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatecPY20180828

Sumário

Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

1 O que faz a CPU? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

Computadores podem processar qualquer tipo de informação . . . . . . . . . . . . . . . . . . . . . . . . . . 11A CPU é o núcleo de todo computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Os cinco componentes de um computador moderno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16ALUs: o núcleo da CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22CPUs processam informações e tomam decisões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25O que é informação, afinal de contas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30A diferença entre informação analógica e digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2 OPERAÇÕES DIGITAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

O mundo do computador é binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Os estados recíprocos de 1 e 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Sistemas numéricos decimal x binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Expressando números em binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Frações em ponto fixo e ponto flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Adição e subtração em binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

O que são operações lógicas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Circuitos integrados contêm portas lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48As três portas lógicas básicas: AND, OR e NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Tabelas da verdade e diagramas de Venn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Resumo das portas AND, OR e NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Outras portas básicas: NAND, NOR e XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Resumo das portas NAND, NOR e XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Leis de De Morgan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Circuitos que executam operações aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62O circuito de adição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62O meio somador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64O somador completo e o somador com propagação de carry . . . . . . . . . . . . . . . . . . . . . . . 66O somador com antecipação de carry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Circuitos que lembram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Circuitos com memória são necessários! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Flip-flop: noções básicas de circuitos de memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74O flip-flop RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76O flip-flop D e o clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78O flip-flop T e contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Projeto de circuitos modernos: CAD e FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

viii Sumário

3 ARQUITETURA DA CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Tudo sobre memória e a CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Memória tem endereços atribuídos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Dados passam pelo barramento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Largura do barramento e bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Sinais R/W e sinais I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Instruções são feitas de operandos e códigos de operação . . . . . . . . . . . . . . . . . . . . . . . . 101Acumuladores e outros registradores são usados nas operações . . . . . . . . . . . . . . . . . . . 103

Processamento de instruções pela CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Arquitetura de uma CPU clássica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106O ciclo de instruções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107A instrução que processamos muda dependendo do contador do programa . . . . . . . . . . 112

Todos os tipos de dispositivos de memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Uma comparação entre HDD e memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Espaço de RAM, Espaço de ROM e Espaço de I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

O que são interrupções? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Interrupções são úteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122A pilha e o ponteiro da pilha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Prioridade das interrupções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Classificações de memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Portas de I/O e a GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Frequência do Clock e graus de precisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Geradores de Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Interrupções do Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Sinais de Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136O desempenho da CPU é medido em FLOPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

4 OPERAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Tipos de operações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140Existem muitos tipos de instruções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Instruções para operações aritméticas e lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144O que são deslocamentos de bits (Shifts)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145O bit de sinal nos permite expressar números binários negativos . . . . . . . . . . . . . . . . . . . 147Deslocamentos lógicos e Deslocamentos aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149Deslocamentos circulares (ou rotacionais) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Operações de transferência de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Instruções de Entrada/Saída (I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154Instruções de desvio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Avaliação de condição e flags de status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Combinando desvios e avaliações de condição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Tipos de operandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Quantos operandos existem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Operandos assumem várias formas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Processamento de valor imediato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Referências de endereço . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Sumário ix

O que são modos de endereçamento? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Visão geral dos modos de endereçamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

A estrutura das operações na ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Dentro da ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Arquitetura básica de circuito do 74S181 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Transmissão Serial e Transmissão Paralela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185Uma visão geral de alguns registradores básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Uma visão geral de alguns flags de status básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187A instrução SLEEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

5 Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Linguagens Assembly e de alto nível . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190O que são linguagens Assembly? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192As características das Linguagens Assembly e das Linguagens de Alto Nível . . . . . . . . . . 194A diferença entre programas e código-fonte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

Noções básicas de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200O que é possível fazer usando condições e pulos? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200O que devemos fazer o computador executar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

Onde são armazenados os programas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208O que acontece antes de um programa ser executado? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

6 Microcontroladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

O que são microcontroladores? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Microcontroladores estão em todos os tipos de produtos . . . . . . . . . . . . . . . . . . . . . . . . . 213A função de um microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214Arquitetura de um microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

O que são DSPs? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222DSPs e Operações de Multiplicar-Acumular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Microcontroladores em Máquinas Industriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Epílogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Posfácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Índice Remissivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

Prefácio

Desde os anos 1950, quando os computadores estrearam nos mercados ao redor do mundo, o interesse por tecnologia da informação (TI) tem crescido constantemente. O núcleo que suporta essa tecnologia é um semicondutor conhecido como CPU ou unidade central de pro-cessamento. Desde o início do século 21, avanços na teoria de design de circuitos e na tecno-logia de fabricação têm levado a um rápido progresso tanto da velocidade de processamento como do tamanho do chip, permitindo integrá-los à maioria dos equipamentos eletrônicos que usamos diariamente. Além de computadores pessoais, smartphones e tablets, você encontrará CPUs até mesmo em condicionadores de ar, refrigeradores, máquinas de lavar e outros impor-tantes aparelhos, para mencionar apenas alguns.

Vale a pena observar que as CPUs encontradas nos modernos PCs são extremamente potentes e muitas de suas aplicações estão fora do escopo deste livro. Nós também não nos aprofundaremos na arquitetura de computadores, que teve um boom de pesquisa nos últimos anos. Em vez disso, acho que a melhor maneira de oferecer um insight sobre CPUs — e, por extensão, sobre como programas funcionam — é voltar no tempo e analisar como as pri-meiras CPUs funcionavam e examinar os conceitos e princípios segundo os quais elas foram projetadas.

Deixe-me compartilhar uma alegoria com vocês. Já faz um bom tempo desde que come-çamos a encarar os automóveis com naturalidade em nosso cotidiano, mas, apesar de sua ubi-quidade, poucas pessoas hoje conseguem explicar como um motor funciona ou como a energia gerada pelo motor se transforma em quantidade de movimento para o carro. Nos anos 1950, era preciso responder a perguntas sobre o projeto do motor em seu exame de habilitação para tirar carteira de motorista, mas nenhuma pergunta semelhante restou nos atuais testes. Essencialmente, isso significa que, para aprender sobre o funcionamento interno de um motor de automóvel hoje em dia, você realmente precisa ser uma pessoa incrivelmente curiosa.

Da mesma forma, meu desejo é que este livro funcione não apenas como uma plataforma para ensinar aos leitores uma variedade de diferentes tópicos, mas também saciar sua curio-sidade sobre o tema, fazendo-os aprender alguns dos princípios mais profundos das CPUs que têm casualmente permeado nossas vidas diárias.

Em relação à publicação deste livro, gostaria de agradecer a Sawako Sawada da Office Sawa, que concebeu essa divertida história, e a Takashi Tonagi pelo trabalho de ilustração.

Michio ShibuyaNovembro de 2014

1

O que faz a CPU?

Ayumi

Uau, Ayumi...

Forte como sempre, estou

vendo.

ufa!

Hum, vinte vitórias seguidas...

Bang!

Bang!

Clack

* Um

jo

go

de ta

buleir

o j

apo

nês s

em

elhante a

o x

adrez

30 Capítulo 1 O que faz a CPU?

O que é informação, afinal de contas?

Tecnologia da Informação (TI) tornou-se um termo comum em torno século 20. O termo é frequentemente ouvido quando pessoas falam sobre a Internet e outras tecnologias com-putacionais, mas vale a pena observar que esse termo veio antes do uso de computadores.

Em primeiro lugar, o que significa realmente a palavra informação? Resumindo, informação é tudo em nosso ambiente que pode ser registrado por um de nossos cinco sentidos.

Tudo que ocorre na natureza ou em pinturas, fotografias, música, romances, notícias, rádio, programas de TV e assim por diante são exemplos de informação. A maioria dessas coisas tem estado presente muito antes de nossa sociedade ter acesso à eletricidade. À medida que as informações se espalham pela sociedade, elas afetam nossas vidas.

Todos os dias, pessoas e organizações valorizam informações úteis e tentam eli-minar o restante. Informação que não é importante é chamada de ruído, e informação importante é chamada de sinal. É importante descobrir maneiras de maximizar a relação sinal-ruído — isto é, a quantidade de sinal em uma saída comparada com a quantidade de ruído — sem acidentalmente perder informações necessárias.

Um tipo de informação que historicamente tem sido importante tanto para os indivíduos quanto para as organizações é informação sobre comida — o que é seguro ou saudável comer, como encontrar ou produzir tal comida, e a que distância ela se encontra ou quanto custa para comprá-la. Informações relacionadas, como clima ou previsões meteorológicas, também são vitais. Obviamente, informações como essas foram valoriza-das muito antes do surgimento da Internet. Por exemplo, mercadores como Bunzaemon Kinokuniya do período Edo no Japão se especializaram em produtos, como frutas cítricas e salmão, e prosperaram, pois eles valorizam esse tipo de informação. Na verdade, o valor da informação tem sido respeitado desde que as pessoas precisaram comer.

Entretanto, a era digital afetou muitos aspectos da vida. Como ela afetou nosso acesso à informação? Bem, graças à digitalização de dados, agora somos capazes de pro-cessar dados diversos, como texto, áudio, imagens e vídeo usando os mesmos métodos. Eles podem ser transmitidos do mesmo modo (pela Internet, por exemplo) e são armaze-nados na mesma mídia (em discos rígidos, por exemplo).

TUDO QUE EU PERCEBO É INFORMAÇÃO!

OS CINCO

SENTIDOs NATUREZA

Visão, audição, tato,

paladar e olfato

ARTENOTÍCIAS

Ok! Hoje é por minha conta!

O que também significa que você precisa me ensinar sobre CPUs!

Uau... Você é insistente...

Não sei por que concordei em

encontrá-la depois das aulas.

Depois das aulas...?!

Quer dizer que você não é mais um

recluso? Agora você é um ex-hikikomori??

Dá para desligar seu modo

loucura pelo menos uma vez?!

Os estados recíprocos de 1 e 0

Mas estou com um

pouco de fome...

O mundo do computador é binário

* Hikikomori são pessoas que se afastam da sociedade, recusando-se a sair de casa, durante meses e até anos.

40 Capítulo 2 OPERAÇÕES DIGITAIS

Expressando números em binário

Bem, vamos aprender noções básicas da matemática binária, ou base 2! Vamos come-çar pensando no sistema decimal, ou base 10, que usamos todos os dias. Por exemplo, o número 356 é dividido e então cada dígito é multiplicado por sucessivas potências de dez para se obter o valor final.

Centenas Dezenas Unidades*

Ok! É realmente fácil se eu pensar nos dígitos como moedas de diferentes valores: 356 ienes são apenas três moedas de 100 ienes (102), cinco moedas de 10 ienes (101) e seis moedas de 1 iene (100) somadas.

Isso mesmo. O próximo passo é aplicar a mesma lógica para o sistema binário. Basta trocar o 10 em nossos cálculos decimais por um 2 no caso binário para obter os fatores apropriados para cada dígito. Dê uma olhada na seguinte ilustração.

* Qualquer número elevado à potência zero é igual a um. Por exemplo, 100 = 1, and 20 = 1.

Tudo sobre memória e a CPU

Realmente... E pensar que estamos nos

encontrando até nos sábados...

Bem, eu também quero aprender

sobre CPUs no fim de semana!

E quero conhecer este

café!

E seus bolos parecem

realmente bons.

E seria constrangedor eu ir sozinha...

Entendo... você não

tem muitos amigos...

Tenho, sim! Eu tenho, tipo, cem amigos!!!

Parece que alguém está exagerando...

94 Capítulo 3 ARQUITETURA DA CPU

Largura do barramento e bits

Vamos falar um pouco mais sobre barramentos. Eu disse que barramentos são para trans-portar dados, mas, para ser mais exato, eles são na verdade caminhos de sinais agrupados.

Uh-huh. Isso significa que o número de vias é igual ao número de bits. Com quatro vias, podemos enviar e receber 16 (24) diferentes números de 0000 (0 em decimal) a 1111 (15 em decimal).

Ah, caminhos de sinais, lembrei. Eles são linhas que transmitem 1s e 0s, certo?

Isso mesmo! E o número de caminhos determina quantos valores aqueles caminhos podem representar. Por exemplo, se você tem quatro vias e cada uma pode ser 0 ou 1, então essas vias podem ser usadas para enviar ou receber um número binário de quatro dígitos (quatro bits).

4 bits

largura de 16

Com 4 bits...

(20) um

(21) dois

(22) quatro

(28) oito

Caminhos de 4 sinais

140 Capítulo 4 OPERAÇÕES

Obrigado.

Bem-vindo. Entre.

Ahh... Yuu está na minha casa...

O que estou dizendo?! Por que estou

nervosa?!!

Hmm...

Tudo parece bem limpo. Eu esperava

mais bagunça...

Eu esperava...

O que está te incomodando?!

wham

wham

Meu maravilhoso

plano de limpeza...

Tipos de operações

Tipos de operações 147

O bit de sinal nos permite expressar números binários negativos

Uhh... eu entendo como 011 representa +3 pensando em binário simples. Mas por que 101 é igual a –3? Isso não faz sentido.

Lembra-se dos complementos? Ao expressar números negativos em binário, usamos o complemento de dois.

Oh, agora entendi! Então, para expressar o valor negativo de 3 (011), obtemos 101. Sendo que o importante é que o bit de sinal fique na extremidade esquerda.

Antes de explicar mais sobre deslocamento de bits, quero falar brevemente sobre bits de sinal.

Bits de sinal? O que é isso?

Em um número binário, o bit de sinal é o bit mais à esquerda e ele nos diz se o número é positivo ou negativo. Se esse dígito for 0, o número é positivo e, se ele for 1, o número é negativo.

Veja a imagem abaixo. O bit mais significativo, que está mais à esquerda, é o bit de sinal. O bit de sinal, junto com o resto dos bits, determina que valor numérico está sendo representado.

representa -3

representa +3

bit de sinal

exemplos

número

bit de sinal

adicionar 1.

inverter todos os

bits!

(0 significa positivo e 1 significa negativo)

190 Capítulo 5 Programas

Linguagens Assembly e de alto nível

Hum...

Como eu pude esquecê-lo

completamente...

Realmente... como você não se lembra dele? O pequeno Yuu que morava no fim

da rua.

Vocês costumavam jogar shogi juntos o tempo todo... você era bem insensível

para ser minha filha...

Talvez...

Minha memória é realmente ruim...?

194 Capítulo 5 Programas

As características das Linguagens Assembly e das Linguagens de Alto Nível

Ok, vamos falar um pouco sobre as linguagens assembly que são fáceis para as CPUs (máquinas) entenderem e as linguagens de alto nível que são fáceis para as pessoas entenderem.

Hum. Acho que não estou entendendo. Uma vez que a linguagem de máquina é feita de sequências de 1s e 0s, entendo que ela só seria entendida pelas CPUs, e não pelas pessoas.

Mas as linguagens assembly não seriam fáceis de entender pelas pessoas já que usam mnemônicos? Instruções como ADD já estão em inglês.

Então como é que linguagens de alto nível são ainda mais fáceis de entender do que isso?!

É uma pergunta válida. É verdade que linguagens assembly são fáceis de entender.

linguagens de alto nível

linguagens assembly

linguagem de máquina

Você sabia... que as linguagens humanas

são chamadas de linguagens naturais?

fácil para a CPU entender

sequências de 0s e 1s

Usa mnemônicos

fácil para as pessoas entenderem

Uma linguagem de programação

como C

O que são microcontroladores?

212 Capítulo 6 Microcontroladores

Ahh... que tempo maravilhoso!

Estudar a céu aberto não é

nada mal.

Mas pensar que uma pessoa

introvertida como você estuda no

parque.

Suponho que sua casa deva estar

perto.

...de qualquer modo, esta será nossa última aula.

O tema de hoje é microcontroladores!

Microcontroladores? Eles são algum tipo de minirrobôs que controlam nossa

mente?!

Como você chegou a essa conclusão?!

controle

da mente

Nnngh!

220 Capítulo 6 Microcontroladores

História do Microcontrolador

Microcontroladores têm uma história muito interessante. A primeira calculadora ele-trônica usava uma ALU feita com tubos de elétrons a vácuo. Para os padrões atuais, ela era muito grande, ocupando uma sala inteira do tamanho de uma quadra de vôlei. Isso ocorreu por volta da Segunda Guerra Mundial, nos anos 1940. A Inglaterra e outros países estavam em vias de desenvolver máquinas de cálculo eletrônicas para decifrar os códigos que o exército alemão estava usando. Ao contrário dos modernos computadores, aqueles não eram desenvolvidos em um ambiente de mercado comercial aberto, mas em laboratórios de pesquisa militares ultrassecretos. Por isso, não está claro se o computa-dor norte-americano ENIAC, apresentado ao mundo em 1946, foi realmente o primeiro computador ou não.

O primeiro transistor foi inventado em 1947, substituindo as calculadoras de tubos de elétrons a vácuo por uma tecnologia baseada em semicondutores. E, com a invenção do circuito integrado em 1958, a miniaturização das calculadoras eletrônicas avançou significativamente.

Mesmo assim, o minicomputador de 16 bits visto no Capítulo 4, que usava quatro chips 74S181, só foi desenvolvido em 1972. Removendo todos os dispositivos externos, ele tinha largura de 60 cm, altura de 30 cm e profundidade de 45 cm. Ele conseguia tratar um espaço de endereços de 16KW (kilowords, em que 16 bits de dados são iguais a uma palavra ou word), que é o que chamamos de 32KB hoje em dia. (Compare isso com os modernos cartões SD, que podem armazenar 32GB de dados ou, em termos de tamanho de memória, aproximadamente 1 milhão de vezes mais dados.)

Na segunda metade da década de 1970, a Intel introduziu sua CPU de um chip como uma commodity produzida em larga escala. Esse produto instantaneamente dominou o mercado, baixando os custos de modo geral.

A CPU de um chip também anunciava uma nova era a partir de 1976, na qual entusiastas amadores por eletrônica podiam comprar kits de aprendizado (por exemplo, o microcomputador Altair 8800).

Com esses, eles podiam aprender a programar em linguagem de máquina com a CPU de um chip como base. Foi por essa época que o termo computador pessoal, ou PC, passou a ser usado popularmente, já que era possível finalmente ter uma dessas mara-vilhas da tecnologia só para você.