Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização de Computadores Material Teórico Responsável pelo Conteúdo: Profa. Ms. Fábio Peppe Beraldo Revisão Textual: Profa. Esp. Márcia Ota Processadores e Pipeline • Organização de Computadores • O Pipeline • Fechamento • Estudo Complementar · O objetivo dessa unidade é capacitar o aluno a usar corretamente os registradores do computador consumindo menos memória ao mesmo tempo que acelera o ciclo de instruções. OBJETIVO DE APRENDIZADO Nesta Unidade, vamos aprender um pouco mais sobre o que é a Organiza- ção de processadores, o ciclo de instrução e o pipeline de instrução, comple- mentando as ideias de instruções já aprendidas. Leia o material com atenção e, se sentir necessidade, releia para que sua absorção seja adequada. Fique atento (a) nessa etapa, pois é o momento oportuno para registrar suas dúvidas; por isso, não deixe de registrá-las e transmiti-las ao professor-tutor. Além disso, para que a sua aprendizagem ocorra num ambiente mais interativo possível, na pasta de atividades, você também encontrará as atividades de avaliação, uma atividade reflexiva e a videoaula. Cada material disponibilizado é mais um elemento para seu aprendizado, por favor, estude todos com atenção! ORIENTAÇÕES Processadores e Pipeline UNIDADE Processadores e Pipeline Contextualização A Unidade Central de Processamento ou Central Processing Unit (CPU) é considerada por muitos o cérebro do computador; porém, podemos dizer que ele é o coração também, uma vez que gera informações que alimentam o sistema operacional e este, por usa vez, os programas. Tecnicamente, sua função é executar programas armazenados na memória principal, buscando suas instruções, examinando essas instruções e identificando seus comandos, então, executá-las sequencialmente. Nesta unidade da disciplina, aprenderemos como que a CPU realiza sua função e como as instruções se comportam quando migram entre as memórias. 6 7 Organização de Computadores Processadores Um processador tem a função de armazenar dados em uma memória e, então, usar esses dados para o correto processamento. Esse processamento envolve a busca de instruções do programa armazenado, exame e identificação dos opcodes e operandos dessa instrução e, por fim, a execução do mesmo para que o programa “rode” corretamente. Como já mencionado, para executar o processamento das instruções, a CPU usa uma quantidade de memória para o armazenamento temporário de dados, ela mantém a posição de memória da última instrução e, com isso, ela recebe o valor de endereçamento onde obtém a instrução seguinte para o processamento contínuo. Para realizar todo o trabalho corretamente, a CPU segue alguns passos como descritos a seguir: 1. Busca de instrução: a CPU lê uma instrução da memória. 2. Interpretação de instrução: a instrução é decodificada para determinar a ação requerida. 3. Busca de dados: a execução de uma instrução pode requerer leitura de dados da memória ou de um módulo de E/S. 4. Processamento de dados: a execução de uma instrução pode requerer efetuar uma operação aritmética ou lógica sobre os dados. 5. Escrita de dados: os resultados da execução podem requerer escrever dados na memória ou em um módulo de E/S. Na figura 1, há um diagrama simplificado da CPU. Conforme a figura, podemos resumir a CPU como um dispositivo composto por uma ULA (Unidade Lógica e Aritmética) e uma UC (Unidade de Controle), vimos na última unidade que a ULA tema a função de processar todas as instruções, conforme sua construção de opcodes e operandos, já a UC é responsável por controlar a transferência de dados e instruções entre a CPU e os demais componentes do computador, além de controlar o próprio funcionamento da ULA. Faz parte também da composição de uma CPU uma quantidade de memória especial chamada Registrador que tem a função de armazenar dados imediatos para o processamento. 7 UNIDADE Processadores e Pipeline UAL UCP RDM (MBR) ACC CI (PC) REM (MAR) MP UC RI (IR) Decodi�cador de instruçõesRelógio Controle Barramento de controle Barramento de endereços Barramento de dados Dados/Endereço Registradores 0 a R1 Figura 1: Estrutura da CPU com destaque para a ULA Fonte: Monteiro, M., Introdução a Organização de Computadores Uma visão mais atenta da figura 1 nos mostra todos os caminhos percorridos por um sinal dentro da CPU, sendo eles os caminhos de transferência de dados e a sinalização de controle da UC que por muitos é chamado de barramento interno de CPU. Esse sinal de controle é utilizado apenas para transferência interna das partes da instrução durante seu trabalho, sem contato com o ambiente externo à CPU, a esta comunicação externa cabe o trabalho do barramento de transferência de dados. Registradores Os registradores são unidades de memória de alto nível ou hierarquia que possuem duas funções definidas: · Registradores visíveis para o usuário: possibilitam ao programador de linguagem de montagem ou de máquina minimizar referências à memória, pela otimização do uso de registradores. · Registradores de controle e de estado: são usados pela unidade de controle para controlar a operação da CPU e por programas privilegiados do sistema operacional para controlar a execução de programas. Registradores Visíveis ao usuário Esses registradores são aqueles que o programador pode referenciar por conta própria via linguagem de máquina executada pela CPU e pode ser dividido em: 8 9 · Registradores de propósito geral: podem conter operandos que executem qualquer tipo de operação, sendo de propósito geral; porém, como tudo na vida, há exceções, onde esses registradores podem armazenar valores não gerais, como operações com número de ponto fl utuante ou pilhas. · Registradores de dados: podem ser usados apenas para conter dados e não podem ser empregados no cálculo de endereços de operandos. · Registradores de endereços: podem funcionar como os de propósito geral ou para um endereçamento especial como: * Registradores de segmento: utilizados para armazenar endereçamentos segmentados. * Registradores de índices: utilizados para endereçamentos indexados. * Apontador de topo de pilha: utilizado na pilha visível para o usuário; dessa forma, a pilha ficará alocada na memória, onde um registro especial endereçará o topo da pilha. · Registradores de códigos de condição ou fl ags: são bits utilizados pela CPU como resultados de operações. Registradores de controle e de estado Uma CPU utiliza vários tipos de registradores para controlar a operação e, por sua vez, a maioria dessas não são visíveis para o programador, em contraposto ao modelo anterior. Lembrando que diversas máquinas possuem registradores construídos de forma diferente. Então, foi preciso criar um padrão de registradores para funções específicas, como segue: · Contador de programa (PC): contém o endereço da instrução a ser buscada. · Registrador de instrução (IR): contém a última instrução buscada. · Registrador de endereçamento à memória (MAR): contém o endereço de uma posição de memória. · Registrador de armazenamento temporário de dados (MBR): contém uma palavra de dados a ser escrita na memória ou a palavra lida mais recentemente. Esses registradores são responsáveis pelo transporte de dados entre CPU e memória externa, sem que o usuário tome conhecimento dessa ação, sendo que dentro da CPU esses dados são entregues somente para a ULA. Há ainda a possibilidade de um registrador intermediário que interage entre o MBR e a E/S da ULA. 9 UNIDADE Processadores e Pipeline Uma vez clara a necessidade de diversos tipos de registradores na CPU, criou-se um conjunto conhecido como Palavra de Estado de Programa (PSW) que irá conter os códigos de condição além de informações do estado da instrução, constituídos dos seguintes campos: · Sinal: contém o bit de sinal do resultado da última operação aritmética. · Zero: atualizado com valor 1 se o resultado da última operação for O. · ‘Vai-um’:atualizado com valor 1 se uma operação resultar em um ‘vai-um’ para fora do bit de ordem superior (adição) ou em um ‘vem-um’ para o bit de ordem superior (subtração). É usado por operações aritméticas de múltiplas palavras. · Igual: atualizado com valor 1 se uma comparação lógica resultar em igualdade. · Overflow: usado para indicar overflow aritmético. · Habilitar/desabilitar interrupção: usada para habilitar ou desabilitar interrupções. · Supervisor: indica se a CPU está executando em modo supervisor ou em modo de usuário. Certas instruções privilegiadas apenas podem ser executadas no modo supervisor, assim como certas áreas de memória apenas podem ser acessadas no modo supervisor. É necessário também que a CPU possua um registrador que sempre aponte para um ponto na memória, onde haja informações do estado original da instrução. Quando esse ponto na memória for especificamente uma memória virtual, esse registrador apontará para a tabela de páginas. Uma forma de facilitar o desenvolvimento correto dos registradores ocorre quando o programador tem conhecimento total sobre sistemas operacionais, pois ele sabe como o sistema irá interagir com a CPU. O Clico de Instrução O ciclo de instruções de um computador ocorre quando a CPU busca uma instrução em um campo de memória. Para tanto, é utilizado um registrador chamado contador de instruções que sempre irá guardar o endereçamento da instrução a ser executa, ou seja, após fazer uma busca, o contador de instruções já armazena o endereçamento da próxima instrução para manter o processamento sequencial. Após a busca, a instrução deve ser entregue para o processador e isso ocorre através do carregamento dos dados no registrador de instruções do processador que criará bits que identificarão que ação o processador deve executar nos dados. Assim, ele pode interpretar a instrução e executar cada ação corretamente. Essas ações estão listadas a seguir: 10 11 · Processador-memória: transferência de dados do processador para a memória ou da memória para o processador. · Processador E/S: transferência de dados entre o processador e um dispositivo periférico por meio de um módulo de E/S. · Processamento de dados: execução de operações aritméticas ou lógicas sobre os dados. · Controle: determinadas instruções podem especificar que a sequência de execução de instruções seja alterada. O computador possui uma memória ou registro de armazenamento chamado AC (acumulador), considerando instruções e dados de 16 bits, organizamos a palavra do processador em 16 bits; assim, a instrução é construída contendo 4 bits para o código de operação, conforme estudado anteriormente. Para exemplificar o funcionamento do ciclo de instrução, vamos analisar a execução parcial de uma aplicação mostrada na figura 2. Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 1 Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 3 Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 5 Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 2 Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 4 Memória 300 1 9 4 0 301 5 9 4 1 302 2 9 4 1 940 0 0 0 3 941 0 0 0 2 Passo 6 Registradores da CPU 3 0 0 PC AC 1 9 4 0 IR Registradores da CPU 3 0 1 PC 0 0 0 3 AC 5 9 4 1 IR Registradores da CPU 3 0 2 PC 0 0 0 5 AC 2 9 4 1 IR Registradores da CPU 3 0 1 PC 0 0 0 3 AC 1 9 4 0 IR Registradores da CPU 3 0 2 PC 0 0 0 5 AC 5 9 4 1 IR 3 + 2 = 5 Registradores da CPU 3 0 3 PC 0 0 0 5 AC 2 9 4 1 IR Figura 2: Diagramação do Ciclo de Instrução Fonte: Stallings, W., Arquitetura e Organização de Computadores No passo 1, temos que o PC (contador de instruções) está em 300, ou seja, o programa já rodou 299 instruções e está, agora, executando a instrução 300 que é carregada no IR (registrador de instruções). No passo 2, os quatro primeiros bits do IR são interpretados, de forma que seu comando é o armazenamento do AC (acumulador) de um valor. O valor que deve ser armazenado no AC está descrito e endereçado (endereço 940) nos 12 bits restantes da instrução do IR. 11 UNIDADE Processadores e Pipeline No passo 3, o PC sobe para 301, ou seja, para o próximo ciclo de instrução que é, então, carregada para o IR. No passo 4, a instrução é interpretada e, como no passo 2, é identificado que uma soma deve ser feita com o conteúdo endereçado como AC e o endereçado como 941; por fim, o resultado deve ser endereçado de volta para AC, apagando o valor que lá havia. No passo 5, o PC muda, mais uma vez, para a próxima instrução que é buscada e carregada em IR. No passo 6, novamente, da mesma forma que no passo 2, a instrução é interpretada como a ação de armazenamento do valor do AC para o endereço de memória 941, sobrescrevendo o valor existente nessa posição. Na figura 2, foi descrito o funcionamento de uma execução de programa, utilizando três ciclos de instruções, todos com os momentos de busca e execução. Como sabemos, há processadores com arquiteturas complexas que podem ter vários comandos e endereçamentos de memória, o que reduziria o número de ciclos e, possivelmente, o tempo de processamento. Os estados de um ciclo de instruções podem ser descritos por: · Cálculo de endereço de instrução (CEI) - instruction address calculation: o endereço da próxima instrução a ser executada é determinado. Isso, geralmente, envolve a soma de um valor constante ao endereço da instrução anterior. · Busca de instrução (BI) - instruction fetch: uma instrução é lida da memória e armazenada no processador. · Decodificação de instrução (DI) - instruction operation decoding: o código da instrução a ser executada é analisado, para determinar qual é a operação a ser realizada e o(s) operando(s) a ser(em) usado(s). · Cálculo de endereço de operando (CEO) - operand address calculation: se a operação envolver a referência a um operando na memória ou se estiver disponível via E/S, o endereço do operando será determinado. · Busca de operando (BO) - operand fetch: o operando é localizado na memória ou é lido no dispositivo de E/S. · Execução da operação (EO) - data operation: a operação indicada na instrução é executada. · Armazenamento de resultado (AR) - operand store: o resultado é escrito na memória ou no dispositivo de E/S. 12 13 Instruction Fetch operando múltiplos retorno de cadeia de caracteres ou vetor instrução completa, busca de nova instrução sem interrupção resultados múltiplos Data Operation Instruction Address Calculation Instruction Operation Deconding Operand Address Calculation Interrupt Operand Fetch Interrupt Check Operand Address Calculation Operand Store Figura 3: Diagrama de transição de estados de um ciclo de instrução Fonte: Stallings, W., Arquitetura e Organização de Computadores Os estados na parte superior da figura 3 envolvem transferências de valores entre o processador, de um lado, e a memória ou um dispositivo de E/S, de outro. Os estados na parte inferior do diagrama envolvem apenas operações realizadas internamente no processador. O estado (CEO) aparece duas vezes, pois uma instrução pode envolver uma operação de leitura. Fluxo de dados do clico de instruções Não existe uma sequência correta única para o fluxo de dados, pois esse fluxo depende da forma como a CPU foi projetada; porém, é possível que se estime uma estrutura, ao menos, lógica, de como deve ser a sequência. Basicamente, um ciclo de busca é constituído de um momento onde a instrução é lida da memória. Nessa sequência, o PC mantém o endereço da próxima instrução que deve ser carregada. Esse endereço é carregado para o MAR (via address bus), A UC comanda que seja feita a leitura da memória e o valor lido é copiado no MBR e, então, para o IR (via data bus), o contador sobe um valor que é a próxima instrução a ser executada. A figura 4 mostra uma sequência de ciclo de instruções, demonstrando o fluxodas informações, semelhante ao apresentado na figura 2; porém, com a adição dos barramentos que realizam o transporte dos dados da instrução para seus respectivos controladores. 13 UNIDADE Processadores e Pipeline Unidade de Controle PC MAR CPU Memória MBR Barramento de endereço IR Barramento de dados Barramento de controle Figura 4: Fluxo de dados do clico de busca Fonte: Stallings, W., Arquitetura e Organização de Computadores O Pipeline Podemos dizer que um pipeline funciona de forma semelhante a uma linha de montagem uma vez que as instruções passam por uma sequência de estágios. Vamos tomar o seguinte exemplo: Sabemos que um ciclo de instrução possui várias etapas. Então, vamos pegar as etapas de busca e execução das instruções, enquanto parte da instrução está sendo executada a memória não está trabalhando. Nesse momento, nesse instante, a memória poderia ser utilizada em paralelo com a execução; dessa forma, o pipeline executa duas funções paralelamente, enquanto uma parte da instrução é executada a próxima está sendo armazenada de forma temporária, quando a execução termina, a memória de trabalho recebe o valor carregado na memória temporária e começa uma nova execução. Enquanto isso, uma nova instrução é carregada temporariamente e assim por diante. Chamamos essa sequência de trocas de função de busca antecipada de instrução (instruction prefetch) ou superposição de busca (jetch overlap). A figura 5 mostra duas formas de execução: na primeira (a), há uma execução sem pipeline e na segunda forma (b), há uma execução com pipeline, conforme a descrição de pipeline. 14 15 Busca Instrução Execução Instrução (a) Resultado Busca Instrução Execução Instrução Novo endereçoEsfera (b) Descarte Resultado Esfera Figura 5: Demonstração lógica do trabalho do pipeline Fonte: Stallings, W., Arquitetura e Organização de Computadores Com essa explicação, fica óbvio que usando o pipeline o tempo de execução do ciclo diminui bastante; porém, isso só ocorre quando os tempos de busca e execução são o mesmo, o que dificilmente acontece, pois é comum que o tempo de execução seja maior que o de busca devido às maiores operações que devem ser feitas. Quando há instruções de desvio, a próxima instrução que deve ser buscada não teve aquele carregamento prévio pois seu endereçamento não é conhecido, e a busca em paralelo com a execução não é possível, pois essa descoberta só ocorre durante a execução. O desvio condicional é quando uma instrução sendo executada faz referência a outra instrução ou dado em um determinado endereçamento diferente daquele sequencial à execução do programa. Essa referência servirá como dado para se alcançar o resultado da instrução em execução no momento e despois é descartada; porém, esse desvio de percurso gera um atraso no ciclo e impede a correta execução do pipeline. Para tentar solucionar o problema das instruções de desvio ou desvio condicional, é executada uma estratégia de adivinhação, tecnicamente chamada de preempção, ou seja, quando uma instrução de desvio condicional é passada do estágio de busca para o de execução, o estágio de busca obtém na memória a instrução, imediatamente, seguinte à instrução de desvio. Então, se não ocorrer o desvio, nenhum tempo será perdido. Se ocorrer o desvio, a instrução buscada deve ser descartada, sendo buscada uma nova instrução. 15 UNIDADE Processadores e Pipeline As instruções de desvio, realmente, interferem no tempo do ciclo de instruções e mesmo com a preempção de endereçamento não se obtém uma solução otimizada. Para tanto, é preciso que o pipeline tenha mais estágios de trabalho paralelo, da mesma forma que demonstrada quando falamos sobre os estados do clico de instrução: · Busca de instrução (BI); · Decodificação da instrução (DI); · Cálculo de operandos (CD); · Busca de operandos (BD); · Execução da instrução (EI); · Escrita de operando (ED). Na figura 6, temos a demonstração de um pipeline, onde nove instruções tiveram seu tempo de processamento conjunto reduzido de 54 unidades de tempo (9 instruções de 6 unidades de tempo) para 14 unidades de tempo, usando os estados de ciclo de instruções. 1 2 Tempo 3 4 5 6 7 8 9 10 11 12 1413 BIInstrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 8 Instrução 9 DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO Figura 6: Diagrama de tempo para operação da pipeline de instruções Fonte: Stallings, W., Arquitetura e Organização de Computadores Em contraponto, no caso de uma interrupção (parada da execução devido à alta prioridade de um outro processo ou programa) ou um desvio condicional, se imaginarmos as mesmas nove instruções de 6 unidades de tempo; porém, com um desvio condicional ocorrendo da instrução três para a instrução 15. 16 17 Nesse caso, a CPU não tem como saber de que modo fazer a preempção, ou seja, a instrução 4 é carregada e sua execução ocorre, normalmente, até que no momento de desvio da instrução 3, acontece paralelamente, chame ou referencie a instrução 15. Nesse momento, todas as instruções ocorrendo em paralelo são interrompidas e aguardam o fim da instrução 15 e suas subsequentes. Quando o resultado dessas execuções subsequentes terminarem e o valor resultado indicar o retorno para a instrução 3, todas as instruções interrompidas retomam seu trabalho, caso contrário, elas irão aguardar o fim das instruções, subsequente à instrução 15 e depois serão retomadas, como demonstrado na figura 7. 1 2 Tempo 3 4 5 6 7 8 9 10 11 12 1413 BIInstrução 1 Instrução 2 Instrução 3 Instrução 4 Instrução 5 Instrução 6 Instrução 7 Instrução 15 Instrução 16 DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO EI EO BI DI CO BO BI DI CO BI DI BI BI DI CO BO EI EO BI DI CO BO EI EO Penalidade devido ao desvio Figura 7: Desvio condicional na operação de uma pipeline de instruções Fonte: Stallings, W., Arquitetura e Organização de Computadores Desempenho da pipeline Além de lidar com os desvios condicionais da pipeline e as interrupções, é muito importante sabermos como se dará o desempenho da pipeline. Para tanto, veremos algumas equações para fazer essa medição de desempenho. Podemos dizer que o tempo relativo de uma pipeline de instrução é o tempo que um conjunto inteiro de instruções leva para avançar um estágio da pipeline. Esse tempo de ciclo pode ser determinado pela equação: τ τ τ= [ ]+ → + ≤ ≤max i md d i, i k1 17 UNIDADE Processadores e Pipeline Onde: tm = atraso máximo de estágio (atraso por meio do estágio de maior atraso). K = número de estágios da pipeline de instrução. D = tempo necessário para propagar sinais e dados de um estágio para o próximo. Nessa equação, o (d) é a aproximação ao pulso de um relógio e () >> d. Se considerarmos que uma quantidade de instruções representada por (n) sem o desvio condicional, o tempo total para executar todas as (n) instruções é representado por: T k nk = + −( ) ×1 τ Se lembrarmos do exemplo gráfico anterior (figuras 5 e 6), onde havia 9 instruções com 6 unidades de tempo cada e sem desvio condicional teríamos, então, 14 unidades de tempo para todo o clico do conjunto de instruções, provado pela equação: 14 6 9 1= + −( ) É possível calcular o quão mais rápido uma execução com pipeline sobre uma execução sem pipeline, calculando o speedup (comparação de velocidades) entre elas, da seguinte forma: S T T n k k n n k k nk k = = × × + −( ) × = × + −( ) 1 1 1 τ τ A figura 8 demonstra duas vertentes de avaliação de desempenho de ciclo de instruções. Na parte (a), é demonstrado um speedup de execução de um conjunto de instruções em função de instruções executadas em cada conjunto sem a presença do desvio condicional. N parte (b), é demonstrado um gráfico de speedup; porém, dessa vez, em função da quantidade deestágios de pipeline que cada conjunto possui, onde se pode notar que quanto maior o número de estágios, maior o speedup. É possível notar que somente aumentar a quantidade de estágios acelera o processo, isso se torna claro na parte (b) da figura 8, onde o speedup aumenta quando se aumentou demais o número de estágios; porém, o número de instruções diminuiu. Isso ocorre devido ao aumento de custo, por atrasos entre estágios e pelo fato de que instruções de desvio requerem que a pipeline seja esvaziada, ou seja, o uso de um número de estágios entre 6 e 9 parece ser mais adequado, sendo contraproducente o uso de um número de estágios maior. 18 19 1 0 2 4 6 18 10 12 Speedup 2 4 8 16 Número de instruções (a) 32 64 128 k = 6 estágios k = 9 estágios k = 12 estágios 0 5 10 15 20 0 2 4 6 8 10 12 14 Speedup Número de estágios (b) n = 10 instruções n = 20 instruções n = 30 instruções Figura 7: Speedups obtidos com o uso de pipeline de instruções Fonte: Stallings, W., Arquitetura e Organização de Computadores Fechamento Nesta unidade, abordamos os conceitos gerais de ciclo de instruções e seus interferentes bem como a pipeline; ambos fatores que atingem diretamente o funcionamento da CPU e a velocidade de resposta de programas, dependendo da arquitetura dos microprocessadores. É possível aprofundar-se mais no assunto, tomando o estudo da engenharia de hardware e construção de microchips mais avançados; para tanto, não deixe de ler os materiais complementares indicados. 19 UNIDADE Processadores e Pipeline Estudo Complementar O conceito de pipeline é de extrema importância para o correto desenvolvimento de hardware e software. Assim, para ser um bom profissional da área de tecnologia é preciso sempre estudar e se aprofundar. Partindo desse princípio, há no material complementar um link para um simulador de pipeline chamado PS-CAS MIPS, mais especificamente um medidor de desempenho de pipeline, que mede o sppedup de um conjunto de instruções já definido; porém, que você pode alterar, conforme o aprendido até agora na disciplina e verificar o quanto você otimiza ou não o projeto. No endereço indicado, há um material criado pelo desenvolvedor do simulador que auxilia no uso do simulador e dá a você uma maior compreensão de como simuladores funcionam. Não deixe de experimentar o simulador e discutir com seus companheiros de classe, bem como com seu professor sobre suas experiências. Bons estudos!!! 20 21 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Vídeos Passos para execução de uma instrução https://goo.gl/qkZCq1 Sites SIMULADOR PS - CAS MIPS https://goo.gl/FYluWC Arquiteturas de Computadores http://goo.gl/xAbmdT Tópicos de Informática Aplicados à Administração http://goo.gl/Pk4El3 21 UNIDADE Processadores e Pipeline Referências ALA-HARJA, M.; HELGASON, S. Em direção às melhores práticas de avaliação. Revista do Serviço Público, Brasília, v. 51, n. 4, p. 5-59, out./dez. 2000. BECKER, D.; EDMUNDO, K. O direito à saúde: sonho de liberdade. In: Influir em políticas públicas e provocar mudanças sociais: experiências a partir da sociedade civil brasileira. GHANEM, E. (Org). São Paulo: Ashoka: Avina: Imprensa Oficial do Estado de São Paulo, 2007. CHIAVENATO, I. Introdução à teoria geral da administração. 5. ed. São Paulo: Makron Books, 1997. 22
Compartilhar