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
Download

Arquitetura de Computadores - EAD Unimontes