- O documento discute microarquiteturas avançadas de processadores, incluindo exceções, deep pipelining, branch prediction, processadores superscalares e fora de ordem.
- É explicado como exceções são tratadas através do registro Cause e EPC e como o processador salta para o handler de exceção.
- Técnicas como deep pipelining, branch prediction com 1-bit e 2-bit predictors, processadores superscalares e fora de ordem são apresentadas para melhorar o desempenho dos processadores.
1) O documento apresenta informações sobre microcontroladores PIC, incluindo estrutura interna, memórias, registradores, conjunto de instruções e osciladores.
2) São descritos os principais componentes do PIC16F628 como memórias de programa e dados, registradores especiais, pilha e vetores de interrupção.
3) O documento explica conceitos como arquitetura Harvard, ciclos de máquina e funcionamento básico dos osciladores internos e externos do PIC16F628.
O documento discute interrupções e DMA em sistemas computacionais. Aborda conceitos como exceções, interrupções, processamento de interrupções e como diferentes arquiteturas de processadores, como MIPS, Intel e controladores de interrupção lidam com eventos assíncronos.
O documento descreve os níveis mais baixos da arquitetura de computadores, começando pelos transistores. Explica como transistores funcionam como comutadores binários e podem ser usados para construir portas lógicas como NAND e NOR. Também introduz circuitos integrados mais complexos como latches, flip-flops e unidades lógicas aritméticas usadas em processadores.
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
O documento descreve um projeto para evoluir a infraestrutura de experimentação do FIBRE utilizando virtualização e equipamentos whitebox de baixo custo. O objetivo é permitir a criação de switches virtuais sob demanda e melhorar o desempenho usando DPDK, removendo a dependência do FlowVisor. Os resultados iniciais mostraram melhorias no throughput e latência após tunning no OVS, porém a latência ainda precisa ser reduzida. Trabalhos futuros incluem testes com portas de 10Gbps e novas funcionalidades no OVS
Hail forms in cumulonimbus clouds as rain drops rise and freeze into ice pellets. These pellets grow larger as they are lifted up and down in the clouds, freezing more water onto their surfaces. Large hailstones can fall with great force and cause damage to crops, buildings, vehicles and even livestock. While forecasts can provide some warning, hailstorms are difficult to predict and protective measures like covering crops may help reduce losses when hail threatens. Hail poses a danger and causes harm through its physical impacts during storms.
O documento descreve um fórum de discussão online chamado "The Book Is On The Table", incluindo seções sobre perfis de usuários, estrutura de tópicos, exemplos de postagens e tags de spoiler.
This document provides directions for a 6th grade social studies project on planning a quest through Canada. Students will select a destination location in Canada and plan a route that includes at least 3 other Canadian provinces and any necessary US states. Their route must include a minimum of 5 stops and be presented visually through a poster or PowerPoint. The presentation must include maps of the route and stops, method of transportation, mileage and travel time estimates, and specific geographic, cultural, economic and population details for each stop and the destination. Students will present their quest to the class during the assigned week.
1) O documento apresenta informações sobre microcontroladores PIC, incluindo estrutura interna, memórias, registradores, conjunto de instruções e osciladores.
2) São descritos os principais componentes do PIC16F628 como memórias de programa e dados, registradores especiais, pilha e vetores de interrupção.
3) O documento explica conceitos como arquitetura Harvard, ciclos de máquina e funcionamento básico dos osciladores internos e externos do PIC16F628.
O documento discute interrupções e DMA em sistemas computacionais. Aborda conceitos como exceções, interrupções, processamento de interrupções e como diferentes arquiteturas de processadores, como MIPS, Intel e controladores de interrupção lidam com eventos assíncronos.
O documento descreve os níveis mais baixos da arquitetura de computadores, começando pelos transistores. Explica como transistores funcionam como comutadores binários e podem ser usados para construir portas lógicas como NAND e NOR. Também introduz circuitos integrados mais complexos como latches, flip-flops e unidades lógicas aritméticas usadas em processadores.
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
O documento descreve um projeto para evoluir a infraestrutura de experimentação do FIBRE utilizando virtualização e equipamentos whitebox de baixo custo. O objetivo é permitir a criação de switches virtuais sob demanda e melhorar o desempenho usando DPDK, removendo a dependência do FlowVisor. Os resultados iniciais mostraram melhorias no throughput e latência após tunning no OVS, porém a latência ainda precisa ser reduzida. Trabalhos futuros incluem testes com portas de 10Gbps e novas funcionalidades no OVS
Hail forms in cumulonimbus clouds as rain drops rise and freeze into ice pellets. These pellets grow larger as they are lifted up and down in the clouds, freezing more water onto their surfaces. Large hailstones can fall with great force and cause damage to crops, buildings, vehicles and even livestock. While forecasts can provide some warning, hailstorms are difficult to predict and protective measures like covering crops may help reduce losses when hail threatens. Hail poses a danger and causes harm through its physical impacts during storms.
O documento descreve um fórum de discussão online chamado "The Book Is On The Table", incluindo seções sobre perfis de usuários, estrutura de tópicos, exemplos de postagens e tags de spoiler.
This document provides directions for a 6th grade social studies project on planning a quest through Canada. Students will select a destination location in Canada and plan a route that includes at least 3 other Canadian provinces and any necessary US states. Their route must include a minimum of 5 stops and be presented visually through a poster or PowerPoint. The presentation must include maps of the route and stops, method of transportation, mileage and travel time estimates, and specific geographic, cultural, economic and population details for each stop and the destination. Students will present their quest to the class during the assigned week.
The document discusses ethics and values as the essence of human beings. It defines ethics as the theory or science of human moral behavior in society. Values are what allow humans to defend themselves and believe in themselves. Humans form their character through their habitual acts, and choosing good acts leads to acquiring positive habits while choosing bad acts leads to negative habits. The conclusion states that ethics and values define humans and allow them to achieve goals and tasks, and to form good citizens and teachers through strong values.
ABLE Charities provides healthcare, education, and vocational support to underprivileged communities in rural India. In 2010-2011, ABLE operated a 100-bed hospital, supported education for over 1700 children, and launched new initiatives like mobile healthcare and scholarships for rural girls. The annual report highlights ABLE's continued efforts to improve access to education and healthcare in impoverished villages.
This 1-day lesson plan taught 6th grade students about New York City through a reading and listening activity about landmarks and places in NYC. Students read a transcript about various NYC locations, watched a video with the same information, and completed an online quiz to check comprehension. They were then divided into groups to match images of 20 NYC landmarks with their names. The goal was for students to improve their English reading, writing, listening and speaking skills while learning about NYC culture. The lesson aimed to help students appreciate foreign languages and cultures.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
The Chrooma+ Approach to Enrich Video Content using HTML5Michael Krug
The Internet has become an important source for media content. Content types are not limited to text and pictures but also include video and audio. Currently audiovisual media is presented as it is. However, these media do not integrate the huge amount of related information, which is available on the Web. In this paper we present the Chrooma+ approach to improve the user experience of media consumption by enriching media content with additional information from various sources in the Web. Our approach focuses on the aggregation and combination of this related information with audiovisual media. This approach involves using new HTML5 technologies and with WebVTT a new annotation format to display relevant information at definite times. Some of the advantages of this approach are the usage of a rich annotation format and extensibility to include heterogeneous information sources.
El documento describe tres tipos principales de personajes (actantes) que pueden aparecer en caricaturas: 1) personas, 2) animales, y 3) objetos. Los actantes personas pueden representar niños, jóvenes, adultos, héroes, villanos, etc. Los actantes animales pueden adoptar comportamientos completamente animales o una mezcla de rasgos animales y humanos. Los actantes objetos normalmente tienen atributos mágicos aunque ahora son poco comunes.
Rencana pelaksanaan pembelajaran (RPP) ini membahas tentang masalah pokok ekonomi seperti barang apa yang diproduksi, bagaimana cara memproduksinya, dan untuk siapa barang tersebut diproduksi. RPP ini menjelaskan kompetensi dasar, indikator pencapaian, tujuan pembelajaran, materi ajar, metode pembelajaran, dan penilaian siswa. Topik ini akan dipelajari melalui diskusi, tanya jawab, dan tugas terstru
The document provides a 1 day lesson plan for a 6th grade English class in New York City. The plan includes reading a text and watching a video about New York landmarks to improve reading comprehension. Students will then complete an online quiz and activity where they match images of landmarks to their names. The lesson aims to develop students' English linguistic skills while helping them learn about American culture. It incorporates group work, use of technology, and assessment through class participation and quiz results.
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
1) O documento discute configurações de BIOS e hardware para melhor desempenho de bancos de dados em ambientes x86.
2) É abordada a Lei de Moore e como a inovação em tecnologia permite dobrar o número de transistores a cada dois anos, melhorando desempenho e reduzindo consumo.
3) Fatores como CPU, memória, I/O e disco influenciam o desempenho de servidores, e as configurações padrão de BIOS nem sempre são ideais para bancos de dados.
- O documento discute o pipeline no processador MIPS, dividindo a execução das instruções em cinco estágios: busca de instrução, decodificação, execução, acesso à memória e escrita no registrador.
- Para implementar o pipeline, os dados precisam ser armazenados em registradores entre os estágios. Isso permite que múltiplas instruções sejam processadas simultaneamente de forma overlapped, com cada estágio trabalhando em uma instrução diferente a cada ciclo.
- Os sinais de controle precis
Webinar: Porque o RTOS não faz o que eu quero?Embarcados
Nesta apresentação iremos abordar três conceitos comuns na programação embarcada e como eles devem ser modificados para que funcionem quando se tem um RTOS no meio: multitasking, temporização e compartilhamento de variáveis.
Acesse o video em: https://www.embarcados.com.br/webinars/webinar-porque-o-rtos-nao-faz-o-que-eu-quero/
This presentation explains the importance of set up the transaction fetch size. by doing this the underlying database protocol can easily calculate the correct tcp window and avoid to waste bandwidth and time.
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoFabrício Catae
O documento discute diagnóstico de desempenho no SQL Server, abordando altos consumos de CPU, waits e locks. É apresentada uma metodologia para identificar a causa do alto consumo de CPU analisando logs e planos de execução de queries. Wait statistics são explicadas como forma de identificar gargalos como I/O e log writes. Problemas de travamento são discutidos, com foco em compatibilidade e hierarquia de locks.
O documento discute a arquitetura e organização de computadores, introduzindo os conceitos de arquitetura versus organização, sistemas numéricos, portas lógicas e circuitos, processadores e instruções.
O documento discute sobre arquitetura e organização de computadores. Explica que a arquitetura se refere aos atributos visíveis para o programador, como conjunto de instruções, enquanto a organização diz respeito à implementação dessas especificações. Também aborda sistemas numéricos, portas lógicas, processadores e memória.
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
Este documento discute:
1. Sistemas em tempo real e seus requisitos temporais, como garantir a periodicidade de tarefas e determinismo.
2. Como implementar um sistema que trabalhe com requisitos temporais, necessitando de um relógio preciso, informar a frequência de cada processo e garantir que os tempos de execução cabem no tempo disponível.
3. A criação de drivers para dispositivos, como o driver para LCD utilizando funções de inicialização, escrita e acesso.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, configuração de periféricos como ADCs e PWM, uso de interrupções e memória EEPROM. Inclui também exemplos de código C para controlar dispositivos com PIC.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, entrada e saída digital, conversor AD, interrupções e uso da memória EEPROM.
1) O documento descreve um workshop sobre manutenção de notebooks realizado pelo professor Marcos Jerônimo dos Santos.
2) Os objetivos do treinamento incluem mostrar características técnicas de notebooks, defeitos comuns e procedimentos de manutenção.
3) O público-alvo inclui profissionais de eletrônica, informática e estudantes interessados em técnicas de manutenção preventiva e corretiva de notebooks.
The document discusses ethics and values as the essence of human beings. It defines ethics as the theory or science of human moral behavior in society. Values are what allow humans to defend themselves and believe in themselves. Humans form their character through their habitual acts, and choosing good acts leads to acquiring positive habits while choosing bad acts leads to negative habits. The conclusion states that ethics and values define humans and allow them to achieve goals and tasks, and to form good citizens and teachers through strong values.
ABLE Charities provides healthcare, education, and vocational support to underprivileged communities in rural India. In 2010-2011, ABLE operated a 100-bed hospital, supported education for over 1700 children, and launched new initiatives like mobile healthcare and scholarships for rural girls. The annual report highlights ABLE's continued efforts to improve access to education and healthcare in impoverished villages.
This 1-day lesson plan taught 6th grade students about New York City through a reading and listening activity about landmarks and places in NYC. Students read a transcript about various NYC locations, watched a video with the same information, and completed an online quiz to check comprehension. They were then divided into groups to match images of 20 NYC landmarks with their names. The goal was for students to improve their English reading, writing, listening and speaking skills while learning about NYC culture. The lesson aimed to help students appreciate foreign languages and cultures.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
The Chrooma+ Approach to Enrich Video Content using HTML5Michael Krug
The Internet has become an important source for media content. Content types are not limited to text and pictures but also include video and audio. Currently audiovisual media is presented as it is. However, these media do not integrate the huge amount of related information, which is available on the Web. In this paper we present the Chrooma+ approach to improve the user experience of media consumption by enriching media content with additional information from various sources in the Web. Our approach focuses on the aggregation and combination of this related information with audiovisual media. This approach involves using new HTML5 technologies and with WebVTT a new annotation format to display relevant information at definite times. Some of the advantages of this approach are the usage of a rich annotation format and extensibility to include heterogeneous information sources.
El documento describe tres tipos principales de personajes (actantes) que pueden aparecer en caricaturas: 1) personas, 2) animales, y 3) objetos. Los actantes personas pueden representar niños, jóvenes, adultos, héroes, villanos, etc. Los actantes animales pueden adoptar comportamientos completamente animales o una mezcla de rasgos animales y humanos. Los actantes objetos normalmente tienen atributos mágicos aunque ahora son poco comunes.
Rencana pelaksanaan pembelajaran (RPP) ini membahas tentang masalah pokok ekonomi seperti barang apa yang diproduksi, bagaimana cara memproduksinya, dan untuk siapa barang tersebut diproduksi. RPP ini menjelaskan kompetensi dasar, indikator pencapaian, tujuan pembelajaran, materi ajar, metode pembelajaran, dan penilaian siswa. Topik ini akan dipelajari melalui diskusi, tanya jawab, dan tugas terstru
The document provides a 1 day lesson plan for a 6th grade English class in New York City. The plan includes reading a text and watching a video about New York landmarks to improve reading comprehension. Students will then complete an online quiz and activity where they match images of landmarks to their names. The lesson aims to develop students' English linguistic skills while helping them learn about American culture. It incorporates group work, use of technology, and assessment through class participation and quiz results.
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
1) O documento discute configurações de BIOS e hardware para melhor desempenho de bancos de dados em ambientes x86.
2) É abordada a Lei de Moore e como a inovação em tecnologia permite dobrar o número de transistores a cada dois anos, melhorando desempenho e reduzindo consumo.
3) Fatores como CPU, memória, I/O e disco influenciam o desempenho de servidores, e as configurações padrão de BIOS nem sempre são ideais para bancos de dados.
- O documento discute o pipeline no processador MIPS, dividindo a execução das instruções em cinco estágios: busca de instrução, decodificação, execução, acesso à memória e escrita no registrador.
- Para implementar o pipeline, os dados precisam ser armazenados em registradores entre os estágios. Isso permite que múltiplas instruções sejam processadas simultaneamente de forma overlapped, com cada estágio trabalhando em uma instrução diferente a cada ciclo.
- Os sinais de controle precis
Webinar: Porque o RTOS não faz o que eu quero?Embarcados
Nesta apresentação iremos abordar três conceitos comuns na programação embarcada e como eles devem ser modificados para que funcionem quando se tem um RTOS no meio: multitasking, temporização e compartilhamento de variáveis.
Acesse o video em: https://www.embarcados.com.br/webinars/webinar-porque-o-rtos-nao-faz-o-que-eu-quero/
This presentation explains the importance of set up the transaction fetch size. by doing this the underlying database protocol can easily calculate the correct tcp window and avoid to waste bandwidth and time.
TechEd 2010: SQL Server com Foco em Diagnóstico de DesempenhoFabrício Catae
O documento discute diagnóstico de desempenho no SQL Server, abordando altos consumos de CPU, waits e locks. É apresentada uma metodologia para identificar a causa do alto consumo de CPU analisando logs e planos de execução de queries. Wait statistics são explicadas como forma de identificar gargalos como I/O e log writes. Problemas de travamento são discutidos, com foco em compatibilidade e hierarquia de locks.
O documento discute a arquitetura e organização de computadores, introduzindo os conceitos de arquitetura versus organização, sistemas numéricos, portas lógicas e circuitos, processadores e instruções.
O documento discute sobre arquitetura e organização de computadores. Explica que a arquitetura se refere aos atributos visíveis para o programador, como conjunto de instruções, enquanto a organização diz respeito à implementação dessas especificações. Também aborda sistemas numéricos, portas lógicas, processadores e memória.
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
Este documento discute:
1. Sistemas em tempo real e seus requisitos temporais, como garantir a periodicidade de tarefas e determinismo.
2. Como implementar um sistema que trabalhe com requisitos temporais, necessitando de um relógio preciso, informar a frequência de cada processo e garantir que os tempos de execução cabem no tempo disponível.
3. A criação de drivers para dispositivos, como o driver para LCD utilizando funções de inicialização, escrita e acesso.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, configuração de periféricos como ADCs e PWM, uso de interrupções e memória EEPROM. Inclui também exemplos de código C para controlar dispositivos com PIC.
O documento discute microcontroladores PIC e programação em linguagem C. Apresenta tópicos como estrutura interna dos microcontroladores PIC, declaração de variáveis, operadores, entrada e saída digital, conversor AD, interrupções e uso da memória EEPROM.
1) O documento descreve um workshop sobre manutenção de notebooks realizado pelo professor Marcos Jerônimo dos Santos.
2) Os objetivos do treinamento incluem mostrar características técnicas de notebooks, defeitos comuns e procedimentos de manutenção.
3) O público-alvo inclui profissionais de eletrônica, informática e estudantes interessados em técnicas de manutenção preventiva e corretiva de notebooks.
1) O documento discute tópicos de virtualização de banco de dados, incluindo configurações de BIOS, hyper-threading, mapeamento de CPUs no Linux, escalando frequência, prioridades de agendamento e memória.
2) É apresentado um exemplo de desempenho do Oracle em uma arquitetura Nehalem com e sem SMT habilitado.
3) Fatores como NUMA, huge pages e monitoramento de estatísticas NUMA são discutidos no contexto do desempenho do banco de dados.
O documento descreve o processador digital de sinal TMS320VC5509A da Texas Instruments. O processador possui um núcleo C55X com quatro unidades funcionais e pipeline de duas fases. Ele suporta três modos de endereçamento e possui 78 registradores mapeados em memória e periféricos integrados como timers e portas seriais.
O documento discute isolamento transacional e MVCC (Multiversion Concurrency Control). MVCC permite que leitores não bloqueiem escritores e vice-versa aumentando a concorrência. No MVCC, cada transação vê um snapshot do banco no momento em que iniciou, evitando problemas como dirty reads. Isso requer manter várias versões dos dados no banco de dados.
Apostila de montagem e manutenção de computadores emi mario gurgelPablo Mariano
O documento discute os principais componentes de um computador, incluindo a placa-mãe, processador, memória RAM, slots, barramentos como PCI, USB e Firewire. Explica os tipos de placas-mãe, processadores, memórias e suas funções no computador.
Frequency Meter using Microchip PIC16F877A SPI to Arduino Virtual COM to PCPaulo Duarte
Este documento descreve um projeto de um frequencímetro que mede a frequência de um sinal de entrada e envia os valores lidos para um computador através de um Arduino. O projeto altera um frequencímetro anterior baseado no PIC16F877 para adicionar comunicação SPI com um Arduino Duemilanove, que por sua vez se comunica com o PC via porta serial USB. O documento explica o desenvolvimento do hardware e software necessários para esta comunicação entre os dispositivos.
Introdução e Novidades. Resumo das novidades entre 2014 e 2015.
Melhoras em DICOM, DicomRT, DicomRT-Struct, segmentação, bugs detetados e corrigidos, novo modelos matemáticos, novidade em registro e fusão de imagens.
CAT3D is a Radiotherapy TPS manufactured by MEVIS, with support to 3D-CRT, IMRT, image registration and fusion.
O documento fornece uma introdução sobre arquitetura e tecnologia de computadores. Discute a CPU como a unidade central de processamento, incluindo sua estrutura, funcionamento e tipos de processadores atuais da Intel e AMD.
Palestrante: Luiz Carlos Orsoni - MAFFEI
A partir das z990 (T-Rex, em 2.003), os Mainframes da Série z passaram a ser Super Escalares, ou seja, capazes de executar mais de uma Instrução por Ciclo. Embora sejam indiscutivelmente capazes, isto não significa que sempre executarão mais do que uma Instrução por Ciclo, podendo não executar nenhuma! Como já enfatizamos em vezes anteriores, isto é extremamente dependente da qualidade do Software e de outras atividades que ocorram simultaneamente nos CECs. Esta palestra procurará aclarar os conceitos envolvidos, tendo como exemplos os detalhes internos das z13, capazes de executar até dez Instruções por Ciclo.
3. MC542
7.3
Sumário
• Exceções
• Micro-Arquiteturas Avançadas
– Deep Pipelining
– Branch Prediction
– Superscalar Processors
– Out of Order Processors
– Register Renaming
– SIMD
– Multithreading
– Multiprocessors
4. MC542
7.4
Exceções
Revisão:
• Chamada de procedimento não “prevista” para
tratamento de uma exceção
• Causado por:
– Hardware, também chamado de interrupção (keyboard, …)
– Software, também chamado de traps (instrução indefinida,
…)
• Quando uma exceção ocorre, o processador:
– Registra a causa da exceção (Cause register)
– Salta para a rotina de tratamento da exceção no endereço
de instrução 0x80000180
– Retorna ao programa (EPC register)
6. MC542
7.6
Registradores de Exceção
• Não faz parte do register file.
– Cause
» Registra a causa da exceção
» Coprocessor 0 register 13
– EPC (Exception PC)
» Registra o PC onde ocorreu a exceção
» Coprocessor 0 register 14
• Move from Coprocessor 0
– mfc0 $t0, EPC
– Move o conteúdo de EPC para $t0
7. MC542
7.7
Causa de Exceções
Exception Cause
Hardware Interrupt 0x00000000
System Call 0x00000020
Breakpoint / Divide by 0 0x00000024
Undefined Instruction 0x00000028
Arithmetic Overflow 0x00000030
Modificar o MIPS multiciclos para tratar
as duas últimas exceções.
8. MC542
7.8
1. O Processador salva a causa e o PC em Cause e EPC
2. Processador desvia para o exception handler
(0x80000180)
3. Exception handler:
– Salva os registradores na pilha
– Lê o registrador Cause
mfc0 Cause, $t0
– Trata a exceção
– Restaura os registradores
– Retorna ao programa
mfc0 EPC, $k0
jr $k0
9. MC542
7.9
Exceções: passos 1 e 2
SignImm
CLK
A
RD
Instr / Data
Memory
A1
A3
WD3
RD2
RD1
WE3
A2
CLK
Sign Extend
Register
File
0
1
0
1PC
0
1
PC' Instr
25:21
20:16
15:0
SrcB20:16
15:11
<<2
ALUResult
SrcA
ALUOut
RegDst BranchMemWrite MemtoReg ALUSrcARegWrite
Zero
PCSrc1:0
CLK
ALUControl2:0
ALU
WD
WE
CLK
Adr
0
1
Data
CLK
CLK
A
B
00
01
10
11
4
CLK
ENEN
ALUSrcB1:0IRWriteIorD PCWrite
PCEn
<<2
25:0 (jump)
31:28
27:0
PCJump
00
01
10
11
0x8000 0180
Overflow
CLK
EN
EPCWrite
CLK
EN
CauseWrite
0
1
IntCause
0x30
0x28
EPC
Cause
1. O Processador salva a causa e o PC em Cause e EPC
2. Processador desvia para 0x80000180
10. MC542
7.10
Exceções: passo 3 (mfc0)
• mfc0 $t0, Cause
Exception handler
op 00000 $t0 (8) Cause (13) 00000000000
mfc0
31:26 25:21 20:16 15:11 10:0
11. MC542
7.11
Exceções: passo 3 (mfc0)
SignImm
CLK
A
RD
Instr / Data
Memory
A1
A3
WD3
RD2
RD1
WE3
A2
CLK
Sign Extend
Register
File
0
1
0
1PC
0
1
PC' Instr
25:21
20:16
15:0
SrcB20:16
15:11
<<2
ALUResult
SrcA
ALUOut
RegDst BranchMemWrite MemtoReg1:0
ALUSrcARegWrite
Zero
PCSrc1:0
CLK
ALUControl2:0
ALU
WD
WE
CLK
Adr
00
01
Data
CLK
CLK
A
B
00
01
10
11
4
CLK
ENEN
ALUSrcB1:0
IRWriteIorD PCWrite
PCEn
<<2
25:0 (jump)
31:28
27:0
PCJump
00
01
10
11
0x80000180
CLK
EN
EPCWrite
CLK
EN
CauseWrite
0
1
IntCause
0x30
0x28
EPC
Cause
Overflow
...
01101
01110
...
15:11
10
C0
15. MC542
7.15
Branch Prediction
• Processador pepilined Ideal: CPI = 1
• Branch misprediction aumenta o CPI
• Static branch prediction:
– Avalia a direção do branch (forward ou backward)
– se backward: predict taken
– Caso contrário: predict not taken
• Dynamic branch prediction:
– Mantém histórico dos últimos (centenas) branches em um
branch target buffer (Branch History Table) que mantém:
» Destino do Branch
» E se o branch foi taken
16. MC542
7.16
Branch Prediction: Exemplo
add $s1, $0, $0 # sum = 0
add $s0, $0, $0 # i = 0
addi $t0, $0, 10 # $t0 = 10
for:
beq $t0, $t0, done # if i == 10, branch
add $s1, $s1, $s0 # sum = sum + i
addi $s0, $s0, 1 # increment i
j for
……
done:
17. MC542
7.17
1-Bit Branch Predictor
• Desempenho = ƒ(precisão, custo do misprediction)
• Branch History Table: Bits menos significativos do PC
usados como índice de uma tabela de valores de 1 bit
– Informa se o branch foi tomado ou não na última vez
– Não há comparação do endereço (menos HW, mas pode não
ser o branch correto)
0 1 1 0 0 1 1 1 0 0 0 0 0 1 0 1
0 1 2 3 4 5 6 7 8 9 A B C D E
F
Addi $t0, $s0, 10
Beq $t0, $t0, 0xfff00002
Add $s1, $s1, $s0
0xaaa00028
Branch
History
Table
18. MC542
7.18
1-Bit Branch Prediction
• Quando descobre que errou, atualiza a entrada
correta, elimina as instruções erradas do pipeline e
recomeça o fetch de 0xfff00002
• Problema: em um loop, 1-bit BHT irá causar
2 mispredictions (em média nos loops – na entrada e na
saída):
– No fim do loop quando ele termina
– Na entrada do loop quando ele preve exit no lugar de looping
– Em um loop com 10 iterações
» somente 80% de precisão
» mesmo que os Taken sejam 90% do tempo
19. MC542
7.19
2-Bit Branch Predictor
• Solução: esquema com 2-bit onde só há troca na
previsão se houver duas misprediction:
• Vermelho: not taken
• Verde: taken
• Adicionado uma Histerese (inércia) para tomar a
decisão
T
T
NT
Predict Taken
Predict Not
Taken
Predict Taken
Predict Not
TakenT
NT
T
NT
NT
21. MC542
7.21
Superscalar
• Múltiplas copias do datapath executando múltiplas instruções
• Dependências dificultam o despacho (Issue) de múltiplas
instruções por vez
CLK CLK CLK CLK
A
RD A1
A2
RD1A3
WD3
WD6
A4
A5
A6
RD4
RD2
RD5
Instruction
Memory
Register
File Data
Memory
ALUs
PC
CLK
A1
A2
WD1
WD2
RD1
RD2
22. MC542
7.22
Superscalar: Exemplo
lw $t0, 40($s0)
add $t1, $s1, $s2
sub $t2, $s1, $s3 IPC Ideal: 2
and $t3, $s3, $s4 IPC: 2
or $t4, $s1, $s5
sw $s5, 80($s0)
Time (cycles)
1 2 3 4 5 6 7 8
RF
40
$s0
RF
$t0
+
DM
IM
lw
add
lw $t0, 40($s0)
add $t1, $s1, $s2
sub $t2, $s1, $s3
and $t3, $s3, $s4
or $t4, $s1, $s5
sw $s5, 80($s0)
$t1
$s2
$s1
+
RF
$s3
$s1
RF
$t2
-
DM
IM
sub
and $t3
$s4
$s3
&
RF
$s5
$s1
RF
$t4
|
DM
IM
or
sw
80
$s0
+ $s5
23. MC542
7.23
Superscalar Exemplo com Dependências
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3 IPC Ideal: 2
and $t2, $s4, $t0 IPC: 6/5 = 1.17
or $t3, $s5, $s6
sw $s7, 80($t3)
Stall
Time (cycles)
1 2 3 4 5 6 7 8
RF
40
$s0
RF
$t0
+
DM
IM
lw
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3
and $t2, $s4, $t0
sw $s7, 80($t3)
RF
$s1
$t0
add
RF
$s1
$t0
RF
$t1
+
DM
RF
$t0
$s4
RF
$t2
&
DM
IM
and
IM
or
and
sub
|$s6
$s5
$t3
RF
80
$t3
RF
+
DM
sw
IM
$s7
9
$s3
$s2
$s3
$s2
-
$t0
or
or $t3, $s5, $s6
IM
24. MC542
7.24
Processador Out of Order
• Avaliar múltiplas instruções para despachar o máximo
possível por vez
• Despachar instruções out of order se não tem dependências
• Dependências:
– RAW (read after write): one instruction writes, and later
instruction reads a register
– WAR (write after read): one instruction reads, and a later
instruction writes a register (also called an antidependence)
– WAW (write after write): one instruction writes, and a later
instruction writes a register (also called an output
dependence)
• Instruction level parallelism: número de instruções que
podem ser despachadas simultaneamente (na prática < 3)
25. MC542
7.25
Processador Out of Order
• Instruction level parallelism: número de instruções
que podem ser despachadas simultaneamente (na
prática < 3)
• Scoreboard: tabela que mantém:
– Instruções esperando para serem despachadas
– Unidades funcionais disponíveis
– Dependências
• Tomasulo:
– Instruções esperando para serem despachadas
– Unidades funcionais disponíveis
– Dependências
– Register Rename
26. MC542
7.26
Processador Out of Order: Exemplo
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3 IPC Ideal: 2
and $t2, $s4, $t0 IPC: 6/4 = 1.5
or $t3, $s5, $s6
sw $s7, 80($t3)
Time (cycles)
1 2 3 4 5 6 7 8
RF
40
$s0
RF
$t0
+
DM
IM
lw
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3
and $t2, $s4, $t0
sw $s7, 80($t3)
or
|$s6
$s5
$t3
RF
80
$t3
RF
+
DM
sw $s7
or $t3, $s5, $s6
IM
RF
$s1
$t0
RF
$t1
+
DM
IM
add
sub
-$s3
$s2
$t0
two cycle latency
between load and
use of $t0
RAW
WAR
RAW
RF
$t0
$s4
RF
&
DM
and
IM
$t2
RAW
27. MC542
7.27
Register Renaming
Time (cycles)
1 2 3 4 5 6 7
RF
40
$s0
RF
$t0
+
DM
IM
lw
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $r0, $s2, $s3
and $t2, $s4, $r0
sw $s7, 80($t3)
sub
-$s3
$s2
$r0
RF
$r0
$s4
RF
&
DM
and
$s7
or $t3, $s5, $s6
IM
RF
$s1
$t0
RF
$t1
+
DM
IM
add
sw
+80
$t3
RAW
$s6
$s5
|
or
2-cycle RAW
RAW
$t2
$t3
lw $t0, 40($s0)
add $t1, $t0, $s1
sub $t0, $s2, $s3 IPC Ideal: 2
and $t2, $s4, $t0 IPC: 6/3 = 2
or $t3, $s5, $s6
sw $s7, 80($t3)
28. MC542
7.28
Algoritmo de Tomasulo
Exemplo
• Foco: Unidades de ponto-flutuante e load-store
• Cada estágio pode ter um número arbitrário de ciclos
• Múltiplas unidades funcionais
• Diferentes instruções possuem tempos diferentes no
estágio EX
• Unidades disponíveis: load-store; mult e adder
30. MC542
7.30
Estrutura Básica de uma Implementação do
Algoritmo de Tomasulo (para o MIPS)
FP addersFP adders
Add1
Add2
Add3
FP multipliersFP multipliers
Mult1
Mult2
From Mem FP Registers
Reservation
Stations
Common Data Bus (CDB)
To Mem
FP Op
Queue
Load Buffers
Store
Buffers
Load1
Load2
Load3
Load4
Load5
Load6
31. MC542
7.31
Reservation Station
Busy Op Vj Vk Qj Qk A
Valores a serem calculados
0 – já foi calculado ou não usado
Valores já conhecidos
Operação
0/1
Load/Store
Imediato/Endereço Efetivo
OBS.: Register File
Qi = N0. RS
OBS.: Terminologia do Screboard
Do CDC (ver apêndice A)
32. MC542
7.32
Reservation Station
Op: Operação a ser executada na unidade (e.g., + or –)
Vj, Vk: Valores dos operantos Fontes
– Store buffers tem campos V, resultados devem ser
armazenados
Qj, Qk: Reservation Stations produzirá os operandos
correspondentes (valores a serem escritos)
– Qj,Qk = 0 => ready
– Store buffers tem somente Qi para RS producing result
Busy: Indica que a Reservation Station e sua FU estão
ocupadas
A: Mantém informação sobre o end. de memória
calculado para load ou store
Register result status (campo Qi no register file) — Indica
para cada registrador a unidade funcional (reservation
station) que irá escreve-lo. Em branco se não há
instruções pendentes que escreve no registrador.
33. MC542
7.33
3 estágios do algoritmo de Tomasulo
1. Issue— pega a instrução na “FP Op Queue”
Se a reservation station está livre (não há hazard
estrutural),
issues instr & envia operandos (renames registers)
2. Execute —executa a operação sobre os operandos
(EX)
Se os dois operandos estão prontos executa a
operação;
Se não, monitora o Common Data Bus (espera pelo
cálculo do
operando, essa espera resolve RAW)
(quando um operando está pronto -> reservation
table)
34. MC542
7.34
3 estágios do algoritmo de Tomasulo
• data bus normal: dado + destino (“go to” bus)
• Common data bus: dado + source (“come from” bus)
– 64 bits de dados + 4 bits para endereço da
Functional Unit
– Escreve se há casamento com a Functional Unit
(produz resultado)
– broadcast
35. MC542
7.35
SIMD
• Single Instruction Multiple Data (SIMD)
– Uma única instrução aplicada a múltiplos (pedaços de)
dados
– Aplicação Comum: computação gráfica
– Executa operações aritméticas curtas (também
denominadas de packed arithmetic)
• Exemplo, quatro add de elementos de 8-bit
• ALU deve ser modificada para eliminar os carries entre
os valores de 8-bit
padd8 $s2, $s0, $s1
a0
0781516232432 Bit position
$s0a1a2a3
b0 $s1b1b2b3
a0 + b0 $s2a1 + b1a2 + b2a3 + b3
+
37. MC542
7.37
Multithreading: Algumas Definições
• Processo: programa executando em um computador
• Múltiplos processos podem estar em execução ao mesmo
tempo: navegando na Web, ouvindo musica, escrevendo um
artigo etc
• Thread: parte de um programa
• Cada processo possue múltiplas threads: em processador de
texto tem threads para typing, spell checking, printing …
• Em um computador convencional:
– Uma thread está em execução por vez
– Quando uma thread para (por exemplo, devido a um page fault):
» O estado da thread é guardado (registradores, ….)
» O estado da thread em espera é carregado no processador
e inicia-se sua execução
» Chamado de context switching
– Para o usuário parece que todas as threads executam
simultaneamente (existem outras condições que provocam
mudança da thread em execução: acesso a disco, time-out, …)
38. MC542
7.38
Multithreading
• Múltiplas cópias de status da arquitetura (uma por thread)
• Múltiplas threads activas por vez:
– Quando uma thread para, outra inicia sua execução imediatamente
(não é necessário armazenar e restaurar o status)
– Se uma thread não tem todas as unidades de execução necessárias,
outra thread pode ser executada
• Não aumenta o ILP de uma única of thread, porém aumenta o
throughput
39. MC542
7.39
Multiprocessors
• Multiple processors (cores) com alguma forma de comunicação
entre eles
• Tipos de multiprocessamento:
– Symmetric multiprocessing (SMT): múltiplos cores com
memória compartilhada
– Asymmetric multiprocessing: cores separados para diferentes
tarefas (por examplo, DSP e CPU em um telefone celular)
– Clusters: cada core possue seu próprio sistema de memória
40. MC542
7.40
Outras Fontes para Leitura
• Patterson & Hennessy’s: Computer Architecture: A
Quantitative Approach 3ª e 4ª Edições
• Conferências:
– www.cs.wisc.edu/~arch/www/
– ISCA (International Symposium on Computer Architecture)
– HPCA (International Symposium on High Performance
Computer Architecture)
Notas do Editor
Review today, not so fast in future
Review today, not so fast in future
Resolve RAW memory conflict? (address in memory buffers) Integer unit executes in parallel