·
Administração ·
Organização de Computadores
Send your question to AI and receive an answer instantly
Recommended for you
2
Prova- Organização de Computadores 1
Organização de Computadores
UMG
11
Av Organização de Computadores Estacio 6
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
2
Atividade Pratica Calculo_1
Organização de Computadores
UMG
11
Av Organização de Computadores Estacio 7
Organização de Computadores
UMG
6
Ptis Senac
Organização de Computadores
UMG
11
Pacote de Questes Organizao de Computadores
Organização de Computadores
UMG
62
Componentes do Sistema Computacional e Processamento de Instruções
Organização de Computadores
IBMR
12
Slide - Projeto de Circuito Combinacional - Arquitetura de Computadores 2022 1
Organização de Computadores
UFMT
4
Atividade Individual Avaliativa em Arquitetura dos Computadores
Organização de Computadores
UVA
Preview text
Qual seria o resultado se determinada tarefa fosse realizada por várias pessoas ao invés de apenas uma?\n\nApós reflexão, leia a resposta\n\nAs respostas poderiam ser várias, inclusive a possibilidade de não conclusão dessa tarefa. Mas, se olhássemos a distribuição das ações que compõem a tarefa de forma organizada, buscando controlar a sua eficiência, poderíamos obter as seguintes respostas:\n\n• A tarefa será realizada no mesmo tempo.\n• O tempo de conclusão da tarefa será reduzido.\n\nA partir dessa análise, podemos compreender a importância da busca por soluções paralelizáveis, já que, atualmente, a maior parte das aplicações com software e hardware é implementada dessa forma.\n\nPARALELISMO EM NÍVEL DE INSTRUÇÕES E PROCESSADORES SUPERESCALARES\n\nSuperscalar e pipeline\n\nO termo superscalar foi criado em 1987, por Agerwala e Cocke (apud STALLINGS, 2017), em função do projeto de uma máquina, cujo foco estava ligado à melhoria no desempenho da execução das instruções escalares.\n\nNa organização superscalar em uma arquitetura de um processador, as instruções comuns (aritméticas de inteiros e pontos flutuantes), a carga do valor da memória em um registrador, o armazenamento do valor do registrador na memória e os desvio condicionais poderão ser iniciados e executados de forma independente.\n\nNa técnica de pipeline, o caminho executável de uma instrução é dividido em estágios discretos, permitindo ao processador efetuar várias instruções simultaneamente, contanto que apenas uma delas ocupe cada estágio durante um ciclo de relógio. DEFINIÇÃO\n\nApresentação do vínculo entre o alto desempenho da computação e o processamento em paralelo, identificando tipos de organização de processadores e a propensão para o uso da tecnologia multicore em busca do aumento de desempenho.\n\nPROPÓSITO\n\nApontar as arquiteturas multiprocessadas e multicore como uma alternativa às limitações da eficiência e do custo de desenvolvimento dos computadores com um único processador e único núcleo de execução, melhorando o desempenho do hardware com o aumento da frequência do clock do processador.\n\nOBJETIVOS\n\nMódulo 1\nReconhecer as vantagens da computação de alto desempenho por meio do processamento em paralelo\n\nMódulo 2\nIdentificar os tipos de organizações de processadores paralelos\n\nMódulo 3\nIdentificar as questões de desempenho do hardware que direcionam o movimento para os computadores multicore QUESTÕES DE DESEMPENHO\n\nEVOLUÇÃO DOS COMPUTADORES\n\nA evolução da máquina. | Fonte: Shutterstock\n\nNas últimas décadas, o custo dos sistemas computacionais diminuiu à medida que o desempenho e a capacidade das máquinas aumentaram significativamente. Exemplos disso são os equipamentos usados em nosso cotidiano, como computadores, tablets, smartphones e outros, que possuem uma capacidade computacional superior em comparação a um computador (mainframe) da década de 1960 ou 1970, considerado um supercomputador para a época.\n\nAs limitações do passado foram colocadas de lado, tanto pelo custo quanto pela capacidade de processamento. Podemos citar algumas aplicações que, atualmente, possuem uma grande capacidade de processamento em sistemas baseados em microprocessadores:\n\nProcessamento de imagem\n\nRenderização tridimensional\n\nReconhecimento de linguagem\n\nVideoconferência\n\nModelagem e simulação Veja o diagrama:\n\nTEMPO\n\nINSTRUÇÃO 1\nINSTRUÇÃO 2\nINSTRUÇÃO 3\nINSTRUÇÃO 4\nINSTRUÇÃO 5\nINSTRUÇÃO 6\nINSTRUÇÃO 7\nINSTRUÇÃO 8\nINSTRUÇÃO 9\n\nComo exemplo, vamos representar a decomposição do processamento de instruções em um pipeline de seis estágios:\n\nFI | Buscar a instrução (Fetch Instruction) | Lê a próxima instrução esperada em um buffer.\nDI | Decodificar a instrução | Determinar o op_code e os especificadores dos operandos.\nCO | Calcular os operandos | Calcular o endereço efetivo de cada operando gerador.\nFO | Buscar operandos (Fetch Operands) | Ler cada operando da memória.\nEI | Executar a instrução | Executar a operação e armazenar o resultado, hora na posição do operando destino.\nWO | Escrever o operando (Write Operands) | Armazenar o resultado na memória. As técnicas VLIW (Very Long Instruction Word) e superscalar emitem várias instruções independentes (de um fluxo de instruções) que são realizadas simultaneamente em diferentes unidades de execução.\n\nA VLIW depende de um compilador para determinar quais instruções emitir a qualquer ciclo de relógio, enquanto um projeto superscalar requer que um processador tome essa decisão. A tecnologia Hyper-Threading (HT) da Intel introduziu paralelismo ao criar dois processadores virtuais a partir de um único processador físico, dando ao sistema operacional habilitado a multiprocessador a impressão de executar em dois processadores, cada um com pouco menos da metade da velocidade do processador físico.\n\nProcessadores vetoriais contêm uma unidade de processamento que executa cada instrução vetorial em um conjunto de dados, processando a mesma operação em cada elemento de dados. Eles dependem de pipelines profundos e altas velocidades de clock.\n\n*Pipelines profundos: Pipelines profundos permitem que o processador realize trabalho em diversas instruções simultaneamente, de modo que muitos elementos de dados possam ser manipulados de uma só vez. Um processador matricial, também denominado processador maciçamente paralelo, contém diversas unidades de processamento que executam a mesma instrução em paralelo sobre muitos elementos de dados. Esse modelo pode conter dezenas de milhares de elementos de processamento. Portanto, esses processadores são mais eficientes quando manipulam grandes conjuntos de dados. Organização Escalar e Superscalar. | Fonte: STALLINGS, 2017\n\nA essência da abordagem superscalar é a possibilidade de execução independente e concorrente em pipelines diferentes, inclusive em ordem diversa daquela definida no programa.\n\nAtenção\nO paralelismo é obtido quando as múltiplas instruções são habilitadas para estarem em diferentes estágios do pipeline no mesmo momento, diferente da organização escalar tradicional, na qual existe uma única unidade funcional em um pipeline único para as operações inteiras e outra para as operações de ponto flutuante. Superscalar X Superpipeline\n\nNa abordagem conhecida como superpipeline — onde múltiplos estágios do pipeline executam tarefas que necessitam de menos da metade de um ciclo de clock — é possível dobrar a velocidade do clock interno, aumentando o desempenho, ao executar duas tarefas em um ciclo de clock externo.\n\nEXEMPLO: MIPS R4000\n\nNo esquema a seguir, podemos visualizar uma comparação entre as organizações superpipeline e superscalar, tendo um pipeline comum na parte superior do diagrama que será utilizado apenas como referência:\n\nNo caso apresentado, o pipeline inicia a instrução e executa um estágio, ambos por ciclo de clock. Nesse exemplo, o pipeline possui quatro estágios (busca por instrução, decodificação da operação, execução da operação-quadro com linhas cruzadas e atualização do resultado).\n\nNote que, mesmo que várias instruções sejam executadas simultaneamente, apenas uma está no seu estágio de execução em determinado tempo.\n\nNa representação do superpipeline, temos execução de dois estágios de pipeline por ciclo de clock. Repare que as funções executadas em cada estágio podem ser divididas em duas partes, que não se sobrepõem, e cada uma pode ser executada na metade do ciclo de clock. A parte final do diagrama ilustra a implementação superscalar, onde é possível perceber a execução de duas instâncias de cada estágio em paralelo.\n\nAtenção\nNesse diagrama, tanto o superpipeline como o superscalar possuem o mesmo número de instruções executadas ao mesmo tempo em determinado estado. Assim, o processador superpipeline “perde” quando comparado ao superscalar no início do programa e a cada alvo de desvio.\n\nVERIFICANDO O APRENDIZADO\n\n1. Considere um processador com pipeline ideal de 4 estágios, em que cada estágio ocupa um ciclo de processador. A execução de um programa com 9 instruções, utilizando os 4 estágios, levará:\n\na) 28 ciclos.\n\nb) 18 ciclos.\n\nc) 24 ciclos.\n\nd) 12 ciclos.\n\nComentário\nParabéns! A alternativa D está correta.\n\nVeja como o cálculo foi feito.\n\nCálculo\nComo existem 4 estágios, cada instrução demandará percorrer 4 ciclos para ser executada e cada estágio ocupa 1 ciclo.\n\nNI = número da instrução Assim, serão necessários 12 ciclos para que a nona instrução seja executada completamente. 2. Considere um sistema com 1000 instruções, frequência de 100MHz e arquitetura de pipeline de 5 estágios e leia as perguntas a seguir:\n\n I. Qual é o tempo necessário para executar uma instrução?\n II. Qual é o tempo necessário para executar integralmente o programa sem a utilização do pipeline?\n III. Qual é o tempo necessário para executar integralmente o programa com a utilização do pipeline?\n\n Assinale a alternativa que apresenta a resposta correta:\n\na) O tempo necessário para executar uma instrução é igual a 50μs.\n\nb) O tempo necessário para executar todas as instruções sem pipeline é menor do que 10ns.\n\nc) O tempo necessário para executar todas as instruções sem pipeline é igual a 50μs.\n\nd) O tempo necessário para executar todas as instruções com pipeline é igual a 50μs.\n\ne) O tempo necessário para executar uma instrução é igual a 10μs.\n\nComentário\n\nParabéns! A alternativa C está correta.\n\nComo o período T = 1/f, onde f = frequência em Hz e T = período em segundos, temos:\n\nv = ΔS / t → t = 4,0 km / 80 km/h → t = 0,05h = 3min m\n\nI - Neste caso, 1 ciclo é igual a 10ns, então, o tempo para a execução da instrução é tempo de 1 ciclo = T x número de estágios = 5 * 10ns = 50ns\n\nII - O tempo total de execução sem o pipeline é:\n• Tempo Total sem pipeline = T * Número de estágios * Número de instruções\n• Tempo Total sem pipeline = 10ns * 5 * 1000 = 50000ns\n• Tempo Total sem pipeline = 50000ns = 5*10^4*10^9=50*10^6=50μs
Send your question to AI and receive an answer instantly
Recommended for you
2
Prova- Organização de Computadores 1
Organização de Computadores
UMG
11
Av Organização de Computadores Estacio 6
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
2
Atividade Pratica Calculo_1
Organização de Computadores
UMG
11
Av Organização de Computadores Estacio 7
Organização de Computadores
UMG
6
Ptis Senac
Organização de Computadores
UMG
11
Pacote de Questes Organizao de Computadores
Organização de Computadores
UMG
62
Componentes do Sistema Computacional e Processamento de Instruções
Organização de Computadores
IBMR
12
Slide - Projeto de Circuito Combinacional - Arquitetura de Computadores 2022 1
Organização de Computadores
UFMT
4
Atividade Individual Avaliativa em Arquitetura dos Computadores
Organização de Computadores
UVA
Preview text
Qual seria o resultado se determinada tarefa fosse realizada por várias pessoas ao invés de apenas uma?\n\nApós reflexão, leia a resposta\n\nAs respostas poderiam ser várias, inclusive a possibilidade de não conclusão dessa tarefa. Mas, se olhássemos a distribuição das ações que compõem a tarefa de forma organizada, buscando controlar a sua eficiência, poderíamos obter as seguintes respostas:\n\n• A tarefa será realizada no mesmo tempo.\n• O tempo de conclusão da tarefa será reduzido.\n\nA partir dessa análise, podemos compreender a importância da busca por soluções paralelizáveis, já que, atualmente, a maior parte das aplicações com software e hardware é implementada dessa forma.\n\nPARALELISMO EM NÍVEL DE INSTRUÇÕES E PROCESSADORES SUPERESCALARES\n\nSuperscalar e pipeline\n\nO termo superscalar foi criado em 1987, por Agerwala e Cocke (apud STALLINGS, 2017), em função do projeto de uma máquina, cujo foco estava ligado à melhoria no desempenho da execução das instruções escalares.\n\nNa organização superscalar em uma arquitetura de um processador, as instruções comuns (aritméticas de inteiros e pontos flutuantes), a carga do valor da memória em um registrador, o armazenamento do valor do registrador na memória e os desvio condicionais poderão ser iniciados e executados de forma independente.\n\nNa técnica de pipeline, o caminho executável de uma instrução é dividido em estágios discretos, permitindo ao processador efetuar várias instruções simultaneamente, contanto que apenas uma delas ocupe cada estágio durante um ciclo de relógio. DEFINIÇÃO\n\nApresentação do vínculo entre o alto desempenho da computação e o processamento em paralelo, identificando tipos de organização de processadores e a propensão para o uso da tecnologia multicore em busca do aumento de desempenho.\n\nPROPÓSITO\n\nApontar as arquiteturas multiprocessadas e multicore como uma alternativa às limitações da eficiência e do custo de desenvolvimento dos computadores com um único processador e único núcleo de execução, melhorando o desempenho do hardware com o aumento da frequência do clock do processador.\n\nOBJETIVOS\n\nMódulo 1\nReconhecer as vantagens da computação de alto desempenho por meio do processamento em paralelo\n\nMódulo 2\nIdentificar os tipos de organizações de processadores paralelos\n\nMódulo 3\nIdentificar as questões de desempenho do hardware que direcionam o movimento para os computadores multicore QUESTÕES DE DESEMPENHO\n\nEVOLUÇÃO DOS COMPUTADORES\n\nA evolução da máquina. | Fonte: Shutterstock\n\nNas últimas décadas, o custo dos sistemas computacionais diminuiu à medida que o desempenho e a capacidade das máquinas aumentaram significativamente. Exemplos disso são os equipamentos usados em nosso cotidiano, como computadores, tablets, smartphones e outros, que possuem uma capacidade computacional superior em comparação a um computador (mainframe) da década de 1960 ou 1970, considerado um supercomputador para a época.\n\nAs limitações do passado foram colocadas de lado, tanto pelo custo quanto pela capacidade de processamento. Podemos citar algumas aplicações que, atualmente, possuem uma grande capacidade de processamento em sistemas baseados em microprocessadores:\n\nProcessamento de imagem\n\nRenderização tridimensional\n\nReconhecimento de linguagem\n\nVideoconferência\n\nModelagem e simulação Veja o diagrama:\n\nTEMPO\n\nINSTRUÇÃO 1\nINSTRUÇÃO 2\nINSTRUÇÃO 3\nINSTRUÇÃO 4\nINSTRUÇÃO 5\nINSTRUÇÃO 6\nINSTRUÇÃO 7\nINSTRUÇÃO 8\nINSTRUÇÃO 9\n\nComo exemplo, vamos representar a decomposição do processamento de instruções em um pipeline de seis estágios:\n\nFI | Buscar a instrução (Fetch Instruction) | Lê a próxima instrução esperada em um buffer.\nDI | Decodificar a instrução | Determinar o op_code e os especificadores dos operandos.\nCO | Calcular os operandos | Calcular o endereço efetivo de cada operando gerador.\nFO | Buscar operandos (Fetch Operands) | Ler cada operando da memória.\nEI | Executar a instrução | Executar a operação e armazenar o resultado, hora na posição do operando destino.\nWO | Escrever o operando (Write Operands) | Armazenar o resultado na memória. As técnicas VLIW (Very Long Instruction Word) e superscalar emitem várias instruções independentes (de um fluxo de instruções) que são realizadas simultaneamente em diferentes unidades de execução.\n\nA VLIW depende de um compilador para determinar quais instruções emitir a qualquer ciclo de relógio, enquanto um projeto superscalar requer que um processador tome essa decisão. A tecnologia Hyper-Threading (HT) da Intel introduziu paralelismo ao criar dois processadores virtuais a partir de um único processador físico, dando ao sistema operacional habilitado a multiprocessador a impressão de executar em dois processadores, cada um com pouco menos da metade da velocidade do processador físico.\n\nProcessadores vetoriais contêm uma unidade de processamento que executa cada instrução vetorial em um conjunto de dados, processando a mesma operação em cada elemento de dados. Eles dependem de pipelines profundos e altas velocidades de clock.\n\n*Pipelines profundos: Pipelines profundos permitem que o processador realize trabalho em diversas instruções simultaneamente, de modo que muitos elementos de dados possam ser manipulados de uma só vez. Um processador matricial, também denominado processador maciçamente paralelo, contém diversas unidades de processamento que executam a mesma instrução em paralelo sobre muitos elementos de dados. Esse modelo pode conter dezenas de milhares de elementos de processamento. Portanto, esses processadores são mais eficientes quando manipulam grandes conjuntos de dados. Organização Escalar e Superscalar. | Fonte: STALLINGS, 2017\n\nA essência da abordagem superscalar é a possibilidade de execução independente e concorrente em pipelines diferentes, inclusive em ordem diversa daquela definida no programa.\n\nAtenção\nO paralelismo é obtido quando as múltiplas instruções são habilitadas para estarem em diferentes estágios do pipeline no mesmo momento, diferente da organização escalar tradicional, na qual existe uma única unidade funcional em um pipeline único para as operações inteiras e outra para as operações de ponto flutuante. Superscalar X Superpipeline\n\nNa abordagem conhecida como superpipeline — onde múltiplos estágios do pipeline executam tarefas que necessitam de menos da metade de um ciclo de clock — é possível dobrar a velocidade do clock interno, aumentando o desempenho, ao executar duas tarefas em um ciclo de clock externo.\n\nEXEMPLO: MIPS R4000\n\nNo esquema a seguir, podemos visualizar uma comparação entre as organizações superpipeline e superscalar, tendo um pipeline comum na parte superior do diagrama que será utilizado apenas como referência:\n\nNo caso apresentado, o pipeline inicia a instrução e executa um estágio, ambos por ciclo de clock. Nesse exemplo, o pipeline possui quatro estágios (busca por instrução, decodificação da operação, execução da operação-quadro com linhas cruzadas e atualização do resultado).\n\nNote que, mesmo que várias instruções sejam executadas simultaneamente, apenas uma está no seu estágio de execução em determinado tempo.\n\nNa representação do superpipeline, temos execução de dois estágios de pipeline por ciclo de clock. Repare que as funções executadas em cada estágio podem ser divididas em duas partes, que não se sobrepõem, e cada uma pode ser executada na metade do ciclo de clock. A parte final do diagrama ilustra a implementação superscalar, onde é possível perceber a execução de duas instâncias de cada estágio em paralelo.\n\nAtenção\nNesse diagrama, tanto o superpipeline como o superscalar possuem o mesmo número de instruções executadas ao mesmo tempo em determinado estado. Assim, o processador superpipeline “perde” quando comparado ao superscalar no início do programa e a cada alvo de desvio.\n\nVERIFICANDO O APRENDIZADO\n\n1. Considere um processador com pipeline ideal de 4 estágios, em que cada estágio ocupa um ciclo de processador. A execução de um programa com 9 instruções, utilizando os 4 estágios, levará:\n\na) 28 ciclos.\n\nb) 18 ciclos.\n\nc) 24 ciclos.\n\nd) 12 ciclos.\n\nComentário\nParabéns! A alternativa D está correta.\n\nVeja como o cálculo foi feito.\n\nCálculo\nComo existem 4 estágios, cada instrução demandará percorrer 4 ciclos para ser executada e cada estágio ocupa 1 ciclo.\n\nNI = número da instrução Assim, serão necessários 12 ciclos para que a nona instrução seja executada completamente. 2. Considere um sistema com 1000 instruções, frequência de 100MHz e arquitetura de pipeline de 5 estágios e leia as perguntas a seguir:\n\n I. Qual é o tempo necessário para executar uma instrução?\n II. Qual é o tempo necessário para executar integralmente o programa sem a utilização do pipeline?\n III. Qual é o tempo necessário para executar integralmente o programa com a utilização do pipeline?\n\n Assinale a alternativa que apresenta a resposta correta:\n\na) O tempo necessário para executar uma instrução é igual a 50μs.\n\nb) O tempo necessário para executar todas as instruções sem pipeline é menor do que 10ns.\n\nc) O tempo necessário para executar todas as instruções sem pipeline é igual a 50μs.\n\nd) O tempo necessário para executar todas as instruções com pipeline é igual a 50μs.\n\ne) O tempo necessário para executar uma instrução é igual a 10μs.\n\nComentário\n\nParabéns! A alternativa C está correta.\n\nComo o período T = 1/f, onde f = frequência em Hz e T = período em segundos, temos:\n\nv = ΔS / t → t = 4,0 km / 80 km/h → t = 0,05h = 3min m\n\nI - Neste caso, 1 ciclo é igual a 10ns, então, o tempo para a execução da instrução é tempo de 1 ciclo = T x número de estágios = 5 * 10ns = 50ns\n\nII - O tempo total de execução sem o pipeline é:\n• Tempo Total sem pipeline = T * Número de estágios * Número de instruções\n• Tempo Total sem pipeline = 10ns * 5 * 1000 = 50000ns\n• Tempo Total sem pipeline = 50000ns = 5*10^4*10^9=50*10^6=50μs