精華區beta Programming 關於我們 聯絡資訊
※ 引述《MasterChang (我愛ASM)》之銘言: : ※ 引述《ggg12345 (ggg)》之銘言: : : CPU processor 跟 I/O device 能同一時段內做 concurrent operation : : 就因為有 interrupt 這個事件立即通知的功能. 若連續大量傳送 I/O data : : 不用煩勞 CPU 就是靠 DMA (I/O channel 或 I/O processor) 與 interrupt : : 來協助. 這種功能可不分那種 CPU 都是要有的. : 1.I/O或是drvice在任一時間點只能作一件事情,這是常識。 cpu 對 memory 執行程式跟每個 I/O interface 上的 controller 控制 I/O device 都是能同時各做各的. : 2.不是所有CPU都有DMA。 processor 跟 DMA controller 是兩個獨立的裝置. 只要能讓 processor 短時間讓開 memory access 的 bus, 就能使用 DMA controller 替 I/O interface 與 memory 之間直接轉送 data, 不必煩勞 processor 來做. processor chip 有控制輸入腳可以讓 address/data/cotrol bus 成為高阻抗 狀態的都能在 BUS 外接 DMA controller. : 3.不是所有的I/O都有中斷。 Processor 都有 interrupt 訊號輸入腳, interrupt controller 是擴張這個 輸入成為多個輸入腳, I/O controller 是否要接上 interrupt controller input line 是可以跳線或設定的. 硬體中斷或軟體 trap interrupt 未必只 是為了 I/O . 中斷就是改變 processor 對程式指令的執行次序, 也就是改變 processor 的控制歸屬於那個執行緒. 而 I/O 的外部中斷是最簡易的範例. : 4.DMA在執行時應是不可中斷,也無法同時執行。 DMA cotroller , I/O channel 是很原始的 I/O processor , 可程式的功能 很低, 當然是不會有 interrupt input signal 去改變其執行動作的次序. 只要不同意 DMA controller access memory bus , 她自然就停下來等候, 但等候不是改變執行順序. 沒有人會說 DMA 在執行時不可中斷, DMA 本身就 沒有中斷輸入腳. 若說 DMA 進行中, processor 是否同意進行中斷, 那是 processor 的事, 跟 DMA 瞬間使用 BUS 無關. DMA 不會霸住 memory bus. : 你可以透過queue來循序執行或是執行queue 中最高優先權 : 的i/o request。 I/O request Queue 是用來記住 device busy 時, 將此時的 request I/O 記 住, 排隊等 I/O ready 時再取出來接著做. : 5.DMA本來就是要作這類的工作。 : 如果你不瞭解也沒用過,那請你不要鬼扯。 無知最勇 ! 某人使用這些東東做硬體, 電腦, OS 系統時, 絕對是連 BBS 都還 未出現. : : 這就是 "純軟" 的想法, 要這樣做也沒有不可以. 但這類思惟者不可以阻止別 : : 人以軟硬不分的角度看待 computer , 禁止傳授跟硬體相關的知識. 任何事可 : : 以簡化抽象, 用新的名詞或方塊包含在內, 但不是消失. : : 講精簡的, 還是得顧及必要的, 沒有必要的成份, 就不能組成正確的整體. : : 算術與代數的最大不同, 就是用代號來命名與處理, 少了這項特性, 沒有 : : 等式化簡替換, 後面的微積分沒了符號運作就難了. : 沒有人禁止。只是希望不要連教的人都不懂...天馬行空的鬼扯。 無知的勇真是自以為無敵的勇. 沒見過的世界, 聽起來就會像是鬼扯, 不過, 這些 書上都有. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.250.240
LiloHuang:純推這些書上都有 61.230.171.201 07/13 23:05
leicheong:該怎麼說呢? 感覺g大你回文時都不是針對 58.152.218.98 07/13 23:47
leicheong:對方貼的東西來回應, 總喜歡東拉西扯 58.152.218.98 07/13 23:48
leicheong:一些本來無關的東西, 結果討論就一點一 58.152.218.98 07/13 23:49
leicheong:點的, 微妙的偏移了... 看得真辛苦也 58.152.218.98 07/13 23:49
leicheong:以第三點關於中斷為例, 你貼的資料沒有 58.152.218.98 07/13 23:52
leicheong:錯, 不過用來回應M大那點, 總覺得不太 58.152.218.98 07/13 23:53
leicheong:對題...... 58.152.218.98 07/13 23:54
kangeroo:請問那一本書上有呢? 非本科生想自修 222.156.4.90 07/13 23:58
MasterChang:x86系列處理機系統與架構,連中文板都 203.67.211.133 07/14 01:33
MasterChang:有,中斷那段就是抄書的東西,如果只 203.67.211.133 07/14 01:33
MasterChang:道x86,還會天真以為所有處理器的中斷 203.67.211.133 07/14 01:34
MasterChang:都是長那樣子。 203.67.211.133 07/14 01:34
MasterChang:很多部分不太想回,例如DMA的東西,這 203.67.211.133 07/14 01:35
MasterChang:跟DMA本身有關,我也寫過no_blocking 203.67.211.133 07/14 01:36
MasterChang:的DMA controller,可以處理併發事件. 203.67.211.133 07/14 01:36
MasterChang:所以硬體部分很活。 203.67.211.133 07/14 01:38
MasterChang:沒有什麼絕對不絕對的。 203.67.211.133 07/14 01:38
ggg12345:不是所有的 I/O 都有中斷, 這個 I/O 指那140.116.250.240 07/14 08:00
ggg12345:那個地方,界面卡,I/O routine ? 中斷本來140.116.250.240 07/14 08:01
ggg12345:就是跟例外處理有關的事,這是一種一定會140.116.250.240 07/14 08:03
ggg12345:備有的機制,可以不用,所以才會有跳線,最140.116.250.240 07/14 08:06
ggg12345:極端就是power-off reset. 接下去一定又140.116.250.240 07/14 08:08
ggg12345:來亂罵一通. I/O 可以不使用中斷, 但中斷 140.115.1.146 07/14 19:00
ggg12345:裝置就是存在, 也被使用. Reset 就是特殊 140.115.1.146 07/14 19:03
ggg12345:的一種中斷. 140.115.1.146 07/14 19:06