, Auteurs Année Compatible SoC FPGA Permet la RDP Basé sur un système d'exploitation

. Ismail,

, Dans le but de permettre un multiplexage temporel des ressources du SoC FPGA de manière sécurisée, ce chapitre présente des améliorations apportées à l'environnement d'exécution Lynq. Plus particulièrement, il introduit des mécanismes dont l'objectif est d

, Pour répondre à cela, un rappel des objectifs et une présentation des caractéristiques principales sera fait en introduction. Puis, un contrôleur d'allocation de ressources dynamiques sera présenté dans la section 3.2. Quant à la section 3.3, elle décrira les mécanismes nécessaires aux environnements d'exécution pour offrir une isolation matérielle et logicielle

, Lynq ADvanced : allocation de ressources dynamiques

, ISOLynq : isolation inter environnement d'exécution

.. .. Conclusion,

, Pour présenter ces contributions, la première section complétera l'état de l'art du chapitre 1. Elle apportera une présentation du jeu d'instruction RISC-V et décrira le fonctionnement interne des compilateurs

, Par la suite, le générateur Atlas sera présenté. Il est capable de générer une description architecturale en verilog d'un CPU RISC-V et de son microcode à partir d'une description du microcode à implémenter

C. .. , , p.101

R. Le-générateur-d'architecture and .. .. Le-langage, , vol.112

.. .. Conclusion,

, Un outil de décomposition d'assembleur RISC-V en mémoire instruction

. À-titre-d'ouverture, Tout d'abord, l'étude de l'impact d'un malware introduit dans une architecture microcodé via la modification de son microcode. Ensuite, avec l'aspect communautaire de l'ISA RISC-V, l'utilisation de microcode peut être une solution rapide pour tester l'efficacité de nouvelles instructions en vue d'une proposition d'extension pour

H. K. , -. So, and R. W. Brodersen, Borph : An operating system for fpga-based reconfigurable computers, 2007.

A. Ismail and L. Shannon, Fuse : Front-end user framework for o/s abstraction of hardware accelerators, 2011 IEEE 19th Annual International Symposium on Field-Programmable Custom Computing Machines, pp.170-177, 2011.

J. L. Hennessy and D. A. Patterson, Computer Architecture, Fifth Edition : A Quantitative Approach, 2011.

. Marketsandmarkets, node size (less than 28 nm, 28-90 nm, more than 90 nm), configuration (high-end fpga, mid-range fpga, low-end fpga), vertical (telecommunications, automotive), and geography -global forecast to 2023, Fpga market by technology (sram, antifuse, flash), 2017.

G. Herrmann and G. Dost, Entwurf und technologie von mikroprozessoren, 2001.

P. B. Bhutani, Embedded system market size by application (automotive, industrial, consumer electronics, telecommunication, healthcare, military and aerospace), by product (software, hardware) industry outlook report, regional analysis, application development potential, price trends, competitive market share and forecast, Global Market Insights, Tech. Rep, 2016.

R. Tessier, K. Pocek, and A. Dehon, Reconfigurable computing architectures, Proceedings of the IEEE, vol.103, issue.3, pp.332-354, 2015.

A. Watterman, riscv-test/isa/rv32ui, 2019.

L. Gwennap, P6 microcode can be patched, 1997.

. Anonymous, July) Opteron exposed : Reverse engineering amd k8 microcode updates, 2004.

, Feb) Reverse engineering the arm1 processor's microinstructions, 2016.

P. Koppe, B. Kollenda, M. Fyrbiak, C. Kison, R. Gawlik et al., Reverse engineering x86 processor microcode, 26th USENIX Security Symposium (USENIX Security 17), pp.1163-1180, 2017.

K. Asanovi? and D. A. Patterson, The risc-v instruction set manual, volume i : Base user-level isa, 2011.

J. Neumann, First draft of a report on the edvac, IEEE Annals of the History of Computing, vol.15, issue.4, pp.27-75, 1993.

J. Backus, Can Programming Be Liberated from the Von Neumann Style ? : A Functional Style and Its Algebra of Programs, 2007.

