计算机体系结构基础复习

1. 计算机系统可划分为哪几个层次,各层次之间的界面是什么? 你认为这样划分层次的意义何在?

答:

计算机系统可划分为四个层次,分别是:应用程序、 操作系统、 硬件系统、 晶体管四个大的层次。 注意把这四个层次联系起来的三个界面。各层次之间的界面如下:

第一个界面是 应用程序编程接口 API(Application Programming Interface), 也可以称作 “操作系统的指令系统”, 介于应用程序和操作系统之间。 API 是应用程序的高级语言编程接口, 在编写程序的源代码时使用。 常见的 API 包括 C 语言、 Fortran 语言、Java 语言、 JavaScript 语言接口以及 OpenGL图形编程接口等。 使用一种 API 编写的应用程序经重新编译后可以在支持该 API 的不同计算机上运行。 所有应用程序都是通过 AP编出来的, 在 IT 产业, 谁控制了 API 谁就控制了生态, API 做得好, APP(Application) 就多。 API 是建生态的起点。

第二个界面是指令系统 ISA(Instruction Set Architecture), 介于操作系统和硬件系统之间。 常见的指令系统包括 X86、ARM、 MIPS、 RISC-V 和 LoongArch 等。 由于 IT 产业的主要应用都是通过目标码的形态发布的,因此 ISA 是软件兼容的关键, 是生态建设的终点。 指令系统除了实现加减乘除等操作的指令外, 还包括系统状态的切换、 地址空间的安排、 寄存器的设置、 中断的传递等运行时环境的内容。

第三个界面是工艺模型, 介于硬件系统与晶体管之间。 工艺模型是芯片生产厂家提供给芯片设计者的界面, 除了表达晶体管和连线等基本参数的 SPICE(Simulation Program with Integrated Circuit Emphasis) 模型外, 该工艺所能提供的各种 IP 也非常重要, 如实现 PCIE 接口的物理层(简称 PHY) 等。

计算机系统划分为多个层次的意义在于:

提高代码和系统的可维护性:系统分层后,每个层次都有自己的定位和组件分工,使得系统结构更加清晰,维护起来更加明确和方便。

方便开发团队分工和开发效率的提升:有了层次的划分,开发人员可以专注于某一层的某一个模块的实现,从而提高开发效率。

提高系统的伸缩性和性能:系统分层之后,我们可以从逻辑上的分层变成物理上的分层。当系统并发量吞吐量上来了,可以将不同的层部署在不同服务器集群上,不同的组件放在不同的机器上,用多台机器去抗压力,从而提高系统的性能。压力大的时候扩展节点加机器,压力小的时候,压缩节点减机器,系统的伸缩性就是这么来的。

总的来说,通过分层,可以有效地将一个复杂的系统分解为更易于管理和理解的子系统,从而提高系统的效率和可维护性。

2.在一个包含TLB的当代处理器中,回答问题:(1) TLB的作用是什么?(2) 请阐述TLB、TLB失效例外、页表和Page Fault之间的关系;(3) 现代计算机普遍采用页表层次化的方式,请解释原因;(4)如果这样一台机器的设计,对于同样的虚拟地址、TLB 命中和 Page fault 同时发生,这 种设计是否合理,为什么?

答:

(2)当CPU访问内存时,首先会在TLB中查找对应的页表项,如果TLB中没有,会发生TLB失效例外,就会查询页表。如果页表中也没有,就会发生Page Fault,通知操作系统进行相应的处理。

TLB:页表缓冲,里面放的是一些页表文件的子集;

TLB失效例外:在TLB中,没有根据VA找到相应的页表项;

页表:也表示内存的目录,作用是实现逻辑页号导物理块号的映射,简历从逻辑页导物理页的页面映射关系,这些映射就是一张张页表;

Page fault:缺页,指TLB中没有虚拟地址VA对应的页表,主存中也没有VA对应的物理地址,此时发生缺页,需由操作系统处理,花费时间长。

(3) 多级页表可减少存储空间的占用,比如已知处理器的逻辑空间为32位,页大小为4KB->虚地址=20位页号+12位页内偏移

1.单级页表:需220条,设每条需占用4B,共需物理内存4MB;

