AULA 2 - Microprocessadores - Graduação: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
 
(35 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Introdução à arquitetura e organização de computadores=
=Arquitetura Básica de um Computador=
 
;APRESENTAÇÃO
 
:O HARDWARE é o equipamento físico, representado no computador por suas partes mecânicas, eletrônicas e magnéticas. A máquina em si é tudo o que se pode tocar como: gabinete, placa mãe, placa de vídeo, placa de áudio, fonte de energia, SSD, memória RAM, dispositivos de E/S e CPU. Desta forma, entendemos como computador qualquer tipo de dispositivo (eletrônico) capaz de receber uma entrada e que retorna uma saída após realizar uma série de operações com base nos valores recebidos e armazenados.
 
 
;OBJETIVOS
 
:Compreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados.
 
 
;METODOLOGIA
 
:A aula será expositiva e dialogada utilizando apresentação de texto base na Internet.
 
;INTRODUÇÃO
 
:Para ser considerado um computador ele precisa ter processador, memória e dispositivos de entrada e/ou saída, que podem ser utilizados de modo eficiente na solução dos tipos de problemas, os quais possuem uma grande complexidade ou um grande volume de dados. Os computadores eletrônicos digitais recebem essa denominação porque são desenvolvidos a partir de circuitos eletrônicos e são capazes de realizar cálculos, operações lógicas e movimentação de dados entre o processador, seus dispositivos de armazenamento e de entrada e saída. Existem vários tipos de computadores. Os principais tipos de computadores disponíveis atualmente são (TANENBAUM, 2007):
 


==Objetivos==
==Objetivos==
Linha 5: Linha 24:
Compreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados.
Compreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados.


==Computador==
==Definição de Computador==


Como computador entendemos qualquer tipo de dispositivo capaz de receber uma entrada e que retorna uma saída após realizar uma série de operações com base nos valores recebidos e armazenados.  
Como computador entendemos qualquer tipo de dispositivo capaz de receber uma entrada e que retorna uma saída após realizar uma série de operações com base nos valores recebidos e armazenados.  
Linha 11: Linha 30:
Para ser considerado um computador ele precisa ter processador, memória e dispositivos de entrada e/ou saída, que podem ser utilizados de modo eficiente na solução dos tipos de problemas, os quais possuem uma grande complexidade ou um grande volume de dados. Os computadores eletrônicos digitais recebem essa denominação porque são desenvolvidos a partir de circuitos eletrônicos e são capazes de realizar cálculos, operações lógicas e movimentação de dados entre o processador, seus dispositivos de armazenamento e de entrada e saída.
Para ser considerado um computador ele precisa ter processador, memória e dispositivos de entrada e/ou saída, que podem ser utilizados de modo eficiente na solução dos tipos de problemas, os quais possuem uma grande complexidade ou um grande volume de dados. Os computadores eletrônicos digitais recebem essa denominação porque são desenvolvidos a partir de circuitos eletrônicos e são capazes de realizar cálculos, operações lógicas e movimentação de dados entre o processador, seus dispositivos de armazenamento e de entrada e saída.


Existem vários tipos de computadores. Uma das formas de classificá-los é por meio das seguintes categorias:
Existem vários tipos de computadores. Os principais tipos de computadores disponíveis atualmente são (TANENBAUM, 2007):
 
 
===Notebooks===
Computadores portáteis. Geralmente de pequeno tamanho e baixo consumo, para que possam ser mantidos mais tempo por bateria recarregável. São computadores completos, mas com dimensões reduzidas e limitações quanto ao tamanho da tela, teclado, conexões com periféricos e capacidade de expansão.
 
Nessa categoria, também podem ser enquadrados os laptops, ''smartphones'', os ''tablets'', os PDAs (''Personal Digital Assistant'') e os netbooks.


*Notebooks: computadores portáteis. Geralmente de pequeno tamanho e baixo consumo, para que possam ser mantidos mais tempo por bateria recarregável.
[[imagem: MIPnotebook.png|center]]
[[imagem: MIPnotebook.png|center]]
[[imagem: MIPultrabook.png|center]]
[[imagem: MIPultrabook.png|center]]


* Desktop: Computadores de baixo-custo e com desempenho razoável para um usuário "comum".
=== Desktop ===
Computadores de baixo-custo e com desempenho razoável para um usuário "comum", ou residencial. Podem ser desde computadores baratos, utilizados principalmente para jogos, como computadores mais potentes, utilizados em escolas, empresas ou universidades. No topo dos modelos de computadores pessoais, estão as chamadas estações de trabalho, que nada mais são do que um computador pessoal com grande poder de processamento.
 
[[imagem: MIPdesktop2.png|center]]
[[imagem: MIPdesktop2.png|center]]
[[imagem: MIPworkstation.png|center]]
=== Servidor === Máquinas projetadas para ter um desempenho considerado bom para uma aplicação muito grande e complexa ou então para um número muito grande de operações mais simples. Alguns servidores são simples computadores de Desktop melhorados. Entretanto, existem também aqueles que possuem arquiteturas muito mais sofisticadas que contam com dezenas ou até mesmo centenas de processadores. Os servidores, normalmente, são desenvolvidos para suportar um número maior de processadores, mais conexões de rede,  mais espaço de armazenamento em disco e seus componentes permitem que o mesmo fique ligado de forma ininterrupta.


* Servidor: Máquinas projetadas para ter um desempenho considerado bom para uma aplicação muito grande e complexa ou então para um número muito grande de operações mais simples. Alguns servidores são simples computadores de Desktop melhorados. Entretanto, existem também aqueles que possuem arquiteturas muito mais sofisticadas que contam com dezenas ou até mesmo centenas de processadores.
[[imagem: MIPservidor.png|center]]
[[imagem: MIPservidor.png|center]]
[[imagem: MIPservidor2.png|center]]
[[imagem: MIPservidor2.png|center]]
[[imagem: MIPservidor3.png|center]]
[[imagem: MIPservidor3.png|center]]


* [https://pt.wikipedia.org/wiki/Supercomputador Supercomputador]: Computadores com capacidade de processamento superior. São utilizados para aplicações militares, de segurança e/ou científicas.
 
=== Cluster === 
Conjunto de estações de trabalho ou [https://pt.wikipedia.org/wiki/Cluster cluster] são vários computadores pessoais ou estações de trabalho, conectados por uma rede de alto desempenho, executando um software especial que permite a todas as máquinas trabalharem juntas em uma única tarefa, como se fosse um único supercomputador.
 
[[imagem: MIPcluster1.png|center]]
[[imagem: MIPcluster2.png|center]]
 
=== ''Mainframes'' ===
São grandes computadores, descendentes diretos dos computadores da década de 1960. Eles podem manipular e processar um grande volume de dados e ter milhares de conexões simultâneas. Seu uso é adequado para empresas que há décadas trabalham com programas dessa natureza como os bancos, por exemplo.
 
[[imagem: MIPmainframe.png|center]]
 
=== [https://pt.wikipedia.org/wiki/Supercomputador Supercomputador]===
Computadores com capacidade de processamento superior e grande capacidade de memória, para aplicações que exigem cálculos complexos e tarefas intensivas. São utilizados para aplicações militares, de segurança e/ou científicas. São construídos com milhares de processadores interconectados por um barramento específico.
 
[[imagem: MIPsupercomputador.png|center]]
[[imagem: MIPsupercomputador.png|center]]


* Sistemas Embarcados: Possuem um uso dedicado à uma única tarefa e normalmente vem embutidos em outros aparelhos como celulares, microondas, elevadores ou veículos. Possuem uma Entrada/Saída muito simples.
===Sistemas Embarcados/microcontrolados===
Possuem um uso dedicado à uma única tarefa e normalmente vem embutidos em outros aparelhos como celulares, microondas, elevadores ou veículos. Possuem uma Entrada/Saída muito simples.
[[imagem: MIPsistembarc.png|center]]
[[imagem: MIPsistembarc.png|center]]
[[imagem: MIPsistembarc2png|center]]
[[imagem: MIPsistembarc2png|center]]
=== [https://pt.wikipedia.org/wiki/Identifica%C3%A7%C3%A3o_por_radiofrequ%C3%AAncia Computador descartável]===
São computadores desenvolvidos num único chip e são usados em chips de RFID (''Radio-Frequency IDentification'') em etiquetas de produtos e em cartões de felicitações para, normalmente, tocar uma música. Esses dispositivos custam menos de US$ 1,00.
[[imagem: MIPrfid.png|center]]
=== [https://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem Computação nas nuvens] (''cloud computing'') ===
São recursos remotos de armazenamento de dados e capacidade de computação, em grandes centros de dados, os quais ficam  disponíveis para muitos utilizadores, via Internet. Nuvens em grande escala, predominantes hoje em dia, geralmente têm funções distribuídas em vários locais dos servidores centrais.
[[imagem: MIPcloudcomput.png|center]]
Num sistema operacional disponível na Internet, a partir de qualquer computador e em qualquer lugar, pode-se ter acesso a informações, arquivos e programas num sistema único, independente de plataforma.
O requisito mínimo é um computador compatível com os recursos disponíveis na Internet. O PC torna-se apenas um chip ligado à Internet — a "grande nuvem" de computadores — sendo necessários somente os dispositivos de entrada (teclado, rato/mouse) e saída (monitor).
=== Tablets ===
Um tablet é um dispositivo eletrónico portátil que funciona como um computador, mas com um formato mais leve e com uma tela sensível ao toque (''touchscreen'') como principal meio de interação.
Ele se posiciona entre um smartphone e um portátil, permitindo navegar na internet, assistir a vídeos, ler livros eletrónicos, jogar e usar aplicações diversas.
[[imagem: MIPtablets.png|center]]
===''Chromebooks''===
Um ''Chromebook'' é um tablet que utiliza o sistema operativo ''ChromeOS'', desenvolvido pelo Google.
Ele é projetado para ser rápido, seguro e fácil de usar, com foco em tarefas ''online'' e na integração com o ecossistema de serviços do Google, como o Google Drive e o Google Fotos.
Ao contrário dos notebooks tradicionais, o Chromebook prioriza a nuvem para o armazenamento de ficheiros e o uso de aplicações, o que resulta em dispositivos mais leves e com bom desempenho, ideais para navegação, estudo e tarefas básicas.
[[imagem: MIPchromebook.png|center]]
=Organização de Computadores=
Hoje em dia há muitos tipos de computadores e diversas arquiteturas. Elas são frutos de muitos estudos, pesquisas e avanços tecnológicos. Mas todos computadores compartilham uma arquitetura comum. Essa arquitetura é o que separa um computador de uma calculadora de bolso, de um aparelho de televisão ou um relógio de pulso. Essa arquitetura é apresentada na figura abaixo:
[[imagem: MIParqbasica.png|center]]
<center> Figura 1. Arquitetura básica de um computador </center>
Todo computador possui uma '''Unidade Central de Processamento''', ou, do inglês, Central Processing Unit (CPU) e uma '''Memória Principal'''. Todos os dados a serem processados pela CPU, para operações lógicas e aritméticas, precisam estar na memória.
Da memória os dados são transferidos para a CPU através de fios paralelos de comunicação, chamados de '''Barramento de Dados'''.
Entretando, a CPU não toma decisões por si própria. Ela não sabe que dados deve trazer da memória, muito menos que operação executar com eles. Para isso, ela precisa que '''instruções''', também armazenadas na memória, sejam trazidas para a CPU através do Barramento de Endereço. Cada instrução informa para a CPU que operação ela deve executar, com quais dados e o que ela deve fazer com o resultado da operação.
Para poder se localizar, a memória é organizada em '''endereços'''. Todos os dados e as instruções são localizadas através desses endereços. Cada instrução indica para a CPU que dados devem ser transferidos e processados através dos endereços desses dados.
Esse endereço é transferido para a memória pela CPU através do '''Barramento de Endereço'''.
A memória localiza o tal dado e o transfere para a CPU via '''Barramento de Dados'''.
As instruções são desenvolvidas pelo programador, através de '''linguagens de programação'''. As ferramentas de compilação transformam os programas escritos em linguagens de alto nível, como C, Java e Phython, em instruções de máquina, que são finalmente copiadas para a memória no momento em que precisam ser executadas. Cada instrução é armazenada em um endereço diferente da memória.
Na execução normal, a CPU passa para a memória, via Barramento de Endereço, o endereço da primeira instrução do programa, a memória transfere a instrução pelo Barramento de Instrução, a CPU a executa e, em seguida, solicita a instrução do endereço seguinte. Assim, os programas são executados sempre de forma sequencial, a não ser que uma instrução especial solicite que ela salte para uma instrução que não seja a consecutiva. Isso é o caso quando há instruções condicionais (como o ``se” ou ``if”), instruções de repetição (como ``while” e o ``for”), ou chamadas a sub-programas, ou mesmo, por ordem do Sistema Operacional, para que o programa pare de executar para que um outro tome seu lugar.
As memórias são, quase sempre, muito mais lentas do que as CPUs. Isso exigiu, ao longo dos anos, que as CPUs possuíssem também uma porção interna de memória muito rápida, chamada '''Memória Cache'''. A tecnologia que permite essas memórias serem mais rápidas, tornam-as também muito caras.
Por isso que sua capacidade geralmente é muito limitada. Para acelerar ainda mais, elas são instaladas dentro das CPUs. Todos os dados e instruções transferidos da Memória Principal para a CPU são salvos também na Cache. Como a Cache não é capaz de guardar todos os dados da Memória Principal, apenas os dados mais recentes transferidos para a CPU permanecem na Cache. Técnicas muito avançadas são aplicadas para que se consiga, no máximo possível, manter os dados mais importantes daquele instante na Memória Cache.
A CPU também é responsável por enviar sinais de controle aos outros dispositivos do computador, como '''periféricos''', dispositivos de entrada e saída, e memórias externas. Esse sinais são enviados quando uma instrução dá ordem para tal. Por exemplo, quando uma instrução pede que uma mensagem sem impressa na tela, a CPU, ao receber e executar essa instrução, envia para o controle do monitor que imprima na tela a mensagem contida o endereço que também foi passada pela instrução.
É esse comportamento que diferencia um computador de outros dispositivos eletrônicos mais simples. A essência da CPU não é muito diferente de uma calculadora de bolso. Ela executa operações lógicas e aritméticas. Entretanto, no projeto do computador, o papel do homem foi substituído pela programação. Todas instruções das tarefas que a CPU precisa executar são armazenadas na memória e, a partir de então, a CPU pode trabalhar sem qualquer interferência externa. Com a programação, a CPU pode também executar tarefas diversas, desde simulações, jogos, tocar músicas e vídeos etc. Simplificando, o computador é uma máquina programável e de propósito geral.


Os princípios estudados em Arquitetura de Computadores são fundamentais para se projetar máquinas realmente eficientes.
Os princípios estudados em Arquitetura de Computadores são fundamentais para se projetar máquinas realmente eficientes.
Linha 36: Linha 154:
A arquitetura de computadores se refere ao comportamento de um sistema computacional visível para o programador, ou seja, aos aspectos relacionados com a execução lógica de um programa. A Arquitetura de Computadores é o projeto conceitual e fundamental da estrutura operacional de um sistema computacional. Ela é o estudo dos requisitos necessários para que um computador funcione e de como organizar os diversos componentes para obter melhores desempenhos. Saber como o computador funciona nos permitirá entender sua capacidade (e incapacidade) de resolver problemas, sobre como programá-los da melhor forma possível, como deixar o computador e os dados contidos neles mais seguros, como ganhar desempenho e o que faz ele ficar tão lento às vezes a ponto de querermos destruí-lo.  
A arquitetura de computadores se refere ao comportamento de um sistema computacional visível para o programador, ou seja, aos aspectos relacionados com a execução lógica de um programa. A Arquitetura de Computadores é o projeto conceitual e fundamental da estrutura operacional de um sistema computacional. Ela é o estudo dos requisitos necessários para que um computador funcione e de como organizar os diversos componentes para obter melhores desempenhos. Saber como o computador funciona nos permitirá entender sua capacidade (e incapacidade) de resolver problemas, sobre como programá-los da melhor forma possível, como deixar o computador e os dados contidos neles mais seguros, como ganhar desempenho e o que faz ele ficar tão lento às vezes a ponto de querermos destruí-lo.  


[[imagem: MIParqbasica.png|center]]


Já o termo '''organização de computadores''' se refere às unidades estruturais e seus relacionamentos lógicos e eletrônicos (STALLINGS, 2010).
Já o termo '''organização de computadores''' se refere às unidades estruturais e seus relacionamentos lógicos e eletrônicos (STALLINGS, 2010), que permitem que uma determinada arquitetura seja implementada.


Os sistemas digitais, em seu nível '''mais baixo''', representam as informações somente através de dígitos binários.  
Os sistemas digitais, em seu nível '''mais baixo''', representam as informações somente através de dígitos binários.  
Linha 45: Linha 162:




===Hardware===
==Hardware==


É a parte física do computador formada por componentes e circuitos eletrônicos.
É a parte física do computador formada por componentes e circuitos eletrônicos.
Linha 53: Linha 170:
Desta forma, o computador digital é um sistema digital binário, pois a informação é representada nele somente através dos dígitos binários 0 e 1.
Desta forma, o computador digital é um sistema digital binário, pois a informação é representada nele somente através dos dígitos binários 0 e 1.


Um computador é capaz de realizar basicamente quatro operações (STALLINGS, 2010):
Um computador é capaz de realizar basicamente trÊs operações básicas (STALLINGS, 2010):


# Processamento de dados.
# Processamento de dados.
# Armazenamento de dados.
# Armazenamento de dados.
# Movimentação de dados  
# Movimentação de dados  


A movimentação de dados é a transferência de um dado de um ponto para outro do computador. Pode ser de um endereço de memória para outro, de um dispositivo de entrada para a memória, ou da memória para um dispositivo de saída. O processamento de dados ocorre quando a CPU recebe um determinado dado e executa uma operação que o modifica de alguma forma. Já as operações de armazenamento ocorrem quando a CPU precisa registrar um dado em algum local específico, como salvar um dado no disco rígido, ou num pendrive, ou mesmo na Memória Principal.
A movimentação de dados é a transferência de um dado de um ponto para outro do computador. Pode ser de um endereço de memória para outro, de um dispositivo de entrada para a memória, ou da memória para um dispositivo de saída. O processamento de dados ocorre quando a CPU recebe um determinado dado e executa uma operação que o modifica de alguma forma. Já as operações de armazenamento ocorrem quando a CPU precisa registrar um dado em algum local específico, como salvar um dado no disco rígido, ou num pendrive, ou mesmo na Memória Principal.
Linha 65: Linha 183:
O computador precisa também ser capaz de movimentar os dados entre ele e o mundo exterior. Um sistema computacional contém dispositivos que são usados como origem ou destino dos dados, denominados [https://pt.wikipedia.org/wiki/Perif%C3%A9rico '''periféricos''']. Quando os dados são recebidos ou enviados a esses periféricos o processo é conhecido como entrada/saída (E/S).
O computador precisa também ser capaz de movimentar os dados entre ele e o mundo exterior. Um sistema computacional contém dispositivos que são usados como origem ou destino dos dados, denominados [https://pt.wikipedia.org/wiki/Perif%C3%A9rico '''periféricos''']. Quando os dados são recebidos ou enviados a esses periféricos o processo é conhecido como entrada/saída (E/S).


[[imagem: perifericos.png|center]]
[[imagem: perifericos1.png|center]]


==Camadas de Abstração==
==Camadas de Abstração==
Linha 71: Linha 189:
Para compreender o funcionamento do computador, precisamos entender várias camadas de abstração diferente.
Para compreender o funcionamento do computador, precisamos entender várias camadas de abstração diferente.


A camada mais baixa de todas é aquela formada por transistores, tensão e corrente elétrica.  
[[imagem: MIPcamadasabstr.png|center]]
 
 
Um computador com n níveis pode ser  visto  como n diferentes máquinas virtuais, cada uma com  a sua linguagem de máquina.
 
Um programador de nível n não  precisa  conhecer os níveis  inferiores.
 
Nível 0 ou '''nível de lógica digital''' é o hardware verdadeiro da máquina, cujos circuitos executam os programas em linguagem de máquina de  nível 1. Não existe aqui o  conceito de programa  como  uma seqüência  de instruções  a  serem executadas. Neste  nível, os  objetos  são  denominados portas lógicas - todas elas compostas por transistores. Neste nível estuda-se como criar estruturas mais complexas combinando-se as diversas portas como AND, OR e NOT para criar estruturas como multiplexadores, flip-flops e somadores. Neste estágio pode-se usar linguagens como o Verilog ou VHDL para programar circuitos.
 
Nível 1 ou '''nível de microprogramação''' é o verdadeiro nível de máquina, havendo um programa denominado '''microprograma''', cuja função é interpretar as instruções de nível 2. A instrução neste nível é denominada '''microinstrução'''.


Uma camada acima, estão as portas lógicas - todas elas compostas por transistores. Neste nível estuda-se como criar estruturas mais complexas combinando-se as diversas portas como AND, OR e NOT para criar estruturas como multiplexadores, flip-flops e somadores. Neste estágio pode-se usar linguagens como o Verilog ou VHDL para programar circuitos. Abaixo vemos desenhos que representam várias portas lógicas:
Nível 2 ou '''nível convencional de máquina''' é o primeiro nível de máquina  virtual. A linguagem de máquina deste nível é comumente denominada  '''linguagem de máquina'''. As instruções são executadas interpretativamente pelo microprograma. Em máquinas que não tenham o nível de microprogramação, as instruções de nível convencional de máquina são executadas diretamente pelos circuitos.


Logic-gate-index.png
Nível 3 ou '''nível de sistema operacional''' apresenta a maior parte das instruções em linguagem de nível  2, um conjunto de novas instruções, organização diferente da memória, capacidade de execução  de dois ou mais programas  em paralelo. As novas facilidades são realizadas por  um interpretador denominado sistema operacional, em execução no nível 2. As instruções de nível 3 idênticas às de nível 2 são executadas diretamente pelo microprograma.


Subindo mais um nível de abstração, começamos a lidar com estruturas mais complexas como registradores e unidades lógicas aritméticas - todas compostas por muitos flip-flops, somadores e multiplexadores. Vemos como todas essas estruturas realmente geram as instruções de cada máquina e como cada instrução funciona. É neste nível que costuma trabalhar um Arquiteto. Este será o nível que será abordado ao longo deste Wiki-livro. Abaixo mostramos a imagem de uma Unidade Lógica Aritmética - estrutura usada por computadores para realizar cálculos:
Esta camada combina as instruções da camada anterior para realizar comandos mais sofisticados, como as operações da lingüagem C e como coordenar o funcionamento de um sistema operacional por meio de interrupções e outros recursos. A imagem abaixo é um diagrama que representa o [https://pt.wikipedia.org/wiki/N%C3%BAcleo_(sistema_operacional) ''Kernel''] de um Sistema Operacional sendo usado como um meio de comunicação entre o Software e o Hardware:


ALU Block Diagram.png
[[imagem: MIPkernel.png|center]]


Um nível além, estuda-se como combinar as instruções da camada anterior para realizar comandos mais sofisticados como as operações da lingüagem C e como coordenar o funcionamento de um sistema operacional por meio de interrupções e outros recursos. A imagem abaixo é um diagrama que representa o Kernel de um Sistema Operacional sendo usado como um meio de comunicação entre o Software e o Hardware:
Nível 4 ou '''Nível da [http://br.ccm.net/faq/2707-introducao-a-linguagem-de-montagem linguagem de montagem]''' (de máquina) consiste de  uma forma simbólica  para uma  linguagem de nível inferior. Esse é o nível onde
as instruções são interpretadas e executadas pelo processador. Os programas em linguagem de montagem são traduzidos para uma  linguagem de nível 2 ou 3, e, então, interpretados pela máquina apropriada. O programa que executa a  tradução é denominado '''montador'''.


Kernel Layout.svg
Acima desta camada, está o estudo do funcionamento de funções de bibliotecas, APIs e a programação de aplicativos e programas de computador simples.


Acima desta camada, está o estudo do funcionamento de funções de bibliotecas, APIs e a programação de aplicativos e programas de computador simples.E finalmente, na camada de abstração mais superior está o funcionamento de um programa de computador do ponto de vista do usuário. Como utilizar um aplicativo já criado.
Nível 5 ou '''nível de linguagem orientada para problemas''' consiste de linguagem de alto-nível. Os programas escritos nessas linguagens são, normalmente, traduzidos  para o nível 3 ou 4 por tradutores conhecidos  como compiladores.




E finalmente, na camada de abstração mais superior está o funcionamento de um programa de computador, do ponto de vista do usuário. Também chamado Nível do usuário ou de aplicativo – nele o usuário interage com o computador usando programas como editores de texto, planilhas,
jogos ou programas que acessam a internet.




Os níveis 2 e 3 são sempre  interpretados, enquanto os níveis  4 e 5  são, geralmente, traduzidos.


As linguagens de máquina dos níveis 1, 2 e 3 são numéricas, ao passo que as dos níveis 4 e 5 são  simbólicas, contendo palavras e abreviaturas.


O hardware  é  constituído pelos circuitos eletrônicos e o software é constituído pelos programas. '''O ''firmware''''' consiste  no  software embutido  em dispositivos eletrônicos durante a fabricação.


Em muitos computadores, o '''microprograma''' está  em '''''firmware'''''.


Normalmente, analistas de sistema, programadores e desenvolvedores de software trabalham nas camadas mais altas de abstração, enquanto físicos, engenheiros eletrônicos e engenheiros eletricistas, nas mais baixas.


O computador é o responsável por processar os dados e transformá-los em informação, através da execução de instruções em linguagem de máquina (baixo nível) que o processador é capaz de executar.
==Software==


Para que um problema possa ser resolvido pelo computador, é necessário
Para que um problema possa ser resolvido pelo computador, é necessário
Linha 102: Linha 237:
usando uma linguagem de alto nível, que é mais fácil de ser escrita.  
usando uma linguagem de alto nível, que é mais fácil de ser escrita.  


Essa codificação transforma o algoritmo num programa (software).
Essa codificação transforma o algoritmo num programa, ou ''software''.


As principais etapas de um algoritmo para a obtenção de uma solução computacional
As principais etapas de um algoritmo para a obtenção de uma solução computacional
Linha 109: Linha 244:
# Elaboração do algoritmo computacional referente ao problema.
# Elaboração do algoritmo computacional referente ao problema.
# Codificação do algoritmo numa linguagem de alto nível (programa fonte).
# Codificação do algoritmo numa linguagem de alto nível (programa fonte).
# Tradução ou compilação do programa fonte para o código correspondente
# Tradução ou compilação do programa fonte para o código correspondente em linguagem de máquina (programa objeto).
em linguagem de máquina (programa objeto).
# Execução do programa objeto (executável) pelo computador.
# Execução do programa objeto (executável) pelo computador.


Linha 120: Linha 254:
por um programa específico que está em execução (interpretador). Este, por sua vez, executa a instrução correspondente, através do hardware do computador.
por um programa específico que está em execução (interpretador). Este, por sua vez, executa a instrução correspondente, através do hardware do computador.


===Linguagem de máquina===
É a comunicação em forma de códigos binários referente aos comandos que os circuitos
eletrônicos de um processador específico podem executar. Também conhecida como ''Assembly''.
No processo de compilação, um programa fonte, escrito em linguagem de alto nível, é transformado em instruções básicas de um processador. Essas instruções básicas, que na verdade são mesmo códigos binários, apresentados para os programadores na forma hexadecimal, ou de código (''mnemônicos'') são executadas diretamente pelos circuitos eletrônicos do computador.


linguagem de máquina
É a comunicação em forma
de códigos binários referente
aos comandos que os circuitos
eletrônicos do processador
podem executar.
software
São os programas com sequência
de instruções que serão
interpretadas e executadas pelo
processador.
Aula 1 - Introdução à arquitetura de computadores 17 e-Tec Brasil
No processo de compilação, um programa fonte, escrito em linguagem de
alto nível, é transformado em instruções básicas de um processador. Essas
instruções básicas são executadas diretamente pelos circuitos eletrônicos do
computador.
Um programa escrito numa linguagem de baixo nível é composto de um
Um programa escrito numa linguagem de baixo nível é composto de um
conjunto de instruções simples executadas pelo processador. Para que um
conjunto de instruções simples executadas pelo processador. Para que um
Linha 142: Linha 266:
na memória.
na memória.


==Modelo de Von Neumann==
Os computadores digitais convencionais baseiam-se no modelo idealizado
por Von Neumann, em 1946, baseado em cinco componentes principais (MURDOCCA; HEURING, 2000):
* Unidade de entrada – provê instruções e dados ao sistema.
* Unidade de memória – armazena os dados do sistema.
* Unidade lógica e aritmética – processa os dados.
* Unidade de controle – controla a execução das instruções e o processamento dos dados.
* Unidade de saída – apresenta os resultados dos dados processados.


[[imagem: fig063_MI1022806.png|center|border]]
<center>
Figura 19 - Modelo de computador digital proposto por Von Neumann (1946).
</center>




1.2 O modelo de Von Neumann
Os computadores digitais convencionais baseiam-se no modelo idealizado
por Von Neumann (Figura 1.2), em 1946, baseado em cinco componentes
principais (MURDOCCA; HEURING, 2000):
• Unidade de entrada – provê instruções e dados ao sistema.
• Unidade de memória – armazena os dados do sistema.
• Unidade lógica e aritmética – processa os dados.
• Unidade de controle – controla a execução das instruções e o processamento
dos dados.
• Unidade de saída – apresenta os resultados dos dados processados.
Figura 1.2: Modelo Von Neumann de um computador digital
Fonte: CTISM, adaptado de Murdocca; Heuring, 2000
e-Tec Brasil 18 Arquitetura de Computadores
O aspecto mais importante do modelo de Von Neumann é o programa armazenado
O aspecto mais importante do modelo de Von Neumann é o programa armazenado
na memória do computador, juntamente com os dados a serem
na memória do computador, juntamente com os dados a serem processados.
processados.
Após o programa ser armazenado na memória, em uma série de endereços
Após o programa ser armazenado na memória, em uma série de endereços
consecutivos, o processador inicia a execução do programa. O primeiro
consecutivos, o processador inicia a execução do programa. O primeiro
endereço de um programa contém, necessariamente, uma instrução para o
endereço de um programa contém, necessariamente, uma instrução para o
processador.
processador.
Para realizar o processamento, a unidade de controle busca a instrução que
Para realizar o processamento, a unidade de controle busca a instrução que
estiver armazenada no primeiro endereço de memória onde se encontra o
estiver armazenada no primeiro endereço de memória onde se encontra o
programa. Em seguida, essa instrução é decodificada, ou seja, o processador
programa.  
 
Em seguida, essa instrução é decodificada, ou seja, o processador
define o código de operação daquela instrução em particular.
define o código de operação daquela instrução em particular.
O passo seguinte é a execução da instrução, seguido de outro passo, o armazenamento
O passo seguinte é a execução da instrução, seguido de outro passo, o armazenamento
do resultado, caso seja necessário. Nesse processo de busca,
do resultado, caso seja necessário. Nesse processo de busca,
decodificação e execução, os dados e as instruções são armazenados dentro
decodificação e execução, os dados e as instruções são armazenados dentro
do processador em registradores. Este ciclo se repetirá até que a instrução a
do processador em registradores.  
 
Este ciclo se repetirá até que a instrução a
ser executada seja a de encerrar o programa.
ser executada seja a de encerrar o programa.
1.3 O modelo de barramento do sistema
 
Atualmente,o modelo de Von Neumann foi aperfeiçoado para outro tipo de
==Arquiteturas Harvard==
barramento de sistema, formado por (MURDOCCA; HEURING, 2000):
 
a) CPU (Central Processing Unit) – é a Unidade Central de Processamento
Semelhantemente às arquiteturas de von Neumann, as máquinas Harvard utilizam unidades de controle, unidades de entrada e saída, etc. A diferença é que as máquinas Harvard possuem memórias distintas para dados e programas.
ou processador, composta pela unidade de controle, unidade lógica e
 
aritmética e registradores.
Como são unidades separadas, o desempenho destas máquinas é superior, uma vez que o processador pode mandar buscar uma instrução, enquanto executa outra.
b) Memória – armazena os dados e as instruções.
 
c) Entrada e Saída (E/S) – agrupa as unidades de entrada e saída numa
[[imagem: MIPharvard.png|center]]
única unidade.
 
Esses componentes se comunicam através de um barramento do sistema,
==Modelo de barramento do sistema==
composto por:
 
a) Barramento de dados – transporta a informação, movendo dados entre
Atualmente,o modelo de Von Neumann foi aperfeiçoado para outro tipo de modelo, chamado de modelo de barramento de sistema, formado por (MURDOCCA; HEURING, 2000):
os componentes do sistema.
 
Aula 1 - Introdução à arquitetura de computadores 19 e-Tec Brasil
# CPU (Central Processing Unit) – é a Unidade Central de Processamento ou processador, composta pela unidade de controle, unidade lógica e aritmética e registradores.
b) Barramento de endereços – identifica para onde a informação está
# Memória – armazena os dados e as instruções.
sendo enviada.
# Entrada e Saída (E/S) – agrupa as unidades de entrada e saída numa única unidade.
c) Barramento de controle – descreve a forma como a informação está
 
sendo transmitida.
Esses componentes se comunicam através de um '''barramento do sistema''', composto por:
Os barramentos são um conjunto de fios agrupados por função. Um barramento
 
de dados de 64 bits tem 64 fios individuais, onde cada fio transporta
* Barramento de dados – transporta a informação, movendo dados entre os componentes do sistema.
um bit da informação. Já um barramento de endereços de 32 bits, tem em
* Barramento de endereços – identifica para onde a informação está sendo enviada.
cada fio o bit necessário para determinar o endereço onde vai ler ou escrever
* Barramento de controle – descreve a forma como a informação está sendo transmitida.
a informação e pode acessar qualquer endereço de 0 a 4 GB, pois 32 bits
 
permitem acessar 4.294.967.296 endereços distintos. Já o barramento de
Os barramentos são um conjunto de fios de cobre, ou ouro, agrupados por função.  
controle possui informações que determinam se a operação será de leitura
 
Um barramento de dados de 64 bits tem 64 fios individuais, onde cada fio transporta
um bit da informação.  
 
Um barramento de endereços de 32 bits, tem em cada fio o bit necessário para determinar o endereço onde vai ler ou escrever a informação e pode acessar qualquer endereço de 0 a 4 GB, pois 32 bits permitem acessar 4.294.967.296 endereços distintos.  
 
Já o barramento de controle possui informações que determinam se a operação será de leitura
ou escrita e, se será na memória ou nos dispositivos de E/S.
ou escrita e, se será na memória ou nos dispositivos de E/S.
A Figura 1.3 apresenta o modelo de barramento do sistema de um computador.
 
1.4 Sinal de clock
[[imagem: MIPsystembus.png|center]]
Para coordenar as atividades e a comunicação entre os componentes básicos
 
que compõem o sistema de um computador existe um componente eletrônico
==Sistema de computador típico==
que gera um sinal de clock, o qual alterna entre as tensões altas e
 
baixas (0 s e 1 s).
bit
É a menor unidade num sistema
digital e pode assumir o valor
0 ou 1.
e-Tec Brasil 20 Arquitetura de Computadores
A frequência do clock é medida em hertz (Hz) ou ciclos por segundo. Um sinal
de 1 Hz alterna valores altos e baixos, uma vez em cada segundo. Já um sinal
de 1 MHz alterna esses valores um milhão de vezes por segundo.
O período de clock é o tempo decorrido entre duas repetições sucessivas do
clock. O período é o inverso da frequência. Uma frequência de 1 MHz tem
um período de clock de 0,000001 s ou 1 µs (1 microssegundo).
Um computador com processador cuja frequência é de 2 GHz consegue realizar
2 bilhões de ciclos por segundo, e pode-se dizer, que ele consegue executar
2 bilhões de instruções por segundo. Cada instrução demora 0,0000000005
segundos ou 0,5 nanossegundos para ser executada. Na prática, um processador
não consegue executar uma instrução por ciclo, pois as instruções
são complexas e, na maioria das vezes, elas necessitam vários ciclos para sua
execução completa, mas como eles podem executar mais de uma instrução
simultaneamente, ele consegue executar um pouco menos de 2 bilhões de
instruções por segundo.
Num sistema digital, o período do sinal de clock é a menor unidade de tempo
perceptível. Em sistemas digitais, todas as ações ocorrem em intervalos de
tempo que são múltiplos inteiros do período do clock da máquina.
1.5 Níveis das máquinas
Um sistema computacional é um sistema complexo que pode ser visto sob
diferentes perspectivas ou níveis, desde o nível mais alto (do usuário) até o
nível mais baixo (dos transistores).
Um computador é projetado como uma série de níveis, e cada um deles é
construído sobre seus antecessores. Nesse modelo, cada nível representa
uma abstração do subsequente. Ao utilizar um determinado nível não há a
necessidade de saber como o nível abaixo funciona, apenas é necessário saber
o que se pode fazer com as funcionalidades que o nível oferece.
Os computadores modernos são organizados normalmente em vários níveis
(Figura 1.4). A seguir é apresentada uma organização em sete níveis (MURDOCCA;
HEURING, 2000):
Aula 1 - Introdução à arquitetura de computadores 21 e-Tec Brasil
Figura 1.4: Níveis de máquina num computador moderno
Fonte: CTISM, adaptado de Murdocca; Heuring, 2000
a) Nível do usuário ou programa aplicativo – nele o usuário interage
com o computador usando programas como editores de texto, planilhas,
jogos ou programas que acessam a internet.
b) Nível da linguagem de alto nível – nesse nível o programador desenvolve
os programas, aplicativos e sistemas através de uma linguagem de
programação de alto nível como C, Java ou Pascal (Delphi).
c) Nível da linguagem de montagem (de máquina) – esse é o nível onde
as instruções são interpretadas e executadas pelo processador. Os programas
desenvolvidos em linguagens de alto nível são traduzidos para
uma linguagem de montagem ou Assembler, que apresenta um relacionamento
direto com as instruções que o processador consegue executar.
d) Nível de controle – aqui a unidade de controle, que está dentro do processador,
efetua as devidas transferências de dados entre os registradores,
memória e dispositivos de entrada e saída. Essa transferência é feita
através de sinais de controle por um circuito lógico.
e-Tec Brasil 22 Arquitetura de Computadores
e) Nível de unidades funcionais – nesse nível os registradores internos
da CPU, a unidade lógica e aritmética e, a memória do computador é
organizada sob a forma de unidades funcionais, de acordo com a função
que desempenham para realizar as transferências de dados entre estas
unidades funcionais.
f) Portas lógicas – as portas lógicas implementam o nível mais baixo de
funcionamento de um computador. As unidades funcionais do computador
são desenvolvidas usando portas lógicas.
g) Transistores e fios – este é o nível mais baixo do computador formado
por componentes eletrônicos e fios. As portas lógicas são implementadas
usando transistores e fios de conexão.
1.6 Sistema de computador típico
Um computador de mesa (desktop) típico apresenta uma configuração com
Um computador de mesa (desktop) típico apresenta uma configuração com
um gabinete contendo a fonte de alimentação, uma placa-mãe com processador,
um gabinete contendo a fonte de alimentação, uma placa-mãe com processador,
Linha 277: Linha 347:
rígido (HD – Hard Drive), unidade de disco ótico (DVD ou Blu-Ray), conectados
rígido (HD – Hard Drive), unidade de disco ótico (DVD ou Blu-Ray), conectados
a um monitor (LCD ou LED), um teclado, um mouse e uma caixa de som. A
a um monitor (LCD ou LED), um teclado, um mouse e uma caixa de som. A
Figura 1.5 apresenta um computador de mesa típico.
 
