Yanyan Yuan
email: yuan.yanyan@just.edu.cn

Karine Le Guen

Yuchun Tu

Jingtao Zhu

Zhanshan Wang

Wenbin Li

Mingwu Wen

Christian Mény

Haisheng Yu

Yuying Huang

Xiangjun Wei

Philippe Jonnard

X-ray absorption spectroscopy study of buried Co layers in the Co/Mo 2 C multilayer mirrors

Keywords: XANES, EXAFS, interface analysis, periodic multilayer, buried Co layers, annealing

X-ray absorption spectroscopy (XAS) at the Co K edge was applied to investigate the chemical environment of Co atoms inside Co/Mo 2 C periodic multilayers. The results show a mixing between Co and Mo 2 C layers prior to any annealing process whereas following annealing from 300°C pure Co layers are observed. XAS results are in agreement with previous nuclear magnetic resonance spectroscopy results. They indicate that the pure Co content increases upon annealing, while it is absent in the as-deposited samples. The comparison of the results, based on the analysis of the data obtained on the multilayer samples and some reference materials, reveals that the ordering of Co atoms inside the Co layers increases upon annealing.

Introduction

Multilayer structures consisting of a periodic alternation of thin films show a variety of interesting properties and applications. They provide not only the potential applications as X-ray and neutron optical elements but also convenient tools for studying the interfaces between different materials. The accurate characterization of interfaces in multilayer structures is still a challenging task and is very important for the improvement of their application properties [START_REF] Maury | Interface characteristics of Mo/Si and B 4 C/Mo/Si multilayers using non-destructive X-ray techniques[END_REF], [START_REF] Zhong | Optical and structural performance of the Al(1% wtSi)/Zr reflection multilayers in the 17-19nm region[END_REF].

X-ray absorption spectroscopy (XAS) is well known for probing the local atomic structure around a specific element in thin films and other structures [START_REF] Yacoby | Achievements and prospects in X-ray absorption spectroscopy[END_REF]- [START_REF] Bao | Structural changes of Rh-Mn nanoparticles inside carbon nanotubes studied by X-ray absorption spectroscopy[END_REF]. In the case of buried interfaces, the phases are often formed in a narrow region, are highly disordered or present a short-range order.

Thus the XAS technique with short-range order sensitivity provides a powerful tool for the study of interface phases, also called interphases. Examples of XAS investigation of multilayered samples can be found in [START_REF] Rovezzi | Characterization of thermally treated Mo/Si multilayer mirrors with standing wave-assisted EXAFS[END_REF]- [START_REF] Lamble | Tungsten-carbon multilayer composition and the effects of annealing: A glancing angle extended x-ray absorption fine structure study[END_REF].

The interfacial properties of the Co/Mo 2 C multilayer have been studied in a previously published paper [START_REF] Yuan | Interface observation of heat-treated Co/Mo 2 C multilayers[END_REF]. It reported that the Co and C atoms mix together during deposition and then, following annealing from 300°C, Co and C demix from their mixed regions. In order to interpret the chemical bond environment of Co layers upon annealing, XAS was measured by detecting the fluorescence radiation. Both XANES (X-ray absorption near edge spectroscopy) and EXAFS (extended X-ray absorption fine structure) spectra were used.

Experiment

The Co/Mo 2 C multilayer samples were prepared by magnetron sputtering. Three different samples are considered: as-deposited, annealed at 300 and 600°C in a furnace for 1h with a pressure of 3.0×10 -4 Pa, respectively. The details of sample preparation were given previously [START_REF] Yuan | Co/Mo 2 C multilayer as X-ray mirror: Optical and thermal performances[END_REF]. Here we recall only the structure of the samples: the thickness of Co and Mo 2 C layer in one period is 2.6 and 1.5 nm, respectively; the number of period is 30; the substrates are sliced and polished Si (100) wafers. A 3.5-nm-thick B 4 C capping layer is deposited onto the multilayer top to prevent oxidation.

Table 1 lists the structural parameters of these samples derived from the x-ray reflectivity data measured at 0.154 nm [START_REF] Yuan | Co/Mo 2 C multilayer as X-ray mirror: Optical and thermal performances[END_REF]. Those values will be used in the following sections. Different characterization methods have been carried out such as x-ray reflectometry in the hard and soft x-ray ranges, x-ray emission spectroscopy, nuclear magnetic resonance (NMR) spectroscopy whose results were given elsewhere [START_REF] Yuan | Interface observation of heat-treated Co/Mo 2 C multilayers[END_REF], [START_REF] Yuan | Characterization of physico-chemical environment of Co-based multilayer mirrors working in the soft x-ray and EUV ranges[END_REF].

The XAS experiments were carried out at beam line BL14W1 at the Shanghai synchrotron radiation facility [START_REF] Gao | A high-resolution X-ray fluorescence spectrometer and its application at SSRF[END_REF]. Two types of double crystal monochromators are used for covering photon energy range from 4.5 to 50 keV. The photon energy Resolution (ΔE/E) is around 10 -4 . The multilayers deposition onto thick substrates leads to the impossibility of absorption measurements in transmission, fluorescence detection was used in this study. The XAS experiment is made in the partial fluorescence yield mode, where the integrated intensity of the Co Kα characteristic emission is measured as a function of the energy of the incident radiation scanned through the Co K edge (7709 eV). A 32-element Canberra/XIA Ge detector system was used to detect the fluorescence radiation.

For the sake of comparison, the XAS spectra of some reference samples (CoMo (1 at.%), Co 3 Mo, All the XAS spectra were normalized after a background subtraction taking into account the low and high photon energy parts of the spectra far from the threshold. This was done with the IFEFFIT software [START_REF] Ravel | HEPHAESTUS: data analysis for X-ray absorption spectroscopy using IFEFFIT[END_REF]. The background toward the high energy side can be difficult to determine owing to the presence of the first EXAFS oscillations, leading to an uncertainty on the intensity near the threshold.

Results and discussion

Conclusion

The XAS spectra of Co/Mo 2 C multilayer samples measured in the partial fluorescence mode were carried out at the Co K edge. The chemical environment of the Co atoms was studied by collecting the Co Kα fluorescence signal. In light of all the above results, some significant spectra have been obtained for the differently annealed samples and for the reference materials. There is a clear distinction between the as-deposited and the annealed Co/Mo 2 C multilayer samples from the XAS spectra. This behavior is in agreement with the one measured through NMR experiments [START_REF] Yuan | Interface observation of heat-treated Co/Mo 2 C multilayers[END_REF],

where the mixing of the Co layers occurs for the as-deposited sample, whereas pure Co is observed upon annealing from 300°C. In addition we show that both Mo and C atoms of the Mo

Co 3

 3 Mo 3 C and Co 6 Mo 6 C solid solutions and a Co foil) were also obtained. Here, the spectra of the reference samples CoMo (1 at.%), Co 3 Mo, Co 3 Mo 3 C and Co 6 Mo 6 C solid solutions were obtained in fluorescence mode and that of the Co foil in transmission mode. We should keep in mind that the direct comparison of the intensity of the features of the multilayers and the reference samples is difficult as the self-absorption conditions are not the same in thin films and bulk materials.

Fig. 1 (

 1 Fig. 1(a) and (b) respectively show the EXAFS and XANES spectra in the vicinity of the Co K edge of the three Co/Mo 2 C multilayer samples and the Co foil reference. All the spectra present a shoulder at about 7713 eV, whose value is determined by the minimum of the first derivative. The spectra of the annealed multilayers exhibit higher-contrasted oscillations and are close to those of the Co reference. This indicates that the local environment of the Co atoms in the annealed multilayer is

Fig. 1 :

 1 Fig. 1: Co K edge x-ray absorption measurement of the Co/Mo 2 C multilayers (as-deposited, annealed at 300 and 600°C), and the Co foil reference: (a) normalized EXAFS spectra; (b) normalized XANES spectra; (c) ! ! -weighted k-space spectra and (d) Fourier transform R-space spectra of EXAFS. For the sake of clarity, curves are vertically shifted in (a) and (b).

Fig. 1 (

 1 Fig. 1(c) and (d) respectively show, for the three multilayers and the reference, the k 3 -weighted k-space spectra (data have been multiplied by k 3 to enhance the oscillations at high k) and Fourier transform R-space spectra (the Fourier transform of an EXAFS spectrum would give a similar radial distribution function) of the EXAFS data. In all spectra, the highest contrast is obtained for the Co foil. The k 3 -weighted k-space spectra of the multilayer present well-contrasted oscillations for high k values. The amplitude of the oscillations increases as a function of the annealing temperature. The same trend can be seen on the Fourier transform R-space spectra, Fig. 1(d).

Fig. 2 :

 2 Fig. 2: The ! ! weighted Fourier transforms of the Co K-edge EXAFS spectra (k= 3 to 10.15 Å -1 ) measured on the Co/Mo 2 C multilayers (as-deposited, annealed at 300 and 600°C), and the Co foil reference. The fits were carried out in R-space in the interval of ([1.0, 5.0] Å). For the sake of clarity, curves are vertically shifted.

Fig. 3 :

 3 Fig. 3: Co K edge x-ray absorption measurement of the solid solution references, CoMo (1 at.%), Co 3 Mo, Co 3 Mo 3 C and Co 6 Mo 6 C, compared to the Co foil: (a) normalized EXAFS spectra; (b) normalized XANES spectra; (c) ! ! -weighted k-space spectra and (d) Fourier transform R-space spectra of EXAFS data. For the sake of clarity, curves are vertically shifted in (a) and (b).

Fig. 4 :

 4 Fig. 4: Co K edge x-ray absorption measurement of two solid solution references, Co 3 Mo 3 C and Co 6 Mo 6 C, and of two Co/Mo 2 C multilayers, as-deposited and annealed at 600°C: (a) normalized EXAFS spectra; (b) normalized XANES spectra; (c) ! ! -weighted k-space spectra and (d) Fourier transform R-space spectra of EXAFS data. For the sake of clarity, curves are vertically shifted in (a) and (b).

Table . 2

 . 2 C layers are involved in the mixing with the Co atoms. Moreover the quantitative analysis of the EXAFS data indicates a stronger local ordering of the Co layers following annealing. In conclusion, with the annealing process, demixing takes place in the Co and C mixing region and the layers become ordered, which results in the existence of pure Co region in the annealed samples. Tab. 1: Structural parameters of the three multilayers derived from x-ray reflectivity data measured at 0.154 nm. : Parameters of the first coordination shell in Co/Mo 2 C multilayers (as-deposited, annealed at 300 and 600°C) and the Co foil.

		Period d	Period d	Thickness/Roughness (nm)
	Sample	(nm) prior annealing	(nm) following annealing	B 4 C	(±0.05 nm) Co	Mo 2 C
	As-deposited	4.20	-	3.60/0.56 2.65/0.32 1.55/0.26
	300°C	4.17	4.18	3.31/0.56 2.93/0.82 1.25/0.26
	600°C	4.17	4.13	2.89/0.54 2.47/0.38 1.66/0.22
	Sample		N	The first shell (Co-Co) R(Å)	! ! (Å ! )
	as-deposited		4(1)		2.41(9)	0.0125(3)
	300°C		5(2)		2.46(4)	0.0084(4)
	600°C		6(2)		2.49(2)	0.0089(7)
	Co_foil		6(2)		2.47(4)	0.0038(2)

N:coordination number, R:neighbor atoms distance, ! ! : Debye-Waller factor for individual shells. Uncertainty of the last digit is given in parentheses.

Acknowledgments

This work is done under the framework of the international ANR-NSFC COBMUL project (ANR #10-INTB-902-01 and NSFC #11061130549) and Natural Science Foundation of China (#11061130549) and of the Cai Yuanpei Project (EGIDE PHC No. 30248NF), 973 program (No. 2011CB922203), and National Natural Science Foundation of China (Nos. 11375131 and 11305104).


Fabio Petrillo

Philippe Merle
email: philippe.merle@inria.fr

Naouel Moha
email: moha.naouel@uqam.ca

Yann-Gaël Guéhéneuc
email: yann-gael.gueheneuc@polymtl.ca

Towards a REST Cloud Computing Lexicon

Keywords: REST, Lexicon, Cloud, Services

de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

INTRODUCTION

Cloud computing has transformed the Information Technology (IT) industry [START_REF] Armbrust | A View of Cloud Computing[END_REF] by hosting applications and providing resources (e.g., CPU and storage) as services on-demand over the Internet [START_REF] Zhang | Cloud Computing: State-of-the-Art and Research Challenges[END_REF], offering huge opportunities for the IT industry. Cloud providers, such as Google Cloud Platform (a commercial public cloud) and OpenStack (an open source stack for building public/private clouds), usually offer these services in the form of REST (REpresentational State Transfer) [START_REF] Fielding | Architectural Styles and the Design of Network-based Software Architectures[END_REF] APIs, the de facto standard adopted by many software organisations for publishing their services. In particular, we observe that most of cloud providers, such as Google Cloud Platform or Open-Stack, propose their own proprietary APIs. Conversely, open and standard cloud APIs have also been proposed, such as the Open Cloud Computing Interface (OCCI) [START_REF] Nyren | Open Cloud Computing Interface -Core[END_REF], which is a neutralvendor cloud standard.

However, there is a wide variety of cloud APIs that might be difficult to understand and use by developers, especially within such a complex and technical context as cloud computing. Moreover, well-designed and well-named REST APIs may attract client developers to use them more than poorly designed and named ones, particularly in the current open market, where Web services are competing against one another [START_REF] Masse | REST API Design Rulebook[END_REF]. Indeed, client developers must understand the providers' APIs while designing and developing their systems that use these APIs. Therefore, in the design and development of REST APIs, their understandability and reusability are two major quality characteristics, which are reachable when best practices for REST APIs design [START_REF] Masse | REST API Design Rulebook[END_REF] and naming are followed.

To improve the understandability and cloud computing adoption, a better comprehension of the technology is essential [START_REF] Youseff | Toward a Unified Ontology of Cloud Computing[END_REF] and we believe that this understanding involves the right choice of lexicon used to describe the cloud computing APIs. Nevertheless, despite its importance and to the best of our knowledge, there has been no study on the analysis of the lexicon adopted by cloud providers. This raises three open research questions: RQ1: Which lexicon is adopted by cloud computing providers? RQ2: Are there common terms between providers' lexicons? RQ3: What is the global lexicon of all cloud providers?

To answer these questions, we studied three different and well-known REST APIs (Google Cloud Platform, OpenStack, and Open Cloud Computing Interface) by investigating and organising their lexicons. This study presents three main contributions in response to the three open research questions: 1) a tooled approach, called CLOUDLEX, for extracting and analysing REST cloud computing lexicons, 2) a dataset of services, resources, and terms used in the three studied REST APIs, 3) our analysis of this dataset, which represents a first attempt to provide a common REST cloud computing lexicon.

The remainder of the paper is organised as follows. Section 2 presents our study: the three studied cloud computing REST APIs, our conceptual model for cloud computing REST APIs, the design and implementation of our CLOUDLEX approach to extract and analyse lexicons from cloud computing REST APIs. Section 3 presents our results, answers the three open research questions, and discusses threats to validity. Section 4 presents some related work. Finally, Section 5 concludes the paper with future work.

STUDY DESIGN

Objects

The objects of our study are three different cloud REST APIs including the API of Google Cloud Platform (GCP)1 , the API of OpenStack2 , and the API of OCCI3 . We specifically target these APIs because they represent the range of the different types of cloud APIs available: a well-known commercial public cloud, a worldwide used open source implementation for building private clouds, and a community-led open standard for cloud computing.

Conceptual Model for Cloud Computing REST APIs

Cloud computing is provided by many companies like Amazon, Google, Microsoft, IBM, Oracle, implemented by different open source stacks like Open-Stack, CloudStack, Nebula, Eucalyptus, and specified by few standards like OGF's (Open Grid Forum) OCCI [START_REF] Nyren | Open Cloud Computing Interface -Core[END_REF]) and DTMF's CIMI (Cloud Infrastructure Management Interface) [START_REF] Davis | Cloud Infrastructure Management Interface (CIMI) Model and REST Interface over HTTP[END_REF], to cite a few. In our conceptual model, we abstract this diversity of cloud computing actors (companies, implementations, and standards) under the single concept of Provider. Each provider supplies a set of REST APIs. In Google Cloud Platform, each API is in fact a commercial product of Google, such as compute and sql. OpenStack simply provides APIs, such as orchestration-api and os-compute-2. In OCCI, each API is specified as an extension of the OCCI core model, such as Infrastructure and Platform extensions. Independently of the name used by cloud providers (product, API, extension), each provider's REST API is conceptually a useful service, e.g., managing virtual machines, networks, databases, or applications, orchestrating their deployment, controlling their access, etc. The number and contents of these services are extremely heterogeneous for each provider: tens of services in Google Cloud Platform, more than one hundred in OpenStack, and five in OCCI. In our conceptual model, we abstract this diversity of functional services (product, API, extension) under the single concept of Service.

Each service of a provider manages a set of computing resources such as virtual machine, storage disk, network, application, etc. Each computing resource is implemented as a REST resource characterized by a unique resource identifier (e.g., URI, URL, etc.). For instance, virtual machines are accessible through the URI /{project}/zones/{zone_id}/ instances/{instance_id} in the compute service of Google Cloud Platform, the URI /{tenant_ id}/servers/{server_id} in the os-compute-2 service of OpenStack, and are reachable by URI /compute/{compute_id} in the Infrastructure service of OCCI. Our conceptual model abstracts this diversity of computing resources under the single concept of Resource.

Each resource supports common CRUD (Create, Retrieve, Update, and Delete) operations and some specific business behaviors like start and stop a virtual machine, attach a disk to a virtual machine, etc. Our conceptual model abstracts this diversity (operation, behavior) under the single concept of Action.

To instantiate this conceptual model, we designed a tooled approach for automatically identifying Service, Resource and Action data from cloud computing REST APIs of three Providers, and then for extracting and analysing lexicons of these APIs.

CloudLex Approach

Our study is supported by the CLOUDLEX tooled approach composed of four steps illustrated in Figure 1:

Step 1.

Collecting documentation The first step of the CLOUDLEX approach consists in manually collecting the documentation of cloud computing providers' REST APIs. The Web site of Google Cloud Platform contains HTML pages documenting all GCP's REST APIs. For instance, the HTML page https://cloud.google. com/compute/docs/reference/latest/ describes all GCP's compute services.

Open-Stack's REST APIs are documented with Swagger documents such as http://rackerlabs. github.io/wadl2swagger/openstack/sw agger/dbaas.json. OCCI is specified by a set of PDF documents such as https://redmine.ogf. org/attachments/220/infrastructure.pdf. We analysed the three provider's documentation, searching for pages with API URIs. Then, we identified all API pages manually and stored their URLs. At the end of this step, we obtain a list of API pages URLs that contain both GCP and OpenStack URIs organised by service, and for OCCI, a list of relevant PDF specification documents.

