顯示廣告
隱藏 ✕
※ 本文為 MindOcean 轉寄自 ptt.cc 更新時間: 2020-04-26 16:48:51
看板 Gossiping
作者 jserv (松鼠)
標題 Re: [問卦] cpu 和指令集為什麼要設計那麼複雜?
時間 Sun Apr 26 14:46:11 2020


※ 引述《Gold740716 (項為之強)》之銘言:
: 第一次碰組語的時候,才知道 cpu 裡有一堆暫存器,
: 各個暫存器能存的資料大小不一樣,
: 每個暫存器還要用專門的指令用來存取和寫入。
: 雖然也是有直接存取記憶體位址的指令,
: 但跑起來好像會比暫存器慢。
: 設計 cpu 的在想什麼?
: 為什麼要設計那麼多指令和暫存器?
: 有沒有八卦?

回到 instruction set (指令集) 的定義:由 CPU 指令構成的集合。有可能指令集僅由
一個或零個指令構成嗎?還真的有,而且某些特殊處理器的設計還商業化了。探討這些
特別的案例絕非「吃飽撐著」,可驗證我們對電腦科學的認知,難說未來的某時會派上
用場。


繼續探討前,我先岔開說個小故事。十年前我受邀去荷蘭發表演說,主辦單位很貼心地
安排一個可眺望阿姆斯特丹運河的寧靜住處,採光明亮,床鋪整潔又舒服,不過我很快
就發現讓我困擾的事 -- 飯店怎麼沒內建馬桶呢?後來我才發現,不是房間沒有馬桶,
而是佈景採用高度簡潔風格,沒有浴廁隔間,僅用布幕區隔,且馬桶和其後的造景融為
一體,讓剛抽完大麻煙的我,一時無法辨識呀!


在微處理器的設計中,one-instruction set computer (簡稱 OISC) [1] 就採用高度的
簡潔風格打造 -- 整個處理器只能處理一種指令,自然也就不用在處理器中考慮到指令
編碼 (instruction encoding) 和指令解碼器 (instruction decoder)。OISC 也被稱為
ultimate reduced instruction set computer,直譯是超精簡指令集電腦,這樣的設計
仍可達到 Turing-complete (圖靈完備性) [2],只要這樣的機器能被實作出來,就能用

來解決任何可計算 (computable) 的問題。

怕你覺得這又是個「吃飽撐著」、跟 Brainf*ck [3] 一樣「空幹」的怪東西,我趕快說
,OISC 衍生的微處理器不乏有實務應用,例如由紐約大學所持有的美國專利編號
US9619658B2 [4] 就將 Paillier 密碼系統 [5] 和 OISC 結合起來,該專利就針對雲端

運算裡頭,使用者往往不願將隱私和敏感的資訊放上雲端進行處理,但若透過 Paillier

這樣的同態加密技術,即可在加密的訊息上進行運算和保存處理,而且透過特製的 OSIC
則進一步強化處理效率。可參見紐約大學的研究 Cryptoleq [6]。

OISC 其中一種形式稱為 SUBLEQ,由 SUB (SUbtract; 減法) 和 LEQ (Less than or
EQual to zero; 小於等於 0) 所組合,其組合語言的形式為:
    subleq a, b, c

由於處理器只有一種指令,上述也可略寫為 "a, b, c"。其語意用 C 語言來表示則是:
    *(b) = *(b) - *(a);
    if (*(b) <= 0) goto *c;

貼文發問者提到:
> 像程式語言一樣,變數就是變數,不要分什麼暫存器和記憶體不是很好嗎?

SUBLEQ 就貫徹這想法,不區隔暫存器和記憶體 -- 有如 Universal Turing Machine,在
OISC 中,只要給予無限的資源,單一種指令所組合出來的程式就能和典型多指令電腦,
達到 Turing-complete。前述不需要處理指令編碼,所以 a, b, c 這三個 operand 就
可循序建構出以下的「程式」:

    a1  b1  c1
    a2  b2  c2
    a3  b3  c3
    ...

更有趣的是,指令和資料可交叉存在,例如:
    a1  b1  c1
    Data1  Data2
    a2  b2  c2
    Data3
    a3  b3  c3

在 Gary Explains 這個 YouTube 頻道有份短片 "A CPU With Just One Instruction":
    https://youtu.be/jRZDnetjGuo
 

