CN102037514A - 包括重排网络的数据处理*** - Google Patents

包括重排网络的数据处理*** Download PDF

Info

Publication number
CN102037514A
CN102037514A CN2009801179139A CN200980117913A CN102037514A CN 102037514 A CN102037514 A CN 102037514A CN 2009801179139 A CN2009801179139 A CN 2009801179139A CN 200980117913 A CN200980117913 A CN 200980117913A CN 102037514 A CN102037514 A CN 102037514A
Authority
CN
China
Prior art keywords
distributor
data
vector
data object
handling system
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
Application number
CN2009801179139A
Other languages
English (en)
Inventor
埃里克·赖肖沃
科内利斯·H·B·范贝克莱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN102037514A publication Critical patent/CN102037514A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理***,其中,该***被配置用于在输入处接收第一多个命令,所述多个命令包括多个读取命令;并且在输出处产生第二多个数据对象。该***包括:多个存储器组;分发器(102);多个访问模块(104);以及重排网络(108)。其中,缓冲命令以避免组冲突,并且所获取的数据对象通过重排网络来重排。

Description

包括重排网络的数据处理***
技术领域
本发明涉及一种数据处理***。
具体地,本发明涉及一种数据处理***,其中,该***被配置用于:在输入处接收第一多个命令,所述多个命令包括多个读取命令;以及在输出处产生第二多个数据对象;所述***包括:多个存储器组(memorybank)。
本发明还涉及一种用于重排数据的方法。
本发明还涉及一种速率匹配器。
背景技术
在实际中的每个调制解调发送或接收设备中,例如那些针对GSM和UMTS R99的发送或接收设备,使用数据交织步骤,即,数据重排序步骤。
数据交织是根据一些预定模式对数据进行重排序的过程。典型地,交织使用块交织模式,其中,在矩形矩阵中组织数据。首先,根据适当选择的访问序列,将整个交织块写入存储器,然后通过第二访问序列读出该块。例如,按照行的顺序写入矩阵并按照列的顺序读取矩阵。这些组合的序列实现了所需的交织操作。
注意,通过使用交织方案的访问序列,在交换了读取与写入命令的同时,获得与其相关联的去交织方案。例如,按照列的顺序写入矩阵,但是按照行的顺序读取矩阵。典型地,数据交织器以及对应的去交织器被实现为对随机存取存储器(RAM)的写入和读取序列。
交织因其数据依赖性而具有与其操作相关联的固有长等待时间。
交织在计算机科学、纠错码以及通信领域具有广泛应用。例如,如果在利用纠错码编码之前对数据进行交织,则数据变得不那么容易受到突发错误。数据交织对于通信包括移动通信而言尤其重要,但是也用于数据存储。数据交织例如也可以用于对多个数字流源进行复用,以将数字音频流与数字视频流组合成一个多媒体流。
如果所需数据速率较低,通常使用DSP或微控制器上的可编程解决方案。对于较高的数据速率和/或吞吐量需求,使用具有专用地址产生硬件的随机存取存储器,例如用于WLAN。
对用于交织的存储器的吞吐量需求不断提高。对此最重要的原因在于通信标准所需数据速率的增长。为了给出这种增长的指示,以下在表1中给出了针对3G通信标准的吞吐量需求,以及在表2中给出了下一代通信标准的吞吐量需求。
注意:Msbit/s代表百万软比特每秒,是数据速率的度量。根据解调器所使用的精度,一个软比特对应于4或5个实际比特。
  标准   吞吐量
  802.11a/g   72Msbit/s
  DAB   4,6Msbit/s
  DVB   81Msbit/s
  UMTS   8,8Msbit/s
  HSDPA   42Msbit/s
表1.3G标准
  标准   吞吐量
  UMTS LTE   300Msbit/s
  802.11n   600Msbit/s