G. Estrin, Organization of computer systems : The fixed plus variable structure computer, Western Joint IRE-AIEE-ACM Computer Conference, 1960.

, , pp.33-40, 1960.

G. E. Moore, Cramming more components onto integrated circuits, reprinted from electronics, vol.38, pp.33-35, 1965.

. Altera, Ep310 datasheet, 1984.

. Xilinx, The evolution of programmable logic design technology, vol.32, pp.5-8, 1999.

A. , Arm architecture reference manual, armv7-a and armv7-r edition, 2014.

A. Waterman, Design of the risc-v instruction set architecture, 2016.

. Xilinx, Xilinx -adaptable. intelligent, 2019.

. Intel, Intelfpgas and programmable devices -intelfpga, 2019.

-. , Intel completes acquisition of altera, 2015.

L. Semiconductor, Lattice semiconductor, 2019.

. Microsemi, Microsemi. semiconductor and system solution. power matters, 2019.

. Quicklogic, Quicklogic -provider of end-to-end solutions for endpoint ai, 2019.

, Ieee standard vhdl language reference manual, IEEE Std, pp.1-626, 2009.

. Verilog, Ieee standard for verilog hardware description language, IEEE Std, pp.1-590, 2006.

. Systemverilog, Ieee standard for systemverilog-unified hardware design, specification, and verification language, IEEE Std, pp.1-1315, 2018.

. Xilinx, Vivado design suite, 2019.

C. Wolf, Yosys open synthesis suite, 2019.

D. Shah, E. Hung, C. Wolf, S. Bazanski, D. Gisselquist et al., Yo-sys+nextpnr : An open source framework from verilog to bitstream for commercial fpgas, 2019 IEEE 27th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), pp.1-4, 2019.

. Symbiflow, Projet treillis, 2019.

T. J. Todman, G. A. Constantinides, S. J. Wilton, O. Mencer, W. Luk et al., Reconfigurable computing : architectures and design methods, IEE Proceedings -Computers and Digital Techniques, vol.152, issue.2, pp.193-207, 2005.

R. Tessier and W. Burleson, Reconfigurable computing for digital signal processing : A survey, J. VLSI Signal Process. Syst, vol.28, issue.1-2, pp.7-27, 2001.

D. B. Thomas and W. Luk, Credit risk modelling using hardware accelerated monte-carlo simulation, Proceedings of the 2008 16th International Symposium on Field-Programmable Custom Computing Machines, ser. FCCM '08, pp.229-238, 2008.

G. W. Morris and M. Aubury, Design space exploration of the european option benchmark using hyperstreams, 2007 International Conference on Field Programmable Logic and Applications, pp.5-10, 2007.

R. Mccready, Real-time face detection on a configurable hardware system, Field-Programmable Logic and Applications : The Roadmap to Reconfigurable Computing, pp.157-162, 2000.

M. Genovese and E. Napoli, Asic and fpga implementation of the gaussian mixture model algorithm for real-time segmentation of high definition video, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol.22, issue.3, pp.537-547, 2014.

S. Drimer, T. Güneysu, and C. Paar, Dsps, brams, and a pinch of logic : Extended recipes for aes on fpgas, ACM Trans. Reconfigurable Technol. Syst, vol.3, issue.1, 2010.

T. Becker, W. Luk, and P. Y. Cheung, Enhancing relocatability of partial bitstreams for run-time reconfiguration, 15th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 2007), pp.35-44, 2007.

. Xilinx, Ds586 : Logicore ip xps hwicap(v5.01a), 2011.

K. Vipin and S. A. Fahmy, Fpga dynamic and partial reconfiguration : A survey of architectures, methods, and applications, ACM Comput. Surv, vol.51, issue.4, 2018.

D. Koch, J. Torresen, C. Beckhoff, D. Ziener, C. Dennl et al., Partial reconfiguration on fpgas in practice -tools and applications, vol.01, p.2012

. Xilinx, Xilinx soc portfolio, 2019.

, 2019) intelfpga cyclone v

-. , , 2019.

-. , , 2019.

. Xilinx, Zynq ultrascale + rfsoc, 2019.