Step 2. Parsing documentation The second step of the CLOUDLEX approach consists in automatically parsing all the providers' documentation to collect all provided services (e.g., compute and sql for GCP, orchestration-api and os-compute-2 for Open-Stack, Infrastructure and Platform for OCCI), resource URIs and allowed HTTP request methods in order to feed the implementation of our conceptual model presented in Section 2.2. However, the nature of this documentation is heterogeneous since it varies from one provider to another. Therefore, the CLOUDLEX toolchain contains a set of heterogeneous parsers, each dedicated to a specific documentation format, including GCP Parser, OCCI Parser, and OpenStack Parser as shown in Figure 1. The CLOUDLEX toolchain is extensible by design as it could support other cloud provider's APIs, e.g. Amazon Web Services, with its own documentation format by just adding a new parser, as illustrated by Other Parser at the bottom of Figure 1. Each parser identifies Provider, Service, Resource and Action data from a specific provider's documentation, and then feeds the Cloud Dataset, which is the tooled implementation of the CLOUDLEX conceptual model. Table 3 gives an excerpt of the obtained Cloud Dataset. We parsed these API's pages and documents to identify their structure. OpenStack provides a page with Swagger JSON files, from which we extracted directly URIs. As for Google Cloud Platform, which provides HTML documentation pages, we had to develop an HTML parser to extract URIs. Unfor-tunately, OCCI documents do not explicitly list URIs but only give rules about how URIs must be generated by an OCCI implementation. Then, we added a generator to OCCIWARE STUDIO, which is a modeldriven implementation of OCCI, and ran it to obtain all the URIs for OCCI. At the end of this second step, we get the Cloud Dataset, a dataset with the list of resource URIs with allowed HTTP request methods for each provider's service, as illustrated in Table 3. Step 3. Extracting lexicon The third step of the CLOUDLEX approach consists in automatically extracting the lexicon of each provider from its associated Cloud Dataset. The lexicon of each provider contains the name of all services of this provider, the terms extracted from the path of the uri of all provided resources, and the name of all the actions defined by provided resources. The path of a URI is usually organised in a hierarchical form, which appears as a sequence of segments separated by slashes. For example, the URI /{project}/zones/{zone_ id}/instances/{instance_id} contains five segments: {project}, zones, {zone_id}, instances, and {instance_id}. We keep all segments not enclosed by braces in the lexicon, e.g., zones and instances. Segments enclosed by braces, such as {project} and all {*_id}, are identifiers either computed by the cloud provider or freely chosen by the cloud user. For this reason, these identifier segments are not part of the lexicon. We then performed a finegrained analysis of all obtained URIs automatically, parsed the URIs following provider's URI patterns, and extract lexicon terms. These extractions resulted in the Lexicon Dataset, a dataset of terms associated with each API.

Step 4. Analysing lexicon The fourth step of the CLOUDLEX approach consists in automatically analysing the lexicons. Various analyses are provided to count occurrences of each term in the lexicon datasets, and identify nouns versus verbs, singular versus plural terms, and lower/upper/camel case of terms. The results of these analyses are reported in several tables and charts of Section 3.

Implementing CLOUDLEX

Both Cloud and Lexicon Datasets are encoded as CSV (Comma-Separated Values) files. This implementation choice fosters the reusability of our datasets by other researchers and practitioners. CSV files can easily be generated from any programming language and read from any analysis software like Apache OpenOffice or Microsoft Excel spreadsheets. Most of the CLOUDLEX parsers, extractors and analyses are implemented in Python, a dynamic scripting language providing simple libraries to get and parse HTML pages/Swagger files, and read/write CSV files, etc. This implementation choice fosters readability, comprehension and auditability of our parsing, extraction and analysis scripts by other researchers and practitioners. Finally, we used OpenOffice spreadsheet software to produce tables and charts shown in Section 3. Our implementation of the CLOUDLEX tooled approach and all the produced datasets are freely available on https://github. com/Spirals-Team/CloudLexicon.

RESULTS

Analysis of the Cloud Dataset

Using the tooled approach CLOUDLEX presented in Section 2.3, we extracted a total of 1,297 URIs from the 142 services of the three cloud providers, as shown in Table 1. The distribution of URIs is 588 for OpenStack (45,34% of all URIs), 505 for GCP (38,94%), and 204 for OCCI (15,53%). The distribution of services is 115 for OpenStack (80,99% of all services), 22 for GCP (15,49%), and 5 for OCCI (3,52%). An excerpt of the whole Cloud Dataset is given in Table 3. The average number of URIs Table 2 gives the ranking of the top ten biggest services in terms of provided URIs, which are compute for GCP (198 URIs, 15,27% of all URIs), Infrastructure for OCCI (77, 5,94%), Platform for OCCI (45, 3,47%), orchestration-api for OpenStack (39, 3,01%), sql for GCP (38, 2,93%), storage for GCP (36, 2,78%), os-compute-2 for OpenStack (33, 2,54%), Service Level Agreements for OCCI (32, 2,47%), Monitoring for OCCI (26, 2,00%), and Compute Resource Templates Profile for OCCI (24, 1,85%). Together these ten services provide 42,25% of all URIs. We also observed that 71% of all URIs (922/1297) are provided by only 23% of services (33 services out of 142 services) including 14 services of OpenStack (12,17% of all OpenStack services), 14 of GCP (63,63%), and 5 of OCCI (100%). Each of the other 109 services provides less than 10 URIs. These results show that the studied REST APIs are not homogeneous in terms of number of URIs by service.

We conclude that most of the analysed cloud services are tiny in terms of number of provided URIs, i.e., less that 10 URIs. Most of OpenStack services, i.e., 101 out of 115 (87,8%), are very small. About two-thirds of GCP services and all OCCI services are medium or large services, i.e., more than 10 URIs.

We analysed the HTTP methods (GET, POST, PUT, DELETE, PATCH and HEAD) associated with each URI. As shown in Figure 2, we observed that globally 45% of HTTP requests are GET, 30% are POST, 15% are DELETE, 9% are PUT, and 2% are PATCH requests. The HEAD method is used only by OpenStack on two requests. We notice that GET and POST are the most common HTTP methods used in the analysed cloud computing REST APIs. Thus, client developers should mainly deal with retrieving and updating cloud resources.

RQ1: Which lexicon is adopted by cloud computing providers?

The lexicon adopted by each provider contains 185 terms for GCP, 137 for OpenStack, and 47 for OCCI. Each Table 4, 5 and 6 provides the five most used terms for GCP, OpenStack, and OCCI, respectively. For each term, the number of occurrences represents the number of URIs containing this term. Moreover, we observed the parts of speech that providers adopted in their APIs. Firstly, APIs use nouns and verbs with 67% of nouns and 33% of verbs. If we study this aspect by providers, we observed that GCP uses 50% of nouns and 50% of verbs, OCCI has a proportion of 70% of nouns for 30% of verbs, while OpenStack adopts 88% of nouns and 12% of verbs. Figure 3 shows these results with absolute values by providers.

Secondly, the analysis of APIs in terms of singular and plural terms reveals that 51,5% of terms are singular, and 48,5% are plural. OCCI has 100% of singular terms. GCP has 48,65% of singular terms Thirdly, the analysis of APIs in terms of lower, upper and camel cases shows that 72,9% of terms are lowercase, 25,5% use camel case, and about 1,6% are upper case. OCCI is 100% lower case.

OpenStack mainly uses lower case, but it has six terms with upper case and one camel case:

OS-KSADM, OS-OAUTH1, OS-KSCATALOG, OS-OS-KSS3, OS-KSEC2, OS-KSVALIDATE, and ec2Credentials. GCP uses camel case, but there are two exceptions, i.e., trainedmodels, and serverconfig.

Petrillo et al. [START_REF] Petrillo | Are REST APIs for Cloud Computing Well-Designed? An Exploratory Study[END_REF] compiled a catalog of 73 best practices in the design of REST APIs. In the catalog, there are four best practices directly related with URI lexicon: 1) lowercase letters should be preferred in URI paths; 2) a singular noun should be used for document names; 3) a plural noun should be employed for collection names; 4) a verb or verb phrase should be used for controller names. Matching these practices with our lexicon's analysis, our results show that the three APIs, in general, follow these four good practices for REST APIs, using lowercase letters, nouns and verbs correctly, and a correct application of plural and singular on API terms.

To summarize, we found that the lexicon of analysed cloud computing REST APIs contains a majority of nouns, which are equally singular or plural, and are mainly in lower case, following REST API best practices.

RQ2: Are there common terms between providers' lexicons?

We tabled all terms and analysed which terms are in common in three or two APIs. No common term appears in the three APIs. Table 7 presents the list of the 17 common terms in two APIs, which represents less than 5% (17/352) of terms used simultaneous by two APIs, the majority of nouns (12 nouns versus 5 verbs). Consequently, Table 7 highlights an important finding: the three cloud computing REST APIs do not share a common lexicon and very few terms are common between two APIs.

RQ3: What is the global lexicon of all cloud providers?

Globally, if we combine all terms and identify the number of occurrences of common terms, the three APIs formed a lexicon of 352 different terms (nouns and verbs) to express all provided services. As illustrated in Figure 4, we present the most common terms in the form of a tag cloud to illustrate our REST cloud computing lexicon. Visually, we can see the high heterogeneity between APIs, and it highlights terms as servers, images, flavors, instances, users, projects. Briefly, we conclude that there is no consensus currently on which terms to use on cloud computing systems.

Threats to Validity

As with any such empirical study, threats exist that reduce its validity, which we attempted to mitigate or had to accept. We now discuss these threats and the measures that we took on them.

