Erven Rohou

Andrea Carlo Ornstein

Ali Erdem Özcan

Marco Cornero

Andrea Carlo

Ornstein -Ali Erdem

Özcan -Marco Cornero

Mai

Combining Processor Virtualization and Component-Based Engineering in C for Heterogeneous Many-Core Platforms

Keywords: virtualization, bytecode, just-in-time compilation, multicore, many-core, software engineering, software components virtualisation, bytecode, compilation à la volée, multicoeur, génie logiciel, composants logiciels

published or not. The documents may come   L'archive ouverte pluridisciplinaire

Introduction

Compared to the general purpose computing world, embedded consumer systems are characterized by particularly stringent efficiency requirements in terms of performance, power and area. In the past, SoC (System-on-Chip) vendors were designing specific hardware components (IPs) controlled by a host processor for implementing complex operations, and they were scaling the clock frequency for satisfying the performance requirements. Nevertheless, this process is no more valid because of today's technological and market constraints. Non-recurring engineering costs of silicon manufacturing are becoming so high that the same IP must be reused in many products. Shorter timeto-market constraints also plays in favor of reuse. In other words, hardware needs to be more adaptable. In this context, the design of software-based solution substituting the hardware IPs becomes one of the most critical topics of the overall production process of SoCs.

Problem Statement Unfortunately, designing software systems for those constrained platforms is a complex issue. This is mostly due to the following reasons:

1. Large scale multi-processing is a must. For almost 30 years, general purpose processors as well as embedded systems followed Moore's law. Performance used to "automatically" double every 18-24 months. However, since 2002, diminishing performance return, as well as increasing power consumption and approaching "temperature wall" made the microprocessor industry follow a new path for performance: the multicore approach. While it is true that embedded system have always been heterogeneous multicores, several independent studies take parallelism to unprecedented levels and forecast thousands of cores on a chip by the end of the next decade [START_REF] Asanović | The Landscape of Parallel Computing Research: A View from Berkeley[END_REF][START_REF]Computing Systems Consultation Meeting. Research Challenges for Computing Systems -ICT Workprogramme 2009-2010[END_REF][START_REF] De Bosschere | High-Performance Embedded Architecture and Compilation Roadmap[END_REF]. Programming distributed applications has always been an issue, even in general purpose computing, because of the lack of convenient programming abstractions and tools [START_REF] Mattson | Parallel programming: can we please get it right this time?[END_REF]. The situation is worse for SoC platforms, with minimum runtime support, and no alternative to low-level programming languages. This has always constituted a big barrier for the productivity. Given the new order of magnitude of available cores, the exploitation of the available hardware is a major challenge of the coming decade.

