首页> 中国专利> 具有多端口存储器超元与数据路径开关电路的集成电路

具有多端口存储器超元与数据路径开关电路的集成电路

摘要

本发明提供了一种集成电路。该集成电路包括多个存储器请求器和一个存储器超元。该存储器超元包括多个存储器组,每个存储器组形成对应范围的可单独寻址的存储位置,其中,所述存储器超元被组织成多个组群。所述多个组群中的每一个都包括所述多个存储器组的子集和对应的专用访问端口。该集成电路还包括耦接在所述多个存储器请求器和所述存储器超元之间的开关。该开关被配置为,响应于所述多个存储器请求器中的一个给定存储器请求器的存储器请求,连接该给定存储器请求器与所述多个组群中由所述存储器请求寻址的一个特定组群的专用访问端口之间的数据路径。

著录项

  • 公开/公告号CN101971498A

    专利类型发明专利

  • 公开/公告日2011-02-09

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN201080001246.0

  • 发明设计人 S·希尤;B·P·莉莉;

    申请日2010-02-12

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人邹姗姗

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 01:52:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-05-07

    授权

    授权

  • 2011-03-23

    实质审查的生效 IPC(主分类):H03K17/693 申请日:20100212

    实质审查的生效

  • 2011-02-09

    公开

    公开

说明书

技术领域

本发明涉及集成电路,尤其是涉及集成电路中存储器与所关联访问路径的布置。

背景技术

计算机与其它类型的电子系统常常包括具有若干个不同层的存储器层次结构。在这些层中,可以包括非易失性存储设备(例如,硬盘存储设备)、随机存取存储器(RAM)及一级或多级高速缓冲存储器。基于处理器的系统可以包括具有一个或多个核的处理器,其中这一个或多个核中的每一个都包括一个或多个高速缓冲存储器。例如,许多处理器包括至少一个具有可以位于存储器层次结构的顶部的指令高速缓存和数据高速缓存的处理器核。位于存储器层次结构顶部的高速缓冲存储器可以被称为第一级(或者L1)高速缓存。许多处理器还包括第二级(或者L2)高速缓存,其可以由处理器核的数据和指令高速缓存共享,此外,还可以由多核处理器中的多个处理器共享。

当在集成电路(IC)上提供时,这些类型存储器中的一些(例如,L2高速缓存)可以被组织成称为存储器超元(memory supercell)的结构。存储器超元是共享公共接口(有时候称为“分接点”)的存储器组(memory bank)的2维阵列(例如,多行和多列的存储器组)。特别地,当设计IC时,每个存储器组可以是如下单元的形式,即该单元在IC管芯(die)上的位置和与其它定义的单元(cell)和/或其它功能性单元(functional unit)的互连可以通过IC设计工具操纵。存储器超元仅是互连以形成更大、统一的、可以类似地通过设计工具定位到IC上的存储器单元的这种存储器组单元的集合。

在这种存储器超元中,给定的地址映射到超元的一个组。在写操作过程中传输到超元的信息可以被接口接收,然后路由到存储器组中由映射到该组的地址所指示的位置。类似地,当执行读操作时,信息可以从超元的一个存储器组中寻址到的位置路由到接口,并由此路由到请求设备。

发明内容

公开了一种集成电路。在一种实施方式中,该集成电路包括多个存储器请求器和一个存储器超元。该存储器超元包括多个存储器组,其中每个存储器组形成对应范围的可单独寻址的存储位置,其中所述存储器超元被组织成多个组群。所述多个组群中的每一个都包括所述多个存储器组的子集和一个对应的专用访问端口。该集成电路还包括耦接在所述多个存储器请求器和所述存储器超元之间的开关。该开关被配置成,响应于所述多个存储器请求器中的一个给定存储器请求器的存储器请求,连接该给定存储器请求器与所述多个组群中由该存储器请求寻址到的一个特定组群的专用访问端口之间的数据路径。

附图说明

在阅读了以下具体描述并参考附图的情况下,本发明的其它方面将变得显而易见,附图中:

图1是一种实施例的集成电路的框图;

图2是一种实施例的存储器超元的框图;

图3是另一种实施例的存储器超元的框图;

图4是集成电路的框图,该框图更详细地例示了一种实施例的开关单元;

图5是例示了一种实施例的集成电路的更多细节的框图;

图6是例示了一种实施例的包括多个处理器核和一对存储器超元的集成电路的框图;及

图7是例示了另一种实施例的包括多个处理器核和一对存储器超元的集成电路的框图。

