Centro Brasileiro de Pesquisa Físicas Laboratório de Físicas de Altas Energias (LAFEX) Desenvolvimento de um barramento PCI Express para a comunicação entre um processador e uma FPGA Rio de Janeiro, 28 de agosto de 2009 Solicitante: Leonardo Hass Pecanha Lessa Responsável: Pablo Diniz Batista
1 Introdução 3 2 Experiment-Control System (ECS) 3 3 Objetivos 6 4 Justificativa 6 5 Metodologia 7 A. Desenvolvimento do barramento PCI Express em FPGA 7 B. Desenvolvimento do software para o barramento PCI Express em processador 8 6 Cronograma 8 7 Conclusão 10 8 Referência 11 2
1. Introdução O experimento LHCb tem como objetivo produzir a maior amostra de mésons B para o estudo da violação da simetria CP nas interações fracas além de observar decaimentos raros, ambas podem sinalizar a existência de Física além do Modelo Padrão [1,2,3]. Tendo como principal objetivo aumentar a estatística dos dados provenientes do experimento, o LHCb pretende aumentar a luminosidade proveniente do acelerador em duas etapas. A primeira etapa está prevista para 2014, enquanto que, a segunda etapa ocorrerá em 2017 [4]. O maior desafio para a execução desta proposta é o desenvolvimento de um sistema de transmissão de dados que opere numa taxa, no mínimo dez vezes maior que o sistema atual. Para tal será necessária a substituição dos módulos de transmissão, denominado TELL1, por uma nova versão capaz de operar a 40 MHz (Upgrade TELL1) [5]. Nessa direção, os esforços para o desenvolvimento de um novo projeto que atenda as necessidades do projeto de Upgrade estão sendo iniciados em particular na França, Inglaterra e Suíça. O grupo de sabores pesados do LAFEX, coordenado pelo pesquisador Ignácio Bediaga, pretende colaborar ativamente em algumas etapas relacionadas ao Upgrade da TELL1. O grupo teve atuação marcante no desenvolvimento e análise de dados de experimentos de altas energias, como E791 e FOCUS. Atualmente no LHCb, o grupo de sabores pesados está a frente dos decaimentos hadrônicos de três corpos no estado final, colabora na instrumentação das câmaras a fio utilizadas para a detecção de múons e recentemente vem se envolvendo no Upgrade da TELL1. Em particular no desenvolvimento tecnológico de uma das unidades presentes na TELL1, denominada em inglês por Experiment-Control System (ECS). Mais detalhes sobre a unidade ECS serão apresentados na próxima seção. O envolvimento do grupo no Upgrade conta com o apoio da FAPERJ e da RENAFAE [6,7]. 2. Experiment-Control System (ECS) O Sistema de controle para o experimento (ECS) tem como objetivo controlar e monitorar todas os subdetectores do LHCb. No caso específico da TELL1, composto por 3
diferentes unidades com finalidades específicas, mais detalhes podem ser obtidos nas referências [8,9], o ECS é responsável por diferentes funções, tais como: iniciar e finalizar a aquisição dos dados, realizar o download de parâmetros para configurações da TELL1, monitorar diversos parâmetros do equipamento (temperatura, pressão de gás, fonte de tensão e corrente e etc). Além disso, é usada também para realizar, quando necessário, o download de parâmetros utilizados para programar todos os chips presentes na placa mãe. A figura 1 ilustra, em diagramas de blocos, a unidade de ECS presente na TELL1 [10,11]. [Figura 1] Esquema ilustrativo para a placa Glue Card ( presente na Unidade de ESC) [09]. A placa é responsável por disponibilizar uma interface entre o computador e a FPGA através do barramento PCI. Além desse barramento, também são implementados outros barramentos para uso geral, tais como: I2C, JTAG, local bus e etc. A atual placa de interfaceamento desenvolvida para o funcionamento com o módulo TELL1 implementa as interfaces necessárias para o funcionamento do ECS que são: a interface com o microprocessador, I2C, JTAG e alguns pinos GPIO ( General Purpose I/O ). Como pode ser observado na figura 1, o processador realiza uma transferência de dados com o computador central através da Ethernet, enquanto que, a FPGA disponibiliza diferentes 4
barramentos para comunicação, de baixa velocidade. O desenvolvimento foi feito baseado em um PC do tamanho de um cartão de credito rodando o sistema operacional Linux e conectado à uma porta Ethernet 10/100. O PC é interfaceado por uma placa chamada Glue Card conectada pelo barramento PCI (Peripheral Component Interconnect) ao PC. Na placa Glue Card um PCI bridge é empregado para converter o barramento PCI em um barramento paralelo de 32-bits do microprocessador. Adicionalmente, 3 portas JTAG e 4 barramentos I2C estão disponíveis para o uso na placa mãe [8,9]. Do ponto de vista do Upgrade da ECS, o LHCb está propondo um novo projeto para o desenvolvimento dessa unidade de controle a partir de uma nova tecnologia já disponível no mercado. Portanto, tanto o processador quanto a FPGA utilizados na unidade de ECS serão substituído por versões atualizadas. A principal diferença para essa nova versão da unidade de ECS será a substituição do barramento PCI de 32 bits/ 33 MHz utilizada para a comunicação entre o processador e a FGPA pelo barramento PCI Express como mostra a figura 2. Nessa figura é considerando apenas o protocolo I2C como exemplo. [Figura 2] Esquema ilustrativo da unidade ECS a ser desenvolvida para o Upgrade da TELL1. 3. Objetivos A principal intenção do projeto de pesquisa é fortalecer a linha de pesquisa na área de Instrumentação Científica presente no CBFP através da colaboração com centro de pesquisas internacionais como o CERN. Para alcançar esse objetivo, este projeto de pesquisa tem como meta o desenvolvimento de uma interface, a ser utilizada no Upgrade da unidade de ECS, 5
para transmissão de dados entre um processador e uma FGPA. Em poucas palavras, a comunicação de dados entre a FPGA e o processador, será realizada através de um barramento PCI Express presente em ambos os dispositivos. Nesse caso, o barramento representa um meio físico comum aos dois dispositivos, permitindo assim, que os mesmos troquem eficientemente informações. É interessante frisar que o barramento PCI Express precisa ser desenvolvido em termos de hardware na FGPA através do desenvolvimento de circuitos lógicos. Enquanto que, para o microprocessador, o barramento já está disponível fisicamente, sendo necessário apenas, o desenvolvido um Device Driver e APIs para comunicação com o dispositivo PCI Express conectado ao barramento do microprocessador. É importante destacar que essas atividades também estarão contribuindo para o desenvolvimento da tecnologia nacional uma vez que diversas ferramentas, a serem utilizados durante a pesquisa científica, serão desenvolvidas e poderão ser utilizadas em outros projetos de pesquisas do CBPF. Mais detalhes sobre a placa de desenvolvimento e a instrumentação científica a ser desenvolvida serão discutidos ao longo do texto. 4. Justificativa A especificação do novo barramento PCI Express traz um grande melhoria de mais de dez vezes na performance de I/O para sistemas de computação, melhorando significativamente os gráficos nos PCs. A Intel inicialmente lançou a especificação por volta de 2004, e a tecnologia foi trazida como principal vantagem em sistemas de alta performance. Porém o barramento PCI Express esta longe de ser mais uma inovação para melhorar jogos ou vídeos. Como outras inovações este barramento abre vantagem sobre uma significativa gama de aplicações como: processamento de imagens médicas, controle industrial e muitos outros tipos de sistemas embarcados [12,13,14]. 5. Metodologia A metodologia a ser utilizada inicialmente nesse projeto de pesquisa consiste basicamente na utilização de placas de desenvolvimento, conhecidas em inglês como Evaluation Board, distribuídas por empresas internacionais. Essas placas comerciais, geralmente utilizadas para o desenvolvimento de protótipos, são projetadas tendo como principal objetivo, acelerar algumas das etapas envolvidas no projeto de protótipos assim como para facilitar a avaliação de componentes específicos. Detalhes sobre a metodologia a 6
ser adota para o desenvolvimento do barramento PCI Express em cada uma das duas plataformas será descrita, separadamente, a seguir. a) Implementação do barramento PCI Express no FPGA A implementação do barramento PCI Express no FPGA será possível através da utilização das ferramentas de software e hardware desenvolvidas e produzidas pela empresa ALTERA [15]. Dessa maneira, inicialmente, o projeto de pesquisa concentrará esforços na utilização do KIT denominada em inglês por ARRIA II GX FPGA Development Kit. Essa escolha, dentre as várias ferramentas disponíveis no mercado, levou em consideração os custos envolvidos e as características funcionais da FPGA. A partir desse KIT é possível projetar e testar o PCI Express 1.0 (com até 8 linhas). Como discutido ao longo do texto, a FPGA será responsável por implementar diversos protocolos de comunicação. Entretanto, o presente projeto de pesquisa está somente interessado na implementação do barramento PCI Express pois os outros protocolos serão desenvolvidos separadamente por outro integrante do grupos de pesquisa, ver nota em [16]. Para alcançar esse objetivo, serão utilizadas as funções denominadas PCI Express MegaCore (x1, x4, or x8 lane configurations) que suporta todos os tipos de memórias, I/O, configurações, e transação de mensagens. As funções MegaCore possuem uma interface de aplicação otimizada para alcançar a máxima eficiência. As funções MegaCore são flexíveis e parametrizáveis, permitindo sua customização para as necessidades específicas. b) Desenvolvimento do software para o barramento PCI Express em processador A placa de desenvolvimento, denominado em inglês de smartcoreexpress SMA200, desenvolvido pela empresa Digital Logic, será a principal ferramenta a ser utilizada para a implementação do barramento PCI Express em processador [17]. O smartcoreexpress consiste em uma versão miniaturizada de um computador pessoal (PC) 7
baseado no chip Intel's ATOM que incorpora os principais elementos compatíveis com um PC. A empresa Digital Logic disponibiliza um Evaluation Kit para o smartcore que inclui fonte de alimentação, floppy disk drive, e conectores de PC padrão, e que pode ser operado como um computador Desktop normal. As interfaces PCI Express e USB estão disponíveis mas outros tipos de interface podem ser extraídas sobre o LPC SuperIO (COM1/2, LPT, PS2) e PCI bridge. O consumo típico é de 2W permitindo assim um resfriamento passivo para aplicações de faixa de trabalho de temperatura muito largas. 6. Cronograma O cronograma de trabalho, relacionado ao projeto de pesquisa descrito acima, será divido em quatro partes. Essas partes serão executadas em paralelo como mostra a tabela 2. Observe que, após cada etapa serão elaborados relatórios e apresentados seminários referentes às atividades realizadas. a) A primeira parte consiste na familiarização com as ferramentas a serem utilizadas durante o projeto de pesquisa assim como um estudo detalhado do barramento PCI Express. Portanto, o bolsista terá oportunidade de ter contato com os KITS de desenvolvimento SMA200 e ARRIA II GX FPGA assim como com diferentes softwares e linguagem de programação, tais como: Altera Quartos II Software Design, GCC para Linux, C/C++ Borland Builder para Windows, VERILOG. Nessa etapa, alguns exemplos básicos e avançados de diferentes aplicações voltadas para o barramento PCI Express e disponibilizados pelos fabricantes, serão compilados tanto no SMA como no FPGA. Além dessa familiarização, durante essa primeira etapa, também serão tomadas decisões em relação a pontos chaves para o andamento dos outros módulos a serem executados em seguida. Com por exemplo, serão discutidos e avaliados os sistemas operacionais e as ferramentas de programação a serem utilizadas para o desenvolvimento de drives para o barramento PCI Express. Finalmente, serão também especificadas as características do barramento PCI Express a ser desenvolvido nos próximos módulos. 8
b) A segunda parte consiste, basicamente, em desenvolver um conjunto de rotinas que podem ser agrupadas em um software para a utilização do barramento PCI Express presente no SMA200. Inicialmente, essas rotinas serão desenvolvidas a partir da linguagem de programação C/C++. Essas rotinas irão gerenciar a configuração e manipulação do hardware responsável pela implementação do barramento PCI Express no SMA200. Nessa etapa, com o objetivo de avaliar as rotinas desenvolvidas assim como o próprio KIT de desenvolvimento, serão realizados testes de transferência de dados entre o SMA200 e qualquer computador pessoal que tenha o barramento PCI Express.. c) Em termos práticos, o terceiro módulo consiste na implementação, em nível de hardware, do barramento PCI Express no FPGA. Nessa etapa, serão utilizadas diversas IPcore, distribuídas pela ALTERA e geralmente utilizadas para o desenvolvimento do PCI Express [18]. Vale ressaltar que, os códigos a serem elaborados para o desenvolvimento do barramento PCI Express serão desenvolvidos em linguagem de hardware conhecida como VERILOG [19]. Como ilustrado na tabela 2, é importante salientar que nessa etapa será aproveitado todo código que está sendo desenvolvido, em paralelo no CERN, por um dos integrantes do grupo de pesquisa, ver nota em [20]. d) Finalmente, no quarto módulo, o desenvolvimento já realizado durante os módulos dois e três serão utilizados em conjunto. Este módulo terá como principal objetivo avaliar a eficiência do barramento PCI Express como principal item para comunicação entre o SMA200 e a FPGA. Em poucas palavras, a transferência de dados entre esses dois dispositivos, através do barramento PCI Express, será caracterizada em termos de velocidade de transmissão, eficiência, confiabilidade e etc. Meses 1 2 3 4 5 6 7 8 9 10 11 12 Mod1 RP1 e SM1 Mod 2 RP2 e SM2 9
Mod 3 CERN RP3 e SM3 Mod 4 RF4 e SF4 [Tabela 1] Apresenta o cronograma do projeto de pesquisa (discutido no texto) a ser execução em quatro módulos. Os meses destacados em verde, para o módulo três, correspondem a pesquisa que está sendo executado, em paralelo, no CERN. Além desse detalhe, observe que, após os três primeiros módulos, será elaborado um relatório parcial (RP) e um seminário (SM). Enquanto que, ao final de onze meses dar-se-á início a elaboração do relatório e seminário final, RF e SF respectivamente, discutindo todas as etapas realizadas ao longo do projeto de pesquisa. Acredita-se que, para uma constante avaliação da execução do projeto de pesquisa, os relatórios assim como os seminários serão de fundamental relevância. 7. Conclusão Este projeto de pesquisa apresenta uma proposta para o desenvolvimento de um protótipo de um equipamento eletrônico voltado para a área de Instrumentação Científica em Física de Altas Energias. O projeto será coordenado pelo grupo de sabores pesados e desenvolvido no Laboratório de Físicas Experimental de Altas Energias do Centro Brasileiro de Pesquisas Físicas. Atualmente o grupo do CBPF envolvidas diretamente no UpGrade do LHCB é composto pelos seguintes integrantes: Pablo Diniz Batista, André Massafferri, Herman Pessoa Lima Júnior e Fernando Marcio B. de Sousa. Ao longo do texto foi apresentada uma proposta para o desenvolvimento da primeira etapa do protótipo para um sistema de controle de experimento (ECS) a ser utilizada futuramente pelo LHCb. Inicialmente o trabalho de pesquisa consiste no desenvolvimento de um barramento PCI Express responsável pela transferência de dados entre um processador e uma FPGA. É importante frisar que as ferramentas necessárias para o desenvolvimento do protótipo já foram adquiridas pelo grupo de pesquisa. Futuramente, alcançando o sucesso nas metas estabelecidas, pretende-se também, iniciar o desenvolvimento do protótipo contendo, em uma 10
só placa de circuito impresso, a FPGA e o processador interligados através do barramento PCI Express. 8. Referência [01] Leandro de Paula e Mirian Gandelman, Por que existe mais material do que antimatéria? Ciência hoje, vol 25, n 148, [02] Ignacio Bediaga, LHC O Colosso criador e esmagador de matéria, Ciência hoje, Vol 42, n 247, 2008 [03] L. de Paula, The LHCb Experiment, Brazilian Journal of Physics, vol. 30, no. 2, June, 2000. [04] H. Dijkstra, The LHCb Upgrade, arxiv:0708.2665v1 [hep-ex] 20 Aug 2007 [05] C. Gaspar, B. Franek, R. Jacobsson, B. Jost, S. Morlini, N. Neufeld, and P. Vannerem, An Integrated Experiment Control System, Architecture, and Benefits: The LHCb Approach, IEEE Transactions On Nuclear Science, Vol. 51, NO, 3, June 2004. [06] Projeto aprovado na FAPERG, tendo o pesquisador Ignácio Bediaga como coordenador. Upgrade do sistema de aquisição de dados e monitoramento das câmaras de múons do LHCb [07] Projeto aprovado na RENAFAE para a Colaboração Rio(CBPF+UFRJ)-LHCb - Uma das propostas da colaboração: "Upgrade do Sistema da Eletrônica de Aquisição de Dados" [08] G. Haefeli, A. Bay, A. Gong, H. Gong, M. Muecke, N. Neufeld, O. Schneider, The LHCb DAQ interface board TELL1, Nuclear Instruments and Methods in Physics Research A 560 (2006) 494-502. [09] G. Haefeli, Constribution to the development of the acquisition electronics for the LHCb experiment, These N 3054 (2004) Présentée a La Faclte Sciences de Base, Université de Berne. 11
[10] C. Gaspar, B. Jost, N. Neufeld and S. M. Schmeling, CERN/EP, The Use of Credit Card-sized PCs for interfacing electronics boards to the LHCb ECS, LHCB 2001-147. [11] Z. Guzik and R. Jacobsson, Glue ligt A simple programmable interface between the Credit Card PC and board electronics, LHCb 2003 056 Control, July 1, 2003. [12] Ajay V. Bhatt, Creating a PCI Express Interconnect, Technology and Research Labs, Intel Coorporation, disponível no site http://intel.com/technology/3gio. [13] David L Fair Intel Corp, PCI Express: Ever-faster graphics pipe serves many masters, July 20, 2006 EDN [14] Warren Webb, Pump It Up, August 21,2003, EDN [15] ALTERA, Arria II GX FPGA Development Board, Reference Manual, July 2009. [16] A implementação dos protocolos de comunicação I2C, JTAG em FPGA está atualmente sendo desenvolvido pelo estudante Fernando Marcio B. Sousa ( faz parte do quadro de funcionário do CBPF Técnico em Eletrônica). Este trabalho está inserido no projeto de mestrado em Instrumentação em Física do CBPF sendo orientado e co-orientado por Herman Pessoa Lima Junior e Pablo Diniz Batista respectivamente [17] DIGITAL LOGIC smart embedded computers, User Manual for smartcore Express SMA200, disponível em http://digitallogic.com [18] ALTERA, PCI Express High Performance Reference Design, August 2009, AN- 456-1. [19] Stephen Brown, Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design, 2005. [20] O grupo de sabores pesados disponibiliza uma bolsa de pesquisa no CERN para o estudante Rafael com o objetivo de iniciar o desenvolvimento do barramento PCI Express. Para isso, o grupo de pesquisa mantém no CERN uma infra-estrutura para o 12
desenvolvimento em instrumentação eletrônica (FPGA) voltada para o Upgrade da TELL1. 13