CN113360423A - 数据储存系统及操作数据储存系统的方法 - Google Patents
数据储存系统及操作数据储存系统的方法 Download PDFInfo
- Publication number
- CN113360423A CN113360423A CN202010139211.9A CN202010139211A CN113360423A CN 113360423 A CN113360423 A CN 113360423A CN 202010139211 A CN202010139211 A CN 202010139211A CN 113360423 A CN113360423 A CN 113360423A
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- value
- data
- memory controller
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000011064 split stream procedure Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 3
- 239000002131 composite material Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Time-Division Multiplex Systems (AREA)
- Debugging And Monitoring (AREA)
- Error Detection And Correction (AREA)
Abstract
数据储存系统包括第一内存、第二内存及内存控制器。内存控制器根据初始地址将第一内存中的第一数据段传输至第二内存,将初始地址加上第一间隔值以产生接续地址,并更新分流值。当分流值未达目标分流值时,内存控制器根据接续地址将第一内存中的第二数据段传输至第二内存,将初始地址与第二间隔值相加以更新接续地址,并更新分流值。当分流值已达目标分流值时,内存控制器将分流值设定为初始值,将初始地址加上位宽偏移值以更新接续地址,及根据更新后的接续地址将第一内存中的第三数据段传输至第二内存。
Description
技术领域
本发明是关于一种数据储存系统,尤其是一种能够执行交错分散(scatter)或交错聚集(gather)传输的数据储存系统。
背景技术
在电子系统中,模拟数字转换器常被用来判断读取传感器所传来的数据,例如电流、电压及温度。在现有技术中,多通道的模拟数字转换器可以耦接到系统中不同的传感器或不同的数据源。由于不同的传感器或数据源可能会周期性的重复采集某一组件或节点的数据,因此多通道的模拟数字转换器必须重复地轮流接收不同传感器或数据源所传来的数据。
在现有技术中,多通道的模拟数字转换器可以依照接收数据的顺序将处理完的数据储存至先进先出(First In First Out,FIFO)的储存结构中。接着再将先进先出储存结构中的数据,依序分别存放至另一内存中不同的对应区域,即交错式(interleaving)的分散(scatter)传输,以便后续分别对不同类型的数据进行处理。
在电子系统未使用直接内存访问(Direct Memory Access,DMA)控制器的情况下,搬运数据的工作必须由中央处理器来完成。然而若是须搬移的数据量较大,就会导致中央处理器被占据的时间过长,使得系统指令周期变慢,造成不便。此外,由于直接内存访问控制器并没有支持交错式的分散传输及交错式的聚集传输,因此即便在使用直接内存访问控制器的情况下,也难以提升数据传输的效率。
发明内容
本发明的一个实施例提供一种操作数据储存系统的方法。数据储存系统包括第一内存、第二内存及内存控制器。
操作数据储存系统的方法包括内存控制器根据初始地址将第一内存中的第一数据段传输至第二内存,内存控制器将初始地址与第一间隔值相加以产生接续地址,内存控制器更新分流值,当该分流值尚未达到目标分流值时,内存控制器根据接续地址将第一内存中的第二数据段传输至第二内存,内存控制器将接续地址与第二间隔值相加以更新接续地址,及内存控制器更新分流值,及当分流值已达到目标分流值时,将分流值设定为初始值,内存控制器将初始地址与位宽偏移值相加以更新接续地址及初始地址,及根据更新后的接续地址将第一内存中的第三数据段传输至第二内存。
本发明的另一个实施例提供一种数据储存系统。数据储存系统多个缓存器、第一内存、第二内存及内存控制器。多个缓存器储存初始地址、接续地址、分流值、目标分流值、位宽偏移值及至少一个间隔值。内存控制器耦接于多个缓存器、第一内存及第二内存。
内存控制器根据初始地址将第一内存中的第一数据段传输至第二内存,将初始地址与第一间隔值相加以产生接续地址,更新分流值,当分流值尚未达到目标分流值时,根据接续地址将第一内存中的第二数据段传输至第二内存,将接续地址与第二间隔值相加以更新接续地址,及更新分流值,及当分流值已达到目标分流值时,将分流值设定为初始值,将初始地址与位宽偏移值相加以更新接续地址及初始地址;及根据更新后的接续地址将第一内存中的第三数据段传输至第二内存。
附图说明
为更清楚地理解本申请的上述和其他目的、特征、优点及实施例,请参考附图及如下附图说明:
图1是本发明一个实施例的数据储存系统的示意图。
图2是图1所示数据储存系统执行交错式分散传输的示意图。
图3是本发明一个实施例操作图1所示数据储存系统的方法流程图。
图4是图1所示数据储存系统执行交错式聚集传输的示意图。
符号说明:
100:数据储存系统
110:第一内存
120:第二内存
130A、130B、130c、130D、130E、130F:缓存器
140:内存控制器
D1A至DNA、D1A至DKA、D1B、D2B、D1C:数据段
A1至AN、A1至AK:地址区段
300:方法
S310至S380:步骤
具体实施方式
图1是本发明一个实施例的数据储存系统100的示意图。数据储存系统100包括第一内存110、第二内存120、缓存器130A、130B、130C、130D、130E及130F及内存控制器140。内存控制器140耦接缓存器130A、130B、130C、130D、130E、130F、第一内存110及第二内存120。在有些实施例中,内存控制器140可以例如是系统中的直接内存访问控制器,并可包括有限状态机(finite state machine,FSM),且可以直接存取第一内存110及第二内存120中的数据并在第一内存110及第二内存120之间进行传输。
图2是数据储存系统100执行交错式分散传输的示意图。在图2中,第一内存110可以是先进先出(First In First Out,FIFO)储存结构,而内存控制器140可以将第一内存110中连续的多个数据段分别依序且循环地传送至第二内存120中分散的多个地址区段A1至AN中。也就是说,内存控制器140可以先从第一内存110中推出(pop)数据段D1A,并将数据段D1A存入第二内存120的第一个地址区段A1中。接着,内存控制器140可以从第一内存110中推出数据段D2A,并将数据段D2A存入第二内存120的第二个地址区段A2中,并依此类推,而将从第一内存110中推出数据段D3A至DNA,并将数据段D3A至DNA分别存入第二内存120的第三个地址区段A3至第N个地址区段AN中。然后,内存控制器140会再从第一内存110中推出数据段D1B,并将数据段D1B存入第二内存120的第一个地址区段A1中,数据段D1A的下一个储存地址,再从第一内存110中推出数据段D2B,并将数据段D2B存入第二内存120的第二个地址区段A2中,数据段D2A的下一个储存地址,依此类推,直到内存控制器140的传输数据量已达目标值为止。
图3是本发明一个实施例操作数据储存系统100的方法300的流程图,方法300包括步骤S310至S380。
S310:内存控制器140根据初始地址将第一内存110中的数据段传输至第二内存120;
S320:内存控制器140将初始地址与间隔值相加以产生接续地址;
S330:内存控制器140更新分流值;
S340:判断分流值是否达到目标分流值,当分流值达到目标分流值时,执行步骤S360,否则执行步骤S350;S350:内存控制器140根据接续地址将第一内存110中的数据段传输至第二内存120;
S352:内存控制器140将接续地址与间隔值相加以更新接续地址;
S354:内存控制器140更新分流值,进入步骤S340;
S360:判断内存控制器140的传输数据量是否已达目标值,当内存控制器140的传输数据量已达目标值时,执行步骤S380,否则执行步骤S370;
S370:将分流值设定为初始值;
S372:内存控制器140将初始地址与位宽偏移值相加以更新接续地址及初始地址;
S374:根据更新后的接续地址将第一内存110中的数据段传输至第二内存120,进入步骤S340;
S380:结束。
在有些实施例中,数据储存系统100可以通过方法300来完成交错式分散传输的功能。在此情况下,在步骤S310中的初始地址即为数据段D1A即将存放至第二内存120中的地址,因此内存控制器140可据以将自第一内存110中取得的数据段D1A传输至第二内存120,并可储存至第二内存120的第一地址区段A1的初始地址。在有些实施例中,根据传输需求的不同,第一数据段D1A可能会包括对应于第一内存110中的单一地址的单一笔数据,也可能包括对应于多个连续地址的多笔数据。因此,在步骤S310中内存控制器140可能会自第一内存110中连续读取多笔数据以取得完整的第一数据段D1A。
在图2的实施例中,由于第二内存120的第二内存区段A2的起始地址0x100与第一内存区段A1的起始地址0x000之间具有间隔100,因此在数据段D1A传输完成后的步骤S320中,内存控制器140会将初始地址与间隔值100相加以产生下一个数据段D2A在第二内存120中所应储存的地址0x100,即接续地址。此外,在此实施例中,由于内存控制器140须将第一内存110中的数据分别储存至第二内存120中的N个内存区段A1至AN,表示在此传输过程中会包括N个分流,并记录目前所处理的分流值是什么,在步骤S330中,内存控制器140还会更新分流值,例如但不限于将分流值从0更新为1,表示传输至第二内存120的第一地址区段A1的数据段D1A已传输完成,目前则需进行下一笔数据段D2A的传输。
在有些实施例中,目标分流值可以设定为第二内存120的地址区段的总数量,例如在此实施例中,目标分流值可以设定为N。由于目前的分流值为2,尚未达到目标分流值N,因此步骤S340的判断结果会导向步骤S350。在步骤S350中,内存控制器140会根据步骤S320中所产生的接续地址将自第一内存110中取得的数据段D2A储存至第二内存120的第二地址区段A2中。接着在步骤S352及S354中,内存控制器140会将接续地址0x100与间隔值100相加以更新接续地址0x200,并进一步更新分流值,例如但不限于将分流值由1更新为2,并进入步骤S340。此时,由于分流值为3尚未达到目标分流值N,因此内存控制器140会重复执行步骤S350至S354。
当将储存至第二内存120的第N地址区段AN的数据段DNA已传输完成,而分流值由N-1被更新至N时,步骤S340的判断结果会导向步骤S360。此时,若内存控制器140的传输数据量已达到目标值,则表示传输完成,因此会执行步骤S380以完成传输。然而若内存控制器140的传输数据量尚未达到目标值,则表示内存控制器140需要继续从第一内存110中取得数据段,并且储存至第二内存120的第一地址区段A1中。此时便会执行步骤S370至S374。
在步骤S370中,内存控制器140可先将分流值设定为初始值,例如但不限于为0。此时,从第一内存110中所取得的数据段D1B应该也要储存至第二内存120的第一地址区段A1中。然而在第二内存120的第一地址区段A1中先前已储存了数据段D1A,因此数据段D1B应该储存在数据段D1A的下一个地址空间。因此,在步骤S372中,内存控制器140会将初始地址与位宽偏移值相加以更新接续地址,并在S374中,根据更新后的接续地址将第一内存110中的数据段D1B传输至第二内存120。在有些实施例中,第一内存110与第二内存120的位宽可能不同,因此数据段D1A可能会占据第二内存120中多个地址空间。举例来说,在图2中,初始地址为0x000,而数据段D1A可能会储存在第二内存120中地址0x000至0x003的储存空间,此时位宽偏移值即为4,而数据段D1B则应该从地址0x004开始储存。在有些实施例中,当数据段D1A被储存成第二内存120中多个连续地址的多笔数据时,内存控制器140可根据该些连续地址所包括的地址数量设定位宽偏移值。如此一来,就可以确保交错式的分散传输能够持续循环,而不会误将先前的数据覆盖。此外,为了确保内存控制器140可以在下一次将数据段D1C正确地储存至第二内存120的第一地址区段A1中数据段D1B所在的下一地址,即D1C的地址0x008,在步骤S372中,内存控制器140也会利用初始地址0x000与位宽偏移值4相加的结果一并更新初始地址。
步骤S374完成之后,内存控制器140会继续执行步骤S340,以继续将第一内存110中的数据段依序分别传送至第二内存120的第二地址区段A2至第N地址区段AN。如此一来,数据储存系统100就可以通过方法300完成交错式的分散传输。
在有些实施例中,方法300中使用的地址及数值可以储存在数据储存系统100的缓存器中。举例来说,缓存器130A可以储存初始地址、缓存器130B可以储存接续地址、缓存器130C可以储存分流值、缓存器130D可以储存目标分流值、缓存器130E可以储存位宽偏移值,而缓存器130F则可储存间隔值。
在图2的地址区段A1至AN中,每相邻两个地址区段之间的间隔值相同,例如地址区段A1的起始地址为0x000,地址区段A2的起始地址为0x100,地址区段A3的起始地址为0x200,因此在步骤S320及S352中所使用的间隔值也都相同,即皆为100。然而,在有些实施例中,相邻两个地址区段之间的间隔值也可能不同,例如地址区段A1的起始地址为0x000,地址区段A2的起始地址可为0x100,而地址区段A3的起始地址可为0x300。在此情况下,步骤S320及S352中所使用的间隔值就可能相异,而数据储存系统100也可包括对应的缓存器来储存各个间隔值。在有些实施例中,由于间隔值会与接下来要储存的地址区段有关,因此也会与分流值有关,而内存控制器140可以根据目前的分流值来选择对应的间隔值。
此外,在图2的实施例中,由于第一内存110具有先进先出(First In First Out,FIFO)储存结构,因此内存控制器140仅需要对相同的地址执行推出指令就能够持续取得其中的数据,然而本发明并不以此为限。在有些其他实施例中,第一内存110也可以具有其他类型的储存结构,而内存控制器140则可持续累加读取地址以读取出多笔连续的数据。
图4是数据储存系统100执行交错式聚集传输的示意图。在图4中,第二内存120可以是先进先出(First In First Out,FIFO)储存结构,而内存控制器140可以将第一内存110中分散于K个地址区段A1至AK的多个数据段依序且循环地传输至第二内存120。也就是说,内存控制器140会先从第一内存110的第一个地址区段A1中取得对应的数据段D1A,并将数据段D1A传输至第二内存120,再从第二个地址区段A2中取得对应的数据段D2A,并将数据段D2A传输至第二内存。依此类推,内存控制器140会在第三至第M个地址区段A3至AK中取得对应的数据段D3A至DKA,并将数据段D3A至DKA依序推入(push)至第二内存120。接着,内存控制器140会再回到第一内存110的第一个地址区段A1,并取得数据段D1A的下一个数据段D1B以存入第二内存120,然后再从第二个地址区段A2,并取得数据段D2A的下一个数据段D2B以存入第二内存120,并依此类推,直到内存控制器140的传输数据量已达目标值为止。
在有些实施例中,数据储存系统100同样可以通过方法300来完成交错式聚集传输的功能。在此情况下,在步骤S310中的初始地址即为数据段D1A于第一内存110中的储存地址,因此内存控制器140根据初始地址自第一内存110中取得数据段D1A并传输至第二内存120。在有些实施例中,根据传输需求的不同,第一数据段D1A可能会包括对应于第一内存110中的单一地址的单一笔数据,也可能包括对应于多个连续地址的多笔数据。因此,在步骤S310中内存控制器140可能会自第一内存110中连续的多个地址读取多笔数据以取得完整的第一数据段D1A。
接着在步骤S320及S330中,内存控制器140会将初始地址与对应的间隔值相加以产生接续地址,即下一个数据段D2A于第一内存110中所在的地址,并更新分流值,以便进行后续的传输。此外,在有些实施例中,目标分流值可以设定为第一内存110的地址区段的总数量,例如在此实施例中,目标分流值可以设定为K。再者,在图4中,由于第一内存110中,有部分相邻内存区段之间的间隔值并不相同,例如地址区段A1的起始地址为0x000,地址区段A2的起始地址可为0x100,而地址区段A3的起始地址可为0x300。因此数据储存系统100会利用额外的缓存器来储存对应的间隔值,并根据目前的分流值来选择对应的间隔值100或200,以确保内存控制器140能够在正确地地址区段取得所需的数据段。
在有些实施例中,由于数据段D1A可能会包括储存在第一内存110的多个连续地址的多笔数据,此时内存控制器140还可根据该些连续地址所包括的地址数量设定位宽偏移值,以利在步骤S372中正确地更新接续地址。举例来说,虽然在图4中的初始地址为0x000,然而数据段D1A可能还会包括储存在第一内存110中地址0x001至0x007的数据,此时位宽偏移值即为8,而数据段D1B则应该从第一内存110的地址0x008开始读取。如此一来,就可以确保交错式的聚集传输能够持续循环,而不会重复传送先前已传送的数据。
在图4的实施例中,由于第二内存120具有先进先出(First In First Out,FIFO)储存结构,因此内存控制器140仅需要对相同的地址执行推入指令就能够持续将数据段储存至第二内存120中,然而本发明并不以此为限。在有些其他实施例中,第二内存120也可以利用其他类型的储存结构,而内存控制器140则会持续累加写入地址以将数据段写入第二内存120中的连续地址中。
综上所述,本发明的实施例所提供的数据储存系统及操作数据储存系统的方法可以通过缓存器来储存传输所需的相关参数,包括起始地址、接续地址、分流值、目标分流值、位宽偏移值及间隔值,使得内存控制器能够自动地在内存的不同区段之间轮流写入或读取数据,以完成交错式分散传输或交错式聚集传输。如此一来,内存控制器就能够有效减轻计算机系统的中央处理器的负担,并且能够提升数据传输的效率。
以上所述仅为本发明的较佳实施例,凡根据本发明申请保护范围所做的等同变化与修改,都应该属于本发明的保护范围。
Claims (10)
1.一种操作数据储存系统的方法,其特征在于,所述数据储存系统包括第一内存、第二内存及内存控制器,所述方法包括:
所述内存控制器根据初始地址将所述第一内存中的第一数据段传输至所述第二内存;
所述内存控制器将所述初始地址与第一间隔值相加以产生接续地址;
所述内存控制器更新分流值;
当所述分流值尚未达到目标分流值时:
所述内存控制器根据所述接续地址将所述第一内存中的第二数据段传输至所述第二内存;
所述内存控制器将所述接续地址与第二间隔值相加以更新所述接续地址;及
所述内存控制器更新所述分流值;并且,
当所述分流值已达到所述目标分流值时:
将所述分流值设定为初始值;
所述内存控制器将所述初始地址与位宽偏移值相加以更新所述接续地址及所述初始地址;及
根据更新后的所述接续地址将所述第一内存中的第三数据段传输至所述第二内存。
2.一种数据储存系统,其特征在于,所述数据储存系统包括:
第一内存;
第二内存;及
内存控制器,耦接所述第一内存及所述第二内存,用以:
根据初始地址将所述第一内存中的第一数据段传输至所述第二内存;
将所述初始地址与第一间隔值相加以产生接续地址;
更新分流值;
当所述分流值尚未达到目标分流值时:
根据所述接续地址将所述第一内存中的第二数据段传输至所述第二内存;
将所述接续地址与第二间隔值相加以更新所述接续地址;及
更新所述分流值;并且
当所述分流值已达到所述目标分流值时:
将所述分流值设定为初始值;
所述内存控制器将所述初始地址与位宽偏移值相加以更新所述接续地址及所述初始地址;及
根据更新后的所述接续地址将所述第一内存中的第三数据段传输至所述第二内存。
3.如权利要求2所述的数据储存系统,其特征在于,
所述第一数据段包括对应于所述第一内存的特定地址的一笔数据或对应于所述第一内存的多个连续地址的多笔数据。
4.如权利要求2所述的数据储存系统,其特征在于,
所述内存控制器是用以将所述第一内存中分散于多个地址区段的多个数据段依序且循环地传输至所述第二内存;
所述初始地址及所述接续地址对应于所述第一内存中的地址;及
所述目标分流值为所述多个地址区段的总数量。
5.如权利要求4所述的数据储存系统,其特征在于,
所述第二内存为先进先出储存结构,且所述内存控制器系将所述多笔数据推入至所述第二内存的第二初始地址;或
所述内存控制器将所述多笔数据储存至所述第二内存的多个连续地址。
6.如权利要求4所述的数据储存系统,其特征在于,所述内存控制器还用以:
当所述第一数据段包括储存于所述第一内存的多个连续地址的多笔数据时,根据所述多个连续地址所包括的地址数量设定所述位宽偏移值。
7.如权利要求2所述的数据储存系统,其特征在于,
所述内存控制器是用以将所述第一内存中连续的多个数据段分别依序且循环地传送至所述第二内存中分散的多个地址区段中;
所述初始地址及所述接续地址对应至所述第二内存中的地址;及
所述目标分流值为所述多个地址区段的总数量。
8.如权利要求7所述的数据储存系统,其特征在于,
所述第一内存系为先进先出储存结构,且所述内存控制器系自至所述第一内存的第一初始地址中推出连续的所述多笔资料;或
所述内存控制器自所述第一内存的多个连续地址中取出连续的所述多笔数据。
9.如权利要求7所述的数据储存系统,其特征在于,所述内存控制器还用以:
当所述第一数据段被储存成所述第二内存的多个连续地址的多笔数据时,根据所述多个连续地址所包括的地址数量设定所述位宽偏移值。
10.如权利要求2所述的数据储存系统,其特征在于,所述内存控制器还用以:
当所述分流值已达到目标分流值且传输数据量已达目标值时,结束传输。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139211.9A CN113360423A (zh) | 2020-03-03 | 2020-03-03 | 数据储存系统及操作数据储存系统的方法 |
TW109109142A TWI788641B (zh) | 2020-03-03 | 2020-03-19 | 資料儲存系統及操作資料儲存系統的方法 |
US17/183,314 US11487659B2 (en) | 2020-03-03 | 2021-02-23 | Data storage system capable of performing interleaving scatter transmissions or interleaving gather transmissions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139211.9A CN113360423A (zh) | 2020-03-03 | 2020-03-03 | 数据储存系统及操作数据储存系统的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360423A true CN113360423A (zh) | 2021-09-07 |
Family
ID=77523342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010139211.9A Pending CN113360423A (zh) | 2020-03-03 | 2020-03-03 | 数据储存系统及操作数据储存系统的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11487659B2 (zh) |
CN (1) | CN113360423A (zh) |
TW (1) | TWI788641B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360423A (zh) * | 2020-03-03 | 2021-09-07 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085817A1 (en) * | 2002-10-31 | 2004-05-06 | Youngwoo Kim | First-in first-out memory circuit and method for executing same |
CN1707957A (zh) * | 2004-06-07 | 2005-12-14 | 联发科技股份有限公司 | 回旋式交错或逆交错数据符号的控制器 |
CN1937751A (zh) * | 2005-09-23 | 2007-03-28 | 凌阳科技股份有限公司 | 回旋交错及去交错的电路与方法 |
CN101276315A (zh) * | 2007-03-30 | 2008-10-01 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
CN108205447A (zh) * | 2016-12-20 | 2018-06-26 | 德克萨斯仪器股份有限公司 | 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5388237A (en) | 1991-12-30 | 1995-02-07 | Sun Microsystems, Inc. | Method of and apparatus for interleaving multiple-channel DMA operations |
US5525748A (en) * | 1992-03-10 | 1996-06-11 | Yamaha Corporation | Tone data recording and reproducing device |
US20020078246A1 (en) * | 2000-12-19 | 2002-06-20 | Ing-Simmons Nicholas K. | Method and system for network protocol processing |
US7308524B2 (en) * | 2003-01-13 | 2007-12-11 | Silicon Pipe, Inc | Memory chain |
US8156259B2 (en) | 2005-07-21 | 2012-04-10 | Elliptic Technologies Inc. | Memory data transfer method and system |
US20070162647A1 (en) * | 2005-12-19 | 2007-07-12 | Via Technologies, Inc. | System and Method for Performing Scatter/Gather Direct Memory Access Transfers |
KR100889781B1 (ko) * | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
US8176252B1 (en) | 2007-11-23 | 2012-05-08 | Pmc-Sierra Us, Inc. | DMA address translation scheme and cache with modified scatter gather element including SG list and descriptor tables |
US8082385B2 (en) * | 2008-05-02 | 2011-12-20 | Sony Corporation | Systematic memory shift for pre-segmented memory |
JP4585599B1 (ja) * | 2009-07-17 | 2010-11-24 | 株式会社東芝 | データ記憶装置及びキャッシュ制御方法 |
US8799553B2 (en) * | 2010-04-13 | 2014-08-05 | Apple Inc. | Memory controller mapping on-the-fly |
TWI636362B (zh) * | 2011-06-24 | 2018-09-21 | 林正浩 | 高性能快取方法和裝置 |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
CN103198028B (zh) * | 2013-03-18 | 2015-12-23 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
KR102533229B1 (ko) * | 2015-11-27 | 2023-05-17 | 삼성전자주식회사 | 상대 주소를 사용하는 메모리 장치의 접근 방법 |
US10289416B2 (en) * | 2015-12-30 | 2019-05-14 | Intel Corporation | Systems, apparatuses, and methods for lane-based strided gather |
US10289340B2 (en) * | 2016-02-23 | 2019-05-14 | Sandisk Technologies Llc | Coalescing metadata and data writes via write serialization with device-level address remapping |
KR20200085967A (ko) * | 2019-01-07 | 2020-07-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20210017912A (ko) * | 2019-08-09 | 2021-02-17 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
JP2021043908A (ja) * | 2019-09-13 | 2021-03-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN113360423A (zh) * | 2020-03-03 | 2021-09-07 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
-
2020
- 2020-03-03 CN CN202010139211.9A patent/CN113360423A/zh active Pending
- 2020-03-19 TW TW109109142A patent/TWI788641B/zh active
-
2021
- 2021-02-23 US US17/183,314 patent/US11487659B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085817A1 (en) * | 2002-10-31 | 2004-05-06 | Youngwoo Kim | First-in first-out memory circuit and method for executing same |
CN1707957A (zh) * | 2004-06-07 | 2005-12-14 | 联发科技股份有限公司 | 回旋式交错或逆交错数据符号的控制器 |
CN1937751A (zh) * | 2005-09-23 | 2007-03-28 | 凌阳科技股份有限公司 | 回旋交错及去交错的电路与方法 |
CN101276315A (zh) * | 2007-03-30 | 2008-10-01 | 财团法人工业技术研究院 | 动态调整传输数据宽度的直接存储器存取控制器与方法 |
CN108205447A (zh) * | 2016-12-20 | 2018-06-26 | 德克萨斯仪器股份有限公司 | 使用早期和后期地址以及循环计数寄存器来跟踪架构状态的流引擎 |
Also Published As
Publication number | Publication date |
---|---|
TWI788641B (zh) | 2023-01-01 |
US11487659B2 (en) | 2022-11-01 |
US20210279171A1 (en) | 2021-09-09 |
TW202134879A (zh) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2851665B2 (ja) | データ圧縮システム | |
JPH0623968B2 (ja) | データ転送制御システム | |
JP4453915B2 (ja) | クロスバー装置、制御方法及びプログラム | |
JP2001184211A (ja) | 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法 | |
CN113360423A (zh) | 数据储存系统及操作数据储存系统的方法 | |
US20090235026A1 (en) | Data transfer control device and data transfer control method | |
US7774583B1 (en) | Processing bypass register file system and method | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
JP2009187313A (ja) | ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム | |
JP3317316B2 (ja) | 画像処理装置 | |
JP2006251916A (ja) | Dma転送システム及びdma転送方法 | |
JP4882116B2 (ja) | バッファ制御装置およびバッファ制御方法 | |
JP4723334B2 (ja) | Dma転送システム | |
JP2011002910A (ja) | 検索処理装置及び検索処理方法 | |
US9159442B2 (en) | Serial memory with fast read with look-ahead | |
JPS62245467A (ja) | シンボリツク処理システムおよび方法 | |
JP2007140858A (ja) | メモリアクセス方法及びメモリアクセス装置 | |
CN110209609B (zh) | 串行接口电路、半导体装置以及串行并行转换方法 | |
US20050055514A1 (en) | Data rearrangement method | |
JP4464245B2 (ja) | データキュー制御回路、方法及びプログラム | |
JPS6237429B2 (zh) | ||
JP3496942B2 (ja) | メモリアクセス方法 | |
JP3952779B2 (ja) | データ読出装置 | |
JP4771619B2 (ja) | ダイレクトメモリアクセス制御装置 | |
JP2540844B2 (ja) | デ−タ転送制御方法 |
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 |