e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil Informática Arquitetura de Computadores Gilmara Aparecida de Freitas Dias Ministério da Educação e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil Informática Arquitetura de Computadores Gilmara Aparecida de Freitas Dias Montes Claros - MG 2011 Presidência da República Federativa do Brasil Ministério da Educação Secretaria de Educação a Distância Ministro da Educação Fernando Haddad Secretário de Educação a Distância Carlos Eduardo Bielschowsky Coordenadora Geral do e-Tec Brasil Iracy de Almeida Gallo Ritzmann Governador do Estado de Minas Gerais Antônio Augusto Junho Anastasia Secretário de Estado de Ciência, Tecnologia e Ensino Superior Alberto Duque Portugal Coordenadores de Cursos: Coordenador do Curso Técnico em Agronegócio Augusto Guilherme Dias Coordenador do Curso Técnico em Comércio Carlos Alberto Meira Coordenador do Curso Técnico em Meio Ambiente Edna Helenice Almeida Coordenador do Curso Técnico em Informática Frederico Bida de Oliveira Coordenador do Curso Técnico em Vigilância em Saúde Simária de Jesus Soares Reitor João dos Reis Canela Vice-Reitora Maria Ivete Soares de Almeida Pró-Reitora de Ensino Anete Marília Pereira Diretor de Documentação e Informações Huagner Cardoso da Silva Coordenador do Ensino Profissionalizante Edson Crisóstomo dos Santos Diretor do Centro de Educação Profissonal e Tecnólogica - CEPT Juventino Ruas de Abreu Júnior Coordenador do Curso Técnico em Gestão em Saúde Zaida Ângela Marinho de Paiva Crispim ARQUITETURA DE COMPUTADORES e-Tec Brasil/CEMF/Unimontes Elaboração Gilmara Aparecida de Freitas Dias Projeto Gráfico e-Tec/MEC Supervisão Wendell Brito Mineiro Diagramação Hugo Daniel Duarte Silva Marcos Aurélio de Almeda e Maia Diretor do Centro de Educação à Distância - CEAD Jânio Marques Dias Impressão Gráfica RB Digital Coordenadora do e-Tec Brasil/Unimontes Rita Tavares de Mello Designer Instrucional Angélica de Souza Coimbra Franco Kátia Vanelli Leonardo Guedes Oliveira Coordenadora Adjunta do e-Tec Brasil/ CEMF/Unimontes Eliana Soares Barbosa Santos Revisão Maria Ieda Almeida Muniz Patrícia Goulart Tondineli Rita de Cássia Silva Dionísio AULA 1 Alfabetizaçãoe-Tec DigitalBrasil/CEMF/ Apresentação Unimontes Prezado estudante, Bem-vindo ao e-Tec Brasil/Unimontes! Você faz parte de uma rede nacional pública de ensino, a Escola Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro 2007, com o objetivo de democratizar o acesso ao ensino técnico público, na modalidade a distância. O programa é resultado de uma parceria entre o Ministério da Educação, por meio das Secretarias de Educação a Distancia (SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e escola técnicas estaduais e federais. A educação a distância no nosso país, de dimensões continentais e grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso à educação de qualidade, e promover o fortalecimento da formação de jovens moradores de regiões distantes, geograficamente ou economicamente, dos grandes centros. O e-Tec Brasil/Unimontes leva os cursos técnicos a locais distantes das instituições de ensino e para a periferia das grandes cidades, incentivando os jovens a concluir o ensino médio. Os cursos são ofertados pelas instituições públicas de ensino e o atendimento ao estudante é realizado em escolas-polo integrantes das redes públicas municipais e estaduais. O Ministério da Educação, as instituições públicas de ensino técnico, seus servidores técnicos e professores acreditam que uma educação profissional qualificada – integradora do ensino médio e educação técnica, – não só é capaz de promover o cidadão com capacidades para produzir, mas também com autonomia diante das diferentes dimensões da realidade: cultural, social, familiar, esportiva, política e ética. Nós acreditamos em você! Desejamos sucesso na sua formação profissional! Ministério da Educação Janeiro de 2010 Arquitetura de Computadores 5 e-Tec Brasil/CEMF/Unimontes AULA 1 Alfabetização Digital Indicação de ícones Os ícones são elementos gráficos utilizados para ampliar as formas de linguagem e facilitar a organização e a leitura hipertextual. Atenção: indica pontos de maior relevância no texto. Saiba mais: oferece novas informações que enriquecem o assunto ou “curiosidades” e notícias recentes relacionadas ao tema estudado. Glossário: indica a definição de um termo, palavra ou expressão utilizada no texto. Mídias integradas: possibilita que os estudantes desenvolvam atividades empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes níveis de aprendizagem para que o estudante possa realizá-las e conferir o seu domínio do tema estudado. Arquitetura de Computadores 7 e-Tec Brasil/CEMF/Unimontes AULA 1 Alfabetização Digital Sumário Palavra do professor conteudista............................................ 11 Projeto instrucional............................................................ 13 Aula 1 - O computador e os sistemas numéricos........................... 15 1.1 Sistemas numéricos e mudança de base.......................... 15 1.2 Sistemas numéricos binários....................................... 16 Resumo.................................................................... 18 Atividades de aprendizagem............................................ 18 Aula 2 – Organização de sistemas de computação e seus subsistemas.19 2.1 Sistemas de computação............................................ 19 2.2 Softwares............................................................. 19 2.3 Hardware.............................................................. 20 2.4 Barramento........................................................... 31 Resumo.................................................................... 34 Atividades de aprendizagem............................................ 34 Aula 3 – Computadores e linguagens de programação.................... 35 3.1 Os computadores e o desenvolvimento de algoritmos e sistemas.35 3.2 Algoritmos............................................................ 36 3.3 Linguagem de programação........................................ 38 Resumo.................................................................... 40 Atividades de aprendizagem............................................ 41 Aula 4 – Instruções e modos de endereçamento de memória............ 43 4.1 A memória............................................................ 43 4.2 Endereçamento de memória....................................... 43 4.3 Memória virtual...................................................... 44 Resumo.................................................................... 48 Atividades de aprendizagem............................................ 49 Aula 5 – Caracterização das interfaces paralelas e seriais............... 51 5.1 Interfaces de transmissão........................................... 51 5.2 Interface serial....................................................... 51 5.3 Interface paralela.................................................... 54 5.4 Comparativo entre interface serial e paralela................... 55 Resumo.................................................................... 56 Atividades de aprendizagem............................................ 56 Aula 6 – Caracterização de arquiteturas RISC e CISC ..................... 57 6.1 Arquitetura RISC..................................................... 57 6.2 Arquitetura CISC..................................................... 58 6.3 Comparativo entre as arquiteturas RISC e CISC................. 59 Arquitetura de Computadores 9 e-Tec Brasil/CEMF/Unimontes Resumo.................................................................... 60 Atividades de aprendizagem............................................ 61 Referências ..................................................................... 62 Currículo do professor conteudista.......................................... 63 e-Tec Brasil/CEMF/Unimontes 10 AULA 1 Alfabetização Digital Palavra do professor conteudista Prezados alunos, sejam bem-vindos às aulas da disciplina de Arquitetura de Computadores. A arquitetura de computadores estuda sobre os componentes, as arquiteturas e os processos contidos no computador. Estuda, ainda, sobre como os computadores são programados e como uma linguagem pode ser interpretada pela máquina. Permite-nos entender os dispositivos de entrada, saída e armazenamento, e nos faz compreender como são feitos os endereçamentos de memória e a transmissão de dados pelos sistemas. Compreender os princípios da arquitetura de computadores é de grande importância para aqueles que se interessam pela Tecnologia da Informação, e principalmente para aqueles que escolheram fazer, nela, a sua carreira profissional. Não tem como entender os princípios da computação sem antes compreender os elementos da arquitetura de computadores. Você sabe quais as arquiteturas utilizadas no desenvolvimento dos processadores? Sabe como os dados são alocados na memória? O que controla os dispositivos de entrada, de saída e de armazenamento? Essas e outras respostas, encontraremos durante o nosso estudo da disciplina de Arquitetura de Computadores. Para alcançarmos os objetivos da disciplina, não nos limitaremos apenas em conceitos, mas utilizaremos também estudos de casos e situações do nosso cotidiano. Isso facilitará o entendimento e a aplicação dos pontos aqui abordados. Sinta-se convidado a participar dessas aulas de forma atuante e participativa. Desejo-lhe sucesso, pois a disciplina de Arquitetura de Computadores espera por você. Gilmara Aparecida de Freitas Dias Arquitetura de Computadores 11 e-Tec Brasil/CEMF/Unimontes AULA 1 Alfabetização Digital Projeto instrucional Disciplina: Arquitetura de Computadores (carga horária: 60h). Ementa: Conceituação de sistemas numéricos e mudança de base. Caracterização da organização de sistemas de computação e detalhamento de subsistemas - memória, processador, dispositivos de entrada e de saída de dados e barramentos. Caracterização e análise das formas de tradução de programas de uma linguagem de alto nível para um programa executável. Estudo de um conjunto de instruções e dos modos de endereçamento utilizados por um sistema de computação. Caracterização das interfaces paralela e serial. Caracterização de arquiteturas RISC e CISC. AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORÁRIA 1 O computador e os sistemas numéricos livro didático e atividades online 8 h/a 2 Organização de sistemas de computação e seus subsistemas livro didático e atividades online 12 h/a 3 Computadores e linguagens de programação livro didático e atividades online 12 h/a 4 Instruções e modos de endereçamento de memória livro didático e atividades online 14 h/a 5 Caracterização das interfaces paralela e serial livro didático e atividades online 8 h/a 6 Caracterização de arquiteturas RISC e CISC livro didático e atividades online 6 h/a Arquitetura de Computadores 13 e-Tec Brasil/CEMF/Unimontes AULA 1 Alfabetização Digital Aula 1 - O computador e os sistemas numéricos Objetivos Olá, aluno! Seja bem-vindo à nossa primeira aula de Arquitetura de Computadores. O objetivo desta aula é apresentar os sistemas numéricos e as suas origens, familiarizá-lo com as bases matemáticas e as unidades utilizadas pelos computadores. 1.1 Sistemas numéricos e mudança de base De acordo com Nordon (1991), os comutadores baseiam-se em reproduzir ou imitar funções executadas pelos seres humanos. Bem como o aparelho de som imita a música, o computador imita e cria modelos de trabalho utilizando números e aritmética. Ou seja, os computadores não têm uma linguagem clara, não utilizam um idioma específico, mas, sim, entendem números. Esses números não são definidos de forma aleatória, são definidos através de sistemas numéricos. Um dos sistemas numéricos é o binário, ou seja, sistemas escritos apenas por dois símbolos numéricos, o “0” e o “1”, também chamado de sistema de base dois. Mas os sistemas numéricos podem estar em outras bases, como três, quatro, seis, dez, entre outras. O que importa é que tenha, no mínimo, dois símbolos (0 e 1). Dois símbolos apenas não permitiriam confrontar o computador e a Matemática, uma vez que ela tem expressões complexas e envolve diversas operações. Para resolver esse problema, criou-se a aritmética binária. Ou seja, criou-se o sistema numérico decimal. O sistema numérico decimal trabalha com a simbologia de dez números, ou seja, é representado por dez símbolos numéricos de “0” a “9”. Com esse conjunto de símbolos é possível criar ou representar qualquer outro número. Para uma melhor compreensão, vamos estudar um pouco mais sobre os sistemas numéricos binários, por ser o sistema numérico de menor base utilizado pelo computador. Arquitetura de Computadores 15 e-Tec Brasil/CEMF/Unimontes 1.2 Sistemas numéricos binários Historicamente, há diversos sistemas de numeração, cada um deles trabalha com base distinta. Os sistemas binários (base 2), sistemas octais (base 8), sistemas decimais (base 10) e sistemas hexadecimais (base 16) são exemplos de sistemas de numeração. O primeiro sistema numérico foi o sistema decimal ou de base 10. Acredita-se que esse sistema foi criado baseado nos dedos das mãos, pois facilitava a representação de quantidades. Mas, por regra, qualquer número inteiro maior ou igual a um pode ser usado como base de numeração. Os computadores trabalham sempre com sistemas numéricos binários (base 2) ou hexadecimais (base 16). Nos sistemas binários, os dados são transformados nos símbolos 0 ou 1 (zero e um). Cada dígito binário ocupa um espaço de memória do computador, chamado bit. Um bit ou binary digit (digito binário) é a menor e a mais fundamental unidade de um computador; sua representação lógica é o 0 ou o 1 (zero ou um), que representam, respectivamente: desligado e ligado; falso e verdadeiro; não e sim. Já os sistemas hexadecimais ou de base 16 equivalem aos algarismos de 0 a 15 e são representados da seguinte maneira: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Os algarismos alfabéticos representam, respectivamente: 10, 11, 12, 13, 14 e 15. Ou seja, A=10 e F=15. Utilizando esse sistema, os computadores trabalham com uma unidade chamada byte, que consiste no agrupamento de oito bits. Todos os caracteres são definidos por uma tabela chamada ASCII (Tabela 1); esses caracteres têm um número correspondente e são convertidos para o formato binário pelo método da divisão. Tabela 1: Modelo da tabela ASCII código caractere código caractere código caractere 128 Ç 160 Á 192 129 ü 161 Í 193 130 é 162 Ó e-Tec Brasil/CEMF/Unimontes código caractere + 224 Ó - 225 ß 194 - 226 Ô 131 â 163 Ú 195 + 227 Ò 132 ä 164 Ñ 196 - 228 õ 133 à 165 Ñ 197 + 229 Õ 134 å 166 ª 198 ã 230 µ 135 ç 167 º 199 Ã 231 þ 136 ê 168 ¿ 200 + 232 Þ 137 ë 169 ® 201 + 233 Ú 138 è 170 ¬ 202 - 234 Û 139 ï 171 ½ 203 - 235 Ù 140 î 172 ¼ 204 ¦ 236 ý 141 ì 173 ¡ 205 - 237 Ý 16 142 Ä 174 « 206 + 238 ¯ 143 Å 175 » 207 ¤ 239 ´ 144 É 176 _ 208 ð 240 ¬ 145 æ 177 _ 209 Ð 241 ± 146 Æ 178 _ 210 Ê 242 _ 147 ô 179 ¦ 211 Ë 243 ¾ 148 ö 180 ¦ 212 È 244 ¶ 149 ò 181 Á 213 i 245 § 150 û 182 Â 214 Í 246 ÷ 151 ù 183 À 215 Î 247 ¸ 152 ÿ 184 © 216 Ï 248 ° 153 Ö 185 ¦ 217 + 249 ¨ 154 Ü 186 ¦ 218 + 250 • 155 ø 187 + 219 _ 251 ¹ 156 £ 188 + 220 _ 252 ³ 157 Ø 189 ¢ 221 ¦ 253 ² 158 × 190 ¥ 222 Ì 254 _ 159 ƒ 191 + 223 _ 255 Fonte: Disponível em: <http://www.infoisis.eti.br/mqisi/tex/dos/pgtxdos001.htm>. 2010. Como dito anteriormente, na conversão binária, os caracteres são transformados em caracteres binários pelo método da divisão. Como exemplo de conversão por meio de divisão binária, utilizaremos o número 59. O número 59 será dividido n vezes pelo número dois; o que será relevante nessa divisão é o resto, que deverá ser lido de baixo para cima, ou seja, de trás para frente. O que significa que 59 = 111011. Outro exemplo é a conversão binária do número 12. Observe: Deste modo, o resultado da conversão binária de 12 será 1100. Assim, observa-se que é possível converter qualquer número inteiro, maior ou igual a um, para um sistema numérico binário. Arquitetura de Computadores 17 e-Tec Brasil/CEMF/Unimontes Resumo Nesta aula, exploraram-se os computadores e os sistemas binários; com isso, você aprendeu que: • o primeiro sistema numérico foi o sistema decimal; • o computador trabalha com sistemas numéricos, binários e hexadecimais; • um bit ou binary digit (digito binário) é a menor e mais fundamental unidade de um computador, e sua representação lógica é 0 ou 1; • o byte consiste no agrupamento de oito bits; • os caracteres trabalhados no computador utilizam-se de uma tabela de códigos binários, chamada de tabela ASCH; • qualquer número inteiro maior ou igual a um pode ser usado como base de numeração; • é possível converter qualquer número inteiro, maior ou igual a um, para um sistema numérico binário. Atividades de aprendizagem 1) O que é a tabela ASCH e qual a sua finalidade? 2) Preencha a tabela a seguir com os caracteres correspondentes aos códigos da tabela ASCH. código caractere código 129 146 159 245 198 132 252 161 caractere 3) Sabe-se que um bit, ou seja, um dígito binário é a menor e mais fundamental unidade de um computador. Quais as possíveis representações lógicas de um bit? 4) Convertam, em bases binárias, os números: a) 65 b) 46 c) 15 d) 24 e) 97 f) 35 5) Explique o que é o sistema hexadecimal e a sua representação. e-Tec Brasil/CEMF/Unimontes 18 AULA 1 Aula 2 – Organização Alfabetização Digital de sistemas de computação e seus subsistemas Objetivos Prezado aluno! Seja bem-vindo à segunda aula de Arquitetura de Computadores. O objetivo desta aula é apresentar os sistemas de computação e como são vinculados os subsistemas. Veremos, ainda, sobre sistemas abertos e fechados, sobre softwares e hardwares, além de permitir o reconhecimento dos periféricos de entrada, de saída e de armazenamento. 2.1 Sistemas de computação Entende-se por sistema um conjunto de elementos interconectados que trabalham independentemente, visando alcançar um objetivo comum. O computador é um conjunto de subsistemas distintos que trabalham juntos para solucionar os problemas a ele destinados. Os dois subsistemas aqui tratados são os hardwares e os softwares. Os sistemas podem ser abertos ou fechados. Sistemas abertos são aqueles que têm interação com o meio ambiente através de entradas e saídas, adaptando-se às condições desse meio ambiente. Já os sistemas fechados são aqueles que têm comportamento determinístico e que produzem saídas invariáveis. 2.2 Softwares Os softwares constituem os componentes lógicos dos sistemas, ou seja, trata-se de um conjunto de instruções que permite o funcionamento do hardware. Também chamados de programas de computador, fazem com que o computador e seus periféricos funcionem adequadamente. Os softwares podem ser categorizados como softwares de sistema ou softwares aplicativos. Os softwares de sistema abrangem todos os programas relacionados com as funções operacionais do computador, incluindo os sistemas operacionais, os compiladores de linguagens de programação e vários programas utilitários. Os sistemas operacionais, também chamados de softwares de segundo plano ou ocultos, servem de intermediários entre o software aplicativo e o hardware, funcionando como um controlador de acessos entre o hardware e o software. Na verdade, o sistema operacional é composto por um conjunto de programas responsáveis por manter os recursos do computador com a CPU Arquitetura de Computadores 19 e-Tec Brasil/CEMF/Unimontes e memórias, estabelecer interface com os usuários e possibilitar o acesso aos softwares aplicativos. Os softwares aplicativos são aqueles utilizados normalmente pelo usuário para a execução de suas tarefas. Esses softwares podem ser personalizados ou comercializados em forma de pacotes. Os mais comuns são os softwares orientados a tarefas ou softwares de produtividade; são eles: as planilhas eletrônicas, os editores de texto, os aplicativos de comunicação, as agendas eletrônicas e outros aplicativos que têm a função de facilitar a vida do usuário e tornar suas tarefas mais rápidas. Os softwares são adquiridos de formas distintas, podendo ser freeware, de domínio público, open-source, shareware ou comerciais. Software gratuito ou freeware é aquele que o autor disponibiliza a utilização gratuitamente para todos os usuários. Esses softwares são protegidos por direitos autorais, permitindo que o autor tenha propriedade legal, o que permite a ele impor restrições de uso. Os softwares de domínio público são aqueles que não são protegidos por direitos autorais e podem ser utilizados e alterados sem restrições. Geralmente, os softwares desenvolvidos por universidades e instituições de pesquisa subsidiados pelo governo são de domínio público. Open-source ou softwares de código aberto são variações do software gratuito. Porém, o software é disponibilizado como código-fonte, permitindo que qualquer pessoa possa utilizá-lo e modificá-lo. Um exemplo de software de código aberto é o sistema operacional Linux. O shareware costuma ser confundido com freeware, uma vez que também é distribuído gratuitamente. Entretanto, sua utilização tem caráter experimental. Ou seja, tem período de ativação determinado pelo fabricante; a continuidade de utilização está condicionada à compra de licença de uso. Softwares comerciais são aqueles protegidos por direitos autorais e disponibilizados aos usuários através de licenças de acesso ou aquisição completa do produto. A utilização ilegal desses tipos de softwares pode ser trazer punições penais legais aos infratores. 2.3 Hardware Compõem o hardware todo e qualquer componente físico do computador, independentemente se são componentes internos ou externos. Dividem-se em quatro categorias: dispositivos de entrada, processadores, dispositivos de saída e dispositivos de armazenamento. Imagine quando estamos trabalhando com o computador, mais especificamente com a digitação de um texto. Ligamos o computador em um botão específico do gabinete, abrimos o editor de textos por meio do mouse, digitamos o texto no teclado e as informações ficam mantidas na tela enquanto as editamos. Essas informações podem ser salvas (guardadas para uso posterior) ou descartadas. Caso o computador desligue antes do salva- e-Tec Brasil/CEMF/Unimontes 20 mento das informações digitadas, todo o trabalho será perdido. E como é perdido, se você estava visualizando-o no monitor enquanto estava digitando? Bem, o computador consegue armazenar informações temporariamente em uma memória primária, chamada memória RAM. Caso tivesse sido salvo, utilizaria um espaço reservado que complementa a memória primária, são os discos rígidos, pendrives, CDs, DVDs. Ao digitar o texto, estamos trabalhando com os periféricos de entrada (mouse e teclado), periféricos de armazenamento (memórias), periféricos de saída (monitor) e processador. Memória RAM – Random Access Memory (Memória de Acesso Randômico) 2.3.1 Dispositivos de entrada Dispositivos de entrada são aqueles que permitem ao usuário interagir com o computador, inserindo dados a serem processados. Ou seja, são dispositivos que permitem a inserção de dados externos na máquina. Ao digitar um texto no Microsoft Word, você utiliza o teclado para escrever, o mouse para formatar, talvez um scanner para inserir uma imagem ou um texto. Esses elementos são dispositivos de entrada. Você está inserindo seus dados no computador com o auxílio de um desses componentes. Como exemplos de dispositivos de entrada, podemos citar: joystick (Figura 1), microfone (Figura 2), scanner (Figura 3), leitora de código de barras (Figura 4), leitores biométricos (Figura 5), teclado (Figura 6), mouse (Figura 7) e mouse touchpad (Figura 9). Figura 1: Dispositivo de entrada - joystick. Fonte: Disponível em: <http://www.infomaniaco.com.br/games/teclado-sem-fios-para-oplaystation-3-chega-em-dezembro/>. 2010. Arquitetura de Computadores 21 e-Tec Brasil/CEMF/Unimontes Figura 2: Dispositivo de entrada - microfone. Fonte: Disponível em: <http://poseducacao.wordpress.com/2010/03/20/16-multimidia/>. 2010. Figura 3: Dispositivo de entrada - scanner. Fonte: Disponível em: <http://susanasousa.wordpress.com/2010/10/31/desenho-e-pintura-digitaisscanner-camara-fotografica-digita/>. 2010. Figura 4: Dispositivo de entrada – leitora de código de barras. Fonte: Disponível em: <http://www.submarino.com.br/produto/10/225131/ leitor+de+codigo+de+barras+-+minyscan+home>. 2010. e-Tec Brasil/CEMF/Unimontes 22 Figura 5: Dispositivo de entrada – leitor biométrico. Fonte: Disponível em: <http://www.thebest.blog.br/frequencia-digital-na-rede-publica-dasescolas-de-sao-paulo/>. 2010. Figura 6: Dispositivo de entrada – teclado. Fonte: Disponível em: <http://forum.tecnologia.uol.com.br/Onde-posso-achar-um-teclado-Dellpra-vender-+link+13_t_45993>. 2010. Figura 7: Dispositivo de entrada – mouse. Fonte: Disponível em: <http://carcmex.com/tecladosymouse.aspx>. 2010. Arquitetura de Computadores 23 e-Tec Brasil/CEMF/Unimontes Figura 8: Dispositivo de entrada – mouse touchpad. Fonte: Disponível em: <http://www.mousearena.com/ergonomic-mouse-touchpad/>. 2010. De uma forma mais simples, podemos entender os dispositivos de entrada como sendo aqueles dispositivos que nos permitem introduzir dados e instruções diretamente na máquina. 2.3.2 Dispositivos de saída Dispositivos de saída são aqueles que retornam as informações trabalhadas na máquina para o usuário. Ou seja, externalizam as informações contidas no computador. Ao digitar um texto no Microsoft Word, você utiliza o monitor para visualizar as informações contidas no documento, ou as que estão sendo inseridas naquele instante. Ou seja, você está utilizando um dispositivo que te permite interagir com a CPU, visualizando o que está sendo trabalhado. Mas podemos visualizar essas informações também de forma impressa; utilizamos, então, a impressora. Enquanto utilizamos o computador, gostamos de ouvir música; podemos ouvi-las utilizando as caixas de som do próprio computador. Assim, todas as informações externalizadas pelo computador dependem de um dispositivo de saída. São exemplos de dispositivos de saída: impressora (Figura 10), caixa de som, monitor (Figura 9) e plotter (Figura 11). e-Tec Brasil/CEMF/Unimontes 24 Figura 9: Dispositivo de saída - monitor. Fonte: Disponível em: <http://www.oquartoelemento.com.br/wp/2008/01/20/cuidados-naescolha-de-um-monitor-lcd/>. 2010. Figura 10: Dispositivo de saída - impressora. Fonte: Disponível em: <http://kilobyte.com.br/drivers/driver-impressora-hp-d1360/>. 2010. Arquitetura de Computadores 25 e-Tec Brasil/CEMF/Unimontes Figura 11: Dispositivo de saída - plotter. Fonte: Disponível em: <http://www.dflektor.com/blog/?p=2621>. 2010. Observe que, ao contrário dos dispositivos de entrada, os dispositivos de saída nos permitem visualizar os dados e as informações armazenadas e processadas internamente pela máquina, como a impressão de um texto, a visualização de uma imagem no vídeo ou uma música que pode ser ouvida por intermédio do computador. 2.3.3 Dispositivos de armazenamento Assim como dependemos dos dispositivos de entrada e de saída para inserir ou visualizar informações contidas no computador, precisamos também de dispositivos que mantenham essas informações guardadas na máquina. Isso permite que os dados inseridos tenham um lugar certo para armazenagem e que possam ser manipulados e visualizados quando for necessário. Os dispositivos que guardam essas informações, como o pendrive, o disco rígido, o CD, o DVD, a fita dat, o disquete, os cartões de memória e a memória RAM são os dispositivos de armazenamento. Dispositivos de armazenamento são as memórias, que estão divididas em memória principal e secundária. Memória secundária é aquela que armazena dados ou programas de modo permanente ou até que o usuário julgue necessário, além do sistema operacional e dos programas utilizados no computador. São elas: disco rígido (Figura 13 e Figura 14), pendrive (Figura 12), disquete, CD (Figura 15), DVD, cartão de memória ou qualquer dispositivo de armazenamento, independentemente de se está ou não dentro do computador. e-Tec Brasil/CEMF/Unimontes 26 Figura 12: Memória secundária - pendrive. Fonte: Disponível em: <http://info.abril.com.br/dicas/hardware/notebooks/programas-nonetbook-veja-como-instalar.shtml>. 2010. Figura 13: Memória secundária – HD externo. Fonte: Disponível em: <http://7informatica.com/loja/>. 2010. Figura 14: Memória secundária – disco rígido. Fonte: Disponível em: <http://todoespacoonline.com/post.php?id=738>. 2010. Arquitetura de Computadores 27 e-Tec Brasil/CEMF/Unimontes Figura 15: Memória secundária – CDs. Fonte: Disponível em: <http://www.lexxa.com.br/ecommerce.aspx>. 2010. Memória primária ou memória central pode ser RAM (Figura 16) ou ROM. A primeira, armazena os dados temporariamente, essa memória é volátil, , ou seja, o conteúdo é perdido com o desligamento do computador. Já a segunda é não volátil. Desse modo, o conteúdo é mantido mesmo após o desligamento do computador. Esse tipo de memória é definido pelo fabricante da máquina e pode ser lido ou usado pela CPU para fins específicos do equipamento. Figura 16: Memória primária – memória RAM. Fonte: Disponível em: <http://www.ferapositivo.com.br/dicas/como-colocar-mais-de-4gb-nowindows/>. 2010. e-Tec Brasil/CEMF/Unimontes 28 A memória ROM ou ROM-BIOS (Read-Only Memory Basic Input/Output System – Sistema Básico de Entrada/Saída em Memória Somente de Leitura), conforme apresentada na Figura 17, é um grupo de programas residente no computador e é responsável por realizar operações de controle e de supervisão nos processos de nível mais básico da máquina. Fundamentalmente, o ROM-BIOS é um tradutor entre o hardware e os softwares executados nos computadores. Os softwares armazenados permanentemente nos circuitos de ROM recebem o nome de firmware. Firmware é o conjunto de instruções operacionais programadas diretamente no hardware, ou seja, nos circuitos dos equipamentos eletrônicos. Figura 17: Memória primária – memória ROM-BIOS. Fonte: Disponível em: <http://www.clubedohardware.com.br/dicionario/termo/94>. 2010. 2.3.3.1 Capacidade de armazenamento da memória As memórias têm capacidades de armazenamento medidas em Kilobytes. Essa capacidade de armazenamento é que define a quantidade de informações que podem ser guardadas ou trabalhadas simultaneamente no computador. Isso quer dizer que, quanto mais bytes a memória tiver, mais informações poderão ser armazenadas. Um byte equivale a 8 bits. As demais medidas são múltiplas de 1024, ou seja, múltiplos de 210 (dois na base 10). Observem, na Tabela 2, as unidades de medida baseadas em bytes. Tabela 2 - Unidades de medidas das memórias Unidade de medida Equivalência 1 byte 8 bits 1 kilobyte (KB) 1024 bytes 1 megabyte (MB) 1024 kilobytes 1 gigabyte (GB) 1024 megabytes 1 terabytes (TB) 1024 gigabytes 1 petabyte (PB) 1024 terabytes Fonte: Própria, 2010. Arquitetura de Computadores 29 e-Tec Brasil/CEMF/Unimontes 2.3.4 Processador O processador é considerado um dos principais componentes do computador, pois ele é responsável por executar todas as operações. O processador precisa do auxílio dos dispositivos de entrada, de saída e de armazenamento para receber os dados do usuário, processá-los e retornar os resultados. Todos os procedimentos realizados pelo computador são processados por ele. O processador (Figura 18) ou CPU é composto por um conjunto de circuitos eletrônicos que manipula os dados de entrada, transformando-os em informação. Na verdade, o processador é responsável por executar instruções específicas do computador para possibilitar a resolução dos problemas a ele especificados ou atribuídos. CPU - Central Processing Unit (ou UCP - Unidade Central de Processamento) - é responsável por comandar periféricos através de comandos específicos da máquina. Figura 18: Processadores. Fonte: Disponível em: <http://www.publival.pt/loja/index.php?cPath=489_26>. 2010. Os processadores possuem relógios (clocks) de sistemas que produzem pulsos, definindo taxas fixas para a sincronização das operações executadas pelo computador. Esse relógio de sistema é um chip distinto para essa função, não tendo relação com o relógio da máquina. Cada modelo de processador trabalha com conjuntos específicos de instruções, como adicionar e mover. Essas instruções são armazenadas na memória e localizadas através do endereçamento de memória. e-Tec Brasil/CEMF/Unimontes 30 2.4 Barramento Para que os componentes contidos na máquina interajam, é necessário fazer uma conexão entre eles; para isso, utilizamos os barramentos. Desse modo, podemos definir os barramentos como sendo uma via interna de tráfego responsável por transmitir sinais elétricos entre os diversos componentes do computador. Esses barramentos são classificados como barramentos de sistemas e barramentos de expansão. 2.4.1 Barramento de sistema Os barramentos de sistema geralmente são revestidos de cobre sobre a superfície da placa-mãe, transportando dados entre a CPU e as memórias. A quantidade de bits transmitidos simultaneamente por esses barramentos são definidos pela largura de barramento. A largura de barramento depende do projeto da CPU, que pode permitir maior quantidade de dados a serem transmitidos simultaneamente, números maiores de endereçamento de memória e maior número de instruções trabalhadas. O barramento, afeta o desempenho do sistema. Quanto maior a largura de barramento, mais rápida é a transmissão dos dados através do sistema. Placa-mãe ou placa principal de circuito impresso é composta por um conjunto de chips e conexões que centralizam as atividades do computador, vinculando componentes como o processador e as memórias. 2.4.2 Barramento de expansão Barramentos de expansão ou placas de extensão, geralmente, são conectados a slots (encaixe) de expansão na placa-mãe. Também são conhecidos como cartões de interface ou cartões adaptadores, que podem ser conectados aos slots ou em conectores externos (portas). As portas podem ser seriais ou paralelas; a primeira transmite dados utilizando um bit por vez. Já a segunda transmite grupos de bits em conjunto. A Figura 19 apresenta uma placa-mãe com quatro slots de memória, sendo que apenas um está ocupado. Isso permitiria que outros três dispositivos de memória pudessem ser incorporados ao hardware. Arquitetura de Computadores 31 e-Tec Brasil/CEMF/Unimontes Figura 19: Slots de memória. Fonte: Disponível em: <http://www.coltec.ufmg.br/~helena/word_1/boot.html>. 2010. Os mais comuns barramentos de expansão são os apresentados a seguir. 1) Barramento ISA (Industry Standard Architecture), apresentado na Figura 20, é o mais antigo barramento de expansão. Utiliza 8 ou 16 bits e é utilizado para dispositivos mais lentos, como o mouse e o modem. Figura 20: Slot ISA. Fonte: Disponível em: <http://www.oficinadanet.com.br/artigo/834/barramentos>. 2010. 2) Barramento PCI (Peripheral Component Interconect), apresentado na Figura 21, é usado para conectar dispositivos de alta velocidade, como discos rígidos e placas de rede. Figura 21: Slot PCI. Fonte: Disponível em: <http://www.gdhpress.com.br/hmc/leia/index.php?p=cap4-6>. 2010. e-Tec Brasil/CEMF/Unimontes 32 3) Barramento AGP (Accelerated Graphics Port), mostrado na Figura 22, possui função principal de melhorar o desempenho do vídeo, pois não interfere em outros dispositivos, apenas estabelece conexão individual entre a memória e a placa gráfica AGP. Figura 22: Barramento AGP. Fonte: Disponível em: <http://www.juliobattisti.com.br/tutoriais/jorgeasantos/ montagemconfiguracaopc012.asp>. 2010. 4) Barramento USB (universal Serial Bus), ilustrado na Figura 23, é um barramento de expansão externo. Os dispositivos que utilizam esse barramento podem estar interligados em série, eliminando a necessidade de placas de expansão. Podem ser conectados ou desconectados a qualquer instante, sem a necessidade de desligar o computador. Figura 23: Barramento USB. Fonte: Disponível em: <http://pontuakinet.blogspot.com/2008/11/padro-usb-de-conexo-chegaverso-30-e.html>. 2010. Arquitetura de Computadores 33 e-Tec Brasil/CEMF/Unimontes Resumo Nesta aula, você aprendeu que: • os sistemas computacionais são divididos em subsistemas que visam trabalhar de maneira independente e interconectados para garantir o funcionamento do computador e os problemas a ele impostos; • hardwares são os elementos físicos do computador; • softwares são os arquivos lógicos, também chamados de programas; • os hardwares são divididos em dispositivos de entrada, de saída e de armazenamento; • os dispositivos de armazenamento possuem regras de endereçamento que facilitam a localização dos espaços de memória dentro do dispositivo; • o processador ou CPU é um conjunto de circuitos eletrônicos responsável por comandar periféricos através de comandos específicos da máquina, manipulando os dados e gerando informação; • barramentos transmitem sinais elétricos entre os diversos componentes do computador; • os barramentos são divididos em barramentos de sistema e barramento de expansão. Atividades de aprendizagem 1) O que é um sistema computacional e por que ele se utiliza de subsistemas? 2) Cite exemplos de softwares aplicativos e as suas aplicações. 3) Qual a diferença entre memória primária e memória secundária? Cite exemplos. 4) Qual a diferença entre software gratuito e de código aberto? 5) Quais os sistemas operacionais que você conhece? 6) Se considerarmos 6144 GB (gigabytes), qual será a sua equivalência em TB (terabytes)? 7) Crie um esquema de endereçamento de memória para um computador que usa palavras de 16 bytes. 8) O que é a ROM-BIOS e qual a sua importância? 9) O que é um barramento? E como eles são classificados? 10) Cite exemplos de: a) cinco dispositivos de entrada; b) quatro dispositivos de saída; c) três dispositivos de armazenamento. e-Tec Brasil/CEMF/Unimontes 34 AULA 1 Aula 3 – Computadores e linguagens de Alfabetização Digital programação Objetivos Caro aluno! Seja bem-vindo à terceira aula de Arquitetura de Computadores. O objetivo desta aula é apresentar os princípios básicos sobre o desenvolvimento de sistemas, permitindo-o conhecer e criar algoritmos em descrição narrativa, fluxograma e pseudocódigo, além de possibilitar a diferenciação das linguagens de programação dos algoritmos, classificando-as de acordo com a sua funcionalidade. 3.1 Os computadores e o desenvolvimento de algoritmos e sistemas Os computadores foram criados com o objetivo de auxiliar o usuário em seus trabalhos, diminuindo esforços e economizando tempo. O computador é capaz de executar várias tarefas, mas não tem iniciativa própria e necessita de instruções detalhadas para que possa executá-las. Essas instruções são os algoritmos. Os algoritmos são as instruções detalhadas passo a passo, mas não é uma linguagem entendida pelo computador. Para que esse entendimento seja possível, os algoritmos são convertidos em linguagens de programação e transformados em programas. Segundo ASCENCIO (2007), um programa é a codificação de um algoritmo em uma determinada linguagem de programação. Ao desenvolver um software, deve-se escrevê-lo em uma linguagem que tanto o computador quanto o desenvolvedor entendam. Essa linguagem é chamada de linguagem de programação. Para desenvolver o software, é necessário passar por três etapas básicas: análise, algoritmo e codificação. • Fase de análise: estuda o enunciado do problema para definir os dados de entrada, o processamento e os dados de saída. • Elaboração do algoritmo: utiliza ferramentas específicas para descrever o problema e as suas possíveis soluções. • Codificação: é a transformação do algoritmo em códigos pela linguagem de programação escolhida pelo desenvolvedor. Arquitetura de Computadores 35 e-Tec Brasil/CEMF/Unimontes 3.2 Algoritmos Para HOLLOWAY (2006), aprender a projetar e implementar algoritmos aperfeiçoará a sua habilidade em pensamentos lógicos; isto lhe dará uma base para avaliar os resultados e simulações realizados por computador (...). Há três tipos de algoritmos: descrição narrativa, fluxograma e pseudocódigo. Descrição narrativa é um método algorítmico baseado na análise do enunciado do problema e na sua escrita, utilizando linguagem natural (ou seja, seu próprio idioma). Aqui, são definidos os passos a serem seguidos para a resolução de um determinado problema. O fluxograma utiliza-se de símbolos gráficos pré-definidos, permitindo decidir os passos a serem seguidos para a resolução do problema. O pseudocódigo ou portugol utiliza-se de regras pré-definidas para a resolução do problema. Para exemplificar os tipos de algoritmos, temos o seguinte enunciado: crie um algoritmo que imprima a soma de dois números. Resolução em descrição narrativa: Passo 1: ler dois números. Passo 2: somar os dois números. Passo 3: imprimir a soma. Resolução em fluxograma: e-Tec Brasil/CEMF/Unimontes 36 Resolução em português estruturado: Início. Declare. Numérico: número1, número2, soma. Leia: número1, número2. Soma: ← número1 + número2. Imprima: soma. Fim_algoritmo. As três resoluções referem-se ao mesmo enunciado. Todas resolvem o mesmo problema utilizando estruturas algorítmicas distintas. A estrutura algorítmica mais utilizada é o português estruturado, pois a sua estrutura é muito semelhante à estrutura de algumas linguagens, como a Pascal e a C. Para criarmos um algoritmo, é necessário definir variáveis. Essas variáveis nada mais são do que a definição de um espaço de memória onde serão gravados e manipulados os dados trabalhados no algoritmo. Voltemos ao algoritmo feito em pseudocódigo ou portugol. Início Declare Numérico Numero1, Numero2, Soma; Leia Numero1, Numero2; Soma ← Numero1 + Numero2; Imprima Soma; Fim_algoritmo. Observe que temos várias instruções indicando o que deve ser feito: declare, leia e imprima. Porém, temos alguns elementos que não são instruções, que são as variáveis. São esses elementos que receberão os dados inseridos pelo usuário e guardarão os resultados da operação. O algoritmo, aqui exemplificado, imprime a soma de dois números. Imagine que o usuário digite 3 e 4, de modo que o resultado seja 7. Como o computador saberá quais números ler? E onde essa soma será calculada? Você se lembra de quando estudamos os dispositivos de entrada, saída e armazenamento? Então, o usuário digitará os dados por meio de um dispositivo de entrada. Esses dados serão guardados nos dispositivos de armazenamento para serem processados, e retornam o resultado utilizando-se dos dispositivos de saída. Então, fica fácil; se preciso armazenar esses dados, temporariamente ou de forma permanente, precisarei de memória (dispositivo de armazenamento). Sendo assim, darei nomes àqueles espaços de memória que serão utilizados pelo meu algoritmo e, sempre que precisar daquele dado, saberei onde ele está, independentemente do valor armazenado nele. Arquitetura de Computadores 37 e-Tec Brasil/CEMF/Unimontes Se somaremos 3 e 4 para obter 7, precisaremos declarar três variáveis. Declare Numérico Numero1, Numero2, Soma; Desse modo, o primeiro número digitado será armazenado na variável Numero1, o segundo será armazenado na variável Numero2 e, por fim, o cálculo da soma será armazenado na variável Soma. Se o nosso algoritmo pretendesse encontrar o resultado da expressão X=((N+K)*Y)/2, precisaríamos de quatro variáveis para armazenar N, K, Y e X. Se precisássemos calcular a média aritmética de três números, poderíamos montar a expressão Media=(Num1+Num2+Num3)/3. Então, declararíamos quatro variáveis: Media, Num1, Num2 e Num3. Essas variáveis deveriam ter um tipo, ou seja, a que esse dado se refere. É um texto? É um número? É uma condição? Por isso, antes de declarar as variáveis, informamos que elas eram do tipo numérico. 3.3 Linguagem de programação Linguagem de programação nada mais é do que a codificação dos algoritmos de modo que a máquina entenda aquilo que foi especificado pelo programador. Formalmente, pode-se definir linguagem de programação como um conjunto de termos (vocabulários) e regras (sintaxe) que permite a formulação de instruções ao computador. São muitas as linguagens de programação, dentre elas, podemos citar: Pascal, C, C++, Delphi e Java. As linguagens de programação são classificadas segundo o seu modo estrutural. Essas estruturas foram surgindo a partir dos avanços tecnológicos e da necessidade de linguagens mais robustas e adequadas a determinados tipos de utilização. A classificação delas pode ser: linguagem de baixo nível, linguagem não-estruturada, linguagem estruturada, linguagem procedural, linguagem funcional, linguagem orientada a objetos, linguagem específica, linguagem visual ou de quarta geração. 3.3.1 Linguagens de baixo nível São linguagens que possuem instruções muito próximas dos códigos de máquina. A quantidade e tipos de instruções correspondentes a essa linguagem variam de acordo com o processador, ou seja, a sua estruturação e a quantidade de linhas e comandos estarão diretamente vinculadas ao hardware que a executará. Um exemplo desse tipo de linguagem é o Assembly. e-Tec Brasil/CEMF/Unimontes 38 3.3.2 Linguagens não-estruturadas As linguagens não-estruturadas não estão vinculadas a um processador, como no caso das linguagens de baixo nível; isso garante maior flexibilidade no seu uso. A forma em que seus termos são escritos é genérica, podendo ser utilizada em diferentes plataformas sem alteração da sintaxe. São linguagens não-estruturadas o Cobol e o Basic. 3.3.3Linguagens procedurais Essas linguagens possuem estrutura de controle, organizando de forma mais eficiente e clara a sintaxe de um programa. Essa sintaxe é definida por meio de espaçamentos específicos e por outras regras particulares das linguagens, tornando o seu entendimento e a sua manipulação mais fáceis para os desenvolvedores. A exemplo dessas linguagens, pode-se citar: Pascal, C, Fortran, Ada, Modula2 e Modula3. 3.3.4Linguagens funcionais Esse tipo de programação tem, como forma funcional, não apenas a estruturação de comandos ou das regras de linguagem. Seu objetivo principal é a avaliação de expressões formadas com a utilização de funções que procuram combinar valores básicos, e não simplesmente executar comandos, como as linguagens estruturadas. Exemplos: Prolog, Lisp e Scheme. 3.3.5Linguagens orientadas a objetos A programação orientada a objetos baseia-se em princípios da programação estruturada combinados a novos conceitos, que permitem que os programas sejam decompostos em subgrupos ou subprogramas inter-relacionados; esses subgrupos são chamados de objetos. Estes podem ser implementados individualmente e incorporados ou retirados de um sistema maior sempre que necessário. 3.3.6Linguagens específicas São aquelas implementadas para atividades específicas, como a SQL (Structure Query Language), utilizada em bancos de dados, e o Matlab, para simulações matemáticas. 3.3.7Linguagens de quarta geração ou visuais São linguagens desenvolvidas especificamente para os novos sistemas operacionais dotados de interface gráfica, como o Windows Xp, Windows Arquitetura de Computadores 39 e-Tec Brasil/CEMF/Unimontes 7 e Umbuntu. Esses sistemas operacionais são robustos e apresentam aos usuários telas amigáveis e interativas. As linguagens evoluíram junto com os sistemas operacionais para poder atender a esses recursos gráficos, interativos, e também a outras necessidades mais especificas, como as aplicações de rede e as conexões aos bancos de dados. Resumo Nesta aula, foi possível entender que: • para desenvolver o software, é necessário passar por três etapas básicas: análise, algoritmo e codificação; • o computador é capaz de executar várias tarefas, mas não tem iniciativa própria e necessita de instruções detalhadas para poder executá-las. Essas instruções são algoritmos; • há três tipos de estruturas algorítmicas: descrição narrativa, fluxograma e portugol; • linguagem de programação é o conjunto de termos e regras que permite a formulação de instruções ao computador; • as linguagens de programação podem ser classificadas como: linguagem de baixo nível, linguagem não-estruturada, linguagem estruturada, linguagem procedural, linguagem funcional, linguagem orientada a objetos, linguagem específica, linguagem visual ou de quarta geração. e-Tec Brasil/CEMF/Unimontes 40 Atividades de aprendizagem 1) Qual a diferença entre algoritmo e linguagem de programação? 2) Identifique a classificação das linguagens a seguir, segundo a sua forma estrutural. a) Cobol b) Pascal c) Assembly d) Scheme e) C f) Fortran g) SQL h) Java i) Lisp j) Delphi k) Basic l) Prolog 3) Relacione a segunda coluna de acordo com a primeira: ( a ) Pseudocódigo ( b ) Descrição narrativa ( c ) Fluxograma (__) Utiliza-se de símbolos gráficos pré-definidos, permitindo determinar os passos a serem seguidos para a resolução do problema. (__) Método algorítmico baseado na analise do enunciado do problema e na sua escrita, utilizando linguagem natural. (__) Utiliza-se de regras pré-definidas para a resolução do problema. 4) O que é uma variável e qual a sua importância no algoritmo? 5) Quantas variáveis serão necessárias para criar um algoritmo que resolva a seguinte expressão: SalarioNovo=(SalarioBase * 1.25)? 6) Elabore um algoritmo que leia um número e imprima o dobro. 7) Crie um algoritmo que imprima o cubo de um número. Arquitetura de Computadores 41 e-Tec Brasil/CEMF/Unimontes AULA 1 Aula 4 – Instruções e modos de endereAlfabetização Digital çamento de memória Objetivos Prezado aluno! Seja bem-vindo à quarta aula de Arquitetura de computadores. Nesta aula, aprenderemos sobre os tipos de memória e como os dados devem ser armazenados de forma adequada para que possam ser encontrados, trabalhados e manipulados de modo rápido e seguro, por meio do endereçamento de memória. 4.1 A memória Como visto na Aula 2, o computador utiliza-se de dispositivos de armazenamento para guardar seus dados e informações. Mas não podemos guardar essas informações de forma aleatória e sem organização. Para isso, utilizamos os endereçamentos de memória. A memória fornece à CPU um espaço para o armazenamento e a manipulação de dados e programas. A característica principal da memória é que ela permite que a CPU acesse e manipule as instruções e os dados de forma rápida e eficiente. Isso se dá por meio dos endereçamentos de memória. Esse endereçamento pode ser comparado aos nossos endereços de correspondência. Servem para facilitar a localização de um determinado objeto ou imóvel. Imagine localizar uma casa, em uma cidade de 300 mil habitantes, sem ter em mãos o endereço correto? Quanto tempo você levaria para localizá-la? Por isso, é importante o endereçamento. Um dado armazenado na memória do computador também fica mais fácil de ser encontrado quando se define o endereço de armazenamento. 4.2 Endereçamento de memória Cada posição da memória é constituída por um grupo de oito elementos. Cada uma delas é numerada, sempre iniciando em zero. Os endereços são permanentes e já vêm definidos de fábrica, não podendo ser modificados pelo programador. Quando o computador usa palavras de 4 bytes, os endereços serão: 0-4-8-12-16-20, e assim sucessivamente. Ou seja, cada bloco terá 4 bytes. Para melhor entendimento, observe o esquema apresentado na Figura 24. Arquitetura de Computadores 43 e-Tec Brasil/CEMF/Unimontes Figura 24: Blocos de endereçamento. Fonte: Adaptado de Velloso(2004), 2010. O endereçamento tem o objetivo de criar uma estrutura para a organização do funcionamento do computador, de modo que os dados armazenados nos blocos de memória possam ser alterados, mas o endereçamento deles não. Capron e Johnson (2004) comparam o endereçamento de memória com as caixas postais na entrada de apartamentos. Os endereços permanecem os mesmos, mas o conteúdo delas pode mudar. 4.3 Memória virtual Memória virtual é a técnica utilizada pela memória principal e auxiliar para otimizar a utilização dos sistemas. Memória virtual é a técnica que visa melhorar os recursos do sistema, especialmente da CPU e da memória principal. Velloso (2004) define memória virtual como endereços virtuais mapeados em endereços reais. Isso ocorre quando o conjunto de endereços da memória principal, disponíveis para um ou mais programas, passa a ser maior do que a capacidade real de endereçamento nessa memória. O espaço de endereço virtual é dividido em unidades chamadas páginas, e as unidades correspondentes a elas, na memória física, são camadas de memória principal. As páginas e a memória principal devem ter o mesmo tamanho. Mas, para que possamos manipular essa memória virtual, é necessário um terceiro dispositivo, o dispositivo de acesso direto ou memória auxiliar, conforme apresentado na Figura 25. Figura 25: Acesso à memória virtual. Fonte: FEDELI; Ricardo Daniel. Introdução à Ciência da Computação, 2003. e-Tec Brasil/CEMF/Unimontes 44 O trânsito de páginas e a conversão dos seus respectivos endereços virtuais em reais são feitas por meio da tradução dinâmica de endereços (DAT – Dynamic Addess Tranlation). Quando não é possível reconhecer o endereço virtual na memória principal, a DAT guarda o endereço virtual na memória auxiliar, até encontrar na memória principal uma página disponível para alocar esse endereço. Depois disso, o endereço real é liberado para ser preenchido pela página requisitada. A maior parte dos programas será armazenada na memória auxiliar, mesmo durante a sua execução. Na memória principal, estarão apenas as instruções e os dados que estão sendo executados naquele momento. Os programas são executados por meio de endereçamento virtual, independentemente de suas posições físicas. A DAT tem a responsabilidade de identificar esse endereço virtual e guardá-lo na memória principal. Isso é feito através de tabelas executadas pela DAT. Essa operação é chamada de paginação de demanda. Vale ressaltar que a performance do sistema de paginação está diretamente ligada aos fabricantes de computadores e aos modelos de dispositivos escolhidos. Vale lembrar que a memória principal sempre se reporta à CPU, e as instruções executadas pela CPU estão gravadas na memória principal. Já a memória auxiliar referese aos dispositivos de acesso direto, sendo utilizados para guardar informações que não são necessárias para o uso imediato. Os programas armazenados na memória auxiliar somente poderão ser processados se chamados para a memória principal antes de qualquer outra providência. 4.3.1 Paginação A técnica de paginação é um método de criação de endereços virtuais, mesmo em computadores sem memória virtual. Ao utilizar a memória virtual, utiliza-se a unidade de gerenciamento de memória (MMU – Memory Management Unit), que é composta por um chip ou por um conjunto de chips responsável por mapear os endereços virtuais para os endereços de memória físicos, como pode ser observado na Figura 26. Figura 26: Unidade de gerenciamento de memória. Fonte: Adaptado de Tanenbaum, 2000. Arquitetura de Computadores 45 e-Tec Brasil/CEMF/Unimontes O espaço de endereço virtual é dividido em unidades chamadas páginas, e as unidades correspondentes a elas na memória física são camadas de molduras de página. As páginas e as molduras de página devem ter o mesmo tamanho. Quando não há mapeamento de página, ocorre uma interrupção (como visto na Figura 27). Essas interrupções são chamadas falhas de páginas. Caso isso ocorra, o sistema operacional seleciona uma moldura de página pouco utilizada para gravar o seu conteúdo no disco e a instrução interrompida é reiniciada. Figura 27: Mapeamento de página. Fonte: TANEMBAUM; Andrew, Sistemas Operacionais Modernos, 2003. Paginação é a movimentação de blocos de tamanhos constantes entre a memória principal e a auxiliar. 4.3.2 Tabela de endereços virtuais A tabela de endereços virtuais e as tabelas de segmentos de página são mantidas pelo sistema operacional na memória principal e são usadas pelo hardware para traduzir endereços virtuais referenciados nos endereços reais. e-Tec Brasil/CEMF/Unimontes 46 As tabelas são criadas por um programa responsável por instituir os designadores de segmento e de página, identificando, assim, o endereço virtual. As entradas de endereçamento possuem 8 bits, sempre os primeiros, expressando símbolos que indicam a condição da página: está reservada ou não, está gravada na memória principal ou não, está sendo acessada ou transcrita, entre outras ações referentes ao endereçamento de memória. O processo de tradução é feito pelo hardware através de recursos lógicos. Esse processo requer aproximadamente quatro ciclos de memória para gerar um endereço real. A Figura 30 apresenta o processo de tradução. Figura 28: Tabelas de endereçamento. Fonte: FEDELI; Ricardo Daniel, Introdução à Ciência da Computação, 2003. Ao iniciar o processo de tradução, há uma pesquisa nas tabelas procurando obter o endereço-base na tabela de segmento. O endereço-base é inserido nos bits reservados aos segmentos virtuais, preenchendo, assim, a entrada da tabela de segmento, que contém o endereço-base na tabela de páginas. Assim que o endereço é localizado, é gerada uma interrupção, possibilitando a paginação. Arquitetura de Computadores 47 e-Tec Brasil/CEMF/Unimontes 4.3.3 Memória cache A memória cache tem a função de identificar e armazenar quais posições de memória são mais solicitadas pelo processador. Ela pode ser interposta entre o processador e a memória principal ou inserida diretamente no processador. A cache contém um subconjunto de posições equivalente à memória principal; pode ser obtida através de índice de bloco, mapeamento associativo ou mapeamento de conjunto. 4.3.4 Tempo de acesso e ciclo de memória Neste item, será apresentado o tempo necessário para que um sistema de computador seja capaz de localizar uma posição de memória e transferir informações para esse endereço. A fórmula para calcular esse tempo é: Tac = Tloc + Ttr O ciclo de memória é o intervalo mínimo entre dois acessos sucessivos à memória. O tempo de latência ou de localização (Tloc) deve ser utilizado apenas para as memórias secundárias, sendo desprezível para a memória principal. O tempo de transferência (Ttr) varia de acordo com a natureza da operação a ser processada, que é múltipla de um valor básico, chamado de ciclo de memória; este tem valor especifico, de acordo com o equipamento. Resumo Nesta aula, foi possível entender que: • a memória é um espaço para o armazenamento e a manipulação de dados e programas; • o endereçamento de memória permite que a CPU acesse e manipule as instruções e os dados, de forma rápida e eficiente, na memória do computador; • memória virtual é a técnica que visa melhorar os recursos do sistema, especialmente da CPU e da memória principal; • o espaço de endereço virtual é dividido em unidades chamadas páginas, e as unidades correspondentes a elas na memória física são camadas memória principal; • a maior parte dos programas será armazenada na memória auxiliar, mesmo durante a sua execução. Na memória principal, estarão apenas as instruções e os dados que estão sendo executados naquele momento; • os programas são executados por meio de endereçamento virtual, independentemente de suas posições físicas; e-Tec Brasil/CEMF/Unimontes 48 • a técnica de paginação é um método de criação de endereços virtuais, mesmo em computadores sem memória virtual; • a tabela de endereços virtuais e as tabelas de segmentos de página são mantidas pelo sistema operacional na memória principal; são usadas pelo hardware para traduzir endereços virtuais referenciados nos endereços reais; • a memória cache tem a função de identificar e armazenar quais posições de memória são mais solicitadas pelo processador. Ela pode ser interposta entre o processador e a memória principal ou inserida diretamente no processador; • o ciclo de memória é o intervalo mínimo entre dois acessos sucessivos à memória. Atividades de aprendizagem 1) O que você entende sobre endereçamento de memória? 2) Como a memória do computador pode ser dividida? 3) O que é memória virtual e como é o seu funcionamento? 4) Qual a diferença entre memória principal e memória auxiliar? 5) Quais as vantagens de utilizar a memória virtual? 6) Para que serve a memória cache? Arquitetura de Computadores 49 e-Tec Brasil/CEMF/Unimontes AULA 1 Aula 5 – Caracterização das interfaces Alfabetização Digital paralelas e seriais Objetivos Caro aluno! Seja bem-vindo à quinta aula de Arquitetura de Computadores. Nesta aula, estudaremos o modo como os dispositivos de entrada, de saída e de armazenamento compartilham dados para que as tarefas desejadas sejam executadas de forma satisfatória pelo computador. 5.1 Interfaces de transmissão Como visto na aula 2, o computador contém dispositivos que permitem a interação do usuário com a máquina. São os dispositivos de entrada e os dispositivos de saída. Esses dispositivos transmitem os dados por meio de interfaces distintas, paralelas ou seriais. O tipo de interface é que define como os dados serão transmitidos. Esses dados são transmitidos como bits. Observe a Figura 29; ela apresenta os modelos de portas de interface serial e paralela. Figura 29: Portas seriais e paralelas. Fonte: Disponível em: <http://www.laercio.com.br/cursos_web/MONTAGEM-2001/mont-06/hard055.jpg>, 2011. 5.2 Interface serial A interface serial transmite os dados em série, ou seja, bit por bit, um a um, isto é, um após o outro até que o dado seja completamente transmitido. A implementação dessa interface é barata, uma vez que a remontagem Arquitetura de Computadores 51 e-Tec Brasil/CEMF/Unimontes dos dados transmitidos ocorre de forma comparativa. Observe a Figura 30; ela mostra como os bits são remontados. Eles são agrupados de 8 em 8, reconstituindo os bytes originais. Isso faz com que o controle e a remontagem serial sejam mais simples e mais baratos do que a paralela. Figura 30: Interface serial. Fonte: Disponível em: <http://wwwusers.rdc.puc-rio.br/rmano/interfac.html>. 2011. Todos os bits são transferidos por intermédio do mesmo meio físico, fazendo com que haja uma transmissão mais lenta. Outro problema é que, se houver qualquer anomalia, todos os bits serão igualmente afetados. Figura 31: Mouse serial. Fonte: Disponível em: <http://liquidationonly.com/5507/serial6.JPG>. 2010. A Figura 31 apresenta uma das aplicações da interface serial; por ser um processo de transmissão lento, não é indicado para dispositivos mais rápidos. Deve ser utilizado apenas em periféricos lentos, como teclados, mouses e modems. A transmissão serial possui apenas duas linhas para o envio de mensagem, sendo uma delas reservada à referência (ground) e outra reservada à linha de sinal. Isso faz com que os bits sejam transmitidos individualmente, um por vez, dependendo, assim, de um protocolo entre transmissor e receptor. Essa transmissão pode ser síncrona ou assíncrona, como visto a seguir. e-Tec Brasil/CEMF/Unimontes 52 5.2.1 Transmissão serial assíncrona Na transmissão serial assíncrona, enviam-se os bytes um a um, utilizando-se de caracteres especiais que marcam o início e o fim do byte, como se observa na Figura 32. Figura 32: Transmissão serial assíncrona. Fonte: Própria, 2011. O bit inicial, ou bit star”, é a referência de que os próximos bits serão os dados a serem transmitidos. Um bit final, ou bit stop, identifica o término da transmissão do byte. Essa transmissão tem como característica bits adicionais para cada byte enviado para que haja reconhecimento correto dos dados transmitidos. Nessa aplicação, utilizamos conceitos de paridade. Isso significa que, ao enviar 8 bits de dados, pode-se utilizar 10 bits para a paridade desligada e 11 bits para a paridade ligada. A paridade objetiva detectar erros no byte. 5.2.2Transmissão serial síncrona Na transmissão serial síncrona, os bits de dados são enviados em forma de blocos. Não há bits start nem stop. Podemos visualizar essa transmissão observando a Figura 33. Figura 33: Transmissão serial síncrona. Fonte: Própria, 2011. O bloco sincronizador é responsável por identificar que a transmissão dos dados poderá ser iniciada. O bloco de dados é o conjunto de bits a ser transmitido; esses bits têm, anexados a eles, cabeçalhos. Por fim, o BCC identifica o final da mensagem, verificando se houve ou não a ocorrência de erros durante a transmissão. Algumas das vantagens da transmissão serial síncrona: garantia de uma maior eficiência de transmissão, maior segurança na sincronização, melhores métodos de detecção de erros e maior velocidade de transmissão. Por outro lado, tem o custo alto e apresenta maior índice de erros de sincronização ou transmissão. Arquitetura de Computadores 53 e-Tec Brasil/CEMF/Unimontes 5.3 Interface paralela A interface paralela transmite os bits em blocos, ou seja, vários bits ao mesmo tempo. A Figura 34 mostra um exemplo de cabo paralelo para impressora. Figura 34: Cabo paralelo de impressora. Fonte: Disponível em: <http://www.gebecom.com.br/images/cabo%20paralelo%20im..jpg>. 2010. O processo de transferência na interface paralela é mais complexo do que na serial. Isto o torna mais caro. A propagação dos sinais no meio físico, ou seja, a conexão entre o dispositivo e a interface deve permitir que os bits correspondentes a cada byte cheguem simultaneamente à extremidade oposta do cabo, onde então serão reagrupados em bytes. Observe a Figura 35; ela representa a transferência de dados por meio da interface paralela. Figura 35: Interface paralela. Fonte: Disponível em: <http://wwwusers.rdc.puc-rio.br/rmano/interfac.html> 2010. e-Tec Brasil/CEMF/Unimontes 54 Esse tipo de interface pode sofrer diferenciação na velocidade de propagação de acordo com os meios físicos que transmitirão os dados. Há fios que conduzem sinais de forma rápida e outros de forma lenta. Isso pode causar problemas na transmissão, como bits fora de ordem, o que corromperia a informação. A solução para isso é limitar o tamanho do cabo. Até 1,5 metros de comprimento, o tempo de perda (throughput) não comprometeria a transmissão dos dados. Geralmente, a interface paralela é utilizada em aplicações que demandam taxas altas de transferência, como os discos rígidos, as impressoras e os drives de CD e DVD. A transmissão serial utiliza uma estrutura de 10 linhas para poder executar a transmissão dos dados; oito linhas são reservadas para a transmissão dos dados, uma linha para cada bit, isto porque oito bits equivalem a um byte. Uma linha é reservada para as instruções de referência, são as grounds. Por fim, mais uma linha: strobe (STB). O strob é responsável por identificar e validar a tensão correta (1 ou 0) de todas as linhas, permitindo que o receptor leia as informações transmitidas. Por necessitar de grande quantidade de linhas, a transmissão torna-se onerosa, mas rápida, pois possibilita a transmissão do byte de uma só vez e por completo. 5.4 Comparativo entre interface serial e paralela Ao comparar as interfaces paralelas e seriais, podemos observar que elas têm aplicações distintas, sendo utilizadas de acordo com a necessidade de cada dispositivo. Para comunicações de alta velocidade, com distância curta, deve-se utilizar a interface paralela. Já para distâncias longas, com velocidade menor, utiliza-se de interface serial. Observe alguns itens apresentados na Tabela 3. Tabela 3: Tabela comparativa de transmissão serial e paralela Serial Paralela Tipo de Dados Dados simples Dados complexos Comunicação Utiliza apenas um canal de comunicação Utiliza mais de um canal de comunicação Velocidade de transmissão Menor velocidade de transmissão Maior velocidade de transmissão Fonte: Própria (2010) Esta tabela comparativa não tem o objetivo de qualificar uma transmissão como melhor do que a outra, e sim apresentar, de forma resumida, a diferença entre elas. É esse comparativo que nos permite identificar qual delas é mais adequada para cada tipo de dispositivo. Arquitetura de Computadores 55 e-Tec Brasil/CEMF/Unimontes Resumo Nesta aula, foi possível entender que: • interface serial transmite dados em série, ou seja, bit por bit, um a um, isto é, um após o outro até que o dado seja completamente transmitido; • interface paralela transmite bits em blocos, ou seja, vários bits ao mesmo tempo; • na interface serial, os bits são agrupados de 8 em 8 para serem remontados, reconstituindo os bytes originais. Isso faz o controle e a remontagem serial mais simples e mais barata do que a paralela; • a transmissão serial possui apenas duas linhas para o envio de mensagem, sendo uma delas reservada à referência (ground) e outra à linha de sinal; • a transmissão serial pode ser síncrona ou assíncrona; • o processo de transferência na interface paralela é mais complexo do que na serial, o que o torna mais caro; • a interface paralela geralmente é utilizada em aplicações que demandam taxas altas de transferência com distâncias curtas. Atividades de aprendizagem 1) Qual a diferença da interface serial e paralela? 2) A interface serial divide-se em interface serial síncrona e assíncrona. Explique cada uma delas. 3) Para a comunicação de dados via linha discada, a conexão de um modem, deve-se utilizar a interface: a) SCSI. b) Serial. c) Paralela. d) Roteamento. 4) Com relação às modalidades de transmissão serial e paralela, pode-se afirmar que: a) a transmissão serial é bit por bit; a paralela é por blocos de caracteres. b) a transmissão paralela é bit por bit; a serial, caractere por caractere. c) a transmissão paralela é por bit e a serial por caractere. d) a transmissão serial é bit por bit; a paralela, caractere por caractere. e-Tec Brasil/CEMF/Unimontes 56 AULA 1 Aula 6 – Caracterização de arquiteturas Alfabetização Digital RISC e CISC Objetivos Oi, aluno! Seja bem-vindo à sexta e última aula de Arquitetura de Computadores. Nesta aula, estudaremos sobre as arquiteturas RISC (Reduced Instruction Set Computer) e CISC (Complex Instruction Set Computer), suas principais características quais as vantagens de cada uma delas. Veremos, ainda, os processadores híbridos que se utilizam dos princípios das duas arquiteturas, simultaneamente. 6.1 Arquitetura RISC Inicialmente, o conceito da arquitetura RISC (Reduced Instruction Set Computer) era utilizar um conjunto reduzido de instruções de linguagem de máquina. Porém, os primeiros processadores necessitavam de programadores altamente especializados para escrever os programas, uma vez que era necessário conhecer o processador e escrever códigos em linguagem de máquina pura. Por essa razão, os projetistas de hardware desenvolveram a técnica de microprogramação, ou seja, foi possível introduzir funções específicas diretamente no hardware. Os processadores passaram a utilizar o número excessivo de funções, inviabilizando a utilização da microprogramação. Isso fez com que fosse criada a arquitetura CISC, capaz de trabalhar um conjunto de instruções complexas. Com o passar do tempo, aumentou-se a velocidade da memória e a sua capacidade de armazenamento. Isso permitiu a utilização de softwares para substituir a microprogramação. Por outro lado, apresentou desvantagens, como problemas de cálculos em ponto flutuante e em execução de multiplicações. A primeira máquina moderna a utilizar a arquitetura RISC foi o IBM 801, por volta de 1975. Em 1980, foram criados processadores com arquitetura RISC, batizados como RISC I, RISC II e MIPS. Esses processadores foram testados e utilizados pela IBM e pela Sun Microsystems. A arquitetura RISC favorece a utilização de um conjunto simples e pequeno de instruções, além de alta velocidade de execução. Alguns dos processadores modernos que utilizam essa arquitetura são: DEC Alpha, SPARC, MIPS e PowerPC. São usados também em videogames. Arquitetura de Computadores 57 e-Tec Brasil/CEMF/Unimontes A arquitetura RISC possui as seguintes características: • conjunto de instruções reduzido e simples; • instruções regulares e em formato simples; • utiliza sempre registros para a sua execução; • modo simples de endereçamento de memória; • operação elementar por cclo de via de dados; e • utiliza princípios de pipeline. A arquitetura RISC trabalha, ainda, com três princípios básicos: ciclo da via de dados, LOAD/STORE e pipeline. O ciclo da via dos dados é a utilização dos recursos e das instruções de máquina para aumentar o desempenho do processamento, fazendo bom uso dos dados. O ciclo de via dos dados depende de diversos recursos da CPU, como a memória cache, o gerenciador de memória e os coprocessadores de ponto flutuante. O LOAD/STORE é uma arquitetura responsável por referenciar a memória. O pipeline é a utilização de instruções baseada em ciclos, isto é, uma instrução só pode ser executada quando a anterior tiver sido finalizada. É a realização de tarefas por estágios. 6.2 Arquitetura CISC No início da década de 1970, havia uma grande limitação nos computadores por causa dos processadores que não suportavam executar determinados softwares. O desenvolvedor tinha que ter domínio sobre as funções do processador e desenvolver seus programas baseados nele, ou seja, escrever seus programas em linguagem de máquina pura; isso limitava as funcionalidades do software. Para que as instruções escritas em linguagem de alto nível pudessem ser convertidas em Assembly, necessitar-se-ia de compiladores mais fáceis de escrever. O que pouparia tempo e esforço para os programadores, reduzindo os custos com o desenvolvimento de softwares, e tornaria o código mais compacto, economizando espaço na memória. Em razão disso, foi desenvolvida uma nova técnica pelos projetistas de hardware, a microprogramação, possibilitando que instruções sejam inseridas diretamente no hardware, permitindo, assim, que o programador do software não se preocupe com o equipamento e desenvolva aplicações independentes. Por outro lado, o excesso de microcódigos sobrecarregava os processadores, tornando-os mais lentos. Isso faz com que o processador necessite de maior velocidade de processamento, e essa velocidade fica atrelada ao meio físico, ou seja, não há como aumentar a velocidade sem aumentar o tamanho do processador. A arquitetura CISC (Complex Instruction Set Computer) tem como alguns dos seus objetivos: • simplificar a escrita dos compiladores; • reduzir os custos de desenvolvimento de software; • melhorar a semântica entre linguagens de programação e a máquina; e-Tec Brasil/CEMF/Unimontes 58 • m elhorar a compactação do código; • facilitar a utilização de linguagem de alto nível; e • possibilitar a detecção e a correção de erros. A arquitetura RISC fez parte de algumas das gerações anteriores de processadores, como os da família M680x0, da Motorola, e os da ix86, da Intel. 6.3 Comparativo entre as arquiteturas RISC e CISC Não há como afirmar qual das duas arquiteturas é a melhor. Esse é um assunto que causa polêmica entre os desenvolvedores de softwares e os projetistas de hardware. Na década de 1980, a tendência era a utilização de processadores com instruções complexas, ou seja, o CISC. Entretanto, essa ideia não agradava a todos e alguns fabricantes preferiram utilizar instruções simples, seguindo o padrão RISC . As duas arquiteturas são contrárias; a CISC utiliza estruturas complexas e a RISC executa apenas poucas instruções simples. Os processadores baseados na tecnologia RISC possuem poucos circuitos internos, podendo receber frequências mais altas. Além disso, a baixa quantidade de instruções possibilita a otimização dos processos, resultando em melhor desempenho. Os processadores baseados na arquitetura CISC são capazes de executar diversas instruções distintas, porém poucas são recorrentes. Desse modo, várias instruções não são executadas ou são executadas poucas vezes. É fato que algumas tarefas são mais bem executadas em CISC do que em RISC, pois elas contêm mais instruções, possibilitando uma maior diversidade de recursos. Com isso, foram desenvolvidos os processadores híbridos, que são criados em arquitetura CISC, mas utilizam recursos da arquitetura RISC. O inverso também pode ocorrer. Atualmente, a maior parte dos processadores é híbrida. Exemplos: MIPS R10000, HP PA-8000 e os processadores da família x86 (Pentium II, Pentium III e AMD Athlon). Uma vantagem da arquitetura CISC é que muitas instruções são armazenadas no processador, facilitando o trabalho dos programadores. Já na arquitetura RISC, o programador tem disponível somente as instruções simples, sendo necessário combinar várias instruções para executar tarefas mais complexas. Os processadores CISC costumam utilizar modos de endereçamento de memória para facilitar a tarefa dos compiladores. Isso facilita a execução dos mais diversos tipos de operação dos dados armazenados na memória. Como visto anteriormente, os processadores RISC utilizam dois tipos de instruções: LOAD/STORE, para acesso à memória, utilizando somente o modo direto, e demais operações matemáticas do processador. Essas ins- Arquitetura de Computadores 59 e-Tec Brasil/CEMF/Unimontes truções fazem com que o desenvolvimento do projeto e a implementação das instruções sejam simplificados, reduzindo os ciclos de via de dados. O pipelining é utilizado em larga escala na arquitetura RISC. Isso facilita a execução das instruções referentes ao ciclo de via de dados. Outra comparação entre os processadores RISC e CISC é a de que os processadores RISC possuem instruções simples e tendem a consumir mais instruções em um programa do que os processadores CISC. Resumo Nesta aula, foi possível aprender que: • a arquitetura RISC (Reduced Instruction Set Computer), utiliza um conjunto reduzido de instruções em linguagem de máquina; • microprogramação é a técnica responsável por possibilitar a introdução de funções específicas diretamente no hardware; • a primeira máquina moderna a utilizar a arquitetura RISC foi o IBM 801, por volta de 1975. Em 1980, foram criados processadores com arquitetura RISC, batizados como RISC I, RISC II e MIPS; • a arquitetura RISC favorece a utilização de conjuntos simples e pequenos de instruções, além de alta velocidade de execução; • a arquitetura RISC trabalha com três princípios: ciclo da via de dados, LOAD/STORE e pipeline; • a arquitetura CISC (Complex Instruction Set Computer) possui poucos circuitos internos, podendo receber frequências altas. Além disso, a baixa quantidade de instruções possibilita a otimização dos processos, resultando em melhor desempenho; • os processadores CISC costumam utilizar modos de endereçamento de memória para facilitar a tarefa dos compiladores. Isso facilita a execução dos mais diversos tipos de operação dos dados armazenados na memória; • uma vantagem da arquitetura CISC é que muitas instruções são armazenadas no processador, facilitando o trabalho dos programadores; • os processadores baseados na arquitetura CISC são capazes de executar diversas instruções distintas, porém, poucas são recorrentes. e-Tec Brasil/CEMF/Unimontes 60 Atividades de aprendizagem 1) Aponte e comente as principais diferenças entre as arquiteturas RISC e CISC. 2) Foi possível definir qual das duas arquiteturas é a melhor? Justifique a sua resposta. 3) O que é a microprogramação e qual a sua contribuição para a criação da arquitetura CISC? 4) O que são processadores híbridos e qual a sua aplicação? 5) A que se refere o ciclo da via de dados, o LOAD/STORE e o pipeline? 6) Identifique as principais vantagens da arquitetura CISC e da arquitetura RISC. Arquitetura de Computadores 61 e-Tec Brasil/CEMF/Unimontes Referências ASCENCIO, A. F. G.; Campos, E. A. V. - Fundamentos da Programação de Computadores - Algoritmos, Pascal, C/C++ e Java. São Paulo: Prentice Hall, 2007. BORGES; Álvaro, LOPES; Danilo, RIBEIRO; Romildo. RISC Vs. CISC. Disponível em: <http://knol.google.com/k/arquitetura-risc-e-arquitetura-cisc#> Acessado em 28 de janeiro de 2011. FIDELI; Daniel Ricardo, POLLONI; Enrico G. Franco, PERES; Fernando Eduardo. Introdução à Ciência da Computação. São Paulo: Pioneira Thomson Learning, 2003. NORTON; Peter. Desenvolvendo o PC e o OS/2. Rio de Janeiro: Campus, 1991. TANENBAUM; Andrew. Sistemas Operacionais Modernos. 2. Ed. São Paulo: Prentice Hall, 2003. VELLOSO, Fernando de Castro. Informática: conceitos básicos. 4. ed. rev. atual. Rio de Janeiro: Campus, 1999. ROESLER; Valter. Características da transmissão. Disponível em <http://www. podre.com.br/trabalhos/GraduacaoComputacaoUnisinos/2004-1/Comunicacao_de_dados/aula03/tp_concbasicos.pdf> Acessado em 12 de fevereiro de 2011. e-Tec Brasil/CEMF/Unimontes 62 Currículo do professor conteudista Gilmara Aparecida de Freitas Dias Graduada em Tecnologia em Informática pela Universidade Estadual de Minas Gerais - UEMG -, Passos, em 2001. Especialista em Administração de Sistemas de Informação pela Universidade Federal de Lavras, no ano de 2005. Mestranda em Administração pela FEAD, Belo Horizonte. Atuou como analista de sistemas e gerente de TI da Fadenor (Fundação de Apoio ao Desenvolvimento de Ensino Superior do Norte de Minas), de fevereiro de 2005 a julho de 2008. De julho de 2008 até o presente momento, atua como coordenadora de informática da Facomp (Faculdade de Computação de Montes Claros). Desde agosto de 2009, coordena os laboratórios de informática do Centro de Ciências Exatas e Tecnológicas da Unimontes (Universidade Estadual de Montes Claros). Professora do ensino superior desde 2005, lecionando disciplinas relacionadas à computação, como Administração de Sistemas de Informação, Gestão da Informação, Administração de Redes, Segurança de Redes, Algoritmos I, Algoritmos II, Introdução à Ciência da Computação, Sistemas Operacionais, Modelagem de Dados, Análise e Desenvolvimento de Sistemas Estruturados, Administração e Controle de Sistemas, Segurança e Auditoria de Sistemas, Informática da Educação, Tópicos Avançados em Sistemas de Informação, Lógica Matemática, Fundamentos de Sistemas de Informação, Sistemas de Apoio à Decisão, Bancos de Dados, Informática Aplicada à Contabilidade, Introdução à Informática, Informática I, Informática II. Professora na Unimontes, vinculada ao Departamento de Ciências da Computação desde outubro de 2005. Atualmente, lecionando as disciplinas de Modelagem de Dados, Fundamentos em Sistemas de Informação e Administração de Redes. Professora das Faculdades Integradas Pitágoras de Montes Claros desde agosto de 2006. Atualmente, lecionando a disciplina de Introdução à Ciência da Computação, no curso de Engenharia de Produção. Professora da Facomp, lecionando, atualmente, as disciplinas: Sistemas Operacionais II, Sistemas de Apoio à Decisão, Administração e Controle de Sistemas, Segurança e Auditoria de Sistemas e Gestão da informação, nos cursos de Análise e Desenvolvimento de Sistemas e Sistemas de Informação. De fevereiro a dezembro de 2008, foi professora na FACIT (Faculdade de Ciência e Tecnologia de Montes Claros), lecionando as disciplinas de Algoritmos e Programação de Computadores I, Algoritmos e Programação de Computadores II e Bancos de Dados. Tem experiência na área de Ciência da Computação, com ênfase em Sistemas de Informação, atuando principalmente nas áreas de: Administração e Controle de Sistemas de Informação, Engenharia de Software, Análise de Sistemas e Administração de Redes e de Sistemas. Arquitetura de Computadores 63 e-Tec Brasil/CEMF/Unimontes e-Tec Brasil/CEMF/Unimontes Escola Técnica Aberta do Brasil