distribuciones tipo fase en memorias rram con rgauss.inf.um.es/umur/xjurponencias/poster/p5.pdf ·...

Post on 19-Oct-2019

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DISTRIBUCIONES TIPO FASE EN MEMORIAS RRAM CON R

C. Acal, J.E. Ruiz-Castro, A. M. AguileraDepartamento de Estadística e Investigación Operativa. Universidad de Granada. Facultad de Ciencias.

Avd. Fuentenueva s/n, 18071 GRANADA, España. (chracal@correo.ugr.es, jeloy@ugr.es, aaguiler@ugr.es)

RESUMEN Y OBJETIVOS DEL ESTUDIOEn las últimas décadas, las Resistive Random Access Memories (RRAM) han sido propuestas como unas de las más firmes candidatas a sustituir la actual tecnología Flash en elmercado de memorias no volátiles, gracias a que tienen unas excelentes propiedades físicas y ofrecen magníficas posibilidades de fabricación en la tecnología CMOS actual. Lanaturaleza estocástica de los procesos físicos que hay detrás del funcionamiento de las memorias resistivas, hace que la variabilidad sea uno de los temas a tratar desde elpunto de vista de la industria antes de la comercialización e industrialización de estos aparatos. Hoy en día, y con el fin de extraer información sobre este tema, la industriaelectrónica hace uso de la distribución Weibull para modelizar los puntos de voltaje reset y set de datos experimentales medidos en las RRAMs. Sin embargo, en muchasocasiones el ajuste que se obtiene con la Weibull no es del todo preciso y en consecuencia, hay que plantearse un enfoque diferente. Bajo este contexto, se ha desarrollado unnuevo análisis de fiabilidad basado en las distribuciones Tipo Fase (PHD), el cual proporciona un mejor ajuste y una mejor interpretación de los parámetros que arrojará nuevaluz sobre el problema de la variabilidad y la física detrás del funcionamiento de RRAMs. Todos los cálculos, ajustes y gráficos se han obtenido mediante el paquete estadístico Rutilizando funciones propias que han implementado los autores del trabajo.

CURVAS RESETnum=c(5,1970)set.seed(5);v=abs(rnorm(100));i=abs(rnorm(100))plot(v,i,type="n",xlab=expression(V[app](V)),ylab="Current(A)",ylim=c(-18,-6))legend("topleft",c("Reset Voltage"),pch=c(16),col=c("red"))

for(j in 1:length(num)){c<- read.table(paste(dir,paste("Cycle_R",num[j],".txt",sep=""),sep="/"))v=abs(c$V1);i=log(c$V2)pp=sapply(2:length(c$V2), function(j)(c$V2[(j-1)]-c$V2[j])>=(0.7*c$V2[(j-1)]))p=min(which(pp==TRUE))lines(v,i,type="l",col="green",lwd=1.5); points(v[p],i[p],col="red",lwd=4)}

arrows(0.5, -12, 1.15, -8, length=0.1); arrows(0.85, -12, 1.8, -8.25, length=0.1)text(0.75,-12.5,"Reset Voltage")

LECTURA PUNTOS RESET#-> DIRECTORIO QUE CONTIENE LOS ENSAYOSdir=“DIRECTORIO DONDE SE ENCUENTRE LOS DATOS"

#-> Vr,Ir e Tr VECTORES DONDE GUARDAREMOS LOS PUNTOS CRÍTICOSVr=vector();Ir=vector();Tr=vector()

#-> n NÚMERO DE CICLOS REGISTRADOS EN EL LABORATORIOn=2818

#->FUNCIÓN PARA DETERMINAR LOS PUNTOS RESETfor(i in 1:n){file <- read.table(paste(dir,paste("Cycle_R",i,".txt",sep=""),sep="/"))

file$V1=abs(file$V1)vol=file$V1;int=file$V2a=sapply(2:length(int), function(j)(int[(j-1)]-int[j])>=(0.7*int[(j-1)]))punto=min(which(a==TRUE))

Vr=c(Vr,file[punto,1]); Ir=c(Ir,file[punto,2]); Tr=c(Tr,file[punto,3])}reset=matrix(c(Vr,Ir,Tr),ncol=3);reset=as.data.frame(reset);names(reset)=c("Vreset","Ireset","Treset")

