我正在试图了解缓存丢失是如何发生的。到目前为止,我是这样理解的:
CPU对地址x的请求,搜索它自己的(L1/L2)缓存。如果它不在那里,那就是缓存丢失。
现在,这里缺少的是如何准确地发现信息在缓存中不可用?缓存行保留哪些信息?到目前为止,我知道缓存行应该包含以下信息:
Address of the information, Data within that address.
有了这些信息,CPU就可以知道一个地址是否在其缓存中可用。当它有一个无效的数据副本时,就会出现问题。所以我的问题是:
处理器如何发现某些数据是有效的还是无效的?
是否在每个缓存行中都存储了标志?它是否要求协议提供这些信
起初,我认为有一个addresses表是很好的,以便跟踪用户的账单和送货地址……当然,这些将用于订单等。
但是一旦我开始编写代码,我注意到当用户更新这些地址时,我必须能够引用和跟踪这些id,并且对于选项"Shipping is same as my billing address",我需要将对shipping_id的引用更新为billing_id ...
我希望我说的有道理。
我现在正在考虑,我应该在user表中同时包含账单字段和发货字段,或者创建一个user_details表。
实际问题是,存储和管理用户帐单和运输地址的优选(或建议)方法是什么。