The clue is weak with this one.
The clue is weak with this one.
Some software decrypts as it runs. Mostly games. That'd be an issue if executed from what is assumed to be ROM. ;-}
Doncaster?
I was thinking of a unified memory type thing. This is the limit of my knowledge and imagination. I'm very sorry.
I cannot trust it with all of the bullshit that I have been show it produces.
Also, this means nowt to me!
How would that compare with older, slower RAM?
When you say "glacially", could you give an example for me? (please don't say "like a glacier")
Or a minty polar bear for that matter
<snip>
Damnit man! This is the INTERNET!
Alternatively ... its possible that virtual memory systems are actually not an unmitigated blessing.
Long ago and far away, when DEC introduced the first MicroVax, it was equipped with 1 Megabyte of memory and a 10 Megabyte hard drive, and I guess that a significant chunk of that 10M/b was taken up by the operating system. At the time, the idea of having a full address space was nothing but a pipedream
But then a few years ago we reached the point where it was practical and economically viable to have a 32 bit machine with a fully occupied 4GB memory map. If it were possible for the operating system to implement a scheme of position independent code, then there might not be much demand for any memory above what is physically installed ?
But instead of that, operating systems have become insanely complex (my Windows machine is running around 3000 threads as I am writing this) and we seem to have forgotten why virtual memory systems were ever invented in the first place
Please explain how this would happen. Memory mapping means that when the processor accesses an address, it gets the value from the device. The way this works in practice is that the virtual address is initially unmapped, so that an access to it traps to the operating system, which maps the address to a page of physical RAM and reads a page from the device into that RAM. Thereafter writes happen to the RAM, which is eventually written back to the device either when the mapping is closed or when the virtual memory system decides that it's not worth keeping that page in RAM.
To do this without any RAM would be impractical. You'd have to read an entire block from the SSD and extract the relevant byte from it. And when you wrote a byte you'd have to somehow read the block from the SSD, modify the single byte, and write the block back. How are you going to do that without RAM?
It would of course be possible to construct special-purpose byte-addressible SSD-like hardware, but it's not what we have.
-- Richard
It's all arguable anyway. What are 'registers' if not RAM?
OK
Yopu [put a given affress on the vus and the hatrdware says 'ah yes. that's DWORD 57, sector 32 track 413 of the hard drive' and returns it.
Doesn't have to, could be done in hardware.
And so? substitute disk for RAM and play that sentence back
nobody has been talking 'practical;' at any stage on this conversation.
It was suggested that SSD could behave like RAM and be addressable just like DRAM or ROM
You have pointed out that it cant be directly, I pointed pout that it could with intervening hardware. But both are bloody stupid anyway.
The trouble is most folks here think in terms of the simplified conceptions like 'RAM' or 'SSD' without really understanding how they actually work.
Well, exactly. The answer would of course be with extremely complicated hardware that wouldn't be called 'RAM' to keep people happy. Lets call it '1024k' latch' or 4096 bit 'buffer'
Well exactly.
We build systems out of what is available, not out of what is theoretically possible
The invention of RAM itself was a huge step over inbuilt 'registers' built out of gates....it's not ideal. Especially DRAM.
Well, no. The device sits on the address and data buses and responds to the addresses it maps. There is no necessity for memory (virtual or real) to be at that address.
I was responding to the claim quoted above, that it could work for anything. Do you know of any, say, tape that works as you describe? Or even an SSD?
-- Richard
Cf how the 6502 I/O worked.
I cant remember where it sat though.
It is common for device registers to appear in the address space, and that includes tape drives. And network interfaces often have whole buffers like that.
Which is nothing to do with what we're discussing. The idea is that the contents of the storage appear directly in the address space, not some registers for accessing it.
-- Richard
Except that for some network interfaces, that does happen. But you snipped that bit.
Well, in the end the do. On a tape machine, byte by byte.
Again, not what we're discussing. A network isn't storage, and the interface you describe is just a block of RAM into which data is sequentially copied. The topic is accessing storage without copying the data into RAM.
-- Richard
An SSD is either SATA or NVMe nowadays. SATA drives connect to a SATA controller operating in AHCI mode (the advance clever interface) or IDE emulation mode (look like an old parallel ATA disk). But the CPU cannot access the SATA disk at all, it executes plenty of software in RAM to control the SATA controller.
NVMe disks are not visible to the CPU as they are PCIe endpoints and connect to the PCIe Root Complex. Again a metric shitload of software is run to control the PCIe Root Complex which controls the endpoints.
In either case, the CPU does not see the device. There is a newer form of NVMe that uses its host CPU's memory instead of having memory on board (cheaper). In this case the CPU reads and writes pages of its own memory and the PCIe RC uses DMA to access the memory and transfer the contents to and from the PCIe EP (the NVMEe device).
At no time can the CPU directly access a SATA or NVMe disk.
Flash memory devices do attach to the CPU directly but they normally have a 1k or 4k page of address space that maps into the CPU address. Data for the device is written by the CPU to here and then the Flash chip's built in controller will copy that to the page addressed in the control registers for a write. For a read the page addressed is copied to this area and then the CPU can access it.
There are some Flash devices that support XIP: execute in place where code can be read directly from the device by a CPU. They are used on the Raspberry Pi Pico. But they are not used by "big" PCs (PCs or Macs) in the user space. Some maybe used to hold BIOS boot code.
Now try without copying it into a register.
This is such a dumb thread.
All processors have RAM or need access to it.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required