<wpwrak>
lekernel: we've been discussing MMU on qi-hw. just a wild idea: would it help with having a physically indexed cache if you'd kick off a TLB lookup on each register assignment ? this way, you'd get all base registers on an earlier instruction. you still wouldn't have the offset, though. if offsets are generally small, you could of course ignore this problem ...
<kristianpaul>
cleared on read, hum..
<GitHub109>
[extras-m1] shiyele pushed 1 new commit to master: http://bit.ly/kMe4tX
<GitHub109>
[extras-m1/master] added raumfahrtagentur logo - Wolfgang Spraul
<GitHub39>
[rtems-yaffs2] xiangfu pushed 1 new commit to master: http://bit.ly/kUAwue
<GitHub39>
[rtems-yaffs2/master] Fix mkdir with '/' of an existing directory on SSD creates bogus object(issue #25) - Xiangfu Liu
<GitHub0>
[extras-m1] shiyele pushed 1 new commit to master: http://bit.ly/iMu47q
<GitHub0>
[extras-m1/master] added attributions - Wolfgang Spraul
<GitHub133>
[extras-m1] yizhangsh pushed 1 new commit to master: http://bit.ly/jK3YHR
<GitHub133>
[extras-m1/master] add variation design for artwork 02 - Yi Zhang
<GitHub186>
[extras-m1] yizhangsh pushed 1 new commit to master: http://bit.ly/mnZIW9
<GitHub186>
[extras-m1/master] add flickr credential for the photos - Yi Zhang
<GitHub75>
[extras-m1] yizhangsh pushed 1 new commit to master: http://bit.ly/jhjehu
<GitHub75>
[extras-m1/master] increased case credential size - Yi Zhang
<lekernel>
what does the MMU have to do with registers?
<wpwrak>
lekernel: (mmu) LB and friends use a register as the base address. if we assume that offsets are usually small and TLB flushes rare, you may get a "zero-cost" TLB lookup by just threating all values stored in a register as a potential base address. you'd still have to check if in the end, (rX & PAGE_MASK)+offset < PAGE_SIZE. if not, the looked-up translation would be valid. if not, you'd need to stall and do a new lookup.
<wpwrak>
lekernel: whether this would work or not depends on what the code usually looks like. could be anything from highly efficient to useless
<lekernel>
what's LB?
<lekernel>
so what you are describing is merely a single-entry TLB?
<wpwrak>
(TLB) the real TLB can be anything. you'd just trigger a TLB lookup each time you store a value in the register file, and store the lookup result alongside with the register
<lekernel>
how does one deal with context switches?
<lekernel>
or simply minor page faults?
<wpwrak>
lekernel: on context switch, you would invalidate the cached lookups. TLB miss would just be recorded as such.
<lekernel>
so what happens on a memory operation for which there is no cached TLB value?
<lekernel>
eg you execute LB, but there's no TLB information in the register
<wpwrak>
lekernel: you would calculate the new address, stall for one cycle, and do a TLB lookup in that time. you should probably have a means to write back the result if certain constraints are met
<lekernel>
sounds painful
<wpwrak>
lekernel: (write back) to the TLB shadow
<wpwrak>
depends a bit on how often you hit this :)
<wpwrak>
the larger your offset, the worse
<lekernel>
hard to write, potentially use quite some hw resources, no advantage over what i described on the ml earlier, and bug bait
<wpwrak>
lekernel: it would allow the caches to use physical addresses
<wpwrak>
lekernel: don't know how it would compare on hw resources
<lekernel>
a physically addressed cache is only useful when it reduces the mess you have to do at context switch. having to invalidate the TLB cache in the register file nulls that out.
<wpwrak>
i was thinking more of all the assorted aliasing issues
<wpwrak>
not sure how bad invalidation would be. if you just write back the looked up value, you lose 1 cycle per register that's actually used as a pointer
<lekernel>
there are no aliasing issues if you put constraints on the page size
<wpwrak>
i saw you mention things like shared pages having to map to the same virtual address ?
<lekernel>
nah, that was wrong
<wpwrak>
ah, okay
<wpwrak>
it scared me a bit :)
<wolfspraul>
lekernel: quick question - the 4 page brochure you made, do you want that printed on 2 separate A4 pages, or on one A3 folder in the middle?
<wolfspraul>
s/folder/folded/
<lekernel>
is discovering myhdl in more detail, looks great!
<larsc>
the python thing?
<lekernel>
yes
<GitHub177>
[extras-m1] yizhangsh pushed 1 new commit to master: http://bit.ly/knwfYN
<GitHub177>
[extras-m1/master] add credential, milkymist trademark note, etc. - Yi Zhang
<kristianpaul>
what looks great exactly? code that it generates? high level descriptions?
<wolfspraul>
I demoed m1 to rez from corelabs.cn (who once wanted to work on the case but then never really got off the ground)
<wolfspraul>
overall he liked it, and there is a chance one of his engineers has time to play with it for 2-3 months in August-October, so I will follow up once that guy is back from vacation at the end of July
<wolfspraul>
it was interesting the way the conversation went. the first thing he asked about resolution.
<wolfspraul>
he thought 1024x768 was the minimum for large displays
<wolfspraul>
then later we talked about how the m1 documentation can explain the product to current users of Arduino, openframeworks, processing
<wolfspraul>
so we see. I will follow up once his engineer is back... all good there, maybe they can use m1 in a future event, or start working with it and understanding it better
<kristianpaul>
about resolution, may bey i'm wrong but gui resolustion can go up to 1024x768, but is the same case for render?
<roh>
*sigh*. next time i should buy a fitting laser and just do it myself. *mailpingpong*
<roh>
4-5 of such batches should basically do it.
<wpwrak>
(resolution) yeah, what is is really ? i see "SVGA", which means 800x600, i see "1280x1024" on wikipedia, and i see "> 1024x768" on milkymist.org
<wpwrak>
kristianpaul: dodn
<kristianpaul>
i think render is 800x600 and 16b bits depth?
<wpwrak>
let's try this again
<wpwrak>
kristianpaul: didn't you once say that your screen wouldn't even detect something as low as 800x600 ?
<kristianpaul>
yeah, but was not my screeen it was asigned to me when i was in labsurlab
<wpwrak>
ah, i see
<kristianpaul>
s/int/at
<kristianpaul>
hum, but usually lcd screens detect resoulustion from the source
<kristianpaul>
afaik i never tried the mm1 on my home LCD screen, just in the analog one