表2.4G标准
此外,通常必须同时支持上行和下行,导致较高的架构负载。此外,多标准解决方案不仅需要处理各个单独数据速率的总和,而且还因为更紧的等待时间约束甚至进一步被加压。这些发展的结果使得对存储器的访问速率的总和变得比最大可达到存储器频率大得多。
当使用多组存储器时,出现新的问题:如果将访问向量的两个或多个元素分配给相同组,则发生所谓的冲突,这是因为组在同一时刻仅能处理一个元素。例如,如果访问向量(即,命令向量)包含针对存储器组的两个写入命令,或者如果访问向量包含针对存储器组的两个读取命令,则发生这样的冲突。分发器可以通过将访问向量划分成两个新的访问向量,使得每个新访问向量仅包括导致冲突的两个地址之一,来解决该冲突。因此,使用两个周期来处理原始访问向量。这对应于50%的存储器效率。
根据交织方案的特性,几乎不可能处理许多连续访问向量,而没有组冲突。
针对特定块交织访问模式,出现组冲突的最坏情况。如果组的数目P是矩阵(即,块交织函数)的列数C的除数(divider),则发生总共C个突发组冲突。在这种情况下,存储器效率降至仅为1/P*100%。具体地,在列数等于所使用的组数的情况下,发生上述情况。
现有技术的问题在于现有存储器架构在用于数据交织时是低效的。
发明内容
本发明的目的是提供一种可以高效处理数据交织的存储器架构。
该目的通过如权利要求1所限定的根据本发明的数据处理***来实现。
发明人已经认识到,不可以将存储器访问序列直接映射至多组存储器。而是需要更复杂的方法来实现更高的效率。
命令可以包括表示存储器位置的索引或由表示存储器位置的索引组成。索引可以是存储器地址,但是索引也可以是块交织模式中所使用的索引。索引的范围不需要涵盖整个存储器。可能需要转换函数将索引转换成物理地址。转换函数可以包括将偏移与索引相加。作为中间步骤,转换函数可以将索引转换成虚拟地址。转换函数可以包括在分发器和/或存储器组中。转换函数也可以包括在数据处理***所采用的转换器单元例如存储器管理单元中。
如果在多个命令下,发生组冲突,则分发器不需要解决该冲突,而是可以继续常规操作,这是因为每个组具有对应访问模块对冲突命令进行缓冲。这些访问模块通过重新调度,实现了针对不同组的命令去耦。
因此,所有存储器组可以在每个周期存储或获取数据对象,而如果没有多个访问模块,则在发生冲突时,存储器组中的一些将空闲。
此外,由于数据处理***包括重排网络,因此该***可以控制输出数据对象的排列。这使得数据处理***成为灵活、多用途工具。例如,重排网络可以按照与组织多个读取命令相同的方式来组织多个数据对象,但是这是不必要的。
重排网络可以以任何期望的排列来组织数据。例如,重排网络能够通过颠倒每个预定数目比特集合的顺序,将以低序字节(little-endian)表示存储的数据转换成高序字节(big-endian)表示。在后一种示例的情况下,以低序字节表示存储的数据应当将自身作为以高序字节表示存储的数据呈现给使用数据处理***软件。从使用该***的软件应用程序的观点,该转换应当是透明的。
可以以许多方式来暂时组织第一多个命令,例如,命令可以顺序或并行地到达输入。不需要命令根据固定调度到达,而是一旦上游处理设备使得这些命令可用就可以到达,这样数据处理***可以在异步设计中使用。
每个访问模块可以缓冲相同数量的数据,但是对于一些访问模块而言也可以是能够缓冲比其他访问模块多的数据。
本发明可以有利地用于需要高数据速率的任何设备或任何应用,只要存储器访问行为在组上粗略平衡。
根据本发明的数据处理***的优选实施例由权利要求2的手段来表征。
通过使用重排网络,确保***所输出的数据对象向量按照与接收读取命令向量相同的顺序,使得从使用数据处理***的软件的观点,该***是透明的。除了等待时间之外,软件不能知道数据处理***具有多组存储器架构。与不具有重排网络的***相比,这是一个优点。没有该优点的情况下,软件需要考虑输出数据对象的确切顺序。此外,在理论上,程序员可以预先得出何处将发生冲突以及如何在软件中对冲突进行补偿。但是使用权利要求2所限定的根据本发明的数据处理***,极大地简化了程序员的任务,还增加了使用该***的软件的吞吐量和效率。
第一命令向量序列应当在某点已被顺序组织。例如,可以顺序地向输入提供多个命令,于是分发器例如通过一次对固定数目的命令进行处理,将命令组织成向量序列。这样,数据处理***可以包括在非向量架构以及向量架构中。另一方面,分发器还能够处理线性序列,按照接收的顺序,逐一分发命令。
根据排序的有序集合是具有第一、第二等以及最后元素的集合。注意,在集合具有两个元素的情况下,第二和最后元素是指同一元素。
根据本发明的数据处理***的实际实施例由权利要求3的手段来表征。
优选地,重排网络包括重排缓冲器,来存储由多个存储器组向重排网络提供的数据对象。在优选实施例中,重排缓冲器包括多个重排组缓冲器,使得每个存储器组供应相应重排组缓冲器。
重排缓冲器给出以下优点:可以在重排缓冲器和元素选择网络中组织重排网络。
根据本发明的数据处理***的优选实施例由权利要求4的手段来表征。
标签可以向重排网络发信号通知与多个读取命令和/或接收这些读取命令的顺序有关的一些信息。标签可以包括时间戳。在读取命令包括在读取命令向量中的情况下,标签可以包括读取命令在读取命令向量中排序的表示。同样,地址的表示和/或地址方式的表示包括在多个读取命令中。可以有利地组合以上信息和其他信息的任何组合。
分发器所分配的每个标签可以是不同的,但这是不必要的。
基于连同数据对象一起提供的标签,重排网络可以构造数据对象的期望排序,例如,与接收读取命令相同的排序。
通过将标签分配给每个读取命令,分发器可以通过与处理读取命令本身的硬件相同的硬件,向重排网络传送与分发器接收读取命令的排列有关的信息。这解决了从分发器向重排网络获取信息的问题。优选地,标签传递分发器接收读取命令的顺序。
根据本发明的数据处理***的优选实施例由权利要求5的手段表征。
分发器分配标签的优选方式是根据标签序列分配标签。在接收读取命令的排列是线性顺序排列的情况下,可以向每个标签分配表示接收读取命令的顺序的数字。如果并行接收到一些读取命令,则分发器必须例如根据排序,破坏联系。具体地,当接收到读取命令向量序列时,分发器可以根据向量中的排序来分配标签。例如,应当给具有最低排序的读取命令分配第一标签;给具有次低排序的读取命令分配下个标签。在将标签分配给读取命令向量中具有最高排序的读取命令之后,分发器可以将下个标签分配给下个读取命令向量中具有最低排序的读取命令。这样,分发器可以继续。
标签序列可以是适当表示的自然整数的序列。标签序列不需要是无限的;在使用标签序列中的最后标签之后,可以从第一标签开始重新使用标签序列。例如,标签序列可以是从0一直到2的幂(但不包括2的幂)的整数。备选地,标签序列可以是格雷码。使用格雷码具有以下优点:用于控制标签序列的处理装置不那么复杂。
使用标签序列具有这样的优点:重排网络可以被配置为基于相同标签序列来选择数据对象。这节省了分发器与重排网络之间共享的控制和通信。
问题在于,当标签序列包含较少的两个不同标签时,访问缓冲器中可能包含以相同标签标记的两个命令。如果所述两个命令在重排网络处结束,则它们可由重排网络同时可选。在这种情况下,重排网络需要破坏联系。在优选实施例中,为了解决该问题,标签序列中不同标签的数目大于或等于访问模块可以存储的命令数目。例如,如果访问模块的数目是‘P’,并且如果每个访问模块具有存储‘D’个命令的容量,则标签序列应当至少包括D×P(即,D与P相乘)个不同元素。
根据本发明的数据处理***的实际实施例由权利要求6的手段来表征。
第一序列还可以包括一个或多个写入命令。可以将写入命令组织为写入命令向量序列。每个写入命令向量包括写入命令集。写入命令向量可以具有排序,尽管这不是必要的。分发器可以在分发器输出之间分发写入命令集。
用于读取命令处理的硬件实际上可以重复用于处理写入命令。这包括使用分发器来分发写入命令,并且在使用存储器组进行存储之前利用访问模块来缓冲写入命令。这样,不需要附加硬件来在存储器组中存储信息,除了使得存储器组不仅适合于获取还适合于存储以外。
对于特定组,所有读取或写入访问仍然按照它们由分发器接收的相对顺序来予以执行。因此,在该架构中不会发生写后读(RAW)、读后写(WAR)或写后写(WAW)的危险。
对于根据本发明的架构,不需要防止危险的控制装置,例如用于在危险发生之前停止数据处理***的装置。这带来了数据处理***的吞吐量更大以及硬件不那么复杂的优点。
根据本发明的数据处理***的优选实施例可以由权利要求7的手段来表征。
作为处理多个读取命令的结果,可能会使访问模块中包括的缓冲器充满。如果访问模块充满,则数据处理***不能够接受应当被分发至与充满的该访问模块相连的分发器输出的新读取命令。如果不能解决这样的情况,则数据处理***会发生故障,或者至少吞吐量会受到影响。如果接收到具有许多组冲突(即,针对相同组的许多命令)的多个命令,则会出现充满的访问缓冲器。
问题在于,一些交织模式(包括公共通信标准所需的一些交织模式)引起许多组冲突。针对这样的交织模式通常出现上述情况。
该问题可以通过使用置换器(permutator)来解决。置换器对分发应用置换(permutation),使得将导致许多命令被分发至单个存储器组的交织模式变换成这些地址在多个组之间分发的模式。
如果分发器接收到在没有置换器的情况下将会引起多个组冲突的多个命令(即,许多命令将会被发送至相同存储器组),则置换器通过将命令中一些分配或重新分发至不同的存储器组或对应的访问模块,来打破该模式。
例如,如果在没有置换器的情况下第一命令和第二命令将会被发送至第一存储器组,则置换器可以通过将第一命令分配至第一存储器组而将第二命令分配至第二存储器组来解决该冲突。
注意,置换器可以对读取命令和写入命令进行操作。便利的是,通过以相同配置进行操作的相同置换器,来路由被发出来获取响应于先前写入命令而存储的元素的读取命令。这样,包括相同索引的读取或写入命令可以在相同物理位置读取或写入。
置换器可以包括在清楚限定的模块中,但是另一方面,置换器的功能可以与其他模块的功能相结合,尤其可以与用于处理地址或索引的模块的功能相结合。例如,置换器可以与分发器的分发相组合。置换器也可以在分发器外部实现,例如,在与分发器输出和多个访问模块的输入相连的分立模块中实现。
置换器具有使访问模块充满频率降低的优点。因此,使用置换器,可以降低访问模块的容量,获得更经济的设计。
使用置换器的本发明可以有利地用于需要高数据速率的任何设备或任何应用,即使存储器访问行为在组上并不平衡。
根据本发明的数据处理***的优选实施例由权利要求8的手段来表征。
一种置换命令的特别便利的方式是通过首先以地址函数处理索引来进行。通过以地址函数对索引进行处理而产生的地址可以表示存储器组中命令要进行存储或获取的物理地址。该地址也可以是存储器组中相对于存储器组中预定元素的偏移或者位移的表示。地址也可以表示虚拟位置而不是物理地址。虚拟地址的使用对于本领域技术人员是公知的。
在处理特定索引以指示特定分发器输出时,通过将特定地址与特定索引相加,来完成循环置换移位(cyclic permutation shift)。在将特定地址与特定索引相加的处理步骤之后,可以进行附加处理。例如,可以进行模(modulo)运算,即,除法运算后的余数,具体地,计算对存储器组数目的模。
当读取或写入命令序列与存储器组的数目相结合非常不适合时,会引起组冲突。随着所述结合,可能引起许多组冲突。例如,对于块交织模式,如果组的数目‘P’是列数‘C’的除数(divider),则会发生上述情况。
通过将地址与索引相加,应当被分发至相同组的命令将需要访问不同组。这样,循环置换移位解决了许多组冲突。
如果针对一些特定交织模式,置换器减少的组冲突数目多于置换器引入的新的组冲突,则有利地应用置换器。这可以通过对交织模式仿真来进行测试,第一仿真不具有置换器,第二仿真具有置换器。第一和第二仿真中,对组冲突的数目进行计数。如果具有置换器的仿真给出较少的组冲突,则有利地应用置换器。
根据本发明的数据处理***的优选实施例由权利要求9的手段来表征。
使得分发器可重新配置,具有可以支持多个交织方案的优点。可能生以下情况:分发器的一种配置针对一种类型的交织对于打破引起组冲突的模式尤其有效,但是对于另一种交织方案仍是无效、或者在更差情况下甚至起反作用。
重新配置分发器的一种方式是重新配置置换器。例如,可设想,具体配置的置换器可以移除一种交织方案的所有冲突,还会在另一种交织方案中引入冲突。通过预计将要使用的交织方案来重新配置置换器,可以解决该问题。一种重新配置方式是具有多个置换器并在这些置换器之中选择一个。
重新配置数据尤其可以包括以下中的一个或多个:组函数的表示、地址函数的表示、以及用于这些函数的一个或多个参数。同样,重新配置数据可以包括要执行的具体应用或操作,分发器或置换器能够从分发器中包括的存储器中所存储的表格中,选择分发的方式,即,适配其选择性。例如,重新配置数据可以包括交织方案的类型。
一种重新配置方式是开启或关闭置换器。已经发现,如果分发器具有在两种分发类型(例如,一种具有置换器,另一种没有置换器)之间进行选择的选项,则获得更大优势。
使用重新配置的一种方式如下。在生产期间,分发器配备有一种或多种类型的置换。在使用期间,存储表格,在该表格中保持针对每种通信协议的最佳置换类型。该表格可以预先计算并在制造期间存储在设备上,或者稍后存储,例如从服务器下载。设备还可以针对每一协议尝试不同类型的置换器,并且存储工作最佳的置换。
根据本发明的数据处理***的实际实施例由权利要求10的手段来表征。
如果访问模块实质上充满,则必须暂时防止数据处理***接纳更多输入,因为不能对这些输入进行处理。为此,分发器可以包括停止模块,以从多个访问模块收集停止信息,并且将该信息转发至可能向数据处理***提供更多命令的那些***。
该特征具有防止数据丢失、不可预测行为、或者更差情况下数据处理***崩溃的优点。
必须结合访问模块和数据处理***的操作模式,并结合包括数据处理***的容纳***的操作,来考虑“实质上充满”。访问模块必须为分发器和/或容纳***中的其他模块及时给出信号,以响应信号进行动作。例如,如果数据处理***和/或容纳***的操作是管线型的,则在给出停止信号的时刻可能有一些命令在管线中。已经在管线中的命令不适合延迟;因此必须通过及时给出停止信号来容许这些对象。例如,当不能对一个命令进行延迟时,例如,如果分发器是管线型的,则访问模块必须在仅剩余针对再一个命令的容量时给出停止信号。
根据本发明的数据处理***的实际实施例由权利要求11的手段来表征。
为了针对分发器接收到的特定命令选择特定分发器输出,可能必须执行与存储器组的数目有关的算术运算。如果该数目是2的幂,则这些运算更容易执行。例如,为了基于索引选择存储器组和对应的访问模块,可以计算索引对存储器组的数目取模。同样,地址函数可以包括计算或将索引除以组数目的步骤。
对2的幂的模计算以及对2的幂的除法可以通过移位和比特掩码运算来执行,这对于本领域技术人员而言是公知的。
根据本发明用于重排数据的方法由权利要求12表征。
在上述步骤之前、之后或之间,可以进行其他处理步骤。此外,可以对读取和写入操作的一部分进行交织,即,可以执行第一数目的写入命令,然后执行第二数目的读取命令,然后执行第三数目的写入命令,然后执行第四数目的读取命令,等等。
用于重排数据的方法对于数据交织是尤其有利的。
用于重排数据的方法对于复用器也是尤其有利的。
在用于重排数据的方法用作复用器的情况下,第一写入命令集与两个或多个输入数据流相对应。在这种情况下,读取命令集与单个输出数据流相对应。
写入命令集用作第一多个命令的一部分。读取命令集用作第一多个命令的一部分。
根据本发明的速率匹配器由权利要求13来表征。
对于一些应用而言,例如,对于多数通信协议,将所有数据分成预定大小的块是必要的。如果数据块的原大小小于或大于预定大小,需要使这样的块变小或变大。本领域技术人员已知,存在多种可用的速率匹配方案。使用本发明,进行这种设置的便利方式是指示重排网络删除、***或重复一些数据。由于当数据通过重排网络时数据是可用的,在计算上很容易实现这一点。然而,在不同点执行速率匹配的情况下,需要使数据再次集合在一起,导致更大计算成本。
应当注意,US5,938,763提供了一种***,使用根据存储器重新使用原则构建的架构,通过读取地址的重新使用(即,每个读取访问之后是针对相同存储器地址的写入访问),来对数据进行交织。本发明没有对访问序列施加这样的约束,取而代之最大化了存储器周期的有效使用。
附图说明
通过示例并参照附图进一步详细描述本发明,在附图中:
图1是示出了根据本发明的数据处理***的第一实施例的框图。
图2是示出了重排网络的第一实施例的框图。
图3是示出了重排网络的第二实施例的框图;
图4是示出了重排缓冲器中包括的缓冲器的框图。
图5是示出了元素选择网络的框图。
图6是示出了分发器的第一实施例的框图。
图7是示出了分发器的第二实施例的框图。
图8是示出了分发器中包括的停止模块的框图。
图9是示出了数据处理***的框图。
图10示出了访问模块的实施例。
贯穿附图,类似或对应的特征由相同的附图标记来指示。
附图标记列表:
100        数据处理***
101        输入
102        分发器
103        输出
104        多个访问模块
106        多个存储器组
108        重排网络
110        访问模块
112        存储器组
200        重排缓冲器
202        元素选择网络
300        数据对象缓冲器
302        标签选择器
304        连接
400        缓冲器单元
402        前向线
500        MUX
600        置换器
700        重新配置模块
702        重新配置数据的接收
800        停止模块
100        0访问缓冲器单元
1002-1010  从分发器到访问模块的连接
1012       访问缓冲器单元连接
具体实施方式
尽管本发明容许许多不同形式的实施例,但是在附图中示出并且这里详细描述一个或多个具体实施例,应理解,本公开应视为本发明原理的示例,而并非意在将本发明限制于所示和描述的具体实施例。
为了方便起见,针对一般实施例描述数据处理***,其中分发器接收命令向量序列,并且重排网络产生数据对象向量序列。然而,本发明适用于任何命令流,并且可以产生任何需要的数据对象流。
在图9中示出了满***织架构的不断增加吞吐量要求的方法。在图9中,示出了存储器的多组架构。多组架构包括:分发器(902),用于在多个存储器组(106)上分发在输入(101)处出现的读取或写入命令输入序列。多个存储器组中的每一个连接至向量收集器(904)。将输入序列划分成命令向量。在读取命令向量的情况下,需要收集和输出存储器组所输出的向量数据。这通过“向量收集器”来进行。
在图1中示出了数据处理***(100)的第一实施例的框图。分发器(102)在输入(101)处接收第一命令向量序列。第一命令向量序列包括读取命令向量和写入命令向量。每个命令向量包括排序(ranking)的命令集。典型的读取命令包括索引例如地址。典型的写入命令包括索引和数据对象。
分发器(102)在多个分发器输出之间分发命令。多个分发器输出连接至多个访问模块(104);该连接以如下方式进行:每个分发器输出与一个相应访问模块相对应。访问模块(110)是所有访问模块的代表。每个访问模块包括能够对在与该访问模块相对应的分发器输出处出现的命令进行缓冲的缓冲器。访问模块能够对读取命令和写入命令进行缓冲。注意,分发器不必将分发器所接收的字面(literal)命令转发至访问模块。在分发之前或分发期间,可以对命令进行一些处理。
多个访问模块(104)连接至多个存储器组(106);该连接以如下方式进行:每个访问模块与一个相应存储器组相对应。存储器组(112)是所有存储器组的代表。每个存储器组能够响应于索引或地址获取数据对象。每个存储器组能够存储数据对象。
多个存储器组(106)连接至重排网络(108)。重排网络(108)从多个存储器组(106)接收数据对象。重排网络(108)从多个存储器组(106)中的存储器组接收到的每个数据对象是响应于读取命令而获取的。
重排网络(108)对重排网络(108)从存储器组(106)接收到的数据对象进行重排,并且在输出(103)处产生第二多个数据对象。可以改变数据对象的顺序。如果必须从重排网络(108)发出两个或更多数据对象作为并行集,例如,由于同样接收到对应读取命令作为并行集,那么重排网络(108)可以改变数据对象集内的顺序,以及重排网络(108)的输出内集合的相对位置。
分发器(102)包括连接至访问模块(110)的一个分发器输出。访问模块(110)连接至存储器组(112)。存储器组(112)响应于写入命令存储数据对象。存储器组(112)响应于读取命令获取数据对象。将获取的数据对象从存储器组(112)发送至重排网络(108)。重排网络(108)可以在输出(103)处将获取的数据对象放置在任意点处。重排网络(108)可以被配置为省略获取的数据对象,例如如果重排网络(108)被配置为速率匹配器。重排网络(108)可以通过重复或重新使用相同数据对象,来在输出(103)处在多个点处放置获取的数据对象。使用多个点处的对象可以通过省略从重排缓冲器(200)中移除对象来实现。
访问模块包括先进先出队列(FIFO队列)。多个访问模块(104)针对不同组,通过在时间上重新调度访问,来去耦访问(即,命令)的处理。于是可以“不按顺序”执行访问。这意味着组在面对冲突时不再需要彼此停止(stall)。因此可以实现更高的存储器效率。不按顺序读取仅在与重排网络(108)相结合时才变得可能,这是由于数据对象可以响应于多个读取命令向量而到达。
在操作期间,分发器(102)接收命令向量序列。分发器(102)在多个访问模块(104)之间分发命令向量的内容。分发器(102)将读取命令分发至经由访问模块与包含所请求数据对象的存储器组相连的分发器输出。典型地,读取命令包括指示要从中获取数据的物理位置的索引。分发器(102)选择与包括索引所指示的物理位置的存储器组相连的分发器输出。
分发器(102)将写入命令分发至经由访问模块与应当包含由写入命令提供的数据对象的存储器组相连的分发器输出。典型地,写入命令包括指示数据要存储到的物理位置的索引。分发器(102)选择与包括索引所指示的物理位置的存储器组相连的分发器输出。
典型地,分发器(102)按周期工作。在每个周期,在分发器输出之间分发一个命令向量。如果命令需要访问特定存储器组,则将命令发送至与该存储器组相连接的特定访问模块;特定访问模块暂时缓冲命令,直到存储器组可以处理该命令。如果两个或更多命令需要访问同一存储器组,则将这两个或更多命令都发送至同一访问模块。访问模块按照接收命令的顺序缓冲这些命令,并且在存储器组可以处理命令时将这些命令一次一个地转发至其存储器组。典型地,存储器组按周期工作,并且可以在每个周期处理一个命令。
在该实施例中,重排网络(108)组装数据对象向量序列。使得响应于一个对应的读取命令向量,获取每个数据对象向量。数据对象向量中每个数据对象具有特定排序,并且响应于对应读取命令向量中相同排序的读取命令而被获取。此外,读取命令向量的顺序等于与数据对象向量一一对应的读取命令向量的顺序。
分发器(102)将数据对象向量序列如何布置的信息发送至重排网络(108)。分发器(102)可以以多种方式将信息发送至重排网络(108)。首先,分发器(102)可以将表示信息的标签附至每个读取命令;随着读取命令前进通过***,标签随之前进。当响应于读取命令获取数据对象时,将附至读取命令的标签附至数据对象。这样,标签到达重排网络(108)。为了适应标签,需要适当地改变包括在访问模块或重排网络(108)中的缓冲器的大小。
在该实施例中,分发器(102)将从标签序列中按次序选择的标签附至每个读取命令。标签序列由可以用预定固定数目比特写入的所有整数组成。例如,序列可以是序列0,1,2,...,2^16-1=65535。其他标签序列是可能的并且可能是有利的。在该实施例中,不使用第二通信连接。
以下描述重排网络(108)的实施例。
可以使用专用硬件,例如根据本发明配置的电路,来制作数据处理***(100)。数据处理***(100)(106)可以由使用软件控制的通用硬件来制作,或者数据处理***(100)可以包括专用硬件、通用硬件以及软件的组合,来实现数据处理***(100)。
所使用的缓冲器和存储器,例如存储器组(112)或访问模块(110)或者包括在分发器(102)或包括在重排网络(108)中的缓冲器和存储器,可以由常规RAM存储器(例如DRAM、SRAM或SDRAM)、闪存、磁存储装置(例如,硬盘)、或光存储装置、或任何其他类型的适合存储装置来制作。可选地,存储器组(112)也能够使用ROM存储器。在使用ROM的情况下,数据处理***(100)仅可以用于数据对象的获取,而不能用于存储。
分发器(102)与多个访问模块(104)之间、以及多个访问模块
(104)与多个存储器组(106)之间、多个存储器组(106)与重排网络(108)之间的连接可以以多种方式来制作,例如,可以并行地或者使用总线架构来进行连接。
有利地,在向量架构中使用分发器(102),其中,分发器(102)接收命令向量序列。然而,如果序列是线性命令序列,则也可以使用分发器(102)。在这种情况下,分发器(102)接受多个这些命令并且将集合视为向量。类似地,如果需要,重排网络(108)可以以线性方式输出数据对象向量。
根据本发明的数据处理***(100)具有多种优点。由于数据处理***(100)使用多个访问模块(104),因此数据处理***(100)可以适当地对包含一个或多个存储器组冲突的多个命令进行处理。在冲突的情况下,不需要停止数据处理***(100)或者采用其他校正动作。每个冲突在访问模块中缓冲,并且继而由存储器组进行处理。
由于数据处理***(100)使用重排网络(108),多个数据对象可以按照任何期望的顺序出现在输出(103)处。这具有以下优点:重排网络(108)可以在数据通过时对数据执行操作。具体地,重排网络(108)可以重排、重复、删除或***数据。
如果重排网络(108)按照与接收读取命令的顺序相同的顺序来输出数据对象,这具有附加优点。数据处理***(100)具有比基于单个存储器组的传统数据处理***高得多的吞吐量和容量。数据处理***(100)与传统多组数据处理***相比出现冲突的频率较低。同时这对于数据处理***(100)的用户是透明的。
在一个实施例中,数据处理***(100)在异步设计中使用。命令不会与时钟同时到达,而是在一些其他组件需要读取或写入数据对象时到达。因此命令可以逐一到达,或一些命令可以同时到达。
以下使用工作示例来说明访问队列的效果。假定分发器(102)在5个存储器组上分发读取命令向量序列。在该示例中,数据处理***
(100)由交织函数I使用。根据要映射至5个存储器组的输入索引,交织函数I例如是:
I:{{0,6,16,2,12},{3,13,4,14,5},{7,8,9,19,10},{15,17,11,18,1}},
对应的组号是(I(i)mod 5):
{{0,1,1,2,2},{3,3,4,4,0},{2,3,4,4,0},{0,2,1,3,1}}
首先,在***中考虑不使用访问模块的情况。针对所有5个向量,对访问向量中组的出现频率进行计数给出以下表格,两次使用交织模式。
 组   0   1   2   3   4
 访问向量0   1   2   2   0   0
 访问向量1   1   0   0   2   2
 访问向量2   1   0   1   1   2
 访问向量3   1   2   1   1   0