G. I. Analysts, Global fpga industry, ReportLinker, Tech. Rep, 2019.

. Xilinx, PYNQ : Python productivity for Zynq, 2016.

B. Hutchings and M. Wirthlin, Rapid implementation of a partially reconfigurable video system with pynq, 2017 27th International Conference on Field Programmable Logic and Applications (FPL), pp.1-8, 2017.

J. Goeders, T. Gaskin, and B. Hutchings, Demand driven assembly of fpga configurations using partial reconfiguration, ubuntu linux, and pynq, 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), pp.149-156, 2018.

J. Burns, A. Donlin, J. Hogg, S. Singh, and M. Wit, A dynamic reconfiguration run-time system, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186), pp.66-75, 1997.

G. W. Brebner-;-r, A virtual hardware operating system for the xilinx xc6200, Field-Programmable Logic Smart Applications, New Paradigms and Compilers

K. Danne, R. Muhlenbernd, and M. Platzner, Executing hardware tasks on dynamically reconfigurable devices under real-time conditions, 2006 International Conference on Field Programmable Logic and Applications, pp.1-6, 2006.

M. Gotz and F. Dittmann, Reconfigurable microkernel-based rtos : Mechanisms and methods for run-time reconfiguration, 2006 IEEE International Conference on Reconfigurable Computing and FPGA's, pp.1-8, 2006.

H. Walder and M. Platzner, A runtime environment for reconfigurable hardware operating systems, pp.831-835, 2004.

P. Garcia and K. Compton, A reconfigurable hardware interface for a modern computing system, 15th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 2007), pp.73-84, 2007.

W. Fu and K. Compton, An execution environment for reconfigurable computing, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05), pp.149-158, 2005.

C. Steiger, H. Walder, and M. Platzner, Operating systems for reconfigurable embedded platforms : online scheduling of real-time tasks, IEEE Transactions on Computers, vol.53, issue.11, pp.1393-1407, 2004.

S. A. Fahmy, J. Lotze, J. Noguera, L. Doyle, and R. Esser, Generic software framework for adaptive applications on fpgas, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines, pp.55-62, 2009.

R. Brodersen, A. Tkachenko, and H. K. So, A unified hardware/software runtime environment for fpga-based reconfigurable computers using borph, Proceedings of the 4th International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS '06), pp.259-264, 2006.

A. Agne, M. Happe, A. Keller, E. Lübbers, B. Plattner et al., Reconos : An operating system approach for reconfigurable computing, IEEE Micro, vol.34, issue.1, pp.60-71, 2014.

R. Pellizzoni and M. Caccamo, Real-time management of hardware and software tasks for FPGA-based embedded systems, IEEE Transactions on Computers, vol.56, issue.12, pp.1666-1680, 2007.

J. Diguet, Y. Eustache, and G. Gogniat, Closed-loop-based self-adaptive hardware/software-embedded systems : Design methodology and smart cam case study, ACM Trans. Embed. Comput. Syst, vol.10, issue.3, 2011.

,

E. Eetime, 2019 embedded markets study, Website Study, 2019.

H. K. So and R. W. Brodersen, Improving usability of fpga-based reconfigurable computers through operating system support, 2006 International Conference on Field Programmable Logic and Applications, pp.1-6, 2006.

W. Peck, E. Anderson, J. Agron, J. Stevens, F. Baijot et al., Hthreads : A computational model for reconfigurable devices, 2006 International Conference on Field Programmable Logic and Applications, pp.1-4, 2006.

. Xilinx, Petalinux tools, 2019.

. Cyberedu, Fiches pédagogiques sur la cybersécurité au sein des composants électroniques, ANSSI, Tech. Rep, 2017.

S. Adee, The hunt for the kill switch, IEEE Spectrum, vol.45, issue.5, pp.34-39, 2008.

S. Skorobogatov and C. Woods, Breakthrough silicon scanning discovers backdoor in military chip, Cryptographic Hardware and Embedded Systems -CHES 2012, pp.23-40, 2012.

J. Zhang and G. Qu, Recent attacks and defenses on fpga-based systems, ACM Trans. Reconfigurable Technol. Syst, vol.12, issue.3, pp.1-14, 2019.