Figura 1.5: Computador típico
[[imagem: MIPcomputtip.png|center]]
Fonte: CTISM
 
Portas lógicas
==Sinal de clock==
São componentes eletrônicos
 
básicos usados em circuitos
Para coordenar as atividades e a comunicação entre os componentes básicos que compõem o sistema de um computador existe um componente eletrônico que gera um sinal de clock, o qual alterna entre as tensões altas e baixas,
eletrônicos que implementam as
 
operações lógicas básicas para a
A frequência do clock é medida em hertz (Hz) ou ciclos por segundo. Um sinal de 1 Hz alterna valores altos e baixos, uma vez em cada segundo. Já um sinal de 1 MHz alterna esses valores um milhão de vezes por segundo.
eletrônica digital.
 
Aula 1 - Introdução à arquitetura de computadores 23 e-Tec Brasil
O período de clock é o tempo decorrido entre duas repetições sucessivas do clock. O período é o inverso da frequência. Uma frequência de 1 MHz tem um período de clock de 0,000001 s ou 1 µs (1 microssegundo).
1.7 Tipos de computadores
 
Os principais tipos de computadores disponíveis atualmente são (TANENBAUM,
Um computador com processador cuja frequência é de 2 GHz consegue realizar 2 bilhões de ciclos por segundo, e pode-se dizer, que ele consegue executar 2 bilhões de instruções por segundo. Cada instrução demora 0,0000000005 segundos ou 0,5 nanossegundos para ser executada.
2007):
 