即以 SUBLEQ 指令來解釋,可別小看這個看似無聊的指令,只要適度組合,可做到絕大多
數我們熟知的功能,甚至還能將類似 C 語言的程式轉為這個 SUBLEQ 指令的組合 [7]。
由於 SUBLEQ 指令語意單純,我們很容易就能用 C 語言撰寫其指令模擬器:

#include <stdio.h>
int main(int C, char **A) {
    FILE *F = fopen(A[1],"r");
    int P = 0, _[9999], *i = _;
    while (fscanf(F, "%d", i++) > 0)
        ;
    while (P >= 0) {
        int a = _[P++], b = _[P++], c = _[P++];
        a < 0 ? _ += getchar() :
               b < 0 ? printf("%c",_[a]) :
                       (_[b] -= _[a]) <= 0 ? P = c : 0;
    }
}

提到這裡,要如何用 SUBLEQ 指令來做尋常的運算呢?首先我們需要預先在記憶體保存
一些常數,供日後使用,如:
    Z :  0
    N : -1

然後來思考 subleq Z Z c 的意義為何?

回想稍早提過 subleq a b c 等價於 C 語言的
    *(b) = *(b) - *(a);
    if (*(b) <= 0) goto *c;

將用 a := Z 和 b := Z 帶入上面的表示式後,原本的條件判斷式就變成無條件跳躍,
也就變成 JMP 指令。

再來思考 subleq a a $+1 的意義: 用 a := a 和 b := a 及 c := $+1 (下一道指令
所在的地址) 帶入後,就變成 CLR 指令 (即 "clear" [清除給定地址的記憶體內容])。

牛刀小試後,我們再考慮略為複雜的形式,將上述「擴充」而來的指令組合:
    CLR    b
    subleq a Z $+1
    subleq Z b $+1
    CLR    Z

也就是:
    subleq b b $+1    <- *b = 0;
    subleq a Z $+1    <- Z = -*a;
    subleq Z b $+1    <- *b = 0 - (-*a) = *a;
    subleq Z Z $+1    <- Z = 0;

於是 *a 的內容被指派到 *b 去,用「略為高階」的組合語言來表示 (你也可稱為這叫
macro [巨集]) 就是 MOV a b

好,繼續練習:
    subleq a Z $+1
    subleq b Z $+1
    CLR    c
    subleq Z c $+1
    CLR    Z

拆解如下:
    subleq a Z $+1    <- Z = 0 - *a;
    subleq b Z $+1    <- Z = -*a - *b;
    subleq c c $+1    <- *c = *c - *c = 0;
    subleq Z c $+1    <- *c = 0 + *a + *b;
    subleq Z Z $+1    <- Z = 0;

看出這段程式碼的作用是 *c = *a + *b,我們可用 ADD a b c 來表示將前兩者加總後,
指派到最後最後一項的動作。

將 MOV 和 CLR 這兩個巨集組合,考慮以下程式碼:
    MOV    b v
    MOV    a w
    CLR    c
    subleq N c $+1
    subleq w v $+4
    subleq Z Z $-8

其中 v 和 w 是記憶體某處,概念上是「暫存」,不過在 OISC 中,最關鍵的操作就是
更新記憶體,沒有「暫存」與否的事實。拆解上述程式碼:
    MOV    b v        <-     *v = *b;
    MOV    a w        <-     *w = *a;
    CLR    c          <-     *c = 0;
    subleq N c $+1    <- L1: *c++;
    subleq w v $+4    <-     *v = *v - *w; if (*v <= 0) goto L2;
    subleq Z Z $-8    <-     else goto L1;
                      <- L2:

原來這樣就組合出除法的操作 (不考慮除數為 0 的狀況),我們可將巨集寫為 DIV a b c

前面提到可將資料和指令混合,我們來看這個案例:

    MOV  a L1        <- *L1 = *a
    data Z
    data Z
L1: data Z

這樣我們就在 L1 這個記憶體位址指定了 a 這個地址,日後可供日後查表跳躍 (對應到
C 語言的 switch-case 敘述) 使用。倘若你想看更複雜的 subleq 指令運用,可參見:
    https://github.com/davidar/subleq
[b]GitHub - davidar/subleq
[圖]
Contribute to davidar/subleq development by creating an account on GitHub. ...

 

