guia mangá microprocessadores - s3.novatec.com.br · essencialmente, isso significa que, para...
TRANSCRIPT
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
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ê.