C. Paar and J. Pelzl, Understanding Cryptography : A Textbook for Students and Practitioners, 2009.

P. S. , Announcing the advanced encryption standard (aes), Federal Information, Tech. Rep. NIST.FIPS, vol.197, 2001.

R. L. Rivest, A. Shamir, and L. Adleman, A method for obtaining digital signatures and public-key cryptosystems, Commun. ACM, vol.21, issue.2, pp.120-126, 1978.

P. S. , Sha-3 standard : Permutation-based hash and extendable-output functions, Federal Information, Tech. Rep. NIST.FIPS, vol.202, 2015.

F. Hategekimana, T. Whitaker, M. J. Pantho, and C. Bobda, Shielding nontrusted ips in socs, 2017 27th International Conference on Field Programmable Logic and Applications (FPL), pp.1-4, 2017.

L. E. Olson, J. Power, M. D. Hill, and D. A. Wood, Border control : Sandboxing accelerators, 2015 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp.470-481, 2015.

D. Hwang, M. Yang, S. Jeon, Y. Lee, D. Kwon et al., Riskim : Toward complete kernel protection with hardware support, 2019 Design, Automation Test in Europe Conference Exhibition (DATE), pp.740-745, 2019.

F. Hategekimana, J. Mbongue, M. J. Pantho, and C. Bobda, Secure hardware kernels execution in cpu+fpga heterogeneous cloud, 2018 International Conference on Field-Programmable Technology (FPT), pp.182-189, 2018.

P. Cotret, G. Gogniat, and M. J. Flórez, Protection of heterogeneous architectures on fpgas : An approach based on hardware firewalls, CoRR, 2016.
URL : https://hal.archives-ouvertes.fr/hal-01450746

I. Goldberg, D. Wagner, R. Thomas, and E. A. Brewer, A secure environment for untrusted helper applications confining the wily hacker, Proceedings of the 6th Conference on USENIX Security Symposium, Focusing on Applications, vol.6, pp.1-1, 1996.

B. Yee, D. Sehr, G. Dardyk, J. B. Chen, R. Muth et al., Native client : A sandbox for portable, untrusted x86 native code, 2009 30th IEEE Symposium on Security and Privacy, pp.79-93, 2009.

T. Kim and N. Zeldovich, Practical and effective sandboxing for non-root users, Proceedings of the 2013 USENIX Conference on Annual Technical Conference, ser. USENIX ATC'13, pp.139-144, 2013.

V. Costan and S. Devadas, Intel sgx explained

T. Hunt, Z. Zhu, Y. Xu, S. Peter, and E. Witchel, Ryoan : A distributed sandbox for untrusted computation on secret data, p.12

, USENIX Symposium on Operating Systems Design and Implementation, vol.16

G. Savannah and . Association, , pp.533-549, 2016.

A. S. Technology, Building a secure system using trustzone technology, ARM, Tech. Rep, 2009.

. Available,

. Trustonic, Trustonic security for mobile vehicle applications on android, Trustonic, 2017.

N. Jacob, J. Heyszl, A. Zankl, C. Rolfes, and G. Sigl, How to break secure boot on fpga socs through malicious hardware, pp.425-442, 2017.

E. M. Benhani, C. Marchand, A. Aubert, and L. Bossuet, On the security evaluation of the arm trustzone extension in a heterogeneous soc, 2017 30th IEEE International System-on-Chip Conference (SOCC), pp.108-113, 2017.
URL : https://hal.archives-ouvertes.fr/ujm-01589573

E. M. Benhani, L. Bossuet, and A. Aubert, The security of arm trustzone in a fpga-based soc, IEEE Transactions on Computers, pp.1-1, 2019.
URL : https://hal.archives-ouvertes.fr/hal-02044911

M. Schwarz, M. Lipp, D. Moghimi, J. Van-bulck, J. Stecklina et al., ZombieLoad : Cross-privilege-boundary data sampling, 2019.

M. Schwarz, S. Weiser, and D. Gruss, Practical enclave malware with intel SGX, CoRR, 2019.

