From 8c03bc374ff04250c8853d7498690d708aeca8f4 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sun, 2 Aug 2026 00:36:30 -0400 Subject: [PATCH] twitter: archive 2083757874686161259 (NOTimothyLottes left-justified fixed point) --- .../media/2083764013570093330_1.png | Bin 0 -> 1920 bytes .../media/2083765900436492692_1.png | Bin 0 -> 1288 bytes .../media/2083766854980383071_1.png | Bin 0 -> 2004 bytes .../media/2083768129658765655_1.png | Bin 0 -> 1946 bytes docs/twitter/2083757874686161259/thread.md | 73 +++++++ .../2083757874686161259/thread_data.json | 206 ++++++++++++++++++ docs/twitter/README.md | 5 +- 7 files changed, 282 insertions(+), 2 deletions(-) create mode 100644 docs/twitter/2083757874686161259/media/2083764013570093330_1.png create mode 100644 docs/twitter/2083757874686161259/media/2083765900436492692_1.png create mode 100644 docs/twitter/2083757874686161259/media/2083766854980383071_1.png create mode 100644 docs/twitter/2083757874686161259/media/2083768129658765655_1.png create mode 100644 docs/twitter/2083757874686161259/thread.md create mode 100644 docs/twitter/2083757874686161259/thread_data.json diff --git a/docs/twitter/2083757874686161259/media/2083764013570093330_1.png b/docs/twitter/2083757874686161259/media/2083764013570093330_1.png new file mode 100644 index 0000000000000000000000000000000000000000..53cf90d7c31b78e11e9174a7f139761f41984d39 GIT binary patch literal 1920 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 Du&uuK literal 0 HcmV?d00001 diff --git a/docs/twitter/2083757874686161259/media/2083768129658765655_1.png b/docs/twitter/2083757874686161259/media/2083768129658765655_1.png new file mode 100644 index 0000000000000000000000000000000000000000..624ca549c897806d1000416ba111311832611ff0 GIT binary patch literal 1946 zcmV;L2W9w)P)YIK6Lr8Xxl{Z+I9Gpb~*MY?!pvWsD185Jce$Lv)V2;OWV}yw7@fm@ z-WtDMy=>(XwGX1pWpS~(t`^!+`zYKFr82KX5U~-TwJ6Mt)=nQwB)-phy{V`AiP|5q zS?#fuMHym!+@I?;bg?TwSz(_%Q=29)vlV65wd|{FsLV_mS6AImU(R%`?k>EK^1X%R z9faWLwZy33-!c~#_*tzrQ(IPxEXTIT_b)zt4)Nxi7_hBNUzBWT?H#Vz_Ulh++e+;u zrEL7WZJBL1o5t5NuJ%%I%k!EJa9>7Cbd6-_*itXIDWf4;^R<_y@lokY zkq?tw9P2b?^34}rt36)wQ`Pn(Oqr%0b*tQGg9O2)%Hp*O^(|xe5tN8 zh3oZwN*H-|`pi~qJwzR6y|yQ)ty$C_v2CUH>`ApqZCRQqGqOojQ&6Mw+Efdlr*>j- zK^kk@)&k>_dJq>s2W@N@b;UChPf}ajXYOZ}wk<{}(%x#@&VEPXv!I-jc#_(K-1n01 z+cE%vE4aQFd{V!=v#s-xVh*sL#D^8QVycn6oHMZ_nJ`y(W1eK3qsA=GKlOR@QJHA% zJ_2X%G(+pz*Qnl5ZI{coH5!HcT(3{>4~$*^E`6MBsMZZwkvyNQ$gW`eG*PQRP&+KM zu#r6 z894tWYp>(^yaqvPFfm7{afJ+TLd1dekyl%`=g$(4o&5;h zj$yZi+nDwCJe6!L9gR7gI6pz{FR<;{wuJKP`+WZHV62B?y|uCQ(Y;99`{&;_n@|Dl|I&fy`PEh`}3&hKy;6~oOhMdhR^v1)B863 zRkhcUW40{GLE+n40{{R&&@Em`rM8|eF>5h8doR+!L@iCXr>WXin(rhV<&KQKS7uj| z{Yc+TFhjC3v=$zpv)gV{VA~2mL*i#SQp@*htI|+A!q1RYvqK^#R1&pwg1%RTucTj+ z>e&CKWN82Z00000j>XR`op%HP0001hnI4`qY(AJ^S<9{Q!ZCESLfMLQ*oN}2+iS-{ zpBHW?kK3NZK1_en=c8PG*PF~PYun#L&lbl&3Wp$e?3kxvmx0}+hRxVLB;ig! zl@hg2A>Skg006&_AKo!Havt7uVQ%C!D$_>oqtK)1YHmcoaR7UW{lsE!q$Boz{7gtT zH-ayD3|$%W%G?OH{Q+_&WMpmx>pl?XMgRbw1@k1Az#fw8U=PVPOrGQV9unqBK4*3o zyZWXU;_)SqLR+lpz55c&Jjs!m!H2MNeHY$A$h{l=ZXNR^m%=;=004j^dl2$~Jf5Bm zqqA_>hny$L-ofGjyEqCxPomtIXz?9B!q1cVcW|)nBkAs>sreAR^`lVl-6ZeeVA}uy z0001Rf7DFW$wvSH0001h8xc4uygzaprP_M`32Iw5c;9VVe-CzjH^2V`wJmbfNOZou zZ8qt-#F~QGf3k{FSiY6eO0|PoCib7KW9_+(sT~!>{*zUdJqLYtw|#XogUbGs5k^!& zxuZaB0Dy;)jp*L7(WqL)#$%6>5lPR!lr@eOcVB9?>ub+%(qO&Ompy9R_k-@L{n~DX z9;V6i*11N~`#G*U@8SiB66W*U`L<%-L-~v%I*m1XO`#&(mY}L=NkHJq%F!N&8*O0(J6>2-5SLRw;`3lp&l>6GYo#k+9%a+$_yE0X&@#EEe z)3)8zF~}92bbCd=itFFh@6`91&0dtWx*%6ljvvniwjH)DvhB14k@vg!w(I>pzR|h> g000000RAlh07vZ)Z2C87;Q#;t07*qoM6N<$g5z%B`2YX_ literal 0 HcmV?d00001 diff --git a/docs/twitter/2083757874686161259/thread.md b/docs/twitter/2083757874686161259/thread.md new file mode 100644 index 00000000..8293d44a --- /dev/null +++ b/docs/twitter/2083757874686161259/thread.md @@ -0,0 +1,73 @@ +← [Back to Twitter thread index](../README.md) + +--- +title: "Re-FPGA-land ALUs - I'm firmly distracted by an alternative history of the unexp" +author: "NOTimothyLottes" +handle: "@NOTimothyLottes" +post_url: "https://x.com/NOTimothyLottes/status/2083757874686161259" +post_id: "2083757874686161259" +timestamp: "2026-08-02 03:32:46" +post_count: 12 +reply_count: 1 +repost_count: 2 +like_count: 4 +view_count: 158 +--- + +# @NOTimothyLottes — Re-FPGA-land ALUs - I'm firmly distracted by an alternative history of the unexp + +## Post 1 (2026-08-02 03:32:46) + +Re-FPGA-land ALUs - I'm firmly distracted by an alternative history of the unexplored left justified extreme fixed point. Where signed integer numbers represent {-1.0 to <1.0}. Where the primary IMAD op includes a huge fixed signed right shift ... + +## Post 2 (2026-08-02 03:35:40) — reply to Post 1 + +For those planted in the right-justified current fixed point timeline, your bytes get loaded into the LSBs, and your addressing uses the LSBs. The idea of doing the reverse of this is probably completely alien -> loading smaller bit types into the MSBs first ... + +## Post 3 (2026-08-02 03:38:00) — reply to Post 2 + +Meaning standard integer thinking is to start with small things like an index and scale that by the stride into a larger number. But with what I'm suggesting you start with something large and instead make it smaller. + +## Post 4 (2026-08-02 03:47:30) — reply to Post 3 + +In a traditional right-justified CPU, you'd have three ops {MUL, ADD, SHR} which could be reduced to {IMAD, SHR}, but would be just one op on a left justified machine. Meaning doing 'fixed point' stuff is a bit faster. + +## Post 5 (2026-08-02 03:51:35) — reply to Post 4 + +32-bit left justified machine, can easily leverage say a 18-bit * 25-bit multiplier (Xlinix DSP) because the MSBs are always fed in, and the useful MSBs are always pulled out of the accumulator (P). Right justified machines really need that full 32-bit x 32-bit MUL + +## Post 6 (2026-08-02 03:57:09) — reply to Post 5 + +Left justified variable bit-width loads make a lot more sense, partly because the LSBs index into bits (or sub-bits depending on mapping) effectively (instead of bytes), and one can do {4/8/16/32-bit} extraction with 8 SLICES and one CLB deep [a lot easier than right-justified] + +![Media 1](./media/2083764013570093330_1.png) + +## Post 7 (2026-08-02 04:04:39) — reply to Post 6 + +The core normalized IMAD can easily be made -/+ symmetrical simply by feeding in truncated LSBs of the add operand with simple logic based on MSBs of mul operands. In the example below the {-4} represents {-1.0}. Of course -4*-4 overflows to -4 [2's comp] + +![Media 1](./media/2083765900436492692_1.png) + +## Post 8 (2026-08-02 04:08:27) — reply to Post 7 + +Predicate/bool logic becomes {0.0, -1.0} based, can leverage {a+b} wrap around to implement XOR, and -(a*b) to implement AND. + +![Media 1](./media/2083766854980383071_1.png) + +## Post 9 (2026-08-02 04:13:31) — reply to Post 8 + +Doing a "perspective divide" {s=x/z} can be transformed into a scaled perspective divide {s=x*(a/z)} to work around the {-1.0 to <1.0} range limitation. And one can transform the divide into a binary search for 's' - specifically largest 's' where {s*z<=x*a} + +![Media 1](./media/2083768129658765655_1.png) + +## Post 10 (2026-08-02 04:16:23) — reply to Post 9 + +Notice this binary search test takes just one IMAD {s*z+t} where t=-x*a. Meaning a smart machine can do a test step in 2 ops on a DSP (one IMAD for the test, the next to ADD to 's' for the next search step) ... + +## Post 11 (2026-08-02 04:18:24) — reply to Post 10 + +Which requires the opcode ISA to have a latched delayed write to the register file that is conditional on the sign bit of a later IMAD op. This can make binary search for things like sqrt(x) also just as fast. + +## Post 12 (2026-08-02 04:28:45) — reply to Post 11 + +I think there are ways to transcend typical integer machine IPCs by having uber ops in the ISA (this left-justified machine has a 1-clock {MUL,ADD,SHIFT,+ signed conditional register STORE,+ extra modifiers (like NOT)}. But still have extremely simple implementations. diff --git a/docs/twitter/2083757874686161259/thread_data.json b/docs/twitter/2083757874686161259/thread_data.json new file mode 100644 index 00000000..08bad862 --- /dev/null +++ b/docs/twitter/2083757874686161259/thread_data.json @@ -0,0 +1,206 @@ +{ + "root_post_id": "2083757874686161259", + "posts": [ + { + "post_id": "2083757874686161259", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Re-FPGA-land ALUs - I'm firmly distracted by an alternative history of the unexplored left justified extreme fixed point. Where signed integer numbers represent {-1.0 to <1.0}. Where the primary IMAD op includes a huge fixed signed right shift ...", + "timestamp": "2026-08-02 03:32:46", + "media_urls": [], + "reply_to_id": null, + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 2, + "like_count": 4, + "view_count": 158 + } + }, + { + "post_id": "2083758603945513244", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "For those planted in the right-justified current fixed point timeline, your bytes get loaded into the LSBs, and your addressing uses the LSBs. The idea of doing the reverse of this is probably completely alien -> loading smaller bit types into the MSBs first ...", + "timestamp": "2026-08-02 03:35:40", + "media_urls": [], + "reply_to_id": "2083757874686161259", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 2, + "view_count": 70 + } + }, + { + "post_id": "2083759192721043871", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Meaning standard integer thinking is to start with small things like an index and scale that by the stride into a larger number. But with what I'm suggesting you start with something large and instead make it smaller.", + "timestamp": "2026-08-02 03:38:00", + "media_urls": [], + "reply_to_id": "2083758603945513244", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 55 + } + }, + { + "post_id": "2083761583776301374", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "In a traditional right-justified CPU, you'd have three ops {MUL, ADD, SHR} which could be reduced to {IMAD, SHR}, but would be just one op on a left justified machine. Meaning doing 'fixed point' stuff is a bit faster.", + "timestamp": "2026-08-02 03:47:30", + "media_urls": [], + "reply_to_id": "2083759192721043871", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 21 + } + }, + { + "post_id": "2083762609094889861", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "32-bit left justified machine, can easily leverage say a 18-bit * 25-bit multiplier (Xlinix DSP) because the MSBs are always fed in, and the useful MSBs are always pulled out of the accumulator (P). Right justified machines really need that full 32-bit x 32-bit MUL", + "timestamp": "2026-08-02 03:51:35", + "media_urls": [], + "reply_to_id": "2083761583776301374", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 29 + } + }, + { + "post_id": "2083764013570093330", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Left justified variable bit-width loads make a lot more sense, partly because the LSBs index into bits (or sub-bits depending on mapping) effectively (instead of bytes), and one can do {4/8/16/32-bit} extraction with 8 SLICES and one CLB deep [a lot easier than right-justified]", + "timestamp": "2026-08-02 03:57:09", + "media_urls": [ + "https://pbs.twimg.com/media/HOsENEBXEAAoWlx?format=png&name=orig" + ], + "reply_to_id": "2083762609094889861", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 21 + } + }, + { + "post_id": "2083765900436492692", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "The core normalized IMAD can easily be made -/+ symmetrical simply by feeding in truncated LSBs of the add operand with simple logic based on MSBs of mul operands. In the example below the {-4} represents {-1.0}. Of course -4*-4 overflows to -4 [2's comp]", + "timestamp": "2026-08-02 04:04:39", + "media_urls": [ + "https://pbs.twimg.com/media/HOsFs-nWAAAUlTy?format=png&name=orig" + ], + "reply_to_id": "2083764013570093330", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 19 + } + }, + { + "post_id": "2083766854980383071", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Predicate/bool logic becomes {0.0, -1.0} based, can leverage {a+b} wrap around to implement XOR, and -(a*b) to implement AND.", + "timestamp": "2026-08-02 04:08:27", + "media_urls": [ + "https://pbs.twimg.com/media/HOsG3VBXAAA92kz?format=png&name=orig" + ], + "reply_to_id": "2083765900436492692", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 18 + } + }, + { + "post_id": "2083768129658765655", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Doing a \"perspective divide\" {s=x/z} can be transformed into a scaled perspective divide {s=x*(a/z)} to work around the {-1.0 to <1.0} range limitation. And one can transform the divide into a binary search for 's' - specifically largest 's' where {s*z<=x*a}", + "timestamp": "2026-08-02 04:13:31", + "media_urls": [ + "https://pbs.twimg.com/media/HOsIBCBWcAA79PL?format=png&name=orig" + ], + "reply_to_id": "2083766854980383071", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 14 + } + }, + { + "post_id": "2083768853499203838", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Notice this binary search test takes just one IMAD {s*z+t} where t=-x*a. Meaning a smart machine can do a test step in 2 ops on a DSP (one IMAD for the test, the next to ADD to 's' for the next search step) ...", + "timestamp": "2026-08-02 04:16:23", + "media_urls": [], + "reply_to_id": "2083768129658765655", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 21 + } + }, + { + "post_id": "2083769357906133502", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Which requires the opcode ISA to have a latched delayed write to the register file that is conditional on the sign bit of a later IMAD op. This can make binary search for things like sqrt(x) also just as fast.", + "timestamp": "2026-08-02 04:18:24", + "media_urls": [], + "reply_to_id": "2083768853499203838", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 22 + } + }, + { + "post_id": "2083771965278388689", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "I think there are ways to transcend typical integer machine IPCs by having uber ops in the ISA (this left-justified machine has a 1-clock {MUL,ADD,SHIFT,+ signed conditional register STORE,+ extra modifiers (like NOT)}. But still have extremely simple implementations.", + "timestamp": "2026-08-02 04:28:45", + "media_urls": [], + "reply_to_id": "2083769357906133502", + "quote_of_id": null, + "metrics": { + "reply_count": 0, + "repost_count": 0, + "like_count": 0, + "view_count": 12 + } + } + ], + "source_url": "https://x.com/NOTimothyLottes/status/2083757874686161259" +} \ No newline at end of file diff --git a/docs/twitter/README.md b/docs/twitter/README.md index 88a1c47d..68b29b25 100644 --- a/docs/twitter/README.md +++ b/docs/twitter/README.md @@ -4,13 +4,14 @@ Index of all scraped Twitter/X threads. Each row links to a per-thread `thread.m with the original post text + media; every `thread.md` has a back-link to this index at the top. -**Total: 81 threads across 3 authors.** Threads are grouped by +**Total: 82 threads across 3 authors.** Threads are grouped by author; within each group, newest first. -## @NOTimothyLottes (78) +## @NOTimothyLottes (79) | Date | Author | Title | | --- | --- | --- | +| 2026-08-02 | [@NOTimothyLottes](https://x.com/NOTimothyLottes/status/2083757874686161259) | [Re-FPGA-land ALUs - I'm firmly distracted by an alternative history of the unexp](./2083757874686161259/thread.md) | | 2026-07-22 | [@NOTimothyLottes](https://x.com/NOTimothyLottes/status/2079746130309415185) | [A language that you author in a compressed space directly. So Whitney-esk in usi](./2079746130309415185/thread.md) | | 2026-07-19 | [@NOTimothyLottes](https://x.com/NOTimothyLottes/status/2078729662021111958) | [The aim of course, keep the stuff that doesn't need to go fast optimized instead](./2078729662021111958/thread.md) | | 2026-07-18 | [@NOTimothyLottes](https://x.com/NOTimothyLottes/status/2078349730204078527) | [I realized at some point I can have most interpreted forth-style words in an ali](./2078349730204078527/thread.md) |