• 第一章-处理器体系结构


    1.请简述精简指令集 RISC 和复杂指令集 CISC的区别。

    • 1.简单指令集一般在一个cycle就完成执行。
    • 2.CISC指令集更容易做到向前兼容,凭借此一统PC和服务器市场。
    • 3.RISC指令集,只保留简单的指令集,可以省下很多晶体管,所以更容易实现低功耗和嵌入式。

    2. 请简述数值0x12345678 在大小端字节序处理器的存储器中的存储方式

    • 1.大端模式下地址的增长顺序与值的增长顺序相同。
    0x430:1234 5678 0000 0000
    0x440:0000 0000 0000 0000
    
    • 1
    • 2
    • 2.小端模式数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址。
    0x430:7856 3412 0000 0000
    0x440:0000 0000 0000 0000
    
    • 1
    • 2

    3. 请简述在你所熟悉的处理器(比如双核Cortex-A9)中一条存储读写指令的执行全过程

    • 1.在一个支持超标量和乱序执行技术的处理器当中,一条存储读写指令的执行过程被分解为若干步骤。
    • 2.指令首先进入流水线(pipeline)的前端(front-end),包括预取(fetch)和译码(decode),经过分发(dispatch)和调度(scheduler)后进入执行单元,最后提交执行结果。
    • 3.所有的指令采用顺序方式(In-Order)通过前端,并采用乱序的方式进行发射,然后乱序执行,最后用顺序方式提交结果,并将最终结果更新到LSQ(Load-Store-Queue)部件。
    • 4.LSQ部件是指令流水线的一个执行部件,可以理解为存储子系统的最高层,其上接收来自CPU的存储器指令,其下连接着存储器子系统。其主要功能是将来自CPU的存储器请求发送到存储器子系统,并处理其下存储器子系统的应答数据和消息。

    4.请简述内存屏障(memory barrier)产生的原因

    • 1.是因为内存乱序访问,程序在运行时的实际内存访问顺序和程序代码编写不一致,会导致内存乱序访问。
    • 2.内存乱序访问的出现是为了提高程序运行时的性能。内存乱序访问主要发生在如下两个阶段。
      • 编译时,编译器优化导致内存乱序访问。
      • 运行时,多cpu间交互引起的内存乱序访问。

    5.ARM有几条memorybarrier的指令?分别有什么区别?

    • 1.数据存储屏障(Data Memory Barrier,DMB)数据存储器隔离。DMB指令保证:仅当所有在它前面的存储器访问操作都执行完毕后,才提交(commit)在它后面的存取访问操作指令。当位于此指令前的所有内存访问均完成时,DMB指令才会完成。
    • 2.数据同步屏障(Data synchronization Barrier,DSB)数据同步屏障,比DMB要更严格一些,仅当所有在它前面的存储访问操作指令都执行完毕后,才会执行在它后面的指令,即任何指令都要等待DSB前面的存储访问完成。位于此指令前的所有缓存,如分支预测和TLB(Translation Look-aside Buffer)维护操作全部完成。
    • 3.指令同步屏障(Instruction synchronization Barrier,ISB)指令同步屏障。它最严格,冲洗流水线(Flush pipeline)和预取buffers(pertLbuffers)后,才会从cache或者内存中预取ISB指令之后的指令。ISB通常用来保证上下文切换的效果,例如更改ASID(Address Space Identifier)、TLB维护操作和C15寄存器修改等。

    6.请简述cache的工作方式。

    7.cache 的映射方式有 full-associative(全关联)、direct-mapping(直接映射)和 set-associative(组相联)3种方式,请简述它们之间的区别。为什么现代的处理器都使用组相联的cache映射方式?

    8.在一个32KB的4路组相联的cache中,其中cacheline为32Byte,请画出这个cache的cache line、way和set的示意图。

    9.ARM9处理器的 Data Cache组织方式使用的 VIVT,即虚拟 Index虚拟 Tag,而在 Cortex-A7处理器中使用PIPT,即物理Index物理Tag,请简述PIPT比VIVT有什么优势?

    10.请画出在二级页表架构中虚拟地址到物理地址查询页表的过程。

    11.在多核处理器中,cache的一致性是如何实现的?请简述 MESI 协议的含义。

    12.cache在Linux内核中有哪些应用?

    13.请简述ARMbig.LITTLE架构,包括总线连接和 cache管理等。

    14.cache coherency和memory consistency有什么区别?

    15.请简述cache的write back有哪些策略。

    16.请简述cacheline的替换策略。

    17.多进程间频繁切换对TLB有什么影响?现代的处理器是如何面对这个问题的?

    18.请简述NUMA架构的特点。

    19.ARM从Cortex系列开始性能有了质的飞跃,比如Cortex-A8/A15/A53/A72,请说说Cortex系列在芯片设计方面做了哪些重大改进?

  • 相关阅读:
    远程桌面管理软件,如何使用远程桌面管理软件来远程控制服务器
    Linux常用的命令
    【数据治理】Atlas2.2.0独立部署-单节点
    力扣83. 删除排序链表中的重复元素(java常规解法 + 建立虚拟头节点)
    产品思维训练 | 新用户从注册到绑卡流失率很高是什么原因?
    Git的下载安装和启动(win10)
    数据结构与算法——线性表的顺序存储
    横向AlGaN/GaN基SBD结构及物理模型数据库的开发
    亚马逊短视频制作需要注意什么?
    java计算机毕业设计家居体验平台的设计与实现源码+系统+数据库+lw文档
  • 原文地址:https://blog.csdn.net/weixin_39247141/article/details/124744318