组访问数目每访问向量
该表格是对存储器效率的指示。不使用访问队列,对于两个交织函数I块,总共需要16个周期。没有冲突的情况下,在16个周期中,应当获得个16*5=80个数据对象。然而,在上述示例中,仅获取4*5*2=40个数据对象。这对应于仅50%的存储器效率。
具有根据本发明的使用访问模块的数据处理***(100)的情况要好得多。以下表格示出了每个周期内在每个访问模块中缓冲的命令(即,访问)的数目。同样在这里两次使用交织模式。
  访问模块/组   0   1   2   3   4
  周期0(访问向量0)   1   2   2   0   0
  周期1(访问向量1)   1   1   1   2   2
  周期2(访问向量2)   1   0   1   2   3
  周期3(访问向量3)   1   2   1   2   2
  周期4(访问向量0)   1   3   2   1   1
  周期5(访问向量1)   1   2   1   2   2
  周期6(访问向量2)   1   1   1   2   3
  周期7(访问向量3)   1   2   1   2   2
  周期8(排出)   0   1   0   1   1
  周期9(完成)   0   0   0   0   0
访问队列中元素数目每周期
这获得了(1-(5/45))×100%=89%的效率,其中最大队列大小为3。
尽管包括访问队列的访问模块以及重排网络(108)可能对交织操作引入附加等待时间,但是对于大多数交织方案而言这是可接受的。尤其是交织方案使用在等待时间容忍的应用中的情况下。
在分发器(102)的一个实施例中,每个分发器输出具有对应的访问模块号。每个特定读取命令包括特定索引。分发器(102)通过计算索引对多个存储器组(106)中的存储器组的数目取模,来计算特定的计算访问模块号。分发器(102)将特定读取命令分发至与特定计算访问模块号相对应的分发器输出。
在分发器(102)的该实施例的进一步细化中,存储器组的数目是2的幂。将计算对存储器组的数目取模实现为与比特掩码(bit mask)的按比特(bitwise)‘与’运算。
图2示出了重排网络(108)的第一实施例。在该实施例中,重排网络(108)包括重排缓冲器(200)和元素选择网络(202)。
多个存储器组(106)响应于读取命令,向重排缓冲器(200)提供数据对象。元素选择网络(202)从重排缓冲器(200)选择要输出的元素。
存储器组(112)的输出连接至重排缓冲器(200),重排缓冲器(200)连接至元素选择网络(202),元素选择网络(202)连接至输出(103)。
优选地,元素选择网络(202)选择数据对象向量的元素。
在优选实现方式中,重排缓冲器(200)还将与数据对象一起由重排缓冲器(200)接收到的标签进行缓冲。优选地,元素选择网络(202)基于标签从重排网络(108)选择元素。在元素选择网络(202)已经从重排缓冲器(200)选择数据对象之后,该数据对象出现在输出(103)处,并且从重排缓冲器(202)中丢弃该数据对象以及关联标签。
重排缓冲器(200)可以由与适合访问模块(104)或存储器组(106)中的那些存储器类似的存储器来制作。
重排缓冲器(200)和元素选择网络(202)的优点在于,在需要对数据对象进行选择之前,可以将数据对象暂时存储在重排缓冲器(200)中。附加优点在于,该架构分成逻辑部分和存储器部分,因此可以重新使用传统存储器存储技术来创建功能重排网络(108)。
重排网络(108)的第二实施例如下。重排网络(108)包括向量构造存储器和向量填充网络。向量构造存储器包括多个向量槽(slot)。每个向量槽包括数据对象或(dummy)值。多个存储器组(106)将数据对象提供给向量填充网络。向量填充网络针对向量填充网络接收到的每个数据对象,确定要将该数据对象放置在哪个向量槽中。所放置的数据对象代替哑值。当向量槽不包括哑值时,在输出(103)处输出数据对象向量形式的向量槽。在输出向量槽之后,所输出的向量槽中的数据对象由哑值来代替。优选地,如果两个或更多向量槽不包括哑值,联系破坏装置确定输出向量槽的顺序。例如,顺序确定可以基于标签、基于时间戳、或者基于向量槽在存储器中存储的顺序来进行。备选地,根据该实施例的重排网络(108)可以对向量槽的输出进行延迟,以允许另一向量槽完成或被输出。优选地,向量槽初始仅包含哑值。
图3示出了重排网络(108)的第三实施例,是图2的重排网络(108)的细化。重排缓冲器(200)包括多个缓冲器。每个特定存储器组将数据对象提供给多个缓冲器中的特定缓冲器。重排缓冲器(200)中包括的多个缓冲器中一个缓冲器是数据对象缓冲器(300)。缓冲器(300)是重排缓冲器(200)中包括的多个缓冲器中所有缓冲器的代表。缓冲器(300)经由连接(304)与元素连接网络(202)相连接。
存储器组(112)连接至缓冲器(300)。多个缓冲器(200)连接至元素选择网络(202)。元素选择网络(202)连接至标签选择器(302)。标签选择器(302)指示元素选择网络(202)需要选择哪个标签用于输出。
在优选实施例中,标签选择器(302)发送标签向量序列。每个标签向量包括排序的标签集。特定排序的特定标签指示元素选择网络(202)选择具有与该特定标签实质上相等的标签的特定数据对象。选择该特定数据对象在数据对象向量中输出;该特定数据对象在该数据对象向量中具有该特定排序。
图4示出了缓冲器(300)的实施例。针对输出数据对象向量的数据处理***(100)示出了该实施例,每个数据对象向量包括8个数据对象。该实施例中访问模块具有缓冲5个读取命令的容量。注意这些数量仅出于示意的目的。
存储器组(112)将数据对象提供给缓冲器(300)的输入线。缓冲器(300)包括多个缓冲器单元。每个缓冲器单元可以缓冲一个数据对象和一个关联标签。在该实施例中,存在5个缓冲器单元。一个缓冲器单元(400)是缓冲器(300)中所有缓冲器单元的代表。缓冲器单元分级排序。每个缓冲器单元利用前向线连接至分级较高的所有缓冲器单元。例如,缓冲器单元(400)分级最低,并经由前向线(402)连接至分级最高的缓冲器单元。注意,在图3中,缓冲器(300)与元素选择网络(202)之间的连接(304)以单线示出,但是在图4中,相同连接(304)以5线示出。
将从存储器组(112)接收到的数据对象存储在分级最高的第一空闲缓冲器单元中。元素选择网络(202)使用连接(304),从缓冲器单元选择数据对象。在选择缓冲器单元之后,清除缓冲器单元的内容。使用前向线,将在比所选缓冲器单元分级低的缓冲器单元中存储的数据对象上移至分级较高的缓冲器单元。
从元素选择网络(202)到缓冲器的控制信号指示选择哪些输出。缓冲器施加适当移位,并且针对下个输入使能正确的缓冲器单元。
该架构的优点在于,存储在缓冲器单元中的标签总是根据标签序列按照降序排列。这在搜索特定标签时有利于更快访问。即,比第二充满的缓冲器单元分级高的第一缓冲器单元,具有根据标签序列较低的标签。
图5示出了元素选择网络(202)的第一实施例。该实施例针对输出数据对象向量的数据处理***(100)示出,每个数据对象向量包括个‘P’=8个数据对象。在该实施例中,访问模块具有缓冲‘D’=5个读取命令的容量。该实施例还具有P个存储器组。注意,这些数量仅出于示意的目的
元素选择网络(202)包括P个复用器(MUX)。MUX是执行复用的器件。MUX将包括在重排缓冲器(200)中的多个标签与从标签选择器(302)接收到的一个请求标签进行比较。如果找到匹配标签,则与匹配标签相对应的数据对象输出到单条线上。
在实际实施例(未示出)中,每个MUX连接至重排缓冲器(200)中的每个缓冲器单元。在这种情况下,每个MUX包括D×P个输入线,即,从P个存储器组的每一个可能有D个连接(304)。
在优选实施例(图5所示)中,缓冲器(300)中的缓冲器单元保持降序。因此,不是所有MUX需要具有相同数目的输入线。输入线中的一些变成冗余,这是由于这些输入线不再产生匹配。例如,对于与输出向量中第一元素相对应的标签,仅可能来自于数据对象缓冲器的第一元素。例如,对于与输出向量中第二元素相对应的标签,仅可能来自于数据对象缓冲器的前两个元素。
MUX(500)是其他MUX的代表。MUX(500)连接至连接(304)。MUX(500)还连接至重排缓冲器(200)中多个缓冲器中的其他缓冲器的连接的至少一部分。MUX(500)从标签选择器(302)接收请求。MUX(500)从所有缓冲器中选择具有与请求实质上相同的标签的缓冲器单元。当找到请求的标签时,输出关联的数据对象。
每个MUX将反馈信号发送至数据缓冲器,以通知数据缓冲器已经读取了哪个/哪些元素。如果适用,数据缓冲器然后执行正确移位。
在图6中示出了分发器(102)的第一实施例的方框图。分发器(102)包括置换器(600)(permutator)。
在分发器(102)接收到包括索引的命令时,置换器(600)执行对接收到的索引的处理。根据结果,分发器(102)针对该命令分发(即,选择)分发器输出。
如果在多个存储器组(106)上组冲突并非(至少在一定程度上)均匀分布,则访问模块充满的频度增大。充满的访问模块将使***停止。该问题的一种解决方案是大的访问模块。然而,使用置换器(600),提供了更好的解决方案。利用置换器(600),可以使用小访问模块,仍可以避免组冲突。
在第二实施例中,分发器(102)针对每个接收到的索引进行至分发器输出的暂时分配。置换器(600)可以重新分发该暂时分配。一种好的选择是使用相对循环移位置换来重新分发。右移的次数由数据元素的写入访问向量号来指示。例如,循环移位置换适合于标准:802.11a/g、DVB、UMTS HSDPA和UMTS R99。
可以通过在写入命令向量到达分发器(102)时对写入命令向量进行计数,来获得写入访问向量号。第一写入命令向量具有写入访问向量号1,第二写入命令向量具有写入访问向量号2,以此类推。备选地,当已知访问模式时,例如,如果使用已知的交织模式,可以通过对向量中的命令(例如,第一命令)中包括的索引进行处理,来获得写入访问向量号。
备选地,置换器(600)可以与分发集成。
置换器(600)所应用的置换用于整个交织块。要对写入访问和读取访问执行该置换,从而消除其对最后元素顺序的影响。通过执行该置换,会破坏组冲突的局部非均匀性,并且获得的均匀性可以用于并行性。由于用于交织的访问序列是确定的,仿真可以为每个单独的交织方案确定获得最佳组冲突分布的特定置换。
在置换器(600)的一个实施例中,每个分发器输出具有对应的访问模块号。每个特定读取命令包括特定索引。置换器(600)被布置为通过根据组函数处理特定索引,来计算特定访问模块号。分发器(102)将特定读取命令分发至与特定访问模块号相对应的分发器输出。置换器(600)的该实施例能够与使用置换器(600)的任何本发明实施例相结合。组函数可以如下计算:
1.将索引除以存储器组的数目,如果必要,对结果向下舍入。
2.将除法结果与索引相加。
3.计算加法的结果对存储器组的数目取模。
当存储器组的数目是2的幂时,可以将除法实现为按比特移位。
注意,第一数目对第二数目取模的结果可以计算如下:将第一数目除以第二数目,对结果向下舍入,这是整数商。接着,第二数目与整数商相乘;从第一数目中减去乘法结果。结果是整数余数。该整数余数是第一数目对第二数目取模的结果。本领域技术人员通晓包括模运算的算术。
有利地,该组函数也可以用硬件来实现,通过首先根据索引的一定数目的比特(例如,一定数目的最高有效位)选择存储器组,其次,移位第二数目次数至下个存储器组;其中,第二数目由索引的第二数目的比特(例如,索引的一定数目的最低有效位)指示。
一般而言,组函数不需要由算术处理器来执行,尽管这是可能的。有利地,可以将组函数下放至执行等同计算的硬件电路中。等同计算仅在基于索引选择分发器输出的方面是可见的。
组函数也可以计算为:
1.计算索引对存储器组的数目取模的结果。
该组函数例如对于线性读取是有利的,例如,0,1,3等的索引序列。
本领域技术人员将认识到,在不背离本发明的前提下,上述组函数可以以许多变型和许多适合的方式来实现,例如,以硬件、软件或其组合来实现。例如,在不背离本发明的前提下,执行特定操作的顺序通常可以变化,可以添加附加操作或删除操作。
图7示出了分发器(102)的第二实施例,其中,分发器(102)包括重新配置模块(700)。
重新配置模块(700)可以在输入(702)处接收重新配置数据。
实际上,重新配置模块(700)可以重新配置置换器(600)。置换器(600)是可重新配置的。例如,置换器允许选择预定置换集合,或者根本不选择置换。
重新配置具有最佳选项可以应用于特定应用的优点。例如,如果数据处理***(100)用于多个通信标准,其中,每个通信标准具有不同交织方案,则可以针对每个通信标准优化数据处理***(100)。
图8示出了停止模块(800)如何装配在数据处理***(100)中。分发器(102)包括停止模块(800)。停止模块(800)可以向数据处理***(100)外部传递信号,该信号指示数据处理***(100)当前不能够容纳新命令。
在停止模块(800)的第一实施例中,停止使用以下方法。在访问模块从分发器(102)接收用于缓冲的命令之后,访问模块将确认信号发送至停止模块(800)。确认信号发信号通知接收到的命令适合访问模块,还是命令不适合且应被丢弃。如果停止模块(800)没有接收到发信号通知访问模块充满并且必须丢弃命令的确认信号,则停止模块(800)允许分发器(102)继续进行下个命令向量。然而,如果停止模块(800)接收到指示访问模块充满的确认信号;停止模块(800)则向多个访问模块(104)发送缓冲了命令的那些访问模块必须丢弃该命令的信号。此时,停止模块(800)向外部发信号通知数据处理***(100)当前不能够容纳新命令。此后,分发器(102)重新尝试发送相同命令集。
在停止模块(800)的第二实施例中,所有访问模块每次向停止模块(800)发信号通知其是否实质上充满。停止方法可以向访问模块发信号通知最后接收到的命令是否有效。停止使用以下方法。如果访问模块确定该访问模块实质上充满,则该访问模块向停止模块(800)发信号通知该访问模块实质上充满。如果停止模块(800)接收到至少一个访问模块实质上充满的信号,则停止模块(800)将每个访问模块中的最后命令标记为无效。此时,停止模块(800)向外部发信号通知数据处理***(100)当前不能够容纳新命令。此后,如果停止方法(800)没有从访问模块接收到访问模块实质上充满的信号,则停止模块(800)使分发器(102)将命令重新发送至丢弃了命令的访问模块,并且停止模块(800)将所有命令标记为有效。优点在于,在访问模块不需要丢弃命令。
如果停止模块(800)停止了数据处理***(100),多个访问模块(104)、存储器组(106)以及重排网络(108)继续处理已经接受的命令。这样,清空访问模块,并且可以再次接受新命令。
图10示出了访问模块(110)的实施例。针对具有缓冲5个命令的容量的访问模块(110)示出了实施例。注意,这些数量仅出于示意的目的。
可以在5个访问缓冲器单元(1000)中缓冲5个命令,示出了所有5个访问缓冲器单元。缓冲器单元分级排序。标记为(1000)的单元分级最低,直接连接至存储器组(112)的单元分级最高。
以与所有访问缓冲器单元(1000)并联连接的形式,进行分发器(102)与访问模块(110)之间的连接。从分发器(102)至访问模块(110)的所有连接(1002)、(1004)、(1006)、(1008)和(1010)是从同一分发器输出至同一访问模块(110)的连接。
第一输出(1002)连接至所有访问缓冲器单元。第二输出(1004)连接至所有访问缓冲器单元,除了最高分级的访问缓冲器单元以外。第三输出(1006)连接至所有访问缓冲器单元,除了前两个最高分级的访问缓冲器单元以外。最后的输出(1010)仅连接至最低分级的访问缓冲器单元(1000)。
除了分级最高的访问缓冲器单元外,每个特定访问缓冲器单元经由访问缓冲器单元连接,连接至在分级方面直接位于该特定访问缓冲器单元之上的访问缓冲器单元。访问缓冲器单元(1000)经由访问缓冲器单元连接(1012)连接至下个分级的缓冲器单元。最高分级的缓冲器单元连接至存储器组(112)。
在操作期间,如果分发器(102)需要在访问模块(110)中缓冲命令,则分发器将命令放到从分发器至访问模块的连接(1002)上。然后将命令路由至所有访问缓冲器单元。分级最高且空闲的访问缓冲器单元接受命令。
如果分发器(102)需要在访问模块(110)中缓冲两个命令,这可以因为命令向量内的冲突而出现,则分发器将第一命令放到从分发器至访问模块的连接(1002)上。将第二命令放到从分发器至访问模块的连接(1004)上。然后将第一命令路由至所有访问缓冲器单元。分级最高且空闲的访问缓冲器单元接受第一命令。然后将第二命令路由至除了第一访问缓冲器单元以外的所有访问缓冲器单元。分级最高且仍为空闲的访问缓冲器单元接受第二命令。
以这种方式,分发器(102)可以同时在访问模块(110)中放置高达5个命令。始终将访问缓冲器单元的内容放置在最高分级、第一可用空闲访问缓冲器单元中。
当访问模块(110)必须向存储器组(112)传递时,访问模块(110)将直接连接至存储器组(112)的最高分级访问缓冲器单元的内容或适合表示转发至存储器组(112)。所有其他单元现在经由访问缓冲器单元连接将它们的内容向上移动一个分级。
来自分发器(102)的控制信号指示传送了多少个输入。然后访问模块(110)应用适当移位,并实现从分发器至访问模块的对应连接。
尽管结合具体实施例描述了本发明,但是明显的是,根据上述描述,本领域技术人员将想到许多备选方案、修改、置换和变型。因此,本发明意在涵盖落在所附权利要求范围内的所有这种备选方案、修改和变型。

