--- title: 第五週 tags: 計概 --- # 前半部 ## Finite State Machine / FSM  這是 Right Shift 的 FSM Moore形式的,請見第七週 以前的電腦都是為了特定的面向而創造 這種就叫做finite state machine Transition logic 會接受算好的訊號 判斷要跳到哪裡(? 一樣請見第七週 以前是用tree記錄搭配if else判斷 但是現在是直接通過一個函數 使用機器學習 判斷要不要執行 ## Markov Model  >不會考 行為只跟當前的狀態有關 做語音 推薦 猜測的系統 ## Hidden Markov Model / HMM  狀態的序列,也就是馬可夫可以得到的行為序列 在 HMM 上是不能被發現的,但是跟你觀測到的另一個東西 或是外在的行為是相關的 藉此去推測你的機制 用了很多機率 這個東西模擬未來序列很強 序列就是像 基因 語言翻譯 ## Recurrent Neural Networks / RNN  ### Sequence to Sequence Model  程式要去猜出中間的函數要長怎樣 LSTM中間的那串比較嚴格複雜 最後再決定要跳到哪一個狀態 :::info 語言翻譯中間有個bottle neck 是 STM RNN-based (? 待搜尋 但老師說現在比較常用RNN 還有GRU >深度學習用了很多線性代數的優化 ::: # Memory >long term 比較難記憶 目前 D FLIP FLOP 是記憶體的主流 因為用 NAND NOR 成本比較好 Sequential logic 的輸出跟 上一次 以及 當前的 輸入有關 1. State 用來判斷一個電路未來狀況的資訊 其實就是當前的狀態 2. State Elements 可以儲存 State 的電路 1. Bistablecircuit 2. SR Latch 3. D Latch 4. D Flip-flop 4. Latches and flip-flops 儲存一個 bit 的 State 是為一個 state elements 4. Synchronous sequential circuits Combinational logic 加上一些 flip-flops 達到攔截的功能 5. Sequential Circuits 1. 有一序列的事件(? 2. 有記憶 短期的記憶 3. 使用輸出當作給輸入的回饋 藉此儲存資訊 >老師又提到了三個雜誌 >Communication of ACM IEEE spectrum IEEE signal processing-magzine ## Bistable Circuit  最一開始的構想,可以儲存 1 bit 的 state 可以多拉兩個腳出去表示輸出,但是沒有輸入  上面可能儲存的兩種情況 ## SR Latch >老師說 NAND也可以做 >   當 SR 相異時,就採用當前的輸入 S 代表的是 Set,使輸出為 1 的意思 R 代表的是 Reset,使輸出為 0 的意思  當 SR 都是 0 時,就保留上一次的輸出 也就是儲存的效果  但是 SR 都是 1 時,會出問題 所以必須做點甚麼避免掉 11 的情況  這是電路中的表示符號 ## D Latch  >老師說有更多額外的機制去控制 不一定都要用clock  使用了 CLK(Clock) 跟 D(Data)作為 input 巧妙的避開了 11 的情況 - 當 CLK 是 1 的時候就讓 D 通過 - 當 CLK 是 0 的時候就保持原本的資料 或者說,讓SR同時為0 :::warning 但是有一個缺點,就是一旦 CLK 是 1 的狀態 D 就會直接過去,在那期間資料是可以變動的 可是有時候資料必須得同步才不會出錯 於是,為了同步,又有了新的改良 ::: # D Flip-Flop  將兩個 D Latch 相連,共用 CLK 但是做了點變化,有一個是取反的 這樣的用意是: - CLK 為 0 時,東西都會被擋在第一個 D Latch - CLK 變成 1 時,原先被擋在第一個 D Latch 的資料就會通過,但是被擋在第二個 D Latch - 要等到下一次 CLK 轉為 1 時才能通過 這樣可以達到以下需求: :::info 整體上看來 **只有在 CLK 0 轉為 1 的瞬間 D 才會從 D Flip-Flop 通過** :::  這個圖形題目,一定會考;可以看出 1. 延遲 2. 一開始兩個不確定的資料類型 1. FF 因為只有在改變的瞬間的資料才會通過 而那當下通過的 D 是 0 所以才都變成 0 3. L 則是因為會一直受到變動,所以在後面 D 變成 1 時 也因此變動了值 ## Enabled Flip-Flops  顧名思義,就是有一個 Enable - EN = 1 時,D 會通過,也就是正常的 FF 正常的由 CLK 決定要不要通過 - EN = 0 時,改輸出 Q,可以發現 Q 被拉了回來 這時候不論 CLK 要不要讓它通過,都還是原始值,也就等同強制保留 >可以回顧前一週的 MUX 的記號 ## Resettable Flip-Flops  - Reset = 0 時,D 會通過,也就是正常的 FF 正常的由 CLK 決定要不要通過 - Reset = 1 時,Q 被強制重設為 0 有兩種: 1. **Synchronous** 只有當 CLK 切換的瞬間才會 Reset **那要怎麼畫呢?** 2. **Asynchronous** 一旦 Reset 為 1 立馬重設 D  ## Settable Flip-Flops  - t = 0 時,D 會通過,也就是正常的 FF 正常的由 CLK 決定要不要通過 - Reset = 1 時,Q 被強制設為 1 看來電路也是要自己畫 ## Clock  通俗來說,一個 Clock 是由 tick + tock 組成 現實中,一個 Clock 是由震盪器 oscillator 產生 >下圖中出現的三角形就是震盪器的意思 >可以做變形(? > --- # Register  上圖是一個 4-bit 暫存器 Reg 會共享同個 CLK 一條 node 上有一撇斜線,並寫一個 4 代表是 4 個 bit 的輸入  記憶體內,通常修改是一次改一個區塊 WORD > WORD 是記憶體帶寬 memory bus width > 通常現在電腦的記憶體是 64-bit 而不是單獨一個 bit 因為成本會變高 --- ## Register File  1. **n × k Register File** 代表有 n 個 Reg,每個 Reg 內有 k bit 2. Read 跟 Write 是指對單一個 Reg 的資料 像上圖中,因為是 16-bit 的 Reg,所以讀寫也是 16-bit 3. 定址的 bit,或者說 Selector,只會在右下角 4. 只有當 CLK (那個三角形)跟 W 是 True 的時候 Write Data 才會寫入  1. 可以看到在 Write Data 是由 Decoder 搭配定址的 bit 決定要將資料傳到哪一個 Reg - 同時搭配CLK跟W組合成...新的CLK 3. Read Data 則是由 MUX 搭配定址的 bit 決定哪個 Reg 的資料要輸出 4. 每個 Reg 共享同個 CLK,符合上面老師說的 不會一次只修一個 bit ,而是 Reg 內全部的資料 :::info 上面介紹的是一個一個更動資料 但是這樣太慢了,所以有 share 記憶體 或是 GPU 有 swap 等等 總之 搬遷記憶體是一件麻煩的事 ::: :::success 要注意圖片中 如果線是粗的或有畫斜線 要記得代表該線是有多個 node 的 ::: --- ## Counter  1. in:將 state 設為某個基準值 1. inc:每個 clock cycle 增加一次 state 2. load:維持 state 防止超過 3. reset:重設 state >以上不太確定,老師也沒有講很細 決定現在要執行哪段的機器碼 在記憶體中會有一個queue放著要工作的機器碼,由program counter決定循序 通常往下一階PC會加1 有些還會有判斷 而正在執行的就會載到cpu --- # Sequential Logic   會震盪,以及因為 Inverter 產生的短短的 delay 這個情況要避免 而我們的 FF 剛好就是因為 只有在切換的當下才會輸出,所以可以避免這種情形 ## Sequential Logic 的 同步法則 ### synchronize定義 :::info system synchronized to the clock state changes at clock edge ::: 1. 任何一個線路單元 circuit element 要嘛是暫存器,要嘛是combinational circuit 2. 至少要有一個線路單元是暫存器 3. 全部暫存器共享同個 CLK 4. 每個環狀線一定要有一個暫存器(或記憶體) ## 題目:判斷是否同步  :::success CL 是 Combinational Logic 也就是像上面提到的 Enable、Resettable、Settable 等等 要注意圖片中 如果線是粗的或有畫斜線 要記得代表該線是有多個node的 ::: - c 沒有同步 因為那是Latch 不能同步 如果上線在 FF 結果出來前就又傳來資料 就會產生其他結果 - h 也不是 因為他多了兩個inverter 跟上面產生震盪的inverter一樣 會有延遲 --- # 總結 下禮拜要把上面那些弄到很熟 因為下禮拜要大量的用 老師有說到 同步的精神就是 CLK 會把 Combination Logic 的值卡在記憶體的外面 只有 CLK 變動的瞬間發生的 才是真的 ~~其他都是假的~~
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up