❶ 直接存储器存取(DMA)方式是__方式
DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
-------------------------------------------------
DMA方式的数据传送过程
DMA方式具有如下特点:
1、 外部设备的输入输出请求直接发给主储存器。
主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。
2、 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。
由于在外围设备与主存储器之间传送数据不需要执行程序,因此,也不动用CPU中的数据寄存器和指令计数器等。
3、在DMA控制器中,除了需要设置数据缓冲寄存器、设备状态寄存器或控制寄存器之外,还要设置主存储器地址寄存器,设备地址寄存器和数据交换个数计数器。
外围设备与主存储器之间的整个数据交换过程全部要在硬件控制下完成。另外,由于外围设备一般是以字节为单位传送的,而主存储器是以字为单位访问的,因此,在DMA控制器中还要有从字节装配成字和从字拆卸成字节的硬件。
4、在DMA方式开始之前要对DMA控制器进行初始化,包括向DMA控制器传送主存缓冲区首地址、设备地址、交换的数据块的长度等,并启动设备开始工 作。在DMA方式结束之后,要向CPU申请中断,在中断服务程序中对主存储器中数据缓冲区进行后处理。如果需要继续传送数据的话,要再次对DMA控制器进 行初始化。
5、在DMA方式中,CPU不仅能够与外围设备并行工作,而且整个数据的传送过程不需要CPU的干预。如果主存储器的频带宽度足够的话,外围设备的工作可以丝毫不影响CPU运行它自身的程序。
DMA方式的工作流程如下:
对于输入设备:
从输入介质上读一个字节或字到DMA控制器中的数据缓冲寄存器BD中,如果输入设备是面向字符的,则要把读入的字符装配成字。
若一个字还没有装配满,则返回到上面;若校验出错,则发中断申请;若一个字已经装配满,则将BD中的数据送入主存数据寄存器。
把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并且将BA中的地址增值至下一个字地址。
把DMA控制器内的数据交换个数计数器BC中的内容减"1"。
若BC中的内容为"0",则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
对于输出设备:
把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并启动主存储器,同时将BA中的地址增值至下一个字地址。
将主存储器数据寄存器中的数据送入DMA控制器的数据缓冲寄存器BD中。如果输出设备是面向字符的,则要把BD中的数据拆卸字符。
把BD中数据逐个字符(对于面向字符的设备)或整个字写到输出介质上。
把DMA控制器内的数据交换个数计数器BC中的内容减"1"。
若BC中的内容为"0",则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
目前使用的DMA方式实际上有如下三种:
1、周期窃取方式
在每一条指令执行结束时,CPU测试有没有DMA服务申请,如果有,则CPU进入一个DMA周期。在DMA周期中借用CPU完成上面所列出的DMA工作流程。包括数据和主存地址的传送,交换个数计数器中的内容减"1",主存地址的增值及一些测试判断等。
采用周期窃取方式时,主存储器可以不与外围设备直接相连接,而只与CPU连接,即仍然可以采用如图4.4那样的连接方式,因为外围设备与主存储器的数据交换与程序控制输入输出方式和中断输入输出方式一样都是要经过CPU的。
周期窃取方式与程序控制输入输出方式和中断输入输出方式的不同处主要在:它不需要使用程序来完成数据的输入或输出,只是借用了一个CPU的周期来完成DMA流程。因此,其工作速度是很快的。
周期窃取方式的优点是硬件结构很简单,比较容易实现。缺点是在数据输入或输出过程种实际上占用了CPU的时间。
2、直接存取方式
这是一种真正的DMA方式。DMA控制器的数据传送申请不是发向CPU,而是直接发往主存储器。在得到主存储器的响应之后,整个DMA工作流程全部在DMA控制器中用硬件完成。
直接存取方式的优点与缺点正好与周期窃取方式相反。
目前的多数计算机系统均采用直接存取方式工作。
3、数据块传送方式
在设备控制器中设置一个比较大的数据缓冲存储器,一般要能够存放下一个数据块,如在软磁盘存储器中通常设置512个字节的数据缓冲存储器。与设备介质之间的数据交换在数据缓冲存储器中进行。设备控制器与主存储器之间的数据交换以数据块为单位,并采用程序中断方式进行。
数据块传送方式实际上并不是DMA方式,只是它在每次中断输入输出过程中是以数据块为单位获得或发送数据的,这一点与上面两种DMA方式相同,因此,通常也把这种输入输出方式归入DMA方式。
采用数据块传送方式的外围设备还有行式打印机,激光打印机,卡片阅读机,部分绘图仪等。
❷ 请教问答题:内存储器和外存储器有什么不同它们各自有什么优缺点
内存储器是cpu与外部设备交换数据的直接场所,内存储器速度次于cpu速度,但是也算是高速存储设备,其包括ram(我们常说的内存),显存,及一些高速缓存。
外存储器是外部存储设备,速度相对内存慢的多,但可以长时间保存数据,如硬盘,cd-rom,闪存等等。
❸ 什么是直接内存访问 (DMA)
DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。
在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。利用DMA传送数据的另一个好处是,数据直接在源地址和目的地址之间传送,不需要中间媒介。如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成。这样大大提高了计算机运行速度和工作效率。
计算机发展到今天,DMA已不再用于内存到内存的数据传送,因为CPU速度非常快,做这件事,比用DMA控制还要快,但要在适配卡和内存之间传送数据,仍然是非DMA莫属。要从适配卡到内存传送数据,DMA同时触发从适配卡读数据总线(即I/O读操作)和向内存写数据的总线。激活I/O读操作就是让适配卡把一个数据单位(通常是一个字节或一个字)放到PC数据总线上,因为此时内存写总线也被激活,数据就被同时从PC总线上拷贝到内存中。
直接内存访问(DMA)方式是一种完全由硬件执行I/O交换的工作方式。DMA控制器从CPU完全接管对总线的控制。数据交换不经过CPU,而直接在内存和I/O设备之间进行。DMA控制器采用以下三种方式:
①停止CPU访问内存:当外设要求传送一批数据时,由DMA控制器发一个信号给CPU。DMA控制器获得总线控制权后,开始进行数据传送。一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。
②周期挪用:当I/O设备没有 DMA请求时,CPU按程序要求访问内存:一旦 I/O设备有DMA请求,则I/O设备挪用一个或几个周期。
③DMA与CPU交替访内:一个CPU周期可分为2个周期,一个专供DMA控制器访内,另一个专供CPU访内。不需要总线使用权的申请、建立和归还过程。
❹ Hibernate 中直接调用数据库存储过程的优点与缺点
直接通过Hibernate API进行批量更新和批量删除都不值得推荐。而直接通过JDBC API执行相关的SQL语句或调用相关的存储过程,是批量更新和批量删除的最佳方式,这两种方式都有以下优点:
(1) 无需把数据库中的大批量数据先加载到内存中,然后逐个更新或修改它们,因此不会消耗大量内存。
(2) 能在一条SQL语句中更新或删除大批量的数据。
值得注意的是,在Hibernate3.0中对批量更新和批量删除提供了有力的支持,允许通过Hibernate3.0的有关接口,进行高性能的批量更新和批量删除操作
❺ 说明直接存储密码法的优缺点
简单讲:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度
❻ 常用存储器片选控制方法有哪几种它们各有什么优缺点
行选择,部分解码,全部解码。
线路选择电路简单,但会造成地址Z栈、空间利用率低和特定编程不宜编织。
全译码具有较高的芯片利用率和无地址栈,但电路比选线方法复杂得多。
部分译码介于两者之间,也可以产生一定程度的地址栈,但存在一个相对相邻的地址空间。
(6)直接储存器访问方式优缺点扩展阅读
存储器是用来存储程序和各种数据信息的存储器。记忆可分为两类:初级记忆(简称初级记忆或BAI)和辅助记忆(简称辅助记忆或外部记忆)。它是主存,直接与CPU交换信息。
在主存储器中收集存储单元的载体称为存储体。存储器中的每个单元都可以保存由二进制代码表示的一串信息。信息的总比特数称为存储单元的字长。存储单元的地址与存储在其中的信息相对应。存储单元的位置只有一个固定地址,存储在其中的信息可以被替换。
❼ 直连存储的优缺点是什么
直连存储的优点:配置成本最低,因为该方案只需要将存储设备通过SCSI接口与服务器相连接即可,配置十分简单,适合小型公司使用。
直连存储的缺点:因为整体配置过于简单,该方案也存在一些缺陷服务器如果故障,数据就不能访问多服务器系统不容易管理,存储空间不能控制分配,会产生资源的浪费存储备份操作复杂。
(7)直接储存器访问方式优缺点扩展阅读:
直连式存储的分类:
直连存储又可分为内直连式存储和外直连式存储。
内直连式存储是指存储设备与服务器通过串行或并行SCSI总线接1:3电缆直接集成在一起,但SCSI总线自身有传输距离和挂载设备的限制。
外直连式存储通过SCSI或光纤通道将服务器和外部的存储设备直接连接,与内直连式存储相比,外直连式存储可通过光纤通道克服传输距离和挂载设备的限制。
对于少量PC机或服务器,使用直连式存储连接简单、易于配置和管理、费用较低,但这种连接方式下,因每台计算机单独拥有自己的存储磁盘,所以不利于存储容量的充分利用和服务器间的数据共享,而且存储系统没有集中统一的管理方案,也不利于数据维护,因此直连式存储不适合作为企业级的存储解决方案。
❽ 比较各个存储类型的优缺点
【块存储】
典型设备:磁盘阵列,硬盘
块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)等种种方式逻辑划分出N个逻辑的硬盘。(假设划分完的逻辑盘也是5个,每个也是1G,但是这5个1G的逻辑盘已经于原来的5个物理硬盘意义完全不同了。例如第一个逻辑硬盘A里面,可能第一个200M是来自物理硬盘1,第二个200M是来自物理硬盘2,所以逻辑硬盘A是由多个物理硬盘逻辑虚构出来的硬盘。)
接着块存储会采用映射的方式将这几个逻辑盘映射给主机,主机上面的操作系统会识别到有5块硬盘,但是操作系统是区分不出到底是逻辑还是物理的,它一概就认为只是5块裸的物理硬盘而已,跟直接拿一块物理硬盘挂载到操作系统没有区别的,至少操作系统感知上没有区别。
此种方式下,操作系统还需要对挂载的裸硬盘进行分区、格式化后,才能使用,与平常主机内置硬盘的方式完全无异。
优点:
1、 这种方式的好处当然是因为通过了Raid与LVM等手段,对数据提供了保护。
2、 另外也可以将多块廉价的硬盘组合起来,成为一个大容量的逻辑盘对外提供服务,提高了容量。
3、 写入数据的时候,由于是多块磁盘组合出来的逻辑盘,所以几块磁盘可以并行写入的,提升了读写效率。
4、 很多时候块存储采用SAN架构组网,传输速率以及封装协议的原因,使得传输速度与读写速率得到提升。
缺点:
1、采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高。
2、主机之间的数据无法共享,在服务器不做集群的情况下,块存储裸盘映射给主机,再格式化使用后,对于主机来说相当于本地盘,那么主机A的本地盘根本不能给主机B去使用,无法共享数据。
3、不利于不同操作系统主机间的数据共享:另外一个原因是因为操作系统使用不同的文件系统,格式化完之后,不同文件系统间的数据是共享不了的。例如一台装了WIN7/XP,文件系统是FAT32/NTFS,而Linux是EXT4,EXT4是无法识别NTFS的文件系统的。就像一只NTFS格式的U盘,插进Linux的笔记本,根本无法识别出来。所以不利于文件共享。
【文件存储】
典型设备:FTP、NFS服务器
为了克服上述文件无法共享的问题,所以有了文件存储。
文件存储也有软硬一体化的设备,但是其实普通拿一台服务器/笔记本,只要装上合适的操作系统与软件,就可以架设FTP与NFS服务了,架上该类服务之后的服务器,就是文件存储的一种了。
主机A可以直接对文件存储进行文件的上传下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能已经由文件存储自己搞定了。
优点:
1、造价交低:随便一台机器就可以了,另外普通以太网就可以,根本不需要专用的SAN网络,所以造价低。
2、方便文件共享:例如主机A(WIN7,NTFS文件系统),主机B(Linux,EXT4文件系统),想互拷一部电影,本来不行。加了个主机C(NFS服务器),然后可以先A拷到C,再C拷到B就OK了。(例子比较肤浅,请见谅……)
缺点:
读写速率低,传输速率慢:以太网,上传下载速度较慢,另外所有读写都要1台服务器里面的硬盘来承担,相比起磁盘阵列动不动就几十上百块硬盘同时读写,速率慢了许多。
【对象存储】
典型设备:内置大容量硬盘的分布式服务器
对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。
之所以出现了对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬它俩各自的优点。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利 于共享的出来呢。于是就有了对象存储。
首先,一个文件包含了了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据)。
以往像FAT32这种文件系统,是直接将一份文件的数据与metadata一起存储的,存储过程先将文件按照文件系统的最小块大小来打散(如4M的文件,假设文件系统要求一个块4K,那么就将文件打散成为1000个小块),再写进硬盘里面,过程中没有区分数据/metadata的。而每个块最后会告知你下一个要读取的块的地址,然后一直这样顺序地按图索骥,最后完成整份文件的所有块的读取。
这种情况下读写速率很慢,因为就算你有100个机械手臂在读写,但是由于你只有读取到第一个块,才能知道下一个块在哪里,其实相当于只能有1个机械手臂在实际工作。
而对象存储则将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象,会先访问元数据服务器,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。
这时候由于是3台OSD同时对外传输数据,所以传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。
另一方面,对象存储软件是有专门的文件系统的,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。
所以对象存储的出现,很好地结合了块存储与文件存储的优点。
最后为什么对象存储兼具块存储与文件存储的好处,还要使用块存储或文件存储呢?
1、有一类应用是需要存储直接裸盘映射的,例如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对裸盘进行格式化的,所以是不能够采用其他已经被格式化为某种文件系统的存储的。此类应用更适合使用块存储。
2、对象存储的成本比起普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储的形式好了,性价比高。
❾ 两种存储表示各有哪些主要优缺点
线性表可用顺序表或链表存储。
试问: 两种存储表示各有哪些主要优缺点?
答:顺序存储表示是将数据元素存放于一个连续的存储空间中,实现顺序存取或(按下标)直接存取。它的存储效率高,存取速度快。但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。同时,由于在插入或删除时,为保持原有次序,平均需要移动一半(或近一半)元素,修改效率不高。
链接存储表示的存储空间一般在程序的运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生存储溢出的问题。同时在插入和删除时不需要保持数据元素原来的物理顺序,只需要保持原来的逻辑顺序,因此不必移动数据,只需修改它们的链接指针,修改效率较高。但存取表中的数据元素时,只能循链顺序访问,因此存取效率不高。