精華區beta Programming 關於我們 聯絡資訊
※ 引述《Master.bbs@bbs.sayya.org (可愛的ASM)》之銘言: : ※ 引述《ggg12345.bbs@ptt.cc (ggg)》之銘言: : > cpu 對 memory 執行程式跟每個 I/O interface 上的 controller 控制 I/O : > device 都是能同時各做各的. : 1.I/O「或」是drvice在「任一時間點」只能作一件事情。 : 同樣的事情實在很不想強調兩次。 : 請你告訴我這個I/O如何「同時」做不同的操作。 : 2.按照上面你講的,請告訴我如何存取記憶體的「同時」 : 對i/o讀寫。 processor 對 cache , I/O controller 在下達 command 之後對 multiple bus separated memory 都能讓使用不同區域記憶體的 I/O device 與 processor 同時各做各的. 1.不同的 I/O 同時各做各的, 跟同一個 I/O device 只能瞬時做一件事是兩麻子事, 不要自己造個爛靶自已亂打爽的. 2.不用 multiple bus 隔開, 用 switch 隔開也能對不同的記憶體區塊同時進行 memory access. 3.即使是最簡單的 single bus computer, processor 只在 fetch cycle 會使用 memory , 在做內部計算時是讓出 memory bus 的, DMA 可利用此空檔對 I/O 與 記憶體之間進行讀寫. 4.若要只看同一種 I/O controller 對多個 I/O Device , 使用 selected channel /switch 也是可以讓不同的 device 同一時段同時運作. : > processor 跟 DMA controller 是兩個獨立的裝置. : 可以獨立,也可以做在一起。重點是不是所有的cpu都有DMA可以用。 獨立分離的用意就是不想用就不必裝. processor 沒有 DMA 分勞, 那就自己去 對 I/O 搬資料, 也沒有不可以. 只是你不裝也不能宣稱有裝 DMA 的 processor 與 I/O 無法同時並行運作. : > Processor 都有 interrupt 訊號輸入腳, interrupt controller 是擴張這個 : > 輸入成為多個輸入腳, I/O controller 是否要接上 interrupt controller : > input line 是可以跳線或設定的. 硬體中斷或軟體 trap interrupt 未必只 : > 是為了 I/O . 中斷就是改變 processor 對程式指令的執行次序, 也就是改變 : > processor 的控制歸屬於那個執行緒. 而 I/O 的外部中斷是最簡易的範例. : x86是這樣,不是代表所有的cpu的中斷系統都是這樣。 : 如果你是講x86架構,那就直接指明在何種架構上。 要講中斷, 那就是指會有外部或內部事件的訊號可以讓 processor 改變 processor 對程式指令的執行次序. 這跟架構上如何傳送事件訊號是無關的. : > 無知最勇 ! 某人使用這些東東做硬體, 電腦, OS 系統時, 絕對是連 BBS 都還 : > 未出現. : 真的,無真最勇。以為x86架構代表世界上所有處理器架構。 : BBS出現前無知,BBS出現後依然無知。 : 請不要拿著自己的良心鬼扯。如果你參與過CPU開發,寫過幾個 : 平台上面OS或是Porting過。你就會知道你講的東西只是這整個 : 領域的一小部分。世界不是只有Wintel ,這句話我講了不止一 : 次。 : > 無知的勇真是自以為無敵的勇. 沒見過的世界, 聽起來就會像是鬼扯, 不過, 這些 : > 書上都有. : 如果你不懂,就找懂得人來教,沒有老師什麼都懂得。即便同一 : 係領域也有滿大差異。也許你資訊領域一把罩。不過嵌入式系統 : 所需的軟硬體知識錯誤百篇。難道之前 : 可以請大家推薦 Linux 嵌入式系統的硬體及書嗎? : 嵌入式統在高校教育的騙局。 : 這兩個討論串鬧的笑話還不夠? 你要指正, 非常感謝您. 但若說愛自造爛靶先開口罵人, 那也不是別人都得要容忍 讓你. 在這個討論串裡, 可以思考中斷就是內外事件讓 processor/controller 因事件而 改變程式執行次序, 這種事件包含 reset 這個必然會做進硬體的訊號. 如果是使用 外部 bus 的 Chip , 通常都有讓開 BUS 暫不使用的訊號腳, 至於 reset , halt, interrupt 是降級到只併成 reset , 甚至是只有內部的 power on reset 無外部 reset 接腳, 還是得要有 power-on line input. 要能改變 controller 的執行次序 是硬體裝置必有的一個特性, 他可能因簡單必要與理所當然, 因此受到忽略. 不提 interrupt , DMA 讓 processor/controller 只做一個大循環是好懂易教, 但剛開始的起始狀態與發生例外時要如何處理, 這種很基本的項目是無法忽略的. 還是謝謝你的回應, 個人所知有限, 只能把所知道的回應提供參考, 老掉牙與野 人獻曝在所難免. 要請教別人就是要能不怕鬧笑話, 能解答疑問就好 ! 還是感謝您 費時指正. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.250.240