CN100592271C - 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 - Google Patents
使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 Download PDFInfo
- Publication number
- CN100592271C CN100592271C CN200580017641A CN200580017641A CN100592271C CN 100592271 C CN100592271 C CN 100592271C CN 200580017641 A CN200580017641 A CN 200580017641A CN 200580017641 A CN200580017641 A CN 200580017641A CN 100592271 C CN100592271 C CN 100592271C
- Authority
- CN
- China
- Prior art keywords
- direct memory
- disk drive
- volatile disk
- memory
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
一种方法和装置,用于使用集成直接存储器访问(DMA)引擎进行高性能易失性磁盘驱动器(VDD)存储器访问。在一个实施例中,所述方法包括检测对在易失性系统存储器之内实现的VDD存储器的数据访问请求。一旦检测到数据访问请求,VDD驱动器可以发出DMA数据请求以执行来自VDD的数据访问请求。因此,在一个实施例中,向/从在易失性系统存储器的所分配部分之内实现的VDD存储器传输数据的工作被分担给DMA引擎,例如存储器控制器中心(MCH)中的集成DMA引擎。还描述了其它实施例。
Description
技术领域
本发明的一个或多个实施例一般涉及集成电路和计算机系统设计领域。特别地,本发明的一个或多个实施例涉及使用集成直接存储器访问(DMA)引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法。
背景技术
RAMDISK是一种存储器管理技术,其中在程序控制下,将一部分易失性系统存储器用作大容量存储设备,这里称作“易失性磁盘驱动器(VDD)存储器”。对RAMDISK的操作系统(OS)文件操作比对传统硬盘的OS操作要快很多。因此,通过将最常用的程序和文件放置在为RAMDISK分配的系统存储器的一部分之内,RAMDISK可以显著地提高系统性能。尽管一旦关闭系统,RAMDISK就不会保留所存储的信息,但是RAMDISK存储器管理技术对于以常规OS文件格式存储的数据的临时存储和缓存是非常有用的。典型地,将RAMDISK用于web/文件服务器以便缓存海量媒体存储池中的常用文件。
传统上,用于实现RAMDISK的驱动器完全以软件实现。因此,当程序或进程想要读/写RAMDISK中的文件时,将调用RAMDISK驱动器。这种驱动器首先识别所请求的文件是如何映射到保留给RAMDISK的系统存储器位置的。一旦识别出,驱动器将向RAMDISK的存储器传输来自请求进程的存储器的数据,或从RAMDISK的存储器向请求进程的存储器传输数据。通常,这是在CPU的帮助下执行的,其中驱动器指示CPU从系统存储器的RAMDISK部分请求数据。
然而,需要CPU(中央处理单元)为RAMDISK驱动器既管理数据传输又管理文件管理功能。尽管RAMDISK存储器管理技术比使用传统存储驱动器快许多,但是RAMDISK驱动器会利用大量CPU周期以在RAMDISK位置和应用程序位置之间传输数据。此外,为超出4G字节(GB)的存储器(32-位地址)实现RAMDISK,需要RAMDISK驱动器使用CPU的页地址扩展(PAE)模式。然而,PAE模式自身不仅对于RAMDISK驱动器,而且对于所有运行于系统之内的进程都会引入额外的性能损失。
发明内容
根据本发明的一个方面,提供了一种方法,包括:检测对在易失性系统存储器中实现的易失性磁盘驱动器存储器的数据访问请求;以及发出直接存储器访问数据请求以执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
根据本发明的另一个方面,提供了一种装置,包括:用于检测对在易失性系统存储器中实现的易失性磁盘驱动器存储器的数据访问请求的模块;以及用于发出直接存储器访问数据请求以执行来自所述易失性磁盘驱动器存储器的所述数据访问请求的模块。
根据本发明的另一个方面,提供了一种方法,包括:通过一操作系统检测对存储在易失性磁盘驱动器存储器之内的文件的进程读/写访问请求,其中,所述易失性磁盘驱动器存储器在易失性系统存储器之内实现;将所述读/写访问请求传递到易失性磁盘驱动器;以及通过所述易失性磁盘驱动器发出直接存储器访问数据请求以从存储在所述易失性磁盘驱动器存储器中的所述文件执行所述读/写访问请求。
根据本发明的另一个方面,提供了一种装置,包括:用于通过一操作系统检测对存储在易失性磁盘驱动器存储器之内的文件的进程读/写访问请求的模块,其中,所述易失性磁盘驱动器存储器在易失性系统存储器之内实现;用于将所述读/写访问请求传递到易失性磁盘驱动器的模块;以及用于通过所述易失性磁盘驱动器发出直接存储器访问数据请求以从存储在所述易失性磁盘驱动器存储器中的所述文件执行所述读/写访问请求的模块。
根据本发明的另一个方面,提供了一种系统,包括:易失性系统存储器,其具有为提供易失性磁盘驱动器存储器所分配的部分;芯片组,其连接到所述易失性系统存储器,所述芯片组包括直接存储器访问引擎以执行到所述易失性系统存储器的直接存储器访问传输;以及非易失性系统存储器,其连接到所述芯片组,所述非易失性系统存储器包括易失性磁盘驱动器以检测对所述易失性磁盘驱动器的数据访问请求以及向所述芯片组发出直接存储器访问请求,以使所述直接存储器访问引擎执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
附图说明
本发明的各种实施例将通过附图中的示例说明,而不是通过限制的方式说明,其中:
图1是说明根据一个实施例的计算机系统的框图,该计算机系统包含具有集成DMA引擎的DMA控制器以提供对虚拟磁盘驱动器(VDD)的高性能访问;
图2是根据一个实施例进一步说明图1的DMA控制器的框图;
图3是根据一个实施例说明DMA寄存器和链描述符映射的框图;
图4是根据一个实施例说明DMA描述符集合链表的框图,该链表用于使用DMA访问,对虚拟磁盘驱动器之内的数据块进行访问;
图5是根据一个实施例说明对VDD访问请求的检测以及使用图1的DMA控制器通过直接存储器访问的VDD访问请求的后续操作的框图;
图6是说明用于使用已公开的技术对设计进行仿真、模拟以及制造的各种设计表示或格式的框图。
具体实施方式
将描述使用集成直接存储器访问(DMA)引擎进行高性能易失性磁盘驱动(VDD)存储器访问的方法和装置。在一个实施例中,方法包括检测对易失性系统存储器中实现的VDD存储器的数据访问请求。一旦检测到数据访问请求,VDD驱动器会发出DMA数据请求以执行来自VDD的数据访问请求。因此,在一个实施例中,将数据向在易失性系统存储器的所分配的部分之内实现的VDD存储器传输以及从其传输数据的工作被分担给DMA引擎,例如存储器控制中心(MCH)之内的集成DMA引擎。
在以下描述中,提出了很多诸如逻辑实现、信号和总线的型号和名称、系统部件的类型和相互关系以及逻辑划分/集成选择的具体细节以便于更彻底的理解。但是,本领域的技术人员应当知道,本发明可以不用这些具体细节来实现。在其它实例中,没有详细显示控制结构以及门级电路以避免使本发明难以理解。使用所包含的描述,本领域的那些普通技术人员将能够在不需大量试验的情况下实现正确的逻辑电路。
在以下描述中,将某些术语用于描述本发明的特征。例如,术语“逻辑”表示用于实现一个或多个功能的硬件和/或软件。比如,“硬件”的例子包括但不限于集成电路、有限状态机乃至组合逻辑。集成电路可以采取诸如微处理器、专用集成电路、数字信号处理器、微控制器等等的处理器的形式。
“软件”的例子包括应用程序、小程序、例程乃至指令序列形式的可执行代码。在一个实施例中,一件产品包括机器或其上存储有指令的计算机可读介质,该指令对计算机(或其它电子设备)进行编程以执行根据一个实施例的处理。计算机或机器可读介质包括但不局限于:可编程电子电路、包含易失性存储器(例如,随机访问存储器,等)和/或非易失性存储器(例如,任何种类的只读存储器“ROM”、闪存)在内的半导体存储设备、软盘、光盘(例如,高密度盘或者数字视频光盘“DVD”)、硬盘、磁带等等。
系统
图1是说明根据一个实施例的包含直接存储器访问(DMA)控制器200以提供对VDD存储器250的高性能访问的计算机系统100的框图。典型地,计算机系统100包括用于在处理器(CPU)102和芯片组130之间传输信息的处理器系统总线(前端总线(FSB))104。如这里所述,术语“芯片组”用于总体描述与CPU 102连接以执行所希望的系统功能的各种设备。
典型地,芯片组130可以包括连接到图形控制器150的存储器控制中心110(MCH)。在一可选实施例中,图形控制器150集成到MCH中,因此在一个实施例中,MCH 110用作集成图形MCH(GMCH)。典型地,MCH 110还通过系统存储器总线142连接到主存储器140。在一个实施例中,主存储器140可以包括但不限于随机访问存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、双数据率(DDR)SDRAM(DDR-SDRAM)、RambusDRAM(RDRAM)或者任何能够支持高速临时数据存储的设备。
在一个实施例中,MCH 110集成在CPU 102之内以使得能够在CPU 102和主存储器140之间进行直接连接。在一个实施例中,MCH110可以包括外设部件互连(PCI)PCI-Express(PCI-Ex)根端口180(180-1,...180-N),以便通过PCI-Ex连接182(182-1,...,182-N)将PCI-Ex终端190(190-1,...190-N)连接到MCH 110。典型地,PCI-Ex连接182可以提供点到点连接,比如由“PCI Express Base Specification1.0a”(勘误2003年10月7日)定义,以允许外部终端设备190(190-1,...,190-N)和MCH 110之间的双向通信。
作为进一步的说明,芯片组130包括输入输出(I/O)控制器中心(ICH)120。典型地,ICH 120可以包括通用串行总线(USB)连接或互连162以将一个或多个USB槽160连接到ICH 120。另外,串行高级技术附加装置(SATA)172可以将硬盘驱动设备(HDD)170连接到ICH 120。在一个实施例中,ICH 120可以包括传统的PCI/PCIx连接166以将一个或多个PCI/PCIx槽164连接到ICH 120。在一个实施例中,系统BIOS 106初始化计算机系统100。
再次参考图1,在一个实施例中,计算机系统100包括VDD驱动器260。在操作中,VDD驱动器260负责预留和分配一部分易失性系统存储器140,以用作VDD存储器250。在一个实施例中,主存储器140的分配给VDD存储器250的部分是对于计算机系统100的核心操作系统(OS)隐蔽的非可交换存储器。如这里所述,VDD存储器250或者可以称为RAMDISK,它是一种存储器管理技术,用于在程序控制下分配易失性系统存储器的一部分以用作大容量存储设备。
在一个实施例中,VDD驱动器260利用DMA控制器200执行VDD存储器之内的文件操作。传统上,使用已编程的传输来执行由设备驱动器(例如与连接到芯片组(130)的外围设备相关的软件)进行的主存储器访问,其中CPU发出总线事务以为外围设备起动从存储器读数据的操作或向存储器写数据的操作。相反地,DMA是由先进的体系结构提供的能力,它允许在不涉及CPU的情况下将数据在外围设备和主存储器之间直接传输。因此,系统的CPU免于参与数据传输,因此加快了整个计算机的操作。在一个实施例中,如图2所示,DMA控制器200提供计算机系统100之内的DMA能力。
在一个实施例中,DMA控制器包括集成DMA引擎210,用于提供多个DMA通道214(214-1,...214-N)。在一个实施例中,DMA控制器200提供四个DMA通道,每个都可以独立地用于在系统存储器140之内或从系统存储器140向各种连接到芯片组130的外围设备传输数据。在一个实施例中,如以下进一步详细描述的,可以通过写入主存储器140的链描述符和存储器映射内部寄存器组的组合从CPU 102访问DMA通道编程接口,如图3和4所示。
在一个实施例中,DMA通道214之间的仲裁以两阶段出现。典型地,每个DMA通道214具有独立的对于DMA控制器200内部的仲裁器(DMA仲裁器212)的总线请求/许可对。作为进一步说明,DMA控制器200具有对于MCH 110中的主仲裁器(MCH仲裁器220)的单个请求/许可对。在一个实施例中,DMA仲裁器212使用严格轮询策略以准许DMA通道和请求设备对主存储器140的访问。在一个实施例中,DMA仲裁器212可以包括在任何给定时间对于一个DMA通道可选的高优先级指示。因此,一组竞争的DMA通道在正常操作过程中实现均衡的带宽性能。
再次参考图1,如这里所述,每个存在于连接到芯片组130的总线上的外围设备或I/O卡在这里被称为“总线代理”。一般地将总线代理分成均衡代理和优先代理,从而当与均衡代理竞争总线占用权时,优先代理被给予占用权。需要这样的仲裁,因为通常不允许总线代理同时驱动总线发出事务。与计算机系统100的总线代理相关的设备驱动器可以将事务请求232发出给MCH。根据优先级策略,MCH仲裁器220为DMA通道214仲裁以发出DMA传输请求,如图2所示。
如这里所述,术语“事务”被定义为与单个总线访问请求相关的总线活动。通常,事务可以从总线仲裁以及传送事务地址的信号的断言(assertion)开始。如Intel(注册商标)体系结构(IA)规范所定义的,一个事务可以包括多个阶段,每个阶段使用特定的信号集合以传送特定类型的信息。多个阶段中至少包括仲裁阶段(针对总线占用权)、请求阶段、应答阶段以及数据传输阶段。
实现计算机系统(比如计算机系统100)内的DMA访问需要将利用DMA访问的设备指定为总线主控。总线主控是微处理器或独立的I/O控制器(“设备驱动器”)中的程序,用于引导系统总线或输入输出(I/0)路径上的通信。操作中,总线主控设备驱动器请求OS分配一部分主存储器140,其为被指定或使得能够进行DMA以发出DMA数据请求。
再次参考图1,在一个实施例中,VDD驱动器260控制一个或多个被给予总线主控状态的DMA通道,其使得VDD驱动器260能够向DMA控制器200发出DMA访问请求。在操作中,在DMA仲裁器212的仲裁以及随后MCH仲裁器220的仲裁之后,将授权DMA通道214访问以向VDD存储器250发出DMA访问请求。因此,在一个实施例中,当应用程序或进程请求执行文件操作时,比如对VDD存储器250中存储的文件的读/写访问,那么OS可以将该调用传递到VDD驱动器260。在一个实施例中,为引导DMA引擎210执行所请求的文件操作,VDD驱动器260编写链描述符,如参照图3所示。
在一个实施例中,DMA控制器200对所有的每通道寄存器组使用存储器映射配置寄存器。在一个实施例中,与DMA控制器200相关的存储器映射寄存器空间由32-位存储器-基址寄存器(BAR)来标识,它由例如VDD驱动器260使用以访问对编程DMA通道以起动DMA传输所需要的DMA配置寄存器270。在一个实施例中,如图3所示,每个DMA通道具有12个32-位存储器映射寄存器用于它的独立操作。
在一个实施例中,当正常操作过程中从本地存储器中取出一新的描述符时,DMA寄存器270中的八个自动地从链描述符(比如链描述符290)中的它们的对应的域加载。存储器290中的对应的描述符域的格式与为DMA通道专用寄存器270定义的格式相同。当DMA控制器200处于常规模式时,如由DMA模式控制寄存器的DMA模式位所定义的,可以对通道控制272、通道状态274、后续描述符地址282-1以及后续描述符高位地址282-2寄存器进行读/写访问。其余的寄存器都是只读的,并且无论何时DMA通道从本地系统存储器读取链描述符,它们都被自动加载由链描述符290定义的新值。
表1
位 | 说明 |
31:8 | 保留 |
7:6 | 保留 |
5:4 | 保留 |
3 | 通道恢复。如果设置,那么当通道空闲时(CSR中的通道活动位是有效的)或者当通道完成其后续描述符地址为空的DMA传输时,通过重读位于本地系统存储器中的在当前描述符地址寄存器中的地址处的当前描述符设置,使通道恢复链接(chaining)。当出现以下情况时,这个位由硬件清除:●通道完成DMA传输并且后续地址寄存器不为零。在这种情况下,通道继续链表中的下一个描述符设置。●通道空闲或者通道完成当前描述符设置的执行并且后续描述符地址寄存器为零。在这种情况 |
下,通道仅仅清除“通道恢复”位,并保持空闲。一旦设置,软件不能清除这个位。当在CSR中设置停止或者终止位时,硬件阻止设置这个位。在试图恢复当前描述符设置之前,软件必须清除CSR停止和终止位。如果设置了CSR的链结束位,那么当恢复当前描述符设置时,DMA通道清除链结束位。 | |
2 | 停止DMA。当设置时,使当前DMA传输停止。这使得通道不在源端请求总线。将队列中的任何数据清空到目的端,并且清除CCR(所有位3:0)和CSR(通道活动位)中的所有相关位。一旦设置,该位不能由软件清除。应用软件必须小心地设置该位,因为任何DMA一旦停止就不能从那一点重新开始。该位具有比挂起DMA位更高的优先级。在清除通道活动位并且设置了DMA停止位之后,由硬件清除该位。 |
1 | 挂起DMA。当设置时,允许当前DMA描述符设置结束,但挂起通道链接。通道持续在源端向总线请求当前描述符。当将用于该描述符设置的队列中的数据被清空到目的地端时,设置CSR中的DMA挂起位。清除该位并设置“通道恢复”将使用由后续描述符地址寄存器指示的描述符设置重新起动DMA传输,并清除CSR中的DMA挂起位。该位对通道活动位没有影响。 |
0 | 起动DMA。当设置时,使通道能够进行DMA传输。一旦设置,该位不能由软件清除。当DMA传输结束或者由软件停止DMA或者DMA传输遇到不可恢复的错误时,由硬件清除该位。当在CSR中设置停止位或者终止位时,硬件阻止设置该位。在使用一个新描述符设置起动DMA通道之前,DMA通道必须是空闲的并且软件必须清除CSR。 |
再次参考图3,存储器映射DMA寄存器270包括通道控制寄存器(CCR)272,如进一步参照以上提供的表1所说明的。在一个实施例中,CCR272为DMA通道指定整个操作环境。在一个实施例中,在初始化系统存储器中的链描述符并以存储器中第一个DMA链描述符的位置更新后续地址寄存器282(282-1,282-2)之后,设备驱动器初始化CCR 207。在一个实施例中,当DMA通道活动时可以写CCR 272以修改DMA通道操作(例如,停止、挂起等)。
表2
位 | 说明 |
31:7 | 保留 |
6 | 保留 |
5 | 通道活动。当设置时,表示通道在使用中并且活动地执行DMA数据传输。当清除时,表示通道不活动并且可用于由应用软件进行DMA传输配置。当软件通过设置CCR的起动DMA位初始化DMA传输时由硬件设置通道活动标志,并且响应的DMA通道从本地系统存储器中装载描述符设置。 |
4 | DMA异常终止(DABRT)。当设置时,表示用于该通道的当前DMA传输遇到不可恢复的错误。如果设置了DCR的DMA异常终止中断允许位,这标志着对处理器接口的中断。应用软件可以使用该位轮询是否不能够中断。细节在DMA FERR/NERR寄存器中。 |
3 | DMA停止(DSTP)。当设置时,表示由应用软件通过设置CCR中的停止DMA位来停止用于该通道的当前DMA传输。如果设置了DCR的DMA停止中断允许位,那么这标志对处理器接口的中断。应用软件可以使用该位轮询是否不能够中断。 |
2 | DMA挂起(DSUS)。当设置时,表示由应用软件通过设置CCR中的挂起DMA位要求挂起该通道。如果设置了DCR的DMA挂起中断允许位,这标志对处理器接口的中断。应用软件可以使用该位轮询是否不能够中断。 |
1 | 传输结束(EOT)。当设置时,表示通道成功完成了至少一个描述符的无差错DMA传输。如果设置了DCR的传输结束中断允许位,这标志对处理器接口的中断。应用软件可以使用该位轮询是否不能够中断。 |
0 | 链结束(EOC)。当设置时,表示通道成功完成了链表中的最后一个描述符的无差错DMA传输。如果设置了DCR的链结束中断允许位,这标志对处理器接口的中断。应用软件可以使用该位轮询是否不能够中断。 |
在一个实施例中,通道状态寄存器(CSR)274包含表示DMA通道状态的标志。在一个实施例中,寄存器274由VDD驱动器260读取以得到当前DMA通道状态并确定中断源。如表2所示,包含在CSR274之内的各种标志包括通道活动位,其表示通道正在使用;DMA终止(DMABRT)位,其表示终止DMA传输。同样,CSR 274标志还包括DMA停止(DSTP)位,当设置它时,表示停止这个通道的当前DMA传输。
在一个实施例中,设置DMA挂起(DSUS)位表示挂起DMA请求,而传输结束(EOT)位表示通道已为至少一个描述符成功完成DMA;链结束(EOC)标志表示对包括最后一个描述符的所有描述符无错误的进行DMA传输。如这里所述,术语“断言”(assert)、“设置”(set)、“取消断言”(deassert)等术语可以表示数据信号,它们是低态有效或者高态有效信号。所以当与信号关联时,可交替地使用这些术语请求或者暗示高态有效或低态有效信号。
当前描述符地址寄存器(CDAR)276(276-1,276-2)包含本地系统存储器中的当前链描述符的地址的低位和高位。在一个实施例中,当接通电源或系统复位时将CDAR 276清零,并且当开始新的块传输时将自动用后续描述符地址寄存器(NDAR)中的值装载。在一个实施例中,CDAR 276在正常操作过程中是只读的,并且可以通过软件轮询以便随着它穿过DMA描述符链来监控DMA通道的进程。其余的DMA寄存器270对应于DMA链描述符290,可以在起动DMA传输之前由VDD驱动器260对其编程。
在一个实施例中,VDD驱动器260通过在本地系统存储器中构建一个或多个链描述符来初始化DMA通道。如图3和4所示,描述符可以包括表示DMA数据的初始位置的源地址292、表示DMA请求将DMA数据移动或传输到的位置的目的地址294、表示将要传输的字节的数量的传输计数298、以及表示描述符链中的后续描述符的地址的后续描述符地址296。将描述符链的最后描述符的后续描述符地址296设置为零。
在操作中,在由应用程序或进程发出文件操作请求之后,VDD驱动器260从OS接收文件操作请求。根据这种请求,VDD驱动器260对链描述符290的各个部分编程,包括源地址292和目的地址294以及传输计数。在一个实施例中,以双字(Dword)为单位提供传输计数298,并且可以称为Dword计数298。一旦对链描述符进行了编程,VDD驱动器260就更新DMA寄存器270的后续描述符地址寄存器286(NDAR)。
在一个实施例中,由DMA控制器200使用NDAR 286以便定位由VDD驱动器260编程的链描述符。因此,一旦用存储器中的第一个链描述符290的地址填充NDAR 286,则VDD驱动器260就可以设置通道控制寄存器272(见表1)之内的DMA起动位。如图4所示,VDD驱动器260可以对VDD存储器250设置一串块传输;但是,如果将来自应用程序或进程的文件请求限制为从VDD 250的单个块传输,那么VDD驱动器260将DMA链描述符290-1的后续描述符地址域设置为空(零)值。
再次参考图3,DMA寄存器270的源地址寄存器(SAR)278和目的地址寄存器(DAR)280域还包括高位地址寄存器域(278-2和280-2)。在一个实施例中,提供高位地址寄存器域(278-2和280-2)以允许DMA访问请求的36-位或64千兆字节寻址范围。因此,与对建立在易失性系统存储器140之内的VDD存储器250或RAMDISK的传统访问不同,DMA控制器200允许对数据传输进行32位地址界限以外的寻址,否则,对超过四千兆字节(GB)边界的VDD存储器250的访问请求需要使用CPU 102的页地址扩展(PAE)能力。
图5根据一个实施例说明了方法300的概要,其用于利用DMA控制器200之内的集成DMA引擎210来执行VDD存储器250之内的文件操作。典型地,进程302(比如应用程序或运行程序)可以向包含在VDD存储器250之内的文件请求文件操作或者读/写请求。在转移310处,进程302发出VDD访问请求。当由例如OS 304检测到这种访问时,在转移320处,OS 304通过将VDD访问请求传递给VDD驱动器260从而将该调用传递给VDD驱动器260。
在一个实施例中,VDD驱动器260识别对其检测到文件操作或者读/写请求的文件。一旦检测到,VDD驱动器260将文件名以及在该文件中该访问请求被引导到的偏移量转换为主存储器140之内的物理地址。在一个实施例中,根据主存储器140之内的映射到VDD存储器250的物理地址范围执行转换。一旦确定该文件的物理地址,VDD驱动器260就可以通过填充DMA链描述符来编程DMA源和目的地址以及传输长度,例如,如图3和4所示,从而发出DMA读/写(R/W)访问请求到DMA控制器200,如转移330所示。
如图4所示,如果多个数据块涉及文件操作或者对VDD 250的数据访问请求,那么VDD驱动器260可以为一串VDD块传输编程。随后,填充DMA控制器200的NDAR 282以便DMA控制器200可以装载DMA寄存器270之内的描述符链,如图3所示。一旦由例如VDD驱动器260设置了通道控制寄存器272的DMA起动位,DMA控制器200就执行这种动作。随后,如图2所示,DMA引擎210通过执行DMA R/W,根据至少一个由VDD存储器250编程的DMA链描述符来执行数据访问请求或者文件操作,如转移340处所示。
在一个实施例中,一旦DMA引擎210完成了传输,在转移350处,DMA引擎可以向VDD驱动器260发出一个中断,以通知VDD驱动器文件操作完成以及已将数据传输到VDD 250或从VDD 250传输到分配给进程302的存储器。典型地,一旦VDD驱动器260在转移350接收到完成DMA传输的通知,VDD驱动器260可以通知进程302所请求的文件操作或者向/从VDD存储器250的读/写访问请求已完成。在一个实施例中,在转移360处,VDD驱动器260通知进程302已完成的DMA传输。
因此,在一个实施例中,VDD驱动器260的生成将访问VDD存储器250之内的文件数据的操作转交给DMA控制器的集成DMA引擎,例如参照图1和图2所说明的。因此,通过将数据传输工作从CPU 102分担到DMA控制器200,提高了总体的系统性能,从而使得CPU 102避免执行传统的数据传输以便执行对VDD存储器250的文件操作。此外,不同于请求使用CPU的页地址扩展(PAE)模式以寻址超过32位寻址边界的范围的传统的RAMDISK驱动器,将VDD存储器数据传输分担给DMA引擎210,不仅避免了通过使用PAE模式而通常导致的对于VDD驱动器260的性能损失,而且避免了对于所有系统进程的性能损失。
图6是说明使用公开的技术对设计进行仿真、模拟以及制造的各种表示或格式的框图。表示设计的数据会以许多方式表示该设计。首先,由于在仿真中有用,硬件可以用硬件描述语言来表示,或者用另一个功能描述语言表示,其必需提供关于期望所设计的硬件如何执行的计算机化的模型。可以将硬件模型410存储在存储介质400中,比如计算机存储器,因此,可以使用模拟软件420模拟该模型,其中模拟软件将特定的一套测试430应用到硬件模型以确定它是否真正按照计划来运行。在一些实施例中,没有将仿真软件记录、收集或者包含在介质中。
在设计的任何表示中,可以将数据存储在任何形式的机器可读介质中。调制或生成光波或电波460以传送这种信息,存储器450或者磁或光存储器440,比如光盘,可以是机器可读介质。任何这些介质都可以携带设计信息。因此,术语“携带”(例如,机器可读数据介质携带信息)覆盖了存储在存储装置的信息或者编码或调制为载波的信息。描述设计或设计的细节的位的集合是(当体现为机器可读介质,例如载体或存储介质时)—物品,其可以封闭在其自身内外,或者由他人用于进一步设计或者制造。
替代实施例
应当理解,对于其它实施例,可以使用不同的系统配置。例如,虽然对于其它实施例系统100包括单个CPU 102,但是多处理器系统(其中,一个或多个处理器可以在结构和操作上与如上所述的CPU 102类似)也会受益于对各种实施例的VDD存储器的集成DMA存储器控制器访问。此外,不同类型的系统或者不同类型的计算机系统,例如服务器、工作站、桌面计算机系统、游戏系统、嵌入式计算机系统、刀片服务器等等,可以用于其它实施例。
已经公开了实施例和最佳方式,可以对已公开的实施例做出变形或改变,同时仍然属于由以下权利要求所定义的本发明的实施例的范围。
Claims (30)
1.一种对易失性磁盘驱动器存储器进行访问的方法,包括:
检测对在易失性系统存储器中实现的易失性磁盘驱动器存储器的数据访问请求;以及
发出直接存储器访问数据请求以执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
2.如权利要求1所述的方法,其中,在检测所述数据访问请求之前,所述方法还包括:
由一进程请求对存储在所述易失性磁盘驱动器存储器之内的文件的读/写访问;
通过一操作系统检测对存储在所述易失性磁盘驱动器存储器之内的所述文件的进程读/写访问请求;以及
将所述读/写访问请求传递到易失性磁盘驱动器。
3.如权利要求1所述的方法,其中,在检测所述数据访问请求之前,所述方法还包括:
保留所述易失性系统存储器的一部分;以及
在初始化过程中,分配系统存储器的所述保留部分以用作所述易失性磁盘驱动器存储器。
4.如权利要求1所述的方法,其中,检测所述数据访问请求包括:
从操作系统接收由一进程发出的、对存储在所述易失性磁盘驱动器存储器中的文件的读/写访问请求。
5.如权利要求1所述的方法,其中,发出所述直接存储器访问数据请求包括:
根据所述数据访问请求生成至少一个直接存储器访问链描述符;以及
发出一直接存储器访问起动命令以执行对存储在所述易失性磁盘驱动器存储器中的文件的所述数据访问请求。
6.如权利要求5所述的方法,其中生成所述至少一个直接存储器访问链描述符包括:
识别所述易失性磁盘驱动器存储器之内的、所述数据访问请求所指向的文件;
计算所述易失性系统存储器之内的所述文件的物理开始地址;
根据存储在所述易失性磁盘驱动器存储器之内的所述文件之内的所述数据访问请求的偏移量计算直接存储器访问源地址;以及
根据所述数据访问请求计算直接存储器访问目的地址。
7.如权利要求5所述的方法,其中,发出所述直接存储器访问起动命令包括:
用本地系统存储器之内的所述至少一个直接存储器访问链描述符的地址更新直接存储器访问引擎后续地址寄存器;以及
设置直接存储器访问引擎起动直接存储器访问位,以使所述直接存储器访问引擎执行对存储在所述易失性磁盘驱动器存储器之内的所述文件的所述数据访问请求。
8.如权利要求1所述的方法,还包括:
通过直接存储器访问引擎取得位于包含在后续描述符地址寄存器中的地址的直接存储器访问链描述符;
根据所取得的直接存储器访问链描述符执行直接存储器访问传输,以便根据所述数据访问请求将直接存储器访问数据传输到存储在所述易失性磁盘驱动器存储器之内的文件;以及
如果完成所述直接存储器访问传输,则发出一中断给易失性磁盘驱动器。
9.如权利要求1所述的方法,还包括:
如果直接存储器访问引擎完成所述数据访问请求的直接存储器访问传输,则从所述直接存储器访问引擎接收中断;以及
通知发出所述数据访问请求的应用程序已经完成了文件操作。
10.如权利要求1所述的方法,其中,所述易失性磁盘驱动器存储器的尺寸大于四千兆字节。
11.一种对易失性磁盘驱动器存储器进行访问的装置,包括:
用于检测对在易失性系统存储器中实现的易失性磁盘驱动器存储器的数据访问请求的模块;以及
用于发出直接存储器访问数据请求以执行对所述易失性磁盘驱动器存储器的所述数据访问请求的模块。
12.如权利要求11所述的装置,其中用于发出所述直接存储器访问数据请求的模块包括:
用于根据所述数据访问请求生成至少一个直接存储器访问链描述符的模块;以及
用于发出一直接存储器访问起动命令以执行对存储在所述易失性磁盘驱动器存储器中的文件的所述数据访问请求的模块。
13.如权利要求12所述的装置,其中,用于生成所述至少一个直接存储器访问链描述符的模块包括:
用于识别所述易失性磁盘驱动器存储器之内的、所述数据访问请求所指向的文件的模块;
用于计算所述易失性系统存储器之内的所述文件的物理开始地址的模块;
用于根据存储在所述易失性磁盘驱动器存储器之内的所述文件之内的所述数据访问请求的偏移量计算直接存储器访问源地址的模块;以及
用于根据所述数据访问请求计算直接存储器访问目的地址的模块。
14.如权利要求12所述的装置,其中,用于发出所述直接存储器访问起动命令的模块包括:
用于用本地系统存储器之内的所述至少一个直接存储器访问链描述符的地址更新直接存储器访问引擎后续地址寄存器的模块;以及
用于设置直接存储器访问引擎起动直接存储器访问位,以使所述直接存储器访问引擎执行对存储在所述易失性磁盘驱动器存储器之内的所述文件的所述数据访问请求的模块。
15.如权利要求11所述的装置,还包括:
用于如果直接存储器访问引擎完成所述数据访问请求的直接存储器访问传输,则从所述直接存储器访问引擎接收中断的模块;以及
用于通知发出所述数据访问请求的应用程序已经完成了文件操作的模块。
16.一种对易失性磁盘驱动器存储器进行访问的方法,包括:
通过一操作系统检测对存储在易失性磁盘驱动器存储器之内的文件的进程读/写访问请求,其中,所述易失性磁盘驱动器存储器在易失性系统存储器之内实现;
将所述读/写访问请求传递到易失性磁盘驱动器;以及
通过所述易失性磁盘驱动器发出直接存储器访问数据请求以从存储在所述易失性磁盘驱动器存储器中的所述文件执行所述读/写访问请求。
17.如权利要求16所述的方法,其中,发出所述直接存储器访问数据请求包括:
根据所述读/写访问请求生成至少一个直接存储器访问链描述符;以及
发出直接存储器访问起动命令以执行对存储在所述易失性磁盘驱动器存储器中的所述文件的所述读/写访问请求。
18.如权利要求17所述的方法,其中,生成所述至少一个直接存储器访问链描述符包括:
识别所述易失性磁盘驱动器之内的、数据访问请求所指向的文件;
计算所述易失性系统存储器内文件的物理开始地址;
根据存储在所述易失性磁盘驱动器存储器之内的所述文件之内的所述读/写访问请求的偏移量计算直接存储器访问源地址;以及
根据所述读/写访问请求计算直接存储器访问目的地址。
19.如权利要求17所述的方法,其中,生成所述至少一个直接存储器访问链描述符包括:
识别所述易失性磁盘驱动器存储器之内的、数据访问请求所指向的文件;以及
计算所述易失性系统存储器之内的所述文件的物理开始地址。
20.如权利要求16所述的方法,还包括:
通过直接存储器访问引擎取得位于包含在后续描述符地址寄存器中的地址的直接存储器访问链描述符;
根据所取得的直接存储器访问链描述符执行直接存储器访问传输,以便根据所述读/写访问请求从存储在所述易失性磁盘驱动器存储器之内的文件传输直接存储器访问数据;以及
如果完成所述直接存储器访问传输,则发出一中断给所述易失性磁盘驱动器。
21.一种对易失性磁盘驱动器存储器进行访问的装置,包括:
用于通过一操作系统检测对存储在易失性磁盘驱动器存储器之内的文件的进程读/写访问请求的模块,其中,所述易失性磁盘驱动器存储器在易失性系统存储器之内实现;
用于将所述读/写访问请求传递到易失性磁盘驱动器的模块;以及
用于通过所述易失性磁盘驱动器发出直接存储器访问数据请求以从存储在所述易失性磁盘驱动器存储器中的所述文件执行所述读/写访问请求的模块。
22.如权利要求21所述的装置,其中,用于发出所述直接存储器访问数据请求的模块包括:
用于根据所述读/写访问请求生成至少一个直接存储器访问链描述符的模块;以及
用于发出直接存储器访问起动命令以执行对存储在所述易失性磁盘驱动器存储器中的所述文件的所述读/写访问请求的模块。
23.如权利要求22所述的装置,其中,用于生成所述至少一个直接存储器访问链描述符的模块包括:
用于识别所述易失性磁盘驱动器之内的、所述数据访问请求所指向的文件的模块;
用于计算所述易失性系统存储器之内的所述文件的物理开始地址的模块;
用于根据存储在所述易失性磁盘驱动器存储器之内的所述文件之内的所述读/写访问请求的偏移量计算直接存储器访问源地址的模块;以及
用于根据所述读/写访问请求计算直接存储器访问目的地址的模块。
24.如权利要求22所述的装置,其中,用于生成所述至少一个直接存储器访问链描述符的模块包括:
用于识别所述易失性磁盘驱动器存储器之内的、所述数据访问请求所指向的文件的模块;以及
用于计算所述易失性系统存储器之内的所述文件的物理开始地址的模块。
25.如权利要求21所述的装置,还包括:
用于通过直接存储器访问引擎取得位于包含在后续描述符地址寄存器中的地址的直接存储器访问链描述符的模块;
用于根据所取得的直接存储器访问链描述符执行直接存储器访问传输,以便根据所述读/写访问请求从存储在所述易失性磁盘驱动器存储器之内的所述文件传输直接存储器访问数据的模块;以及
用于如果完成所述直接存储器访问传输,则发出一中断给所述易失性磁盘驱动器的模块。
26.一种对易失性磁盘驱动器存储器进行访问的系统,包括:
易失性系统存储器,其具有为提供易失性磁盘驱动器存储器所分配的部分;
芯片组,其连接到所述易失性系统存储器,所述芯片组包括直接存储器访问引擎以执行到所述易失性系统存储器的直接存储器访问传输;以及
非易失性系统存储器,其连接到所述芯片组,所述非易失性系统存储器包括易失性磁盘驱动器以检测对所述易失性磁盘驱动器的数据访问请求以及向所述芯片组发出直接存储器访问请求,以使所述直接存储器访问引擎执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
27.如权利要求26所述的系统,其中,所述芯片组还包括具有集成直接存储器访问引擎的存储器控制器中心。
28.如权利要求26所述的系统,其中,所述芯片组还包括:
输入/输出控制器中心。
29.如权利要求26所述的系统,其中,所述芯片组还包括:
直接存储器访问控制器,其包括至少一个后续描述符地址寄存器以存储由所述易失性磁盘驱动器编程的直接存储器访问链描述符的物理地址,以执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
30.如权利要求29所述的系统,其中,所述直接存储器访问控制器还包括:
通道控制寄存器,其包含一直接存储器访问起动位以指示所述直接存储器访问引擎装载所述直接存储器访问链描述符并执行对所述易失性磁盘驱动器存储器的所述数据访问请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/882,073 US7484016B2 (en) | 2004-06-30 | 2004-06-30 | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US10/882,073 | 2004-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1961300A CN1961300A (zh) | 2007-05-09 |
CN100592271C true CN100592271C (zh) | 2010-02-24 |
Family
ID=34972868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580017641A Expired - Fee Related CN100592271C (zh) | 2004-06-30 | 2005-06-21 | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7484016B2 (zh) |
JP (1) | JP4543086B2 (zh) |
KR (1) | KR100909119B1 (zh) |
CN (1) | CN100592271C (zh) |
DE (1) | DE112005001512B4 (zh) |
TW (1) | TWI278755B (zh) |
WO (1) | WO2006012196A2 (zh) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
US7506098B2 (en) * | 2006-06-08 | 2009-03-17 | Bitmicro Networks, Inc. | Optimized placement policy for solid state storage devices |
JP2008071054A (ja) * | 2006-09-13 | 2008-03-27 | Ricoh Co Ltd | データ転送制御方法、データ処理装置及び画像処理装置 |
US8095758B2 (en) * | 2008-02-01 | 2012-01-10 | International Business Machines Corporation | Fully asynchronous memory mover |
US8015380B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Launching multiple concurrent memory moves via a fully asynchronoous memory mover |
US8356151B2 (en) * | 2008-02-01 | 2013-01-15 | International Business Machines Corporation | Reporting of partially performed memory move |
US8327101B2 (en) * | 2008-02-01 | 2012-12-04 | International Business Machines Corporation | Cache management during asynchronous memory move operations |
US8245004B2 (en) * | 2008-02-01 | 2012-08-14 | International Business Machines Corporation | Mechanisms for communicating with an asynchronous memory mover to perform AMM operations |
US8275963B2 (en) * | 2008-02-01 | 2012-09-25 | International Business Machines Corporation | Asynchronous memory move across physical nodes with dual-sided communication |
WO2010033497A1 (en) | 2008-09-18 | 2010-03-25 | Marvell World Trade Ltd. | Preloading applications onto memory at least partially during boot up |
KR101231055B1 (ko) * | 2008-12-19 | 2013-02-07 | 한국전자통신연구원 | 프로세서의 메모리 제어신호를 이용한 디스크 시스템 |
US8095700B2 (en) * | 2009-05-15 | 2012-01-10 | Lsi Corporation | Controller and method for statistical allocation of multichannel direct memory access bandwidth |
US8260980B2 (en) * | 2009-06-10 | 2012-09-04 | Lsi Corporation | Simultaneous intermediate proxy direct memory access |
US8473661B2 (en) * | 2009-08-14 | 2013-06-25 | Cadence Design Systems, Inc. | System and method for providing multi-process protection using direct memory mapped control registers |
US8327039B2 (en) * | 2009-08-14 | 2012-12-04 | Cadence Design Systems, Inc. | Integrated DMA processor and PCI express switch for a hardware-based functional verification system |
KR101685407B1 (ko) * | 2010-07-29 | 2016-12-13 | 삼성전자주식회사 | 멀티코어 시스템을 위한 다이렉트 메모리 억세스 장치 및 다이렉트 메모리 억세스 장치의 동작 방법 |
US9854198B2 (en) * | 2011-01-05 | 2017-12-26 | Freebit Co. Ltd. | Memory card device |
US8855194B2 (en) * | 2011-05-09 | 2014-10-07 | Texas Instruments Incorporated | Updating non-shadow registers in video encoder |
US8793462B2 (en) | 2011-05-24 | 2014-07-29 | International Business Machines Corporation | Implementing storage adapter performance optimization with enhanced resource pool allocation |
US8495259B2 (en) * | 2011-05-24 | 2013-07-23 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware chains to select performance path |
US8495258B2 (en) * | 2011-05-24 | 2013-07-23 | International Business Machines Corporation | Implementing storage adapter performance optimization with hardware accelerators offloading firmware for buffer allocation and automatically DMA |
US8544029B2 (en) | 2011-05-24 | 2013-09-24 | International Business Machines Corporation | Implementing storage adapter performance optimization with chained hardware operations minimizing hardware/firmware interactions |
US8886881B2 (en) | 2011-05-24 | 2014-11-11 | International Business Machines Corporation | Implementing storage adapter performance optimization with parity update footprint mirroring |
US8656213B2 (en) | 2011-05-24 | 2014-02-18 | International Business Machines Corporation | Implementing storage adapter performance optimization with chained hardware operations and error recovery firmware path |
US8516164B2 (en) * | 2011-05-24 | 2013-08-20 | International Business Machines Corporation | Implementing storage adapter performance optimization with enhanced hardware and software interface |
US8868828B2 (en) | 2011-05-24 | 2014-10-21 | International Business Machines Corporation | Implementing storage adapter performance optimization with cache data/directory mirroring |
CN102231142B (zh) * | 2011-07-21 | 2013-12-11 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
US9141394B2 (en) | 2011-07-29 | 2015-09-22 | Marvell World Trade Ltd. | Switching between processor cache and random-access memory |
US9436629B2 (en) | 2011-11-15 | 2016-09-06 | Marvell World Trade Ltd. | Dynamic boot image streaming |
CN104040510B (zh) * | 2011-12-21 | 2017-05-17 | 英特尔公司 | 具备安全的直接存储器访问的计算设备及相应方法 |
CN104011691B (zh) * | 2011-12-29 | 2016-12-14 | 英特尔公司 | 非易失性ram盘 |
US9208002B2 (en) | 2012-01-06 | 2015-12-08 | International Business Machines Corporation | Equalizing bandwidth for multiple requesters using a shared memory system |
CN102841870B (zh) * | 2012-08-10 | 2015-04-15 | 无锡众志和达数据计算股份有限公司 | 基于高速串行总线的通用dma结构及预读方法 |
US9092364B2 (en) | 2012-10-04 | 2015-07-28 | International Business Machines Corporation | Implementing storage adapter performance control |
US9575768B1 (en) | 2013-01-08 | 2017-02-21 | Marvell International Ltd. | Loading boot code from multiple memories |
US9336108B2 (en) | 2013-01-24 | 2016-05-10 | Xcerra Corporation | Scalable test platform |
US9213616B2 (en) * | 2013-01-24 | 2015-12-15 | Xcerra Corporation | Automated test platform utilizing status register polling with temporal ID |
US9459978B2 (en) * | 2013-01-24 | 2016-10-04 | Xcerra Corporation | Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test |
US9430348B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
US9430349B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
ES2687609T3 (es) | 2013-05-02 | 2018-10-26 | Huawei Technologies Co., Ltd. | Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo |
US9736801B1 (en) | 2013-05-20 | 2017-08-15 | Marvell International Ltd. | Methods and apparatus for synchronizing devices in a wireless data communication system |
US9521635B1 (en) | 2013-05-21 | 2016-12-13 | Marvell International Ltd. | Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system |
US9836306B2 (en) | 2013-07-31 | 2017-12-05 | Marvell World Trade Ltd. | Parallelizing boot operations |
US10275164B2 (en) * | 2015-05-27 | 2019-04-30 | Nutech Ventures | Enforcing persistency for battery-backed mobile devices |
WO2017168228A1 (en) | 2016-03-08 | 2017-10-05 | Marvell World Trade Ltd. | Methods and apparatus for secure device authentication |
DE102016211768A1 (de) * | 2016-06-29 | 2018-01-04 | Robert Bosch Gmbh | Speicherdirektzugriffssteuereinrichtung und Betriebsverfahren hierfür |
FR3057969B1 (fr) | 2016-10-25 | 2019-11-01 | Thales | Systeme de pilotage deterministe du fonctionnement de moyens de transfert de donnees par acces direct a des moyens de memorisation |
KR102447465B1 (ko) | 2017-09-08 | 2022-09-27 | 삼성전자주식회사 | 호스트로부터의 읽기 요청에 대한 짧은 읽기 응답 시간을 제공하기 위해 내부 동작을 일시적으로 중단하는 스토리지 장치 |
KR20190090614A (ko) * | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
CN109189701B (zh) * | 2018-08-20 | 2020-12-29 | 深圳忆联信息系统有限公司 | 一种针对嵌入式存储接口数据传输的方法及其系统 |
KR102382186B1 (ko) * | 2018-10-10 | 2022-04-05 | 삼성전자주식회사 | 딥 러닝을 위한 고성능 컴퓨팅 시스템 |
KR102162151B1 (ko) | 2018-11-20 | 2020-10-08 | 서문석 | 배기열 및 이중 송풍기를 이용한 발효장치 |
CN113424144A (zh) * | 2019-03-12 | 2021-09-21 | 英特尔公司 | 计算数据存储系统 |
FR3094507A1 (fr) * | 2019-03-29 | 2020-10-02 | Stmicroelectronics (Grenoble 2) Sas | Accès direct en mémoire |
US20200266995A1 (en) * | 2020-05-04 | 2020-08-20 | Vinodh Gopal | Managing state in accelerators |
WO2022086559A1 (en) * | 2020-10-23 | 2022-04-28 | Hewlett-Packard Development Company, L.P. | Access to volatile memories |
CN112506827A (zh) * | 2020-11-12 | 2021-03-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于adma控制器的数据传输方法、装置及设备 |
CN116932451A (zh) * | 2022-03-31 | 2023-10-24 | 华为技术有限公司 | 一种数据处理方法、主机及相关设备 |
US20230350820A1 (en) * | 2022-04-28 | 2023-11-02 | Infineon Technologies Ag | Systems and methods for concurrent logging and event capture |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62119657A (ja) * | 1985-11-20 | 1987-05-30 | Fujitsu Ltd | Dmaチエイン制御方式 |
JPS62157934A (ja) * | 1985-12-28 | 1987-07-13 | Casio Comput Co Ltd | メモリ・アドレス方式 |
US5241508A (en) * | 1991-04-03 | 1993-08-31 | Peripheral Land, Inc. | Nonvolatile ramdisk memory |
JPH07225727A (ja) * | 1994-02-14 | 1995-08-22 | Fujitsu Ltd | 計算機システム |
US5713044A (en) | 1995-12-19 | 1998-01-27 | Intel Corporation | System for creating new group of chain descriptors by updating link value of last descriptor of group and rereading link value of the updating descriptor |
WO1997034228A1 (fr) | 1996-03-13 | 1997-09-18 | Hitachi, Ltd. | Unite de traitement d'informations comportant une fonction permettant de supprimer les effractions, unite de commande de memoire et procede de traitement d'acces direct en memoire |
US6012107A (en) | 1997-05-22 | 2000-01-04 | Adaptec, Inc. | Hardware control block delivery queues for host adapters and other devices with onboard processors |
US6493811B1 (en) | 1998-01-26 | 2002-12-10 | Computer Associated Think, Inc. | Intelligent controller accessed through addressable virtual space |
US6338119B1 (en) * | 1999-03-31 | 2002-01-08 | International Business Machines Corporation | Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance |
JP3824122B2 (ja) * | 1999-04-12 | 2006-09-20 | 株式会社リコー | Dma装置 |
US6757291B1 (en) * | 2000-02-10 | 2004-06-29 | Simpletech, Inc. | System for bypassing a server to achieve higher throughput between data network and data storage system |
JP2001290661A (ja) * | 2000-04-04 | 2001-10-19 | Matsushita Commun Ind Co Ltd | オペレーティングシステム制御装置及び制御方法並びにオペレーティングシステム制御プログラムを記録した記録媒体 |
US6889340B1 (en) * | 2000-10-13 | 2005-05-03 | Phoenix Technologies Ltd. | Use of extra firmware flash ROM space as a diagnostic drive |
US6957313B2 (en) | 2000-12-01 | 2005-10-18 | Hsia James R | Memory matrix and method of operating the same |
JP2004005382A (ja) * | 2002-03-29 | 2004-01-08 | Fujitsu Ltd | データ転送装置および方法 |
JP4317348B2 (ja) * | 2002-05-15 | 2009-08-19 | 株式会社日立製作所 | 情報処理装置及び入出力方法並びにプログラム |
US20040128416A1 (en) * | 2002-12-11 | 2004-07-01 | Tsvika Kurts | Apparatus and method for address bus power control |
US7111182B2 (en) * | 2003-08-29 | 2006-09-19 | Texas Instruments Incorporated | Thread scheduling mechanisms for processor resource power management |
DE102004004796B4 (de) | 2004-01-30 | 2007-11-29 | Infineon Technologies Ag | Vorrichtung zur Datenübertragung zwischen Speichern |
US7484016B2 (en) * | 2004-06-30 | 2009-01-27 | Intel Corporation | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine |
-
2004
- 2004-06-30 US US10/882,073 patent/US7484016B2/en not_active Expired - Fee Related
-
2005
- 2005-06-21 JP JP2007527817A patent/JP4543086B2/ja not_active Expired - Fee Related
- 2005-06-21 CN CN200580017641A patent/CN100592271C/zh not_active Expired - Fee Related
- 2005-06-21 KR KR1020067027705A patent/KR100909119B1/ko not_active IP Right Cessation
- 2005-06-21 DE DE112005001512T patent/DE112005001512B4/de not_active Expired - Fee Related
- 2005-06-21 WO PCT/US2005/022226 patent/WO2006012196A2/en active Application Filing
- 2005-06-24 TW TW094121186A patent/TWI278755B/zh not_active IP Right Cessation
-
2009
- 2009-01-27 US US12/360,713 patent/US7769918B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TWI278755B (en) | 2007-04-11 |
WO2006012196A2 (en) | 2006-02-02 |
US7484016B2 (en) | 2009-01-27 |
US20060004946A1 (en) | 2006-01-05 |
DE112005001512B4 (de) | 2012-09-27 |
US20090138627A1 (en) | 2009-05-28 |
CN1961300A (zh) | 2007-05-09 |
KR100909119B1 (ko) | 2009-07-23 |
KR20070024670A (ko) | 2007-03-02 |
JP4543086B2 (ja) | 2010-09-15 |
JP2008502084A (ja) | 2008-01-24 |
DE112005001512T5 (de) | 2007-05-10 |
WO2006012196A3 (en) | 2006-05-04 |
TW200617684A (en) | 2006-06-01 |
US7769918B2 (en) | 2010-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100592271C (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US10275348B2 (en) | Memory controller for requesting memory spaces and resources | |
US10002085B2 (en) | Peripheral component interconnect (PCI) device and system including the PCI | |
US8645811B2 (en) | System and method for selective error checking | |
US8423682B2 (en) | Address space emulation | |
TWI496076B (zh) | 上下文狀態管理技術 | |
JP5357972B2 (ja) | コンピュータシステムにおける割り込み通信技術 | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US20170329717A9 (en) | Fault buffer for resolving page faults in unified virtual memory system | |
JP2011065650A (ja) | ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供 | |
US9575914B2 (en) | Information processing apparatus and bus control method | |
JP2006309757A (ja) | メモリーに送るコマンドの選択方法、メモリーコントローラー、コンピュータシステム | |
US10114758B2 (en) | Techniques for supporting for demand paging | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
US11003606B2 (en) | DMA-scatter and gather operations for non-contiguous memory | |
CN114902198B (zh) | 用于异构存储器系统的信令 | |
KR20220116033A (ko) | 비휘발성 메모리 모듈에 대한 오류 복구 | |
US10459662B1 (en) | Write failure handling for a memory controller to non-volatile memory | |
US10642727B1 (en) | Managing migration events performed by a memory controller | |
US10705993B2 (en) | Programming and controlling compute units in an integrated circuit | |
JPH1055331A (ja) | プログラム可能な読み出し/書き込みアクセス信号とその方法 | |
JP2023508117A (ja) | 不揮発性メモリモジュールのエラー報告 | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
US20060277326A1 (en) | Data transfer system and method | |
US20050209839A1 (en) | Data processing apparatus simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100224 Termination date: 20180621 |