{"id":732,"date":"2009-10-27T16:22:00","date_gmt":"2009-10-27T08:22:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=732"},"modified":"2023-11-04T16:31:05","modified_gmt":"2023-11-04T08:31:05","slug":"%e8%bc%b8%e5%85%a5%e8%bc%b8%e5%87%ba%e7%b5%84%e7%b9%94","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/732","title":{"rendered":"\u8f38\u5165\u8f38\u51fa\u7d44\u7e54"},"content":{"rendered":"\n<p>\u9031\u908a\u8a2d\u5099\u53ef\u5206\u70ba<br>character oriented\u4f4d\u5143\u7d44\u5c0e\u5411\u7684\u4f4e\u901f\u8a2d\u5099<br>ex:keyboard,mouse,modem<br>block oriented\u5340\u584a\u5c0e\u5411\u7684\u9ad8\u901f\u8a2d\u5099<br>ex:floppy,CD-ROM<\/p>\n\n\n\n<p>\u4ecb\u9762\u96fb\u8def<br>\u8aaa\u660e:\u9031\u908a\u8a2d\u5099\u8207\u4e2d\u592e\u8655\u7406\u5668\u7684\u7de9\u885d\u5340<br>\u529f\u80fd:\u5354\u8abfcpu\u8207\u9031\u908a\u8a2d\u5099\u4e4b\u9593\u8cc7\u6599\u7684\u50b3\u9001,\u4e26\u8655\u7406\u9031\u908a\u8a2d\u5099\u53ca\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392\u76f8\u95dc\u7684\u904b\u4f5c<br>\u7528\u9014:\u6240\u6709\u9031\u908a\u8a2d\u5099\u5fc5\u9808\u900f\u904e\u4ecb\u9762\u96fb\u8def\u624d\u80fd\u9023\u63a5\u5230\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392<br><strong>\u9031\u908a\u8a2d\u5099\u8f38\u5165\u6642:<\/strong><br>\u9808\u5c07\u8f38\u5165\u8a2d\u5099\u7684\u8cc7\u6599\u5f62\u5f0f\u8f49\u63db\u6210\u70ba\u5167\u90e8\u7684\u8cc7\u6599\u5f62\u5f0f,\u518d\u7d93\u904e\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392\u50b3\u5230\u4e3b\u8a18\u61b6\u9ad4\u55ae\u5143<br>ex:\u78c1\u789f\u6a5f\u8cc7\u6599\u5f62\u5f0f\u70basector(\u78c1\u5340),\u8f38\u5165\u6642\u9700\u7d93\u4ecb\u9762\u96fb\u8def\u8f49\u63db\u6210word(\u5b57\u7d44),\u624d\u53ef\u900f\u904e\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392\u5230\u4e3b\u8a18\u61b6\u9ad4<br><strong>\u8f38\u51fa\u5230\u9031\u908a\u8a2d\u5099\u6642:<\/strong><br>\u9808\u5c07\u4e3b\u8a18\u61b6\u9ad4\u55ae\u5143\u7684\u8cc7\u6599\u5f62\u5f0f\u7d93\u904e\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392\u50b3\u9001\u5230\u4ecb\u9762\u96fb\u8def,\u518d\u8f49\u63db\u6210\u8f38\u51fa\u8a2d\u5099\u7684\u8cc7\u6599\u578b\u5f0f<br>ex:\u6578\u64da\u6a5f\u8cc7\u6599\u5f62\u5f0f\u70babit(\u4f4d\u5143),\u6240\u4ee5\u4e3b\u8a18\u61b6\u9ad4\u50b3word\u5230\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392,\u5728\u7d93\u4ecb\u9762\u96fb\u8def\u8f49\u63db\u6210bit\u624d\u53ef\u9032\u884c\u50b3\u8f38<\/p>\n\n\n\n<p>\u4ecb\u9762\u96fb\u8def\u4e3b\u8981\u7d44\u6210\u5143\u4ef6<br>address decoder(\u4f4d\u5740\u89e3\u78bc\u5668)<br>daa register(\u8cc7\u6599\u66ab\u5b58\u5668)<br>control circuit(\u63a7\u5236\u96fb\u8def)<br>status register(\u72c0\u614b\u66ab\u5b58\u5668)<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p>\u9031\u908a\u8a2d\u5099\u8cc7\u6599\u50b3\u8f38\u6a21\u5f0f\u53ef\u5206<br>parallel transmission\u5e73\u884c\u8f38\u5165:\u4f7f\u7528\u591a\u689d\u8cc7\u6599\u50b3\u8f38\u7dda,\u4e00\u6b21\u53ef\u50b3\u9001\u591a\u4f4d\u5143,\u4e0d\u9069\u5408\u9577\u8ddd\u96e2<br>serial transmission\u5e8f\u5217\u8f38\u5165:\u4f7f\u75281\u689d\u8cc7\u6599\u50b3\u8f38\u7dda,\u4e00\u6b21\u53ea\u53ef\u50b3\u90011\u500b\u4f4d\u5143,\u9069\u5408\u9577\u8ddd\u96e2<\/p>\n\n\n\n<p>\u4ecb\u9762\u96fb\u8def\u4f9d\u50b3\u8f38\u6a21\u5f0f\u53ef\u5206<br>parallel interface\u5e73\u884c\u4ecb\u9762\u96fb\u8def<br>serial interface\u5e8f\u5217\u4ecb\u9762\u96fb\u8def<\/p>\n\n\n\n<p>\u5e38\u898b\u4ecb\u9762\u6709<br>RS232(recommended standard-232)\/recommendation v24<br>&nbsp; \u5e8f\u5217\u4ecb\u9762,9\/25\u500b\u63a5\u8173,\u975e\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d29600bit<br>centronics(\u96c6\u4e2d\u5f0f\u4ecb\u9762)<br>&nbsp; \u5e73\u884c\u4ecb\u9762,36\u500b\u63a5\u8173,\u975e\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d2200kb<br>IDE(integrated drive electronics,\u6574\u5408\u9a45\u52d5\u96fb\u5b50\u4ecb\u9762)<br>&nbsp; \u5e73\u884c\u4ecb\u9762,40\u500b\u63a5\u8173,\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d28.33mb<br>SCSI(small computer system interface,\u5c0f\u578b\u96fb\u8166\u7cfb\u7d71\u4ecb\u9762)<br>&nbsp; \u5e73\u884c\u4ecb\u9762,50\u500b\u63a5\u8173,\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d210mb,8bit\u8cc7\u6599\u5bec\u5ea6<br>AGP(advanced graphics port,\u9ad8\u7b49\u5716\u5f62\u4ecb\u9762)<br>&nbsp; \u5e73\u884c\u4ecb\u9762,36\u500b\u63a5\u8173,\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d2528mb,64bit\u8cc7\u6599\u5bec\u5ea6,66mhz\u50b3\u8f38\u983b\u7387<br>USB(universal serial bus,\u901a\u7528\u5e8f\u5217\u532f\u6d41\u6392)<br>&nbsp; \u5e8f\u5217\u4ecb\u9762,\u540c\u6b65\/\u975e\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d21.5mb,\u53ef\u9023\u63a5127\u90e8\u8a2d\u5099,\u652f\u63f4plug&amp;play<br>&nbsp; \u7531intel,compaq,nec,digital,ibm,northern telecom,microsoft\u5171\u540c\u5236\u5b9a\u7684\u6a19\u6e96<br>IEEE1394<br>&nbsp; \u5e8f\u5217\u4ecb\u9762,\u540c\u6b65\/\u975e\u540c\u6b65\u5354\u8abf\u50b3\u8f38,\u6bcf\u79d250mb,\u53ef\u9023\u63a563\u90e8\u8a2d\u5099,\u652f\u63f4plug&amp;play,\u4f7f\u7528\u96db\u83ca\u93c8\u6216\u662f\u6a39\u72c0\u62d3\u6a38<br>&nbsp; \u7531\u860b\u679c\u96fb\u8166\u516c\u53f8\u6240\u958b\u767c\u7684\u6a19\u6e96<br>bluetooth(\u85cd\u82bd)<br>&nbsp; \u7121\u7dda\u901a\u8a0a\u6a19\u6e96,\u63d0\u4f9b\u4e0a\u50b356kbps\u4e0b\u8f09721kbps,\u53ef\u8cc7\u6599\u52a0\u5bc6<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p>\u532f\u6d41\u6392\u4f9d\u529f\u80fd\u53ef\u5206\u70ba<br>dedicated bus\u5c08\u7528\u532f\u6d41\u6392:\u53ea\u63d0\u4f9b\u4e00\u7a2e\u529f\u80fd,\u50b3\u9001\u983b\u5bec\u5927,\u6210\u672c\u9ad8<br>&nbsp;ex:\u8a18\u61b6\u9ad4\u532f\u6d41\u6392,\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392<br>shared bus\u5171\u7528\u532f\u6d41\u6392:\u53ef\u626e\u6f14\u591a\u89d2\u8272,\u50b3\u9001\u983b\u5bec\u5c0f,\u7dda\u8def\u7c21\u55ae\u6210\u672c\u4f4e,\u9700\u63d0\u4f9b\u532f\u6d41\u6392\u4ef2\u88c1\u5668\u529f\u80fd<br>&nbsp;ex:\u7cfb\u7d71\u532f\u6d41\u6392<br>\u4e5f\u53ef\u5206\u70ba<br>processor-memory bus:\u9023\u63a5cpu\u548c\u4e3b\u8a18\u61b6\u9ad4\u9593\u7684\u532f\u6d41\u6392,\u53c8\u7a31local bus(\u5340\u57df\u532f\u6d41\u6392)<br>&nbsp;ex:isa,eisa,pci<br>backplane bus:\u9023\u63a5\u591a\u500b\u4e3b\u6a5f\u677f\u4e4b\u9593\u7684\u532f\u6d41\u6392<br>&nbsp;ex:vme bus,multibus2,nebus<br>I\/O bus:\u9023\u63a5\u5404\u9031\u908a\u8a2d\u5099\u8207\u7cfb\u7d71\u4e4b\u9593\u7684\u532f\u6d41\u6392<br>&nbsp;ex:ide,scsi,ieee1394<\/p>\n\n\n\n<p>\u5e38\u898b\u8f38\u5165\/\u8f38\u51fa\u532f\u6d41\u6392\u6709<br>ISA(industry standard architecture,\u5de5\u696d\u6a19\u6e96\u67b6\u69cb)<br>&nbsp; 8bit\/16bit\u8cc7\u6599\u5bec\u5ea6,8.33mhz\u50b3\u8f38\u983b\u7387,\u8cc7\u6599\u983b\u5bec\u53ef\u90548.33\/16.66mb<br>MCA(micro channel architecture,\u5fae\u901a\u9053\u67b6\u69cb)<br>&nbsp; 32bit\u8cc7\u6599\u5bec\u5ea6,10mhz\u50b3\u8f38\u983b\u7387,\u8cc7\u6599\u983b\u5bec\u53ef\u905440mb<br>EISA(extended ISA,\u5ef6\u4f38\u5de5\u696d\u6a19\u6e96\u67b6\u69cb)<br>&nbsp; 32bit\u8cc7\u6599\u5bec\u5ea6,8.33mhz\u50b3\u8f38\u983b\u7387,\u8cc7\u6599\u983b\u5bec\u53ef32mb<br>PCI(phripheral component interconnect,\u9031\u908a\u5143\u4ef6\u9023\u63a5)<br>&nbsp; 64bit\u8cc7\u6599\u5bec\u5ea6,33\/133mhz\u50b3\u8f38\u983b\u7387,\u8cc7\u6599\u983b\u5bec\u53ef\u9054264mb\/1g<br>multibus\/ieee796<br>&nbsp; 16bit\u8cc7\u6599\u5bec\u5ea6<br>multibus2\/ieee1296<br>&nbsp; 32bit\u8cc7\u6599\u5bec\u5ea6<br>IEEE488<br>&nbsp; 8bit\u8cc7\u6599\u5bec\u5ea6<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p>\u9031\u908a\u8a2d\u5099\u5b9a\u5740\u65b9\u5f0f\u6709:<br><strong>isolated i\/o(\u5206\u96e2\u5f0f\u8f38\u5165\/\u8f38\u51fa)<\/strong>:\u4e5f\u7a31io-mapped i\/o(\u8f38\u5165\/\u8f38\u51fa\u5c0d\u6620\u8f38\u5165\/\u8f38\u51fa)<br>&nbsp; \u9031\u908a\u8a2d\u5099\u6709\u7368\u7acb\u7684\u5b9a\u5740\u7a7a\u9593<br>&nbsp; ex:\u5047\u8a2d\u5b9a\u5740\u7a7a\u9593=x,\u5247\u4e3b\u8a18\u61b6\u9ad4\u5b9a\u5740\u7a7a\u9593=IO\u7684\u5b9a\u5740\u7a7a\u9593=x<br>&nbsp;&nbsp;\u4f7f\u7528\u5c08\u7528\u532f\u6d41\u6392,\u4e5f\u5c31\u662f\u8981\u55ae\u7368\u4f7f\u7528\u53e6\u4e00\u689dio\u532f\u6d41\u6392<br>&nbsp; \u9700\u8981speical-instruction i\/o(\u7279\u6b8a\u7684\u8f38\u5165\u8f38\u51fa\u6307\u4ee4)<br>&nbsp; \u512a\u9ede:\u4e3b\u8a18\u61b6\u9ad4\u7a7a\u9593\u4e0d\u6703\u88ab\u4f54\u7528\u4e14\u7a0b\u5f0f\u53ef\u7528\u7a7a\u9593\u5927,\u9031\u908a\u64f4\u5145\u4f73<br>&nbsp; \u7f3a\u9ede:\u8f38\u5165\u8f38\u51fa\u5f48\u6027\u5c0f,\u96fb\u8def\u8f03\u8907\u96dc<br><strong>memory-mapped i\/o(\u8a18\u61b6\u9ad4\u5c0d\u6620\u8f38\u5165\/\u8f38\u51fa)<\/strong><br>&nbsp; \u9031\u908a\u8a2d\u5099\u7684\u5b9a\u5740\u7a7a\u9593\u662f\u9644\u5c6c\u5728\u4e3b\u8a18\u61b6\u9ad4\u55ae\u5143\u4e4b\u4e2d,io\u8cc7\u6599\u5b58\u53d6\u8207\u4e3b\u8a18\u61b6\u9ad4\u5167\u90e8\u8cc7\u6599\u7684\u5b58\u53d6\u5b8c\u5168\u4e00\u6a23<br>&nbsp;&nbsp;ex:\u5047\u8a2d\u5b9a\u5740\u7a7a\u9593=x,\u5247\u4e3b\u8a18\u61b6\u9ad4\u5b9a\u5740\u7a7a\u9593+IO\u7684\u5b9a\u5740\u7a7a\u9593=x<br>&nbsp; \u4f7f\u7528\u5171\u7528\u532f\u6d41\u6392<br>&nbsp; \u512a\u9ede:\u8f38\u5165\u8f38\u51fa\u7684\u5f48\u6027\u5927,\u96fb\u8def\u8f03\u7c21\u55ae<br>&nbsp;&nbsp;\u7f3a\u9ede:\u4e3b\u8a18\u61b6\u9ad4\u7a7a\u9593\u6703\u88ab\u4f54\u7528\u4f7f\u5f97\u7a0b\u5f0f\u53ef\u7528\u7a7a\u9593\u5c0f,\u9031\u908a\u64f4\u5145\u53d7\u9650<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p>\u9031\u908a\u8a2d\u5099\u8cc7\u6599\u50b3\u9001\u7684\u65b9\u5f0f\u6709:<br><strong>program controlled i\/o(\u7a0b\u5f0f\u63a7\u5236\u7684\u8f38\u5165\/\u8f38\u51fa)<\/strong>:\u7531cpu\u5168\u7a0b\u4f7f\u7528io program(\u8f38\u5165\u8f38\u51fa\u7a0b\u5f0f)\u4f86\u63a7\u5236\u6574\u500b\u904e\u7a0b<br>&nbsp;\u6574\u9ad4\u6548\u80fd\u6700\u5dee,cpu\u5728\u6574\u500b\u904e\u7a0b\u9700\u8981\u4ecb\u5165\u8655\u7406,\u5c31\u7121\u6cd5\u57f7\u884c\u5176\u4ed6\u7a0b\u5f0f<br>&nbsp;\u6210\u672c\u6700\u4f4e,\u56e0\u70ba\u4e0d\u9700\u8981\u4f7f\u7528\u984d\u5916\u7684\u786c\u9ad4\u96fb\u8def<br>&nbsp;\u7528\u5728\u65e9\u671f\u7684\u4f4e\u901f\u8a2d\u5099,\u4f7f\u7528\u72c0\u614b\u6838\u5c0d\u7684\u6280\u5de7\u9032\u884c\u5354\u8abf<br><strong>interrupt driven i\/o(\u4e2d\u65b7\u8da8\u52d5\u7684\u8f38\u5165\/\u8f38\u51fa)<\/strong>:\u589e\u52a0\u4e2d\u65b7\u96fb\u8def\u7684\u7a0b\u5f0f\u63a7\u5236\u7684\u8f38\u5165\/\u8f38\u51fa<br>&nbsp;\u6574\u9ad4\u6548\u80fd\u7a0d\u5dee,\u6210\u672c\u7a0d\u4f4e<br><strong>DMA(direct memory access,\u76f4\u63a5\u8a18\u61b6\u9ad4\u5b58\u53d6)<\/strong>:\u4e0d\u9700cpu\u5373\u53ef\u76f4\u63a5\u6307\u63ee\u9031\u908a\u8207\u4e3b\u8a18\u9ad4\u9593\u8cc7\u6599\u7684\u50b3\u9001<br>&nbsp;\u6574\u9ad4\u6548\u80fd\u8f03\u4f73,\u4e0d\u9700cpu\u6d89\u5165\u5176\u4e2d<br>&nbsp;\u6210\u672c\u8f03\u9ad8,\u4f7f\u7528dma controller\u7684\u786c\u9ad4\u63a7\u5236\u96fb\u8def\u4f86\u6307\u63eecpu\u548c\u9031\u908a<br>&nbsp;\u53ef\u7528\u5728\u540c\u6b65\u50b3\u9001\u7684\u9ad8\u901f\u8a2d\u5099<br><strong>IOPs(\u8f38\u5165\/\u8f38\u51fa\u8655\u7406\u5668)<\/strong>:\u4f7f\u7528\u6210\u672c\u8f03\u4f4e\u7684\u5fae\u8655\u7406\u5668\u8ca0\u8cac\u8655\u7406\u6240\u6709\u7684\u8f38\u5165\u8f38\u51fa<br>&nbsp;\u6574\u9ad4\u6548\u80fd\u6700\u4f73,\u53ef\u8b93cpu\u4e0d\u9700\u8655\u7406\u8f38\u5165\u8f38\u51fa,\u5c08\u9580\u57f7\u884c\u7a0b\u5f0f<br>&nbsp;\u6210\u672c\u6700\u9ad8,\u4f7f\u7528\u5c08\u9580\u8f38\u5165\u8f38\u51fa\u904b\u4f5c\u7684\u5fae\u8655\u7406\u5668<br>&nbsp;\u9069\u5408\u9023\u63a5\u66f4\u591a\u9031\u908a\u5099<br>ps:three basic i\/o techniques\u662fprogram controlled i\/o,interrupt driven i\/o,dma<\/p>\n\n\n\n<p>DMA\u904b\u4f5c\u65b9\u5f0f:<br>1cpu\u57f7\u884c\u4e00\u500b\u555f\u52d5\u7a0b\u5f0f\u4f86\u8a2d\u5b9adma parameters,\u4e26\u555f\u52d5dma controller<br>2dma controller\u958b\u59cb\u8f38\u5165\u8f38\u51fa\u5de5\u4f5c,cpu\u53ef\u57f7\u884c\u5176\u4ed6\u5de5\u4f5c<br>3\u6240\u6709\u8f38\u51fa\u8f38\u5165\u5de5\u4f5c\u5b8c\u6210\u5f8c,\u7531dma controller\u4f7f\u7528\u4e2d\u65b7\u4fe1\u865f\u901a\u77e5cpu<br>ps:dma parameters\u662f\u66ab\u5b58\u5668\u6240\u9700\u8981\u7684\u8cc7\u6599<br><br>DMA controller(DMA\u63a7\u5236\u5668)\u9700\u8981\u7684\u66ab\u5b58\u5668\u6709:<br>MAR(\u8a18\u61b6\u9ad4\u4f4d\u7f6e\u66ab\u5b58\u5668)<br>word count register(\u5b57\u7d44\u500b\u6578\u66ab\u5b58\u5668)<br>command register(\u547d\u4ee4\u66ab\u5b58\u5668)<\/p>\n\n\n\n<p>DMA\u50b3\u9001\u8cc7\u6599\u7684\u65b9\u5f0f\u6709:<br>cycle stealing(\u9031\u671f\u7aca\u53d6):\u9069\u7528\u4f4e\u901f\u8a2d\u5099<br>&nbsp;dma\u63a7\u5236\u5668\u4e00\u6b21\u53ea\u7528\u4e00\u500b\u8a18\u61b6\u9ad4bus\u9031\u671f\u50b3\u9001\u4e00\u500b\u5b57\u7d44,\u5c31\u5c07\u8a18\u61b6\u9ad4bus\u4f7f\u7528\u6b0a\u6b78\u9084\u7d66cpu<br>&nbsp;\u4f9d\u512a\u5148\u9806\u5e8f\u7684\u8a2d\u5b9a\u53ef\u5206\u70ba:<br>&nbsp; transparent(\u900f\u901a\u6027):\u82e5cpu\u512a\u5148\u6b0a\u9ad8,\u5247\u9031\u908a\u8a2d\u5099\u8981\u7b49cpu\u4e0d\u7528\u8a18\u61b6\u9ad4bus\u9031\u671f\u6642\u624d\u80fd\u50b3\u9001\u8cc7\u6599<br>&nbsp; non-transparent(\u975e\u900f\u901a\u6027):\u82e5cpu\u512a\u5148\u6b0a\u9ad8,\u5247\u9031\u908a\u8a2d\u5099\u53ef\u6436\u596acpu\u6b63\u5728\u7528\u7684\u8a18\u61b6\u9ad4bus\u9031\u671f<br>burst mode(\u7206\u767c\u6a21\u5f0f):\u9069\u7528\u9ad8\u901f\u8a2d\u5099<br>&nbsp; dma\u63a7\u5236\u5668\u4e00\u6b21\u7528\u591a\u500b\u8a18\u61b6\u9ad4bus\u9031\u671f\u50b3\u9001\u5927\u91cf\u5b57\u7d44,\u7b49\u5168\u90e8\u50b3\u9001\u7d50\u675f\u5f8c\u5c31\u5c07\u8a18\u61b6\u9ad4bus\u4f7f\u7528\u6b0a\u6b78\u9084\u7d66cpu<br>&nbsp; cpu\u548cdma\u63a7\u5236\u5668\u540c\u6642\u5b58\u53d6\u4e3b\u8a18\u61b6\u9ad4\u6642,\u9ad8\u901f\u4e14\u540c\u6b65\u904b\u4f5c\u7684\u9031\u908a\u53ef\u5f97\u8f03\u9ad8\u7684\u512a\u5148\u9806\u5e8f<\/p>\n\n\n\n<p>IOPs\u904b\u4f5c\u65b9\u5f0f<br>1cpu\u4f7f\u7528\u4e00\u500b\u7279\u6b8a\u6307\u4ee4\u5c07channel program\u7684\u4f4d\u5740\u50b3\u9001\u7d66io channel<br>2io channel\u4f7f\u7528cycle stealing\u7684\u65b9\u5f0f,\u5230\u4e3b\u8a18\u61b6\u9ad4\u4e2d\u53d6\u5f97channel program<br>3\u57f7\u884cchannel program\u5b8c\u6210\u6240\u9700\u8981\u7684\u8f38\u5165\u8f38\u51fa\u904b\u4f5c<br>4\u5168\u90e8\u8cc7\u6599\u50b3\u9001\u7d50\u675f\u5f8c,io channel\u9001\u51fa\u4e2d\u65b7\u8a0a\u865f\u901a\u77e5cpu<br>ps:\u8207\u8cc7\u6599\u50b3\u9001\u76f8\u95dc\u7684\u53c3\u6578\u662f\u4ee5\u4e00\u500bchannel program(\u901a\u9053\u7a0b\u5f0f)\u7684\u578b\u5f0f\u653e\u5728\u8a18\u61b6\u9ad4\u55ae\u5143\u4e2d<\/p>\n\n\n\n<p>i\/o channel(\u8f38\u5165\u8f38\u51fa\u901a\u9053)<br>\u53ef\u8996\u70ba\u9023\u63a5\u591a\u90e8\u7684dma controller,\u53ef\u57f7\u884c\u4e0d\u540c\u7684\u8f38\u5165\/\u8f38\u51fa\u7a0b\u5f0f,\u7528\u4f86\u63a7\u5236\u4e0d\u540c\u7684\u9031\u908a\u8a2d\u5099<br>\u4e09\u7a2e\u88fd\u4f5c\u65b9\u5f0f:<br>multiplexer channel(\u591a\u5de5\u5668\u901a\u9053)<br>selector channel(\u9078\u64c7\u5668\u901a\u9053)<br>block multiplexer channel(\u5340\u584a\u591a\u5de5\u5668\u901a\u9053)<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p>\u9031\u908a\u8a2d\u5099synchronization(\u63a7\u5236\u5354\u8abf)\u65b9\u5f0f\u662f\u4f7f\u7528\u63a7\u5236\u4fe1\u865f<br>synchronization\u662f\u70ba\u4e86\u8b93\u50b3\u9001\u7aef\u8207\u63a5\u6536\u7aef\u901f\u5ea6\u80fd\u5920\u9054\u5230\u4e00\u81f4<br>\u4ecb\u9762\u96fb\u8def\u7684\u63a7\u5236\u4fe1\u865f\u5305\u62ec:<br>transfer mode\u50b3\u9001\u6a21\u5f0f:\u6307\u51fa\u662f\u8b80\u53d6\u6216\u5beb\u5165,\u4ee5\u53ca\u8cc7\u6599\u55ae\u4f4d\u662f\u5b57\u7d44\u6216\u4f4d\u5143\u7d44<br>transfer timing\u50b3\u9001\u6642\u5e8f:\u8ca0\u8cac\u8cc7\u6599\u9001\u51fa\u6216\u63a5\u6536\u7684\u6642\u9593,\u5be6\u4f5c\u65b9\u5f0f\u53ef\u5206\u70ba\u540c\u6b65\u63a7\u5236\u5354\u8abf\u548c\u975e\u540c\u6b65\u63a7\u5236\u5354\u8abf<\/p>\n\n\n\n<p><strong>synchronous i\/o(\u540c\u6b65\u7684\u8f38\u5165\u8f38\u51fa):\u4f7f\u7528\u540c\u6b65\u63a7\u5236\u5354\u8abf<\/strong><br>&nbsp;\u50b3\u9001\u65b9\u8207\u63a5\u6536\u65b9\u9593\u6709\u4e00\u5171\u7528\u8a08\u6642\u5668,\u4e26\u7528\u4e00\u689d\u63a7\u5236\u7dda\u50b3\u9001\u5171\u7528\u8a08\u6642\u5668\u7684\u6642\u5e8f\u4fe1\u865f,\u7576\u6210\u5169\u8005\u9593\u7684transfer timing<br>&nbsp;\u505a\u6cd5\u7c21\u55ae,\u4f4e\u901f\u8a2d\u5099\u5f71\u97ff\u9ad8\u901f\u8a2d\u5099,\u53ef\u9760\u5ea6\u4f4e<br><strong>asynchronous i\/o(\u975e\u540c\u6b65\u7684\u8f38\u5165\u8f38\u51fa)<\/strong>:\u4f7f\u7528\u975e\u540c\u6b65\u63a7\u5236\u5354\u8abf<br>&nbsp;\u50b3\u9001\u65b9\u8207\u63a5\u6536\u65b9\u4f7f\u7528ready(\u5099\u59a5\u4fe1\u865f)\u548caccept(\u63a5\u6536\u4fe1\u865f)\u7576\u6210\u5169\u8005\u9593\u7684transfer timing<br>&nbsp;\u4f7f\u7528handshake protocol\u9032\u884c\u4e92\u52d5\u7684\u5354\u8abf<br>&nbsp;\u505a\u6cd5\u8907\u96dc,\u9ad8\u901f\u8a2d\u5099\u4e0d\u53d7\u4f4e\u901f\u8a2d\u5099\u5f71\u97ff,\u53ef\u9760\u5ea6\u4f73<br>handshake protocol(\u63e1\u624b\u5354\u5b9a)<br>\u50b3\u9001\u65b9\u4f7f\u7528ready\u901a\u77e5\u63a5\u6536\u65b9\u8cc7\u6599\u5df1\u50b3\u9001,\u5728\u7531\u63a5\u6536\u65b9\u4f7f\u7528accept\u901a\u77e5\u50b3\u9001\u65b9\u5df1\u63a5\u6536,\u5169\u8005\u9593\u9700\u7b49\u5230\u5c0d\u65b9\u56de\u61c9\u5f8c\u624d\u53ef\u7e7c\u7e8c\u52d5\u4f5c<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;.<\/p>\n\n\n\n<p>bus arbitration\u532f\u6d41\u6392\u4ef2\u88c1\u5668<br>\u5354\u8abf\u591a\u500bbus master\u4f7f\u7528\u532f\u6d41\u6392\u7684\u9806\u5e8f<br>bus master(\u532f\u6d41\u6392\u63a7\u5236\u8005)\u662f\u5177\u6709\u8981\u6c42\u4f7f\u7528\u532f\u6d41\u6392\u80fd\u529b\u7684\u786c\u9ad4\u55ae\u5143<br>ex:cpu<\/p>\n\n\n\n<p>\u88fd\u4f5cbus arbitration\u9700\u8981\u63a7\u5236\u7dda,\u5305\u62ec:<br>bus request(\u532f\u6d41\u6392\u8981\u6c42\u7dda)<br>bus grant(\u532f\u6d41\u6392\u540c\u610f\u7dda)<br>bus busy(\u532f\u6d41\u6392\u5fd9\u788c\u7dda)<\/p>\n\n\n\n<p>\u532f\u6d41\u6392\u983b\u5bec\u914d\u7f6e\u7b56\u7565\u6709:<br>static bus arbitration(\u975c\u614b\u532f\u6d41\u6392\u4ef2\u88c1)<br>dynamic bus arbitration(\u52d5\u614b\u532f\u6d41\u6392\u4ef2\u88c1)<\/p>\n\n\n\n<p>\u532f\u6d41\u6392\u5206\u914d\u7b56\u7565\u6709:<br>priority(\u512a\u5148\u6b0a\u70ba\u4e3b)<br>fairness(\u516c\u5e73\u5206\u914d)<br>combined(\u6df7\u5408\u65b9\u5f0f)<\/p>\n\n\n\n<p>\u532f\u6d41\u6392\u56de\u6536\u7b56\u7565\u6709:<br>release on request(\u8981\u6c42\u6642\u91cb\u653e)<br>release when done(\u50b3\u9001\u5f8c\u91cb\u653e)<br>preemption(\u6436\u596a\u5f8c\u91cb\u653e)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9031\u908a\u8a2d\u5099\u53ef\u5206\u70bacharacter oriented\u4f4d\u5143\u7d44\u5c0e\u5411 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[23],"tags":[],"class_list":["post-732","post","type-post","status-publish","format-standard","hentry","category-computerarchitecture"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=732"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/732\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}