数据处理系统中数据处理的方法和集成电路的制作方法

文档序号:6543447阅读:172来源:国知局
数据处理系统中数据处理的方法和集成电路的制作方法
【专利摘要】本申请涉及数据处理系统中数据处理的方法和集成电路。统一请求队列包括用于为多种类型的请求服务的多个条目。统一请求队列条目中的每一个条目一般都可分配给多种请求类型中任意一种类型的请求。在统一请求队列中为多种类型请求中的第一种请求类型预留多个条目。基于由于统一请求队列中的条目分配给其它请求而被统一请求队列拒绝的第一种请求类型的请求数量,动态改变为第一种请求类型预留的条目数量。
【专利说明】数据处理系统中数据处理的方法和集成电路

【技术领域】
[0001] 本发明一般涉及数据处理,具体地涉及在统一请求队列中通过为队列条目实现动 态预留来确保请求种类之间的公平。

【背景技术】
[0002] 传统的多处理器数据处理系统包括由易失性存储器层次支持的多个处理器核,其 中易失性存储器层次在它的高层包括一个或多个高速缓存存储器层次并且在它的低层包 括一个或多个系统存储器。每个系统存储器传统地都是由相关联的存储器控制器控制并且 访问的,其中存储器控制器经由系统总线参与同高速缓存层次的相干通信。
[0003] 传统的存储器控制器设计采用或者统一请求队列或者分叉请求队列,所述统一请 求队列缓冲在相同队列结构的条目中散布的读和写请求,所述分叉请求队列在分开的队列 结构中缓冲读和写请求。传统的统一请求队列根据先来先得(FCFS)的原则把队列条目分配 给存储器访问请求,因此使得最多所有的队列条目都被只分配给读请求或者只分配给写请 求。相对于同等深度的分叉设计,该灵活性在条目分配中为给定类型的请求提供了增强的 能力,使得存储器控制器能够用较少的重试甚至不需要重试来处理读或写突发的时间段。 FCFS条目分配的一个缺点是:随着时间的推移,读或写请求可能不会得到对统一请求队列 条目的数字上的公平使用。在某些以前的设计中,该公平性问题通过在统一请求队列中为 读请求静态地预留预定数量的条目并且在统一请求队列中为写请求静态地预留预定数量 的条目来解决;但是,静态预留条目否定了统一请求队列所期望的灵活性。
[0004] 关于统一请求队列条目分配的公平性问题不限于给各种类型存储器访问请求的 条目分配数量上简单的数字上的平等。源自于以下的事实会出现其它的公平性问题,即统 一请求队列条目中读和写请求的生命期会有很大的不同,同样由不同类型的请求消耗的数 据带宽也会有很大的不同。这些额外的问题会导致在统一请求队列的利用上更不平衡。


【发明内容】

[0005] 在至少一个实施例中,统一请求队列包括用于为多种类型的请求服务的多个条 目。统一请求队列中的每一个条目一般都可分配给多种请求类型中任意一种类型的请求。 在统一请求队列中为多种类型请求中的第一种请求类型预留多个条目。基于由于统一请求 队列中的条目分配给其它请求而被统一请求队列拒绝的第一种请求类型的请求数量,动态 改变为第一种请求类型预留的条目数量。

【专利附图】

