无竞争的存储器配置的制作方法

文档序号:6764598阅读:81来源:国知局
无竞争的存储器配置的制作方法
【专利摘要】本发明提供一种包含多个存储块(208)、第一组存取端口(204)以及第二组存取端口(206)的存储器布置(200)。路由电路(209)将所述第一组和第二组存取端口中的每一对耦合到所述存储块中的相应者。每一对包含来自所述第一组的第一存取端口以及来自所述第二组的第二存取端口。所述第一存取端口具有对所述相应存储块的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及具有对所述第二部分的读取存取权,但不具有对所述第一部分的读取存取权。所述第二存取端口具有对所述第二部分的写入存取权,但不具有对所述第一部分的写入存取权,以及具有对所述第一部分的读取存取权,但不具有对所述第二部分的读取存取权。
【专利说明】无竞争的存储器配置

【技术领域】
[0001 ] -或多个实施例大体上涉及数据存储以及检索。

【背景技术】
[0002] 许多网络装置包含桥接口以将数据从一种协议格式转换为另一种协议格式、路由 数据或者执行其它处理。举例来说,桥接口可以经实施以在网络之间转化数据包格式。
[0003] 作为另一实例,桥接口可以用于在网络与计算系统之间转换数据格式。为便于说 明,主要参考经配置以在光学网络与连接到其上的计算系统之间提供接口的网桥来描述实 施例以及实例。
[0004] 为了减少设计以及调试所需的时间和投资,桥接口可以使用可编程集成电路(1C) 来实施,可编程1C包含可经配置以实施电路设计的多个逻辑和路由资源。可编程1C允许 在未将电路设计实现为专用IC(ASIC)的情况下实施、测试以及修改电路设计。以此方式, 可以减少研发时间以及成本。
[0005] 桥接口通常在存储器中缓冲数据包以便高效处理。传统桥接口使用芯片外存储器 (例如,动态随机存取存储器(DRAM))来实施数据缓冲。然而,对于例如那些在光学网络中 采用的高传输速度应用(例如,400Gbps全双工)来说,通常在可编程1C封装中没有足够的 引脚用以补偿因对存储器的存取冲突造成的吞吐量的减少。
[0006] -或多个实施例可以解决以上问题中的一或多者。


【发明内容】