Threats to the construct validity of our study concern the relationship between theory and observations. We assumed that good naming practices [START_REF] Petrillo | Are REST APIs for Cloud Computing Well-Designed? An Exploratory Study[END_REF] improve the quality of the REST APIs of the cloud providers that follow them [START_REF] Zhang | Cloud Computing: State-of-the-Art and Research Challenges[END_REF]. Although these assumptions are legitimate and have been withheld by many researchers and works before, for example that of [START_REF] Zhang | What Do We Know about the Effectiveness of Software Design Patterns[END_REF], future work should study whether these good naming practices apply universally to all cloud services. Also, we argued that the presented lexicon is exhaustive to the three analysed APIs (GCP, OpenStack and OCCI). However, other terms could be included if a different approach were adopted.

Threats to internal validity concern confounding factors that can affect our dependent variables. Although we did not carry any statistical analysis on the characteristics of the studied REST APIs, we assumed that the lexicon was a typical feature of the REST APIs. However, there may be other terms that describe more accurately these REST APIs, in particular analysing their documentations. Future work includes analysing and contrasting more APIs with more terms and documentation. Further, other researchers should perform similar analyses to confirm or invalidate ours.

Threats to external validity concern the generalization of our results. Although we presented, to the best of our knowledge, the largest study on the lexicon of cloud computing REST APIs, we cannot generalise our results to all cloud computing REST APIs. Future work is necessary to analyze more REST APIs, from other cloud providers, open source implementations, and standards to confirm or invalidate our observations. However, as we state in the introduction, this study represents the first attempt towards a common REST cloud computing lexicon.

Discussion

Our results raise important open questions for researchers, as well as new opportunities for educators and cloud service designers. First, CLOUDLEX provides an approach that researchers could use or extend to analyse new qualitative aspects about REST cloud services. Second, our conclusion that the cloud lexicon is currently very heterogeneous could influence cloud providers endeavour to work together to create a consensual nomenclature for cloud services, simplifying adoption, maintenance and interoperability on cloud computing APIs. Finally, educators could use our results to guide their courses, focusing on more relevant services and applying common terms correctly.

RELATED WORK

Recently, there is a growing interest in the design quality evaluation of REST APIs. However, to the best of our knowledge, few studies made specifically a lexical evaluation of REST APIs in general, and none in the domain of cloud computing.

In related work for the general design quality evaluation of REST APIs, we can cite the research work of Hausenblas [START_REF] Hausenblas | On Entities in the Web of Data[END_REF], who studies some widely used RESTful Web APIs in terms of URI space design, resource representations, and hyperlinking support. [START_REF] Rodríguez | REST APIs : A Large-Scale Analysis of Compliance with Principles and Best Practices[END_REF]) also evaluated the conformance of good and bad design practices in REST APIs from the perspective of mobile applications. They analysed large data logs of HTTP calls collected from the Internet traffic of mobile applications, identified usage patterns from logs, and compared these patterns with best design practices. Zhou et al. [START_REF] Zhou | REST API Design Patterns for SDN Northbound API[END_REF] showed how to fix design problems related to the use of REST services in existing Northbound networking APIs in a Software Defined Network and how to design a REST Northbound API in the context of Open-Stack. These previous works made contributions to the design evaluation of REST APIs for general or specific domains, mobile and networking, while we consider the domain of cloud services.

Some researchers have dealt with the linguistic aspects of RESTful APIs, in particular in terms of lexicon. For instance, Parrish [START_REF] Parrish | Social Network APIs : A Revised Lexical Analysis. decontextualize : words and projects[END_REF] performs a subjective lexical comparison between two wellknown RESTful APIs, i.e., Facebook and Twitter. In the comparison, the author specifically focuses on the analysis of verbs and nouns in URIs naming. Palma et al. [START_REF] Palma | Are RESTful APIs Well-Designed? Detection of their Linguistic (Anti)Patterns[END_REF] evaluated the linguistic aspects of several REST APIs based on REST patterns and anti-patterns, which correspond to good and bad practices in the design of REST services. However, the APIs evaluated were selected from different and general domains. They included Facebook, Twitter, Dropbox, and Bestbuy. So, it was not possible to compare and discuss the results among the APIs. Moreover, the list of patterns and anti-patterns was really comparable to this focused study. [START_REF] Petrillo | Are REST APIs for Cloud Computing Well-Designed? An Exploratory Study[END_REF] evaluated three cloud computing REST APIs using a catalog of 73 general best practices. However, this catalog was mainly dedicated to the design of REST APIs from a conceptual and syntactic point of view, but not necessarily lexical. The present paper specifically focuses on a lexical evaluation of cloud computing REST APIs.

CONCLUSION

Towards the end-goal of a thorough comprehension of the field of cloud computing and a more rapid adop-tion from the scientific community, we claimed in this paper that well-named REST APIs might attract client developers to use them. A better comprehension of the technology involves the right choice of lexicon used to describe the cloud computing APIs. We supported our claim by performing, to the best of our knowledge, the first study extracting, organising and analysing the lexicon of the REST APIs of several cloud providers. We included in our study the REST APIs provided by Google Cloud Platform, OpenStack, and OCCI.

We thus presented three contributions. For our first contribution, we presented CLOUDLEX, our approach to building the lexicon of cloud computing REST APIs, introducing a conceptual model and providing a toolkit to extract and analyse the lexicon of cloud computing REST APIs. For our second contribution, we shared a full dataset of services, resources, and terms used in the three studied REST APIs. Finally, analysing our dataset, we showed that the three APIs formed a lexicon of 352 different terms (nouns and verbs) to express all provided services, in which there are only 17 shared terms, representing less than 5% (17/352) of terms used simultaneously by two APIs. Thus, the three APIs do not share a common lexicon, and we conclude that there is not a consensus actually on which terms to use on cloud computing systems. However, we found that the cloud computing REST APIs follow, in general, the good lexicon practices for REST APIs.

A part of our future work is related to threats to validity presented in Section 3.5. Mainly, this involves the analysis and contrast of more APIs with more naming practices to cover other possible characteristics. We plan to consider other REST APIs, from other cloud providers, e.g., Amazon, open source implementations, e.g., CloudStack, and standards, e.g., DTMF's CIMI. Another future work is to build an ontology of cloud computing APIs, establishing semantic joins between services and resources from different providers in order to deal with semantic interoperability between clouds.

Last but not least, this work is the first contribution towards understanding cloud computing lexical aspects, claiming that a deep understanding of the nature of API and a common lexicon will further boost the cloud computing adoption.

Figure 1 :

 1 Figure 1: CLOUDLEX Approach.

Figure 4 :

 4 Figure 4: Cloud lexicon tag cloud.

Table 1 :

 1 Services and URIs by cloud provider.

	Cloud provider # of services # of URIs
	OpenStack	115	588
	GCP	22	505
	OCCI	5	204
	Total	142	1.297
	by service is 9; indicating that the number of anal-

Table 2 :

 2 The ten biggest cloud provider's services.

	Provider	Service	# of URIs
	GCP	compute	198
	OCCI	Infrastructure	77
	OCCI	Platform	45
	OpenStack orchestration-api	39
	GCP	sql	38
	GCP	storage	36
	OpenStack os-compute-2	33
	OCCI	Service Level Agreements	32
	OCCI	Monitoring	26
	OCCI	Compute Resource Templates	24
		Profile	24

Table 3 :

 3 Excerpt of the Cloud Dataset.

	Provider	Service	Resource URI	HTTP Verb
	GCP	compute	/{project}/aggregated/addresses	GET
	GCP	compute	/{project}/regions/{region}/addresses/{address}	DELETE
	GCP	compute	/{project}/regions/{region}/addresses/{address}	GET
	GCP	compute	/{project}/regions/{region}/addresses	POST
	GCP	compute	/{project}/regions/{region}/addresses	GET
	...	...	...	...
	OpenStack	dbaas	/v1.0/{accountId}/instances/{instanceId}/databases/{databaseName}	DELETE
	OpenStack	dbaas	/v1.0/{accountId}/instances/{instanceId}/users/{name}	DELETE
	OpenStack	dbaas	/v1.0/{accountId}/instances/{instanceId}	DELETE
	OpenStack	dbaas	/v1.0/{accountId}/instances/{instanceId}	GET
	OpenStack	dbaas	/v1.0/{accountId}/flavors	GET
	...	...	...	...
	OCCI	Infrastructure	{provider_specific_path}/network/	GET
	OCCI	Infrastructure	{provider_specific_path}/network/	POST
	OCCI	Infrastructure	{provider_specific_path}/network/	DELETE
	OCCI	Infrastructure	{provider_specific_path }/network/?action=up	POST
	OCCI	Infrastructure	{provider_specific_path}/network/?action=down	POST
	Figure 2: Distribution of HTTP Methods.

Table 4 :

 4 The Five Most Used Terms in GCP.

	Term	# of occurrences
	projects	111
	global	108
	zones	84
	instances	52
	regions	51

Table 5 :

 5 The Five Most Used Terms in OpenStack.

	Term	# of occurrences
	servers	81
	flavors	43
	images	38
	users	37
	detail	31
	and 51,35% of plural terms. OpenStack has 38,69%
	of singular terms and 61,31% of plural terms.

Table 6 :

 6 The Five Most Used Terms in OCCI.

	Term	# of occurrences
	action	36
	compute	17
	agreement	17
	storage	11
	network	11
	Figure 3: Nouns and Verbs by Provider.

Table 7 :

 7 Common terms in two APIs.

	Term	Noun Verb GCP OpenStack OCCI
	action
	databases
	events
	images
	instances
	members
	networks
	resources
	restart
	resume
	snapshots
	start
	stop
	storage
	types
	users
	validate

documented at https://cloud.google.com/docs

documented at http://docs.openstack.org

available at http://occi-wg.org

ACKNOWLEDGMENTS

This work is co-funded by the French PIA OCCIware research and development project (www.occiware. org) and by the Natural Sciences and Engineering Research Council of Canada (NSERC).