2. Heterogeneity is unavoidable. Although the design for manufacturability efforts aim at the homogeneization of hardware platforms for reducing production costs, modern embedded platforms continue to integrate heterogeneous computing nodes (DSP, VLIW, etc.) for several reasons. First, suitable hardware support (instruction sets, data representation, etc.) is key to satisfying the performance requirements of different kinds of applications executed on a single chip. Second, the versions of these computing nodes are always evolving to enjoy the best technological solutions in the market. Beside the need for porting the applications for these evolving architectures, the heterogeneity is a big source of issue since it requires the software development kits (compilers, debuggers, profilers) to be ported and maintained, and the developers to be trained for using these tools. Tools for different cores are likely to come from different vendors and to use different technologies, yielding to integration problems. The source code is likely to be written with conditional compilation directives (#ifdef) in order to adapt to each compiler and to best exploit each architecture. While they are of no theoretical nature, these issues are a significant burden (and cost) to software companies.

3. Physical resources are precious. Embedding software in consumer systems has always been a challenge for satisfying the performance requirements on top of limited constrained physical resources. Even though an unprecedented number of cores is expected soon, silicon area (be it CPU or memory) directly translates into cost. Each of the many cores is expected to be as efficient as possible.

Henceforth, software developers are still not free to enjoy high-level programming languages and runtime environments such as garbage collectors, exception handlers, and rich libraries. This results in many applications being coded from scratch and reduces the productivity while increasing the maintenance, support and evolution costs.

These issues motivate many language-oriented research projects such as Spidle [START_REF] Consel | Spidle: a DSL approach to specifying streaming applications[END_REF], StreamIt [START_REF] Thies | StreamIt: A language for streaming applications[END_REF], X10 [START_REF] Murthy | Parallel computing with x10[END_REF] and Intel's Concurrent Collections [START_REF]Intel Concurrent Collections for C/C++[END_REF]. However, some pragmatic concerns (legacy, efficiency, toolset availability, etc.) make industrial solutions evolve with small steps. In particular, the C language remains a de facto standard, although it does not sufficiently deal with heterogeneity and multi-processing issues. Indeed, the C language implies the use of different development kits (compiler, debugger, etc.), potentially coming from different vendors, for each processor. Beside the overhead related to their installation and maintenance, these tools may behave differently (command-line flags, error messages), and may imply the source code to be specialized for their own header files, intrinsics and library functions 1 . In addition, the lack of specific abstractions for application distribution makes plain C programs very difficult to deploy efficiently on multiple processors.

Contribution In the past, some research and industrial proposals partially addressed these issues. In particular, processor virtualization technologies provided a way of dealing with heterogeneous target platforms. On the other hand, component-based software engineering approach improved the software modularity and contributed to the development of distributed systems.

The main contribution of this paper is the design and implementation of a toolset combining these two technologies, in order to start addressing the above issues all together. Thanks to this toolset, legacy code written in the C language can be encapsulated into well-defined components using a macro-based programming model with limited re-engineering effort. These components can then be composed using an Architecture Description Language (ADL) and compiled into a target independent bytecode representation. Using this toolset, programmers can develop truly reusable binary component libraries that can be used by system architects for composing applications to be deployed on heterogeneous multiprocessor SoC (MPSoC). Newly developed components, on the other hand, can be envisioned either in C or in any higher-level language that can be compiled to the bytecode representation.

In addition, the combination of component-based design with such a target independent byte code representation opens various perspectives that leverage the performance of embedded systems. First, the design flexibility can be increased by mapping components on heterogeneous processors at deployment time. Second, important memory and performance optimizations can be obtained by on-board generation of interfacespecific communication bridges between remote components.

Outline Section 2 overviews the technologies we propose to integrate, and it presents the state-of-the-art. Section 3 presents our proposal. Section 4 discusses its effectiveness and presents some future work. Finally, Section 5 concludes the paper.

Background and Related Work

This paper proposes a new programming methodology and toolset for heterogeneous many-core platforms that build upon previous works on processor virtualization and component-based software engineering. We dedicate this section to the presentation of these technologies in order to make this paper as self-contained as possible.

Processor Virtualization

Processor virtualization first appeared for deploying programs on computers connected through the Internet, and became a well established technique for dealing with the processor heterogeneity. While the traditional compilation flow consists of compiling program sources into binary objects that can be natively executed on a given processor, processor virtualization splits that flow in two parts. The first part, i.e. the front-end, consists of compiling the program sources into a processor-independent bytecode representation. The second part, i.e. the back-end, provides an execution platform that can run this bytecode on a given processor. The back-end may either be a virtual machine interpreting the bytecode or a dynamic compiler translating the processor independent bytecode to native binary at load-or run-time in order to improve the execution performance.

This split of the compilation flow has many benefits for dealing with the heterogeneity issue. First, developers can use the same development kit for compiling their programs on their workstations and debugging them on the platform. Second, the same bytecode can be loaded on a heterogeneous MPSoC, and the processor on which it will be executed can be chosen at runtime.

The main technologies in use today for processor virtualization are the Java bytecode, the Low Level Virtual Machine (LLVM) and the Common Language Infrastructure (CLI).

The Java framework [START_REF] Lindholm | The Java Virtual Machine Specification[END_REF] defines a bytecode-based virtual machine and a standard library for the Java language [START_REF] Gosling | The Java Language Specification[END_REF]. The lightweight version of Java, namely Java Micro Edition (ME), has been widely accepted in heterogeneous embedded systems in order to provide complementary capabilities, like games for mobile phones or TV guides for set-top-boxes. However, programs written in this language incur a significant performance overhead at run time because of many high level services like object-orientation, garbage collection, multi-threading, etc. Therefore, the use of Java remains constrained to the host processor for the non-critical part of the application.

The Low Level Virtual Machine Compiler Infrastructure (LLVM) [START_REF] Lattner | LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation[END_REF] provides a very versatile and open compiler architecture for implementing optimizations across the entire lifetime of programs, i.e. at static compilation and link time as well as dynamically through just-in-time code generation. LLVM provides an intermediate representation which is intended to be processor independent, input language independent and well suited for optimized code generation. However, the LLVM format has not been standardized, and, as such, is subject to changes.

The Common Language Infrastructure (CLI) [START_REF]Common Language Infrastructure (CLI) Partitions I to IV[END_REF][START_REF]2006 -Common Language Infrastructure (CLI), Partitions I to VI[END_REF] is an international standard that defines a rich virtualization environment for the execution of applications written in multiple languages. Beside the .NET Framework [32] and the .NET Micro Framework [START_REF]Introducing the .NET Micro Framework. Product Positioning and Technology White Paper[END_REF] provided by Microsoft, there exist several open-source programming environments based on CLI. Mono [START_REF]The Mono Project[END_REF] providing the necessary software to develop and run .NET applications on various operating systems. DotGNU Portable.NET [START_REF]DotGNU project[END_REF] is another implementation of the CLI, that includes everything needed to compile and run C# and C applications that use the base class libraries. ILDJIT [START_REF] Campanoni | A parallel dynamic compiler for CIL bytecode[END_REF] is a research compiler that takes advantage of multi-cores to process several just-in-time compilations in parallel. Finally, GCC4CLI [START_REF] Cornero | An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems[END_REF][START_REF] Costa | CLI Back-End in GCC[END_REF] is a C Compiler that was designed for the generation of efficient CLI code for embedded systems. Previous studies have shown that the size of CLI code generated by GCC4CLI is close to the size of native binaries for dense instruction sets, namely the x86 and Thumb [START_REF] Costa | Comparing the size of .NET applications with native code[END_REF] as well as embedded processors like SH-4 [START_REF] Cornero | An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems[END_REF].

Component-Based Software Engineering

Although the foundations of composing the software systems by assembling components appeared very early [START_REF] Mcilroy | Mass produced software components[END_REF], component-based programming has been widely accepted as a new programming paradigm in the last decade for succeeding the objectoriented programming [START_REF] Szyperski | Component software: beyond object-oriented programming[END_REF]. In a nutshell, component-based programming is about structuring the software modules as independent components that fulfill well-defined specifications in terms of client (required services) and server (provided services) interfaces. The strong encapsulation of data and behavior and the capture of the software architecture in terms of components, interfaces and their interconnections makes this approach suitable for distributing complex applications on multiple processors. Furthermore, these features allow the use of many appropriate design tools supporting the assembly, the verification and the distributed deployment of components using architecture description languages (ADL).

Many component models have been used in general purpose computing during the last decade for improving program modularity and managing software distribution. Among them, the most adopted ones include the Component Object Model [START_REF] Box | Essential COM[END_REF] family (COM, COM+, DCOM) from Microsoft, the CORBA Component Model [START_REF] Omg | CORBA 3.0 New Components Chapters[END_REF] (CCM) from OMG, the Enterprise Java Beans (EJB) [START_REF] Demichiel | JSR 220: Enterprise JavaBeans[END_REF] from Sun Microsystems and the Open Services Gateway Initiative [START_REF]OSGi service gateway specification[END_REF] from OSGI Alliance. These component models are in general tailored for powerful workstation environments and most of the services that they implement (e.g consistency, security, failure recovery) fit neither the requirements nor the computational budget of MPSoCs.

Component-based programming has also appeared in embedded platforms in recent years. Real Time Software Components [START_REF]Real-Time Software Components[END_REF] (RTSC) from Texas Instruments provides an ADL toolset based on JavaScript and a packaging format for building modular system software from component libraries. OpenMAX [START_REF]OpenMAX Development Layer API Specification, Version 1.0.1[END_REF] from Khronos provides a component-based middleware for easing the integration of audio/video codecs for building complex multimedia applications. Both models are based on the C language, and aim at improving the software reuse. Nevertheless, they are designed for single processor systems.

There exist other component technologies especially designed for MPSoCs. DSOC [START_REF] Paulin | Distributed object models for multi-processor SoC's, with application to low-power multimedia wireless systems[END_REF] is a light-weight implementation of CORBA. It provides a toolset that generates middleware components in hardware for accelerating inter-processor communications over a given network on chip. Recently, Khronos published the specification of the Open Computing Language (OpenCL) [START_REF] Munshi | The OpenCL specification version 1.0[END_REF], which allows the distribution of C functions, called kernels, across many-core graphical processing units. Nevertheless, OpenCL is mainly focused on the requirements of imaging applications and only deals with homogeneous computing platforms. Finally, Cecilia [START_REF]Cecilia web site[END_REF] is a C-based implementation of the Fractal Component Model [START_REF] Bruneton | The Fractal Composition Framework, The ObjectWeb Consortium -Interface Specification[END_REF] and provides a deployment environment for distributing multimedia components on heterogeneous MPSoC platforms. In addition,

INRIA

Cecilia provides an extensible ADL toolset [START_REF] Leclercq | Supporting heterogeneous architecture descriptions in an extensible toolset[END_REF] that allows the integration of new code generation features by third party developers.

Combining Virtualization and Component Based Engineering in C

While several approaches have been proposed both for processor virtualization and for component-based software engineering, to the best of our knowledge there is no prior art considering their combination in the context of the C language. We believe that this combination provides a promising groundwork for addressing the code generation challenges of the decade to come. That is, (i) component-based software engineering provides a suitable way of structuring software systems to be deployed on distributed systems, such as many-cores, (ii) virtualization helps dealing with the heterogeneity of target platforms without imposing the burden of binary compatibility on hardware designers, and (iii) the C language, which is the de facto standard for programming embedded systems, allows writing low-level code without any expensive runtime dependencies.

VC4SoC

Our proposal, namely Virtual Components for SoC (VC4SoC), consists of a programming toolset that enables component-based programming in C for building targetindependent component libraries that can be deployed on heterogeneous many-core platforms. We start this section with an overview of the VC4SoC compilation flow. Then, we present its key features including the binary layout of components, the programming model used for implementing them in C, and the specific linker that maps the component implementations to the binary layout.

Compilation Flow

As depicted in Figure 1, the development flow with VC4SoC is separated into two parts, that we call front-end and back-end. The front-end is about compiling source component libraries to binary component libraries. It executes on a workstation. The back-end is about the composition of applications from binary component libraries. It executes either on a workstation for static mapping of applications on a target platform, or on-board to enjoy dynamic mapping at deployment time.

The front-end development starts with the specification of components (0). Two specific languages are involved in this part for improving the robustness of these specifications compared to hand-written C header files. First, a strongly-typed Interface Definition Language (IDL) is used to specify the methods that can be used for the interaction between components. The IDL allows many static verifications to be done and part of the interaction code to be generated. Second, an Architecture Description Language (ADL) is used to specify the set of interfaces that are provided and required by components as well as their interconnections. The expressiveness of the ADL eases the description of complex composition schemes. This way, some static verifications can be done and the glue code required for assembling the components can be generated.

These specification files are used for generating two separate files. To start with, the skeleton of the component is generated in CLI (1) in respect to its architecture specification. This skeleton defines the binary layout of a CLI structure representing the component without the implementation of its interfaces. The implementation of the component is provided by the programmer in C language using a lightweight programming model based on standard pre-processing macros. These macros are used for accessing component's members such as client interfaces, private data fields, etc. This implementation code is completed with a generated header file containing the values of these macros according to the architecture specifications (2). The implementation source files are then compiled to CLI using a C-to-CLI compiler (3). Finally, a specific linker tool, described in Section 3.2.3 is used for merging the skeleton of the component with its implementation (4).

The role of the back-end is to compose applications from a binary component library output by the front-end. The input driving this process is an ADL description specifying the top-level architecture of the application to be composed. Based on this description and the architecture specifications reflected by the binary components in CLI, the back-end generates the glue code that is required for assembling the application components and mapping them to the target execution platform (5). A typical example for glue code generated within the context of MPSoCs may be the inter-processor communication channels implementing the interactions between remote components. In this case, the glue code may be generated directly on the target platform in CLI format, using a lightweight bytecode manipulation tool such as Cecil [29]. Finally, a merger tool may be used for gathering the components that will be deployed on the same processor in order to optimize them for the target execution environment (6).

Component model

VC4SoC is based on the Cecilia Component Framework [START_REF]Cecilia web site[END_REF], a lightweight implementation of the Fractal Component Model [START_REF] Bruneton | The Fractal Component Model and its Support in Java. Software Practice and Experience, special issue on Experiences with Auto-adaptive and Reconfigurable Systems[END_REF][START_REF] Bruneton | The Fractal Component Model[END_REF] dedicated to the development of embedded applications and systems. This section starts with the presentation of VC4SoC components' CLI-based binary layout. Then it describes the programming model and the INRIA linker tool that is designed for encapsulating standard C programs into these components.

Binary layout

The VC4SoC provides a cost-effective implementation of components based on unmanaged CLI structures. As depicted in Figure 2, a component at runtime consists of a data structure in addition to the implementation of its methods. This is similar to the native layout of a C++ object. The main part of this data structure, namely component context (1), contains fields for implementing the set of client interfaces of the component as well as its private data members. In addition, the component context inherits interface structures (2) for each of its server interfaces. These interface structures contain pointers giving access to the implementation (3) of the methods implemented by the component. In addition to the above functional fields, the component context structure is annotated with CLI metadata attributes2 giving supplementary information about the component's architecture (interface names, component name, etc.). This information is required by the back-end of the VC4SoC infrastructure for composing applications from binary component libraries. This metadata can be removed at runtime to save memory or be kept to enjoy reflective programming.

Note that, only the component context needs to be duplicated when a new instance of a component is created. Hence, the performance overhead of VC4SoC components is comparable to C++ objects. Indeed, it is expected to be even less than the latter since the former requires only unmanaged CLI structures3 .

Programming model

VC4SoC defines a programming model for encapsulating standard C programs into the above component model. This programming model consists of few pre-processing macros that define handles for linking the implementation code written by the programmer with the skeleton code generated by the ADL compiler.

Figure 3-b illustrates the implementation of a simple component printing a message using a client printer interface. PRIVATE DATA and DATA macros are used for declaring and accessing the instance data structure of the component, respectively. The METHOD macro is used for declaring the implementation of a method provided by the component. Finally, the CLIENT macro is used for referencing a client interface to be invoked.

The implementation code depicted in 3-b needs to be completed with the definition of the above macros to become a correct C program. For that purpose, the front-end of the VC4SoC compiler generates a header file from the ADL of the component. As depicted in Figure 3-a, this header file starts with the definition of PRIVATE DATA macro which defines the component context structure and declares an instance of the latter ( this variable). DATA and CLIENT macros define accesses to this context variable. In order to avoid name clashes, the METHOD macro mangles the name of the implemented method with the name of the interface and the name of the component it belongs to.

Careful readers may have noticed that the type definitions in the above header file do not match the binary layout presented in Figure 2. In particular, (i) the component context does not inherit from the server interface structures and (ii) the global definition of this variable makes the component a singleton instance. Indeed, these are placeholders (fake definitions) intended to be substituted at link-time time by the component skeleton, generated in CLI. These placeholders are used for two reasons. First, they complete the implementation code and make it legal C code, so that it can be compiled with a standard C compiler. Second, they mark some fields with specific compiler attributes (e.g. ClientInterface) so that these fields can be easily located by the skeleton/implementation linker.

The benefits of generating the component skeletons in CLI rather than in C are twofold. First, CLI provides native support for modeling component interfaces and annotating data structures with additional information. This way, the architecture information is natively embedded in the binary, without the need for any adhoc extension. Second, CLI enables the inheritance of interface structures within data structures for modeling the interfaces implemented by an object. As depicted in Figure 3-c 4 , the component skeleton uses these features for defining the component context structure matching exactly the binary layout presented in Section 3.2.1. On the other hand, empty bodies are generated for component's private data members and method implementations. The latters are intended to be filled with the information coming from component's implementation by the linker described in the following section.

Skeleton/implementation linker

As described previously, during the first part of the compilation flow, the hand-written implementation in C gets compiled to CLI, and the skeleton is directly generated in CLI. They still need to be linked together in order to form a binary component. This is p u b l i c i n t e r f a c e M a i n I n t e r f a c e { i n t main ( ) ; } p u b l i c i n t e r f a c e P r i n t e r { v o i d p r i n t ( s t r i n g msg ) ; } ;

[ P r i v a t e D a t a S t r u c t u r e ] s t r u c t MyComp data t {} ; p u b l i c u n s a f e s t r u c t MyComp context : M a i n I n t e r f a c e { [ C l i e n t I n t e r f a c e ( " p " ) ] P r i n t e r p ;

[ P r i v a t e D a t a ] MyComp data t d a t a ;

p u b l i c i n t main ( ) { r e t u r n 0 ; } } ; The steps of this link process are as follows.

(c)
1. The definition of the private data members of the component is copied from the implementation file into the skeleton file. This operation is trivial since all data members are gathered in a data structure definition whose name conforms to a convention translated by the PRIVATE DATA macro.

2. The method bodies are copied from the implementation file into the skeleton. This operation is trivial as well since the methods to be copied are annotated using specific attributes (see the cli attribute in Figure 3-a).

3. In each method body, references to the fake this variable are replaced by accesses to private data members defined in the first step. The singleton content definition that uses a global context variable this (Figure 3-b) is turned into standard CLI structure containing method implementations from which multiple instances can be created at runtime.

4. Finally, a new argument is added to each method call found in method bodies in order to specify the target of the invocation. The convention used for translating the CLIENT macro helps the recognition of whether the call is directed to the component itself or to one of its client interfaces.

Note that, the skeleton/implementation linker is processor-independent since it only manipulates the CLI representation. Moreover, its implementation required limited effort thanks to the use of an existing CLI manipulation tool, namely Mono.Cecil [29]. Such a CLI manipulation tool can also be used in the back-end of the compilation flow in order to implement optimizations such as the removal of CLI attributes and the merge of multiple components into one.

Discussion

This section discusses about the results, limitations and the perspectives of the work presented in this paper.

Results

We have implemented the VC4SoC compiler as an extension of the Fractal ADL Compiler [START_REF] Leclercq | Supporting heterogeneous architecture descriptions in an extensible toolset[END_REF]. It accepts as input a top-level architecture description of the assembly of components for building an application. The output is an executable object in CLI. This object can then be executed on any CLI execution platform (e.g. Mono [START_REF]The Mono Project[END_REF]).

While our proof-of-concept prototype is at an early stage of development, it already handles many toy applications that are not presented in the paper. Specific performance analysis would have to be performed on different heterogeneous MPSoC platforms for verifying that applications of interest developed using VC4SoC do not raise significant overheads in terms of execution time and memory footprint. Yet, previous results reported for the technologies that we combined have separately demonstrated that they have acceptable overheads within the context of embedded systems. In particular, [START_REF] Özcan | A Component-based Approach for MPSoC SW Design: Experience with OS Customization for H.264 Decoding[END_REF] 5 has shown that the fine-grained component-based re-engineering of an H.264 video decoder resulted in 1.5% overhead in execution time and in 7% overhead in memory footprint while easing notably the distribution of the decoder on multiple processors. Moreover, [START_REF] Fassino | THINK: A Software Framework for Component-based Operating System Kernels[END_REF] has shown that modular design with component-based programming may also result in better performance by designing on-demand software systems. The performance results reported in [START_REF] Özcan | A Component-based Approach for MPSoC SW Design: Experience with OS Customization for H.264 Decoding[END_REF] and [START_REF] Fassino | THINK: A Software Framework for Component-based Operating System Kernels[END_REF] are similar to the penalty of object-oriented languages. The memory cost reported in [START_REF] Özcan | A Component-based Approach for MPSoC SW Design: Experience with OS Customization for H.264 Decoding[END_REF] is mainly due to the architecture information that is interlaced in components' binary layout. As presented in Section 3.2.1, our approach uses CLI annotations for that purpose. Therefore, these annotations can be removed by the back-end if the application does not need them at run-time. Finally, [START_REF] Cornero | An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems[END_REF][START_REF] Costa | CLI Back-End in GCC[END_REF] report that efficient CLI code can be generated from the C language and the resulting binaries have competitive sizes with the native binaries of many processors [START_REF] Cornero | An Experimental Environment Validating the Suitability of CLI as an Effective Deployment Format for Embedded Systems[END_REF][START_REF] Costa | Comparing the size of .NET applications with native code[END_REF].

It is also important to note that the performance of applications developed with VC4SoC is tightly coupled to the performance of the target execution platform. Previous studies [START_REF] Dupont De Dinechin | Inter-Block Scoreboard Scheduling in a JIT Compiler for VLIW Processors[END_REF] show that, in the case of DSP or VLIW processors, advanced justin-time compilation techniques may result in even more optimized code compared to static native compilation.

Those limited performance penalties have to be contrasted with the significant gain brought by our approach in productivity and the additional flexibility.

Limitations

The approach we presented in this paper has two main limitations that may impact the reuse of existing legacy. The first one is related to the use of a specific C compiler (GCC4CLI [START_REF] Costa | CLI Back-End in GCC[END_REF]) that we extended to recognize some annotations. In particular, we took advantage of the GCC attribute mechanism. Legacy code that uses language extensions or compiler features from another vendor might be a problem, even though we believe that our contribution to the simplification of the development environment makes the porting worth the effort in many cases. In any way, annotations are essentially used as markers that must be propagated unmodified in the CLI representation. Any other mechanism that achieves this goal can be considered. For example, we preferred attributes over pragmas simply because the GCC internals discourage the use of pragmas.

The second limitation is related to the use of processor-independent bytecode. Although the latter is unavoidable for portability on heterogeneous platforms, the use of inline assembly (asm blocks) introducing processor-specific optimizations in the C code would not be supported anymore. Note that it is still possible to invoke native binary code (libraries, or hand-optimized routines) from CLI components thanks to the pinvoke mechanism [START_REF]Common Language Infrastructure (CLI) Partitions I to IV[END_REF]. We believe that, in any case, this approach is much better in terms or software engineering, i.e. code readability, portability, maintenance, etc.

Perspectives

The combination of processor virtualization with component-based programming opens many perspectives for embedded applications. Two of them, which we plan to investigate as future work, are discussed hereafter.

On-board component assembly

Current practice of quality-of-service implementation on MPSoCs consists of switching between different combinations of statically linked application mappings according to the application scenarios executed by the end-user. On heterogeneous platforms, the number of combinations becomes very significant. Henceforth, the mapping flexibility is often limited by the memory budget.

Splitting the compilation lifecycle into two phases as presented in Section 3.1 is key to breaking the above limitation. This way, applications can be assembled on-board just before their deployment. Furthermore, as VC4SoC components can be deployed on any processor, any application mapping can be produced at runtime from a given component library.

On-board communication adapter generation

Automatic generation of communication adapters from IDL descriptions is a well established technique for implementing remote interactions on multi-processor systems. Nevertheless, current tools designed for the C language require a workstation to generate and compile such components. As a result, programmers must forecast the possible application mappings on different processors and specify the interfaces for which adapters must be generated. Yet, this limits the mapping flexibility.

VC4SoC components provide two features that are key to solve this issue. First, binary components can be introspected to get access to their interface specifications. Second, CLI bytecode can be directly generated on-board using bytecode manipulation tools such as Cecil [29]. Using these features, communication adapters can be generated dynamically when they are needed. The combination of such a tool with an on-board component assembler, as discussed above, may result in a very flexible execution environment for building performance effective solutions based on heterogeneous multi-processor platforms.

Conclusion

This paper proposes a new programming methodology and toolset to improve the software development practice on heterogeneous many-core platforms. Our approach has its roots in two well established technologies, namely component-based software engineering in C and processor virtualization. Using this toolset, programmers can encapsulate legacy C code into software components with limited effort. The use of component-based programming enables the assembly of complex applications from reusable component libraries and the generation of glue code for mapping these components on a multi-processor platform. Thanks to the CLI processor virtualization technology, binary components that are output by this toolset can be deployed on any target processor of a heterogeneous system. Moreover, the latter provides programmers with an homogeneous development environment by offering them a single virtual target for all cores present on the platform. This greatly simplifies the software engineering process and reduces the burden, thus the cost, associated with software development for multiple and heterogeneous targets. We believe that this combination of technologies provides a promising groundwork to address the code generation challenges of the future systems by defining a framework for the development of C-based applications for heterogeneous many-core platforms.

INRIA

Our proposal also opens up several opportunities, which we will explore as future work. First, it makes it possible to postpone the deployment choices to runtime, giving more flexibility to system designers. Second, communication adapters between components can be generated on-board, and precisely tuned for the current mapping, instead of being statically generated for a given set of envisioned mappings.

Figure 1 :

 1 Figure 1: Overview of the compilation flow.

Figure 2 :

 2 Figure 2: Binary structure of a component in CLI.

  e d e f s t r u c t { char * m e s s a g e ; } PRIVATE DATA ; i n t METHOD(m, main ) ( ) { DATA. m e s s a g e = " h e l l o w o r l d " ; CLIENT . p . p r i n t (DATA. m e s s a g e ) ; } (b)

Figure 3 :

 3 Figure 3: Excerpt of hand-written and generated files. (a) Generated header file, (b) hand-written component implementation, (c) generated component skeleton.

RR n°6933

Target specific source code specialization makes the code difficult to maintain and inhibits the final binaries to be debugged on the workstation.INRIA

CLI metadata attributes are represented as gray boxes making part of the component context structure.

Unmanaged CLI structures are less expensive than managed objects in terms of performance since they do not imply any runtime support.RR n°6933

Note that, for readability purposes, we used C# syntax to illustrate the generated skeleton. The actual skeleton is directly generated in CLI.INRIA

The performance results presented in[START_REF] Özcan | A Component-based Approach for MPSoC SW Design: Experience with OS Customization for H.264 Decoding[END_REF] and[START_REF] Fassino | THINK: A Software Framework for Component-based Operating System Kernels[END_REF] are valid for Cecilia. Indeed Cecilia is a successor of the Think component model.INRIA

Acknowledgments

We would like to thank Philippe Guillaume and Matthieu Leclercq for their numerous contributions to our component based software engineering framework. We would also like to thank Benoît Dupont de Dinechin who was specially helpful in promoting the virtualization technology and making it real.


Gold-based therapy:From past to present Alice Balfourier a , Jelena Kolosnjaj-Tabi b , Nathalie Luciani a , Florent Carn a , and Florence Gazeau a, 1 Despite an abundant literature on gold nanoparticles use for biomedicine, only a few of the gold-based nanodevices are currently tested in clinical trials, and none of them are approved by health agencies. Conversely, ionic gold has been used for decades to treat human rheumatoid arthritis and benefits from 70-y hindsight on medical use. With a view to open up new perspectives in gold nanoparticles research and medical use, we revisit here the literature on therapeutic gold salts. We first summarize the literature on gold salt pharmacokinetics, therapeutic effects, adverse reactions, and the present repurposing of these ancient drugs. Owing to these readings, we evidence the existence of a common metabolism of gold nanoparticles and gold ions and propose to use gold salts as a "shortcut" to assess the long-term effects of gold nanoparticles, such as their fate and toxicity, which remain challenging questions nowadays. Moreover, one of gold salts side effects (i.e., a blue discoloration of the skin exposed to light) leads us to propose a strategy to biosynthesize large gold nanoparticles from gold salts using light irradiation. These hypotheses, which will be further investigated in the near future, open up new avenues in the field of ionic gold and gold nanoparticles-based therapies.

gold nanoparticles | therapeutic gold salts | drug repurposing | nanomedicine | nanotoxicity Gold nanoparticles (GNPs) emerged over the last decades due to their potential for biomedical use as imaging probes, drug delivery systems, or therapeutic agents. GNP use has been mostly documented in preclinical cancer research, but other prospective therapeutic approaches were also reported for treatment of Alzheimer and Parkinson diseases [START_REF] Gao | Gold-nanoparticle-based multifunctional amyloid-beta inhibitor against Alzheimer's disease[END_REF][START_REF] Hu | Neuroprotective effect of gold nanoparticles composites in Parkinson's disease model[END_REF], HIV/ AIDS (3), obesity and diabetes (4), tissue engineering [START_REF] Vial | Recent advances using gold nanoparticles asa promising multimodal tool fortissue engineering and regenerative medicine[END_REF], and ophthalmology [START_REF] Masse | Gold nanoparticles in ophthalmology[END_REF] as well as chemical and biological sensing [START_REF] Saha | Gold nanoparticles in chemical and biological sensing[END_REF]. So far, GNPs-based technologies are still in preclinical development, with only few translations to clinical trials compared with the huge amount of scientific literature devoted to GNPs.

Nevertheless, the use of gold in medicine is not limited to GNPs, as gold compounds were used long before the advent of nanomedicine. Robert Koch discovered in 1890 that gold cyanide was toxic for the tuberculosis bacillus in vitro [START_REF] Gibier | Joch's discovery[END_REF]. Even if it appeared that gold cyanide was ineffective against tuberculosis in vivo, this discovery laid the first stone in the clinical use of gold and launched investigations related to the biological actions and effects of this precious metal on diverse pathologies [START_REF] Benedek | The history of gold therapy for tuberculosis[END_REF]. In this context, Jacques Forestier evidenced in 1929 that ionic gold compounds relieve joint pain of patientssuffering fromrheumatoid arthritis and sometimes lead to complete remission [START_REF] Forestier | The treatment of rheumatoid arthritis with gold salts injections[END_REF]. Thereafter, gold salts therapy, also known as chrysotherapy, had been used until the 1990s, after which presumably less toxic and more efficient treatments developed.

The medical use of GNPs and gold salts has evolved in distinct fields of research, as chrysotherapy discontinued when GNPs-based medicine emerged. This separation in time and purpose probably explains why acquired knowledge on gold salt use has been poorly exploited when GNPs came under the light. Our group recently revealed that GNPs could be degraded by cells, which results in the formation of intralysosomal gold deposit with a specific nanostructure [START_REF] Balfourier | Unexpected intracellular biodegradation and recrystallization of gold nanoparticles[END_REF]. Surprisingly, similar structures, called aurosomes, a were evidenced 50 y ago [START_REF] Ghadially | Ultrastructural Pathology of the Cell and Matrix:A Text and Atlas of Physiological and Pathological Alterations in the Fine Structure of Cellular and Extracellular Components[END_REF]. This similarity highlights an irrefutable relationship between the fate of ionic gold and GNPs, evidencing the link between gold-based therapies.

In this review, we focus on specific fundamental questions: what can we learn fromthe rich and wide scientific literature about the medical use of gold salts? Could this knowledge be exploited to better understand the fate of GNPs and to optimize GNP medical use? After a brief presentation of modern challenges in nanomedicine, we will summarize the considerable work that was performed with medical gold salts through 70 y. Acquired information will be presented from the nanomedicine perspective, in the attempt to help understanding of the metabolism and use of gold in medicine.

GNPs in Medicine

GNPs Properties and Applications. The interest for GNPs in medicine stems from their particular physicochemical properties, which make them unique nanoplatforms for vectorization, imaging, diagnostic, and therapy. Due to their very stable crystalline form, it is generally accepted that large GNPs (>2 nm)are poorly reactive, hardly corrodible, and poorly degradable. These features make GNPs more stable than other metallic nanoparticles in biological medium [START_REF] Feliu | In vivo degeneration and the fate of inorganic nanoparticles[END_REF]. In addition, their strong affinity for sulfurized compounds enables a variety of chemical grafts at the nanoparticle surface, which can be functionalized with drugs, polymers, peptides, antibodies, or antifouling species [START_REF] Sapsford | Functionalizing nanoparticles with biological molecules:Developing chemistries that facilitate nanotechnology[END_REF]. This versatility is particularly useful for drug delivery and specific targeting of tissues [START_REF] Ghosh | Gold nanoparticles in delivery applications[END_REF].

GNPs are also attractive for biomedicine because of their high density. Gold is particularly dense in its crystalline form, which makes it useful for radiation absorption [START_REF] Louis | Gold Nanoparticles for Physics[END_REF]. As an example, GNPs strongly absorb X-ray radiation, which enables localization of them in complex organisms by X-ray imaging or tomography, or use of them in therapy as radiosensitizers.

Finally, GNPs are also attractive for biomedicine because of their plasmonic properties. Briefly, the valence electrons of GNPs can enter in resonance with an external electromagnetic field, leading to a strong absorption of the radiation in the visible range [START_REF] Louis | Gold Nanoparticles for Physics[END_REF]. This absorption can be modulated by nanoparticles shape, size, and functionalization and covers a range going from 500 to 1,000 nm. This wide window of absorption wavelength overlaps the tissue transparency windows (near infrared [NIR]1: 650 to 900 nm;NIR2:1,000 to 1,300 nm;NIR3:1,500 to 1,800 nm), which enables photoactivation of GNPs inside tissues [START_REF] Huang | Plasmonic photothermal therapy (PPTT) using gold nanoparticles[END_REF]. This photoactivation can then induce nanoparticles heating (photothermal therapy), the production of radical species at its surface (photodynamic therapy), the creation of acoustic waves (photoacoustic imaging), the emission of photons (single-or two-photon luminescence), or the enhancement of the electric field at the nanoparticle surface (surface-enhanced Raman spectroscopy and surface plasmon enhanced fluorescence) [START_REF] Bucharskaya | Gold nanoparticle-based technologies in photothermal/photodynamic treatment:The challenges and prospects[END_REF][START_REF] Wu | Gold nanoparticles in biological optical imaging[END_REF].

GNP medical applications have already been the subject of numerous reviews and will not be further detailed here, but additional information could be found in the following works:refs. 16 and 22-24.

Current Challenges in Gold-Based Nanomedicine. Despite promising applications involving GNPs, major concerns hamper their use in humans. GNP fate in the organism is complex and has not been elucidated. Empirical evidence indicates that as soon as the nanoparticles enter the body, their surface is surrounded by a protein corona. The composition of this corona depends on surrounding bodily fluids and on chemical and physical parameters such as GNP's coating, size, and shape [START_REF] Piella | Size-dependent protein-nanoparticle interactions in citrate-stabilized gold nanoparticles:The emergence of the protein corona[END_REF][START_REF] Xu | How entanglement of different physicochemical properties complicates the prediction of in vitro and in vivo interactions of gold nanoparticles[END_REF]. Depending on nanoparticle physicochemical properties and the protein corona, the biodistribution of GNPs in the organism may vary [START_REF] Dykman | Gold Nanoparticles in Biomedical Applications[END_REF]. GNPs can be eliminated from the body in the urine after kidney filtration if they are sufficiently small (generally below 8 nm, including the coating and the protein corona) [START_REF] Semmler-Behnke | Biodistribution of 1.4-and 18-nm gold particles in rats[END_REF]. Most often, the opsonized nanoparticles are taken up by the monocyte-macrophage system with massive accumulation in the liver [START_REF] Dykman | Gold Nanoparticles in Biomedical Applications[END_REF].

GNPs are then internalized by cells and accumulate into the lysosomes, but little is known about their fate inside this degradation organelle. The evidence of GNP biodegradation in cells and organism is recent and suggests that even persistent nanoparticles evolve in intracellular medium [START_REF] Balfourier | Unexpected intracellular biodegradation and recrystallization of gold nanoparticles[END_REF][START_REF] Kolosnjaj-Tabi | The one year fate of iron oxide coated gold nanoparticles in mice[END_REF]. These observationsraise new questionsabout the long-termfate of nanoparticles, as their structure evolves after degradation. Particularly, if GNPs were previously considered as permanent residents within the accumulation tissues, their degradation products could possibly be transferred to other cell types or organs or could be eliminated through different pathways than the original nanoparticles. Overall, the whole GNPs life cycle needs to be better understood, from its early stages to late ones, to optimize the medical use of GNPs.

Moreover, nanoparticles toxicity is still a subject of major concern, as it depends on numerous parameters, including nanoparticles composition, shape, size, coating, charge, hydrophobicity, mechanical properties, solubility, and reactivity [START_REF] Sukhanova | Dependence of nanoparticle toxicity on their physical and chemical properties[END_REF]. Furthermore, nanoparticles toxicity also depends on their path in the organism and the different biological environment they will encountered (biofluids, intracellularmedia, inclusion in biovesicles...). Therefore, each type of nanoparticle should be evaluated separately and systematically for its different routes of administration. Importantly, as gold-based nanomaterials are slowly degraded, toxicological assessments must be conducted over extended periods of time.

In addition to these general considerations, the use of GNPs in a medical frame opens up new questioning. To be medically relevant, GNPs have to target specific tissues (e.g., tumor or brain-blood barrier penetration). Nanoparticles can accumulate within the tumor through passive targeting, mostly by the socalled enhanced permeability and retention effect [START_REF] Greish | Enhanced permeability and retention (EPR)effect for anticancer nanomedicine drug targeting[END_REF]. The passive targeting to tumors, which was believed to occur due to the diffusion/translocation of nanoparticles through the leaky blood vessels that irrigate the tumor, is now increasingly subject to disillusionment [START_REF] Nichols | EPR: Evidence and fallacy[END_REF][START_REF] Danhier | To exploit the tumor microenvironment:Since the EPR effect fails in the clinic, what is the future of nanomedicine?[END_REF]. Concomitantly, the active targeting through surface functionalization of nanoparticles has so far led to little if any improvement compared with passive targeting because the protein corona tends to occult specific functional groups [START_REF] Mirshafiee | Protein corona significantly reduces active targeting yield[END_REF][START_REF] Wilhelm | Analysis of nanoparticle delivery to tumours[END_REF]. In addition, the intrinsic structure of the tumor, which is characterized by a dense extracellular matrix and fibrotic tissue, hampers the penetration of nanoparticles and limits their access to targeted tumoral cells [START_REF] Nichols | EPR: Evidence and fallacy[END_REF][START_REF] Danhier | To exploit the tumor microenvironment:Since the EPR effect fails in the clinic, what is the future of nanomedicine?[END_REF].

The second feature that limits the use of nanoparticles in medicine is the evolution of their properties in biological medium. Nanoparticles are designed to have optimal therapeutic properties in model media, but the surrounding biological media and their biotransformations can dramatically affect their properties. GNP plasmonic properties highly depend on nanoparticles surface environment and aggregation state, which are drastically affected by its confinement within the acidic lysosome medium. Studies indicate that GNPs tend to aggregate within the lysosome, which modifies their optical properties and alters their activation under radiation [START_REF] Hainfeld | Infrared-transparent gold nanoparticles converted bytumors to infrared absorbers cure tumors in mice byphotothermal therapy[END_REF][START_REF] Espinosa | Cancer cell internalization of gold nanostars impacts their photothermal efficiency in vitro and in vivo:Toward a plasmonic thermal fingerprint in tumoral environment[END_REF]. The optimization of nanoparticles properties in intracellular medium thus remains challenging.

All these constraints limit the approval of GNPs for clinical trials and commercial use. Altogether, 57 nanotechnology-based drugs were approved by American or European health agencies according to recent publications,and 90 are subject to clinical trials, which is low compared with thousands of scientific articles published everyyear [START_REF] Bobo | Nanoparticle-based medicines: A review of FDA-approved materials and clinical trials to date[END_REF][START_REF] Anselmo | Nanoparticles in the clinic: An update[END_REF]. Most of themare organic nanoparticlesor iron oxide nanoparticles. However, no gold-based nanoparticles have been approved by European and American health agencies, and onlyfourclinical trialshave been conducted and are currentlyin phase I or II. Three of them concern Aurolase therapy, developed bythe companyNanospectra Biosciences. These gold-coated silica nanoparticles are developed for cancer therapy against head and neck tumors (National Clinical Trial [NCT]01679470), lung tumors (NCT00848042), and prostate tumors (NCT02680535). Moreover, a GNP-based nucleic acid platform is also being testing against glioblastoma (NCT03020017).

Contrary to GNPs, gold salts are approved by most public health agencies, were used by patients for decades, and are nowadays still subject to many clinical trials. This long experience of the use of gold in medicine can thus open perspectives for gold-based nanodrugs.

The Medical Use of Ionic Gold Ionic Gold as Rheumatology Treatment. Gold salts were mainly used to treat rheumatoid arthritis but have also been tested for other types of rheumatologic diseases, such as psoriatic arthritis [START_REF] Salvarani | Clinical response to auranofin in patients with psoriatic arthritis[END_REF], juvenile idiopathic arthritis [START_REF] Giannini | Auranofin in the treatment of juvenile rheumatoid arthritis[END_REF], lupus erythematosus [START_REF] Dalziel | Treatment of chronic discoid lupus erythematosus with an oral gold compound (auranofin)[END_REF], or Sjogren syndrome [START_REF] Gordon | Gold reactions are not more common in Sjögren's syndrome[END_REF]. In the case of rheumatoid arthritis, 70 to 75%of patients responded to the treatment, which explains the use of gold salts for decades [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF].

Auranofin, allochrysin, sanochrysin, myochrysin, and solganol are the different gold salts-based drugs (Fig. 1). Except auranofin, all salts were administrated by intramuscular injection, with a dose ranging from 25 to 100 mg per injection. Auranofin was administrated orallyin 3-mg tablets because of its hydrophobicity, which gives it the ability to cross the gastrointestinal barrier [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF].

The treatment was divided in two phases;the first one consisted of one injection per week or two pills per day during 2 to 3 mo, reaching an overall intake of 1 to 1.5 g. This first phase of treatment corresponds to the time lapse required for the patients to observe a decrease of their joint pain. After that, the frequency of drug administration could be decreased. By the end of the treatment, the patients could be exposed to several grams of gold, attaining up to 10 g [START_REF] Benn | Crystalline and amorphous gold in chrysiasis[END_REF]. The beneficial effects of the treatment gradually slowed down and stopped when it was interrupted or ceased. Gold Salts Pharmacokinetics. After oral or parenteral administration, gold salts spread within the body via the blood, after diffusion from the muscle to the bloodstream in the case of injectable gold salts, or by crossing the gastric barrier in the case of auranofin [START_REF] Kamel | A comparison of tissue gold levels in Guinea-pigs after treatment with myocrisin injected intramuscularly and triethylphosphine gold chloride and myocrisin administered orally[END_REF]. The concentration of gold in the plasma peaks 2 h after administration for all gold salts [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF][START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF]. The auranofin peak has a lower intensity than injectable gold salts, as only 15 to 33%of the dose reaches the blood [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF][START_REF] Mascarenhas | Gold metabolism in patients with rheumatoid arthritis treated with gold compounds-reinvestigated[END_REF][START_REF] Lewis | 1 Immunopharmacology of gold[END_REF]. Within the blood, gold ions are mainly bound to albumin Cys-64 amino acid (80% of gold in blood in case of auranofin and 95%of gold for injectable gold salts), the remaining part being fixed to globulins or to red blood cells [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF][START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF][START_REF] Mcqueen | Transport of gold in the body[END_REF][START_REF] Elder | Synchrotron X-ray studies of metal-based drugs and metabolites[END_REF]. In the case of sodium aurothiomalate, it has been shown that the thiolated ligand is detached from gold within a few hours [START_REF] Jellum | Fate of the gold and the thiomalate part after intramuscular administration of aurothiomalate to mice[END_REF]. The half-life time of gold in blood is between 5 and 7 d for injectable gold and between 11 and 33 d for auranofin [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF][START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF]. This half-life time increases with repeated injections up to 250 d, and it takes 40 to 80 d for the gold concentration in blood to decrease back to its normal level after exposure [START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF][START_REF] Linck | H épatite aurique cholestatique persistante:à proposd'une observation syndrome d'hypersensibilité auxsels d'or et relation avec le système HLA[END_REF].

In human patients who received reiterated injections, traces of gold can be found in numerous tissues, among which are the kidney, lymph node, adrenal tissue, liver, and synovium [START_REF] Vernon-Roberts | Selective concentration and localization of gold in macrophages of synovial and other tissues during and after chrysotherapy in rheumatoid patients[END_REF][START_REF] Gottlieb | Tissue gold concentration in a rheumatoid arthritic receiving chrysotherapy[END_REF]. Gold can also be found in the brain, gonads, or eyes [START_REF] Vernon-Roberts | Selective concentration and localization of gold in macrophages of synovial and other tissues during and after chrysotherapy in rheumatoid patients[END_REF][START_REF] Gottlieb | Tissue gold concentration in a rheumatoid arthritic receiving chrysotherapy[END_REF][START_REF] Thompson | Neutropenia associated with chrysotherapy for juvenile rheumatoid arthritis[END_REF][START_REF] Grubb | Ocular chrysiasis: Accumulation of gold in the rabbit eye[END_REF][START_REF] Gottlieb | Ocular chrysiasis correlated with gold concentrations in the crystalline lens during chrysotherapy[END_REF]. As these last organs are separated from the rest of the body by specific barriers, such findings are rather surprising. Importantly, gold was found in tissues 23 y after the end of the treatment, which underlines that gold is never completely eliminated from the organism [START_REF] Vernon-Roberts | Selective concentration and localization of gold in macrophages of synovial and other tissues during and after chrysotherapy in rheumatoid patients[END_REF].

Concerning its elimination fromthe body, gold is preferentially eliminated in urine or excreted via the bile into the feces (75 and 25% of the eliminated amount, respectively, for injectable gold salts; 15 and 85%, respectively, for auranofin) [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF][START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF]. Gold can still be found in urine several months after the last injection [START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF][START_REF] Freyberg | Metabolism, toxicity and manner of action of gold compounds used in the treatment of arthritis. I. human plasma and synovial fluid concentration and urinary excretion of gold during and following treatment with gold sodium thiomalate, gold sodium thiosulfate, and colloidal gold sulfide[END_REF]. Overall, it is estimated that 40%of the dose is eliminated from the body for injectable gold and 80%for auranofin [START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF].

In summary, even if some slight differences exist between injectable hydrophilic salts and ingestible hydrophobic salts, both lose their ligands within hours and distribute throughout the body. The half-lives in the blood, distribution within the organism, and elimination evolve after reiterated dose administration. This evolution of gold pharmacokinetics can explain the time lapse and injected dose (i.e., 1 to 6 mo and 1 to 1.5 g)that are necessary for the treatment to become efficient, as the accumulation in joints might not be sufficient after the first injection [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF].

Aurosome Formation from Residual Gold. Gold has been shown to persist in the body for years after the end of the treatment, despite its elimination over time. More precisely, gold accumulates inside cells, which are mainly phagocytic cells, such as neutrophils and macrophages. It forms gold deposits inside the cell lysosomes, which had previously been called aurosomes [START_REF] Ghadially | The aurosome[END_REF]. Ghadially [START_REF] Ghadially | Ultrastructural Pathology of the Cell and Matrix:A Text and Atlas of Physiological and Pathological Alterations in the Fine Structure of Cellular and Extracellular Components[END_REF] extensively described aurosomes, which appear as dense vesicles, presenting lamellar, filamentous, or rod-shaped structures composed of small particles with <5-nm diameter (Fig. 2). Such ultrastructures were observed in diverse organs (synovial membrane, articular cartilage, liver, kidney, lung, and skin), as well as in different animal species(rat,rabbit, and human) [START_REF] Ghadially | Ultrastructural Pathology of the Cell and Matrix:A Text and Atlas of Physiological and Pathological Alterations in the Fine Structure of Cellular and Extracellular Components[END_REF].Moreover,these structures occurred independently of the route of administration (intraarticular, intramuscular, and oral) or the type of administrated gold salt [START_REF] Ghadially | Ultrastructural Pathology of the Cell and Matrix:A Text and Atlas of Physiological and Pathological Alterations in the Fine Structure of Cellular and Extracellular Components[END_REF]. Aurosomescanbe observed about 3d afterthe first injectionto rabbits and can still be found years after the end of the treatment [START_REF] Ghadially | Long-term effects of myochrysine on the synovial membrane and aurosomes[END_REF].

Studies of aurosomes by energy-dispersive spectroscopy revealed that they are composed of gold, associated with sulfur with Au/S atomic ratios around 1.5 [START_REF] Nakamura | Localization of gold in synovial membrane of rheumatoid arthritis treated with sodiumaurothiomalate. studies by electron microscope and electron probe X-ray microanalysis[END_REF]. In parallel, X-rays absorption spectroscopies showed that gold is at the oxidation state +1 and surrounded by an average 2.2 sulfur atoms per gold atom, at an average distance of 2.30 Å [START_REF] Elder | Synchrotron X-ray studies of metal-based drugs and metabolites[END_REF].

The nature of the proteins surrounding the gold particles and their mechanism of assembly into sheets, rods, or filaments were also questioned. It has been shown that an important fraction of injected gold happened to be bound to metallothioneins in the liver and kidneys after injection to rats [START_REF] Sharma | The binding of gold to cytosolic proteins of the rat liver and kidney tissues: Metallothioneins[END_REF]. Metallothioneins are cysteine-rich small proteins that are implicated in metal detoxification and homeostasis and that are able to bind gold (63). X-ray characterization of metallothionein-gold complexes revealed that gold is surrounded by an average of 2.4 sulfur atoms situated at 2.29 Å from the gold atom, which is comparable with what was observed in intracellular aurosomes [START_REF] Elder | Synchrotron X-ray studies of metal-based drugs and metabolites[END_REF]. Moreover, the use of metallothionein-gold complex as tag to replace gold NPs immunostaining in electron microscopy shows that these objects look like 1-to 2-nm particles, which are highly similar to aurosomes building blocks [START_REF] Mercogliano | Concatenated metallothionein as a clonable gold label for electron microscopy[END_REF]. These observations offer an insight in the composition of the particles observed in aurosomes, even if they do not offer any clue on the formation of such typical ultrastructures. Therapeutic Effects of Ionic Gold. The therapeutic activity of gold salts has been subject to multiple discussions at the climax of their use and is still not completely understood. It is generally considered that the anti-inflammatory effect of gold salts is mainly due to gold itself and not to the thiolate ligands, even if thiolated compounds have minor positive effects on rheumatoid arthritis [START_REF] Jellum | Fate of the gold and the thiomalate part after intramuscular administration of aurothiomalate to mice[END_REF]. Moreover, the beneficial effects of gold salts ceased when the treatment stopped, while aurosomes persist in the body after the end of the treatment. Thus, it can be assumed that aurosomes are not therapeutically active, contrary to ionic gold.

However, it is hard to attribute its therapeutic effects to a given gold compound. It is still unknown whether gold is active in its +1 or +3 oxidation state, as its redox state may vary between extra-and intracellular media. Moreover, a wide variety of ligands can bind to gold ions [START_REF] Eisler | Chrysotherapy: A synoptic review[END_REF]. Hence, the question of the active form of gold in terms of ligands and oxidative state remains open.

Takahashi et al. [START_REF] Takahashi | The antirheumatic drug gold, a coin with two faces: Au (i)and Au (iii). Desired and undesired effects on the immune system[END_REF]proposed two mechanisms to explain the action of gold salt at the molecule and protein levels. First, gold binds to thiol-containing proteins. Such a process could disturb enzyme-substrate or receptor-ligand recognition and affect many proteins. Second, gold ions can be sequentially oxidized in Au 3+ by ROS, then reduced to Au + by reacting with lysosomal enzymes. This oscillation between the two oxidation states of gold ions would result in both a decrease of oxidative stress and an inhibition of lysosomal protease activity. The first hypothesis is supported by the reported effectsof gold thiolated ligandsand thiolated drugs, such as D-penicillamine, tiopronin, or pyritinol, on rheumatoid arthritis, which were also found to decrease joint pain [START_REF] Bardin | Thérapeutique Rhumatologique[END_REF]. As thiolated compounds have the ability to bind other thiols by disulfide bridges, they could play the same role as gold, as suggested in the first proposed mechanism. On the other hand, the second mechanism is not fully convincing, as auranofin decreased ROS level in cells, but such effect was not observed for sodium aurothiomalate [START_REF] Davis | Effects of gold compounds on the function of phagocytic cells[END_REF][START_REF] Miyachi | Anti-oxidant effects of gold compounds[END_REF].

At the cell or the tissue level, several mechanisms were deemed responsible for the therapeutic activity of gold salts. The results were occasionally contradictory between studies, and several studieswere limited to invitro measurementsorwere performed on questionable animal models, so they have to be considered with caution [START_REF] Brown | The chemistry of the gold drugs used in the treatment of rheumatoid arthritis[END_REF]. Overall,the therapeutic action of gold saltson patients suffering from rheumatoid arthritis can be summarized as follows. First, they can decrease oxidative stress, through ROS scavenging and/or inhibition of oxidative stress-related enzymes, such as thioredoxin reductase [START_REF] Miyachi | Anti-oxidant effects of gold compounds[END_REF][START_REF] Gromer | Human placenta thioredoxin reductase isolation of the selenoenzyme, steady state kinetics, and inhibition by therapeutic gold compounds[END_REF]. Second, they can inhibit lysosomal enzymes (71-73). Third, they can limit the adhesion and infiltration of monocytes in the synovium by inhibiting E-selectin and/or prostaglandin synthesis by epithelial cells [START_REF] Heimbürger | Effects of antirheumatic drugs on adhesiveness of endothelial cells and neutrophils[END_REF][START_REF] Yanni | Intramuscular gold decreases cytokine expression and macrophage numbers in the rheumatoid synovial membrane[END_REF][START_REF] Bratt | Effects of anti-rheumatic gold salts on nf-κb mobilization and tumour necrosis factor-alpha (tnf-α)-induced neutrophil-dependent cytotoxicity for human endothelial cells[END_REF][START_REF] Stone | Selective inhibition of prostaglandin biosynthesis by gold salts and phenylbutazone[END_REF]. Fourth, they can prevent T lymphocyte proliferation by inhibiting protein kinase C synthesis and/or altering T lymphocytes and monocytes communication [START_REF] Hashimoto | Immunomodulatory effects of therapeutic gold compounds. Gold sodium thiomalate inhibits the activity of T cell protein kinase C[END_REF][START_REF] Lipsky | Inhibition of antigen-and mitogen-induced human lymphocyte proliferation by gold compounds[END_REF][START_REF] Ugai | Gold-induced changes in the morphology and functional capabilities of human monocytes[END_REF]. Finally, they can inhibit collagenase production and/or activity [START_REF] Spalding | Alterations in macrophage collagenase secretion induced by gold sodium thiomalate[END_REF][START_REF] Mallya | Mechanism of inhibition of human neutrophil collagenase by gold (i)chrysotherapeutic compounds. Interaction at a heavy metal binding site[END_REF]. At the systemic level, it results in a decrease of joint pain and swelling [START_REF] Srinivasan | Long-term chrysotherapy in rheumatoid arthritis[END_REF][START_REF] Sigler | Gold salts in the treatment of rheumatoid arthritis: A double-blind study[END_REF]and a decline in the concentration of immunoglobulins and rheumatoid factor in the blood [START_REF] Lorber | Chrysotherapy. Suppression of immunoglobulin synthesis[END_REF].

Side Effects and Toxicity of Gold Salts. Gold therapy can trigger a wide variety of adverse reactions, impacting numerous organs. Adverse reactions include severe toxic effects [START_REF] Kean | Long term chrysotherapy[END_REF][START_REF] Davis | Gold therapy in the treatment of rheumatoid arthritis[END_REF] and can rarely even lead to patient death [START_REF] Mccarty | Aplastic anemia secondary to gold-salt therapy:Report of fatal case and a review of literature[END_REF]. It has to be underlined that two types of side effects should be discriminated. First, there are A B side effects that disappear with the discontinuation of treatment. These side effects are the ones that could take the most severe forms, but in most cases, they are reversible. The injection of gold salt could continue most of the time after recovery [START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF]. The second type of effects is long-lasting nonsevere side effects that are irreversible and that reflect the intratissular accumulation of gold over time.

Severe side effects are diverse and can affect skin, mucosa, kidney, blood, bone marrow, lung, nervoussystem, orliver(details and references are in SI Appendix, Table S1). However, prevalence is hardlyassessable asadverse effects could be attributed to gold therapy or to the autoimmune disease itself.

Irreversible adverse reactions generally occur at cumulated doses higher than 1.5 g and can take two forms. One of these effects is a bluish to gray skin discoloration that is called chrysiasis (Fig. 3A) (89)[START_REF] Larsen | Chrysiasis: Electron microscopic studies and X-ray microanalysis[END_REF][START_REF] Pelachyk | Chrysiasis following gold therapy for rheumatoid arthritis: Ultrastructural analysis with X-ray energy spectroscopy[END_REF]. While this side effect can be disturbing to the patient, no pain or toxicity is associated with chrysiasis, and it is not associated with other skin damage [START_REF] Smith | Chrysiasis revisited: A clinical and pathological study[END_REF].

Chrysiasis was related to light exposure:first, it appears mainly on exposed skin (for example, on the face or hands), probably because of sunlight exposure [START_REF] Benn | Crystalline and amorphous gold in chrysiasis[END_REF][START_REF] Fleming | Chrysiasis after low-dose gold and UV light exposure[END_REF]. Moreover, with the growing use of lasers for diverse skin treatments, it appears that persons who were treated with gold salts could develop chrysiasis after exposure to red to near-infrared pulsed lasers (694 to 1,064 nm) (94-98). Benn et al. [START_REF] Benn | Crystalline and amorphous gold in chrysiasis[END_REF] suggested that light induces a crystallization of gold residues, as assessed in patient skin biopsies that showed that light-exposed skin cells contain large crystalline particles instead of aurosomes (Fig. 3 B andC). This is in accordance with the blue discoloration observed, as GNPs are colored and could be red to blue according to their size, shape, and aggregation state. Moreover, direct injection of GNPs to a patient hasbeen found to result in the same blue coloration of the skin [START_REF] Schamberg | Chrysoderma: A permanent gold staining of the skin[END_REF].

The other long-term side effect of chrysotherapy is the appearance of a golden ring around the cornea called ocular or corneal chrysiasis [START_REF] Gottlieb | Ocular chrysiasis correlated with gold concentrations in the crystalline lens during chrysotherapy[END_REF]100,[START_REF] Hashimoto | Corneal chrysiasis. A clinical study in rheumatoid arthritis patients receiving gold therapy[END_REF]. The emergence of such structures does not affect the vision nor does it generate pain. Observations of gold deposits show that they mostly take the form of aurosomes, as observed by electron microscopy (102).

Overall, two types of side effects have been described, exhibiting reversible or irreversible character. By comparing the kinetics of the side effects' appearance/disappearance and the metabolism of gold previously described, we can consider that most toxic effects are due to the early forms of gold (i.e., supposedly ionic gold). On the contrary, dermal and ocular chrysiasis and long-term effects could be related to the presence of aurosome in tissues and their recrystallization under light exposure.

Drug Repurposing of Gold-Based Drugs. New use of ancient drugsis raising lots of interest nowadays, with emerging strategies of drug repurposing to optimize new treatment development from already approved derisked compounds. Gold salts are no exception, particularly auranofin. Two fields are predominant in these publications and patents. The first one is the use of gold salts against viruses, bacteria, or parasites. The second one is their use for cancer therapy, for which gold salts are administrated with other anticancerous drug for additive or synergic beneficial effects. Publications and patents related to gold compounds repurposing are summarized in SI Appendix, Table S2.

Interestingly, if some modes of action are identical to previously reported effects on rheumatoid arthritis, such as modification of immune cell adhesion properties or impact on the immune response (103-105), most effects are attributed to the impact of gold salts on thioredoxin reductase. Thioredoxin reductase is a seleno-enzyme implicated in the response to oxidative stress, which is inhibited by gold salts in various organisms (e.g., humans, bacteria, or parasites) (106-108). Hence, therapeutic gold salts can alter selenium metabolism and/or H 2 O 2 capture (109-111). Moreover, protein kinase C ioa or kallikrein-related peptidase 6 are also targeted by gold salts treatments (112,[START_REF] Kim | Kallikrein-related peptidase 6 induces chemotherapeutic resistance by attenuating auranofin-induced cell death through activation of autophagy in gastric cancer[END_REF]. Generally, the therapeutic mechanisms of gold salts are still unclear, and no unifying theory has been proposed so far to our knowledge despite the high number of targets and mechanisms described.

The repurposing strategies that have been suggested so far exploit the biological action of ionic gold. We suggest here to take advantage of the different formsof gold that have been described so far (i.e., ionic gold, aurosomes, and GNPs). Degradation and recrystallization processes enable the translation from one form to another, which offers new therapeutic perspectives that will now be described.

Building Bridges between GNPs and Ionic Gold

From GNPs to Aurosomes. As previously mentioned, we recently found a parallel between gold salts and nanogold therapies, as aurosomes were observed inside cells in vitro after exposure to GNPs [START_REF] Balfourier | Unexpected intracellular biodegradation and recrystallization of gold nanoparticles[END_REF]. Briefly, primary human fibroblasts were exposed to three sizes of citrate-coated GNPs (diameters of 4, 17, and 22 nm), and cells were observed by transmission electron microscopy over a period of 6 mo following nanoparticles exposure. Two weeks after nanoparticles incubation, gold-containing degradation products were observed within lysosomes containing 4-nm GNPs (Fig. 4). These degradation products appeared as diffuse curved structures and were found to be two-dimensional (2D) structures thanks to electron tomography. We also revealed that these 2D structures were composed of self-assembled crystalline clusters with an average diameter of 2.5 nm. Moreover, elemental analysis revealed that gold was associated with sulfur within these degradation products,while sulfurwasnot present in the areas containing the original GNPs. The study of the transcriptomic response to GNPs over time strongly suggests that the sulfur signal observed from degradation products can be due to cysteinecontaining protein and more precisely, to metallothioneins. Similar gold structures were observed when cells were exposed to 17-and 22-nm nanoparticles, but the occurrence of such degradation products was visible only after several months postexposure, suggesting slower degradation of larger GNPs.

B B B B C C C C A A A A

Interestingly, we discovered that the chemical features and the morphology of degradation products originating fromGNPs were identical to aurosomes formed after the administration of gold salts. This was the first indication that there is a common evolution of gold inside the cell, independently of its original chemical form (ionic or crystalline). This finding is particularly interesting because the long-term fate of GNPs could be understood in view of a shared metabolism for the different gold species. The experience acquired after administration of gold salts could thus be used in gold-based nanotherapies. For example, studies suggest that gold can be eliminated in urines several months and even up to 1 y after the last injection of gold salts [START_REF] Goodman Gilman | Goodman & Gilman's The Pharmacological Basis of Therapeutics[END_REF][START_REF] Freyberg | Metabolism, toxicity and manner of action of gold compounds used in the treatment of arthritis. I. human plasma and synovial fluid concentration and urinary excretion of gold during and following treatment with gold sodium thiomalate, gold sodium thiosulfate, and colloidal gold sulfide[END_REF]. Knowing that after such a long period after injection, gold is resident in the tissue, this finding could indicate that ionic gold or aurosomes themselves can be released into the bloodstream after aurosome formation. Moreover, after in the bloodstream, gold, regardless of its chemical form, can then be eliminated by the kidneys. Probably the aurosomesformed afternanoparticlesdegradation could follow the same route over time, meaning that gold can be exocytosed and eliminated with time. Although this hypothesis demands further investigations to be confirmed in vivo, it introduces a novel perspective on the long-term fate of GNPs, which are believed to remain in tissues after eliminated from the bloodstream.

The presumably shared fate of GNPs and gold salts also provides new avenues to explore the aging and toxicity of GNPs. Indeed, the pharmacokinetics of gold salts and the concomitant adverse reaction strongly suggest that aurosomes are not toxic for patients. To a certain extent, this fact is reassuring in regard to the long-term toxicity of nanoparticles after they are degraded. However, this presumption should be taken with caution since there are no long-term studies to date on the development of diseases after gold salt treatment, while it is known that metal deposits are found in cancer and neurodegenerative diseases, without any consensus in their physiopathological implication (114).

More generally, using gold salts could be considered as an alternative to study the long-term effects of GNPs while limiting the duration of the experiments. As gold salts rapidly form aurosomes within tissues, they could be used as a "shortcut" to determine the ultimate fate of GNPs and to distinguish the effects related to the nanocrystal's size, shape, protein corona, mechanical properties, or surface reactivity with respect to those related to the gold element (Fig. 5).

Overall, the formation of aurosomes with well-conserved 2D structures and curvature ubiquitously present in different species, tissues, and cells suggests a general response to gold overload in lysosomes. For therapeutic use of gold, it is of crucial importance to unravel the mechanism of aurosome formation and their evolution over time. The discoveryof these ubiquitous gold structures opens up new perspectives for the nanotoxicology field and the biomedical applications of gold compounds.

From Aurosome to GNPs. Previous studies indicate that gold can crystallize within cells, forming in situ biosynthesized GNPs. This process has been mostly observed in bacteria, plants, and algae after exposure of these organisms to ionic gold (115-117). Regarding mammal-mediated biosynthesis, several studies describe in vitro and in vivo nanoparticles synthesis after exposure of cells or mice to ionic gold, mostly HAuCl 4 . Nevertheless, published studies do not compare aurosome formation and biosynthesized GNPs, showing that the data obtained in chrysotherapy remain unknown to the majority of scientists operating within nanotechnology fields. However, described data are in agreement with aurosomes ultrastructure, as studies on GNPs biosynthesis describe the formation of crystalline gold clusters with diameters ranging from1.8 to 3.5 nm, which are in the same order of magnitude as the clusters that constitute the aurosomes (118). It has to be stressed that a second biosynthesis phenomenon emerged from the literature on chrysotherapy, which is lightmediated biosynthesis. The observation of chrysiasis, a blue discoloration of the skin after exposure to solar light or laser, strongly suggests that larger crystalline GNPs can be formed under light exposure. Biopsies of discolored skin support this hypothesis, as dense and large granules that look very different from aurosomes were observed by electron microscopy (Fig. 3 B andC) [START_REF] Benn | Crystalline and amorphous gold in chrysiasis[END_REF].

This light-induced crystallization seems to be caused by the instability of aurosomes upon irradiation. Recent studies described that thiol-coated clusters tend to be destabilized by the electron beam during transmission electron microscopy observations, forming larger GNPs with time (119). The same process was confirmed by our own observations on aurosomes. Fig. 6 A-D presents a series of micrographs that were taken sequentially after concentration of the electron beam on the studied area. It can be clearly seen that the electron beam triggers a reorganization of nanostructures into clusters. This observation raises question about the real nature of the aurosomes and the reality of the existence of the previously described self-assembled clusters. Nevertheless, this finding also suggests an instability of aurosomes with respect to external irradiation, leading to the formation of the previously described "granules." Fig. 6E summarizes the biotranformations of gold inside cells and the transition between its three identified states:ionic gold, aurosomes, and GNPs.

The in situ formation of GNP could result in enormous advantages in nanomedicine. First, the injection of ionic gold could drastically improve the penetration of gold compounds inside the tumor. While GNPscan be rapidlyopsonized and taken up byliver macrophages or could be blocked by the fibrotic tissues and dense extracellular matrix around the tumor, gold ions would avoid opsonization and diffuse much more easilywithin the tumor. After the ions would penetrate the tumor, the zone of interest could be exposed to a laser operating at wavelengths in the tissue transparency windows. Indeed, laser-triggered chrysiasis was described for lasers with wavelengths varying from 694 to 1,064 nm. This would allow the formation of GNPs inside the tumor itself and not in peripheral tissues. Moreover, this synthesis would occur directly within the lysosomes of target cells, limiting nanoparticles transfer to other organs. The remotely activated biosynthesized GNPs could subsequently be used as therapeutic agents for photothermal or photodynamic therapy.

We thus hypothesize that the administration of ionic gold followed by light-activated nanoparticles formation in situ within targeted areas could present a paradigm shift to current nanoparticle-based medicines and a solution to the issue of low GNPs delivery to tumor. We also emphasize that gold salts are approved by health agencies, which would facilitate clinical trials. Despite mentioned advantages and exciting perspectives, much work will be required to achieve, control, and characterize remotely activated light-induced intracellular biosynthesis of GNPs. While nanoparticles formation has thus far only been observed by accident and was considered as a side effect of chrysotherapy, we could indeed exploit this phenomenon in nanomedicine.

Gold Metabolism Transcriptomic Signature. From a more fundamental point of view, the convergent fate of GNPs and ionic gold suggests a common metabolism for these two forms and a similar cellular response to different gold compounds. The transcriptomic response to GNPs was previously described by our group during GNPs degradation and formation of aurosomes in primary fibroblasts [START_REF] Balfourier | Unexpected intracellular biodegradation and recrystallization of gold nanoparticles[END_REF]. Briefly, we reported that oxidative species were created within the lysosome, which was associated with NADPH production and was balanced by oxidative stress response via nuclear factor erythroid 2 pathway. In parallel, metallothioneins and glutathione were up-regulated and implicated in the clustering of ionic gold.

To what extent can we compare the transcriptomics response to GNP intracellular degradation and recrystallization as aurosomes to the transcriptomics response to gold salts? We looked for publicly available transcriptomic data on cell response to therapeutic ionic gold compounds. Using the National Center for Biotechnology Information database Gene Expression Omnibus, we found one study that describes the transcriptomic response of three human B cell lines (OCI-Ly3, OCI-Ly7, and U2932) to 92 drugs, including auranofin (120). The effect of the drug was followed 6, 12, and 24 h after exposure. The methodology for this analysis can be found in SI Appendix.

To identify the response to auranofin independently of the time of exposure and cell type, the differential expression was first calculated for each condition and then averaged over the three cells lines and times of studies. Twenty of the 20,218 studied genes were found to have an average differential expression over one in log 2 fold change. The comparison between these 20 genes and the transcriptomic answer to GNPs during their biodegradation reveals that 12 genes were shared between the two conditions (i.e., auranofin and 4-nm GNPs exposure). Interestingly, these genes encode for the response to oxidative stress (NQO1, OSGIN1, TXND1, HMOX1, SLC48A1), metallothioneins (MT1G, MT1E, MT1X), glutathione (SLC7A11, GCLM), and two proteins that intervene in gene expression regulation (SQSTM1, PIR). On the contrary, no gene had an average differential expression below -1 in log fold change, indicating that no gene is clearly downregulated by auranofin. This comparison between cellular response to ionic gold and to GNPs clearly evidences the involvement of similar genes, even if different cell types were studied (i.e., B cells and fibroblasts, respectively). This result supports the concept of "gold metabolism" as a common response shared bydifferent formsof gold and relies on known detoxification process, such as oxidative stress proteins and metallothioneins. However, both oxidative stress and metallothioneins are involved in the response to metal ions, which makes it difficult to determine which genes are highly specific to gold and which ones are shared with other metals. This underlines how this similarity between ionic and nanoparticulate gold cellular response must be further investigated and compared with other metals' response in order to have a more precise definition of gold metabolism.

Conclusion

While the scientific literature overflows with suggestions for various prospective biomedical applications of GNPs for therapy, imaging, or drug delivery, only a few of the GNPs-based systems are tested in clinical trials, and none of themare actuallyapproved by health agencies. Numerous questions remain on the fate of GNPs after medical use and on their potential toxicity. Previous works evidenced that GNPs and therapeutic gold salts end up as aurosomes (i.e., gold deposits within the lysosomes), which exhibit a clearly identifiable ultrastructure. This structural convergence motivated us to vastly review the literature dedicated to therapeutic gold salts use in rheumatology, focusing on gold salts pharmacokinetics, their therapeutic action, their side effects, and the potential repurposing of these drugs.

The thorough assessment of published literature enabled us to draw hypotheses on the long-term fate and toxicity of GNPs. Moreover, the data gathered from this past literature not only suggest that we can anticipate the fate of GNPs, and we put forward the use of gold salts as a surrogate approach to evaluate GNP fate and toxicity in the long term. Importantly, we herein emphasize a singular phenomenon, the light-induced biosynthesis of GNPs within tissues. This phenomenon results in the formation of large GNPs from ionic precursor, unlike previously observed biosynthesis phenomenon that results in tiny gold clusters. This remotely activated light-induced biosynthesis can be triggered locally by a laser and elicits the appearance of a blue coloration of the tissues. This phenomenon could be of great importance to design GNPs-based therapies and imaging using gold salts that were alreadyapproved by health agencies. We also note that gold metabolism can be identified from the commonly expressed genes that are observed after GNPs or gold salt exposure, implying notably metallothioneins and oxidative stress. Overall, this revisited review of past and forgotten literature provides new insights into a wide diversity of questions, ranging from the current concerns of GNP medical use to new therapeutic strategies using gold, and fundamental findings on gold management at the cellular level.

Fig. 1 .

 1 Fig. 1. Therapeutic gold salts structures and most common names. Structures have been drawn according to PubChem database (https:// pubchem.ncbi.nlm.nih.gov/).

Fig. 2 .

 2 Fig. 2. (A and B)Aurosomes observed in patient's buttocks skin after chrysotherapy. Magnifications:(A)×12,000;(B)×136,000. Reprinted bypermission from ref. 44, Springer Nature: Archives of Dermatological Research, copyright (1990).

Fig. 3 .

 3 Fig. 3. (A)Case of skin chrysiasis that appears after laser exposure. Reprinted with permission from ref. 94. (B and C)Aurosomes recrystallization observed in patient's face skin after chrysotherapy. Large biosynthesized nanoparticle is indicated by a white arrow. Magnifications:(B)× 5,400; (C) × 57,000. Reprinted by permission from ref. 44, Springer Nature: Archives of Dermatological Research, copyright (1990).

Fig. 5 .Fig. 4 .

 54 Fig. 5. Illustration of cellular metabolism of GNPs and ionic gold, with estimative period for each phenomenon. Illustrations credit: Servier Medical Art (http://smart.servier.com/), which is licensed under CC BY 3.0.

Fig. 6 .

 6 Fig. 6. (A-D)Aurosomes recrystallization under the electron beam operating at 80 keV during transmission electron microscopy observation. The time lapse between two images is about 2 min. The aurosomes were obtained from 4-nm GNPs 6 mo after incubation in primary human fibroblasts. Original nondegraded nanoparticles can be seen at the right bottom corner. (E) Biotransitions between the different forms of gold, summarizing ancient and recent literature. Illustration credit: Servier Medical Art (http://smart.servier.com/), which is licensed under CC BY 3.0.

Acknowledgments A.B. received a PhD fellowship from the doctoral school Physique en Ile de France. We acknowledge financial support fromAgence Nationale de la Recherche Grants CarGold-16-CE09-026, CycLys-18-CE09-0015-01, and Coligomere-18-CE06-0006; French National Research Program for Environmental and Occupational Health of Agence nationale de sécurité sanitaire de l'alimentation, de l'environnement et du travail Grant 2018/1/007;and the European Union's Horizon 2020 Research and Innovation Program Grant 801305. We are grateful to Prof. Frederic Liote, Prof. Jacques-Éric Gottenberg, Dr. Fabienne Arboit-Braun, Thomas Jacquemont, and Pierre Bost for fruitful discussion and to Mylène Brunet and C éline Benoit for their help with literature research.