芯片工程师求职题目之CPU篇(3)
1. 什么是cache(缓存)?它的工作原理是什么?
Cache是少量的快速内存。它位于主存储器和中央处理器之间。每当CPU请求memory位置的内容时,首先检查cache中是否有此数据。如果数据存在于cache中,CPU直接从cache中获得数据。这是更快的,因为CPU不需要去memory拿数据。如果数据不在cache中,则从memory读取一块内容到cache中,然后传递所需的数据块给CPU。当一个地址在cache中被查找时,如果缓存中包含该地址的内容,它就被称为cache命中。反之称之为cache丢失。
2. 在有cache使能的机器上,在链表(linked list)中搜索数据与在向量(vector)中搜索数据的程序的性能会有差异吗?
链表是一种将元素存储在非连续内存位置的数据结构,而向量是一种将元素存储在连续位置的数据结构。
对于使用cache的设计:如果一个内存位置存在于cache中,那么很有可能其它连续字节也会存在于cache中,因为从主存到cache的任何读取通常都是根据cache line(通常是32或64或128字节)进行的。正因为如此,在有cache的机器上,搜索向量比搜索链表要快。
3. 将memory映射到cache的不同方法有哪些?比较每种方法的优缺点。
有3种主要的映射技术用于映射memory和cache的内容。在每一种映射中,memory和cache被话费为很多块(cache line,通常为64字节大小),这是用于映射的最小大小。
- 直接映射:在直接映射中,memory中每个块只能映射到cache的一个特定块中。这是所有映射中最简单的,通过知道memory地址,可以很容易计算出cache中可能位置,并且仅与单个位置的标记位进行比较就可以算出是否命中cache。这种映射的缺点是,即使cache可能未满,但如果memory访问是在同一块中的地址,则可能导致更多的替换并且效率不高。
- 全相联映射:在全相联映射中,任何memory块都可以映射到cache中的任何块。这种方式的优点是cache的所有位置都可以被充分利用,命中率高。但是成本高,查找是否命中最慢。
- 组相联映射:它是直接映射和全相联映射的折中,在组相联映射中,cache块被分为若干个块集合。memory地址与cache地址的映射转换有两部分,组地址是按直接映射方式,按地址进行访问,而块地址是采用全相联方式,按内容访问。这种映射的优点是cache块的冲突概率比较低,块的利用率大幅度提高,块失效率明显降低。但是实现难度和造价都要比直接映射高。不过,现在这种映射在cache实现中使用最为广泛。
4. 4路组相联映射的cache的总大小为256KB。如果每个cache块(cache line)的大小是64字节,那么cache中有多个集合(cache set)?假设地址位宽为32-bit,需要多少地址位作为标签位(tag)?
Cache的块总数 = (256*1024)/64 = 4096。因为cache是4路组相联,集合数 = 4096/4 = 1024。给定一个32位的地址(address)和64字节的cache块,address[5:0]用于索引cache块内部的字节,address[15:6]被用来找出哪一组地址映射。剩余的address[31:16]用作标签位,也就是16位。
5. Write-through和write-back的cache区别是什么?各有什么优缺点?
Write-through cache:在write-through cache中,每个对cache的写操作同时也写入memory。这很容易设计,因为相对于cache而言,memory总是最新的,但缺点会经常占用memory带宽。
Write-back cache:在write-back cache中,每次对cache的写操作都只写到cache中。写memory被延迟,直到cache块被替换掉。Write-back cache在memory带宽使用上更友好,因为数据只在需要时才写回memory。但如果系统中有多个cache可以缓存相同的地址,那么维护一致性的数据就会变得复杂,因为内存可能并不总是有最新的数据。
6. Inclusive cache和exclusive cache有什么不同?
Cache的inclusive和exclusive属性适用于具有多个cache级别的设计,例如包含L1、L2和L3 cache。
如果L1 cache中存在的所有内容被设计为也存在于L2 cache中,则L1 cache称为inclusive cache。如果保证所有的内容最多只存在于一个L1或L2 cache中,而不同时存在于两个cache中,那么这些cache就称为exclusive cache。Exclusive cache的优点是多级cache可以一起存储更多的数据。Inclusive cache的优点是,在多处理器系统中,如果必须从处理器的cache中删除一个cache块,则只需要在L2 cache中检查它就行,而对于exclusive cache,则必须检查它是否存在于L1和L2 cache中。