【附图说明】
[0006] 图1是根据一种实施例的示例性数据处理系统的高层框图;
[0007] 图2是根据一种实施例的图1存储器通道接口(MCI)的更详细的视图;
[0008] 图3是根据一种实施例的图1存储器缓冲器(MB)的更详细的视图;
[0009] 图4是根据一种实施例的图2MCI的控制逻辑的更详细的视图;
[0010] 图5是根据一种实施例在统一请求队列中动态确定预留的示例性方法的高层逻 辑流程图;
[0011] 图6是根据一种实施例在统一请求队列中分配条目的示例性方法的高层逻辑流 程图;以及
[0012] 图7是示例性设计过程的数据流程图。 具体实施例
[0013] 现在参考附图并且尤其参考图1,图1说明了示例性数据处理系统100的高层框 图,该示例性数据处理系统是根据本文所公开原理和技术的数据处理系统的许多可能的实 施例中的一个。数据处理系统100可以用例如一台IBM Power服务器实现,IBM Power服 务器是纽约Armonk的国际商业机器公司的产品线。
[0014] 在所绘实施例中,数据处理系统100包括至少一个系统级芯片(S0C) 102,以及如 由省略符号所指示的,可能包括通过集成在S0C102中的系统架构130耦合的多个S0C102。 每个S0C优选地实现为具有如本领域已知的构成半导体电路系统的衬底的单一集成电路 芯片。每个S0C102包括多个独立处理指令和数据的处理器核104。在某些实施例中,处理 器核104还支持其中多个独立线程并发执行的同时多线程。每个处理器核104包括指令序 列单元(ISU) 106,其用于获取指令、排序用于执行的指令、以及通过把执行结果提交给处理 器核104的结构化状态来完成指令。ISU106通过参考全局完成表(GCT)完成指令。
[0015] 每个处理器核104还包括用于执行指令的一个或多个执行单元,其中指令是诸如 像定点和浮点运算指令、逻辑指令以及对数据处理系统100连续地址空间中目标存储器块 分别请求读和写访问的加载类型和存储类型指令。尤其,执行单元包括执行加载类型和存 储类型指令来计算读和写存储器访问操作的目标地址的加载存储单元(LSU) 108。LSU108 包括可以满足读存储器访问操作的存储-通过(store-through) -级(L1)高速缓存110, 以及跟踪在L1高速缓存110中丢失的读存储器访问操作的加载丢失队列(LMQ) 112。
[0016] 每个处理器核104的操作都通过多级分层处理器子系统支持,其中存储器子系统 在它的最底层具有由数据处理系统100中S0C102的任意一个中的处理器核104的任意一 个通常可以访问的一个或多个共享系统存储器140 (例如,大容量DRAM),并且在它的最高 层具有一级或多级高速缓存存储器。如所绘的,S0C102包括一个或多个(并且优选地多个) 存储器通道接口^(:1)132,它们中的每一个都支持响应从相同50(:102或其它50(:102中的 处理器核104经由系统架构130接收到的存储器访问操作而对系统存储器140的相关联集 合的读和写访问。在所绘实施例中,每个MCI132都经由外部存储器缓冲器(MB)134耦合到 其相关联的系统存储器140集合。这样,MCI 132和MB134的每一对就形成分布式存储器控 制器。
[0017] 在说明性实施例中,支持S0C102的每个处理器核104的高速缓存存储器层次包括 以上所述的存储-通过一级(L1)高速缓存110以及私有的存储-在(store-in)二级(L2) 高速缓存120。如示出的,L2高速缓存120包括L2阵列122以及L2控制器124,其中控制 器包括控制逻辑和L2阵列122内容的目录126。L2控制器124响应从相关联的处理器核 104接收到的存储器访问(和其它)请求而在系统构架130上初始化操作和/或访问L2阵 列122。在一种实现基于监听的一致性协议的实施例中(除非另作说明,否则将如在下文假 定的),L2控制器124在系统构架130上附加地检测操作,提供合适的一致性响应,并且执 行监听操作所需要的对L2阵列122的任意访问。尽管说明的高速缓存层次只包括两级高 速缓存,但是本领域技术人员将理解,备选的实施例可以包括其它私有或共享、芯片上或芯 片外、内联或后备的高速缓存的层次(L3,L4等),所述层次可以完全包含、部分包含、或者不 包含高速缓存较高层次的内容。
[0018] S0C102还包括支持经由一个或多个外部通信链路152与一个或多个I/O (输入/ 输出)控制器进行I/O通信的一个或多个集成I/O接口 150,其中I/O控制器诸如是PCI主 机桥(PHB)、InfiniBand控制器、FibreChannel控制器等。本领域技术人员将理解,数据处 理系统100可以包括许多附加的或可替代的组件,由于它们对本文阐述的本发明的理解不 是必需的,所以相应地没有在图1中进行说明或在此进一步讨论。
[0019] 现在参考图2,其中绘出了根据本发明一个实施例的图1的一个存储器通道接口 (MCI) 132的更详细的视图。在所绘实施例中,MCI132经由下行(S卩,朝向系统存储器140) 请求及数据接口 202和204以及上行(S卩,朝向系统构架130)控制和数据接口 206和208 耦合到系统构架130。请求接口 202从系统构架130接收各种操作的读和写存储器访问请 求。如图2指示的,请求接口 202上接收到的每个存储器访问请求包括例如指示操作的存 储器访问请求是否有效的有效字段201、指示存储器访问请求事务类型(例如,读、写和/或 可能的其它类型)的事务类型(TType)字段203、以及指定存储器访问请求的目标存储器块 地址的请求地址字段205。数据接口 204通过写存储器访问请求从系统构架130接收要写 入到相关联的系统存储器140集合的数据。利用控制和数据接口 206和208经由系统构架 130把请求的数据返回到各种请求源(例如,处理器核104和I/O控制器150)。
[0020] MCI132包括响应从系统构架130接收到的存储器访问操作而控制对相关联的系 统存储器140集合访问的控制逻辑200。响应在系统架构130上接收到存储器访问操作请 求,控制逻辑200通过参考存储器访问请求的有效字段201和请求地址字段205确定存储 器访问请求是否是有效的并且指定由所述MCI132控制的系统存储器140集合中的目标地 址。如果不是,那么就丢弃该存储器访问请求。但是,如果控制逻辑200证实并且使存储器 访问请求有资格发向与它相关联的系统存储器140中的一个以及在它的统一请求队列中 有条目可用,那么控制逻辑200在它的统一请求队列中缓冲存储器访问请求(如参考图4-6 更详细讨论的),并且随后如果有存储器访问请求及相关联的写数据的话,通过把它们从统 一请求队列传输到帧格式化器210来为该存储器访问请求服务。
[0021] 如果有存储器访问请求和写数据的话,帧格式化器210响应接收到它们来把存储 器访问请求和写数据(如果有的话)格式化成一个或多个帧并且把所述帧经由下行存储器 缓冲器接口 212传输到耦合到S0C102的存储器缓冲器134。如将理解的,基于多种因素的 实现之间帧格式会差别很大,其中所述因素包括实现下行存储器缓冲器接口 212和相应的 上行存储器缓冲器接口 214可用的引脚数。
[0022] 如图2进一步所示,MCI132附加地包括帧解码器220,其经由上行存储器缓冲器 接口 214从耦合到S0C102的存储器缓冲器134接收帧。帧解码器220把这种帧解码以便 提取被上行传输的数据以及相关联的控制信息。循环冗余校验(CRC)检测器222在帧上附 加地执行CRC (例如,奇偶校验或其它CRC处理)与由帧检测器220执行的处理并行来验证 所述帧在从存储器缓冲器134的传输中没有被损坏。响应CRC检测器222发出帧没有被损 坏的信号,帧检测器220转发从帧中提取的控制信息,诸如识别数据所属操作的数据标签 以及指示数据是否包含错误的数据错误指示符。控制逻辑200接收由帧解码器220提取的 控制信息并且经由上行控制接口 206把控制信息转发到系统构架130。MCI132附加地包括 用于由帧解码器220提取的上行数据的两条数据路径:(1)用于为目标存储器块的关键字 和其它高优先级数据传输选择的快速路径226,和(2)包括用于缓冲低优先级数据的数据 缓冲器224的缓冲数据路径。多路复用器228应用所选择的仲裁策略来从用于在系统构架 130上传输的两条数据路径中的一条选择数据,但是为了最小化访问延迟,在不使缓冲数据 路径饥饿(starving out)的情况下,优先地从快速路径226选择数据。
[0023] 现在参考图3,其中说明了根据一个实施例的图1的存储器缓冲器134的更详细 的视图。在说明的实施例中,存储器缓冲器134包括从MCI 132经由下行存储器缓冲器接口 212接收帧的帧解码器300。帧解码器300解码帧并且确定把每个存储器访问请求发给多 个附加的系统存储器140中的哪一个。因此,在所绘例子中,其中附加的系统存储器140至 少包括系统存储器140a和140b,帧解码器300确定存储器访问请求是否指定了给系统存储 器140a或给系统存储器140b分配的目标地址,并且相应地把存储器访问请求转发给控制 器302a或控制器302b用于提供服务。控制器302a和302b通过把适当的读或写访问发到 系统存储器140a和140b中相关联的一个来为从控制器302a,302b接收的存储器访问请求 提供服务。
[0024] 存储器缓冲器134附加地包括用于每个所附连的系统存储器140a,140b的相应的 读通道310a,310b。读通道310a,310b中每个都包括优选地对从系统存储器140a,140b中相 关联的一个读取的所有数据执行检错和纠错处理的ECC校验电路312a,312b。读通道310a, 310b中每一个还包括快速路径316a,316b,为了降低存储器访问延迟,利用快速路径从系 统存储器140a,140b中相关联的一个读取的选择的数据区组(granule)也允许旁路ECC校 验电路312a,312b。例如,在一个实施例中,其中采用四区组把存储器块从系统存储器140 传送到处理器核104,四个数据区组中只有前三个允许投机性地旁路ECC校验电路312,而 所有四个区组也总是通过ECC校验电路312路由,以便能够用最后的区组把指示存储器块 是否包含错误的数据错误指示符方便地上行转发。然后,由于也通过ECC校验电路312路 由的该四个数据区组的前三个已经经由快速路径316a,316b被转发,所以把它们丢弃。为 了允许经由快速路径316a,316b传输的数据以最小延迟被转发,读通道310a,310b中每一 个附加地包括数据缓冲器314a,314b,用于缓冲通过ECC校验电路312a,312b在需要时输出 的较低优先级数据。每个读通道310a,310b中的多路复用器318a,318b应用所选择的仲裁 策略来从数据缓冲器314a,314b和快速路径316a,316b中选择用于转发的数据。在不使缓 冲数据路径饥饿的情况下,仲裁策略优选地从快速路径316a,316b中选择数据。
[0025] 存储器缓冲器134的读通道310a,310b都耦合到由通道仲裁器322控制的多路复 用器320的输入。通道仲裁器322应用期望的仲裁策略(例如,修改的轮询)来一般地提升 读通道310a,310b之间的公平性,同时给快速路径数据的数据传输优先。由通道仲裁器322 选择的每个数据传输都由帧格式化器330接收,其中帧格式化器把数据传输格式化为一个 或多个帧并且在由CRC产生器332附加校验值之后经由上行存储器缓冲器接口 214把那些 帧传输到耦合到存储器缓冲器134的MCI132。
[0026] 现在参考图4,其中绘出了根据一个实施例的图2的MCI132的控制逻辑200的更 详细的视图。如示出的,控制逻辑200包括具有多个条目402a-402n的统一请求队列400, 用于缓冲针对相关联的系统存储器140的读或写存储器访问请求。在所绘例子中,通常可 分配给任意类型的存储器访问请求的每个条目402包括指示条目402有效性的有效字段 404、指示存储器访问请求的事务类型(例如,读或写)的TType字段406、和指定存储器访问 请求的目标存储器块的地址的请求地址字段408以及为写存储器访问请求而缓冲要写入 系统存储器140的数据的数据字段410。
[0027] 为了管理统一请求队列400中的条目402的预留和分配,控制逻辑200包括相关 联的计数器420-432集合。具体而言,写重试计数器420计数由MCI132监听的、由于统一 请求队列400中缺少可用队列条目402而给出重试响应的写存储器访问请求的数量。类似 地,读重试计数器422计数由MCI132监听的、由于统一请求队列400中缺少可用队列条目 402而给出重试响应的读存储器访问请求的数量。响应窗口重置计数器424到期(例如,溢 出),以例如每1000-5000时钟周期一次的频率周期性地重置写重试计数器420和读重试计 数器422。
[0028] 在控制逻辑200中实现的计数器还包括写条目预留计数器426和读条目预留计数 器428,它们分别指示统一请求队列400中为写请求和读请求预留了多少条目。在优选实施 例中,控制逻辑200把写条目预留计数器426和读条目预留计数器428都初始化为0,其指 示存储器访问队列400中任何空闲条目402都初始地可用于分配给任意类型的存储器访问 请求。如下所述,基于对条目402的竞争,控制逻辑200周期性地并且动态地增加和/或减 少为读和/或写请求预留的条目402的数量。在优选实施例中,写条目预留计数器426和 读条目预留计数器428实现为饱和计数器,其中每一个计数器都分别在预定的最小值(例 如,〇)和预定的最大值时变得饱和,其中预定的最大值优选地小于统一请求队列400中条 目402的总数。
[0029] 控制逻辑200还包括写条目可用计数器430和读条目可用计数器432,分别指示 统一请求队列400中可用于分配给写请求和读请求的条目402的数量。由控制逻辑200维 护的写条目可用计数器430中的计数等于未使用条目402的数量减去为读请求预留的未使 用条目402的数量(基于读条目预留计数器428的当前值)。类似地,由控制逻辑200维护 的读条目可用计数器432中的计数等于未使用条目402的数量减去为写请求预留的未使用 条目402的当前数量(基于写条目预留计数器426的值)。因此,写条目可用计数器430和 读条目可用计数器432在统一请求队列400条目402的分配上递减,在统一请求队列条目 402解除分配上递增(S卩,当存储器访问请求被转发到存储器缓冲器134用于服务时),并且 随着为其它请求类型预留的条目的数量动态改变而递减或者递增。
[0030] 现在参考图5,其中说明了根据一个实施例的在统一请求队列中动态确定预留的 示例性方法的高层逻辑流程图。说明的方法可以通过例如MCI132的控制逻辑200实现来 为统一请求队列400中的写请求和读请求确定预留的条目402,如通过写条目预留计数器 426和读条目预留计数器428分别指示的。
[0031] 图5的过程在块500开始,然后前进到块502,其说明MCI132的控制逻辑200等待 窗口重置计数器424到期(例如,溢出)。响应窗口重置计数器424到期,过程前进到块504 和514。在块504,控制逻辑200确定写重试计数器420的写重试计数是否满足(例如,大于) 写重试阈值。响应没有满足写重试阈值的判定,控制逻辑200递减写条目预留计数器426 (块506)。可代替的,响应满足写重试阈值的判定,控制逻辑200递增写条目预留计数器426 (块508)。如上所述,在优选实施例中,写条目预留计数器426实现为饱和计数器,意味着其 值在预定的最小值(例如,0)和预定的最大值时都饱和,其中预定的最大值优选地小于统一 请求队列400中条目402的总数。在块506或块508之后,控制逻辑200更新读条目可用 计数器432中指示的可用读条目的计数,如在块510所示出的。控制逻辑200附加地重置 写重试计数器420,如在块512所示出的。
[0032] 现在参考块514,控制逻辑200确定读重试计数器422的读重试计数是否满足(例 如,大于)读重试阈值。响应没有满足读重试阈值的判定,控制逻辑200递减读条目预留计 数器428 (块516)。可代替的,响应满足读重试阈值的判定,控制逻辑200递增读条目预留 计数器428 (块518)。如上所述,在优选实施例中,读条目预留计数器428实现为饱和计数 器,意味着其值在预定的最小值(例如,〇)和预定的最大值时都饱和,其中预定的最大值优 选地小于统一请求队列400中条目402的总数。在块516或块518之后,控制逻辑200更 新在写条目可用计数器430中指示的可用写条目的计数,如在块520所示出的。控制逻辑 200附加地重置读重试计数器422,如在块522所示出的。图5的过程从块512和522前进 到块524并且终止。
[0033] 现在参考图6,其中绘出了根据一个实施例的在统一请求队列中分配条目的示例 性方法的高层逻辑流程图。图6的过程可以通过例如MCI132的控制逻辑200执行,以便在 统一请求队列400中把条目402分配给监听的存储器访问请求。
[0034] 图6的过程在块600开始并且前进到块602,其说明控制逻辑200经由系统构架 130等待接收存储器访问请求。响应经由系统构架130监听存储器访问请求,控制逻辑200 在块604确定所监听的存储器访问请求是否有效,并且由监听的存储器访问请求指定的请 求地址205以位于由包括MCI132的分布式存储器控制器控制的系统存储器140中的一个 位置为目标。控制逻辑200可以通过例如参考有效位204来确定存储器访问请求是否有效, 并且能通过例如参考未说明的基地址寄存器设施或利用哈希函数来确定请求地址205是 否以相关联的系统存储器140为目标。在块604响应确定所监听的存储器访问请求是无效 的或者存储器访问请求的请求地址205不是以相关联的系统存储器140中的位置为目标, 控制逻辑200丢弃存储器访问请求,如在块606所示出的。然后,图6的过程在块620结束。
[0035] 回到块604,响应所监听的存储器请求是有效的并且所监听的存储器访问请求的 请求地址205以相关联的系统存储器140中的位置为目标的判定,过程绕过块608。块608 绘出了控制逻辑200,其中控制逻辑200通过例如参考写条目可用计数器430和读条目可 用计数器432中相关的一个,确定统一请求队列400中是否有条目402可用于分配给所监 听的事务类型的存储器访问请求。响应于控制逻辑200在块608确定在统一请求队列400 中没有条目402可用于分配给所监听的存储器访问请求,控制逻辑200递增写重试计数器 420和读重试计数器422中相关的一个,并且提供重试(Retry)-致性响应来邀请发出存储 器访问请求的请求者在以后的时间尝试存储器访问请求(块610)。应当理解,即使在统一请 求队列400中有可用的一个或多个未使用条目402,也提供该重试一致性响应,以防其中一 个或多个未使用条目402被预留用于分配给其它请求类型的请求。在典型的情形中,如果 请求者响应重试一致性响应而确实重试存储器访问请求,那么由于在统一请求队列400中 缓冲的存储器访问请求的一个或多个被转发到存储器缓冲器134并且从统一请求队列400 中去除,因此条目402将在存储器访问请求被再次发出时可能是可用的。块610之后,图6 的过程在块620终止。
[0036] 返回块608,响应控制逻辑200确定统一请求队列400中的条目402可用于分配给 存储器访问请求,控制逻辑200在系统构架130上提供Ack -致性响应,发出它接受存储器 访问请求用于服务的信号,如在块612所示出的。此外,控制逻辑200在统一请求队列400 的可用条目402中安装存储器访问请求。在块614,控制逻辑200还通过递减由写条目可用 计数器430和读条目可用计数器432中(假设计数值还不是0)每一个所指示的可用队列条 目的数量,反映给存储器访问请求分配条目402。此后,图6的过程在块620结束。
[0037] 现在参考图7,其中说明了用在例如半导体1C逻辑设计、仿真、测试、布局和制造 中的示例性设计流程700的框图。设计流程700包括用于处理设计结构或设备以便生成以 上所述设计结构和/或设备的逻辑或者以别的方式功能上等效的表示的过程、机器和/或 机制。被设计流程700处理和/或生成的设计结构可以在机器可读的传输或存储介质上编 码,以便包括当在数据处理系统上被执行或以别的方式处理时生成硬件部件、电路、设备或 系统的逻辑、结构、机械或以别的方式功能上等效的表示的数据和/或指令。机器包括但不 限于,用在1C设计过程中的任何机器,诸如设计、制造或仿真电路、部件、设备或系统。例 如,机器可以包括:光刻机、用于生成掩模的机器和/或装备(例如,电子束书写机)、用于仿 真设计结构的计算机或装备、用在制造或测试过程中的任何装置、或者用于把设计结构的 功能等效表示编程到任何介质中的任何机器(例如,用于编程可编程门阵列的机器)。
[0038] 设计流程700可以取决于被设计的表示类型而变化。例如,用于构建专用1C (ASIC)的设计流程700可能不同于用于设计标准组件的设计流程700,或不同于用于将设 计实例化到可编程阵列,例如由Altera? inc.或Xilinx? Inc.提供的可编程门阵列 (PGA)或现场可编程门阵列(FPGA)中的设计流程700。
[0039] 图7说明了多个这样的设计结构,其中包括优选地由设计过程710处理的输入设 计结构720。设计结构720可以是由设计过程710生成和处理以产生硬件设备的逻辑上等 效的功能表示的逻辑仿真设计结构。设计结构720还可以或备选地包括数据和/或程序指 令,所述数据和/或程序指令由设计过程710处理时,生成硬件设备的物理结构的功能表 示。无论表示功能和/或结构设计特性,均可以使用例如由核心开发人员/设计人员实施 的电子计算机辅助设计(ECAD)生成设计结构720。当在机器可读数据传输、门阵列或存储 介质上编码时,设计结构720可以由设计过程710内的一个或多个硬件和/或软件模块访 问和处理,以仿真或以其它方式在功能上表示诸如上面示出的那些电子组件、电路、电子或 逻辑模块、装置、设备或系统。因此,设计结构720可以包括文件或其它数据结构,其中包括 人类和/或机器可读源代码、编译结构和计算机可执行代码结构,当所述文件或其它数据 结构由设计或仿真数据处理系统处理时,在功能上仿真或以其它方式表示硬件逻辑设计的 电路或其它级别。此类数据结构可以包括硬件描述语言(HDL)设计实体或遵循和/或兼容 诸如Verilog和VHDL的低级HDL设计语言和/或诸如C或C++的高级设计语言的其它数 据结构。
[0040] 设计过程710优选地采用和结合硬件和/或软件模块,所述模块用于合成、转换或 以其它方式处理以上公开的组件、电路、设备或逻辑结构的设计/仿真功能等价物,以生成 可以包含诸如设计结构720的设计结构的网表780。网表780可以包括例如编译或以其它 方式处理的数据结构,所述数据结构表示描述与集成电路设计中的其它元件和电路的连接 的线缆、分立组件、逻辑门、控制电路、I/O设备、模型等的列表。网表780可以使用迭代过 程合成,其中网表780被重新合成一次或多次,具体取决于用于该设备的设计规范和参数。 对于在此所述的其它设计结构类型,网表780可以记录在机器可读存储介质上或编程到可 编程门阵列中。所述介质可以是非易失性存储介质,诸如磁或光盘驱动器、可编程门阵列、 压缩闪存或其它闪存。此外或备选地,所述介质可以是系统或高速缓冲存储器或缓冲器空 间。
[0041] 设计过程710可以包括用于处理包括网表780在内的各种输入数据结构类型的硬 件和软件模块。此类数据结构类型例如可以驻留在例如库元件730内并包括一组常用元 件、电路和设备,其中包括给定制造技术(例如,不同的技术节点,32纳米、45纳米、90纳米 等)的模型、布图和符号表示。所述数据结构类型还可以包括设计规范740、特征数据750、 检验数据760、设计规则770和测试数据文件785,它们可以包括输入测试模式、输出测试结 果和其它测试信息。设计过程710还可以例如包括标准机械设计过程,诸如用于诸如铸造、 成型和模压成形等操作的应力分析、热分析、机械事件仿真、过程仿真。机械设计领域的普 通技术人员可以在不偏离本发明范围和主旨的情况下理解在设计过程710中使用的可能 的机械设计工具和应用的范围。设计过程710也可以包括用于执行诸如定时分析、检验、设 计规则检查、放置和布线操作之类的标准电路设计过程的模块。
[0042] 设计过程710采用和结合诸如HDL编译器的逻辑和物理设计工具以及仿真建模 工具,以便与任何其它机械设计或数据(如果适用)一起处理设计结构720连同绘出的支持 数据结构的部分或全部,从而生成第二设计结构790。设计结构790以用于机械设备和结 构的数据交换的数据格式(例如以IGES、DXF、Parasolid XT、JT、DRG或任何其它用于存储 或呈现此类机械设计结构的适合格式)驻留在存储介质或可编程门阵列上。类似于设计结 构720,设计结构790优选地包括一个或多个文件、数据结构或其它计算机编码的数据或指 令,它们驻留在传输或数据存储介质上,并且当由ECAD系统处理时生成在此公开的本发明 一个或多个实施例的逻辑上或以其它方式在功能上等效的形式。在一个实施例中,设计结 构790可以包括在功能上仿真以上所公开设备的编译后的可执行HDL仿真模型。
[0043] 设计结构790也可以采用用于集成电路的布图数据交换的数据格式和/或符号数 据格式(例如,以⑶SII (⑶52)、61^1、(^515、映射文件或任何其它用于存储此类设计数据结 构的适合格式存储的信息)。设计结构790可以包括信息,诸如像符号数据、映射文件、测试 数据文件、设计内容文件、制造数据、布图参数、线缆、金属级别、通孔、形状、用于在整个生 产线中布线的数据、以及制造商或其他设计人员/开发人员制造上述设备或结构所需的任 何其它数据。设计结构790然后可以前进到阶段795,其中,例如,设计结构790 :前进到流 片(tape-out),被发布用以制造、被发布到掩模室(mask house)、被发送到另一个设计室, 被发回给客户等。
[0044] 如已经描述的,在至少一个实施例中,统一请求队列包括用于为多种类型的请求 服务的多个条目。统一请求队列中的每一个条目一般可分配给多种请求类型中任意一种类 型的请求。在统一请求队列中为多种类型请求中的第一种请求类型预留多个条目。基于由 于统一请求队列中的条目分配给其它请求而被统一请求队列拒绝的第一种请求类型的请 求数量,动态改变为第一种请求类型预留的条目数量。
[0045] 所公开队列管理技术的一个优点是不需要为特定类型或种类的请求预留条目,而 不存在一般的得不到队列条目用以接收那种类型或种类的请求(如在预定时间间隔内通过 大于阈值数量的重试所证实的)。如果出现竞争,那么所公开的队列管理技术通过预留足够 的队列条目为每一种类型或种类的请求提供基准宽带来补偿以确保公平。
[0046] 虽然已经如参考优选实施例所述的那样特定地示出了各种实施例,但是本领域技 术人员应当理解,在不背离本权利要求的主旨和范围的情况下,可以对形式和细节进行各 种变化。例如,尽管实施例中已经描述采用了两种的请求(例如,读请求和写请求),但是本 领域技术人员应当理解,本文所公开的队列管理技术可应用到采用多于两种或两种类型请 求的实施例。并且,尽管各方面已经被描述为关于执行指导本发明功能的程序代码的计算 机系统,但是应该理解,本发明可替代地实现为包括存储可由数据处理系统处理的程序代 码的计算机可读存储设备(例如,易失性或非易失性存储器、光或磁盘或其它法定制品)的 程序产品。并且,如本文所使用的,术语"耦合"定义为包含耦合元件或块之间采用直接电 连接的实施例,以及采用一个或多个中间元件或块实现的耦合元件或块之间采用非直接电 连接的实施例。另外,本文中术语"示例性"定义为指特征的一个例子,而不一定是最好或 优选的例子。
【权利要求】
1. 一种数据处理系统中的数据处理方法,所述方法包括: 经由包括多个条目的统一请求队列为多种类型的请求服务,其中每个条目一般都可分 配给多种请求类型中任意一种的请求; 在统一请求队列中为多种类型的请求中的第一种请求类型预留多个条目;以及 基于由于统一请求队列中的条目分配给其它请求而被统一请求队列拒绝的第一种请 求类型的请求数量,动态改变为第一种请求类型预留的条目数量。
2. 如权利要求1所述的方法,还包括:把为第一种请求类型预留的条目的数量初始化 为零。
3. 如权利要求1所述的方法,其中: 数据处理系统包括存储器控制器,所述存储器控制器包括统一请求队列; 为多种类型的请求服务包括为多种类型的存储器访问请求服务。
4. 如权利要求3所述的方法,其中动态改变包括基于在预定时间段内为第一种请求类 型的请求提供的重试一致性响应的数量,动态改变预留的条目数量。
5. 如权利要求1所述的方法,其中动态改变包括把多个预留条目只最多递增到最大 值,所述最大值小于统一请求队列中的条目总数。
6. 如权利要求1所述的方法,还包括: 基于由于统一请求队列中的条目分配给其它请求而被统一请求队列拒绝的第二种请 求类型的请求数量,动态改变为多种请求类型中第二种请求类型预留的条目数量。
7. 如权利要求1所述的方法,还包括: 响应统一请求队列的空闲条目为第一种请求类型预留而在不分配所述空闲条目的情 况下拒绝第二种请求类型的请求。
8. -种集成电路,包括: 衬底; 在衬底上构造的电路系统,其中所述电路系统包括: 包括多个条目的统一请求队列,其中每个条目一般都可分配给多种请求类型中任意一 种的请求;以及 控制逻辑,在统一请求队列中为多种类型的请求中的第一种请求类型预留多个条目, 以及基于在统一请求队列中的条目分配给其它请求而被统一请求队列拒绝的第一种请求 类型的请求数量,动态改变为第一种请求类型预留的条目数量。
9. 如权利要求8所述的集成电路,其中控制逻辑把为第一种请求类型预留的条目的数 量初始化为零。
10. 如权利要求8所述的集成电路,其中控制逻辑用最大数量动态地约束预留条目数 量的变化,所述最大数量小于统一请求队列中的条目总数。
11. 如权利要求8所述的集成电路,其中控制逻辑基于由于统一请求队列中的条目分 配给其它请求而被统一请求队列拒绝的第二种请求类型的请求数量,动态改变为多种请求 类型中第二种请求类型预留的条目数量。
12. 如权利要求8所述的集成电路,其中所述电路系统包括存储器控制器,所述存储器 控制器包括统一请求队列。
13. 如权利要求12所述的集成电路,其中控制逻辑基于在预定时间段内为第一种请求 类型的请求提供的重试一致性响应的数量,动态改变预留的条目数量。
14. 一种数据处理系统,包括: 如权利要求12所述的存储器控制器;以及 耦合到所述存储器控制器的处理器核。
15. 如权利要求8所述的集成电路,其中控制逻辑响应统一请求队列的空闲条目为第 一种请求类型预留而在不分配所述空闲条目的情况下拒绝第二种请求类型的请求。
16. -种有形地包含在机器可读存储介质中,用于设计、制造、或测试集成电路的设计 结构,所述设计机构包括: 存储器控制器,用于控制对处于数据处理系统的易失性存储器层次的最底层的系统存 储器访问,所述存储器控制器包括: 包括多个条目的统一请求队列,其中每个条目一般都可分配给多种请求类型中任意一 种的请求;以及 控制逻辑,在统一请求队列中为多种类型的请求中的第一种请求类型预留多个条目, 以及基于由于统一请求队列中的条目分配给其它请求被统一请求队列拒绝的第一种请求 类型的请求数量,动态改变为第一种请求类型预留的条目数量。
17. 如权利要求16所述的设计结构,其中所述设计机构包括硬件描述语言(HDL)设计 结构。
【文档编号】G06F17/50GK104102761SQ201410143989
【公开日】2014年10月15日 申请日期:2014年4月11日 优先权日:2013年4月12日
【发明者】B·L.·古德曼, H·M.·麦克里里, E·E.·雷特, S·L.·罗伯特斯, J·A.·斯图切利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1