microarquitetura intel core duo
TRANSCRIPT
02-05-2023
INTEL CORE DUOMicroarquitectura
02-05-2023
Microarquitectura
• É o nível acima do nível digital tem a função se garantir o funcionamento do computador a nível de arquitetura de conjunto de instruções (ISA).
• Neste nível tem se o acesso a todos os recursos de hardware como registadores, barramentos, ULA, memoria.
• Notemos que o computador de 6 níveis, onde cada nível suporta o nível acima.
02-05-2023
Microarquitectura• Os desenvolvimentos do micro arquitetura é benéfico, porem este deve avaliar as condições
de implementação da ISA e dos seguintes pontos:• Área física do chip e custo
• Consumo de energia
• Complexidade da logica
• Facilidade de conexão
• Facilidade de encontrar erros
• Testabilidade
• Velocidade
• Facilidade de uso
• Confiabilidade
02-05-2023
Conceitos básicos em microarquitectura• Instruction pipelining
Execução de varias instruções em paralelismo ou seja instruções executadas em simultâneo mas com estágios de evolução diferentes.
• Ciclo de instrução• Leitura da instrução e decodificação da mesma.
• Encontrar algum dado associado a esta que seja necessário processar a instrução
• Processamento de instrução
• Escrita dos resultados em um dispositivo de saída ou entrada.
• O ciclo de instrução é repetido continuamente ate que a máquina seja desligada
02-05-2023
Conceitos básicos em microarquitectura• Memória virtual
É uma técnica que usa a memória secundária como uma cache para armazenamento secundário.
• Memoria cache
Memória de alta velocidade em relação a RAM externa, esta está dentro do processador, usada para armazenar dados que o processador pode precisar. É implementada nas maquinas “Stored Program computer”.
• Caminho de dados
É a parte da CPU que contem a ULA suas entradas e suas saídas para determinar o fluxo de dados.
• Microinstruções
Comandos que controlam o fluxo de dados e o sequenciamento de instruções de execução em um processador, comandos estes executados pelo sequenciador lógico e gozam da unicidade de arquitetura para arquitetura.
02-05-2023
Conceitos básicos em microarquitectura• Hiperthreading
Divisão de um programa em múltiplas threads de execução que são pipelines em nível mais alto.
• Superescalar
Este conceito é introduzido a medida que os arquitetos notaram a eficiência do uso de pipelines, de a necessidade de aumentar o número destas unidades dentro do microprocessador.
• Multinúcleo
Multinúcleo (múltiplos núcleos, do inglês multicores) consiste em colocar dois ou mais núcleos de processamento (cores) no interior de um único chip.
Melhorou as capacidades de resfriamento
maior desempenho com menor energia, fator importante em dispositivos móveis que funcionam com baterias
• Porem para que a qualidade de processamento paralelo dos multicores seja utilizada na sua totalidade os softwares instalados na máquina devem ser escritos para aproveitar esse recurso; para isso as aplicações devem ser escritas utilizando e armazenando os conceitos de threads, assim uma única aplicação utilizará o poder de processamentos dos dois ou mais processadores.
02-05-2023
MICROARQUITECTURA INTEL CORE
CORE DUO
02-05-2023
FACTOS HISTÓRICOS• A microarquitectura Intel Core é uma microarquitectura lançada pela Intel em
Fevereiro 2006. É baseada na microarquitectura de Pentium III, com varias melhorias, algumas presentes em Pentium M.
• O alto consumo elétrico dos processadores baseados na microarquitectura NetBurst usada em Pentium IV, bem como a consequente dificuldade de se aumentar a sua frequência foi a razão principal da Intel ter abandonado NetBurst (Pentium IV).
• Arquitetura apresenta menor consumo elétrico que as anteriores, é competitiva, Seus produtos derivados são multinúcleos e suporte à virtualização por hardware e construído com tecnologia 65 nm.
02-05-2023
Características arquitetónicas• 64 KB de cache L1 (32 KB de dados + 32 KB de instruções) por núcleo 2 MB, 4 MB ou 8 MB de cache de
memória L2 compartilhado. Core Duo originais possuem 2 MB de memória cache L2
• A arquitetura Core possui um pipeline de 14 estágios,
• Três unidades logicas e aritméticas
• Micro-fusão• Um recurso novo na arquitetura Core é a fusão de instruções , que é a capacidade de combinar duas
instruções x86 dentro de apenas uma micro instrução aumentando o desempenho, pois o processador executará apenas uma microinstrução em vez de duas.
• Quatro descodificadores, com capacidade ate 5 instruções por ciclo
• Tecnologia de 65 nm (Distancia entre as células dos transístores);
02-05-2023
Características arquitetónicas• Soquete 775;
• Barramento externo de 800 MHz (200 MHz transferindo quatro dados por pulso de clock) ou 1.066 MHz (266 MHz transferindo quatro dados por pulso de clock)
• Tecnologia de Virtualização• Permite o uso de máquinas virtuais nos computadores permitindo assim o uso de múltiplos
sistemas.
• Instruções SSE3 para aritmética de ponto flutuante;
• Execute Disable;
• Inteligent Power Capability;
• Tecnologia Enhanced SpeedStep.
• Tecnologia de múltiplas threads
02-05-2023
Características arquitetónicas• Advanced Digital Media Boost
Outro recurso novo é um caminho de dados real de 128 bits, Assim quando uma instrução que trabalhava dados de 128 bits era executada, ela tinha que ser quebrada em duas operações de 64 bits. A Intel chama esse novo recurso de “Advanced Digital Media Boost”.
• Advanced power gating
A arquitetura Core possui uma tecnologia de chaveamento elétrico avançado (advanced power gating) que permite ao processador desligar unidades que não estão sendo usadas no momento, só que isso vai mais longe, o processador pode desligar partes específicas dentro de cada unidade do processador de modo a economizar energia para dissipar menos calor.
• Outra capacidade é ligar apenas os bits necessários usados nos barramentos internos do processador.
02-05-2023
Estrutura geral do processador core duo• Advanced Programmable Interrupt Controller (APIC) Controlador
avançado de instrução programável.O APIC pode proporcionar interrupções, que permitem que todo o processo para interromper qualquer outro processador ou conjunto de processadores.
• Thermal Control
Logica de gerenciamento de energia é responsável pela redução de consumo de energia sempre que possível, aumentando assim a vida útil da bateria para caso de plataformas moveis.
Em essência, a logica de gerenciamento de energia monitora as condições térmicas da atividade da CPU e ajusta os níveis de tensão e consumo de energia de forma adequada
02-05-2023
Conjunto de instruções nesta microarquitectura• A intel adotou intruções de x86
• Os registradores tem 64 bits, uma extensão de 32 bits. Deste modo uma instrução de 64 bits ao invés de ser repartida este processador pode executá-la por inteiro.
• capacidades como tecnologias de multimédia e SSE Streaming SIMD Extensions Single Instruction Multiple Data
02-05-2023
Propriedades básicas da arquitetura x86• Micro-operações
Dividir a maioria das instruções em pedaços menores, são então entregues a uma unidade de controlo para que possam ser executadas, parcialmente em paralelo, por uma das várias unidades de execução.• Registradores• 8 registradores de uso geral dos quais 8 são estendidos,• 6 registradores de segmento,• 1 registrador de flags,• um Apontador de Execução (Instruction Pointer)• 16 para propósito de multimédia e aritmética de ponto flutuante SSE.
02-05-2023
Registradores de uso geral• EAX - Acumulador. Usado em operações aritméticas.
• ECX - Contador. Usado em laços.
• EDX - Registrador de Dados. Usado em operações de entrada/saída e em multiplicações e divisões. É também uma extensão do Acumulador.
• EBX - Base. Usado para apontar para dados no segmento DS.
• ESP - Apontador da Pilha (Stack Pointer). Aponta para o topo da pilha (endereço mais baixo dos elementos da pilha).
• EBP - Apontador da base da frame. Usado para aceder a argumentos de procedimentos passados pela pilha.
• ESI - Índice da fonte de dados a copiar (Source Index). Aponta para dados a copiar para DS:EDI.
• EDI - Índice do destino de dados a copiar (Destination Index). Aponta para o destino dos dados a copiar de DS:ESI.
• Estes 8 registradores têm 32 bits cada um e dizem-se Estendidos
02-05-2023
REGISTRADORES DE SEGMENTO• Armazenam informações sobre dados, instruções, endereços
segmentados.• Os registradores de segmento detêm seletores de segmento de 16 bits.
Um seletor de segmento é um ponteiro especial que identifica um segmento na memória.• O uso dos registadores de segmento depende do tipo de modelo de
gerenciador de memoria que os sistema operacional esta executando.
• modelo de memória plana ou não segmentada (unsegmented) • modelo de memória segmentada,
02-05-2023
Modelo de memória plana ou não segmentada (unsegmented)Registradores de segmento são carregados com seletores de segmento que apontam para segmentos sobrepostos, cada um dos quais começa no endereço zero do espaço de endereço linear
Tipicamente, dois segmentos sobrepostos são definidos: um para o código e outro para dados e pilhas. Os registos de segmento CS apontam para o código de segmento e todos os outros registos do segmento apontam para o segmento de dados e pilha.
Não permite o uso de recursos de múltiplas threads e multi-core
02-05-2023
MODELO DE MEMÓRIA SEGMENTADA
Ao usar o modelo de memória segmentada, cada registro de segmento é normalmente carregado com seletor de segmento diferente de modo que cada registro de segmento aponte a um segmento diferente no espaço de endereço linear.
A qualquer momento, um programa pode, assim, aceder até seis segmentos no espaço de endereço linear. Para aceder a um segmento não apontado por um dos registradores de segmento, um programa deve primeiro carregar o seletor de segmento para o segmento a ser acessada em um registrador de segmento.
02-05-2023
TIPOS DE REGISTADORES DE SEGMENTO• CS - Segmento do Código•DS - Segmento de Dados• ES - Segmento com dados extras• FS - Segmento com mais dados•GS - Segmento com ainda mais dados• SS - Segmento da Pilha (Stack)Cada registo de segmento está associado com um dos três tipos de armazenamento: código, dados e ou pilha.
02-05-2023
• Por exemplo o segmento CS contem o seletor de segmento para o segmento de código, onde as instruções estão sendo gravadas.
• Os registos de segmento DS,ES,FS e GS apontam para segmentos de dados.Permitindo a eficiência e segurança no acesso de diferentes tipos de
estruturas de dados. Para acesso segmentos de dados, o programa de aplicação deve carregar seletores de segmento para esses segmentos na DS, ES, FS e GS registros, conforme necessário.• O registo de segmento SS contem o seletor para pilha, onde procedimentos
da pilha são gravados para um programa, tarefa pu thread sendo executado. Todas as operações usam o registro SS para encontrar o segmento de pilha
02-05-2023
• Registos EFLAGS (Controle e estado de programa)Os registos EFLAGS dão o repórter de um programa sendo executado e permite a limitação do controle do processador.• PCO Program Counter, do x86 é um registo interno que aponta para a próxima instrução a ser executada.
02-05-2023
Caminho de dados
02-05-2023
Conjunto de instruções • Transferência de dadosEx: MOV move dados entre registos de propósito geral; Move dados entre memória e registos de propósito geral ou registos de segmentos; • Aritmética binariaAs instruções de aritmética binaria executam cálculos básicos sob inteiros binários.Ex: ADD, SUB,MUL, DIV, INC (Incrementa),DEC (Decrementa)• Aritmética decimalAs instruções de aritmética decimal operam sob dados binários codificados em decimal (BCD).Ex: DAA Ajuste decimal depois de adição, DAS ajuste decimal depois da subtração
02-05-2023
Conjunto de instruções • Logical
São instruções que operam as operações logicas básicas AND, OR, XOR, e NOT em um byte de palavra• Shift e rotate (deslocamento e rotação)
Estas instruções fazem o movimento e a rotação de bits em uma palavra.
Ex: SAR Deslocamento aritmético a direita, SAL/SHL Deslocamento aritmético a esquerda / Deslocamento logico a esquerda• Bit e byte
As instruções de teste de bit testam e modificam bits individuais em uma palavra. As instruções de Byte modificam o valor de um byte que aponta para um FLAG em um registro EFLAGS.
Ex: BT Teste de Bit, BTS Bit test and set, BTR Bit test and reset
02-05-2023
Conjunto de instruções • Controle de transferênciaAs instruções de transferência de instruções, dão a possibilidade de fazer saltos em partes de código, podemos ainda fazer saltos condicionais, laços e chamadas e retornar a controle de operações de fluxo de programa.
Ex: JMP salto, JE/JZ salto se igual a zero/salto se zero, JNE/JNZ salto se não for igual/salto se não for zero, CALL chamada a procedimento, RET Return• StringEsta é uma novidade que esta arquitetura traz, que são as instruções para operação de String em bytes, permitindo que estes sejam movidos para ou da memória.
Ex: MOVS/MOVSB Move String/Move byte String, MOVS/MOVSW Move String/Move word String.
02-05-2023
Conjunto de instruções • I/OEstas instruções movem dados entre o processador e as portas I/O e registos ou memoria.
Ex: IN Leitura a partir de porta, OUT Leitura em porta, INS/INSB entrada de String a partir de porta/entrada de byte de String a partir de porta.
• Entrada e saídaEstas instruções fornecem suporte a linguagem maquina para chamadas a procedimentos em blocos de linguagem estruturadas.
Ex: ENTER entrada a procedimentos de alto nível, LEAVE saída de procedimentos de alto nível.
02-05-2023
Conjunto de instruções • Controle de Flag
Estas instruções operam nas FLAGS nos registos EFLAGS.Ex: CLC Clear the carry flag, CLD Clear the direction flag, STD Set direction flag
• Registo de segmento
Instruções de registo de segmento permitem que segmentos de endereços sejam lidos nos registos de segmentos.
Ex: LDS Load far pointer using DS, LES, LFS, LGS, LSS.
• Diversos
Estas instruções fornecem funções como leitura de endereços efetivos, execução de “no-operation,” e recobrando informação de identificação de processador.
Ex; LEA Load effective address, NOP No operation, UD2 instrução não definida
• Instruções de geração de números aleatórios
Estas instruções fornecem mecanismos para geração de número aleatórios.
02-05-2023
Formato de instruções
As instruções nesta arquitetura podem ter dentre 1 a 15 bytes.Para o formato de instruções nesta arquitetura temos:• Prefixos de instruções (opcionais) até 4 bytes• Código de operação (OPCODE) ate 3 bytes• Especificador de forma de endereçamento (ModR/M) 1 byte• Escala de base indexada (Scale-index-base) 1 byte• Deslocamento (displacement) e Immediate, este são campos opcionais que em certas
formas de endereçamento há necessidade de localizar um operando na memória
02-05-2023
Caraterísticas físicas e especto térmicos do Intel core duo
FCPGA (Flip Chip Pin Grid Array) FCBGA (Flip Chip Ball Grid Array)
Nesta arquitetura a Lei de Moore prevaleceu e, a capacidade de integração de transístores foi de cerca de 152 milhões.
02-05-2023
Estudar, pesquisar cultivando a ciência e a Técnica…
Obrigado Pela Atenção
02-05-2023