相关文章:
芯片工程师求职题目之CPU篇(3)
1. 什么是cache(缓存)?它的工作原理是什么? Cache是少量的快速内存。它位于主存储器和中央处理器之间。每当CPU请求memory位置的内容时,首先检查cache中是否有此数据。如果数据存在于cache中,CPU直接从cache中获得数据。这是更快…...
Grounding dino + segment anything + stable diffusion 实现图片编辑
目录 总体介绍总体流程 模块介绍目标检测: grounding dino目标分割:Segment Anything Model (SAM)整体思路模型结构:数据引擎 图片绘制 集成样例 其他问题附录 总体介绍 总体流程 本方案用到了三个步骤,按顺序依次为:…...
如何选择更快更稳定的存储服务器
选择更快、更稳定的存储服务器需要考虑以下几个方面: 存储介质:存储服务器的主要存储介质包括固态硬盘(SSD)和机械硬盘(HDD)。相比于机械硬盘,固态硬盘具有更高的读写速度和更低的延迟…...
此芯科技加入 openKylin 开源社区
导读近日消息,据此芯科技官方公众号表示,此芯科技目前已经签署 openKylin 社区 CLA(Contributor License Agreement 贡献者许可协议),正式加入 openKylin 开源社区。 此芯科技成立于 2021 年,是一家专注于设…...
开发一个RISC-V上的操作系统(七)—— 硬件定时器(Hardware Timer)
目录 往期文章传送门 一、硬件定时器 硬件实现 软件实现 二、上板测试 往期文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导…...
电池的正极是带正电?
首先说明结论:电池正极带正电,负极带负电。 一个错误的实例: 如果说电流是从电池正极流动到电池负极,那么电子就是从负极流动到正极,那么正极就是带负电。----这个说法是错误的。这是因为,根据那么很出名…...
Go 协程为什么比进程和线程占用的系统资源低?
1 介绍 进程是一个程序在执行时所占据的独立虚拟内存空间,Linux为每个进程分配一个虚拟内存空间,包括栈、未使用的内存、堆、BSS、DATA和TEXT等。 线程可以看作是轻量级的进程,多个线程在一个进程中“共生”,每个线程拥有独立的…...
性能测试—Jmeter工具
文章目录 性能测试1. 术语介绍2. 方法3. 应用场景4. 工具(Jmeter)4.1 介绍4.2 元件和组件4.2.2 元件4.2.1 组件 4.3 作用域4.4 参数化4.5 执行脚本 性能测试 1. 术语介绍 响应时间(Response time):对请求作出响应所需要的时间。 在互联网上对…...
【分布式系统】聊聊高性能设计
每个程序员都应该知道的数字 高性能 对于以上的数字,其实每个程序员都应该了解,因为只有了解这些基本的数字,才能知道对于CPU、内存、磁盘、网络之间数据读写的时间。1000ms 1S。毫秒->微秒->纳秒-秒->分钟 为什么高性能如此重要的…...
自动驾驶数据集汇总
1.Nuscenes 数据集链接:nuScenes nuscenes数据集下有多个任务,涉及Detection(2D/3D)、Tracking、prediction、激光雷达分割、全景任务、规划控制等多个任务; nuScenes数据集是一个具有三维目标注释的大型自动驾驶数…...
面向对象的基本原则
背景 面向对象是抽象技术的一种实现,将对象作为真实世界中实体的抽象,代表了特定的一块密集而内聚的信息。在面向对象设计及实现中,重点考虑的就是如何做到关注点分离。因为对象内的联系通常比对象间的联系更强。关注点分离就是将对象中高频…...
C语言开发基础知识(一)
文章目录 数据类型宏变量函数inline 内联函数static 关键字的作用const 关键字的作用extern 关键字的作用volatile 关键字的作用include 关键字的作用数组、字符串指针堆内存管理结构体文件操作数据类型 C语言中数据类型分有符号和无符号,默认是有符号的。 有符号类型: 数据…...
API网关类型与区别
什么是API网关? 在现代软件架构中,API(应用程序编程接口)网关起着重要的作用。它是一个中间层,用于管理和控制应用程序之间的通信。API网关可以提供一些关键功能,如流量控制,安全认证ÿ…...
linux:nginx网站升级至http2
参考: 怎样把网站升级到http/2 - 知乎 HTTP/2 与 HTTP/1.1:它们如何影响 Web 性能? | Cloudflare 总结: nginx.conf修改 http2需要ssl支持 listen 443 ssl http2;...
Flutter:屏幕适配
flutter_screenutil flutter_screenutil是一个用于在Flutter应用程序中进行屏幕适配的工具包。它旨在帮助开发者在不同屏幕尺寸和密度的设备上创建响应式的UI布局。 flutter_screenutil提供了一些用于处理尺寸和间距的方法,使得开发者可以根据设备的屏幕尺寸和密度…...
中科亿海微ROM使用
标题 ROM(Read-Only Memory,只读存储器)是一种在FPGA(Field-Programmable Gate Array,现场可编程门阵列)中常用的存储器类型。与RAM(Random Access Memory,机存取存储器)…...
Python接口自动化测试之UnitTest详解
基本概念 UnitTest单元测试框架是受到JUnit的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。 它分为四个部分test fixture、TestC…...
python——案例17:判断某年是否是闰年
案例17:判断某年是否是闰年 判断依据:闰年就是能被400整除,或者能被4整除的年份numint(input(输入年份:))if num%1000: if num%4000: #整百年份的判断print("%s年是闰年"%num) #…...
allure测试报告
使用pytest结合Allure进行测试报告生成的简单教程 allure测试报告 Allure基于Java开发,因此我们需要提前安装Java 8或以上版本的环境。 ◆安装allure-pytest插件在DOS窗口输入命令“pip3 install allure-pytest”,然后按“Enter”键。 下载安装Allure…...
Vue 路由懒加载
Vue 路由懒加载 随着 Web 应用的复杂性不断增加,性能优化成为了开发人员必须面对的挑战之一。Vue 路由懒加载是一项关键技术,它可以帮助我们提高 Web 应用的加载速度,从而提升用户体验。 在本篇技术博文中,我们将深入探讨 Vue 路…...
终极自动化:在CI中实现gumbo-parser文档生成的完整指南
终极自动化:在CI中实现gumbo-parser文档生成的完整指南 【免费下载链接】gumbo-parser An HTML5 parsing library in pure C99 项目地址: https://gitcode.com/gh_mirrors/gum/gumbo-parser gumbo-parser是一个纯C99编写的HTML5解析库,它能够高效…...
第一范式是关系型数据库设计的最基本要求,核心规则是**关系模式的所有属性都是不可再分的原子数据项**
第一范式是关系型数据库设计的最基本要求,核心规则是关系模式的所有属性都是不可再分的原子数据项,即表中每一列的取值都是单一值,不存在组合值或多值情况。 1NF的典型问题 以教材中的FIRST关系表为例(供应商-零件供应关系&#x…...
如何在云主机上安装Oracle 19c_公网IP绑定与安全组端口开放
Oracle 19c 连不上需依次检查:监听是否绑定公网IP(修改listener.ora中HOST为0.0.0.0或公网IP并lsnrctl reload)、系统防火墙是否放行1521端口、tnsnames.ora中HOST地址匹配客户端网络位置(公网/内网)、以及listener.or…...
**发散创新:基于Solid协议的Web3.0去中心化身份认证系统实战
发散创新:基于Solid协议的Web3.0去中心化身份认证系统实战解析 在Web3.0时代,用户数据不再由中心化平台掌控,而是通过区块链与去中心化存储技术实现自主权。其中,去中心化身份(DID) 成为构建可信数字身份体…...
Python 基础教程:列表(第9篇)
什么是列表? 在python中列表(list)是一种有序、可变的数据类型,可以存储任意类型的对象(整数、浮点数、字符串甚至其他列表),使用方括号[]定义,元素之间用逗号分隔。 特点࿱…...
AIAgent情感陪伴已进入“临界渗透期”:工信部2026Q1备案数据显示,全国仅17家机构通过情感意图识别三级认证
第一章:AIAgent情感陪伴已进入“临界渗透期”:政策拐点与产业共振 2026奇点智能技术大会(https://ml-summit.org) 当《人工智能伦理治理指导意见(2025年修订版)》首次将“情感交互类AI服务”单列监管条目,当国家卫健…...
国家区块链技术与战略发展分析报告
国家区块链技术与战略发展分析报告 一、战略背景与顶层设计定位 区块链作为新一代信息技术的重要组成部分,已成为我国数字经济发展的核心信任基础设施。自 2019 年 10 月 24 日中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习以来,国家明…...
【C++ 基础 】C++14 中为什么 make_shared / make_unique 更安全?
目录标题C14 中为什么 make_shared / make_unique 更安全?一、最核心的原因:避免裸 new二、异常安全更好三、代码更简洁,也更不容易写错四、make_shared 通常效率更高直接写法make_shared 写法五、make_unique 同样推荐使用六、什么时候不一定…...
从零组装F450四轴:APM飞控调参与GPS校准实战指南
1. F450四轴组装前的准备工作 第一次组装无人机就像拼装一台会飞的乐高,既兴奋又充满挑战。我去年第一次接触F450机架时,发现这确实是新手入门的绝佳选择——价格亲民、结构简单、扩展性强。不过要让它真正飞起来,准备工作可不能马虎。 核心部…...
3分钟搞定iPhone USB网络共享:Windows用户的终极解决方案
3分钟搞定iPhone USB网络共享:Windows用户的终极解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…...
