intra-chip para controle de comunicação entre múltiplos...

18
Projeto de um processador de rede intra-chip para controle de comunicação entre múltiplos cores Henrique Cota de Freitas Disciplina: Arquitetura e Organização de Processadores (PPGC/UFRGS) Prof. Flávio Rech Wagner 13 / 07 / 2006

Upload: others

Post on 03-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Projeto de um processador de rede intra-chip para controle de comunicação

entre múltiplos cores

Henrique Cota de Freitas

Disciplina: Arquitetura e Organização de Processadores (PPGC/UFRGS)Prof. Flávio Rech Wagner

13 / 07 / 2006

Page 2: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

SumárioIntrodução

ContextoProblema e Objetivos

PropostaOrganização do processadorConjunto de Instruções

ResultadosDescrições em ArchC do processador propostoSimulação da descrição funcional e com precisão de ciclosAvaliação do desempenho

ConclusõesTrabalhos futurosReferências

Page 3: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Contexto

Um Processador de Rede [1] [3] [4] [13] [16] é um Multi-Processor System-on-Chip (MPSoC) [17].

Figura 1 – Blocos construtivos de um processador de rede [5]

Ambientes de desenvolvimento:ArchC: Linguagem de Descrição de Arquitetura [15]SystemC: Linguagem de Descrição de Sistemas [11]

Page 4: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Problema e Objetivos• Problema:

– Múltiplos cores [14] demandam um sistema de comunicação [2] [12] eficiente em roteamento, no controle de fluxo, com baixa latência e alta vazão de dados.

• Objetivos:– Estudar o ambiente de desenvolvimento ArchC.– Projetar, descrever e simular uma arquitetura de

processador de rede intra-chip.– Avaliar o desempenho do processador de rede.– Propor um processador de rede intra-chip, que em

conjunto com a chave crossbar reconfigurável [6] [7], seja capaz de estabelecer com eficiência a comunicação entre múltiplos cores.

Page 5: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Exemplo de utilização

Figura 2 – Roteadores em cascata compostos pelo processador de rede proposto (NP),pela chave crossbar reconfigurável e por buffers de entrada. [9]

Page 6: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

R2NP

Figura 3 – Reconfigurable RISC Network Processor [8]

Page 7: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Processador de Rede Intra-Chip Proposto

Figura 4 – Organização do NPoC (Network Processor on Chip) [10]

Page 8: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Pipeline e formato das instruções

Figura 5 – Pipeline do NPoC com cinco estágios [10]

Figura 6 – Formato das instruções do NPoC [10]

IF: Busca de instrução.ID: Decodificação de instrução.EX: Execução de instrução.MEM: Acesso à memória.BCTU: Acesso à unidade detransferência entre crossbar e buffers.SCH: Acesso ao escalonador.REC: Acesso ao buffer de reconfiguração da chave crossbar.WB: Acesso a banco de registradores.

Page 9: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Conjunto de instruções

Algumas instruções de propósito geral:ADD R1, R2, R3 R1 R2 + R3 6 / 7 / 7 / 7 / 5xADDI R1, R2, Imed R1 R2 + Imed 6 / 7 / 7 / 12LOAD R1, R2, Imed R1 Cont. (End[R2+Imed]) 6 / 7 / 7 / 12STORE R1, R2, Imed End[R2+Imed] R1 6 / 7 / 7 / 12JUMP R1, R2, Imed PC R2+Imed, R1 PC 6 / 7 / 7 / 12JEQ R1, R2, R3 PC R1, se R2 = R3 6 / 7 / 7 / 7 / 5x