A. Fog, The microarchitecture of intel, amd and via cpus, Tech. Rep, 2018.

A. C. Center, Update on processor vulnerabilities (meltdown/spectre), 2018.

B. Kollenda, P. Koppe, M. Fyrbiak, C. Kison, C. Paar et al., An exploratory analysis of microcode as a building block for system defenses, Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, ser. CCS '18, pp.1649-1666, 2018.

,

. Microsoft, Kb4090007 : Intel microcode updates, 2019.

D. Lockhart, G. Zibrat, and C. Batten, PyMTL : A unified framework for vertically integrated computer architecture research, IEEE/ACM International Symposium on Microarchitecture, pp.280-292, 2014.

E. Logaras and E. S. Manolakos, SysPy : using Python for processor-centric SoC design, IEEE International Conference on Electronics, Circuits and Systems, pp.762-765, 2010.

J. Decaluwe, Myhdl : a Python-based hardware description language, Linux journal, vol.127, p.5, 2014.

P. Haglund, O. Mencer, W. Luk, and B. Tai, PyHDL : Hardware scripting with Python, pp.288-291, 2003.

J. Clow, G. Tzimpragos, D. Dangwal, S. Guo, J. Mcmahan et al., A pythonic approach for rapid hardware prototyping and instrumentation, International Conference on Field Programmable Logic and Applications (FPL), pp.1-7, 2017.

D. D. Gajski and L. Ramachandran, Introduction to high-level synthesis, IEEE Design Test of Computers, vol.11, issue.4, pp.44-54, 1994.
URL : https://hal.archives-ouvertes.fr/hal-00447325

G. Martin and G. Smith, High-level synthesis : Past, present, and future, IEEE Design Test of Computers, vol.26, issue.4, pp.18-25, 2009.

. Xilinx, Vivado hls, 2019.

, Intel hls compiler, 2019.

A. Canis, Legup : High-level synthesis for fpga-based processor/accelerator systems, Proceedings of the 19th ACM/SIGDA International Symposium on Field Programmable Gate Arrays, ser. FPGA '11, pp.33-36, 2011.

E. Martin, Gaut : An architectural synthesis tool for dedicated signal processors, Proceedings of EURO-DAC 93 and EURO-VHDL 93-European Design Automation Conference, pp.14-19, 1993.

J. Bachrach, H. Vo, B. Richards, Y. Lee, A. Waterman et al., Chisel : Constructing hardware in a scala embedded language, DAC Design Automation Conference, pp.1212-1221, 2012.

U. B. Research, Risc-v sodor -educational microarchitectures for risc-v isa, 2019.

V. Kathail, J. Hwang, W. Sun, Y. Chobe, T. Shui et al., Sdsoc : A higher-level programming environment for zynq soc and ultrascale+ mpsoc, Proceedings of the 2016 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, ser. FPGA '16, pp.4-4, 2016.

K. Asanovi? and D. A. Patterson, Instruction sets should be free : The case for risc-v, EECS Department, 2014.

H. Baba, The mpg system : A machine-independent efficient microprogram generator, IEEE Transactions on Computers, vol.30, issue.6, pp.373-395, 1981.

P. Marwedel, A retargetable microcode generation system for a high-level microprogramming language, Proceedings of the 14th Annual Workshop on

S. Microprogramming and . Micro-14, , pp.115-123, 1981.

G. Sheraga, Experiments in automatic microcode generation, IEEE Transactions on Computers, issue.6, pp.557-569, 1983.

M. Balakrishnan, P. C. Bhatt, and B. B. Madan, An efficient retargetable microcode generator, Proceedings of the 19th Annual Workshop on Microprogramming, ser. MICRO 19, pp.44-53, 1986.

. Xilinx, Vitis unified software platform, 2019.

A. G. Schmidt, G. Weisz, and M. French, Evaluating rapid application development with python for heterogeneous processor-based FPGAs, IEEE International Symposium on Field-Programmable Custom Computing Machines (FCCM), pp.121-124, 2017.

