存储器

STT-MRAM存储器技术结构图

有些话、适合烂在心里 提交于 2019-12-17 17:25:04
目前有数家芯片制造商,正致力于开发创新出名为STT-MRAM的新一代存储器技术,然而这项技术仍存在其制造和测试等面向存在着诸多挑战.STT-MRAM(又称自旋转移转矩MRAM技术)具有在单一元件中,结合数种常规存储器的特性而获得市场的高度重视.在多年来的发展中发现,STT-MRAM具备了SRAM的速度与快闪存储器的稳定性与耐久性.STT-MRAM是透过电子自旋的磁性特性,在芯片中提供非挥发性储存的功能. 尽管,STT-MRAM这项技术看起来虽然有其优势,却也高度复杂,这就是为什么它的发展历程远比预期的时间还更长.包括三星、台积电、英特尔、GlobalFoundries等,都正在持续开发STT-MRAM技术.尽管如此芯片制造商在其晶圆设备上面临到一些挑战,例如必须改进现有的生产设备,并将其升级到支援28nm或22nm甚至更新的纳米制程. 图一:MRAM结构图 MRAM芯片特性 •MRAM读取/写入周期时间:35ns; •真正无限次擦除使用; •业内最长的寿命和数据保存时间----超过20年的非挥发特性; •单芯片最高容量为16Mb; •快速、简单接口----16位或8位并行SRAM、40MHz高速串行SPI接口; •具有成本效益----简单到只有一个晶体管、一个磁性穿隧结(1T-1MTJ)位单元; •最佳等级的软错误率----远比其它内存优异; •可取代多种存储器----集闪存

让嵌入式工程师毛骨悚然的掉电丢数据事故可以这样解决!

落花浮王杯 提交于 2019-12-16 11:34:44
Nand-Flash/eMMC(带有Flash控制器的Nand-Flash)作为一种非线性宏单元模式存储器,为固态大容量存储的实现提供了廉价有效的解决方案。Nand-Flash存储器具有容量大,改写速度快等优点,适用于大量数据的存储,因而越来越广泛地应用在如嵌入式产品、智能手机、云端存储资料库等业界各领域。 图1 Nand-Flash与eMMC芯片 存储器件使用寿命 使用了Nand-Flash的主板出现丢数据掉程序现象,是一个让无数工程师毛骨悚然的事故。眼看着程序用着用着就消失了,只能干着急也无法下手。有经验的工程师手起刀落换上一颗新物料,熬夜补代码继续撑过半个项目周期。回头无处发泄还要大刀阔斧换厂商、换品牌。虽说换几片Nand-Flash还能负担得起,但毕竟这是一个无底洞,不如去深入探明问题原因,不然散尽家财也无法弥补亏空。 器件数据手册中通常描述Nand-Flash的块擦写寿命达10万次,EMMC的块擦写最高也会有1万次;同理,EEPROM、SD卡、CF卡、U盘、Flash硬盘等存储介质在都存在写寿命的问题。在文件系统向写数据的底层存储器块写数据时,常规会先将块里的数据读出来,擦除块干净后,将需要写入的数据和之前读出来的块数据一起再回写到存储器里面去,如果文件系统写平衡没有处理好,特别是要求1分钟以内要记录一次数据这样频繁的擦写块操作,就有可能将Nand

【汇编指令】一些基础的汇编指令

风流意气都作罢 提交于 2019-12-16 11:08:28
文章目录 汇编 ARM的六大类指令集---LDR、LDRB、LDRH、STR、STRB、STRH LDR指令LDR指令的格式为: LDRB指令 LDRH指令 LDM指令: STR指令STR指令的格式为: STRB指令STRB指令的格式为: STRH指令STRH指令的格式为: STM指令: - MOV[move] 伪指令 sub减法 add加法 - B:跳转 BL:branch and link ldm 读内存,写入多个寄存器 stm 把多个寄存器的值写入内存 汇编 ARM的六大类指令集—LDR、LDRB、LDRH、STR、STRB、STRH — LDR 字数据加载指令— LDRB 字节数据加载指令— LDRH 半字数据加载指令— STR 字数据存储指令— STRB 字节数据存储指令— STRH 半字数据存储指令 LDR指令LDR指令的格式为: LDR{条件} 目的寄存器,<存储器地址> LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。 指令示例: LDR R0,[R1]; 将存储器地址为R1的字数据读入寄存器R0。 LDR R0,[R1,R2] ; 将存储器地址为R1

