×

Linux内核的处理器体系结构的详细资料说明

消耗积分:1 | 格式:pdf | 大小:1.38 MB | 2019-04-23

分享资料个

  本章思考题

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

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

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

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

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

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

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

  8.在一个32KB的4路组相联的cache中,其中cache line为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.请简述ARM big.LITTLE架构,包括总线连接和cache管理等。

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

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

  16.请简述cache line的替换策略。

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

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

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

  Linux 4.x内核已经支持几十种的处理器体系结构,目前市面上最流行的两种体系结构是x86和ARM。x86体系结构以Intel公司的PC和服务器市场为主导,ARM体系结构则是以ARM公司为主导的芯片公司占领了移动手持设备等市场。本书重点讲述 Linux内核的设计与实现,但是离开了处理器体系结构,就犹如空中楼阁,毕竟操作系统只是为处理器服务的一种软件而已。目前大部分的Linux内核书籍都是基于x86架构的,但是国内还是有相当多的开发者采用ARM处理器来进行开发产品,比如手机、IoT设备、嵌入式设备等。因此本书基于ARM体系结构来讲述Linux内核的设计与实现。

  可能有些读者对ARM处理器的命名感到疑惑。ARM公司除了提供处理器IP和配套工具以外,主要还是定义了一系列的ARM兼容指令集来构建整个ARM的软件生态系统。从ARMv4指令集开始为国人所熟悉,兼容ARMv4指令集的处理器架构有ARM7- TDMI,典型处理器是三星的S3C44B0X。兼容ARMv5指令集的处理器架构有ARM920T,典型处理器是三星的S3C2440,有些读者还买过基于S3C2440的开发板。兼容ARMv6指令集的处理器架构有ARM11 MPCore。到了ARMv7指令集,处理器系列以Cortex命名,又分成A、R和M系列,通常A系列针对大型嵌入式系统(例如手机),R系列针对实时性系统,M系列针对单片机市场。Cortex-A7和Coxtex-A9处理器是前几年手机的主流配置。Coxtex-A系列处理器面市后,由于处理性能的大幅提高以及杰出功耗控制,使得手机和平板电脑市场迅猛发展。另外一些新的应用需求正在酝酿,比如大内存、虚拟化、安全特性(Trustzone [2]),以及更好的能效比(大小核)等。虚拟化和安全特性在ARMv7上已经实现,但是大内存的支持显得有点捉襟见肘,虽然可以通过LPAE(Large Physical Address Extensions)技术支持40位的物理地址空间,但是由于32位的处理器最高支持4GB的虚拟地址空间,因此不适合虚拟内存需求巨大的应用。于是ARM公司设计了一个全新的指令集,即ARMv8-A 指令集,支持64位指令集,并且保持向前兼容ARMv7-A指令集。因此定义AArch64和AArch32两套运行环境分别来运行64位和32位指令集,软件可以动态切换运行环境。为了行文方便,在本书中AArch64也称为ARM64,AArch32也称为ARM32。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !