首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

漫谈计算机组成原理(五)高速缓冲存储器

我相信,上面这张图你一定已经非常熟悉了,没错,这就是在本章绪论说的“存储器的层次结构”。 上一讲我们介绍了存储层次结构中的L4,即主存。继续向上看,你会看到L3、L2、L1都是高速缓冲存储器。那么究竟什么是高速缓冲存储器呢?那就要从“速度”这个关键词说起。 随着计算机硬件行业的不断进步,以因特尔为首的芯片企业造出了一代又一代的高速CPU, 可以说CPU处理数据的速度是越来越快。但是从图中我们能够看到,L0-L6的设备的速度是逐渐下降的,而且速度相差越来越大。 虽然说近年来的存储技术也有进步,但是照着CPU就差远了。这就造成了CPU和主存之间速度差距越来越大。高速缓冲存储器的存在就是为了尽可能的消除这种差距。 在这个存储层次结构中,虽然高速缓冲存储器分为三个档次,但是他们的作用都是相同的,都是起到一种桥梁的作用,不同的只是速度和造价。此外,L1的速度几乎和寄存器的速度相同。接下来,我们来看看高速缓冲存储器在CPU中的具体位置。

02
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    漫谈计算机组成原理(三)存储器概论

    在本系列文章的前两讲中,分别介绍了计算机组成原理这一系列文章的关注点——程序是如何跑起来的,以及系统总线的相关内容,具体可以看我的这两篇文章。在我的个人博客和CSDN上都已经发布了。在前面的这两章中,我们一直讲,CPU是通过存储器这么一个部件,来获取指令和各种数据的。 但是,从没有更加深入的去讲解这部分的内容。如果你有过装机的经验或者学过计算机的导论等等这些基础课程,肯定会知道,计算机有硬盘、内存条、SSD等等,这些类似的就是我们这一讲的主角——存储器。 你可能会说,我靠我学了这东西好像也没有什么用啊,好像知道了底层的东西对我并没有太大的帮助啊,我的目标仅仅是编写程序啊! 这可能是大家对基础内容的误解,之所以这个系列的文章叫做《程序猿内容心法》,就是因为这些内容对于程序猿来说是十分重要的。你需要了解存储器的层次结构,因为这将会对你编写的程序的性能产生巨大的影响。原因很简单,上面说了,CPU是通过存储器来访问你编写的程序的。你肯定知道,CPU一般对于访问内存条的优先级肯定是要高于硬盘的,因为内存条更快,所以内存条容量的大小对计算机的性能有着很大的影响。如果你的程序能够直接在内存区,肯定执行速度是更快的,性能自然就更好。 顺便提一下,存储这部分内容较多,我分成几个部分来完成写作。第一步帮助读者建立起存储器结构层次的概念,接下来顺着这个层次结构分别介绍主存、高速缓冲存储器、辅助存储的顺序介绍。

    01

    卡3

    51 . 测试1MB以上的存储器。 . 52 所有ISA只读存储器ROM进行初始化,最终给PCI分配IRQ号等初始化工作。 已完成1MB以上的存储器测试;即将准备回到实址方式。 进入键盘检测。 53 如果不是即插即用BIOS,则初始化串口、并口和设置时种值。 保存CPU寄存器和存储器的大小,将进入实址方式。 . 54 . 成功地开启实址方式;即将复原准备停机时保存的寄存器。 扫描“打击键” 55 . 寄存器已复原,将停用门电路A-20的地址线。 . 56 . 成功地停用A-20的地址线;即将检查BIOS ROM数据区。 键盘测试结束。 57 . BIOS ROM数据区检查了一半;继续进行。 . 58 . BIOS ROM的数据区检查结束;将清除发现<ESC>信息。 非设置中断测试。 59 . 已清除<ESC>信息;信息已显示;即将开始DMA和中断控制器的测试。 . 5A . . 显示按“F2”键进行设置。 5B . . 测试基本内存地址。 5C . . 测试640K基本内存。 60 设置硬盘引导扇区病毒保护功能。 通过DMA页面寄存器的测试;即将检验视频存储器。 测试扩展内存。 61 显示系统配置表。 视频存储器检验结束;即将进行DMA#1基本寄存器的测试。 . 62 开始用中断19H进行系统引导。 通过DMA#1基本寄存器的测试;即将进行DMA#2寄存器的测试。 测试扩展内存地址线。 63 . 通过DMA#2基本寄存器的测试;即将检查BIOS ROM数据区。 . 64 . BIOS ROM数据区检查了一半,继续进行。 . 65 . BIOS ROM数据区检查结束;将把DMA装置1和2编程。 . 66 . DMA装置1和2编程结束;即将使用59号中断控制器作初始准备。 Cache注册表进行优化配置。 67 . 8259初始准备已结束;即将开始键盘测试。 . 68 . . 使外部Cache和CPU内部Cache都工作。 6A . . 测试并显示外部Cache值。 6C . . 显示被屏蔽内容。 6E . . 显示附属配置信息。 70 . . 检测到的错误代码送到屏幕显示。 72 . . 检测配置有否错误。 74 . . 测试实时时钟。 76 . . 扫查键盘错误。 7A . . 锁键盘。 7C . . 设置硬件中断矢量。 7E . . 测试有否安装数学处理器。 80 . 键盘测试开始,正在清除和检查有没有键卡住,即将使键盘复原。 关闭可编程输入/输出设备。 81 . 找出键盘复原的错误卡住的键;即将发出键盘控制端口的测试命令。 . 82 . 键盘控制器接口测试结束,即将写入命令字节和使循环缓冲器作初始准备。 检测和安装固定RS232接口(串口)。 83 . 已写入命令字节,已完成全局数据的初始准备;即将检查有没有键锁住。 . 84 . 已检查有没有锁住的键,即将检查存储器是否与CMOS失配。 检测和安装固定并行口。 85 . 已检查存储器的大小;即将显示软错误和口令或旁通安排。 . 86 . 已检查口令;即将进行旁通安排前的编程。 重新打开可编程I/O设备和检测固定I/O是否有冲突。 87 . 完成安排前的编程;将进行CMOS安排的编程。 . 88 . 从CMOS安排程序复原清除屏幕;即将进行后面的编程。 初始化BIOS数据区。 89 . 完成安排后的编程;即将显示通电屏幕信息。 . 8A . 显示头一个屏幕信息。 进行扩展BIOS数据区初始化。 8B . 显示了信息:即将屏蔽主要和视频BIOS。 . 8C . 成功地屏蔽主要和视频BIOS,将开始CMOS后的安排任选项的编程。 进行软驱控制器初始化。 8D . 已经安排任选项编程,接着检查滑了鼠和进行初始准备。 . 8E . 检测了滑鼠以及完成初始准备;即将把硬、软磁盘复位。 . 8F . 软磁盘已检查,该磁碟将作初始准备,随后配备软磁碟。 . 90 . 软磁碟配置结束;将测试硬磁碟的存在。 硬盘控制器进行初始化。 91 . 硬磁碟存在测试结束;随后配置硬磁碟。 局部总线硬盘控制器初始化。 92 . 硬磁碟配置完成;即将检查BIOS ROM的数据区。 跳转到用户路径2。 93 . BIOS ROM的数据区已检查一半;继续进行。 . 94 . BIOS ROM的数据区检查完毕,即调定基本和扩展存储器的大小。 关闭A-20地址线。 95 . 因应滑鼠和硬磁碟47型支持而调节好存储器的大小;即将检验显示存储器。 . 96 . 检验显示存储器后复原;即将进行C800:0任选ROM控制之前的初始准备。 “ES段”注册表清除。 97 . C800:0任选ROM控制之前的任何初始准备结束,接着进行任选ROM的检查及控制。 . 98 . 任选ROM的控制完成;即将进行任选ROM回复控

    03

    Ubuntu环境下测试Cache大小并校验

    Cache存储器:电脑中为高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小,但速度很高的存储器,通常由SRAM(Static Random Access Memory 静态存储器)组成。它是位于CPU与内存间的一种容量较小但速度很高的存储器。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。

    01

    Android APP性能及专项测试

    1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令: adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径> 3、分析hprof文件 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令: hprof-conv <原HPROF文件路径> <转换后的HPROF路径> hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)

    03

    Android APP性能及专项测试

    1、运行Monkey进行压力测试: adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令: adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径> 3、分析hprof文件 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令: hprof-conv <原HPROF文件路径> <转换后的HPROF路径> hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)

    03
    领券