#-> ELIMINAMOS AQUELLOS CICLOS DONDE NO SE PRODUCEN PUNTOS RESETna=which(is.na(Vr));reset=reset[-na,]

#-> ELIMINAMOS LOS PUNTOS ANÓMALOS ENCONTRADOSeli=which(log(reset$Treset)<0);reset=reset[-eli,]

AJUSTE WEIBULLmc=function(d,fig=TRUE,tipo){

datos=sort(d)x=log(datos); pi=(1:length(x)-0.5)/length(x); y=log(-log(1-pi)) ## NUBE DE PUNTOS

recta=lm(y~x)b=recta$coefficients[1] ## TERMINO INDEPENDIENTE DE LA RECTA y=ax+ba=recta$coefficients[2] ## PENDIENTE DE LA RECTA y=ax+bcorrelacion=round(summary(recta)$r.squared,2) ## BONDAD DEL AJUSTEbeta=a; lambda=exp(b/beta) ## ESTIMACION PARAMETROS WEIBULL

#-> REPRESENTACIÓN GRÁFICAif(fig==TRUE){if(tipo=="RESET"){plot(x,y,xlab=expression(Ln(V[reset](V))),mgp = c(1.75, 0.5, 0),tck=0.025,

ylab=expression(Ln(-Ln(1-F[reset]))),main="Ajuste por Weibull",col="red") }if(tipo=="SET"){plot(x,y,xlab=expression(Ln(V[set](V))),mgp = c(1.75, 0.5, 0),tck=0.025,

ylab=expression(Ln(-Ln(1-F[set]))),main="Ajuste por Weibull",col="red") }

abline(recta,col="blue",lwd=2)axis(side=4,labels=F,tick=TRUE,tck=0.02); axis(side=3,labels=F,tick=TRUE,tck=0.02)abline(b,beta-0.1*beta,col="green",lwd=2);abline(b,beta+0.1*beta,col="black",lwd=2)

#-> PARA LA LEYENDAbeta1=round(beta-0.1*beta,3);beta2=round(beta+0.1*beta,3);beta_b=round(beta,3)v_63=round(1/lambda,3)legend("bottomright",c(expression("Experimental Data"),

substitute(paste("Fitting (", beta[V], "=",b,",",V[63~'%'],"=",l,")"),list(b=beta_b,l=v_63)),substitute(paste(beta[V],"=",b1),list(b1=beta1)),substitute(paste(beta[V],"=",b2),list(b2=beta2)) ),lty=c(0,1,1,1),pch=c(1,NA,NA,NA),col=c("red","blue","green","black"),box.lty=0) }

#-> SALIDA DE LA FUNCIÓN (RESULTADOS)resultado=data.frame(correlacion,beta,lambda,b,a)names(resultado)=c("Coef.Corr","beta","lambda","b: y=ax+b","a: y=ax+b")return(resultado) }

AJUSTE ERLANG

library(expm); par(cex=1)

phd=function(d,tipo,fases){w=mc(d,fig=F);w=as.numeric(w) ## AJUSTE WEIBULL CON EL FIN DE COMPARARdatos=sort(d)x=log(datos); pi=(1:length(x)-0.5)/length(x); y=log(-log(1-pi))

#-> REPRESENTACIÓN GRÁFICAif(tipo=="RESET"){plot(exp(x),exp(y),xlab=expression(V[reset](V)),mgp = c(1.75, 0.5, 0),tck=0.025,

ylab=expression(-Ln(1-F[reset])),main="Ajuste Weibull vs PHD",col="red") }if(tipo=="SET"){plot(exp(x),exp(y),xlab=expression(V[set](V)),mgp = c(1.75, 0.5, 0),tck=0.025,

ylab=expression(-Ln(1-F[set])),main="Ajuste Weibull vs PHD",col="red") }

#-> REPRESENTAMOS AJUSTE WEIBULL (r=x*beta+log(lambda)*beta)r=x*w[2]+w[4]r1=x*(w[2]-0.1*w[2])+w[4]; r2=x*(w[2]+0.1*w[2])+w[4]

points(exp(x),exp(r),lwd=2,col="cyan",type="l")points(exp(x),exp(r1),lwd=2,col="green",type="l")points(exp(x),exp(r2),lwd=2,col="black",type="l")axis(side=4,labels=F,tick=TRUE,tck=0.02); axis(side=3,labels=F,tick=TRUE,tck=0.02)

