一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟化的高速缓存的制作方法

2022-07-10 20:46:31 来源:中国专利 TAG:


1.本公开涉及虚拟化的高速缓存。


背景技术:

2.集成电路通常在多步骤过程中被设计和测试,该过程涉及多个专业工程师对集成电路设计执行各种不同的设计和验证任务。这些工程师通常使用各种内部或专有(例如,公司特定)集成电路设计工具链来处理使用商业电子设计自动化(eda)工具的集成电路设计工作流程的不同部分。
附图说明
3.当结合附图阅读时,从以下详细描述最好地理解本公开。需要强调的是,根据惯例,附图的各种特征不是按比例绘制的。相反,为了清楚,各种特征的尺寸被任意地扩大或缩小。
4.图1是用于使用虚拟化的高速缓存执行指令的集成电路示例的框图。
5.图2是用于通过虚拟化的高速缓存访问存储器的有效存储器地址的示例的示意图。
6.图3是用于促进集成电路的设计和制造的系统的示例的框图。
7.图4是用于促进集成电路设计的系统的示例的框图。
8.图5是基于为处理器核心指定多个逻辑l1高速缓存的设计参数来生成包括具有虚拟化的l1高速缓存的处理器核心的集成电路设计的过程的示例的流程图。
具体实施方式
9.概述
10.在一些微处理器一级(ll)高速缓存中,虚拟地址可以被用于索引高速缓存静态随机存取存储器(sram),并且对应的物理地址可以被用于标记条目(即,虚拟地索引的物理标记(vipt)的高速缓存)。由于虚拟地址较早可用,因此使用虚拟地址进行索引允许设计重叠或并行物理地址的计算(例如,使用转换后备缓冲区(tlb))和高速缓存访问。然而,使用vipt高速缓存能够引入同义词的可能性,其中,取决于活动的虚拟物理转换,相同的物理高速缓存块出现在高速缓存中的两个不同虚拟索引处。
11.同义词问题的一种解决方案是将l1高速缓存大小限制为不大于虚拟存储器页面大小(例如,4kib、8kib、16kib或64kib)乘以l1高速缓存中的路数。例如,在具有4kib页面和4路组关联l1高速缓存的系统中,l1高速缓存大小将被限制为16kib。将高速缓存大小限制为虚拟存储器页面大小乘以高速缓存中的路的数量起作用,因为虚拟和物理地址的索引位在虚拟存储器页面大小之下是相同的。然而,对于较大的高速缓存,将高速缓存路的大小限制为虚拟存储器页面大小可能需要使用更多的路并检查更多的候选标签。将高速缓存路的大小限制为虚拟存储器页面大小也限制sram标记阵列的深度(例如,在具有64字节高速缓
存块的典型系统中限制为64个条目)。
12.本文中描述的是通过将l1高速缓存分成多个逻辑l1高速缓存来克服该限制的技术,这些逻辑l1高速缓存共享相同的底层物理实现。作为高速缓存一致性的正常结果,这些技术可以使用l2高速缓存来消除l1同义词的歧义。在一些实施方式中,这些技术使l1高速缓存能够安全地保存两个共享同义词。与路推测相比,这些技术更简单,并且可以减少或消除对管道的影响。
13.存在作为该手段基础的三个关键观察结果。首先,外部存储器系统通常具有解决具有相应l1高速缓存的多个核心之间的所有权冲突的能力。其次,只有虚拟地址的高位才能真正引起同义词。第三,同义词在实际软件中相对不常见,因为过程之间共享的物理页面可能经常类似地对齐。例如,较大的risc-v兆/千兆页面映射总是更加对齐。
14.例如,在具有4kib页面的系统中每路具有8kib的l1高速缓存中,最高虚拟索引位能够导致同义词。这个最高位可以被称为同义词地址(sa)。为了防止同义词,sa=0的请求可以被处理为来自逻辑l1高速缓存id=0,并且sa=1的请求可以被处理为来自逻辑l1高速缓存id=1。如果存在具有相同的l1高速缓存配置的另一核心,它将分别使用高速缓存id 2和3。当核心1请求由核心2拥有的高速缓存块时,外部存储器系统必须探测核心2以检索该块的权限。类似地,如果存在同义词,当核心1id=0请求块时,如果该块由同一个核心持有,但在id=1下,则存储器系统将探测核心1。换句话说,每当已在l1高速缓存中创建同义词,外部存储器子系统经由回环探测消除第二副本。支持与一个核心相关联的两个逻辑l1高速缓存的实施方式可以与在核心1和2之间使用的现有一致性策略相同。
15.这些技术可以与修改的排他共享无效(mesi)方案同样地工作。在这种情况下,两个同义词可能都处于共享状态。当一个副本将被更新时,另一副本将被回环探测无效。在修改的排他共享无效(moesi)系统中,同一核心的虚拟l1高速缓存之间的“传输”覆盖短距离。例如,在基于更新的系统中,同义词可以在同一核心的虚拟l1高速缓存之间传输,然后将该传输通知l2高速缓存目录。
16.在一些实施方式中,外部存储器系统被自动地配置为容纳可变数量的l1高速缓存。因此,这种技术可以在不改变l2高速缓存、物理拓扑或底层一致性协议的情况下运行。在一些实施方式中,唯一的变化是描述l1高速缓存到存储器系统的参数化现在描述了两个l1高速缓存。
17.对于基于目录的l2高速缓存实施方式,该技术的物理结果是l2高速缓存现在为每个内部高速缓存维护更多所有权位(例如,两个所有权位),其中,它先前存储了一个所有权位。鉴于标签的相对大小,这并不是特别昂贵。
18.在l1高速缓存中实现这些技术仅需要来自l1高速缓存的请求指示该请求源自哪个“虚拟l1高速缓存”。大多数一致性协议(例如tilelink)包括某种形式的请求者标识符。因此,该标识符被扩大了同义词地址(sa)中的位数(例如,1位或2位),并且该值从sa提供。相反,当接收到探测请求时,l1高速缓存必须从目的地标识符中检索sa,并在检查高速缓存块的状态时使用sa作为(一个或多个)高位。在一些实施方式中,不需要对l1高速缓存进行其他更改。
19.这些技术能够被扩展到多于单个sa位。例如,要在4kib虚拟存储器页面大小的情况下支持每路16kib,可以使用两个sa位。例如,可以存在四个虚拟l1高速缓存,并且l2高速
缓存可以包括每个l1高速缓存四个所有权位。可以使用更大的同义词地址(例如,3位),但是,增加sa位的数量导致l2高速缓存目录中的成本的指数增长。在一些实施方式中,如果不希望l2高速缓存的目录中的成本的指数增长,则目录可以强制在虚拟l1高速缓存中排除,从而允许成本随sa位的数量线性增长。这些技术能够与路推测相组合,以实现大型vipt l1高速缓存。
20.这些技术可以被应用于大多数一致性协议(例如,tilelink)。
21.这些技术可以被应用于大多数一致性策略(例如,moesi、mesi和mi)。
22.这些技术可以被应用于一致的vipt l1指令高速缓存和vipt l1数据高速缓存。这些技术可以被应用于虚拟地索引的虚拟标记(vivt)的l1指令高速缓存和vivt l1数据高速缓存。这些技术可以被应用于虚拟地索引或虚拟地标记的l2高速缓存,或者在除了l1或l2之外的任何级别。
23.这些技术中的一些可以与任何一致的存储器系统组合,而不仅仅是基于目录的。
24.如本文中所使用的,术语“电路”指的是被构造成实现一个或多个功能的电子组件(例如,晶体管、电阻器、电容器和/或电感器)的布置。例如,电路可以包括一个或多个晶体管,这些晶体管相互连接以形成共同地实现逻辑功能的逻辑门。
25.细节
26.图1是用于使用虚拟化的高速缓存执行指令的集成电路110的示例的框图。集成电路110包括处理器核心(例如,ip核心),其包括物理l1高速缓存130。物理l1高速缓存130被配置为包括多个逻辑l1高速缓存、逻辑l1高速缓存a 132和逻辑l1高速缓存b 134。集成电路110还包括外部存储器系统140。在该示例中,外部存储器系统140包括l2高速缓存150,其可以被配置为实现高速缓存一致性协议/策略以维持跨多个l1高速缓存的高速缓存一致性。在该示例中,l2高速缓存150包括用于多个逻辑l1高速缓存,其包括逻辑l1高速缓存a 132和逻辑l1高速缓存b 134,的所有权位160。虽然在图1中未示出,但是在一些实施方式中,集成电路110可以包括多个处理器核心。尽管图1中未显示,但是外部存储器系统140可以包括多个层。
27.物理l1高速缓存130可以被配置为向外部存储器系统140输出高速缓存访问的虚拟索引(例如,同义词地址(sa))的一个或多个位作为请求者标识符的一个或多个位。在一些实施方式中,物理l1高速缓存130被配置为从外部存储器系统140接收探测请求的目的地标识符的一个或多个位,并将目的地标识符的一个或多个位用作索引的一部分(例如,作为同义词地址)来检查高速缓存块的状态。例如,物理l1高速缓存可以是虚拟地索引的l1高速缓存(例如,vipt或vivt高速缓存)。例如,逻辑l1高速缓存a 132和逻辑l1高速缓存b 134可以具有小于或等于由处理器核心120使用的虚拟存储器页面大小的高速缓存路大小。例如,在物理l1高速缓存130中的高速缓存路的大小可以等于由与物理l1高速缓存130相关联的集成电路110的处理器核心120使用的虚拟存储器页面大小的两倍,并且虚拟索引的一个或多个位可以是单个位。尽管在图1的示例中未示出,但是物理l1高速缓存可以被划分为超过两个的逻辑高速缓存(例如,四个逻辑高速缓存),以支持甚至更大的物理高速缓存大小。例如,物理l1高速缓存可以是数据高速缓存。例如,物理l1高速缓存可以是指令高速缓存。
28.l2高速缓存150可以被配置为接收请求者标识符并实现高速缓存一致性协议以消除在与不同请求者标识符值相关联的物理l1高速缓存130的多个部分(例如,逻辑l1高速缓
存a 132和逻辑l1高速缓存b 134)中出现的l1同义词的歧义。例如,l2高速缓存150可以包括分别对应于与不同请求者标识符值相关联的物理l1高速缓存130的多个部分(例如,逻辑l1高速缓存a 132和逻辑l1高速缓存b 134)中的每一个的所有权位160。例如,l2高速缓存150可以是基于目录的。
29.图2是用于经由虚拟化的高速缓存(例如,物理l1高速缓存130)访问存储器的有效存储器地址200的示例的示意图。有效存储器地址200包括高速缓存块偏移210、用于选择高速缓存块以供处理器核心(例如,处理器核心120)访问的虚拟索引220以及标签230(例如,物理标签或虚拟标签)。虚拟索引220包括同义词地址240(sa),其包括能够被用于从物理高速缓存内的多个逻辑高速缓存中选择的一个或多个位。例如,同义词地址240可以是用于从两个逻辑高速缓存中选择的单个位。例如,同义词地址240可以是从四个逻辑高速缓存中选择的一对位。同义词地址240可以被用于确定物理高速缓存的逻辑高速缓存的请求者标识符,该逻辑高速缓存在与外部存储器系统(例如,外部存储器系统140)通信时被用于标识与高速缓存访问操作相关联的逻辑高速缓存。
30.图3是用于促进集成电路的设计和制造的系统300的示例的框图。系统300包括网络306、集成电路设计服务基础设施310、fpga/模拟器服务器320和制造商服务器330。例如,用户可以利用网络客户端或脚本api客户端来命令集成电路设计服务基础设施310基于由用户为一个或多个模板集成电路设计选择的设计参数值集自动地生成集成电路设计。在一些实施方式中,集成电路设计服务基础设施310可以被配置为自动地生成集成电路设计(例如,编码在寄存器传输逻辑数据结构、现场可编程门阵列模拟数据结构和/或物理设计数据结构中,诸如gdsii文件),其包括具有多个逻辑l1高速缓存的处理器核心。
31.例如,集成电路设计服务基础设施310可以调用(例如,经由网络306上的网络通信)对由运行一个或多个fpga或其他类型的硬件或软件模拟器的fpga/模拟服务器320执行的结果设计的测试。例如,集成电路设计服务基础设施310可以调用使用基于现场可编程门阵列模拟数据结构编程的现场可编程门阵列的测试,以获得模拟结果。现场可编程门阵列可以在可以是云服务器的fpga/模拟服务器320上运行。测试结果可以由fpga/模拟服务器320返回到集成电路设计服务基础设施310并以有用的格式中继给用户(例如,经由web客户端或脚本api客户端)。
32.集成电路设计服务基础设施310还可以促进在与制造商服务器330相关联的制造设施中使用集成电路设计来制造集成电路。在一些实施方式中,基于集成电路的物理设计数据结构的物理设计规范(例如,gdsii文件)被发送到制造商服务器330以调用集成电路的制造(例如,使用相关制造商的制造设备)。例如,制造商服务器330可以托管代工厂流片网站,该网站被配置为接收物理设计规范(例如,作为gdsii文件或oasis文件)以调度或以其他方式促进集成电路的制备。在一些实施方式中,集成电路设计服务基础设施310支持多租户以允许多个集成电路设计(例如,来自一个或多个用户)共享制造的固定成本(例如,掩模版/掩模生成和/或穿梭晶片测试)。例如,集成电路设计服务基础设施310可以使用固定封装(例如,准标准化封装),该固定封装被定义为降低固定成本并促进掩模版/掩模、晶片测试和其他固定制造成本的分担。例如,物理设计规范可以包括来自一个或多个相应物理设计数据结构的一个或多个物理设计,以促进多租户制造。
33.响应于物理设计规范的传输,与制造商服务器330相关联的制造商可以基于集成
电路设计来制备和/或测试集成电路。例如,相关联的制造商(例如,代工厂)可以执行光学邻近校正(opc)和类似的流片后/生产前处理,制备(一个或多个)集成电路332,关于制造过程的状态定期地或异步地更新集成电路设计服务基础设施310(例如,经由与控制器或网络应用服务器的通信),执行适当的测试(例如,晶片测试),并发送到封装厂用于封装。封装厂可以从制造商处接收完成的晶片或管芯并测试材料,并且关于封装和交付过程的状态定期地或异步地更新集成电路设计服务基础设施310。在一些实施方式中,当用户使用网络接口登记和/或控制器可以通过电子邮件向用户通知更新可用时,可以将状态更新中继给用户。
34.在一些实施方式中,得到的集成电路332(例如,物理芯片)被递送(例如,通过邮件)到与硅测试服务器340相关联的硅测试服务提供商。在一些实施方式中,得到的集成电路332(例如,物理芯片)被安装在由硅测试服务器340(例如,云服务器)控制的系统中,使得它们可以快速地访问以使用网络通信远程被运行和测试,以控制集成电路332的操作。例如,控制集成电路332的制造的硅测试服务器340的登录可以被发送到集成电路设计服务基础设施310并中继给用户(例如,经由web客户端)。例如,集成电路设计服务基础设施310可以实现图5的过程500以自动地生成集成电路设计(例如,包括寄存器传输逻辑数据结构和/或物理设计数据结构)并控制可以基于集成电路设计而构造的一个或多个集成电路332的制备和硅测试。
35.图4是用于促进集成电路设计的系统400的示例的框图。系统400是可以被用于将集成电路设计服务基础设施310作为整体或图3所示系统300的集成电路设计服务基础设施310的一个或多个组件来实现的计算设备的内部配置的示例。系统400能够包括组件或单元,诸如处理器402、总线404、存储器406、外围设备414、电源416、网络通信接口418、用户界面420、其他合适的组件或其组合。
36.处理器402能够是中央处理单元(cpu),诸如微处理器,并且能够包括具有单个或多个处理核心的单个或多个处理器。替代地,处理器402能够包括另一种类型的设备,或者能够操纵或处理信息的多个设备。例如,处理器402能够包括以任何方式互连的多个处理器,包括硬连线或联网的,包括无线联网的。在一些实施方式中,处理器402的操作能够被分布在多个物理设备或单元上,这些物理设备或单元能够被直接地耦合或通过局域网或其他合适类型的网络耦合。在一些实施方式中,处理器402能够包括高速缓存或高速缓存存储器,用于操作数据或指令的本地存储。
37.存储器406能够包括易失性存储器、非易失性存储器或其组合。例如,存储器406能够包括:易失性存储器,诸如一个或多个动态随机存取存储器(dram)模块,诸如双倍数据速率(ddr)同步动态随机存取存储器(sdram);以及非易失性存储器,诸如磁盘驱动器、固态驱动器、闪存、相变存储器(pcm)或任何形式的能够诸如在没有活动电源的情况下进行持久电子信息存储的非易失性存储器。存储器406能够包括另一种类型的设备或多个设备,其现在存在或以后开发,能够存储数据或指令以供处理器402处理。处理器402能够经由总线404访问或操纵在存储器406中的数据。尽管在图4中显示为单个块,存储器406能够被实现为多个单元。例如,系统400能够包括诸如ram的易失性存储器和诸如硬盘驱动器或其他存储器的持久性存储器。
38.存储器406能够包括:可执行指令408;数据,诸如应用数据410或操作系统412;或其组合,以供处理器402立即访问。可执行指令408能够包括,例如,一个或多个应用程序,其
能够全部或部分地从非易失性存储器加载或复制到易失性存储器以由处理器402执行。可执行指令408能够被组织成可编程模块或算法、功能程序、代码、代码段或其组合以执行本文中描述的各种功能。例如,可执行指令408能够包括可由处理器402执行以使系统400响应于命令基于设计参数数据结构自动地生成集成电路设计和相关测试结果的指令。例如,可执行指令408可以包括诸如附录a的chisel代码片段的指令,以用于基于设计参数集生成包括具有多个逻辑l1高速缓存的处理器核心的集成电路设计。应用数据410能够包括,例如,用户文件、数据库目录或字典、配置信息或功能程序,诸如网络浏览器、网络服务器、数据库服务器或其组合。操作系统412例如能够是:microsoftmac或诸如智能手机或平板设备的小型设备的操作系统;或诸如大型计算机的大型设备的操作系统。存储器406能够包括一个或多个设备并且能够利用一种或多种类型的存储,诸如固态或磁存储。
39.外围设备414能够经由总线404耦合到处理器402。外围设备414能够是传感器或检测器,或包含任意数量的传感器或检测器的设备,其能够监控系统400本身或系统400周围的环境。例如,系统400能够包含温度传感器,以用于测量诸如处理器402的系统400的组件的温度。在一些实施方式中,电源416能够是电池,并且系统400能够独立于外部配电系统地操作。系统400的任何组件,诸如外围设备414或电源416,都能够经由总线404与处理器402通信。
40.网络通信接口418还能够经由总线404耦合到处理器402。在一些实施方式中,网络通信接口418能够包括一个或多个收发器。网络通信接口418能够,例如,经由网络接口提供到诸如网络306的网络的连接或链接,该网络接口能够是诸如以太网的有线网络接口或无线网络接口。例如,系统400能够经由网络通信接口418和使用一种或多种网络协议,诸如以太网、tcp、ip、电力线通信(plc)、wifi、红外线、gprs、gsm、cdma或其他合适的协议,的网络接口与其他设备通信。
41.用户界面420能够包括:显示器;定位输入设备,诸如鼠标、触摸板或触摸屏等;键盘;或其他合适的人或机器接口设备。用户界面420能够经由总线404耦合到处理器402。除了显示器之外或者作为显示器的替代,能够提供许可用户编程或以其他方式使用系统400的其他接口设备。在一些实施方式中,用户界面420能够包括显示器,其能够是液晶显示器(lcd)、阴极射线管(crt)、发光二极管(led)显示器(例如,oled显示器)或其他合适的显示器。在一些实施方式中,客户端或服务器能够省略外围设备414。处理器402的操作能够被分布在多个客户端或服务器上,这些客户端或服务器能够被直接耦合或通过局域网或其他合适类型的网络耦合。存储器406能够被分布在多个客户端或服务器上,诸如基于网络的存储器或在执行客户端或服务器的操作的多个客户端或服务器中的存储器。尽管这里描述为单个总线,但是总线404能够由多个总线组成,这些总线能够通过各种桥接器、控制器或适配器相互连接。
42.图5是用于基于为处理器核心指定多个逻辑l1高速缓存的设计参数来生成包括具有虚拟化的l1高速缓存的处理器核心的集成电路设计的过程500的示例的流程图。过程500包括:访问510处理器核心的设计参数,这些设计参数指示要被包括在处理器核心中的多个逻辑l1高速缓存;基于该设计参数,自动地生成520指定集成电路设计的寄存器传输逻辑数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心;存储530寄存器传输
逻辑数据结构;基于寄存器传输逻辑数据结构,自动地生成540指定集成电路设计的物理设计数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心;以及,基于物理设计数据结构,调用550集成电路的制备,该集成电路包括具有多个逻辑l1高速缓存的处理器核心。例如,过程500可以由图3的集成电路设计服务基础设施310实现。例如,过程500可以由图4的系统400实现。
43.过程500包括访问510处理器核心的设计参数,这些设计参数指示多个逻辑l1高速缓存被包括在处理器核心中。在一些实施方式中,设计参数可以包括要被包括在处理器核心(例如,ip核心)中的逻辑高速缓存的计数。在一些实施方式中,设计参数可以包括要被包括在处理器核心中的逻辑高速缓存的大小。在一些实施方式中,设计参数可以包括处理器核心的虚拟存储器页面大小。例如,可以通过接收设计参数(例如,使用网络通信接口418经由网络通信)来访问510设计参数。例如,可以通过从存储器读取设计参数(例如,经由总线404从存储器406读取)来访问510设计参数。
44.过程500包括基于设计参数自动地生成520指定包括具有多个逻辑l1高速缓存(例如,逻辑l1高速缓存a 132和逻辑l1高速缓存b134)的处理器核心(例如,处理器核心120)的集成电路设计的寄存器传输逻辑数据结构(例如,文件、数据库、储存库或比特流)。例如,为集成电路设计自动地生成520寄存器传输级数据结构可以包括基于设计参数用输入数据调用寄存器传输级服务。例如,处理器核心的多个逻辑l1高速缓存可以是处理器核心中单个物理l1高速缓存的多个部分。例如,处理器核心的多个逻辑l1高速缓存可以各自具有大小等于由处理器核心使用的虚拟存储器页面大小的高速缓存路。在一些实施方式中,处理器核心的多个逻辑l1高速缓存是虚拟地索引的物理标记的高速缓存。在一些实施方式中,自动地生成520寄存器传输逻辑数据结构包括执行将设计参数作为输入的chisel代码(例如,包括附录a的代码片段)。
45.过程500包括存储530寄存器传输逻辑数据结构(例如,文件、数据库、储存库或比特流)。例如,寄存器传输级数据结构可以被存储530在存储器(例如,存储器406)中。例如,可以将寄存器传输级数据结构发送到外部设备(例如,个人计算设备)以用于显示或存储。例如,可以经由网络通信接口(例如,网络通信接口418)发送寄存器传输级数据结构。
46.过程500包括:基于寄存器传输逻辑数据结构,自动地生成540物理设计数据结构(例如,物理设计文件),该物理设计数据结构指定包括具有多个逻辑l1高速缓存的处理器核心的集成电路设计。例如,为集成电路生成540物理设计数据结构可以包括:利用基于寄存器传输级数据结构和/或设计参数数据结构的数据调用物理设计服务。例如,为集成电路生成540物理设计数据结构可以包括调用综合和布局布线工具(例如,synopsys
tm
、cadence
tm
和/或mentor
tm
工具)。例如,为集成电路生成540物理设计数据结构可以包括执行逻辑等效检查。例如,为集成电路生成540物理设计数据结构可以包括调用静态定时分析工具。例如,为集成电路生成540物理设计数据结构可以包括执行设计规则检查(drc)和/或布局与示意图(lvs)检查。例如,为集成电路生成540物理设计数据结构可以包括确定得到的集成电路设计的功率、性能和面积估计,并将这些估计作为反馈提供给用户(例如,web客户端的用户)。例如,物理设计数据结构可以包括用非技术术语物理设计是否存在任何问题。例如,物理设计数据结构可以突出综合和布局布线工具的输出的重要组件。例如,物理设计数据结构可以包括gdsii文件或oasis文件。例如,为集成电路生成540物理设计数据结构可
以包括在云中管理和编排物理设计工具链。例如,为集成电路生成540物理设计数据结构可以包括:处理从工具到工具的数据库移动,以及管理对第三方ip核心的访问。例如,为集成电路生成540物理设计数据结构可以包括访问模板设计,这可以允许重要的设计重复使用。例如,为集成电路生成540物理设计数据结构可以包括标识那些组合以减少工作量。例如,为集成电路生成540物理设计数据结构可以通过下述方式提供更好或更紧凑的错误/问题报告:将工具问题转换为可管理的反馈并以可交付格式向用户(例如,网络客户端的用户)提供工具的实际错误/输出。
47.过程500包括:基于物理设计数据结构,调用550集成电路的制备,该集成电路包括具有多个逻辑l1高速缓存的处理器核心。在一些实施方式中,基于用于集成电路的物理设计数据结构的物理设计规范(例如,gdsii文件)经由网络(例如,网络306)被发送到制造商服务器(例如,制造商服务器330)以调用550集成电路的制备(例如,使用相关制造商的制造设备)。例如,制造商服务器330可以托管代工厂流片网站,该网站被配置为接收物理设计规范(例如,作为gdsii文件或oasis文件)以调度或以其他方式促进集成电路的制备。在一些实施方式中,可以通过直接控制制造设备(例如,经由通过总线或串行端口的通信)来调用550集成电路的制备。
48.应当注意,可以省略过程500的一个或多个步骤。例如,可以省略步骤540和/或550。可以将一个或多个步骤添加到过程500,诸如自动地生成软件开发工具包(sdk)、文档、现场可编程门阵列模拟数据结构和/或用于集成电路设计的测试计划,和/或调用集成电路的测试并接收测试结果数据结构。
49.在第一方面,本说明书中描述的主题能够被体现在用于执行指令的集成电路中,该集成电路包括虚拟地索引的物理标记的ll高速缓存,其被配置为向外部存储器系统输出高速缓存访问的虚拟索引的一个或多个位作为请求者标识符的一个或多个位。
50.在第一方面,集成电路可以包括外部存储器系统的l2高速缓存,其被配置为接收请求者标识符并实现高速缓存一致性协议以消除与不同的请求者标识符值相关联的虚拟地索引的物理标记的l1高速缓存的多个部分中出现的l1同义词的歧义。在第一方面,l2高速缓存可以包括分别对应于与不同请求者标识符值相关联的虚拟地索引的物理标记的l1高速缓存的多个部分中的每一个的所有权位。在第一方面,l2高速缓存可以是基于目录的。在第一方面,虚拟地索引的物理标记的l1高速缓存可以被配置为从外部存储器系统接收用于探测请求的目的地标识符的一个或多个位,并且使用目的地标识符的一个或多个位作为索引的一部分以检查高速缓存块的状态。在第一方面,虚拟地索引的物理标记的l1高速缓存中的高速缓存路的大小等于由与虚拟地索引的物理标记的l1高速缓存相关联的集成电路的核心使用的虚拟存储器页面大小的两倍,并且虚拟索引的一个或多个位是单个位。在一些实施方式中,虚拟地索引的物理标记的l1高速缓存中的高速缓存路的大小等于由与虚拟地索引的物理标记的l1高速缓存相关联的集成电路的核心使用的虚拟存储器页面大小的四倍,并且虚拟索引的一个或多个位是两位。在第一方面,虚拟地索引的物理标记的l1高速缓存可以是数据高速缓存。在第一方面,虚拟地索引的物理标记的l1高速缓存可以是指令高速缓存。第一方面可以包括本段中描述的特征的任何组合。
51.在第二方面,本说明书中描述的主题能够被体现在包括下述步骤的方法中:访问处理器核心的设计参数,该设计参数指示要被包括在处理器核心中的多个逻辑l1高速缓
存;基于设计参数,自动地生成指定集成电路设计的寄存器传输逻辑数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心;以及存储寄存器传输逻辑数据结构。
52.在第二方面,处理器核心的多个逻辑l1高速缓存可以是处理器核心中的单个物理l1高速缓存的部分。在一些实施方式中,处理器核心的多个逻辑l1高速缓存各自具有大小等于由处理器核心使用的虚拟存储器页面大小的高速缓存路。在第二方面,处理器核心的多个逻辑l1高速缓存可以是虚拟地索引的物理标记的高速缓存。在一些实施方式中,自动地生成寄存器传输逻辑数据结构包括执行将设计参数作为输入的chisel代码。在第二方面,自动地生成寄存器传输逻辑数据结构可以包括执行附录a的chisel代码片段。在一些实施方式中,该方法进一步包括:基于寄存器传输逻辑数据结构,自动地生成物理设计数据结构,其指定包括具有多个逻辑l1高速缓存的处理器核心的集成电路设计。在一些实施方式中,该方法进一步包括:基于物理设计数据结构,调用集成电路的制备,该集成电路包括具有多个逻辑l1高速缓存的处理器核心。第二方面可以包括本段中描述的特征的任何组合。
53.在第三方面,本说明书中描述的主题能够被体现在下述系统中,该系统包括存储器;以及处理器,其中,存储器包括可由处理器执行以使系统执行以下操作的指令:访问处理器核心的设计参数,该设计参数指示要被包括在处理器核心中的多个逻辑l1高速缓存;基于该设计参数,自动地生成指定集成电路设计的寄存器传输逻辑数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心;以及存储寄存器传输逻辑数据结构。在一些实施方式中,存储器包括可由处理器执行以使系统执行以下操作的指令:基于寄存器传输逻辑数据结构,自动地生成指定集成电路设计的物理设计数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心。
54.在第三方面,存储器可以包括可由处理器执行以使系统执行以下操作的指令:基于物理设计数据结构,调用集成电路的制被,该集成电路包括具有多个逻辑ll高速缓存的处理器核心。在第三方面中,处理器核心的多个逻辑l1高速缓存可以是处理器核心中的单个物理l1高速缓存的部分。在一些实施方式中,处理器核心的多个逻辑l1高速缓存各自具有大小等于由处理器核心使用的虚拟存储器页面大小的高速缓存路。在第三方面,处理器核心的多个逻辑l1高速缓存可以是虚拟地索引的物理标记的高速缓存。在一些实施方式中,自动地生成寄存器传输逻辑数据结构包括执行将设计参数作为输入的chisel代码。例如,存储器可以包括附录a的chisel代码片段。第三方面可以包括本段中描述的特征的任何组合。
55.在第四方面,本说明书中描述的主题能够被体现在包括指令的非暂时性计算机可读存储介质中,这些指令当由处理器执行时促进执行包括以下各项的操作:访问处理器核心的设计参数,该设计参数指示要被包括在处理器核心中的多个逻辑l1高速缓存;基于该设计参数,自动地生成指定集成电路设计的寄存器传输逻辑数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心;以及存储寄存器传输逻辑数据结构。
56.在第四方面,处理器核心的多个逻辑l1高速缓存可以是处理器核心中的单个物理l1高速缓存的部分。在一些实施方式中,处理器核心的多个逻辑l1高速缓存各自具有大小等于由处理器核心使用的虚拟存储器页面大小的高速缓存路。在第四方面,处理器核心的多个逻辑l1高速缓存可以是虚拟地索引的物理标记的高速缓存。在一些实施方式中,自动地生成寄存器传输逻辑数据结构包括执行将设计参数作为输入的chisel代码。例如,非暂
时性计算机可读存储介质可以存储附录a的chisel代码片段。在一些实施方式中,非暂时性计算机可读存储介质包括指令,这些指令当由处理器执行时促进执行包括以下各项的操作:基于寄存器传输逻辑数据结构,自动地生成指定集成电路设计的物理设计数据结构,该集成电路设计包括具有多个逻辑l1高速缓存的处理器核心。第四方面可以包括本段中描述的特征的任何组合。
57.尽管已经结合某些实施例描述了本公开,但是应当理解,本公开不限于所公开的实施例,而是,相反,旨在覆盖包括在所附权利要求的范围内的各种修改和等效布置,该范围应被给予最广泛的解释,以便涵盖所有这样的修改和等效结构。
58.附录a
59.[0060][0061]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献