CPU是如何从硬盘读取数据到内存再到Cache的?!

一、CPU如何从内存读取数据的?

首先看一下架构图:
在这里插入图片描述
Cache 中间件的引入是为了平衡CPU处理速度和读取内存数据的差异性。
我们可以这样类比:
把CPU类比成 时速 200km 的高铁。
把读取内存的速度 类比成 撑了拐棍的老奶奶。
CPU不可能停下来等内存的,所以加入了Cache,本质是 SRAM 。 其读取速度比内存内的寄存器组慢一点点。
那现在就知道了如果CPU想读取内存内的某个数据的话,得先看看Cache 里面有没有自己想要的数据,如果有则直接读取,没有则访问内存。
那你可能想问 CPU 怎么知道 Cache 里面得数据对应内存中得哪个数据呢? 很简单那,用一张映射表就可以了。
一张映射表由这几个元素组成:
标识 + 组标记 + 有效位 + 偏移量

如 内存地址 为 10111
我们取低三位 111 为 标识 也就对应 cache Line x
取高二位 10 为 组标记 (为了区分有些内存地址的后三位相同的情况)
有效位: 用于判断数据是不是空的(防止开机时读取空数据)
偏移量(offest): CPU 是一个一个 bit 处理数据的,在读取一连串数据中选出一个来计算。
在这里插入图片描述
CPU通过 标记+组标记 = 内存地址,就可访问对应的内存地址数据。

一、CPU如何从内存读取数据的?

二、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值