计算机组成原理复习要点

陌路散爱 提交于 2019-12-16 06:48:39
1. 冯•诺依曼计算机的特点主要有: (1) 计算机由运算器,控制器、存储器和输入/输出设备五大部件构成 ,缺少任何一个部件都无法正常工作 (2) 指令和数据都以同等地位存放在存储器中 ,并可按地址访问。 (3)指令和数据都均以 二进制形式表示 (4) 指令在存储器中按顺序存放 。通常,指令是顺序执行的。在特殊情况下,可根据运算结果或指定的条件改变运算顺序。 (5) 指令由操作码和地址码组成 。操作码表示操作的性质,地址码表示操作数在存储器中的位置 (6) 机器以运算器为中心。 2.计算机系统的层次结构 计算机系统层次结构,指的是计算机系统由 硬件和软件 两大部分所构成,而如果 按功能再细分 ,可分为 7层 。 3.计算机各种性能指标之间的关系 总线的技术指标: 1. 总线的带宽 ( 总线数据传输率 ):总线带宽是指单位时间内总线上传输的数据量 2. 总线位宽:总线能同时传输的二进制位数 ,或数据总线的位数。 3.总线的工作频率:总线工作频率单位以MHz为单位,工作频率越高总线工作速率越快,总线带宽越宽。 4.各种性能指标之间的关系p19 计算机性能的定义: 吞吐率和响应时间 是考量一个计算机系统性能的基本指标。 吞吐率表示在单位时间内所完成的工作量 。在有些场合,吞吐率也可以称为带宽。 响应时间也被称为执行时间或等待时间 ,是指从作业在CPU上执行所用的时间外,还包括磁盘访问时间

C51学习笔记

筅森魡賤 提交于 2019-12-15 21:03:36
一, C51内存结构深度剖析 二, reg51.头文件剖析 三, 浅淡变量类型及其作用域 四, C51常用头文件 五, 浅谈中断 六, C51编译器的限制 七, 小淡C51指针 八, 预处理命令 一,C51内存结构深度剖析 在编写应用程序时,定义一个变量,一个数组,或是说一个固定表格,到底存储在什么地方; 当定义变量大小超过MCU的内存范围时怎么办; 如何控制变量定义不超过存储范围; 以及如何定义变量才能使得变量访问速度最快,写出的程序运行效率最高。以下将一一解答。 1 六类关键字(六类存储类型) data idata xdata pdata code bdata code: code memory (程序存储器也即只读存储器)用来保存常量或是程序。code memory 采用16位地址线编码,可以是在片内,或是片外,大小被限制在64KB 作用:定义常量,如八段数码表或是编程使用的常,在定义时加上code 或明确指明定义的常量保存到code memory(只读) 使用方法: char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 此关键字的使用方法等同于const data data memory (数据存储区)只能用于声明变量,不能用来声明函数,该区域位于片内,采用8位地址线编码

Cortex M3存储器映射

♀尐吖头ヾ 提交于 2019-12-15 07:16:02
CortexM3存储器系统 宗旨:技术的学习是有限的,分享的精神是无限的。 CM3 只有一个单一固定的存储器映射。这一点极大地方便了软件在各种 CM3 单片机间的移植。 存储空间的一些位置用于调试组件等私有外设,这个地址段被称为“私有外设区”。私有外设区的组件包括:闪存地址重载及断点单元(FPB),数据观察点单元(DWT),仪器化跟踪宏单元(ITM),嵌入式跟踪宏单元(ETM),跟踪端口接口单元(TPIU), ROM 表。 CM3的地址空间是 4GB, 程序可以在代码区,内部 SRAM 区以及外部 RAM 区中执行。但是因为指令总线与数据总线是分开的,最理想的是把程序放到代码区,从而使取指和数据访问各自使用自己的总线,并行不悖。 1、代码区 存放指令和数据,取指通过指令码(ICode)总线,数据访问借助数据码(DCode)总线。 2、片上SRAM 内部SRAM 区的大小是 512MB,用于让芯片制造商连接片上的 SRAM,这个区通过系统总线来访问。在这个区的下部,有一个 1MB 的区间,被称为“位带区”。该位带区还有一个对应的、 32MB 的“位带别名(alias)区”,容纳了 8M 个“位变量”(对比 8051 的只有 128 个位变量)。位带区对应的是最低的 1MB 地址范围,而位带别名区里面的每个字对应位带区的一个比特。位带操作只适用于数据访问,不适用于取指。通过位带的功能