尽管本发明容许各种修改和可选形式,但其特定的实施例作为例子在附图中示出,并将在此详细描述。然而,应当理解,附图及对其的描述不是要将本发明限定到所公开的特定形式,相反,本发明是要覆盖落入由所附权利要求定义的本发明主旨与范围内的所有修改、等价物和可选方式。

具体实施方式

现在转向图1,示出了一种实施例的集成电路的框图。在所例示的实施例中,集成电路(IC)10包括请求器22、24、26和28,每个请求器都耦接到控制单元15和开关单元20。IC 10还包括耦接到开关单元20的存储器超元18。在有些实施例中,图1中所示的IC 10的各个部件可以在单个IC管芯上实现。在所示实施例中,开关单元20物理地位于存储器超元18和请求器22至28之间(并在它们的外部)。

请求器22至28中的每一个都代表需要访问位于其外部的存储器(例如,存储器超元18)的任何子系统或者设备。这种访问可以包括读访问、写访问或者二者兼有。在有些实施例中,请求器22至28中的每一个都可以是相同的功能单元(例如,包括例如指令高速缓存和数据高速缓存的对称多核处理器的核,等等)。在其它实施例中,请求器22至28中的至少一个可以与其它的请求器不同(例如,不对称多核处理器中的核)。请求器的特定数量可以依实施例而不同,并且可以大于或者小于在此所示出的。少至只有一个请求器的实施例也是可能的和预期的。

在所示实施例中,存储器超元18包括多个存储器组19。如以上所讨论的,在IC的设计阶段,每个存储器组可以定义为可由设计工具操纵的单元。以其概念,存储器超元18同样可以定义成允许其位置和到其它单元(cell)或功能性单元(functional unit)的互连由设计工具来操纵。在所示实施例中,存储器超元18包括存储器组19的二维阵列。该布置使得至少两个存储器组19在第一方向(例如,行)布置,而至少两个存储器组19在第二方向(例如,列)布置。二维阵列的每个方向中的存储器组19的特定数量可以依实施例而不同。每个存储器组19可以形成对应范围的可单独寻址的存储位置。存储器访问请求可以各自寻址到这些可单独寻址的存储位置中的一个或者多个。

图1中的存储器超元18通过端口21(有时候称为“分接点”)耦接到开关单元20,在本实施例中端口21被标记为端口0和端口1。如以下将要讨论的,图1中所示的多个存储器组19可以被组织成单独的存储器组群。数据(如在此所使用的,术语“数据”旨在包括指令)到或自给定组群中的组的传输可以排他地通过与该特定组群相关联的端口21发生,而数据到或自另一组群的传输通过另一个端口发生,下面将更详细地对其进行讨论。

所示实施例中的每一个请求器22至28都配置成向控制单元15提供指示访问存储器超元18的请求的信号。当提供访问存储器超元18的请求时,特定的请求器22至28可以向控制单元15提供指示要被访问的地址及指示请求是读请求还是写请求的信息。控制单元15被配置成响应性地确定用于在由请求所识别的存储器位置和对应请求器之间传送数据的路径。特别地,控制单元15可以被配置成确定开关单元20中用以在与所请求的存储器位置相关联的存储器超元18的端口和对应请求器之间形成路径的各个片段。响应于从控制单元15接收控制信号,开关单元20被配置成选择在请求器和与请求相关联的存储器超元18的端口之间形成路径的片段。

控制单元15还可以直接向组群提供包括所请求的存储器位置的某些控制信号。这种控制信号可以包括使能信号(例如,读使能,写使能)和选择信号(例如,用于选择与请求相关联的组和地址)。在接收到多个未完成的访问请求的情况下,控制单元15可以执行区分优先次序功能,以便确定执行请求的次序。

现在转向图2,示出了一种实施例的存储器超元18的框图。图2还例示了多个存储器组19中具有代表性的一个。在所示实施例中,存储器超元18包括被组织成四行两列的八个存储器组19。存储器超元18进一步组织成四个存储器单元,在这里称为组群0、组群1、组群2和组群3。这些组群中的每一个都包括耦接到对应的I/F单元185的对应端口21,例如,组群0包括端口0,而端口0耦接到I/F 0,依此类推。给定存储器群的每个端口21专用于该群的存储器组19。类似地,给定存储器群的每个I/F单元185专用于该群的存储器组19。例如,到或自组群0的任何存储器组的数据传输是通过端口0和I/F 0发生的,而到或自存储器组群3的任何存储器组的数据传输是通过端口3和I/F 3发生的。每个I/F单元185都提供了用于在该特定组群的存储器组和该特定存储器群的对应端口21之间传送数据的接口。每个I/F单元185可以包括配置成在访问该组的位置过程中在给定存储器组19和对应端口21之间路由数据的开关电路(例如,复用器、解复用器,等等)。在有些实施例中,每个I/F单元185还可以向其特定的组群的存储器组19提供地址信息和/或其它控制信号。然而,其中地址信息和控制信号由其它功能性单元提供(例如,直接来自图1的控制单元15)的实施例也是可能的和预期的。

在所示实施例中,相比于到与其它组群相关联的那些端口21,给定组群中的每个存储器组19物理上更靠近其关联的端口21。例如,相比于到与组群1-3中任何一个相关联的那些端口,组群0的存储器组19物理上更靠近端口0。与其中单个端口可能以别的方式提供用于存储器超元(并由此用于单个端口接口单元)的实施例相对比,图2中所示出的布置可以使得将数据从外部位置驱动至存储器超元18中给定存储器组19/将数据从存储器超元18中给定存储器组19驱动至外部位置的距离最小化。还应当指出,形成每个I/F单元185的电路可以物理地在给定组群的存储器组19之间的中央位置提供。

当在诸如IC 10的集成电路中实现时,存储器超元18的每个端口21可以耦接为通过第一路径从开关单元20接收数据,并耦接为通过第二路径向开关单元提供数据(即,在其中单向路径用于写数据和读数据的实施例中)。因此,如以下将进一步讨论的,这种布置可以允许同时的读和写操作,其中,信息写到第一组群中的存储器位置,并从第二组群中的存储器位置读取。

如以上所指出的,图2还例示了一种实施例的代表性的存储器组19。对于在存储器超元18中的实现,其它类型的存储器组也是可能的和预期的。在所示实施例中,存储器组19包括按照行和列的阵列布置的多个存储器位单元。给定行中的存储器位单元通过字线彼此耦接,而给定列中的存储器位单元通过位线彼此耦接。在所示实施例中,每个存储器位单元耦接到单个位线,尽管其中存储器位单元耦接到两个位线(例如,为了传送真的和补充的数据)的实施例也是可能的和预期的。

所示实施例中的存储器组19包括地址解码器191和I/O单元192。地址解码器191耦接成从外部源(例如,从I/F单元185或者从以上所讨论实施例的控制单元15)接收地址,并配置成解码所接收到的地址。I/O单元192可以包括用于从存储器单元读取信息和/或将信息写到存储器单元的各种电路。例如,在一种实施例中,I/O单元192包括多个感测放大器,其中每个感测放大器都耦接到对应的位线。I/O单元192还可以包括多个驱动器电路,其中每个驱动器电路都耦接到对应的位线。

在所示实施例中,地址解码器191被配置成解码地址,以便激活对应于其的字线。当被激活时,给定的字线可以使耦接到其的存储器单元对其对应的位线成为透明的(即,选择被解码地址的存储器单元)。在读操作过程中,存储在所选存储器单元中的数据可以被I/O单元192的感测放大器感测并从存储器组19驱动到对应的I/F单元185(因此也驱动到对应的端口21)。在写操作过程中,数据可以被I/O单元192中的驱动器电路接收,并由此写到所选的存储器单元中。当读或写操作完成时,所选存储器单元的字线被去激活,因此存储最近写到存储器单元中的数据。

图3是另一种实施例的存储器超元18的框图。在这种特定的实施例中,存储器超元18包括两个存储器组群,而不是图2的实施例中所示的四个组群。因此,图3的存储器超元18包括两个端口21和两个I/F单元185。这种特定实施例中的每个组群包括四个存储器组19。

总的来说,根据本公开内容,存储器超元18可以按照广泛多种配置来实现。每个存储器超元可以包括多个组群,其中每个组群包括多个存储器组。每个组群可以包括各自专用于该特定组群的一个端口和一个I/F单元(即,给定端口专用于传送写到或者读自对应组群的数据(即,不向/从其它组群传送数据))。而且,相比于到与其它组群相关联的端口,特定组群的存储器组可以物理上更靠近与该组群相关联的端口。这可以减小其中数据在组群中的特定存储器组和该组群的端口之间驱动的距离,并由此减小到给定存储器请求器的总距离。减小数据被驱动的总距离量可以使得功耗相对较低,还可以减小与数据传输相关联的等待时间。

图4是更详细地例示了一种实施例的开关单元20的IC 10的图。为了简化,图4中与以上所讨论的附图中的元件对应的元件标以相同的标号。应当指出,其中,如图4中所示的存储器超元18可以根据图2的配置或者图3的配置来实现。

