while most modern architectures only have _one_
field to specify a register the contents of which are to be added to the >displacement.
Not goals exactly, but constraints. Remember, S/360 had no memory
address relocation hardware such as a hardware base register or paging.
The addresses in a program were real memory addresses. Thus address say
1,000 in a program was real memory address 1,000. So absent base
registers, you couldn't have more than one program in memory at the same
time, since program1's address 1,000 would have referred to the same
real memory address as program2's address 1,000.
Small quibble: This depends on what your loader does. IIRC
(I would have to re-read John Levine's book on linkers and loaders
Index registers were considered a good idea back when they were originally >>introduced. It meant you could redirect an instruction to point somewhere >>else without modifying the instruction in memory.
The earliest incarnations of such were often not 'registers' per-se, but >rather reserved locations in memory (c.f. PDP-8 'TAD I'). The Electrodata >220 had a 'B' register - the predecessor Electrodata 205 was the first >commercial computer to offer an Index register (with the idea inspired
by the Manchester Mark I).
quadi <quadibloc@ca.invalid> writes:
while most modern architectures only have _one_
field to specify a register the contents of which are to be added to the >displacement.
Most? Only the MIPS descendents come to mind. Most of these
architectures have been cancelled (MIPS, Alpha, Nios2), only RISC-V
survives.
Other than that, most architectures support at least [reg+reg]
addressing. I think that adding that addressing mode to the load instructions of these architectures would have been a good idea while
still staying within the 2R,1W register access limit that the
architects seem to have observed. A disadvantage of treating loads differently from stores would be that the decoding and the data path
would be different. The benefit would be that for a loop like
for (i=0; i<n; i++)
a[i]=b[i]+c[i];
the loop body could look as follows:
loop:
ld r1,(r2+r3)
ld r4,(r2+r5)
add r6=r4+r1
sd r6,(r2)
add r2=r2+8
blt r2,r7,loop
while typical RISC-V code has two additional adds in the loop because--- Synchronet 3.21f-Linux NewsLink 1.2
it has to update the cursors into b and c on every iteration.
- anton
According to Thomas Koenig <tkoenig@netcologne.de>:
Not goals exactly, but constraints. Remember, S/360 had no memory
address relocation hardware such as a hardware base register or paging.
The addresses in a program were real memory addresses. Thus address say >>> 1,000 in a program was real memory address 1,000. So absent base
registers, you couldn't have more than one program in memory at the same >>> time, since program1's address 1,000 would have referred to the same
real memory address as program2's address 1,000.
Small quibble: This depends on what your loader does. IIRC
(I would have to re-read John Levine's book on linkers and loaders
You rang? I don't think my book said much about it, but on OS/360 and its descendants, load modules are relocatable and when they're loaded into memory,
which they call program fetch, the addresses in memory, which they call address
constants, are relocated to wherever the module is actually loaded. If you have
three copies of a program running at once, they'd be loaded and relocated to three separate places.
The main motivation for base+displacement was that they both wanted an architecture with large flat addresses, and they needed compact instructions since memory was expensive and the small models would have only 8K or 16K.
On 5/2/2026 11:21 AM, John Levine wrote:
The main motivation for base+displacement was that they both wanted an
architecture with large flat addresses, and they needed compact
instructions since memory was expensive and the small models would have
only 8K or 16K.
Thank you. That is another constraint that John's design doesn't have
to deal with, which should, but apparently doesn't effect his thinking.
quadi <quadibloc@ca.invalid> posted:
...
and today, a computer will often have 16 *gigabytes* of memory.
Home systems now routinely have 64GB and some as large as 256GB
{pre AI consuming all the large DRAM DIMMs.}
On Sat, 02 May 2026 21:29:40 GMT, MitchAlsup <user5857@newsgrouper.org.invalid> wrote:
quadi <quadibloc@ca.invalid> posted:
...
and today, a computer will often have 16 *gigabytes* of memory.
Home systems now routinely have 64GB and some as large as 256GB
{pre AI consuming all the large DRAM DIMMs.}
Many home systems can *support* 64GB - few actually have that much.
The vast majority have 16GB or less.
George Neuner wrote:
On Sat, 02 May 2026 21:29:40 GMT, MitchAlsup
<user5857@newsgrouper.org.invalid> wrote:
quadi <quadibloc@ca.invalid> posted:
...
and today, a computer will often have 16 *gigabytes* of memory.
Home systems now routinely have 64GB and some as large as 256GB
{pre AI consuming all the large DRAM DIMMs.}
Many home systems can *support* 64GB - few actually have that much.
The vast majority have 16GB or less.
Every single one of my home laptops since at least 2010 or so have had >exactly 32 GB. Initially, that was a lot, currently I'm occasionally
feeling the squeeze.
Terje
On Tue, 5 May 2026 10:12:13 +0200, Terje Mathisen
<terje.mathisen@tmsw.no> wrote:
George Neuner wrote:
On Sat, 02 May 2026 21:29:40 GMT, MitchAlsup
<user5857@newsgrouper.org.invalid> wrote:
quadi <quadibloc@ca.invalid> posted:
...
and today, a computer will often have 16 *gigabytes* of memory.
Home systems now routinely have 64GB and some as large as 256GB
{pre AI consuming all the large DRAM DIMMs.}
Many home systems can *support* 64GB - few actually have that much.
The vast majority have 16GB or less.
Every single one of my home laptops since at least 2010 or so have had
exactly 32 GB. Initially, that was a lot, currently I'm occasionally
feeling the squeeze.
Terje
And no doubt you paid through your nose for them. Most people will
not spend that much. Look at what systems are selling in droves:
mostly 8GB..16GB systems and even still 4GB at the low end.
32GB would have been considered a "high end" home system just a few
years ago - it's still considered "high middle".
I don't consider "gamers" to be entirely sane - and AI bullshit notwithstanding - most other users have little or no need for that
much memory.
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 62:45:25 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
10 files (20,373K bytes) |
| Messages: | 264,046 |