※ 引述《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