精华内容
下载资源
问答
  • 存储技术简要介绍

    2020-07-05 20:39:55
    为了平衡存储空间,读写速度,价格等因素,大多数设备中都使用了2到3级不同的存储设备。 第一级存储需要有最快的速度,但容量很小。cache作为cpu缓存,使用最快的SRAM电路实现,通过把主存的数据拷贝到cache,...

    现如今,无论是计算机还是手机,都离不开存储设备。

    根据冯诺依曼结构,存储设备和cpu是分开的。

    为了平衡存储空间,读写速度,价格等因素,大多数设备中都使用了2到3级不同的存储设备。

    第一级存储需要有最快的速度,但容量很小。cache作为cpu缓存,使用最快的SRAM电路实现,通过把主存中的数据拷贝到cache中,提高cup的访问速度。cache中需要的最关键技术就是地址的映射问题,有三种方法直接映射、全相连映射和组相联映射。

    第二级存储需要较快速度,也要有一定的容量。这就是我们常说的主存(内存条),通常采用的是DRAM电路,通过电容来存储和读取数据。DRAM最大的问题是随着晶体管尺寸的缩小,在一个cell中没有足够的空间产生合适的电容。此外DRAM因为电容的放电特性,需要进行额外的刷新操作,来维持电容上的电量,刷新时间一般为ms级。

    第三级存储不需要很快的速度,但是要有很大的容量,一般有HDD(hard disk drive)和SSD(solid static disk)两种。HDD就是机械硬盘,SSD就是固态硬盘。SSD又有NOR和NAND两种。NAND采用了floating gate的技术,就是在NOMS的gate下面又加了一层,通过给Vgs加一个很大的电压来给floating gate充电并改变vth进而改变读数据过程中的电流大小,并且这个过程是可逆的floating gate可以复原。floating gate是东芝公司的Dr.F.Masuoka在1986年发明的。

    SRAM和DRAM都是volatile memory,掉电丢失数据。SSD和HDD是nonvolatile memory,掉电也能存储数据,比如硬盘里的小电影。

    之后有时间的话,再详细地介绍一下这三种常见的存储技术。

    展开全文
  • 话不多说,开始今天学习:image一、IO流概述说到IO流,先得提一提电脑基本概念:CPU:中央处理器,处理速度最快。memory:内存,临时性存储设备,处理速度次之,但数据不保存。disk:硬盘,持久性存储设备,处理...

    ​今天是我自学Java的第41天。

    感谢你的观看,谢谢你。

    话不多说,开始今天的学习:

    1ca3800f3af8

    image

    一、IO流概述

    说到IO流,先得提一提电脑的基本概念:

    CPU:中央处理器,处理速度最快。

    memory:内存,临时性存储设备,处理速度次之,但数据不保存。

    disk:硬盘,持久性存储设备,处理速度最慢,但数据永久保存。

    什么叫IO流?

    IO流,就是指读写文件的技术。

    1.input

    I就是指input:输入的意思,这是输入流。

    意思是将硬盘里的数据输入到内存里,也就是读取文件。

    2.output

    O指output:输出的意思,这是输出流。

    意思是将内存中的数据输出到硬盘上,也就是写入文件。

    用一句话记忆就是:输入到内存(读取硬盘),从内存输出(写入硬盘)。

    举一个例子:

    我们在记事本上写东西,写完后保存,保存的过程就是写入文件的过程。

    不保存:数据是在内存里面,退出后数据会消失;

    保存:数据会被写到硬盘上,退出后数据也会保存。

    其中根据数据的类型IO流又分为:

    字节流 :以字节为单位读写数据的流,能够操作所有文件

    字节输入流: InputStream

    字节输出流: OutputStream

    字符流 :以字符为单位读写数据的流,用于操作文本文件

    字符输入流: Reader

    字符输出流: Writer

    今天主要学习字节流:

    二、OutputStream输出流

    它是输出流最上层的父类,是一个抽象类,其中它有一个子类叫FileOutputStream。

    1.构造方法(一)

    先介绍其两个构造方法:

    1ca3800f3af8

    image

    ①构造方法一:路径存在

    FileOutputStream(String name)。

    根据文件路径输出文件,“a.txt”是一个相对路径,所以是输出在当前项目下。

    ②构造方法一:路径不存在

    “aa/a.txt”因为其父路径不存在,所以会报错。

    ③构造方法二

    FileOutputStream(File file)。

    一般都是使用构造方法一,简单方法,只要输入路径就好了,但是会出现②中的这种情况。

    而构造方法二就是解决这类问题的。

    可以先在file中加一个判断,父路径不存在就先创建目录,再创建输出流。

    2.常用方法

    1ca3800f3af8

    image

    ①write(int b)方法

    这个方法表示是一个字节一个字节地写。

    按照ASCII码表编码,97就对应a,98就对应b,99就对应c。

    所以①的操作会在文件里写入abc。

    ②write(byte[] b)方法

    这是先写一个byte数组,在写入文件。

    也是按照ASCII码表编码。

    ③write(byte[] b, int off, int len)

    off表示的是偏移量

    len表示的是长度

    也就是说写入文件的数组,是从b数组中off索引位开始,2个长度。

    ④close()方法

    关流,节省资源。就可以将其理解成关闭水龙头。

    所以在a.txt文件中会写入:abcabcbc。

    3.构造方法(二)

    1ca3800f3af8

    image

    我们新创建一个输出流,操作同一个文件,写入一个数组,会将文件中的内容覆盖掉。

    a.txt文件里的内容从abcabcbc变成了刘小爱。

    但若是我不是想覆盖而是续写在后面该怎么办?

    构造方法三:

    FileOutputStream(String name,boolean append)

    append,附加的意思,默认值为false。

    如果append为true的话,会拼接到文件后面;

    如果append为false的话,就会覆盖。

    1ca3800f3af8

    image

    ①直接输入换行符

    不同的操作系统有着不同的换行符

    Windows 系统识别的换行符:\r\n

    Unix 系统识别的换行符:\n

    MacOs/Linux系统识别的换行符:\r

    ②System方法输入换行符

    System.lineSeparator():该方法会根据系统的不同而输入不同的换行符。

    二、InputStream输入流

    它是输入流最上层的父类,是一个抽象类,其中它有一个子类叫FileInputStream。

    1.read方法基本用法

    1ca3800f3af8

    image

    ①创建输入流

    如果文件不存在,输入流会直接报错。

    ②read()方法

    输入流的读操作。

    返回值即为读取的字符,一次只能读取一个;

    如果读到了文件末尾,返回值为-1。

    ③使用while循环

    一次读取所有内容,当返回值为-1时结束循环。

    2.read方法(利用buffer读取文件)

    这个稍稍有点难理解,我们一步一步分析:

    1ca3800f3af8

    image

    ①创建输入流

    其中文件里的内容为abcdefgh.

    创建buffer数组,长度为3,(buffer为缓存的意思)

    ②第一次读数据

    将读到的数据放入buffer中,并返回读到的长度。

    因为buffer的长度为3,所以每次读取读3个字节。

    所以读到的是abc,长度为3。

    ③第二次读数据

    读到的是def,长度为3。

    buffer中def将abc覆盖掉了,所以打印def。

    ④第三次读数据

    文件中只有最后两个字节了,

    所以读到的是gh,长度为2

    buffer中只覆盖了前两个字节,后面的第3个字节保持不变(gh将def覆盖得到ghf),所以打印ghf。

    ⑤第四次读数据

    因为都读完了,根本就没有读文件,所以返回值为-1(注意不为0哦)

    buffer没有改变,所以还是打印ghf。

    以上就是利用buffer数组读取文件时的工作原理。

    但这样太繁琐了,有没有简单的方法?

    有的,使用while循环就好了。

    3.read方法(利用buffer读取文件while循环)

    1ca3800f3af8

    image

    ①使用while循环

    当length不为-1时,一直循环执行read操作;

    当length为-1时,表示文件读到了最后,所以结束循环。

    ②使用字符串偏移

    最后一次的字符串长度我们只需要读取到的数据,也就是ghf只需要gh即可。

    总结

    1ca3800f3af8

    image

    展开全文
  • ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的...RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所...

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

    RAM
    RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

    DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。

    DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

    内存工作原理
    内存是用来存放当前正在使用的(即执行中)的数据和程序,我们平常所提到的计算机的内存指的是动态内存(即DRAM),动态内存中所谓的"动态",指的是当我们将数据写入DRAM后,经过一段时间,数据会丢失,因此需要一个额外设电路进行内存刷新操作。
    具体的工作过程是这样的:一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,代表1的电容会放电,代表0的电容会吸收电荷,这就是数据丢失的原因;刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。

    ROM
    ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
    举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
    FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

    FLASH
    目前Flash主要有两种NOR FlashNADN Flash
    NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

    NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

    一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NANDFLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。

    NAND Flash和NOR Flash的比较
    NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。

    相"flash存储器"经常可以与相"NOR存储器"互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
    NOR是现在市场上主要的非易失闪存技术。NOR一般只用来存储少量的代码;NOR主要应用在代码存储介质中。NOR的特点是应用简单、无需专门的接口电路、传输效率高,它是属于芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在(NOR型)flash闪存内运行,不必再把代码读到系统RAM中。在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。NOR flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NOR flash占据了容量为1~16MB闪存市场的大部分。
    NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。

    展开全文
  • SD卡是一种主要以Nand Flash作为存储介质,具有体积小、数据传输速度快以及支持热插拔优点。如今,已被广泛应用于数码相机、便携式移动设备以及手机等多种设备中。 SD卡分类 (一)、按照大小进行分类 1、Micro ...

    SD卡的用途

            SD卡是一种主要以Nand Flash作为存储介质,具有体积小、数据传输速度快以及支持热插拔的优点。如今,已被广泛应用于数码相机、便携式移动设备以及手机等多种设备中。

    SD卡分类

    (一)、按照大小进行分类

    1、Micro SD卡(本文称为SD卡)
    如下图所示:
    在这里插入图片描述
    2、SD卡
    如下图所示:
    在这里插入图片描述
    3、对比
    Micro SD卡和SD卡最主要的不同便是SD卡的尺寸更大,且侧面(红色标记)具有一个写保护开关。两者的通讯协议都是一致的,即两者的驱动程序可以共用。并且,通过SD卡套,也可以将Micro SD卡变为SD卡。

    (二)、按照用途分类

    1、SD I/O卡:指的是支持利用SDIO协议进行数据通讯的设备,比如:WIFI卡、蓝牙适配器等;
    2、SD存储卡:本文使用的类型;
    3、MMC卡:早期的存储设备;
    4、ATA设备:主要为笔记本电脑提供的高速通讯接口

    (三)、按照尺寸进行分类

    1、厚度为2.1mm:正常尺寸的SD卡
    2、厚度为1.4mm:小尺寸SD卡

    (四)、按照容量进行分类

    1、SDSC:小于2GB
    2、SDHC:大于2GB小于32GB
    3、SDXC:大于32GB小于2TB

    (五)、按照内部编程速度分类

    1、class 0
    2、class 2:最低2MB/sec
    3、class 4:最低4MB/sec
    4、class 6:最低6MB/sec
    5、class 10:最低10MB/sec
    6、UHS-I:写入数据50MB/sec以内,读取数据104MB/sec以内
    7、UHS-II:写入数据156MB/sec以内,读取数据312MB/sec以内
    注意事项:MB/sec = 10001000 Bytes/sec而不是10241024Bytes/sec

    (六)、按照电压范围分类

    1、SD卡高电压工作电压范围:2.7V~3.6V
    2、UHS-II SD卡工作电压范围:1.7V~1.95V

    SD卡原理图

    在这里插入图片描述

    引脚关系

    见上图1部分,SD卡具有9个引脚,其中,四条数据线三条电源线一条时钟线一条命令线

    数据线

    完成主机与SD卡之间的数据传输

    时钟线

    由主机产生通讯使用的时钟信号

    命令线

    主机向从机通过命令线发送命令,SD卡通过命令线向主机反馈响应

    电源线

    提供电源和地

    寄存器

    见上图4部分,SD卡一共具有8个寄存器,且寄存器的长度都不是完全相同的。

    电源检测电路

    见上图2部分,电源检测电路是SD卡一个很重要的部分,因为当SD卡插入或者拔除时,均是由该电路进行检测。并且,通过该电路还可以对SD卡进行复位操作,这也是很重要的一点。

    存储单元部分

    见上图3,SD卡的存储部分分为用户空间受保护空间,我们在平时使用中,绝大多数时候都是对用户空间进行操作。SD卡的容量大小为两者之和,所以,实际可以进行操作的存储区域要小于SD卡上标注的容量大小。

    支持的通讯总线协议

    SDIO总线协议

    利用该总线协议,可以使用最多四条数据线实现主机与SD卡之间的数据传输,所以速度相对而言可以达到最高,但是需要主机具有SDIO控制器,才可以使用该协议(?不知道可不可以用软件进行模拟?)。详细的内容将在下篇文章进行介绍。

    SPI总线协议

    如果主机不支持SDIO协议,那么可以使用SPI协议对SD卡进行操作。虽然速度比SDIO慢,但是硬件上更加简单,只需要四根线便可以实现与SD卡进行通讯。详细的内容将在后面的文章中进行详细的介绍。

    总结

    本篇文章主要是对SD卡进行简要的介绍,作为驱动SD卡的基础知识。如果有疏漏和错误之处,还望各位读者不吝指正,我将在以后的文章中进行校正和完善。谢谢!

     

    https://blog.csdn.net/IssacMi/article/details/102612220

    展开全文
  • 由于计算机的存储设备与处理器运算能力之间有几个数量级差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度高速缓存(cache)来作为内存与处理器之间缓冲:将运算需要使用到数据...
  • 8.软件十分小巧,甚至可以在安装后,直接将安装目录中文件复制到任何可移动存储设备中,方便携带,随取随用; 9.所有复制操作都是通过“从介质(硬盘)读数→写入数→从缓存中读出→向介质(硬盘)写入数”这几...
  • FlashBench是一个迷你绿色软件,它能够全方位测试U盘等使用Flash作为介质移动存储设备的读写速度。... 而下载这个软件官网上面,也称列着目前读写速度最快U盘TOP10.如果你想要买卖,这个可以做为很好参考哦。
  • 硬盘是电脑重要硬件之一,是存储设备,它性能直接影响电脑整体运行速度,现在市面上常见硬盘,分为机械硬盘与固态硬盘,机械硬盘有笔记本电脑与台式机区分,固态硬盘主要就是接口与协议区分,常见...
  • 寄存器与内存区别

    千次阅读 2016-04-06 20:43:05
    计算机的存储层次(memory hierarchy)之,寄存器(register)最快,内存其次,最慢的是硬盘。 同样都是晶体管存储设备,为什么寄存器比内存快呢? Mike Ash写了一篇很好的解释,非常通俗地回答了
  • 04.磁盘

    2016-10-15 13:07:51
    寄存器:(cpu内部):读写速度最快,容量最小,价钱最贵 内存:​读写一般快,容量介于寄存器与磁盘之间,价格中等 磁盘:读写最慢,​容量最大,价格最便宜 因为寄存器和内存虽然速度快但因为容量与价格限制...
  • 目录参考源硬盘简介机械硬盘机械硬盘读写速度最快有多快固态硬盘固态硬盘速度有多快磁盘接口类型硬盘选购硬盘常见故障 参考源 小猿圈 https://book.apeland.cn/details/179/ 硬盘简介 硬盘是计算机最重要的存储...
  • 分层缓存 一、缓存概念 1、概念 用于存储数据的硬件或软件的组成部分,以使得后续更快...a、将数据写入读写速度最快的存储设备。 b、将数据缓存到离应用最近的地方。 c、将数据缓存到离客户最近的地方。 二、...
  • 关于硬盘数据恢复硬盘是电脑上主要数据存储设备,随着科技进步,硬盘容量越来越大,读写速度也越来越。不论是工作还在生活,用户存储在硬盘上数据越来越多,其中包括平时拍摄照片、视频、办公文档、...
  • 而且由于计算机存储设备和处理器运算速度上相差好几个数量级,因此我们在内存和处理器之间加入一层读写速度尽可能接近处理器运算速度高速缓存来作为内存和处理器之间缓冲:将运算需要使用到数据复制到缓存,...
  • 硬盘分为机械硬盘和固态硬盘,是计算机中最重要的存储设备,虽然目前固态硬盘市场遭到了机械硬盘强力冲击,但是在不少领域,固态硬盘依然有着自己不可撼动优势,它读写速度快,且低功耗,运行时候基本没有...
  • 深入浅出理解 | Java 内存模型

    千次阅读 2015-07-21 01:11:10
    这个图是说明计算硬件的存储层次(memory hierarchy)之,寄存器(register)最快,内存其次,最慢的是硬盘。大多数的内存运算任务都不可能只靠处理器“计算”完成,处理器需要与与内存进行交互,如读取运算数据、...
  • FPGA——SD卡控制器1

    2019-08-13 17:09:55
    是从MMC(多媒体卡)的基础上发展而来的,增加了更高的安全性和更快的读写速度。目前已经成为消费数码产品设备中最广泛的一种存储卡。 特点:体积小,传输速度快,容量大,支持热插拔 基于flash结构,所以可以断电...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    6.22 如何在一个文件判断声明为extern数组大小(例如,数组定义和大小在另一个文件)?sizeof操作符似乎不行。 6.23 sizeof返回大小是以字节计算,怎样才能判断数组有多少个元素呢? 第7章 内存...
  • 计算机硬件-硬盘

    2019-10-04 18:41:17
    计算机硬件-硬盘 硬盘 作用 是计算机重要的存储设备,负责持久化数据 ...最快的nvme.m2 告诉SSD磁盘理论读写速度为3400MB/S 机械硬盘 机械硬盘是由磁盘片、磁头、马达、电路板等部件组成,分为2...
  • 数字集成电路广泛用于计算机、控制与测量系统,以及其它电子设备中。 一般说来,数字系统中运行电信号,其大小往往并不改变,但在实践分布上 却有着严格要求,这是数字电路一个特点。 2 系统总体设计: 2.1 ...
  •  Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常...
  • 一、单选题 1、在计算机系统,外存储器必须通过___C________才能实现与主机的信息交换。 A电缆 B 总线插槽 C接口 D...5、在微型计算机,存取信息速度最快的设备是___B____________。 A内存 B Cache C硬盘 D DVD

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

存储设备中读写速度最快的是