当前位置:文档之家› NAND FLASH原理与实验

NAND FLASH原理与实验

NAND FLASH原理与实验
NAND FLASH原理与实验

NAND FLASH原理与实验2012-10-17 12:32:02

分类:

原文地址:NAND FLASH原理与实验作者:wangh0802

常用的FLASH主要有NOR FLASH和NAND FLASH两种:

NAND FLASH不能执行代码,主要用于存储大量数据;具有极高的单元密度,可以达到高存储密度,并且写入和檫除速度也很快;应用困难在于FLASH的管理需要特殊的系统接口。

NOR FLASH中的数据掉电不会丢失,而且可以执行程序,常用于存储系统的启动代码;特点是芯片内执行(XIP),应用程序可以直接在NOR FLASH内运行,不需要再把代码读到系统RAM中。很低的写入和檫除速度大大影响了它的性能。

为什么NAND FLASH无法执行程序呢?这主要是由于NAND FLASH的接口主要包括几个I/O口,对其中数据的访问是穿行的访问,无法实现随机访问,因此NAND FLASH无法执行程序。

因为NAND FLASH接口电路是通过NAND FLASH控制器与S3C2440处理器相接的,因为读者不需要关心具体的访问时序,之所以提供NAND FLASH控制器就是为了便于使用NAND FLASH。如果没有NAND FLASH控制器,则需要产生相应的访问时序。

NAND FLASH的存储器组成主要有两部分:页(Page)、块(BIock)。以K9F2G08U0B为例:

每页大小为:2K 64字节,2K字节用来存储数据,64字节主要用来存储控制信息,主要是为了便于管理每一页。

每块大小为:64个页;整个NAND FLASH由2K(2048)个块组成(128KPages)。

从数据输出可以看到K9F2G08U0B的容量是256MBytes*8Bit,怎么算出来的呢?

NAND FLASH容量=块的数目*每块的容量

=块的数目*(每块包含页的数目*每页的容量)

=2K块*(64页*(2KBytes 64Bytes))

=2K块*64页*2KBytes 2K块*64页*64Bytes

=256MBytes 8MBytes(256MBytes表示该NAND FLASH 可以存储256M个字节数据,后面的8M字节的数据主要用于保存每一页的控制信息)

1K(Bytes)=1024字节,1M(Bytes)=1K(Bytes)*1K(Bytes);

NAND FLASH接口电路:

S3C2440处理器内部已经集成了NAND FLASH控制器,因此,接口电路将变得很简单,只需要将S3C2440处理器对应引脚和NAND FLASH的对应引脚接上即可。

但是不同的NAND FLASH的容量不一样,接口线宽不一样,S3C2440处理器如何获得这些信息呢?先对NAND FLASH控制器的作用进行简单的总结:

1.提供外接NAND FLASH的接口信息,包括接口线宽、容量等信息。

2.提供访问NAND FLASH所需要的时序信息。

S3C2440处理器提供了如下方法来识别NAND FLASH接口线宽和容量,OM[1:0]、NCON、GPG13、GPG14和GPG15共5个信号来选择NAND FLASH 启动。

OM[1:0]:当两个引脚均为低电平是,从NAND FLASH启动。

NCON:NAND FLASH的类型选择信号。0、正常型NAND FLASH;1、高级型NAND FLASH;

GPG13:NAND FLASH页容量选择信号。0、256Word(NCON=0)或

1KWords(NCON=1);

1、512Bytes(NCON=0)或

2KBytes(NCON=1);

GPG14:NAND FLASH地址周期选择。0、3地址周期(NCON=0)或4地址周期(NCON=1)。

1、4地址周期(NCON=0)或5地址周期(NCON=1)。

GPG15:NAND FLASH接口线宽选择。0、8位总线宽度。1、16位总线宽度。

如何访问NAND FLASH?

发送命令,即对NAND FLASH采取哪种操作,读,写还是擦除;

发送地址,即对NAND FLASH的哪一页进行上述操作;

发送数据,在此期间要检测NAND FLASH的内部状态。

NAND FLASH内部的地址如何确定呢?从对应数据手册上可以找到有关地址序列的信息:

所谓的列地址即在一页中的地址,因为每页大小是2K 64Bytes,所以需要12根地址线来寻址,也即A0~A11,整个NAND FLASH包含128K 个页面,则需要17跟地址线来寻址一个页面,即A12~A28,这也就是所谓的行地址。

S3C2440 NAND FLASH控制器,初始化只需要根据K9F2G08U0B数据手册给出的时序参数,正确初始化S3C2440处理器相关的寄存器即可。1.配置GPACON寄存器,将GPA17~GPA22设置为NAND FLASH控制器信号模式。2.配置NAND FLASH,主要是初始化寄存器NFCONF.

A.寄存器NFCONT,用于开启NAND FLASH控制器。

B.向寄存器NFCMD写入命令。向NAND FLASH发送命令,只需要将命令写入该寄存器即可,NAND FLASH控制器会根据上述参数自动产生出访问NAND FLASH所需要的命令信号。

C.向NAND FLASH发送命令:#define NF_CMD

(cmd) {rNFCMD=(cmd);}

D.向寄存器NFADDR写入地址:#define

NF_ADDR(addr) {rNFADDR=(addr);}

E.使用寄存器NFDATA进行数据读写,在此期间需要检查NFSTAT来检测NAND FLASH的状态。

F.寄存器NFSTAT,用于指示NAND FLASH是否处于忙状态。

#define NF_DETECT_RB() {while(!(rNFSTAT&(1<<2)));}

使用宏代替简单的函数:

在程序开发过程中,经常将一个很大的工程分解为几个小的模块,每个模块使用单独的函数来实现,最后在工程中通过对各个模块函数的调用来实现整个工程所完成的功能,这也是典型的模块化开发技巧。但是,项目中调用关系复杂,尤其是存在多级函数调用时,需要将每一级的返回地址保存在栈中,容易导致溢出,此外函数调用开销也会增大。

为了更好地解决上述问题,一般使用宏的形式来实现规模较小的函数。因为宏调用是预处理阶段,由预处理器对源程序中的宏进行展开,所以宏展开不占用运行时间。因为每一次宏调用都需要进行宏展开,所以会加大程序的代码量,因此规模较大的函数不宜使用宏的形式来实现。