Claims (13)

1.一种数据处理***(100),其中:
-所述***被配置用于在输入(101)处接收第一多个命令,所述多个命令包括多个读取命令,以及在输出(103)处产生第二多个数据对象;
所述***包括:
-多个存储器组(106);
-分发器(102),连接至输入(101)并具有多个分发器输出,并且被配置为在分发器输出之间选择性地分发所述多个读取命令;
-多个访问模块(104),其中的每个特定访问模块具有连接至分发器输出中特定分发器输出的特定模块输入以及连接至存储器组中特定存储器组的特定模块输出,并且被配置为对在特定分发器输出处出现的特定读取命令进行缓冲;以及
-重排网络(108),连接至存储器组的组输出;
-存储器组(106)中每个相应存储器组被配置用于响应于接收到特定读取命令,向重排网络提供特定数据对象,其中:
-重排网络(108)连接至输出(103);以及
-重排网络(108)被配置为重排从多个存储器组(106)接收到的数据对象,以产生所述第二多个数据对象。
2.根据权利要求1所述的数据处理***,其中:
-将第一多个命令组织为第一命令向量序列,
-命令向量中的每个特定命令向量包括根据排序的多个特定命令的特定第一有序集合;
-将多个读取命令组织为第一序列中的第一读取命令向量子序列;
-将第二多个数据对象组织为第二数据对象向量序列;
-数据对象向量中的每个特定数据对象向量包括根据排序的多个特定数据对象的特定第二有序集合;
-其中,所述***响应于处理第一子序列中读取命令向量的下个读取命令向量,产生第二序列中数据对象向量的下个数据对象向量,其中,响应于下个读取命令向量中特定排序的特定读取命令,从存储器组中的特定存储器组获取下个数据对象向量中所述特定排序的特定数据对象。
3.根据前述权利要求中任一项所述的数据处理***,其中,重排网络(108)
-包括重排缓冲器(200),所述重排缓冲器被配置用于对多个存储器组(106)所提供的数据对象进行缓冲;
-其中,重排网络(108)被配置为通过从重排缓冲器(200)选择数据对象来进行重排。
4.根据前述权利要求中任一项所述的数据处理***,其中
-分发器(102)向每个特定读取命令分配特定标签,以及
-每个存储器组响应于具有特定标签的特定读取命令,向获取的特定数据对象分配所述特定标签,
-重排网络(108)被配置为根据向数据对象分配的标签,来选择数据对象。
5.根据权利要求4所述的数据处理***,其中,分发器(102)根据标签序列分配标签,并且重排网络(108)根据所述标签序列选择数据对象。
6.根据前述权利要求中任一项所述的数据处理***,其中:
-第一序列包括至少一个写入命令;
-分发器(102)被配置为在分发器输出之间选择性地分发写入命令;
-多个访问模块(104)中一定数目的特定访问模块被配置为对在特定分发器输出处出现的特定写入命令进行缓冲;
-存储器组(106)中每个相应存储器组被配置用于响应于从相应访问模块接收到特定写入命令,存储特定数据对象。
7.根据前述权利要求中任一项所述的数据处理***,其中
-分发器(102)包括置换器(600);
-每个特定命令包括特定索引;
-置换器(600)被布置为针对每个特定命令,指定与特定索引的处理相对应的特定分发器输出;
-分发器(102)向指定的特定分发器输出分发特定命令。
8.根据权利要求7所述的数据处理***,其中
-置换器(600)还被布置为通过根据地址函数对特定索引进行处理,来计算特定地址;
-每个存储器组被布置为根据特定地址存储或获取特定数据对象;以及其中
-特定索引的处理包括实质上将特定地址与特定索引相加。
9.根据前述权利要求中任一项所述的数据处理***,其中
-分发器(102)包括重新配置模块(700);
-重新配置模块(700)被布置为接收重新配置数据;
-重新配置模块(700)被布置为根据重新配置数据,重新配置分发器(102)的选择性。
10.根据前述权利要求中任一项所述的数据处理***,其中
-分发器(102)还包括停止模块(800),以及其中
-至少一个特定访问模块被布置为向停止模块发信号通知该特定访问模块是否实质上充满,以及其中
-停止模块(800)被布置为暂时防止分发器(102)进行分发。
11.根据前述权利要求中任一项所述的数据处理***,其中,多个存储器组(106)中存储器组的数目是2的幂。
12.一种在根据权利要求1至11中任一项所述的数据处理***中使用的重排数据的方法,该方法包括以下步骤:
-根据第一写入命令集合,写入数据对象集合,
-根据第二读取命令集合,读取所述数据对象集合。
13.一种包括根据权利要求1至11中任一项所述的数据处理***的速率匹配器,其中
-重排网络(108)包括速率匹配模块,
-速率匹配模块被配置为接收速率匹配信息,
-速率匹配模块被布置为指示重排网络(108):重复数据对象;
或者
-省略数据对象;或者
-***数据对象。
CN2009801179139A 2008-05-21 2009-05-19 包括重排网络的数据处理*** Pending CN102037514A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP08104056.0 2008-05-21
EP08104056 2008-05-21
PCT/IB2009/052078 WO2009141787A1 (en) 2008-05-21 2009-05-19 A data handling system comprising a rearrangement network

