Home Page
cover of Aula 3_Cache_Pipeline_Risc_Disc
Aula 3_Cache_Pipeline_Risc_Disc

Aula 3_Cache_Pipeline_Risc_Disc

Marcelo B Santiago

0 followers

00:00-27:30

Nothing to say, yet

Voice Overspeechnarrationmonologuemale speechman speaking
1
Plays
0
Downloads
0
Shares

Audio hosting, extended storage and many more

AI Mastering

Transcription

In this lecture on microprocessors, the main topics covered are computer abstraction, ISA (Instruction Set Architecture), CISC and RISC, processing time diagram, pipeline, superscalar, cache memory, and benchmark. Microprocessors are small-sized and complex systems found in PCs, with identical integrated circuits that don't require testing. Miniaturization benefits include compact computers and reduced costs. Computer abstraction involves a software application, an operating system, and a processor model. ISA specifies machine code behavior, allowing binary compatibility between implementations. CISC and RISC are two types of instruction set architectures with different complexities. CISC emphasizes hardware while RISC emphasizes software. Pipeline allows for parallel processing of instructions. Aula 3 Microprocessadores O conteúdo dessa aula a gente vai tratar de Abstração de Computadores ISA, CISC e RISC Diagrama de Tempos do Processamento, Pipeline e Superescalar Além de Memórias Cache e Benchmark Estrutura de Computadores Nós temos então 4 elipses Sendo que uma está no meio Que é a elipse de processamento Interligada essa elipse tem uma elipse superior Que é dispositivos de entrada e saída E embaixo da elipse de processamento Você tem à esquerda a elipse de armazenamento E à direita a elipse de comunicação Então os microprocessadores eles tem dimensão reduzida Com um sistema bastante complexo Como vemos nas placas-mães dos PCs Cada circuito integrado é idêntico Várias lâminas fabricadas juntas Cada chip é idêntico ao outro Não precisa testar, pois eles são iguais As vantagens da miniaturização Computadores bastante compactos e o custo Sendo que fabricando uma quantidade imensa de lâminas Faz com que se tenha uma quantidade imensa A um custo muito reduzido Uma vez que é feito em alta quantidade Elevada quantidade Abstração de computadores Nós temos então um esquema Sendo feito no lado de fora Um retângulo escrito software aplicativo Programas e dados Esse retângulo de software aplicativo Programas e dados Está interligado com uma seta de ida e volta Com um outro retângulo maior Que é o sistema operacional Seria uma representação de um modelo abstrato de computador Lá dentro desse retângulo maior Você tem um sistema operacional E dentro do sistema operacional Você tem outro retângulo Que é o modelo abstrato de processador E dentro dele, desse retângulo Está escrito compilador Instruction Set Architecture ISA E tem a compatibilidade binária O microprocessador tem um outro dentro Ainda mais um retângulo Que dentro tem a palavra microprocessador CPU mais memória Então isso daqui é um exemplo De como funciona os computadores Então na sua parte mais interna Ele tem os microprocessadores São os CPUs mais as memórias Eles tem os compiladores Que eles estão inseridos dentro desses compiladores Que seria então a possibilidade de fazer Um modelo de abstrato de processador E estão obviamente esse compilador Que contém o microprocessador Ele está dentro então do sistema operacional Isso tudo, esse retângulo maior Com três retângulos dentro Ele é um modelo abstrato de computador Então esse sistema operacional Ele se comunica com o software aplicativo De programas e dados O sistema operacional Ele irá disponibilizar todas as condições Para que o microprocessador Seja capaz de executar o programa Que você solicitou fosse executado Então a gente tem o seguinte Que o sistema operacional ele liga Ele viabiliza a conexão dos programas Do seu computador E por sua vez, ou seja O software aplicativo, programas e dados Tem essa conexão com ele Aqui você tem um detalhamento Da forma como cada elemento computacional funciona Ele é bastante complexo E foge do escopo da disciplina Essa complexidade ocorre devido A muitas interconexões Dentro dos sistemas integrados E também devido aos elementos de hardware Que constituem esse circuito integrado Bem como do código de programação Implementado do sistema operacional Isso tudo é de uma complexidade Bastante elevada Portanto é importante adotar Uma forma de abordagem Denominada abstração Com abstração Apenas os requisitos abordados Que são os requisitos Que você deseja Que o seu sistema atenda Somente esses requisitos são considerados Ok? Então em continuação Produz certo conjunto de instruções Que apresentam Uma compatibilidade binária De tal forma que O microprocessador Vai a cada comando No conjunto de instrução ISA E irá fazer uma determinada tarefa E os processadores Eles são construídos para Que cada uma das instruções Para que cada uma das instruções Ela ocorra Agora vamos falar de Instruction Set Architecture, ISA Bom, o ISA É um modelo abstrato de um computador Ok? Então a CPU, no caso Dentro dela, pode ser AMD ou Intel Que seriam os microprocessadores Executará as instruções Descritas pelo ISA E quem é o ISA? O ISA é Instruction Set Architecture É a arquitetura A instrução Arquitetural Conjunto de instrução arquitetural Vamos dizer assim Um processador da AMD, por exemplo Tem uma arquitetura completamente diferente De um microprocessador da Intel E ambos os processadores fazem a mesma coisa A partir desses dados Esse conjunto de instruções O ISA, ele especifica o comportamento Do código de máquina Em execução Nas implementações De uma forma que não dependa Das características dessa implementação Fornecendo Compatibilidade binária Entre as implementações Então vamos lá Tipos de instruções portadas Tipos de dados dos registradores Suporte de hardware Para gerenciar a memória principal Recursos fundamentais Como a consistência da memória Modos de endereçamento, memória virtual E o modelo de entrada e saída Classificação de ISA Por complexidade das instruções Então nós temos o que? O CISC Que é um Complex Instruction Set Computer Seria então um computador Com conjunto de instruções complexos E o RISC Que é o Reduced Instruction Set Computer Ou seja Um computador Com conjunto de instruções reduzido Então o CISC É mais complexo E o RISC É mais reduzido RISC O RISC Desenvolver um processador Com conjunto simplificado de instruções Para reduzir os ciclos de máquina Necessários para execução de uma instrução Então esse é o RISC Processadores sem microprogramas Sem interpretação Ganho instruções Até 10 vezes mais rápidas Que o CISC Princípios de projeto Todas as instruções São executadas por hardware Maximizar a taxa de execução De instruções Instruções devem ser Fáceis de decodificar Restringir o acesso A memória Somente load e store E ter registradores em número suficiente Esses são os princípios de projetos De projeto RISC CISC vs RISC Multiplicação de dois números A computação CISC Busca completar uma tarefa Com o mínimo de linhas de código possível Uma única instrução CISC Pode levar vários ciclos De relógio do computador Para ser concluída Por exemplo, a multiplicação de dois números De um processador CISC Pode ser concluída Com uma única instrução Um exemplo MUL 1200 Virgula 1201 Essa é uma instrução por exemplo A multiplicação em um processador RISC Já é diferente do CISC Não pode ser concluída Com um único comando Várias instruções são simples Para carregar cada operando De locais específicos Na memória Por exemplo 1200 sobre 1201 Multiplica os números E em seguida armazene o resultado Então a gente tem O seguinte modelo O load A 1200 O load B 1201 MUL AB Vamos tentar aqui 1200 e 1201 são barramentos Resultado É armazenado No acumulador E o conteúdo do acumulador Será armazenado na posição 1200 O RISC São instruções mais simples Que demandam um menor ciclo de máquina Ok, várias instruções Vários ciclos de máquina Então é isso São instruções mais simples Que demandam um menor ciclo de máquina Em um processador RISC Operações como MUL São Realizadas apenas em registros Apenas em registros Não diretamente na memória Embora isso aumente a contagem De instruções Permite o uso de instruções Mais simples e rápidas CISC vs RISC Ou RISC vs CISC CISC Ele tem ênfase no hardware Inclui instruções complexas De múltiplos ciclos de máquina Memória para memória Load e Store Incorporados nas instruções do CISC Tamanhos de código pequenos Muitos ciclos por segundo Usados para armazenar instruções complexas Exemplo O X86 da Intel O RISC Ênfase no software Único ciclo de máquina Instruções reduzidas apenas Registrador para registrador Load e Store São instruções independentes Poucos ciclos por segundo Códigos grandes Gasta mais transistores Em registradores Exemplos Alguns computadores O Stanford University O M-IPS Da M-IPS Technologies O uso didático Você tem o computador da University of California Da Berkeley O Ultraspark Sun RISC-V padrão aberto E você tem o IDM, o PowerPC O Motorola E o PowerISA O Open Power Foundation Diagrama de tempos do processador Diagrama de tempos do processador O ciclo de instrução Inicia como se fosse Aquela Aquela senoide Ou senoide quântica Em que você tem Vários períodos E a quadratura Então o ciclo de instrução É isso Então você tem ali Os códigos binários Por exemplo, um está em cada Parte superior Dessa senoide quântica Que ela é totalmente Sem curvas Ela é meio que retangular E o zero é nas baixas Ou seja, quando você tem Uma subidinha do retângulo Vamos dizer assim Do trapézio É um E quando você desce é o zero E isso daqui vai configurando dessa forma Esse é o ciclo de instrução Tem um momento em que Que eu endereço Depois habilito, que recebo E um momento que eu desabilito A memória. Temos essa sequência de acontecimentos Isso aqui é um diagrama de tempos Do processador Então o diagrama de tempos do processador Ele é feito por ciclo de instrução Então são quatro ciclos de instrução Em que os pontos altos Daquela senoide Retangular Ou seja, de trapézios Em cima é um e embaixo é zero Dando a questão do binário Então ele fetch Ele pega a instrução Primeiro ciclo No segundo ele executa a instrução E no terceiro ciclo ele implementa o PC Então pega Executa e incrementa Pipeline Execução de uma instrução De várias partes Cada parte sendo executada Com o indicado estágios E todos executando ao mesmo tempo Em paralelo Exemplo, pipeline de 5 estágios Com execução simultânea de 5 instruções Então a gente tem No primeiro momento Você tem instructions Fetch a new unit Ele vai lá e busca a instrução No S1 No S2 ele decodifica a instrução No S3 Ele pega Operando Ele pega A unidade Na busca da memória Na unidade 4 Ele executa a instrução Na unidade Na unidade 5 ele escreve de volta Na unidade o valor que foi Construído Por esse processo Aqui você tem um esquema O resultado da arquitetura De microcomputadores A forma com que eles são construídos Permite que o processamento Aconteça de forma paralela Então é bem interessante Isso aqui do pipeline Então pipeline Execução de uma instrução de várias partes Cada parte sendo executada por um hardware Dedicado em estágios E todos executando ao mesmo tempo em paralelo Vamos continuando pipeline Você tem aqui O esquema agora Que é possível ser feito O processamento ser feito em forma paralela Ou seja Ele executa mais do que dois Ao mesmo tempo Então dois, três ele vai indo Quatro O processamento todos paralelos Cinco Cinco e aí vai embora Vamos falar de superescalar Se um pipeline é bom Dois é melhor Então ou seja o compilador Nesse processo de superescalar Ele gera pares compatíveis De instruções Por que não Quatro pipelines A complexidade de hardware Com muitas interconexões E também a interdependência Entre as instruções E a dificuldade em compilação Sem ganhos significativos Então a gente tem aí A alusão Ou seja um esquema Mostrando que na unidade um Você busca a informação na unidade Na dois você codifica a instrução Na três você vai lá na unidade Operando ela Como é que se diz E depois Na unidade quatro Você tem vários Então tudo isso aqui Ou seja Superescalar O processador Com cinco funções Ou seja ALU, ALU, LOAD, STORE E FLOATING E isso depois ele escreve de volta na unidade No estágio número cinco Um Pentium por exemplo A unidade de execução especializada Bom agora vamos falar de memórias cache Ou cache Memórias cache, processadores cada vez mais rápidos Versus Memórias com capacidade de armazenamento superior Ou seja As memórias com Velocidade reduzida Com relação aos microprocessadores Esse é o ponto As capacidades Uma nota As capacidades de armazenamento de memórias Com CI em CI Mais rápidas Ainda são bastante inferiores As capacidades de armazenamento Das memórias óticas e magnéticas Mais lentas Bem como do sistema de comunicação Também lentas Ok Ainda sobre a memória cache Você tem aqui um gráfico do processador De performance Ou performance da memória Em que você tem o eixo X Você tem o tempo Em anos De 1980 até 2000 E você tem então Na parte No eixo Y As escalas de 1, 10, 100 e 1000 Representando aqui A evolução Dessas CPUs Esses processadores Versus a memória de performance Então por exemplo, em 1980 No cache em um microprocessador Então você tem O CPU Ele já se distanciando Em 81 ele já começa a distanciar Do DRAM Que o DRAM seria O GAP Vamos dizer assim Você tem então O CPU Se distanciando A velocidade dele é muito maior Vamos dizer assim E versus a performance Da memória normal do DRAM É isso Em 1995 você tem o level cache O nível do cache E em 1980 No cache em microprocessador Ok Bom, blocos de memória Memórias cache ainda Internas a CPU Ou também Na motherboard, na placa mãe E de capacidade reduzida As memórias cache Elas armazenam informações Que a CPU talvez precisará Após a execução de uma instrução Então o objetivo do sistema cache É garantir Que a CPU tenha instruções E dados correspondentes Disponíveis no Fetch Instructions Cycle Ou SQL Circle Ou seja, quando ele for buscar instrução No ciclo de busca de instrução Então Ele tem que garantir que a CPU Tenha essa instrução e dados correspondentes disponíveis Posteriormente no Fetch Ou Parent Cycle Ou SQL Memórias cache ainda Elas são memórias Estáticas RAM Daí que você pode fazer Aquela analogia do gráfico Então as memórias cache é a RAM As memórias cache estão lá embaixo Enquanto o CPU está lá em cima Naquele gráfico de performance Então a gente tem o seguinte São memórias estáticas É a RAM de grande velocidade Mais densidade reduzida Elas são utilizadas Para compatibilizar as velocidades Entre processador e a memória Palavras chaves Seria a taxa de acerto Ou Hit Rate O Write Back Estratégia de escrita de dados E a previsão de saltos Que é o Branch Prediction E a execução fora de ordem Então aqui a gente tem um esquema Nos níveis de cache L1 que é o nível mais próximo Do processador O nível I Que é o cache de instruções O nível L1B Que é o cache de dados O L2 é o nível 2 On Chip O nível 3 é o Motherboard E o nível 4 é o nível 4 mesmo Então aqui a gente tem um esquema Onde fica ali A memória cache Então você tem ali um Um retângulo Lá dentro você tem vários quadradinhos Você tem um chip, o CPU chip Que tem o L1 e o L1B Que é o cache de instruções E o cache de dados Depois você tem ainda Dentro do CPU, do pacote do CPU Você tem Unified L2 Cache Que é o nível do chip De cache E depois dentro do processador board Você tem o Keyboard O controle do Keyboard Você tem o controle de gráficos Também que é o outro quadradinho Depois o Disk Controller E o Unified L3 Cache Tudo isso você tem lá dentro Também a memória principal Que é o DRAM Que é essa memória Cache Bom O DRAM Não é a memória cache SRAM Que é a memória cache Ok SRAM, memória cache O DRAM É a memória principal Do CPU, do computador Então vamos lá Funcionamento das memórias cache Então você tem um esquema Que é o cache de disco O cache de comunicação O CPU De um lado e o DRAM do outro A memória Então há uma conexão entre uma seta De vai e volta Então você tem o L1 E o L2 O L3 e o L4 Que se conecta ao DRAM Da direita para a esquerda E você tem esses quatro níveis O cache É a transferência por blocos de 64 bits Estratégia de reposição Eles são menos Recentes e menos Frequente usado Então esse que é o ponto Do lado do DRAM Do lado do CPU Você tem o L2 e o L1 E do lado do CPU Você tem a taxa de acerto Write through ou write back São limites de velocidade do barramento Então você tem A diferença de velocidade Com relação ao processador Então você cada vez mais A velocidade vai em direção Ao CPU É um modelo Meio difícil de explicar Memórias cache A gente tem um exemplo aqui De um esquema Do processador Intel i7 O nome dele é Intel Core i7-7700HQ O código O nome é Cake Lake Cable Lake O package É o socket 1440 FCBGA Tecnologia 14 Nano M ou NM O Core VID 0,653 Então esse daqui é o da Intel E tem ali as informações de cache No nível 3 De 6 megabits De capacidade De processamento Então você tem ali o L1 e o L2 Individuais Um dos núcleos e um dos threads E o L3 compartilhado entre todos os núcleos e threads Bom Benchmark da Intel Versus AMD Comparativo de desempenho com base na execução De grupos de aplicativos padronizados Então os aplicativos comerciais Office Aplicativos multimídia ou Content Creation E os jogos 3D Ainda tem aplicações científicas Ponto Flutuante E aplicações banco de dados Data Inverse Ou seja, realizados por empresas independentes E auditorias E o benchmark Intel versus AMD Ainda a comparação, referência, software, performance Guide AMD Você tem o Atom XP 3000 Mais o XPentium 4 3,06 GHz O AMD Atom XP Processor Performance Benchmark O desktop overall Aqui você tem o AMD Atom Com 117% Da capacidade dele E o Intel Pentium Que é o Hyper Threading Enabled 100% E o Hyper Threading Disabled 106% Enfim Não fica muito claro esse tipo de comparação aqui E a comparação do Opteron Do Exon Utilizando o aplicativo do RP Da SAP ainda Intel versus AMD Então teoricamente aqui Ele fala que a AMD tem uma performance melhor AMD Opteron O modelo 250 Em relação aos Xeon Que tem menores performance Com isso nós finalizamos então a aula 3

Listen Next

Other Creators