提供若干簡潔的 subleq 指令使用範例,如氣泡排序法、四則計算器、階層運算,和產生
質數序列。

當然,看到這裡實在很難體察 OISC 的實用性,但如果 subleq 指令的實作能夠抵抗
side-channel attack (透過運算裝置的實體資訊,如反應時間、電能開銷、觸發的頻率
等,進行統計分析,從而旁敲側擊出資訊本體的攻擊手法) [8],那麼建構在 subleq
指令之上的程式也能抵抗 side-channel attack -- 欲執行的程式碼可穿插若干隨機
資料或在執行時期進行程式碼自我修改 (self-modifying code; SMC) [9],種種手段
都可提高對抗 side-channel attack 的能力。

OISC 不只有 subleq 這形式,還有其他指令變形,可參見:
    https://esolangs.org/wiki/OISC

在 Derbycon 2015 研討會上,有場精湛的演講,即是透過這類 OISC 混淆程式碼,可見:
    https://youtu.be/R7EEoWg6Ekk (演講錄影)
 
    https://github.com/xoreaxeaxeax/movfuscator (針對 M/o/Vfuscator 發展的 C
GitHub - xoreaxeaxeax/movfuscator: The single instruction C compiler
[圖]
The single instruction C compiler. Contribute to xoreaxeaxeax/movfuscator development by creating an account on GitHub. ...

 
                                                 語言編譯器,輸出 OISC 指令!)

不過慕尼黑大學的研究員發展特製工具來處理 M/o/Vfuscator 的程式,有限度分析其
運作。

又因 OISC 在 FPGA 實作大約僅需要 500 個左右的 CLB (Configurable Logic Block)
或 LAB (Logic Array Block) 這類基礎區塊,也有研究嘗試去發展多處理器的 OISC,如
"A Simple Multi-Processor Computer Based on Subleq" [10]

OISC 聽起來已是最簡約的處理器指令集設計,但仍有一種特別的途徑 -- 「沒有指令」
的處理器,存在 No instruction set computing (NISC) [11] 和 zero instruction
set computer (ZISC) [12] 這兩種設計 (彼此不同,但形式都不提供指令),該形式非常
特別,不算通用的處理器,往往是針對特定的應用場域去設計,像是人工神經網路
(Artificial Neural Network; ANN, 也稱神經網路),知名廠商如 IBM, Facebook,
Google 等陸續針對這類特別形式去發展硬體或加速器。

(什麼?你竟然不小心讀到這裡了?那來看廣告吧)

你可曾想過,你手上的 Apple Watch 內建著雙核處理器,但自己卻說不出裡頭的原理,
翻閱報章雜誌關於資訊技術的描述後,反而更加懷疑自己是否真的學過電腦科學,到底

書本和現實的落差有多大呢?開設於國立成功大學資訊工程研究所的「進階電腦系統理論

與實作」課程定位於回顧資訊工程必修科目,並著眼於逐步解析資訊科技工業的發展,
期望學員得以銜接當今的科技脈動 (state-of-the-art)。本課程的教材、練習題目和
講解錄影悉數公開,請見:

    http://wiki.csie.ncku.edu.tw/sysprog/schedule

在 2020 年秋季,「進階電腦系統理論與實作」預計還會探討自動駕駛和機器人自動化
發展框架,歡迎關注。

[1] one-instruction set computer
    https://en.wikipedia.org/wiki/One-instruction_set_computer
[2] 參見 1936 年的論文 Alan Turing 的論文 "On Computable Numbers, with an
    Application to the Entscheidungsproblem"
[3] Brainf*ck
    https://en.wikipedia.org/wiki/Brainfuck
[4] US9619658B2: Homomorphically encrypted one instruction computation
    systems and methods
    https://patents.google.com/patent/US9619658
[5] Paillier cryptosystem
    https://en.wikipedia.org/wiki/Paillier_cryptosystem
[6] Cryptoleq
    https://esolangs.org/wiki/Cryptoleq
    論文: "Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and
           Unencrypted Computation"
    對應於美國專利 US9619658B2
    相關的開發工具可見: https://github.com/momalab/cryptoleq
GitHub - momalab/cryptoleq: Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation.
[圖]
Cryptoleq: A Heterogeneous Abstract Machine for Encrypted and Unencrypted Computation. - momalab/cryptoleq ...

 
[7] 支援 SUBLEQ 的 OISC 模擬器、組譯器,和編譯器
    http://mazonka.com/subleq/
[8] side-channel attack
    https://en.wikipedia.org/wiki/Side-channel_attack
[9] Self Modifying Code
    https://wiki.c2.com/?SelfModifyingCode
[10] "A Simple Multi-Processor Computer Based on Subleq"
    https://arxiv.org/pdf/1106.2593.pdf
[11] No instruction set computing
    https://en.wikipedia.org/wiki/No_instruction_set_computing
[12] Zero instruction set computer (ZISC)
    https://en.wikipedia.org/wiki/Zero_instruction_set_computer

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.246.163 (臺灣)
※ 文章代碼(AID): #1UfIv3g2 (Gossiping)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1587883587.A.A82.html
qwefghzxc: 推1F 04/26 14:46
jimjim951357: 推2F 04/26 14:46
dklash: 看個PTT膝蓋又軟軟的= = 我以為老師都是半夜發文的3F 04/26 14:47
b777787: 宅瑟夫推4F 04/26 14:47
Reshiram: 10推內5F 04/26 14:48
james732: 有神快拜6F 04/26 14:48
Ericz7000: 先推7F 04/26 14:48
redDest: 推8F 04/26 14:48
aa23512b: 有神先跪9F 04/26 14:48
jengjye: 先拜了10F 04/26 14:48
flysonics: 給大神跪了 我只有看過有人提過OISC概念 第一次看到這11F 04/26 14:49
CharleneTsai: 推12F 04/26 14:49
oncemore: 先推再說13F 04/26 14:49
flysonics: 麼易懂的附例說明的 上八卦也能學到新知14F 04/26 14:49
Hertzfeld: 先推15F 04/26 14:49
t81511270: 老師好16F 04/26 14:49
db: 八卦版可以不要那麼專業嗎17F 04/26 14:50
Slowbro: 先推免得被發現看不懂18F 04/26 14:50
tanby: 有神快拜19F 04/26 14:50
aaaba: 馬桶的圖呢?沒圖說個j820F 04/26 14:50
saint01: XDDDD21F 04/26 14:51
tinghong0515: 教授給推22F 04/26 14:51
wen12305: 看不懂 QQ23F 04/26 14:51
choux: 推24F 04/26 14:51
xsdferty035: 教授好25F 04/26 14:51
young92748: 趕快先說自己看的懂26F 04/26 14:51
jackwula9211: 看到一半就看不懂了27F 04/26 14:51
anoreader: 你是在這邊認真三小啦!!!!XDDD28F 04/26 14:51
hakosaki: 推29F 04/26 14:52
jdchbo: 看不懂....30F 04/26 14:52
IAMST1011:  看不懂31F 04/26 14:52
giaour 
giaour: 推  去阿姆斯特丹有沒有去嫖妓?32F 04/26 14:53
s860134: 恩 還是一樣看不懂33F 04/26 14:53
awemuse: 有神先拜再看34F 04/26 14:53
zamperla: 看不懂..我真的有學過記組嗎35F 04/26 14:53
rockman73: 恩 好 我都懂了36F 04/26 14:53
crazytim: 一樣先推再看37F 04/26 14:54
Imdream: 可惜了 ,被一堆火災政治文埋過38F 04/26 14:54
monar: 馬桶以下都看不懂 太專業推39F 04/26 14:54
HMKRL: 推40F 04/26 14:54
sexyboy5566: 我也是這樣想 被你先發文了41F 04/26 14:54
kingtama: 有必要這樣讓一堆人看不懂嗎?42F 04/26 14:54
flysonics: 再推一次 這篇我要站內信收藏 很有趣43F 04/26 14:54
palapalanhu: 推44F 04/26 14:54
miss80423: 雖然看不懂 還是推45F 04/26 14:54
jserv: @kingtama, 從「空幹」、「腦幹」,到「專一」指令46F 04/26 14:55
C10202: 看不懂 QQ 還是推47F 04/26 14:55
k18535318: 先推再看 優文48F 04/26 14:55
jserv: 志祥 -> Brainf*ck -> OISC (符合時事的教學?)49F 04/26 14:55
NX9999: 已站內信戰略收藏50F 04/26 14:55
AUwalker: 看不懂 現在我覺得自己像個白癡51F 04/26 14:56
markkao456: 原來是這樣 嗯嗯長知識了52F 04/26 14:56
quartics: Zero instruction 不就state machine!!53F 04/26 14:56
BJ0912: 我想講的都被你講走了54F 04/26 14:57
ahahahahah: 先推55F 04/26 14:57
jserv: @AUwalker, 這是篇廣告文,補習班都是先嚇你再推課程56F 04/26 14:57
teremy: 看沒有 但推一個57F 04/26 14:57
Everforest: 百推內58F 04/26 14:57
a6268538: 推推59F 04/26 14:57
EdgeOfPeople: 先推再看60F 04/26 14:58
kid1a2b3c4d: ???61F 04/26 14:58
chh1470: 猛62F 04/26 14:58
pal1231: 專家給推63F 04/26 14:58
shiwa: 看不太懂但好像很厲害64F 04/26 14:59
kevin850717: 看不懂,我野雞大學資工是不是白念了QQ65F 04/26 14:59
dklash: 所以這篇是招生文嗎?66F 04/26 14:59
loxic: 推67F 04/26 14:59
diiky: 推68F 04/26 14:59
hum2100: 完整看完了 略懂69F 04/26 15:00
jserv: @dklash, 是呀,之前課程退選率超過七成,我要趕快招生70F 04/26 15:00
reality6699: 看成R Cup71F 04/26 15:01
keezer: 先推再看72F 04/26 15:01
kensues: 幹看到神先拜73F 04/26 15:01
jserv: @giaour, 大麻有助於思考 (煙)74F 04/26 15:01
airyptt: 可惜沒有時間管理,推75F 04/26 15:01
prmea: 文組不懂76F 04/26 15:03
wewe10112: 我感覺自己像個文盲77F 04/26 15:03
james80351: 推78F 04/26 15:03
twerik: 先拜了79F 04/26 15:03
twolight: 推老師80F 04/26 15:03
a58524andy: 跪教授81F 04/26 15:04
realtw5566: 說中文啦幹82F 04/26 15:04
pbkfss: 專業文83F 04/26 15:05
loungebar: 好猛84F 04/26 15:05
emptie: 謝謝85F 04/26 15:05
MrWTF: 嗯嗯跟我想的一樣==86F 04/26 15:05
supersu1a: 我想問個問題 x86 cpu動不動就3GHz 5GHz 其他類型asic87F 04/26 15:05
browngirl: 文組end88F 04/26 15:06
jserv: @realtw5566, 有請唐鳳發展中文程式語言和指令集89F 04/26 15:06
supersu1a: 同製程頂多2G上下,我知道是算法不同,但是有沒有關鍵90F 04/26 15:06
supersu1a: 字可以讓我找文章的?
b0920075: 之前有人提出過在x86下用mov指令取代所有指令達到obfus92F 04/26 15:06
b0920075: cation的效果,老師可以解說一下嗎
jserv: @supersu1a, 一句話解釋是 microarchitecture 落差94F 04/26 15:06
jserv: @b0920075, 上面的演講錄影有提到呀
bewritten: 太專業了96F 04/26 15:07
supersu1a: 感謝老師回應97F 04/26 15:07
i90186: 原來如此98F 04/26 15:07
GetAway803: 先推太強了99F 04/26 15:07
b90022790: 推100F 04/26 15:08
[圖]
Jim Huang
@jserv
/*SUBLEQ interpreter*/
#include<stdio.h>
main(int C,char**A){FILE*F=fopen(A[1],"r");int P=0,_[9999],*i=_;while(fscanf(F,
"%d",i++)>0);while(P>=0){int a=_[P++],b=_[P++],c=_[P++];a<0?_+=getchar():b<0
?printf("%c",_[a]):(_[b]-=_[a])<=0?P=c:0;}}
 
