E aí [Música] o Olá pessoal bem-vindos a mais uma semana na disciplina de sistemas computacionais na semana passada a gente falou bastante sobre as questões das memórias como elas funcionam gerenciamento da memória paginação nessa semana nós vamos nos focar nas arquiteturas paralelas dentro desse contexto vocês vão ver que a gente vai falar sobre questões de supercomputadores grids e plantas de multiprocessadores e também de questões de paralelismo no nível de instruções E aí a gente vai falar sobre parte lá espero que vocês gostem e aproveitem bastante tá bom pessoal a aula sobre arquitetura paralela a gente
não pode começar Se a gente não fizer uma volta aí sobre a questão de arquitetura de um único processador é então para fazer isso eu trouxe esse desenho para vocês que ele volta aí nesse primeiro círculo né a apresentação aí do o e dos seus principais elementos né pensando que esses elementos são os dispositivos né os controladores de entrada e saída memória principal EA Nossa CPU nosso processador no centro A gente está representando aqui nessa figura o barramento que faz a conexão de todos esses elementos fazendo um nesse entrando nesse a CPU nesse processador a
gente sabe que esse processador ele possui unidade lógica aritmética né e possui aí a unidade de controle e aí fazendo um nesse controle a gente vai ver que a gente tem memórias registradores E sequenciadores aí dentro dessa nossa unidade de controle é seguindo aí na nossa na nossa no estudo a gente agora tá pensando que se não faz o passado a gente olhando aqui a gente tinha uma única CPU dentro do nosso computador né Isso é bem interessante se a gente for p e para efeitos de aprendizagem né mas hoje em dia nos computadores modernos
a gente tem uma situação mais parecida com essa né que é uma estrutura do tipo multi cor né a gente tem a nossa placa mãe aí como a gente estudou e virar aulas passadas de semanas anteriores e a gente tem o chip do nosso processador mas nesse caso esse chip aí de processador Na verdade ele tem vários né processadores ele tem vários portos aí memórias do tipo cast né Então esse é uma estrutura mais comum nas arquiteturas modernas aí vários processadores essas partes aí que acompanha o processador né nessa figura do livro do Estado em
você vai ver arquitetura EA é se é uma arquitetura da da época de válvulas né da geração de válvulas que a gente viu nas primeiras semanas né que foi a arquitetura criada a partir do modelo de fome uma na compra é armazenado sair na memória né do modelo de tu me né que é a base dos computadores de propósito geral nela nós encontramos todos os componentes vistos aí pensando em um único processador é a CPU ou processador né desses computadores né eles atendem ao que a gente chama de ciclo de instrução é que esse círculo
ele tem como objetivo fornecer serviços né Por exemplo os nossos aplicativos né o programa precisa ser executado é então ele vai primeiramente carregar né esses instruções do nosso programa na memória principal quem faz esse serviço é o sistema operacional a gente viu em aulas passadas né na semana três por exemplo né a gente falou sobre como o sistema operacional interfere aí na arquitetura e organização de computadores né E aí é o carregar as soluções da memória principal né informa o processador né onde o programa começa espeta um registrador chamado o contador de programa né que
a partir daí cê vai o processamento deu o processamento poderá ser realizada de maneira automática né então o ciclo de instrução ele acaba sendo automático né e executasse as inscrições é sequencialmente né uma a uma e aí o incremento do do contador de programa que dá o suporte a essa de sequenciamento né esse contador de programa os registradores o registrador de endereço registrador de instrução e outros né são aqueles registradores que a gente fala de registradores da CPU ou do processador né então me resumo o processador executa instruções em linguagem de máquina vamos falar de
linguagem de e nas aulas as instruções que estão na sua memória no período de tempo que a gente chama de clock o ciclo de instrução então é a sequência de ações né a sequência de tarefas que é CPU realiza né mandando distribuindo essas ações aí para os componentes da CPU né E aí para realizar a cada instrução em código de máquina para obedecer aí os comandos dos Nossos programas nessa figura você vai ver nessa nesse slide vocês vão ver duas figuras a figura 3.3 ela tem aí um ciclo de instrução com duas instruções né chamado
de Ciclo Básico aí de instrução onde você tem o ciclo sendo iniciado tem uma busca e uma execução né bastante simples para efeito aí didático né nessa execução pode-se exigir uma nova busca de informação né e é uma a música de instrução e esse ciclo vai repetir até que alguma coisa aconteça e faça o encerramento né é num ciclo de cima na figura de cima né o ciclo de instrução de execução discussões né ele foi quebrado em dois né que seria a decodificação da instrução né e a execução propriamente dita é esses dois exemplos aqui
né seja a busca busca execução ou esse aqui que está em 33 estágio né então círculos considerados aí simples para efeitos didáticos são ciclus ciclus executados aí sequencialmente né Por máquinas de um processador né máquinas do modelo de fonema A então é é bastante interessante né se você pensar que na primeira ação aí se desse exemplo da figura 1.3 né uma instrução na memória né é uma operação a e é de leitura né Na segunda o executar o e você vai identificar né interpretar operação e executar né E pode exigir aí que vá se para
o início a volta por fim né as setas dos círculos ela se repetem né como eu disse até que alguma coisa aconteça que ela se insere né ou seja uma instrução de parada ou algum erro interrupção né existem arquiteturas que são arquiteturas de não são nenhuma né E aí a gente vai se falar de vários processadores a gente fala mais tarde aí nessa aula aí na próxima aula também nessa outra figura vocês vão encontrar um diagrama de estados que representam os vários estágios aí né de uma de um ciclo de execução os estados de cima
envolvem troca de informação né troca entre processador e memória principal ou mesmo módulo de entrada e saída e nessas de cima nos estados de baixo você tem operações internas aí do próprio processador alguns estados estão repetidos né pois envolve leitura e escrita ou ambos né mas a ação durante o estado é a mesma nos dois casos né na leitura ou escrita né E porque você acaba tendo o único identificador daquele citados né se você quiser uma simplificação né eu fiz um algoritmo aqui onde você tem o ciclo de instrução né dividido aqui e no estágio
de busca de instrução decodificação da instrução cálculo do endereço do operando em busca do operando execução da instrução cálculo do endereço e aí tem aquelas verificações é se tiver alguma interrupção Então você trata interrupção que pode levar até a finalização né a gente vai falar de opção também e futuras o cálculo de endereço da própria instrução e depois volta para busca de uma nova instrução aí a entrar com um ciclo novo de instrução aí para o processador executar e resumo então o ciclo de instrução é alguma é um conjunto de ações aí que se repete
indefinidamente até que o sistema seja desligado tem algum erro ou seja encontrada a uma instrução de parada a CPU né Ela é fabricada e Projetada para executar essas operações aí sucessivamente na ordem na sequência que foi definida aí pelo programa que tá enviando as instruções e é se você fizer um resumo as funções básicas que a gente falou até agora da CPU são função de processamento né quer dizer executar uma operação processá-la e funções de controle dentro das funções de controle nos falamos das atividades de busca interpretação né e execução pensando em três ciclos né
e controle de ação aí dos demais componentes aí do sistema de computação é uma coisa que a gente pode concluir desses dessas slides que a gente viu é que a execução sequencial né de um ciclo aí de instruções ele é bastante lento e pode ser pouco eficiente né então a gente fala que a gente poderia resolver né melhorar essa questão pensando em paralelismo né O que que é o paralelismo então né fazer paralelismo significa fazer duas ou mais coisas em paralelo quer dizer ao mesmo tempo né pretende uma execução das tarefas em menor tempo por
meio dessa execução aí em paralelo das diversas tarefas o paralelismo ele pode ser obtido tanto por meio de software como porrada né o paralelismo de só seca é aquele paralelismo que busca é trabalhar no nível de instrução né ele pega instruções individuais né e Tenta enviar mais de uma instrução né antes de uma terminar começa a próxima né para obter aí é para fazer com que a máquina Responda né Tenha nenhum tipo de recurso do seu processador Ocioso né que todos os recursos estejam trabalhando aí em paralelo a gente vai falar esse é uma questão
utilizada para melhorar o desempenho de máquinas com único processador que a gente fala na próxima aula e a gente tá você pode pensar no paralelismo agora pensando e várias CPU né vários processadores né sejam esses processadores numa única máquina né multiprocessador né como a gente já mencionou ou mesmo um multiprocessamento e máquinas Independentes né com memórias distribuídas e processadores distribuídos a e isso a gente vai falar que é o paralelismo no nível de rasga né E esse é o assunto que a gente vai tratar daqui para frente Além disso não nos conceitos de paralelismo além
da programação que a gente está bastante acostumado a programação sequencial fala-se também de programação concorrente é aonde você tem o servidor aí atendendo vários clientes e aí a gente trabalha em política de escalonamento de tempo do processador e tem a programação paralela né que é para aquele caso onde você tem servidores aí em vários servidores né e vários a clientes e clientes simultâneos aí no tempo né então são casos aí que a gente vai exemplificada aqui para as próximas aulas é em relação as arquiteturas paralelas né existem diversas classificações né porque essa é uma área
em constante evolução é a gente vai citar aqui uma classificação é de Flynn né e de 1972 que ela se baseia na questão da unicidade multiplicidade tanto do fluxo de dados quanto das instruções que são enviadas para CPU existe também uma situação que vocês vão ver nas bibliografias dessa disciplina que é uma classificação de dança que é uma classificação de 1990 é essa figura ela representa as quatro classes de arquiteturas paralelas de Flynn nesse primeiro caso você tem as arquiteturas que trabalham com em uma única expressão e o único é no single deitar né o
único cuidado né o necessidade de instrução e de dados é essa é a questão lá do processamento único né o processador aí o único processador na máquina né nessa mesma linha aqui pensando em instruções únicas a gente pode ter instrução única e múltiplos dados né e pensando aí e múltiplas instruções nós temos múltiplas instruções com single deita e múltiplas instruções com múltiplos dessas né vamos escrever nos próximos slides um pouquinho mais de detalhes estas questões né uma coisa interessante de falar né É que esse e SMD né é análogo a você fazer uma operação aí
repetitivamente né você pega um um single stroke show né e trabalha a repetitivamente essa instrução e múltiplos bom né Isso é bastante comum hoje em dia quando a gente está trabalhando aí em data mais e algumas questões aí de ciências de dar né a classificação MSD ela é mais rara né Já os programas MM de né são os programas que a gente ouve aí de programação paralela né que a gente vai falar de multiprocessador E multicomputadores aí então voltando single stroke chão e single Deita não é o único fluxo descrição e o único fluxo de
dados são os computadores convencionais cereais do tipo modelo eu sou nenhuma com instruções executadas e série porém estágios né E vão aí busca-decodificação-execução que podem ser paralisados que a gente vai falar na próxima na última aula em pó epilare e no segundo caso na 2ª classe nós temos múltiplos traction and single deita né que estão os vários processadores que recebem instruções distintos mais operam sobre o mesmo conjunto de dados né E aí a gente tem o maior um grande exemplo que são os algoritmos de criptografia né que são usados aí para depois de mensagens é
e não é assim a a mais comum né que a gente vai tratar é no terceiro caso a gente tem o single Strings 5 instruction e múltiplos dados né quer dizer o único fluxo de instruções mais múltiplos fluxos de dados né E aí a gente tem os processadores matriciais né aquele que a gente vai trabalhar com uma repetição né das ações aí no único né no único conjunto de instruções né muitos dados e um único conjunto de instruções como eu citei para vocês aí os casos de dataman e os processadores recebem a mesma instrução né
só que vão atuar sobre diferentes fluxos de dar E aí a gente tem os processadores vetoriais e muita data Warehouse que foi trabalhar nesse sentido e aí como no último a classe A gente tem o múltiplo múltiplo né múltiplas instruções e múltiplos dados né vários processadores é uma das situações cada um conectado né foi controlado por uma unidade de controle né entrar nesse caso nessas situações a gente tem os multicomputadores né e também podemos ter multiprocessadores né dentro de uma mesma máquina os processadores recebem instruções diferentes e operam sobre fluxo de dados diferentes a E
aí eles fazem troca de mensagens sincronização né e e pode ser essa troca de mensagem é a síncrona ou assíncrona né a diferença aí é que a gente tem os multiprocessadores que vão é compartilhada iogurte com multicomputadores aí que tem memória distribuída essa figura ela exemplifica bem essas quatro classes aí de Flynn no primeiro nível né e nas próximas aulas a gente vai falar sobre SM de m n d e na aula de pai Pilar e a gente volta a falar aqui do único processador é máquinas com processador único que é o FSB e aqui
no próximo slide você tem as nossas referências é o livro do Stalin aqui eu usei bastante para preparar essas aulas né então fiquem à vontade aí se vocês conseguirem é um tempo para ler bom pessoal com isso a gente encerra essa primeira aula aí do nossa semana A4 espero que vocês tenham aproveitado um abraço a todos e até a próxima aula 1 E aí E aí [Música]