Instruções de rede:READ R1, R2, Imed R1 Cont. (End[R2+Imed]) 6 / 7 / 7 /12WRITE R1, R2, Imed End[R2+Imed] R1 6 / 7 / 7 /12SEND R1, R2, Imed RCS Buffer(R1), pacote (R2+Imed) 6 / 7 / 7 /12ERASE R1, R2, Imed Buffer R1, Apagar pacote R2+Imed 6 / 7 / 7 /12BLOCK R1, R2, Imed Buffer R1, Bloquear pacote R2+Imed 6 / 7 / 7 /12RECONF RR, R2 RR (reg. de reconfiguração) R2 6 / 7 / 7 /12x

Page 10: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Descrição em ArchC (instrução addi)//!Instruction addi behavior method.

void ac_behavior(addi)

{ dbg_printf("addi r%d, r%d, %d\n", r1, r2,imm & 0xFFFF);

RB[r1] = (RB[r2] + imm);

dbg_printf("Result Reg. = %#x\n", RB[r1]);};

//!Instruction addi behavior method.

void ac_behavior(addi)

{ printf("addi r%d, r%d, %d\n", r1, r2, imm & 0xFFFF);

switch (stage) {

case IF:

break;

case ID:

ID_EX.regwrite = 1;

.......

ID_EX.data3 = 0;

ID_EX.j = 0;

//forwarding for r2

if ( (EX_MEM.regwrite == 1) && (EX_MEM.r1 != 0 ) && (EX_MEM.r1 == ID_EX.r2) )

ID_EX.data2 = EX_MEM.alures.read();

else if ( (MEM_WB.regwrite == 1) && (MEM_WB.r1 != 0 ) && (MEM_WB.r1 == ID_EX.r2) )

ID_EX.data2 = MEM_WB.datamab.read();

else

ID_EX.data2 = RB.read(r2);

break;

case EX:

//forwarding for r2

..............

EX_MEM.alures = (EX_value2 + ID_EX.imm);

EX_MEM.regwrite = ID_EX.regwrite;

EX_MEM.rrwrite = ID_EX.rrwrite;

..............

EX_MEM.npc = ID_EX.npc;

EX_MEM.j = ID_EX.j;

break;

case MEM:

MEM_WB.regwrite = EX_MEM.regwrite;

MEM_WB.rrwrite = EX_MEM.rrwrite;

MEM_WB.datamab = EX_MEM.alures;

MEM_WB.npc = EX_MEM.npc;

MEM_WB.r1 = EX_MEM.r1;

MEM_WB.j = EX_MEM.j;

break;

case WB:

//write back

if (MEM_WB.regwrite == 1){

RB[MEM_WB.r1] = MEM_WB.datamab;

printf("Result Reg. = %#x\n", RB[MEM_WB.r1]);

}

break;

default:

break;

}

};

Ex:Modelofuncional

Ex: Modelo comprecisão de ciclose adiantamento dedados.

Page 11: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Simulação do modelo funcionalDBG: ----- PC=0 ----- 0

DBG: addi r4, r0, 4

DBG: Result Reg. = 0x4

DBG: ----- PC=0x4 ----- 1

DBG: addi r2, r0, 1

DBG: Result Reg. = 0x1

DBG: ----- PC=0x8 ----- 2

DBG: addi r3, r0, 12

DBG: Result Reg. = 0xc

DBG: ----- PC=0xc ----- 3

DBG: mul r2, r2, r4

DBG: Result Reg. = 0x4

DBG: ----- PC=0x10 ----- 4

DBG: addi r4, r4, 65535

DBG: Result Reg. = 0x3

DBG: ----- PC=0x14 ----- 5

DBG: jdi r3, r4, r0

DBG: Result Reg. = 0xc

DBG: ----- PC=0xc ----- 6

DBG: mul r2, r2, r4

DBG: Result Reg. = 0xc

DBG: ----- PC=0x10 ----- 7

DBG: addi r4, r4, 65535

DBG: Result Reg. = 0x2

DBG: ----- PC=0x14 ----- 8

DBG: jdi r3, r4, r0

DBG: Result Reg. = 0xc

DBG: ----- PC=0xc ----- 9

DBG: mul r2, r2, r4

DBG: Result Reg. = 0x18

DBG: ----- PC=0x10 ----- 10

DBG: addi r4, r4, 65535

DBG: Result Reg. = 0x1

DBG: ----- PC=0x14 ----- 11

DBG: jdi r3, r4, r0

DBG: Result Reg. = 0xc

DBG: ----- PC=0xc ----- 12

DBG: mul r2, r2, r4

DBG: Result Reg. = 0x18

DBG: ----- PC=0x10 ----- 13

DBG: addi r4, r4, 65535

DBG: Result Reg. = 0

DBG: ----- PC=0x14 ----- 14

DBG: jdi r3, r4, r0

DBG: Result Reg. = 0xc

DBG: ----- PC=0x18 ----- 15

DBG: nop

DBG: ----- PC=0x1c ----- 16

DBG: nop

DBG: ----- PC=0x20 ----- 17

DBG: nop

DBG: ----- PC=0x24 ----- 18

DBG: nop

Page 12: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Simulação do modelo com precisão de ciclos----- PC=0 ----- 0

addi r4, r0, 4

addi r4, r0, 4

----- PC=0x4 ----- 1

addi r2, r0, 1

addi r4, r0, 4

addi r2, r0, 1

----- PC=0x8 ----- 2

addi r3, r0, 12

addi r4, r0, 4

addi r2, r0, 1

addi r3, r0, 12

----- PC=0xc ----- 3

mul r2, r2, r4

addi r4, r0, 4

Result Reg. = 0x4

addi r2, r0, 1

addi r3, r0, 12

mul r2, r2, r4

----- PC=0x10 ----- 4

addi r4, r4, 65535

..........

..............

nop (bolha)

mul r2, r2, r4

addi r4, r4, 65535

jdi r3, r4, r0

----- PC=0x18 ----- 13

nop (bolha)

mul r2, r2, r4

Result Reg. = 0xc

addi r4, r4, 65535

jdi r3, r4, r0

nop (bolha)

----- PC=0x1c ----- 14

nop (bolha)

...............

mul r2, r2, r4

Result Reg. = 0x18

addi r4, r4, 65535

jdi r3, r4, r0

nop (bolha)

----- PC=0x1c ----- 28

nop (bolha)

................

jdi r3, r4, r0

nop (bolha)

nop (bolha)

nop (bolha)

----- PC=0x24 ----- 30

nop (bolha)

Page 13: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Avaliação de desempenho

Figura 7 – Acessos à memória e registradores [10]

Figura 8 – Tempo de simulação e instruções executadas [10]

Page 14: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Avaliação de desempenho

Figura 11 – Transferência de pacotes [10]

Figura 9 – Acessos à RCS [10] Figura 10 – Implementação de topologias [10]

Page 15: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Conclusões• Modelo de simulação é muito importante na verificação inicial de

funcionamento e desempenho.– Correção e/ou melhoria do projeto.

• Através dos experimentos foi possível verificar o funcionamento das duas descrições (funcional e precisão de ciclos).

• O modelo descrito com precisão de ciclos possui:– Descrição dos registradores entre estágios do pipeline.– Adiantamento de dados.– Descarte de instruções do pipeline na confirmação de um desvio.

• Através dos resultados foi possível verificar:– O funcionamento do conjunto de instruções através de simulações e

estatísticas geradas pelo ArchC.– O ganho de desempenho em relação ao R2NP.– O ganho de desempenho em relação à quantidade de tarefas

necessárias para transferência de pacotes no IXP1200, caso uma versão deste processador ou um mecanismo igual fosse utilizado em um processador de rede intra-chip.

• A principal contribuição é a proposta de um processador de rede intra-chippara uma arquitetura de roteador em networks-on-chip.

Page 16: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Trabalhos Futuros

– Descrição do mecanismo de previsão de desvio.

– Integração com a chave crossbarreconfigurável.

