《安全处理器架构设计原理》(英文名为Principles of Secure Processor Architecture Design)隶属于Synthesis Lectures on Computer Architecture系列。硬件不同于软件那样容易被破解,且基于硬件的安全保护效率更高,对系统性能的影响更小,但在硬件中增加安全功能也充满挑战,一旦实现之后就很难改变,需要仔细设计,且设...
知乎原回答:https://www.zhihu.com/question/468593551/answer/2996304673 差不多正好两年前开始接触体系结构这个领域,通过一生一芯第一期项目和rocket-chip了解到了chisel这个语言,在2021年下半年参加了一生一芯第三期,也许也算是有资格来回答这个问题吧w,chisel的优缺点楼上各位大佬已经讨论的非常充分了,或许我会更多从...
很久没有读专业书以外的书了,也确实很久没有给自己喘一口气的机会了,决定开个新帖,记录一下2023年已经看完的书。 2023/03/13 《海外征程3》 2023/03/19 《挽救计划》 2023/04/16 《可能性的艺术:比较政治学30讲》 2023/05/09 《圆圈正义:作为自由前提的信念》
虚拟内存系统的设计空间正在不断扩展,也带来了全新的挑战,涵盖ISA设计、内存布局和管理、虚拟化等多个方面,虚拟内存实现的复杂度正在成倍增长。由异构系统和虚拟化带来的一些特殊挑战包括以下方面: 当被访问的数据在另一个设备甚至另一台机器上时,内存访问可能有更高的延迟; 设备的虚拟地址空间可能与某些主机进程的虚拟地址空间相同,也可能是其子集,也可能不相关; ...
我们在本章中讨论的基本内容是TLB通常不与内存系统的其他部分保持一致性,也就是说更新页表的操作不会自动传播到TLB中,且旧的TLB条目也不会自动失效。这种不一致性给程序员和操作系统增添了额外的负担,当虚拟内存的状态被更新时,需要明确地进行同步。我们在本章仔细研究TLB和一般情况下指令缓存不保证硬件上的一致性的额原因,接下来研究这种不一致性对程序的同步要求,包括单线程和多线程,最后我们简单讨论...
在介绍了虚拟内存的硬件细节之后,我们现在来关注操作系统层面对虚拟内存的支持。通常操作系统的支持分为两部分,首先操作系统必须和虚拟内存的硬件部分相匹配(如TLB、PTW等),其次操作系统需要从低级的硬件细节抽象出高级的软件操作。在这一节中我们重点讨论操作系统如何合理高效地管理虚拟内存。 我们首先回顾一下分配内存的各个抽象层次。在进程的虚拟地址空间分配虚拟内存块是操作系统负责的问题,不过在单个...
虚拟内存系统通常处于每个指令和数据访问的关键路径上,我们需要使用硬件来尽可能加速这一过程。本节我们深入讨论现代虚拟内存系统的硬件设计空间的细节,包括架构(如ISA规定的页表项格式)和微架构(如TLB的物理布局)。 反转页表 节省页表空间的一种方法是采用反转页表,为系统中的每个物理页面维护一个页表项,该页表项表示哪个进程使用这个物理页面,以及该进程的哪个虚拟页面映射到该物理页面,也就是说我...
本节我们讨论虚拟内存在操作系统和硬件中的实现,重点解释基本原理和机制,然后在之后的章节中深入讨论细节和设计空间。 典型的基于分页的虚拟内存系统 大多数虚拟内存系统采用分页策略,虚拟地址空间呗划分为页和页帧(page frame,或简称为帧),页是虚拟内存管理的最小单位,而页帧是物理内存管理的最小单位。现代操作系统普遍采用按需分页,也就是说只有用户需要时才会分配页面。 现在的CPU普遍采...
《虚拟内存的架构和操作系统支持》一书(英文名为Architectural and Operating System Support for Virtual Memory),隶属于Synthesis Lectures on Computer Architecture系列。本节简单回顾了虚拟内存抽象的基础知识。 典型的虚拟地址空间 32位和64位进程的地址空间 上图简单描述了一个32位和...
原文:The Challenges of Synthesizing Hardware from C-Like Languages. 我们之所以选择将C语言作为硬件综合的目标,主要原因是大家对C语言已经比较熟悉了。人们也认为通过这种方式,我们很容易实现硬件-软件的协同设计。然而本文认为纯C语言并不是一个面向硬件编程的合适的语言,硬件的一大优势是并行性,但是C不提供原生的并行编程支持,因此综合...