[0007] 存储器布置的一个实施例可包含多个存储块、第一组存取端口以及第二组存取端 口。路由电路可以将第一组和第二组存取端口中的每一对耦合到多个存储块中的相应者。 每一对存取端口可以包含来自第一组的第一存取端口以及来自第二组的第二存取端口。第 一存取端口可以具有对多个存储块中的相应者的第一部分的写入存取权,但不具有对所述 存储块的第二部分的写入存取权,以及可以具有对所述存储块的第二部分的读取存取权, 但不具有对所述存储块的第一部分的读取存取权。第二存取端口可以具有对相应的存储块 的第二部分的写入存取权,但不具有对所述存储块的第一部分的写入存取权,以及可以具 有对所述存储块的第一部分的读取存取权,但不具有对所述存储块的第二部分的读取存取 权。
[0008] 在此实施例中,多个存储块中的每一者的第一部分各自可以专门用于缓冲流出数 据;并且多个存储块中的每一者的第二部分各自可以专门用于缓冲流入数据。多个存储块 可以在多个堆叠的半导体裸片上实施。多个存储块中的每一个可以在多个堆叠的半导体裸 片中的相应者上实施。
[0009] 在此实施例中,存储器布置可以进一步包括插入件,其中多个堆叠的半导体裸片 可以被电耦合到所述插入件正面的触点。多个存储块中的每一个可以包含两个存储片。路 由电路可以包含可经配置以调整在多个存储块与第一组和第二组存取端口之间的一或多 个路径上的时序的可编程延迟电路。对于所述一或多个路径中展现最少时延的路径,不调 整时序。可编程延迟电路可以包含多个多路复用(MUX)可选择路径,MUX可选择路径中的 每一个可以包含不同数目的触发器。对于多个存储块中的每一个,所述存储块的第一部分 和第二部分各自可以包含整数数目的存储体。
[0010] 在此实施例中,路由电路可以包含耦合到多个存储块以及第一组和第二组存取端 口的纵横接线器,所述纵横接线器可以按比存储块的可能的顺序存取速率大的速率来定 时,以减少队头阻塞。多个存储块以及路由电路可经配置以:对于每个存储块,响应于配置 比特流来调整包含在相应的第一部分中的存储块的量以及包含在相应的第二部分中的存 储块的量。在此实施例中,多个存储块中的每一个可以包含:多个存储体,每个存储体可以 具有一或多个存取端口;并且对于每个存储体,相应的选择电路可经配置以将读取请求从 由配置比特流指定的第一组和第二组存取端口的对应对中的一个存取端口转发到存储体 的一或多个存取端口,并且可经配置以将写入请求从第一组和第二组存取端口的对应对中 的另一个存取端口转发到存储体的一或多个存取端口。
[0011] 网络接口电路的实施例可以包含网络侧串行器/解串器(SerDes)电路、耦合到网 络侧SerDes电路的第一组存取端口、系统侧SERDES电路、以及耦合到系统侧SerDes电路 的第二组存取端口。多个存储块以及路由电路可以包含在半导体裸片堆叠上。路由电路可 以使多个存储块耦合到第一组和第二组存取端口。对于每个存储块,相应的第一存取端口 可以具有对所述存储块的第一部分的写入存取权,但不具有对所述存储块的第二部分的写 入存取权,以及可以具有对所述存储块的第二部分的读取存取权,但不具有对所述存储块 的第一部分的读取存取权。第二存取端口可以具有对相应的存储块的第二部分的写入存取 权,但不具有对所述存储块的第一部分的写入存取权,以及可以具有对所述存储块的第一 部分的读取存取权,但不具有对所述存储块的第二部分的读取存取权。
[0012] 在此实施例中,路由电路可以包含纵横接线器,所述纵横接线器按比存储块的顺 序存取可进行的速率还大两倍的速率来定时。每个存储块的第一部分各自可以专门用于缓 冲流出数据;并且每个存储块的第二部分各自可以专门用于缓冲流入数据。对于每个存储 块,所述存储块中的第一部分和第二部分各自可以包含整数数目的存储体。
[0013] 桥接口电路的实施例可以包含经配置以第一数据格式接收并且传输数据的第一 收发器电路。第二收发器电路可经配置以第二格式接收并且传输数据。转换电路可以耦 合到第一和第二收发器电路。所述转换电路可经配置以将数据从第一格式转化为第二格 式,并且将数据从第二格式转化为第一格式。存储器电路可以耦合到所述转换电路。所述 存储器电路可以包含多个存储块、第一组存取端口、第二组存取端口、以及路由电路,所述 路由电路将第一组和第二组存取端口中的每一对耦合到多个存储块中的相应者。第一组和 第二组存取端口中的每一对存取端口可以包含来自第一组存取端口的第一存取端口以及 来自第二组存取端口的第二存取端口。第一存取端口各自可以具有对多个存储块中的相应 者的第一部分的写入存取权,但不具有对所述存储块的第二部分的写入存取权,以及可以 具有对所述存储块的第二部分的读取存取权,但不具有对所述存储块的第一部分的读取存 取权。第二存取端口各自可以具有对相应的存储块的第二部分的写入存取权,但不具有对 所述存储块的第一部分的写入存取权,以及可以具有对所述存储块的第一部分的读取存取 权,但不具有对所述存储块的第二部分的读取存取权。
[0014] 在此实施例中,转换电路可经配置以:仅通过第一端口组在第一收发器电路与存 储器电路之间路由数据;以及仅通过第二端口组在第二收发器电路与存储器电路之间路由 数据。第一端口组可以定位得比第二端口组更接近第一收发器;并且第二端口组可以定位 得比第一端口组更接近第二收发器。
[0015] 一种方法的实施例可以包括:将第一组存取端口和第二组存取端口中的每一对耦 合到多个存储块中的相应者,第一组和第二组存取端口中的每一对可以包含来自第一组存 取端口的第一存取端口以及来自第二组存取端口的第二存取端口;将第一组存取端口中的 每一个配置为具有对多个存储块中的相应者的第一部分的写入存取权,以及具有对多个存 储块中的所述相应者的第二部分的读取存取权;将第一组存取端口中的每一个配置为不具 有对多个存储块中的所述相应者的第一部分的读取存取权,以及不具有对多个存储块中的 所述相应者的第二部分的写入存取权;将第二组存取端口中的每一个配置为具有对多个存 储块中的所述相应者的第二部分的写入存取权,以及具有对多个存储块中的所述相应者的 第一部分的读取存取权;以及将第二组存取端口中的每一个配置为不具有对多个存储块中 的所述相应者的第二部分的读取存取权,以及不具有对多个存储块中的所述相应者的第一 部分的写入存取权。
[0016] 所述方法的此实施例可以进一步包括:对于每个存储块,响应于配置比特流来调 整包含在相应的第一部分中的存储块的量以及包含在相应的第二部分中的存储块的量。
[0017] 鉴于下文的【具体实施方式】以及所附权利要求书将认识到其它实施例。

