BGB <
cr8...@gmail.com> wrote:
> On 3/6/2020 12:17 AM, Brett wrote:
>> BGB <
cr8...@gmail.com> wrote:
>>> On 3/5/2020 6:59 PM, Bruce Hoult wrote:
>>>> On Thursday, March 5, 2020 at 4:41:44 PM UTC-8, MitchAlsup wrote:
>>>>> On Thursday, March 5, 2020 at 6:41:04 PM UTC-6, MitchAlsup wrote:
>>>>>> On Thursday, March 5, 2020 at 6:14:47 PM UTC-6, Bruce Hoult wrote:
>>>>>>> On Thursday, March 5, 2020 at 3:45:53 PM UTC-8,
program...@gmail.com wrote:
>>>>>>>> On Thursday, March 5, 2020 at 1:40:01 PM UTC-8, MitchAlsup wrote:
>>>>>>>>> On Thursday, March 5, 2020 at 3:11:11 PM UTC-6,
program...@gmail.com wrote:
>>>>>>>>>> On Thursday, March 5, 2020 at 12:35:53 PM UTC-8, MitchAlsup wrote:
>>>>>>>>>>> On Thursday, March 5, 2020 at 1:14:58 PM UTC-6,
program...@gmail.com wrote:
>>>>>>>>>>>> One idea I had for making a spectre-proof speculative execution
>>>>>>>>>>>> engine is to build a theoretical model CPU such that it compares
>>>>>>>>>>>> a branch oracle to the results of it's branch prediction unit
>>>>>>>>>>>> and takes the amount of time needed by the misprediction penalty
>>>>>>>>>>>> when the branch predictor mispredicts, but doesn't actually execute any
>>>>>>>>>>>> mispredicted instructions. This makes the model CPU unable to
>>>>>>>>>>>> have spectre-style vulnerabilities since it doesn't do any
>>>>>>>>>>>> actual speculative execution.
>>>>>>>>>>>
>>>>>>>>>>> The problem Spectré exposes is NOT speculative execution, it is
>>>>>>>>>>> state changes that would not have been visible is there was not speculative
>>>>>>>>>>> execution.
>>>>>>>>>>>
>>>>>>>>>>> Speculative execution == good (so far)
>>>>>>>>>>> State changes under speculation == not good.
>>>>>>>>>>
>>>>>>>>>> That's correct, speculative execution is not the direct cause of
>>>>>>>>>> spectre, however it is a necessary condition. My idea is that if
>>>>>>>>>> there is a model that doesn't have speculative execution, then,
>>>>>>>>>> since speculative execution is a necessary condition for spectre,
>>>>>>>>>> therefore the model doesn't have spectre. Then, a physical design that uses
>>>>>>>>>> speculative execution is proven to have the exact same timing and
>>>>>>>>>> interactions with the outside world as the model without speculation,
>>>>>>>>>
>>>>>>>>> With this definition, speculative execution cannot perform faster than
>>>>>>>>> non-speculative execution.
>>>>>>>>
>>>>>>>> It can perform better by using something only available to
>>>>>>>> theoretical models: a branch oracle (a theoretical device that
>>>>>>>> magically knows ahead of time which target every branch will go to
>>>>>>>> -- think of it like an instruction trace). The branch oracle allows
>>>>>>>> it to know when the branch predictor's outputs are wrong and
>>>>>>>> therefore delay by the branch misprediction penalty, which can be
>>>>>>>> based entirely on what instructions came before (in the simplest
>>>>>>>> case, the penalty is a constant number of cycles). When the branch
>>>>>>>> predictor is correct, then it can run the instructions at full speed
>>>>>>>> as if they were speculatively executed the whole time.
>>>>>>>>
>>>>>>>> This is consistent with being able to build a physical equivalent by
>>>>>>>> using speculative execution to execute as if the branch predictor
>>>>>>>> was correct, then, when the branch was mispredicted, cancel the
>>>>>>>> mispredicted instructions such that the elapsed time is the same as
>>>>>>>> the branch misprediction penalty in the theoretical model. this
>>>>>>>> eliminates the need for a branch oracle in the physical model,
>>>>>>>> replacing it with a slightly modified version of speculative execution.
>>>>>>>
>>>>>>> I've read through this about ten times, slowly, without it making
>>>>>>> any more sense to me.
>>>>>>>
>>>>>>> I fully acknowledge there are two possible explanations for this.
>>>>>>
>>>>>> I agree with BGB
>>>>> Make that Bruce--sorry Bruce.....
>>>>
>>>> I saw that but was letting it slide.
>>>>
>>>> If you want to really confuse things, I'm BGH.
>>>
>>> I was momentarily confused as to how I would have fit into this
>>> sub-branch, as I have no real experience with fancier OoO or
>>> speculative-execution stuff, as well as my project being purely
>>> in-order, ...
>>>
>>> I also sort of suspect a core capable of doing OoO and speculative
>>> execution stuff would probably be outside the range of what would be
>>> viable on something like an Arty or Nexys as well...
>>>
>>> OTOH, I didn't originally expect to be able to pull off as much as I
>>> have. Fiddling with the Verilog, have ended up being able to fit in more
>>> stuff than I would have otherwise expected.
>>>
>>> But, yeah, my actual name is Brendxx G Xxxxx.
>>
>> Send a cancel to this message, a decade from now this will cause
>> embarrassment.
>>
>> Go get a game programming job, say you love games, lie.
>
> There is a good solid crap-all in this area, don't want to relocate, as
> I lack enough "basic life skills" to live independently... (technically
> autistic; and I am generally too obvious here to be able to pass off as
> "normal").
Sounds like a programmer to me. ;)
Autism rates have gone up 1000 fold and if you google natural cures for
autism you will find that many have cured it, as our diets are to blame.
Sugar and grain based low nutrient food and low fat diets starve the brain
of energy while making you fat.
Eliminate the sugar, eat bacon as part of your breakfast for a week and
watch your IQ soar.
Go Keto, take a probiotic and multivitamin.
Seriously, sugar is poison rotting your brain, get that poison out of your
brain.
>>> In my day job, I run a waterjet at a machine-shop in Tulsa... And on
>>> nights and weekends, I write and debug my code. I am possibly not
>>> getting as much sleep as would be ideal for health (or functioning
>>> anywhere near an optimal level), but this is a trade-off...
>>
>> Spin this as a programmer job as some programming is likely sometimes
>> involved.
>> The 90% not programming is not important, 80% of what entry level
>> programmers do is not programming, its configuring menu screens.
>>
>> This applies to web jobs as well, who are also looking for cheap labor.
>
> Generally, they also want someone about 10 or 15 years younger...
False.
You are conflating starting over in a new career with starting your first
career.
I have had four completely different careers where I mostly restarted from
scratch.
Government stats say the average person will have 5 careers, one job and
done is a myth that only applies to low IQ manual labor.
Any age question is to weed out clock punchers, they want gang ho go
getters.
Just say you are not challenged in your current job and are looking for new
challenges. Say it with enthusiasm and watch the subtle positive feedback.
> By the time they are my age, most "programmers" have either gone into
> management or "retired" (generally left the software industry entirely).
>
> I think the assumption is that programmers are only really productive in
> their 20s, and by the time they are pushing middle age, are basically
> already used up and worthless.
>
>
> Or, basically, my life / "career" is already down the toilet, and there
> is little saving it at this point...
>
>
>>> I suspect my hobbies probably have more chance of benefiting the world
>>> than the parts I am paid to make at my day job; Even if, yes, I am
>>> getting paid to cut bits of metal, and my hobby project isn't really
>>> worth much of anything in a financial sense. But, bosses just pay me to
>>> cut stuff, and occasionally do cleaning and similar, rather than do
>>> anything more interesting or relevant.
>>>
>>> And, as much as it is the cultural expectation, I am not personally
>>> inclined to consign my personal identity to being little more than a
>>> person working a particular position at a particular company.