精华内容
下载资源
问答
  • EEPROM存储芯片24C02

    千次阅读 2019-10-02 13:36:50
     24C02是一个2Kbit的串行EEPROM存储芯片,可存储256个字节数据。工作电压范围为1.8V到6.0V,具有低功耗CMOS技术,自定时擦写周期,1000000次编程/擦除周期,可保存数据100年。24C02有一个16字节的页写缓冲器和一个...

    1、24C02简介

      24C02是一个2Kbit的串行EEPROM存储芯片,可存储256个字节数据。工作电压范围为1.8V到6.0V,具有低功耗CMOS技术,自定时擦写周期,1000000次编程/擦除周期,可保存数据100年。24C02有一个16字节的页写缓冲器和一个写保护功能。通过I2C总线通讯读写芯片数据,通讯时钟频率可达400KHz。

      可以通过存储IC的型号来计算芯片的存储容量是多大,比如24C02后面的02表示的是可存储2Kbit的数据,转换为字节的存储量为2*1024/8 = 256byte;有比如24C04后面的04表示的是可存储4Kbit的数据,转换为字节的储存量为2*1024/8 = 512byte;以此来类推其它型号的存储空间。

      24C02的管脚图如下:

      VCC和VSS是芯片的电源和地,电压的工作范围为:+1.8V~+6.0V。

      A0、A1、A2是IC的地址选择脚。

      WP是写保护使能脚。

      SCL是I2C通讯时钟引脚。

      SDA是I2C通讯数据引脚。

    2、24C02的设备地址和写写保护功能

       I2C主机在与24C02通讯时,需要发送一个设备地址进行寻址,在I2C总线上,每一个从机设备的地址都是唯一的。

      24C02的设备地址包含两部分,第一部分是bit7~bit4是固定的“1010”,第二部分bit3~bit1位由A2、A1、A0组成。主机在与24C02进行通讯时,除了发送设备地址还需要发送数据的读写方向位R/W,24C02的是设备地址与R/W位组成了一个字节的数据。如下图:

       上图列出了几个存储IC的设备地址与R/W位组成的字节。由图中可以看到,存储IC地址的bit7~bit4位固定为“1010”;bit3~bit1位由A2、A1、A0引脚的电平状态决定,如果Ax接的是电源(高电平),那么Ax=1,如果Ax接的是地,那么Ax=0,即由A2、A1、A0可以组合成8种设备地址,也就是说在同一个I2C总线上可以同时挂载8个24C02芯片。一般如果I2C总线上只有一片24C02芯片的话,A2、A1、A0引脚都接到地。

      由于24C02只有256个字节的存储空间,所以只需要1个字节就可以寻址完24C02的存储空间,但是无法寻址完更大容量的存储IC,比如24C04的存储容量是512字节,需要9个bit的地址位才能寻址完。由上图可以看到,24C04的设备地址内是没有A0参数的,被a8代替了,这个a8就是24C04的第9个bit的地址位,也就是说24C04的A0引脚是不起作用的,这样也就造成了在I2C总线上只能同时挂载4个24C04芯片。其它存储器如24C08、24C16也可以这么类推。

      24C02的WP引脚是写保护引脚,当WP引脚接高电平的时,24C02只能进行读取操作,不能进行写操作。只有当WP引脚悬空或接低电平时,24C02才能进行写操作。

    3、24C02数据读取操作

      在这里只是对24C02的读写进行一些说明和一些注意的实现,不会涉及具体的程序代码,只是进行代码概述,工程代码已经上传到个人GitHub中,感兴趣的可以去GitHub中下载查看,GitHub代码地址如下:

    https://github.com/h1019384803/STM32F103ZET6_I2C.git。这是一个使用STM32F103ZET6的IO模拟I2C操作24C02的工程。

      MCU通过使用I2C读取24C02任意存储空间地址内的数据,代码如下:  

     1 uint8_t AT24CXX_READ_ONE_BYTE(uint16_t address)
     2 {    
     3     uint8_t dat;
     4     
     5     I2C_START();
     6     AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_WIRTE_CMD);
     7     if(AT24CXX_ERR != 0)//没有响应直接退出
     8     {
     9         AT24CXX_ERR = I2C_WRITE_BYTE(address & 0xFF);
    10         if(AT24CXX_ERR != 0)
    11         {    
    12             I2C_START();
    13             
    14             AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_READ_CMD);    
    15             if(AT24CXX_ERR != 0)
    16             {         
    17                dat = I2C_READ_BYTE(0); 
    18                I2C_STOP();
    19             }
    20         }
    21     }
    22     
    23     return dat;
    24 }

      第5行主机产生一个I2C起始信号,第6行发送设备地址和写数据位给24C02,第9行是发送需要读取的地址给24C02,第12行主机产生一个重复起始信号,第14行设备地址和读数据位给24C02,第17行是读取24C02相应地址存储的数据。第18行是主机产生I2C结束信号。

      在上面的程序代码中,AT24CXX_ERR是用来获取24C02的应答信号,如果主机与24C02的通讯正常,主机每发送一个字节给24C02,24C02都会反馈一个应答信号给主机,如果24C02没有反馈应答信号,那么说明24C02正在进行其它操作或者通讯异常导致无法通讯,主机会产生一个结束信号来结束操作。在I2C_WRITE_BYTE()函数内部有一个等待应答信号的操作,如果没有收到应答信号,在I2C_WRITE_BYTE()函数内会产生一个停止信号来结束当前操作。AT24CXX_ERR用来判断接下来的操作是否执行,如果AT24CXX_ERR=0说明没有收到应答信号,直接退本次读取操作;如果AT24CXX_ERR!=0说明有收到应答信号,继续读取操作。

      24C02内部有一个地址计数器,主机发送要读写的存储空间地址给24C02,就相当于改变24C02的内部地址计数器的值,主机每读写一个字节24C02之后,它内部地址计数器的值就会自动加1。也就是说如果当前地址是N,那么主机读取完一个字节的数据之后,再次读的话就变为了读取N+1地址的数据。

      这里需要注意的一点是,24C02的内部地址计数器的地址只能从0~255之间递增,这是因为24C02的存储控制只有256个字节,地址计数器只能在0~255(共256个地址)内变化。如果连续读取使得地址计数器超过255,那么地址计数器就会从0地址开始循环。比如说当前内部计数器地址为255,主机在读取一个字节数据之后会导致内部计数器地址变为0,那么主机再次读取数据的时候读取得到的是24C02地址0的数据。

      MCU使用I2C连续读取24C02内多个存储空间地址数数的代码如下:

     1 void AT24CXX_READ_BUFF(uint16_t address,uint8_t *buffer,uint16_t Len)
     2 {    
     3     uint16_t i;
     4     
     5     I2C_START();
     6     AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_WIRTE_CMD);
     7     if(AT24CXX_ERR != 0)//没有响应直接退出
     8     {
     9         AT24CXX_ERR = I2C_WRITE_BYTE(address & 0xFF);
    10         if(AT24CXX_ERR != 0)
    11         {    
    12             I2C_START();
    13             AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_READ_CMD);   
    14             if(AT24CXX_ERR != 0)
    15             {               
    16                 for(i=0;i<Len;i++)
    17                 {
    18                     buffer[i] = I2C_READ_BYTE(0); 
    19                 }
    20             }
    21             
    22             if(AT24CXX_ERR != 0)
    23             {         
    24                 I2C_STOP();
    25             }            
    26         }
    27     }
    28 }

      上面的代码,大部分跟读取一个字节的程序代码是一样的,不一样的是第16~19行,这里用一个for循环来连续读取24C02内的数据,这里并没有对超范围读取数据进行限制,所以在使用的时候需要注意不要连续读取超过24C02的存储空间,就算超过也不会有问题,只是会重新开始从0地址读取。

    4、24C02数据写入操作

      MCU使用I2C写入一个字节数据到24C02任意存储空间地址内的代码如下:

     1 void AT24CXX_WRITE_ONE_BYTE(uint16_t address,uint8_t dat)
     2 {    
     3     I2C_START();
     4     AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_WIRTE_CMD);
     5     if(AT24CXX_ERR != 0)//没有响应直接退出
     6     {
     7         AT24CXX_ERR = I2C_WRITE_BYTE(address & 0xFF);
     8         if(AT24CXX_ERR != 0)
     9         {    
    10             AT24CXX_ERR = I2C_WRITE_BYTE(dat);    
    11             if(AT24CXX_ERR != 0)
    12             {         
    13                I2C_STOP();
    14             }
    15         }
    16     }
    17 }

      第3行主机产生一个I2C起始信号,第4行发送设备地址和写数据位给24C02,第7行是发送需要写入数据的地址给24C02,第10行是将要写入的数据发送给24C02。第18行是主机产生I2C结束信号。上面大部分操作跟读取是一样的,不一样的只是最后将读取操作改为了写入操作。

      如果需要连续写入数据,可以如下:

    1     for(i = 0;i < 256;i ++)
    2     {    
    3         AT24C02_BUFF[i] = i;
    4         AT24CXX_WRITE_ONE_BYTE(i,AT24C02_BUFF[i]);
    5     }

      但是在实际使用的过程中,发现只有一部分AT24C02_BUFF[]数组里面的数据被写入到了24C02当中,有一些数据没有写进24C02。这是因为24C02擦写数据没有那么快,需要一定的时间,在24C02正在擦写数据的过程中,是不会应答主机的通讯的,所以如果主机在写入一个数据之后又立马写入另一个数据,就会导致24C02跟不上主机的通讯速度从而导致无法写入数据。

      需要注意的是24C02并不是在主机发送数据给24C02之后就立马擦写数据的,24C02是在主机产停止信号之后才开始擦写数据的,并且在擦写数据完成之前不会响应主机的其它操作。

      可以通过一定的延时函数来等待24C02擦写完成,代码如下:

        for(i = 0;i < 256;i ++)
        {    
            AT24C02_BUFF[i] = i;
            AT24CXX_WRITE_ONE_BYTE(i,AT24C02_BUFF[i]);
            HAL_Delay(1);
        }

      通过调用HAL_Delay()函数进行延时,具体的延时时间可以通过调试来决定,这里使用1ms的延时时间,具体24C02擦写数据需要多久并不清楚。

      除了通过延时函数进行等待24C02擦写完成,也可以通过发送设备地址给24C02,然后查询是否有应答信号返回来判断24C02是否擦写完成。24C02在擦写数据时是反馈应答信号给主机的,这样就可以通过不断的发送数据给24C02,然后查询应答信号来判断24C02是否擦写完成,一旦擦写完成就可以进行下一个数据的写入。代码如下:

     1 void Wait_AT24CXX_WRITE_OK(void)
     2 {
     3     uint8_t Wait_Cnt;
     4 
     5     Wait_Cnt = 50; 
     6     do
     7     {
     8         I2C_START();
     9         AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_WIRTE_CMD);
    10         if(AT24CXX_ERR != 0)
    11         {
    12             I2C_STOP();//接收到响应信号退出
    13             break;
    14         }
    15             
    16     }while(Wait_Cnt--);
    17 
    18 }

      Wait_Cnt是一个次数限制变量,不能无限的在里面等待,不然遇到异常就有可能造成程序卡死。

      程序通过发送起始信号、发送设备地址和写数据方向给24C02,如果24C02反馈了一个应答信号给主机,主机就产生一个停止信号,然后退出当前循环。应用代码如下:

    1     for(i = 0;i < 256;i ++)
    2     {    
    3         AT24C02_BUFF[i] = i;
    4         AT24CXX_WRITE_ONE_BYTE(i,AT24C02_BUFF[i]);
    5         Wait_AT24CXX_WRITE_OK();//可以通过发送设备地址给从机,通过从机反馈的响应信号来判断从机是否可以正常通讯
    6     }

    5、24C02页写入

      24C02有一个页写入功能,可以连续写入16个字节的数据。

      24C02可以以页来划分存储空间,每16个字节组成一个页,24C02的存储空间大小为256个字节,所以24C02总共有16个页。如:

      页0:地址从0x00~0x0F

      页1:地址从0x10~0x1F

      ......

      页15:地址从0xF0~0xFF  

      24C02可以在一个页内连续的写入数据,但是需要注意的是如果写入的数据超过页大小,那么就会覆盖页初始地址的值,比如说连续写入3个数据,第1个数据写入到地址0x0F当中,第2个数据由于溢出页的限制,会被写入到地址0x00当中,第3个数据会被写入到地址0x01当中。

      以个人的理解,24C02内部有一个16byte的数据缓存器,在上面的介绍中知道,主机在发送数据给24C02的时候,24C02是不会擦写数据的,只有当主机发送停止信号之后24C02才会擦写数据。那么当主机发送数据给24C02时,只是将数据写入到了24C02内部的缓存器中,只有当主机发送结束信号之后,24C02才将缓存器内的数据写入到内部存储空间。

      由24C02的数据缓存器只有16个byte(每个型号的存储IC的页大小是不一样的也就是缓存器大小是不不一样的)。所以如果写入的数据超过缓存器的大小就会覆盖之前写入的数据。

      使用页写入连续将数据写入24C02的代码如下:  

     1 void AT24CXX_WRITE_BUFF(uint16_t address,uint8_t *Buffer,uint16_t Len)
     2 {
     3     uint8_t i;
     4     uint16_t re_main;
     5     
     6     if(address >= 256)//对输入的地址进行限制,24C02只有256个字节的存储空间,其它型号的存储器IC可以通过查资料
     7     {
     8         return;
     9     }
    10     
    11     re_main = 256 - address;//计算出还有多少存储空间
    12     
    13     if(Len > re_main)//如果要写入的数据量超过剩余存储空间,则只写入剩余存储空间数量的数据
    14     {
    15         Len = re_main;
    16     }
    17     
    18     re_main = 16 - address%16;//计算当前页还可以写入多少个数据
    19     
    20     if(Len <= re_main)//如果要写入的数据小于等于当前页剩余的存储空间,则只写入Len个字节数据就好,不需要跨页操作
    21     {
    22         re_main = Len;
    23     }
    24     
    25     do
    26     {
    27         I2C_START();
    28         AT24CXX_ERR = I2C_WRITE_BYTE(AT24CXX_WIRTE_CMD);
    29         if(AT24CXX_ERR == 0)//没有响应直接退出
    30         {
    31             break;
    32         }
    33         
    34         I2C_WRITE_BYTE(address & 0xFF);
    35         for(i = 0;i < re_main;i ++)//最多连续写入一个页数据的大小
    36         {
    37             AT24CXX_ERR = I2C_WRITE_BYTE(Buffer[i]);
    38         }
    39         
    40         I2C_STOP();
    41         Wait_AT24CXX_WRITE_OK();//等待24C02完成擦写数据动作    
    42         
    43         if(re_main != Len)
    44         {
    45             address += re_main;//已经写入re_main个数据,
    46             Buffer += re_main;
    47             Len -= re_main;
    48             
    49             re_main = 16;//写一个页的的大小也是16个字节
    50             
    51             if(Len <= re_main)
    52             {
    53                 re_main = Len;
    54             }    
    55         }
    56         else
    57         {
    58             break;//数据写入完成退出
    59         }
    60     }
    61     while(1);    
    62 }

      AT24CXX_WRITE_BUFF()函数的思路如下:

      首先判断输入的地址是否超过存储IC的存储空间,如果超过则退出,如第6~9行。

      计算出输入的地址到存储器存储的结束地址剩余多少空间,如果要写入的数据比剩余空间还多,那么剩余多少空间就写入多少空间,需要写入的多余部分就去掉,如第11~16行。

      计算当前页还可以写入多少数据,如果当前页剩余的空间比Len要写入的数据长度还大,那么只要写入当前页就足够了,不需要再跨页写入数据。如第18~23行。

      通过一个while(1)循环连续写入数据到24C02中。

      第27~41行是将re_main个数据写入到24C02当中,由于是在一个页内操作,所以可以连续写入,写完之后在产生一个结束信号然后等待24C02擦写完成。

      如果不需要跨页写入就已经将数据全部写完,那么就可以直接break退出while循环,如第58行。

      如果需要跨页写入数据,还需要将地址、buffer、Len减去已经写入的数据量,然后下一个页可以写入整个页的数据量,也就是16个字节,通过比较判断一个页的剩余空间是否能够写完剩余的Len数据,如果不行就重复循环操作,如果可以写完,在写完之后就退出while循环。

    转载于:https://www.cnblogs.com/h1019384803/p/11518241.html

    展开全文
  • 首先,文件读取的速度极限就是硬盘的读速度上限,想要达到硬盘的读速度上限就要设法不让硬盘停下来,让它一直读。 1:读取的是各种小文件还是一个大文件? 顺序读大文件这个场景,内核优化过,你需要做的就是...

    首先,文件读取的速度极限就是硬盘的读速度上限,想要达到硬盘的读速度上限就要设法不让硬盘停下来,让它一直读。

     

    1:读取的是各种小文件还是一个大文件?

    顺序读大文件这个场景,内核优化过,你需要做的就是不要乱搞影响内核工作。老老实实用 fread 读。除非实验分析数据明显会加快,否则不要轻易用。

    OS 支持异步 IO 就用异步的,pending 一堆读请求,目的就是不让硬盘闲着。

     

    2:各种小文件的存储区域是是否在一个地方?

    肯定是在一个地方读的最快。一个文件比多个文件的读取速度要快。

    数据块如果太分散,机械硬盘的磁头机械臂需要来回移动,导致寻道耗费的时间太多。

     

    3:缓存机制的影响?

    硬盘在响应读请求的时候会预读取一部分数据到缓存,下次读取就从缓存拿不去真正访问硬盘,所以每次读请求的数据量要比缓存大,这样才不会让硬盘闲置。

     

    4:机械硬盘 or 固态硬盘?

    对于机械硬盘来说,要保证文件是连续存储的,减少寻道时间,减少磁头的移动次数。

    固态硬盘的话,那就爽啦,人家是电路设计,用的是电子存储芯片阵列(Solid State Drive)。

    磁存储需要扫描磁头的动作和旋转磁盘的配合。电路存储即固态存储靠的是电路的扫描和开关作用将信息读出和写入。

    所以 SSD 比机械硬盘要快很多~

    (SSD 的缺点?寿命短、断电易丢数据)

     

    这个问题很大,基本上具体情况都要具体分析,用的硬盘、带宽、文件大小、系统等等问题需要具体进行分析,而使用编程语言种类的影响着实较小。

     


     

    展开全文
  • Flash存储W25Q16芯片

    万次阅读 2015-03-09 15:06:15
    W25Q16BV(16M-bit)是为有限的空间、引脚和功耗的系统提供一个存储解决方案。25Q系列比普通的串行Flash存储器更灵活,性能更优越。基于双倍/四倍的SPI,它们能够可以立即完成提供数据给RAM,包括存储声音、文本和数据...

    1          一般描述

    W25Q16BV(16M-bit)是为有限的空间、引脚和功耗的系统提供一个存储解决方案。25Q系列比普通的串行Flash存储器更灵活,性能更优越。基于双倍/四倍的SPI,它们能够可以立即完成提供数据给RAM,包括存储声音、文本和数据。芯片支持的工作电压2.7V到3.6V,正常工作时电流小于4mA,掉电时低于1uA。工作温度为-40℃到85℃。所有芯片提供标准的封装。

             W25Q16BV由8192个编程页组成,每个编程页256-bytes。每页的256字节用一次页编程指令即可完成。每次擦除16页(扇区擦除)、128页(32KB块擦除)、256页(64KB块擦除)和全片擦除。W25Q16BV有512个可擦除扇区或32个可擦除块。最小4KB扇区允许更灵活的应用去要求数据和参数保存(见图2)。

             W25Q16BV支持标准串行外围接口(SPI),和高速的双倍/四倍输出,双倍/四倍用的引脚:串行时钟、片选端、串行数据I/O0(DI)、I/O1(DO)、I/O2(WP)和I/O3(HOLD)。SPI最高支持104MHz,双倍速是208MHz,四倍速是416MHz。这个传输速率比得上8位和16位的并行Flash存储器。连续读模式允许利用少至8-clocks指令去读取24-bit 地址来实现高效的存储访问,允许真正的XIP(execute in place)操作。

    HOLD引脚和写保护引脚可编程写保护。此外,芯片支持JEDEC标准,具有唯一的64位识别序列号。

    2          特性

    l  SPI串行存储器系列                                                                    灵活的4KB扇区结构

    -W25Q80:8M位/1M字节(1,048,576)                                           -统一的扇区擦除(4K字节)

    -W25Q16:16M位/2M字节(2,097,152)                                         -块擦除(32K和64K字节)

    -W25Q32:32M位/4M字节(4,194,304)                                         -一次编程256字节

    -每256字节可编程页                                                                       -至少100,000写/擦除周期

                                                                                                                      -数据保存20年

    ●标准、双倍和四倍SPI

    -标准SPI:CLK、CS、DI、DO、WP、HOLD                              高级的安全特点

    -双倍SPI:CLK、CS、IO0、IO1、WP、HOLD                              -软件和硬件写保护

    -四倍SPI:CLK、CS、IO0、IO1、IO2、IO3                                  -选择扇区和块保护

                                                                                                                      -一次性编程保护(1)

    ●高性能串行Flash存储器                                                                  -每个设备具有唯一的64位ID(1)

    -比普通串行Flash性能高8倍                                                         注1:

    -104MHz时钟频率                                                                                这些特点在特殊订单中。

    -双倍SPI相当于208MHz                                                                      请联系Winbond获得更详细资料。

    -四倍SPI相当于416MHz                                                              封装

    -40MB/S连续传输数据                                                                     -8-pinSOIC 208-mil

    -50MB/S随机存取(每32字节)                                                -8-padWSON

    ●高效”持续读模式”                                  

       -短指令

       -少至8个时钟到达1个地址内存

       -允许真正XIP操作

       -强过并行Flash强16倍

    5  8个脚的引脚图类似如下。

    6  引脚描述

    7       16个脚的引脚图类似如下,N/C表示not connect

    8.1 封装类型

             W25Q16BV提供了8-pin塑料150-mil 或者208-mil宽度SOIC(封装代号SN&& SS) 和6x5-mm WSON(封装代号ZP) 。分别如图1a和1b。300-mil 8-pin的PDIP是另外一种封装选择。(图1c)。W25Q16BV也提供16-pin 塑料 300-mil宽度SOIC(封装代号SF),如图1d。封封装图和尺寸规格在数据手册的末尾。

    8.2 片选(ChipSelect -----/CS)

             SPI片选引脚决定设备操作是否可用。当为高电平时,芯片未被选择,串行数据输出(DO、IO0、IO1、IO2和IO3)引脚为高阻态。未被选择时,芯片处于待机状态下的低功耗,除非芯片内部在擦除、编程。当/CS变成低电平,芯片功耗将增长到正常工作,能够从芯片读写数据。上电后,在接收新的指令前,必须由高变为低电平。上电后,必须上升到VCC(见“写保护”和图30)。在接上拉电阻可以完成这个。

    8.3 串行数据输入、输出和IOs(DI、DO和IO0、IO1、IO2、IO3)

    W25Q16BV支持标准SPI、双倍SPI和四倍SPI。标准的SPI传输用单向的DI(输入)引脚连续的写命令、地址或者数据在串行时钟(CLK)的上升沿时写入到芯片内。标准的SPI用单向的DO(输出)在CLK的下降沿从芯片内读出数据或状态。

    双倍和四倍SPI指令用双向的IO引脚在CLK的上升沿来连续的写指令、地址或者数据到芯片内,在CLK的下降沿从芯片内读出数据或者状态。四倍SPI指令操作时要求在状态寄存器2中的四倍使能位(QE)一直是置位状态。当QE=1时/WP引脚变为IO2,/HOLD引脚变为IO3。

    8.4 写保护(WriteProtect ---  )

             写保护引脚用来阻止状态寄存器被更改。状态寄存器保护位(SEC、TB、BP2、BP1和BP0) 和状态寄存器保护位(SRP)结合起来对存储器进行一部分或者全部的硬件保护。低电平有效。当状态寄存器2中的QE位置成四倍速I/O,则引脚(硬件保护功能)无效。因为这个脚被用作IO2。四倍速I/O操作时该脚配置请见图1a,1b,1c和1d。

    8.5 HOLD(/HOLD)

       引脚有效时,设备将暂停。当DO引脚将为高阻态,DI和CLK引脚上的信号将被忽略。当脚为高电平时,设备恢复工作。功能常用在多个设备共享同一个SPI信号。脚低电平有效。当状态寄存器2中的QE位置成四倍速I/O,则引脚无效。因为这个脚被用作IO3。四倍速I/O操作时该脚配置请见图1a,1b,1c和1d。

    8.6 串行时钟(CLK)

    串行时钟输入引脚为串行输入和输出操作提供时序。(见SPI操作)

    9结构框图


            

    10.功能描述

    10.1 SPI总线操作

    10.1.1 标准SPI指令

    该w25q16bv是通过一个SPI兼容总线组成的四访问:串行时钟信号(CLK),芯片选择(/ CS),串行数据输入(DI)和串行数据输出(DO)。标准的SPI指令使用DI引脚输入串行写入指令,地址或数据到设备上的上升沿时钟。DO输出引脚是用来读取数据或状态的装置,在下降沿时钟。SPI总线操作模式0(0,0)和3(1,1)的支持。模式0和之间的主要差异模式3是时钟信号的正常状态时,SPI总线主备用数据没有被转移到串行闪存。对于模式0,时钟信号在的下降沿和上升沿,通常是低电平。对于模式3,时钟信号在的下降沿和上升沿,通常是高电平。

    10.1.2 双倍SPI指令

       W25Q16BV使用”Fast Read Dual Output and Dual I/O(3B和BBhex)”指令支持双倍速SPI操作。这些指令允许数据以正常速度的两到三倍的在设备间传输。双倍读指令适用于 上电时快速加载代码到RAM 或者 直接从SPI总线上执行代码(XIP) 的情形。当使用双倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1.

    10.1.3 四倍速SPI指令

         W25Q16BV使用”Fast Read Quad Output”、” Fast Read Quad I/O” 、”Word Read Quad I/O” 和 “Octal Word Quad I/O”指令(6B、EB、E7、E3)支持四倍速SPI操作。这些指令允许数据以正常速度的四到六倍的在设备间传输。四倍读指令显著提升连续和随机访问传输速度,这速度满足将代码快速加载到RAM或者直接在SPI总线上执行(XIP)。使用四倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1 ,WP和HOLD充当IO 2 和IO 3。四倍速SPI指令要求状态寄存器2中的QE功能位打开。

    10.1.4 HOLD功能

             指令允许W25Q16BV在选中激活状态下暂停。在与其他设备共享SPI数据和时钟信号时,这个功能很有用。例如,在已经写了一部分页Buffer后,SPI 总线上产生一个优先终端请求。在这种情形,指令可以保存指令的状态和Buffer中的数据,一旦总线再次可用时,程序可以从离开的地方恢复。功能只适用于标准SPI和双倍SPI操作,不实用四倍速SPI操作。

             设备在选中(低电平)时,初始化状态。如果CLK信号已经处于低电平时,状态在信号的下降沿时激活。如果当时CLK不是低电平,状态将在CLK的下个下降沿后激活。如果CLK信号已经处于低电平时,状态在信号的上升沿时终止。否则,将在下一个CLK的下降沿后终止。在状态期间,DO脚是高阻态,DI和CLK信号将忽略。在整个操作过程中,信号应该保持低电平来避免重置设备内部逻辑状态。

    10.2 写保护(Writeprotection)

             使用非易失性存储器的应用程序必须考虑到噪声等的可能性和不利的系统条件可能会影响数据的完整性。为了解决这个问题的W25Q16BV提供了多种方式来保护数据免受意外写入。

    10.2.1 写保护功能情形

    l  VCC地狱阈值时,设备重置。

    l  上电后延时写入禁止。

    l  在编程和擦除后写使能或写入禁止指令和自动写入禁止

    l  用状态寄存器软件或硬件写保护

    l  锁定写保护直到下次上电P

    l  一次性编程写保护P

    Note : P标记这些功能可用基于特别订购信息,请参考订购信息。

    上电或掉电即VCC低于阈值电压()时,W25Q16BV重置该功能。在重置时,操作不可用,指令不识别。在上电到VCC达到期间,所有的编程和擦除相关指令因为延时期间不可用。片选信号必须监听上电时VCC供应等级达到VCC-min等级 和时间延时结束。在上产生一个上拉电平可以实现。

    上电后,设备自动将状态寄存器写使能锁置成0,此时状态为写入禁止状态。在接收页编程,扇区擦除,盘擦除或者写状态寄存器指令前,需要设置一个写使能指令。在完成这些指令后,写使能锁自动清成写入禁止状态(值0)。

    软件写保护通过写状态寄存器指令设置状态寄存器保护(SRP0 、SRP1)和块保护(SEC、TB、BP2、BP1和BP0)位。这些设置使一部分内存区域只读。通过 写保护引脚(/WP) 和改变状态寄存器 相结合,在硬件控制下启用或者禁用。此外,下电指令提供了额外的写保护---所有指令都忽略。

    11.1状态寄存器

    11.1.1 忙(Busy)

    忙在状态寄存器S0中是个只读位。当设备在执行页编程、扇区擦除、块擦除、芯片擦除或者写状态寄存器指令时会置成状态1。忙状态时设备将忽略后续指令,除了读状态寄存器和擦除暂停指令(参见AC特性中tw、tPP、tSE、tBE和tCE).当编程写、擦除或者写状态寄存器指令完成时,位忙会清成状态0---标识设备已为后续指令做好准备。

    11.1.2 写使能锁(WriteEnable Latch ---WEL)

    WEL在状态寄存器S1中是个只读位。在执行写使能指令时被置成1。当设备停止写时,位WEL将清成0。停止写状态发生在加电时或者 在停止写、页编程、扇区擦除、块擦除、芯片擦除、写状态寄存器之后。

    11.1.3 块保护位(BlockProtect Bit ------BP2、BP1、BP0)

             块保护位在状态寄存器S4、S3、S2中是非易失读写位,它提供写保护控制和状态。块保护位可以使用写状态寄存器指令设置(参见AC特性里tw)。编程写和擦除指令可以保护整个或部分内存数组,或者没有一个内存数组被保护。块保护位出厂设置为0---即不保护。

    11.1.4 顶端块或者底部块保护(Top/BottomBlock Protect----TB)

             根据TB数组(TB = 0,顶端;TB=1,底部)是否出现在状态寄存器保护列表里,非易失TB位决定块保护位(BP2、BP1、BP0) 是否受保护。TB出厂设置为0。TB位可以通过基于SRP0、SRP1和WEL位的写状态寄存器指令设置。

    11.1.5 扇区/块保护(Sector/BlockProtect----SEC)

    非易失性扇区保护位(SEC)控制 块保护位(BP2、BP1、BP0)是否保护TB数组里的4KB扇区(SEC=1)或者64KB块(SEC=0)。这个TB(TB=0,顶端;TB=1,底部)数组显示在状态寄存器保护列表中。SEC默认设置为0。

    11.1.6 状态寄存器保护(SRP1,SRP0)

             状态寄存器保护位(SRP1和SRP0)在状态寄存器(S8、S7)中是非易失性读写位。SRP控制写保护方式:软件保护、硬件保护、掉电或者一次性可编程保护。

    11.1.7 擦除暂停状态(EraseSuspend Status---SUS)

             暂停状态位在状态寄存器(S15)中是个只读位。它在执行一次擦除暂停指令(75h)后自动置成1。在擦除恢复指令(7Ah)后自动清0.如同掉电、上电循环一样。

    11.1.8 四倍使能(QuadEnable---QE)

             四倍使能位在状态寄存器(S9)中是个非易失性读写位。它允许四倍SPI操作。QE位为0时(出厂默认值),/WP脚和/HOLD启用。QE为1时,四倍IO2和IO3启用,/WP脚和/HOLD停用。

    WARNING:如果/WP或者/HOLD脚在标准SPI或者二倍速SPI操作中直接连接到电源或者接地,QE位将不能设成1。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    11.1.9 状态寄存器内存保护

    11.2 指令集

    W25Q16BV指令集包含30个基础指令。他们都是通过SPI总线受控。指令在片选(/CS)下降沿初始化。DI 输入上的第一个字节提供指令码。DI输入上的数据在时钟的上升沿按照最重要标志位优先级取样。

             指令长度变化单个字节到几个字节不等。可能按照地址字节,数据字节,空字节。或某些情形下的一个组合。指令完成在片选信号(/CS)的上升沿。所有的读指令可以在任意时钟里成。然而,像写指令、编程写、或擦除指令必须在一个字节边界里完成(一个8bit计时后,片选(/CS)驱动就会变高。此外,内存在编程写或者擦除时,或者在写状态寄存器时,除了读状态寄存器以外的指令都被忽略,直到编程写或者擦除循环完成。

    11.2.1 制造商和设备识别码

    11.2.2 指令集表1(擦除,编程指令)

    Notes:

    1.数据字节按照MSB(MostSignificant Bit first)顺序提交。字节区域用“()”表示数据从DO脚读取

             2.状态寄存器的内容会不断重复,直到/ CS终止指令。

             3.四倍速页编程输入数据:

    IO0 = (D4,D0,……..)

    IO1 = (D5,D1,……..)

    IO2 = (D6,D2,……..)

    IO3 = (D7,D3,……..)

             4.使用双倍速或四倍速“持续读取模式”时,推荐采用“Continuous Read Mode Reset”指令。

    11.2.3 指令集表2(读取指令)

     

     

     

     

     

     

     

     

     

     

     

    11.2.4 指令集表3(ID、安全指令)

    11.2.5 写使能(06h)

    写使能指令会将状态寄存器中的写使能锁WEL位置成1.WEL位优先级需高于页编程、扇区擦除、块擦除、芯片擦除以及读状态寄存器指令。写使能指令通过使片选信号(/CS)低电平,在时钟信号(CLK)上升沿时提取指令码“06h”到DI引脚时载入,然后在片选信号高电平时驱动。

    11.2.6 禁止写(04h)

    禁止写指令会将状态寄存器中的写使能锁WEL位置成0.禁止写指令通过驱动片选信号低电平,提取指令码”04h”到DI脚时载入,然后在片选信号高电平时驱动。记住,WEL位在加电、写状态寄存器、页编程、块擦除、芯片擦除指令完成后自动重置。

    11.2.7读状态寄存器1(05h) 和 读状态寄存器2(35h)

    读状态寄存器指令允许读取8-bit状态寄存器。这个指令通过驱动片选信号(/CS)为低电平时,然后在时钟信号(CLK)上升沿提取指令码(05h---寄存器1;35h---寄存器2)送入DI脚时载入。状态寄存器位在时钟信号下降沿按照MSB顺序取出,送到DO引脚。状态寄存器位参考图标3a和3b。

    读状态寄存器指令可以在任何时间使用。这就允许通过检查BUSY状态位来判断循环指令是否完成、设备能否接受其他指令。状态寄存器可以持续读取。该指令在片选信号高电平时完成。

    11.2.8 写状态寄存器(01h)

             写状态指令允许状态寄存器可写。必须先执行写使能指令,从而使设备能够接收到写状态寄存器指令(状态寄存器WEL位必须为1)。一旦写使能,该指令通过使片选信号低电平,发送指令码”01h”,然后写状态寄存器数据字节时载入。

             仅非易失性状态寄存器位SRP0,SEC,TB,BP2,BP1,BP0(对应状态寄存器1的第7位,第5位,第4位,第3位,第2位) 以及QE,SRP1(状态寄存器2的第9,第8位)是可写的。其他只能的状态寄存器位不受写状态寄存器影响。

             在第8个或者第16个时钟后,必须拉高片选信号。如果不这样操作,将不执行写状态寄存器指令。如果第8个时钟后片选信号被拉高,则QE和SRP1位将清0。在片选信号被置为高电平时,自计时写寄存器循环将着手一个tw(参见AC特性)的时间间隔。写状态寄存器循环在执行时,然后可以检查寄存器BUSY位。BUSY为1,则表示正在写寄存器;为0,表示写循环完成或在准备接收其他指令。写寄存器指令完成后WEL位将被清0。

             写状态寄存器指令可以设置块保护位(SEC,TB,BP2,BP1以及BP0),用来保护擦除和编程写指令时的内存。被保护区变成只读。  它也可以设置状态寄存器保护位(SRP0,SRP1)。这些位与写保护引脚(/WP)连接,锁起或者一次性编程(OTP)特性来禁止写状态寄存器。所有状态寄存器位的出厂默认设置都为0。

    11.2.9 读数据(03h)

             这个指令可以按顺序从内存中读出一个或多个数据字节。这个指令通过拉低片选信号,提取指令码”03h”加上一个24-bits地址(A23-A0) 放到DI引脚中来初始化。指令码和地址位在时钟信号的上升沿载入。当地址接受后,按照MSB原则在时钟信号下降沿将指定地址上的内存数据将被提取到DO引脚。当一个字节取出后,地址自增长,从而组成一个连续数据流。这意味着整个内存读可以通过单一的指令来访问,只要时钟一直继续。片选信号为高电平时该指令结束。

             当正在擦除指令、编程写、或者写循环(BUSY = 1)时,读数据指令将被忽略并且在当前循环中不起作用。读数据指令允许时钟速率从D.C. 到 fR的最大值(参见AC电子特性)

    11.2.10 快速读(0Bh)

             快速读类似于 在较高的FR频率下执行读数据指令。它通过在24-bit地址后面加入8个空时钟来实现的。如图9所示。空时钟可以让设备内部电路补充时间来设置初始地址。在这空时钟,DO引脚上的数据是无用的,可以不关注。

            

    11.2.11 快速读双倍输出(3Bh)

    快速读双倍输出指令类似于 标准快速读指令(0Bh),用IO0 和IO 1两个引脚输出。这样数据就可以在W25Q16BV上以标准SPI设备两倍的速率传递。快速读双倍输出指令可以从Flash里快速下载代码到RAM去执行。

             类似于快速读指令,快速读双倍输出指令可以在Fr高频率下操作。通过在24-bit地址后面加入8个空时钟来实现的。空时钟可以让设备内部电路补充时间来设置初始地址。空时钟期间,DO引脚上的数据是无用的,可以不关注。但是,IO 0引脚在第一个数据输出时钟的下降沿时必须是高阻抗。

    12.2.12快速读四倍输出(6Bh)

             快速读四倍输出 同快速读双倍输出(3Bh)类似,只是通过IO 0 、IO1、IO2、IO3四个引脚输出。在接受快速读四倍输出指令前,状态寄存器2中的四倍使能必须启用(QE =1)。

             其他同快速读双倍输出(3Bh)。

    11.2.13 快速读 双倍I/O (BBh)

    快速读 双倍I/O指令可以提升随机访问同时维护2个IO引脚,IO 0 和IO 1。它类似于快速读双倍输出(3Bh),但是每个时钟读入2个地址(A23-0)。在某些程序中这种减少指令开销可以直接在双倍SPI上执行代码(XIP)。

             快速读 双倍I/O 之 持续读模式

             快速读 双倍I/O指令通过在输入地址位(A23-0)后设置”连续读取模式”

    展开全文
  • 近日,长江存储科技公司(以下简称“长江存储”)宣布,明年将正式推出闪存芯片产品。长江存储目前正在开发的是一款32层3D NAND芯片,目标数据访问速度为每秒3 Gbit。...
        

    640?wx_fmt=gif


    近日,长江存储科技公司(以下简称“长江存储”)宣布,明年将正式推出闪存芯片产品。


    长江存储目前正在开发的是一款32层3D NAND芯片,目标数据访问速度为每秒3 Gbit。如果属实,这一水准相当于DDR4内存的速度表现。据悉,正式投产后,该工厂每月可生产30万片晶圆,主要用于智能手机、个人计算、数据中心以及企业级应用。不过目前外界还无法确认该芯片的速度表现会接近DDR4内存的说法。



    目前,全球速度最快的3D NAND I/O水平为每秒1.4 Gbit,而业界所发布的产品中大多是每秒1.0 Gbit甚至速率更低的产品。凭借我们的Xtacking技术,I/O速度将可达到每秒3 Gbit,接近于DRAM DDR4的I/O速度。这一表现或将改变3D NAND行业的游戏规则。                                                       

                                                               ——长江存储CEO杨士宁

                                        640?wx_fmt=png

    因此,尽管长江存储的32层芯片在层数方面仅为96层前沿水准的三分之一,而目前英特尔/美光、西部数据/TMC以及三星的代工厂都已经开始生产96层产品。不过,如果长江存储的芯片真的能够将速度表现提升至现有产品的三倍,那层数少的问题可能不再是问题。


    事实上,如果真能实现这样的速度表现,那么其将成为比英特尔3D XPoint性能更强的非易失性存储器方案。


    Xtacking技术类似于美光的CMOS-under-Array(简称CuA)设置,其芯片的外围逻辑电路构建在NAND层下方,能够显著减少芯片的整体面积。不过区别在于,长江存储将其逻辑电路置于芯片之上,而非下方。


    长江存储公司指出,传统3D NAND设计(这里并不特指美光公司)当中,外围电路往往占芯片面积的20%到30%,这会严重拉低NAND的存储密度。随着3D NAND技术进一步发展至128层以上,外围电路最终可能占到芯片总面积的50%以上。长江存储的Xtacking技术能够有效回避这个问题。


    长江存储目前在其网站上添加了一段宣传视频,但并没有提供太多细节信息。只知道该芯片由独立的NAND与外围电路晶圆构成。外围电路负责数据IO与存储单元操作,旨在实现必要的功能设置与IO速度。


    长江存储发布的声明指出:“一旦完成阵列晶圆的处理,两块晶圆将通过数百万个金属VIA(即垂直互连接入)实现电路连接,而这些VIA将在同一工艺环节之内在整片晶圆上同时构建完成。”


    这份声明指出,该设计能够带来远超传统3D NAND的存储密度。此外,其还可以独立开发及处理阵列与外围电路,从而实现“模块化、并行化的产品开发与制造方法,从而将产品开发时间缩短至少三个月,并将制造周期缩短20%——这将显著加快3D NAND产品的上市时间。”


    除此之外,长江存储还提到,其能够立足外围逻辑电路构建具有特定及特殊功能的定制化NAND产品。这对于OEM类客户无疑具有重大吸引力。


    来自Objective Analysis公司的分析师Jim Handy指出,“东芝与PMC Sierra在两到三年之前就率先利用单独的逻辑芯片实现多层NAND的速度提升。”


    “长江公司拿出的是一种成本更低的重现方案,因为其不再采用硅通孔,而是实现面对面键合,从而将每个逻辑芯片限制在单一NAND芯片之内。这确实能够带来速度提升,但NAND闪存本身是一种速度较低的介质。这样的作法到底是否值得,最终还要看市场的实际反响。”

    640?wx_fmt=gif

    长江存储由紫光集团,国家集成电路产业投资基金,湖北地方集成电路基金,湖北科投联合投资240亿美元,于20167月正式成立,是一家集芯片设计、工艺研发、晶圆生产与测试、销售服务于一体的半导体存储器企业。


    640?wx_fmt=jpeg

    展开全文
  • 固态硬盘读写速度快的原理是什么? 我们先来回顾一下普通的机械硬盘是如何工作的。机械硬盘的读写过程需要磁头在其他机械零件的精密配合下进行寻道找到磁盘上数据存储的位置。也就是说机械硬盘的读写过程依靠的是...
  • 但是随着人们对更大规模与更处理速度的需求增加, CPU 无法满足,因此诞生了 GPU。 GPU 是图形处理器,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器,...
  • arm架构的芯片memory及智能机存储部件简述

    千次阅读 多人点赞 2014-06-03 16:00:56
    刚刚接触芯片开发的工程师常常被各式各样的存储存储管理弄得晕头转向,因此本文简单对ARM架构和基于ARM架构的处理器上的内存及内存管理做一个简单的汇总和整理。文章首先阐述了内存的分类,描述了ARM芯片包含的...
  • 什么是存储

    千次阅读 2012-03-26 16:50:48
    如今计算机已经渗透到企业运作的各个角落,企业依靠所存放的这些业务数据进行决策,因此企业如何存放数据成为企业信息系统的重中之重,这也掀起了如今的存储热潮,那么到底什么是存储存储的含义究竟是什么?  ...
  • AI芯片格局全分析

    万次阅读 2018-04-10 00:00:00
    本文分析了国内外AI芯片的格局和特点,作者认为,在AI芯片领域,国外芯片巨头占据了绝大部分市场份额,不论是在人才聚集还是公司合并等方面,都具有绝对的领先优势。而国内AI初创公司则又呈现百家争鸣、各自为政的...
  • 人工智能:AI 芯片快速起航

    千次阅读 2019-04-30 22:28:07
    来源:平安证券摘要:当前,在算力、算法和大数据三驾马车的支撑下,全球人工智能进入第三次爆发期。然而,作为引爆点的深度学习算法,对现有的算力尤其是芯片提出了更为苛刻的要求。...
  • DSP芯片介绍

    千次阅读 2006-03-18 14:36:00
    签于最近汉芯造假丑闻非常流行,这里介绍一下dsp芯片借此机会,给大家一个dsp芯片的概念http://dsp.blueidea.com/column/weekly/001/145.asp1 什么是DSP芯片 DSP芯片,也称数字信号处理器,是一种具有特殊结构的微...
  • ssd为什么比hdd速度

    千次阅读 2017-06-15 15:46:23
    文字有些多,预计需要5分钟 认识下HDD 机械硬盘名字是 HDD ...,它也不是液态或固态材质制造的,而是以铝合金...是通过电路选择存储位置进行读取,电的速度是非常的,所以ssd比hdd更
  • 原文转自:http://www.systhinker.com/html/85/n-21185.html 如果你想写份邮件,检索... 其实归根结底,你还是需要去美国应用材料公司(Applied Materials)购置一套芯片加工设备,应用材料公司是半导体工业设备的主
  • 美国重登500强榜首,这是一份每年更新两次的世界最快超级计算机排行榜。 自2012年以来,还没有一个美国系统排在榜单的首位。 前两年,中国的“神威·太湖一号”名列榜首。 在此之前的三年里,中国的“天河二号...
  • 存储介质分类: 磁性材料存储器 半导体存储器 光存储器 按功能与存取速度分类: 寄存器型存储器 高速缓冲存储器 主存储器 外存储器 按信息保存时间分类 易失型存储器 非易失型存储器 ...
  • 高效存储技术研究

    万次阅读 热门讨论 2010-12-08 21:29:00
    信息在带来价值和财富的同时,也使给我们带来许多挑战,诸如存储空间巨大、管理复杂性、存储利用率低下、电力消耗巨大、冷却能力不足、总体拥有成本高昂。数据压缩、重复数据删除、自动精简配置、自动分层存储存储...
  • 最近这十几年,GPU的计算能力发展尤其迅速,以NVIDIA 的GPU为例,从2002 - 2014年经历了飞速的增长(注:上图增长趋势最快的线条,计算速度理论峰值从小于500 GFLOPS/s 增长到超过4500 GFLOP/s)。 ...
  • 摄像机DSP芯片介绍

    千次阅读 2019-04-25 13:43:38
    DSP 即数字信号处理技术, DSP 芯片即指能够实现数字信号处理技术的芯片。DSP芯片是一种快速强大的微处理器,独特之处在于它能即时处理资料。 DSP 芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,...
  • 巨头王炸不断,硬核解读芯片技术路线

    千次阅读 多人点赞 2021-05-09 11:09:48
    信息有限的拙作,不过最近整个半导体行业实在风起云涌,上周四IBM推出了2nm的芯片,苹果春季发布会上这次苹果发布会上搭建M1的IPad Pro再度炸场、四月中旬ARM推出了新一代的ARMv9、英特尔也拿出了的至强三代Ice ...
  • 云计算的那些事之存储虚拟化

    万次阅读 2017-04-29 23:12:29
    数据在整个计算机系统是重要的一部分,也是珍贵的。数据的存储一直是一个热议的话题,在没有云计算之前数据存储已经发展了很久,可以说和云计算没有特别关系,我这边将的云计算存储通常指的是亚马逊的S3存储或者...
  • 计算机存储

    千次阅读 2017-04-18 23:17:14
    计算机内存又称主存。...RAM是计算机工作的存储区,它是一种可高速地、随机地写入和读出数据(写入速度和读出速度可以不同)的一种半导体存储器;RAM的优点是存取速度快、读写方便,缺点是数据不能长
  • 本文结合最新计算处理技术,针对倾斜摄影的空三计算、三维建模应用,给出目前最快、最高性价比的台式工作站、移动工作站、并行集群的多种配置方案(截止2018年9月) 1. 相关机型介绍 2. 硬件配置方案  2.1 台式...
  • emmc是什么意思?emmc和ufs存储对比区别 来源:手机技巧网emmc是什么意思...后来更强大的ufs就登场了,同样都是闪存芯片,读写速度确高不少,ufs2.0理论速度达到780MB/S、UFS 2.1更是高达1.5GB/S。UFS协议虽然是三星主
  • 架构设计:系统存储(1)——块存储方案(1)

    万次阅读 多人点赞 2016-08-18 20:19:21
    在“系统存储”专题中,我们将按照“从上至下”的顺序向读者介绍整个“系统存储”体系。在这个专题中我们将至少介绍机械硬盘的主要结构、硬盘阵列的分类、操作系统的EXT文件系统、NAS文件共享存储方案、分布式文件...
  • 程序员不能不懂数据存储

    千次阅读 多人点赞 2013-12-03 11:28:08
    从个人电脑到互联网时代的数据存储是如何演进的,原理是怎样的,了解了这些,有利于程序员更好的优化性能,系统架构,本文意在讨论这个话题。
  • 初识STM32F407芯片

    千次阅读 2020-02-06 21:05:47
    嵌入式的开发,核心部分是芯片的开发。目前嵌入式开发主要有单片机、嵌入式linux等。其中单片机以其功能强大、性价比高,在物联网这一行业中占据了大半江山。 4.1 初识STM32F407芯片 本节介绍单片机和STM32F407...
  • 在“系统存储”专题中,我们将按照“从上至下”的顺序向读者介绍整个“系统存储”体系。在这个专题中我们将至少介绍机械硬盘的主要结构、硬盘阵列的分类、操作系统的EXT文件系统、NAS文件共享存储方案、分布式文件...
  • 存储墙问题

    千次阅读 2016-01-18 13:53:28
    处理器的时钟频率和性能以超乎想象的速度增长;但是主存的访问速度(主要是DRAM)的增长却要缓慢的多;...计算,存储,I/O的速度越来越不匹配,平衡体系结构的设计越来越困难。 微处理器速度增长的速
  • 存储系统分布式存储有出色的性能,可以扛很多故障,能够轻松扩展,所以我们使用Ceph构建了高性能、高可靠的块存储系统,并使用它...用户对于块存储系统直观的感受来源于云硬盘服务,现在我们的云硬盘的特点是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,161
精华内容 16,864
关键字:

存储芯片速度最快的是