620 likes | 742 Views
Arquitetura Básica. Hardware. Hardware é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. Exemplo: placa de som, vídeo, modem, placa de rede, placa-mãe, processador, etc. Hardware.
E N D
Hardware • Hardware é a parte física do computador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e placas, que se comunicam através de barramentos. • Exemplo: placa de som, vídeo, modem, placa de rede, placa-mãe, processador, etc.
Hardware • Periféricos • Os dispositivos de entrada e saída (E/S) ou input/output (I /O) - periféricos: permitem a interação do processador com o homem, possibilitando a entrada e/ou a saída de dados. • Dispositivos de entrada: codificam a informação que entra no sistema para que possam ser processados pelo sistema digital do computador. • Teclado, mouse, scanner, microfone, webcam, leitora de código de barras...
Hardware • Dispositivos de saída: decodificam os dados em informação que pode ser entendida pelo usuário. • Monitor, caixa de som, impressora... • Há dispositivos que funcionam tanto para entrada como para saída de dados. • Modem, placa de rede, pendrive...
Esquema básico do hardware Processamento e Controle Unidade de Entrada Unidade de Saída Armazenamento Secundário (Memória Auxiliar)
Gabinete Armazena: • a placa-mãe, • o disco rígido (HD), • as diversas placas de extensão, • a fonte de alimentação de energia elétrica, ...
Placa mãe Motherboard Placa interna que faz a conexão de uma grande quantidade de componentes entre si, o processador e a memória. Possui slots (encaixes) de expansão onde são encaixadas placas de controle de dispositivos, tipo placa de vídeo, de som, modem, etc. Existem também placas-mãe com característica on-board, isto é, na própria placa-mãe já estão controladores de dispositivos tipo placa de som, modem, etc.
CPU • CPU: é o chip principal de interpretação de comandos de um computador; processa as instruções, executa os cálculos, gerencia o fluxo de informações pelo computador, toma decisões de acordo com as instruções armazenadas na memória. • Busca e executa as instruções existentes na memória - os programas e os dados que ficam gravados no disco (HD ou disquete) são transferidos para a memória. Uma vez estando na memória a CPU pode executar os programas e processar os dados.
“Cérebro” do Computador Realiza as operações lógicas e aritméticas CPU Comanda as outras unidades ULA UC Unidade de Saída Unidade de Entrada Memória Principal Armazena dados e programas necessários para a realização de um trabalho Memória Auxiliar
CPU: UC e ULA • Um programa se caracteriza por uma série de instruções que o computador deve executar. Essas instruções, bem como os dados necessários, são encaminhados a memória principal. • Para a UC (Unidade de controle) são trazidas, uma a uma, essas instruções e, então, em relação a cada uma delas é feita uma análise. • Depois da análise se for o caso de utilização de dados, esses são buscados também na memória. • E a instrução é processada na ULA.
CPU Unidade de Controle (UC) Determina a execução e interpretação das instruções e controla o fluxo de dados. Coordena todas as atividades do computador. Contém as instruções (lista de operações) da CPU para executar comandos.
CPU A UC contém as instruções da CPU para executar comandos; • O conj. de instruções embutidos nos circuitos da UC, é uma lista de todas as operações que a CPU é capaz de executar; • A UC controla: • a E/S (entrada (input) e saída (output) I/O de informação; • executa operações; • comanda o funcionamento da ULA; • Informa as demais unidades o que fazer e quando fazer. • A UC assume toda a tarefa de controle das ações a serem realizadas pelo computador, comandando todos os demais componentes de sua arquitetura. É a UC que deve garantir a correta execução dos programas e a utilização dos dados corretos nas operações que as manipulam.
CPU Unidade Aritmética e Lógica (ULA) A ULA executa operações lógicas e aritméticas requeridas pelos programas - é a calculadora do Microprocessador. Recebe os dados da memória para processá-los quando uma instrução aritmética ou lógica é executada. Quando a UC encontra uma instrução que envolve operações aritméticas (+,-,*, /) ou lógicas (and,or not), ela passa o controle para a ULA, que faz a operação aritmética ou lógica sobre os dados e devolve para a UC.
Clock A velocidade com que o microprocessador realiza suas atividades internas é determinada por um relógio (clock). O relógio gera pulsos a intervalos regulares de tempo. A cada pulso, uma ou mais operações são realizadas. No computador tudo tem que funcionar de maneira sincronizada, para tal é gerado um pulso de clock, a fim de sincronizar o funcionamento de todos os dispositivos que realizam uma operação. A partir desse pulso, os dispositivos, param e continuam o que estiverem fazendo no próximo ciclo.
Barramento • É uma via de comunicação existente na placa mãe, através da qual o microprocessador transmite e recebe dados de outros circuitos. Sua função é a interconexão entre componentes Barramento de controle diz se a operação é de leitura ou de escrita Processador Barramento de dados Memória RAM por onde circulam os dados Barramento de endereços por onde o endereço a ser acessado é fornecido
Barramento • É um grupo de linhas paralelas, cujo nº afeta a velocidade com a qual os dados viajam de um componente a outro do hardware. • Como cada fio (linha metálica impressa na placa-mãe) transfere apenas 1 bit de cada vez; um barramento de 32 bits transfere 4 bytes por vez; de 64 bits transfere 8 bytes e assim por diante. Barramento – capacidade de transferência (medido em bits) Quando dizemos que o Pentium tem um barramento de dados de 64 bits, significa que o acesso a memória será feito a 64 bits por vez.
Memória • Programadores sempre ambicionaram ter quantidades ilimitadas de memória rápida. • Memórias rápidas são de alto custo e, normalmente, de pequena capacidade também. • Solução: organização do sistema de memória em uma hierarquia, com diversos níveis, onde memórias cada vez mais rápidas, menores e com um custo por byte maior, são colocadas nos níveis mais altos. • Objetivo: fornecer um sistema de memória com um custo próximo daquele do nível mais baixo da hierarquia, e velocidade próxima daquela do nível mais alto. • Os níveis de hierarquia mais altos normalmente são um subconjunto dos níveis mais baixos. À medida que a informação vai sendo utilizada, ela vai sendo copiada para os níveis mais altos da hierarquia de memória.
Menor Capacidade Maior Custo Mais Veloz Registradores Cache Memória Principal Memória Secundária Maior Capacidade Menor Custo Menos Veloz
Tipo Capacidade Velocidade Custo Localização Volatilidade Bytes muito alta muito alto UCP Volátil Kbytes alta alto UCP/placa Volátil Mbytes média médio Placa Volátil Registrador Gbytes baixa baixo Externa Não Volátil Memória Cache Memória Principal Memória Auxiliar
Registradores • Os registradores estão localizados no núcleo do processador. • São caracterizados por um tempo de acesso menor que um ciclo de relógio e sua capacidade é da ordem de centenas de bytes. • É o único nível da hierarquia que permite movimentações iguais apenas ao tamanho da informação desejada.
Memória Cache • Memória Cache: Elemento de memória intermediário entre o Processador e a MemóriaPrincipal Processador Cache Memória Principal
Memória Cache • Memória de acesso muito rápido e pouca área de armazenagem. • Agilizam o processamento. • Localizada entre o processador e a memória principal.
Memória Cache • O processador inicia a busca a instrução ou dados na memória cache. • Se os dados ou a instrução estiverem na cache (denomina-se acerto), a informação é transferida para o processador. • Se os dados ou a instrução não estiverem na memória cache (chama-se falha), então o processador aguarda, enquanto a instrução/dados desejados são transferidos da memória principal para a cache e também para o processador. • Caso haja acerto, a informação armazenada na memória cache é fornecida para o processador, evitando a ida à memória principal. • As células de memória da cache são elaboradas com tecnologia que permite um tempo de acesso menor que o memória principal.
Memória Principal • A memória é um conjunto de circuitos onde o microprocessador realiza dois tipos de operações: leitura e escrita. • Sua principal finalidade é armazenar dados e instruções. • A memória pode ser considerada como a “mesa de trabalho” do processador. • A memória tem um tamanho finito, especificados em bytes (Kb, Mb, Gb, Tb).
Memória Principal Memória RAM (Random Access Memory) • É a principal memória do computador. • Memória de leitura e gravação. • Memória do tipo volátil, isto é, necessita de energia elétrica constante para manter as informações.
Memória Principal Memória RAM (Random Access Memory) • Na memória RAM estão os dados, instruções dos programas e sistema operacional. • Cada posição de memória possui um endereço único – Endereçada. • A memória pode ser expandida adicionando novos ‘pentes’ de memória.
Memória Principal • Memória RAM (Random Access Memory) • Embora seja rápida, isto é, possui tempo de acesso pequeno, e de acesso aleatório (mesmo tempo no acesso a qualquer célula), a RAM possui a desvantagem de ser volátil, ou seja, perde seu conteúdo quando a corrente elétrica é interrompida.
Memória ROM Memória ROM (Read Only Memory) • Memória apenas de leitura. • Memória do tipo não-volátil, isto é, não necessita de energia elétrica constante para manter as informações.
Memória ROM • A memória ROM contém um conjunto de instruções de inicialização (boot) que verificam se os periféricos (mouse, teclado, vídeo, ...) estão funcionando adequadamente, além de procurar pelo S.O. (Sistema Operacional).
Outras Memórias • PROM (Programmable Read Only Memory = memória programável apenas para leitura): • É um tipo de ROM que só pode ser gravada uma vez, através de um equipamento especial. • EPROM (Erasable Programmable ROM = memória programável e apagável apenas para leitura): • É uma ROM que pode ser apagada por raios ultravioleta e posteriormente regravada. • EEPROM (Electrically Erasable Programmable ROM = memória alterável eletricamente apenas para leitura): • Trata-se de uma ROM cujo conteúdo pode ser alterado eletricamente.
Memória Secundária • A memória secundária é o último nível da hierarquia de memória. É composta pelos dispositivos de armazenamento de massa, normalmente discos rígidos, de grande capacidade e menor custo por byte armazenado. • Os programas e arquivos são armazenados integralmente na memória secundária, que são dispositivos de memória não volátil. • Tipos: • Discos Magnéticos • Fitas Magnéticas • CD-ROM’s, • DVD´s, • Pen Drives, etc.
Memória Secundária Dispositivos de Armazenamento de Dados • Magnéticos • Disquetes • Discos rígidos (HD ou winchester) • Fitas magnéticas • Ópticos • CD-ROM • CD-R (CD-RW) • DVD • Magneto-ópticos
Software Conjunto de instruções/funções/tarefas que definem o que o computador deve executar para chegar a um determinado resultado; As instruções em geral residem em um meio de armazenamento; Um conjunto de instruções é chamado Programa; O software informa aos componentes físicos da máquina o que eles devem fazer.
Software Tipos de Software Básico Aplicativo Sistema Operacional Linguagem de programação Editor de texto Planilha Eletrônica SGBD Editoração Eletrônica ...
Software Linguagens de Programação • A única verdadeira linguagem de computador é a linguagem de máquina ou baixo nível (bits – 0 e 1) • Escrever um programa em linguagem de máquina é difícil e suscetível e erros.
Software Linguagens de Programação • Os programadores precisam de um intermediário entre eles e a máquina, chamada linguagem de alto nível, que é muito parecida com a linguagem natural do ser humano. • Uma linguagem de programação é composta por um conjunto finito e determinado de comandos que ordenados indicam a sequência de passos a serem executados pelo processador.
Software Linguagens de Programação • Um programa de computador é uma seqüência lógica e ordenada de comandos pré-definidos com a finalidade de resolver uma tarefa. • Programa fonte é o programa escrito em linguagem de alto nível.
Software Linguagens de Programação Algoritmos (pseudocódigo) Programa Cálculo_média algoritmo Escreva “Digite a primeira nota” Leia Nota1 Escreva “Digite a segunda nota” Leia Nota2 Média = ( nota1 + nota2 ) / 2 Escreva “A média é: “ Escreva Média Fim
Software Linguagens de Programação Linguagem BASIC PRINT “Digite a primeira nota” INPUT Nota1 PRINT “Digite a segunda nota” INPUT Nota2 LET Media = ( nota1 + nota2 ) / 2 PRINT “A média é: “ PRINT Media
Software Linguagens de Programação Linguagem C #include "stdio.h" #include "math.h" main(){ float nota1, nota2, media; printf("Digite a primeira nota : "); scanf ("%d", ¬a1); printf("Digite a segunda nota : "); scanf ("%d", ¬a2); media = ( nota1 + nota2 ) / 2; printf("A media e: %f", media ); }
Software Linguagens de Programação Linguagens Interpretadas As linguagens interpretadas executam o programa fonte comando a comando. Caso ocorra um erro de formulação de um comando (erro de sintaxe), o programa será interrompido. Ex: BASIC
Software Linguagens de Programação Linguagens Compiladas As linguagens compiladas criam um arquivo em linguagem de máquina (executável) a partir do código fonte. Consiste em dois passos: compilação e linkedição. Ex: C, C++, Pascal, Delphi
Software Linguagens de Programação Linguagens Compiladas Compilação: análise de erros de sintaxe e criação de um código intermediário a partir do fonte. Linkedição: adição das bibliotecas de funções da linguagem ao código intermediário e criação do arquivo executável em linguagem de máquina.
Compilador • Transforma Linguagem de alto nivel em Assembly. • Linguagem de alto nível: maior produtividade e facilidade • Montador • Transforma Assembly em linguagem de máquina. • Ligador (Linker) • Ligador (linker) “monta” os programas como um único programa. • Carregador (Loader) • Realiza o carregamento do programa na memória.
Código C: do { j = j + 1; i++; } while ( A[i] >= 10 || A[i] < 0); $19 - i $20 - j $21 - &A Assembler (MIPS): Comentário: Loop: addi $20,$20,1 # j = j + 1 add $9,$19,$19 # $9 = 2 * i add $9,$9,$9 # $9 = 4 * i add $9,$9,$21 # $9 = & A[i] lw $8,0($9) # $8 = A[i] addi $19,$19,1 # i = i + 1 slti $9,$8,10 # $9 = $8 < 10 (1 se menor ou 0 se maior ou igual) beq $8,$0, Loop # goto Loop (se 0 = loop) slti $9,$8, 0 # $9 = $8 < 0? (1 se menor ou 0 se maior ou igual) bne $8,$0, Loop # goto Loop (se 0 = loop)
Conjunto complexo de circuitos eletrônicos. Executa instruções de programa armazenadas. Duas partes: Unidade de controle Unidade Aritmética e Lógica Unidade Central de Processamento