Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <usda1n$18gea$1@dont-email.me>
Deutsch   English   Français   Italiano  
<usda1n$18gea$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Robert Finch <robfi680@gmail.com>
Newsgroups: comp.arch
Subject: Re: Tonight's tradeoff
Date: Thu, 7 Mar 2024 16:02:45 -0500
Organization: A noiseless patient Spider
Lines: 68
Message-ID: <usda1n$18gea$1@dont-email.me>
References: <uis67u$fkj4$1@dont-email.me> <us3l9r$2vtrd$1@dont-email.me>
 <CxkFN.164321$JLvf.86786@fx44.iad> <us6dvv$3kp3g$1@dont-email.me>
 <95f07d18ea021f53af50c0bf2064ccdf@www.novabbs.org>
 <us7hu4$3qpum$1@dont-email.me> <us7neb$3sv8c$1@dont-email.me>
 <us81je$3v8p5$1@dont-email.me> <us8g78$1rva$1@dont-email.me>
 <dec95c54e6adf32bdcd478f079745e86@www.novabbs.org>
 <us9ffo$argb$1@dont-email.me> <us9vc5$ffl5$1@dont-email.me>
 <usaciv$ibv9$1@dont-email.me>
 <e7e6d152876f385e78404b06eef87121@www.novabbs.org>
 <usbngu$tq9s$1@dont-email.me> <uscf92$12ifq$1@dont-email.me>
 <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 7 Mar 2024 21:02:47 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="62bf69830fd11e8a0b21b52a939d9fa6";
	logging-data="1327562"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/gTesW9Q6uWwY/oeAKYFEoZE1IQzQ8brk="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:3x/cmOOYpSHXCqmggE7avYe1Q2g=
Content-Language: en-US
In-Reply-To: <4072ddfc6031310c0f2a3237e6cb455e@www.novabbs.org>
Bytes: 4639

On 2024-03-07 2:51 p.m., MitchAlsup1 wrote:
> Robert Finch wrote:
> 
>> On 2024-03-07 1:39 a.m., BGB wrote:
>>>
>>>
>> Bigfoot uses a whole byte for access rights, with separate 
>> read-write-execute for user and supervisor, and write protect for 
>> hypervisor and machine modes. He also uses 4 bits for the 
>> cache-ability which match the cache-ability bits on the bus.
> 
> Can you think of an example where a user Read-Only page would not be
> writeable from super ?? Or a device on PCIe ??
> Can you think of an example where a user Execute-Only page would not
> be readable from super ?? Or a device on PCIe ??

I cannot think of examples. But I had thought the hypervisor / machine 
might want to treat supervisor mode like an alternate user mode. The 
bits can always just be set = 7.


> Can you think of an example where a user page marked RWE = 000 would
> not be readable and writeable from super ? Or a device on PCIe ??
> 
A page marked RWE=000 is an unusable page. Perhaps to signal bad memory. 
Or perhaps as a hidden data page full of comments or remarks. If its not 
readable-writeable or executable what is it? Nothing should be able to 
access it, except maybe the machine/debug operating mode.


> Can you think of an example where 2-bits denoting {L1, L2, LLC, DRAM}
> does not describe the cache placement of a line adequately ??
> 
The cache-ability bits were not directly describing cache placement. 
They were like the cache-ability bits in the bus. They specified 
cache-policy. Bufferable / non-bufferable. Write-through, write-back, 
allocate, etc. But now that I reviewed it I forgot I had removed these 
bits from the PTE / TLBE.

I do not like situations where all possible codes are used. So, I would 
probably use three bits. Could a cache line be located in a Register for 
instance?

I cannot envision every usage, although a lot is known today, I thought 
it would be better to err on the side of providing too many bits rather 
than not enough. Not enough is hard to add later. There are loads of 
bits available in the 128-bit PTE, 96 bits would be enough. But it is 
not a nice power of two.

> 
>> I am using the value of zero for the ASID to represent the machine 
>> mode’s ASID. A lot of hardware is initialized to zero at reset, so 
>> it’s automatically the machine mode’s. Other than zero the ASID could 
>> be anything assigned by the OS.
> 
> I do not rely on control registers being set to zero, instead part of
> HW context switching end up reading these out of ROM and into those
> registers--so they can have any reasonable bit pattern SW desires.
> {{This is sort of like how Alpha comes out of reset and streams a ROM
> through the scan path to initialize the internals.}}
> 
> I am also assuming that ASID = 0 is the highest level of privilege;
> but this is purely a SW choice.

Assuming a zero at reset was more of a default ‘if I forget’ approach. I 
have machine state being initialized from ROM too.