摘要 — 存储器编译器是促进数字电路设计过程的必要工具。然而,学术界只有少数可用的。电阻式随机存取存储器 (RRAM) 具有高密度、高速度、非易失性的特点,是未来数字存储器的潜在候选。据作者所知,本文介绍了第一个用于自动存储器生成的开源 RRAM 编译器,包括其外围电路、验证和时序特性。RRAM 编译器使用 Cadence SKILL 编程语言编写,并集成在 Cadence 环境中。布局验证过程在 Siemens Mentor Calibre 工具中进行。编译器使用的技术是 TSMC 180nm。本文分析了编译器生成的大量 M x N RRAM 的新结果,最多 M = 128、N = 64 和字长 B = 16 位,时钟频率等于 12.5 MHz。最终,编译器实现了高达0.024 Mb/mm 2 的密度。
计算机体系结构基础:处理器、内存、输入和输出设备、应用软件和系统软件:编译器、解释器、高级和低级语言、结构化编程方法简介、流程图、算法、伪代码(冒泡排序、线性搜索 - 算法和伪代码)
量子模拟内核是一个重要的子程序,在许多量子程序中以非常长的门序列出现。在本文中,我们提出了 Paulihedral,这是一个分块编译器框架,它可以通过利用高级程序结构和优化机会来深度优化此子程序。Paulihedral 首先采用了一种新的 Pauli 中间表示,它可以维护量子模拟内核中的高级语义和约束。这自然可以实现难以在低门级实现的新型大规模优化。具体而言,我们提出了两种与技术无关的指令调度过程和两种与技术相关的代码优化过程,它们协调了编译器的电路综合、门取消和量子位映射阶段。实验结果表明,Paulihedral 在近期超导量子处理器和未来容错量子计算机的广泛应用中都可以胜过最先进的编译器基础设施。
在构建嵌入式系统(更具体地说是控制器)时,基于模型的设计如今已不可避免。在可用的模型语言中,同步数据流范式(如 MATLAB Simulink 或 ANSYS SCADE 等语言中实现的)已成为关键嵌入式系统行业的主流。这两个框架都用于设计控制器本身,但也提供代码生成方法,从而能够更快地部署到目标,并在设计过程的早期阶段(模型级别)更轻松地执行 V&V 活动。同步模型还通过使用同步观察器简化了正式规范的定义,使用工程师掌握的同一种语言将需求附加到模型上,并使用模拟方法或代码生成工具。然而,很少有研究涉及从较低级别的模型或代码自动合成 MATLAB Simulink 注释。本文介绍了从 Lustre 模型到真正的 MATLAB Simulink 的编译过程,无需依赖外部 C 函数或 MATLAB 函数。此转换基于 Lustre 到命令式代码的模块化编译,并在生成的 Simulink 模型中保留输入 Lustre 模型的层次结构。我们实施了该方法并使用它来验证编译工具链,将 Simulink 映射到 Lustre,然后映射到 C,这要归功于等效性测试和检查。从 Lustre 到 Simulink 的反向编译还提供了自动生成 S
当前的量子计算机特别容易出错,需要进行高度优化以减少操作次数并最大限度地提高编译程序的成功概率。这些计算机仅支持分解为一和两量子比特门的操作,以及物理连接的量子比特对之间的两量子比特门。典型的编译器首先分解操作,然后将数据路由到连接的量子比特。我们提出了一种新的编译器结构 Orchestrated Trios,它首先分解为三量子比特 Toffoli,将高级 Toffoli 操作的输入路由到附近的量子比特组,然后完成分解为硬件支持的门。通过让路由过程访问电路的高级结构而不是丢弃它,这显著降低了通信开销。第二个好处是现在能够为路由过程后已知的特定硬件量子比特选择架构调整的 Toffoli 分解(例如 8-CNOT Toffoli)。我们在 IBM Johannesburg 上进行了实际实验,结果表明,与 Qiskit 相比,Toffoli 的双量子比特门数平均减少了 35%,单个 Toffoli 的成功率提高了 23%。此外,我们还编译了许多近期基准算法,结果表明,Johannesburg 架构的模拟成功率平均提高了 344%(或 4.44 倍),并与其他架构类型进行了比较。
当前的量子处理器噪声大、相干性有限且门实现不完善。在这样的硬件上,只有比整体相干时间短的算法才能成功实现和执行。一个好的量子编译器必须将输入程序转换为其自身最有效的等价物,从而充分利用可用的硬件。在这项工作中,我们提出了新的确定性算法,用于在多项式时间内编译递归量子电路模式。具体来说,这种模式出现在量子电路中,这些量子电路用于使用变分量子特征求解器 (VQE) 方法和 RyRz 启发式波函数 Ans¨atz 计算分子系统的基态特性。我们表明,我们的面向模式的编译算法与有效的交换策略相结合,在 CNOT 计数和 CNOT 深度方面,通常可以生成与使用最先进的编译器获得的输出程序相当的输出程序。特别是,我们的解决方案在 RyRz 电路上产生了无与伦比的结果。关键词 - 量子编译、循环模式、RyRz 电路
• 为了通过应变诱导的 Stranski-Krastanov 过程自发形成外延 QD,QD 材料和势垒材料之间的晶格失配必须达到一定的最小值。 • 需要紧密排列的 QD,以便孤立 QD 中通常观察到的离散能级加宽以形成微带。还需要高密度的 QD 以实现充分的吸收。为了实现所需的高密度应变 QD,几乎肯定需要某种应变平衡的 QD 超晶格结构来防止形成晶格失配诱导的穿透位错。这些缺陷会导致高度的非辐射复合,从而降低设备性能。 • 还需要 QD 和势垒材料中的载流子寿命长,以实现有效的载流子提取。
首先,我要感谢我的论文指导老师 Giovanni De Micheli 教授,他从一开始就相信我,并给予我持续的指导和支持。我还要感谢我的联合指导老师 Mathias Soeken 博士,他这些年来一直指导我,并传递了我对科学研究的热爱。我感谢我们在多次、有时有点疯狂的旅行中所拥有的所有快乐时光。我要感谢我的论文审稿人 Michele Mosca 教授、Nikolaj Bjørner 博士和 Paolo Ienne 教授抽出时间和提供宝贵的反馈。我希望有机会进一步讨论我们的研究。我感谢 Martin Roetteler 博士和 Thomas Häner 博士给我机会参与如此激动人心的暑期实习项目。我要感谢所有特别的同事,他们为我创造了一个奇妙的体验环境。谢谢你,Ivan,你总是让我微笑,在我遇到各种情况时都陪伴着我。我很高兴有你这样的朋友。埃莉诺拉,谢谢你们,我们的友谊如今深深扎根于我们共同拥有的一切以及我们共同经历过的一切。
当前的量子计算机特别容易出错,需要高水平的优化才能减少运行计数并最大化编译程序将成功的概率。这些计算机不在本地支持复杂的多量操作的执行,而是要求将它们组成到更简单的一Quition门中。此外,这些计算机通常具有有限的硬件连接性,可以在哪些硬件Qubits门之间执行。为了使用遥远的Qubit,它们需要添加额外的操作以移动或路由设备周围的量子位。已证明这种编译的路由阶段可以增加大量操作,通常是输入程序中的操作数量的很多倍。由于成功率与总体数量相关,因此以这种方式最大程度地减少添加的总操作以最大化程序成功的概率并获得正确的答案至关重要。
将量子程序编译为低级门集时,必须考虑近似错误。我们提出了一种自动跟踪此类错误的方法,然后优化准确性参数以确保指定的总体精度,同时旨在最大程度地减少量子门的实现成本。我们方法的核心思想是提取直接从量子程序的高级描述中指定优化问题的功能。然后,自定义编译器通过优化这些功能,将它们变成(1)总误差和(2)实现成本(例如,总量子门计数)的(1)符号表达式。量子程序的所有未指定参数将显示为这些表达式中的变量,包括精度参数。解决相应的优化问题后,可以从发现的解决方案实例化电路。我们开发了两个原型实现,一个基于Clang/LLVM中的C ++,另一种是使用Q#编译器基础架构。我们将原型基准在典型的量子计算程序上,包括量子傅立叶变换,量子相估计和Shor算法。