ROM系统结构和分区解析
- 格式:doc
- 大小:33.50 KB
- 文档页数:3
半导体存储器结构及版图(ROM)
本篇主要涉及有关半导体存储器的存取方式及相应版图结构分析。
首先我们来看看一个最基本的ROM存储器的结构及其工作方式。
假设2根地址线,4根数据位,即A[1:0],D[3:0]。
A0,A1可以最多产生2^n种变化,这里的n为2即可产生4种组合记为W[3:0](如图)。
表格中列出了不同的地址信号产生的不同选择,比如A0=0,A1=0时,只有W3 =1,其余均为0。
也就是说,如果定义1 (高电平)选中那么A0A1=00时,W3被选中。
如上图所示,输出的数据即为D0=1,D1=1,D2=0,D3=0。
换句话说A0=0,A1=0就必然选中W3,所以完全可以用两个开关MOS来代替,如下图所示:
通常采用NMOS,就将开关MOS替换成NMOS接地,A0-A0反反接,A1-A1反反接即是。
不过实际的ROM电路并不是直接连获取得电位,而是ROM 的核心部分都是NMOS,BL线MOS源漏相连接地,WL控制gate以低电位选通(NMOS电位gate平时都是高电位,只有为低电位时才会阻断到地)。
考虑到R OM的扩展性,还会有片选SEL端控制一个区域是否选中。
把电路画成版图就会有一些形式上的变化,除了考虑到结构的规整,也会考虑到是否因为过于庞大造成寄生的增加,影响到读取的速度,因此也就出现如图所示的结构分布。
手机rom原理
手机ROM是只读存储器(Read-Only Memory)的简称,它是
手机内部的一种存储器芯片。
它的特点是可以一次性写入数据,但是无法擦除或重写。
手机ROM通常用于存储手机操作系统(如Android、iOS等)和预装的应用程序。
ROM的原理是通过一种特殊的制造工艺将数据写入到芯片中。
ROM芯片内部包含了一系列固定的电路和存储单元,每个存
储单元只能存储一个位(0或1)。
在制造ROM芯片时,厂
商根据需求预先编程,将特定的数据写入到芯片中。
与可擦写存储器(如闪存)不同,ROM芯片无法通过电信号
的激活来改变存储单元的状态。
这意味着一旦数据被写入
ROM芯片,就无法更改或者删除。
这是ROM的一大特点,
也是它应用于手机操作系统和预装应用的原因之一。
当手机通电时,ROM芯片中的数据会被加载到手机内存中,
供操作系统和应用程序使用。
此时手机的操作系统就能够被启动并正常运行。
由于ROM的数据无法被改变,因此操作系统
和预装应用程序的稳定性得到了保证。
总之,手机ROM是一种只读存储器芯片,用于存储操作系统
和预装应用程序。
它通过特殊的制造工艺将数据写入到芯片中,一旦写入后无法修改或删除。
这使得ROM在手机中起到了保
证操作系统和应用程序稳定性的重要作用。
7.2 只读存储器(ROM)1. ROM的结构ROM主要由地址译码器、存储矩阵和输出缓冲器三部分组成,其基本结构如图 7.2.1所示。
存储矩阵是存放信息的主体,它由许多存储单元排列组成。
每个存储单元存放一位二值代码(0 或 1),若干个存储单元组成一个“字”(也称一个信息单元)。
地址译码器有n条地址输入线A0~An-1,2n条译码输出线W0~W2n-1,每一条译码输出线Wi称为“字线”,它与存储矩阵中的一个“字”相对应。
因此,每当给定一组输入地址时,译码器只有一条输出字线Wi被选中,该字线可以在存储矩阵中找到一个相应的“字”,并将字中的m位信息Dm-1 ~ D0送至输出缓冲器。
读出Dm-1~D0的每条数据输出线Di也称为“位线”,每个字中信息的位数称为“字长” 。
ROM的存储单元可以用二极管构成,也可以用双极型三极管或MOS管构成。
存储器的容量用存储单元的数目来表示,写成“字数乘位数”的形式。
对于图 7.2.1 的存储矩阵有2n个字,每个字的字长为m,因此整个存储器的存储容量为2n×m位。
存储容量也习惯用K(1 K=1024)为单位来表示,例如1 K×4、2 K×8和64 K×1的存储器,其容量分别是1024×4 位、2048×8 位和65 536×1 位。
地址译码器的作用是将输入的地址代码译成相应的控制信号,利用这个控制信号从存储矩阵中把指定的单元选出,并把其中的数据送到输出缓冲器。
输出缓冲器的作用有两个,一是能提高存储器的带负载能力,二是实现对输出状态的三态控制,以便与系统的总线联接。
2. 二极管ROM电路图7.2.2是具有2位地址输入码和4位数据输出的ROM电路,它的存储单元使用二极管构成。
它的地址译码器有4个二极管与门组成。
2位地址代码A1A0能给出4个不同的地址。
地址译码器将这4个地址代码分别译成W0~W34根线上的高电平信号。
rom工作原理
ROM(只读存储器)是一种电子计算机存储器,其工作原理
是通过一个非常稳定的电容或磁态来存储数据。
与RAM(随
机存取存储器)不同,ROM的数据在电源关闭后仍然保持不变,因此被称为只读存储器。
ROM的数据是在制造时被编程的,编程过程在生产过程中进行。
数据被写入ROM后,将不能再进行修改或擦除。
这使得ROM对于存储不变的程序代码或固定数据非常有用。
ROM的电容或磁态的稳定性是实现其只读特性的关键。
数据
被存储在ROM的存储单元中,每个存储单元代表一个位(0
或1)。
当读取ROM时,电子设备会根据存储单元的状态将
其解释为相应的位。
这是通过向ROM施加电压或电磁信号来
实现的。
如果ROM存储单元的电容或磁态为高电平,则对应
的位为1;如果电容或磁态为低电平,则对应的位为0。
由于ROM是只读的,因此它在计算机系统中用于存储固化的
程序代码和初始设置数据,例如启动程序和基本输入/输出系
统(BIOS)。
ROM有多种类型,包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)。
这
些不同类型的ROM具有不同的特性和数据写入/擦除机制,
但它们都遵循了ROM的基本工作原理。
内部的ROM与外部RAM的空间分配8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。
这种程序存储和数据存储分开的结构形式被称为哈佛结构。
MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。
所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。
而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU 寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。
图1MCS-51单片机存储器的配置特点①内部集成了4K的程序存储器ROM;②内部具有256B的数据存储器RAM(用户空间+SFR空间);③可以外接64K的程序存储器ROM和数据存储器RAM。
从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
从逻辑结构上看(既编程的角度),可以分为三个不同的空间:(1)片内、片外统一编址的64KB的程序存储器地址空间:0000H~FFFFH(用16位地址);,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM 地址空间;(2)256B的内部数据存储器地址空间(用8位地址),00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间(用16位地址):0000H~FFFFH,包括扩展I/O地址空间。
上述4个存储空间地址是重叠的,如图1所示。
8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。
关于安卓系统的RAM、ROM、可用空间位置:1、RAM是集成到CPU上的;2、ROM是集成到CPU上的,和RAM一样;3、所谓的“可用空间”,是集成在手机电路板上的闪存,相当于焊接在手机电路板上的存储卡;4、TF卡、SD卡是外接的,不用多说。
功能:1、RAM相当于电脑的内存条,存放运行数据,断电即消失;2、ROM相当于电脑的C盘,或者严谨一点,相当于电脑的硬盘,只是没分区而已,ROM里面分为“系统分区”和“用户分区”,只有“系统分区”相当于C 盘,但是也只是相当于;“用户分区”可以像电脑里的D、E、F盘里一样使用。
【注】:现在ROM通常都是电可擦写ROM了,意味着可读可写。
3、所谓的“可用空间”,是集成上去的闪存,相当于电脑硬盘。
4、至于外置的存储卡,如SD卡、TF卡,就相当于移动硬盘了。
【注】:(闪存指各种存储卡(包括SD、TF)和U盘,是电可擦写ROM的变种,读写速度比电可擦写ROM快,断电数据保留)安装:1、安装软件除非只能安装在ROM里,否则建议都安装到“可用空间”或者外接存储卡里。
例如,手机ROM为512M,机身“可用空间”为16G(当然实际可用的没有这么多),安装软件是装在512M里还是16G里,在安装的时候是可以选择的。
【注】:(现在的手机的ROM也用的是闪存了,意思就是说512M的ROM与16G的“可用空间”的存储介质类型是一样的,只不过两者的位置不同而已)2、如果将程序安装到所谓的“可用空间”中;例如,某些大型3D游戏,它们都是由一个XXXX.apk安装过后所产生的“游戏程序客户端”+“游戏的数据包”组成,游戏程序还是会占用ROM,数据包则占用的是所谓的“可用空间”。
【注】:(游戏包是进入游戏程序后提示你用wifi或3G下载,这个有几十到几百兆不等建议用wifi)3、如果将程序安装到SD卡中;每次安装一个程序或者游戏,即便你安装到了SD卡中,但你的ROM空间依然还是会被占用一部分,即便你使用了APP2SD类的软件将各类应用程序安装到了SD卡中,其实程序的系统数据还是写在了ROM中,SD卡相当于只是存放多媒体类的资料,如游戏的数据文件。
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。
ROM在系统停止供电的时候仍然可以保持数据,而RAM 通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
---------------------------------------------------------------------------------------------ROMROM指的是“只读存储器”,即Read-Only Memory。
这是一种线路最简单半导体电路,通过掩模工艺,一次性制造,其中的代码与数据将永久保存,不能进行修改。
在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。
如果发现内部数据有错,则只有舍弃不用,重新订做一份。
PROMPROM指的是“可编程只读存储器”既Programmable Red-Only Memory。
这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。
PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0(部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1),以实现对其“编程”的目的。
PROM的典型产品是“双极性熔丝结构”,如果我们想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝即可熔断,这样就达到了改写某些位的效果。
另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。
PROM一旦写入后无法修改,若是出了错误,已写入的芯片只能报废。
EPROMEPROM指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。
安卓系统一般把rom芯片分成7个区,如果再加上内置sd卡这个分区,就是8个:hboot分区----------负责启动。
radio分区----------负责驱动。
recovery分区-------负责恢复。
boot分区-----------系统内核。
system分区---------系统文件。
cache分区----------系统缓存。
userdata分区-------用户数据。
所谓ROM芯片就是断电后不丢失数据的芯片,可以用来储存数据。
需要注意的是,前6个区的容量在系统信息里面是看不出来的,我们看到的rom总容量,其实就是第7个区userdate区的大小,这个区主要装一些软件,是用户可以使用的分区。
这个分区的大小直接影响到安装软件的数量。
也就是说userdate区就是我们常说的“可用rom”在安卓里,虽然软件可以安装到卡中,但是一些系统软件最好还是安装到userdata分区,否则会出现加载的一些小问题,比如使用的桌面软件和一些在桌面上显示插件的软件。
并且就算你把软件都装到卡里,userdata分区还是会不断减小。
就像在电脑里,就算你把软件装到D盘,仍然会在c盘生成一些系统文件,占掉c盘空间一样。
一般手机参数里面写的1G ROM 或2G ROM ,2G的ROM用来装软件的分区一般也就几百MB,1G的也就100多MB 。
而上面写着自带8GB,16GB的,用来装系统的,就是前7个分区一般是2G到4G。
所以用来装软件的分区比较大。
因为手机自带ROM芯片比SD卡读取速度快,所以这类ROM大的机器就比ROM小的机器更有优势。
手机自带的软件一般是在SYSTEM分区里面,所以一般情况下删除不了,需要ROOT权限才能删除。
删除手机自带的无用软件可以增大SYSTEM分区的剩余容量,从而提高系统的运行速度。
META-INF
这里面主要是卡刷包的签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。
system
这里面就是android的系统部分
app这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。
还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。
bin这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。
简单来说,apk 是JAVA程序,而这个是C/C++的程序。
etc这里面存放的是系统默认的配置文件,GPS的配置也在这里
fonts这个是字体文件夹,一般很少改动,除非要做美化
framework这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM 的话,主要改framework-res.apk就可以了。
当然,MIUI本身就有主题机制了,不用这么麻烦去改。
这个文件夹里也会有对应的odex文件。
lib一些通过的类库,一般是由app/bin里面的程序调用的。
media媒体文件,要添加系统默认的铃声就在这里了。
如果是别的ROM的话,壁纸也会放在这里面。
usr这个文件夹我不知道如何解释,移植时,键盘布局文件就在这里面
xbin扩展命令文件夹,一般不动它,有一些ROM可能直接用busybox来替代了。
build.prop这个文件也类似于一个配置文件,它主是描述了这个ROM的版本,对应的机型名称,还会有部分的硬件配置,移植的时候我们也会要修改这个文件。
boot.img系统核心,其实就是Linux内核部分,这个img也是可以解开来定制的,但我没有试过。
如果你喜欢新的核心的话,可以将这个文件替换,不过要兼容才行。
Boot 分区:
当按下电源键开机时,手机会进入正常启动模式。
Secondarystage bootloader 会从 boot 分区开始启动。
Boot 分区的格式是固定的,首先是一个头部,然后是Linux 内核,最后是用作根文件系统的ramdisk。
当 Linux 内核启动完毕后,就开始执行执行根文件系统中的 init 程序,init 程序会读取启动脚本文件(init.rc 和init.xxxx.rc)。
根文件系统中有一个重要的配置文件,叫default.prop,该文件的内容一般为:
ro.secure=1
ro.allow.mock.location=1
ro.debuggable=0
persist.service.adb.enable=1
这里大家需要注意的两属性ro.secure 和 ro.debuggable,如果ro.secure=0则允许我们运行 adb root 命令,通常大家说说内核 ROOT 指是就是 ro.secure=0。
而一般所说的 ROOT 权限指的是手机上有一个名为授权管理的程序 (Superuser.apk)可以授予程序 root 用户的权限。
System 分区:
System/app:app 目录下存放的是核心应用,也就是大家熟知的系统APP,这些系统自带的程序是不能简单的卸载的,要通过特殊的方式才能删除(大家熟悉的是ROOT后用RE 文件管理器来精简系统,达到纯净,流畅的效果)。
System/lib:lib 目录下存放的线 JNI 层,Dalvik 虚拟机,本地库, HAL 层和厂家适配层的所有动态链接库(.so 文件)。
System/framework:该目录下存放的是框架层的 JAR 包,其中系统最重要的JAR包(framework.jar,android.policy.jar,services.jar)。
System/fonts:该目录下存放的是系统缺省的字体文件。
System/media:该目录下存放是是系统所使用的各种媒体文件,比如说开机音乐,动画,丌同机型略有丌同。
System/bin:该目录下存放的是一些可执行文件,基本上是由 C/C++编写的。
System/xbin:该目录下存放的是一些扩展的可执行文件,既该目录可以为空。
大家常用的busybox 就放在该目录下。
Busybox 所建立的各种符号链接命令都是放在该目录。
System/build.prop:build.prop 和根文件系统中的 default.prop 文件格式一样,都称为属性配置文件。
它们都定义了一些属性值,代码可以读取戒者修改这些属性值。
属性值有一些命名规范:ro 开头的表示只读属性,即这些属性的值代码是无法修改的。
Persist 开头的表示这些属性值会保存在文件中,这样重新启动乊后这些值还保留。
很多ROM 制作都会修改一下build.prop 信息,ro.build 开头的属性就是手机设置关于手机看到的,修改这个属性就在ROM 打上自己印记,比如某某修改。
Ro.build.display.id=后面就是版本号
System/etc:该目录存放一些配置文件,和属性配置文件丌一样,这下面的配置文件可能稍微没那么的有规律,一般来说,一些脚本程序,还有大家所熟悉GPS 配置文件(gps.conf)和 APN 配置文件(apns-conf.xml)放在这个目录。
System/media/bootanimation.zip这就是我们手机开机的第二屏,相应于WINDOW开机画图。
(注:开机第一屏,就相当于电脑系统的BIOS,这个也可以更改,但是不同厂商的路径和定义方法会不同。
)
其实ROM的机构不仅仅是这几个文件夹和文件,还包括一个叫data的文件夹。
这个data文件夹下也有一个app文件夹。
这个文件夹是干什么的,前提这里要告诉大家的是system/app文件夹的程序,一旦我们刷进手机,就不能删除了。
而data\app文件夹下的程序刷机后,我们可以在手机上卸载。
这就是为什么有些ROM在介绍里说:自带XX软件,可以卸载。
Date 和 cacher 分区:
当开机进入桌面程序后,一般来说我们都会下载安装一些 APP,这些 APP 都安装在
data/app 目录下,所有的 android 程序生成的数据基本上都保存在 data/data 目录下。
Wipe data 实质上就是格式化 data 分区,这样我们安装的所有 APP 和程序数据都丢失了。
Cache 分区从名字上来看是用来缓存一些文件的,比如说一些音乐下载的临时文件,戒者下载管理下载的内容基本上放在这个分区。