Buscar

IDENTIFICAR PERFORMANCE UTILIZANDO TESTES COM SOFTWARES BENCHMARKS

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

�PAGE �
�PAGE �62�
INSTITUTO FEDERAL DO ESPÍRITO SANTO – CAMPUS SERRA
BACHARELADO EM SISTEMA DE INFORMAÇÃO
JEAN CARLOS PENAS
LUIZA SANTOS NASCIMENTO
THIAGO SOUZA BERETTA
AVALIAÇÃO DE DESEMPENHO COMPUTACIONAL 
SERRA
2013
JEAN CARLOS PENAS
LUIZA SANTOS NASCIMENTO
THIAGO SOUZA BERETTA
AVALIAÇÃO DE DESEMPENHO COMPUTACIONAL
Trabalho apresentado à disciplina Organização e Arquitetura de Computadores do curso Bacharelado em Sistema de Informação do Instituto Federal do Espírito Santo – Campus Serra, para avaliação parcial.
Professor: Flavio Giraldeli
 
SERRA
2013
Apresentação
	Este é um trabalho elaborado pelo professor Flávio Giraldeli, para analisar o quanto a sociedade ganhou com a evolução tecnológica. Nele serão apresentados conceitos sobre técnicas de otimização de hardware, conjuntos de instruções, compiladores, algoritmos implantados em processadores e a análise de alguns recursos tecnológicos que foram inseridos nos computadores modernos.
Falsas alegações também serão quebradas aqui, como por exemplo, a ideia de ganho com somente o aumento dos números de processadores em um só processador. Serão analisados conceitos sobre o sistema de memória, as relações de custo, velocidade e capacidade e etc. Além disso, serão apresentadas teorias que iram servir de base para justificar os efeitos do testes e várias suposições, reflexões e até mesmo idéias serão expostas aqui.
SUMÁRIO
1	INTRODUÇÃO..............................................................................5
2	AIDA64 PARTE 1..........................................................................6
2.1	SUMÁRIO.....................................................................................6
2.2	PROCESSADOR.............................................................................7
2.3	PLACA – MÃE...............................................................................7
3	SUPER PI.....................................................................................8
4	WPRIME....................................................................................12
5	CINEBENCH...............................................................................17
6	FRITZCHESS BENCHMARK........................................................21
7	WINRRAR..................................................................................24
8	AIDA64 PARTE 2........................................................................26
9	SISOFTWARE SANDRA 2013........................................................40
9.1	PROCESSOR ARITMETIC..............................................................42
9.2	MEMORY BANDWIDTH................................................................44
9.3	CACHE & MEMORY LATENCY......................................................46
10	TRUECRIPT...............................................................................48
11	HDTACH....................................................................................51
12	FREEMAKE VIDEO CONVERTER................................................54
13	FOOBAR2000..............................................................................56
14	CONCLUSÃO..............................................................................68
15	REFERÊNCIAS BIBLIOGRÁFICAS..............................................69
INTRODUÇÃO
O objetivo deste trabalho é demonstrar quais fatores favorecem para o bom desempenho de um computador e analisar requisitos como o custo, velocidade e capacidade. Além disso, serão apresentadas algumas teorias para dar base ás conclusões dos testes. Os testes são o produto da utilização de benchmarks, softwares que servem para medir o desempenho de um ambiente computacional.
			Testes semelhantes a esses são utilizados por projetistas, estudantes e pessoas denominadas overclockings, o termo é associado á tentativa de se utilizar um ambiente computacional com o máximo de desempenho possível.
AIDA64 PARTE 1
2.1 SUMÁRIO
	Nas figuras abaixo estão apresentadas todas as especificações dos computadores analisados nos testes.
 
2.2 PROCESSADOR
Na Tabela 5 estão as informações obtidas em Propriedades da CPU:
SUPER PI
As duas figuras 1 e 2 apresentam a configuração dos computadores usados nos testes.
Figura 1											figura 2
O super PI é utilizado como um medidor de desempenho que, independente do processador ter múltiplos núcleos ou não, ele utilizará somente uma thread, ou seja, trata-se de um software singlecore, mas isto é proposital, já que a idéia é comparar os dois computadores utilizando apenas um núcleo.
Os gráficos 1,2 e 3 são gráficos lineares, que relacionam a iteração com o tempo de espera pelo resultado do calculo do valor de PI com 4, 8 ou 16 milhões de casas decimais (precisão).Nos gráficos mostram nitidamente que o notebook processou os mesmos dados em menor tempo se comparado com o desktop. Por exemplo, no gráfico 1, utilizando uma precisão de 4 milhões de casas depois da vírgula, durou, aproximadamente, 66 segundos na iteração 22, para calcular o valor de PI, ao passo que, o desktop, em média, durou 240 segundos na iteração 22, isso significa que o desktop foi quase 5 vezes menos rápido que o notebook no processamento desses dados. 
Segundo as especificações do Super PI, o algoritmo usado para o calculo do valor de PI com precisão é definido por Gauss, como:
Existem ferramentas que nos permite fazer a medição do desempenho de ambos os processadores utilizados nos teste, uma delas é o calculo da taxa de execução de instrução que nos dá o tempo de execução do programa,
O algoritmo de Gauss utiliza instruções de soma, multiplicação, divisão e subtração, ou seja, quatro instruções, e no caso do notebook, o tempo total para o calculo do valor de PI com precisão de quatro milhões de casas foi de 66 segundos (Gráfico 1), o tempo de execução do programa seria então T=4*66=264 segundos, ao passo que , o tempo de execução no desktop foi T=4*218 segundos=872 segundos, isso conclui que o programa foi mais eficiente, utilizando o ambiente computacional do notebook do que no desktop. Veremos então, quais as prováveis características responsáveis pelo desempenho do notebook em relação ao desktop.
A primeira característica, que será analisada, é o clock do processador, pois ele também é usado como um indicador de desempenho. Ele também é chamado de relógio de sincronização, como o próprio nome sugere, ele mantém a sincronização entre os componentes do computador, hoje são poucos os componentes que funcionam de forma assíncrona, atualmente, todo componente de um computador opera de forma sincronizada com as demais estruturas, isso explica o fato de toda vez que a organização e arquitetura de um computador são alterados, este precisa passar um processo de balanceamento. O clock equivale ao período de cada oscilação, o termo “período” é o mesmo definido pela física que o descreve como o inverso da freqüência, onde a freqüência é medida em hertz.
A tabela 2 informa todas as especificações do processador e nos revela o clock original de cada computador, o notebook, analisado aqui, possui um clock de 2500 MHz , isto equivale a 2500 *10^6 ciclos por segundos, enquanto que o desktop possui 1800 MHz que equivale a 1800*10^6 ciclos por segundos, jogando esses valores no calculo da freqüência definida pela física teremos que o notebook demora 40 ns (nano segundos) para completar 1 ciclo, enquanto que o desktop dura aproximadamente 50 ns.A conclusão disto é que o notebook processa mais informações que o desktop em um mesmo ciclo.Este fato é valido pois estamos lhe dando com a mesma arquitetura, desenvolvida pela Intel corporation (Tabela 2).
	A segunda justificativa para o bom rendimento do notebook em relação ao desktop está associada as informações físicas do processador descrita pela tabela 2, ela também nos informa o tipo de socket utilizado
pelo processador, o tamanho do componente e a quantidade de transistores, mas o que será focado, neste momento, será a quantidade de transistores que, no notebook foi de 624 milhões, enquanto que, no desktop há 105 milhões deles, a conclusão disso recai sobre a lei Moore, que provou que a quantidade de transistores em um chip dobraria a cada ano e que mais adiante (1970), este valor passaria a dobrar a cada 18 meses.Segundo Moore, as conseqüências do aumento da quantidade de transistores em um chip implicaria no aumento da densidade, este por sua vez, provocaria o encurtamento dos caminhos por onde passariam os elétrons, gerando assim, um aumento de desempenho, além disso, com a redução do tamanho, maior a flexibilidade, redução dos requisitos de potência e resfriamento e maior densidade, também significa que menos interconexões terão que ser feitas e como conseqüência, o computador passa a ficar em conformidade com as suas especificações, adquirindo maior confiabilidade.
	A terceira justificativa é a tecnologia da memória principal que no caso do notebook, trata-se de uma DDR3, esta tecnologia permite ao chipset ou o processador se comunicar com dois canais de comunicação de memória simultaneamente, além disso, o clock da memória principal deste computador é superior ao clock do desktop descrito pela Figura 2, todos esses fatores também colaboram para um melhor desempenho.
	
WPRIME
Trata-se de um benchmark desenvolvido tanto para processadores singlecores quanto para multicores e foi projetado para rodar em arquiteturas x86 (32 bits). O desempenho do computador neste programa é medido através de cálculos de raízes quadradas com chamadas recursivas, utilizando o método de Newton.
	O objetivo é analisar algumas suposições e associá-las com os dados dos gráficos e concluir os possíveis ganhos que poderíamos ter a partir de algumas teorias.
 	A lei de Hamdáh serve para quantificar o ganho do desempenho de um sistema após a adição de um novo componente na arquitetura.
Gráfico gerado a partir de testes feito no Notebook.
Ele define o ganho como a razão entre o tempo de execução antes da adição do componente e o tempo de execução após a inserção. Por isso aplicaremos essa idéia em dois casos, no primeiro, com o notebook utilizando todas as 4 threads (Gráfico 1) e no segundo com somente 1 (Figura 4), para isso, iremos fazer algumas suposições associadas as operações e ao número de processadores.
Suposição 1
O WPRIME utiliza o método de Gauss para a aproximação das raízes, segundo a figura 1 da página 13, a fórmula utiliza operações de soma e divisão, suponha que essas operações consumisse somente 25% do tempo de execução de um programa.
Como o processador possui quatro núcleos, iremos acelerar as operações por um fator de quatro.
Usando as suposições temos:
				 Figura 2-Formula do speeddup
		 = 1/[(1-0,25)+0,25/4
 Ganho		 = 1.2 aproximadamente
 Gráfico gerado a partir de testes feito no Notebook.
	Suposições 2
Vamos supor que a operação de divisão consumisse 50% do tempo de execução.
Suponha que o processador esteja usando os quatro threads (Gráfico 3).
Usando as suposições temos:
		 Figura 2-Formula do speeddup
		
					 = 1/[(1-0,5)+(0,5/4)]
		Ganho		 = 1.6
	Suposições 2.1
Vamos supor que a operação de divisão consumisse 25% do tempo de execução.
Suponha que o processador ao invés de usar 4 núcleos, utiliza-se 20.
Usando as suposições temos:
		 Figura 
		Figura 2-Formula do speeddup
					 = 1/[(1-0,5)+(0,5/20)]
		Ganho		 = 1.3
Gráfico gerado a partir de testes feito no Notebook.
	Suposições 3
Vamos supor que a operação de divisão continua consumindo 75% do tempo de execução.
Suponha que o processador esteja usando somente uma thread (figura 4).
Usando as suposições temos:
		Figura 2-Formula do speeddup
		
					 = 1/[(1-0,75)+(0,75/4)]
		Ganho		 = 2.3 aproximadamente
	Suposições 3.1
Vamos supor que a operação de divisão continua consumindo 50% do tempo de execução.
Suponha que o processador esteja usando 30 núcleos (figura 4).
Usando as suposições temos:
			Figura 2-Formula do speeddup
		
					 = 1/[(1-0,50)+(0,50/30)]
		Ganho		 = 1.9 aproximadamente
Gráfico gerado a partir de testes feito no Notebook., utilizando um núcleo 
de processamento.
	Suposições 4
Vamos supor que a operação de divisão continua consumindo 40% do tempo de execução.
Suponha que o processador esteja usando somente uma thread (Gráfico 4).
Usando as suposições temos:
		 Figura 2-Formula do speeddup
		
					 = 1/[(1-0,40)+(0,40/1)]
		Ganho		 = 1
Se analisarmos os resultados obtidos com as suposições e com os testes, percebe-se que o aumento do número de processadores traz poucos ganhos, esta foi uma das conseqüências descrita pela lei de Hamdáh. O gráfico acima é uma projeção de como seria o ganho se aumentássemos enormemente o número de processadores, a conclusão disso é que os ganhos seriam decrescentes, e que na verdade o que realmente gera ganho de desempenho em um processador é a otimização do código.
CINEBENCH
 É um software cuja finalidade é medir o desempenho da GPU ou da CPU, através de processamentos de imagens representadas por uma matriz. Ele exibe uma pontuação que representa o rendimento, quanto maior for essa pontuação, maior será o rendimento do componente que estará sendo avaliado. Alguns componentes que não são descritos pelo programa também serão avaliados como possíveis justificativas para o bom ou mau rendimento dos computadores, como a memória principal, interconexão do sistema e os dispositivos de entrada e saída, todos eles afetam de alguma forma no desempenho do computador.
 Na sessão que usa os testes do SUPER PI fica claro que o processador I5 da Intel, integrado ao notebook possui um melhor desempenho em relação ao processador celeron, também da Intel. Então se espera que no teste, utilizando Cinebench, que os índices permaneçam apesar dos dois programas serem construídos para finalidades que se diferem. Os testes abaixo foram feitos em um sistema de 64bits.
 Figura 1-Representação da imagem 
 Processada no teste
 
Teste utilizando a versão de 32 bits 
 
 Figura 1- Cinebench de 32 bits, Notebook Figura 2- Cinebench Ranking 
 Com um núcleo
 
 
 Figura 3- Cinebench de 32 bits, Desktop Figura 4- Cinebench Ranking
 
 Figura 5- Cinebench de 32 bits, Notebook Figura 6- Ranking
 Com um núcleo 
	 
 
Figura 7- Cinebench de 64 bits, Notebook Figura 8- Ranking
 Com quatro núcleos
 
A primeira observação, notada nos testes, está associada ao número de processadores físicos e o de threads, se observarem bem a figura 1, notarão que a CPU é portadora de dois processadores físicos, mas ao processar as imagens, ele se comporta como se tivesse utilizando 4.O próprio CINEBENCH acusou que o processador utiliza 4 threads. O que poderia ser isso? Que tecnologia é essa?
Na verdade, o processador continua utilizando seus dois núcleos de processamento, o que acontece aqui é que as tarefas passam a ser compartilhadas pelos dois processadores, dando uma leve impressão que está sendo utilizado 4 núcleos físicos.A tecnologia responsável por esse recurso é chamada de HyperThread, O seu uso é indicado para aplicativos que dividem a sua carga de processamento em várias threads, exemplos de aplicativos com essas características são: aplicativos de compressão de áudio e vídeo, compactação e descompactação de arquivos, aplicativos de renderização 3D e alguns jogo, é por isso que em alguns momentos as imagens do CINEBENCH são processadas mais rapidamente.Infelizmente, este recurso não funciona com todos os aplicativos, haverá casos em que o rendimento
utilizando ele será insignificante e dependendo da quantidade de núcleos esse recurso pode gerar até mesmo um overhead (processamento em excesso) e dependendo do grau de processamento da CPU, o gasto de energia pode ser muito grande, por isso o seu uso foi descartado, sendo resgatado depois com o lançamento dos cores I3, I5 e I7.
 
 Figura 7- processamento das imagens Figura 8- Processamento das imagens utilizando
 Utilizando quatro threads somente um thread. 
Os n quadrados que aparecem nessas imagens na verdade nos passa a informação de que o processamento da imagem está sendo compartilhados entre “n” threads. Resumindo quatro campos imagens estão sendo processados pelos quatro núcleos lógicos quase que simultaneamente.
A segunda observação foi percebida quando o mesmo programa com versões diferentes (32 e 64 bits) foi executado em um ambiente computacional de 64 bits. Houve um aumento de desempenho, por que isso aconteceu, Será que o programa de 64 bits é melhor que o de 32?
Casos como esses estão associados à arquitetura do computador, portanto fatores como conjunto de instruções, número de bits usados para representação de dados, mecanismos de entrada e saída e técnicas de endereçamento podem ser considerados.
Segundo a tabela 1, ambos os computadores possuem uma arquitetura de 64 bits, pois são portadores de uma gama de ferramentas que permitem a instalação deste tipo de ambiente, como por exemplo: conjuntos de instruções, formas de representação, e etc..Mas o que implicou nesse aumento de desempenho?. Em um ambiente de 64 bits, os registradores são de 64 bits, eles passam armazenar maiores quantidade de dados, como conseqüência o transporte desses dados passa a ser mais rápido, além disso, a representação máxima desses dados também aumenta, fazendo com que o sistema de 64 bits reconheça uma capacidade de armazenamento de memória bastante superior ao de 32, essa capacidade seria calculada da seguinte forma: 2^64bits=2 exabytes, dificilmente a memória chegará nessa capacidade.Quando um aplicativo de 32 bits é executado em um ambiente de 64 bits, ele acaba deixando de ganhar em performance, pois os registradores tem capacidade para carregar 64 bits de dados, mas só carregam 32, ou seja 50% do espaço foi perdido, esses 50% a menos implicará na redução em vários requisitos como a performance.A conclusão disso é que o aplicativo de 64 bits tem melhor rendimento em um ambiente de 64 bits.
SUGESTÕES DE MELHORIA PARA O DESKTOP
Para que o processador Intel celeron tenha um rendimento semelhante ou superior ao processador i5, serão necessárias as seguintes implementações: Aperfeiçoar o compilador, fazer otimizações de código, já que foi comprovado que só com a otimização de códigos teríamos ganhado mais significativos, (Favor consultar a pagina 9), como a utilização de vários processadores em um, implica em um rendimento decrescente, a implantação de 2 ou 4 núcleos seria interessante, mais que isso seria desvantajoso. Se fosse possível aperfeiçoar o tempo de execução de uma operação de código em 60%, com 4 núcleos teríamos:
Speeddup=1/(1-0,6)+(0,6/4)
Speeddup aproximadamente de 1.80=180% de ganho de desempenho
(Lembrando que isso é só uma suposição)
Fritz Chess
Trata-se de um software que testa todas as jogadas de um tabuleiro de xadrez, que pode ser de vários tipos, como por exemplo, o tabuleiro standard, que é tratado como uma matriz 8x8.
O tabuleiro de xadrez foi originado de um jogo chamado chaturanga que tem como origem a china, alguns simpatizantes falam que na verdade ele veio de tradições indianas, mas isso não vem ao acaso.
Este jogo veio da miniaturização de padrões sociais e relações de poder, também foi utilizado como ferramenta de planejamento estratégico militar.
Enfim, o objetivo desse teste é estudar quais características dos computadores podem ser explorados com esse programa, a influencia de componentes estruturais, e analisar também se alguns recursos tecnológicos estão sendo bem explorados pelo programa.
Esse programa mostra a velocidade relativa, ou seja, uma velocidade aproximada dos cálculos feitos pelo computador e mostra também a quantidade de nós processados por segundo, por que nós? Por que o tabuleiro de xadrez é tratado como um grafo Hamiltoniano, um grafo é representado por um conjunto não vazios de nós e um conjunto de arcos, e cada arco conecta dois nós.
Na figura 1, foi um teste executado no desktop, que possui um processador monocore, logo o máximo de núcleos que poderia ser utilizado é um, ele processou 1.125.000 nós com uma velocidade relativa de 4.61 nós por segundos. Na figura 2 o teste foi feito no notebook que possui dois núcleos físicos, mas somente um está sendo utilizado, como ele tem tecnologia hiperthread ativado, o programa visualiza quatro núcleos, mas somente um está sendo utilizado, neste caso o notebook processou 2.212.000 nós, com uma velocidade relativa de 4.61 nós por segundo.
Se ambos os computadores possuem a mesma velocidade relativa, por que um processou maior quantidade nós que o outro?, Bem segundo as Figuras 1 e 2 da pagina 5, os notebook é portador de uma memória mais otimizada, além disso o clock tanto do processador quanto da memória é superior ao do desktop e sabemos que esses dois componentes influenciam e muito nos resultados deste teste.
Neste caso, o teste foi feito novamente com o notebook, mas agora utilizado os 2 núcleos físicos, sendo que o programa está visualizado detectou quatro núcleos devido a tecnologia de HyperThread, por se tratar de um jogo, a tecnologia de hiperthread lhe concedeu uma melhor performance(Teoria abordada na pagina 13-16).
Para provar se realmente lhe garantiu algum ganho, vamos fazer algumas suposições:
Vamos supor que o programa esteja otimizado em 20%, utilizado somente 1 núcleo, então o calculo de ganho seguiria da seguinte forma:
Speedup=1/((1-0,2)+(0,2/1))
Speedup=1,
Obteve um ganho de 100% com o programa melhorado em 20%.
Vamos supor o uso do programa mantendo a mesma otimização só que agora com os 4 núcleos adquiridos com hiperthread ativado:
Speedup=1/((1-0,2)+(0,2/4))
Speedup=1.17
Obteve um ganho de 117% com os 4 núcleos lógicos.
A conclusão é que neste caso a tecnologia de hiperthread garantiu um melhor desempenho ao notebook.
Se o desktop, portador do processador monocore da Intel, tivesse a tecnologia de hiperthread e se a sua arquitetura e a sua organização fosse balanceado, ele teria um desempenho muito superior ao que tem agora.
 
Winrrar
Trata-se de um aplicativo de compressão e descompactação de arquivos, nele é possível visualizar a desempenho do computador através das operações de compressão e descompactação, além disso, ele foi desenvolvido também para processadores multicores.
O Winrrar mede o desempenho do computador desktop, ele nos informa a velocidade resultante e a velocidade em tempo real, mostra também a quantidade de arquivos medidos em mega bytes e o tempo decorrido dessas operações. Lembrando que esses testes foram feitos em um ambiente de 64 bits.
 
 Winrrar 32 bits 
Winrrar 32 bits
Tanto no desktop, quanto no notebook foi evidenciado um aumento de desempenho quanto a versão do aplicativo usado no teste, por exemplo, na figura 1, o Winrrar utilizado é o de 32 bits, só que o ambiente computacional que foi usado é o Windows 7 de 64 bits (Tabela 3), todos os testes foram feito neste ambiente, ou seja, foi executado um aplicativo de 32 bits em um sistema de 64 e o mesmo foi executado novamente, só que na versão de 64 bits, no mesmo ambiente computacional, nos dois casos de uso (Figura 1,2,3,4) , aconteceu o mesmo fenômeno.O que aconteceu, na verdade, foi que o aplicativo de 32 bits deixou de ganhar em rendimento em um ambiente de 64.A conclusão disso é que a otimização de um aplicativo, software, ou um sistema para uma arquitetura,
influencia no desempenho, podemos aplicar o conceito de Speedup para visualizar melhor o ganho obtido.
1º suposição:
Vamos supor que ao adaptar o Winrrar de 32 bits para 64 bits, o programa obteve 30% de otimização.
Usaremos essas condições nos computadores usando somente um núcleo
Speedup=1/((1-0,3)+(0,3)/1)
Speedup=1
Ou seja, 100% de ganho.
2ª suposição:
Vamos supor a mesma otimização da suposição anterior e calcular o ganho de desempenho com os quatro núcleos (Hyperthread ativado).
Speedup=1.29
Ou seja, 129% de ganho.
Como previsto, a figura 5, deixa bem claro a idéia demonstrada pelas suposições acima:
 
Portanto, é vidente que adição de 4 núcleos da um retorno significativo, mas a otimização no código será mais relevante. (o mesmo conceito foi abordado na pagina 13)
 AIDA64 PARTE 2
O teste agora consiste no estudo dos requisitos de escrita, leitura, cópia e latência, que é o tempo em que o processador permanece ocioso. Alguns conceitos sobre custo, velocidade, capacidade e sistema de memória serão abordados aqui.
O AIDA64 possui um conjunto de testes para caches e memória, esses testes são mostrados pelas figuras 1 e 2.
 
Durante muito tempo iniciaram-se várias tentativas e técnicas para melhorar o rendimento do processador, são elas: o aumento de transistores, migração dos componentes para dentro do chip somados com as técnicas de otimização como previsão de desvio, análise de fluxo de dados e a execução especulativa.
Figura 3 – Relação entre o desempenho do processador (lógica) e o da memória
Imagem extraída do livro “Arquitetura e organização de computadores”, William Stallings
Com toda essa atenção voltada para o processador, este passou a ter um rendimento superior ao da memória (Figura 3), então começaram a surgir gargalos entre esses componentes e em outros componentes estruturais que não estavam acompanhando a evolução do processador. Na tentativa de solucionar ou pelo menos amenizar os feitos gerados por esses gargalos surgiu a necessidade do processo de balanceamento do computador, que consiste em ajustes na organização e na arquitetura. Os principais pontos críticos apontados por engenheiros da computação e por projetistas são o processador, barramento e a memória. As principais técnicas de balanceamento para amenizar esses pontos críticos são: o aumento da largura do barramento de dados, melhoria da interface da DRAM, aumento da largura de banda de interconexão entre a CPU e a DRAM, e a redução da freqüência de acesso a memória usando cache. Atualmente, quase todos os computadores possuem algumas dessas técnicas de balanceamento, senão todas, mas o que será abordado aqui serão as caches.
SISTEMA DE MEMÓRIA
Antes de falar das caches, precisamos conhecer o sistema de memória, as principais características deste sistema é a localização, que está associado ao tipo de memória que será implementada; capacidade, que normalmente é expresso em bytes ou múltiplos de bytes; unidade de transferência, que pode está associada ao número de linhas elétricas do módulo de memória, ou numero de bits escritos ou lidos na memória de uma só vez; métodos de acesso que podem ser sequencial, direto, aleatório, ou associativo; Os fatores desempenho são o tempo de acesso (latência), tempo do ciclo de memória e a taxa de transferência. Quanto a tecnologia, ou melhor, o tipo, a memória pode ser semicondura, de superfície magnética, ótica ou magno ótica.
Conceitos como os termos “palavra”, que representa a unidade natural da organização da memória, unidades endereçáveis que será sempre 2 elevado a n bits endereços, são sempre abordados neste sistema.
Na implementação de um sistema de memória são analisados a capacidade, velocidade e custo, não é possível obter um sistema me memória que tenha ganhado nos três fatores, as possíveis relações que podem acontecer, associando esses fatores são:
 
Tempo de acesso mais rápido->Maior o custo
Maior capacidade->Menor o custo
Maior capacidade->Tempo de acesso mais lento
 A ultima relação pode ser percebida nas Figuras 1 e 2 da página 21, verá que quanto maior a capacidade das memórias menor será o tempo de acesso, se notarem o quanto .
MEMÓRIA CACHE
A memória cachê é uma memória do tipo SRAM, ou seja, ela é feita de uma RAM estática de alta velocidade se comparado com a DRAM (Memória de acesso aleatório dinâmico), que é o que compõem a memória principal. No sistema de memória existe uma hierarquia quanto ao requisito velocidade, onde a velocidade de cada memória é exposta na seguinte relação L1>L2>L3>Memória principal e assim por diante, formando uma espécie de pirâmide, onde a base é composta pelas fitas magnéticas, a pirâmide também se mantém se for analisado o custo. A figura abaixo é a conseqüência da velocidade de cada componente utilizando comandos de leitura.
 Figura 4- Quantidade de dados lidos por 
Cada memória, no notebook 
 
Nas operações de escrita e cópia, os gráficos tanto do desktop quanto do notebook Serão semelhantes.
Figura 5 – Capacidade de cada componente tanto no notebook
Enquanto que a capacidade de cada componente estaria relacionada da seguinte forma:
L1<L2<L3<Memória principal (ilustrado na figura acima). O comportamento será o mesmo para o desktop.
Comunicação entre o Processador, Memória principal e a Cache
Como a memória cache é mais rápida, os dados mais acessados pelo processador, passariam a ser guardados nela. (existem diversos tipos de seleção, quanto ao dado que será guardado na memória cache) 
O processador se comunica com a cache de acordo através de um ciclo de busca e execução, ou seja, ele busca a instrução e a executa. O que acontece quando o processador não encontra essa instrução na memória cache?
Bem, em cada memória existe um controlador que irá se encarregar de gerenciar as operações de escrita e cópia, então, quando o processador se comunica com o controlador da memória cache, este verifica se o dado existe ou não no seu espaço, caso não encontre, ele perguntará para o controlador da memória principal a respeito da existência do dado no seu espaço, se existir, o controlador da memória principal irá copiar esse dado diretamente para o processador. Neste processo todo, o processador acaba tendo que esperar a chegada da instrução ou dado, esse tempo de espera é chamado de latência, se trata do tempo em que o computador ficou ocioso. Nas figuras 1 e 2, o tempo de latência do desktop é maior que o tempo de latência do notebook, portanto se os dois forem comparados,veremos que o desktop fica mais tempo parado do que o notebook, se somarmos o tempo de latência de cada computador, teremos:
Tempo de espera do notebook	= 	73,6+ 1,3+ 4+ 10,9
Tempo de espera do notebook	=	89,8	 nano*segundos
Tempo de espera do desktop	= 102.3+ 1.7+ 9.3
Tempo de espera do desktop	= 113,3 	 nano*segundos
Ou seja, o desktop fica 23,5 ns a mais do que o notebook, na espera de um dado.
Em resposta a reflexão dois, uma das técnicas mais utilizadas para manter o computador ocupado a maior parte do tempo são as interrupções, que não serão consideradas aqui, mas o seu papel é muito importante no ciclo de busca e execução da instrução, pois é um mecanismo em que diversos módulos de entrada e saída podem interromper a seqüência de processamento normal do processador.
Tabela 1- Número de acertos através de um algoritmo chamado Queen Problems 
Tabela 2 - Velocidade de processamento de imagens de alta resolução.
Tabela 3 –Ranking de performance dos computadores usados nos testes.
Tabela 4 - Velocidades de encriptação de cada computador, utilizando o algoritmo AES.
Tabela 5 – Desempenho dos computadores na encriptação utilizando algoritmo de segurança HASH.
Tabela 6 – Resultados oriundos da compressão de vídeos utilizando codec VP8.
Tabela 7 – Relação de números de acertos em cálculos de ponto flutuantes com precisão simples (32 bits).
Tabela 8 – Relação de número de acertos em cálculos
de ponto flutuantes com precisão dupla.
Tabela 9 – Relação de número de acertos em cálculos de ponto flutuantes com precisão estendida (80 bits)
 Segundo a tabela 1 do AIDA64, o celeron carece de instruções AES, o que justifica o seu baixo desempenho na encriptação de dados, enquanto que o notebook possui suporte a instruções que auxiliam na encriptação.
 Uma observação interessante é que o conjunto de instruções que cada computador possui, interfere no desempenho deles em muitos aplicativos, por exemplo: 
 O notebook tem 4 conjuntos de instruções a mais que o desktop, e são eles :SSE4.1, SSE4.2, AES e o AVX.
Conjunto de instruções SSE4. 1
Possui otimizações para aumentar o desempenho em aplicações em mídia e imagem em 3D.
Conjunto de instruções SSE4. 2
Otimização do compilador
Conjunto de instruções AES
Acelera encriptação
Conjunto de instruções AVX:
Otimização dos vetores, aumento do tamanho dos registradores para 256 bits, o que implica em maior velocidade.
 Esses fatores justificam o aumento de desempenho do notebook em relação ao desktop.
 
SISOFTWARE SANDRA
 Antes de partir para análise das imagens a seguir, seria interessante saber um pouco mais sobre conjunto de instruções, a seguir estudaremos um pouco as características das operações e o conjunto de instruções.
CARACTERÍSTICAS DAS OPERAÇÕES
 Várias ferramentas são necessárias para que o processador trabalhe de forma correta e são exatamente todas as operações que o processador consegue fazer, essas operações compõem o que chamamos de conjunto de instruções.
CONJUNTO DE INSTRUÇÕES
 Todas as operações que a CPU é capaz de executar é chamada de conjunto de instruções, a seguir temos exemplos de conjuntos de instruções:
4004
Esse conjunto de instruções foi lançado junto com o processador 8088 em mais ou menos 1972, ele formava a unidade de calculo de 4 bits, contendo 46 instruções.
X86
Trata-se de um conjunto de instruções padrão, ele ainda é utilizado até hoje (Consultar TABELA 5; sessão 2.2; pagina 8 ).
SSE4. 1
Possui otimizações para aumentar o desempenho em aplicações em mídia e imagem em 3D.
Conjunto de instruções SSE4. 2
Otimização do compilador
Conjunto de instruções AES
Acelera encriptação
Conjunto de instruções AVX:
Otimização dos vetores, aumento do tamanho dos registradores para 256 bits, o que implica em maior velocidade.
O ciclo de busca da instrução só funciona devido ao conjunto de instruções que foram implementados na CPU.
Processor Aritmetic
Testa a capacidade bruta da CPU, onde os resultados são dados em bilhões de operações por segundo (GOPS), bilhões de operações de inteiros por segundo (GIPS) e bilhões de instruções de ponto flutuante por segundo (GFLOPS), utilizando os algoritmos Dhrystone e Whetstone.
Teste realizado no notebook
Tabela 1.1-Informações sobre a capacidade de processamento da CPU
Teste realizado no desktop
Teste realizado no notebook
Na tabela 1, o notebook conta com um conjunto de instruções responsáveis por otimizações no compilador, isto pode está gerando um rendimento melhor se comparado com o desktop que não é portador do mesmo conjunto de instruções, um dos conjuntos de instruções responsáveis por esse bom rendimento é SSE4. 2, que traz otimizações para o compilador.
Na tabela 2, as operações e o processamento de instruções de ponto flutuante e operações de instruções de ponto flutuante foram compartilhadas entre as unidades lógicas de processamento do notebook, isso justifica a redução nos resultados, se forem comparados a figura 1 e 2.
Teste realizado no notebook
Teste realizado no desktop
Teste realizado no notebook
Bem, o desempenho do desktop em relação ao notebook é menor, isto acontece por que o notebook possui os seguintes conjuntos de instruções: SSE4. 1, SE4.2 e outros.
Esses conjuntos de instruções aceleram as operações tratadas nas figuras acima e o baixo rendimento do desktop nas operações é uma conseqüência da ausência dessas ferramentas.
Note que em todos os casos, o notebook foi mais eficiente que o desktop, isso conclui que o conjunto de instruções, ou melhor, a otimização deles traz grandes benefícios.
Memory Bandwidth
Este é um teste básico do desempenho da memória que analisa a quantidade de dados transferida no barramento de memória por segundo.
Teste realizado no notebook
Teste realizado no notebook
Teste realizado no notebook
 Teste realizado no notebook
Nestas tabelas 1,2,3 e 4, o notebook conta com um conjunto de instruções que faz a otimização dos vetores, que aumenta o tamanho dos registradores para 256 bits, tendo como conseqüência o aumento da velocidade.
Tabela 4.1 – Relação de desempenho versus gasto de energia(W)
Teste realizado no desktop
Teste realizado no notebook
Tabela 5.1 – Relação entre capacidade e energia gasta(w)
Teste realizado no desktop
	
 Teste realizado no notebook
 Tabela 6.1 – Taxa de velocidade associada a capacidade bruta de processamento por freqüência
 
 Teste realizado no desktop
Na tabela 4.1, o desktop conta com o conjunto de instruções SSE que se apresenta na sua forma variada SSE2, que apresenta suporte a operações de números inteiros e ponto flutuante.
Cache & Memory Latency 
Trata-se de um teste que mede a latência (tempo de resposta) das caches e da memória principal. A latência é medida em ciclos de processador (ou seja, quantos ciclos de clocks serão necessários para que o dado esteja pronto). A latência da memória é medida em nano-segundos e é independente da velocidade do clock do processador.
Tabela 1- Latência da memória e a quantidade de ciclos necessários para que o 
dado esteja pronto nas memórias L1, L2 e L3
Teste realizado no notebook
Tabela 1.1Latência da memória e a quantidade de ciclos necessários para que o 
Dado esteja pronto nas memórias L1, L2 e L3
Teste realizado no desktop
Tabela 2 – Latência e a potência da memória
Teste realizado no notebook
Tabela 2.1 – Energia gasta pelo tempo de espera do retorno de um dado
Teste realizado no desktop
Tabela 3 - Quantidade de dados processados versus gasto de energia(W)
Teste realizado no notebook
Tabela 3.1 - Quantidade de dados processados versus 
Gasto de energia(W)
Teste realizado no desktop
 Tabela 4- Análise do desempenho através da latência por freqüência (ciclos por segundos)
 Teste realizado no notebook
Tabela 4.1 - Análise do desempenho através da latência 
Por freqüência (ciclos por segundos)
Todas as tabelas acima representam a importância do conjunto de instruções nas operações feita pelo processador, sem o conjunto de instruções, dificilmente o computador teria alguma aplicação no mundo analógico, na verdade ele não teria aplicação nenhuma, já que a operação de soma dependente de um conjunto de instruções para que ela funcione no ambiente computacional.
TRUECRIPT
Trata-se de um software de criptografia, como a velocidade de encriptação é um dos requisitos de desempenho para ele, então é vital que as operações sejam feitas em tempo real.
Neste software, vamos testar o desempenho das máquinas utilizando vários algoritmos de encriptação e analisar quais fatores influenciam nos resultados. Abordaremos os testes em 3 cenários, com os um dos computadores utilizando múltiplos núcleos, um núcleo, com Hardware de aceleração AES, e sem aceleração.
Figura 1- Computador utilizando 4 núcleos na encriptação e 
com hardware aceleração AES ativado
 Teste realizado no notebook
Figura 1.1- Computador utilizando 4 núcleos na encriptação e 
com hardware de aceleração AES desativado
Teste realizado no notebook
Figura 1.2- Computador utilizando 1 núcleo na encriptação e 
com hardware de aceleração AES ativado
 Teste realizado no notebook
Figura 1.3- Computador utilizando 1 núcleo na encriptação e 
com hardware de aceleração AES desativado
Teste realizado no notebook
Figura 2- Computador utilizando 1 núcleo na encriptação 
sem hardware
de aceleração AES
Teste realizado no desktop
Nas figuras acima, notamos mais uma importância dos conjuntos de instruções, o hardware de aceleração AES, conta o conjunto de instruções AES, que acelera a encriptação, se analisarem bem, o notebook possui o conjunto de instruções AES, este está ausente no desktop o que justifica, também, o fato dele não ter hardware de aceleração AES (Favor consultar pagina 8; sessão 2.2, nas propriedades da CPU).
HDTACH
Trata-se de um software que testa a desempenho do HD, ele utiliza um kernel especial, trata-se de um componente que irá manter a comunicação entre ele e o hardware e a partir disto consegue obter informações físicas do HD. 
Antes de analisar as figuras vamos abordar algumas características do dispositivo que será analisado.
DISCO RÍGIDO
As características que vamos abordar são a Composição, mecanismo de leitura, método de gravação, organização e velocidade.
	
COMPOSIÇÃO
Atualmente, o HD é composto por um disco de vidro com a superfície altamente polida, dando maior uniformidade, provocando redução dos defeitos da superfície, dos erros de leitura/gravação, melhor rigidez, maior resistências a choques e dados.
MECANISMO DE LEITURA
A gravação e a leitura são feitas por uma bobina condutora chamada cabeça, esta pode ser única ou separada.
Durante a gravação a cabeça fica separada e as placas giram, o movimento é coordenado por um dispositivo chamado “atuador”, este movimento acontece graças ao fenômeno do eletromagnetismo, pois na sua base existem dois eletroímãs que são excitados, tendo como conseqüência a polarização (Note e Sul), esses pólos iram orientar o movimento do disco em dois estados, norte e sul.
MÉTODO DE GRAVAÇÃO
Antes o método de gravação dos discos rígidos era longitudinal, ou seja, os bits passaram a ser gravados lado a lado na superfície magnética. No entanto, um novo tipo de tecnologia de gravação surgiu, foi a gravação perpendicular, ou seja, os bits agora seriam gravados verticalmente, como a gravação passou a ser vertical, isso gerou a redução da superfície de contato, como conseqüência a capacidade do disco foi aumentada, mas hoje os discos utilizam os dois métodos de gravação, para compensar o atraso de performance em relação aos dispositivos de circuito integrado.
ORGANIZAÇÃO
O disco rígido é organização em forma de trilhas ou anéis, existem lacunas entre essas trilhas. As trilhas são dividas em setores;A menor unidade de armazenamento é por bloco e é representado por um setor, geralmente composto por 512 bytes.
VELOCIDADE
A velocidade do disco nas bordas é superior a velocidade no centro, isso acontece por que a velocidade angular se mantém constante e a velocidade linear aumenta do centro para as bordas, como o raio aumenta do centro para as bordas, a velocidade linear também deverá aumentar para que a velocidade angular se mantenha.
FIGURA 1- Teste de desempenho no HD do notebook
FIGURA 2 – Teste de desempenho no HD do desktop
Tanto na figura 1, quanto na figura 2, percebe-se que os gráficos estão se comportando de forma decrescente, por que isso acontece?
Como a velocidade da borda do disco é maior que a velocidade no centro, provavelmente o disco rígido estava numa operação de gravação ou leitura começando a partir da borda, e a medida que ia se aproximando do centro a velocidade diminuía.
Outra observação interessante é a velocidade do barramento SATA II (SATA 150) nos dois discos rígidos, em relação à velocidade do teórico.
O valor teórico é aproximadamente 325, se tomarmos esse valor como 100%, em uma regra de três, teremos:
X=a*100/325, onde a é o valor real, X é a porcentagem de a em relação ao valor teórico
Valor real do desktop=223.3 mb/s
X=223.3*100/325, aproximadamente 68%
A=100-X, A é o quanto ele precisa para atingir o valor teórico
A=100-68=32%, ou seja, o desktop precisa de 32% a mais da velocidade para atingir o valor teórico
Valor real do notebook=217 mb/s
X=217*100/325=66% 
A=100-66=34%, ou seja, o notebook precisa de 34% a mais da velocidade para atingir o valor teórico.
O maior problema do HD é exatamente o fato dele ser um dispositivo mecânico, isto tem se tornado um gargalo no processo de balanceamento da arquitetura e organização do computador, então um novo dispositivo foi densem volvido o SSD, trata-se de um dispositivo de armazenamento em massa totalmente eletrônico, isso justifica o fato do gráfico dele não ser semelhante ao gráfico do HD.
 
Free Maker Vídeo Converter
Trata-se de um conversor de vídeo e através dele vamos analisar o quanto ele se beneficiou o sistema de múltiplos núcleos.
Teste realizado no notebook
Teste realizado no desktop
A conclusão é que no notebook, portador de um sistema de multiprocessadores, o aplicativo obteve um ganho de tempo se comparado com o desktop (monocore), utilizando o mesmo software de conversão de vídeo.
FOOBAR2000
Foobar2000 trata-se de um decodificador de áudio e vídeo, a seguir foram feitas alguns testes em diferentes formatos de vídeo e áudio cujo objetivo é analisar o ganho de desempenho na decodificação em diferentes formatos de vídeo e áudio utilizando 1 e 4 núcleos de processamento, os testes foram feitos também no desktop.
Figura 1.1 – Conversão de arquivo de vídeo no formato M4A
Teste realizado no desktop
Figura 1 – Conversão de arquivo de vídeo no formato M4A
Teste realizado no notebook
Figura 1.2 – Conversão de arquivo de vídeo no formato M4A, utilizando 4 núcleos
Teste realizado no notebook
Figura 2 – Conversão de arquivo de vídeo no formato APE, utilizando 1 núcleo
Teste realizado no notebook
Figura 2.1 – Conversão de arquivo de vídeo no formato APE, utilizando 4 núcleo
Teste realizado no notebook
Figura 2.2 – Conversão de arquivo de vídeo no formato APE, utilizando 1núcleo
Teste realizado no desktop
Figura 3 – Conversão de arquivo de vídeo no formato FAC, utilizando 1 núcleo
Teste realizado no notebook
Figura 3.1 – Conversão de arquivo de vídeo no formato FAC, utilizando 4 núcleos
Teste realizado no notebook
Figura 3.2 – Conversão de arquivo de vídeo no formato FAC, utilizando 1 núcleos
Teste realizado no desktop
Figura 4 – Conversão de arquivo de vídeo no formato MP3, utilizando 1 núcleo
Teste realizado no notebook
Figura 4.1 – Conversão de arquivo de vídeo no formato MP3, utilizando 4 núcleos
Teste realizado no notebook
Figura 4.2 – Conversão de arquivo de vídeo no formato MP3, utilizando 1 núcleos
Teste realizado no desktop
De acordo com a caixa de diálogo que aparece nas figuras acima, houve um ganho de desempenho do notebook, se levar em conta o uso de múltiplos núcleos de processamento, mas nota-se também que em alguns casos o uso de múltiplos núcleos traz perdas de desempenho como aconteceu na decodificação do áudio no formato FAC, nas figuras 3.1 e 3.2 e também nas figuras 2 e 2.1.
CONCLUSÕES
De acordo com toda análise feita no trabalho concluímos os seguintes fatores:
O uso de vários núcleos de processamento um único processador traz ganhos decrescente.
De acordo com as análises, a otimização do código traz ganhos mais significantes.
O conjunto de instruções apresenta um grau de importância extremamente grande para o computador.
A paralelização de aplicativos de conversão de áudio é ineficiente
A paralelização apresenta ganhos mais eficientes para aplicativos de conversão de vídeo, jogos, compressão e compactação de arquivos e conversão e renderização de vídeos.
A importância de se implementar conjunto de instruções de segurança como o conjunto de instruções AES, traz mais melhorias em requisitos como segurança, em um mundo de constantes ataques de crackers.
REFERÊNCIAS BIBLIOGRÁFICAS
Camilo Rodrigues Neto EACH, Universidade De São Paulo; acessado em 
http://www.each.usp.br/camiloneto/ocd/2010ocd_cp_09%20Conjunt%20de%20instrucoes.pdf
 Prof. Sílvio
Fernandes; UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO, acessado em:
http://www2.ufersa.edu.br/portal/view/uploads/setores/145/arquivos/arq/aulas/09%20-%20Conjunto%20de%20Instrucoes.pdf
Kioskea; acessado em http://pt.kioskea.net/contents/400-microprocessador
Wikipédia, a enciclopédia livre;acessado em http://pt.wikipedia.org/wiki/SSE
Ultradonwloads.com;acessado em:http://ultradownloads.com.br/download/HD-Tach/
Significados.com; acessado em:http://www.significados.com.br/kernel/
Wikipédia,aenciclopédia livre; acessado em: https://pt.wikipedia.org/wiki/Disco_r%C3%ADgido
Blogger.spot; acessado em:http://minhamentecuriosa.blogspot.com.br/2012/12/disco-rigido-composicao-e-funcionamento.html
Wikipédia,aenciclopédia livre; acessado em:
http://pt.wikipedia.org/wiki/%C3%8Dm%C3%A3
Cássio De Lima; acessado em:
http://www.clubedohardware.com.br/printpage/Tecnologia-de-Gravacao-Perpendicular/1239
�

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais