Show
Índice
Arquitetura Básica de um ComputadorObjetivosCompreender os conceitos básicos relacionados aos computadores, seus componentes e à forma como os programas são executados. Definição de computadorComo 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):
Organização de computadoresHoje 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: Figura - Arquitetura básica de um computador.
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.
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.
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):
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). Camadas de abstraçãoPara compreender o funcionamento do computador, precisamos entender várias camadas de abstração diferente.
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 operacionalApresenta 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: Nível 4 ou Nível da linguagem de montagem (de máquina)Cconsiste 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 problemasConsiste 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.
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. SoftwarePara 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:
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. Arquitetura de ComputadoresModelo de Von NeumannOs computadores digitais convencionais baseiam-se no modelo idealizado por Von Neumann, em 1946, baseado em cinco componentes principais (MURDOCCA; HEURING, 2000):
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.
Este ciclo se repetirá até que a instrução a ser executada seja a de encerrar o programa. Arquiteturas HarvardSemelhantemente à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. Modelo de barramento do sistemaAtualmente,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):
Esses componentes se comunicam através de um barramento do sistema, composto por:
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. Sistema de computador típicoUm 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 Sinal de clockPara 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. O que é unidade de entrada Saída e Entrada saída?Os dispositivos de entrada são os que inserem informações em um computador a partir de uma fonte externa. Exemplos incluem: teclado, mouse, microfone, scanner e telas sensíveis ao toque. Já os dispositivos de saída são os aparelhos usados por um computador para comunicar informações.
Qual a função da unidade central de processamento?Em suma, a CPU é a responsável por processar todas as principais operações de funcionamento de um computador. Por isso, ela é comumente chamada de processador.
O que são módulos de entrada e saída?Um módulo de E/S é a entidade dentro de um computador responsável pelo controlo de um ou mais dispositivos externos e pela transferência de dados entre aqueles dispositivos e a memória principal e os registos da CPU.
Quais são as três partes do processador?São três as partes principais da CPU: Unidade de controle: busca a instrução da memória e decodifica-a. ALU (ou unidade aritmética e lógica): realiza operações aritméticas e booleanas. Registradores: memória rápida para guardar informações de controle, resultados intermediários.
|