#define rNFCONT (*(volatile unsigned *)0x4E000004) 等等

具体操作函数:

#define NF_Enable() {rNFCONT &=~(1<<1);}

#define NF_Disable() {rNFCONT |=~(1<<1);}

#define NF_Send_Cmd(cmd) {rNFCONT =(cmd);}

#define NF_Send_Addr(addr) {rNFADDR =(addr);}

#define NF_Send_Data(data) {rNFDATA8 =(data);}

#define NF_Enable_RB() {rNFSTAT|=(1<<2);}开启忙检测功能

#define NF_Check_Busy() {while(!(rNFSTAT&(1<<2)));}检测NAND FLASH是否处于忙状态。

#define NF_Read_Byte() {rNFDATA8}

NAND FLASH基本操作函数分析:其中包括复位,初始化,页写入,页读入,快擦除等操作函数。(一般使用命令,是将所有的命令以宏的形式定义好,以后使用的时候直接使用相应的宏即可)

NAND FLASH复位函数:

1.static void NF_Reset()

2.{

3. NF_Enable();//打开片选信号

4. NF_Enable_RB();//开启忙信号检测

5. NF_Send_Cmd(CMD_RESET);//发送复位命令

6. NF_Check_Busy();//检测忙信号

7. NF_Disable();//关闭片选信号

8.}

NAND FLASH初始化函数:将相应的时序参数写入NAND FLASH控制器即可。分析TACLS、TWRPH0、TWRPH1的值。需要分别与芯片时间对应关系。tCLS-tWP、tWP、tCLH对应。

查对应芯片手册:tCLS=12ns、tWP=12ns、tCLH=5ns(参考值,实际可长),则TACLS=1、TWRPH1=4、TWRPH1=0.

1.#define TACLS 1

2.#define TWRPH0 4

3.#define TWRPH1 0

4.void NF_Init(void)

5.{

6. rGPACON &=~(0X3f<<17);

7. rGPACON |=(0X3F<<17);//GPA17~GPA22设置为NAN

D FLASH控制器信号输出模式;

8. rNFCONF =(TACLS<<12)|(TWRPH0<<8)|(TWRPH1<<

4);//三参数写入NFCON的相应位

9. rNFCONT =(0<<12)|(1<<0);

10. rNFSTAT = 0;

11. NF_Reset();

12.}

NAND FLASH页写入函数:NAND FLASH主要用于大量数据段的存取,因此向NAND FLASH写入数据是以页为单位的。当然,有些类型的NAND FLASH也支持一个字节一个字节的写入(这就是所谓的随即读写,

K9F2G08U0B就支持单字节写入)。NAND FLASH页写入函数的功能是向某一页写入数据。由不同得快组成(2048块),每块含64页,因此,要想写入某一页,首先需要确定该页属于哪一块。即向某一页写入数据,就像给某一层楼的所有用户送快递,首先要找到哪栋楼,然后在确定那层楼。

NAND FLASH页写入命令有两个,分别是0x80和0x10。页写入操作的流程为:

(1)发送页写入命令0x80.

(2)发送页地址。

(3)发送要写入的数据。

(4)发送页写入确认命令0x10。

(5)检测忙信号。

当发送页写入确认命令0x10之前,并没有将数据写入NAND FLASH 的存储单元,仅仅是将数据写入了NAND FLASH是数据寄存器(Data Register &S/A)里,只有收到页写入确认命令0x10后,NAND FLASH 才会自动将数据寄存器中的数据写入对应的存储单元中(这样做的主要

目的是为了降低页写入的时间),同时这也需要一段时间,因此在发送完页写入确认命令后0x10之后,需要不断地检测忙信号,只有NAND FLASH真正写完数据后,才能对其进行后续的操作。

函数NF_WritePage(),该函数有三个参数,第1个是块号,第2个是在快内的页好=号,第3个是一个指针,指向将要写入的数据的基地址。

可以使用如下方式调用:

unsigned char buf[2048];

NF_WritePage(17,4,buf);即将buf中的数据写入到NAND flash的第17块中的第4页。需要注意一个问题:向地址寄存器中写入的地址指的是NAND FLASH中的页的绝对地址,即该页距离第0页的绝对地址。

由于NAND FLASH中含有的页数目太多,为了便于管理,才使用的块的概念,把整个NAND FLASH分成了2K个块,每块有64页。因此,上例中第17块中的第4页的绝地地址为:17*64+4=1092页

点击(此处)折叠或打开

1.void NF_WritePage(unsigned int block,unsigne

d int page,unsigned char *buffer)

2.{

3. unsigned int i;

4. unsigned int blockPage=(block<<6)+page;//左

移6位就相当于乘以了64

5. unsigned char *bufPt=buffer;

6. NF_Reset(); //复位NAND FLASH

7. NF_Enable(); //然后打开NAND FLASH

8. NF_Enable_RB();//开启RnB监视模式,开启忙信号检

测功能。

9.

10. NF_Send_Cmd(CMD_WRITE1);/*写第一条命令,发送

页写入命令*/

11. NF_Send_Addr(0x00);//整页写入的话列地址设为0即

可;发送页的绝对地址,发了5次

12. NF_Send_Addr(0x00);//原因在于NAND FLASH的接

口电路,地址线和数据线复用的,接口位宽8位,因此每次只能发送一个字节,又因为NAND FLASH的地址是28位的(NAND FLASH地址周期表),需要5个地址周期才能将地址发送完毕,发送完毕后,N AND FLASH内部地址译码电路会自动将收到的地址进行组合,不需要读者关心,但是需要注意发送的顺序,按照先发送低地址,在发送高地址的顺序发送。

13. NF_Send_Addr((blockPage)& 0xff);

14. NF_Send_Addr((blockPage >> 8)& 0xff);

15. NF_Send_Addr((blockPage >> 16)& 0x1);//以

上都是根据NAND FLASH的地址周期进行操作的。地址的低12位用于页内寻址,这是对整页进行写入,因此,低12为设为0即可(每页2K,12位),剩下的才是绝对地址。

16.for(i=0;i<2048;i++)

17.{

18. NF_Send_Data(*bufPt++);/*写一个页512字节

到Nand Flash芯片*/

19.}//for将2K的数据发送给NAND FLASH,发送的数据是

一个字节一个字节地发送,只需要将数据写入数据寄存器,NAND FL ASH控制器会自动发送。

20. NF_Send_Cmd(CMD_WRITE2);//发送完毕后,发送页写

入确认命令。

21. NF_Check_Busy(); //忙检测信号,等待NAND FLASH

将所有数据写入完毕,在此期间无法对NAND FLASH进行其他操作。

22. NF_Disable();//关闭片选信号

23.}

24.}

NAND FLASH页读取函数:页读取操作也需要两个命令:页读取发送命令0x00和页读取确认命令0x30。基本原理:当发送页读取发送命令0x00后,需要紧接着发送需要读取的页的绝地地址,然后发送页读取确认命令0x30,NAND FLASH收到第2个命令0x30后,自动将数据从内部存储单元复制到NAND FLASH的数据寄存器(Data Register &S/A)里,在此期间需要忙检测信号(如果忙信号有效,说明NAND FLASH存储单元中的数据还没有全部复制到数据寄存器),数据复制完毕后,可以通过读取S3C2440内部的特殊功能寄存器NFDATA来得到所需要的数据。

NAND FLASH页读取命令有两个,分别是0x00和0x30,也读取操作流程为:

(1)发送也读取发起命令0x00。

(2)发送页地址,

(3)发送也读取确认命令0x30

(4)检测忙信号。

(5)从S3C2440处理器寄存器NFDATA中读取数据。

点击(此处)折叠或打开

1.void NF_ReadPage(unsigned int block,unsigned i

nt page, unsigned char * dstaddr)//这段程序用于,Nand Flash每页大小是2048个字节

2.{

3. unsigned int i;//这里没有用到ECC校验;

只是简单的读取数据

4. unsigned int blockPage =(block<<6)+pag

e;//这里的addr实际上就是页号

5. NF_Reset

();

6. NF_Enable();

7. NF_Enable_RB();//5~7复位NAND FLASH,然后打开

NAND FLASH(在复位结束后关闭了NAND FLASH,因此需要重新打开),同时开启忙信号检测功能,以后就可以对NAND FLASH进行操作,然后通过检测忙信号来获取NAND FLASH内部的工作状态。

8. NF_Send_Cmd(CMD_READ1);//CMD_READ1

= 0x00

9.

10. NF_Send_Addr(0x00);

11. NF_Send_Addr(0x00);

12. NF_Send_Addr((blockPage)& 0xff);

13. NF_Send_Addr((blockPage >> 8)& 0xff);

14. NF_Send_Addr((blockPage >> 16)& 0x1);//以

上11~15发送绝对地址

15.

16. NF_Send_Cmd(CMD_READ2);//CMD_READ12= 0x30

//发送页读取确认命令0x30

17.

18. NF_Check_Busy(); //检测忙信号等待NAND

FLASH将内部存储单元中的数据复制到数据寄存器中。

19.

20.for(i = 0; i < 2048; i++)

21.{

22. dstaddr[i]= NF_Read_Byte();//读取,从N

FDATA寄存器读取数据即可。

23.}

24.

25. NF_Disable(); //读完后关闭片选信号

26.

27.}

NAND FLASH块擦除函数:对NAND FLASH写之前,需要先进行擦除,这是由NAND FLASH自身的存储器结构决定的。对于某一存储单元来说,只能向该单元写0,无法向其写1.所谓擦除是将所有的存储单元全部写为1,然后在对其进行写操作,0可以写入,1虽然无法写入,但是由于擦除时该存储单元已经为1,所以该存储单元保留1.因此,利用擦除操作达到间接地向存储单元写1的目的。

擦除操作是以块为单位进行的,无法对一页进行擦除操作。基本原理:发出块擦除发起命令0x60后,需要发送三个地址周期的块地址(注意,因为快地址只使用了A12~A28,所以需要三个地址周期),最后发送块擦除确认命令(D0H),NAND FLASH接收到块擦除确认命令后会启动内部的擦除过程。可以通过检测忙信号来确定擦除是否完成。

每个页面大小是2K+64Bytes,因此,页内地址使用A0~A11来寻址;

每一块包含64页,因此,使用地址A12~A17来寻址,整个NAND FLASH 包含2K个块,所以使用A18~A28来寻址。

快擦除操作需要两个命令:块擦除发起命令0x60和块擦除确认命令0xD0。快擦除操作的流程为:

(1)快擦除发起命令0x60

(2)发送块地址。

(3)块擦除确认命令0xD0

(4) 检测忙信号。

点击(此处)折叠或打开

1.int NF_EraseBlock(unsigned int block)

2.{

3. unsigned int blocknum=(block<<6);//将块号左

移6位

4. NF_Reset();

5. NF_Enable();

6. NF_Enable_RB();

7.

8. NF_Send_Cmd(CMD_ERASE1);

9. NF_Send_Addr( blocknum & 0xff);

10. NF_Send_Addr((blocknum>>8)& 0xff);

11. NF_Send_Addr((blocknum>>16)& 0xff);

12. NF_Send_Cmd(CMD_ERASE2);

13. NF_Check_Busy();

14. NF_Disable();

15. return 1 ;

16.}

NAND Flash中文版资料

NAND Flash 存储器 和 使用ELNEC编程器烧录NAND Flash 技术应用文档 Summer 翻译整理 深圳市浦洛电子科技有限公司 August 2006

目录 一. 简介 ----------------------------------------------------------------------------------- 1 二. NAND Flash与NOR Flash的区别 -------------------------------------------- 1 三. NAND Flash存储器结构描叙 --------------------------------------------------- 4 四. 备用单元结构描叙 ---------------------------------------------------------------- 6 五. Skip Block method(跳过坏块方式) ------------------------------------------ 8 六. Reserved Block Area method(保留块区域方式)----------------------------- 9 七. Error Checking and Correction(错误检测和纠正)-------------------------- 10 八. 文件系统 ------------------------------------------------------------------------------10 九. 使用ELNEC系列编程器烧录NAND Flash -------------------------------- 10 十. Invalid Block Management drop-down menu -------------------------------- 12 十一. User Area Settings3 -------------------------------------------------------- 13 十二. Solid Area Settings --------------------------------------------------------- 15 十三. Quick Program Check-box ---------------------------------------------- 16 十四. Reserved Block Area Options --------------------------------------------17 十五. Spare Area Usage drop-down menu ------------------------------------18