在所示实施例中,开关单元20包括多个选择电路202,而且还包括多个片段205和210。为了简化,只标记出了代表性片段。片段205形成多个片段中的第一个子集,而且可用于从请求器22至28向存储器超元18的选定组群传送信息(写数据)。片段210形成多个片段中的另一个子集,而且可用于从存储器超元18的选定组群向一个请求器22至28传送信息(读数据)。因此,片段205在第一方向是单向的,而片段210在第二方向是单向的。每个片段可以包括多个信号线(例如,导体),其中信息位在信号线上传送,以便在存储器超元18和一个请求器22至28之间传输数据。

这种实施例中的每个选择电路202被配置成将多个片段中特定的一些片段电耦接到这多个片段中至少其他一个片段。在所示实施例中,每个选择电路202被配置成执行复用功能。更特别地,这种实施例中的每个选择电路202被配置成选择两个片段中的一个片段以电耦接到其他一个片段。通常,开关单元20的各种实施例可以利用执行复用功能、解复用功能、选通功能或者其各种组合的选择电路202来实现。执行复用功能的选择电路202可以将两个或更多个输入片段耦接到第三个(输出)片段。执行解复用功能的选择电路202可以将输入片段耦接到两个或更多个输出片段中的一个。执行选通功能的选择电路202可以在启用时将输入片段耦接到输出片段。

尽管本文没有明确地示出,但所示实施例中的每个选择电路202都耦接成从控制单元15接收一个或多个控制信号。更特别地,这种实施例中的每个选择电路202都耦接成至少接收指示两个对应输入片段中的哪一个电耦接到对应输出片段的选择信号。在有些实施例中,每个选择电路202还可以耦接成接收使能信号。当选择电路202用于在一个请求器22至28和存储器超元18的一个组群0至3之间形成路径时,使能信号可以断言为启用选择电路202。当选择电路202未使用时,提供给该选择电路202的使能信号可以被去断言(de-assert)。当禁用时,选择电路202可以使输出片段的信号线置为高阻抗状态。

由于所示实施例将多个片段划分成单独的第一子集和第二子集(即,分成包括片段205的第一子集和包括片段210的第二子集),因此可以支持同时的读和写。例如,数据可以从请求器22写到组群0的一个位置,同时由请求器28从组群3读取数据。在有些实施例中也可以支持涉及单个组群和/或单个请求器的同时读和写。例如,在这种实施例中,请求器24可以将数据写到组群1中的一个位置,同时从组群2中的一个位置读取数据。在另一个例子中,一种这样的实施例可以支持请求器26将数据写到组群2的第一个位置中,而请求器24同时从组群2的第二个位置读取数据。如以上所指出的,控制单元15可以被配置成执行区分优先顺序功能,而且因此可以在支持这些同时访问的实施例中调度同时的读和写访问。控制单元15还可以被配置成在某些情况下(例如,如果存在从相同存储器位置的读和写请求)阻止同时的读和写。

图5是例示了对请求器和存储器组群之间的路径的选择的例子的框图。文本所示出的例子是基于图4的实施例,因此图5中所示的元件与图4中对应的元件标以相同的标号。在这个例子中所示出的路径包括由虚线指示的片段和对应的参考标记。不具有对应参考标记的、示为实线的其它片段不是这个例子中所指示路径的一部分。

在图5所示的例子中,请求器22通过由片段205D和205E形成的第一路径耦接到组群0。相应地,请求器22被耦接成将信息写到位于组群0中的存储器位置。在这同一个例子中,请求器26通过由片段210E、210F和210G形成的第二路径被耦接到组群2。相应地,这个例子中的请求器26被耦接成从组群2读取数据。这些路径可以如图所示配置成使得,请求器22将数据写到组群0中的一个位置,而请求器26同时从组群2中的一个位置读取数据。从存储器超元18的第一位置读取数据而同时向其另一个位置写数据的能力可以使得能够进行有效的整体操作。然而,这个例子中所示的路径可以配置成使得能够在不同的、非同时的时间进行以上所提到的读和写操作。

图5所示的例子使得,当将数据从请求器22驱动到组群0的端口0时,数据只在将请求器22电连接到端口0的那些片段205上驱动。类似地,所示的例子使得,当将数据从组群2驱动到请求器26时,数据只在将端口2电连接到请求器26的那些片段210上驱动。通常,在所示实施例中,当给定的请求器要将数据写到存储器超元18中的一个位置时,数据只在发起请求器和与数据要写到的存储器位置相对应的端口之间电连接的那些片段205上驱动。类似地,在所示实施例中,当给定的请求器要从存储器超元18的一个位置读取数据时,数据只在与要读取数据的存储器位置相关联的端口和发起请求器的输入之间电连接的那些片段210上驱动。因此,可以提供相对短的数据路径,由此使得对应于数据的信号被驱动的距离更短。这继而又可能使得功耗相对较低。