A. Rigo, M. Fija?kowski, C. F. Bolz, A. Cuni, B. Peterson et al., PyPy : A fast, compliant alternative implementation of the python language, 2003.

G. Van-rossum, Python programming language, USENIX Annual Technical Conference, vol.41, p.36, 2007.

. Intel, Bios implementation test suite

R. Ierusalimschy, L. H. De-figueiredo, and W. Celes-filho, Lua-an extensible extension language, Softw., Pract. Exper, vol.26, issue.6, pp.635-652, 1996.

M. , The LuaJIT project, 2008.

. Lighttpd, Lighttpl, fly light, 2006.

. Nginx, NGINX : High Performance Load Balancer, 2004.

. Monkey, Monkey Server, 2001.

A. L. Ortega, , 2014.

H. Leisink, , 2002.

R. Bonamy, H. Pham, S. Pillement, and D. Chillet, Uparc-ultra-fast power-aware reconfiguration controller, 2012 Design, Automation Test in Europe Conference Exhibition (DATE), pp.1373-1378, 2012.
URL : https://hal.archives-ouvertes.fr/hal-00741606

F. Fainelli, The OpenWrt embedded development framework, Proceedings of the Free and Open Source Software Developers European Meeting, 2008.

R. Collobert, K. Kavukcuoglu, and C. Farabet, Torch7 : A Matlab-like environment for machine learning, BigLearn, NIPS Workshop, 2011.

C. F. Bolz and L. Tratt, The impact of meta-tracing on VM design and implementation, Science of Computer Programming, vol.98, pp.408-421, 2015.

R. Pozo and B. Miller, , 2000.

. Plotly, Plotly javascript open source graphing library, 2019.

J. Dechelotte, R. Tessier, D. Dallet, and J. Crenne, Lynq : A lightweight software layer for rapid soc fpga prototyping, 2018 28th International Conference on Field Programmable Logic and Applications (FPL), pp.372-3723, 2018.
URL : https://hal.archives-ouvertes.fr/hal-01972754

P. Merino, M. Jacome, and J. C. Lopez, A methodology for task based partitioning and scheduling of dynamically reconfigurable systems, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251), pp.324-325, 1998.

R. Cattaneo, R. Bellini, G. Durelli, C. Pilato, M. D. Santambrogio et al., Para-sched : A reconfiguration-aware scheduler for reconfigurable architectures, 2014 IEEE International Parallel Distributed Processing Symposium Workshops, pp.243-250, 2014.

A. L. De-moura, N. Rodriguez, and R. Ierusalimschy, Coroutines in lua, Journal of Universal Computer Science. J.UCS, pp.910-925, 2004.

T. O. Group, 1003.1 standard for information technology -portable operating system interface (posix), IEEE and The Open Group, 2001.

. Ibm, Inside the linux 2.6 completely fair scheduler, 2009.

M. , Ffi sementics, 2017.

O. Weisse, V. Bertacco, and T. Austin, Regaining lost cycles with hotcalls : A fast interface for sgx secure enclaves, Proceedings of the 44th Annual International Symposium on Computer Architecture, ser. ISCA '17, pp.81-93, 2017.

J. Amacher and V. Schiavoni, On the performance of arm trustzone, pp.133-151, 2019.
URL : https://hal.archives-ouvertes.fr/hal-02319569

. Linaro, Open portable trusted execution environment, 2019.

T. R. , Kernel-memory-leaking intel processor design flaw forces linux, windows redesign, 2018.

, Bug intel : le fondeur savait et a continué à vendre ses puces, Techtarget, 2018.

D. D. Chen and G. Ahn, Security analysis of x86 processor microcode, 2014.

. Microsemi, Polarfire soc, 2019.

E. Zurich and U. Di-bologna, Pulp platform, 2019.

C. Wolf, Picorv32 -a size-optimized risc-v cpu, 2019.

G. M. Eclipse, Sept) The risc-v embedded gcc, 2019.

, Sept) Llvm 9.0.0 releases, 2019.

R. , Linux/risc-v, 2019.

, Risc-v, 2019.

T. P. Language, The titan programming language, 2019.

P. P. Language, Pallene compiler, 2019.