CN110990308A - 直接存储器存取 - Google Patents
直接存储器存取 Download PDFInfo
- Publication number
- CN110990308A CN110990308A CN201910654666.1A CN201910654666A CN110990308A CN 110990308 A CN110990308 A CN 110990308A CN 201910654666 A CN201910654666 A CN 201910654666A CN 110990308 A CN110990308 A CN 110990308A
- Authority
- CN
- China
- Prior art keywords
- transfer
- record
- data
- delivery
- register
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 120
- 238000012546 transfer Methods 0.000 claims abstract description 234
- 238000012384 transportation and delivery Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 33
- 230000004048 modification Effects 0.000 claims description 17
- 238000012986 modification Methods 0.000 claims description 17
- 239000012634 fragment Substances 0.000 claims 2
- 230000000977 initiatory effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 description 17
- 238000012360 testing method Methods 0.000 description 12
- 230000009467 reduction Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000001143 conditioned effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- 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
- 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
- G06F13/287—Multiplexed DMA
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/28—DMA
- G06F2213/2802—DMA using DMA transfer descriptors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及直接存储器存取。一种存储器包含记录的链接列表,记录的链接列表表示经由直接存储器存取控制电路的多个数据传递。每个记录表示多个数据传递中的相关联的数据传递的参数。每个记录的参数包括相关联的数据传递的传递开始条件和相关联的数据传递的传递结束事件。
Description
相关申请的交叉引用
本申请要求2018年11月02日提交的法国专利申请号1871349和2018年07月19日提交的法国专利申请号1856705的优先权,该申请通过引用并入本文。2019年07月15日提交的美国专利申请号16/511,362也要求法国专利申请号1856705的优先权,并且通过引用并入本文。
技术领域
本公开一般涉及电子系统,并且在特定实施例中,涉及利用通过直接存储器存取(DMA)的数据传递的电子系统。
背景技术
直接存储器存取是在电子系统中使得能够在外围设备和存储器之间、两个外围设备之间或两个存储器之间传递数据而无需中央处理单元(CPU)干预(除了开始和结束传递)的方法。
直接存储器存取通常由直接存储器存取控制电路实施。为了执行数据传递,电路从存储器中读取记录的链接列表中的记录(LLI-“链接列表项”)以获得传递的参数。所读取的参数临时存储在电路的寄存器组件或寄存器组中。然后,电路根据所存储的参数执行传递。
发明内容
本公开一般涉及电子系统。特定实施例涉及电子系统,在电子系统中任务的执行(例如,通过直接存储器存取(DMA)的数据传递)由存储在存储器中的记录的链接列表参数化。
一些实施例可以克服已知电子系统的至少某些缺点。例如,实施例克服了电子电路的至少某些缺点,其中由寄存器使任务参数化,根据存储在存储器中的记录的链接列表对该寄存器进行编程。作为另一示例,实施例克服了电子系统的至少某些缺点,其中由寄存器参数化的任务是由直接存储器存取进行的数据传递。
根据第一方面,一个实施例提供了一种包含记录的至少一个链接列表的存储器,每个记录包含确定下一个记录的字段的数目的第一字段。
根据一个实施例,记录的每个字段表示要在寄存器组的寄存器中编程的内容。
根据一个实施例,第一字段确定内容应当被编程在哪些寄存器中。
根据一个实施例,第一字段包括多个位,多个位中的每个位标识寄存器,多个位的值确定要编程的记录的字段。
根据一个实施例,每个记录表示任务的执行的参数。
根据一个实施例,该任务是由直接存储器存取控制电路进行的数据传递。
根据一个实施例,对于表示数据传递的每个记录,传递的执行的参数包括传递开始条件和传递结束事件。
根据一个实施例,对于每个记录,传递的执行的参数还包括应当检测该条件的至少一个时间以及应当生成该事件的至少一个时间的指示。
根据一个实施例,存储器包含记录的第一链接列表和记录的第二链接列表,第一列表的记录的开始条件对应于检测到第二列表的记录的事件。
根据一个实施例,存储器是SRAM类型的。
根据第一方面,一个实施例提供了一种方法,包括基于被包含在诸如之前定义的存储器中的记录的链接列表来连续更新寄存器组。
根据一个实施例,每个记录确定连续更新中的一个。
根据一个实施例,方法包括:读取根据当前记录的第一字段编程的寄存器;对于每个寄存器,从中推断出下一个记录是否包括在对寄存器组的下一次编程期间应当根据其对寄存器进行编程的字段;并且在对寄存器组的下一次编程期间,基于下一个记录的每个字段,对寄存器组中的对应的寄存器进行编程。
根据第一方面,一个实施例提供了一种电子系统,包括诸如之前定义的存储器,以及设置有寄存器组的电路,该电路被配置成实施之前定义的方法。
根据一个实施例,该电路是直接存储器存取控制器。
根据第二方面,一个实施例提供了一种包含至少一个记录的链接列表的存储器,每个记录表示由直接存储器存取控制电路进行的数据传递的参数,参数包括传递开始条件和传递结束事件。
根据一个实施例,对于每个记录,参数包括传递的客户端的指示。
根据一个实施例,传递开始条件至少部分地由传递的客户端确定。
根据一个实施例,对于每个记录,参数包括传递开始信号的标识,条件至少部分地由传递开始信号确定。
根据一个实施例,对于每个记录,参数包括应当检测条件的时间或不应当检测条件的时间中的至少一个时间的指示。
根据一个实施例,对于每个记录,参数包括应当生成事件的时间或不应当生成事件的时间中的至少一个时间的指示,事件优选地是传递结束信号的修改。
根据一个实施例,每个记录包含确定下一个记录的字段的数目的第一字段,记录的每个字段表示要被编程在直接存储器存取控制电路的寄存器组的寄存器中的内容。
根据一个实施例,第一字段确定内容应当被编程在哪些寄存器中,第一字段优选地包括多个位,多个位中的每个位标识寄存器,多个位的值确定要被编程的记录的字段。
根据一个实施例,对于每个记录,参数包括传递是数据的片段、多个数据、数据块或多个数据块的传递的指示。
根据一个实施例,至少一个时间的指示选自:在数据的片段的每次传递之前、仅在数据的第一片段的传递之前、在每个数据块的传递之前,和仅在第一数据块的传递之前。
根据一个实施例,对于每个记录,参数还包括应当检测该条件的至少一个时间的指示以及应当生成该事件的至少一个时间的指示。
根据一个实施例,存储器包含记录的第一链接列表和记录的第二链接列表,第一列表的记录的开始条件对应于检测到第二列表的记录的结束事件。
根据一个实施例,每个记录包含确定下一个记录的字段的数目的第一字段。
根据一个实施例,记录的每个字段表示要在寄存器组的寄存器中编程的内容。
根据一个实施例,第一字段确定应当在哪些寄存器中对内容进行编程。
根据一个实施例,第一字段包括多个位,多个位中的每个位标识寄存器,多个位的值确定要编程的记录的字段。
根据一个实施例,列表中的第一记录包含与寄存器一样多的字段。
根据一个实施例,存储器是SRAM类型的。
根据第二方面,一个实施例提供了一种由直接存储器存取进行数据传递的方法,其中数据传递在直接存储器存取控制电路的通道上执行,该通道上的每个第一数据传递由诸如之前定义的存储器的列表的对应的记录参数化。
根据一个实施例,列表中的每个记录对应于与通道相关联的寄存器组的更新。
根据一个实施例,寄存器组的当前内容对通道上的对应传递进行参数化。
根据一个实施例,对于每个记录,仅在检测到传递开始条件时才开始对应的传递。
根据第二方面,另一实施例提供了一种通过直接存储器存取进行数据传递的方法,其中在直接存储器存取控制电路的第一通道上执行第一传递,在电路的第二通道上执行第二传递,每个第一传递由诸如之前定义的存储器的第一列表的对应记录参数化。
根据一个实施例,第一列表中的每个记录对应于与第一通道相关联的第一寄存器组的更新,并且第二列表的每个记录对应于与第二通道相关联的第二寄存器组的更新。
根据一个实施例,每个寄存器组的当前内容使具有与其相关联的寄存器组的通道上的对应传递参数化。
根据一个实施例,对于每个记录,只有在检测到记录的开始条件时才开始对应的传递。
根据第二方面,一个实施例提供了一种电子系统,包括诸如之前定义的存储器,以及设置有多个通道的直接存储器存取控制电路,多个通道中的每个通道与寄存器组相关联,该电路被配置成实施诸如之前定义的多个方法中的一个。
在结合附图的特定实施例的以下非限制性描述中将详细讨论前述内容以及其他特征和优点。
附图说明
作为示例,图1以框的形式非常示意性地示出了将要描述的实施例适用的类型的电子电路1的一个实施例;
图2是以框的形式图示通过直接存储器存取进行数据传递的方法的一个实施例的流程图;
图3以框的形式示意性地示出了直接存储器存取控制电路的寄存器组的一个实施例;
图4示意性地示出了包含用于对图3的寄存器进行编程的记录的链接列表的一个实施例的存储器;
图5是更详细地图示图2的方法的步骤的一个实施例的流程图;
图6以框的形式示意性地图示了直接存储器存取控制电路的寄存器组的另一实施例;
图7是图示通过直接存储器存取进行数据传递的方法的一个实施例的时序图;
图8以框的形式示意性地示出了根据图6的实施例的直接存储器存取控制电路的寄存器组的示例;
图9以框的形式示意性地示出了图8的寄存器组的备选实施例;以及
图10以框的形式示意性地示出了根据图6的实施例的直接存储器存取控制电路的寄存器组的另一示例。
具体实施方式
在不同附图中,相同的元件用相同的附图标记指定。特别地,不同实施例共有的结构和/或功能元件可以用相同的附图标记指定,并且可以具有相同的结构、尺寸和材料性质。
为清楚起见,仅示出了并且详细描述了对理解所描述的实施例有用的那些步骤和元件。特别地,没有详细描述当前用于通过直接存储器存取进行数据传递的各种参数,所描述的实施例与这些通常的参数兼容。另外,没有详细描述其中设置有直接存储器存取控制器的各种电子系统,所描述的实施例与大多数这些通常的电子系统兼容。
贯穿本公开,术语“连接”用于指定除了导体之外没有中间元件的电路元件之间的直接电连接,而术语“耦合”用于指定可以是直接的,或者可以是经由一个或多个中间元件的电路元件之间的电连接。
在以下描述中,当提及限定绝对位置(诸如术语“前”、“后”、“上”、“下”、“左”、“右”等)或相对位置(诸如术语“上方”、“下方”、“之上”、“之下”等)的术语,或限定方向的术语(诸如“水平”、“垂直”等)时,除非另有说明,否则指的是图的定向。
本文使用术语“约”、“基本上”、“接近”和“大约”来指定所讨论的值的正负10%,优选正负5%的公差。
作为示例,图1以框的形式非常示意性地示出了将要描述的实施例适用的类型的电子电路1的实施例。
电子系统1包括中央处理单元11(CPU),例如状态机、微处理器、可编程逻辑电路等。系统中包括一个或多个存储器(其中至少一个为例如SRAM类型的RAM 12(MEM))。通信的至少一个输入/输出接口13(I/O)(例如,串行总线类型)可以与系统1的外部通信。系统还包括直接存储器存取控制电路14(DMA)、系统1内部的不同元件之间的一个或多个数据、地址和/或控制总线(这里以单个总线15的形式示出)。
另外,系统1可以根据应用集成由框16(FCT)表示的其他功能,例如,专用于图像处理的处理器、其他接口、其他存储器等。
系统1被配置成执行各种应用,诸如图像处理、视频编码和/或解码、对源自传感器的数据的处理等。这种应用需要经由总线15在系统1内部的元件之间进行数据传递。为了使系统1的操作流畅并减少中央处理单元11的负载,在电路14的控制下通过直接存储器存取来执行这种数据传递。在该实施例中,电路14包括多个数据传递通道。电路14的每个通道使得能够在系统1的两个元件(电路和/或存储器)之间执行数据传递。每个通道与寄存器组相关联,寄存器组针对在通道上进行的每个数据传递存储传递的参数。
当应用必须由系统1执行时,中央处理单元11配置电路14,使得电路14为该应用保留这些通道中的一个。然后,经由为该应用保留的通道执行应用的所有数据传递。在所描述的实施例中,要传递的数据的源元素和/或目的地元素可以在应用的执行期间改变。
图2是以框的形式图示通过直接存储器存取进行数据传递的方法的实施例的流程图。更具体地,图2图示了对于给定应用,根据表示应用的数据传递的记录的链接列表,连续更新与图1的电路14的通道相关联的寄存器组的方法。
在初始步骤200(分配通道),将通道指派给应用,这是通过利用该应用的第一数据传递的参数对与该通道相关联的寄存器组进行编程。该步骤相当于向电路14指示应当使用记录的哪个链接列表来参数化将在该通道上发生的传递。列表中的每个记录确定下一个记录的存储器地址。每个记录还确定对应的数据传递的参数,例如,传递涉及数据或数据块的指示、存储要传递的数据或数据块的源的地址范围的起始地址、应当复制所传递的数据或数据块的目的地的地址范围的起始地址、要传递的数据或数据块的数目、数据的大小、每块数据的数目、要传递的两个连续的数据之间或两个连续的块之间的地址偏移等。因此,每个记录可以对应于源和目的地之间的数据的片段、多个数据、数据块或多个块的传递。
根据一个实施例,在步骤200,通过从存储器12的由中央处理单元11提供的存储器地址处读取列表中的第一记录并且通过基于该记录对寄存器组编程来对寄存器组进行编程。
根据另一实施例,在步骤200处,例如,在系统1的初始化时或由中央处理单元11对寄存器组直接编程,而不从存储器12读取记录。具体地,然后,列表中的第一记录的记录被编程在寄存器组中。
在寄存器组被编程,以将通道分配给应用之后,中央处理单元11向电路14指示可以开始执行应用的数据传递。
在下一个步骤202处(执行传递),电路14在为应用保留的通道上执行由通道的寄存器组的内容参数化的数据传递,应当理解这种传递可能涉及多个数据或多个数据块。
然后执行测试203(重复?)以根据寄存器组的内容确定是否应当重复在前一步骤202处执行的数据传递,并且将其参数存储在寄存器组中。
如果必须重复传递(框203的输出为是),则方法继续步骤202。因此可以理解,由于寄存器组的内容未被修改,因此在循环中执行传递。
如果不必重复该最后一次传递(框203的输出为否),则该方法继续进行测试204(下一个LLI?)。该测试基于寄存器组的当前内容确定列表中是否存在下一个记录,换句话说,是否仍然存在要为该应用执行的至少一个传递。
如果列表中没有下一个记录(框204的输出为否),则测试204之后是步骤206(结束),其中通道被释放并且因此可以被分配给新的应用。
如果存在下一个记录(框204的输出为是),则测试204之后是步骤208(加载下一个LLI),其中通过电路14从存储器12读取下一个记录,并且利用应用的下一次数据传递的参数更新寄存器组。然后,该方法前进到步骤202。
应当注意,可以修改图2的方法的顺序和/或步骤的数目。特别地,可以同时执行测试203和测试204。
作为示例,在本公开的其余部分中考虑其中应当在通道上发生的传递不是在数据块水平执行,而是仅在数据水平执行的情况。还考虑当传递对应于多个数据的传递时,数据一个接一个地存储在源地址范围中,并且一个接一个地复制到目的地地址范围中。
图3以框的形式示意性地示出了与电路14的数据传递通道相关联的寄存器组的实施例。
在该示例中,寄存器组包括五个寄存器R1、R2、R3、R4和R5,使得能够临时存储数据传递的参数。寄存器R1、R2、R3、R4和R5在此分别旨在存储要传递的数据的源的起始地址S@、要传递的数据的目的地的地址范围的起始地址D@、要传递的数据的数目NB、要传递的数据的大小BL,以及存储器12中的下一个记录的地址NLLI@。在本公开的其余部分中,链接列表寄存器或LLR寄存器指定用于存储与记录的链接列表相关的信息的寄存器,具体地是地址NLLI@。优选地,寄存器LLR是寄存器组中的最后一个寄存器,在该示例中是寄存器R5。
在该实施例中,多个寄存器中的一个(优选地,LLR寄存器)还旨在存储与列表中的下一个记录相关的信息。这种信息确定列表中下一个记录的字段的数目。记录的每个字段例如表示在寄存器组的下一次更新时要在对应的寄存器中编程的内容。优选地,在该更新期间,将每个字段直接复制到对应的寄存器中。与列表中的下一个记录相关的信息还确定向其分配下一个记录的每个字段的寄存器。这种信息由LLR寄存器R5的位(例如,五个位U1、U2、U3、U4和U5)存储。在该实施例中,位U1、U2、U3、U4和U5分别分配给寄存器R1、R2、R3、R4和R5,每个位U1、U2、U3、U4,U5的值确定下一个记录是否包括表示要在寄存器(分别为R1、R2、R3、R4、R5)中编程的内容的字段。例如,如果位U1处于第一二进制值,例如‘1’,则下一个记录包括表示要在寄存器R1中编程的内容的字段,并且如果该位处于第二二进制值,例如‘0’,则下一个记录不包括这种字段。
作为示例,关于图2描述的测试203包括验证所有位U1至U5是否处于‘0’以及地址@NLLI是否不为空。如果这为真,则这意味着不必更新寄存器组,并且应当重复最后执行的传递。
仍然作为示例,关于图2描述的测试204包括验证地址@NLLI是否为空。如果这为真,则这意味着没有下一个记录,并且已经执行了应用的所有传递。
应当注意,作为示例,可以以与上文描述的形式不同的形式表示与下一个记录的字段的数目和向其分配这些字段中的每个字段的寄存器相关的信息、应当重复传递的指示和/或列表不包含下一个记录的指示。
图4示意性地示出了包含用于对图3的寄存器进行编程的记录的链接列表的实施例的存储器(例如,图1的存储器)。
存储器12被分成固定大小(例如,4个字节)的多个存储器字41,每个存储器字与存储器地址43相关联。在该示例中,存储器12包含由三个记录LLI-1、LLI-2和LLI-3形成的记录的链接列表。在存储器12中(这里从该记录的第一字段的存储器地址开始)一个接一个地记录相同记录的字段。在该示例中,每个字段占用一个存储器字41。作为变型,每个字段可能需要不止一个存储器字以用于其存储器存储,或者存储器字可以包含不止一个字段。优选地,每个记录的字段以与寄存器组的对应的寄存器相同的顺序彼此跟随。在该示例中,记录的存储器地址对应于记录该记录的第一字段的地址。
在该示例中,考虑以下情况:在图2的步骤200处,基于列表中的第一记录LLI-1对寄存器组进行编程。如图4中所示,第一记录LLI-1然后包括与寄存器一样多的字段,在本示例中为五个,使得可以利用记录的字段来对每个寄存器进行编程。更具体地,记录LLI-1包括连续字段C1、C2、C3、C4和C5,表示要在寄存器(分别为R1、R2、R3、R4和R5)中编程的内容。在该示例中,记录LLI-1的字段C1、C2、C3和C4分别表示地址S1@、地址D1@、数目NB-1和大小BL-1。记录的字段C5表示存储器12中下一个记录LLI-2的地址@k2,以及与该下一个记录LLI-2相关的信息。在该示例中,与下一个记录相关的信息的形式为值为‘1’、‘0’、‘1’、‘0’和‘1’的五个位,其分别对应于记录R5的位U1、U2、U3、U4和U5。在该示例中,记录LLI-1的第一字段C1记录在地址存储器字@k1中,接下来的字段C2、C3、C4和C5记录在相应的地址@k1+4、@k1+8、@k1+12和@k1+16的接下来的存储器字中,这里的每个存储器字占用4个字节。
第二记录LLI-2包括连续字段C1、C3和C5,分别表示要在寄存器R1、R3和R5中编程的内容。字段C1和C2分别表示地址S2@和数目NB-2,字段C5表示下一个记录LLI-3的地址@k3和值为‘0’、‘1’、‘1’、‘1’和‘1’的五个位,其分别对应于寄存器R5的位U1、U2、U3、U4和U5。在该示例中,记录LLI-2的第一字段C1记录在地址存储器字@k2中,接下来的字段C3和C5记录在相应的地址@k2+4和@k2+8的接下来的存储器字中。
第三记录LLI-3包括连续字段C2、C3、C4和C5,分别表示要在寄存器R2、R3、R4和R5中编程的内容。字段C2、C3和C4分别表示地址D3@、数目NB-3和大小BL-3。在所示的示例中,字段C5表示零地址@NULL和值为“0”的五个位U1到U5,这指示记录LLI-3是列表中的最后一个并且对应于该记录的传递不必重复。在该示例中,记录LLI-3的第一字段C2记录在地址存储器字@k3中,接下来的字段C3、C4和C5记录在相应的地址@k3+4、@k3+8和@k3+12的接下来的存储器字中。
在上述列表中,存储在存储器中的至少某些记录包含比基于这些记录更新的寄存器组的寄存器的数目小的数目的字段。因此,相对于其中链接列表的每个记录具有与寄存器组的寄存器一样多的字段的存储器的存储容量,存储器12的存储容量可以减小。存储器12的存储容量的减小导致其表面积和静态功耗的减小。
图5以流程图的形式图示了上文描述的图2的方法的步骤208,即,基于存储在存储器中的记录的链接列表中的记录来更新寄存器组。
在初始化步骤500处(i=1),在本示例中,将循环变量i(i为整数)初始化为1。
在下一个测试步骤502处(Ui=1?),电路14测试LLR寄存器R5的位Ui的当前值,以确定下一个记录是否包含表示要在寄存器Ri中编程的内容的字段Ci。
在步骤502期间,如果LLR寄存器R5的位Ui的当前值是‘1’(框502的输出为是),则这意味着下一个记录包括表示要在寄存器Ri中编程的内容的字段Ci。然后,该测试之后是利用该内容对寄存器Ri进行编程的步骤504(Ri<=Ci)。步骤504之后是测试508(i=5?),在测试508期间,验证寄存器R5的每个位Ui的当前值是否已被测试。如果是(框508的输出为是),则基于下一个记录的寄存器组的更新完成(框结束,510)。否则(框508的输出为否),则方法在步骤512(i=i+1)处继续,其中变量i递增,之后方法循环回到步骤502。
在步骤502期间,如果LLR寄存器R5的位Ui的当前值是‘0’(框502的输出为否),则这意味着下一个记录不包括表示要在寄存器Ri中编程的内容的字段Ci。方法然后直接进行到步骤508并且寄存器Ri的内容保持不变。
当从图4中描述的类型的链接列表的记录更新与通道相关联的寄存器组时,上述方法使得能够仅更新寄存器组中的某些寄存器,优选地只更新在两次连续传递之间具有修改的内容的寄存器。相对于将更新组中的所有寄存器的情况,这导致对存储器12的存取次数的减少。对存储器12的存取次数的这种减少导致存储器12的动态功耗的降低,更一般地,图1的系统1的动态功耗降低。这里的优点在于在为应用保留的通道上的两个连续数据传递通常具有某些相同的参数的事实。
应当注意,可以修改上述方法的步骤的顺序和/或数目。例如,可以首先读取所有位Ui,之后根据读取的位的值执行寄存器的所有更新。
另外,关于图1至图5描述的实施例适用于除直接存储器存取控制器之外的其他电路的寄存器组,以将该电路对任务的执行参数化。
在上述实施例中,与直接存储器存取控制电路中的情况一样,一旦将通道分配给应用(步骤200,图2)并且中央处理单元11已经授权电路14执行该应用的传递之后,电路14自动地执行所有这些传递,而没有中央处理单元11的干预。在执行所有传递之后,电路14通知中央处理单元11,中央处理单元11然后可以将该通道分配给另一个应用。因此,在电路14的两个不同的通道上执行的两个应用之间的同步只能由中央处理单元11在两个应用中的一个的执行开始时执行,或者在两个应用中的一个的执行结束时(此时已经读出了与该应用的数据传递相对应的所有记录并且已经执行了相应的传递)执行。
图6以框的形式示意性地示出了电路14的数据传递通道的寄存器组的另一实施例的示例。
这里的图6的寄存器组包括六个寄存器R1、R2、R3、R4、R5和R6,在该示例中,图6的寄存器R1、R2、R3和R4类似于图3的寄存器R1、R2、R3和R4。这里的寄存器R5旨在存储传递开始条件ctrl-in和传递结束事件ctrl-out。寄存器R6形成寄存器组的链接列表寄存器(LLR),并且如图3中一样,旨在存储下一个记录的地址NLLI@以及与该下一个记录相关的信息,特别是记录的字段的数目和向哪个寄存器分配下一个记录的每个字段。这里的这种信息以分别与寄存器R1、R2、R3、R4、R5和R6相关联的六位U1、U2、U3、U4、U5和U6的形式存储。
与关于图1至图5描述的内容类似地来执行基于记录的链接列表中的记录的对图6的寄存器组的更新,列表中的记录对应地调整。特别地,每个记录可以包括表示要在寄存器R6中编程的内容的附加字段C6(未图示)。另外,对于每个记录,记录的字段C6然后可以包括对应于寄存器R6的六个位U1到U6的六个位。
在备选实施例中,条件ctrl-in和事件ctrl-out存储在寄存器R1至R4和R6中的一个中,并且条件ctrl-in可以存储在存储事件ctrl-out之外的另一个寄存器中。例如,当一个或多个寄存器R1至R4和R6包含未使用的位,从而使能存储信息ctrl-in和ctrl-out时,实施这种变化。这使得能够抑制寄存器R5、LLR寄存器R6在此时被赋予数字R5。
图7是图示通过直接存储器存取进行数据传递的实施例的流程图。更具体地,图7更详细地图示了图2的方法的步骤202。
在由电路14实施的步骤801(ctrl-in?)中,要执行的数据传递的所有参数都存储在寄存器组的寄存器中。步骤801包括检测传递开始条件ctrl-in(在本示例中存储在寄存器R5中)。只要没有检测到条件ctrl-in(框801的输出为否),就重复步骤801。当检测到条件ctrl-in时(框801的输出为是),方法继续进行步骤802(进行传递),在此期间执行由寄存器组的内容参数化的数据传递,然后,一旦传递完成,在步骤804(生成ctrl-out)期间,电路14生成事件ctrl-out。
在该实施例中,当在为第一应用保留的第一通道上的第一数据传递结束生成事件ctrl-out,并且在为第二应用保留的第二通道上开始第二传递的条件ctrl-in对应于事件ctrl-out的检测时,只能在生成第一传递的事件ctrl-out的之后启动第二传递。因此,可以在没有中央处理单元11的干预,并且正在执行这些应用的情况下,第一和第二传递并且因此第一和第二应用可以直接在电路14的水平相互同步。更一般地,为系统1执行的多个应用的至少某些数据传递提供条件ctrl-in和事件ctrl-out使得能够将这些应用同步在一起,而不使用中央处理单元,在执行该些应用期间,中央处理单元可以被设置为待机,甚至关闭。
在备选实施例中,提供指示应当在传递多个数据期间的什么时间检测条件ctrl-in的附加的参数,时间例如是在传递数据的第一片段之前或传递数据的每个片段之前。类似地,提供指示应当在传递多个数据时的什么时间生成事件ctrl-out的附加参数,时间例如是在传递数据的最后片段之后或传递数据的每个片段之后。然后调整列表中的寄存器和记录以集成这种附加参数。因此也对应地调整了图7的方法。例如,在传递多个数据期间,如果在数据的片段的传递之前检测到条件ctrl-in并且在数据的片段的传递之后生成事件ctrl-out,则对每段传递的数据实施步骤801、802和804,此时步骤802对应于数据的片段的传递。
提供一个或多个附加参数以指示应当检测条件ctrl-in的传递的时间和应当生成事件ctrl-out的时间使得能够控制粒度,利用该粒度执行由系统1并行执行的应用之间的同步。
应当注意,在通道上的传递的条件ctrl-in可以对应于对除了在另一个通道上的传递期间生成的事件ctrl-out之外的事件的检测,例如,对应于在系统1中生成的事件的检测,例如来源于系统1的块13(I/O)。
作为示例,每个条件ctrl-in可以对应于电平改变的检测,例如,对应于该条件的信号从高电平到低电平或者反过来。例如,每个事件ctrl-out包括改变对应于该事件的信号的电平。
应当注意,可以在没有位U1至U6的情况下实施图6和图7的实施例。在这种情况下,由于没有寄存器的条件更新,链接列表中的每个记录包含与寄存器一样多的字段。
在备选实施例中,结合图3至图7描述的寄存器和记录可以集成一个或多个附加参数以管理数据块的传递、和/或源和/或目的地地址范围、在要传递的两个连续的数据或两个数据块之间地址移位。
另外,在寄存器和记录能够管理数据块的传递的情况下,可以认为,在传递多个数据块期间,在传递每个块之前检测条件ctrl-in和/或在传递每个块之后生成事件ctrl-out。然后将对应地调整指示应当检测条件ctrl-in的时间和/或应当生成事件ctrl-out的时间的参数,以及结合图7描述的方法。
图8以框的形式示意性地示出了根据图6的实施例的直接存储器存取控制电路的寄存器组的示例。在图8中,仅示出了寄存器R5,寄存器R1至R4和R6例如与关于图6描述的那些相同。
在该实施例中,关于图6描述的条件ctrl-in包括参数ctrl-in-req,其表示由与该传递的通道相关联的寄存器组中的寄存器的内容参数化的传递的客户端的标识。换句话说,参数ctrl-in-req表示需要数据的传递的系统1的元件(例如,功能块16(FTC))的标识。因此,对于对应于记录的链接列表的记录的每个传递,传递的客户端动态地与应当在其上发生传递的通道相关联。
更具体地,传递的客户端的标识相当于标识哪个是将导致传递的请求信号。因此,在已经通过根据记录的链接列表的对应记录,对与传递通道相关联的寄存器组进行编程参数化了数据传递时,传递只能在传递的客户端传送请求之后开始,或者换句话说,传递的开始以请求为条件。
在该实施例中,电路14因此从在电路14的通道上发生的数据传递的客户端直接接收存储器存取请求。然后,在电路14中直接处理请求,电路14基于包含在与传递通道相关联的寄存器组中的信息,能够知道每个请求应当传送到哪个通道,或者换句话说,对于每个请求,知道哪个是以请求的接收为条件而在其上开始计划的传递的通道。
作为比较,在不包括参数ctrl-in-req的实施例中,为了使电路14的通道知道在通道上的传递的客户端,数据传递的每个潜在客户端(即系统1的能够请求数据传递的每个元件)例如在系统1的初始化时与电路14的至少一个给定通道静态地关联,并且多个客户端可以与相同的通道关联。系统1然后在DMA电路14外部包括请求路由电路,该请求路由电路被配置成接收所有数据传递请求,并且根据静态客户端/通道分配,将每个接收到的请求传送到具有已经传送与其关联的请求的客户端的每个通道。
包括参数ctrl-in-req的实施例相对于不包括参数ctrl-in-req的那些实施例具有优点。
特别地,参数ctrl-in-req的提供使得能够避免使用附加电路来路由数据传递请求,由此相对于设置这种路由电路的情况,系统1消耗更少的功率并占用减少的表面积。
另外,在包括参数ctrl-in-req的实施例中,应用可以包括与由应用保留的通道动态关联的多个客户端。然而,在没有参数ctrl-in-req的实施例中,由于静态客户端/通道分配,应用只能够包括单个客户端。这种差异以及由此产生的优点将在下文中进一步详细说明,参考以下执行的示例,其中考虑:
第一客户端利用存储器12执行第一数据传递,每个第一传递对应于将来自第一客户端的数据的片段写到存储器中;
第二客户端利用存储器12执行第二数据传递,每个第二传递对应于由第二客户端读出存储在存储器中的数据的片段;以及
在第一传递期间每次将数据的片段写到存储器中之后,在第二传递期间从存储器读取该数据的片段,使得第二传递只能在第一对应的传递之后发生。
在包括参数ctrl-in-req的实施例中,上述执行的示例的实施可以借助于包括第一和第二传递(并且因此包括第一和第二客户端)的单个应用来执行。换句话说,可以使用相同的记录的链接列表来在相同的通道上配置第一和第二传递。更具体地,通过将该第一传递的参数(具体地,参数ctrl-in-req)编程在通道的寄存器组的寄存器中来配置第一传递。然后,第一客户端的请求的传送引起在通道上实施第一传递,之后,通过将第二传递的参数(具体地,参数ctrl-in-req)编程在通道的寄存器组的寄存器中而将第二传递配置在该相同的通道上。然后,第二客户端的请求的传送引起在通道上实施第二传递。通过对通道重复以下步骤来继续执行:利用第一传递的参数对寄存器进行编程,接收来自第一客户端的请求,在通道上实施第一传递,利用第二传递的参数对寄存器进行编程,接收来自第二客户端的请求,以及在通道上实施第二传递。
然而,在不包括参数ctrl-in-req的实施例中,执行的该示例的实施方式借助于对应于第一传递(即对应于第一客户端)的第一应用和对应于第二传递(因此对应于第二客户端)的第二应用来实现。换句话说,记录的第一链接列表用于配置第一通道上的第一传递,第一通道具有与其静态关联的第一客户端,记录的第二链接列表用于配置在第二通道上的第二传递,第二通道具有与其静态关联的第二客户端。结果,在第一通道上的第一传递期间,第二通道由第二应用保留但未被使用。
从以上示例可以理解,参数ctrl-in-req的提供使得能够动态地将客户端与电路14的通道相关联,这导致在不使用通道的情况下保留通道的时间减少和/或必要通道的数目的减少。特别地,电路14的通道的数目的减少导致电路14(并且更一般地,系统1)的功耗和表面的减少。
图9以框的形式示意性地示出了图8的寄存器组的备选实施例。
在该变型中,除了参数ctrl-in-req之外,条件ctrl-in包括参数ctrl-in-req-mode,其至少指示对于由寄存器组的内容参数化的传递,应当接收来自由参数ctrl-in-req标识的请求时传递的时间。换句话说,当由寄存器组的内容参数化的传递对应于多个类似的传递(例如,多个数据传递或数据块传递)时,参数ctrl-in-req-mode指示类似的传递中的哪些以接收来自传递的客户端的请求为条件。例如,对于包括传递多个数据或多个数据块的传递,参数ctrl-in-req-mode指示来自客户端的请求应当在每次数据传递之前、在每次数据块传递之前,或者仅在数据的第一片段或第一数据块的传递之前被接收。在该最后一种情况下,可以在传递数据的第一片段或第一数据块之后,执行数据传递或数据块传递,而不需要由传递的客户端传送请求。
多个类似的传递,例如,具有相同客户端的数据的片段或数据块的多次传递被视为示例,并且进一步考虑类似的传递中的每个传递仅应当在电路14接收到来自客户端的请求之后才开始,或者换句话说,传递中的每个都以客户端传送请求为条件。参数ctrl-in-req-mode的提供使得能够以记录的链接列表的单个记录的形式收集这种类似的传递,然后执行与传递通道相关联的寄存器组的单个更新以参数化所有类似的传递。在没有参数ctrl-in-req-mode的情况下,类似的传递中的每个传递应当对应于列表中的不同记录。
因此,关于图9描述的备选实施例能够减少列表中的记录数量,这可以使得能够减小存储器12的大小。这种变化还使得能够减少对存储器12的存取的次数和对与电路14的通道关联的寄存器组的更新的次数。
图10以框的形式示意性地示出了根据图6的实施例的直接存储器存取控制电路的寄存器组的另一示例。在图10中,仅示出了寄存器R5,寄存器R1至R4和R6例如与关于图6描述的那些相同。
与关于图8描述的实施例相比,使传递开始条件ctrl-in除了包括参数ctrl-in-req之外还包括参数ctrl-in-trig、参数ctrl-in-trig-mode和可选的参数ctrl-in-trig-pol,参数ctrl-in-trig表示对以传递开始作为条件的信号的标识,参数ctrl-in-trig-mode表示信号的修改应当被检测的时间,并且参数ctrl-in-trig-pol表示修改的类型,即作为传递开始的条件的信号的上升沿、下降沿或电平改变。换句话说,当由寄存器组的内容参数化的传递对应于多个类似的传递(例如,多个数据传递或数据块传递)时,参数ctrl-in-trig-mode指示类似的传递中的哪个以检测到由参数ctrl-in-trig标识的信号的修改为条件,该修改的类型(或极性)在此由参数ctrl-in trig-pol指示。例如,对于包括传递多个数据或多个数据块的传递,参数ctrl-in-trig-mode指示应当在每次数据传递之前、在每个数据块传递之前,或仅在数据的第一片段或第一数据块的传递之前检测由参数ctrl-in-trig标识的信号的修改。另外,参数ctrl-in-trig-mode还可以指示,对于由与传递通道相关联的寄存器组的内容参数化的当前传递,该传递不以检测到由参数ctrl-in-trig标识的信号的修改为条件。
在该实施例中,由与传递通道相关联的寄存器组的内容参数化的数据传递只能在客户端接收到由电路14进行传递的请求之后开始,并且很可能在由电路14检测到由参数ctrl-in-trig标识的信号的修改之后开始,在该示例中,修改的类型由参数ctrl-in-trig-pol指示。另外,根据参数ctrl-in-trig-mode和/或ctrl-in-req-mode,当传递对应于多个类似的传递时,类似的传递中的每个传递的开始可以以或者不以接收到源自传递的客户端的请求和/或检测到由参数ctrl-in-trig标识的信号的修改为条件。
在该实施例中,进一步考虑,对于每个通道,传递结束事件ctrl-out是与通道相关联的传递结束信号的修改。这里,事件ctrl-out包括参数ctrl-out-mode和可选的参数ctrl-out-pol,参数ctrl-out-mode表示应当修改通道的传递结束信号的时间,并且参数ctrl-out-pol表示信号的修改极性,即,传递结束事件是与所考虑的通道相关联的传递结束信号的上升沿、下降沿,还是电平的改变。
作为示例,参数ctrl-out-mode指示应当生成条件ctrl-out的时间,即,应当修改与通道相关联的传递结束信号的时间仅在传递数据的最后的片段或最后的数据块之后、在传递数据的每个片段或每个数据块之后发生,或者在传递时不发生。
作为示例,由参数ctrl-in-trig标识的信号可以是通道的传递结束信号或系统1内部的任何其他信号,例如,由系统1的元件提供的用于例如系统1的计数器的事件信号。
可以组合关于图6至图10描述的实施例和备选实施例的示例,并且本领域技术人员将想到其他变型。
特别地,关于图9描述的备选实施例适用于关于图10描述的实施例。
在其他备选实施例中,以与可以提供参数ctrl-in-trig-pol以指示由作为数据传递的条件的参数ctrl-in-trig标识的信号的修改的类型相同的方式,可以提供参数ctrl-in-req-pol以指示请求信号的修改的哪种类型形成来自与请求信号相关联的客户端的请求。另外,参数ctrl-in-trig-pol和ctrl-in-req-pol中的每个不仅可以表示修改的给定类型(上升沿、下降沿或电平改变),而且还可以表示在对应的信号或请求上检测的高电平或低电平。应当注意,在没有参数ctrl-in-trig-pol和/或参数ctrl-in-req-pol的情况下,极性可以被默认定义。
在其他备选实施例中,虽然未详细描述,但参数ctrl-in-trig、ctrl-in-trig-mode、ctrl-in-trig-pol、ctrl-in-req、ctrl-in-req-mode、ctrl-in-req-pol、ctrl-out-mode和ctrl-out-pol可以被省略。特别地,参数ctrl-in-trig、ctrl-in-trig-mode、ctrl-in-trig-pol、ctrl-out-mode和/或ctrl-out-pol可以与参数ctrl-in-req、ctrl-in-req-mode、ctrl-in-req-pol独立地提供,反之亦然。
虽然参数ctrl-in-trig、ctrl-in-trig-mode、ctrl-in-trig-pol、ctrl-in-req、ctrl-in-req-mode、ctrl-in-req-pol、ctrl-out-mode和/或ctrl-out-pol优选地存储在相同的寄存器中,或者换句话说,源自记录的链接列表的记录的相同字段,但是参数可以被存储在不同的寄存器中。
可以在没有位U1至U6的情况下实施图8、图9和图10的实施例。在这种情况下,由于没有寄存器的条件性的更新,链表中的每个记录包含与寄存器一样多的字段。
从以上关于图7至图10进行的描述可以理解,条件ctrl-in实际上至少部分地由参数ctrl-in-req确定和/或至少部分地由参数ctrl-in-trig确定。另外,对条件ctrl-in进行检测的时间或多个时间(特别是在对应于多个类似传递的传递期间)至少部分地由参数ctr-in-req-mode确定和/或至少部分地由参数ctrl-in-trig-mode确定。
基于上文给出的功能指示,图7的方法和关于图1至图5描述的记录可以适用于关于图8、图9和图10描述的实施例和变型。
更一般地,已经描述了特定实施例,本领域技术人员可以在不示出任何创造性步骤的情况下,组合这些各种实施例和变型的各种元件。另外,本领域技术人员将想到各种改变和修改。特别地,寄存器的数目、寄存器组存储的参数的数目和/或每个寄存器存储的参数的数目可以变化。
另外,可以提供其他参数。例如,在通过直接存储器存取进行数据传递的情况下,参数可以指示对应于记录的传递的数据和/或数据块是应当逐个传递还是以突发方式传递。
这些改变、修改和改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围内。因此,前面的描述仅是示例性的,而不是限制性的。本发明仅受以下权利要求及其等同限定。
Claims (24)
1.一种电子系统,包括:
直接存储器存取控制电路;和
存储器,包含记录的链接列表,所述记录的链接列表表示经由所述直接存储器存取控制电路的多个数据传递,每个记录表示所述多个数据传递中的相关联的数据传递的参数,每个记录的参数包括所述相关联的数据传递的传递开始条件和所述相关联的数据传递的传递结束事件。
2.根据权利要求1所述的系统,其中对于每个记录,所述参数包括所述相关联的数据传递的客户端的指示。
3.根据权利要求2所述的系统,其中所述传递开始条件至少部分地由所述相关联的数据传递的所述客户端确定。
4.根据权利要求1所述的系统,其中对于每个记录,所述参数包括传递开始信号的标识,所述传递开始条件至少部分地由所述传递开始信号确定。
5.根据权利要求1所述的系统,其中对于每个记录,所述参数包括应当检测所述传递开始条件的时间或不应当检测所述传递开始条件的时间的指示。
6.根据权利要求1所述的系统,其中对于每个记录,所述参数包括应当生成所述传递结束事件的时间或不应当生成所述传递结束事件的时间的指示。
7.根据权利要求6所述的系统,其中所述传递结束事件是传递结束信号的修改。
8.根据权利要求1所述的系统,其中每个记录包含第一字段,所述第一字段具有用于确定所述记录的链接列表中的下一个记录的字段的数目的信息,记录的每个字段表示要被编程在所述直接存储器存取控制电路的寄存器组的寄存器中的内容。
9.根据权利要求8所述的系统,其中所述第一字段包括用于确定所述内容应当被编程在哪些寄存器中的信息。
10.根据权利要求9所述的系统,其中所述第一字段包括多个位,其中所述多个位中的每个位标识一个寄存器,并且所述多个位的值确定要被编程的所述记录的所述字段。
11.根据权利要求1所述的系统,其中对于每个记录,所述参数包括所述数据传递是数据的片段、多个数据、数据块或多个数据块的传递的指示。
12.根据权利要求11所述的系统,其中对于每个记录,所述参数包括应当检测所述传递开始条件的时间或不应当检测所述传递开始条件的时间的指示,应当检测所述传递开始条件的所述时间是在以下中选择的时间:在每次数据传递之前、仅在数据的第一片段的所述传递之前、在每个数据块的所述传递之前,或者仅在第一数据块的所述传递之前。
13.一种存储器,包含记录的链接列表,所述记录的链接列表表示经由直接存储器存取控制电路的多个数据传递,每个记录表示所述多个数据传递中的相关联的数据传递的参数,每个记录的所述参数包括所述相关联的数据传递的传递开始条件和所述相关联的数据传递的传递结束事件。
14.根据权利要求13所述的存储器,其中对于每个记录,所述参数包括所述相关联的数据传递的客户端的指示。
15.根据权利要求14所述的存储器,其中所述传递开始条件至少部分地由所述相关联的数据传递的所述客户端确定。
16.根据权利要求13所述的存储器,其中对于每个记录,所述参数包括传递开始信号的标识,所述传递开始条件至少部分地由所述传递开始信号确定。
17.根据权利要求13所述的存储器,其中对于每个记录,所述参数包括应当检测所述传递开始条件的时间或不应当检测所述传递开始条件的时间的指示。
18.根据权利要求13所述的存储器,其中对于每个记录,所述参数包括应当生成所述传递结束事件的时间或不应当生成所述传递结束事件的时间的指示。
19.根据权利要求13所述的存储器,其中每个记录包含第一字段,所述第一字段具有用于确定下一个记录的字段的数目的信息,记录的每个字段表示要被编程在所述直接存储器存取控制电路的寄存器组的寄存器中的内容。
20.根据权利要求13所述的存储器,其中对于每个记录,所述参数包括所述传递是数据的片段、多个数据、数据块或多个数据块的传递的指示。
21.一种操作包括第一部件和第二部件的系统的方法,所述方法包括通过直接存储器存取执行从所述第一部件到所述第二部件的数据传递,其中数据传递在直接存储器存取电路的通道上执行,所述通道上的所述数据传递由存储在存储器中的记录的链接列表中的对应的记录参数化,所述记录的链接列表表示经由直接存储器存取控制电路的多个数据传递,每个记录表示所述多个数据传递中的相关联的数据传递的参数,每个记录的所述参数包括所述相关联的数据传递的传递开始条件和所述相关联的数据传递的传递结束事件。
22.根据权利要求21所述的方法,其中所述链表中的每个记录对应于与所述通道相关联的寄存器组的更新。
23.根据权利要求22所述的方法,其中所述寄存器组的当前内容使所述通道上的对应传递参数化。
24.根据权利要求23所述的方法,其中对于每个记录,仅在检测到所述传递开始条件时才开始所述对应传递。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1856705A FR3084179A1 (fr) | 2018-07-19 | 2018-07-19 | Acces direct en memoire |
FR1856705 | 2018-07-19 | ||
FR1871349A FR3084178A1 (fr) | 2018-07-19 | 2018-11-02 | Acces direct en memoire |
FR1871349 | 2018-11-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110990308A true CN110990308A (zh) | 2020-04-10 |
Family
ID=65031473
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910641180.4A Active CN110737617B (zh) | 2018-07-19 | 2019-07-16 | 直接存储器存取 |
CN201910654666.1A Pending CN110990308A (zh) | 2018-07-19 | 2019-07-19 | 直接存储器存取 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910641180.4A Active CN110737617B (zh) | 2018-07-19 | 2019-07-16 | 直接存储器存取 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10997087B2 (zh) |
EP (1) | EP3598314A1 (zh) |
CN (2) | CN110737617B (zh) |
FR (2) | FR3084179A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3598315B1 (fr) | 2018-07-19 | 2022-12-28 | STMicroelectronics (Grenoble 2) SAS | Accès direct en mémoire |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145027A (en) * | 1997-07-09 | 2000-11-07 | Texas Instruments Incorporated | DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements |
US6782365B1 (en) * | 1996-12-20 | 2004-08-24 | Qwest Communications International Inc. | Graphic interface system and product for editing encoded audio data |
US6782465B1 (en) * | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US20060050693A1 (en) * | 2004-09-03 | 2006-03-09 | James Bury | Building data packets for an advanced switching fabric |
CN101506785A (zh) * | 2006-08-24 | 2009-08-12 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN106375249A (zh) * | 2016-09-22 | 2017-02-01 | 盛科网络(苏州)有限公司 | 交换芯片数据架构、其控制方法及控制系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3268591B2 (ja) * | 1995-11-22 | 2002-03-25 | 株式会社日立製作所 | グラフィックスプロセッサでの並列処理方法 |
US20060259657A1 (en) * | 2005-05-10 | 2006-11-16 | Telairity Semiconductor, Inc. | Direct memory access (DMA) method and apparatus and DMA for video processing |
US7904614B1 (en) * | 2006-06-27 | 2011-03-08 | Marvell International Ltd. | Direct memory access controller with multiple transaction functionality |
JP5423483B2 (ja) * | 2010-03-04 | 2014-02-19 | 株式会社リコー | データ転送制御装置 |
US9569384B2 (en) * | 2013-03-14 | 2017-02-14 | Infineon Technologies Ag | Conditional links for direct memory access controllers |
US20150186068A1 (en) * | 2013-12-27 | 2015-07-02 | Sandisk Technologies Inc. | Command queuing using linked list queues |
US10191871B2 (en) * | 2017-06-20 | 2019-01-29 | Infineon Technologies Ag | Safe double buffering using DMA safe linked lists |
-
2018
- 2018-07-19 FR FR1856705A patent/FR3084179A1/fr active Pending
- 2018-11-02 FR FR1871349A patent/FR3084178A1/fr active Pending
-
2019
- 2019-07-15 US US16/511,362 patent/US10997087B2/en active Active
- 2019-07-16 CN CN201910641180.4A patent/CN110737617B/zh active Active
- 2019-07-17 EP EP19186866.0A patent/EP3598314A1/fr not_active Withdrawn
- 2019-07-19 CN CN201910654666.1A patent/CN110990308A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6782365B1 (en) * | 1996-12-20 | 2004-08-24 | Qwest Communications International Inc. | Graphic interface system and product for editing encoded audio data |
US6145027A (en) * | 1997-07-09 | 2000-11-07 | Texas Instruments Incorporated | DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements |
US6782465B1 (en) * | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US20060050693A1 (en) * | 2004-09-03 | 2006-03-09 | James Bury | Building data packets for an advanced switching fabric |
CN101506785A (zh) * | 2006-08-24 | 2009-08-12 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN106375249A (zh) * | 2016-09-22 | 2017-02-01 | 盛科网络(苏州)有限公司 | 交换芯片数据架构、其控制方法及控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110737617A (zh) | 2020-01-31 |
EP3598314A1 (fr) | 2020-01-22 |
US10997087B2 (en) | 2021-05-04 |
FR3084178A1 (fr) | 2020-01-24 |
US20200026662A1 (en) | 2020-01-23 |
CN110737617B (zh) | 2024-10-25 |
FR3084179A1 (fr) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7676626B2 (en) | Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
US6430666B1 (en) | Linked list memory and method therefor | |
US20110153690A1 (en) | Hardware off-load memory garbage collection acceleration | |
US8880811B2 (en) | Data processing device and data processing arrangement for accelerating buffer synchronization | |
CN100541665C (zh) | 可编程并行查找存储器 | |
CN103547995A (zh) | 短指针 | |
CN115357540B (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
CN110990308A (zh) | 直接存储器存取 | |
US8407444B2 (en) | Hardware off-load garbage collection acceleration for languages with finalizers | |
US7373467B2 (en) | Storage device flow control | |
KR100660437B1 (ko) | 동적 필터 할당을 가지는 직렬 통신 장치 | |
CN104050095A (zh) | 缓存控制装置、处理器、信息处理系统和缓存控制方法 | |
US11755516B2 (en) | Direct memory access | |
US11593289B2 (en) | Direct memory access | |
CN106886495B (zh) | 一种嵌入式系统及其控制方法 | |
CN112148203B (zh) | 存储器管理方法、装置、电子设备及存储介质 | |
KR20050076702A (ko) | 멀티프로세서 시스템에서의 데이터 전송 방법과, 그방법을 수행하는 멀티프로세서 및 프로세서 | |
US8949510B2 (en) | Buffer managing method and buffer controller thereof | |
US7634593B2 (en) | System and method for DMA transfer | |
US9747226B2 (en) | Packet processing system, method and device to optimize packet buffer space | |
CN105723317A (zh) | 用于与非易失性存储器通信的方法和系统 | |
CN103514953A (zh) | 对存储在闪存中的数据有地址ram的模拟电可擦存储器 | |
JP7363344B2 (ja) | メモリ制御装置、および制御方法 | |
CN107688543B (zh) | 一种基于eeprom的数据管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |