计算机体系结构基础复习

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.计分板算法)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css 怎么绘制一个带圆角的渐变色的边框

1&#xff0c;可以写两个样式最外面的div设置一个渐变的背景色。里面的元素使用纯色。但是宽高要比外面元素的小。可以利用里面的元素设置padding这样挡住部分渐变色。漏出来的渐变色就像边框一样。 <div class"cover-wrapper"> <div class"item-cover…

春节回家前,请一定给你的电脑装上KKView远程控制软件

马上春节了&#xff0c;电脑不能带回家&#xff0c;有时候要处理点意外的事情&#xff0c;怎么办&#xff1f;只要走之前&#xff0c;给你电脑装上KKView远程控制软件&#xff0c;就可以随时随地用手机或电脑控制你的工作电脑&#xff0c;远程办公、传文件、看摄像头都没问题。…

人脸识别为何老是不过?是什么原因导致的?

人脸识别可能无法通过的原因有很多&#xff0c;以下是可能的一些原因&#xff1a; 1. 非常规面部表情&#xff1a;如果你做出了与常规面部表情不同的表情&#xff0c;如张大嘴巴或瞪大眼睛等&#xff0c;可能会干扰人脸识别系统的准确性。 2. 光线条件&#xff1a;人脸识别系统…

30 3D导航栏

效果演示 实现了一个导航栏&#xff0c;其中包含了五个图标&#xff0c;每个图标都有一个悬浮的文字标签&#xff0c;当鼠标悬停在图标上时&#xff0c;文字标签会旋转并向上移动&#xff0c;同时底部会出现一个阴影效果。整个导航栏的背景颜色为浅灰色。 Code <ul><…

js(JavaScript)数据结构之堆(Heap)

什么是数据结构&#xff1f; 下面是维基百科的解释&#xff1a; 数据结构是计算机存储、组织数据的方式。数据结构意味着接口或封装&#xff1a;一个数据结构可被视为两个函数之间的接口&#xff0c;或者是由数据类型联合组成的存储内容的访问方法封装。 我们每天的编码中都会…

docker安装部署Elasticsearch(ES)以及相关配置

Elasticsearch简介 mysql用作持久化存储&#xff0c;ES用作检索 基本概念&#xff1a;index库>type表>document文档 index索引&#xff08;相当于MySQL的数据库&#xff09; 动词&#xff1a;相当于mysql的insert 名词&#xff1a;相当于mysql的db Type类型&#xff…

Spring Cloud整体架构解析

Spring Cloud整体架构 本文已收录至我的个人网站&#xff1a;程序员波特&#xff0c;主要记录Java相关技术系列教程&#xff0c;共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源&#xff0c;让想要学习的你&#xff0c;不再迷茫。 Spring Cloud的中文名我们就…

Flask架构--路由和蓝图

学习视频&#xff1a;第二章&#xff1a;路由和蓝图 1 Flask查询路由的方式_哔哩哔哩_bilibili 参考&#xff1a;Flask框架之路由与蓝图的使用_flask 路由和蓝图-CSDN博客 1.路由的概念&#xff1a; 用于将http请求与特定的python函数相匹配。定义路由后&#xff0c;flask程…

电子学会C/C++编程等级考试2023年09月(六级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:生日相同 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536 输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一…

利用XSS漏洞打cookie

目录 1、为什么要打cookie&#xff1f; 2、怎样利用XSS来打cookie&#xff1f; 3、利用Bluelotus_xssReceiver平台来打cookie 4、利用beef-xss平台来打cookie 上一篇给大家介绍了xss漏洞的基础知识&#xff0c;在本篇章将会介绍和演示一下利用xss漏洞打cookie的演示&#x…

【用法总结】LiveData组件要点

1、如何实现和生命周期的关联&#xff1f; 调用observe()方法时&#xff0c;第一个参数传入LifecycleOwner对象&#xff0c;而LifecycleOwner能通过getLifecycle()方法获取到lifecycle对象&#xff0c;然后执行lifecycle.addObserver()添加LiveData中数据&#xff08;mData&am…

1116: 删除元素(数组)

题目描述 输入一个递增有序的整型数组A有n个元素&#xff0c;删除下标为i的元素&#xff0c;使其仍保持连续有序。注意&#xff0c;有效下标从0开始。 定义如下两个函数分别实现删除元素操作和数组输出操作。 void del(int a[], int n, int i); /*删除数组a中下标为i的元素*…

Matlab怎样合并两个矩阵(怎样合并多个矩阵)为一个矩阵

1.合并两个矩阵 a [1 2 3;4 5 6] b [7 8 9;1 2 3] c [a,b] %按行&#xff08;横向&#xff09;合并 c [a;b] %按列&#xff08;纵向&#xff09;合并 2.合并多个矩阵 clc clear temp dir([D:\文件夹\,*.txt]); N length(temp);for i 1:N %先读取文件内所有文件 …

将PDF发票转换为excel、xml结构化数据的完美解决方案

随着电子发票的普及&#xff0c;越来越多的企业和个人开始使用PDF格式的电子发票。然而&#xff0c;有时我们需要将电子发票转换为XML格式以便于处理和分析。本文将介绍如何将收到的PDF发票下载为excel、xml文件。首先&#xff0c;我们需要明确一点&#xff0c;PDF是一种基于图…

(菜鸟自学)搭建虚拟渗透实验室——安装Ubantu 8.10 靶机

安装Ubantu 8.10 靶机 新建虚拟机 选择Ubuntu系统 网络适配器模式选用桥接模式 镜像选用ubuntu8.10版本 点击“开启此虚拟机”以开始安装Ubuntu Linux系统 安装ubuntu 首先需要选择安装时的语言&#xff0c;这里选择“中文&#xff08;简体&#xff09;” 选择“安装…

DAY8--learning english

一、积累 1.haunt Why Ghost dont haunt chinese. 为什么鬼不会出现在中国人旁边? 2.confess i have a confession to make ... I actally a blind. 我要坦白一件事……我其实是个盲人。 3.brake Press S button to brake, or to reverse if the vehicle has stopped, 按住…

QT上位机开发(动画效果)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 不管是仿真&#xff0c;还是对真实环境的一比一模拟&#xff0c;动画都是非常好的一种呈现方式。目前在qt上面&#xff0c;实现动画主要有两种方法…

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M

STM32存储左右互搏 SPI总线FATS读写FRAM MB85RS2M 在中低容量存储领域&#xff0c;除了FLASH的使用&#xff0c;&#xff0c;还有铁电存储器FRAM的使用&#xff0c;相对于FLASH&#xff0c;FRAM写操作时不需要预擦除&#xff0c;所以执行写操作时可以达到更高的速度&#xff0…

Jenkins-自动化

定时构建 使用Cron表达式指定执行时间。 # 格式 # ┌──分&#xff08;0 - 59&#xff09; # │ ┌──时&#xff08;0 - 23&#xff09; # │ │ ┌──日&#xff08;1 - 31&#xff09; # │ │ │ ┌─月&#xff08;1 - 12&#xff09; # │ │ │ │ ┌─星期&#…

构建搜索引擎,而不是向量数据库

英文原文地址&#xff1a;Build a search engine, not a vector DB 构建搜索引擎&#xff0c;而不是矢量数据库 2023 年 12 月 19 日 在过去12个月里&#xff0c;向量数据库初创公司数量激增。我并不是来讨论其中任何一个的具体设计权衡。相反&#xff0c;我想回顾一下向量数…