Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização e Arquitetura de Computadores Prof. Guilherme Esmeraldo Aula 1 • Arquitetura – Atributos visíveis ao programador – Ex: • Conjunto de instruções • Número de bits uGlizado para representar dados • Mecanismos de E/S • Modelos de endereçamento • Organização – Unidades operacionais e suas interconexões – Ex: • Sinais de controle • Tecnologias de memórias, processadores, etc. • Interfaces entre periféricos e o computador Aula 1 • Sistema hierárquico – Conjunto de subsistemas inter‐relacionados, cada qual, por sua vez, possuindo também uma estrutura hierárquica, em seu nível mais baixa, subsistemas elementares. • Em cada nível o projeGsta deve considerar: – Estrutura: como os componentes estão inter‐ relacionados – Função: operação de cada componente individual Aula 1 • Função Aula 1 • Estrutura Aula 1 • Estrutura Aula 1 • Programa da Disciplina Aula 2 • Breve Histórico da Evolução – Primeira geração: válvulas eletrônicas • Eniac – Eletronic Numerical Integrator and Computer – Mauchly e Eckert (Pensilvânia, 1946) – Primeiro computador digital de propósito geral – 18k Válvulas, 140 m2 , 30 ton, 140 quilowahs, 5k adições/s – Representação decimal – 20 acumuladores (memória) para decimais de 10 digitos – Operou até 1955 Aula 2 • Breve Histórico da Evolução – A máquina de Von Neumann • Conceito de Programa Armazenado (pub. em 1945) • IAS (1952) – Uma memória principal (dados e instruções) – Uma unidade lógica e aritméGca (ULA), operações com dados binários – Uma unidade de controle, interpreta e executa instruções armazenadas na memória – DisposiGvos de E/S, operados pela unidade de controle. Aula 2 • Breve Histórico da Evolução – A máquina de Von Neumann Aula 2 • Breve Histórico da Evolução – Segunda geração: Transistores • Bell Labs, 1947 • Menor, mais barato e dissipa menos calor • Uso comercial a parGr do final da década de 50 Aula 2 • Breve Histórico da Evolução • ULAs e UC mais complexas • Linguagens de programação de alto nível • So#ware de Sistema • Digital Equipment CorporaGon (DEC) – PDP (1957) – Deu início aos microcomputadores Aula 2 • Breve Histórico da Evolução – Terceira Geração: circuitos integrados • Final de 50 e início de 60: equipamentos eletrônicos com componentes discretos (resistores, capacitores, transistores, etc.) • Problemas na Indústria de Computadores – Computadores com cerca de 10k transistores • Com os Cis (1958) houve o início da microeletrônica. Aula 2 • Breve Histórico da Evolução – Microeletrônica • Os componentes de um computador digital devem desempenhar funções de armazenamento, transferência, processamento e controle. • Para tanto são necessários dois Gpos de componentes: – Portas lógicas: funções lógicas ou booleanas » Processamento de dados / Transferência de dados / Controle – Memórias: armazenam um valor binário » Armazenamento de dados / Transferência de dados / Controle Aula 2 • Breve Histórico da Evolução Aula 2 • Breve Histórico da Evolução • Os Cis exploram o fato de que componentes (transistores, resistores, condutores, etc) podem ser fabricados a parGr de um único semicondutor (silício) • Assim é possível produzir simultaneamente milhares de transistores em uma única lâmina de silício. • Esses transistores podem ser conectados entre si, por um processo de metalização, para formar os circuitos. Aula 2 • Breve Histórico da Evolução Aula 2 • Breve Histórico da Evolução – Inicialmente, SSI (Small Scale IntegraGon) – Depois Lei de Moore • 60: a quanGdade de transistores dobrava a cada ano • A parGr de 70: a cada 18 meses. • Consequências: – Custos de implementação caíram – Componentes mais próximos, aumento da velocidade – Computador cada vez menor – Redução do consumo de energia e necessidade de aumento de resgfriamento – Conexões muito mais confiáveis do que conexões soldadas. Aula 2 • Breve Histórico da Evolução Aula 2 • Breve Histórico da Evolução – ÚlGmas Gerações: • LSI (Large Scale IntegraGon): + de 1k componentes • VLSI (Very LSI): + de 100k componentes • Fairchild (1970): primeira memória de semicondutores – 256 bits – 70 bilionésimos de segundo para ler 1 bit – Preços bem mais baixos – Gerações: » 1k, 4k, 16k, 64k, 256k, 1M, 4M, 16M, 64M, 128M, 265M, 512M, 1G, 2G... Aula 2 • Breve Histórico da Evolução – Intel 4004 (1971): primeira pasGlha com todos os componentes de uma CPU – Somas de números de 4 bits – MulGplicação por somas repeGdas – Intel 8008 (1972): primeiro microprocessador de 8 bits – Intel 8080 (1974): primeiro microprocessador de propósito geral » 8 bits, + instruções e grande endereçamento de memória – Final de 70: microprocessadores de propósito geral (16 bits) » Intel 8086 – Bell Labs e HP desenvolveram em 1981, microprocessadores de 32 bits de uma única pasGlha. » Intel 80386 Aula 3 • Projeto que visa desempenho – Poder de processamento é virtualmente gratuito. • Custo dos transistores é baixíssimo. – Assim possibilitou o desenvolvimento de aplicações com recursos e complexidade espantosos: • Processamento de imagens, reconhecimento de voz, videoconferência, mulGmídia, aplicações cienqficas, etc. • Aplicações comerciais dependem de estações servidoras de capacidades de processamento cada vez maior. Aula 3 – Por um lado os blocos básicos dos computadores de hoje conGnuam sendo praGcamente os mesmos do computador IAS (50 anos atrás), por outro as técnicas para obter o máximo desempenho a parGr dos recursos disponíveis tornaram‐se cada vez mais sofisGcadas. Aula 3 • Velocidade do microprocessador – A evolução das máquina confirma a Lei de Moore. • Os fabricantes poderão lançar uma nova geração de pasGlhas a cada três anos ‐ qtde de transistores 4 vezes maior do que a geração anterior. – Desde que Intel lançou a família x86, o desempenho dos microprocessadores aumentou 4 a 5 vezes a cada 3 anos (novos circuitos e redução das distâncias entre componentes) • Para as pasGlhas de memórias (RAM), isso quadruplicou, a cada três anos. Aula 3 – Porém, a grande velocidade dos microprocessadores não será aproveitada, a menos que possam ser alimentados com um fluxo constante de instruções de processamento. – Entre as novas técnicas: • Previsão de desvios • Análise de fluxo de dados (escalonamento de instruções) • Execução especulaGon Aula 3 • Balanceamento do desempenho – Enquanto a velocidade do processador cresceu assustadoramente, outros componentes críGcos não acompanharam essa evolução. • Necessário buscar um bom balanceamento de desempenho. – O problema mais críGco decorre no interface entre o processador e a memória principal. Aula 3 Aula 3 Aula 3 – Este problema pode ser atacado de várias formas: • Ampliar o número de bits obGdos em cada acesso, aumentando‐se a largura das memórias em vez de sua capacidade e uGlizando barramentos de dados mais largos. • Mudar a interface da memória para torná‐la mais eficiente, usando uma memória cache ou outro esquema de armazenamento temporário na pasGlha da memória DRAM. • Reduzir frequência de acesso à memória, incorporando estruturas de memórias cache eficientes e complexas entre o processador e a memória principal. Aula 3 • Aumentar a largura de banda da conexão entre processadores e memórias usando barramento de alta velocidade e uma hierarquia de barramentos para estruturas o fluxo de dados e armazenar os dados temporariamente.– Outra área de projeto importante é a dos disposiGvos de E/S. • À medida que os computadores se tornam mais rápidos e poderosos, foram desenvolvidas aplicações mais sofisGcadas que fazem uso de periféricos com grande demanda por E/S Aula 3 Aula 3 • A questão‐chave do projeto é o balanceamento. – Equilíbrio entre demandas de transferências de dados e processamento dos diversos componentes do processador, da memória principal, dos disposiGvos de E/S e das extruturas de interconexão. Aula 3 • O projeto deve ser constantemente avaliado de modo que se adapte a dois fatores que evoluem constantemente: – A taxa de variação de desempenho nos diversos Gpos de componentes(processador, memória, barramentos, etc.) – O desenvolvimento de novas aplicações e novos disposiGvos periféricos muda constantemente a natureza da demanda no sistema. Aula 4 • Componentes de um computador – O computador é composto de um pequeno conjunto de componentes lógicos básicos, que podem ser combinados de vários modos para armazenar dados binários e executar operações aritméGcas e lógicas sobre esses dados. – Esse processo de conectar os diferentes componentes do sistema para obter configuração desejada pode ser concebido como uma forma de programação, onde o programa resultante é chamado programa hardwired. Aula 4 Aula 4 • Agora suponha que construímos uma configuração de funções lógicas e aritméGcas de propósito geral. Esse conjunto de componentes de hardware é capaz de executar várias funções sobre os dados, dependendo dos sinais de controle que lhe são aplicados. Aula 4 Aula 4 • Programar agora ficou muito mais fácil. Em vez de projetar um novo hardware para cada aplicação nova, precisamos apenas fornecer uma novo sequência de códigos. Cada código corresponde a uma instrução; uma parte do hardware interpreta essas instruções e gera os sinais de controle correspondentes. • Para disGnguir esse novo método de programação , uma sequência de códigos ou instruções é chamada de sovware. Aula 4 – Vários outros componentes ainda são necessários: • Módulo de entrada de dados: contém componentes básicos que recebem dados e instruções, em algum formato, e os converte em uma representação interna, composta de sinais usados pelo sistema. • Módulo de E/S: Exibir os resultados produzidos • Módulo de armazenamento temporário: armazenar dados e instruções temporariamente. – Conjunto de posições idenGficadas por endereços numerados seqüencialmente. Cada posição contem um número binário que pode ser interpretado como uma instrução ou como um dado. Aula 4 Aula 4 – O processamento necessário para a execução de uma instrução é chamado de ciclo de instrução. Aula 4 – No inicio de cada instrução, o processador busca uma instrução da memória. • Em um processador qpico, um registrador chamada contador de instruções (PC – program counter) é usado para guardar o endereço da próxima instrução a ser buscada na memória. • A instrução buscada é carregada no registrador conhecido como registrador de instruções (IR – intrucGon register) – Assim, o processador interpreta a instrução e executa a ação requistada. Em geral, as ações são classificadas em: Aula 4 • Processador‐memória: transferência de dados para/da memória do/para processador • Processador‐E/S: transferência de dados entre o processador e um disposiGvo periférico por meio de um módulo de E/S • Processamento de dados: execução de operações aritméGcas ou lógicas sobre os dados • Controle: determinadas instruções podem especificar que a sequência de execução de instruções seja alterada. – A execução de uma instrução pode envolver uma combinação dessas ações. Aula 4 Aula 4 Aula 4 – Processadores modernos incluem instruções que contêm mais de uma referência à memória (ou E/ S). – Ex: ADD B, A (PDP‐11) • A instrução ADD é buscada • O conteúdo do endereço de memória A é carregado no processador • O conteúdo do endereço de memória B é carregado no processador. • Os dois valores são somados • O resultado obGdo é armazenado no endereço de memória A. Aula 4 Aula 5 • Interrupções – Quase todos os computadores possuem algum mecanismo pelo qual componentes disGntos do processador podem interromper a seqüencia normal de execução de instruções. Aula 5 Aula 5 • Interrupções – O mecanismo de interrupções visa, principalmente, melhorar a eficiência de processamento. • Suponha que o processador esteja transferindo dados para uma impressora uGlizando o esquema de ciclo de instrução. Como a maioria dos disposiGvos externos é muito mais lenta que o processador, este deve esperar o término da operação de escrita, permanecendo ocioso até que a impressora termine de capturar os dados. Aula 5 Aula 5 Aula 5 Aula 5 Aula 5 Aula 5 Aula 5 Aula 5 Aula 5 • MúlGplas Interrupções – Na discussão precedente, consideramos a possibilidade de ocorrência de uma única interrupção. Entretanto, supomos que podem ocorrer várias interrupções. • Ex: impressora gera interrupção sempre que completa uma impressão e um controlador de linha gera uma interrupção sempre que chega uma unidade de dados. Aula 5 Aula 5 Aula 5 Aula 5 • Funcionamento da E/S – Um modulo de E/S (e.g. Controlador de disco) pode trocar dados diretamente com o processador. Assim como o processador pode iniciar uma operação de leitura ou escrita na memória, designando um endereço específico, ele pode também ler ou escrever dados em um módulo de E/S. Aula 5 • Funcionamento da E/S – Em alguns casos, é preferível que a transferência de dados de E/S seja feita diretamente para a memória. O processador permite o acesso de leitura e escrita na memória a um módulo de E/S, de modo que as transferências de dados entre a memória e a E/S sejam realizadas sem a intervenção do processador. Essa operação é conhecida como Acesso Direto à Memória (DMA). Aula 6 • Estruturas de Interconexão – Um computador consiste de um conjunto de componentes ou módulos de três Gpos básicos(processador, memória, E/S) que se comunicam entre si. Aula 6 Aula 6 • A coleção de caminhos que conectam os vários módulos é chamada estrutura de interconexão. • Várias estruturas de interconexão têm sido uGlizadas ao longo dos anos. As comuns são o barramento e as várias estruturas de múlGplos barramentos. Aula 6 • Interconexão de barramentos • Um barramento é um caminho de comunicação entre dois ou mais disposiGvos. Uma caracterísGca básica de um barramento é ser um meio de transmissão comparGlhado. • Diversos disposiGvos podem ser conectados a um barramento, podendo um sinal transmiGdo por qualquer dos disposiGvos ser recebidos por todos os outros conectados ao barramento. • Se dois disposiGvos transmitem ao mesmo tempo, esses sinais irão se sobrepor e serão adulterados. Para que a transmissão acorra com sucesso, apenas um disposiGvo pode transmiGr a cada instante. Aula 6 • Um barramento consiste em vários caminhos ou linhas de comunicação, cada qual capaz de transmiGr sinais que representam um dígito binário, 0 ou 1. As linhas do barramento podem ser usadas, em conjunto, para transmiGr vários dígitos binários simultaneamente. • Um sistema de computação contém diversos barramentos, que fornecem caminhos de comunicação entre os componentes, nos vários níveis da hierarquia do sistema. O barramento usado para conectar os componentes principais (processador, memória, E/S) é conhecido comobarramento do sistema. As estruturas de interconexão mais comuns são baseadas no uso de um ou mais barramentos do sistema. Aula 6 Aula 6 • Linhas de dados – Caminho para transferência de dados entre módulos do sistema – Chamado de barramento de dados – Contém Gpicamente 8, 16, 32 ou 64 linhas – O número de linha é conhecido como largura do barramento de dados – A largura é um parâmetro fundamental para o desempenho global do sistema • Ex. Barramento de 8 bits e instruções de 16 bits Aula 6 • Linhas de Endereço – São uGlizadas para designar a fonte ou desGno dos dados transferidos pelo barramento de dados – A largura determina a capacidade máxima da memória do sistema. – As linhas de endereço são uGlizadas para endereçar as portas de E/S. • 01111111 para memória e 10000000 para E/S Aula 6 • Linhas de Controle – São usadas para controlar o acesso e a uGlização das linhas de dados e de endereço. – Controla a uGlização dos barramentos de dados e endereço (comparGlhados) – Os sinais de controle são usados tanto para transmiGr comandos (operações a serem executadas) quanto para transmiGr informação de temporização (validade dos dados e endereços) entre módulos do sistema. Aula 6 Aula 6 • O barramento opera assim: – Um módulo de sistema deseja enviar dados para outro: • 1. obter controle de barramento • 2. transferir os dados por meio do barramento – Quando um módulo deseja requisitar dados de outro módulo: • 1. obter controle do barramento • 2. transferir uma requisição para o outro módulo por meio das linhas de endereço e de controle • 3. esperar que o outro módulo envie os dados pedidos. Aula 6 Aula 6 • Hierarquia de múlGplos barramentos – O desempenho do sistema pode ser prejudicado caso o número de disposiGvos conectados ao barramento seja muito grande. • 1. > no. de dispositos, > comprimento de um barramento, > atraso de propagação de sinais. • 2. O barramento pode se tornar um gargalo do sistema quando a demanda agregada por transferência de dados se aproxima da capacidade do barramento (pode ser contornado > taxa de transferência e > largura). Aula 6 • Entretanto, como as taxas de transferência de dados dos disposiGvos conectados vem crescendo rapidamente, certamente usar apenas um barramento torna‐se uma abordagem ultrapassada. • Assim, a maioria dos sistema computacionais uGliza múlGplos barramentos, geralmente dispostos de maneira hierárquica. Aula 6 Aula 6 Aula 7 • Elementos de projeto de barramentos – Embora existam vários Gpos de barramentos, poucos parâmetros podem ser empregados para classificar e diferenciá‐los. Aula 7 – Tipos • Dedicado – Função fixa ou é associado a um subconjunto de componentes zsicos de um computador. Ex: barramento de dados/ endereços. • MulGplexado – As linhas são comparGlhadas em tempos definidos (mulGplexação de tempo) » Vantagem: economia de espaço ‐> custo » Desvantagem: módulos com circuitos mais complexos • Dedicação zsica: vários barramentos, cada qual conectado apenas a um subconjunto de módulos – Vantagem: altas taxas de transferência – Desvantagem: aumento do tamanho e custo do sistema. Aula 7 – Métodos de arbitração • Centralizado – Um árbitro (módulo separado ou parte do processador) é responsável por alocar tempo de uGlização do barramento a cada módulo do sistema. • Distribuído – Não existe controle central. Cada módulo do sistema contém uma lógica de controle de acesso e os módulos agem de forma conjunta para comparGlhar o barramento. Aula 7 – Temporização • Refere‐se ao modo pelo qual os eventos nesse barramento são coordenados. – Síncrona: determinado pelo relógio (linha que transmite uma seqüência alternada de 1s e 0s na mesma frequência). Uma transmissão de um 1 e um 0 é chamada de ciclo de barramento. – Assíncrona: a ocorrência de um evento no barramento depende de um evento ocorrido anteriormente. Aula 7 Aula 7 Aula 7 • Largura do barramento – A largura do barramento de dados tem impacto sobre o desempenho do sistema:quanto maior a largura do barramento de dados, maior o número de bits transferidos de cada vez. – A largura do barramento de endereço tem impacto sobre a capacidade do sistema: quanto maior a largura do barramento de endereço, maior o número de posições de memória que podem ser endereçadas. Aula 7 • Tipos de transferências de dados – Um barramento permite vários Gpos de transferência de dados de escrita (mestre para escravo) e leitura (escravo para mestre). Aula 7 Aula 7 Aula 7 Aula 8 • Memória interna – Embora o conceito de memória seja aparentemente simples, é talvez aquele componente que apresentar maior variedade de Gpos, tecnologias, organizações, desempenhos e custos, entre todos os elementos de um sistema de computador. – Nenhuma das tecnologias de memórias existentes saGsfaz de maneira óGma todos os requisitos de armazenamento de dados em computadores. Aula 8 • Assim, um sistema de computador qpico é equipado com uma hierarquia de subsistemas de memória, algumas internas(diretamente acessíveis pelo processador) e outras externas (acessíveis pelo processador por meio de um módulo de E/S). Aula 8 Aula 8 • Classificação Aula 8 • Localização – Processador: registradores/cache – Interna: memória principal – Externa: disposiGvos periféricos de armazenamento (disco e fitas) • Acessíveis ao processador através de controladores de E/S Aula 8 • Capacidade – Na memória interna normalmente expressa em função de bytes ou palavras. • Os tamanhos mais usuais de palavras são: 8, 16, 32 bits – Na memória externa, a capacidade é Gpicamente expressa em função de bytes. – Tamanho e número de palavras Aula 8 • Unidade de transferência de dados – Na memória interna a unidade de transferência é igual ao número de linhas de dados do módulo de memória (frequentemente igual ao tamanho da palavra). – Para entender melhor, considere: Aula 8 • Palavra: unidade natural de organização da memória. O tamanho de uma palavra é Gpicamente igual ao numero de bits usados para representar um número inteiro e ao tamanho da instrução. • Existem exceções: – CRAY 1 • Palavra = 64 bits e Inteiros = 24 bits – VAX • Palavra = 32 bits e intruções com tamanhos diferentes (múlGplos de byte). Aula 8 • Unidade endereçável: em muitos sistemas, a unidade endereçável de dados é a palavra. Entretanto, alguns sistemas permitem o endereçamento de bytes. – Em qualquer um dos casos, a relação entre o tamanho em bits A de um endereço e o número de unidades endereçaveis N é 2A = N Aula 8 • Unidade de transferência: a unidade de transferência de dados da memória principal é o número de bits que podem ser lidos ou escritos de cada vez. Ela não precisa ser igual a uma palavra ou à unidade endereçável de dados. Na memória externa, os dados são frequentemenet transferidos em unidade muito maiores do que uma palavra, chamadas de blocos. Aula 8 • Métodos de acesso – Acesso sequencial: os dados são organizados na memória em unidades chamadas registros. O acesso é feito segundo uma seqüência linear específica. Além dos dados, são armazenadas informações de endereçamento, uGlizadas para separar um registro do registro seguinte e facilitar o processo de busca por um determinado registro. Um mecanismo comparGlhado é usado para leitura e escrita; a cada operação ele deve ser movido de sua posição atual para a desejada, ignorando registros intermediários.Tempos de acesso são variáveis. • Ex: unidade de fita Aula 8 – Acesso direto: emprega mecanismo comparGlhado para leitura e escrita. Entretanto, cada bloco individual ou registro possui um endereço único, baseado em sua localização zsica. O acesso é feito por meio de um acesso direto a uma vizinhança genérica do registro e, em seguida, por uma pesquisa sequencial, por contagem ou por espera até aGngir a posição final. Tempos de acesso são variáveis. • Ex: unidade de disco Aula 8 – Acesso aleatório: cada posição de memória endereçável possui um mecanismo de endereçamento único e fisicamente conectado a ela. O tempo de acesso a uma determinada posição é constante e independente da sequência de acessos anteriores. Dessa maneira qualquer posição pode ser selecionada de modo aleatório, sendo endereçada e acessada diretamente. • Ex: memória principal e alguns sistemas de cache. Aula 8 – AssociaGvo: consiste em um Gpo de memória de acesso aleatório que possibilita comparar simultaneamente certo número de bits de uma palavra com todas as palavras da memória, determinando quais dessas palavras contêm o mesmo padrão de bits. Uma palavra é buscada na memória com base em uma parte do seu conteúdo, e não de acordo com o seu endereço. Cada posição da memória possui seu mecanismo de endereçamento próprio e o tempo de busca é constante e independente da posição ou do padrão dos acessos anteriores. • Ex: memórias cache Aula 8 – Desempenho • Tempo de acesso – Tempo gasto para efetuar uma operação de leitura ou de escrita » Acesso aleatório » Acesso não‐aleatório • Tempo de ciclo de memória – Tempo de acesso e o tempo adicional requerido antes que um segundo acesso possa ser iniciado. • Taxa de transferência – Taxa na qual os dados podem ser transferidos de ou para a unidade de memória. – Memória de acesso não‐aleatório Aula 8 – Tecnologias • Semicondutor, superzcie magnéGca, memórias ópGcas e magneto‐ópGcas. – CaracterísGcas zsicas • VoláGl, não‐voláGl, apagável e não‐apagável – Organização Aula 9
Compartilhar