Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

k210 是否实现了缓存一致性? #42

Closed
BigBrotherJu opened this issue Mar 4, 2024 · 7 comments
Closed

k210 是否实现了缓存一致性? #42

BigBrotherJu opened this issue Mar 4, 2024 · 7 comments

Comments

@BigBrotherJu
Copy link

如果没有实现缓存一致性,多核运行可能会有问题吧?

@retrhelo
Copy link

retrhelo commented Mar 4, 2024

对于多核来说是有内存一致性是必须实现的,在xv6-k210中主要通过fence指令来完成。可以参考spinlock.c中的代码和注释。

@BigBrotherJu
Copy link
Author

BigBrotherJu commented Mar 4, 2024

我说的是cache coherence,比如两个核读取同一个全局变量,这个变量被放在两个核的两个 cache里,然后一个核改变这个变量的值,两个 cache 必须保证不起冲突。

@retrhelo
Copy link

retrhelo commented Mar 5, 2024

我认为注释里的“to ensure that all the stores in the critical section are visible to other CPUs”已经足够回答你的问题了。

@BigBrotherJu
Copy link
Author

我说的是硬件上 k210 这个 soc 是否实现了 cache coherence,我翻了一下 k210 的手册,好像没有提到实现了。

@SKTT1Ryze
Copy link
Member

我说的是硬件上 k210 这个 soc 是否实现了 cache coherence,我翻了一下 k210 的手册,好像没有提到实现了。

这是一个开源的操作系统内核项目,处理器/硬件层面的缓存一致性一般来说会交给硬件厂商处理,实现细节的话朋友可以咨询下 k210 的制作商。感谢反馈。: )

@BigBrotherJu
Copy link
Author

那如果硬件没有缓存一致性,多核运行 xv6 会有问题吧,你们运行下来有很奇怪的 bug 吗?如果没有的话,可能厂商实现了缓存一致性,没有在手册中提到。:)

@SKTT1Ryze
Copy link
Member

那如果硬件没有缓存一致性,多核运行 xv6 会有问题吧,你们运行下来有很奇怪的 bug 吗?如果没有的话,可能厂商实现了缓存一致性,没有在手册中提到。:)

目前为止我们没有遇到过因为缓存一致性导致的bug,但也不能保证在后面的使用中不会遇到,对于任何软件来说将来遇到的bug都是未知的。朋友如果后面遇到问题,也欢迎在此repo下发issue,我们会尽量抽出时间一起来解决问题。感谢朋友的理解和支持。: )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants