0 ratings0% found this document useful (0 votes) 32 views15 pagesU4 Resumo Arq Org Comput - Parte 2
Thread e Multithreads
Processos
Multiprocessadores
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
Contextualizando
+ Pesquisadores estudam meétodos e técnicas para melhoria
do desempenho e da capacidade de sistemas
computacionais.
Software = com desenvolvimento de sistemas operacionais,
Hardware = arquitetura dos processadores.
Evolugo do hardware: a velocidade de processamento da
frequéncia do clock (velocidade em ciclos por segundo = hertz
= para executar as fungdes) do computador passou de poucos
Miz em 1980 para GHz na década de 2010, além da criacao
de novas tecnologias de processamento como pipelining
processamento paralelo.
+ Linguagem de maquina x linguagem de programacao.
Inicialmente foram utilizados conjuntos extensos de
instrugdes, dezenas de modos de enderegamento.
* Este tipo de arquitetura de computadores foi denominado
CISC - Complex Instruction Set Computers, ou computadores
com conjunto de instrugées complexas.
+ Avancos na rea de arquitetura de processadores = com um
conjunto menor de instrugdes, seria possivel melhorar o
desempenho do processador com uma arquitetura
denominada RISC - Reduced Instruction Set Computers
A arquitetura de processadores CISC (Complex instruction
Set Computers) ou processadores com conjunta de instrugées
complexas, apresentava grande quantidade de instrugdes com
miiltiplos modos de enderecamento.
Os processadores com tecnologia CISC so capazes de
processar centenas de conjuntos complexos de instrucées
simples. Isto significa que cada instruco isoladamente é
considerada simples, curta e pouco potente, porém vérias destas
instrugdes agrupadas formam um conjunto complexo que é
executado pelo processador.
A ideia dos fabricantes era produzir processadores cada
vez mais potentes baseados na complexidade destes conjuntos
de instrugdes (BROOKSHEAR, 2013).
Dessa forma, podese concluir que os projetistas de
arquiteturas CISC consideram trés aspectos bésicos (MONTEIRO, 2010):
+ Utilizaggo de microcédigo.
+ Construcdo de canjuntos com instrugées completas e eficientes.
+ CriagSo de instrugSes de maquina com complexidade similar aos
‘comands de linguagens de alto nivel.
Na arquitetura CISC, 0 objetivo era a criagao de um conjunto
numeroso de fungées, na maioria das vezes complexas e com vérios
‘operandas, o que aumentava o tempo de execusdo.Alguns elementos constituem a base da arquitetura RISC:
© pequeno conjunto de instrugdes como tamanho fixo @
execugo répida da instrugdo.
‘A cada ciclo de clock uma instrugdo é selecionada
(buscada) e executada. Essa arquitetura contém uma menor
quantidade de modos de enderecamento, maior quantidade de
registradores e uso de pipelining.
O pipeline (ou paralelismo) ¢ a diviséo de uma instrugao em
muitas partes, para que cada parte seja manipulada por uma parte
de hardware dedicada e, com isso, todas as partes possam ser
executadas em paralelo (TANEMBAUM, 2013).
Na arquitetura RISC existe uma diminuiggo da quantidade
de instrugées disponiveis e 0 modo de enderecamento em relac3o
A arquitetura CISC.
‘As maquinas RISC utilizam os registradores da Unidade
Central de Processamento para armazenamento dos pardmetros
varidveis em chamadas de fungdes e rotinas.
Processadores ARM usados em celulares so um bom
exemplo de uso da arquitetura RISC. Outro exemplo de uso dessa
arquitetura ¢ em consoles, como o Nintendo eo Playstation.
RISC x CISC
Uma vez que 0 tempo para buscar uma instrugéo no é
mais uma preocupacgo e com meméria barata para armazenar
uma quantidade grande de instrucdes, nao existe uma vantagem
real em instrugdes CISC. (Murdocca, 2000).
Todas as instrugées RISC tém tamanho fixo, uma palavra.
Todas as instrugées RISC efetuam operacées simples que
podem ser iniciadas no pipeline & taxa de uma por ciclo de clock.
Og cog Cog
Coon
er
Cor
ree)
Corea ag
rate eaArquiteturas RISC no apresentam microprogramacao
microcédigo; todas as instrugSes so executadas diretamente pelo
hardware.
Na arquitetura CISC era comum, em estruturas computacionais,
adiconar uma camada de software entre o hardware e os demais
programas, providenciando um novo nivel de interpretacio, 0
microcédigo. © microcédigo oferece a possibilidade de incluir ou alterar
instrugSes sem alterar o hardware.
Entretanto, ter a maior flexibilidade no € considerada uma boa
prética, pois 0 nivel adicional de interpretac3o acarreta tempo de
pracessamento para interpretaglo e, com isso, perda de desempenho,
que nao compensa as novas instrugées que possam ser adicionadas.
‘As instrugdes devem ser simples de decodificar, uma
caracteristica da arquitetura RISC. Quanto menos complexas
forem e menos formatos alternatives tiverem as opgdes de
execugao de uma instruc, seré melhor.
Isto ocorre porque quando a instruggo tem poucos formatos, o
‘tempo de identificagao da instrugo serd reduzido. Logo, o tempo
de processamento sera otimizado.
Somente as instrugGes LOAD e STORE devem referenciar a
meméria.
© acesso 4 meméria principal é uma operacao: m:
demorada que o acesso a registradores. Por esse motivo, é
recomendado que apenas as instrucdes LOAD {leitura) e STORE
(gravacio) tenham acesso & meméria. Isto ocorre na arquitetura
ize a taxa de execugao de instrugdes.
Além do aumento da velocidade de clock, uma das formas
de maximizar 0 desempenho do computador é por meio do
paralelismo, amplamente utilizado na arquitetura RISC.
Implemente muitos registradores de uso geral.
Quando o processador nao tem um registrador disponivel para
armazenar um valor resultante, ele transfere esse valor para a
meméria principal.
J& sabemos que a transferéncia de dados entre o
processador e a meméria principal é um processo mais lento do
que a movimentacdo de dados dentro do processador. Assim,
quanto mais registradores possiveis e de uso geral, melhor.
A arquitetura RISC apresenta maior quantidade de
registradores que a CISC.Introducdo a Arquiteturas Paralelas
“Uma arquitetura paralela fornece uma estrutura
explicita e de alto nivel para o desenvolvimento de solugdes
utilizando 0 processamento paralelo, através da existéncia de
miiltiplos processadores que cooperam para resolver
problemas através de execuc3o concorrente” (Duncan, 1990)
Classificagdo de Maquinas Paralelas
Y Classificagéo de Flynn — Classificagdo de arquiteturas
paralelas genérica de acordo com as caracteristicas do
fluxo de instrugies eo fluxo de dados (‘nico ou multiple).
Sequéncia de Sequéncia de Nome Exemplos
Instrugoes Dados
1 1 SISD | Maquina clissica de Von Neumann
1 Varias | SIMD | Supercomputador vetorial, processador
‘matricial
Varias 1 ‘MISD ‘Nenhum exemplo
Varias Varias (MIMD, __-Multiprocessador, multicomputador
SISD - Single Instruction, Single Data
+ Um tinico fluxo de instrugdes
‘+ Um tinico fluxo de dados
~Contém as arquiteturas tradicionais nao paralelas.
* Maauinas de Von Neumann.
Tasection Steam an Sena Fonte: Duncan, 1980
UC = unidade de controle UP = unidade de processsamento
MEM = memeéria
SIMD -— Single Instruction, Multiple Data+ Um nico fluxo de instrugio
* Multiplos fluxos de dados
— Execucdo sincrona da instrugdo para todos os dados
— Exemplos:
* Processadores vetoriais
(cray 1)
© GPU
instrugao dads. si
MISD — Multiple Instruction, Single Data
* Multiplos fluxos de instrug3o
* Um Unico fluxo de dados — Execug¢ao de varias instrugdes em
um nico dado. — Nao ha exemplos.
ae
=}
instrugoes ¥
ae oe: Duca, 1990
MIMD — Multiple Instruction, Multiple Data
* Maltiplos fluxos de instrugSes
© Multiplos fluxos de dados - Permite a execuco de
instrugdes diferentes para cada um dos dados Exemplos:
* Arquiteturas paralelas
atuaisEssa classificaco divide os processadores da seguinte
maneira: com instrugdo simples ou miltiplas instrugSes e com
dados tnicos ou dados miltiplos. Os quatros tips so: SISD (unica
instrugo, unico dado), SIMD (unica instrucao, miltiplos dados),
MISD (miltiplas instrugées, Unico dado) e MIMD (miltiplas
instrucées, multiplos dados).
No SISD hd apenas um processador, e 0 exemplo séo
méquinas uniprocessadas, sendo recomendada para processamento
de texto. SIMD executa uma instrugdo especifica para varios grupos
de dados, sendo recomendada para operacées matriciais.
MISD nao é uma arquitetura utilizada comercialmente. 14 a
arquitetura MIMD consiste em multiprocessadores, e a maior parte
de sistemas paralelos utilizam essa arquitetura.
Nessa etapa do projeto seré decidido o tipo de arquitetura em
relacdo ao processamento, e vocé pesquisou sobre as arquiteturas
paralelas segundo a classificacao de Flynn.
E um conjunto de processadores que executam sequéncias
de instrugées diferentes simultaneamente em diferentes conjuntos
de dados. Maquinas MIMD, que adotam varios pontos de controle,
apresentam sequéncias de instruces e dados independentes.
Assim, nesse projeto, a arquitetura mais recomendada para ser
utilizada €a MIMD.
Arquiteturas
Multithreaded
A aplicagao de técnicas de microeletrénica resultou em
circuitos integrados (Cis) de alta complexidade e encapsulados
em um Unico chip, isto é, 0 Cl esté dentro de um invélucro
protetor.
Os clocks ou relégios aumentaram a frequéncia para a
faixa de Gigahertz (GHz). Entretanto, existem barreiras fisicas que
delimitam o desempenho de uniprocessadores.
Desempenho
A medida de desempenho mais relevante para um processador
6a taxa na qual ele executa as instrugdes, que pode serTaxa MIPS = f *IPC
Onde:
Taxa MIPS representa a quantidade de milhdes de instrucdes
executadas em um segundo.
f €a frequéncia de clock do processador, em MHz.
IPC é 0 ntimero médio de instrucbes executadas por ciclo.
Uma ordem diferente da forma que ocorrem no fiuxo de
instruges e comegar a execucdo de instrugées que podem nunca ser
necessérias.
Entretanto, essa abordagem pode estar alcancando o limite, por
causa da complexidade e dos problemas de consumo de energia.
Segundo Monteiro (2010), uma dessas estratégias para melhoria
do desempenho é conhecida como superpipelining e ocorre quando um
ipeline tem estagios que requerem menos da metade de um ciclo de
relégio para executar.
Pode ser adicionado um relégio interno, o qual, ao realizar a
Thread / Multithread
Como nao é desejével o aumento da complexidade e do
consumo de energia, outra abordagem que permite um grau mais alto
de paralelismo em nivel de instrugdes é denominada de
multithreading.
Segundo Henessy e Petterson (2014, p. 193), “multithreading é uma
‘técnica priméria usada para expor mais paralelismo para 0 hardware”
O fluxo de instrugées é dividido em varios fluxos menores,
conhecidos como threads, de forma que cada thread possa ser
executada em paralelo.
Uma thread é um conjunto de tarefas existentes em um ou
mais programas, executadas ao mesmo tempo pelo processador. Os
threads definem como um processador funciona, recebendo e
executando instrugdes. Isso acontece muito rapidamente e passa a
sensacio de aue as acées so simultaneas.
Uma Thread acontece quando um programa precisa
resolver duas ou mais tarefas concorrentes (e em andamento).
Threads nZo so processos, estando contidas dentro de
processos.
Pode haver miiltiplas threads dentro de um mesmo
processo (20 menos uma sempre existe) e também € possiveldividir recursos do computador (como meméria e arquivos
abertos, por exemplo), enquanto processos néo podem fazé-lo.
Segundo Machado e Maia (2013], pode-se definir
Proceso como uma instancia de um programa executando em
um computador.
Thread/Processos
© fluxo da troca de contextos est ilustrado na Figura e
apresenta as etapas datroca de proceso.
Procesee A Process B
i
el '
i '
‘Salva regiseradioras do
Proceso A
1 t
: eee
en
Enecutande
ExecutandeMultithreading
Multithreading é a capacidade que o sistema operacional
possui de executar varias threads simultaneamente sem que uma
interfira na outra.
Estas threads compartilham os recursos do processo, mas
sdo Capazes de ser executadas de forma independente.
Para possuir processamento multithread “real”, os
processadores precisam ser capazes de atender duas ou mais
threads ao mesmo tempo e no simular este efeito, atendendo-
as uma por vez em um curto periodo de tempo.
Por sua vez, multithreading simultaneo (SMT) possibilita
execuc¢do paralela e simultanea de varias threads. Esse é um
sistema capaz de emitir diversas instrug6es ao mesmo tempo.
Se um thread apresenta um alto grau de paralelismo
em nivel de instrugdes, ela pode, em alguns ciclos, ser capaz de
preencher todos os slots horizontai:
Em outros ciclos, as instrugées de duas ou mais threads
podem ser enviados. Se threads suficientes estado ativos,
normalmente seria possivel enviar o numero maximo de
instrugdes em cada ciclo, fornecendo um nivel alto de
eficiéncia.
Ja no caso de chip multiprocessadores ou multicore,
cada nucleo tem um processador superescalar de envio de
duas instrucdes simultaneas.
Para cada processador é atribuido um thread, a partir
do qual ele pode enviar até duas instrugées por ciclo.
E possivel combinar as potencialidades das arquiteturas
multithreading simultaneo (SMT) e chip multiprocessadores
ao utilizar multithread dentro de cada processador em um
chip multicore, para potencializar o ganho de processamento,
fato que é implementado em diversos processadores atuais.Introdugao a Arquiteturas Multicore
Hoje, com a necessidade de otimizacado de espaco fisico,
sdo desenvolvidos chips de processamento multicore (multiplos
nucleos), nos quais é possivel otimizar os transistores, gerando
economia de energia e a reducdo de calor.
Um processador multicore pode ser definido como dois
ou mais nucleos de processamento em uma Unica pastilha de
io (chip).
As tarefas a serem executadas sao distribuidas entre esses
nucleos do processador. Em outras palavras, cada nucleo pode
executar multiplos processos simultaneamente. A Figura ilustra a
estrutura de processadores multicore.
Processadores com multiplos nucleos de processamento
Sdo processadores com dois, quatro, um chip,
seis, oito e dezesseis nucleos.
O
i
CPU
TTT TT
Duakcore CPU PUchip
uu Hunt
i
3
=
=
=)
i
il
Soveore CPUProcessadores com multiplos nucleos de processamento
Cada niicleo de processamento é organizado como uma
unidade de central de processamento independente, composta por
unidade légica aritmética e unidade de controle e registradores,
Além dessas, hd as memérias cache, que podem ser compartilhadas
entre os nucleos e podem ser dedicadas. Por exemplo: temos as
caches Level 1 (L1), Level 2 (L2) e Level 3 (L3) para dados e de
instrugdes.
Ao visitar sites de fabricantes de processadores, temos um
termo frequentemente utilizado, o Smart Cache (cache inteligente).
Esse é 0 nome dado para uma tecnologia desenvolvida pela Intel,
em que as caches sio compartilhadas entre os niicleos de
processamento do processador multicore, sendo as caches L2
e L3 compartilhadas entre os nuicleos.
Os engenheiros implementaram alteracdes na organizacio
de processadores permitindo o aumento do nivel de paralelismo em
nivel de instrugées, de forma a executar mais de uma instrucio a
cada ciclo de clock.
Posteriormente, com o surgimento da arquitetura
superescalar, foram implementados varios pipelines com recursos de
execuco replicados para possibilitar a execucdo de instrugdes em
pipelines paralelos.
Como forma de melhorar o desempenho da arquitetura
superescalar, foi desenvolvida a arquitetura_ multiprocessada
(Simultaneous Multiprocessing - SMP), que consiste em arquitetura com
mais de um processador.
Esse tipo de arquitetura tem recursos de meméria, disco
compartilhados e roda em um mesmo sistema operacional.
Nesse sentido, dois processos podem ser executados ao mesmo
tempo em dois processadores.Ainda como evolucdo, surgiu a arquitetura multithread
simultanea (SMT, do inglés Simultaneous Multithreading),
também chamada de hyper-threading.
Nessa técnica é explorado o pipelining em nivel de
threads em um processador. Assim, um processador fisico pode
simular dois processadores légicos. Cada um dos processadores
ldgicos tem o seu proprio controlador de interrup¢ao, bem como
um banco de registradores.
Essa arquitetura conta também com alguns recursos
compartilhados, tais como, cache, ULA e barramentos.
Na proxima Figura é apresentada uma arquitetura de
quatro processadores fisicos, sendo dez nuicleos por processador
que serdo compartilhados com a memoria cache L3 (30 MB
compartilhado entre os dez core).
Cada core tem 2 threads, ou seja, 80 processadores
ldgicos (quatro nucleos fisicos multiplicados por dez
processadores ldgicos; o resultado também multiplicado por duas
threads por core).
Ex: Intel Xeon 4870
2 threads per core
— (Hyper-Threading)Organizagdo multicore
Com 0 crescimento da meméria disponivel e do numero de
nicleos, a utilizac’o de uma meméria cache L3 compartilhada, que
combina o compartilhamento de cache L2 e cache L2 dedicados por
nicleo, tende a resultar em um desempenho melhor que uma cache
L2. compartilhada.
Os processadores Intel i7 utilizam esse tipo de organizacao.
NddeodeCPU1 |* * *| Niceode CPU n
rT r r r
0 JL oo)
Gch Ge
emt)
‘Memoria principal ( ®)
Processadores multicore
Outro tipo de deciséo em um projeto de sistemas com
multiplos nuicleos é se os nucleos implementardo multithread
simultaneo (SMT) ou serao superescalares.
Podemos destacar que o Intel Core Duo utiliza nucleos
superescalares, enquanto o Core i7 utiliza nucleos SMT, que
aumentam o numero de threads suportados pelos sistemas
multicore.Numero de nucleo 8 8 6
Numero de threads 16 8 6
Maxima frequéncia do processador | Ate 3.0 Ate AAG
(Gtiz)
‘Tamanho da meméria cache (MB) 16 9
‘Numero de canais de meméria 2 2
‘Tecnologia Intel Hyper-Threadhing sim Nao
Core™ i7-7500U CPU @ 2.70GHz
(CPU Intel” Core™ 17-7500U CPU @ 2.70GH2
Velocidede base: 2,90 GH
sen comenn .00VOU 8 2H Sockets: 1
; Nucleos:2
Processadores ligicos: 4
Virtualizagloe Habiltado
Cache Li 128K
‘ Cache 12: SI2KB
* wee 338GHe _— Caches: 40
266 3703. aas2e wis ae
, Velocidade 3,36GHz
0223755
“Tempo deatividade 0230453
risen ean o Wrobel Broseson 268
“hveads 3731
Mentificadores 143226
Lembre-se de que as memérias caches apresentam trés niveis:
a L1 é ade menor nivel e menor espago, porém muito mais répida que
a L2 eL3. AL1 é dividida em duas partes, uma para instrugdes e outro
para os dados. A L2 é destinada para gravacio de dados e informacées,
2.2 13 é a maior entre os trés niveis, ¢ pode dar apoio a qualquer core
para execugies de tarefas.
De acordo com Stallings (2013), existe um ganho quando ha
um compartilhamento do cache L2 e em paralelo hd cache L2 dedicada,
como ocorre no casa de Intel Core i7, em que cada niicleo tem a sua
cache L2 dedicada, e os nicleos compartilham uma meméria cache L3.Uma das vantagens é a que interferéncia construtiva pode
reduzir as taxas de falhas do sistema, ou seja, se uma thread em um
core acessa uma posigéo de meméria, esse acesso traz para linha de
contetida a posigao de referenciada para a cache compartilhada. Caso
outra thread de outro core tente acessar depois, as posicdes de
meméria ja estarSo disponiveis na cache compartilhada no chip,
gerando maior rapidez de acesso.
Utilizando algoritmos adequades de substituigio de linha,
existe uma alocagéo dindmica da quantidade de cache compartilhada
para cada core, de modo que threads com maiores conjuntos de
trabalho apresentam mais cache. Além disso, a comunicagao entre
processadores é facilitada quando implementada por meio das
posigbes de meméria compartilhadas.
Assim, a estrutura multicore do processor pode ser
representada na Figura.
NudeodeCPU1 |* * *| NucleodeCPU n
——1 or
up | up]
oat eT
Cache? Gachel2
Cachel3
Mernéria principal
Para finalizar, a 102 geracdo de processadores Intel®
Core™ dispde de gréficos Intel® Iris® Plus, que proporcionam
uso de inteligéncia artificial (IA) no computador em larga escala
para acelerar o desempenho.
Esses processadores possibilitam um novo nivel de
integracao para aprimorar as experiéncias com PCs atuais e as.
necessdrias para o futuro.
Como pudemos verificar, a organizacao e arquitetura do
processador evoluiram muito com o tempo. Como essa
arquitetura pode mudar ainda nos préximos anos?