– Proposta da arquitetura do roteador da NoC.– Avaliação da latência de comunicação.– Área ocupada.– Consumo de energia.– Comparação com outras NoCs e sistemas de

comunicação para arquiteturas multi-core.

Page 17: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Referências1. Comer, D. E., “Network Systems Design using Network Processors”, Pearson, Prentice

Hall, 2003

2. Benini, L., Micheli, G. D., “Network-on-chip architectures and design methods”, IEE Proceedings Computers & Digital Techniques, Volume 152, Issue 2, pp.261-272, March 2005

3. Dimopoulos, N. J, et. al., “Network Processors Design: Issues and Chanlleges, IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, PACRIM, Volume 1, 28-30 Aug. 2003, pp.164 – 168

4. Intel IXP1200 Network Processor Family, Hardware Reference Manual, December, 2001

5. Freitas, H. C., “Proposta e Desenvolvimento de um Processador de Rede com Chave Crossbar Reconfigurável”, Dissertação de Mestrado, PUC Minas, Novembro, 2003

6. Freitas, H. C., Ramos, L. E. S., Carvalho, M. B., Amaral, A. M., Diniz, A. R. M., Martins, C. A. P. S., "Reconfigurable Crossbar Switch Architecture for Network Processors". In: IEEE International Symposium on Circuits and Systems, pp.4042-4045, Island of Kos, Greece, May 21 - 24, 2006

7. Freitas, H. C. ; Carvalho, M. B., Martins, C. A. P. S., "RCS-2: Projeto de uma Chave Crossbar Reconfigurável". VI Workshop em Sistemas Computacionais de Alto Desempenho. Rio de Janeiro, 2005

8. Freitas, H. C. e Martins, C. A. P. S., "R2NP: Processador de Rede RISC Reconfigurável", III Workshop em Sistemas Computacionais de Alto Desempenho, Vitória ES, Brasil, pp. 60-67, 2002

Page 18: intra-chip para controle de comunicação entre múltiplos coresflavio/ensino/cmp237/henrique_apresentacao.pdf · Processador de Rede Intra-Chip para controle de comunicação entre

Referências9. Freitas, H. C., Santos, T. G. S., Maillard, N., Navaux, P. O. A., “Previsão de Comunicação

em Network-on-Chip para Arquiteturas Multi-Core”, Artigo submetido ao IV Workshop de Processamento Paralelo e Distribuído, Porto Alegre, 2006

10. Freitas, H. C., Wagner F. R, Navaux, P. O. A., Martins, C. A. P. S., “Projeto de um Processador de Rede Intra-Chip para controle de comunicação entre múltiplos cores". Artigo submetido ao VII Workshop em Sistemas Computacionais de Alto Desempenho, Ouro Preto, 2006

11. Ghosh, A., et al., System modeling with SystemC, International Conference on ASIC, pp.18-20, 2001

12. Kumar, R., Zyuban, V., Tullsen, D. M., “Interconnections in Multi-core Architectures: Understanding Mechanisms, Overheads and Scaling”, 32nd International Symposium on Computer Architecture (ISCA), pp.408-419, June 2005

13. Lawton, G., “Will Network Processor Units Live up to Their Promise?”, IEEE Computer, Volume 37, Number 4, pp.13-15, April, 2004

14. Olukotun, K., et al., The Case for a Single-Chip Multiprocessor, 7th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pp.2-11, 1996

15. Rigo, S., et al., “ArchC: A SystemC-Based Architecture Description Language”, International Symposium on Computer Architecture and High Performance Processing, pp.66-73, October 2004

16. Shah, N., Keutzer, K., “Network Processors: Origin of Species”, ISCIS XVII, The Seventeenth International Symposium on Computer and Information Sciences, 5p., 2002

17. Wolf, W., “The Future of Multiprocessor System on Chip”, Proceedings of the DAC 2004, June 2004