Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Feels a bit like async on the programming language side. Just replace "waiting for memory" with "waiting for IO" and you're almost there.


> Just replace "waiting for memory" with "waiting for IO" and you're almost there.

You can see the latter in your code, you can’t—on a modern superscalar—see the former. Is the proposed architecture any different?


Haven't seen the ISA, but it's not insane to imagine one where explicit data cache manipulation instructions are a requirement (that a memory access outside a cache would fault). I think it's even helpful to make those operations explicit when you are writing high-performance code. On a processor like this, any operation to load a cache that's not already loaded should trigger a switch to the next runnable thread (which also become entities exposed to the ISA).

Also, I'm not even sure it'd be too painful to program (in assembly, at least). It'd be perhaps inconvenient to derive those ops from C code, but Rust, with its explicit ownership, may have a better hand here.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: