FUNDAMENTOS DA COMPUTAÇÃO
Aula 3 – Parte 1
Instrutor.:
Frank S. Fernandes Bastos (frank.bastos@gmail.com)
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.: Frank.bastos@gmail.com
MSN.: frankbastos@hotmail.com
Skype.: frankbastos
Download

Apresentação do PowerPoint