ARQUITETURA DE COMPUTADORES Arquitetura de Von Newmann Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br
Vídeos Vídeo aula RNP http://edad.rnp.br/rioflashclient.php?xmlfile=/ufjf/licenciatura_com putacao/eaddcc007/unidade2/unidade2.xml
Arquitetura de Von Newmann Computadores eram um grande grupo de componentes de difícil troca. Para tentar resolver o caos que eram os projetos dos computadores na década de 50, um grupo de pesquisadores sugeriram a divisão do computador em partes funcionais. Como o líder do grupo era Von Newmann, essa arquitetura acabou ganhando o seu nome.
Arquitetura de Von Newmann A partir dessa divisão do computador em partes funcionais, a industria foi impulsionada a se especializar nas partes do computador e não mais nele como um todo. Esse modelo é seguido até os dias de hoje.
Arquitetura de Von Newmann Executa as instruções dos programas e controla o funcionamento de todo o computador Canais de Cominação, barramento, grande gargalo
Execução de Programas
Execução de Programas
Execução de Programas
Execução de Programas
Conceito de programa Sistemas hardwired são inflexíveis. Hardware de uso geral pode fazer diferentes tarefas, dados sinais de controle corretos. Ao invés de religar o hardware, forneça um conjunto de sinais de controle.
O que é um programa? Uma sequência de etapas. Para cada etapa, é feita uma operação aritmética ou lógica. Para cada operação, é necessário um conjunto diferente de sinais de controle.
Função da unidade de controle Para cada operação, um código exclusivo é fornecido. P.e. ADD, MOVE. Um segmento de hardware aceita o código e emite os sinais de controle. Temos um computador!
Componentes A Unidade de Controle e a Unidade Lógica e Aritmética constituem a Unidade Central de Processamento. Dados e instruções precisam entrar no sistema, e resultados saem dele. Entrada/saída. É necessário um armazenamento temporário de código e resultados. Memória principal.
Componentes do computador: visão de alto nível
Memória Instruções armazenadas em valores binários Dados armazenados (obviamente??) como números binários Programas e dados são armazenados na mesma memória
Memória A memória de um sistema computacional tem a função de armazenar dados e instruções. Organizada em posições; Podem ser visualizadas como elementos de uma matriz; Cada elemento tem um endereço. Então uma memória que tenha x posições: Cada posição pode ser referenciada diretamente de acordo com a sua colocação na sequência; Se uma memória tem 4096 posições existem posições de 0,..., 4095; Instruções são executadas em uma sequência determinada pela sua posição de memória
Memória Memória é formada por elementos armazenadores de informações; É dividida em palavras; Cada palavra é identificada unicamente por um endereço; Conteúdo armazenado nas palavras da memória tanto pode representar dados como instruções;
Memória REM: registrador de endereços da memória. Contém o endereço do dado a ser lido ou escrito na memória RDM: registrador de dados da memória. Contém o dado a ser escrito na memória (write) ou lido da memória (read) Sinais de controle: Read: leitura da memória o conteúdo da posição de memória endereçada por REM é copiado em RDM; Write: escrita na memória a posição de memória endereçada por REM recebe o conteúdo de RDM;
Memória
Memória Computador : Máquina de solucionar problemas através de instruções que lhe são fornecidas. Programa : Sequência de instruções que descrevem determinada tarefa. Exemplo de Instruções : some dois números (ADD). mova um dado de uma parte a outra (LD). Linguagem de Máquina: Conjunto de instruções primitivas do computador (L1), ou seja, conjunto de 0s e 1s para execução das instruções.
Memória
Memória
Memória
Ciclo de instrução Duas etapas: Busca Execução
Ciclo de busca Contador de Programa (PC) mantém endereço da próxima instrução a buscar. Processador busca instrução do local de memória apontado pelo PC. Incrementar PC: A menos que seja informado de outra forma. Instrução carregada no Registrador de Instrução (IR). Processador interpreta instrução e realiza ações exigidas.
Ciclo de execução Processador-memória: Transferência de dados entre CPU e memória principal. E/S do processador: Transferência de dados entre CPU e módulo de E/S. Processamento de dados: Alguma operação aritmética ou lógica sobre dados. Controle: Alteração da sequência de operações. P.e. salto. Combinação dos itens anteriores.
Exemplo de execução de programa
Diagrama de estado do ciclo de instrução
Busca Decodificação -Execução
Busca Decodificação -Execução Um elemento no processador denominado contador de instruções (PC), contém a posição da próxima instrução a ser executada; Quando uma sequencia de execução de instrução tem início, a instrução cujo endereço está no PC é trazida da memória para uma área de armazenamento chamada registrador de instrução (IR). Chamado de busca A instrução é interpretada por circuitos de decodificação que fazem com que os sinais eletrônicos sejam gerados no processador. Chamado de decodificação
Busca Decodificação -Execução Esses sinais resultam na execução. Execução é a aplicação da função do operador nos operandos; Quando uma execução de uma instrução é terminada, o contador de instruções é atualizada para o endereço de memória para próxima instrução; Esta instrução é então trazida da memória para o IR e executada, repetindo assim o ciclo de buscadecodificação-execução;
barramentos Para que os dados sejam trocados entre as partes do computador (CPU, Memória e I/O) são necessários canais de comunicações entre esses dispositivos. Esses canais são chamados de barramentos. Eles são responsáveis por transportar: Dados Sinais de Controle Endereços Os barramentos são constituídos de condutores elétricos organizados de forma paralela. Estes condutores são linhas de metal impressas em um cartão ou placa.
Módulos do computador
Conexão de memória Recebe e envia dados. Recebe endereços (de locais). Recebe sinais de controle: Leitura. Escrita. Temporização.
Conexão de entrada/saída Semelhante à memória do ponto de vista do computador. Saída: Recebe dados do computador. Envia dados a periféricos. Entrada: Recebe dados de periféricos. Envia dados ao computador.
Recebe sinais de controle do computador. Envia sinais de controle aos periféricos. P.e., girar disco. Recebe endereços do computador. P.e., número de porta para identificar periférico. Envia sinais de interrupção (controle).
Conexão da CPU Lê instruções e dados. Escreve dados (após processamento). Envia sinais de controle a outras unidades. Recebe (e atua sobre) interrupções.
Barramentos Existem diversos sistemas de interconexão possíveis. Estrutura de barramento único e múltiplo são mais comuns. P.e., barramento de Controle/Endereço/Dados (PC). P.e., Unibus (DEC-PDP).
O que é um barramento? Um caminho de comunicação conectando dois ou mais dispositivos. Normalmente, broadcast. Frequentemente agrupado. Uma série de canais em um barramento. P.e., barramento de dados de 32 bits são 32 canais de bits separados. Linhas de potência podem não ser mostradas.
Barramento de dados Transporta dados. Lembre-se de que não existe diferença entre dados e instruções neste nível. Largura é um determinante fundamental do desempenho. 8, 16, 32, 64 bits.
barramentos É utilizado pra transferir dados entre os módulos do sistema. Normalmente, este barramento contém a quantidade de linhas (largura do barramento) conforme o processador (16 bits, 32 bits, 64 bits). Sendo que para cada bit a ser transmitidos temos uma linha do barramento, ou seja, se o processador é 64 bits, o barramento de dados têm 64 linhas. O desempenho do sistema sofre forte influência da largura do barramento de dados. Por exemplo, se o barramento de dados tiver 8 bits de largura e cada instrução tiver tamanho igual a 16 bits, o processador precisará acessar 2 vezes o módulo de memória em cada ciclo de instrução.
barramentos É utilizado para designar a origem ou destino dos dados que estão sendo transferidos pelo barramento de dados. Exemplo: em qual posição de memória um dado será lido/escrito ou para qual dispositivo de I/O o dado deve ser enviado. A largura do barramento de endereços determina a capacidade máxima da memória. Por exemplo, suponha que o barramento de endereço é de 32 bits, dos quais 24 bits são utilizados para representar um endereço de memória. Assim podemos endereçar 2 24 (2 4 *2 20 = 16 MB) posições de memória diferentes. As demais linhas são utilizada para endereços dispositivos de I/O.
barramentos As linhas de controle são fundamentais no sistema computacional, pois controlam o acesso e a utilização das linhas de dados e de endereços pelos componentes do sistema. Os sinais de controle podem ser destinados a emitir comandos e também informações de temporização (clock). Os sinais de comandos são enviados para especificar o tipo de operação que será executada (escrita e leitura na memória, escrita e leitura em porta de E/S, requisição e concessão do barramento, interrupção, etc).
barramentos O barramento opera da seguinte forma: Quando um módulo deseja enviar dados para outro módulo, ele deve: 1. obter o controle do barramento, 2. transferir os dados por meio do mesmo, Quando um módulo deseja requisitar dados de outro módulo, ele deve: 1. obter o controle do barramento, 2. transferir uma requisição para o outro módulo por meio das linhas de endereço e de controle apropriadas. Feito isso ele deve aguardar que os dados sejam enviados.
barramentos O barramento deve permitir os seguintes fluxos de transferências de informações: 1. memória para o processador: instruções ou dados. 2. processador para a memória: dados. 3. E/S para o processador: dados de um dispositivo de E/S são lidos pela CPU através de um módulo de E/S. 4. processador para E/S: dados são enviados para um dispositivo de E/S. 5. transferência entre um dispositivo de E/S e memória: DMA (Acesso Direto à Memória).
Barramento de endereço Identifica origem ou destino dos dados. P.e., CPU precisa ler uma instrução (dados) de determinado local na memória. Largura do barramento determina capacidade máxima da memória do sistema. P.e., 8080 tem barramento de endereço de 16 bits gerando espaço de endereços de 64k.
Barramento de controle Informação de controle e temporização: Sinal de leitura/escrita de memória. Solicitação de interrupção. Sinais de clock.
Processador Consegue ler dados e instruções para serem processados. Além disso, sinais de controle são gerados para coordenar a execução do sistema como um todo. É possível que o processador receba sinais de interrupção de outros componentes, pedindo que determinadas ações sejam realizadas.
Memória A operação de leitura ou escrita é indicada através de um sinal de controle (bit 0 ou 1). O endereço da posição de memória para que a operação seja realizada também deve ser informado.
I/O (E/S): Também pode realizar operações de leitura ou escrita sobre o dispositivo externo. Cada controladora está associada a um endereço (porta) distinto para que possa ser identificada. Além disso, sinais de interrupção podem ser emitidos e direcionados ao processador.
Esquema de interconexão de barramento
Realização física da arquitetura de barramento
barramentos
Problemas do barramento único Muitos dispositivos em um barramento levam a: Atrasos de propagação Longos caminhos de dados significa que a coordenação do uso do barramento pode afetar contrariamente o desempenho. Se a demanda de transferência de dados agregada se aproxima da capacidade do barramento. A maioria dos sistemas utiliza múltiplos barramentos para contornar esses problemas.
Estrutura de barramento tradicional (ISA) (com cache)
Arquitetura de alto desempenho
Tipos de Barramentos Os barramentos, conforme a complexidade do sistema computacional, podem ser: Internos: dentro do processador; Sistema: interligação clássica entre os componentes da máquina de Von Newmann Expansão ou Externos: nos computadores atuais, são utilizados para que possamos controlar uma gama maior de dispositivos de I/O.
Barramentos de Expansão São utilizados para que possamos inserir diversos periféricos em um mesmo sistema computacional, controlando de forma adequada este grupo de periféricos.
OBRIGADO!