A memristor is a two-terminal nanodevice that its properties attract a wide community of researchers from various domains such as physics, chemistry, electronics, computer and neuroscience. The simple structure for manufacturing, small scalability, nonvolatility and potential of using in low power platforms are outstanding characteristics of this emerging nanodevice. In this report, we review a brief literature of memristor from mathematic model to the physical realization. We discuss different classes of memristors based on the material used for its manufacturing. The potential applications of memristor are presented and a wide domain of applications are explained and classified.

Introduction

Memristor has recently drawn the wide attention of scientists and researchers due to nonvolatility, better alignment, and excellent scalability properties [START_REF] Hai (helen | Compact model of memristors and its application in computing systems[END_REF]. Memristor has initiated a novel research direction for the advancement of neuromorphic and neuro-inspired computing. Memristor remembers its last state after the last power plugging and has a simple physical structure, high-density integration, and low-power consumption. These features make the memristor an attractive candidate for building the next generation of memories [START_REF] Ho | Nonvolatile memristor memory: device characteristics and design implications[END_REF]. In addition, from high-performance computing point of view, the memristor has the potential capability to conquer the memory bottleneck issue, by utilizing computational unit next to the memory [START_REF] Massimiliano | Memcomputing: a computing paradigm to store and process information on the same physical platform[END_REF]. Due to these unique properties and potentials of the memristor, neuroscientists and neuromorphic researchers apply it as an artificial synapse in Spiking Neural Network (SNN) architectures [START_REF] Hyun | Nanoscale Memristor Device as Synapse in Neuromorphic Systems[END_REF].

Memristor was predicted in 1971 by Leon Chua, a professor of electrical engineering at the University of California, Berkeley, as the fourth fundamental device [START_REF] Chua | Memristor-The missing circuit element[END_REF]. Publishing a paper in the Nature journal by Hewlett Packard (HP) [START_REF] Strukov | The missing memristor found[END_REF] in May 2008, announced the first ever experimental realization of the memristor, caused an extraordinary increased interest in this passive element. Based on the symmetry of the equations that govern the resistor, capacitor, and inductor, Chua hypothesized that fourth device should exist that holds a relationship between magnetic flux and charge. After the physical discovery of the memristor, several institutions have published the memristor device fabrications using a variety of different materials and device structures [START_REF] Strukov | The missing memristor found[END_REF][START_REF] Chanthbouala | A ferroelectric memristor[END_REF][START_REF] Berzina | Electrochemical control of the conductivity in an organic memristor: A time-resolved x-ray fluorescence study of ionic drift as a function of the applied voltage[END_REF][START_REF] Yurij | Spin Memristive systems[END_REF][START_REF] Alibart | An Organic Nanoparticle Transistor Behaving as a Biological Spiking Synapse[END_REF].

In 2009, Biolek et al. modeled nonlinear dopant drift memristor by SPICE [START_REF] Biolek | Spice model of memristor with nonlinear dopant drift[END_REF]. One year later, Wei Lu, professor at the University of Michigan proposed a nanoscale memristor device which can mimic the synapse behavior in neuromorphic systems [START_REF] Jo | Nanoscale Memristor Device as Synapse in Neuromorphic Systems[END_REF]. Later on, in 2011 a team of multidisciplinary researchers from Harvard University published an interesting paper on programmable nanowire circuits for using in nanoprocessors [START_REF] Yan | Programmable nanowire circuits for nanoprocessors[END_REF]. Until June 2016, based on the Scopus bibliographic database, 2466 papers have been published in peer-reviewed journals and ISI articles which are related to memristor fabrication or applications of the memristor in different Domains of science and technology.

Memristors are promising devices for a wide range of potential applications from digital memory, logic/analog circuits, and bio-inspired applications [START_REF] Rose | Overview: Memristive devices, circuits and systems[END_REF]. Especially because the nonvolatility property in many types of memristors,they could be a suitable candidate for making non-volatile memories with ultra large capacity [START_REF] Borghetti | A hybrid nanomemristor/transistor logic circuit capable of self-programming[END_REF]. In addition to non-volatility, the memristor has other attractive features such as simple physical structure, high-density, low-power, and unlimited endurance which make this device a proper choice for many applications. Different device structures are still being developed to determine which memristor device can be presented as the best choice for commercial use in memory/flash manufacturing or in neuromorphic platforms. This is based on different factors such as size, switching speed, power consumption, switching longevity, and CMOS compatibility. The rest of the manuscript is organized as follows: In Section 2, a general overview of the memristor is done and the electrical properties have been investigated. Section 3 presents memristor implementation and fabrication. We investigate various types of memristors based on the different materials that have been used in the fabrication. In Section 4, potential applications of Memristor has been studied. Section 5 deals with streams of research, we have investigated a research classification from the physics level to the system design. Finally, we describe a brief summary and the future work.

Figure 1: Relations between the passive devices and the anticipating the place of the fourth fundamental element based on the relations between charge (q) and flux (ϕ) (from [START_REF] Strukov | The missing memristor found[END_REF]).

Memristor a missing electrical passive element

Memristor is a contraction of "memory & resistor," because the basic functionality of the memristor is to remember its state history. This characteristic proposes a promising component for next generation memory. Memristor is a thin-film electrical circuit element that changes its resistance depending on the total amount of charge that flows through the device. Chua proved that memristor behavior could not be duplicated by any circuit built using only the other three basic electronic elements (Resistor,Capacitor, Inductor), that is why the memristor is truly fundamental. As it is depicted in Figure 1, the resistor is constant factor between the voltage and current (dv = R.di), the capacitor is a constant factor between the charge and voltage (dq = C.dv), and the inductor is a constant factor between the flux and current (dϕ = L.di). The relation between flux and charge is Obviously missing (dϕ = M.dq) that can be interpreted by a fourth fundamental element such as memristor [START_REF] Chua | Memristor-The missing circuit element[END_REF].

Obviously, in memristive devices, the nonlinear resistance can be changed and memorized by controlling the flow of the electrical charge or the magnetic flux. This control any two-terminal black box is called a memristor if, and only if, it exhibits a pinched hysteresis loop for all bipolar periodic input current signaling is interesting for the computation capability of a device similar to the controlling of the states of a transistor. For instance in an analog domain, one can control the state of a transistor to stay in an active area for amplification. Nevertheless, in the digital domain to stay in Off (cut-off) state for logic '0' and in On (saturated) state for logic '1' one can perform with controlling the gate voltage. The output current in MOSFET (Metal-Oxide semiconductor Field Effect Transistor) is managed by changing the gate voltage as well as in BJT (Bipolar Junction Transistor) the input current (base current) can control the output current (collector-emitter current). The main difference between the memristor and transistor for managing the states is that in transistor there is a third terminal to control the states however, in contrast a memristor is a two-terminal device and there is no extra terminal to control the device state. The challenge of using memristor as a computational component instead of transistor lies in the ability to control the working states as accurate as possible. Indeed, in a memristor both potentials for analog and digital computing have been presented. Consequently, using memristor in digital computing to make gate library or crossbar architecture as well as using memristor in analog domain (neuro-inspired or traditional) for computation are introduced in several work [START_REF] Massimiliano | Memcomputing: a computing paradigm to store and process information on the same physical platform[END_REF][START_REF] Rose | Leveraging memristive systems in the construction of digital logic circuits[END_REF][START_REF] Lehtonen | Implication logic synthesis methods for memristors[END_REF][START_REF] Vourkas | A novel design and modeling paradigm for memristor-based crossbar circuits[END_REF][START_REF] Indiveri | Integration of nanoscale memristor synapses in neuromorphic computing architectures[END_REF]. In next sections, we discuss different possibilities and our contributions to apply memristor in both digital and analog platforms.

Memristive device functionality

When you turn off the voltage, the memristor remembers its most recent resistance until the next time you turn it on, whether that happens a day later or a year later. It is worth mentioning that the duration to store the data in resistive form is dependent of the nano-device material. In other words, the volatility is different depending on the device materials in fabrication.

To understand the functionality of a memristor, let us imagine a resistor as a pipe which water flows through it. The water simulates the electric charge. The resistor obstruction of the flow of charge is comparable to the diameter of the pipe: the narrower the pipe, the greater the resistance. For the history of circuit design, resistors have had a fixed pipe diameter. But a memristor is a pipe that its diameter changes with the amount and direction of the water flows through it. If water flows through this pipe in one direction, it expands the pipe diameter (more conductive). But if the water flows in the opposite direction and the pipe shrinks (less conductive). Furthermore, let us imagine while we turn off the flow, the diameter of the pipe freezes until the water is turned back on. It mimics the memristor characteristic to remember last state. This freezing property suits memristors brilliantly for the new generation of memory. The ability to indefinitely store resistance values means that a memristor can be used as a nonvolatile memory.

Chua demonstrated mathematically that his hypothetical device would provide a relationship between flux and charge similar to what a resistor provides between voltage and current. There was no obvious physical interaction between charge and the integral over the voltage before HP discovery. Stanley Williams in [START_REF] Williams | How we found the missing memristor[END_REF] explained how they found the missing memristor and what is the relation between what they found and Chua mathematic model. In Figure 2, the oxygen deficiencies in the TiO 2-x manifest as bubbles of oxygen vacancies scattered throughout the upper layer. A positive voltage on the switch repels the (positive) oxygen deficiencies in the metallic upper TiO 2-x layer, sending them into the insulating TiO 2 layer below. That causes the boundary between the two materials to move down, increasing the percentage of conducting TiO 2-x and thus the conductivity of the entire switch. Therefore, the more positive voltage causes the more conductivity in the cube. A negative voltage on the switch attracts the positively Figure 2: A material model of the memristor schematic to demonstrate TiO 2 memristor functionality, positive charge makes the device more conductive and negative charge makes it less conductive. charged oxygen bubbles, pulling them out of the TiO 2 . The amount of insulating of resistive TiO 2 increases, thereby making the switch more resistive. The more negative voltage causes the less conductivity in the cube. What makes this switch a special device? When the voltage across the device is turned off-positive or negative-the oxygen bubbles do not migrate. They will freeze where they have been before, which means that the boundary between the two titanium dioxide layers is frozen. That is how the Memristor "remembers" the last state of conductivity as well as it proves the plasticity properties in memristor to be applied as a synapse in an artificial neural network architecture and neuromorphic platform.

Electrical model

When an electric field is applied to the terminals of the memristor, the shifting in the boundary between its doped and undoped regions leads to variable total resistance of the device. In Figure 3.a, the electrical behavior of memristor can be modeled as follows [START_REF] Strukov | The missing memristor found[END_REF]:

v(t) = R mem i(t) (1)
R mem = R ON w(t) D + R OF F (1 - w(t) D ) (2)
where w(t) is the width of the doped region, D is the overall thickness of the TiO 2 bi-layer, R ON is the resistance when the active region is completely doped (w = D) and R OF F is the resistance, when the TiO 2 bi-layer is mostly undopped (w→ 0).

dw(t) dt = µ v R ON D i(t) (3)
which yields the following formula for w(t):

w(t) = µ v R ON D q(t) (4)
Where µ v is the average dopant mobility. By inserting Equation (4) into Equation ( 2) and then into Equation ( 1) we obtain the memristance of the device, which for R ON R OF F simplifies to:

R mem = M (q) = R OF F (1 - µ v R ON D 2 q(t)) (5)
Equation ( 5) shows the dopant drift mobility µ v and semiconductor film thicknesses D are two factors with crucial contributions to the memristance magnitude. Subsequently, we can write Kirchoff's voltage law for memristor given by:

v(t) = M (q)i(t) (6)
By using Verilog-A HDL, we simulate the behavior of memristor, based on its behavioral equations. To investigate the characteristics of memristor in electrical circuits, the Verilog-A model of memristor behavior must be applied as a circuit element in the HSPICE netlist. In the HSPICE circuit, we apply a sinusoidal source to observe the memristor reaction in a simple circuit consisting of the memristor and the sinusoidal source. Figure 3.b depicts i -v plot of memristor terminals that we measured in our simulation. This i -v plot, which is the most significant feature of memristor [START_REF] Chua | Memristive devices and systems[END_REF], is namely called "pinched hysteresis loop". The i -v characteristic demonstrates that memristor can "remember" the last electric charge flowing through it by changing its memristance. Therefore, we can use the memristor as a latch to save the data and also as a switch for computing. Moreover, in Figure 3.b, it is depicted that the pinched hysteresis loop is shrunk by increasing frequency. In fact, when the frequency increases toward infinity, memristor behavior is similar to a linear resistor.

Memristor classification based on different materials and applications

A memristor is generally made from a metal-insulator-metal (MIM) sandwich with the insulator usually consisting of a thin film like TiO 2 and a metal electrode like Pt. A memristor can be made from any Metal Insulator Metal (MIM) sandwich which exhibits a bipolar switching characteristic. It means that TiO 2 and Pt are not the only materials to fit the criteria for a memristor. For instance, Wan Gee Kim et al. [START_REF] Gee | Dependence of the switching characteristics of resistance random access memory on the type of transition metal oxide; tio2, zro2, and hfo2[END_REF] conducted a systematic approach using the HfO 2 and ZrO 2 as substitutes for TiO 2 , also using TiN or Ti/TiN electrode instead of Pt. Basically, any two-terminal black box is called a memristor only if it can present a pinched hysteresis loop for all bipolar periodic input signals. Following we discuss four most significant materials for memristor fabrication namely:

• Resistive memristor

• Spintronic memristor

• Organic (Polymeric) memristor

• Ferroelectric memristor

Resistive Memristor

Before the memristor getting well-known, resistive materials have already been widely used in the resistive random access memories (ReRAM/RRAM) [START_REF] Waser | Redox-Based Resistive Switching Memories-Nanoionic Mechanisms, Prospects, and Challenges[END_REF]. The storage function of ReRAM is realized by an intrinsic physical behavior in ReRAM, that is called resistive switching. The resistive material can be switched between a high resistance state (HRS) and a low resistance state (LRS) under an external electrical input signal. The TiO 2 memristor is a ReRAM fabricated in nanometre scale (2-3 nm) thin film that is depicted in Figure 3.a , containing a doped region and an undoped region. Strukov et al. [START_REF] Strukov | The missing memristor found[END_REF] exploit a very thin-film TiO 2 sandwiched between two platinum (Pt) contacts and one side of the TiO 2 is doped with oxygen vacancies, which are positively charged ions. Therefore, there is a TiO 2 junction where one side is doped and the other is undoped. Such a doping process results in two different resistances: one is a high resistance (undoped) and the other is a low resistance (doped). The application of an external bias v(t) across the device will move the boundary between the two regions by causing the charged dopants to drift. How TiO 2 could change and store the state has been introduced in 2.2.

The obvious disadvantage of the first published TiO 2 memristor was its switching speed (operate at only 1Hz). The switching speed was not comparable with SRAM, DRAM and even flash memory. Flash exhibit writing times of the order of a microsecond and volatile memories have writing speeds of the order of hundreds of picoseconds. Many research groups in different labs published their fabrication results to demonstrate a faster switching speed device. In October 2011, HP lab developed a memristor switch using a SET pulse with a duration of 105 ps and a RESET pulse with a duration of 120 ps. The associated energies for ON and OFF switching were computed to be 1.9 and 5.8 pJ, respectively which are quite efficient for power-aware computations. The full-length D (Figure 3.a) of the TiO 2 memristor is 10 nm [START_REF] Torrezan | Sub-nanosecond switching of a tantalum oxide memristor[END_REF] that proposes high-density devices in a small area in VLSI.

A research team at the University of Michigan led by Wei Lu [START_REF] Jo | Nanoscale Memristor Device as Synapse in Neuromorphic Systems[END_REF] demonstrated another type of resistive memristor that can be used to build brain-like computers and known as amorphous silicon memristor. The Amorphous silicon memristor consists of a layered device structure including a co-sputtered Ag and Si active layer with a properly designed Ag/Si mixture ratio gradient that leads to the formation of a Ag-rich (high conductivity) region and a Ag-poor (low conductivity) region. This demonstration provides the direct experimental support for the recently proposed memristor-based neuromorphic systems.

Amorphous silicon memristor can be fabricated with a CMOS compatible simple fabrication process using only common materials which is a great advantage of using amorphous silicon devices. The endurance test results of two extreme cases with programming current levels 10nA and 10mA are 10 6 and 10 5 cycles respectively. We note the larger than 10 6 cycles of endurance with low programming currents are already comparable to conventional flash memory devices. Wei Lu team have routinely observed switching speed faster than 5ns from the devices with a few mA on-current. The switching in this device is faster than 5 ns with a few mA on-current that make it a promising candidate for high-speed switching applications. However, before the devices can be used as a switch, they need to go through a high voltage forming process (typically ≥ 10 V) which significantly reduces the performance of power efficiency of devices [START_REF] Jo | Si memristive devices applied to memory and neuromorphic circuits[END_REF]. Moreover, the retention time (data storage period) is still short (a few months).

Spintronic Memristor

Spintronic memristor changes its resistance by varying the direction of the spin of the electrons. Magnetic Tunneling Junction (MTJ) has been used in commercial recording heads to sense magnetic flux. It is the core device cell for spin torque magnetic random access memory and has also been proposed for logic devices. In a spintronic device, the electron spin changes the magnetization state of the device. The magnetization state of the device is thus dependent upon the cumulative effects of electron spin excitations [START_REF] Wang | Spintronic Memristor Through Spin-Torque-Induced Magnetization Motion[END_REF]. MTJ can be switched between a LRS and an HRS using the spin-polarized current induced between two ferromagnetic layers. If the resistance of this spintronic device is determined by its magnetization state, we could have a spintronic memristor with its resistance depending upon the integral effects of its current profile.

The use of a fundamentally different degree of freedom which allows for the realization of memristive behavior is thus desirabled by Pershin and Di Ventra [START_REF] Yurij | Spin Memristive systems[END_REF]. They demonstrated that the degree of freedom is provided by the electron spin and memristive behavior is obtained from the broad class of semiconductor spintronic devices. This class involves systems whose transport properties depend on the level of electron spin polarization in a semiconductor which is influenced by an external control parameter (such as an applied voltage). Pershin and Di Ventra considered a junction with half-metals shown in Figure 4 (ferromagnets with 100% spin-polarization at the Fermi level), because these junctions react as perfect spin-filters, therefore they are more sensitive to the level of electron spin polarization. They observed memristor behavior in the i -v curve of these systems. This means the proposed device is controllable and tunable. Furthermore, the device can be easily integrated on top of the CMOS. The integration of the spin torque memristor on CMOS is the same as the integration of magnetic random access memory cell on CMOS [START_REF] Wang | Spintronic memristor devices and application[END_REF]. This has been achieved and commercialized in magnetic random access memory.

The potential applications of spintronic memristor are in multibit data storage and logic, novel sensing scheme, low power consumption computing, and information security. However, the small resistance ON/OFF ratio remains a notable concern for spintronic memristor devices.

Organic (Polymeric) Memristor

In 2005 Erokhin et al. [START_REF] Victor Erokhin | Hybrid electronic device based on polyaniline-polyethyleneoxide junction[END_REF] at the university of Parma reported a polymeric electrochemical element for the adaptive networks. Even though it was not called a memristor, however mainly its characteristics corresponds to the hypothetical memristor. At the heart of this device, there is a conducting channel, a thin polyaniline (PANI) layer, deposited onto an insulating support with two electrodes. A narrow stripe of solid electrolyte doped Poly Ethylene Oxide (PEO) which is formed in the central part of the channel and used for the redox reactions. The area of PANI under PEO is the active zone (see Figure 5). A thin silver wire is inserted into the solid electrolyte to provide the reference potential; such a wire is connected to one of the electrodes on the solid support, kept at the ground potential level.

Conductivity variations and memory properties of the organic memristor are due to the redox reactions occurring in the active zone, where PANI is reversibly transferred from the reduced insulating state into the oxidized conducting one [START_REF] Berzina | Electrochemical control of the conductivity in an organic memristor: A time-resolved x-ray fluorescence study of ionic drift as a function of the applied voltage[END_REF]. In analogy with the nomenclature used in Field Effect Transistors (FETs), the two electrodes that are connected with the PANI film are called the source and drain electrodes, while the wire immersed in the PEO is called the gate electrode. In the normal operation of the device, the source and the gate electrodes are kept at ground potential, and a voltage is applied to the drain electrode. Therefore, we can consider the organic memristor as a two-terminal device. The polymeric memristor, compared to the resistive memristor, can better meet the criteria of the theoretical memristor, as its resistance is generally governed by the charge transfer.

The Polymeric memristor was investigated in pulse mode, mimicking the synaptic behavior of signal transmission in neural systems. The phenomenon that the PANI conductivity, when connected to a positive signal excitation which is gradually increased similar to the synapse behavior in real biological neural systems, described in the Hebbian rule. Simple circuit based on the polymeric memristor has already been designed to realize both supervised and unsupervised learning in neural networks [START_REF] Berzina | Electrochemical control of the conductivity in an organic memristor: A time-resolved x-ray fluorescence study of ionic drift as a function of the applied voltage[END_REF]. Organic materials present several advantages in terms of functionality, the deposition technique, costs and above all for the relative ease with which the material properties may be tailored by a chemical approach [START_REF] Pincella | Electrical properties of an organic memristive system[END_REF]. Organic memristor operates with very low power energy. The transformation to the conducting state occurs at potentials +0.4 -+0.6 V and transformation into the insulating state take place at potentials lower than +0.1 V [START_REF] Erokhin | Organic memristive device and its application for the information processing[END_REF].

There is another type of organic memristor namely Nanoparticle Organic Memory Field Effect Transistor (NOMFET). NOMFET is made of conjugated molecules and metal nanoparticles (NPs). This device is initiated and fabricated by the institute of microelectronics and nanotechnology at Lille university [START_REF] Alibart | An Organic Nanoparticle Transistor Behaving as a Biological Spiking Synapse[END_REF]. NOMFET consists of a bottom-gate and source-drain contact organic transistor configuration. The gold NPs (5 nm in diameter) were immobilized into the source-drain channel by applying self-assembled monolayer covered by a thin film of Pentacene as it is shown in Figure 5: Organic (polymeric) Memristor: the active channel is formed by PANI on top of a support and two electrodes. The region between PANI and PEO is called the 'active zone', and conductivity transformation is performed here. Figure 6. The NOMFET has the capability of mimicking synaptic properties as a volatile memory. We have used NOMFET in our research to make a new type of synapse [START_REF] Shahsavari | Combining a Volatile and Nonvolatile Memristor in Artificial Synapse to Improve Learning in Spiking Neural Networks[END_REF]. Consequently, we will discuss it more in details.

Ferroelectric Memristor

Ferroelectricity is a property of certain materials which have a spontaneous electric polarization that can be reversed by the application of an external electric field. The ferroelectric memristor is based on a thin ferroelectric barrier sandwiched between two metallic electrodes. Therefore, these two opposite polarization states can be used to represent binary bits '0' and '1', thus resulting in the advent of the Ferroelectric Random Access Memory (FeRAM). Due to FeRAM nonvolatility, ferroelectric materials have been widely used in automobile equipment, ID/smart card, Radio Frequency Identification (RFID) and other embedded memory applications [START_REF] Wang | The next generation mass storage devices -Physical principles and current status[END_REF]. Chanthbouala, A. et al. [START_REF] Chanthbouala | A ferroelectric memristor[END_REF], showed voltage-controlled domain configurations in ferroelectric tunnel barriers yield memristive behavior with resistance variations exceeding two orders of magnitude and a 10 ns operation speed. They reported Piezoresponse Force Microscopy (PFM) images and electrical transport measurements as a function of the amplitude, duration and the repetition number of voltage pulses in the 10-200 ns range. In tunnel junctions with a ferroelectric barrier, switching the ferroelectric polarization induces variations of the tunnel resistance, with resistance contrasts between the ON and OFF states of several orders of magnitude. The lowresistance state (R ON ) corresponds to the ferroelectric polarization pointing up (P ↑), and the high-resistance state (R of f ) corresponds to the ferroelectric polarization pointing down (P ↓).

Positive and negative trains of pulses applied consecutively with +2.9 V and -2.7 V amplitude. In the analogy with the operation of FeRAM, the large ON/OFF ratio in ferroelectric tunnel junctions (FTJs) has so far been considered only for binary data storage, with the key advantage of non-destructive readout and simpler device architecture, however still non-CMOS compatible. In another study, Y.Kaneko et al. [START_REF] Kaneko | A novel ferroelectric memristor enabling nand-type analog memory characteristics[END_REF] presented a new transistor and implemented it by all oxidebased ferroelectric thin films, which include SrRuO 3 (SRO: bottom gate electrode), Pb(Zr,Ti)O 3 (PZT: ferroelectric), ZnO (semiconductor), and SiON (gate insulator) Figure 7. They have demonstrated the conductivity modulation of the interface between two oxides, ZnO and PZT, in a FeFET, is applicable for a nonvolatile memory which has the same memristive operation. Ferroelectric-based memristor cell can be expected to be very suitable for the nonvolatile memory array configuration and the future neuromorphic systems embedded in the intelligent transparent electronic applications [START_REF] Yoon | Polymeric ferroelectric and oxide semiconductor-based fully transparent memristor cell[END_REF]. The bottom FET has the gate (SRO layer) and insulator (PZT ferroelectric layer) constituting a FeFET that has memory characteristics (from [START_REF] Kaneko | A novel ferroelectric memristor enabling nand-type analog memory characteristics[END_REF]).

Evaluation of Memristor with different materials

After 2008, there have been many articles related to memristors and memristive devices. Here we evaluate the four types of memristors using different materials. TiO 2 memristor is the first fabrication of memristor device which is considered as one of the most promising ones. There are hundreds of publications related to TiO 2 memristor . Recently, Stanley Williams research group enhanced the characteristics of TiO 2 memristor such as switching speed, programming endurance, and retention time which made TiO 2 memristor the best candidate to apply in commercial usages. Chen Yirin [START_REF] Wang | Spintronic Memristor Through Spin-Torque-Induced Magnetization Motion[END_REF][START_REF] Wang | Spintronic memristor devices and application[END_REF] assistant professor at the University of Pittsburgh, published 49 articles in memristor technology and application are working on spintronic memristor, Pershin and Di Ventra [START_REF] Yurij | Spin Memristive systems[END_REF] are the other researchers who trying to improve spintronic memristive devices characteristics to use it as a nonvolatile memory. Organic materials present several advantages, therefore, could be the next proper candidate to fabricate memristive devices. The last material that we have evaluated here is ferroelectric memristor. After publishing a ferroelectric memristor in Nature materials journal [START_REF] Chanthbouala | A ferroelectric memristor[END_REF] this type of fabrication is introduced as another option for building Memristor. We sum up specifications and characteristics of these five classes of memristor material in Table 1. Lei Wang et al. [START_REF] Wang | Overview of emerging memristor families from resistive memristor to spintronic memristor[END_REF] discussed another type of memristors such as manganite memristor and Resonant-Tunneling Diode (RTD) memristor. We note that the magnetic memristor has the similar behavior to the ferroelectric type of memristive devices. RTD has more potential to react as a complementary device beside memristor for neural network applications e.g., Cellular Neural Networks (CNN) [START_REF] Hu | Multilayer RTD-memristor-based cellular neural networks for color image processing[END_REF]. A quantitative comparison respecting the number of published paper specifically in fabrication and material of different classes of the memristors is presented in Figure 8.

Spintronic

Ferro

Resistive Organic

Potential applications of memristors

In the previous section, we have discussed the different type of memristive materials. In this section, we study the potential application of memristors. we divided the applications into three main classes: nonvolatile memories, digital computing, and analog domain applications. The classification in addition to the practical application examples is depicted in Figure 9. This classification may cover most of the recent applications, however, the memristor is a novel device which new capabilities may be introduced soon in various areas of research. Therefore, the novel applications are dramatically anticipated.

Memristor-based nonvolatile memory

Memristor-based nonvolatile memory is the most obvious application of memristors [START_REF] Hamdioui | Memristor based computation-in-memory architecture for data-intensive applications[END_REF]. The nonvolatile, memristor-based memory cell compared to SRAM and DRAM, can exhibit nonvolatility, good scalability, compatible with conventional CMOS electronics, and the last but not the least, it has no leakage power. Several types of memories are introduced using memristor nanodevice. Resistive RAM (RRAM) [START_REF] Xu | Design implications of memristorbased rram cross-point structures[END_REF], Phase change memory (PCM) [START_REF] Driscoll | Phase-transition driven memristive system[END_REF], Conductive Bridge memory (CBRAM) [START_REF] Liu | Controllable Growth of Nanoscale Conductive Filaments in Solid-Electrolyte-Based ReRAM by Using a Metal Nanocrystal Covered Bottom Electrode[END_REF], ferroelectric memory (FeRAM) [START_REF] Chanthbouala | A ferroelectric memristor[END_REF] and the spintronic memristor that can be a promising replacement for Magnetic memory (MRAM) [START_REF] Li | An overview of non-volatile memory technology and the implication for tools and architectures[END_REF]

Digital computing

Another possible application of memristor is digital design and computation. Memristors can be applied in hybrid CMOS-memristor circuits, or as a basic component to built the logic gates [START_REF] Xia | Memristor-CMOS Hybrid Integrated circuits for reconfigurable logic[END_REF].

One remarkable logic application is using memristor as a reconfigurable switch (FPGA) [START_REF] Cong | mrfpga: A novel fpga architecture with memristor-based reconfiguration[END_REF].

The implication logic synthesis [START_REF] Lehtonen | Implication logic synthesis methods for memristors[END_REF] and crossbar array architecture [START_REF] Vourkas | A novel design and modeling paradigm for memristor-based crossbar circuits[END_REF] are two alternatives presented a the new approaches to make efficient digital gate library. A comprehensive review and implementation of both digital computing approach is discussed in [START_REF] Mahyar Shahsavari | Unconventional digital computing approach: memristive nanodevice platform[END_REF].

Analog domain applications

Another further research area of memristive devices is analog domain application. Simple circuits of memristors with a single capacitor or inductor are discussed in [START_REF] Yogesh | The elusive memristor: properties of basic electrical circuits[END_REF]. There are several research work in analog domain using memristors such as neuromorphic computing, amplifiers, memristor oscillators, filters and chaotic circuits (see e.g. [START_REF] Wey | Variable gain amplifier circuit using titanium dioxide memristors[END_REF], [START_REF] Itoh | Memristor oscillators[END_REF], [START_REF] Shin | Memristor applications for programmable analog ics[END_REF], [START_REF] Muthuswamy | Implementing memristor based chaotic circuits[END_REF]).

Most interesting and recent study field in analog domain that we will focus on it more in our research is neuromorphic or neuro-inspired computation. It is believed this approach is promising for yielding innovations in future cognitive computing, hence will get probably more attention in the near future of research. The key to the high efficiency of biological neural systems is the large connectivity between neurons that offers highly parallel processing power. Another key factor of high efficiency of biological neural network is the connection plasticity. The synaptic weight between two neurons can be precisely adjusted by the ionic flow through them and it is widely believed that the adaptation of synaptic weights enables the biological neural systems to learn. Memristors function similarly to the biological synapses. This characteristic makes Memristors proper building blocks in neuromorphic systems, where neurons and synapses are modeled as electronic devices [START_REF] Jo | Nanoscale Memristor Device as Synapse in Neuromorphic Systems[END_REF]. Memristors can be made extremely small, therefore, by applying them, mimicking the functions of a brain would be possible in near future [START_REF] Williams | How we found the missing memristor[END_REF]. The brain-like computing capability of the memristor-based complex spike timing-dependent plasticity (STDP) learning networks is demonstrated by Afifi et al [START_REF] Afifi | Implementation of biologically plausible spiking neural network models on the memristor crossbar-based cmos/nano circuits[END_REF]. Memristor could be applied in more efficient learning platform such as Deep Belief Networks for online learning [START_REF] Neftci | Event-driven contrastive divergence for spiking neuromorphic systems[END_REF][START_REF] Fatahi | Towards an spiking deep belief network for face recognition application[END_REF]. The model of memristor is used in neuromorphic hardware simulation e.g., Xnet [START_REF] Bichler | Design exploration methodology for memristor-based spiking neuromorphic architectures with the Xnet event-driven simulator[END_REF] and N2S3 [START_REF] Shahsavari | N2s3, a Simulator for the Architecture Exploration of Neuromorphic Accelerators[END_REF].

Streams of research

The ability to indefinitely store resistance values means that a memristor can be used as a nonvolatile memory. There are yet more potential applications that we did not mention previously , we point to the capacity of memristive networks in realizing demanding image processing and more specifically edge detection and face/object recognition [START_REF] Hu | Memristive crossbar array with applications in image processing[END_REF]. Pershin and Di Ventra address the capability of memristors to perform quantum computation in addition to conventional neuromorphic and digital data processing [START_REF] Pershin | Neuromorphic, digital, and quantum computation with memory circuit elements[END_REF]. Performing arithmetic operations in memristorbased structures is possible in both analog and digital approaches [START_REF] Merrikh | Memristor-based circuits for performing basic arithmetic operations[END_REF]. Another system level application is memristive Neuro-Fuzzy System [START_REF] Merrikh-Bayat | Memristive neuro-fuzzy system[END_REF]. However, the memristor potential goes far beyond instant-on computers to embrace one of the biggest technology challenges: mimicking the functionality of the brain. Within a decade, memristors could let us emulate, instead of merely simulate, networks of neurons and synapses. By replacing several specific transistors with a crossbar of memristors, circuit could be shrunk by nearly a factor of 10 in area and improved in terms of its speed relative to power consumption performance [START_REF] Williams | How we found the missing memristor[END_REF]. Computing with memristor is another interesting approach which memristor plays a crossbar switch role in the circuit. Using memristor-based circuit for performing arithmetic operations, signal processing application, dynamic load, oscillators, amplifiers, sensing application, artificial biological system, image encryption, and many other approaches are several applications of memristor that recently appeared in different research publications. In this context, we made a simple classification of a stream of research as shown in Figure 10 that could be useful for those who want to use this flexible device in their research studies. The hybrid approaches are not in the chart, here we mention that any sort of utilization can be implemented in hybrid circuit instead of using pure memristive circuit.

Conclusions and summary

In this study, we have done a feasibility study on memristive nanodevice from theoretical model to practical applications. we studied the cons and pros of using different memristor devices based on the applied material to manufacture the device. As each material or type of memristor has its own characteristics, consequently one can analyze and discover the different potential of application of each type of these memristive devices more conveniently. The better understanding of physics of different memristive materials leads to discover more sophisticated applications of these devices. Four general memristive devices are surveyed namely: Resistive, Spintronic, Organic (polymeric) and Ferroelectric memristive devices. The potential application as well as advantages versus disadvantages of using each one are presented too. The resistive memristor has been applied more than others in different research works from memory to artificial synapse. The Spintronic and Ferroelectric devices show promising properties to make new nonvolatile memories. The organic memristor is more appropriate to make artificial synapse in Spiking Neural Networks. The mix combination of those materials not only propose new research studies but also take the advantages of using more useful properties of each device.

The practical applications of memristive devices are presented subsequently. Three main domains of potential applications have been classified: a)nonvoaltile memory such as RRAM, PCM, CBRAM, FeRAM and MRAM; b)digital computing domain such as logic implication and crossbar array; c)analog domain of application such as neuro-inspired computing in spiking neural networks, oscillators, filters and amplifiers. Among these applications, we focus on computation approaches by using two digital and neuromorphic domains.