【专利附图】

【附图说明】
[0018] 在审阅以下详细描述并且参考附图时,所揭示的实施例的各种方面以及优点将变 得显而易见,附图中:
[0019] 图1绘示根据一或多个实施例使用可编程1C实施的网络接口的框图;
[0020] 图2绘示存储器架构的框图;
[0021] 图3绘示被分区为用于流入数据以及用于流出数据的相应存储体组的存储块;
[0022] 图4绘示可经配置以控制对经分区存储片的存储体的读取/写入端口的存取的电 路的框图;
[0023] 图5绘示根据一或多个实施例可以用于在端口组与存储器之间路由数据的路由 电路的框图;
[0024] 图6绘示根据一或多个实施例使用多个堆叠在可耦合到集成电路的插入件上的 裸片来实施的存储器布置的侧视图;以及
[0025] 图7绘示可以根据一或多个实施例配置的实例可编程1C。

【具体实施方式】
[0026] 对于高速桥接口应用,通常在可编程1C封装中没有足够可供使用的引脚以补偿 因存储器存取冲突导致的吞吐量的减少。然而,对于桥接口的存储器容量需求通常足够低 (例如,1GB到2GB),使存储器能使用当前处理技术集成在可编程1C封装内。前述桥接口实 施方案利用控制逻辑来仲裁存储器存取从而避免存取冲突。然而,在可编程1C中实施此类 控制逻辑需要许多可编程资源,并且因此减少了可用以实施桥接口逻辑的可编程资源的数 目。一或多个实施例提供一种无冲突的高效存储器布置。由于系统是无冲突的,因此不需 要可编程资源来实施仲裁电路。
[0027] 在一或多个实施例中,提供用于无冲突存储器存取的存储器布置。存储器布置实 施高效的路由系统来直接存取特定的存储器地址,因此无需仲裁。
[0028] 图1绘示根据一或多个实施例使用可编程1C实施的桥接口的框图。在此实例中, 网桥接口 1〇〇是使用可编程1C 102来实施。可编程1C 102包含用于以由网络使用的第 一协议格式传输并且接收数据的第一集合的串行器/解串器(SerDes)收发器电路106,以 及用于以由系统使用的第二协议格式传输并且接收数据的第二集合的SerDes收发器电路 110。为了便于参考,从网络接收的用于传输到系统侧的数据可以被称为流入数据,而从系 统接收的用于传输到网络的数据可以被称为流出数据。在此实例中,箭头120以及122描 绘通过流入存储缓冲器104A的流入数据流。箭头124以及126描绘通过流出存储缓冲器 104B的流出数据流。可编程资源108用以实施转换电路109,转换电路109将数据在第一 协议格式与第二协议格式之间转化,并且将流入数据路由到相应的存储缓冲器104A并从 其路由出,以及将流出数据路由到相应的存储缓冲器104B并从其路由出。
[0029] 图2绘示根据一或多个实施例可以用于实施桥接口电路的存储器架构200的框 图。从网络接收的数据以及导向网络的数据经由第一端口组204(端口组A)写入到存储 器208并从存储器208中读取,而从系统接收的数据以及导向系统的数据经由第二端口组 206(端口组B)写入到所述存储器并从所述存储器中读取。存储器架构将两个端口组的端 口组织成对,并且将每一对的存储器存取限制到存储器的相应分区。在此实例中,所述存储 器被分区成四个存储块,每个存储块包含一对存储片。举例来说,路由电路209经配置以仅 允许端口 1A和端口 1B存取由存储片1A和1B组成的第一存储块。作为另一实例,只有端 口 2A和2B才被允许存取由存储片2A和2B组成的第二存储块。对于每一个端口组对,使 用对应块的存储片中的第一者来处理流入数据,而使用所述块的存储片中的第二者来处理 流出数据。举例来说,在一个实施方案中,对于包含端口 1A和1B的端口组对,使用存储片 1A来处理流入数据,而使用存储片1B来处理流出数据。只要所述存储块的存储片各自经实 施以赋予对端口组对(例如,1A和1B)的一个端口的独占式写入存取权以及对所述端口组 对的另一个端口的独占式读取存取权,就可以使用数据块的不同部分(也即,不同存储片) 来处理流入数据以及流出数据,以防止在端口组对中的端口竞争对存储器的所述部分的读 取或写入存取权。以此方式,可以以无冲突的方式来处理流入以及流出数据。
[0030] 尽管以上实例将存储块各自分区为用于流入数据的一个存储片和用于流出数据 的一个存储片,但应认识到在一或多个实施例中,存储块各自可以经分区以将不同数量的 存储器用于流入和流出数据。举例来说,在许多应用中,流入数据缓冲可能比流出数据缓冲 需要更多的存储器来缓解拥塞。图3绘示根据一或多个实施例被分区为用于流入数据和流 出数据的相应组存储体的存储块。存储块302和304图示存储块的一些不同分区布置。在 此实例中,存储块302和304各自包含两个相应的存储片(例如,存储片1A和1B),所述两 个存储片一起包括在0x000000到OxFFFFFF范围内的地址空间。
[0031] 每一个存储片(例如,存储片1A)包含可以被独立存取的四个存储体(例如,存储 体5到8)。举例来说,每一个存储体可以是多端口存储器(例如,一读取一写入存储器)。 存储块302和304可以在存储体之间的任何地址边界进行分区。向右的箭头表示用于流入 数据的存储体,而向左的箭头表示用于流出数据的存储体。在此实例中,存储块302和304 中的每一个经分区以为流出数据分配两个存储体和为流入数据分配六个存储体。存储块 302在边界306处分区为连续的两组存储体。在边界306下方的地址用于流入数据,在边界 上方的地址用于流出数据。在另一个实施例中,可以在存储块的存储体之间以任何方式来 分区。举例来说,如在存储块304中所图示,存储片2B中的存储体1到3以及存储片2A中 的存储体5、6和8用于流入数据;存储片2B中的存储体4和存储片2A中的存储体7用于 流出数据。
[0032] 应理解用于实施每一个存储块的存储器电路具有可以用于从所述存储器电路的 存储单元读取或向所述存储器电路的存储单元写入的多个端口。为了区分个别存储器电路 的端口以及端口组A和B的端口,存储器电路的端口可被称为内部端口。为了提供用于经 分区存储片的独占式读取和写入存取,存储片各自是使用两个内部写入端口来实施:一个 内部写入端口对应端口组(例如,端口组A和端口组B)的各个端口。这样能使来自端口组 A的端口向存储片的第一分区写入数据,并且来自端口组B的端口向存储片的第二分区写 入数据,而不发生竞争。同样地,存储片各自具有两个内部读取端口。取决于用以实施存储 片的存储器的读取和写入内部端口的配置,存储片各自可以具有两个内部端口,每一个端 口能够读取和写入("2RW");或者存储片各自可以具有两个专用读取端口和两个专用写入 端口( "2R2W")。
[0033] 在一或多个实施例中,存储片可以取决于特定应用的要求而动态分区为流入和流 出部分。举例来说,每一个存储片的存储体可以是1R1W存储器。每一个存储体的内部读取 和写入端口可以被独立编程以通过一个端口组来读取并且通过一个不同的端口组来写入。 此类可配置性要求从两个端口组(例如,存储片的内部端口)到存储片中的每个存储体的 内部端口的读取和写入地址的可编程连接。
[0034] 图4绘示可经配置以控制对经分区存储片的存储体的读取存取权的电路的框图。 对每个存储体的写入存取可以按类似方式实施。在此实例中,存储体(例如,402)各自具 有读取启用控制输入端(RE)和读取地址输入端(RA)。RE输入端耦合到2:1多路复用器 (例如,406)的输出端。多路复用器406基于配置信号(例如,Config[0])选择启用信号以 输入到相应的存储体。此2:1多路复用器406的两个输入端响应于来自端口 1A中的端口 的读取请求信号以及来自端口 1B的读取请求信号。对多路复用器的选择输入为静态信号 (Config[0]或简称"Config"),其选择此存储体是应由端口 1A还是端口 1B读取。在初始化 过程中设置Config信号(例如,作为现场可编程门阵列(FPGA)配置比特流的一部分)。仅 当读取地址(例如,RAddr_PlA或RAddr_PlB)的存储体地址(BA)是相应的存储体(例如, 402)的存储体地址时,"与"门408才将对应于端口 1A和1B的启用信号RE_P1A和RE_P1B 转发到多路复用器406。
[0035] 对存储体402的读取地址端口同样通过多路复用器404多路复用。多路复用器 404基于Config信号选择地址信号(例如,RAddr_PlA或RAddr_PlB)。举例来说,响应于 Config[0]为0,存储体402仅可通过端口 1A而不是端口 1B读取,而响应于Config[0]为1, 存储体402仅可通过端口 1B而不是端口 1A读取。此选择信号有效地忽略非法读取地址。 类似逻辑可以用于检测存取违规并生成错误信号。错误信号可以用于向例如存储器控制器 等外部电路发送信号,表示读取/写入请求被拒绝存取存储器。
[0036] 在一或多个实施例中,相应的每一对端口(例如,图2的端口 1A和1B)对存储块 的存储器存取是通过为每一对端口实施路由系统来执行。图5绘示根据一或多个实施例可 以用于在一对端口 502与具有存储片1A和1B的存储块506之间路由数据的路由电路504 的框图。路由电路504以蝶形布局来配置,其中提供从一对端口 502的每一个端口到存储 块506的每一个分区(也即,存储片1A和1B)的读取路径和写入路径。
[0037] 取决于信号路径各自的长度,在端口之间经由存储器路由流入或流出数据可能造 成不同量的延迟。出于说明性目的,在图5中提供虚线图示的触发器516、518、522、524、526 和528以直观地表示通过存储片1A的路径的延迟。应理解路由电路实际上并不包含这些触 发器。实际上,虚线图示的触发器各自表示一个时钟周期的信号传播延迟。同样,通过存储 片1B的路径的延迟是通过虚线图示的触发器542、544、546、548、550和552来描绘。在此 实例中,对角线路径更长,且因此造成更多延迟。如果未加以校正,路径长度的差异可能使 得从两个不同存储器位置读取的数据同时到达一对端口 502中的端口 1A,从而产生冲突, 或以错误的次序到达。举例来说,假设存储片1A的位置接近存取端口 502且存储片1B距 存取端口 502的距离较远。如果第一个流入数据包被写入存储片1B并随后从存储片1B读 取(例如,在长信号路径上写入和读取),而下一个流入数据包被写入存储片1A并随后从存 储片1A读取(例如,在短信号路径上写入和读取),则第二个流入数据包可以在第一个流入 数据包之前被输出。
[0038] 为了避免冲突以及乱序数据,在一对存取端口 502之间的流入和流出路径各自可 以包含可编程延迟电路,以调整流入和流出路径的延迟并且减少延迟变化。在此实例中,两 个多路复用器(MUX)可选择路径(例如,510和560)实施可编程延迟电路中的每一个。对于 每一个流入和流出路径,路由电路504包含触发器(560、562、564和566)以提供可以用于 校正的额外延迟。相应的MUX(570、572、574 和 578)根据相应的控制信号(延迟调整l-4) 所指示将数据从MUX可选择路径中的一者路由出。以此方式,可以补偿各种路径的传播延 迟变化。
[0039] 图5中所示的路由电路504实施在存取端口 502和存储块506之间的固定路由, 以避免如上文所论述的存储器存取冲突。一或多个实施例可以使用例如纵横接线器等动 态路由电路来实施类似的路由限制。在一或多个实施例中,使用纵横接线器来路由并缓冲 一个端口的数据,同时另一个端口正在同一周期中试图向同一存储器地址写入。为提供充 足的吞吐量,所述纵横接线器可以按至少两倍于对存储块可进行的存取速率的速率来定 时。如果数据包由于存取冲突而在端口处缓冲,那么所述纵横接线器能够在下一周期中路 由缓冲的数据包以及任何新的数据包(假定所述数据包将写入不同的存储器位置)。关 于纵横接线器的拥塞使用以减少竞争影响(例如队头阻塞)的具体内容在桑达尔?耶尔 (Sundar Iyer)和尼克?麦克欧文(Nick McKeown)的"论多播并行包交换所需的加速(On the Speedup Required for a Multicast Parallel Packet Switch),',IEEE 交流快报,第 5卷,第6号,第269页(2001年6月)中进一步解释,其内容在此充分体现。
[0040] 在一或多个实施例中,参考以上实例论述的无竞争的存储器布置可以使用在一或 多个裸片上的ASIC电路来实施,所述一或多个裸片可以在可编程1C上堆叠。由于存储器 布置与可编程1C分开实施,因此可编程1C的更多可编程资源可用于实施电路设计。
[0041] 图6绘示根据一或多个实施例使用堆叠于插入件上的多个裸片来实施的存储器 布置的侧视图,所述插入件可耦合到集成电路。插入件606将存储器布置602的触点电耦 合到存取所述存储器布置的1C 604。所述插入件包含插入件主体610,其中具有在所述主 体中形成的多个硅通孔(TSV) 612。在插入件主体610的背面上形成具有多个焊球触点614 的触点阵列。焊球触点614被耦合到TSV中的相应者。一或多个布线层616实施多个电路 路径,其将TSV耦合到第二触点阵列的相应接触垫618。第二触点阵列经布置以与存储器布 置602的微凸块触点620对齐。由于插入件可易于重新设计和实施以调整在IC604与存储 器布置602之间的路由,因此1C 604的电路的置放和路由(在1C中)不用考虑存储器布 置602的哪些微凸块620对应于哪些特定的端口组。这能使1C 604的置放和路由得以更 最佳地进行,并且使存储器布置602的布局易于与在1C 604上实施的多种设计一起使用。 尽管主要参考使用插入件将存储器布置602连接到1C 604来描述所述实例和实施例,但应 认识到存储器布置602可以不使用插入件直接耦合到1C 604。
[0042] 存储器布置602的存储器裸片可以按多个替代配置来布置和连接。举例来说,实 施存储器布置的裸片可以布置在多个裸片的单个堆叠中或具有一或多个裸片的多个堆叠 中。在图6的实例中,存储器布置被描绘为在两个堆叠中实施。参照图1到4论述的路由 电路可以配置成多个替代的裸片堆叠布置。举例来说,在左侧堆叠中,存储器裸片632A和 632B堆叠在实施路由电路的1C裸片630上。因为是在裸片630中实施路由,所以路由电路 可以经配置和建构以与存储器裸片的不同配置兼容。作为另一实例,右侧堆叠的存储器裸 片640A和640B中的每一个实施存储器布置602的一些存储块和路由电路。由于每一对端 口具有对存储块的独占式存取权,因此每一对端口独立于其它端口进行操作。其结果是,不 同端口组对的存储器和对应路由电路可以在堆叠裸片中的不同者中实施。
[0043] 图7绘示可以根据一或多个实施例配置的实例可编程1C。所示出的可编程1C被 称为现场可编程门阵列(FPGA)。FPGA可以在阵列中包含若干不同类型的可编程逻辑块。 举例来说,图7示出包含许多不同可编程单元片(tile)的FPGA架构(700),所述可编程 单元片包含多千兆位收发器(MGT 701)、可配置逻辑块(CLB 702)、随机存取存储块(BRAM 703)、输入/输出块(I0B704)、配置和时钟逻辑(C0NFIG/CL0CKS 705)、数字信号处理块 (DSP 706)、专门化输入/输出块(I/O 707)(举例来说,例如,时钟端口)、以及例如数字时 钟管理器、模/数转换器、系统监视逻辑等其它可编程逻辑708。一些FPGA还包含专用的处 理器块(PR0C 710)及内部和外部重配置端口(未示出)。
[0044] 在一些FPGA中,可编程单元片各自包含与每个邻近单元片中的对应互连元件标 准化地连接的可编程互连元件(INT 711)。因此,可编程互连元件一起实施所示出的FPGA 的可编程互连结构。可编程互连元件INT 711还包含与同一单元片内的可编程逻辑元件的 连接,如图7的顶部处所包含的实例所示。
[0045] 举例来说,CLB 702可以包含可经编程以实施用户逻辑的可配置逻辑元件CLE 712加上单个可编程互连元件INT 711。除一或多个可编程对接元件之外,BRAM 703还可 包含BRAM逻辑元件(BRL 713)。通常,包含在单元片中的互连元件的数目取决于所述单元 片的高度。在所描绘的实施例中,BRAM单元片具有等于五个CLB的高度,但也可使用其它 数目(例如,四个)。除适当数目的可编程互连元件之外,DSP单元片706还可以包含DSP 逻辑元件(DSPL714)。除可编程互连元件INT 711的一个执行个体(instance)之外,Ι0Β 704还可以包含(例如)输入/输出逻辑元件(I0L 715)的两个执行个体。所属领域的技 术人员将清楚,连接到(例如)I/O逻辑元件715的实际I/O垫是使用在各种所示出的逻辑 块上方的分层金属来制造,并且通常不局限于输入/输出逻辑元件715的区域。
[0046] 在所描绘的实施例中,接近裸片中心的柱状区域(图7中示出为阴影)被用于配 置、时钟以及其它控制逻辑。从此柱延伸的水平区域709用于在FPGA的整个广度上分配时 钟和配置信号。
[0047] 一些利用图7中所示出架构的FPGA包含使组成FPGA的大部分的普通柱状结构中 断的额外逻辑块。所述额外逻辑块可以是可编程块和/或专用逻辑。举例来说,图7中所 示的处理器块PR0C 710横跨若干列CLB和BRAM。
[0048] 应注意,图7旨在仅仅说明示例性FPGA架构。在图7顶部处包含的一列中逻辑块 的数目、列的相对宽度、列的数目以及次序、包括在列中的逻辑块的类型、逻辑块的相对大 小,以及互连/逻辑实施方案纯粹为示例性的。举例来说,在实际的FPGA中,在任何出现 CLB的地方通常包括超过一个相邻的CLB列,以便于用户逻辑的有效实施。
[〇〇49] 所述实施例被认为适用于使用存储器的多种应用。在考虑本说明书后,其它方面 和实施例对于所属领域的技术人员将显而易见。所述实施例可以实施为经配置以执行软件 的一或多个处理器、专用集成电路(ASIC)或在可编程逻辑装置上的逻辑。希望仅将本说明 书和所示出的实施例视作实例,其中本发明的真实范围由所附权利要求书来指定。
【权利要求】
1. 一种存储器布置,其包括: 多个存储块; 第一组存取端口及第二组存取端口; 路由电路,其将所述第一组存取端口和所述第二组存取端口中的每一对耦合到所述多 个存储块中的相应者,所述第一组存取端口和所述第二组存取端口中的每一对包含来自所 述第一组存取端口的第一存取端口及来自所述第二组存取端口的第二存取端口;且 其中: 第一存取端口各自具有对所述多个存储块中的所述相应者的第一部分的写入存取权, 具有对所述多个存储块中的所述相应者的第二部分的读取存取权,但不具有对所述多个存 储块中的所述相应者的所述第一部分的读取存取权,及不具有对所述多个存储块中的所述 相应者的所述第二部分的写入存取权;以及 第二存取端口各自具有对所述多个存储块中的所述相应者的所述第二部分的写入存 取权,具有对所述多个存储块中的所述相应者的所述第一部分的读取存取权,但不具有对 所述多个存储块中的所述相应者的所述第二部分的读取存取权,及不具有对所述多个存储 块中的所述相应者的所述第一部分的写入存取权。
2. 根据权利要求1所述的存储器布置,其中: 所述多个存储块中的每一者的第一部分各自专门用于缓冲流出数据;以及 所述多个存储块中的每一者的第二部分各自专门用于缓冲流入数据。
3. 根据权利要求1或2所述的存储器布置,其中所述多个存储块在多个堆叠的半导体 裸片上实施。
4. 根据权利要求3所述的存储器布置,其中所述多个存储块中的每一个在所述多个堆 叠的半导体裸片中的相应者上实施。
5. 根据权利要求3或4所述的存储器布置,其进一步包括: 插入件,其中所述多个堆叠的半导体裸片被电耦合到所述插入件的正面上的触点。
6. 根据权利要求1到5中任一权利要求所述的存储器布置,其中所述多个存储块中的 每一个包含两个存储片。
7. 根据权利要求1到6中任一权利要求所述的存储器布置,其中所述路由电路包含可 编程延迟电路,其经配置以调整在所述多个存储块与所述第一组存取端口和所述第二组存 取端口之间的一或多个路径上的时序。
8. 根据权利要求7所述的存储器布置,其中对于所述一或多个路径中展现最少时延的 路径,不予以调整时序。
9. 根据权利要求7所述的存储器布置,其中所述可编程延迟电路包含多个多路复用 (MUX)可选择路径,所述多路复用可选择路径中的每一个包含不同数目的触发器。
10. 根据权利要求1到9中任一权利要求所述的存储器布置,其中对于所述多个存储块 中的每一个,所述存储块的所述第一部分和所述第二部分各自包含整数数目的存储体。
11. 根据权利要求1到9中任一权利要求所述的存储器布置,其中所述路由电路包含 耦合到所述多个存储块及所述第一组存取端口和所述第二组存取端口的纵横接线器,所 述纵横接线器按比所述存储块的顺序存取可进行的速率还大的速率来定时,以减少队头 (head-〇f-line)阻塞。
12. 根据权利要求1到11中任一权利要求所述的存储器布置,其中所述多个存储块以 及所述路由电路可经配置以: 对于每个存储块,响应于配置比特流来调整包含在相应的所述第一部分中的所述存储 块的量以及包含在相应的所述第二部分中的所述存储块的量。
13. 根据权利要求12所述的存储器布置,其中所述多个存储块中的每一个包含: 多个存储体,每个存储体具有一或多个存取端口;以及 对于每个存储体,相应的选择电路经配置以将读取请求从由所述配置比特流指定的所 述第一组存取端口和所述第二组存取端口中的对应对的一个存取端口转发到所述存储体 的所述一或多个存取端口,并且经配置以将写入请求从所述第一组存取端口和所述第二组 存取端口中的所述对应对的另一个存取端口转发到所述存储体的所述一或多个存取端口。
14. 一种方法,其包括: 将第一组存取端口和第二组存取端口中的每一对耦合到多个存储块中的相应者,所述 第一组存取端口和所述第二组存取端口中的每一对包含来自所述第一组存取端口的第一 存取端口及来自所述第二组存取端口的第二存取端口; 将所述第一组存取端口中的每一个配置为具有对多个存储块中的相应者的第一部分 的写入存取权,及具有对所述多个存储块中的所述相应者的第二部分的读取存取权; 将所述第一组存取端口中的每一个配置为不具有对所述多个存储块中的所述相应者 的所述第一部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第二部 分的写入存取权; 将所述第二组存取端口中的每一个配置为具有对所述多个存储块中的所述相应者的 第二部分的写入存取权,及具有对所述多个存储块中的所述相应者的所述第一部分的读取 存取权;以及 将所述第二组存取端口中的每一个配置为不具有对所述多个存储块中的所述相应者 的所述第二部分的读取存取权,及不具有对所述多个存储块中的所述相应者的所述第一部 分的写入存取权。
15. 根据权利要求14所述的方法,其进一步包括: 对于每个存储块,响应于配置比特流来调整包含在相应的所述第一部分中的所述存储 块的量以及包含在相应的所述第二部分中的所述存储块的量。
【文档编号】G11C5/04GK104106115SQ201280069104
【公开日】2014年10月15日 申请日期:2012年9月28日 优先权日:2011年12月7日
【发明者】艾弗伦·C·吴, 珍娜许·萨拉利雅 申请人:吉林克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1