多种单片机结构和原理讲解

给你一囗甜甜゛ 提交于 2019-12-14 07:32:55
89C51单片机结构框图 1、一个8位 的微处理器CPU。 2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。 3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。 4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。 5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制 6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。 7、片内振荡器和时钟产生电路:但需外接晶振和电容。 8、五个中断源的中断控制系统。 9、具有节电工作方式:休闲方式及掉电方式。 在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 μA以下,最小可降到06 μA。 结构 : 由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图所示: 下面介绍的是mcs-51 MCS

存储器总结

为君一笑 提交于 2019-12-14 03:30:10
关于SRAM、DRAM、SDRAM等这样的词条,比较容易混淆,通过查找资料做个总结。 首先看下面这张图: RAM(random access memory)随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 一、根据工作原理的不同,随机存储器又分为DRAM(Dynamic Random Access Memory)和SRAM(Static Random Access Memory)。 DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据 存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地进行刷新。 SRAM 表示静态态随机存取存储器。 因此只要供电它就会保持一个值。一般而言,SRAM 比DRAM要快,这是因为SRAM没有刷新周期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由一个晶体管和一个电容器组成。相比而言,DRAM比SRAM每个存储单元的成本要高。照此推理,可以断定在给定的固 定区域内DRAM的密度比SRAM 的密度要大。 SRAM常常用于高速缓冲存储器,因为它有更高的速率

STM32学习笔记(一)---基础知识

让人想犯罪 __ 提交于 2019-12-14 01:30:00
STM32学习笔记(一)—基础知识 知识点 1.所有芯片的引脚顺序都是逆序排列的 2.芯片主要由内核和片上外设组成。 3. volatile :在 C 语言中该关键字用于修饰易变的变量,要求编译器不要优化。 存储器映射 存储器本身不具有地址,给存储器分配地址的过程就称为 存储器映射 。 给存储器再分配一个地址的过程就叫做 存储器重映射 。 寄存器映射 设计片上外设时,以四个字节为一个单元,共32bit,每个单元对应不同的功能,我们控制这些单元就可以驱动外设工作。 根据每个单元的功能不同,以功能为名给这个内存单元起别名,这个别名就是寄存器。 给已经分配好地址的有特定功能的内存单元取别名的过程就叫做 寄存器映射 例子: GPIOF端口的输出数据寄存器ODR的内存地址为0x4002 1414(ODR寄存器32位,低16位有效,控制16个IO端口输出高低电平) 通过绝对地址访问内存单元: * ( unsigned int * ) 0x40021414 = 0xFFFF ; 通过寄存器方式访问内存单元 # define GPIOF_BASE 0x40021400 # define GPIOF_ODR (unsigned int *)(0x40021400 + 0x14) * GPIOF_ODR = 0xFFFF ; c语言封装寄存器 /* 外设基地址 */ # define PERIPH

pcie inbound、outbound及EP、RC间的互相訪问

这一生的挚爱 提交于 2019-12-13 15:38:54
Inbound:PCI域訪问存储器域 Outbound:存储器域訪问PCI域 RC訪问EP: RC存储器域->outbound->RC PCI域->EP PCI域->inbound->EP存储器域 EP訪问RC:EP存储器域->outbound->EP PCI域->RC PCI域->inbound->RC存储器域 Out即出去,发起訪问的一側,须要进行outbound,去訪问对端 In即进来,被訪问的一側,须要进行inbound,使得对端能够訪问 EP訪问RC演示样例(蓝色箭头): (1)首先,EP须要配置outbound,RC须要inbound(一般RC端不用配),这样就建立了EP端0x20000000到RC端0x50000000的映射 (2)在RC端改动0x50000000的内容,EP端能够看到对应的变化。从EP端读/写0x20000000和从RC端读/写0x50000000,结果是一样的 RC訪问EP演示样例(黑色箭头): (1)首先,RC端须要配置outbound(一般内核中配好),EP端须要inbound(0x5b000000 inbound到BAR2),这样就建立了RC端0x20100000(BAR2)到EP端0x5b000000的映射 (2)在EP端改动0x5b000000内存的内容,在RC端0x20100000能够看到对应的变化,从RC端读