Figure 3 :

 3 Figure 3: Memristor schematic and behavior: a) the memristor structure, the difference in applied voltage changes doped and undoped regions, b) current versus voltage diagram, which demonstrates hysteresis characteristic of a memristor, in the simulation we apply the sinusoidal input wave with an amplitude of 1.5v, different frequencies, RON = 100Ω, ROF F = 15kΩ, D = 10nm, µv = 10 -10 cm 2 s -1 V -1 .

Figure 4 :

 4 Figure 4: Spintronic memristor:Physical schematic of the circuit made of an interface between a semiconductor and a half-metal (ferromagnets with 100% spin-polarization at the Fermi level) (From [9]).

Figure 6 :

 6 Figure 6: Physical structure of the NOMFET. It is composed of a p + doped bottom-gate covered with silicon oxide. Source and drain electrodes are made of gold and Au NPs are deposed on the inter-electrode gap before the pentacene deposition.

Figure 7 :

 7 Figure 7: Ferroelectric Memristor, the OxiM transistor has dual channels at the upper and lower sides of the ZnO film, which are controlled independently by the top gate and the bottom gate, respectively.The bottom FET has the gate (SRO layer) and insulator (PZT ferroelectric layer) constituting a FeFET that has memory characteristics (from[START_REF] Kaneko | A novel ferroelectric memristor enabling nand-type analog memory characteristics[END_REF]).

