Organização e Arquitetura de Computadores INTRODUÇÃO Organização e arquitetura de Computadores ● ● A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo de dados – 32 bits para um inteiro). A Organização de Computadores trata da estrutura interna que não é visível para o programador (ex. freqüência do relógio ou tamanho da memória física). Organização e arquitetura de Computadores ● ● Arquitetura são os atributos visíveis ao programador. – Conjunto de instruções, número de bits usados para representação de dados, mecanismos de E/S, técnicas de endereçamento. – Por exemplo, existe uma instrução de multiplicação? Organização é como os recursos são implementados. – Sinais de controle, interfaces, tecnologia de memória. – p.e., existe uma unidade de multiplicação no hardware ou ela é feita pela adição repetitiva? Organização e arquitetura de Computadores O que é um Computador? • Um computador é uma máquina eletrônica lógica • Programável – Programa • Instruções • Representável por uma hierarquia de níveis de abstração (Tanenbaum) – Microeletrônica (mais baixo) – Sistema Operacional (mais alto) Níveis de Abstração LINGUAGEM DE ALTO NÍVEL LINGUAGEM ASSEMBLY (ASSEMBLER) GERÊNCIA DE SISTEMA E INTERFACE DE USUÁRIO CONJUNTO DE INSTRUÇÕES INTERPRETADOR EM FIRMWARE UNIDADES LÓGICAS COMBINACIONAIS E SEQUENCIAIS CARACTERÍSTICAS FÍSICAS, MALHA DE TRANSISTORES Organização e arquitetura de Computadores Organização de um Computador • Modelo de Von Neumann (1945) – Concito de programa armazenado – Separação da Unidade Aritmética e de Controle – Utilização de barramentos e registradores – Hardware de entrada e saída (I/O) Organização e arquitetura de Computadores Organização e arquitetura de Computadores Organização e arquitetura de Computadores • Memória: Conjunto de posições/locações endereçáveis • Palavras: Posição/locação da memória, Contém dados e instruções • Palavra: Unidade básica de transferência de/para memória. • Palavras são localizadas através de um endereço • Dados, instruções e endereços são codificados em binário Organização e arquitetura de Computadores • Programa é uma seqüência de instruções, colocadas numa seqüência de endereços • A execução de um programa corresponde à execução seqüencial de suas instruções • A seqüência das instruções é definida de forma dinâmica em tempo de execução – Existência de instruções de controle de fluxo Organização e arquitetura de Computadores Computador IAS - um dos primeiros computadores a carregar programas e dados na mesma memória. • Programa é uma seqüência de instruções, colocadas numa seqüência de endereços • A execução de um programa corresponde à execução seqüencial de suas instruções • A seqüência das instruções é definida de forma dinâmica em tempo de execução – Existência de instruções de controle de fluxo Organização e arquitetura de Computadores Um buffer de memória Register (MBR) é o registro no processador de um computador, ou unidade central de processamento, CPU, que armazena os dados que estão sendo transferidos de e para o store.It acesso imediato contém a cópia de localizações de memória designados especificados pelo MAR.It atua como um tampão permitindo que as unidades de processador e memória para agir de forma independente, sem ser afetado por pequenas diferenças na operação. Um item de dados serão copiados para o MBR pronto para utilização no ciclo de relógio seguinte, quando ele pode ser quer utilizado pelo processador para leitura ou escrita ou armazenado na memória principal após ter sido escrito. Este registo contém o conteúdo da memória que está a ser transferido a partir da memória para outros componentes, ou viceversa. Uma palavra a ser armazenado deve ser transferido para o MBR, de onde segue para o local específico da memória, e os dados a serem processados aritméticas no ULA primeiro passa para MBR e, em seguida, para registo acumulado, e, em seguida, é transformado no ULA . Organização e arquitetura de Computadores MBR O Registrador de Buffer de Memória (Memory Buffer Register), ou Registrador Temporário da Memória, é um registrador utilizado para armazenar temporariamente os dados que foram lidos da memória ou dados que serão escritos na memória. Para escrever um dado na memória, o computador deve colocar o dado no registrador MBR, o endereço da palavra na qual o dado deve ser armazenado no registrador MAR e, por fim, enviar sinais de controle para a memória realizar a operação de escrita. Assim sendo, os registradores MAR e MBR, juntamente com os sinais de controle enviados pela unidade de controle, formam a interface da memória com o restante do computador. Organização e arquitetura de Computadores MQ O Acumulator e o Quociente de Multiplicação (Multiplier Quotient) são registradores temporários utilizados para armazenar operandos e resultados de operações lógicas e aritméticas. Por exemplo, a instrução que realiza a soma de dois números (ADD) soma o valor armazenado no registrador AC com um valor armazenado na memória e grava o resultado da operação no registrador AC. Organização e arquitetura de Computadores IR O Registrador de Instrução (Instruction Register), ou registrador de instrução, armazena a instrução que está sendo executada no momento. O circuito de controle da unidade de controle lê e interpreta os bits deste registrador e envia sinais de controle para o resto do computador para coordenar a execução da instrução. Organização e arquitetura de Computadores IBR O Registrador de Buffer de Instrução (Instruction Buffer Register) serve para armazenar temporariamente uma instrução. O IAS busca instruções da memória em pares - lembre-se de que uma palavra da memória (de 40 bits) contém duas instruções (de 20 bits). Dessa forma, quando o IAS busca um par de instruções, a primeira instrução é armazenada diretamente em IR e a segunda em IBR. Ao término da execução da primeira instrução (em IR), o computador move a segunda instrução (armazenada em IBR) para IR e a executa. Organização e arquitetura de Computadores PC O Contador de Programa (Program Counter) armazena um valor que representa o endereço da memória que possui o próximo par de instruções a serem executadas. No início, quando o computador é ligado, o conteúdo deste registrador é zerado para que a execução de instruções se inicie a partir do endereço zero da memória. Organização e arquitetura de Computadores MAR O Registrador de Endereço de Memória (Memory Address Register) armazena um valor que representa um endereço de uma palavra da memória. Este endereço será lido pela memória durante a operação de leitura ou escrita de dados.