a) Computador descartável – são computadores desenvolvidos num único
Na prática, um processador não consegue executar uma instrução por ciclo, pois as instruções são complexas e, na maioria das vezes, elas necessitam vários ciclos para sua execução completa, mas como eles podem executar mais de uma instrução simultaneamente, ele consegue executar um pouco menos de 2 bilhões de instruções por segundo.
chip e são usados em chips de RFID (Radio-Frequency IDentification) em
 
etiquetas de produtos e em cartões de felicitações para, normalmente,
Num sistema digital, o período do sinal de clock é a menor unidade de tempo perceptível. Em sistemas digitais, todas as ações ocorrem em intervalos de tempo que são múltiplos inteiros do período do clock da máquina.
tocar uma música. Esses dispositivos custam menos de US$ 1,00.
 
b) Microcontrolador – são computadores embutidos em dispositivos como
eletrodomésticos, carros, relógios, telefones, equipamentos médicos e
militares. São computadores pequenos desenvolvidos para atender uma
necessidade específica.
c) Computador de jogos – são os vídeo games. São computadores normais,
com capacidade de som e recursos gráficos especiais, mas com
software limitado e pouca capacidade de expansão.
d) Computador portátil – são computadores completos, mas com dimensões
reduzidas e limitações quanto ao tamanho da tela, teclado, conexões
com periféricos e capacidade de expansão. Nessa categoria, também
se enquadram os smartphones, os tablets, os PDAs (Personal Digital
Assistant) e os netbooks.
e) Computador pessoal – são os computadores convencionais usados tanto
nas residências quanto nas empresas para as mais diversas atividades,
incluindo jogos, acesso à internet e aplicativos. Os computadores pessoais
podem ser os PC (Personal Computer) compatíveis produzidos por
inúmeras empresas no mundo todo, ou ainda, os Mac da Apple. No topo
dos modelos de computadores pessoais, estão as chamadas estações de
trabalho, que nada mais são do que um computador pessoal com grande
poder de processamento.
f) Servidores – são computadores pessoais ou estações de trabalho que
são utilizados como servidores de rede. Os servidores, normalmente, são
desenvolvidos para suportar um número maior de processadores, mais
conexões de rede, mais espaço de armazenamento em disco e seus componentes
permitem que o mesmo fique ligado de forma ininterrupta.
e-Tec Brasil 24 Arquitetura de Computadores
g) Conjunto de estações de trabalho ou cluster – são vários computadores
pessoais ou estações de trabalho, conectados por uma rede de alto
desempenho, executando um software especial que permite a todas as
máquinas trabalharem juntas em uma única tarefa, como se fosse um
único supercomputador.
h) Mainframes – são grandes computadores, descendentes diretos dos
computadores da década de 1960. Eles podem manipular e processar um
grande volume de dados e ter milhares de conexões simultâneas. Seu uso
é adequado para empresas que há décadas trabalham com programas
dessa natureza como os bancos, por exemplo.
i) Supercomputador – é um computador com altíssimo desempenho de
processamento e grande capacidade de memória, para aplicações que
exigem cálculos complexos e tarefas intensivas. São construídos com milhares
de processadores interconectados por um barramento específico.
1.8 Unidades métricas nos sistemas
computacionais
Os computadores digitais processam a informação através de bits. Um bit
é a menor unidade num sistema digital e pode assumir o valor 0 ou 1. O
agrupamento de 8 bits forma um byte e pode armazenar um valor numérico
de 0 a 255 ou representar uma letra.
Para medir o tamanho das memórias, discos, arquivos e banco de dados a
unidade básica de medida é o byte e os seus múltiplos são 210. O Quadro 1.1
apresenta as unidades de medidas de armazenamento e a quantidade de bytes.
Quadro 1.1: Unidades de medida de armazenamento (em bytes)
Expoente Unidade Abreviatura Valor explícito
20 byte 1 B 1 byte ou 8 bits
210 kilobyte 1 KB 1.024 bytes
220 megabyte 1 MB 1.048.576 bytes ou 1024 KB
230 gigabyte 1 GB 1.073.741.824 bytes ou 1024 MB
240 terabyte 1 TB 1.099.511.627.776 bytes ou 1024 GB
250 petabyte 1 PB 1.125.899.906.842.624 bytes ou 1024 TB
260 exabyte 1 EB 1.152.921.504.606.846.976 bytes ou 1024 PB
270 zetabyte 1 ZB 1.180.591.620.717.411.303.424 bytes ou 1024 EB
280 yotabyte 1 YB 1.208.925.819.614.629.174.706.176 bytes ou 1024 ZB
Fonte: Autores
O maior supercomputador, em
junho de 2012, é o Sequoia,
desenvolvido pela IBM com
1.572.864 processadores,
em 98.304 CPUs Power BQC
16 cores a 1.60 GHz, com
1.572.864 GB de memória, com
sistema operacional Linux.
Para saber mais sobre a
lista com os 500 maiores
supercomputadores, acesse:
http://www.top500.org
Aula 1 - Introdução à arquitetura de computadores 25 e-Tec Brasil
Para medir a taxa de transferência de informações, as unidades de medida
usadas são baseadas na quantidade de bits por segundo e seus múltiplos
são 103
. O Quadro 1.2 apresenta as unidades de medidas de transferência
de dados e a quantidade de bits por segundo.
Quadro 1.2: Unidades de medida de transferência (em bits por segundo)
Expoente Unidade Abreviatura Valor explícito
100 bit 1 bps 1 bit por segundo
103 kilobit 1 Kbps 1 000 bits por segundo
106 megabit 1 Mbps 1 000 000 bits por segundo
109 gigabit 1 Gbps 1 000 000 000 bits por segundo
1012 terabit 1 Tbps 1 000 000 000 000 bits por segundo
1015 petabit 1 Pbps 1 000 000 000 000 000 bits por segundo
1018 exabit 1 Ebps 1 000 000 000 000 000 000 bits por segundo
1021 zetabit 1 Zbps 1 000 000 000 000 000 000 000 bits por segundo
1024 yotabit 1 Ybps 1 000 000 000 000 000 000 000 000 bits por segundo
Fonte: Autores
Alguns dispositivos apresentam a sua taxa de transferência em bytes por
segundo. Observe que deve haver uma conversão dividindo por 8 a quantidade
em bits por segundo. O Quadro 1.3 a seguir apresenta a equivalência entre
bits por segundo (bps ou bits/s) e bytes por segundo (Bps ou B/s).
Quadro 1.3: Equivalência de bits por segundo para bytes por segundo
Expoente Unidade Abreviatura Valor nominal Equivalência
bits/s
20 byte por seg. 1 B/s 1 byte/s 8 bp/s
210 kilobyte por seg 1 KB/s 1024 bytes/s 8 Kbp/s
220 megabyte por seg 1 MB/s 1.048.576 bytes/s 8 Mbp/s
230 gigabyte por seg 1 GB/s 1.073.741.824 bytes/s 8 Gbp/s
Fonte: Autores
Para medir o desempenho dos computadores e o tempo de execução das
instruções, as unidades de medida usadas são baseadas na frequência dos
computadores em hertz, seus múltiplos são 103
. O tempo é medido em segundos
e seus múltiplos são 10-3. O Quadro 1.4 apresenta as unidades de medidas
de frequência e o Quadro 1.5 apresenta as unidades de tempo de execução.
e-Tec Brasil 26 Arquitetura de Computadores
Quadro 1.4: Unidades de medida de frequência (em hertz)
Expoente Unidade Abreviatura Valor explícito
100 hertz 1 Hz 1 Hz
103 kilohertz 1 kHz 1 000 Hz
106 megahertz 1 MHz 1 000 000 Hz
109 gigahertz 1 GHz 1 000 000 000 Hz
1012 terahertz 1 THz 1 000 000 000 000 Hz
1015 petahertz 1 PHz 1 000 000 000 000 000 Hz
Fonte: Autores
Quadro 1.5: Unidades de medida de tempo de execução (em segundos)
Expoente Unidade Abreviatura Valor explícito
100 segundo 1 s 1 s
10-3 milissegundo 1 ms 0,001 s
10-6 microssegundo 1 µs 0,000 001 s
10-9 nanossegundo 1 ns 0,000 000 001 s
10-12 picossegundo 1 ps 0,000 000 000 000 001 s
10-15 femtossegundo 1 fs 0,000 000 000 000 000 001 s
Fonte: Autores
Para medir o tamanho dos transistores que formam um processador ou um
chip são usadas as unidades micrômetro ou micron (µm) e nanômetro (nm).
Para se ter a ideia do tamanho, nos processadores mais modernos, um transistor
mede 22 nm, enquanto que um fio de cabelo tem espessura de 70 a
80 µm, ou seja, um transistor é aproximadamente 3.500 vezes menor que a
espessura de um fio de cabelo.
O Quadro 1.6 apresenta as unidades de medida de tamanho para os transistores:
Quadro 1.6: Unidades de medida de tamanho para transistores
Expoente Unidade Abreviatura Valor explícito
100 metro 1 m 1 m ou 1 000 mm
10-3 milímetro 1 mm 0,001 m ou 1 mm
10-6 micrometro 1 µm 0,001 mm
10-9 nanômetro 1 nm 0,000 001 mm
Fonte: Autores
Aula 1 - Introdução à arquitetura de computadores 27 e-Tec Brasil
Resumo
Nesta aula, você conheceu os principais conceitos relacionados com os componentes
de um computador, o modo como eles interagem e como a informação
é processada. Viu também que o processador consegue processar
uma informação que está na memória principal e que todas as informações
são transformadas em 0s e 1s para serem manipuladas na unidade lógica e
aritmética da CPU. Por fim, aprendeu que existem diferentes tipos de computadores,
de acordo com sua finalidade e conheceu as diferentes unidades
métricas usadas em sistemas computacionais.
Atividades de aprendizagem
1. O que os computadores atuais têm em comum com os computadores
das décadas passadas?
2. O que é necessário para um equipamento ser considerado um computador?
3. Qual a diferença entre um computador, uma calculadora e um DVD player?
-------------
-------------
{| border="1" cellpadding="5" cellspacing="0"  
{| border="1" cellpadding="5" cellspacing="0"  

Edição atual tal como às 13h43min de 26 de agosto de 2025

Arquitetura Básica de um Computador

APRESENTAÇÃO
O HARDWARE é o equipamento físico, representado no computador por suas partes mecânicas, eletrônicas e magnéticas. A máquina em si é tudo o que se pode tocar como: gabinete, placa mãe, placa de vídeo, placa de áudio, fonte de energia, SSD, memória RAM, dispositivos de E/S e CPU. Desta forma, entendemos como computador qualquer tipo de dispositivo (eletrônico) capaz de receber uma entrada e que retorna uma saída após realizar uma série de operações com base nos valores recebidos e armazenados.


OBJETIVOS
Compreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados.


METODOLOGIA
A aula será expositiva e dialogada utilizando apresentação de texto base na Internet.
INTRODUÇÃO
Para ser considerado um computador ele precisa ter processador, memória e dispositivos de entrada e/ou saída, que podem ser utilizados de modo eficiente na solução dos tipos de problemas, os quais possuem uma grande complexidade ou um grande volume de dados. Os computadores eletrônicos digitais recebem essa denominação porque são desenvolvidos a partir de circuitos eletrônicos e são capazes de realizar cálculos, operações lógicas e movimentação de dados entre o processador, seus dispositivos de armazenamento e de entrada e saída. Existem vários tipos de computadores. Os principais tipos de computadores disponíveis atualmente são (TANENBAUM, 2007):


Objetivos

Compreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados.

Definição de Computador

Como computador entendemos qualquer tipo de dispositivo capaz de receber uma entrada e que retorna uma saída após realizar uma série de operações com base nos valores recebidos e armazenados.

Para ser considerado um computador ele precisa ter processador, memória e dispositivos de entrada e/ou saída, que podem ser utilizados de modo eficiente na solução dos tipos de problemas, os quais possuem uma grande complexidade ou um grande volume de dados. Os computadores eletrônicos digitais recebem essa denominação porque são desenvolvidos a partir de circuitos eletrônicos e são capazes de realizar cálculos, operações lógicas e movimentação de dados entre o processador, seus dispositivos de armazenamento e de entrada e saída.

Existem vários tipos de computadores. Os principais tipos de computadores disponíveis atualmente são (TANENBAUM, 2007):


Notebooks

Computadores portáteis. Geralmente de pequeno tamanho e baixo consumo, para que possam ser mantidos mais tempo por bateria recarregável. São computadores completos, mas com dimensões reduzidas e limitações quanto ao tamanho da tela, teclado, conexões com periféricos e capacidade de expansão.

Nessa categoria, também podem ser enquadrados os laptops, smartphones, os tablets, os PDAs (Personal Digital Assistant) e os netbooks.

MIPnotebook.png
MIPultrabook.png

Desktop

Computadores de baixo-custo e com desempenho razoável para um usuário "comum", ou residencial. Podem ser desde computadores baratos, utilizados principalmente para jogos, como computadores mais potentes, utilizados em escolas, empresas ou universidades. No topo dos modelos de computadores pessoais, estão as chamadas estações de trabalho, que nada mais são do que um computador pessoal com grande poder de processamento.

MIPdesktop2.png
MIPworkstation.png

=== Servidor === Máquinas projetadas para ter um desempenho considerado bom para uma aplicação muito grande e complexa ou então para um número muito grande de operações mais simples. Alguns servidores são simples computadores de Desktop melhorados. Entretanto, existem também aqueles que possuem arquiteturas muito mais sofisticadas que contam com dezenas ou até mesmo centenas de processadores. Os servidores, normalmente, são desenvolvidos para suportar um número maior de processadores, mais conexões de rede, mais espaço de armazenamento em disco e seus componentes permitem que o mesmo fique ligado de forma ininterrupta.

MIPservidor.png
MIPservidor2.png
MIPservidor3.png


Cluster

Conjunto de estações de trabalho ou cluster são vários computadores pessoais ou estações de trabalho, conectados por uma rede de alto desempenho, executando um software especial que permite a todas as máquinas trabalharem juntas em uma única tarefa, como se fosse um único supercomputador.

MIPcluster1.png
MIPcluster2.png

Mainframes

São grandes computadores, descendentes diretos dos computadores da década de 1960. Eles podem manipular e processar um grande volume de dados e ter milhares de conexões simultâneas. Seu uso é adequado para empresas que há décadas trabalham com programas dessa natureza como os bancos, por exemplo.

MIPmainframe.png

Supercomputador

Computadores com capacidade de processamento superior e grande capacidade de memória, para aplicações que exigem cálculos complexos e tarefas intensivas. São utilizados para aplicações militares, de segurança e/ou científicas. São construídos com milhares de processadores interconectados por um barramento específico.

MIPsupercomputador.png

Sistemas Embarcados/microcontrolados

Possuem um uso dedicado à uma única tarefa e normalmente vem embutidos em outros aparelhos como celulares, microondas, elevadores ou veículos. Possuem uma Entrada/Saída muito simples.

MIPsistembarc.png

Computador descartável

São computadores desenvolvidos num único chip e são usados em chips de RFID (Radio-Frequency IDentification) em etiquetas de produtos e em cartões de felicitações para, normalmente, tocar uma música. Esses dispositivos custam menos de US$ 1,00.

MIPrfid.png

Computação nas nuvens (cloud computing)

São recursos remotos de armazenamento de dados e capacidade de computação, em grandes centros de dados, os quais ficam disponíveis para muitos utilizadores, via Internet. Nuvens em grande escala, predominantes hoje em dia, geralmente têm funções distribuídas em vários locais dos servidores centrais.

MIPcloudcomput.png

Num sistema operacional disponível na Internet, a partir de qualquer computador e em qualquer lugar, pode-se ter acesso a informações, arquivos e programas num sistema único, independente de plataforma.

O requisito mínimo é um computador compatível com os recursos disponíveis na Internet. O PC torna-se apenas um chip ligado à Internet — a "grande nuvem" de computadores — sendo necessários somente os dispositivos de entrada (teclado, rato/mouse) e saída (monitor).

Tablets

Um tablet é um dispositivo eletrónico portátil que funciona como um computador, mas com um formato mais leve e com uma tela sensível ao toque (touchscreen) como principal meio de interação.

Ele se posiciona entre um smartphone e um portátil, permitindo navegar na internet, assistir a vídeos, ler livros eletrónicos, jogar e usar aplicações diversas.

MIPtablets.png

Chromebooks

Um Chromebook é um tablet que utiliza o sistema operativo ChromeOS, desenvolvido pelo Google.

Ele é projetado para ser rápido, seguro e fácil de usar, com foco em tarefas online e na integração com o ecossistema de serviços do Google, como o Google Drive e o Google Fotos.

Ao contrário dos notebooks tradicionais, o Chromebook prioriza a nuvem para o armazenamento de ficheiros e o uso de aplicações, o que resulta em dispositivos mais leves e com bom desempenho, ideais para navegação, estudo e tarefas básicas.

MIPchromebook.png

Organização de Computadores

Hoje em dia há muitos tipos de computadores e diversas arquiteturas. Elas são frutos de muitos estudos, pesquisas e avanços tecnológicos. Mas todos computadores compartilham uma arquitetura comum. Essa arquitetura é o que separa um computador de uma calculadora de bolso, de um aparelho de televisão ou um relógio de pulso. Essa arquitetura é apresentada na figura abaixo:


MIParqbasica.png
Figura 1. Arquitetura básica de um computador


Todo computador possui uma Unidade Central de Processamento, ou, do inglês, Central Processing Unit (CPU) e uma Memória Principal. Todos os dados a serem processados pela CPU, para operações lógicas e aritméticas, precisam estar na memória.


Da memória os dados são transferidos para a CPU através de fios paralelos de comunicação, chamados de Barramento de Dados.


Entretando, a CPU não toma decisões por si própria. Ela não sabe que dados deve trazer da memória, muito menos que operação executar com eles. Para isso, ela precisa que instruções, também armazenadas na memória, sejam trazidas para a CPU através do Barramento de Endereço. Cada instrução informa para a CPU que operação ela deve executar, com quais dados e o que ela deve fazer com o resultado da operação.


Para poder se localizar, a memória é organizada em endereços. Todos os dados e as instruções são localizadas através desses endereços. Cada instrução indica para a CPU que dados devem ser transferidos e processados através dos endereços desses dados.


Esse endereço é transferido para a memória pela CPU através do Barramento de Endereço.


A memória localiza o tal dado e o transfere para a CPU via Barramento de Dados.


As instruções são desenvolvidas pelo programador, através de linguagens de programação. As ferramentas de compilação transformam os programas escritos em linguagens de alto nível, como C, Java e Phython, em instruções de máquina, que são finalmente copiadas para a memória no momento em que precisam ser executadas. Cada instrução é armazenada em um endereço diferente da memória.


Na execução normal, a CPU passa para a memória, via Barramento de Endereço, o endereço da primeira instrução do programa, a memória transfere a instrução pelo Barramento de Instrução, a CPU a executa e, em seguida, solicita a instrução do endereço seguinte. Assim, os programas são executados sempre de forma sequencial, a não ser que uma instrução especial solicite que ela salte para uma instrução que não seja a consecutiva. Isso é o caso quando há instruções condicionais (como o ``se” ou ``if”), instruções de repetição (como ``while” e o ``for”), ou chamadas a sub-programas, ou mesmo, por ordem do Sistema Operacional, para que o programa pare de executar para que um outro tome seu lugar.


As memórias são, quase sempre, muito mais lentas do que as CPUs. Isso exigiu, ao longo dos anos, que as CPUs possuíssem também uma porção interna de memória muito rápida, chamada Memória Cache. A tecnologia que permite essas memórias serem mais rápidas, tornam-as também muito caras.


Por isso que sua capacidade geralmente é muito limitada. Para acelerar ainda mais, elas são instaladas dentro das CPUs. Todos os dados e instruções transferidos da Memória Principal para a CPU são salvos também na Cache. Como a Cache não é capaz de guardar todos os dados da Memória Principal, apenas os dados mais recentes transferidos para a CPU permanecem na Cache. Técnicas muito avançadas são aplicadas para que se consiga, no máximo possível, manter os dados mais importantes daquele instante na Memória Cache.

A CPU também é responsável por enviar sinais de controle aos outros dispositivos do computador, como periféricos, dispositivos de entrada e saída, e memórias externas. Esse sinais são enviados quando uma instrução dá ordem para tal. Por exemplo, quando uma instrução pede que uma mensagem sem impressa na tela, a CPU, ao receber e executar essa instrução, envia para o controle do monitor que imprima na tela a mensagem contida o endereço que também foi passada pela instrução.


É esse comportamento que diferencia um computador de outros dispositivos eletrônicos mais simples. A essência da CPU não é muito diferente de uma calculadora de bolso. Ela executa operações lógicas e aritméticas. Entretanto, no projeto do computador, o papel do homem foi substituído pela programação. Todas instruções das tarefas que a CPU precisa executar são armazenadas na memória e, a partir de então, a CPU pode trabalhar sem qualquer interferência externa. Com a programação, a CPU pode também executar tarefas diversas, desde simulações, jogos, tocar músicas e vídeos etc. Simplificando, o computador é uma máquina programável e de propósito geral.


Os princípios estudados em Arquitetura de Computadores são fundamentais para se projetar máquinas realmente eficientes.

A arquitetura de computadores se refere ao comportamento de um sistema computacional visível para o programador, ou seja, aos aspectos relacionados com a execução lógica de um programa. A Arquitetura de Computadores é o projeto conceitual e fundamental da estrutura operacional de um sistema computacional. Ela é o estudo dos requisitos necessários para que um computador funcione e de como organizar os diversos componentes para obter melhores desempenhos. Saber como o computador funciona nos permitirá entender sua capacidade (e incapacidade) de resolver problemas, sobre como programá-los da melhor forma possível, como deixar o computador e os dados contidos neles mais seguros, como ganhar desempenho e o que faz ele ficar tão lento às vezes a ponto de querermos destruí-lo.


Já o termo organização de computadores se refere às unidades estruturais e seus relacionamentos lógicos e eletrônicos (STALLINGS, 2010), que permitem que uma determinada arquitetura seja implementada.

Os sistemas digitais, em seu nível mais baixo, representam as informações somente através de dígitos binários.

Num nível mais alto, estes dígitos codificados formam diferentes combinações capazes de representar qualquer tipo de informação.


Hardware

É a parte física do computador formada por componentes e circuitos eletrônicos.

O que diferencia um computador de um equipamento eletrônico é a capacidade de poder executar qualquer programa que seja carregado em sua memória. Esta capacidade é dada pelo processador.

Desta forma, o computador digital é um sistema digital binário, pois a informação é representada nele somente através dos dígitos binários 0 e 1.

Um computador é capaz de realizar basicamente trÊs operações básicas (STALLINGS, 2010):

  1. Processamento de dados.
  2. Armazenamento de dados.
  3. Movimentação de dados


A movimentação de dados é a transferência de um dado de um ponto para outro do computador. Pode ser de um endereço de memória para outro, de um dispositivo de entrada para a memória, ou da memória para um dispositivo de saída. O processamento de dados ocorre quando a CPU recebe um determinado dado e executa uma operação que o modifica de alguma forma. Já as operações de armazenamento ocorrem quando a CPU precisa registrar um dado em algum local específico, como salvar um dado no disco rígido, ou num pendrive, ou mesmo na Memória Principal.

A memória é um dispositivo eletrônico que tem a capacidade de armazenar essas informações e fornecê-las quando solicitadas.

O computador precisa também ser capaz de movimentar os dados entre ele e o mundo exterior. Um sistema computacional contém dispositivos que são usados como origem ou destino dos dados, denominados periféricos. Quando os dados são recebidos ou enviados a esses periféricos o processo é conhecido como entrada/saída (E/S).

Perifericos1.png

Camadas de Abstração

Para compreender o funcionamento do computador, precisamos entender várias camadas de abstração diferente.

MIPcamadasabstr.png


Um computador com n níveis pode ser visto como n diferentes máquinas virtuais, cada uma com a sua linguagem de máquina.

Um programador de nível n não precisa conhecer os níveis inferiores.

Nível 0 ou nível de lógica digital é o hardware verdadeiro da máquina, cujos circuitos executam os programas em linguagem de máquina de nível 1. Não existe aqui o conceito de programa como uma seqüência de instruções a serem executadas. Neste nível, os objetos são denominados portas lógicas - todas elas compostas por transistores. Neste nível estuda-se como criar estruturas mais complexas combinando-se as diversas portas como AND, OR e NOT para criar estruturas como multiplexadores, flip-flops e somadores. Neste estágio pode-se usar linguagens como o Verilog ou VHDL para programar circuitos.

Nível 1 ou nível de microprogramação é o verdadeiro nível de máquina, havendo um programa denominado microprograma, cuja função é interpretar as instruções de nível 2. A instrução neste nível é denominada microinstrução.

Nível 2 ou nível convencional de máquina é o primeiro nível de máquina virtual. A linguagem de máquina deste nível é comumente denominada linguagem de máquina. As instruções são executadas interpretativamente pelo microprograma. Em máquinas que não tenham o nível de microprogramação, as instruções de nível convencional de máquina são executadas diretamente pelos circuitos.

Nível 3 ou nível de sistema operacional apresenta a maior parte das instruções em linguagem de nível 2, um conjunto de novas instruções, organização diferente da memória, capacidade de execução de dois ou mais programas em paralelo. As novas facilidades são realizadas por um interpretador denominado sistema operacional, em execução no nível 2. As instruções de nível 3 idênticas às de nível 2 são executadas diretamente pelo microprograma.

Esta camada combina as instruções da camada anterior para realizar comandos mais sofisticados, como as operações da lingüagem C e como coordenar o funcionamento de um sistema operacional por meio de interrupções e outros recursos. A imagem abaixo é um diagrama que representa o Kernel de um Sistema Operacional sendo usado como um meio de comunicação entre o Software e o Hardware:

MIPkernel.png

Nível 4 ou Nível da linguagem de montagem (de máquina) consiste de uma forma simbólica para uma linguagem de nível inferior. Esse é o nível onde as instruções são interpretadas e executadas pelo processador. Os programas em linguagem de montagem são traduzidos para uma linguagem de nível 2 ou 3, e, então, interpretados pela máquina apropriada. O programa que executa a tradução é denominado montador.

Acima desta camada, está o estudo do funcionamento de funções de bibliotecas, APIs e a programação de aplicativos e programas de computador simples.

Nível 5 ou nível de linguagem orientada para problemas consiste de linguagem de alto-nível. Os programas escritos nessas linguagens são, normalmente, traduzidos para o nível 3 ou 4 por tradutores conhecidos como compiladores.


E finalmente, na camada de abstração mais superior está o funcionamento de um programa de computador, do ponto de vista do usuário. Também chamado Nível do usuário ou de aplicativo – nele o usuário interage com o computador usando programas como editores de texto, planilhas, jogos ou programas que acessam a internet.


Os níveis 2 e 3 são sempre interpretados, enquanto os níveis 4 e 5 são, geralmente, traduzidos.

As linguagens de máquina dos níveis 1, 2 e 3 são numéricas, ao passo que as dos níveis 4 e 5 são simbólicas, contendo palavras e abreviaturas.

O hardware é constituído pelos circuitos eletrônicos e o software é constituído pelos programas. O firmware consiste no software embutido em dispositivos eletrônicos durante a fabricação.

Em muitos computadores, o microprograma está em firmware.

Normalmente, analistas de sistema, programadores e desenvolvedores de software trabalham nas camadas mais altas de abstração, enquanto físicos, engenheiros eletrônicos e engenheiros eletricistas, nas mais baixas.

Software

Para que um problema possa ser resolvido pelo computador, é necessário criar um algoritmo computacional, composto por uma sequência de passos ou ações que determinam a solução do problema e a respectiva codificação, usando uma linguagem de alto nível, que é mais fácil de ser escrita.

Essa codificação transforma o algoritmo num programa, ou software.

As principais etapas de um algoritmo para a obtenção de uma solução computacional são:

  1. Elaboração do algoritmo computacional referente ao problema.
  2. Codificação do algoritmo numa linguagem de alto nível (programa fonte).
  3. Tradução ou compilação do programa fonte para o código correspondente em linguagem de máquina (programa objeto).
  4. Execução do programa objeto (executável) pelo computador.

Atualmente, a grande maioria dos programas é desenvolvida utilizando uma linguagem de alto nível, a qual é traduzida para linguagem de máquina através da interpretação ou da compilação do programa fonte.

Na interpretação, cada instrução expressa em linguagem de alto nível é interpretada por um programa específico que está em execução (interpretador). Este, por sua vez, executa a instrução correspondente, através do hardware do computador.

Linguagem de máquina

É a comunicação em forma de códigos binários referente aos comandos que os circuitos eletrônicos de um processador específico podem executar. Também conhecida como Assembly.

No processo de compilação, um programa fonte, escrito em linguagem de alto nível, é transformado em instruções básicas de um processador. Essas instruções básicas, que na verdade são mesmo códigos binários, apresentados para os programadores na forma hexadecimal, ou de código (mnemônicos) são executadas diretamente pelos circuitos eletrônicos do computador.

Um programa escrito numa linguagem de baixo nível é composto de um conjunto de instruções simples executadas pelo processador. Para que um computador possa executar um programa é necessário que ele esteja armazenado na memória.

Modelo de Von Neumann

Os computadores digitais convencionais baseiam-se no modelo idealizado por Von Neumann, em 1946, baseado em cinco componentes principais (MURDOCCA; HEURING, 2000):

  • Unidade de entrada – provê instruções e dados ao sistema.
  • Unidade de memória – armazena os dados do sistema.
  • Unidade lógica e aritmética – processa os dados.
  • Unidade de controle – controla a execução das instruções e o processamento dos dados.
  • Unidade de saída – apresenta os resultados dos dados processados.
Fig063 MI1022806.png

Figura 19 - Modelo de computador digital proposto por Von Neumann (1946).


O aspecto mais importante do modelo de Von Neumann é o programa armazenado na memória do computador, juntamente com os dados a serem processados. Após o programa ser armazenado na memória, em uma série de endereços consecutivos, o processador inicia a execução do programa. O primeiro endereço de um programa contém, necessariamente, uma instrução para o processador.

Para realizar o processamento, a unidade de controle busca a instrução que estiver armazenada no primeiro endereço de memória onde se encontra o programa.

Em seguida, essa instrução é decodificada, ou seja, o processador define o código de operação daquela instrução em particular.


O passo seguinte é a execução da instrução, seguido de outro passo, o armazenamento do resultado, caso seja necessário. Nesse processo de busca, decodificação e execução, os dados e as instruções são armazenados dentro do processador em registradores.

Este ciclo se repetirá até que a instrução a ser executada seja a de encerrar o programa.

Arquiteturas Harvard

Semelhantemente às arquiteturas de von Neumann, as máquinas Harvard utilizam unidades de controle, unidades de entrada e saída, etc. A diferença é que as máquinas Harvard possuem memórias distintas para dados e programas.

Como são unidades separadas, o desempenho destas máquinas é superior, uma vez que o processador pode mandar buscar uma instrução, enquanto executa outra.

MIPharvard.png

Modelo de barramento do sistema

Atualmente,o modelo de Von Neumann foi aperfeiçoado para outro tipo de modelo, chamado de modelo de barramento de sistema, formado por (MURDOCCA; HEURING, 2000):

  1. CPU (Central Processing Unit) – é a Unidade Central de Processamento ou processador, composta pela unidade de controle, unidade lógica e aritmética e registradores.
  2. Memória – armazena os dados e as instruções.
  3. Entrada e Saída (E/S) – agrupa as unidades de entrada e saída numa única unidade.

Esses componentes se comunicam através de um barramento do sistema, composto por:

  • Barramento de dados – transporta a informação, movendo dados entre os componentes do sistema.
  • Barramento de endereços – identifica para onde a informação está sendo enviada.
  • Barramento de controle – descreve a forma como a informação está sendo transmitida.

Os barramentos são um conjunto de fios de cobre, ou ouro, agrupados por função.

Um barramento de dados de 64 bits tem 64 fios individuais, onde cada fio transporta um bit da informação.

Um barramento de endereços de 32 bits, tem em cada fio o bit necessário para determinar o endereço onde vai ler ou escrever a informação e pode acessar qualquer endereço de 0 a 4 GB, pois 32 bits permitem acessar 4.294.967.296 endereços distintos.

Já o barramento de controle possui informações que determinam se a operação será de leitura ou escrita e, se será na memória ou nos dispositivos de E/S.

MIPsystembus.png

Sistema de computador típico

Um computador de mesa (desktop) típico apresenta uma configuração com um gabinete contendo a fonte de alimentação, uma placa-mãe com processador, memória, controlador de vídeo, áudio e rede, uma unidade de disco rígido (HD – Hard Drive), unidade de disco ótico (DVD ou Blu-Ray), conectados a um monitor (LCD ou LED), um teclado, um mouse e uma caixa de som. A

MIPcomputtip.png

Sinal de clock

Para coordenar as atividades e a comunicação entre os componentes básicos que compõem o sistema de um computador existe um componente eletrônico que gera um sinal de clock, o qual alterna entre as tensões altas e baixas,

A frequência do clock é medida em hertz (Hz) ou ciclos por segundo. Um sinal de 1 Hz alterna valores altos e baixos, uma vez em cada segundo. Já um sinal de 1 MHz alterna esses valores um milhão de vezes por segundo.

O período de clock é o tempo decorrido entre duas repetições sucessivas do clock. O período é o inverso da frequência. Uma frequência de 1 MHz tem um período de clock de 0,000001 s ou 1 µs (1 microssegundo).

Um computador com processador cuja frequência é de 2 GHz consegue realizar 2 bilhões de ciclos por segundo, e pode-se dizer, que ele consegue executar 2 bilhões de instruções por segundo. Cada instrução demora 0,0000000005 segundos ou 0,5 nanossegundos para ser executada.

Na prática, um processador não consegue executar uma instrução por ciclo, pois as instruções são complexas e, na maioria das vezes, elas necessitam vários ciclos para sua execução completa, mas como eles podem executar mais de uma instrução simultaneamente, ele consegue executar um pouco menos de 2 bilhões de instruções por segundo.

Num sistema digital, o período do sinal de clock é a menor unidade de tempo perceptível. Em sistemas digitais, todas as ações ocorrem em intervalos de tempo que são múltiplos inteiros do período do clock da máquina.


<< Página da disciplina < Introdução Aula 2 - Arquitetura básica O Processador >