Figure 8 :

 8 Figure 8: Number of publications for each type of memristors.

FiltersFigure 9 :

 9 Figure 9: Different memristor applications in different domains.

Figure 10 :

 10 Figure 10: Classification of domain studies using memristive devices

Table 1 :

 1 . A memory array of Memristors what is called a resistive RAM or RRAM is another form of memristor memory. RRAM operates faster than phase-change memory (PCRAM), and it has simpler and smaller cell structure than Table of different class of memristors based on different materials and its applications, the first university/lab announcement of the device is listed too.

	Memristor	Advantage	Disadvantage	Applications	University-Lab
	Resistive	small scale, fast switching,	still non-reliable for	memory, logic gates,	HP Lab
		simple structure	commercial	neuromorphic, ana-
				log devices
	Spintronic	magnetic memory match	the small resistance	Neuro-inspired sys-	University of Pitts-
		technology	ON/OFF ratio	tems, memory	burgh, US
	Organic	relative ease with chemical	slow switching	artificial synapse	Parma/Lille University
		materials, work with ultra-
		low power
	Ferroelectric suitable for the nonvolatile	slow switching, Non-	synapse, RRAM	Panasonic, Japan &
		memory array	CMOS Compatible		Thales, France

Memristor device overview and propertiesIn this section, we discuss the memristor nanodevice which is believed to be the fourth missing fundamental circuit element, that comes in the form of a passive two-terminal device. We discuss how it can remember its state, and what is its electrical model and particular properties.