#-> REPRESENTAMOS AJUSTE ERLANG CON ESTRUCTURA PHDf=fases #NUMERO DE ESTADOS FIJOSa=f/mean(datos) #ESTIMACION M.V. DEL PARAMETRO DE LA MATRIZ Tvpi=c(1,rep(0,f-1)); uno=rep(1,f) #VECTOR ALPHA Y VECTOR ED0=diag(1,f) #ESTIMACION MATRIZ T

diag(D0)=-a; for(i in 1:f-1){ D0[i,i+1]=a}kk=vector() # -ln(R(t))

for(i in 1:length(datos)){kk[i]=-log(vpi%*%expm(D0*datos[i])%*%uno) }

points(datos,kk,type="l",col="blue",lwd=2)

#->PARA LA LEYENDA EXTRAPOLAMOS EL CODIGO EMPLEADO UTILIZADO EN WEIBULL}

ASPECTOS TEORICOS• Funciones y distribuciones usuales en

estudios de fiabilidad.• Función de distribución. F(t)• Función de fiabilidad. R(t)=1-F(t)

• Análisis gráfico.• Distribuciones Tipo Fase

EXPRESIONES

DISTRIBUCIÓN WEIBULL

𝑹 𝒕 = 𝐞𝐱𝐩{− 𝝀𝒕)𝜷 ; 𝒕 ≥ 𝟎; 𝝀, 𝜷 > 𝟎

DISTRIBUCIONES TIPO FASE

𝑹 𝒕 = 𝛂𝐞𝐱𝐩(𝑻𝒕)𝒆; 𝒕 ≥ 𝟎

CASO PARTICULAR DE LA ERLANG

𝛼 = (𝟏, 𝟎, … , 𝟎) , 𝑻 =

−𝝀 𝝀𝟎 −𝝀

𝟎 𝟎 ⋯𝝀 𝟎 ⋯

⋮ ⋮𝟎 ⋯𝟎 ⋯

⋱ ⋱ ⋮𝟎 −𝝀 𝝀⋯ 𝟎 −𝝀

F. FIABILIDAD

rt=function(d,tipo,fases){

w=mc(d,fig=F);w=as.numeric(w)datos=sort(d)pi=(1:length(datos)-0.5)/length(datos)

#-> CALCULO DE LA R(t) DE LA WEIBULLbeta=w[2];lambda=w[3] w=exp(-(lambda *datos)^beta) #R(t) WEIBULL

#-> CALCULO DE LA R(t) DE LA ERLANGf=fases #NUMERO DE ESTADOS FIJOSa=f/mean(datos) #PARAMETRO DE LA MATRIZ Tvpi=c(1,rep(0,f-1))uno=rep(1,f); D0=diag(1,f) #VECTOR e Y ALPHAdiag(D0)=-a #MATRIZ T

for(i in 1:f-1){ D0[i,i+1]=a}ph=vector() #R(t) PHD

for(i in 1:length(datos)){ph[i]=vpi%*%expm(D0*datos[i])%*%uno}

#-> REPRESENTACION GRÁFICAif(tipo=="RESET"){

plot(datos,1-pi,type="l",xlab=expression(V[reset](V)), kkkylab=expression(R(V[reset](V))),main="ComparacionkkkR(T)",mgp = c(1.75, 0.5, 0),tck=0.025) }if(tipo=="SET"){

plot(datos,1-pi,type="l",xlab=expression(V[set](V)), kkkylab=expression(R(V[set](V))),main="ComparacionkkkR(T)",mgp = c(1.75, 0.5, 0),tck=0.025) }

points(datos,w,type="l",col="blue",lwd=2)points(datos,ph,type="l",col="red",lwd=2)

#-> PARA LA LEYENDA COPIAMOS EL CODIGO DEL AJUSTE ERLANG}

MTM2017-87708-PFEDER

• C. Acal, J.E. Ruiz-Castro, A.M. Aguilera, F. Jimenez-Molinos, J.B. Roldan, Phase-Type distributions for studying variability in resistive memories, Journal of Computational and Applied Mathematics. 345 (2019) 23-32.

• Keen, Kevin J. (2010) Graphics for Statistics and Data Analysis with R. Boca Raton, FL: Chapman & Hall/CRC. • Sarkar, Deepayan. (2008) Lattice: Multivariate Data Visualization with R. New York: Springer.

top related