V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
acgt
V2EX  ›  程序员

疯了!把系统完全加载入 cpu 缓存,吊打 ramos

  •  
  •   acgt · 2023-04-25 02:07:06 +08:00 · 4613 次点击
    这是一个创建于 606 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问这个设想有实现的吗? 只要功率足够、散热足够就可以一直稳定运行下去???

    31 条回复    2023-04-25 18:07:47 +08:00
    xiadong1994
        1
    xiadong1994  
       2023-04-25 03:46:02 +08:00   ❤️ 4
    呃,一般 CPU 的缓存都是不能直接操作的,对于 CPU 来说访问缓存是透明的。
    Quarter
        2
    Quarter  
       2023-04-25 08:10:43 +08:00 via iPhone
    好像没什么必要👀
    shakoon
        3
    shakoon  
       2023-04-25 08:38:46 +08:00
    正如 1 楼所说,cpu cache 的读写是比指令集还低层级的操作,这事除了 cpu 厂家可能没人办得到
    jwangkun
        4
    jwangkun  
       2023-04-25 08:44:55 +08:00
    刚看到一个视频,把系统装在内存里,已经实现了,高达 2G 的 IO
    villivateur
        5
    villivateur  
       2023-04-25 08:45:54 +08:00
    @xiadong1994 有部分架构的三级缓存是可以像内存一样使用的(似乎是某些 ARM ,记不清了)

    但我还是想吐槽 OP 的标题党,我还以为他实现了这种功能呢。
    twor2
        6
    twor2  
       2023-04-25 08:47:44 +08:00
    改个名字就能实现
    把 CPU+内存封装在一起,就叫叫 CPU
    yyzh
        7
    yyzh  
       2023-04-25 08:55:28 +08:00 via Android
    @twor2 GPU 就是这样干的 HBM 和核心放一起.
    unnamedhao
        8
    unnamedhao  
       2023-04-25 08:57:33 +08:00 via iPhone
    回忆一下,为何当初冯大爷要设计分级呢?
    lhbc
        9
    lhbc  
       2023-04-25 09:21:57 +08:00 via Android
    你什么业务只跑 OS ?应用不耗 CPU 吗?
    lisxour
        10
    lisxour  
       2023-04-25 09:25:01 +08:00
    cpu 缓存你就别想了,但是你可以用内存弄虚拟盘,把系统装进去
    sadfQED2
        11
    sadfQED2  
       2023-04-25 09:29:00 +08:00 via Android
    不可能,
    第一是 cpu cache 不是你能操作
    第二,就算你能操作,cpu cache 跟内存不一样,运行逻辑都不一样,你放进去怎么用啊
    banmuyutian
        12
    banmuyutian  
       2023-04-25 09:37:15 +08:00
    确实是疯了,就算能操作 cpu cache 你往里面存满那计算机也不用运行了,总不能说人不吃饭不行就全身长满消化系统吧
    cxh116
        13
    cxh116  
       2023-04-25 09:40:10 +08:00 via Android
    单片机。
    israinbow
        14
    israinbow  
       2023-04-25 09:41:11 +08:00 via Android
    imtel 的新架构引入了 l4 缓存,兴许能让内核加载进去。
    LXGMAX
        15
    LXGMAX  
       2023-04-25 09:42:20 +08:00
    已经在挖沙子准备做脸盆这么大的 SRAM 块了
    Symbo1ic
        16
    Symbo1ic  
       2023-04-25 09:43:28 +08:00
    这种情况感觉还是看平台吧,还得看 cpu 组成。首先容量得够,还得保证 os 的任何一部分代码进 cache 不会引起强制失效,这玩意都是 cpu 的事情,对我们程序员是透明的。
    wtsamuel
        17
    wtsamuel  
       2023-04-25 09:45:32 +08:00
    你这是嫌 cpu 不够贵, 是吧
    zhaoyta
        18
    zhaoyta  
       2023-04-25 09:47:28 +08:00
    烧多少晶体管进去
    clannadmk
        19
    clannadmk  
       2023-04-25 09:48:28 +08:00
    阿里 UC 震惊部每年输送到社会的人 cai
    shijingshijing
        20
    shijingshijing  
       2023-04-25 09:50:23 +08:00
    CPU 内部 Cache 用的 SRAM ,一个 Cell 需要四个晶体管实现;内存用的 DRAM ,一个 Cell 只需要一个电容,这就注定了 Cache 再怎么做都赶不上 DRAM ,此外 SRAM 的功耗和发热比 DRAM 要高多了,即使 DRAM 需要定时刷新。
    iamqk
        21
    iamqk  
       2023-04-25 10:05:17 +08:00
    @xiadong1994 只要系统足够小,就可以把数据永远保留在缓存😏
    Nazz
        22
    Nazz  
       2023-04-25 10:23:36 +08:00
    x3d 能加载进去吗
    idealhs
        23
    idealhs  
       2023-04-25 10:26:39 +08:00
    符合我对非计算机专业的刻板印象
    artnowben
        24
    artnowben  
       2023-04-25 10:31:23 +08:00
    性能是一方面,操作系统要提供易用的接口
    duke807
        25
    duke807  
       2023-04-25 10:49:19 +08:00 via Android
    可以的,我亲自试过

    平台是 ingenic xburst mips cpu

    系统启动的时候,ddr 还没有初始化,所以不能使用

    rom 代码或者由 rom 加载到很小的 sram 的第一阶段启动代码,会访问一下指定且连续的 ddr 内存地址,虽然 ddr 还没初始化,但是 cache line 会因此移动到该地址区域,接下来读写这一段 ddr 内存,实际上都是在读写 cache ,要注意的是,千万不能访问超出 cache 大小的 ddr 内存区域就没事
    acidsweet
        26
    acidsweet  
       2023-04-25 11:14:02 +08:00
    一个最大的阻碍:缓存是 core 独享或者是 cluster 独享的,咋存系统
    CQdake
        27
    CQdake  
       2023-04-25 11:17:06 +08:00
    CPU 缓存不是只有几 M 大小吗?怎么运行系统?
    cs8425
        28
    cs8425  
       2023-04-25 11:29:31 +08:00
    广义上的"系统"还是有的
    @duke807 #25 提到的应该类似这种: CAR: Using Cache as RAM in LinuxBIOS

    另外 microkernel 是很有可能全部塞进 cache 的
    seL4 在 64-bit RISC-V 上只有 138kB
    https://docs.sel4.systems/projects/sel4/frequently-asked-questions.html#what-is-the-size-of-sel4
    darkengine
        29
    darkengine  
       2023-04-25 12:37:35 +08:00
    把 CPU 缓存搞得跟现在主流内存那么大是吧,带 16GB cache 的 CPU 不知道价格多高了。
    mxT52CRuqR6o5
        30
    mxT52CRuqR6o5  
       2023-04-25 12:39:10 +08:00
    缓存做不大的,小了才能快
    lakehylia
        31
    lakehylia  
       2023-04-25 18:07:47 +08:00
    不行,存储的延时跟存储与 cpu 的距离有关。负距离的只能是 L1 / L2 ,内存都要靠边站,进不去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2754 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:44 · PVG 17:44 · LAX 01:44 · JFK 04:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.