通常,开关电路20被配置成使得特定的选择电路202选择多个片段205来使得能够进行从任何一个请求器22至28到任何一个组群0至3的写操作。类似地,开关电路20被配置成使得特定的选择电路202选择多个片段210来使得能够由任何一个请求器22至28进行从任何一个组群0至3的读操作。根据请求的类型(读或者写)和请求的位置,可以在控制单元15的指示下执行对特定片段的选择。当不存在冲突(例如,不试图同时从相同的地址读和写)时,可以执行同时的读和写操作。

现在转向图6,示出了一种实施例的在集成电路上实现的处理器系统的框图,该集成电路具有多个处理器核和存储器超元。在所示实施例中,处理器100包括第一处理器核101和第二处理器核102。处理器核101和102中的每一个都耦接到开关单元20。开关单元20继而又耦接到由存储器超元181和182一同形成的L2高速缓存180。形成开关单元20的电路可以物理地位于图中所示的L2高速缓存180和处理器核对之间。尽管在这里为了简化没有示出,但处理器100还可以包括类似于以上所述实施例中的控制单元15的控制单元。

处理器核101包括指令高速缓存111、数据高速缓存112和核接口113。类似地,处理器核102包括指令高速缓存121、数据高速缓存122和核接口123。在这种实施例中,处理器核101和102的指令和数据高速缓存形成第一级(L1)高速缓存。在这种实施例中,核接口113和123是配置成从对应的L1高速缓存向L2高速缓存180写信息的高速缓存回写单元。核接口113和123还可以包括附加的接口功能,使得它们对应的处理器核和其它功能性单元之间能够通信。

在这种特定的实施例中,处理器核101和102执行如上讨论的请求器的角色。在它们作为请求器的角色中,处理器核101和102可以通过到其对应的指令或数据高速缓存的输入来从存储器超元181和182接收数据。在这种实施例中,信息可以通过其对应的核接口从处理器核101和102输出。然而,应当指出,其中图中所示的每个指令高速缓存、数据高速缓存和核接口本身能够执行请求器角色的实施例也是可能的和预期的。因此,当这些单元执行作为请求器的角色时,它们可以发起导致数据向L2高速缓存180传输和/或从L2高速缓存180接收数据的访问请求。

如上所述,在图6中所示的实施例中,L2高速缓存180包括第一存储器超元181和第二存储器超元182。图6中所示的每个存储器超元181和182都是类似于图2所示的存储器超元18的实施例来配置的。即,每个存储器超元181和182各自包括具有两个存储器组的四个组群,每个组群包括其自己的存储器端口21和其自己的I/F单元185。

在这种实施例中,所示实施例中的高速缓存线可以跨两个存储器超元181和182存储(例如,对于64字节的高速缓存线,给定高速缓存线的32个字节可以在存储器超元181的对应存储器组中存储,而剩余的32个字节可以在存储器超元182的对应存储器组中存储)。因此,存储器系统100可以支持到存储器超元181中的组群的存储器位置的写,同时到存储器超元182中的组群的存储器位置的写。类似地,存储器100还可以执行从存储器超元181的组群中的存储器位置的读,同时从存储器超元182的组群中的存储器位置的读。在各种实施例中,处理器系统100可以允许对不同高速缓存线的同时读和写。因此,该实施例的处理器100可以支持与两个写操作(对于第二高速缓存线,一个是到存储器超元181的而另一个是到存储器超元182的)同时执行的两个读操作(对于第一高速缓存线,一个是从存储器超元181而另一个是从存储器超元182)。

图7是例示了另一实施例的处理器系统的框图。在这种特定的实施例中,L2高速缓存180的存储器超元181和182各自是根据以上所讨论的图3的配置来实现的。每个组群包括对应的端口21和对应的I/F单元185。就象关于以上所讨论的实施例,高速缓存线的传输可以包括同时从两个存储器超元181和182读取,或者写到存储器超元181和182。

尽管已经参考特定实施例对本发明进行了描述,但是应当理解,实施例是例示性的,而且本发明的范围不受限于此。对所述实施例的任何变化、修改、添加和改进都是可能的。这些变化、修改、添加和改进落入如以下权利要求中详述的本发明的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号