Baixe o app para aproveitar ainda mais
Prévia do material em texto
ORGANIZAÇÃO DE COMPUTADORES (CCT0256/1916287) 9009 Aula 1: Princípios de Funcionamento de um Computador Computador: É uma máquina capaz de sistematicamente tratar e fornecer os resultados derivados do processamento dos dados com um ou mais objetivos. Podemos dizer que a sua função é transformar dados em informações. O ato de transformar dado em informação é denominado processamento. Computador = Hardware + Software Dado: é a matéria prima obtida na etapa de coleta (entrada). Informação é o resultado obtido pelo tratamento destes dados (saída). Conhecimento: abstração interior, pessoal, de algo que foi experimentado, vivenciado por alguém. Etapas básicas de processamento: DADOS (entrada) – PROCESSAMENTO - INFORMAÇÃO (saída) Um computador é constituído por diversos componentes visíveis tais como monitor, teclado, mouse e por outros menos visíveis tais como processador e memória que ficam embutidos em um gabinete. Para que este conjunto de componentes funcione para a execução de uma tarefa, é necessária a existência de uma sequência de instruções denominada programa. Os componentes físicos de um computador são chamados de hardware e o programa responsável pela utilização do hardware é denominado software. Hardware: Placa Mãe. Processador. Memória. HDD. Dispositivo de Entrada e Saída. Barramento Software: Fundamentos da programação. Linguagem de programação. Sistema Operacional Base Lógica do Processamento: Algoritmos são conjuntos sistemáticos e formalizados de instruções para resolução de um problema. Sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferentemente de computadores de propósito geral, como o computador pessoal, um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos. Já que o sistema é dedicado a tarefas específicas, através de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto. A linguagem é dita de baixo nível quanto mais próxima estiver do hardware, ou seja, é de mais difícil entendimento pelo ser humano, menos intuitiva, mais próxima do código de máquina. Já a linguagem de alto nível tem comandos mais intuitivos, proporcionando entendimento mais fácil pelo ser humano, pois tem comandos mais próximos da linguagem escrita que utilizamos para nos comunicar. Os ambientes de alto nível permitem inclusive programar e forma visual, o código é gerado automaticamente. Processamento de dados é a tarefa de transformar dados em informação. Essa tarefa pode ser executada por um computador. Para que o computador faça essa tarefa é necessário que exista um programa que determine como esta tarefa deve ser executada. Para desenvolvimento de um programa utilizamos uma linguagem de programação. O programa escrito nesta linguagem é transformado em código de máquina através dos processadores de compilação e ligação. Compilador converter um programa escrito em uma linguagem de alto nível em código binário, resultando no chamado código objeto. Aula 2: Unidades de Armazenamento de Dados As Unidades de informação são denominadas: Bit, Byte, Word e Múltiplos. Algumas como você pode perceber, vêm do idioma inglês. O Bit: é a unidade para composição de uma informação. O bits 0 e 1 são os algarismos na numeração binária e, com estes dois algarismos, todos os demais números podem ser representados. O Byte: é a unidade mínima de informação composta por 8 bits. O Word: é a unidade de armazenamento e recuperação de uma informação; múltiplo de byte. Os Múltiplos: estes são representados pela potência de 2. O sistema de numeração decimal, também chamado de base 10, é o mais conhecido, porém os computadores utilizam o sistema binário, ou seja, utilizam a base 2. Como esta representação pode ser muito longa, costuma-se representar os números no sistema hexadecimal ou base 16. Os números representados em uma determinada base são compostos pelos algarismos da base, que variam de 0 até o algarismo representado pela base menos uma unidade (base-1). Por exemplo, se a base é 10 os algarismos irão de 0 até 9 (9 = 10-1). Decimal: Algarismos na Base 10 - A representação dos números nas bases binária e hexadecimal obedece às mesmas regras da representação na base decimal. 0 1 2 3 4 5 6 7 8 9 Considere o número 11 na base decimal. Este número é composto pela base + uma unidade. Então: 11 = 1 * 101 + 1 * 100 Esta forma pode ser generalizada pelo somatório de cada algarismo multiplicado pela potência da base equivalente a sua posição. Então, na base decimal, tem-se: 234 = 2 * 102 + 3 * 101 + 4 * 100 Binário: Algarismos na base 2 - Para as demais bases, utiliza-se o mesmo princípio. 0 1 1010 = 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 Que é equivalente ao número 10 na base decimal. Hexadecimal: Algarismos na base 16 - Para as demais bases, utiliza-se o mesmo princípio. 0 1 2 3 4 5 6 7 8 9 A B C D E F A25 = A * 162 + 2 * 161 + 5 * 160 Que é equivalente ao número 2597 na base decimal. Repare que a letra A equivale ao número 10 na base decimal 1 Bit: 0 1 = 2=21 possibilidades; 2 Bits: 00 01 10 11 = 4=22 possibilidades; n Bits: 00n 01n = 2n possibilidades. OBS: 256 - 128 – 64 – 32 – 16 - 8 – 4 – 2 - 1 Combinações permitidas com n dígitos em uma base B Para uma determinada base B, empregando-se n dígitos pode-se representar B combinações distintas. Considere, por exemplo, a representação em base decimal com 3 dígitos. Esta representação fornece 1000 números distintos (de 0 a 999). Se, no entanto, utilizarmos a base binária, para os mesmos 3 dígitos, tem-se 8 números distintos (de 0 a 7). KB = 210 = 1024 byte MB = 220 = 2048 GB = 230 = 3072 TB = 240 = 4096 PB = 250 = 5120 Os Números podem ser representados em bases diferentes. As bases 2 (binário) e 16 (Hexadecimal) são as mais utilizadas na informática. OBS: A arquitetura de von Neumann descreve um computador que depende da capacidade de processamento e de armazenagem de memória. Em termos práticos, tanto processadores quanto dispositivos de memórias ganharam considerável avanço. Assim, pode-se dizer que os gargalos dessa arquitetura foram vencidos? R: Não, um dos gargalos mais importantes da arquitetura de von Neumann é a comunicação entre a memória principal e a Unidade Central de Processamento. Diversos métodos são usados para tratar esse problema, entre eles a memória cache e a computação em paralelo. - Utilizando-se um byte, quantas combinações distintas podemos representar? 256 combinações Aula 3: Representação da Informação Conversão entre os sistemas de numeração: Em nosso cotidiano, utilizamos a base decimal para expressar medidas e seus múltiplos. Esta forma de representação é intuitiva se lembrarmos do conceito de bit. A representação em hexadecimal aparece, então, como uma alternativa entre a forma decimal, que não pode ser expressa em potência de 2 e a forma binária, que utiliza muitos dígitos em sua representação. Um número em hexadecimal é identificado por ser seguido por uma letra h. A conversão entre bases, consiste em representar um número em uma outra base e, para isso, serão apresentados algoritmos de conversão. Decimal – Binário: REGRA: 1) Realizar divisões sucessivas por 2 enquanto quociente DIFERENTE DE zero. REGRA: 2) Os “restos” (de trás para frente) irão formar o número convertido. 451 |_2_ 1 225 |_2_ 1 112 |_2_ 0 56 |_2_ 0 28 |_2_ 0 14 |_2_ 0 7 |_2_ 1 3 |_2_ 1 1 |_2_ 1 0 Então: 45110 = 1110000112 Conferindo: 1*28+1*27+1*26+1*21+1*20 =256+128+64+2+1 = 451 Decimal – Hexadecimal: REGRA: 1) Realizar divisões sucessivaspor 16 enquanto quociente DIFERENTE DE ZERO. REGRA: 2) Os “restos” (de trás para frente) irão formar o número convertido. 451 |_16_ 3 28 |_16_ 12 1 |_16_ 1 0 Então: 45110 = 1C316 Conferindo: 1*162+12*161+3*160 = 256+192+3 = 451 Binário – Hexadecimal: Cada conjunto de 4 bits representa um dígito em hexadecimal, pois com 4 bits podemos escrever 16 números diferentes (24 = 16). O número é convertido da direita para a esquerda. 24 = 16 = 1 1 1 0 0 0 0 1 12 Hexadecimal – Binário: Analogamente ao item anterior, cada dígito em hexadecimal é convertido em 4 dígitos binários. Cada algarismo é representado por 4 bits. 24 = 16 = 1 1 1 0 0 0 0 1 1 Representação de números inteiros: Conforme visto na aula anterior, um número inteiro positivo é representado com n bits em uma base binária B no intervalo entre 0 e Bn -1. Como representar, então, números negativos na base binária? Sinal e magnitude: A forma mais simples é a utilização da representação denominada sinal e magnitude, onde o dígito mais significativo indica o sinal: 0 representa um número positivo e 1 representa um número negativo. O número zero possui, então, duas representações possíveis. Exemplo considerando a representação binária com 5 bits: 12 = 0 1 1 0 0 ---- -12 = 1 1 1 0 0 Esta representação é particularmente trabalhosa quando são efetuadas operações de soma entre dois números, onde um deles é negativo. O máximo que posso representar é -15 = 1 1 1 1 1 ---- 15 = 1 1 1 1 Complemento a base -1: Complemento é a diferença entre cada algarismo do número e o maior algarismo possível na base. A utilização da representação em complemento simplifica a subtração entre dois números. O número que será subtraído (negativo) é substituído pelo respectivo complemento e, então, somado. Considerando a utilização de base binária, a operação é feita através de complemento a 1, que se resume na inversão de todos os dígitos. Exemplo considerando a representação binária com 5 bits: -12 = 1 0 0 1 1 ---- 12 = 0 1 1 0 0 Complemento a base: A representação mais utilizada para números negativos corresponde ao complemento à base, que, no caso de base binária, é chamado de complemento a 2. Para obtenção de um número negativo expresso em complemento a 2, o número deverá ser invertido e, em seguida, ser adicionado do valor 1. Esta forma garante uma única representação para o número zero. OBS: Encontre o nº 1 escreva ele e inverta o restante. Ex.: Decimal = -10; Sinal e magnitude = 11010; Complemento a 1 = 10101; Complemento a 2 = 10110 Somando e Subtraindo Sinal e Magnitude: Registra-se o sinal do maior número e subtrai a magnitude. 0 01010 (10) 1 00111 (-7) 0 00011 (3) Lembre-se que para subtrair 1 de 0 é preciso “pedir emprestado” Complemento a 1: Efetua a soma bit a bit (inclusive sinal) “vai um” para fora do número é somado ao resultado. Se não houver “vai um” para fora do número, o resultado é negativo e deve ser complementado (mantendo o sinal). 001010 (10) + 111000 (-7) Complemento a 2: Efetua a soma bit a bit (inclusive sinal) “vai um” para fora do número indica resultado positivo. Se não houver “vai um” para fora do número, o resultado é negativo e deve ser complementado (mantendo o sinal). 001010 (10) + 111001 (-7) 000011 (3) Representação de caracteres: Para representação de caracteres são utilizadas tabelas que transformam caracteres não numéricos em números para que possam ser armazenados em formato binário. Os padrões são: ASCII – American Standard Code for Information Interchange: Padrão vigente na forma estendido com suporte para 256 caracteres (8 bits); EBCDIC - Extended Binary Coded Decimal Interchange Code: Padrão em desuso utilizado pela IBM; UNICODE: Padrão em implantação que utilize 16 bits, permitindo o uso de caracteres específicos de determinados idiomas. Este padrão preserva os códigos da tabela ASCII. Aula 4: Conceitos de Lógica Digital Nesta aula iremos apresentar os conceitos básicos de lógica digital. Você conhecerá os símbolos utilizados para representação de portas lógicas e como eles são utilizados na construção de uma tabela-verdade. PORTAS LÓGICAS: Os circuitos digitais são formados por elementos capazes de manipular apenas grandezas binárias. Estes elementos são chamados de portas. As portas são, então, elementos de hardware que recebem um ou mais sinais de entrada e produzem um sinal de saída, cujo valor é o resultado de uma operação lógica. A informação binária é representada por um sinal digital onde: +3V = Representam o bit 1. +0,5V = Representam o bit 0. OPERAÇÕES LÓGICAS: As operações lógicas são apresentadas pelas seguintes palavras: AND: Produz resultado verdade se e somente se todas as entradas forem verdade. A B Q 0 0 0 0 1 0 1 0 0 1 1 1 OR: Produz resultado verdade se pelo menos uma das entradas for verdade. A B Q 0 0 0 0 1 1 1 0 1 1 1 1 NOT: Inverte o valor da entrada, o que é verdade vira falso e vice-versa. A Q 1 0 0 1 NAND: Produz o inverso da saída AND, trata-se da combinação NOT com AND. A B Q 0 0 1 0 1 1 1 0 1 1 1 0 NOR: Produz resultado verdade se e somente se todas as entradas forem falsas, trata-se da combinação NOT com OR. A B Q 0 0 1 0 1 0 1 0 0 1 1 0 XOR: Produz resultado verdade se os valores de sua entrada forem diferentes. A B Q 0 0 0 0 1 1 1 0 1 1 1 0 O resultado de uma expressão lógica será sempre VERDADEIRO ou FALSO. O resultado verdadeiro equivale ao valor 1. O resultado falso equivale ao valor 0. As operações lógicas podem ser representadas de duas maneiras: Representação matemática (algébrica). Símbolo gráfico. Representação Matemática das operações lógicas, considerando A e B entradas: TABELA VERDADE E EXPRESSÕES LÓGICAS: Expressão lógica é uma expressão algébrica formada por variáveis lógicas e por símbolos representativos de operações lógicas. O valor do resultado de uma expressão lógica pode ser obtido por uma tabela-verdade construída com todas as possibilidades de entrada e as correspondentes saídas. Exemplo: Considere a expressão F = X + Y * Z onde 1 representa um resultado verdadeiro e 0 um resultado falso. A negação (NOT) é vem na frente de tudo. Tal como acontece na álgebra dos reais, a multiplicação (AND) tem precedência sobre a adição (OR). Além disso, expressões entre parênteses têm precedência. Saiba mais Sistemas Digitais – Thomas Floyd – disponível no Google Livros: http://www.books.google.com Aula 5: Álgebra Booleana A Álgebra Booleana é uma área da Matemática que trata de regras e elementos de lógica. Assim como na Álgebra comum, a Álgebra Booleana trata de variáveis e de operações com estas variáveis, porém utiliza variáveis binárias em que o valor 1 equivale à condição verdadeira e o valor 0, à condição falsa. Uma expressão lógica pode ser simplificada garantindo, assim, circuitos mais simples e mais baratos de serem produzidos. Essa simplificação deve seguir as seguintes regras, 22 no total: Vamos ver agora um exemplo de simplificação de expressões utilizando as regras apresentadas. Simplificar a expressão, provando a regra 16: OBS: Dada a expressão: A+(B C). Marque o item que corresponde a mesma expressão. (A+B).(A+C) Revisão - Aula 1 a 5 O que é um computador: Máquina destinada ao processamento de dados, capaz de receber instruções com o objetivo de transformar esses dados e alcançar um fim. Entrada – Transformação – Saída; adequando ao jargão técnico... Dados – Processamento – Informação. Computador = Hardware + Software: O hardware é a parte física do computador, ou seja, tudo aquilo que tocamos. É formado pelas placas,pelos componentes eletrônicos. Já o software é a parte lógica, ou seja, o que instalamos, programamos. Quando o computador não funciona, o hardware é o que você chuta e o software é o que você xinga. PROCESSAMENTO DE DADOS é a tarefa de transformar dados em informações. Esta tarefa pode ser executada por um COMPUTADOR. Para que o computador faça uma tarefa é necessário que exista um PROGRAMA que determine como esta tarefa deve ser executada. Para desenvolvimento de um programa utilizamos uma LINGUAGEM DE PROGRAMAÇÃO. O programa escrito nesta linguagem é transformado em CÓDIGO DE MÁQUINA através dos processos de compilação e ligação. Que sistema (Base) utilizamos: Utilizamos o sistema decimal (base 10), no qual temos algarismos de 0 a 9 representando valores de unidades, dezenas, centenas, etc. Dependendo da posição (notação posicional) o algarismo assume um valor diferente. Cada posição corresponde a uma potência da base começando em ZERO (mais à direita). Por exemplo: 258 na base 10 ou 25810 258 = 2 * 102 + 5 * 101 + 8 * 100 (2 centenas + 5 dezenas + 8 unidades) A Base é a base de tudo: Algarismos na base decimal (10): 0 1 2 3 4 5 6 7 8 9 - Algarismos na base binária (2): 0 1 - Algarismos na base hexadecimal (16): 0 1 2 3 4 5 6 7 8 9 A B C D E F. Bit (BInary digiT): 0 1 – Cada posição pode ter 2 valores. 1 bit: 0 1 - 2 = 21 possibilidades 2 bits: 00 01 10 11 - 4 = 22 possibilidades n bits: 00n 01n - 2n possibilidades Combinações permitidas com n dígitos em uma base B: Para uma determinada base B, empregando-se n dígitos pode-se representar Bn combinações distintas. Considere, por exemplo, a representação em base decimal com 3 dígitos. Esta representação fornece 103 (portanto, 1000) números distintos (de 000 a 999). Se, no entanto, utilizarmos a base binária, para os mesmos 3 dígitos, tem-se 23 (portanto, 8) números distintos (de 000 a 111). Os números podem ser representados em bases diferentes. As bases 2 (binário) e 16 (hexadecimal) são as mais utilizadas na informática. Saber operar com números binários e seus múltiplos é fundamental e facilitará seu trabalho na informática. Os números negativos Sinal e Magnitude: -10 = 1 1010 onde o primeiro um é o Sinal e o resto é a magnitude. Um bit reservado para sinal (o mais significativo). Complemento A1: -10 = 1 0 1 0 1 onde o primeiro um é o Sinal e o resto é invertido (1010 invertido). Diferença entre cada algarismo do número e o maior algarismo possível na base. Para a base 2 o maior algarismo é o 1 e, para este caso, equivale a inverter todos os dígitos. Para n bits metade das combinações representa números positivos e a outra metade números negativos. Complemento A2: -10 = 1 0 1 1 0 onde o primeiro um é o Sinal e o resto é mais 1 (0101 +1). Obtido a partir do complemento a 1 de um número binário, somando-se 1. Para n bits metade das combinações representa números positivos e a outra metade números negativos. Representação mais utilizada. Somando e Subtraindo Sinal e Magnitude: Registra-se o sinal do maior número e subtrai a magnitude. Lembre-se que para subtrair 1 de 0 é preciso “pedir emprestado” Complemento A1: Efetua a soma bit a bit (inclusive sinal). “vai um” para fora do número é somado ao resultado. Se não houver “vai um” para fora do número, o resultado é negativo e deve ser complementado (mantendo o sinal). Complemento A2: Efetua a soma bit a bit (inclusive sinal). “vai um” para fora do número indica resultado positivo. Se não houver “vai um” para fora do número, o resultado é negativo e deve ser complementado (mantendo o sinal). O que são Portas Logicas: Os circuitos digitais são formados por elementos capazes de manipular apenas grandezas binárias, chamados de portas lógicas. Esses elementos de hardware recebem (um ou mais) sinais de entrada e produzem um sinal de saída. Verdadeiro ou Falso AND: Produz resultado verdade SE E SOMENTE SE todas as entradas forem verdade. OR: Produz resultado verdade SE PELO MENOS UMA DAS ENTRADAS for verdade. NOT: INVERTE o valor de entrada, o que é verdade vira falso e vice-versa. NAND: Produz o INVERSO da porta AND, trata-se da combinação NOT com AND. NOR: Produz o INVERSO da porta OR, trata-se da combinação NOT com OR. XOR: Produz resultado verdade se as entradas forem diferentes. A negação (NOT) é vem na frente de tudo. Tal como acontece na álgebra dos reais, a multiplicação (AND) tem precedência sobre a adição (OR). Além disso, expressões entre parênteses têm precedência. Álgebra Booleana: Vimos na aula passada que os circuitos digitais são representados por expressões, cujas entradas são combinadas e a saídas analisadas através da tabela-verdade. Mas, será que podemos reduzir o tamanho dessas expressões e, consequentemente, os circuitos sem alterar os resultados obtidos na saída? É exatamente nesse contexto que iremos estudar as regras (22 no total) de simplificação da Álgebra de Booleana. Aula 6: Modelo de Von Neumann Um pouco de história - John Von Neumann foi um matemático húngaro (1903-1957) com diversas contribuições significativas na matemática e na física. Foi professor da Universidade de Princeton e um dos construtores do ENIAC. A sua grande contribuição para a computação foi propor que os dados lidos em cartões perfurados fossem gravados na memória do computador. Características do Modelo de Von Neumann: Dados e instruções fossem armazenados em uma única memória que seria utilizada tanto para leitura quanto para escrita. Os dados armazenados na memória poderiam ser acessados através de endereços. A execução de um programa ocorre sequencialmente, por ordem de endereços, exceto se for feita algum desvio explícito no programa. O Modelo proposto por Von Neumann (1945) é formado por uma CPU (Central Processing Unit), memória, unidade de entrada e unidade de saída, conectados entre si através de um barramento. A CPU (Processador) é composta por: Unidade Lógico-Aritmética: responsável pela execução de operações lógicas e aritméticas efetuando transformações sobre os dados. Unidade de Controle: responsável pela interpretação e execução de comandos. Registradores Internos: conjunto de células que funcionam como pequenas memórias para leitura e gravação temporária de dados. Registradores especiais: Registrador de Instruções (IR - Instruction Register) Armazena a instrução que está sendo executada; Registrador de estado (PSW - Program Status Word) Armazena condições de estado geradas pela unidade aritmética e lógica gerando informações para a unidade de controle. Contador do programa (PC - Program Counter) Armazena o endereço da próxima instrução que será executada. Memória: Comunicação CPU/Memória. A comunicação entre CPU e memória utiliza dois registradores específicos: RDM (Registrador de Dados da Memória) - Armazena o conteúdo da palavra lida ou que será escrita na memória, Célula de 32 bits - RDM com 32 bits. REM (Registrador de Endereços da Memória) - Armazena o endereço da palavra na memória, Memória com 256 células - REM com 8 bits. Barramento: Conectam CPU/Memória/Controladores de dispositivos de E/S. São divididos em 3 partes: 1- Controle: define o tipo de operação. 2- Dados: informa o que será lido/escrito. 3- Endereço: informa o endereço para leitura/escrita. Programação: Programação sequencial. O valor de uma variável é alterado durante a execução de um programa. Instruções e dados são armazenados indistintamente. Limitações Originais: Grande quantidade de acessos a memória. Velocidade dos novos dispositivos. Execução em paralelo Atividades Qual a Função do barramento controle? O Barramento de Controle (Control Bus) sincroniza as atividades do sistema. Ele conduz o status e a informação de controlede/para o Microprocessador. Para um Barramento de Controle ser formado, ao menos 10 (geralmente são mais) linhas de controle são necessárias. - Barramento: Praticamente todos os componentes de um computador, como processadores, memórias, placas de vídeo e diversos outros, são conectados à placa-mãe a partir do que chamamos de barramento. Há três funções distintas nos principais barramentos de um computador, que, em termos simples, conectam o processador, a memória e os outros componentes conectados a ele pelo que chamamos de barramentos de entrada e saída. Barramento de dados - como o próprio nome já deixa a entender, é por este tipo de barramento que ocorre as trocas de dados no computador, tanto enviados quanto recebidos. Barramento de endereços - indica o local onde os processos devem ser extraídos e para onde devem ser enviados após o processamento. Barramento de controle - atua como um regulador das outras funções, podendo limitá-las ou expandi-las em razão de sua demanda OBS: Qual opção define um dos gargalos mais importantes da arquitetura de von Neumann? É a comunicação entre a memória principal e a Unidade Central de Processamento. - Responsável por ler e interpretar as instruções lidas da memória de instruções. Dar ordens à unidade de dados para executar operações, coordenar as leituras e escritas na memória de dados, coordenar a comunicação com o mundo exterior através dos periféricos: Unidade de Controle Aula 7: Instruções Conjunto de Instruções: Todo o processador é fabricado contendo um conjunto de instruções que define quais operações ele pode realizar. A instrução utiliza registradores de uso geral para armazenamento temporários dos dados que serão processados e de uso específico para funções pré definidas de controle ou destinadas a uma forma de armazenamento implícito. Ninguém programa diretamente utilizando as instruções do processador! Os programas são desenvolvidos em linguagens de alto nível. Os compiladores são responsáveis por transformar este programa para uma linguagem de montagem (Assembly), que é a representação textual das instruções como, por exemplo, ADD, MOV, INC etc. Tipos de Instruções: Existem três tipos de instrução: - Instruções aritméticas e lógicas: Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR). - Instruções de movimentação de dados: Transferem dados entre registradores ou entre registrador e memória principal (MOV). - Instruções de transferências de controle: Executam o desvio do fluxo sequencial do código (JMP). Alguns processadores possuem ainda instruções para tratamento de ponto flutuante, manipulação de bits e manipulação de cadeias de caracteres (strings). Executando uma instrução: A execução de uma instrução é dividida em etapas. São elas: Busca – Decodificação – Busca operandos – Fim – Nova Instrução Uma instrução possui dois formatos básicos, que são: Código da operação – Operando. As instruções podem ter mais de um operando ou nenhum operando. - Código da Operação: Indica que operação será executada. A quantidade de bits destinada a este código determina o número máximo de instruções possíveis. - Operando: Indica o(s) dado(s) que será(ão) manipulado(s). Operações aritméticas possuem em geral 2 ou 3 operandos. Exemplos: ADD R1, R2, R3: operação de soma onde a soma de R1 e R2 é armazenado em R3. ADD R1, R2: o valor de R2 é adicionado ao valor de R1 e armazenado em R2. - ADD: soma o primeiro operando com o segundo, o resultado fica armazenado no primeiro operando: ADD op1, op2 --- ADD R, op1 - MOV: copia o segundo operando (fonte) para o primeiro operando (destino): MOV op1,op2 - JNZ: desvia a execução do programa para o endereço indicado: JNZ op1. Modelos de Endereçamento - Imediato: Utiliza um valor como operando e não um endereço na memória. Ex.: ADD #4, R1 --- O valor 4 é adicionado ao registrador R1. - Direto: Indica o endereço de memória onde está o operando. Ex.: ADD (20), R1 --- O conteúdo do endereço 20 é adicionado a R1. - Indireto: Indica um ponteiro para o operando. Ex.: ADD (R1), R2 --- R1 contém o endereço do valor que será adicionado a R2. - Por Registrador: O endereço se refere a um registrador. ADD R, op1 - Relativo a base ou Deslocamento: Endereço obtido pela soma do operando com o conteúdo de um registrador base. Ex.: ADD 20(R1), R2 --- O endereço é dado pelo deslocamento R1 a partir da base 20. - Indexado: Índice para uma estrutura (vetor). Ex.: ADD (R1+R2), R3 --- O endereço é fornecido pela soma do endereço base R1 com o deslocamento R2. OBS: Determinada instrução tem no seu campo de dado o valor a ser usado como operando: Imediato - Determinada instrução tem no seu campo de dado o endereço no qual tem o endereço onde está o dado: Indireto. - Instruções de transferência de controle alteram o fluxo normal de execução de programas. Elas alteram o conteúdo do registrador Program Counter - PC. Esta alteração faz com que todo o esforço para acelerar a execução de programas pelo fetch antecipado de instruções seja perdido. Como se chama esta técnica de antecipação mencionada? R: Pipeline. - Sabemos que os dados são tratados e armazenados na memória. No entanto, eles devem ser lidos e colocados à disposição para o usuário, que não tem acesso à memória do computador. Isto deve ser feito através de instruções de entrada e saída. R: Movimentações Aula 8: Processador Já sabemos como um computador é inicializado (procedimento de BootStrap = O computador é inicializado da seguinte forma: Energia. Registradores inicializados. Executa instrução. BIOS (POST, SETUP, Carga do S.O.)) e, com isso, entendemos que o processador é composto por circuitos capazes de executar instruções. A função do processador é, então, executar instruções e, para isso, obedece ao ciclo de busca, decodificação e execução da instrução. Início – Buscar uma Instrução na memória – Decodificar instrução/operação – Buscar comandos/operadores – Executar operação – Guardar o resultado (se for o caso) - Escrever Resultados – Término. As funções realizadas pelo processador podem ser divididas em dois grupos: Controle e Processamento - Função de Controle: Responsável pela busca, interpretação e controle de execução das instruções. Componentes: Unidade de controle. Registrador de Instruções (IR). Decodificador de Instruções. Contador de instruções (PC). Registro Endereço de Memória (REM). Registro Dados Memória (RDM). - Função de Processamento: Execução de operações aritméticas, operações lógicas, movimento de dados, desvios e operações de entrada ou saída. Componentes: UAL (ALU). Registrador Acumulador (ACC). Registradores de dados. Registrador de estado (PSW). Interrupções: São eventos provocados pelo hardware que provocam o desvio da sequência normal de execução de uma tarefa. São sinais de hardware fundamentais para a existência de sistemas multitarefa, pois provocam a interrupção da tarefa em execução. As interrupções são inicialmente tratadas pelo processador que, em seguida, desvia a execução do programa para a rotina de tratamento da interrupção também chamada de interrupt handler. As interrupções podem ser divididas em três classes: Relógio, E/S e Falha de Hardware. - Relógio: é o dispositivo gerador de pulsos cuja duração é chamada de ciclo. A frequência do processador é dada pela quantidade de ciclos por segundo. A interrupção gerada pelo relógio interno do processador provoca a suspensão periódica da tarefa em execução para permitir a execução de uma nova tarefa. Esta interrupção é fundamental para o modelo de sistemas multitarefa atuais. - E/S: Gerada por um controlador de E/S par sinalizar o término de uma operação. Após o término da execução da rotina de tratamento o processamento retorna ao ponto imediatamente após de onde foi interrompido. - Falha de Hardware: Gerada por uma falha de hardware para impedir a continuidadeda execução da tarefa. Pipeline: O esquema tradicional de execução de uma instrução (sequencial) não utiliza o potencial dos circuitos eletrônicos cada vez mais rápidos, pois existem tarefas mais lentas que outras, como, por exemplo, o acesso à memória. No modelo sequencial, os componentes do processador não envolvidos com o acesso à memória estariam ociosos durante a execução da tarefa. O pipeline funciona, então, como uma linha de montagem, permitindo que várias instruções sejam executadas simultaneamente, reduzindo o tempo de término de cada ciclo. O objetivo é utilizar as diversas unidades do processador por instruções diferentes. Pipeline é uma técnica de hardware que permite que a CPU realize a busca de uma ou mais instruções além da próxima a ser executada. Características: Busca antecipada de instruções. Memória de laço de repetição. Previsão de desvio. --- Busca – Decodificação – Execução – Escrita na memória. OBS: Qual tipo de barramento interliga a UCP, mais especificamente a Unidade de Controle (UC), aos demais componentes do sistema computacional (memória principal, componentes de entrada e saída) para a passagem se sinais de controles gerados pelo sistema. R: Barramento de Controle. - A função deste dispositivo é a execução das instruções dos programas que se encontram armazenadas na memória. Ao chegarem à UCP, essas instruções são interpretadas e traduzidas em operações matemáticas a serem executadas. R: ULA - A UCP envia ao REM o endereço da memória do dado a ser lido. - Relógio sincroniza as atividades da UCP, memória e todo o sistema. Aula 9: Memória A memória principal é a responsável pelo armazenamento temporário de informações que serão manipuladas pelo sistema e que irão permitir sua recuperação quando necessário. O elemento básico de armazenamento é o bit, porém a forma de como estes bits são agrupados para representar uma informação depende de cada sistema. Este agrupamento é denominado célula e passa a ser a unidade de armazenamento. Cada célula de memória possui um endereço que a identifica de forma única. Ex.: Os processadores de 16 bits possuem endereços de 20 bits, permitindo usar até 1MB endereços de memória. Cada célula possui 1 byte de largura. Os processadores de 32 bits possuem endereços de 32 bits permitindo o acesso a 4GB células também de 1 byte. Hierarquia: Estas memórias são organizadas na forma de pirâmide onde, no topo, encontra-se aquela com maior custo, maior velocidade e menor capacidade de armazenamento e, na base, o inverso. Começando pelo Topo: - Registradores: Armazenamento de dados na CPU. - Memória Cache: Localizada entre o processador e a memória principal. - Memória Principal (RAM): É a memória básica de um sistema de computação, onde ficam armazenados os programas em execução e os dados em uso. - Memória Secundária (E/S): Memória não volátil para armazenamento de dados e programas (ex. discos). Componentes da memória principal: A CPU comunica-se com a memória através de um barramento e utiliza os registradores RDM e REM para o envio e recebimento das informações. Utiliza, ainda, registradores para armazenamento durante a transferências. As operações de leitura e escrita são gerenciadas pelo controlador de memória. - Barramento de Dados: Interliga a RDM à memória principal para transferência de Informações. É bidirecional. - Registrador de Dados da Memória: Registrador que armazena temporariamente a informações que está sendo transferida de/para a memória. - Barramento de Endereços: Interliga a REM à memória principal. É unidirecional. - Registrador de Endereços da Memória: Registrador que armazena temporariamente endereço de acesso. - Barramento de Controle: Interliga a unidade de controle do processador à memória principal para envio de sinais durante as operações de leitura e escrita. - Controlador de Memória: Responsável por gerar os sinais necessários para controle do processo de leitura e escrita, além de interligar a memória aos demais componentes do sistema. Memória principal - Operações: As operações são divididas em dois grupos: Operação de Leitura: 1- REM - endereço em outro registrador. 2- O endereço é colocado no barramento de endereço. 3- Sinal de leitura no barramento de controle. 4- Decodificação de endereço e localização da célula. 5- RDM - MP pelo barramento de dados. 6- Outro registrador – RDM. Operação de Escrita: 1- REM - endereço em outro registrador. 2- O endereço é colocado no barramento de endereço. 3- RDM - outro registrador. 4- Sinal de escrita no barramento de controle. 5- MP (REM) - RDM. Organização da memória principal: A memória é organizada em células. Um conjunto de células que possuem um significado é chamado de palavra (word). A palavra é, então, a unidade de informação do sistema que deve representar o valor de um dado ou de uma instrução de máquina. Unidade de Transferência: Consiste na quantidade de bits que é transferida para a memória em uma operação de escrita e da memória em uma operação de leitura. Em função do aumento da taxa de transferência dos barramentos, os sistemas utilizam unidades superiores a uma célula de memória. Capacidade da Memória Principal: Quantidade de informações que podem ser armazenadas representadas por N. Resumo de conceitos: Organização da memória principal: células. – Palavra: conjunto de células com significado. - Unidade de transferência: quantidade de bits transferidos de/para a memória. Capacidade de memória: quantidade de informações armazenadas. N = número de células * tamanho da célula. Memória cache: Todo o gerenciamento da memória cache é feito por hardware. Nem o Sistema Operacional nem as aplicações tem conhecimento da existência da memória cache. O acesso a cache é transparente para a aplicação e para o sistema operacional, uma vez que todo o gerenciamento da memória cache é feito por hardware. O processador inicia a operação de leitura para o endereço desejado da Memória Principal. O sistema de controle da cache intercepta o endereço e conclui se o dado solicitado está ou não armazenado na cache. Um acerto é denominado cache hit e a falha é denominada cache miss. Se ocorrer um cache miss o controlador da memória principal é acionado para localizar o dado na memória, transferindo-o para a cache. Um novo acesso é feito a memória cache. Política de escrita na memória: Sempre que ocorre uma escrita na cache, a memória principal deve ser atualizada, porém esta atualização pode ocorrer em diferentes momentos: simultaneamente em ambas as memórias (write through), escrita somente quando o bloco for substituído (write back) ou escrita na MP somente na primeira atualização (write once), útil para sistemas multiprocessados. O estudo da memória cache pode ser subdividido em: - Motivação: Diferença de velocidade entre processador e memória principal. Princípio da Localidade: temporal e espacial: Temporal: Se um item é referenciado, tenderá a ser referenciado novamente. Exemplo: loops (instruções e dados). Espacial: Se um item é referenciado, itens cujos endereços são próximos tenderão a ser referenciados em seguida. Exemplo: acesso a dados de um array. - Acesso: O acesso a cache é transparente para a aplicação e ao sistema operacional. Para a leitura de 1 byte na memória principal têm-se os seguintes passos: 1. O processador inicia a operação de leitura e coloca o endereço desejado na Memória Principal. 2. O sistema de controla da cache intercepta o endereço e conclui se o dado solicitado está ou não armazenado na cache. Um acerto é denominado cache hit e a falta é denominada cache miss. 3. Se ocorrer um cache miss o controlador da memória principal é acionado para localizar o dado na memória, transferindo-o para a cache. 4. Um novo acesso é feito à memória cache. 5. Considerando o princípio da localidade, os próximos dados consultados já deverão estar na cache,compensando (e muito!) a demora causada por uma falha. - Organização: A memória cache é organizada em um conjunto de L linhas, sendo cada linha constituída de X bytes. As linhas têm endereço de 0 a L-1. Cada linha possui um campo indicador do endereço do bloco que está naquele instante armazenado nela. Este campo é denominado tag ou rótulo. A localização é composta, no mínimo, pelo endereço do bloco e pelo deslocamento dentre do bloco. - Mapeamento: Direto: Cada bloco da MP tem uma linha de cache previamente definida. Como o tamanho da memória é muito maior que o tamanho da cache, é necessário se obter o tag do bloco e verificar se é o mesmo tag que está na linha indicada, indicando um hit. É um método simples, porém de pouca flexibilidade. Associativo: Não há local fixo na cache para um bloco da MP, no entanto será necessário comparar o tag com o tag de cada linha. Associativo por conjunto: Utiliza conceitos das técnicas anteriores, utilizando mapeamento direto para identificar um bloco e mapeamento associativo para localizar o dado dentro do bloco. - Algoritmos de Substituição: O tamanho da memória cache é muito menor que o da MP, então a mesma linha de cache poderá ser escolhida por mais de um dado. Para escolher a linha que deverá ser substituída no caso de uso do mapeamento associativo, os métodos mais utilizados são: LRU (menos recentemente usado) ou FIFO (fila). É possível, ainda, fazer uma escolha aleatória que, mesmo sendo aparentemente menos eficiente, pode reduzir a sobrecarga para identificação do bloco. Atividade Um processador possui um RDM com capacidade de armazenar 64 bits em um REM com capacidade de armazenar 35 bits. A memória desse sistema tem 128GB. Qual a capacidade máxima de endereçamento? R: Se REM tem 35 bits 235 = 25 * 230 células = 32G endereços. Qual o tamanho da célula de memória? R: Logo 128GB / 32G endereços = 4B por endereço. Então, cada célula possui, então, 32 bits = 4 bytes. Qual o tamanho da palavra de memória? R: Se RDM tem 64bits, a palavra possui 64bits. OBS: Em uma operação de escrita, para onde a UCP envia o endereço da memória onde a palavra será gravada? REM - Se a memória cache não possuir mais espaço para armazenar o novo dado, algum outro dado deverá ser excluído dela para que algum espaço seja disponibilizado para o novo elemento. Uma das metodologias de política para troca de dados da memória cache muito utilizada é: LRU Aula 10: Dispositivos Denominamos atividade de E/S (entrada e saída) a troca de informações entre o computador e o meio externo. Um sistema de E/S deve ser capaz de receber e enviar informações ao meio externo e converter as informações de forma que se tornem legíveis para o computador ou para o usuário. Cada dispositivo apresenta características bem particulares, tornando o estudo de cada tipo de dispositivo único. Características dos dispositivos: Taxa de transmissão. Complexidade de Controle. Representação de dados. Aplicação. Unidade de transferência. Condições de erro. Os componentes dos dispositivos são: - Periférico: Dispositivo conectado a um computador de forma a permitir a comunicação com o mundo externo. - Interface: Componente que conecta o periférico aos barramentos do computador. - Controlador: Implementa as operações (lê, escreve...). - Barramento: Conjunto de circuitos impressos que transportam os sinais. - Porta de E/S: Endereço no sistema de E/S. Endereçamento de E/S: Utiliza um conjunto de registradores internos ao controlador que recebem ordens do processador e fornecem o status de uma operação. Os registradores são associados a endereços e podem ser implementados de duas formas: - Espaço de Memória: Na fase de projeto do computador é definida uma zona do endereçamento de memória que será utilizada para dispositivos de E/S. Programação com instruções de acesso a memória (mov). Ex.: Processadores da família Motorola. - Espaço de E/S: Instruções especiais para manipulação de dispositivos. No projeto do processador são definidos dois espaços distintos de endereçamento. Acessado via instruções de acesso específicas (IN, OUT). Ex.: Processadores da família Intel e da AMD. Os dispositivos podem ser classificados em 3 formas, que são: - Quanto a Interação: Interação com usuário (ex: teclado, mouse). Interação com outros componentes (ex: discos). Interação com dispositivos remotos (ex: modem). - Quanto a Transferência de Dados: Orientado a bloco (ex. disco). Orientado a caractere (ex. terminal). - Quanto a Forma de Comunicação: Programmed I/O: Responsabilidade do programador. Interrupt-driven I/O: Processador é interrompido quando a operação se completa. Direct memory Access (DMA): Transferência dos dados diretamente para a memória sem interferência do processador. A transmissão de dados pode acontecer por 2 tipos diferentes: - Serial: O periférico é conectado ao controlador por apenas uma linha de comunicação de dados; logo, a transferência é feita por um bit de cada vez. Ex.: mouse, teclado. USB: Univeral Serial Bus, PCI Express (substituto do AGP), Firewire (IEEE 1394), SATA: Serial Advanced Technology Attachment. - Paralelo: Um grupo de bits é transferido simultaneamente através de um conjunto de linhas de comunicação. Ex.: discos, impressoras. MCA (IBM): Micro Channel Architecture, ISA/EISA: Industry Standard Adapter, PCI: Peripheral Component Interconnect, AGP: Accelerated Graphics Port. Memória secundária: São memórias secundárias os meios de armazenamento não-volátil como, por exemplo, os discos magnéticos. A organização destes discos é particularmente importante pela função que exercem. Os discos magnéticos são divididos em setores, trilhas e cilindros. O desempenho de um disco é medido pela velocidade de localizar uma informação. Considera-se que o disco roda em velocidade constante para posicionar a cabeça na trilha. Para calcular o desempenho de um disco, são computados: Seek (Tseek): Tempo gasto para posicionar o cabeçote em uma trilha. Tseek = n . m + S -- n = nº. de trilhas -- m = constante (depende do disco) -- S = Startup time Atraso rotacional (Tatraso): Tempo gasto para posicionar um setor (latência). Tatraso = 1/2r -- r =velocidade de rotação Transferência (Ttransf): Tempo gasto para a transferência de dados. Ttrasnf = b/rN -- N = qtd de bytes na trilha. O tempo T de transferência de um conjunto de dados é dado por: T= Tseek + Tatraso + Ttransf Existem, ainda, estratégias para atendimento às requisições, fornecidas pelo sistema operacional, denominadas estratégias de escalonamento de disco. - Estratégias baseadas na ordem dos pedidos: FiFo (First in First out): Mais simples. Atendimento na ordem dos pedidos. Prioridade: Fora do controle do gerenciador. LiFo (Last in First out): Diminui o movimento da cabeça de leitura em arquivos sequenciais. - Estratégias baseadas na localização: SSTF (Shortest Service Time First): Fila é reordenada para atender às requisições de forma a minimizar o movimento da cabeça. Possibilidade de starvation. Scan (elevador): Variação do SSTF, porém estipula uma direção preferencial. O sentido se inverte ao final da varredura. C- Scan: Semelhante ao Scan, porém com um sentido único. - Estratégias baseadas na localização segmentada: N-step-Scan: Divide as requisições em filas de tamanho N. As requisições de cada fila são processadas em conjunto. Novas requisições são colocadas em novas filas. Para valores grandes de N, é semelhante ao SCAN. Para N = 1, equivale a FiFo. FSCAN: Utiliza duas filas. Enquanto uma fila está sendo atendida, novas requisições são colocadas na outra fila. Revisão - Aula 6 a 10 Modelo de Von Neumann: Dados e instruções armazenados em uma única memória utilizada tanto para leitura quanto para escrita. Os dados armazenados na memória podem ser acessados através de endereços. A execução de um programa ocorre sequencialmente, por ordemde endereços, exceto se for feita algum desvio explicito no programa. Tamanho da célula Determina RDM. Célula de 32 bits RDM com 32 bits. Tamanho da memória em células Determina REM. Memória com 256 células REM com 8 bits. Limitações (originais): Grande quantidade de acessos a memória. Velocidade dos novos dispositivos. Execução em paralelo. Processador (UCP): - Unidade de Controle: Gerenciamento do fluxo interno dos dados. - Unidade Aritmética e Lógica: Execução de operações lógicas e aritméticas, efetuando transformações sobre os dados. - Registradores: Células de memória (temporárias) dentro do processador. Instruções: São as ordens que o computador entende. Cada família de processadores tem o seu próprio conjunto de instruções - instruction set. Quem usa essas instruções? O programador Assembly, os compiladores. Ninguém programa utilizando as instruções do processador! Programas são desenvolvidos em linguagens de alto nível! Instruções podem ter formatos diferentes, dependendo do número de operandos. Instruções Aritméticas e Lógicas: Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR) Instruções de Movimentação de Dados: Transferem dados entre registradores ou entre registrador e memória principal (MOV) Instruções de Transferências de Controle: Executam o desvio do fluxo sequencial do código (JMP). Formato de uma instrução: - Código da Operação: Indica que operação será executada. A quantidade de bits desse código determina o número máximo de instruções. - Operando: Indica o(s) dado(s) que será(ão) manipulado(s): números, caracteres, endereços. Modos de Endereçamento: IMEDIATO: Utiliza um valor como operando e não um endereço na memória. ADD #A, R1. DIRETO: Indica o endereço de memória onde está o operando. ADD (A), R1. INDIRETO: Indica um ponteiro para o operando. ADD (R1), R2. REGISTRADOR: O endereço se refere a um registrador. ADD R, OP1. DESLOCAMENTO: Obtido pela soma do operando com o conteúdo de um registrador base. ADD (A)R1, R2. Hierarquia: Estas memórias são organizadas na forma de pirâmide onde, no topo, encontra-se aquela com maior custo, maior velocidade e menor capacidade de armazenamento e, na base, o inverso. Começando pelo Topo: - Registradores: Armazenamento de dados na CPU. - Memória Cache: Localizada entre o processador e a memória principal. - Memória Principal (RAM): É a memória básica de um sistema de computação, onde ficam armazenados os programas em execução e os dados em uso. - Memória Secundária (E/S): Memória não volátil para armazenamento de dados e programas (ex. discos). Componentes da Memória Principal: - Barramento de Dados: Interliga o RDM à memória principal para a transferência de informações. É bidirecional. - Registrador de Dados da Memória (RDM): Registrador que armazena temporariamente as informações que está sendo transferida de/para a memória. - Barramento de Endereços: Interliga o REM à memória principal. É unidirecional. - Registrador de Endereços da Memória: Registrador que armazena temporariamente o endereço de acesso. - Barramento de Controle: Interliga a unidade de controle do processador à memória principal para envio de sinais durante as operações de leitura escrita. - Controlador de Memória: Responsável por gerar os sinais necessários para controle do processo de leitura e escrita, além de interligar a memória aos demais componentes do sistema. Componentes do Sistema de E/S: PERIFÉRICO: dispositivo conectado a um computador de forma a permitir a comunicação com o mundo externo. INTERFACE: componente que conecta o periférico aos barramentos do computador. CONTROLADOR: implementa as operações (leitura, escrita, transferência, etc.). BARRAMENTO: conjunto de fios que transportam os sinais. PORTA DE E/S: endereço no sistema de E/S.
Compartilhar