jserv: OISC 的模擬器原始程式碼可塞進一道 twit 中102F 04/26 15:08
magicbobo: 有神103F 04/26 15:09
pp787753: 跟我想的差不多 要不是我在大便 不然真想再補充一些104F 04/26 15:09
TWWalking: 八卦版可以不要那麼專業嗎105F 04/26 15:09
b0920075: 喔幹沒注意到,拍謝106F 04/26 15:10
raugeon: 老師好107F 04/26 15:10
legendmtg: <(_ _)>108F 04/26 15:11
jserv: @b0920075, 歡迎看懂後補上重點提示,共筆分享 :)109F 04/26 15:11
gwofeng: 嗯 跟我想的一樣110F 04/26 15:11
ccps0711: 只看得懂馬桶111F 04/26 15:11
durga: 哇,真的是長知識了!!112F 04/26 15:12
supersu1a: 再請教一下老師 高時脈算法是跟一次處理指令指令/clock113F 04/26 15:12
supersu1a:  cycle相關嗎?
giaour 
giaour: [url]https://wy-lang.org/[/url]115F 04/26 15:12
playgame555: 是jserv 有神快拜!!116F 04/26 15:13
chestery: 只看得懂空幹117F 04/26 15:13
herculus6502: 神串留名118F 04/26 15:13
Chaser1482: 專業文119F 04/26 15:13
giaour 
giaour: 應該請譚鳳發展台語文的程式語言120F 04/26 15:13
leehom309536: 嗯看不懂121F 04/26 15:14
redbeanbread: 有點閒喔122F 04/26 15:17
samdynasty: 看到神先跪了123F 04/26 15:17
x21198: 看到一半就看不懂了啦124F 04/26 15:17
hunterwang: 先推 避免被發現我看不懂125F 04/26 15:18
pleiades2225: 專業推126F 04/26 15:18
gR7P4zXH: 傻眼貓咪127F 04/26 15:18
q0500: 嗯嗯128F 04/26 15:19
jserv: @supersu1a, https://hackmd.io/@sysprog/cpu-basics 先看129F 04/26 15:19
[b]現代處理器設計:原理和關鍵特徵 - HackMD
# [現代處理器設計]( * ==[直播錄影(上)]( ...

 
kodato: 是宅瑟夫,給跪了130F 04/26 15:19
jserv: 處理器時脈對於現代處理器實際的速度已不是最關鍵的因素131F 04/26 15:20
a78998042a: 哈哈哈 看5行果斷放棄132F 04/26 15:21
supersu1a: 感謝老師 這個問題關鍵字有夠難查 我會用功的133F 04/26 15:21
jserv: @gR7P4zXH, 在處理器的領域中,"CAT" 這字樣不算少見,貓咪134F 04/26 15:22
linb6113: 我也是這麼想的135F 04/26 15:22
ohmylove347: 太神啦136F 04/26 15:22
AZ09 
AZ09: 文組看不懂了 不能簡單講嗎?137F 04/26 15:22
jserv: CAT: Cache Allocation Technology #138F 04/26 15:22
sg1987: 專業推139F 04/26 15:23
giaour 
giaour: cat指令常用,就是貓咪的意思。喵。140F 04/26 15:23
t20031210: 雖然看不懂,但是八卦需要優文141F 04/26 15:24
bodielu 
bodielu: 看不懂只能推了142F 04/26 15:24
Martie: 請問老師你十年前抽的大麻煙是不是ㄎㄧㄤ到現在143F 04/26 15:24
km101km: 先推了144F 04/26 15:25
evan09900966: 電子系 推啦145F 04/26 15:25
jserv: @Martie, 要不是人在學校教書,我就殺去阿姆斯特丹了146F 04/26 15:25
sk40207: 推147F 04/26 15:25
Osgood666: 推148F 04/26 15:26
APC: 推149F 04/26 15:27
thejackys: 7777150F 04/26 15:27
Rudoly: 專業推151F 04/26 15:27
storyk49240: 嗯嗯 同意152F 04/26 15:27
icequeen124: 跟我想說的一樣153F 04/26 15:27
taihsin: ??154F 04/26 15:27
mikemiao1492: 跪了推155F 04/26 15:27
mosw: 跪推156F 04/26 15:28
firxd: 嗯嗯嗯 跟我想的差不多157F 04/26 15:28
a9202507: 你是在認真什麼。推。158F 04/26 15:29
jserv: @aaaba, 馬桶和電腦科學也有關159F 04/26 15:30
jserv: Toilet Paper Algorithms
Strokes: 嗯嗯 跟我想的很接近161F 04/26 15:31
dm87278: 推162F 04/26 15:31
brabra: 有神先跪163F 04/26 15:32
ifconfig5566: 這個也能空幹Xd164F 04/26 15:32
jserv: @kevin850717, 學習是一輩子的事,所以你更需要線上課程165F 04/26 15:33
thejackys: 老師這門課需要哪些先備知識嗎166F 04/26 15:34
shortcloud: 推167F 04/26 15:35
lairx: 對沒錯就是這樣我也這麼覺得168F 04/26 15:35
tashia: 推推169F 04/26 15:36
a2470abc: 我覺得我要重修計組了....170F 04/26 15:36
Marcuslust: 推171F 04/26 15:37
dream40122: 感覺好屌啊172F 04/26 15:38
sa12e3: 沒人覺得應舉例更好及更清楚的例子嗎?直接存取記憶體位173F 04/26 15:38
sa12e3: 址的指令與暫存器的執行差異比較的部分在這篇內文可能沒
sa12e3: 精準的指出? 應比較兩者間的執行時間長度及功能,例如兩
sa12e3: 者間只有指令或暫存器可達成某功能,但暫存器或指令比較
sa12e3: 耗時或省時/節省或消耗硬體資源…
kevin820308: 寫這麼專業我還以為宅色夫178F 04/26 15:39
godnnn: 跟我想的一樣179F 04/26 15:39
qaz214536: 原來是這樣,跟我想的差不多180F 04/26 15:39
kevin820308: 謝謝老師youtube 的課程181F 04/26 15:40
mario2000: 對對對 我也是這麼覺得182F 04/26 15:40
bear8521: 先推再說183F 04/26 15:41
copylong20: 看不懂辣184F 04/26 15:41
daye2012: 寫到人家看不懂,那乾脆不要寫185F 04/26 15:42
coldtoby: 推個186F 04/26 15:42
KNVSEOC: 還好你說的abc我都看得懂187F 04/26 15:43
ip10: 推 謝謝老師188F 04/26 15:43
pregnpig: 我以爲我走錯版了189F 04/26 15:45
poiuyyulj02: 我怎麼又自己跪下了190F 04/26 15:45
wbreeze: 推推191F 04/26 15:45
teddy30416: 我看到馬桶之後就end了192F 04/26 15:46
jixiang: 太深奧了,層次差太多了… 幾乎看不懂 QQ193F 04/26 15:46
pig250907: 有神快推194F 04/26 15:48
wsung: 跟我想的一樣195F 04/26 15:48
hong1310: 文組只看得懂飯店那段196F 04/26 15:49
evevt: 先承認看不懂XD197F 04/26 15:49
evevt: 不過看不懂不檢討自己的噓文是在...?
romeie06: 大佬...199F 04/26 15:49
asuspc: 推200F 04/26 15:49
user1120: 推201F 04/26 15:49
mrnegativetw: 我也是這樣想的202F 04/26 15:50
gn00027535: 沒錯203F 04/26 15:50
luckysummer: 嗯嗯,閱204F 04/26 15:51
jaid: 推,應該是「代入」而非「帶入」?205F 04/26 15:51
lbjstar: 大概跟我想的一樣206F 04/26 15:51
yiyin330: 寫這有幾個看得懂拉207F 04/26 15:51
soundonlyme: 娘子快出來看大神208F 04/26 15:52
qwer495: 推209F 04/26 15:52
ukfa: 有神快推210F 04/26 15:53
dou0228: 只看到空幹(拖走211F 04/26 15:55
wsx88432: 對民眾沒幫助 這種掛有意義212F 04/26 15:55
ttff: 我真的從沒想過可以只有一個指令 太屌了213F 04/26 15:55
Noxus: 馬桶以下就看不懂ㄌ= =214F 04/26 15:56
chinfu1222: 教授幽默215F 04/26 15:57
ChoDino: 我只看到馬桶,就來看推文了216F 04/26 15:57
ivy15987: 快推 免的被說看不懂217F 04/26 15:58
kiwi0530: 老師辛苦了218F 04/26 15:59
cactuar: 謝謝你的解說可惜我看不懂QQ219F 04/26 15:59
Sirctal: 看不懂是你廢阿,還有臉噓220F 04/26 15:59
dodowawa: 嗯嗯221F 04/26 16:00
bbo6uis122: 推222F 04/26 16:00
Adiakyan: 跪著看  有神啊223F 04/26 16:01
kobe30418: 媽的 這三小224F 04/26 16:01
Busufu: 仔細咀嚼這篇有很多有意思的東西225F 04/26 16:01
futakinohi: 嗯嗯 原來乳此226F 04/26 16:02
cream4260: 好猛的文!227F 04/26 16:02
alienplanet: 我文組看不懂QQ228F 04/26 16:03
Erika98: 推推~~~長知識惹229F 04/26 16:04
tab222777: 看不懂只能推了XD230F 04/26 16:04
s815225: 神串推231F 04/26 16:05
Minoge: 推232F 04/26 16:05
pugipupu: 推233F 04/26 16:05
white930: 膝蓋痛234F 04/26 16:07
samonline: 推推235F 04/26 16:08
k51686tw: 跟我想得差不多~英雄所見略同236F 04/26 16:08
littlegreen: 對 就是那樣237F 04/26 16:09
sitting: 有神快推238F 04/26 16:10
karevin07: 宅色夫大大 推一個239F 04/26 16:11
zylsg5347: 這不是我認識的八卦版240F 04/26 16:11
conq: 推老師!!241F 04/26 16:12
ptta: 意猶未盡!感謝老師!242F 04/26 16:13
homer00: 看了前五行就回頭確認一下誰的文章…243F 04/26 16:14
draconian: 跟我想的一樣呢(豆頁痛244F 04/26 16:15
Mesa5566: 先推不然會被笑看不懂245F 04/26 16:15
tpegioe:246F 04/26 16:15
HFang: 什麼東西…247F 04/26 16:16
chean1020: 只看懂了一半......慘248F 04/26 16:16
pocketfox: 推249F 04/26 16:17
notneme159: 推個250F 04/26 16:17
kyle5241: 太有趣啦!251F 04/26 16:17
yerin15: 請問旁聽進階電腦系統理論與實作和 Linux 核心設計的建252F 04/26 16:18
yerin15: 議順序?
mike40709: 跟我想得一樣254F 04/26 16:19
upeo: OISC會取代RISC嗎?255F 04/26 16:19
hardenleft13: OISC 的原始程式碼256F 04/26 16:19
luckiness: 推257F 04/26 16:20
kuangfeng29: 哇喔258F 04/26 16:21
reon: 八卦版年度最專業文259F 04/26 16:22
jansan: 推260F 04/26 16:23
SupCat: 嗯嗯 跟我想的差不多261F 04/26 16:24
g5637128: 跪著推...262F 04/26 16:24
uruzu007: 推263F 04/26 16:25
jialin6666: 熟悉的組合語言,推!264F 04/26 16:26
sean10638: 嗯嗯 跟我想的差不多265F 04/26 16:26
guinsoo: 我理組也看不懂,給噓266F 04/26 16:27
hujj11: 看八掛學知識267F 04/26 16:30
stephen23032: 跪著看!268F 04/26 16:33
aokitaka: 看到是jserv大神趕快過來拜一下269F 04/26 16:37
mynewid: 大麻菸讚270F 04/26 16:38
wju1230: 感覺會超難debug的 XD271F 04/26 16:38
louis0724: 大麻煙之後我就看不懂了 先推再說XD272F 04/26 16:39
Songla08: 推 公三小273F 04/26 16:39
xkiller1900: 老師發文惹274F 04/26 16:40
luckypa777: 嗯嗯 跟我想的差不多275F 04/26 16:41
s595857: 以上都在裝懂276F 04/26 16:41
daccdacc: 神人真多277F 04/26 16:44
orz145: 嗯嗯嗯跟我想說的一樣278F 04/26 16:44
gydiaw: 嗯嗯 我就說是這樣嘛279F 04/26 16:44
fatedate: 對不起 我看不懂280F 04/26 16:45
jaspergod: 嗯嗯不是很懂,但是很厲害吧281F 04/26 16:45
jj0321: 又釣出神人282F 04/26 16:46

--
※ 看板: Gossiping 文章推薦值: 1 目前人氣: 0 累積人氣: 947 
分享網址: 複製 已複製
( ̄︶ ̄)b fromtokyo, angus0112 說讚!
1樓 時間: 2020-04-26 17:40:03 (台灣)
  04-26 17:40 TW
指令很簡單,複雜的是邏輯!組合起來用如何簡單易懂,這也是後面高階語言希望達成的!
2樓 時間: 2020-04-26 18:38:02 (台灣)
  04-26 18:38 TW
舊思維,所以輸GPU~\
3樓 時間: 2020-04-26 18:48:21 (日本)
  04-26 18:48 JP
葉佩雯!
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