CN1552028A - 用于片上系统的分布式直接存储器访问的方法和装置 - Google Patents
用于片上系统的分布式直接存储器访问的方法和装置 Download PDFInfo
- Publication number
- CN1552028A CN1552028A CNA028174941A CN02817494A CN1552028A CN 1552028 A CN1552028 A CN 1552028A CN A028174941 A CNA028174941 A CN A028174941A CN 02817494 A CN02817494 A CN 02817494A CN 1552028 A CN1552028 A CN 1552028A
- Authority
- CN
- China
- Prior art keywords
- data
- direct memory
- visit
- buffer
- storer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Abstract
本发明提供了一种在片上系统中分布式直接存储器访问的方法、装置和系统。DMA控制器单元被分布到要求直接存储器访问的各个功能模块。这些功能模块接口到其上发生直接存储器访问的系统总线。要求进行直接存储器访问的全局缓冲存储器耦合到系统总线。利用总线仲裁器仲裁哪个功能模块可访问系统总线来执行直接存储器访问。一旦一个功能模块被总线仲裁器选择来访问系统总线,该功能模块就可以用全局缓冲区存储器建立DMA例程。
Description
技术领域
本发明一般地涉及直接存储器访问控制器。更具体而言,本发明涉及用于片上系统(system on chip)的直接存储器访问。
背景技术
在计算机系统中,一般有三种方法来在系统总线上在中央处理单元(CPU)的主存储器或寄将其存器与输入/输出(I/O)设备之间传送数据。这三种方法是编程I/O、中断驱动I/O和直接存储器访问(DMA)。对编程I/O和中断驱动I/O,CPU负责从主存储器获得数据以在系统总线上将其传送到I/O设备,以及从I/O设备获得数据以在系统总线上传送到主存储器。这样,编程I/O和中断驱动I/O要求CPU的直接参与,这使其忙于管理数据传送从而不能执行其他更重要的功能。
所引入的直接存储器访问(DMA)要求集中的DMA控制器来减少数据传送中CPU的参与。集中DMA控制是公知的。集中DMA控制器基本上接管了在系统总线上在主存储器与I/O设备之间传送数据的任务。在DMA访问中,CPU的参与减少为对DMA传送的初始设置以及在DMA传送完成时的清理。在实际的DMA数据传送由DMA控制器控制的同时,CPU可以执行其他计算或功能。作为结果,DMA数据传送比编程I/O或中断驱动I/O方法都更有效率。为了避免系统总线上的冲突,DMA控制被集中到集中DMA控制器中。集中DMA控制器执行系统总线到所连接的I/O设备的仲裁,每次只允许一个I/O设备在它和主存储器之间传送数据。另外,当多个I/O设备同时要求执行DMA访问时,集中DMA控制器必须执行某种优先排序(prioritization)方法。于是,集中DMA控制器的控制逻辑可能会相当复杂,这可导致集中DMA控制器的电路模块相当大。
改进的半导体制造技术一直在使集成电路的特征尺寸减小,例如晶体管沟道长度。更小的晶体管已允许制造更复杂的集成电路,使得现在可在单个集成电路芯片中形成功能系统,并且得到令人满意的成品率(yield)。这些功能系统是基本上完整的系统,通常称为片上系统(SOC)。在一个SOC中,可能有许多需要向存储器或从存储器传送数据的功能模块。此外,当制造SOC时,通常期望其具有灵活性,使得可扩展功能模块的数量以处理更多的数据和/或增加其他类型的功能模块。随着功能模块数量的增加,在SOC中出现了潜在的仲裁问题。在此情况下使用集中DMA控制器的缺点是可能需要重新设计控制逻辑来满足扩展。
本美国(U.S.)非临时专利申请基于由Ganapathy等人于2000年9月8日递交的题为“METHOD AND APPARATUS FOR DISTRIBUTEDDIRECT MEMORY ACCESS FOR SYSTEMS ON CHIP”的U.S.临时专利申请No.60/231,421,这两个申请都转让给英特尔公司。
附图说明
图1是本发明片上系统的方框图。
图2是本发明分组语音(voice over packet,VOP)片上系统的详细方框图。
图3是包括图2中所示的核心直接存储器访问(DMA)控制器的核心处理器的实例的方框图。
图4是全局缓冲存储器的示例性存储器映射图,所述全局缓冲存储器包括具有起始和结束DMA地址位置的DMA数据,和用于描述存储于所述全局缓冲存储器中的DMA数据的DMA描述符表。
图5是图2的串行DMA控制器的方框图。
图6A是通过图2的多信道串行端口发送或接收的数据帧的示例性串行数据流。
图6B是由图5的时分复用(TDM)重映射存储器执行的多信道串行端口的数据帧的示例性重映射。
图7是图2的核心DMA控制器的方框图。
图8是图2的主机DMA控制器的方框图。
附图中类似的标号和标记指示提供类似功能的元件。参考标号后的字母表示具有该参考标号的元件的一个例子。
具体实施方式
在以下对本发明的详细说明中,给出了大量的具体细节以更充分地理解本发明。但是,没有这些具体细节也可以实施本发明,这对本领域的技术人员是明显的。在另外一些例子里,没有详细描述公知的方法、过程、组件和电路,以免不必要地混淆本发明各方面。
在片上系统(SOC)中提供了一种分布式直接存储器访问(DMA)的方法、装置和系统。DMA控制器单元被分布到要求对全局缓冲存储器进行直接存储器访问的多个功能模块。DMA控制器单元仲裁哪个功能模块可访问全局缓冲存储器。多个功能模块接口到其上发生直接存储器访问的系统总线。要求进行直接存储器访问的全局缓冲存储器耦合到系统总线。利用总线仲裁器来仲裁哪个功能模块可访问系统总线以执行直接存储器访问。一旦总线仲裁器选择了一个功能模块来访问系统总线,则其可建立对全局缓冲存储器的DMA例程。
现在参考图1,图示了一个片上系统(SOC)的方框图。一个实施例中的片上系统(SOC)100是分组语音(VOP)系统,包括通过一个连接与电话网络进行接口的多信道全双工串行端口和通过另一个连接与分组网络进行接口的另一个端口。在一个实施例中的电话网络是具有TDM串行数据流的公共交换电话网络(PSTN)。
现在参考图2,图示了一个分组语音片上系统(VOP SOC)100的详细方框图。分组语音片上系统100具有耦合到全局缓冲存储器210的中央系统总线200。系统总线200是标准的系统总线,其包括用于地址信号、数据信号和控制信号的导电迹线(trace)和导线。总线使用地址线来执行DMA传送。总线并发复用多个DMA事务,并且每次只处理一件事务。所以它需要一组地址线来用于该传送(读或写)。地址和数据线是分开的。在一个实施例中系统总线200用于数据信号的总线宽度具有64位的数据系统总线宽度(DSBW)。64位宽的数据系统总线宽度有助于高带宽的数据传送。由耦合到系统总线200的总线仲裁器201A-201N使用统一的可编程仲裁协议来仲裁片上系统100的功能模块对中央系统总线200的访问。由总线仲裁器201A-201N所提供的标准系统总线200和统一仲裁协议简化了系统总线200的仲裁。为了获得对全局缓冲存储器210的访问,片上系统100的功能模块必须首先通过总线仲裁器201A-201N获得对系统总线200的访问。系统总线200上的轮循(round-robin)仲裁方案保证分布式DMA主控制器203A-203N、207和215中的每个都有时间访问系统总线200,并在该时间可访问全局存储器210。
VOP SOC 100的所有代码、数据和状态信息都存储到作为中央存储库(depository)的全局缓冲存储器210中并从中读取。这样,数据带宽就很重要,并需要使用本发明的分布式直接存储器访问(DMA)系统在系统总线200上高效地将信息传送进和传送出全局缓冲存储器210。在总线仲裁器仲裁对系统总线的访问的同时,分布式DMA系统仲裁对全局缓冲存储器210的访问。全局存储器210是片上系统100中的分布式DMA主控制器的从属设备(slave)并包括从属DMA接口。全局缓冲存储器210响应于系统总线200上由分布式DMA控制器发起的DMA传送请求。分布式DMA系统允许功能模块生成其自己的用于全局缓冲存储器的地址,并避免每个周期都不断发送指令来访问大块数据。在一次DMA操作中设置寄存器,其允许自动生成地址并依序访问多个数据块或字节。片上系统100上要求直接存储器访问全局缓冲存储器210的功能模块包括一个或多个核心信号处理器202A-202N、与电话网络进行接口的多信道全双工串行端口206、以及与主机和分组网络进行接口的主机端口214。SOC 100的全局缓冲存储器210直接耦合到中央系统总线200。
除了微控制器223,片上系统100上要求直接存储器访问全局缓冲存储器210的模块都具有其自己的直接存储器访问(DMA)控制器。微控制器223通过总线接口224和总线仲裁器201C而耦合到系统总线200。微控制器223用作系统或执行程序管理器,以协调来自串行端口206和主机端口214的数据流和任务的调度。它不需要DMA控制器,但却为发送到全局存储器210的指令和数据生成高速缓存线差错(cache line miss)。微控制器具有数据高速缓存227和与之相关联的指令高速缓存228,这引起高速缓存线差错的生成。微控制器设置DMA描述符并指示SOC 100的单个功能单元执行DMA传送。总线仲裁器210C与总线接口224相互通话以使微控制器获得对系统总线的访问。微控制器223提供作业控制并象数据交通警察一样来协调进出全局缓冲存储器210的数据传送。通过将DMA描述符列表写入与该DMA相关的全局缓冲存储器,微控制器223设置了一个DMA。其随后通过指出DMA描述符列表的起始地址而通知功能单元执行对数据的DMA。功能单元随后读取DMA描述符列表并执行对数据的DMA。DMA描述符列表包括数据的起始地址和要传送的字节数。DMA描述符列表包括下面更加详细描述的其他信息。除微控制器223之外,一个或多个核心处理器202A-202N也可在全局存储器210中形成特别用于核心DMA传送的DMA描述符。作为一个例子,为了处理给定通信信道的数据帧或数据块,微控制器223使用核心处理器202A-202N中的一个设置DMA。它向这个核心处理器通知全局缓冲存储器中的描述符列表的起始地址。这个核心处理器读过描述符列表中的每一行,并对数据执行从全局缓冲存储器到该核心处理器的本地存储器中的DMA。
多信道串行端口206与多个全双工时分复用(TDM)远程通信信道进行接口以使VOP SOC 100支持多个通信信道。多信道串行端口206用作多个通信信道中每个的接收器和发送器,所述多个通信信道是512个信道量级。接收自电话网络的数据由多信道串行端口206存储到全局缓冲存储器210中,以由核心处理器202A-202N处理。在被核心处理器202A-202N处理之后要发送到电话网络上的数据,由多信道串行端口206从全局缓冲存储器210检索获取。为了直接访问全局缓冲存储器,多信道串行端口206包括耦合到总线仲裁器201A的串行DMA控制器207。
主机端口214耦合到主机,以在开机时接收外部数据并设置与其将处理的通信信道相关的信息。此外,主机端口214耦合到分组网络来全双工地为多个通信信道收发数据的分组有效载荷。接收自分组网络的数据由主机端口214存储到全局缓冲存储器210中,以由核心处理器202A-202N处理。在被核心处理器202A-202N处理之后要发送到分组网络上的数据,由主机端口214从全局缓冲存储器210检索获取。由主机端口214收发的分组有效载荷在分组网络上发送之前被分组,并在从分组网络接收到通过主机端口接收的分组有效载荷数据之后被去分组(depacketize)。或者,在VOP SOC 100中可包括分组器和去分组器以直接与分组网络进行接口。
在一个实施例中,主机端口214还实现可兼容英特尔I960的主机端口的协议。主机端口214耦合到例如英特尔I960主机处理器的主机以接收外部信息,因为全局缓冲存储器210对片上系统100是内部的。通过主机端口214,主机提供SOC 100启动期间关于启动序列的信息和关于SOC 100要支持的通信信道的信道设置信息,以及用户需要加载到SOC 100中的任何其他外部信息。一个实施例中的主机端口214包括32位宽的并行数据端口。换言之,分组有效载荷数据和其他信息可使用32位数据字宽从外部源流进和流出主机端口。主机端口214将外部总线上的32位数据转换成64位数据以在系统总线200上传输,并将来自系统总线200的64位数据转换成32位数据以发送出主机端口。
核心处理器202A-202N处理从电话网络接收到的TDM信号,并可响应于在电话网络上的反向通信而生成TDM信号,或者为在分组网络上通信而生成分组有效载荷。核心处理器202A-202N处理从分组网络接收到的分组有效载荷,为在分组网络上反向通信而将其处理成分组有效载荷或者为在电话网络上通信而将其处理成TDM数据。在任何情况下,需要处理的数据都首先存储到全局缓冲存储器210中。一个或多个核心处理器202A-202N随后检索到给定信道的数据用于处理。在数据由一个或多个核心处理器202A-202N完成处理之后,就存储到全局缓冲存储器210中。为了直接访问全局缓冲存储器,一个或多个核心处理器202A-202N包括一个或多个核心DMA控制器203A-203N,以将数据DMA到其本地存储器中。与状态信息和信道的功能处理相关联的代码也存储在全局缓冲存储器210中,并被DMA传送到将处理新数据采样的一个或多个核心处理器之一的本地存储器(程序存储器和数据存储器)中,其中状态信息用于信道及其数据采样的优先处理。
现在参考图3,图示了核心处理器202的方框图。图3中所图示的核心处理器202代表了图2中一个或多个核心处理器202A-202N的一个实例。核心处理器202包括图3中所示的耦合到一起的核心DMA控制器203、数字信号处理器(DSP)300、数据存储器302和程序存储器304。数据存储器302和程序存储器304中的存储器单元(location)可分配到双信道中以处理两个通信信道。按此方式将存储器单元分配到两个信道中有时称为双缓冲存储器方案。即数据存储器302可视作分开在两个信道上,信道1数据存储器302A和信道2数据存储器302B。类似地,程序存储器304可视作分开在两个信道上,信道1程序存储器304A和信道2程序存储器304B。信道1程序存储器304A对应于信道1数据存储器302A。信道2程序存储器304B对应于信道2数据存储器302B。
核心DMA控制器203和DSP 300在所有进行访问的存储器信道之间往复。核心DMA控制器203将数据和代码写入数据存储器和程序存储器的相应于未被处理的信道的存储器单元。在DSP 300正在处理一个信道的存储器单元的同时,DMA正在读出或更新另一个信道的存储器单元。例如,DSP 300使用在程序存储器304的信道1304A中存储的代码来处理数据存储器302的信道1302A中的数据。在DSP 300在处理信道1的同时,核心DMA控制器203更新数据存储器302的信道2302B以处理下一个信道。核心DMA控制器203还可在处理完成之后从信道2中读出数据,并随后用新数据来更新信道2302B以处理下一个信道。核心DMA控制器203使用直接存储器访问在全局缓冲存储器210以及数据存储器302和程序存储器304之间传送代码和数据。
在数据存储器302和核心DMA控制器203之间传送数据是通过机会性(opportunistic)读和写的。即在每个机会下,数据都在核心DMA控制器203和一个或多个核心处理器202A-202N的数据存储器302之间传送。如果处理器未使用双端口的数据存储器302的任一端口,则数据可写入任一端口或从任一端口读取。无论何时有空闲的(多个)存储器单元可用来将数据写入正被处理的簇(bank)中,则DMA进程可写入空闲的(多个)存储器单元。在存储器单元包含的数据已处理完之后,DMA进程在可用的时候可从数据存储器302中的(多个)存储器单元读取。核心处理器202A-202N具有更高的优先权来访问存储器簇,而DMA控制器周期获取(cycle steal)对数据存储器的访问用于机会性读写。类似地,在程序存储器304和全局缓冲存储器210之间传送代码是通过机会性读写的。
数据存储器302和全局缓冲存储器210之间用于DMA传送的指令包括开始、停止、继续、挂起和恢复。在DMA控制器203中有DMA描述符寄存器。这些指令中的一个或多个可在DMA进行的同时被写入DMA描述符寄存器,并可使得恰当的动作被执行。DMA传送也可由用户使用停止命令或挂起命令来停止。在DMA传送被停止之后,可使用继续指令来继续。在停止或挂起之后,用户可开始另一个DMA传送过程。在挂起之后,被挂起的DMA传送可使用恢复命令来恢复。在DMA过程要完成的时候,反馈耦合一个中断信号来指示主机、微控制器或核心处理器(DSP)检查DMA控制器的状态。
存储到数据存储器302的任一信道中的数据字的位宽与系统总线200的数据系统总线宽度(DSBW)相匹配。需要存储到程序存储器304的任一信道中的代码字的位宽匹配于DSP 300的指令宽度。在一个实施例中,存储到数据存储器302的任一信道中的数据字宽是64位宽,而存储到程序存储器304的任一信道中的程序代码字宽是40位宽。这样,DMA控制器203还将从全局缓冲存储器210接收的64位程序代码转换(即选择性分组)成40位的字宽。DMA控制器每次向DSP展示40位。包括在核心DMA控制器203中的先进先出(FIFO)执行64-40位的转换。从全局缓冲存储器210读出的每5个64位的字(总共320位)的代码被转换成8个40位的字(总共320位)的代码。即数据系统总线宽度和程序存储器304的字宽之间的最小公分母的位被分组成字。
分布式DMA控制器中的每个在读取的时候向全局缓冲存储器提供源地址,在写入的时候向全局缓冲存储器提供目的地址。核心DMA控制器203还在向数据存储器302和程序存储器304写入的时候为其生成目的地址,或者在从其读取的时候生成源地址。具有可以是40位宽地址字的程序存储器304是40位可寻址的。具有可以是64位宽地址字的数据存储器302是64位可寻址的。这样,当执行全局缓冲存储器210与数据存储器302或程序存储器304之间的DMA传送时,核心DMA控制器203提供源和目的地址两者。
现在参考图4,图示了全局缓冲存储器210的示例性存储器映射的方框图。数据字或块被存储到具有匹配于数据系统总线宽度(DSBW)的大小的全局缓冲存储器中,并从中读出。在一个实施例中,数据系统总线宽度和存储在全局缓冲存储器中的可寻址存储器单元中的数据字的宽度都是64位。换言之,当一个地址被提供给全局缓冲存储器时,可以一次读出64位或一次写入64位。对32位宽的地址字,全局缓冲存储器在64位的边界上可寻址。
在图4的示例存储器映射中,全局缓冲存储器210包括在第一起始地址B1和第一结束地址E1之间的数据,作为一组直接存储器可访问数据(称为DMAD1)。DMAD1例如代表已从主机端口或多信道串行端口接收的数据、或已由核心处理器202A-202N中的一个写入的数据。图4的示例存储器映射还包括在第二起始地址B2和第二结束地址E2之间的数据,作为第二组直接存储器可访问数据(称为DMAD2)。图4的示例存储器映射还图示了包括在第三起始地址B3和第三结束地址E3之间的数据的全局缓冲存储器210,作为第三组直接存储器可访问数据(称为DMAD3)。
全局缓冲存储器还包括DMA描述符表401。DMA描述符表401具有一个或多个DMA描述列表402A-402N的信息,其涉及存储在全局缓冲存储器210中的直接存储器可访问数据。一个或多个DMA描述列表由分布式DMA控制器中的每个当与全局缓冲存储器210进行DMA传送信息时来使用。DMA描述列表402A-402N中的每个包括对全局缓冲存储器中的数据、代码、状态或其他信息的起始指针。DMA描述符表401中的一个或多个DMA描述列表402A-402N指向直接存储器可访问数据DMAD1、DMAD2和DMAD3。在直接存储器可访问数据不再有效或可使用之后,DMA描述列表被无效或清除。
在图4中,DMA描述符表401包括存储在全局缓冲存储器210中的示例DMA描述列表402A,其用来处理给定信道。DMA描述列表402N可能已经被串行DMA控制器或主机DMA控制器用来从它们各自的端口DMA信息到全局缓冲存储器。可以使用相同的DMA描述列表来从全局缓冲存储器DMA信息到一个或多个核心处理器202A-202N的本地存储器、数据存储器和程序存储器中。在这种情况下,该DMA描述列表可能包括到DMA描述列表402N的链接。
图4图示了处理信道的示例DMA描述列表402A。示例DMA描述列表402A包括发送程序指针410、采样类型描述412、状态信息指针414、其它(miscellaneous)控制指针416、起始数据存储器指针418和链接列表指针420。发送程序指针410指向用来处理给定信道的代码的起始地址。采样类型描述412描述串行端口上数据采样的类型,即它们是否是4位、8位、16位,以及它们是否是压缩的,如果是的话使用了什么压缩类型。如果在存储器中有用于可能在当前计算中使用的信道的数据采样计算的最后状态的数据,则状态信息指针指向存储器中的该数据。其它控制指针416指向与要直接存储器访问进入全局缓冲存储器210或出来的数据采样、代码、状态信息或其他信息相关的其它控制信息。起始存储器单元418提供要被直接存储器访问的数据的起始地址,其指向诸如示例存储器映射的B1、B2或B3的第一个数据字或块。或者,链接列表指针420可指向(422)另一个DMA描述列表420N,用于需要直接存储器访问出入全局缓冲存储器的数据或其他信息。这样DMA描述符列表可以串在一起。
现在参考图5,图示了串行DMA控制器207的方框图。串行DMA控制器207包括接收FIFO缓冲器502、发送FIFO缓冲器504、信道寄存器505、数据计数器506、状态/控制寄存器507、控制逻辑508和TDM重映射存储器510。在串行端口上发送和接收的数据可以用压缩算法来压缩。在数据是语音数据的情况下,压缩算法可以是A律(A-law)压缩和μ律(Mu-law)压缩。非压缩形式下的语音数据是PCM或脉冲编码调制数据。此外,数据是在串行数据流上时分复用到每个通信信道的时隙中的。因为本发明的分布式DMA尤其适合于支持给定信道的数据块,所以串行端口提供了对来自每个信道的串行数据流的数据的交织(interleave)和去交织。
串行DMA控制器207通过总线仲裁器201A耦合到系统总线200来接收和发送并行数据位。串行DMA控制器207耦合到电话网络来接收和发送串行数据流。串行DMA控制器207还包括DMA控制信号,其请求和控制通过系统总线200的直接存储器访问。这些DMA控制信号包括DMA请求(DMA REQ)、DMA确认(DMA ACK)、中断请求(INT)、读/写选通信号(R/W),它们通过总线仲裁器201A耦合到系统总线200的控制线上。DMA控制信号耦合到控制逻辑块508。控制逻辑块508生成DMA REQ、INT、R/W选通信号并接收DMA ACK信号。串行DMA控制器207的并行数据端口耦合到总线仲裁器201A。接收FIFO缓冲器502、发送FIFO缓冲器504、信道寄存器、数据计数器506和状态/控制寄存器507通过串行DMA控制器207的并行数据端口而耦合到总线仲裁器201A。一个实施例中的接收FIFO缓冲器502和发送FIFO缓冲器504有一到二个条目(entry)(64位)深,并提供对TDM重映射存储器510和全局缓冲存储器210的突发写和读。串行DMA控制器207的TDM重映射存储器510通过多信道串行数据端口耦合到电话网络,以在其上发送和接收串行数据流。
当从电话网络接收串行数据流时,TDM重映射存储器510提供串行到并行的转换。当将串行数据流发送到电话网络上时,TDM重映射存储器510提供并行到串行的转换。TDM重映射存储器恰当地将数据交织到串行数据流的时隙中以便发送。TDM重映射存储器恰当地将数据从串行数据流的时隙中去交织为接收数据。TDM重映射存储器510还将合适的数据重映射到存储器单元中,从而支持多个串行通信信道。即当接收串行数据时,通过将数据从时隙中去交织到合适的存储器单元来将串行数据流读入TDM重映射存储器,使得给定信道的一整帧数据准备好DMA到全局缓冲存储器中。对于发送串行数据,一整帧数据被存储到TDM重映射存储器中,使其可一次多块的读出并被交织到给定信道的合适的时隙中。
串行DMA控制器的状态/控制寄存器507提供读取时候的关于串行端口206和串行DMA控制器的状态信息。状态/控制寄存器507维护多个标志(flag),包括接收FIFO缓冲器满标志和发送FIFO缓冲器满标志。当缓冲器满标志被设置时,除非该标志被清除否则不能在各个缓冲器中存储其他数据。当你想要关于某个信道的具体状态的时候,信道寄存器505被设成特定信道号。如果信道寄存器没有选择信道号,则在读状态/控制寄存器507的时候提供一般状态。当向状态/控制寄存器507写入的时候,可以建立或更新串行DMA控制器207和串行端口206的控制。数据计数器506对DMA传送中的字节数计数以确定传送何时完成。数据计数器506的计数值还有助于生成全局缓冲存储器210的地址。
现在参考图6A和6B,图示了TDM重映射存储器510的功能。图6A图示了在多信道串行端口207的串行端口上的示例串行数据流。串行端口上的串行数据流是时分复用的(TDM)。通信信道(CH1到CHN)被赋给从帧1到帧M的帧同步脉冲(FS)之间的指定时隙。在一个实施例中的每个信道时隙是一个八位数据的DS0数据字节。在另一个实施例中,每个信道时隙是16位数据。本发明可适用于每信道每时隙的其它数据位。
图6B图示了将多帧数据重映射到各个信道1到N的数据的示例,反之亦然。从帧1到M上的信道1数据被组织到一起。从帧1到M上的信道2数据被组织到一起等等,直到信道N。对N个通信信道M帧被存储在TDM重映射存储器中。在接收期间,只要N个DS0字的信道1数据存储到TDM重映射器中,一帧的信道1数据就立即经由DMA被写到全局缓冲存储器210。TDM重映射存储器将所接收的DS0字映射到每个信道的数据帧。在发送期间,只要对N个信道中的每个都有一帧数据存储到TDM重映射存储器中,一帧的串行TDM数据就可被发送到电话网络。TDM重映射存储器将N个信道的数据帧映射到每个信道的DS0字中。
现在参考图7,图示了核心DMA控制器203的方框图。核心DMA控制器203是一个或多个核心DMA控制器203A-203N的一个例子。核心DMA控制器203包括接收FIFO缓冲器702、发送FIFO缓冲器704、状态/控制寄存器705、数据计数器706、队列寄存器/计数器707、控制逻辑708、解码器711、一对复用器712-713和编码器714。控制逻辑708具有:为一次连接而在处理器侧耦合到数据存储器302和程序存储器304的DMA控制信号(DMA REQ PROC.、DMA ACK PROC.、INT PROC.和R/W PROC.);和为第二次连接而在总线侧通过系统总线耦合到全局缓冲存储器210的DMA控制信号(DMA REQ BUS、DMA ACK BUS、INTBUS和R/W BUS)。核心DMA控制器203的接收FIFO缓冲器702、发送FIFO缓冲器704、状态/控制寄存器705、数据计数器706、队列寄存器/计数器707、解码器711和编码器714在一侧耦合到核心处理器202的数据存储器302和程序存储器304。核心DMA控制器203的接收FIFO缓冲器702、发送FIFO缓冲器704、状态/控制寄存器705、数据计数器706和队列寄存器/计数器707通过总线一侧上的一个或多个总线仲裁器201A-201N和系统总线200而耦合到全局存储器210。在一个实施例中的接收FIFO缓冲器702和发送FIFO缓冲器704有64字节深,并提供对全局缓冲存储器和核心处理器的突发写和读。
前面提到在本发明的一个实施例中,存储到数据存储器302的任一信道中的数据字宽是64位宽,而存储到程序存储器304的任一信道中的程序代码字宽是40位宽。在这种情况下,核心DMA控制器203将从全局缓冲存储器210接收到的64位程序代码转换成40位字宽。具有64位宽的程序代码以8个8位字节存储到接收FIFO中。由处理器从接收FIFO读取程序代码,使得一次读出5个8位字节(即40位)代码到程序存储器304中。或者,这可以看作5个64位字(320位)被存储到接收FIFO中并从接收FIFO读出8个40位字(320位)。
此外,核心DMA控制器可在将接收自全局缓冲存储器的数据写入数据存储器304之前解压缩该数据,并且可在将读自数据存储器304的数据写入全局缓冲存储器210之前压缩该数据。复用器712选择是将来自接收FIFO缓冲器702的信息直接耦合到数据存储器和程序存储器,还是将来自解码信息的解码器711的两个解码输出中的一个耦合过去。复用器712还允许来自数据计数器706、状态/控制寄存器705和队列寄存器/计数器707的信息被耦合到处理器或数据存储器和程序存储器。复用器713选择是将来自数据存储器、程序存储器或DSP的信息直接耦合到发送FIFO缓冲器704,还是将来自编码信息的编码器714的一个或两个编码输出耦合过去。在一个实施例中,压缩格式可以是A律或μ律非线性压缩格式,而其解压缩格式是线性或脉冲编码调制数据。通过响应于DMA描述符列表而设置状态/控制寄存器705中的位来选择压缩和解压缩。
通过在核心DMA控制器中编码(压缩)和解码(解压缩)数据,来自串行端口的数据在从串行端口经过系统总线而进入全局缓冲存储器,以及随后通过系统总线而进入核心DMA控制器时,都可保持被压缩。在SOC 100中尽可能长时间地保持数据被压缩为数据传送提供了增大的带宽。
核心DMA控制器的状态/控制寄存器705当被读取时提供了关于各个核心处理器202和核心DMA控制器的状态信息。状态/控制寄存器705维护多个标志,包括接收FIFO缓冲器满标志和发送FIFO缓冲器满标志。当缓冲器满标志被设置时,除非该标志被清除否则不能在各个缓冲器中存储其他数据。当向状态/控制寄存器705写入的时候,可以建立或更新核心DMA控制器203的控制。数据计数器706对DMA传送中的字节数计数以确定传送何时完成。数据计数器706的计数值还有助于生成全局缓冲存储器210的地址。
在全局缓冲存储器与核心处理器的数据存储器或程序存储器之间的数据DMA中,各核心DMA控制器使用相同的DMA描述符列表,其被用来将数据从主机端口或串行端口DMA到全局缓冲存储器中。不需要额外的DMA描述符列表。
现在参考图8,图示了包括主机DMA控制器215的主机端口214。主机DMA控制器215包括接收FIFO缓冲器802、发送FIFO缓冲器804、状态/控制寄存器805、数据计数器806、队列寄存器/计数器807、提供流控制的控制逻辑808和I/O端口寄存器。控制逻辑808包括提供数据流控制和提供DMA控制结构的逻辑。DMA控制结构用作队列句柄(handle)。状态/控制寄存器805向外部主机提供对控制和状态信息的访问,并向内部微控制器223提供对状态通知和队列计数器信息的访问。在一个实施例中的接收FIFO缓冲器802和发送FIFO缓冲器804有64字节深。接收FIFO缓冲器802和发送FIFO缓冲器804提供主机处理器和SOC100之间的突发写和读。图8中图示的主机端口214另外还包括I/O端口寄存器810,用来选择性地与主机处理器进行接口。DMA控制器215的控制逻辑808具有在总线侧通过仲裁器201和系统总线200而耦合到全局缓冲存储器210的DMA控制信号(DMA REQ BUS、DMA ACK BUS、INTBUS和R/W BUS)。控制逻辑808具有在主机侧耦合到主机的DMA控制信号(DMA REQ HOST、DMA ACK HOST、INT HOST和R/WHOST)。接收FIFO缓冲器802、发送FIFO缓冲器804、状态/控制寄存器805、数据计数器806和队列寄存器/计数器807在一侧耦合到总线仲裁器201。接收FIFO缓冲器802、发送FIFO缓冲器804和数据计数器806在相对侧耦合到I/O缓冲器810。照这样,分组有效载荷的并行数据可在主机和系统总线200之间流动出入全局缓冲存储器210。
主机端口214的I/O端口寄存器810为主机处理器提供了指针来写数据和读数据。
主机DMA控制器215的状态/控制寄存器805当被读取时提供了关于主机端口214和主机DMA控制器215的状态信息。状态/控制寄存器805维护多个标志,包括接收FIFO缓冲器满标志和发送FIFO缓冲器满标志。当缓冲器满标志被设置时,除非该标志被清除否则不能在各个缓冲器中存储其他数据。当向状态/控制寄存器805写入的时候,可以建立或更新主机DMA控制器215和主机端口214的控制。数据计数器806对DMA传送中的字节数计数以确定传送何时完成。数据计数器806的计数值还有助于生成全局缓冲存储器210的地址。
如此描述了本发明的优选实施例。本领域普通技术人员将认识到本发明具有许多优点。本发明的一个优点是由于宽的系统总线、串行数据的重映射、以及传输中的数据的压缩/解压缩,增大了全局缓冲存储器的带宽。本发明的另一个优点是仲裁通过使用总线仲裁的共同标准而简化,并由于直接存储器访问控制器的分布而提高。
虽然已经在一个分组语音片上系统的具体实施例中描述了本发明,但其同样可应用到其他片上系统。此外,本发明可以硬件、软件、固件或其组合来实现,并在其系统、子系统、组件或子组件中利用。当以软件实现时,本发明的元素基本上是执行必要任务的代码段。程序或代码段可存储在处理器可读介质中,或由以载波实现的计算机数据信号在传输介质或通信链路上传输。“处理器可读介质”可包括能存储或传送信息的任何介质。处理器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(ROM)、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路等等。计算机数据信号可包括能在传输介质上传播的任何信号,所述传输介质例如是电子网络信道、光纤、空气、电磁、RF链路等等。代码段可经由例如因特网、内联网(intranet)等等的计算机网络而下载。在任何情况下,本发明都不应理解成被这些实施例所限制,而应根据权利要求来理解。
Claims (20)
1.一种片上系统,包括:
缓冲存储器;
系统总线,耦合到所述缓冲存储器;
多个总线仲裁器,耦合到所述系统总线;和
多个功能模块,耦合到所述多个总线仲裁器,所述多个功能模块中的每个包括耦合到所述多个总线仲裁器的一个总线仲裁器的直接存储器访问控制器,所述直接存储器访问控制器提供对所述缓冲存储器的直接存储器访问。
2.如权利要求1所述的片上系统,其中
所述多个总线仲裁器协商所述多个功能模块对所述系统总线的访问。
3.如权利要求1所述的片上系统,还包括:
微控制器,耦合到所述系统总线。
4.如权利要求1所述的片上系统,其中,
所述片上系统是分组语音片上系统;并且
所述多个功能模块包括
一个或多个信号处理器,用来处理多个通信信道的数据,所述一个或多个信号处理器直接存储器访问所述缓冲存储器,以读取用于处理的数据并在处理之后写入数据,
主机端口,耦合到分组网络并对所述分组网络收发分组有效载荷,并直接存储器访问所述缓冲存储器,来从所述缓冲存储器读取数据和向其写入数据,和
多信道串行端口,耦合到电话网络并对所述电话网络收发数据,并直接存储器访问所述缓冲存储器,来从所述缓冲存储器读取数据和向其写入数据。
5.一种分布式直接存储器访问全局缓冲存储器的方法,所述方法包括:
提供一个或多个功能单元,其中每个都具有直接存储器访问控制器;
由所述一个或多个功能单元请求对系统总线的访问,以直接存储器访问所述全局缓冲存储器;
仲裁由所述一个或多个功能单元对所述系统总线的访问;
由所述一个或多个功能单元获得对所述系统总线的访问;以及
由所述一个或多个功能单元建立与所述全局缓冲存储器的直接存储器访问连接,并从所述全局缓冲存储器中的存储器单元读取数据或向其写入数据。
6.如权利要求5所述的方法,还包括:
在所述一个或多个功能单元直接存储器访问所述全局缓冲存储器之前,将串行数据流重映射到并行数据流中。
7.如权利要求5所述的方法,还包括:
在所述一个或多个功能单元直接存储器访问所述全局缓冲存储器之后,将并行数据流重映射到串行数据流中。
8.如权利要求5所述的方法,其中
所述步骤在片上系统中执行。
9.如权利要求8所述的方法,其中
所述片上系统是分组语音系统,其一端接口到分组网络,而在相对端接口到电话网络。
10.一种分布式直接存储器访问控制系统,包括:
存储器;
多个直接存储器访问控制器,分布在系统的多个功能模块中,所述多个直接存储器访问控制器控制所述系统的所述多个功能模块对所述存储器的直接存储器访问。
11.如权利要求10所述的分布式直接存储器访问控制系统,还包括:
系统总线,耦合在所述存储器和所述多个直接存储器访问控制器之间,所述系统总线包括数据总线,数据可在所述数据总线上在所述系统的所述多个功能模块和所述存储器之间流动。
12.如权利要求11所述的分布式直接存储器访问控制系统,其中,
所述系统总线还包括直接存储器访问控制线,以请求直接存储器访问所述存储器并控制与所述存储器的所述直接存储器数据流。
13.如权利要求10所述的分布式直接存储器访问控制系统,其中
所述存储器是直接可访问存储器并包括直接存储器访问控制器。
14.如权利要求13所述的分布式直接存储器访问控制系统,其中
所述存储器的所述直接存储器访问控制器包括
接收先进先出缓冲器,用来存储接收的数据,
发送先进先出缓冲器,用来存储发送的数据,
数据计数器,用来对通过直接存储器访问发送到所述存储器和从所述存储器接收的数据单元数计数,和
控制逻辑,耦合到所述接收先进先出缓冲器、所述发送先进先出缓冲器和所述数据计数器,以控制通过直接存储器访问所发送和接收的数据。
15.如权利要求10所述的分布式直接存储器访问控制系统,其中
所述多个直接存储器访问控制器包括
接收先进先出缓冲器,用来存储接收的数据,
发送先进先出缓冲器,用来存储发送的数据,
数据计数器,用来对通过直接存储器访问发送到所述存储器和从所述存储器接收的数据单元数计数,和
控制逻辑,耦合到所述接收先进先出缓冲器、所述发送先进先出缓冲器和所述数据计数器,以控制通过直接存储器访问所发送和接收的数据。
16.如权利要求15所述的分布式直接存储器访问控制系统,其中
所述多个直接存储器访问控制器中的一个还包括
重映射存储器,用来将并行数据重映射到串行数据并将串行数据重映射到并行数据。
17.一种直接存储器访问描述符表,用来控制对存储器中信息的直接存储器访问,所述直接存储器访问描述符表包括:
存储在所述存储器中的一个或多个直接存储器访问描述符列表,所述一个或多个直接存储器访问描述符列表中的每个包括
指针,指向所述存储器中的起始地址,其中从所述起始地址开始直接存储器访问来自或到所述存储器的数据。
18.如权利要求17所述的直接存储器访问描述符表,其中
所述直接存储器访问描述符列表中的一个还包括
关于要被直接存储器访问的数据的类型的信息。
19.如权利要求17所述的直接存储器访问描述符表,其中
所述直接存储器访问描述符列表中的一个还包括
指针,指向所述存储器中的起始地址,其中从所述起始地址开始直接存储器访问来自或到所述存储器的在前状态信息。
20.如权利要求17所述的直接存储器访问描述符表,其中
所述直接存储器访问描述符列表中的一个还包括
指针,指向所述存储器中的起始地址,其中从所述起始地址开始直接存储器访问来自或到所述存储器的程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/949,461 US6874039B2 (en) | 2000-09-08 | 2001-09-07 | Method and apparatus for distributed direct memory access for systems on chip |
US09/949,461 | 2001-09-07 | ||
PCT/US2002/027642 WO2003023625A1 (en) | 2001-09-07 | 2002-08-30 | Method and apparatus for distributed direct memory access for systems on chip |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1552028A true CN1552028A (zh) | 2004-12-01 |
CN1552028B CN1552028B (zh) | 2011-11-30 |
Family
ID=25489127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN028174941A Expired - Fee Related CN1552028B (zh) | 2001-09-07 | 2002-08-30 | 片上系统和其分布式直接存储器访问的方法和控制系统 |
Country Status (8)
Country | Link |
---|---|
US (6) | US6874039B2 (zh) |
EP (1) | EP1430405B1 (zh) |
KR (1) | KR100801763B1 (zh) |
CN (1) | CN1552028B (zh) |
AT (1) | ATE352814T1 (zh) |
DE (1) | DE60217884T2 (zh) |
TW (1) | TWI268426B (zh) |
WO (1) | WO2003023625A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100547572C (zh) * | 2007-10-22 | 2009-10-07 | 威盛电子股份有限公司 | 动态建立直接内存访问通路的方法及系统 |
CN101482853B (zh) * | 2008-01-10 | 2010-10-27 | 松翰科技股份有限公司 | 直接存储器访问系统及方法 |
CN102541780A (zh) * | 2011-12-15 | 2012-07-04 | 苏州国芯科技有限公司 | 一种多数据流通道dma系统 |
CN101227388B (zh) * | 2006-10-27 | 2012-07-04 | 惠普开发有限公司 | 操作计算机系统的方法和具有网络接口重发的计算机系统 |
CN103034598A (zh) * | 2011-09-28 | 2013-04-10 | 安凯(广州)微电子技术有限公司 | 保存dma下行数据时写使能信号的处理方法及系统 |
WO2015070539A1 (zh) * | 2013-11-14 | 2015-05-21 | 浪潮电子信息产业股份有限公司 | 一种基于dma的数据压缩芯片结构及其实现方法 |
WO2016134634A1 (zh) * | 2015-02-27 | 2016-09-01 | 中兴通讯股份有限公司 | 报文接收方法、装置、设备、计算机存储介质及中央处理器 |
CN107273312A (zh) * | 2016-04-04 | 2017-10-20 | 罗伯特·博世有限公司 | 具有工作存储器的计算单元用的存储器直接访问控制装置 |
CN107544928A (zh) * | 2016-06-29 | 2018-01-05 | 罗伯特·博世有限公司 | 直接存储器访问控制装置和对此的运行方法 |
CN110399321A (zh) * | 2018-04-25 | 2019-11-01 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN111752878A (zh) * | 2019-03-29 | 2020-10-09 | 意法半导体(格勒诺布尔2)公司 | 直接存储器访问 |
Families Citing this family (163)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003593B2 (en) * | 1997-12-17 | 2006-02-21 | Src Computers, Inc. | Computer system architecture and memory controller for close-coupling within a hybrid processing system utilizing an adaptive processor interface port |
US6874039B2 (en) | 2000-09-08 | 2005-03-29 | Intel Corporation | Method and apparatus for distributed direct memory access for systems on chip |
US20020104011A1 (en) * | 2001-02-01 | 2002-08-01 | Bechtel Bwtx Idaho, Llc | Systems and methods for employing opportunistic data transfer to create a dynamically mobile data communication system |
JP2003150395A (ja) * | 2001-11-15 | 2003-05-23 | Nec Corp | プロセッサとそのプログラム転送方法 |
WO2004006105A2 (en) * | 2002-07-08 | 2004-01-15 | Globespanvirata Incorporated | Dma scheduling mechanism |
US7958289B2 (en) * | 2002-08-08 | 2011-06-07 | International Business Machines Corporation | Method and system for storing memory compressed data onto memory compressed disks |
US20040039835A1 (en) * | 2002-08-21 | 2004-02-26 | Intel Corporation | Method and apparatus for transferring general purpose control information between processors |
US7551909B1 (en) * | 2002-08-29 | 2009-06-23 | Silicon Image, Inc. | CMOS transceiver with dual current path VCO |
ATE498161T1 (de) * | 2002-12-06 | 2011-02-15 | Telecom Italia Spa | Dma-verfahren, entsprechende system und rechnerprogrammprodukt |
EP1434138B1 (en) * | 2002-12-26 | 2005-11-09 | Alcatel | A data handling device |
JP2004326180A (ja) * | 2003-04-21 | 2004-11-18 | Matsushita Electric Ind Co Ltd | 集積回路、それを用いた画像入出力装置及び画像入出力方法 |
US7243178B2 (en) * | 2003-05-16 | 2007-07-10 | Intel Corporation | Enable/disable claiming of a DMA request interrupt |
US7200689B2 (en) * | 2003-07-31 | 2007-04-03 | International Business Machines Corporation | Cacheable DMA |
TWI220614B (en) * | 2003-10-21 | 2004-08-21 | Benq Corp | Method and device for updating frame number and automatically generating frame boundary |
US20050091432A1 (en) * | 2003-10-28 | 2005-04-28 | Palmchip Corporation | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs |
US8504992B2 (en) * | 2003-10-31 | 2013-08-06 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
US9087036B1 (en) | 2004-08-12 | 2015-07-21 | Sonics, Inc. | Methods and apparatuses for time annotated transaction level modeling |
KR100524076B1 (ko) * | 2003-11-13 | 2005-10-26 | 삼성전자주식회사 | 데이터 압축 및 복원 장치 |
JP2005165508A (ja) * | 2003-12-01 | 2005-06-23 | Renesas Technology Corp | ダイレクトメモリアクセスコントローラ |
KR101034493B1 (ko) * | 2004-01-09 | 2011-05-17 | 삼성전자주식회사 | 화상 변환 장치, 화상 변환을 위한 직접 메모리 액세스장치 및 화상 변환을 지원하는 카메라 인터페이스 |
US7467238B2 (en) * | 2004-02-10 | 2008-12-16 | Hitachi, Ltd. | Disk controller and storage system |
JP4405277B2 (ja) * | 2004-02-16 | 2010-01-27 | 株式会社日立製作所 | ディスク制御装置 |
CN100369023C (zh) * | 2004-02-25 | 2008-02-13 | 中国科学院计算技术研究所 | 直接存储器访问传输装置及其方法 |
US7543088B2 (en) * | 2004-03-11 | 2009-06-02 | Sonics, Inc. | Various methods and apparatuses for width and burst conversion |
US7475168B2 (en) * | 2004-03-11 | 2009-01-06 | Sonics, Inc. | Various methods and apparatus for width and burst conversion |
US7657667B2 (en) * | 2004-03-25 | 2010-02-02 | International Business Machines Corporation | Method to provide cache management commands for a DMA controller |
US7320090B2 (en) * | 2004-06-09 | 2008-01-15 | International Business Machines Corporation | Methods, systems, and media for generating a regression suite database |
US7392330B2 (en) * | 2004-07-02 | 2008-06-24 | Mediatek Usa Inc. | Memory access bandwidth allocation and latency control in a digital camera |
US20060026308A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | DMAC issue mechanism via streaming ID method |
US9274586B2 (en) * | 2004-09-08 | 2016-03-01 | Cisco Technology, Inc. | Intelligent memory interface |
US8032676B2 (en) * | 2004-11-02 | 2011-10-04 | Sonics, Inc. | Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device |
US7155554B2 (en) * | 2004-11-02 | 2006-12-26 | Sonics, Inc. | Methods and apparatuses for generating a single request for block transactions over a communication fabric |
US7277975B2 (en) * | 2004-11-02 | 2007-10-02 | Sonics, Inc. | Methods and apparatuses for decoupling a request from one or more solicited responses |
US20060125835A1 (en) * | 2004-12-10 | 2006-06-15 | Li Sha | DMA latency compensation with scaling line buffer |
KR100714096B1 (ko) * | 2004-12-21 | 2007-05-02 | 한국전자통신연구원 | 온-칩 네트워크를 구비한 동영상 인코딩 장치 및 그 설계방법 |
US7499452B2 (en) * | 2004-12-28 | 2009-03-03 | International Business Machines Corporation | Self-healing link sequence counts within a circular buffer |
KR100621631B1 (ko) | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
US7774512B2 (en) * | 2005-02-08 | 2010-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for hybrid DMA queue and DMA table |
KR100694095B1 (ko) * | 2005-03-05 | 2007-03-12 | 삼성전자주식회사 | 버스 연결 방법 및 장치 |
JP2006268753A (ja) * | 2005-03-25 | 2006-10-05 | Fujitsu Ltd | Dma回路及びコンピュータシステム |
DE102005026436B4 (de) * | 2005-06-08 | 2022-08-18 | Austriamicrosystems Ag | Schnittstellenanordnung, insbesondere für ein System-on-Chip, und deren Verwendung |
EP1899826B1 (en) * | 2005-06-30 | 2011-03-16 | Freescale Semiconductor, Inc. | Device and method for controlling an execution of a dma task |
JP4598858B2 (ja) * | 2005-06-30 | 2010-12-15 | フリースケール セミコンダクター インコーポレイテッド | ダイレクトメモリアクセスタスク要求のアービトレーションを行うためのデバイスおよび方法 |
DE602005023542D1 (de) * | 2005-06-30 | 2010-10-21 | Freescale Semiconductor Inc | Einrichtung und verfahren zum ausführen einer dma-task |
US7370135B2 (en) * | 2005-11-21 | 2008-05-06 | Intel Corporation | Band configuration agent for link based computing system |
US7768936B2 (en) * | 2006-06-23 | 2010-08-03 | At&T Intellectual Property I, L.P. | Method and apparatus for transporting deterministic traffic in a gigabit passive optical network |
US20080082715A1 (en) * | 2006-09-29 | 2008-04-03 | Honeywell International Inc. | Data transfers over multiple data buses |
US8769168B2 (en) * | 2006-10-17 | 2014-07-01 | International Business Machines Corporation | Method for communicating with a network adapter using a queue data structure and cached address translations |
US7587575B2 (en) * | 2006-10-17 | 2009-09-08 | International Business Machines Corporation | Communicating with a memory registration enabled adapter using cached address translations |
US7617377B2 (en) * | 2006-10-17 | 2009-11-10 | International Business Machines Corporation | Splitting endpoint address translation cache management responsibilities between a device driver and device driver services |
US7506084B2 (en) * | 2006-10-17 | 2009-03-17 | International Business Machines Corporation | Method for communicating with an I/O adapter using cached address translations |
US7590817B2 (en) * | 2006-10-17 | 2009-09-15 | International Business Machines Corporation | Communicating with an I/O device using a queue data structure and pre-translated addresses |
US8868397B2 (en) * | 2006-11-20 | 2014-10-21 | Sonics, Inc. | Transaction co-validation across abstraction layers |
US9178713B1 (en) * | 2006-11-28 | 2015-11-03 | Marvell International Ltd. | Optical line termination in a passive optical network |
JP4881140B2 (ja) * | 2006-12-07 | 2012-02-22 | キヤノン株式会社 | データ転送装置、データ転送制御方法、およびデータ転送制御プログラム |
KR100827287B1 (ko) | 2006-12-29 | 2008-05-07 | 주식회사 태진인포텍 | 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법 |
US20080162836A1 (en) * | 2006-12-29 | 2008-07-03 | Wojciechowski Roy D | Staggered interleaved memory access |
KR101029074B1 (ko) * | 2007-01-10 | 2011-04-18 | 삼성전자주식회사 | 호스트 컨트롤러에서의 디스크립터 추적 장치 및 그 추적방법 |
US7836143B2 (en) * | 2007-04-25 | 2010-11-16 | International Business Machines Corporation | Message communications of particular message types between compute nodes using DMA shadow buffers |
US8325633B2 (en) * | 2007-04-26 | 2012-12-04 | International Business Machines Corporation | Remote direct memory access |
US20080281999A1 (en) * | 2007-05-07 | 2008-11-13 | Mediatek Inc. | Electronic system with direct memory access and method thereof |
US7827024B2 (en) * | 2007-05-09 | 2010-11-02 | International Business Machines Corporation | Low latency, high bandwidth data communications between compute nodes in a parallel computer |
US7966618B2 (en) * | 2007-05-29 | 2011-06-21 | International Business Machines Corporation | Controlling data transfers from an origin compute node to a target compute node |
US8037213B2 (en) * | 2007-05-30 | 2011-10-11 | International Business Machines Corporation | Replenishing data descriptors in a DMA injection FIFO buffer |
US7921428B2 (en) * | 2007-06-18 | 2011-04-05 | International Business Machines Corporation | Multi-registration of software library resources |
US9292436B2 (en) * | 2007-06-25 | 2016-03-22 | Sonics, Inc. | Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary |
US8108648B2 (en) * | 2007-06-25 | 2012-01-31 | Sonics, Inc. | Various methods and apparatus for address tiling |
US8438320B2 (en) * | 2007-06-25 | 2013-05-07 | Sonics, Inc. | Various methods and apparatus for address tiling and channel interleaving throughout the integrated system |
US8458282B2 (en) | 2007-06-26 | 2013-06-04 | International Business Machines Corporation | Extended write combining using a write continuation hint flag |
US8010875B2 (en) | 2007-06-26 | 2011-08-30 | International Business Machines Corporation | Error correcting code with chip kill capability and power saving enhancement |
US8140925B2 (en) | 2007-06-26 | 2012-03-20 | International Business Machines Corporation | Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan |
US8103832B2 (en) * | 2007-06-26 | 2012-01-24 | International Business Machines Corporation | Method and apparatus of prefetching streams of varying prefetch depth |
US7793038B2 (en) | 2007-06-26 | 2010-09-07 | International Business Machines Corporation | System and method for programmable bank selection for banked memory subsystems |
US7827391B2 (en) | 2007-06-26 | 2010-11-02 | International Business Machines Corporation | Method and apparatus for single-stepping coherence events in a multiprocessor system under software control |
US8032892B2 (en) * | 2007-06-26 | 2011-10-04 | International Business Machines Corporation | Message passing with a limited number of DMA byte counters |
US8756350B2 (en) | 2007-06-26 | 2014-06-17 | International Business Machines Corporation | Method and apparatus for efficiently tracking queue entries relative to a timestamp |
US8108738B2 (en) | 2007-06-26 | 2012-01-31 | International Business Machines Corporation | Data eye monitor method and apparatus |
US7877551B2 (en) * | 2007-06-26 | 2011-01-25 | International Business Machines Corporation | Programmable partitioning for high-performance coherence domains in a multiprocessor system |
US7802025B2 (en) | 2007-06-26 | 2010-09-21 | International Business Machines Corporation | DMA engine for repeating communication patterns |
US7886084B2 (en) * | 2007-06-26 | 2011-02-08 | International Business Machines Corporation | Optimized collectives using a DMA on a parallel computer |
US7694035B2 (en) * | 2007-06-26 | 2010-04-06 | International Business Machines Corporation | DMA shared byte counters in a parallel computer |
US7984448B2 (en) * | 2007-06-26 | 2011-07-19 | International Business Machines Corporation | Mechanism to support generic collective communication across a variety of programming models |
US8230433B2 (en) | 2007-06-26 | 2012-07-24 | International Business Machines Corporation | Shared performance monitor in a multiprocessor system |
US8509255B2 (en) | 2007-06-26 | 2013-08-13 | International Business Machines Corporation | Hardware packet pacing using a DMA in a parallel computer |
US8468416B2 (en) | 2007-06-26 | 2013-06-18 | International Business Machines Corporation | Combined group ECC protection and subgroup parity protection |
US7624310B2 (en) | 2007-07-11 | 2009-11-24 | Micron Technology, Inc. | System and method for initializing a memory system, and memory device and processor-based system using same |
US8478834B2 (en) | 2007-07-12 | 2013-07-02 | International Business Machines Corporation | Low latency, high bandwidth data communications between compute nodes in a parallel computer |
US8018951B2 (en) * | 2007-07-12 | 2011-09-13 | International Business Machines Corporation | Pacing a data transfer operation between compute nodes on a parallel computer |
US20090031001A1 (en) * | 2007-07-27 | 2009-01-29 | Archer Charles J | Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer |
US8959172B2 (en) * | 2007-07-27 | 2015-02-17 | International Business Machines Corporation | Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer |
US7805546B2 (en) * | 2007-07-27 | 2010-09-28 | International Business Machines Corporation | Chaining direct memory access data transfer operations for compute nodes in a parallel computer |
US8261025B2 (en) | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8526422B2 (en) | 2007-11-27 | 2013-09-03 | International Business Machines Corporation | Network on chip with partitions |
US7917703B2 (en) * | 2007-12-13 | 2011-03-29 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US8473667B2 (en) | 2008-01-11 | 2013-06-25 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidation messages |
US8010750B2 (en) * | 2008-01-17 | 2011-08-30 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US8018466B2 (en) * | 2008-02-12 | 2011-09-13 | International Business Machines Corporation | Graphics rendering on a network on chip |
US8490110B2 (en) | 2008-02-15 | 2013-07-16 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
US7913010B2 (en) * | 2008-02-15 | 2011-03-22 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
KR101471114B1 (ko) * | 2008-03-06 | 2014-12-10 | 삼성전자주식회사 | 프로세서 및 컴퓨팅 시스템 |
KR20090099734A (ko) | 2008-03-18 | 2009-09-23 | 삼성전자주식회사 | 스트림 기반의 인터페이스 시스템 및 그 제어 방법 |
US9009350B2 (en) * | 2008-04-01 | 2015-04-14 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US9225545B2 (en) * | 2008-04-01 | 2015-12-29 | International Business Machines Corporation | Determining a path for network traffic between nodes in a parallel computer |
US20090245257A1 (en) * | 2008-04-01 | 2009-10-01 | International Business Machines Corporation | Network On Chip |
US20090271172A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Emulating A Computer Run Time Environment |
US8078850B2 (en) * | 2008-04-24 | 2011-12-13 | International Business Machines Corporation | Branch prediction technique using instruction for resetting result table pointer |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US8392664B2 (en) | 2008-05-09 | 2013-03-05 | International Business Machines Corporation | Network on chip |
US7958340B2 (en) | 2008-05-09 | 2011-06-07 | International Business Machines Corporation | Monitoring software pipeline performance on a network on chip |
US8494833B2 (en) | 2008-05-09 | 2013-07-23 | International Business Machines Corporation | Emulating a computer run time environment |
US7861065B2 (en) * | 2008-05-09 | 2010-12-28 | International Business Machines Corporation | Preferential dispatching of computer program instructions |
US8020168B2 (en) | 2008-05-09 | 2011-09-13 | International Business Machines Corporation | Dynamic virtual software pipelining on a network on chip |
US7991978B2 (en) * | 2008-05-09 | 2011-08-02 | International Business Machines Corporation | Network on chip with low latency, high bandwidth application messaging interconnects that abstract hardware inter-thread data communications into an architected state of a processor |
US8214845B2 (en) | 2008-05-09 | 2012-07-03 | International Business Machines Corporation | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data |
US8040799B2 (en) * | 2008-05-15 | 2011-10-18 | International Business Machines Corporation | Network on chip with minimum guaranteed bandwidth for virtual communications channels |
US8230179B2 (en) | 2008-05-15 | 2012-07-24 | International Business Machines Corporation | Administering non-cacheable memory load instructions |
US20090307408A1 (en) * | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US8438578B2 (en) | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US8195884B2 (en) | 2008-09-18 | 2012-06-05 | International Business Machines Corporation | Network on chip with caching restrictions for pages of computer memory |
TWI385672B (zh) * | 2008-11-05 | 2013-02-11 | Lite On It Corp | 儲存裝置之適應性多通道控制器及其方法 |
US8547971B1 (en) | 2009-01-07 | 2013-10-01 | Marvell Israel (M.I.S.L) Ltd. | Multi-stage switching system |
JP5287301B2 (ja) * | 2009-01-30 | 2013-09-11 | 富士通株式会社 | ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法 |
JP2010211322A (ja) * | 2009-03-06 | 2010-09-24 | Renesas Electronics Corp | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 |
US8358651B1 (en) * | 2009-09-21 | 2013-01-22 | Marvell International Ltd. | Switch device having a plurality of processing cores |
US8544026B2 (en) | 2010-02-09 | 2013-09-24 | International Business Machines Corporation | Processing data communications messages with input/output control blocks |
US8972995B2 (en) | 2010-08-06 | 2015-03-03 | Sonics, Inc. | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US8949453B2 (en) | 2010-11-30 | 2015-02-03 | International Business Machines Corporation | Data communications in a parallel active messaging interface of a parallel computer |
US8949328B2 (en) | 2011-07-13 | 2015-02-03 | International Business Machines Corporation | Performing collective operations in a distributed processing system |
US20130166795A1 (en) * | 2011-12-23 | 2013-06-27 | Stec, Inc. | System and method for streaming data in flash memory applications |
CN103176931B (zh) * | 2011-12-26 | 2016-03-09 | 安凯(广州)微电子技术有限公司 | 一种改进的dma通信方法及装置 |
US8930962B2 (en) | 2012-02-22 | 2015-01-06 | International Business Machines Corporation | Processing unexpected messages at a compute node of a parallel computer |
US9026568B2 (en) | 2012-03-30 | 2015-05-05 | Altera Corporation | Data compression for direct memory access transfers |
US9514069B1 (en) | 2012-05-24 | 2016-12-06 | Schwegman, Lundberg & Woessner, P.A. | Enhanced computer processor and memory management architecture |
JP6122135B2 (ja) * | 2012-11-21 | 2017-04-26 | コーヒレント・ロジックス・インコーポレーテッド | 分散型プロセッサを有する処理システム |
WO2014142939A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | Providing snoop filtering associated with a data buffer |
US9471521B2 (en) | 2013-05-15 | 2016-10-18 | Stmicroelectronics S.R.L. | Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US10203958B2 (en) | 2013-07-15 | 2019-02-12 | Texas Instruments Incorporated | Streaming engine with stream metadata saving for context switching |
US9053093B1 (en) * | 2013-08-23 | 2015-06-09 | Altera Corporation | Modular direct memory access system |
US9886736B2 (en) | 2014-01-20 | 2018-02-06 | Nvidia Corporation | Selectively killing trapped multi-process service clients sharing the same hardware context |
KR102181441B1 (ko) | 2014-04-15 | 2020-11-24 | 에스케이하이닉스 주식회사 | 복수의 기능 블록들을 포함하는 반도체 장치 |
KR101510862B1 (ko) | 2014-04-17 | 2015-04-09 | 주식회사 텔레칩스 | 시스템온칩에서 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템 |
US10210114B2 (en) * | 2014-08-01 | 2019-02-19 | Universiti Teknologi Malaysia | Interrupt-driven I/O arbiter for a microcomputer system |
US10114770B2 (en) * | 2014-08-01 | 2018-10-30 | Universiti Teknologi Malaysia | Homogenous device access method which removes physical device drivers in a computer operating system |
US20160092118A1 (en) * | 2014-09-26 | 2016-03-31 | Intel Corporation | Memory write management in a computer system |
US9684615B1 (en) | 2015-01-08 | 2017-06-20 | Altera Corporation | Apparatus and methods for multiple-channel direct memory access |
DE102015104776B4 (de) * | 2015-03-27 | 2023-08-31 | Infineon Technologies Ag | Verfahren und Vorrichtung zum Verarbeiten von Radarsignalen |
US10642771B2 (en) | 2015-05-22 | 2020-05-05 | Hewlett-Packard Development Company, L.P. | Data channel allocation |
CN105116797A (zh) * | 2015-07-31 | 2015-12-02 | 上海卫星工程研究所 | 多通道高速数据采编soc芯片 |
US9697320B2 (en) * | 2015-09-24 | 2017-07-04 | Qualcomm Incorporated | Rectilinear macros having non-uniform channel spacing |
US10078606B2 (en) * | 2015-11-30 | 2018-09-18 | Knuedge, Inc. | DMA engine for transferring data in a network-on-a-chip processor |
KR102466160B1 (ko) * | 2016-01-08 | 2022-11-14 | 삼성전자주식회사 | 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치 |
US10904150B1 (en) | 2016-02-02 | 2021-01-26 | Marvell Israel (M.I.S.L) Ltd. | Distributed dynamic load balancing in network systems |
US10678545B2 (en) | 2016-07-07 | 2020-06-09 | Texas Instruments Incorporated | Data processing apparatus having streaming engine with read and read/advance operand coding |
US20180011709A1 (en) | 2016-07-08 | 2018-01-11 | Texas Instruments Incorporated | Stream reference register with double vector and dual single vector operating modes |
US9965278B1 (en) | 2016-12-20 | 2018-05-08 | Texas Instruments Incorporated | Streaming engine with compressed encoding for loop circular buffer sizes |
CN109240954A (zh) * | 2017-07-10 | 2019-01-18 | 恩智浦美国有限公司 | 具有触发序列发生器的dma控制器 |
US10642535B2 (en) | 2018-01-23 | 2020-05-05 | International Business Machines Corporation | Register access in a distributed memory buffer system |
CN110083571B (zh) * | 2019-03-27 | 2023-02-03 | 中国计量大学上虞高等研究院有限公司 | 一种分布式实时存储装置及其数据传输方法 |
CN111400214B (zh) * | 2020-02-27 | 2021-06-18 | 深圳震有科技股份有限公司 | 一种双核共用网口的实现方法、智能终端及存储介质 |
TWI766497B (zh) * | 2020-12-23 | 2022-06-01 | 鴻海精密工業股份有限公司 | 資料存取方法及系統 |
CN114661651A (zh) | 2020-12-23 | 2022-06-24 | 富泰华工业(深圳)有限公司 | 数据存取方法以及系统 |
KR20230016816A (ko) * | 2021-07-27 | 2023-02-03 | 주식회사 세미파이브 | 시스템 온 칩에서 기능 블록 간의 데이터 송수신을 위한 인터페이스 방법 및 이를 이용하는 시스템 온 칩 |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099236A (en) | 1977-05-20 | 1978-07-04 | Intel Corporation | Slave microprocessor for operation with a master microprocessor and a direct memory access controller |
JPS57154681A (en) * | 1981-03-19 | 1982-09-24 | Canon Electronics Inc | Magnetic disk device |
US4507732A (en) | 1981-10-05 | 1985-03-26 | Burroughs Corporation | I/O subsystem using slow devices |
US4490785A (en) | 1982-05-07 | 1984-12-25 | Digital Equipment Corporation | Dual path bus structure for computer interconnection |
US4701841A (en) | 1984-07-25 | 1987-10-20 | Digital Equipment Corporation | System for altering data transmission modes |
CA1221068A (en) * | 1986-01-14 | 1987-04-28 | Richard Leduc | Fire extinguishing system |
GB2195038A (en) | 1986-07-05 | 1988-03-23 | Narayanaswamy D Jayaram | A multi-microprocessor system with confederate processors |
US4853846A (en) | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
US4779190A (en) | 1986-12-03 | 1988-10-18 | Ncr Corporation | Communication bus interface |
US4782439A (en) | 1987-02-17 | 1988-11-01 | Intel Corporation | Direct memory access system for microcontroller |
US4982321A (en) | 1987-10-23 | 1991-01-01 | Honeywell Inc. | Dual bus system |
US5175826A (en) | 1988-05-26 | 1992-12-29 | Ibm Corporation | Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385 |
JP2910303B2 (ja) | 1990-06-04 | 1999-06-23 | 株式会社日立製作所 | 情報処理装置 |
US5109517A (en) | 1990-10-09 | 1992-04-28 | Ast Research, Inc. | System for selectively controlling slots in an IBM-AT/NEC 9801 dual-compatible computer |
EP0518488A1 (en) | 1991-06-12 | 1992-12-16 | Advanced Micro Devices, Inc. | Bus interface and processing system |
US5369748A (en) | 1991-08-23 | 1994-11-29 | Nexgen Microsystems | Bus arbitration in a dual-bus architecture where one bus has relatively high latency |
US5333274A (en) * | 1991-10-15 | 1994-07-26 | International Business Machines Corp. | Error detection and recovery in a DMA controller |
US5749092A (en) | 1993-03-18 | 1998-05-05 | Intel Corporation | Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor |
US5794070A (en) | 1993-06-30 | 1998-08-11 | Intel Corporation | Method and apparatus for fast DMA transfer on an industry standard architecture (ISA) bus |
US5751270A (en) | 1993-08-06 | 1998-05-12 | Intel Corporation | Method and apparatus for displaying an image using direct memory access |
US5619729A (en) | 1993-12-02 | 1997-04-08 | Intel Corporation | Power management of DMA slaves with DMA traps |
US5708849A (en) | 1994-01-26 | 1998-01-13 | Intel Corporation | Implementing scatter/gather operations in a direct memory access device on a personal computer |
JP3308386B2 (ja) * | 1994-04-25 | 2002-07-29 | ファナック株式会社 | 制御システム |
US5828903A (en) | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
US5644784A (en) | 1995-03-03 | 1997-07-01 | Intel Corporation | Linear list based DMA control structure |
DE69614291T2 (de) | 1995-03-17 | 2001-12-06 | Lsi Logic Corp | (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung |
US5664197A (en) | 1995-04-21 | 1997-09-02 | Intel Corporation | Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller |
US5729762A (en) | 1995-04-21 | 1998-03-17 | Intel Corporation | Input output controller having interface logic coupled to DMA controller and plurality of address lines for carrying control information to DMA agent |
US5890012A (en) | 1995-04-25 | 1999-03-30 | Intel Corporation | System for programming peripheral with address and direction information and sending the information through data bus or control line when DMA controller asserts data knowledge line |
US5805842A (en) | 1995-09-26 | 1998-09-08 | Intel Corporation | Apparatus, system and method for supporting DMA transfers on a multiplexed bus |
US5774680A (en) | 1995-12-11 | 1998-06-30 | Compaq Computer Corporation | Interfacing direct memory access devices to a non-ISA bus |
US5859990A (en) | 1995-12-29 | 1999-01-12 | Intel Corporation | System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices |
US5761532A (en) | 1995-12-29 | 1998-06-02 | Intel Corporation | Direct memory access controller with interface configured to generate wait states |
US5870628A (en) | 1996-06-11 | 1999-02-09 | International Business Machines Corporation | Adaptor for receiving and processing asynchronous transfer mode cells within a computer network |
US5802269A (en) | 1996-06-28 | 1998-09-01 | Intel Corporation | Method and apparatus for power management of distributed direct memory access (DDMA) devices |
US5954809A (en) * | 1996-07-19 | 1999-09-21 | Compaq Computer Corporation | Circuit for handling distributed arbitration in a computer system having multiple arbiters |
US5898694A (en) * | 1996-12-30 | 1999-04-27 | Cabletron Systems, Inc. | Method of round robin bus arbitration |
US6449259B1 (en) * | 1997-03-31 | 2002-09-10 | Lucent Technologies Inc. | Communication controller |
US5944800A (en) | 1997-09-12 | 1999-08-31 | Infineon Technologies Corporation | Direct memory access unit having a definable plurality of transfer channels |
US6157970A (en) | 1997-09-24 | 2000-12-05 | Intel Corporation | Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number |
US6138503A (en) * | 1997-10-16 | 2000-10-31 | Raymax Technology, Inc. | Scanning probe microscope system including removable probe sensor assembly |
US6081851A (en) | 1997-12-15 | 2000-06-27 | Intel Corporation | Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus |
US6151654A (en) | 1997-12-24 | 2000-11-21 | Intel Corporation | Method and apparatus for encoded DMA acknowledges |
US6108743A (en) | 1998-02-10 | 2000-08-22 | Intel Corporation | Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority |
US6192428B1 (en) | 1998-02-13 | 2001-02-20 | Intel Corporation | Method/apparatus for dynamically changing FIFO draining priority through asynchronous or isochronous DMA engines in response to packet type and predetermined high watermark being reached |
US6122679A (en) | 1998-03-13 | 2000-09-19 | Compaq Computer Corporation | Master DMA controller with re-map engine for only spawning programming cycles to slave DMA controllers which do not match current programming cycle |
US6182165B1 (en) | 1998-06-01 | 2001-01-30 | Advanced Micro Devices, Inc. | Staggered polling of buffer descriptors in a buffer descriptor ring direct memory access system |
US6041400A (en) * | 1998-10-26 | 2000-03-21 | Sony Corporation | Distributed extensible processing architecture for digital signal processing applications |
US6260081B1 (en) | 1998-11-24 | 2001-07-10 | Advanced Micro Devices, Inc. | Direct memory access engine for supporting multiple virtual direct memory access channels |
US6317804B1 (en) * | 1998-11-30 | 2001-11-13 | Philips Semiconductors Inc. | Concurrent serial interconnect for integrating functional blocks in an integrated circuit device |
US6430628B1 (en) | 1998-12-08 | 2002-08-06 | Intel Corporation | Method and apparatus for reducing direct memory access transfers using smart coalescing |
US6275242B1 (en) | 1998-12-31 | 2001-08-14 | Intel Corporation | Method and apparatus for terminating direct memory access transfers from system memory to a video device |
US6385671B1 (en) | 1999-03-29 | 2002-05-07 | Intel Corporation | Method/apparatus for flushing DMA transmit packet in FIFO when self-ID code generated by counter after bus reset is different than FIFO message self-ID field |
US6782465B1 (en) | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US6418489B1 (en) * | 1999-10-25 | 2002-07-09 | Motorola, Inc. | Direct memory access controller and method therefor |
US6829254B1 (en) | 1999-12-28 | 2004-12-07 | Nokia Internet Communications, Inc. | Method and apparatus for providing efficient application-level switching for multiplexed internet protocol media streams |
US6622183B1 (en) * | 2000-03-21 | 2003-09-16 | Lsi Logic Corporation | Data transmission buffer having frame counter feedback for re-transmitting aborted data frames |
US6874039B2 (en) | 2000-09-08 | 2005-03-29 | Intel Corporation | Method and apparatus for distributed direct memory access for systems on chip |
US6622193B1 (en) | 2000-11-16 | 2003-09-16 | Sun Microsystems, Inc. | Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system |
ATE498161T1 (de) * | 2002-12-06 | 2011-02-15 | Telecom Italia Spa | Dma-verfahren, entsprechende system und rechnerprogrammprodukt |
-
2001
- 2001-09-07 US US09/949,461 patent/US6874039B2/en not_active Expired - Lifetime
-
2002
- 2002-08-23 TW TW091119140A patent/TWI268426B/zh not_active IP Right Cessation
- 2002-08-30 WO PCT/US2002/027642 patent/WO2003023625A1/en active IP Right Grant
- 2002-08-30 AT AT02757489T patent/ATE352814T1/de not_active IP Right Cessation
- 2002-08-30 DE DE60217884T patent/DE60217884T2/de not_active Expired - Lifetime
- 2002-08-30 EP EP02757489A patent/EP1430405B1/en not_active Expired - Lifetime
- 2002-08-30 KR KR10-2004-7003435A patent/KR100801763B1/ko not_active IP Right Cessation
- 2002-08-30 CN CN028174941A patent/CN1552028B/zh not_active Expired - Fee Related
-
2005
- 2005-01-14 US US11/036,827 patent/US7155541B2/en not_active Expired - Fee Related
- 2005-01-14 US US11/036,828 patent/US7464197B2/en not_active Expired - Fee Related
-
2008
- 2008-11-11 US US12/268,604 patent/US7970961B2/en not_active Expired - Fee Related
-
2011
- 2011-06-28 US US13/170,493 patent/US8386665B2/en not_active Expired - Lifetime
-
2013
- 2013-01-30 US US13/754,505 patent/US8719465B2/en not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227388B (zh) * | 2006-10-27 | 2012-07-04 | 惠普开发有限公司 | 操作计算机系统的方法和具有网络接口重发的计算机系统 |
CN100547572C (zh) * | 2007-10-22 | 2009-10-07 | 威盛电子股份有限公司 | 动态建立直接内存访问通路的方法及系统 |
CN101482853B (zh) * | 2008-01-10 | 2010-10-27 | 松翰科技股份有限公司 | 直接存储器访问系统及方法 |
CN103034598A (zh) * | 2011-09-28 | 2013-04-10 | 安凯(广州)微电子技术有限公司 | 保存dma下行数据时写使能信号的处理方法及系统 |
CN102541780A (zh) * | 2011-12-15 | 2012-07-04 | 苏州国芯科技有限公司 | 一种多数据流通道dma系统 |
WO2015070539A1 (zh) * | 2013-11-14 | 2015-05-21 | 浪潮电子信息产业股份有限公司 | 一种基于dma的数据压缩芯片结构及其实现方法 |
CN105991475B (zh) * | 2015-02-27 | 2020-01-07 | 中兴通讯股份有限公司 | 报文接收方法、装置及中央处理器 |
WO2016134634A1 (zh) * | 2015-02-27 | 2016-09-01 | 中兴通讯股份有限公司 | 报文接收方法、装置、设备、计算机存储介质及中央处理器 |
CN105991475A (zh) * | 2015-02-27 | 2016-10-05 | 中兴通讯股份有限公司 | 报文接收方法、装置及中央处理器 |
CN107273312A (zh) * | 2016-04-04 | 2017-10-20 | 罗伯特·博世有限公司 | 具有工作存储器的计算单元用的存储器直接访问控制装置 |
CN107273312B (zh) * | 2016-04-04 | 2023-04-07 | 罗伯特·博世有限公司 | 具有工作存储器的计算单元用的存储器直接访问控制装置 |
CN107544928A (zh) * | 2016-06-29 | 2018-01-05 | 罗伯特·博世有限公司 | 直接存储器访问控制装置和对此的运行方法 |
CN107544928B (zh) * | 2016-06-29 | 2024-03-29 | 罗伯特·博世有限公司 | 直接存储器访问控制装置和对此的运行方法 |
CN110399321A (zh) * | 2018-04-25 | 2019-11-01 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
US11645010B2 (en) | 2018-04-25 | 2023-05-09 | SK Hynix Inc. | Solid state drive (SSD) memory system improving the speed of a read operation using parallel DMA data transfers |
CN111752878A (zh) * | 2019-03-29 | 2020-10-09 | 意法半导体(格勒诺布尔2)公司 | 直接存储器访问 |
Also Published As
Publication number | Publication date |
---|---|
ATE352814T1 (de) | 2007-02-15 |
DE60217884T2 (de) | 2007-11-08 |
US20110320672A1 (en) | 2011-12-29 |
CN1552028B (zh) | 2011-11-30 |
US20090070513A1 (en) | 2009-03-12 |
US7970961B2 (en) | 2011-06-28 |
KR20040040458A (ko) | 2004-05-12 |
KR100801763B1 (ko) | 2008-02-05 |
US20130138877A1 (en) | 2013-05-30 |
DE60217884D1 (de) | 2007-03-15 |
US20050216613A1 (en) | 2005-09-29 |
EP1430405B1 (en) | 2007-01-24 |
US20020038393A1 (en) | 2002-03-28 |
US8719465B2 (en) | 2014-05-06 |
TWI268426B (en) | 2006-12-11 |
WO2003023625A1 (en) | 2003-03-20 |
US6874039B2 (en) | 2005-03-29 |
US7464197B2 (en) | 2008-12-09 |
US7155541B2 (en) | 2006-12-26 |
US20050125572A1 (en) | 2005-06-09 |
US8386665B2 (en) | 2013-02-26 |
EP1430405A1 (en) | 2004-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1552028B (zh) | 片上系统和其分布式直接存储器访问的方法和控制系统 | |
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
US6233643B1 (en) | Apparatus including a host processor and communications adapters interconnected with a bus | |
US5434976A (en) | Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers | |
US7308526B2 (en) | Memory controller module having independent memory controllers for different memory types | |
CN111651377B (zh) | 一种用于片内报文处理的弹性共享缓存器 | |
US8051222B2 (en) | Concatenating secure digital input output (SDIO) interface | |
JPH08265270A (ja) | 転送路割り当てシステム | |
CN101040271A (zh) | 用于优化dma信道选择的方法和系统 | |
CN1934557A (zh) | 可伸缩总线结构 | |
US6856619B1 (en) | Computer network controller | |
WO2005046146A1 (en) | Method, system, and program for constructing a packet | |
WO2006098763A2 (en) | Intelligent memory interface | |
CN112181887A (zh) | 数据传输方法及装置 | |
CN116737624B (zh) | 一种高性能数据存取装置 | |
CN111581136B (zh) | 一种dma控制器及其实现方法 | |
US20040151175A1 (en) | Transparent data format within host device supporting differing transaction types | |
CN102170401A (zh) | 一种数据的处理方法和设备 | |
CN101044727A (zh) | 使用直插式信用扩充器与主机总线适配器的方法及系统 | |
CA2224392C (en) | Multi-channel encoder/decoder | |
CN1250287A (zh) | 多路复用异步传递方式信元的装置与方法 | |
CN117931391A (zh) | 一种基于rmda的无损高效的数据处理方法及网络接口卡 |
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: 20111130 Termination date: 20190830 |