FUNDAMENTOS DA COMPUTAÇÃO Aula 3 – Parte 1 Instrutor.: Frank S. Fernandes Bastos ([email protected]) Foco.: Adiquirir conhecimento preparatório para Concurso referente itens complementares sobre fundamentos Público.: Estudantes de concurso específico Local.: Sala de aula - Obcursos Número Slides.: 20 (incluindo este) OBJETIVOS Adquirir conhecimentos complementares sobre os fundamentos relativo a arquitetura de computadores. BARRAMENTOS VLIW – Very Large Instruction Word PROCESSADORES INTEL RISC do lado MACINTOSH Diferente do que a maioria das pessoas pensam, macintosh utiliza um padrão chamado Post-RISC. Processadores que possuem um conjunto de instruções gigantesco, maior do que o conjunto de instruções de um processador CISC típico. A diferença é que toda essa gigantesca gama de instruções diferentes, podem ser decodificadas em instruções RISC simples, estas sim que serão processadas. A “conversão” das instruções é feita por um componente especial do processador, chamado de Hardware Decoder, encontrado no G4. DESEMPENHO x FUNCIONALIDADE O Hardware Decoder é extremamente rápido, por isso não compromete o desempenho do processador. De fato, a perda de desempenho por usar este grande conjunto de instruções que precisam ser quebradas em instruções menores é de menos de 1%. É por isso que os processadores atuais abandonaram a idéia RISC original: a perda de desempenho é ínfima perto do ganho de flexibilidade. Como tudo funciona? DECODIFICADOR DE INSTRUÇÕES Front END e Back END O Front End corresponde aos circuitos que decodificam as instruções, no caso o Hardware decoder, Microcode decoder e buffer de pré extração, junto com mais alguns componentes, como os circuitos de Branch Prediction (que ordenam as instruções de forma que o processador possa processador o maior número possível de instruções por ciclo e o cache L1. Estes componentes são a “porta de entrada” do processador, tendo a função de preparar as instruções para serem processadas. O Back End é a parte do processador que finalmente processa as instruções, sendo composto basicamente pelas unidades de execução. MULTI-TAREFA Multitarefa significa executar mais de uma tarefa de cada vez. Apesar de na vida real não ser muito fácil fazer duas coisas ao mesmo tempo, do ponto de vista de um computador este processo é relativamente simples. Todos os aplicativos são carregados na memória e o processador passa a executar algumas instruções de cada aplicativo por vez. Como o processador é capaz de executar vários milhões de instruções por segundo, esta troca é feita de maneira transparente, como se os aplicativos estivessem realmente sendo executados ao mesmo tempo. MEMÓRIA PROTEGIDA Usando a multitarefa, quase sempre teremos vários aplicativos carregados na memória, seja na memória RAM ou no arquivo de troca. Se não houvesse nenhum controle por parte do processador, um aplicativo poderia expandir sua área de memória, invadindo áreas de outros aplicativos e causando travamentos no micro. foi desenvolvido o recurso de proteção de memória, que consiste no processador isolar a área de memória ocupada por cada aplicativo, impedindo que ele ocupe outras áreas ao seu bel prazer. Se, por acaso, o programa precisar de mais memória, o próprio processador irá procurar uma área vazia de memória e ordenar ao aplicativo que ocupe a área reservada. Funcionamento da Pipeline Quando é carregada uma nova instrução, ela primeiramente passa pelo primeiro estágio, que trabalha nela durante apenas um ciclo de clock, passando-a adiante para o segundo estágio. A instrução continua então sendo processada sucessivamente pelo segundo, terceiro, quarto e quinto estágios do processador. A vantagem desta técnica, é que o primeiro estágio não precisa ficar esperando a instrução passar por todos os demais para carregar a próxima, e sim carregar uma nova instrução assim que se livra da primeira, ou seja, depois do primeiro pulso de clock. Outros estágios Previsão de desvio dinâmico Após concluída uma instrução do programa, para que o processador não perca um único ciclo de clock aguardando que o cache ou a memória RAM enviem a próxima instrução a ser processada, foi incluído no Pentium um buffer de pré extração. Este pequeno circuito armazena as próximas instruções a serem processadas, formando uma espécie de fila. Na verdade, o buffer de pré extração funciona como uma espécie de cache L0, ficando entre o processador e o cache L1. Execução especulativa Se o processador tivesse que processar uma instrução de tomada de decisão, como em “Se X > 0 então Y = 30, senão Y = 20”, enquanto a primeira canaleta do processador verifica se X é maior ou menor que 0, a segunda ao invés de ficar ociosa, pode executar uma das duas opções seguintes (atribuir o valor 30 ou atribuir o valor 20 a Y). No próximo ciclo, quando a primeira canaleta tivesse terminado de processar sua instrução, teríamos 50% de chance da segunda canaleta ter adivinhado qual seria a instrução seguinte e já têla executado. O nome “execução especulativa” foi dado por que a segunda canaleta escolhe aleatoriamente a instrução a executar, entre as duas possíveis. Evolução dos processadores Evolução dos processadores Data Prefetch O Data Prefetch é um recurso que permite carregar os dados de que o processador precisará para concluir suas próximas instruções. Mesmo operando na mesma freqüência do processador, sempre existe alguma perda de tempo ao se acessar o cache L1, o Data Prefetch diminui o número de acessos necessários, trazendo um pequeno ganho de desempenho. Power Now! O PowerNow! foi originalmente implantado nos processadores K6-2 e K6-3 destinados a notebooks. É um recurso de economia de energia, que permite alternar a freqüência de operação do processador conforme o nível de utilização. Acesso à Memória Para ler e gravar dados na memória, assim como controlar todo o trânsito de dados entre a memória e os demais componentes do micro, é usado mais um circuito, chamado controlador de memória, que faz parte do chipset localizado na placa mãe. Para facilitar o acesso a dados, dividimos os módulos de memória em linhas e colunas. Para acessar um determinado transístor (seja para gravar ou ler dados), o controlador de memória primeiro gera o valor RAS (Row Address Strobe), ou o número da linha da qual o transístor faz parte, sendo gerado em seguida o valor CAS (Collum Address Strobe), que corresponde à coluna. Acesso à Memória Barramento PCMCIA Este barramento é utilizado principalmente em notebooks e handhelds onde, na maioria das vezes, é o único meio de conectar placas de expansão. A principal vantagem dos dispositivos PCMCIA é o tamanho: todos possuem dimensões um pouco menores que as um cartão de crédito, apenas mais espessos. Atualmente é possível encontrar praticamente qualquer tipo de dispositivos na forma de placas PCMCIA: modems, placas de som, placas de rede, placas decodificadoras de DVD, cartões de memórias SRAM e memórias Flash e, até mesmo, discos rígidos removíveis. Slot´s AMR A sigla AMR é a abreviação de “Audio Modem Riser”. Este novo padrão de barramento comunica-se diretamente com o chipset, e permite o encaixe de placas de som e modems controlados via software. O slot AMR se parece com um slot AGP, mas tem apenas 1/3 do tamanho deste. O objetivo é permitir a criação de componentes extremamente baratos para serem usados em micros de baixo custo. Prioridade de execução das IRQ´s IRQ 0 - Sinal de clock da placa mãe (fixo) IRQ 1 - Teclado (fixo) IRQ 2 - Cascateador de IRQs (fixo) IRQ 3 - Porta serial 2 IRQ 4 - Porta serial 1 IRQ 5 - Livre IRQ 6 - Drive de disquetes IRQ 7 - Porta paralela (impressora) IRQ 8 - Relógio do CMOS (fixo) IRQ 9 - Placa de vídeo IRQ 10 – Livre IRQ 11 - Controlador USB IRQ 12 - Porta PS/2 IRQ 13 - Coprocessador aritmético IRQ 14 - IDE Primária IRQ 15 - IDE Secundária Funcionamento do DMA O DMA visa melhorar a performance geral do micro, permitindo que os periféricos transmitam dados diretamente para a memória, poupando o processador de mais esta tarefa. Existem 8 portas de DMA e, como acontece com os pedidos de interrupção, dois dispositivos não podem compartilhar o mesmo canal DMA, caso contrário haverá um conflito. Os 8 canais DMA são numerados de 0 a 7, sendo nos canais de 0 a 3 a transferência de dados feita a 8 bits e nos demais a 16 bits. O uso de palavras binárias de 8 bits pelos primeiros 4 canais de DMA visa manter compatibilidade com periféricos mais antigos. DMA 0 Disponível DMA 1 Placa de Som DMA 2 Controladora de drives de disquetes DMA 3 Porta paralela padrão ECP DMA 4 Reservado à placa mãe DMA 5 Placa de Som DMA 6 Disponível DMA 7 Disponível MFT – Master File Table No NTFS, a MFT substituiu a FAT, armazenando as localizações de todos os arquivos e diretórios, incluindo os arquivos referentes ao próprio sistema de arquivos. Mas, a forma como este mapeamento é feito difere um pouco do sistema FAT. Cada entrada de arquivo ou diretório no MFT possui 2 KB, onde são armazenados o nome do arquivo e seus atributos. Sobra então uma pequena área de dados, geralmente de 1500 bytes (pode ser maior ou menor, dependendo do espaço ocupado pelo nome e pelos atributos do arquivo) que é usada para guardar o início do arquivo. Caso o arquivo seja muito pequeno, ele poderá ser armazenado diretamente na entrada no MFT. Caso contrário, serão armazenados apenas os números dos clusters ocupados pelo arquivo. Em alguns casos, não é possível armazenar nem mesmo os atributos do arquivo no MFT, neste caso, os atributos serão gravados em clusters vagos do HD e a MFT conterá apenas entradas que apontam para eles. LFS – Log File Service Este é o principal responsável pela tolerância à falhas do sistema NTFS. Tolerância a falhas neste caso significa não perder dados ou estruturas do sistema de arquivos quando o sistema travar, ou houver qualquer outro imprevisto, ou que pelo menos, o estrago seja o menor possível. Para isso, o sistema mantém um Log com todas as alterações feitas no sistema de arquivo. Ao gravar um arquivo qualquer por exemplo, será primeiro gravada uma entrada no Log, com os detalhes sobre a operação, qual arquivo está sendo gravado, em que parte do disco, etc. ao terminar a gravação é gravada uma outra entrada, um OK confirmando que tudo deu certo. VFS – Virtual File System O Linux é provavelmente o sistema Operacional que suporta um maior número de sistemas de arquivos diferentes. Além do EXT2, EXT, Minix e Xia, são suportados os sistemas FAT 16 e FAT 32 do Windows, o HPFS do OS/2 além de vários outros sistemas como o proc, smb, ncp, iso9660, sysv, affs e ufs. O segredo para toda esta versatilidade é o uso do VFS ou “Virtual Filesystem”, um divisor de águas entre o sistema de arquivos e o Kernel e programas. A função do VFS é assumir toda a parte administrativa, traduzindo via software, todos os detalhes e estruturas do sistema de arquivos e entregando apenas os dados ao Kernel, que por sua vez, os entrega aos programas. LBA – Logical Block Addressing O padrão IDE reserva 16 bits para o endereçamento do cilindro, 4 bits para o endereçamento da cabeça de leitura e mais 8 bits para o setor, totalizando 28 bits de endereçamento. O modo LBA abandona o endereçamento CHS, com endereços independentes para cilindros, cabeças e setores, passando a adotar um endereço único. Os setores passam então a receber endereços seqüenciais, 0, 1, 2, 3, 4 etc. assim como os clusters no sistema FAT. Os 28 bits de endereçamento permitem então 228 milhões de endereços, o que corresponde a HDs de até 137 GB. Dynamic Drive Overlays (DDO) Este pequeno programa substitui as instruções do BIOS, permitindo superar suas limitações. Existem tanto programas destinados a placas mãe com limite de 504 MB, quanto para placas mãe com limite de 7.88 GB. Como o disco só pode ser acessado com a ajuda do programa, é preciso instalá-lo antes do sistema operacional. Uma vez instalado, ele passa a ser referenciado no setor de Boot do HD, e passa a ser carregado sempre que o micro é ligado. Cálculo do Tempo de Latência Dentro do disco rígido, os discos magnéticos giram continuamente. Por isso, dificilmente os setores a serem lidos estarão sob a cabeça de leitura/gravação no exato momento de executar a operação, podendo, no pior dos casos, ser necessário uma volta completa do disco até o setor desejado passar novamente sob a cabeça de leitura. O tempo de latência é tão importante quanto o tempo de busca. Felizmente, ele é fácil de ser calculado, bastando dividir 60 pela velocidade de rotação do HD, medida em RPM (rotações por minuto), e multiplicar por 1000. Teremos então o tempo de latência em milessegundos. Um HD de 5200 RPM, por exemplo, terá um tempo de latência de 11.5 milessegundos (o tempo de uma rotação), já que 60 ÷ 5200 x 1000 = 11.5 Geralmente é usado o tempo médio de latência, que corresponde à metade de uma rotação do disco, assumindo que os clusters desejados estarão, em média, a meio caminho do cabeçote. Um HD de 5200 RMP teria um tempo de latência médio de 5.75ms. Contato Frank S. F. Bastos E-MAIL.: [email protected] MSN.: [email protected] Skype.: frankbastos