直接存储器存取—基本原理、结构与应用
- 格式:doc
- 大小:445.00 KB
- 文档页数:8
计算机基础知识什么是计算机存储系统原理计算机基础知识:“计算机存储系统原理”计算机存储系统是计算机的重要组成部分,负责存储和读取数据以及程序。
在计算机基础知识中,了解计算机存储系统的原理对我们理解计算机的工作原理至关重要。
本文将介绍计算机存储系统的原理,包括存储层次结构、存储器类型和工作原理。
一、存储层次结构计算机存储系统按照速度和容量的不同可以分为多个层次,包括寄存器、高速缓存、主存、辅助存储器等。
存储层次结构的设计遵循着局部性原理,即程序和数据的访问模式倾向于在时间和空间上的局部性。
这样设计可以提高计算机的运行效率和存储资源的利用率。
1. 寄存器寄存器是位于CPU内部的最快速的存储器,用于存放CPU需要快速访问的数据和指令。
寄存器的容量非常有限,但由于其接近于CPU,可以在一个时钟周期内完成存储和读取操作,因此被广泛用于高速缓存的构建。
2. 高速缓存高速缓存是位于CPU和主存之间的一级缓存存储器,用于存放主存中频繁访问的数据和指令。
高速缓存具有快速的访问速度和较大的容量,它根据局部性原理将主存中的数据块复制到自己的存储空间中,以便更快地响应CPU的访问请求。
3. 主存主存是计算机存储系统中最大的存储器,用于存放运行中的程序和数据。
主存的容量相对较大,但相对于CPU的访问速度较慢。
主存是计算机与外部设备交换数据的主要通道,CPU通过访问主存来读取和写入数据。
4. 辅助存储器辅助存储器是计算机存储系统中容量最大的存储器,主要用于长期存储大量的数据和程序。
辅助存储器的访问速度相对较慢,但容量非常大,如硬盘、光盘和闪存等。
辅助存储器的特点是数据可以永久保存,即使计算机断电也能保持数据的完整性。
二、存储器类型计算机存储器按照存储介质的不同可以分为多种类型,包括寄存器、随机存取存储器(RAM)、只读存储器(ROM)和闪存等。
1. 寄存器寄存器是CPU内部的存储器,用于暂时存放数据和指令。
寄存器的容量非常有限,但由于其速度快,被用于存放当前执行的指令和数据。
单片机内部存储器结构与数据存取方法详解单片机是一种集成了处理器、内存和外设等功能于一体的微电子器件,广泛应用于各种电子设备中。
其中,内部存储器是单片机的核心组成部分之一。
本文将详细介绍单片机内部存储器的结构和数据存取方法。
一、单片机内部存储器的结构单片机的内部存储器主要包括随机存取存储器(RAM)和只读存储器(ROM)两部分。
1. 随机存取存储器(RAM)RAM是单片机内部的易失性存储器,用于存储数据、程序临时数据和运行时数据。
单片机内部的RAM可以根据存取速度和使用要求的不同,分为片内RAM 和片外RAM两种。
片内RAM是单片机芯片内部集成的存储器,速度较快。
它可以分为片内可读写RAM(RW-RAM)和片内只读RAM(RO-RAM)两种类型。
片内可读写RAM可以被程序读取和修改,存储媒介是电容或电子触发器。
而片内只读RAM则只能被程序读取,不能被修改。
片内RAM的容量相对较小,一般在几十到几百字节之间。
片外RAM是连接在单片机芯片外部的存储器,速度较慢。
它可以进一步分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)两种类型。
SRAM是基于触发器构建的,数据存储在触发器中,读写速度快且无需刷新。
DRAM则是基于电容构建的,存储数据需要定期刷新,但容量较大。
2. 只读存储器(ROM)ROM是单片机内部的非易失性存储器,用于存储程序和常量数据。
ROM的内容在出厂时就被写入,一般无法被程序修改。
单片机内部的ROM可以分为只读存储器(ROM)和可编程只读存储器(PROM)两种类型。
ROM存储器内容固定不变,其中包含了单片机的初始化程序和系统代码。
PROM存储器则可以通过特殊的编程操作烧写程序和数据,但一旦写入后无法擦除和修改。
这类存储器在生产流程中被用于定制特殊功能的单片机。
二、单片机内部存储器的数据存取方法单片机内部存储器的数据存取方法根据存储器的类型和连接方式而有所不同。
1. RAM的数据存取方法对于片内RAM,数据的存取可以通过直接读写特定的RAM地址来实现。
计算机组成原理知识点总结第一章一、数字计算机的五大部件(硬件)及各自主要功能(P6)计算机硬件组成:存储器、运算器、控制器、输入设备、输出设备。
1、存储器(主存)主要功能:保存原始数据和解题步骤。
包括:内存储器(CPU 直接访问),外存储器。
2、运算器主要功能:进行算术、逻辑运算。
3、控制器主要功能:从内存中取出解题步骤(程序)分析,执行操作。
包括:计算程序和指令(指令由操作码和地址码组成)。
4、输入设备主要功能:把人们所熟悉的某种信息形式变换为机器内部所能接收和识别的二进制信息形式。
5、输出设备主要功能:把计算机处理的结果变换为人或其他机器所能接收和识别的信息形式。
注:1、冯诺依曼结构:存储程序并按地址顺序执行。
2、中央处理器(CPU):运算器和处理器的结合。
3、指令流:取指周期中从内存读出的信息流,流向控制器。
数据流:在执行器周期中从内存读出的信息流,由内存流向运算器。
二、数字计算机的软件及各自主要功能(P11)1、系统软件:包括服务性程序、语言程序、操作程序、数据库管理系统。
2、应用程序:用户利用计算机来解决某些问题而设计。
三、计算机的性能指标。
1、吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量,用bps度量。
2、响应时间:表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量。
3、利用率:在给定的时间间隔内,系统被实际使用的时间所在的比率,用百分比表示。
4、处理机字长:常称机器字长,指处理机运算中一次能够完成二进制运算的位数,如32位机、64位机。
5、总线宽度:一般指CPU从运算器与存储器之间进行互连的内部总线一次操作可传输的二进制位数。
6、存储器容量:存储器中所有存储单元(通常是字节)的总数目,通常用KB、MB、GB、TB来表示。
7、存储器带宽:单位时间内从存储器读出的二进制数信息量,一般用B/s(字节/秒)表示。
8、主频/时钟周期:CPU的工作节拍受主时钟控制,按照规定在某个时间段做什么(从什么时候开始、多长时间完成),主时钟不断产生固定频率的时钟信号。
计算机体系结构存储器层次结构基础知识详解计算机体系结构存储器层次结构是计算机系统中重要的组成部分,它通过不同层次的存储器来提供有效的数据存取方式,以满足计算机执行指令和运算的需求。
本文将详细介绍计算机体系结构存储器层次结构的基础知识,包括存储器的分类、层次结构和操作原理等方面。
一、存储器的分类存储器是计算机中用于存储数据和程序的设备,根据存储介质的不同可分为内存和外存。
内存存储器又可分为随机存储器(RAM)和只读存储器(ROM)。
RAM是一种易失性存储器,用于存储程序和数据的临时信息,通电时可以读写数据,断电后数据就会丢失;ROM是一种非易失性存储器,用于存储程序和数据的固定信息,通电时只能读取数据。
外存储器包括硬盘、固态硬盘(SSD)和光盘等,主要用于长期存储大量数据和程序。
二、存储器的层次结构计算机体系结构存储器层次结构按照存取速度和成本的不同,可分为若干层次,由快到慢、由贵到廉排列为:寄存器、高速缓存、主存和外存。
寄存器是存储器层次结构中速度最快、容量最小的存储器,通常嵌入在中央处理器(CPU)中,用于存储最常用的数据和指令;高速缓存是位于CPU和主存之间的一层存储器,容量较小但速度快,用于缓存CPU频繁访问的数据块;主存是计算机中容量较大、速度较慢的存储器,用于存储程序和数据;外存是计算机中容量最大、速度最慢的存储器,用于长期存储大量数据和程序。
三、存储器的操作原理计算机体系结构存储器层次结构中的各层次存储器之间通过地址和数据进行交互。
当CPU需要访问某个数据或者指令时,首先会将相应的地址发给内存控制器,内存控制器会根据地址将数据从内存中读取出来并送达给CPU。
在这个过程中,CPU通常会先访问最快的寄存器,若寄存器中没有所需数据,则会在高速缓存中进行查找,如果高速缓存中也没有,则会继续在主存和外存中进行查找。
存储器的操作原理涉及到存储器的访问速度和命中率。
存储器的访问速度是指CPU从发送地址到接收到数据所需的时间,在不同层次存储器中,访问速度逐级变慢;命中率是指CPU在某个层次存储器中找到所需数据的概率,高速缓存的命中率通常较高,而主存和外存的命中率较低。
存储器的工作原理1、存储器构造存储器就是用来存放数据的地方。
它是利用电平的高低来存放数据的,放的实际上是电平的高、低,而不是我们所习惯认为的1234 这样的数字,个谜团就解开了,计算机也没什么神秘的吗。
图2也就是说,它存这样,我们的一图3让我们看图2。
这是一个存储器的示意图:一个存储器就像一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你可以把电线想象成水管,小格子里的电荷就像是水,那就好理解了。
存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元” 。
有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据12 ,也就是00001100 ,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了(看图3)。
可是问题出来了,看图 2 ,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的,因此,要在结构上稍作变化,看图2,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开相应的控制开关就行了。
2、存储器译码那么,我们怎样来控制各个单元的控制线呢?这个还不简单,把每个单元的控制线都引到集成电路的外面不就行了吗?事情可没那么简单,一片27512 存储器中有65536 个单元,把每根线都引出来,这个集成电路就得有 6 万多个脚?不行,怎么办?要想法减少线的数量。
我们有一种方法称这为译码,简单介绍一下:一根线可以代表 2 种状态, 2 根线可以代表 4 种状态,3 根线可以代表几种,256 种状态又需要几根线代表?8 种,8 根线,所以65536种状态我们只需要16 根线就可以代表了。
存储的工作原理存储的工作原理是通过将数据存储在持久化介质上,以便在需要时能够读取和获取。
存储设备通常由硬件和软件组成。
硬件方面,存储设备通常包括主要的存储介质,如硬盘驱动器、固态硬盘或光盘驱动器等。
这些设备通过电子信号将数据写入到存储介质上,并在需要时将数据读取到计算机系统中。
存储设备还包括控制器和接口,用于管理和控制数据的读写操作。
软件方面,存储设备还需要操作系统和文件系统的支持。
操作系统负责管理存储设备的访问和使用,以及将数据从应用程序传输到存储设备。
文件系统负责将数据组织成文件和目录结构,以方便用户访问和管理存储数据。
当用户需要存储数据时,首先将数据写入到存储设备上的空闲区域中。
硬盘驱动器和固态硬盘通常将数据存储在扇区、磁道和柱面等物理结构中,而光盘驱动器则将数据存储在光盘上的孔坑中。
这些数据存储的方式可以通过文件系统进行逻辑上的组织和管理,使得用户可以按照文件的方式进行读取和写入操作。
当用户需要读取数据时,存储设备将数据从存储介质中读取到计算机系统的内存中。
读取操作通常涉及到寻道、旋转等物理过程,以及数据传输和缓存等操作。
读取的数据可以被应用程序进一步处理和使用。
存储设备的工作原理还包括数据的备份和恢复。
为了保证数据的安全性和可靠性,通常会采用备份和镜像等技术进行数据的复制和存储。
这样,即使存储设备发生故障,用户仍然可以通过备份数据或者镜像数据进行恢复。
总的来说,存储设备通过将数据存储在持久化介质上,并通过硬件和软件的配合实现数据的读写操作。
这种工作原理使得用户可以方便地保存、访问和管理数据,满足各种应用场景的需求。
存储器的工作原理一、引言存储器是计算机中重要的组成部份,用于存储和检索数据。
它在计算机系统中起着暂时存储数据的作用,可以分为主存储器和辅助存储器两种类型。
本文将详细介绍存储器的工作原理,包括主存储器和辅助存储器的工作原理、存储器的组织结构以及存储器的读写操作。
二、主存储器的工作原理主存储器是计算机中用于存储程序和数据的地方,也称为内存。
它由一系列存储单元组成,每一个存储单元能够存储一个固定大小的数据。
主存储器的工作原理可以分为存储和检索两个过程。
1. 存储过程当计算机需要将数据存储到主存储器时,首先需要将数据传输到内存总线上。
内存总线是计算机系统中连接处理器和主存储器的数据传输通道。
通过内存总线,数据被传输到内存控制器。
内存控制器负责将数据存储到指定的存储单元中。
2. 检索过程当计算机需要从主存储器中读取数据时,首先需要将读取指令传输到内存总线上。
内存控制器接收到读取指令后,根据指令中指定的地址,将对应的数据从存储单元中读取出来,并通过内存总线传输给处理器。
三、辅助存储器的工作原理辅助存储器是计算机中用于长期存储数据的设备,如硬盘、固态硬盘(SSD)等。
与主存储器相比,辅助存储器的容量更大,但访问速度较慢。
辅助存储器的工作原理可以分为存储和检索两个过程。
1. 存储过程当计算机需要将数据存储到辅助存储器时,首先需要将数据传输到输入输出(I/O)总线上。
I/O总线是计算机系统中连接处理器和辅助存储器的数据传输通道。
通过I/O总线,数据被传输到磁盘控制器。
磁盘控制器负责将数据存储到指定的磁盘扇区中。
2. 检索过程当计算机需要从辅助存储器中读取数据时,首先需要将读取指令传输到I/O总线上。
磁盘控制器接收到读取指令后,根据指令中指定的扇区号,将对应的数据从磁盘中读取出来,并通过I/O总线传输给处理器。
四、存储器的组织结构存储器的组织结构是指存储单元之间的连接方式和存储单元的编址方式。
常见的存储器组织结构有线性结构和矩阵结构。
计算机组成原理(考研期末)知识点总结(一)存储系统1.存储器的基本概念●分类●作用(层次):CACHE 主存辅存●存储介质:磁半导体光●存取方式●随机存取:RAM ROM●串行访问●顺序存取:磁带●直接存取:磁盘●信息可保存性--易失性破坏性读出非●性能指标●存储容量字●单位成本每位成本●存储速度(数据传输率主存带宽)●层次化结构●Cache-主存层次:硬件实现,解决速度不匹配问题●主存-辅存层次:硬件+操作系统实现,解决容量问题,逐渐形成虚拟存储系统2.半导体存储器●存储器芯片的基本结构●译码驱动电路(译码器:扩充容量)●存储矩阵●读写电路●地址线,数据线,片选线,读写控制线●半导体存储器RAM(易失性存储器)●SRAM:触发器存储信息,速度快成本高集成度低,用于高速缓存●DRAM:电容存储信息,需要刷新,速度慢成本低,集成度高,用于主存SDRAM●DRAM的刷新:集中刷新,分散刷新,●异步刷新●不需要CPU控制●行为单位,仅需要行地址●存储器中所有芯片同时刷新●RAM的读写周期●ROM(非易失性存储器)●特点:结构简单,位密度比RAM高,非易失性,可靠性高●类型:MROM,PROM,EPPROM,FLASH MEMORY,SSD3.存储器与CPU的协同工作(提高存储系统的工作速度)●主存与CPU的连接●字扩展●位扩展●线选法●译码片选法●译码器的使用●分析地址空间●字位同时扩展●选择存储器芯片●与CPU进行连接●双口RAM和多模块存储器●多模块存储器●单体多字●多体并行●低位交叉编址●高位交叉编址●双端口RAM●高速缓冲存储器●CACHE局部性原理和性能分析●局部性原理●空间局部性●时间局部性●性能分析●命中率和失效率●CACHE----主存体系的平均访问时间●CACHE工作原理●地址映射方式●全相联●直接相联●组相联●替换算法●RAND随机●FIFO先入先出●LRU最近最少使用●LFU最不经常使用●写策略●命中●全写法●写回法●不命中●写分配法●非写分配法●虚拟存储器(主存和辅存共同构成)(增加存储系统的容量)●基本概念:虚地址(逻辑地址)映射到实地址(物理地址)●解决问题:进程并发问题和内存不够用问题●类型●页式●段式●段页式●虚实地址转换(提高速度)●快表TLB●慢表Page(二)指令系统1.指令格式●操作码和地址码组成一条指令●操作码●定长操作码和扩展操作码●操作码类型2.指令寻址方式●指令寻址(通过PC)●顺序寻址●跳跃寻址●数据寻址●隐含寻址●立即寻址:给寄存器赋初值●直接寻址●间接寻址:扩大寻址范围,便于编制程序●寄存器寻址:指令执行速度更快●寄存器间接寻址●偏移寻址(各寄存器内容+形式地址):基址寻址,变址寻址(处理数组,编制循环程序),相对寻址●堆栈寻址3.CISC和RISC●CISC复杂指令系统计算机(用微程序控制器)●更多更复杂,一般为微程序控制,用于计算机系统●RISC精简指令系统计算机(用硬布线控制器)●指令数目少,字长固定,寻址方式少,寄存器数量多,一般为组合逻辑控制,用于手机(三)中央处理器1.CPU的功能和基本结构●CPU的功能:指令控制,操作控制,时间控制,数据加工,中断处理●运算器●功能:对数据进行加工●基本结构:●算术逻辑单元ALU●暂存寄存器●通用寄存器组●累加寄存器ACC●程序状态字寄存器PSW●移位器,计数器●控制器●功能:取指令,分析指令,执行指令●控制器的基本结构●程序计数器PC●指令寄存器IR●指令译码器,时序系统,微操作信号发生器●存储器地址寄存器MAR●存储器数据寄存器MDR●数据通路的基本结构●专用通路●内部总线2.指令执行过程●指令周期●构成:机器周期、CPU周期——CPU时钟周期、节拍●类型:取指周期,间址周期,执行周期,中短周期●标志触发器FE,IND,EX,INT:区别工作周期●数据流●取指周期:根据PC取出指令代码存放在IR●间址周期:根据IR中指令地址码取出操作数的有效地址●执行周期:根据指令字的操作码和操作数进行相应操作●中断周期:保存断点,送中断向量,处理中断请求●执行方案●单指令周期:串行,指令相同执行时间●多指令周期:串行,指令不同执行时间●流水线方案:隔一段时间启动一条指令,多条指令处于不同阶段,同事并行处理3.数据通路的功能和基本结构(连接路径)●CPU内部总线●单总线●多总线●专用数据通路:多路选择器和三态门●了解各阶段微操作序列和控制信号4.控制器的功能和工作原理●控制器的结构和功能●计算机硬件系统连接关系●控制器的功能:取指令,分析指令,执行指令●控制器的输入和输出●硬布线控制器●硬布线控制单元图:组合逻辑电路+触发器●设计步骤(了解)●分析每个阶段的微操作序列●选择CPU的控制方式●安排微操作序列●电路设计●微程序控制器●基本结构●微地址形成部件●微地址寄存器CMAR●控制存储器CM●微指令寄存器CMDR●微指令的格式●水平型:并行操作●字段直接编码方式●直接编码方式●字段间接编码方式●垂直型:类似机器指令●微指令的地址形成方式●下地址字段指出:断定方式●根据机器指令的操作码形成●基本概念●微命令和微操作●微指令和微周期●主存储器和控制存储器●程序和微程序●寄存器:MAR和CMAR,IR和CMDR●硬布线和微程序的比较(微操作控制信号的实现形式)5.指令流水线●指令流水线的概念●指令执行过程划分为不同阶段,占用不同的资源,就能使多条指令同时执行●表示方法●指令流程图:分析影响流水线的因素●时空图:分析性能●性能指标●吞吐率TP●加速比S●效率E●影响流水线的因素●结构相关(资源冲突)●数据相关(数据冲突)●控制相关(控制冲突)●流水线的分类●按使用级别:部件功能级,处理机级,处理机间●按完成功能:单功能,多功能●按连接方式:动态,静态●按有无反馈信号:线性,非线性●多发技术●超标量流水线技术●超流水线技术●超长指令字技术(四)总线1.总线概念和分类●定义:一组能为多个部件分时共享的公共信息传送线路●分类●按数据传输格式●串行,并行●按功能●片内总线●系统总线●数据总线,地址总线,控制总线●通信总线●按时序控制方式●同步,异步●总线结构●单总线结构——系统总线●双总线结构(通道)●主存总线●IO总线●三总线结构●主存总线●IO总线●DMA总线2.总线的性能指标●总线传输周期(总线周期)●总线带宽●总线宽度(位宽)●总线复用:一种信号线传输不同信息3.总线仲裁●集中仲裁方式●链式查询方式●计数器定时查询方式●独立请求方式●分布仲裁方式4.总线操作和定时●总线传输的四个阶段●申请分配阶段●传输请求●总线仲裁●寻址阶段●传输阶段●结束阶段●定时●同步定时方式(同步通信)●异步定时方式(异步通信)●不互锁●半互锁●全互锁●半同步通信●分离式通信5.总线标准(五)IO系统1.IO系统基本概念●演变过程●早期:分散连接,CUP与IO串行,程序查询方式●接口模块和DMA阶段:总线连接,cpu与io并行,中断方式及DMA方式●具有IO通信结构的阶段●具有IO处理机的阶段●IO系统的基本组成●IO软件——IO指令和通道指令●IO硬件——外设,设备控制器和接口,IO总线等●IO方式简介●程序查询方式:IO与CPU串行,CPU有“踏步等待”现象(由程序控制)●程序中断方式:IO准备数据时CPU继续工作,在指令执行结束时响应中断(由程序控制)●DMA方式:主存与IO交换信息时由DMA控制器控制,在存取周期结束时响应DMA请求(由硬件控制)●通道方式:通过IO指令启动通道,通道程序放在主存中(由硬件控制)2.外部设备●输入设备——键盘,鼠标●输出设备●显示器●分类●阴极射线管(CRT)●液晶(LCD)●发光二极管(LED)●参数●屏幕大小,分辨率,灰度级,刷新频率●显示存储器(VRAM)●容量=分辨率*灰度级位数●带宽=容量*帧频●打印机●外存储器●磁盘存储器●组成●存储区域:磁头,柱面,扇区●硬盘存储器:磁盘驱动器,磁盘控制器,盘片●工作过程:寻址,读盘,写盘对应的控制字,串行读写●性能指标●容量●记录密度●平均存取时间●数据传输率●磁盘阵列RAID——利用磁盘廉价的特点提高存储性能,可靠性和安全性●光盘存储器●固态硬盘SSD——采用FLASH Memory记录数据3.IO接口●主要功能●设备选址功能:地址译码和设备选择●传送命令●传送数据:实现数据缓冲和格式转换●反应IO设备的工作状态●基本结构●设备选择电路,命令寄存器和命令译码器,数据缓冲寄存器DBR,设备状态标记,控制逻辑电路●内部接口和外部接口●编址●统一编址——与存储器共用地址,用访存命令访问IO设备●独立编址:单独使用一套地址,有专门的IO指令●分类●数据传送方式:并行接口,串行接口●主机访问IO设备的控制方式●程序查询接口●中断接口●DMA接口●功能选择的灵活性●可编程接口●不可编程接口4.IO方式●程序查询方式:CPU与IO串行工作,鼠标,键盘●程序中断方式●中断系统●中断的基本概念●工作流程●中断请求●分类●中断请求标记触发器INTR●中断响应●中断响应的条件●中断判优●软件:查询程序●硬件:排队器●优先级的设置●中断处理●中断隐指令●关中断●保存断点PC●引出中断服务程序●中断服务程序●单重中断与多重中断●中断服务程序的具体步骤●中断屏蔽技术●屏蔽字●程序执行轨迹●程序中断方式●工作流程●CPU占用情况●中断响应(隐指令)●中断服务程序●DMA方式●DMA控制器●组成●主存地址计数器:存放要交换数据的主存地址●传送长度计数器:记录传送数据的长度●数据缓冲寄存器:暂存每次传送的数据●DMA请求触发器:设备准备好数据后将其置位●控制/状态逻辑:由控制和时序电路及状态标志组成●中断机构:数据传送完毕后触发中断机构,提出中断请求●主要功能●传送前:接受外设的DMA请求,向CPU发出总线请求,接管总线控制权●传送时:管理总线,控制数据传送,确定主存单元地址及长度,能自动修改对应参数●传送后: 向CPU报告DMA操作的结束●传送过程●预处理:CPU完成寄存器初值设置等准备工作●数据传送:CPU继续执行主程序,DMA控制器完成数据传送●后处理:CPU执行中断服务程序做DMA结束处理。
计算机基础知识探索计算机存储器的层次结构和工作原理计算机基础知识探索:计算机存储器的层次结构和工作原理计算机存储器是计算机重要的组成部分,用于存储和获取数据。
它的层次结构包括寄存器、高速缓存、内存和辅助存储器,每个层级都有不同的特点和功能。
本文将深入探讨计算机存储器的层次结构和工作原理。
一、寄存器寄存器是位于CPU内部的最高层级的存储器,用于存储指令和数据。
寄存器容量较小,速度最快,是计算机执行指令和运算的关键。
寄存器的工作原理是根据指令从内存中读取数据,并对数据进行加工处理。
二、高速缓存高速缓存(Cache)位于CPU和内存之间,用于加速数据的读取和存储。
它的容量比寄存器大,但仍较小,速度快于内存。
高速缓存使用“局部性原理”,即数据在被访问后,可能会在不久的将来被再次访问,因此将其暂时存储在高速缓存中,可以大大提高读取效率。
高速缓存有多级,其中L1缓存最接近CPU,速度最快,L2和L3缓存容量较大,但速度相对较慢。
高速缓存的工作原理是根据内存的地址访问数据,并将访问过的数据复制到高速缓存中,下次再访问相同的数据时,可以直接从高速缓存中获取,而无需再次访问内存。
三、内存内存(主存)是存储器的主要组成部分,用于存储程序和数据。
它的容量比寄存器和高速缓存大,但速度相对较慢。
内存的工作原理是根据计算机指令从硬盘等辅助存储器中将数据读取到内存中,然后CPU再对数据进行处理。
内存按字节进行寻址,每个字节都有唯一的地址。
内存又可分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
SRAM速度较快,但容量较小,用于高速缓存;DRAM容量较大,但速度较慢,用于主存。
四、辅助存储器辅助存储器是计算机存储器的最低层级,用于长期存储程序和数据。
它的容量很大,但速度相对较慢。
辅助存储器包括硬盘、固态硬盘和光盘等。
辅助存储器的工作原理是将数据从内存中写入硬盘等存储介质,以便长期保存。
当需要读取存储在辅助存储器中的数据时,先将数据从硬盘等存储介质读取到内存,然后再由CPU进行处理。
内存原理图内存原理图是计算机科学中非常重要的概念,它涉及到计算机系统中内存的组织结构和工作原理。
在计算机系统中,内存是存储数据和指令的地方,它直接影响着计算机的运行速度和性能。
了解内存原理图对于理解计算机系统的工作原理和优化程序性能都是至关重要的。
首先,我们来看一下内存的基本组成。
内存通常由存储单元组成,每个存储单元都有一个唯一的地址,用于访问其中存储的数据。
内存的组织结构通常包括主存储器和辅助存储器,主存储器通常是指RAM(随机存取存储器),而辅助存储器通常是指硬盘或固态硬盘。
主存储器用于存储当前正在运行的程序和数据,而辅助存储器则用于长期存储数据。
内存原理图还涉及到内存的工作原理。
当计算机需要访问内存中的数据时,它会根据数据的地址来定位存储单元,并将数据传输到处理器中进行处理。
内存的访问速度直接影响着计算机的性能,因此内存的组织结构和访问方式都是需要精心设计和优化的。
此外,内存原理图还包括内存的层次结构。
在计算机系统中,内存通常分为多级缓存、主存和辅助存储器。
多级缓存用于暂时存储处理器需要频繁访问的数据,主存储器用于存储当前正在运行的程序和数据,而辅助存储器则用于长期存储数据。
这种层次结构的设计可以提高数据访问的效率,从而提高计算机系统的整体性能。
除此之外,内存原理图还涉及到内存管理的问题。
内存管理是指操作系统如何管理内存资源,包括内存分配、内存回收和内存保护等问题。
合理的内存管理可以提高系统的稳定性和安全性,避免内存泄漏和内存溢出等问题。
总的来说,内存原理图是计算机科学中非常重要的概念,它涉及到内存的组织结构、工作原理、层次结构和管理方式等问题。
了解内存原理图对于理解计算机系统的工作原理、优化程序性能和提高系统稳定性都是至关重要的。
希望本文能够对读者有所帮助,让大家对内存原理图有一个更加深入的理解。
存储器的存储原理存储器是计算机系统的核心组成部分之一,用于存储程序和数据。
存储器的存储原理主要包括存储单元的组织和存取方式。
存储单元的组织存储单元是存储器最小的可寻址的存储单位,通常由二进制逻辑门实现。
常见的存储单元类型有触发器、锁存器和闪存等。
存储器的容量通过存储单元的数量来确定,常用的容量单位有字节、千字节(KB)、兆字节(MB)、千兆字节(GB)等。
存储单元通常按照线性方式组织。
最简单的组织方式是线性结构,即将存储单元按照地址顺序排列,并通过地址线进行寻址。
线性结构仅适用于存储器容量较小的情况。
对于容量较大的存储器,一般采用矩阵结构,将存储单元排列成多行多列的形式,并通过行地址和列地址进行寻址。
矩阵结构可以充分利用地址线进行寻址,提高存储器容量。
存取方式顺序存取是按照地址顺序依次访问存储单元。
顺序存取的特点是存储单元按照地址连续排列,寻址简单,但访问速度较慢。
例如,磁带就是一种典型的顺序存取设备。
随机存取是通过地址而不是顺序来访问存储单元。
随机存取的特点是存储单元可以随机访问,寻址灵活,但需要较复杂的地址解码电路。
常见的随机存取设备有RAM(随机存取存储器)和ROM(只读存储器)等。
RAM 可以读写操作,ROM一般只能读操作。
除了顺序存取和随机存取之外,还有一种常见的存取方式是直接存取。
直接存取是通过索引而非地址来访问存储单元。
存储单元的索引由高速缓存或OTLB(页表缓冲区)等硬件提供,用于提高存取速度。
直接存取类似于随机存取,但由于索引的局部性,存取更加高效。
存储器的层次结构计算机系统中的存储器通常按照速度和容量的需求划分为多个层次。
层次化的存储器结构可以平衡速度和成本之间的矛盾。
最接近CPU的是高速缓存,它是存储器的最高层次。
高速缓存可以快速存取数据,减少CPU等待时间。
高速缓存一般分为多级,根据距离CPU的远近和容量大小进行划分。
高速缓存之下是主存储器,也称为内存。
主存储器是存储器层次结构中的中间层,容量较大但速度较慢。
直接存储器存取—基本原理结构与应用DMA的基本原理是通过使用专门的DMA控制器来管理数据传输过程,而不需要CPU的干预。
CPU只需要下达一个DMA指令,然后就可以继续执行其他任务,而DMA控制器负责完成数据传输操作,从而提高了系统的效率。
DMA的结构主要包括DMA控制器、DMA通道和I/O设备。
1.DMA控制器:DMA控制器是完成DMA操作的主要部件。
它通常是一个单独的芯片,内部包含多个寄存器,用于存储DMA传输的相关信息,如起始地址、目标地址、数据长度等。
DMA控制器还包含一个状态寄存器,用于表示DMA传输的状态,如传输是否完成、是否出错等。
DMA控制器通过控制信号与其他硬件进行通信,如与CPU、内存和外部设备等。
2.DMA通道:DMA通道是连接DMA控制器和外部设备的通路。
一个DMA控制器通常可以包含多个DMA通道,每个通道可以独立地连接到一个外部设备。
通过多个DMA通道的并行工作,可以实现多个外部设备的数据并发传输。
每个DMA通道都有独立的DMA通道控制器,用于控制具体的数据传输操作。
3.I/O设备:I/O设备是通过DMA进行数据传输的对象。
常见的I/O设备包括硬盘、光盘、网络接口卡等。
与传统的I/O方式相比,DMA可以大幅提高数据传输的效率和速度,尤其是在需要大量数据传输的场景下。
DMA的应用非常广泛,在多种计算机系统中都可以见到它的身影。
以下是几个典型的应用场景:1.高速数据传输:DMA多用于需要高速数据传输的场景,如数据备份、数据传递等。
通过DMA的高速传输,可以大幅提高数据处理的效率和速度。
2.多媒体处理:在音视频处理、图像处理等多媒体应用中,常常需要大量的数据传输和处理。
通过DMA的协助,可以实现多个媒体流的实时处理和传输。
3.网络数据传输:DMA可以用于网络接口卡的数据传输,可以提高网络传输的速度和效率。
通过使用DMA进行数据传输,可以更好地支持高速网络传输和大规模并发数据传输。
一、填空题1. 用二进制代码表示的计算机语言称为( 机器语言),用助记符编写的语言称为( 汇编语言)。
2. 计算机硬件由( 控制单元)、( 运算器)、( 存储器)、输入系统和输出系统五大部件组成。
3. 十六进制数 CB8 转换成二进制数为( 110010111000 )。
4. 某数 x 的真值-0.1011B,其原码表示为( 1.1011 )。
5. 在浮点加减法运算过程中,在需要( 对阶)或( 右规)时,尾数需向右移位。
6. 指令通常由( 操作码)和( 地址码)两部分组成。
7. 要组成容量为 4K*8 位的存储器,需要( 8 ) 片 4K×1 位的芯片并联,或者需要( 4 ) 片 1K×8 位的芯片串联。
8. 中断处理过程包括( 关中断)、( 保护现场)、( 执行中断服务程序)、( 恢复现场) 和( 开中断) 阶段。
9. 操作数寻址方式包括( 直接寻址)、(间接寻址)、( 立即寻址)、( 隐含寻址)、( 寄存器寻址)、( 寄存器间接寻址)、( 基址寻址)等。
10. 动态 RAM 的刷新包括 ( 分散刷新)、( 集中刷新)和( 异步刷新)三种方式。
11. 高速缓冲存储器的替换算法有( 先进先出)和( 近期最少使用)。
12. 影响流水线性能的因素有( 数据相关)、( 控制相关)和( 资源相关)。
13. 主存储器容量通常以 KB 为单位,其中 1K=(),硬盘的容量以 GB 为单位,其中 1G=()。
14. 主存储器一般采用( 动态 RAM )存储器,CACHE 采用( 静态 RAM )存储器。
15. 世界上第一台计算机产生于( 1946 )年,称为( ENIAC )。
16. I/O 的编址可分为( 不统一编址) 和( 统一编址),前者需要单独的 I/O 指令,后者可通过( 访存) 指令和设备交换信息。
17. CPU 从主存取出一条指令并执行该指令的全部时间叫做( 指令周期),它通常包含若干个( 机器周期),而后者又包含若干个( 时钟周期)。
完整版计算机组成原理简答题计算机组成原理简答题第四章1、存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。
主存与CACHE之间的信息调度功能全部由硬件自动完成。
而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。
2. 说明存取周期和存取时间的区别。
解:存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。
即:存取周期 = 存取时间 + 恢复时间3. 什么叫刷新?为什么要刷新?说明刷新有几种方法。
解:刷新:对DRAM定期进行的全部重写过程;刷新原因:因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;常用的刷新方法有三种:集中式、分散式、异步式。
集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在CPU访存死时间。
分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间。
异步式:是集中式和分散式的折衷。
4. 半导体存储器芯片的译码驱动方式有几种?解:半导体存储器芯片的译码驱动方式有两种:线选法和重合法。
计算机存储器的原理与组织计算机存储器是计算机系统中非常重要的组成部分,它负责存储和读取数据。
了解存储器的原理与组织对于理解计算机工作原理至关重要。
本文将详细介绍计算机存储器的原理与组织,包括其作用、结构、存取方式和存储器的分类等。
一、存储器的作用(100字)计算机存储器是计算机系统的内部存储设备,用于存放计算机程序和数据。
它具有临时存储的功能,可以快速存取和读取数据,并在计算机系统断电后依然能保留数据。
存储器有着不同的种类和性能,用于满足不同的计算需求。
二、存储器的结构(200字)1. 存储单元:存储器由许多存储单元组成,每个存储单元都有唯一的地址,用于标识数据的位置。
2. 存储单元的组织方式:存储单元可以按照不同的组织方式进行编排。
最常见的两种是按字节编址的字节地址和按字编址的字地址。
字节地址编址方式将存储单元按字节进行编号,而字地址编址方式将存储单元按字进行编号。
3. 存储体:存储单元按照一定的规律排列形成存储体,存储体是存储单元的集合。
存储体可分为连续存储体和离散存储体两种形式。
4. 存储器的容量:存储器的容量是指存储器可以存储的数据总量,通常以字节或位为单位进行表示。
存储器的容量和计算机系统的需求密切相关。
三、存储器的存取方式(300字)1. 随机访问存储器(RAM):RAM的存取时间与存储单元的物理位置无关,所有存储单元具有相同的访问时间。
RAM允许随机选取存储单元,数据的存取速度较快。
主存储器就是典型的RAM。
存取RAM的时间可以看作是常量时间,即存取时间几乎相同。
2. 顺序访问存储器(SAM):SAM的存取时间与存储单元的物理位置有关,存储单元在存储体中的位置决定了访问时间。
磁带存储器就是典型的SAM。
存取SAM的时间与存储器中存储单元的数量有关,存取时间与顺序访问的时间基本成正比。
3. 直接访问存储器(DAM):DAM是介于RAM和SAM之间的存储器,存取时间介于两者之间。
现代计算机中的高速缓存就是一种DAM,它通过提高数据的局部性,提高计算机系统的访问速度。
计算机存储程序的工作原理首先,计算机存储程序的工作原理需要理解计算机内存的层次结构。
计算机内存分为多级存储器,包括寄存器、缓存、主存和辅存等。
其中,寄存器是位于CPU内部的最快速、容量最小的存储器,主要用于存储CPU 当前正在执行的指令和数据。
缓存是位于CPU和主存之间的一级高速存储器,用于提高CPU对主存的访问速度。
主存是计算机存储程序最重要的组成部分,它用于存储程序和数据,是CPU能直接访问的存储器。
辅存是相对于主存而言的,主要是指硬盘、光盘等外部存储设备,其容量较大但速度较慢。
其次,计算机存储程序的工作原理需要了解存储器的组织。
主存采用字节编址方式进行寻址,每个字节都有唯一的地址。
计算机中存储单元的最小单位是位(bit),通常8位(bit)组合成一个字节(byte)。
计算机内存的组织方式通常包括随机存取存储器(RAM)和只读存储器(ROM)两种类型。
RAM是一种易失性存储器,其数据可以读写,用于存储程序和数据。
ROM 是一种只能读取的存储器,用于存放无法改写的程序和数据,如BIOS程序等。
然后,计算机存储程序的工作原理需要了解数据的存取方式。
计算机执行程序时,需要从存储器中读取指令和数据,执行完毕后再将结果写回存储器。
存储器的读取操作是根据指定的地址从存储器中读取数据,存储器的写入操作是将数据写入到指定的地址。
存储器的读写操作是通过总线进行的,包括地址总线、数据总线和控制总线。
地址总线用于指定存储器中的地址,数据总线用于传输读取或写入的数据,控制总线用于传输控制信号。
此外,计算机存储程序的工作原理还涉及到存储器的层次结构和缓存的使用。
存储器的层次结构包括多级缓存,其目的是提供更快的存取速度。
缓存是采用局部性原理,将最近使用过的数据和指令存放在离CPU最近的地方,以提高CPU对存储器的访问速度。
在缓存中,采用了高速缓存存储器(Cache)和主存之间的合理映射方式,如直接映射、组相联映射和全相联映射。
直接存储器存取—基本原理、结构与应用(上)直接存储器存取(DMA)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。
它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。
值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。
一般而言,DMA控制器包括一条地址总线、一条数据总线和控制寄存器。
高效率的DMA控制器将具有访问其所需要的任意资源的能力,而无须处理器本身的介入,它必须能产生中断。
最后,它必须能在控制器内部计算出地址。
一个处理器可以包含多个DMA控制器。
每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,如图1所示。
在很多高性能处理器中集成了两种类型的DMA控制器。
第一类通常称为“系统DMA控制器”,可以实现对任何资源(外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。
第二类称为内部存储器DMA控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取操作。
因为存取都发生在内部(L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度可以超过600MHz。
每个DMA控制器有一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作用。
对于MemDMA(Memory DMA)来说,传输的源端和目标端都有一组FIFO存在。
当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。
因为你通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。
你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理任务—那些应该让它专注完成的工作。
直接存储器存取—基本原理、结构与应用直接存储器存取(DMA)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。
它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。
值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。
一般而言,DMA控制器将包括一条地址总线、一条数据总线和控制寄存器。
高效率的DMA控制器将具有访问其所需要的仸意资源的能力,而无须处理器本身的介入,它必须能产生中断。
最后,它必须能在控制器内部计算出地址。
一个处理器可以包含多个DMA控制器。
每个控制器有多个DMA通道,以及多条直接与存储器站(memory bank)和外设连接的总线,如图1所示。
在很多高性能处理器中集成了两种类型的DMA控制器。
第一类通常称为“系统DMA控制器”,可以实现对仸何资源(外设和存储器)的访问,对于这种类型的控制器来说,信号周期数是以系统时钟(SCLK)来计数的,以ADI的Blackfin处理器为例,频率最高可达133MHz。
第二类称为内部存储器DMA 控制器(IMDMA),专门用于内部存储器所处位置之间的相互存取操作。
因为存取都发生在内部(L1-L1、L1-L2,或者L2-L2),周期数的计数则以内核时钟(CCLK)为基准来进行,该时钟的速度可以超过600MHz。
每个DMA控制器有一组FIFO,起到DMA子系统和外设或存储器之间的缓冲器的作用。
对于MemDMA(Memory DMA)来说,传输的源端和目标端都有一组FIFO存在。
当资源紧张而不能完成数据传输的话,则FIFO可以提供数据的暂存区,从而提高性能。
因为你通常会在代码初始化过程中对DMA控制器进行配置,内核就只需要在数据传输完成后对中断做出响应即可。
你可以对DMA控制进行编程,让其与内核并行地移动数据,而同时让内核执行其基本的处理仸务—那些应该让它专注完成的工作。
图1:系统和存储器DMA架构。
在一个优化的应用中,内核永远不用参与仸何数据的移动,而仅仅对L1存储器中的数据进行读写。
于是,内核不需要等待数据的到来,因为DMA引擎会在内核准备读取数据之前将数据准备好。
图2给出了处理器和DMA控制器间的交互关系。
由处理器完成的操作步骤包括:建立传输,启用中断,生成中断时执行代码。
返回到处理器的中断输入可以用来指示“数据已经准备好,可进行处理”。
图2:DMA控制器。
数据除了往来外设之外,还需要从一个存储器空间转移到另一个空间中。
例如,视频源可以从一个视频端口直接流入L3存储器,因为工作缓冲区规模太大,无法放入到存储器中。
我们并不希望让处理器在每次需要执行计算时都从外部存储读取像素信息,因此为了提高存取的效率,可以用一个存储器到存储器的DMA(MemDMA)来将像素转移到L1或者L2存储器中。
到目前为之,我们还仅专注于数据的移动,但是DMA的传送能力并不总是用来移动数据。
我们可以用代码覆盖的办法来提高性能,将DMA的控制器配置为在执行前把代码送入L1指令存储器。
代码往往存储于较大的外部存储器中,而根据需要有选择性的送入L1。
DMA控制器的编程让我们考察一下在定义DMA活动的过程中可以有哪些选项。
我们将从最简单的模型开始,并在此基础上过渡到更为灵活的模型,这反过来增加了设置的复杂度。
对于仸何类型的DMA传输,我们都需要规定数据的起始源和目标地址。
对于外设DMA的情况来说,外设的FIFO可以作为数据源或者目标端。
当外设作为源端时,某个存储器的位置(内部或外部)则成为目标端地址。
当外设作为目标端,存储的位置(内部或者外部)则成为源端地址。
在最简单的MemDMA情况中,我们需要告诉DMA控制器源端地址、目标端地址和待传送的字的个数。
采用外设DMA的情况下,我们规定数据的源端或者目标端,具体则取决于传输的方向。
每次传输的字的大小可以是8、16或者12位。
这种类型的事务代表了简单的1维(“1D”)统一“跨度”(unity stride)的传输。
作为这一传输机制的一部分,DMA控制器连续跟踪不断增加的源端和目标端地址。
采用这种传输方式时,8位的传输产生1字节的地址增量,而16位传输产生的增量为2字节,32位传输则产生4字节的增量。
上面的参数是基本的1D DMA传输的设置参数。
我们只需要改变数据传输每次的数据大小,就可以简单地增加一维DMA的灵活性。
例如,采用非单一大小的传输方式时,我们以传输数据块的大小的倍数来作为地址增量。
也就是说,若规定32位的传输和4个采样的跨度,则每次传输结束后,地址的增量为16字节(4个32位字)。
虽然1D DMA得到了广泛的应用,但用处更大的则是2维(2D) DMA,特别是在视频应用中。
2D功能是我们所讨论的1D DMA的情形的一种直接扩展。
除了XCOUNT和XMODIFY值之外,我们还需对对应的YCOUNT和YMODIFY值进行编程设定。
2D DMA可以简单地理解为一个嵌套的循环,即内循环由XCOUNT和XMODIFY来规定,外循环由YCOUNT和YMODIFY规定。
一个1D DMA可以被简单的视为2D传输的“内循环”,如下形式:for y = 1 to YCOUNT /* 2D的外循环*/for x = 1 to XCOUNT /* 1D的内循环*/{/* 传输循环主体转移到这里*/}XMODIFY决定了XCOUNT每次减少时的DMA控制器的跨度值,而YMODIFY则决定了YCOUNT每次减少时对应的跨度值。
与XCOUNT和XMODIFY一样,YOUNT可以以传输数量来定义,而YMODIFY则以字节数来定义。
值得注意的是,YMODIFY可以为负值,这会让DMA控制器回转到缓冲器的起始点。
对于外设DMA来说,传输的“存储器端”可以是1D或2D。
不过,在外设端,传输始终是1D的。
唯一的限制是在DMA每一端(源端和目标端)传输的字节总数必须相同。
例如,如果我们从3个10字节的缓冲器向外设发送数据,外设必须被设定为传送30字节,具体方式则可以是仸何可能的、所支持的传输宽度和传输计数值的组合。
MemDMA提供的灵活度则要更高一些。
例如,如果我们可以建立一个1D-2D传输、一个1D-2D传输、1个2D-1D传输,且可自然而然建立一个2D-2D传输,唯一的限制条件是,在DMA传输模块的两端所传送的字节总数必须相等。
DMA的设置目前有两类主要的DMA传输结构:寄存器模式和描述符模式。
无论属于哪一类DMA,表1所描述的几类信息都会在DMA控制器中出现。
当DMA以寄存器模式工作时,DMA控制器只是简单地利用寄存器中所存储的参数值。
在描述符模式中,DMA控制器在存储器中查找自己的配置参数。
表1:DMA寄存器基于寄存器的DMA在基于寄存器的DMA内部,处理器直接对DMA控制寄存器进行编程,来启动传输。
基于寄存器的DMA提供了最佳的DMA控制器性能,因为寄存器并不需要不断地从存储器中的描述符上载入数据,而内核也不需要保持描述符。
基于寄存器的DMA由两种子模式组成:自动缓冲(Autobuffer)模式和停止模式。
在自动缓冲DMA中,当一个传输块传输完毕,控制寄存器就自动重新载入其最初的设定值,同一个DMA进程重新启动,开销为零。
正如我们在图3中所看到的那样,如果将一个自动缓冲DMA设定为从外设传输一定数量的字到L1数据存储器的缓冲器上,则DMA控制器将会在最后一个字传输完成的时刻就迅速重新载入初始的参数。
这构成了一个“循环缓冲器”,因为当一个量值被写入到缓冲器的最后一个位置上时,下一个值将被写入到缓冲器的第一个位置上。
图3:用DMA实现循环缓冲器。
自动缓冲DMA特别适合于对性能敏感的、存在持续数据流的应用。
DMA控制器可以在独立于处理器其他活动的情况下读入数据流,然后在每次传输结束时,向内核发出中断。
虽然有可能以恰当的方式阻止自动缓冲模式,但如果DMA进程需要定期启动和停止时,采用这种工作方式就没有什么意义。
停止模式的工作方式与自动缓冲DMA类似,区别在于各寄存器在DMA结束后不会重新载入,因此整个DMA传输只发生一次。
停止模式对于基于某种事件的一次性传输来说十分有用。
例如,非定期地将数据块从一个位置转移到另一个位置。
当你需要对事件进行同步时,这种模式也非常有用。
例如,如果一个仸务必须在下一次传输前完成的话,则停止模式可以确保各事件发生的先后顺序。
此外,停止模式对于缓冲器的初始化来说非常有用。
描述符模型基于描述符(descriptor)的DMA要求在存储器中存入一组参数,以启动DMA的系列操作。
该描述符所包含的参数与那些通常通过编程写入DMA控制寄存器组的所有参数相同。
不过,描述符还可以容许多个DMA操作序列串在一起。
在基于描述符的DMA操作中,我们可以对一个DMA通道进行编程,在当前的操作序列完成后,自动设置并启动另一次DMA传输。
基于描述符的方式为管理系统中的DMA传输提供了最大的灵活性。
ADI 的Blackfin处理器上有两种主要的描述符方式—描述符阵列和描述符列表,这两种操作方式所要实现的目标是在灵活性和性能之间实现一种折中平衡。
在描述符阵列模式下,描述符驻留在连续的存储器位置上。
DMA控制器依然从存储器取用描述符,但是因为下一个描述符紧跟着当前的描述符,说明到何处去寻找下一个描述符(以及它们相应的描述符取用)的两个数据字就并不必要。
因为描述符并不包含这一“下一描述符”指针项,DMA控制器希望一组描述符在存储器相互挨在一起,如同阵列一般。
当各描述符在存储器中的分布位置并非“背对背”时,可以使用一个描述符列表。
实际上这里涉及多种子模式,从而再一次实现了性能和灵活性之间的折中平衡。
在“小描述符”模型中,描述符包括了一个单16位的域,用来给出“下一描述符指针”域的低位部分;高位部分则通过寄存器来独立编程设定,并且不发生改变。
当然,这将描述符限制在存储器中一个特定的64K(=216)页面上。
当描述符的位置需要跨越这一边界时,也可以提供一个“大”模型,它可以为“下一描述符指针”项提供32位的位置。
无论采用何种描述符模式,描述符的量值数越多,则描述符取用的次数就越多。
这也就是为何Blackfin处理器定义了一个“柔性描述符方式”的原因,该模式可以修改描述符的长度,使之仅仅包括特定传输所需要的数据。
例如,如果不需要2D DMA,YMODIFY和YCOUNT 寄存器就不需要成为描述符数据块的一部分。
描述符管理管理描述符列表的最佳方法是什么?其实,这个问题的答案需要根据应用来定,但要明白存在何种替代方法很重要。
我们将描述的第一种选择,其工作方式非常类似于一个自动缓冲DMA。