数据库原理与技术实验报告

南华大学计算机科学与技术学院 实验报告 ( 2011 ~2012 学年度第二学期) 课程名称数据库原理与技术实验名称数据库实验 姓名谢志兴学号20104030342 专业电气信息类班级1003班 地点8—209教师刘征海

实验 1 认识DBMS

一、利用管理工具创建数据库、表和表间关系 (一)实验目的和注意事项 实验目的:熟悉SQL Server Management Studio的基本操作,进一步理解数据库、表、表间关系的概念。 注意事项:创建数据库和数据表时应认真,如果出现错误,应相应地修改结构或删除。 (二)实验内容 (1) 利用SQL Server Management Studio 创建数据库,名称为【学生选课XXXX】。XXXX为各位同学的学号中的最后四位 (2) 在【学生选课XXXX】中建立数据表,表的定义如下所示。 学生XXXX(学号,姓名,性别,出生日期,院系名称,备注); 课程XXXX(课程号,课程名,选修课,学分); 选修XXXX(学号,课程号,分数)。 要求定义每张表的主码,为属性选择合适的数据类型,决定是否允 许为空,为【性别】和【学分】属性定义默认值。 (3) 定义表之间的关系。 (4) 分别为表录入几行数据记录,同时练习数据的修改和删除操作。 (三)实验步骤 (1) SQL Server Management Studio,连接数据库服务器,进入SQL Server Management Studio 主界面。 (2) 右击【对象资源管理器】|【数据库】,选 择快捷菜单中的【新建数据库】命令,弹出【新建数据库】窗口,在各属 性页中设置新建数据库的属性,包括设置数据库逻辑名、所有者、文件 的逻辑名、文件的物理名、文件类型、文件增长方式、文件的路径、文 件组等属性,如图下所示。

数据库原理实验报告

南京晓庄学院 《数据库原理与应用》 课程实验报告 实验一SQL Server 2005常用服务与实用工具实验 所在院(系):数学与信息技术学院 班级:14软工5班 学号:14551204 14551206 姓名:花元凯罗文波 1.实验目的 (1)了解Microsoft 关系数据库管理系统SQL Server的发展历史及其特性。 (2)了解SQL Server 2005的主要组件、常用服务和系统配置。 (3)掌握Microsoft SQL Server Management Studio 图形环境的基本操作方法。了解使用“SQL Server 2005 联机从书”获取帮助信息的方法;了解“查询编辑器”的使用方法;了解模板的使用方法。 2.实验要求 (1)收集整理Microsoft关系数据库管理系统SQL Server的相关资料,总结其发展历史及SQL Server 2005主要版本类别和主要功能特性。 (2)使用SQL Server配置管理器查看和管理SQL Server 2005服务。 (3)使用Microsoft SQL Server Management Studio连接数据库;使用SQL Server帮助系统获得 所感兴趣的相关产品主题/技术文档。

(4)使用Microsoft SQL Server Management Studio“查询编辑器”编辑并执行Transact-SQL查 询语句。 (5)查看Microsoft SQL Server 2005模板,了解模板的使用方法。 (6)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 (1) 简要总结SQL Server系统发展历史及SQL Server 2005主要版本类别与主要功能特性。 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。目前最新版本是SQL SERVER 2014。 1,SQL Server 2005学习版当保护和管理应用系统内外部的信息变得至关重要时,通过提供一套免费、易于使用和健壮的数据库,学习版帮助开发人员建立强健的和可靠的应用系统。

NOR-FLASH驱动文档(SST39VF1601)

NOR-FLASH驱动文档(SST39VF1601)2012-03-30 00:57:33 NOR-FLASH是最早出现的Flash Memory,目前仍是多数供应商支持的技术架 构.NOR-FLASH在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,但是由于NOR-FLASH只支持块擦除,其擦除和编程速度较慢,而块尺寸又较大,导致擦除和编程操作所花费的时间很长,所以在纯数据存储和文件存储的应用中显得力不从心. NOR-FLASH的特点是: 1. 程序和数据可存放在同一芯片上,FLASH芯片拥有独立的数据总线和地址总线,能快速随 机读取,并且允许系统直接从Flash中读取代码执行,而无需先将代码下载至RAM中再执行; 2. 可以单字节或单字读取,但不能单字节擦除,必须以部分或块为单位或对整片执行擦除操 作,在执行写操作之前,必需先根据需要对部分,块或整片进行擦除,然后才能写入数据。 以SST系列NOR-FLASH芯片为例介绍FLASH的使用方法及驱动. 首先,在驱动的头文件中,要根据芯片的具体情况和项目的要求作如下定义: 1. 定义操作的单位,如 typedef unsigned char BYTE; // BYTE is 8-bit in length typedef unsigned short int WORD; // WORD is 16-bit in length typedef unsigned long int Uint32; // Uint32 is 32-bit in length 在这里地址多是32位的,芯片写操作的最小数据单位为WORD,定义为16位,芯片读操作的最小数据单位是BYTE,定义为8位. 2. 因为芯片分为16位和32位的,所以对芯片的命令操作也分为16位操作和32位操作(命令 操作在介绍具体的读写过程中将详细介绍). #ifdef GE01 /*宏NorFlash_32Bit,若定义了为32位NorFlash,否则为16位NorFlash*/ #define NorFlash_32Bit #endif 3. 根据芯片的情况,定义部分(段)和块的大小. #define SECTOR_SIZE 2048 // Must be 2048 words for 39VF160X #define BLOCK_SIZE 32768 // Must be 32K words for 39VF160X

数据库理论与技术实验报告六

数据库理论与技术课程实验报告 学院:电子与信息工程学院专业:计算机科学与技术年级:计科 实验时间: 2012年4月26日 组长:学号:组_______ 姓名:学号:组_______ 姓名:学号:组_______ 姓名:学号:组_______ 指导教师签字:成绩: 实验六、视图、存储过程和触发器实验 一、实验目的和要求 1、实验目的:理解视图的概念和相关命令,并掌握视图相关的SQL语句;理解存储过程的概念和相关命令,并掌握存储过程相关的SQL语句;理解触发器的概念和相关命令,并掌握触发器相关的SQL语句 2、实验要求:掌握视图存储过程和触发器的使用 二、实验内容与步骤 1、利用数据库jxgl完成实现下列查询的视图。(在SQL SERVER2005上附加数据库jxgl),并运行该视图。 安装好的SQL Server2005没有用户数据库,如果磁盘上有数据库文件,可以将其附加到数据库服务器中。 (1)创建视图,实现查询03物流1班学生的详细信息 (2)创建视图,实现查询“入学成绩”在350到400分之间的学生的姓名和班级(3)创建视图,实现查询students表中现有的班级 (4)创建视图,实现查询具有“教授”或“副教授”职称的教师的教师编号和姓名(5)创建视图,实现查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩。 (6)创建视图,实现查询课程名称中包含“DB_”的课程的信息

(7)创建视图,实现查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号 (8)创建视图,实现查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列 (9)创建存储过程,实现统计03物流1班学生“入学成绩”的平均分、最高分、最低分 (10)创建存储过程,实现统计各个班级的学生人数,按统计结果做降序排列(11)创建存储过程,实现统计各部门教师的人数,筛选出教师人数在指定人数(参数)以上的部门 (12)创建储存过程,实现查询平均分在指定分数(参数)以上的课程编号 2、将上述查询以存储过程实现,并在后面写出运行该存储过程的语句。 注意:在实验报告中说明查询的目的和对应的语句。 三、实验过程及数据记录 (1)创建视图,实现查询03物流1班学生的详细信息 create view v1 as select * from Students where class='03物流1' select * //查询视图v1 from v1 (2)创建视图,实现查询“入学成绩”在350到400分之间的学生的姓名和班级create view v2 as select sname,class from Students where mgrade between 350 and 400 select * //查询视图v2 from v2 (3)创建视图,实现查询students表中现有的班级 create view v3 as select distinct class //加上distinct能消除重复选项 from Students select * //查询视图v3 from v3

浅谈NorFlash的原理及其应用

浅谈NorFlash的原理及其应用 NOR Flash NOR Flash是现在市场上两种主要的非易失闪存技术之一。Intel 于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。性能比较 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。 l 、NOR的读速度比NAND稍快一些。 2、NAND的写入速度比NOR快很多。 3 、NAND的4ms擦除速度远比NOR的5s快。 4 、大多数写入操作需要先进行擦除操作。 5 、NAND的擦除单元更小,相应的擦除电路更少。此外,NAND 的实际应用方式要比NOR复杂的多。NOR可以直接使用,并可在上面直接运行代码;而NAND需要I/O接口,因此使用时需要驱动程序。不过当今流行的操作系统对NAND结构的Flash都有支持。此外,Linux内核也提供了对NAND结构的Flash的支持。详解 NOR

总结NAND FLASH控制器的操作

NAND FLASH相对于NOR FLASH而言,其容量大,价格低廉,读写速度都比较快,因而得到广泛应用。NOR FLASH的特点是XIP,可直接执行应用程序, 1~4MB时应用具有很高的成本效益。但是其写入和擦除的速度很低直接影响了其性能。 NAND FLASH不能直接执行程序,用于存储数据。在嵌入式ARM应用中,存储在其中的数据通常是读取到SDROM中执行。因为NAND FLASH主要接口包括 几个I/O口,对其中的数据都是串行访问,无法实现随机访问,故而没有执行程序。 NAND FLASH接口电路是通过NAND FLAH控制器与ARM处理器相接的,许多ARM处理器都提供NAND FLASH控制器,为使用NAND FLASH带来巨大方便。 K9F2G08U0B是三星公司的一款NAND FLASH产品。 K9F2G08U0B包含8个I/O,Vss、Vcc、以及控制端口(CLE、ALE、CE、RE、WE、WP、R/B)。其存储结构分块。 共2K 块 每块大小16 页 每页大小2K + 64BYTE 即容量=块数×页数×每页大小=2K×16×(2K + 64BYTE)=256M BYTE + 8M BYTE NAND FLASH控制器提供了OM[1:0]、NCON、GPG13、GPG14、GPG15共5个信号来选择NAND FLASH启动。 OM[1:0]=0b00时,选择从NAND FLASH启动。 NCON:NAND FLASH类型选择信号。 GPG13:NAND FLASH页容量选择信号。 GPG14:NAND FLASH地址周期选择信号。 GPG15:NAND FLASH接口线宽选择。0:8bit总线宽度;1:16bit总线宽度。 访问NAND FLASH 1)发生命令:读、写、还是擦除 2)发生地址:选择哪一页进行上述操作 3)发生数据:需要检测NAND FLASH内部忙状态 NAND FLASH支持的命令: #define CMD_READ1 0x00 //页读命令周期1 #define CMD_READ2 0x30 //页读命令周期2 #define CMD_READID 0x90 //读ID 命令 #define CMD_WRITE1 0x80 //页写命令周期1 #define CMD_WRITE2 0x10 //页写命令周期2 #define CMD_ERASE1 0x60 //块擦除命令周期1 #define CMD_ERASE2 0xd0 //块擦除命令周期2 #define CMD_STATUS 0x70 //读状态命令 #define CMD_RESET 0xff //复位 #define CMD_RANDOMREAD1 0x05 //随意读命令周期1

数据库原理与应用技术实验

实验一数据库管理系统(DBMS)使用初步 姓名:学号: 专业:网络工程班级: 同组人:无实验日期: 【实验目的与要求】 1.掌握SQL Serve 2005 服务器的安装方法 2.了解SQL Serve 2005 的环境 3.了解数据库及其对象 【实验准备】 1.了解SQL Server 2005的版本 2.了解SQL Server 2005各版本对硬件和软件的需求 【实验内容】 1.安装SQL Server 2005 2.练习启动、停止和暂停服务管组件的服务,了解SQL Server 2005中包括的服务器 组件,掌握服务管理器和使用。 3.练习Microsoft SQL Server Enterprise Manager的使用。 4.练习Microsoft SQL 查询分析器的使用。 【实验步骤】 1.0.准备工作: 测试数据库的加载 本实验需用到测试数据库db_shopping,请按以下步骤完成测试数据库的加载,以便完成后面实验。 (1)将数据库备份文件复制到某一文件夹(如:C:\TestDB)下 (2)启动SQL Server 服务管理器。 通过“开始=>程序=>Microsoft SQL Server 2005=>管理向导”打开“SQL Server

服务管理器”,启动“SQL Server 服务管理器”,并记录当前运行的服务器名。 (3)启动企业管理器。 (4)在对象资源管理器中,右击数据库->选择还原数据库,如下图: 在出现的对话框中选择”源设备”,如下图

在源设备选项的右边,点击”…”图标,会出现下图所示对话框: 单击添加按钮,在如下图所示对话框中根据备份文件的存储位置选中备份数据库文件,而后点确定。 在弹出对话框的下拉列表中选择数据库db_shopping,同时在选择用于还原的备份集选项相应位置的复选框中打上勾,如下图:

STM32使用FSMC控制NAND flash 例程概要

本文原创于观海听涛,原作者版权所有,转载请注明出处。 近几天开发项目需要用到STM32驱动NAND FLASH,但由于开发板例程以及固件库是用于小页(512B,我要用到的FLASH为1G bit的大页(2K,多走了两天弯路。以下笔记将说明如何将默认固件库修改为大页模式以驱动大容量NAND,并作驱动。 本文硬件:控制器:STM32F103ZET6,存储器:HY27UF081G2A 首先说一下NOR与NAND存储器的区别,此类区别网上有很多,在此仅大致说明: 1、Nor读取速度比NAND稍快 2、Nand写入速度比Nor快很多 3、NAND擦除速度(4ms远快于Nor(5s 4、Nor 带有SRAM接口,有足够的地址引脚来寻址,可以很轻松的挂接到CPU 地址和数据总线上,对CPU要求低 5、NAND用八个(或十六个引脚串行读取数据,数据总线地址总线复用,通常需要CPU支持驱动,且较为复杂 6、Nor主要占据1-16M容量市场,并且可以片内执行,适合代码存储 7、NAND占据8-128M及以上市场,通常用来作数据存储 8、NAND便宜一些 9、NAND寿命比Nor长 10、NAND会产生坏块,需要做坏块处理和ECC 更详细区别请继续百度,以上内容部分摘自神舟三号开发板手册

下面是NAND的存储结构: 由此图可看出NAND存储结构为立体式 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同。 需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。 我们这次使用的HY27UF081G2A其PDF介绍: Memory Cell Array = (2K+64 Bytes x 64 Pages x 1,024 Blocks 由此可见,该NAND每页2K,共64页,1024块。其中:每页中的2K为主容量Data Field, 64bit为额外容量Spare Field。Spare Field用于存贮检验码和其他信息用的,并不能存放实际的数据。由此可算出系统总容量为2K*64*1024=134217728个byte,即1Gbit。NAND闪存颗粒硬件接口: 由此图可见,此颗粒为八位总线,地址数据复用,芯片为SOP48封装。 软件驱动:(此部分写的是伪码,仅用于解释含义,可用代码参见附件 主程序: 1. #define BUFFER_SIZE 0x2000 //此部分定义缓冲区大小,即一次写入的数据 2. #define NAND_HY_MakerID 0xAD //NAND厂商号 3. #define NAND_HY_DeviceID 0xF1 //NAND器件号 4. /*配置与SRAM连接的FSMC BANK2 NAND*/

数据库原理及技术实验报告2

《数据库原理及技术》实验报告 姓名:莫鸿斌学号:201601030137 班级:2016级计算机科学与技术实验日期:2018-3-16 一、实验项目 了解SQL Server2012常用组件 二、实验目的 1.掌握SQL Server Management Studio的运用; 2.掌握SQL Server 2012常用组件; 3.如何使用SQL Server Management Studio创建数据库及表。 三、实验内容 1.了解SQL Server2012常用组件; 2.使用SQL Server management studio创建数据库factory,要求将数据库文件 factory_data.MDF存放在E:\data下面,其文件初始大小5MB,自动按5MB增长,将事务日志文件factory_log.LDF存放在E:\data目录下,其文件大小按1MB自动增长。 3.在数据库factory下创建如下表: 职工表(职工号(int),姓名(char(10)),性别(char(2)),出生日期(datetime),党员否(bit),参加工作时间(datetime),部门号(int)),其中职工号作为主键。 部门表(部门号(int),部门名(char(10)),其中部门号作为主键。 工资表(职工号(int),发放年份(int),发放月份(int),工资(decimal(6,1))),其中职工号、年份、月份作为主键。 4.建立第三步创建的表之间的参照完整性规则。 5.在上述表中输入数据,每个表至少10条记录。 6.备份数据库,考走以备下次试验使用。 四、实验环境 安装有SQL Server2008的PC一台。 五、实验步骤及结果 1.了解SQL Server2012常用组件; 2.使用SQL Server management studio创建数据库factory;要求将数据库文件 factory_data.MDF存放在E:\data下面,其文件初始大小5MB,自动按5MB增长,将事务日志文件factory_log.LDF存放在E:\data目录下,其文件大小按1MB自动增长。

NAND FLASH在储存测试中的应用

NAND FLASH在储存测试系统中的应用(3) 2009-11-09 22:35:43 来源:王文杰马游春李锦明 关键字:NAND FLASH 储存测试K9K8G08UOM 2 NAND FLASkI Memory的硬件部分 本设计当中,FLASH的数据输入输出口、控制端口通过调理电路与FPGA的端口相连,图4所示是其硬件连接电路。 从图4中可知,FLASH的数据输入输出端口I/00~7、控制端口/CE、是通过芯片SN54LV245与FPGA相连;FLASH的控制端口cLE、ALE、/WE、/RE通过芯片SN54LV245和芯片74HCl4与ITGA相连。其中F-CLE、F-ALE、F—WE、F-RE、F—CE、F- R/Bur是FPGA的I/O口,是FPGA逻辑的输入输出口。CLE、ALE信号是FLASH存储器命令、地址锁存使能信号,/WE是保证命令、地址、数据能否及时正确的写入FLASH 的信号,/RE信号控制着数据的读取,这些信号的精确度关系着FLASH存储、读数功能的实现。所以,这些信号的好坏直接关系着FLASH的正常工作。经实践的电路调试,这些信号在传输过程中受到了其它因素的干扰,信号明显失真,在电路中加入74HCl4(非门)以后,信号会变得光滑,准确。 芯片SN54LV245是八进制三态总线收发器,DIR=1时,总线传输方向从A→B;DIR=0时,总线传输方向从B→A。/OE是片选信号。/0E,DIR信号是由FPGA内部编程逻辑控制的。 FL,ASH接口中,为了保证/wE、/RE、/CE、R/B控制信号初始状态无效,由硬件电路实现端口值拉高。本设计中不使用写保护功能,所以/WP端口也接上了上拉电阻。 3 结束语 基于闪存技术的固态存储器存储密度大,功耗小,可靠性高,体积小重量轻且成本也在不断降f氐,在航空应用中有良好的应用前景。在设计储存测试系统时选用大容量的NAIXD FLASH存储器大大提高了储存、读取速度,并且设计电路结构简单,易于修改。 (本文转自电子工程世界:http://www.eewo

《数据库原理与技术》课程实验报告

(软件实验) [《数据库原理与技术》课程实验报告] 实验名称:[《数据库原理与技术》实验] 专业班级:[ ] 学生姓名:[ ] 学号:[ ] 指导教师:[ ] 完成时间:[ ]

目录 模块一:数据库原理与技术实验 (1) 实验一、熟悉ORALCE环境并练习SQL的定义 (1) 一、目的与要求 (1) 二、操作环境 (1) 三、实验内容 (1) 四、思考题 (5) 实验二、记录查询 (5) 一、目的与要求 (5) 二、操作环境 (5) 三、实验内容 (5) 四、思考题 (6) 实验三、SQL的数据操纵 (7) 一、目的与要求 (7) 二、操作环境 (7) 三、实验内容 (7) 四、思考题 (7)

实验四、视图及权限控制 (8) 一、目的与要求 (8) 二、操作环境 (8) 三、实验内容 (8) 四、思考题 (9) 实验五、数据库触发器与过程 (10) 一、目的与要求 (10) 二、操作环境 (10) 三、实验内容 (10) 模块二:出现的问题和解决方法 (12) 模块三:心得体会 (12) 模块四:参考文献 (13) 模块五:代码汇总 (13) 附录:ORACLE有关命令及内部字典 (18) ORACLE 的SQL*PLUS基本命令 (18) Oracle的哑表与数据字典 (19)

模块一:数据库原理与技术实验 实验一、熟悉ORALCE环境并练习SQL的定义 一、目的与要求 本实验主要是熟悉ORACLE的运行环境,在CLIENT端进行联接设置与服 务器联通,进入ORACLE的SQL*PLUS的操作环境,进一步建立表格,并考虑 主键,外部键,值约束。 二、操作环境 硬件:主频2GHz以上服务器(内存2GB以上、硬件空闲2.2GB以上), 主频1GHz以上微机,内存1GB以上。 软件:WINDOWS XP/2000/2003 SERVER 可安装ORACLE/9i/10g/11g/13i FOR NT/WINDOWS(注意在32位与64位的区别,可选企业版) 如果windows 非server如XP等,安装时请选择个人版(PERSONAL) 三、实验内容 1.上机步骤 单机版: (1)先启动PERSONAL ORACLE(START DATABASE) (2)用sql*plus登录(开始--程序-ORACLE FOR WIN-SQLP*PLUS(与网络版相同)进入SQL*PLUS 用户名:SYSTEM/manager (其中manager为缺省口令,安装需要设定,根据设定的密码进行相应变化;不要数据库联接串,其中SYSTEM为DBA用户) 还有一般用户scott/tiger (3)进入SQL>状态,可以执行SQL中的任何命令(建表,插入、删除、修改、查询等),还可建立用户、数据库等操作。 (4)退出,在SQL>状态,EXIT回车 网络版: 在实验室上机时,一般安装时管理员已设置好.先找到windows中的oracle服务(一般为oracleserviceORCL),启动此服务,再找到sql*plus所在的位置(一般桌面上有),运行即可进行登录界面.

nandflash用法

6 NAND FLASH CONTORLLER OVERVIEW In recent times, NOR flash memory gets high in price while an SDRAM and a NAND flash memory is comparatively economical , motivating some users to execute the boot code on a NAND flash and execute the main code on an SDRAM. S3C2440A boot code can be executed on an external NAND flash memory. In order to support NAND flash boot loader, the S3C2440A is equipped with an internal SRAM buffer called ‘Steppingstone’. When booting, the first 4K Bytes of the NAND flash memory will be loaded into Steppingstone and the boot code loaded into Steppingstone will be executed. Generally, the boot code will copy NAND flash content to SDRAM. Using hardware ECC, the NAND flash data validity will be checked. Upon the completion of the copy, the main program will be executed on the SDRAM. comparatively 比较地、相当地 motivating v. 激励;刺激;调动…的积极性(motivate的ing形式) execute vt. 实行;执行;处死 internal n. 内脏;本质adj. 内部的;里面的;体内的;(机构)内部的 Steppingstone n. 踏脚石;进身之阶;达到目的的手段 validity n. [计] 有效性;正确;正确性 content n. 内容,目录;满足;容量adj. 满意的;vt. 使满足 FEATURES 1. Auto boot: The boot code is transferred into 4-kbytes Steppingstone during reset. After the transfer, the boot code will be executed on the Steppingstone. 2. NAND Flash memory I/F: Support 256Words, 512Bytes, 1KWords and 2KBytes Page. 3. Software mode: User can directly access NAND flash memory, for example this feature can be used in read/erase/program NAND flash memory. 4. Interface: 8 / 16-bit NAND flash memory interface bus. 5. Hardware ECC generation, detection and indication (Software correction). 6. SFR I/F: Support Little Endian Mode, Byte/half word/word access to Data and ECC Data register, and Word access to other registers 7. SteppingStone I/F: Support Little/Big Endian, Byte/half word/word access. 8. The Steppingstone 4-KB internal SRAM buffer can be used for another purpose after NAND flash booting. 特性 1。自动引导:在复位时,引导代码写入4-k字节的中转区,在转移后启动 代码将在中转区上执行。 2。NAND闪存接口:支持256字,512字节,1k字和2KB字节页。 3。软件模式:用户可以直接访问NAND闪存,例如这个特性可以用于 读/写/擦除NAND闪存。

数据库原理实验报告(4)

数据库原理实验报告(4)

南京晓庄学院 《数据库原理与应用》课程实验报告 实验四查询设计实验 所在院(系):信息工程学院 班级: 13软件工程转本1班 学号:13131151 姓名:薛伟

1.实验目的 (1)了解查询的目的,掌握SELECT语句的基本语法和查询条件的表示方法。 (2)掌握数据排序和数据联接查询的方法。 (3)掌握SQL Server查询分析器的使用方法。 2.实验要求 (1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。 a)查询所有课程的详细情况。 b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列 名。 c)查询选修了课程的学生学号(一人选了多门课程的话,学号只显示一 次)。 d)查询选修课程号为07253001的学号和成绩,并要求对查询结果按成绩 降序排列,如果成绩相同则按学号升序排列。 e)查询所有学生的学号、姓名和年龄。 f)查询选修课程号为07253001的成绩在85-95之间的学生学号和成绩, 并将成绩乘以0.7输出。 g)查询数学与信息技术学院(DEPT_ID为07)或物理与电子工程学院 (DEPT_ID为09)姓张的学生的信息。。 h)查询所有核心课程(课程名中带*的)的情况。 i)查询缺少了成绩的学生的学号和课程号,查询结果按课程号升序排列。 (2)在SQL Server查询分析器中,用T-SQL语句实现下列数据联接查询操作:

a)查询每个学生的情况以及他(她)所选修的课程。 b)查询学生的学号、姓名、选修的课程名及成绩。 c)查询选修C语言程序设计且成绩为85分以上的学生学号、姓名及成绩。 d)查询和学生柏文楠是同一个民族的学生(用自身联接实现)。 e)分别用等值联接和内联接查询有授课记录的老师的姓名。 f)用外联接查询所有老师的授课情况,输出老师的工号、姓名、职称、院 系、担任的课程号和授课的学期,结果按院系和职称升序排列。如果该 老师没有授课历史,在课程号和授课的学期中显示空值 (3)在SQL Server Management Studio中新建查询,完成以上查询命令的同时,熟悉SQL 编辑器工具栏中各快捷按钮的作用。 (4)按要求完成实验报告。 3.实验步骤、结果和总结实验步骤/结果 将调试成功的T-SQL语句写在下方(标明题号)。 一、针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下单表查询操作,并将将调试成功的T-SQL命令,填入实验报告中。 (a)查询所有课程的详细情况: select*from Course (b)查询来自江苏或山东的学生学号和姓名,并以中文名称显示输出的列名。