2.两级页表:设P1占10b,P2占10b;P1粗搜,P2细搜,则各需4KB连续物理内存,且由于并且每次访P1后都要访问P2,使得总的存储空间要比单级小得多。

P1P2Offset

(4)不合理,因为缺页意味着主存中没有VA对应的页表,由于TLB是页表的子集,那么TLB原则上也不该有,此时应发TLB miss,若没有miss,反而hit,说明违背了子集定义,不符合层次化设计需求。

 

(1)TLB是指页表转换后援缓冲器 (TranslationLookaside Buffer ) ,与Cache原理类似,把常用的虚实地址转换表项缓存在TLB内部,可以加快虚地址到物理地址的转换速度,提高访存性能。

转换后援缓冲器 Translation Lookaside Buffer (TLB):

  • Idea:在处理器中用专用硬件来缓冲PTEs,Cache the page tableentries (PTEs) in a hardware structure in the processor;
  • TLB的效率:小规模缓存:Small cache of most recently used translations (PTEs);一次性访存: Reduces number of memory accesses required for mostloads/stores to only one;
  • 页表的局部性原理:数据的时空局部性很强;不同的页面大小(4KB,8KB,or 1-2GB),会使得连续的loads/stores操作大概率会访问同一个页;
  • TLB:访问迅速: < 1 cycle;一般含有16- 512 项;高相关 High associativity;>95-99% 的命中率(与负载类型有关);将Load/Store操作的访存次数降低至 1。

3.    32位处理器、32-bit 地址,每页Page Size :4 KB,每个页表项PTE: 4-byte,共有 2^20 PTEs,每个用户进程的页表 4 MB,为备份全部虚拟地址空间,需要 4 GB 的swap存储空间;但如果是64位处理器,虚拟地址64 bits,每页Page Size : 4 KB,每个页表项PTE: 4-byte PTEs,请问页的数量是多少个?,每个用户的页表大小是多少?

答:

4.在片上网络系统中,请回答一下问题:(1)请列举片上网络的经典拓扑结构,并说明该拓扑结构的优缺点;(2)片上网络路由算法可分为哪几种类型?(3)在自适应路由算法中,可采用哪几种方法避免网络死锁。

答:(1)总线Bus (simplest);点对点Point-to-point connections (ideal and most costly);交叉开关Crossbar (less costly);环Ring;树Tree;网格Mesh;环面Torus;超立方Hypercube;欧米伽网络Omega;

(2)路由算法 Routing Algorithm,三种类型:

  • 确定性路由 Deterministic:始终为通信源-目的地对选择相同的路径;
  • 流量无关路由 Oblivious:不考虑网络状态,选择不同的路径;
  • 自适应路由 Adaptive: 可选择不同的路径来适应网络状态;

路由算法的设计遵从自适应原则设计:局部/全局反馈;最小或非最小路径。

(3)死锁问题 Deadlock的起因:进展停止;由对资源的循环依赖引起;每个数据包等待下游另一个数据包占用的缓冲区;

解决方案:

  • 避免在路由中循环:维度顺序路由 Dimension order routing(无法建立循环相依性);转向记录与限制 Restrict the “turns” each packet can take;
  • 加缓冲:通过添加更多缓冲来避免死锁((escape paths));
  • 监测和打破死锁Detect and break deadlock:可抢占缓冲区;
  • 转向模型 Turn Model to Avoid Deadlock:分析数据包在网络中可能转向的方向;确定这样的转弯可以形成的循环;禁止足够的转弯来打破可能的循环
The Turn Model for Adaptive Routing

5.对于计算机虚拟化技术,回答下列问题:(1)简述Type-1和Type-2 Hypervisor的区别,可画简图;(2)简述虚拟机监控器技术和容器技术技术原理差异,可画简图。

答:(1)Hypervisor虚拟机管理程序

客户端操作系统在VM内运行,而主机操作系统在PM上运行;

Type 1 hypervisor:直接在硬件上运行,不需要主机操作系统;

Type 2 (hosted) hypervisor:作为应用程序运行在主机操作系统之上;

(2)容器和虚拟机的对比

6.对于如下分布式文件存储系统,回答问题:(1)Chunk的位置是否需要持久化?(2)如果一个Chunk大小64MB,元数据64bit,每个文件独立存储三份,那么1PB数据对应的元数据大小是多少?