Publications (1)

Publication Number Publication Date
CN102037514A true CN102037514A (zh) 2011-04-27

Family

ID=41059791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801179139A Pending CN102037514A (zh) 2008-05-21 2009-05-19 包括重排网络的数据处理***

Country Status (4)

Country Link
US (1) US20110066821A1 (zh)
EP (1) EP2283485A1 (zh)
CN (1) CN102037514A (zh)
WO (1) WO2009141787A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436730A (zh) * 2016-05-25 2017-12-05 爱思开海力士有限公司 数据处理***及其操作方法
CN110908843A (zh) * 2018-09-18 2020-03-24 爱思开海力士有限公司 诊断存储器***的设备及其操作方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102480387A (zh) * 2010-11-30 2012-05-30 英业达股份有限公司 机架式服务器装置
EP2466472A1 (en) 2010-12-17 2012-06-20 ST-Ericsson SA Vector-based matching circuit for data streams
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9417816B2 (en) * 2014-01-02 2016-08-16 Advanced Micro Devices, Inc. Partitionable memory interfaces
US9489226B2 (en) * 2014-06-06 2016-11-08 PernixData, Inc. Systems and methods to manage write commands in a cache
US9471501B2 (en) * 2014-09-26 2016-10-18 Intel Corporation Hardware apparatuses and methods to control access to a multiple bank data cache
KR102346629B1 (ko) * 2014-12-05 2022-01-03 삼성전자주식회사 메모리 접근 제어 방법 및 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195627A1 (en) * 2006-02-23 2007-08-23 Hynix Semiconductor Inc. Dynamic semiconductor memory with improved refresh mechanism
CN101032085A (zh) * 2004-09-29 2007-09-05 松下电器产业株式会社 数据交织装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000507016A (ja) * 1996-11-04 2000-06-06 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ メモリの命令を読み出す処理装置
US5938763A (en) * 1997-08-06 1999-08-17 Zenith Electronics Corporation System for transposing data from column order to row order
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
US6678843B2 (en) * 1999-02-18 2004-01-13 Interuniversitair Microelektronics Centrum (Imec) Method and apparatus for interleaving, deinterleaving and combined interleaving-deinterleaving
US7170849B1 (en) * 2001-03-19 2007-01-30 Cisco Systems Wireless Networking (Australia) Pty Limited Interleaver, deinterleaver, interleaving method, and deinterleaving method for OFDM data
US7020827B2 (en) * 2001-06-08 2006-03-28 Texas Instruments Incorporated Cascade map decoder and method
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
EP1401108A1 (en) * 2002-09-12 2004-03-24 STMicroelectronics N.V. Electronic device avoiding write access conflicts in interleaving, in particular optimized concurrent interleaving architecture for high throughput turbo-decoding
JP4097586B2 (ja) * 2003-10-03 2008-06-11 三洋電機株式会社 データ処理装置
JP3985797B2 (ja) * 2004-04-16 2007-10-03 ソニー株式会社 プロセッサ
JP4804175B2 (ja) * 2006-03-02 2011-11-02 株式会社日立製作所 I/oコマンドをキューイングするストレージシステム及びその制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101032085A (zh) * 2004-09-29 2007-09-05 松下电器产业株式会社 数据交织装置
US20070195627A1 (en) * 2006-02-23 2007-08-23 Hynix Semiconductor Inc. Dynamic semiconductor memory with improved refresh mechanism

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436730A (zh) * 2016-05-25 2017-12-05 爱思开海力士有限公司 数据处理***及其操作方法
CN107436730B (zh) * 2016-05-25 2020-11-06 爱思开海力士有限公司 数据处理***及其操作方法
CN110908843A (zh) * 2018-09-18 2020-03-24 爱思开海力士有限公司 诊断存储器***的设备及其操作方法

Also Published As

Publication number Publication date
WO2009141787A1 (en) 2009-11-26
EP2283485A1 (en) 2011-02-16
US20110066821A1 (en) 2011-03-17

Similar Documents

Publication Publication Date Title
CN102037514A (zh) 包括重排网络的数据处理***
CN101540654B (zh) 一种交织速率匹配和解交织解速率匹配方法
CN102037652A (zh) 包括存储器组的数据处理***和数据重排
CN102138129B (zh) 用于数据处理***中的统一高速缓存的错误检测方案
CN101547064B (zh) 一种交织速率匹配和解交织解速率匹配方法
CN103222003B (zh) 用于根据配置信息执行原子存储器操作的存储器及方法
TW200405208A (en) A scalar/vector processor
CN102208966A (zh) 一种harq合并器和harq数据存储方法
CN104364765A (zh) 分布式数据存储***中的数据存储和维护的方法以及对应设备
JP2007102792A (ja) データ処理装置内の可変長プログラム命令の配置構造
Chang et al. Liu
CN101140543B (zh) 支持flash页操作与流水线纠错码的数据交换装置与方法
US20120173829A1 (en) Interleaver and interleaving method
US7870458B2 (en) Parallel arrangement of serial concatenated convolutional code decoders with optimized organization of data for efficient use of memory resources
WO1987006786A1 (en) Data conversion
CN101924608B (zh) 一种实现块交织的方法、装置及发射机
CN109644200A (zh) 在网络中分配数据的特征编码及解码装置及有该装置的网络元素
CN109672524A (zh) 基于粗粒度可重构架构的sm3算***迭代***及迭代方法
CN108984441A (zh) 一种保持数据传送一致性的方法及***
CN108536555A (zh) 一种基于BCube(n,b)数据中心的数据存取方法
CN110651262A (zh) 分层分布式存储***以及用于边缘计算***的技术
CN103314362A (zh) 用于数据流的基于向量的匹配电路
EP0465847B1 (en) Memory access control having commonly shared pipeline structure
EP2751705B1 (en) Digital signal processor and method for addressing a memory in a digital signal processor
CN100438345C (zh) 一种交织装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110427

WD01 Invention patent application deemed withdrawn after publication