NAND Flash原理和使用

目录 1.概述 (2) 2.功能框图 (3) 3.管脚 (3) 4.寻址 (4) 5.总线操作 (5) 6.命令表 (6) 7.PAGE READ,0x00-0x30 (7) 8.RANDOM DATA READ,0x05-0xE0 (7) 9.PAGE READ CACHE MODE START,0x31;PAGE READ CACHE MODE START LAST,0x3F (8) 10.READ ID,0x90 (8) 11.READ STATUS,0x70 (9) 12.编程操作 (9) 13.内部数据搬移 (11) 14.块擦除操作,0x60-0xD0 (12) 15.复位操作,0xFF (13) 16.写保护操作 (13) 17.错误管理 (14)

以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1.概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来传输数据、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个附加的脚用作: 控制硬件写保护(WP#)、监视芯片状态(R/B#),和发起上电自动读特征(PRE-仅3V芯片支持)。注意, PRE功能不支持宽温芯片。 MT29F2G08内部有2048个可擦除的块,每个块分为64个可编程的页,每个页包含2112字节(2048个字节作为数据存储区,64个备用字节一般作为错误管理使用)。 每个2112个字节的页可以在300us内编程,每个块(64x2112=132K)可以在2ms内被擦除。片上控制逻辑自动进行PROGRAM和ERASE操作。 NAND的内部存储阵列是以页为基本单位进行存取的。读的时候,一页数据从内部存储阵列copy到数据寄存器,之后从数据寄存器按字节依次输出。写(编程)的时候,也是以页为基本单位的:起始地址装载到内部地址寄存器之后,数据被依次写入到内部数据寄存器,在页数据写入之后,阵列编程过程启动。 为了增加编程的速度,芯片有一个CACHE寄存器。在CACHE编程模式,数据先写入到CACHE寄存器,然后再写入到数据寄存器,一旦数据copy进数据寄存器后,编程就开始。在数据寄存器被装载及编程开始之后,CACHE寄存器变为空,可以继续装载下一个数据,这样内部的编程和数据的装载并行进行,提高了编程速度。 内部数据搬移命令(INTERNAL DATA MOVE)也使用内部CAHCE寄存器,通常搬移数据需要很长时间,通过使用内部CACHE寄存器和数据寄存器,数据的搬移速度大大增加,且不需要使用外部内存。

数据库原理与技术实验八

《数据库原理及技术》实验报告 实验日期:2014-5-11 成绩: 一、实验项目 实验8 二、实验目的 触发器应用 三、实验内容 1、创建触发器,当插入、修改、删除教师信息时,查询出所有教师的信息; 2、创建触发器,当修改教师职称时验证修改后的职称是否为教授、副教授、讲师或助教,若不是则不允许修改; 3、创建触发器,当修改学生学号时,同时修改这个学生对应成绩记录的学号,使修改后数据保持一致状态; 4、创建触发器,当删除教师信息时,删除这个教师担任的课程信息; 5、创建触发器,当修改教师信息时,查询出这个教师所担任课程的成绩信息,并加密。 四、实验环境 安装有SQL Server2005的PC一台。 五、实验步骤及结果 1、创建触发器,当插入、修改、删除教师信息时,查询出所有教师的信息; create trigger js_te on teacher for insert,delete,update as select*from teacher insert into teacher values('805','赵四','男',1965-8-5,'助教','生科系') delete teacher where tno='805' update teacher set prof='教授'where tno='804' exec sp_helptrigger teacher 查询教师表上触发器信息: 执行插入操作:

执行删除操作: 执行修改操作: 2、创建触发器,当修改教师职称时验证修改后的职称是否为教授、副教授、讲师或助教,若不是则不允许修改; create trigger js_yz on teacher for update as if update (prof) begin if(select prof from inserted)not in('教授','副教授','讲师','助教') begin print('不允许修改为除规定范围之外的职称') rollback tran end else print('修改成功')

相关主题
文本预览
相关文档 最新文档