补充:GFS采用了一系列措施来确保master不会成为整个系统的瓶颈:1.DGFS所有的数据流都不经过master,而是直接由client和chunkserver交互;GFS把控制流和数据流分离,只有控制流才会经过master;2.GFS的client会缓存master中的元数据,在大部分情况下,都无需访问master;3.为了避免master的内存成为系统的瓶颈,GFS采用了一些手段来节省master的内存,包括增大chunk的大小以节省chunk的数量、对元数据进行定制化的压缩等。

答:(1)因为master在重启的时候,可以从各个chunkserver处收集chunk的位置信息;

(2)由下述过程可以轻易得到1TB的文件需要3MB,因此1PB则需要3GB;

总结回顾复习重点:

  1. Cache的工作原理
  2. Cache一致性问题,监听一致性协议 (MSI)
  3. 向量处理器的工作原理
  4. 超长指今字 (VLIW) 以及其他可以提高指令并行的技术
  5. 硬件加速器的主要作用
  6. 包含SIMD处理器的 GPU 体系结构
  7. 给定指今段中的数据依赖关系和执行时序图
  8. 分支指今流水线及其冲突控制加速比
  9. 处理器的时钟周期和CPI
  10. 乱序执行算法(eg.计分板算法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gateway Redisson接口级别限流解决方案

文章目录 前言1. 计数器算法&#xff08;固定窗口限流器&#xff09;2. 滑动窗口日志限流器3. 漏桶算法&#xff08;Leaky Bucket&#xff09;4. 令牌桶算法&#xff08;Token Bucket&#xff09;5. 限流队列应用场景实现工具 一、Redisson简介二、Redisson限流器的原理三、Red…

面向对象三大特征之三:多态--java学习笔记

什么是多态 多态是在继承/实现情况下的一种现象&#xff0c;表现为&#xff1a;对象多态、行为多态 对象多态&#xff1a;举个栗子&#xff0c;比如一个人&#xff0c;他可以是一个老师&#xff0c;也可以是一个歌手&#xff0c;也可以是一个丈夫...... 行为多态&#xff1a;举…

PHP反序列化总结4--原生类总结

原生类的简要介绍以及原生类和反序列化的关系 PHP 原生类指的是 PHP 内置的类&#xff0c;它们可以直接在 PHP 代码中使用且无需安装或导入任何库&#xff0c;相当于代码中的内置方法例如echo &#xff0c;print等等可以直接调用&#xff0c;但是原生类就是可以就直接php中直接…

jmeter分布式服务搭建

目录 一、环境准备 二、 安装包下载 三 、安装jdk 四 、控制机安装 4.1 解压压缩包 4.2 修改 bin/jmeter.properties 4.3 修改 bin/system.properties 五、执行机安装 5.1 解压安装包 5.2 修改 bin/jmeter.properties 5.3 修改 bin/system.properties 5.4 启动执行机 …

关于如何禁用、暂停或退出OneDrive等操作,看这篇文件就够了

​想知道如何禁用OneDrive?你可以暂停OneDrive的文件同步,退出应用程序,阻止它在启动时打开,或者永远从你的机器上删除该应用程序。我们将向你展示如何在Windows计算机上完成所有这些操作。 如何在Windows上关闭OneDrive 有多种方法可以防止OneDrive在你的电脑上妨碍你。…

堆排序——高效解决TOP-K问题

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 引言什么是堆&#xff1f;建堆堆排序&#xff1a;排序的最终结果 堆排序实现函数声明交换函数 Swap下沉调整 DnAdd堆排序函数 HeapSort主函数 文件中找…

SpringBoot+Vue实现对称加密和非对称加密

我们先来了解一下什么是对称加密和非对称加密&#xff0c;以及两者的优缺点 对称加密 使用同一个密钥对消息进行加密解密 优点&#xff1a;加密和解密的速度快&#xff0c;适合于数据量大的加解密 缺点&#xff1a;密钥在网络传输中可能被泄露&#xff0c;因此安全性相对较低…

C++核心编程三:函数提高(持续更新)

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;C从基础到进阶 &#x1f319;C核心编程&#x1f30f;1 函数提高&#x1f384;1.1 函数默认参数&#x1f384;1.2 函数占位参数&#x1f384;1.3 函数重载&#x1f349;1.3.1 函数重载概述&…

护眼灯有蓝光吗?防蓝光护眼台灯推荐

护眼台灯是家长为孩子购买的常见用品之一&#xff0c;但对于它的了解却不够深入&#xff0c;很多人购买之后反而容易出现眼睛疲劳、不适的情况&#xff01;据了解&#xff0c;主要的原因是因为在选择护眼台灯时&#xff0c;大多数人没有专业知识&#xff0c;没有买到合适的护眼…

012集:三目运算符实例讲解(if else)及for、while循环—python基础入门实例

Python也有自己的三目运算符&#xff1a; 条件为真时的结果 if 判段的条件 else 条件为假时的结果 即&#xff1a;Python可以通过if语句来实现三目运算符的功能&#xff0c;因此可以把这种if语句当做三目运算符&#xff0c;具体语法格式如下&#xff1a; 返回True执行 if 表达…

Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问

Github搭建图床 github搭建静态资源库 免费CDN加速 github搭建图床使用 jsdelivr CDN免费加速访问 前言1、创建仓库2、开启 gh-pages页面功能3、访问测试 前言 写博客文章时&#xff0c;图片的上传和存放是一个问题&#xff0c;使用小众第三方图床&#xff0c;怕不稳定和倒闭&…

.net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别

//全局过滤器 builder.Services.AddMvc(m > { m.Filters.Add<AllResultFilter>(); }); 1、实现过滤器 public class AllResultFilter : IResultFilter {/// <summary>/// 结果执行后方法/// 不可更改结果/// </summary>/// <param name"con…

springboot+mysql大学生就业推荐系统-计算机毕业设计源码01535

摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对学生就业管理等问题&#xff0c;对学生就业…

扒开MySQL的源码,探索MVCC实现方式

下载MySQL源码 没有什么比源码更靠谱的了&#xff0c;所以我们先把源码下载下来&#xff0c;后期验证使用MySQL源码下载 MVCC是什么 mvvc全称是multi-version concurrency control&#xff08;多版本并发控制&#xff09;&#xff0c;主要用于处理读写并发冲突的问题。 MVC…

大数据开发之Hive(企业级调优)

第 10 章&#xff1a;企业级调优 创建测试用例 1、建大表、小表和JOIN后表的语句 // 创建大表 create table bigtable(id bigint, t bigint, uid string, keyword string, url_rank int, click_num int, click_url string) row format delimited fields terminated by \t; //…

Asp .Net Core 系列:基于 Swashbuckle.AspNetCore 包 集成 Swagger

什么是 Swagger? Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它提供了一种规范的方式来定义、构建和文档化 RESTful Web 服务&#xff0c;使客户端能够发现和理解各种服务的功能。Swagger 的目标是使部署管理和使用功…

Halcon滤波器 laplace 算子

Halcon滤波器 laplace 算子 使用laplace 算子对图像进行二次求导&#xff0c;会在边缘产生零点&#xff0c;因此该算子常常与zero_crossing算子配合使用。求出这些零点&#xff0c;也就得到了图像的边缘。同时&#xff0c;由于laplace算子对孤立像素的响应要比对边缘或线的响应…

【SpringBoot系列】JDK动态代理

🤵‍♂️ 个人主页:@香菜的个人主页,加 ischongxin ,备注csdn ✍🏻作者简介:csdn 认证博客专家,游戏开发领域优质创作者,华为云享专家,2021年度华为云年度十佳博主 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收…

kafka除了作为消息队列还能做什么?

Kafka 最初是为大规模处理日志而构建的。它可以保留消息直到过期&#xff0c;并让各个消费者按照自己的节奏提取消息。 与其之前的竞品不同&#xff0c;Kafka 不仅仅是一个消息队列&#xff0c;它还是一个适用于各种情况的开源事件流平台。 让我们回顾一下流行的 Kafka 用例。 …

C语言经典算法之冒泡排序算法

目录 前言 建议&#xff1a; 简介&#xff1a; 一、代码实现 二、时空复杂度 时间复杂度&#xff1a; 空间复杂度&#xff1a; 总结&#xff1a; 前言 建议&#xff1a; 1.学习算法最重要的是理解算法的每一步&#xff0c;而不是记住算法。 2.建议读者学习算法的时候…